From 652a2dd92e761d41e7fe497b809c36d27b5be8b4 Mon Sep 17 00:00:00 2001 From: Catherine David Date: Sat, 24 Jul 2021 19:03:15 -0700 Subject: [PATCH 001/130] Changing import type --- package.json | 4 ++-- src/clients/beacon-client/BeaconClient.ts | 2 +- src/transports/DappP2PTransport.ts | 2 +- src/transports/DappPostMessageTransport.ts | 2 +- src/transports/P2PTransport.ts | 2 +- src/transports/PostMessageTransport.ts | 2 +- src/transports/WalletP2PTransport.ts | 2 +- src/transports/WalletPostMessageTransport.ts | 2 +- src/transports/clients/CommunicationClient.ts | 2 +- src/transports/clients/MessageBasedClient.ts | 2 +- src/transports/clients/P2PCommunicationClient.ts | 2 +- src/transports/clients/PostMessageClient.ts | 2 +- src/utils/crypto.ts | 2 +- src/utils/generate-uuid.ts | 2 +- src/utils/get-account-identifier.ts | 2 +- src/utils/get-sender-id.ts | 2 +- tsconfig-browserify.json | 1 + tsconfig.test.json | 3 ++- 18 files changed, 20 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 81d6d41aa..8043bb92e 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "axios": "0.21.1", "bignumber.js": "9.0.0", "bs58check": "2.1.2", - "libsodium-wrappers": "0.7.8", + "libsodium-wrappers": "^0.7.8", "qrcode-generator": "1.4.4" }, "devDependencies": { @@ -84,7 +84,7 @@ "sinon": "9.0.3", "sonar-scanner": "3.1.0", "static-server": "^2.2.1", - "ts-node": "8.10.1", + "ts-node": "^8.10.1", "tslint": "6.1.2", "typedoc": "^0.20.30", "typedoc-plugin-internal-external": "^2.2.0", diff --git a/src/clients/beacon-client/BeaconClient.ts b/src/clients/beacon-client/BeaconClient.ts index 397e98f39..c19ea3fdc 100644 --- a/src/clients/beacon-client/BeaconClient.ts +++ b/src/clients/beacon-client/BeaconClient.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import { ExposedPromise } from '../../utils/exposed-promise' import { generateGUID } from '../../utils/generate-uuid' import { getKeypairFromSeed, toHex } from '../../utils/crypto' diff --git a/src/transports/DappP2PTransport.ts b/src/transports/DappP2PTransport.ts index e5a8e271d..a4ff49cae 100644 --- a/src/transports/DappP2PTransport.ts +++ b/src/transports/DappP2PTransport.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import { Storage, StorageKey, P2PTransport, TransportStatus } from '..' import { ExtendedP2PPairingResponse } from '../types/P2PPairingResponse' import { Logger } from '../utils/Logger' diff --git a/src/transports/DappPostMessageTransport.ts b/src/transports/DappPostMessageTransport.ts index fb4f93fcf..30faadeeb 100644 --- a/src/transports/DappPostMessageTransport.ts +++ b/src/transports/DappPostMessageTransport.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import { TransportStatus, StorageKey, PostMessageTransport, Storage } from '..' import { Logger } from '../utils/Logger' import { ExtendedPostMessagePairingResponse } from '../types/PostMessagePairingResponse' diff --git a/src/transports/P2PTransport.ts b/src/transports/P2PTransport.ts index 9b8ced0af..f1e18e09c 100644 --- a/src/transports/P2PTransport.ts +++ b/src/transports/P2PTransport.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import { Logger } from '../utils/Logger' import { ConnectionContext } from '../types/ConnectionContext' import { diff --git a/src/transports/PostMessageTransport.ts b/src/transports/PostMessageTransport.ts index 579cdf2f3..3d5e1be6f 100644 --- a/src/transports/PostMessageTransport.ts +++ b/src/transports/PostMessageTransport.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import { windowRef } from '../MockWindow' import { Logger } from '../utils/Logger' import { PeerManager } from '../managers/PeerManager' diff --git a/src/transports/WalletP2PTransport.ts b/src/transports/WalletP2PTransport.ts index 6f2e699ff..bf8e8e56e 100644 --- a/src/transports/WalletP2PTransport.ts +++ b/src/transports/WalletP2PTransport.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import { Storage, StorageKey, P2PTransport, P2PPairingRequest } from '..' // const logger = new Logger('DappP2PTransport') diff --git a/src/transports/WalletPostMessageTransport.ts b/src/transports/WalletPostMessageTransport.ts index 2f2d8e752..c16e3d71c 100644 --- a/src/transports/WalletPostMessageTransport.ts +++ b/src/transports/WalletPostMessageTransport.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import { StorageKey, PostMessageTransport, Storage } from '..' import { PostMessagePairingRequest } from '../types/PostMessagePairingRequest' diff --git a/src/transports/clients/CommunicationClient.ts b/src/transports/clients/CommunicationClient.ts index c14e768ee..aefc98970 100644 --- a/src/transports/clients/CommunicationClient.ts +++ b/src/transports/clients/CommunicationClient.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import { P2PPairingRequest } from '../..' import { ExtendedP2PPairingResponse } from '../../types/P2PPairingResponse' import { PostMessagePairingRequest } from '../../types/PostMessagePairingRequest' diff --git a/src/transports/clients/MessageBasedClient.ts b/src/transports/clients/MessageBasedClient.ts index 942276a44..b0e4afb5b 100644 --- a/src/transports/clients/MessageBasedClient.ts +++ b/src/transports/clients/MessageBasedClient.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import { BEACON_VERSION } from '../../constants' import { PostMessagePairingRequest } from '../../types/PostMessagePairingRequest' import { PostMessagePairingResponse } from '../../types/PostMessagePairingResponse' diff --git a/src/transports/clients/P2PCommunicationClient.ts b/src/transports/clients/P2PCommunicationClient.ts index 10e5247a4..0edebc851 100644 --- a/src/transports/clients/P2PCommunicationClient.ts +++ b/src/transports/clients/P2PCommunicationClient.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import axios from 'axios' import { diff --git a/src/transports/clients/PostMessageClient.ts b/src/transports/clients/PostMessageClient.ts index 2db91f496..16118c6ed 100644 --- a/src/transports/clients/PostMessageClient.ts +++ b/src/transports/clients/PostMessageClient.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import { windowRef } from '../../MockWindow' import { ExtensionMessage, diff --git a/src/utils/crypto.ts b/src/utils/crypto.ts index 0a4bf4050..780595bba 100644 --- a/src/utils/crypto.ts +++ b/src/utils/crypto.ts @@ -1,5 +1,5 @@ import * as bs58check from 'bs58check' -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' /* eslint-disable prefer-arrow/prefer-arrow-functions */ diff --git a/src/utils/generate-uuid.ts b/src/utils/generate-uuid.ts index 7b7778887..1b6d46168 100644 --- a/src/utils/generate-uuid.ts +++ b/src/utils/generate-uuid.ts @@ -1,5 +1,5 @@ /* eslint-disable prefer-arrow/prefer-arrow-functions */ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' /** * Generate a random GUID diff --git a/src/utils/get-account-identifier.ts b/src/utils/get-account-identifier.ts index fada6494f..f3132cc9e 100644 --- a/src/utils/get-account-identifier.ts +++ b/src/utils/get-account-identifier.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import * as bs58check from 'bs58check' import { Network } from '..' diff --git a/src/utils/get-sender-id.ts b/src/utils/get-sender-id.ts index 1c575d59d..e0701b315 100644 --- a/src/utils/get-sender-id.ts +++ b/src/utils/get-sender-id.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import * as bs58check from 'bs58check' /** diff --git a/tsconfig-browserify.json b/tsconfig-browserify.json index f8e5dee58..c23ecc7e7 100644 --- a/tsconfig-browserify.json +++ b/tsconfig-browserify.json @@ -2,6 +2,7 @@ "extends": "./tsconfig-cjs.json", "compilerOptions": { "esModuleInterop": false, + "allowSyntheticDefaultImports": true, "outDir": "./dist/browserify" } } diff --git a/tsconfig.test.json b/tsconfig.test.json index 89587a2e0..8b49d446a 100644 --- a/tsconfig.test.json +++ b/tsconfig.test.json @@ -3,6 +3,7 @@ "compilerOptions": { "strict": false /* Can't get strict mode to work in tests because type imports don't work */, "noImplicitAny": false, - "esModuleInterop": false + "esModuleInterop": false, + "allowSyntheticDefaultImports": true } } From b0140d863d70c76c37b5e3d3001525b4fe52b466 Mon Sep 17 00:00:00 2001 From: Catherine David Date: Sat, 24 Jul 2021 19:05:39 -0700 Subject: [PATCH 002/130] typo --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 8043bb92e..81d6d41aa 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "axios": "0.21.1", "bignumber.js": "9.0.0", "bs58check": "2.1.2", - "libsodium-wrappers": "^0.7.8", + "libsodium-wrappers": "0.7.8", "qrcode-generator": "1.4.4" }, "devDependencies": { @@ -84,7 +84,7 @@ "sinon": "9.0.3", "sonar-scanner": "3.1.0", "static-server": "^2.2.1", - "ts-node": "^8.10.1", + "ts-node": "8.10.1", "tslint": "6.1.2", "typedoc": "^0.20.30", "typedoc-plugin-internal-external": "^2.2.0", From 8e7c6fc70f7c90d4d2343d1f50efd17b1bf5de3a Mon Sep 17 00:00:00 2001 From: Catherine David Date: Sat, 24 Jul 2021 22:14:20 -0700 Subject: [PATCH 003/130] wip --- src/utils/qr.ts | 4 ++-- test/clients/dapp-client.spec.ts | 6 +++--- test/clients/p2p-client.spec.ts | 4 ++-- test/clients/wallet-client.spec.ts | 6 +++--- test/managers/AccountManager.spec.ts | 4 ++-- test/managers/AppMetadataManager.spec.ts | 4 ++-- test/managers/PeerManager.spec.ts | 4 ++-- test/managers/PermissionManager.spec.ts | 4 ++-- test/matrix-client/matrix-client.spec.ts | 6 +++--- test/migrate/migrate.spec.ts | 4 ++-- test/serializer/serializer.spec.ts | 4 ++-- test/storages/chrome-storage.spec.ts | 6 +++--- test/storages/get-storage.spec.ts | 6 +++--- test/storages/local-storage.spec.ts | 6 +++--- test/transports/p2p-transport.spec.ts | 6 +++--- test/transports/post-message-transport.spec.ts | 6 +++--- test/utils/crypto.spec.ts | 4 ++-- test/utils/exposed-promise.spec.ts | 4 ++-- test/utils/get-account-identifier.spec.ts | 4 ++-- tsconfig.test.json | 3 +-- 20 files changed, 47 insertions(+), 48 deletions(-) diff --git a/src/utils/qr.ts b/src/utils/qr.ts index 0007f5e34..92363af30 100644 --- a/src/utils/qr.ts +++ b/src/utils/qr.ts @@ -1,4 +1,4 @@ -import qrcode from 'qrcode-generator' +import * as qrcode from 'qrcode-generator' import { Logger } from './Logger' const logger = new Logger('QR') @@ -12,7 +12,7 @@ const logger = new Logger('QR') export const getQrData = (payload: string, type?: 'data' | 'svg' | 'ascii'): string => { const typeNumber: TypeNumber = 0 const errorCorrectionLevel: ErrorCorrectionLevel = 'L' - const qr = qrcode(typeNumber, errorCorrectionLevel) + const qr = (qrcode as any)(typeNumber, errorCorrectionLevel) if (payload.length > 500) { logger.warn( diff --git a/test/clients/dapp-client.spec.ts b/test/clients/dapp-client.spec.ts index 372cc48d2..7476e8edf 100644 --- a/test/clients/dapp-client.spec.ts +++ b/test/clients/dapp-client.spec.ts @@ -1,7 +1,7 @@ -import * as chai from 'chai' -import * as chaiAsPromised from 'chai-as-promised' +import chai from 'chai' +import chaiAsPromised from 'chai-as-promised' import 'mocha' -import * as sinon from 'sinon' +import sinon from 'sinon' import { AccountInfo, diff --git a/test/clients/p2p-client.spec.ts b/test/clients/p2p-client.spec.ts index 46302bb27..ba585ecf5 100644 --- a/test/clients/p2p-client.spec.ts +++ b/test/clients/p2p-client.spec.ts @@ -1,5 +1,5 @@ -import * as chai from 'chai' -import * as chaiAsPromised from 'chai-as-promised' +import chai from 'chai' +import chaiAsPromised from 'chai-as-promised' import 'mocha' import { generateGUID } from '../../src/utils/generate-uuid' diff --git a/test/clients/wallet-client.spec.ts b/test/clients/wallet-client.spec.ts index 358b8879e..57933d675 100644 --- a/test/clients/wallet-client.spec.ts +++ b/test/clients/wallet-client.spec.ts @@ -1,5 +1,5 @@ -import * as chai from 'chai' -import * as chaiAsPromised from 'chai-as-promised' +import chai from 'chai' +import chaiAsPromised from 'chai-as-promised' import 'mocha' import { PermissionRequest, @@ -20,7 +20,7 @@ import { BeaconErrorType, BeaconResponseInputMessage } from '../../src' -import * as sinon from 'sinon' +import sinon from 'sinon' import { WalletClient } from '../../src/clients/wallet-client/WalletClient' import { ExtendedP2PPairingRequest } from '../../src/types/P2PPairingRequest' diff --git a/test/managers/AccountManager.spec.ts b/test/managers/AccountManager.spec.ts index 8b0df19ed..30c072627 100644 --- a/test/managers/AccountManager.spec.ts +++ b/test/managers/AccountManager.spec.ts @@ -1,5 +1,5 @@ -import * as chai from 'chai' -import * as chaiAsPromised from 'chai-as-promised' +import chai from 'chai' +import chaiAsPromised from 'chai-as-promised' import 'mocha' import { AccountManager } from '../../src/managers/AccountManager' diff --git a/test/managers/AppMetadataManager.spec.ts b/test/managers/AppMetadataManager.spec.ts index be8227d21..6679fa77e 100644 --- a/test/managers/AppMetadataManager.spec.ts +++ b/test/managers/AppMetadataManager.spec.ts @@ -1,5 +1,5 @@ -import * as chai from 'chai' -import * as chaiAsPromised from 'chai-as-promised' +import chai from 'chai' +import chaiAsPromised from 'chai-as-promised' import 'mocha' import { AppMetadataManager } from '../../src/managers/AppMetadataManager' diff --git a/test/managers/PeerManager.spec.ts b/test/managers/PeerManager.spec.ts index c6ead8906..81d3628be 100644 --- a/test/managers/PeerManager.spec.ts +++ b/test/managers/PeerManager.spec.ts @@ -1,5 +1,5 @@ -import * as chai from 'chai' -import * as chaiAsPromised from 'chai-as-promised' +import chai from 'chai' +import chaiAsPromised from 'chai-as-promised' import 'mocha' import { PeerManager } from '../../src/managers/PeerManager' diff --git a/test/managers/PermissionManager.spec.ts b/test/managers/PermissionManager.spec.ts index f52d9a744..61512b412 100644 --- a/test/managers/PermissionManager.spec.ts +++ b/test/managers/PermissionManager.spec.ts @@ -1,5 +1,5 @@ -import * as chai from 'chai' -import * as chaiAsPromised from 'chai-as-promised' +import chai from 'chai' +import chaiAsPromised from 'chai-as-promised' import 'mocha' import { PermissionManager } from '../../src/managers/PermissionManager' diff --git a/test/matrix-client/matrix-client.spec.ts b/test/matrix-client/matrix-client.spec.ts index bdfca4088..0e4b55fc1 100644 --- a/test/matrix-client/matrix-client.spec.ts +++ b/test/matrix-client/matrix-client.spec.ts @@ -1,9 +1,9 @@ -import * as chai from 'chai' -import * as chaiAsPromised from 'chai-as-promised' +import chai from 'chai' +import chaiAsPromised from 'chai-as-promised' import 'mocha' import { LocalStorage } from '../../src' import { MatrixClient } from '../../src/matrix-client/MatrixClient' -import * as sinon from 'sinon' +import sinon from 'sinon' import { MatrixRoomStatus } from '../../src/matrix-client/models/MatrixRoom' import { MatrixHttpClient } from '../../src/matrix-client/MatrixHttpClient' import { MatrixClientEventType } from '../../src/matrix-client/models/MatrixClientEvent' diff --git a/test/migrate/migrate.spec.ts b/test/migrate/migrate.spec.ts index 24e7c13d7..722c2ad13 100644 --- a/test/migrate/migrate.spec.ts +++ b/test/migrate/migrate.spec.ts @@ -1,5 +1,5 @@ -import * as chai from 'chai' -import * as chaiAsPromised from 'chai-as-promised' +import chai from 'chai' +import chaiAsPromised from 'chai-as-promised' import 'mocha' import { FileStorage, writeLocalFile } from '../test-utils/FileStorage' diff --git a/test/serializer/serializer.spec.ts b/test/serializer/serializer.spec.ts index 3f6d9ba82..3be5ecb4f 100644 --- a/test/serializer/serializer.spec.ts +++ b/test/serializer/serializer.spec.ts @@ -1,5 +1,5 @@ -import * as chai from 'chai' -import * as chaiAsPromised from 'chai-as-promised' +import chai from 'chai' +import chaiAsPromised from 'chai-as-promised' import 'mocha' import { Serializer } from '../../src/Serializer' diff --git a/test/storages/chrome-storage.spec.ts b/test/storages/chrome-storage.spec.ts index fd6ed2599..8e7139281 100644 --- a/test/storages/chrome-storage.spec.ts +++ b/test/storages/chrome-storage.spec.ts @@ -1,7 +1,7 @@ -import * as chai from 'chai' -import * as chaiAsPromised from 'chai-as-promised' +import chai from 'chai' +import chaiAsPromised from 'chai-as-promised' import 'mocha' -import * as sinon from 'sinon' +import sinon from 'sinon' import { ChromeStorage, StorageKey } from '../../src' diff --git a/test/storages/get-storage.spec.ts b/test/storages/get-storage.spec.ts index b811c317b..2d6222c9b 100644 --- a/test/storages/get-storage.spec.ts +++ b/test/storages/get-storage.spec.ts @@ -1,7 +1,7 @@ -import * as chai from 'chai' -import * as chaiAsPromised from 'chai-as-promised' +import chai from 'chai' +import chaiAsPromised from 'chai-as-promised' import 'mocha' -import * as sinon from 'sinon' +import sinon from 'sinon' import { ChromeStorage, getStorage, LocalStorage } from '../../src' diff --git a/test/storages/local-storage.spec.ts b/test/storages/local-storage.spec.ts index 0ed104ced..f452559a2 100644 --- a/test/storages/local-storage.spec.ts +++ b/test/storages/local-storage.spec.ts @@ -1,7 +1,7 @@ -import * as chai from 'chai' -import * as chaiAsPromised from 'chai-as-promised' +import chai from 'chai' +import chaiAsPromised from 'chai-as-promised' import 'mocha' -import * as sinon from 'sinon' +import sinon from 'sinon' import { LocalStorage, StorageKey } from '../../src' diff --git a/test/transports/p2p-transport.spec.ts b/test/transports/p2p-transport.spec.ts index 751106c62..72e3a0cbd 100644 --- a/test/transports/p2p-transport.spec.ts +++ b/test/transports/p2p-transport.spec.ts @@ -1,7 +1,7 @@ -import * as chai from 'chai' -import * as chaiAsPromised from 'chai-as-promised' +import chai from 'chai' +import chaiAsPromised from 'chai-as-promised' import 'mocha' -import * as sinon from 'sinon' +import sinon from 'sinon' import { BEACON_VERSION, diff --git a/test/transports/post-message-transport.spec.ts b/test/transports/post-message-transport.spec.ts index d5502973c..3b6cf3979 100644 --- a/test/transports/post-message-transport.spec.ts +++ b/test/transports/post-message-transport.spec.ts @@ -1,7 +1,7 @@ -import * as chai from 'chai' -import * as chaiAsPromised from 'chai-as-promised' +import chai from 'chai' +import chaiAsPromised from 'chai-as-promised' import 'mocha' -import * as sinon from 'sinon' +import sinon from 'sinon' import { BEACON_VERSION, diff --git a/test/utils/crypto.spec.ts b/test/utils/crypto.spec.ts index 3caf5a43a..ecafc48e8 100644 --- a/test/utils/crypto.spec.ts +++ b/test/utils/crypto.spec.ts @@ -1,5 +1,5 @@ -import * as chai from 'chai' -import * as chaiAsPromised from 'chai-as-promised' +import chai from 'chai' +import chaiAsPromised from 'chai-as-promised' import 'mocha' import { getAddressFromPublicKey } from '../../src/utils/crypto' import { generateGUID } from '../../src/utils/generate-uuid' diff --git a/test/utils/exposed-promise.spec.ts b/test/utils/exposed-promise.spec.ts index 957c1de7c..28c3e8c8d 100644 --- a/test/utils/exposed-promise.spec.ts +++ b/test/utils/exposed-promise.spec.ts @@ -1,5 +1,5 @@ -import * as chai from 'chai' -import * as chaiAsPromised from 'chai-as-promised' +import chai from 'chai' +import chaiAsPromised from 'chai-as-promised' import 'mocha' import { ExposedPromise, ExposedPromiseStatus } from '../../src/utils/exposed-promise' diff --git a/test/utils/get-account-identifier.spec.ts b/test/utils/get-account-identifier.spec.ts index 3a8e59c48..6582cf951 100644 --- a/test/utils/get-account-identifier.spec.ts +++ b/test/utils/get-account-identifier.spec.ts @@ -1,5 +1,5 @@ -import * as chai from 'chai' -import * as chaiAsPromised from 'chai-as-promised' +import chai from 'chai' +import chaiAsPromised from 'chai-as-promised' import 'mocha' import { getAccountIdentifier } from '../../src/utils/get-account-identifier' import { Network, NetworkType } from '../../src' diff --git a/tsconfig.test.json b/tsconfig.test.json index 8b49d446a..ce3aa4f57 100644 --- a/tsconfig.test.json +++ b/tsconfig.test.json @@ -3,7 +3,6 @@ "compilerOptions": { "strict": false /* Can't get strict mode to work in tests because type imports don't work */, "noImplicitAny": false, - "esModuleInterop": false, - "allowSyntheticDefaultImports": true + "esModuleInterop": true, } } From 10d1a1bcdf929050cf5c559b413b3cc949293aa9 Mon Sep 17 00:00:00 2001 From: Catherine David Date: Sat, 24 Jul 2021 22:37:02 -0700 Subject: [PATCH 004/130] Cleaning up build files --- package.json | 6 ++---- scripts/change-files-after-tests.ts | 26 -------------------------- scripts/change-files-before-tests.ts | 26 -------------------------- tsconfig-browserify.json | 2 -- tsconfig.test.json | 2 -- 5 files changed, 2 insertions(+), 60 deletions(-) delete mode 100644 scripts/change-files-after-tests.ts delete mode 100644 scripts/change-files-before-tests.ts diff --git a/package.json b/package.json index 81d6d41aa..094f656a8 100644 --- a/package.json +++ b/package.json @@ -23,15 +23,13 @@ }, "scripts": { "prebuild": "ts-node --project tsconfig-cjs.json scripts/generate-wallet-list.ts", - "build": "npm run pretest && tsc -p tsconfig.json && tsc -p ./tsconfig-cjs.json && npm run browserify && npm run posttest && cp ./dist/walletbeacon.min.js ./examples/walletbeacon.min.js", - "browserify": "npm run pretest && tsc -p ./tsconfig-browserify.json && npm run posttest && browserify ./dist/browserify/index.js -s beacon | uglifyjs > ./dist/walletbeacon.min.js && rm -rf dist/browserify", + "build": "tsc -p tsconfig.json && tsc -p ./tsconfig-cjs.json && npm run browserify && cp ./dist/walletbeacon.min.js ./examples/walletbeacon.min.js", + "browserify": "tsc -p ./tsconfig-browserify.json && browserify ./dist/browserify/index.js -s beacon | uglifyjs > ./dist/walletbeacon.min.js && rm -rf dist/browserify", "prettier": "prettier --write 'src/**/*' 'docs/**/*.md' 'example-dapp.html' 'example-wallet.html'", "lint": "eslint 'src/**/*.ts'", "lint:fix": "eslint 'src/**/*.ts' --fix", "lint-ci": "eslint 'src/**/*.ts' -f json -o lintReport.json || true", - "pretest": "ts-node --project tsconfig.test.json scripts/change-files-before-tests.ts", "test": "npm run check-version && TS_NODE_PROJECT='tsconfig.test.json' nyc mocha --require ts-node/register --require source-map-support/register --full-trace --timeout 40000 ./test/**/**.spec.ts", - "posttest": " ts-node --project tsconfig.test.json scripts/change-files-after-tests.ts", "test-ci": "nyc --reporter=lcov npm test", "e2e": "ts-node --project tsconfig-node.json e2e/permission-request.ts", "e2e-prepare-ffmpeg": "ts-node --project tsconfig-node.json e2e/generate-ffmpeg-file.ts", diff --git a/scripts/change-files-after-tests.ts b/scripts/change-files-after-tests.ts deleted file mode 100644 index 8a7339ab0..000000000 --- a/scripts/change-files-after-tests.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { readFileSync, writeFileSync } from 'fs' - -const replaceInFile: (file: string, src: string, dest: string) => void = ( - file: string, - src: string, - dest: string -): void => { - const content: string = readFileSync(file, 'utf-8') - const newContent: string = content.split(src).join(dest) - writeFileSync(file, newContent) -} - -/** - * Because of issues with the module system and tests, the following import doesn't work in the tests (and the browserified version) and we have to overwrite it. - */ - -replaceInFile( - './src/utils/qr.ts', - `import * as qrcode from 'qrcode-generator'`, - `import qrcode from 'qrcode-generator'` -) -replaceInFile( - './src/utils/qr.ts', - `const qr = (qrcode as any)(typeNumber, errorCorrectionLevel)`, - `const qr = qrcode(typeNumber, errorCorrectionLevel)` -) diff --git a/scripts/change-files-before-tests.ts b/scripts/change-files-before-tests.ts deleted file mode 100644 index 37ec966bf..000000000 --- a/scripts/change-files-before-tests.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { readFileSync, writeFileSync } from 'fs' - -const replaceInFile: (file: string, src: string, dest: string) => void = ( - file: string, - src: string, - dest: string -): void => { - const content: string = readFileSync(file, 'utf-8') - const newContent: string = content.split(src).join(dest) - writeFileSync(file, newContent) -} - -/** - * Because of issues with the module system and tests, the following import doesn't work in the tests (and the browserified version) and we have to overwrite it. - */ - -replaceInFile( - './src/utils/qr.ts', - `import qrcode from 'qrcode-generator'`, - `import * as qrcode from 'qrcode-generator'` -) -replaceInFile( - './src/utils/qr.ts', - `const qr = qrcode(typeNumber, errorCorrectionLevel)`, - `const qr = (qrcode as any)(typeNumber, errorCorrectionLevel)` -) diff --git a/tsconfig-browserify.json b/tsconfig-browserify.json index c23ecc7e7..c3ccf82a8 100644 --- a/tsconfig-browserify.json +++ b/tsconfig-browserify.json @@ -1,8 +1,6 @@ { "extends": "./tsconfig-cjs.json", "compilerOptions": { - "esModuleInterop": false, - "allowSyntheticDefaultImports": true, "outDir": "./dist/browserify" } } diff --git a/tsconfig.test.json b/tsconfig.test.json index ce3aa4f57..a93fc4f19 100644 --- a/tsconfig.test.json +++ b/tsconfig.test.json @@ -1,8 +1,6 @@ { "extends": "./tsconfig-cjs.json", "compilerOptions": { - "strict": false /* Can't get strict mode to work in tests because type imports don't work */, "noImplicitAny": false, - "esModuleInterop": true, } } From f9c401141dfd4aceb3e46dd983832905fa49eb6d Mon Sep 17 00:00:00 2001 From: Catherine David Date: Sat, 24 Jul 2021 23:02:55 -0700 Subject: [PATCH 005/130] putting back file --- src/utils/qr.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utils/qr.ts b/src/utils/qr.ts index 92363af30..0007f5e34 100644 --- a/src/utils/qr.ts +++ b/src/utils/qr.ts @@ -1,4 +1,4 @@ -import * as qrcode from 'qrcode-generator' +import qrcode from 'qrcode-generator' import { Logger } from './Logger' const logger = new Logger('QR') @@ -12,7 +12,7 @@ const logger = new Logger('QR') export const getQrData = (payload: string, type?: 'data' | 'svg' | 'ascii'): string => { const typeNumber: TypeNumber = 0 const errorCorrectionLevel: ErrorCorrectionLevel = 'L' - const qr = (qrcode as any)(typeNumber, errorCorrectionLevel) + const qr = qrcode(typeNumber, errorCorrectionLevel) if (payload.length > 500) { logger.warn( From d68178a0781b6e26827b002911978cb933aad40f Mon Sep 17 00:00:00 2001 From: Catherine David Date: Sun, 25 Jul 2021 00:10:06 -0700 Subject: [PATCH 006/130] empty From b672695d915e5a1f273c7084a66d19927e6fb509 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 28 Jul 2021 15:10:37 +0200 Subject: [PATCH 007/130] feat(lerna): add lerna --- lerna.json | 4 + package-lock.json | 26440 +++++++++++----- package.json | 1 + packages/beacon-core/README.md | 11 + .../beacon-core/__tests__/beacon-core.test.js | 7 + packages/beacon-core/lib/beacon-core.js | 7 + packages/beacon-core/package.json | 29 + packages/beacon-core/tsconfig.json | 7 + packages/beacon-dapp/README.md | 11 + .../beacon-dapp/__tests__/beacon-dapp.test.js | 7 + packages/beacon-dapp/lib/beacon-dapp.js | 7 + packages/beacon-dapp/package.json | 29 + packages/beacon-dapp/tsconfig.json | 7 + packages/beacon-protocol-substrate/README.md | 11 + .../beacon-protocol-substrate.test.js | 7 + .../lib/beacon-protocol-substrate.js | 7 + .../beacon-protocol-substrate/package.json | 29 + .../beacon-protocol-substrate/tsconfig.json | 7 + packages/beacon-protocol-tezos/README.md | 11 + .../__tests__/beacon-protocol-tezos.test.js | 7 + .../lib/beacon-protocol-tezos.js | 7 + packages/beacon-protocol-tezos/package.json | 29 + packages/beacon-protocol-tezos/tsconfig.json | 7 + packages/beacon-tezos/README.md | 11 + .../__tests__/beacon-tezos.test.js | 7 + packages/beacon-tezos/lib/beacon-tezos.js | 7 + packages/beacon-tezos/tsconfig.json | 7 + packages/beacon-transport-matrix/README.md | 11 + .../__tests__/beacon-transport-matrix.test.js | 7 + .../lib/beacon-transport-matrix.js | 7 + packages/beacon-transport-matrix/package.json | 29 + .../beacon-transport-matrix/tsconfig.json | 7 + .../beacon-transport-postmessage/README.md | 11 + .../beacon-transport-postmessage.test.js | 7 + .../lib/beacon-transport-postmessage.js | 7 + .../beacon-transport-postmessage/package.json | 29 + .../tsconfig.json | 7 + packages/beacon-types/README.md | 11 + .../__tests__/beacon-types.test.js | 7 + packages/beacon-types/lib/beacon-types.js | 7 + packages/beacon-types/package.json | 29 + packages/beacon-types/tsconfig.json | 7 + packages/beacon-ui/README.md | 11 + .../beacon-ui/__tests__/beacon-ui.test.js | 7 + packages/beacon-ui/lib/beacon-ui.js | 7 + packages/beacon-ui/package.json | 29 + packages/beacon-ui/tsconfig.json | 7 + packages/beacon-utils/README.md | 11 + .../__tests__/beacon-utils.test.js | 7 + packages/beacon-utils/lib/beacon-utils.js | 7 + packages/beacon-utils/package.json | 29 + packages/beacon-utils/tsconfig.json | 7 + packages/beacon-wallet/README.md | 11 + .../__tests__/beacon-wallet.test.js | 7 + packages/beacon-wallet/package.json | 29 + packages/beacon-wallet/tsconfig.json | 7 + 56 files changed, 18856 insertions(+), 8224 deletions(-) create mode 100644 lerna.json create mode 100644 packages/beacon-core/README.md create mode 100644 packages/beacon-core/__tests__/beacon-core.test.js create mode 100644 packages/beacon-core/lib/beacon-core.js create mode 100644 packages/beacon-core/package.json create mode 100644 packages/beacon-core/tsconfig.json create mode 100644 packages/beacon-dapp/README.md create mode 100644 packages/beacon-dapp/__tests__/beacon-dapp.test.js create mode 100644 packages/beacon-dapp/lib/beacon-dapp.js create mode 100644 packages/beacon-dapp/package.json create mode 100644 packages/beacon-dapp/tsconfig.json create mode 100644 packages/beacon-protocol-substrate/README.md create mode 100644 packages/beacon-protocol-substrate/__tests__/beacon-protocol-substrate.test.js create mode 100644 packages/beacon-protocol-substrate/lib/beacon-protocol-substrate.js create mode 100644 packages/beacon-protocol-substrate/package.json create mode 100644 packages/beacon-protocol-substrate/tsconfig.json create mode 100644 packages/beacon-protocol-tezos/README.md create mode 100644 packages/beacon-protocol-tezos/__tests__/beacon-protocol-tezos.test.js create mode 100644 packages/beacon-protocol-tezos/lib/beacon-protocol-tezos.js create mode 100644 packages/beacon-protocol-tezos/package.json create mode 100644 packages/beacon-protocol-tezos/tsconfig.json create mode 100644 packages/beacon-tezos/README.md create mode 100644 packages/beacon-tezos/__tests__/beacon-tezos.test.js create mode 100644 packages/beacon-tezos/lib/beacon-tezos.js create mode 100644 packages/beacon-tezos/tsconfig.json create mode 100644 packages/beacon-transport-matrix/README.md create mode 100644 packages/beacon-transport-matrix/__tests__/beacon-transport-matrix.test.js create mode 100644 packages/beacon-transport-matrix/lib/beacon-transport-matrix.js create mode 100644 packages/beacon-transport-matrix/package.json create mode 100644 packages/beacon-transport-matrix/tsconfig.json create mode 100644 packages/beacon-transport-postmessage/README.md create mode 100644 packages/beacon-transport-postmessage/__tests__/beacon-transport-postmessage.test.js create mode 100644 packages/beacon-transport-postmessage/lib/beacon-transport-postmessage.js create mode 100644 packages/beacon-transport-postmessage/package.json create mode 100644 packages/beacon-transport-postmessage/tsconfig.json create mode 100644 packages/beacon-types/README.md create mode 100644 packages/beacon-types/__tests__/beacon-types.test.js create mode 100644 packages/beacon-types/lib/beacon-types.js create mode 100644 packages/beacon-types/package.json create mode 100644 packages/beacon-types/tsconfig.json create mode 100644 packages/beacon-ui/README.md create mode 100644 packages/beacon-ui/__tests__/beacon-ui.test.js create mode 100644 packages/beacon-ui/lib/beacon-ui.js create mode 100644 packages/beacon-ui/package.json create mode 100644 packages/beacon-ui/tsconfig.json create mode 100644 packages/beacon-utils/README.md create mode 100644 packages/beacon-utils/__tests__/beacon-utils.test.js create mode 100644 packages/beacon-utils/lib/beacon-utils.js create mode 100644 packages/beacon-utils/package.json create mode 100644 packages/beacon-utils/tsconfig.json create mode 100644 packages/beacon-wallet/README.md create mode 100644 packages/beacon-wallet/__tests__/beacon-wallet.test.js create mode 100644 packages/beacon-wallet/package.json create mode 100644 packages/beacon-wallet/tsconfig.json diff --git a/lerna.json b/lerna.json new file mode 100644 index 000000000..f08f2573c --- /dev/null +++ b/lerna.json @@ -0,0 +1,4 @@ +{ + "packages": ["packages/*"], + "version": "0.0.0" +} diff --git a/package-lock.json b/package-lock.json index 1c2cb1f8e..f44903477 100755 --- a/package-lock.json +++ b/package-lock.json @@ -37,6 +37,7 @@ "husky": "4.2.5", "jsdom": "16.4.0", "jsdom-global": "3.0.2", + "lerna": "^4.0.0", "mocha": "7.1.2", "nyc": "15.0.1", "prettier": "2.0.5", @@ -696,21 +697,15 @@ "js-tokens": "^4.0.0" } }, - "node_modules/@babel/runtime": { - "version": "7.9.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", - "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", + "node_modules/@hutson/parse-repository-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", + "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/runtime/node_modules/regenerator-runtime": { - "version": "0.13.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", - "dev": true - }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz", @@ -1285,3301 +1280,3542 @@ "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", "dev": true }, - "node_modules/@sinonjs/commons": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", - "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", + "node_modules/@lerna/add": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/add/-/add-4.0.0.tgz", + "integrity": "sha512-cpmAH1iS3k8JBxNvnMqrGTTjbY/ZAiKa1ChJzFevMYY3eeqbvhsBKnBcxjRXtdrJ6bd3dCQM+ZtK+0i682Fhng==", "dev": true, "dependencies": { - "type-detect": "4.0.8" + "@lerna/bootstrap": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/filter-options": "4.0.0", + "@lerna/npm-conf": "4.0.0", + "@lerna/validation-error": "4.0.0", + "dedent": "^0.7.0", + "npm-package-arg": "^8.1.0", + "p-map": "^4.0.0", + "pacote": "^11.2.6", + "semver": "^7.3.4" + }, + "engines": { + "node": ">= 10.18.0" } }, - "node_modules/@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "node_modules/@lerna/add/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.7.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@sinonjs/formatio": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-5.0.1.tgz", - "integrity": "sha512-KaiQ5pBf1MpS09MuA0kp6KBQt2JUOQycqVG1NZXvzeaXe5LGFqAKueIS0bw4w0P9r7KuBSVdUk5QjXsUdu2CxQ==", + "node_modules/@lerna/bootstrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-4.0.0.tgz", + "integrity": "sha512-RkS7UbeM2vu+kJnHzxNRCLvoOP9yGNgkzRdy4UV2hNalD7EP41bLvRVOwRYQ7fhc2QcbhnKNdOBihYRL0LcKtw==", + "dev": true, + "dependencies": { + "@lerna/command": "4.0.0", + "@lerna/filter-options": "4.0.0", + "@lerna/has-npm-version": "4.0.0", + "@lerna/npm-install": "4.0.0", + "@lerna/package-graph": "4.0.0", + "@lerna/pulse-till-done": "4.0.0", + "@lerna/rimraf-dir": "4.0.0", + "@lerna/run-lifecycle": "4.0.0", + "@lerna/run-topologically": "4.0.0", + "@lerna/symlink-binary": "4.0.0", + "@lerna/symlink-dependencies": "4.0.0", + "@lerna/validation-error": "4.0.0", + "dedent": "^0.7.0", + "get-port": "^5.1.1", + "multimatch": "^5.0.0", + "npm-package-arg": "^8.1.0", + "npmlog": "^4.1.2", + "p-map": "^4.0.0", + "p-map-series": "^2.1.0", + "p-waterfall": "^2.1.1", + "read-package-tree": "^5.3.1", + "semver": "^7.3.4" + }, + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/bootstrap/node_modules/multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1", - "@sinonjs/samsam": "^5.0.2" + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@sinonjs/samsam": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.1.0.tgz", - "integrity": "sha512-42nyaQOVunX5Pm6GRJobmzbS7iLI+fhERITnETXzzwDZh+TtDr/Au3yAvXVjFmZ4wEUaE4Y3NFZfKv0bV0cbtg==", + "node_modules/@lerna/bootstrap/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.6.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", - "dev": true - }, - "node_modules/@types/chai": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.4.tgz", - "integrity": "sha512-7qvf9F9tMTzo0akeswHPGqgUx/gIaJqrOEET/FCD8CFRkSUHlygQiM5yB6OvjrtdxBVLSyw7COJubsFYs0683g==", - "dev": true - }, - "node_modules/@types/chai-as-promised": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.2.tgz", - "integrity": "sha512-PO2gcfR3Oxa+u0QvECLe1xKXOqYTzCmWf0FhLhjREoW3fPAVamjihL7v1MOVLJLsnAMdLcjkfrs01yvDMwVK4Q==", + "node_modules/@lerna/changed": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-4.0.0.tgz", + "integrity": "sha512-cD+KuPRp6qiPOD+BO6S6SN5cARspIaWSOqGBpGnYzLb4uWT8Vk4JzKyYtc8ym1DIwyoFXHosXt8+GDAgR8QrgQ==", "dev": true, "dependencies": { - "@types/chai": "*" - } - }, - "node_modules/@types/chrome": { - "version": "0.0.115", - "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.115.tgz", - "integrity": "sha512-pNoYoYgGuI1/kiz53kjrXrKIjn2H8YWOI+vxVTOubX6arCHk/m/jInoyflKiP2qZHZf8+P+hh6d2y9tjaG4BPQ==", - "dependencies": { - "@types/filesystem": "*", - "@types/har-format": "*" + "@lerna/collect-updates": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/listable": "4.0.0", + "@lerna/output": "4.0.0" + }, + "engines": { + "node": ">= 10.18.0" } }, - "node_modules/@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "node_modules/@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", - "dev": true - }, - "node_modules/@types/filesystem": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.29.tgz", - "integrity": "sha512-85/1KfRedmfPGsbK8YzeaQUyV1FQAvMPMTuWFQ5EkLd2w7szhNO96bk3Rh/SKmOfd9co2rCLf0Voy4o7ECBOvw==", + "node_modules/@lerna/check-working-tree": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-4.0.0.tgz", + "integrity": "sha512-/++bxM43jYJCshBiKP5cRlCTwSJdRSxVmcDAXM+1oUewlZJVSVlnks5eO0uLxokVFvLhHlC5kHMc7gbVFPHv6Q==", + "dev": true, "dependencies": { - "@types/filewriter": "*" + "@lerna/collect-uncommitted": "4.0.0", + "@lerna/describe-ref": "4.0.0", + "@lerna/validation-error": "4.0.0" + }, + "engines": { + "node": ">= 10.18.0" } }, - "node_modules/@types/filewriter": { - "version": "0.0.28", - "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.28.tgz", - "integrity": "sha1-wFTor02d11205jq8dviFFocU1LM=" - }, - "node_modules/@types/har-format": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.4.tgz", - "integrity": "sha512-iUxzm1meBm3stxUMzRqgOVHjj4Kgpgu5w9fm4X7kPRfSgVRzythsucEN7/jtOo8SQzm+HfcxWWzJS0mJDH/3DQ==" - }, - "node_modules/@types/json-schema": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", - "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==", - "dev": true - }, - "node_modules/@types/libsodium-wrappers": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.7.tgz", - "integrity": "sha512-Li91pVKcLvQJK3ZolwCPo85oxf2gKBCApgnesRxYg4OVYchLXcJB2eivX8S87vfQVv6ZRnyCO1lLDosZGJfpRg==" - }, - "node_modules/@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "node_modules/@types/mocha": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-7.0.2.tgz", - "integrity": "sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==", - "dev": true - }, - "node_modules/@types/node": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.1.tgz", - "integrity": "sha512-FAYBGwC+W6F9+huFIDtn43cpy7+SzG+atzRiTfdp3inUKL2hXnd4rG8hylJLIh4+hqrQy1P17kvJByE/z825hA==", - "dev": true - }, - "node_modules/@types/parse-json": { + "node_modules/@lerna/child-process": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "node_modules/@types/sinon": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-9.0.5.tgz", - "integrity": "sha512-4CnkGdM/5/FXDGqL32JQ1ttVrGvhOoesLLF7VnTh4KdjK5N5VQOtxaylFqqTjnHx55MnD9O02Nbk5c1ELC8wlQ==", + "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-4.0.0.tgz", + "integrity": "sha512-XtCnmCT9eyVsUUHx6y/CTBYdV9g2Cr/VxyseTWBgfIur92/YKClfEtJTbOh94jRT62hlKLqSvux/UhxXVh613Q==", "dev": true, "dependencies": { - "@types/sinonjs__fake-timers": "*" + "chalk": "^4.1.0", + "execa": "^5.0.0", + "strong-log-transformer": "^2.1.0" + }, + "engines": { + "node": ">= 10.18.0" } }, - "node_modules/@types/sinonjs__fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz", - "integrity": "sha512-yYezQwGWty8ziyYLdZjwxyMb0CZR49h8JALHGrxjQHWlqGgc8kLdHEgWrgL0uZ29DMvEVBDnHU2Wg36zKSIUtA==", - "dev": true - }, - "node_modules/@types/yauzl": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz", - "integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==", + "node_modules/@lerna/child-process/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "optional": true, "dependencies": { - "@types/node": "*" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.33.0.tgz", - "integrity": "sha512-QV6P32Btu1sCI/kTqjTNI/8OpCYyvlGjW5vD8MpTIg+HGE5S88HtT1G+880M4bXlvXj/NjsJJG0aGcVh0DdbeQ==", + "node_modules/@lerna/child-process/node_modules/chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { - "@typescript-eslint/experimental-utils": "2.33.0", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "tsutils": "^3.17.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@typescript-eslint/eslint-plugin-tslint": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-2.33.0.tgz", - "integrity": "sha512-DXy14tWbs4NVMv/1ADDLfh9jy8ZloZHTuIKEE1Ufs7OGvAu6Ft5Rw7G1RsgfykEENSqy32Mycj5Q6jxN7AXmNA==", + "node_modules/@lerna/child-process/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "@typescript-eslint/experimental-utils": "2.33.0", - "lodash": "^4.17.15" + "color-name": "~1.1.4" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": ">=7.0.0" } }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.33.0.tgz", - "integrity": "sha512-qzPM2AuxtMrRq78LwyZa8Qn6gcY8obkIrBs1ehqmQADwkYzTE1Pb4y2W+U3rE/iFkSWcWHG2LS6MJfj6SmHApg==", + "node_modules/@lerna/child-process/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@lerna/child-process/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.33.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": ">=8" } }, - "node_modules/@typescript-eslint/parser": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.33.0.tgz", - "integrity": "sha512-AUtmwUUhJoH6yrtxZMHbRUEMsC2G6z5NSxg9KsROOGqNXasM71I8P2NihtumlWTUCRld70vqIZ6Pm4E5PAziEA==", + "node_modules/@lerna/child-process/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.33.0", - "@typescript-eslint/typescript-estree": "2.33.0", - "eslint-visitor-keys": "^1.1.0" + "has-flag": "^4.0.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": ">=8" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.33.0.tgz", - "integrity": "sha512-d8rY6/yUxb0+mEwTShCQF2zYQdLlqihukNfG9IUlLYz5y1CH6G/9XYbrxQLq3Z14RNvkCC6oe+OcFlyUpwUbkg==", + "node_modules/@lerna/clean": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-4.0.0.tgz", + "integrity": "sha512-uugG2iN9k45ITx2jtd8nEOoAtca8hNlDCUM0N3lFgU/b1mEQYAPRkqr1qs4FLRl/Y50ZJ41wUz1eazS+d/0osA==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "@lerna/command": "4.0.0", + "@lerna/filter-options": "4.0.0", + "@lerna/prompt": "4.0.0", + "@lerna/pulse-till-done": "4.0.0", + "@lerna/rimraf-dir": "4.0.0", + "p-map": "^4.0.0", + "p-map-series": "^2.1.0", + "p-waterfall": "^2.1.1" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": ">= 10.18.0" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "node_modules/@lerna/cli": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-4.0.0.tgz", + "integrity": "sha512-Neaw3GzFrwZiRZv2g7g6NwFjs3er1vhraIniEs0jjVLPMNC4eata0na3GfE5yibkM/9d3gZdmihhZdZ3EBdvYA==", "dev": true, "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "@lerna/global-options": "4.0.0", + "dedent": "^0.7.0", + "npmlog": "^4.1.2", + "yargs": "^16.2.0" }, "engines": { - "node": "*" + "node": ">= 10.18.0" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "node_modules/@lerna/cli/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true, - "bin": { - "semver": "bin/semver.js" - }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/abab": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz", - "integrity": "sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==", - "dev": true - }, - "node_modules/acorn": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", - "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", + "node_modules/@lerna/cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "color-convert": "^2.0.1" }, "engines": { - "node": ">=0.4.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "node_modules/@lerna/cli/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "node_modules/@lerna/cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@lerna/cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "node_modules/@lerna/cli/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/@lerna/cli/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" + "engines": { + "node": ">=8" } }, - "node_modules/acorn-walk": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz", - "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==", + "node_modules/@lerna/cli/node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, "engines": { - "node": ">=0.4.0" + "node": ">=8" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/@lerna/cli/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "dependencies": { - "debug": "4" + "ansi-regex": "^5.0.0" }, "engines": { - "node": ">= 6.0.0" + "node": ">=8" } }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/@lerna/cli/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { - "ms": "2.1.2" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=6.0" + "node": ">=10" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "node_modules/@lerna/cli/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } }, - "node_modules/aggregate-error": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", - "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "node_modules/@lerna/cli/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "node_modules/@lerna/cli/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, - "dependencies": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "engines": { + "node": ">=10" } }, - "node_modules/ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "node_modules/@lerna/collect-uncommitted": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-4.0.0.tgz", + "integrity": "sha512-ufSTfHZzbx69YNj7KXQ3o66V4RC76ffOjwLX0q/ab//61bObJ41n03SiQEhSlmpP+gmFbTJ3/7pTe04AHX9m/g==", "dev": true, + "dependencies": { + "@lerna/child-process": "4.0.0", + "chalk": "^4.1.0", + "npmlog": "^4.1.2" + }, "engines": { - "node": ">=6" + "node": ">= 10.18.0" } }, - "node_modules/ansi-escapes": { + "node_modules/@lerna/collect-uncommitted/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", - "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "type-fest": "^0.8.1" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "node_modules/@lerna/collect-uncommitted/node_modules/chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@lerna/collect-uncommitted/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "color-convert": "^1.9.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=4" + "node": ">=7.0.0" } }, - "node_modules/any-base": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", - "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==", + "node_modules/@lerna/collect-uncommitted/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "node_modules/@lerna/collect-uncommitted/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "default-require-extensions": "^3.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/@lerna/collect-uncommitted/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "sprintf-js": "~1.0.2" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "node_modules/@lerna/collect-updates": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-4.0.0.tgz", + "integrity": "sha512-bnNGpaj4zuxsEkyaCZLka9s7nMs58uZoxrRIPJ+nrmrZYp1V5rrd+7/NYTuunOhY2ug1sTBvTAxj3NZQ+JKnOw==", "dev": true, + "dependencies": { + "@lerna/child-process": "4.0.0", + "@lerna/describe-ref": "4.0.0", + "minimatch": "^3.0.4", + "npmlog": "^4.1.2", + "slash": "^3.0.0" + }, "engines": { - "node": ">=8" + "node": ">= 10.18.0" } }, - "node_modules/array-includes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", - "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "node_modules/@lerna/command": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/command/-/command-4.0.0.tgz", + "integrity": "sha512-LM9g3rt5FsPNFqIHUeRwWXLNHJ5NKzOwmVKZ8anSp4e1SPrv2HNc1V02/9QyDDZK/w+5POXH5lxZUI1CHaOK/A==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "is-string": "^1.0.5" + "@lerna/child-process": "4.0.0", + "@lerna/package-graph": "4.0.0", + "@lerna/project": "4.0.0", + "@lerna/validation-error": "4.0.0", + "@lerna/write-log-file": "4.0.0", + "clone-deep": "^4.0.1", + "dedent": "^0.7.0", + "execa": "^5.0.0", + "is-ci": "^2.0.0", + "npmlog": "^4.1.2" }, "engines": { - "node": ">= 0.4" + "node": ">= 10.18.0" } }, - "node_modules/array-includes/node_modules/es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "node_modules/@lerna/conventional-commits": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-4.0.0.tgz", + "integrity": "sha512-CSUQRjJHFrH8eBn7+wegZLV3OrNc0Y1FehYfYGhjLE2SIfpCL4bmfu/ViYuHh9YjwHaA+4SX6d3hR+xkeseKmw==", "dev": true, "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" + "@lerna/validation-error": "4.0.0", + "conventional-changelog-angular": "^5.0.12", + "conventional-changelog-core": "^4.2.2", + "conventional-recommended-bump": "^6.1.0", + "fs-extra": "^9.1.0", + "get-stream": "^6.0.0", + "lodash.template": "^4.5.0", + "npm-package-arg": "^8.1.0", + "npmlog": "^4.1.2", + "pify": "^5.0.0", + "semver": "^7.3.4" }, "engines": { - "node": ">= 0.4" + "node": ">= 10.18.0" } }, - "node_modules/array-includes/node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "node_modules/@lerna/conventional-commits/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@lerna/conventional-commits/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">= 0.4" + "node": ">=10" } }, - "node_modules/array-includes/node_modules/has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "node_modules/@lerna/create": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/create/-/create-4.0.0.tgz", + "integrity": "sha512-mVOB1niKByEUfxlbKTM1UNECWAjwUdiioIbRQZEeEabtjCL69r9rscIsjlGyhGWCfsdAG5wfq4t47nlDXdLLag==", "dev": true, + "dependencies": { + "@lerna/child-process": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/npm-conf": "4.0.0", + "@lerna/validation-error": "4.0.0", + "dedent": "^0.7.0", + "fs-extra": "^9.1.0", + "globby": "^11.0.2", + "init-package-json": "^2.0.2", + "npm-package-arg": "^8.1.0", + "p-reduce": "^2.1.0", + "pacote": "^11.2.6", + "pify": "^5.0.0", + "semver": "^7.3.4", + "slash": "^3.0.0", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^3.0.0", + "whatwg-url": "^8.4.0", + "yargs-parser": "20.2.4" + }, "engines": { - "node": ">= 0.4" + "node": ">= 10.18.0" } }, - "node_modules/array-includes/node_modules/is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "node_modules/@lerna/create-symlink": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-4.0.0.tgz", + "integrity": "sha512-I0phtKJJdafUiDwm7BBlEUOtogmu8+taxq6PtIrxZbllV9hWg59qkpuIsiFp+no7nfRVuaasNYHwNUhDAVQBig==", "dev": true, + "dependencies": { + "cmd-shim": "^4.1.0", + "fs-extra": "^9.1.0", + "npmlog": "^4.1.2" + }, "engines": { - "node": ">= 0.4" + "node": ">= 10.18.0" } }, - "node_modules/array-includes/node_modules/is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "node_modules/@lerna/create/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { - "has": "^1.0.3" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">= 0.4" + "node": ">=10" } }, - "node_modules/array-includes/node_modules/object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true + "node_modules/@lerna/create/node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } }, - "node_modules/array-includes/node_modules/string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "node_modules/@lerna/describe-ref": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-4.0.0.tgz", + "integrity": "sha512-eTU5+xC4C5Gcgz+Ey4Qiw9nV2B4JJbMulsYJMW8QjGcGh8zudib7Sduj6urgZXUYNyhYpRs+teci9M2J8u+UvQ==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" + "@lerna/child-process": "4.0.0", + "npmlog": "^4.1.2" }, "engines": { - "node": ">= 0.4" + "node": ">= 10.18.0" } }, - "node_modules/array-includes/node_modules/string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "node_modules/@lerna/diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-4.0.0.tgz", + "integrity": "sha512-jYPKprQVg41+MUMxx6cwtqsNm0Yxx9GDEwdiPLwcUTFx+/qKCEwifKNJ1oGIPBxyEHX2PFCOjkK39lHoj2qiag==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" + "@lerna/child-process": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/validation-error": "4.0.0", + "npmlog": "^4.1.2" }, "engines": { - "node": ">= 0.4" + "node": ">= 10.18.0" } }, - "node_modules/array.prototype.flat": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", - "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "node_modules/@lerna/exec": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-4.0.0.tgz", + "integrity": "sha512-VGXtL/b/JfY84NB98VWZpIExfhLOzy0ozm/0XaS4a2SmkAJc5CeUfrhvHxxkxiTBLkU+iVQUyYEoAT0ulQ8PCw==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "@lerna/child-process": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/filter-options": "4.0.0", + "@lerna/profiler": "4.0.0", + "@lerna/run-topologically": "4.0.0", + "@lerna/validation-error": "4.0.0", + "p-map": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">= 10.18.0" } }, - "node_modules/array.prototype.flat/node_modules/es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "node_modules/@lerna/filter-options": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-4.0.0.tgz", + "integrity": "sha512-vV2ANOeZhOqM0rzXnYcFFCJ/kBWy/3OA58irXih9AMTAlQLymWAK0akWybl++sUJ4HB9Hx12TOqaXbYS2NM5uw==", "dev": true, "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" + "@lerna/collect-updates": "4.0.0", + "@lerna/filter-packages": "4.0.0", + "dedent": "^0.7.0", + "npmlog": "^4.1.2" }, "engines": { - "node": ">= 0.4" + "node": ">= 10.18.0" } }, - "node_modules/array.prototype.flat/node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "node_modules/@lerna/filter-packages": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-4.0.0.tgz", + "integrity": "sha512-+4AJIkK7iIiOaqCiVTYJxh/I9qikk4XjNQLhE3kixaqgMuHl1NQ99qXRR0OZqAWB9mh8Z1HA9bM5K1HZLBTOqA==", "dev": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "@lerna/validation-error": "4.0.0", + "multimatch": "^5.0.0", + "npmlog": "^4.1.2" }, "engines": { - "node": ">= 0.4" + "node": ">= 10.18.0" } }, - "node_modules/array.prototype.flat/node_modules/has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "node_modules/@lerna/filter-packages/node_modules/multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", "dev": true, + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, "engines": { - "node": ">= 0.4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/array.prototype.flat/node_modules/is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "node_modules/@lerna/get-npm-exec-opts": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-4.0.0.tgz", + "integrity": "sha512-yvmkerU31CTWS2c7DvmAWmZVeclPBqI7gPVr5VATUKNWJ/zmVcU4PqbYoLu92I9Qc4gY1TuUplMNdNuZTSL7IQ==", "dev": true, + "dependencies": { + "npmlog": "^4.1.2" + }, "engines": { - "node": ">= 0.4" + "node": ">= 10.18.0" } }, - "node_modules/array.prototype.flat/node_modules/is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "node_modules/@lerna/get-packed": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-4.0.0.tgz", + "integrity": "sha512-rfWONRsEIGyPJTxFzC8ECb3ZbsDXJbfqWYyeeQQDrJRPnEJErlltRLPLgC2QWbxFgFPsoDLeQmFHJnf0iDfd8w==", "dev": true, "dependencies": { - "has": "^1.0.3" + "fs-extra": "^9.1.0", + "ssri": "^8.0.1", + "tar": "^6.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">= 10.18.0" } }, - "node_modules/array.prototype.flat/node_modules/object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true - }, - "node_modules/array.prototype.flat/node_modules/string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "node_modules/@lerna/github-client": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-4.0.0.tgz", + "integrity": "sha512-2jhsldZtTKXYUBnOm23Lb0Fx8G4qfSXF9y7UpyUgWUj+YZYd+cFxSuorwQIgk5P4XXrtVhsUesIsli+BYSThiw==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" + "@lerna/child-process": "4.0.0", + "@octokit/plugin-enterprise-rest": "^6.0.1", + "@octokit/rest": "^18.1.0", + "git-url-parse": "^11.4.4", + "npmlog": "^4.1.2" }, "engines": { - "node": ">= 0.4" + "node": ">= 10.18.0" } }, - "node_modules/array.prototype.flat/node_modules/string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "node_modules/@lerna/gitlab-client": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-4.0.0.tgz", + "integrity": "sha512-OMUpGSkeDWFf7BxGHlkbb35T7YHqVFCwBPSIR6wRsszY8PAzCYahtH3IaJzEJyUg6vmZsNl0FSr3pdA2skhxqA==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" + "node-fetch": "^2.6.1", + "npmlog": "^4.1.2", + "whatwg-url": "^8.4.0" }, "engines": { - "node": ">= 0.4" + "node": ">= 10.18.0" } }, - "node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "node_modules/@lerna/global-options": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-4.0.0.tgz", + "integrity": "sha512-TRMR8afAHxuYBHK7F++Ogop2a82xQjoGna1dvPOY6ltj/pEx59pdgcJfYcynYqMkFIk8bhLJJN9/ndIfX29FTQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">= 10.18.0" } }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "node_modules/@lerna/has-npm-version": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-4.0.0.tgz", + "integrity": "sha512-LQ3U6XFH8ZmLCsvsgq1zNDqka0Xzjq5ibVN+igAI5ccRWNaUsE/OcmsyMr50xAtNQMYMzmpw5GVLAivT2/YzCg==", "dev": true, "dependencies": { - "safer-buffer": "~2.1.0" + "@lerna/child-process": "4.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">= 10.18.0" } }, - "node_modules/asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "node_modules/@lerna/has-npm-version/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "node_modules/@lerna/import": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/import/-/import-4.0.0.tgz", + "integrity": "sha512-FaIhd+4aiBousKNqC7TX1Uhe97eNKf5/SC7c5WZANVWtC7aBWdmswwDt3usrzCNpj6/Wwr9EtEbYROzxKH8ffg==", "dev": true, "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" + "@lerna/child-process": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/prompt": "4.0.0", + "@lerna/pulse-till-done": "4.0.0", + "@lerna/validation-error": "4.0.0", + "dedent": "^0.7.0", + "fs-extra": "^9.1.0", + "p-map-series": "^2.1.0" + }, + "engines": { + "node": ">= 10.18.0" } }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "node_modules/@lerna/info": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/info/-/info-4.0.0.tgz", + "integrity": "sha512-8Uboa12kaCSZEn4XRfPz5KU9XXoexSPS4oeYGj76s2UQb1O1GdnEyfjyNWoUl1KlJ2i/8nxUskpXIftoFYH0/Q==", "dev": true, + "dependencies": { + "@lerna/command": "4.0.0", + "@lerna/output": "4.0.0", + "envinfo": "^7.7.4" + }, "engines": { - "node": ">=0.8" + "node": ">= 10.18.0" } }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "node_modules/@lerna/init": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/init/-/init-4.0.0.tgz", + "integrity": "sha512-wY6kygop0BCXupzWj5eLvTUqdR7vIAm0OgyV9WHpMYQGfs1V22jhztt8mtjCloD/O0nEe4tJhdG62XU5aYmPNQ==", "dev": true, "dependencies": { - "inherits": "2.0.1" + "@lerna/child-process": "4.0.0", + "@lerna/command": "4.0.0", + "fs-extra": "^9.1.0", + "p-map": "^4.0.0", + "write-json-file": "^4.3.0" + }, + "engines": { + "node": ">= 10.18.0" } }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "node_modules/@lerna/link": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/link/-/link-4.0.0.tgz", + "integrity": "sha512-KlvPi7XTAcVOByfaLlOeYOfkkDcd+bejpHMCd1KcArcFTwijOwXOVi24DYomIeHvy6HsX/IUquJ4PPUJIeB4+w==", "dev": true, + "dependencies": { + "@lerna/command": "4.0.0", + "@lerna/package-graph": "4.0.0", + "@lerna/symlink-dependencies": "4.0.0", + "p-map": "^4.0.0", + "slash": "^3.0.0" + }, "engines": { - "node": "*" + "node": ">= 10.18.0" } }, - "node_modules/astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "node_modules/@lerna/list": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/list/-/list-4.0.0.tgz", + "integrity": "sha512-L2B5m3P+U4Bif5PultR4TI+KtW+SArwq1i75QZ78mRYxPc0U/piau1DbLOmwrdqr99wzM49t0Dlvl6twd7GHFg==", "dev": true, + "dependencies": { + "@lerna/command": "4.0.0", + "@lerna/filter-options": "4.0.0", + "@lerna/listable": "4.0.0", + "@lerna/output": "4.0.0" + }, "engines": { - "node": ">=4" + "node": ">= 10.18.0" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "node_modules/@lerna/listable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-4.0.0.tgz", + "integrity": "sha512-/rPOSDKsOHs5/PBLINZOkRIX1joOXUXEtyUs5DHLM8q6/RP668x/1lFhw6Dx7/U+L0+tbkpGtZ1Yt0LewCLgeQ==", "dev": true, + "dependencies": { + "@lerna/query-graph": "4.0.0", + "chalk": "^4.1.0", + "columnify": "^1.5.4" + }, "engines": { - "node": ">= 4.0.0" + "node": ">= 10.18.0" } }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "node_modules/@lerna/listable/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": "*" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/aws4": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", - "dev": true - }, - "node_modules/axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "node_modules/@lerna/listable/node_modules/chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, "dependencies": { - "follow-redirects": "^1.10.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/axios-mock-adapter": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.18.2.tgz", - "integrity": "sha512-e5aTsPy2Viov22zNpFTlid76W1Scz82pXeEwwCXdtO85LROhHAF8pHF2qDhiyMONLxKyY3lQ+S4UCsKgrlx8Hw==", + "node_modules/@lerna/listable/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "is-buffer": "^2.0.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/axios-mock-adapter/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "node_modules/@lerna/listable/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "node_modules/@lerna/listable/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/base-x": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.7.tgz", - "integrity": "sha512-zAKJGuQPihXW22fkrfOclUUZXM2g92z5GzlSMHxhO6r6Qj+Nm0ccaGNBzDZojzwOMkpjAv4J0fOv1U4go+a4iw==", + "node_modules/@lerna/listable/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "safe-buffer": "^5.0.1" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", - "dev": true + "node_modules/@lerna/log-packed": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-4.0.0.tgz", + "integrity": "sha512-+dpCiWbdzgMAtpajLToy9PO713IHoE6GV/aizXycAyA07QlqnkpaBNZ8DW84gHdM1j79TWockGJo9PybVhrrZQ==", + "dev": true, + "dependencies": { + "byte-size": "^7.0.0", + "columnify": "^1.5.4", + "has-unicode": "^2.0.1", + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" + } }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "node_modules/@lerna/npm-conf": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-4.0.0.tgz", + "integrity": "sha512-uS7H02yQNq3oejgjxAxqq/jhwGEE0W0ntr8vM3EfpCW1F/wZruwQw+7bleJQ9vUBjmdXST//tk8mXzr5+JXCfw==", "dev": true, "dependencies": { - "tweetnacl": "^0.14.3" + "config-chain": "^1.1.12", + "pify": "^5.0.0" + }, + "engines": { + "node": ">= 10.18.0" } }, - "node_modules/bignumber.js": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", - "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", + "node_modules/@lerna/npm-dist-tag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-4.0.0.tgz", + "integrity": "sha512-F20sg28FMYTgXqEQihgoqSfwmq+Id3zT23CnOwD+XQMPSy9IzyLf1fFVH319vXIw6NF6Pgs4JZN2Qty6/CQXGw==", + "dev": true, + "dependencies": { + "@lerna/otplease": "4.0.0", + "npm-package-arg": "^8.1.0", + "npm-registry-fetch": "^9.0.0", + "npmlog": "^4.1.2" + }, "engines": { - "node": "*" + "node": ">= 10.18.0" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "node_modules/@lerna/npm-install": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-4.0.0.tgz", + "integrity": "sha512-aKNxq2j3bCH3eXl3Fmu4D54s/YLL9WSwV8W7X2O25r98wzrO38AUN6AB9EtmAx+LV/SP15et7Yueg9vSaanRWg==", "dev": true, "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "@lerna/child-process": "4.0.0", + "@lerna/get-npm-exec-opts": "4.0.0", + "fs-extra": "^9.1.0", + "npm-package-arg": "^8.1.0", + "npmlog": "^4.1.2", + "signal-exit": "^3.0.3", + "write-pkg": "^4.0.0" + }, + "engines": { + "node": ">= 10.18.0" } }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "node_modules/@lerna/npm-publish": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-4.0.0.tgz", + "integrity": "sha512-vQb7yAPRo5G5r77DRjHITc9piR9gvEKWrmfCH7wkfBnGWEqu7n8/4bFQ7lhnkujvc8RXOsYpvbMQkNfkYibD/w==", "dev": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "@lerna/otplease": "4.0.0", + "@lerna/run-lifecycle": "4.0.0", + "fs-extra": "^9.1.0", + "libnpmpublish": "^4.0.0", + "npm-package-arg": "^8.1.0", + "npmlog": "^4.1.2", + "pify": "^5.0.0", + "read-package-json": "^3.0.0" }, "engines": { - "node": ">= 6" + "node": ">= 10.18.0" } }, - "node_modules/bmp-js": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", - "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=", - "dev": true + "node_modules/@lerna/npm-run-script": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-4.0.0.tgz", + "integrity": "sha512-Jmyh9/IwXJjOXqKfIgtxi0bxi1pUeKe5bD3S81tkcy+kyng/GNj9WSqD5ZggoNP2NP//s4CLDAtUYLdP7CU9rA==", + "dev": true, + "dependencies": { + "@lerna/child-process": "4.0.0", + "@lerna/get-npm-exec-opts": "4.0.0", + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" + } }, - "node_modules/bn.js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA==", - "dev": true + "node_modules/@lerna/otplease": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-4.0.0.tgz", + "integrity": "sha512-Sgzbqdk1GH4psNiT6hk+BhjOfIr/5KhGBk86CEfHNJTk9BK4aZYyJD4lpDbDdMjIV4g03G7pYoqHzH765T4fxw==", + "dev": true, + "dependencies": { + "@lerna/prompt": "4.0.0" + }, + "engines": { + "node": ">= 10.18.0" + } }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@lerna/output": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/output/-/output-4.0.0.tgz", + "integrity": "sha512-Un1sHtO1AD7buDQrpnaYTi2EG6sLF+KOPEAMxeUYG5qG3khTs2Zgzq5WE3dt2N/bKh7naESt20JjIW6tBELP0w==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" } }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true + "node_modules/@lerna/pack-directory": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-4.0.0.tgz", + "integrity": "sha512-NJrmZNmBHS+5aM+T8N6FVbaKFScVqKlQFJNY2k7nsJ/uklNKsLLl6VhTQBPwMTbf6Tf7l6bcKzpy7aePuq9UiQ==", + "dev": true, + "dependencies": { + "@lerna/get-packed": "4.0.0", + "@lerna/package": "4.0.0", + "@lerna/run-lifecycle": "4.0.0", + "npm-packlist": "^2.1.4", + "npmlog": "^4.1.2", + "tar": "^6.1.0", + "temp-write": "^4.0.0" + }, + "engines": { + "node": ">= 10.18.0" + } }, - "node_modules/browser-pack": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", - "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", + "node_modules/@lerna/package": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/package/-/package-4.0.0.tgz", + "integrity": "sha512-l0M/izok6FlyyitxiQKr+gZLVFnvxRQdNhzmQ6nRnN9dvBJWn+IxxpM+cLqGACatTnyo9LDzNTOj2Db3+s0s8Q==", "dev": true, "dependencies": { - "combine-source-map": "~0.8.0", - "defined": "^1.0.0", - "JSONStream": "^1.0.3", - "safe-buffer": "^5.1.1", - "through2": "^2.0.0", - "umd": "^3.0.0" + "load-json-file": "^6.2.0", + "npm-package-arg": "^8.1.0", + "write-pkg": "^4.0.0" }, - "bin": { - "browser-pack": "bin/cmd.js" + "engines": { + "node": ">= 10.18.0" } }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true + "node_modules/@lerna/package-graph": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-4.0.0.tgz", + "integrity": "sha512-QED2ZCTkfXMKFoTGoccwUzjHtZMSf3UKX14A4/kYyBms9xfFsesCZ6SLI5YeySEgcul8iuIWfQFZqRw+Qrjraw==", + "dev": true, + "dependencies": { + "@lerna/prerelease-id-from-version": "4.0.0", + "@lerna/validation-error": "4.0.0", + "npm-package-arg": "^8.1.0", + "npmlog": "^4.1.2", + "semver": "^7.3.4" + }, + "engines": { + "node": ">= 10.18.0" + } }, - "node_modules/browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "node_modules/@lerna/package-graph/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { - "resolve": "1.1.7" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/browser-resolve/node_modules/resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true + "node_modules/@lerna/prerelease-id-from-version": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-4.0.0.tgz", + "integrity": "sha512-GQqguzETdsYRxOSmdFZ6zDBXDErIETWOqomLERRY54f4p+tk4aJjoVdd9xKwehC9TBfIFvlRbL1V9uQGHh1opg==", + "dev": true, + "dependencies": { + "semver": "^7.3.4" + }, + "engines": { + "node": ">= 10.18.0" + } }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true + "node_modules/@lerna/prerelease-id-from-version/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/browserify": { - "version": "16.5.1", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.1.tgz", - "integrity": "sha512-EQX0h59Pp+0GtSRb5rL6OTfrttlzv+uyaUVlK6GX3w11SQ0jKPKyjC/54RhPR2ib2KmfcELM06e8FxcI5XNU2A==", + "node_modules/@lerna/profiler": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-4.0.0.tgz", + "integrity": "sha512-/BaEbqnVh1LgW/+qz8wCuI+obzi5/vRE8nlhjPzdEzdmWmZXuCKyWSEzAyHOJWw1ntwMiww5dZHhFQABuoFz9Q==", "dev": true, "dependencies": { - "assert": "^1.4.0", - "browser-pack": "^6.0.1", - "browser-resolve": "^1.11.0", - "browserify-zlib": "~0.2.0", - "buffer": "~5.2.1", - "cached-path-relative": "^1.0.0", - "concat-stream": "^1.6.0", - "console-browserify": "^1.1.0", - "constants-browserify": "~1.0.0", - "crypto-browserify": "^3.0.0", - "defined": "^1.0.0", - "deps-sort": "^2.0.0", - "domain-browser": "^1.2.0", - "duplexer2": "~0.1.2", - "events": "^2.0.0", - "glob": "^7.1.0", - "has": "^1.0.0", - "htmlescape": "^1.1.0", - "https-browserify": "^1.0.0", - "inherits": "~2.0.1", - "insert-module-globals": "^7.0.0", - "JSONStream": "^1.0.3", - "labeled-stream-splicer": "^2.0.0", - "mkdirp-classic": "^0.5.2", - "module-deps": "^6.0.0", - "os-browserify": "~0.3.0", - "parents": "^1.0.1", - "path-browserify": "~0.0.0", - "process": "~0.11.0", - "punycode": "^1.3.2", - "querystring-es3": "~0.2.0", - "read-only-stream": "^2.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.1.4", - "shasum": "^1.0.0", - "shell-quote": "^1.6.1", - "stream-browserify": "^2.0.0", - "stream-http": "^3.0.0", - "string_decoder": "^1.1.1", - "subarg": "^1.0.0", - "syntax-error": "^1.1.1", - "through2": "^2.0.0", - "timers-browserify": "^1.0.1", - "tty-browserify": "0.0.1", - "url": "~0.11.0", - "util": "~0.10.1", - "vm-browserify": "^1.0.0", - "xtend": "^4.0.0" + "fs-extra": "^9.1.0", + "npmlog": "^4.1.2", + "upath": "^2.0.1" }, - "bin": { - "browserify": "bin/cmd.js" + "engines": { + "node": ">= 10.18.0" + } + }, + "node_modules/@lerna/project": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/project/-/project-4.0.0.tgz", + "integrity": "sha512-o0MlVbDkD5qRPkFKlBZsXZjoNTWPyuL58564nSfZJ6JYNmgAptnWPB2dQlAc7HWRZkmnC2fCkEdoU+jioPavbg==", + "dev": true, + "dependencies": { + "@lerna/package": "4.0.0", + "@lerna/validation-error": "4.0.0", + "cosmiconfig": "^7.0.0", + "dedent": "^0.7.0", + "dot-prop": "^6.0.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.2", + "load-json-file": "^6.2.0", + "npmlog": "^4.1.2", + "p-map": "^4.0.0", + "resolve-from": "^5.0.0", + "write-json-file": "^4.3.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 10.18.0" } }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "node_modules/@lerna/project/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "engines": { + "node": ">=8" } }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "node_modules/@lerna/prompt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-4.0.0.tgz", + "integrity": "sha512-4Ig46oCH1TH5M7YyTt53fT6TuaKMgqUUaqdgxvp6HP6jtdak6+amcsqB8YGz2eQnw/sdxunx84DfI9XpoLj4bQ==", "dev": true, "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" + "inquirer": "^7.3.3", + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" } }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "node_modules/@lerna/publish": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-4.0.0.tgz", + "integrity": "sha512-K8jpqjHrChH22qtkytA5GRKIVFEtqBF6JWj1I8dWZtHs4Jywn8yB1jQ3BAMLhqmDJjWJtRck0KXhQQKzDK2UPg==", + "dev": true, + "dependencies": { + "@lerna/check-working-tree": "4.0.0", + "@lerna/child-process": "4.0.0", + "@lerna/collect-updates": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/describe-ref": "4.0.0", + "@lerna/log-packed": "4.0.0", + "@lerna/npm-conf": "4.0.0", + "@lerna/npm-dist-tag": "4.0.0", + "@lerna/npm-publish": "4.0.0", + "@lerna/otplease": "4.0.0", + "@lerna/output": "4.0.0", + "@lerna/pack-directory": "4.0.0", + "@lerna/prerelease-id-from-version": "4.0.0", + "@lerna/prompt": "4.0.0", + "@lerna/pulse-till-done": "4.0.0", + "@lerna/run-lifecycle": "4.0.0", + "@lerna/run-topologically": "4.0.0", + "@lerna/validation-error": "4.0.0", + "@lerna/version": "4.0.0", + "fs-extra": "^9.1.0", + "libnpmaccess": "^4.0.1", + "npm-package-arg": "^8.1.0", + "npm-registry-fetch": "^9.0.0", + "npmlog": "^4.1.2", + "p-map": "^4.0.0", + "p-pipe": "^3.1.0", + "pacote": "^11.2.6", + "semver": "^7.3.4" + }, + "engines": { + "node": ">= 10.18.0" } }, - "node_modules/browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "node_modules/@lerna/publish/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/browserify-rsa/node_modules/bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "node_modules/browserify-sign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.1.0.tgz", - "integrity": "sha512-VYxo7cDCeYUoBZ0ZCy4UyEUCP3smyBd4DRQM5nrFS1jJjPJjX7rP3oLRpPoWfkhQfyJ0I9ZbHbKafrFD/SGlrg==", + "node_modules/@lerna/pulse-till-done": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-4.0.0.tgz", + "integrity": "sha512-Frb4F7QGckaybRhbF7aosLsJ5e9WuH7h0KUkjlzSByVycxY91UZgaEIVjS2oN9wQLrheLMHl6SiFY0/Pvo0Cxg==", "dev": true, "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.2", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0" + "npmlog": "^4.1.2" + }, + "engines": { + "node": ">= 10.18.0" } }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "node_modules/@lerna/query-graph": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-4.0.0.tgz", + "integrity": "sha512-YlP6yI3tM4WbBmL9GCmNDoeQyzcyg1e4W96y/PKMZa5GbyUvkS2+Jc2kwPD+5KcXou3wQZxSPzR3Te5OenaDdg==", "dev": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "@lerna/package-graph": "4.0.0" }, "engines": { - "node": ">= 6" + "node": ">= 10.18.0" } }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "node_modules/@lerna/resolve-symlink": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-4.0.0.tgz", + "integrity": "sha512-RtX8VEUzqT+uLSCohx8zgmjc6zjyRlh6i/helxtZTMmc4+6O4FS9q5LJas2uGO2wKvBlhcD6siibGt7dIC3xZA==", "dev": true, "dependencies": { - "pako": "~1.0.5" + "fs-extra": "^9.1.0", + "npmlog": "^4.1.2", + "read-cmd-shim": "^2.0.0" + }, + "engines": { + "node": ">= 10.18.0" } }, - "node_modules/browserify/node_modules/buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "node_modules/@lerna/rimraf-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-4.0.0.tgz", + "integrity": "sha512-QNH9ABWk9mcMJh2/muD9iYWBk1oQd40y6oH+f3wwmVGKYU5YJD//+zMiBI13jxZRtwBx0vmBZzkBkK1dR11cBg==", "dev": true, "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" + "@lerna/child-process": "4.0.0", + "npmlog": "^4.1.2", + "path-exists": "^4.0.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">= 10.18.0" } }, - "node_modules/browserify/node_modules/events": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", - "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", + "node_modules/@lerna/rimraf-dir/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { - "node": ">=0.4.x" + "node": ">=8" } }, - "node_modules/browserify/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "node_modules/browserify/node_modules/stream-http": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", - "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", + "node_modules/@lerna/run": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/run/-/run-4.0.0.tgz", + "integrity": "sha512-9giulCOzlMPzcZS/6Eov6pxE9gNTyaXk0Man+iCIdGJNMrCnW7Dme0Z229WWP/UoxDKg71F2tMsVVGDiRd8fFQ==", "dev": true, "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" + "@lerna/command": "4.0.0", + "@lerna/filter-options": "4.0.0", + "@lerna/npm-run-script": "4.0.0", + "@lerna/output": "4.0.0", + "@lerna/profiler": "4.0.0", + "@lerna/run-topologically": "4.0.0", + "@lerna/timer": "4.0.0", + "@lerna/validation-error": "4.0.0", + "p-map": "^4.0.0" + }, + "engines": { + "node": ">= 10.18.0" } }, - "node_modules/browserify/node_modules/stream-http/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "node_modules/@lerna/run-lifecycle": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-4.0.0.tgz", + "integrity": "sha512-IwxxsajjCQQEJAeAaxF8QdEixfI7eLKNm4GHhXHrgBu185JcwScFZrj9Bs+PFKxwb+gNLR4iI5rpUdY8Y0UdGQ==", "dev": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "@lerna/npm-conf": "4.0.0", + "npm-lifecycle": "^3.1.5", + "npmlog": "^4.1.2" }, "engines": { - "node": ">= 6" + "node": ">= 10.18.0" } }, - "node_modules/browserify/node_modules/timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "node_modules/@lerna/run-topologically": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-4.0.0.tgz", + "integrity": "sha512-EVZw9hGwo+5yp+VL94+NXRYisqgAlj0jWKWtAIynDCpghRxCE5GMO3xrQLmQgqkpUl9ZxQFpICgYv5DW4DksQA==", "dev": true, "dependencies": { - "process": "~0.11.0" + "@lerna/query-graph": "4.0.0", + "p-queue": "^6.6.2" }, "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/browserify/node_modules/tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true - }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "dependencies": { - "base-x": "^3.0.2" + "node": ">= 10.18.0" } }, - "node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "node_modules/@lerna/symlink-binary": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-4.0.0.tgz", + "integrity": "sha512-zualodWC4q1QQc1pkz969hcFeWXOsVYZC5AWVtAPTDfLl+TwM7eG/O6oP+Rr3fFowspxo6b1TQ6sYfDV6HXNWA==", + "dev": true, "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" + "@lerna/create-symlink": "4.0.0", + "@lerna/package": "4.0.0", + "fs-extra": "^9.1.0", + "p-map": "^4.0.0" + }, + "engines": { + "node": ">= 10.18.0" } }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/@lerna/symlink-dependencies": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-4.0.0.tgz", + "integrity": "sha512-BABo0MjeUHNAe2FNGty1eantWp8u83BHSeIMPDxNq0MuW2K3CiQRaeWT3EGPAzXpGt0+hVzBrA6+OT0GPn7Yuw==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "@lerna/create-symlink": "4.0.0", + "@lerna/resolve-symlink": "4.0.0", + "@lerna/symlink-binary": "4.0.0", + "fs-extra": "^9.1.0", + "p-map": "^4.0.0", + "p-map-series": "^2.1.0" + }, + "engines": { + "node": ">= 10.18.0" } }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "node_modules/@lerna/timer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-4.0.0.tgz", + "integrity": "sha512-WFsnlaE7SdOvjuyd05oKt8Leg3ENHICnvX3uYKKdByA+S3g+TCz38JsNs7OUZVt+ba63nC2nbXDlUnuT2Xbsfg==", "dev": true, "engines": { - "node": "*" + "node": ">= 10.18.0" } }, - "node_modules/buffer-equal": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", - "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", + "node_modules/@lerna/validation-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-4.0.0.tgz", + "integrity": "sha512-1rBOM5/koiVWlRi3V6dB863E1YzJS8v41UtsHgMr6gB2ncJ2LsQtMKlJpi3voqcgh41H8UsPXR58RrrpPpufyw==", "dev": true, + "dependencies": { + "npmlog": "^4.1.2" + }, "engines": { - "node": ">=0.4.0" + "node": ">= 10.18.0" } }, - "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "node_modules/builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true, + "node_modules/@lerna/version": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/version/-/version-4.0.0.tgz", + "integrity": "sha512-otUgiqs5W9zGWJZSCCMRV/2Zm2A9q9JwSDS7s/tlKq4mWCYriWo7+wsHEA/nPTMDyYyBO5oyZDj+3X50KDUzeA==", + "dev": true, + "dependencies": { + "@lerna/check-working-tree": "4.0.0", + "@lerna/child-process": "4.0.0", + "@lerna/collect-updates": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/conventional-commits": "4.0.0", + "@lerna/github-client": "4.0.0", + "@lerna/gitlab-client": "4.0.0", + "@lerna/output": "4.0.0", + "@lerna/prerelease-id-from-version": "4.0.0", + "@lerna/prompt": "4.0.0", + "@lerna/run-lifecycle": "4.0.0", + "@lerna/run-topologically": "4.0.0", + "@lerna/validation-error": "4.0.0", + "chalk": "^4.1.0", + "dedent": "^0.7.0", + "load-json-file": "^6.2.0", + "minimatch": "^3.0.4", + "npmlog": "^4.1.2", + "p-map": "^4.0.0", + "p-pipe": "^3.1.0", + "p-reduce": "^2.1.0", + "p-waterfall": "^2.1.1", + "semver": "^7.3.4", + "slash": "^3.0.0", + "temp-write": "^4.0.0", + "write-json-file": "^4.3.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.18.0" } }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "node_modules/cached-path-relative": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz", - "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==", - "dev": true - }, - "node_modules/caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "node_modules/@lerna/version/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/caching-transform/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/@lerna/version/node_modules/chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { - "semver": "^6.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/caching-transform/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/@lerna/version/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=6" + "node": ">=7.0.0" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "node_modules/@lerna/version/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@lerna/version/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "node_modules/chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "node_modules/@lerna/version/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "node_modules/@lerna/version/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "check-error": "^1.0.2" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/@lerna/write-log-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-4.0.0.tgz", + "integrity": "sha512-XRG5BloiArpXRakcnPHmEHJp+4AtnhRtpDIHSghmXD5EichI1uD73J7FgPp30mm2pDRq3FdqB0NbwSEsJ9xFQg==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "npmlog": "^4.1.2", + "write-file-atomic": "^3.0.3" }, "engines": { - "node": ">=4" + "node": ">= 10.18.0" } }, - "node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=4" + "node": ">= 8" } }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, "engines": { - "node": "*" + "node": ">= 8" } }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "node_modules/@npmcli/ci-detect": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz", + "integrity": "sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q==", "dev": true }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "node_modules/@npmcli/git": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", + "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", + "dev": true, "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "@npmcli/promise-spawn": "^1.3.2", + "lru-cache": "^6.0.0", + "mkdirp": "^1.0.4", + "npm-pick-manifest": "^6.1.1", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^2.0.2" } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "node_modules/@npmcli/git/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "node_modules/@npmcli/git/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { - "restore-cursor": "^3.1.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, - "node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "node_modules/@npmcli/git/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, "engines": { - "node": ">=6" + "node": ">= 8" } }, - "node_modules/cliui/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "node_modules/@npmcli/installed-package-contents": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", "dev": true, "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "installed-package-contents": "index.js" }, "engines": { - "node": ">=6" + "node": ">= 10" } }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "dev": true, "dependencies": { - "ansi-regex": "^4.1.0" + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "dependencies": { - "color-name": "1.1.3" + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "node_modules/@npmcli/node-gyp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.2.tgz", + "integrity": "sha512-yrJUe6reVMpktcvagumoqD9r08fH1iRo01gn1u0zoCApa9lnZGEigVKUd2hzsCId4gdtkZZIVscLhNxMECKgRg==", "dev": true }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "node_modules/@npmcli/promise-spawn": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", + "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", "dev": true, - "engines": { - "node": ">=0.1.90" + "dependencies": { + "infer-owner": "^1.0.4" } }, - "node_modules/combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "node_modules/@npmcli/run-script": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.5.tgz", + "integrity": "sha512-NQspusBCpTjNwNRFMtz2C5MxoxyzlbuJ4YEhxAKrIonTiirKDtatsZictx9RgamQIx6+QuHMNmPl0wQdoESs9A==", "dev": true, "dependencies": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.6.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.5.3" + "@npmcli/node-gyp": "^1.0.2", + "@npmcli/promise-spawn": "^1.3.2", + "infer-owner": "^1.0.4", + "node-gyp": "^7.1.0", + "read-package-json-fast": "^2.0.1" } }, - "node_modules/combine-source-map/node_modules/convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", - "dev": true - }, - "node_modules/combine-source-map/node_modules/lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/@npmcli/run-script/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dev": true, "dependencies": { - "delayed-stream": "~1.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">= 0.8" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "node_modules/compare-versions": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "node_modules/@npmcli/run-script/node_modules/node-gyp": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", "dev": true, - "engines": [ - "node >= 0.8" - ], "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.3", + "nopt": "^5.0.0", + "npmlog": "^4.1.2", + "request": "^2.88.2", + "rimraf": "^3.0.2", + "semver": "^7.3.2", + "tar": "^6.0.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" } }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "node_modules/contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "node_modules/@npmcli/run-script/node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "node_modules/@npmcli/run-script/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { - "safe-buffer": "~5.1.1" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "node_modules/@npmcli/run-script/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } }, - "node_modules/create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "node_modules/@octokit/auth-token": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.5.tgz", + "integrity": "sha512-BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA==", "dev": true, "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" + "@octokit/types": "^6.0.3" } }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true + "node_modules/@octokit/core": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz", + "integrity": "sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==", + "dev": true, + "dependencies": { + "@octokit/auth-token": "^2.4.4", + "@octokit/graphql": "^4.5.8", + "@octokit/request": "^5.6.0", + "@octokit/request-error": "^2.0.5", + "@octokit/types": "^6.0.3", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + } }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "node_modules/@octokit/endpoint": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "dev": true, "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" } }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "node_modules/@octokit/graphql": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.6.4.tgz", + "integrity": "sha512-SWTdXsVheRmlotWNjKzPOb6Js6tjSqA2a8z9+glDJng0Aqjzti8MEWOtuT8ZSu6wHnci7LZNuarE87+WJBG4vg==", "dev": true, "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "@octokit/request": "^5.6.0", + "@octokit/types": "^6.0.3", + "universal-user-agent": "^6.0.0" } }, - "node_modules/cross-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", - "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", + "node_modules/@octokit/openapi-types": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-9.1.1.tgz", + "integrity": "sha512-xmyPP9tVb4T4A6Lk6SL6ScnIqAHpPV4jfMZI8VtY286212ri9J/6IFGuLsZ26daADUmriuLejake4k+azEfnaw==", + "dev": true + }, + "node_modules/@octokit/plugin-enterprise-rest": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz", + "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==", + "dev": true + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.14.0.tgz", + "integrity": "sha512-S2uEu2uHeI7Vf+Lvj8tv3O5/5TCAa8GHS0dUQN7gdM7vKA6ZHAbR6HkAVm5yMb1mbedLEbxOuQ+Fa0SQ7tCDLA==", "dev": true, "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "@octokit/types": "^6.18.0" }, - "engines": { - "node": ">= 8" + "peerDependencies": { + "@octokit/core": ">=2" } }, - "node_modules/cross-spawn/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/@octokit/plugin-request-log": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", "dev": true, - "engines": { - "node": ">=8" + "peerDependencies": { + "@octokit/core": ">=3" } }, - "node_modules/cross-spawn/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.5.1.tgz", + "integrity": "sha512-Al57+OZmO65JpiPk4JS6u6kQ2y9qjoZtY1IWiSshc4N+F7EcrK8Rgy/cUJBB4WIcSFUQyF66EJQK1oKgXWeRNw==", "dev": true, "dependencies": { - "shebang-regex": "^3.0.0" + "@octokit/types": "^6.21.1", + "deprecation": "^2.3.1" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@octokit/core": ">=3" } }, - "node_modules/cross-spawn/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/@octokit/request": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.0.tgz", + "integrity": "sha512-4cPp/N+NqmaGQwbh3vUsYqokQIzt7VjsgTYVXiwpUP2pxd5YiZB2XuTedbb0SPtv9XS7nzAKjAuQxmY8/aZkiA==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.1", + "universal-user-agent": "^6.0.0" } }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/@octokit/request-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", "dev": true, "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" } }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "node_modules/@octokit/rest": { + "version": "18.7.1", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.7.1.tgz", + "integrity": "sha512-790Yv8Xpbqs3BtnMAO5hlOftVICHPdgZ/3qlTmeOoqrQGzT25BIpHkg/KKMeKG9Fg8d598PLxGhf80RswElv9g==", "dev": true, "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" + "@octokit/core": "^3.5.0", + "@octokit/plugin-paginate-rest": "^2.6.2", + "@octokit/plugin-request-log": "^1.0.2", + "@octokit/plugin-rest-endpoint-methods": "5.5.1" } }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "node_modules/@octokit/types": { + "version": "6.21.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.21.1.tgz", + "integrity": "sha512-PP+m3T5EWZKawru4zi/FvX8KL2vkO5f1fLthx78/7743p7RtJUevt3z7698k+7oAYRA7YuVqfXthSEHqkDvZ8g==", "dev": true, "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" + "@octokit/openapi-types": "^9.1.1" } }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "node_modules/dash-ast": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", - "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", - "dev": true - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "node_modules/@sinonjs/commons": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", "dev": true, "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" + "type-detect": "4.0.8" } }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "node_modules/@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", "dev": true, "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" + "@sinonjs/commons": "^1.7.0" } }, - "node_modules/debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "node_modules/@sinonjs/formatio": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-5.0.1.tgz", + "integrity": "sha512-KaiQ5pBf1MpS09MuA0kp6KBQt2JUOQycqVG1NZXvzeaXe5LGFqAKueIS0bw4w0P9r7KuBSVdUk5QjXsUdu2CxQ==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "@sinonjs/commons": "^1", + "@sinonjs/samsam": "^5.0.2" } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "node_modules/@sinonjs/samsam": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.1.0.tgz", + "integrity": "sha512-42nyaQOVunX5Pm6GRJobmzbS7iLI+fhERITnETXzzwDZh+TtDr/Au3yAvXVjFmZ4wEUaE4Y3NFZfKv0bV0cbtg==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" } }, - "node_modules/decimal.js": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz", - "integrity": "sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw==", + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, - "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, "engines": { - "node": ">=0.12" + "node": ">= 6" } }, - "node_modules/deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "node_modules/@types/chai": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.4.tgz", + "integrity": "sha512-7qvf9F9tMTzo0akeswHPGqgUx/gIaJqrOEET/FCD8CFRkSUHlygQiM5yB6OvjrtdxBVLSyw7COJubsFYs0683g==", "dev": true }, - "node_modules/default-require-extensions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "node_modules/@types/chai-as-promised": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.2.tgz", + "integrity": "sha512-PO2gcfR3Oxa+u0QvECLe1xKXOqYTzCmWf0FhLhjREoW3fPAVamjihL7v1MOVLJLsnAMdLcjkfrs01yvDMwVK4Q==", "dev": true, "dependencies": { - "strip-bom": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/default-require-extensions/node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" + "@types/chai": "*" } }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, + "node_modules/@types/chrome": { + "version": "0.0.115", + "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.115.tgz", + "integrity": "sha512-pNoYoYgGuI1/kiz53kjrXrKIjn2H8YWOI+vxVTOubX6arCHk/m/jInoyflKiP2qZHZf8+P+hh6d2y9tjaG4BPQ==", "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" + "@types/filesystem": "*", + "@types/har-format": "*" } }, - "node_modules/defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "node_modules/@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, - "node_modules/delayed-stream": { + "node_modules/@types/eslint-visitor-keys": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "engines": { - "node": ">=0.4.0" + "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", + "dev": true + }, + "node_modules/@types/filesystem": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.29.tgz", + "integrity": "sha512-85/1KfRedmfPGsbK8YzeaQUyV1FQAvMPMTuWFQ5EkLd2w7szhNO96bk3Rh/SKmOfd9co2rCLf0Voy4o7ECBOvw==", + "dependencies": { + "@types/filewriter": "*" } }, - "node_modules/deps-sort": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", - "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", + "node_modules/@types/filewriter": { + "version": "0.0.28", + "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.28.tgz", + "integrity": "sha1-wFTor02d11205jq8dviFFocU1LM=" + }, + "node_modules/@types/har-format": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.4.tgz", + "integrity": "sha512-iUxzm1meBm3stxUMzRqgOVHjj4Kgpgu5w9fm4X7kPRfSgVRzythsucEN7/jtOo8SQzm+HfcxWWzJS0mJDH/3DQ==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", + "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==", + "dev": true + }, + "node_modules/@types/libsodium-wrappers": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.7.tgz", + "integrity": "sha512-Li91pVKcLvQJK3ZolwCPo85oxf2gKBCApgnesRxYg4OVYchLXcJB2eivX8S87vfQVv6ZRnyCO1lLDosZGJfpRg==" + }, + "node_modules/@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "node_modules/@types/mocha": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-7.0.2.tgz", + "integrity": "sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==", + "dev": true + }, + "node_modules/@types/node": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.1.tgz", + "integrity": "sha512-FAYBGwC+W6F9+huFIDtn43cpy7+SzG+atzRiTfdp3inUKL2hXnd4rG8hylJLIh4+hqrQy1P17kvJByE/z825hA==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/sinon": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-9.0.5.tgz", + "integrity": "sha512-4CnkGdM/5/FXDGqL32JQ1ttVrGvhOoesLLF7VnTh4KdjK5N5VQOtxaylFqqTjnHx55MnD9O02Nbk5c1ELC8wlQ==", "dev": true, "dependencies": { - "JSONStream": "^1.0.3", - "shasum-object": "^1.0.0", - "subarg": "^1.0.0", - "through2": "^2.0.0" - }, - "bin": { - "deps-sort": "bin/cmd.js" + "@types/sinonjs__fake-timers": "*" } }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "node_modules/@types/sinonjs__fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz", + "integrity": "sha512-yYezQwGWty8ziyYLdZjwxyMb0CZR49h8JALHGrxjQHWlqGgc8kLdHEgWrgL0uZ29DMvEVBDnHU2Wg36zKSIUtA==", + "dev": true + }, + "node_modules/@types/yauzl": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz", + "integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==", "dev": true, + "optional": true, "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "@types/node": "*" } }, - "node_modules/detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "2.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.33.0.tgz", + "integrity": "sha512-QV6P32Btu1sCI/kTqjTNI/8OpCYyvlGjW5vD8MpTIg+HGE5S88HtT1G+880M4bXlvXj/NjsJJG0aGcVh0DdbeQ==", "dev": true, "dependencies": { - "acorn-node": "^1.6.1", - "defined": "^1.0.0", - "minimist": "^1.1.1" - }, - "bin": { - "detective": "bin/detective.js" + "@typescript-eslint/experimental-utils": "2.33.0", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^3.0.0", + "tsutils": "^3.17.1" }, "engines": { - "node": ">=0.8.0" + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" } }, - "node_modules/detective/node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/devtools-protocol": { - "version": "0.0.883894", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.883894.tgz", - "integrity": "sha512-33idhm54QJzf3Q7QofMgCvIVSd2o9H3kQPWaKT/fhoZh+digc+WSiMhbkeG3iN79WY4Hwr9G05NpbhEVrsOYAg==", - "dev": true - }, - "node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "node_modules/@typescript-eslint/eslint-plugin-tslint": { + "version": "2.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-2.33.0.tgz", + "integrity": "sha512-DXy14tWbs4NVMv/1ADDLfh9jy8ZloZHTuIKEE1Ufs7OGvAu6Ft5Rw7G1RsgfykEENSqy32Mycj5Q6jxN7AXmNA==", "dev": true, + "dependencies": { + "@typescript-eslint/experimental-utils": "2.33.0", + "lodash": "^4.17.15" + }, "engines": { - "node": ">=0.3.1" + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" } }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "node_modules/@typescript-eslint/experimental-utils": { + "version": "2.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.33.0.tgz", + "integrity": "sha512-qzPM2AuxtMrRq78LwyZa8Qn6gcY8obkIrBs1ehqmQADwkYzTE1Pb4y2W+U3rE/iFkSWcWHG2LS6MJfj6SmHApg==", "dev": true, "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "2.33.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" } }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/@typescript-eslint/parser": { + "version": "2.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.33.0.tgz", + "integrity": "sha512-AUtmwUUhJoH6yrtxZMHbRUEMsC2G6z5NSxg9KsROOGqNXasM71I8P2NihtumlWTUCRld70vqIZ6Pm4E5PAziEA==", "dev": true, "dependencies": { - "esutils": "^2.0.2" + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "2.33.0", + "@typescript-eslint/typescript-estree": "2.33.0", + "eslint-visitor-keys": "^1.1.0" }, "engines": { - "node": ">=6.0.0" + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" } }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", - "dev": true - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "2.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.33.0.tgz", + "integrity": "sha512-d8rY6/yUxb0+mEwTShCQF2zYQdLlqihukNfG9IUlLYz5y1CH6G/9XYbrxQLq3Z14RNvkCC6oe+OcFlyUpwUbkg==", "dev": true, + "dependencies": { + "debug": "^4.1.1", + "eslint-visitor-keys": "^1.1.0", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, "engines": { - "node": ">=0.4", - "npm": ">=1.2" + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" } }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" + "ms": "^2.1.1" } }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "node_modules/abab": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz", + "integrity": "sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==", + "dev": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/acorn": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", + "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" } }, - "node_modules/elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", "dev": true, "dependencies": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" } }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "node_modules/acorn-jsx": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", "dev": true }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", "dev": true, "dependencies": { - "once": "^1.4.0" + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" } }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "node_modules/acorn-walk": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz", + "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==", "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" + "engines": { + "node": ">=0.4.0" } }, - "node_modules/es-abstract": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz", - "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==", + "node_modules/add-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=", + "dev": true + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "dependencies": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.0", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-inspect": "^1.6.0", - "object-keys": "^1.1.1", - "string.prototype.trimleft": "^2.1.0", - "string.prototype.trimright": "^2.1.0" + "debug": "4" }, "engines": { - "node": ">= 0.4" + "node": ">= 6.0.0" } }, - "node_modules/es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "ms": "2.1.2" }, "engines": { - "node": ">= 0.4" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "node_modules/agentkeepalive": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", + "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", "dev": true, + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, "engines": { - "node": ">=0.8.0" + "node": ">= 8.0.0" } }, - "node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "node_modules/agentkeepalive/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" + "ms": "2.1.2" }, "engines": { - "node": ">=4.0" + "node": ">=6.0" }, - "optionalDependencies": { - "source-map": "~0.6.1" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "node_modules/agentkeepalive/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", "dev": true, "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "node_modules/ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "dev": true, "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "node_modules/ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">=6" } }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/ansi-escapes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", + "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", "dev": true, - "optional": true, + "dependencies": { + "type-fest": "^0.8.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, "engines": { - "node": ">= 0.8.0" + "node": ">=4" } }, - "node_modules/eslint": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.0.0.tgz", - "integrity": "sha512-qY1cwdOxMONHJfGqw52UOpZDeqXy8xmD0u8CT6jIstil72jkhURC704W8CFyTPDPllz4z4lu0Ql1+07PG/XdIg==", + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0", - "eslint-visitor-keys": "^1.1.0", - "espree": "^7.0.0", - "esquery": "^1.2.0", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" + "color-convert": "^1.9.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=4" } }, - "node_modules/eslint-config-prettier": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz", - "integrity": "sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==", + "node_modules/any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==", + "dev": true + }, + "node_modules/append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", "dev": true, "dependencies": { - "get-stdin": "^6.0.0" + "default-require-extensions": "^3.0.0" }, - "bin": { - "eslint-config-prettier-check": "bin/cli.js" + "engines": { + "node": ">=8" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", - "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", - "dev": true, - "dependencies": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - } + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "node_modules/are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "dependencies": { - "ms": "2.0.0" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, - "node_modules/eslint-import-resolver-node/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, - "node_modules/eslint-import-resolver-node/node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "dependencies": { - "path-parse": "^1.0.6" + "sprintf-js": "~1.0.2" } }, - "node_modules/eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "node_modules/array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", "dev": true, - "dependencies": { - "debug": "^2.6.9", - "pkg-dir": "^2.0.0" - }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", + "dev": true + }, + "node_modules/array-includes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", "dev": true, "dependencies": { - "ms": "2.0.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/eslint-module-utils/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "node_modules/array-includes/node_modules/es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", "dev": true, "dependencies": { - "locate-path": "^2.0.0" + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/eslint-module-utils/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "node_modules/array-includes/node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/eslint-module-utils/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/eslint-module-utils/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "node_modules/array-includes/node_modules/is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/eslint-module-utils/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "node_modules/array-includes/node_modules/is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", "dev": true, "dependencies": { - "p-limit": "^1.1.0" + "has": "^1.0.3" }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/eslint-module-utils/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "node_modules/array-includes/node_modules/string.prototype.trimleft": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" + }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/eslint-module-utils/node_modules/pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "node_modules/array-includes/node_modules/string.prototype.trimright": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", "dev": true, "dependencies": { - "find-up": "^2.1.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-import": { - "version": "2.20.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz", - "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==", + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "dependencies": { - "array-includes": "^3.0.3", - "array.prototype.flat": "^1.2.1", - "contains-path": "^0.1.0", - "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.4.1", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.0", - "read-pkg-up": "^2.0.0", - "resolve": "^1.12.0" - }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/array.prototype.flat": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", + "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", "dev": true, "dependencies": { - "ms": "2.0.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "node_modules/array.prototype.flat/node_modules/es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-import/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "node_modules/array.prototype.flat/node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "dependencies": { - "locate-path": "^2.0.0" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-import/node_modules/load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "node_modules/array.prototype.flat/node_modules/is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-import/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "node_modules/array.prototype.flat/node_modules/is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", "dev": true, "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "has": "^1.0.3" }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/eslint-plugin-import/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "node_modules/array.prototype.flat/node_modules/string.prototype.trimleft": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", "dev": true, "dependencies": { - "p-try": "^1.0.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-import/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "node_modules/array.prototype.flat/node_modules/string.prototype.trimright": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", "dev": true, "dependencies": { - "p-limit": "^1.1.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/eslint-plugin-import/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/eslint-plugin-import/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" + "safer-buffer": "~2.1.0" } }, - "node_modules/eslint-plugin-import/node_modules/path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, "dependencies": { - "pify": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, - "node_modules/eslint-plugin-import/node_modules/read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "dependencies": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - }, - "engines": { - "node": ">=4" - } + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true }, - "node_modules/eslint-plugin-import/node_modules/read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", "dev": true, "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, - "engines": { - "node": ">=4" + "object-assign": "^4.1.1", + "util": "0.10.3" } }, - "node_modules/eslint-plugin-no-null": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-no-null/-/eslint-plugin-no-null-1.0.2.tgz", - "integrity": "sha1-EjaoEjkTkKGHetQAfCbnRTQclR8=", + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true, "engines": { - "node": ">=5.0.0" + "node": ">=0.8" } }, - "node_modules/eslint-plugin-prefer-arrow": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.1.tgz", - "integrity": "sha512-CPAvdTGG0YbFAJrUKdRBrOJ0X1I7jTtF5VIM4m2Bw1/A2jrhfUeUAcPy4pAEB5DNaUuDqc59f3pKTeiVeamS1A==", + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", "dev": true }, - "node_modules/eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" + "inherits": "2.0.1" } }, - "node_modules/eslint-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz", - "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==", + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, "engines": { - "node": ">=6" + "node": "*" } }, - "node_modules/eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "node_modules/astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true, "engines": { "node": ">=4" } }, - "node_modules/eslint/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true, "engines": { - "node": ">=8" + "node": ">= 4.0.0" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", "dev": true, - "dependencies": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", - "dev": true, + "node_modules/aws4": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", + "dev": true + }, + "node_modules/axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "follow-redirects": "^1.10.0" } }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/axios-mock-adapter": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.18.2.tgz", + "integrity": "sha512-e5aTsPy2Viov22zNpFTlid76W1Scz82pXeEwwCXdtO85LROhHAF8pHF2qDhiyMONLxKyY3lQ+S4UCsKgrlx8Hw==", "dev": true, "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "fast-deep-equal": "^3.1.1", + "is-buffer": "^2.0.3" } }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/axios-mock-adapter/node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "node_modules/eslint/node_modules/cross-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", - "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/base-x": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.7.tgz", + "integrity": "sha512-zAKJGuQPihXW22fkrfOclUUZXM2g92z5GzlSMHxhO6r6Qj+Nm0ccaGNBzDZojzwOMkpjAv4J0fOv1U4go+a4iw==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, + "tweetnacl": "^0.14.3" + } + }, + "node_modules/before-after-hook": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", + "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", + "dev": true + }, + "node_modules/bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", "engines": { - "node": ">= 8" + "node": "*" } }, - "node_modules/eslint/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" } }, - "node_modules/eslint/node_modules/globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "dependencies": { - "type-fest": "^0.8.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/bmp-js": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", + "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=", + "dev": true }, - "node_modules/eslint/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA==", + "dev": true }, - "node_modules/eslint/node_modules/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/eslint/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "dependencies": { - "shebang-regex": "^3.0.0" + "fill-range": "^7.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/eslint/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true }, - "node_modules/eslint/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "node_modules/browser-pack": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", + "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.0" + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "JSONStream": "^1.0.3", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" }, - "engines": { - "node": ">=8" + "bin": { + "browser-pack": "bin/cmd.js" } }, - "node_modules/eslint/node_modules/strip-json-comments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", - "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "node_modules/browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "resolve": "1.1.7" } }, - "node_modules/eslint/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/browser-resolve/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/browserify": { + "version": "16.5.1", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.1.tgz", + "integrity": "sha512-EQX0h59Pp+0GtSRb5rL6OTfrttlzv+uyaUVlK6GX3w11SQ0jKPKyjC/54RhPR2ib2KmfcELM06e8FxcI5XNU2A==", "dev": true, "dependencies": { - "isexe": "^2.0.0" + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^1.11.0", + "browserify-zlib": "~0.2.0", + "buffer": "~5.2.1", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.0", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^2.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.0.0", + "JSONStream": "^1.0.3", + "labeled-stream-splicer": "^2.0.0", + "mkdirp-classic": "^0.5.2", + "module-deps": "^6.0.0", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "~0.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^2.0.0", + "stream-http": "^3.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.10.1", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" }, "bin": { - "node-which": "bin/node-which" + "browserify": "bin/cmd.js" }, "engines": { - "node": ">= 8" + "node": ">= 0.8" } }, - "node_modules/espree": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.0.0.tgz", - "integrity": "sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw==", + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, "dependencies": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, - "node_modules/esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", - "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", + "node_modules/browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, - "engines": { - "node": ">=4.0" + "dependencies": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, - "node_modules/esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "node_modules/browserify-rsa/node_modules/bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "node_modules/browserify-sign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.1.0.tgz", + "integrity": "sha512-VYxo7cDCeYUoBZ0ZCy4UyEUCP3smyBd4DRQM5nrFS1jJjPJjX7rP3oLRpPoWfkhQfyJ0I9ZbHbKafrFD/SGlrg==", "dev": true, "dependencies": { - "estraverse": "^4.1.0" - }, - "engines": { - "node": ">=4.0" + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.2", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, "engines": { - "node": ">=4.0" + "node": ">= 6" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "pako": "~1.0.5" } }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "node_modules/browserify/node_modules/buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "dev": true, "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, - "node_modules/exif-parser": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", - "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=", - "dev": true + "node_modules/browserify/node_modules/events": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", + "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", + "dev": true, + "engines": { + "node": ">=0.4.x" + } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "node_modules/browserify/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "node_modules/browserify/node_modules/stream-http": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", + "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", "dev": true, "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" } }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "node_modules/browserify/node_modules/stream-http/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" + "node": ">= 6" } }, - "node_modules/extract-zip/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/browserify/node_modules/timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", "dev": true, "dependencies": { - "ms": "2.1.2" + "process": "~0.11.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=0.6.0" } }, - "node_modules/extract-zip/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", + "node_modules/browserify/node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", "dev": true }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "dependencies": { - "pend": "~1.2.0" + "base-x": "^3.0.2" } }, - "node_modules/figures": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", - "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", - "dev": true, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" } }, - "node_modules/file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "flat-cache": "^2.0.1" - }, - "engines": { - "node": ">=4" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/file-size": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/file-size/-/file-size-0.0.5.tgz", - "integrity": "sha1-BX1Dw6Ptc12j+Q1gUqs4Dx5tXjs=", - "dev": true - }, - "node_modules/file-type": { - "version": "12.4.2", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz", - "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==", + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", "dev": true, "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "node_modules/buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, "engines": { - "node": ">=6" + "node": ">=0.4.0" } }, - "node_modules/find-versions": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", - "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true, - "dependencies": { - "semver-regex": "^2.0.0" - }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "node_modules/byline": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", + "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=", "dev": true, - "dependencies": { - "is-buffer": "~2.0.3" - }, - "bin": { - "flat": "cli.js" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "node_modules/byte-size": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-7.0.1.tgz", + "integrity": "sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A==", "dev": true, - "dependencies": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "node_modules/cacache": { + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.2.0.tgz", + "integrity": "sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw==", "dev": true, "dependencies": { - "glob": "^7.1.3" + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", - "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==", "engines": { - "node": ">=4.0" + "node": ">= 10" } }, - "node_modules/foreground-child": { + "node_modules/cacache/node_modules/chownr": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, "engines": { - "node": ">=8.0.0" + "node": ">=10" } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "node_modules/cacache/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, "engines": { "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "node_modules/cacache/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "bin": { + "mkdirp": "bin/cmd.js" }, "engines": { - "node": ">= 0.12" + "node": ">=10" } }, - "node_modules/fromentries": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.2.0.tgz", - "integrity": "sha512-33X7H/wdfO99GdRLLgkjUrD4geAFdq/Uv0kl3HD4da6HDixd2GUg8Mw7dahLCV9r/EARkmtYBB6Tch4EEokFTQ==", - "dev": true - }, - "node_modules/fs": { - "version": "0.0.1-security", - "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", - "integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ=", - "dev": true - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "node_modules/cached-path-relative": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz", + "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==", "dev": true }, - "node_modules/gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "node_modules/caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", "dev": true, + "dependencies": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/get-assigned-identifiers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", - "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", - "dev": true - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "engines": { - "node": "*" + "node": ">=6" } }, - "node_modules/get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, "dependencies": { - "pump": "^3.0.0" + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" }, "engines": { "node": ">=8" @@ -4588,3152 +4824,3385 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true }, - "node_modules/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "node_modules/chai": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" }, "engines": { - "node": "*" + "node": ">=4" } }, - "node_modules/glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "node_modules/chai-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" + "check-error": "^1.0.2" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, "engines": { "node": ">=4" } }, - "node_modules/graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true, "engines": { - "node": ">=4.x" + "node": "*" } }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, "engines": { - "node": ">=0.4.7" + "node": ">=6" } }, - "node_modules/handlebars/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true, "engines": { - "node": ">=4" + "node": ">= 10" } }, - "node_modules/har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "dependencies": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - }, + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, "engines": { "node": ">=6" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/cliui/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "dependencies": { - "function-bind": "^1.1.1" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" }, "engines": { - "node": ">= 0.4.0" + "node": ">=6" } }, - "node_modules/has-ansi": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", - "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=", + "node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "dependencies": { - "ansi-regex": "^0.2.0" - }, - "bin": { - "has-ansi": "cli.js" + "ansi-regex": "^4.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz", - "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=", + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.8" } }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, "engines": { - "node": ">= 0.4" + "node": ">=0.10.0" } }, - "node_modules/hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "node_modules/cmd-shim": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-4.1.0.tgz", + "integrity": "sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw==", + "dev": true, "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "mkdirp-infer-owner": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/hasha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz", - "integrity": "sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==", + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" + "color-name": "1.1.3" } }, - "node_modules/hasha/node_modules/is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.1.90" } }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "node_modules/columnify": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", + "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", "dev": true, - "bin": { - "he": "bin/he" + "dependencies": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" } }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "node_modules/columnify/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/hosted-git-info": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", - "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", - "dev": true - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "node_modules/columnify/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "dependencies": { - "whatwg-encoding": "^1.0.5" + "ansi-regex": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/htmlescape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", + "node_modules/combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", "dev": true, - "engines": { - "node": ">=0.10" + "dependencies": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" } }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "node_modules/combine-source-map/node_modules/convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", + "dev": true + }, + "node_modules/combine-source-map/node_modules/lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "delayed-stream": "~1.0.0" }, "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" + "node": ">= 0.8" } }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", "dev": true, "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" } }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/compare-func/node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, "dependencies": { - "ms": "2.1.2" + "is-obj": "^2.0.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=8" } }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "node_modules/compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", "dev": true }, - "node_modules/husky": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.5.tgz", - "integrity": "sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==", + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, + "engines": [ + "node >= 0.8" + ], "dependencies": { - "chalk": "^4.0.0", - "ci-info": "^2.0.0", - "compare-versions": "^3.6.0", - "cosmiconfig": "^6.0.0", - "find-versions": "^3.2.0", - "opencollective-postinstall": "^2.0.2", - "pkg-dir": "^4.2.0", - "please-upgrade-node": "^3.2.0", - "slash": "^3.0.0", - "which-pm-runs": "^1.0.0" - }, - "bin": { - "husky-run": "bin/run.js", - "husky-upgrade": "lib/upgrader/bin.js" - }, - "engines": { - "node": ">=10" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, - "node_modules/husky/node_modules/ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, "dependencies": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - }, + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "node_modules/contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/husky/node_modules/chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "node_modules/conventional-changelog-angular": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz", + "integrity": "sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "compare-func": "^2.0.0", + "q": "^1.5.1" }, "engines": { "node": ">=10" } }, - "node_modules/husky/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true + "node_modules/conventional-changelog-core": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.3.tgz", + "integrity": "sha512-MwnZjIoMRL3jtPH5GywVNqetGILC7g6RQFvdb8LRU/fA/338JbeWAku3PZ8yQ+mtVRViiISqJlb0sOz0htBZig==", + "dev": true, + "dependencies": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-parser": "^3.2.0", + "dateformat": "^3.0.0", + "get-pkg-repo": "^4.0.0", + "git-raw-commits": "^2.0.8", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^4.1.1", + "lodash": "^4.17.15", + "normalize-package-data": "^3.0.0", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "through2": "^4.0.0" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/husky/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/conventional-changelog-core/node_modules/hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "lru-cache": "^6.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=10" } }, - "node_modules/husky/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/husky/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "node_modules/conventional-changelog-core/node_modules/normalize-package-data": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz", + "integrity": "sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==", "dev": true, "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" + "hosted-git-info": "^4.0.1", + "resolve": "^1.20.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/husky/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/conventional-changelog-core/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/husky/node_modules/parse-json": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", - "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "node_modules/conventional-changelog-core/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1", - "lines-and-columns": "^1.1.6" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/husky/node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "node_modules/conventional-changelog-core/node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "readable-stream": "3" } }, - "node_modules/husky/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/conventional-changelog-preset-loader": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", + "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", "dev": true, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/husky/node_modules/supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "node_modules/conventional-changelog-writer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.0.tgz", + "integrity": "sha512-HnDh9QHLNWfL6E1uHz6krZEQOgm8hN7z/m7tT16xwd802fwgMN0Wqd7AQYVkhpsjDUx/99oo+nGgvKF657XP5g==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.6", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-changelog-writer": "cli.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/conventional-changelog-writer/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 6" } }, - "node_modules/ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true - }, - "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "node_modules/conventional-changelog-writer/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "engines": { - "node": ">= 4" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "node_modules/conventional-changelog-writer/node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" + "readable-stream": "3" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "node_modules/conventional-commits-filter": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", + "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", "dev": true, + "dependencies": { + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" + }, "engines": { - "node": ">=0.8.19" + "node": ">=10" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "node_modules/conventional-commits-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.1.tgz", + "integrity": "sha512-OG9kQtmMZBJD/32NEw5IhN5+HnBqVjy03eC+I71I0oQRFA5rOgA4OtPOYG7mz1GkCfCNxn3gKIX8EiHJYuf1cA==", "dev": true, + "dependencies": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0", + "trim-off-newlines": "^1.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "node_modules/conventional-commits-parser/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "node_modules/conventional-commits-parser/node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, "dependencies": { - "source-map": "~0.5.3" + "readable-stream": "3" } }, - "node_modules/inquirer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", - "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", + "node_modules/conventional-recommended-bump": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", + "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", "dev": true, "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.5.3", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^2.3.4", + "conventional-commits-filter": "^2.0.7", + "conventional-commits-parser": "^3.2.0", + "git-raw-commits": "^2.0.8", + "git-semver-tags": "^4.1.1", + "meow": "^8.0.0", + "q": "^1.5.1" + }, + "bin": { + "conventional-recommended-bump": "cli.js" }, "engines": { - "node": ">=6.0.0" + "node": ">=10" } }, - "node_modules/inquirer/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "node_modules/conventional-recommended-bump/node_modules/concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", "dev": true, - "engines": { - "node": ">=8" + "engines": [ + "node >= 6.0" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" } }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "node_modules/conventional-recommended-bump/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "dependencies": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/inquirer/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" + "safe-buffer": "~5.1.1" } }, - "node_modules/inquirer/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/convert-source-map/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=10" } }, - "node_modules/inquirer/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "node_modules/create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } }, - "node_modules/inquirer/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", "dev": true }, - "node_modules/inquirer/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, - "node_modules/inquirer/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, - "node_modules/inquirer/node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=8" + "node": ">= 8" } }, - "node_modules/inquirer/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "node_modules/cross-spawn/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.0" + "shebang-regex": "^3.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "node_modules/cross-spawn/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/insert-module-globals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", - "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { - "acorn-node": "^1.5.2", - "combine-source-map": "^0.8.0", - "concat-stream": "^1.6.1", - "is-buffer": "^1.1.0", - "JSONStream": "^1.0.3", - "path-is-absolute": "^1.0.1", - "process": "~0.11.0", - "through2": "^2.0.0", - "undeclared-identifiers": "^1.1.2", - "xtend": "^4.0.0" + "isexe": "^2.0.0" }, "bin": { - "insert-module-globals": "bin/cmd.js" + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/insert-module-globals/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", "dev": true }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, "engines": { - "node": ">= 0.10" + "node": ">=8" } }, - "node_modules/ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "node_modules/dash-ast": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", "dev": true }, - "node_modules/is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", "dev": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "node_modules/dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", "dev": true, "engines": { - "node": ">= 0.4" + "node": "*" } }, - "node_modules/is-date-object": { + "node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/debuglog": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", "dev": true, "engines": { - "node": ">= 0.4" + "node": "*" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "node_modules/decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz", + "integrity": "sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw==", "dev": true }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "dependencies": { - "is-extglob": "^2.1.1" + "type-detect": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.12" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", - "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, - "node_modules/is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "node_modules/default-require-extensions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", "dev": true, "dependencies": { - "has": "^1.0.1" + "strip-bom": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "node_modules/default-require-extensions/node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "dependencies": { - "has-symbols": "^1.0.0" + "clone": "^1.0.2" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" }, "engines": { "node": ">= 0.4" } }, - "node_modules/is-typedarray": { + "node_modules/defined": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", "dev": true }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.4.0" } }, - "node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "dev": true, "engines": { - "node": ">=4" + "node": ">= 0.6" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", "dev": true }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "node_modules/deps-sort": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", + "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", + "dev": true, + "dependencies": { + "JSONStream": "^1.0.3", + "shasum-object": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" + }, + "bin": { + "deps-sort": "bin/cmd.js" + } }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } }, - "node_modules/istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "node_modules/detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", "dev": true, "dependencies": { - "append-transform": "^2.0.0" + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + }, + "bin": { + "detective": "bin/detective.js" }, "engines": { - "node": ">=8" + "node": ">=0.8.0" } }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "node_modules/detective/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/devtools-protocol": { + "version": "0.0.883894", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.883894.tgz", + "integrity": "sha512-33idhm54QJzf3Q7QofMgCvIVSd2o9H3kQPWaKT/fhoZh+digc+WSiMhbkeG3iN79WY4Hwr9G05NpbhEVrsOYAg==", + "dev": true + }, + "node_modules/dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", "dev": true, "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" + "asap": "^2.0.0", + "wrappy": "1" } }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=0.3.1" } }, - "node_modules/istanbul-lib-processinfo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^3.3.3" - }, - "engines": { - "node": ">=8" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, - "node_modules/istanbul-lib-processinfo/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "dependencies": { - "semver": "^6.0.0" + "path-type": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/istanbul-lib-processinfo/node_modules/p-map": { + "node_modules/doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "dependencies": { - "aggregate-error": "^3.0.0" + "esutils": "^2.0.2" }, "engines": { - "node": ">=8" + "node": ">=6.0.0" } }, - "node_modules/istanbul-lib-processinfo/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", + "dev": true + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=0.4", + "npm": ">=1.2" } }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", "dev": true, "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" + "webidl-conversions": "^5.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", "dev": true, "dependencies": { - "semver": "^6.0.0" + "is-obj": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/istanbul-lib-report/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "dev": true, - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "readable-stream": "^2.0.2" } }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "node_modules/elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, + "optional": true, "dependencies": { - "ms": "^2.1.1" + "iconv-lite": "^0.6.2" } }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" + "once": "^1.4.0" } }, - "node_modules/jimp": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.8.5.tgz", - "integrity": "sha512-BW7t/+TCgKpqZw/wHFwqF/A/Tyk43RmzRHyMBdqfOepqunUrajt0RTqowdWyFo4CS2FmD8pFiYfefWjpXFWrCA==", + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, - "dependencies": { - "@jimp/custom": "^0.8.5", - "@jimp/plugins": "^0.8.5", - "@jimp/types": "^0.8.5", - "core-js": "^2.5.7", - "regenerator-runtime": "^0.13.3" + "engines": { + "node": ">=6" } }, - "node_modules/jimp/node_modules/core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - }, - "node_modules/jpeg-js": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.7.tgz", - "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==", - "dev": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "node_modules/envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, "bin": { - "js-yaml": "bin/js-yaml.js" + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", "dev": true }, - "node_modules/jsdom": { - "version": "16.4.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz", - "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==", + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "dependencies": { - "abab": "^2.0.3", - "acorn": "^7.1.1", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.2.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.0", - "domexception": "^2.0.1", - "escodegen": "^1.14.1", - "html-encoding-sniffer": "^2.0.1", - "is-potential-custom-element-name": "^1.0.0", - "nwsapi": "^2.2.0", - "parse5": "5.1.1", - "request": "^2.88.2", - "request-promise-native": "^1.0.8", - "saxes": "^5.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^3.0.1", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0", - "ws": "^7.2.3", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" + "is-arrayish": "^0.2.1" } }, - "node_modules/jsdom-global": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsdom-global/-/jsdom-global-3.0.2.tgz", - "integrity": "sha1-a9KZwTsMRiay2iwDk81DhdYGrLk=", - "dev": true - }, - "node_modules/jsdom/node_modules/tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "node_modules/es-abstract": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz", + "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==", "dev": true, "dependencies": { - "ip-regex": "^2.1.0", - "psl": "^1.1.28", - "punycode": "^2.1.1" + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.0", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-inspect": "^1.6.0", + "object-keys": "^1.1.1", + "string.prototype.trimleft": "^2.1.0", + "string.prototype.trimright": "^2.1.0" }, "engines": { - "node": ">=6" + "node": ">= 0.4" } }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "node_modules/es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "dev": true, - "bin": { - "jsesc": "bin/jsesc" + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, - "node_modules/json-stable-stringify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", - "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, - "dependencies": { - "jsonify": "~0.0.0" + "engines": { + "node": ">=6" } }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } }, - "node_modules/json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", "dev": true, "dependencies": { - "minimist": "^1.2.5" + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" }, "bin": { - "json5": "lib/cli.js" + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" }, "engines": { - "node": ">=6" + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" } }, - "node_modules/json5/node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" }, "engines": { - "node": "*" + "node": ">= 0.8.0" } }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, - "engines": [ - "node >=0.6.0" - ], "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/just-extend": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.1.0.tgz", - "integrity": "sha512-ApcjaOdVTJ7y4r08xI5wIqpvwS48Q0PBG4DJROcEkH1f8MdAiNFyFxz3xoL0LWAVwjrwPYZdVHHxhRHcx/uGLA==", - "dev": true + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } }, - "node_modules/labeled-stream-splicer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", - "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "stream-splicer": "^2.0.0" + "optional": true, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "prelude-ls": "~1.1.2" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/libsodium": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.8.tgz", - "integrity": "sha512-/Qc+APf0jbeWSaeEruH0L1/tbbT+sbf884ZL0/zV/0JXaDPBzYkKbyb/wmxMHgAHzm3t6gqe7bOOXAVwfqVikQ==" - }, - "node_modules/libsodium-wrappers": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz", - "integrity": "sha512-PDhPWXBqd/SaqAFUBgH2Ux7b3VEEJgyD6BQB+VdNFJb9PbExGr/T/myc/MBoSvl8qLzfm0W0IVByOQS5L1MrCg==", + "node_modules/eslint": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.0.0.tgz", + "integrity": "sha512-qY1cwdOxMONHJfGqw52UOpZDeqXy8xmD0u8CT6jIstil72jkhURC704W8CFyTPDPllz4z4lu0Ql1+07PG/XdIg==", + "dev": true, "dependencies": { - "libsodium": "0.7.8" + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0", + "eslint-visitor-keys": "^1.1.0", + "espree": "^7.0.0", + "esquery": "^1.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "node_modules/load-bmfont": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", - "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", + "node_modules/eslint-config-prettier": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz", + "integrity": "sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==", "dev": true, "dependencies": { - "buffer-equal": "0.0.1", - "mime": "^1.3.4", - "parse-bmfont-ascii": "^1.0.3", - "parse-bmfont-binary": "^1.0.5", - "parse-bmfont-xml": "^1.1.4", - "phin": "^2.9.1", - "xhr": "^2.0.1", - "xtend": "^4.0.0" + "get-stdin": "^6.0.0" + }, + "bin": { + "eslint-config-prettier-check": "bin/cli.js" } }, - "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", + "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", "dev": true, "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" + "debug": "^2.6.9", + "resolve": "^1.13.1" } }, - "node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "node_modules/eslint-import-resolver-node/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "node_modules/log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "node_modules/eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", "dev": true, "dependencies": { - "chalk": "^2.4.2" + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } }, - "node_modules/marked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.0.1.tgz", - "integrity": "sha512-5+/fKgMv2hARmMW7DOpykr2iLhl0NgjyELk5yn92iE7z8Se1IS9n3UsFm86hFXIkvMBmVxki8+ckcpjBeyo/hw==", + "node_modules/eslint-module-utils/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, - "bin": { - "marked": "bin/marked" + "dependencies": { + "locate-path": "^2.0.0" }, "engines": { - "node": ">= 8.16.2" + "node": ">=4" } }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "node_modules/eslint-module-utils/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/merge-stream": { + "node_modules/eslint-module-utils/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "node_modules/eslint-module-utils/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "p-try": "^1.0.0" }, - "bin": { - "miller-rabin": "bin/miller-rabin" + "engines": { + "node": ">=4" } }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "node_modules/eslint-module-utils/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, - "bin": { - "mime": "cli.js" + "dependencies": { + "p-limit": "^1.1.0" }, "engines": { "node": ">=4" } }, - "node_modules/mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "node_modules/eslint-module-utils/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=4" } }, - "node_modules/mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "node_modules/eslint-module-utils/node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "dependencies": { - "mime-db": "1.44.0" + "find-up": "^2.1.0" }, "engines": { - "node": ">= 0.6" + "node": ">=4" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/eslint-plugin-import": { + "version": "2.20.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz", + "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==", "dev": true, + "dependencies": { + "array-includes": "^3.0.3", + "array.prototype.flat": "^1.2.1", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.1", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.0", + "read-pkg-up": "^2.0.0", + "resolve": "^1.12.0" + }, "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { - "dom-walk": "^0.1.0" + "ms": "2.0.0" } }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "esutils": "^2.0.2", + "isarray": "^1.0.0" }, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "node_modules/eslint-plugin-import/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "dependencies": { - "minimist": "^1.2.5" + "locate-path": "^2.0.0" }, - "bin": { - "mkdirp": "bin/cmd.js" + "engines": { + "node": ">=4" } }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "node_modules/mocha": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.2.tgz", - "integrity": "sha512-o96kdRKMKI3E8U0bjnfqW4QMk12MwZ4mhdBTf+B5a1q9+aq2HRnj+3ZdJu0B/ZhJeK78MgYuv6L8d/rA5AeBJA==", + "node_modules/eslint-plugin-import/node_modules/load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "dependencies": { - "ansi-colors": "3.2.3", - "browser-stdout": "1.3.1", - "chokidar": "3.3.0", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "3.0.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.5", - "ms": "2.1.1", - "node-environment-flags": "1.0.6", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.3.2", - "yargs-parser": "13.1.2", - "yargs-unparser": "1.6.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" }, "engines": { - "node": ">= 8.10.0" + "node": ">=4" } }, - "node_modules/mocha/node_modules/anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "node_modules/eslint-plugin-import/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "engines": { - "node": ">= 8" + "node": ">=4" } }, - "node_modules/mocha/node_modules/binary-extensions": { + "node_modules/eslint-plugin-import/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", - "dev": true, - "engines": { - "node": ">=8" - } + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true }, - "node_modules/mocha/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "node_modules/eslint-plugin-import/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "p-try": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/mocha/node_modules/chokidar": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", - "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "node_modules/eslint-plugin-import/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.2.0" + "p-limit": "^1.1.0" }, "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.1.1" + "node": ">=4" } }, - "node_modules/mocha/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "node_modules/eslint-plugin-import/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/mocha/node_modules/fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "node_modules/eslint-plugin-import/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "error-ex": "^1.2.0" + }, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=0.10.0" } }, - "node_modules/mocha/node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/eslint-plugin-import/node_modules/path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "dependencies": { - "binary-extensions": "^2.0.0" + "pify": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/mocha/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/eslint-plugin-import/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true, "engines": { - "node": ">=0.12.0" + "node": ">=0.10.0" } }, - "node_modules/mocha/node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/mocha/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "node_modules/eslint-plugin-import/node_modules/read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "dependencies": { - "minimist": "^1.2.5" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" }, - "bin": { - "mkdirp": "bin/cmd.js" + "engines": { + "node": ">=4" } }, - "node_modules/mocha/node_modules/readdirp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", - "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "node_modules/eslint-plugin-import/node_modules/read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "dependencies": { - "picomatch": "^2.0.4" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" }, "engines": { - "node": ">= 8" + "node": ">=4" } }, - "node_modules/mocha/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/eslint-plugin-no-null": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-null/-/eslint-plugin-no-null-1.0.2.tgz", + "integrity": "sha1-EjaoEjkTkKGHetQAfCbnRTQclR8=", + "dev": true, + "engines": { + "node": ">=5.0.0" + } + }, + "node_modules/eslint-plugin-prefer-arrow": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.1.tgz", + "integrity": "sha512-CPAvdTGG0YbFAJrUKdRBrOJ0X1I7jTtF5VIM4m2Bw1/A2jrhfUeUAcPy4pAEB5DNaUuDqc59f3pKTeiVeamS1A==", + "dev": true + }, + "node_modules/eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", "dev": true, "dependencies": { - "is-number": "^7.0.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" }, "engines": { - "node": ">=8.0" + "node": ">=8.0.0" } }, - "node_modules/module-deps": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.2.tgz", - "integrity": "sha512-a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w==", + "node_modules/eslint-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz", + "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==", "dev": true, "dependencies": { - "browser-resolve": "^1.7.0", - "cached-path-relative": "^1.0.2", - "concat-stream": "~1.6.0", - "defined": "^1.0.0", - "detective": "^5.2.0", - "duplexer2": "^0.1.2", - "inherits": "^2.0.1", - "JSONStream": "^1.0.3", - "parents": "^1.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.4.0", - "stream-combiner2": "^1.1.1", - "subarg": "^1.0.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - }, - "bin": { - "module-deps": "bin/cmd.js" + "eslint-visitor-keys": "^1.1.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=6" } }, - "node_modules/mri": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.5.tgz", - "integrity": "sha512-d2RKzMD4JNyHMbnbWnznPaa8vbdlq/4pNZ3IgdaGrVbBhebBsGUUE/6qorTMYNS6TwuH3ilfOlD2bf4Igh8CKg==", + "node_modules/eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", "dev": true, "engines": { "node": ">=4" } }, - "node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true + "node_modules/eslint/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/multimatch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", - "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "dependencies": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/multimatch/node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "node_modules/eslint/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", - "dev": true - }, - "node_modules/nise": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/nise/-/nise-4.0.4.tgz", - "integrity": "sha512-bTTRUNlemx6deJa+ZyoCUTRvH3liK5+N6VQZ4NIw90AgDXY6iPnsqplNFf6STcj+ePk0H/xqxnP75Lr0J0Fq3A==", + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.7.0", - "@sinonjs/fake-timers": "^6.0.0", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "path-to-regexp": "^1.7.0" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/nise/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/nise/node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "node_modules/eslint/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "dependencies": { - "isarray": "0.0.1" + "ms": "^2.1.1" } }, - "node_modules/node-environment-flags": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", - "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "node_modules/eslint/node_modules/globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "dev": true, "dependencies": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": "4.x || >=6.0.0" + "node": ">=8" } }, - "node_modules/node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "node_modules/eslint/node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true, - "dependencies": { - "process-on-spawn": "^1.0.0" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=8" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "node_modules/nyc": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.1.tgz", - "integrity": "sha512-n0MBXYBYRqa67IVt62qW1r/d9UH/Qtr7SF1w/nQLJ9KxvWF6b2xCHImRAixHN9tnMMYHC2P14uo6KddNGwMgGg==", + "node_modules/eslint/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" + "ansi-regex": "^5.0.0" }, "engines": { - "node": ">=8.9" + "node": ">=8" } }, - "node_modules/nyc/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "node_modules/eslint/node_modules/strip-json-comments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", + "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/nyc/node_modules/ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "node_modules/eslint/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "dependencies": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "node_modules/espree": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.0.0.tgz", + "integrity": "sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw==", "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/nyc/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">=7.0.0" + "node": ">=4" } }, - "node_modules/nyc/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/nyc/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/nyc/node_modules/find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "node_modules/esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", "dev": true, "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "estraverse": "^5.1.0" }, "engines": { - "node": ">=8" + "node": ">=0.10" } }, - "node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/esquery/node_modules/estraverse": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", + "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=4.0" } }, - "node_modules/nyc/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "node_modules/esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "estraverse": "^4.1.0" }, "engines": { - "node": "*" + "node": ">=4.0" } }, - "node_modules/nyc/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, "engines": { - "node": ">=8" + "node": ">=4.0" } }, - "node_modules/nyc/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/nyc/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, - "node_modules/nyc/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/nyc/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/nyc/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/exif-parser": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", + "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=", + "dev": true }, - "node_modules/nyc/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/nyc/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, "bin": { - "semver": "bin/semver.js" + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" } }, - "node_modules/nyc/node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "node_modules/extract-zip/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "ms": "2.1.2" }, "engines": { - "node": ">=8" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/nyc/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "node_modules/extract-zip/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.0" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { "node": ">=8" } }, - "node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.1.tgz", + "integrity": "sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" + "reusify": "^1.0.4" } }, - "node_modules/nyc/node_modules/yargs": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", - "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", "dev": true, "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.1" + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", + "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" }, "engines": { "node": ">=8" } }, - "node_modules/nyc/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "node_modules/file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "flat-cache": "^2.0.1" }, "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "node_modules/file-size": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/file-size/-/file-size-0.0.5.tgz", + "integrity": "sha1-BX1Dw6Ptc12j+Q1gUqs4Dx5tXjs=", + "dev": true + }, + "node_modules/file-type": { + "version": "12.4.2", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz", + "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==", "dev": true, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/object-inspect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", - "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", - "dev": true - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "node_modules/filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha1-mzERErxsYSehbgFsbF1/GeCAXFs=", "dev": true, "engines": { - "node": ">= 0.4" + "node": ">=0.10.0" } }, - "node_modules/object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "dependencies": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "locate-path": "^3.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6" } }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "node_modules/find-versions": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", + "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", "dev": true, "dependencies": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" + "semver-regex": "^2.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">=6" } }, - "node_modules/object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "node_modules/flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "is-buffer": "~2.0.3" }, - "engines": { - "node": ">= 0.4" + "bin": { + "flat": "cli.js" } }, - "node_modules/object.values/node_modules/es-abstract": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0.tgz", - "integrity": "sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==", + "node_modules/flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" }, "engines": { - "node": ">= 0.4" + "node": ">=4" } }, - "node_modules/object.values/node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "node_modules/flat-cache/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "glob": "^7.1.3" }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", + "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==", "engines": { - "node": ">= 0.4" + "node": ">=4.0" } }, - "node_modules/object.values/node_modules/has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, "engines": { - "node": ">= 0.4" + "node": ">=8.0.0" } }, - "node_modules/object.values/node_modules/is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "dev": true, "engines": { - "node": ">= 0.4" + "node": "*" } }, - "node_modules/object.values/node_modules/is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "dependencies": { - "has": "^1.0.3" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" }, "engines": { - "node": ">= 0.4" + "node": ">= 0.12" } }, - "node_modules/object.values/node_modules/object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "node_modules/fromentries": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.2.0.tgz", + "integrity": "sha512-33X7H/wdfO99GdRLLgkjUrD4geAFdq/Uv0kl3HD4da6HDixd2GUg8Mw7dahLCV9r/EARkmtYBB6Tch4EEokFTQ==", "dev": true }, - "node_modules/object.values/node_modules/string.prototype.trimleft": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", - "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", + "node_modules/fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ=", + "dev": true + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" } }, - "node_modules/object.values/node_modules/string.prototype.trimright": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", - "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "minipass": "^3.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">= 8" } }, - "node_modules/omggif": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", - "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==", + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, - "node_modules/onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - } + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true }, - "node_modules/onigasm": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/onigasm/-/onigasm-2.2.5.tgz", - "integrity": "sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA==", + "node_modules/gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "dependencies": { - "lru-cache": "^5.1.1" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, - "node_modules/onigasm/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "node_modules/gauge/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, - "dependencies": { - "yallist": "^3.0.2" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/onigasm/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "node_modules/gauge/node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, - "node_modules/opencollective-postinstall": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz", - "integrity": "sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==", + "node_modules/gauge/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, - "bin": { - "opencollective-postinstall": "index.js" + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "dependencies": { - "is-wsl": "^1.1.0" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "node_modules/gauge/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "ansi-regex": "^2.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "node_modules/gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", "dev": true }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" + "node": "*" } }, - "node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, "dependencies": { - "p-limit": "^2.0.0" + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" }, - "engines": { - "node": ">=6" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/get-pkg-repo": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.1.2.tgz", + "integrity": "sha512-/FjamZL9cBYllEbReZkxF2IMh80d8TJoC4e3bmLNif8ibHw95aj0N/tzqK0kZz9eU/3w3dL6lF4fnnX/sDdW3A==", "dev": true, + "dependencies": { + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "meow": "^7.0.0", + "through2": "^2.0.0" + }, + "bin": { + "get-pkg-repo": "src/cli.js" + }, "engines": { - "node": ">=6" + "node": ">=6.9.0" } }, - "node_modules/package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "node_modules/get-pkg-repo/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/get-pkg-repo/node_modules/hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", "dev": true, "dependencies": { - "callsites": "^3.0.0" + "lru-cache": "^6.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/parents": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "node_modules/get-pkg-repo/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { - "path-platform": "~0.11.15" + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "node_modules/get-pkg-repo/node_modules/meow": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-7.1.1.tgz", + "integrity": "sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==", "dev": true, "dependencies": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^2.5.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.13.1", + "yargs-parser": "^18.1.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse-bmfont-ascii": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", - "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=", - "dev": true - }, - "node_modules/parse-bmfont-binary": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", - "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=", - "dev": true - }, - "node_modules/parse-bmfont-xml": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", - "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", + "node_modules/get-pkg-repo/node_modules/meow/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", "dev": true, - "dependencies": { - "xml-parse-from-string": "^1.0.0", - "xml2js": "^0.4.5" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse-headers": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", - "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==", - "dev": true - }, - "node_modules/parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", - "dev": true - }, - "node_modules/path": { - "version": "0.12.7", - "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", + "node_modules/get-pkg-repo/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { - "process": "^0.11.1", - "util": "^0.10.3" + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "node_modules/get-pkg-repo/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "node_modules/get-pkg-repo/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "node_modules/path-platform": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", + "node_modules/get-pkg-repo/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "node_modules/get-pkg-repo/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "node_modules/get-pkg-repo/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" }, "engines": { - "node": ">=0.12" + "node": ">=6" } }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "node_modules/phin": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", - "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "node_modules/get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", "dev": true, "engines": { - "node": ">=8.6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pixelmatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", - "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", + "node_modules/get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", "dev": true, - "dependencies": { - "pngjs": "^3.0.0" - }, - "bin": { - "pixelmatch": "bin/pixelmatch" + "engines": { + "node": ">=4" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "dependencies": { - "find-up": "^4.0.0" + "pump": "^3.0.0" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" + "assert-plus": "^1.0.0" } }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/git-raw-commits": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.10.tgz", + "integrity": "sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/git-raw-commits/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/git-raw-commits/node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "readable-stream": "3" } }, - "node_modules/please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "node_modules/git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", "dev": true, "dependencies": { - "semver-compare": "^1.0.0" + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "node_modules/git-remote-origin-url/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true, "engines": { - "node": ">=4.0.0" + "node": ">=0.10.0" } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "node_modules/git-semver-tags": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", + "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", "dev": true, + "dependencies": { + "meow": "^8.0.0", + "semver": "^6.0.0" + }, + "bin": { + "git-semver-tags": "cli.js" + }, "engines": { - "node": ">= 0.8.0" + "node": ">=10" } }, - "node_modules/prettier": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz", - "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==", + "node_modules/git-semver-tags/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" + "semver": "bin/semver.js" } }, - "node_modules/pretty-quick": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-2.0.1.tgz", - "integrity": "sha512-y7bJt77XadjUr+P1uKqZxFWLddvj3SKY6EU4BuQtMxmmEFSMpbN132pUWdSG1g1mtUfO0noBvn7wBf0BVeomHg==", + "node_modules/git-up": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.5.tgz", + "integrity": "sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA==", "dev": true, "dependencies": { - "chalk": "^2.4.2", - "execa": "^2.1.0", - "find-up": "^4.1.0", - "ignore": "^5.1.4", - "mri": "^1.1.4", - "multimatch": "^4.0.0" - }, - "bin": { - "pretty-quick": "bin/pretty-quick.js" - }, - "engines": { - "node": ">=8" + "is-ssh": "^1.3.0", + "parse-url": "^6.0.0" } }, - "node_modules/pretty-quick/node_modules/cross-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", - "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", + "node_modules/git-url-parse": { + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.5.0.tgz", + "integrity": "sha512-TZYSMDeM37r71Lqg1mbnMlOqlHd7BSij9qN7XwTkRqSAYFMihGLGhfHwgqQob3GUhEneKnV4nskN9rbQw2KGxA==", "dev": true, "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" + "git-up": "^4.0.0" } }, - "node_modules/pretty-quick/node_modules/execa": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz", - "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==", + "node_modules/gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", "dev": true, "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^3.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": "^8.12.0 || >=9.7.0" + "ini": "^1.3.2" } }, - "node_modules/pretty-quick/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/pretty-quick/node_modules/ignore": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", - "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, "engines": { - "node": ">= 4" + "node": ">= 6" } }, - "node_modules/pretty-quick/node_modules/is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/pretty-quick/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pretty-quick/node_modules/npm-run-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", - "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", + "node_modules/globby/node_modules/ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">= 4" } }, - "node_modules/pretty-quick/node_modules/p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "node_modules/graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=4.x" } }, - "node_modules/pretty-quick/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" }, "engines": { - "node": ">=8" + "node": ">=0.4.7" } }, - "node_modules/pretty-quick/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/pretty-quick/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/pretty-quick/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "dev": true, "dependencies": { - "shebang-regex": "^3.0.0" + "ajv": "^6.5.5", + "har-schema": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/pretty-quick/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/pretty-quick/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "function-bind": "^1.1.1" }, "engines": { - "node": ">= 8" + "node": ">= 0.4.0" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "node_modules/has-ansi": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", + "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=", "dev": true, + "dependencies": { + "ansi-regex": "^0.2.0" + }, + "bin": { + "has-ansi": "cli.js" + }, "engines": { - "node": ">= 0.6.0" + "node": ">=0.10.0" } }, - "node_modules/process-nextick-args": { + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz", + "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true }, - "node_modules/process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "node_modules/hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, "dependencies": { - "fromentries": "^1.2.0" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz", + "integrity": "sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" }, "engines": { "node": ">=8" } }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, - "engines": { - "node": ">=0.4.0" + "bin": { + "he": "bin/he" } }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "node_modules/hosted-git-info": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", "dev": true }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", "dev": true, "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" } }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "node_modules/htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, + "dependencies": { + "ms": "2.1.2" + }, "engines": { - "node": ">=6" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/puppeteer": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-10.0.0.tgz", - "integrity": "sha512-AxHvCb9IWmmP3gMW+epxdj92Gglii+6Z4sb+W+zc2hTTu10HF0yg6hGXot5O74uYkVqG3lfDRLfnRpi6WOwi5A==", + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, - "hasInstallScript": true, "dependencies": { - "debug": "4.3.1", - "devtools-protocol": "0.0.883894", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.0", - "node-fetch": "2.6.1", - "pkg-dir": "4.2.0", - "progress": "2.0.1", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.0.0", - "unbzip2-stream": "1.3.3", - "ws": "7.4.6" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" }, "engines": { - "node": ">=10.18.1" + "node": ">=0.8", + "npm": ">=1.3.7" } }, - "node_modules/puppeteer-mass-screenshots": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/puppeteer-mass-screenshots/-/puppeteer-mass-screenshots-1.0.15.tgz", - "integrity": "sha512-QasQ6pxkXocZTyVkgIx2uXM5VOTUhXvHw44TJNgoQ2I/pj+DOKqXI0TD5VUOiKAWkjJhCtsJaL9ImQFBJrPWPg==", + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "dependencies": { - "fs": "0.0.1-security", - "path": "^0.12.7" + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/puppeteer/node_modules/debug": { + "node_modules/https-proxy-agent/node_modules/debug": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", @@ -7750,4029 +8219,11210 @@ } } }, - "node_modules/puppeteer/node_modules/ms": { + "node_modules/https-proxy-agent/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/puppeteer/node_modules/progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", - "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, "engines": { - "node": ">=0.4.0" + "node": ">=10.17.0" } }, - "node_modules/qrcode-generator": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz", - "integrity": "sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==" - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "dev": true, - "engines": { - "node": ">=0.4.x" + "dependencies": { + "ms": "^2.0.0" } }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "node_modules/husky": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.5.tgz", + "integrity": "sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==", "dev": true, "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" + "chalk": "^4.0.0", + "ci-info": "^2.0.0", + "compare-versions": "^3.6.0", + "cosmiconfig": "^6.0.0", + "find-versions": "^3.2.0", + "opencollective-postinstall": "^2.0.2", + "pkg-dir": "^4.2.0", + "please-upgrade-node": "^3.2.0", + "slash": "^3.0.0", + "which-pm-runs": "^1.0.0" + }, + "bin": { + "husky-run": "bin/run.js", + "husky-upgrade": "lib/upgrader/bin.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/read-only-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", + "node_modules/husky/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "dependencies": { - "readable-stream": "^2.0.2" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "node_modules/husky/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", "dev": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "node_modules/husky/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "resolve": "^1.1.6" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 0.10" + "node": ">=7.0.0" } }, - "node_modules/regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "node_modules/husky/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "node_modules/husky/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, "engines": { "node": ">=8" } }, - "node_modules/release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "node_modules/husky/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "es6-error": "^4.0.1" - }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "node_modules/husky/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "dependencies": { - "lodash": "^4.17.19" + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/request-promise-core/node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "node_modules/ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "dev": true }, - "node_modules/request-promise-native": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", - "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true, - "dependencies": { - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - }, "engines": { - "node": ">=0.12.0" + "node": ">= 4" } }, - "node_modules/request/node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "node_modules/ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", "dev": true, - "engines": { - "node": ">=0.6" + "dependencies": { + "minimatch": "^3.0.4" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "node_modules/import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/resize-img": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resize-img/-/resize-img-2.0.0.tgz", - "integrity": "sha512-im2Kn4CY0c7JGdYXwL7g77T8AUi15YQeEBmmpWuglrcPFq4Di53tIvLXlbasW7UKed9GaZCza/OSxOJrmB0jbg==", + "node_modules/import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", "dev": true, "dependencies": { - "file-type": "^12.3.0", - "jimp": "^0.8.3" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/resolve": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", - "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true, - "dependencies": { - "path-parse": "^1.0.6" + "engines": { + "node": ">=0.8.19" } }, - "node_modules/resolve-from": { + "node_modules/indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true }, - "node_modules/rxjs": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", - "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", + "node_modules/init-package-json": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-2.0.3.tgz", + "integrity": "sha512-tk/gAgbMMxR6fn1MgMaM1HpU1ryAmBWWitnxG5OhuNXeX0cbpbgV5jA4AIpQJVNoyOfOevTtO6WX+rPs+EFqaQ==", "dev": true, "dependencies": { - "tslib": "^1.9.0" + "glob": "^7.1.1", + "npm-package-arg": "^8.1.2", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "^3.0.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^3.0.0" }, "engines": { - "npm": ">=2.0.0" + "node": ">=10" } }, - "node_modules/safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "node_modules/init-package-json/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { - "xmlchars": "^2.2.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "node_modules/inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", "dev": true, - "bin": { - "semver": "bin/semver" + "dependencies": { + "source-map": "~0.5.3" } }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true - }, - "node_modules/semver-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", - "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", + "node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" }, - "bin": { - "sha.js": "bin.js" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/shasum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", - "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true, - "dependencies": { - "json-stable-stringify": "~0.0.0", - "sha.js": "~2.4.4" + "engines": { + "node": ">=8" } }, - "node_modules/shasum-object": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", - "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "fast-safe-stringify": "^2.0.7" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", - "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", - "dev": true - }, - "node_modules/shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", + "node_modules/inquirer/node_modules/chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/shiki": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.2.tgz", - "integrity": "sha512-BjUCxVbxMnvjs8jC4b+BQ808vwjJ9Q8NtLqPwXShZ307HdXiDFYP968ORSVfaTNNSWYDBYdMnVKJ0fYNsoZUBA==", + "node_modules/inquirer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "onigasm": "^2.2.5", - "vscode-textmate": "^5.2.0" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "node_modules/inquirer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", + "node_modules/inquirer/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/sinon": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.0.3.tgz", - "integrity": "sha512-IKo9MIM111+smz9JGwLmw5U1075n1YXeAq8YeSFlndCLhAL5KGn6bLgu7b/4AYHTV/LcEMcRm2wU2YiL55/6Pg==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.2", - "@sinonjs/fake-timers": "^6.0.1", - "@sinonjs/formatio": "^5.0.1", - "@sinonjs/samsam": "^5.1.0", - "diff": "^4.0.2", - "nise": "^4.0.4", - "supports-color": "^7.1.0" - } - }, - "node_modules/sinon/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "node_modules/inquirer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=0.3.1" + "node": ">=8" } }, - "node_modules/sinon/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/inquirer/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/sinon/node_modules/supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "node_modules/inquirer/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-regex": "^5.0.0" }, "engines": { - "node": ">=6" - } - }, - "node_modules/sonar-scanner": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/sonar-scanner/-/sonar-scanner-3.1.0.tgz", - "integrity": "sha1-UcHBEB9UuYq8XYVlIJsdkjKXk0M=", - "dev": true, - "bin": { - "sonar-scanner": "index.js" + "node": ">=8" } }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "node_modules/inquirer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "node_modules/insert-module-globals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", + "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", "dev": true, "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "acorn-node": "^1.5.2", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", + "is-buffer": "^1.1.0", + "JSONStream": "^1.0.3", + "path-is-absolute": "^1.0.1", + "process": "~0.11.0", + "through2": "^2.0.0", + "undeclared-identifiers": "^1.1.2", + "xtend": "^4.0.0" + }, + "bin": { + "insert-module-globals": "bin/cmd.js" } }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/insert-module-globals/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "node_modules/ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", "dev": true, - "dependencies": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/spawn-wrap/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/spawn-wrap/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">= 0.4" } }, - "node_modules/spawn-wrap/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, "dependencies": { - "isexe": "^2.0.0" + "ci-info": "^2.0.0" }, "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" + "is-ci": "bin.js" } }, - "node_modules/spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "node_modules/is-core-module": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", + "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", "dev": true, "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true + "node_modules/is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true, + "engines": { + "node": ">= 0.4" + } }, - "node_modules/spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", - "dev": true + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", "dev": true }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" + "is-extglob": "^2.1.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/static-server": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/static-server/-/static-server-2.2.1.tgz", - "integrity": "sha512-j5eeW6higxYNmXMIT8iHjsdiViTpQDthg7o+SHsRtqdbxscdHqBHXwrXjHC8hL3F0Tsu34ApUpDkwzMBPBsrLw==", + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "dependencies": { - "chalk": "^0.5.1", - "commander": "^2.3.0", - "file-size": "0.0.5", - "mime": "^1.2.11", - "opn": "^5.2.0" - }, - "bin": { - "static-server": "bin/static-server.js" - }, "engines": { - "node": ">=4" + "node": ">=0.12.0" } }, - "node_modules/static-server/node_modules/ansi-regex": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz", - "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=", + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/static-server/node_modules/ansi-styles": { + "node_modules/is-plain-obj": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz", - "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/static-server/node_modules/chalk": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", - "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, - "dependencies": { - "ansi-styles": "^1.1.0", - "escape-string-regexp": "^1.0.0", - "has-ansi": "^0.1.0", - "strip-ansi": "^0.3.0", - "supports-color": "^0.2.0" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/static-server/node_modules/strip-ansi": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", - "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=", + "node_modules/is-potential-custom-element-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", + "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "dependencies": { - "ansi-regex": "^0.2.1" - }, - "bin": { - "strip-ansi": "cli.js" + "has": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/static-server/node_modules/supports-color": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", - "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=", + "node_modules/is-ssh": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.3.tgz", + "integrity": "sha512-NKzJmQzJfEEma3w5cJNcUMxoXfDjz0Zj0eyCalHn2E6VOwlzjZo0yuO2fcBSf8zhFuVCL/82/r5gRcoi6aEPVQ==", "dev": true, - "bin": { - "supports-color": "cli.js" - }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "protocols": "^1.1.0" } }, - "node_modules/stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "node_modules/is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", "dev": true, - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" + "engines": { + "node": ">= 0.4" } }, - "node_modules/stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "node_modules/is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "dev": true, "dependencies": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" + "has-symbols": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/stream-splicer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", - "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", + "node_modules/is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", "dev": true, "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" + "text-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, "engines": { "node": ">=4" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/string.prototype.trimend/node_modules/es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/string.prototype.trimend/node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "node_modules/istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", "dev": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "append-transform": "^2.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/string.prototype.trimend/node_modules/has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/string.prototype.trimend/node_modules/is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "engines": { - "node": ">= 0.4" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/string.prototype.trimend/node_modules/is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "node_modules/istanbul-lib-processinfo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "archy": "^1.0.0", + "cross-spawn": "^7.0.0", + "istanbul-lib-coverage": "^3.0.0-alpha.1", + "make-dir": "^3.0.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^3.3.3" }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/string.prototype.trimend/node_modules/object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true - }, - "node_modules/string.prototype.trimend/node_modules/string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "node_modules/istanbul-lib-processinfo/node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" + "aggregate-error": "^3.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/string.prototype.trimend/node_modules/string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/string.prototype.trimleft": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", - "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/string.prototype.trimright": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", - "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "node": ">=8" } }, - "node_modules/string.prototype.trimstart/node_modules/es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", "dev": true, "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/string.prototype.trimstart/node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" + "ms": "^2.1.1" } }, - "node_modules/string.prototype.trimstart/node_modules/has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { - "node": ">= 0.4" + "node": ">=0.10.0" } }, - "node_modules/string.prototype.trimstart/node_modules/is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "node_modules/istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/string.prototype.trimstart/node_modules/is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "node_modules/jimp": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.8.5.tgz", + "integrity": "sha512-BW7t/+TCgKpqZw/wHFwqF/A/Tyk43RmzRHyMBdqfOepqunUrajt0RTqowdWyFo4CS2FmD8pFiYfefWjpXFWrCA==", "dev": true, "dependencies": { - "has": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" + "@jimp/custom": "^0.8.5", + "@jimp/plugins": "^0.8.5", + "@jimp/types": "^0.8.5", + "core-js": "^2.5.7", + "regenerator-runtime": "^0.13.3" } }, - "node_modules/string.prototype.trimstart/node_modules/object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "node_modules/jimp/node_modules/core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", "dev": true }, - "node_modules/string.prototype.trimstart/node_modules/string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "node_modules/jpeg-js": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.7.tgz", + "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "engines": { - "node": ">= 0.4" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/string.prototype.trimstart/node_modules/string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "node_modules/jsdom": { + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz", + "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" + "abab": "^2.0.3", + "acorn": "^7.1.1", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.2.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.0", + "domexception": "^2.0.1", + "escodegen": "^1.14.1", + "html-encoding-sniffer": "^2.0.1", + "is-potential-custom-element-name": "^1.0.0", + "nwsapi": "^2.2.0", + "parse5": "5.1.1", + "request": "^2.88.2", + "request-promise-native": "^1.0.8", + "saxes": "^5.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^3.0.1", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0", + "ws": "^7.2.3", + "xml-name-validator": "^3.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" } }, - "node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "node_modules/jsdom-global": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsdom-global/-/jsdom-global-3.0.2.tgz", + "integrity": "sha1-a9KZwTsMRiay2iwDk81DhdYGrLk=", + "dev": true + }, + "node_modules/jsdom/node_modules/tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", "dev": true, "dependencies": { - "ansi-regex": "^3.0.0" + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, "engines": { "node": ">=4" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", + "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", "dev": true, - "engines": { - "node": ">=6" + "dependencies": { + "jsonify": "~0.0.0" } }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true }, - "node_modules/subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "node_modules/json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "dependencies": { - "minimist": "^1.1.0" + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, - "node_modules/subarg/node_modules/minimist": { + "node_modules/json5/node_modules/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, - "node_modules/supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "universalify": "^2.0.0" }, - "engines": { - "node": ">=6" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "node_modules/jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", "dev": true }, - "node_modules/syntax-error": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", - "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true, - "dependencies": { - "acorn-node": "^1.2.0" - } + "engines": [ + "node >= 0.2.0" + ] }, - "node_modules/table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, "dependencies": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" }, "engines": { - "node": ">=6.0.0" + "node": "*" } }, - "node_modules/table/node_modules/ansi-regex": { + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/just-extend": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.1.0.tgz", + "integrity": "sha512-ApcjaOdVTJ7y4r08xI5wIqpvwS48Q0PBG4DJROcEkH1f8MdAiNFyFxz3xoL0LWAVwjrwPYZdVHHxhRHcx/uGLA==", + "dev": true + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/table/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "node_modules/labeled-stream-splicer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", + "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", "dev": true, "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "inherits": "^2.0.1", + "stream-splicer": "^2.0.0" + } + }, + "node_modules/lerna": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/lerna/-/lerna-4.0.0.tgz", + "integrity": "sha512-DD/i1znurfOmNJb0OBw66NmNqiM8kF6uIrzrJ0wGE3VNdzeOhz9ziWLYiRaZDGGwgbcjOo6eIfcx9O5Qynz+kg==", + "dev": true, + "dependencies": { + "@lerna/add": "4.0.0", + "@lerna/bootstrap": "4.0.0", + "@lerna/changed": "4.0.0", + "@lerna/clean": "4.0.0", + "@lerna/cli": "4.0.0", + "@lerna/create": "4.0.0", + "@lerna/diff": "4.0.0", + "@lerna/exec": "4.0.0", + "@lerna/import": "4.0.0", + "@lerna/info": "4.0.0", + "@lerna/init": "4.0.0", + "@lerna/link": "4.0.0", + "@lerna/list": "4.0.0", + "@lerna/publish": "4.0.0", + "@lerna/run": "4.0.0", + "@lerna/version": "4.0.0", + "import-local": "^3.0.2", + "npmlog": "^4.1.2" + }, + "bin": { + "lerna": "cli.js" }, "engines": { - "node": ">=6" + "node": ">= 10.18.0" } }, - "node_modules/table/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "dependencies": { - "ansi-regex": "^4.1.0" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { - "node": ">=6" + "node": ">= 0.8.0" } }, - "node_modules/tar-fs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", - "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==", + "node_modules/libnpmaccess": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-4.0.3.tgz", + "integrity": "sha512-sPeTSNImksm8O2b6/pf3ikv4N567ERYEpeKRPSmqlNt1dTZbvgpJIzg5vAhXHpw2ISBsELFRelk0jEahj1c6nQ==", "dev": true, "dependencies": { - "chownr": "^1.1.1", - "mkdirp": "^0.5.1", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" + "aproba": "^2.0.0", + "minipass": "^3.1.1", + "npm-package-arg": "^8.1.2", + "npm-registry-fetch": "^11.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "node_modules/libnpmaccess/node_modules/make-fetch-happen": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.0.4.tgz", + "integrity": "sha512-sQWNKMYqSmbAGXqJg2jZ+PmHh5JAybvwu0xM8mZR/bsTjGiTASj3ldXJV7KFHy1k/IJIBkjxQFoWIVsv9+PQMg==", "dev": true, "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" }, "engines": { - "node": ">=6" + "node": ">= 10" } }, - "node_modules/tar-stream/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "node_modules/libnpmaccess/node_modules/npm-registry-fetch": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", "dev": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "make-fetch-happen": "^9.0.1", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" }, "engines": { - "node": ">= 6" + "node": ">=10" } }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "node_modules/libnpmpublish": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-4.0.2.tgz", + "integrity": "sha512-+AD7A2zbVeGRCFI2aO//oUmapCwy7GHqPXFJh3qpToSRNU+tXKJ2YFUgjt04LPPAf2dlEH95s6EhIHM1J7bmOw==", "dev": true, "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "normalize-package-data": "^3.0.2", + "npm-package-arg": "^8.1.2", + "npm-registry-fetch": "^11.0.0", + "semver": "^7.1.3", + "ssri": "^8.0.1" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/test-exclude/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "node_modules/libnpmpublish/node_modules/hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "lru-cache": "^6.0.0" }, "engines": { - "node": "*" + "node": ">=10" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "node_modules/libnpmpublish/node_modules/make-fetch-happen": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.0.4.tgz", + "integrity": "sha512-sQWNKMYqSmbAGXqJg2jZ+PmHh5JAybvwu0xM8mZR/bsTjGiTASj3ldXJV7KFHy1k/IJIBkjxQFoWIVsv9+PQMg==", "dev": true, "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/timm": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz", - "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==", - "dev": true - }, - "node_modules/tinycolor2": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", - "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==", - "dev": true, + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" + }, "engines": { - "node": "*" + "node": ">= 10" } }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "node_modules/libnpmpublish/node_modules/normalize-package-data": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz", + "integrity": "sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==", "dev": true, "dependencies": { - "os-tmpdir": "~1.0.2" + "hosted-git-info": "^4.0.1", + "resolve": "^1.20.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" }, "engines": { - "node": ">=0.6.0" + "node": ">=10" } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "node_modules/libnpmpublish/node_modules/npm-registry-fetch": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", "dev": true, + "dependencies": { + "make-fetch-happen": "^9.0.1", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "node_modules/libnpmpublish/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "lru-cache": "^6.0.0" }, - "engines": { - "node": ">=0.8" + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/tr46": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", - "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "node_modules/libsodium": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.8.tgz", + "integrity": "sha512-/Qc+APf0jbeWSaeEruH0L1/tbbT+sbf884ZL0/zV/0JXaDPBzYkKbyb/wmxMHgAHzm3t6gqe7bOOXAVwfqVikQ==" + }, + "node_modules/libsodium-wrappers": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz", + "integrity": "sha512-PDhPWXBqd/SaqAFUBgH2Ux7b3VEEJgyD6BQB+VdNFJb9PbExGr/T/myc/MBoSvl8qLzfm0W0IVByOQS5L1MrCg==", + "dependencies": { + "libsodium": "0.7.8" + } + }, + "node_modules/lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "node_modules/load-bmfont": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", + "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", "dev": true, "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" + "buffer-equal": "0.0.1", + "mime": "^1.3.4", + "parse-bmfont-ascii": "^1.0.3", + "parse-bmfont-binary": "^1.0.5", + "parse-bmfont-xml": "^1.1.4", + "phin": "^2.9.1", + "xhr": "^2.0.1", + "xtend": "^4.0.0" } }, - "node_modules/ts-node": { - "version": "8.10.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.1.tgz", - "integrity": "sha512-bdNz1L4ekHiJul6SHtZWs1ujEKERJnHs4HxN7rjTyyVOFf3HaJ6sLqe6aPG62XTzAB/63pKRh5jTSWL0D7bsvw==", + "node_modules/load-json-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", + "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", "dev": true, "dependencies": { - "arg": "^4.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" + "graceful-fs": "^4.1.15", + "parse-json": "^5.0.0", + "strip-bom": "^4.0.0", + "type-fest": "^0.6.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=8" } }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, "engines": { - "node": ">=0.3.1" + "node": ">=8" } }, - "node_modules/tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", - "dev": true - }, - "node_modules/tslint": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.2.tgz", - "integrity": "sha512-UyNrLdK3E0fQG/xWNqAFAC5ugtFyPO4JJR1KyyfQAyzR8W0fTRrC91A8Wej4BntFzcvETdCSDa/4PnNYJQLYiA==", + "node_modules/load-json-file/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.10.0", - "tsutils": "^2.29.0" - }, - "bin": { - "tslint": "bin/tslint" - }, "engines": { - "node": ">=4.8.0" + "node": ">=8" } }, - "node_modules/tslint/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, "engines": { - "node": ">=0.3.1" + "node": ">=6" } }, - "node_modules/tslint/node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "node_modules/lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, - "node_modules/tslint/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "node_modules/lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, + "node_modules/lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", + "dev": true + }, + "node_modules/lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", "dev": true, "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" } }, - "node_modules/tslint/node_modules/tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "node_modules/lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", "dev": true, "dependencies": { - "tslib": "^1.8.1" + "lodash._reinterpolate": "^3.0.0" } }, - "node_modules/tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "node_modules/log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", "dev": true, "dependencies": { - "tslib": "^1.8.1" + "chalk": "^2.4.2" }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { - "safe-buffer": "^5.0.1" + "yallist": "^4.0.0" }, "engines": { - "node": "*" + "node": ">=10" } }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", "dev": true }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "dependencies": { - "prelude-ls": "^1.2.1" + "semver": "^6.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/make-fetch-happen": { + "version": "8.0.14", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", + "integrity": "sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==", "dev": true, + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.0.5", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" + }, "engines": { - "node": ">=4" + "node": ">= 10" } }, - "node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "node_modules/map-obj": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", + "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==", "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "node_modules/marked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/marked/-/marked-2.0.1.tgz", + "integrity": "sha512-5+/fKgMv2hARmMW7DOpykr2iLhl0NgjyELk5yn92iE7z8Se1IS9n3UsFm86hFXIkvMBmVxki8+ckcpjBeyo/hw==", "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" + "bin": { + "marked": "bin/marked" + }, + "engines": { + "node": ">= 8.16.2" } }, - "node_modules/typedoc": { - "version": "0.20.30", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.20.30.tgz", - "integrity": "sha512-A4L6JDShPFwZDt9qp7FBsEpW7C6rA5fRv6ywgBuxGxZnT2wuF5afbWzmrwqHR3Xw38V1H2L4v/VJ0S/llBwV6Q==", - "dev": true, - "dependencies": { - "colors": "^1.4.0", - "fs-extra": "^9.1.0", - "handlebars": "^4.7.7", - "lodash": "^4.17.21", - "lunr": "^2.3.9", - "marked": "^2.0.1", - "minimatch": "^3.0.0", - "progress": "^2.0.3", - "shelljs": "^0.8.4", - "shiki": "^0.9.2", - "typedoc-default-themes": "^0.12.8" + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, - "bin": { - "typedoc": "bin/typedoc" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">= 10.8.0" + "node": ">=8" } }, - "node_modules/typedoc-default-themes": { - "version": "0.12.8", - "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.8.tgz", - "integrity": "sha512-tyjyDTKy/JLnBSwvhoqd99VIjrP33SdOtwcMD32b+OqnrjZWe8HmZECbfBoacqoxjHd58gfeNw6wA7uvqWFa4w==", + "node_modules/meow/node_modules/hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, "engines": { - "node": ">= 8" + "node": ">=10" } }, - "node_modules/typedoc-plugin-internal-external": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/typedoc-plugin-internal-external/-/typedoc-plugin-internal-external-2.2.0.tgz", - "integrity": "sha512-xeh+NemurGr23cm1kf6Mec5TB0pCSllm3l3+hJg1ersl00xgC6klVpD1GBKqliGxnLo7blytZrnHsS4w/bzeOA==", - "dev": true + "node_modules/meow/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/typedoc/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/meow/node_modules/normalize-package-data": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz", + "integrity": "sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==", "dev": true, "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "hosted-git-info": "^4.0.1", + "resolve": "^1.20.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" }, "engines": { "node": ">=10" } }, - "node_modules/typedoc/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "node_modules/meow/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/typedoc/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/typedoc/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "node_modules/meow/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { - "node": ">= 10.0.0" + "node": ">=8" } }, - "node_modules/typescript": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.2.tgz", - "integrity": "sha512-q2ktq4n/uLuNNShyayit+DTobV2ApPEo/6so68JaD5ojvc/6GClBipedB9zNWYxRSAlZXAe405Rlijzl6qDiSw==", + "node_modules/meow/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, "engines": { - "node": ">=4.2.0" + "node": ">=8" } }, - "node_modules/uglify-js": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.4.tgz", - "integrity": "sha512-8RZBJq5smLOa7KslsNsVcSH+KOXf1uDU8yqLeNuVKwmT0T3FA0ZoXlinQfRad7SDcbZZRZE4ov+2v71EnxNyCA==", + "node_modules/meow/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "dependencies": { - "commander": "~2.20.3" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, "engines": { - "node": ">=0.8.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/umd": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", - "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", + "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, - "bin": { - "umd": "bin/cli.js" + "engines": { + "node": ">=8" } }, - "node_modules/unbzip2-stream": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz", - "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==", + "node_modules/meow/node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/undeclared-identifiers": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", - "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", + "node_modules/meow/node_modules/read-pkg/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, - "dependencies": { - "acorn-node": "^1.3.0", - "dash-ast": "^1.0.0", - "get-assigned-identifiers": "^1.2.0", - "simple-concat": "^1.0.0", - "xtend": "^4.0.1" - }, "bin": { - "undeclared-identifiers": "bin.js" + "semver": "bin/semver" } }, - "node_modules/uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, - "dependencies": { - "punycode": "^2.1.0" + "engines": { + "node": ">=8" } }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "node_modules/meow/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - }, - "node_modules/utif": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", - "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, - "dependencies": { - "pako": "^1.0.5" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "node_modules/meow/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, - "dependencies": { - "inherits": "2.0.3" + "engines": { + "node": ">=10" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, - "node_modules/uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, - "bin": { - "uuid": "bin/uuid" + "engines": { + "node": ">= 8" } }, - "node_modules/v8-compile-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", - "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", - "dev": true - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, - "engines": [ - "node >=0.6.0" - ], "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" } }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", "dev": true }, - "node_modules/vscode-textmate": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", - "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", - "dev": true + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "node_modules/mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true, - "dependencies": { - "browser-process-hrtime": "^1.0.0" + "engines": { + "node": ">= 0.6" } }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "node_modules/mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "dependencies": { - "xml-name-validator": "^3.0.0" + "mime-db": "1.44.0" }, "engines": { - "node": ">=10" + "node": ">= 0.6" } }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "engines": { - "node": ">=10.4" + "node": ">=6" } }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", "dev": true, "dependencies": { - "iconv-lite": "0.4.24" + "dom-walk": "^0.1.0" } }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.2.1.tgz", - "integrity": "sha512-ZmVCr6nfBeaMxEHALLEGy0LszYjpJqf6PVNQUQ1qd9Et+q7Jpygd4rGGDXgHjD8e99yLFseD69msHDM4YwPZ4A==", + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^2.0.2", - "webidl-conversions": "^6.1.0" - }, "engines": { - "node": ">=10" + "node": ">=4" } }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "dependencies": { - "isexe": "^2.0.0" + "brace-expansion": "^1.1.7" }, - "bin": { - "which": "bin/which" + "engines": { + "node": "*" } }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/which-pm-runs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", - "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, "dependencies": { - "string-width": "^1.0.2 || 2" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "node_modules/minimist-options/node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "node_modules/minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "yallist": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, "engines": { - "node": ">=6" + "node": ">= 8" } }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "node_modules/minipass-fetch": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.4.tgz", + "integrity": "sha512-TielGogIzbUEtd1LsjZFs47RWuHHfhl6TiCx1InVxApBAmQ8bL0dL5ilkLGcRvuyW/A9nE+Lvn855Ewz8S0PnQ==", "dev": true, "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" } }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, "dependencies": { - "ansi-regex": "^4.1.0" + "minipass": "^3.0.0" }, "engines": { - "node": ">=6" + "node": ">= 8" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } }, - "node_modules/write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, "dependencies": { - "mkdirp": "^0.5.1" + "minipass": "^3.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "engines": { + "node": ">= 8" } }, - "node_modules/xhr": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", - "integrity": "sha1-vtjRZ21co2EIZnaSt0sxbEluSd0=", + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "dependencies": { - "global": "~4.3.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/xhr/node_modules/global": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", - "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", - "dev": true, - "dependencies": { - "min-document": "^2.19.0", - "process": "~0.5.1" - } - }, - "node_modules/xhr/node_modules/process": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", - "dev": true, - "engines": { - "node": ">= 0.6.0" + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" } }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "node_modules/xml-parse-from-string": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", - "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=", + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "dev": true }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "node_modules/mkdirp-infer-owner": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", + "integrity": "sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==", "dev": true, "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" + "chownr": "^2.0.0", + "infer-owner": "^1.0.4", + "mkdirp": "^1.0.3" }, "engines": { - "node": ">=4.0.0" + "node": ">=10" } }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "node_modules/mkdirp-infer-owner/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, "engines": { - "node": ">=4.0" + "node": ">=10" } }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "node_modules/mkdirp-infer-owner/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, "engines": { - "node": ">=0.4" + "node": ">=10" } }, - "node_modules/y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "node_modules/yaml": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.9.2.tgz", - "integrity": "sha512-HPT7cGGI0DuRcsO51qC1j9O16Dh1mZ2bnXwsi0jrSpsLz0WxOLSLXfkABVl6bZO629py3CU+OMJtpNHDLB97kg==", + "node_modules/mocha": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.2.tgz", + "integrity": "sha512-o96kdRKMKI3E8U0bjnfqW4QMk12MwZ4mhdBTf+B5a1q9+aq2HRnj+3ZdJu0B/ZhJeK78MgYuv6L8d/rA5AeBJA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.9.2" + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "chokidar": "3.3.0", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.5", + "ms": "2.1.1", + "node-environment-flags": "1.0.6", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" }, "engines": { - "node": ">= 6" + "node": ">= 8.10.0" } }, - "node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "node_modules/mocha/node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "node_modules/mocha/node_modules/binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "engines": { + "node": ">=8" } }, - "node_modules/yargs-unparser": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", - "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "node_modules/mocha/node_modules/chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", "dev": true, "dependencies": { - "flat": "^4.1.0", - "lodash": "^4.17.15", - "yargs": "^13.3.0" + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" }, "engines": { - "node": ">=6" + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.1" } }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "node_modules/mocha/node_modules/fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/yargs/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "node_modules/mocha/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "binary-extensions": "^2.0.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "node_modules/mocha/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/mocha/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "dependencies": { - "ansi-regex": "^4.1.0" + "minimist": "^1.2.5" }, - "engines": { - "node": ">=6" + "bin": { + "mkdirp": "bin/cmd.js" } }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "node_modules/mocha/node_modules/readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", "dev": true, "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "node_modules/modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", "dev": true, "engines": { - "node": ">=6" - } - } - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.0.0" + "node": ">=0.10.0" } }, - "@babel/core": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", - "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", - "dev": true, + "node_modules/module-deps": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.2.tgz", + "integrity": "sha512-a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w==", + "dev": true, + "dependencies": { + "browser-resolve": "^1.7.0", + "cached-path-relative": "^1.0.2", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.2.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "JSONStream": "^1.0.3", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.4.0", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "module-deps": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/mri": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.5.tgz", + "integrity": "sha512-d2RKzMD4JNyHMbnbWnznPaa8vbdlq/4pNZ3IgdaGrVbBhebBsGUUE/6qorTMYNS6TwuH3ilfOlD2bf4Igh8CKg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node_modules/multimatch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", + "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", + "dev": true, + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "dev": true + }, + "node_modules/nise": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/nise/-/nise-4.0.4.tgz", + "integrity": "sha512-bTTRUNlemx6deJa+ZyoCUTRvH3liK5+N6VQZ4NIw90AgDXY6iPnsqplNFf6STcj+ePk0H/xqxnP75Lr0J0Fq3A==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0", + "@sinonjs/fake-timers": "^6.0.0", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + } + }, + "node_modules/nise/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "node_modules/nise/node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "node_modules/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "dev": true, + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/node-gyp": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.1.tgz", + "integrity": "sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.1.2", + "request": "^2.88.0", + "rimraf": "^2.6.3", + "semver": "^5.7.1", + "tar": "^4.4.12", + "which": "^1.3.1" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/node-gyp/node_modules/fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "dependencies": { + "minipass": "^2.6.0" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/node-gyp/node_modules/minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/node-gyp/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/node-gyp/node_modules/tar": { + "version": "4.4.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.15.tgz", + "integrity": "sha512-ItbufpujXkry7bHH9NpQyTXPbJ72iTlXgkBAYsAjDXk3Ds8t/3NfO5P4xZGy7u+sYuQUbimgzswX4uQIEeNVOA==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/node-gyp/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "dependencies": { + "process-on-spawn": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "dev": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-install-checks/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-lifecycle": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz", + "integrity": "sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g==", + "dev": true, + "dependencies": { + "byline": "^5.0.0", + "graceful-fs": "^4.1.15", + "node-gyp": "^5.0.2", + "resolve-from": "^4.0.0", + "slide": "^1.1.6", + "uid-number": "0.0.6", + "umask": "^1.1.0", + "which": "^1.3.1" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "node_modules/npm-package-arg": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "semver": "^7.3.4", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-package-arg/node_modules/hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-package-arg/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz", + "integrity": "sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==", + "dev": true, + "dependencies": { + "glob": "^7.1.6", + "ignore-walk": "^3.0.3", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm-pick-manifest": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", + "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", + "dev": true, + "dependencies": { + "npm-install-checks": "^4.0.0", + "npm-normalize-package-bin": "^1.0.1", + "npm-package-arg": "^8.1.2", + "semver": "^7.3.4" + } + }, + "node_modules/npm-pick-manifest/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-registry-fetch": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz", + "integrity": "sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA==", + "dev": true, + "dependencies": { + "@npmcli/ci-detect": "^1.0.0", + "lru-cache": "^6.0.0", + "make-fetch-happen": "^8.0.9", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "node_modules/nyc": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.1.tgz", + "integrity": "sha512-n0MBXYBYRqa67IVt62qW1r/d9UH/Qtr7SF1w/nQLJ9KxvWF6b2xCHImRAixHN9tnMMYHC2P14uo6KddNGwMgGg==", + "dev": true, + "dependencies": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/nyc/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/nyc/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/nyc/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/nyc/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/nyc/node_modules/find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nyc/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/yargs": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values/node_modules/es-abstract": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0.tgz", + "integrity": "sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values/node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values/node_modules/is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values/node_modules/is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values/node_modules/string.prototype.trimleft": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", + "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values/node_modules/string.prototype.trimright": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", + "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/omggif": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", + "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==", + "dev": true + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/onigasm": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/onigasm/-/onigasm-2.2.5.tgz", + "integrity": "sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA==", + "dev": true, + "dependencies": { + "lru-cache": "^5.1.1" + } + }, + "node_modules/onigasm/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/onigasm/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/opencollective-postinstall": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz", + "integrity": "sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==", + "dev": true, + "bin": { + "opencollective-postinstall": "index.js" + } + }, + "node_modules/opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map-series": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz", + "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-pipe": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", + "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-reduce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", + "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-waterfall": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz", + "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==", + "dev": true, + "dependencies": { + "p-reduce": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pacote": { + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.3.5.tgz", + "integrity": "sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg==", + "dev": true, + "dependencies": { + "@npmcli/git": "^2.1.0", + "@npmcli/installed-package-contents": "^1.0.6", + "@npmcli/promise-spawn": "^1.2.0", + "@npmcli/run-script": "^1.8.2", + "cacache": "^15.0.5", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "minipass": "^3.1.3", + "mkdirp": "^1.0.3", + "npm-package-arg": "^8.0.1", + "npm-packlist": "^2.1.4", + "npm-pick-manifest": "^6.0.0", + "npm-registry-fetch": "^11.0.0", + "promise-retry": "^2.0.1", + "read-package-json-fast": "^2.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.1.0" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pacote/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/pacote/node_modules/make-fetch-happen": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.0.4.tgz", + "integrity": "sha512-sQWNKMYqSmbAGXqJg2jZ+PmHh5JAybvwu0xM8mZR/bsTjGiTASj3ldXJV7KFHy1k/IJIBkjxQFoWIVsv9+PQMg==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/pacote/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pacote/node_modules/npm-registry-fetch": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", + "dev": true, + "dependencies": { + "make-fetch-happen": "^9.0.1", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "dev": true, + "dependencies": { + "path-platform": "~0.11.15" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", + "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "dev": true, + "dependencies": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=", + "dev": true + }, + "node_modules/parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=", + "dev": true + }, + "node_modules/parse-bmfont-xml": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", + "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", + "dev": true, + "dependencies": { + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.4.5" + } + }, + "node_modules/parse-headers": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", + "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==", + "dev": true + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-path": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.3.tgz", + "integrity": "sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA==", + "dev": true, + "dependencies": { + "is-ssh": "^1.3.0", + "protocols": "^1.4.0", + "qs": "^6.9.4", + "query-string": "^6.13.8" + } + }, + "node_modules/parse-url": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.0.tgz", + "integrity": "sha512-cYyojeX7yIIwuJzledIHeLUBVJ6COVLeT4eF+2P6aKVzwvgKQPndCBv3+yQ7pcWjqToYwaligxzSYNNmGoMAvw==", + "dev": true, + "dependencies": { + "is-ssh": "^1.3.0", + "normalize-url": "^6.1.0", + "parse-path": "^4.0.0", + "protocols": "^1.4.0" + } + }, + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true + }, + "node_modules/path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", + "dev": true, + "dependencies": { + "process": "^0.11.1", + "util": "^0.10.3" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "node_modules/path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "node_modules/phin": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", + "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", + "dev": true, + "dependencies": { + "pngjs": "^3.0.0" + }, + "bin": { + "pixelmatch": "bin/pixelmatch" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "dependencies": { + "semver-compare": "^1.0.0" + } + }, + "node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz", + "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/pretty-quick": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-2.0.1.tgz", + "integrity": "sha512-y7bJt77XadjUr+P1uKqZxFWLddvj3SKY6EU4BuQtMxmmEFSMpbN132pUWdSG1g1mtUfO0noBvn7wBf0BVeomHg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "execa": "^2.1.0", + "find-up": "^4.1.0", + "ignore": "^5.1.4", + "mri": "^1.1.4", + "multimatch": "^4.0.0" + }, + "bin": { + "pretty-quick": "bin/pretty-quick.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-quick/node_modules/execa": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz", + "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^3.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": "^8.12.0 || >=9.7.0" + } + }, + "node_modules/pretty-quick/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-quick/node_modules/ignore": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", + "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/pretty-quick/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-quick/node_modules/npm-run-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", + "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-quick/node_modules/p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-quick/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-quick/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "dependencies": { + "fromentries": "^1.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/promzard": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", + "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", + "dev": true, + "dependencies": { + "read": "1" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true + }, + "node_modules/protocols": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz", + "integrity": "sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==", + "dev": true + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/puppeteer": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-10.0.0.tgz", + "integrity": "sha512-AxHvCb9IWmmP3gMW+epxdj92Gglii+6Z4sb+W+zc2hTTu10HF0yg6hGXot5O74uYkVqG3lfDRLfnRpi6WOwi5A==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "debug": "4.3.1", + "devtools-protocol": "0.0.883894", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.0", + "node-fetch": "2.6.1", + "pkg-dir": "4.2.0", + "progress": "2.0.1", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.0.0", + "unbzip2-stream": "1.3.3", + "ws": "7.4.6" + }, + "engines": { + "node": ">=10.18.1" + } + }, + "node_modules/puppeteer-mass-screenshots": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/puppeteer-mass-screenshots/-/puppeteer-mass-screenshots-1.0.15.tgz", + "integrity": "sha512-QasQ6pxkXocZTyVkgIx2uXM5VOTUhXvHw44TJNgoQ2I/pj+DOKqXI0TD5VUOiKAWkjJhCtsJaL9ImQFBJrPWPg==", + "dev": true, + "dependencies": { + "fs": "0.0.1-security", + "path": "^0.12.7" + } + }, + "node_modules/puppeteer/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/puppeteer/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/puppeteer/node_modules/progress": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", + "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qrcode-generator": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz", + "integrity": "sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==" + }, + "node_modules/qs": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", + "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/query-string": { + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", + "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", + "dev": true, + "dependencies": { + "decode-uri-component": "^0.2.0", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "dev": true, + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/read-cmd-shim": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz", + "integrity": "sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw==", + "dev": true + }, + "node_modules/read-only-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/read-package-json": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-3.0.1.tgz", + "integrity": "sha512-aLcPqxovhJTVJcsnROuuzQvv6oziQx4zd3JvG0vGCL5MjTONUc4uJ90zCBC6R7W7oUKBNoR/F8pkyfVwlbxqng==", + "dev": true, + "dependencies": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^3.0.0", + "npm-normalize-package-bin": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/read-package-json-fast": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", + "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/read-package-json/node_modules/hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/read-package-json/node_modules/normalize-package-data": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz", + "integrity": "sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "resolve": "^1.20.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/read-package-json/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/read-package-tree": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", + "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", + "dev": true, + "dependencies": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, + "node_modules/read-package-tree/node_modules/read-package-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "dev": true, + "dependencies": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "dev": true, + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + }, + "node_modules/regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "dev": true, + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "dev": true, + "dependencies": { + "lodash": "^4.17.19" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/request-promise-core/node_modules/lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "node_modules/request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "dev": true, + "dependencies": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/resize-img": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resize-img/-/resize-img-2.0.0.tgz", + "integrity": "sha512-im2Kn4CY0c7JGdYXwL7g77T8AUi15YQeEBmmpWuglrcPFq4Di53tIvLXlbasW7UKed9GaZCza/OSxOJrmB0jbg==", + "dev": true, + "dependencies": { + "file-type": "^12.3.0", + "jimp": "^0.8.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true + }, + "node_modules/semver-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", + "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shasum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", + "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", + "dev": true, + "dependencies": { + "json-stable-stringify": "~0.0.0", + "sha.js": "~2.4.4" + } + }, + "node_modules/shasum-object": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", + "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", + "dev": true, + "dependencies": { + "fast-safe-stringify": "^2.0.7" + } + }, + "node_modules/shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", + "dev": true + }, + "node_modules/shelljs": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", + "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/shiki": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.2.tgz", + "integrity": "sha512-BjUCxVbxMnvjs8jC4b+BQ808vwjJ9Q8NtLqPwXShZ307HdXiDFYP968ORSVfaTNNSWYDBYdMnVKJ0fYNsoZUBA==", + "dev": true, + "dependencies": { + "onigasm": "^2.2.5", + "vscode-textmate": "^5.2.0" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "node_modules/simple-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", + "dev": true + }, + "node_modules/sinon": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.0.3.tgz", + "integrity": "sha512-IKo9MIM111+smz9JGwLmw5U1075n1YXeAq8YeSFlndCLhAL5KGn6bLgu7b/4AYHTV/LcEMcRm2wU2YiL55/6Pg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.2", + "@sinonjs/fake-timers": "^6.0.1", + "@sinonjs/formatio": "^5.0.1", + "@sinonjs/samsam": "^5.1.0", + "diff": "^4.0.2", + "nise": "^4.0.4", + "supports-color": "^7.1.0" + } + }, + "node_modules/sinon/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/sinon/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sinon/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", + "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "dev": true, + "dependencies": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", + "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", + "dev": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "4", + "socks": "^2.3.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/socks-proxy-agent/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socks-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/sonar-scanner": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/sonar-scanner/-/sonar-scanner-3.1.0.tgz", + "integrity": "sha1-UcHBEB9UuYq8XYVlIJsdkjKXk0M=", + "dev": true, + "bin": { + "sonar-scanner": "index.js" + } + }, + "node_modules/sort-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz", + "integrity": "sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==", + "dev": true, + "dependencies": { + "is-plain-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sort-keys/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "dependencies": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/spawn-wrap/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "dev": true + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/split2/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/static-server": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/static-server/-/static-server-2.2.1.tgz", + "integrity": "sha512-j5eeW6higxYNmXMIT8iHjsdiViTpQDthg7o+SHsRtqdbxscdHqBHXwrXjHC8hL3F0Tsu34ApUpDkwzMBPBsrLw==", + "dev": true, + "dependencies": { + "chalk": "^0.5.1", + "commander": "^2.3.0", + "file-size": "0.0.5", + "mime": "^1.2.11", + "opn": "^5.2.0" + }, + "bin": { + "static-server": "bin/static-server.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/static-server/node_modules/ansi-regex": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz", + "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-server/node_modules/ansi-styles": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz", + "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-server/node_modules/chalk": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", + "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^1.1.0", + "escape-string-regexp": "^1.0.0", + "has-ansi": "^0.1.0", + "strip-ansi": "^0.3.0", + "supports-color": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-server/node_modules/strip-ansi": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", + "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=", + "dev": true, + "dependencies": { + "ansi-regex": "^0.2.1" + }, + "bin": { + "strip-ansi": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-server/node_modules/supports-color": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", + "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=", + "dev": true, + "bin": { + "supports-color": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dev": true, + "dependencies": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-splicer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", + "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trimend/node_modules/es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimend/node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimend/node_modules/is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimend/node_modules/is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimend/node_modules/string.prototype.trimleft": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimend/node_modules/string.prototype.trimright": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimleft": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", + "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimright": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", + "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trimstart/node_modules/es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimstart/node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimstart/node_modules/is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimstart/node_modules/is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimstart/node_modules/string.prototype.trimleft": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimstart/node_modules/string.prototype.trimright": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strong-log-transformer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", + "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.1", + "minimist": "^1.2.0", + "through": "^2.3.4" + }, + "bin": { + "sl-log-transformer": "bin/sl-log-transformer.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "dev": true, + "dependencies": { + "minimist": "^1.1.0" + } + }, + "node_modules/subarg/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/syntax-error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "dev": true, + "dependencies": { + "acorn-node": "^1.2.0" + } + }, + "node_modules/table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "dependencies": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/table/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/table/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/table/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.2.tgz", + "integrity": "sha512-EwKEgqJ7nJoS+s8QfLYVGMDmAsj+StbI2AM/RTHeUSsOw6Z8bwNBRv5z3CY0m7laC5qUAqruLX5AhMuc5deY3Q==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar-fs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", + "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp": "^0.5.1", + "pump": "^3.0.0", + "tar-stream": "^2.0.0" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-stream/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tar/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/temp-write": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/temp-write/-/temp-write-4.0.0.tgz", + "integrity": "sha512-HIeWmj77uOOHb0QX7siN3OtwV3CTntquin6TNVg6SHOqCP3hYKmox90eeFOGaY1MqJ9WYDDjkyZrW6qS5AWpbw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "is-stream": "^2.0.0", + "make-dir": "^3.0.0", + "temp-dir": "^1.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/timm": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz", + "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==", + "dev": true + }, + "node_modules/tinycolor2": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", + "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/trim-off-newlines": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", + "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ts-node": { + "version": "8.10.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.1.tgz", + "integrity": "sha512-bdNz1L4ekHiJul6SHtZWs1ujEKERJnHs4HxN7rjTyyVOFf3HaJ6sLqe6aPG62XTzAB/63pKRh5jTSWL0D7bsvw==", + "dev": true, + "dependencies": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + }, + "node_modules/tslint": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.2.tgz", + "integrity": "sha512-UyNrLdK3E0fQG/xWNqAFAC5ugtFyPO4JJR1KyyfQAyzR8W0fTRrC91A8Wej4BntFzcvETdCSDa/4PnNYJQLYiA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.3", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.10.0", + "tsutils": "^2.29.0" + }, + "bin": { + "tslint": "bin/tslint" + }, + "engines": { + "node": ">=4.8.0" + } + }, + "node_modules/tslint/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tslint/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/tslint/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/tslint/node_modules/tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + } + }, + "node_modules/tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typedoc": { + "version": "0.20.30", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.20.30.tgz", + "integrity": "sha512-A4L6JDShPFwZDt9qp7FBsEpW7C6rA5fRv6ywgBuxGxZnT2wuF5afbWzmrwqHR3Xw38V1H2L4v/VJ0S/llBwV6Q==", + "dev": true, + "dependencies": { + "colors": "^1.4.0", + "fs-extra": "^9.1.0", + "handlebars": "^4.7.7", + "lodash": "^4.17.21", + "lunr": "^2.3.9", + "marked": "^2.0.1", + "minimatch": "^3.0.0", + "progress": "^2.0.3", + "shelljs": "^0.8.4", + "shiki": "^0.9.2", + "typedoc-default-themes": "^0.12.8" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 10.8.0" + } + }, + "node_modules/typedoc-default-themes": { + "version": "0.12.8", + "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.8.tgz", + "integrity": "sha512-tyjyDTKy/JLnBSwvhoqd99VIjrP33SdOtwcMD32b+OqnrjZWe8HmZECbfBoacqoxjHd58gfeNw6wA7uvqWFa4w==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/typedoc-plugin-internal-external": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/typedoc-plugin-internal-external/-/typedoc-plugin-internal-external-2.2.0.tgz", + "integrity": "sha512-xeh+NemurGr23cm1kf6Mec5TB0pCSllm3l3+hJg1ersl00xgC6klVpD1GBKqliGxnLo7blytZrnHsS4w/bzeOA==", + "dev": true + }, + "node_modules/typedoc/node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/typescript": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.2.tgz", + "integrity": "sha512-q2ktq4n/uLuNNShyayit+DTobV2ApPEo/6so68JaD5ojvc/6GClBipedB9zNWYxRSAlZXAe405Rlijzl6qDiSw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uglify-js": { + "version": "3.9.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.4.tgz", + "integrity": "sha512-8RZBJq5smLOa7KslsNsVcSH+KOXf1uDU8yqLeNuVKwmT0T3FA0ZoXlinQfRad7SDcbZZRZE4ov+2v71EnxNyCA==", + "dev": true, + "dependencies": { + "commander": "~2.20.3" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uid-number": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/umask": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz", + "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=", + "dev": true + }, + "node_modules/umd": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", + "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", + "dev": true, + "bin": { + "umd": "bin/cli.js" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz", + "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==", + "dev": true, + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/undeclared-identifiers": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", + "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", + "dev": true, + "dependencies": { + "acorn-node": "^1.3.0", + "dash-ast": "^1.0.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" + }, + "bin": { + "undeclared-identifiers": "bin.js" + } + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "dev": true + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/upath": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", + "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/utif": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", + "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", + "dev": true, + "dependencies": { + "pako": "^1.0.5" + } + }, + "node_modules/util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/util-promisify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", + "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", + "dev": true, + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/uuid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", + "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/vscode-textmate": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", + "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", + "dev": true + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/which-pm-runs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", + "dev": true + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "dependencies": { + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/write-json-file": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-4.3.0.tgz", + "integrity": "sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ==", + "dev": true, + "dependencies": { + "detect-indent": "^6.0.0", + "graceful-fs": "^4.1.15", + "is-plain-obj": "^2.0.0", + "make-dir": "^3.0.0", + "sort-keys": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=8.3" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/write-json-file/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/write-pkg": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-4.0.0.tgz", + "integrity": "sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==", + "dev": true, + "dependencies": { + "sort-keys": "^2.0.0", + "type-fest": "^0.4.1", + "write-json-file": "^3.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/write-pkg/node_modules/detect-indent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", + "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/write-pkg/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/write-pkg/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/write-pkg/node_modules/sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "dev": true, + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/write-pkg/node_modules/type-fest": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", + "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/write-pkg/node_modules/write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/write-pkg/node_modules/write-json-file": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz", + "integrity": "sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==", + "dev": true, + "dependencies": { + "detect-indent": "^5.0.0", + "graceful-fs": "^4.1.15", + "make-dir": "^2.1.0", + "pify": "^4.0.1", + "sort-keys": "^2.0.0", + "write-file-atomic": "^2.4.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xhr": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", + "integrity": "sha1-vtjRZ21co2EIZnaSt0sxbEluSd0=", + "dev": true, + "dependencies": { + "global": "~4.3.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/xhr/node_modules/global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "dev": true, + "dependencies": { + "min-document": "^2.19.0", + "process": "~0.5.1" + } + }, + "node_modules/xhr/node_modules/process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "node_modules/xml-parse-from-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=", + "dev": true + }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "dependencies": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/core": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", + "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.6", + "@babel/parser": "^7.9.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/generator": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz", + "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==", + "dev": true, + "requires": { + "@babel/types": "^7.9.6", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", + "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.9.5" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz", + "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==", + "dev": true + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/traverse": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz", + "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-function-name": "^7.9.5", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", + "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", + "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", + "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-module-imports": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", + "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-module-transforms": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.9.0", + "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz", + "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==", + "dev": true + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/types": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", + "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", + "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", + "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-replace-supers": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz", + "integrity": "sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/generator": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz", + "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==", + "dev": true, + "requires": { + "@babel/types": "^7.9.6", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", + "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.9.5" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz", + "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==", + "dev": true + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/traverse": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz", + "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-function-name": "^7.9.5", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", + "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "@babel/helper-simple-access": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", + "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", + "dev": true, + "requires": { + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz", + "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==", + "dev": true + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/types": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", + "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-validator-identifier": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", + "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", + "dev": true + }, + "@babel/helpers": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.6.tgz", + "integrity": "sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==", + "dev": true, + "requires": { + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/generator": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz", + "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==", + "dev": true, + "requires": { + "@babel/types": "^7.9.6", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", + "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.9.5" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz", + "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==", + "dev": true + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/traverse": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz", + "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-function-name": "^7.9.5", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", + "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@hutson/parse-repository-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", + "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", + "dev": true + }, + "@istanbuljs/load-nyc-config": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz", + "integrity": "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true + }, + "@jimp/bmp": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.8.5.tgz", + "integrity": "sha512-o/23j1RODQGGjvb2xg+9ZQCHc9uXa5XIoJuXHN8kh8AJBGD7JZYiHMwNHaxJRJvadimCKUeA5udZUJAoaPwrYg==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "bmp-js": "^0.1.0", + "core-js": "^2.5.7" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/core": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.8.5.tgz", + "integrity": "sha512-Jto1IdL5HYg7uE15rpQjK6dfZJ6d6gRjUsVCPW50nIfXgWizaTibFEov90W9Bj+irwKrX2ntG3e3pZUyOC0COg==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "any-base": "^1.1.0", + "buffer": "^5.2.0", + "core-js": "^2.5.7", + "exif-parser": "^0.1.12", + "file-type": "^9.0.0", + "load-bmfont": "^1.3.1", + "mkdirp": "0.5.1", + "phin": "^2.9.1", + "pixelmatch": "^4.0.2", + "tinycolor2": "^1.4.1" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + }, + "file-type": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz", + "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==", + "dev": true + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + } + } + }, + "@jimp/custom": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.8.5.tgz", + "integrity": "sha512-hS4qHOcOIL+N93IprsIhFgr8F4XnC2oYd+lRaOKEOg3ptS2vQnceSTtcXsC0//mhq8AV6lNjpbfs1iseEZuTqg==", + "dev": true, + "requires": { + "@jimp/core": "^0.8.5", + "core-js": "^2.5.7" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/gif": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.8.5.tgz", + "integrity": "sha512-Mj8jmv4AS76OY+Hx/Xoyihj02SUZ2ELk+O5x89pODz1+NeGtSWHHjZjnSam9HYAjycvVI/lGJdk/7w0nWIV/yQ==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "core-js": "^2.5.7", + "omggif": "^1.0.9" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/jpeg": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.8.5.tgz", + "integrity": "sha512-7kjTY0BiCpwRywk+oPfpLto7cLI+9G0mf4N1bv1Hn+VLQwcXFy2fHyl4qjqLbbY6u4cyZgqN+R8Pg6GRRzv0kw==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "core-js": "^2.5.7", + "jpeg-js": "^0.3.4" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/plugin-blit": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.8.5.tgz", + "integrity": "sha512-r8Z1CwazaJwZCRbucQgrfprlGyH91tX7GubUsbWr+zy5/dRJAAgaPj/hcoHDwbh3zyiXp5BECKKzKW0x4reL4w==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "core-js": "^2.5.7" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/plugin-blur": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.8.5.tgz", + "integrity": "sha512-UH5ywpV4YooUh9HXEsrNKDtojLCvIAAV0gywqn8EQeFyzwBJyXAvRNARJp7zr5OPLr9uGXkRLDCO9YyzdlXZng==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "core-js": "^2.5.7" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/plugin-color": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.8.5.tgz", + "integrity": "sha512-7XHqcTQ8Y1zto1b9P1y8m1dzSjnOpBsD9OZG0beTpeJ5bgPX+hF5ZLmvcM6c5ljkINw5EUF1it07BYbkCxiGQA==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "core-js": "^2.5.7", + "tinycolor2": "^1.4.1" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/plugin-contain": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.8.5.tgz", + "integrity": "sha512-ZkiPFx9L0yITiKtYTYLWyBsSIdxo/NARhNPRZXyVF9HmTWSLDUw1c2c1uvETKxDZTAVK+souYT14DwFWWdhsYA==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "core-js": "^2.5.7" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/plugin-cover": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.8.5.tgz", + "integrity": "sha512-OdT4YAopLOhbhTUQV3R1v5ZZqIaUt3n3vJi/OfTbsak1t9UkPBVdmYPyhoont8zJdtdkF5dW16Ro1FTshytcww==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "core-js": "^2.5.7" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/plugin-crop": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.8.5.tgz", + "integrity": "sha512-E1Hb+gfu2k74Gkqh96apAyVljsP5MjCH4TY6lECAAEcYKGH/XRhz6lY2dSEjCYE7KtiqjTZzWwYkgAvkwojj9Q==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "core-js": "^2.5.7" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/plugin-displace": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.8.5.tgz", + "integrity": "sha512-fVgVYTS1HZzAXkg8Lg06PuirSUG5oXYaYYGL+3ZU4tmZn1pyZ+mZyfejpwtymETEYZnmymHoCT4xto19E/IRvA==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "core-js": "^2.5.7" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/plugin-dither": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.8.5.tgz", + "integrity": "sha512-KSj2y8E3yK7tldjT/8ejqAWw5HFBjtWW6QkcxfW7FdV4c/nsXZXDkMbhqMZ7FkDuSYoAPeWUFeddrH4yipC5iA==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "core-js": "^2.5.7" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/plugin-flip": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.8.5.tgz", + "integrity": "sha512-2QbGDkurPNAXZUeHLo/UA3tjh+AbAXWZKSdtoa1ArlASovRz8rqtA45YIRIkKrMH82TA3PZk8bgP2jaLKLrzww==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "core-js": "^2.5.7" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/plugin-gaussian": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.8.5.tgz", + "integrity": "sha512-2zReC5GJcVAXtf3UgzFcHSYN277i02K9Yrhc1xJf3mti00s43uD++B5Ho7/mIo+HrntVvWhxqar7PARdq0lVIg==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "core-js": "^2.5.7" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/plugin-invert": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.8.5.tgz", + "integrity": "sha512-GyMXPGheHdS14xfDceuZ9hrGm6gE9UG3PfTEjQbJmHMWippLC6yf8kombSudJlUf8q72YYSSXsSFKGgkHa67vA==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "core-js": "^2.5.7" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/plugin-mask": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.8.5.tgz", + "integrity": "sha512-inD/++XO+MkmwXl9JGYQ8X2deyOZuq9i+dmugH/557p16B9Q6tvUQt5X1Yg5w7hhkLZ00BKOAJI9XoyCC1NFvQ==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "core-js": "^2.5.7" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/plugin-normalize": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.8.5.tgz", + "integrity": "sha512-8YRWJWBT4NoSAbPhnjQJXGeaeWVrJAlGDv39A54oNH8Ry47fHcE0EN6zogQNpBuM34M6hRnZl4rOv1FIisaWdg==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "core-js": "^2.5.7" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/plugin-print": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.8.5.tgz", + "integrity": "sha512-BviNpCiA/fEieOqsrWr1FkqyFuiG2izdyyg7zUqyeUTHPwqrTLvXO9cfP/ThG4hZpu5wMQ5QClWSqhZu1fAwxA==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "core-js": "^2.5.7", + "load-bmfont": "^1.4.0" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/plugin-resize": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.8.5.tgz", + "integrity": "sha512-gIdmISuNmZQ1QwprnRC5VXVWQfKIiWineVQGebpMAG/aoFOLDXrVl939Irg7Fb/uOlSFTzpAbt1zpJ8YG/Mi2w==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "core-js": "^2.5.7" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/plugin-rotate": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.8.5.tgz", + "integrity": "sha512-8T9wnL3gb+Z0ogMZmtyI6h3y7TuqW2a5SpFbzFUVF+lTZoAabXjEfX3CAozizCLaT+Duc5H2FJVemAHiyr+Dbw==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "core-js": "^2.5.7" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/plugin-scale": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.8.5.tgz", + "integrity": "sha512-G+CDH9s7BsxJ4b+mKZ5SsiXwTAynBJ+7/9SwZFnICZJJvLd79Tws6VPXfSaKJZuWnGIX++L8jTGmFORCfLNkdg==", + "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.6", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.6", - "@babel/parser": "^7.9.6", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.6", - "@babel/types": "^7.9.6", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" + "@jimp/utils": "^0.8.5", + "core-js": "^2.5.7" }, "dependencies": { - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/plugins": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.8.5.tgz", + "integrity": "sha512-52na0wqfQ3uItIA+C9cJ1EXffhSmABgK7ETClDseUh9oGtynHzxZ97smnFf1ydLjXLrF89Gt+YBxWLyiBGgiZQ==", + "dev": true, + "requires": { + "@jimp/plugin-blit": "^0.8.5", + "@jimp/plugin-blur": "^0.8.5", + "@jimp/plugin-color": "^0.8.5", + "@jimp/plugin-contain": "^0.8.5", + "@jimp/plugin-cover": "^0.8.5", + "@jimp/plugin-crop": "^0.8.5", + "@jimp/plugin-displace": "^0.8.5", + "@jimp/plugin-dither": "^0.8.5", + "@jimp/plugin-flip": "^0.8.5", + "@jimp/plugin-gaussian": "^0.8.5", + "@jimp/plugin-invert": "^0.8.5", + "@jimp/plugin-mask": "^0.8.5", + "@jimp/plugin-normalize": "^0.8.5", + "@jimp/plugin-print": "^0.8.5", + "@jimp/plugin-resize": "^0.8.5", + "@jimp/plugin-rotate": "^0.8.5", + "@jimp/plugin-scale": "^0.8.5", + "core-js": "^2.5.7", + "timm": "^1.6.1" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/png": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.8.5.tgz", + "integrity": "sha512-zT89ucu8I2rsD3FIMIPLgr1OyKn4neD+5umwD3MY8AOB8+6tX5bFtnmTm3FzGJaJuibkK0wFl87eiaxnb+Megw==", + "dev": true, + "requires": { + "@jimp/utils": "^0.8.5", + "core-js": "^2.5.7", + "pngjs": "^3.3.3" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/tiff": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.8.5.tgz", + "integrity": "sha512-Z7uzDcbHuwDg+hy2+UJQ2s5O6sqYXmv6H1fmSf/2dxBrlGMzl8yTc2/BxLrGREeoidDDMcKmXYGAOp4uCsdJjw==", + "dev": true, + "requires": { + "core-js": "^2.5.7", + "utif": "^2.0.1" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/types": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.8.5.tgz", + "integrity": "sha512-XUvpyebZGd1vyFiJyxUT4H9A3mKD7MV2MxjXnay3fNTrcow0UJJspmFw/w+G3TP/1dgrVC4K++gntjR6QWTzvg==", + "dev": true, + "requires": { + "@jimp/bmp": "^0.8.5", + "@jimp/gif": "^0.8.5", + "@jimp/jpeg": "^0.8.5", + "@jimp/png": "^0.8.5", + "@jimp/tiff": "^0.8.5", + "core-js": "^2.5.7", + "timm": "^1.6.1" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@jimp/utils": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.8.5.tgz", + "integrity": "sha512-D3+H4BiopDkhUKvKkZTPPJ53voqOkfMuk3r7YZNcLtXGLkchjjukC4056lNo7B0DzjBgowTYsQM3JjKnYNIYeg==", + "dev": true, + "requires": { + "core-js": "^2.5.7" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "dev": true + } + } + }, + "@lerna/add": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/add/-/add-4.0.0.tgz", + "integrity": "sha512-cpmAH1iS3k8JBxNvnMqrGTTjbY/ZAiKa1ChJzFevMYY3eeqbvhsBKnBcxjRXtdrJ6bd3dCQM+ZtK+0i682Fhng==", + "dev": true, + "requires": { + "@lerna/bootstrap": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/filter-options": "4.0.0", + "@lerna/npm-conf": "4.0.0", + "@lerna/validation-error": "4.0.0", + "dedent": "^0.7.0", + "npm-package-arg": "^8.1.0", + "p-map": "^4.0.0", + "pacote": "^11.2.6", + "semver": "^7.3.4" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@lerna/bootstrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-4.0.0.tgz", + "integrity": "sha512-RkS7UbeM2vu+kJnHzxNRCLvoOP9yGNgkzRdy4UV2hNalD7EP41bLvRVOwRYQ7fhc2QcbhnKNdOBihYRL0LcKtw==", + "dev": true, + "requires": { + "@lerna/command": "4.0.0", + "@lerna/filter-options": "4.0.0", + "@lerna/has-npm-version": "4.0.0", + "@lerna/npm-install": "4.0.0", + "@lerna/package-graph": "4.0.0", + "@lerna/pulse-till-done": "4.0.0", + "@lerna/rimraf-dir": "4.0.0", + "@lerna/run-lifecycle": "4.0.0", + "@lerna/run-topologically": "4.0.0", + "@lerna/symlink-binary": "4.0.0", + "@lerna/symlink-dependencies": "4.0.0", + "@lerna/validation-error": "4.0.0", + "dedent": "^0.7.0", + "get-port": "^5.1.1", + "multimatch": "^5.0.0", + "npm-package-arg": "^8.1.0", + "npmlog": "^4.1.2", + "p-map": "^4.0.0", + "p-map-series": "^2.1.0", + "p-waterfall": "^2.1.1", + "read-package-tree": "^5.3.1", + "semver": "^7.3.4" + }, + "dependencies": { + "multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", + "dev": true, + "requires": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@lerna/changed": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-4.0.0.tgz", + "integrity": "sha512-cD+KuPRp6qiPOD+BO6S6SN5cARspIaWSOqGBpGnYzLb4uWT8Vk4JzKyYtc8ym1DIwyoFXHosXt8+GDAgR8QrgQ==", + "dev": true, + "requires": { + "@lerna/collect-updates": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/listable": "4.0.0", + "@lerna/output": "4.0.0" + } + }, + "@lerna/check-working-tree": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-4.0.0.tgz", + "integrity": "sha512-/++bxM43jYJCshBiKP5cRlCTwSJdRSxVmcDAXM+1oUewlZJVSVlnks5eO0uLxokVFvLhHlC5kHMc7gbVFPHv6Q==", + "dev": true, + "requires": { + "@lerna/collect-uncommitted": "4.0.0", + "@lerna/describe-ref": "4.0.0", + "@lerna/validation-error": "4.0.0" + } + }, + "@lerna/child-process": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-4.0.0.tgz", + "integrity": "sha512-XtCnmCT9eyVsUUHx6y/CTBYdV9g2Cr/VxyseTWBgfIur92/YKClfEtJTbOh94jRT62hlKLqSvux/UhxXVh613Q==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "execa": "^5.0.0", + "strong-log-transformer": "^2.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@lerna/clean": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-4.0.0.tgz", + "integrity": "sha512-uugG2iN9k45ITx2jtd8nEOoAtca8hNlDCUM0N3lFgU/b1mEQYAPRkqr1qs4FLRl/Y50ZJ41wUz1eazS+d/0osA==", + "dev": true, + "requires": { + "@lerna/command": "4.0.0", + "@lerna/filter-options": "4.0.0", + "@lerna/prompt": "4.0.0", + "@lerna/pulse-till-done": "4.0.0", + "@lerna/rimraf-dir": "4.0.0", + "p-map": "^4.0.0", + "p-map-series": "^2.1.0", + "p-waterfall": "^2.1.1" + } + }, + "@lerna/cli": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-4.0.0.tgz", + "integrity": "sha512-Neaw3GzFrwZiRZv2g7g6NwFjs3er1vhraIniEs0jjVLPMNC4eata0na3GfE5yibkM/9d3gZdmihhZdZ3EBdvYA==", + "dev": true, + "requires": { + "@lerna/global-options": "4.0.0", + "dedent": "^0.7.0", + "npmlog": "^4.1.2", + "yargs": "^16.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { - "@babel/highlight": "^7.8.3" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "@babel/generator": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz", - "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "@babel/types": "^7.9.6", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" + "color-name": "~1.1.4" } }, - "@babel/helper-function-name": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", - "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.9.5" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "ansi-regex": "^5.0.0" } }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } }, - "@babel/highlight": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", - "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.9.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" } }, - "@babel/parser": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz", - "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==", + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true - }, - "@babel/template": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", - "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + } + } + }, + "@lerna/collect-uncommitted": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-4.0.0.tgz", + "integrity": "sha512-ufSTfHZzbx69YNj7KXQ3o66V4RC76ffOjwLX0q/ab//61bObJ41n03SiQEhSlmpP+gmFbTJ3/7pTe04AHX9m/g==", + "dev": true, + "requires": { + "@lerna/child-process": "4.0.0", + "chalk": "^4.1.0", + "npmlog": "^4.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6" + "color-convert": "^2.0.1" } }, - "@babel/traverse": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz", - "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==", + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.6", - "@babel/helper-function-name": "^7.9.5", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.9.6", - "@babel/types": "^7.9.6", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "@babel/types": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", - "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.9.5", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "color-name": "~1.1.4" } }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "ms": "^2.1.1" + "has-flag": "^4.0.0" } } } }, - "@babel/helper-member-expression-to-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", - "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", + "@lerna/collect-updates": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-4.0.0.tgz", + "integrity": "sha512-bnNGpaj4zuxsEkyaCZLka9s7nMs58uZoxrRIPJ+nrmrZYp1V5rrd+7/NYTuunOhY2ug1sTBvTAxj3NZQ+JKnOw==", "dev": true, "requires": { - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/types": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", - "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.9.5", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@lerna/child-process": "4.0.0", + "@lerna/describe-ref": "4.0.0", + "minimatch": "^3.0.4", + "npmlog": "^4.1.2", + "slash": "^3.0.0" } }, - "@babel/helper-module-imports": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", - "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "@lerna/command": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/command/-/command-4.0.0.tgz", + "integrity": "sha512-LM9g3rt5FsPNFqIHUeRwWXLNHJ5NKzOwmVKZ8anSp4e1SPrv2HNc1V02/9QyDDZK/w+5POXH5lxZUI1CHaOK/A==", "dev": true, "requires": { - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/types": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", - "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.9.5", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } + "@lerna/child-process": "4.0.0", + "@lerna/package-graph": "4.0.0", + "@lerna/project": "4.0.0", + "@lerna/validation-error": "4.0.0", + "@lerna/write-log-file": "4.0.0", + "clone-deep": "^4.0.1", + "dedent": "^0.7.0", + "execa": "^5.0.0", + "is-ci": "^2.0.0", + "npmlog": "^4.1.2" } }, - "@babel/helper-module-transforms": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", - "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", + "@lerna/conventional-commits": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-4.0.0.tgz", + "integrity": "sha512-CSUQRjJHFrH8eBn7+wegZLV3OrNc0Y1FehYfYGhjLE2SIfpCL4bmfu/ViYuHh9YjwHaA+4SX6d3hR+xkeseKmw==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-simple-access": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.6", - "@babel/types": "^7.9.0", - "lodash": "^4.17.13" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", - "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.9.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz", - "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==", + "@lerna/validation-error": "4.0.0", + "conventional-changelog-angular": "^5.0.12", + "conventional-changelog-core": "^4.2.2", + "conventional-recommended-bump": "^6.1.0", + "fs-extra": "^9.1.0", + "get-stream": "^6.0.0", + "lodash.template": "^4.5.0", + "npm-package-arg": "^8.1.0", + "npmlog": "^4.1.2", + "pify": "^5.0.0", + "semver": "^7.3.4" + }, + "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, - "@babel/template": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", - "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6" + "lru-cache": "^6.0.0" } - }, - "@babel/types": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", - "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + } + } + }, + "@lerna/create": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/create/-/create-4.0.0.tgz", + "integrity": "sha512-mVOB1niKByEUfxlbKTM1UNECWAjwUdiioIbRQZEeEabtjCL69r9rscIsjlGyhGWCfsdAG5wfq4t47nlDXdLLag==", + "dev": true, + "requires": { + "@lerna/child-process": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/npm-conf": "4.0.0", + "@lerna/validation-error": "4.0.0", + "dedent": "^0.7.0", + "fs-extra": "^9.1.0", + "globby": "^11.0.2", + "init-package-json": "^2.0.2", + "npm-package-arg": "^8.1.0", + "p-reduce": "^2.1.0", + "pacote": "^11.2.6", + "pify": "^5.0.0", + "semver": "^7.3.4", + "slash": "^3.0.0", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^3.0.0", + "whatwg-url": "^8.4.0", + "yargs-parser": "20.2.4" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.9.5", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "lru-cache": "^6.0.0" } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true } } }, - "@babel/helper-optimise-call-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", - "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", + "@lerna/create-symlink": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-4.0.0.tgz", + "integrity": "sha512-I0phtKJJdafUiDwm7BBlEUOtogmu8+taxq6PtIrxZbllV9hWg59qkpuIsiFp+no7nfRVuaasNYHwNUhDAVQBig==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "cmd-shim": "^4.1.0", + "fs-extra": "^9.1.0", + "npmlog": "^4.1.2" + } + }, + "@lerna/describe-ref": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-4.0.0.tgz", + "integrity": "sha512-eTU5+xC4C5Gcgz+Ey4Qiw9nV2B4JJbMulsYJMW8QjGcGh8zudib7Sduj6urgZXUYNyhYpRs+teci9M2J8u+UvQ==", + "dev": true, + "requires": { + "@lerna/child-process": "4.0.0", + "npmlog": "^4.1.2" + } + }, + "@lerna/diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-4.0.0.tgz", + "integrity": "sha512-jYPKprQVg41+MUMxx6cwtqsNm0Yxx9GDEwdiPLwcUTFx+/qKCEwifKNJ1oGIPBxyEHX2PFCOjkK39lHoj2qiag==", + "dev": true, + "requires": { + "@lerna/child-process": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/validation-error": "4.0.0", + "npmlog": "^4.1.2" + } + }, + "@lerna/exec": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-4.0.0.tgz", + "integrity": "sha512-VGXtL/b/JfY84NB98VWZpIExfhLOzy0ozm/0XaS4a2SmkAJc5CeUfrhvHxxkxiTBLkU+iVQUyYEoAT0ulQ8PCw==", + "dev": true, + "requires": { + "@lerna/child-process": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/filter-options": "4.0.0", + "@lerna/profiler": "4.0.0", + "@lerna/run-topologically": "4.0.0", + "@lerna/validation-error": "4.0.0", + "p-map": "^4.0.0" + } + }, + "@lerna/filter-options": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-4.0.0.tgz", + "integrity": "sha512-vV2ANOeZhOqM0rzXnYcFFCJ/kBWy/3OA58irXih9AMTAlQLymWAK0akWybl++sUJ4HB9Hx12TOqaXbYS2NM5uw==", + "dev": true, + "requires": { + "@lerna/collect-updates": "4.0.0", + "@lerna/filter-packages": "4.0.0", + "dedent": "^0.7.0", + "npmlog": "^4.1.2" + } + }, + "@lerna/filter-packages": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-4.0.0.tgz", + "integrity": "sha512-+4AJIkK7iIiOaqCiVTYJxh/I9qikk4XjNQLhE3kixaqgMuHl1NQ99qXRR0OZqAWB9mh8Z1HA9bM5K1HZLBTOqA==", + "dev": true, + "requires": { + "@lerna/validation-error": "4.0.0", + "multimatch": "^5.0.0", + "npmlog": "^4.1.2" }, "dependencies": { - "@babel/types": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", - "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + "multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.9.5", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" } } } }, - "@babel/helper-replace-supers": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz", - "integrity": "sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA==", + "@lerna/get-npm-exec-opts": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-4.0.0.tgz", + "integrity": "sha512-yvmkerU31CTWS2c7DvmAWmZVeclPBqI7gPVr5VATUKNWJ/zmVcU4PqbYoLu92I9Qc4gY1TuUplMNdNuZTSL7IQ==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.9.6", - "@babel/types": "^7.9.6" + "npmlog": "^4.1.2" + } + }, + "@lerna/get-packed": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-4.0.0.tgz", + "integrity": "sha512-rfWONRsEIGyPJTxFzC8ECb3ZbsDXJbfqWYyeeQQDrJRPnEJErlltRLPLgC2QWbxFgFPsoDLeQmFHJnf0iDfd8w==", + "dev": true, + "requires": { + "fs-extra": "^9.1.0", + "ssri": "^8.0.1", + "tar": "^6.1.0" + } + }, + "@lerna/github-client": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-4.0.0.tgz", + "integrity": "sha512-2jhsldZtTKXYUBnOm23Lb0Fx8G4qfSXF9y7UpyUgWUj+YZYd+cFxSuorwQIgk5P4XXrtVhsUesIsli+BYSThiw==", + "dev": true, + "requires": { + "@lerna/child-process": "4.0.0", + "@octokit/plugin-enterprise-rest": "^6.0.1", + "@octokit/rest": "^18.1.0", + "git-url-parse": "^11.4.4", + "npmlog": "^4.1.2" + } + }, + "@lerna/gitlab-client": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-4.0.0.tgz", + "integrity": "sha512-OMUpGSkeDWFf7BxGHlkbb35T7YHqVFCwBPSIR6wRsszY8PAzCYahtH3IaJzEJyUg6vmZsNl0FSr3pdA2skhxqA==", + "dev": true, + "requires": { + "node-fetch": "^2.6.1", + "npmlog": "^4.1.2", + "whatwg-url": "^8.4.0" + } + }, + "@lerna/global-options": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-4.0.0.tgz", + "integrity": "sha512-TRMR8afAHxuYBHK7F++Ogop2a82xQjoGna1dvPOY6ltj/pEx59pdgcJfYcynYqMkFIk8bhLJJN9/ndIfX29FTQ==", + "dev": true + }, + "@lerna/has-npm-version": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-4.0.0.tgz", + "integrity": "sha512-LQ3U6XFH8ZmLCsvsgq1zNDqka0Xzjq5ibVN+igAI5ccRWNaUsE/OcmsyMr50xAtNQMYMzmpw5GVLAivT2/YzCg==", + "dev": true, + "requires": { + "@lerna/child-process": "4.0.0", + "semver": "^7.3.4" }, "dependencies": { - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/generator": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz", - "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==", - "dev": true, - "requires": { - "@babel/types": "^7.9.6", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", - "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.9.5" + "lru-cache": "^6.0.0" } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + } + } + }, + "@lerna/import": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/import/-/import-4.0.0.tgz", + "integrity": "sha512-FaIhd+4aiBousKNqC7TX1Uhe97eNKf5/SC7c5WZANVWtC7aBWdmswwDt3usrzCNpj6/Wwr9EtEbYROzxKH8ffg==", + "dev": true, + "requires": { + "@lerna/child-process": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/prompt": "4.0.0", + "@lerna/pulse-till-done": "4.0.0", + "@lerna/validation-error": "4.0.0", + "dedent": "^0.7.0", + "fs-extra": "^9.1.0", + "p-map-series": "^2.1.0" + } + }, + "@lerna/info": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/info/-/info-4.0.0.tgz", + "integrity": "sha512-8Uboa12kaCSZEn4XRfPz5KU9XXoexSPS4oeYGj76s2UQb1O1GdnEyfjyNWoUl1KlJ2i/8nxUskpXIftoFYH0/Q==", + "dev": true, + "requires": { + "@lerna/command": "4.0.0", + "@lerna/output": "4.0.0", + "envinfo": "^7.7.4" + } + }, + "@lerna/init": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/init/-/init-4.0.0.tgz", + "integrity": "sha512-wY6kygop0BCXupzWj5eLvTUqdR7vIAm0OgyV9WHpMYQGfs1V22jhztt8mtjCloD/O0nEe4tJhdG62XU5aYmPNQ==", + "dev": true, + "requires": { + "@lerna/child-process": "4.0.0", + "@lerna/command": "4.0.0", + "fs-extra": "^9.1.0", + "p-map": "^4.0.0", + "write-json-file": "^4.3.0" + } + }, + "@lerna/link": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/link/-/link-4.0.0.tgz", + "integrity": "sha512-KlvPi7XTAcVOByfaLlOeYOfkkDcd+bejpHMCd1KcArcFTwijOwXOVi24DYomIeHvy6HsX/IUquJ4PPUJIeB4+w==", + "dev": true, + "requires": { + "@lerna/command": "4.0.0", + "@lerna/package-graph": "4.0.0", + "@lerna/symlink-dependencies": "4.0.0", + "p-map": "^4.0.0", + "slash": "^3.0.0" + } + }, + "@lerna/list": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/list/-/list-4.0.0.tgz", + "integrity": "sha512-L2B5m3P+U4Bif5PultR4TI+KtW+SArwq1i75QZ78mRYxPc0U/piau1DbLOmwrdqr99wzM49t0Dlvl6twd7GHFg==", + "dev": true, + "requires": { + "@lerna/command": "4.0.0", + "@lerna/filter-options": "4.0.0", + "@lerna/listable": "4.0.0", + "@lerna/output": "4.0.0" + } + }, + "@lerna/listable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-4.0.0.tgz", + "integrity": "sha512-/rPOSDKsOHs5/PBLINZOkRIX1joOXUXEtyUs5DHLM8q6/RP668x/1lFhw6Dx7/U+L0+tbkpGtZ1Yt0LewCLgeQ==", + "dev": true, + "requires": { + "@lerna/query-graph": "4.0.0", + "chalk": "^4.1.0", + "columnify": "^1.5.4" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "color-convert": "^2.0.1" } }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "@babel/highlight": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", - "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.9.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "color-name": "~1.1.4" } }, - "@babel/parser": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz", - "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "@babel/template": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", - "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6" - } - }, - "@babel/traverse": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz", - "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.6", - "@babel/helper-function-name": "^7.9.5", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.9.6", - "@babel/types": "^7.9.6", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, - "@babel/types": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", - "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.9.5", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "has-flag": "^4.0.0" } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + } + } + }, + "@lerna/log-packed": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-4.0.0.tgz", + "integrity": "sha512-+dpCiWbdzgMAtpajLToy9PO713IHoE6GV/aizXycAyA07QlqnkpaBNZ8DW84gHdM1j79TWockGJo9PybVhrrZQ==", + "dev": true, + "requires": { + "byte-size": "^7.0.0", + "columnify": "^1.5.4", + "has-unicode": "^2.0.1", + "npmlog": "^4.1.2" + } + }, + "@lerna/npm-conf": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-4.0.0.tgz", + "integrity": "sha512-uS7H02yQNq3oejgjxAxqq/jhwGEE0W0ntr8vM3EfpCW1F/wZruwQw+7bleJQ9vUBjmdXST//tk8mXzr5+JXCfw==", + "dev": true, + "requires": { + "config-chain": "^1.1.12", + "pify": "^5.0.0" + } + }, + "@lerna/npm-dist-tag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-4.0.0.tgz", + "integrity": "sha512-F20sg28FMYTgXqEQihgoqSfwmq+Id3zT23CnOwD+XQMPSy9IzyLf1fFVH319vXIw6NF6Pgs4JZN2Qty6/CQXGw==", + "dev": true, + "requires": { + "@lerna/otplease": "4.0.0", + "npm-package-arg": "^8.1.0", + "npm-registry-fetch": "^9.0.0", + "npmlog": "^4.1.2" + } + }, + "@lerna/npm-install": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-4.0.0.tgz", + "integrity": "sha512-aKNxq2j3bCH3eXl3Fmu4D54s/YLL9WSwV8W7X2O25r98wzrO38AUN6AB9EtmAx+LV/SP15et7Yueg9vSaanRWg==", + "dev": true, + "requires": { + "@lerna/child-process": "4.0.0", + "@lerna/get-npm-exec-opts": "4.0.0", + "fs-extra": "^9.1.0", + "npm-package-arg": "^8.1.0", + "npmlog": "^4.1.2", + "signal-exit": "^3.0.3", + "write-pkg": "^4.0.0" + } + }, + "@lerna/npm-publish": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-4.0.0.tgz", + "integrity": "sha512-vQb7yAPRo5G5r77DRjHITc9piR9gvEKWrmfCH7wkfBnGWEqu7n8/4bFQ7lhnkujvc8RXOsYpvbMQkNfkYibD/w==", + "dev": true, + "requires": { + "@lerna/otplease": "4.0.0", + "@lerna/run-lifecycle": "4.0.0", + "fs-extra": "^9.1.0", + "libnpmpublish": "^4.0.0", + "npm-package-arg": "^8.1.0", + "npmlog": "^4.1.2", + "pify": "^5.0.0", + "read-package-json": "^3.0.0" + } + }, + "@lerna/npm-run-script": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-4.0.0.tgz", + "integrity": "sha512-Jmyh9/IwXJjOXqKfIgtxi0bxi1pUeKe5bD3S81tkcy+kyng/GNj9WSqD5ZggoNP2NP//s4CLDAtUYLdP7CU9rA==", + "dev": true, + "requires": { + "@lerna/child-process": "4.0.0", + "@lerna/get-npm-exec-opts": "4.0.0", + "npmlog": "^4.1.2" + } + }, + "@lerna/otplease": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-4.0.0.tgz", + "integrity": "sha512-Sgzbqdk1GH4psNiT6hk+BhjOfIr/5KhGBk86CEfHNJTk9BK4aZYyJD4lpDbDdMjIV4g03G7pYoqHzH765T4fxw==", + "dev": true, + "requires": { + "@lerna/prompt": "4.0.0" + } + }, + "@lerna/output": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/output/-/output-4.0.0.tgz", + "integrity": "sha512-Un1sHtO1AD7buDQrpnaYTi2EG6sLF+KOPEAMxeUYG5qG3khTs2Zgzq5WE3dt2N/bKh7naESt20JjIW6tBELP0w==", + "dev": true, + "requires": { + "npmlog": "^4.1.2" + } + }, + "@lerna/pack-directory": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-4.0.0.tgz", + "integrity": "sha512-NJrmZNmBHS+5aM+T8N6FVbaKFScVqKlQFJNY2k7nsJ/uklNKsLLl6VhTQBPwMTbf6Tf7l6bcKzpy7aePuq9UiQ==", + "dev": true, + "requires": { + "@lerna/get-packed": "4.0.0", + "@lerna/package": "4.0.0", + "@lerna/run-lifecycle": "4.0.0", + "npm-packlist": "^2.1.4", + "npmlog": "^4.1.2", + "tar": "^6.1.0", + "temp-write": "^4.0.0" + } + }, + "@lerna/package": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/package/-/package-4.0.0.tgz", + "integrity": "sha512-l0M/izok6FlyyitxiQKr+gZLVFnvxRQdNhzmQ6nRnN9dvBJWn+IxxpM+cLqGACatTnyo9LDzNTOj2Db3+s0s8Q==", + "dev": true, + "requires": { + "load-json-file": "^6.2.0", + "npm-package-arg": "^8.1.0", + "write-pkg": "^4.0.0" + } + }, + "@lerna/package-graph": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-4.0.0.tgz", + "integrity": "sha512-QED2ZCTkfXMKFoTGoccwUzjHtZMSf3UKX14A4/kYyBms9xfFsesCZ6SLI5YeySEgcul8iuIWfQFZqRw+Qrjraw==", + "dev": true, + "requires": { + "@lerna/prerelease-id-from-version": "4.0.0", + "@lerna/validation-error": "4.0.0", + "npm-package-arg": "^8.1.0", + "npmlog": "^4.1.2", + "semver": "^7.3.4" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "lru-cache": "^6.0.0" } } } }, - "@babel/helper-simple-access": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", - "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", + "@lerna/prerelease-id-from-version": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-4.0.0.tgz", + "integrity": "sha512-GQqguzETdsYRxOSmdFZ6zDBXDErIETWOqomLERRY54f4p+tk4aJjoVdd9xKwehC9TBfIFvlRbL1V9uQGHh1opg==", "dev": true, "requires": { - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "semver": "^7.3.4" }, "dependencies": { - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", - "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.9.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "lru-cache": "^6.0.0" } - }, - "@babel/parser": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz", - "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==", + } + } + }, + "@lerna/profiler": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-4.0.0.tgz", + "integrity": "sha512-/BaEbqnVh1LgW/+qz8wCuI+obzi5/vRE8nlhjPzdEzdmWmZXuCKyWSEzAyHOJWw1ntwMiww5dZHhFQABuoFz9Q==", + "dev": true, + "requires": { + "fs-extra": "^9.1.0", + "npmlog": "^4.1.2", + "upath": "^2.0.1" + } + }, + "@lerna/project": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/project/-/project-4.0.0.tgz", + "integrity": "sha512-o0MlVbDkD5qRPkFKlBZsXZjoNTWPyuL58564nSfZJ6JYNmgAptnWPB2dQlAc7HWRZkmnC2fCkEdoU+jioPavbg==", + "dev": true, + "requires": { + "@lerna/package": "4.0.0", + "@lerna/validation-error": "4.0.0", + "cosmiconfig": "^7.0.0", + "dedent": "^0.7.0", + "dot-prop": "^6.0.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.2", + "load-json-file": "^6.2.0", + "npmlog": "^4.1.2", + "p-map": "^4.0.0", + "resolve-from": "^5.0.0", + "write-json-file": "^4.3.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true - }, - "@babel/template": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", - "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6" - } - }, - "@babel/types": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", - "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + } + } + }, + "@lerna/prompt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-4.0.0.tgz", + "integrity": "sha512-4Ig46oCH1TH5M7YyTt53fT6TuaKMgqUUaqdgxvp6HP6jtdak6+amcsqB8YGz2eQnw/sdxunx84DfI9XpoLj4bQ==", + "dev": true, + "requires": { + "inquirer": "^7.3.3", + "npmlog": "^4.1.2" + } + }, + "@lerna/publish": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-4.0.0.tgz", + "integrity": "sha512-K8jpqjHrChH22qtkytA5GRKIVFEtqBF6JWj1I8dWZtHs4Jywn8yB1jQ3BAMLhqmDJjWJtRck0KXhQQKzDK2UPg==", + "dev": true, + "requires": { + "@lerna/check-working-tree": "4.0.0", + "@lerna/child-process": "4.0.0", + "@lerna/collect-updates": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/describe-ref": "4.0.0", + "@lerna/log-packed": "4.0.0", + "@lerna/npm-conf": "4.0.0", + "@lerna/npm-dist-tag": "4.0.0", + "@lerna/npm-publish": "4.0.0", + "@lerna/otplease": "4.0.0", + "@lerna/output": "4.0.0", + "@lerna/pack-directory": "4.0.0", + "@lerna/prerelease-id-from-version": "4.0.0", + "@lerna/prompt": "4.0.0", + "@lerna/pulse-till-done": "4.0.0", + "@lerna/run-lifecycle": "4.0.0", + "@lerna/run-topologically": "4.0.0", + "@lerna/validation-error": "4.0.0", + "@lerna/version": "4.0.0", + "fs-extra": "^9.1.0", + "libnpmaccess": "^4.0.1", + "npm-package-arg": "^8.1.0", + "npm-registry-fetch": "^9.0.0", + "npmlog": "^4.1.2", + "p-map": "^4.0.0", + "p-pipe": "^3.1.0", + "pacote": "^11.2.6", + "semver": "^7.3.4" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.9.5", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "lru-cache": "^6.0.0" } } } }, - "@babel/helper-validator-identifier": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", - "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", + "@lerna/pulse-till-done": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-4.0.0.tgz", + "integrity": "sha512-Frb4F7QGckaybRhbF7aosLsJ5e9WuH7h0KUkjlzSByVycxY91UZgaEIVjS2oN9wQLrheLMHl6SiFY0/Pvo0Cxg==", + "dev": true, + "requires": { + "npmlog": "^4.1.2" + } + }, + "@lerna/query-graph": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-4.0.0.tgz", + "integrity": "sha512-YlP6yI3tM4WbBmL9GCmNDoeQyzcyg1e4W96y/PKMZa5GbyUvkS2+Jc2kwPD+5KcXou3wQZxSPzR3Te5OenaDdg==", + "dev": true, + "requires": { + "@lerna/package-graph": "4.0.0" + } + }, + "@lerna/resolve-symlink": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-4.0.0.tgz", + "integrity": "sha512-RtX8VEUzqT+uLSCohx8zgmjc6zjyRlh6i/helxtZTMmc4+6O4FS9q5LJas2uGO2wKvBlhcD6siibGt7dIC3xZA==", + "dev": true, + "requires": { + "fs-extra": "^9.1.0", + "npmlog": "^4.1.2", + "read-cmd-shim": "^2.0.0" + } + }, + "@lerna/rimraf-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-4.0.0.tgz", + "integrity": "sha512-QNH9ABWk9mcMJh2/muD9iYWBk1oQd40y6oH+f3wwmVGKYU5YJD//+zMiBI13jxZRtwBx0vmBZzkBkK1dR11cBg==", + "dev": true, + "requires": { + "@lerna/child-process": "4.0.0", + "npmlog": "^4.1.2", + "path-exists": "^4.0.0", + "rimraf": "^3.0.2" + }, + "dependencies": { + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + } + } + }, + "@lerna/run": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/run/-/run-4.0.0.tgz", + "integrity": "sha512-9giulCOzlMPzcZS/6Eov6pxE9gNTyaXk0Man+iCIdGJNMrCnW7Dme0Z229WWP/UoxDKg71F2tMsVVGDiRd8fFQ==", + "dev": true, + "requires": { + "@lerna/command": "4.0.0", + "@lerna/filter-options": "4.0.0", + "@lerna/npm-run-script": "4.0.0", + "@lerna/output": "4.0.0", + "@lerna/profiler": "4.0.0", + "@lerna/run-topologically": "4.0.0", + "@lerna/timer": "4.0.0", + "@lerna/validation-error": "4.0.0", + "p-map": "^4.0.0" + } + }, + "@lerna/run-lifecycle": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-4.0.0.tgz", + "integrity": "sha512-IwxxsajjCQQEJAeAaxF8QdEixfI7eLKNm4GHhXHrgBu185JcwScFZrj9Bs+PFKxwb+gNLR4iI5rpUdY8Y0UdGQ==", + "dev": true, + "requires": { + "@lerna/npm-conf": "4.0.0", + "npm-lifecycle": "^3.1.5", + "npmlog": "^4.1.2" + } + }, + "@lerna/run-topologically": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-4.0.0.tgz", + "integrity": "sha512-EVZw9hGwo+5yp+VL94+NXRYisqgAlj0jWKWtAIynDCpghRxCE5GMO3xrQLmQgqkpUl9ZxQFpICgYv5DW4DksQA==", + "dev": true, + "requires": { + "@lerna/query-graph": "4.0.0", + "p-queue": "^6.6.2" + } + }, + "@lerna/symlink-binary": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-4.0.0.tgz", + "integrity": "sha512-zualodWC4q1QQc1pkz969hcFeWXOsVYZC5AWVtAPTDfLl+TwM7eG/O6oP+Rr3fFowspxo6b1TQ6sYfDV6HXNWA==", + "dev": true, + "requires": { + "@lerna/create-symlink": "4.0.0", + "@lerna/package": "4.0.0", + "fs-extra": "^9.1.0", + "p-map": "^4.0.0" + } + }, + "@lerna/symlink-dependencies": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-4.0.0.tgz", + "integrity": "sha512-BABo0MjeUHNAe2FNGty1eantWp8u83BHSeIMPDxNq0MuW2K3CiQRaeWT3EGPAzXpGt0+hVzBrA6+OT0GPn7Yuw==", + "dev": true, + "requires": { + "@lerna/create-symlink": "4.0.0", + "@lerna/resolve-symlink": "4.0.0", + "@lerna/symlink-binary": "4.0.0", + "fs-extra": "^9.1.0", + "p-map": "^4.0.0", + "p-map-series": "^2.1.0" + } + }, + "@lerna/timer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-4.0.0.tgz", + "integrity": "sha512-WFsnlaE7SdOvjuyd05oKt8Leg3ENHICnvX3uYKKdByA+S3g+TCz38JsNs7OUZVt+ba63nC2nbXDlUnuT2Xbsfg==", "dev": true }, - "@babel/helpers": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.6.tgz", - "integrity": "sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==", + "@lerna/validation-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-4.0.0.tgz", + "integrity": "sha512-1rBOM5/koiVWlRi3V6dB863E1YzJS8v41UtsHgMr6gB2ncJ2LsQtMKlJpi3voqcgh41H8UsPXR58RrrpPpufyw==", "dev": true, "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.9.6", - "@babel/types": "^7.9.6" + "npmlog": "^4.1.2" + } + }, + "@lerna/version": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/version/-/version-4.0.0.tgz", + "integrity": "sha512-otUgiqs5W9zGWJZSCCMRV/2Zm2A9q9JwSDS7s/tlKq4mWCYriWo7+wsHEA/nPTMDyYyBO5oyZDj+3X50KDUzeA==", + "dev": true, + "requires": { + "@lerna/check-working-tree": "4.0.0", + "@lerna/child-process": "4.0.0", + "@lerna/collect-updates": "4.0.0", + "@lerna/command": "4.0.0", + "@lerna/conventional-commits": "4.0.0", + "@lerna/github-client": "4.0.0", + "@lerna/gitlab-client": "4.0.0", + "@lerna/output": "4.0.0", + "@lerna/prerelease-id-from-version": "4.0.0", + "@lerna/prompt": "4.0.0", + "@lerna/run-lifecycle": "4.0.0", + "@lerna/run-topologically": "4.0.0", + "@lerna/validation-error": "4.0.0", + "chalk": "^4.1.0", + "dedent": "^0.7.0", + "load-json-file": "^6.2.0", + "minimatch": "^3.0.4", + "npmlog": "^4.1.2", + "p-map": "^4.0.0", + "p-pipe": "^3.1.0", + "p-reduce": "^2.1.0", + "p-waterfall": "^2.1.1", + "semver": "^7.3.4", + "slash": "^3.0.0", + "temp-write": "^4.0.0", + "write-json-file": "^4.3.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/generator": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz", - "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==", - "dev": true, - "requires": { - "@babel/types": "^7.9.6", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", - "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.9.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "color-convert": "^2.0.1" } }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "@babel/highlight": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", - "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.9.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "color-name": "~1.1.4" } }, - "@babel/parser": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz", - "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "@babel/template": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", - "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6" + "lru-cache": "^6.0.0" } }, - "@babel/traverse": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz", - "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==", + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.6", - "@babel/helper-function-name": "^7.9.5", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.9.6", - "@babel/types": "^7.9.6", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" + "has-flag": "^4.0.0" } + } + } + }, + "@lerna/write-log-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-4.0.0.tgz", + "integrity": "sha512-XRG5BloiArpXRakcnPHmEHJp+4AtnhRtpDIHSghmXD5EichI1uD73J7FgPp30mm2pDRq3FdqB0NbwSEsJ9xFQg==", + "dev": true, + "requires": { + "npmlog": "^4.1.2", + "write-file-atomic": "^3.0.3" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@npmcli/ci-detect": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz", + "integrity": "sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q==", + "dev": true + }, + "@npmcli/git": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", + "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", + "dev": true, + "requires": { + "@npmcli/promise-spawn": "^1.3.2", + "lru-cache": "^6.0.0", + "mkdirp": "^1.0.4", + "npm-pick-manifest": "^6.1.1", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^2.0.2" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true }, - "@babel/types": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", - "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.9.5", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "lru-cache": "^6.0.0" } }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { - "ms": "^2.1.1" + "isexe": "^2.0.0" } } } }, - "@babel/highlight": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", - "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "@npmcli/installed-package-contents": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", "dev": true, "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" } }, - "@babel/runtime": { - "version": "7.9.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", - "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "dev": true, "requires": { - "regenerator-runtime": "^0.13.4" + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" }, "dependencies": { - "regenerator-runtime": { - "version": "0.13.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true } } }, - "@istanbuljs/load-nyc-config": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz", - "integrity": "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==", + "@npmcli/node-gyp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.2.tgz", + "integrity": "sha512-yrJUe6reVMpktcvagumoqD9r08fH1iRo01gn1u0zoCApa9lnZGEigVKUd2hzsCId4gdtkZZIVscLhNxMECKgRg==", + "dev": true + }, + "@npmcli/promise-spawn": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", + "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", "dev": true, "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "infer-owner": "^1.0.4" + } + }, + "@npmcli/run-script": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.5.tgz", + "integrity": "sha512-NQspusBCpTjNwNRFMtz2C5MxoxyzlbuJ4YEhxAKrIonTiirKDtatsZictx9RgamQIx6+QuHMNmPl0wQdoESs9A==", + "dev": true, + "requires": { + "@npmcli/node-gyp": "^1.0.2", + "@npmcli/promise-spawn": "^1.3.2", + "infer-owner": "^1.0.4", + "node-gyp": "^7.1.0", + "read-package-json-fast": "^2.0.1" }, "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dev": true, "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node-gyp": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", "dev": true, "requires": { - "p-locate": "^4.1.0" + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.3", + "nopt": "^5.0.0", + "npmlog": "^4.1.2", + "request": "^2.88.2", + "rimraf": "^3.0.2", + "semver": "^7.3.2", + "tar": "^6.0.2", + "which": "^2.0.2" } }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, "requires": { - "p-limit": "^2.2.0" + "abbrev": "1" } }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, - "@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", - "dev": true + "@octokit/auth-token": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.5.tgz", + "integrity": "sha512-BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA==", + "dev": true, + "requires": { + "@octokit/types": "^6.0.3" + } }, - "@jimp/bmp": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.8.5.tgz", - "integrity": "sha512-o/23j1RODQGGjvb2xg+9ZQCHc9uXa5XIoJuXHN8kh8AJBGD7JZYiHMwNHaxJRJvadimCKUeA5udZUJAoaPwrYg==", + "@octokit/core": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz", + "integrity": "sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==", "dev": true, "requires": { - "@jimp/utils": "^0.8.5", - "bmp-js": "^0.1.0", - "core-js": "^2.5.7" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "@octokit/auth-token": "^2.4.4", + "@octokit/graphql": "^4.5.8", + "@octokit/request": "^5.6.0", + "@octokit/request-error": "^2.0.5", + "@octokit/types": "^6.0.3", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" } }, - "@jimp/core": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.8.5.tgz", - "integrity": "sha512-Jto1IdL5HYg7uE15rpQjK6dfZJ6d6gRjUsVCPW50nIfXgWizaTibFEov90W9Bj+irwKrX2ntG3e3pZUyOC0COg==", + "@octokit/endpoint": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", "dev": true, "requires": { - "@jimp/utils": "^0.8.5", - "any-base": "^1.1.0", - "buffer": "^5.2.0", - "core-js": "^2.5.7", - "exif-parser": "^0.1.12", - "file-type": "^9.0.0", - "load-bmfont": "^1.3.1", - "mkdirp": "0.5.1", - "phin": "^2.9.1", - "pixelmatch": "^4.0.2", - "tinycolor2": "^1.4.1" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - }, - "file-type": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz", - "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==", - "dev": true - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" } }, - "@jimp/custom": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.8.5.tgz", - "integrity": "sha512-hS4qHOcOIL+N93IprsIhFgr8F4XnC2oYd+lRaOKEOg3ptS2vQnceSTtcXsC0//mhq8AV6lNjpbfs1iseEZuTqg==", + "@octokit/graphql": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.6.4.tgz", + "integrity": "sha512-SWTdXsVheRmlotWNjKzPOb6Js6tjSqA2a8z9+glDJng0Aqjzti8MEWOtuT8ZSu6wHnci7LZNuarE87+WJBG4vg==", "dev": true, "requires": { - "@jimp/core": "^0.8.5", - "core-js": "^2.5.7" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "@octokit/request": "^5.6.0", + "@octokit/types": "^6.0.3", + "universal-user-agent": "^6.0.0" } }, - "@jimp/gif": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.8.5.tgz", - "integrity": "sha512-Mj8jmv4AS76OY+Hx/Xoyihj02SUZ2ELk+O5x89pODz1+NeGtSWHHjZjnSam9HYAjycvVI/lGJdk/7w0nWIV/yQ==", + "@octokit/openapi-types": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-9.1.1.tgz", + "integrity": "sha512-xmyPP9tVb4T4A6Lk6SL6ScnIqAHpPV4jfMZI8VtY286212ri9J/6IFGuLsZ26daADUmriuLejake4k+azEfnaw==", + "dev": true + }, + "@octokit/plugin-enterprise-rest": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz", + "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==", + "dev": true + }, + "@octokit/plugin-paginate-rest": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.14.0.tgz", + "integrity": "sha512-S2uEu2uHeI7Vf+Lvj8tv3O5/5TCAa8GHS0dUQN7gdM7vKA6ZHAbR6HkAVm5yMb1mbedLEbxOuQ+Fa0SQ7tCDLA==", "dev": true, "requires": { - "@jimp/utils": "^0.8.5", - "core-js": "^2.5.7", - "omggif": "^1.0.9" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "@octokit/types": "^6.18.0" } }, - "@jimp/jpeg": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.8.5.tgz", - "integrity": "sha512-7kjTY0BiCpwRywk+oPfpLto7cLI+9G0mf4N1bv1Hn+VLQwcXFy2fHyl4qjqLbbY6u4cyZgqN+R8Pg6GRRzv0kw==", + "@octokit/plugin-request-log": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", + "dev": true, + "requires": {} + }, + "@octokit/plugin-rest-endpoint-methods": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.5.1.tgz", + "integrity": "sha512-Al57+OZmO65JpiPk4JS6u6kQ2y9qjoZtY1IWiSshc4N+F7EcrK8Rgy/cUJBB4WIcSFUQyF66EJQK1oKgXWeRNw==", "dev": true, "requires": { - "@jimp/utils": "^0.8.5", - "core-js": "^2.5.7", - "jpeg-js": "^0.3.4" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "@octokit/types": "^6.21.1", + "deprecation": "^2.3.1" } }, - "@jimp/plugin-blit": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.8.5.tgz", - "integrity": "sha512-r8Z1CwazaJwZCRbucQgrfprlGyH91tX7GubUsbWr+zy5/dRJAAgaPj/hcoHDwbh3zyiXp5BECKKzKW0x4reL4w==", + "@octokit/request": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.0.tgz", + "integrity": "sha512-4cPp/N+NqmaGQwbh3vUsYqokQIzt7VjsgTYVXiwpUP2pxd5YiZB2XuTedbb0SPtv9XS7nzAKjAuQxmY8/aZkiA==", "dev": true, "requires": { - "@jimp/utils": "^0.8.5", - "core-js": "^2.5.7" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.1", + "universal-user-agent": "^6.0.0" } }, - "@jimp/plugin-blur": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.8.5.tgz", - "integrity": "sha512-UH5ywpV4YooUh9HXEsrNKDtojLCvIAAV0gywqn8EQeFyzwBJyXAvRNARJp7zr5OPLr9uGXkRLDCO9YyzdlXZng==", + "@octokit/request-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", "dev": true, "requires": { - "@jimp/utils": "^0.8.5", - "core-js": "^2.5.7" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" } }, - "@jimp/plugin-color": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.8.5.tgz", - "integrity": "sha512-7XHqcTQ8Y1zto1b9P1y8m1dzSjnOpBsD9OZG0beTpeJ5bgPX+hF5ZLmvcM6c5ljkINw5EUF1it07BYbkCxiGQA==", + "@octokit/rest": { + "version": "18.7.1", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.7.1.tgz", + "integrity": "sha512-790Yv8Xpbqs3BtnMAO5hlOftVICHPdgZ/3qlTmeOoqrQGzT25BIpHkg/KKMeKG9Fg8d598PLxGhf80RswElv9g==", "dev": true, "requires": { - "@jimp/utils": "^0.8.5", - "core-js": "^2.5.7", - "tinycolor2": "^1.4.1" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "@octokit/core": "^3.5.0", + "@octokit/plugin-paginate-rest": "^2.6.2", + "@octokit/plugin-request-log": "^1.0.2", + "@octokit/plugin-rest-endpoint-methods": "5.5.1" } }, - "@jimp/plugin-contain": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.8.5.tgz", - "integrity": "sha512-ZkiPFx9L0yITiKtYTYLWyBsSIdxo/NARhNPRZXyVF9HmTWSLDUw1c2c1uvETKxDZTAVK+souYT14DwFWWdhsYA==", + "@octokit/types": { + "version": "6.21.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.21.1.tgz", + "integrity": "sha512-PP+m3T5EWZKawru4zi/FvX8KL2vkO5f1fLthx78/7743p7RtJUevt3z7698k+7oAYRA7YuVqfXthSEHqkDvZ8g==", "dev": true, "requires": { - "@jimp/utils": "^0.8.5", - "core-js": "^2.5.7" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "@octokit/openapi-types": "^9.1.1" } }, - "@jimp/plugin-cover": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.8.5.tgz", - "integrity": "sha512-OdT4YAopLOhbhTUQV3R1v5ZZqIaUt3n3vJi/OfTbsak1t9UkPBVdmYPyhoont8zJdtdkF5dW16Ro1FTshytcww==", + "@sinonjs/commons": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", "dev": true, "requires": { - "@jimp/utils": "^0.8.5", - "core-js": "^2.5.7" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "type-detect": "4.0.8" } }, - "@jimp/plugin-crop": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.8.5.tgz", - "integrity": "sha512-E1Hb+gfu2k74Gkqh96apAyVljsP5MjCH4TY6lECAAEcYKGH/XRhz6lY2dSEjCYE7KtiqjTZzWwYkgAvkwojj9Q==", + "@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", "dev": true, "requires": { - "@jimp/utils": "^0.8.5", - "core-js": "^2.5.7" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "@sinonjs/commons": "^1.7.0" } }, - "@jimp/plugin-displace": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.8.5.tgz", - "integrity": "sha512-fVgVYTS1HZzAXkg8Lg06PuirSUG5oXYaYYGL+3ZU4tmZn1pyZ+mZyfejpwtymETEYZnmymHoCT4xto19E/IRvA==", + "@sinonjs/formatio": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-5.0.1.tgz", + "integrity": "sha512-KaiQ5pBf1MpS09MuA0kp6KBQt2JUOQycqVG1NZXvzeaXe5LGFqAKueIS0bw4w0P9r7KuBSVdUk5QjXsUdu2CxQ==", "dev": true, "requires": { - "@jimp/utils": "^0.8.5", - "core-js": "^2.5.7" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "@sinonjs/commons": "^1", + "@sinonjs/samsam": "^5.0.2" } }, - "@jimp/plugin-dither": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.8.5.tgz", - "integrity": "sha512-KSj2y8E3yK7tldjT/8ejqAWw5HFBjtWW6QkcxfW7FdV4c/nsXZXDkMbhqMZ7FkDuSYoAPeWUFeddrH4yipC5iA==", + "@sinonjs/samsam": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.1.0.tgz", + "integrity": "sha512-42nyaQOVunX5Pm6GRJobmzbS7iLI+fhERITnETXzzwDZh+TtDr/Au3yAvXVjFmZ4wEUaE4Y3NFZfKv0bV0cbtg==", "dev": true, "requires": { - "@jimp/utils": "^0.8.5", - "core-js": "^2.5.7" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" } }, - "@jimp/plugin-flip": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.8.5.tgz", - "integrity": "sha512-2QbGDkurPNAXZUeHLo/UA3tjh+AbAXWZKSdtoa1ArlASovRz8rqtA45YIRIkKrMH82TA3PZk8bgP2jaLKLrzww==", + "@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "dev": true + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, + "@types/chai": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.4.tgz", + "integrity": "sha512-7qvf9F9tMTzo0akeswHPGqgUx/gIaJqrOEET/FCD8CFRkSUHlygQiM5yB6OvjrtdxBVLSyw7COJubsFYs0683g==", + "dev": true + }, + "@types/chai-as-promised": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.2.tgz", + "integrity": "sha512-PO2gcfR3Oxa+u0QvECLe1xKXOqYTzCmWf0FhLhjREoW3fPAVamjihL7v1MOVLJLsnAMdLcjkfrs01yvDMwVK4Q==", "dev": true, "requires": { - "@jimp/utils": "^0.8.5", - "core-js": "^2.5.7" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "@types/chai": "*" + } + }, + "@types/chrome": { + "version": "0.0.115", + "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.115.tgz", + "integrity": "sha512-pNoYoYgGuI1/kiz53kjrXrKIjn2H8YWOI+vxVTOubX6arCHk/m/jInoyflKiP2qZHZf8+P+hh6d2y9tjaG4BPQ==", + "requires": { + "@types/filesystem": "*", + "@types/har-format": "*" } }, - "@jimp/plugin-gaussian": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.8.5.tgz", - "integrity": "sha512-2zReC5GJcVAXtf3UgzFcHSYN277i02K9Yrhc1xJf3mti00s43uD++B5Ho7/mIo+HrntVvWhxqar7PARdq0lVIg==", - "dev": true, - "requires": { - "@jimp/utils": "^0.8.5", - "core-js": "^2.5.7" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } - } + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, + "@types/eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", + "dev": true + }, + "@types/filesystem": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.29.tgz", + "integrity": "sha512-85/1KfRedmfPGsbK8YzeaQUyV1FQAvMPMTuWFQ5EkLd2w7szhNO96bk3Rh/SKmOfd9co2rCLf0Voy4o7ECBOvw==", + "requires": { + "@types/filewriter": "*" + } + }, + "@types/filewriter": { + "version": "0.0.28", + "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.28.tgz", + "integrity": "sha1-wFTor02d11205jq8dviFFocU1LM=" + }, + "@types/har-format": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.4.tgz", + "integrity": "sha512-iUxzm1meBm3stxUMzRqgOVHjj4Kgpgu5w9fm4X7kPRfSgVRzythsucEN7/jtOo8SQzm+HfcxWWzJS0mJDH/3DQ==" + }, + "@types/json-schema": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", + "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==", + "dev": true + }, + "@types/libsodium-wrappers": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.7.tgz", + "integrity": "sha512-Li91pVKcLvQJK3ZolwCPo85oxf2gKBCApgnesRxYg4OVYchLXcJB2eivX8S87vfQVv6ZRnyCO1lLDosZGJfpRg==" + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "@types/mocha": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-7.0.2.tgz", + "integrity": "sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==", + "dev": true + }, + "@types/node": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.1.tgz", + "integrity": "sha512-FAYBGwC+W6F9+huFIDtn43cpy7+SzG+atzRiTfdp3inUKL2hXnd4rG8hylJLIh4+hqrQy1P17kvJByE/z825hA==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true }, - "@jimp/plugin-invert": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.8.5.tgz", - "integrity": "sha512-GyMXPGheHdS14xfDceuZ9hrGm6gE9UG3PfTEjQbJmHMWippLC6yf8kombSudJlUf8q72YYSSXsSFKGgkHa67vA==", + "@types/sinon": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-9.0.5.tgz", + "integrity": "sha512-4CnkGdM/5/FXDGqL32JQ1ttVrGvhOoesLLF7VnTh4KdjK5N5VQOtxaylFqqTjnHx55MnD9O02Nbk5c1ELC8wlQ==", "dev": true, "requires": { - "@jimp/utils": "^0.8.5", - "core-js": "^2.5.7" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "@types/sinonjs__fake-timers": "*" } }, - "@jimp/plugin-mask": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.8.5.tgz", - "integrity": "sha512-inD/++XO+MkmwXl9JGYQ8X2deyOZuq9i+dmugH/557p16B9Q6tvUQt5X1Yg5w7hhkLZ00BKOAJI9XoyCC1NFvQ==", - "dev": true, - "requires": { - "@jimp/utils": "^0.8.5", - "core-js": "^2.5.7" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } - } + "@types/sinonjs__fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz", + "integrity": "sha512-yYezQwGWty8ziyYLdZjwxyMb0CZR49h8JALHGrxjQHWlqGgc8kLdHEgWrgL0uZ29DMvEVBDnHU2Wg36zKSIUtA==", + "dev": true }, - "@jimp/plugin-normalize": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.8.5.tgz", - "integrity": "sha512-8YRWJWBT4NoSAbPhnjQJXGeaeWVrJAlGDv39A54oNH8Ry47fHcE0EN6zogQNpBuM34M6hRnZl4rOv1FIisaWdg==", + "@types/yauzl": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz", + "integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==", "dev": true, + "optional": true, "requires": { - "@jimp/utils": "^0.8.5", - "core-js": "^2.5.7" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "@types/node": "*" } }, - "@jimp/plugin-print": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.8.5.tgz", - "integrity": "sha512-BviNpCiA/fEieOqsrWr1FkqyFuiG2izdyyg7zUqyeUTHPwqrTLvXO9cfP/ThG4hZpu5wMQ5QClWSqhZu1fAwxA==", + "@typescript-eslint/eslint-plugin": { + "version": "2.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.33.0.tgz", + "integrity": "sha512-QV6P32Btu1sCI/kTqjTNI/8OpCYyvlGjW5vD8MpTIg+HGE5S88HtT1G+880M4bXlvXj/NjsJJG0aGcVh0DdbeQ==", "dev": true, "requires": { - "@jimp/utils": "^0.8.5", - "core-js": "^2.5.7", - "load-bmfont": "^1.4.0" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "@typescript-eslint/experimental-utils": "2.33.0", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^3.0.0", + "tsutils": "^3.17.1" } }, - "@jimp/plugin-resize": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.8.5.tgz", - "integrity": "sha512-gIdmISuNmZQ1QwprnRC5VXVWQfKIiWineVQGebpMAG/aoFOLDXrVl939Irg7Fb/uOlSFTzpAbt1zpJ8YG/Mi2w==", + "@typescript-eslint/eslint-plugin-tslint": { + "version": "2.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-2.33.0.tgz", + "integrity": "sha512-DXy14tWbs4NVMv/1ADDLfh9jy8ZloZHTuIKEE1Ufs7OGvAu6Ft5Rw7G1RsgfykEENSqy32Mycj5Q6jxN7AXmNA==", "dev": true, "requires": { - "@jimp/utils": "^0.8.5", - "core-js": "^2.5.7" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "@typescript-eslint/experimental-utils": "2.33.0", + "lodash": "^4.17.15" } }, - "@jimp/plugin-rotate": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.8.5.tgz", - "integrity": "sha512-8T9wnL3gb+Z0ogMZmtyI6h3y7TuqW2a5SpFbzFUVF+lTZoAabXjEfX3CAozizCLaT+Duc5H2FJVemAHiyr+Dbw==", + "@typescript-eslint/experimental-utils": { + "version": "2.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.33.0.tgz", + "integrity": "sha512-qzPM2AuxtMrRq78LwyZa8Qn6gcY8obkIrBs1ehqmQADwkYzTE1Pb4y2W+U3rE/iFkSWcWHG2LS6MJfj6SmHApg==", "dev": true, "requires": { - "@jimp/utils": "^0.8.5", - "core-js": "^2.5.7" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "2.33.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" } }, - "@jimp/plugin-scale": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.8.5.tgz", - "integrity": "sha512-G+CDH9s7BsxJ4b+mKZ5SsiXwTAynBJ+7/9SwZFnICZJJvLd79Tws6VPXfSaKJZuWnGIX++L8jTGmFORCfLNkdg==", + "@typescript-eslint/parser": { + "version": "2.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.33.0.tgz", + "integrity": "sha512-AUtmwUUhJoH6yrtxZMHbRUEMsC2G6z5NSxg9KsROOGqNXasM71I8P2NihtumlWTUCRld70vqIZ6Pm4E5PAziEA==", "dev": true, "requires": { - "@jimp/utils": "^0.8.5", - "core-js": "^2.5.7" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "2.33.0", + "@typescript-eslint/typescript-estree": "2.33.0", + "eslint-visitor-keys": "^1.1.0" } }, - "@jimp/plugins": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.8.5.tgz", - "integrity": "sha512-52na0wqfQ3uItIA+C9cJ1EXffhSmABgK7ETClDseUh9oGtynHzxZ97smnFf1ydLjXLrF89Gt+YBxWLyiBGgiZQ==", + "@typescript-eslint/typescript-estree": { + "version": "2.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.33.0.tgz", + "integrity": "sha512-d8rY6/yUxb0+mEwTShCQF2zYQdLlqihukNfG9IUlLYz5y1CH6G/9XYbrxQLq3Z14RNvkCC6oe+OcFlyUpwUbkg==", "dev": true, "requires": { - "@jimp/plugin-blit": "^0.8.5", - "@jimp/plugin-blur": "^0.8.5", - "@jimp/plugin-color": "^0.8.5", - "@jimp/plugin-contain": "^0.8.5", - "@jimp/plugin-cover": "^0.8.5", - "@jimp/plugin-crop": "^0.8.5", - "@jimp/plugin-displace": "^0.8.5", - "@jimp/plugin-dither": "^0.8.5", - "@jimp/plugin-flip": "^0.8.5", - "@jimp/plugin-gaussian": "^0.8.5", - "@jimp/plugin-invert": "^0.8.5", - "@jimp/plugin-mask": "^0.8.5", - "@jimp/plugin-normalize": "^0.8.5", - "@jimp/plugin-print": "^0.8.5", - "@jimp/plugin-resize": "^0.8.5", - "@jimp/plugin-rotate": "^0.8.5", - "@jimp/plugin-scale": "^0.8.5", - "core-js": "^2.5.7", - "timm": "^1.6.1" + "debug": "^4.1.1", + "eslint-visitor-keys": "^1.1.0", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" }, "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true } } }, - "@jimp/png": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.8.5.tgz", - "integrity": "sha512-zT89ucu8I2rsD3FIMIPLgr1OyKn4neD+5umwD3MY8AOB8+6tX5bFtnmTm3FzGJaJuibkK0wFl87eiaxnb+Megw==", + "abab": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz", + "integrity": "sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "acorn": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", + "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", + "dev": true + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", "dev": true, "requires": { - "@jimp/utils": "^0.8.5", - "core-js": "^2.5.7", - "pngjs": "^3.3.3" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" } }, - "@jimp/tiff": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.8.5.tgz", - "integrity": "sha512-Z7uzDcbHuwDg+hy2+UJQ2s5O6sqYXmv6H1fmSf/2dxBrlGMzl8yTc2/BxLrGREeoidDDMcKmXYGAOp4uCsdJjw==", + "acorn-jsx": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "dev": true + }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", "dev": true, "requires": { - "core-js": "^2.5.7", - "utif": "^2.0.1" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", - "dev": true - } + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" } }, - "@jimp/types": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.8.5.tgz", - "integrity": "sha512-XUvpyebZGd1vyFiJyxUT4H9A3mKD7MV2MxjXnay3fNTrcow0UJJspmFw/w+G3TP/1dgrVC4K++gntjR6QWTzvg==", + "acorn-walk": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz", + "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==", + "dev": true + }, + "add-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "requires": { - "@jimp/bmp": "^0.8.5", - "@jimp/gif": "^0.8.5", - "@jimp/jpeg": "^0.8.5", - "@jimp/png": "^0.8.5", - "@jimp/tiff": "^0.8.5", - "core-js": "^2.5.7", - "timm": "^1.6.1" + "debug": "4" }, "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, - "@jimp/utils": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.8.5.tgz", - "integrity": "sha512-D3+H4BiopDkhUKvKkZTPPJ53voqOkfMuk3r7YZNcLtXGLkchjjukC4056lNo7B0DzjBgowTYsQM3JjKnYNIYeg==", + "agentkeepalive": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", + "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", "dev": true, "requires": { - "core-js": "^2.5.7" + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" }, "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, - "@sinonjs/commons": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", - "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", "dev": true, "requires": { - "type-detect": "4.0.8" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" } }, - "@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "dev": true, "requires": { - "@sinonjs/commons": "^1.7.0" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "@sinonjs/formatio": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-5.0.1.tgz", - "integrity": "sha512-KaiQ5pBf1MpS09MuA0kp6KBQt2JUOQycqVG1NZXvzeaXe5LGFqAKueIS0bw4w0P9r7KuBSVdUk5QjXsUdu2CxQ==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1", - "@sinonjs/samsam": "^5.0.2" - } + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true }, - "@sinonjs/samsam": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.1.0.tgz", - "integrity": "sha512-42nyaQOVunX5Pm6GRJobmzbS7iLI+fhERITnETXzzwDZh+TtDr/Au3yAvXVjFmZ4wEUaE4Y3NFZfKv0bV0cbtg==", + "ansi-escapes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", + "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", "dev": true, "requires": { - "@sinonjs/commons": "^1.6.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" + "type-fest": "^0.8.1" } }, - "@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", - "dev": true - }, - "@types/chai": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.4.tgz", - "integrity": "sha512-7qvf9F9tMTzo0akeswHPGqgUx/gIaJqrOEET/FCD8CFRkSUHlygQiM5yB6OvjrtdxBVLSyw7COJubsFYs0683g==", + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, - "@types/chai-as-promised": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.2.tgz", - "integrity": "sha512-PO2gcfR3Oxa+u0QvECLe1xKXOqYTzCmWf0FhLhjREoW3fPAVamjihL7v1MOVLJLsnAMdLcjkfrs01yvDMwVK4Q==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "@types/chai": "*" - } - }, - "@types/chrome": { - "version": "0.0.115", - "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.115.tgz", - "integrity": "sha512-pNoYoYgGuI1/kiz53kjrXrKIjn2H8YWOI+vxVTOubX6arCHk/m/jInoyflKiP2qZHZf8+P+hh6d2y9tjaG4BPQ==", - "requires": { - "@types/filesystem": "*", - "@types/har-format": "*" + "color-convert": "^1.9.0" } }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", + "any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==", "dev": true }, - "@types/filesystem": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.29.tgz", - "integrity": "sha512-85/1KfRedmfPGsbK8YzeaQUyV1FQAvMPMTuWFQ5EkLd2w7szhNO96bk3Rh/SKmOfd9co2rCLf0Voy4o7ECBOvw==", + "append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, "requires": { - "@types/filewriter": "*" + "default-require-extensions": "^3.0.0" } }, - "@types/filewriter": { - "version": "0.0.28", - "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.28.tgz", - "integrity": "sha1-wFTor02d11205jq8dviFFocU1LM=" - }, - "@types/har-format": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.4.tgz", - "integrity": "sha512-iUxzm1meBm3stxUMzRqgOVHjj4Kgpgu5w9fm4X7kPRfSgVRzythsucEN7/jtOo8SQzm+HfcxWWzJS0mJDH/3DQ==" - }, - "@types/json-schema": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", - "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==", - "dev": true - }, - "@types/libsodium-wrappers": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.7.tgz", - "integrity": "sha512-Li91pVKcLvQJK3ZolwCPo85oxf2gKBCApgnesRxYg4OVYchLXcJB2eivX8S87vfQVv6ZRnyCO1lLDosZGJfpRg==" - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "@types/mocha": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-7.0.2.tgz", - "integrity": "sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==", - "dev": true - }, - "@types/node": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.1.tgz", - "integrity": "sha512-FAYBGwC+W6F9+huFIDtn43cpy7+SzG+atzRiTfdp3inUKL2hXnd4rG8hylJLIh4+hqrQy1P17kvJByE/z825hA==", + "aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", "dev": true }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, - "@types/sinon": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-9.0.5.tgz", - "integrity": "sha512-4CnkGdM/5/FXDGqL32JQ1ttVrGvhOoesLLF7VnTh4KdjK5N5VQOtxaylFqqTjnHx55MnD9O02Nbk5c1ELC8wlQ==", + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "requires": { - "@types/sinonjs__fake-timers": "*" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, - "@types/sinonjs__fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz", - "integrity": "sha512-yYezQwGWty8ziyYLdZjwxyMb0CZR49h8JALHGrxjQHWlqGgc8kLdHEgWrgL0uZ29DMvEVBDnHU2Wg36zKSIUtA==", + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, - "@types/yauzl": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz", - "integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==", + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "optional": true, "requires": { - "@types/node": "*" + "sprintf-js": "~1.0.2" } }, - "@typescript-eslint/eslint-plugin": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.33.0.tgz", - "integrity": "sha512-QV6P32Btu1sCI/kTqjTNI/8OpCYyvlGjW5vD8MpTIg+HGE5S88HtT1G+880M4bXlvXj/NjsJJG0aGcVh0DdbeQ==", + "array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "dev": true + }, + "array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", + "dev": true + }, + "array-includes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "2.33.0", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "tsutils": "^3.17.1" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "string.prototype.trimleft": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" + } + }, + "string.prototype.trimright": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" + } + } } }, - "@typescript-eslint/eslint-plugin-tslint": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-2.33.0.tgz", - "integrity": "sha512-DXy14tWbs4NVMv/1ADDLfh9jy8ZloZHTuIKEE1Ufs7OGvAu6Ft5Rw7G1RsgfykEENSqy32Mycj5Q6jxN7AXmNA==", + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array.prototype.flat": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", + "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "2.33.0", - "lodash": "^4.17.15" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "string.prototype.trimleft": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" + } + }, + "string.prototype.trimright": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" + } + } } }, - "@typescript-eslint/experimental-utils": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.33.0.tgz", - "integrity": "sha512-qzPM2AuxtMrRq78LwyZa8Qn6gcY8obkIrBs1ehqmQADwkYzTE1Pb4y2W+U3rE/iFkSWcWHG2LS6MJfj6SmHApg==", + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.33.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" + "safer-buffer": "~2.1.0" } }, - "@typescript-eslint/parser": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.33.0.tgz", - "integrity": "sha512-AUtmwUUhJoH6yrtxZMHbRUEMsC2G6z5NSxg9KsROOGqNXasM71I8P2NihtumlWTUCRld70vqIZ6Pm4E5PAziEA==", + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, "requires": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.33.0", - "@typescript-eslint/typescript-estree": "2.33.0", - "eslint-visitor-keys": "^1.1.0" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + } } }, - "@typescript-eslint/typescript-estree": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.33.0.tgz", - "integrity": "sha512-d8rY6/yUxb0+mEwTShCQF2zYQdLlqihukNfG9IUlLYz5y1CH6G/9XYbrxQLq3Z14RNvkCC6oe+OcFlyUpwUbkg==", + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", "dev": true, "requires": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "object-assign": "^4.1.1", + "util": "0.10.3" }, "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "inherits": "2.0.1" } - }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true } } }, - "abab": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz", - "integrity": "sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==", + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, - "acorn": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", - "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true }, - "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, - "acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "requires": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true }, - "acorn-walk": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz", - "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==", + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", "dev": true }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "aws4": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", + "dev": true + }, + "axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "requires": { + "follow-redirects": "^1.10.0" + } + }, + "axios-mock-adapter": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.18.2.tgz", + "integrity": "sha512-e5aTsPy2Viov22zNpFTlid76W1Scz82pXeEwwCXdtO85LROhHAF8pHF2qDhiyMONLxKyY3lQ+S4UCsKgrlx8Hw==", "dev": true, "requires": { - "debug": "4" + "fast-deep-equal": "^3.1.1", + "is-buffer": "^2.0.3" }, "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true } } }, - "aggregate-error": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", - "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "dev": true, + "base-x": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.7.tgz", + "integrity": "sha512-zAKJGuQPihXW22fkrfOclUUZXM2g92z5GzlSMHxhO6r6Qj+Nm0ccaGNBzDZojzwOMkpjAv4J0fOv1U4go+a4iw==", "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "safe-buffer": "^5.0.1" } }, - "ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", "dev": true }, - "ansi-escapes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", - "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "requires": { - "type-fest": "^0.8.1" + "tweetnacl": "^0.14.3" } }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "before-after-hook": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", + "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", "dev": true }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, - "any-base": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", - "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==", + "bmp-js": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", + "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=", "dev": true }, - "append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { - "default-require-extensions": "^3.0.0" + "fill-range": "^7.0.1" } }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", "dev": true }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "browser-pack": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", + "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "JSONStream": "^1.0.3", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" } }, - "array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, - "array-includes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", - "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "is-string": "^1.0.5" + "resolve": "1.1.7" }, "dependencies": { - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", "dev": true - }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - } - }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - } } } }, - "array.prototype.flat": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", - "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "browserify": { + "version": "16.5.1", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.1.tgz", + "integrity": "sha512-EQX0h59Pp+0GtSRb5rL6OTfrttlzv+uyaUVlK6GX3w11SQ0jKPKyjC/54RhPR2ib2KmfcELM06e8FxcI5XNU2A==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^1.11.0", + "browserify-zlib": "~0.2.0", + "buffer": "~5.2.1", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.0", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^2.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.0.0", + "JSONStream": "^1.0.3", + "labeled-stream-splicer": "^2.0.0", + "mkdirp-classic": "^0.5.2", + "module-deps": "^6.0.0", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "~0.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^2.0.0", + "stream-http": "^3.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.10.1", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" }, "dependencies": { - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "dev": true, "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "events": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", + "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", "dev": true }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "stream-http": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", + "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" + "process": "~0.11.0" } + }, + "tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true } } }, - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, "requires": { - "safer-buffer": "~2.1.0" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, "requires": { - "bn.js": "^4.0.0", + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" }, "dependencies": { "bn.js": { @@ -11783,802 +19433,814 @@ } } }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "browserify-sign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.1.0.tgz", + "integrity": "sha512-VYxo7cDCeYUoBZ0ZCy4UyEUCP3smyBd4DRQM5nrFS1jJjPJjX7rP3oLRpPoWfkhQfyJ0I9ZbHbKafrFD/SGlrg==", "dev": true, "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.2", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0" }, "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { - "inherits": "2.0.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } } } }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "requires": { + "base-x": "^3.0.2" + } }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", "dev": true }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", "dev": true }, - "aws4": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, - "axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", - "requires": { - "follow-redirects": "^1.10.0" - } - }, - "axios-mock-adapter": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.18.2.tgz", - "integrity": "sha512-e5aTsPy2Viov22zNpFTlid76W1Scz82pXeEwwCXdtO85LROhHAF8pHF2qDhiyMONLxKyY3lQ+S4UCsKgrlx8Hw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "is-buffer": "^2.0.3" - }, - "dependencies": { - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - } - } + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, - "base-x": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.7.tgz", - "integrity": "sha512-zAKJGuQPihXW22fkrfOclUUZXM2g92z5GzlSMHxhO6r6Qj+Nm0ccaGNBzDZojzwOMkpjAv4J0fOv1U4go+a4iw==", - "requires": { - "safe-buffer": "^5.0.1" - } + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", "dev": true }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } + "byline": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", + "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=", + "dev": true }, - "bignumber.js": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", - "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" + "byte-size": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-7.0.1.tgz", + "integrity": "sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A==", + "dev": true }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "cacache": { + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.2.0.tgz", + "integrity": "sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw==", "dev": true, "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dev": true, "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true } } }, - "bmp-js": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", - "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=", - "dev": true - }, - "bn.js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA==", + "cached-path-relative": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz", + "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==", "dev": true }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", "dev": true, "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" } }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-pack": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", - "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, "requires": { - "combine-source-map": "~0.8.0", - "defined": "^1.0.0", - "JSONStream": "^1.0.3", - "safe-buffer": "^5.1.1", - "through2": "^2.0.0", - "umd": "^3.0.0" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" } }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" } }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, - "browserify": { - "version": "16.5.1", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.1.tgz", - "integrity": "sha512-EQX0h59Pp+0GtSRb5rL6OTfrttlzv+uyaUVlK6GX3w11SQ0jKPKyjC/54RhPR2ib2KmfcELM06e8FxcI5XNU2A==", + "chai": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assert": "^1.4.0", - "browser-pack": "^6.0.1", - "browser-resolve": "^1.11.0", - "browserify-zlib": "~0.2.0", - "buffer": "~5.2.1", - "cached-path-relative": "^1.0.0", - "concat-stream": "^1.6.0", - "console-browserify": "^1.1.0", - "constants-browserify": "~1.0.0", - "crypto-browserify": "^3.0.0", - "defined": "^1.0.0", - "deps-sort": "^2.0.0", - "domain-browser": "^1.2.0", - "duplexer2": "~0.1.2", - "events": "^2.0.0", - "glob": "^7.1.0", - "has": "^1.0.0", - "htmlescape": "^1.1.0", - "https-browserify": "^1.0.0", - "inherits": "~2.0.1", - "insert-module-globals": "^7.0.0", - "JSONStream": "^1.0.3", - "labeled-stream-splicer": "^2.0.0", - "mkdirp-classic": "^0.5.2", - "module-deps": "^6.0.0", - "os-browserify": "~0.3.0", - "parents": "^1.0.1", - "path-browserify": "~0.0.0", - "process": "~0.11.0", - "punycode": "^1.3.2", - "querystring-es3": "~0.2.0", - "read-only-stream": "^2.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.1.4", - "shasum": "^1.0.0", - "shell-quote": "^1.6.1", - "stream-browserify": "^2.0.0", - "stream-http": "^3.0.0", - "string_decoder": "^1.1.1", - "subarg": "^1.0.0", - "syntax-error": "^1.1.1", - "through2": "^2.0.0", - "timers-browserify": "^1.0.1", - "tty-browserify": "0.0.1", - "url": "~0.11.0", - "util": "~0.10.1", - "vm-browserify": "^1.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "events": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", - "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", - "dev": true - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "stream-http": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", - "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + } + }, + "chai-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "dev": true, + "requires": { + "check-error": "^1.0.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "process": "~0.11.0" + "has-flag": "^3.0.0" } - }, - "tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true } } }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", "inherits": "^2.0.1", "safe-buffer": "^5.0.1" } }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "restore-cursor": "^3.1.0" } }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" }, "dependencies": { - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } } } }, - "browserify-sign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.1.0.tgz", - "integrity": "sha512-VYxo7cDCeYUoBZ0ZCy4UyEUCP3smyBd4DRQM5nrFS1jJjPJjX7rP3oLRpPoWfkhQfyJ0I9ZbHbKafrFD/SGlrg==", + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.2", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0" + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" }, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "isobject": "^3.0.1" } } } }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "cmd-shim": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-4.1.0.tgz", + "integrity": "sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw==", "dev": true, "requires": { - "pako": "~1.0.5" - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "requires": { - "base-x": "^3.0.2" + "mkdirp-infer-owner": "^2.0.0" } }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "color-name": "1.1.3" } }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "buffer-equal": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", - "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true + "columnify": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", + "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", + "dev": true, + "requires": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true + "combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "dev": true, + "requires": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" + }, + "dependencies": { + "convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", + "dev": true + }, + "lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", + "dev": true + } + } }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "cached-path-relative": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz", - "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==", + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, - "caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", "dev": true, "requires": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" }, "dependencies": { - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, "requires": { - "semver": "^6.0.0" + "is-obj": "^2.0.0" } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true } } }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", "dev": true }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, - "chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, "requires": { - "check-error": "^1.0.2" + "ini": "^1.3.4", + "proto-list": "~1.2.1" } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, + "conventional-changelog-angular": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz", + "integrity": "sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "compare-func": "^2.0.0", + "q": "^1.5.1" + } + }, + "conventional-changelog-core": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.3.tgz", + "integrity": "sha512-MwnZjIoMRL3jtPH5GywVNqetGILC7g6RQFvdb8LRU/fA/338JbeWAku3PZ8yQ+mtVRViiISqJlb0sOz0htBZig==", + "dev": true, + "requires": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-parser": "^3.2.0", + "dateformat": "^3.0.0", + "get-pkg-repo": "^4.0.0", + "git-raw-commits": "^2.0.8", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^4.1.1", + "lodash": "^4.17.15", + "normalize-package-data": "^3.0.0", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "through2": "^4.0.0" }, "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "lru-cache": "^6.0.0" + } + }, + "normalize-package-data": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz", + "integrity": "sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "resolve": "^1.20.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "requires": { + "readable-stream": "3" } } } }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "conventional-changelog-preset-loader": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", + "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", "dev": true }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "conventional-changelog-writer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.0.tgz", + "integrity": "sha512-HnDh9QHLNWfL6E1uHz6krZEQOgm8hN7z/m7tT16xwd802fwgMN0Wqd7AQYVkhpsjDUx/99oo+nGgvKF657XP5g==", + "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.6", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "requires": { + "readable-stream": "3" + } + } } }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "conventional-commits-filter": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", + "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", "dev": true, "requires": { - "restore-cursor": "^3.1.0" + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" } }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "conventional-commits-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.1.tgz", + "integrity": "sha512-OG9kQtmMZBJD/32NEw5IhN5+HnBqVjy03eC+I71I0oQRFA5rOgA4OtPOYG7mz1GkCfCNxn3gKIX8EiHJYuf1cA==", "dev": true, "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0", + "trim-off-newlines": "^1.0.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "readable-stream": "3" } } } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, - "combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "conventional-recommended-bump": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", + "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", "dev": true, "requires": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.6.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.5.3" + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^2.3.4", + "conventional-commits-filter": "^2.0.7", + "conventional-commits-parser": "^3.2.0", + "git-raw-commits": "^2.0.8", + "git-semver-tags": "^4.1.1", + "meow": "^8.0.0", + "q": "^1.5.1" }, "dependencies": { - "convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", - "dev": true + "concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } }, - "lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", - "dev": true + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } } } }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "compare-versions": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true - }, "convert-source-map": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", @@ -12602,6 +20264,19 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, "create-ecdh": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", @@ -12647,9 +20322,9 @@ } }, "cross-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", - "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { "path-key": "^3.1.0", @@ -12657,12 +20332,6 @@ "which": "^2.0.1" }, "dependencies": { - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -12731,6 +20400,12 @@ } } }, + "dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "dev": true + }, "dash-ast": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", @@ -12757,6 +20432,12 @@ "whatwg-url": "^8.0.0" } }, + "dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true + }, "debug": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", @@ -12766,18 +20447,54 @@ "ms": "^2.1.1" } }, + "debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true + }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + } + } + }, "decimal.js": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz", "integrity": "sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw==", "dev": true }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true + }, "deep-eql": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", @@ -12810,6 +20527,15 @@ } } }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -12831,6 +20557,24 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "dev": true + }, "deps-sort": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", @@ -12853,6 +20597,12 @@ "minimalistic-assert": "^1.0.0" } }, + "detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true + }, "detective": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", @@ -12878,6 +20628,16 @@ "integrity": "sha512-33idhm54QJzf3Q7QofMgCvIVSd2o9H3kQPWaKT/fhoZh+digc+WSiMhbkeG3iN79WY4Hwr9G05NpbhEVrsOYAg==", "dev": true }, + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", @@ -12903,6 +20663,15 @@ } } }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -12941,6 +20710,21 @@ } } }, + "dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, "duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", @@ -12989,6 +20773,28 @@ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -12998,6 +20804,24 @@ "once": "^1.4.0" } }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true + }, + "envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true + }, + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -13042,6 +20866,12 @@ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -13194,17 +21024,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "cross-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", - "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -13229,33 +21048,12 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, "semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -13270,23 +21068,14 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { - "isexe": "^2.0.0" + "has-flag": "^4.0.0" } } } @@ -13324,15 +21113,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true - }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } } } }, @@ -13654,6 +21434,12 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, "evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", @@ -13664,6 +21450,31 @@ "safe-buffer": "^5.1.1" } }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + } + } + }, "exif-parser": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", @@ -13728,6 +21539,19 @@ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, + "fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", @@ -13746,6 +21570,15 @@ "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", "dev": true }, + "fastq": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.1.tgz", + "integrity": "sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -13785,6 +21618,21 @@ "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==", "dev": true }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha1-mzERErxsYSehbgFsbF1/GeCAXFs=", + "dev": true + }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", @@ -13890,6 +21738,27 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -13908,6 +21777,65 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, "gensync": { "version": "1.0.0-beta.1", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", @@ -13932,28 +21860,269 @@ "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-pkg-repo": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.1.2.tgz", + "integrity": "sha512-/FjamZL9cBYllEbReZkxF2IMh80d8TJoC4e3bmLNif8ibHw95aj0N/tzqK0kZz9eU/3w3dL6lF4fnnX/sDdW3A==", + "dev": true, + "requires": { + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "meow": "^7.0.0", + "through2": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "meow": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-7.1.1.tgz", + "integrity": "sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^2.5.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.13.1", + "yargs-parser": "^18.1.3" + }, + "dependencies": { + "type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true + } + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "dev": true + }, + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "dev": true + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "git-raw-commits": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.10.tgz", + "integrity": "sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ==", + "dev": true, + "requires": { + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "requires": { + "readable-stream": "3" + } + } + } + }, + "git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", + "dev": true, + "requires": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "git-semver-tags": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", + "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", + "dev": true, + "requires": { + "meow": "^8.0.0", + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "git-up": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.5.tgz", + "integrity": "sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA==", + "dev": true, + "requires": { + "is-ssh": "^1.3.0", + "parse-url": "^6.0.0" + } }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "git-url-parse": { + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.5.0.tgz", + "integrity": "sha512-TZYSMDeM37r71Lqg1mbnMlOqlHd7BSij9qN7XwTkRqSAYFMihGLGhfHwgqQob3GUhEneKnV4nskN9rbQw2KGxA==", "dev": true, "requires": { - "pump": "^3.0.0" + "git-up": "^4.0.0" } }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "ini": "^1.3.2" } }, "glob": { @@ -13971,9 +22140,9 @@ } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -13985,6 +22154,28 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, + "globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "dependencies": { + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + } + } + }, "graceful-fs": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", @@ -14034,6 +22225,12 @@ "har-schema": "^2.0.0" } }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -14067,9 +22264,15 @@ "dev": true }, "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true }, "hash-base": { @@ -14099,14 +22302,6 @@ "requires": { "is-stream": "^2.0.0", "type-fest": "^0.8.0" - }, - "dependencies": { - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - } } }, "he": { @@ -14153,6 +22348,40 @@ "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", "dev": true }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -14197,6 +22426,21 @@ } } }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, "husky": { "version": "4.2.5", "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.5.tgz", @@ -14235,12 +22479,6 @@ "supports-color": "^7.1.0" } }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -14275,30 +22513,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "parse-json": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", - "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1", - "lines-and-columns": "^1.1.6" - } - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", @@ -14331,6 +22545,15 @@ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, + "ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, "import-fresh": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", @@ -14341,6 +22564,16 @@ "resolve-from": "^4.0.0" } }, + "import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -14353,6 +22586,12 @@ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -14368,6 +22607,39 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "init-package-json": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-2.0.3.tgz", + "integrity": "sha512-tk/gAgbMMxR6fn1MgMaM1HpU1ryAmBWWitnxG5OhuNXeX0cbpbgV5jA4AIpQJVNoyOfOevTtO6WX+rPs+EFqaQ==", + "dev": true, + "requires": { + "glob": "^7.1.1", + "npm-package-arg": "^8.1.2", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "^3.0.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^3.0.0" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, "inline-source-map": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", @@ -14378,21 +22650,21 @@ } }, "inquirer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", - "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", + "chalk": "^4.1.0", "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", + "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", - "lodash": "^4.17.15", + "lodash": "^4.17.19", "mute-stream": "0.0.8", "run-async": "^2.4.0", - "rxjs": "^6.5.3", + "rxjs": "^6.6.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" @@ -14405,19 +22677,18 @@ "dev": true }, "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -14478,9 +22749,9 @@ } }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -14520,6 +22791,12 @@ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, "ip-regex": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", @@ -14544,6 +22821,24 @@ "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", "dev": true }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", + "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "is-date-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", @@ -14577,6 +22872,36 @@ "is-extglob": "^2.1.1" } }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true + }, "is-potential-custom-element-name": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", @@ -14592,6 +22917,21 @@ "has": "^1.0.1" } }, + "is-ssh": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.3.tgz", + "integrity": "sha512-NKzJmQzJfEEma3w5cJNcUMxoXfDjz0Zj0eyCalHn2E6VOwlzjZo0yuO2fcBSf8zhFuVCL/82/r5gRcoi6aEPVQ==", + "dev": true, + "requires": { + "protocols": "^1.1.0" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, "is-string": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", @@ -14607,6 +22947,15 @@ "has-symbols": "^1.0.0" } }, + "is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "dev": true, + "requires": { + "text-extensions": "^1.0.0" + } + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -14637,6 +22986,12 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -14693,15 +23048,6 @@ "uuid": "^3.3.3" }, "dependencies": { - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, "p-map": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", @@ -14710,12 +23056,6 @@ "requires": { "aggregate-error": "^3.0.0" } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true } } }, @@ -14736,21 +23076,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", @@ -14914,6 +23239,12 @@ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -14964,6 +23295,16 @@ } } }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, "jsonify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", @@ -15004,6 +23345,12 @@ "integrity": "sha512-ApcjaOdVTJ7y4r08xI5wIqpvwS48Q0PBG4DJROcEkH1f8MdAiNFyFxz3xoL0LWAVwjrwPYZdVHHxhRHcx/uGLA==", "dev": true }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, "labeled-stream-splicer": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", @@ -15014,6 +23361,32 @@ "stream-splicer": "^2.0.0" } }, + "lerna": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/lerna/-/lerna-4.0.0.tgz", + "integrity": "sha512-DD/i1znurfOmNJb0OBw66NmNqiM8kF6uIrzrJ0wGE3VNdzeOhz9ziWLYiRaZDGGwgbcjOo6eIfcx9O5Qynz+kg==", + "dev": true, + "requires": { + "@lerna/add": "4.0.0", + "@lerna/bootstrap": "4.0.0", + "@lerna/changed": "4.0.0", + "@lerna/clean": "4.0.0", + "@lerna/cli": "4.0.0", + "@lerna/create": "4.0.0", + "@lerna/diff": "4.0.0", + "@lerna/exec": "4.0.0", + "@lerna/import": "4.0.0", + "@lerna/info": "4.0.0", + "@lerna/init": "4.0.0", + "@lerna/link": "4.0.0", + "@lerna/list": "4.0.0", + "@lerna/publish": "4.0.0", + "@lerna/run": "4.0.0", + "@lerna/version": "4.0.0", + "import-local": "^3.0.2", + "npmlog": "^4.1.2" + } + }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -15024,6 +23397,141 @@ "type-check": "~0.4.0" } }, + "libnpmaccess": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-4.0.3.tgz", + "integrity": "sha512-sPeTSNImksm8O2b6/pf3ikv4N567ERYEpeKRPSmqlNt1dTZbvgpJIzg5vAhXHpw2ISBsELFRelk0jEahj1c6nQ==", + "dev": true, + "requires": { + "aproba": "^2.0.0", + "minipass": "^3.1.1", + "npm-package-arg": "^8.1.2", + "npm-registry-fetch": "^11.0.0" + }, + "dependencies": { + "make-fetch-happen": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.0.4.tgz", + "integrity": "sha512-sQWNKMYqSmbAGXqJg2jZ+PmHh5JAybvwu0xM8mZR/bsTjGiTASj3ldXJV7KFHy1k/IJIBkjxQFoWIVsv9+PQMg==", + "dev": true, + "requires": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" + } + }, + "npm-registry-fetch": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", + "dev": true, + "requires": { + "make-fetch-happen": "^9.0.1", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + } + } + } + }, + "libnpmpublish": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-4.0.2.tgz", + "integrity": "sha512-+AD7A2zbVeGRCFI2aO//oUmapCwy7GHqPXFJh3qpToSRNU+tXKJ2YFUgjt04LPPAf2dlEH95s6EhIHM1J7bmOw==", + "dev": true, + "requires": { + "normalize-package-data": "^3.0.2", + "npm-package-arg": "^8.1.2", + "npm-registry-fetch": "^11.0.0", + "semver": "^7.1.3", + "ssri": "^8.0.1" + }, + "dependencies": { + "hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "make-fetch-happen": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.0.4.tgz", + "integrity": "sha512-sQWNKMYqSmbAGXqJg2jZ+PmHh5JAybvwu0xM8mZR/bsTjGiTASj3ldXJV7KFHy1k/IJIBkjxQFoWIVsv9+PQMg==", + "dev": true, + "requires": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" + } + }, + "normalize-package-data": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz", + "integrity": "sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "resolve": "^1.20.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-registry-fetch": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", + "dev": true, + "requires": { + "make-fetch-happen": "^9.0.1", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, "libsodium": { "version": "0.7.8", "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.8.tgz", @@ -15059,6 +23567,32 @@ "xtend": "^4.0.0" } }, + "load-json-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", + "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "parse-json": "^5.0.0", + "strip-bom": "^4.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -15075,6 +23609,12 @@ "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, "lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", @@ -15087,12 +23627,31 @@ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", "dev": true }, + "lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0" + } + }, "log-symbols": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", @@ -15102,18 +23661,73 @@ "chalk": "^2.4.2" } }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, "lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", "dev": true }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, + "make-fetch-happen": { + "version": "8.0.14", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", + "integrity": "sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==", + "dev": true, + "requires": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.0.5", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" + } + }, + "map-obj": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", + "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==", + "dev": true + }, "marked": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/marked/-/marked-2.0.1.tgz", @@ -15130,12 +23744,188 @@ "safe-buffer": "^5.1.2" } }, + "meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "normalize-package-data": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz", + "integrity": "sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "resolve": "^1.20.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, "miller-rabin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", @@ -15190,6 +23980,12 @@ "dom-walk": "^0.1.0" } }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -15217,6 +24013,102 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "dependencies": { + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + } + } + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-fetch": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.4.tgz", + "integrity": "sha512-TielGogIzbUEtd1LsjZFs47RWuHHfhl6TiCx1InVxApBAmQ8bL0dL5ilkLGcRvuyW/A9nE+Lvn855Ewz8S0PnQ==", + "dev": true, + "requires": { + "encoding": "^0.1.12", + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "requires": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", @@ -15232,6 +24124,31 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "dev": true }, + "mkdirp-infer-owner": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", + "integrity": "sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "infer-owner": "^1.0.4", + "mkdirp": "^1.0.3" + }, + "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, "mocha": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.2.tgz", @@ -15280,15 +24197,6 @@ "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", "dev": true }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, "chokidar": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", @@ -15305,15 +24213,6 @@ "readdirp": "~3.2.0" } }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, "fsevents": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", @@ -15330,12 +24229,6 @@ "binary-extensions": "^2.0.0" } }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", @@ -15359,18 +24252,15 @@ "requires": { "picomatch": "^2.0.4" } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } } } }, + "modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "dev": true + }, "module-deps": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.2.tgz", @@ -15414,17 +24304,9 @@ "requires": { "@types/minimatch": "^3.0.3", "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - } + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" } }, "mute-stream": { @@ -15439,6 +24321,12 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, "neo-async": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", @@ -15491,6 +24379,99 @@ "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", "dev": true }, + "node-gyp": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.1.tgz", + "integrity": "sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw==", + "dev": true, + "requires": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.1.2", + "request": "^2.88.0", + "rimraf": "^2.6.3", + "semver": "^5.7.1", + "tar": "^4.4.12", + "which": "^1.3.1" + }, + "dependencies": { + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "tar": { + "version": "4.4.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.15.tgz", + "integrity": "sha512-ItbufpujXkry7bHH9NpQyTXPbJ72iTlXgkBAYsAjDXk3Ds8t/3NfO5P4xZGy7u+sYuQUbimgzswX4uQIEeNVOA==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, "node-preload": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", @@ -15500,6 +24481,16 @@ "process-on-spawn": "^1.0.0" } }, + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -15518,6 +24509,188 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true + }, + "npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "dev": true, + "requires": { + "semver": "^7.1.1" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "npm-lifecycle": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz", + "integrity": "sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g==", + "dev": true, + "requires": { + "byline": "^5.0.0", + "graceful-fs": "^4.1.15", + "node-gyp": "^5.0.2", + "resolve-from": "^4.0.0", + "slide": "^1.1.6", + "uid-number": "0.0.6", + "umask": "^1.1.0", + "which": "^1.3.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "npm-package-arg": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "semver": "^7.3.4", + "validate-npm-package-name": "^3.0.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "npm-packlist": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz", + "integrity": "sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==", + "dev": true, + "requires": { + "glob": "^7.1.6", + "ignore-walk": "^3.0.3", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "dependencies": { + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "npm-pick-manifest": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", + "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", + "dev": true, + "requires": { + "npm-install-checks": "^4.0.0", + "npm-normalize-package-bin": "^1.0.1", + "npm-package-arg": "^8.1.2", + "semver": "^7.3.4" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "npm-registry-fetch": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz", + "integrity": "sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA==", + "dev": true, + "requires": { + "@npmcli/ci-detect": "^1.0.0", + "lru-cache": "^6.0.0", + "make-fetch-happen": "^8.0.9", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, "nwsapi": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", @@ -15656,15 +24829,6 @@ "p-locate": "^4.1.0" } }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, "p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", @@ -15695,12 +24859,6 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", @@ -15776,9 +24934,9 @@ "dev": true }, "object-inspect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", - "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", "dev": true }, "object-keys": { @@ -15851,12 +25009,6 @@ "is-symbol": "^1.0.2" } }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, "is-callable": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", @@ -15872,12 +25024,6 @@ "has": "^1.0.3" } }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true - }, "string.prototype.trimleft": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", @@ -15916,9 +25062,9 @@ } }, "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { "mimic-fn": "^2.1.0" @@ -15985,12 +25131,34 @@ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, "p-limit": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", @@ -16009,12 +25177,67 @@ "p-limit": "^2.0.0" } }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-map-series": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz", + "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==", + "dev": true + }, + "p-pipe": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", + "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", + "dev": true + }, + "p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + } + }, + "p-reduce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", + "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", + "dev": true + }, + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, + "p-waterfall": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz", + "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==", + "dev": true, + "requires": { + "p-reduce": "^2.0.0" + } + }, "package-hash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", @@ -16027,6 +25250,85 @@ "release-zalgo": "^1.0.0" } }, + "pacote": { + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.3.5.tgz", + "integrity": "sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg==", + "dev": true, + "requires": { + "@npmcli/git": "^2.1.0", + "@npmcli/installed-package-contents": "^1.0.6", + "@npmcli/promise-spawn": "^1.2.0", + "@npmcli/run-script": "^1.8.2", + "cacache": "^15.0.5", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "minipass": "^3.1.3", + "mkdirp": "^1.0.3", + "npm-package-arg": "^8.0.1", + "npm-packlist": "^2.1.4", + "npm-pick-manifest": "^6.0.0", + "npm-registry-fetch": "^11.0.0", + "promise-retry": "^2.0.1", + "read-package-json-fast": "^2.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.1.0" + }, + "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "make-fetch-happen": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.0.4.tgz", + "integrity": "sha512-sQWNKMYqSmbAGXqJg2jZ+PmHh5JAybvwu0xM8mZR/bsTjGiTASj3ldXJV7KFHy1k/IJIBkjxQFoWIVsv9+PQMg==", + "dev": true, + "requires": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "npm-registry-fetch": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", + "dev": true, + "requires": { + "make-fetch-happen": "^9.0.1", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + } + } + } + }, "pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -16093,6 +25395,42 @@ "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==", "dev": true }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse-path": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.3.tgz", + "integrity": "sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA==", + "dev": true, + "requires": { + "is-ssh": "^1.3.0", + "protocols": "^1.4.0", + "qs": "^6.9.4", + "query-string": "^6.13.8" + } + }, + "parse-url": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.0.tgz", + "integrity": "sha512-cYyojeX7yIIwuJzledIHeLUBVJ6COVLeT4eF+2P6aKVzwvgKQPndCBv3+yQ7pcWjqToYwaligxzSYNNmGoMAvw==", + "dev": true, + "requires": { + "is-ssh": "^1.3.0", + "normalize-url": "^6.1.0", + "parse-path": "^4.0.0", + "protocols": "^1.4.0" + } + }, "parse5": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", @@ -16127,6 +25465,12 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, "path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", @@ -16139,6 +25483,12 @@ "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", "dev": true }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, "pathval": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", @@ -16176,10 +25526,16 @@ "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==", "dev": true }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true + }, + "pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", "dev": true }, "pixelmatch": { @@ -16277,17 +25633,6 @@ "multimatch": "^4.0.0" }, "dependencies": { - "cross-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", - "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, "execa": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz", @@ -16321,12 +25666,6 @@ "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", "dev": true }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -16365,36 +25704,6 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -16425,6 +25734,43 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "requires": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + } + }, + "promzard": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", + "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", + "dev": true, + "requires": { + "read": "1" + } + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true + }, + "protocols": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz", + "integrity": "sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==", + "dev": true + }, "proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -16528,11 +25874,38 @@ "path": "^0.12.7" } }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, "qrcode-generator": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz", "integrity": "sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==" }, + "qs": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", + "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "query-string": { + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", + "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", + "dev": true, + "requires": { + "decode-uri-component": "^0.2.0", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + } + }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -16545,6 +25918,18 @@ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -16564,6 +25949,21 @@ "safe-buffer": "^5.1.0" } }, + "read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "dev": true, + "requires": { + "mute-stream": "~0.0.4" + } + }, + "read-cmd-shim": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz", + "integrity": "sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw==", + "dev": true + }, "read-only-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", @@ -16573,6 +25973,190 @@ "readable-stream": "^2.0.2" } }, + "read-package-json": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-3.0.1.tgz", + "integrity": "sha512-aLcPqxovhJTVJcsnROuuzQvv6oziQx4zd3JvG0vGCL5MjTONUc4uJ90zCBC6R7W7oUKBNoR/F8pkyfVwlbxqng==", + "dev": true, + "requires": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^3.0.0", + "npm-normalize-package-bin": "^1.0.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "normalize-package-data": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz", + "integrity": "sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "resolve": "^1.20.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "read-package-json-fast": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", + "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", + "dev": true, + "requires": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "read-package-tree": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", + "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", + "dev": true, + "requires": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + }, + "dependencies": { + "read-package-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "dev": true, + "requires": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + } + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "dependencies": { + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + } + } + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -16596,6 +26180,18 @@ } } }, + "readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", @@ -16605,6 +26201,16 @@ "resolve": "^1.1.6" } }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, "regenerator-runtime": { "version": "0.13.7", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", @@ -16713,14 +26319,32 @@ } }, "resolve": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", - "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "requires": { + "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -16737,6 +26361,18 @@ "signal-exit": "^3.0.2" } }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -16761,10 +26397,19 @@ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, "rxjs": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", - "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -16829,6 +26474,15 @@ "safe-buffer": "^5.0.1" } }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, "shasum": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", @@ -16875,10 +26529,21 @@ "vscode-textmate": "^5.2.0" } }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, "simple-concat": { @@ -16925,6 +26590,12 @@ } } }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, "slice-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", @@ -16936,12 +26607,79 @@ "is-fullwidth-code-point": "^2.0.0" } }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "dev": true + }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "dev": true + }, + "socks": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", + "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "dev": true, + "requires": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", + "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", + "dev": true, + "requires": { + "agent-base": "^6.0.2", + "debug": "4", + "socks": "^2.3.3" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, "sonar-scanner": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/sonar-scanner/-/sonar-scanner-3.1.0.tgz", "integrity": "sha1-UcHBEB9UuYq8XYVlIJsdkjKXk0M=", "dev": true }, + "sort-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz", + "integrity": "sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==", + "dev": true, + "requires": { + "is-plain-obj": "^2.0.0" + }, + "dependencies": { + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + } + } + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -16980,21 +26718,6 @@ "which": "^2.0.1" }, "dependencies": { - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -17038,6 +26761,43 @@ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", "dev": true }, + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "requires": { + "through": "2" + } + }, + "split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "dev": true + }, + "split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "requires": { + "readable-stream": "^3.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -17061,6 +26821,15 @@ "tweetnacl": "~0.14.0" } }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, "static-server": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/static-server/-/static-server-2.2.1.tgz", @@ -17152,6 +26921,12 @@ "readable-stream": "^2.0.2" } }, + "strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=", + "dev": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -17219,12 +26994,6 @@ "is-symbol": "^1.0.2" } }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, "is-callable": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", @@ -17240,12 +27009,6 @@ "has": "^1.0.3" } }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true - }, "string.prototype.trimleft": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", @@ -17330,12 +27093,6 @@ "is-symbol": "^1.0.2" } }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, "is-callable": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", @@ -17351,12 +27108,6 @@ "has": "^1.0.3" } }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true - }, "string.prototype.trimleft": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", @@ -17402,12 +27153,32 @@ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, + "strong-log-transformer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", + "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "minimist": "^1.2.0", + "through": "^2.3.4" + } + }, "subarg": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", @@ -17489,6 +27260,34 @@ } } }, + "tar": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.2.tgz", + "integrity": "sha512-EwKEgqJ7nJoS+s8QfLYVGMDmAsj+StbI2AM/RTHeUSsOw6Z8bwNBRv5z3CY0m7laC5qUAqruLX5AhMuc5deY3Q==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, "tar-fs": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", @@ -17527,6 +27326,25 @@ } } }, + "temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=", + "dev": true + }, + "temp-write": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/temp-write/-/temp-write-4.0.0.tgz", + "integrity": "sha512-HIeWmj77uOOHb0QX7siN3OtwV3CTntquin6TNVg6SHOqCP3hYKmox90eeFOGaY1MqJ9WYDDjkyZrW6qS5AWpbw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "is-stream": "^2.0.0", + "make-dir": "^3.0.0", + "temp-dir": "^1.0.0", + "uuid": "^3.3.2" + } + }, "test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -17554,6 +27372,12 @@ } } }, + "text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -17603,6 +27427,15 @@ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", @@ -17614,14 +27447,26 @@ } }, "tr46": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", - "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", "dev": true, "requires": { "punycode": "^2.1.1" } }, + "trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true + }, + "trim-off-newlines": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", + "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", + "dev": true + }, "ts-node": { "version": "8.10.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.1.tgz", @@ -17781,39 +27626,11 @@ "typedoc-default-themes": "^0.12.8" }, "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true } } }, @@ -17844,6 +27661,18 @@ "commander": "~2.20.3" } }, + "uid-number": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "dev": true + }, + "umask": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz", + "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=", + "dev": true + }, "umd": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", @@ -17873,6 +27702,42 @@ "xtend": "^4.0.1" } }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "upath": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", + "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", + "dev": true + }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -17932,6 +27797,15 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, + "util-promisify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", + "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, "uuid": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", @@ -17954,6 +27828,15 @@ "spdx-expression-parse": "^3.0.0" } }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -17995,6 +27878,15 @@ "xml-name-validator": "^3.0.0" } }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, "webidl-conversions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", @@ -18017,13 +27909,13 @@ "dev": true }, "whatwg-url": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.2.1.tgz", - "integrity": "sha512-ZmVCr6nfBeaMxEHALLEGy0LszYjpJqf6PVNQUQ1qd9Et+q7Jpygd4rGGDXgHjD8e99yLFseD69msHDM4YwPZ4A==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", "dev": true, "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^2.0.2", + "lodash": "^4.7.0", + "tr46": "^2.1.0", "webidl-conversions": "^6.1.0" } }, @@ -18135,6 +28027,103 @@ "typedarray-to-buffer": "^3.1.5" } }, + "write-json-file": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-4.3.0.tgz", + "integrity": "sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ==", + "dev": true, + "requires": { + "detect-indent": "^6.0.0", + "graceful-fs": "^4.1.15", + "is-plain-obj": "^2.0.0", + "make-dir": "^3.0.0", + "sort-keys": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + } + } + }, + "write-pkg": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-4.0.0.tgz", + "integrity": "sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==", + "dev": true, + "requires": { + "sort-keys": "^2.0.0", + "type-fest": "^0.4.1", + "write-json-file": "^3.2.0" + }, + "dependencies": { + "detect-indent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", + "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", + "dev": true + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "type-fest": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", + "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", + "dev": true + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "write-json-file": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz", + "integrity": "sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==", + "dev": true, + "requires": { + "detect-indent": "^5.0.0", + "graceful-fs": "^4.1.15", + "make-dir": "^2.1.0", + "pify": "^4.0.1", + "sort-keys": "^2.0.0", + "write-file-atomic": "^2.4.2" + } + } + } + }, "ws": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", @@ -18218,14 +28207,17 @@ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "yaml": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.9.2.tgz", - "integrity": "sha512-HPT7cGGI0DuRcsO51qC1j9O16Dh1mZ2bnXwsi0jrSpsLz0WxOLSLXfkABVl6bZO629py3CU+OMJtpNHDLB97kg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.9.2" - } + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true }, "yargs": { "version": "13.3.2", diff --git a/package.json b/package.json index 81d6d41aa..c56d0822e 100644 --- a/package.json +++ b/package.json @@ -74,6 +74,7 @@ "husky": "4.2.5", "jsdom": "16.4.0", "jsdom-global": "3.0.2", + "lerna": "^4.0.0", "mocha": "7.1.2", "nyc": "15.0.1", "prettier": "2.0.5", diff --git a/packages/beacon-core/README.md b/packages/beacon-core/README.md new file mode 100644 index 000000000..6bfa91feb --- /dev/null +++ b/packages/beacon-core/README.md @@ -0,0 +1,11 @@ +# `@airgap/beacon-core` + +> TODO: description + +## Usage + +``` +const beaconCore = require('@airgap/beacon-core'); + +// TODO: DEMONSTRATE API +``` diff --git a/packages/beacon-core/__tests__/beacon-core.test.js b/packages/beacon-core/__tests__/beacon-core.test.js new file mode 100644 index 000000000..49cf95ec4 --- /dev/null +++ b/packages/beacon-core/__tests__/beacon-core.test.js @@ -0,0 +1,7 @@ +'use strict' + +const beaconCore = require('..') + +describe('@airgap/beacon-core', () => { + it('needs tests') +}) diff --git a/packages/beacon-core/lib/beacon-core.js b/packages/beacon-core/lib/beacon-core.js new file mode 100644 index 000000000..32e416b76 --- /dev/null +++ b/packages/beacon-core/lib/beacon-core.js @@ -0,0 +1,7 @@ +'use strict' + +module.exports = beaconCore + +function beaconCore() { + // TODO +} diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json new file mode 100644 index 000000000..054b3f029 --- /dev/null +++ b/packages/beacon-core/package.json @@ -0,0 +1,29 @@ +{ + "name": "@airgap/beacon-core", + "version": "0.0.0", + "description": "> TODO: description", + "author": "Andreas Gassmann ", + "homepage": "https://walletbeacon.io", + "license": "ISC", + "main": "lib/beacon-core.js", + "directories": { + "lib": "lib", + "test": "__tests__" + }, + "files": [ + "lib" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/airgap-it/beacon-sdk.git" + }, + "scripts": { + "test": "echo \"Error: run tests from root\" && exit 1" + }, + "bugs": { + "url": "https://github.com/airgap-it/beacon-sdk/issues" + } +} diff --git a/packages/beacon-core/tsconfig.json b/packages/beacon-core/tsconfig.json new file mode 100644 index 000000000..da67782ff --- /dev/null +++ b/packages/beacon-core/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./lib" + }, + "include": ["./src"] +} diff --git a/packages/beacon-dapp/README.md b/packages/beacon-dapp/README.md new file mode 100644 index 000000000..af3b3b1a1 --- /dev/null +++ b/packages/beacon-dapp/README.md @@ -0,0 +1,11 @@ +# `@airgap/beacon-dapp` + +> TODO: description + +## Usage + +``` +const beaconDapp = require('@airgap/beacon-dapp'); + +// TODO: DEMONSTRATE API +``` diff --git a/packages/beacon-dapp/__tests__/beacon-dapp.test.js b/packages/beacon-dapp/__tests__/beacon-dapp.test.js new file mode 100644 index 000000000..6a4b2a681 --- /dev/null +++ b/packages/beacon-dapp/__tests__/beacon-dapp.test.js @@ -0,0 +1,7 @@ +'use strict' + +const beaconDapp = require('..') + +describe('@airgap/beacon-dapp', () => { + it('needs tests') +}) diff --git a/packages/beacon-dapp/lib/beacon-dapp.js b/packages/beacon-dapp/lib/beacon-dapp.js new file mode 100644 index 000000000..45bf6e4e4 --- /dev/null +++ b/packages/beacon-dapp/lib/beacon-dapp.js @@ -0,0 +1,7 @@ +'use strict' + +module.exports = beaconDapp + +function beaconDapp() { + // TODO +} diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json new file mode 100644 index 000000000..920adc2bc --- /dev/null +++ b/packages/beacon-dapp/package.json @@ -0,0 +1,29 @@ +{ + "name": "@airgap/beacon-dapp", + "version": "0.0.0", + "description": "> TODO: description", + "author": "Andreas Gassmann ", + "homepage": "https://walletbeacon.io", + "license": "ISC", + "main": "lib/beacon-dapp.js", + "directories": { + "lib": "lib", + "test": "__tests__" + }, + "files": [ + "lib" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/airgap-it/beacon-sdk.git" + }, + "scripts": { + "test": "echo \"Error: run tests from root\" && exit 1" + }, + "bugs": { + "url": "https://github.com/airgap-it/beacon-sdk/issues" + } +} diff --git a/packages/beacon-dapp/tsconfig.json b/packages/beacon-dapp/tsconfig.json new file mode 100644 index 000000000..da67782ff --- /dev/null +++ b/packages/beacon-dapp/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./lib" + }, + "include": ["./src"] +} diff --git a/packages/beacon-protocol-substrate/README.md b/packages/beacon-protocol-substrate/README.md new file mode 100644 index 000000000..3b7e2c169 --- /dev/null +++ b/packages/beacon-protocol-substrate/README.md @@ -0,0 +1,11 @@ +# `@airgap/beacon-protocol-substrate` + +> TODO: description + +## Usage + +``` +const beaconProtocolSubstrate = require('@airgap/beacon-protocol-substrate'); + +// TODO: DEMONSTRATE API +``` diff --git a/packages/beacon-protocol-substrate/__tests__/beacon-protocol-substrate.test.js b/packages/beacon-protocol-substrate/__tests__/beacon-protocol-substrate.test.js new file mode 100644 index 000000000..1f5840cda --- /dev/null +++ b/packages/beacon-protocol-substrate/__tests__/beacon-protocol-substrate.test.js @@ -0,0 +1,7 @@ +'use strict' + +const beaconProtocolSubstrate = require('..') + +describe('@airgap/beacon-protocol-substrate', () => { + it('needs tests') +}) diff --git a/packages/beacon-protocol-substrate/lib/beacon-protocol-substrate.js b/packages/beacon-protocol-substrate/lib/beacon-protocol-substrate.js new file mode 100644 index 000000000..c1ce2f96e --- /dev/null +++ b/packages/beacon-protocol-substrate/lib/beacon-protocol-substrate.js @@ -0,0 +1,7 @@ +'use strict' + +module.exports = beaconProtocolSubstrate + +function beaconProtocolSubstrate() { + // TODO +} diff --git a/packages/beacon-protocol-substrate/package.json b/packages/beacon-protocol-substrate/package.json new file mode 100644 index 000000000..e3ddd4522 --- /dev/null +++ b/packages/beacon-protocol-substrate/package.json @@ -0,0 +1,29 @@ +{ + "name": "@airgap/beacon-protocol-substrate", + "version": "0.0.0", + "description": "> TODO: description", + "author": "Andreas Gassmann ", + "homepage": "https://walletbeacon.io", + "license": "ISC", + "main": "lib/beacon-protocol-substrate.js", + "directories": { + "lib": "lib", + "test": "__tests__" + }, + "files": [ + "lib" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/airgap-it/beacon-sdk.git" + }, + "scripts": { + "test": "echo \"Error: run tests from root\" && exit 1" + }, + "bugs": { + "url": "https://github.com/airgap-it/beacon-sdk/issues" + } +} diff --git a/packages/beacon-protocol-substrate/tsconfig.json b/packages/beacon-protocol-substrate/tsconfig.json new file mode 100644 index 000000000..da67782ff --- /dev/null +++ b/packages/beacon-protocol-substrate/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./lib" + }, + "include": ["./src"] +} diff --git a/packages/beacon-protocol-tezos/README.md b/packages/beacon-protocol-tezos/README.md new file mode 100644 index 000000000..069b78997 --- /dev/null +++ b/packages/beacon-protocol-tezos/README.md @@ -0,0 +1,11 @@ +# `@airgap/beacon-protocol-tezos` + +> TODO: description + +## Usage + +``` +const beaconProtocolTezos = require('@airgap/beacon-protocol-tezos'); + +// TODO: DEMONSTRATE API +``` diff --git a/packages/beacon-protocol-tezos/__tests__/beacon-protocol-tezos.test.js b/packages/beacon-protocol-tezos/__tests__/beacon-protocol-tezos.test.js new file mode 100644 index 000000000..8c15b52c8 --- /dev/null +++ b/packages/beacon-protocol-tezos/__tests__/beacon-protocol-tezos.test.js @@ -0,0 +1,7 @@ +'use strict' + +const beaconProtocolTezos = require('..') + +describe('@airgap/beacon-protocol-tezos', () => { + it('needs tests') +}) diff --git a/packages/beacon-protocol-tezos/lib/beacon-protocol-tezos.js b/packages/beacon-protocol-tezos/lib/beacon-protocol-tezos.js new file mode 100644 index 000000000..e1bb81132 --- /dev/null +++ b/packages/beacon-protocol-tezos/lib/beacon-protocol-tezos.js @@ -0,0 +1,7 @@ +'use strict' + +module.exports = beaconProtocolTezos + +function beaconProtocolTezos() { + // TODO +} diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json new file mode 100644 index 000000000..b674fc252 --- /dev/null +++ b/packages/beacon-protocol-tezos/package.json @@ -0,0 +1,29 @@ +{ + "name": "@airgap/beacon-protocol-tezos", + "version": "0.0.0", + "description": "> TODO: description", + "author": "Andreas Gassmann ", + "homepage": "https://walletbeacon.io", + "license": "ISC", + "main": "lib/beacon-protocol-tezos.js", + "directories": { + "lib": "lib", + "test": "__tests__" + }, + "files": [ + "lib" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/airgap-it/beacon-sdk.git" + }, + "scripts": { + "test": "echo \"Error: run tests from root\" && exit 1" + }, + "bugs": { + "url": "https://github.com/airgap-it/beacon-sdk/issues" + } +} diff --git a/packages/beacon-protocol-tezos/tsconfig.json b/packages/beacon-protocol-tezos/tsconfig.json new file mode 100644 index 000000000..da67782ff --- /dev/null +++ b/packages/beacon-protocol-tezos/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./lib" + }, + "include": ["./src"] +} diff --git a/packages/beacon-tezos/README.md b/packages/beacon-tezos/README.md new file mode 100644 index 000000000..78ff31cd4 --- /dev/null +++ b/packages/beacon-tezos/README.md @@ -0,0 +1,11 @@ +# `@airgap/beacon-tezos` + +> TODO: description + +## Usage + +``` +const beaconTezos = require('@airgap/beacon-tezos'); + +// TODO: DEMONSTRATE API +``` diff --git a/packages/beacon-tezos/__tests__/beacon-tezos.test.js b/packages/beacon-tezos/__tests__/beacon-tezos.test.js new file mode 100644 index 000000000..5c8368bfc --- /dev/null +++ b/packages/beacon-tezos/__tests__/beacon-tezos.test.js @@ -0,0 +1,7 @@ +'use strict' + +const beaconTezos = require('..') + +describe('@airgap/beacon-tezos', () => { + it('needs tests') +}) diff --git a/packages/beacon-tezos/lib/beacon-tezos.js b/packages/beacon-tezos/lib/beacon-tezos.js new file mode 100644 index 000000000..6203ae267 --- /dev/null +++ b/packages/beacon-tezos/lib/beacon-tezos.js @@ -0,0 +1,7 @@ +'use strict' + +module.exports = beaconTezos + +function beaconTezos() { + // TODO +} diff --git a/packages/beacon-tezos/tsconfig.json b/packages/beacon-tezos/tsconfig.json new file mode 100644 index 000000000..da67782ff --- /dev/null +++ b/packages/beacon-tezos/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./lib" + }, + "include": ["./src"] +} diff --git a/packages/beacon-transport-matrix/README.md b/packages/beacon-transport-matrix/README.md new file mode 100644 index 000000000..4e047f53f --- /dev/null +++ b/packages/beacon-transport-matrix/README.md @@ -0,0 +1,11 @@ +# `@airgap/beacon-transport-matrix` + +> TODO: description + +## Usage + +``` +const beaconTransportMatrix = require('@airgap/beacon-transport-matrix'); + +// TODO: DEMONSTRATE API +``` diff --git a/packages/beacon-transport-matrix/__tests__/beacon-transport-matrix.test.js b/packages/beacon-transport-matrix/__tests__/beacon-transport-matrix.test.js new file mode 100644 index 000000000..f835ee631 --- /dev/null +++ b/packages/beacon-transport-matrix/__tests__/beacon-transport-matrix.test.js @@ -0,0 +1,7 @@ +'use strict' + +const beaconTransportMatrix = require('..') + +describe('@airgap/beacon-transport-matrix', () => { + it('needs tests') +}) diff --git a/packages/beacon-transport-matrix/lib/beacon-transport-matrix.js b/packages/beacon-transport-matrix/lib/beacon-transport-matrix.js new file mode 100644 index 000000000..74e50a73c --- /dev/null +++ b/packages/beacon-transport-matrix/lib/beacon-transport-matrix.js @@ -0,0 +1,7 @@ +'use strict' + +module.exports = beaconTransportMatrix + +function beaconTransportMatrix() { + // TODO +} diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json new file mode 100644 index 000000000..f3ac185da --- /dev/null +++ b/packages/beacon-transport-matrix/package.json @@ -0,0 +1,29 @@ +{ + "name": "@airgap/beacon-transport-matrix", + "version": "0.0.0", + "description": "> TODO: description", + "author": "Andreas Gassmann ", + "homepage": "https://walletbeacon.io", + "license": "ISC", + "main": "lib/beacon-transport-matrix.js", + "directories": { + "lib": "lib", + "test": "__tests__" + }, + "files": [ + "lib" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/airgap-it/beacon-sdk.git" + }, + "scripts": { + "test": "echo \"Error: run tests from root\" && exit 1" + }, + "bugs": { + "url": "https://github.com/airgap-it/beacon-sdk/issues" + } +} diff --git a/packages/beacon-transport-matrix/tsconfig.json b/packages/beacon-transport-matrix/tsconfig.json new file mode 100644 index 000000000..da67782ff --- /dev/null +++ b/packages/beacon-transport-matrix/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./lib" + }, + "include": ["./src"] +} diff --git a/packages/beacon-transport-postmessage/README.md b/packages/beacon-transport-postmessage/README.md new file mode 100644 index 000000000..3472ef4a9 --- /dev/null +++ b/packages/beacon-transport-postmessage/README.md @@ -0,0 +1,11 @@ +# `@airgap/beacon-transport-postmessage` + +> TODO: description + +## Usage + +``` +const beaconTransportPostmessage = require('@airgap/beacon-transport-postmessage'); + +// TODO: DEMONSTRATE API +``` diff --git a/packages/beacon-transport-postmessage/__tests__/beacon-transport-postmessage.test.js b/packages/beacon-transport-postmessage/__tests__/beacon-transport-postmessage.test.js new file mode 100644 index 000000000..2e4b8f45c --- /dev/null +++ b/packages/beacon-transport-postmessage/__tests__/beacon-transport-postmessage.test.js @@ -0,0 +1,7 @@ +'use strict' + +const beaconTransportPostmessage = require('..') + +describe('@airgap/beacon-transport-postmessage', () => { + it('needs tests') +}) diff --git a/packages/beacon-transport-postmessage/lib/beacon-transport-postmessage.js b/packages/beacon-transport-postmessage/lib/beacon-transport-postmessage.js new file mode 100644 index 000000000..f558ca823 --- /dev/null +++ b/packages/beacon-transport-postmessage/lib/beacon-transport-postmessage.js @@ -0,0 +1,7 @@ +'use strict' + +module.exports = beaconTransportPostmessage + +function beaconTransportPostmessage() { + // TODO +} diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json new file mode 100644 index 000000000..fc7ca82b5 --- /dev/null +++ b/packages/beacon-transport-postmessage/package.json @@ -0,0 +1,29 @@ +{ + "name": "@airgap/beacon-transport-postmessage", + "version": "0.0.0", + "description": "> TODO: description", + "author": "Andreas Gassmann ", + "homepage": "https://walletbeacon.io", + "license": "ISC", + "main": "lib/beacon-transport-postmessage.js", + "directories": { + "lib": "lib", + "test": "__tests__" + }, + "files": [ + "lib" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/airgap-it/beacon-sdk.git" + }, + "scripts": { + "test": "echo \"Error: run tests from root\" && exit 1" + }, + "bugs": { + "url": "https://github.com/airgap-it/beacon-sdk/issues" + } +} diff --git a/packages/beacon-transport-postmessage/tsconfig.json b/packages/beacon-transport-postmessage/tsconfig.json new file mode 100644 index 000000000..da67782ff --- /dev/null +++ b/packages/beacon-transport-postmessage/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./lib" + }, + "include": ["./src"] +} diff --git a/packages/beacon-types/README.md b/packages/beacon-types/README.md new file mode 100644 index 000000000..d5d5d4ebd --- /dev/null +++ b/packages/beacon-types/README.md @@ -0,0 +1,11 @@ +# `@airgap/beacon-types` + +> TODO: description + +## Usage + +``` +const beaconTypes = require('@airgap/beacon-types'); + +// TODO: DEMONSTRATE API +``` diff --git a/packages/beacon-types/__tests__/beacon-types.test.js b/packages/beacon-types/__tests__/beacon-types.test.js new file mode 100644 index 000000000..d0d656b98 --- /dev/null +++ b/packages/beacon-types/__tests__/beacon-types.test.js @@ -0,0 +1,7 @@ +'use strict' + +const beaconTypes = require('..') + +describe('@airgap/beacon-types', () => { + it('needs tests') +}) diff --git a/packages/beacon-types/lib/beacon-types.js b/packages/beacon-types/lib/beacon-types.js new file mode 100644 index 000000000..b76000877 --- /dev/null +++ b/packages/beacon-types/lib/beacon-types.js @@ -0,0 +1,7 @@ +'use strict' + +module.exports = beaconTypes + +function beaconTypes() { + // TODO +} diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json new file mode 100644 index 000000000..2174468e7 --- /dev/null +++ b/packages/beacon-types/package.json @@ -0,0 +1,29 @@ +{ + "name": "@airgap/beacon-types", + "version": "0.0.0", + "description": "> TODO: description", + "author": "Andreas Gassmann ", + "homepage": "https://walletbeacon.io", + "license": "ISC", + "main": "lib/beacon-types.js", + "directories": { + "lib": "lib", + "test": "__tests__" + }, + "files": [ + "lib" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/airgap-it/beacon-sdk.git" + }, + "scripts": { + "test": "echo \"Error: run tests from root\" && exit 1" + }, + "bugs": { + "url": "https://github.com/airgap-it/beacon-sdk/issues" + } +} diff --git a/packages/beacon-types/tsconfig.json b/packages/beacon-types/tsconfig.json new file mode 100644 index 000000000..da67782ff --- /dev/null +++ b/packages/beacon-types/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./lib" + }, + "include": ["./src"] +} diff --git a/packages/beacon-ui/README.md b/packages/beacon-ui/README.md new file mode 100644 index 000000000..057045278 --- /dev/null +++ b/packages/beacon-ui/README.md @@ -0,0 +1,11 @@ +# `@airgap/beacon-ui` + +> TODO: description + +## Usage + +``` +const beaconUi = require('@airgap/beacon-ui'); + +// TODO: DEMONSTRATE API +``` diff --git a/packages/beacon-ui/__tests__/beacon-ui.test.js b/packages/beacon-ui/__tests__/beacon-ui.test.js new file mode 100644 index 000000000..28d3fa9fb --- /dev/null +++ b/packages/beacon-ui/__tests__/beacon-ui.test.js @@ -0,0 +1,7 @@ +'use strict' + +const beaconUi = require('..') + +describe('@airgap/beacon-ui', () => { + it('needs tests') +}) diff --git a/packages/beacon-ui/lib/beacon-ui.js b/packages/beacon-ui/lib/beacon-ui.js new file mode 100644 index 000000000..c7e2922f8 --- /dev/null +++ b/packages/beacon-ui/lib/beacon-ui.js @@ -0,0 +1,7 @@ +'use strict' + +module.exports = beaconUi + +function beaconUi() { + // TODO +} diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json new file mode 100644 index 000000000..bfc2933ab --- /dev/null +++ b/packages/beacon-ui/package.json @@ -0,0 +1,29 @@ +{ + "name": "@airgap/beacon-ui", + "version": "0.0.0", + "description": "> TODO: description", + "author": "Andreas Gassmann ", + "homepage": "https://walletbeacon.io", + "license": "ISC", + "main": "lib/beacon-ui.js", + "directories": { + "lib": "lib", + "test": "__tests__" + }, + "files": [ + "lib" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/airgap-it/beacon-sdk.git" + }, + "scripts": { + "test": "echo \"Error: run tests from root\" && exit 1" + }, + "bugs": { + "url": "https://github.com/airgap-it/beacon-sdk/issues" + } +} diff --git a/packages/beacon-ui/tsconfig.json b/packages/beacon-ui/tsconfig.json new file mode 100644 index 000000000..da67782ff --- /dev/null +++ b/packages/beacon-ui/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./lib" + }, + "include": ["./src"] +} diff --git a/packages/beacon-utils/README.md b/packages/beacon-utils/README.md new file mode 100644 index 000000000..3bd93c4f0 --- /dev/null +++ b/packages/beacon-utils/README.md @@ -0,0 +1,11 @@ +# `@airgap/beacon-utils` + +> TODO: description + +## Usage + +``` +const beaconUtils = require('@airgap/beacon-utils'); + +// TODO: DEMONSTRATE API +``` diff --git a/packages/beacon-utils/__tests__/beacon-utils.test.js b/packages/beacon-utils/__tests__/beacon-utils.test.js new file mode 100644 index 000000000..0a6ac5654 --- /dev/null +++ b/packages/beacon-utils/__tests__/beacon-utils.test.js @@ -0,0 +1,7 @@ +'use strict' + +const beaconUtils = require('..') + +describe('@airgap/beacon-utils', () => { + it('needs tests') +}) diff --git a/packages/beacon-utils/lib/beacon-utils.js b/packages/beacon-utils/lib/beacon-utils.js new file mode 100644 index 000000000..402ef9b43 --- /dev/null +++ b/packages/beacon-utils/lib/beacon-utils.js @@ -0,0 +1,7 @@ +'use strict' + +module.exports = beaconUtils + +function beaconUtils() { + // TODO +} diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json new file mode 100644 index 000000000..41aed8cdc --- /dev/null +++ b/packages/beacon-utils/package.json @@ -0,0 +1,29 @@ +{ + "name": "@airgap/beacon-utils", + "version": "0.0.0", + "description": "> TODO: description", + "author": "Andreas Gassmann ", + "homepage": "https://walletbeacon.io", + "license": "ISC", + "main": "lib/beacon-utils.js", + "directories": { + "lib": "lib", + "test": "__tests__" + }, + "files": [ + "lib" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/airgap-it/beacon-sdk.git" + }, + "scripts": { + "test": "echo \"Error: run tests from root\" && exit 1" + }, + "bugs": { + "url": "https://github.com/airgap-it/beacon-sdk/issues" + } +} diff --git a/packages/beacon-utils/tsconfig.json b/packages/beacon-utils/tsconfig.json new file mode 100644 index 000000000..da67782ff --- /dev/null +++ b/packages/beacon-utils/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./lib" + }, + "include": ["./src"] +} diff --git a/packages/beacon-wallet/README.md b/packages/beacon-wallet/README.md new file mode 100644 index 000000000..b0dc107fa --- /dev/null +++ b/packages/beacon-wallet/README.md @@ -0,0 +1,11 @@ +# `@airgap/beacon-wallet` + +> TODO: description + +## Usage + +``` +const beaconWallet = require('@airgap/beacon-wallet'); + +// TODO: DEMONSTRATE API +``` diff --git a/packages/beacon-wallet/__tests__/beacon-wallet.test.js b/packages/beacon-wallet/__tests__/beacon-wallet.test.js new file mode 100644 index 000000000..5a5a4e468 --- /dev/null +++ b/packages/beacon-wallet/__tests__/beacon-wallet.test.js @@ -0,0 +1,7 @@ +'use strict' + +const beaconWallet = require('..') + +describe('@airgap/beacon-wallet', () => { + it('needs tests') +}) diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json new file mode 100644 index 000000000..6e3969f42 --- /dev/null +++ b/packages/beacon-wallet/package.json @@ -0,0 +1,29 @@ +{ + "name": "@airgap/beacon-wallet", + "version": "0.0.0", + "description": "> TODO: description", + "author": "Andreas Gassmann ", + "homepage": "https://walletbeacon.io", + "license": "ISC", + "main": "lib/beacon-wallet.js", + "directories": { + "lib": "lib", + "test": "__tests__" + }, + "files": [ + "lib" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/airgap-it/beacon-sdk.git" + }, + "scripts": { + "test": "echo \"Error: run tests from root\" && exit 1" + }, + "bugs": { + "url": "https://github.com/airgap-it/beacon-sdk/issues" + } +} diff --git a/packages/beacon-wallet/tsconfig.json b/packages/beacon-wallet/tsconfig.json new file mode 100644 index 000000000..da67782ff --- /dev/null +++ b/packages/beacon-wallet/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./lib" + }, + "include": ["./src"] +} From 757fc014321bf6d2322f7bbc8b9438c140c69aa0 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 28 Jul 2021 15:10:51 +0200 Subject: [PATCH 008/130] feat(lerna): missing file --- packages/beacon-wallet/lib/beacon-wallet.js | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 packages/beacon-wallet/lib/beacon-wallet.js diff --git a/packages/beacon-wallet/lib/beacon-wallet.js b/packages/beacon-wallet/lib/beacon-wallet.js new file mode 100644 index 000000000..f5a778f23 --- /dev/null +++ b/packages/beacon-wallet/lib/beacon-wallet.js @@ -0,0 +1,7 @@ +'use strict' + +module.exports = beaconWallet + +function beaconWallet() { + // TODO +} From 1a32e1a9e38dfb061e4c16b2cf2e5bd450ec7892 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 28 Jul 2021 15:21:39 +0200 Subject: [PATCH 009/130] feat(lerna): change default files --- .gitignore | 1 + packages/beacon-core/package.json | 3 ++- packages/beacon-core/src/index.ts | 0 packages/beacon-dapp/package.json | 3 ++- packages/beacon-dapp/src/index.ts | 0 packages/beacon-protocol-substrate/package.json | 3 ++- packages/beacon-protocol-substrate/src/index.ts | 0 packages/beacon-protocol-tezos/package.json | 3 ++- packages/beacon-protocol-tezos/src/index.ts | 0 packages/beacon-tezos/README.md | 11 ----------- packages/beacon-tezos/__tests__/beacon-tezos.test.js | 7 ------- packages/beacon-tezos/lib/beacon-tezos.js | 7 ------- packages/beacon-tezos/tsconfig.json | 7 ------- packages/beacon-transport-matrix/package.json | 3 ++- packages/beacon-transport-matrix/src/index.ts | 0 packages/beacon-transport-postmessage/package.json | 3 ++- packages/beacon-transport-postmessage/src/index.ts | 0 packages/beacon-types/package.json | 3 ++- packages/beacon-types/src/index.ts | 0 packages/beacon-ui/package.json | 3 ++- packages/beacon-ui/src/index.ts | 0 packages/beacon-utils/package.json | 3 ++- packages/beacon-utils/src/index.ts | 0 packages/beacon-wallet/package.json | 3 ++- packages/beacon-wallet/src/index.ts | 0 25 files changed, 21 insertions(+), 42 deletions(-) create mode 100644 packages/beacon-core/src/index.ts create mode 100644 packages/beacon-dapp/src/index.ts create mode 100644 packages/beacon-protocol-substrate/src/index.ts create mode 100644 packages/beacon-protocol-tezos/src/index.ts delete mode 100644 packages/beacon-tezos/README.md delete mode 100644 packages/beacon-tezos/__tests__/beacon-tezos.test.js delete mode 100644 packages/beacon-tezos/lib/beacon-tezos.js delete mode 100644 packages/beacon-tezos/tsconfig.json create mode 100644 packages/beacon-transport-matrix/src/index.ts create mode 100644 packages/beacon-transport-postmessage/src/index.ts create mode 100644 packages/beacon-types/src/index.ts create mode 100644 packages/beacon-ui/src/index.ts create mode 100644 packages/beacon-utils/src/index.ts create mode 100644 packages/beacon-wallet/src/index.ts diff --git a/.gitignore b/.gitignore index 9fbc3cc43..58b8559b3 100644 --- a/.gitignore +++ b/.gitignore @@ -73,6 +73,7 @@ combined.webm examples/walletbeacon.min.js +lib docs src/ui/alert/alert-templates.ts diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 054b3f029..905b7f157 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -5,7 +5,7 @@ "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", - "main": "lib/beacon-core.js", + "main": "lib/index.js", "directories": { "lib": "lib", "test": "__tests__" @@ -21,6 +21,7 @@ "url": "git+https://github.com/airgap-it/beacon-sdk.git" }, "scripts": { + "tsc": "tsc", "test": "echo \"Error: run tests from root\" && exit 1" }, "bugs": { diff --git a/packages/beacon-core/src/index.ts b/packages/beacon-core/src/index.ts new file mode 100644 index 000000000..e69de29bb diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 920adc2bc..db083af42 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -5,7 +5,7 @@ "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", - "main": "lib/beacon-dapp.js", + "main": "lib/index.js", "directories": { "lib": "lib", "test": "__tests__" @@ -21,6 +21,7 @@ "url": "git+https://github.com/airgap-it/beacon-sdk.git" }, "scripts": { + "tsc": "tsc", "test": "echo \"Error: run tests from root\" && exit 1" }, "bugs": { diff --git a/packages/beacon-dapp/src/index.ts b/packages/beacon-dapp/src/index.ts new file mode 100644 index 000000000..e69de29bb diff --git a/packages/beacon-protocol-substrate/package.json b/packages/beacon-protocol-substrate/package.json index e3ddd4522..b2885dc4f 100644 --- a/packages/beacon-protocol-substrate/package.json +++ b/packages/beacon-protocol-substrate/package.json @@ -5,7 +5,7 @@ "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", - "main": "lib/beacon-protocol-substrate.js", + "main": "lib/index.js", "directories": { "lib": "lib", "test": "__tests__" @@ -21,6 +21,7 @@ "url": "git+https://github.com/airgap-it/beacon-sdk.git" }, "scripts": { + "tsc": "tsc", "test": "echo \"Error: run tests from root\" && exit 1" }, "bugs": { diff --git a/packages/beacon-protocol-substrate/src/index.ts b/packages/beacon-protocol-substrate/src/index.ts new file mode 100644 index 000000000..e69de29bb diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index b674fc252..9c4507b3b 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -5,7 +5,7 @@ "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", - "main": "lib/beacon-protocol-tezos.js", + "main": "lib/index.js", "directories": { "lib": "lib", "test": "__tests__" @@ -21,6 +21,7 @@ "url": "git+https://github.com/airgap-it/beacon-sdk.git" }, "scripts": { + "tsc": "tsc", "test": "echo \"Error: run tests from root\" && exit 1" }, "bugs": { diff --git a/packages/beacon-protocol-tezos/src/index.ts b/packages/beacon-protocol-tezos/src/index.ts new file mode 100644 index 000000000..e69de29bb diff --git a/packages/beacon-tezos/README.md b/packages/beacon-tezos/README.md deleted file mode 100644 index 78ff31cd4..000000000 --- a/packages/beacon-tezos/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# `@airgap/beacon-tezos` - -> TODO: description - -## Usage - -``` -const beaconTezos = require('@airgap/beacon-tezos'); - -// TODO: DEMONSTRATE API -``` diff --git a/packages/beacon-tezos/__tests__/beacon-tezos.test.js b/packages/beacon-tezos/__tests__/beacon-tezos.test.js deleted file mode 100644 index 5c8368bfc..000000000 --- a/packages/beacon-tezos/__tests__/beacon-tezos.test.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -const beaconTezos = require('..') - -describe('@airgap/beacon-tezos', () => { - it('needs tests') -}) diff --git a/packages/beacon-tezos/lib/beacon-tezos.js b/packages/beacon-tezos/lib/beacon-tezos.js deleted file mode 100644 index 6203ae267..000000000 --- a/packages/beacon-tezos/lib/beacon-tezos.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -module.exports = beaconTezos - -function beaconTezos() { - // TODO -} diff --git a/packages/beacon-tezos/tsconfig.json b/packages/beacon-tezos/tsconfig.json deleted file mode 100644 index da67782ff..000000000 --- a/packages/beacon-tezos/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./lib" - }, - "include": ["./src"] -} diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index f3ac185da..b887f5138 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -5,7 +5,7 @@ "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", - "main": "lib/beacon-transport-matrix.js", + "main": "lib/index.js", "directories": { "lib": "lib", "test": "__tests__" @@ -21,6 +21,7 @@ "url": "git+https://github.com/airgap-it/beacon-sdk.git" }, "scripts": { + "tsc": "tsc", "test": "echo \"Error: run tests from root\" && exit 1" }, "bugs": { diff --git a/packages/beacon-transport-matrix/src/index.ts b/packages/beacon-transport-matrix/src/index.ts new file mode 100644 index 000000000..e69de29bb diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index fc7ca82b5..2a45b26e0 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -5,7 +5,7 @@ "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", - "main": "lib/beacon-transport-postmessage.js", + "main": "lib/index.js", "directories": { "lib": "lib", "test": "__tests__" @@ -21,6 +21,7 @@ "url": "git+https://github.com/airgap-it/beacon-sdk.git" }, "scripts": { + "tsc": "tsc", "test": "echo \"Error: run tests from root\" && exit 1" }, "bugs": { diff --git a/packages/beacon-transport-postmessage/src/index.ts b/packages/beacon-transport-postmessage/src/index.ts new file mode 100644 index 000000000..e69de29bb diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 2174468e7..767e9712f 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -5,7 +5,7 @@ "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", - "main": "lib/beacon-types.js", + "main": "lib/index.js", "directories": { "lib": "lib", "test": "__tests__" @@ -21,6 +21,7 @@ "url": "git+https://github.com/airgap-it/beacon-sdk.git" }, "scripts": { + "tsc": "tsc", "test": "echo \"Error: run tests from root\" && exit 1" }, "bugs": { diff --git a/packages/beacon-types/src/index.ts b/packages/beacon-types/src/index.ts new file mode 100644 index 000000000..e69de29bb diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index bfc2933ab..f0f4ae014 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -5,7 +5,7 @@ "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", - "main": "lib/beacon-ui.js", + "main": "lib/index.js", "directories": { "lib": "lib", "test": "__tests__" @@ -21,6 +21,7 @@ "url": "git+https://github.com/airgap-it/beacon-sdk.git" }, "scripts": { + "tsc": "tsc", "test": "echo \"Error: run tests from root\" && exit 1" }, "bugs": { diff --git a/packages/beacon-ui/src/index.ts b/packages/beacon-ui/src/index.ts new file mode 100644 index 000000000..e69de29bb diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 41aed8cdc..367bc9e84 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -5,7 +5,7 @@ "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", - "main": "lib/beacon-utils.js", + "main": "lib/index.js", "directories": { "lib": "lib", "test": "__tests__" @@ -21,6 +21,7 @@ "url": "git+https://github.com/airgap-it/beacon-sdk.git" }, "scripts": { + "tsc": "tsc", "test": "echo \"Error: run tests from root\" && exit 1" }, "bugs": { diff --git a/packages/beacon-utils/src/index.ts b/packages/beacon-utils/src/index.ts new file mode 100644 index 000000000..e69de29bb diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 6e3969f42..d30843890 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -5,7 +5,7 @@ "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", - "main": "lib/beacon-wallet.js", + "main": "lib/index.js", "directories": { "lib": "lib", "test": "__tests__" @@ -21,6 +21,7 @@ "url": "git+https://github.com/airgap-it/beacon-sdk.git" }, "scripts": { + "tsc": "tsc", "test": "echo \"Error: run tests from root\" && exit 1" }, "bugs": { diff --git a/packages/beacon-wallet/src/index.ts b/packages/beacon-wallet/src/index.ts new file mode 100644 index 000000000..e69de29bb From dd7163b42db73c2f7fcc6280924aff5ee5db21f9 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 28 Jul 2021 16:25:43 +0200 Subject: [PATCH 010/130] feat(core): move sdk to core --- package.json | 6 +- packages/beacon-core/lib/beacon-core.js | 7 - .../beacon-core/src}/MockWindow.ts | 0 .../beacon-core/src}/Serializer.ts | 0 .../beacon-core/src}/beacon-message-events.ts | 0 .../clients/beacon-client/BeaconClient.ts | 0 .../beacon-client/BeaconClientOptions.ts | 0 .../beacon-core/src}/clients/client/Client.ts | 0 .../src}/clients/client/ClientOptions.ts | 0 .../src}/clients/dapp-client/DAppClient.ts | 0 .../clients/dapp-client/DAppClientOptions.ts | 0 .../clients/wallet-client/WalletClient.ts | 0 .../wallet-client/WalletClientOptions.ts | 0 .../beacon-core/src}/colorMode.ts | 0 .../beacon-core/src}/constants.ts | 0 {src => packages/beacon-core/src}/debug.ts | 0 .../src}/errors/AbortedBeaconError.ts | 0 .../beacon-core/src}/errors/BeaconError.ts | 0 .../src}/errors/BroadcastBeaconError.ts | 0 .../EncryptionTypeNotSupportedBeaconError.ts | 0 .../errors/NetworkNotSupportedBeaconError.ts | 0 .../src}/errors/NoAddressBeaconError.ts | 0 .../src}/errors/NoPrivateKeyBeaconError.ts | 0 .../src}/errors/NotGrantedBeaconError.ts | 0 .../errors/ParametersInvalidBeaconError.ts | 0 .../SignatureTypeNotSupportedBeaconError.ts | 0 .../errors/TooManyOperationsBeaconError.ts | 0 .../errors/TransactionInvalidBeaconError.ts | 0 .../src}/errors/UnknownBeaconError.ts | 0 {src => packages/beacon-core/src}/events.ts | 0 packages/beacon-core/src/index.ts | 355 ++++++++++++++++++ .../IncomingRequestInterceptor.ts | 0 .../OutgoingResponseInterceptor.ts | 0 .../src}/managers/AccountManager.ts | 0 .../src}/managers/AppMetadataManager.ts | 0 .../beacon-core/src}/managers/PeerManager.ts | 0 .../src}/managers/PermissionManager.ts | 0 .../src}/managers/PermissionValidator.ts | 0 .../src}/managers/StorageManager.ts | 0 .../src}/matrix-client/MatrixClient.ts | 0 .../matrix-client/MatrixClientEventEmitter.ts | 0 .../src}/matrix-client/MatrixClientStore.ts | 0 .../src}/matrix-client/MatrixHttpClient.ts | 0 .../matrix-client/models/MatrixClientEvent.ts | 0 .../matrix-client/models/MatrixMessage.ts | 0 .../src}/matrix-client/models/MatrixRoom.ts | 0 .../matrix-client/models/MatrixStateEvent.ts | 0 .../models/api/MatrixEventSend.ts | 0 .../matrix-client/models/api/MatrixLogin.ts | 0 .../matrix-client/models/api/MatrixRequest.ts | 0 .../models/api/MatrixRoomCreate.ts | 0 .../models/api/MatrixRoomInvite.ts | 0 .../models/api/MatrixRoomJoin.ts | 0 .../matrix-client/models/api/MatrixSync.ts | 0 .../services/MatrixEventService.ts | 0 .../services/MatrixRoomService.ts | 0 .../services/MatrixUserService.ts | 0 .../src}/matrix-client/utils/events.ts | 0 .../src}/migrations/migrate-0.7.0.ts | 0 .../beacon-core/src}/migrations/migrations.ts | 0 .../beacon-core/src}/storage/ChromeStorage.ts | 0 .../beacon-core/src}/storage/LocalStorage.ts | 0 .../beacon-core/src}/storage/Storage.ts | 0 .../beacon-core/src}/storage/getStorage.ts | 0 .../src}/transports/DappP2PTransport.ts | 0 .../transports/DappPostMessageTransport.ts | 0 .../src}/transports/P2PTransport.ts | 0 .../src}/transports/PostMessageTransport.ts | 0 .../beacon-core/src}/transports/Transport.ts | 0 .../src}/transports/WalletP2PTransport.ts | 0 .../transports/WalletPostMessageTransport.ts | 0 .../transports/clients/CommunicationClient.ts | 0 .../transports/clients/MessageBasedClient.ts | 0 .../clients/P2PCommunicationClient.ts | 0 .../transports/clients/PostMessageClient.ts | 0 .../beacon-core/src}/types/AccountInfo.ts | 0 .../beacon-core/src}/types/BeaconErrorType.ts | 0 .../beacon-core/src}/types/ColorMode.ts | 0 .../src}/types/ConnectionContext.ts | 0 .../src}/types/EncryptionOperation.ts | 0 .../beacon-core/src}/types/EncryptionType.ts | 0 .../beacon-core/src}/types/Extension.ts | 0 .../src}/types/ExtensionMessage.ts | 0 .../src}/types/ExtensionMessageTarget.ts | 0 .../beacon-core/src}/types/Origin.ts | 0 .../src}/types/P2PPairingRequest.ts | 0 .../src}/types/P2PPairingResponse.ts | 0 .../beacon-core/src}/types/PeerInfo.ts | 0 .../src}/types/PermissionEntity.ts | 0 .../beacon-core/src}/types/PermissionInfo.ts | 0 .../src}/types/PostMessagePairingRequest.ts | 0 .../src}/types/PostMessagePairingResponse.ts | 0 .../src}/types/RequestBroadcastInput.ts | 0 .../src}/types/RequestEncryptPayloadInput.ts | 0 .../src}/types/RequestOperationInput.ts | 0 .../src}/types/RequestPermissionInput.ts | 0 .../src}/types/RequestSignPayloadInput.ts | 0 .../src}/types/beacon/AppMetadata.ts | 0 .../src}/types/beacon/BeaconBaseMessage.ts | 0 .../src}/types/beacon/BeaconMessage.ts | 0 .../src}/types/beacon/BeaconMessageType.ts | 0 .../src}/types/beacon/BeaconRequestMessage.ts | 0 .../types/beacon/BeaconResponseMessage.ts | 0 .../beacon-core/src}/types/beacon/Network.ts | 0 .../src}/types/beacon/NetworkType.ts | 0 .../src}/types/beacon/PermissionScope.ts | 0 .../src}/types/beacon/SigningType.ts | 0 .../src}/types/beacon/Threshold.ts | 0 .../beacon/messages/AcknowledgeResponse.ts | 0 .../messages/BeaconRequestInputMessage.ts | 0 .../messages/BeaconRequestOutputMessage.ts | 0 .../messages/BeaconResponseInputMessage.ts | 0 .../messages/BeaconResponseOutputMessage.ts | 0 .../types/beacon/messages/BroadcastRequest.ts | 0 .../beacon/messages/BroadcastResponse.ts | 0 .../beacon/messages/DisconnectMessage.ts | 0 .../beacon/messages/EncryptPayloadRequest.ts | 0 .../beacon/messages/EncryptPayloadResponse.ts | 0 .../types/beacon/messages/ErrorResponse.ts | 0 .../types/beacon/messages/OperationRequest.ts | 0 .../beacon/messages/OperationResponse.ts | 0 .../beacon/messages/PermissionRequest.ts | 0 .../beacon/messages/PermissionResponse.ts | 0 .../beacon/messages/SignPayloadRequest.ts | 0 .../beacon/messages/SignPayloadResponse.ts | 0 .../src}/types/storage/StorageKey.ts | 0 .../types/storage/StorageKeyReturnDefaults.ts | 0 .../types/storage/StorageKeyReturnType.ts | 0 .../tezos/MichelineMichelsonV1Expression.ts | 0 .../src}/types/tezos/MichelsonPrimitives.ts | 0 .../src}/types/tezos/OperationTypes.ts | 0 .../src}/types/tezos/PartialTezosOperation.ts | 0 .../src}/types/tezos/TezosBaseOperation.ts | 0 .../src}/types/tezos/TezosBlockHeader.ts | 0 .../src}/types/tezos/TezosOperation.ts | 0 .../types/tezos/TezosTransactionParameters.ts | 0 .../types/tezos/operations/ActivateAccount.ts | 0 .../src}/types/tezos/operations/Ballot.ts | 0 .../src}/types/tezos/operations/Delegation.ts | 0 .../tezos/operations/DoubleBakingEvidence.ts | 0 .../operations/DoubleEndorsementEvidence.ts | 0 .../types/tezos/operations/Endorsement.ts | 0 .../types/tezos/operations/Origination.ts | 0 .../src}/types/tezos/operations/Proposal.ts | 0 .../src}/types/tezos/operations/Reveal.ts | 0 .../tezos/operations/SeedNonceRevelation.ts | 0 .../types/tezos/operations/Transaction.ts | 0 .../src}/types/transport/TransportStatus.ts | 0 .../src}/types/transport/TransportType.ts | 0 .../beacon-core/src}/typings/bs58check.d.ts | 0 .../beacon-core/src}/ui/alert/Alert.ts | 0 .../beacon-core/src}/ui/alert/Pairing.ts | 0 .../beacon-core/src}/ui/alert/PairingAlert.ts | 0 .../src/ui/alert/alert-templates.ts | 15 + .../beacon-core/src/ui/alert/wallet-lists.ts | 76 ++++ .../beacon-core/src}/ui/toast/Toast.ts | 0 .../src/ui/toast/toast-templates.ts | 10 + .../beacon-core/src}/utils/Logger.ts | 0 .../beacon-core/src}/utils/assert-never.ts | 0 .../src}/utils/available-transports.ts | 0 .../beacon-core/src}/utils/block-explorer.ts | 0 .../beacon-core/src}/utils/crypto.ts | 0 .../beacon-core/src}/utils/exposed-promise.ts | 0 .../beacon-core/src}/utils/generate-uuid.ts | 0 .../src}/utils/get-account-identifier.ts | 0 .../beacon-core/src}/utils/get-sender-id.ts | 0 .../beacon-core/src}/utils/get-tzip10-link.ts | 0 .../beacon-core/src}/utils/platform.ts | 0 {src => packages/beacon-core/src}/utils/qr.ts | 0 .../src}/utils/replace-in-template.ts | 0 .../beacon-core/src}/utils/shorten-string.ts | 0 .../src}/utils/tezblock-blockexplorer.ts | 0 .../beacon-core/src}/utils/utils.ts | 0 packages/beacon-core/tsconfig.json | 15 +- packages/beacon-dapp/lib/beacon-dapp.js | 7 - packages/beacon-dapp/tsconfig.json | 15 +- .../lib/beacon-protocol-substrate.js | 7 - .../beacon-protocol-substrate/tsconfig.json | 15 +- .../lib/beacon-protocol-tezos.js | 7 - packages/beacon-protocol-tezos/tsconfig.json | 15 +- .../lib/beacon-transport-matrix.js | 7 - .../beacon-transport-matrix/tsconfig.json | 15 +- .../lib/beacon-transport-postmessage.js | 7 - .../tsconfig.json | 15 +- packages/beacon-types/lib/beacon-types.js | 7 - packages/beacon-types/src/index.ts | 1 + packages/beacon-types/tsconfig.json | 15 +- packages/beacon-ui/lib/beacon-ui.js | 7 - packages/beacon-ui/tsconfig.json | 15 +- packages/beacon-utils/lib/beacon-utils.js | 7 - packages/beacon-utils/tsconfig.json | 15 +- packages/beacon-wallet/lib/beacon-wallet.js | 7 - packages/beacon-wallet/tsconfig.json | 15 +- scripts/check-sdk-version.ts | 2 +- src/index.ts | 355 ------------------ 195 files changed, 602 insertions(+), 438 deletions(-) delete mode 100644 packages/beacon-core/lib/beacon-core.js rename {src => packages/beacon-core/src}/MockWindow.ts (100%) rename {src => packages/beacon-core/src}/Serializer.ts (100%) rename {src => packages/beacon-core/src}/beacon-message-events.ts (100%) rename {src => packages/beacon-core/src}/clients/beacon-client/BeaconClient.ts (100%) rename {src => packages/beacon-core/src}/clients/beacon-client/BeaconClientOptions.ts (100%) rename {src => packages/beacon-core/src}/clients/client/Client.ts (100%) rename {src => packages/beacon-core/src}/clients/client/ClientOptions.ts (100%) rename {src => packages/beacon-core/src}/clients/dapp-client/DAppClient.ts (100%) rename {src => packages/beacon-core/src}/clients/dapp-client/DAppClientOptions.ts (100%) rename {src => packages/beacon-core/src}/clients/wallet-client/WalletClient.ts (100%) rename {src => packages/beacon-core/src}/clients/wallet-client/WalletClientOptions.ts (100%) rename {src => packages/beacon-core/src}/colorMode.ts (100%) rename {src => packages/beacon-core/src}/constants.ts (100%) rename {src => packages/beacon-core/src}/debug.ts (100%) rename {src => packages/beacon-core/src}/errors/AbortedBeaconError.ts (100%) rename {src => packages/beacon-core/src}/errors/BeaconError.ts (100%) rename {src => packages/beacon-core/src}/errors/BroadcastBeaconError.ts (100%) rename {src => packages/beacon-core/src}/errors/EncryptionTypeNotSupportedBeaconError.ts (100%) rename {src => packages/beacon-core/src}/errors/NetworkNotSupportedBeaconError.ts (100%) rename {src => packages/beacon-core/src}/errors/NoAddressBeaconError.ts (100%) rename {src => packages/beacon-core/src}/errors/NoPrivateKeyBeaconError.ts (100%) rename {src => packages/beacon-core/src}/errors/NotGrantedBeaconError.ts (100%) rename {src => packages/beacon-core/src}/errors/ParametersInvalidBeaconError.ts (100%) rename {src => packages/beacon-core/src}/errors/SignatureTypeNotSupportedBeaconError.ts (100%) rename {src => packages/beacon-core/src}/errors/TooManyOperationsBeaconError.ts (100%) rename {src => packages/beacon-core/src}/errors/TransactionInvalidBeaconError.ts (100%) rename {src => packages/beacon-core/src}/errors/UnknownBeaconError.ts (100%) rename {src => packages/beacon-core/src}/events.ts (100%) rename {src => packages/beacon-core/src}/interceptors/IncomingRequestInterceptor.ts (100%) rename {src => packages/beacon-core/src}/interceptors/OutgoingResponseInterceptor.ts (100%) rename {src => packages/beacon-core/src}/managers/AccountManager.ts (100%) rename {src => packages/beacon-core/src}/managers/AppMetadataManager.ts (100%) rename {src => packages/beacon-core/src}/managers/PeerManager.ts (100%) rename {src => packages/beacon-core/src}/managers/PermissionManager.ts (100%) rename {src => packages/beacon-core/src}/managers/PermissionValidator.ts (100%) rename {src => packages/beacon-core/src}/managers/StorageManager.ts (100%) rename {src => packages/beacon-core/src}/matrix-client/MatrixClient.ts (100%) rename {src => packages/beacon-core/src}/matrix-client/MatrixClientEventEmitter.ts (100%) rename {src => packages/beacon-core/src}/matrix-client/MatrixClientStore.ts (100%) rename {src => packages/beacon-core/src}/matrix-client/MatrixHttpClient.ts (100%) rename {src => packages/beacon-core/src}/matrix-client/models/MatrixClientEvent.ts (100%) rename {src => packages/beacon-core/src}/matrix-client/models/MatrixMessage.ts (100%) rename {src => packages/beacon-core/src}/matrix-client/models/MatrixRoom.ts (100%) rename {src => packages/beacon-core/src}/matrix-client/models/MatrixStateEvent.ts (100%) rename {src => packages/beacon-core/src}/matrix-client/models/api/MatrixEventSend.ts (100%) rename {src => packages/beacon-core/src}/matrix-client/models/api/MatrixLogin.ts (100%) rename {src => packages/beacon-core/src}/matrix-client/models/api/MatrixRequest.ts (100%) rename {src => packages/beacon-core/src}/matrix-client/models/api/MatrixRoomCreate.ts (100%) rename {src => packages/beacon-core/src}/matrix-client/models/api/MatrixRoomInvite.ts (100%) rename {src => packages/beacon-core/src}/matrix-client/models/api/MatrixRoomJoin.ts (100%) rename {src => packages/beacon-core/src}/matrix-client/models/api/MatrixSync.ts (100%) rename {src => packages/beacon-core/src}/matrix-client/services/MatrixEventService.ts (100%) rename {src => packages/beacon-core/src}/matrix-client/services/MatrixRoomService.ts (100%) rename {src => packages/beacon-core/src}/matrix-client/services/MatrixUserService.ts (100%) rename {src => packages/beacon-core/src}/matrix-client/utils/events.ts (100%) rename {src => packages/beacon-core/src}/migrations/migrate-0.7.0.ts (100%) rename {src => packages/beacon-core/src}/migrations/migrations.ts (100%) rename {src => packages/beacon-core/src}/storage/ChromeStorage.ts (100%) rename {src => packages/beacon-core/src}/storage/LocalStorage.ts (100%) rename {src => packages/beacon-core/src}/storage/Storage.ts (100%) rename {src => packages/beacon-core/src}/storage/getStorage.ts (100%) rename {src => packages/beacon-core/src}/transports/DappP2PTransport.ts (100%) rename {src => packages/beacon-core/src}/transports/DappPostMessageTransport.ts (100%) rename {src => packages/beacon-core/src}/transports/P2PTransport.ts (100%) rename {src => packages/beacon-core/src}/transports/PostMessageTransport.ts (100%) rename {src => packages/beacon-core/src}/transports/Transport.ts (100%) rename {src => packages/beacon-core/src}/transports/WalletP2PTransport.ts (100%) rename {src => packages/beacon-core/src}/transports/WalletPostMessageTransport.ts (100%) rename {src => packages/beacon-core/src}/transports/clients/CommunicationClient.ts (100%) rename {src => packages/beacon-core/src}/transports/clients/MessageBasedClient.ts (100%) rename {src => packages/beacon-core/src}/transports/clients/P2PCommunicationClient.ts (100%) rename {src => packages/beacon-core/src}/transports/clients/PostMessageClient.ts (100%) rename {src => packages/beacon-core/src}/types/AccountInfo.ts (100%) rename {src => packages/beacon-core/src}/types/BeaconErrorType.ts (100%) rename {src => packages/beacon-core/src}/types/ColorMode.ts (100%) rename {src => packages/beacon-core/src}/types/ConnectionContext.ts (100%) rename {src => packages/beacon-core/src}/types/EncryptionOperation.ts (100%) rename {src => packages/beacon-core/src}/types/EncryptionType.ts (100%) rename {src => packages/beacon-core/src}/types/Extension.ts (100%) rename {src => packages/beacon-core/src}/types/ExtensionMessage.ts (100%) rename {src => packages/beacon-core/src}/types/ExtensionMessageTarget.ts (100%) rename {src => packages/beacon-core/src}/types/Origin.ts (100%) rename {src => packages/beacon-core/src}/types/P2PPairingRequest.ts (100%) rename {src => packages/beacon-core/src}/types/P2PPairingResponse.ts (100%) rename {src => packages/beacon-core/src}/types/PeerInfo.ts (100%) rename {src => packages/beacon-core/src}/types/PermissionEntity.ts (100%) rename {src => packages/beacon-core/src}/types/PermissionInfo.ts (100%) rename {src => packages/beacon-core/src}/types/PostMessagePairingRequest.ts (100%) rename {src => packages/beacon-core/src}/types/PostMessagePairingResponse.ts (100%) rename {src => packages/beacon-core/src}/types/RequestBroadcastInput.ts (100%) rename {src => packages/beacon-core/src}/types/RequestEncryptPayloadInput.ts (100%) rename {src => packages/beacon-core/src}/types/RequestOperationInput.ts (100%) rename {src => packages/beacon-core/src}/types/RequestPermissionInput.ts (100%) rename {src => packages/beacon-core/src}/types/RequestSignPayloadInput.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/AppMetadata.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/BeaconBaseMessage.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/BeaconMessage.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/BeaconMessageType.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/BeaconRequestMessage.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/BeaconResponseMessage.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/Network.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/NetworkType.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/PermissionScope.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/SigningType.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/Threshold.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/messages/AcknowledgeResponse.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/messages/BeaconRequestInputMessage.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/messages/BeaconRequestOutputMessage.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/messages/BeaconResponseInputMessage.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/messages/BeaconResponseOutputMessage.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/messages/BroadcastRequest.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/messages/BroadcastResponse.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/messages/DisconnectMessage.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/messages/EncryptPayloadRequest.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/messages/EncryptPayloadResponse.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/messages/ErrorResponse.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/messages/OperationRequest.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/messages/OperationResponse.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/messages/PermissionRequest.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/messages/PermissionResponse.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/messages/SignPayloadRequest.ts (100%) rename {src => packages/beacon-core/src}/types/beacon/messages/SignPayloadResponse.ts (100%) rename {src => packages/beacon-core/src}/types/storage/StorageKey.ts (100%) rename {src => packages/beacon-core/src}/types/storage/StorageKeyReturnDefaults.ts (100%) rename {src => packages/beacon-core/src}/types/storage/StorageKeyReturnType.ts (100%) rename {src => packages/beacon-core/src}/types/tezos/MichelineMichelsonV1Expression.ts (100%) rename {src => packages/beacon-core/src}/types/tezos/MichelsonPrimitives.ts (100%) rename {src => packages/beacon-core/src}/types/tezos/OperationTypes.ts (100%) rename {src => packages/beacon-core/src}/types/tezos/PartialTezosOperation.ts (100%) rename {src => packages/beacon-core/src}/types/tezos/TezosBaseOperation.ts (100%) rename {src => packages/beacon-core/src}/types/tezos/TezosBlockHeader.ts (100%) rename {src => packages/beacon-core/src}/types/tezos/TezosOperation.ts (100%) rename {src => packages/beacon-core/src}/types/tezos/TezosTransactionParameters.ts (100%) rename {src => packages/beacon-core/src}/types/tezos/operations/ActivateAccount.ts (100%) rename {src => packages/beacon-core/src}/types/tezos/operations/Ballot.ts (100%) rename {src => packages/beacon-core/src}/types/tezos/operations/Delegation.ts (100%) rename {src => packages/beacon-core/src}/types/tezos/operations/DoubleBakingEvidence.ts (100%) rename {src => packages/beacon-core/src}/types/tezos/operations/DoubleEndorsementEvidence.ts (100%) rename {src => packages/beacon-core/src}/types/tezos/operations/Endorsement.ts (100%) rename {src => packages/beacon-core/src}/types/tezos/operations/Origination.ts (100%) rename {src => packages/beacon-core/src}/types/tezos/operations/Proposal.ts (100%) rename {src => packages/beacon-core/src}/types/tezos/operations/Reveal.ts (100%) rename {src => packages/beacon-core/src}/types/tezos/operations/SeedNonceRevelation.ts (100%) rename {src => packages/beacon-core/src}/types/tezos/operations/Transaction.ts (100%) rename {src => packages/beacon-core/src}/types/transport/TransportStatus.ts (100%) rename {src => packages/beacon-core/src}/types/transport/TransportType.ts (100%) rename {src => packages/beacon-core/src}/typings/bs58check.d.ts (100%) rename {src => packages/beacon-core/src}/ui/alert/Alert.ts (100%) rename {src => packages/beacon-core/src}/ui/alert/Pairing.ts (100%) rename {src => packages/beacon-core/src}/ui/alert/PairingAlert.ts (100%) create mode 100644 packages/beacon-core/src/ui/alert/alert-templates.ts create mode 100644 packages/beacon-core/src/ui/alert/wallet-lists.ts rename {src => packages/beacon-core/src}/ui/toast/Toast.ts (100%) create mode 100644 packages/beacon-core/src/ui/toast/toast-templates.ts rename {src => packages/beacon-core/src}/utils/Logger.ts (100%) rename {src => packages/beacon-core/src}/utils/assert-never.ts (100%) rename {src => packages/beacon-core/src}/utils/available-transports.ts (100%) rename {src => packages/beacon-core/src}/utils/block-explorer.ts (100%) rename {src => packages/beacon-core/src}/utils/crypto.ts (100%) rename {src => packages/beacon-core/src}/utils/exposed-promise.ts (100%) rename {src => packages/beacon-core/src}/utils/generate-uuid.ts (100%) rename {src => packages/beacon-core/src}/utils/get-account-identifier.ts (100%) rename {src => packages/beacon-core/src}/utils/get-sender-id.ts (100%) rename {src => packages/beacon-core/src}/utils/get-tzip10-link.ts (100%) rename {src => packages/beacon-core/src}/utils/platform.ts (100%) rename {src => packages/beacon-core/src}/utils/qr.ts (100%) rename {src => packages/beacon-core/src}/utils/replace-in-template.ts (100%) rename {src => packages/beacon-core/src}/utils/shorten-string.ts (100%) rename {src => packages/beacon-core/src}/utils/tezblock-blockexplorer.ts (100%) rename {src => packages/beacon-core/src}/utils/utils.ts (100%) delete mode 100644 packages/beacon-dapp/lib/beacon-dapp.js delete mode 100644 packages/beacon-protocol-substrate/lib/beacon-protocol-substrate.js delete mode 100644 packages/beacon-protocol-tezos/lib/beacon-protocol-tezos.js delete mode 100644 packages/beacon-transport-matrix/lib/beacon-transport-matrix.js delete mode 100644 packages/beacon-transport-postmessage/lib/beacon-transport-postmessage.js delete mode 100644 packages/beacon-types/lib/beacon-types.js delete mode 100644 packages/beacon-ui/lib/beacon-ui.js delete mode 100644 packages/beacon-utils/lib/beacon-utils.js delete mode 100644 packages/beacon-wallet/lib/beacon-wallet.js delete mode 100644 src/index.ts diff --git a/package.json b/package.json index c56d0822e..db56086cd 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,8 @@ "lint:fix": "eslint 'src/**/*.ts' --fix", "lint-ci": "eslint 'src/**/*.ts' -f json -o lintReport.json || true", "pretest": "ts-node --project tsconfig.test.json scripts/change-files-before-tests.ts", - "test": "npm run check-version && TS_NODE_PROJECT='tsconfig.test.json' nyc mocha --require ts-node/register --require source-map-support/register --full-trace --timeout 40000 ./test/**/**.spec.ts", + "bootstrap": "lerna bootstrap", + "test": "lerna run test --stream", "posttest": " ts-node --project tsconfig.test.json scripts/change-files-after-tests.ts", "test-ci": "nyc --reporter=lcov npm test", "e2e": "ts-node --project tsconfig-node.json e2e/permission-request.ts", @@ -42,7 +43,8 @@ "sonar-scanner": "sonar-scanner", "prepare": "npm run build", "check-version": "ts-node --project tsconfig-cjs.json scripts/check-sdk-version.ts", - "typedoc": "typedoc src/index.ts --includeVersion --internal-aliases publicapi --external-aliases internalapi --logLevel Verbose --listInvalidSymbolLinks && ts-node --project tsconfig-cjs.json scripts/process-docs.ts" + "typedoc": "typedoc src/index.ts --includeVersion --internal-aliases publicapi --external-aliases internalapi --logLevel Verbose --listInvalidSymbolLinks && ts-node --project tsconfig-cjs.json scripts/process-docs.ts", + "publish": "lerna run tsc && lerna publish" }, "author": "Papers GmbH (https://papers.ch)", "dependencies": { diff --git a/packages/beacon-core/lib/beacon-core.js b/packages/beacon-core/lib/beacon-core.js deleted file mode 100644 index 32e416b76..000000000 --- a/packages/beacon-core/lib/beacon-core.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -module.exports = beaconCore - -function beaconCore() { - // TODO -} diff --git a/src/MockWindow.ts b/packages/beacon-core/src/MockWindow.ts similarity index 100% rename from src/MockWindow.ts rename to packages/beacon-core/src/MockWindow.ts diff --git a/src/Serializer.ts b/packages/beacon-core/src/Serializer.ts similarity index 100% rename from src/Serializer.ts rename to packages/beacon-core/src/Serializer.ts diff --git a/src/beacon-message-events.ts b/packages/beacon-core/src/beacon-message-events.ts similarity index 100% rename from src/beacon-message-events.ts rename to packages/beacon-core/src/beacon-message-events.ts diff --git a/src/clients/beacon-client/BeaconClient.ts b/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts similarity index 100% rename from src/clients/beacon-client/BeaconClient.ts rename to packages/beacon-core/src/clients/beacon-client/BeaconClient.ts diff --git a/src/clients/beacon-client/BeaconClientOptions.ts b/packages/beacon-core/src/clients/beacon-client/BeaconClientOptions.ts similarity index 100% rename from src/clients/beacon-client/BeaconClientOptions.ts rename to packages/beacon-core/src/clients/beacon-client/BeaconClientOptions.ts diff --git a/src/clients/client/Client.ts b/packages/beacon-core/src/clients/client/Client.ts similarity index 100% rename from src/clients/client/Client.ts rename to packages/beacon-core/src/clients/client/Client.ts diff --git a/src/clients/client/ClientOptions.ts b/packages/beacon-core/src/clients/client/ClientOptions.ts similarity index 100% rename from src/clients/client/ClientOptions.ts rename to packages/beacon-core/src/clients/client/ClientOptions.ts diff --git a/src/clients/dapp-client/DAppClient.ts b/packages/beacon-core/src/clients/dapp-client/DAppClient.ts similarity index 100% rename from src/clients/dapp-client/DAppClient.ts rename to packages/beacon-core/src/clients/dapp-client/DAppClient.ts diff --git a/src/clients/dapp-client/DAppClientOptions.ts b/packages/beacon-core/src/clients/dapp-client/DAppClientOptions.ts similarity index 100% rename from src/clients/dapp-client/DAppClientOptions.ts rename to packages/beacon-core/src/clients/dapp-client/DAppClientOptions.ts diff --git a/src/clients/wallet-client/WalletClient.ts b/packages/beacon-core/src/clients/wallet-client/WalletClient.ts similarity index 100% rename from src/clients/wallet-client/WalletClient.ts rename to packages/beacon-core/src/clients/wallet-client/WalletClient.ts diff --git a/src/clients/wallet-client/WalletClientOptions.ts b/packages/beacon-core/src/clients/wallet-client/WalletClientOptions.ts similarity index 100% rename from src/clients/wallet-client/WalletClientOptions.ts rename to packages/beacon-core/src/clients/wallet-client/WalletClientOptions.ts diff --git a/src/colorMode.ts b/packages/beacon-core/src/colorMode.ts similarity index 100% rename from src/colorMode.ts rename to packages/beacon-core/src/colorMode.ts diff --git a/src/constants.ts b/packages/beacon-core/src/constants.ts similarity index 100% rename from src/constants.ts rename to packages/beacon-core/src/constants.ts diff --git a/src/debug.ts b/packages/beacon-core/src/debug.ts similarity index 100% rename from src/debug.ts rename to packages/beacon-core/src/debug.ts diff --git a/src/errors/AbortedBeaconError.ts b/packages/beacon-core/src/errors/AbortedBeaconError.ts similarity index 100% rename from src/errors/AbortedBeaconError.ts rename to packages/beacon-core/src/errors/AbortedBeaconError.ts diff --git a/src/errors/BeaconError.ts b/packages/beacon-core/src/errors/BeaconError.ts similarity index 100% rename from src/errors/BeaconError.ts rename to packages/beacon-core/src/errors/BeaconError.ts diff --git a/src/errors/BroadcastBeaconError.ts b/packages/beacon-core/src/errors/BroadcastBeaconError.ts similarity index 100% rename from src/errors/BroadcastBeaconError.ts rename to packages/beacon-core/src/errors/BroadcastBeaconError.ts diff --git a/src/errors/EncryptionTypeNotSupportedBeaconError.ts b/packages/beacon-core/src/errors/EncryptionTypeNotSupportedBeaconError.ts similarity index 100% rename from src/errors/EncryptionTypeNotSupportedBeaconError.ts rename to packages/beacon-core/src/errors/EncryptionTypeNotSupportedBeaconError.ts diff --git a/src/errors/NetworkNotSupportedBeaconError.ts b/packages/beacon-core/src/errors/NetworkNotSupportedBeaconError.ts similarity index 100% rename from src/errors/NetworkNotSupportedBeaconError.ts rename to packages/beacon-core/src/errors/NetworkNotSupportedBeaconError.ts diff --git a/src/errors/NoAddressBeaconError.ts b/packages/beacon-core/src/errors/NoAddressBeaconError.ts similarity index 100% rename from src/errors/NoAddressBeaconError.ts rename to packages/beacon-core/src/errors/NoAddressBeaconError.ts diff --git a/src/errors/NoPrivateKeyBeaconError.ts b/packages/beacon-core/src/errors/NoPrivateKeyBeaconError.ts similarity index 100% rename from src/errors/NoPrivateKeyBeaconError.ts rename to packages/beacon-core/src/errors/NoPrivateKeyBeaconError.ts diff --git a/src/errors/NotGrantedBeaconError.ts b/packages/beacon-core/src/errors/NotGrantedBeaconError.ts similarity index 100% rename from src/errors/NotGrantedBeaconError.ts rename to packages/beacon-core/src/errors/NotGrantedBeaconError.ts diff --git a/src/errors/ParametersInvalidBeaconError.ts b/packages/beacon-core/src/errors/ParametersInvalidBeaconError.ts similarity index 100% rename from src/errors/ParametersInvalidBeaconError.ts rename to packages/beacon-core/src/errors/ParametersInvalidBeaconError.ts diff --git a/src/errors/SignatureTypeNotSupportedBeaconError.ts b/packages/beacon-core/src/errors/SignatureTypeNotSupportedBeaconError.ts similarity index 100% rename from src/errors/SignatureTypeNotSupportedBeaconError.ts rename to packages/beacon-core/src/errors/SignatureTypeNotSupportedBeaconError.ts diff --git a/src/errors/TooManyOperationsBeaconError.ts b/packages/beacon-core/src/errors/TooManyOperationsBeaconError.ts similarity index 100% rename from src/errors/TooManyOperationsBeaconError.ts rename to packages/beacon-core/src/errors/TooManyOperationsBeaconError.ts diff --git a/src/errors/TransactionInvalidBeaconError.ts b/packages/beacon-core/src/errors/TransactionInvalidBeaconError.ts similarity index 100% rename from src/errors/TransactionInvalidBeaconError.ts rename to packages/beacon-core/src/errors/TransactionInvalidBeaconError.ts diff --git a/src/errors/UnknownBeaconError.ts b/packages/beacon-core/src/errors/UnknownBeaconError.ts similarity index 100% rename from src/errors/UnknownBeaconError.ts rename to packages/beacon-core/src/errors/UnknownBeaconError.ts diff --git a/src/events.ts b/packages/beacon-core/src/events.ts similarity index 100% rename from src/events.ts rename to packages/beacon-core/src/events.ts diff --git a/packages/beacon-core/src/index.ts b/packages/beacon-core/src/index.ts index e69de29bb..6a2b6649c 100644 --- a/packages/beacon-core/src/index.ts +++ b/packages/beacon-core/src/index.ts @@ -0,0 +1,355 @@ +/** + * General docs + * @module public + */ +import { P2PCommunicationClient } from './transports/clients/P2PCommunicationClient' +import { AppMetadata } from './types/beacon/AppMetadata' +import { PermissionRequest } from './types/beacon/messages/PermissionRequest' +import { Network } from './types/beacon/Network' +import { BeaconBaseMessage } from './types/beacon/BeaconBaseMessage' +import { BeaconMessageType } from './types/beacon/BeaconMessageType' +import { PermissionScope } from './types/beacon/PermissionScope' +import { PermissionResponse } from './types/beacon/messages/PermissionResponse' +import { OperationRequest } from './types/beacon/messages/OperationRequest' +import { OperationResponse } from './types/beacon/messages/OperationResponse' +import { SignPayloadRequest } from './types/beacon/messages/SignPayloadRequest' +import { SignPayloadResponse } from './types/beacon/messages/SignPayloadResponse' +import { BroadcastRequest } from './types/beacon/messages/BroadcastRequest' +import { BroadcastResponse } from './types/beacon/messages/BroadcastResponse' +import { NetworkType } from './types/beacon/NetworkType' +import { TezosBaseOperation } from './types/tezos/TezosBaseOperation' +import { TezosOperationType } from './types/tezos/OperationTypes' +import { TezosActivateAccountOperation } from './types/tezos/operations/ActivateAccount' +import { TezosBallotOperation } from './types/tezos/operations/Ballot' +import { TezosDelegationOperation } from './types/tezos/operations/Delegation' +import { TezosDoubleBakingEvidenceOperation } from './types/tezos/operations/DoubleBakingEvidence' +import { TezosBlockHeader } from './types/tezos/TezosBlockHeader' +import { TezosDoubleEndorsementEvidenceOperation } from './types/tezos/operations/DoubleEndorsementEvidence' +import { TezosEndorsementOperation } from './types/tezos/operations/Endorsement' +import { TezosOriginationOperation } from './types/tezos/operations/Origination' +import { TezosProposalOperation } from './types/tezos/operations/Proposal' +import { TezosRevealOperation } from './types/tezos/operations/Reveal' +import { TezosSeedNonceRevelationOperation } from './types/tezos/operations/SeedNonceRevelation' +import { TezosTransactionOperation } from './types/tezos/operations/Transaction' +import { MichelsonPrimitives } from './types/tezos/MichelsonPrimitives' +import { TezosTransactionParameters } from './types/tezos/TezosTransactionParameters' +import { Origin } from './types/Origin' +import { AccountInfo, AccountIdentifier } from './types/AccountInfo' +import { EncryptedExtensionMessage, ExtensionMessage } from './types/ExtensionMessage' +import { ExtensionMessageTarget } from './types/ExtensionMessageTarget' +import { TezosOperation } from './types/tezos/TezosOperation' +import { Client } from './clients/client/Client' +import { WalletClient } from './clients/wallet-client/WalletClient' +import { DAppClient } from './clients/dapp-client/DAppClient' +import { BeaconError } from './errors/BeaconError' +import { BeaconErrorType } from './types/BeaconErrorType' +import { BroadcastBeaconError } from './errors/BroadcastBeaconError' +import { NetworkNotSupportedBeaconError } from './errors/NetworkNotSupportedBeaconError' +import { NoAddressBeaconError } from './errors/NoAddressBeaconError' +import { NoPrivateKeyBeaconError } from './errors/NoPrivateKeyBeaconError' +import { NotGrantedBeaconError } from './errors/NotGrantedBeaconError' +import { ParametersInvalidBeaconError } from './errors/ParametersInvalidBeaconError' +import { TooManyOperationsBeaconError } from './errors/TooManyOperationsBeaconError' +import { TransactionInvalidBeaconError } from './errors/TransactionInvalidBeaconError' +import { UnknownBeaconError } from './errors/UnknownBeaconError' +import { ErrorResponse } from './types/beacon/messages/ErrorResponse' +import { TransportStatus } from './types/transport/TransportStatus' +import { TransportType } from './types/transport/TransportType' +import { PostMessageTransport } from './transports/PostMessageTransport' +import { Transport } from './transports/Transport' +import { P2PTransport } from './transports/P2PTransport' +import { Storage } from './storage/Storage' +import { StorageKey } from './types/storage/StorageKey' +import { StorageKeyReturnDefaults } from './types/storage/StorageKeyReturnDefaults' +import { StorageKeyReturnType } from './types/storage/StorageKeyReturnType' +import { ExtendedP2PPairingRequest, P2PPairingRequest } from './types/P2PPairingRequest' +import { ChromeStorage } from './storage/ChromeStorage' +import { LocalStorage } from './storage/LocalStorage' +import { getStorage } from './storage/getStorage' +import { BeaconMessage } from './types/beacon/BeaconMessage' +import { Serializer } from './Serializer' +import { RequestPermissionInput } from './types/RequestPermissionInput' +import { RequestSignPayloadInput } from './types/RequestSignPayloadInput' +// import { RequestEncryptPayloadInput } from './types/RequestEncryptPayloadInput' +import { RequestOperationInput } from './types/RequestOperationInput' +import { RequestBroadcastInput } from './types/RequestBroadcastInput' +import { + PermissionResponseInput, + SignPayloadResponseInput, + // EncryptPayloadResponseInput, + OperationResponseInput, + BroadcastResponseInput, + BeaconResponseInputMessage, + AcknowledgeResponseInput, + ErrorResponseInput +} from './types/beacon/messages/BeaconResponseInputMessage' +import { + PermissionResponseOutput, + SignPayloadResponseOutput, + // EncryptPayloadResponseOutput, + OperationResponseOutput, + BroadcastResponseOutput, + BeaconResponseOutputMessage +} from './types/beacon/messages/BeaconResponseOutputMessage' +import { + PermissionRequestInput, + SignPayloadRequestInput, + // EncryptPayloadRequestInput, + OperationRequestInput, + BroadcastRequestInput, + BeaconRequestInputMessage +} from './types/beacon/messages/BeaconRequestInputMessage' +import { + PermissionRequestOutput, + SignPayloadRequestOutput, + // EncryptPayloadRequestOutput, + OperationRequestOutput, + BroadcastRequestOutput, + BeaconRequestOutputMessage +} from './types/beacon/messages/BeaconRequestOutputMessage' +import { ClientOptions } from './clients/client/ClientOptions' +import { DAppClientOptions } from './clients/dapp-client/DAppClientOptions' +import { WalletClientOptions } from './clients/wallet-client/WalletClientOptions' +import { PermissionInfo } from './types/PermissionInfo' +import { SDK_VERSION, BEACON_VERSION } from './constants' +import { AccountManager } from './managers/AccountManager' +import { AppMetadataManager } from './managers/AppMetadataManager' +import { PermissionManager } from './managers/PermissionManager' +import { BeaconEvent, BeaconEventHandler, defaultEventCallbacks } from './events' +import { getAddressFromPublicKey } from './utils/crypto' +import { BeaconClient } from './clients/beacon-client/BeaconClient' +import { BeaconClientOptions } from './clients/beacon-client/BeaconClientOptions' +import { getAccountIdentifier } from './utils/get-account-identifier' +import { ConnectionContext } from './types/ConnectionContext' +import { Threshold } from './types/beacon/Threshold' +import { + PartialTezosTransactionOperation, + PartialTezosOperation, + PartialTezosDelegationOperation, + PartialTezosOriginationOperation, + PartialTezosRevealOperation +} from './types/tezos/PartialTezosOperation' +import { AbortedBeaconError } from './errors/AbortedBeaconError' +import { ExtendedPeerInfo, PeerInfo } from './types/PeerInfo' +import { availableTransports } from './utils/available-transports' +import { AcknowledgeResponse } from './types/beacon/messages/AcknowledgeResponse' +import { DisconnectMessage } from './types/beacon/messages/DisconnectMessage' +import { DappP2PTransport } from './transports/DappP2PTransport' +import { DappPostMessageTransport } from './transports/DappPostMessageTransport' +import { WalletP2PTransport } from './transports/WalletP2PTransport' +import { WalletPostMessageTransport } from './transports/WalletPostMessageTransport' +import { getSenderId } from './utils/get-sender-id' +import { SigningType } from './types/beacon/SigningType' +import { ExtendedP2PPairingResponse } from './types/P2PPairingResponse' +import { + ExtendedPostMessagePairingRequest, + PostMessagePairingRequest +} from './types/PostMessagePairingRequest' +import { ExtendedPostMessagePairingResponse } from './types/PostMessagePairingResponse' +import { PeerManager } from './managers/PeerManager' +import { MessageBasedClient } from './transports/clients/MessageBasedClient' +import { BeaconRequestMessage } from './types/beacon/BeaconRequestMessage' +import { BeaconResponseMessage } from './types/beacon/BeaconResponseMessage' +import { Pairing } from './ui/alert/Pairing' +import { BlockExplorer } from './utils/block-explorer' +import { TezblockBlockExplorer } from './utils/tezblock-blockexplorer' +import { setDebugEnabled, getDebugEnabled } from './debug' +import { ColorMode } from './types/ColorMode' +// import { EncryptPayloadRequest } from './types/beacon/messages/EncryptPayloadRequest' +// import { EncryptPayloadResponse } from './types/beacon/messages/EncryptPayloadResponse' +// import { EncryptionTypeNotSupportedBeaconError } from './errors/EncryptionTypeNotSupportedBeaconError' +import { SignatureTypeNotSupportedBeaconError } from './errors/SignatureTypeNotSupportedBeaconError' +// import { EncryptionType } from './types/EncryptionType' +// import { EncryptionOperation } from './types/EncryptionOperation' + +// Tezos +export { + TezosBaseOperation, + TezosOperationType, + TezosBlockHeader, + MichelsonPrimitives, + TezosTransactionParameters, + TezosOperation +} + +// Tezos Operations +export { + TezosActivateAccountOperation, + TezosBallotOperation, + TezosDelegationOperation, + TezosDoubleBakingEvidenceOperation, + TezosDoubleEndorsementEvidenceOperation, + TezosEndorsementOperation, + TezosOriginationOperation, + TezosProposalOperation, + TezosRevealOperation, + TezosSeedNonceRevelationOperation, + TezosTransactionOperation, + PartialTezosOperation, + PartialTezosTransactionOperation, + PartialTezosDelegationOperation, + PartialTezosOriginationOperation, + PartialTezosRevealOperation +} + +// Clients +export { + BeaconClient, + BeaconClientOptions, + Client, + ClientOptions, + DAppClient, + DAppClientOptions, + WalletClient, + WalletClientOptions, + P2PCommunicationClient +} + +// Beacon +export { + AccountIdentifier, + AppMetadata, + Network, + NetworkType, + BeaconMessage, + PermissionRequest, + PermissionResponse, + OperationRequest, + OperationResponse, + SignPayloadRequest, + // EncryptPayloadRequest, + SignPayloadResponse, + // EncryptPayloadResponse, + BroadcastRequest, + BroadcastResponse, + AcknowledgeResponse, + DisconnectMessage, + BeaconBaseMessage, + BeaconMessageType, + PermissionScope, + Origin, + AccountInfo, + Threshold, + SigningType, + // EncryptionType, + // EncryptionOperation, + ExtensionMessageTarget, + ExtensionMessage, + EncryptedExtensionMessage, + RequestPermissionInput, + RequestSignPayloadInput, + // RequestEncryptPayloadInput, + RequestOperationInput, + RequestBroadcastInput, + PermissionInfo +} + +export { + PermissionResponseInput, + SignPayloadResponseInput, + // EncryptPayloadResponseInput, + OperationResponseInput, + BroadcastResponseInput, + AcknowledgeResponseInput, + ErrorResponseInput, + PermissionResponseOutput, + SignPayloadResponseOutput, + // EncryptPayloadResponseOutput, + OperationResponseOutput, + BroadcastResponseOutput, + PermissionRequestInput, + SignPayloadRequestInput, + // EncryptPayloadRequestInput, + OperationRequestInput, + BroadcastRequestInput, + PermissionRequestOutput, + SignPayloadRequestOutput, + // EncryptPayloadRequestOutput, + OperationRequestOutput, + BroadcastRequestOutput, + BeaconRequestInputMessage, + BeaconRequestOutputMessage, + BeaconResponseInputMessage, + BeaconResponseOutputMessage, + BeaconRequestMessage, + BeaconResponseMessage +} + +// Errors +export { + BeaconError, + BeaconErrorType, + ErrorResponse, + AbortedBeaconError, + BroadcastBeaconError, + NetworkNotSupportedBeaconError, + NoAddressBeaconError, + NoPrivateKeyBeaconError, + NotGrantedBeaconError, + ParametersInvalidBeaconError, + TooManyOperationsBeaconError, + TransactionInvalidBeaconError, + SignatureTypeNotSupportedBeaconError, + // EncryptionTypeNotSupportedBeaconError, + UnknownBeaconError +} + +// Transport +export { + TransportStatus, + TransportType, + Transport, + PostMessageTransport, + P2PTransport, + WalletP2PTransport, + WalletPostMessageTransport, + DappP2PTransport, + DappPostMessageTransport, + MessageBasedClient, + Pairing +} + +// Events +export { BeaconEvent, BeaconEventHandler, defaultEventCallbacks } + +// Storage +export { + Storage, + StorageKey, + StorageKeyReturnDefaults, + StorageKeyReturnType, + ChromeStorage, + LocalStorage, + getStorage +} + +// Managers +export { PeerManager, AccountManager, AppMetadataManager, PermissionManager } + +// Constants +export { SDK_VERSION, BEACON_VERSION } + +// Utils +export { getSenderId, getAccountIdentifier, getAddressFromPublicKey } + +// Pairing + +export { + PeerInfo, + ExtendedPeerInfo, + PostMessagePairingRequest, + ExtendedPostMessagePairingRequest, + ExtendedPostMessagePairingResponse, + P2PPairingRequest, + ExtendedP2PPairingRequest, + ExtendedP2PPairingResponse +} + +// BlockExplorer +export { BlockExplorer, TezblockBlockExplorer } + +// Others +export { ConnectionContext, Serializer, availableTransports, ColorMode } + +// Debug +export { setDebugEnabled, getDebugEnabled } diff --git a/src/interceptors/IncomingRequestInterceptor.ts b/packages/beacon-core/src/interceptors/IncomingRequestInterceptor.ts similarity index 100% rename from src/interceptors/IncomingRequestInterceptor.ts rename to packages/beacon-core/src/interceptors/IncomingRequestInterceptor.ts diff --git a/src/interceptors/OutgoingResponseInterceptor.ts b/packages/beacon-core/src/interceptors/OutgoingResponseInterceptor.ts similarity index 100% rename from src/interceptors/OutgoingResponseInterceptor.ts rename to packages/beacon-core/src/interceptors/OutgoingResponseInterceptor.ts diff --git a/src/managers/AccountManager.ts b/packages/beacon-core/src/managers/AccountManager.ts similarity index 100% rename from src/managers/AccountManager.ts rename to packages/beacon-core/src/managers/AccountManager.ts diff --git a/src/managers/AppMetadataManager.ts b/packages/beacon-core/src/managers/AppMetadataManager.ts similarity index 100% rename from src/managers/AppMetadataManager.ts rename to packages/beacon-core/src/managers/AppMetadataManager.ts diff --git a/src/managers/PeerManager.ts b/packages/beacon-core/src/managers/PeerManager.ts similarity index 100% rename from src/managers/PeerManager.ts rename to packages/beacon-core/src/managers/PeerManager.ts diff --git a/src/managers/PermissionManager.ts b/packages/beacon-core/src/managers/PermissionManager.ts similarity index 100% rename from src/managers/PermissionManager.ts rename to packages/beacon-core/src/managers/PermissionManager.ts diff --git a/src/managers/PermissionValidator.ts b/packages/beacon-core/src/managers/PermissionValidator.ts similarity index 100% rename from src/managers/PermissionValidator.ts rename to packages/beacon-core/src/managers/PermissionValidator.ts diff --git a/src/managers/StorageManager.ts b/packages/beacon-core/src/managers/StorageManager.ts similarity index 100% rename from src/managers/StorageManager.ts rename to packages/beacon-core/src/managers/StorageManager.ts diff --git a/src/matrix-client/MatrixClient.ts b/packages/beacon-core/src/matrix-client/MatrixClient.ts similarity index 100% rename from src/matrix-client/MatrixClient.ts rename to packages/beacon-core/src/matrix-client/MatrixClient.ts diff --git a/src/matrix-client/MatrixClientEventEmitter.ts b/packages/beacon-core/src/matrix-client/MatrixClientEventEmitter.ts similarity index 100% rename from src/matrix-client/MatrixClientEventEmitter.ts rename to packages/beacon-core/src/matrix-client/MatrixClientEventEmitter.ts diff --git a/src/matrix-client/MatrixClientStore.ts b/packages/beacon-core/src/matrix-client/MatrixClientStore.ts similarity index 100% rename from src/matrix-client/MatrixClientStore.ts rename to packages/beacon-core/src/matrix-client/MatrixClientStore.ts diff --git a/src/matrix-client/MatrixHttpClient.ts b/packages/beacon-core/src/matrix-client/MatrixHttpClient.ts similarity index 100% rename from src/matrix-client/MatrixHttpClient.ts rename to packages/beacon-core/src/matrix-client/MatrixHttpClient.ts diff --git a/src/matrix-client/models/MatrixClientEvent.ts b/packages/beacon-core/src/matrix-client/models/MatrixClientEvent.ts similarity index 100% rename from src/matrix-client/models/MatrixClientEvent.ts rename to packages/beacon-core/src/matrix-client/models/MatrixClientEvent.ts diff --git a/src/matrix-client/models/MatrixMessage.ts b/packages/beacon-core/src/matrix-client/models/MatrixMessage.ts similarity index 100% rename from src/matrix-client/models/MatrixMessage.ts rename to packages/beacon-core/src/matrix-client/models/MatrixMessage.ts diff --git a/src/matrix-client/models/MatrixRoom.ts b/packages/beacon-core/src/matrix-client/models/MatrixRoom.ts similarity index 100% rename from src/matrix-client/models/MatrixRoom.ts rename to packages/beacon-core/src/matrix-client/models/MatrixRoom.ts diff --git a/src/matrix-client/models/MatrixStateEvent.ts b/packages/beacon-core/src/matrix-client/models/MatrixStateEvent.ts similarity index 100% rename from src/matrix-client/models/MatrixStateEvent.ts rename to packages/beacon-core/src/matrix-client/models/MatrixStateEvent.ts diff --git a/src/matrix-client/models/api/MatrixEventSend.ts b/packages/beacon-core/src/matrix-client/models/api/MatrixEventSend.ts similarity index 100% rename from src/matrix-client/models/api/MatrixEventSend.ts rename to packages/beacon-core/src/matrix-client/models/api/MatrixEventSend.ts diff --git a/src/matrix-client/models/api/MatrixLogin.ts b/packages/beacon-core/src/matrix-client/models/api/MatrixLogin.ts similarity index 100% rename from src/matrix-client/models/api/MatrixLogin.ts rename to packages/beacon-core/src/matrix-client/models/api/MatrixLogin.ts diff --git a/src/matrix-client/models/api/MatrixRequest.ts b/packages/beacon-core/src/matrix-client/models/api/MatrixRequest.ts similarity index 100% rename from src/matrix-client/models/api/MatrixRequest.ts rename to packages/beacon-core/src/matrix-client/models/api/MatrixRequest.ts diff --git a/src/matrix-client/models/api/MatrixRoomCreate.ts b/packages/beacon-core/src/matrix-client/models/api/MatrixRoomCreate.ts similarity index 100% rename from src/matrix-client/models/api/MatrixRoomCreate.ts rename to packages/beacon-core/src/matrix-client/models/api/MatrixRoomCreate.ts diff --git a/src/matrix-client/models/api/MatrixRoomInvite.ts b/packages/beacon-core/src/matrix-client/models/api/MatrixRoomInvite.ts similarity index 100% rename from src/matrix-client/models/api/MatrixRoomInvite.ts rename to packages/beacon-core/src/matrix-client/models/api/MatrixRoomInvite.ts diff --git a/src/matrix-client/models/api/MatrixRoomJoin.ts b/packages/beacon-core/src/matrix-client/models/api/MatrixRoomJoin.ts similarity index 100% rename from src/matrix-client/models/api/MatrixRoomJoin.ts rename to packages/beacon-core/src/matrix-client/models/api/MatrixRoomJoin.ts diff --git a/src/matrix-client/models/api/MatrixSync.ts b/packages/beacon-core/src/matrix-client/models/api/MatrixSync.ts similarity index 100% rename from src/matrix-client/models/api/MatrixSync.ts rename to packages/beacon-core/src/matrix-client/models/api/MatrixSync.ts diff --git a/src/matrix-client/services/MatrixEventService.ts b/packages/beacon-core/src/matrix-client/services/MatrixEventService.ts similarity index 100% rename from src/matrix-client/services/MatrixEventService.ts rename to packages/beacon-core/src/matrix-client/services/MatrixEventService.ts diff --git a/src/matrix-client/services/MatrixRoomService.ts b/packages/beacon-core/src/matrix-client/services/MatrixRoomService.ts similarity index 100% rename from src/matrix-client/services/MatrixRoomService.ts rename to packages/beacon-core/src/matrix-client/services/MatrixRoomService.ts diff --git a/src/matrix-client/services/MatrixUserService.ts b/packages/beacon-core/src/matrix-client/services/MatrixUserService.ts similarity index 100% rename from src/matrix-client/services/MatrixUserService.ts rename to packages/beacon-core/src/matrix-client/services/MatrixUserService.ts diff --git a/src/matrix-client/utils/events.ts b/packages/beacon-core/src/matrix-client/utils/events.ts similarity index 100% rename from src/matrix-client/utils/events.ts rename to packages/beacon-core/src/matrix-client/utils/events.ts diff --git a/src/migrations/migrate-0.7.0.ts b/packages/beacon-core/src/migrations/migrate-0.7.0.ts similarity index 100% rename from src/migrations/migrate-0.7.0.ts rename to packages/beacon-core/src/migrations/migrate-0.7.0.ts diff --git a/src/migrations/migrations.ts b/packages/beacon-core/src/migrations/migrations.ts similarity index 100% rename from src/migrations/migrations.ts rename to packages/beacon-core/src/migrations/migrations.ts diff --git a/src/storage/ChromeStorage.ts b/packages/beacon-core/src/storage/ChromeStorage.ts similarity index 100% rename from src/storage/ChromeStorage.ts rename to packages/beacon-core/src/storage/ChromeStorage.ts diff --git a/src/storage/LocalStorage.ts b/packages/beacon-core/src/storage/LocalStorage.ts similarity index 100% rename from src/storage/LocalStorage.ts rename to packages/beacon-core/src/storage/LocalStorage.ts diff --git a/src/storage/Storage.ts b/packages/beacon-core/src/storage/Storage.ts similarity index 100% rename from src/storage/Storage.ts rename to packages/beacon-core/src/storage/Storage.ts diff --git a/src/storage/getStorage.ts b/packages/beacon-core/src/storage/getStorage.ts similarity index 100% rename from src/storage/getStorage.ts rename to packages/beacon-core/src/storage/getStorage.ts diff --git a/src/transports/DappP2PTransport.ts b/packages/beacon-core/src/transports/DappP2PTransport.ts similarity index 100% rename from src/transports/DappP2PTransport.ts rename to packages/beacon-core/src/transports/DappP2PTransport.ts diff --git a/src/transports/DappPostMessageTransport.ts b/packages/beacon-core/src/transports/DappPostMessageTransport.ts similarity index 100% rename from src/transports/DappPostMessageTransport.ts rename to packages/beacon-core/src/transports/DappPostMessageTransport.ts diff --git a/src/transports/P2PTransport.ts b/packages/beacon-core/src/transports/P2PTransport.ts similarity index 100% rename from src/transports/P2PTransport.ts rename to packages/beacon-core/src/transports/P2PTransport.ts diff --git a/src/transports/PostMessageTransport.ts b/packages/beacon-core/src/transports/PostMessageTransport.ts similarity index 100% rename from src/transports/PostMessageTransport.ts rename to packages/beacon-core/src/transports/PostMessageTransport.ts diff --git a/src/transports/Transport.ts b/packages/beacon-core/src/transports/Transport.ts similarity index 100% rename from src/transports/Transport.ts rename to packages/beacon-core/src/transports/Transport.ts diff --git a/src/transports/WalletP2PTransport.ts b/packages/beacon-core/src/transports/WalletP2PTransport.ts similarity index 100% rename from src/transports/WalletP2PTransport.ts rename to packages/beacon-core/src/transports/WalletP2PTransport.ts diff --git a/src/transports/WalletPostMessageTransport.ts b/packages/beacon-core/src/transports/WalletPostMessageTransport.ts similarity index 100% rename from src/transports/WalletPostMessageTransport.ts rename to packages/beacon-core/src/transports/WalletPostMessageTransport.ts diff --git a/src/transports/clients/CommunicationClient.ts b/packages/beacon-core/src/transports/clients/CommunicationClient.ts similarity index 100% rename from src/transports/clients/CommunicationClient.ts rename to packages/beacon-core/src/transports/clients/CommunicationClient.ts diff --git a/src/transports/clients/MessageBasedClient.ts b/packages/beacon-core/src/transports/clients/MessageBasedClient.ts similarity index 100% rename from src/transports/clients/MessageBasedClient.ts rename to packages/beacon-core/src/transports/clients/MessageBasedClient.ts diff --git a/src/transports/clients/P2PCommunicationClient.ts b/packages/beacon-core/src/transports/clients/P2PCommunicationClient.ts similarity index 100% rename from src/transports/clients/P2PCommunicationClient.ts rename to packages/beacon-core/src/transports/clients/P2PCommunicationClient.ts diff --git a/src/transports/clients/PostMessageClient.ts b/packages/beacon-core/src/transports/clients/PostMessageClient.ts similarity index 100% rename from src/transports/clients/PostMessageClient.ts rename to packages/beacon-core/src/transports/clients/PostMessageClient.ts diff --git a/src/types/AccountInfo.ts b/packages/beacon-core/src/types/AccountInfo.ts similarity index 100% rename from src/types/AccountInfo.ts rename to packages/beacon-core/src/types/AccountInfo.ts diff --git a/src/types/BeaconErrorType.ts b/packages/beacon-core/src/types/BeaconErrorType.ts similarity index 100% rename from src/types/BeaconErrorType.ts rename to packages/beacon-core/src/types/BeaconErrorType.ts diff --git a/src/types/ColorMode.ts b/packages/beacon-core/src/types/ColorMode.ts similarity index 100% rename from src/types/ColorMode.ts rename to packages/beacon-core/src/types/ColorMode.ts diff --git a/src/types/ConnectionContext.ts b/packages/beacon-core/src/types/ConnectionContext.ts similarity index 100% rename from src/types/ConnectionContext.ts rename to packages/beacon-core/src/types/ConnectionContext.ts diff --git a/src/types/EncryptionOperation.ts b/packages/beacon-core/src/types/EncryptionOperation.ts similarity index 100% rename from src/types/EncryptionOperation.ts rename to packages/beacon-core/src/types/EncryptionOperation.ts diff --git a/src/types/EncryptionType.ts b/packages/beacon-core/src/types/EncryptionType.ts similarity index 100% rename from src/types/EncryptionType.ts rename to packages/beacon-core/src/types/EncryptionType.ts diff --git a/src/types/Extension.ts b/packages/beacon-core/src/types/Extension.ts similarity index 100% rename from src/types/Extension.ts rename to packages/beacon-core/src/types/Extension.ts diff --git a/src/types/ExtensionMessage.ts b/packages/beacon-core/src/types/ExtensionMessage.ts similarity index 100% rename from src/types/ExtensionMessage.ts rename to packages/beacon-core/src/types/ExtensionMessage.ts diff --git a/src/types/ExtensionMessageTarget.ts b/packages/beacon-core/src/types/ExtensionMessageTarget.ts similarity index 100% rename from src/types/ExtensionMessageTarget.ts rename to packages/beacon-core/src/types/ExtensionMessageTarget.ts diff --git a/src/types/Origin.ts b/packages/beacon-core/src/types/Origin.ts similarity index 100% rename from src/types/Origin.ts rename to packages/beacon-core/src/types/Origin.ts diff --git a/src/types/P2PPairingRequest.ts b/packages/beacon-core/src/types/P2PPairingRequest.ts similarity index 100% rename from src/types/P2PPairingRequest.ts rename to packages/beacon-core/src/types/P2PPairingRequest.ts diff --git a/src/types/P2PPairingResponse.ts b/packages/beacon-core/src/types/P2PPairingResponse.ts similarity index 100% rename from src/types/P2PPairingResponse.ts rename to packages/beacon-core/src/types/P2PPairingResponse.ts diff --git a/src/types/PeerInfo.ts b/packages/beacon-core/src/types/PeerInfo.ts similarity index 100% rename from src/types/PeerInfo.ts rename to packages/beacon-core/src/types/PeerInfo.ts diff --git a/src/types/PermissionEntity.ts b/packages/beacon-core/src/types/PermissionEntity.ts similarity index 100% rename from src/types/PermissionEntity.ts rename to packages/beacon-core/src/types/PermissionEntity.ts diff --git a/src/types/PermissionInfo.ts b/packages/beacon-core/src/types/PermissionInfo.ts similarity index 100% rename from src/types/PermissionInfo.ts rename to packages/beacon-core/src/types/PermissionInfo.ts diff --git a/src/types/PostMessagePairingRequest.ts b/packages/beacon-core/src/types/PostMessagePairingRequest.ts similarity index 100% rename from src/types/PostMessagePairingRequest.ts rename to packages/beacon-core/src/types/PostMessagePairingRequest.ts diff --git a/src/types/PostMessagePairingResponse.ts b/packages/beacon-core/src/types/PostMessagePairingResponse.ts similarity index 100% rename from src/types/PostMessagePairingResponse.ts rename to packages/beacon-core/src/types/PostMessagePairingResponse.ts diff --git a/src/types/RequestBroadcastInput.ts b/packages/beacon-core/src/types/RequestBroadcastInput.ts similarity index 100% rename from src/types/RequestBroadcastInput.ts rename to packages/beacon-core/src/types/RequestBroadcastInput.ts diff --git a/src/types/RequestEncryptPayloadInput.ts b/packages/beacon-core/src/types/RequestEncryptPayloadInput.ts similarity index 100% rename from src/types/RequestEncryptPayloadInput.ts rename to packages/beacon-core/src/types/RequestEncryptPayloadInput.ts diff --git a/src/types/RequestOperationInput.ts b/packages/beacon-core/src/types/RequestOperationInput.ts similarity index 100% rename from src/types/RequestOperationInput.ts rename to packages/beacon-core/src/types/RequestOperationInput.ts diff --git a/src/types/RequestPermissionInput.ts b/packages/beacon-core/src/types/RequestPermissionInput.ts similarity index 100% rename from src/types/RequestPermissionInput.ts rename to packages/beacon-core/src/types/RequestPermissionInput.ts diff --git a/src/types/RequestSignPayloadInput.ts b/packages/beacon-core/src/types/RequestSignPayloadInput.ts similarity index 100% rename from src/types/RequestSignPayloadInput.ts rename to packages/beacon-core/src/types/RequestSignPayloadInput.ts diff --git a/src/types/beacon/AppMetadata.ts b/packages/beacon-core/src/types/beacon/AppMetadata.ts similarity index 100% rename from src/types/beacon/AppMetadata.ts rename to packages/beacon-core/src/types/beacon/AppMetadata.ts diff --git a/src/types/beacon/BeaconBaseMessage.ts b/packages/beacon-core/src/types/beacon/BeaconBaseMessage.ts similarity index 100% rename from src/types/beacon/BeaconBaseMessage.ts rename to packages/beacon-core/src/types/beacon/BeaconBaseMessage.ts diff --git a/src/types/beacon/BeaconMessage.ts b/packages/beacon-core/src/types/beacon/BeaconMessage.ts similarity index 100% rename from src/types/beacon/BeaconMessage.ts rename to packages/beacon-core/src/types/beacon/BeaconMessage.ts diff --git a/src/types/beacon/BeaconMessageType.ts b/packages/beacon-core/src/types/beacon/BeaconMessageType.ts similarity index 100% rename from src/types/beacon/BeaconMessageType.ts rename to packages/beacon-core/src/types/beacon/BeaconMessageType.ts diff --git a/src/types/beacon/BeaconRequestMessage.ts b/packages/beacon-core/src/types/beacon/BeaconRequestMessage.ts similarity index 100% rename from src/types/beacon/BeaconRequestMessage.ts rename to packages/beacon-core/src/types/beacon/BeaconRequestMessage.ts diff --git a/src/types/beacon/BeaconResponseMessage.ts b/packages/beacon-core/src/types/beacon/BeaconResponseMessage.ts similarity index 100% rename from src/types/beacon/BeaconResponseMessage.ts rename to packages/beacon-core/src/types/beacon/BeaconResponseMessage.ts diff --git a/src/types/beacon/Network.ts b/packages/beacon-core/src/types/beacon/Network.ts similarity index 100% rename from src/types/beacon/Network.ts rename to packages/beacon-core/src/types/beacon/Network.ts diff --git a/src/types/beacon/NetworkType.ts b/packages/beacon-core/src/types/beacon/NetworkType.ts similarity index 100% rename from src/types/beacon/NetworkType.ts rename to packages/beacon-core/src/types/beacon/NetworkType.ts diff --git a/src/types/beacon/PermissionScope.ts b/packages/beacon-core/src/types/beacon/PermissionScope.ts similarity index 100% rename from src/types/beacon/PermissionScope.ts rename to packages/beacon-core/src/types/beacon/PermissionScope.ts diff --git a/src/types/beacon/SigningType.ts b/packages/beacon-core/src/types/beacon/SigningType.ts similarity index 100% rename from src/types/beacon/SigningType.ts rename to packages/beacon-core/src/types/beacon/SigningType.ts diff --git a/src/types/beacon/Threshold.ts b/packages/beacon-core/src/types/beacon/Threshold.ts similarity index 100% rename from src/types/beacon/Threshold.ts rename to packages/beacon-core/src/types/beacon/Threshold.ts diff --git a/src/types/beacon/messages/AcknowledgeResponse.ts b/packages/beacon-core/src/types/beacon/messages/AcknowledgeResponse.ts similarity index 100% rename from src/types/beacon/messages/AcknowledgeResponse.ts rename to packages/beacon-core/src/types/beacon/messages/AcknowledgeResponse.ts diff --git a/src/types/beacon/messages/BeaconRequestInputMessage.ts b/packages/beacon-core/src/types/beacon/messages/BeaconRequestInputMessage.ts similarity index 100% rename from src/types/beacon/messages/BeaconRequestInputMessage.ts rename to packages/beacon-core/src/types/beacon/messages/BeaconRequestInputMessage.ts diff --git a/src/types/beacon/messages/BeaconRequestOutputMessage.ts b/packages/beacon-core/src/types/beacon/messages/BeaconRequestOutputMessage.ts similarity index 100% rename from src/types/beacon/messages/BeaconRequestOutputMessage.ts rename to packages/beacon-core/src/types/beacon/messages/BeaconRequestOutputMessage.ts diff --git a/src/types/beacon/messages/BeaconResponseInputMessage.ts b/packages/beacon-core/src/types/beacon/messages/BeaconResponseInputMessage.ts similarity index 100% rename from src/types/beacon/messages/BeaconResponseInputMessage.ts rename to packages/beacon-core/src/types/beacon/messages/BeaconResponseInputMessage.ts diff --git a/src/types/beacon/messages/BeaconResponseOutputMessage.ts b/packages/beacon-core/src/types/beacon/messages/BeaconResponseOutputMessage.ts similarity index 100% rename from src/types/beacon/messages/BeaconResponseOutputMessage.ts rename to packages/beacon-core/src/types/beacon/messages/BeaconResponseOutputMessage.ts diff --git a/src/types/beacon/messages/BroadcastRequest.ts b/packages/beacon-core/src/types/beacon/messages/BroadcastRequest.ts similarity index 100% rename from src/types/beacon/messages/BroadcastRequest.ts rename to packages/beacon-core/src/types/beacon/messages/BroadcastRequest.ts diff --git a/src/types/beacon/messages/BroadcastResponse.ts b/packages/beacon-core/src/types/beacon/messages/BroadcastResponse.ts similarity index 100% rename from src/types/beacon/messages/BroadcastResponse.ts rename to packages/beacon-core/src/types/beacon/messages/BroadcastResponse.ts diff --git a/src/types/beacon/messages/DisconnectMessage.ts b/packages/beacon-core/src/types/beacon/messages/DisconnectMessage.ts similarity index 100% rename from src/types/beacon/messages/DisconnectMessage.ts rename to packages/beacon-core/src/types/beacon/messages/DisconnectMessage.ts diff --git a/src/types/beacon/messages/EncryptPayloadRequest.ts b/packages/beacon-core/src/types/beacon/messages/EncryptPayloadRequest.ts similarity index 100% rename from src/types/beacon/messages/EncryptPayloadRequest.ts rename to packages/beacon-core/src/types/beacon/messages/EncryptPayloadRequest.ts diff --git a/src/types/beacon/messages/EncryptPayloadResponse.ts b/packages/beacon-core/src/types/beacon/messages/EncryptPayloadResponse.ts similarity index 100% rename from src/types/beacon/messages/EncryptPayloadResponse.ts rename to packages/beacon-core/src/types/beacon/messages/EncryptPayloadResponse.ts diff --git a/src/types/beacon/messages/ErrorResponse.ts b/packages/beacon-core/src/types/beacon/messages/ErrorResponse.ts similarity index 100% rename from src/types/beacon/messages/ErrorResponse.ts rename to packages/beacon-core/src/types/beacon/messages/ErrorResponse.ts diff --git a/src/types/beacon/messages/OperationRequest.ts b/packages/beacon-core/src/types/beacon/messages/OperationRequest.ts similarity index 100% rename from src/types/beacon/messages/OperationRequest.ts rename to packages/beacon-core/src/types/beacon/messages/OperationRequest.ts diff --git a/src/types/beacon/messages/OperationResponse.ts b/packages/beacon-core/src/types/beacon/messages/OperationResponse.ts similarity index 100% rename from src/types/beacon/messages/OperationResponse.ts rename to packages/beacon-core/src/types/beacon/messages/OperationResponse.ts diff --git a/src/types/beacon/messages/PermissionRequest.ts b/packages/beacon-core/src/types/beacon/messages/PermissionRequest.ts similarity index 100% rename from src/types/beacon/messages/PermissionRequest.ts rename to packages/beacon-core/src/types/beacon/messages/PermissionRequest.ts diff --git a/src/types/beacon/messages/PermissionResponse.ts b/packages/beacon-core/src/types/beacon/messages/PermissionResponse.ts similarity index 100% rename from src/types/beacon/messages/PermissionResponse.ts rename to packages/beacon-core/src/types/beacon/messages/PermissionResponse.ts diff --git a/src/types/beacon/messages/SignPayloadRequest.ts b/packages/beacon-core/src/types/beacon/messages/SignPayloadRequest.ts similarity index 100% rename from src/types/beacon/messages/SignPayloadRequest.ts rename to packages/beacon-core/src/types/beacon/messages/SignPayloadRequest.ts diff --git a/src/types/beacon/messages/SignPayloadResponse.ts b/packages/beacon-core/src/types/beacon/messages/SignPayloadResponse.ts similarity index 100% rename from src/types/beacon/messages/SignPayloadResponse.ts rename to packages/beacon-core/src/types/beacon/messages/SignPayloadResponse.ts diff --git a/src/types/storage/StorageKey.ts b/packages/beacon-core/src/types/storage/StorageKey.ts similarity index 100% rename from src/types/storage/StorageKey.ts rename to packages/beacon-core/src/types/storage/StorageKey.ts diff --git a/src/types/storage/StorageKeyReturnDefaults.ts b/packages/beacon-core/src/types/storage/StorageKeyReturnDefaults.ts similarity index 100% rename from src/types/storage/StorageKeyReturnDefaults.ts rename to packages/beacon-core/src/types/storage/StorageKeyReturnDefaults.ts diff --git a/src/types/storage/StorageKeyReturnType.ts b/packages/beacon-core/src/types/storage/StorageKeyReturnType.ts similarity index 100% rename from src/types/storage/StorageKeyReturnType.ts rename to packages/beacon-core/src/types/storage/StorageKeyReturnType.ts diff --git a/src/types/tezos/MichelineMichelsonV1Expression.ts b/packages/beacon-core/src/types/tezos/MichelineMichelsonV1Expression.ts similarity index 100% rename from src/types/tezos/MichelineMichelsonV1Expression.ts rename to packages/beacon-core/src/types/tezos/MichelineMichelsonV1Expression.ts diff --git a/src/types/tezos/MichelsonPrimitives.ts b/packages/beacon-core/src/types/tezos/MichelsonPrimitives.ts similarity index 100% rename from src/types/tezos/MichelsonPrimitives.ts rename to packages/beacon-core/src/types/tezos/MichelsonPrimitives.ts diff --git a/src/types/tezos/OperationTypes.ts b/packages/beacon-core/src/types/tezos/OperationTypes.ts similarity index 100% rename from src/types/tezos/OperationTypes.ts rename to packages/beacon-core/src/types/tezos/OperationTypes.ts diff --git a/src/types/tezos/PartialTezosOperation.ts b/packages/beacon-core/src/types/tezos/PartialTezosOperation.ts similarity index 100% rename from src/types/tezos/PartialTezosOperation.ts rename to packages/beacon-core/src/types/tezos/PartialTezosOperation.ts diff --git a/src/types/tezos/TezosBaseOperation.ts b/packages/beacon-core/src/types/tezos/TezosBaseOperation.ts similarity index 100% rename from src/types/tezos/TezosBaseOperation.ts rename to packages/beacon-core/src/types/tezos/TezosBaseOperation.ts diff --git a/src/types/tezos/TezosBlockHeader.ts b/packages/beacon-core/src/types/tezos/TezosBlockHeader.ts similarity index 100% rename from src/types/tezos/TezosBlockHeader.ts rename to packages/beacon-core/src/types/tezos/TezosBlockHeader.ts diff --git a/src/types/tezos/TezosOperation.ts b/packages/beacon-core/src/types/tezos/TezosOperation.ts similarity index 100% rename from src/types/tezos/TezosOperation.ts rename to packages/beacon-core/src/types/tezos/TezosOperation.ts diff --git a/src/types/tezos/TezosTransactionParameters.ts b/packages/beacon-core/src/types/tezos/TezosTransactionParameters.ts similarity index 100% rename from src/types/tezos/TezosTransactionParameters.ts rename to packages/beacon-core/src/types/tezos/TezosTransactionParameters.ts diff --git a/src/types/tezos/operations/ActivateAccount.ts b/packages/beacon-core/src/types/tezos/operations/ActivateAccount.ts similarity index 100% rename from src/types/tezos/operations/ActivateAccount.ts rename to packages/beacon-core/src/types/tezos/operations/ActivateAccount.ts diff --git a/src/types/tezos/operations/Ballot.ts b/packages/beacon-core/src/types/tezos/operations/Ballot.ts similarity index 100% rename from src/types/tezos/operations/Ballot.ts rename to packages/beacon-core/src/types/tezos/operations/Ballot.ts diff --git a/src/types/tezos/operations/Delegation.ts b/packages/beacon-core/src/types/tezos/operations/Delegation.ts similarity index 100% rename from src/types/tezos/operations/Delegation.ts rename to packages/beacon-core/src/types/tezos/operations/Delegation.ts diff --git a/src/types/tezos/operations/DoubleBakingEvidence.ts b/packages/beacon-core/src/types/tezos/operations/DoubleBakingEvidence.ts similarity index 100% rename from src/types/tezos/operations/DoubleBakingEvidence.ts rename to packages/beacon-core/src/types/tezos/operations/DoubleBakingEvidence.ts diff --git a/src/types/tezos/operations/DoubleEndorsementEvidence.ts b/packages/beacon-core/src/types/tezos/operations/DoubleEndorsementEvidence.ts similarity index 100% rename from src/types/tezos/operations/DoubleEndorsementEvidence.ts rename to packages/beacon-core/src/types/tezos/operations/DoubleEndorsementEvidence.ts diff --git a/src/types/tezos/operations/Endorsement.ts b/packages/beacon-core/src/types/tezos/operations/Endorsement.ts similarity index 100% rename from src/types/tezos/operations/Endorsement.ts rename to packages/beacon-core/src/types/tezos/operations/Endorsement.ts diff --git a/src/types/tezos/operations/Origination.ts b/packages/beacon-core/src/types/tezos/operations/Origination.ts similarity index 100% rename from src/types/tezos/operations/Origination.ts rename to packages/beacon-core/src/types/tezos/operations/Origination.ts diff --git a/src/types/tezos/operations/Proposal.ts b/packages/beacon-core/src/types/tezos/operations/Proposal.ts similarity index 100% rename from src/types/tezos/operations/Proposal.ts rename to packages/beacon-core/src/types/tezos/operations/Proposal.ts diff --git a/src/types/tezos/operations/Reveal.ts b/packages/beacon-core/src/types/tezos/operations/Reveal.ts similarity index 100% rename from src/types/tezos/operations/Reveal.ts rename to packages/beacon-core/src/types/tezos/operations/Reveal.ts diff --git a/src/types/tezos/operations/SeedNonceRevelation.ts b/packages/beacon-core/src/types/tezos/operations/SeedNonceRevelation.ts similarity index 100% rename from src/types/tezos/operations/SeedNonceRevelation.ts rename to packages/beacon-core/src/types/tezos/operations/SeedNonceRevelation.ts diff --git a/src/types/tezos/operations/Transaction.ts b/packages/beacon-core/src/types/tezos/operations/Transaction.ts similarity index 100% rename from src/types/tezos/operations/Transaction.ts rename to packages/beacon-core/src/types/tezos/operations/Transaction.ts diff --git a/src/types/transport/TransportStatus.ts b/packages/beacon-core/src/types/transport/TransportStatus.ts similarity index 100% rename from src/types/transport/TransportStatus.ts rename to packages/beacon-core/src/types/transport/TransportStatus.ts diff --git a/src/types/transport/TransportType.ts b/packages/beacon-core/src/types/transport/TransportType.ts similarity index 100% rename from src/types/transport/TransportType.ts rename to packages/beacon-core/src/types/transport/TransportType.ts diff --git a/src/typings/bs58check.d.ts b/packages/beacon-core/src/typings/bs58check.d.ts similarity index 100% rename from src/typings/bs58check.d.ts rename to packages/beacon-core/src/typings/bs58check.d.ts diff --git a/src/ui/alert/Alert.ts b/packages/beacon-core/src/ui/alert/Alert.ts similarity index 100% rename from src/ui/alert/Alert.ts rename to packages/beacon-core/src/ui/alert/Alert.ts diff --git a/src/ui/alert/Pairing.ts b/packages/beacon-core/src/ui/alert/Pairing.ts similarity index 100% rename from src/ui/alert/Pairing.ts rename to packages/beacon-core/src/ui/alert/Pairing.ts diff --git a/src/ui/alert/PairingAlert.ts b/packages/beacon-core/src/ui/alert/PairingAlert.ts similarity index 100% rename from src/ui/alert/PairingAlert.ts rename to packages/beacon-core/src/ui/alert/PairingAlert.ts diff --git a/packages/beacon-core/src/ui/alert/alert-templates.ts b/packages/beacon-core/src/ui/alert/alert-templates.ts new file mode 100644 index 000000000..3d6da9974 --- /dev/null +++ b/packages/beacon-core/src/ui/alert/alert-templates.ts @@ -0,0 +1,15 @@ +export const alertTemplates = { + container: + '
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

\n {{callToAction}}\n

\n\n {{main}}\n\n
\n {{buttons}}\n
\n
\n
\n
\n
\n
\n', + default: { + html: '
\n {{body}}\n
\n', + css: + ':host {\n --animation-duration: 300ms;\n all: initial;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n.animated {\n animation-duration: var(--animation-duration);\n animation-fill-mode: both;\n}\n\n.fadeIn {\n animation-name: fadeIn;\n}\n\n.fadeOut {\n animation-name: fadeOut;\n}\n\n.beacon-modal__wrapper {\n position: relative;\n top: 0;\n display: inline-block;\n z-index: 2147483000;\n max-width: 500px;\n width: 80%;\n padding: 24px;\n}\n\n@media (min-height: 700px) {\n .beacon-modal__wrapper {\n top: 50%;\n transform: translateY(-50%);\n }\n}\n\n.theme__light .beacon-modal__base,\n.theme__light .beacon-modal__close__wrapper {\n background: #fff;\n}\n\n.theme__dark .beacon-modal__base,\n.theme__dark .beacon-modal__close__wrapper {\n background: #27334c;\n}\n\n.beacon-modal__base,\n.beacon-modal__close__wrapper {\n box-shadow: 0 12px 24px 0 rgba(0, 0, 0, 0.1);\n}\n\n.beacon-modal__base {\n margin: 0 auto;\n border-radius: 32px;\n overflow: hidden;\n}\n\n.beacon-modal__header {\n padding: 16px 0;\n width: 100%;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n}\n\n.beacon-modal__headerLogo {\n width: 100%;\n max-width: 320px;\n margin: 20px auto;\n height: 100%;\n}\n\na,\nbutton {\n cursor: pointer;\n}\n\n.beacon-modal__close__wrapper {\n position: absolute;\n top: 44px;\n right: 24px;\n z-index: 10000;\n cursor: pointer;\n border-radius: 100%;\n}\n\n.beacon-modal__close__icon {\n width: 16px;\n height: 16px;\n position: relative;\n top: 0;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n transform: rotate(45deg);\n margin: 8px;\n}\n\n.beacon-modal__close__line1 {\n position: absolute;\n width: 90%;\n}\n\n.beacon-modal__close__line2 {\n position: absolute;\n width: 90%;\n transform: rotate(90deg);\n}\n\n.theme__light .beacon-modal__close__line2,\n.theme__light .beacon-modal__close__line1 {\n border: 1px solid #000;\n}\n\n.theme__dark .beacon-modal__close__line2,\n.theme__dark .beacon-modal__close__line1 {\n border: 1px solid #fff;\n}\n\n.beacon-alert__base {\n position: fixed;\n overflow-y: scroll;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 2147482999;\n background-color: rgb(17 17 17 / 0.84);\n text-align: center;\n -ms-overflow-style: none;\n scrollbar-width: none;\n font-family: Roboto, Helvetica, sans-serif;\n}\n\n.beacon-alert__base::-webkit-scrollbar {\n display: none;\n}\n\n.beacon-alert__title {\n text-align: center;\n}\n\n.beacon-alert__text,\n.beacon-alert__title {\n margin: 0 auto;\n padding: 0 0 24px;\n}\n\n.margin__bottom {\n margin-bottom: 16px;\n}\n\n.beacon-alert__title {\n font-size: 18px;\n}\n\n.theme__light .beacon-alert__title {\n color: #3b3d40;\n}\n\n.theme__dark .beacon-alert__title,\n.theme__dark .beacon-alert__text {\n color: #7c99d6;\n}\n\n.beacon-alert__text {\n color: #000;\n font-size: 14px;\n}\n\n.beacon-modal__button,\n.beacon-modal__button--outline {\n height: 36px;\n font-size: 14px;\n letter-spacing: 0.84px;\n margin-bottom: 4px;\n margin-inline-end: 2px;\n margin-inline-start: 2px;\n margin-left: 2px;\n margin-right: 2px;\n margin-top: 4px;\n padding-inline-end: 15.4px;\n padding-inline-start: 15.4px;\n padding-left: 15.4px;\n padding-right: 15.4px;\n overflow-wrap: break-word;\n pointer-events: auto;\n text-align: center;\n border-radius: 4px;\n border: 2px solid #3880ff;\n}\n\n.beacon-modal__button {\n background: #3880ff;\n color: #fff;\n}\n\n.beacon-modal__button--outline {\n background: #fff;\n color: #444444;\n border: 1px solid #444444;\n}\n\n.beacon-alert__image {\n width: 200px;\n height: 200px;\n box-sizing: border-box;\n box-shadow: 0 10px 20px 0 rgba(17, 17, 17, 0.12);\n border: 1px solid rgba(17, 17, 17, 0.04);\n border-radius: 16px;\n}\n.connect__btn {\n margin: 24px 0;\n width: 100%;\n}\n\n#beacon-modal__content {\n padding: 24px;\n}\n\n#beacon-switch {\n margin-top: 24px;\n}\n\n#beacon-title {\n margin: 0 0 24px;\n}\n\na {\n text-decoration: none;\n}\n\npre {\n white-space: pre-wrap; /* css-3 */\n white-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n white-space: -pre-wrap; /* Opera 4-6 */\n white-space: -o-pre-wrap; /* Opera 7 */\n word-wrap: break-word; /* Internet Explorer 5.5+ */\n padding: 16px;\n background: #ececec;\n line-height: 1.25rem;\n}\n' + }, + pair: { + html: + '\n\n
\n

\n Scan QR code with a Beacon-compatible wallet.\n Learn more\n

\n {{body}}\n
\n\n
\n \n
\n\n
\n', + css: + "#beacon-main-text {\n display: initial;\n}\n.beacon-selection__container {\n padding: 16px 16px 0;\n}\n.beacon-selection__list {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n text-decoration: none;\n padding-bottom: 12px;\n align-items: center;\n}\n.beacon-list__title {\n text-align: left;\n font-size: 12px;\n}\n.beacon-list__wrapper:nth-child(-n + 3) {\n padding: 0 0 1rem;\n}\n.theme__light .beacon-list__title {\n color: #7c828b;\n}\n.theme__dark .beacon-list__title,\n.theme__dark #beacon--disclaimer {\n color: #7c99d6;\n}\n\n.beacon-selection__name {\n font-size: 1rem;\n font-weight: 600;\n text-align: left;\n}\n.theme__light .beacon-selection__name,\n.theme__light .beacon--selection__name__lg {\n color: #3b3d40;\n}\n.theme__dark .beacon-selection__name,\n.theme__dark .beacon--selection__name__lg {\n color: #6183ff;\n}\n.beacon-selection__img {\n width: 48px;\n height: 48px;\n box-shadow: 0 4px 12px 0 rgba(17, 17, 17, 0.24);\n border-radius: 16px;\n background-color: #fff;\n}\n.beacon--selection__name__lg {\n font-size: 1.5rem;\n font-weight: 600;\n text-align: center;\n padding: 1rem 0;\n}\n.beacon--selected__container {\n padding: 2rem 0 0;\n}\n#beacon--qr__copy__container {\n height: 0;\n}\n#beacon--qr__copy {\n display: none;\n position: relative;\n top: -190px;\n left: 138px;\n margin: 0;\n}\n#beacon--qr__container {\n margin-left: auto;\n margin-right: auto;\n}\n#beacon--qr__container:hover #beacon--qr__copy {\n display: block;\n}\n.disabled {\n cursor: initial;\n}\n.disabled span,\n.disabled img {\n opacity: 0.48;\n}\n.disabled p {\n text-align: left;\n margin: 0;\n font-size: 10px;\n font-weight: 300;\n}\n.disabled img {\n -webkit-filter: grayscale(100%);\n -moz-filter: grayscale(100%);\n -ms-filter: grayscale(100%);\n -o-filter: grayscale(100%);\n filter: grayscale(100%);\n filter: gray;\n}\n\n#beacon--disclaimer {\n text-align: left;\n padding-top: 24px;\n font-size: 0.875rem;\n}\n.progress-line,\n.progress-line:before {\n height: 3px;\n width: -webkit-fill-available;\n margin-left: -24px;\n margin-right: -24px;\n}\n.progress-line {\n background-color: #a7c4f7;\n display: -webkit-flex;\n display: flex;\n}\n.progress-line:before {\n background-color: #3880ff;\n content: '';\n -webkit-animation: running-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n animation: running-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n}\n@-webkit-keyframes running-progress {\n 0% {\n margin-left: 0px;\n margin-right: 100%;\n }\n 50% {\n margin-left: 25%;\n margin-right: 0%;\n }\n 100% {\n margin-left: 100%;\n margin-right: 0;\n }\n}\n@keyframes running-progress {\n 0% {\n margin-left: 0px;\n margin-right: 100%;\n }\n 50% {\n margin-left: 25%;\n margin-right: 0%;\n }\n 100% {\n margin-left: 100%;\n margin-right: 0;\n }\n}\n" + } +} diff --git a/packages/beacon-core/src/ui/alert/wallet-lists.ts b/packages/beacon-core/src/ui/alert/wallet-lists.ts new file mode 100644 index 000000000..938f93e54 --- /dev/null +++ b/packages/beacon-core/src/ui/alert/wallet-lists.ts @@ -0,0 +1,76 @@ +import { App, DesktopApp, ExtensionApp, WebApp } from './Pairing' + +export const extensionList: ExtensionApp[] = [ + { + key: 'spire_chrome', + id: 'gpfndedineagiepkpinficbcbbgjoenn', + name: 'Spire', + shortName: 'Spire', + color: '', + logo: + 'data:image/png;base64,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', + link: 'https://spirewallet.com/' + }, + { + key: 'temple_chrome', + id: 'ookjlbkiijinhpmnjffcofjonbfbgaoc', + name: 'Temple Wallet', + shortName: 'Temple', + color: '', + logo: + 'data:image/png;base64,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', + link: 'https://templewallet.com/' + } +] + +export const desktopList: DesktopApp[] = [ + { + key: 'galleon_desktop', + name: 'Galleon', + shortName: 'Galleon', + color: '', + logo: + 'data:image/png;base64,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', + deepLink: 'galleon://' + }, + { + key: 'umami_desktop', + name: 'Umami', + shortName: 'Umami', + color: '', + logo: + 'data:image/png;base64,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', + deepLink: 'umami://' + } +] + +export const webList: WebApp[] = [ + { + key: 'kukai_web', + name: 'Kukai Wallet', + shortName: 'Kukai', + color: '', + logo: + 'data:image/png;base64,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', + links: { + mainnet: 'https://wallet.kukai.app', + delphinet: 'https://testnet.kukai.app', + edonet: 'https://edonet.kukai.app', + florencenet: 'https://florencenet.kukai.app', + granadanet: 'https://granadanet.kukai.app' + } + } +] + +export const iOSList: App[] = [ + { + key: 'airgap_ios', + name: 'AirGap Wallet', + shortName: 'AirGap', + color: 'rgb(4, 235, 204)', + logo: + 'data:image/png;base64,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', + universalLink: 'https://wallet.airgap.it', + deepLink: 'airgap-wallet://' + } +] diff --git a/src/ui/toast/Toast.ts b/packages/beacon-core/src/ui/toast/Toast.ts similarity index 100% rename from src/ui/toast/Toast.ts rename to packages/beacon-core/src/ui/toast/Toast.ts diff --git a/packages/beacon-core/src/ui/toast/toast-templates.ts b/packages/beacon-core/src/ui/toast/toast-templates.ts new file mode 100644 index 000000000..b7bde6a0c --- /dev/null +++ b/packages/beacon-core/src/ui/toast/toast-templates.ts @@ -0,0 +1,10 @@ +export const toastTemplates = { + default: { + html: + '
\n
\n

\n {{text}}\n Open\n \n

\n\n
\n
\n
\n
\n
\n', + css: + ":host {\n --animation-duration: 300ms;\n all: initial;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n.animated {\n animation-duration: var(--animation-duration);\n animation-fill-mode: both;\n}\n\n.fadeIn {\n animation-name: fadeIn;\n}\n\n.fadeOut {\n animation-name: fadeOut;\n}\n\n.beacon-toast__base {\n position: fixed;\n top: 16px;\n right: 16px;\n z-index: 2147483000;\n margin: 0 auto;\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 12px 24px 0 rgba(0, 0, 0, 0.1);\n flex-direction: column;\n}\n@media (max-width: 576px) {\n .beacon-toast__base {\n top: 8px;\n right: 8px;\n left: 8px;\n }\n .beacon-toast__wallet__outer {\n flex-wrap: wrap;\n }\n .beacon-toast__wallet__link {\n flex: 0 0 100%;\n margin-left: 0 !important;\n }\n}\n\n.theme__light.beacon-toast__base {\n background: #fff;\n}\n\n.theme__dark.beacon-toast__base {\n background: #27334c;\n}\n\n.theme__dark p {\n color: #6183ff;\n}\n\na {\n text-decoration: none;\n color: #3880ff;\n}\n\na svg {\n width: 12px;\n margin-left: 2px;\n}\n\na:visited {\n color: #3880ff;\n}\n\nhr {\n height: 1px;\n color: rgba(0, 0, 0, 0.12);\n background-color: rgba(0, 0, 0, 0.12);\n border: none;\n width: 100%;\n margin: 0;\n display: none;\n}\n\n.show {\n display: block !important;\n}\n\n.hide {\n display: none !important;\n}\n\n#beacon-toast-list {\n display: none;\n}\n\n.beacon-toast__upside_down {\n transform: rotate(180deg);\n}\n\n.beacon-toast__content {\n justify-content: space-between;\n min-height: 56px;\n height: 0;\n}\n\n.beacon-toast__action__item,\n.beacon-toast__powered a,\n.beacon-toast__wallet__container,\n#beacon-text,\n.beacon-toast__action__item p,\n.beacon-toast__wallet__outer {\n align-items: center;\n}\n\n.beacon-toast__content,\n.beacon-toast__base,\n.beacon-toast__action__item,\n.beacon-toast__powered a,\n#beacon-text,\n.beacon-toast__wallet__container,\n.beacon-toast__wallet__outer {\n display: flex;\n}\n\n.beacon-toast__content,\n.beacon-toast__action__item,\n.beacon-toast__powered a {\n padding: 0 16px;\n font-family: Roboto, Helvetica, sans-serif;\n}\n\n#beacon-text strong {\n display: contents;\n}\n.beacon-toast__wallet__link {\n margin-left: 12px;\n}\n.beacon-toast__wallet__link svg {\n margin-left: 4px;\n}\n.beacon-toast__powered a {\n margin: 4px 0 12px;\n font-size: 12px;\n opacity: 0.64;\n}\n\n.beacon-toast__powered svg {\n width: 20px;\n height: 20px;\n margin: 0 2px 0 4px;\n}\n\n.beacon-toast__action__item {\n font-size: 14px;\n max-width: 40ch;\n}\n\n.beacon-toast__action__item p {\n margin-right: 8px;\n}\n\n.beacon-toast__action__item__subtitle,\n.beacon-toast__powered a {\n min-width: 88px;\n color: rgba(0, 0, 0, 0.54);\n}\n\n.theme__dark .beacon-toast__powered a {\n color: #7c99d6;\n}\n\n.beacon-toast__content__img {\n width: 24px;\n height: 24px;\n margin-right: 4px;\n image-rendering: -moz-crisp-edges; /* Firefox */\n image-rendering: -o-crisp-edges; /* Opera */\n image-rendering: -webkit-optimize-contrast; /* Webkit (non-standard naming) */\n image-rendering: crisp-edges;\n -ms-interpolation-mode: nearest-neighbor; /* IE (non-standard property) */\n}\n\n.beacon-toast__more {\n width: 14px;\n transition: transform 0.5s;\n}\n\na,\n.beacon-toast__more {\n cursor: pointer;\n}\n\na:hover {\n opacity: 0.64;\n}\n\n.theme__dark .beacon-toast__more {\n color: #7c99d6;\n}\n\n.beacon-toast__more--action {\n margin: 8px 0;\n}\n\n#beacon-text {\n padding-right: 24px;\n}\n\n.progress-line,\n.progress-line:before {\n height: 3px;\n width: 100%;\n margin: 0;\n}\n.progress-line {\n background-color: #a7c4f7;\n display: -webkit-flex;\n display: flex;\n}\n.progress-line:before {\n background-color: #3880ff;\n content: '';\n -webkit-animation: running-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n animation: running-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n}\n@-webkit-keyframes running-progress {\n 0% {\n margin-left: 0px;\n margin-right: 100%;\n }\n 50% {\n margin-left: 25%;\n margin-right: 0%;\n }\n 100% {\n margin-left: 100%;\n margin-right: 0;\n }\n}\n@keyframes running-progress {\n 0% {\n margin-left: 0px;\n margin-right: 100%;\n }\n 50% {\n margin-left: 25%;\n margin-right: 0%;\n }\n 100% {\n margin-left: 100%;\n margin-right: 0;\n }\n}\n", + poweredByBeacon: + '\n powered by\n \n beacon_logo\n \n \n \n \n Beacon\n\n' + } +} diff --git a/src/utils/Logger.ts b/packages/beacon-core/src/utils/Logger.ts similarity index 100% rename from src/utils/Logger.ts rename to packages/beacon-core/src/utils/Logger.ts diff --git a/src/utils/assert-never.ts b/packages/beacon-core/src/utils/assert-never.ts similarity index 100% rename from src/utils/assert-never.ts rename to packages/beacon-core/src/utils/assert-never.ts diff --git a/src/utils/available-transports.ts b/packages/beacon-core/src/utils/available-transports.ts similarity index 100% rename from src/utils/available-transports.ts rename to packages/beacon-core/src/utils/available-transports.ts diff --git a/src/utils/block-explorer.ts b/packages/beacon-core/src/utils/block-explorer.ts similarity index 100% rename from src/utils/block-explorer.ts rename to packages/beacon-core/src/utils/block-explorer.ts diff --git a/src/utils/crypto.ts b/packages/beacon-core/src/utils/crypto.ts similarity index 100% rename from src/utils/crypto.ts rename to packages/beacon-core/src/utils/crypto.ts diff --git a/src/utils/exposed-promise.ts b/packages/beacon-core/src/utils/exposed-promise.ts similarity index 100% rename from src/utils/exposed-promise.ts rename to packages/beacon-core/src/utils/exposed-promise.ts diff --git a/src/utils/generate-uuid.ts b/packages/beacon-core/src/utils/generate-uuid.ts similarity index 100% rename from src/utils/generate-uuid.ts rename to packages/beacon-core/src/utils/generate-uuid.ts diff --git a/src/utils/get-account-identifier.ts b/packages/beacon-core/src/utils/get-account-identifier.ts similarity index 100% rename from src/utils/get-account-identifier.ts rename to packages/beacon-core/src/utils/get-account-identifier.ts diff --git a/src/utils/get-sender-id.ts b/packages/beacon-core/src/utils/get-sender-id.ts similarity index 100% rename from src/utils/get-sender-id.ts rename to packages/beacon-core/src/utils/get-sender-id.ts diff --git a/src/utils/get-tzip10-link.ts b/packages/beacon-core/src/utils/get-tzip10-link.ts similarity index 100% rename from src/utils/get-tzip10-link.ts rename to packages/beacon-core/src/utils/get-tzip10-link.ts diff --git a/src/utils/platform.ts b/packages/beacon-core/src/utils/platform.ts similarity index 100% rename from src/utils/platform.ts rename to packages/beacon-core/src/utils/platform.ts diff --git a/src/utils/qr.ts b/packages/beacon-core/src/utils/qr.ts similarity index 100% rename from src/utils/qr.ts rename to packages/beacon-core/src/utils/qr.ts diff --git a/src/utils/replace-in-template.ts b/packages/beacon-core/src/utils/replace-in-template.ts similarity index 100% rename from src/utils/replace-in-template.ts rename to packages/beacon-core/src/utils/replace-in-template.ts diff --git a/src/utils/shorten-string.ts b/packages/beacon-core/src/utils/shorten-string.ts similarity index 100% rename from src/utils/shorten-string.ts rename to packages/beacon-core/src/utils/shorten-string.ts diff --git a/src/utils/tezblock-blockexplorer.ts b/packages/beacon-core/src/utils/tezblock-blockexplorer.ts similarity index 100% rename from src/utils/tezblock-blockexplorer.ts rename to packages/beacon-core/src/utils/tezblock-blockexplorer.ts diff --git a/src/utils/utils.ts b/packages/beacon-core/src/utils/utils.ts similarity index 100% rename from src/utils/utils.ts rename to packages/beacon-core/src/utils/utils.ts diff --git a/packages/beacon-core/tsconfig.json b/packages/beacon-core/tsconfig.json index da67782ff..8d0c60072 100644 --- a/packages/beacon-core/tsconfig.json +++ b/packages/beacon-core/tsconfig.json @@ -1,7 +1,20 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib" + "outDir": "./lib", + "baseUrl": ".", + "paths": { + "@airgap/beacon-core": ["../beacon-core/src"], + "@airgap/beacon-dapp": ["../beacon-dapp/src"], + "@airgap/beacon-protocol-substrate": ["../beacon-protocol-substrate/src"], + "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], + "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], + "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], + "@airgap/beacon-types": ["../beacon-types/src"], + "@airgap/beacon-ui": ["../beacon-ui/src"], + "@airgap/beacon-utils": ["../beacon-utils/src"], + "@airgap/beacon-wallet": ["../beacon-wallet/src"] + } }, "include": ["./src"] } diff --git a/packages/beacon-dapp/lib/beacon-dapp.js b/packages/beacon-dapp/lib/beacon-dapp.js deleted file mode 100644 index 45bf6e4e4..000000000 --- a/packages/beacon-dapp/lib/beacon-dapp.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -module.exports = beaconDapp - -function beaconDapp() { - // TODO -} diff --git a/packages/beacon-dapp/tsconfig.json b/packages/beacon-dapp/tsconfig.json index da67782ff..8d0c60072 100644 --- a/packages/beacon-dapp/tsconfig.json +++ b/packages/beacon-dapp/tsconfig.json @@ -1,7 +1,20 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib" + "outDir": "./lib", + "baseUrl": ".", + "paths": { + "@airgap/beacon-core": ["../beacon-core/src"], + "@airgap/beacon-dapp": ["../beacon-dapp/src"], + "@airgap/beacon-protocol-substrate": ["../beacon-protocol-substrate/src"], + "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], + "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], + "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], + "@airgap/beacon-types": ["../beacon-types/src"], + "@airgap/beacon-ui": ["../beacon-ui/src"], + "@airgap/beacon-utils": ["../beacon-utils/src"], + "@airgap/beacon-wallet": ["../beacon-wallet/src"] + } }, "include": ["./src"] } diff --git a/packages/beacon-protocol-substrate/lib/beacon-protocol-substrate.js b/packages/beacon-protocol-substrate/lib/beacon-protocol-substrate.js deleted file mode 100644 index c1ce2f96e..000000000 --- a/packages/beacon-protocol-substrate/lib/beacon-protocol-substrate.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -module.exports = beaconProtocolSubstrate - -function beaconProtocolSubstrate() { - // TODO -} diff --git a/packages/beacon-protocol-substrate/tsconfig.json b/packages/beacon-protocol-substrate/tsconfig.json index da67782ff..8d0c60072 100644 --- a/packages/beacon-protocol-substrate/tsconfig.json +++ b/packages/beacon-protocol-substrate/tsconfig.json @@ -1,7 +1,20 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib" + "outDir": "./lib", + "baseUrl": ".", + "paths": { + "@airgap/beacon-core": ["../beacon-core/src"], + "@airgap/beacon-dapp": ["../beacon-dapp/src"], + "@airgap/beacon-protocol-substrate": ["../beacon-protocol-substrate/src"], + "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], + "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], + "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], + "@airgap/beacon-types": ["../beacon-types/src"], + "@airgap/beacon-ui": ["../beacon-ui/src"], + "@airgap/beacon-utils": ["../beacon-utils/src"], + "@airgap/beacon-wallet": ["../beacon-wallet/src"] + } }, "include": ["./src"] } diff --git a/packages/beacon-protocol-tezos/lib/beacon-protocol-tezos.js b/packages/beacon-protocol-tezos/lib/beacon-protocol-tezos.js deleted file mode 100644 index e1bb81132..000000000 --- a/packages/beacon-protocol-tezos/lib/beacon-protocol-tezos.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -module.exports = beaconProtocolTezos - -function beaconProtocolTezos() { - // TODO -} diff --git a/packages/beacon-protocol-tezos/tsconfig.json b/packages/beacon-protocol-tezos/tsconfig.json index da67782ff..8d0c60072 100644 --- a/packages/beacon-protocol-tezos/tsconfig.json +++ b/packages/beacon-protocol-tezos/tsconfig.json @@ -1,7 +1,20 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib" + "outDir": "./lib", + "baseUrl": ".", + "paths": { + "@airgap/beacon-core": ["../beacon-core/src"], + "@airgap/beacon-dapp": ["../beacon-dapp/src"], + "@airgap/beacon-protocol-substrate": ["../beacon-protocol-substrate/src"], + "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], + "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], + "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], + "@airgap/beacon-types": ["../beacon-types/src"], + "@airgap/beacon-ui": ["../beacon-ui/src"], + "@airgap/beacon-utils": ["../beacon-utils/src"], + "@airgap/beacon-wallet": ["../beacon-wallet/src"] + } }, "include": ["./src"] } diff --git a/packages/beacon-transport-matrix/lib/beacon-transport-matrix.js b/packages/beacon-transport-matrix/lib/beacon-transport-matrix.js deleted file mode 100644 index 74e50a73c..000000000 --- a/packages/beacon-transport-matrix/lib/beacon-transport-matrix.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -module.exports = beaconTransportMatrix - -function beaconTransportMatrix() { - // TODO -} diff --git a/packages/beacon-transport-matrix/tsconfig.json b/packages/beacon-transport-matrix/tsconfig.json index da67782ff..8d0c60072 100644 --- a/packages/beacon-transport-matrix/tsconfig.json +++ b/packages/beacon-transport-matrix/tsconfig.json @@ -1,7 +1,20 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib" + "outDir": "./lib", + "baseUrl": ".", + "paths": { + "@airgap/beacon-core": ["../beacon-core/src"], + "@airgap/beacon-dapp": ["../beacon-dapp/src"], + "@airgap/beacon-protocol-substrate": ["../beacon-protocol-substrate/src"], + "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], + "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], + "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], + "@airgap/beacon-types": ["../beacon-types/src"], + "@airgap/beacon-ui": ["../beacon-ui/src"], + "@airgap/beacon-utils": ["../beacon-utils/src"], + "@airgap/beacon-wallet": ["../beacon-wallet/src"] + } }, "include": ["./src"] } diff --git a/packages/beacon-transport-postmessage/lib/beacon-transport-postmessage.js b/packages/beacon-transport-postmessage/lib/beacon-transport-postmessage.js deleted file mode 100644 index f558ca823..000000000 --- a/packages/beacon-transport-postmessage/lib/beacon-transport-postmessage.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -module.exports = beaconTransportPostmessage - -function beaconTransportPostmessage() { - // TODO -} diff --git a/packages/beacon-transport-postmessage/tsconfig.json b/packages/beacon-transport-postmessage/tsconfig.json index da67782ff..8d0c60072 100644 --- a/packages/beacon-transport-postmessage/tsconfig.json +++ b/packages/beacon-transport-postmessage/tsconfig.json @@ -1,7 +1,20 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib" + "outDir": "./lib", + "baseUrl": ".", + "paths": { + "@airgap/beacon-core": ["../beacon-core/src"], + "@airgap/beacon-dapp": ["../beacon-dapp/src"], + "@airgap/beacon-protocol-substrate": ["../beacon-protocol-substrate/src"], + "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], + "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], + "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], + "@airgap/beacon-types": ["../beacon-types/src"], + "@airgap/beacon-ui": ["../beacon-ui/src"], + "@airgap/beacon-utils": ["../beacon-utils/src"], + "@airgap/beacon-wallet": ["../beacon-wallet/src"] + } }, "include": ["./src"] } diff --git a/packages/beacon-types/lib/beacon-types.js b/packages/beacon-types/lib/beacon-types.js deleted file mode 100644 index b76000877..000000000 --- a/packages/beacon-types/lib/beacon-types.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -module.exports = beaconTypes - -function beaconTypes() { - // TODO -} diff --git a/packages/beacon-types/src/index.ts b/packages/beacon-types/src/index.ts index e69de29bb..0613f1911 100644 --- a/packages/beacon-types/src/index.ts +++ b/packages/beacon-types/src/index.ts @@ -0,0 +1 @@ +export class Test {} diff --git a/packages/beacon-types/tsconfig.json b/packages/beacon-types/tsconfig.json index da67782ff..8d0c60072 100644 --- a/packages/beacon-types/tsconfig.json +++ b/packages/beacon-types/tsconfig.json @@ -1,7 +1,20 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib" + "outDir": "./lib", + "baseUrl": ".", + "paths": { + "@airgap/beacon-core": ["../beacon-core/src"], + "@airgap/beacon-dapp": ["../beacon-dapp/src"], + "@airgap/beacon-protocol-substrate": ["../beacon-protocol-substrate/src"], + "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], + "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], + "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], + "@airgap/beacon-types": ["../beacon-types/src"], + "@airgap/beacon-ui": ["../beacon-ui/src"], + "@airgap/beacon-utils": ["../beacon-utils/src"], + "@airgap/beacon-wallet": ["../beacon-wallet/src"] + } }, "include": ["./src"] } diff --git a/packages/beacon-ui/lib/beacon-ui.js b/packages/beacon-ui/lib/beacon-ui.js deleted file mode 100644 index c7e2922f8..000000000 --- a/packages/beacon-ui/lib/beacon-ui.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -module.exports = beaconUi - -function beaconUi() { - // TODO -} diff --git a/packages/beacon-ui/tsconfig.json b/packages/beacon-ui/tsconfig.json index da67782ff..8d0c60072 100644 --- a/packages/beacon-ui/tsconfig.json +++ b/packages/beacon-ui/tsconfig.json @@ -1,7 +1,20 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib" + "outDir": "./lib", + "baseUrl": ".", + "paths": { + "@airgap/beacon-core": ["../beacon-core/src"], + "@airgap/beacon-dapp": ["../beacon-dapp/src"], + "@airgap/beacon-protocol-substrate": ["../beacon-protocol-substrate/src"], + "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], + "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], + "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], + "@airgap/beacon-types": ["../beacon-types/src"], + "@airgap/beacon-ui": ["../beacon-ui/src"], + "@airgap/beacon-utils": ["../beacon-utils/src"], + "@airgap/beacon-wallet": ["../beacon-wallet/src"] + } }, "include": ["./src"] } diff --git a/packages/beacon-utils/lib/beacon-utils.js b/packages/beacon-utils/lib/beacon-utils.js deleted file mode 100644 index 402ef9b43..000000000 --- a/packages/beacon-utils/lib/beacon-utils.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -module.exports = beaconUtils - -function beaconUtils() { - // TODO -} diff --git a/packages/beacon-utils/tsconfig.json b/packages/beacon-utils/tsconfig.json index da67782ff..8d0c60072 100644 --- a/packages/beacon-utils/tsconfig.json +++ b/packages/beacon-utils/tsconfig.json @@ -1,7 +1,20 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib" + "outDir": "./lib", + "baseUrl": ".", + "paths": { + "@airgap/beacon-core": ["../beacon-core/src"], + "@airgap/beacon-dapp": ["../beacon-dapp/src"], + "@airgap/beacon-protocol-substrate": ["../beacon-protocol-substrate/src"], + "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], + "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], + "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], + "@airgap/beacon-types": ["../beacon-types/src"], + "@airgap/beacon-ui": ["../beacon-ui/src"], + "@airgap/beacon-utils": ["../beacon-utils/src"], + "@airgap/beacon-wallet": ["../beacon-wallet/src"] + } }, "include": ["./src"] } diff --git a/packages/beacon-wallet/lib/beacon-wallet.js b/packages/beacon-wallet/lib/beacon-wallet.js deleted file mode 100644 index f5a778f23..000000000 --- a/packages/beacon-wallet/lib/beacon-wallet.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -module.exports = beaconWallet - -function beaconWallet() { - // TODO -} diff --git a/packages/beacon-wallet/tsconfig.json b/packages/beacon-wallet/tsconfig.json index da67782ff..8d0c60072 100644 --- a/packages/beacon-wallet/tsconfig.json +++ b/packages/beacon-wallet/tsconfig.json @@ -1,7 +1,20 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib" + "outDir": "./lib", + "baseUrl": ".", + "paths": { + "@airgap/beacon-core": ["../beacon-core/src"], + "@airgap/beacon-dapp": ["../beacon-dapp/src"], + "@airgap/beacon-protocol-substrate": ["../beacon-protocol-substrate/src"], + "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], + "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], + "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], + "@airgap/beacon-types": ["../beacon-types/src"], + "@airgap/beacon-ui": ["../beacon-ui/src"], + "@airgap/beacon-utils": ["../beacon-utils/src"], + "@airgap/beacon-wallet": ["../beacon-wallet/src"] + } }, "include": ["./src"] } diff --git a/scripts/check-sdk-version.ts b/scripts/check-sdk-version.ts index d25463199..f831c75ce 100644 --- a/scripts/check-sdk-version.ts +++ b/scripts/check-sdk-version.ts @@ -1,5 +1,5 @@ import { readFileSync } from 'fs' -import { SDK_VERSION } from '../src/constants' +import { SDK_VERSION } from '../packages/beacon-core/src/constants' const packageJson = './package.json' const packageLockJson = './package-lock.json' diff --git a/src/index.ts b/src/index.ts deleted file mode 100644 index 6a2b6649c..000000000 --- a/src/index.ts +++ /dev/null @@ -1,355 +0,0 @@ -/** - * General docs - * @module public - */ -import { P2PCommunicationClient } from './transports/clients/P2PCommunicationClient' -import { AppMetadata } from './types/beacon/AppMetadata' -import { PermissionRequest } from './types/beacon/messages/PermissionRequest' -import { Network } from './types/beacon/Network' -import { BeaconBaseMessage } from './types/beacon/BeaconBaseMessage' -import { BeaconMessageType } from './types/beacon/BeaconMessageType' -import { PermissionScope } from './types/beacon/PermissionScope' -import { PermissionResponse } from './types/beacon/messages/PermissionResponse' -import { OperationRequest } from './types/beacon/messages/OperationRequest' -import { OperationResponse } from './types/beacon/messages/OperationResponse' -import { SignPayloadRequest } from './types/beacon/messages/SignPayloadRequest' -import { SignPayloadResponse } from './types/beacon/messages/SignPayloadResponse' -import { BroadcastRequest } from './types/beacon/messages/BroadcastRequest' -import { BroadcastResponse } from './types/beacon/messages/BroadcastResponse' -import { NetworkType } from './types/beacon/NetworkType' -import { TezosBaseOperation } from './types/tezos/TezosBaseOperation' -import { TezosOperationType } from './types/tezos/OperationTypes' -import { TezosActivateAccountOperation } from './types/tezos/operations/ActivateAccount' -import { TezosBallotOperation } from './types/tezos/operations/Ballot' -import { TezosDelegationOperation } from './types/tezos/operations/Delegation' -import { TezosDoubleBakingEvidenceOperation } from './types/tezos/operations/DoubleBakingEvidence' -import { TezosBlockHeader } from './types/tezos/TezosBlockHeader' -import { TezosDoubleEndorsementEvidenceOperation } from './types/tezos/operations/DoubleEndorsementEvidence' -import { TezosEndorsementOperation } from './types/tezos/operations/Endorsement' -import { TezosOriginationOperation } from './types/tezos/operations/Origination' -import { TezosProposalOperation } from './types/tezos/operations/Proposal' -import { TezosRevealOperation } from './types/tezos/operations/Reveal' -import { TezosSeedNonceRevelationOperation } from './types/tezos/operations/SeedNonceRevelation' -import { TezosTransactionOperation } from './types/tezos/operations/Transaction' -import { MichelsonPrimitives } from './types/tezos/MichelsonPrimitives' -import { TezosTransactionParameters } from './types/tezos/TezosTransactionParameters' -import { Origin } from './types/Origin' -import { AccountInfo, AccountIdentifier } from './types/AccountInfo' -import { EncryptedExtensionMessage, ExtensionMessage } from './types/ExtensionMessage' -import { ExtensionMessageTarget } from './types/ExtensionMessageTarget' -import { TezosOperation } from './types/tezos/TezosOperation' -import { Client } from './clients/client/Client' -import { WalletClient } from './clients/wallet-client/WalletClient' -import { DAppClient } from './clients/dapp-client/DAppClient' -import { BeaconError } from './errors/BeaconError' -import { BeaconErrorType } from './types/BeaconErrorType' -import { BroadcastBeaconError } from './errors/BroadcastBeaconError' -import { NetworkNotSupportedBeaconError } from './errors/NetworkNotSupportedBeaconError' -import { NoAddressBeaconError } from './errors/NoAddressBeaconError' -import { NoPrivateKeyBeaconError } from './errors/NoPrivateKeyBeaconError' -import { NotGrantedBeaconError } from './errors/NotGrantedBeaconError' -import { ParametersInvalidBeaconError } from './errors/ParametersInvalidBeaconError' -import { TooManyOperationsBeaconError } from './errors/TooManyOperationsBeaconError' -import { TransactionInvalidBeaconError } from './errors/TransactionInvalidBeaconError' -import { UnknownBeaconError } from './errors/UnknownBeaconError' -import { ErrorResponse } from './types/beacon/messages/ErrorResponse' -import { TransportStatus } from './types/transport/TransportStatus' -import { TransportType } from './types/transport/TransportType' -import { PostMessageTransport } from './transports/PostMessageTransport' -import { Transport } from './transports/Transport' -import { P2PTransport } from './transports/P2PTransport' -import { Storage } from './storage/Storage' -import { StorageKey } from './types/storage/StorageKey' -import { StorageKeyReturnDefaults } from './types/storage/StorageKeyReturnDefaults' -import { StorageKeyReturnType } from './types/storage/StorageKeyReturnType' -import { ExtendedP2PPairingRequest, P2PPairingRequest } from './types/P2PPairingRequest' -import { ChromeStorage } from './storage/ChromeStorage' -import { LocalStorage } from './storage/LocalStorage' -import { getStorage } from './storage/getStorage' -import { BeaconMessage } from './types/beacon/BeaconMessage' -import { Serializer } from './Serializer' -import { RequestPermissionInput } from './types/RequestPermissionInput' -import { RequestSignPayloadInput } from './types/RequestSignPayloadInput' -// import { RequestEncryptPayloadInput } from './types/RequestEncryptPayloadInput' -import { RequestOperationInput } from './types/RequestOperationInput' -import { RequestBroadcastInput } from './types/RequestBroadcastInput' -import { - PermissionResponseInput, - SignPayloadResponseInput, - // EncryptPayloadResponseInput, - OperationResponseInput, - BroadcastResponseInput, - BeaconResponseInputMessage, - AcknowledgeResponseInput, - ErrorResponseInput -} from './types/beacon/messages/BeaconResponseInputMessage' -import { - PermissionResponseOutput, - SignPayloadResponseOutput, - // EncryptPayloadResponseOutput, - OperationResponseOutput, - BroadcastResponseOutput, - BeaconResponseOutputMessage -} from './types/beacon/messages/BeaconResponseOutputMessage' -import { - PermissionRequestInput, - SignPayloadRequestInput, - // EncryptPayloadRequestInput, - OperationRequestInput, - BroadcastRequestInput, - BeaconRequestInputMessage -} from './types/beacon/messages/BeaconRequestInputMessage' -import { - PermissionRequestOutput, - SignPayloadRequestOutput, - // EncryptPayloadRequestOutput, - OperationRequestOutput, - BroadcastRequestOutput, - BeaconRequestOutputMessage -} from './types/beacon/messages/BeaconRequestOutputMessage' -import { ClientOptions } from './clients/client/ClientOptions' -import { DAppClientOptions } from './clients/dapp-client/DAppClientOptions' -import { WalletClientOptions } from './clients/wallet-client/WalletClientOptions' -import { PermissionInfo } from './types/PermissionInfo' -import { SDK_VERSION, BEACON_VERSION } from './constants' -import { AccountManager } from './managers/AccountManager' -import { AppMetadataManager } from './managers/AppMetadataManager' -import { PermissionManager } from './managers/PermissionManager' -import { BeaconEvent, BeaconEventHandler, defaultEventCallbacks } from './events' -import { getAddressFromPublicKey } from './utils/crypto' -import { BeaconClient } from './clients/beacon-client/BeaconClient' -import { BeaconClientOptions } from './clients/beacon-client/BeaconClientOptions' -import { getAccountIdentifier } from './utils/get-account-identifier' -import { ConnectionContext } from './types/ConnectionContext' -import { Threshold } from './types/beacon/Threshold' -import { - PartialTezosTransactionOperation, - PartialTezosOperation, - PartialTezosDelegationOperation, - PartialTezosOriginationOperation, - PartialTezosRevealOperation -} from './types/tezos/PartialTezosOperation' -import { AbortedBeaconError } from './errors/AbortedBeaconError' -import { ExtendedPeerInfo, PeerInfo } from './types/PeerInfo' -import { availableTransports } from './utils/available-transports' -import { AcknowledgeResponse } from './types/beacon/messages/AcknowledgeResponse' -import { DisconnectMessage } from './types/beacon/messages/DisconnectMessage' -import { DappP2PTransport } from './transports/DappP2PTransport' -import { DappPostMessageTransport } from './transports/DappPostMessageTransport' -import { WalletP2PTransport } from './transports/WalletP2PTransport' -import { WalletPostMessageTransport } from './transports/WalletPostMessageTransport' -import { getSenderId } from './utils/get-sender-id' -import { SigningType } from './types/beacon/SigningType' -import { ExtendedP2PPairingResponse } from './types/P2PPairingResponse' -import { - ExtendedPostMessagePairingRequest, - PostMessagePairingRequest -} from './types/PostMessagePairingRequest' -import { ExtendedPostMessagePairingResponse } from './types/PostMessagePairingResponse' -import { PeerManager } from './managers/PeerManager' -import { MessageBasedClient } from './transports/clients/MessageBasedClient' -import { BeaconRequestMessage } from './types/beacon/BeaconRequestMessage' -import { BeaconResponseMessage } from './types/beacon/BeaconResponseMessage' -import { Pairing } from './ui/alert/Pairing' -import { BlockExplorer } from './utils/block-explorer' -import { TezblockBlockExplorer } from './utils/tezblock-blockexplorer' -import { setDebugEnabled, getDebugEnabled } from './debug' -import { ColorMode } from './types/ColorMode' -// import { EncryptPayloadRequest } from './types/beacon/messages/EncryptPayloadRequest' -// import { EncryptPayloadResponse } from './types/beacon/messages/EncryptPayloadResponse' -// import { EncryptionTypeNotSupportedBeaconError } from './errors/EncryptionTypeNotSupportedBeaconError' -import { SignatureTypeNotSupportedBeaconError } from './errors/SignatureTypeNotSupportedBeaconError' -// import { EncryptionType } from './types/EncryptionType' -// import { EncryptionOperation } from './types/EncryptionOperation' - -// Tezos -export { - TezosBaseOperation, - TezosOperationType, - TezosBlockHeader, - MichelsonPrimitives, - TezosTransactionParameters, - TezosOperation -} - -// Tezos Operations -export { - TezosActivateAccountOperation, - TezosBallotOperation, - TezosDelegationOperation, - TezosDoubleBakingEvidenceOperation, - TezosDoubleEndorsementEvidenceOperation, - TezosEndorsementOperation, - TezosOriginationOperation, - TezosProposalOperation, - TezosRevealOperation, - TezosSeedNonceRevelationOperation, - TezosTransactionOperation, - PartialTezosOperation, - PartialTezosTransactionOperation, - PartialTezosDelegationOperation, - PartialTezosOriginationOperation, - PartialTezosRevealOperation -} - -// Clients -export { - BeaconClient, - BeaconClientOptions, - Client, - ClientOptions, - DAppClient, - DAppClientOptions, - WalletClient, - WalletClientOptions, - P2PCommunicationClient -} - -// Beacon -export { - AccountIdentifier, - AppMetadata, - Network, - NetworkType, - BeaconMessage, - PermissionRequest, - PermissionResponse, - OperationRequest, - OperationResponse, - SignPayloadRequest, - // EncryptPayloadRequest, - SignPayloadResponse, - // EncryptPayloadResponse, - BroadcastRequest, - BroadcastResponse, - AcknowledgeResponse, - DisconnectMessage, - BeaconBaseMessage, - BeaconMessageType, - PermissionScope, - Origin, - AccountInfo, - Threshold, - SigningType, - // EncryptionType, - // EncryptionOperation, - ExtensionMessageTarget, - ExtensionMessage, - EncryptedExtensionMessage, - RequestPermissionInput, - RequestSignPayloadInput, - // RequestEncryptPayloadInput, - RequestOperationInput, - RequestBroadcastInput, - PermissionInfo -} - -export { - PermissionResponseInput, - SignPayloadResponseInput, - // EncryptPayloadResponseInput, - OperationResponseInput, - BroadcastResponseInput, - AcknowledgeResponseInput, - ErrorResponseInput, - PermissionResponseOutput, - SignPayloadResponseOutput, - // EncryptPayloadResponseOutput, - OperationResponseOutput, - BroadcastResponseOutput, - PermissionRequestInput, - SignPayloadRequestInput, - // EncryptPayloadRequestInput, - OperationRequestInput, - BroadcastRequestInput, - PermissionRequestOutput, - SignPayloadRequestOutput, - // EncryptPayloadRequestOutput, - OperationRequestOutput, - BroadcastRequestOutput, - BeaconRequestInputMessage, - BeaconRequestOutputMessage, - BeaconResponseInputMessage, - BeaconResponseOutputMessage, - BeaconRequestMessage, - BeaconResponseMessage -} - -// Errors -export { - BeaconError, - BeaconErrorType, - ErrorResponse, - AbortedBeaconError, - BroadcastBeaconError, - NetworkNotSupportedBeaconError, - NoAddressBeaconError, - NoPrivateKeyBeaconError, - NotGrantedBeaconError, - ParametersInvalidBeaconError, - TooManyOperationsBeaconError, - TransactionInvalidBeaconError, - SignatureTypeNotSupportedBeaconError, - // EncryptionTypeNotSupportedBeaconError, - UnknownBeaconError -} - -// Transport -export { - TransportStatus, - TransportType, - Transport, - PostMessageTransport, - P2PTransport, - WalletP2PTransport, - WalletPostMessageTransport, - DappP2PTransport, - DappPostMessageTransport, - MessageBasedClient, - Pairing -} - -// Events -export { BeaconEvent, BeaconEventHandler, defaultEventCallbacks } - -// Storage -export { - Storage, - StorageKey, - StorageKeyReturnDefaults, - StorageKeyReturnType, - ChromeStorage, - LocalStorage, - getStorage -} - -// Managers -export { PeerManager, AccountManager, AppMetadataManager, PermissionManager } - -// Constants -export { SDK_VERSION, BEACON_VERSION } - -// Utils -export { getSenderId, getAccountIdentifier, getAddressFromPublicKey } - -// Pairing - -export { - PeerInfo, - ExtendedPeerInfo, - PostMessagePairingRequest, - ExtendedPostMessagePairingRequest, - ExtendedPostMessagePairingResponse, - P2PPairingRequest, - ExtendedP2PPairingRequest, - ExtendedP2PPairingResponse -} - -// BlockExplorer -export { BlockExplorer, TezblockBlockExplorer } - -// Others -export { ConnectionContext, Serializer, availableTransports, ColorMode } - -// Debug -export { setDebugEnabled, getDebugEnabled } From fa22ddfc3c301384975a8c6f94a6d08d8c7888cc Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 28 Jul 2021 20:35:26 +0200 Subject: [PATCH 011/130] feat(types): move types to package --- package.json | 2 +- .../beacon-core/src/beacon-message-events.ts | 2 +- .../src/clients/beacon-client/BeaconClient.ts | 2 +- .../beacon-client/BeaconClientOptions.ts | 2 +- .../beacon-core/src/clients/client/Client.ts | 11 +- .../src/clients/client/ClientOptions.ts | 2 +- .../src/clients/dapp-client/DAppClient.ts | 48 ++-- .../clients/dapp-client/DAppClientOptions.ts | 3 +- .../src/clients/wallet-client/WalletClient.ts | 29 +- .../wallet-client/WalletClientOptions.ts | 2 +- packages/beacon-core/src/colorMode.ts | 2 +- .../src/errors/AbortedBeaconError.ts | 3 +- .../beacon-core/src/errors/BeaconError.ts | 2 +- .../src/errors/BroadcastBeaconError.ts | 3 +- .../EncryptionTypeNotSupportedBeaconError.ts | 3 +- .../errors/NetworkNotSupportedBeaconError.ts | 3 +- .../src/errors/NoAddressBeaconError.ts | 3 +- .../src/errors/NoPrivateKeyBeaconError.ts | 3 +- .../src/errors/NotGrantedBeaconError.ts | 3 +- .../errors/ParametersInvalidBeaconError.ts | 3 +- .../SignatureTypeNotSupportedBeaconError.ts | 3 +- .../errors/TooManyOperationsBeaconError.ts | 3 +- .../errors/TransactionInvalidBeaconError.ts | 3 +- .../src/errors/UnknownBeaconError.ts | 3 +- packages/beacon-core/src/events.ts | 18 +- packages/beacon-core/src/index.ts | 233 +--------------- .../IncomingRequestInterceptor.ts | 8 +- .../OutgoingResponseInterceptor.ts | 8 +- .../src/managers/AccountManager.ts | 2 +- .../src/managers/AppMetadataManager.ts | 2 +- .../beacon-core/src/managers/PeerManager.ts | 2 +- .../src/managers/PermissionManager.ts | 3 +- .../src/managers/PermissionValidator.ts | 8 +- .../src/managers/StorageManager.ts | 2 +- .../src/matrix-client/MatrixClient.ts | 2 +- .../src/matrix-client/MatrixClientStore.ts | 3 +- .../src/migrations/migrate-0.7.0.ts | 2 +- .../beacon-core/src/migrations/migrations.ts | 2 +- .../beacon-core/src/storage/ChromeStorage.ts | 3 +- .../beacon-core/src/storage/LocalStorage.ts | 3 +- .../beacon-core/src/storage/getStorage.ts | 3 +- .../src/transports/DappP2PTransport.ts | 9 +- .../transports/DappPostMessageTransport.ts | 9 +- .../src/transports/P2PTransport.ts | 9 +- .../src/transports/PostMessageTransport.ts | 25 +- .../beacon-core/src/transports/Transport.ts | 10 +- .../src/transports/WalletP2PTransport.ts | 3 +- .../transports/WalletPostMessageTransport.ts | 4 +- .../transports/clients/CommunicationClient.ts | 10 +- .../transports/clients/MessageBasedClient.ts | 3 +- .../clients/P2PCommunicationClient.ts | 11 +- .../transports/clients/PostMessageClient.ts | 21 +- packages/beacon-core/src/ui/alert/Alert.ts | 2 +- packages/beacon-core/src/ui/alert/Pairing.ts | 4 +- .../beacon-core/src/ui/alert/PairingAlert.ts | 2 +- .../beacon-core/src/utils/block-explorer.ts | 2 +- .../src/utils/get-account-identifier.ts | 2 +- .../src/utils/tezblock-blockexplorer.ts | 2 +- packages/beacon-core/src/utils/utils.ts | 2 - packages/beacon-types/src/index.ts | 254 +++++++++++++++++- .../src/types/AccountInfo.ts | 0 .../src/types/BeaconErrorType.ts | 0 .../src/types/ColorMode.ts | 0 .../src/types/ConnectionContext.ts | 0 .../src/types/EncryptionOperation.ts | 0 .../src/types/EncryptionType.ts | 0 .../src/types/Extension.ts | 0 .../src/types/ExtensionMessage.ts | 0 .../src/types/ExtensionMessageTarget.ts | 0 .../src/types/Origin.ts | 0 .../src/types/P2PPairingRequest.ts | 0 .../src/types/P2PPairingResponse.ts | 0 .../src/types/PeerInfo.ts | 0 .../src/types/PermissionEntity.ts | 0 .../src/types/PermissionInfo.ts | 0 .../src/types/PostMessagePairingRequest.ts | 0 .../src/types/PostMessagePairingResponse.ts | 0 .../src/types/RequestBroadcastInput.ts | 0 .../src/types/RequestEncryptPayloadInput.ts | 0 .../src/types/RequestOperationInput.ts | 0 .../src/types/RequestPermissionInput.ts | 0 .../src/types/RequestSignPayloadInput.ts | 0 .../src/types/beacon/AppMetadata.ts | 0 .../src/types/beacon/BeaconBaseMessage.ts | 2 +- .../src/types/beacon/BeaconMessage.ts | 2 +- .../src/types/beacon/BeaconMessageType.ts | 0 .../src/types/beacon/BeaconRequestMessage.ts | 2 +- .../src/types/beacon/BeaconResponseMessage.ts | 2 +- .../src/types/beacon/Network.ts | 2 +- .../src/types/beacon/NetworkType.ts | 0 .../src/types/beacon/PermissionScope.ts | 0 .../src/types/beacon/SigningType.ts | 0 .../src/types/beacon/Threshold.ts | 0 .../beacon/messages/AcknowledgeResponse.ts | 2 +- .../messages/BeaconRequestInputMessage.ts | 4 +- .../messages/BeaconRequestOutputMessage.ts | 4 +- .../messages/BeaconResponseInputMessage.ts | 4 +- .../messages/BeaconResponseOutputMessage.ts | 2 +- .../types/beacon/messages/BroadcastRequest.ts | 2 +- .../beacon/messages/BroadcastResponse.ts | 2 +- .../beacon/messages/DisconnectMessage.ts | 2 +- .../beacon/messages/EncryptPayloadRequest.ts | 0 .../beacon/messages/EncryptPayloadResponse.ts | 0 .../types/beacon/messages/ErrorResponse.ts | 2 +- .../types/beacon/messages/OperationRequest.ts | 2 +- .../beacon/messages/OperationResponse.ts | 2 +- .../beacon/messages/PermissionRequest.ts | 2 +- .../beacon/messages/PermissionResponse.ts | 2 +- .../beacon/messages/SignPayloadRequest.ts | 2 +- .../beacon/messages/SignPayloadResponse.ts | 2 +- .../src/types}/storage/Storage.ts | 3 +- .../src/types/storage/StorageKey.ts | 0 .../types/storage/StorageKeyReturnDefaults.ts | 0 .../src/types/storage/StorageKeyReturnType.ts | 4 +- .../tezos/MichelineMichelsonV1Expression.ts | 0 .../src/types/tezos/MichelsonPrimitives.ts | 0 .../src/types/tezos/OperationTypes.ts | 0 .../src/types/tezos/PartialTezosOperation.ts | 2 +- .../src/types/tezos/TezosBaseOperation.ts | 0 .../src/types/tezos/TezosBlockHeader.ts | 0 .../src/types/tezos/TezosOperation.ts | 0 .../types/tezos/TezosTransactionParameters.ts | 0 .../types/tezos/operations/ActivateAccount.ts | 0 .../src/types/tezos/operations/Ballot.ts | 0 .../src/types/tezos/operations/Delegation.ts | 0 .../tezos/operations/DoubleBakingEvidence.ts | 0 .../operations/DoubleEndorsementEvidence.ts | 0 .../src/types/tezos/operations/Endorsement.ts | 0 .../src/types/tezos/operations/Origination.ts | 0 .../src/types/tezos/operations/Proposal.ts | 0 .../src/types/tezos/operations/Reveal.ts | 0 .../tezos/operations/SeedNonceRevelation.ts | 0 .../src/types/tezos/operations/Transaction.ts | 0 .../src/types/transport/TransportStatus.ts | 0 .../src/types/transport/TransportType.ts | 0 .../beacon-types/src/types/utils/Optional.ts | 1 + scripts/generate-wallet-list.ts | 10 +- 137 files changed, 479 insertions(+), 418 deletions(-) rename packages/{beacon-core => beacon-types}/src/types/AccountInfo.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/BeaconErrorType.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/ColorMode.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/ConnectionContext.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/EncryptionOperation.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/EncryptionType.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/Extension.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/ExtensionMessage.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/ExtensionMessageTarget.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/Origin.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/P2PPairingRequest.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/P2PPairingResponse.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/PeerInfo.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/PermissionEntity.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/PermissionInfo.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/PostMessagePairingRequest.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/PostMessagePairingResponse.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/RequestBroadcastInput.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/RequestEncryptPayloadInput.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/RequestOperationInput.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/RequestPermissionInput.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/RequestSignPayloadInput.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/beacon/AppMetadata.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/beacon/BeaconBaseMessage.ts (85%) rename packages/{beacon-core => beacon-types}/src/types/beacon/BeaconMessage.ts (95%) rename packages/{beacon-core => beacon-types}/src/types/beacon/BeaconMessageType.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/beacon/BeaconRequestMessage.ts (90%) rename packages/{beacon-core => beacon-types}/src/types/beacon/BeaconResponseMessage.ts (92%) rename packages/{beacon-core => beacon-types}/src/types/beacon/Network.ts (62%) rename packages/{beacon-core => beacon-types}/src/types/beacon/NetworkType.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/beacon/PermissionScope.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/beacon/SigningType.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/beacon/Threshold.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/beacon/messages/AcknowledgeResponse.ts (63%) rename packages/{beacon-core => beacon-types}/src/types/beacon/messages/BeaconRequestInputMessage.ts (93%) rename packages/{beacon-core => beacon-types}/src/types/beacon/messages/BeaconRequestOutputMessage.ts (94%) rename packages/{beacon-core => beacon-types}/src/types/beacon/messages/BeaconResponseInputMessage.ts (94%) rename packages/{beacon-core => beacon-types}/src/types/beacon/messages/BeaconResponseOutputMessage.ts (96%) rename packages/{beacon-core => beacon-types}/src/types/beacon/messages/BroadcastRequest.ts (76%) rename packages/{beacon-core => beacon-types}/src/types/beacon/messages/BroadcastResponse.ts (72%) rename packages/{beacon-core => beacon-types}/src/types/beacon/messages/DisconnectMessage.ts (63%) rename packages/{beacon-core => beacon-types}/src/types/beacon/messages/EncryptPayloadRequest.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/beacon/messages/EncryptPayloadResponse.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/beacon/messages/ErrorResponse.ts (88%) rename packages/{beacon-core => beacon-types}/src/types/beacon/messages/OperationRequest.ts (84%) rename packages/{beacon-core => beacon-types}/src/types/beacon/messages/OperationResponse.ts (72%) rename packages/{beacon-core => beacon-types}/src/types/beacon/messages/PermissionRequest.ts (95%) rename packages/{beacon-core => beacon-types}/src/types/beacon/messages/PermissionResponse.ts (95%) rename packages/{beacon-core => beacon-types}/src/types/beacon/messages/SignPayloadRequest.ts (95%) rename packages/{beacon-core => beacon-types}/src/types/beacon/messages/SignPayloadResponse.ts (91%) rename packages/{beacon-core/src => beacon-types/src/types}/storage/Storage.ts (86%) rename packages/{beacon-core => beacon-types}/src/types/storage/StorageKey.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/storage/StorageKeyReturnDefaults.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/storage/StorageKeyReturnType.ts (88%) rename packages/{beacon-core => beacon-types}/src/types/tezos/MichelineMichelsonV1Expression.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/tezos/MichelsonPrimitives.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/tezos/OperationTypes.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/tezos/PartialTezosOperation.ts (97%) rename packages/{beacon-core => beacon-types}/src/types/tezos/TezosBaseOperation.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/tezos/TezosBlockHeader.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/tezos/TezosOperation.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/tezos/TezosTransactionParameters.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/tezos/operations/ActivateAccount.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/tezos/operations/Ballot.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/tezos/operations/Delegation.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/tezos/operations/DoubleBakingEvidence.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/tezos/operations/DoubleEndorsementEvidence.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/tezos/operations/Endorsement.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/tezos/operations/Origination.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/tezos/operations/Proposal.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/tezos/operations/Reveal.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/tezos/operations/SeedNonceRevelation.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/tezos/operations/Transaction.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/transport/TransportStatus.ts (100%) rename packages/{beacon-core => beacon-types}/src/types/transport/TransportType.ts (100%) create mode 100644 packages/beacon-types/src/types/utils/Optional.ts diff --git a/package.json b/package.json index db56086cd..17c3f167d 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "prebuild": "ts-node --project tsconfig-cjs.json scripts/generate-wallet-list.ts", "build": "npm run pretest && tsc -p tsconfig.json && tsc -p ./tsconfig-cjs.json && npm run browserify && npm run posttest && cp ./dist/walletbeacon.min.js ./examples/walletbeacon.min.js", "browserify": "npm run pretest && tsc -p ./tsconfig-browserify.json && npm run posttest && browserify ./dist/browserify/index.js -s beacon | uglifyjs > ./dist/walletbeacon.min.js && rm -rf dist/browserify", - "prettier": "prettier --write 'src/**/*' 'docs/**/*.md' 'example-dapp.html' 'example-wallet.html'", + "prettier": "prettier --write 'src/**/*' '**/src/**/*' 'docs/**/*.md' 'example-dapp.html' 'example-wallet.html'", "lint": "eslint 'src/**/*.ts'", "lint:fix": "eslint 'src/**/*.ts' --fix", "lint-ci": "eslint 'src/**/*.ts' -f json -o lintReport.json || true", diff --git a/packages/beacon-core/src/beacon-message-events.ts b/packages/beacon-core/src/beacon-message-events.ts index 331db43fb..c99546192 100644 --- a/packages/beacon-core/src/beacon-message-events.ts +++ b/packages/beacon-core/src/beacon-message-events.ts @@ -1,5 +1,5 @@ import { BeaconEvent } from './events' -import { BeaconMessageType } from '.' +import { BeaconMessageType } from '@airgap/beacon-types' export const messageEvents: { [key in BeaconMessageType]: { sent: BeaconEvent; success: BeaconEvent; error: BeaconEvent } diff --git a/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts b/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts index 397e98f39..88c152dd0 100644 --- a/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts +++ b/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts @@ -2,7 +2,7 @@ import * as sodium from 'libsodium-wrappers' import { ExposedPromise } from '../../utils/exposed-promise' import { generateGUID } from '../../utils/generate-uuid' import { getKeypairFromSeed, toHex } from '../../utils/crypto' -import { Storage, StorageKey } from '../..' +import { Storage, StorageKey } from '@airgap/beacon-types' import { BeaconEventHandler } from '../../events' import { SDK_VERSION } from '../../constants' import { windowRef } from '../../MockWindow' diff --git a/packages/beacon-core/src/clients/beacon-client/BeaconClientOptions.ts b/packages/beacon-core/src/clients/beacon-client/BeaconClientOptions.ts index d0d0e3480..a010f7f5c 100644 --- a/packages/beacon-core/src/clients/beacon-client/BeaconClientOptions.ts +++ b/packages/beacon-core/src/clients/beacon-client/BeaconClientOptions.ts @@ -1,4 +1,4 @@ -import { Storage } from '../..' +import { Storage } from '@airgap/beacon-types' /** * @internalapi diff --git a/packages/beacon-core/src/clients/client/Client.ts b/packages/beacon-core/src/clients/client/Client.ts index 38c82ec99..fdea0abcb 100644 --- a/packages/beacon-core/src/clients/client/Client.ts +++ b/packages/beacon-core/src/clients/client/Client.ts @@ -1,21 +1,20 @@ import { ExposedPromise, ExposedPromiseStatus } from '../../utils/exposed-promise' -import { ConnectionContext } from '../../types/ConnectionContext' import { - Serializer, + ConnectionContext, TransportType, TransportStatus, BeaconBaseMessage, AccountInfo, PeerInfo, - Transport, BeaconMessageType, DisconnectMessage, - AppMetadata -} from '../..' + AppMetadata, + BeaconRequestMessage +} from '@airgap/beacon-types' +import { Serializer, Transport } from '../..' import { BeaconEventHandler, BeaconEvent } from '../../events' import { BeaconClient } from '../beacon-client/BeaconClient' import { AccountManager } from '../../managers/AccountManager' -import { BeaconRequestMessage } from '../../types/beacon/BeaconRequestMessage' import { generateGUID } from '../../utils/generate-uuid' import { BEACON_VERSION } from '../../constants' import { getSenderId } from '../../utils/get-sender-id' diff --git a/packages/beacon-core/src/clients/client/ClientOptions.ts b/packages/beacon-core/src/clients/client/ClientOptions.ts index eb5e03742..a50d010bf 100644 --- a/packages/beacon-core/src/clients/client/ClientOptions.ts +++ b/packages/beacon-core/src/clients/client/ClientOptions.ts @@ -1,4 +1,4 @@ -import { Storage } from '../..' +import { Storage } from '@airgap/beacon-types' import { BeaconEvent, BeaconEventHandlerFunction, BeaconEventType } from '../../events' /** diff --git a/packages/beacon-core/src/clients/dapp-client/DAppClient.ts b/packages/beacon-core/src/clients/dapp-client/DAppClient.ts index 9ade917e0..b04ecac84 100644 --- a/packages/beacon-core/src/clients/dapp-client/DAppClient.ts +++ b/packages/beacon-core/src/clients/dapp-client/DAppClient.ts @@ -5,10 +5,9 @@ import { generateGUID } from '../../utils/generate-uuid' import { BeaconEvent, BeaconEventHandlerFunction, BeaconEventType, WalletInfo } from '../../events' import { BEACON_VERSION } from '../../constants' import { getAddressFromPublicKey } from '../../utils/crypto' -import { ConnectionContext } from '../../types/ConnectionContext' import { + ConnectionContext, AccountInfo, - Client, TransportType, StorageKey, BeaconMessageType, @@ -28,8 +27,6 @@ import { RequestOperationInput, RequestBroadcastInput, PermissionRequest, - Serializer, - LocalStorage, PermissionResponseOutput, PermissionRequestInput, SignPayloadResponseOutput, @@ -40,42 +37,43 @@ import { BroadcastRequestInput, BeaconRequestInputMessage, Network, - BeaconError, Origin, - PostMessageTransport, PeerInfo, - Transport, - DappP2PTransport, - DappPostMessageTransport, - AppMetadataManager, - AppMetadata + BeaconErrorType, + AppMetadata, + ExtendedP2PPairingResponse, + ExtendedPostMessagePairingResponse, + PostMessagePairingResponse, + SigningType, + ExtendedPeerInfo, + Optional, + ColorMode, + IgnoredRequestInputProperties // RequestEncryptPayloadInput, // EncryptPayloadResponseOutput, // EncryptPayloadResponse, // EncryptPayloadRequest +} from '@airgap/beacon-types' +import { + Client, + Transport, + DappP2PTransport, + DappPostMessageTransport, + BeaconError, + PostMessageTransport, + AppMetadataManager, + Serializer, + LocalStorage } from '../..' import { messageEvents } from '../../beacon-message-events' -import { - // EncryptPayloadRequestInput, - IgnoredRequestInputProperties -} from '../../types/beacon/messages/BeaconRequestInputMessage' import { getAccountIdentifier } from '../../utils/get-account-identifier' import { BlockExplorer } from '../../utils/block-explorer' import { TezblockBlockExplorer } from '../../utils/tezblock-blockexplorer' -import { BeaconErrorType } from '../../types/BeaconErrorType' import { AlertButton } from '../../ui/alert/Alert' -import { ExtendedP2PPairingResponse } from '../../types/P2PPairingResponse' -import { - ExtendedPostMessagePairingResponse, - PostMessagePairingResponse -} from '../../types/PostMessagePairingResponse' import { getSenderId } from '../../utils/get-sender-id' -import { SigningType } from '../../types/beacon/SigningType' -import { ExtendedPeerInfo } from '../../types/PeerInfo' -import { ColorMode } from '../../types/ColorMode' + import { getColorMode, setColorMode } from '../../colorMode' import { desktopList, extensionList, iOSList, webList } from '../../ui/alert/wallet-lists' -import { Optional } from '../../utils/utils' import { DAppClientOptions } from './DAppClientOptions' import { App, DesktopApp, ExtensionApp, WebApp } from '../../ui/alert/Pairing' diff --git a/packages/beacon-core/src/clients/dapp-client/DAppClientOptions.ts b/packages/beacon-core/src/clients/dapp-client/DAppClientOptions.ts index e8a7abb74..2367c02fd 100644 --- a/packages/beacon-core/src/clients/dapp-client/DAppClientOptions.ts +++ b/packages/beacon-core/src/clients/dapp-client/DAppClientOptions.ts @@ -1,7 +1,6 @@ -import { NetworkType, Storage } from '../..' import { BeaconEvent, BeaconEventType, BeaconEventHandlerFunction } from '../../events' -import { ColorMode } from '../../types/ColorMode' import { BlockExplorer } from '../../utils/block-explorer' +import { Storage, NetworkType, ColorMode } from '@airgap/beacon-types' /** * @category DApp diff --git a/packages/beacon-core/src/clients/wallet-client/WalletClient.ts b/packages/beacon-core/src/clients/wallet-client/WalletClient.ts index 51c84e9f7..769f67ea3 100644 --- a/packages/beacon-core/src/clients/wallet-client/WalletClient.ts +++ b/packages/beacon-core/src/clients/wallet-client/WalletClient.ts @@ -1,30 +1,27 @@ +import { Serializer, Client, WalletClientOptions, LocalStorage, WalletP2PTransport } from '../..' +import { PermissionManager } from '../../managers/PermissionManager' +import { AppMetadataManager } from '../../managers/AppMetadataManager' import { - Serializer, - Client, - BeaconMessage, - WalletClientOptions, - LocalStorage, + ConnectionContext, + BeaconRequestMessage, + BeaconMessageType, + AcknowledgeResponseInput, + ExtendedP2PPairingResponse, + ExtendedPeerInfo, + PeerInfo, + DisconnectMessage, TransportType, BeaconRequestOutputMessage, BeaconResponseInputMessage, AppMetadata, PermissionInfo, TransportStatus, - WalletP2PTransport, - DisconnectMessage -} from '../..' -import { PermissionManager } from '../../managers/PermissionManager' -import { AppMetadataManager } from '../../managers/AppMetadataManager' -import { ConnectionContext } from '../../types/ConnectionContext' + BeaconMessage +} from '@airgap/beacon-types' import { IncomingRequestInterceptor } from '../../interceptors/IncomingRequestInterceptor' import { OutgoingResponseInterceptor } from '../../interceptors/OutgoingResponseInterceptor' -import { BeaconRequestMessage } from '../../types/beacon/BeaconRequestMessage' -import { BeaconMessageType } from '../../types/beacon/BeaconMessageType' -import { AcknowledgeResponseInput } from '../../types/beacon/messages/BeaconResponseInputMessage' import { getSenderId } from '../../utils/get-sender-id' -import { ExtendedP2PPairingResponse } from '../../types/P2PPairingResponse' import { ExposedPromise } from '../../utils/exposed-promise' -import { ExtendedPeerInfo, PeerInfo } from '../../types/PeerInfo' import { Logger } from '../../utils/Logger' const logger = new Logger('WalletClient') diff --git a/packages/beacon-core/src/clients/wallet-client/WalletClientOptions.ts b/packages/beacon-core/src/clients/wallet-client/WalletClientOptions.ts index 5a26f8aad..5c26945b5 100644 --- a/packages/beacon-core/src/clients/wallet-client/WalletClientOptions.ts +++ b/packages/beacon-core/src/clients/wallet-client/WalletClientOptions.ts @@ -1,4 +1,4 @@ -import { Storage } from '../..' +import { Storage } from '@airgap/beacon-types' /** * @category Wallet diff --git a/packages/beacon-core/src/colorMode.ts b/packages/beacon-core/src/colorMode.ts index bf4fb27ff..1bd1e175d 100644 --- a/packages/beacon-core/src/colorMode.ts +++ b/packages/beacon-core/src/colorMode.ts @@ -1,4 +1,4 @@ -import { ColorMode } from './types/ColorMode' +import { ColorMode } from '@airgap/beacon-types' let colorMode: ColorMode = ColorMode.LIGHT diff --git a/packages/beacon-core/src/errors/AbortedBeaconError.ts b/packages/beacon-core/src/errors/AbortedBeaconError.ts index fe1851680..297bb35ce 100644 --- a/packages/beacon-core/src/errors/AbortedBeaconError.ts +++ b/packages/beacon-core/src/errors/AbortedBeaconError.ts @@ -1,4 +1,5 @@ -import { BeaconError, BeaconErrorType } from '..' +import { BeaconError } from '..' +import { BeaconErrorType } from '@airgap/beacon-types' /** * @category Error diff --git a/packages/beacon-core/src/errors/BeaconError.ts b/packages/beacon-core/src/errors/BeaconError.ts index 389a49be4..331d85f33 100644 --- a/packages/beacon-core/src/errors/BeaconError.ts +++ b/packages/beacon-core/src/errors/BeaconError.ts @@ -1,7 +1,6 @@ import { assertNever } from '../utils/assert-never' import { AbortedBeaconError, - BeaconErrorType, UnknownBeaconError, NetworkNotSupportedBeaconError, NoAddressBeaconError, @@ -14,6 +13,7 @@ import { BroadcastBeaconError // EncryptionTypeNotSupportedBeaconError } from '..' +import { BeaconErrorType } from '@airgap/beacon-types' /** * @category Error diff --git a/packages/beacon-core/src/errors/BroadcastBeaconError.ts b/packages/beacon-core/src/errors/BroadcastBeaconError.ts index 61998f1cf..fed6a28ad 100644 --- a/packages/beacon-core/src/errors/BroadcastBeaconError.ts +++ b/packages/beacon-core/src/errors/BroadcastBeaconError.ts @@ -1,4 +1,5 @@ -import { BeaconError, BeaconErrorType } from '..' +import { BeaconError } from '..' +import { BeaconErrorType } from '@airgap/beacon-types' /** * @category Error diff --git a/packages/beacon-core/src/errors/EncryptionTypeNotSupportedBeaconError.ts b/packages/beacon-core/src/errors/EncryptionTypeNotSupportedBeaconError.ts index 864d0f937..1b2e7f947 100644 --- a/packages/beacon-core/src/errors/EncryptionTypeNotSupportedBeaconError.ts +++ b/packages/beacon-core/src/errors/EncryptionTypeNotSupportedBeaconError.ts @@ -1,4 +1,5 @@ -// import { BeaconError, BeaconErrorType } from '..' +// import { BeaconError, } from '..' +// import {BeaconErrorType } from '@airgap/beacon-types' /** * @category Error diff --git a/packages/beacon-core/src/errors/NetworkNotSupportedBeaconError.ts b/packages/beacon-core/src/errors/NetworkNotSupportedBeaconError.ts index 8951c0877..432201add 100644 --- a/packages/beacon-core/src/errors/NetworkNotSupportedBeaconError.ts +++ b/packages/beacon-core/src/errors/NetworkNotSupportedBeaconError.ts @@ -1,4 +1,5 @@ -import { BeaconError, BeaconErrorType } from '..' +import { BeaconError } from '..' +import { BeaconErrorType } from '@airgap/beacon-types' /** * @category Error diff --git a/packages/beacon-core/src/errors/NoAddressBeaconError.ts b/packages/beacon-core/src/errors/NoAddressBeaconError.ts index 64ff29d81..aae300073 100644 --- a/packages/beacon-core/src/errors/NoAddressBeaconError.ts +++ b/packages/beacon-core/src/errors/NoAddressBeaconError.ts @@ -1,4 +1,5 @@ -import { BeaconError, BeaconErrorType } from '..' +import { BeaconError } from '..' +import { BeaconErrorType } from '@airgap/beacon-types' /** * @category Error diff --git a/packages/beacon-core/src/errors/NoPrivateKeyBeaconError.ts b/packages/beacon-core/src/errors/NoPrivateKeyBeaconError.ts index 3cc531030..e12aff5c4 100644 --- a/packages/beacon-core/src/errors/NoPrivateKeyBeaconError.ts +++ b/packages/beacon-core/src/errors/NoPrivateKeyBeaconError.ts @@ -1,4 +1,5 @@ -import { BeaconError, BeaconErrorType } from '..' +import { BeaconError } from '..' +import { BeaconErrorType } from '@airgap/beacon-types' /** * @category Error diff --git a/packages/beacon-core/src/errors/NotGrantedBeaconError.ts b/packages/beacon-core/src/errors/NotGrantedBeaconError.ts index ccab12709..37d3f47c7 100644 --- a/packages/beacon-core/src/errors/NotGrantedBeaconError.ts +++ b/packages/beacon-core/src/errors/NotGrantedBeaconError.ts @@ -1,4 +1,5 @@ -import { BeaconError, BeaconErrorType } from '..' +import { BeaconError } from '..' +import { BeaconErrorType } from '@airgap/beacon-types' /** * @category Error diff --git a/packages/beacon-core/src/errors/ParametersInvalidBeaconError.ts b/packages/beacon-core/src/errors/ParametersInvalidBeaconError.ts index ee35d74a8..58690a413 100644 --- a/packages/beacon-core/src/errors/ParametersInvalidBeaconError.ts +++ b/packages/beacon-core/src/errors/ParametersInvalidBeaconError.ts @@ -1,4 +1,5 @@ -import { BeaconError, BeaconErrorType } from '..' +import { BeaconError } from '..' +import { BeaconErrorType } from '@airgap/beacon-types' /** * @category Error diff --git a/packages/beacon-core/src/errors/SignatureTypeNotSupportedBeaconError.ts b/packages/beacon-core/src/errors/SignatureTypeNotSupportedBeaconError.ts index 4485b2905..10fcabe11 100644 --- a/packages/beacon-core/src/errors/SignatureTypeNotSupportedBeaconError.ts +++ b/packages/beacon-core/src/errors/SignatureTypeNotSupportedBeaconError.ts @@ -1,4 +1,5 @@ -import { BeaconError, BeaconErrorType } from '..' +import { BeaconError } from '..' +import { BeaconErrorType } from '@airgap/beacon-types' /** * @category Error diff --git a/packages/beacon-core/src/errors/TooManyOperationsBeaconError.ts b/packages/beacon-core/src/errors/TooManyOperationsBeaconError.ts index 6f0e196e2..d63020f04 100644 --- a/packages/beacon-core/src/errors/TooManyOperationsBeaconError.ts +++ b/packages/beacon-core/src/errors/TooManyOperationsBeaconError.ts @@ -1,4 +1,5 @@ -import { BeaconError, BeaconErrorType } from '..' +import { BeaconError } from '..' +import { BeaconErrorType } from '@airgap/beacon-types' /** * @category Error diff --git a/packages/beacon-core/src/errors/TransactionInvalidBeaconError.ts b/packages/beacon-core/src/errors/TransactionInvalidBeaconError.ts index 8c6d9bfc4..e5efa3931 100644 --- a/packages/beacon-core/src/errors/TransactionInvalidBeaconError.ts +++ b/packages/beacon-core/src/errors/TransactionInvalidBeaconError.ts @@ -1,4 +1,5 @@ -import { BeaconError, BeaconErrorType } from '..' +import { BeaconError } from '..' +import { BeaconErrorType } from '@airgap/beacon-types' /** * @category Error diff --git a/packages/beacon-core/src/errors/UnknownBeaconError.ts b/packages/beacon-core/src/errors/UnknownBeaconError.ts index 7b5da8ef5..890a2222d 100644 --- a/packages/beacon-core/src/errors/UnknownBeaconError.ts +++ b/packages/beacon-core/src/errors/UnknownBeaconError.ts @@ -1,4 +1,5 @@ -import { BeaconError, BeaconErrorType } from '..' +import { BeaconError } from '..' +import { BeaconErrorType } from '@airgap/beacon-types' /** * @category Error diff --git a/packages/beacon-core/src/events.ts b/packages/beacon-core/src/events.ts index 61f8f2723..5c3da44e8 100644 --- a/packages/beacon-core/src/events.ts +++ b/packages/beacon-core/src/events.ts @@ -1,27 +1,31 @@ import { openAlert, AlertButton, AlertConfig, closeAlerts } from './ui/alert/Alert' import { closeToast, openToast, ToastAction } from './ui/toast/Toast' -import { ExtendedP2PPairingResponse } from './types/P2PPairingResponse' -import { PostMessagePairingRequest } from './types/PostMessagePairingRequest' -import { ExtendedPostMessagePairingResponse } from './types/PostMessagePairingResponse' + import { BlockExplorer } from './utils/block-explorer' import { Logger } from './utils/Logger' import { shortenString } from './utils/shorten-string' -import { BeaconErrorType } from './types/BeaconErrorType' import { + BeaconErrorType, + ExtendedPostMessagePairingResponse, + PostMessagePairingRequest, + ExtendedP2PPairingResponse, P2PPairingRequest, AccountInfo, ErrorResponse, - UnknownBeaconError, PermissionResponseOutput, OperationResponseOutput, BroadcastResponseOutput, SignPayloadResponseOutput, Network, - BeaconError, ConnectionContext, - Transport, NetworkType, AcknowledgeResponse +} from '@airgap/beacon-types' +import { + UnknownBeaconError, + BeaconError, + Transport + // EncryptPayloadResponseOutput, // EncryptionOperation } from '.' diff --git a/packages/beacon-core/src/index.ts b/packages/beacon-core/src/index.ts index 6a2b6649c..336184480 100644 --- a/packages/beacon-core/src/index.ts +++ b/packages/beacon-core/src/index.ts @@ -3,46 +3,10 @@ * @module public */ import { P2PCommunicationClient } from './transports/clients/P2PCommunicationClient' -import { AppMetadata } from './types/beacon/AppMetadata' -import { PermissionRequest } from './types/beacon/messages/PermissionRequest' -import { Network } from './types/beacon/Network' -import { BeaconBaseMessage } from './types/beacon/BeaconBaseMessage' -import { BeaconMessageType } from './types/beacon/BeaconMessageType' -import { PermissionScope } from './types/beacon/PermissionScope' -import { PermissionResponse } from './types/beacon/messages/PermissionResponse' -import { OperationRequest } from './types/beacon/messages/OperationRequest' -import { OperationResponse } from './types/beacon/messages/OperationResponse' -import { SignPayloadRequest } from './types/beacon/messages/SignPayloadRequest' -import { SignPayloadResponse } from './types/beacon/messages/SignPayloadResponse' -import { BroadcastRequest } from './types/beacon/messages/BroadcastRequest' -import { BroadcastResponse } from './types/beacon/messages/BroadcastResponse' -import { NetworkType } from './types/beacon/NetworkType' -import { TezosBaseOperation } from './types/tezos/TezosBaseOperation' -import { TezosOperationType } from './types/tezos/OperationTypes' -import { TezosActivateAccountOperation } from './types/tezos/operations/ActivateAccount' -import { TezosBallotOperation } from './types/tezos/operations/Ballot' -import { TezosDelegationOperation } from './types/tezos/operations/Delegation' -import { TezosDoubleBakingEvidenceOperation } from './types/tezos/operations/DoubleBakingEvidence' -import { TezosBlockHeader } from './types/tezos/TezosBlockHeader' -import { TezosDoubleEndorsementEvidenceOperation } from './types/tezos/operations/DoubleEndorsementEvidence' -import { TezosEndorsementOperation } from './types/tezos/operations/Endorsement' -import { TezosOriginationOperation } from './types/tezos/operations/Origination' -import { TezosProposalOperation } from './types/tezos/operations/Proposal' -import { TezosRevealOperation } from './types/tezos/operations/Reveal' -import { TezosSeedNonceRevelationOperation } from './types/tezos/operations/SeedNonceRevelation' -import { TezosTransactionOperation } from './types/tezos/operations/Transaction' -import { MichelsonPrimitives } from './types/tezos/MichelsonPrimitives' -import { TezosTransactionParameters } from './types/tezos/TezosTransactionParameters' -import { Origin } from './types/Origin' -import { AccountInfo, AccountIdentifier } from './types/AccountInfo' -import { EncryptedExtensionMessage, ExtensionMessage } from './types/ExtensionMessage' -import { ExtensionMessageTarget } from './types/ExtensionMessageTarget' -import { TezosOperation } from './types/tezos/TezosOperation' import { Client } from './clients/client/Client' import { WalletClient } from './clients/wallet-client/WalletClient' import { DAppClient } from './clients/dapp-client/DAppClient' import { BeaconError } from './errors/BeaconError' -import { BeaconErrorType } from './types/BeaconErrorType' import { BroadcastBeaconError } from './errors/BroadcastBeaconError' import { NetworkNotSupportedBeaconError } from './errors/NetworkNotSupportedBeaconError' import { NoAddressBeaconError } from './errors/NoAddressBeaconError' @@ -52,65 +16,17 @@ import { ParametersInvalidBeaconError } from './errors/ParametersInvalidBeaconEr import { TooManyOperationsBeaconError } from './errors/TooManyOperationsBeaconError' import { TransactionInvalidBeaconError } from './errors/TransactionInvalidBeaconError' import { UnknownBeaconError } from './errors/UnknownBeaconError' -import { ErrorResponse } from './types/beacon/messages/ErrorResponse' -import { TransportStatus } from './types/transport/TransportStatus' -import { TransportType } from './types/transport/TransportType' import { PostMessageTransport } from './transports/PostMessageTransport' import { Transport } from './transports/Transport' import { P2PTransport } from './transports/P2PTransport' -import { Storage } from './storage/Storage' -import { StorageKey } from './types/storage/StorageKey' -import { StorageKeyReturnDefaults } from './types/storage/StorageKeyReturnDefaults' -import { StorageKeyReturnType } from './types/storage/StorageKeyReturnType' -import { ExtendedP2PPairingRequest, P2PPairingRequest } from './types/P2PPairingRequest' import { ChromeStorage } from './storage/ChromeStorage' import { LocalStorage } from './storage/LocalStorage' import { getStorage } from './storage/getStorage' -import { BeaconMessage } from './types/beacon/BeaconMessage' import { Serializer } from './Serializer' -import { RequestPermissionInput } from './types/RequestPermissionInput' -import { RequestSignPayloadInput } from './types/RequestSignPayloadInput' // import { RequestEncryptPayloadInput } from './types/RequestEncryptPayloadInput' -import { RequestOperationInput } from './types/RequestOperationInput' -import { RequestBroadcastInput } from './types/RequestBroadcastInput' -import { - PermissionResponseInput, - SignPayloadResponseInput, - // EncryptPayloadResponseInput, - OperationResponseInput, - BroadcastResponseInput, - BeaconResponseInputMessage, - AcknowledgeResponseInput, - ErrorResponseInput -} from './types/beacon/messages/BeaconResponseInputMessage' -import { - PermissionResponseOutput, - SignPayloadResponseOutput, - // EncryptPayloadResponseOutput, - OperationResponseOutput, - BroadcastResponseOutput, - BeaconResponseOutputMessage -} from './types/beacon/messages/BeaconResponseOutputMessage' -import { - PermissionRequestInput, - SignPayloadRequestInput, - // EncryptPayloadRequestInput, - OperationRequestInput, - BroadcastRequestInput, - BeaconRequestInputMessage -} from './types/beacon/messages/BeaconRequestInputMessage' -import { - PermissionRequestOutput, - SignPayloadRequestOutput, - // EncryptPayloadRequestOutput, - OperationRequestOutput, - BroadcastRequestOutput, - BeaconRequestOutputMessage -} from './types/beacon/messages/BeaconRequestOutputMessage' import { ClientOptions } from './clients/client/ClientOptions' import { DAppClientOptions } from './clients/dapp-client/DAppClientOptions' import { WalletClientOptions } from './clients/wallet-client/WalletClientOptions' -import { PermissionInfo } from './types/PermissionInfo' import { SDK_VERSION, BEACON_VERSION } from './constants' import { AccountManager } from './managers/AccountManager' import { AppMetadataManager } from './managers/AppMetadataManager' @@ -120,41 +36,19 @@ import { getAddressFromPublicKey } from './utils/crypto' import { BeaconClient } from './clients/beacon-client/BeaconClient' import { BeaconClientOptions } from './clients/beacon-client/BeaconClientOptions' import { getAccountIdentifier } from './utils/get-account-identifier' -import { ConnectionContext } from './types/ConnectionContext' -import { Threshold } from './types/beacon/Threshold' -import { - PartialTezosTransactionOperation, - PartialTezosOperation, - PartialTezosDelegationOperation, - PartialTezosOriginationOperation, - PartialTezosRevealOperation -} from './types/tezos/PartialTezosOperation' import { AbortedBeaconError } from './errors/AbortedBeaconError' -import { ExtendedPeerInfo, PeerInfo } from './types/PeerInfo' import { availableTransports } from './utils/available-transports' -import { AcknowledgeResponse } from './types/beacon/messages/AcknowledgeResponse' -import { DisconnectMessage } from './types/beacon/messages/DisconnectMessage' import { DappP2PTransport } from './transports/DappP2PTransport' import { DappPostMessageTransport } from './transports/DappPostMessageTransport' import { WalletP2PTransport } from './transports/WalletP2PTransport' import { WalletPostMessageTransport } from './transports/WalletPostMessageTransport' import { getSenderId } from './utils/get-sender-id' -import { SigningType } from './types/beacon/SigningType' -import { ExtendedP2PPairingResponse } from './types/P2PPairingResponse' -import { - ExtendedPostMessagePairingRequest, - PostMessagePairingRequest -} from './types/PostMessagePairingRequest' -import { ExtendedPostMessagePairingResponse } from './types/PostMessagePairingResponse' import { PeerManager } from './managers/PeerManager' import { MessageBasedClient } from './transports/clients/MessageBasedClient' -import { BeaconRequestMessage } from './types/beacon/BeaconRequestMessage' -import { BeaconResponseMessage } from './types/beacon/BeaconResponseMessage' import { Pairing } from './ui/alert/Pairing' import { BlockExplorer } from './utils/block-explorer' import { TezblockBlockExplorer } from './utils/tezblock-blockexplorer' import { setDebugEnabled, getDebugEnabled } from './debug' -import { ColorMode } from './types/ColorMode' // import { EncryptPayloadRequest } from './types/beacon/messages/EncryptPayloadRequest' // import { EncryptPayloadResponse } from './types/beacon/messages/EncryptPayloadResponse' // import { EncryptionTypeNotSupportedBeaconError } from './errors/EncryptionTypeNotSupportedBeaconError' @@ -162,36 +56,6 @@ import { SignatureTypeNotSupportedBeaconError } from './errors/SignatureTypeNotS // import { EncryptionType } from './types/EncryptionType' // import { EncryptionOperation } from './types/EncryptionOperation' -// Tezos -export { - TezosBaseOperation, - TezosOperationType, - TezosBlockHeader, - MichelsonPrimitives, - TezosTransactionParameters, - TezosOperation -} - -// Tezos Operations -export { - TezosActivateAccountOperation, - TezosBallotOperation, - TezosDelegationOperation, - TezosDoubleBakingEvidenceOperation, - TezosDoubleEndorsementEvidenceOperation, - TezosEndorsementOperation, - TezosOriginationOperation, - TezosProposalOperation, - TezosRevealOperation, - TezosSeedNonceRevelationOperation, - TezosTransactionOperation, - PartialTezosOperation, - PartialTezosTransactionOperation, - PartialTezosDelegationOperation, - PartialTezosOriginationOperation, - PartialTezosRevealOperation -} - // Clients export { BeaconClient, @@ -205,81 +69,9 @@ export { P2PCommunicationClient } -// Beacon -export { - AccountIdentifier, - AppMetadata, - Network, - NetworkType, - BeaconMessage, - PermissionRequest, - PermissionResponse, - OperationRequest, - OperationResponse, - SignPayloadRequest, - // EncryptPayloadRequest, - SignPayloadResponse, - // EncryptPayloadResponse, - BroadcastRequest, - BroadcastResponse, - AcknowledgeResponse, - DisconnectMessage, - BeaconBaseMessage, - BeaconMessageType, - PermissionScope, - Origin, - AccountInfo, - Threshold, - SigningType, - // EncryptionType, - // EncryptionOperation, - ExtensionMessageTarget, - ExtensionMessage, - EncryptedExtensionMessage, - RequestPermissionInput, - RequestSignPayloadInput, - // RequestEncryptPayloadInput, - RequestOperationInput, - RequestBroadcastInput, - PermissionInfo -} - -export { - PermissionResponseInput, - SignPayloadResponseInput, - // EncryptPayloadResponseInput, - OperationResponseInput, - BroadcastResponseInput, - AcknowledgeResponseInput, - ErrorResponseInput, - PermissionResponseOutput, - SignPayloadResponseOutput, - // EncryptPayloadResponseOutput, - OperationResponseOutput, - BroadcastResponseOutput, - PermissionRequestInput, - SignPayloadRequestInput, - // EncryptPayloadRequestInput, - OperationRequestInput, - BroadcastRequestInput, - PermissionRequestOutput, - SignPayloadRequestOutput, - // EncryptPayloadRequestOutput, - OperationRequestOutput, - BroadcastRequestOutput, - BeaconRequestInputMessage, - BeaconRequestOutputMessage, - BeaconResponseInputMessage, - BeaconResponseOutputMessage, - BeaconRequestMessage, - BeaconResponseMessage -} - // Errors export { BeaconError, - BeaconErrorType, - ErrorResponse, AbortedBeaconError, BroadcastBeaconError, NetworkNotSupportedBeaconError, @@ -296,8 +88,6 @@ export { // Transport export { - TransportStatus, - TransportType, Transport, PostMessageTransport, P2PTransport, @@ -313,15 +103,7 @@ export { export { BeaconEvent, BeaconEventHandler, defaultEventCallbacks } // Storage -export { - Storage, - StorageKey, - StorageKeyReturnDefaults, - StorageKeyReturnType, - ChromeStorage, - LocalStorage, - getStorage -} +export { ChromeStorage, LocalStorage, getStorage } // Managers export { PeerManager, AccountManager, AppMetadataManager, PermissionManager } @@ -334,22 +116,11 @@ export { getSenderId, getAccountIdentifier, getAddressFromPublicKey } // Pairing -export { - PeerInfo, - ExtendedPeerInfo, - PostMessagePairingRequest, - ExtendedPostMessagePairingRequest, - ExtendedPostMessagePairingResponse, - P2PPairingRequest, - ExtendedP2PPairingRequest, - ExtendedP2PPairingResponse -} - // BlockExplorer export { BlockExplorer, TezblockBlockExplorer } // Others -export { ConnectionContext, Serializer, availableTransports, ColorMode } +export { Serializer, availableTransports } // Debug export { setDebugEnabled, getDebugEnabled } diff --git a/packages/beacon-core/src/interceptors/IncomingRequestInterceptor.ts b/packages/beacon-core/src/interceptors/IncomingRequestInterceptor.ts index 3066361a0..50294e6a2 100644 --- a/packages/beacon-core/src/interceptors/IncomingRequestInterceptor.ts +++ b/packages/beacon-core/src/interceptors/IncomingRequestInterceptor.ts @@ -6,12 +6,12 @@ import { AppMetadata, OperationRequestOutput, SignPayloadRequestOutput, - BroadcastRequestOutput + BroadcastRequestOutput, + ConnectionContext, + BeaconRequestMessage // EncryptPayloadRequestOutput -} from '..' -import { ConnectionContext } from '../types/ConnectionContext' +} from '@airgap/beacon-types' import { AppMetadataManager } from '../managers/AppMetadataManager' -import { BeaconRequestMessage } from '../types/beacon/BeaconRequestMessage' import { Logger } from '../utils/Logger' const logger = new Logger('IncomingRequestInterceptor') diff --git a/packages/beacon-core/src/interceptors/OutgoingResponseInterceptor.ts b/packages/beacon-core/src/interceptors/OutgoingResponseInterceptor.ts index 82aa95aa2..737cee38b 100644 --- a/packages/beacon-core/src/interceptors/OutgoingResponseInterceptor.ts +++ b/packages/beacon-core/src/interceptors/OutgoingResponseInterceptor.ts @@ -10,16 +10,16 @@ import { BroadcastResponse, PermissionInfo, AcknowledgeResponse, - AppMetadata + AppMetadata, + BeaconRequestMessage, + BeaconErrorType // EncryptPayloadResponse -} from '..' +} from '@airgap/beacon-types' import { PermissionManager } from '../managers/PermissionManager' import { AppMetadataManager } from '../managers/AppMetadataManager' import { BEACON_VERSION } from '../constants' import { getAddressFromPublicKey } from '../utils/crypto' import { getAccountIdentifier } from '../utils/get-account-identifier' -import { BeaconRequestMessage } from '../types/beacon/BeaconRequestMessage' -import { BeaconErrorType } from '../types/BeaconErrorType' import { Logger } from '../utils/Logger' interface OutgoingResponseInterceptorOptions { diff --git a/packages/beacon-core/src/managers/AccountManager.ts b/packages/beacon-core/src/managers/AccountManager.ts index 08670b191..a6f0a31a6 100644 --- a/packages/beacon-core/src/managers/AccountManager.ts +++ b/packages/beacon-core/src/managers/AccountManager.ts @@ -1,4 +1,4 @@ -import { Storage, StorageKey, AccountInfo, BeaconMessage } from '..' +import { Storage, StorageKey, AccountInfo, BeaconMessage } from '@airgap/beacon-types' import { StorageManager } from './StorageManager' import { PermissionValidator } from './PermissionValidator' diff --git a/packages/beacon-core/src/managers/AppMetadataManager.ts b/packages/beacon-core/src/managers/AppMetadataManager.ts index 3b5f3b825..521c265d8 100644 --- a/packages/beacon-core/src/managers/AppMetadataManager.ts +++ b/packages/beacon-core/src/managers/AppMetadataManager.ts @@ -1,4 +1,4 @@ -import { Storage, StorageKey, AppMetadata } from '..' +import { Storage, StorageKey, AppMetadata } from '@airgap/beacon-types' import { StorageManager } from './StorageManager' /** diff --git a/packages/beacon-core/src/managers/PeerManager.ts b/packages/beacon-core/src/managers/PeerManager.ts index 179a24cc8..0245b931c 100644 --- a/packages/beacon-core/src/managers/PeerManager.ts +++ b/packages/beacon-core/src/managers/PeerManager.ts @@ -1,4 +1,4 @@ -import { Storage, StorageKey, StorageKeyReturnType } from '..' +import { Storage, StorageKey, StorageKeyReturnType } from '@airgap/beacon-types' import { StorageManager, ArrayElem } from './StorageManager' /** diff --git a/packages/beacon-core/src/managers/PermissionManager.ts b/packages/beacon-core/src/managers/PermissionManager.ts index da92e8976..2d4fb30db 100644 --- a/packages/beacon-core/src/managers/PermissionManager.ts +++ b/packages/beacon-core/src/managers/PermissionManager.ts @@ -1,5 +1,4 @@ -import { BeaconMessage, Storage, StorageKey } from '..' -import { PermissionInfo } from '../types/PermissionInfo' +import { BeaconMessage, Storage, StorageKey, PermissionInfo } from '@airgap/beacon-types' import { StorageManager } from './StorageManager' import { PermissionValidator } from './PermissionValidator' diff --git a/packages/beacon-core/src/managers/PermissionValidator.ts b/packages/beacon-core/src/managers/PermissionValidator.ts index 4e735d0fc..e9536ede7 100644 --- a/packages/beacon-core/src/managers/PermissionValidator.ts +++ b/packages/beacon-core/src/managers/PermissionValidator.ts @@ -1,5 +1,9 @@ -import { BeaconMessage, BeaconMessageType, PermissionScope } from '..' -import { PermissionEntity } from '../types/PermissionEntity' +import { + BeaconMessage, + BeaconMessageType, + PermissionScope, + PermissionEntity +} from '@airgap/beacon-types' import { getAccountIdentifier } from '../utils/get-account-identifier' /** diff --git a/packages/beacon-core/src/managers/StorageManager.ts b/packages/beacon-core/src/managers/StorageManager.ts index 7c8ce85e7..680804597 100644 --- a/packages/beacon-core/src/managers/StorageManager.ts +++ b/packages/beacon-core/src/managers/StorageManager.ts @@ -1,4 +1,4 @@ -import { StorageKey, Storage, StorageKeyReturnType } from '..' +import { StorageKey, Storage, StorageKeyReturnType } from '@airgap/beacon-types' /** Type workaround for https://github.com/Microsoft/TypeScript/issues/7294#issuecomment-465794460 */ export type ArrayElem = A extends (infer Elem)[] ? Elem : never diff --git a/packages/beacon-core/src/matrix-client/MatrixClient.ts b/packages/beacon-core/src/matrix-client/MatrixClient.ts index 6c8c51bb5..0e228b388 100644 --- a/packages/beacon-core/src/matrix-client/MatrixClient.ts +++ b/packages/beacon-core/src/matrix-client/MatrixClient.ts @@ -1,4 +1,4 @@ -import { Storage } from '../storage/Storage' +import { Storage } from '@airgap/beacon-types' import { Logger } from '../utils/Logger' import { ExposedPromise } from '../utils/exposed-promise' import { MatrixClientStore } from './MatrixClientStore' diff --git a/packages/beacon-core/src/matrix-client/MatrixClientStore.ts b/packages/beacon-core/src/matrix-client/MatrixClientStore.ts index d86b3c4ef..2eef1a2a7 100644 --- a/packages/beacon-core/src/matrix-client/MatrixClientStore.ts +++ b/packages/beacon-core/src/matrix-client/MatrixClientStore.ts @@ -1,7 +1,6 @@ import { keys } from '../utils/utils' import { MatrixRoom, MatrixRoomStatus } from './models/MatrixRoom' -import { Storage } from '../storage/Storage' -import { StorageKey } from '..' +import { Storage, StorageKey } from '@airgap/beacon-types' type OnStateChangedListener = ( oldState: MatrixStateStore, diff --git a/packages/beacon-core/src/migrations/migrate-0.7.0.ts b/packages/beacon-core/src/migrations/migrate-0.7.0.ts index d2581fc05..e61a4ec6a 100644 --- a/packages/beacon-core/src/migrations/migrate-0.7.0.ts +++ b/packages/beacon-core/src/migrations/migrate-0.7.0.ts @@ -6,7 +6,7 @@ import { P2PPairingRequest, StorageKey, AccountInfo -} from '..' +} from '@airgap/beacon-types' export interface AccountInfoOld { accountIdentifier: AccountIdentifier diff --git a/packages/beacon-core/src/migrations/migrations.ts b/packages/beacon-core/src/migrations/migrations.ts index 0565fb95c..79d074e77 100644 --- a/packages/beacon-core/src/migrations/migrations.ts +++ b/packages/beacon-core/src/migrations/migrations.ts @@ -1,5 +1,5 @@ import { SDK_VERSION } from '../constants' -import { Storage, StorageKey } from '..' +import { Storage, StorageKey } from '@airgap/beacon-types' import { migrate_0_7_0 } from './migrate-0.7.0' const migrations: [string, Function][] = [ diff --git a/packages/beacon-core/src/storage/ChromeStorage.ts b/packages/beacon-core/src/storage/ChromeStorage.ts index 1992d26d6..6cc04ed67 100644 --- a/packages/beacon-core/src/storage/ChromeStorage.ts +++ b/packages/beacon-core/src/storage/ChromeStorage.ts @@ -1,5 +1,4 @@ -import { defaultValues } from '../types/storage/StorageKeyReturnDefaults' -import { Storage, StorageKey, StorageKeyReturnType } from '..' +import { Storage, StorageKey, StorageKeyReturnType, defaultValues } from '@airgap/beacon-types' /** * @internalapi diff --git a/packages/beacon-core/src/storage/LocalStorage.ts b/packages/beacon-core/src/storage/LocalStorage.ts index 782cc00cd..a83066f0e 100644 --- a/packages/beacon-core/src/storage/LocalStorage.ts +++ b/packages/beacon-core/src/storage/LocalStorage.ts @@ -1,5 +1,4 @@ -import { defaultValues } from '../types/storage/StorageKeyReturnDefaults' -import { Storage, StorageKey, StorageKeyReturnType } from '..' +import { Storage, StorageKey, StorageKeyReturnType, defaultValues } from '@airgap/beacon-types' /** * @internalapi diff --git a/packages/beacon-core/src/storage/getStorage.ts b/packages/beacon-core/src/storage/getStorage.ts index 778911821..538e4ed41 100644 --- a/packages/beacon-core/src/storage/getStorage.ts +++ b/packages/beacon-core/src/storage/getStorage.ts @@ -1,5 +1,6 @@ import { Logger } from '../utils/Logger' -import { ChromeStorage, Storage, LocalStorage } from '..' +import { ChromeStorage, LocalStorage } from '..' +import { Storage } from '@airgap/beacon-types' const logger = new Logger('STORAGE') diff --git a/packages/beacon-core/src/transports/DappP2PTransport.ts b/packages/beacon-core/src/transports/DappP2PTransport.ts index e5a8e271d..636a49b45 100644 --- a/packages/beacon-core/src/transports/DappP2PTransport.ts +++ b/packages/beacon-core/src/transports/DappP2PTransport.ts @@ -1,6 +1,11 @@ import * as sodium from 'libsodium-wrappers' -import { Storage, StorageKey, P2PTransport, TransportStatus } from '..' -import { ExtendedP2PPairingResponse } from '../types/P2PPairingResponse' +import { + Storage, + StorageKey, + TransportStatus, + ExtendedP2PPairingResponse +} from '@airgap/beacon-types' +import { P2PTransport } from '..' import { Logger } from '../utils/Logger' const logger = new Logger('DappP2PTransport') diff --git a/packages/beacon-core/src/transports/DappPostMessageTransport.ts b/packages/beacon-core/src/transports/DappPostMessageTransport.ts index fb4f93fcf..1410ae71a 100644 --- a/packages/beacon-core/src/transports/DappPostMessageTransport.ts +++ b/packages/beacon-core/src/transports/DappPostMessageTransport.ts @@ -1,7 +1,12 @@ import * as sodium from 'libsodium-wrappers' -import { TransportStatus, StorageKey, PostMessageTransport, Storage } from '..' +import { + TransportStatus, + StorageKey, + Storage, + ExtendedPostMessagePairingResponse +} from '@airgap/beacon-types' import { Logger } from '../utils/Logger' -import { ExtendedPostMessagePairingResponse } from '../types/PostMessagePairingResponse' +import { PostMessageTransport } from '..' const logger = new Logger('DappPostMessageTransport') diff --git a/packages/beacon-core/src/transports/P2PTransport.ts b/packages/beacon-core/src/transports/P2PTransport.ts index 9b8ced0af..4d94f0127 100644 --- a/packages/beacon-core/src/transports/P2PTransport.ts +++ b/packages/beacon-core/src/transports/P2PTransport.ts @@ -1,18 +1,17 @@ import * as sodium from 'libsodium-wrappers' import { Logger } from '../utils/Logger' -import { ConnectionContext } from '../types/ConnectionContext' import { + ConnectionContext, + ExtendedP2PPairingResponse, Storage, StorageKey, TransportStatus, - Transport, TransportType, - P2PCommunicationClient, Origin, P2PPairingRequest -} from '..' +} from '@airgap/beacon-types' +import { Transport, P2PCommunicationClient } from '..' import { PeerManager } from '../managers/PeerManager' -import { ExtendedP2PPairingResponse } from '../types/P2PPairingResponse' const logger = new Logger('P2PTransport') diff --git a/packages/beacon-core/src/transports/PostMessageTransport.ts b/packages/beacon-core/src/transports/PostMessageTransport.ts index 579cdf2f3..66fc6c450 100644 --- a/packages/beacon-core/src/transports/PostMessageTransport.ts +++ b/packages/beacon-core/src/transports/PostMessageTransport.ts @@ -2,18 +2,21 @@ import * as sodium from 'libsodium-wrappers' import { windowRef } from '../MockWindow' import { Logger } from '../utils/Logger' import { PeerManager } from '../managers/PeerManager' -import { PostMessagePairingRequest } from '../types/PostMessagePairingRequest' -import { ExtendedPostMessagePairingResponse } from '../types/PostMessagePairingResponse' import { ExposedPromise } from '../utils/exposed-promise' -import { Extension } from '../types/Extension' -import { StorageKey } from '../types/storage/StorageKey' -import { TransportType } from '../types/transport/TransportType' -import { ExtensionMessage } from '../types/ExtensionMessage' -import { ExtensionMessageTarget } from '../types/ExtensionMessageTarget' -import { TransportStatus } from '../types/transport/TransportStatus' -import { ConnectionContext } from '../types/ConnectionContext' -import { Origin } from '../types/Origin' -import { Storage } from '../storage/Storage' + +import { + PostMessagePairingRequest, + ExtendedPostMessagePairingResponse, + Extension, + StorageKey, + TransportType, + ExtensionMessage, + ExtensionMessageTarget, + TransportStatus, + ConnectionContext, + Origin +} from '@airgap/beacon-types' +import { Storage } from '@airgap/beacon-types' import { PostMessageClient } from './clients/PostMessageClient' import { Transport } from './Transport' diff --git a/packages/beacon-core/src/transports/Transport.ts b/packages/beacon-core/src/transports/Transport.ts index efb4a1479..87925cf75 100644 --- a/packages/beacon-core/src/transports/Transport.ts +++ b/packages/beacon-core/src/transports/Transport.ts @@ -1,6 +1,12 @@ import { Logger } from '../utils/Logger' -import { ConnectionContext } from '../types/ConnectionContext' -import { TransportType, TransportStatus, PeerInfo, StorageKey, StorageKeyReturnType } from '..' +import { + TransportType, + TransportStatus, + PeerInfo, + StorageKey, + StorageKeyReturnType, + ConnectionContext +} from '@airgap/beacon-types' import { PeerManager } from '../managers/PeerManager' import { ArrayElem } from '../managers/StorageManager' import { CommunicationClient } from './clients/CommunicationClient' diff --git a/packages/beacon-core/src/transports/WalletP2PTransport.ts b/packages/beacon-core/src/transports/WalletP2PTransport.ts index 6f2e699ff..af49e410f 100644 --- a/packages/beacon-core/src/transports/WalletP2PTransport.ts +++ b/packages/beacon-core/src/transports/WalletP2PTransport.ts @@ -1,5 +1,6 @@ import * as sodium from 'libsodium-wrappers' -import { Storage, StorageKey, P2PTransport, P2PPairingRequest } from '..' +import { Storage, StorageKey, P2PPairingRequest } from '@airgap/beacon-types' +import { P2PTransport } from '..' // const logger = new Logger('DappP2PTransport') diff --git a/packages/beacon-core/src/transports/WalletPostMessageTransport.ts b/packages/beacon-core/src/transports/WalletPostMessageTransport.ts index 2f2d8e752..29e12d091 100644 --- a/packages/beacon-core/src/transports/WalletPostMessageTransport.ts +++ b/packages/beacon-core/src/transports/WalletPostMessageTransport.ts @@ -1,6 +1,6 @@ import * as sodium from 'libsodium-wrappers' -import { StorageKey, PostMessageTransport, Storage } from '..' -import { PostMessagePairingRequest } from '../types/PostMessagePairingRequest' +import { StorageKey, Storage, PostMessagePairingRequest } from '@airgap/beacon-types' +import { PostMessageTransport } from '..' // const logger = new Logger('WalletPostMessageTransport') diff --git a/packages/beacon-core/src/transports/clients/CommunicationClient.ts b/packages/beacon-core/src/transports/clients/CommunicationClient.ts index c14e768ee..6754e61b1 100644 --- a/packages/beacon-core/src/transports/clients/CommunicationClient.ts +++ b/packages/beacon-core/src/transports/clients/CommunicationClient.ts @@ -1,8 +1,10 @@ import * as sodium from 'libsodium-wrappers' -import { P2PPairingRequest } from '../..' -import { ExtendedP2PPairingResponse } from '../../types/P2PPairingResponse' -import { PostMessagePairingRequest } from '../../types/PostMessagePairingRequest' -import { ExtendedPostMessagePairingResponse } from '../../types/PostMessagePairingResponse' +import { + P2PPairingRequest, + ExtendedP2PPairingResponse, + PostMessagePairingRequest, + ExtendedPostMessagePairingResponse +} from '@airgap/beacon-types' import { toHex, getHexHash, sealCryptobox } from '../../utils/crypto' /** diff --git a/packages/beacon-core/src/transports/clients/MessageBasedClient.ts b/packages/beacon-core/src/transports/clients/MessageBasedClient.ts index 942276a44..6d684ea86 100644 --- a/packages/beacon-core/src/transports/clients/MessageBasedClient.ts +++ b/packages/beacon-core/src/transports/clients/MessageBasedClient.ts @@ -1,10 +1,9 @@ import * as sodium from 'libsodium-wrappers' import { BEACON_VERSION } from '../../constants' -import { PostMessagePairingRequest } from '../../types/PostMessagePairingRequest' -import { PostMessagePairingResponse } from '../../types/PostMessagePairingResponse' import { decryptCryptoboxPayload, encryptCryptoboxPayload } from '../../utils/crypto' import { generateGUID } from '../../utils/generate-uuid' import { CommunicationClient } from './CommunicationClient' +import { PostMessagePairingRequest, PostMessagePairingResponse } from '@airgap/beacon-types' /** * @internalapi diff --git a/packages/beacon-core/src/transports/clients/P2PCommunicationClient.ts b/packages/beacon-core/src/transports/clients/P2PCommunicationClient.ts index 10e5247a4..8fd1a7688 100644 --- a/packages/beacon-core/src/transports/clients/P2PCommunicationClient.ts +++ b/packages/beacon-core/src/transports/clients/P2PCommunicationClient.ts @@ -17,11 +17,16 @@ import { } from '../../matrix-client/models/MatrixClientEvent' import { MatrixMessageType } from '../../matrix-client/models/MatrixMessage' import { MatrixRoom } from '../../matrix-client/models/MatrixRoom' -import { Storage } from '../../storage/Storage' -import { P2PPairingRequest, PeerManager, StorageKey } from '../..' +import { + Storage, + P2PPairingRequest, + StorageKey, + ExtendedP2PPairingResponse, + P2PPairingResponse +} from '@airgap/beacon-types' +import { PeerManager } from '../..' import { BEACON_VERSION } from '../../constants' import { generateGUID } from '../../utils/generate-uuid' -import { ExtendedP2PPairingResponse, P2PPairingResponse } from '../../types/P2PPairingResponse' import { getSenderId } from '../../utils/get-sender-id' import { Logger } from '../../utils/Logger' import { CommunicationClient } from './CommunicationClient' diff --git a/packages/beacon-core/src/transports/clients/PostMessageClient.ts b/packages/beacon-core/src/transports/clients/PostMessageClient.ts index 2db91f496..b976387d6 100644 --- a/packages/beacon-core/src/transports/clients/PostMessageClient.ts +++ b/packages/beacon-core/src/transports/clients/PostMessageClient.ts @@ -1,21 +1,20 @@ import * as sodium from 'libsodium-wrappers' import { windowRef } from '../../MockWindow' +import { Serializer } from '../..' + +import { openCryptobox } from '../../utils/crypto' +import { getSenderId } from '../../utils/get-sender-id' +import { MessageBasedClient } from './MessageBasedClient' import { ExtensionMessage, ExtensionMessageTarget, Origin, - Serializer, - ConnectionContext -} from '../..' -import { + ConnectionContext, ExtendedPostMessagePairingResponse, - PostMessagePairingResponse -} from '../../types/PostMessagePairingResponse' -import { EncryptedExtensionMessage } from '../../types/ExtensionMessage' -import { openCryptobox } from '../../utils/crypto' -import { getSenderId } from '../../utils/get-sender-id' -import { PostMessagePairingRequest } from '../../types/PostMessagePairingRequest' -import { MessageBasedClient } from './MessageBasedClient' + PostMessagePairingResponse, + EncryptedExtensionMessage, + PostMessagePairingRequest +} from '@airgap/beacon-types' /** * @internalapi diff --git a/packages/beacon-core/src/ui/alert/Alert.ts b/packages/beacon-core/src/ui/alert/Alert.ts index a87a96cc2..b447a8ab2 100644 --- a/packages/beacon-core/src/ui/alert/Alert.ts +++ b/packages/beacon-core/src/ui/alert/Alert.ts @@ -1,6 +1,6 @@ // Taken from https://github.com/WalletConnect/walletconnect-monorepo/blob/master/packages/qrcode-modal/src/browser.ts -import { NetworkType, P2PPairingRequest, PostMessagePairingRequest } from '../..' +import { NetworkType, P2PPairingRequest, PostMessagePairingRequest } from '@airgap/beacon-types' import { getColorMode } from '../../colorMode' import { generateGUID } from '../../utils/generate-uuid' import { replaceInTemplate } from '../../utils/replace-in-template' diff --git a/packages/beacon-core/src/ui/alert/Pairing.ts b/packages/beacon-core/src/ui/alert/Pairing.ts index 45db6a53d..5de7666b7 100644 --- a/packages/beacon-core/src/ui/alert/Pairing.ts +++ b/packages/beacon-core/src/ui/alert/Pairing.ts @@ -3,10 +3,10 @@ import { ExtensionMessage, ExtensionMessageTarget, NetworkType, - availableTransports, P2PPairingRequest, PostMessagePairingRequest -} from '../..' +} from '@airgap/beacon-types' +import { availableTransports } from '../..' import { windowRef } from '../../MockWindow' import { getTzip10Link } from '../../utils/get-tzip10-link' import { isAndroid, isIOS } from '../../utils/platform' diff --git a/packages/beacon-core/src/ui/alert/PairingAlert.ts b/packages/beacon-core/src/ui/alert/PairingAlert.ts index 01fc51860..523167376 100644 --- a/packages/beacon-core/src/ui/alert/PairingAlert.ts +++ b/packages/beacon-core/src/ui/alert/PairingAlert.ts @@ -1,5 +1,5 @@ import { Serializer } from '../../Serializer' -import { NetworkType, P2PPairingRequest, PostMessagePairingRequest } from '../..' +import { NetworkType, P2PPairingRequest, PostMessagePairingRequest } from '@airgap/beacon-types' import { generateGUID } from '../../utils/generate-uuid' import { Logger } from '../../utils/Logger' import { isAndroid, isIOS } from '../../utils/platform' diff --git a/packages/beacon-core/src/utils/block-explorer.ts b/packages/beacon-core/src/utils/block-explorer.ts index b13e7e676..085bc73bc 100644 --- a/packages/beacon-core/src/utils/block-explorer.ts +++ b/packages/beacon-core/src/utils/block-explorer.ts @@ -1,4 +1,4 @@ -import { Network, NetworkType } from '..' +import { Network, NetworkType } from '@airgap/beacon-types' export abstract class BlockExplorer { constructor(public readonly rpcUrls: { [key in NetworkType]: string }) {} diff --git a/packages/beacon-core/src/utils/get-account-identifier.ts b/packages/beacon-core/src/utils/get-account-identifier.ts index fada6494f..25bdfc096 100644 --- a/packages/beacon-core/src/utils/get-account-identifier.ts +++ b/packages/beacon-core/src/utils/get-account-identifier.ts @@ -1,6 +1,6 @@ import * as sodium from 'libsodium-wrappers' import * as bs58check from 'bs58check' -import { Network } from '..' +import { Network } from '@airgap/beacon-types' /** * @internalapi diff --git a/packages/beacon-core/src/utils/tezblock-blockexplorer.ts b/packages/beacon-core/src/utils/tezblock-blockexplorer.ts index 6fe13f773..f3115f5e1 100644 --- a/packages/beacon-core/src/utils/tezblock-blockexplorer.ts +++ b/packages/beacon-core/src/utils/tezblock-blockexplorer.ts @@ -1,4 +1,4 @@ -import { Network, NetworkType } from '..' +import { Network, NetworkType } from '@airgap/beacon-types' import { BlockExplorer } from './block-explorer' export class TezblockBlockExplorer extends BlockExplorer { diff --git a/packages/beacon-core/src/utils/utils.ts b/packages/beacon-core/src/utils/utils.ts index 568301d0c..4264e4faa 100644 --- a/packages/beacon-core/src/utils/utils.ts +++ b/packages/beacon-core/src/utils/utils.ts @@ -8,5 +8,3 @@ export function keys(obj: O): (keyof O)[] { return Object.keys(obj) as (keyof O)[] } - -export type Optional = Partial & Omit diff --git a/packages/beacon-types/src/index.ts b/packages/beacon-types/src/index.ts index 0613f1911..1d7b72559 100644 --- a/packages/beacon-types/src/index.ts +++ b/packages/beacon-types/src/index.ts @@ -1 +1,253 @@ -export class Test {} +/** + * General docs + * @module public + */ +import { AppMetadata } from './types/beacon/AppMetadata' +import { PermissionRequest } from './types/beacon/messages/PermissionRequest' +import { Network } from './types/beacon/Network' +import { BeaconBaseMessage } from './types/beacon/BeaconBaseMessage' +import { BeaconMessageType } from './types/beacon/BeaconMessageType' +import { PermissionScope } from './types/beacon/PermissionScope' +import { PermissionResponse } from './types/beacon/messages/PermissionResponse' +import { OperationRequest } from './types/beacon/messages/OperationRequest' +import { OperationResponse } from './types/beacon/messages/OperationResponse' +import { SignPayloadRequest } from './types/beacon/messages/SignPayloadRequest' +import { SignPayloadResponse } from './types/beacon/messages/SignPayloadResponse' +import { BroadcastRequest } from './types/beacon/messages/BroadcastRequest' +import { BroadcastResponse } from './types/beacon/messages/BroadcastResponse' +import { NetworkType } from './types/beacon/NetworkType' +import { TezosBaseOperation } from './types/tezos/TezosBaseOperation' +import { TezosOperationType } from './types/tezos/OperationTypes' +import { TezosActivateAccountOperation } from './types/tezos/operations/ActivateAccount' +import { TezosBallotOperation } from './types/tezos/operations/Ballot' +import { TezosDelegationOperation } from './types/tezos/operations/Delegation' +import { TezosDoubleBakingEvidenceOperation } from './types/tezos/operations/DoubleBakingEvidence' +import { TezosBlockHeader } from './types/tezos/TezosBlockHeader' +import { TezosDoubleEndorsementEvidenceOperation } from './types/tezos/operations/DoubleEndorsementEvidence' +import { TezosEndorsementOperation } from './types/tezos/operations/Endorsement' +import { TezosOriginationOperation } from './types/tezos/operations/Origination' +import { TezosProposalOperation } from './types/tezos/operations/Proposal' +import { TezosRevealOperation } from './types/tezos/operations/Reveal' +import { TezosSeedNonceRevelationOperation } from './types/tezos/operations/SeedNonceRevelation' +import { TezosTransactionOperation } from './types/tezos/operations/Transaction' +import { MichelsonPrimitives } from './types/tezos/MichelsonPrimitives' +import { TezosTransactionParameters } from './types/tezos/TezosTransactionParameters' +import { Origin } from './types/Origin' +import { AccountInfo, AccountIdentifier } from './types/AccountInfo' +import { EncryptedExtensionMessage, ExtensionMessage } from './types/ExtensionMessage' +import { ExtensionMessageTarget } from './types/ExtensionMessageTarget' +import { TezosOperation } from './types/tezos/TezosOperation' +import { BeaconErrorType } from './types/BeaconErrorType' +import { ErrorResponse } from './types/beacon/messages/ErrorResponse' +import { TransportStatus } from './types/transport/TransportStatus' +import { TransportType } from './types/transport/TransportType' +import { Storage } from './types/storage/Storage' +import { StorageKey } from './types/storage/StorageKey' +import { defaultValues, StorageKeyReturnDefaults } from './types/storage/StorageKeyReturnDefaults' +import { StorageKeyReturnType } from './types/storage/StorageKeyReturnType' +import { ExtendedP2PPairingRequest, P2PPairingRequest } from './types/P2PPairingRequest' +import { BeaconMessage } from './types/beacon/BeaconMessage' +import { RequestPermissionInput } from './types/RequestPermissionInput' +import { RequestSignPayloadInput } from './types/RequestSignPayloadInput' +// import { RequestEncryptPayloadInput } from './types/RequestEncryptPayloadInput' +import { RequestOperationInput } from './types/RequestOperationInput' +import { RequestBroadcastInput } from './types/RequestBroadcastInput' +import { + PermissionResponseInput, + SignPayloadResponseInput, + // EncryptPayloadResponseInput, + OperationResponseInput, + BroadcastResponseInput, + BeaconResponseInputMessage, + AcknowledgeResponseInput, + ErrorResponseInput +} from './types/beacon/messages/BeaconResponseInputMessage' +import { + PermissionResponseOutput, + SignPayloadResponseOutput, + // EncryptPayloadResponseOutput, + OperationResponseOutput, + BroadcastResponseOutput, + BeaconResponseOutputMessage +} from './types/beacon/messages/BeaconResponseOutputMessage' +import { + PermissionRequestInput, + SignPayloadRequestInput, + // EncryptPayloadRequestInput, + OperationRequestInput, + BroadcastRequestInput, + BeaconRequestInputMessage, + IgnoredRequestInputProperties +} from './types/beacon/messages/BeaconRequestInputMessage' +import { + PermissionRequestOutput, + SignPayloadRequestOutput, + // EncryptPayloadRequestOutput, + OperationRequestOutput, + BroadcastRequestOutput, + BeaconRequestOutputMessage +} from './types/beacon/messages/BeaconRequestOutputMessage' +import { PermissionInfo } from './types/PermissionInfo' +import { ConnectionContext } from './types/ConnectionContext' +import { Threshold } from './types/beacon/Threshold' +import { + PartialTezosTransactionOperation, + PartialTezosOperation, + PartialTezosDelegationOperation, + PartialTezosOriginationOperation, + PartialTezosRevealOperation +} from './types/tezos/PartialTezosOperation' +import { ExtendedPeerInfo, PeerInfo } from './types/PeerInfo' +import { AcknowledgeResponse } from './types/beacon/messages/AcknowledgeResponse' +import { DisconnectMessage } from './types/beacon/messages/DisconnectMessage' +import { SigningType } from './types/beacon/SigningType' +import { ExtendedP2PPairingResponse, P2PPairingResponse } from './types/P2PPairingResponse' +import { + ExtendedPostMessagePairingRequest, + PostMessagePairingRequest +} from './types/PostMessagePairingRequest' +import { + ExtendedPostMessagePairingResponse, + PostMessagePairingResponse +} from './types/PostMessagePairingResponse' +import { BeaconRequestMessage } from './types/beacon/BeaconRequestMessage' +import { BeaconResponseMessage } from './types/beacon/BeaconResponseMessage' +import { ColorMode } from './types/ColorMode' +import { Optional } from './types/utils/Optional' +import { Extension } from './types/Extension' +import { PermissionEntity } from './types/PermissionEntity' + +// Tezos +export { + TezosBaseOperation, + TezosOperationType, + TezosBlockHeader, + MichelsonPrimitives, + TezosTransactionParameters, + TezosOperation +} + +// Tezos Operations +export { + TezosActivateAccountOperation, + TezosBallotOperation, + TezosDelegationOperation, + TezosDoubleBakingEvidenceOperation, + TezosDoubleEndorsementEvidenceOperation, + TezosEndorsementOperation, + TezosOriginationOperation, + TezosProposalOperation, + TezosRevealOperation, + TezosSeedNonceRevelationOperation, + TezosTransactionOperation, + PartialTezosOperation, + PartialTezosTransactionOperation, + PartialTezosDelegationOperation, + PartialTezosOriginationOperation, + PartialTezosRevealOperation +} + +// Beacon +export { + AccountIdentifier, + AppMetadata, + Network, + NetworkType, + BeaconMessage, + PermissionRequest, + PermissionResponse, + OperationRequest, + OperationResponse, + SignPayloadRequest, + // EncryptPayloadRequest, + SignPayloadResponse, + // EncryptPayloadResponse, + BroadcastRequest, + BroadcastResponse, + AcknowledgeResponse, + DisconnectMessage, + BeaconBaseMessage, + BeaconMessageType, + PermissionScope, + Origin, + AccountInfo, + Threshold, + SigningType, + // EncryptionType, + // EncryptionOperation, + ExtensionMessageTarget, + ExtensionMessage, + Extension, + EncryptedExtensionMessage, + RequestPermissionInput, + RequestSignPayloadInput, + // RequestEncryptPayloadInput, + RequestOperationInput, + RequestBroadcastInput, + PermissionInfo, + PermissionEntity +} + +export { + PermissionResponseInput, + SignPayloadResponseInput, + // EncryptPayloadResponseInput, + OperationResponseInput, + BroadcastResponseInput, + AcknowledgeResponseInput, + ErrorResponseInput, + PermissionResponseOutput, + SignPayloadResponseOutput, + // EncryptPayloadResponseOutput, + OperationResponseOutput, + BroadcastResponseOutput, + PermissionRequestInput, + SignPayloadRequestInput, + // EncryptPayloadRequestInput, + OperationRequestInput, + BroadcastRequestInput, + PermissionRequestOutput, + SignPayloadRequestOutput, + // EncryptPayloadRequestOutput, + OperationRequestOutput, + BroadcastRequestOutput, + BeaconRequestInputMessage, + BeaconRequestOutputMessage, + BeaconResponseInputMessage, + BeaconResponseOutputMessage, + BeaconRequestMessage, + BeaconResponseMessage +} + +// Errors +export { BeaconErrorType, ErrorResponse } + +// Transport +export { TransportStatus, TransportType } + +// Storage +export { Storage, StorageKey, StorageKeyReturnDefaults, StorageKeyReturnType } + +// Pairing + +export { + PeerInfo, + ExtendedPeerInfo, + PostMessagePairingRequest, + PostMessagePairingResponse, + ExtendedPostMessagePairingRequest, + ExtendedPostMessagePairingResponse, + P2PPairingRequest, + P2PPairingResponse, + ExtendedP2PPairingRequest, + ExtendedP2PPairingResponse +} + +export { IgnoredRequestInputProperties, defaultValues } + +// Others +export { ConnectionContext, ColorMode } + +// TS helpers + +export { Optional } diff --git a/packages/beacon-core/src/types/AccountInfo.ts b/packages/beacon-types/src/types/AccountInfo.ts similarity index 100% rename from packages/beacon-core/src/types/AccountInfo.ts rename to packages/beacon-types/src/types/AccountInfo.ts diff --git a/packages/beacon-core/src/types/BeaconErrorType.ts b/packages/beacon-types/src/types/BeaconErrorType.ts similarity index 100% rename from packages/beacon-core/src/types/BeaconErrorType.ts rename to packages/beacon-types/src/types/BeaconErrorType.ts diff --git a/packages/beacon-core/src/types/ColorMode.ts b/packages/beacon-types/src/types/ColorMode.ts similarity index 100% rename from packages/beacon-core/src/types/ColorMode.ts rename to packages/beacon-types/src/types/ColorMode.ts diff --git a/packages/beacon-core/src/types/ConnectionContext.ts b/packages/beacon-types/src/types/ConnectionContext.ts similarity index 100% rename from packages/beacon-core/src/types/ConnectionContext.ts rename to packages/beacon-types/src/types/ConnectionContext.ts diff --git a/packages/beacon-core/src/types/EncryptionOperation.ts b/packages/beacon-types/src/types/EncryptionOperation.ts similarity index 100% rename from packages/beacon-core/src/types/EncryptionOperation.ts rename to packages/beacon-types/src/types/EncryptionOperation.ts diff --git a/packages/beacon-core/src/types/EncryptionType.ts b/packages/beacon-types/src/types/EncryptionType.ts similarity index 100% rename from packages/beacon-core/src/types/EncryptionType.ts rename to packages/beacon-types/src/types/EncryptionType.ts diff --git a/packages/beacon-core/src/types/Extension.ts b/packages/beacon-types/src/types/Extension.ts similarity index 100% rename from packages/beacon-core/src/types/Extension.ts rename to packages/beacon-types/src/types/Extension.ts diff --git a/packages/beacon-core/src/types/ExtensionMessage.ts b/packages/beacon-types/src/types/ExtensionMessage.ts similarity index 100% rename from packages/beacon-core/src/types/ExtensionMessage.ts rename to packages/beacon-types/src/types/ExtensionMessage.ts diff --git a/packages/beacon-core/src/types/ExtensionMessageTarget.ts b/packages/beacon-types/src/types/ExtensionMessageTarget.ts similarity index 100% rename from packages/beacon-core/src/types/ExtensionMessageTarget.ts rename to packages/beacon-types/src/types/ExtensionMessageTarget.ts diff --git a/packages/beacon-core/src/types/Origin.ts b/packages/beacon-types/src/types/Origin.ts similarity index 100% rename from packages/beacon-core/src/types/Origin.ts rename to packages/beacon-types/src/types/Origin.ts diff --git a/packages/beacon-core/src/types/P2PPairingRequest.ts b/packages/beacon-types/src/types/P2PPairingRequest.ts similarity index 100% rename from packages/beacon-core/src/types/P2PPairingRequest.ts rename to packages/beacon-types/src/types/P2PPairingRequest.ts diff --git a/packages/beacon-core/src/types/P2PPairingResponse.ts b/packages/beacon-types/src/types/P2PPairingResponse.ts similarity index 100% rename from packages/beacon-core/src/types/P2PPairingResponse.ts rename to packages/beacon-types/src/types/P2PPairingResponse.ts diff --git a/packages/beacon-core/src/types/PeerInfo.ts b/packages/beacon-types/src/types/PeerInfo.ts similarity index 100% rename from packages/beacon-core/src/types/PeerInfo.ts rename to packages/beacon-types/src/types/PeerInfo.ts diff --git a/packages/beacon-core/src/types/PermissionEntity.ts b/packages/beacon-types/src/types/PermissionEntity.ts similarity index 100% rename from packages/beacon-core/src/types/PermissionEntity.ts rename to packages/beacon-types/src/types/PermissionEntity.ts diff --git a/packages/beacon-core/src/types/PermissionInfo.ts b/packages/beacon-types/src/types/PermissionInfo.ts similarity index 100% rename from packages/beacon-core/src/types/PermissionInfo.ts rename to packages/beacon-types/src/types/PermissionInfo.ts diff --git a/packages/beacon-core/src/types/PostMessagePairingRequest.ts b/packages/beacon-types/src/types/PostMessagePairingRequest.ts similarity index 100% rename from packages/beacon-core/src/types/PostMessagePairingRequest.ts rename to packages/beacon-types/src/types/PostMessagePairingRequest.ts diff --git a/packages/beacon-core/src/types/PostMessagePairingResponse.ts b/packages/beacon-types/src/types/PostMessagePairingResponse.ts similarity index 100% rename from packages/beacon-core/src/types/PostMessagePairingResponse.ts rename to packages/beacon-types/src/types/PostMessagePairingResponse.ts diff --git a/packages/beacon-core/src/types/RequestBroadcastInput.ts b/packages/beacon-types/src/types/RequestBroadcastInput.ts similarity index 100% rename from packages/beacon-core/src/types/RequestBroadcastInput.ts rename to packages/beacon-types/src/types/RequestBroadcastInput.ts diff --git a/packages/beacon-core/src/types/RequestEncryptPayloadInput.ts b/packages/beacon-types/src/types/RequestEncryptPayloadInput.ts similarity index 100% rename from packages/beacon-core/src/types/RequestEncryptPayloadInput.ts rename to packages/beacon-types/src/types/RequestEncryptPayloadInput.ts diff --git a/packages/beacon-core/src/types/RequestOperationInput.ts b/packages/beacon-types/src/types/RequestOperationInput.ts similarity index 100% rename from packages/beacon-core/src/types/RequestOperationInput.ts rename to packages/beacon-types/src/types/RequestOperationInput.ts diff --git a/packages/beacon-core/src/types/RequestPermissionInput.ts b/packages/beacon-types/src/types/RequestPermissionInput.ts similarity index 100% rename from packages/beacon-core/src/types/RequestPermissionInput.ts rename to packages/beacon-types/src/types/RequestPermissionInput.ts diff --git a/packages/beacon-core/src/types/RequestSignPayloadInput.ts b/packages/beacon-types/src/types/RequestSignPayloadInput.ts similarity index 100% rename from packages/beacon-core/src/types/RequestSignPayloadInput.ts rename to packages/beacon-types/src/types/RequestSignPayloadInput.ts diff --git a/packages/beacon-core/src/types/beacon/AppMetadata.ts b/packages/beacon-types/src/types/beacon/AppMetadata.ts similarity index 100% rename from packages/beacon-core/src/types/beacon/AppMetadata.ts rename to packages/beacon-types/src/types/beacon/AppMetadata.ts diff --git a/packages/beacon-core/src/types/beacon/BeaconBaseMessage.ts b/packages/beacon-types/src/types/beacon/BeaconBaseMessage.ts similarity index 85% rename from packages/beacon-core/src/types/beacon/BeaconBaseMessage.ts rename to packages/beacon-types/src/types/beacon/BeaconBaseMessage.ts index 0dda4028f..7328827f1 100644 --- a/packages/beacon-core/src/types/beacon/BeaconBaseMessage.ts +++ b/packages/beacon-types/src/types/beacon/BeaconBaseMessage.ts @@ -1,4 +1,4 @@ -import { BeaconMessageType } from '../..' +import { BeaconMessageType } from '@airgap/beacon-types' /** * @category Message diff --git a/packages/beacon-core/src/types/beacon/BeaconMessage.ts b/packages/beacon-types/src/types/beacon/BeaconMessage.ts similarity index 95% rename from packages/beacon-core/src/types/beacon/BeaconMessage.ts rename to packages/beacon-types/src/types/beacon/BeaconMessage.ts index ea92ee3be..28c7fafe9 100644 --- a/packages/beacon-core/src/types/beacon/BeaconMessage.ts +++ b/packages/beacon-types/src/types/beacon/BeaconMessage.ts @@ -12,7 +12,7 @@ import { AcknowledgeResponse, DisconnectMessage, ErrorResponse -} from '../..' +} from '@airgap/beacon-types' /** * @internalapi diff --git a/packages/beacon-core/src/types/beacon/BeaconMessageType.ts b/packages/beacon-types/src/types/beacon/BeaconMessageType.ts similarity index 100% rename from packages/beacon-core/src/types/beacon/BeaconMessageType.ts rename to packages/beacon-types/src/types/beacon/BeaconMessageType.ts diff --git a/packages/beacon-core/src/types/beacon/BeaconRequestMessage.ts b/packages/beacon-types/src/types/beacon/BeaconRequestMessage.ts similarity index 90% rename from packages/beacon-core/src/types/beacon/BeaconRequestMessage.ts rename to packages/beacon-types/src/types/beacon/BeaconRequestMessage.ts index d125481ce..f0cedfec7 100644 --- a/packages/beacon-core/src/types/beacon/BeaconRequestMessage.ts +++ b/packages/beacon-types/src/types/beacon/BeaconRequestMessage.ts @@ -4,7 +4,7 @@ import { SignPayloadRequest, BroadcastRequest // EncryptPayloadRequest -} from '../..' +} from '@airgap/beacon-types' /** * @internalapi diff --git a/packages/beacon-core/src/types/beacon/BeaconResponseMessage.ts b/packages/beacon-types/src/types/beacon/BeaconResponseMessage.ts similarity index 92% rename from packages/beacon-core/src/types/beacon/BeaconResponseMessage.ts rename to packages/beacon-types/src/types/beacon/BeaconResponseMessage.ts index 544d26533..78c966b1e 100644 --- a/packages/beacon-core/src/types/beacon/BeaconResponseMessage.ts +++ b/packages/beacon-types/src/types/beacon/BeaconResponseMessage.ts @@ -4,7 +4,7 @@ import { SignPayloadResponse, BroadcastResponse // EncryptPayloadResponse -} from '../..' +} from '@airgap/beacon-types' import { ErrorResponse } from './messages/ErrorResponse' /** diff --git a/packages/beacon-core/src/types/beacon/Network.ts b/packages/beacon-types/src/types/beacon/Network.ts similarity index 62% rename from packages/beacon-core/src/types/beacon/Network.ts rename to packages/beacon-types/src/types/beacon/Network.ts index fe84ddf45..b3cc64317 100644 --- a/packages/beacon-core/src/types/beacon/Network.ts +++ b/packages/beacon-types/src/types/beacon/Network.ts @@ -1,4 +1,4 @@ -import { NetworkType } from '../..' +import { NetworkType } from '@airgap/beacon-types' export interface Network { type: NetworkType diff --git a/packages/beacon-core/src/types/beacon/NetworkType.ts b/packages/beacon-types/src/types/beacon/NetworkType.ts similarity index 100% rename from packages/beacon-core/src/types/beacon/NetworkType.ts rename to packages/beacon-types/src/types/beacon/NetworkType.ts diff --git a/packages/beacon-core/src/types/beacon/PermissionScope.ts b/packages/beacon-types/src/types/beacon/PermissionScope.ts similarity index 100% rename from packages/beacon-core/src/types/beacon/PermissionScope.ts rename to packages/beacon-types/src/types/beacon/PermissionScope.ts diff --git a/packages/beacon-core/src/types/beacon/SigningType.ts b/packages/beacon-types/src/types/beacon/SigningType.ts similarity index 100% rename from packages/beacon-core/src/types/beacon/SigningType.ts rename to packages/beacon-types/src/types/beacon/SigningType.ts diff --git a/packages/beacon-core/src/types/beacon/Threshold.ts b/packages/beacon-types/src/types/beacon/Threshold.ts similarity index 100% rename from packages/beacon-core/src/types/beacon/Threshold.ts rename to packages/beacon-types/src/types/beacon/Threshold.ts diff --git a/packages/beacon-core/src/types/beacon/messages/AcknowledgeResponse.ts b/packages/beacon-types/src/types/beacon/messages/AcknowledgeResponse.ts similarity index 63% rename from packages/beacon-core/src/types/beacon/messages/AcknowledgeResponse.ts rename to packages/beacon-types/src/types/beacon/messages/AcknowledgeResponse.ts index f1872892a..25e09d521 100644 --- a/packages/beacon-core/src/types/beacon/messages/AcknowledgeResponse.ts +++ b/packages/beacon-types/src/types/beacon/messages/AcknowledgeResponse.ts @@ -1,4 +1,4 @@ -import { BeaconBaseMessage, BeaconMessageType } from '../../..' +import { BeaconBaseMessage, BeaconMessageType } from '@airgap/beacon-types' /** * @category Message diff --git a/packages/beacon-core/src/types/beacon/messages/BeaconRequestInputMessage.ts b/packages/beacon-types/src/types/beacon/messages/BeaconRequestInputMessage.ts similarity index 93% rename from packages/beacon-core/src/types/beacon/messages/BeaconRequestInputMessage.ts rename to packages/beacon-types/src/types/beacon/messages/BeaconRequestInputMessage.ts index 193976a27..393020803 100644 --- a/packages/beacon-core/src/types/beacon/messages/BeaconRequestInputMessage.ts +++ b/packages/beacon-types/src/types/beacon/messages/BeaconRequestInputMessage.ts @@ -1,11 +1,11 @@ -import { Optional } from '../../../utils/utils' +import { Optional } from '@airgap/beacon-types' import { PermissionRequest, OperationRequest, SignPayloadRequest, // EncryptPayloadRequest, BroadcastRequest -} from '../../..' +} from '@airgap/beacon-types' /** * @internalapi diff --git a/packages/beacon-core/src/types/beacon/messages/BeaconRequestOutputMessage.ts b/packages/beacon-types/src/types/beacon/messages/BeaconRequestOutputMessage.ts similarity index 94% rename from packages/beacon-core/src/types/beacon/messages/BeaconRequestOutputMessage.ts rename to packages/beacon-types/src/types/beacon/messages/BeaconRequestOutputMessage.ts index 83a18226c..394fc9361 100644 --- a/packages/beacon-core/src/types/beacon/messages/BeaconRequestOutputMessage.ts +++ b/packages/beacon-types/src/types/beacon/messages/BeaconRequestOutputMessage.ts @@ -1,4 +1,4 @@ -import { Optional } from '../../../utils/utils' +import { Optional } from '@airgap/beacon-types' import { AppMetadata, PermissionRequest, @@ -6,7 +6,7 @@ import { SignPayloadRequest, // EncryptPayloadRequest, BroadcastRequest -} from '../../..' +} from '@airgap/beacon-types' /** * @category Wallet diff --git a/packages/beacon-core/src/types/beacon/messages/BeaconResponseInputMessage.ts b/packages/beacon-types/src/types/beacon/messages/BeaconResponseInputMessage.ts similarity index 94% rename from packages/beacon-core/src/types/beacon/messages/BeaconResponseInputMessage.ts rename to packages/beacon-types/src/types/beacon/messages/BeaconResponseInputMessage.ts index 4b4561558..0259ebf82 100644 --- a/packages/beacon-core/src/types/beacon/messages/BeaconResponseInputMessage.ts +++ b/packages/beacon-types/src/types/beacon/messages/BeaconResponseInputMessage.ts @@ -1,4 +1,4 @@ -import { Optional } from '../../../utils/utils' +import { Optional } from '@airgap/beacon-types' import { PermissionResponse, OperationResponse, @@ -7,7 +7,7 @@ import { BroadcastResponse, AcknowledgeResponse, ErrorResponse -} from '../../..' +} from '@airgap/beacon-types' /** * @category Wallet diff --git a/packages/beacon-core/src/types/beacon/messages/BeaconResponseOutputMessage.ts b/packages/beacon-types/src/types/beacon/messages/BeaconResponseOutputMessage.ts similarity index 96% rename from packages/beacon-core/src/types/beacon/messages/BeaconResponseOutputMessage.ts rename to packages/beacon-types/src/types/beacon/messages/BeaconResponseOutputMessage.ts index b9705ffb5..b1f668cc8 100644 --- a/packages/beacon-core/src/types/beacon/messages/BeaconResponseOutputMessage.ts +++ b/packages/beacon-types/src/types/beacon/messages/BeaconResponseOutputMessage.ts @@ -5,7 +5,7 @@ import { // EncryptPayloadResponse, BroadcastResponse, AccountInfo -} from '../../..' +} from '@airgap/beacon-types' /** * @category DApp diff --git a/packages/beacon-core/src/types/beacon/messages/BroadcastRequest.ts b/packages/beacon-types/src/types/beacon/messages/BroadcastRequest.ts similarity index 76% rename from packages/beacon-core/src/types/beacon/messages/BroadcastRequest.ts rename to packages/beacon-types/src/types/beacon/messages/BroadcastRequest.ts index 135a680c6..4ec6abde6 100644 --- a/packages/beacon-core/src/types/beacon/messages/BroadcastRequest.ts +++ b/packages/beacon-types/src/types/beacon/messages/BroadcastRequest.ts @@ -1,4 +1,4 @@ -import { BeaconBaseMessage, BeaconMessageType, Network } from '../../..' +import { BeaconBaseMessage, BeaconMessageType, Network } from '@airgap/beacon-types' /** * @category Message diff --git a/packages/beacon-core/src/types/beacon/messages/BroadcastResponse.ts b/packages/beacon-types/src/types/beacon/messages/BroadcastResponse.ts similarity index 72% rename from packages/beacon-core/src/types/beacon/messages/BroadcastResponse.ts rename to packages/beacon-types/src/types/beacon/messages/BroadcastResponse.ts index 831763f8b..8af032b3f 100644 --- a/packages/beacon-core/src/types/beacon/messages/BroadcastResponse.ts +++ b/packages/beacon-types/src/types/beacon/messages/BroadcastResponse.ts @@ -1,4 +1,4 @@ -import { BeaconBaseMessage, BeaconMessageType } from '../../..' +import { BeaconBaseMessage, BeaconMessageType } from '@airgap/beacon-types' /** * @category Message diff --git a/packages/beacon-core/src/types/beacon/messages/DisconnectMessage.ts b/packages/beacon-types/src/types/beacon/messages/DisconnectMessage.ts similarity index 63% rename from packages/beacon-core/src/types/beacon/messages/DisconnectMessage.ts rename to packages/beacon-types/src/types/beacon/messages/DisconnectMessage.ts index 84c90a34b..dc8d2cca0 100644 --- a/packages/beacon-core/src/types/beacon/messages/DisconnectMessage.ts +++ b/packages/beacon-types/src/types/beacon/messages/DisconnectMessage.ts @@ -1,4 +1,4 @@ -import { BeaconBaseMessage, BeaconMessageType } from '../../..' +import { BeaconBaseMessage, BeaconMessageType } from '@airgap/beacon-types' /** * @category Message diff --git a/packages/beacon-core/src/types/beacon/messages/EncryptPayloadRequest.ts b/packages/beacon-types/src/types/beacon/messages/EncryptPayloadRequest.ts similarity index 100% rename from packages/beacon-core/src/types/beacon/messages/EncryptPayloadRequest.ts rename to packages/beacon-types/src/types/beacon/messages/EncryptPayloadRequest.ts diff --git a/packages/beacon-core/src/types/beacon/messages/EncryptPayloadResponse.ts b/packages/beacon-types/src/types/beacon/messages/EncryptPayloadResponse.ts similarity index 100% rename from packages/beacon-core/src/types/beacon/messages/EncryptPayloadResponse.ts rename to packages/beacon-types/src/types/beacon/messages/EncryptPayloadResponse.ts diff --git a/packages/beacon-core/src/types/beacon/messages/ErrorResponse.ts b/packages/beacon-types/src/types/beacon/messages/ErrorResponse.ts similarity index 88% rename from packages/beacon-core/src/types/beacon/messages/ErrorResponse.ts rename to packages/beacon-types/src/types/beacon/messages/ErrorResponse.ts index e8217d3c5..4e186d624 100644 --- a/packages/beacon-core/src/types/beacon/messages/ErrorResponse.ts +++ b/packages/beacon-types/src/types/beacon/messages/ErrorResponse.ts @@ -1,4 +1,4 @@ -import { BeaconBaseMessage, BeaconErrorType, BeaconMessageType } from '../../..' +import { BeaconBaseMessage, BeaconErrorType, BeaconMessageType } from '@airgap/beacon-types' /** * @category Message diff --git a/packages/beacon-core/src/types/beacon/messages/OperationRequest.ts b/packages/beacon-types/src/types/beacon/messages/OperationRequest.ts similarity index 84% rename from packages/beacon-core/src/types/beacon/messages/OperationRequest.ts rename to packages/beacon-types/src/types/beacon/messages/OperationRequest.ts index 53bfae91a..ff42a2041 100644 --- a/packages/beacon-core/src/types/beacon/messages/OperationRequest.ts +++ b/packages/beacon-types/src/types/beacon/messages/OperationRequest.ts @@ -1,4 +1,4 @@ -import { BeaconBaseMessage, BeaconMessageType, Network } from '../../..' +import { BeaconBaseMessage, BeaconMessageType, Network } from '@airgap/beacon-types' import { PartialTezosOperation } from '../../tezos/PartialTezosOperation' /** diff --git a/packages/beacon-core/src/types/beacon/messages/OperationResponse.ts b/packages/beacon-types/src/types/beacon/messages/OperationResponse.ts similarity index 72% rename from packages/beacon-core/src/types/beacon/messages/OperationResponse.ts rename to packages/beacon-types/src/types/beacon/messages/OperationResponse.ts index 4f290ff70..d62bfd577 100644 --- a/packages/beacon-core/src/types/beacon/messages/OperationResponse.ts +++ b/packages/beacon-types/src/types/beacon/messages/OperationResponse.ts @@ -1,4 +1,4 @@ -import { BeaconBaseMessage, BeaconMessageType } from '../../..' +import { BeaconBaseMessage, BeaconMessageType } from '@airgap/beacon-types' /** * @category Message diff --git a/packages/beacon-core/src/types/beacon/messages/PermissionRequest.ts b/packages/beacon-types/src/types/beacon/messages/PermissionRequest.ts similarity index 95% rename from packages/beacon-core/src/types/beacon/messages/PermissionRequest.ts rename to packages/beacon-types/src/types/beacon/messages/PermissionRequest.ts index 02197def0..c36b9162d 100644 --- a/packages/beacon-core/src/types/beacon/messages/PermissionRequest.ts +++ b/packages/beacon-types/src/types/beacon/messages/PermissionRequest.ts @@ -4,7 +4,7 @@ import { PermissionScope, AppMetadata, Network -} from '../../..' +} from '@airgap/beacon-types' /** * @category Message diff --git a/packages/beacon-core/src/types/beacon/messages/PermissionResponse.ts b/packages/beacon-types/src/types/beacon/messages/PermissionResponse.ts similarity index 95% rename from packages/beacon-core/src/types/beacon/messages/PermissionResponse.ts rename to packages/beacon-types/src/types/beacon/messages/PermissionResponse.ts index ce8234aea..ef12821d7 100644 --- a/packages/beacon-core/src/types/beacon/messages/PermissionResponse.ts +++ b/packages/beacon-types/src/types/beacon/messages/PermissionResponse.ts @@ -5,7 +5,7 @@ import { Network, PermissionScope, Threshold -} from '../../..' +} from '@airgap/beacon-types' /** * @category Message diff --git a/packages/beacon-core/src/types/beacon/messages/SignPayloadRequest.ts b/packages/beacon-types/src/types/beacon/messages/SignPayloadRequest.ts similarity index 95% rename from packages/beacon-core/src/types/beacon/messages/SignPayloadRequest.ts rename to packages/beacon-types/src/types/beacon/messages/SignPayloadRequest.ts index e7d047007..95a943aea 100644 --- a/packages/beacon-core/src/types/beacon/messages/SignPayloadRequest.ts +++ b/packages/beacon-types/src/types/beacon/messages/SignPayloadRequest.ts @@ -1,4 +1,4 @@ -import { BeaconBaseMessage, BeaconMessageType, SigningType } from '../../..' +import { BeaconBaseMessage, BeaconMessageType, SigningType } from '@airgap/beacon-types' /** * @category Message diff --git a/packages/beacon-core/src/types/beacon/messages/SignPayloadResponse.ts b/packages/beacon-types/src/types/beacon/messages/SignPayloadResponse.ts similarity index 91% rename from packages/beacon-core/src/types/beacon/messages/SignPayloadResponse.ts rename to packages/beacon-types/src/types/beacon/messages/SignPayloadResponse.ts index c522c91fb..37c10163b 100644 --- a/packages/beacon-core/src/types/beacon/messages/SignPayloadResponse.ts +++ b/packages/beacon-types/src/types/beacon/messages/SignPayloadResponse.ts @@ -1,4 +1,4 @@ -import { BeaconBaseMessage, BeaconMessageType, SigningType } from '../../..' +import { BeaconBaseMessage, BeaconMessageType, SigningType } from '@airgap/beacon-types' /** * @category Message diff --git a/packages/beacon-core/src/storage/Storage.ts b/packages/beacon-types/src/types/storage/Storage.ts similarity index 86% rename from packages/beacon-core/src/storage/Storage.ts rename to packages/beacon-types/src/types/storage/Storage.ts index 2cb482357..774e2cdbb 100644 --- a/packages/beacon-core/src/storage/Storage.ts +++ b/packages/beacon-types/src/types/storage/Storage.ts @@ -1,5 +1,4 @@ -import { StorageKey } from '../types/storage/StorageKey' -import { StorageKeyReturnType } from '../types/storage/StorageKeyReturnType' +import { StorageKey, StorageKeyReturnType } from '@airgap/beacon-types' /** * @internalapi diff --git a/packages/beacon-core/src/types/storage/StorageKey.ts b/packages/beacon-types/src/types/storage/StorageKey.ts similarity index 100% rename from packages/beacon-core/src/types/storage/StorageKey.ts rename to packages/beacon-types/src/types/storage/StorageKey.ts diff --git a/packages/beacon-core/src/types/storage/StorageKeyReturnDefaults.ts b/packages/beacon-types/src/types/storage/StorageKeyReturnDefaults.ts similarity index 100% rename from packages/beacon-core/src/types/storage/StorageKeyReturnDefaults.ts rename to packages/beacon-types/src/types/storage/StorageKeyReturnDefaults.ts diff --git a/packages/beacon-core/src/types/storage/StorageKeyReturnType.ts b/packages/beacon-types/src/types/storage/StorageKeyReturnType.ts similarity index 88% rename from packages/beacon-core/src/types/storage/StorageKeyReturnType.ts rename to packages/beacon-types/src/types/storage/StorageKeyReturnType.ts index fe3310801..ef612a472 100644 --- a/packages/beacon-core/src/types/storage/StorageKeyReturnType.ts +++ b/packages/beacon-types/src/types/storage/StorageKeyReturnType.ts @@ -6,7 +6,7 @@ import { AppMetadata, PermissionInfo } from '../..' -import { MatrixState } from '../../matrix-client/MatrixClientStore' +// TODO: MOVE TYPE import { MatrixState } from '../../matrix-client/MatrixClientStore' import { ExtendedP2PPairingResponse } from '../P2PPairingResponse' import { PostMessagePairingRequest } from '../PostMessagePairingRequest' import { ExtendedPostMessagePairingResponse } from '../PostMessagePairingResponse' @@ -25,7 +25,7 @@ export interface StorageKeyReturnType { [StorageKey.APP_METADATA_LIST]: AppMetadata[] [StorageKey.PERMISSION_LIST]: PermissionInfo[] [StorageKey.BEACON_SDK_VERSION]: string | undefined - [StorageKey.MATRIX_PRESERVED_STATE]: Partial + [StorageKey.MATRIX_PRESERVED_STATE]: any // TODO: TYPE Partial [StorageKey.MATRIX_PEER_ROOM_IDS]: { [key: string]: string | undefined } [StorageKey.MATRIX_SELECTED_NODE]: string | undefined [StorageKey.MULTI_NODE_SETUP_DONE]: boolean | undefined diff --git a/packages/beacon-core/src/types/tezos/MichelineMichelsonV1Expression.ts b/packages/beacon-types/src/types/tezos/MichelineMichelsonV1Expression.ts similarity index 100% rename from packages/beacon-core/src/types/tezos/MichelineMichelsonV1Expression.ts rename to packages/beacon-types/src/types/tezos/MichelineMichelsonV1Expression.ts diff --git a/packages/beacon-core/src/types/tezos/MichelsonPrimitives.ts b/packages/beacon-types/src/types/tezos/MichelsonPrimitives.ts similarity index 100% rename from packages/beacon-core/src/types/tezos/MichelsonPrimitives.ts rename to packages/beacon-types/src/types/tezos/MichelsonPrimitives.ts diff --git a/packages/beacon-core/src/types/tezos/OperationTypes.ts b/packages/beacon-types/src/types/tezos/OperationTypes.ts similarity index 100% rename from packages/beacon-core/src/types/tezos/OperationTypes.ts rename to packages/beacon-types/src/types/tezos/OperationTypes.ts diff --git a/packages/beacon-core/src/types/tezos/PartialTezosOperation.ts b/packages/beacon-types/src/types/tezos/PartialTezosOperation.ts similarity index 97% rename from packages/beacon-core/src/types/tezos/PartialTezosOperation.ts rename to packages/beacon-types/src/types/tezos/PartialTezosOperation.ts index 831c2efa0..c723c4718 100644 --- a/packages/beacon-core/src/types/tezos/PartialTezosOperation.ts +++ b/packages/beacon-types/src/types/tezos/PartialTezosOperation.ts @@ -1,4 +1,4 @@ -import { Optional } from '../../utils/utils' +import { Optional } from '@airgap/beacon-types' import { TezosActivateAccountOperation } from './operations/ActivateAccount' import { TezosBallotOperation } from './operations/Ballot' import { TezosDelegationOperation } from './operations/Delegation' diff --git a/packages/beacon-core/src/types/tezos/TezosBaseOperation.ts b/packages/beacon-types/src/types/tezos/TezosBaseOperation.ts similarity index 100% rename from packages/beacon-core/src/types/tezos/TezosBaseOperation.ts rename to packages/beacon-types/src/types/tezos/TezosBaseOperation.ts diff --git a/packages/beacon-core/src/types/tezos/TezosBlockHeader.ts b/packages/beacon-types/src/types/tezos/TezosBlockHeader.ts similarity index 100% rename from packages/beacon-core/src/types/tezos/TezosBlockHeader.ts rename to packages/beacon-types/src/types/tezos/TezosBlockHeader.ts diff --git a/packages/beacon-core/src/types/tezos/TezosOperation.ts b/packages/beacon-types/src/types/tezos/TezosOperation.ts similarity index 100% rename from packages/beacon-core/src/types/tezos/TezosOperation.ts rename to packages/beacon-types/src/types/tezos/TezosOperation.ts diff --git a/packages/beacon-core/src/types/tezos/TezosTransactionParameters.ts b/packages/beacon-types/src/types/tezos/TezosTransactionParameters.ts similarity index 100% rename from packages/beacon-core/src/types/tezos/TezosTransactionParameters.ts rename to packages/beacon-types/src/types/tezos/TezosTransactionParameters.ts diff --git a/packages/beacon-core/src/types/tezos/operations/ActivateAccount.ts b/packages/beacon-types/src/types/tezos/operations/ActivateAccount.ts similarity index 100% rename from packages/beacon-core/src/types/tezos/operations/ActivateAccount.ts rename to packages/beacon-types/src/types/tezos/operations/ActivateAccount.ts diff --git a/packages/beacon-core/src/types/tezos/operations/Ballot.ts b/packages/beacon-types/src/types/tezos/operations/Ballot.ts similarity index 100% rename from packages/beacon-core/src/types/tezos/operations/Ballot.ts rename to packages/beacon-types/src/types/tezos/operations/Ballot.ts diff --git a/packages/beacon-core/src/types/tezos/operations/Delegation.ts b/packages/beacon-types/src/types/tezos/operations/Delegation.ts similarity index 100% rename from packages/beacon-core/src/types/tezos/operations/Delegation.ts rename to packages/beacon-types/src/types/tezos/operations/Delegation.ts diff --git a/packages/beacon-core/src/types/tezos/operations/DoubleBakingEvidence.ts b/packages/beacon-types/src/types/tezos/operations/DoubleBakingEvidence.ts similarity index 100% rename from packages/beacon-core/src/types/tezos/operations/DoubleBakingEvidence.ts rename to packages/beacon-types/src/types/tezos/operations/DoubleBakingEvidence.ts diff --git a/packages/beacon-core/src/types/tezos/operations/DoubleEndorsementEvidence.ts b/packages/beacon-types/src/types/tezos/operations/DoubleEndorsementEvidence.ts similarity index 100% rename from packages/beacon-core/src/types/tezos/operations/DoubleEndorsementEvidence.ts rename to packages/beacon-types/src/types/tezos/operations/DoubleEndorsementEvidence.ts diff --git a/packages/beacon-core/src/types/tezos/operations/Endorsement.ts b/packages/beacon-types/src/types/tezos/operations/Endorsement.ts similarity index 100% rename from packages/beacon-core/src/types/tezos/operations/Endorsement.ts rename to packages/beacon-types/src/types/tezos/operations/Endorsement.ts diff --git a/packages/beacon-core/src/types/tezos/operations/Origination.ts b/packages/beacon-types/src/types/tezos/operations/Origination.ts similarity index 100% rename from packages/beacon-core/src/types/tezos/operations/Origination.ts rename to packages/beacon-types/src/types/tezos/operations/Origination.ts diff --git a/packages/beacon-core/src/types/tezos/operations/Proposal.ts b/packages/beacon-types/src/types/tezos/operations/Proposal.ts similarity index 100% rename from packages/beacon-core/src/types/tezos/operations/Proposal.ts rename to packages/beacon-types/src/types/tezos/operations/Proposal.ts diff --git a/packages/beacon-core/src/types/tezos/operations/Reveal.ts b/packages/beacon-types/src/types/tezos/operations/Reveal.ts similarity index 100% rename from packages/beacon-core/src/types/tezos/operations/Reveal.ts rename to packages/beacon-types/src/types/tezos/operations/Reveal.ts diff --git a/packages/beacon-core/src/types/tezos/operations/SeedNonceRevelation.ts b/packages/beacon-types/src/types/tezos/operations/SeedNonceRevelation.ts similarity index 100% rename from packages/beacon-core/src/types/tezos/operations/SeedNonceRevelation.ts rename to packages/beacon-types/src/types/tezos/operations/SeedNonceRevelation.ts diff --git a/packages/beacon-core/src/types/tezos/operations/Transaction.ts b/packages/beacon-types/src/types/tezos/operations/Transaction.ts similarity index 100% rename from packages/beacon-core/src/types/tezos/operations/Transaction.ts rename to packages/beacon-types/src/types/tezos/operations/Transaction.ts diff --git a/packages/beacon-core/src/types/transport/TransportStatus.ts b/packages/beacon-types/src/types/transport/TransportStatus.ts similarity index 100% rename from packages/beacon-core/src/types/transport/TransportStatus.ts rename to packages/beacon-types/src/types/transport/TransportStatus.ts diff --git a/packages/beacon-core/src/types/transport/TransportType.ts b/packages/beacon-types/src/types/transport/TransportType.ts similarity index 100% rename from packages/beacon-core/src/types/transport/TransportType.ts rename to packages/beacon-types/src/types/transport/TransportType.ts diff --git a/packages/beacon-types/src/types/utils/Optional.ts b/packages/beacon-types/src/types/utils/Optional.ts new file mode 100644 index 000000000..bb29503f4 --- /dev/null +++ b/packages/beacon-types/src/types/utils/Optional.ts @@ -0,0 +1 @@ +export type Optional = Partial & Omit diff --git a/scripts/generate-wallet-list.ts b/scripts/generate-wallet-list.ts index db8d538df..718a1f4d8 100644 --- a/scripts/generate-wallet-list.ts +++ b/scripts/generate-wallet-list.ts @@ -1,7 +1,13 @@ import * as path from 'path' import * as fs from 'fs' -import { NetworkType } from '../src/types/beacon/NetworkType' -import { ExtensionApp, WebApp, App, AppBase, DesktopApp } from '../src/ui/alert/Pairing' +import { NetworkType } from '../packages/beacon-types/src/types/beacon/NetworkType' +import { + ExtensionApp, + WebApp, + App, + AppBase, + DesktopApp +} from '../packages/beacon-core/src/ui/alert/Pairing' export const extensionList: ExtensionApp[] = [ { From f627811dfb108afc8bf94faa800d9e4069c062e3 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Thu, 29 Jul 2021 10:54:19 +0200 Subject: [PATCH 012/130] feat(wallet): add wallet client to wallet package --- package-lock.json | 19 +++++++++++++++ package.json | 1 + packages/beacon-core/src/index.ts | 17 ++++++++++---- .../src/client}/WalletClient.ts | 23 ++++++++++++------- .../src/client}/WalletClientOptions.ts | 0 packages/beacon-wallet/src/index.ts | 4 ++++ 6 files changed, 51 insertions(+), 13 deletions(-) rename packages/{beacon-core/src/clients/wallet-client => beacon-wallet/src/client}/WalletClient.ts (94%) rename packages/{beacon-core/src/clients/wallet-client => beacon-wallet/src/client}/WalletClientOptions.ts (100%) diff --git a/package-lock.json b/package-lock.json index f44903477..de669bef7 100755 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "qrcode-generator": "1.4.4" }, "devDependencies": { + "@types/bs58check": "^2.1.0", "@types/chai-as-promised": "7.1.2", "@types/mocha": "7.0.2", "@types/node": "14.0.1", @@ -3332,6 +3333,15 @@ "node": ">= 6" } }, + "node_modules/@types/bs58check": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/bs58check/-/bs58check-2.1.0.tgz", + "integrity": "sha512-OxsysnJQh82vy9DRbOcw9m2j/WiyqZLn0YBhKxdQ+aCwoHj+tWzyCgpwAkr79IfDXZKxc6h7k89T9pwS78CqTQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/chai": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.4.tgz", @@ -18369,6 +18379,15 @@ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true }, + "@types/bs58check": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/bs58check/-/bs58check-2.1.0.tgz", + "integrity": "sha512-OxsysnJQh82vy9DRbOcw9m2j/WiyqZLn0YBhKxdQ+aCwoHj+tWzyCgpwAkr79IfDXZKxc6h7k89T9pwS78CqTQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/chai": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.4.tgz", diff --git a/package.json b/package.json index 17c3f167d..35dbbd794 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ "qrcode-generator": "1.4.4" }, "devDependencies": { + "@types/bs58check": "^2.1.0", "@types/chai-as-promised": "7.1.2", "@types/mocha": "7.0.2", "@types/node": "14.0.1", diff --git a/packages/beacon-core/src/index.ts b/packages/beacon-core/src/index.ts index 336184480..8bcfa0e67 100644 --- a/packages/beacon-core/src/index.ts +++ b/packages/beacon-core/src/index.ts @@ -4,7 +4,6 @@ */ import { P2PCommunicationClient } from './transports/clients/P2PCommunicationClient' import { Client } from './clients/client/Client' -import { WalletClient } from './clients/wallet-client/WalletClient' import { DAppClient } from './clients/dapp-client/DAppClient' import { BeaconError } from './errors/BeaconError' import { BroadcastBeaconError } from './errors/BroadcastBeaconError' @@ -26,7 +25,6 @@ import { Serializer } from './Serializer' // import { RequestEncryptPayloadInput } from './types/RequestEncryptPayloadInput' import { ClientOptions } from './clients/client/ClientOptions' import { DAppClientOptions } from './clients/dapp-client/DAppClientOptions' -import { WalletClientOptions } from './clients/wallet-client/WalletClientOptions' import { SDK_VERSION, BEACON_VERSION } from './constants' import { AccountManager } from './managers/AccountManager' import { AppMetadataManager } from './managers/AppMetadataManager' @@ -53,6 +51,10 @@ import { setDebugEnabled, getDebugEnabled } from './debug' // import { EncryptPayloadResponse } from './types/beacon/messages/EncryptPayloadResponse' // import { EncryptionTypeNotSupportedBeaconError } from './errors/EncryptionTypeNotSupportedBeaconError' import { SignatureTypeNotSupportedBeaconError } from './errors/SignatureTypeNotSupportedBeaconError' +import { Logger } from './utils/Logger' +import { IncomingRequestInterceptor } from './interceptors/IncomingRequestInterceptor' +import { OutgoingResponseInterceptor } from './interceptors/OutgoingResponseInterceptor' +import { ExposedPromise } from './utils/exposed-promise' // import { EncryptionType } from './types/EncryptionType' // import { EncryptionOperation } from './types/EncryptionOperation' @@ -64,8 +66,6 @@ export { ClientOptions, DAppClient, DAppClientOptions, - WalletClient, - WalletClientOptions, P2PCommunicationClient } @@ -120,7 +120,14 @@ export { getSenderId, getAccountIdentifier, getAddressFromPublicKey } export { BlockExplorer, TezblockBlockExplorer } // Others -export { Serializer, availableTransports } +export { + Serializer, + availableTransports, + IncomingRequestInterceptor, + OutgoingResponseInterceptor, + ExposedPromise, + Logger +} // Debug export { setDebugEnabled, getDebugEnabled } diff --git a/packages/beacon-core/src/clients/wallet-client/WalletClient.ts b/packages/beacon-wallet/src/client/WalletClient.ts similarity index 94% rename from packages/beacon-core/src/clients/wallet-client/WalletClient.ts rename to packages/beacon-wallet/src/client/WalletClient.ts index 769f67ea3..3127525be 100644 --- a/packages/beacon-core/src/clients/wallet-client/WalletClient.ts +++ b/packages/beacon-wallet/src/client/WalletClient.ts @@ -1,6 +1,17 @@ -import { Serializer, Client, WalletClientOptions, LocalStorage, WalletP2PTransport } from '../..' -import { PermissionManager } from '../../managers/PermissionManager' -import { AppMetadataManager } from '../../managers/AppMetadataManager' +import { + Serializer, + Client, + LocalStorage, + WalletP2PTransport, + PermissionManager, + AppMetadataManager, + IncomingRequestInterceptor, + OutgoingResponseInterceptor, + getSenderId, + ExposedPromise, + Logger +} from '@airgap/beacon-core' + import { ConnectionContext, BeaconRequestMessage, @@ -18,11 +29,7 @@ import { TransportStatus, BeaconMessage } from '@airgap/beacon-types' -import { IncomingRequestInterceptor } from '../../interceptors/IncomingRequestInterceptor' -import { OutgoingResponseInterceptor } from '../../interceptors/OutgoingResponseInterceptor' -import { getSenderId } from '../../utils/get-sender-id' -import { ExposedPromise } from '../../utils/exposed-promise' -import { Logger } from '../../utils/Logger' +import { WalletClientOptions } from './WalletClientOptions' const logger = new Logger('WalletClient') diff --git a/packages/beacon-core/src/clients/wallet-client/WalletClientOptions.ts b/packages/beacon-wallet/src/client/WalletClientOptions.ts similarity index 100% rename from packages/beacon-core/src/clients/wallet-client/WalletClientOptions.ts rename to packages/beacon-wallet/src/client/WalletClientOptions.ts diff --git a/packages/beacon-wallet/src/index.ts b/packages/beacon-wallet/src/index.ts index e69de29bb..57f869600 100644 --- a/packages/beacon-wallet/src/index.ts +++ b/packages/beacon-wallet/src/index.ts @@ -0,0 +1,4 @@ +import { WalletClient } from './client/WalletClient' +import { WalletClientOptions } from './client/WalletClientOptions' + +export { WalletClient, WalletClientOptions } From 300e12ead4b750c1ed56aaa1e8d2c48253ca0383 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Thu, 29 Jul 2021 12:20:12 +0200 Subject: [PATCH 013/130] feat(dapp): move dapp code --- .../src/clients/beacon-client/BeaconClient.ts | 3 -- .../beacon-core/src/clients/client/Client.ts | 6 --- .../src/clients/client/ClientOptions.ts | 18 ------- packages/beacon-core/src/index.ts | 31 ++---------- .../beacon-core/src/transports/Transport.ts | 2 +- .../src/beacon-message-events.ts | 0 .../src/colorMode.ts | 0 .../src}/dapp-client/DAppClient.ts | 47 +++++++++++-------- .../src}/dapp-client/DAppClientOptions.ts | 4 +- .../src/events.ts | 23 +++++---- packages/beacon-dapp/src/index.ts | 19 ++++++++ .../src/ui/alert/Alert.ts | 2 +- .../src/ui/alert/Pairing.ts | 5 +- .../src/ui/alert/PairingAlert.ts | 4 +- .../src/ui/alert/alert-templates.ts | 0 .../src/ui/alert/wallet-lists.ts | 0 .../src/ui/toast/Toast.ts | 2 +- .../src/ui/toast/toast-templates.ts | 0 .../src/utils/block-explorer.ts | 0 .../src/utils/get-tzip10-link.ts | 0 .../src/utils/platform.ts | 0 .../src/utils/qr.ts | 2 +- .../src/utils/replace-in-template.ts | 0 .../src/utils/shorten-string.ts | 0 .../src/utils/tezblock-blockexplorer.ts | 0 25 files changed, 74 insertions(+), 94 deletions(-) rename packages/{beacon-core => beacon-dapp}/src/beacon-message-events.ts (100%) rename packages/{beacon-core => beacon-dapp}/src/colorMode.ts (100%) rename packages/{beacon-core/src/clients => beacon-dapp/src}/dapp-client/DAppClient.ts (97%) rename packages/{beacon-core/src/clients => beacon-dapp/src}/dapp-client/DAppClientOptions.ts (96%) rename packages/{beacon-core => beacon-dapp}/src/events.ts (98%) rename packages/{beacon-core => beacon-dapp}/src/ui/alert/Alert.ts (99%) rename packages/{beacon-core => beacon-dapp}/src/ui/alert/Pairing.ts (98%) rename packages/{beacon-core => beacon-dapp}/src/ui/alert/PairingAlert.ts (98%) rename packages/{beacon-core => beacon-dapp}/src/ui/alert/alert-templates.ts (100%) rename packages/{beacon-core => beacon-dapp}/src/ui/alert/wallet-lists.ts (100%) rename packages/{beacon-core => beacon-dapp}/src/ui/toast/Toast.ts (99%) rename packages/{beacon-core => beacon-dapp}/src/ui/toast/toast-templates.ts (100%) rename packages/{beacon-core => beacon-dapp}/src/utils/block-explorer.ts (100%) rename packages/{beacon-core => beacon-dapp}/src/utils/get-tzip10-link.ts (100%) rename packages/{beacon-core => beacon-dapp}/src/utils/platform.ts (100%) rename packages/{beacon-core => beacon-dapp}/src/utils/qr.ts (97%) rename packages/{beacon-core => beacon-dapp}/src/utils/replace-in-template.ts (100%) rename packages/{beacon-core => beacon-dapp}/src/utils/shorten-string.ts (100%) rename packages/{beacon-core => beacon-dapp}/src/utils/tezblock-blockexplorer.ts (100%) diff --git a/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts b/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts index 88c152dd0..05bc095f1 100644 --- a/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts +++ b/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts @@ -3,7 +3,6 @@ import { ExposedPromise } from '../../utils/exposed-promise' import { generateGUID } from '../../utils/generate-uuid' import { getKeypairFromSeed, toHex } from '../../utils/crypto' import { Storage, StorageKey } from '@airgap/beacon-types' -import { BeaconEventHandler } from '../../events' import { SDK_VERSION } from '../../constants' import { windowRef } from '../../MockWindow' import { BeaconClientOptions } from './BeaconClientOptions' @@ -40,8 +39,6 @@ export abstract class BeaconClient { protected storage: Storage - protected readonly events: BeaconEventHandler = new BeaconEventHandler() - /** * The local keypair that is used for the communication encryption */ diff --git a/packages/beacon-core/src/clients/client/Client.ts b/packages/beacon-core/src/clients/client/Client.ts index fdea0abcb..a7b1d5514 100644 --- a/packages/beacon-core/src/clients/client/Client.ts +++ b/packages/beacon-core/src/clients/client/Client.ts @@ -12,7 +12,6 @@ import { BeaconRequestMessage } from '@airgap/beacon-types' import { Serializer, Transport } from '../..' -import { BeaconEventHandler, BeaconEvent } from '../../events' import { BeaconClient } from '../beacon-client/BeaconClient' import { AccountManager } from '../../managers/AccountManager' import { generateGUID } from '../../utils/generate-uuid' @@ -51,8 +50,6 @@ export abstract class Client extends BeaconClient { */ protected requestCounter: number[] = [] - protected readonly events: BeaconEventHandler - protected readonly matrixNodes: string[] protected _transport: ExposedPromise> = new ExposedPromise() @@ -77,7 +74,6 @@ export abstract class Client extends BeaconClient { constructor(config: ClientOptions) { super(config) - this.events = new BeaconEventHandler(config.eventHandlers, config.disableDefaultEvents ?? false) this.accountManager = new AccountManager(config.storage) this.matrixNodes = config.matrixNodes ?? [] @@ -198,8 +194,6 @@ export abstract class Client extends BeaconClient { this._transport = new ExposedPromise() } } - - await this.events.emit(BeaconEvent.ACTIVE_TRANSPORT_SET, transport) } protected async addListener(transport: Transport): Promise { diff --git a/packages/beacon-core/src/clients/client/ClientOptions.ts b/packages/beacon-core/src/clients/client/ClientOptions.ts index a50d010bf..ddaa49dda 100644 --- a/packages/beacon-core/src/clients/client/ClientOptions.ts +++ b/packages/beacon-core/src/clients/client/ClientOptions.ts @@ -1,5 +1,4 @@ import { Storage } from '@airgap/beacon-types' -import { BeaconEvent, BeaconEventHandlerFunction, BeaconEventType } from '../../events' /** * @internalapi @@ -25,23 +24,6 @@ export interface ClientOptions { */ storage: Storage - /** - * An object that will be used to overwrite default event handler behaviour. - * - * If you plan to overwrite all default events, use "disableDefaultEvents" instead. - * - * This will overwrite the default event handler, so this can lead to unexpected behavior in some cases. - * We recommend that you overwrite all handlers if you want to use your own UI. - * - * If you simply want to be notified of events happening, but do not want to overwrite the default behavior, - * please use `subscribeToEvent()` on the DAppClient instead. - */ - eventHandlers?: { - [key in BeaconEvent]?: { - handler: BeaconEventHandlerFunction - } - } - /** * Disable all default Events and UI elements. If passed together with "eventHandlers", * the default eventHandlers will be removed, and the ones passed by the user will be added. diff --git a/packages/beacon-core/src/index.ts b/packages/beacon-core/src/index.ts index 8bcfa0e67..754b46850 100644 --- a/packages/beacon-core/src/index.ts +++ b/packages/beacon-core/src/index.ts @@ -4,7 +4,6 @@ */ import { P2PCommunicationClient } from './transports/clients/P2PCommunicationClient' import { Client } from './clients/client/Client' -import { DAppClient } from './clients/dapp-client/DAppClient' import { BeaconError } from './errors/BeaconError' import { BroadcastBeaconError } from './errors/BroadcastBeaconError' import { NetworkNotSupportedBeaconError } from './errors/NetworkNotSupportedBeaconError' @@ -24,12 +23,10 @@ import { getStorage } from './storage/getStorage' import { Serializer } from './Serializer' // import { RequestEncryptPayloadInput } from './types/RequestEncryptPayloadInput' import { ClientOptions } from './clients/client/ClientOptions' -import { DAppClientOptions } from './clients/dapp-client/DAppClientOptions' import { SDK_VERSION, BEACON_VERSION } from './constants' import { AccountManager } from './managers/AccountManager' import { AppMetadataManager } from './managers/AppMetadataManager' import { PermissionManager } from './managers/PermissionManager' -import { BeaconEvent, BeaconEventHandler, defaultEventCallbacks } from './events' import { getAddressFromPublicKey } from './utils/crypto' import { BeaconClient } from './clients/beacon-client/BeaconClient' import { BeaconClientOptions } from './clients/beacon-client/BeaconClientOptions' @@ -43,9 +40,6 @@ import { WalletPostMessageTransport } from './transports/WalletPostMessageTransp import { getSenderId } from './utils/get-sender-id' import { PeerManager } from './managers/PeerManager' import { MessageBasedClient } from './transports/clients/MessageBasedClient' -import { Pairing } from './ui/alert/Pairing' -import { BlockExplorer } from './utils/block-explorer' -import { TezblockBlockExplorer } from './utils/tezblock-blockexplorer' import { setDebugEnabled, getDebugEnabled } from './debug' // import { EncryptPayloadRequest } from './types/beacon/messages/EncryptPayloadRequest' // import { EncryptPayloadResponse } from './types/beacon/messages/EncryptPayloadResponse' @@ -55,19 +49,13 @@ import { Logger } from './utils/Logger' import { IncomingRequestInterceptor } from './interceptors/IncomingRequestInterceptor' import { OutgoingResponseInterceptor } from './interceptors/OutgoingResponseInterceptor' import { ExposedPromise } from './utils/exposed-promise' +import { generateGUID } from './utils/generate-uuid' +import { windowRef } from './MockWindow' // import { EncryptionType } from './types/EncryptionType' // import { EncryptionOperation } from './types/EncryptionOperation' // Clients -export { - BeaconClient, - BeaconClientOptions, - Client, - ClientOptions, - DAppClient, - DAppClientOptions, - P2PCommunicationClient -} +export { BeaconClient, BeaconClientOptions, Client, ClientOptions, P2PCommunicationClient } // Errors export { @@ -95,13 +83,9 @@ export { WalletPostMessageTransport, DappP2PTransport, DappPostMessageTransport, - MessageBasedClient, - Pairing + MessageBasedClient } -// Events -export { BeaconEvent, BeaconEventHandler, defaultEventCallbacks } - // Storage export { ChromeStorage, LocalStorage, getStorage } @@ -112,12 +96,7 @@ export { PeerManager, AccountManager, AppMetadataManager, PermissionManager } export { SDK_VERSION, BEACON_VERSION } // Utils -export { getSenderId, getAccountIdentifier, getAddressFromPublicKey } - -// Pairing - -// BlockExplorer -export { BlockExplorer, TezblockBlockExplorer } +export { getSenderId, getAccountIdentifier, getAddressFromPublicKey, generateGUID, windowRef } // Others export { diff --git a/packages/beacon-core/src/transports/Transport.ts b/packages/beacon-core/src/transports/Transport.ts index 87925cf75..77cb656ce 100644 --- a/packages/beacon-core/src/transports/Transport.ts +++ b/packages/beacon-core/src/transports/Transport.ts @@ -196,5 +196,5 @@ export abstract class Transport< return } - abstract async listen(publicKey: string): Promise + abstract listen(publicKey: string): Promise } diff --git a/packages/beacon-core/src/beacon-message-events.ts b/packages/beacon-dapp/src/beacon-message-events.ts similarity index 100% rename from packages/beacon-core/src/beacon-message-events.ts rename to packages/beacon-dapp/src/beacon-message-events.ts diff --git a/packages/beacon-core/src/colorMode.ts b/packages/beacon-dapp/src/colorMode.ts similarity index 100% rename from packages/beacon-core/src/colorMode.ts rename to packages/beacon-dapp/src/colorMode.ts diff --git a/packages/beacon-core/src/clients/dapp-client/DAppClient.ts b/packages/beacon-dapp/src/dapp-client/DAppClient.ts similarity index 97% rename from packages/beacon-core/src/clients/dapp-client/DAppClient.ts rename to packages/beacon-dapp/src/dapp-client/DAppClient.ts index b04ecac84..1d051b19e 100644 --- a/packages/beacon-core/src/clients/dapp-client/DAppClient.ts +++ b/packages/beacon-dapp/src/dapp-client/DAppClient.ts @@ -1,10 +1,4 @@ -import { ExposedPromise } from '../../utils/exposed-promise' - -import { Logger } from '../../utils/Logger' -import { generateGUID } from '../../utils/generate-uuid' -import { BeaconEvent, BeaconEventHandlerFunction, BeaconEventType, WalletInfo } from '../../events' -import { BEACON_VERSION } from '../../constants' -import { getAddressFromPublicKey } from '../../utils/crypto' +import { BeaconEvent, BeaconEventHandlerFunction, BeaconEventType, WalletInfo } from '../events' import { ConnectionContext, AccountInfo, @@ -63,19 +57,25 @@ import { PostMessageTransport, AppMetadataManager, Serializer, - LocalStorage -} from '../..' -import { messageEvents } from '../../beacon-message-events' -import { getAccountIdentifier } from '../../utils/get-account-identifier' -import { BlockExplorer } from '../../utils/block-explorer' -import { TezblockBlockExplorer } from '../../utils/tezblock-blockexplorer' -import { AlertButton } from '../../ui/alert/Alert' -import { getSenderId } from '../../utils/get-sender-id' - -import { getColorMode, setColorMode } from '../../colorMode' -import { desktopList, extensionList, iOSList, webList } from '../../ui/alert/wallet-lists' + LocalStorage, + getAddressFromPublicKey, + getAccountIdentifier, + getSenderId, + BEACON_VERSION, + Logger, + ExposedPromise, + generateGUID +} from '@airgap/beacon-core' +import { messageEvents } from '../beacon-message-events' +import { BlockExplorer } from '../utils/block-explorer' +import { TezblockBlockExplorer } from '../utils/tezblock-blockexplorer' +import { AlertButton } from '../ui/alert/Alert' + +import { getColorMode, setColorMode } from '../colorMode' +import { desktopList, extensionList, iOSList, webList } from '../ui/alert/wallet-lists' import { DAppClientOptions } from './DAppClientOptions' -import { App, DesktopApp, ExtensionApp, WebApp } from '../../ui/alert/Pairing' +import { App, DesktopApp, ExtensionApp, WebApp } from '../ui/alert/Pairing' +import { BeaconEventHandler } from 'src/events' const logger = new Logger('DAppClient') @@ -95,6 +95,8 @@ export class DAppClient extends Client { public preferredNetwork: NetworkType + protected readonly events: BeaconEventHandler = new BeaconEventHandler() + protected postMessageTransport: DappPostMessageTransport | undefined protected p2pTransport: DappP2PTransport | undefined @@ -132,6 +134,7 @@ export class DAppClient extends Client { storage: config && config.storage ? config.storage : new LocalStorage(), ...config }) + this.events = new BeaconEventHandler(config.eventHandlers, config.disableDefaultEvents ?? false) this.blockExplorer = config.blockExplorer ?? new TezblockBlockExplorer() this.preferredNetwork = config.preferredNetwork ?? NetworkType.MAINNET setColorMode(config.colorMode ?? ColorMode.LIGHT) @@ -847,7 +850,11 @@ export class DAppClient extends Client { this._initPromise = undefined } - return super.setTransport(transport) + const result = super.setTransport(transport) + + await this.events.emit(BeaconEvent.ACTIVE_TRANSPORT_SET, transport) + + return result } /** diff --git a/packages/beacon-core/src/clients/dapp-client/DAppClientOptions.ts b/packages/beacon-dapp/src/dapp-client/DAppClientOptions.ts similarity index 96% rename from packages/beacon-core/src/clients/dapp-client/DAppClientOptions.ts rename to packages/beacon-dapp/src/dapp-client/DAppClientOptions.ts index 2367c02fd..2a89fefff 100644 --- a/packages/beacon-core/src/clients/dapp-client/DAppClientOptions.ts +++ b/packages/beacon-dapp/src/dapp-client/DAppClientOptions.ts @@ -1,5 +1,5 @@ -import { BeaconEvent, BeaconEventType, BeaconEventHandlerFunction } from '../../events' -import { BlockExplorer } from '../../utils/block-explorer' +import { BeaconEvent, BeaconEventType, BeaconEventHandlerFunction } from '../events' +import { BlockExplorer } from '../utils/block-explorer' import { Storage, NetworkType, ColorMode } from '@airgap/beacon-types' /** diff --git a/packages/beacon-core/src/events.ts b/packages/beacon-dapp/src/events.ts similarity index 98% rename from packages/beacon-core/src/events.ts rename to packages/beacon-dapp/src/events.ts index 5c3da44e8..0d3ae2178 100644 --- a/packages/beacon-core/src/events.ts +++ b/packages/beacon-dapp/src/events.ts @@ -1,9 +1,13 @@ -import { openAlert, AlertButton, AlertConfig, closeAlerts } from './ui/alert/Alert' -import { closeToast, openToast, ToastAction } from './ui/toast/Toast' - -import { BlockExplorer } from './utils/block-explorer' -import { Logger } from './utils/Logger' -import { shortenString } from './utils/shorten-string' +import { + BlockExplorer, + openAlert, + AlertButton, + AlertConfig, + closeAlerts, + closeToast, + openToast, + ToastAction +} from '@airgap/beacon-dapp' import { BeaconErrorType, ExtendedPostMessagePairingResponse, @@ -24,11 +28,12 @@ import { import { UnknownBeaconError, BeaconError, - Transport - + Transport, + Logger // EncryptPayloadResponseOutput, // EncryptionOperation -} from '.' +} from '@airgap/beacon-core' +import { shortenString } from './utils/shorten-string' import { isMobile } from './utils/platform' const logger = new Logger('BeaconEvents') diff --git a/packages/beacon-dapp/src/index.ts b/packages/beacon-dapp/src/index.ts index e69de29bb..d570246ba 100644 --- a/packages/beacon-dapp/src/index.ts +++ b/packages/beacon-dapp/src/index.ts @@ -0,0 +1,19 @@ +import { DAppClient } from './dapp-client/DAppClient' +import { DAppClientOptions } from './dapp-client/DAppClientOptions' +import { BeaconEvent, BeaconEventHandler, defaultEventCallbacks } from './events' +import { Pairing } from './ui/alert/Pairing' +import { BlockExplorer } from './utils/block-explorer' +import { TezblockBlockExplorer } from './utils/tezblock-blockexplorer' +import { openAlert, AlertButton, AlertConfig, closeAlerts } from './ui/alert/Alert' +import { closeToast, openToast, ToastAction } from './ui/toast/Toast' + +export { DAppClient, DAppClientOptions, Pairing } + +// Events +export { BeaconEvent, BeaconEventHandler, defaultEventCallbacks } + +// BlockExplorer +export { BlockExplorer, TezblockBlockExplorer } + +// UI +export { openAlert, AlertButton, AlertConfig, closeAlerts, closeToast, openToast, ToastAction } diff --git a/packages/beacon-core/src/ui/alert/Alert.ts b/packages/beacon-dapp/src/ui/alert/Alert.ts similarity index 99% rename from packages/beacon-core/src/ui/alert/Alert.ts rename to packages/beacon-dapp/src/ui/alert/Alert.ts index b447a8ab2..4176a7f7b 100644 --- a/packages/beacon-core/src/ui/alert/Alert.ts +++ b/packages/beacon-dapp/src/ui/alert/Alert.ts @@ -2,7 +2,7 @@ import { NetworkType, P2PPairingRequest, PostMessagePairingRequest } from '@airgap/beacon-types' import { getColorMode } from '../../colorMode' -import { generateGUID } from '../../utils/generate-uuid' +import { generateGUID } from '@airgap/beacon-core' import { replaceInTemplate } from '../../utils/replace-in-template' import { alertTemplates } from './alert-templates' import { preparePairingAlert } from './PairingAlert' diff --git a/packages/beacon-core/src/ui/alert/Pairing.ts b/packages/beacon-dapp/src/ui/alert/Pairing.ts similarity index 98% rename from packages/beacon-core/src/ui/alert/Pairing.ts rename to packages/beacon-dapp/src/ui/alert/Pairing.ts index 5de7666b7..ba949e9bf 100644 --- a/packages/beacon-core/src/ui/alert/Pairing.ts +++ b/packages/beacon-dapp/src/ui/alert/Pairing.ts @@ -1,4 +1,4 @@ -import { Serializer } from '../../Serializer' +import { Serializer } from '@airgap/beacon-core' import { ExtensionMessage, ExtensionMessageTarget, @@ -6,8 +6,7 @@ import { P2PPairingRequest, PostMessagePairingRequest } from '@airgap/beacon-types' -import { availableTransports } from '../..' -import { windowRef } from '../../MockWindow' +import { availableTransports, windowRef } from '@airgap/beacon-core' import { getTzip10Link } from '../../utils/get-tzip10-link' import { isAndroid, isIOS } from '../../utils/platform' import { desktopList, extensionList, iOSList, webList } from './wallet-lists' diff --git a/packages/beacon-core/src/ui/alert/PairingAlert.ts b/packages/beacon-dapp/src/ui/alert/PairingAlert.ts similarity index 98% rename from packages/beacon-core/src/ui/alert/PairingAlert.ts rename to packages/beacon-dapp/src/ui/alert/PairingAlert.ts index 523167376..a049d1dd6 100644 --- a/packages/beacon-core/src/ui/alert/PairingAlert.ts +++ b/packages/beacon-dapp/src/ui/alert/PairingAlert.ts @@ -1,7 +1,5 @@ -import { Serializer } from '../../Serializer' +import { Serializer, generateGUID, Logger } from '@airgap/beacon-core' import { NetworkType, P2PPairingRequest, PostMessagePairingRequest } from '@airgap/beacon-types' -import { generateGUID } from '../../utils/generate-uuid' -import { Logger } from '../../utils/Logger' import { isAndroid, isIOS } from '../../utils/platform' import { closeAlerts } from './Alert' import { Pairing, WalletType } from './Pairing' diff --git a/packages/beacon-core/src/ui/alert/alert-templates.ts b/packages/beacon-dapp/src/ui/alert/alert-templates.ts similarity index 100% rename from packages/beacon-core/src/ui/alert/alert-templates.ts rename to packages/beacon-dapp/src/ui/alert/alert-templates.ts diff --git a/packages/beacon-core/src/ui/alert/wallet-lists.ts b/packages/beacon-dapp/src/ui/alert/wallet-lists.ts similarity index 100% rename from packages/beacon-core/src/ui/alert/wallet-lists.ts rename to packages/beacon-dapp/src/ui/alert/wallet-lists.ts diff --git a/packages/beacon-core/src/ui/toast/Toast.ts b/packages/beacon-dapp/src/ui/toast/Toast.ts similarity index 99% rename from packages/beacon-core/src/ui/toast/Toast.ts rename to packages/beacon-dapp/src/ui/toast/Toast.ts index f31a88ad6..f7639fbbc 100644 --- a/packages/beacon-core/src/ui/toast/Toast.ts +++ b/packages/beacon-dapp/src/ui/toast/Toast.ts @@ -1,7 +1,7 @@ import { getColorMode } from '../../colorMode' import { WalletInfo } from '../../events' import { replaceInTemplate } from '../../utils/replace-in-template' -import { generateGUID } from '../../utils/generate-uuid' +import { generateGUID } from '@airgap/beacon-core' import { toastTemplates } from './toast-templates' export interface ToastAction { diff --git a/packages/beacon-core/src/ui/toast/toast-templates.ts b/packages/beacon-dapp/src/ui/toast/toast-templates.ts similarity index 100% rename from packages/beacon-core/src/ui/toast/toast-templates.ts rename to packages/beacon-dapp/src/ui/toast/toast-templates.ts diff --git a/packages/beacon-core/src/utils/block-explorer.ts b/packages/beacon-dapp/src/utils/block-explorer.ts similarity index 100% rename from packages/beacon-core/src/utils/block-explorer.ts rename to packages/beacon-dapp/src/utils/block-explorer.ts diff --git a/packages/beacon-core/src/utils/get-tzip10-link.ts b/packages/beacon-dapp/src/utils/get-tzip10-link.ts similarity index 100% rename from packages/beacon-core/src/utils/get-tzip10-link.ts rename to packages/beacon-dapp/src/utils/get-tzip10-link.ts diff --git a/packages/beacon-core/src/utils/platform.ts b/packages/beacon-dapp/src/utils/platform.ts similarity index 100% rename from packages/beacon-core/src/utils/platform.ts rename to packages/beacon-dapp/src/utils/platform.ts diff --git a/packages/beacon-core/src/utils/qr.ts b/packages/beacon-dapp/src/utils/qr.ts similarity index 97% rename from packages/beacon-core/src/utils/qr.ts rename to packages/beacon-dapp/src/utils/qr.ts index 0007f5e34..0d9dd4d8e 100644 --- a/packages/beacon-core/src/utils/qr.ts +++ b/packages/beacon-dapp/src/utils/qr.ts @@ -1,5 +1,5 @@ import qrcode from 'qrcode-generator' -import { Logger } from './Logger' +import { Logger } from '@airgap/beacon-core' const logger = new Logger('QR') diff --git a/packages/beacon-core/src/utils/replace-in-template.ts b/packages/beacon-dapp/src/utils/replace-in-template.ts similarity index 100% rename from packages/beacon-core/src/utils/replace-in-template.ts rename to packages/beacon-dapp/src/utils/replace-in-template.ts diff --git a/packages/beacon-core/src/utils/shorten-string.ts b/packages/beacon-dapp/src/utils/shorten-string.ts similarity index 100% rename from packages/beacon-core/src/utils/shorten-string.ts rename to packages/beacon-dapp/src/utils/shorten-string.ts diff --git a/packages/beacon-core/src/utils/tezblock-blockexplorer.ts b/packages/beacon-dapp/src/utils/tezblock-blockexplorer.ts similarity index 100% rename from packages/beacon-core/src/utils/tezblock-blockexplorer.ts rename to packages/beacon-dapp/src/utils/tezblock-blockexplorer.ts From 1714c6e26c74c88c491e13dc6cd705c1bc043408 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Fri, 30 Jul 2021 14:20:42 +0200 Subject: [PATCH 014/130] feat(multi-package): move matrix transport --- .../src/clients/beacon-client/BeaconClient.ts | 4 +-- .../beacon-core/src/clients/client/Client.ts | 2 +- packages/beacon-core/src/index.ts | 16 ++++-------- .../OutgoingResponseInterceptor.ts | 2 +- .../src/transports/P2PTransport.ts | 3 ++- .../src/transports/PostMessageTransport.ts | 2 +- .../transports/clients/CommunicationClient.ts | 10 +++---- .../transports/clients/MessageBasedClient.ts | 2 +- .../transports/clients/PostMessageClient.ts | 2 +- .../beacon-core/src/typings/bs58check.d.ts | 5 ---- .../beacon-dapp/src/dapp-client/DAppClient.ts | 3 +-- .../P2PCommunicationClient.ts | 26 ++++++++++--------- packages/beacon-transport-matrix/src/index.ts | 1 + .../src/matrix-client/MatrixClient.ts | 4 +-- .../matrix-client/MatrixClientEventEmitter.ts | 2 +- .../src/matrix-client/MatrixClientStore.ts | 2 +- .../src/matrix-client/MatrixHttpClient.ts | 2 +- .../matrix-client/models/MatrixClientEvent.ts | 0 .../src/matrix-client/models/MatrixMessage.ts | 0 .../src/matrix-client/models/MatrixRoom.ts | 0 .../matrix-client/models/MatrixStateEvent.ts | 0 .../models/api/MatrixEventSend.ts | 0 .../matrix-client/models/api/MatrixLogin.ts | 0 .../matrix-client/models/api/MatrixRequest.ts | 0 .../models/api/MatrixRoomCreate.ts | 0 .../models/api/MatrixRoomInvite.ts | 0 .../models/api/MatrixRoomJoin.ts | 0 .../matrix-client/models/api/MatrixSync.ts | 0 .../services/MatrixEventService.ts | 0 .../services/MatrixRoomService.ts | 0 .../services/MatrixUserService.ts | 0 .../src/matrix-client/utils/events.ts | 0 .../beacon-transport-matrix/tsconfig.json | 10 ++----- packages/beacon-utils/src/index.ts | 13 ++++++++++ .../src/utils/crypto.ts | 0 .../src/utils/exposed-promise.ts | 0 .../src/utils/keys.ts} | 0 packages/beacon-utils/tsconfig.json | 15 +---------- .../beacon-wallet/src/client/WalletClient.ts | 5 ++-- .../src/transports/WalletP2PTransport.ts | 2 +- .../transports/WalletPostMessageTransport.ts | 2 +- 41 files changed, 61 insertions(+), 74 deletions(-) delete mode 100644 packages/beacon-core/src/typings/bs58check.d.ts rename packages/{beacon-core/src/transports/clients => beacon-transport-matrix/src/communication-client}/P2PCommunicationClient.ts (97%) rename packages/{beacon-core => beacon-transport-matrix}/src/matrix-client/MatrixClient.ts (99%) rename packages/{beacon-core => beacon-transport-matrix}/src/matrix-client/MatrixClientEventEmitter.ts (98%) rename packages/{beacon-core => beacon-transport-matrix}/src/matrix-client/MatrixClientStore.ts (99%) rename packages/{beacon-core => beacon-transport-matrix}/src/matrix-client/MatrixHttpClient.ts (98%) rename packages/{beacon-core => beacon-transport-matrix}/src/matrix-client/models/MatrixClientEvent.ts (100%) rename packages/{beacon-core => beacon-transport-matrix}/src/matrix-client/models/MatrixMessage.ts (100%) rename packages/{beacon-core => beacon-transport-matrix}/src/matrix-client/models/MatrixRoom.ts (100%) rename packages/{beacon-core => beacon-transport-matrix}/src/matrix-client/models/MatrixStateEvent.ts (100%) rename packages/{beacon-core => beacon-transport-matrix}/src/matrix-client/models/api/MatrixEventSend.ts (100%) rename packages/{beacon-core => beacon-transport-matrix}/src/matrix-client/models/api/MatrixLogin.ts (100%) rename packages/{beacon-core => beacon-transport-matrix}/src/matrix-client/models/api/MatrixRequest.ts (100%) rename packages/{beacon-core => beacon-transport-matrix}/src/matrix-client/models/api/MatrixRoomCreate.ts (100%) rename packages/{beacon-core => beacon-transport-matrix}/src/matrix-client/models/api/MatrixRoomInvite.ts (100%) rename packages/{beacon-core => beacon-transport-matrix}/src/matrix-client/models/api/MatrixRoomJoin.ts (100%) rename packages/{beacon-core => beacon-transport-matrix}/src/matrix-client/models/api/MatrixSync.ts (100%) rename packages/{beacon-core => beacon-transport-matrix}/src/matrix-client/services/MatrixEventService.ts (100%) rename packages/{beacon-core => beacon-transport-matrix}/src/matrix-client/services/MatrixRoomService.ts (100%) rename packages/{beacon-core => beacon-transport-matrix}/src/matrix-client/services/MatrixUserService.ts (100%) rename packages/{beacon-core => beacon-transport-matrix}/src/matrix-client/utils/events.ts (100%) rename packages/{beacon-core => beacon-utils}/src/utils/crypto.ts (100%) rename packages/{beacon-core => beacon-utils}/src/utils/exposed-promise.ts (100%) rename packages/{beacon-core/src/utils/utils.ts => beacon-utils/src/utils/keys.ts} (100%) rename packages/{beacon-core => beacon-wallet}/src/transports/WalletP2PTransport.ts (94%) rename packages/{beacon-core => beacon-wallet}/src/transports/WalletPostMessageTransport.ts (90%) diff --git a/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts b/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts index 05bc095f1..a56ef0627 100644 --- a/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts +++ b/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts @@ -1,7 +1,7 @@ import * as sodium from 'libsodium-wrappers' -import { ExposedPromise } from '../../utils/exposed-promise' +import { ExposedPromise } from '@airgap/beacon-utils' import { generateGUID } from '../../utils/generate-uuid' -import { getKeypairFromSeed, toHex } from '../../utils/crypto' +import { getKeypairFromSeed, toHex } from '@airgap/beacon-utils' import { Storage, StorageKey } from '@airgap/beacon-types' import { SDK_VERSION } from '../../constants' import { windowRef } from '../../MockWindow' diff --git a/packages/beacon-core/src/clients/client/Client.ts b/packages/beacon-core/src/clients/client/Client.ts index a7b1d5514..5e8435944 100644 --- a/packages/beacon-core/src/clients/client/Client.ts +++ b/packages/beacon-core/src/clients/client/Client.ts @@ -1,4 +1,4 @@ -import { ExposedPromise, ExposedPromiseStatus } from '../../utils/exposed-promise' +import { ExposedPromise, ExposedPromiseStatus } from '@airgap/beacon-utils' import { ConnectionContext, TransportType, diff --git a/packages/beacon-core/src/index.ts b/packages/beacon-core/src/index.ts index 754b46850..b41539d88 100644 --- a/packages/beacon-core/src/index.ts +++ b/packages/beacon-core/src/index.ts @@ -2,7 +2,6 @@ * General docs * @module public */ -import { P2PCommunicationClient } from './transports/clients/P2PCommunicationClient' import { Client } from './clients/client/Client' import { BeaconError } from './errors/BeaconError' import { BroadcastBeaconError } from './errors/BroadcastBeaconError' @@ -27,7 +26,6 @@ import { SDK_VERSION, BEACON_VERSION } from './constants' import { AccountManager } from './managers/AccountManager' import { AppMetadataManager } from './managers/AppMetadataManager' import { PermissionManager } from './managers/PermissionManager' -import { getAddressFromPublicKey } from './utils/crypto' import { BeaconClient } from './clients/beacon-client/BeaconClient' import { BeaconClientOptions } from './clients/beacon-client/BeaconClientOptions' import { getAccountIdentifier } from './utils/get-account-identifier' @@ -35,8 +33,6 @@ import { AbortedBeaconError } from './errors/AbortedBeaconError' import { availableTransports } from './utils/available-transports' import { DappP2PTransport } from './transports/DappP2PTransport' import { DappPostMessageTransport } from './transports/DappPostMessageTransport' -import { WalletP2PTransport } from './transports/WalletP2PTransport' -import { WalletPostMessageTransport } from './transports/WalletPostMessageTransport' import { getSenderId } from './utils/get-sender-id' import { PeerManager } from './managers/PeerManager' import { MessageBasedClient } from './transports/clients/MessageBasedClient' @@ -48,14 +44,14 @@ import { SignatureTypeNotSupportedBeaconError } from './errors/SignatureTypeNotS import { Logger } from './utils/Logger' import { IncomingRequestInterceptor } from './interceptors/IncomingRequestInterceptor' import { OutgoingResponseInterceptor } from './interceptors/OutgoingResponseInterceptor' -import { ExposedPromise } from './utils/exposed-promise' import { generateGUID } from './utils/generate-uuid' import { windowRef } from './MockWindow' +import { CommunicationClient } from './transports/clients/CommunicationClient' // import { EncryptionType } from './types/EncryptionType' // import { EncryptionOperation } from './types/EncryptionOperation' // Clients -export { BeaconClient, BeaconClientOptions, Client, ClientOptions, P2PCommunicationClient } +export { BeaconClient, BeaconClientOptions, Client, ClientOptions } // Errors export { @@ -79,11 +75,10 @@ export { Transport, PostMessageTransport, P2PTransport, - WalletP2PTransport, - WalletPostMessageTransport, DappP2PTransport, DappPostMessageTransport, - MessageBasedClient + MessageBasedClient, + CommunicationClient } // Storage @@ -96,7 +91,7 @@ export { PeerManager, AccountManager, AppMetadataManager, PermissionManager } export { SDK_VERSION, BEACON_VERSION } // Utils -export { getSenderId, getAccountIdentifier, getAddressFromPublicKey, generateGUID, windowRef } +export { getSenderId, getAccountIdentifier, generateGUID, windowRef } // Others export { @@ -104,7 +99,6 @@ export { availableTransports, IncomingRequestInterceptor, OutgoingResponseInterceptor, - ExposedPromise, Logger } diff --git a/packages/beacon-core/src/interceptors/OutgoingResponseInterceptor.ts b/packages/beacon-core/src/interceptors/OutgoingResponseInterceptor.ts index 737cee38b..f4dca33bb 100644 --- a/packages/beacon-core/src/interceptors/OutgoingResponseInterceptor.ts +++ b/packages/beacon-core/src/interceptors/OutgoingResponseInterceptor.ts @@ -18,7 +18,7 @@ import { import { PermissionManager } from '../managers/PermissionManager' import { AppMetadataManager } from '../managers/AppMetadataManager' import { BEACON_VERSION } from '../constants' -import { getAddressFromPublicKey } from '../utils/crypto' +import { getAddressFromPublicKey } from '@airgap/beacon-utils' import { getAccountIdentifier } from '../utils/get-account-identifier' import { Logger } from '../utils/Logger' diff --git a/packages/beacon-core/src/transports/P2PTransport.ts b/packages/beacon-core/src/transports/P2PTransport.ts index 4d94f0127..6bdd95dbb 100644 --- a/packages/beacon-core/src/transports/P2PTransport.ts +++ b/packages/beacon-core/src/transports/P2PTransport.ts @@ -10,7 +10,8 @@ import { Origin, P2PPairingRequest } from '@airgap/beacon-types' -import { Transport, P2PCommunicationClient } from '..' +import { Transport } from '..' +import { P2PCommunicationClient } from '@airgap/beacon-transport-matrix' import { PeerManager } from '../managers/PeerManager' const logger = new Logger('P2PTransport') diff --git a/packages/beacon-core/src/transports/PostMessageTransport.ts b/packages/beacon-core/src/transports/PostMessageTransport.ts index 66fc6c450..269d12a04 100644 --- a/packages/beacon-core/src/transports/PostMessageTransport.ts +++ b/packages/beacon-core/src/transports/PostMessageTransport.ts @@ -2,7 +2,7 @@ import * as sodium from 'libsodium-wrappers' import { windowRef } from '../MockWindow' import { Logger } from '../utils/Logger' import { PeerManager } from '../managers/PeerManager' -import { ExposedPromise } from '../utils/exposed-promise' +import { ExposedPromise } from '@airgap/beacon-utils' import { PostMessagePairingRequest, diff --git a/packages/beacon-core/src/transports/clients/CommunicationClient.ts b/packages/beacon-core/src/transports/clients/CommunicationClient.ts index 6754e61b1..572ea8143 100644 --- a/packages/beacon-core/src/transports/clients/CommunicationClient.ts +++ b/packages/beacon-core/src/transports/clients/CommunicationClient.ts @@ -5,7 +5,7 @@ import { PostMessagePairingRequest, ExtendedPostMessagePairingResponse } from '@airgap/beacon-types' -import { toHex, getHexHash, sealCryptobox } from '../../utils/crypto' +import { toHex, getHexHash, sealCryptobox } from '@airgap/beacon-utils' /** * @internalapi @@ -100,10 +100,10 @@ export abstract class CommunicationClient { return sealCryptobox(message, Buffer.from(recipientPublicKey, 'hex')) } - abstract async unsubscribeFromEncryptedMessages(): Promise - abstract async unsubscribeFromEncryptedMessage(senderPublicKey: string): Promise - // abstract async send(message: string, recipient?: string): Promise - public abstract async sendMessage( + abstract unsubscribeFromEncryptedMessages(): Promise + abstract unsubscribeFromEncryptedMessage(senderPublicKey: string): Promise + // abstract send(message: string, recipient?: string): Promise + public abstract sendMessage( message: string, peer?: | P2PPairingRequest diff --git a/packages/beacon-core/src/transports/clients/MessageBasedClient.ts b/packages/beacon-core/src/transports/clients/MessageBasedClient.ts index 6d684ea86..b828810b5 100644 --- a/packages/beacon-core/src/transports/clients/MessageBasedClient.ts +++ b/packages/beacon-core/src/transports/clients/MessageBasedClient.ts @@ -1,6 +1,6 @@ import * as sodium from 'libsodium-wrappers' import { BEACON_VERSION } from '../../constants' -import { decryptCryptoboxPayload, encryptCryptoboxPayload } from '../../utils/crypto' +import { decryptCryptoboxPayload, encryptCryptoboxPayload } from '@airgap/beacon-utils' import { generateGUID } from '../../utils/generate-uuid' import { CommunicationClient } from './CommunicationClient' import { PostMessagePairingRequest, PostMessagePairingResponse } from '@airgap/beacon-types' diff --git a/packages/beacon-core/src/transports/clients/PostMessageClient.ts b/packages/beacon-core/src/transports/clients/PostMessageClient.ts index b976387d6..e00e35466 100644 --- a/packages/beacon-core/src/transports/clients/PostMessageClient.ts +++ b/packages/beacon-core/src/transports/clients/PostMessageClient.ts @@ -2,7 +2,7 @@ import * as sodium from 'libsodium-wrappers' import { windowRef } from '../../MockWindow' import { Serializer } from '../..' -import { openCryptobox } from '../../utils/crypto' +import { openCryptobox } from '@airgap/beacon-utils' import { getSenderId } from '../../utils/get-sender-id' import { MessageBasedClient } from './MessageBasedClient' import { diff --git a/packages/beacon-core/src/typings/bs58check.d.ts b/packages/beacon-core/src/typings/bs58check.d.ts deleted file mode 100644 index e7eb7366a..000000000 --- a/packages/beacon-core/src/typings/bs58check.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare module 'bs58check' { - export function encode(payload: Buffer | Uint8Array): string - export function decode(payload: string): Buffer - export function decodeUndafe(payload: string): Buffer -} diff --git a/packages/beacon-dapp/src/dapp-client/DAppClient.ts b/packages/beacon-dapp/src/dapp-client/DAppClient.ts index 1d051b19e..98d4c04a5 100644 --- a/packages/beacon-dapp/src/dapp-client/DAppClient.ts +++ b/packages/beacon-dapp/src/dapp-client/DAppClient.ts @@ -58,14 +58,13 @@ import { AppMetadataManager, Serializer, LocalStorage, - getAddressFromPublicKey, getAccountIdentifier, getSenderId, BEACON_VERSION, Logger, - ExposedPromise, generateGUID } from '@airgap/beacon-core' +import { getAddressFromPublicKey, ExposedPromise } from '@airgap/beacon-utils' import { messageEvents } from '../beacon-message-events' import { BlockExplorer } from '../utils/block-explorer' import { TezblockBlockExplorer } from '../utils/tezblock-blockexplorer' diff --git a/packages/beacon-core/src/transports/clients/P2PCommunicationClient.ts b/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts similarity index 97% rename from packages/beacon-core/src/transports/clients/P2PCommunicationClient.ts rename to packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts index 8fd1a7688..5eaebbaae 100644 --- a/packages/beacon-core/src/transports/clients/P2PCommunicationClient.ts +++ b/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts @@ -8,15 +8,15 @@ import { openCryptobox, encryptCryptoboxPayload, decryptCryptoboxPayload -} from '../../utils/crypto' -import { MatrixClient } from '../../matrix-client/MatrixClient' +} from '@airgap/beacon-utils' +import { MatrixClient } from '../matrix-client/MatrixClient' import { MatrixClientEvent, MatrixClientEventType, MatrixClientEventMessageContent -} from '../../matrix-client/models/MatrixClientEvent' -import { MatrixMessageType } from '../../matrix-client/models/MatrixMessage' -import { MatrixRoom } from '../../matrix-client/models/MatrixRoom' +} from '../matrix-client/models/MatrixClientEvent' +import { MatrixMessageType } from '../matrix-client/models/MatrixMessage' +import { MatrixRoom } from '../matrix-client/models/MatrixRoom' import { Storage, P2PPairingRequest, @@ -24,13 +24,15 @@ import { ExtendedP2PPairingResponse, P2PPairingResponse } from '@airgap/beacon-types' -import { PeerManager } from '../..' -import { BEACON_VERSION } from '../../constants' -import { generateGUID } from '../../utils/generate-uuid' -import { getSenderId } from '../../utils/get-sender-id' -import { Logger } from '../../utils/Logger' -import { CommunicationClient } from './CommunicationClient' -import { ExposedPromise } from '../../utils/exposed-promise' +import { + PeerManager, + BEACON_VERSION, + generateGUID, + getSenderId, + Logger, + CommunicationClient +} from '@airgap/beacon-core' +import { ExposedPromise } from '@airgap/beacon-utils' const logger = new Logger('P2PCommunicationClient') diff --git a/packages/beacon-transport-matrix/src/index.ts b/packages/beacon-transport-matrix/src/index.ts index e69de29bb..6f374e82f 100644 --- a/packages/beacon-transport-matrix/src/index.ts +++ b/packages/beacon-transport-matrix/src/index.ts @@ -0,0 +1 @@ +export { P2PCommunicationClient } from './communication-client/P2PCommunicationClient' diff --git a/packages/beacon-core/src/matrix-client/MatrixClient.ts b/packages/beacon-transport-matrix/src/matrix-client/MatrixClient.ts similarity index 99% rename from packages/beacon-core/src/matrix-client/MatrixClient.ts rename to packages/beacon-transport-matrix/src/matrix-client/MatrixClient.ts index 0e228b388..1da649fd5 100644 --- a/packages/beacon-core/src/matrix-client/MatrixClient.ts +++ b/packages/beacon-transport-matrix/src/matrix-client/MatrixClient.ts @@ -1,6 +1,6 @@ import { Storage } from '@airgap/beacon-types' -import { Logger } from '../utils/Logger' -import { ExposedPromise } from '../utils/exposed-promise' +import { Logger } from '@airgap/beacon-core' +import { ExposedPromise } from '@airgap/beacon-utils' import { MatrixClientStore } from './MatrixClientStore' import { MatrixHttpClient } from './MatrixHttpClient' import { MatrixRoom, MatrixRoomStatus } from './models/MatrixRoom' diff --git a/packages/beacon-core/src/matrix-client/MatrixClientEventEmitter.ts b/packages/beacon-transport-matrix/src/matrix-client/MatrixClientEventEmitter.ts similarity index 98% rename from packages/beacon-core/src/matrix-client/MatrixClientEventEmitter.ts rename to packages/beacon-transport-matrix/src/matrix-client/MatrixClientEventEmitter.ts index 4b31b68b5..b43e441ff 100644 --- a/packages/beacon-core/src/matrix-client/MatrixClientEventEmitter.ts +++ b/packages/beacon-transport-matrix/src/matrix-client/MatrixClientEventEmitter.ts @@ -1,5 +1,5 @@ import { EventEmitter } from 'events' -import { keys } from '../utils/utils' +import { keys } from '@airgap/beacon-utils' import { MatrixStateStore, MatrixStateUpdate } from './MatrixClientStore' import { MatrixRoomStatus } from './models/MatrixRoom' import { MatrixMessage } from './models/MatrixMessage' diff --git a/packages/beacon-core/src/matrix-client/MatrixClientStore.ts b/packages/beacon-transport-matrix/src/matrix-client/MatrixClientStore.ts similarity index 99% rename from packages/beacon-core/src/matrix-client/MatrixClientStore.ts rename to packages/beacon-transport-matrix/src/matrix-client/MatrixClientStore.ts index 2eef1a2a7..155b8f324 100644 --- a/packages/beacon-core/src/matrix-client/MatrixClientStore.ts +++ b/packages/beacon-transport-matrix/src/matrix-client/MatrixClientStore.ts @@ -1,4 +1,4 @@ -import { keys } from '../utils/utils' +import { keys } from '@airgap/beacon-utils' import { MatrixRoom, MatrixRoomStatus } from './models/MatrixRoom' import { Storage, StorageKey } from '@airgap/beacon-types' diff --git a/packages/beacon-core/src/matrix-client/MatrixHttpClient.ts b/packages/beacon-transport-matrix/src/matrix-client/MatrixHttpClient.ts similarity index 98% rename from packages/beacon-core/src/matrix-client/MatrixHttpClient.ts rename to packages/beacon-transport-matrix/src/matrix-client/MatrixHttpClient.ts index 9d938f2a4..bd8a10d04 100644 --- a/packages/beacon-core/src/matrix-client/MatrixHttpClient.ts +++ b/packages/beacon-transport-matrix/src/matrix-client/MatrixHttpClient.ts @@ -1,6 +1,6 @@ import axios, { AxiosResponse, CancelTokenSource, Method as HttpMethod } from 'axios' -import { keys } from '../utils/utils' +import { keys } from '@airgap/beacon-utils' import { MatrixRequest, MatrixRequestParams } from './models/api/MatrixRequest' interface HttpOptions { diff --git a/packages/beacon-core/src/matrix-client/models/MatrixClientEvent.ts b/packages/beacon-transport-matrix/src/matrix-client/models/MatrixClientEvent.ts similarity index 100% rename from packages/beacon-core/src/matrix-client/models/MatrixClientEvent.ts rename to packages/beacon-transport-matrix/src/matrix-client/models/MatrixClientEvent.ts diff --git a/packages/beacon-core/src/matrix-client/models/MatrixMessage.ts b/packages/beacon-transport-matrix/src/matrix-client/models/MatrixMessage.ts similarity index 100% rename from packages/beacon-core/src/matrix-client/models/MatrixMessage.ts rename to packages/beacon-transport-matrix/src/matrix-client/models/MatrixMessage.ts diff --git a/packages/beacon-core/src/matrix-client/models/MatrixRoom.ts b/packages/beacon-transport-matrix/src/matrix-client/models/MatrixRoom.ts similarity index 100% rename from packages/beacon-core/src/matrix-client/models/MatrixRoom.ts rename to packages/beacon-transport-matrix/src/matrix-client/models/MatrixRoom.ts diff --git a/packages/beacon-core/src/matrix-client/models/MatrixStateEvent.ts b/packages/beacon-transport-matrix/src/matrix-client/models/MatrixStateEvent.ts similarity index 100% rename from packages/beacon-core/src/matrix-client/models/MatrixStateEvent.ts rename to packages/beacon-transport-matrix/src/matrix-client/models/MatrixStateEvent.ts diff --git a/packages/beacon-core/src/matrix-client/models/api/MatrixEventSend.ts b/packages/beacon-transport-matrix/src/matrix-client/models/api/MatrixEventSend.ts similarity index 100% rename from packages/beacon-core/src/matrix-client/models/api/MatrixEventSend.ts rename to packages/beacon-transport-matrix/src/matrix-client/models/api/MatrixEventSend.ts diff --git a/packages/beacon-core/src/matrix-client/models/api/MatrixLogin.ts b/packages/beacon-transport-matrix/src/matrix-client/models/api/MatrixLogin.ts similarity index 100% rename from packages/beacon-core/src/matrix-client/models/api/MatrixLogin.ts rename to packages/beacon-transport-matrix/src/matrix-client/models/api/MatrixLogin.ts diff --git a/packages/beacon-core/src/matrix-client/models/api/MatrixRequest.ts b/packages/beacon-transport-matrix/src/matrix-client/models/api/MatrixRequest.ts similarity index 100% rename from packages/beacon-core/src/matrix-client/models/api/MatrixRequest.ts rename to packages/beacon-transport-matrix/src/matrix-client/models/api/MatrixRequest.ts diff --git a/packages/beacon-core/src/matrix-client/models/api/MatrixRoomCreate.ts b/packages/beacon-transport-matrix/src/matrix-client/models/api/MatrixRoomCreate.ts similarity index 100% rename from packages/beacon-core/src/matrix-client/models/api/MatrixRoomCreate.ts rename to packages/beacon-transport-matrix/src/matrix-client/models/api/MatrixRoomCreate.ts diff --git a/packages/beacon-core/src/matrix-client/models/api/MatrixRoomInvite.ts b/packages/beacon-transport-matrix/src/matrix-client/models/api/MatrixRoomInvite.ts similarity index 100% rename from packages/beacon-core/src/matrix-client/models/api/MatrixRoomInvite.ts rename to packages/beacon-transport-matrix/src/matrix-client/models/api/MatrixRoomInvite.ts diff --git a/packages/beacon-core/src/matrix-client/models/api/MatrixRoomJoin.ts b/packages/beacon-transport-matrix/src/matrix-client/models/api/MatrixRoomJoin.ts similarity index 100% rename from packages/beacon-core/src/matrix-client/models/api/MatrixRoomJoin.ts rename to packages/beacon-transport-matrix/src/matrix-client/models/api/MatrixRoomJoin.ts diff --git a/packages/beacon-core/src/matrix-client/models/api/MatrixSync.ts b/packages/beacon-transport-matrix/src/matrix-client/models/api/MatrixSync.ts similarity index 100% rename from packages/beacon-core/src/matrix-client/models/api/MatrixSync.ts rename to packages/beacon-transport-matrix/src/matrix-client/models/api/MatrixSync.ts diff --git a/packages/beacon-core/src/matrix-client/services/MatrixEventService.ts b/packages/beacon-transport-matrix/src/matrix-client/services/MatrixEventService.ts similarity index 100% rename from packages/beacon-core/src/matrix-client/services/MatrixEventService.ts rename to packages/beacon-transport-matrix/src/matrix-client/services/MatrixEventService.ts diff --git a/packages/beacon-core/src/matrix-client/services/MatrixRoomService.ts b/packages/beacon-transport-matrix/src/matrix-client/services/MatrixRoomService.ts similarity index 100% rename from packages/beacon-core/src/matrix-client/services/MatrixRoomService.ts rename to packages/beacon-transport-matrix/src/matrix-client/services/MatrixRoomService.ts diff --git a/packages/beacon-core/src/matrix-client/services/MatrixUserService.ts b/packages/beacon-transport-matrix/src/matrix-client/services/MatrixUserService.ts similarity index 100% rename from packages/beacon-core/src/matrix-client/services/MatrixUserService.ts rename to packages/beacon-transport-matrix/src/matrix-client/services/MatrixUserService.ts diff --git a/packages/beacon-core/src/matrix-client/utils/events.ts b/packages/beacon-transport-matrix/src/matrix-client/utils/events.ts similarity index 100% rename from packages/beacon-core/src/matrix-client/utils/events.ts rename to packages/beacon-transport-matrix/src/matrix-client/utils/events.ts diff --git a/packages/beacon-transport-matrix/tsconfig.json b/packages/beacon-transport-matrix/tsconfig.json index 8d0c60072..f189833ff 100644 --- a/packages/beacon-transport-matrix/tsconfig.json +++ b/packages/beacon-transport-matrix/tsconfig.json @@ -4,16 +4,10 @@ "outDir": "./lib", "baseUrl": ".", "paths": { - "@airgap/beacon-core": ["../beacon-core/src"], - "@airgap/beacon-dapp": ["../beacon-dapp/src"], - "@airgap/beacon-protocol-substrate": ["../beacon-protocol-substrate/src"], - "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], - "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], + "@airgap/beacon-core": ["../beacon-core/src"], "@airgap/beacon-types": ["../beacon-types/src"], - "@airgap/beacon-ui": ["../beacon-ui/src"], - "@airgap/beacon-utils": ["../beacon-utils/src"], - "@airgap/beacon-wallet": ["../beacon-wallet/src"] + "@airgap/beacon-utils": ["../beacon-utils/src"] } }, "include": ["./src"] diff --git a/packages/beacon-utils/src/index.ts b/packages/beacon-utils/src/index.ts index e69de29bb..14a03c89e 100644 --- a/packages/beacon-utils/src/index.ts +++ b/packages/beacon-utils/src/index.ts @@ -0,0 +1,13 @@ +export { keys } from './utils/keys' +export { ExposedPromise, ExposedPromiseStatus } from './utils/exposed-promise' +export { + getKeypairFromSeed, + toHex, + getAddressFromPublicKey, + decryptCryptoboxPayload, + encryptCryptoboxPayload, + getHexHash, + sealCryptobox, + openCryptobox, + recipientString +} from './utils/crypto' diff --git a/packages/beacon-core/src/utils/crypto.ts b/packages/beacon-utils/src/utils/crypto.ts similarity index 100% rename from packages/beacon-core/src/utils/crypto.ts rename to packages/beacon-utils/src/utils/crypto.ts diff --git a/packages/beacon-core/src/utils/exposed-promise.ts b/packages/beacon-utils/src/utils/exposed-promise.ts similarity index 100% rename from packages/beacon-core/src/utils/exposed-promise.ts rename to packages/beacon-utils/src/utils/exposed-promise.ts diff --git a/packages/beacon-core/src/utils/utils.ts b/packages/beacon-utils/src/utils/keys.ts similarity index 100% rename from packages/beacon-core/src/utils/utils.ts rename to packages/beacon-utils/src/utils/keys.ts diff --git a/packages/beacon-utils/tsconfig.json b/packages/beacon-utils/tsconfig.json index 8d0c60072..da67782ff 100644 --- a/packages/beacon-utils/tsconfig.json +++ b/packages/beacon-utils/tsconfig.json @@ -1,20 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib", - "baseUrl": ".", - "paths": { - "@airgap/beacon-core": ["../beacon-core/src"], - "@airgap/beacon-dapp": ["../beacon-dapp/src"], - "@airgap/beacon-protocol-substrate": ["../beacon-protocol-substrate/src"], - "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], - "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], - "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], - "@airgap/beacon-types": ["../beacon-types/src"], - "@airgap/beacon-ui": ["../beacon-ui/src"], - "@airgap/beacon-utils": ["../beacon-utils/src"], - "@airgap/beacon-wallet": ["../beacon-wallet/src"] - } + "outDir": "./lib" }, "include": ["./src"] } diff --git a/packages/beacon-wallet/src/client/WalletClient.ts b/packages/beacon-wallet/src/client/WalletClient.ts index 3127525be..54f8428f2 100644 --- a/packages/beacon-wallet/src/client/WalletClient.ts +++ b/packages/beacon-wallet/src/client/WalletClient.ts @@ -2,16 +2,16 @@ import { Serializer, Client, LocalStorage, - WalletP2PTransport, PermissionManager, AppMetadataManager, IncomingRequestInterceptor, OutgoingResponseInterceptor, getSenderId, - ExposedPromise, Logger } from '@airgap/beacon-core' +import { ExposedPromise } from '@airgap/beacon-utils' + import { ConnectionContext, BeaconRequestMessage, @@ -30,6 +30,7 @@ import { BeaconMessage } from '@airgap/beacon-types' import { WalletClientOptions } from './WalletClientOptions' +import { WalletP2PTransport } from 'src/transports/WalletP2PTransport' const logger = new Logger('WalletClient') diff --git a/packages/beacon-core/src/transports/WalletP2PTransport.ts b/packages/beacon-wallet/src/transports/WalletP2PTransport.ts similarity index 94% rename from packages/beacon-core/src/transports/WalletP2PTransport.ts rename to packages/beacon-wallet/src/transports/WalletP2PTransport.ts index af49e410f..c145afbf6 100644 --- a/packages/beacon-core/src/transports/WalletP2PTransport.ts +++ b/packages/beacon-wallet/src/transports/WalletP2PTransport.ts @@ -1,6 +1,6 @@ import * as sodium from 'libsodium-wrappers' import { Storage, StorageKey, P2PPairingRequest } from '@airgap/beacon-types' -import { P2PTransport } from '..' +import { P2PTransport } from '@airgap/beacon-core' // const logger = new Logger('DappP2PTransport') diff --git a/packages/beacon-core/src/transports/WalletPostMessageTransport.ts b/packages/beacon-wallet/src/transports/WalletPostMessageTransport.ts similarity index 90% rename from packages/beacon-core/src/transports/WalletPostMessageTransport.ts rename to packages/beacon-wallet/src/transports/WalletPostMessageTransport.ts index 29e12d091..5c291979e 100644 --- a/packages/beacon-core/src/transports/WalletPostMessageTransport.ts +++ b/packages/beacon-wallet/src/transports/WalletPostMessageTransport.ts @@ -1,6 +1,6 @@ import * as sodium from 'libsodium-wrappers' import { StorageKey, Storage, PostMessagePairingRequest } from '@airgap/beacon-types' -import { PostMessageTransport } from '..' +import { PostMessageTransport } from '@airgap/beacon-core' // const logger = new Logger('WalletPostMessageTransport') From 0083886c229d1c02ca1adc6652dabbcf6bba1ad5 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Fri, 30 Jul 2021 16:30:34 +0200 Subject: [PATCH 015/130] feat(multi-package): transports --- packages/beacon-core/src/index.ts | 23 ++----------------- .../beacon-dapp/src/dapp-client/DAppClient.ts | 6 ++--- .../src/transports/DappP2PTransport.ts | 4 ++-- .../transports/DappPostMessageTransport.ts | 4 ++-- packages/beacon-dapp/src/ui/alert/Pairing.ts | 3 ++- .../src/utils/available-transports.ts | 2 +- .../src}/P2PTransport.ts | 4 +--- packages/beacon-transport-matrix/src/index.ts | 1 + .../src}/PostMessageTransport.ts | 10 ++++---- .../beacon-transport-postmessage/src/index.ts | 1 + .../src/transports/WalletP2PTransport.ts | 2 +- .../transports/WalletPostMessageTransport.ts | 2 +- 12 files changed, 22 insertions(+), 40 deletions(-) rename packages/{beacon-core => beacon-dapp}/src/transports/DappP2PTransport.ts (92%) rename packages/{beacon-core => beacon-dapp}/src/transports/DappPostMessageTransport.ts (92%) rename packages/{beacon-core => beacon-dapp}/src/utils/available-transports.ts (78%) rename packages/{beacon-core/src/transports => beacon-transport-matrix/src}/P2PTransport.ts (95%) rename packages/{beacon-core/src/transports => beacon-transport-postmessage/src}/PostMessageTransport.ts (92%) diff --git a/packages/beacon-core/src/index.ts b/packages/beacon-core/src/index.ts index b41539d88..284b71690 100644 --- a/packages/beacon-core/src/index.ts +++ b/packages/beacon-core/src/index.ts @@ -13,9 +13,7 @@ import { ParametersInvalidBeaconError } from './errors/ParametersInvalidBeaconEr import { TooManyOperationsBeaconError } from './errors/TooManyOperationsBeaconError' import { TransactionInvalidBeaconError } from './errors/TransactionInvalidBeaconError' import { UnknownBeaconError } from './errors/UnknownBeaconError' -import { PostMessageTransport } from './transports/PostMessageTransport' import { Transport } from './transports/Transport' -import { P2PTransport } from './transports/P2PTransport' import { ChromeStorage } from './storage/ChromeStorage' import { LocalStorage } from './storage/LocalStorage' import { getStorage } from './storage/getStorage' @@ -30,9 +28,6 @@ import { BeaconClient } from './clients/beacon-client/BeaconClient' import { BeaconClientOptions } from './clients/beacon-client/BeaconClientOptions' import { getAccountIdentifier } from './utils/get-account-identifier' import { AbortedBeaconError } from './errors/AbortedBeaconError' -import { availableTransports } from './utils/available-transports' -import { DappP2PTransport } from './transports/DappP2PTransport' -import { DappPostMessageTransport } from './transports/DappPostMessageTransport' import { getSenderId } from './utils/get-sender-id' import { PeerManager } from './managers/PeerManager' import { MessageBasedClient } from './transports/clients/MessageBasedClient' @@ -71,15 +66,7 @@ export { } // Transport -export { - Transport, - PostMessageTransport, - P2PTransport, - DappP2PTransport, - DappPostMessageTransport, - MessageBasedClient, - CommunicationClient -} +export { Transport, MessageBasedClient, CommunicationClient } // Storage export { ChromeStorage, LocalStorage, getStorage } @@ -94,13 +81,7 @@ export { SDK_VERSION, BEACON_VERSION } export { getSenderId, getAccountIdentifier, generateGUID, windowRef } // Others -export { - Serializer, - availableTransports, - IncomingRequestInterceptor, - OutgoingResponseInterceptor, - Logger -} +export { Serializer, IncomingRequestInterceptor, OutgoingResponseInterceptor, Logger } // Debug export { setDebugEnabled, getDebugEnabled } diff --git a/packages/beacon-dapp/src/dapp-client/DAppClient.ts b/packages/beacon-dapp/src/dapp-client/DAppClient.ts index 98d4c04a5..a0cdc054b 100644 --- a/packages/beacon-dapp/src/dapp-client/DAppClient.ts +++ b/packages/beacon-dapp/src/dapp-client/DAppClient.ts @@ -51,10 +51,7 @@ import { import { Client, Transport, - DappP2PTransport, - DappPostMessageTransport, BeaconError, - PostMessageTransport, AppMetadataManager, Serializer, LocalStorage, @@ -75,6 +72,9 @@ import { desktopList, extensionList, iOSList, webList } from '../ui/alert/wallet import { DAppClientOptions } from './DAppClientOptions' import { App, DesktopApp, ExtensionApp, WebApp } from '../ui/alert/Pairing' import { BeaconEventHandler } from 'src/events' +import { DappPostMessageTransport } from 'src/transports/DappPostMessageTransport' +import { DappP2PTransport } from 'src/transports/DappP2PTransport' +import { PostMessageTransport } from '@airgap/beacon-transport-postmessage' const logger = new Logger('DAppClient') diff --git a/packages/beacon-core/src/transports/DappP2PTransport.ts b/packages/beacon-dapp/src/transports/DappP2PTransport.ts similarity index 92% rename from packages/beacon-core/src/transports/DappP2PTransport.ts rename to packages/beacon-dapp/src/transports/DappP2PTransport.ts index 636a49b45..4253d96eb 100644 --- a/packages/beacon-core/src/transports/DappP2PTransport.ts +++ b/packages/beacon-dapp/src/transports/DappP2PTransport.ts @@ -5,8 +5,8 @@ import { TransportStatus, ExtendedP2PPairingResponse } from '@airgap/beacon-types' -import { P2PTransport } from '..' -import { Logger } from '../utils/Logger' +import { Logger } from '@airgap/beacon-core' +import { P2PTransport } from '@airgap/beacon-transport-matrix' const logger = new Logger('DappP2PTransport') diff --git a/packages/beacon-core/src/transports/DappPostMessageTransport.ts b/packages/beacon-dapp/src/transports/DappPostMessageTransport.ts similarity index 92% rename from packages/beacon-core/src/transports/DappPostMessageTransport.ts rename to packages/beacon-dapp/src/transports/DappPostMessageTransport.ts index 1410ae71a..f5b157131 100644 --- a/packages/beacon-core/src/transports/DappPostMessageTransport.ts +++ b/packages/beacon-dapp/src/transports/DappPostMessageTransport.ts @@ -5,8 +5,8 @@ import { Storage, ExtendedPostMessagePairingResponse } from '@airgap/beacon-types' -import { Logger } from '../utils/Logger' -import { PostMessageTransport } from '..' +import { Logger } from '@airgap/beacon-core' +import { PostMessageTransport } from '@airgap/beacon-transport-postmessage' const logger = new Logger('DappPostMessageTransport') diff --git a/packages/beacon-dapp/src/ui/alert/Pairing.ts b/packages/beacon-dapp/src/ui/alert/Pairing.ts index ba949e9bf..a8d77d935 100644 --- a/packages/beacon-dapp/src/ui/alert/Pairing.ts +++ b/packages/beacon-dapp/src/ui/alert/Pairing.ts @@ -6,10 +6,11 @@ import { P2PPairingRequest, PostMessagePairingRequest } from '@airgap/beacon-types' -import { availableTransports, windowRef } from '@airgap/beacon-core' +import { windowRef } from '@airgap/beacon-core' import { getTzip10Link } from '../../utils/get-tzip10-link' import { isAndroid, isIOS } from '../../utils/platform' import { desktopList, extensionList, iOSList, webList } from './wallet-lists' +import { availableTransports } from 'src/utils/available-transports' const serializer = new Serializer() diff --git a/packages/beacon-core/src/utils/available-transports.ts b/packages/beacon-dapp/src/utils/available-transports.ts similarity index 78% rename from packages/beacon-core/src/utils/available-transports.ts rename to packages/beacon-dapp/src/utils/available-transports.ts index cfe274ff8..c329ebfe4 100644 --- a/packages/beacon-core/src/utils/available-transports.ts +++ b/packages/beacon-dapp/src/utils/available-transports.ts @@ -1,4 +1,4 @@ -import { PostMessageTransport } from '..' +import { PostMessageTransport } from '@airgap/beacon-transport-postmessage' /** * An object with promises to indicate whether or not that transport is available. diff --git a/packages/beacon-core/src/transports/P2PTransport.ts b/packages/beacon-transport-matrix/src/P2PTransport.ts similarity index 95% rename from packages/beacon-core/src/transports/P2PTransport.ts rename to packages/beacon-transport-matrix/src/P2PTransport.ts index 6bdd95dbb..42ed63935 100644 --- a/packages/beacon-core/src/transports/P2PTransport.ts +++ b/packages/beacon-transport-matrix/src/P2PTransport.ts @@ -1,5 +1,5 @@ import * as sodium from 'libsodium-wrappers' -import { Logger } from '../utils/Logger' +import { Logger, Transport, PeerManager } from '@airgap/beacon-core' import { ConnectionContext, ExtendedP2PPairingResponse, @@ -10,9 +10,7 @@ import { Origin, P2PPairingRequest } from '@airgap/beacon-types' -import { Transport } from '..' import { P2PCommunicationClient } from '@airgap/beacon-transport-matrix' -import { PeerManager } from '../managers/PeerManager' const logger = new Logger('P2PTransport') diff --git a/packages/beacon-transport-matrix/src/index.ts b/packages/beacon-transport-matrix/src/index.ts index 6f374e82f..8afd47d81 100644 --- a/packages/beacon-transport-matrix/src/index.ts +++ b/packages/beacon-transport-matrix/src/index.ts @@ -1 +1,2 @@ export { P2PCommunicationClient } from './communication-client/P2PCommunicationClient' +export { P2PTransport } from './P2PTransport' diff --git a/packages/beacon-core/src/transports/PostMessageTransport.ts b/packages/beacon-transport-postmessage/src/PostMessageTransport.ts similarity index 92% rename from packages/beacon-core/src/transports/PostMessageTransport.ts rename to packages/beacon-transport-postmessage/src/PostMessageTransport.ts index 269d12a04..ef3eeb89f 100644 --- a/packages/beacon-core/src/transports/PostMessageTransport.ts +++ b/packages/beacon-transport-postmessage/src/PostMessageTransport.ts @@ -1,7 +1,7 @@ import * as sodium from 'libsodium-wrappers' -import { windowRef } from '../MockWindow' -import { Logger } from '../utils/Logger' -import { PeerManager } from '../managers/PeerManager' +import { windowRef } from '../../beacon-core/src/MockWindow' +import { Logger } from '../../beacon-core/src/utils/Logger' +import { PeerManager } from '../../beacon-core/src/managers/PeerManager' import { ExposedPromise } from '@airgap/beacon-utils' import { @@ -17,8 +17,8 @@ import { Origin } from '@airgap/beacon-types' import { Storage } from '@airgap/beacon-types' -import { PostMessageClient } from './clients/PostMessageClient' -import { Transport } from './Transport' +import { PostMessageClient } from '../../beacon-core/src/transports/clients/PostMessageClient' +import { Transport } from '../../beacon-core/src/transports/Transport' const logger = new Logger('PostMessageTransport') diff --git a/packages/beacon-transport-postmessage/src/index.ts b/packages/beacon-transport-postmessage/src/index.ts index e69de29bb..482ed4aed 100644 --- a/packages/beacon-transport-postmessage/src/index.ts +++ b/packages/beacon-transport-postmessage/src/index.ts @@ -0,0 +1 @@ +export { PostMessageTransport } from './PostMessageTransport' diff --git a/packages/beacon-wallet/src/transports/WalletP2PTransport.ts b/packages/beacon-wallet/src/transports/WalletP2PTransport.ts index c145afbf6..2d2723ede 100644 --- a/packages/beacon-wallet/src/transports/WalletP2PTransport.ts +++ b/packages/beacon-wallet/src/transports/WalletP2PTransport.ts @@ -1,6 +1,6 @@ import * as sodium from 'libsodium-wrappers' import { Storage, StorageKey, P2PPairingRequest } from '@airgap/beacon-types' -import { P2PTransport } from '@airgap/beacon-core' +import { P2PTransport } from '@airgap/beacon-transport-matrix' // const logger = new Logger('DappP2PTransport') diff --git a/packages/beacon-wallet/src/transports/WalletPostMessageTransport.ts b/packages/beacon-wallet/src/transports/WalletPostMessageTransport.ts index 5c291979e..16c33bf55 100644 --- a/packages/beacon-wallet/src/transports/WalletPostMessageTransport.ts +++ b/packages/beacon-wallet/src/transports/WalletPostMessageTransport.ts @@ -1,6 +1,6 @@ import * as sodium from 'libsodium-wrappers' import { StorageKey, Storage, PostMessagePairingRequest } from '@airgap/beacon-types' -import { PostMessageTransport } from '@airgap/beacon-core' +import { PostMessageTransport } from '@airgap/beacon-transport-postmessage' // const logger = new Logger('WalletPostMessageTransport') From 16a7e59c294113a9931d822f327b83a2465bf184 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Tue, 3 Aug 2021 15:24:41 +0200 Subject: [PATCH 016/130] chore(multi-package): rename substrate to kusama --- packages/beacon-core/tsconfig.json | 2 +- packages/beacon-dapp/tsconfig.json | 2 +- packages/beacon-protocol-kusama/README.md | 11 +++++++++++ .../__tests__/beacon-protocol-substrate.test.js | 7 +++++++ .../package.json | 2 +- .../src/index.ts | 0 .../tsconfig.json | 2 +- packages/beacon-protocol-substrate/README.md | 11 ----------- .../__tests__/beacon-protocol-substrate.test.js | 7 ------- packages/beacon-protocol-tezos/tsconfig.json | 2 +- packages/beacon-transport-postmessage/tsconfig.json | 2 +- packages/beacon-types/tsconfig.json | 2 +- packages/beacon-ui/tsconfig.json | 2 +- packages/beacon-wallet/tsconfig.json | 2 +- 14 files changed, 27 insertions(+), 27 deletions(-) create mode 100644 packages/beacon-protocol-kusama/README.md create mode 100644 packages/beacon-protocol-kusama/__tests__/beacon-protocol-substrate.test.js rename packages/{beacon-protocol-substrate => beacon-protocol-kusama}/package.json (93%) rename packages/{beacon-protocol-substrate => beacon-protocol-kusama}/src/index.ts (100%) rename packages/{beacon-protocol-substrate => beacon-protocol-kusama}/tsconfig.json (89%) delete mode 100644 packages/beacon-protocol-substrate/README.md delete mode 100644 packages/beacon-protocol-substrate/__tests__/beacon-protocol-substrate.test.js diff --git a/packages/beacon-core/tsconfig.json b/packages/beacon-core/tsconfig.json index 8d0c60072..87305c535 100644 --- a/packages/beacon-core/tsconfig.json +++ b/packages/beacon-core/tsconfig.json @@ -6,7 +6,7 @@ "paths": { "@airgap/beacon-core": ["../beacon-core/src"], "@airgap/beacon-dapp": ["../beacon-dapp/src"], - "@airgap/beacon-protocol-substrate": ["../beacon-protocol-substrate/src"], + "@airgap/beacon-protocol-kusama": ["../beacon-protocol-kusama/src"], "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], diff --git a/packages/beacon-dapp/tsconfig.json b/packages/beacon-dapp/tsconfig.json index 8d0c60072..87305c535 100644 --- a/packages/beacon-dapp/tsconfig.json +++ b/packages/beacon-dapp/tsconfig.json @@ -6,7 +6,7 @@ "paths": { "@airgap/beacon-core": ["../beacon-core/src"], "@airgap/beacon-dapp": ["../beacon-dapp/src"], - "@airgap/beacon-protocol-substrate": ["../beacon-protocol-substrate/src"], + "@airgap/beacon-protocol-kusama": ["../beacon-protocol-kusama/src"], "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], diff --git a/packages/beacon-protocol-kusama/README.md b/packages/beacon-protocol-kusama/README.md new file mode 100644 index 000000000..a8dcb5045 --- /dev/null +++ b/packages/beacon-protocol-kusama/README.md @@ -0,0 +1,11 @@ +# `@airgap/beacon-protocol-kusama` + +> TODO: description + +## Usage + +``` +const beaconProtocolkusama = require('@airgap/beacon-protocol-kusama'); + +// TODO: DEMONSTRATE API +``` diff --git a/packages/beacon-protocol-kusama/__tests__/beacon-protocol-substrate.test.js b/packages/beacon-protocol-kusama/__tests__/beacon-protocol-substrate.test.js new file mode 100644 index 000000000..ad3e6b19b --- /dev/null +++ b/packages/beacon-protocol-kusama/__tests__/beacon-protocol-substrate.test.js @@ -0,0 +1,7 @@ +'use strict' + +const beaconProtocolkusama = require('..') + +describe('@airgap/beacon-protocol-kusama', () => { + it('needs tests') +}) diff --git a/packages/beacon-protocol-substrate/package.json b/packages/beacon-protocol-kusama/package.json similarity index 93% rename from packages/beacon-protocol-substrate/package.json rename to packages/beacon-protocol-kusama/package.json index b2885dc4f..af755569b 100644 --- a/packages/beacon-protocol-substrate/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -1,5 +1,5 @@ { - "name": "@airgap/beacon-protocol-substrate", + "name": "@airgap/beacon-protocol-kusama", "version": "0.0.0", "description": "> TODO: description", "author": "Andreas Gassmann ", diff --git a/packages/beacon-protocol-substrate/src/index.ts b/packages/beacon-protocol-kusama/src/index.ts similarity index 100% rename from packages/beacon-protocol-substrate/src/index.ts rename to packages/beacon-protocol-kusama/src/index.ts diff --git a/packages/beacon-protocol-substrate/tsconfig.json b/packages/beacon-protocol-kusama/tsconfig.json similarity index 89% rename from packages/beacon-protocol-substrate/tsconfig.json rename to packages/beacon-protocol-kusama/tsconfig.json index 8d0c60072..bba0eef6b 100644 --- a/packages/beacon-protocol-substrate/tsconfig.json +++ b/packages/beacon-protocol-kusama/tsconfig.json @@ -6,7 +6,7 @@ "paths": { "@airgap/beacon-core": ["../beacon-core/src"], "@airgap/beacon-dapp": ["../beacon-dapp/src"], - "@airgap/beacon-protocol-substrate": ["../beacon-protocol-substrate/src"], + "@airgap/beacon-protocol-kusama": ["src"], "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], diff --git a/packages/beacon-protocol-substrate/README.md b/packages/beacon-protocol-substrate/README.md deleted file mode 100644 index 3b7e2c169..000000000 --- a/packages/beacon-protocol-substrate/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# `@airgap/beacon-protocol-substrate` - -> TODO: description - -## Usage - -``` -const beaconProtocolSubstrate = require('@airgap/beacon-protocol-substrate'); - -// TODO: DEMONSTRATE API -``` diff --git a/packages/beacon-protocol-substrate/__tests__/beacon-protocol-substrate.test.js b/packages/beacon-protocol-substrate/__tests__/beacon-protocol-substrate.test.js deleted file mode 100644 index 1f5840cda..000000000 --- a/packages/beacon-protocol-substrate/__tests__/beacon-protocol-substrate.test.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -const beaconProtocolSubstrate = require('..') - -describe('@airgap/beacon-protocol-substrate', () => { - it('needs tests') -}) diff --git a/packages/beacon-protocol-tezos/tsconfig.json b/packages/beacon-protocol-tezos/tsconfig.json index 8d0c60072..87305c535 100644 --- a/packages/beacon-protocol-tezos/tsconfig.json +++ b/packages/beacon-protocol-tezos/tsconfig.json @@ -6,7 +6,7 @@ "paths": { "@airgap/beacon-core": ["../beacon-core/src"], "@airgap/beacon-dapp": ["../beacon-dapp/src"], - "@airgap/beacon-protocol-substrate": ["../beacon-protocol-substrate/src"], + "@airgap/beacon-protocol-kusama": ["../beacon-protocol-kusama/src"], "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], diff --git a/packages/beacon-transport-postmessage/tsconfig.json b/packages/beacon-transport-postmessage/tsconfig.json index 8d0c60072..87305c535 100644 --- a/packages/beacon-transport-postmessage/tsconfig.json +++ b/packages/beacon-transport-postmessage/tsconfig.json @@ -6,7 +6,7 @@ "paths": { "@airgap/beacon-core": ["../beacon-core/src"], "@airgap/beacon-dapp": ["../beacon-dapp/src"], - "@airgap/beacon-protocol-substrate": ["../beacon-protocol-substrate/src"], + "@airgap/beacon-protocol-kusama": ["../beacon-protocol-kusama/src"], "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], diff --git a/packages/beacon-types/tsconfig.json b/packages/beacon-types/tsconfig.json index 8d0c60072..87305c535 100644 --- a/packages/beacon-types/tsconfig.json +++ b/packages/beacon-types/tsconfig.json @@ -6,7 +6,7 @@ "paths": { "@airgap/beacon-core": ["../beacon-core/src"], "@airgap/beacon-dapp": ["../beacon-dapp/src"], - "@airgap/beacon-protocol-substrate": ["../beacon-protocol-substrate/src"], + "@airgap/beacon-protocol-kusama": ["../beacon-protocol-kusama/src"], "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], diff --git a/packages/beacon-ui/tsconfig.json b/packages/beacon-ui/tsconfig.json index 8d0c60072..87305c535 100644 --- a/packages/beacon-ui/tsconfig.json +++ b/packages/beacon-ui/tsconfig.json @@ -6,7 +6,7 @@ "paths": { "@airgap/beacon-core": ["../beacon-core/src"], "@airgap/beacon-dapp": ["../beacon-dapp/src"], - "@airgap/beacon-protocol-substrate": ["../beacon-protocol-substrate/src"], + "@airgap/beacon-protocol-kusama": ["../beacon-protocol-kusama/src"], "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], diff --git a/packages/beacon-wallet/tsconfig.json b/packages/beacon-wallet/tsconfig.json index 8d0c60072..87305c535 100644 --- a/packages/beacon-wallet/tsconfig.json +++ b/packages/beacon-wallet/tsconfig.json @@ -6,7 +6,7 @@ "paths": { "@airgap/beacon-core": ["../beacon-core/src"], "@airgap/beacon-dapp": ["../beacon-dapp/src"], - "@airgap/beacon-protocol-substrate": ["../beacon-protocol-substrate/src"], + "@airgap/beacon-protocol-kusama": ["../beacon-protocol-kusama/src"], "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], From 012d14d5be5cc027f1c62931fa3431f0b4ce743c Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Tue, 3 Aug 2021 16:40:45 +0200 Subject: [PATCH 017/130] feat(multi-package): build --- package.json | 12 +++++++----- scripts/change-files-after-tests.ts | 4 ++-- scripts/change-files-before-tests.ts | 4 ++-- scripts/generate-wallet-list.ts | 8 ++++---- tsconfig.json | 12 +++++++++++- tsconfig.test.json | 3 ++- 6 files changed, 28 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 35dbbd794..f53931044 100644 --- a/package.json +++ b/package.json @@ -23,16 +23,16 @@ }, "scripts": { "prebuild": "ts-node --project tsconfig-cjs.json scripts/generate-wallet-list.ts", - "build": "npm run pretest && tsc -p tsconfig.json && tsc -p ./tsconfig-cjs.json && npm run browserify && npm run posttest && cp ./dist/walletbeacon.min.js ./examples/walletbeacon.min.js", - "browserify": "npm run pretest && tsc -p ./tsconfig-browserify.json && npm run posttest && browserify ./dist/browserify/index.js -s beacon | uglifyjs > ./dist/walletbeacon.min.js && rm -rf dist/browserify", + "build": "npm run pretest && lerna run tsc && npm run posttest && cp ./dist/walletbeacon.min.js ./examples/walletbeacon.min.js", + "browserify-build": "tsc -p ./tsconfig-browserify.json && browserify ./dist/browserify/index.js -s beacon | uglifyjs > ./dist/walletbeacon.min.js && rm -rf dist/browserify", "prettier": "prettier --write 'src/**/*' '**/src/**/*' 'docs/**/*.md' 'example-dapp.html' 'example-wallet.html'", "lint": "eslint 'src/**/*.ts'", "lint:fix": "eslint 'src/**/*.ts' --fix", "lint-ci": "eslint 'src/**/*.ts' -f json -o lintReport.json || true", - "pretest": "ts-node --project tsconfig.test.json scripts/change-files-before-tests.ts", + "pretest": "ts-node --project tsconfig-node.json scripts/change-files-before-tests.ts", "bootstrap": "lerna bootstrap", "test": "lerna run test --stream", - "posttest": " ts-node --project tsconfig.test.json scripts/change-files-after-tests.ts", + "posttest": " ts-node --project tsconfig-node.json scripts/change-files-after-tests.ts", "test-ci": "nyc --reporter=lcov npm test", "e2e": "ts-node --project tsconfig-node.json e2e/permission-request.ts", "e2e-prepare-ffmpeg": "ts-node --project tsconfig-node.json e2e/generate-ffmpeg-file.ts", @@ -44,7 +44,9 @@ "prepare": "npm run build", "check-version": "ts-node --project tsconfig-cjs.json scripts/check-sdk-version.ts", "typedoc": "typedoc src/index.ts --includeVersion --internal-aliases publicapi --external-aliases internalapi --logLevel Verbose --listInvalidSymbolLinks && ts-node --project tsconfig-cjs.json scripts/process-docs.ts", - "publish": "lerna run tsc && lerna publish" + "publish": "lerna run tsc && lerna publish", + "build-old": "npm run pretest && tsc -p tsconfig.json && tsc -p ./tsconfig-cjs.json && npm run browserify && npm run posttest && cp ./dist/walletbeacon.min.js ./examples/walletbeacon.min.js", + "browserify-old": "npm run pretest && tsc -p ./tsconfig-browserify.json && npm run posttest && browserify ./dist/browserify/index.js -s beacon | uglifyjs > ./dist/walletbeacon.min.js && rm -rf dist/browserify" }, "author": "Papers GmbH (https://papers.ch)", "dependencies": { diff --git a/scripts/change-files-after-tests.ts b/scripts/change-files-after-tests.ts index 8a7339ab0..247afa273 100644 --- a/scripts/change-files-after-tests.ts +++ b/scripts/change-files-after-tests.ts @@ -15,12 +15,12 @@ const replaceInFile: (file: string, src: string, dest: string) => void = ( */ replaceInFile( - './src/utils/qr.ts', + './packages/beacon-dapp/src/utils/qr.ts', `import * as qrcode from 'qrcode-generator'`, `import qrcode from 'qrcode-generator'` ) replaceInFile( - './src/utils/qr.ts', + './packages/beacon-dapp/src/utils/qr.ts', `const qr = (qrcode as any)(typeNumber, errorCorrectionLevel)`, `const qr = qrcode(typeNumber, errorCorrectionLevel)` ) diff --git a/scripts/change-files-before-tests.ts b/scripts/change-files-before-tests.ts index 37ec966bf..633f3aa8b 100644 --- a/scripts/change-files-before-tests.ts +++ b/scripts/change-files-before-tests.ts @@ -15,12 +15,12 @@ const replaceInFile: (file: string, src: string, dest: string) => void = ( */ replaceInFile( - './src/utils/qr.ts', + './packages/beacon-dapp/src/utils/qr.ts', `import qrcode from 'qrcode-generator'`, `import * as qrcode from 'qrcode-generator'` ) replaceInFile( - './src/utils/qr.ts', + './packages/beacon-dapp/src/utils/qr.ts', `const qr = qrcode(typeNumber, errorCorrectionLevel)`, `const qr = (qrcode as any)(typeNumber, errorCorrectionLevel)` ) diff --git a/scripts/generate-wallet-list.ts b/scripts/generate-wallet-list.ts index 718a1f4d8..42f2ca21d 100644 --- a/scripts/generate-wallet-list.ts +++ b/scripts/generate-wallet-list.ts @@ -7,7 +7,7 @@ import { App, AppBase, DesktopApp -} from '../packages/beacon-core/src/ui/alert/Pairing' +} from '../packages/beacon-dapp/src/ui/alert/Pairing' export const extensionList: ExtensionApp[] = [ { @@ -131,7 +131,7 @@ const convert = (list: T[]): Promise => { } const createLists = async () => { - const ALERT_DEST_DIR = path.join(PKG_DIR, 'src', 'ui', 'alert') + const ALERT_DEST_DIR = path.join(PKG_DIR, 'packages', 'beacon-dapp', 'src', 'ui', 'alert') const extensionListWithInlinedLogo = await convert(extensionList) const desktopListWithInlinedLogo = await convert(desktopList) @@ -173,7 +173,7 @@ const createLists = async () => { const createAlert = async () => { const ALERT_SRC_DIR = path.join(PKG_DIR, 'assets', 'alert') - const ALERT_DEST_DIR = path.join(PKG_DIR, 'src', 'ui', 'alert') + const ALERT_DEST_DIR = path.join(PKG_DIR, 'packages', 'beacon-dapp', 'src', 'ui', 'alert') const css = (await readFile(path.join(ALERT_SRC_DIR, 'alert.css'))).toString('utf-8') const pairCss = (await readFile(path.join(ALERT_SRC_DIR, 'alert-pair.css'))).toString('utf-8') @@ -205,7 +205,7 @@ const createAlert = async () => { const createToast = async () => { const TOAST_SRC_DIR = path.join(PKG_DIR, 'assets', 'toast') - const TOAST_DEST_DIR = path.join(PKG_DIR, 'src', 'ui', 'toast') + const TOAST_DEST_DIR = path.join(PKG_DIR, 'packages', 'beacon-dapp', 'src', 'ui', 'toast') const css = (await readFile(path.join(TOAST_SRC_DIR, 'toast.css'))).toString('utf-8') diff --git a/tsconfig.json b/tsconfig.json index cbb7da648..e842fa38d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,7 +11,17 @@ "sourceMap": true, "baseUrl": ".", "paths": { - "@airgap/beacon-sdk": ["./src/index.ts"] + "@airgap/beacon-sdk": ["./src/index.ts"], + "@airgap/beacon-core": ["./src/beacon-core/src"], + "@airgap/beacon-dapp": ["./src/beacon-dapp/src"], + "@airgap/beacon-protocol-kusama": ["./src/beacon-protocol-kusama/src"], + "@airgap/beacon-protocol-tezos": ["./src/beacon-protocol-tezos/src"], + "@airgap/beacon-transport-matrix": ["./src/beacon-transport-matrix/src"], + "@airgap/beacon-transport-postmessage": ["./src/beacon-transport-postmessage/src"], + "@airgap/beacon-types": ["./src/beacon-types/src"], + "@airgap/beacon-ui": ["./src/beacon-ui/src"], + "@airgap/beacon-utils": ["./src/beacon-utils/src"], + "@airgap/beacon-wallet": ["./src/beacon-wallet/src"] }, /* Strict Type-Checking Options */ "strict": true /* Enable all strict type-checking options. */, diff --git a/tsconfig.test.json b/tsconfig.test.json index 89587a2e0..c1d570b8c 100644 --- a/tsconfig.test.json +++ b/tsconfig.test.json @@ -4,5 +4,6 @@ "strict": false /* Can't get strict mode to work in tests because type imports don't work */, "noImplicitAny": false, "esModuleInterop": false - } + }, + "include": ["./scripts/*.ts"] } From 9c13a135c799a6dbf0db759608b251f8fc46d392 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Thu, 5 Aug 2021 13:53:25 +0200 Subject: [PATCH 018/130] fix(build): change imports --- package-lock.json | 166 ++++++++++++++++++ package.json | 10 ++ packages/beacon-core/package.json | 3 + packages/beacon-core/tsconfig.json | 11 +- packages/beacon-dapp/package.json | 4 + packages/beacon-dapp/tsconfig.json | 11 +- packages/beacon-protocol-kusama/tsconfig.json | 11 +- packages/beacon-protocol-tezos/tsconfig.json | 11 +- packages/beacon-transport-matrix/package.json | 3 + .../beacon-transport-matrix/tsconfig.json | 5 +- .../beacon-transport-postmessage/package.json | 4 + .../src}/PostMessageClient.ts | 5 +- .../src/PostMessageTransport.ts | 7 +- .../tsconfig.json | 11 +- packages/beacon-types/tsconfig.json | 11 +- packages/beacon-ui/tsconfig.json | 11 +- packages/beacon-utils/tsconfig.json | 6 +- packages/beacon-wallet/package.json | 4 + packages/beacon-wallet/tsconfig.json | 11 +- tsconfig.json | 38 ++-- 20 files changed, 235 insertions(+), 108 deletions(-) rename packages/{beacon-core/src/transports/clients => beacon-transport-postmessage/src}/PostMessageClient.ts (96%) diff --git a/package-lock.json b/package-lock.json index de669bef7..ab716c00b 100755 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,16 @@ "version": "2.3.1", "license": "MIT", "dependencies": { + "@airgap/beacon-core": "file:packages/beacon-core", + "@airgap/beacon-dapp": "file:packages/beacon-dapp", + "@airgap/beacon-protocol-kusama": "file:packages/beacon-protocol-kusama", + "@airgap/beacon-protocol-tezos": "file:packages/beacon-protocol-tezos", + "@airgap/beacon-transport-matrix": "file:packages/beacon-transport-matrix", + "@airgap/beacon-transport-postmessage": "file:packages/beacon-transport-postmessage", + "@airgap/beacon-types": "file:packages/beacon-types", + "@airgap/beacon-ui": "file:packages/beacon-ui", + "@airgap/beacon-utils": "file:packages/beacon-utils", + "@airgap/beacon-wallet": "file:packages/beacon-wallet", "@types/chrome": "0.0.115", "@types/libsodium-wrappers": "0.7.7", "axios": "0.21.1", @@ -57,6 +67,46 @@ "uglify-js": "3.9.4" } }, + "node_modules/@airgap/beacon-core": { + "resolved": "packages/beacon-core", + "link": true + }, + "node_modules/@airgap/beacon-dapp": { + "resolved": "packages/beacon-dapp", + "link": true + }, + "node_modules/@airgap/beacon-protocol-kusama": { + "resolved": "packages/beacon-protocol-kusama", + "link": true + }, + "node_modules/@airgap/beacon-protocol-tezos": { + "resolved": "packages/beacon-protocol-tezos", + "link": true + }, + "node_modules/@airgap/beacon-transport-matrix": { + "resolved": "packages/beacon-transport-matrix", + "link": true + }, + "node_modules/@airgap/beacon-transport-postmessage": { + "resolved": "packages/beacon-transport-postmessage", + "link": true + }, + "node_modules/@airgap/beacon-types": { + "resolved": "packages/beacon-types", + "link": true + }, + "node_modules/@airgap/beacon-ui": { + "resolved": "packages/beacon-ui", + "link": true + }, + "node_modules/@airgap/beacon-utils": { + "resolved": "packages/beacon-utils", + "link": true + }, + "node_modules/@airgap/beacon-wallet": { + "resolved": "packages/beacon-wallet", + "link": true + }, "node_modules/@babel/code-frame": { "version": "7.5.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", @@ -15514,9 +15564,125 @@ "engines": { "node": ">=6" } + }, + "packages/beacon-core": { + "name": "@airgap/beacon-core", + "version": "0.0.0", + "license": "ISC", + "dependencies": { + "@airgap/beacon-transport-postmessage": "*" + } + }, + "packages/beacon-dapp": { + "name": "@airgap/beacon-dapp", + "version": "0.0.0", + "license": "ISC", + "dependencies": { + "@airgap/beacon-core": "*", + "@airgap/beacon-transport-postmessage": "*" + } + }, + "packages/beacon-protocol-kusama": { + "name": "@airgap/beacon-protocol-kusama", + "version": "0.0.0", + "license": "ISC" + }, + "packages/beacon-protocol-tezos": { + "name": "@airgap/beacon-protocol-tezos", + "version": "0.0.0", + "license": "ISC" + }, + "packages/beacon-transport-matrix": { + "name": "@airgap/beacon-transport-matrix", + "version": "0.0.0", + "license": "ISC", + "dependencies": { + "@airgap/beacon-utils": "*" + } + }, + "packages/beacon-transport-postmessage": { + "name": "@airgap/beacon-transport-postmessage", + "version": "0.0.0", + "license": "ISC", + "dependencies": { + "@airgap/beacon-types": "*", + "@airgap/beacon-utils": "*" + } + }, + "packages/beacon-types": { + "name": "@airgap/beacon-types", + "version": "0.0.0", + "license": "ISC" + }, + "packages/beacon-ui": { + "name": "@airgap/beacon-ui", + "version": "0.0.0", + "license": "ISC" + }, + "packages/beacon-utils": { + "name": "@airgap/beacon-utils", + "version": "0.0.0", + "license": "ISC" + }, + "packages/beacon-wallet": { + "name": "@airgap/beacon-wallet", + "version": "0.0.0", + "license": "ISC", + "dependencies": { + "@airgap/beacon-core": "*", + "@airgap/beacon-transport-postmessage": "*" + } } }, "dependencies": { + "@airgap/beacon-core": { + "version": "file:packages/beacon-core", + "requires": { + "@airgap/beacon-transport-postmessage": "*" + } + }, + "@airgap/beacon-dapp": { + "version": "file:packages/beacon-dapp", + "requires": { + "@airgap/beacon-core": "*", + "@airgap/beacon-transport-postmessage": "*" + } + }, + "@airgap/beacon-protocol-kusama": { + "version": "file:packages/beacon-protocol-kusama" + }, + "@airgap/beacon-protocol-tezos": { + "version": "file:packages/beacon-protocol-tezos" + }, + "@airgap/beacon-transport-matrix": { + "version": "file:packages/beacon-transport-matrix", + "requires": { + "@airgap/beacon-utils": "*" + } + }, + "@airgap/beacon-transport-postmessage": { + "version": "file:packages/beacon-transport-postmessage", + "requires": { + "@airgap/beacon-types": "*", + "@airgap/beacon-utils": "*" + } + }, + "@airgap/beacon-types": { + "version": "file:packages/beacon-types" + }, + "@airgap/beacon-ui": { + "version": "file:packages/beacon-ui" + }, + "@airgap/beacon-utils": { + "version": "file:packages/beacon-utils" + }, + "@airgap/beacon-wallet": { + "version": "file:packages/beacon-wallet", + "requires": { + "@airgap/beacon-core": "*", + "@airgap/beacon-transport-postmessage": "*" + } + }, "@babel/code-frame": { "version": "7.5.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", diff --git a/package.json b/package.json index f53931044..6350fa009 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,16 @@ }, "author": "Papers GmbH (https://papers.ch)", "dependencies": { + "@airgap/beacon-core": "file:packages/beacon-core", + "@airgap/beacon-dapp": "file:packages/beacon-dapp", + "@airgap/beacon-protocol-kusama": "file:packages/beacon-protocol-kusama", + "@airgap/beacon-protocol-tezos": "file:packages/beacon-protocol-tezos", + "@airgap/beacon-transport-matrix": "file:packages/beacon-transport-matrix", + "@airgap/beacon-transport-postmessage": "file:packages/beacon-transport-postmessage", + "@airgap/beacon-types": "file:packages/beacon-types", + "@airgap/beacon-ui": "file:packages/beacon-ui", + "@airgap/beacon-utils": "file:packages/beacon-utils", + "@airgap/beacon-wallet": "file:packages/beacon-wallet", "@types/chrome": "0.0.115", "@types/libsodium-wrappers": "0.7.7", "axios": "0.21.1", diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 905b7f157..d1ae6ace5 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -26,5 +26,8 @@ }, "bugs": { "url": "https://github.com/airgap-it/beacon-sdk/issues" + }, + "dependencies": { + "@airgap/beacon-transport-postmessage": "*" } } diff --git a/packages/beacon-core/tsconfig.json b/packages/beacon-core/tsconfig.json index 87305c535..8186cbd1c 100644 --- a/packages/beacon-core/tsconfig.json +++ b/packages/beacon-core/tsconfig.json @@ -4,16 +4,7 @@ "outDir": "./lib", "baseUrl": ".", "paths": { - "@airgap/beacon-core": ["../beacon-core/src"], - "@airgap/beacon-dapp": ["../beacon-dapp/src"], - "@airgap/beacon-protocol-kusama": ["../beacon-protocol-kusama/src"], - "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], - "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], - "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], - "@airgap/beacon-types": ["../beacon-types/src"], - "@airgap/beacon-ui": ["../beacon-ui/src"], - "@airgap/beacon-utils": ["../beacon-utils/src"], - "@airgap/beacon-wallet": ["../beacon-wallet/src"] + "@airgap/beacon-core": ["./src"] } }, "include": ["./src"] diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index db083af42..84404c131 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -26,5 +26,9 @@ }, "bugs": { "url": "https://github.com/airgap-it/beacon-sdk/issues" + }, + "dependencies": { + "@airgap/beacon-core": "*", + "@airgap/beacon-transport-postmessage": "*" } } diff --git a/packages/beacon-dapp/tsconfig.json b/packages/beacon-dapp/tsconfig.json index 87305c535..d0b636a84 100644 --- a/packages/beacon-dapp/tsconfig.json +++ b/packages/beacon-dapp/tsconfig.json @@ -4,16 +4,7 @@ "outDir": "./lib", "baseUrl": ".", "paths": { - "@airgap/beacon-core": ["../beacon-core/src"], - "@airgap/beacon-dapp": ["../beacon-dapp/src"], - "@airgap/beacon-protocol-kusama": ["../beacon-protocol-kusama/src"], - "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], - "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], - "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], - "@airgap/beacon-types": ["../beacon-types/src"], - "@airgap/beacon-ui": ["../beacon-ui/src"], - "@airgap/beacon-utils": ["../beacon-utils/src"], - "@airgap/beacon-wallet": ["../beacon-wallet/src"] + "@airgap/beacon-dapp": ["./src"] } }, "include": ["./src"] diff --git a/packages/beacon-protocol-kusama/tsconfig.json b/packages/beacon-protocol-kusama/tsconfig.json index bba0eef6b..94a007515 100644 --- a/packages/beacon-protocol-kusama/tsconfig.json +++ b/packages/beacon-protocol-kusama/tsconfig.json @@ -4,16 +4,7 @@ "outDir": "./lib", "baseUrl": ".", "paths": { - "@airgap/beacon-core": ["../beacon-core/src"], - "@airgap/beacon-dapp": ["../beacon-dapp/src"], - "@airgap/beacon-protocol-kusama": ["src"], - "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], - "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], - "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], - "@airgap/beacon-types": ["../beacon-types/src"], - "@airgap/beacon-ui": ["../beacon-ui/src"], - "@airgap/beacon-utils": ["../beacon-utils/src"], - "@airgap/beacon-wallet": ["../beacon-wallet/src"] + "@airgap/beacon-protocol-kusama": ["./src"] } }, "include": ["./src"] diff --git a/packages/beacon-protocol-tezos/tsconfig.json b/packages/beacon-protocol-tezos/tsconfig.json index 87305c535..92cdfca0e 100644 --- a/packages/beacon-protocol-tezos/tsconfig.json +++ b/packages/beacon-protocol-tezos/tsconfig.json @@ -4,16 +4,7 @@ "outDir": "./lib", "baseUrl": ".", "paths": { - "@airgap/beacon-core": ["../beacon-core/src"], - "@airgap/beacon-dapp": ["../beacon-dapp/src"], - "@airgap/beacon-protocol-kusama": ["../beacon-protocol-kusama/src"], - "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], - "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], - "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], - "@airgap/beacon-types": ["../beacon-types/src"], - "@airgap/beacon-ui": ["../beacon-ui/src"], - "@airgap/beacon-utils": ["../beacon-utils/src"], - "@airgap/beacon-wallet": ["../beacon-wallet/src"] + "@airgap/beacon-protocol-tezos": ["./src"] } }, "include": ["./src"] diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index b887f5138..f5c7b7f20 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -26,5 +26,8 @@ }, "bugs": { "url": "https://github.com/airgap-it/beacon-sdk/issues" + }, + "dependencies": { + "@airgap/beacon-utils": "*" } } diff --git a/packages/beacon-transport-matrix/tsconfig.json b/packages/beacon-transport-matrix/tsconfig.json index f189833ff..775a14714 100644 --- a/packages/beacon-transport-matrix/tsconfig.json +++ b/packages/beacon-transport-matrix/tsconfig.json @@ -4,10 +4,7 @@ "outDir": "./lib", "baseUrl": ".", "paths": { - "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], - "@airgap/beacon-core": ["../beacon-core/src"], - "@airgap/beacon-types": ["../beacon-types/src"], - "@airgap/beacon-utils": ["../beacon-utils/src"] + "@airgap/beacon-transport-matrix": ["./src"] } }, "include": ["./src"] diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 2a45b26e0..a204f59ae 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -26,5 +26,9 @@ }, "bugs": { "url": "https://github.com/airgap-it/beacon-sdk/issues" + }, + "dependencies": { + "@airgap/beacon-utils": "*", + "@airgap/beacon-types": "*" } } diff --git a/packages/beacon-core/src/transports/clients/PostMessageClient.ts b/packages/beacon-transport-postmessage/src/PostMessageClient.ts similarity index 96% rename from packages/beacon-core/src/transports/clients/PostMessageClient.ts rename to packages/beacon-transport-postmessage/src/PostMessageClient.ts index e00e35466..eea9fc968 100644 --- a/packages/beacon-core/src/transports/clients/PostMessageClient.ts +++ b/packages/beacon-transport-postmessage/src/PostMessageClient.ts @@ -1,10 +1,7 @@ import * as sodium from 'libsodium-wrappers' -import { windowRef } from '../../MockWindow' -import { Serializer } from '../..' +import { windowRef, Serializer, getSenderId, MessageBasedClient } from '@airgap/beacon-core' import { openCryptobox } from '@airgap/beacon-utils' -import { getSenderId } from '../../utils/get-sender-id' -import { MessageBasedClient } from './MessageBasedClient' import { ExtensionMessage, ExtensionMessageTarget, diff --git a/packages/beacon-transport-postmessage/src/PostMessageTransport.ts b/packages/beacon-transport-postmessage/src/PostMessageTransport.ts index ef3eeb89f..97a6b0ef2 100644 --- a/packages/beacon-transport-postmessage/src/PostMessageTransport.ts +++ b/packages/beacon-transport-postmessage/src/PostMessageTransport.ts @@ -1,7 +1,4 @@ import * as sodium from 'libsodium-wrappers' -import { windowRef } from '../../beacon-core/src/MockWindow' -import { Logger } from '../../beacon-core/src/utils/Logger' -import { PeerManager } from '../../beacon-core/src/managers/PeerManager' import { ExposedPromise } from '@airgap/beacon-utils' import { @@ -17,8 +14,8 @@ import { Origin } from '@airgap/beacon-types' import { Storage } from '@airgap/beacon-types' -import { PostMessageClient } from '../../beacon-core/src/transports/clients/PostMessageClient' -import { Transport } from '../../beacon-core/src/transports/Transport' +import { Transport, PeerManager, Logger, windowRef } from '@airgap/beacon-core' +import { PostMessageClient } from './PostMessageClient' const logger = new Logger('PostMessageTransport') diff --git a/packages/beacon-transport-postmessage/tsconfig.json b/packages/beacon-transport-postmessage/tsconfig.json index 87305c535..03761bda3 100644 --- a/packages/beacon-transport-postmessage/tsconfig.json +++ b/packages/beacon-transport-postmessage/tsconfig.json @@ -4,16 +4,7 @@ "outDir": "./lib", "baseUrl": ".", "paths": { - "@airgap/beacon-core": ["../beacon-core/src"], - "@airgap/beacon-dapp": ["../beacon-dapp/src"], - "@airgap/beacon-protocol-kusama": ["../beacon-protocol-kusama/src"], - "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], - "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], - "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], - "@airgap/beacon-types": ["../beacon-types/src"], - "@airgap/beacon-ui": ["../beacon-ui/src"], - "@airgap/beacon-utils": ["../beacon-utils/src"], - "@airgap/beacon-wallet": ["../beacon-wallet/src"] + "@airgap/beacon-transport-postmessage": ["./src"] } }, "include": ["./src"] diff --git a/packages/beacon-types/tsconfig.json b/packages/beacon-types/tsconfig.json index 87305c535..9af4ffb66 100644 --- a/packages/beacon-types/tsconfig.json +++ b/packages/beacon-types/tsconfig.json @@ -4,16 +4,7 @@ "outDir": "./lib", "baseUrl": ".", "paths": { - "@airgap/beacon-core": ["../beacon-core/src"], - "@airgap/beacon-dapp": ["../beacon-dapp/src"], - "@airgap/beacon-protocol-kusama": ["../beacon-protocol-kusama/src"], - "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], - "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], - "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], - "@airgap/beacon-types": ["../beacon-types/src"], - "@airgap/beacon-ui": ["../beacon-ui/src"], - "@airgap/beacon-utils": ["../beacon-utils/src"], - "@airgap/beacon-wallet": ["../beacon-wallet/src"] + "@airgap/beacon-types": ["./src"] } }, "include": ["./src"] diff --git a/packages/beacon-ui/tsconfig.json b/packages/beacon-ui/tsconfig.json index 87305c535..b09eb8ff9 100644 --- a/packages/beacon-ui/tsconfig.json +++ b/packages/beacon-ui/tsconfig.json @@ -4,16 +4,7 @@ "outDir": "./lib", "baseUrl": ".", "paths": { - "@airgap/beacon-core": ["../beacon-core/src"], - "@airgap/beacon-dapp": ["../beacon-dapp/src"], - "@airgap/beacon-protocol-kusama": ["../beacon-protocol-kusama/src"], - "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], - "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], - "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], - "@airgap/beacon-types": ["../beacon-types/src"], - "@airgap/beacon-ui": ["../beacon-ui/src"], - "@airgap/beacon-utils": ["../beacon-utils/src"], - "@airgap/beacon-wallet": ["../beacon-wallet/src"] + "@airgap/beacon-ui": ["./src"] } }, "include": ["./src"] diff --git a/packages/beacon-utils/tsconfig.json b/packages/beacon-utils/tsconfig.json index da67782ff..3bdf78aed 100644 --- a/packages/beacon-utils/tsconfig.json +++ b/packages/beacon-utils/tsconfig.json @@ -1,7 +1,11 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib" + "outDir": "./lib", + "baseUrl": ".", + "paths": { + "@airgap/beacon-utils": ["./src"] + } }, "include": ["./src"] } diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index d30843890..356060c3b 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -26,5 +26,9 @@ }, "bugs": { "url": "https://github.com/airgap-it/beacon-sdk/issues" + }, + "dependencies": { + "@airgap/beacon-core": "*", + "@airgap/beacon-transport-postmessage": "*" } } diff --git a/packages/beacon-wallet/tsconfig.json b/packages/beacon-wallet/tsconfig.json index 87305c535..5ba96e30b 100644 --- a/packages/beacon-wallet/tsconfig.json +++ b/packages/beacon-wallet/tsconfig.json @@ -4,16 +4,7 @@ "outDir": "./lib", "baseUrl": ".", "paths": { - "@airgap/beacon-core": ["../beacon-core/src"], - "@airgap/beacon-dapp": ["../beacon-dapp/src"], - "@airgap/beacon-protocol-kusama": ["../beacon-protocol-kusama/src"], - "@airgap/beacon-protocol-tezos": ["../beacon-protocol-tezos/src"], - "@airgap/beacon-transport-matrix": ["../beacon-transport-matrix/src"], - "@airgap/beacon-transport-postmessage": ["../beacon-transport-postmessage/src"], - "@airgap/beacon-types": ["../beacon-types/src"], - "@airgap/beacon-ui": ["../beacon-ui/src"], - "@airgap/beacon-utils": ["../beacon-utils/src"], - "@airgap/beacon-wallet": ["../beacon-wallet/src"] + "@airgap/beacon-wallet": ["./src"] } }, "include": ["./src"] diff --git a/tsconfig.json b/tsconfig.json index e842fa38d..3b12370f0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,19 +10,6 @@ "typeRoots": ["./node_modules/@types", "./src/typings"], "sourceMap": true, "baseUrl": ".", - "paths": { - "@airgap/beacon-sdk": ["./src/index.ts"], - "@airgap/beacon-core": ["./src/beacon-core/src"], - "@airgap/beacon-dapp": ["./src/beacon-dapp/src"], - "@airgap/beacon-protocol-kusama": ["./src/beacon-protocol-kusama/src"], - "@airgap/beacon-protocol-tezos": ["./src/beacon-protocol-tezos/src"], - "@airgap/beacon-transport-matrix": ["./src/beacon-transport-matrix/src"], - "@airgap/beacon-transport-postmessage": ["./src/beacon-transport-postmessage/src"], - "@airgap/beacon-types": ["./src/beacon-types/src"], - "@airgap/beacon-ui": ["./src/beacon-ui/src"], - "@airgap/beacon-utils": ["./src/beacon-utils/src"], - "@airgap/beacon-wallet": ["./src/beacon-wallet/src"] - }, /* Strict Type-Checking Options */ "strict": true /* Enable all strict type-checking options. */, "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */, @@ -38,5 +25,28 @@ "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */ }, - "include": ["src/**/*.ts"] + "paths": { + "beacon-core": ["packages/beacon-core/lib/beacon-core", "packages/beacon-core/lib"], + "beacon-dapp": ["packages/beacon-dapp/lib/beacon-dapp", "packages/beacon-dapp/lib"], + "beacon-protocol-kusama": [ + "packages/beacon-protocol-kusama/lib/beacon-protocol-kusama", + "packages/beacon-protocol-kusama/lib" + ], + "beacon-protocol-tezos": [ + "packages/beacon-protocol-tezos/lib/beacon-protocol-tezos", + "packages/beacon-protocol-tezos/lib" + ], + "beacon-transport-matrix": [ + "packages/beacon-transport-matrix/lib/beacon-transport-matrix", + "packages/beacon-transport-matrix/lib" + ], + "beacon-transport-postmessage": [ + "packages/beacon-transport-postmessage/lib/beacon-transport-postmessage", + "packages/beacon-transport-postmessage/lib" + ], + "beacon-types": ["packages/beacon-types/lib/beacon-types", "packages/beacon-types/lib"], + "beacon-ui": ["packages/beacon-ui/lib/beacon-ui", "packages/beacon-ui/lib"], + "beacon-utils": ["packages/beacon-utils/lib/beacon-utils", "packages/beacon-utils/lib"], + "beacon-wallet": ["packages/beacon-wallet/lib/beacon-wallet", "packages/beacon-wallet/lib"] + } } From 78efdf77ba13de6c8672608b46114a5368e66d4a Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 9 Aug 2021 13:59:48 +0200 Subject: [PATCH 019/130] fix(): add beacon-core package --- packages/beacon-transport-postmessage/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index a204f59ae..58e60de09 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -28,6 +28,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { + "@airgap/beacon-core": "*", "@airgap/beacon-utils": "*", "@airgap/beacon-types": "*" } From 8319094a85c29c139701990ae1da54685bfd25c5 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 9 Aug 2021 14:02:14 +0200 Subject: [PATCH 020/130] fix(): add beacon-core --- packages/beacon-transport-matrix/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index f5c7b7f20..b59fbb542 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -28,6 +28,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { + "@airgap/beacon-core": "*", "@airgap/beacon-utils": "*" } } From 6e6d4a2ae160c9c8b1db2fe368c2f9d3a21124a7 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 9 Aug 2021 14:08:29 +0200 Subject: [PATCH 021/130] fix(ci): remove dependency --- packages/beacon-core/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index d1ae6ace5..b5acf12d4 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -28,6 +28,6 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-transport-postmessage": "*" + "@airgap/beacon-types": "*" } } From 5655fe3c13179fb09d99bf2e85dfcdc210089563 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 9 Aug 2021 14:11:00 +0200 Subject: [PATCH 022/130] fix(ci): add beacon-utils --- packages/beacon-core/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index b5acf12d4..904359ac7 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -28,6 +28,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { + "@airgap/beacon-utils": "*", "@airgap/beacon-types": "*" } } From 92e08e644f9f67b7c276aa969e96bb77e5dceb0f Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 9 Aug 2021 15:15:14 +0200 Subject: [PATCH 023/130] fix(ci): remove minify --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6350fa009..400de2302 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ }, "scripts": { "prebuild": "ts-node --project tsconfig-cjs.json scripts/generate-wallet-list.ts", - "build": "npm run pretest && lerna run tsc && npm run posttest && cp ./dist/walletbeacon.min.js ./examples/walletbeacon.min.js", + "build": "npm run pretest && lerna run tsc && npm run posttest", "browserify-build": "tsc -p ./tsconfig-browserify.json && browserify ./dist/browserify/index.js -s beacon | uglifyjs > ./dist/walletbeacon.min.js && rm -rf dist/browserify", "prettier": "prettier --write 'src/**/*' '**/src/**/*' 'docs/**/*.md' 'example-dapp.html' 'example-wallet.html'", "lint": "eslint 'src/**/*.ts'", From 98c5bb815bf6c37127c846ea4bc4a86cfed6f683 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 9 Aug 2021 15:21:25 +0200 Subject: [PATCH 024/130] chore(release): v0.0.1-beta.0 --- lerna.json | 2 +- package.json | 7 ++++++- packages/beacon-core/package.json | 6 +++--- packages/beacon-dapp/package.json | 6 +++--- packages/beacon-protocol-kusama/package.json | 2 +- packages/beacon-protocol-tezos/package.json | 2 +- packages/beacon-transport-matrix/package.json | 6 +++--- packages/beacon-transport-postmessage/package.json | 8 ++++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 2 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 6 +++--- 12 files changed, 28 insertions(+), 23 deletions(-) diff --git a/lerna.json b/lerna.json index f08f2573c..ac0d7c5d2 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "0.0.0" + "version": "0.0.1-beta.0" } diff --git a/package.json b/package.json index 400de2302..ec89c77bb 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,12 @@ "typedoc": "typedoc src/index.ts --includeVersion --internal-aliases publicapi --external-aliases internalapi --logLevel Verbose --listInvalidSymbolLinks && ts-node --project tsconfig-cjs.json scripts/process-docs.ts", "publish": "lerna run tsc && lerna publish", "build-old": "npm run pretest && tsc -p tsconfig.json && tsc -p ./tsconfig-cjs.json && npm run browserify && npm run posttest && cp ./dist/walletbeacon.min.js ./examples/walletbeacon.min.js", - "browserify-old": "npm run pretest && tsc -p ./tsconfig-browserify.json && npm run posttest && browserify ./dist/browserify/index.js -s beacon | uglifyjs > ./dist/walletbeacon.min.js && rm -rf dist/browserify" + "browserify-old": "npm run pretest && tsc -p ./tsconfig-browserify.json && npm run posttest && browserify ./dist/browserify/index.js -s beacon | uglifyjs > ./dist/walletbeacon.min.js && rm -rf dist/browserify", + "bump:version": "lerna version --no-git-tag-version", + "bump:major": "lerna version --no-git-tag-version major --yes", + "bump:minor": "lerna version --no-git-tag-version minor --yes", + "bump:patch": "lerna version --no-git-tag-version patch --yes", + "bump:beta": "lerna version --no-git-tag-version prerelease --preid beta --yes" }, "author": "Papers GmbH (https://papers.ch)", "dependencies": { diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 904359ac7..3ed9f5333 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "0.0.0", + "version": "0.0.1-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -28,7 +28,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-utils": "*", - "@airgap/beacon-types": "*" + "@airgap/beacon-types": "^0.0.1-beta.0", + "@airgap/beacon-utils": "^0.0.1-beta.0" } } diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 84404c131..d4058815a 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "0.0.0", + "version": "0.0.1-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -28,7 +28,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "*", - "@airgap/beacon-transport-postmessage": "*" + "@airgap/beacon-core": "^0.0.1-beta.0", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.0" } } diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-protocol-kusama/package.json index af755569b..4809ed3a8 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.0", + "version": "0.0.1-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index 9c4507b3b..25725c609 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.0", + "version": "0.0.1-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index b59fbb542..fe902cec2 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.0", + "version": "0.0.1-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -28,7 +28,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "*", - "@airgap/beacon-utils": "*" + "@airgap/beacon-core": "^0.0.1-beta.0", + "@airgap/beacon-utils": "^0.0.1-beta.0" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 58e60de09..294bb802e 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.0", + "version": "0.0.1-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -28,8 +28,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "*", - "@airgap/beacon-utils": "*", - "@airgap/beacon-types": "*" + "@airgap/beacon-core": "^0.0.1-beta.0", + "@airgap/beacon-types": "^0.0.1-beta.0", + "@airgap/beacon-utils": "^0.0.1-beta.0" } } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 767e9712f..59a0b2d93 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "0.0.0", + "version": "0.0.1-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index f0f4ae014..00f0c9bad 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "0.0.0", + "version": "0.0.1-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 367bc9e84..117f77367 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "0.0.0", + "version": "0.0.1-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 356060c3b..772a6e987 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "0.0.0", + "version": "0.0.1-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -28,7 +28,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "*", - "@airgap/beacon-transport-postmessage": "*" + "@airgap/beacon-core": "^0.0.1-beta.0", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.0" } } From 40d1481893ea61f54b54a6fcf40e57452a26531b Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 9 Aug 2021 15:25:34 +0200 Subject: [PATCH 025/130] feat(ci): publish script --- npm-ci-publish-beta-only.sh | 7 +++++-- npm-ci-publish.sh | 9 ++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/npm-ci-publish-beta-only.sh b/npm-ci-publish-beta-only.sh index f091e7246..1c598be72 100644 --- a/npm-ci-publish-beta-only.sh +++ b/npm-ci-publish-beta-only.sh @@ -1,14 +1,17 @@ #!/bin/bash echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > .npmrc -VERSION=$(node -pe 'JSON.parse(process.argv[1]).version.indexOf("beta")' "$(cat package.json)") +git update-index --assume-unchanged npm-ci-publish.sh +git update-index --assume-unchanged npm-ci-publish-beta-only.sh + +VERSION=$(node -pe 'JSON.parse(process.argv[1]).version.indexOf("beta")' "$(cat lerna.json)") if [ "$VERSION" = "-1" ] then echo "cannot publish non-beta version" else echo "version is beta, using --tag next" - npm publish --access public --tag next + npx lerna publish from-package --contents dist --dist-tag next --yes fi rm .npmrc \ No newline at end of file diff --git a/npm-ci-publish.sh b/npm-ci-publish.sh index 0fa6c4632..8d4745a49 100755 --- a/npm-ci-publish.sh +++ b/npm-ci-publish.sh @@ -1,14 +1,17 @@ #!/bin/bash echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > .npmrc -VERSION=$(node -pe 'JSON.parse(process.argv[1]).version.indexOf("beta")' "$(cat package.json)") +git update-index --assume-unchanged npm-ci-publish.sh +git update-index --assume-unchanged npm-ci-publish-beta-only.sh + +VERSION=$(node -pe 'JSON.parse(process.argv[1]).version.indexOf("beta")' "$(cat lerna.json)") if [ "$VERSION" = "-1" ] then - npm publish --access public + npx lerna publish from-package --contents dist --yes else echo "version is beta, using --tag next" - npm publish --access public --tag next + npx lerna publish from-package --contents dist --dist-tag next --yes fi rm .npmrc \ No newline at end of file From c2bdb02e38557964e49b7e7ed452912fbe1c7db4 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 9 Aug 2021 15:55:00 +0200 Subject: [PATCH 026/130] fix(ci): ignore generated files --- npm-ci-publish.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/npm-ci-publish.sh b/npm-ci-publish.sh index 8d4745a49..a053822c9 100755 --- a/npm-ci-publish.sh +++ b/npm-ci-publish.sh @@ -4,6 +4,11 @@ echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > .npmrc git update-index --assume-unchanged npm-ci-publish.sh git update-index --assume-unchanged npm-ci-publish-beta-only.sh +# Generated files +git update-index --assume-unchanged packages/beacon-dapp/src/ui/alert/alert-templates.ts +git update-index --assume-unchanged packages/beacon-dapp/src/ui/alert/wallet-lists.ts +git update-index --assume-unchanged packages/beacon-dapp/src/ui/toast/toast-templates.ts + VERSION=$(node -pe 'JSON.parse(process.argv[1]).version.indexOf("beta")' "$(cat lerna.json)") if [ "$VERSION" = "-1" ] From faf774e21d811b1fd3ff291f6927c3113cc16a84 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 9 Aug 2021 15:59:35 +0200 Subject: [PATCH 027/130] feat(ci): ignore generated files --- .gitignore | 6 +++--- npm-ci-publish.sh | 5 ----- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 58b8559b3..83577177a 100644 --- a/.gitignore +++ b/.gitignore @@ -76,6 +76,6 @@ examples/walletbeacon.min.js lib docs -src/ui/alert/alert-templates.ts -src/ui/toast/toast-templates.ts -src/ui/alert/wallet-lists.ts \ No newline at end of file +packages/beacon-dapp/src/ui/alert/alert-templates.ts +packages/beacon-dapp/src/ui/toast/toast-templates.ts +packages/beacon-dapp/src/ui/alert/wallet-lists.ts \ No newline at end of file diff --git a/npm-ci-publish.sh b/npm-ci-publish.sh index a053822c9..8d4745a49 100755 --- a/npm-ci-publish.sh +++ b/npm-ci-publish.sh @@ -4,11 +4,6 @@ echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > .npmrc git update-index --assume-unchanged npm-ci-publish.sh git update-index --assume-unchanged npm-ci-publish-beta-only.sh -# Generated files -git update-index --assume-unchanged packages/beacon-dapp/src/ui/alert/alert-templates.ts -git update-index --assume-unchanged packages/beacon-dapp/src/ui/alert/wallet-lists.ts -git update-index --assume-unchanged packages/beacon-dapp/src/ui/toast/toast-templates.ts - VERSION=$(node -pe 'JSON.parse(process.argv[1]).version.indexOf("beta")' "$(cat lerna.json)") if [ "$VERSION" = "-1" ] From 5b214e666e2c6429031b6e40d0ea72b4e8d0e881 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 9 Aug 2021 16:02:09 +0200 Subject: [PATCH 028/130] fix(ci): remove ignored files --- .../src/ui/alert/alert-templates.ts | 15 ---- .../beacon-dapp/src/ui/alert/wallet-lists.ts | 76 ------------------- .../src/ui/toast/toast-templates.ts | 10 --- 3 files changed, 101 deletions(-) delete mode 100644 packages/beacon-dapp/src/ui/alert/alert-templates.ts delete mode 100644 packages/beacon-dapp/src/ui/alert/wallet-lists.ts delete mode 100644 packages/beacon-dapp/src/ui/toast/toast-templates.ts diff --git a/packages/beacon-dapp/src/ui/alert/alert-templates.ts b/packages/beacon-dapp/src/ui/alert/alert-templates.ts deleted file mode 100644 index 3d6da9974..000000000 --- a/packages/beacon-dapp/src/ui/alert/alert-templates.ts +++ /dev/null @@ -1,15 +0,0 @@ -export const alertTemplates = { - container: - '
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

\n {{callToAction}}\n

\n\n {{main}}\n\n
\n {{buttons}}\n
\n
\n
\n
\n
\n
\n', - default: { - html: '
\n {{body}}\n
\n', - css: - ':host {\n --animation-duration: 300ms;\n all: initial;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n.animated {\n animation-duration: var(--animation-duration);\n animation-fill-mode: both;\n}\n\n.fadeIn {\n animation-name: fadeIn;\n}\n\n.fadeOut {\n animation-name: fadeOut;\n}\n\n.beacon-modal__wrapper {\n position: relative;\n top: 0;\n display: inline-block;\n z-index: 2147483000;\n max-width: 500px;\n width: 80%;\n padding: 24px;\n}\n\n@media (min-height: 700px) {\n .beacon-modal__wrapper {\n top: 50%;\n transform: translateY(-50%);\n }\n}\n\n.theme__light .beacon-modal__base,\n.theme__light .beacon-modal__close__wrapper {\n background: #fff;\n}\n\n.theme__dark .beacon-modal__base,\n.theme__dark .beacon-modal__close__wrapper {\n background: #27334c;\n}\n\n.beacon-modal__base,\n.beacon-modal__close__wrapper {\n box-shadow: 0 12px 24px 0 rgba(0, 0, 0, 0.1);\n}\n\n.beacon-modal__base {\n margin: 0 auto;\n border-radius: 32px;\n overflow: hidden;\n}\n\n.beacon-modal__header {\n padding: 16px 0;\n width: 100%;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n}\n\n.beacon-modal__headerLogo {\n width: 100%;\n max-width: 320px;\n margin: 20px auto;\n height: 100%;\n}\n\na,\nbutton {\n cursor: pointer;\n}\n\n.beacon-modal__close__wrapper {\n position: absolute;\n top: 44px;\n right: 24px;\n z-index: 10000;\n cursor: pointer;\n border-radius: 100%;\n}\n\n.beacon-modal__close__icon {\n width: 16px;\n height: 16px;\n position: relative;\n top: 0;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n transform: rotate(45deg);\n margin: 8px;\n}\n\n.beacon-modal__close__line1 {\n position: absolute;\n width: 90%;\n}\n\n.beacon-modal__close__line2 {\n position: absolute;\n width: 90%;\n transform: rotate(90deg);\n}\n\n.theme__light .beacon-modal__close__line2,\n.theme__light .beacon-modal__close__line1 {\n border: 1px solid #000;\n}\n\n.theme__dark .beacon-modal__close__line2,\n.theme__dark .beacon-modal__close__line1 {\n border: 1px solid #fff;\n}\n\n.beacon-alert__base {\n position: fixed;\n overflow-y: scroll;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 2147482999;\n background-color: rgb(17 17 17 / 0.84);\n text-align: center;\n -ms-overflow-style: none;\n scrollbar-width: none;\n font-family: Roboto, Helvetica, sans-serif;\n}\n\n.beacon-alert__base::-webkit-scrollbar {\n display: none;\n}\n\n.beacon-alert__title {\n text-align: center;\n}\n\n.beacon-alert__text,\n.beacon-alert__title {\n margin: 0 auto;\n padding: 0 0 24px;\n}\n\n.margin__bottom {\n margin-bottom: 16px;\n}\n\n.beacon-alert__title {\n font-size: 18px;\n}\n\n.theme__light .beacon-alert__title {\n color: #3b3d40;\n}\n\n.theme__dark .beacon-alert__title,\n.theme__dark .beacon-alert__text {\n color: #7c99d6;\n}\n\n.beacon-alert__text {\n color: #000;\n font-size: 14px;\n}\n\n.beacon-modal__button,\n.beacon-modal__button--outline {\n height: 36px;\n font-size: 14px;\n letter-spacing: 0.84px;\n margin-bottom: 4px;\n margin-inline-end: 2px;\n margin-inline-start: 2px;\n margin-left: 2px;\n margin-right: 2px;\n margin-top: 4px;\n padding-inline-end: 15.4px;\n padding-inline-start: 15.4px;\n padding-left: 15.4px;\n padding-right: 15.4px;\n overflow-wrap: break-word;\n pointer-events: auto;\n text-align: center;\n border-radius: 4px;\n border: 2px solid #3880ff;\n}\n\n.beacon-modal__button {\n background: #3880ff;\n color: #fff;\n}\n\n.beacon-modal__button--outline {\n background: #fff;\n color: #444444;\n border: 1px solid #444444;\n}\n\n.beacon-alert__image {\n width: 200px;\n height: 200px;\n box-sizing: border-box;\n box-shadow: 0 10px 20px 0 rgba(17, 17, 17, 0.12);\n border: 1px solid rgba(17, 17, 17, 0.04);\n border-radius: 16px;\n}\n.connect__btn {\n margin: 24px 0;\n width: 100%;\n}\n\n#beacon-modal__content {\n padding: 24px;\n}\n\n#beacon-switch {\n margin-top: 24px;\n}\n\n#beacon-title {\n margin: 0 0 24px;\n}\n\na {\n text-decoration: none;\n}\n\npre {\n white-space: pre-wrap; /* css-3 */\n white-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n white-space: -pre-wrap; /* Opera 4-6 */\n white-space: -o-pre-wrap; /* Opera 7 */\n word-wrap: break-word; /* Internet Explorer 5.5+ */\n padding: 16px;\n background: #ececec;\n line-height: 1.25rem;\n}\n' - }, - pair: { - html: - '\n\n
\n\n
\n \n
\n\n
\n', - css: - "#beacon-main-text {\n display: initial;\n}\n.beacon-selection__container {\n padding: 16px 16px 0;\n}\n.beacon-selection__list {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n text-decoration: none;\n padding-bottom: 12px;\n align-items: center;\n}\n.beacon-list__title {\n text-align: left;\n font-size: 12px;\n}\n.beacon-list__wrapper:nth-child(-n + 3) {\n padding: 0 0 1rem;\n}\n.theme__light .beacon-list__title {\n color: #7c828b;\n}\n.theme__dark .beacon-list__title,\n.theme__dark #beacon--disclaimer {\n color: #7c99d6;\n}\n\n.beacon-selection__name {\n font-size: 1rem;\n font-weight: 600;\n text-align: left;\n}\n.theme__light .beacon-selection__name,\n.theme__light .beacon--selection__name__lg {\n color: #3b3d40;\n}\n.theme__dark .beacon-selection__name,\n.theme__dark .beacon--selection__name__lg {\n color: #6183ff;\n}\n.beacon-selection__img {\n width: 48px;\n height: 48px;\n box-shadow: 0 4px 12px 0 rgba(17, 17, 17, 0.24);\n border-radius: 16px;\n background-color: #fff;\n}\n.beacon--selection__name__lg {\n font-size: 1.5rem;\n font-weight: 600;\n text-align: center;\n padding: 1rem 0;\n}\n.beacon--selected__container {\n padding: 2rem 0 0;\n}\n#beacon--qr__copy__container {\n height: 0;\n}\n#beacon--qr__copy {\n display: none;\n position: relative;\n top: -190px;\n left: 138px;\n margin: 0;\n}\n#beacon--qr__container {\n margin-left: auto;\n margin-right: auto;\n}\n#beacon--qr__container:hover #beacon--qr__copy {\n display: block;\n}\n.disabled {\n cursor: initial;\n}\n.disabled span,\n.disabled img {\n opacity: 0.48;\n}\n.disabled p {\n text-align: left;\n margin: 0;\n font-size: 10px;\n font-weight: 300;\n}\n.disabled img {\n -webkit-filter: grayscale(100%);\n -moz-filter: grayscale(100%);\n -ms-filter: grayscale(100%);\n -o-filter: grayscale(100%);\n filter: grayscale(100%);\n filter: gray;\n}\n\n#beacon--disclaimer {\n text-align: left;\n padding-top: 24px;\n font-size: 0.875rem;\n}\n.progress-line,\n.progress-line:before {\n height: 3px;\n width: -webkit-fill-available;\n margin-left: -24px;\n margin-right: -24px;\n}\n.progress-line {\n background-color: #a7c4f7;\n display: -webkit-flex;\n display: flex;\n}\n.progress-line:before {\n background-color: #3880ff;\n content: '';\n -webkit-animation: running-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n animation: running-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n}\n@-webkit-keyframes running-progress {\n 0% {\n margin-left: 0px;\n margin-right: 100%;\n }\n 50% {\n margin-left: 25%;\n margin-right: 0%;\n }\n 100% {\n margin-left: 100%;\n margin-right: 0;\n }\n}\n@keyframes running-progress {\n 0% {\n margin-left: 0px;\n margin-right: 100%;\n }\n 50% {\n margin-left: 25%;\n margin-right: 0%;\n }\n 100% {\n margin-left: 100%;\n margin-right: 0;\n }\n}\n" - } -} diff --git a/packages/beacon-dapp/src/ui/alert/wallet-lists.ts b/packages/beacon-dapp/src/ui/alert/wallet-lists.ts deleted file mode 100644 index 938f93e54..000000000 --- a/packages/beacon-dapp/src/ui/alert/wallet-lists.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { App, DesktopApp, ExtensionApp, WebApp } from './Pairing' - -export const extensionList: ExtensionApp[] = [ - { - key: 'spire_chrome', - id: 'gpfndedineagiepkpinficbcbbgjoenn', - name: 'Spire', - shortName: 'Spire', - color: '', - logo: - 'data:image/png;base64,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', - link: 'https://spirewallet.com/' - }, - { - key: 'temple_chrome', - id: 'ookjlbkiijinhpmnjffcofjonbfbgaoc', - name: 'Temple Wallet', - shortName: 'Temple', - color: '', - logo: - 'data:image/png;base64,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', - link: 'https://templewallet.com/' - } -] - -export const desktopList: DesktopApp[] = [ - { - key: 'galleon_desktop', - name: 'Galleon', - shortName: 'Galleon', - color: '', - logo: - 'data:image/png;base64,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', - deepLink: 'galleon://' - }, - { - key: 'umami_desktop', - name: 'Umami', - shortName: 'Umami', - color: '', - logo: - 'data:image/png;base64,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', - deepLink: 'umami://' - } -] - -export const webList: WebApp[] = [ - { - key: 'kukai_web', - name: 'Kukai Wallet', - shortName: 'Kukai', - color: '', - logo: - 'data:image/png;base64,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', - links: { - mainnet: 'https://wallet.kukai.app', - delphinet: 'https://testnet.kukai.app', - edonet: 'https://edonet.kukai.app', - florencenet: 'https://florencenet.kukai.app', - granadanet: 'https://granadanet.kukai.app' - } - } -] - -export const iOSList: App[] = [ - { - key: 'airgap_ios', - name: 'AirGap Wallet', - shortName: 'AirGap', - color: 'rgb(4, 235, 204)', - logo: - 'data:image/png;base64,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', - universalLink: 'https://wallet.airgap.it', - deepLink: 'airgap-wallet://' - } -] diff --git a/packages/beacon-dapp/src/ui/toast/toast-templates.ts b/packages/beacon-dapp/src/ui/toast/toast-templates.ts deleted file mode 100644 index b7bde6a0c..000000000 --- a/packages/beacon-dapp/src/ui/toast/toast-templates.ts +++ /dev/null @@ -1,10 +0,0 @@ -export const toastTemplates = { - default: { - html: - '
\n
\n

\n {{text}}\n Open\n \n

\n\n
\n
\n
\n
\n
\n', - css: - ":host {\n --animation-duration: 300ms;\n all: initial;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n.animated {\n animation-duration: var(--animation-duration);\n animation-fill-mode: both;\n}\n\n.fadeIn {\n animation-name: fadeIn;\n}\n\n.fadeOut {\n animation-name: fadeOut;\n}\n\n.beacon-toast__base {\n position: fixed;\n top: 16px;\n right: 16px;\n z-index: 2147483000;\n margin: 0 auto;\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 12px 24px 0 rgba(0, 0, 0, 0.1);\n flex-direction: column;\n}\n@media (max-width: 576px) {\n .beacon-toast__base {\n top: 8px;\n right: 8px;\n left: 8px;\n }\n .beacon-toast__wallet__outer {\n flex-wrap: wrap;\n }\n .beacon-toast__wallet__link {\n flex: 0 0 100%;\n margin-left: 0 !important;\n }\n}\n\n.theme__light.beacon-toast__base {\n background: #fff;\n}\n\n.theme__dark.beacon-toast__base {\n background: #27334c;\n}\n\n.theme__dark p {\n color: #6183ff;\n}\n\na {\n text-decoration: none;\n color: #3880ff;\n}\n\na svg {\n width: 12px;\n margin-left: 2px;\n}\n\na:visited {\n color: #3880ff;\n}\n\nhr {\n height: 1px;\n color: rgba(0, 0, 0, 0.12);\n background-color: rgba(0, 0, 0, 0.12);\n border: none;\n width: 100%;\n margin: 0;\n display: none;\n}\n\n.show {\n display: block !important;\n}\n\n.hide {\n display: none !important;\n}\n\n#beacon-toast-list {\n display: none;\n}\n\n.beacon-toast__upside_down {\n transform: rotate(180deg);\n}\n\n.beacon-toast__content {\n justify-content: space-between;\n min-height: 56px;\n height: 0;\n}\n\n.beacon-toast__action__item,\n.beacon-toast__powered a,\n.beacon-toast__wallet__container,\n#beacon-text,\n.beacon-toast__action__item p,\n.beacon-toast__wallet__outer {\n align-items: center;\n}\n\n.beacon-toast__content,\n.beacon-toast__base,\n.beacon-toast__action__item,\n.beacon-toast__powered a,\n#beacon-text,\n.beacon-toast__wallet__container,\n.beacon-toast__wallet__outer {\n display: flex;\n}\n\n.beacon-toast__content,\n.beacon-toast__action__item,\n.beacon-toast__powered a {\n padding: 0 16px;\n font-family: Roboto, Helvetica, sans-serif;\n}\n\n#beacon-text strong {\n display: contents;\n}\n.beacon-toast__wallet__link {\n margin-left: 12px;\n}\n.beacon-toast__wallet__link svg {\n margin-left: 4px;\n}\n.beacon-toast__powered a {\n margin: 4px 0 12px;\n font-size: 12px;\n opacity: 0.64;\n}\n\n.beacon-toast__powered svg {\n width: 20px;\n height: 20px;\n margin: 0 2px 0 4px;\n}\n\n.beacon-toast__action__item {\n font-size: 14px;\n max-width: 40ch;\n}\n\n.beacon-toast__action__item p {\n margin-right: 8px;\n}\n\n.beacon-toast__action__item__subtitle,\n.beacon-toast__powered a {\n min-width: 88px;\n color: rgba(0, 0, 0, 0.54);\n}\n\n.theme__dark .beacon-toast__powered a {\n color: #7c99d6;\n}\n\n.beacon-toast__content__img {\n width: 24px;\n height: 24px;\n margin-right: 4px;\n image-rendering: -moz-crisp-edges; /* Firefox */\n image-rendering: -o-crisp-edges; /* Opera */\n image-rendering: -webkit-optimize-contrast; /* Webkit (non-standard naming) */\n image-rendering: crisp-edges;\n -ms-interpolation-mode: nearest-neighbor; /* IE (non-standard property) */\n}\n\n.beacon-toast__more {\n width: 14px;\n transition: transform 0.5s;\n}\n\na,\n.beacon-toast__more {\n cursor: pointer;\n}\n\na:hover {\n opacity: 0.64;\n}\n\n.theme__dark .beacon-toast__more {\n color: #7c99d6;\n}\n\n.beacon-toast__more--action {\n margin: 8px 0;\n}\n\n#beacon-text {\n padding-right: 24px;\n}\n\n.progress-line,\n.progress-line:before {\n height: 3px;\n width: 100%;\n margin: 0;\n}\n.progress-line {\n background-color: #a7c4f7;\n display: -webkit-flex;\n display: flex;\n}\n.progress-line:before {\n background-color: #3880ff;\n content: '';\n -webkit-animation: running-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n animation: running-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n}\n@-webkit-keyframes running-progress {\n 0% {\n margin-left: 0px;\n margin-right: 100%;\n }\n 50% {\n margin-left: 25%;\n margin-right: 0%;\n }\n 100% {\n margin-left: 100%;\n margin-right: 0;\n }\n}\n@keyframes running-progress {\n 0% {\n margin-left: 0px;\n margin-right: 100%;\n }\n 50% {\n margin-left: 25%;\n margin-right: 0%;\n }\n 100% {\n margin-left: 100%;\n margin-right: 0;\n }\n}\n", - poweredByBeacon: - '\n powered by\n \n beacon_logo\n \n \n \n \n Beacon\n\n' - } -} From 9d6ea1042fc31499551cc7f08cc595d5d97da496 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 9 Aug 2021 16:17:28 +0200 Subject: [PATCH 029/130] feat(ci): change dist to lib folder --- .gitignore | 4 ++-- npm-ci-publish-beta-only.sh | 2 +- npm-ci-publish.sh | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 83577177a..b1366827b 100644 --- a/.gitignore +++ b/.gitignore @@ -77,5 +77,5 @@ lib docs packages/beacon-dapp/src/ui/alert/alert-templates.ts -packages/beacon-dapp/src/ui/toast/toast-templates.ts -packages/beacon-dapp/src/ui/alert/wallet-lists.ts \ No newline at end of file +packages/beacon-dapp/src/ui/alert/wallet-lists.ts +packages/beacon-dapp/src/ui/toast/toast-templates.ts \ No newline at end of file diff --git a/npm-ci-publish-beta-only.sh b/npm-ci-publish-beta-only.sh index 1c598be72..5923de75f 100644 --- a/npm-ci-publish-beta-only.sh +++ b/npm-ci-publish-beta-only.sh @@ -11,7 +11,7 @@ then echo "cannot publish non-beta version" else echo "version is beta, using --tag next" - npx lerna publish from-package --contents dist --dist-tag next --yes + npx lerna publish from-package --contents lib --dist-tag next --yes fi rm .npmrc \ No newline at end of file diff --git a/npm-ci-publish.sh b/npm-ci-publish.sh index 8d4745a49..83fc6c1ec 100755 --- a/npm-ci-publish.sh +++ b/npm-ci-publish.sh @@ -8,10 +8,10 @@ VERSION=$(node -pe 'JSON.parse(process.argv[1]).version.indexOf("beta")' "$(cat if [ "$VERSION" = "-1" ] then - npx lerna publish from-package --contents dist --yes + npx lerna publish from-package --contents lib --yes else echo "version is beta, using --tag next" - npx lerna publish from-package --contents dist --dist-tag next --yes + npx lerna publish from-package --contents lib --dist-tag next --yes fi rm .npmrc \ No newline at end of file From 128bc7b5357c0a40c0c5ee64e872a3febed3d56e Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 9 Aug 2021 16:28:54 +0200 Subject: [PATCH 030/130] fix(deploy): change path --- npm-ci-publish-beta-only.sh | 2 +- npm-ci-publish.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/npm-ci-publish-beta-only.sh b/npm-ci-publish-beta-only.sh index 5923de75f..53d72cfe9 100644 --- a/npm-ci-publish-beta-only.sh +++ b/npm-ci-publish-beta-only.sh @@ -11,7 +11,7 @@ then echo "cannot publish non-beta version" else echo "version is beta, using --tag next" - npx lerna publish from-package --contents lib --dist-tag next --yes + npx lerna publish from-package --contents ./ --dist-tag next --yes fi rm .npmrc \ No newline at end of file diff --git a/npm-ci-publish.sh b/npm-ci-publish.sh index 83fc6c1ec..97c1f6b2e 100755 --- a/npm-ci-publish.sh +++ b/npm-ci-publish.sh @@ -8,10 +8,10 @@ VERSION=$(node -pe 'JSON.parse(process.argv[1]).version.indexOf("beta")' "$(cat if [ "$VERSION" = "-1" ] then - npx lerna publish from-package --contents lib --yes + npx lerna publish from-package --contents ./ --yes else echo "version is beta, using --tag next" - npx lerna publish from-package --contents lib --dist-tag next --yes + npx lerna publish from-package --contents ./ --dist-tag next --yes fi rm .npmrc \ No newline at end of file From 5fa520d9fe01e0e6d7801a7563472c23a5b06b77 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 9 Aug 2021 18:18:18 +0200 Subject: [PATCH 031/130] feat(): add dependencies --- package-lock.json | 280 ++++++++---------- package.json | 9 +- packages/beacon-dapp/package.json | 3 +- packages/beacon-transport-matrix/package.json | 3 +- packages/beacon-types/package.json | 3 + packages/beacon-utils/package.json | 3 + 6 files changed, 127 insertions(+), 174 deletions(-) diff --git a/package-lock.json b/package-lock.json index ab716c00b..aa9a59d83 100755 --- a/package-lock.json +++ b/package-lock.json @@ -18,14 +18,7 @@ "@airgap/beacon-types": "file:packages/beacon-types", "@airgap/beacon-ui": "file:packages/beacon-ui", "@airgap/beacon-utils": "file:packages/beacon-utils", - "@airgap/beacon-wallet": "file:packages/beacon-wallet", - "@types/chrome": "0.0.115", - "@types/libsodium-wrappers": "0.7.7", - "axios": "0.21.1", - "bignumber.js": "9.0.0", - "bs58check": "2.1.2", - "libsodium-wrappers": "0.7.8", - "qrcode-generator": "1.4.4" + "@airgap/beacon-wallet": "file:packages/beacon-wallet" }, "devDependencies": { "@types/bs58check": "^2.1.0", @@ -3429,22 +3422,22 @@ "dev": true }, "node_modules/@types/filesystem": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.29.tgz", - "integrity": "sha512-85/1KfRedmfPGsbK8YzeaQUyV1FQAvMPMTuWFQ5EkLd2w7szhNO96bk3Rh/SKmOfd9co2rCLf0Voy4o7ECBOvw==", + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.32.tgz", + "integrity": "sha512-Yuf4jR5YYMR2DVgwuCiP11s0xuVRyPKmz8vo6HBY3CGdeMj8af93CFZX+T82+VD1+UqHOxTq31lO7MI7lepBtQ==", "dependencies": { "@types/filewriter": "*" } }, "node_modules/@types/filewriter": { - "version": "0.0.28", - "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.28.tgz", - "integrity": "sha1-wFTor02d11205jq8dviFFocU1LM=" + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.29.tgz", + "integrity": "sha512-BsPXH/irW0ht0Ji6iw/jJaK8Lj3FJemon2gvEqHKpCdDCeemHa+rI3WBGq5z7cDMZgoLjY40oninGxqk+8NzNQ==" }, "node_modules/@types/har-format": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.4.tgz", - "integrity": "sha512-iUxzm1meBm3stxUMzRqgOVHjj4Kgpgu5w9fm4X7kPRfSgVRzythsucEN7/jtOo8SQzm+HfcxWWzJS0mJDH/3DQ==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.7.tgz", + "integrity": "sha512-/TPzUG0tJn5x1TUcVLlDx2LqbE58hyOzDVAc9kf8SpOEmguHjU6bKUyfqb211AdqLOmU/SNyXvLKPNP5qTlfRw==" }, "node_modules/@types/json-schema": { "version": "7.0.4", @@ -3453,9 +3446,9 @@ "dev": true }, "node_modules/@types/libsodium-wrappers": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.7.tgz", - "integrity": "sha512-Li91pVKcLvQJK3ZolwCPo85oxf2gKBCApgnesRxYg4OVYchLXcJB2eivX8S87vfQVv6ZRnyCO1lLDosZGJfpRg==" + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz", + "integrity": "sha512-vkDSj6enD3K0+Ep83wnoGUk+f7sqsO4alsqxxEZ8BcTJhFmcY4UehYH3rTf4M3JGHXNhdpGFDdMbWFMgyvw/fA==" }, "node_modules/@types/minimatch": { "version": "3.0.3", @@ -4266,14 +4259,6 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, - "node_modules/base-x": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.7.tgz", - "integrity": "sha512-zAKJGuQPihXW22fkrfOclUUZXM2g92z5GzlSMHxhO6r6Qj+Nm0ccaGNBzDZojzwOMkpjAv4J0fOv1U4go+a4iw==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, "node_modules/base64-js": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", @@ -4295,14 +4280,6 @@ "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", "dev": true }, - "node_modules/bignumber.js": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", - "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", - "engines": { - "node": "*" - } - }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -4635,24 +4612,6 @@ "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", "dev": true }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -4973,6 +4932,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -5631,6 +5591,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -7342,11 +7303,22 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", - "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", + "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "engines": { "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, "node_modules/foreground-child": { @@ -8101,6 +8073,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -8511,7 +8484,8 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, "node_modules/ini": { "version": "1.3.8", @@ -9644,19 +9618,6 @@ "node": ">=10" } }, - "node_modules/libsodium": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.8.tgz", - "integrity": "sha512-/Qc+APf0jbeWSaeEruH0L1/tbbT+sbf884ZL0/zV/0JXaDPBzYkKbyb/wmxMHgAHzm3t6gqe7bOOXAVwfqVikQ==" - }, - "node_modules/libsodium-wrappers": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz", - "integrity": "sha512-PDhPWXBqd/SaqAFUBgH2Ux7b3VEEJgyD6BQB+VdNFJb9PbExGr/T/myc/MBoSvl8qLzfm0W0IVByOQS5L1MrCg==", - "dependencies": { - "libsodium": "0.7.8" - } - }, "node_modules/lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", @@ -9888,6 +9849,7 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -12579,7 +12541,8 @@ "node_modules/qrcode-generator": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz", - "integrity": "sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==" + "integrity": "sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==", + "license": "MIT" }, "node_modules/qs": { "version": "6.10.1", @@ -13213,6 +13176,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -13265,7 +13229,8 @@ "node_modules/safe-buffer": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true }, "node_modules/safer-buffer": { "version": "2.1.2", @@ -13325,6 +13290,7 @@ "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -15567,70 +15533,81 @@ }, "packages/beacon-core": { "name": "@airgap/beacon-core", - "version": "0.0.0", + "version": "0.0.1-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-transport-postmessage": "*" + "@airgap/beacon-types": "^0.0.1-beta.0", + "@airgap/beacon-utils": "^0.0.1-beta.0" } }, "packages/beacon-dapp": { "name": "@airgap/beacon-dapp", - "version": "0.0.0", + "version": "0.0.1-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "*", - "@airgap/beacon-transport-postmessage": "*" + "@airgap/beacon-core": "^0.0.1-beta.0", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.0", + "qrcode-generator": "1.4.4" } }, "packages/beacon-protocol-kusama": { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.0", + "version": "0.0.1-beta.0", "license": "ISC" }, "packages/beacon-protocol-tezos": { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.0", + "version": "0.0.1-beta.0", "license": "ISC" }, "packages/beacon-transport-matrix": { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.0", + "version": "0.0.1-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-utils": "*" + "@airgap/beacon-core": "^0.0.1-beta.0", + "@airgap/beacon-utils": "^0.0.1-beta.0", + "axios": "0.21.1" } }, "packages/beacon-transport-postmessage": { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.0", + "version": "0.0.1-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "*", - "@airgap/beacon-utils": "*" + "@airgap/beacon-core": "^0.0.1-beta.0", + "@airgap/beacon-types": "^0.0.1-beta.0", + "@airgap/beacon-utils": "^0.0.1-beta.0" } }, "packages/beacon-types": { "name": "@airgap/beacon-types", - "version": "0.0.0", - "license": "ISC" + "version": "0.0.1-beta.0", + "license": "ISC", + "dependencies": { + "@types/chrome": "0.0.115" + } }, "packages/beacon-ui": { "name": "@airgap/beacon-ui", - "version": "0.0.0", + "version": "0.0.1-beta.0", "license": "ISC" }, "packages/beacon-utils": { "name": "@airgap/beacon-utils", - "version": "0.0.0", - "license": "ISC" + "version": "0.0.1-beta.0", + "license": "ISC", + "dependencies": { + "@types/libsodium-wrappers": "0.7.8" + } }, "packages/beacon-wallet": { "name": "@airgap/beacon-wallet", - "version": "0.0.0", + "version": "0.0.1-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "*", - "@airgap/beacon-transport-postmessage": "*" + "@airgap/beacon-core": "^0.0.1-beta.0", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.0" } } }, @@ -15638,14 +15615,16 @@ "@airgap/beacon-core": { "version": "file:packages/beacon-core", "requires": { - "@airgap/beacon-transport-postmessage": "*" + "@airgap/beacon-types": "^0.0.1-beta.0", + "@airgap/beacon-utils": "^0.0.1-beta.0" } }, "@airgap/beacon-dapp": { "version": "file:packages/beacon-dapp", "requires": { - "@airgap/beacon-core": "*", - "@airgap/beacon-transport-postmessage": "*" + "@airgap/beacon-core": "^0.0.1-beta.0", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.0", + "qrcode-generator": "1.4.4" } }, "@airgap/beacon-protocol-kusama": { @@ -15657,30 +15636,39 @@ "@airgap/beacon-transport-matrix": { "version": "file:packages/beacon-transport-matrix", "requires": { - "@airgap/beacon-utils": "*" + "@airgap/beacon-core": "^0.0.1-beta.0", + "@airgap/beacon-utils": "^0.0.1-beta.0", + "axios": "0.21.1" } }, "@airgap/beacon-transport-postmessage": { "version": "file:packages/beacon-transport-postmessage", "requires": { - "@airgap/beacon-types": "*", - "@airgap/beacon-utils": "*" + "@airgap/beacon-core": "^0.0.1-beta.0", + "@airgap/beacon-types": "^0.0.1-beta.0", + "@airgap/beacon-utils": "^0.0.1-beta.0" } }, "@airgap/beacon-types": { - "version": "file:packages/beacon-types" + "version": "file:packages/beacon-types", + "requires": { + "@types/chrome": "0.0.115" + } }, "@airgap/beacon-ui": { "version": "file:packages/beacon-ui" }, "@airgap/beacon-utils": { - "version": "file:packages/beacon-utils" + "version": "file:packages/beacon-utils", + "requires": { + "@types/libsodium-wrappers": "0.7.8" + } }, "@airgap/beacon-wallet": { "version": "file:packages/beacon-wallet", "requires": { - "@airgap/beacon-core": "*", - "@airgap/beacon-transport-postmessage": "*" + "@airgap/beacon-core": "^0.0.1-beta.0", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.0" } }, "@babel/code-frame": { @@ -18591,22 +18579,22 @@ "dev": true }, "@types/filesystem": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.29.tgz", - "integrity": "sha512-85/1KfRedmfPGsbK8YzeaQUyV1FQAvMPMTuWFQ5EkLd2w7szhNO96bk3Rh/SKmOfd9co2rCLf0Voy4o7ECBOvw==", + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.32.tgz", + "integrity": "sha512-Yuf4jR5YYMR2DVgwuCiP11s0xuVRyPKmz8vo6HBY3CGdeMj8af93CFZX+T82+VD1+UqHOxTq31lO7MI7lepBtQ==", "requires": { "@types/filewriter": "*" } }, "@types/filewriter": { - "version": "0.0.28", - "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.28.tgz", - "integrity": "sha1-wFTor02d11205jq8dviFFocU1LM=" + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.29.tgz", + "integrity": "sha512-BsPXH/irW0ht0Ji6iw/jJaK8Lj3FJemon2gvEqHKpCdDCeemHa+rI3WBGq5z7cDMZgoLjY40oninGxqk+8NzNQ==" }, "@types/har-format": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.4.tgz", - "integrity": "sha512-iUxzm1meBm3stxUMzRqgOVHjj4Kgpgu5w9fm4X7kPRfSgVRzythsucEN7/jtOo8SQzm+HfcxWWzJS0mJDH/3DQ==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.7.tgz", + "integrity": "sha512-/TPzUG0tJn5x1TUcVLlDx2LqbE58hyOzDVAc9kf8SpOEmguHjU6bKUyfqb211AdqLOmU/SNyXvLKPNP5qTlfRw==" }, "@types/json-schema": { "version": "7.0.4", @@ -18615,9 +18603,9 @@ "dev": true }, "@types/libsodium-wrappers": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.7.tgz", - "integrity": "sha512-Li91pVKcLvQJK3ZolwCPo85oxf2gKBCApgnesRxYg4OVYchLXcJB2eivX8S87vfQVv6ZRnyCO1lLDosZGJfpRg==" + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz", + "integrity": "sha512-vkDSj6enD3K0+Ep83wnoGUk+f7sqsO4alsqxxEZ8BcTJhFmcY4UehYH3rTf4M3JGHXNhdpGFDdMbWFMgyvw/fA==" }, "@types/minimatch": { "version": "3.0.3", @@ -19305,14 +19293,6 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, - "base-x": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.7.tgz", - "integrity": "sha512-zAKJGuQPihXW22fkrfOclUUZXM2g92z5GzlSMHxhO6r6Qj+Nm0ccaGNBzDZojzwOMkpjAv4J0fOv1U4go+a4iw==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, "base64-js": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", @@ -19334,11 +19314,6 @@ "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", "dev": true }, - "bignumber.js": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", - "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" - }, "bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -19656,24 +19631,6 @@ "pako": "~1.0.5" } }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, "buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -19921,6 +19878,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -20484,6 +20442,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, "requires": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -21874,9 +21833,9 @@ "dev": true }, "follow-redirects": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", - "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==" + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", + "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==" }, "foreground-child": { "version": "2.0.0", @@ -22464,6 +22423,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -22790,7 +22750,8 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, "ini": { "version": "1.3.8", @@ -23717,19 +23678,6 @@ } } }, - "libsodium": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.8.tgz", - "integrity": "sha512-/Qc+APf0jbeWSaeEruH0L1/tbbT+sbf884ZL0/zV/0JXaDPBzYkKbyb/wmxMHgAHzm3t6gqe7bOOXAVwfqVikQ==" - }, - "libsodium-wrappers": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz", - "integrity": "sha512-PDhPWXBqd/SaqAFUBgH2Ux7b3VEEJgyD6BQB+VdNFJb9PbExGr/T/myc/MBoSvl8qLzfm0W0IVByOQS5L1MrCg==", - "requires": { - "libsodium": "0.7.8" - } - }, "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", @@ -23923,6 +23871,7 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -26571,6 +26520,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -26603,7 +26553,8 @@ "safe-buffer": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -26654,6 +26605,7 @@ "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" diff --git a/package.json b/package.json index ec89c77bb..0e0d855a5 100644 --- a/package.json +++ b/package.json @@ -64,14 +64,7 @@ "@airgap/beacon-types": "file:packages/beacon-types", "@airgap/beacon-ui": "file:packages/beacon-ui", "@airgap/beacon-utils": "file:packages/beacon-utils", - "@airgap/beacon-wallet": "file:packages/beacon-wallet", - "@types/chrome": "0.0.115", - "@types/libsodium-wrappers": "0.7.7", - "axios": "0.21.1", - "bignumber.js": "9.0.0", - "bs58check": "2.1.2", - "libsodium-wrappers": "0.7.8", - "qrcode-generator": "1.4.4" + "@airgap/beacon-wallet": "file:packages/beacon-wallet" }, "devDependencies": { "@types/bs58check": "^2.1.0", diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index d4058815a..c9d65a56a 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -29,6 +29,7 @@ }, "dependencies": { "@airgap/beacon-core": "^0.0.1-beta.0", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.0" + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.0", + "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index fe902cec2..0ad024cc8 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -29,6 +29,7 @@ }, "dependencies": { "@airgap/beacon-core": "^0.0.1-beta.0", - "@airgap/beacon-utils": "^0.0.1-beta.0" + "@airgap/beacon-utils": "^0.0.1-beta.0", + "axios": "0.21.1" } } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 59a0b2d93..a2e127200 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -26,5 +26,8 @@ }, "bugs": { "url": "https://github.com/airgap-it/beacon-sdk/issues" + }, + "dependencies": { + "@types/chrome": "0.0.115" } } diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 117f77367..7477939c7 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -26,5 +26,8 @@ }, "bugs": { "url": "https://github.com/airgap-it/beacon-sdk/issues" + }, + "dependencies": { + "@types/libsodium-wrappers": "0.7.8" } } From 2c706f733db5db7a386405a5d24b6beada09853c Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 9 Aug 2021 18:28:52 +0200 Subject: [PATCH 032/130] chore(release): v0.0.1-beta.1 --- lerna.json | 2 +- packages/beacon-core/package.json | 6 +++--- packages/beacon-dapp/package.json | 6 +++--- packages/beacon-protocol-kusama/package.json | 2 +- packages/beacon-protocol-tezos/package.json | 2 +- packages/beacon-transport-matrix/package.json | 6 +++--- packages/beacon-transport-postmessage/package.json | 8 ++++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 2 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 6 +++--- 11 files changed, 22 insertions(+), 22 deletions(-) diff --git a/lerna.json b/lerna.json index ac0d7c5d2..ccb624b27 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "0.0.1-beta.0" + "version": "0.0.1-beta.1" } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 3ed9f5333..a93049a07 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.0", + "version": "0.0.1-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -28,7 +28,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.0", - "@airgap/beacon-utils": "^0.0.1-beta.0" + "@airgap/beacon-types": "^0.0.1-beta.1", + "@airgap/beacon-utils": "^0.0.1-beta.1" } } diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index c9d65a56a..12985543b 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.0", + "version": "0.0.1-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -28,8 +28,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.0", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.0", + "@airgap/beacon-core": "^0.0.1-beta.1", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.1", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-protocol-kusama/package.json index 4809ed3a8..42c4a0ec0 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.1-beta.0", + "version": "0.0.1-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index 25725c609..e3daf2132 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.1-beta.0", + "version": "0.0.1-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index 0ad024cc8..15c8d55a5 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.0", + "version": "0.0.1-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -28,8 +28,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.0", - "@airgap/beacon-utils": "^0.0.1-beta.0", + "@airgap/beacon-core": "^0.0.1-beta.1", + "@airgap/beacon-utils": "^0.0.1-beta.1", "axios": "0.21.1" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 294bb802e..bd24facd9 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.0", + "version": "0.0.1-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -28,8 +28,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.0", - "@airgap/beacon-types": "^0.0.1-beta.0", - "@airgap/beacon-utils": "^0.0.1-beta.0" + "@airgap/beacon-core": "^0.0.1-beta.1", + "@airgap/beacon-types": "^0.0.1-beta.1", + "@airgap/beacon-utils": "^0.0.1-beta.1" } } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index a2e127200..ad16cd744 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.0", + "version": "0.0.1-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index 00f0c9bad..4337a8988 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.0", + "version": "0.0.1-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 7477939c7..2c0e55560 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.0", + "version": "0.0.1-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 772a6e987..db2f8b374 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.0", + "version": "0.0.1-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -28,7 +28,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.0", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.0" + "@airgap/beacon-core": "^0.0.1-beta.1", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.1" } } From c54683aeae6134aeda7816790f725060f850121c Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 9 Aug 2021 18:43:13 +0200 Subject: [PATCH 033/130] feat(): change imports --- packages/beacon-core/package.json | 5 ++++- packages/beacon-dapp/src/dapp-client/DAppClient.ts | 6 +++--- packages/beacon-dapp/src/ui/alert/Pairing.ts | 2 +- packages/beacon-transport-postmessage/package.json | 4 +++- packages/beacon-utils/package.json | 4 +++- packages/beacon-wallet/src/client/WalletClient.ts | 2 +- 6 files changed, 15 insertions(+), 8 deletions(-) diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index a93049a07..a7e6ad0d5 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -29,6 +29,9 @@ }, "dependencies": { "@airgap/beacon-types": "^0.0.1-beta.1", - "@airgap/beacon-utils": "^0.0.1-beta.1" + "@airgap/beacon-utils": "^0.0.1-beta.1", + "@types/libsodium-wrappers": "0.7.9", + "bs58check": "2.1.2", + "libsodium-wrappers": "0.7.9" } } diff --git a/packages/beacon-dapp/src/dapp-client/DAppClient.ts b/packages/beacon-dapp/src/dapp-client/DAppClient.ts index a0cdc054b..0b949f78c 100644 --- a/packages/beacon-dapp/src/dapp-client/DAppClient.ts +++ b/packages/beacon-dapp/src/dapp-client/DAppClient.ts @@ -71,9 +71,9 @@ import { getColorMode, setColorMode } from '../colorMode' import { desktopList, extensionList, iOSList, webList } from '../ui/alert/wallet-lists' import { DAppClientOptions } from './DAppClientOptions' import { App, DesktopApp, ExtensionApp, WebApp } from '../ui/alert/Pairing' -import { BeaconEventHandler } from 'src/events' -import { DappPostMessageTransport } from 'src/transports/DappPostMessageTransport' -import { DappP2PTransport } from 'src/transports/DappP2PTransport' +import { BeaconEventHandler } from '@airgap/beacon-dapp' +import { DappPostMessageTransport } from '../transports/DappPostMessageTransport' +import { DappP2PTransport } from '../transports/DappP2PTransport' import { PostMessageTransport } from '@airgap/beacon-transport-postmessage' const logger = new Logger('DAppClient') diff --git a/packages/beacon-dapp/src/ui/alert/Pairing.ts b/packages/beacon-dapp/src/ui/alert/Pairing.ts index a8d77d935..11f4c8246 100644 --- a/packages/beacon-dapp/src/ui/alert/Pairing.ts +++ b/packages/beacon-dapp/src/ui/alert/Pairing.ts @@ -10,7 +10,7 @@ import { windowRef } from '@airgap/beacon-core' import { getTzip10Link } from '../../utils/get-tzip10-link' import { isAndroid, isIOS } from '../../utils/platform' import { desktopList, extensionList, iOSList, webList } from './wallet-lists' -import { availableTransports } from 'src/utils/available-transports' +import { availableTransports } from '../../utils/available-transports' const serializer = new Serializer() diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index bd24facd9..115fcf566 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -30,6 +30,8 @@ "dependencies": { "@airgap/beacon-core": "^0.0.1-beta.1", "@airgap/beacon-types": "^0.0.1-beta.1", - "@airgap/beacon-utils": "^0.0.1-beta.1" + "@airgap/beacon-utils": "^0.0.1-beta.1", + "@types/libsodium-wrappers": "0.7.9", + "libsodium-wrappers": "0.7.9" } } diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 2c0e55560..de19cb235 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -28,6 +28,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@types/libsodium-wrappers": "0.7.8" + "@types/libsodium-wrappers": "0.7.9", + "bs58check": "2.1.2", + "libsodium-wrappers": "0.7.9" } } diff --git a/packages/beacon-wallet/src/client/WalletClient.ts b/packages/beacon-wallet/src/client/WalletClient.ts index 54f8428f2..34f96187c 100644 --- a/packages/beacon-wallet/src/client/WalletClient.ts +++ b/packages/beacon-wallet/src/client/WalletClient.ts @@ -30,7 +30,7 @@ import { BeaconMessage } from '@airgap/beacon-types' import { WalletClientOptions } from './WalletClientOptions' -import { WalletP2PTransport } from 'src/transports/WalletP2PTransport' +import { WalletP2PTransport } from '../transports/WalletP2PTransport' const logger = new Logger('WalletClient') From 0d26ad554ffaa7cdd06387440f02726a7d2b2a7f Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 9 Aug 2021 18:43:52 +0200 Subject: [PATCH 034/130] chore(release): v0.0.1-beta.2 --- lerna.json | 2 +- packages/beacon-core/package.json | 6 +++--- packages/beacon-dapp/package.json | 6 +++--- packages/beacon-protocol-kusama/package.json | 2 +- packages/beacon-protocol-tezos/package.json | 2 +- packages/beacon-transport-matrix/package.json | 6 +++--- packages/beacon-transport-postmessage/package.json | 8 ++++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 2 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 6 +++--- 11 files changed, 22 insertions(+), 22 deletions(-) diff --git a/lerna.json b/lerna.json index ccb624b27..861507fcb 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "0.0.1-beta.1" + "version": "0.0.1-beta.2" } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index a7e6ad0d5..9bb9f6507 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.1", + "version": "0.0.1-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -28,8 +28,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.1", - "@airgap/beacon-utils": "^0.0.1-beta.1", + "@airgap/beacon-types": "^0.0.1-beta.2", + "@airgap/beacon-utils": "^0.0.1-beta.2", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 12985543b..33d0c764b 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.1", + "version": "0.0.1-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -28,8 +28,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.1", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.1", + "@airgap/beacon-core": "^0.0.1-beta.2", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.2", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-protocol-kusama/package.json index 42c4a0ec0..e8784ac63 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.1-beta.1", + "version": "0.0.1-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index e3daf2132..d3183b668 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.1-beta.1", + "version": "0.0.1-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index 15c8d55a5..a5f00134c 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.1", + "version": "0.0.1-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -28,8 +28,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.1", - "@airgap/beacon-utils": "^0.0.1-beta.1", + "@airgap/beacon-core": "^0.0.1-beta.2", + "@airgap/beacon-utils": "^0.0.1-beta.2", "axios": "0.21.1" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 115fcf566..3c0f6b883 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.1", + "version": "0.0.1-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -28,9 +28,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.1", - "@airgap/beacon-types": "^0.0.1-beta.1", - "@airgap/beacon-utils": "^0.0.1-beta.1", + "@airgap/beacon-core": "^0.0.1-beta.2", + "@airgap/beacon-types": "^0.0.1-beta.2", + "@airgap/beacon-utils": "^0.0.1-beta.2", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index ad16cd744..52df0e172 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.1", + "version": "0.0.1-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index 4337a8988..a1249344b 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.1", + "version": "0.0.1-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index de19cb235..81c13f149 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.1", + "version": "0.0.1-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index db2f8b374..c14471db8 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.1", + "version": "0.0.1-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -28,7 +28,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.1", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.1" + "@airgap/beacon-core": "^0.0.1-beta.2", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.2" } } From 84783f67ce020e8924a49015e53d019ce1d70a70 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 9 Aug 2021 20:14:04 +0200 Subject: [PATCH 035/130] fix(): add axios --- packages/beacon-dapp/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 33d0c764b..18b48c007 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -29,6 +29,7 @@ }, "dependencies": { "@airgap/beacon-core": "^0.0.1-beta.2", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.2", "@airgap/beacon-transport-postmessage": "^0.0.1-beta.2", "qrcode-generator": "1.4.4" } From a531ebdc643b3ab087288a751dc00d3b8152e921 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 9 Aug 2021 20:14:27 +0200 Subject: [PATCH 036/130] chore(release): v0.0.1-beta.3 --- lerna.json | 2 +- packages/beacon-core/package.json | 6 +++--- packages/beacon-dapp/package.json | 8 ++++---- packages/beacon-protocol-kusama/package.json | 2 +- packages/beacon-protocol-tezos/package.json | 2 +- packages/beacon-transport-matrix/package.json | 6 +++--- packages/beacon-transport-postmessage/package.json | 8 ++++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 2 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 6 +++--- 11 files changed, 23 insertions(+), 23 deletions(-) diff --git a/lerna.json b/lerna.json index 861507fcb..2b0f8d7f3 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "0.0.1-beta.2" + "version": "0.0.1-beta.3" } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 9bb9f6507..898f85e2d 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.2", + "version": "0.0.1-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -28,8 +28,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.2", - "@airgap/beacon-utils": "^0.0.1-beta.2", + "@airgap/beacon-types": "^0.0.1-beta.3", + "@airgap/beacon-utils": "^0.0.1-beta.3", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 18b48c007..ea3ee3eec 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.2", + "version": "0.0.1-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -28,9 +28,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.2", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.2", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.2", + "@airgap/beacon-core": "^0.0.1-beta.3", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.3", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.3", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-protocol-kusama/package.json index e8784ac63..4edf4076a 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.1-beta.2", + "version": "0.0.1-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index d3183b668..9f0a59ee5 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.1-beta.2", + "version": "0.0.1-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index a5f00134c..3ba1fc7c5 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.2", + "version": "0.0.1-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -28,8 +28,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.2", - "@airgap/beacon-utils": "^0.0.1-beta.2", + "@airgap/beacon-core": "^0.0.1-beta.3", + "@airgap/beacon-utils": "^0.0.1-beta.3", "axios": "0.21.1" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 3c0f6b883..fddc3e2cd 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.2", + "version": "0.0.1-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -28,9 +28,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.2", - "@airgap/beacon-types": "^0.0.1-beta.2", - "@airgap/beacon-utils": "^0.0.1-beta.2", + "@airgap/beacon-core": "^0.0.1-beta.3", + "@airgap/beacon-types": "^0.0.1-beta.3", + "@airgap/beacon-utils": "^0.0.1-beta.3", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 52df0e172..8dac28c58 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.2", + "version": "0.0.1-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index a1249344b..5977a8da3 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.2", + "version": "0.0.1-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 81c13f149..32504ffbf 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.2", + "version": "0.0.1-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index c14471db8..368c11310 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.2", + "version": "0.0.1-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -28,7 +28,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.2", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.2" + "@airgap/beacon-core": "^0.0.1-beta.3", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.3" } } From 5b2b4db95b62c047c56697c76515ad592a32e2d3 Mon Sep 17 00:00:00 2001 From: Clement Renaud Date: Fri, 5 Nov 2021 22:53:50 +0100 Subject: [PATCH 037/130] uglify js bump version --- package-lock.json | 22 ++++++++-------------- package.json | 2 +- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index 043023342..f69d82c2b 100755 --- a/package-lock.json +++ b/package-lock.json @@ -52,7 +52,7 @@ "typedoc": "^0.20.30", "typedoc-plugin-internal-external": "^2.2.0", "typescript": "3.9.2", - "uglify-js": "3.9.4" + "uglify-js": "^3.14.3" } }, "node_modules/@babel/code-frame": { @@ -9348,13 +9348,10 @@ } }, "node_modules/uglify-js": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.4.tgz", - "integrity": "sha512-8RZBJq5smLOa7KslsNsVcSH+KOXf1uDU8yqLeNuVKwmT0T3FA0ZoXlinQfRad7SDcbZZRZE4ov+2v71EnxNyCA==", + "version": "3.14.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.3.tgz", + "integrity": "sha512-mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g==", "dev": true, - "dependencies": { - "commander": "~2.20.3" - }, "bin": { "uglifyjs": "bin/uglifyjs" }, @@ -17836,13 +17833,10 @@ "dev": true }, "uglify-js": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.4.tgz", - "integrity": "sha512-8RZBJq5smLOa7KslsNsVcSH+KOXf1uDU8yqLeNuVKwmT0T3FA0ZoXlinQfRad7SDcbZZRZE4ov+2v71EnxNyCA==", - "dev": true, - "requires": { - "commander": "~2.20.3" - } + "version": "3.14.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.3.tgz", + "integrity": "sha512-mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g==", + "dev": true }, "umd": { "version": "3.0.3", diff --git a/package.json b/package.json index a226e2aae..2d6a2ee89 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "typedoc": "^0.20.30", "typedoc-plugin-internal-external": "^2.2.0", "typescript": "3.9.2", - "uglify-js": "3.9.4" + "uglify-js": "^3.14.3" }, "files": [ "/dist" From 0eba539ecb5620d8bd086cd8299dda167d9ab5c7 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 8 Nov 2021 12:51:54 +0100 Subject: [PATCH 038/130] fix(merge): resolve conflicts --- package-lock.json | 198 ++++++++++++------ packages/beacon-dapp/src/ui/alert/Pairing.ts | 3 +- .../beacon-dapp/src/ui/alert/PairingAlert.ts | 3 +- 3 files changed, 140 insertions(+), 64 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0c1100a20..3c8da3e28 100755 --- a/package-lock.json +++ b/package-lock.json @@ -3446,9 +3446,9 @@ "dev": true }, "node_modules/@types/libsodium-wrappers": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz", - "integrity": "sha512-vkDSj6enD3K0+Ep83wnoGUk+f7sqsO4alsqxxEZ8BcTJhFmcY4UehYH3rTf4M3JGHXNhdpGFDdMbWFMgyvw/fA==" + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.9.tgz", + "integrity": "sha512-LisgKLlYQk19baQwjkBZZXdJL0KbeTpdEnrAfz5hQACbklCY0gVFnsKUyjfNWF1UQsCSjw93Sj5jSbiO8RPfdw==" }, "node_modules/@types/minimatch": { "version": "3.0.3", @@ -4259,6 +4259,14 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, + "node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, "node_modules/base64-js": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", @@ -4612,6 +4620,24 @@ "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", "dev": true }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -4932,7 +4958,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -5591,7 +5616,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -8073,7 +8097,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -8484,8 +8507,7 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { "version": "1.3.8", @@ -9618,6 +9640,19 @@ "node": ">=10" } }, + "node_modules/libsodium": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.9.tgz", + "integrity": "sha512-gfeADtR4D/CM0oRUviKBViMGXZDgnFdMKMzHsvBdqLBHd9ySi6EtYnmuhHVDDYgYpAO8eU8hEY+F8vIUAPh08A==" + }, + "node_modules/libsodium-wrappers": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.9.tgz", + "integrity": "sha512-9HaAeBGk1nKTRFRHkt7nzxqCvnkWTjn1pdjKgcUnZxj0FyOP4CnhgFhMdrFfgNsukijBGyBLpP2m2uKT1vuWhQ==", + "dependencies": { + "libsodium": "^0.7.0" + } + }, "node_modules/lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", @@ -9849,7 +9884,6 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -13176,7 +13210,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -13229,8 +13262,7 @@ "node_modules/safe-buffer": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", - "dev": true + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" }, "node_modules/safer-buffer": { "version": "2.1.2", @@ -13290,7 +13322,6 @@ "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -15533,56 +15564,62 @@ }, "packages/beacon-core": { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.0", + "version": "0.0.1-beta.3", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.0", - "@airgap/beacon-utils": "^0.0.1-beta.0" + "@airgap/beacon-types": "^0.0.1-beta.3", + "@airgap/beacon-utils": "^0.0.1-beta.3", + "@types/libsodium-wrappers": "0.7.9", + "bs58check": "2.1.2", + "libsodium-wrappers": "0.7.9" } }, "packages/beacon-dapp": { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.0", + "version": "0.0.1-beta.3", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.0", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.0", + "@airgap/beacon-core": "^0.0.1-beta.3", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.3", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.3", "qrcode-generator": "1.4.4" } }, "packages/beacon-protocol-kusama": { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.1-beta.0", + "version": "0.0.1-beta.3", "license": "ISC" }, "packages/beacon-protocol-tezos": { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.1-beta.0", + "version": "0.0.1-beta.3", "license": "ISC" }, "packages/beacon-transport-matrix": { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.0", + "version": "0.0.1-beta.3", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.0", - "@airgap/beacon-utils": "^0.0.1-beta.0", + "@airgap/beacon-core": "^0.0.1-beta.3", + "@airgap/beacon-utils": "^0.0.1-beta.3", "axios": "0.21.1" } }, "packages/beacon-transport-postmessage": { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.0", + "version": "0.0.1-beta.3", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.0", - "@airgap/beacon-types": "^0.0.1-beta.0", - "@airgap/beacon-utils": "^0.0.1-beta.0" + "@airgap/beacon-core": "^0.0.1-beta.3", + "@airgap/beacon-types": "^0.0.1-beta.3", + "@airgap/beacon-utils": "^0.0.1-beta.3", + "@types/libsodium-wrappers": "0.7.9", + "libsodium-wrappers": "0.7.9" } }, "packages/beacon-types": { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.0", + "version": "0.0.1-beta.3", "license": "ISC", "dependencies": { "@types/chrome": "0.0.115" @@ -15590,24 +15627,26 @@ }, "packages/beacon-ui": { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.0", + "version": "0.0.1-beta.3", "license": "ISC" }, "packages/beacon-utils": { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.0", + "version": "0.0.1-beta.3", "license": "ISC", "dependencies": { - "@types/libsodium-wrappers": "0.7.8" + "@types/libsodium-wrappers": "0.7.9", + "bs58check": "2.1.2", + "libsodium-wrappers": "0.7.9" } }, "packages/beacon-wallet": { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.0", + "version": "0.0.1-beta.3", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.0", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.0" + "@airgap/beacon-core": "^0.0.1-beta.3", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.3" } } }, @@ -15615,15 +15654,19 @@ "@airgap/beacon-core": { "version": "file:packages/beacon-core", "requires": { - "@airgap/beacon-types": "^0.0.1-beta.0", - "@airgap/beacon-utils": "^0.0.1-beta.0" + "@airgap/beacon-types": "^0.0.1-beta.3", + "@airgap/beacon-utils": "^0.0.1-beta.3", + "@types/libsodium-wrappers": "0.7.9", + "bs58check": "2.1.2", + "libsodium-wrappers": "0.7.9" } }, "@airgap/beacon-dapp": { "version": "file:packages/beacon-dapp", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.0", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.0", + "@airgap/beacon-core": "^0.0.1-beta.3", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.3", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.3", "qrcode-generator": "1.4.4" } }, @@ -15636,17 +15679,19 @@ "@airgap/beacon-transport-matrix": { "version": "file:packages/beacon-transport-matrix", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.0", - "@airgap/beacon-utils": "^0.0.1-beta.0", + "@airgap/beacon-core": "^0.0.1-beta.3", + "@airgap/beacon-utils": "^0.0.1-beta.3", "axios": "0.21.1" } }, "@airgap/beacon-transport-postmessage": { "version": "file:packages/beacon-transport-postmessage", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.0", - "@airgap/beacon-types": "^0.0.1-beta.0", - "@airgap/beacon-utils": "^0.0.1-beta.0" + "@airgap/beacon-core": "^0.0.1-beta.3", + "@airgap/beacon-types": "^0.0.1-beta.3", + "@airgap/beacon-utils": "^0.0.1-beta.3", + "@types/libsodium-wrappers": "0.7.9", + "libsodium-wrappers": "0.7.9" } }, "@airgap/beacon-types": { @@ -15661,14 +15706,16 @@ "@airgap/beacon-utils": { "version": "file:packages/beacon-utils", "requires": { - "@types/libsodium-wrappers": "0.7.8" + "@types/libsodium-wrappers": "0.7.9", + "bs58check": "2.1.2", + "libsodium-wrappers": "0.7.9" } }, "@airgap/beacon-wallet": { "version": "file:packages/beacon-wallet", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.0", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.0" + "@airgap/beacon-core": "^0.0.1-beta.3", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.3" } }, "@babel/code-frame": { @@ -18603,9 +18650,9 @@ "dev": true }, "@types/libsodium-wrappers": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz", - "integrity": "sha512-vkDSj6enD3K0+Ep83wnoGUk+f7sqsO4alsqxxEZ8BcTJhFmcY4UehYH3rTf4M3JGHXNhdpGFDdMbWFMgyvw/fA==" + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.9.tgz", + "integrity": "sha512-LisgKLlYQk19baQwjkBZZXdJL0KbeTpdEnrAfz5hQACbklCY0gVFnsKUyjfNWF1UQsCSjw93Sj5jSbiO8RPfdw==" }, "@types/minimatch": { "version": "3.0.3", @@ -19293,6 +19340,14 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, + "base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, "base64-js": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", @@ -19631,6 +19686,24 @@ "pako": "~1.0.5" } }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, "buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -19878,7 +19951,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -20442,7 +20514,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, "requires": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -22423,7 +22494,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -22750,8 +22820,7 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "1.3.8", @@ -23678,6 +23747,19 @@ } } }, + "libsodium": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.9.tgz", + "integrity": "sha512-gfeADtR4D/CM0oRUviKBViMGXZDgnFdMKMzHsvBdqLBHd9ySi6EtYnmuhHVDDYgYpAO8eU8hEY+F8vIUAPh08A==" + }, + "libsodium-wrappers": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.9.tgz", + "integrity": "sha512-9HaAeBGk1nKTRFRHkt7nzxqCvnkWTjn1pdjKgcUnZxj0FyOP4CnhgFhMdrFfgNsukijBGyBLpP2m2uKT1vuWhQ==", + "requires": { + "libsodium": "^0.7.0" + } + }, "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", @@ -23871,7 +23953,6 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -26520,7 +26601,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -26553,8 +26633,7 @@ "safe-buffer": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", - "dev": true + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" }, "safer-buffer": { "version": "2.1.2", @@ -26605,7 +26684,6 @@ "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" diff --git a/packages/beacon-dapp/src/ui/alert/Pairing.ts b/packages/beacon-dapp/src/ui/alert/Pairing.ts index 86a012840..e90650e76 100644 --- a/packages/beacon-dapp/src/ui/alert/Pairing.ts +++ b/packages/beacon-dapp/src/ui/alert/Pairing.ts @@ -9,9 +9,8 @@ import { import { windowRef } from '@airgap/beacon-core' import { getTzip10Link } from '../../utils/get-tzip10-link' import { isAndroid, isIOS } from '../../utils/platform' -import { PostMessageTransport } from '../../transports/PostMessageTransport' +import { PostMessageTransport } from '@airgap/beacon-transport-postmessage' import { desktopList, extensionList, iOSList, webList } from './wallet-lists' -import { availableTransports } from '../../utils/available-transports' const serializer = new Serializer() diff --git a/packages/beacon-dapp/src/ui/alert/PairingAlert.ts b/packages/beacon-dapp/src/ui/alert/PairingAlert.ts index 399e992aa..4c4c4a81a 100644 --- a/packages/beacon-dapp/src/ui/alert/PairingAlert.ts +++ b/packages/beacon-dapp/src/ui/alert/PairingAlert.ts @@ -1,9 +1,8 @@ -import { Serializer, generateGUID, Logger } from '@airgap/beacon-core' +import { Serializer, generateGUID, Logger, windowRef } from '@airgap/beacon-core' import { NetworkType, P2PPairingRequest, PostMessagePairingRequest } from '@airgap/beacon-types' import { isAndroid, isIOS } from '../../utils/platform' import { getQrData } from '../../utils/qr' import { getTzip10Link } from '../../utils/get-tzip10-link' -import { windowRef } from '../../MockWindow' import { closeAlerts } from './Alert' import { Pairing, From d9e43635902e71be5d55eaecd38e7d743c18ab9f Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 8 Nov 2021 14:20:21 +0100 Subject: [PATCH 039/130] fix(build): esm and cjs --- packages/beacon-core/__tests__/beacon-core.spec.ts | 7 +++++++ packages/beacon-core/__tests__/beacon-core.test.js | 7 ------- packages/beacon-core/package.json | 9 +++++---- packages/beacon-core/tsconfig-cjs.json | 8 ++++++++ packages/beacon-core/tsconfig.json | 4 +++- .../{beacon-dapp.test.js => beacon-dapp.spec.ts} | 0 packages/beacon-dapp/package.json | 9 +++++---- packages/beacon-dapp/tsconfig-cjs.json | 8 ++++++++ packages/beacon-dapp/tsconfig.json | 2 +- ...rate.test.js => beacon-protocol-substrate.spec.ts} | 0 packages/beacon-protocol-kusama/package.json | 9 +++++---- packages/beacon-protocol-kusama/tsconfig-cjs.json | 8 ++++++++ packages/beacon-protocol-kusama/tsconfig.json | 2 +- ...ol-tezos.test.js => beacon-protocol-tezos.spec.ts} | 0 packages/beacon-protocol-tezos/package.json | 9 +++++---- packages/beacon-protocol-tezos/tsconfig-cjs.json | 8 ++++++++ packages/beacon-protocol-tezos/tsconfig.json | 2 +- ...matrix.test.js => beacon-transport-matrix.spec.ts} | 0 packages/beacon-transport-matrix/package.json | 9 +++++---- packages/beacon-transport-matrix/tsconfig-cjs.json | 8 ++++++++ packages/beacon-transport-matrix/tsconfig.json | 2 +- ...e.test.js => beacon-transport-postmessage.spec.ts} | 0 packages/beacon-transport-postmessage/package.json | 9 +++++---- .../beacon-transport-postmessage/tsconfig-cjs.json | 8 ++++++++ packages/beacon-transport-postmessage/tsconfig.json | 2 +- .../{beacon-types.test.js => beacon-types.spec.ts} | 0 packages/beacon-types/package.json | 9 +++++---- packages/beacon-types/tsconfig-cjs.json | 8 ++++++++ packages/beacon-types/tsconfig.json | 2 +- .../{beacon-ui.test.js => beacon-ui.spec.ts} | 0 packages/beacon-ui/package.json | 9 +++++---- packages/beacon-ui/tsconfig-cjs.json | 8 ++++++++ packages/beacon-ui/tsconfig.json | 2 +- .../{beacon-utils.test.js => beacon-utils.spec.ts} | 0 packages/beacon-utils/package.json | 11 ++++++----- packages/beacon-utils/tsconfig-cjs.json | 8 ++++++++ packages/beacon-utils/tsconfig.json | 2 +- .../{beacon-wallet.test.js => beacon-wallet.spec.ts} | 0 packages/beacon-wallet/package.json | 9 +++++---- packages/beacon-wallet/tsconfig-cjs.json | 8 ++++++++ packages/beacon-wallet/tsconfig.json | 2 +- tsconfig.test.json | 4 +--- 42 files changed, 151 insertions(+), 61 deletions(-) create mode 100644 packages/beacon-core/__tests__/beacon-core.spec.ts delete mode 100644 packages/beacon-core/__tests__/beacon-core.test.js create mode 100644 packages/beacon-core/tsconfig-cjs.json rename packages/beacon-dapp/__tests__/{beacon-dapp.test.js => beacon-dapp.spec.ts} (100%) create mode 100644 packages/beacon-dapp/tsconfig-cjs.json rename packages/beacon-protocol-kusama/__tests__/{beacon-protocol-substrate.test.js => beacon-protocol-substrate.spec.ts} (100%) create mode 100644 packages/beacon-protocol-kusama/tsconfig-cjs.json rename packages/beacon-protocol-tezos/__tests__/{beacon-protocol-tezos.test.js => beacon-protocol-tezos.spec.ts} (100%) create mode 100644 packages/beacon-protocol-tezos/tsconfig-cjs.json rename packages/beacon-transport-matrix/__tests__/{beacon-transport-matrix.test.js => beacon-transport-matrix.spec.ts} (100%) create mode 100644 packages/beacon-transport-matrix/tsconfig-cjs.json rename packages/beacon-transport-postmessage/__tests__/{beacon-transport-postmessage.test.js => beacon-transport-postmessage.spec.ts} (100%) create mode 100644 packages/beacon-transport-postmessage/tsconfig-cjs.json rename packages/beacon-types/__tests__/{beacon-types.test.js => beacon-types.spec.ts} (100%) create mode 100644 packages/beacon-types/tsconfig-cjs.json rename packages/beacon-ui/__tests__/{beacon-ui.test.js => beacon-ui.spec.ts} (100%) create mode 100644 packages/beacon-ui/tsconfig-cjs.json rename packages/beacon-utils/__tests__/{beacon-utils.test.js => beacon-utils.spec.ts} (100%) create mode 100644 packages/beacon-utils/tsconfig-cjs.json rename packages/beacon-wallet/__tests__/{beacon-wallet.test.js => beacon-wallet.spec.ts} (100%) create mode 100644 packages/beacon-wallet/tsconfig-cjs.json diff --git a/packages/beacon-core/__tests__/beacon-core.spec.ts b/packages/beacon-core/__tests__/beacon-core.spec.ts new file mode 100644 index 000000000..f4db21039 --- /dev/null +++ b/packages/beacon-core/__tests__/beacon-core.spec.ts @@ -0,0 +1,7 @@ +'use strict' + +import { SDK_VERSION } from '../src/index' + +describe('@airgap/beacon-core', () => { + it('needs tests' + SDK_VERSION) +}) diff --git a/packages/beacon-core/__tests__/beacon-core.test.js b/packages/beacon-core/__tests__/beacon-core.test.js deleted file mode 100644 index 49cf95ec4..000000000 --- a/packages/beacon-core/__tests__/beacon-core.test.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -const beaconCore = require('..') - -describe('@airgap/beacon-core', () => { - it('needs tests') -}) diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 898f85e2d..e2399d579 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -5,13 +5,14 @@ "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", - "main": "lib/index.js", + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", "directories": { "lib": "lib", "test": "__tests__" }, "files": [ - "lib" + "dist" ], "publishConfig": { "access": "public" @@ -21,8 +22,8 @@ "url": "git+https://github.com/airgap-it/beacon-sdk.git" }, "scripts": { - "tsc": "tsc", - "test": "echo \"Error: run tests from root\" && exit 1" + "tsc": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json", + "test": "TS_NODE_PROJECT='tsconfig-cjs.json' nyc mocha --require ts-node/register --require source-map-support/register --full-trace --timeout 40000 ./__tests__/**/**.spec.ts" }, "bugs": { "url": "https://github.com/airgap-it/beacon-sdk/issues" diff --git a/packages/beacon-core/tsconfig-cjs.json b/packages/beacon-core/tsconfig-cjs.json new file mode 100644 index 000000000..087accbdf --- /dev/null +++ b/packages/beacon-core/tsconfig-cjs.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "target": "es5", + "module": "commonjs", + "outDir": "./dist/cjs" + } +} diff --git a/packages/beacon-core/tsconfig.json b/packages/beacon-core/tsconfig.json index 8186cbd1c..ae7722180 100644 --- a/packages/beacon-core/tsconfig.json +++ b/packages/beacon-core/tsconfig.json @@ -1,8 +1,10 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib", "baseUrl": ".", + "target": "es5", + "module": "commonjs", + "outDir": "./dist/cjs", "paths": { "@airgap/beacon-core": ["./src"] } diff --git a/packages/beacon-dapp/__tests__/beacon-dapp.test.js b/packages/beacon-dapp/__tests__/beacon-dapp.spec.ts similarity index 100% rename from packages/beacon-dapp/__tests__/beacon-dapp.test.js rename to packages/beacon-dapp/__tests__/beacon-dapp.spec.ts diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index ea3ee3eec..51c39243f 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -5,13 +5,14 @@ "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", - "main": "lib/index.js", + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", "directories": { "lib": "lib", "test": "__tests__" }, "files": [ - "lib" + "dist" ], "publishConfig": { "access": "public" @@ -21,8 +22,8 @@ "url": "git+https://github.com/airgap-it/beacon-sdk.git" }, "scripts": { - "tsc": "tsc", - "test": "echo \"Error: run tests from root\" && exit 1" + "tsc": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json", + "test": "TS_NODE_PROJECT='tsconfig-cjs.json' nyc mocha --require ts-node/register --require source-map-support/register --full-trace --timeout 40000 ./__tests__/**/**.spec.ts" }, "bugs": { "url": "https://github.com/airgap-it/beacon-sdk/issues" diff --git a/packages/beacon-dapp/tsconfig-cjs.json b/packages/beacon-dapp/tsconfig-cjs.json new file mode 100644 index 000000000..087accbdf --- /dev/null +++ b/packages/beacon-dapp/tsconfig-cjs.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "target": "es5", + "module": "commonjs", + "outDir": "./dist/cjs" + } +} diff --git a/packages/beacon-dapp/tsconfig.json b/packages/beacon-dapp/tsconfig.json index d0b636a84..8b3251159 100644 --- a/packages/beacon-dapp/tsconfig.json +++ b/packages/beacon-dapp/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib", + "outDir": "./dist/esm", "baseUrl": ".", "paths": { "@airgap/beacon-dapp": ["./src"] diff --git a/packages/beacon-protocol-kusama/__tests__/beacon-protocol-substrate.test.js b/packages/beacon-protocol-kusama/__tests__/beacon-protocol-substrate.spec.ts similarity index 100% rename from packages/beacon-protocol-kusama/__tests__/beacon-protocol-substrate.test.js rename to packages/beacon-protocol-kusama/__tests__/beacon-protocol-substrate.spec.ts diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-protocol-kusama/package.json index 4edf4076a..84a254a2c 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -5,13 +5,14 @@ "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", - "main": "lib/index.js", + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", "directories": { "lib": "lib", "test": "__tests__" }, "files": [ - "lib" + "dist" ], "publishConfig": { "access": "public" @@ -21,8 +22,8 @@ "url": "git+https://github.com/airgap-it/beacon-sdk.git" }, "scripts": { - "tsc": "tsc", - "test": "echo \"Error: run tests from root\" && exit 1" + "tsc": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json", + "test": "TS_NODE_PROJECT='tsconfig-cjs.json' nyc mocha --require ts-node/register --require source-map-support/register --full-trace --timeout 40000 ./__tests__/**/**.spec.ts" }, "bugs": { "url": "https://github.com/airgap-it/beacon-sdk/issues" diff --git a/packages/beacon-protocol-kusama/tsconfig-cjs.json b/packages/beacon-protocol-kusama/tsconfig-cjs.json new file mode 100644 index 000000000..087accbdf --- /dev/null +++ b/packages/beacon-protocol-kusama/tsconfig-cjs.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "target": "es5", + "module": "commonjs", + "outDir": "./dist/cjs" + } +} diff --git a/packages/beacon-protocol-kusama/tsconfig.json b/packages/beacon-protocol-kusama/tsconfig.json index 94a007515..b0105a2de 100644 --- a/packages/beacon-protocol-kusama/tsconfig.json +++ b/packages/beacon-protocol-kusama/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib", + "outDir": "./dist/esm", "baseUrl": ".", "paths": { "@airgap/beacon-protocol-kusama": ["./src"] diff --git a/packages/beacon-protocol-tezos/__tests__/beacon-protocol-tezos.test.js b/packages/beacon-protocol-tezos/__tests__/beacon-protocol-tezos.spec.ts similarity index 100% rename from packages/beacon-protocol-tezos/__tests__/beacon-protocol-tezos.test.js rename to packages/beacon-protocol-tezos/__tests__/beacon-protocol-tezos.spec.ts diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index 9f0a59ee5..1dc59ec5f 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -5,13 +5,14 @@ "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", - "main": "lib/index.js", + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", "directories": { "lib": "lib", "test": "__tests__" }, "files": [ - "lib" + "dist" ], "publishConfig": { "access": "public" @@ -21,8 +22,8 @@ "url": "git+https://github.com/airgap-it/beacon-sdk.git" }, "scripts": { - "tsc": "tsc", - "test": "echo \"Error: run tests from root\" && exit 1" + "tsc": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json", + "test": "TS_NODE_PROJECT='tsconfig-cjs.json' nyc mocha --require ts-node/register --require source-map-support/register --full-trace --timeout 40000 ./__tests__/**/**.spec.ts" }, "bugs": { "url": "https://github.com/airgap-it/beacon-sdk/issues" diff --git a/packages/beacon-protocol-tezos/tsconfig-cjs.json b/packages/beacon-protocol-tezos/tsconfig-cjs.json new file mode 100644 index 000000000..087accbdf --- /dev/null +++ b/packages/beacon-protocol-tezos/tsconfig-cjs.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "target": "es5", + "module": "commonjs", + "outDir": "./dist/cjs" + } +} diff --git a/packages/beacon-protocol-tezos/tsconfig.json b/packages/beacon-protocol-tezos/tsconfig.json index 92cdfca0e..69818cc93 100644 --- a/packages/beacon-protocol-tezos/tsconfig.json +++ b/packages/beacon-protocol-tezos/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib", + "outDir": "./dist/esm", "baseUrl": ".", "paths": { "@airgap/beacon-protocol-tezos": ["./src"] diff --git a/packages/beacon-transport-matrix/__tests__/beacon-transport-matrix.test.js b/packages/beacon-transport-matrix/__tests__/beacon-transport-matrix.spec.ts similarity index 100% rename from packages/beacon-transport-matrix/__tests__/beacon-transport-matrix.test.js rename to packages/beacon-transport-matrix/__tests__/beacon-transport-matrix.spec.ts diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index 3ba1fc7c5..a4fc2f2ea 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -5,13 +5,14 @@ "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", - "main": "lib/index.js", + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", "directories": { "lib": "lib", "test": "__tests__" }, "files": [ - "lib" + "dist" ], "publishConfig": { "access": "public" @@ -21,8 +22,8 @@ "url": "git+https://github.com/airgap-it/beacon-sdk.git" }, "scripts": { - "tsc": "tsc", - "test": "echo \"Error: run tests from root\" && exit 1" + "tsc": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json", + "test": "TS_NODE_PROJECT='tsconfig-cjs.json' nyc mocha --require ts-node/register --require source-map-support/register --full-trace --timeout 40000 ./__tests__/**/**.spec.ts" }, "bugs": { "url": "https://github.com/airgap-it/beacon-sdk/issues" diff --git a/packages/beacon-transport-matrix/tsconfig-cjs.json b/packages/beacon-transport-matrix/tsconfig-cjs.json new file mode 100644 index 000000000..087accbdf --- /dev/null +++ b/packages/beacon-transport-matrix/tsconfig-cjs.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "target": "es5", + "module": "commonjs", + "outDir": "./dist/cjs" + } +} diff --git a/packages/beacon-transport-matrix/tsconfig.json b/packages/beacon-transport-matrix/tsconfig.json index 775a14714..7a3e9f222 100644 --- a/packages/beacon-transport-matrix/tsconfig.json +++ b/packages/beacon-transport-matrix/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib", + "outDir": "./dist/esm", "baseUrl": ".", "paths": { "@airgap/beacon-transport-matrix": ["./src"] diff --git a/packages/beacon-transport-postmessage/__tests__/beacon-transport-postmessage.test.js b/packages/beacon-transport-postmessage/__tests__/beacon-transport-postmessage.spec.ts similarity index 100% rename from packages/beacon-transport-postmessage/__tests__/beacon-transport-postmessage.test.js rename to packages/beacon-transport-postmessage/__tests__/beacon-transport-postmessage.spec.ts diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index fddc3e2cd..2cb3b5d79 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -5,13 +5,14 @@ "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", - "main": "lib/index.js", + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", "directories": { "lib": "lib", "test": "__tests__" }, "files": [ - "lib" + "dist" ], "publishConfig": { "access": "public" @@ -21,8 +22,8 @@ "url": "git+https://github.com/airgap-it/beacon-sdk.git" }, "scripts": { - "tsc": "tsc", - "test": "echo \"Error: run tests from root\" && exit 1" + "tsc": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json", + "test": "TS_NODE_PROJECT='tsconfig-cjs.json' nyc mocha --require ts-node/register --require source-map-support/register --full-trace --timeout 40000 ./__tests__/**/**.spec.ts" }, "bugs": { "url": "https://github.com/airgap-it/beacon-sdk/issues" diff --git a/packages/beacon-transport-postmessage/tsconfig-cjs.json b/packages/beacon-transport-postmessage/tsconfig-cjs.json new file mode 100644 index 000000000..087accbdf --- /dev/null +++ b/packages/beacon-transport-postmessage/tsconfig-cjs.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "target": "es5", + "module": "commonjs", + "outDir": "./dist/cjs" + } +} diff --git a/packages/beacon-transport-postmessage/tsconfig.json b/packages/beacon-transport-postmessage/tsconfig.json index 03761bda3..f199f42ff 100644 --- a/packages/beacon-transport-postmessage/tsconfig.json +++ b/packages/beacon-transport-postmessage/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib", + "outDir": "./dist/esm", "baseUrl": ".", "paths": { "@airgap/beacon-transport-postmessage": ["./src"] diff --git a/packages/beacon-types/__tests__/beacon-types.test.js b/packages/beacon-types/__tests__/beacon-types.spec.ts similarity index 100% rename from packages/beacon-types/__tests__/beacon-types.test.js rename to packages/beacon-types/__tests__/beacon-types.spec.ts diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 8dac28c58..938f1efd4 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -5,13 +5,14 @@ "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", - "main": "lib/index.js", + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", "directories": { "lib": "lib", "test": "__tests__" }, "files": [ - "lib" + "dist" ], "publishConfig": { "access": "public" @@ -21,8 +22,8 @@ "url": "git+https://github.com/airgap-it/beacon-sdk.git" }, "scripts": { - "tsc": "tsc", - "test": "echo \"Error: run tests from root\" && exit 1" + "tsc": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json", + "test": "TS_NODE_PROJECT='tsconfig-cjs.json' nyc mocha --require ts-node/register --require source-map-support/register --full-trace --timeout 40000 ./__tests__/**/**.spec.ts" }, "bugs": { "url": "https://github.com/airgap-it/beacon-sdk/issues" diff --git a/packages/beacon-types/tsconfig-cjs.json b/packages/beacon-types/tsconfig-cjs.json new file mode 100644 index 000000000..087accbdf --- /dev/null +++ b/packages/beacon-types/tsconfig-cjs.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "target": "es5", + "module": "commonjs", + "outDir": "./dist/cjs" + } +} diff --git a/packages/beacon-types/tsconfig.json b/packages/beacon-types/tsconfig.json index 9af4ffb66..712254387 100644 --- a/packages/beacon-types/tsconfig.json +++ b/packages/beacon-types/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib", + "outDir": "./dist/esm", "baseUrl": ".", "paths": { "@airgap/beacon-types": ["./src"] diff --git a/packages/beacon-ui/__tests__/beacon-ui.test.js b/packages/beacon-ui/__tests__/beacon-ui.spec.ts similarity index 100% rename from packages/beacon-ui/__tests__/beacon-ui.test.js rename to packages/beacon-ui/__tests__/beacon-ui.spec.ts diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index 5977a8da3..47fc1e89c 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -5,13 +5,14 @@ "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", - "main": "lib/index.js", + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", "directories": { "lib": "lib", "test": "__tests__" }, "files": [ - "lib" + "dist" ], "publishConfig": { "access": "public" @@ -21,8 +22,8 @@ "url": "git+https://github.com/airgap-it/beacon-sdk.git" }, "scripts": { - "tsc": "tsc", - "test": "echo \"Error: run tests from root\" && exit 1" + "tsc": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json", + "test": "TS_NODE_PROJECT='tsconfig-cjs.json' nyc mocha --require ts-node/register --require source-map-support/register --full-trace --timeout 40000 ./__tests__/**/**.spec.ts" }, "bugs": { "url": "https://github.com/airgap-it/beacon-sdk/issues" diff --git a/packages/beacon-ui/tsconfig-cjs.json b/packages/beacon-ui/tsconfig-cjs.json new file mode 100644 index 000000000..087accbdf --- /dev/null +++ b/packages/beacon-ui/tsconfig-cjs.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "target": "es5", + "module": "commonjs", + "outDir": "./dist/cjs" + } +} diff --git a/packages/beacon-ui/tsconfig.json b/packages/beacon-ui/tsconfig.json index b09eb8ff9..aaea96768 100644 --- a/packages/beacon-ui/tsconfig.json +++ b/packages/beacon-ui/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib", + "outDir": "./dist/esm", "baseUrl": ".", "paths": { "@airgap/beacon-ui": ["./src"] diff --git a/packages/beacon-utils/__tests__/beacon-utils.test.js b/packages/beacon-utils/__tests__/beacon-utils.spec.ts similarity index 100% rename from packages/beacon-utils/__tests__/beacon-utils.test.js rename to packages/beacon-utils/__tests__/beacon-utils.spec.ts diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 32504ffbf..2691eb2cb 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -5,13 +5,14 @@ "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", - "main": "lib/index.js", + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", "directories": { - "lib": "lib", + "lib": "dist/cjs", "test": "__tests__" }, "files": [ - "lib" + "dist" ], "publishConfig": { "access": "public" @@ -21,8 +22,8 @@ "url": "git+https://github.com/airgap-it/beacon-sdk.git" }, "scripts": { - "tsc": "tsc", - "test": "echo \"Error: run tests from root\" && exit 1" + "tsc": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json", + "test": "TS_NODE_PROJECT='tsconfig-cjs.json' nyc mocha --require ts-node/register --require source-map-support/register --full-trace --timeout 40000 ./__tests__/**/**.spec.ts" }, "bugs": { "url": "https://github.com/airgap-it/beacon-sdk/issues" diff --git a/packages/beacon-utils/tsconfig-cjs.json b/packages/beacon-utils/tsconfig-cjs.json new file mode 100644 index 000000000..087accbdf --- /dev/null +++ b/packages/beacon-utils/tsconfig-cjs.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "target": "es5", + "module": "commonjs", + "outDir": "./dist/cjs" + } +} diff --git a/packages/beacon-utils/tsconfig.json b/packages/beacon-utils/tsconfig.json index 3bdf78aed..5ed38b5aa 100644 --- a/packages/beacon-utils/tsconfig.json +++ b/packages/beacon-utils/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib", + "outDir": "./dist/esm", "baseUrl": ".", "paths": { "@airgap/beacon-utils": ["./src"] diff --git a/packages/beacon-wallet/__tests__/beacon-wallet.test.js b/packages/beacon-wallet/__tests__/beacon-wallet.spec.ts similarity index 100% rename from packages/beacon-wallet/__tests__/beacon-wallet.test.js rename to packages/beacon-wallet/__tests__/beacon-wallet.spec.ts diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 368c11310..863abdad2 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -5,13 +5,14 @@ "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", - "main": "lib/index.js", + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", "directories": { "lib": "lib", "test": "__tests__" }, "files": [ - "lib" + "dist" ], "publishConfig": { "access": "public" @@ -21,8 +22,8 @@ "url": "git+https://github.com/airgap-it/beacon-sdk.git" }, "scripts": { - "tsc": "tsc", - "test": "echo \"Error: run tests from root\" && exit 1" + "tsc": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json", + "test": "TS_NODE_PROJECT='tsconfig-cjs.json' nyc mocha --require ts-node/register --require source-map-support/register --full-trace --timeout 40000 ./__tests__/**/**.spec.ts" }, "bugs": { "url": "https://github.com/airgap-it/beacon-sdk/issues" diff --git a/packages/beacon-wallet/tsconfig-cjs.json b/packages/beacon-wallet/tsconfig-cjs.json new file mode 100644 index 000000000..087accbdf --- /dev/null +++ b/packages/beacon-wallet/tsconfig-cjs.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "target": "es5", + "module": "commonjs", + "outDir": "./dist/cjs" + } +} diff --git a/packages/beacon-wallet/tsconfig.json b/packages/beacon-wallet/tsconfig.json index 5ba96e30b..3e93522c9 100644 --- a/packages/beacon-wallet/tsconfig.json +++ b/packages/beacon-wallet/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./lib", + "outDir": "./dist/esm", "baseUrl": ".", "paths": { "@airgap/beacon-wallet": ["./src"] diff --git a/tsconfig.test.json b/tsconfig.test.json index c1d570b8c..e18d24dc1 100644 --- a/tsconfig.test.json +++ b/tsconfig.test.json @@ -1,9 +1,7 @@ { "extends": "./tsconfig-cjs.json", "compilerOptions": { - "strict": false /* Can't get strict mode to work in tests because type imports don't work */, - "noImplicitAny": false, - "esModuleInterop": false + "noImplicitAny": false }, "include": ["./scripts/*.ts"] } From a7143077629687d190276e235221a18ea0a94008 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 8 Nov 2021 14:30:33 +0100 Subject: [PATCH 040/130] chore(): remove test tsconfig --- tsconfig.test.json | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 tsconfig.test.json diff --git a/tsconfig.test.json b/tsconfig.test.json deleted file mode 100644 index e18d24dc1..000000000 --- a/tsconfig.test.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "./tsconfig-cjs.json", - "compilerOptions": { - "noImplicitAny": false - }, - "include": ["./scripts/*.ts"] -} From a79cf156067dd55f681e26750725c9a52ad7586a Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 8 Nov 2021 14:36:34 +0100 Subject: [PATCH 041/130] fix(wallet): add matrix package --- package-lock.json | 2 ++ packages/beacon-wallet/package.json | 1 + 2 files changed, 3 insertions(+) diff --git a/package-lock.json b/package-lock.json index 3c8da3e28..b48cd4436 100755 --- a/package-lock.json +++ b/package-lock.json @@ -15646,6 +15646,7 @@ "license": "ISC", "dependencies": { "@airgap/beacon-core": "^0.0.1-beta.3", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.3", "@airgap/beacon-transport-postmessage": "^0.0.1-beta.3" } } @@ -15715,6 +15716,7 @@ "version": "file:packages/beacon-wallet", "requires": { "@airgap/beacon-core": "^0.0.1-beta.3", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.3", "@airgap/beacon-transport-postmessage": "^0.0.1-beta.3" } }, diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 863abdad2..869bfab35 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -30,6 +30,7 @@ }, "dependencies": { "@airgap/beacon-core": "^0.0.1-beta.3", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.3", "@airgap/beacon-transport-postmessage": "^0.0.1-beta.3" } } From 5f0c08f05419f01a5c04c5f0b06f29ef27c9d94c Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 8 Nov 2021 14:50:04 +0100 Subject: [PATCH 042/130] fix(ci): disable e2e tests --- .github/workflows/build.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dbec3664c..faef8afcf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,14 +40,14 @@ jobs: token: ${{ secrets.GITHUB_TOKEN }} id: setup-ffmpeg - - name: Test E2E - run: npm run e2e:all - - - name: Upload - uses: actions/upload-artifact@v1 - with: - name: video - path: e2e/output/combined.webm + # - name: Test E2E + # run: npm run e2e:all + + # - name: Upload + # uses: actions/upload-artifact@v1 + # with: + # name: video + # path: e2e/output/combined.webm - name: Analyze with SonarCloud uses: sonarsource/sonarcloud-github-action@master From 71b54d8d4c039430640f0eb16b03094306b8ef99 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 8 Nov 2021 15:02:38 +0100 Subject: [PATCH 043/130] chore(ci): remove sonar --- .github/workflows/build.yml | 13 +++++-------- sonar-project.properties | 4 ++-- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index faef8afcf..9a806957d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -39,18 +39,15 @@ jobs: # errors especially on GitHub-hosted macos machines. token: ${{ secrets.GITHUB_TOKEN }} id: setup-ffmpeg - # - name: Test E2E # run: npm run e2e:all - # - name: Upload # uses: actions/upload-artifact@v1 # with: # name: video # path: e2e/output/combined.webm - - - name: Analyze with SonarCloud - uses: sonarsource/sonarcloud-github-action@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + # - name: Analyze with SonarCloud + # uses: sonarsource/sonarcloud-github-action@master + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} diff --git a/sonar-project.properties b/sonar-project.properties index 6780ce179..115589ba1 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -5,9 +5,9 @@ sonar.organization=airgap-it #sonar.projectName=beacon-sdk #sonar.projectVersion=1.0 -sonar.sources=src +sonar.sources=packages/**/src sonar.exclusions=**/node_modules/**,**/*.spec.ts -sonar.tests=test +sonar.tests=packages/**/__tests__ sonar.test.inclusions=**/*.spec.ts sonar.javascript.lcov.reportPaths=/github/workspace/coverage/lcov.info \ No newline at end of file From e1fa737a1879c772fa882f9d2d997f5ac439f37f Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 8 Nov 2021 15:19:20 +0100 Subject: [PATCH 044/130] chore(release): 0.0.1-beta.4 --- lerna.json | 2 +- packages/beacon-core/package.json | 6 +++--- packages/beacon-dapp/package.json | 8 ++++---- packages/beacon-protocol-kusama/package.json | 2 +- packages/beacon-protocol-tezos/package.json | 2 +- packages/beacon-transport-matrix/package.json | 6 +++--- packages/beacon-transport-postmessage/package.json | 8 ++++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 2 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 ++++---- 11 files changed, 24 insertions(+), 24 deletions(-) diff --git a/lerna.json b/lerna.json index 2b0f8d7f3..6b6f312c5 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "0.0.1-beta.3" + "version": "0.0.1-beta.4" } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index e2399d579..3f64de5ad 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -29,8 +29,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.3", - "@airgap/beacon-utils": "^0.0.1-beta.3", + "@airgap/beacon-types": "^0.0.1-beta.4", + "@airgap/beacon-utils": "^0.0.1-beta.4", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 51c39243f..ede2f6bf2 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -29,9 +29,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.3", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.3", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.3", + "@airgap/beacon-core": "^0.0.1-beta.4", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.4", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.4", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-protocol-kusama/package.json index 84a254a2c..d3cbce10e 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index 1dc59ec5f..e5e4fdcb9 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index a4fc2f2ea..91f6b0d5f 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -29,8 +29,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.3", - "@airgap/beacon-utils": "^0.0.1-beta.3", + "@airgap/beacon-core": "^0.0.1-beta.4", + "@airgap/beacon-utils": "^0.0.1-beta.4", "axios": "0.21.1" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 2cb3b5d79..dfddbb503 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -29,9 +29,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.3", - "@airgap/beacon-types": "^0.0.1-beta.3", - "@airgap/beacon-utils": "^0.0.1-beta.3", + "@airgap/beacon-core": "^0.0.1-beta.4", + "@airgap/beacon-types": "^0.0.1-beta.4", + "@airgap/beacon-utils": "^0.0.1-beta.4", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 938f1efd4..e5271c3b8 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index 47fc1e89c..02dce0c92 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 2691eb2cb..a93b4743d 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 869bfab35..4c044ef2a 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -29,8 +29,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.3", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.3", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.3" + "@airgap/beacon-core": "^0.0.1-beta.4", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.4", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.4" } } From 8c35cfe32f82c8ef8bf3980bc17e638e7a11ee19 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 8 Nov 2021 16:37:42 +0100 Subject: [PATCH 045/130] fix(build): esm build, change libsodium import --- package.json | 6 ++--- .../src/clients/beacon-client/BeaconClient.ts | 2 +- .../transports/clients/CommunicationClient.ts | 2 +- .../transports/clients/MessageBasedClient.ts | 2 +- .../beacon-core/src/utils/generate-uuid.ts | 2 +- .../src/utils/get-account-identifier.ts | 2 +- .../beacon-core/src/utils/get-sender-id.ts | 2 +- packages/beacon-core/tsconfig.json | 2 +- .../src/transports/DappP2PTransport.ts | 2 +- .../transports/DappPostMessageTransport.ts | 2 +- .../src/P2PTransport.ts | 2 +- .../P2PCommunicationClient.ts | 2 +- .../src/PostMessageClient.ts | 2 +- .../src/PostMessageTransport.ts | 2 +- packages/beacon-utils/src/utils/crypto.ts | 2 +- .../src/transports/WalletP2PTransport.ts | 2 +- .../transports/WalletPostMessageTransport.ts | 2 +- scripts/change-files-after-tests.ts | 26 ------------------- scripts/change-files-before-tests.ts | 26 ------------------- 19 files changed, 18 insertions(+), 72 deletions(-) delete mode 100644 scripts/change-files-after-tests.ts delete mode 100644 scripts/change-files-before-tests.ts diff --git a/package.json b/package.json index d8c24fb72..5abd4b3f9 100644 --- a/package.json +++ b/package.json @@ -23,16 +23,14 @@ }, "scripts": { "prebuild": "ts-node --project tsconfig-cjs.json scripts/generate-wallet-list.ts", - "build": "npm run pretest && lerna run tsc && npm run posttest", + "build": "lerna run tsc", "browserify-build": "tsc -p ./tsconfig-browserify.json && browserify ./dist/browserify/index.js -s beacon | uglifyjs > ./dist/walletbeacon.min.js && rm -rf dist/browserify", "prettier": "prettier --write 'src/**/*' '**/src/**/*' 'docs/**/*.md' 'example-dapp.html' 'example-wallet.html'", "lint": "eslint 'src/**/*.ts'", "lint:fix": "eslint 'src/**/*.ts' --fix", "lint-ci": "eslint 'src/**/*.ts' -f json -o lintReport.json || true", - "pretest": "ts-node --project tsconfig-node.json scripts/change-files-before-tests.ts", "bootstrap": "lerna bootstrap", "test": "lerna run test --stream", - "posttest": " ts-node --project tsconfig-node.json scripts/change-files-after-tests.ts", "test-ci": "nyc --reporter=lcov npm test", "e2e": "ts-node --project tsconfig-node.json e2e/permission-request.ts", "e2e-prepare-ffmpeg": "ts-node --project tsconfig-node.json e2e/generate-ffmpeg-file.ts", @@ -103,7 +101,7 @@ "typedoc": "^0.20.30", "typedoc-plugin-internal-external": "^2.2.0", "typescript": "3.9.2", - "uglify-js": "3.9.4" + "uglify-js": "3.14.3" }, "files": [ "/dist" diff --git a/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts b/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts index a56ef0627..87f47e7c5 100644 --- a/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts +++ b/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import { ExposedPromise } from '@airgap/beacon-utils' import { generateGUID } from '../../utils/generate-uuid' import { getKeypairFromSeed, toHex } from '@airgap/beacon-utils' diff --git a/packages/beacon-core/src/transports/clients/CommunicationClient.ts b/packages/beacon-core/src/transports/clients/CommunicationClient.ts index 572ea8143..d66fd5541 100644 --- a/packages/beacon-core/src/transports/clients/CommunicationClient.ts +++ b/packages/beacon-core/src/transports/clients/CommunicationClient.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import { P2PPairingRequest, ExtendedP2PPairingResponse, diff --git a/packages/beacon-core/src/transports/clients/MessageBasedClient.ts b/packages/beacon-core/src/transports/clients/MessageBasedClient.ts index b828810b5..99bf52172 100644 --- a/packages/beacon-core/src/transports/clients/MessageBasedClient.ts +++ b/packages/beacon-core/src/transports/clients/MessageBasedClient.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import { BEACON_VERSION } from '../../constants' import { decryptCryptoboxPayload, encryptCryptoboxPayload } from '@airgap/beacon-utils' import { generateGUID } from '../../utils/generate-uuid' diff --git a/packages/beacon-core/src/utils/generate-uuid.ts b/packages/beacon-core/src/utils/generate-uuid.ts index 7b7778887..1b6d46168 100644 --- a/packages/beacon-core/src/utils/generate-uuid.ts +++ b/packages/beacon-core/src/utils/generate-uuid.ts @@ -1,5 +1,5 @@ /* eslint-disable prefer-arrow/prefer-arrow-functions */ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' /** * Generate a random GUID diff --git a/packages/beacon-core/src/utils/get-account-identifier.ts b/packages/beacon-core/src/utils/get-account-identifier.ts index 25bdfc096..bcdd3632a 100644 --- a/packages/beacon-core/src/utils/get-account-identifier.ts +++ b/packages/beacon-core/src/utils/get-account-identifier.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import * as bs58check from 'bs58check' import { Network } from '@airgap/beacon-types' diff --git a/packages/beacon-core/src/utils/get-sender-id.ts b/packages/beacon-core/src/utils/get-sender-id.ts index 1c575d59d..e0701b315 100644 --- a/packages/beacon-core/src/utils/get-sender-id.ts +++ b/packages/beacon-core/src/utils/get-sender-id.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import * as bs58check from 'bs58check' /** diff --git a/packages/beacon-core/tsconfig.json b/packages/beacon-core/tsconfig.json index ae7722180..9e96ff4b3 100644 --- a/packages/beacon-core/tsconfig.json +++ b/packages/beacon-core/tsconfig.json @@ -4,7 +4,7 @@ "baseUrl": ".", "target": "es5", "module": "commonjs", - "outDir": "./dist/cjs", + "outDir": "./dist/esm", "paths": { "@airgap/beacon-core": ["./src"] } diff --git a/packages/beacon-dapp/src/transports/DappP2PTransport.ts b/packages/beacon-dapp/src/transports/DappP2PTransport.ts index 4253d96eb..db6486ac8 100644 --- a/packages/beacon-dapp/src/transports/DappP2PTransport.ts +++ b/packages/beacon-dapp/src/transports/DappP2PTransport.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import { Storage, StorageKey, diff --git a/packages/beacon-dapp/src/transports/DappPostMessageTransport.ts b/packages/beacon-dapp/src/transports/DappPostMessageTransport.ts index f5b157131..720de6659 100644 --- a/packages/beacon-dapp/src/transports/DappPostMessageTransport.ts +++ b/packages/beacon-dapp/src/transports/DappPostMessageTransport.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import { TransportStatus, StorageKey, diff --git a/packages/beacon-transport-matrix/src/P2PTransport.ts b/packages/beacon-transport-matrix/src/P2PTransport.ts index 42ed63935..4328ace5c 100644 --- a/packages/beacon-transport-matrix/src/P2PTransport.ts +++ b/packages/beacon-transport-matrix/src/P2PTransport.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import { Logger, Transport, PeerManager } from '@airgap/beacon-core' import { ConnectionContext, diff --git a/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts b/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts index 3f8ca2de1..e1064f277 100644 --- a/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts +++ b/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import axios from 'axios' import { diff --git a/packages/beacon-transport-postmessage/src/PostMessageClient.ts b/packages/beacon-transport-postmessage/src/PostMessageClient.ts index eea9fc968..526de0300 100644 --- a/packages/beacon-transport-postmessage/src/PostMessageClient.ts +++ b/packages/beacon-transport-postmessage/src/PostMessageClient.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import { windowRef, Serializer, getSenderId, MessageBasedClient } from '@airgap/beacon-core' import { openCryptobox } from '@airgap/beacon-utils' diff --git a/packages/beacon-transport-postmessage/src/PostMessageTransport.ts b/packages/beacon-transport-postmessage/src/PostMessageTransport.ts index 247c02708..6f8c7485d 100644 --- a/packages/beacon-transport-postmessage/src/PostMessageTransport.ts +++ b/packages/beacon-transport-postmessage/src/PostMessageTransport.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import { PostMessagePairingRequest, diff --git a/packages/beacon-utils/src/utils/crypto.ts b/packages/beacon-utils/src/utils/crypto.ts index 0a4bf4050..780595bba 100644 --- a/packages/beacon-utils/src/utils/crypto.ts +++ b/packages/beacon-utils/src/utils/crypto.ts @@ -1,5 +1,5 @@ import * as bs58check from 'bs58check' -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' /* eslint-disable prefer-arrow/prefer-arrow-functions */ diff --git a/packages/beacon-wallet/src/transports/WalletP2PTransport.ts b/packages/beacon-wallet/src/transports/WalletP2PTransport.ts index 2d2723ede..a79d8daaf 100644 --- a/packages/beacon-wallet/src/transports/WalletP2PTransport.ts +++ b/packages/beacon-wallet/src/transports/WalletP2PTransport.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import { Storage, StorageKey, P2PPairingRequest } from '@airgap/beacon-types' import { P2PTransport } from '@airgap/beacon-transport-matrix' diff --git a/packages/beacon-wallet/src/transports/WalletPostMessageTransport.ts b/packages/beacon-wallet/src/transports/WalletPostMessageTransport.ts index 16c33bf55..d7ec8e73e 100644 --- a/packages/beacon-wallet/src/transports/WalletPostMessageTransport.ts +++ b/packages/beacon-wallet/src/transports/WalletPostMessageTransport.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import sodium from 'libsodium-wrappers' import { StorageKey, Storage, PostMessagePairingRequest } from '@airgap/beacon-types' import { PostMessageTransport } from '@airgap/beacon-transport-postmessage' diff --git a/scripts/change-files-after-tests.ts b/scripts/change-files-after-tests.ts deleted file mode 100644 index 247afa273..000000000 --- a/scripts/change-files-after-tests.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { readFileSync, writeFileSync } from 'fs' - -const replaceInFile: (file: string, src: string, dest: string) => void = ( - file: string, - src: string, - dest: string -): void => { - const content: string = readFileSync(file, 'utf-8') - const newContent: string = content.split(src).join(dest) - writeFileSync(file, newContent) -} - -/** - * Because of issues with the module system and tests, the following import doesn't work in the tests (and the browserified version) and we have to overwrite it. - */ - -replaceInFile( - './packages/beacon-dapp/src/utils/qr.ts', - `import * as qrcode from 'qrcode-generator'`, - `import qrcode from 'qrcode-generator'` -) -replaceInFile( - './packages/beacon-dapp/src/utils/qr.ts', - `const qr = (qrcode as any)(typeNumber, errorCorrectionLevel)`, - `const qr = qrcode(typeNumber, errorCorrectionLevel)` -) diff --git a/scripts/change-files-before-tests.ts b/scripts/change-files-before-tests.ts deleted file mode 100644 index 633f3aa8b..000000000 --- a/scripts/change-files-before-tests.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { readFileSync, writeFileSync } from 'fs' - -const replaceInFile: (file: string, src: string, dest: string) => void = ( - file: string, - src: string, - dest: string -): void => { - const content: string = readFileSync(file, 'utf-8') - const newContent: string = content.split(src).join(dest) - writeFileSync(file, newContent) -} - -/** - * Because of issues with the module system and tests, the following import doesn't work in the tests (and the browserified version) and we have to overwrite it. - */ - -replaceInFile( - './packages/beacon-dapp/src/utils/qr.ts', - `import qrcode from 'qrcode-generator'`, - `import * as qrcode from 'qrcode-generator'` -) -replaceInFile( - './packages/beacon-dapp/src/utils/qr.ts', - `const qr = qrcode(typeNumber, errorCorrectionLevel)`, - `const qr = (qrcode as any)(typeNumber, errorCorrectionLevel)` -) From 506ef1e35187a00af8434a6433678d44e13a8338 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 8 Nov 2021 16:38:04 +0100 Subject: [PATCH 046/130] chore(release): v0.0.1-beta.5 --- lerna.json | 2 +- packages/beacon-core/package.json | 6 +++--- packages/beacon-dapp/package.json | 8 ++++---- packages/beacon-protocol-kusama/package.json | 2 +- packages/beacon-protocol-tezos/package.json | 2 +- packages/beacon-transport-matrix/package.json | 6 +++--- packages/beacon-transport-postmessage/package.json | 8 ++++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 2 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 ++++---- 11 files changed, 24 insertions(+), 24 deletions(-) diff --git a/lerna.json b/lerna.json index 6b6f312c5..e62f3b7a3 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "0.0.1-beta.4" + "version": "0.0.1-beta.5" } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 3f64de5ad..6c93c511d 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.4", + "version": "0.0.1-beta.5", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -29,8 +29,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.4", - "@airgap/beacon-utils": "^0.0.1-beta.4", + "@airgap/beacon-types": "^0.0.1-beta.5", + "@airgap/beacon-utils": "^0.0.1-beta.5", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index ede2f6bf2..f49e2c820 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.4", + "version": "0.0.1-beta.5", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -29,9 +29,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.4", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.4", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.4", + "@airgap/beacon-core": "^0.0.1-beta.5", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.5", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.5", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-protocol-kusama/package.json index d3cbce10e..e93779e74 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.1-beta.4", + "version": "0.0.1-beta.5", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index e5e4fdcb9..0e7086ebc 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.1-beta.4", + "version": "0.0.1-beta.5", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index 91f6b0d5f..90802c789 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.4", + "version": "0.0.1-beta.5", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -29,8 +29,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.4", - "@airgap/beacon-utils": "^0.0.1-beta.4", + "@airgap/beacon-core": "^0.0.1-beta.5", + "@airgap/beacon-utils": "^0.0.1-beta.5", "axios": "0.21.1" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index dfddbb503..d8195cb82 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.4", + "version": "0.0.1-beta.5", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -29,9 +29,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.4", - "@airgap/beacon-types": "^0.0.1-beta.4", - "@airgap/beacon-utils": "^0.0.1-beta.4", + "@airgap/beacon-core": "^0.0.1-beta.5", + "@airgap/beacon-types": "^0.0.1-beta.5", + "@airgap/beacon-utils": "^0.0.1-beta.5", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index e5271c3b8..40d911895 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.4", + "version": "0.0.1-beta.5", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index 02dce0c92..eefc922c7 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.4", + "version": "0.0.1-beta.5", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index a93b4743d..89812b6de 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.4", + "version": "0.0.1-beta.5", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 4c044ef2a..2fd51d583 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.4", + "version": "0.0.1-beta.5", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -29,8 +29,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.4", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.4", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.4" + "@airgap/beacon-core": "^0.0.1-beta.5", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.5", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.5" } } From 85337526d2d7599e17b89c202a3aa82b63782785 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 8 Nov 2021 16:41:01 +0100 Subject: [PATCH 047/130] fix(lock): update package-lock file --- package-lock.json | 94 ++++++++++++++++++++++------------------------- 1 file changed, 44 insertions(+), 50 deletions(-) diff --git a/package-lock.json b/package-lock.json index b48cd4436..18e774259 100755 --- a/package-lock.json +++ b/package-lock.json @@ -57,7 +57,7 @@ "typedoc": "^0.20.30", "typedoc-plugin-internal-external": "^2.2.0", "typescript": "3.9.2", - "uglify-js": "3.9.4" + "uglify-js": "3.14.3" } }, "node_modules/@airgap/beacon-core": { @@ -14795,13 +14795,10 @@ } }, "node_modules/uglify-js": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.4.tgz", - "integrity": "sha512-8RZBJq5smLOa7KslsNsVcSH+KOXf1uDU8yqLeNuVKwmT0T3FA0ZoXlinQfRad7SDcbZZRZE4ov+2v71EnxNyCA==", + "version": "3.14.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.3.tgz", + "integrity": "sha512-mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g==", "dev": true, - "dependencies": { - "commander": "~2.20.3" - }, "bin": { "uglifyjs": "bin/uglifyjs" }, @@ -15564,11 +15561,11 @@ }, "packages/beacon-core": { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.5", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.3", - "@airgap/beacon-utils": "^0.0.1-beta.3", + "@airgap/beacon-types": "^0.0.1-beta.5", + "@airgap/beacon-utils": "^0.0.1-beta.5", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15576,50 +15573,50 @@ }, "packages/beacon-dapp": { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.5", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.3", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.3", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.3", + "@airgap/beacon-core": "^0.0.1-beta.5", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.5", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.5", "qrcode-generator": "1.4.4" } }, "packages/beacon-protocol-kusama": { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.5", "license": "ISC" }, "packages/beacon-protocol-tezos": { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.5", "license": "ISC" }, "packages/beacon-transport-matrix": { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.5", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.3", - "@airgap/beacon-utils": "^0.0.1-beta.3", + "@airgap/beacon-core": "^0.0.1-beta.5", + "@airgap/beacon-utils": "^0.0.1-beta.5", "axios": "0.21.1" } }, "packages/beacon-transport-postmessage": { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.5", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.3", - "@airgap/beacon-types": "^0.0.1-beta.3", - "@airgap/beacon-utils": "^0.0.1-beta.3", + "@airgap/beacon-core": "^0.0.1-beta.5", + "@airgap/beacon-types": "^0.0.1-beta.5", + "@airgap/beacon-utils": "^0.0.1-beta.5", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } }, "packages/beacon-types": { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.5", "license": "ISC", "dependencies": { "@types/chrome": "0.0.115" @@ -15627,12 +15624,12 @@ }, "packages/beacon-ui": { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.5", "license": "ISC" }, "packages/beacon-utils": { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.5", "license": "ISC", "dependencies": { "@types/libsodium-wrappers": "0.7.9", @@ -15642,12 +15639,12 @@ }, "packages/beacon-wallet": { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.5", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.3", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.3", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.3" + "@airgap/beacon-core": "^0.0.1-beta.5", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.5", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.5" } } }, @@ -15655,8 +15652,8 @@ "@airgap/beacon-core": { "version": "file:packages/beacon-core", "requires": { - "@airgap/beacon-types": "^0.0.1-beta.3", - "@airgap/beacon-utils": "^0.0.1-beta.3", + "@airgap/beacon-types": "^0.0.1-beta.5", + "@airgap/beacon-utils": "^0.0.1-beta.5", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15665,9 +15662,9 @@ "@airgap/beacon-dapp": { "version": "file:packages/beacon-dapp", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.3", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.3", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.3", + "@airgap/beacon-core": "^0.0.1-beta.5", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.5", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.5", "qrcode-generator": "1.4.4" } }, @@ -15680,17 +15677,17 @@ "@airgap/beacon-transport-matrix": { "version": "file:packages/beacon-transport-matrix", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.3", - "@airgap/beacon-utils": "^0.0.1-beta.3", + "@airgap/beacon-core": "^0.0.1-beta.5", + "@airgap/beacon-utils": "^0.0.1-beta.5", "axios": "0.21.1" } }, "@airgap/beacon-transport-postmessage": { "version": "file:packages/beacon-transport-postmessage", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.3", - "@airgap/beacon-types": "^0.0.1-beta.3", - "@airgap/beacon-utils": "^0.0.1-beta.3", + "@airgap/beacon-core": "^0.0.1-beta.5", + "@airgap/beacon-types": "^0.0.1-beta.5", + "@airgap/beacon-utils": "^0.0.1-beta.5", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } @@ -15715,9 +15712,9 @@ "@airgap/beacon-wallet": { "version": "file:packages/beacon-wallet", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.3", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.3", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.3" + "@airgap/beacon-core": "^0.0.1-beta.5", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.5", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.5" } }, "@babel/code-frame": { @@ -27870,13 +27867,10 @@ "dev": true }, "uglify-js": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.4.tgz", - "integrity": "sha512-8RZBJq5smLOa7KslsNsVcSH+KOXf1uDU8yqLeNuVKwmT0T3FA0ZoXlinQfRad7SDcbZZRZE4ov+2v71EnxNyCA==", - "dev": true, - "requires": { - "commander": "~2.20.3" - } + "version": "3.14.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.3.tgz", + "integrity": "sha512-mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g==", + "dev": true }, "uid-number": { "version": "0.0.6", From 765cb9d0fd04234e43b19e911621c1f931ffb37c Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Tue, 9 Nov 2021 17:17:47 +0100 Subject: [PATCH 048/130] feat(package): add exports --- packages/beacon-core/package.json | 7 ++++++- packages/beacon-dapp/package.json | 7 ++++++- packages/beacon-protocol-kusama/package.json | 7 ++++++- packages/beacon-protocol-tezos/package.json | 7 ++++++- packages/beacon-transport-matrix/package.json | 7 ++++++- packages/beacon-transport-postmessage/package.json | 7 ++++++- packages/beacon-types/package.json | 7 ++++++- packages/beacon-ui/package.json | 7 ++++++- packages/beacon-wallet/package.json | 7 ++++++- 9 files changed, 54 insertions(+), 9 deletions(-) diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 6c93c511d..62345fb97 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -7,8 +7,13 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "types": "dist/cjs/index.d.ts", + "exports": { + "require": "./dist/cjs/index.js", + "import": "./dist/esm/index.js" + }, "directories": { - "lib": "lib", + "lib": "dist/esm", "test": "__tests__" }, "files": [ diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index f49e2c820..12344e063 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -7,8 +7,13 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "types": "dist/cjs/index.d.ts", + "exports": { + "require": "./dist/cjs/index.js", + "import": "./dist/esm/index.js" + }, "directories": { - "lib": "lib", + "lib": "dist/esm", "test": "__tests__" }, "files": [ diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-protocol-kusama/package.json index e93779e74..c1ff48107 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -7,8 +7,13 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "types": "dist/cjs/index.d.ts", + "exports": { + "require": "./dist/cjs/index.js", + "import": "./dist/esm/index.js" + }, "directories": { - "lib": "lib", + "lib": "dist/esm", "test": "__tests__" }, "files": [ diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index 0e7086ebc..3806a7f5a 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -7,8 +7,13 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "types": "dist/cjs/index.d.ts", + "exports": { + "require": "./dist/cjs/index.js", + "import": "./dist/esm/index.js" + }, "directories": { - "lib": "lib", + "lib": "dist/esm", "test": "__tests__" }, "files": [ diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index 90802c789..edb4c9cd3 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -7,8 +7,13 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "types": "dist/cjs/index.d.ts", + "exports": { + "require": "./dist/cjs/index.js", + "import": "./dist/esm/index.js" + }, "directories": { - "lib": "lib", + "lib": "dist/esm", "test": "__tests__" }, "files": [ diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index d8195cb82..30065feb7 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -7,8 +7,13 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "types": "dist/cjs/index.d.ts", + "exports": { + "require": "./dist/cjs/index.js", + "import": "./dist/esm/index.js" + }, "directories": { - "lib": "lib", + "lib": "dist/esm", "test": "__tests__" }, "files": [ diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 40d911895..a5fd8f670 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -7,8 +7,13 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "types": "dist/cjs/index.d.ts", + "exports": { + "require": "./dist/cjs/index.js", + "import": "./dist/esm/index.js" + }, "directories": { - "lib": "lib", + "lib": "dist/esm", "test": "__tests__" }, "files": [ diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index eefc922c7..e188cd5a3 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -7,8 +7,13 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "types": "dist/cjs/index.d.ts", + "exports": { + "require": "./dist/cjs/index.js", + "import": "./dist/esm/index.js" + }, "directories": { - "lib": "lib", + "lib": "dist/esm", "test": "__tests__" }, "files": [ diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 2fd51d583..71c3db9a8 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -7,8 +7,13 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "types": "dist/cjs/index.d.ts", + "exports": { + "require": "./dist/cjs/index.js", + "import": "./dist/esm/index.js" + }, "directories": { - "lib": "lib", + "lib": "dist/esm", "test": "__tests__" }, "files": [ From 6a0553746624170c2a84a3386c6e47a7259d7e43 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Tue, 9 Nov 2021 17:18:09 +0100 Subject: [PATCH 049/130] chore(release): v0.0.1-beta.6 --- lerna.json | 2 +- packages/beacon-core/package.json | 6 +++--- packages/beacon-dapp/package.json | 8 ++++---- packages/beacon-protocol-kusama/package.json | 2 +- packages/beacon-protocol-tezos/package.json | 2 +- packages/beacon-transport-matrix/package.json | 6 +++--- packages/beacon-transport-postmessage/package.json | 8 ++++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 2 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 ++++---- 11 files changed, 24 insertions(+), 24 deletions(-) diff --git a/lerna.json b/lerna.json index e62f3b7a3..b625c22c5 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "0.0.1-beta.5" + "version": "0.0.1-beta.6" } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 62345fb97..9c07f2046 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.5", + "version": "0.0.1-beta.6", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.5", - "@airgap/beacon-utils": "^0.0.1-beta.5", + "@airgap/beacon-types": "^0.0.1-beta.6", + "@airgap/beacon-utils": "^0.0.1-beta.6", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 12344e063..bdff7e6c1 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.5", + "version": "0.0.1-beta.6", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.5", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.5", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.5", + "@airgap/beacon-core": "^0.0.1-beta.6", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.6", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.6", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-protocol-kusama/package.json index c1ff48107..393caa490 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.1-beta.5", + "version": "0.0.1-beta.6", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index 3806a7f5a..6c11547b3 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.1-beta.5", + "version": "0.0.1-beta.6", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index edb4c9cd3..938f1581a 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.5", + "version": "0.0.1-beta.6", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.5", - "@airgap/beacon-utils": "^0.0.1-beta.5", + "@airgap/beacon-core": "^0.0.1-beta.6", + "@airgap/beacon-utils": "^0.0.1-beta.6", "axios": "0.21.1" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 30065feb7..2cf47e60d 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.5", + "version": "0.0.1-beta.6", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.5", - "@airgap/beacon-types": "^0.0.1-beta.5", - "@airgap/beacon-utils": "^0.0.1-beta.5", + "@airgap/beacon-core": "^0.0.1-beta.6", + "@airgap/beacon-types": "^0.0.1-beta.6", + "@airgap/beacon-utils": "^0.0.1-beta.6", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index a5fd8f670..7d2939702 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.5", + "version": "0.0.1-beta.6", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index e188cd5a3..a6cf3b680 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.5", + "version": "0.0.1-beta.6", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 89812b6de..bcb51a874 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.5", + "version": "0.0.1-beta.6", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 71c3db9a8..ccdd4a8d8 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.5", + "version": "0.0.1-beta.6", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.5", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.5", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.5" + "@airgap/beacon-core": "^0.0.1-beta.6", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.6", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.6" } } From 7d5b4340911766efcfd0a755bf0a92389ed4a8a2 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Tue, 9 Nov 2021 17:32:16 +0100 Subject: [PATCH 050/130] fix(ci): esm and import changes --- package.json | 2 +- packages/beacon-core/package.json | 2 +- packages/beacon-core/src/clients/beacon-client/BeaconClient.ts | 2 +- .../beacon-core/src/transports/clients/CommunicationClient.ts | 2 +- .../beacon-core/src/transports/clients/MessageBasedClient.ts | 2 +- packages/beacon-core/src/utils/generate-uuid.ts | 2 +- packages/beacon-core/src/utils/get-account-identifier.ts | 2 +- packages/beacon-core/src/utils/get-sender-id.ts | 2 +- packages/beacon-dapp/package.json | 2 +- packages/beacon-dapp/src/transports/DappP2PTransport.ts | 2 +- packages/beacon-dapp/src/transports/DappPostMessageTransport.ts | 2 +- packages/beacon-protocol-kusama/package.json | 2 +- packages/beacon-protocol-tezos/package.json | 2 +- packages/beacon-transport-matrix/package.json | 2 +- packages/beacon-transport-matrix/src/P2PTransport.ts | 2 +- .../src/communication-client/P2PCommunicationClient.ts | 2 +- packages/beacon-transport-postmessage/package.json | 2 +- packages/beacon-transport-postmessage/src/PostMessageClient.ts | 2 +- .../beacon-transport-postmessage/src/PostMessageTransport.ts | 2 +- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 2 +- packages/beacon-utils/src/utils/crypto.ts | 2 +- packages/beacon-wallet/package.json | 2 +- packages/beacon-wallet/src/transports/WalletP2PTransport.ts | 2 +- .../beacon-wallet/src/transports/WalletPostMessageTransport.ts | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/package.json b/package.json index 5abd4b3f9..fe97c5e2d 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "dist/cjs/index.js", "module": "dist/esm/index.js", "unpkg": "dist/walletbeacon.min.js", - "types": "dist/cjs/index.d.ts", + "types": "dist/esm/index.d.ts", "keywords": [ "airgap", "beacon", diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 9c07f2046..be889fdeb 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -7,7 +7,7 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "types": "dist/cjs/index.d.ts", + "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", "import": "./dist/esm/index.js" diff --git a/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts b/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts index 87f47e7c5..a56ef0627 100644 --- a/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts +++ b/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts @@ -1,4 +1,4 @@ -import sodium from 'libsodium-wrappers' +import * as sodium from 'libsodium-wrappers' import { ExposedPromise } from '@airgap/beacon-utils' import { generateGUID } from '../../utils/generate-uuid' import { getKeypairFromSeed, toHex } from '@airgap/beacon-utils' diff --git a/packages/beacon-core/src/transports/clients/CommunicationClient.ts b/packages/beacon-core/src/transports/clients/CommunicationClient.ts index d66fd5541..572ea8143 100644 --- a/packages/beacon-core/src/transports/clients/CommunicationClient.ts +++ b/packages/beacon-core/src/transports/clients/CommunicationClient.ts @@ -1,4 +1,4 @@ -import sodium from 'libsodium-wrappers' +import * as sodium from 'libsodium-wrappers' import { P2PPairingRequest, ExtendedP2PPairingResponse, diff --git a/packages/beacon-core/src/transports/clients/MessageBasedClient.ts b/packages/beacon-core/src/transports/clients/MessageBasedClient.ts index 99bf52172..b828810b5 100644 --- a/packages/beacon-core/src/transports/clients/MessageBasedClient.ts +++ b/packages/beacon-core/src/transports/clients/MessageBasedClient.ts @@ -1,4 +1,4 @@ -import sodium from 'libsodium-wrappers' +import * as sodium from 'libsodium-wrappers' import { BEACON_VERSION } from '../../constants' import { decryptCryptoboxPayload, encryptCryptoboxPayload } from '@airgap/beacon-utils' import { generateGUID } from '../../utils/generate-uuid' diff --git a/packages/beacon-core/src/utils/generate-uuid.ts b/packages/beacon-core/src/utils/generate-uuid.ts index 1b6d46168..7b7778887 100644 --- a/packages/beacon-core/src/utils/generate-uuid.ts +++ b/packages/beacon-core/src/utils/generate-uuid.ts @@ -1,5 +1,5 @@ /* eslint-disable prefer-arrow/prefer-arrow-functions */ -import sodium from 'libsodium-wrappers' +import * as sodium from 'libsodium-wrappers' /** * Generate a random GUID diff --git a/packages/beacon-core/src/utils/get-account-identifier.ts b/packages/beacon-core/src/utils/get-account-identifier.ts index bcdd3632a..25bdfc096 100644 --- a/packages/beacon-core/src/utils/get-account-identifier.ts +++ b/packages/beacon-core/src/utils/get-account-identifier.ts @@ -1,4 +1,4 @@ -import sodium from 'libsodium-wrappers' +import * as sodium from 'libsodium-wrappers' import * as bs58check from 'bs58check' import { Network } from '@airgap/beacon-types' diff --git a/packages/beacon-core/src/utils/get-sender-id.ts b/packages/beacon-core/src/utils/get-sender-id.ts index e0701b315..1c575d59d 100644 --- a/packages/beacon-core/src/utils/get-sender-id.ts +++ b/packages/beacon-core/src/utils/get-sender-id.ts @@ -1,4 +1,4 @@ -import sodium from 'libsodium-wrappers' +import * as sodium from 'libsodium-wrappers' import * as bs58check from 'bs58check' /** diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index bdff7e6c1..869da5785 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -7,7 +7,7 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "types": "dist/cjs/index.d.ts", + "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", "import": "./dist/esm/index.js" diff --git a/packages/beacon-dapp/src/transports/DappP2PTransport.ts b/packages/beacon-dapp/src/transports/DappP2PTransport.ts index db6486ac8..4253d96eb 100644 --- a/packages/beacon-dapp/src/transports/DappP2PTransport.ts +++ b/packages/beacon-dapp/src/transports/DappP2PTransport.ts @@ -1,4 +1,4 @@ -import sodium from 'libsodium-wrappers' +import * as sodium from 'libsodium-wrappers' import { Storage, StorageKey, diff --git a/packages/beacon-dapp/src/transports/DappPostMessageTransport.ts b/packages/beacon-dapp/src/transports/DappPostMessageTransport.ts index 720de6659..f5b157131 100644 --- a/packages/beacon-dapp/src/transports/DappPostMessageTransport.ts +++ b/packages/beacon-dapp/src/transports/DappPostMessageTransport.ts @@ -1,4 +1,4 @@ -import sodium from 'libsodium-wrappers' +import * as sodium from 'libsodium-wrappers' import { TransportStatus, StorageKey, diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-protocol-kusama/package.json index 393caa490..7e18442b8 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -7,7 +7,7 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "types": "dist/cjs/index.d.ts", + "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", "import": "./dist/esm/index.js" diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index 6c11547b3..abc17f1a7 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -7,7 +7,7 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "types": "dist/cjs/index.d.ts", + "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", "import": "./dist/esm/index.js" diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index 938f1581a..ee16ff9c8 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -7,7 +7,7 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "types": "dist/cjs/index.d.ts", + "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", "import": "./dist/esm/index.js" diff --git a/packages/beacon-transport-matrix/src/P2PTransport.ts b/packages/beacon-transport-matrix/src/P2PTransport.ts index 4328ace5c..42ed63935 100644 --- a/packages/beacon-transport-matrix/src/P2PTransport.ts +++ b/packages/beacon-transport-matrix/src/P2PTransport.ts @@ -1,4 +1,4 @@ -import sodium from 'libsodium-wrappers' +import * as sodium from 'libsodium-wrappers' import { Logger, Transport, PeerManager } from '@airgap/beacon-core' import { ConnectionContext, diff --git a/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts b/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts index e1064f277..3f8ca2de1 100644 --- a/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts +++ b/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts @@ -1,4 +1,4 @@ -import sodium from 'libsodium-wrappers' +import * as sodium from 'libsodium-wrappers' import axios from 'axios' import { diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 2cf47e60d..49f7184db 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -7,7 +7,7 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "types": "dist/cjs/index.d.ts", + "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", "import": "./dist/esm/index.js" diff --git a/packages/beacon-transport-postmessage/src/PostMessageClient.ts b/packages/beacon-transport-postmessage/src/PostMessageClient.ts index 526de0300..eea9fc968 100644 --- a/packages/beacon-transport-postmessage/src/PostMessageClient.ts +++ b/packages/beacon-transport-postmessage/src/PostMessageClient.ts @@ -1,4 +1,4 @@ -import sodium from 'libsodium-wrappers' +import * as sodium from 'libsodium-wrappers' import { windowRef, Serializer, getSenderId, MessageBasedClient } from '@airgap/beacon-core' import { openCryptobox } from '@airgap/beacon-utils' diff --git a/packages/beacon-transport-postmessage/src/PostMessageTransport.ts b/packages/beacon-transport-postmessage/src/PostMessageTransport.ts index 6f8c7485d..247c02708 100644 --- a/packages/beacon-transport-postmessage/src/PostMessageTransport.ts +++ b/packages/beacon-transport-postmessage/src/PostMessageTransport.ts @@ -1,4 +1,4 @@ -import sodium from 'libsodium-wrappers' +import * as sodium from 'libsodium-wrappers' import { PostMessagePairingRequest, diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 7d2939702..0efaed7ed 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -7,7 +7,7 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "types": "dist/cjs/index.d.ts", + "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", "import": "./dist/esm/index.js" diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index a6cf3b680..fe772d69e 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -7,7 +7,7 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "types": "dist/cjs/index.d.ts", + "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", "import": "./dist/esm/index.js" diff --git a/packages/beacon-utils/src/utils/crypto.ts b/packages/beacon-utils/src/utils/crypto.ts index 780595bba..0a4bf4050 100644 --- a/packages/beacon-utils/src/utils/crypto.ts +++ b/packages/beacon-utils/src/utils/crypto.ts @@ -1,5 +1,5 @@ import * as bs58check from 'bs58check' -import sodium from 'libsodium-wrappers' +import * as sodium from 'libsodium-wrappers' /* eslint-disable prefer-arrow/prefer-arrow-functions */ diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index ccdd4a8d8..7eac5a089 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -7,7 +7,7 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "types": "dist/cjs/index.d.ts", + "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", "import": "./dist/esm/index.js" diff --git a/packages/beacon-wallet/src/transports/WalletP2PTransport.ts b/packages/beacon-wallet/src/transports/WalletP2PTransport.ts index a79d8daaf..2d2723ede 100644 --- a/packages/beacon-wallet/src/transports/WalletP2PTransport.ts +++ b/packages/beacon-wallet/src/transports/WalletP2PTransport.ts @@ -1,4 +1,4 @@ -import sodium from 'libsodium-wrappers' +import * as sodium from 'libsodium-wrappers' import { Storage, StorageKey, P2PPairingRequest } from '@airgap/beacon-types' import { P2PTransport } from '@airgap/beacon-transport-matrix' diff --git a/packages/beacon-wallet/src/transports/WalletPostMessageTransport.ts b/packages/beacon-wallet/src/transports/WalletPostMessageTransport.ts index d7ec8e73e..16c33bf55 100644 --- a/packages/beacon-wallet/src/transports/WalletPostMessageTransport.ts +++ b/packages/beacon-wallet/src/transports/WalletPostMessageTransport.ts @@ -1,4 +1,4 @@ -import sodium from 'libsodium-wrappers' +import * as sodium from 'libsodium-wrappers' import { StorageKey, Storage, PostMessagePairingRequest } from '@airgap/beacon-types' import { PostMessageTransport } from '@airgap/beacon-transport-postmessage' From 0ea37ab7d4ee6ec01156a915434e43a0982a365c Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Tue, 9 Nov 2021 17:32:35 +0100 Subject: [PATCH 051/130] chore(release): v0.0.1-beta.7 --- lerna.json | 2 +- packages/beacon-core/package.json | 6 +++--- packages/beacon-dapp/package.json | 8 ++++---- packages/beacon-protocol-kusama/package.json | 2 +- packages/beacon-protocol-tezos/package.json | 2 +- packages/beacon-transport-matrix/package.json | 6 +++--- packages/beacon-transport-postmessage/package.json | 8 ++++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 2 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 ++++---- 11 files changed, 24 insertions(+), 24 deletions(-) diff --git a/lerna.json b/lerna.json index b625c22c5..cd5f6040d 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "0.0.1-beta.6" + "version": "0.0.1-beta.7" } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index be889fdeb..418cc6e47 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.6", + "version": "0.0.1-beta.7", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.6", - "@airgap/beacon-utils": "^0.0.1-beta.6", + "@airgap/beacon-types": "^0.0.1-beta.7", + "@airgap/beacon-utils": "^0.0.1-beta.7", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 869da5785..3d3d0f0d0 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.6", + "version": "0.0.1-beta.7", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.6", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.6", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.6", + "@airgap/beacon-core": "^0.0.1-beta.7", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.7", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.7", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-protocol-kusama/package.json index 7e18442b8..5a54e5def 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.1-beta.6", + "version": "0.0.1-beta.7", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index abc17f1a7..7e26d05cf 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.1-beta.6", + "version": "0.0.1-beta.7", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index ee16ff9c8..062eae606 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.6", + "version": "0.0.1-beta.7", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.6", - "@airgap/beacon-utils": "^0.0.1-beta.6", + "@airgap/beacon-core": "^0.0.1-beta.7", + "@airgap/beacon-utils": "^0.0.1-beta.7", "axios": "0.21.1" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 49f7184db..c113caf62 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.6", + "version": "0.0.1-beta.7", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.6", - "@airgap/beacon-types": "^0.0.1-beta.6", - "@airgap/beacon-utils": "^0.0.1-beta.6", + "@airgap/beacon-core": "^0.0.1-beta.7", + "@airgap/beacon-types": "^0.0.1-beta.7", + "@airgap/beacon-utils": "^0.0.1-beta.7", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 0efaed7ed..7c6d22280 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.6", + "version": "0.0.1-beta.7", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index fe772d69e..58f548c46 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.6", + "version": "0.0.1-beta.7", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index bcb51a874..af33c813f 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.6", + "version": "0.0.1-beta.7", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 7eac5a089..5405954b2 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.6", + "version": "0.0.1-beta.7", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.6", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.6", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.6" + "@airgap/beacon-core": "^0.0.1-beta.7", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.7", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.7" } } From 3c5b34282828e6e5ce306e77fa346d9fa60d99ae Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 10 Nov 2021 16:53:14 +0100 Subject: [PATCH 052/130] fix(build): use named imports --- package.json | 4 +- .../src/clients/beacon-client/BeaconClient.ts | 6 +- .../transports/clients/CommunicationClient.ts | 27 ++++---- .../transports/clients/MessageBasedClient.ts | 16 +++-- .../beacon-core/src/utils/generate-uuid.ts | 6 +- .../src/utils/get-account-identifier.ts | 6 +- .../beacon-core/src/utils/get-sender-id.ts | 6 +- .../src/transports/DappP2PTransport.ts | 4 +- .../transports/DappPostMessageTransport.ts | 4 +- .../src/P2PTransport.ts | 4 +- .../P2PCommunicationClient.ts | 33 +++++----- .../src/PostMessageClient.ts | 8 +-- .../src/PostMessageTransport.ts | 4 +- packages/beacon-utils/package.json | 7 +- packages/beacon-utils/src/utils/crypto.ts | 64 +++++++++++-------- .../src/transports/WalletP2PTransport.ts | 4 +- .../transports/WalletPostMessageTransport.ts | 4 +- 17 files changed, 112 insertions(+), 95 deletions(-) diff --git a/package.json b/package.json index fe97c5e2d..46f4c80f2 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "scripts": { "prebuild": "ts-node --project tsconfig-cjs.json scripts/generate-wallet-list.ts", "build": "lerna run tsc", - "browserify-build": "tsc -p ./tsconfig-browserify.json && browserify ./dist/browserify/index.js -s beacon | uglifyjs > ./dist/walletbeacon.min.js && rm -rf dist/browserify", + "browserify": "browserify ./packages/beacon-dapp/dist/cjs/index.js -s beacon | uglifyjs > ./walletbeacon.min.js && cp ./walletbeacon.min.js ./examples/walletbeacon.min.js", "prettier": "prettier --write 'src/**/*' '**/src/**/*' 'docs/**/*.md' 'example-dapp.html' 'example-wallet.html'", "lint": "eslint 'src/**/*.ts'", "lint:fix": "eslint 'src/**/*.ts' --fix", @@ -43,8 +43,6 @@ "check-version": "ts-node --project tsconfig-cjs.json scripts/check-sdk-version.ts", "typedoc": "typedoc src/index.ts --includeVersion --internal-aliases publicapi --external-aliases internalapi --logLevel Verbose --listInvalidSymbolLinks && ts-node --project tsconfig-cjs.json scripts/process-docs.ts", "publish": "lerna run tsc && lerna publish", - "build-old": "npm run pretest && tsc -p tsconfig.json && tsc -p ./tsconfig-cjs.json && npm run browserify && npm run posttest && cp ./dist/walletbeacon.min.js ./examples/walletbeacon.min.js", - "browserify-old": "npm run pretest && tsc -p ./tsconfig-browserify.json && npm run posttest && browserify ./dist/browserify/index.js -s beacon | uglifyjs > ./dist/walletbeacon.min.js && rm -rf dist/browserify", "bump:version": "lerna version --no-git-tag-version", "bump:major": "lerna version --no-git-tag-version major --yes", "bump:minor": "lerna version --no-git-tag-version minor --yes", diff --git a/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts b/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts index a56ef0627..4d268e83b 100644 --- a/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts +++ b/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import { KeyPair } from 'libsodium-wrappers' import { ExposedPromise } from '@airgap/beacon-utils' import { generateGUID } from '../../utils/generate-uuid' import { getKeypairFromSeed, toHex } from '@airgap/beacon-utils' @@ -42,8 +42,8 @@ export abstract class BeaconClient { /** * The local keypair that is used for the communication encryption */ - protected _keyPair: ExposedPromise = new ExposedPromise() - protected get keyPair(): Promise { + protected _keyPair: ExposedPromise = new ExposedPromise() + protected get keyPair(): Promise { return this._keyPair.promise } diff --git a/packages/beacon-core/src/transports/clients/CommunicationClient.ts b/packages/beacon-core/src/transports/clients/CommunicationClient.ts index 572ea8143..32cf19910 100644 --- a/packages/beacon-core/src/transports/clients/CommunicationClient.ts +++ b/packages/beacon-core/src/transports/clients/CommunicationClient.ts @@ -1,4 +1,11 @@ -import * as sodium from 'libsodium-wrappers' +import { + KeyPair, + CryptoKX, + crypto_sign_ed25519_sk_to_curve25519, + crypto_sign_ed25519_pk_to_curve25519, + crypto_kx_server_session_keys, + crypto_kx_client_session_keys +} from 'libsodium-wrappers' import { P2PPairingRequest, ExtendedP2PPairingResponse, @@ -13,7 +20,7 @@ import { toHex, getHexHash, sealCryptobox } from '@airgap/beacon-utils' * */ export abstract class CommunicationClient { - constructor(protected readonly keyPair: sodium.KeyPair) {} + constructor(protected readonly keyPair: KeyPair) {} /** * Get the public key @@ -40,13 +47,11 @@ export abstract class CommunicationClient { selfPrivateKey: Uint8Array ): Promise<[Uint8Array, Uint8Array, Uint8Array]> { // TODO: Don't calculate it every time? - const kxSelfPrivateKey = sodium.crypto_sign_ed25519_sk_to_curve25519( - Buffer.from(selfPrivateKey) - ) // Secret bytes to scalar bytes - const kxSelfPublicKey = sodium.crypto_sign_ed25519_pk_to_curve25519( + const kxSelfPrivateKey = crypto_sign_ed25519_sk_to_curve25519(Buffer.from(selfPrivateKey)) // Secret bytes to scalar bytes + const kxSelfPublicKey = crypto_sign_ed25519_pk_to_curve25519( Buffer.from(selfPrivateKey).slice(32, 64) ) // Secret bytes to scalar bytes - const kxOtherPublicKey = sodium.crypto_sign_ed25519_pk_to_curve25519( + const kxOtherPublicKey = crypto_sign_ed25519_pk_to_curve25519( Buffer.from(otherPublicKey, 'hex') ) // Secret bytes to scalar bytes @@ -66,10 +71,10 @@ export abstract class CommunicationClient { protected async createCryptoBoxServer( otherPublicKey: string, selfPrivateKey: Uint8Array - ): Promise { + ): Promise { const keys = await this.createCryptoBox(otherPublicKey, selfPrivateKey) - return sodium.crypto_kx_server_session_keys(...keys) + return crypto_kx_server_session_keys(...keys) } /** @@ -81,10 +86,10 @@ export abstract class CommunicationClient { protected async createCryptoBoxClient( otherPublicKey: string, selfPrivateKey: Uint8Array - ): Promise { + ): Promise { const keys = await this.createCryptoBox(otherPublicKey, selfPrivateKey) - return sodium.crypto_kx_client_session_keys(...keys) + return crypto_kx_client_session_keys(...keys) } /** diff --git a/packages/beacon-core/src/transports/clients/MessageBasedClient.ts b/packages/beacon-core/src/transports/clients/MessageBasedClient.ts index b828810b5..35f137238 100644 --- a/packages/beacon-core/src/transports/clients/MessageBasedClient.ts +++ b/packages/beacon-core/src/transports/clients/MessageBasedClient.ts @@ -1,4 +1,9 @@ -import * as sodium from 'libsodium-wrappers' +import { + ready, + KeyPair, + crypto_secretbox_NONCEBYTES, + crypto_secretbox_MACBYTES +} from 'libsodium-wrappers' import { BEACON_VERSION } from '../../constants' import { decryptCryptoboxPayload, encryptCryptoboxPayload } from '@airgap/beacon-utils' import { generateGUID } from '../../utils/generate-uuid' @@ -16,7 +21,7 @@ export abstract class MessageBasedClient extends CommunicationClient { */ protected abstract readonly activeListeners: Map = new Map() - constructor(protected readonly name: string, keyPair: sodium.KeyPair) { + constructor(protected readonly name: string, keyPair: KeyPair) { super(keyPair) this.init().catch(console.error) } @@ -25,7 +30,7 @@ export abstract class MessageBasedClient extends CommunicationClient { * start the client and make sure all dependencies are ready */ public async start(): Promise { - await sodium.ready + await ready } /** @@ -88,10 +93,7 @@ export abstract class MessageBasedClient extends CommunicationClient { const hexPayload = Buffer.from(payload, 'hex') - if ( - hexPayload.length >= - sodium.crypto_secretbox_NONCEBYTES + sodium.crypto_secretbox_MACBYTES - ) { + if (hexPayload.length >= crypto_secretbox_NONCEBYTES + crypto_secretbox_MACBYTES) { try { return await decryptCryptoboxPayload(hexPayload, sharedRx) } catch (decryptionError) { diff --git a/packages/beacon-core/src/utils/generate-uuid.ts b/packages/beacon-core/src/utils/generate-uuid.ts index 7b7778887..88664cc69 100644 --- a/packages/beacon-core/src/utils/generate-uuid.ts +++ b/packages/beacon-core/src/utils/generate-uuid.ts @@ -1,12 +1,12 @@ /* eslint-disable prefer-arrow/prefer-arrow-functions */ -import * as sodium from 'libsodium-wrappers' +import { ready, randombytes_buf } from 'libsodium-wrappers' /** * Generate a random GUID */ export async function generateGUID(): Promise { - await sodium.ready - const buf = sodium.randombytes_buf(16) + await ready + const buf = randombytes_buf(16) return [buf.slice(0, 4), buf.slice(4, 6), buf.slice(6, 8), buf.slice(8, 10), buf.slice(10, 16)] .map(function (subbuf) { diff --git a/packages/beacon-core/src/utils/get-account-identifier.ts b/packages/beacon-core/src/utils/get-account-identifier.ts index 25bdfc096..df3510cab 100644 --- a/packages/beacon-core/src/utils/get-account-identifier.ts +++ b/packages/beacon-core/src/utils/get-account-identifier.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import { ready, crypto_generichash } from 'libsodium-wrappers' import * as bs58check from 'bs58check' import { Network } from '@airgap/beacon-types' @@ -19,9 +19,9 @@ export const getAccountIdentifier = async (address: string, network: Network): P data.push(`rpc:${network.rpcUrl}`) } - await sodium.ready + await ready - const buffer = Buffer.from(sodium.crypto_generichash(10, data.join('-'))) + const buffer = Buffer.from(crypto_generichash(10, data.join('-'))) return bs58check.encode(buffer) } diff --git a/packages/beacon-core/src/utils/get-sender-id.ts b/packages/beacon-core/src/utils/get-sender-id.ts index 1c575d59d..92c38b3fe 100644 --- a/packages/beacon-core/src/utils/get-sender-id.ts +++ b/packages/beacon-core/src/utils/get-sender-id.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import { ready, crypto_generichash } from 'libsodium-wrappers' import * as bs58check from 'bs58check' /** @@ -9,9 +9,9 @@ import * as bs58check from 'bs58check' * @param publicKey */ export const getSenderId = async (publicKey: string): Promise => { - await sodium.ready + await ready - const buffer = Buffer.from(sodium.crypto_generichash(5, Buffer.from(publicKey, 'hex'))) + const buffer = Buffer.from(crypto_generichash(5, Buffer.from(publicKey, 'hex'))) return bs58check.encode(buffer) } diff --git a/packages/beacon-dapp/src/transports/DappP2PTransport.ts b/packages/beacon-dapp/src/transports/DappP2PTransport.ts index 4253d96eb..13189003a 100644 --- a/packages/beacon-dapp/src/transports/DappP2PTransport.ts +++ b/packages/beacon-dapp/src/transports/DappP2PTransport.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import { KeyPair } from 'libsodium-wrappers' import { Storage, StorageKey, @@ -21,7 +21,7 @@ export class DappP2PTransport extends P2PTransport< > { constructor( name: string, - keyPair: sodium.KeyPair, + keyPair: KeyPair, storage: Storage, matrixNodes: string[], iconUrl?: string, diff --git a/packages/beacon-dapp/src/transports/DappPostMessageTransport.ts b/packages/beacon-dapp/src/transports/DappPostMessageTransport.ts index f5b157131..43030a6cc 100644 --- a/packages/beacon-dapp/src/transports/DappPostMessageTransport.ts +++ b/packages/beacon-dapp/src/transports/DappPostMessageTransport.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import { KeyPair } from 'libsodium-wrappers' import { TransportStatus, StorageKey, @@ -19,7 +19,7 @@ export class DappPostMessageTransport extends PostMessageTransport< ExtendedPostMessagePairingResponse, StorageKey.TRANSPORT_POSTMESSAGE_PEERS_DAPP > { - constructor(name: string, keyPair: sodium.KeyPair, storage: Storage) { + constructor(name: string, keyPair: KeyPair, storage: Storage) { super(name, keyPair, storage, StorageKey.TRANSPORT_POSTMESSAGE_PEERS_DAPP) } diff --git a/packages/beacon-transport-matrix/src/P2PTransport.ts b/packages/beacon-transport-matrix/src/P2PTransport.ts index 42ed63935..3f0dcb01e 100644 --- a/packages/beacon-transport-matrix/src/P2PTransport.ts +++ b/packages/beacon-transport-matrix/src/P2PTransport.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import { KeyPair } from 'libsodium-wrappers' import { Logger, Transport, PeerManager } from '@airgap/beacon-core' import { ConnectionContext, @@ -27,7 +27,7 @@ export class P2PTransport< constructor( name: string, - keyPair: sodium.KeyPair, + keyPair: KeyPair, storage: Storage, matrixNodes: string[], storageKey: K, diff --git a/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts b/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts index 3f8ca2de1..7aef88e08 100644 --- a/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts +++ b/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts @@ -1,5 +1,12 @@ -import * as sodium from 'libsodium-wrappers' - +import { + KeyPair, + ready, + crypto_generichash, + from_string, + crypto_sign_detached, + crypto_secretbox_NONCEBYTES, + crypto_secretbox_MACBYTES +} from 'libsodium-wrappers' import axios from 'axios' import { getHexHash, @@ -49,7 +56,7 @@ export const publicKeyToNumber = (arr: Uint8Array, mod: number) => { return Math.floor(sum % mod) } -export const deterministicShuffle = (arr: string[], keypair: sodium.KeyPair) => { +export const deterministicShuffle = (arr: string[], keypair: KeyPair) => { const arrCopy: string[] = JSON.parse(JSON.stringify(arr)) const newArr: string[] = [] while (arrCopy.length > 0) { @@ -82,7 +89,7 @@ export class P2PCommunicationClient extends CommunicationClient { constructor( private readonly name: string, - keyPair: sodium.KeyPair, + keyPair: KeyPair, public readonly replicationCount: number, private readonly storage: Storage, matrixNodes: string[], @@ -193,13 +200,13 @@ export class P2PCommunicationClient extends CommunicationClient { public async start(): Promise { logger.log('start', 'starting client') - await sodium.ready + await ready - const loginRawDigest = sodium.crypto_generichash( + const loginRawDigest = crypto_generichash( 32, - sodium.from_string(`login:${Math.floor(Date.now() / 1000 / (5 * 60))}`) + from_string(`login:${Math.floor(Date.now() / 1000 / (5 * 60))}`) ) - const rawSignature = sodium.crypto_sign_detached(loginRawDigest, this.keyPair.privateKey) + const rawSignature = crypto_sign_detached(loginRawDigest, this.keyPair.privateKey) logger.log('start', `connecting to server`) @@ -307,10 +314,7 @@ export class P2PCommunicationClient extends CommunicationClient { } catch { /* */ } - if ( - payload && - payload.length >= sodium.crypto_secretbox_NONCEBYTES + sodium.crypto_secretbox_MACBYTES - ) { + if (payload && payload.length >= crypto_secretbox_NONCEBYTES + crypto_secretbox_MACBYTES) { try { const decryptedMessage = await decryptCryptoboxPayload(payload, sharedRx) @@ -469,10 +473,7 @@ export class P2PCommunicationClient extends CommunicationClient { const splits = event.content.message.content.split(':') const payload = Buffer.from(splits[splits.length - 1], 'hex') - if ( - payload.length >= - sodium.crypto_secretbox_NONCEBYTES + sodium.crypto_secretbox_MACBYTES - ) { + if (payload.length >= crypto_secretbox_NONCEBYTES + crypto_secretbox_MACBYTES) { try { const pairingResponse: P2PPairingResponse = JSON.parse( await openCryptobox(payload, this.keyPair.publicKey, this.keyPair.privateKey) diff --git a/packages/beacon-transport-postmessage/src/PostMessageClient.ts b/packages/beacon-transport-postmessage/src/PostMessageClient.ts index eea9fc968..452f41eed 100644 --- a/packages/beacon-transport-postmessage/src/PostMessageClient.ts +++ b/packages/beacon-transport-postmessage/src/PostMessageClient.ts @@ -1,4 +1,5 @@ -import * as sodium from 'libsodium-wrappers' +import { crypto_secretbox_NONCEBYTES, crypto_secretbox_MACBYTES } from 'libsodium-wrappers' + import { windowRef, Serializer, getSenderId, MessageBasedClient } from '@airgap/beacon-core' import { openCryptobox } from '@airgap/beacon-utils' @@ -89,10 +90,7 @@ export class PostMessageClient extends MessageBasedClient { ) { const payload = Buffer.from(data.payload, 'hex') - if ( - payload.length >= - sodium.crypto_secretbox_NONCEBYTES + sodium.crypto_secretbox_MACBYTES - ) { + if (payload.length >= crypto_secretbox_NONCEBYTES + crypto_secretbox_MACBYTES) { try { const pairingResponse: PostMessagePairingResponse = JSON.parse( await openCryptobox(payload, this.keyPair.publicKey, this.keyPair.privateKey) diff --git a/packages/beacon-transport-postmessage/src/PostMessageTransport.ts b/packages/beacon-transport-postmessage/src/PostMessageTransport.ts index 247c02708..d05057ee6 100644 --- a/packages/beacon-transport-postmessage/src/PostMessageTransport.ts +++ b/packages/beacon-transport-postmessage/src/PostMessageTransport.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import { KeyPair } from 'libsodium-wrappers' import { PostMessagePairingRequest, @@ -46,7 +46,7 @@ export class PostMessageTransport< > extends Transport { public readonly type: TransportType = TransportType.POST_MESSAGE - constructor(name: string, keyPair: sodium.KeyPair, storage: Storage, storageKey: K) { + constructor(name: string, keyPair: KeyPair, storage: Storage, storageKey: K) { super(name, new PostMessageClient(name, keyPair), new PeerManager(storage, storageKey)) } diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index af33c813f..7afa41087 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -7,8 +7,13 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "types": "dist/esm/index.d.ts", + "exports": { + "require": "./dist/cjs/index.js", + "import": "./dist/esm/index.js" + }, "directories": { - "lib": "dist/cjs", + "lib": "dist/esm", "test": "__tests__" }, "files": [ diff --git a/packages/beacon-utils/src/utils/crypto.ts b/packages/beacon-utils/src/utils/crypto.ts index 0a4bf4050..87cc05778 100644 --- a/packages/beacon-utils/src/utils/crypto.ts +++ b/packages/beacon-utils/src/utils/crypto.ts @@ -1,5 +1,19 @@ import * as bs58check from 'bs58check' -import * as sodium from 'libsodium-wrappers' +import { + ready, + crypto_generichash, + crypto_sign_seed_keypair, + from_string, + KeyPair, + randombytes_buf, + crypto_secretbox_NONCEBYTES, + crypto_secretbox_easy, + crypto_secretbox_open_easy, + crypto_sign_ed25519_pk_to_curve25519, + crypto_sign_ed25519_sk_to_curve25519, + crypto_box_seal, + crypto_box_seal_open +} from 'libsodium-wrappers' /* eslint-disable prefer-arrow/prefer-arrow-functions */ @@ -19,9 +33,9 @@ export function toHex(value: any): string { * @param key */ export async function getHexHash(key: string | Buffer | Uint8Array): Promise { - await sodium.ready + await ready - return toHex(sodium.crypto_generichash(32, key)) + return toHex(crypto_generichash(32, key)) } /** @@ -29,10 +43,10 @@ export async function getHexHash(key: string | Buffer | Uint8Array): Promise { - await sodium.ready +export async function getKeypairFromSeed(seed: string): Promise { + await ready - return sodium.crypto_sign_seed_keypair(sodium.crypto_generichash(32, sodium.from_string(seed))) + return crypto_sign_seed_keypair(crypto_generichash(32, from_string(seed))) } /** @@ -45,12 +59,12 @@ export async function encryptCryptoboxPayload( message: string, sharedKey: Uint8Array ): Promise { - await sodium.ready + await ready - const nonce = Buffer.from(sodium.randombytes_buf(sodium.crypto_secretbox_NONCEBYTES)) + const nonce = Buffer.from(randombytes_buf(crypto_secretbox_NONCEBYTES)) const combinedPayload = Buffer.concat([ nonce, - Buffer.from(sodium.crypto_secretbox_easy(Buffer.from(message, 'utf8'), nonce, sharedKey)) + Buffer.from(crypto_secretbox_easy(Buffer.from(message, 'utf8'), nonce, sharedKey)) ]) return toHex(combinedPayload) @@ -66,14 +80,12 @@ export async function decryptCryptoboxPayload( payload: Uint8Array, sharedKey: Uint8Array ): Promise { - await sodium.ready + await ready - const nonce = payload.slice(0, sodium.crypto_secretbox_NONCEBYTES) - const ciphertext = payload.slice(sodium.crypto_secretbox_NONCEBYTES) + const nonce = payload.slice(0, crypto_secretbox_NONCEBYTES) + const ciphertext = payload.slice(crypto_secretbox_NONCEBYTES) - return Buffer.from(sodium.crypto_secretbox_open_easy(ciphertext, nonce, sharedKey)).toString( - 'utf8' - ) + return Buffer.from(crypto_secretbox_open_easy(ciphertext, nonce, sharedKey)).toString('utf8') } /** @@ -86,10 +98,10 @@ export async function sealCryptobox( payload: string | Buffer, publicKey: Uint8Array ): Promise { - await sodium.ready + await ready - const kxSelfPublicKey = sodium.crypto_sign_ed25519_pk_to_curve25519(Buffer.from(publicKey)) // Secret bytes to scalar bytes - const encryptedMessage = sodium.crypto_box_seal(payload, kxSelfPublicKey) + const kxSelfPublicKey = crypto_sign_ed25519_pk_to_curve25519(Buffer.from(publicKey)) // Secret bytes to scalar bytes + const encryptedMessage = crypto_box_seal(payload, kxSelfPublicKey) return toHex(encryptedMessage) } @@ -106,16 +118,12 @@ export async function openCryptobox( publicKey: Uint8Array, privateKey: Uint8Array ): Promise { - await sodium.ready + await ready - const kxSelfPrivateKey = sodium.crypto_sign_ed25519_sk_to_curve25519(Buffer.from(privateKey)) // Secret bytes to scalar bytes - const kxSelfPublicKey = sodium.crypto_sign_ed25519_pk_to_curve25519(Buffer.from(publicKey)) // Secret bytes to scalar bytes + const kxSelfPrivateKey = crypto_sign_ed25519_sk_to_curve25519(Buffer.from(privateKey)) // Secret bytes to scalar bytes + const kxSelfPublicKey = crypto_sign_ed25519_pk_to_curve25519(Buffer.from(publicKey)) // Secret bytes to scalar bytes - const decryptedMessage = sodium.crypto_box_seal_open( - encryptedPayload, - kxSelfPublicKey, - kxSelfPrivateKey - ) + const decryptedMessage = crypto_box_seal_open(encryptedPayload, kxSelfPublicKey, kxSelfPrivateKey) return Buffer.from(decryptedMessage).toString() } @@ -126,7 +134,7 @@ export async function openCryptobox( * @param publicKey */ export async function getAddressFromPublicKey(publicKey: string): Promise { - await sodium.ready + await ready const prefixes = { // tz1... @@ -168,7 +176,7 @@ export async function getAddressFromPublicKey(publicKey: string): Promise { constructor( name: string, - keyPair: sodium.KeyPair, + keyPair: KeyPair, storage: Storage, matrixNodes: string[], iconUrl?: string, diff --git a/packages/beacon-wallet/src/transports/WalletPostMessageTransport.ts b/packages/beacon-wallet/src/transports/WalletPostMessageTransport.ts index 16c33bf55..ba2eea5f4 100644 --- a/packages/beacon-wallet/src/transports/WalletPostMessageTransport.ts +++ b/packages/beacon-wallet/src/transports/WalletPostMessageTransport.ts @@ -1,4 +1,4 @@ -import * as sodium from 'libsodium-wrappers' +import { KeyPair } from 'libsodium-wrappers' import { StorageKey, Storage, PostMessagePairingRequest } from '@airgap/beacon-types' import { PostMessageTransport } from '@airgap/beacon-transport-postmessage' @@ -13,7 +13,7 @@ export class WalletPostMessageTransport extends PostMessageTransport< PostMessagePairingRequest, StorageKey.TRANSPORT_POSTMESSAGE_PEERS_WALLET > { - constructor(name: string, keyPair: sodium.KeyPair, storage: Storage) { + constructor(name: string, keyPair: KeyPair, storage: Storage) { super(name, keyPair, storage, StorageKey.TRANSPORT_POSTMESSAGE_PEERS_WALLET) } } From 3d993abfd36cfb265295e19093569aff970374a5 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 10 Nov 2021 16:53:34 +0100 Subject: [PATCH 053/130] chore(release): v0.0.1-beta.8 --- lerna.json | 2 +- packages/beacon-core/package.json | 6 +++--- packages/beacon-dapp/package.json | 8 ++++---- packages/beacon-protocol-kusama/package.json | 2 +- packages/beacon-protocol-tezos/package.json | 2 +- packages/beacon-transport-matrix/package.json | 6 +++--- packages/beacon-transport-postmessage/package.json | 8 ++++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 2 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 ++++---- 11 files changed, 24 insertions(+), 24 deletions(-) diff --git a/lerna.json b/lerna.json index cd5f6040d..adabae3e3 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "0.0.1-beta.7" + "version": "0.0.1-beta.8" } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 418cc6e47..3b5e14641 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.7", + "version": "0.0.1-beta.8", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.7", - "@airgap/beacon-utils": "^0.0.1-beta.7", + "@airgap/beacon-types": "^0.0.1-beta.8", + "@airgap/beacon-utils": "^0.0.1-beta.8", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 3d3d0f0d0..d70391dea 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.7", + "version": "0.0.1-beta.8", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.7", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.7", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.7", + "@airgap/beacon-core": "^0.0.1-beta.8", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.8", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.8", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-protocol-kusama/package.json index 5a54e5def..bcb7a3c81 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.1-beta.7", + "version": "0.0.1-beta.8", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index 7e26d05cf..3f2c7fe4b 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.1-beta.7", + "version": "0.0.1-beta.8", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index 062eae606..209bd41d7 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.7", + "version": "0.0.1-beta.8", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.7", - "@airgap/beacon-utils": "^0.0.1-beta.7", + "@airgap/beacon-core": "^0.0.1-beta.8", + "@airgap/beacon-utils": "^0.0.1-beta.8", "axios": "0.21.1" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index c113caf62..77ec719b1 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.7", + "version": "0.0.1-beta.8", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.7", - "@airgap/beacon-types": "^0.0.1-beta.7", - "@airgap/beacon-utils": "^0.0.1-beta.7", + "@airgap/beacon-core": "^0.0.1-beta.8", + "@airgap/beacon-types": "^0.0.1-beta.8", + "@airgap/beacon-utils": "^0.0.1-beta.8", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 7c6d22280..f0a48b38f 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.7", + "version": "0.0.1-beta.8", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index 58f548c46..563b3e872 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.7", + "version": "0.0.1-beta.8", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 7afa41087..ea264470b 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.7", + "version": "0.0.1-beta.8", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 5405954b2..5c15eec0b 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.7", + "version": "0.0.1-beta.8", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.7", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.7", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.7" + "@airgap/beacon-core": "^0.0.1-beta.8", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.8", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.8" } } From 4b6dd8a1e0c7e1574ed98acc79387a7a642feab1 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 10 Nov 2021 17:13:02 +0100 Subject: [PATCH 054/130] fix(): add esm reference --- package.json | 3 +++ packages/beacon-core/package.json | 3 +++ packages/beacon-dapp/package.json | 3 +++ packages/beacon-protocol-kusama/package.json | 3 +++ packages/beacon-protocol-tezos/package.json | 3 +++ packages/beacon-transport-matrix/package.json | 3 +++ packages/beacon-transport-postmessage/package.json | 3 +++ packages/beacon-types/package.json | 3 +++ packages/beacon-ui/package.json | 3 +++ packages/beacon-utils/package.json | 3 +++ packages/beacon-wallet/package.json | 3 +++ 11 files changed, 33 insertions(+) diff --git a/package.json b/package.json index 46f4c80f2..56e07bcbd 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,9 @@ "description": "The beacon-sdk allows you to easily connect DApps with Wallets through P2P communication or a chrome extension.", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "es2015": "dist/esm/index.js", + "esm2015": "dist/esm/index.js", + "fesm2015": "dist/esm/index.js", "unpkg": "dist/walletbeacon.min.js", "types": "dist/esm/index.d.ts", "keywords": [ diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 3b5e14641..3396e06e2 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -7,6 +7,9 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "es2015": "dist/esm/index.js", + "esm2015": "dist/esm/index.js", + "fesm2015": "dist/esm/index.js", "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index d70391dea..b3c26b335 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -7,6 +7,9 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "es2015": "dist/esm/index.js", + "esm2015": "dist/esm/index.js", + "fesm2015": "dist/esm/index.js", "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-protocol-kusama/package.json index bcb7a3c81..a9e21c044 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -7,6 +7,9 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "es2015": "dist/esm/index.js", + "esm2015": "dist/esm/index.js", + "fesm2015": "dist/esm/index.js", "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index 3f2c7fe4b..a4129d02e 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -7,6 +7,9 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "es2015": "dist/esm/index.js", + "esm2015": "dist/esm/index.js", + "fesm2015": "dist/esm/index.js", "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index 209bd41d7..77cc87085 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -7,6 +7,9 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "es2015": "dist/esm/index.js", + "esm2015": "dist/esm/index.js", + "fesm2015": "dist/esm/index.js", "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 77ec719b1..525c88fa1 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -7,6 +7,9 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "es2015": "dist/esm/index.js", + "esm2015": "dist/esm/index.js", + "fesm2015": "dist/esm/index.js", "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index f0a48b38f..09d88c7a3 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -7,6 +7,9 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "es2015": "dist/esm/index.js", + "esm2015": "dist/esm/index.js", + "fesm2015": "dist/esm/index.js", "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index 563b3e872..31217c622 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -7,6 +7,9 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "es2015": "dist/esm/index.js", + "esm2015": "dist/esm/index.js", + "fesm2015": "dist/esm/index.js", "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index ea264470b..40759c36f 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -7,6 +7,9 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "es2015": "dist/esm/index.js", + "esm2015": "dist/esm/index.js", + "fesm2015": "dist/esm/index.js", "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 5c15eec0b..db3489a6e 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -7,6 +7,9 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", + "es2015": "dist/esm/index.js", + "esm2015": "dist/esm/index.js", + "fesm2015": "dist/esm/index.js", "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", From d23e9fb9724b5cbc82b18a2cd29fe1dd15403ac4 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 10 Nov 2021 17:13:25 +0100 Subject: [PATCH 055/130] chore(release): v0.0.1-beta.9 --- lerna.json | 2 +- packages/beacon-core/package.json | 6 +++--- packages/beacon-dapp/package.json | 8 ++++---- packages/beacon-protocol-kusama/package.json | 2 +- packages/beacon-protocol-tezos/package.json | 2 +- packages/beacon-transport-matrix/package.json | 6 +++--- packages/beacon-transport-postmessage/package.json | 8 ++++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 2 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 ++++---- 11 files changed, 24 insertions(+), 24 deletions(-) diff --git a/lerna.json b/lerna.json index adabae3e3..4b6cd7e80 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "0.0.1-beta.8" + "version": "0.0.1-beta.9" } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 3396e06e2..03bf2c08f 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.8", + "version": "0.0.1-beta.9", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -37,8 +37,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.8", - "@airgap/beacon-utils": "^0.0.1-beta.8", + "@airgap/beacon-types": "^0.0.1-beta.9", + "@airgap/beacon-utils": "^0.0.1-beta.9", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index b3c26b335..532910e84 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.8", + "version": "0.0.1-beta.9", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -37,9 +37,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.8", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.8", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.8", + "@airgap/beacon-core": "^0.0.1-beta.9", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.9", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.9", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-protocol-kusama/package.json index a9e21c044..bb8fcf32f 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.1-beta.8", + "version": "0.0.1-beta.9", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index a4129d02e..bce41b640 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.1-beta.8", + "version": "0.0.1-beta.9", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index 77cc87085..a8167d0c2 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.8", + "version": "0.0.1-beta.9", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -37,8 +37,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.8", - "@airgap/beacon-utils": "^0.0.1-beta.8", + "@airgap/beacon-core": "^0.0.1-beta.9", + "@airgap/beacon-utils": "^0.0.1-beta.9", "axios": "0.21.1" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 525c88fa1..06acea81c 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.8", + "version": "0.0.1-beta.9", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -37,9 +37,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.8", - "@airgap/beacon-types": "^0.0.1-beta.8", - "@airgap/beacon-utils": "^0.0.1-beta.8", + "@airgap/beacon-core": "^0.0.1-beta.9", + "@airgap/beacon-types": "^0.0.1-beta.9", + "@airgap/beacon-utils": "^0.0.1-beta.9", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 09d88c7a3..770b190f3 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.8", + "version": "0.0.1-beta.9", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index 31217c622..160d1e03e 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.8", + "version": "0.0.1-beta.9", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 40759c36f..2fb5b8286 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.8", + "version": "0.0.1-beta.9", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index db3489a6e..e19acd0b9 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.8", + "version": "0.0.1-beta.9", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -37,8 +37,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.8", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.8", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.8" + "@airgap/beacon-core": "^0.0.1-beta.9", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.9", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.9" } } From 7e285fd1de35bc0e9770bf0140b29889eb71ce7e Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 10 Nov 2021 18:50:16 +0100 Subject: [PATCH 056/130] feat(build): remove esModuleInterop --- package-lock.json | 87 ++++++++++--------- package.json | 2 +- .../transports/clients/MessageBasedClient.ts | 4 +- packages/beacon-dapp/src/utils/qr.ts | 4 +- .../P2PCommunicationClient.ts | 2 +- .../src/matrix-client/MatrixHttpClient.ts | 2 +- .../beacon-utils/src/utils/exposed-promise.ts | 6 +- tsconfig.json | 3 +- 8 files changed, 55 insertions(+), 55 deletions(-) diff --git a/package-lock.json b/package-lock.json index 18e774259..7685488db 100755 --- a/package-lock.json +++ b/package-lock.json @@ -56,7 +56,7 @@ "tslint": "6.1.2", "typedoc": "^0.20.30", "typedoc-plugin-internal-external": "^2.2.0", - "typescript": "3.9.2", + "typescript": "4.4.4", "uglify-js": "3.14.3" } }, @@ -14782,10 +14782,11 @@ "dev": true }, "node_modules/typescript": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.2.tgz", - "integrity": "sha512-q2ktq4n/uLuNNShyayit+DTobV2ApPEo/6so68JaD5ojvc/6GClBipedB9zNWYxRSAlZXAe405Rlijzl6qDiSw==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -15561,11 +15562,11 @@ }, "packages/beacon-core": { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.5", + "version": "0.0.1-beta.9", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.5", - "@airgap/beacon-utils": "^0.0.1-beta.5", + "@airgap/beacon-types": "^0.0.1-beta.9", + "@airgap/beacon-utils": "^0.0.1-beta.9", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15573,50 +15574,50 @@ }, "packages/beacon-dapp": { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.5", + "version": "0.0.1-beta.9", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.5", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.5", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.5", + "@airgap/beacon-core": "^0.0.1-beta.9", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.9", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.9", "qrcode-generator": "1.4.4" } }, "packages/beacon-protocol-kusama": { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.1-beta.5", + "version": "0.0.1-beta.9", "license": "ISC" }, "packages/beacon-protocol-tezos": { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.1-beta.5", + "version": "0.0.1-beta.9", "license": "ISC" }, "packages/beacon-transport-matrix": { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.5", + "version": "0.0.1-beta.9", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.5", - "@airgap/beacon-utils": "^0.0.1-beta.5", + "@airgap/beacon-core": "^0.0.1-beta.9", + "@airgap/beacon-utils": "^0.0.1-beta.9", "axios": "0.21.1" } }, "packages/beacon-transport-postmessage": { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.5", + "version": "0.0.1-beta.9", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.5", - "@airgap/beacon-types": "^0.0.1-beta.5", - "@airgap/beacon-utils": "^0.0.1-beta.5", + "@airgap/beacon-core": "^0.0.1-beta.9", + "@airgap/beacon-types": "^0.0.1-beta.9", + "@airgap/beacon-utils": "^0.0.1-beta.9", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } }, "packages/beacon-types": { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.5", + "version": "0.0.1-beta.9", "license": "ISC", "dependencies": { "@types/chrome": "0.0.115" @@ -15624,12 +15625,12 @@ }, "packages/beacon-ui": { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.5", + "version": "0.0.1-beta.9", "license": "ISC" }, "packages/beacon-utils": { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.5", + "version": "0.0.1-beta.9", "license": "ISC", "dependencies": { "@types/libsodium-wrappers": "0.7.9", @@ -15639,12 +15640,12 @@ }, "packages/beacon-wallet": { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.5", + "version": "0.0.1-beta.9", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.5", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.5", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.5" + "@airgap/beacon-core": "^0.0.1-beta.9", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.9", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.9" } } }, @@ -15652,8 +15653,8 @@ "@airgap/beacon-core": { "version": "file:packages/beacon-core", "requires": { - "@airgap/beacon-types": "^0.0.1-beta.5", - "@airgap/beacon-utils": "^0.0.1-beta.5", + "@airgap/beacon-types": "^0.0.1-beta.9", + "@airgap/beacon-utils": "^0.0.1-beta.9", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15662,9 +15663,9 @@ "@airgap/beacon-dapp": { "version": "file:packages/beacon-dapp", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.5", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.5", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.5", + "@airgap/beacon-core": "^0.0.1-beta.9", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.9", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.9", "qrcode-generator": "1.4.4" } }, @@ -15677,17 +15678,17 @@ "@airgap/beacon-transport-matrix": { "version": "file:packages/beacon-transport-matrix", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.5", - "@airgap/beacon-utils": "^0.0.1-beta.5", + "@airgap/beacon-core": "^0.0.1-beta.9", + "@airgap/beacon-utils": "^0.0.1-beta.9", "axios": "0.21.1" } }, "@airgap/beacon-transport-postmessage": { "version": "file:packages/beacon-transport-postmessage", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.5", - "@airgap/beacon-types": "^0.0.1-beta.5", - "@airgap/beacon-utils": "^0.0.1-beta.5", + "@airgap/beacon-core": "^0.0.1-beta.9", + "@airgap/beacon-types": "^0.0.1-beta.9", + "@airgap/beacon-utils": "^0.0.1-beta.9", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } @@ -15712,9 +15713,9 @@ "@airgap/beacon-wallet": { "version": "file:packages/beacon-wallet", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.5", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.5", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.5" + "@airgap/beacon-core": "^0.0.1-beta.9", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.9", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.9" } }, "@babel/code-frame": { @@ -27861,9 +27862,9 @@ "dev": true }, "typescript": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.2.tgz", - "integrity": "sha512-q2ktq4n/uLuNNShyayit+DTobV2ApPEo/6so68JaD5ojvc/6GClBipedB9zNWYxRSAlZXAe405Rlijzl6qDiSw==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", "dev": true }, "uglify-js": { diff --git a/package.json b/package.json index 56e07bcbd..eac729e38 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "tslint": "6.1.2", "typedoc": "^0.20.30", "typedoc-plugin-internal-external": "^2.2.0", - "typescript": "3.9.2", + "typescript": "4.4.4", "uglify-js": "3.14.3" }, "files": [ diff --git a/packages/beacon-core/src/transports/clients/MessageBasedClient.ts b/packages/beacon-core/src/transports/clients/MessageBasedClient.ts index 35f137238..ea5b967e7 100644 --- a/packages/beacon-core/src/transports/clients/MessageBasedClient.ts +++ b/packages/beacon-core/src/transports/clients/MessageBasedClient.ts @@ -19,7 +19,7 @@ export abstract class MessageBasedClient extends CommunicationClient { /** * The listeners that will be notified of new messages */ - protected abstract readonly activeListeners: Map = new Map() + protected abstract readonly activeListeners: Map constructor(protected readonly name: string, keyPair: KeyPair) { super(keyPair) @@ -122,5 +122,5 @@ export abstract class MessageBasedClient extends CommunicationClient { /** * Initialize the connection */ - public abstract async init(): Promise + public abstract init(): Promise } diff --git a/packages/beacon-dapp/src/utils/qr.ts b/packages/beacon-dapp/src/utils/qr.ts index 0d9dd4d8e..6767ac79f 100644 --- a/packages/beacon-dapp/src/utils/qr.ts +++ b/packages/beacon-dapp/src/utils/qr.ts @@ -1,4 +1,4 @@ -import qrcode from 'qrcode-generator' +import * as qrcode from 'qrcode-generator' import { Logger } from '@airgap/beacon-core' const logger = new Logger('QR') @@ -12,7 +12,7 @@ const logger = new Logger('QR') export const getQrData = (payload: string, type?: 'data' | 'svg' | 'ascii'): string => { const typeNumber: TypeNumber = 0 const errorCorrectionLevel: ErrorCorrectionLevel = 'L' - const qr = qrcode(typeNumber, errorCorrectionLevel) + const qr = (qrcode as any)(typeNumber, errorCorrectionLevel) if (payload.length > 500) { logger.warn( diff --git a/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts b/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts index 7aef88e08..241d19313 100644 --- a/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts +++ b/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts @@ -185,7 +185,7 @@ export class P2PCommunicationClient extends CommunicationClient { try { await (await this.client.promise).joinRooms(roomId) } catch (error) { - if (retry <= 10 && error.errcode === 'M_FORBIDDEN') { + if (retry <= 10 && (error as any).errcode === 'M_FORBIDDEN') { // If we join the room too fast after receiving the invite, the server can accidentally reject our join. This seems to be a problem only when using a federated multi-node setup. Usually waiting for a couple milliseconds solves the issue, but to handle lag, we will keep retrying for 2 seconds. logger.log(`Retrying to join...`, error) setTimeout(async () => { diff --git a/packages/beacon-transport-matrix/src/matrix-client/MatrixHttpClient.ts b/packages/beacon-transport-matrix/src/matrix-client/MatrixHttpClient.ts index bd8a10d04..7b28a52fc 100644 --- a/packages/beacon-transport-matrix/src/matrix-client/MatrixHttpClient.ts +++ b/packages/beacon-transport-matrix/src/matrix-client/MatrixHttpClient.ts @@ -102,7 +102,7 @@ export class MatrixHttpClient { cancelToken: this.cancelTokenSource.token }) } catch (axiosError) { - throw axiosError.response.data + throw (axiosError as any).response.data } return response.data diff --git a/packages/beacon-utils/src/utils/exposed-promise.ts b/packages/beacon-utils/src/utils/exposed-promise.ts index 2c5b65ba2..d6825a33b 100644 --- a/packages/beacon-utils/src/utils/exposed-promise.ts +++ b/packages/beacon-utils/src/utils/exposed-promise.ts @@ -4,7 +4,7 @@ export enum ExposedPromiseStatus { REJECTED = 'rejected' } -type Resolve = (value?: T) => void +type Resolve = (value: T) => void type Reject = (reason?: U) => void const notInitialized = (): never => { @@ -45,7 +45,7 @@ export class ExposedPromise { constructor() { this._promise = new Promise((innerResolve: Resolve, innerReject: Reject): void => { - this._resolve = (value?: T): void => { + this._resolve = (value: T): void => { if (this.isSettled()) { return } @@ -74,7 +74,7 @@ export class ExposedPromise { }) } - public static resolve(value?: T): ExposedPromise { + public static resolve(value: T): ExposedPromise { const promise = new ExposedPromise() promise.resolve(value) diff --git a/tsconfig.json b/tsconfig.json index 3b12370f0..b91574c00 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,10 +1,9 @@ { "compilerOptions": { - "target": "ES2015", + "target": "esnext", "lib": ["es2015", "es2017.string", "dom"], "module": "esnext", "moduleResolution": "node", - "esModuleInterop": true, "declaration": true, "outDir": "./dist/esm", "typeRoots": ["./node_modules/@types", "./src/typings"], From dee593d5e9773cfeb53397c1f5824afca2f5d5a4 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 10 Nov 2021 18:50:42 +0100 Subject: [PATCH 057/130] chore(release): v0.0.1-beta.10 --- lerna.json | 2 +- packages/beacon-core/package.json | 6 +++--- packages/beacon-dapp/package.json | 8 ++++---- packages/beacon-protocol-kusama/package.json | 2 +- packages/beacon-protocol-tezos/package.json | 2 +- packages/beacon-transport-matrix/package.json | 6 +++--- packages/beacon-transport-postmessage/package.json | 8 ++++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 2 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 ++++---- 11 files changed, 24 insertions(+), 24 deletions(-) diff --git a/lerna.json b/lerna.json index 4b6cd7e80..b4276bb65 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "0.0.1-beta.9" + "version": "0.0.1-beta.10" } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 03bf2c08f..331aeddeb 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.9", + "version": "0.0.1-beta.10", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -37,8 +37,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.9", - "@airgap/beacon-utils": "^0.0.1-beta.9", + "@airgap/beacon-types": "^0.0.1-beta.10", + "@airgap/beacon-utils": "^0.0.1-beta.10", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 532910e84..e54b0de82 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.9", + "version": "0.0.1-beta.10", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -37,9 +37,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.9", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.9", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.9", + "@airgap/beacon-core": "^0.0.1-beta.10", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.10", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.10", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-protocol-kusama/package.json index bb8fcf32f..e81e74307 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.1-beta.9", + "version": "0.0.1-beta.10", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index bce41b640..b08afca20 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.1-beta.9", + "version": "0.0.1-beta.10", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index a8167d0c2..9fe83a8c6 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.9", + "version": "0.0.1-beta.10", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -37,8 +37,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.9", - "@airgap/beacon-utils": "^0.0.1-beta.9", + "@airgap/beacon-core": "^0.0.1-beta.10", + "@airgap/beacon-utils": "^0.0.1-beta.10", "axios": "0.21.1" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 06acea81c..788c46de9 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.9", + "version": "0.0.1-beta.10", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -37,9 +37,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.9", - "@airgap/beacon-types": "^0.0.1-beta.9", - "@airgap/beacon-utils": "^0.0.1-beta.9", + "@airgap/beacon-core": "^0.0.1-beta.10", + "@airgap/beacon-types": "^0.0.1-beta.10", + "@airgap/beacon-utils": "^0.0.1-beta.10", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 770b190f3..f42d052d5 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.9", + "version": "0.0.1-beta.10", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index 160d1e03e..d1529cff9 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.9", + "version": "0.0.1-beta.10", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 2fb5b8286..3f9c07ab4 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.9", + "version": "0.0.1-beta.10", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index e19acd0b9..6bb14b51f 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.9", + "version": "0.0.1-beta.10", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -37,8 +37,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.9", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.9", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.9" + "@airgap/beacon-core": "^0.0.1-beta.10", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.10", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.10" } } From 3df123c92aabce71af6d77adf63e129464e56a4e Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 10 Nov 2021 18:57:21 +0100 Subject: [PATCH 058/130] fix(build): don't build commonjs for esm build --- packages/beacon-core/tsconfig.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/beacon-core/tsconfig.json b/packages/beacon-core/tsconfig.json index 9e96ff4b3..deb6ffc63 100644 --- a/packages/beacon-core/tsconfig.json +++ b/packages/beacon-core/tsconfig.json @@ -2,8 +2,6 @@ "extends": "../../tsconfig.json", "compilerOptions": { "baseUrl": ".", - "target": "es5", - "module": "commonjs", "outDir": "./dist/esm", "paths": { "@airgap/beacon-core": ["./src"] From 9802e63e467d2d0026766d2c2367d4791611ffa1 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 10 Nov 2021 18:57:53 +0100 Subject: [PATCH 059/130] chore(release): v0.0.1-beta.11 --- lerna.json | 2 +- packages/beacon-core/package.json | 6 +++--- packages/beacon-dapp/package.json | 8 ++++---- packages/beacon-protocol-kusama/package.json | 2 +- packages/beacon-protocol-tezos/package.json | 2 +- packages/beacon-transport-matrix/package.json | 6 +++--- packages/beacon-transport-postmessage/package.json | 8 ++++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 2 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 ++++---- 11 files changed, 24 insertions(+), 24 deletions(-) diff --git a/lerna.json b/lerna.json index b4276bb65..a04e8f1f6 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "0.0.1-beta.10" + "version": "0.0.1-beta.11" } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 331aeddeb..f3aa97a98 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.10", + "version": "0.0.1-beta.11", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -37,8 +37,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.10", - "@airgap/beacon-utils": "^0.0.1-beta.10", + "@airgap/beacon-types": "^0.0.1-beta.11", + "@airgap/beacon-utils": "^0.0.1-beta.11", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index e54b0de82..7dd6bf9f3 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.10", + "version": "0.0.1-beta.11", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -37,9 +37,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.10", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.10", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.10", + "@airgap/beacon-core": "^0.0.1-beta.11", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.11", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.11", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-protocol-kusama/package.json index e81e74307..4b9dc5f30 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.1-beta.10", + "version": "0.0.1-beta.11", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index b08afca20..c2c936cbd 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.1-beta.10", + "version": "0.0.1-beta.11", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index 9fe83a8c6..4dd39b328 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.10", + "version": "0.0.1-beta.11", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -37,8 +37,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.10", - "@airgap/beacon-utils": "^0.0.1-beta.10", + "@airgap/beacon-core": "^0.0.1-beta.11", + "@airgap/beacon-utils": "^0.0.1-beta.11", "axios": "0.21.1" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 788c46de9..668d8c8bd 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.10", + "version": "0.0.1-beta.11", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -37,9 +37,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.10", - "@airgap/beacon-types": "^0.0.1-beta.10", - "@airgap/beacon-utils": "^0.0.1-beta.10", + "@airgap/beacon-core": "^0.0.1-beta.11", + "@airgap/beacon-types": "^0.0.1-beta.11", + "@airgap/beacon-utils": "^0.0.1-beta.11", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index f42d052d5..06a21028d 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.10", + "version": "0.0.1-beta.11", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index d1529cff9..bb6f8c349 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.10", + "version": "0.0.1-beta.11", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 3f9c07ab4..2720298b2 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.10", + "version": "0.0.1-beta.11", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 6bb14b51f..34dd8cc17 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.10", + "version": "0.0.1-beta.11", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -37,8 +37,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.10", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.10", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.10" + "@airgap/beacon-core": "^0.0.1-beta.11", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.11", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.11" } } From 6c31658e6b2433c23978628979c3fed35e63a69e Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Thu, 11 Nov 2021 00:11:20 +0100 Subject: [PATCH 060/130] fix(build): use es2015 target --- tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tsconfig.json b/tsconfig.json index b91574c00..8d0fe260c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "esnext", + "target": "ES2015", "lib": ["es2015", "es2017.string", "dom"], "module": "esnext", "moduleResolution": "node", From 7a149789e4ddde39790bffd633daa0775c86271f Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Thu, 11 Nov 2021 00:11:41 +0100 Subject: [PATCH 061/130] chore(release): v0.0.1-beta.12 --- lerna.json | 2 +- packages/beacon-core/package.json | 6 +++--- packages/beacon-dapp/package.json | 8 ++++---- packages/beacon-protocol-kusama/package.json | 2 +- packages/beacon-protocol-tezos/package.json | 2 +- packages/beacon-transport-matrix/package.json | 6 +++--- packages/beacon-transport-postmessage/package.json | 8 ++++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 2 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 ++++---- 11 files changed, 24 insertions(+), 24 deletions(-) diff --git a/lerna.json b/lerna.json index a04e8f1f6..797ad5123 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "0.0.1-beta.11" + "version": "0.0.1-beta.12" } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index f3aa97a98..c289915e2 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.11", + "version": "0.0.1-beta.12", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -37,8 +37,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.11", - "@airgap/beacon-utils": "^0.0.1-beta.11", + "@airgap/beacon-types": "^0.0.1-beta.12", + "@airgap/beacon-utils": "^0.0.1-beta.12", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 7dd6bf9f3..7479fecdc 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.11", + "version": "0.0.1-beta.12", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -37,9 +37,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.11", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.11", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.11", + "@airgap/beacon-core": "^0.0.1-beta.12", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.12", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.12", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-protocol-kusama/package.json index 4b9dc5f30..b30a9693e 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.1-beta.11", + "version": "0.0.1-beta.12", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index c2c936cbd..aafb90ec1 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.1-beta.11", + "version": "0.0.1-beta.12", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index 4dd39b328..dd9dd5507 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.11", + "version": "0.0.1-beta.12", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -37,8 +37,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.11", - "@airgap/beacon-utils": "^0.0.1-beta.11", + "@airgap/beacon-core": "^0.0.1-beta.12", + "@airgap/beacon-utils": "^0.0.1-beta.12", "axios": "0.21.1" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 668d8c8bd..7749444f0 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.11", + "version": "0.0.1-beta.12", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -37,9 +37,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.11", - "@airgap/beacon-types": "^0.0.1-beta.11", - "@airgap/beacon-utils": "^0.0.1-beta.11", + "@airgap/beacon-core": "^0.0.1-beta.12", + "@airgap/beacon-types": "^0.0.1-beta.12", + "@airgap/beacon-utils": "^0.0.1-beta.12", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 06a21028d..e6d3be8c1 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.11", + "version": "0.0.1-beta.12", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index bb6f8c349..b5d636707 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.11", + "version": "0.0.1-beta.12", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 2720298b2..f1c3ebcbf 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.11", + "version": "0.0.1-beta.12", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 34dd8cc17..e91812240 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.11", + "version": "0.0.1-beta.12", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -37,8 +37,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.11", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.11", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.11" + "@airgap/beacon-core": "^0.0.1-beta.12", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.12", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.12" } } From 3b0dc2ee60f1af7add96da6c9e60cbd48a528c2b Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Thu, 11 Nov 2021 12:55:12 +0100 Subject: [PATCH 062/130] fix(storage): make sure prefix is always applied --- packages/beacon-wallet/src/client/WalletClient.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/beacon-wallet/src/client/WalletClient.ts b/packages/beacon-wallet/src/client/WalletClient.ts index 34f96187c..036f1af2b 100644 --- a/packages/beacon-wallet/src/client/WalletClient.ts +++ b/packages/beacon-wallet/src/client/WalletClient.ts @@ -60,9 +60,12 @@ export class WalletClient extends Client { private pendingRequests: [BeaconRequestMessage, ConnectionContext][] = [] constructor(config: WalletClientOptions) { - super({ storage: new LocalStorage(), ...config }) - this.permissionManager = new PermissionManager(new LocalStorage()) - this.appMetadataManager = new AppMetadataManager(new LocalStorage()) + super({ + storage: config && config.storage ? config.storage : new LocalStorage(), + ...config + }) + this.permissionManager = new PermissionManager(this.storage) + this.appMetadataManager = new AppMetadataManager(this.storage) } public async init(): Promise { From b599206d3f9a2b9f94ddf6024fcb3f2342e09960 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Thu, 11 Nov 2021 13:24:02 +0100 Subject: [PATCH 063/130] feat(build): check version --- package-lock.json | 73 +++++++++---------- package.json | 11 ++- packages/beacon-core/package.json | 3 - packages/beacon-core/src/constants.ts | 2 +- packages/beacon-dapp/package.json | 4 +- packages/beacon-protocol-kusama/package.json | 3 - packages/beacon-protocol-tezos/package.json | 3 - packages/beacon-transport-matrix/package.json | 3 - .../beacon-transport-postmessage/package.json | 3 - packages/beacon-types/package.json | 3 - packages/beacon-ui/package.json | 3 - packages/beacon-utils/package.json | 3 - packages/beacon-wallet/package.json | 4 +- scripts/check-sdk-version.ts | 16 +--- 14 files changed, 48 insertions(+), 86 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7685488db..3f9b71c5e 100755 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,6 @@ "packages": { "": { "name": "@airgap/beacon-sdk", - "version": "2.3.6", "license": "MIT", "dependencies": { "@airgap/beacon-core": "file:packages/beacon-core", @@ -15562,11 +15561,11 @@ }, "packages/beacon-core": { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.9", + "version": "0.0.1-beta.12", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.9", - "@airgap/beacon-utils": "^0.0.1-beta.9", + "@airgap/beacon-types": "^0.0.1-beta.12", + "@airgap/beacon-utils": "^0.0.1-beta.12", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15574,50 +15573,50 @@ }, "packages/beacon-dapp": { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.9", + "version": "0.0.1-beta.12", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.9", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.9", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.9", + "@airgap/beacon-core": "^0.0.1-beta.12", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.12", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.12", "qrcode-generator": "1.4.4" } }, "packages/beacon-protocol-kusama": { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.1-beta.9", + "version": "0.0.1-beta.12", "license": "ISC" }, "packages/beacon-protocol-tezos": { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.1-beta.9", + "version": "0.0.1-beta.12", "license": "ISC" }, "packages/beacon-transport-matrix": { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.9", + "version": "0.0.1-beta.12", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.9", - "@airgap/beacon-utils": "^0.0.1-beta.9", + "@airgap/beacon-core": "^0.0.1-beta.12", + "@airgap/beacon-utils": "^0.0.1-beta.12", "axios": "0.21.1" } }, "packages/beacon-transport-postmessage": { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.9", + "version": "0.0.1-beta.12", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.9", - "@airgap/beacon-types": "^0.0.1-beta.9", - "@airgap/beacon-utils": "^0.0.1-beta.9", + "@airgap/beacon-core": "^0.0.1-beta.12", + "@airgap/beacon-types": "^0.0.1-beta.12", + "@airgap/beacon-utils": "^0.0.1-beta.12", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } }, "packages/beacon-types": { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.9", + "version": "0.0.1-beta.12", "license": "ISC", "dependencies": { "@types/chrome": "0.0.115" @@ -15625,12 +15624,12 @@ }, "packages/beacon-ui": { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.9", + "version": "0.0.1-beta.12", "license": "ISC" }, "packages/beacon-utils": { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.9", + "version": "0.0.1-beta.12", "license": "ISC", "dependencies": { "@types/libsodium-wrappers": "0.7.9", @@ -15640,12 +15639,12 @@ }, "packages/beacon-wallet": { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.9", + "version": "0.0.1-beta.12", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.9", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.9", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.9" + "@airgap/beacon-core": "^0.0.1-beta.12", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.12", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.12" } } }, @@ -15653,8 +15652,8 @@ "@airgap/beacon-core": { "version": "file:packages/beacon-core", "requires": { - "@airgap/beacon-types": "^0.0.1-beta.9", - "@airgap/beacon-utils": "^0.0.1-beta.9", + "@airgap/beacon-types": "^0.0.1-beta.12", + "@airgap/beacon-utils": "^0.0.1-beta.12", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15663,9 +15662,9 @@ "@airgap/beacon-dapp": { "version": "file:packages/beacon-dapp", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.9", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.9", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.9", + "@airgap/beacon-core": "^0.0.1-beta.12", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.12", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.12", "qrcode-generator": "1.4.4" } }, @@ -15678,17 +15677,17 @@ "@airgap/beacon-transport-matrix": { "version": "file:packages/beacon-transport-matrix", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.9", - "@airgap/beacon-utils": "^0.0.1-beta.9", + "@airgap/beacon-core": "^0.0.1-beta.12", + "@airgap/beacon-utils": "^0.0.1-beta.12", "axios": "0.21.1" } }, "@airgap/beacon-transport-postmessage": { "version": "file:packages/beacon-transport-postmessage", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.9", - "@airgap/beacon-types": "^0.0.1-beta.9", - "@airgap/beacon-utils": "^0.0.1-beta.9", + "@airgap/beacon-core": "^0.0.1-beta.12", + "@airgap/beacon-types": "^0.0.1-beta.12", + "@airgap/beacon-utils": "^0.0.1-beta.12", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } @@ -15713,9 +15712,9 @@ "@airgap/beacon-wallet": { "version": "file:packages/beacon-wallet", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.9", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.9", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.9" + "@airgap/beacon-core": "^0.0.1-beta.12", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.12", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.12" } }, "@babel/code-frame": { diff --git a/package.json b/package.json index eac729e38..1af95d043 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,8 @@ { "name": "@airgap/beacon-sdk", - "version": "2.3.6", "description": "The beacon-sdk allows you to easily connect DApps with Wallets through P2P communication or a chrome extension.", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "es2015": "dist/esm/index.js", - "esm2015": "dist/esm/index.js", - "fesm2015": "dist/esm/index.js", "unpkg": "dist/walletbeacon.min.js", "types": "dist/esm/index.d.ts", "keywords": [ @@ -26,8 +22,11 @@ }, "scripts": { "prebuild": "ts-node --project tsconfig-cjs.json scripts/generate-wallet-list.ts", - "build": "lerna run tsc", - "browserify": "browserify ./packages/beacon-dapp/dist/cjs/index.js -s beacon | uglifyjs > ./walletbeacon.min.js && cp ./walletbeacon.min.js ./examples/walletbeacon.min.js", + "build": "npm run check-version && lerna run tsc", + "browserify:all": "npm run browserify:sdk && npm run browserify:dapp && npm run browserify:wallet", + "browserify:sdk": "browserify ./packages/beacon-dapp/dist/cjs/index.js -s beacon | uglifyjs > ./walletbeacon.min.js && cp ./walletbeacon.min.js ./examples/walletbeacon.min.js", + "browserify:dapp": "browserify ./packages/beacon-dapp/dist/cjs/index.js -s beacon | uglifyjs > ./packages/beacon-wallet/dist/walletbeacon.dapp.min.js", + "browserify:wallet": "browserify ./packages/beacon-wallet/dist/cjs/index.js -s beacon | uglifyjs > ./packages/beacon-wallet/dist/walletbeacon.wallet.min.js", "prettier": "prettier --write 'src/**/*' '**/src/**/*' 'docs/**/*.md' 'example-dapp.html' 'example-wallet.html'", "lint": "eslint 'src/**/*.ts'", "lint:fix": "eslint 'src/**/*.ts' --fix", diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index c289915e2..34e6ae839 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -7,9 +7,6 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "es2015": "dist/esm/index.js", - "esm2015": "dist/esm/index.js", - "fesm2015": "dist/esm/index.js", "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", diff --git a/packages/beacon-core/src/constants.ts b/packages/beacon-core/src/constants.ts index 3a6544da2..976431839 100644 --- a/packages/beacon-core/src/constants.ts +++ b/packages/beacon-core/src/constants.ts @@ -1,2 +1,2 @@ -export const SDK_VERSION: string = '2.3.6' +export const SDK_VERSION: string = '0.0.1-beta.12' export const BEACON_VERSION: string = '2' diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 7479fecdc..9a97135ac 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -7,9 +7,7 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "es2015": "dist/esm/index.js", - "esm2015": "dist/esm/index.js", - "fesm2015": "dist/esm/index.js", + "unpkg": "dist/walletbeacon.dapp.min.js", "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-protocol-kusama/package.json index b30a9693e..2cf2ac8bb 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -7,9 +7,6 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "es2015": "dist/esm/index.js", - "esm2015": "dist/esm/index.js", - "fesm2015": "dist/esm/index.js", "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index aafb90ec1..fa2d4dd09 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -7,9 +7,6 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "es2015": "dist/esm/index.js", - "esm2015": "dist/esm/index.js", - "fesm2015": "dist/esm/index.js", "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index dd9dd5507..86008c66a 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -7,9 +7,6 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "es2015": "dist/esm/index.js", - "esm2015": "dist/esm/index.js", - "fesm2015": "dist/esm/index.js", "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 7749444f0..369cb53b2 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -7,9 +7,6 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "es2015": "dist/esm/index.js", - "esm2015": "dist/esm/index.js", - "fesm2015": "dist/esm/index.js", "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index e6d3be8c1..083e7223f 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -7,9 +7,6 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "es2015": "dist/esm/index.js", - "esm2015": "dist/esm/index.js", - "fesm2015": "dist/esm/index.js", "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index b5d636707..ee4a6a3d8 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -7,9 +7,6 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "es2015": "dist/esm/index.js", - "esm2015": "dist/esm/index.js", - "fesm2015": "dist/esm/index.js", "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index f1c3ebcbf..7790a1ef8 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -7,9 +7,6 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "es2015": "dist/esm/index.js", - "esm2015": "dist/esm/index.js", - "fesm2015": "dist/esm/index.js", "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index e91812240..980e2151a 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -7,9 +7,7 @@ "license": "ISC", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "es2015": "dist/esm/index.js", - "esm2015": "dist/esm/index.js", - "fesm2015": "dist/esm/index.js", + "unpkg": "dist/walletbeacon.wallet.min.js", "types": "dist/esm/index.d.ts", "exports": { "require": "./dist/cjs/index.js", diff --git a/scripts/check-sdk-version.ts b/scripts/check-sdk-version.ts index f831c75ce..ddb3dd08b 100644 --- a/scripts/check-sdk-version.ts +++ b/scripts/check-sdk-version.ts @@ -1,20 +1,12 @@ import { readFileSync } from 'fs' import { SDK_VERSION } from '../packages/beacon-core/src/constants' -const packageJson = './package.json' -const packageLockJson = './package-lock.json' +const lernaJson = './lerna.json' -const packageJsonContent = JSON.parse(readFileSync(packageJson, 'utf-8')) -const packageLockJsonContent = JSON.parse(readFileSync(packageLockJson, 'utf-8')) +const lernaJsonContent = JSON.parse(readFileSync(lernaJson, 'utf-8')) -if (packageJsonContent.version !== packageLockJsonContent.version) { +if (lernaJsonContent.version !== SDK_VERSION) { throw new Error( - `Package (${packageJsonContent.version}) and Package Lock (${packageLockJsonContent.version}) version mismatch!` - ) -} - -if (packageJsonContent.version !== SDK_VERSION) { - throw new Error( - `Package version (${packageJsonContent.version}) does not match SDK Version (${SDK_VERSION})` + `Version in lerna.json (${lernaJsonContent.version}) does not match SDK Version (${SDK_VERSION})` ) } From b20f29ac0f88e0611a42fe6454296aab44a6f9ae Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Thu, 11 Nov 2021 15:33:45 +0100 Subject: [PATCH 064/130] feat(test): move tests to correct packages --- .../__tests__/_helpers/_setup.spec.ts | 248 ++++++++++++++++++ .../__tests__}/get-account-identifier.spec.ts | 4 +- .../managers/AccountManager.spec.ts | 4 +- .../managers/AppMetadataManager.spec.ts | 4 +- .../__tests__}/managers/PeerManager.spec.ts | 5 +- .../managers/PermissionManager.spec.ts | 4 +- .../beacon-core/__tests__}/migrate.spec.ts | 9 +- .../beacon-core/__tests__}/serializer.spec.ts | 4 +- .../storages/chrome-storage.spec.ts | 4 +- .../__tests__}/storages/get-storage.spec.ts | 11 +- .../__tests__}/storages/local-storage.spec.ts | 8 +- .../src/clients/beacon-client/BeaconClient.ts | 3 +- .../beacon-core/src/clients/client/Client.ts | 3 +- packages/beacon-core/src/index.ts | 3 +- .../transports/clients/MessageBasedClient.ts | 7 +- .../__tests__/_helpers/_setup.spec.ts | 248 ++++++++++++++++++ .../__tests__}/dapp-client.spec.ts | 46 ++-- .../__tests__}/p2p-transport.spec.ts | 64 ++--- .../__tests__}/post-message-transport.spec.ts | 23 +- .../beacon-dapp/src/dapp-client/DAppClient.ts | 5 +- packages/beacon-dapp/src/ui/alert/Alert.ts | 3 +- .../beacon-dapp/src/ui/alert/PairingAlert.ts | 3 +- packages/beacon-dapp/src/ui/toast/Toast.ts | 2 +- .../__tests__}/matrix-client.spec.ts | 15 +- .../__tests__}/p2p-client.spec.ts | 11 +- .../P2PCommunicationClient.ts | 3 +- .../__tests__/beacon-utils.spec.ts | 106 +++++++- .../__tests__}/exposed-promise.spec.ts | 4 +- packages/beacon-utils/src/index.ts | 1 + .../src/utils/generate-uuid.ts | 0 .../__tests__/_helpers/_setup.spec.ts | 248 ++++++++++++++++++ .../__tests__}/wallet-client.spec.ts | 36 +-- test/_helpers/_setup.spec.ts | 2 +- test/clients/p2p-client.spec.ts | 129 --------- test/test-utils/FileStorage.ts | 3 +- test/test-utils/MockLocalStorage.ts | 6 +- test/test-utils/MockTransport.ts | 2 +- test/utils/crypto.spec.ts | 105 -------- 38 files changed, 994 insertions(+), 392 deletions(-) create mode 100644 packages/beacon-core/__tests__/_helpers/_setup.spec.ts rename {test/utils => packages/beacon-core/__tests__}/get-account-identifier.spec.ts (96%) rename {test => packages/beacon-core/__tests__}/managers/AccountManager.spec.ts (98%) rename {test => packages/beacon-core/__tests__}/managers/AppMetadataManager.spec.ts (97%) rename {test => packages/beacon-core/__tests__}/managers/PeerManager.spec.ts (96%) rename {test => packages/beacon-core/__tests__}/managers/PermissionManager.spec.ts (97%) rename {test/migrate => packages/beacon-core/__tests__}/migrate.spec.ts (89%) rename {test/serializer => packages/beacon-core/__tests__}/serializer.spec.ts (95%) rename {test => packages/beacon-core/__tests__}/storages/chrome-storage.spec.ts (97%) rename {test => packages/beacon-core/__tests__}/storages/get-storage.spec.ts (77%) rename {test => packages/beacon-core/__tests__}/storages/local-storage.spec.ts (95%) create mode 100644 packages/beacon-dapp/__tests__/_helpers/_setup.spec.ts rename {test/clients => packages/beacon-dapp/__tests__}/dapp-client.spec.ts (97%) rename {test/transports => packages/beacon-dapp/__tests__}/p2p-transport.spec.ts (82%) rename {test/transports => packages/beacon-dapp/__tests__}/post-message-transport.spec.ts (93%) rename {test/matrix-client => packages/beacon-transport-matrix/__tests__}/matrix-client.spec.ts (96%) rename {test/transports => packages/beacon-transport-matrix/__tests__}/p2p-client.spec.ts (91%) rename {test/utils => packages/beacon-utils/__tests__}/exposed-promise.spec.ts (99%) rename packages/{beacon-core => beacon-utils}/src/utils/generate-uuid.ts (100%) create mode 100644 packages/beacon-wallet/__tests__/_helpers/_setup.spec.ts rename {test/clients => packages/beacon-wallet/__tests__}/wallet-client.spec.ts (97%) delete mode 100644 test/clients/p2p-client.spec.ts delete mode 100644 test/utils/crypto.spec.ts diff --git a/packages/beacon-core/__tests__/_helpers/_setup.spec.ts b/packages/beacon-core/__tests__/_helpers/_setup.spec.ts new file mode 100644 index 000000000..bf1cd2c04 --- /dev/null +++ b/packages/beacon-core/__tests__/_helpers/_setup.spec.ts @@ -0,0 +1,248 @@ +import { MockLocalStorage } from '../../../../test/test-utils/MockLocalStorage' +;(global as any).localStorage = new MockLocalStorage() + +import Axios from 'axios' +const MockAdapter = require('axios-mock-adapter') + +beforeEach(() => { + ;(global as any).localStorage.clear() +}) + +/** + * Create a JSDOM instance to support localStorage and other DOM methods + */ +const { JSDOM } = require('jsdom') +const dom = new JSDOM('', { + url: 'http://localhost/' +}) + +;(global as any).window = dom.window +;(global as any).document = dom.window.document + +// This sets the mock adapter on the default instance +const mock = new MockAdapter(Axios) + +const getVersionReply = () => { + return { + versions: ['r0.0.1', 'r0.1.0', 'r0.2.0', 'r0.3.0', 'r0.4.0', 'r0.5.0'], + unstable_features: { + 'm.lazy_load_members': true, + 'm.id_access_token': true, + 'm.require_identity_server': false, + 'm.separate_add_and_bind': true + } + } +} + +const getLogin = (hostname: string) => { + console.log('GET LOGIN') + return { + user_id: `@xxx:${hostname}`, + access_token: 'ACCESS_TOKEN', + home_server: hostname, + device_id: 'xxx' + } +} + +const getSync = () => { + return { + account_data: { + events: [ + { + type: 'm.push_rules', + content: { + global: { + underride: [ + { + conditions: [{ kind: 'event_match', key: 'type', pattern: 'm.call.invite' }], + actions: [ + 'notify', + { set_tweak: 'sound', value: 'ring' }, + { set_tweak: 'highlight', value: false } + ], + rule_id: '.m.rule.call', + default: true, + enabled: true + }, + { + conditions: [ + { kind: 'room_member_count', is: '2' }, + { kind: 'event_match', key: 'type', pattern: 'm.room.message' } + ], + actions: [ + 'notify', + { set_tweak: 'sound', value: 'default' }, + { set_tweak: 'highlight', value: false } + ], + rule_id: '.m.rule.room_one_to_one', + default: true, + enabled: true + }, + { + conditions: [ + { kind: 'room_member_count', is: '2' }, + { kind: 'event_match', key: 'type', pattern: 'm.room.encrypted' } + ], + actions: [ + 'notify', + { set_tweak: 'sound', value: 'default' }, + { set_tweak: 'highlight', value: false } + ], + rule_id: '.m.rule.encrypted_room_one_to_one', + default: true, + enabled: true + }, + { + conditions: [{ kind: 'event_match', key: 'type', pattern: 'm.room.message' }], + actions: ['notify', { set_tweak: 'highlight', value: false }], + rule_id: '.m.rule.message', + default: true, + enabled: true + }, + { + conditions: [{ kind: 'event_match', key: 'type', pattern: 'm.room.encrypted' }], + actions: ['notify', { set_tweak: 'highlight', value: false }], + rule_id: '.m.rule.encrypted', + default: true, + enabled: true + } + ], + sender: [], + room: [], + content: [ + { + actions: [ + 'notify', + { set_tweak: 'sound', value: 'default' }, + { set_tweak: 'highlight' } + ], + pattern: '632392b258880b3a108035a4c847127544112102c5a0ffb07d459788f6f4be0e', + rule_id: '.m.rule.contains_user_name', + default: true, + enabled: true + } + ], + override: [ + { + conditions: [], + actions: ['dont_notify'], + rule_id: '.m.rule.master', + default: true, + enabled: false + }, + { + conditions: [ + { kind: 'event_match', key: 'content.msgtype', pattern: 'm.notice' } + ], + actions: ['dont_notify'], + rule_id: '.m.rule.suppress_notices', + default: true, + enabled: true + }, + { + conditions: [ + { kind: 'event_match', key: 'type', pattern: 'm.room.member' }, + { kind: 'event_match', key: 'content.membership', pattern: 'invite' }, + { + kind: 'event_match', + key: 'state_key', + pattern: + '@632392b258880b3a108035a4c847127544112102c5a0ffb07d459788f6f4be0e:beacon-node-0.papers.tech:8448' + } + ], + actions: [ + 'notify', + { set_tweak: 'sound', value: 'default' }, + { set_tweak: 'highlight', value: false } + ], + rule_id: '.m.rule.invite_for_me', + default: true, + enabled: true + }, + { + conditions: [{ kind: 'event_match', key: 'type', pattern: 'm.room.member' }], + actions: ['dont_notify'], + rule_id: '.m.rule.member_event', + default: true, + enabled: true + }, + { + conditions: [{ kind: 'contains_display_name' }], + actions: [ + 'notify', + { set_tweak: 'sound', value: 'default' }, + { set_tweak: 'highlight' } + ], + rule_id: '.m.rule.contains_display_name', + default: true, + enabled: true + }, + { + conditions: [ + { kind: 'event_match', key: 'content.body', pattern: '@room' }, + { kind: 'sender_notification_permission', key: 'room' } + ], + actions: ['notify', { set_tweak: 'highlight', value: true }], + rule_id: '.m.rule.roomnotif', + default: true, + enabled: true + }, + { + conditions: [ + { kind: 'event_match', key: 'type', pattern: 'm.room.tombstone' }, + { kind: 'event_match', key: 'state_key', pattern: '' } + ], + actions: ['notify', { set_tweak: 'highlight', value: true }], + rule_id: '.m.rule.tombstone', + default: true, + enabled: true + }, + { + conditions: [{ kind: 'event_match', key: 'type', pattern: 'm.reaction' }], + actions: ['dont_notify'], + rule_id: '.m.rule.reaction', + default: true, + enabled: true + } + ] + }, + device: {} + } + } + ] + }, + to_device: { events: [] }, + device_lists: { changed: [], left: [] }, + presence: { events: [] }, + rooms: { join: {}, invite: {}, leave: {} }, + groups: { join: {}, invite: {}, leave: {} }, + device_one_time_keys_count: {}, + next_batch: 's949223_5360456_0_1_1_1_1_68957_1' + } +} + +mock + .onGet('https://beacon-node-1.sky.papers.tech/_matrix/client/versions') + .reply(200, getVersionReply()) + .onGet('https://beacon-node-2.sky.papers.tech/_matrix/client/versions') + .reply(200, getVersionReply()) + .onGet('https://beacon-node-0.papers.tech:8448/_matrix/client/versions') + .reply(200, getVersionReply()) + .onPost('https://beacon-node-1.sky.papers.tech/_matrix/client/r0/login') + .reply(200, getLogin('beacon-node-1.sky.papers.tech')) + .onPost('https://beacon-node-2.sky.papers.tech/_matrix/client/r0/login') + .reply(200, getLogin('beacon-node-2.sky.papers.tech')) + .onPost('https://beacon-node-0.papers.tech:8448/_matrix/client/r0/login') + .reply(200, getLogin('beacon-node-0.papers.tech:8448')) + .onGet('https://beacon-node-1.sky.papers.tech/_matrix/client/r0/sync') + .reply(200, getSync()) + .onGet('https://beacon-node-2.sky.papers.tech/_matrix/client/r0/sync') + .reply(200, getSync()) + .onGet('https://beacon-node-0.papers.tech:8448/_matrix/client/r0/sync') + .reply(200, getSync()) + .onAny() + .reply((config: any) => { + console.log('UNMOCKED URL, RETURNING ERROR 500', `${config.baseURL}${config.url}`) + + return [500, {}] + }) diff --git a/test/utils/get-account-identifier.spec.ts b/packages/beacon-core/__tests__/get-account-identifier.spec.ts similarity index 96% rename from test/utils/get-account-identifier.spec.ts rename to packages/beacon-core/__tests__/get-account-identifier.spec.ts index 3a8e59c48..abb318aaf 100644 --- a/test/utils/get-account-identifier.spec.ts +++ b/packages/beacon-core/__tests__/get-account-identifier.spec.ts @@ -1,8 +1,8 @@ import * as chai from 'chai' import * as chaiAsPromised from 'chai-as-promised' import 'mocha' -import { getAccountIdentifier } from '../../src/utils/get-account-identifier' -import { Network, NetworkType } from '../../src' +import { getAccountIdentifier } from '../src/utils/get-account-identifier' +import { Network, NetworkType } from '@airgap/beacon-types' // use chai-as-promised plugin chai.use(chaiAsPromised) diff --git a/test/managers/AccountManager.spec.ts b/packages/beacon-core/__tests__/managers/AccountManager.spec.ts similarity index 98% rename from test/managers/AccountManager.spec.ts rename to packages/beacon-core/__tests__/managers/AccountManager.spec.ts index 8b0df19ed..3ff1bf810 100644 --- a/test/managers/AccountManager.spec.ts +++ b/packages/beacon-core/__tests__/managers/AccountManager.spec.ts @@ -3,8 +3,8 @@ import * as chaiAsPromised from 'chai-as-promised' import 'mocha' import { AccountManager } from '../../src/managers/AccountManager' -import { AccountInfo, Origin, NetworkType, PermissionScope } from '../../src' -import { FileStorage, writeLocalFile } from '../test-utils/FileStorage' +import { AccountInfo, Origin, NetworkType, PermissionScope } from '@airgap/beacon-types' +import { FileStorage, writeLocalFile } from '../../../../test/test-utils/FileStorage' // use chai-as-promised plugin chai.use(chaiAsPromised) diff --git a/test/managers/AppMetadataManager.spec.ts b/packages/beacon-core/__tests__/managers/AppMetadataManager.spec.ts similarity index 97% rename from test/managers/AppMetadataManager.spec.ts rename to packages/beacon-core/__tests__/managers/AppMetadataManager.spec.ts index be8227d21..3a2118e18 100644 --- a/test/managers/AppMetadataManager.spec.ts +++ b/packages/beacon-core/__tests__/managers/AppMetadataManager.spec.ts @@ -3,8 +3,8 @@ import * as chaiAsPromised from 'chai-as-promised' import 'mocha' import { AppMetadataManager } from '../../src/managers/AppMetadataManager' -import { AppMetadata } from '../../src' -import { FileStorage, writeLocalFile } from '../test-utils/FileStorage' +import { AppMetadata } from '@airgap/beacon-types' +import { FileStorage, writeLocalFile } from '../../../../test/test-utils/FileStorage' // use chai-as-promised plugin chai.use(chaiAsPromised) diff --git a/test/managers/PeerManager.spec.ts b/packages/beacon-core/__tests__/managers/PeerManager.spec.ts similarity index 96% rename from test/managers/PeerManager.spec.ts rename to packages/beacon-core/__tests__/managers/PeerManager.spec.ts index c6ead8906..2a6e19456 100644 --- a/test/managers/PeerManager.spec.ts +++ b/packages/beacon-core/__tests__/managers/PeerManager.spec.ts @@ -3,8 +3,9 @@ import * as chaiAsPromised from 'chai-as-promised' import 'mocha' import { PeerManager } from '../../src/managers/PeerManager' -import { BEACON_VERSION, P2PPairingRequest, StorageKey } from '../../src' -import { FileStorage, writeLocalFile } from '../test-utils/FileStorage' +import { StorageKey, P2PPairingRequest } from '@airgap/beacon-types' +import { FileStorage, writeLocalFile } from '../../../../test/test-utils/FileStorage' +import { BEACON_VERSION } from '../../src/' // use chai-as-promised plugin chai.use(chaiAsPromised) diff --git a/test/managers/PermissionManager.spec.ts b/packages/beacon-core/__tests__/managers/PermissionManager.spec.ts similarity index 97% rename from test/managers/PermissionManager.spec.ts rename to packages/beacon-core/__tests__/managers/PermissionManager.spec.ts index f52d9a744..a55546c43 100644 --- a/test/managers/PermissionManager.spec.ts +++ b/packages/beacon-core/__tests__/managers/PermissionManager.spec.ts @@ -3,8 +3,8 @@ import * as chaiAsPromised from 'chai-as-promised' import 'mocha' import { PermissionManager } from '../../src/managers/PermissionManager' -import { NetworkType, PermissionInfo, PermissionScope } from '../../src' -import { FileStorage, writeLocalFile } from '../test-utils/FileStorage' +import { PermissionInfo, NetworkType, PermissionScope } from '@airgap/beacon-types' +import { FileStorage, writeLocalFile } from '../../../../test/test-utils/FileStorage' // use chai-as-promised plugin chai.use(chaiAsPromised) diff --git a/test/migrate/migrate.spec.ts b/packages/beacon-core/__tests__/migrate.spec.ts similarity index 89% rename from test/migrate/migrate.spec.ts rename to packages/beacon-core/__tests__/migrate.spec.ts index 24e7c13d7..932e79eb1 100644 --- a/test/migrate/migrate.spec.ts +++ b/packages/beacon-core/__tests__/migrate.spec.ts @@ -2,10 +2,11 @@ import * as chai from 'chai' import * as chaiAsPromised from 'chai-as-promised' import 'mocha' -import { FileStorage, writeLocalFile } from '../test-utils/FileStorage' -import { NetworkType, Origin, Storage, StorageKey, SDK_VERSION } from '../../src' -import { migrate } from '../../src/migrations/migrations' -import { AccountInfoOld, P2PPairingRequestOld } from '../../src/migrations/migrate-0.7.0' +import { FileStorage, writeLocalFile } from '../../../test/test-utils/FileStorage' +import { NetworkType, Origin, Storage, StorageKey } from '@airgap/beacon-types' +import { migrate } from '../src/migrations/migrations' +import { AccountInfoOld, P2PPairingRequestOld } from '../src/migrations/migrate-0.7.0' +import { SDK_VERSION } from '../src' // use chai-as-promised plugin chai.use(chaiAsPromised) diff --git a/test/serializer/serializer.spec.ts b/packages/beacon-core/__tests__/serializer.spec.ts similarity index 95% rename from test/serializer/serializer.spec.ts rename to packages/beacon-core/__tests__/serializer.spec.ts index 3f6d9ba82..e1b30b226 100644 --- a/test/serializer/serializer.spec.ts +++ b/packages/beacon-core/__tests__/serializer.spec.ts @@ -2,7 +2,7 @@ import * as chai from 'chai' import * as chaiAsPromised from 'chai-as-promised' import 'mocha' -import { Serializer } from '../../src/Serializer' +import { Serializer } from '../src/Serializer' // use chai-as-promised plugin chai.use(chaiAsPromised) @@ -98,7 +98,7 @@ describe(`serializer - Custom Tests`, () => { const deserialized = await serializer.deserialize({} as any) expect(deserialized).to.be.undefined } catch (e) { - expect(e.message).to.equal(`Encoded payload needs to be a string`) + expect((e as any).message).to.equal(`Encoded payload needs to be a string`) } }) }) diff --git a/test/storages/chrome-storage.spec.ts b/packages/beacon-core/__tests__/storages/chrome-storage.spec.ts similarity index 97% rename from test/storages/chrome-storage.spec.ts rename to packages/beacon-core/__tests__/storages/chrome-storage.spec.ts index fd6ed2599..9ca479c8c 100644 --- a/test/storages/chrome-storage.spec.ts +++ b/packages/beacon-core/__tests__/storages/chrome-storage.spec.ts @@ -3,7 +3,9 @@ import * as chaiAsPromised from 'chai-as-promised' import 'mocha' import * as sinon from 'sinon' -import { ChromeStorage, StorageKey } from '../../src' +import { StorageKey } from '@airgap/beacon-types' + +import { ChromeStorage } from '../../src' // use chai-as-promised plugin chai.use(chaiAsPromised) diff --git a/test/storages/get-storage.spec.ts b/packages/beacon-core/__tests__/storages/get-storage.spec.ts similarity index 77% rename from test/storages/get-storage.spec.ts rename to packages/beacon-core/__tests__/storages/get-storage.spec.ts index b811c317b..36c564494 100644 --- a/test/storages/get-storage.spec.ts +++ b/packages/beacon-core/__tests__/storages/get-storage.spec.ts @@ -10,13 +10,10 @@ chai.use(chaiAsPromised) const expect = chai.expect describe(`Storage`, () => { - it(`should not get a storage by default`, async () => { - try { - const storage = await getStorage() - expect(storage).to.be.undefined - } catch (e) { - expect(e.message).to.equal('no storage type supported') - } + it(`should get a storage by default`, async () => { + const storage = await getStorage() + console.log('STORAGE', storage) + expect(storage).to.not.be.undefined }) it(`should get the ChromeStorage`, async () => { diff --git a/test/storages/local-storage.spec.ts b/packages/beacon-core/__tests__/storages/local-storage.spec.ts similarity index 95% rename from test/storages/local-storage.spec.ts rename to packages/beacon-core/__tests__/storages/local-storage.spec.ts index 0ed104ced..83975a07d 100644 --- a/test/storages/local-storage.spec.ts +++ b/packages/beacon-core/__tests__/storages/local-storage.spec.ts @@ -3,7 +3,9 @@ import * as chaiAsPromised from 'chai-as-promised' import 'mocha' import * as sinon from 'sinon' -import { LocalStorage, StorageKey } from '../../src' +import { StorageKey } from '@airgap/beacon-types' + +import { LocalStorage } from '../../src' // use chai-as-promised plugin chai.use(chaiAsPromised) @@ -21,9 +23,9 @@ describe(`LocalStorage`, () => { deleteSpy = sinon.spy(localStorage, 'removeItem') }) - it(`should not be supported`, async () => { + it(`should be supported`, async () => { const isSupported = await LocalStorage.isSupported() - expect(isSupported).to.be.false + expect(isSupported).to.be.true }) it(`should be supported`, async () => { diff --git a/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts b/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts index 4d268e83b..1ed1af751 100644 --- a/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts +++ b/packages/beacon-core/src/clients/beacon-client/BeaconClient.ts @@ -1,7 +1,6 @@ import { KeyPair } from 'libsodium-wrappers' import { ExposedPromise } from '@airgap/beacon-utils' -import { generateGUID } from '../../utils/generate-uuid' -import { getKeypairFromSeed, toHex } from '@airgap/beacon-utils' +import { getKeypairFromSeed, toHex, generateGUID } from '@airgap/beacon-utils' import { Storage, StorageKey } from '@airgap/beacon-types' import { SDK_VERSION } from '../../constants' import { windowRef } from '../../MockWindow' diff --git a/packages/beacon-core/src/clients/client/Client.ts b/packages/beacon-core/src/clients/client/Client.ts index 5e8435944..415b0a1d2 100644 --- a/packages/beacon-core/src/clients/client/Client.ts +++ b/packages/beacon-core/src/clients/client/Client.ts @@ -1,4 +1,4 @@ -import { ExposedPromise, ExposedPromiseStatus } from '@airgap/beacon-utils' +import { ExposedPromise, ExposedPromiseStatus, generateGUID } from '@airgap/beacon-utils' import { ConnectionContext, TransportType, @@ -14,7 +14,6 @@ import { import { Serializer, Transport } from '../..' import { BeaconClient } from '../beacon-client/BeaconClient' import { AccountManager } from '../../managers/AccountManager' -import { generateGUID } from '../../utils/generate-uuid' import { BEACON_VERSION } from '../../constants' import { getSenderId } from '../../utils/get-sender-id' import { Logger } from '../../utils/Logger' diff --git a/packages/beacon-core/src/index.ts b/packages/beacon-core/src/index.ts index 284b71690..5d8fe8944 100644 --- a/packages/beacon-core/src/index.ts +++ b/packages/beacon-core/src/index.ts @@ -39,7 +39,6 @@ import { SignatureTypeNotSupportedBeaconError } from './errors/SignatureTypeNotS import { Logger } from './utils/Logger' import { IncomingRequestInterceptor } from './interceptors/IncomingRequestInterceptor' import { OutgoingResponseInterceptor } from './interceptors/OutgoingResponseInterceptor' -import { generateGUID } from './utils/generate-uuid' import { windowRef } from './MockWindow' import { CommunicationClient } from './transports/clients/CommunicationClient' // import { EncryptionType } from './types/EncryptionType' @@ -78,7 +77,7 @@ export { PeerManager, AccountManager, AppMetadataManager, PermissionManager } export { SDK_VERSION, BEACON_VERSION } // Utils -export { getSenderId, getAccountIdentifier, generateGUID, windowRef } +export { getSenderId, getAccountIdentifier, windowRef } // Others export { Serializer, IncomingRequestInterceptor, OutgoingResponseInterceptor, Logger } diff --git a/packages/beacon-core/src/transports/clients/MessageBasedClient.ts b/packages/beacon-core/src/transports/clients/MessageBasedClient.ts index ea5b967e7..9c8e147fa 100644 --- a/packages/beacon-core/src/transports/clients/MessageBasedClient.ts +++ b/packages/beacon-core/src/transports/clients/MessageBasedClient.ts @@ -5,8 +5,11 @@ import { crypto_secretbox_MACBYTES } from 'libsodium-wrappers' import { BEACON_VERSION } from '../../constants' -import { decryptCryptoboxPayload, encryptCryptoboxPayload } from '@airgap/beacon-utils' -import { generateGUID } from '../../utils/generate-uuid' +import { + decryptCryptoboxPayload, + encryptCryptoboxPayload, + generateGUID +} from '@airgap/beacon-utils' import { CommunicationClient } from './CommunicationClient' import { PostMessagePairingRequest, PostMessagePairingResponse } from '@airgap/beacon-types' diff --git a/packages/beacon-dapp/__tests__/_helpers/_setup.spec.ts b/packages/beacon-dapp/__tests__/_helpers/_setup.spec.ts new file mode 100644 index 000000000..bf1cd2c04 --- /dev/null +++ b/packages/beacon-dapp/__tests__/_helpers/_setup.spec.ts @@ -0,0 +1,248 @@ +import { MockLocalStorage } from '../../../../test/test-utils/MockLocalStorage' +;(global as any).localStorage = new MockLocalStorage() + +import Axios from 'axios' +const MockAdapter = require('axios-mock-adapter') + +beforeEach(() => { + ;(global as any).localStorage.clear() +}) + +/** + * Create a JSDOM instance to support localStorage and other DOM methods + */ +const { JSDOM } = require('jsdom') +const dom = new JSDOM('', { + url: 'http://localhost/' +}) + +;(global as any).window = dom.window +;(global as any).document = dom.window.document + +// This sets the mock adapter on the default instance +const mock = new MockAdapter(Axios) + +const getVersionReply = () => { + return { + versions: ['r0.0.1', 'r0.1.0', 'r0.2.0', 'r0.3.0', 'r0.4.0', 'r0.5.0'], + unstable_features: { + 'm.lazy_load_members': true, + 'm.id_access_token': true, + 'm.require_identity_server': false, + 'm.separate_add_and_bind': true + } + } +} + +const getLogin = (hostname: string) => { + console.log('GET LOGIN') + return { + user_id: `@xxx:${hostname}`, + access_token: 'ACCESS_TOKEN', + home_server: hostname, + device_id: 'xxx' + } +} + +const getSync = () => { + return { + account_data: { + events: [ + { + type: 'm.push_rules', + content: { + global: { + underride: [ + { + conditions: [{ kind: 'event_match', key: 'type', pattern: 'm.call.invite' }], + actions: [ + 'notify', + { set_tweak: 'sound', value: 'ring' }, + { set_tweak: 'highlight', value: false } + ], + rule_id: '.m.rule.call', + default: true, + enabled: true + }, + { + conditions: [ + { kind: 'room_member_count', is: '2' }, + { kind: 'event_match', key: 'type', pattern: 'm.room.message' } + ], + actions: [ + 'notify', + { set_tweak: 'sound', value: 'default' }, + { set_tweak: 'highlight', value: false } + ], + rule_id: '.m.rule.room_one_to_one', + default: true, + enabled: true + }, + { + conditions: [ + { kind: 'room_member_count', is: '2' }, + { kind: 'event_match', key: 'type', pattern: 'm.room.encrypted' } + ], + actions: [ + 'notify', + { set_tweak: 'sound', value: 'default' }, + { set_tweak: 'highlight', value: false } + ], + rule_id: '.m.rule.encrypted_room_one_to_one', + default: true, + enabled: true + }, + { + conditions: [{ kind: 'event_match', key: 'type', pattern: 'm.room.message' }], + actions: ['notify', { set_tweak: 'highlight', value: false }], + rule_id: '.m.rule.message', + default: true, + enabled: true + }, + { + conditions: [{ kind: 'event_match', key: 'type', pattern: 'm.room.encrypted' }], + actions: ['notify', { set_tweak: 'highlight', value: false }], + rule_id: '.m.rule.encrypted', + default: true, + enabled: true + } + ], + sender: [], + room: [], + content: [ + { + actions: [ + 'notify', + { set_tweak: 'sound', value: 'default' }, + { set_tweak: 'highlight' } + ], + pattern: '632392b258880b3a108035a4c847127544112102c5a0ffb07d459788f6f4be0e', + rule_id: '.m.rule.contains_user_name', + default: true, + enabled: true + } + ], + override: [ + { + conditions: [], + actions: ['dont_notify'], + rule_id: '.m.rule.master', + default: true, + enabled: false + }, + { + conditions: [ + { kind: 'event_match', key: 'content.msgtype', pattern: 'm.notice' } + ], + actions: ['dont_notify'], + rule_id: '.m.rule.suppress_notices', + default: true, + enabled: true + }, + { + conditions: [ + { kind: 'event_match', key: 'type', pattern: 'm.room.member' }, + { kind: 'event_match', key: 'content.membership', pattern: 'invite' }, + { + kind: 'event_match', + key: 'state_key', + pattern: + '@632392b258880b3a108035a4c847127544112102c5a0ffb07d459788f6f4be0e:beacon-node-0.papers.tech:8448' + } + ], + actions: [ + 'notify', + { set_tweak: 'sound', value: 'default' }, + { set_tweak: 'highlight', value: false } + ], + rule_id: '.m.rule.invite_for_me', + default: true, + enabled: true + }, + { + conditions: [{ kind: 'event_match', key: 'type', pattern: 'm.room.member' }], + actions: ['dont_notify'], + rule_id: '.m.rule.member_event', + default: true, + enabled: true + }, + { + conditions: [{ kind: 'contains_display_name' }], + actions: [ + 'notify', + { set_tweak: 'sound', value: 'default' }, + { set_tweak: 'highlight' } + ], + rule_id: '.m.rule.contains_display_name', + default: true, + enabled: true + }, + { + conditions: [ + { kind: 'event_match', key: 'content.body', pattern: '@room' }, + { kind: 'sender_notification_permission', key: 'room' } + ], + actions: ['notify', { set_tweak: 'highlight', value: true }], + rule_id: '.m.rule.roomnotif', + default: true, + enabled: true + }, + { + conditions: [ + { kind: 'event_match', key: 'type', pattern: 'm.room.tombstone' }, + { kind: 'event_match', key: 'state_key', pattern: '' } + ], + actions: ['notify', { set_tweak: 'highlight', value: true }], + rule_id: '.m.rule.tombstone', + default: true, + enabled: true + }, + { + conditions: [{ kind: 'event_match', key: 'type', pattern: 'm.reaction' }], + actions: ['dont_notify'], + rule_id: '.m.rule.reaction', + default: true, + enabled: true + } + ] + }, + device: {} + } + } + ] + }, + to_device: { events: [] }, + device_lists: { changed: [], left: [] }, + presence: { events: [] }, + rooms: { join: {}, invite: {}, leave: {} }, + groups: { join: {}, invite: {}, leave: {} }, + device_one_time_keys_count: {}, + next_batch: 's949223_5360456_0_1_1_1_1_68957_1' + } +} + +mock + .onGet('https://beacon-node-1.sky.papers.tech/_matrix/client/versions') + .reply(200, getVersionReply()) + .onGet('https://beacon-node-2.sky.papers.tech/_matrix/client/versions') + .reply(200, getVersionReply()) + .onGet('https://beacon-node-0.papers.tech:8448/_matrix/client/versions') + .reply(200, getVersionReply()) + .onPost('https://beacon-node-1.sky.papers.tech/_matrix/client/r0/login') + .reply(200, getLogin('beacon-node-1.sky.papers.tech')) + .onPost('https://beacon-node-2.sky.papers.tech/_matrix/client/r0/login') + .reply(200, getLogin('beacon-node-2.sky.papers.tech')) + .onPost('https://beacon-node-0.papers.tech:8448/_matrix/client/r0/login') + .reply(200, getLogin('beacon-node-0.papers.tech:8448')) + .onGet('https://beacon-node-1.sky.papers.tech/_matrix/client/r0/sync') + .reply(200, getSync()) + .onGet('https://beacon-node-2.sky.papers.tech/_matrix/client/r0/sync') + .reply(200, getSync()) + .onGet('https://beacon-node-0.papers.tech:8448/_matrix/client/r0/sync') + .reply(200, getSync()) + .onAny() + .reply((config: any) => { + console.log('UNMOCKED URL, RETURNING ERROR 500', `${config.baseURL}${config.url}`) + + return [500, {}] + }) diff --git a/test/clients/dapp-client.spec.ts b/packages/beacon-dapp/__tests__/dapp-client.spec.ts similarity index 97% rename from test/clients/dapp-client.spec.ts rename to packages/beacon-dapp/__tests__/dapp-client.spec.ts index df1c3305d..b38b3e153 100644 --- a/test/clients/dapp-client.spec.ts +++ b/packages/beacon-dapp/__tests__/dapp-client.spec.ts @@ -5,15 +5,10 @@ import * as sinon from 'sinon' import { AccountInfo, - AccountManager, BeaconErrorType, - BeaconEvent, BeaconMessageType, - BEACON_VERSION, BroadcastResponse, ConnectionContext, - DAppClient, - LocalStorage, NetworkType, OperationResponse, Origin, @@ -25,18 +20,25 @@ import { StorageKey, TezosOperationType, TransportStatus, - PostMessageTransport, - DappPostMessageTransport, - getSenderId, - Transport, ExtendedP2PPairingRequest -} from '../../src' +} from '@airgap/beacon-types' + +import { MockTransport } from '../../../test/test-utils/MockTransport' +import { availableTransports } from '../src/utils/available-transports' +import { ExposedPromise } from '@airgap/beacon-utils' +import { + windowRef, + Logger, + BEACON_VERSION, + LocalStorage, + getSenderId, + AccountManager, + Transport +} from '@airgap/beacon-core' -import { MockTransport } from '../test-utils/MockTransport' -import { availableTransports } from '../../src/utils/available-transports' -import { ExposedPromise } from '../../src/utils/exposed-promise' -import { Logger } from '../../src/utils/Logger' -import { windowRef } from '../../src/MockWindow' +import { DAppClient, BeaconEvent } from '../src' +import { PostMessageTransport } from '@airgap/beacon-transport-postmessage' +import { DappPostMessageTransport } from '../src/transports/DappPostMessageTransport' // use chai-as-promised plugin chai.use(chaiAsPromised) @@ -135,7 +137,7 @@ describe(`DAppClient`, () => { const dAppClient = new DAppClient({} as any) expect(dAppClient).to.be.undefined } catch (e) { - expect(e.message).to.equal('Name not set') + expect((e as any).message).to.equal('Name not set') } }) @@ -489,7 +491,7 @@ describe(`DAppClient`, () => { expect(eventsStub.thirdCall.args[0]).to.equal(BeaconEvent.ACTIVE_ACCOUNT_SET) // Called in the constructor expect(eventsStub.thirdCall.args[1]).to.equal(undefined) expect(eventsStub.callCount).to.equal(3) - expect(e.message).to.equal('No active account set!') + expect((e as any).message).to.equal('No active account set!') } }) @@ -603,7 +605,7 @@ describe(`DAppClient`, () => { network: { type: 'mainnet' }, scopes: ['operation_request', 'sign'] }) - delete response.accountInfo + delete (response as any).accountInfo expect(response).to.deep.equal({ appMetadata: { senderId: 'sender-id', @@ -698,7 +700,7 @@ describe(`DAppClient`, () => { }) throw new Error('should not get here' + responseFailure) } catch (e) { - expect(e.message).to.equal( + expect((e as any).message).to.equal( `When using signing type "OPERATION", the payload must start with prefix "03"` ) } @@ -716,7 +718,7 @@ describe(`DAppClient`, () => { }) throw new Error('should not get here' + responseFailure) } catch (e) { - expect(e.message).to.equal( + expect((e as any).message).to.equal( `When using signing type "MICHELINE", the payload must start with prefix "05"` ) } @@ -864,7 +866,7 @@ describe(`DAppClient`, () => { expect(eventsStub.firstCall.args[1]).to.deep.equal({ text: 'some-message' }) expect(eventsStub.secondCall.args[0]).to.equal(BeaconEvent.ACTIVE_TRANSPORT_SET) expect(eventsStub.secondCall.args[1]).to.equal(undefined) - expect(e.message).to.equal('some-message') + expect((e as any).message).to.equal('some-message') } }) @@ -941,7 +943,7 @@ describe(`DAppClient`, () => { expect(eventsStub.getCall(3).args[0]).to.equal(BeaconEvent.PERMISSION_REQUEST_ERROR) expect(eventsStub.getCall(3).args[1]).to.deep.eq({ errorResponse: error, walletInfo: {} }) expect(eventsStub.callCount).to.equal(4) - expect(e.description).to.equal( + expect((e as any).description).to.equal( 'You do not have the necessary permissions to perform this action. Please initiate another permission request and give the necessary permissions.' ) } diff --git a/test/transports/p2p-transport.spec.ts b/packages/beacon-dapp/__tests__/p2p-transport.spec.ts similarity index 82% rename from test/transports/p2p-transport.spec.ts rename to packages/beacon-dapp/__tests__/p2p-transport.spec.ts index 751106c62..fb4a0734f 100644 --- a/test/transports/p2p-transport.spec.ts +++ b/packages/beacon-dapp/__tests__/p2p-transport.spec.ts @@ -3,20 +3,12 @@ import * as chaiAsPromised from 'chai-as-promised' import 'mocha' import * as sinon from 'sinon' -import { - BEACON_VERSION, - DappP2PTransport, - LocalStorage, - Origin, - P2PCommunicationClient, - P2PTransport, - TransportStatus, - WalletP2PTransport -} from '../../src' -import { BeaconEventHandler } from '../../src/events' -import { PeerManager } from '../../src/managers/PeerManager' -import { ExtendedP2PPairingResponse } from '../../src/types/P2PPairingResponse' -import { getKeypairFromSeed } from '../../src/utils/crypto' +import { DappP2PTransport } from '../src/transports/DappP2PTransport' + +import { P2PCommunicationClient, P2PTransport } from '@airgap/beacon-transport-matrix' +import { ExtendedP2PPairingResponse, TransportStatus, Origin } from '@airgap/beacon-types' +import { getKeypairFromSeed } from '@airgap/beacon-utils' +import { BEACON_VERSION, PeerManager, LocalStorage } from '@airgap/beacon-core' // use chai-as-promised plugin chai.use(chaiAsPromised) @@ -40,8 +32,6 @@ describe(`P2PTransport`, () => { const keypair = await getKeypairFromSeed('test') const localStorage = new LocalStorage() - const eventHandler = new BeaconEventHandler() - sinon.stub(eventHandler, 'emit').resolves() transport = new DappP2PTransport('Test', keypair, localStorage, []) }) @@ -117,7 +107,7 @@ describe(`P2PTransport`, () => { }) it(`should get peers`, async () => { - const returnValue = [] + const returnValue: ExtendedP2PPairingResponse[] = [] const getPeersStub = sinon.stub(PeerManager.prototype, 'getPeers').resolves(returnValue) const result = await transport.getPeers() @@ -126,26 +116,26 @@ describe(`P2PTransport`, () => { expect(getPeersStub.callCount).to.equal(1) }) - it(`should add peer and start to listen`, async () => { - const keypair = await getKeypairFromSeed('test') - const localStorage = new LocalStorage() - transport = new WalletP2PTransport('Test', keypair, localStorage, []) as any - - const addPeerStub = sinon.stub(PeerManager.prototype, 'addPeer').resolves() - const listenStub = sinon.stub(transport, 'listen').resolves() - const sendResponseStub = sinon - .stub(P2PCommunicationClient.prototype, 'sendPairingResponse') - .resolves() - - await transport.addPeer(pairingResponse) - - expect(addPeerStub.callCount, 'addPeerStub').to.equal(1) - expect(addPeerStub.firstCall.args[0], 'addPeerStub').to.equal(pairingResponse) - expect(listenStub.callCount, 'listenStub').to.equal(1) - expect(listenStub.firstCall.args[0], 'listenStub').to.equal(pairingResponse.publicKey) - expect(sendResponseStub.callCount, 'sendResponseStub').to.equal(1) - expect(sendResponseStub.firstCall.args[0], 'sendResponseStub').to.deep.equal(pairingResponse) - }) + // it(`should add peer and start to listen`, async () => { + // const keypair = await getKeypairFromSeed('test') + // const localStorage = new LocalStorage() + // transport = new WalletP2PTransport('Test', keypair, localStorage, []) as any + + // const addPeerStub = sinon.stub(PeerManager.prototype, 'addPeer').resolves() + // const listenStub = sinon.stub(transport, 'listen').resolves() + // const sendResponseStub = sinon + // .stub(P2PCommunicationClient.prototype, 'sendPairingResponse') + // .resolves() + + // await transport.addPeer(pairingResponse) + + // expect(addPeerStub.callCount, 'addPeerStub').to.equal(1) + // expect(addPeerStub.firstCall.args[0], 'addPeerStub').to.equal(pairingResponse) + // expect(listenStub.callCount, 'listenStub').to.equal(1) + // expect(listenStub.firstCall.args[0], 'listenStub').to.equal(pairingResponse.publicKey) + // expect(sendResponseStub.callCount, 'sendResponseStub').to.equal(1) + // expect(sendResponseStub.firstCall.args[0], 'sendResponseStub').to.deep.equal(pairingResponse) + // }) it(`should remove peer and unsubscribe`, async () => { const removePeerStub = sinon.stub(PeerManager.prototype, 'removePeer').resolves() diff --git a/test/transports/post-message-transport.spec.ts b/packages/beacon-dapp/__tests__/post-message-transport.spec.ts similarity index 93% rename from test/transports/post-message-transport.spec.ts rename to packages/beacon-dapp/__tests__/post-message-transport.spec.ts index d5502973c..36ae16ec8 100644 --- a/test/transports/post-message-transport.spec.ts +++ b/packages/beacon-dapp/__tests__/post-message-transport.spec.ts @@ -3,19 +3,14 @@ import * as chaiAsPromised from 'chai-as-promised' import 'mocha' import * as sinon from 'sinon' -import { - BEACON_VERSION, - DappPostMessageTransport, - LocalStorage, - Origin, - PostMessageTransport, - TransportStatus -} from '../../src' -import { PeerManager } from '../../src/managers/PeerManager' -import { windowRef, clearMockWindowState } from '../../src/MockWindow' -import { PostMessageClient } from '../../src/transports/clients/PostMessageClient' -import { ExtendedPostMessagePairingResponse } from '../../src/types/PostMessagePairingResponse' -import { getKeypairFromSeed } from '../../src/utils/crypto' +import { DappPostMessageTransport } from '../src/transports/DappPostMessageTransport' + +import { TransportStatus, Origin, ExtendedPostMessagePairingResponse } from '@airgap/beacon-types' +import { getKeypairFromSeed } from '@airgap/beacon-utils' +import { BEACON_VERSION, PeerManager, LocalStorage } from '@airgap/beacon-core' +import { clearMockWindowState, windowRef } from '../../beacon-core/src/MockWindow' +import { PostMessageTransport } from '@airgap/beacon-transport-postmessage' +import { PostMessageClient } from '@airgap/beacon-transport-postmessage/dist/esm/PostMessageClient' // use chai-as-promised plugin chai.use(chaiAsPromised) @@ -157,7 +152,7 @@ describe(`PostMessageTransport`, () => { }) it(`should get peers`, async () => { - const returnValue = [] + const returnValue: ExtendedPostMessagePairingResponse[] = [] const getPeersStub = sinon.stub(PeerManager.prototype, 'getPeers').resolves(returnValue) const result = await transport.getPeers() diff --git a/packages/beacon-dapp/src/dapp-client/DAppClient.ts b/packages/beacon-dapp/src/dapp-client/DAppClient.ts index 47fc5df2b..5c0e1df4c 100644 --- a/packages/beacon-dapp/src/dapp-client/DAppClient.ts +++ b/packages/beacon-dapp/src/dapp-client/DAppClient.ts @@ -58,10 +58,9 @@ import { getAccountIdentifier, getSenderId, BEACON_VERSION, - Logger, - generateGUID + Logger } from '@airgap/beacon-core' -import { getAddressFromPublicKey, ExposedPromise } from '@airgap/beacon-utils' +import { getAddressFromPublicKey, ExposedPromise, generateGUID } from '@airgap/beacon-utils' import { messageEvents } from '../beacon-message-events' import { BlockExplorer } from '../utils/block-explorer' import { TezblockBlockExplorer } from '../utils/tezblock-blockexplorer' diff --git a/packages/beacon-dapp/src/ui/alert/Alert.ts b/packages/beacon-dapp/src/ui/alert/Alert.ts index e7dc0458e..d80b27fe1 100644 --- a/packages/beacon-dapp/src/ui/alert/Alert.ts +++ b/packages/beacon-dapp/src/ui/alert/Alert.ts @@ -2,7 +2,8 @@ import { NetworkType, P2PPairingRequest, PostMessagePairingRequest } from '@airgap/beacon-types' import { getColorMode } from '../../colorMode' -import { generateGUID, windowRef } from '@airgap/beacon-core' +import { windowRef } from '@airgap/beacon-core' +import { generateGUID } from '@airgap/beacon-utils' import { replaceInTemplate } from '../../utils/replace-in-template' import { alertTemplates } from './alert-templates' import { preparePairingAlert } from './PairingAlert' diff --git a/packages/beacon-dapp/src/ui/alert/PairingAlert.ts b/packages/beacon-dapp/src/ui/alert/PairingAlert.ts index 4c4c4a81a..063446deb 100644 --- a/packages/beacon-dapp/src/ui/alert/PairingAlert.ts +++ b/packages/beacon-dapp/src/ui/alert/PairingAlert.ts @@ -1,5 +1,6 @@ -import { Serializer, generateGUID, Logger, windowRef } from '@airgap/beacon-core' +import { Serializer, Logger, windowRef } from '@airgap/beacon-core' import { NetworkType, P2PPairingRequest, PostMessagePairingRequest } from '@airgap/beacon-types' +import { generateGUID } from '@airgap/beacon-utils' import { isAndroid, isIOS } from '../../utils/platform' import { getQrData } from '../../utils/qr' import { getTzip10Link } from '../../utils/get-tzip10-link' diff --git a/packages/beacon-dapp/src/ui/toast/Toast.ts b/packages/beacon-dapp/src/ui/toast/Toast.ts index 8106369de..006fef340 100644 --- a/packages/beacon-dapp/src/ui/toast/Toast.ts +++ b/packages/beacon-dapp/src/ui/toast/Toast.ts @@ -1,7 +1,7 @@ import { getColorMode } from '../../colorMode' import { WalletInfo } from '../../events' import { replaceInTemplate } from '../../utils/replace-in-template' -import { generateGUID } from '@airgap/beacon-core' +import { generateGUID } from '@airgap/beacon-utils' import { toastTemplates } from './toast-templates' export interface ToastAction { diff --git a/test/matrix-client/matrix-client.spec.ts b/packages/beacon-transport-matrix/__tests__/matrix-client.spec.ts similarity index 96% rename from test/matrix-client/matrix-client.spec.ts rename to packages/beacon-transport-matrix/__tests__/matrix-client.spec.ts index bdfca4088..8b3b00d7f 100644 --- a/test/matrix-client/matrix-client.spec.ts +++ b/packages/beacon-transport-matrix/__tests__/matrix-client.spec.ts @@ -1,12 +1,12 @@ import * as chai from 'chai' import * as chaiAsPromised from 'chai-as-promised' import 'mocha' -import { LocalStorage } from '../../src' -import { MatrixClient } from '../../src/matrix-client/MatrixClient' +import { LocalStorage } from '@airgap/beacon-core' +import { MatrixClient } from '../src/matrix-client/MatrixClient' import * as sinon from 'sinon' -import { MatrixRoomStatus } from '../../src/matrix-client/models/MatrixRoom' -import { MatrixHttpClient } from '../../src/matrix-client/MatrixHttpClient' -import { MatrixClientEventType } from '../../src/matrix-client/models/MatrixClientEvent' +import { MatrixRoomStatus } from '../src/matrix-client/models/MatrixRoom' +import { MatrixHttpClient } from '../src/matrix-client/MatrixHttpClient' +import { MatrixClientEventType } from '../src/matrix-client/models/MatrixClientEvent' MatrixClient // use chai-as-promised plugin @@ -129,7 +129,7 @@ describe(`MatrixClient`, () => { deviceId: 'pubkey' }) } catch (e) { - expect(e.message).to.equal('expected error') + expect((e as any).message).to.equal('expected error') expect(storeStub.callCount).to.equal(1) expect(sendStub.callCount).to.equal(1) expect(pollStub.callCount).to.equal(1) @@ -343,12 +343,13 @@ describe(`MatrixClient`, () => { const getStub = sinon.stub((client).store, 'get').returns(myToken) return new Promise(async (resolve, _reject) => { - const cb = (token) => { + const cb = (token: string) => { expect(token).to.equal(myToken) expect(getStub.callCount).to.equal(1) resolve() } + await (client).requiresAuthorization('my-name', cb) }) }) diff --git a/test/transports/p2p-client.spec.ts b/packages/beacon-transport-matrix/__tests__/p2p-client.spec.ts similarity index 91% rename from test/transports/p2p-client.spec.ts rename to packages/beacon-transport-matrix/__tests__/p2p-client.spec.ts index b415dccbd..c3e6d69c3 100644 --- a/test/transports/p2p-client.spec.ts +++ b/packages/beacon-transport-matrix/__tests__/p2p-client.spec.ts @@ -3,14 +3,13 @@ import * as chaiAsPromised from 'chai-as-promised' import 'mocha' import * as sinon from 'sinon' -import { LocalStorage, P2PCommunicationClient } from '../../src' -import { BeaconEventHandler } from '../../src/events' +import { P2PCommunicationClient } from '../src' import { deterministicShuffle, publicKeyToNumber -} from '../../src/transports/clients/P2PCommunicationClient' -import { getKeypairFromSeed } from '../../src/utils/crypto' -import { generateGUID } from '../../src/utils/generate-uuid' +} from '../src/communication-client/P2PCommunicationClient' +import { getKeypairFromSeed, generateGUID } from '@airgap/beacon-utils' +import { LocalStorage } from '@airgap/beacon-core' // use chai-as-promised plugin chai.use(chaiAsPromised) @@ -26,8 +25,6 @@ describe.only(`P2PCommunicationClient`, () => { const keypair = await getKeypairFromSeed(SEED) const localStorage = new LocalStorage() - const eventHandler = new BeaconEventHandler() - sinon.stub(eventHandler, 'emit').resolves() client = new P2PCommunicationClient('Test', keypair, 2, localStorage, []) }) diff --git a/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts b/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts index 241d19313..e053bbbef 100644 --- a/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts +++ b/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts @@ -34,12 +34,11 @@ import { import { PeerManager, BEACON_VERSION, - generateGUID, getSenderId, Logger, CommunicationClient } from '@airgap/beacon-core' -import { ExposedPromise } from '@airgap/beacon-utils' +import { ExposedPromise, generateGUID } from '@airgap/beacon-utils' const logger = new Logger('P2PCommunicationClient') diff --git a/packages/beacon-utils/__tests__/beacon-utils.spec.ts b/packages/beacon-utils/__tests__/beacon-utils.spec.ts index 0a6ac5654..ce009dd07 100644 --- a/packages/beacon-utils/__tests__/beacon-utils.spec.ts +++ b/packages/beacon-utils/__tests__/beacon-utils.spec.ts @@ -1,7 +1,107 @@ 'use strict' -const beaconUtils = require('..') +import * as chai from 'chai' +import * as chaiAsPromised from 'chai-as-promised' +import 'mocha' +import { getAddressFromPublicKey } from '../src/utils/crypto' +import { generateGUID } from '../src/utils/generate-uuid' -describe('@airgap/beacon-utils', () => { - it('needs tests') +// use chai-as-promised plugin +chai.use(chaiAsPromised) +const expect = chai.expect + +describe(`Crypto`, () => { + describe(`tz1`, () => { + describe('getAddressFromPublicKey', () => { + it(`should convert plain public key to address`, async () => { + const address: string = await getAddressFromPublicKey( + '444e1f4ab90c304a5ac003d367747aab63815f583ff2330ce159d12c1ecceba1' + ) + + expect(address).to.deep.equal('tz1d75oB6T4zUMexzkr5WscGktZ1Nss1JrT7') + }) + + it(`should edpk public key to address`, async () => { + const address: string = await getAddressFromPublicKey( + 'edpkuxyLpwfawtWCazyBJQwpWtD9Ehs1KpnHzyNLyvtdPSf16DKA8A' + ) + + expect(address).to.deep.equal('tz1ZgmtH7SbhWmrSk6cpywkwh2uhncn9YgeA') + }) + + it(`should throw an error if an invalid public key is used`, async () => { + try { + await getAddressFromPublicKey('edpkuxyLpwfawtWCazyBJQwpWtD9Ehs1KpnHzyNLyvtdPSf16DKA8Ax') + throw new Error('this should fail!') + } catch (error) { + expect((error as any).message).to.deep.equal( + 'invalid publicKey: edpkuxyLpwfawtWCazyBJQwpWtD9Ehs1KpnHzyNLyvtdPSf16DKA8Ax' + ) + } + }) + }) + }) + + describe(`tz2`, () => { + describe('getAddressFromPublicKey', () => { + it(`should sppk public key to address`, async () => { + const address: string = await getAddressFromPublicKey( + 'sppk7bWyHyv5QStTzJmFkeH5Caf6WKoDHDx64AxEtpBwwxgZu6vpmjU' + ) + + expect(address).to.deep.equal('tz28KhxeXtHFqhMwrb1KUfmRS6j9vCu1ZKNH') + }) + + it(`should throw an error if an invalid public key is used`, async () => { + try { + await getAddressFromPublicKey('sppk7bWyHyv5QStTzJmFkeH5Caf6WKoDHDx64AxEtpBwwxgZu6vpmjUx') + throw new Error('this should fail!') + } catch (error) { + expect((error as any).message).to.deep.equal( + 'invalid publicKey: sppk7bWyHyv5QStTzJmFkeH5Caf6WKoDHDx64AxEtpBwwxgZu6vpmjUx' + ) + } + }) + }) + }) + + describe(`tz3`, () => { + describe('getAddressFromPublicKey', () => { + it(`should p2pk public key to address`, async () => { + const address: string = await getAddressFromPublicKey( + 'p2pk67wVncLFS1DQDm2gVR45sYCzQSXTtqn3bviNYXVCq6WRoqtxHXL' + ) + + expect(address).to.deep.equal('tz3RDC3Jdn4j15J7bBHZd29EUee9gVB1CxD9') + }) + + it(`should throw an error if an invalid public key is used`, async () => { + try { + await getAddressFromPublicKey('p2pk67wVncLFS1DQDm2gVR45sYCzQSXTtqn3bviNYXVCq6WRoqtxHXLx') + throw new Error('this should fail!') + } catch (error) { + expect((error as any).message).to.deep.equal( + 'invalid publicKey: p2pk67wVncLFS1DQDm2gVR45sYCzQSXTtqn3bviNYXVCq6WRoqtxHXLx' + ) + } + }) + }) + }) + + it(`should throw an error if an invalid public key is used`, async () => { + try { + await getAddressFromPublicKey('test') + throw new Error('this should fail!') + } catch (error) { + expect((error as any).message).to.deep.equal('invalid publicKey: test') + } + }) + + describe('generateGUID', () => { + it(`should create a GUID`, async () => { + const GUID = await generateGUID() + + expect(typeof GUID).to.deep.equal('string') + }) + }) }) diff --git a/test/utils/exposed-promise.spec.ts b/packages/beacon-utils/__tests__/exposed-promise.spec.ts similarity index 99% rename from test/utils/exposed-promise.spec.ts rename to packages/beacon-utils/__tests__/exposed-promise.spec.ts index 957c1de7c..56f859fb5 100644 --- a/test/utils/exposed-promise.spec.ts +++ b/packages/beacon-utils/__tests__/exposed-promise.spec.ts @@ -1,7 +1,7 @@ import * as chai from 'chai' import * as chaiAsPromised from 'chai-as-promised' import 'mocha' -import { ExposedPromise, ExposedPromiseStatus } from '../../src/utils/exposed-promise' +import { ExposedPromise, ExposedPromiseStatus } from '../src/utils/exposed-promise' process.on('unhandledRejection', (reason, p) => { console.log('Unhandled Rejection at: Promise', p, 'reason:', reason) @@ -117,7 +117,7 @@ describe(`ExposedPromise`, () => { }) it(`should create a resolved ExposedPromise when calling the static resolve`, async () => { - const exposed = ExposedPromise.resolve() + const exposed = ExposedPromise.resolve(undefined) const promises = getExpectedPromiseOutcome(exposed, ExposedPromiseStatus.RESOLVED) diff --git a/packages/beacon-utils/src/index.ts b/packages/beacon-utils/src/index.ts index 14a03c89e..e7735bad6 100644 --- a/packages/beacon-utils/src/index.ts +++ b/packages/beacon-utils/src/index.ts @@ -11,3 +11,4 @@ export { openCryptobox, recipientString } from './utils/crypto' +export { generateGUID } from './utils/generate-uuid' diff --git a/packages/beacon-core/src/utils/generate-uuid.ts b/packages/beacon-utils/src/utils/generate-uuid.ts similarity index 100% rename from packages/beacon-core/src/utils/generate-uuid.ts rename to packages/beacon-utils/src/utils/generate-uuid.ts diff --git a/packages/beacon-wallet/__tests__/_helpers/_setup.spec.ts b/packages/beacon-wallet/__tests__/_helpers/_setup.spec.ts new file mode 100644 index 000000000..bf1cd2c04 --- /dev/null +++ b/packages/beacon-wallet/__tests__/_helpers/_setup.spec.ts @@ -0,0 +1,248 @@ +import { MockLocalStorage } from '../../../../test/test-utils/MockLocalStorage' +;(global as any).localStorage = new MockLocalStorage() + +import Axios from 'axios' +const MockAdapter = require('axios-mock-adapter') + +beforeEach(() => { + ;(global as any).localStorage.clear() +}) + +/** + * Create a JSDOM instance to support localStorage and other DOM methods + */ +const { JSDOM } = require('jsdom') +const dom = new JSDOM('', { + url: 'http://localhost/' +}) + +;(global as any).window = dom.window +;(global as any).document = dom.window.document + +// This sets the mock adapter on the default instance +const mock = new MockAdapter(Axios) + +const getVersionReply = () => { + return { + versions: ['r0.0.1', 'r0.1.0', 'r0.2.0', 'r0.3.0', 'r0.4.0', 'r0.5.0'], + unstable_features: { + 'm.lazy_load_members': true, + 'm.id_access_token': true, + 'm.require_identity_server': false, + 'm.separate_add_and_bind': true + } + } +} + +const getLogin = (hostname: string) => { + console.log('GET LOGIN') + return { + user_id: `@xxx:${hostname}`, + access_token: 'ACCESS_TOKEN', + home_server: hostname, + device_id: 'xxx' + } +} + +const getSync = () => { + return { + account_data: { + events: [ + { + type: 'm.push_rules', + content: { + global: { + underride: [ + { + conditions: [{ kind: 'event_match', key: 'type', pattern: 'm.call.invite' }], + actions: [ + 'notify', + { set_tweak: 'sound', value: 'ring' }, + { set_tweak: 'highlight', value: false } + ], + rule_id: '.m.rule.call', + default: true, + enabled: true + }, + { + conditions: [ + { kind: 'room_member_count', is: '2' }, + { kind: 'event_match', key: 'type', pattern: 'm.room.message' } + ], + actions: [ + 'notify', + { set_tweak: 'sound', value: 'default' }, + { set_tweak: 'highlight', value: false } + ], + rule_id: '.m.rule.room_one_to_one', + default: true, + enabled: true + }, + { + conditions: [ + { kind: 'room_member_count', is: '2' }, + { kind: 'event_match', key: 'type', pattern: 'm.room.encrypted' } + ], + actions: [ + 'notify', + { set_tweak: 'sound', value: 'default' }, + { set_tweak: 'highlight', value: false } + ], + rule_id: '.m.rule.encrypted_room_one_to_one', + default: true, + enabled: true + }, + { + conditions: [{ kind: 'event_match', key: 'type', pattern: 'm.room.message' }], + actions: ['notify', { set_tweak: 'highlight', value: false }], + rule_id: '.m.rule.message', + default: true, + enabled: true + }, + { + conditions: [{ kind: 'event_match', key: 'type', pattern: 'm.room.encrypted' }], + actions: ['notify', { set_tweak: 'highlight', value: false }], + rule_id: '.m.rule.encrypted', + default: true, + enabled: true + } + ], + sender: [], + room: [], + content: [ + { + actions: [ + 'notify', + { set_tweak: 'sound', value: 'default' }, + { set_tweak: 'highlight' } + ], + pattern: '632392b258880b3a108035a4c847127544112102c5a0ffb07d459788f6f4be0e', + rule_id: '.m.rule.contains_user_name', + default: true, + enabled: true + } + ], + override: [ + { + conditions: [], + actions: ['dont_notify'], + rule_id: '.m.rule.master', + default: true, + enabled: false + }, + { + conditions: [ + { kind: 'event_match', key: 'content.msgtype', pattern: 'm.notice' } + ], + actions: ['dont_notify'], + rule_id: '.m.rule.suppress_notices', + default: true, + enabled: true + }, + { + conditions: [ + { kind: 'event_match', key: 'type', pattern: 'm.room.member' }, + { kind: 'event_match', key: 'content.membership', pattern: 'invite' }, + { + kind: 'event_match', + key: 'state_key', + pattern: + '@632392b258880b3a108035a4c847127544112102c5a0ffb07d459788f6f4be0e:beacon-node-0.papers.tech:8448' + } + ], + actions: [ + 'notify', + { set_tweak: 'sound', value: 'default' }, + { set_tweak: 'highlight', value: false } + ], + rule_id: '.m.rule.invite_for_me', + default: true, + enabled: true + }, + { + conditions: [{ kind: 'event_match', key: 'type', pattern: 'm.room.member' }], + actions: ['dont_notify'], + rule_id: '.m.rule.member_event', + default: true, + enabled: true + }, + { + conditions: [{ kind: 'contains_display_name' }], + actions: [ + 'notify', + { set_tweak: 'sound', value: 'default' }, + { set_tweak: 'highlight' } + ], + rule_id: '.m.rule.contains_display_name', + default: true, + enabled: true + }, + { + conditions: [ + { kind: 'event_match', key: 'content.body', pattern: '@room' }, + { kind: 'sender_notification_permission', key: 'room' } + ], + actions: ['notify', { set_tweak: 'highlight', value: true }], + rule_id: '.m.rule.roomnotif', + default: true, + enabled: true + }, + { + conditions: [ + { kind: 'event_match', key: 'type', pattern: 'm.room.tombstone' }, + { kind: 'event_match', key: 'state_key', pattern: '' } + ], + actions: ['notify', { set_tweak: 'highlight', value: true }], + rule_id: '.m.rule.tombstone', + default: true, + enabled: true + }, + { + conditions: [{ kind: 'event_match', key: 'type', pattern: 'm.reaction' }], + actions: ['dont_notify'], + rule_id: '.m.rule.reaction', + default: true, + enabled: true + } + ] + }, + device: {} + } + } + ] + }, + to_device: { events: [] }, + device_lists: { changed: [], left: [] }, + presence: { events: [] }, + rooms: { join: {}, invite: {}, leave: {} }, + groups: { join: {}, invite: {}, leave: {} }, + device_one_time_keys_count: {}, + next_batch: 's949223_5360456_0_1_1_1_1_68957_1' + } +} + +mock + .onGet('https://beacon-node-1.sky.papers.tech/_matrix/client/versions') + .reply(200, getVersionReply()) + .onGet('https://beacon-node-2.sky.papers.tech/_matrix/client/versions') + .reply(200, getVersionReply()) + .onGet('https://beacon-node-0.papers.tech:8448/_matrix/client/versions') + .reply(200, getVersionReply()) + .onPost('https://beacon-node-1.sky.papers.tech/_matrix/client/r0/login') + .reply(200, getLogin('beacon-node-1.sky.papers.tech')) + .onPost('https://beacon-node-2.sky.papers.tech/_matrix/client/r0/login') + .reply(200, getLogin('beacon-node-2.sky.papers.tech')) + .onPost('https://beacon-node-0.papers.tech:8448/_matrix/client/r0/login') + .reply(200, getLogin('beacon-node-0.papers.tech:8448')) + .onGet('https://beacon-node-1.sky.papers.tech/_matrix/client/r0/sync') + .reply(200, getSync()) + .onGet('https://beacon-node-2.sky.papers.tech/_matrix/client/r0/sync') + .reply(200, getSync()) + .onGet('https://beacon-node-0.papers.tech:8448/_matrix/client/r0/sync') + .reply(200, getSync()) + .onAny() + .reply((config: any) => { + console.log('UNMOCKED URL, RETURNING ERROR 500', `${config.baseURL}${config.url}`) + + return [500, {}] + }) diff --git a/test/clients/wallet-client.spec.ts b/packages/beacon-wallet/__tests__/wallet-client.spec.ts similarity index 97% rename from test/clients/wallet-client.spec.ts rename to packages/beacon-wallet/__tests__/wallet-client.spec.ts index 358b8879e..d7440c41c 100644 --- a/test/clients/wallet-client.spec.ts +++ b/packages/beacon-wallet/__tests__/wallet-client.spec.ts @@ -1,30 +1,34 @@ import * as chai from 'chai' import * as chaiAsPromised from 'chai-as-promised' import 'mocha' +import * as sinon from 'sinon' + import { - PermissionRequest, + BeaconErrorType, BeaconMessageType, ConnectionContext, - LocalStorage, NetworkType, - P2PTransport, - BEACON_VERSION, Origin, + PermissionScope, + ExtendedP2PPairingRequest, + PermissionRequest, + PermissionInfo, PermissionResponseInput, + BeaconResponseInputMessage +} from '@airgap/beacon-types' + +import { AppMetadataManager, PermissionManager, - PermissionInfo, - PermissionScope, - Serializer, + windowRef, + BEACON_VERSION, + LocalStorage, getSenderId, - BeaconErrorType, - BeaconResponseInputMessage -} from '../../src' -import * as sinon from 'sinon' + Serializer +} from '@airgap/beacon-core' -import { WalletClient } from '../../src/clients/wallet-client/WalletClient' -import { ExtendedP2PPairingRequest } from '../../src/types/P2PPairingRequest' -import { windowRef } from '../../src/MockWindow' +import { P2PTransport } from '@airgap/beacon-transport-matrix' +import { WalletClient } from '../src' // use chai-as-promised plugin chai.use(chaiAsPromised) @@ -85,7 +89,7 @@ describe(`WalletClient`, () => { const walletClient = new WalletClient({} as any) expect(walletClient).to.be.undefined } catch (e) { - expect(e.message).to.equal('Name not set') + expect((e as any).message).to.equal('Name not set') } }) @@ -152,7 +156,7 @@ describe(`WalletClient`, () => { await walletClient.respond(message) throw new Error('Should not work!') } catch (error) { - expect(error.message).to.equal('No matching request found!') + expect((error as any).message).to.equal('No matching request found!') } }) diff --git a/test/_helpers/_setup.spec.ts b/test/_helpers/_setup.spec.ts index 6e4b8df5f..ff7e9052d 100644 --- a/test/_helpers/_setup.spec.ts +++ b/test/_helpers/_setup.spec.ts @@ -241,7 +241,7 @@ mock .onGet('https://beacon-node-0.papers.tech:8448/_matrix/client/r0/sync') .reply(200, getSync()) .onAny() - .reply((config) => { + .reply((config: any) => { console.log('UNMOCKED URL, RETURNING ERROR 500', `${config.baseURL}${config.url}`) return [500, {}] diff --git a/test/clients/p2p-client.spec.ts b/test/clients/p2p-client.spec.ts deleted file mode 100644 index 46302bb27..000000000 --- a/test/clients/p2p-client.spec.ts +++ /dev/null @@ -1,129 +0,0 @@ -import * as chai from 'chai' -import * as chaiAsPromised from 'chai-as-promised' -import 'mocha' - -import { generateGUID } from '../../src/utils/generate-uuid' -import { P2PCommunicationClient, LocalStorage } from '../../src' -import { getKeypairFromSeed } from '../../src/utils/crypto' - -const MAX_TEST_RUNTIME_SECONDS = 10 - -// use chai-as-promised plugin -chai.use(chaiAsPromised) -//const expect = chai.expect - -describe.skip(`client - Custom Tests`, () => { - it('will connect to the p2p communication network', async () => { - return new Promise(async (resolve) => { - const intervals: NodeJS.Timeout[] = [] - - const aliceClient = new P2PCommunicationClient( - 'Alice', - await getKeypairFromSeed('alice1234'), - 1, - new LocalStorage(), - [] - ) - await aliceClient - .start() - .catch((aliceClientError) => console.log('aliceClientError', aliceClientError)) - - const bobClient = new P2PCommunicationClient( - 'Bob', - await getKeypairFromSeed('bob1234'), - 1, - new LocalStorage(), - [] - ) - await bobClient - .start() - .catch((bobClientError) => console.log('bobClientError', bobClientError)) - - const charlieClient = new P2PCommunicationClient( - 'Charlie', - await getKeypairFromSeed('charlie1234'), - 1, - new LocalStorage(), - [] - ) - await charlieClient - .start() - .catch((charlieClientError) => console.log('charlieClientError', charlieClientError)) - - aliceClient.listenForEncryptedMessage(await bobClient.getPublicKey(), (message: string) => { - console.log('\n\nalice received from bob: "' + message + '"') - }) - - aliceClient.listenForEncryptedMessage( - await charlieClient.getPublicKey(), - (message: string) => { - console.log('\n\nalice received from charlie: "' + message + '"') - } - ) - - bobClient.listenForEncryptedMessage(await aliceClient.getPublicKey(), (message: string) => { - console.log('\n\nbob received from alice: "' + message + '"') - }) - - bobClient.listenForEncryptedMessage(await charlieClient.getPublicKey(), (message: string) => { - console.log('\n\nbob received from charlie: "' + message + '"') - }) - - charlieClient.listenForEncryptedMessage( - await aliceClient.getPublicKey(), - (message: string) => { - console.log('\n\ncharlie received from alice: "' + message + '"') - } - ) - - charlieClient.listenForEncryptedMessage(await bobClient.getPublicKey(), (message: string) => { - console.log('\n\ncharlie received from bob: "' + message + '"') - }) - - intervals.push( - global.setInterval(async () => { - bobClient.sendMessage( - `hey from bob ${await generateGUID()}\n\n`, - await aliceClient.getPairingRequestInfo() - ) - //bobClient.sendMessage(charlieClient.getPublicKey(), 'matrix-dev.papers.tech', "hey from bob") - }, 5000) - ) - - intervals.push( - global.setInterval(async () => { - aliceClient.sendMessage( - `hey from alice ${await generateGUID()}\n\n`, - await bobClient.getPairingRequestInfo() - ) - aliceClient.sendMessage( - `hey from alice ${await generateGUID()}\n\n`, - await charlieClient.getPairingRequestInfo() - ) - }, 5000) - ) - - intervals.push( - global.setInterval(async () => { - //charlieClient.sendMessage(bobClient.getPublicKey(), 'matrix.tez.ie', "hey from charlie") - charlieClient.sendMessage( - `hey from charlie ${await generateGUID()}\n\n`, - await aliceClient.getPairingRequestInfo() - ) - }, 5000) - ) - - global.setTimeout(() => { - intervals.forEach((intervalId) => { - console.log('clearing interval', intervalId) - clearInterval(intervalId) - }) - resolve() - - global.setTimeout(() => { - process.exit(0) - }, MAX_TEST_RUNTIME_SECONDS * 1000) - }, MAX_TEST_RUNTIME_SECONDS * 1000) - }) - }) -}) diff --git a/test/test-utils/FileStorage.ts b/test/test-utils/FileStorage.ts index f462d401b..8cc48f148 100644 --- a/test/test-utils/FileStorage.ts +++ b/test/test-utils/FileStorage.ts @@ -1,6 +1,5 @@ import { readFile, writeFile } from 'fs' -import { defaultValues } from '../../src/types/storage/StorageKeyReturnDefaults' -import { Storage, StorageKey, StorageKeyReturnType } from '../../src' +import { defaultValues, Storage, StorageKey, StorageKeyReturnType } from '@airgap/beacon-types' const file: string = './storage.json' diff --git a/test/test-utils/MockLocalStorage.ts b/test/test-utils/MockLocalStorage.ts index 0fde96b8d..10a076213 100644 --- a/test/test-utils/MockLocalStorage.ts +++ b/test/test-utils/MockLocalStorage.ts @@ -4,13 +4,13 @@ export class MockLocalStorage { constructor() { this.storage = new Map() } - setItem(key, value) { + setItem(key: any, value: any) { this.storage.set(key, value) } - getItem(key) { + getItem(key: any) { return this.storage.get(key) } - removeItem(key) { + removeItem(key: any) { this.storage.delete(key) } clear() { diff --git a/test/test-utils/MockTransport.ts b/test/test-utils/MockTransport.ts index f88eb2f77..6b0d90988 100644 --- a/test/test-utils/MockTransport.ts +++ b/test/test-utils/MockTransport.ts @@ -1,4 +1,4 @@ -import { Transport } from '../../src' +import { Transport } from '@airgap/beacon-core' export class MockTransport extends Transport { public async listen() {} diff --git a/test/utils/crypto.spec.ts b/test/utils/crypto.spec.ts deleted file mode 100644 index 3caf5a43a..000000000 --- a/test/utils/crypto.spec.ts +++ /dev/null @@ -1,105 +0,0 @@ -import * as chai from 'chai' -import * as chaiAsPromised from 'chai-as-promised' -import 'mocha' -import { getAddressFromPublicKey } from '../../src/utils/crypto' -import { generateGUID } from '../../src/utils/generate-uuid' - -// use chai-as-promised plugin -chai.use(chaiAsPromised) -const expect = chai.expect - -describe(`Crypto`, () => { - describe(`tz1`, () => { - describe('getAddressFromPublicKey', () => { - it(`should convert plain public key to address`, async () => { - const address: string = await getAddressFromPublicKey( - '444e1f4ab90c304a5ac003d367747aab63815f583ff2330ce159d12c1ecceba1' - ) - - expect(address).to.deep.equal('tz1d75oB6T4zUMexzkr5WscGktZ1Nss1JrT7') - }) - - it(`should edpk public key to address`, async () => { - const address: string = await getAddressFromPublicKey( - 'edpkuxyLpwfawtWCazyBJQwpWtD9Ehs1KpnHzyNLyvtdPSf16DKA8A' - ) - - expect(address).to.deep.equal('tz1ZgmtH7SbhWmrSk6cpywkwh2uhncn9YgeA') - }) - - it(`should throw an error if an invalid public key is used`, async () => { - try { - await getAddressFromPublicKey('edpkuxyLpwfawtWCazyBJQwpWtD9Ehs1KpnHzyNLyvtdPSf16DKA8Ax') - throw new Error('this should fail!') - } catch (error) { - expect(error.message).to.deep.equal( - 'invalid publicKey: edpkuxyLpwfawtWCazyBJQwpWtD9Ehs1KpnHzyNLyvtdPSf16DKA8Ax' - ) - } - }) - }) - }) - - describe(`tz2`, () => { - describe('getAddressFromPublicKey', () => { - it(`should sppk public key to address`, async () => { - const address: string = await getAddressFromPublicKey( - 'sppk7bWyHyv5QStTzJmFkeH5Caf6WKoDHDx64AxEtpBwwxgZu6vpmjU' - ) - - expect(address).to.deep.equal('tz28KhxeXtHFqhMwrb1KUfmRS6j9vCu1ZKNH') - }) - - it(`should throw an error if an invalid public key is used`, async () => { - try { - await getAddressFromPublicKey('sppk7bWyHyv5QStTzJmFkeH5Caf6WKoDHDx64AxEtpBwwxgZu6vpmjUx') - throw new Error('this should fail!') - } catch (error) { - expect(error.message).to.deep.equal( - 'invalid publicKey: sppk7bWyHyv5QStTzJmFkeH5Caf6WKoDHDx64AxEtpBwwxgZu6vpmjUx' - ) - } - }) - }) - }) - - describe(`tz3`, () => { - describe('getAddressFromPublicKey', () => { - it(`should p2pk public key to address`, async () => { - const address: string = await getAddressFromPublicKey( - 'p2pk67wVncLFS1DQDm2gVR45sYCzQSXTtqn3bviNYXVCq6WRoqtxHXL' - ) - - expect(address).to.deep.equal('tz3RDC3Jdn4j15J7bBHZd29EUee9gVB1CxD9') - }) - - it(`should throw an error if an invalid public key is used`, async () => { - try { - await getAddressFromPublicKey('p2pk67wVncLFS1DQDm2gVR45sYCzQSXTtqn3bviNYXVCq6WRoqtxHXLx') - throw new Error('this should fail!') - } catch (error) { - expect(error.message).to.deep.equal( - 'invalid publicKey: p2pk67wVncLFS1DQDm2gVR45sYCzQSXTtqn3bviNYXVCq6WRoqtxHXLx' - ) - } - }) - }) - }) - - it(`should throw an error if an invalid public key is used`, async () => { - try { - await getAddressFromPublicKey('test') - throw new Error('this should fail!') - } catch (error) { - expect(error.message).to.deep.equal('invalid publicKey: test') - } - }) - - describe('generateGUID', () => { - it(`should create a GUID`, async () => { - const GUID = await generateGUID() - - expect(typeof GUID).to.deep.equal('string') - }) - }) -}) From 9edb5bf7d4fef94e39893cd83759be4ae588aa18 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Fri, 12 Nov 2021 09:50:42 +0100 Subject: [PATCH 065/130] fix(build): add browserify build --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1af95d043..f5e5f78f9 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ }, "scripts": { "prebuild": "ts-node --project tsconfig-cjs.json scripts/generate-wallet-list.ts", - "build": "npm run check-version && lerna run tsc", + "build": "npm run check-version && lerna run tsc && npm run browserify:all", "browserify:all": "npm run browserify:sdk && npm run browserify:dapp && npm run browserify:wallet", "browserify:sdk": "browserify ./packages/beacon-dapp/dist/cjs/index.js -s beacon | uglifyjs > ./walletbeacon.min.js && cp ./walletbeacon.min.js ./examples/walletbeacon.min.js", "browserify:dapp": "browserify ./packages/beacon-dapp/dist/cjs/index.js -s beacon | uglifyjs > ./packages/beacon-wallet/dist/walletbeacon.dapp.min.js", From 04f51e1eef1c18b190b8596da16dd8961fd37d74 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Fri, 12 Nov 2021 09:52:18 +0100 Subject: [PATCH 066/130] chore(release): v0.0.1-beta.13 --- lerna.json | 2 +- packages/beacon-core/package.json | 6 +++--- packages/beacon-core/src/constants.ts | 2 +- packages/beacon-dapp/package.json | 8 ++++---- packages/beacon-protocol-kusama/package.json | 2 +- packages/beacon-protocol-tezos/package.json | 2 +- .../beacon-transport-matrix/__tests__/p2p-client.spec.ts | 2 +- packages/beacon-transport-matrix/package.json | 6 +++--- packages/beacon-transport-postmessage/package.json | 8 ++++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 2 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 ++++---- 13 files changed, 26 insertions(+), 26 deletions(-) diff --git a/lerna.json b/lerna.json index 797ad5123..f46fcc9cd 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "0.0.1-beta.12" + "version": "0.0.1-beta.13" } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 34e6ae839..f138b5139 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.12", + "version": "0.0.1-beta.13", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.12", - "@airgap/beacon-utils": "^0.0.1-beta.12", + "@airgap/beacon-types": "^0.0.1-beta.13", + "@airgap/beacon-utils": "^0.0.1-beta.13", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-core/src/constants.ts b/packages/beacon-core/src/constants.ts index 976431839..a9f273a24 100644 --- a/packages/beacon-core/src/constants.ts +++ b/packages/beacon-core/src/constants.ts @@ -1,2 +1,2 @@ -export const SDK_VERSION: string = '0.0.1-beta.12' +export const SDK_VERSION: string = '0.0.1-beta.13' export const BEACON_VERSION: string = '2' diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 9a97135ac..2019dfb56 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.12", + "version": "0.0.1-beta.13", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,9 +35,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.12", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.12", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.12", + "@airgap/beacon-core": "^0.0.1-beta.13", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.13", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.13", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-protocol-kusama/package.json index 2cf2ac8bb..bf8e17c6b 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.1-beta.12", + "version": "0.0.1-beta.13", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index fa2d4dd09..9fd0309ee 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.1-beta.12", + "version": "0.0.1-beta.13", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-transport-matrix/__tests__/p2p-client.spec.ts b/packages/beacon-transport-matrix/__tests__/p2p-client.spec.ts index c3e6d69c3..5f5205c91 100644 --- a/packages/beacon-transport-matrix/__tests__/p2p-client.spec.ts +++ b/packages/beacon-transport-matrix/__tests__/p2p-client.spec.ts @@ -44,7 +44,7 @@ describe.only(`P2PCommunicationClient`, () => { results[result] = temp + 1 } - const margin = 0.04 * maxNumber + const margin = 0.05 * maxNumber const expectedAmount = Math.floor(numberOfIterations / maxNumber) const upperLimit = expectedAmount * (1 + margin) diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index 86008c66a..de2908f4d 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.12", + "version": "0.0.1-beta.13", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.12", - "@airgap/beacon-utils": "^0.0.1-beta.12", + "@airgap/beacon-core": "^0.0.1-beta.13", + "@airgap/beacon-utils": "^0.0.1-beta.13", "axios": "0.21.1" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 369cb53b2..3691536ae 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.12", + "version": "0.0.1-beta.13", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.12", - "@airgap/beacon-types": "^0.0.1-beta.12", - "@airgap/beacon-utils": "^0.0.1-beta.12", + "@airgap/beacon-core": "^0.0.1-beta.13", + "@airgap/beacon-types": "^0.0.1-beta.13", + "@airgap/beacon-utils": "^0.0.1-beta.13", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 083e7223f..ea1ce16c9 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.12", + "version": "0.0.1-beta.13", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index ee4a6a3d8..a3a726d5a 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.12", + "version": "0.0.1-beta.13", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 7790a1ef8..9331edbb2 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.12", + "version": "0.0.1-beta.13", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 980e2151a..ebeb09ef3 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.12", + "version": "0.0.1-beta.13", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,8 +35,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.12", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.12", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.12" + "@airgap/beacon-core": "^0.0.1-beta.13", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.13", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.13" } } From 08e1ff1dbe1cbd13c4e4b0472980ee5e6de33e8d Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Fri, 12 Nov 2021 10:51:24 +0100 Subject: [PATCH 067/130] fix(pairing): QR will only be loaded once --- package.json | 2 +- packages/beacon-dapp/src/ui/alert/Pairing.ts | 39 ++++++++++++++++++- .../beacon-dapp/src/ui/alert/PairingAlert.ts | 4 +- 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index f5e5f78f9..ea39bf380 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "build": "npm run check-version && lerna run tsc && npm run browserify:all", "browserify:all": "npm run browserify:sdk && npm run browserify:dapp && npm run browserify:wallet", "browserify:sdk": "browserify ./packages/beacon-dapp/dist/cjs/index.js -s beacon | uglifyjs > ./walletbeacon.min.js && cp ./walletbeacon.min.js ./examples/walletbeacon.min.js", - "browserify:dapp": "browserify ./packages/beacon-dapp/dist/cjs/index.js -s beacon | uglifyjs > ./packages/beacon-wallet/dist/walletbeacon.dapp.min.js", + "browserify:dapp": "browserify ./packages/beacon-dapp/dist/cjs/index.js -s beacon | uglifyjs > ./packages/beacon-dapp/dist/walletbeacon.dapp.min.js", "browserify:wallet": "browserify ./packages/beacon-wallet/dist/cjs/index.js -s beacon | uglifyjs > ./packages/beacon-wallet/dist/walletbeacon.wallet.min.js", "prettier": "prettier --write 'src/**/*' '**/src/**/*' 'docs/**/*.md' 'example-dapp.html' 'example-wallet.html'", "lint": "eslint 'src/**/*.ts'", diff --git a/packages/beacon-dapp/src/ui/alert/Pairing.ts b/packages/beacon-dapp/src/ui/alert/Pairing.ts index e90650e76..95df37a02 100644 --- a/packages/beacon-dapp/src/ui/alert/Pairing.ts +++ b/packages/beacon-dapp/src/ui/alert/Pairing.ts @@ -15,8 +15,8 @@ import { desktopList, extensionList, iOSList, webList } from './wallet-lists' const serializer = new Serializer() const defaultExtensions = [ - 'ookjlbkiijinhpmnjffcofjonbfbgaoc', // Thanos - 'gpfndedineagiepkpinficbcbbgjoenn' // Beacon + 'ookjlbkiijinhpmnjffcofjonbfbgaoc', // Temple + 'gpfndedineagiepkpinficbcbbgjoenn' // Spire ] export enum Platform { @@ -176,7 +176,14 @@ export class Pairing { shortName: app.shortName ?? ext?.shortName, color: app.color ?? ext?.color, enabled: true, + clicked: false, async clickHandler(): Promise { + if (this.clicked) { + return + } + + this.clicked = true + if (postmessageSyncCode) { const postmessageCode = await serializer.serialize(await postmessageSyncCode()) const message: ExtensionMessage = { @@ -217,7 +224,14 @@ export class Pairing { color: app.color, logo: app.logo, enabled: true, + clicked: false, async clickHandler(): Promise { + if (this.clicked) { + return + } + + this.clicked = true + const code = await serializer.serialize(await pairingCode()) const link = getTzip10Link(app.deepLink, code) window.open(link, '_blank') @@ -238,7 +252,14 @@ export class Pairing { color: app.color, logo: app.logo, enabled: true, + clicked: false, async clickHandler(): Promise { + if (this.clicked) { + return + } + + this.clicked = true + const code = await serializer.serialize(await pairingCode()) mobileWalletHandler(code) statusUpdateHandler(WalletType.IOS, this, true) @@ -269,7 +290,14 @@ export class Pairing { color: app.color, logo: app.logo, enabled: true, + clicked: false, async clickHandler(): Promise { + if (this.clicked) { + return + } + + this.clicked = true + const code = await serializer.serialize(await pairingCode()) const link = getTzip10Link(app.deepLink ?? app.universalLink, code) @@ -340,7 +368,14 @@ export class Pairing { color: app.color, logo: app.logo, enabled: true, + clicked: false, clickHandler(): void { + if (this.clicked) { + return + } + + this.clicked = true + const newTab = window.open('', '_blank') pairingCode() diff --git a/packages/beacon-dapp/src/ui/alert/PairingAlert.ts b/packages/beacon-dapp/src/ui/alert/PairingAlert.ts index 063446deb..9601a2cc8 100644 --- a/packages/beacon-dapp/src/ui/alert/PairingAlert.ts +++ b/packages/beacon-dapp/src/ui/alert/PairingAlert.ts @@ -234,6 +234,9 @@ export const preparePairingAlert = async ( break default: if (!qrShown) { + // If we have previously triggered the load, do not load it again (this can lead to multiple QRs being added if "pairingPayload.p2pSyncCode()" is slow) + qrShown = true + const code = await serializer.serialize(await pairingPayload.p2pSyncCode()) const uri = getTzip10Link('tezos://', code) const qrSVG = getQrData(uri, 'svg') @@ -245,7 +248,6 @@ export const preparePairingAlert = async ( if (qr) { qr.addEventListener('click', clipboardFn) } - qrShown = true } // QR code From 4567fa7c4a37b209eaa74a384a883a5d3df1a094 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Fri, 12 Nov 2021 13:37:02 +0100 Subject: [PATCH 068/130] feat(deps): update dependencies --- package-lock.json | 8664 ++++++++--------- package.json | 58 +- packages/beacon-transport-matrix/package.json | 2 +- packages/beacon-types/package.json | 2 +- 4 files changed, 4214 insertions(+), 4512 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3f9b71c5e..9eb77dd35 100755 --- a/package-lock.json +++ b/package-lock.json @@ -20,41 +20,41 @@ "@airgap/beacon-wallet": "file:packages/beacon-wallet" }, "devDependencies": { - "@types/bs58check": "^2.1.0", - "@types/chai-as-promised": "7.1.2", - "@types/mocha": "7.0.2", - "@types/node": "14.0.1", - "@types/sinon": "9.0.5", - "@typescript-eslint/eslint-plugin": "2.33.0", - "@typescript-eslint/eslint-plugin-tslint": "2.33.0", - "@typescript-eslint/parser": "2.33.0", - "axios-mock-adapter": "1.18.2", - "browserify": "16.5.1", - "chai": "4.2.0", + "@types/bs58check": "2.1.0", + "@types/chai-as-promised": "7.1.4", + "@types/mocha": "9.0.0", + "@types/node": "16.11.7", + "@types/sinon": "10.0.6", + "@typescript-eslint/eslint-plugin": "5.3.1", + "@typescript-eslint/eslint-plugin-tslint": "5.3.1", + "@typescript-eslint/parser": "5.3.1", + "axios-mock-adapter": "1.20.0", + "browserify": "17.0.0", + "chai": "4.3.4", "chai-as-promised": "7.1.1", - "eslint": "7.0.0", - "eslint-config-prettier": "6.11.0", - "eslint-plugin-import": "2.20.2", + "eslint": "8.2.0", + "eslint-config-prettier": "8.3.0", + "eslint-plugin-import": "2.25.3", "eslint-plugin-no-null": "1.0.2", - "eslint-plugin-prefer-arrow": "1.2.1", + "eslint-plugin-prefer-arrow": "1.2.3", "husky": "4.2.5", - "jsdom": "16.4.0", + "jsdom": "18.0.1", "jsdom-global": "3.0.2", - "lerna": "^4.0.0", - "mocha": "7.1.2", - "nyc": "15.0.1", - "prettier": "2.0.5", - "pretty-quick": "2.0.1", - "puppeteer": "^10.0.0", - "puppeteer-mass-screenshots": "^1.0.15", + "lerna": "4.0.0", + "mocha": "9.1.3", + "nyc": "15.1.0", + "prettier": "2.4.1", + "pretty-quick": "3.1.1", + "puppeteer": "11.0.0", + "puppeteer-mass-screenshots": "1.0.15", "resize-img": "2.0.0", - "sinon": "9.0.3", + "sinon": "12.0.1", "sonar-scanner": "3.1.0", - "static-server": "^2.2.1", - "ts-node": "8.10.1", - "tslint": "6.1.2", - "typedoc": "^0.20.30", - "typedoc-plugin-internal-external": "^2.2.0", + "static-server": "2.2.1", + "ts-node": "10.4.0", + "tslint": "6.1.3", + "typedoc": "0.22.8", + "typedoc-plugin-internal-external": "2.2.0", "typescript": "4.4.4", "uglify-js": "3.14.3" } @@ -247,15 +247,6 @@ "to-fast-properties": "^2.0.0" } }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", @@ -518,15 +509,6 @@ "to-fast-properties": "^2.0.0" } }, - "node_modules/@babel/helper-replace-supers/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/@babel/helper-simple-access": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", @@ -720,15 +702,6 @@ "to-fast-properties": "^2.0.0" } }, - "node_modules/@babel/helpers/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/@babel/highlight": { "version": "7.5.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", @@ -740,6 +713,112 @@ "js-tokens": "^4.0.0" } }, + "node_modules/@cspotcode/source-map-consumer": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", + "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", + "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-consumer": "0.8.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz", + "integrity": "sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.0.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", + "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, "node_modules/@hutson/parse-repository-url": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", @@ -1573,153 +1652,6 @@ "node": ">= 10.18.0" } }, - "node_modules/@lerna/cli/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@lerna/cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@lerna/cli/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/@lerna/cli/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@lerna/cli/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@lerna/cli/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/@lerna/cli/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@lerna/cli/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@lerna/cli/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@lerna/cli/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@lerna/cli/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@lerna/cli/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@lerna/cli/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/collect-uncommitted": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-4.0.0.tgz", @@ -1948,15 +1880,6 @@ "node": ">=10" } }, - "node_modules/@lerna/create/node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/describe-ref": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-4.0.0.tgz", @@ -3094,26 +3017,6 @@ "read-package-json-fast": "^2.0.1" } }, - "node_modules/@npmcli/run-script/node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@npmcli/run-script/node_modules/node-gyp": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", @@ -3322,37 +3225,27 @@ } }, "node_modules/@sinonjs/commons": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", - "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", "dev": true, "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", "dev": true, "dependencies": { "@sinonjs/commons": "^1.7.0" } }, - "node_modules/@sinonjs/formatio": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-5.0.1.tgz", - "integrity": "sha512-KaiQ5pBf1MpS09MuA0kp6KBQt2JUOQycqVG1NZXvzeaXe5LGFqAKueIS0bw4w0P9r7KuBSVdUk5QjXsUdu2CxQ==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1", - "@sinonjs/samsam": "^5.0.2" - } - }, "node_modules/@sinonjs/samsam": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.1.0.tgz", - "integrity": "sha512-42nyaQOVunX5Pm6GRJobmzbS7iLI+fhERITnETXzzwDZh+TtDr/Au3yAvXVjFmZ4wEUaE4Y3NFZfKv0bV0cbtg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz", + "integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==", "dev": true, "dependencies": { "@sinonjs/commons": "^1.6.0", @@ -3375,14 +3268,38 @@ "node": ">= 6" } }, - "node_modules/@types/bs58check": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/bs58check/-/bs58check-2.1.0.tgz", - "integrity": "sha512-OxsysnJQh82vy9DRbOcw9m2j/WiyqZLn0YBhKxdQ+aCwoHj+tWzyCgpwAkr79IfDXZKxc6h7k89T9pwS78CqTQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } + "node_modules/@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true + }, + "node_modules/@types/bs58check": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/bs58check/-/bs58check-2.1.0.tgz", + "integrity": "sha512-OxsysnJQh82vy9DRbOcw9m2j/WiyqZLn0YBhKxdQ+aCwoHj+tWzyCgpwAkr79IfDXZKxc6h7k89T9pwS78CqTQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } }, "node_modules/@types/chai": { "version": "4.2.4", @@ -3391,18 +3308,20 @@ "dev": true }, "node_modules/@types/chai-as-promised": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.2.tgz", - "integrity": "sha512-PO2gcfR3Oxa+u0QvECLe1xKXOqYTzCmWf0FhLhjREoW3fPAVamjihL7v1MOVLJLsnAMdLcjkfrs01yvDMwVK4Q==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.4.tgz", + "integrity": "sha512-1y3L1cHePcIm5vXkh1DSGf/zQq5n5xDKG1fpCvf18+uOkpce0Z1ozNFPkyWsVswK7ntN1sZBw3oU6gmN+pDUcA==", "dev": true, + "license": "MIT", "dependencies": { "@types/chai": "*" } }, "node_modules/@types/chrome": { - "version": "0.0.115", - "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.115.tgz", - "integrity": "sha512-pNoYoYgGuI1/kiz53kjrXrKIjn2H8YWOI+vxVTOubX6arCHk/m/jInoyflKiP2qZHZf8+P+hh6d2y9tjaG4BPQ==", + "version": "0.0.163", + "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.163.tgz", + "integrity": "sha512-g+3E2tg/ukFsEgH+tB3a/b+J1VSvq/8gh2Jwih9eq+T3Idrz7ngj97u+/ya58Bfei2TQtPlRivj1FsCaSnukDA==", + "license": "MIT", "dependencies": { "@types/filesystem": "*", "@types/har-format": "*" @@ -3414,12 +3333,6 @@ "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, - "node_modules/@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", - "dev": true - }, "node_modules/@types/filesystem": { "version": "0.0.32", "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.32.tgz", @@ -3439,9 +3352,15 @@ "integrity": "sha512-/TPzUG0tJn5x1TUcVLlDx2LqbE58hyOzDVAc9kf8SpOEmguHjU6bKUyfqb211AdqLOmU/SNyXvLKPNP5qTlfRw==" }, "node_modules/@types/json-schema": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", - "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==", + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, "node_modules/@types/libsodium-wrappers": { @@ -3462,16 +3381,18 @@ "dev": true }, "node_modules/@types/mocha": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-7.0.2.tgz", - "integrity": "sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==", - "dev": true + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.0.0.tgz", + "integrity": "sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA==", + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.1.tgz", - "integrity": "sha512-FAYBGwC+W6F9+huFIDtn43cpy7+SzG+atzRiTfdp3inUKL2hXnd4rG8hylJLIh4+hqrQy1P17kvJByE/z825hA==", - "dev": true + "version": "16.11.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.7.tgz", + "integrity": "sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==", + "dev": true, + "license": "MIT" }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -3486,20 +3407,15 @@ "dev": true }, "node_modules/@types/sinon": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-9.0.5.tgz", - "integrity": "sha512-4CnkGdM/5/FXDGqL32JQ1ttVrGvhOoesLLF7VnTh4KdjK5N5VQOtxaylFqqTjnHx55MnD9O02Nbk5c1ELC8wlQ==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.6.tgz", + "integrity": "sha512-6EF+wzMWvBNeGrfP3Nx60hhx+FfwSg1JJBLAAP/IdIUq0EYkqCYf70VT3PhuhPX9eLD+Dp+lNdpb/ZeHG8Yezg==", "dev": true, + "license": "MIT", "dependencies": { - "@types/sinonjs__fake-timers": "*" + "@sinonjs/fake-timers": "^7.1.0" } }, - "node_modules/@types/sinonjs__fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz", - "integrity": "sha512-yYezQwGWty8ziyYLdZjwxyMb0CZR49h8JALHGrxjQHWlqGgc8kLdHEgWrgL0uZ29DMvEVBDnHU2Wg36zKSIUtA==", - "dev": true - }, "node_modules/@types/yauzl": { "version": "2.9.1", "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz", @@ -3511,112 +3427,198 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.33.0.tgz", - "integrity": "sha512-QV6P32Btu1sCI/kTqjTNI/8OpCYyvlGjW5vD8MpTIg+HGE5S88HtT1G+880M4bXlvXj/NjsJJG0aGcVh0DdbeQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.3.1.tgz", + "integrity": "sha512-cFImaoIr5Ojj358xI/SDhjog57OK2NqlpxwdcgyxDA3bJlZcJq5CPzUXtpD7CxI2Hm6ATU7w5fQnnkVnmwpHqw==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/experimental-utils": "2.33.0", + "@typescript-eslint/experimental-utils": "5.3.1", + "@typescript-eslint/scope-manager": "5.3.1", + "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "tsutils": "^3.17.1" + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@typescript-eslint/eslint-plugin-tslint": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-2.33.0.tgz", - "integrity": "sha512-DXy14tWbs4NVMv/1ADDLfh9jy8ZloZHTuIKEE1Ufs7OGvAu6Ft5Rw7G1RsgfykEENSqy32Mycj5Q6jxN7AXmNA==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-5.3.1.tgz", + "integrity": "sha512-cLCBGatLIt5eakTf29SReatgCZapYBhjrEEEguts8yZvuIG7wQQMbMFW2IONCY95Id8SFMNBuAO0FOp0OMJ48w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/experimental-utils": "5.3.1", + "lodash": "^4.17.21" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0", + "tslint": "^5.0.0 || ^6.0.0", + "typescript": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { - "@typescript-eslint/experimental-utils": "2.33.0", - "lodash": "^4.17.15" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": ">=10" } }, "node_modules/@typescript-eslint/experimental-utils": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.33.0.tgz", - "integrity": "sha512-qzPM2AuxtMrRq78LwyZa8Qn6gcY8obkIrBs1ehqmQADwkYzTE1Pb4y2W+U3rE/iFkSWcWHG2LS6MJfj6SmHApg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.3.1.tgz", + "integrity": "sha512-RgFn5asjZ5daUhbK5Sp0peq0SSMytqcrkNfU4pnDma2D8P3ElZ6JbYjY8IMSFfZAJ0f3x3tnO3vXHweYg0g59w==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.33.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.3.1", + "@typescript-eslint/types": "5.3.1", + "@typescript-eslint/typescript-estree": "5.3.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" } }, "node_modules/@typescript-eslint/parser": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.33.0.tgz", - "integrity": "sha512-AUtmwUUhJoH6yrtxZMHbRUEMsC2G6z5NSxg9KsROOGqNXasM71I8P2NihtumlWTUCRld70vqIZ6Pm4E5PAziEA==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.3.1.tgz", + "integrity": "sha512-TD+ONlx5c+Qhk21x9gsJAMRohWAUMavSOmJgv3JGy9dgPhuBd5Wok0lmMClZDyJNLLZK1JRKiATzCKZNUmoyfw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.33.0", - "@typescript-eslint/typescript-estree": "2.33.0", - "eslint-visitor-keys": "^1.1.0" + "@typescript-eslint/scope-manager": "5.3.1", + "@typescript-eslint/types": "5.3.1", + "@typescript-eslint/typescript-estree": "5.3.1", + "debug": "^4.3.2" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.33.0.tgz", - "integrity": "sha512-d8rY6/yUxb0+mEwTShCQF2zYQdLlqihukNfG9IUlLYz5y1CH6G/9XYbrxQLq3Z14RNvkCC6oe+OcFlyUpwUbkg==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.3.1.tgz", + "integrity": "sha512-XksFVBgAq0Y9H40BDbuPOTUIp7dn4u8oOuhcgGq7EoDP50eqcafkMVGrypyVGvDYHzjhdUCUwuwVUK4JhkMAMg==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "@typescript-eslint/types": "5.3.1", + "@typescript-eslint/visitor-keys": "5.3.1" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "node_modules/@typescript-eslint/types": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.3.1.tgz", + "integrity": "sha512-bG7HeBLolxKHtdHG54Uac750eXuQQPpdJfCYuw4ZI3bZ7+GgKClMWM8jExBtp7NSP4m8PmLRM8+lhzkYnSmSxQ==", "dev": true, - "dependencies": { - "ms": "^2.1.1" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.3.1.tgz", + "integrity": "sha512-PwFbh/PKDVo/Wct6N3w+E4rLZxUDgsoII/GrWM2A62ETOzJd4M6s0Mu7w4CWsZraTbaC5UQI+dLeyOIFF1PquQ==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "@typescript-eslint/types": "5.3.1", + "@typescript-eslint/visitor-keys": "5.3.1", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "engines": { - "node": "*" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { "semver": "bin/semver.js" }, @@ -3624,10 +3626,33 @@ "node": ">=10" } }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.3.1.tgz", + "integrity": "sha512-3cHUzUuVTuNHx0Gjjt5pEHa87+lzyqOiHXy/Gz+SJOCW1mpw9xQHIIEwnKn+Thph1mgWyZ90nboOcSuZr/jTTQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.3.1", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, "node_modules/abab": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz", - "integrity": "sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", "dev": true }, "node_modules/abbrev": { @@ -3659,10 +3684,13 @@ } }, "node_modules/acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", - "dev": true + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } }, "node_modules/acorn-node": { "version": "1.8.2", @@ -3702,29 +3730,6 @@ "node": ">= 6.0.0" } }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/agentkeepalive": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", @@ -3739,29 +3744,6 @@ "node": ">= 8.0.0" } }, - "node_modules/agentkeepalive/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agentkeepalive/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/aggregate-error": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", @@ -3776,21 +3758,25 @@ } }, "node_modules/ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true, "engines": { "node": ">=6" @@ -3835,6 +3821,19 @@ "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==", "dev": true }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/append-transform": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", @@ -3900,239 +3899,78 @@ "dev": true }, "node_modules/array-includes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", - "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "dev": true, "dependencies": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "is-string": "^1.0.5" + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-includes/node_modules/es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/array-includes/node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "node_modules/array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", "dev": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-includes/node_modules/is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "dev": true, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/array-includes/node_modules/is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "dependencies": { - "has": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" + "safer-buffer": "~2.1.0" } }, - "node_modules/array-includes/node_modules/string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/array-includes/node_modules/string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", - "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/array.prototype.flat/node_modules/es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/array.prototype.flat/node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/array.prototype.flat/node_modules/is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/array.prototype.flat/node_modules/is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/array.prototype.flat/node_modules/string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/array.prototype.flat/node_modules/string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true - }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, "dependencies": { "bn.js": "^4.0.0", @@ -4189,15 +4027,6 @@ "node": "*" } }, - "node_modules/astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -4213,6 +4042,18 @@ "node": ">= 4.0.0" } }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", @@ -4229,29 +4070,28 @@ "dev": true }, "node_modules/axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", "dependencies": { - "follow-redirects": "^1.10.0" + "follow-redirects": "^1.14.4" } }, "node_modules/axios-mock-adapter": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.18.2.tgz", - "integrity": "sha512-e5aTsPy2Viov22zNpFTlid76W1Scz82pXeEwwCXdtO85LROhHAF8pHF2qDhiyMONLxKyY3lQ+S4UCsKgrlx8Hw==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.20.0.tgz", + "integrity": "sha512-shZRhTjLP0WWdcvHKf3rH3iW9deb3UdKbdnKUoHmmsnBhVXN3sjPJM6ZvQ2r/ywgvBVQrMnjrSyQab60G1sr2w==", "dev": true, + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "is-buffer": "^2.0.3" + "fast-deep-equal": "^3.1.3", + "is-blob": "^2.1.0", + "is-buffer": "^2.0.5" + }, + "peerDependencies": { + "axios": ">= 0.9.0" } }, - "node_modules/axios-mock-adapter/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, "node_modules/balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -4287,6 +4127,15 @@ "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", "dev": true }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -4376,20 +4225,14 @@ "dev": true }, "node_modules/browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", + "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", "dev": true, "dependencies": { - "resolve": "1.1.7" + "resolve": "^1.17.0" } }, - "node_modules/browser-resolve/node_modules/resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - }, "node_modules/browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", @@ -4397,14 +4240,15 @@ "dev": true }, "node_modules/browserify": { - "version": "16.5.1", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.1.tgz", - "integrity": "sha512-EQX0h59Pp+0GtSRb5rL6OTfrttlzv+uyaUVlK6GX3w11SQ0jKPKyjC/54RhPR2ib2KmfcELM06e8FxcI5XNU2A==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", + "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", "dev": true, + "license": "MIT", "dependencies": { "assert": "^1.4.0", "browser-pack": "^6.0.1", - "browser-resolve": "^1.11.0", + "browser-resolve": "^2.0.0", "browserify-zlib": "~0.2.0", "buffer": "~5.2.1", "cached-path-relative": "^1.0.0", @@ -4413,32 +4257,32 @@ "constants-browserify": "~1.0.0", "crypto-browserify": "^3.0.0", "defined": "^1.0.0", - "deps-sort": "^2.0.0", + "deps-sort": "^2.0.1", "domain-browser": "^1.2.0", "duplexer2": "~0.1.2", - "events": "^2.0.0", + "events": "^3.0.0", "glob": "^7.1.0", "has": "^1.0.0", "htmlescape": "^1.1.0", "https-browserify": "^1.0.0", "inherits": "~2.0.1", - "insert-module-globals": "^7.0.0", + "insert-module-globals": "^7.2.1", "JSONStream": "^1.0.3", "labeled-stream-splicer": "^2.0.0", "mkdirp-classic": "^0.5.2", - "module-deps": "^6.0.0", + "module-deps": "^6.2.3", "os-browserify": "~0.3.0", "parents": "^1.0.1", - "path-browserify": "~0.0.0", + "path-browserify": "^1.0.0", "process": "~0.11.0", "punycode": "^1.3.2", "querystring-es3": "~0.2.0", "read-only-stream": "^2.0.0", "readable-stream": "^2.0.2", "resolve": "^1.1.4", - "shasum": "^1.0.0", + "shasum-object": "^1.0.0", "shell-quote": "^1.6.1", - "stream-browserify": "^2.0.0", + "stream-browserify": "^3.0.0", "stream-http": "^3.0.0", "string_decoder": "^1.1.1", "subarg": "^1.0.0", @@ -4447,7 +4291,7 @@ "timers-browserify": "^1.0.1", "tty-browserify": "0.0.1", "url": "~0.11.0", - "util": "~0.10.1", + "util": "~0.12.0", "vm-browserify": "^1.0.0", "xtend": "^4.0.0" }, @@ -4560,15 +4404,6 @@ "ieee754": "^1.1.4" } }, - "node_modules/browserify/node_modules/events": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", - "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/browserify/node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", @@ -4619,6 +4454,20 @@ "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", "dev": true }, + "node_modules/browserify/node_modules/util": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", + "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, "node_modules/bs58": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", @@ -4767,26 +4616,6 @@ "node": ">=10" } }, - "node_modules/cacache/node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/cacache/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -4875,16 +4704,16 @@ "dev": true }, "node_modules/chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", "dev": true, "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", - "pathval": "^1.1.0", + "pathval": "^1.1.1", "type-detect": "^4.0.5" }, "engines": { @@ -4941,6 +4770,27 @@ "node": "*" } }, + "node_modules/chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", @@ -4993,49 +4843,58 @@ } }, "node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, "node_modules/cliui/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { - "node": ">=6" + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" } }, "node_modules/cliui/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/cliui/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/clone": { @@ -5109,15 +4968,6 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/columnify": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", @@ -5274,15 +5124,6 @@ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", "dev": true }, - "node_modules/contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/conventional-changelog-angular": { "version": "5.0.12", "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz", @@ -5637,6 +5478,12 @@ "sha.js": "^2.4.8" } }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -5710,9 +5557,9 @@ } }, "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", "dev": true }, "node_modules/cssstyle": { @@ -5761,37 +5608,85 @@ } }, "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.1.tgz", + "integrity": "sha512-Ds554NeT5Gennfoo9KN50Vh6tpgtvYEwraYjejXnyTpu1C7oXKxdFk75REooENHE8ndTVOJuv+BEs4/J/xcozw==", "dev": true, "dependencies": { "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^10.0.0" }, "engines": { - "node": ">=10" + "node": ">=12" } }, - "node_modules/dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "node_modules/data-urls/node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", "dev": true, - "engines": { + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/data-urls/node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", + "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true, + "engines": { "node": "*" } }, "node_modules/debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, + "node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "node_modules/debuglog": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", @@ -5833,9 +5728,9 @@ } }, "node_modules/decimal.js": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz", - "integrity": "sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw==", + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", "dev": true }, "node_modules/decode-uri-component": { @@ -6000,16 +5895,10 @@ "node": ">=0.8.0" } }, - "node_modules/detective/node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, "node_modules/devtools-protocol": { - "version": "0.0.883894", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.883894.tgz", - "integrity": "sha512-33idhm54QJzf3Q7QofMgCvIVSd2o9H3kQPWaKT/fhoZh+digc+WSiMhbkeG3iN79WY4Hwr9G05NpbhEVrsOYAg==", + "version": "0.0.901419", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.901419.tgz", + "integrity": "sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==", "dev": true }, "node_modules/dezalgo": { @@ -6023,9 +5912,9 @@ } }, "node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true, "engines": { "node": ">=0.3.1" @@ -6089,24 +5978,24 @@ } }, "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", "dev": true, "dependencies": { - "webidl-conversions": "^5.0.0" + "webidl-conversions": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" } }, "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" } }, "node_modules/dot-prop": { @@ -6171,9 +6060,9 @@ "dev": true }, "node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "node_modules/encoding": { @@ -6208,6 +6097,18 @@ "once": "^1.4.0" } }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", @@ -6245,30 +6146,43 @@ } }, "node_modules/es-abstract": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz", - "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "dev": true, "dependencies": { - "es-to-primitive": "^1.2.0", + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "has": "^1.0.3", - "has-symbols": "^1.0.0", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-inspect": "^1.6.0", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", "object-keys": "^1.1.1", - "string.prototype.trimleft": "^2.1.0", - "string.prototype.trimright": "^2.1.0" + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "dependencies": { "is-callable": "^1.1.4", @@ -6277,6 +6191,9 @@ }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/es6-error": { @@ -6304,13 +6221,13 @@ } }, "node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", "dev": true, "dependencies": { "esprima": "^4.0.1", - "estraverse": "^4.2.0", + "estraverse": "^5.2.0", "esutils": "^2.0.2", "optionator": "^0.8.1" }, @@ -6319,12 +6236,21 @@ "esgenerate": "bin/esgenerate.js" }, "engines": { - "node": ">=4.0" + "node": ">=6.0" }, "optionalDependencies": { "source-map": "~0.6.1" } }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, "node_modules/escodegen/node_modules/levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -6387,45 +6313,47 @@ } }, "node_modules/eslint": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.0.0.tgz", - "integrity": "sha512-qY1cwdOxMONHJfGqw52UOpZDeqXy8xmD0u8CT6jIstil72jkhURC704W8CFyTPDPllz4z4lu0Ql1+07PG/XdIg==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.2.0.tgz", + "integrity": "sha512-erw7XmM+CLxTOickrimJ1SiF55jiNlVSp2qqm0NuBWPtHYQCegD5ZMaW0c3i5ytPqL+SSLaCxdvQXFPLJn+ABw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.0.0", + "@eslint/eslintrc": "^1.0.4", + "@humanwhocodes/config-array": "^0.6.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0", - "eslint-visitor-keys": "^1.1.0", - "espree": "^7.0.0", - "esquery": "^1.2.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^6.0.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", + "esquery": "^1.4.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.14", + "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^3.1.0", + "regexpp": "^3.2.0", "semver": "^7.2.1", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -6433,53 +6361,52 @@ "eslint": "bin/eslint.js" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-config-prettier": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz", - "integrity": "sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", + "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", "dev": true, - "dependencies": { - "get-stdin": "^6.0.0" - }, + "license": "MIT", "bin": { - "eslint-config-prettier-check": "bin/cli.js" + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", - "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, "dependencies": { - "debug": "^2.6.9", - "resolve": "^1.13.1" + "debug": "^3.2.7", + "resolve": "^1.20.0" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, - "node_modules/eslint-import-resolver-node/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, "node_modules/eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", + "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", "dev": true, "dependencies": { - "debug": "^2.6.9", + "debug": "^3.2.7", + "find-up": "^2.1.0", "pkg-dir": "^2.0.0" }, "engines": { @@ -6487,76 +6414,12 @@ } }, "node_modules/eslint-module-utils/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-module-utils/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/eslint-module-utils/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" + "ms": "^2.1.1" } }, "node_modules/eslint-module-utils/node_modules/pkg-dir": { @@ -6572,26 +6435,30 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.20.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz", - "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==", + "version": "2.25.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", + "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", "dev": true, "dependencies": { - "array-includes": "^3.0.3", - "array.prototype.flat": "^1.2.1", - "contains-path": "^0.1.0", + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.4.1", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.1", "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", "minimatch": "^3.0.4", - "object.values": "^1.1.0", - "read-pkg-up": "^2.0.0", - "resolve": "^1.12.0" + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.11.0" }, "engines": { "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, "node_modules/eslint-plugin-import/node_modules/debug": { @@ -6604,56 +6471,15 @@ } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "esutils": "^2.0.2" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, "node_modules/eslint-plugin-import/node_modules/ms": { @@ -6662,99 +6488,6 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "node_modules/eslint-plugin-import/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "dependencies": { - "pify": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "dependencies": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/eslint-plugin-no-null": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/eslint-plugin-no-null/-/eslint-plugin-no-null-1.0.2.tgz", @@ -6765,18 +6498,22 @@ } }, "node_modules/eslint-plugin-prefer-arrow": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.1.tgz", - "integrity": "sha512-CPAvdTGG0YbFAJrUKdRBrOJ0X1I7jTtF5VIM4m2Bw1/A2jrhfUeUAcPy4pAEB5DNaUuDqc59f3pKTeiVeamS1A==", - "dev": true + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz", + "integrity": "sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=2.0.0" + } }, "node_modules/eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "dependencies": { - "esrecurse": "^4.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" }, "engines": { @@ -6784,30 +6521,45 @@ } }, "node_modules/eslint-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz", - "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, "engines": { - "node": ">=6" + "node": ">=10" } }, "node_modules/eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", "dev": true, "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/eslint/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { "node": ">=8" @@ -6826,6 +6578,12 @@ "node": ">=8" } }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "node_modules/eslint/node_modules/chalk": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", @@ -6857,25 +6615,65 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/eslint/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-6.0.0.tgz", + "integrity": "sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" } }, "node_modules/eslint/node_modules/globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", "dev": true, "dependencies": { - "type-fest": "^0.8.1" + "type-fest": "^0.20.2" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/has-flag": { @@ -6887,6 +6685,18 @@ "node": ">=8" } }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/eslint/node_modules/semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", @@ -6900,26 +6710,17 @@ } }, "node_modules/eslint/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/eslint/node_modules/strip-json-comments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", - "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/eslint/node_modules/supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", @@ -6932,18 +6733,42 @@ "node": ">=8" } }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/espree": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.0.0.tgz", - "integrity": "sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.0.0.tgz", + "integrity": "sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ==", "dev": true, "dependencies": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" + "acorn": "^8.5.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/espree/node_modules/acorn": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", + "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" } }, "node_modules/esprima": { @@ -6960,9 +6785,9 @@ } }, "node_modules/esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -6972,26 +6797,35 @@ } }, "node_modules/esquery/node_modules/estraverse": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", - "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { "node": ">=4.0" } }, "node_modules/esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "dependencies": { - "estraverse": "^4.1.0" + "estraverse": "^5.2.0" }, "engines": { "node": ">=4.0" } }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, "node_modules/estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", @@ -7016,6 +6850,15 @@ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, "node_modules/evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", @@ -7107,29 +6950,6 @@ "@types/yauzl": "^2.9.1" } }, - "node_modules/extract-zip/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/extract-zip/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -7140,9 +6960,9 @@ ] }, "node_modules/fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "node_modules/fast-glob": { @@ -7210,15 +7030,15 @@ } }, "node_modules/file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "dependencies": { - "flat-cache": "^2.0.1" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">=4" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/file-size": { @@ -7258,15 +7078,15 @@ } }, "node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "dependencies": { - "locate-path": "^3.0.0" + "locate-path": "^2.0.0" }, "engines": { - "node": ">=6" + "node": ">=4" } }, "node_modules/find-versions": { @@ -7282,53 +7102,37 @@ } }, "node_modules/flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, - "dependencies": { - "is-buffer": "~2.0.3" - }, "bin": { "flat": "cli.js" } }, "node_modules/flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "dependencies": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=4" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", "dev": true }, "node_modules/follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", - "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", + "version": "1.14.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz", + "integrity": "sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==", "funding": [ { "type": "individual", @@ -7344,6 +7148,12 @@ } } }, + "node_modules/foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, "node_modules/foreground-child": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", @@ -7431,6 +7241,20 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -7559,6 +7383,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/get-pkg-repo": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.1.2.tgz", @@ -7738,15 +7571,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -7762,6 +7586,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -7889,9 +7729,9 @@ } }, "node_modules/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -7903,6 +7743,9 @@ }, "engines": { "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/glob-parent": { @@ -8065,6 +7908,15 @@ "node": ">=0.10.0" } }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -8086,6 +7938,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", @@ -8154,15 +8021,15 @@ "dev": true }, "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", "dev": true, "dependencies": { - "whatwg-encoding": "^1.0.5" + "whatwg-encoding": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/html-escaper": { @@ -8200,29 +8067,6 @@ "node": ">= 6" } }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -8255,30 +8099,7 @@ }, "engines": { "node": ">= 6" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + } }, "node_modules/human-signals": { "version": "2.1.0", @@ -8639,12 +8460,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/inquirer/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, "node_modules/inquirer/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -8702,9 +8517,9 @@ } }, "node_modules/insert-module-globals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", - "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", + "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", "dev": true, "dependencies": { "acorn-node": "^1.5.2", @@ -8728,13 +8543,18 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, "engines": { - "node": ">= 0.10" + "node": ">= 0.4" } }, "node_modules/ip": { @@ -8743,13 +8563,20 @@ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", "dev": true }, - "node_modules/ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-arrayish": { @@ -8758,22 +8585,91 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-blob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-blob/-/is-blob-2.1.0.tgz", + "integrity": "sha512-SZ/fTft5eUhQM6oF/ZaASFDEdbFVe89Imltn9uZr03wdKMcWNVYSMjQPFtg05QuNkt5l5c135ElvXEQG0rk4tw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "engines": { "node": ">=4" } }, "node_modules/is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-ci": { @@ -8789,9 +8685,9 @@ } }, "node_modules/is-core-module": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", - "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -8801,12 +8697,18 @@ } }, "node_modules/is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-extglob": { @@ -8833,10 +8735,25 @@ "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", "dev": true }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { "is-extglob": "^2.1.1" @@ -8851,6 +8768,18 @@ "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", "dev": true }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -8860,6 +8789,21 @@ "node": ">=0.12.0" } }, + "node_modules/is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -8888,21 +8832,34 @@ } }, "node_modules/is-potential-custom-element-name": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", - "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, "node_modules/is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "dependencies": { - "has": "^1.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-ssh": { @@ -8927,24 +8884,33 @@ } }, "node_modules/is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "dependencies": { - "has-symbols": "^1.0.0" + "has-symbols": "^1.0.2" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-text-path": { @@ -8959,12 +8925,55 @@ "node": ">=0.10.0" } }, + "node_modules/is-typed-array": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", + "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -9134,15 +9143,6 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/istanbul-lib-source-maps/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -9202,74 +9202,175 @@ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "node_modules/jsdom": { + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-18.0.1.tgz", + "integrity": "sha512-mgVzrYP4IJiJKVqXkAdBn+jg+nQgPusBxTJulz3m1Y/1RIrkk8aDoNaQE5BNbHwe72WwiwE7k3Av2THXDpvzPQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.5.0", + "acorn-globals": "^6.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.1", + "decimal.js": "^10.3.1", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^3.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^10.0.0", + "ws": "^8.2.3", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom-global": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsdom-global/-/jsdom-global-3.0.2.tgz", + "integrity": "sha1-a9KZwTsMRiay2iwDk81DhdYGrLk=", + "dev": true + }, + "node_modules/jsdom/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/jsdom/node_modules/acorn": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", + "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsdom/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jsdom/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jsdom/node_modules/tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=6" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "node_modules/jsdom": { - "version": "16.4.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz", - "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==", + "node_modules/jsdom/node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", "dev": true, "dependencies": { - "abab": "^2.0.3", - "acorn": "^7.1.1", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.2.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.0", - "domexception": "^2.0.1", - "escodegen": "^1.14.1", - "html-encoding-sniffer": "^2.0.1", - "is-potential-custom-element-name": "^1.0.0", - "nwsapi": "^2.2.0", - "parse5": "5.1.1", - "request": "^2.88.2", - "request-promise-native": "^1.0.8", - "saxes": "^5.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^3.0.1", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0", - "ws": "^7.2.3", - "xml-name-validator": "^3.0.0" + "punycode": "^2.1.1" }, "engines": { - "node": ">=10" + "node": ">=12" } }, - "node_modules/jsdom-global": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsdom-global/-/jsdom-global-3.0.2.tgz", - "integrity": "sha1-a9KZwTsMRiay2iwDk81DhdYGrLk=", - "dev": true + "node_modules/jsdom/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } }, - "node_modules/jsdom/node_modules/tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "node_modules/jsdom/node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/jsdom/node_modules/whatwg-url": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", + "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", "dev": true, "dependencies": { - "ip-regex": "^2.1.0", - "psl": "^1.1.28", - "punycode": "^2.1.1" + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" }, "engines": { - "node": ">=6" + "node": ">=12" } }, "node_modules/jsesc": { @@ -9308,15 +9409,6 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "node_modules/json-stable-stringify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", - "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", - "dev": true, - "dependencies": { - "jsonify": "~0.0.0" - } - }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -9350,6 +9442,12 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, + "node_modules/jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -9362,12 +9460,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -9409,9 +9501,9 @@ } }, "node_modules/just-extend": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.1.0.tgz", - "integrity": "sha512-ApcjaOdVTJ7y4r08xI5wIqpvwS48Q0PBG4DJROcEkH1f8MdAiNFyFxz3xoL0LWAVwjrwPYZdVHHxhRHcx/uGLA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", "dev": true }, "node_modules/kind-of": { @@ -9708,22 +9800,22 @@ } }, "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "dependencies": { - "p-locate": "^3.0.0", + "p-locate": "^2.0.0", "path-exists": "^3.0.0" }, "engines": { - "node": ">=6" + "node": ">=4" } }, "node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "node_modules/lodash._reinterpolate": { @@ -9750,6 +9842,12 @@ "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", "dev": true }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "node_modules/lodash.template": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", @@ -9770,12 +9868,86 @@ } }, "node_modules/log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "chalk": "^2.4.2" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" @@ -9868,15 +10040,15 @@ } }, "node_modules/marked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.0.1.tgz", - "integrity": "sha512-5+/fKgMv2hARmMW7DOpykr2iLhl0NgjyELk5yn92iE7z8Se1IS9n3UsFm86hFXIkvMBmVxki8+ckcpjBeyo/hw==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/marked/-/marked-3.0.8.tgz", + "integrity": "sha512-0gVrAjo5m0VZSJb4rpL59K1unJAMb/hm8HRXqasD8VeC8m91ytDPMritgFSlKonfdt+rRYYpP/JfLxgIX8yoSw==", "dev": true, "bin": { "marked": "bin/marked" }, "engines": { - "node": ">= 8.16.2" + "node": ">= 12" } }, "node_modules/md5.js": { @@ -10091,15 +10263,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/meow/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -10414,137 +10577,179 @@ } }, "node_modules/mocha": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.2.tgz", - "integrity": "sha512-o96kdRKMKI3E8U0bjnfqW4QMk12MwZ4mhdBTf+B5a1q9+aq2HRnj+3ZdJu0B/ZhJeK78MgYuv6L8d/rA5AeBJA==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz", + "integrity": "sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-colors": "3.2.3", + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", - "chokidar": "3.3.0", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", + "chokidar": "3.5.2", + "debug": "4.3.2", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.1.7", "growl": "1.10.5", "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "3.0.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", "minimatch": "3.0.4", - "mkdirp": "0.5.5", - "ms": "2.1.1", - "node-environment-flags": "1.0.6", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.3.2", - "yargs-parser": "13.1.2", - "yargs-unparser": "1.6.0" + "ms": "2.1.3", + "nanoid": "3.1.25", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "workerpool": "6.1.5", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" }, "bin": { "_mocha": "bin/_mocha", "mocha": "bin/mocha" }, "engines": { - "node": ">= 8.10.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" } }, - "node_modules/mocha/node_modules/anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "node_modules/mocha/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, "engines": { - "node": ">= 8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mocha/node_modules/binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "node_modules/mocha/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mocha/node_modules/chokidar": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", - "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "node_modules/mocha/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dev": true, "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.2.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">= 8.10.0" + "node": "*" }, - "optionalDependencies": { - "fsevents": "~2.1.1" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mocha/node_modules/fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "node_modules/mocha/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/mocha/node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/mocha/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { - "binary-extensions": "^2.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mocha/node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "node_modules/mocha/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/mocha/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "node_modules/mocha/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { - "minimist": "^1.2.5" + "p-limit": "^3.0.2" }, - "bin": { - "mkdirp": "bin/cmd.js" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mocha/node_modules/readdirp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", - "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "node_modules/mocha/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { - "picomatch": "^2.0.4" + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" }, "engines": { "node": ">= 8" @@ -10560,12 +10765,12 @@ } }, "node_modules/module-deps": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.2.tgz", - "integrity": "sha512-a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", + "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", "dev": true, "dependencies": { - "browser-resolve": "^1.7.0", + "browser-resolve": "^2.0.0", "cached-path-relative": "^1.0.2", "concat-stream": "~1.6.0", "defined": "^1.0.0", @@ -10598,9 +10803,9 @@ } }, "node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, "node_modules/multimatch": { @@ -10625,6 +10830,18 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "node_modules/nanoid": { + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", + "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -10647,50 +10864,50 @@ "dev": true }, "node_modules/nise": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/nise/-/nise-4.0.4.tgz", - "integrity": "sha512-bTTRUNlemx6deJa+ZyoCUTRvH3liK5+N6VQZ4NIw90AgDXY6iPnsqplNFf6STcj+ePk0H/xqxnP75Lr0J0Fq3A==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", + "integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==", "dev": true, "dependencies": { "@sinonjs/commons": "^1.7.0", - "@sinonjs/fake-timers": "^6.0.0", + "@sinonjs/fake-timers": "^7.0.4", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" } }, - "node_modules/nise/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "node_modules/nise/node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "node_modules/node-fetch": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", + "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", "dev": true, "dependencies": { - "isarray": "0.0.1" + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" } }, - "node_modules/node-environment-flags": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", - "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", - "dev": true, - "dependencies": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" - } + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true }, - "node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "dev": true + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", "dev": true, - "engines": { - "node": "4.x || >=6.0.0" + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, "node_modules/node-gyp": { @@ -10727,26 +10944,6 @@ "minipass": "^2.6.0" } }, - "node_modules/node-gyp/node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/node-gyp/node_modules/minipass": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", @@ -10977,26 +11174,6 @@ "node": ">=10" } }, - "node_modules/npm-packlist/node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/npm-pick-manifest": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", @@ -11083,10 +11260,11 @@ "dev": true }, "node_modules/nyc": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.1.tgz", - "integrity": "sha512-n0MBXYBYRqa67IVt62qW1r/d9UH/Qtr7SF1w/nQLJ9KxvWF6b2xCHImRAixHN9tnMMYHC2P14uo6KddNGwMgGg==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", @@ -11096,6 +11274,7 @@ "find-cache-dir": "^3.2.0", "find-up": "^4.1.0", "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", "glob": "^7.1.6", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-hook": "^3.0.0", @@ -11173,12 +11352,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/nyc/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, "node_modules/nyc/node_modules/find-cache-dir": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", @@ -11206,23 +11379,6 @@ "node": ">=8" } }, - "node_modules/nyc/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, "node_modules/nyc/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -11398,18 +11554,21 @@ } }, "node_modules/object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, "dependencies": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.getownpropertydescriptors": { @@ -11426,101 +11585,20 @@ } }, "node_modules/object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values/node_modules/es-abstract": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0.tgz", - "integrity": "sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values/node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values/node_modules/is-callable": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values/node_modules/is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values/node_modules/string.prototype.trimleft": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", - "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "dev": true, "dependencies": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "es-abstract": "^1.19.1" }, "engines": { "node": ">= 0.4" - } - }, - "node_modules/object.values/node_modules/string.prototype.trimright": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", - "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" }, - "engines": { - "node": ">= 0.4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/omggif": { @@ -11671,15 +11749,36 @@ } }, "node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "dependencies": { - "p-limit": "^2.0.0" + "p-limit": "^1.1.0" }, "engines": { - "node": ">=6" + "node": ">=4" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" } }, "node_modules/p-map": { @@ -12004,9 +12103,9 @@ } }, "node_modules/parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true }, "node_modules/path": { @@ -12020,9 +12119,9 @@ } }, "node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "dev": true }, "node_modules/path-exists": { @@ -12067,6 +12166,21 @@ "node": ">= 0.8.0" } }, + "node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-to-regexp/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -12077,9 +12191,9 @@ } }, "node_modules/pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, "engines": { "node": "*" @@ -12241,9 +12355,9 @@ } }, "node_modules/prettier": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz", - "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz", + "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -12253,43 +12367,96 @@ } }, "node_modules/pretty-quick": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-2.0.1.tgz", - "integrity": "sha512-y7bJt77XadjUr+P1uKqZxFWLddvj3SKY6EU4BuQtMxmmEFSMpbN132pUWdSG1g1mtUfO0noBvn7wBf0BVeomHg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-3.1.1.tgz", + "integrity": "sha512-ZYLGiMoV2jcaas3vTJrLvKAYsxDoXQBUn8OSTxkl67Fyov9lyXivJTl0+2WVh+y6EovGcw7Lm5ThYpH+Sh3XxQ==", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^2.4.2", - "execa": "^2.1.0", + "chalk": "^3.0.0", + "execa": "^4.0.0", "find-up": "^4.1.0", "ignore": "^5.1.4", - "mri": "^1.1.4", + "mri": "^1.1.5", "multimatch": "^4.0.0" }, "bin": { "pretty-quick": "bin/pretty-quick.js" }, + "engines": { + "node": ">=10.13" + }, + "peerDependencies": { + "prettier": ">=2.0.0" + } + }, + "node_modules/pretty-quick/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-quick/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { "node": ">=8" } }, + "node_modules/pretty-quick/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/pretty-quick/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/pretty-quick/node_modules/execa": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz", - "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "dependencies": { "cross-spawn": "^7.0.0", "get-stream": "^5.0.0", + "human-signals": "^1.1.1", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^3.0.0", + "npm-run-path": "^4.0.0", "onetime": "^5.1.0", - "p-finally": "^2.0.0", "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" }, "engines": { - "node": "^8.12.0 || >=9.7.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "node_modules/pretty-quick/node_modules/find-up": { @@ -12305,6 +12472,24 @@ "node": ">=8" } }, + "node_modules/pretty-quick/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-quick/node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "engines": { + "node": ">=8.12.0" + } + }, "node_modules/pretty-quick/node_modules/ignore": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", @@ -12326,27 +12511,6 @@ "node": ">=8" } }, - "node_modules/pretty-quick/node_modules/npm-run-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", - "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pretty-quick/node_modules/p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/pretty-quick/node_modules/p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", @@ -12368,6 +12532,18 @@ "node": ">=8" } }, + "node_modules/pretty-quick/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -12496,24 +12672,25 @@ } }, "node_modules/puppeteer": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-10.0.0.tgz", - "integrity": "sha512-AxHvCb9IWmmP3gMW+epxdj92Gglii+6Z4sb+W+zc2hTTu10HF0yg6hGXot5O74uYkVqG3lfDRLfnRpi6WOwi5A==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-11.0.0.tgz", + "integrity": "sha512-6rPFqN1ABjn4shgOICGDBITTRV09EjXVqhDERBDKwCLz0UyBxeeBH6Ay0vQUJ84VACmlxwzOIzVEJXThcF3aNg==", "dev": true, "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { - "debug": "4.3.1", - "devtools-protocol": "0.0.883894", + "debug": "4.3.2", + "devtools-protocol": "0.0.901419", "extract-zip": "2.0.1", "https-proxy-agent": "5.0.0", - "node-fetch": "2.6.1", + "node-fetch": "2.6.5", "pkg-dir": "4.2.0", - "progress": "2.0.1", + "progress": "2.0.3", "proxy-from-env": "1.1.0", "rimraf": "3.0.2", - "tar-fs": "2.0.0", - "unbzip2-stream": "1.3.3", - "ws": "7.4.6" + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.2.3" }, "engines": { "node": ">=10.18.1" @@ -12529,38 +12706,6 @@ "path": "^0.12.7" } }, - "node_modules/puppeteer/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/puppeteer/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/puppeteer/node_modules/progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", - "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -12823,64 +12968,6 @@ "node": ">=4" } }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/read-pkg/node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -12963,16 +13050,16 @@ "once": "^1.3.0" } }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "dependencies": { - "resolve": "^1.1.6" + "picomatch": "^2.2.1" }, "engines": { - "node": ">= 0.10" + "node": ">=8.10.0" } }, "node_modules/redent": { @@ -12995,12 +13082,15 @@ "dev": true }, "node_modules/regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, "node_modules/release-zalgo": { @@ -13046,38 +13136,6 @@ "node": ">= 6" } }, - "node_modules/request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", - "dev": true, - "dependencies": { - "lodash": "^4.17.19" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/request-promise-core/node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, - "node_modules/request-promise-native": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", - "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "dev": true, - "dependencies": { - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - }, - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/request/node_modules/qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", @@ -13311,6 +13369,15 @@ "node": ">=6" } }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -13341,16 +13408,6 @@ "node": ">=8" } }, - "node_modules/shasum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", - "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", - "dev": true, - "dependencies": { - "json-stable-stringify": "~0.0.0", - "sha.js": "~2.4.4" - } - }, "node_modules/shasum-object": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", @@ -13366,31 +13423,15 @@ "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", "dev": true }, - "node_modules/shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/shiki": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.2.tgz", - "integrity": "sha512-BjUCxVbxMnvjs8jC4b+BQ808vwjJ9Q8NtLqPwXShZ307HdXiDFYP968ORSVfaTNNSWYDBYdMnVKJ0fYNsoZUBA==", + "version": "0.9.12", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.12.tgz", + "integrity": "sha512-VXcROdldv0/Qu0w2XvzU4IrvTeBNs/Kj/FCmtcEXGz7Tic/veQzliJj6tEiAgoKianhQstpYmbPDStHU5Opqcw==", "dev": true, "dependencies": { + "jsonc-parser": "^3.0.0", "onigasm": "^2.2.5", - "vscode-textmate": "^5.2.0" + "vscode-textmate": "5.2.0" } }, "node_modules/side-channel": { @@ -13414,33 +13455,51 @@ "dev": true }, "node_modules/simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", - "dev": true + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/sinon": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.0.3.tgz", - "integrity": "sha512-IKo9MIM111+smz9JGwLmw5U1075n1YXeAq8YeSFlndCLhAL5KGn6bLgu7b/4AYHTV/LcEMcRm2wU2YiL55/6Pg==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-12.0.1.tgz", + "integrity": "sha512-iGu29Xhym33ydkAT+aNQFBINakjq69kKO6ByPvTsm3yyIACfyQttRTP03aBP/I8GfhFmLzrnKwNNkr0ORb1udg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@sinonjs/commons": "^1.7.2", - "@sinonjs/fake-timers": "^6.0.1", - "@sinonjs/formatio": "^5.0.1", - "@sinonjs/samsam": "^5.1.0", - "diff": "^4.0.2", - "nise": "^4.0.4", - "supports-color": "^7.1.0" + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": "^8.1.0", + "@sinonjs/samsam": "^6.0.2", + "diff": "^5.0.0", + "nise": "^5.1.0", + "supports-color": "^7.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" } }, - "node_modules/sinon/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "node_modules/sinon/node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", "dev": true, - "engines": { - "node": ">=0.3.1" + "dependencies": { + "@sinonjs/commons": "^1.7.0" } }, "node_modules/sinon/node_modules/has-flag": { @@ -13453,9 +13512,9 @@ } }, "node_modules/sinon/node_modules/supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" @@ -13473,20 +13532,6 @@ "node": ">=8" } }, - "node_modules/slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/slide": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", @@ -13534,29 +13579,6 @@ "node": ">= 6" } }, - "node_modules/socks-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socks-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/sonar-scanner": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/sonar-scanner/-/sonar-scanner-3.1.0.tgz", @@ -13599,25 +13621,6 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/spawn-wrap": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", @@ -13849,23 +13852,28 @@ "node": ">=0.10.0" } }, - "node_modules/stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" } - }, - "node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + }, + "node_modules/stream-browserify/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, "node_modules/stream-combiner2": { @@ -13926,219 +13934,29 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "node_modules/string.prototype.trimend/node_modules/es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.trimend/node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.trimend/node_modules/is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.trimend/node_modules/is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.trimend/node_modules/string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.trimend/node_modules/string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.trimleft": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", - "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.trimright": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", - "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" }, - "engines": { - "node": ">= 0.4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "node_modules/string.prototype.trimstart/node_modules/es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.trimstart/node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.trimstart/node_modules/is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.trimstart/node_modules/is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.trimstart/node_modules/string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.trimstart/node_modules/string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" }, - "engines": { - "node": ">= 0.4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/strip-ansi": { @@ -14184,12 +14002,15 @@ } }, "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/strong-log-transformer": { @@ -14225,15 +14046,27 @@ "dev": true }, "node_modules/supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-color/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" } }, "node_modules/symbol-tree": { @@ -14251,56 +14084,6 @@ "acorn-node": "^1.2.0" } }, - "node_modules/table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "dependencies": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/table/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/table/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/table/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/tar": { "version": "6.1.2", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.2.tgz", @@ -14319,15 +14102,15 @@ } }, "node_modules/tar-fs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", - "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "dev": true, "dependencies": { "chownr": "^1.1.1", - "mkdirp": "^0.5.1", + "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", - "tar-stream": "^2.0.0" + "tar-stream": "^2.1.4" } }, "node_modules/tar-stream": { @@ -14420,23 +14203,6 @@ "node": ">=8" } }, - "node_modules/test-exclude/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, "node_modules/text-extensions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", @@ -14556,29 +14322,70 @@ "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.10.0" + } + }, + "node_modules/ts-node": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.4.0.tgz", + "integrity": "sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "0.7.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/acorn": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", + "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" } }, - "node_modules/ts-node": { - "version": "8.10.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.1.tgz", - "integrity": "sha512-bdNz1L4ekHiJul6SHtZWs1ujEKERJnHs4HxN7rjTyyVOFf3HaJ6sLqe6aPG62XTzAB/63pKRh5jTSWL0D7bsvw==", + "node_modules/ts-node/node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true, - "dependencies": { - "arg": "^4.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, "engines": { - "node": ">=6.0.0" + "node": ">=0.4.0" } }, "node_modules/ts-node/node_modules/diff": { @@ -14590,17 +14397,43 @@ "node": ">=0.3.1" } }, + "node_modules/tsconfig-paths": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", + "integrity": "sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, "node_modules/tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/tslint": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.2.tgz", - "integrity": "sha512-UyNrLdK3E0fQG/xWNqAFAC5ugtFyPO4JJR1KyyfQAyzR8W0fTRrC91A8Wej4BntFzcvETdCSDa/4PnNYJQLYiA==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", "dev": true, + "license": "Apache-2.0", "dependencies": { "@babel/code-frame": "^7.0.0", "builtin-modules": "^1.1.1", @@ -14613,7 +14446,7 @@ "mkdirp": "^0.5.3", "resolve": "^1.3.2", "semver": "^5.3.0", - "tslib": "^1.10.0", + "tslib": "^1.13.0", "tsutils": "^2.29.0" }, "bin": { @@ -14621,6 +14454,9 @@ }, "engines": { "node": ">=4.8.0" + }, + "peerDependencies": { + "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" } }, "node_modules/tslint/node_modules/diff": { @@ -14660,15 +14496,18 @@ } }, "node_modules/tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "dependencies": { "tslib": "^1.8.1" }, "engines": { "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, "node_modules/tunnel-agent": { @@ -14735,37 +14574,26 @@ } }, "node_modules/typedoc": { - "version": "0.20.30", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.20.30.tgz", - "integrity": "sha512-A4L6JDShPFwZDt9qp7FBsEpW7C6rA5fRv6ywgBuxGxZnT2wuF5afbWzmrwqHR3Xw38V1H2L4v/VJ0S/llBwV6Q==", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.8.tgz", + "integrity": "sha512-92S+YzyhospdXN5rnkYUTgirdTYqNWY7NP9vco+IqQQoiSXzVSUsawVro+tMyEEsWUS7EMaJ2YOjB9uE0CBi6A==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "colors": "^1.4.0", - "fs-extra": "^9.1.0", - "handlebars": "^4.7.7", - "lodash": "^4.17.21", + "glob": "^7.2.0", "lunr": "^2.3.9", - "marked": "^2.0.1", - "minimatch": "^3.0.0", - "progress": "^2.0.3", - "shelljs": "^0.8.4", - "shiki": "^0.9.2", - "typedoc-default-themes": "^0.12.8" + "marked": "^3.0.8", + "minimatch": "^3.0.4", + "shiki": "^0.9.12" }, "bin": { "typedoc": "bin/typedoc" }, "engines": { - "node": ">= 10.8.0" - } - }, - "node_modules/typedoc-default-themes": { - "version": "0.12.8", - "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.8.tgz", - "integrity": "sha512-tyjyDTKy/JLnBSwvhoqd99VIjrP33SdOtwcMD32b+OqnrjZWe8HmZECbfBoacqoxjHd58gfeNw6wA7uvqWFa4w==", - "dev": true, - "engines": { - "node": ">= 8" + "node": ">= 12.10.0" + }, + "peerDependencies": { + "typescript": "4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x" } }, "node_modules/typedoc-plugin-internal-external": { @@ -14774,12 +14602,6 @@ "integrity": "sha512-xeh+NemurGr23cm1kf6Mec5TB0pCSllm3l3+hJg1ersl00xgC6klVpD1GBKqliGxnLo7blytZrnHsS4w/bzeOA==", "dev": true }, - "node_modules/typedoc/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, "node_modules/typescript": { "version": "4.4.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", @@ -14830,10 +14652,25 @@ "umd": "bin/cli.js" } }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/unbzip2-stream": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz", - "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", "dev": true, "dependencies": { "buffer": "^5.2.1", @@ -15033,15 +14870,15 @@ } }, "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", + "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", "dev": true, "dependencies": { - "xml-name-validator": "^3.0.0" + "xml-name-validator": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/wcwidth": { @@ -15063,19 +14900,37 @@ } }, "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "dependencies": { - "iconv-lite": "0.4.24" + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/whatwg-url": { "version": "8.7.0", @@ -15103,6 +14958,22 @@ "which": "bin/which" } }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -15115,6 +14986,26 @@ "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", "dev": true }, + "node_modules/which-typed-array": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", + "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", @@ -15139,73 +15030,112 @@ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, + "node_modules/workerpool": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", + "integrity": "sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==", + "dev": true + }, "node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "ansi-regex": "^4.1.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=6" + "node": ">=7.0.0" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "mkdirp": "^0.5.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, "node_modules/write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", @@ -15342,12 +15272,12 @@ } }, "node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", "dev": true, "engines": { - "node": ">=8.3.0" + "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", @@ -15394,10 +15324,13 @@ } }, "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/xml-parse-from-string": { "version": "1.0.1", @@ -15464,80 +15397,131 @@ } }, "node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" } }, "node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "engines": { + "node": ">=10" } }, "node_modules/yargs-unparser": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", - "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, "dependencies": { - "flat": "^4.1.0", - "lodash": "^4.17.15", - "yargs": "^13.3.0" + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" } }, "node_modules/yargs/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { - "node": ">=6" + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" } }, "node_modules/yargs/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/yargs/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=6" + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" } }, "node_modules/yauzl": { @@ -15559,13 +15543,25 @@ "node": ">=6" } }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "packages/beacon-core": { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.12", + "version": "0.0.1-beta.13", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.12", - "@airgap/beacon-utils": "^0.0.1-beta.12", + "@airgap/beacon-types": "^0.0.1-beta.13", + "@airgap/beacon-utils": "^0.0.1-beta.13", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15573,63 +15569,63 @@ }, "packages/beacon-dapp": { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.12", + "version": "0.0.1-beta.13", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.12", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.12", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.12", + "@airgap/beacon-core": "^0.0.1-beta.13", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.13", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.13", "qrcode-generator": "1.4.4" } }, "packages/beacon-protocol-kusama": { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.1-beta.12", + "version": "0.0.1-beta.13", "license": "ISC" }, "packages/beacon-protocol-tezos": { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.1-beta.12", + "version": "0.0.1-beta.13", "license": "ISC" }, "packages/beacon-transport-matrix": { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.12", + "version": "0.0.1-beta.13", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.12", - "@airgap/beacon-utils": "^0.0.1-beta.12", - "axios": "0.21.1" + "@airgap/beacon-core": "^0.0.1-beta.13", + "@airgap/beacon-utils": "^0.0.1-beta.13", + "axios": "0.24.0" } }, "packages/beacon-transport-postmessage": { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.12", + "version": "0.0.1-beta.13", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.12", - "@airgap/beacon-types": "^0.0.1-beta.12", - "@airgap/beacon-utils": "^0.0.1-beta.12", + "@airgap/beacon-core": "^0.0.1-beta.13", + "@airgap/beacon-types": "^0.0.1-beta.13", + "@airgap/beacon-utils": "^0.0.1-beta.13", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } }, "packages/beacon-types": { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.12", + "version": "0.0.1-beta.13", "license": "ISC", "dependencies": { - "@types/chrome": "0.0.115" + "@types/chrome": "0.0.163" } }, "packages/beacon-ui": { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.12", + "version": "0.0.1-beta.13", "license": "ISC" }, "packages/beacon-utils": { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.12", + "version": "0.0.1-beta.13", "license": "ISC", "dependencies": { "@types/libsodium-wrappers": "0.7.9", @@ -15639,12 +15635,12 @@ }, "packages/beacon-wallet": { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.12", + "version": "0.0.1-beta.13", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.12", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.12", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.12" + "@airgap/beacon-core": "^0.0.1-beta.13", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.13", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.13" } } }, @@ -15652,8 +15648,8 @@ "@airgap/beacon-core": { "version": "file:packages/beacon-core", "requires": { - "@airgap/beacon-types": "^0.0.1-beta.12", - "@airgap/beacon-utils": "^0.0.1-beta.12", + "@airgap/beacon-types": "^0.0.1-beta.13", + "@airgap/beacon-utils": "^0.0.1-beta.13", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15662,9 +15658,9 @@ "@airgap/beacon-dapp": { "version": "file:packages/beacon-dapp", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.12", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.12", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.12", + "@airgap/beacon-core": "^0.0.1-beta.13", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.13", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.13", "qrcode-generator": "1.4.4" } }, @@ -15677,17 +15673,17 @@ "@airgap/beacon-transport-matrix": { "version": "file:packages/beacon-transport-matrix", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.12", - "@airgap/beacon-utils": "^0.0.1-beta.12", - "axios": "0.21.1" + "@airgap/beacon-core": "^0.0.1-beta.13", + "@airgap/beacon-utils": "^0.0.1-beta.13", + "axios": "0.24.0" } }, "@airgap/beacon-transport-postmessage": { "version": "file:packages/beacon-transport-postmessage", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.12", - "@airgap/beacon-types": "^0.0.1-beta.12", - "@airgap/beacon-utils": "^0.0.1-beta.12", + "@airgap/beacon-core": "^0.0.1-beta.13", + "@airgap/beacon-types": "^0.0.1-beta.13", + "@airgap/beacon-utils": "^0.0.1-beta.13", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } @@ -15695,7 +15691,7 @@ "@airgap/beacon-types": { "version": "file:packages/beacon-types", "requires": { - "@types/chrome": "0.0.115" + "@types/chrome": "0.0.163" } }, "@airgap/beacon-ui": { @@ -15712,9 +15708,9 @@ "@airgap/beacon-wallet": { "version": "file:packages/beacon-wallet", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.12", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.12", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.12" + "@airgap/beacon-core": "^0.0.1-beta.13", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.13", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.13" } }, "@babel/code-frame": { @@ -15855,15 +15851,6 @@ "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } } } }, @@ -16124,15 +16111,6 @@ "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } } } }, @@ -16318,15 +16296,6 @@ "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } } } }, @@ -16341,6 +16310,87 @@ "js-tokens": "^4.0.0" } }, + "@cspotcode/source-map-consumer": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", + "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", + "dev": true + }, + "@cspotcode/source-map-support": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", + "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "dev": true, + "requires": { + "@cspotcode/source-map-consumer": "0.8.0" + } + }, + "@eslint/eslintrc": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz", + "integrity": "sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.0.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "globals": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", + "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, "@hutson/parse-repository-url": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", @@ -17144,119 +17194,6 @@ "dedent": "^0.7.0", "npmlog": "^4.1.2", "yargs": "^16.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - } } }, "@lerna/collect-uncommitted": { @@ -17422,12 +17359,6 @@ "requires": { "lru-cache": "^6.0.0" } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true } } }, @@ -18337,20 +18268,6 @@ "read-package-json-fast": "^2.0.1" }, "dependencies": { - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, "node-gyp": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", @@ -18529,37 +18446,27 @@ } }, "@sinonjs/commons": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", - "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", "dev": true, "requires": { "type-detect": "4.0.8" } }, "@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0" } }, - "@sinonjs/formatio": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-5.0.1.tgz", - "integrity": "sha512-KaiQ5pBf1MpS09MuA0kp6KBQt2JUOQycqVG1NZXvzeaXe5LGFqAKueIS0bw4w0P9r7KuBSVdUk5QjXsUdu2CxQ==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1", - "@sinonjs/samsam": "^5.0.2" - } - }, "@sinonjs/samsam": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.1.0.tgz", - "integrity": "sha512-42nyaQOVunX5Pm6GRJobmzbS7iLI+fhERITnETXzzwDZh+TtDr/Au3yAvXVjFmZ4wEUaE4Y3NFZfKv0bV0cbtg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz", + "integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==", "dev": true, "requires": { "@sinonjs/commons": "^1.6.0", @@ -18579,6 +18486,30 @@ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true }, + "@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true + }, "@types/bs58check": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@types/bs58check/-/bs58check-2.1.0.tgz", @@ -18595,18 +18526,18 @@ "dev": true }, "@types/chai-as-promised": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.2.tgz", - "integrity": "sha512-PO2gcfR3Oxa+u0QvECLe1xKXOqYTzCmWf0FhLhjREoW3fPAVamjihL7v1MOVLJLsnAMdLcjkfrs01yvDMwVK4Q==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.4.tgz", + "integrity": "sha512-1y3L1cHePcIm5vXkh1DSGf/zQq5n5xDKG1fpCvf18+uOkpce0Z1ozNFPkyWsVswK7ntN1sZBw3oU6gmN+pDUcA==", "dev": true, "requires": { "@types/chai": "*" } }, "@types/chrome": { - "version": "0.0.115", - "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.115.tgz", - "integrity": "sha512-pNoYoYgGuI1/kiz53kjrXrKIjn2H8YWOI+vxVTOubX6arCHk/m/jInoyflKiP2qZHZf8+P+hh6d2y9tjaG4BPQ==", + "version": "0.0.163", + "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.163.tgz", + "integrity": "sha512-g+3E2tg/ukFsEgH+tB3a/b+J1VSvq/8gh2Jwih9eq+T3Idrz7ngj97u+/ya58Bfei2TQtPlRivj1FsCaSnukDA==", "requires": { "@types/filesystem": "*", "@types/har-format": "*" @@ -18618,12 +18549,6 @@ "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, - "@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", - "dev": true - }, "@types/filesystem": { "version": "0.0.32", "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.32.tgz", @@ -18643,9 +18568,15 @@ "integrity": "sha512-/TPzUG0tJn5x1TUcVLlDx2LqbE58hyOzDVAc9kf8SpOEmguHjU6bKUyfqb211AdqLOmU/SNyXvLKPNP5qTlfRw==" }, "@types/json-schema": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", - "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==", + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, "@types/libsodium-wrappers": { @@ -18666,15 +18597,15 @@ "dev": true }, "@types/mocha": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-7.0.2.tgz", - "integrity": "sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.0.0.tgz", + "integrity": "sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA==", "dev": true }, "@types/node": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.1.tgz", - "integrity": "sha512-FAYBGwC+W6F9+huFIDtn43cpy7+SzG+atzRiTfdp3inUKL2hXnd4rG8hylJLIh4+hqrQy1P17kvJByE/z825hA==", + "version": "16.11.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.7.tgz", + "integrity": "sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==", "dev": true }, "@types/normalize-package-data": { @@ -18690,20 +18621,14 @@ "dev": true }, "@types/sinon": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-9.0.5.tgz", - "integrity": "sha512-4CnkGdM/5/FXDGqL32JQ1ttVrGvhOoesLLF7VnTh4KdjK5N5VQOtxaylFqqTjnHx55MnD9O02Nbk5c1ELC8wlQ==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.6.tgz", + "integrity": "sha512-6EF+wzMWvBNeGrfP3Nx60hhx+FfwSg1JJBLAAP/IdIUq0EYkqCYf70VT3PhuhPX9eLD+Dp+lNdpb/ZeHG8Yezg==", "dev": true, "requires": { - "@types/sinonjs__fake-timers": "*" + "@sinonjs/fake-timers": "^7.1.0" } }, - "@types/sinonjs__fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz", - "integrity": "sha512-yYezQwGWty8ziyYLdZjwxyMb0CZR49h8JALHGrxjQHWlqGgc8kLdHEgWrgL0uZ29DMvEVBDnHU2Wg36zKSIUtA==", - "dev": true - }, "@types/yauzl": { "version": "2.9.1", "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz", @@ -18715,101 +18640,136 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.33.0.tgz", - "integrity": "sha512-QV6P32Btu1sCI/kTqjTNI/8OpCYyvlGjW5vD8MpTIg+HGE5S88HtT1G+880M4bXlvXj/NjsJJG0aGcVh0DdbeQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.3.1.tgz", + "integrity": "sha512-cFImaoIr5Ojj358xI/SDhjog57OK2NqlpxwdcgyxDA3bJlZcJq5CPzUXtpD7CxI2Hm6ATU7w5fQnnkVnmwpHqw==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "2.33.0", + "@typescript-eslint/experimental-utils": "5.3.1", + "@typescript-eslint/scope-manager": "5.3.1", + "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "tsutils": "^3.17.1" + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "dependencies": { + "ignore": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", + "dev": true + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } } }, "@typescript-eslint/eslint-plugin-tslint": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-2.33.0.tgz", - "integrity": "sha512-DXy14tWbs4NVMv/1ADDLfh9jy8ZloZHTuIKEE1Ufs7OGvAu6Ft5Rw7G1RsgfykEENSqy32Mycj5Q6jxN7AXmNA==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-5.3.1.tgz", + "integrity": "sha512-cLCBGatLIt5eakTf29SReatgCZapYBhjrEEEguts8yZvuIG7wQQMbMFW2IONCY95Id8SFMNBuAO0FOp0OMJ48w==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "5.3.1", + "lodash": "^4.17.21" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.3.1.tgz", + "integrity": "sha512-RgFn5asjZ5daUhbK5Sp0peq0SSMytqcrkNfU4pnDma2D8P3ElZ6JbYjY8IMSFfZAJ0f3x3tnO3vXHweYg0g59w==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "2.33.0", - "lodash": "^4.17.15" + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.3.1", + "@typescript-eslint/types": "5.3.1", + "@typescript-eslint/typescript-estree": "5.3.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" } }, - "@typescript-eslint/experimental-utils": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.33.0.tgz", - "integrity": "sha512-qzPM2AuxtMrRq78LwyZa8Qn6gcY8obkIrBs1ehqmQADwkYzTE1Pb4y2W+U3rE/iFkSWcWHG2LS6MJfj6SmHApg==", + "@typescript-eslint/parser": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.3.1.tgz", + "integrity": "sha512-TD+ONlx5c+Qhk21x9gsJAMRohWAUMavSOmJgv3JGy9dgPhuBd5Wok0lmMClZDyJNLLZK1JRKiATzCKZNUmoyfw==", "dev": true, "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.33.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" + "@typescript-eslint/scope-manager": "5.3.1", + "@typescript-eslint/types": "5.3.1", + "@typescript-eslint/typescript-estree": "5.3.1", + "debug": "^4.3.2" } }, - "@typescript-eslint/parser": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.33.0.tgz", - "integrity": "sha512-AUtmwUUhJoH6yrtxZMHbRUEMsC2G6z5NSxg9KsROOGqNXasM71I8P2NihtumlWTUCRld70vqIZ6Pm4E5PAziEA==", + "@typescript-eslint/scope-manager": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.3.1.tgz", + "integrity": "sha512-XksFVBgAq0Y9H40BDbuPOTUIp7dn4u8oOuhcgGq7EoDP50eqcafkMVGrypyVGvDYHzjhdUCUwuwVUK4JhkMAMg==", "dev": true, "requires": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.33.0", - "@typescript-eslint/typescript-estree": "2.33.0", - "eslint-visitor-keys": "^1.1.0" + "@typescript-eslint/types": "5.3.1", + "@typescript-eslint/visitor-keys": "5.3.1" } }, + "@typescript-eslint/types": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.3.1.tgz", + "integrity": "sha512-bG7HeBLolxKHtdHG54Uac750eXuQQPpdJfCYuw4ZI3bZ7+GgKClMWM8jExBtp7NSP4m8PmLRM8+lhzkYnSmSxQ==", + "dev": true + }, "@typescript-eslint/typescript-estree": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.33.0.tgz", - "integrity": "sha512-d8rY6/yUxb0+mEwTShCQF2zYQdLlqihukNfG9IUlLYz5y1CH6G/9XYbrxQLq3Z14RNvkCC6oe+OcFlyUpwUbkg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.3.1.tgz", + "integrity": "sha512-PwFbh/PKDVo/Wct6N3w+E4rLZxUDgsoII/GrWM2A62ETOzJd4M6s0Mu7w4CWsZraTbaC5UQI+dLeyOIFF1PquQ==", "dev": true, "requires": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "@typescript-eslint/types": "5.3.1", + "@typescript-eslint/visitor-keys": "5.3.1", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "lru-cache": "^6.0.0" } - }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true } } }, + "@typescript-eslint/visitor-keys": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.3.1.tgz", + "integrity": "sha512-3cHUzUuVTuNHx0Gjjt5pEHa87+lzyqOiHXy/Gz+SJOCW1mpw9xQHIIEwnKn+Thph1mgWyZ90nboOcSuZr/jTTQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.3.1", + "eslint-visitor-keys": "^3.0.0" + } + }, + "@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, "abab": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz", - "integrity": "sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", "dev": true }, "abbrev": { @@ -18835,10 +18795,11 @@ } }, "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", - "dev": true + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} }, "acorn-node": { "version": "1.8.2", @@ -18870,23 +18831,6 @@ "dev": true, "requires": { "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } } }, "agentkeepalive": { @@ -18898,23 +18842,6 @@ "debug": "^4.1.0", "depd": "^1.1.2", "humanize-ms": "^1.2.1" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } } }, "aggregate-error": { @@ -18928,21 +18855,21 @@ } }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, "ansi-escapes": { @@ -18975,6 +18902,16 @@ "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==", "dev": true }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, "append-transform": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", @@ -19034,83 +18971,16 @@ "dev": true }, "array-includes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", - "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "is-string": "^1.0.5" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - } - }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - } - } + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" } }, "array-union": { @@ -19120,82 +18990,14 @@ "dev": true }, "array.prototype.flat": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", - "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - } - }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - } - } + "es-abstract": "^1.19.0" } }, "arrify": { @@ -19277,12 +19079,6 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -19295,6 +19091,12 @@ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", @@ -19308,29 +19110,22 @@ "dev": true }, "axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", "requires": { - "follow-redirects": "^1.10.0" + "follow-redirects": "^1.14.4" } }, "axios-mock-adapter": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.18.2.tgz", - "integrity": "sha512-e5aTsPy2Viov22zNpFTlid76W1Scz82pXeEwwCXdtO85LROhHAF8pHF2qDhiyMONLxKyY3lQ+S4UCsKgrlx8Hw==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.20.0.tgz", + "integrity": "sha512-shZRhTjLP0WWdcvHKf3rH3iW9deb3UdKbdnKUoHmmsnBhVXN3sjPJM6ZvQ2r/ywgvBVQrMnjrSyQab60G1sr2w==", "dev": true, "requires": { - "fast-deep-equal": "^3.1.1", - "is-buffer": "^2.0.3" - }, - "dependencies": { - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - } + "fast-deep-equal": "^3.1.3", + "is-blob": "^2.1.0", + "is-buffer": "^2.0.5" } }, "balanced-match": { @@ -19368,6 +19163,12 @@ "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", "dev": true }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, "bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -19450,20 +19251,12 @@ "dev": true }, "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", + "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", "dev": true, "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } + "resolve": "^1.17.0" } }, "browser-stdout": { @@ -19473,14 +19266,14 @@ "dev": true }, "browserify": { - "version": "16.5.1", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.1.tgz", - "integrity": "sha512-EQX0h59Pp+0GtSRb5rL6OTfrttlzv+uyaUVlK6GX3w11SQ0jKPKyjC/54RhPR2ib2KmfcELM06e8FxcI5XNU2A==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", + "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", "dev": true, "requires": { "assert": "^1.4.0", "browser-pack": "^6.0.1", - "browser-resolve": "^1.11.0", + "browser-resolve": "^2.0.0", "browserify-zlib": "~0.2.0", "buffer": "~5.2.1", "cached-path-relative": "^1.0.0", @@ -19489,32 +19282,32 @@ "constants-browserify": "~1.0.0", "crypto-browserify": "^3.0.0", "defined": "^1.0.0", - "deps-sort": "^2.0.0", + "deps-sort": "^2.0.1", "domain-browser": "^1.2.0", "duplexer2": "~0.1.2", - "events": "^2.0.0", + "events": "^3.0.0", "glob": "^7.1.0", "has": "^1.0.0", "htmlescape": "^1.1.0", "https-browserify": "^1.0.0", "inherits": "~2.0.1", - "insert-module-globals": "^7.0.0", + "insert-module-globals": "^7.2.1", "JSONStream": "^1.0.3", "labeled-stream-splicer": "^2.0.0", "mkdirp-classic": "^0.5.2", - "module-deps": "^6.0.0", + "module-deps": "^6.2.3", "os-browserify": "~0.3.0", "parents": "^1.0.1", - "path-browserify": "~0.0.0", + "path-browserify": "^1.0.0", "process": "~0.11.0", "punycode": "^1.3.2", "querystring-es3": "~0.2.0", "read-only-stream": "^2.0.0", "readable-stream": "^2.0.2", "resolve": "^1.1.4", - "shasum": "^1.0.0", + "shasum-object": "^1.0.0", "shell-quote": "^1.6.1", - "stream-browserify": "^2.0.0", + "stream-browserify": "^3.0.0", "stream-http": "^3.0.0", "string_decoder": "^1.1.1", "subarg": "^1.0.0", @@ -19523,7 +19316,7 @@ "timers-browserify": "^1.0.1", "tty-browserify": "0.0.1", "url": "~0.11.0", - "util": "~0.10.1", + "util": "~0.12.0", "vm-browserify": "^1.0.0", "xtend": "^4.0.0" }, @@ -19538,12 +19331,6 @@ "ieee754": "^1.1.4" } }, - "events": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", - "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", - "dev": true - }, "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", @@ -19589,6 +19376,20 @@ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", "dev": true + }, + "util": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", + "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } } } }, @@ -19798,20 +19599,6 @@ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -19878,16 +19665,16 @@ "dev": true }, "chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", "dev": true, "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", - "pathval": "^1.1.0", + "pathval": "^1.1.1", "type-detect": "^4.0.5" } }, @@ -19934,6 +19721,22 @@ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, "chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", @@ -19977,40 +19780,46 @@ "dev": true }, "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.1" } } } @@ -20073,12 +19882,6 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, "columnify": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", @@ -20226,12 +20029,6 @@ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", "dev": true }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true - }, "conventional-changelog-angular": { "version": "5.0.12", "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz", @@ -20535,6 +20332,12 @@ "sha.js": "^2.4.8" } }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -20592,9 +20395,9 @@ } }, "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", "dev": true }, "cssstyle": { @@ -20636,14 +20439,41 @@ } }, "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.1.tgz", + "integrity": "sha512-Ds554NeT5Gennfoo9KN50Vh6tpgtvYEwraYjejXnyTpu1C7oXKxdFk75REooENHE8ndTVOJuv+BEs4/J/xcozw==", "dev": true, "requires": { "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^10.0.0" + }, + "dependencies": { + "tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true + }, + "whatwg-url": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", + "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", + "dev": true, + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + } } }, "dateformat": { @@ -20653,12 +20483,20 @@ "dev": true }, "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "debuglog": { @@ -20692,9 +20530,9 @@ } }, "decimal.js": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz", - "integrity": "sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw==", + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", "dev": true }, "decode-uri-component": { @@ -20826,20 +20664,12 @@ "acorn-node": "^1.6.1", "defined": "^1.0.0", "minimist": "^1.1.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - } } }, "devtools-protocol": { - "version": "0.0.883894", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.883894.tgz", - "integrity": "sha512-33idhm54QJzf3Q7QofMgCvIVSd2o9H3kQPWaKT/fhoZh+digc+WSiMhbkeG3iN79WY4Hwr9G05NpbhEVrsOYAg==", + "version": "0.0.901419", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.901419.tgz", + "integrity": "sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==", "dev": true }, "dezalgo": { @@ -20853,9 +20683,9 @@ } }, "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, "diffie-hellman": { @@ -20908,18 +20738,18 @@ "dev": true }, "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", "dev": true, "requires": { - "webidl-conversions": "^5.0.0" + "webidl-conversions": "^7.0.0" }, "dependencies": { "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "dev": true } } @@ -20982,9 +20812,9 @@ } }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "encoding": { @@ -21018,6 +20848,15 @@ "once": "^1.4.0" } }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, "env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", @@ -21046,27 +20885,37 @@ } }, "es-abstract": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz", - "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "dev": true, "requires": { - "es-to-primitive": "^1.2.0", + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "has": "^1.0.3", - "has-symbols": "^1.0.0", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-inspect": "^1.6.0", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", "object-keys": "^1.1.1", - "string.prototype.trimleft": "^2.1.0", - "string.prototype.trimright": "^2.1.0" + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" } }, "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { "is-callable": "^1.1.4", @@ -21093,18 +20942,24 @@ "dev": true }, "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", "dev": true, "requires": { "esprima": "^4.0.1", - "estraverse": "^4.2.0", + "estraverse": "^5.2.0", "esutils": "^2.0.2", "optionator": "^0.8.1", "source-map": "~0.6.1" }, "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -21154,53 +21009,55 @@ } }, "eslint": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.0.0.tgz", - "integrity": "sha512-qY1cwdOxMONHJfGqw52UOpZDeqXy8xmD0u8CT6jIstil72jkhURC704W8CFyTPDPllz4z4lu0Ql1+07PG/XdIg==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.2.0.tgz", + "integrity": "sha512-erw7XmM+CLxTOickrimJ1SiF55jiNlVSp2qqm0NuBWPtHYQCegD5ZMaW0c3i5ytPqL+SSLaCxdvQXFPLJn+ABw==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", + "@eslint/eslintrc": "^1.0.4", + "@humanwhocodes/config-array": "^0.6.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0", - "eslint-visitor-keys": "^1.1.0", - "espree": "^7.0.0", - "esquery": "^1.2.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^6.0.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", + "esquery": "^1.4.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.14", + "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^3.1.0", + "regexpp": "^3.2.0", "semver": "^7.2.1", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "ansi-styles": { @@ -21213,6 +21070,12 @@ "color-convert": "^2.0.1" } }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "chalk": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", @@ -21238,22 +21101,44 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint-scope": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-6.0.0.tgz", + "integrity": "sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==", "dev": true, "requires": { - "ms": "^2.1.1" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" } }, "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", "dev": true, "requires": { - "type-fest": "^0.8.1" + "type-fest": "^0.20.2" } }, "has-flag": { @@ -21262,6 +21147,15 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, "semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", @@ -21269,20 +21163,14 @@ "dev": true }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, - "strip-json-comments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", - "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", - "dev": true - }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", @@ -21291,113 +21179,63 @@ "requires": { "has-flag": "^4.0.0" } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true } } }, "eslint-config-prettier": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz", - "integrity": "sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", + "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", "dev": true, - "requires": { - "get-stdin": "^6.0.0" - } + "requires": {} }, "eslint-import-resolver-node": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", - "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" + "debug": "^3.2.7", + "resolve": "^1.20.0" }, "dependencies": { "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true } } }, "eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", + "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", "dev": true, "requires": { - "debug": "^2.6.9", + "debug": "^3.2.7", + "find-up": "^2.1.0", "pkg-dir": "^2.0.0" }, "dependencies": { "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "p-limit": "^1.1.0" + "ms": "^2.1.1" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, "pkg-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", @@ -21410,23 +21248,24 @@ } }, "eslint-plugin-import": { - "version": "2.20.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz", - "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==", + "version": "2.25.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", + "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", "dev": true, "requires": { - "array-includes": "^3.0.3", - "array.prototype.flat": "^1.2.1", - "contains-path": "^0.1.0", + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.4.1", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.1", "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", "minimatch": "^3.0.4", - "object.values": "^1.1.0", - "read-pkg-up": "^2.0.0", - "resolve": "^1.12.0" + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.11.0" }, "dependencies": { "debug": { @@ -21439,44 +21278,12 @@ } }, "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - }, - "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "esutils": "^2.0.2" } }, "ms": { @@ -21484,75 +21291,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } } } }, @@ -21563,45 +21301,62 @@ "dev": true }, "eslint-plugin-prefer-arrow": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.1.tgz", - "integrity": "sha512-CPAvdTGG0YbFAJrUKdRBrOJ0X1I7jTtF5VIM4m2Bw1/A2jrhfUeUAcPy4pAEB5DNaUuDqc59f3pKTeiVeamS1A==", - "dev": true + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz", + "integrity": "sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ==", + "dev": true, + "requires": {} }, "eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "esrecurse": "^4.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "eslint-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz", - "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } } }, "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", "dev": true }, "espree": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.0.0.tgz", - "integrity": "sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.0.0.tgz", + "integrity": "sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ==", "dev": true, "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" + "acorn": "^8.5.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.0.0" + }, + "dependencies": { + "acorn": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", + "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "dev": true + } } }, "esprima": { @@ -21611,29 +21366,37 @@ "dev": true }, "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { "estraverse": "^5.1.0" }, "dependencies": { "estraverse": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", - "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } }, "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, "estraverse": { @@ -21654,6 +21417,12 @@ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, "evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", @@ -21722,23 +21491,6 @@ "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } } }, "extsprintf": { @@ -21748,9 +21500,9 @@ "dev": true }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "fast-glob": { @@ -21812,12 +21564,12 @@ } }, "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "requires": { - "flat-cache": "^2.0.1" + "flat-cache": "^3.0.4" } }, "file-size": { @@ -21848,12 +21600,12 @@ "dev": true }, "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "^2.0.0" } }, "find-versions": { @@ -21866,46 +21618,37 @@ } }, "flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", - "dev": true, - "requires": { - "is-buffer": "~2.0.3" - } + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true }, "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "flatted": "^3.1.0", + "rimraf": "^3.0.2" } }, "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", "dev": true }, "follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", - "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==" + "version": "1.14.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz", + "integrity": "sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==" + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true }, "foreground-child": { "version": "2.0.0", @@ -21979,6 +21722,13 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -22085,6 +21835,12 @@ "has-symbols": "^1.0.1" } }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, "get-pkg-repo": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.1.2.tgz", @@ -22216,12 +21972,6 @@ "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", "dev": true }, - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true - }, "get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -22231,6 +21981,16 @@ "pump": "^3.0.0" } }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -22340,9 +22100,9 @@ } }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -22471,6 +22231,12 @@ } } }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -22483,6 +22249,15 @@ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "dev": true }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", @@ -22542,12 +22317,12 @@ "dev": true }, "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", "dev": true, "requires": { - "whatwg-encoding": "^1.0.5" + "whatwg-encoding": "^2.0.0" } }, "html-escaper": { @@ -22577,23 +22352,6 @@ "@tootallnate/once": "1", "agent-base": "6", "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } } }, "http-signature": { @@ -22621,23 +22379,6 @@ "requires": { "agent-base": "6", "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } } }, "human-signals": { @@ -22924,12 +22665,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -22974,9 +22709,9 @@ } }, "insert-module-globals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", - "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", + "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", "dev": true, "requires": { "acorn-node": "^1.5.2", @@ -22999,11 +22734,16 @@ } } }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } }, "ip": { "version": "1.1.5", @@ -23011,11 +22751,15 @@ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", "dev": true }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } }, "is-arrayish": { "version": "0.2.1", @@ -23023,16 +22767,50 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-blob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-blob/-/is-blob-2.1.0.tgz", + "integrity": "sha512-SZ/fTft5eUhQM6oF/ZaASFDEdbFVe89Imltn9uZr03wdKMcWNVYSMjQPFtg05QuNkt5l5c135ElvXEQG0rk4tw==", + "dev": true + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, "is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true }, "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true }, "is-ci": { @@ -23045,19 +22823,22 @@ } }, "is-core-module": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", - "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-extglob": { "version": "2.1.1", @@ -23077,10 +22858,19 @@ "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", "dev": true }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.1" @@ -23092,12 +22882,27 @@ "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", "dev": true }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -23117,20 +22922,27 @@ "dev": true }, "is-potential-custom-element-name": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", - "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "requires": { - "has": "^1.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true + }, "is-ssh": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.3.tgz", @@ -23147,18 +22959,21 @@ "dev": true }, "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "requires": { - "has-symbols": "^1.0.0" + "has-symbols": "^1.0.2" } }, "is-text-path": { @@ -23170,12 +22985,40 @@ "text-extensions": "^1.0.0" } }, + "is-typed-array": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", + "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0" + } + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -23312,15 +23155,6 @@ "source-map": "^0.6.1" }, "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -23389,49 +23223,115 @@ "dev": true }, "jsdom": { - "version": "16.4.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz", - "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==", + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-18.0.1.tgz", + "integrity": "sha512-mgVzrYP4IJiJKVqXkAdBn+jg+nQgPusBxTJulz3m1Y/1RIrkk8aDoNaQE5BNbHwe72WwiwE7k3Av2THXDpvzPQ==", "dev": true, "requires": { - "abab": "^2.0.3", - "acorn": "^7.1.1", + "abab": "^2.0.5", + "acorn": "^8.5.0", "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.2.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.0", - "domexception": "^2.0.1", - "escodegen": "^1.14.1", - "html-encoding-sniffer": "^2.0.1", - "is-potential-custom-element-name": "^1.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.1", + "decimal.js": "^10.3.1", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.0", - "parse5": "5.1.1", - "request": "^2.88.2", - "request-promise-native": "^1.0.8", - "saxes": "^5.0.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", "symbol-tree": "^3.2.4", - "tough-cookie": "^3.0.1", + "tough-cookie": "^4.0.0", "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0", - "ws": "^7.2.3", - "xml-name-validator": "^3.0.0" + "w3c-xmlserializer": "^3.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^10.0.0", + "ws": "^8.2.3", + "xml-name-validator": "^4.0.0" }, "dependencies": { + "@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true + }, + "acorn": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", + "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "dev": true + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "requires": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + } + }, "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dev": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + } + }, + "tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", "dev": true, "requires": { - "ip-regex": "^2.1.0", - "psl": "^1.1.28", "punycode": "^2.1.1" } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true + }, + "whatwg-url": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", + "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", + "dev": true, + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } } } }, @@ -23471,15 +23371,6 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "json-stable-stringify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", - "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", - "dev": true, - "requires": { - "jsonify": "~0.0.0" - } - }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -23509,6 +23400,12 @@ } } }, + "jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -23519,12 +23416,6 @@ "universalify": "^2.0.0" } }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -23554,9 +23445,9 @@ } }, "just-extend": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.1.0.tgz", - "integrity": "sha512-ApcjaOdVTJ7y4r08xI5wIqpvwS48Q0PBG4DJROcEkH1f8MdAiNFyFxz3xoL0LWAVwjrwPYZdVHHxhRHcx/uGLA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", "dev": true }, "kind-of": { @@ -23808,19 +23699,19 @@ } }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^3.0.0", + "p-locate": "^2.0.0", "path-exists": "^3.0.0" } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "lodash._reinterpolate": { @@ -23847,6 +23738,12 @@ "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", "dev": true }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "lodash.template": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", @@ -23867,12 +23764,64 @@ } }, "log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "requires": { - "chalk": "^2.4.2" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "lru-cache": { @@ -23943,9 +23892,9 @@ "dev": true }, "marked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.0.1.tgz", - "integrity": "sha512-5+/fKgMv2hARmMW7DOpykr2iLhl0NgjyELk5yn92iE7z8Se1IS9n3UsFm86hFXIkvMBmVxki8+ckcpjBeyo/hw==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/marked/-/marked-3.0.8.tgz", + "integrity": "sha512-0gVrAjo5m0VZSJb4rpL59K1unJAMb/hm8HRXqasD8VeC8m91ytDPMritgFSlKonfdt+rRYYpP/JfLxgIX8yoSw==", "dev": true }, "md5.js": { @@ -24109,12 +24058,6 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true } } }, @@ -24364,107 +24307,122 @@ } }, "mocha": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.2.tgz", - "integrity": "sha512-o96kdRKMKI3E8U0bjnfqW4QMk12MwZ4mhdBTf+B5a1q9+aq2HRnj+3ZdJu0B/ZhJeK78MgYuv6L8d/rA5AeBJA==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz", + "integrity": "sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw==", "dev": true, "requires": { - "ansi-colors": "3.2.3", + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", - "chokidar": "3.3.0", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", + "chokidar": "3.5.2", + "debug": "4.3.2", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.1.7", "growl": "1.10.5", "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "3.0.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", "minimatch": "3.0.4", - "mkdirp": "0.5.5", - "ms": "2.1.1", - "node-environment-flags": "1.0.6", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.3.2", - "yargs-parser": "13.1.2", - "yargs-unparser": "1.6.0" - }, - "dependencies": { - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "ms": "2.1.3", + "nanoid": "3.1.25", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "workerpool": "6.1.5", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" } }, - "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", - "dev": true - }, - "chokidar": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", - "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dev": true, "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.2.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "optional": true + "requires": { + "argparse": "^2.0.1" + } }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { - "binary-extensions": "^2.0.0" + "p-locate": "^5.0.0" } }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { - "minimist": "^1.2.5" + "p-limit": "^3.0.2" } }, - "readdirp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", - "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { - "picomatch": "^2.0.4" + "isexe": "^2.0.0" } } } @@ -24476,12 +24434,12 @@ "dev": true }, "module-deps": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.2.tgz", - "integrity": "sha512-a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", + "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", "dev": true, "requires": { - "browser-resolve": "^1.7.0", + "browser-resolve": "^2.0.0", "cached-path-relative": "^1.0.2", "concat-stream": "~1.6.0", "defined": "^1.0.0", @@ -24505,9 +24463,9 @@ "dev": true }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, "multimatch": { @@ -24529,6 +24487,12 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "nanoid": { + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", + "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", + "dev": true + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -24548,51 +24512,51 @@ "dev": true }, "nise": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/nise/-/nise-4.0.4.tgz", - "integrity": "sha512-bTTRUNlemx6deJa+ZyoCUTRvH3liK5+N6VQZ4NIw90AgDXY6iPnsqplNFf6STcj+ePk0H/xqxnP75Lr0J0Fq3A==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", + "integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0", - "@sinonjs/fake-timers": "^6.0.0", + "@sinonjs/fake-timers": "^7.0.4", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" + } + }, + "node-fetch": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", + "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", "dev": true }, - "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", "dev": true, "requires": { - "isarray": "0.0.1" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } } } }, - "node-environment-flags": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", - "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", - "dev": true, - "requires": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" - } - }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true - }, "node-gyp": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.1.tgz", @@ -24621,20 +24585,6 @@ "minipass": "^2.6.0" } }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, "minipass": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", @@ -24821,22 +24771,6 @@ "ignore-walk": "^3.0.3", "npm-bundled": "^1.1.1", "npm-normalize-package-bin": "^1.0.1" - }, - "dependencies": { - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } } }, "npm-pick-manifest": { @@ -24912,9 +24846,9 @@ "dev": true }, "nyc": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.1.tgz", - "integrity": "sha512-n0MBXYBYRqa67IVt62qW1r/d9UH/Qtr7SF1w/nQLJ9KxvWF6b2xCHImRAixHN9tnMMYHC2P14uo6KddNGwMgGg==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", "dev": true, "requires": { "@istanbuljs/load-nyc-config": "^1.0.0", @@ -24925,6 +24859,7 @@ "find-cache-dir": "^3.2.0", "find-up": "^4.1.0", "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", "glob": "^7.1.6", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-hook": "^3.0.0", @@ -24987,12 +24922,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, "find-cache-dir": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", @@ -25014,20 +24943,6 @@ "path-exists": "^4.0.0" } }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -25160,15 +25075,15 @@ "dev": true }, "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" } }, "object.getownpropertydescriptors": { @@ -25182,82 +25097,14 @@ } }, "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0.tgz", - "integrity": "sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "string.prototype.trimleft": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", - "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "string.prototype.trimright": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", - "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - } + "es-abstract": "^1.19.1" } }, "omggif": { @@ -25383,12 +25230,29 @@ } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "^1.1.0" + }, + "dependencies": { + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + } } }, "p-map": { @@ -25646,9 +25510,9 @@ } }, "parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true }, "path": { @@ -25662,9 +25526,9 @@ } }, "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "dev": true }, "path-exists": { @@ -25697,6 +25561,23 @@ "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", "dev": true }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "requires": { + "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + } + } + }, "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -25704,9 +25585,9 @@ "dev": true }, "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true }, "pbkdf2": { @@ -25828,38 +25709,72 @@ "dev": true }, "prettier": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz", - "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz", + "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==", "dev": true }, "pretty-quick": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-2.0.1.tgz", - "integrity": "sha512-y7bJt77XadjUr+P1uKqZxFWLddvj3SKY6EU4BuQtMxmmEFSMpbN132pUWdSG1g1mtUfO0noBvn7wBf0BVeomHg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-3.1.1.tgz", + "integrity": "sha512-ZYLGiMoV2jcaas3vTJrLvKAYsxDoXQBUn8OSTxkl67Fyov9lyXivJTl0+2WVh+y6EovGcw7Lm5ThYpH+Sh3XxQ==", "dev": true, "requires": { - "chalk": "^2.4.2", - "execa": "^2.1.0", + "chalk": "^3.0.0", + "execa": "^4.0.0", "find-up": "^4.1.0", "ignore": "^5.1.4", - "mri": "^1.1.4", + "mri": "^1.1.5", "multimatch": "^4.0.0" }, "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "execa": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz", - "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "requires": { "cross-spawn": "^7.0.0", "get-stream": "^5.0.0", + "human-signals": "^1.1.1", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^3.0.0", + "npm-run-path": "^4.0.0", "onetime": "^5.1.0", - "p-finally": "^2.0.0", "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" } @@ -25874,6 +25789,18 @@ "path-exists": "^4.0.0" } }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, "ignore": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", @@ -25889,21 +25816,6 @@ "p-locate": "^4.1.0" } }, - "npm-run-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", - "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", - "dev": true - }, "p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", @@ -25918,6 +25830,15 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -26036,46 +25957,23 @@ "dev": true }, "puppeteer": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-10.0.0.tgz", - "integrity": "sha512-AxHvCb9IWmmP3gMW+epxdj92Gglii+6Z4sb+W+zc2hTTu10HF0yg6hGXot5O74uYkVqG3lfDRLfnRpi6WOwi5A==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-11.0.0.tgz", + "integrity": "sha512-6rPFqN1ABjn4shgOICGDBITTRV09EjXVqhDERBDKwCLz0UyBxeeBH6Ay0vQUJ84VACmlxwzOIzVEJXThcF3aNg==", "dev": true, "requires": { - "debug": "4.3.1", - "devtools-protocol": "0.0.883894", + "debug": "4.3.2", + "devtools-protocol": "0.0.901419", "extract-zip": "2.0.1", "https-proxy-agent": "5.0.0", - "node-fetch": "2.6.1", + "node-fetch": "2.6.5", "pkg-dir": "4.2.0", - "progress": "2.0.1", + "progress": "2.0.3", "proxy-from-env": "1.1.0", "rimraf": "3.0.2", - "tar-fs": "2.0.0", - "unbzip2-stream": "1.3.3", - "ws": "7.4.6" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", - "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", - "dev": true - } + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.2.3" } }, "puppeteer-mass-screenshots": { @@ -26324,51 +26222,6 @@ "requires": { "find-up": "^2.0.0", "read-pkg": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - } } }, "readable-stream": { @@ -26406,13 +26259,13 @@ "once": "^1.3.0" } }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { - "resolve": "^1.1.6" + "picomatch": "^2.2.1" } }, "redent": { @@ -26432,9 +26285,9 @@ "dev": true }, "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, "release-zalgo": { @@ -26482,34 +26335,6 @@ } } }, - "request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", - "dev": true, - "requires": { - "lodash": "^4.17.19" - }, - "dependencies": { - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } - } - }, - "request-promise-native": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", - "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "dev": true, - "requires": { - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -26673,6 +26498,15 @@ "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", "dev": true }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -26697,16 +26531,6 @@ "kind-of": "^6.0.2" } }, - "shasum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", - "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", - "dev": true, - "requires": { - "json-stable-stringify": "~0.0.0", - "sha.js": "~2.4.4" - } - }, "shasum-object": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", @@ -26722,25 +26546,15 @@ "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", "dev": true }, - "shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", - "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, "shiki": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.2.tgz", - "integrity": "sha512-BjUCxVbxMnvjs8jC4b+BQ808vwjJ9Q8NtLqPwXShZ307HdXiDFYP968ORSVfaTNNSWYDBYdMnVKJ0fYNsoZUBA==", + "version": "0.9.12", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.12.tgz", + "integrity": "sha512-VXcROdldv0/Qu0w2XvzU4IrvTeBNs/Kj/FCmtcEXGz7Tic/veQzliJj6tEiAgoKianhQstpYmbPDStHU5Opqcw==", "dev": true, "requires": { + "jsonc-parser": "^3.0.0", "onigasm": "^2.2.5", - "vscode-textmate": "^5.2.0" + "vscode-textmate": "5.2.0" } }, "side-channel": { @@ -26761,31 +26575,33 @@ "dev": true }, "simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", "dev": true }, "sinon": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.0.3.tgz", - "integrity": "sha512-IKo9MIM111+smz9JGwLmw5U1075n1YXeAq8YeSFlndCLhAL5KGn6bLgu7b/4AYHTV/LcEMcRm2wU2YiL55/6Pg==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-12.0.1.tgz", + "integrity": "sha512-iGu29Xhym33ydkAT+aNQFBINakjq69kKO6ByPvTsm3yyIACfyQttRTP03aBP/I8GfhFmLzrnKwNNkr0ORb1udg==", "dev": true, "requires": { - "@sinonjs/commons": "^1.7.2", - "@sinonjs/fake-timers": "^6.0.1", - "@sinonjs/formatio": "^5.0.1", - "@sinonjs/samsam": "^5.1.0", - "diff": "^4.0.2", - "nise": "^4.0.4", - "supports-color": "^7.1.0" + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": "^8.1.0", + "@sinonjs/samsam": "^6.0.2", + "diff": "^5.0.0", + "nise": "^5.1.0", + "supports-color": "^7.2.0" }, "dependencies": { - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true + "@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } }, "has-flag": { "version": "4.0.0", @@ -26794,9 +26610,9 @@ "dev": true }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -26810,17 +26626,6 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, "slide": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", @@ -26852,23 +26657,6 @@ "agent-base": "^6.0.2", "debug": "4", "socks": "^2.3.3" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } } }, "sonar-scanner": { @@ -26900,24 +26688,6 @@ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, "spawn-wrap": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", @@ -27099,20 +26869,27 @@ } } }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true - }, "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", "dev": true, "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "stream-combiner2": { @@ -27169,181 +26946,23 @@ } }, "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - } - }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - } - } - } - }, - "string.prototype.trimleft": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", - "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "string.prototype.trimright": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", - "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - } - }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - } - } + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "strip-ansi": { @@ -27377,9 +26996,9 @@ } }, "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "strong-log-transformer": { @@ -27411,12 +27030,20 @@ } }, "supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + } } }, "symbol-tree": { @@ -27434,46 +27061,6 @@ "acorn-node": "^1.2.0" } }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, "tar": { "version": "6.1.2", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.2.tgz", @@ -27503,15 +27090,15 @@ } }, "tar-fs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", - "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "dev": true, "requires": { "chownr": "^1.1.1", - "mkdirp": "^0.5.1", + "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", - "tar-stream": "^2.0.0" + "tar-stream": "^2.1.4" } }, "tar-stream": { @@ -27568,22 +27155,6 @@ "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" - }, - "dependencies": { - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } } }, "text-extensions": { @@ -27682,18 +27253,37 @@ "dev": true }, "ts-node": { - "version": "8.10.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.1.tgz", - "integrity": "sha512-bdNz1L4ekHiJul6SHtZWs1ujEKERJnHs4HxN7rjTyyVOFf3HaJ6sLqe6aPG62XTzAB/63pKRh5jTSWL0D7bsvw==", - "dev": true, - "requires": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.4.0.tgz", + "integrity": "sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "0.7.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", "arg": "^4.1.0", + "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", - "source-map-support": "^0.5.17", "yn": "3.1.1" }, "dependencies": { + "acorn": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", + "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "dev": true + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -27702,16 +27292,39 @@ } } }, + "tsconfig-paths": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", + "integrity": "sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "tslint": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.2.tgz", - "integrity": "sha512-UyNrLdK3E0fQG/xWNqAFAC5ugtFyPO4JJR1KyyfQAyzR8W0fTRrC91A8Wej4BntFzcvETdCSDa/4PnNYJQLYiA==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -27725,7 +27338,7 @@ "mkdirp": "^0.5.3", "resolve": "^1.3.2", "semver": "^5.3.0", - "tslib": "^1.10.0", + "tslib": "^1.13.0", "tsutils": "^2.29.0" }, "dependencies": { @@ -27762,9 +27375,9 @@ } }, "tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "requires": { "tslib": "^1.8.1" @@ -27822,38 +27435,18 @@ } }, "typedoc": { - "version": "0.20.30", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.20.30.tgz", - "integrity": "sha512-A4L6JDShPFwZDt9qp7FBsEpW7C6rA5fRv6ywgBuxGxZnT2wuF5afbWzmrwqHR3Xw38V1H2L4v/VJ0S/llBwV6Q==", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.8.tgz", + "integrity": "sha512-92S+YzyhospdXN5rnkYUTgirdTYqNWY7NP9vco+IqQQoiSXzVSUsawVro+tMyEEsWUS7EMaJ2YOjB9uE0CBi6A==", "dev": true, "requires": { - "colors": "^1.4.0", - "fs-extra": "^9.1.0", - "handlebars": "^4.7.7", - "lodash": "^4.17.21", + "glob": "^7.2.0", "lunr": "^2.3.9", - "marked": "^2.0.1", - "minimatch": "^3.0.0", - "progress": "^2.0.3", - "shelljs": "^0.8.4", - "shiki": "^0.9.2", - "typedoc-default-themes": "^0.12.8" - }, - "dependencies": { - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - } + "marked": "^3.0.8", + "minimatch": "^3.0.4", + "shiki": "^0.9.12" } }, - "typedoc-default-themes": { - "version": "0.12.8", - "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.8.tgz", - "integrity": "sha512-tyjyDTKy/JLnBSwvhoqd99VIjrP33SdOtwcMD32b+OqnrjZWe8HmZECbfBoacqoxjHd58gfeNw6wA7uvqWFa4w==", - "dev": true - }, "typedoc-plugin-internal-external": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/typedoc-plugin-internal-external/-/typedoc-plugin-internal-external-2.2.0.tgz", @@ -27890,10 +27483,22 @@ "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", "dev": true }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, "unbzip2-stream": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz", - "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", "dev": true, "requires": { "buffer": "^5.2.1", @@ -28081,12 +27686,12 @@ } }, "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", + "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", "dev": true, "requires": { - "xml-name-validator": "^3.0.0" + "xml-name-validator": "^4.0.0" } }, "wcwidth": { @@ -28105,18 +27710,29 @@ "dev": true }, "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", "dev": true, "requires": { - "iconv-lite": "0.4.24" + "iconv-lite": "0.6.3" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } } }, "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", "dev": true }, "whatwg-url": { @@ -28139,6 +27755,19 @@ "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -28151,6 +27780,20 @@ "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", "dev": true }, + "which-typed-array": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", + "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.7" + } + }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", @@ -28172,41 +27815,77 @@ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, + "workerpool": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", + "integrity": "sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==", + "dev": true + }, "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.1" } } } @@ -28217,15 +27896,6 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, "write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", @@ -28336,9 +28006,9 @@ } }, "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", "dev": true, "requires": {} }, @@ -28373,9 +28043,9 @@ } }, "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", "dev": true }, "xml-parse-from-string": { @@ -28431,70 +28101,96 @@ "dev": true }, "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.1" } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true } } }, "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true }, "yargs-unparser": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", - "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, "requires": { - "flat": "^4.1.0", - "lodash": "^4.17.15", - "yargs": "^13.3.0" + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + } } }, "yauzl": { @@ -28512,6 +28208,12 @@ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true } } } diff --git a/package.json b/package.json index ea39bf380..3415bbf1f 100644 --- a/package.json +++ b/package.json @@ -65,41 +65,41 @@ "@airgap/beacon-wallet": "file:packages/beacon-wallet" }, "devDependencies": { - "@types/bs58check": "^2.1.0", - "@types/chai-as-promised": "7.1.2", - "@types/mocha": "7.0.2", - "@types/node": "14.0.1", - "@types/sinon": "9.0.5", - "@typescript-eslint/eslint-plugin": "2.33.0", - "@typescript-eslint/eslint-plugin-tslint": "2.33.0", - "@typescript-eslint/parser": "2.33.0", - "axios-mock-adapter": "1.18.2", - "browserify": "16.5.1", - "chai": "4.2.0", + "@types/bs58check": "2.1.0", + "@types/chai-as-promised": "7.1.4", + "@types/mocha": "9.0.0", + "@types/node": "16.11.7", + "@types/sinon": "10.0.6", + "@typescript-eslint/eslint-plugin": "5.3.1", + "@typescript-eslint/eslint-plugin-tslint": "5.3.1", + "@typescript-eslint/parser": "5.3.1", + "axios-mock-adapter": "1.20.0", + "browserify": "17.0.0", + "chai": "4.3.4", "chai-as-promised": "7.1.1", - "eslint": "7.0.0", - "eslint-config-prettier": "6.11.0", - "eslint-plugin-import": "2.20.2", + "eslint": "8.2.0", + "eslint-config-prettier": "8.3.0", + "eslint-plugin-import": "2.25.3", "eslint-plugin-no-null": "1.0.2", - "eslint-plugin-prefer-arrow": "1.2.1", + "eslint-plugin-prefer-arrow": "1.2.3", "husky": "4.2.5", - "jsdom": "16.4.0", + "jsdom": "18.0.1", "jsdom-global": "3.0.2", - "lerna": "^4.0.0", - "mocha": "7.1.2", - "nyc": "15.0.1", - "prettier": "2.0.5", - "pretty-quick": "2.0.1", - "puppeteer": "^10.0.0", - "puppeteer-mass-screenshots": "^1.0.15", + "lerna": "4.0.0", + "mocha": "9.1.3", + "nyc": "15.1.0", + "prettier": "2.4.1", + "pretty-quick": "3.1.1", + "puppeteer": "11.0.0", + "puppeteer-mass-screenshots": "1.0.15", "resize-img": "2.0.0", - "sinon": "9.0.3", + "sinon": "12.0.1", "sonar-scanner": "3.1.0", - "static-server": "^2.2.1", - "ts-node": "8.10.1", - "tslint": "6.1.2", - "typedoc": "^0.20.30", - "typedoc-plugin-internal-external": "^2.2.0", + "static-server": "2.2.1", + "ts-node": "10.4.0", + "tslint": "6.1.3", + "typedoc": "0.22.8", + "typedoc-plugin-internal-external": "2.2.0", "typescript": "4.4.4", "uglify-js": "3.14.3" }, diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index de2908f4d..401de3b32 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -36,6 +36,6 @@ "dependencies": { "@airgap/beacon-core": "^0.0.1-beta.13", "@airgap/beacon-utils": "^0.0.1-beta.13", - "axios": "0.21.1" + "axios": "0.24.0" } } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index ea1ce16c9..86c3cda35 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -34,6 +34,6 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@types/chrome": "0.0.115" + "@types/chrome": "0.0.163" } } From 5ecf45f64de36ae5341ab8687cb9c1897715605e Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Fri, 12 Nov 2021 13:39:45 +0100 Subject: [PATCH 069/130] chore(release): v0.0.1-beta.14 --- lerna.json | 2 +- packages/beacon-core/package.json | 6 +++--- packages/beacon-core/src/constants.ts | 2 +- packages/beacon-dapp/package.json | 8 ++++---- packages/beacon-protocol-kusama/package.json | 2 +- packages/beacon-protocol-tezos/package.json | 2 +- packages/beacon-transport-matrix/package.json | 6 +++--- packages/beacon-transport-postmessage/package.json | 8 ++++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 2 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 ++++---- 12 files changed, 25 insertions(+), 25 deletions(-) diff --git a/lerna.json b/lerna.json index f46fcc9cd..bc3220d6f 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "0.0.1-beta.13" + "version": "0.0.1-beta.14" } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index f138b5139..38730b596 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.13", + "version": "0.0.1-beta.14", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.13", - "@airgap/beacon-utils": "^0.0.1-beta.13", + "@airgap/beacon-types": "^0.0.1-beta.14", + "@airgap/beacon-utils": "^0.0.1-beta.14", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-core/src/constants.ts b/packages/beacon-core/src/constants.ts index a9f273a24..839e00cd2 100644 --- a/packages/beacon-core/src/constants.ts +++ b/packages/beacon-core/src/constants.ts @@ -1,2 +1,2 @@ -export const SDK_VERSION: string = '0.0.1-beta.13' +export const SDK_VERSION: string = '0.0.1-beta.14' export const BEACON_VERSION: string = '2' diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 2019dfb56..2935cfca2 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.13", + "version": "0.0.1-beta.14", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,9 +35,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.13", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.13", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.13", + "@airgap/beacon-core": "^0.0.1-beta.14", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.14", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.14", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-protocol-kusama/package.json index bf8e17c6b..3ed341f0c 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-protocol-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.1-beta.13", + "version": "0.0.1-beta.14", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-protocol-tezos/package.json index 9fd0309ee..b15ef204e 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-protocol-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.1-beta.13", + "version": "0.0.1-beta.14", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index 401de3b32..6e3431e4d 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.13", + "version": "0.0.1-beta.14", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.13", - "@airgap/beacon-utils": "^0.0.1-beta.13", + "@airgap/beacon-core": "^0.0.1-beta.14", + "@airgap/beacon-utils": "^0.0.1-beta.14", "axios": "0.24.0" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 3691536ae..88e7d10b5 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.13", + "version": "0.0.1-beta.14", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.13", - "@airgap/beacon-types": "^0.0.1-beta.13", - "@airgap/beacon-utils": "^0.0.1-beta.13", + "@airgap/beacon-core": "^0.0.1-beta.14", + "@airgap/beacon-types": "^0.0.1-beta.14", + "@airgap/beacon-utils": "^0.0.1-beta.14", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 86c3cda35..ed3432023 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.13", + "version": "0.0.1-beta.14", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index a3a726d5a..3154368fc 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.13", + "version": "0.0.1-beta.14", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 9331edbb2..26106fd5a 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.13", + "version": "0.0.1-beta.14", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index ebeb09ef3..c20b64127 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.13", + "version": "0.0.1-beta.14", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,8 +35,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.13", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.13", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.13" + "@airgap/beacon-core": "^0.0.1-beta.14", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.14", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.14" } } From 7b1b0e9e96f6be8c5514a14da49f8b03060f8b8e Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 15 Nov 2021 13:20:29 +0100 Subject: [PATCH 070/130] feat(multi): rename packages --- .devcontainer/Dockerfile | 8 +- .devcontainer/devcontainer.json | 30 ++--- package-lock.json | 120 +++++++++--------- package.json | 4 +- packages/beacon-blockchain-kusama/README.md | 11 ++ .../beacon-protocol-substrate.spec.ts | 2 +- .../package.json | 2 +- .../src/index.ts | 0 .../tsconfig-cjs.json | 0 .../tsconfig.json | 2 +- packages/beacon-blockchain-tezos/README.md | 11 ++ .../__tests__/beacon-protocol-tezos.spec.ts | 2 +- .../package.json | 2 +- .../src/index.ts | 0 .../tsconfig-cjs.json | 0 .../tsconfig.json | 2 +- packages/beacon-protocol-kusama/README.md | 11 -- packages/beacon-protocol-tezos/README.md | 11 -- tsconfig.json | 12 +- 19 files changed, 116 insertions(+), 114 deletions(-) create mode 100644 packages/beacon-blockchain-kusama/README.md rename packages/{beacon-protocol-kusama => beacon-blockchain-kusama}/__tests__/beacon-protocol-substrate.spec.ts (60%) rename packages/{beacon-protocol-kusama => beacon-blockchain-kusama}/package.json (95%) rename packages/{beacon-protocol-kusama => beacon-blockchain-kusama}/src/index.ts (100%) rename packages/{beacon-protocol-kusama => beacon-blockchain-kusama}/tsconfig-cjs.json (100%) rename packages/{beacon-protocol-kusama => beacon-blockchain-kusama}/tsconfig.json (75%) create mode 100644 packages/beacon-blockchain-tezos/README.md rename packages/{beacon-protocol-tezos => beacon-blockchain-tezos}/__tests__/beacon-protocol-tezos.spec.ts (60%) rename packages/{beacon-protocol-tezos => beacon-blockchain-tezos}/package.json (95%) rename packages/{beacon-protocol-tezos => beacon-blockchain-tezos}/src/index.ts (100%) rename packages/{beacon-protocol-tezos => beacon-blockchain-tezos}/tsconfig-cjs.json (100%) rename packages/{beacon-protocol-tezos => beacon-blockchain-tezos}/tsconfig.json (75%) delete mode 100644 packages/beacon-protocol-kusama/README.md delete mode 100644 packages/beacon-protocol-tezos/README.md diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 1d402e992..4194b9a46 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,5 +1,7 @@ -# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.138.0/containers/typescript-node/.devcontainer/base.Dockerfile -ARG VARIANT="14-buster" +# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.205.2/containers/typescript-node/.devcontainer/base.Dockerfile + +# [Choice] Node.js version (use -bullseye variants on local arm64/Apple Silicon): 16, 14, 12, 16-bullseye, 14-bullseye, 12-bullseye, 16-buster, 14-buster, 12-buster +ARG VARIANT="16-bullseye" FROM mcr.microsoft.com/vscode/devcontainers/typescript-node:0-${VARIANT} # [Optional] Uncomment this section to install additional OS packages. @@ -11,4 +13,4 @@ FROM mcr.microsoft.com/vscode/devcontainers/typescript-node:0-${VARIANT} # RUN su node -c "source /usr/local/share/nvm/nvm.sh && nvm install ${EXTRA_NODE_VERSION}" # [Optional] Uncomment if you want to install more global node packages -RUN sudo -u node npm install -g ts-node +# RUN su node -c "npm install -g " diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 829da45dc..1f2d697ef 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,33 +1,33 @@ // For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: -// https://github.com/microsoft/vscode-dev-containers/tree/v0.138.0/containers/typescript-node +// https://github.com/microsoft/vscode-dev-containers/tree/v0.205.2/containers/typescript-node { - "name": "Node.js 14 & TypeScript", + "name": "Node.js & TypeScript", "build": { "dockerfile": "Dockerfile", - // Update 'VARIANT' to pick a Node version: 10, 12, 14 + // Update 'VARIANT' to pick a Node version: 16, 14, 12. + // Append -bullseye or -buster to pin to an OS version. + // Use -bullseye variants on local on arm64/Apple Silicon. "args": { - "VARIANT": "14" + "VARIANT": "16-bullseye" } }, - // + // Set *default* container specific settings.json values on container create. - "settings": { - "terminal.integrated.shell.linux": "/bin/zsh" - }, - // + "settings": {}, + // Add the IDs of extensions you want installed when the container is created. "extensions": [ "dbaeumer.vscode-eslint", "ms-vscode.vscode-typescript-tslint-plugin", "esbenp.prettier-vscode" - ] - // + ], + // Use 'forwardPorts' to make a list of ports inside the container available locally. // "forwardPorts": [], - // + // Use 'postCreateCommand' to run commands after the container is created. // "postCreateCommand": "yarn install", - // - // Uncomment to connect as a non-root user. See https://aka.ms/vscode-remote/containers/non-root. - // "remoteUser": "node" + + // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. + "remoteUser": "node" } diff --git a/package-lock.json b/package-lock.json index 9eb77dd35..61726ee3b 100755 --- a/package-lock.json +++ b/package-lock.json @@ -8,10 +8,10 @@ "name": "@airgap/beacon-sdk", "license": "MIT", "dependencies": { + "@airgap/beacon-blockchain-kusama": "file:packages/beacon-blockchain-kusama", + "@airgap/beacon-blockchain-tezos": "file:packages/beacon-blockchain-tezos", "@airgap/beacon-core": "file:packages/beacon-core", "@airgap/beacon-dapp": "file:packages/beacon-dapp", - "@airgap/beacon-protocol-kusama": "file:packages/beacon-protocol-kusama", - "@airgap/beacon-protocol-tezos": "file:packages/beacon-protocol-tezos", "@airgap/beacon-transport-matrix": "file:packages/beacon-transport-matrix", "@airgap/beacon-transport-postmessage": "file:packages/beacon-transport-postmessage", "@airgap/beacon-types": "file:packages/beacon-types", @@ -59,20 +59,20 @@ "uglify-js": "3.14.3" } }, - "node_modules/@airgap/beacon-core": { - "resolved": "packages/beacon-core", + "node_modules/@airgap/beacon-blockchain-kusama": { + "resolved": "packages/beacon-blockchain-kusama", "link": true }, - "node_modules/@airgap/beacon-dapp": { - "resolved": "packages/beacon-dapp", + "node_modules/@airgap/beacon-blockchain-tezos": { + "resolved": "packages/beacon-blockchain-tezos", "link": true }, - "node_modules/@airgap/beacon-protocol-kusama": { - "resolved": "packages/beacon-protocol-kusama", + "node_modules/@airgap/beacon-core": { + "resolved": "packages/beacon-core", "link": true }, - "node_modules/@airgap/beacon-protocol-tezos": { - "resolved": "packages/beacon-protocol-tezos", + "node_modules/@airgap/beacon-dapp": { + "resolved": "packages/beacon-dapp", "link": true }, "node_modules/@airgap/beacon-transport-matrix": { @@ -15555,13 +15555,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "packages/beacon-blockchain-kusama": { + "name": "@airgap/beacon-blockchain-kusama", + "version": "0.0.1-beta.14", + "license": "ISC" + }, + "packages/beacon-blockchain-tezos": { + "name": "@airgap/beacon-blockchain-tezos", + "version": "0.0.1-beta.14", + "license": "ISC" + }, "packages/beacon-core": { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.13", + "version": "0.0.1-beta.14", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.13", - "@airgap/beacon-utils": "^0.0.1-beta.13", + "@airgap/beacon-types": "^0.0.1-beta.14", + "@airgap/beacon-utils": "^0.0.1-beta.14", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15569,50 +15579,40 @@ }, "packages/beacon-dapp": { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.13", + "version": "0.0.1-beta.14", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.13", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.13", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.13", + "@airgap/beacon-core": "^0.0.1-beta.14", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.14", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.14", "qrcode-generator": "1.4.4" } }, - "packages/beacon-protocol-kusama": { - "name": "@airgap/beacon-protocol-kusama", - "version": "0.0.1-beta.13", - "license": "ISC" - }, - "packages/beacon-protocol-tezos": { - "name": "@airgap/beacon-protocol-tezos", - "version": "0.0.1-beta.13", - "license": "ISC" - }, "packages/beacon-transport-matrix": { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.13", + "version": "0.0.1-beta.14", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.13", - "@airgap/beacon-utils": "^0.0.1-beta.13", + "@airgap/beacon-core": "^0.0.1-beta.14", + "@airgap/beacon-utils": "^0.0.1-beta.14", "axios": "0.24.0" } }, "packages/beacon-transport-postmessage": { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.13", + "version": "0.0.1-beta.14", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.13", - "@airgap/beacon-types": "^0.0.1-beta.13", - "@airgap/beacon-utils": "^0.0.1-beta.13", + "@airgap/beacon-core": "^0.0.1-beta.14", + "@airgap/beacon-types": "^0.0.1-beta.14", + "@airgap/beacon-utils": "^0.0.1-beta.14", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } }, "packages/beacon-types": { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.13", + "version": "0.0.1-beta.14", "license": "ISC", "dependencies": { "@types/chrome": "0.0.163" @@ -15620,12 +15620,12 @@ }, "packages/beacon-ui": { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.13", + "version": "0.0.1-beta.14", "license": "ISC" }, "packages/beacon-utils": { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.13", + "version": "0.0.1-beta.14", "license": "ISC", "dependencies": { "@types/libsodium-wrappers": "0.7.9", @@ -15635,21 +15635,27 @@ }, "packages/beacon-wallet": { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.13", + "version": "0.0.1-beta.14", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.13", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.13", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.13" + "@airgap/beacon-core": "^0.0.1-beta.14", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.14", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.14" } } }, "dependencies": { + "@airgap/beacon-blockchain-kusama": { + "version": "file:packages/beacon-blockchain-kusama" + }, + "@airgap/beacon-blockchain-tezos": { + "version": "file:packages/beacon-blockchain-tezos" + }, "@airgap/beacon-core": { "version": "file:packages/beacon-core", "requires": { - "@airgap/beacon-types": "^0.0.1-beta.13", - "@airgap/beacon-utils": "^0.0.1-beta.13", + "@airgap/beacon-types": "^0.0.1-beta.14", + "@airgap/beacon-utils": "^0.0.1-beta.14", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15658,32 +15664,26 @@ "@airgap/beacon-dapp": { "version": "file:packages/beacon-dapp", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.13", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.13", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.13", + "@airgap/beacon-core": "^0.0.1-beta.14", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.14", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.14", "qrcode-generator": "1.4.4" } }, - "@airgap/beacon-protocol-kusama": { - "version": "file:packages/beacon-protocol-kusama" - }, - "@airgap/beacon-protocol-tezos": { - "version": "file:packages/beacon-protocol-tezos" - }, "@airgap/beacon-transport-matrix": { "version": "file:packages/beacon-transport-matrix", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.13", - "@airgap/beacon-utils": "^0.0.1-beta.13", + "@airgap/beacon-core": "^0.0.1-beta.14", + "@airgap/beacon-utils": "^0.0.1-beta.14", "axios": "0.24.0" } }, "@airgap/beacon-transport-postmessage": { "version": "file:packages/beacon-transport-postmessage", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.13", - "@airgap/beacon-types": "^0.0.1-beta.13", - "@airgap/beacon-utils": "^0.0.1-beta.13", + "@airgap/beacon-core": "^0.0.1-beta.14", + "@airgap/beacon-types": "^0.0.1-beta.14", + "@airgap/beacon-utils": "^0.0.1-beta.14", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } @@ -15708,9 +15708,9 @@ "@airgap/beacon-wallet": { "version": "file:packages/beacon-wallet", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.13", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.13", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.13" + "@airgap/beacon-core": "^0.0.1-beta.14", + "@airgap/beacon-transport-matrix": "^0.0.1-beta.14", + "@airgap/beacon-transport-postmessage": "^0.0.1-beta.14" } }, "@babel/code-frame": { diff --git a/package.json b/package.json index 3415bbf1f..c39f47135 100644 --- a/package.json +++ b/package.json @@ -53,10 +53,10 @@ }, "author": "Papers GmbH (https://papers.ch)", "dependencies": { + "@airgap/beacon-blockchain-kusama": "file:packages/beacon-blockchain-kusama", + "@airgap/beacon-blockchain-tezos": "file:packages/beacon-blockchain-tezos", "@airgap/beacon-core": "file:packages/beacon-core", "@airgap/beacon-dapp": "file:packages/beacon-dapp", - "@airgap/beacon-protocol-kusama": "file:packages/beacon-protocol-kusama", - "@airgap/beacon-protocol-tezos": "file:packages/beacon-protocol-tezos", "@airgap/beacon-transport-matrix": "file:packages/beacon-transport-matrix", "@airgap/beacon-transport-postmessage": "file:packages/beacon-transport-postmessage", "@airgap/beacon-types": "file:packages/beacon-types", diff --git a/packages/beacon-blockchain-kusama/README.md b/packages/beacon-blockchain-kusama/README.md new file mode 100644 index 000000000..c655d41e4 --- /dev/null +++ b/packages/beacon-blockchain-kusama/README.md @@ -0,0 +1,11 @@ +# `@airgap/beacon-blockchain-kusama` + +> TODO: description + +## Usage + +``` +const beaconProtocolkusama = require('@airgap/beacon-blockchain-kusama'); + +// TODO: DEMONSTRATE API +``` diff --git a/packages/beacon-protocol-kusama/__tests__/beacon-protocol-substrate.spec.ts b/packages/beacon-blockchain-kusama/__tests__/beacon-protocol-substrate.spec.ts similarity index 60% rename from packages/beacon-protocol-kusama/__tests__/beacon-protocol-substrate.spec.ts rename to packages/beacon-blockchain-kusama/__tests__/beacon-protocol-substrate.spec.ts index ad3e6b19b..292b49f0a 100644 --- a/packages/beacon-protocol-kusama/__tests__/beacon-protocol-substrate.spec.ts +++ b/packages/beacon-blockchain-kusama/__tests__/beacon-protocol-substrate.spec.ts @@ -2,6 +2,6 @@ const beaconProtocolkusama = require('..') -describe('@airgap/beacon-protocol-kusama', () => { +describe('@airgap/beacon-blockchain-kusama', () => { it('needs tests') }) diff --git a/packages/beacon-protocol-kusama/package.json b/packages/beacon-blockchain-kusama/package.json similarity index 95% rename from packages/beacon-protocol-kusama/package.json rename to packages/beacon-blockchain-kusama/package.json index 3ed341f0c..517819bb6 100644 --- a/packages/beacon-protocol-kusama/package.json +++ b/packages/beacon-blockchain-kusama/package.json @@ -1,5 +1,5 @@ { - "name": "@airgap/beacon-protocol-kusama", + "name": "@airgap/beacon-blockchain-kusama", "version": "0.0.1-beta.14", "description": "> TODO: description", "author": "Andreas Gassmann ", diff --git a/packages/beacon-protocol-kusama/src/index.ts b/packages/beacon-blockchain-kusama/src/index.ts similarity index 100% rename from packages/beacon-protocol-kusama/src/index.ts rename to packages/beacon-blockchain-kusama/src/index.ts diff --git a/packages/beacon-protocol-kusama/tsconfig-cjs.json b/packages/beacon-blockchain-kusama/tsconfig-cjs.json similarity index 100% rename from packages/beacon-protocol-kusama/tsconfig-cjs.json rename to packages/beacon-blockchain-kusama/tsconfig-cjs.json diff --git a/packages/beacon-protocol-kusama/tsconfig.json b/packages/beacon-blockchain-kusama/tsconfig.json similarity index 75% rename from packages/beacon-protocol-kusama/tsconfig.json rename to packages/beacon-blockchain-kusama/tsconfig.json index b0105a2de..31b17af52 100644 --- a/packages/beacon-protocol-kusama/tsconfig.json +++ b/packages/beacon-blockchain-kusama/tsconfig.json @@ -4,7 +4,7 @@ "outDir": "./dist/esm", "baseUrl": ".", "paths": { - "@airgap/beacon-protocol-kusama": ["./src"] + "@airgap/beacon-blockchain-kusama": ["./src"] } }, "include": ["./src"] diff --git a/packages/beacon-blockchain-tezos/README.md b/packages/beacon-blockchain-tezos/README.md new file mode 100644 index 000000000..7da18fe15 --- /dev/null +++ b/packages/beacon-blockchain-tezos/README.md @@ -0,0 +1,11 @@ +# `@airgap/beacon-blockchain-tezos` + +> TODO: description + +## Usage + +``` +const beaconProtocolTezos = require('@airgap/beacon-blockchain-tezos'); + +// TODO: DEMONSTRATE API +``` diff --git a/packages/beacon-protocol-tezos/__tests__/beacon-protocol-tezos.spec.ts b/packages/beacon-blockchain-tezos/__tests__/beacon-protocol-tezos.spec.ts similarity index 60% rename from packages/beacon-protocol-tezos/__tests__/beacon-protocol-tezos.spec.ts rename to packages/beacon-blockchain-tezos/__tests__/beacon-protocol-tezos.spec.ts index 8c15b52c8..57ab6a19e 100644 --- a/packages/beacon-protocol-tezos/__tests__/beacon-protocol-tezos.spec.ts +++ b/packages/beacon-blockchain-tezos/__tests__/beacon-protocol-tezos.spec.ts @@ -2,6 +2,6 @@ const beaconProtocolTezos = require('..') -describe('@airgap/beacon-protocol-tezos', () => { +describe('@airgap/beacon-blockchain-tezos', () => { it('needs tests') }) diff --git a/packages/beacon-protocol-tezos/package.json b/packages/beacon-blockchain-tezos/package.json similarity index 95% rename from packages/beacon-protocol-tezos/package.json rename to packages/beacon-blockchain-tezos/package.json index b15ef204e..d1f73e109 100644 --- a/packages/beacon-protocol-tezos/package.json +++ b/packages/beacon-blockchain-tezos/package.json @@ -1,5 +1,5 @@ { - "name": "@airgap/beacon-protocol-tezos", + "name": "@airgap/beacon-blockchain-tezos", "version": "0.0.1-beta.14", "description": "> TODO: description", "author": "Andreas Gassmann ", diff --git a/packages/beacon-protocol-tezos/src/index.ts b/packages/beacon-blockchain-tezos/src/index.ts similarity index 100% rename from packages/beacon-protocol-tezos/src/index.ts rename to packages/beacon-blockchain-tezos/src/index.ts diff --git a/packages/beacon-protocol-tezos/tsconfig-cjs.json b/packages/beacon-blockchain-tezos/tsconfig-cjs.json similarity index 100% rename from packages/beacon-protocol-tezos/tsconfig-cjs.json rename to packages/beacon-blockchain-tezos/tsconfig-cjs.json diff --git a/packages/beacon-protocol-tezos/tsconfig.json b/packages/beacon-blockchain-tezos/tsconfig.json similarity index 75% rename from packages/beacon-protocol-tezos/tsconfig.json rename to packages/beacon-blockchain-tezos/tsconfig.json index 69818cc93..40df0a575 100644 --- a/packages/beacon-protocol-tezos/tsconfig.json +++ b/packages/beacon-blockchain-tezos/tsconfig.json @@ -4,7 +4,7 @@ "outDir": "./dist/esm", "baseUrl": ".", "paths": { - "@airgap/beacon-protocol-tezos": ["./src"] + "@airgap/beacon-blockchain-tezos": ["./src"] } }, "include": ["./src"] diff --git a/packages/beacon-protocol-kusama/README.md b/packages/beacon-protocol-kusama/README.md deleted file mode 100644 index a8dcb5045..000000000 --- a/packages/beacon-protocol-kusama/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# `@airgap/beacon-protocol-kusama` - -> TODO: description - -## Usage - -``` -const beaconProtocolkusama = require('@airgap/beacon-protocol-kusama'); - -// TODO: DEMONSTRATE API -``` diff --git a/packages/beacon-protocol-tezos/README.md b/packages/beacon-protocol-tezos/README.md deleted file mode 100644 index 069b78997..000000000 --- a/packages/beacon-protocol-tezos/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# `@airgap/beacon-protocol-tezos` - -> TODO: description - -## Usage - -``` -const beaconProtocolTezos = require('@airgap/beacon-protocol-tezos'); - -// TODO: DEMONSTRATE API -``` diff --git a/tsconfig.json b/tsconfig.json index 8d0fe260c..262d7a1ff 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -27,13 +27,13 @@ "paths": { "beacon-core": ["packages/beacon-core/lib/beacon-core", "packages/beacon-core/lib"], "beacon-dapp": ["packages/beacon-dapp/lib/beacon-dapp", "packages/beacon-dapp/lib"], - "beacon-protocol-kusama": [ - "packages/beacon-protocol-kusama/lib/beacon-protocol-kusama", - "packages/beacon-protocol-kusama/lib" + "beacon-blockchain-kusama": [ + "packages/beacon-blockchain-kusama/lib/beacon-blockchain-kusama", + "packages/beacon-blockchain-kusama/lib" ], - "beacon-protocol-tezos": [ - "packages/beacon-protocol-tezos/lib/beacon-protocol-tezos", - "packages/beacon-protocol-tezos/lib" + "beacon-blockchain-tezos": [ + "packages/beacon-blockchain-tezos/lib/beacon-blockchain-tezos", + "packages/beacon-blockchain-tezos/lib" ], "beacon-transport-matrix": [ "packages/beacon-transport-matrix/lib/beacon-transport-matrix", From f35dcd8b70d762cdbe84222f56520cb456d54911 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 15 Nov 2021 13:31:51 +0100 Subject: [PATCH 071/130] chore(release): v2.4.0-beta.0 --- lerna.json | 2 +- package-lock.json | 72 +- package.json | 2 +- .../beacon-blockchain-kusama/package.json | 4 +- packages/beacon-blockchain-tezos/package.json | 4 +- packages/beacon-core/package.json | 8 +- packages/beacon-core/src/constants.ts | 2 +- packages/beacon-dapp/package.json | 10 +- packages/beacon-sdk/README.md | 11 + .../beacon-sdk/__tests__/beacon-sdk.spec.ts | 7 + packages/beacon-sdk/package.json | 50 + packages/beacon-sdk/src/index.ts | 10 + packages/beacon-sdk/tsconfig-cjs.json | 8 + packages/beacon-sdk/tsconfig.json | 11 + packages/beacon-sdk/walletbeacon.min.js | 77921 ++++++++++++++++ packages/beacon-transport-matrix/package.json | 8 +- .../beacon-transport-postmessage/package.json | 10 +- packages/beacon-types/package.json | 4 +- packages/beacon-ui/package.json | 4 +- packages/beacon-utils/package.json | 4 +- packages/beacon-wallet/package.json | 10 +- 21 files changed, 78090 insertions(+), 72 deletions(-) create mode 100644 packages/beacon-sdk/README.md create mode 100644 packages/beacon-sdk/__tests__/beacon-sdk.spec.ts create mode 100644 packages/beacon-sdk/package.json create mode 100644 packages/beacon-sdk/src/index.ts create mode 100644 packages/beacon-sdk/tsconfig-cjs.json create mode 100644 packages/beacon-sdk/tsconfig.json create mode 100644 packages/beacon-sdk/walletbeacon.min.js diff --git a/lerna.json b/lerna.json index bc3220d6f..313962706 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "0.0.1-beta.14" + "version": "2.4.0-beta.0" } diff --git a/package-lock.json b/package-lock.json index 61726ee3b..b19aa95f8 100755 --- a/package-lock.json +++ b/package-lock.json @@ -15557,21 +15557,21 @@ }, "packages/beacon-blockchain-kusama": { "name": "@airgap/beacon-blockchain-kusama", - "version": "0.0.1-beta.14", + "version": "2.4.0-beta.0", "license": "ISC" }, "packages/beacon-blockchain-tezos": { "name": "@airgap/beacon-blockchain-tezos", - "version": "0.0.1-beta.14", + "version": "2.4.0-beta.0", "license": "ISC" }, "packages/beacon-core": { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.14", + "version": "2.4.0-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.14", - "@airgap/beacon-utils": "^0.0.1-beta.14", + "@airgap/beacon-types": "^2.4.0-beta.0", + "@airgap/beacon-utils": "^2.4.0-beta.0", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15579,40 +15579,40 @@ }, "packages/beacon-dapp": { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.14", + "version": "2.4.0-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.14", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.14", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.14", + "@airgap/beacon-core": "^2.4.0-beta.0", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.0", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.0", "qrcode-generator": "1.4.4" } }, "packages/beacon-transport-matrix": { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.14", + "version": "2.4.0-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.14", - "@airgap/beacon-utils": "^0.0.1-beta.14", + "@airgap/beacon-core": "^2.4.0-beta.0", + "@airgap/beacon-utils": "^2.4.0-beta.0", "axios": "0.24.0" } }, "packages/beacon-transport-postmessage": { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.14", + "version": "2.4.0-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.14", - "@airgap/beacon-types": "^0.0.1-beta.14", - "@airgap/beacon-utils": "^0.0.1-beta.14", + "@airgap/beacon-core": "^2.4.0-beta.0", + "@airgap/beacon-types": "^2.4.0-beta.0", + "@airgap/beacon-utils": "^2.4.0-beta.0", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } }, "packages/beacon-types": { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.14", + "version": "2.4.0-beta.0", "license": "ISC", "dependencies": { "@types/chrome": "0.0.163" @@ -15620,12 +15620,12 @@ }, "packages/beacon-ui": { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.14", + "version": "2.4.0-beta.0", "license": "ISC" }, "packages/beacon-utils": { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.14", + "version": "2.4.0-beta.0", "license": "ISC", "dependencies": { "@types/libsodium-wrappers": "0.7.9", @@ -15635,12 +15635,12 @@ }, "packages/beacon-wallet": { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.14", + "version": "2.4.0-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.14", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.14", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.14" + "@airgap/beacon-core": "^2.4.0-beta.0", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.0", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.0" } } }, @@ -15654,8 +15654,8 @@ "@airgap/beacon-core": { "version": "file:packages/beacon-core", "requires": { - "@airgap/beacon-types": "^0.0.1-beta.14", - "@airgap/beacon-utils": "^0.0.1-beta.14", + "@airgap/beacon-types": "^2.4.0-beta.0", + "@airgap/beacon-utils": "^2.4.0-beta.0", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15664,26 +15664,26 @@ "@airgap/beacon-dapp": { "version": "file:packages/beacon-dapp", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.14", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.14", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.14", + "@airgap/beacon-core": "^2.4.0-beta.0", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.0", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.0", "qrcode-generator": "1.4.4" } }, "@airgap/beacon-transport-matrix": { "version": "file:packages/beacon-transport-matrix", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.14", - "@airgap/beacon-utils": "^0.0.1-beta.14", + "@airgap/beacon-core": "^2.4.0-beta.0", + "@airgap/beacon-utils": "^2.4.0-beta.0", "axios": "0.24.0" } }, "@airgap/beacon-transport-postmessage": { "version": "file:packages/beacon-transport-postmessage", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.14", - "@airgap/beacon-types": "^0.0.1-beta.14", - "@airgap/beacon-utils": "^0.0.1-beta.14", + "@airgap/beacon-core": "^2.4.0-beta.0", + "@airgap/beacon-types": "^2.4.0-beta.0", + "@airgap/beacon-utils": "^2.4.0-beta.0", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } @@ -15708,9 +15708,9 @@ "@airgap/beacon-wallet": { "version": "file:packages/beacon-wallet", "requires": { - "@airgap/beacon-core": "^0.0.1-beta.14", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.14", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.14" + "@airgap/beacon-core": "^2.4.0-beta.0", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.0", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.0" } }, "@babel/code-frame": { diff --git a/package.json b/package.json index c39f47135..8df37aff8 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "prebuild": "ts-node --project tsconfig-cjs.json scripts/generate-wallet-list.ts", "build": "npm run check-version && lerna run tsc && npm run browserify:all", "browserify:all": "npm run browserify:sdk && npm run browserify:dapp && npm run browserify:wallet", - "browserify:sdk": "browserify ./packages/beacon-dapp/dist/cjs/index.js -s beacon | uglifyjs > ./walletbeacon.min.js && cp ./walletbeacon.min.js ./examples/walletbeacon.min.js", + "browserify:sdk": "browserify ./packages/beacon-sdk/dist/cjs/index.js -s beacon | uglifyjs > ./packages/beacon-sdk/walletbeacon.min.js && cp ./packages/beacon-sdk/walletbeacon.min.js ./examples/walletbeacon.min.js", "browserify:dapp": "browserify ./packages/beacon-dapp/dist/cjs/index.js -s beacon | uglifyjs > ./packages/beacon-dapp/dist/walletbeacon.dapp.min.js", "browserify:wallet": "browserify ./packages/beacon-wallet/dist/cjs/index.js -s beacon | uglifyjs > ./packages/beacon-wallet/dist/walletbeacon.wallet.min.js", "prettier": "prettier --write 'src/**/*' '**/src/**/*' 'docs/**/*.md' 'example-dapp.html' 'example-wallet.html'", diff --git a/packages/beacon-blockchain-kusama/package.json b/packages/beacon-blockchain-kusama/package.json index 517819bb6..752b5086a 100644 --- a/packages/beacon-blockchain-kusama/package.json +++ b/packages/beacon-blockchain-kusama/package.json @@ -1,8 +1,8 @@ { "name": "@airgap/beacon-blockchain-kusama", - "version": "0.0.1-beta.14", + "version": "2.4.0-beta.0", "description": "> TODO: description", - "author": "Andreas Gassmann ", + "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", "main": "dist/cjs/index.js", diff --git a/packages/beacon-blockchain-tezos/package.json b/packages/beacon-blockchain-tezos/package.json index d1f73e109..e5b537af4 100644 --- a/packages/beacon-blockchain-tezos/package.json +++ b/packages/beacon-blockchain-tezos/package.json @@ -1,8 +1,8 @@ { "name": "@airgap/beacon-blockchain-tezos", - "version": "0.0.1-beta.14", + "version": "2.4.0-beta.0", "description": "> TODO: description", - "author": "Andreas Gassmann ", + "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", "main": "dist/cjs/index.js", diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 38730b596..6a7f7078a 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,8 +1,8 @@ { "name": "@airgap/beacon-core", - "version": "0.0.1-beta.14", + "version": "2.4.0-beta.0", "description": "> TODO: description", - "author": "Andreas Gassmann ", + "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", "main": "dist/cjs/index.js", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^0.0.1-beta.14", - "@airgap/beacon-utils": "^0.0.1-beta.14", + "@airgap/beacon-types": "^2.4.0-beta.0", + "@airgap/beacon-utils": "^2.4.0-beta.0", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-core/src/constants.ts b/packages/beacon-core/src/constants.ts index 839e00cd2..154d61a68 100644 --- a/packages/beacon-core/src/constants.ts +++ b/packages/beacon-core/src/constants.ts @@ -1,2 +1,2 @@ -export const SDK_VERSION: string = '0.0.1-beta.14' +export const SDK_VERSION: string = '2.4.0-beta.0' export const BEACON_VERSION: string = '2' diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 2935cfca2..40cccc881 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,8 +1,8 @@ { "name": "@airgap/beacon-dapp", - "version": "0.0.1-beta.14", + "version": "2.4.0-beta.0", "description": "> TODO: description", - "author": "Andreas Gassmann ", + "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", "main": "dist/cjs/index.js", @@ -35,9 +35,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.14", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.14", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.14", + "@airgap/beacon-core": "^2.4.0-beta.0", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.0", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.0", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-sdk/README.md b/packages/beacon-sdk/README.md new file mode 100644 index 000000000..98e17222e --- /dev/null +++ b/packages/beacon-sdk/README.md @@ -0,0 +1,11 @@ +# `@airgap/beacon-sdk` + +> TODO: description + +## Usage + +``` +const beaconSdk = require('@airgap/beacon-sdk'); + +// TODO: DEMONSTRATE API +``` diff --git a/packages/beacon-sdk/__tests__/beacon-sdk.spec.ts b/packages/beacon-sdk/__tests__/beacon-sdk.spec.ts new file mode 100644 index 000000000..67271e502 --- /dev/null +++ b/packages/beacon-sdk/__tests__/beacon-sdk.spec.ts @@ -0,0 +1,7 @@ +'use strict' + +const beaconSdk = require('..') + +describe('@airgap/beacon-sdk', () => { + it('needs tests') +}) diff --git a/packages/beacon-sdk/package.json b/packages/beacon-sdk/package.json new file mode 100644 index 000000000..3bdcc6eee --- /dev/null +++ b/packages/beacon-sdk/package.json @@ -0,0 +1,50 @@ +{ + "name": "@airgap/beacon-sdk", + "version": "2.4.0-beta.0", + "description": "> TODO: description", + "author": "Andreas Gassmann ", + "homepage": "https://walletbeacon.io", + "license": "ISC", + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", + "unpkg": "dist/walletbeacon.min.js", + "types": "dist/esm/index.d.ts", + "exports": { + "require": "./dist/cjs/index.js", + "import": "./dist/esm/index.js" + }, + "directories": { + "lib": "dist/esm", + "test": "__tests__" + }, + "files": [ + "dist" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/airgap-it/beacon-sdk.git" + }, + "scripts": { + "tsc": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json", + "test": "TS_NODE_PROJECT='tsconfig-cjs.json' nyc mocha --require ts-node/register --require source-map-support/register --full-trace --timeout 40000 ./__tests__/**/**.spec.ts" + }, + "bugs": { + "url": "https://github.com/airgap-it/beacon-sdk/issues" + }, + "dependencies": { + "@airgap/beacon-blockchain-kusama": "^2.4.0-beta.0", + "@airgap/beacon-blockchain-tezos": "^2.4.0-beta.0", + "@airgap/beacon-core": "^2.4.0-beta.0", + "@airgap/beacon-dapp": "^2.4.0-beta.0", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.0", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.0", + "@airgap/beacon-types": "^2.4.0-beta.0", + "@airgap/beacon-ui": "^2.4.0-beta.0", + "@airgap/beacon-utils": "^2.4.0-beta.0", + "@airgap/beacon-wallet": "^2.4.0-beta.0", + "qrcode-generator": "1.4.4" + } +} diff --git a/packages/beacon-sdk/src/index.ts b/packages/beacon-sdk/src/index.ts new file mode 100644 index 000000000..4255991e7 --- /dev/null +++ b/packages/beacon-sdk/src/index.ts @@ -0,0 +1,10 @@ +// export * from '@airgap/beacon-blockchain-kusama' +// export * from '@airgap/beacon-blockchain-tezos' +export * from '@airgap/beacon-core' +export * from '@airgap/beacon-dapp' +export * from '@airgap/beacon-transport-matrix' +export * from '@airgap/beacon-transport-postmessage' +export * from '@airgap/beacon-types' +// export * from '@airgap/beacon-ui' +export * from '@airgap/beacon-utils' +export * from '@airgap/beacon-wallet' diff --git a/packages/beacon-sdk/tsconfig-cjs.json b/packages/beacon-sdk/tsconfig-cjs.json new file mode 100644 index 000000000..087accbdf --- /dev/null +++ b/packages/beacon-sdk/tsconfig-cjs.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "target": "es5", + "module": "commonjs", + "outDir": "./dist/cjs" + } +} diff --git a/packages/beacon-sdk/tsconfig.json b/packages/beacon-sdk/tsconfig.json new file mode 100644 index 000000000..8b3251159 --- /dev/null +++ b/packages/beacon-sdk/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./dist/esm", + "baseUrl": ".", + "paths": { + "@airgap/beacon-dapp": ["./src"] + } + }, + "include": ["./src"] +} diff --git a/packages/beacon-sdk/walletbeacon.min.js b/packages/beacon-sdk/walletbeacon.min.js new file mode 100644 index 000000000..f208d8eb2 --- /dev/null +++ b/packages/beacon-sdk/walletbeacon.min.js @@ -0,0 +1,77921 @@ +;(function (f) { + if (typeof exports === 'object' && typeof module !== 'undefined') { + module.exports = f() + } else if (typeof define === 'function' && define.amd) { + define([], f) + } else { + var g + if (typeof window !== 'undefined') { + g = window + } else if (typeof global !== 'undefined') { + g = global + } else if (typeof self !== 'undefined') { + g = self + } else { + g = this + } + g.beacon = f() + } +})(function () { + var define, module, exports + return (function () { + function r(e, n, t) { + function o(i, f) { + if (!n[i]) { + if (!e[i]) { + var c = 'function' == typeof require && require + if (!f && c) return c(i, !0) + if (u) return u(i, !0) + var a = new Error("Cannot find module '" + i + "'") + throw ((a.code = 'MODULE_NOT_FOUND'), a) + } + var p = (n[i] = { exports: {} }) + e[i][0].call( + p.exports, + function (r) { + var n = e[i][1][r] + return o(n || r) + }, + p, + p.exports, + r, + e, + n, + t + ) + } + return n[i].exports + } + for (var u = 'function' == typeof require && require, i = 0; i < t.length; i++) o(t[i]) + return o + } + return r + })()( + { + 1: [ + function (require, module, exports) { + var asn1 = exports + asn1.bignum = require('bn.js') + asn1.define = require('./asn1/api').define + asn1.base = require('./asn1/base') + asn1.constants = require('./asn1/constants') + asn1.decoders = require('./asn1/decoders') + asn1.encoders = require('./asn1/encoders') + }, + { + './asn1/api': 2, + './asn1/base': 4, + './asn1/constants': 8, + './asn1/decoders': 10, + './asn1/encoders': 13, + 'bn.js': 15 + } + ], + 2: [ + function (require, module, exports) { + var asn1 = require('../asn1') + var inherits = require('inherits') + var api = exports + api.define = function define(name, body) { + return new Entity(name, body) + } + function Entity(name, body) { + this.name = name + this.body = body + this.decoders = {} + this.encoders = {} + } + Entity.prototype._createNamed = function createNamed(base) { + var named + try { + named = require('vm').runInThisContext( + '(function ' + this.name + '(entity) {\n' + ' this._initNamed(entity);\n' + '})' + ) + } catch (e) { + named = function (entity) { + this._initNamed(entity) + } + } + inherits(named, base) + named.prototype._initNamed = function initnamed(entity) { + base.call(this, entity) + } + return new named(this) + } + Entity.prototype._getDecoder = function _getDecoder(enc) { + enc = enc || 'der' + if (!this.decoders.hasOwnProperty(enc)) + this.decoders[enc] = this._createNamed(asn1.decoders[enc]) + return this.decoders[enc] + } + Entity.prototype.decode = function decode(data, enc, options) { + return this._getDecoder(enc).decode(data, options) + } + Entity.prototype._getEncoder = function _getEncoder(enc) { + enc = enc || 'der' + if (!this.encoders.hasOwnProperty(enc)) + this.encoders[enc] = this._createNamed(asn1.encoders[enc]) + return this.encoders[enc] + } + Entity.prototype.encode = function encode(data, enc, reporter) { + return this._getEncoder(enc).encode(data, reporter) + } + }, + { '../asn1': 1, inherits: 151, vm: 210 } + ], + 3: [ + function (require, module, exports) { + var inherits = require('inherits') + var Reporter = require('../base').Reporter + var Buffer = require('buffer').Buffer + function DecoderBuffer(base, options) { + Reporter.call(this, options) + if (!Buffer.isBuffer(base)) { + this.error('Input not Buffer') + return + } + this.base = base + this.offset = 0 + this.length = base.length + } + inherits(DecoderBuffer, Reporter) + exports.DecoderBuffer = DecoderBuffer + DecoderBuffer.prototype.save = function save() { + return { offset: this.offset, reporter: Reporter.prototype.save.call(this) } + } + DecoderBuffer.prototype.restore = function restore(save) { + var res = new DecoderBuffer(this.base) + res.offset = save.offset + res.length = this.offset + this.offset = save.offset + Reporter.prototype.restore.call(this, save.reporter) + return res + } + DecoderBuffer.prototype.isEmpty = function isEmpty() { + return this.offset === this.length + } + DecoderBuffer.prototype.readUInt8 = function readUInt8(fail) { + if (this.offset + 1 <= this.length) return this.base.readUInt8(this.offset++, true) + else return this.error(fail || 'DecoderBuffer overrun') + } + DecoderBuffer.prototype.skip = function skip(bytes, fail) { + if (!(this.offset + bytes <= this.length)) + return this.error(fail || 'DecoderBuffer overrun') + var res = new DecoderBuffer(this.base) + res._reporterState = this._reporterState + res.offset = this.offset + res.length = this.offset + bytes + this.offset += bytes + return res + } + DecoderBuffer.prototype.raw = function raw(save) { + return this.base.slice(save ? save.offset : this.offset, this.length) + } + function EncoderBuffer(value, reporter) { + if (Array.isArray(value)) { + this.length = 0 + this.value = value.map(function (item) { + if (!(item instanceof EncoderBuffer)) item = new EncoderBuffer(item, reporter) + this.length += item.length + return item + }, this) + } else if (typeof value === 'number') { + if (!(0 <= value && value <= 255)) + return reporter.error('non-byte EncoderBuffer value') + this.value = value + this.length = 1 + } else if (typeof value === 'string') { + this.value = value + this.length = Buffer.byteLength(value) + } else if (Buffer.isBuffer(value)) { + this.value = value + this.length = value.length + } else { + return reporter.error('Unsupported type: ' + typeof value) + } + } + exports.EncoderBuffer = EncoderBuffer + EncoderBuffer.prototype.join = function join(out, offset) { + if (!out) out = new Buffer(this.length) + if (!offset) offset = 0 + if (this.length === 0) return out + if (Array.isArray(this.value)) { + this.value.forEach(function (item) { + item.join(out, offset) + offset += item.length + }) + } else { + if (typeof this.value === 'number') out[offset] = this.value + else if (typeof this.value === 'string') out.write(this.value, offset) + else if (Buffer.isBuffer(this.value)) this.value.copy(out, offset) + offset += this.length + } + return out + } + }, + { '../base': 4, buffer: 93, inherits: 151 } + ], + 4: [ + function (require, module, exports) { + var base = exports + base.Reporter = require('./reporter').Reporter + base.DecoderBuffer = require('./buffer').DecoderBuffer + base.EncoderBuffer = require('./buffer').EncoderBuffer + base.Node = require('./node') + }, + { './buffer': 3, './node': 5, './reporter': 6 } + ], + 5: [ + function (require, module, exports) { + var Reporter = require('../base').Reporter + var EncoderBuffer = require('../base').EncoderBuffer + var DecoderBuffer = require('../base').DecoderBuffer + var assert = require('minimalistic-assert') + var tags = [ + 'seq', + 'seqof', + 'set', + 'setof', + 'objid', + 'bool', + 'gentime', + 'utctime', + 'null_', + 'enum', + 'int', + 'objDesc', + 'bitstr', + 'bmpstr', + 'charstr', + 'genstr', + 'graphstr', + 'ia5str', + 'iso646str', + 'numstr', + 'octstr', + 'printstr', + 't61str', + 'unistr', + 'utf8str', + 'videostr' + ] + var methods = [ + 'key', + 'obj', + 'use', + 'optional', + 'explicit', + 'implicit', + 'def', + 'choice', + 'any', + 'contains' + ].concat(tags) + var overrided = [ + '_peekTag', + '_decodeTag', + '_use', + '_decodeStr', + '_decodeObjid', + '_decodeTime', + '_decodeNull', + '_decodeInt', + '_decodeBool', + '_decodeList', + '_encodeComposite', + '_encodeStr', + '_encodeObjid', + '_encodeTime', + '_encodeNull', + '_encodeInt', + '_encodeBool' + ] + function Node(enc, parent) { + var state = {} + this._baseState = state + state.enc = enc + state.parent = parent || null + state.children = null + state.tag = null + state.args = null + state.reverseArgs = null + state.choice = null + state.optional = false + state.any = false + state.obj = false + state.use = null + state.useDecoder = null + state.key = null + state['default'] = null + state.explicit = null + state.implicit = null + state.contains = null + if (!state.parent) { + state.children = [] + this._wrap() + } + } + module.exports = Node + var stateProps = [ + 'enc', + 'parent', + 'children', + 'tag', + 'args', + 'reverseArgs', + 'choice', + 'optional', + 'any', + 'obj', + 'use', + 'alteredUse', + 'key', + 'default', + 'explicit', + 'implicit', + 'contains' + ] + Node.prototype.clone = function clone() { + var state = this._baseState + var cstate = {} + stateProps.forEach(function (prop) { + cstate[prop] = state[prop] + }) + var res = new this.constructor(cstate.parent) + res._baseState = cstate + return res + } + Node.prototype._wrap = function wrap() { + var state = this._baseState + methods.forEach(function (method) { + this[method] = function _wrappedMethod() { + var clone = new this.constructor(this) + state.children.push(clone) + return clone[method].apply(clone, arguments) + } + }, this) + } + Node.prototype._init = function init(body) { + var state = this._baseState + assert(state.parent === null) + body.call(this) + state.children = state.children.filter(function (child) { + return child._baseState.parent === this + }, this) + assert.equal(state.children.length, 1, 'Root node can have only one child') + } + Node.prototype._useArgs = function useArgs(args) { + var state = this._baseState + var children = args.filter(function (arg) { + return arg instanceof this.constructor + }, this) + args = args.filter(function (arg) { + return !(arg instanceof this.constructor) + }, this) + if (children.length !== 0) { + assert(state.children === null) + state.children = children + children.forEach(function (child) { + child._baseState.parent = this + }, this) + } + if (args.length !== 0) { + assert(state.args === null) + state.args = args + state.reverseArgs = args.map(function (arg) { + if (typeof arg !== 'object' || arg.constructor !== Object) return arg + var res = {} + Object.keys(arg).forEach(function (key) { + if (key == (key | 0)) key |= 0 + var value = arg[key] + res[value] = key + }) + return res + }) + } + } + overrided.forEach(function (method) { + Node.prototype[method] = function _overrided() { + var state = this._baseState + throw new Error(method + ' not implemented for encoding: ' + state.enc) + } + }) + tags.forEach(function (tag) { + Node.prototype[tag] = function _tagMethod() { + var state = this._baseState + var args = Array.prototype.slice.call(arguments) + assert(state.tag === null) + state.tag = tag + this._useArgs(args) + return this + } + }) + Node.prototype.use = function use(item) { + assert(item) + var state = this._baseState + assert(state.use === null) + state.use = item + return this + } + Node.prototype.optional = function optional() { + var state = this._baseState + state.optional = true + return this + } + Node.prototype.def = function def(val) { + var state = this._baseState + assert(state['default'] === null) + state['default'] = val + state.optional = true + return this + } + Node.prototype.explicit = function explicit(num) { + var state = this._baseState + assert(state.explicit === null && state.implicit === null) + state.explicit = num + return this + } + Node.prototype.implicit = function implicit(num) { + var state = this._baseState + assert(state.explicit === null && state.implicit === null) + state.implicit = num + return this + } + Node.prototype.obj = function obj() { + var state = this._baseState + var args = Array.prototype.slice.call(arguments) + state.obj = true + if (args.length !== 0) this._useArgs(args) + return this + } + Node.prototype.key = function key(newKey) { + var state = this._baseState + assert(state.key === null) + state.key = newKey + return this + } + Node.prototype.any = function any() { + var state = this._baseState + state.any = true + return this + } + Node.prototype.choice = function choice(obj) { + var state = this._baseState + assert(state.choice === null) + state.choice = obj + this._useArgs( + Object.keys(obj).map(function (key) { + return obj[key] + }) + ) + return this + } + Node.prototype.contains = function contains(item) { + var state = this._baseState + assert(state.use === null) + state.contains = item + return this + } + Node.prototype._decode = function decode(input, options) { + var state = this._baseState + if (state.parent === null) + return input.wrapResult(state.children[0]._decode(input, options)) + var result = state['default'] + var present = true + var prevKey = null + if (state.key !== null) prevKey = input.enterKey(state.key) + if (state.optional) { + var tag = null + if (state.explicit !== null) tag = state.explicit + else if (state.implicit !== null) tag = state.implicit + else if (state.tag !== null) tag = state.tag + if (tag === null && !state.any) { + var save = input.save() + try { + if (state.choice === null) this._decodeGeneric(state.tag, input, options) + else this._decodeChoice(input, options) + present = true + } catch (e) { + present = false + } + input.restore(save) + } else { + present = this._peekTag(input, tag, state.any) + if (input.isError(present)) return present + } + } + var prevObj + if (state.obj && present) prevObj = input.enterObject() + if (present) { + if (state.explicit !== null) { + var explicit = this._decodeTag(input, state.explicit) + if (input.isError(explicit)) return explicit + input = explicit + } + var start = input.offset + if (state.use === null && state.choice === null) { + if (state.any) var save = input.save() + var body = this._decodeTag( + input, + state.implicit !== null ? state.implicit : state.tag, + state.any + ) + if (input.isError(body)) return body + if (state.any) result = input.raw(save) + else input = body + } + if (options && options.track && state.tag !== null) + options.track(input.path(), start, input.length, 'tagged') + if (options && options.track && state.tag !== null) + options.track(input.path(), input.offset, input.length, 'content') + if (state.any) result = result + else if (state.choice === null) + result = this._decodeGeneric(state.tag, input, options) + else result = this._decodeChoice(input, options) + if (input.isError(result)) return result + if (!state.any && state.choice === null && state.children !== null) { + state.children.forEach(function decodeChildren(child) { + child._decode(input, options) + }) + } + if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) { + var data = new DecoderBuffer(result) + result = this._getUse(state.contains, input._reporterState.obj)._decode( + data, + options + ) + } + } + if (state.obj && present) result = input.leaveObject(prevObj) + if (state.key !== null && (result !== null || present === true)) + input.leaveKey(prevKey, state.key, result) + else if (prevKey !== null) input.exitKey(prevKey) + return result + } + Node.prototype._decodeGeneric = function decodeGeneric(tag, input, options) { + var state = this._baseState + if (tag === 'seq' || tag === 'set') return null + if (tag === 'seqof' || tag === 'setof') + return this._decodeList(input, tag, state.args[0], options) + else if (/str$/.test(tag)) return this._decodeStr(input, tag, options) + else if (tag === 'objid' && state.args) + return this._decodeObjid(input, state.args[0], state.args[1], options) + else if (tag === 'objid') return this._decodeObjid(input, null, null, options) + else if (tag === 'gentime' || tag === 'utctime') + return this._decodeTime(input, tag, options) + else if (tag === 'null_') return this._decodeNull(input, options) + else if (tag === 'bool') return this._decodeBool(input, options) + else if (tag === 'objDesc') return this._decodeStr(input, tag, options) + else if (tag === 'int' || tag === 'enum') + return this._decodeInt(input, state.args && state.args[0], options) + if (state.use !== null) { + return this._getUse(state.use, input._reporterState.obj)._decode(input, options) + } else { + return input.error('unknown tag: ' + tag) + } + } + Node.prototype._getUse = function _getUse(entity, obj) { + var state = this._baseState + state.useDecoder = this._use(entity, obj) + assert(state.useDecoder._baseState.parent === null) + state.useDecoder = state.useDecoder._baseState.children[0] + if (state.implicit !== state.useDecoder._baseState.implicit) { + state.useDecoder = state.useDecoder.clone() + state.useDecoder._baseState.implicit = state.implicit + } + return state.useDecoder + } + Node.prototype._decodeChoice = function decodeChoice(input, options) { + var state = this._baseState + var result = null + var match = false + Object.keys(state.choice).some(function (key) { + var save = input.save() + var node = state.choice[key] + try { + var value = node._decode(input, options) + if (input.isError(value)) return false + result = { type: key, value: value } + match = true + } catch (e) { + input.restore(save) + return false + } + return true + }, this) + if (!match) return input.error('Choice not matched') + return result + } + Node.prototype._createEncoderBuffer = function createEncoderBuffer(data) { + return new EncoderBuffer(data, this.reporter) + } + Node.prototype._encode = function encode(data, reporter, parent) { + var state = this._baseState + if (state['default'] !== null && state['default'] === data) return + var result = this._encodeValue(data, reporter, parent) + if (result === undefined) return + if (this._skipDefault(result, reporter, parent)) return + return result + } + Node.prototype._encodeValue = function encode(data, reporter, parent) { + var state = this._baseState + if (state.parent === null) + return state.children[0]._encode(data, reporter || new Reporter()) + var result = null + this.reporter = reporter + if (state.optional && data === undefined) { + if (state['default'] !== null) data = state['default'] + else return + } + var content = null + var primitive = false + if (state.any) { + result = this._createEncoderBuffer(data) + } else if (state.choice) { + result = this._encodeChoice(data, reporter) + } else if (state.contains) { + content = this._getUse(state.contains, parent)._encode(data, reporter) + primitive = true + } else if (state.children) { + content = state.children + .map(function (child) { + if (child._baseState.tag === 'null_') return child._encode(null, reporter, data) + if (child._baseState.key === null) + return reporter.error('Child should have a key') + var prevKey = reporter.enterKey(child._baseState.key) + if (typeof data !== 'object') + return reporter.error('Child expected, but input is not object') + var res = child._encode(data[child._baseState.key], reporter, data) + reporter.leaveKey(prevKey) + return res + }, this) + .filter(function (child) { + return child + }) + content = this._createEncoderBuffer(content) + } else { + if (state.tag === 'seqof' || state.tag === 'setof') { + if (!(state.args && state.args.length === 1)) + return reporter.error('Too many args for : ' + state.tag) + if (!Array.isArray(data)) + return reporter.error('seqof/setof, but data is not Array') + var child = this.clone() + child._baseState.implicit = null + content = this._createEncoderBuffer( + data.map(function (item) { + var state = this._baseState + return this._getUse(state.args[0], data)._encode(item, reporter) + }, child) + ) + } else if (state.use !== null) { + result = this._getUse(state.use, parent)._encode(data, reporter) + } else { + content = this._encodePrimitive(state.tag, data) + primitive = true + } + } + var result + if (!state.any && state.choice === null) { + var tag = state.implicit !== null ? state.implicit : state.tag + var cls = state.implicit === null ? 'universal' : 'context' + if (tag === null) { + if (state.use === null) reporter.error('Tag could be omitted only for .use()') + } else { + if (state.use === null) result = this._encodeComposite(tag, primitive, cls, content) + } + } + if (state.explicit !== null) + result = this._encodeComposite(state.explicit, false, 'context', result) + return result + } + Node.prototype._encodeChoice = function encodeChoice(data, reporter) { + var state = this._baseState + var node = state.choice[data.type] + if (!node) { + assert( + false, + data.type + ' not found in ' + JSON.stringify(Object.keys(state.choice)) + ) + } + return node._encode(data.value, reporter) + } + Node.prototype._encodePrimitive = function encodePrimitive(tag, data) { + var state = this._baseState + if (/str$/.test(tag)) return this._encodeStr(data, tag) + else if (tag === 'objid' && state.args) + return this._encodeObjid(data, state.reverseArgs[0], state.args[1]) + else if (tag === 'objid') return this._encodeObjid(data, null, null) + else if (tag === 'gentime' || tag === 'utctime') return this._encodeTime(data, tag) + else if (tag === 'null_') return this._encodeNull() + else if (tag === 'int' || tag === 'enum') + return this._encodeInt(data, state.args && state.reverseArgs[0]) + else if (tag === 'bool') return this._encodeBool(data) + else if (tag === 'objDesc') return this._encodeStr(data, tag) + else throw new Error('Unsupported tag: ' + tag) + } + Node.prototype._isNumstr = function isNumstr(str) { + return /^[0-9 ]*$/.test(str) + } + Node.prototype._isPrintstr = function isPrintstr(str) { + return /^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(str) + } + }, + { '../base': 4, 'minimalistic-assert': 158 } + ], + 6: [ + function (require, module, exports) { + var inherits = require('inherits') + function Reporter(options) { + this._reporterState = { obj: null, path: [], options: options || {}, errors: [] } + } + exports.Reporter = Reporter + Reporter.prototype.isError = function isError(obj) { + return obj instanceof ReporterError + } + Reporter.prototype.save = function save() { + var state = this._reporterState + return { obj: state.obj, pathLen: state.path.length } + } + Reporter.prototype.restore = function restore(data) { + var state = this._reporterState + state.obj = data.obj + state.path = state.path.slice(0, data.pathLen) + } + Reporter.prototype.enterKey = function enterKey(key) { + return this._reporterState.path.push(key) + } + Reporter.prototype.exitKey = function exitKey(index) { + var state = this._reporterState + state.path = state.path.slice(0, index - 1) + } + Reporter.prototype.leaveKey = function leaveKey(index, key, value) { + var state = this._reporterState + this.exitKey(index) + if (state.obj !== null) state.obj[key] = value + } + Reporter.prototype.path = function path() { + return this._reporterState.path.join('/') + } + Reporter.prototype.enterObject = function enterObject() { + var state = this._reporterState + var prev = state.obj + state.obj = {} + return prev + } + Reporter.prototype.leaveObject = function leaveObject(prev) { + var state = this._reporterState + var now = state.obj + state.obj = prev + return now + } + Reporter.prototype.error = function error(msg) { + var err + var state = this._reporterState + var inherited = msg instanceof ReporterError + if (inherited) { + err = msg + } else { + err = new ReporterError( + state.path + .map(function (elem) { + return '[' + JSON.stringify(elem) + ']' + }) + .join(''), + msg.message || msg, + msg.stack + ) + } + if (!state.options.partial) throw err + if (!inherited) state.errors.push(err) + return err + } + Reporter.prototype.wrapResult = function wrapResult(result) { + var state = this._reporterState + if (!state.options.partial) return result + return { result: this.isError(result) ? null : result, errors: state.errors } + } + function ReporterError(path, msg) { + this.path = path + this.rethrow(msg) + } + inherits(ReporterError, Error) + ReporterError.prototype.rethrow = function rethrow(msg) { + this.message = msg + ' at: ' + (this.path || '(shallow)') + if (Error.captureStackTrace) Error.captureStackTrace(this, ReporterError) + if (!this.stack) { + try { + throw new Error(this.message) + } catch (e) { + this.stack = e.stack + } + } + return this + } + }, + { inherits: 151 } + ], + 7: [ + function (require, module, exports) { + var constants = require('../constants') + exports.tagClass = { 0: 'universal', 1: 'application', 2: 'context', 3: 'private' } + exports.tagClassByName = constants._reverse(exports.tagClass) + exports.tag = { + 0: 'end', + 1: 'bool', + 2: 'int', + 3: 'bitstr', + 4: 'octstr', + 5: 'null_', + 6: 'objid', + 7: 'objDesc', + 8: 'external', + 9: 'real', + 10: 'enum', + 11: 'embed', + 12: 'utf8str', + 13: 'relativeOid', + 16: 'seq', + 17: 'set', + 18: 'numstr', + 19: 'printstr', + 20: 't61str', + 21: 'videostr', + 22: 'ia5str', + 23: 'utctime', + 24: 'gentime', + 25: 'graphstr', + 26: 'iso646str', + 27: 'genstr', + 28: 'unistr', + 29: 'charstr', + 30: 'bmpstr' + } + exports.tagByName = constants._reverse(exports.tag) + }, + { '../constants': 8 } + ], + 8: [ + function (require, module, exports) { + var constants = exports + constants._reverse = function reverse(map) { + var res = {} + Object.keys(map).forEach(function (key) { + if ((key | 0) == key) key = key | 0 + var value = map[key] + res[value] = key + }) + return res + } + constants.der = require('./der') + }, + { './der': 7 } + ], + 9: [ + function (require, module, exports) { + var inherits = require('inherits') + var asn1 = require('../../asn1') + var base = asn1.base + var bignum = asn1.bignum + var der = asn1.constants.der + function DERDecoder(entity) { + this.enc = 'der' + this.name = entity.name + this.entity = entity + this.tree = new DERNode() + this.tree._init(entity.body) + } + module.exports = DERDecoder + DERDecoder.prototype.decode = function decode(data, options) { + if (!(data instanceof base.DecoderBuffer)) data = new base.DecoderBuffer(data, options) + return this.tree._decode(data, options) + } + function DERNode(parent) { + base.Node.call(this, 'der', parent) + } + inherits(DERNode, base.Node) + DERNode.prototype._peekTag = function peekTag(buffer, tag, any) { + if (buffer.isEmpty()) return false + var state = buffer.save() + var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: "' + tag + '"') + if (buffer.isError(decodedTag)) return decodedTag + buffer.restore(state) + return ( + decodedTag.tag === tag || + decodedTag.tagStr === tag || + decodedTag.tagStr + 'of' === tag || + any + ) + } + DERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) { + var decodedTag = derDecodeTag(buffer, 'Failed to decode tag of "' + tag + '"') + if (buffer.isError(decodedTag)) return decodedTag + var len = derDecodeLen( + buffer, + decodedTag.primitive, + 'Failed to get length of "' + tag + '"' + ) + if (buffer.isError(len)) return len + if ( + !any && + decodedTag.tag !== tag && + decodedTag.tagStr !== tag && + decodedTag.tagStr + 'of' !== tag + ) { + return buffer.error('Failed to match tag: "' + tag + '"') + } + if (decodedTag.primitive || len !== null) + return buffer.skip(len, 'Failed to match body of: "' + tag + '"') + var state = buffer.save() + var res = this._skipUntilEnd( + buffer, + 'Failed to skip indefinite length body: "' + this.tag + '"' + ) + if (buffer.isError(res)) return res + len = buffer.offset - state.offset + buffer.restore(state) + return buffer.skip(len, 'Failed to match body of: "' + tag + '"') + } + DERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) { + while (true) { + var tag = derDecodeTag(buffer, fail) + if (buffer.isError(tag)) return tag + var len = derDecodeLen(buffer, tag.primitive, fail) + if (buffer.isError(len)) return len + var res + if (tag.primitive || len !== null) res = buffer.skip(len) + else res = this._skipUntilEnd(buffer, fail) + if (buffer.isError(res)) return res + if (tag.tagStr === 'end') break + } + } + DERNode.prototype._decodeList = function decodeList(buffer, tag, decoder, options) { + var result = [] + while (!buffer.isEmpty()) { + var possibleEnd = this._peekTag(buffer, 'end') + if (buffer.isError(possibleEnd)) return possibleEnd + var res = decoder.decode(buffer, 'der', options) + if (buffer.isError(res) && possibleEnd) break + result.push(res) + } + return result + } + DERNode.prototype._decodeStr = function decodeStr(buffer, tag) { + if (tag === 'bitstr') { + var unused = buffer.readUInt8() + if (buffer.isError(unused)) return unused + return { unused: unused, data: buffer.raw() } + } else if (tag === 'bmpstr') { + var raw = buffer.raw() + if (raw.length % 2 === 1) + return buffer.error('Decoding of string type: bmpstr length mismatch') + var str = '' + for (var i = 0; i < raw.length / 2; i++) { + str += String.fromCharCode(raw.readUInt16BE(i * 2)) + } + return str + } else if (tag === 'numstr') { + var numstr = buffer.raw().toString('ascii') + if (!this._isNumstr(numstr)) { + return buffer.error('Decoding of string type: ' + 'numstr unsupported characters') + } + return numstr + } else if (tag === 'octstr') { + return buffer.raw() + } else if (tag === 'objDesc') { + return buffer.raw() + } else if (tag === 'printstr') { + var printstr = buffer.raw().toString('ascii') + if (!this._isPrintstr(printstr)) { + return buffer.error('Decoding of string type: ' + 'printstr unsupported characters') + } + return printstr + } else if (/str$/.test(tag)) { + return buffer.raw().toString() + } else { + return buffer.error('Decoding of string type: ' + tag + ' unsupported') + } + } + DERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) { + var result + var identifiers = [] + var ident = 0 + while (!buffer.isEmpty()) { + var subident = buffer.readUInt8() + ident <<= 7 + ident |= subident & 127 + if ((subident & 128) === 0) { + identifiers.push(ident) + ident = 0 + } + } + if (subident & 128) identifiers.push(ident) + var first = (identifiers[0] / 40) | 0 + var second = identifiers[0] % 40 + if (relative) result = identifiers + else result = [first, second].concat(identifiers.slice(1)) + if (values) { + var tmp = values[result.join(' ')] + if (tmp === undefined) tmp = values[result.join('.')] + if (tmp !== undefined) result = tmp + } + return result + } + DERNode.prototype._decodeTime = function decodeTime(buffer, tag) { + var str = buffer.raw().toString() + if (tag === 'gentime') { + var year = str.slice(0, 4) | 0 + var mon = str.slice(4, 6) | 0 + var day = str.slice(6, 8) | 0 + var hour = str.slice(8, 10) | 0 + var min = str.slice(10, 12) | 0 + var sec = str.slice(12, 14) | 0 + } else if (tag === 'utctime') { + var year = str.slice(0, 2) | 0 + var mon = str.slice(2, 4) | 0 + var day = str.slice(4, 6) | 0 + var hour = str.slice(6, 8) | 0 + var min = str.slice(8, 10) | 0 + var sec = str.slice(10, 12) | 0 + if (year < 70) year = 2e3 + year + else year = 1900 + year + } else { + return buffer.error('Decoding ' + tag + ' time is not supported yet') + } + return Date.UTC(year, mon - 1, day, hour, min, sec, 0) + } + DERNode.prototype._decodeNull = function decodeNull(buffer) { + return null + } + DERNode.prototype._decodeBool = function decodeBool(buffer) { + var res = buffer.readUInt8() + if (buffer.isError(res)) return res + else return res !== 0 + } + DERNode.prototype._decodeInt = function decodeInt(buffer, values) { + var raw = buffer.raw() + var res = new bignum(raw) + if (values) res = values[res.toString(10)] || res + return res + } + DERNode.prototype._use = function use(entity, obj) { + if (typeof entity === 'function') entity = entity(obj) + return entity._getDecoder('der').tree + } + function derDecodeTag(buf, fail) { + var tag = buf.readUInt8(fail) + if (buf.isError(tag)) return tag + var cls = der.tagClass[tag >> 6] + var primitive = (tag & 32) === 0 + if ((tag & 31) === 31) { + var oct = tag + tag = 0 + while ((oct & 128) === 128) { + oct = buf.readUInt8(fail) + if (buf.isError(oct)) return oct + tag <<= 7 + tag |= oct & 127 + } + } else { + tag &= 31 + } + var tagStr = der.tag[tag] + return { cls: cls, primitive: primitive, tag: tag, tagStr: tagStr } + } + function derDecodeLen(buf, primitive, fail) { + var len = buf.readUInt8(fail) + if (buf.isError(len)) return len + if (!primitive && len === 128) return null + if ((len & 128) === 0) { + return len + } + var num = len & 127 + if (num > 4) return buf.error('length octect is too long') + len = 0 + for (var i = 0; i < num; i++) { + len <<= 8 + var j = buf.readUInt8(fail) + if (buf.isError(j)) return j + len |= j + } + return len + } + }, + { '../../asn1': 1, inherits: 151 } + ], + 10: [ + function (require, module, exports) { + var decoders = exports + decoders.der = require('./der') + decoders.pem = require('./pem') + }, + { './der': 9, './pem': 11 } + ], + 11: [ + function (require, module, exports) { + var inherits = require('inherits') + var Buffer = require('buffer').Buffer + var DERDecoder = require('./der') + function PEMDecoder(entity) { + DERDecoder.call(this, entity) + this.enc = 'pem' + } + inherits(PEMDecoder, DERDecoder) + module.exports = PEMDecoder + PEMDecoder.prototype.decode = function decode(data, options) { + var lines = data.toString().split(/[\r\n]+/g) + var label = options.label.toUpperCase() + var re = /^-----(BEGIN|END) ([^-]+)-----$/ + var start = -1 + var end = -1 + for (var i = 0; i < lines.length; i++) { + var match = lines[i].match(re) + if (match === null) continue + if (match[2] !== label) continue + if (start === -1) { + if (match[1] !== 'BEGIN') break + start = i + } else { + if (match[1] !== 'END') break + end = i + break + } + } + if (start === -1 || end === -1) throw new Error('PEM section not found for: ' + label) + var base64 = lines.slice(start + 1, end).join('') + base64.replace(/[^a-z0-9\+\/=]+/gi, '') + var input = new Buffer(base64, 'base64') + return DERDecoder.prototype.decode.call(this, input, options) + } + }, + { './der': 9, buffer: 93, inherits: 151 } + ], + 12: [ + function (require, module, exports) { + var inherits = require('inherits') + var Buffer = require('buffer').Buffer + var asn1 = require('../../asn1') + var base = asn1.base + var der = asn1.constants.der + function DEREncoder(entity) { + this.enc = 'der' + this.name = entity.name + this.entity = entity + this.tree = new DERNode() + this.tree._init(entity.body) + } + module.exports = DEREncoder + DEREncoder.prototype.encode = function encode(data, reporter) { + return this.tree._encode(data, reporter).join() + } + function DERNode(parent) { + base.Node.call(this, 'der', parent) + } + inherits(DERNode, base.Node) + DERNode.prototype._encodeComposite = function encodeComposite( + tag, + primitive, + cls, + content + ) { + var encodedTag = encodeTag(tag, primitive, cls, this.reporter) + if (content.length < 128) { + var header = new Buffer(2) + header[0] = encodedTag + header[1] = content.length + return this._createEncoderBuffer([header, content]) + } + var lenOctets = 1 + for (var i = content.length; i >= 256; i >>= 8) lenOctets++ + var header = new Buffer(1 + 1 + lenOctets) + header[0] = encodedTag + header[1] = 128 | lenOctets + for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8) header[i] = j & 255 + return this._createEncoderBuffer([header, content]) + } + DERNode.prototype._encodeStr = function encodeStr(str, tag) { + if (tag === 'bitstr') { + return this._createEncoderBuffer([str.unused | 0, str.data]) + } else if (tag === 'bmpstr') { + var buf = new Buffer(str.length * 2) + for (var i = 0; i < str.length; i++) { + buf.writeUInt16BE(str.charCodeAt(i), i * 2) + } + return this._createEncoderBuffer(buf) + } else if (tag === 'numstr') { + if (!this._isNumstr(str)) { + return this.reporter.error( + 'Encoding of string type: numstr supports ' + 'only digits and space' + ) + } + return this._createEncoderBuffer(str) + } else if (tag === 'printstr') { + if (!this._isPrintstr(str)) { + return this.reporter.error( + 'Encoding of string type: printstr supports ' + + 'only latin upper and lower case letters, ' + + 'digits, space, apostrophe, left and rigth ' + + 'parenthesis, plus sign, comma, hyphen, ' + + 'dot, slash, colon, equal sign, ' + + 'question mark' + ) + } + return this._createEncoderBuffer(str) + } else if (/str$/.test(tag)) { + return this._createEncoderBuffer(str) + } else if (tag === 'objDesc') { + return this._createEncoderBuffer(str) + } else { + return this.reporter.error('Encoding of string type: ' + tag + ' unsupported') + } + } + DERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) { + if (typeof id === 'string') { + if (!values) return this.reporter.error('string objid given, but no values map found') + if (!values.hasOwnProperty(id)) + return this.reporter.error('objid not found in values map') + id = values[id].split(/[\s\.]+/g) + for (var i = 0; i < id.length; i++) id[i] |= 0 + } else if (Array.isArray(id)) { + id = id.slice() + for (var i = 0; i < id.length; i++) id[i] |= 0 + } + if (!Array.isArray(id)) { + return this.reporter.error( + 'objid() should be either array or string, ' + 'got: ' + JSON.stringify(id) + ) + } + if (!relative) { + if (id[1] >= 40) return this.reporter.error('Second objid identifier OOB') + id.splice(0, 2, id[0] * 40 + id[1]) + } + var size = 0 + for (var i = 0; i < id.length; i++) { + var ident = id[i] + for (size++; ident >= 128; ident >>= 7) size++ + } + var objid = new Buffer(size) + var offset = objid.length - 1 + for (var i = id.length - 1; i >= 0; i--) { + var ident = id[i] + objid[offset--] = ident & 127 + while ((ident >>= 7) > 0) objid[offset--] = 128 | (ident & 127) + } + return this._createEncoderBuffer(objid) + } + function two(num) { + if (num < 10) return '0' + num + else return num + } + DERNode.prototype._encodeTime = function encodeTime(time, tag) { + var str + var date = new Date(time) + if (tag === 'gentime') { + str = [ + two(date.getFullYear()), + two(date.getUTCMonth() + 1), + two(date.getUTCDate()), + two(date.getUTCHours()), + two(date.getUTCMinutes()), + two(date.getUTCSeconds()), + 'Z' + ].join('') + } else if (tag === 'utctime') { + str = [ + two(date.getFullYear() % 100), + two(date.getUTCMonth() + 1), + two(date.getUTCDate()), + two(date.getUTCHours()), + two(date.getUTCMinutes()), + two(date.getUTCSeconds()), + 'Z' + ].join('') + } else { + this.reporter.error('Encoding ' + tag + ' time is not supported yet') + } + return this._encodeStr(str, 'octstr') + } + DERNode.prototype._encodeNull = function encodeNull() { + return this._createEncoderBuffer('') + } + DERNode.prototype._encodeInt = function encodeInt(num, values) { + if (typeof num === 'string') { + if (!values) return this.reporter.error('String int or enum given, but no values map') + if (!values.hasOwnProperty(num)) { + return this.reporter.error("Values map doesn't contain: " + JSON.stringify(num)) + } + num = values[num] + } + if (typeof num !== 'number' && !Buffer.isBuffer(num)) { + var numArray = num.toArray() + if (!num.sign && numArray[0] & 128) { + numArray.unshift(0) + } + num = new Buffer(numArray) + } + if (Buffer.isBuffer(num)) { + var size = num.length + if (num.length === 0) size++ + var out = new Buffer(size) + num.copy(out) + if (num.length === 0) out[0] = 0 + return this._createEncoderBuffer(out) + } + if (num < 128) return this._createEncoderBuffer(num) + if (num < 256) return this._createEncoderBuffer([0, num]) + var size = 1 + for (var i = num; i >= 256; i >>= 8) size++ + var out = new Array(size) + for (var i = out.length - 1; i >= 0; i--) { + out[i] = num & 255 + num >>= 8 + } + if (out[0] & 128) { + out.unshift(0) + } + return this._createEncoderBuffer(new Buffer(out)) + } + DERNode.prototype._encodeBool = function encodeBool(value) { + return this._createEncoderBuffer(value ? 255 : 0) + } + DERNode.prototype._use = function use(entity, obj) { + if (typeof entity === 'function') entity = entity(obj) + return entity._getEncoder('der').tree + } + DERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) { + var state = this._baseState + var i + if (state['default'] === null) return false + var data = dataBuffer.join() + if (state.defaultBuffer === undefined) + state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join() + if (data.length !== state.defaultBuffer.length) return false + for (i = 0; i < data.length; i++) if (data[i] !== state.defaultBuffer[i]) return false + return true + } + function encodeTag(tag, primitive, cls, reporter) { + var res + if (tag === 'seqof') tag = 'seq' + else if (tag === 'setof') tag = 'set' + if (der.tagByName.hasOwnProperty(tag)) res = der.tagByName[tag] + else if (typeof tag === 'number' && (tag | 0) === tag) res = tag + else return reporter.error('Unknown tag: ' + tag) + if (res >= 31) return reporter.error('Multi-octet tag encoding unsupported') + if (!primitive) res |= 32 + res |= der.tagClassByName[cls || 'universal'] << 6 + return res + } + }, + { '../../asn1': 1, buffer: 93, inherits: 151 } + ], + 13: [ + function (require, module, exports) { + var encoders = exports + encoders.der = require('./der') + encoders.pem = require('./pem') + }, + { './der': 12, './pem': 14 } + ], + 14: [ + function (require, module, exports) { + var inherits = require('inherits') + var DEREncoder = require('./der') + function PEMEncoder(entity) { + DEREncoder.call(this, entity) + this.enc = 'pem' + } + inherits(PEMEncoder, DEREncoder) + module.exports = PEMEncoder + PEMEncoder.prototype.encode = function encode(data, options) { + var buf = DEREncoder.prototype.encode.call(this, data) + var p = buf.toString('base64') + var out = ['-----BEGIN ' + options.label + '-----'] + for (var i = 0; i < p.length; i += 64) out.push(p.slice(i, i + 64)) + out.push('-----END ' + options.label + '-----') + return out.join('\n') + } + }, + { './der': 12, inherits: 151 } + ], + 15: [ + function (require, module, exports) { + ;(function (module, exports) { + 'use strict' + function assert(val, msg) { + if (!val) throw new Error(msg || 'Assertion failed') + } + function inherits(ctor, superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } + function BN(number, base, endian) { + if (BN.isBN(number)) { + return number + } + this.negative = 0 + this.words = null + this.length = 0 + this.red = null + if (number !== null) { + if (base === 'le' || base === 'be') { + endian = base + base = 10 + } + this._init(number || 0, base || 10, endian || 'be') + } + } + if (typeof module === 'object') { + module.exports = BN + } else { + exports.BN = BN + } + BN.BN = BN + BN.wordSize = 26 + var Buffer + try { + Buffer = require('buffer').Buffer + } catch (e) {} + BN.isBN = function isBN(num) { + if (num instanceof BN) { + return true + } + return ( + num !== null && + typeof num === 'object' && + num.constructor.wordSize === BN.wordSize && + Array.isArray(num.words) + ) + } + BN.max = function max(left, right) { + if (left.cmp(right) > 0) return left + return right + } + BN.min = function min(left, right) { + if (left.cmp(right) < 0) return left + return right + } + BN.prototype._init = function init(number, base, endian) { + if (typeof number === 'number') { + return this._initNumber(number, base, endian) + } + if (typeof number === 'object') { + return this._initArray(number, base, endian) + } + if (base === 'hex') { + base = 16 + } + assert(base === (base | 0) && base >= 2 && base <= 36) + number = number.toString().replace(/\s+/g, '') + var start = 0 + if (number[0] === '-') { + start++ + } + if (base === 16) { + this._parseHex(number, start) + } else { + this._parseBase(number, base, start) + } + if (number[0] === '-') { + this.negative = 1 + } + this.strip() + if (endian !== 'le') return + this._initArray(this.toArray(), base, endian) + } + BN.prototype._initNumber = function _initNumber(number, base, endian) { + if (number < 0) { + this.negative = 1 + number = -number + } + if (number < 67108864) { + this.words = [number & 67108863] + this.length = 1 + } else if (number < 4503599627370496) { + this.words = [number & 67108863, (number / 67108864) & 67108863] + this.length = 2 + } else { + assert(number < 9007199254740992) + this.words = [number & 67108863, (number / 67108864) & 67108863, 1] + this.length = 3 + } + if (endian !== 'le') return + this._initArray(this.toArray(), base, endian) + } + BN.prototype._initArray = function _initArray(number, base, endian) { + assert(typeof number.length === 'number') + if (number.length <= 0) { + this.words = [0] + this.length = 1 + return this + } + this.length = Math.ceil(number.length / 3) + this.words = new Array(this.length) + for (var i = 0; i < this.length; i++) { + this.words[i] = 0 + } + var j, w + var off = 0 + if (endian === 'be') { + for (i = number.length - 1, j = 0; i >= 0; i -= 3) { + w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16) + this.words[j] |= (w << off) & 67108863 + this.words[j + 1] = (w >>> (26 - off)) & 67108863 + off += 24 + if (off >= 26) { + off -= 26 + j++ + } + } + } else if (endian === 'le') { + for (i = 0, j = 0; i < number.length; i += 3) { + w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16) + this.words[j] |= (w << off) & 67108863 + this.words[j + 1] = (w >>> (26 - off)) & 67108863 + off += 24 + if (off >= 26) { + off -= 26 + j++ + } + } + } + return this.strip() + } + function parseHex(str, start, end) { + var r = 0 + var len = Math.min(str.length, end) + for (var i = start; i < len; i++) { + var c = str.charCodeAt(i) - 48 + r <<= 4 + if (c >= 49 && c <= 54) { + r |= c - 49 + 10 + } else if (c >= 17 && c <= 22) { + r |= c - 17 + 10 + } else { + r |= c & 15 + } + } + return r + } + BN.prototype._parseHex = function _parseHex(number, start) { + this.length = Math.ceil((number.length - start) / 6) + this.words = new Array(this.length) + for (var i = 0; i < this.length; i++) { + this.words[i] = 0 + } + var j, w + var off = 0 + for (i = number.length - 6, j = 0; i >= start; i -= 6) { + w = parseHex(number, i, i + 6) + this.words[j] |= (w << off) & 67108863 + this.words[j + 1] |= (w >>> (26 - off)) & 4194303 + off += 24 + if (off >= 26) { + off -= 26 + j++ + } + } + if (i + 6 !== start) { + w = parseHex(number, start, i + 6) + this.words[j] |= (w << off) & 67108863 + this.words[j + 1] |= (w >>> (26 - off)) & 4194303 + } + this.strip() + } + function parseBase(str, start, end, mul) { + var r = 0 + var len = Math.min(str.length, end) + for (var i = start; i < len; i++) { + var c = str.charCodeAt(i) - 48 + r *= mul + if (c >= 49) { + r += c - 49 + 10 + } else if (c >= 17) { + r += c - 17 + 10 + } else { + r += c + } + } + return r + } + BN.prototype._parseBase = function _parseBase(number, base, start) { + this.words = [0] + this.length = 1 + for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { + limbLen++ + } + limbLen-- + limbPow = (limbPow / base) | 0 + var total = number.length - start + var mod = total % limbLen + var end = Math.min(total, total - mod) + start + var word = 0 + for (var i = start; i < end; i += limbLen) { + word = parseBase(number, i, i + limbLen, base) + this.imuln(limbPow) + if (this.words[0] + word < 67108864) { + this.words[0] += word + } else { + this._iaddn(word) + } + } + if (mod !== 0) { + var pow = 1 + word = parseBase(number, i, number.length, base) + for (i = 0; i < mod; i++) { + pow *= base + } + this.imuln(pow) + if (this.words[0] + word < 67108864) { + this.words[0] += word + } else { + this._iaddn(word) + } + } + } + BN.prototype.copy = function copy(dest) { + dest.words = new Array(this.length) + for (var i = 0; i < this.length; i++) { + dest.words[i] = this.words[i] + } + dest.length = this.length + dest.negative = this.negative + dest.red = this.red + } + BN.prototype.clone = function clone() { + var r = new BN(null) + this.copy(r) + return r + } + BN.prototype._expand = function _expand(size) { + while (this.length < size) { + this.words[this.length++] = 0 + } + return this + } + BN.prototype.strip = function strip() { + while (this.length > 1 && this.words[this.length - 1] === 0) { + this.length-- + } + return this._normSign() + } + BN.prototype._normSign = function _normSign() { + if (this.length === 1 && this.words[0] === 0) { + this.negative = 0 + } + return this + } + BN.prototype.inspect = function inspect() { + return (this.red ? '' + } + var zeros = [ + '', + '0', + '00', + '000', + '0000', + '00000', + '000000', + '0000000', + '00000000', + '000000000', + '0000000000', + '00000000000', + '000000000000', + '0000000000000', + '00000000000000', + '000000000000000', + '0000000000000000', + '00000000000000000', + '000000000000000000', + '0000000000000000000', + '00000000000000000000', + '000000000000000000000', + '0000000000000000000000', + '00000000000000000000000', + '000000000000000000000000', + '0000000000000000000000000' + ] + var groupSizes = [ + 0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 + ] + var groupBases = [ + 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, + 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, + 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, + 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176 + ] + BN.prototype.toString = function toString(base, padding) { + base = base || 10 + padding = padding | 0 || 1 + var out + if (base === 16 || base === 'hex') { + out = '' + var off = 0 + var carry = 0 + for (var i = 0; i < this.length; i++) { + var w = this.words[i] + var word = (((w << off) | carry) & 16777215).toString(16) + carry = (w >>> (24 - off)) & 16777215 + if (carry !== 0 || i !== this.length - 1) { + out = zeros[6 - word.length] + word + out + } else { + out = word + out + } + off += 2 + if (off >= 26) { + off -= 26 + i-- + } + } + if (carry !== 0) { + out = carry.toString(16) + out + } + while (out.length % padding !== 0) { + out = '0' + out + } + if (this.negative !== 0) { + out = '-' + out + } + return out + } + if (base === (base | 0) && base >= 2 && base <= 36) { + var groupSize = groupSizes[base] + var groupBase = groupBases[base] + out = '' + var c = this.clone() + c.negative = 0 + while (!c.isZero()) { + var r = c.modn(groupBase).toString(base) + c = c.idivn(groupBase) + if (!c.isZero()) { + out = zeros[groupSize - r.length] + r + out + } else { + out = r + out + } + } + if (this.isZero()) { + out = '0' + out + } + while (out.length % padding !== 0) { + out = '0' + out + } + if (this.negative !== 0) { + out = '-' + out + } + return out + } + assert(false, 'Base should be between 2 and 36') + } + BN.prototype.toNumber = function toNumber() { + var ret = this.words[0] + if (this.length === 2) { + ret += this.words[1] * 67108864 + } else if (this.length === 3 && this.words[2] === 1) { + ret += 4503599627370496 + this.words[1] * 67108864 + } else if (this.length > 2) { + assert(false, 'Number can only safely store up to 53 bits') + } + return this.negative !== 0 ? -ret : ret + } + BN.prototype.toJSON = function toJSON() { + return this.toString(16) + } + BN.prototype.toBuffer = function toBuffer(endian, length) { + assert(typeof Buffer !== 'undefined') + return this.toArrayLike(Buffer, endian, length) + } + BN.prototype.toArray = function toArray(endian, length) { + return this.toArrayLike(Array, endian, length) + } + BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { + var byteLength = this.byteLength() + var reqLength = length || Math.max(1, byteLength) + assert(byteLength <= reqLength, 'byte array longer than desired length') + assert(reqLength > 0, 'Requested array length <= 0') + this.strip() + var littleEndian = endian === 'le' + var res = new ArrayType(reqLength) + var b, i + var q = this.clone() + if (!littleEndian) { + for (i = 0; i < reqLength - byteLength; i++) { + res[i] = 0 + } + for (i = 0; !q.isZero(); i++) { + b = q.andln(255) + q.iushrn(8) + res[reqLength - i - 1] = b + } + } else { + for (i = 0; !q.isZero(); i++) { + b = q.andln(255) + q.iushrn(8) + res[i] = b + } + for (; i < reqLength; i++) { + res[i] = 0 + } + } + return res + } + if (Math.clz32) { + BN.prototype._countBits = function _countBits(w) { + return 32 - Math.clz32(w) + } + } else { + BN.prototype._countBits = function _countBits(w) { + var t = w + var r = 0 + if (t >= 4096) { + r += 13 + t >>>= 13 + } + if (t >= 64) { + r += 7 + t >>>= 7 + } + if (t >= 8) { + r += 4 + t >>>= 4 + } + if (t >= 2) { + r += 2 + t >>>= 2 + } + return r + t + } + } + BN.prototype._zeroBits = function _zeroBits(w) { + if (w === 0) return 26 + var t = w + var r = 0 + if ((t & 8191) === 0) { + r += 13 + t >>>= 13 + } + if ((t & 127) === 0) { + r += 7 + t >>>= 7 + } + if ((t & 15) === 0) { + r += 4 + t >>>= 4 + } + if ((t & 3) === 0) { + r += 2 + t >>>= 2 + } + if ((t & 1) === 0) { + r++ + } + return r + } + BN.prototype.bitLength = function bitLength() { + var w = this.words[this.length - 1] + var hi = this._countBits(w) + return (this.length - 1) * 26 + hi + } + function toBitArray(num) { + var w = new Array(num.bitLength()) + for (var bit = 0; bit < w.length; bit++) { + var off = (bit / 26) | 0 + var wbit = bit % 26 + w[bit] = (num.words[off] & (1 << wbit)) >>> wbit + } + return w + } + BN.prototype.zeroBits = function zeroBits() { + if (this.isZero()) return 0 + var r = 0 + for (var i = 0; i < this.length; i++) { + var b = this._zeroBits(this.words[i]) + r += b + if (b !== 26) break + } + return r + } + BN.prototype.byteLength = function byteLength() { + return Math.ceil(this.bitLength() / 8) + } + BN.prototype.toTwos = function toTwos(width) { + if (this.negative !== 0) { + return this.abs().inotn(width).iaddn(1) + } + return this.clone() + } + BN.prototype.fromTwos = function fromTwos(width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg() + } + return this.clone() + } + BN.prototype.isNeg = function isNeg() { + return this.negative !== 0 + } + BN.prototype.neg = function neg() { + return this.clone().ineg() + } + BN.prototype.ineg = function ineg() { + if (!this.isZero()) { + this.negative ^= 1 + } + return this + } + BN.prototype.iuor = function iuor(num) { + while (this.length < num.length) { + this.words[this.length++] = 0 + } + for (var i = 0; i < num.length; i++) { + this.words[i] = this.words[i] | num.words[i] + } + return this.strip() + } + BN.prototype.ior = function ior(num) { + assert((this.negative | num.negative) === 0) + return this.iuor(num) + } + BN.prototype.or = function or(num) { + if (this.length > num.length) return this.clone().ior(num) + return num.clone().ior(this) + } + BN.prototype.uor = function uor(num) { + if (this.length > num.length) return this.clone().iuor(num) + return num.clone().iuor(this) + } + BN.prototype.iuand = function iuand(num) { + var b + if (this.length > num.length) { + b = num + } else { + b = this + } + for (var i = 0; i < b.length; i++) { + this.words[i] = this.words[i] & num.words[i] + } + this.length = b.length + return this.strip() + } + BN.prototype.iand = function iand(num) { + assert((this.negative | num.negative) === 0) + return this.iuand(num) + } + BN.prototype.and = function and(num) { + if (this.length > num.length) return this.clone().iand(num) + return num.clone().iand(this) + } + BN.prototype.uand = function uand(num) { + if (this.length > num.length) return this.clone().iuand(num) + return num.clone().iuand(this) + } + BN.prototype.iuxor = function iuxor(num) { + var a + var b + if (this.length > num.length) { + a = this + b = num + } else { + a = num + b = this + } + for (var i = 0; i < b.length; i++) { + this.words[i] = a.words[i] ^ b.words[i] + } + if (this !== a) { + for (; i < a.length; i++) { + this.words[i] = a.words[i] + } + } + this.length = a.length + return this.strip() + } + BN.prototype.ixor = function ixor(num) { + assert((this.negative | num.negative) === 0) + return this.iuxor(num) + } + BN.prototype.xor = function xor(num) { + if (this.length > num.length) return this.clone().ixor(num) + return num.clone().ixor(this) + } + BN.prototype.uxor = function uxor(num) { + if (this.length > num.length) return this.clone().iuxor(num) + return num.clone().iuxor(this) + } + BN.prototype.inotn = function inotn(width) { + assert(typeof width === 'number' && width >= 0) + var bytesNeeded = Math.ceil(width / 26) | 0 + var bitsLeft = width % 26 + this._expand(bytesNeeded) + if (bitsLeft > 0) { + bytesNeeded-- + } + for (var i = 0; i < bytesNeeded; i++) { + this.words[i] = ~this.words[i] & 67108863 + } + if (bitsLeft > 0) { + this.words[i] = ~this.words[i] & (67108863 >> (26 - bitsLeft)) + } + return this.strip() + } + BN.prototype.notn = function notn(width) { + return this.clone().inotn(width) + } + BN.prototype.setn = function setn(bit, val) { + assert(typeof bit === 'number' && bit >= 0) + var off = (bit / 26) | 0 + var wbit = bit % 26 + this._expand(off + 1) + if (val) { + this.words[off] = this.words[off] | (1 << wbit) + } else { + this.words[off] = this.words[off] & ~(1 << wbit) + } + return this.strip() + } + BN.prototype.iadd = function iadd(num) { + var r + if (this.negative !== 0 && num.negative === 0) { + this.negative = 0 + r = this.isub(num) + this.negative ^= 1 + return this._normSign() + } else if (this.negative === 0 && num.negative !== 0) { + num.negative = 0 + r = this.isub(num) + num.negative = 1 + return r._normSign() + } + var a, b + if (this.length > num.length) { + a = this + b = num + } else { + a = num + b = this + } + var carry = 0 + for (var i = 0; i < b.length; i++) { + r = (a.words[i] | 0) + (b.words[i] | 0) + carry + this.words[i] = r & 67108863 + carry = r >>> 26 + } + for (; carry !== 0 && i < a.length; i++) { + r = (a.words[i] | 0) + carry + this.words[i] = r & 67108863 + carry = r >>> 26 + } + this.length = a.length + if (carry !== 0) { + this.words[this.length] = carry + this.length++ + } else if (a !== this) { + for (; i < a.length; i++) { + this.words[i] = a.words[i] + } + } + return this + } + BN.prototype.add = function add(num) { + var res + if (num.negative !== 0 && this.negative === 0) { + num.negative = 0 + res = this.sub(num) + num.negative ^= 1 + return res + } else if (num.negative === 0 && this.negative !== 0) { + this.negative = 0 + res = num.sub(this) + this.negative = 1 + return res + } + if (this.length > num.length) return this.clone().iadd(num) + return num.clone().iadd(this) + } + BN.prototype.isub = function isub(num) { + if (num.negative !== 0) { + num.negative = 0 + var r = this.iadd(num) + num.negative = 1 + return r._normSign() + } else if (this.negative !== 0) { + this.negative = 0 + this.iadd(num) + this.negative = 1 + return this._normSign() + } + var cmp = this.cmp(num) + if (cmp === 0) { + this.negative = 0 + this.length = 1 + this.words[0] = 0 + return this + } + var a, b + if (cmp > 0) { + a = this + b = num + } else { + a = num + b = this + } + var carry = 0 + for (var i = 0; i < b.length; i++) { + r = (a.words[i] | 0) - (b.words[i] | 0) + carry + carry = r >> 26 + this.words[i] = r & 67108863 + } + for (; carry !== 0 && i < a.length; i++) { + r = (a.words[i] | 0) + carry + carry = r >> 26 + this.words[i] = r & 67108863 + } + if (carry === 0 && i < a.length && a !== this) { + for (; i < a.length; i++) { + this.words[i] = a.words[i] + } + } + this.length = Math.max(this.length, i) + if (a !== this) { + this.negative = 1 + } + return this.strip() + } + BN.prototype.sub = function sub(num) { + return this.clone().isub(num) + } + function smallMulTo(self, num, out) { + out.negative = num.negative ^ self.negative + var len = (self.length + num.length) | 0 + out.length = len + len = (len - 1) | 0 + var a = self.words[0] | 0 + var b = num.words[0] | 0 + var r = a * b + var lo = r & 67108863 + var carry = (r / 67108864) | 0 + out.words[0] = lo + for (var k = 1; k < len; k++) { + var ncarry = carry >>> 26 + var rword = carry & 67108863 + var maxJ = Math.min(k, num.length - 1) + for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { + var i = (k - j) | 0 + a = self.words[i] | 0 + b = num.words[j] | 0 + r = a * b + rword + ncarry += (r / 67108864) | 0 + rword = r & 67108863 + } + out.words[k] = rword | 0 + carry = ncarry | 0 + } + if (carry !== 0) { + out.words[k] = carry | 0 + } else { + out.length-- + } + return out.strip() + } + var comb10MulTo = function comb10MulTo(self, num, out) { + var a = self.words + var b = num.words + var o = out.words + var c = 0 + var lo + var mid + var hi + var a0 = a[0] | 0 + var al0 = a0 & 8191 + var ah0 = a0 >>> 13 + var a1 = a[1] | 0 + var al1 = a1 & 8191 + var ah1 = a1 >>> 13 + var a2 = a[2] | 0 + var al2 = a2 & 8191 + var ah2 = a2 >>> 13 + var a3 = a[3] | 0 + var al3 = a3 & 8191 + var ah3 = a3 >>> 13 + var a4 = a[4] | 0 + var al4 = a4 & 8191 + var ah4 = a4 >>> 13 + var a5 = a[5] | 0 + var al5 = a5 & 8191 + var ah5 = a5 >>> 13 + var a6 = a[6] | 0 + var al6 = a6 & 8191 + var ah6 = a6 >>> 13 + var a7 = a[7] | 0 + var al7 = a7 & 8191 + var ah7 = a7 >>> 13 + var a8 = a[8] | 0 + var al8 = a8 & 8191 + var ah8 = a8 >>> 13 + var a9 = a[9] | 0 + var al9 = a9 & 8191 + var ah9 = a9 >>> 13 + var b0 = b[0] | 0 + var bl0 = b0 & 8191 + var bh0 = b0 >>> 13 + var b1 = b[1] | 0 + var bl1 = b1 & 8191 + var bh1 = b1 >>> 13 + var b2 = b[2] | 0 + var bl2 = b2 & 8191 + var bh2 = b2 >>> 13 + var b3 = b[3] | 0 + var bl3 = b3 & 8191 + var bh3 = b3 >>> 13 + var b4 = b[4] | 0 + var bl4 = b4 & 8191 + var bh4 = b4 >>> 13 + var b5 = b[5] | 0 + var bl5 = b5 & 8191 + var bh5 = b5 >>> 13 + var b6 = b[6] | 0 + var bl6 = b6 & 8191 + var bh6 = b6 >>> 13 + var b7 = b[7] | 0 + var bl7 = b7 & 8191 + var bh7 = b7 >>> 13 + var b8 = b[8] | 0 + var bl8 = b8 & 8191 + var bh8 = b8 >>> 13 + var b9 = b[9] | 0 + var bl9 = b9 & 8191 + var bh9 = b9 >>> 13 + out.negative = self.negative ^ num.negative + out.length = 19 + lo = Math.imul(al0, bl0) + mid = Math.imul(al0, bh0) + mid = (mid + Math.imul(ah0, bl0)) | 0 + hi = Math.imul(ah0, bh0) + var w0 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0 + w0 &= 67108863 + lo = Math.imul(al1, bl0) + mid = Math.imul(al1, bh0) + mid = (mid + Math.imul(ah1, bl0)) | 0 + hi = Math.imul(ah1, bh0) + lo = (lo + Math.imul(al0, bl1)) | 0 + mid = (mid + Math.imul(al0, bh1)) | 0 + mid = (mid + Math.imul(ah0, bl1)) | 0 + hi = (hi + Math.imul(ah0, bh1)) | 0 + var w1 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0 + w1 &= 67108863 + lo = Math.imul(al2, bl0) + mid = Math.imul(al2, bh0) + mid = (mid + Math.imul(ah2, bl0)) | 0 + hi = Math.imul(ah2, bh0) + lo = (lo + Math.imul(al1, bl1)) | 0 + mid = (mid + Math.imul(al1, bh1)) | 0 + mid = (mid + Math.imul(ah1, bl1)) | 0 + hi = (hi + Math.imul(ah1, bh1)) | 0 + lo = (lo + Math.imul(al0, bl2)) | 0 + mid = (mid + Math.imul(al0, bh2)) | 0 + mid = (mid + Math.imul(ah0, bl2)) | 0 + hi = (hi + Math.imul(ah0, bh2)) | 0 + var w2 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0 + w2 &= 67108863 + lo = Math.imul(al3, bl0) + mid = Math.imul(al3, bh0) + mid = (mid + Math.imul(ah3, bl0)) | 0 + hi = Math.imul(ah3, bh0) + lo = (lo + Math.imul(al2, bl1)) | 0 + mid = (mid + Math.imul(al2, bh1)) | 0 + mid = (mid + Math.imul(ah2, bl1)) | 0 + hi = (hi + Math.imul(ah2, bh1)) | 0 + lo = (lo + Math.imul(al1, bl2)) | 0 + mid = (mid + Math.imul(al1, bh2)) | 0 + mid = (mid + Math.imul(ah1, bl2)) | 0 + hi = (hi + Math.imul(ah1, bh2)) | 0 + lo = (lo + Math.imul(al0, bl3)) | 0 + mid = (mid + Math.imul(al0, bh3)) | 0 + mid = (mid + Math.imul(ah0, bl3)) | 0 + hi = (hi + Math.imul(ah0, bh3)) | 0 + var w3 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0 + w3 &= 67108863 + lo = Math.imul(al4, bl0) + mid = Math.imul(al4, bh0) + mid = (mid + Math.imul(ah4, bl0)) | 0 + hi = Math.imul(ah4, bh0) + lo = (lo + Math.imul(al3, bl1)) | 0 + mid = (mid + Math.imul(al3, bh1)) | 0 + mid = (mid + Math.imul(ah3, bl1)) | 0 + hi = (hi + Math.imul(ah3, bh1)) | 0 + lo = (lo + Math.imul(al2, bl2)) | 0 + mid = (mid + Math.imul(al2, bh2)) | 0 + mid = (mid + Math.imul(ah2, bl2)) | 0 + hi = (hi + Math.imul(ah2, bh2)) | 0 + lo = (lo + Math.imul(al1, bl3)) | 0 + mid = (mid + Math.imul(al1, bh3)) | 0 + mid = (mid + Math.imul(ah1, bl3)) | 0 + hi = (hi + Math.imul(ah1, bh3)) | 0 + lo = (lo + Math.imul(al0, bl4)) | 0 + mid = (mid + Math.imul(al0, bh4)) | 0 + mid = (mid + Math.imul(ah0, bl4)) | 0 + hi = (hi + Math.imul(ah0, bh4)) | 0 + var w4 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0 + w4 &= 67108863 + lo = Math.imul(al5, bl0) + mid = Math.imul(al5, bh0) + mid = (mid + Math.imul(ah5, bl0)) | 0 + hi = Math.imul(ah5, bh0) + lo = (lo + Math.imul(al4, bl1)) | 0 + mid = (mid + Math.imul(al4, bh1)) | 0 + mid = (mid + Math.imul(ah4, bl1)) | 0 + hi = (hi + Math.imul(ah4, bh1)) | 0 + lo = (lo + Math.imul(al3, bl2)) | 0 + mid = (mid + Math.imul(al3, bh2)) | 0 + mid = (mid + Math.imul(ah3, bl2)) | 0 + hi = (hi + Math.imul(ah3, bh2)) | 0 + lo = (lo + Math.imul(al2, bl3)) | 0 + mid = (mid + Math.imul(al2, bh3)) | 0 + mid = (mid + Math.imul(ah2, bl3)) | 0 + hi = (hi + Math.imul(ah2, bh3)) | 0 + lo = (lo + Math.imul(al1, bl4)) | 0 + mid = (mid + Math.imul(al1, bh4)) | 0 + mid = (mid + Math.imul(ah1, bl4)) | 0 + hi = (hi + Math.imul(ah1, bh4)) | 0 + lo = (lo + Math.imul(al0, bl5)) | 0 + mid = (mid + Math.imul(al0, bh5)) | 0 + mid = (mid + Math.imul(ah0, bl5)) | 0 + hi = (hi + Math.imul(ah0, bh5)) | 0 + var w5 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0 + w5 &= 67108863 + lo = Math.imul(al6, bl0) + mid = Math.imul(al6, bh0) + mid = (mid + Math.imul(ah6, bl0)) | 0 + hi = Math.imul(ah6, bh0) + lo = (lo + Math.imul(al5, bl1)) | 0 + mid = (mid + Math.imul(al5, bh1)) | 0 + mid = (mid + Math.imul(ah5, bl1)) | 0 + hi = (hi + Math.imul(ah5, bh1)) | 0 + lo = (lo + Math.imul(al4, bl2)) | 0 + mid = (mid + Math.imul(al4, bh2)) | 0 + mid = (mid + Math.imul(ah4, bl2)) | 0 + hi = (hi + Math.imul(ah4, bh2)) | 0 + lo = (lo + Math.imul(al3, bl3)) | 0 + mid = (mid + Math.imul(al3, bh3)) | 0 + mid = (mid + Math.imul(ah3, bl3)) | 0 + hi = (hi + Math.imul(ah3, bh3)) | 0 + lo = (lo + Math.imul(al2, bl4)) | 0 + mid = (mid + Math.imul(al2, bh4)) | 0 + mid = (mid + Math.imul(ah2, bl4)) | 0 + hi = (hi + Math.imul(ah2, bh4)) | 0 + lo = (lo + Math.imul(al1, bl5)) | 0 + mid = (mid + Math.imul(al1, bh5)) | 0 + mid = (mid + Math.imul(ah1, bl5)) | 0 + hi = (hi + Math.imul(ah1, bh5)) | 0 + lo = (lo + Math.imul(al0, bl6)) | 0 + mid = (mid + Math.imul(al0, bh6)) | 0 + mid = (mid + Math.imul(ah0, bl6)) | 0 + hi = (hi + Math.imul(ah0, bh6)) | 0 + var w6 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0 + w6 &= 67108863 + lo = Math.imul(al7, bl0) + mid = Math.imul(al7, bh0) + mid = (mid + Math.imul(ah7, bl0)) | 0 + hi = Math.imul(ah7, bh0) + lo = (lo + Math.imul(al6, bl1)) | 0 + mid = (mid + Math.imul(al6, bh1)) | 0 + mid = (mid + Math.imul(ah6, bl1)) | 0 + hi = (hi + Math.imul(ah6, bh1)) | 0 + lo = (lo + Math.imul(al5, bl2)) | 0 + mid = (mid + Math.imul(al5, bh2)) | 0 + mid = (mid + Math.imul(ah5, bl2)) | 0 + hi = (hi + Math.imul(ah5, bh2)) | 0 + lo = (lo + Math.imul(al4, bl3)) | 0 + mid = (mid + Math.imul(al4, bh3)) | 0 + mid = (mid + Math.imul(ah4, bl3)) | 0 + hi = (hi + Math.imul(ah4, bh3)) | 0 + lo = (lo + Math.imul(al3, bl4)) | 0 + mid = (mid + Math.imul(al3, bh4)) | 0 + mid = (mid + Math.imul(ah3, bl4)) | 0 + hi = (hi + Math.imul(ah3, bh4)) | 0 + lo = (lo + Math.imul(al2, bl5)) | 0 + mid = (mid + Math.imul(al2, bh5)) | 0 + mid = (mid + Math.imul(ah2, bl5)) | 0 + hi = (hi + Math.imul(ah2, bh5)) | 0 + lo = (lo + Math.imul(al1, bl6)) | 0 + mid = (mid + Math.imul(al1, bh6)) | 0 + mid = (mid + Math.imul(ah1, bl6)) | 0 + hi = (hi + Math.imul(ah1, bh6)) | 0 + lo = (lo + Math.imul(al0, bl7)) | 0 + mid = (mid + Math.imul(al0, bh7)) | 0 + mid = (mid + Math.imul(ah0, bl7)) | 0 + hi = (hi + Math.imul(ah0, bh7)) | 0 + var w7 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0 + w7 &= 67108863 + lo = Math.imul(al8, bl0) + mid = Math.imul(al8, bh0) + mid = (mid + Math.imul(ah8, bl0)) | 0 + hi = Math.imul(ah8, bh0) + lo = (lo + Math.imul(al7, bl1)) | 0 + mid = (mid + Math.imul(al7, bh1)) | 0 + mid = (mid + Math.imul(ah7, bl1)) | 0 + hi = (hi + Math.imul(ah7, bh1)) | 0 + lo = (lo + Math.imul(al6, bl2)) | 0 + mid = (mid + Math.imul(al6, bh2)) | 0 + mid = (mid + Math.imul(ah6, bl2)) | 0 + hi = (hi + Math.imul(ah6, bh2)) | 0 + lo = (lo + Math.imul(al5, bl3)) | 0 + mid = (mid + Math.imul(al5, bh3)) | 0 + mid = (mid + Math.imul(ah5, bl3)) | 0 + hi = (hi + Math.imul(ah5, bh3)) | 0 + lo = (lo + Math.imul(al4, bl4)) | 0 + mid = (mid + Math.imul(al4, bh4)) | 0 + mid = (mid + Math.imul(ah4, bl4)) | 0 + hi = (hi + Math.imul(ah4, bh4)) | 0 + lo = (lo + Math.imul(al3, bl5)) | 0 + mid = (mid + Math.imul(al3, bh5)) | 0 + mid = (mid + Math.imul(ah3, bl5)) | 0 + hi = (hi + Math.imul(ah3, bh5)) | 0 + lo = (lo + Math.imul(al2, bl6)) | 0 + mid = (mid + Math.imul(al2, bh6)) | 0 + mid = (mid + Math.imul(ah2, bl6)) | 0 + hi = (hi + Math.imul(ah2, bh6)) | 0 + lo = (lo + Math.imul(al1, bl7)) | 0 + mid = (mid + Math.imul(al1, bh7)) | 0 + mid = (mid + Math.imul(ah1, bl7)) | 0 + hi = (hi + Math.imul(ah1, bh7)) | 0 + lo = (lo + Math.imul(al0, bl8)) | 0 + mid = (mid + Math.imul(al0, bh8)) | 0 + mid = (mid + Math.imul(ah0, bl8)) | 0 + hi = (hi + Math.imul(ah0, bh8)) | 0 + var w8 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0 + w8 &= 67108863 + lo = Math.imul(al9, bl0) + mid = Math.imul(al9, bh0) + mid = (mid + Math.imul(ah9, bl0)) | 0 + hi = Math.imul(ah9, bh0) + lo = (lo + Math.imul(al8, bl1)) | 0 + mid = (mid + Math.imul(al8, bh1)) | 0 + mid = (mid + Math.imul(ah8, bl1)) | 0 + hi = (hi + Math.imul(ah8, bh1)) | 0 + lo = (lo + Math.imul(al7, bl2)) | 0 + mid = (mid + Math.imul(al7, bh2)) | 0 + mid = (mid + Math.imul(ah7, bl2)) | 0 + hi = (hi + Math.imul(ah7, bh2)) | 0 + lo = (lo + Math.imul(al6, bl3)) | 0 + mid = (mid + Math.imul(al6, bh3)) | 0 + mid = (mid + Math.imul(ah6, bl3)) | 0 + hi = (hi + Math.imul(ah6, bh3)) | 0 + lo = (lo + Math.imul(al5, bl4)) | 0 + mid = (mid + Math.imul(al5, bh4)) | 0 + mid = (mid + Math.imul(ah5, bl4)) | 0 + hi = (hi + Math.imul(ah5, bh4)) | 0 + lo = (lo + Math.imul(al4, bl5)) | 0 + mid = (mid + Math.imul(al4, bh5)) | 0 + mid = (mid + Math.imul(ah4, bl5)) | 0 + hi = (hi + Math.imul(ah4, bh5)) | 0 + lo = (lo + Math.imul(al3, bl6)) | 0 + mid = (mid + Math.imul(al3, bh6)) | 0 + mid = (mid + Math.imul(ah3, bl6)) | 0 + hi = (hi + Math.imul(ah3, bh6)) | 0 + lo = (lo + Math.imul(al2, bl7)) | 0 + mid = (mid + Math.imul(al2, bh7)) | 0 + mid = (mid + Math.imul(ah2, bl7)) | 0 + hi = (hi + Math.imul(ah2, bh7)) | 0 + lo = (lo + Math.imul(al1, bl8)) | 0 + mid = (mid + Math.imul(al1, bh8)) | 0 + mid = (mid + Math.imul(ah1, bl8)) | 0 + hi = (hi + Math.imul(ah1, bh8)) | 0 + lo = (lo + Math.imul(al0, bl9)) | 0 + mid = (mid + Math.imul(al0, bh9)) | 0 + mid = (mid + Math.imul(ah0, bl9)) | 0 + hi = (hi + Math.imul(ah0, bh9)) | 0 + var w9 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0 + w9 &= 67108863 + lo = Math.imul(al9, bl1) + mid = Math.imul(al9, bh1) + mid = (mid + Math.imul(ah9, bl1)) | 0 + hi = Math.imul(ah9, bh1) + lo = (lo + Math.imul(al8, bl2)) | 0 + mid = (mid + Math.imul(al8, bh2)) | 0 + mid = (mid + Math.imul(ah8, bl2)) | 0 + hi = (hi + Math.imul(ah8, bh2)) | 0 + lo = (lo + Math.imul(al7, bl3)) | 0 + mid = (mid + Math.imul(al7, bh3)) | 0 + mid = (mid + Math.imul(ah7, bl3)) | 0 + hi = (hi + Math.imul(ah7, bh3)) | 0 + lo = (lo + Math.imul(al6, bl4)) | 0 + mid = (mid + Math.imul(al6, bh4)) | 0 + mid = (mid + Math.imul(ah6, bl4)) | 0 + hi = (hi + Math.imul(ah6, bh4)) | 0 + lo = (lo + Math.imul(al5, bl5)) | 0 + mid = (mid + Math.imul(al5, bh5)) | 0 + mid = (mid + Math.imul(ah5, bl5)) | 0 + hi = (hi + Math.imul(ah5, bh5)) | 0 + lo = (lo + Math.imul(al4, bl6)) | 0 + mid = (mid + Math.imul(al4, bh6)) | 0 + mid = (mid + Math.imul(ah4, bl6)) | 0 + hi = (hi + Math.imul(ah4, bh6)) | 0 + lo = (lo + Math.imul(al3, bl7)) | 0 + mid = (mid + Math.imul(al3, bh7)) | 0 + mid = (mid + Math.imul(ah3, bl7)) | 0 + hi = (hi + Math.imul(ah3, bh7)) | 0 + lo = (lo + Math.imul(al2, bl8)) | 0 + mid = (mid + Math.imul(al2, bh8)) | 0 + mid = (mid + Math.imul(ah2, bl8)) | 0 + hi = (hi + Math.imul(ah2, bh8)) | 0 + lo = (lo + Math.imul(al1, bl9)) | 0 + mid = (mid + Math.imul(al1, bh9)) | 0 + mid = (mid + Math.imul(ah1, bl9)) | 0 + hi = (hi + Math.imul(ah1, bh9)) | 0 + var w10 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0 + w10 &= 67108863 + lo = Math.imul(al9, bl2) + mid = Math.imul(al9, bh2) + mid = (mid + Math.imul(ah9, bl2)) | 0 + hi = Math.imul(ah9, bh2) + lo = (lo + Math.imul(al8, bl3)) | 0 + mid = (mid + Math.imul(al8, bh3)) | 0 + mid = (mid + Math.imul(ah8, bl3)) | 0 + hi = (hi + Math.imul(ah8, bh3)) | 0 + lo = (lo + Math.imul(al7, bl4)) | 0 + mid = (mid + Math.imul(al7, bh4)) | 0 + mid = (mid + Math.imul(ah7, bl4)) | 0 + hi = (hi + Math.imul(ah7, bh4)) | 0 + lo = (lo + Math.imul(al6, bl5)) | 0 + mid = (mid + Math.imul(al6, bh5)) | 0 + mid = (mid + Math.imul(ah6, bl5)) | 0 + hi = (hi + Math.imul(ah6, bh5)) | 0 + lo = (lo + Math.imul(al5, bl6)) | 0 + mid = (mid + Math.imul(al5, bh6)) | 0 + mid = (mid + Math.imul(ah5, bl6)) | 0 + hi = (hi + Math.imul(ah5, bh6)) | 0 + lo = (lo + Math.imul(al4, bl7)) | 0 + mid = (mid + Math.imul(al4, bh7)) | 0 + mid = (mid + Math.imul(ah4, bl7)) | 0 + hi = (hi + Math.imul(ah4, bh7)) | 0 + lo = (lo + Math.imul(al3, bl8)) | 0 + mid = (mid + Math.imul(al3, bh8)) | 0 + mid = (mid + Math.imul(ah3, bl8)) | 0 + hi = (hi + Math.imul(ah3, bh8)) | 0 + lo = (lo + Math.imul(al2, bl9)) | 0 + mid = (mid + Math.imul(al2, bh9)) | 0 + mid = (mid + Math.imul(ah2, bl9)) | 0 + hi = (hi + Math.imul(ah2, bh9)) | 0 + var w11 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0 + w11 &= 67108863 + lo = Math.imul(al9, bl3) + mid = Math.imul(al9, bh3) + mid = (mid + Math.imul(ah9, bl3)) | 0 + hi = Math.imul(ah9, bh3) + lo = (lo + Math.imul(al8, bl4)) | 0 + mid = (mid + Math.imul(al8, bh4)) | 0 + mid = (mid + Math.imul(ah8, bl4)) | 0 + hi = (hi + Math.imul(ah8, bh4)) | 0 + lo = (lo + Math.imul(al7, bl5)) | 0 + mid = (mid + Math.imul(al7, bh5)) | 0 + mid = (mid + Math.imul(ah7, bl5)) | 0 + hi = (hi + Math.imul(ah7, bh5)) | 0 + lo = (lo + Math.imul(al6, bl6)) | 0 + mid = (mid + Math.imul(al6, bh6)) | 0 + mid = (mid + Math.imul(ah6, bl6)) | 0 + hi = (hi + Math.imul(ah6, bh6)) | 0 + lo = (lo + Math.imul(al5, bl7)) | 0 + mid = (mid + Math.imul(al5, bh7)) | 0 + mid = (mid + Math.imul(ah5, bl7)) | 0 + hi = (hi + Math.imul(ah5, bh7)) | 0 + lo = (lo + Math.imul(al4, bl8)) | 0 + mid = (mid + Math.imul(al4, bh8)) | 0 + mid = (mid + Math.imul(ah4, bl8)) | 0 + hi = (hi + Math.imul(ah4, bh8)) | 0 + lo = (lo + Math.imul(al3, bl9)) | 0 + mid = (mid + Math.imul(al3, bh9)) | 0 + mid = (mid + Math.imul(ah3, bl9)) | 0 + hi = (hi + Math.imul(ah3, bh9)) | 0 + var w12 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0 + w12 &= 67108863 + lo = Math.imul(al9, bl4) + mid = Math.imul(al9, bh4) + mid = (mid + Math.imul(ah9, bl4)) | 0 + hi = Math.imul(ah9, bh4) + lo = (lo + Math.imul(al8, bl5)) | 0 + mid = (mid + Math.imul(al8, bh5)) | 0 + mid = (mid + Math.imul(ah8, bl5)) | 0 + hi = (hi + Math.imul(ah8, bh5)) | 0 + lo = (lo + Math.imul(al7, bl6)) | 0 + mid = (mid + Math.imul(al7, bh6)) | 0 + mid = (mid + Math.imul(ah7, bl6)) | 0 + hi = (hi + Math.imul(ah7, bh6)) | 0 + lo = (lo + Math.imul(al6, bl7)) | 0 + mid = (mid + Math.imul(al6, bh7)) | 0 + mid = (mid + Math.imul(ah6, bl7)) | 0 + hi = (hi + Math.imul(ah6, bh7)) | 0 + lo = (lo + Math.imul(al5, bl8)) | 0 + mid = (mid + Math.imul(al5, bh8)) | 0 + mid = (mid + Math.imul(ah5, bl8)) | 0 + hi = (hi + Math.imul(ah5, bh8)) | 0 + lo = (lo + Math.imul(al4, bl9)) | 0 + mid = (mid + Math.imul(al4, bh9)) | 0 + mid = (mid + Math.imul(ah4, bl9)) | 0 + hi = (hi + Math.imul(ah4, bh9)) | 0 + var w13 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0 + w13 &= 67108863 + lo = Math.imul(al9, bl5) + mid = Math.imul(al9, bh5) + mid = (mid + Math.imul(ah9, bl5)) | 0 + hi = Math.imul(ah9, bh5) + lo = (lo + Math.imul(al8, bl6)) | 0 + mid = (mid + Math.imul(al8, bh6)) | 0 + mid = (mid + Math.imul(ah8, bl6)) | 0 + hi = (hi + Math.imul(ah8, bh6)) | 0 + lo = (lo + Math.imul(al7, bl7)) | 0 + mid = (mid + Math.imul(al7, bh7)) | 0 + mid = (mid + Math.imul(ah7, bl7)) | 0 + hi = (hi + Math.imul(ah7, bh7)) | 0 + lo = (lo + Math.imul(al6, bl8)) | 0 + mid = (mid + Math.imul(al6, bh8)) | 0 + mid = (mid + Math.imul(ah6, bl8)) | 0 + hi = (hi + Math.imul(ah6, bh8)) | 0 + lo = (lo + Math.imul(al5, bl9)) | 0 + mid = (mid + Math.imul(al5, bh9)) | 0 + mid = (mid + Math.imul(ah5, bl9)) | 0 + hi = (hi + Math.imul(ah5, bh9)) | 0 + var w14 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0 + w14 &= 67108863 + lo = Math.imul(al9, bl6) + mid = Math.imul(al9, bh6) + mid = (mid + Math.imul(ah9, bl6)) | 0 + hi = Math.imul(ah9, bh6) + lo = (lo + Math.imul(al8, bl7)) | 0 + mid = (mid + Math.imul(al8, bh7)) | 0 + mid = (mid + Math.imul(ah8, bl7)) | 0 + hi = (hi + Math.imul(ah8, bh7)) | 0 + lo = (lo + Math.imul(al7, bl8)) | 0 + mid = (mid + Math.imul(al7, bh8)) | 0 + mid = (mid + Math.imul(ah7, bl8)) | 0 + hi = (hi + Math.imul(ah7, bh8)) | 0 + lo = (lo + Math.imul(al6, bl9)) | 0 + mid = (mid + Math.imul(al6, bh9)) | 0 + mid = (mid + Math.imul(ah6, bl9)) | 0 + hi = (hi + Math.imul(ah6, bh9)) | 0 + var w15 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0 + w15 &= 67108863 + lo = Math.imul(al9, bl7) + mid = Math.imul(al9, bh7) + mid = (mid + Math.imul(ah9, bl7)) | 0 + hi = Math.imul(ah9, bh7) + lo = (lo + Math.imul(al8, bl8)) | 0 + mid = (mid + Math.imul(al8, bh8)) | 0 + mid = (mid + Math.imul(ah8, bl8)) | 0 + hi = (hi + Math.imul(ah8, bh8)) | 0 + lo = (lo + Math.imul(al7, bl9)) | 0 + mid = (mid + Math.imul(al7, bh9)) | 0 + mid = (mid + Math.imul(ah7, bl9)) | 0 + hi = (hi + Math.imul(ah7, bh9)) | 0 + var w16 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0 + w16 &= 67108863 + lo = Math.imul(al9, bl8) + mid = Math.imul(al9, bh8) + mid = (mid + Math.imul(ah9, bl8)) | 0 + hi = Math.imul(ah9, bh8) + lo = (lo + Math.imul(al8, bl9)) | 0 + mid = (mid + Math.imul(al8, bh9)) | 0 + mid = (mid + Math.imul(ah8, bl9)) | 0 + hi = (hi + Math.imul(ah8, bh9)) | 0 + var w17 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0 + w17 &= 67108863 + lo = Math.imul(al9, bl9) + mid = Math.imul(al9, bh9) + mid = (mid + Math.imul(ah9, bl9)) | 0 + hi = Math.imul(ah9, bh9) + var w18 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0 + w18 &= 67108863 + o[0] = w0 + o[1] = w1 + o[2] = w2 + o[3] = w3 + o[4] = w4 + o[5] = w5 + o[6] = w6 + o[7] = w7 + o[8] = w8 + o[9] = w9 + o[10] = w10 + o[11] = w11 + o[12] = w12 + o[13] = w13 + o[14] = w14 + o[15] = w15 + o[16] = w16 + o[17] = w17 + o[18] = w18 + if (c !== 0) { + o[19] = c + out.length++ + } + return out + } + if (!Math.imul) { + comb10MulTo = smallMulTo + } + function bigMulTo(self, num, out) { + out.negative = num.negative ^ self.negative + out.length = self.length + num.length + var carry = 0 + var hncarry = 0 + for (var k = 0; k < out.length - 1; k++) { + var ncarry = hncarry + hncarry = 0 + var rword = carry & 67108863 + var maxJ = Math.min(k, num.length - 1) + for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { + var i = k - j + var a = self.words[i] | 0 + var b = num.words[j] | 0 + var r = a * b + var lo = r & 67108863 + ncarry = (ncarry + ((r / 67108864) | 0)) | 0 + lo = (lo + rword) | 0 + rword = lo & 67108863 + ncarry = (ncarry + (lo >>> 26)) | 0 + hncarry += ncarry >>> 26 + ncarry &= 67108863 + } + out.words[k] = rword + carry = ncarry + ncarry = hncarry + } + if (carry !== 0) { + out.words[k] = carry + } else { + out.length-- + } + return out.strip() + } + function jumboMulTo(self, num, out) { + var fftm = new FFTM() + return fftm.mulp(self, num, out) + } + BN.prototype.mulTo = function mulTo(num, out) { + var res + var len = this.length + num.length + if (this.length === 10 && num.length === 10) { + res = comb10MulTo(this, num, out) + } else if (len < 63) { + res = smallMulTo(this, num, out) + } else if (len < 1024) { + res = bigMulTo(this, num, out) + } else { + res = jumboMulTo(this, num, out) + } + return res + } + function FFTM(x, y) { + this.x = x + this.y = y + } + FFTM.prototype.makeRBT = function makeRBT(N) { + var t = new Array(N) + var l = BN.prototype._countBits(N) - 1 + for (var i = 0; i < N; i++) { + t[i] = this.revBin(i, l, N) + } + return t + } + FFTM.prototype.revBin = function revBin(x, l, N) { + if (x === 0 || x === N - 1) return x + var rb = 0 + for (var i = 0; i < l; i++) { + rb |= (x & 1) << (l - i - 1) + x >>= 1 + } + return rb + } + FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) { + for (var i = 0; i < N; i++) { + rtws[i] = rws[rbt[i]] + itws[i] = iws[rbt[i]] + } + } + FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N) + for (var s = 1; s < N; s <<= 1) { + var l = s << 1 + var rtwdf = Math.cos((2 * Math.PI) / l) + var itwdf = Math.sin((2 * Math.PI) / l) + for (var p = 0; p < N; p += l) { + var rtwdf_ = rtwdf + var itwdf_ = itwdf + for (var j = 0; j < s; j++) { + var re = rtws[p + j] + var ie = itws[p + j] + var ro = rtws[p + j + s] + var io = itws[p + j + s] + var rx = rtwdf_ * ro - itwdf_ * io + io = rtwdf_ * io + itwdf_ * ro + ro = rx + rtws[p + j] = re + ro + itws[p + j] = ie + io + rtws[p + j + s] = re - ro + itws[p + j + s] = ie - io + if (j !== l) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_ + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_ + rtwdf_ = rx + } + } + } + } + } + FFTM.prototype.guessLen13b = function guessLen13b(n, m) { + var N = Math.max(m, n) | 1 + var odd = N & 1 + var i = 0 + for (N = (N / 2) | 0; N; N = N >>> 1) { + i++ + } + return 1 << (i + 1 + odd) + } + FFTM.prototype.conjugate = function conjugate(rws, iws, N) { + if (N <= 1) return + for (var i = 0; i < N / 2; i++) { + var t = rws[i] + rws[i] = rws[N - i - 1] + rws[N - i - 1] = t + t = iws[i] + iws[i] = -iws[N - i - 1] + iws[N - i - 1] = -t + } + } + FFTM.prototype.normalize13b = function normalize13b(ws, N) { + var carry = 0 + for (var i = 0; i < N / 2; i++) { + var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry + ws[i] = w & 67108863 + if (w < 67108864) { + carry = 0 + } else { + carry = (w / 67108864) | 0 + } + } + return ws + } + FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) { + var carry = 0 + for (var i = 0; i < len; i++) { + carry = carry + (ws[i] | 0) + rws[2 * i] = carry & 8191 + carry = carry >>> 13 + rws[2 * i + 1] = carry & 8191 + carry = carry >>> 13 + } + for (i = 2 * len; i < N; ++i) { + rws[i] = 0 + } + assert(carry === 0) + assert((carry & ~8191) === 0) + } + FFTM.prototype.stub = function stub(N) { + var ph = new Array(N) + for (var i = 0; i < N; i++) { + ph[i] = 0 + } + return ph + } + FFTM.prototype.mulp = function mulp(x, y, out) { + var N = 2 * this.guessLen13b(x.length, y.length) + var rbt = this.makeRBT(N) + var _ = this.stub(N) + var rws = new Array(N) + var rwst = new Array(N) + var iwst = new Array(N) + var nrws = new Array(N) + var nrwst = new Array(N) + var niwst = new Array(N) + var rmws = out.words + rmws.length = N + this.convert13b(x.words, x.length, rws, N) + this.convert13b(y.words, y.length, nrws, N) + this.transform(rws, _, rwst, iwst, N, rbt) + this.transform(nrws, _, nrwst, niwst, N, rbt) + for (var i = 0; i < N; i++) { + var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i] + iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i] + rwst[i] = rx + } + this.conjugate(rwst, iwst, N) + this.transform(rwst, iwst, rmws, _, N, rbt) + this.conjugate(rmws, _, N) + this.normalize13b(rmws, N) + out.negative = x.negative ^ y.negative + out.length = x.length + y.length + return out.strip() + } + BN.prototype.mul = function mul(num) { + var out = new BN(null) + out.words = new Array(this.length + num.length) + return this.mulTo(num, out) + } + BN.prototype.mulf = function mulf(num) { + var out = new BN(null) + out.words = new Array(this.length + num.length) + return jumboMulTo(this, num, out) + } + BN.prototype.imul = function imul(num) { + return this.clone().mulTo(num, this) + } + BN.prototype.imuln = function imuln(num) { + assert(typeof num === 'number') + assert(num < 67108864) + var carry = 0 + for (var i = 0; i < this.length; i++) { + var w = (this.words[i] | 0) * num + var lo = (w & 67108863) + (carry & 67108863) + carry >>= 26 + carry += (w / 67108864) | 0 + carry += lo >>> 26 + this.words[i] = lo & 67108863 + } + if (carry !== 0) { + this.words[i] = carry + this.length++ + } + return this + } + BN.prototype.muln = function muln(num) { + return this.clone().imuln(num) + } + BN.prototype.sqr = function sqr() { + return this.mul(this) + } + BN.prototype.isqr = function isqr() { + return this.imul(this.clone()) + } + BN.prototype.pow = function pow(num) { + var w = toBitArray(num) + if (w.length === 0) return new BN(1) + var res = this + for (var i = 0; i < w.length; i++, res = res.sqr()) { + if (w[i] !== 0) break + } + if (++i < w.length) { + for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { + if (w[i] === 0) continue + res = res.mul(q) + } + } + return res + } + BN.prototype.iushln = function iushln(bits) { + assert(typeof bits === 'number' && bits >= 0) + var r = bits % 26 + var s = (bits - r) / 26 + var carryMask = (67108863 >>> (26 - r)) << (26 - r) + var i + if (r !== 0) { + var carry = 0 + for (i = 0; i < this.length; i++) { + var newCarry = this.words[i] & carryMask + var c = ((this.words[i] | 0) - newCarry) << r + this.words[i] = c | carry + carry = newCarry >>> (26 - r) + } + if (carry) { + this.words[i] = carry + this.length++ + } + } + if (s !== 0) { + for (i = this.length - 1; i >= 0; i--) { + this.words[i + s] = this.words[i] + } + for (i = 0; i < s; i++) { + this.words[i] = 0 + } + this.length += s + } + return this.strip() + } + BN.prototype.ishln = function ishln(bits) { + assert(this.negative === 0) + return this.iushln(bits) + } + BN.prototype.iushrn = function iushrn(bits, hint, extended) { + assert(typeof bits === 'number' && bits >= 0) + var h + if (hint) { + h = (hint - (hint % 26)) / 26 + } else { + h = 0 + } + var r = bits % 26 + var s = Math.min((bits - r) / 26, this.length) + var mask = 67108863 ^ ((67108863 >>> r) << r) + var maskedWords = extended + h -= s + h = Math.max(0, h) + if (maskedWords) { + for (var i = 0; i < s; i++) { + maskedWords.words[i] = this.words[i] + } + maskedWords.length = s + } + if (s === 0) { + } else if (this.length > s) { + this.length -= s + for (i = 0; i < this.length; i++) { + this.words[i] = this.words[i + s] + } + } else { + this.words[0] = 0 + this.length = 1 + } + var carry = 0 + for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) { + var word = this.words[i] | 0 + this.words[i] = (carry << (26 - r)) | (word >>> r) + carry = word & mask + } + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry + } + if (this.length === 0) { + this.words[0] = 0 + this.length = 1 + } + return this.strip() + } + BN.prototype.ishrn = function ishrn(bits, hint, extended) { + assert(this.negative === 0) + return this.iushrn(bits, hint, extended) + } + BN.prototype.shln = function shln(bits) { + return this.clone().ishln(bits) + } + BN.prototype.ushln = function ushln(bits) { + return this.clone().iushln(bits) + } + BN.prototype.shrn = function shrn(bits) { + return this.clone().ishrn(bits) + } + BN.prototype.ushrn = function ushrn(bits) { + return this.clone().iushrn(bits) + } + BN.prototype.testn = function testn(bit) { + assert(typeof bit === 'number' && bit >= 0) + var r = bit % 26 + var s = (bit - r) / 26 + var q = 1 << r + if (this.length <= s) return false + var w = this.words[s] + return !!(w & q) + } + BN.prototype.imaskn = function imaskn(bits) { + assert(typeof bits === 'number' && bits >= 0) + var r = bits % 26 + var s = (bits - r) / 26 + assert(this.negative === 0, 'imaskn works only with positive numbers') + if (this.length <= s) { + return this + } + if (r !== 0) { + s++ + } + this.length = Math.min(s, this.length) + if (r !== 0) { + var mask = 67108863 ^ ((67108863 >>> r) << r) + this.words[this.length - 1] &= mask + } + return this.strip() + } + BN.prototype.maskn = function maskn(bits) { + return this.clone().imaskn(bits) + } + BN.prototype.iaddn = function iaddn(num) { + assert(typeof num === 'number') + assert(num < 67108864) + if (num < 0) return this.isubn(-num) + if (this.negative !== 0) { + if (this.length === 1 && (this.words[0] | 0) < num) { + this.words[0] = num - (this.words[0] | 0) + this.negative = 0 + return this + } + this.negative = 0 + this.isubn(num) + this.negative = 1 + return this + } + return this._iaddn(num) + } + BN.prototype._iaddn = function _iaddn(num) { + this.words[0] += num + for (var i = 0; i < this.length && this.words[i] >= 67108864; i++) { + this.words[i] -= 67108864 + if (i === this.length - 1) { + this.words[i + 1] = 1 + } else { + this.words[i + 1]++ + } + } + this.length = Math.max(this.length, i + 1) + return this + } + BN.prototype.isubn = function isubn(num) { + assert(typeof num === 'number') + assert(num < 67108864) + if (num < 0) return this.iaddn(-num) + if (this.negative !== 0) { + this.negative = 0 + this.iaddn(num) + this.negative = 1 + return this + } + this.words[0] -= num + if (this.length === 1 && this.words[0] < 0) { + this.words[0] = -this.words[0] + this.negative = 1 + } else { + for (var i = 0; i < this.length && this.words[i] < 0; i++) { + this.words[i] += 67108864 + this.words[i + 1] -= 1 + } + } + return this.strip() + } + BN.prototype.addn = function addn(num) { + return this.clone().iaddn(num) + } + BN.prototype.subn = function subn(num) { + return this.clone().isubn(num) + } + BN.prototype.iabs = function iabs() { + this.negative = 0 + return this + } + BN.prototype.abs = function abs() { + return this.clone().iabs() + } + BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { + var len = num.length + shift + var i + this._expand(len) + var w + var carry = 0 + for (i = 0; i < num.length; i++) { + w = (this.words[i + shift] | 0) + carry + var right = (num.words[i] | 0) * mul + w -= right & 67108863 + carry = (w >> 26) - ((right / 67108864) | 0) + this.words[i + shift] = w & 67108863 + } + for (; i < this.length - shift; i++) { + w = (this.words[i + shift] | 0) + carry + carry = w >> 26 + this.words[i + shift] = w & 67108863 + } + if (carry === 0) return this.strip() + assert(carry === -1) + carry = 0 + for (i = 0; i < this.length; i++) { + w = -(this.words[i] | 0) + carry + carry = w >> 26 + this.words[i] = w & 67108863 + } + this.negative = 1 + return this.strip() + } + BN.prototype._wordDiv = function _wordDiv(num, mode) { + var shift = this.length - num.length + var a = this.clone() + var b = num + var bhi = b.words[b.length - 1] | 0 + var bhiBits = this._countBits(bhi) + shift = 26 - bhiBits + if (shift !== 0) { + b = b.ushln(shift) + a.iushln(shift) + bhi = b.words[b.length - 1] | 0 + } + var m = a.length - b.length + var q + if (mode !== 'mod') { + q = new BN(null) + q.length = m + 1 + q.words = new Array(q.length) + for (var i = 0; i < q.length; i++) { + q.words[i] = 0 + } + } + var diff = a.clone()._ishlnsubmul(b, 1, m) + if (diff.negative === 0) { + a = diff + if (q) { + q.words[m] = 1 + } + } + for (var j = m - 1; j >= 0; j--) { + var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0) + qj = Math.min((qj / bhi) | 0, 67108863) + a._ishlnsubmul(b, qj, j) + while (a.negative !== 0) { + qj-- + a.negative = 0 + a._ishlnsubmul(b, 1, j) + if (!a.isZero()) { + a.negative ^= 1 + } + } + if (q) { + q.words[j] = qj + } + } + if (q) { + q.strip() + } + a.strip() + if (mode !== 'div' && shift !== 0) { + a.iushrn(shift) + } + return { div: q || null, mod: a } + } + BN.prototype.divmod = function divmod(num, mode, positive) { + assert(!num.isZero()) + if (this.isZero()) { + return { div: new BN(0), mod: new BN(0) } + } + var div, mod, res + if (this.negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode) + if (mode !== 'mod') { + div = res.div.neg() + } + if (mode !== 'div') { + mod = res.mod.neg() + if (positive && mod.negative !== 0) { + mod.iadd(num) + } + } + return { div: div, mod: mod } + } + if (this.negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode) + if (mode !== 'mod') { + div = res.div.neg() + } + return { div: div, mod: res.mod } + } + if ((this.negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode) + if (mode !== 'div') { + mod = res.mod.neg() + if (positive && mod.negative !== 0) { + mod.isub(num) + } + } + return { div: res.div, mod: mod } + } + if (num.length > this.length || this.cmp(num) < 0) { + return { div: new BN(0), mod: this } + } + if (num.length === 1) { + if (mode === 'div') { + return { div: this.divn(num.words[0]), mod: null } + } + if (mode === 'mod') { + return { div: null, mod: new BN(this.modn(num.words[0])) } + } + return { div: this.divn(num.words[0]), mod: new BN(this.modn(num.words[0])) } + } + return this._wordDiv(num, mode) + } + BN.prototype.div = function div(num) { + return this.divmod(num, 'div', false).div + } + BN.prototype.mod = function mod(num) { + return this.divmod(num, 'mod', false).mod + } + BN.prototype.umod = function umod(num) { + return this.divmod(num, 'mod', true).mod + } + BN.prototype.divRound = function divRound(num) { + var dm = this.divmod(num) + if (dm.mod.isZero()) return dm.div + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod + var half = num.ushrn(1) + var r2 = num.andln(1) + var cmp = mod.cmp(half) + if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1) + } + BN.prototype.modn = function modn(num) { + assert(num <= 67108863) + var p = (1 << 26) % num + var acc = 0 + for (var i = this.length - 1; i >= 0; i--) { + acc = (p * acc + (this.words[i] | 0)) % num + } + return acc + } + BN.prototype.idivn = function idivn(num) { + assert(num <= 67108863) + var carry = 0 + for (var i = this.length - 1; i >= 0; i--) { + var w = (this.words[i] | 0) + carry * 67108864 + this.words[i] = (w / num) | 0 + carry = w % num + } + return this.strip() + } + BN.prototype.divn = function divn(num) { + return this.clone().idivn(num) + } + BN.prototype.egcd = function egcd(p) { + assert(p.negative === 0) + assert(!p.isZero()) + var x = this + var y = p.clone() + if (x.negative !== 0) { + x = x.umod(p) + } else { + x = x.clone() + } + var A = new BN(1) + var B = new BN(0) + var C = new BN(0) + var D = new BN(1) + var g = 0 + while (x.isEven() && y.isEven()) { + x.iushrn(1) + y.iushrn(1) + ++g + } + var yp = y.clone() + var xp = x.clone() + while (!x.isZero()) { + for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1); + if (i > 0) { + x.iushrn(i) + while (i-- > 0) { + if (A.isOdd() || B.isOdd()) { + A.iadd(yp) + B.isub(xp) + } + A.iushrn(1) + B.iushrn(1) + } + } + for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); + if (j > 0) { + y.iushrn(j) + while (j-- > 0) { + if (C.isOdd() || D.isOdd()) { + C.iadd(yp) + D.isub(xp) + } + C.iushrn(1) + D.iushrn(1) + } + } + if (x.cmp(y) >= 0) { + x.isub(y) + A.isub(C) + B.isub(D) + } else { + y.isub(x) + C.isub(A) + D.isub(B) + } + } + return { a: C, b: D, gcd: y.iushln(g) } + } + BN.prototype._invmp = function _invmp(p) { + assert(p.negative === 0) + assert(!p.isZero()) + var a = this + var b = p.clone() + if (a.negative !== 0) { + a = a.umod(p) + } else { + a = a.clone() + } + var x1 = new BN(1) + var x2 = new BN(0) + var delta = b.clone() + while (a.cmpn(1) > 0 && b.cmpn(1) > 0) { + for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1); + if (i > 0) { + a.iushrn(i) + while (i-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta) + } + x1.iushrn(1) + } + } + for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); + if (j > 0) { + b.iushrn(j) + while (j-- > 0) { + if (x2.isOdd()) { + x2.iadd(delta) + } + x2.iushrn(1) + } + } + if (a.cmp(b) >= 0) { + a.isub(b) + x1.isub(x2) + } else { + b.isub(a) + x2.isub(x1) + } + } + var res + if (a.cmpn(1) === 0) { + res = x1 + } else { + res = x2 + } + if (res.cmpn(0) < 0) { + res.iadd(p) + } + return res + } + BN.prototype.gcd = function gcd(num) { + if (this.isZero()) return num.abs() + if (num.isZero()) return this.abs() + var a = this.clone() + var b = num.clone() + a.negative = 0 + b.negative = 0 + for (var shift = 0; a.isEven() && b.isEven(); shift++) { + a.iushrn(1) + b.iushrn(1) + } + do { + while (a.isEven()) { + a.iushrn(1) + } + while (b.isEven()) { + b.iushrn(1) + } + var r = a.cmp(b) + if (r < 0) { + var t = a + a = b + b = t + } else if (r === 0 || b.cmpn(1) === 0) { + break + } + a.isub(b) + } while (true) + return b.iushln(shift) + } + BN.prototype.invm = function invm(num) { + return this.egcd(num).a.umod(num) + } + BN.prototype.isEven = function isEven() { + return (this.words[0] & 1) === 0 + } + BN.prototype.isOdd = function isOdd() { + return (this.words[0] & 1) === 1 + } + BN.prototype.andln = function andln(num) { + return this.words[0] & num + } + BN.prototype.bincn = function bincn(bit) { + assert(typeof bit === 'number') + var r = bit % 26 + var s = (bit - r) / 26 + var q = 1 << r + if (this.length <= s) { + this._expand(s + 1) + this.words[s] |= q + return this + } + var carry = q + for (var i = s; carry !== 0 && i < this.length; i++) { + var w = this.words[i] | 0 + w += carry + carry = w >>> 26 + w &= 67108863 + this.words[i] = w + } + if (carry !== 0) { + this.words[i] = carry + this.length++ + } + return this + } + BN.prototype.isZero = function isZero() { + return this.length === 1 && this.words[0] === 0 + } + BN.prototype.cmpn = function cmpn(num) { + var negative = num < 0 + if (this.negative !== 0 && !negative) return -1 + if (this.negative === 0 && negative) return 1 + this.strip() + var res + if (this.length > 1) { + res = 1 + } else { + if (negative) { + num = -num + } + assert(num <= 67108863, 'Number is too big') + var w = this.words[0] | 0 + res = w === num ? 0 : w < num ? -1 : 1 + } + if (this.negative !== 0) return -res | 0 + return res + } + BN.prototype.cmp = function cmp(num) { + if (this.negative !== 0 && num.negative === 0) return -1 + if (this.negative === 0 && num.negative !== 0) return 1 + var res = this.ucmp(num) + if (this.negative !== 0) return -res | 0 + return res + } + BN.prototype.ucmp = function ucmp(num) { + if (this.length > num.length) return 1 + if (this.length < num.length) return -1 + var res = 0 + for (var i = this.length - 1; i >= 0; i--) { + var a = this.words[i] | 0 + var b = num.words[i] | 0 + if (a === b) continue + if (a < b) { + res = -1 + } else if (a > b) { + res = 1 + } + break + } + return res + } + BN.prototype.gtn = function gtn(num) { + return this.cmpn(num) === 1 + } + BN.prototype.gt = function gt(num) { + return this.cmp(num) === 1 + } + BN.prototype.gten = function gten(num) { + return this.cmpn(num) >= 0 + } + BN.prototype.gte = function gte(num) { + return this.cmp(num) >= 0 + } + BN.prototype.ltn = function ltn(num) { + return this.cmpn(num) === -1 + } + BN.prototype.lt = function lt(num) { + return this.cmp(num) === -1 + } + BN.prototype.lten = function lten(num) { + return this.cmpn(num) <= 0 + } + BN.prototype.lte = function lte(num) { + return this.cmp(num) <= 0 + } + BN.prototype.eqn = function eqn(num) { + return this.cmpn(num) === 0 + } + BN.prototype.eq = function eq(num) { + return this.cmp(num) === 0 + } + BN.red = function red(num) { + return new Red(num) + } + BN.prototype.toRed = function toRed(ctx) { + assert(!this.red, 'Already a number in reduction context') + assert(this.negative === 0, 'red works only with positives') + return ctx.convertTo(this)._forceRed(ctx) + } + BN.prototype.fromRed = function fromRed() { + assert(this.red, 'fromRed works only with numbers in reduction context') + return this.red.convertFrom(this) + } + BN.prototype._forceRed = function _forceRed(ctx) { + this.red = ctx + return this + } + BN.prototype.forceRed = function forceRed(ctx) { + assert(!this.red, 'Already a number in reduction context') + return this._forceRed(ctx) + } + BN.prototype.redAdd = function redAdd(num) { + assert(this.red, 'redAdd works only with red numbers') + return this.red.add(this, num) + } + BN.prototype.redIAdd = function redIAdd(num) { + assert(this.red, 'redIAdd works only with red numbers') + return this.red.iadd(this, num) + } + BN.prototype.redSub = function redSub(num) { + assert(this.red, 'redSub works only with red numbers') + return this.red.sub(this, num) + } + BN.prototype.redISub = function redISub(num) { + assert(this.red, 'redISub works only with red numbers') + return this.red.isub(this, num) + } + BN.prototype.redShl = function redShl(num) { + assert(this.red, 'redShl works only with red numbers') + return this.red.shl(this, num) + } + BN.prototype.redMul = function redMul(num) { + assert(this.red, 'redMul works only with red numbers') + this.red._verify2(this, num) + return this.red.mul(this, num) + } + BN.prototype.redIMul = function redIMul(num) { + assert(this.red, 'redMul works only with red numbers') + this.red._verify2(this, num) + return this.red.imul(this, num) + } + BN.prototype.redSqr = function redSqr() { + assert(this.red, 'redSqr works only with red numbers') + this.red._verify1(this) + return this.red.sqr(this) + } + BN.prototype.redISqr = function redISqr() { + assert(this.red, 'redISqr works only with red numbers') + this.red._verify1(this) + return this.red.isqr(this) + } + BN.prototype.redSqrt = function redSqrt() { + assert(this.red, 'redSqrt works only with red numbers') + this.red._verify1(this) + return this.red.sqrt(this) + } + BN.prototype.redInvm = function redInvm() { + assert(this.red, 'redInvm works only with red numbers') + this.red._verify1(this) + return this.red.invm(this) + } + BN.prototype.redNeg = function redNeg() { + assert(this.red, 'redNeg works only with red numbers') + this.red._verify1(this) + return this.red.neg(this) + } + BN.prototype.redPow = function redPow(num) { + assert(this.red && !num.red, 'redPow(normalNum)') + this.red._verify1(this) + return this.red.pow(this, num) + } + var primes = { k256: null, p224: null, p192: null, p25519: null } + function MPrime(name, p) { + this.name = name + this.p = new BN(p, 16) + this.n = this.p.bitLength() + this.k = new BN(1).iushln(this.n).isub(this.p) + this.tmp = this._tmp() + } + MPrime.prototype._tmp = function _tmp() { + var tmp = new BN(null) + tmp.words = new Array(Math.ceil(this.n / 13)) + return tmp + } + MPrime.prototype.ireduce = function ireduce(num) { + var r = num + var rlen + do { + this.split(r, this.tmp) + r = this.imulK(r) + r = r.iadd(this.tmp) + rlen = r.bitLength() + } while (rlen > this.n) + var cmp = rlen < this.n ? -1 : r.ucmp(this.p) + if (cmp === 0) { + r.words[0] = 0 + r.length = 1 + } else if (cmp > 0) { + r.isub(this.p) + } else { + r.strip() + } + return r + } + MPrime.prototype.split = function split(input, out) { + input.iushrn(this.n, 0, out) + } + MPrime.prototype.imulK = function imulK(num) { + return num.imul(this.k) + } + function K256() { + MPrime.call( + this, + 'k256', + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f' + ) + } + inherits(K256, MPrime) + K256.prototype.split = function split(input, output) { + var mask = 4194303 + var outLen = Math.min(input.length, 9) + for (var i = 0; i < outLen; i++) { + output.words[i] = input.words[i] + } + output.length = outLen + if (input.length <= 9) { + input.words[0] = 0 + input.length = 1 + return + } + var prev = input.words[9] + output.words[output.length++] = prev & mask + for (i = 10; i < input.length; i++) { + var next = input.words[i] | 0 + input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22) + prev = next + } + prev >>>= 22 + input.words[i - 10] = prev + if (prev === 0 && input.length > 10) { + input.length -= 10 + } else { + input.length -= 9 + } + } + K256.prototype.imulK = function imulK(num) { + num.words[num.length] = 0 + num.words[num.length + 1] = 0 + num.length += 2 + var lo = 0 + for (var i = 0; i < num.length; i++) { + var w = num.words[i] | 0 + lo += w * 977 + num.words[i] = lo & 67108863 + lo = w * 64 + ((lo / 67108864) | 0) + } + if (num.words[num.length - 1] === 0) { + num.length-- + if (num.words[num.length - 1] === 0) { + num.length-- + } + } + return num + } + function P224() { + MPrime.call( + this, + 'p224', + 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001' + ) + } + inherits(P224, MPrime) + function P192() { + MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff') + } + inherits(P192, MPrime) + function P25519() { + MPrime.call( + this, + '25519', + '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed' + ) + } + inherits(P25519, MPrime) + P25519.prototype.imulK = function imulK(num) { + var carry = 0 + for (var i = 0; i < num.length; i++) { + var hi = (num.words[i] | 0) * 19 + carry + var lo = hi & 67108863 + hi >>>= 26 + num.words[i] = lo + carry = hi + } + if (carry !== 0) { + num.words[num.length++] = carry + } + return num + } + BN._prime = function prime(name) { + if (primes[name]) return primes[name] + var prime + if (name === 'k256') { + prime = new K256() + } else if (name === 'p224') { + prime = new P224() + } else if (name === 'p192') { + prime = new P192() + } else if (name === 'p25519') { + prime = new P25519() + } else { + throw new Error('Unknown prime ' + name) + } + primes[name] = prime + return prime + } + function Red(m) { + if (typeof m === 'string') { + var prime = BN._prime(m) + this.m = prime.p + this.prime = prime + } else { + assert(m.gtn(1), 'modulus must be greater than 1') + this.m = m + this.prime = null + } + } + Red.prototype._verify1 = function _verify1(a) { + assert(a.negative === 0, 'red works only with positives') + assert(a.red, 'red works only with red numbers') + } + Red.prototype._verify2 = function _verify2(a, b) { + assert((a.negative | b.negative) === 0, 'red works only with positives') + assert(a.red && a.red === b.red, 'red works only with red numbers') + } + Red.prototype.imod = function imod(a) { + if (this.prime) return this.prime.ireduce(a)._forceRed(this) + return a.umod(this.m)._forceRed(this) + } + Red.prototype.neg = function neg(a) { + if (a.isZero()) { + return a.clone() + } + return this.m.sub(a)._forceRed(this) + } + Red.prototype.add = function add(a, b) { + this._verify2(a, b) + var res = a.add(b) + if (res.cmp(this.m) >= 0) { + res.isub(this.m) + } + return res._forceRed(this) + } + Red.prototype.iadd = function iadd(a, b) { + this._verify2(a, b) + var res = a.iadd(b) + if (res.cmp(this.m) >= 0) { + res.isub(this.m) + } + return res + } + Red.prototype.sub = function sub(a, b) { + this._verify2(a, b) + var res = a.sub(b) + if (res.cmpn(0) < 0) { + res.iadd(this.m) + } + return res._forceRed(this) + } + Red.prototype.isub = function isub(a, b) { + this._verify2(a, b) + var res = a.isub(b) + if (res.cmpn(0) < 0) { + res.iadd(this.m) + } + return res + } + Red.prototype.shl = function shl(a, num) { + this._verify1(a) + return this.imod(a.ushln(num)) + } + Red.prototype.imul = function imul(a, b) { + this._verify2(a, b) + return this.imod(a.imul(b)) + } + Red.prototype.mul = function mul(a, b) { + this._verify2(a, b) + return this.imod(a.mul(b)) + } + Red.prototype.isqr = function isqr(a) { + return this.imul(a, a.clone()) + } + Red.prototype.sqr = function sqr(a) { + return this.mul(a, a) + } + Red.prototype.sqrt = function sqrt(a) { + if (a.isZero()) return a.clone() + var mod3 = this.m.andln(3) + assert(mod3 % 2 === 1) + if (mod3 === 3) { + var pow = this.m.add(new BN(1)).iushrn(2) + return this.pow(a, pow) + } + var q = this.m.subn(1) + var s = 0 + while (!q.isZero() && q.andln(1) === 0) { + s++ + q.iushrn(1) + } + assert(!q.isZero()) + var one = new BN(1).toRed(this) + var nOne = one.redNeg() + var lpow = this.m.subn(1).iushrn(1) + var z = this.m.bitLength() + z = new BN(2 * z * z).toRed(this) + while (this.pow(z, lpow).cmp(nOne) !== 0) { + z.redIAdd(nOne) + } + var c = this.pow(z, q) + var r = this.pow(a, q.addn(1).iushrn(1)) + var t = this.pow(a, q) + var m = s + while (t.cmp(one) !== 0) { + var tmp = t + for (var i = 0; tmp.cmp(one) !== 0; i++) { + tmp = tmp.redSqr() + } + assert(i < m) + var b = this.pow(c, new BN(1).iushln(m - i - 1)) + r = r.redMul(b) + c = b.redSqr() + t = t.redMul(c) + m = i + } + return r + } + Red.prototype.invm = function invm(a) { + var inv = a._invmp(this.m) + if (inv.negative !== 0) { + inv.negative = 0 + return this.imod(inv).redNeg() + } else { + return this.imod(inv) + } + } + Red.prototype.pow = function pow(a, num) { + if (num.isZero()) return new BN(1).toRed(this) + if (num.cmpn(1) === 0) return a.clone() + var windowSize = 4 + var wnd = new Array(1 << windowSize) + wnd[0] = new BN(1).toRed(this) + wnd[1] = a + for (var i = 2; i < wnd.length; i++) { + wnd[i] = this.mul(wnd[i - 1], a) + } + var res = wnd[0] + var current = 0 + var currentLen = 0 + var start = num.bitLength() % 26 + if (start === 0) { + start = 26 + } + for (i = num.length - 1; i >= 0; i--) { + var word = num.words[i] + for (var j = start - 1; j >= 0; j--) { + var bit = (word >> j) & 1 + if (res !== wnd[0]) { + res = this.sqr(res) + } + if (bit === 0 && current === 0) { + currentLen = 0 + continue + } + current <<= 1 + current |= bit + currentLen++ + if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue + res = this.mul(res, wnd[current]) + currentLen = 0 + current = 0 + } + start = 26 + } + return res + } + Red.prototype.convertTo = function convertTo(num) { + var r = num.umod(this.m) + return r === num ? r.clone() : r + } + Red.prototype.convertFrom = function convertFrom(num) { + var res = num.clone() + res.red = null + return res + } + BN.mont = function mont(num) { + return new Mont(num) + } + function Mont(m) { + Red.call(this, m) + this.shift = this.m.bitLength() + if (this.shift % 26 !== 0) { + this.shift += 26 - (this.shift % 26) + } + this.r = new BN(1).iushln(this.shift) + this.r2 = this.imod(this.r.sqr()) + this.rinv = this.r._invmp(this.m) + this.minv = this.rinv.mul(this.r).isubn(1).div(this.m) + this.minv = this.minv.umod(this.r) + this.minv = this.r.sub(this.minv) + } + inherits(Mont, Red) + Mont.prototype.convertTo = function convertTo(num) { + return this.imod(num.ushln(this.shift)) + } + Mont.prototype.convertFrom = function convertFrom(num) { + var r = this.imod(num.mul(this.rinv)) + r.red = null + return r + } + Mont.prototype.imul = function imul(a, b) { + if (a.isZero() || b.isZero()) { + a.words[0] = 0 + a.length = 1 + return a + } + var t = a.imul(b) + var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m) + var u = t.isub(c).iushrn(this.shift) + var res = u + if (u.cmp(this.m) >= 0) { + res = u.isub(this.m) + } else if (u.cmpn(0) < 0) { + res = u.iadd(this.m) + } + return res._forceRed(this) + } + Mont.prototype.mul = function mul(a, b) { + if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this) + var t = a.mul(b) + var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m) + var u = t.isub(c).iushrn(this.shift) + var res = u + if (u.cmp(this.m) >= 0) { + res = u.isub(this.m) + } else if (u.cmpn(0) < 0) { + res = u.iadd(this.m) + } + return res._forceRed(this) + } + Mont.prototype.invm = function invm(a) { + var res = this.imod(a._invmp(this.m).mul(this.r2)) + return res._forceRed(this) + } + })(typeof module === 'undefined' || module, this) + }, + { buffer: 49 } + ], + 16: [ + function (require, module, exports) { + module.exports = require('./lib/axios') + }, + { './lib/axios': 18 } + ], + 17: [ + function (require, module, exports) { + 'use strict' + var utils = require('./../utils') + var settle = require('./../core/settle') + var cookies = require('./../helpers/cookies') + var buildURL = require('./../helpers/buildURL') + var buildFullPath = require('../core/buildFullPath') + var parseHeaders = require('./../helpers/parseHeaders') + var isURLSameOrigin = require('./../helpers/isURLSameOrigin') + var createError = require('../core/createError') + var defaults = require('../defaults') + var Cancel = require('../cancel/Cancel') + module.exports = function xhrAdapter(config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + var requestData = config.data + var requestHeaders = config.headers + var responseType = config.responseType + var onCanceled + function done() { + if (config.cancelToken) { + config.cancelToken.unsubscribe(onCanceled) + } + if (config.signal) { + config.signal.removeEventListener('abort', onCanceled) + } + } + if (utils.isFormData(requestData)) { + delete requestHeaders['Content-Type'] + } + var request = new XMLHttpRequest() + if (config.auth) { + var username = config.auth.username || '' + var password = config.auth.password + ? unescape(encodeURIComponent(config.auth.password)) + : '' + requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password) + } + var fullPath = buildFullPath(config.baseURL, config.url) + request.open( + config.method.toUpperCase(), + buildURL(fullPath, config.params, config.paramsSerializer), + true + ) + request.timeout = config.timeout + function onloadend() { + if (!request) { + return + } + var responseHeaders = + 'getAllResponseHeaders' in request + ? parseHeaders(request.getAllResponseHeaders()) + : null + var responseData = + !responseType || responseType === 'text' || responseType === 'json' + ? request.responseText + : request.response + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config: config, + request: request + } + settle( + function _resolve(value) { + resolve(value) + done() + }, + function _reject(err) { + reject(err) + done() + }, + response + ) + request = null + } + if ('onloadend' in request) { + request.onloadend = onloadend + } else { + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return + } + if ( + request.status === 0 && + !(request.responseURL && request.responseURL.indexOf('file:') === 0) + ) { + return + } + setTimeout(onloadend) + } + } + request.onabort = function handleAbort() { + if (!request) { + return + } + reject(createError('Request aborted', config, 'ECONNABORTED', request)) + request = null + } + request.onerror = function handleError() { + reject(createError('Network Error', config, null, request)) + request = null + } + request.ontimeout = function handleTimeout() { + var timeoutErrorMessage = config.timeout + ? 'timeout of ' + config.timeout + 'ms exceeded' + : 'timeout exceeded' + var transitional = config.transitional || defaults.transitional + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage + } + reject( + createError( + timeoutErrorMessage, + config, + transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED', + request + ) + ) + request = null + } + if (utils.isStandardBrowserEnv()) { + var xsrfValue = + (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName + ? cookies.read(config.xsrfCookieName) + : undefined + if (xsrfValue) { + requestHeaders[config.xsrfHeaderName] = xsrfValue + } + } + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders, function setRequestHeader(val, key) { + if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { + delete requestHeaders[key] + } else { + request.setRequestHeader(key, val) + } + }) + } + if (!utils.isUndefined(config.withCredentials)) { + request.withCredentials = !!config.withCredentials + } + if (responseType && responseType !== 'json') { + request.responseType = config.responseType + } + if (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', config.onDownloadProgress) + } + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', config.onUploadProgress) + } + if (config.cancelToken || config.signal) { + onCanceled = function (cancel) { + if (!request) { + return + } + reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel) + request.abort() + request = null + } + config.cancelToken && config.cancelToken.subscribe(onCanceled) + if (config.signal) { + config.signal.aborted + ? onCanceled() + : config.signal.addEventListener('abort', onCanceled) + } + } + if (!requestData) { + requestData = null + } + request.send(requestData) + }) + } + }, + { + '../cancel/Cancel': 19, + '../core/buildFullPath': 24, + '../core/createError': 25, + '../defaults': 31, + './../core/settle': 29, + './../helpers/buildURL': 34, + './../helpers/cookies': 36, + './../helpers/isURLSameOrigin': 39, + './../helpers/parseHeaders': 41, + './../utils': 44 + } + ], + 18: [ + function (require, module, exports) { + 'use strict' + var utils = require('./utils') + var bind = require('./helpers/bind') + var Axios = require('./core/Axios') + var mergeConfig = require('./core/mergeConfig') + var defaults = require('./defaults') + function createInstance(defaultConfig) { + var context = new Axios(defaultConfig) + var instance = bind(Axios.prototype.request, context) + utils.extend(instance, Axios.prototype, context) + utils.extend(instance, context) + instance.create = function create(instanceConfig) { + return createInstance(mergeConfig(defaultConfig, instanceConfig)) + } + return instance + } + var axios = createInstance(defaults) + axios.Axios = Axios + axios.Cancel = require('./cancel/Cancel') + axios.CancelToken = require('./cancel/CancelToken') + axios.isCancel = require('./cancel/isCancel') + axios.VERSION = require('./env/data').version + axios.all = function all(promises) { + return Promise.all(promises) + } + axios.spread = require('./helpers/spread') + axios.isAxiosError = require('./helpers/isAxiosError') + module.exports = axios + module.exports.default = axios + }, + { + './cancel/Cancel': 19, + './cancel/CancelToken': 20, + './cancel/isCancel': 21, + './core/Axios': 22, + './core/mergeConfig': 28, + './defaults': 31, + './env/data': 32, + './helpers/bind': 33, + './helpers/isAxiosError': 38, + './helpers/spread': 42, + './utils': 44 + } + ], + 19: [ + function (require, module, exports) { + 'use strict' + function Cancel(message) { + this.message = message + } + Cancel.prototype.toString = function toString() { + return 'Cancel' + (this.message ? ': ' + this.message : '') + } + Cancel.prototype.__CANCEL__ = true + module.exports = Cancel + }, + {} + ], + 20: [ + function (require, module, exports) { + 'use strict' + var Cancel = require('./Cancel') + function CancelToken(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.') + } + var resolvePromise + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve + }) + var token = this + this.promise.then(function (cancel) { + if (!token._listeners) return + var i + var l = token._listeners.length + for (i = 0; i < l; i++) { + token._listeners[i](cancel) + } + token._listeners = null + }) + this.promise.then = function (onfulfilled) { + var _resolve + var promise = new Promise(function (resolve) { + token.subscribe(resolve) + _resolve = resolve + }).then(onfulfilled) + promise.cancel = function reject() { + token.unsubscribe(_resolve) + } + return promise + } + executor(function cancel(message) { + if (token.reason) { + return + } + token.reason = new Cancel(message) + resolvePromise(token.reason) + }) + } + CancelToken.prototype.throwIfRequested = function throwIfRequested() { + if (this.reason) { + throw this.reason + } + } + CancelToken.prototype.subscribe = function subscribe(listener) { + if (this.reason) { + listener(this.reason) + return + } + if (this._listeners) { + this._listeners.push(listener) + } else { + this._listeners = [listener] + } + } + CancelToken.prototype.unsubscribe = function unsubscribe(listener) { + if (!this._listeners) { + return + } + var index = this._listeners.indexOf(listener) + if (index !== -1) { + this._listeners.splice(index, 1) + } + } + CancelToken.source = function source() { + var cancel + var token = new CancelToken(function executor(c) { + cancel = c + }) + return { token: token, cancel: cancel } + } + module.exports = CancelToken + }, + { './Cancel': 19 } + ], + 21: [ + function (require, module, exports) { + 'use strict' + module.exports = function isCancel(value) { + return !!(value && value.__CANCEL__) + } + }, + {} + ], + 22: [ + function (require, module, exports) { + 'use strict' + var utils = require('./../utils') + var buildURL = require('../helpers/buildURL') + var InterceptorManager = require('./InterceptorManager') + var dispatchRequest = require('./dispatchRequest') + var mergeConfig = require('./mergeConfig') + var validator = require('../helpers/validator') + var validators = validator.validators + function Axios(instanceConfig) { + this.defaults = instanceConfig + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + } + } + Axios.prototype.request = function request(config) { + if (typeof config === 'string') { + config = arguments[1] || {} + config.url = arguments[0] + } else { + config = config || {} + } + config = mergeConfig(this.defaults, config) + if (config.method) { + config.method = config.method.toLowerCase() + } else if (this.defaults.method) { + config.method = this.defaults.method.toLowerCase() + } else { + config.method = 'get' + } + var transitional = config.transitional + if (transitional !== undefined) { + validator.assertOptions( + transitional, + { + silentJSONParsing: validators.transitional(validators.boolean), + forcedJSONParsing: validators.transitional(validators.boolean), + clarifyTimeoutError: validators.transitional(validators.boolean) + }, + false + ) + } + var requestInterceptorChain = [] + var synchronousRequestInterceptors = true + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + if ( + typeof interceptor.runWhen === 'function' && + interceptor.runWhen(config) === false + ) { + return + } + synchronousRequestInterceptors = + synchronousRequestInterceptors && interceptor.synchronous + requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected) + }) + var responseInterceptorChain = [] + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected) + }) + var promise + if (!synchronousRequestInterceptors) { + var chain = [dispatchRequest, undefined] + Array.prototype.unshift.apply(chain, requestInterceptorChain) + chain = chain.concat(responseInterceptorChain) + promise = Promise.resolve(config) + while (chain.length) { + promise = promise.then(chain.shift(), chain.shift()) + } + return promise + } + var newConfig = config + while (requestInterceptorChain.length) { + var onFulfilled = requestInterceptorChain.shift() + var onRejected = requestInterceptorChain.shift() + try { + newConfig = onFulfilled(newConfig) + } catch (error) { + onRejected(error) + break + } + } + try { + promise = dispatchRequest(newConfig) + } catch (error) { + return Promise.reject(error) + } + while (responseInterceptorChain.length) { + promise = promise.then( + responseInterceptorChain.shift(), + responseInterceptorChain.shift() + ) + } + return promise + } + Axios.prototype.getUri = function getUri(config) { + config = mergeConfig(this.defaults, config) + return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, '') + } + utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + Axios.prototype[method] = function (url, config) { + return this.request( + mergeConfig(config || {}, { method: method, url: url, data: (config || {}).data }) + ) + } + }) + utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + Axios.prototype[method] = function (url, data, config) { + return this.request( + mergeConfig(config || {}, { method: method, url: url, data: data }) + ) + } + }) + module.exports = Axios + }, + { + '../helpers/buildURL': 34, + '../helpers/validator': 43, + './../utils': 44, + './InterceptorManager': 23, + './dispatchRequest': 26, + './mergeConfig': 28 + } + ], + 23: [ + function (require, module, exports) { + 'use strict' + var utils = require('./../utils') + function InterceptorManager() { + this.handlers = [] + } + InterceptorManager.prototype.use = function use(fulfilled, rejected, options) { + this.handlers.push({ + fulfilled: fulfilled, + rejected: rejected, + synchronous: options ? options.synchronous : false, + runWhen: options ? options.runWhen : null + }) + return this.handlers.length - 1 + } + InterceptorManager.prototype.eject = function eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null + } + } + InterceptorManager.prototype.forEach = function forEach(fn) { + utils.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h) + } + }) + } + module.exports = InterceptorManager + }, + { './../utils': 44 } + ], + 24: [ + function (require, module, exports) { + 'use strict' + var isAbsoluteURL = require('../helpers/isAbsoluteURL') + var combineURLs = require('../helpers/combineURLs') + module.exports = function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL) + } + return requestedURL + } + }, + { '../helpers/combineURLs': 35, '../helpers/isAbsoluteURL': 37 } + ], + 25: [ + function (require, module, exports) { + 'use strict' + var enhanceError = require('./enhanceError') + module.exports = function createError(message, config, code, request, response) { + var error = new Error(message) + return enhanceError(error, config, code, request, response) + } + }, + { './enhanceError': 27 } + ], + 26: [ + function (require, module, exports) { + 'use strict' + var utils = require('./../utils') + var transformData = require('./transformData') + var isCancel = require('../cancel/isCancel') + var defaults = require('../defaults') + var Cancel = require('../cancel/Cancel') + function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested() + } + if (config.signal && config.signal.aborted) { + throw new Cancel('canceled') + } + } + module.exports = function dispatchRequest(config) { + throwIfCancellationRequested(config) + config.headers = config.headers || {} + config.data = transformData.call( + config, + config.data, + config.headers, + config.transformRequest + ) + config.headers = utils.merge( + config.headers.common || {}, + config.headers[config.method] || {}, + config.headers + ) + utils.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], + function cleanHeaderConfig(method) { + delete config.headers[method] + } + ) + var adapter = config.adapter || defaults.adapter + return adapter(config).then( + function onAdapterResolution(response) { + throwIfCancellationRequested(config) + response.data = transformData.call( + config, + response.data, + response.headers, + config.transformResponse + ) + return response + }, + function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config) + if (reason && reason.response) { + reason.response.data = transformData.call( + config, + reason.response.data, + reason.response.headers, + config.transformResponse + ) + } + } + return Promise.reject(reason) + } + ) + } + }, + { + '../cancel/Cancel': 19, + '../cancel/isCancel': 21, + '../defaults': 31, + './../utils': 44, + './transformData': 30 + } + ], + 27: [ + function (require, module, exports) { + 'use strict' + module.exports = function enhanceError(error, config, code, request, response) { + error.config = config + if (code) { + error.code = code + } + error.request = request + error.response = response + error.isAxiosError = true + error.toJSON = function toJSON() { + return { + message: this.message, + name: this.name, + description: this.description, + number: this.number, + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + config: this.config, + code: this.code, + status: this.response && this.response.status ? this.response.status : null + } + } + return error + } + }, + {} + ], + 28: [ + function (require, module, exports) { + 'use strict' + var utils = require('../utils') + module.exports = function mergeConfig(config1, config2) { + config2 = config2 || {} + var config = {} + function getMergedValue(target, source) { + if (utils.isPlainObject(target) && utils.isPlainObject(source)) { + return utils.merge(target, source) + } else if (utils.isPlainObject(source)) { + return utils.merge({}, source) + } else if (utils.isArray(source)) { + return source.slice() + } + return source + } + function mergeDeepProperties(prop) { + if (!utils.isUndefined(config2[prop])) { + return getMergedValue(config1[prop], config2[prop]) + } else if (!utils.isUndefined(config1[prop])) { + return getMergedValue(undefined, config1[prop]) + } + } + function valueFromConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + return getMergedValue(undefined, config2[prop]) + } + } + function defaultToConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + return getMergedValue(undefined, config2[prop]) + } else if (!utils.isUndefined(config1[prop])) { + return getMergedValue(undefined, config1[prop]) + } + } + function mergeDirectKeys(prop) { + if (prop in config2) { + return getMergedValue(config1[prop], config2[prop]) + } else if (prop in config1) { + return getMergedValue(undefined, config1[prop]) + } + } + var mergeMap = { + url: valueFromConfig2, + method: valueFromConfig2, + data: valueFromConfig2, + baseURL: defaultToConfig2, + transformRequest: defaultToConfig2, + transformResponse: defaultToConfig2, + paramsSerializer: defaultToConfig2, + timeout: defaultToConfig2, + timeoutMessage: defaultToConfig2, + withCredentials: defaultToConfig2, + adapter: defaultToConfig2, + responseType: defaultToConfig2, + xsrfCookieName: defaultToConfig2, + xsrfHeaderName: defaultToConfig2, + onUploadProgress: defaultToConfig2, + onDownloadProgress: defaultToConfig2, + decompress: defaultToConfig2, + maxContentLength: defaultToConfig2, + maxBodyLength: defaultToConfig2, + transport: defaultToConfig2, + httpAgent: defaultToConfig2, + httpsAgent: defaultToConfig2, + cancelToken: defaultToConfig2, + socketPath: defaultToConfig2, + responseEncoding: defaultToConfig2, + validateStatus: mergeDirectKeys + } + utils.forEach( + Object.keys(config1).concat(Object.keys(config2)), + function computeConfigValue(prop) { + var merge = mergeMap[prop] || mergeDeepProperties + var configValue = merge(prop) + ;(utils.isUndefined(configValue) && merge !== mergeDirectKeys) || + (config[prop] = configValue) + } + ) + return config + } + }, + { '../utils': 44 } + ], + 29: [ + function (require, module, exports) { + 'use strict' + var createError = require('./createError') + module.exports = function settle(resolve, reject, response) { + var validateStatus = response.config.validateStatus + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response) + } else { + reject( + createError( + 'Request failed with status code ' + response.status, + response.config, + null, + response.request, + response + ) + ) + } + } + }, + { './createError': 25 } + ], + 30: [ + function (require, module, exports) { + 'use strict' + var utils = require('./../utils') + var defaults = require('./../defaults') + module.exports = function transformData(data, headers, fns) { + var context = this || defaults + utils.forEach(fns, function transform(fn) { + data = fn.call(context, data, headers) + }) + return data + } + }, + { './../defaults': 31, './../utils': 44 } + ], + 31: [ + function (require, module, exports) { + ;(function (process) { + ;(function () { + 'use strict' + var utils = require('./utils') + var normalizeHeaderName = require('./helpers/normalizeHeaderName') + var enhanceError = require('./core/enhanceError') + var DEFAULT_CONTENT_TYPE = { 'Content-Type': 'application/x-www-form-urlencoded' } + function setContentTypeIfUnset(headers, value) { + if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { + headers['Content-Type'] = value + } + } + function getDefaultAdapter() { + var adapter + if (typeof XMLHttpRequest !== 'undefined') { + adapter = require('./adapters/xhr') + } else if ( + typeof process !== 'undefined' && + Object.prototype.toString.call(process) === '[object process]' + ) { + adapter = require('./adapters/http') + } + return adapter + } + function stringifySafely(rawValue, parser, encoder) { + if (utils.isString(rawValue)) { + try { + ;(parser || JSON.parse)(rawValue) + return utils.trim(rawValue) + } catch (e) { + if (e.name !== 'SyntaxError') { + throw e + } + } + } + return (encoder || JSON.stringify)(rawValue) + } + var defaults = { + transitional: { + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false + }, + adapter: getDefaultAdapter(), + transformRequest: [ + function transformRequest(data, headers) { + normalizeHeaderName(headers, 'Accept') + normalizeHeaderName(headers, 'Content-Type') + if ( + utils.isFormData(data) || + utils.isArrayBuffer(data) || + utils.isBuffer(data) || + utils.isStream(data) || + utils.isFile(data) || + utils.isBlob(data) + ) { + return data + } + if (utils.isArrayBufferView(data)) { + return data.buffer + } + if (utils.isURLSearchParams(data)) { + setContentTypeIfUnset( + headers, + 'application/x-www-form-urlencoded;charset=utf-8' + ) + return data.toString() + } + if ( + utils.isObject(data) || + (headers && headers['Content-Type'] === 'application/json') + ) { + setContentTypeIfUnset(headers, 'application/json') + return stringifySafely(data) + } + return data + } + ], + transformResponse: [ + function transformResponse(data) { + var transitional = this.transitional || defaults.transitional + var silentJSONParsing = transitional && transitional.silentJSONParsing + var forcedJSONParsing = transitional && transitional.forcedJSONParsing + var strictJSONParsing = !silentJSONParsing && this.responseType === 'json' + if ( + strictJSONParsing || + (forcedJSONParsing && utils.isString(data) && data.length) + ) { + try { + return JSON.parse(data) + } catch (e) { + if (strictJSONParsing) { + if (e.name === 'SyntaxError') { + throw enhanceError(e, this, 'E_JSON_PARSE') + } + throw e + } + } + } + return data + } + ], + timeout: 0, + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + maxContentLength: -1, + maxBodyLength: -1, + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300 + }, + headers: { common: { Accept: 'application/json, text/plain, */*' } } + } + utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { + defaults.headers[method] = {} + }) + utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE) + }) + module.exports = defaults + }.call(this)) + }.call(this, require('_process'))) + }, + { + './adapters/http': 17, + './adapters/xhr': 17, + './core/enhanceError': 27, + './helpers/normalizeHeaderName': 40, + './utils': 44, + _process: 171 + } + ], + 32: [ + function (require, module, exports) { + module.exports = { version: '0.24.0' } + }, + {} + ], + 33: [ + function (require, module, exports) { + 'use strict' + module.exports = function bind(fn, thisArg) { + return function wrap() { + var args = new Array(arguments.length) + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i] + } + return fn.apply(thisArg, args) + } + } + }, + {} + ], + 34: [ + function (require, module, exports) { + 'use strict' + var utils = require('./../utils') + function encode(val) { + return encodeURIComponent(val) + .replace(/%3A/gi, ':') + .replace(/%24/g, '$') + .replace(/%2C/gi, ',') + .replace(/%20/g, '+') + .replace(/%5B/gi, '[') + .replace(/%5D/gi, ']') + } + module.exports = function buildURL(url, params, paramsSerializer) { + if (!params) { + return url + } + var serializedParams + if (paramsSerializer) { + serializedParams = paramsSerializer(params) + } else if (utils.isURLSearchParams(params)) { + serializedParams = params.toString() + } else { + var parts = [] + utils.forEach(params, function serialize(val, key) { + if (val === null || typeof val === 'undefined') { + return + } + if (utils.isArray(val)) { + key = key + '[]' + } else { + val = [val] + } + utils.forEach(val, function parseValue(v) { + if (utils.isDate(v)) { + v = v.toISOString() + } else if (utils.isObject(v)) { + v = JSON.stringify(v) + } + parts.push(encode(key) + '=' + encode(v)) + }) + }) + serializedParams = parts.join('&') + } + if (serializedParams) { + var hashmarkIndex = url.indexOf('#') + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex) + } + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams + } + return url + } + }, + { './../utils': 44 } + ], + 35: [ + function (require, module, exports) { + 'use strict' + module.exports = function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL + } + }, + {} + ], + 36: [ + function (require, module, exports) { + 'use strict' + var utils = require('./../utils') + module.exports = utils.isStandardBrowserEnv() + ? (function standardBrowserEnv() { + return { + write: function write(name, value, expires, path, domain, secure) { + var cookie = [] + cookie.push(name + '=' + encodeURIComponent(value)) + if (utils.isNumber(expires)) { + cookie.push('expires=' + new Date(expires).toGMTString()) + } + if (utils.isString(path)) { + cookie.push('path=' + path) + } + if (utils.isString(domain)) { + cookie.push('domain=' + domain) + } + if (secure === true) { + cookie.push('secure') + } + document.cookie = cookie.join('; ') + }, + read: function read(name) { + var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')) + return match ? decodeURIComponent(match[3]) : null + }, + remove: function remove(name) { + this.write(name, '', Date.now() - 864e5) + } + } + })() + : (function nonStandardBrowserEnv() { + return { + write: function write() {}, + read: function read() { + return null + }, + remove: function remove() {} + } + })() + }, + { './../utils': 44 } + ], + 37: [ + function (require, module, exports) { + 'use strict' + module.exports = function isAbsoluteURL(url) { + return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url) + } + }, + {} + ], + 38: [ + function (require, module, exports) { + 'use strict' + module.exports = function isAxiosError(payload) { + return typeof payload === 'object' && payload.isAxiosError === true + } + }, + {} + ], + 39: [ + function (require, module, exports) { + 'use strict' + var utils = require('./../utils') + module.exports = utils.isStandardBrowserEnv() + ? (function standardBrowserEnv() { + var msie = /(msie|trident)/i.test(navigator.userAgent) + var urlParsingNode = document.createElement('a') + var originURL + function resolveURL(url) { + var href = url + if (msie) { + urlParsingNode.setAttribute('href', href) + href = urlParsingNode.href + } + urlParsingNode.setAttribute('href', href) + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol + ? urlParsingNode.protocol.replace(/:$/, '') + : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: + urlParsingNode.pathname.charAt(0) === '/' + ? urlParsingNode.pathname + : '/' + urlParsingNode.pathname + } + } + originURL = resolveURL(window.location.href) + return function isURLSameOrigin(requestURL) { + var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL + return parsed.protocol === originURL.protocol && parsed.host === originURL.host + } + })() + : (function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true + } + })() + }, + { './../utils': 44 } + ], + 40: [ + function (require, module, exports) { + 'use strict' + var utils = require('../utils') + module.exports = function normalizeHeaderName(headers, normalizedName) { + utils.forEach(headers, function processHeader(value, name) { + if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { + headers[normalizedName] = value + delete headers[name] + } + }) + } + }, + { '../utils': 44 } + ], + 41: [ + function (require, module, exports) { + 'use strict' + var utils = require('./../utils') + var ignoreDuplicateOf = [ + 'age', + 'authorization', + 'content-length', + 'content-type', + 'etag', + 'expires', + 'from', + 'host', + 'if-modified-since', + 'if-unmodified-since', + 'last-modified', + 'location', + 'max-forwards', + 'proxy-authorization', + 'referer', + 'retry-after', + 'user-agent' + ] + module.exports = function parseHeaders(headers) { + var parsed = {} + var key + var val + var i + if (!headers) { + return parsed + } + utils.forEach(headers.split('\n'), function parser(line) { + i = line.indexOf(':') + key = utils.trim(line.substr(0, i)).toLowerCase() + val = utils.trim(line.substr(i + 1)) + if (key) { + if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { + return + } + if (key === 'set-cookie') { + parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]) + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val + } + } + }) + return parsed + } + }, + { './../utils': 44 } + ], + 42: [ + function (require, module, exports) { + 'use strict' + module.exports = function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr) + } + } + }, + {} + ], + 43: [ + function (require, module, exports) { + 'use strict' + var VERSION = require('../env/data').version + var validators = {} + ;['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function ( + type, + i + ) { + validators[type] = function validator(thing) { + return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type + } + }) + var deprecatedWarnings = {} + validators.transitional = function transitional(validator, version, message) { + function formatMessage(opt, desc) { + return ( + '[Axios v' + + VERSION + + "] Transitional option '" + + opt + + "'" + + desc + + (message ? '. ' + message : '') + ) + } + return function (value, opt, opts) { + if (validator === false) { + throw new Error( + formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')) + ) + } + if (version && !deprecatedWarnings[opt]) { + deprecatedWarnings[opt] = true + console.warn( + formatMessage( + opt, + ' has been deprecated since v' + + version + + ' and will be removed in the near future' + ) + ) + } + return validator ? validator(value, opt, opts) : true + } + } + function assertOptions(options, schema, allowUnknown) { + if (typeof options !== 'object') { + throw new TypeError('options must be an object') + } + var keys = Object.keys(options) + var i = keys.length + while (i-- > 0) { + var opt = keys[i] + var validator = schema[opt] + if (validator) { + var value = options[opt] + var result = value === undefined || validator(value, opt, options) + if (result !== true) { + throw new TypeError('option ' + opt + ' must be ' + result) + } + continue + } + if (allowUnknown !== true) { + throw Error('Unknown option ' + opt) + } + } + } + module.exports = { assertOptions: assertOptions, validators: validators } + }, + { '../env/data': 32 } + ], + 44: [ + function (require, module, exports) { + 'use strict' + var bind = require('./helpers/bind') + var toString = Object.prototype.toString + function isArray(val) { + return toString.call(val) === '[object Array]' + } + function isUndefined(val) { + return typeof val === 'undefined' + } + function isBuffer(val) { + return ( + val !== null && + !isUndefined(val) && + val.constructor !== null && + !isUndefined(val.constructor) && + typeof val.constructor.isBuffer === 'function' && + val.constructor.isBuffer(val) + ) + } + function isArrayBuffer(val) { + return toString.call(val) === '[object ArrayBuffer]' + } + function isFormData(val) { + return typeof FormData !== 'undefined' && val instanceof FormData + } + function isArrayBufferView(val) { + var result + if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) { + result = ArrayBuffer.isView(val) + } else { + result = val && val.buffer && val.buffer instanceof ArrayBuffer + } + return result + } + function isString(val) { + return typeof val === 'string' + } + function isNumber(val) { + return typeof val === 'number' + } + function isObject(val) { + return val !== null && typeof val === 'object' + } + function isPlainObject(val) { + if (toString.call(val) !== '[object Object]') { + return false + } + var prototype = Object.getPrototypeOf(val) + return prototype === null || prototype === Object.prototype + } + function isDate(val) { + return toString.call(val) === '[object Date]' + } + function isFile(val) { + return toString.call(val) === '[object File]' + } + function isBlob(val) { + return toString.call(val) === '[object Blob]' + } + function isFunction(val) { + return toString.call(val) === '[object Function]' + } + function isStream(val) { + return isObject(val) && isFunction(val.pipe) + } + function isURLSearchParams(val) { + return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams + } + function trim(str) { + return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, '') + } + function isStandardBrowserEnv() { + if ( + typeof navigator !== 'undefined' && + (navigator.product === 'ReactNative' || + navigator.product === 'NativeScript' || + navigator.product === 'NS') + ) { + return false + } + return typeof window !== 'undefined' && typeof document !== 'undefined' + } + function forEach(obj, fn) { + if (obj === null || typeof obj === 'undefined') { + return + } + if (typeof obj !== 'object') { + obj = [obj] + } + if (isArray(obj)) { + for (var i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj) + } + } else { + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + fn.call(null, obj[key], key, obj) + } + } + } + } + function merge() { + var result = {} + function assignValue(val, key) { + if (isPlainObject(result[key]) && isPlainObject(val)) { + result[key] = merge(result[key], val) + } else if (isPlainObject(val)) { + result[key] = merge({}, val) + } else if (isArray(val)) { + result[key] = val.slice() + } else { + result[key] = val + } + } + for (var i = 0, l = arguments.length; i < l; i++) { + forEach(arguments[i], assignValue) + } + return result + } + function extend(a, b, thisArg) { + forEach(b, function assignValue(val, key) { + if (thisArg && typeof val === 'function') { + a[key] = bind(val, thisArg) + } else { + a[key] = val + } + }) + return a + } + function stripBOM(content) { + if (content.charCodeAt(0) === 65279) { + content = content.slice(1) + } + return content + } + module.exports = { + isArray: isArray, + isArrayBuffer: isArrayBuffer, + isBuffer: isBuffer, + isFormData: isFormData, + isArrayBufferView: isArrayBufferView, + isString: isString, + isNumber: isNumber, + isObject: isObject, + isPlainObject: isPlainObject, + isUndefined: isUndefined, + isDate: isDate, + isFile: isFile, + isBlob: isBlob, + isFunction: isFunction, + isStream: isStream, + isURLSearchParams: isURLSearchParams, + isStandardBrowserEnv: isStandardBrowserEnv, + forEach: forEach, + merge: merge, + extend: extend, + trim: trim, + stripBOM: stripBOM + } + }, + { './helpers/bind': 33 } + ], + 45: [ + function (require, module, exports) { + 'use strict' + var _Buffer = require('safe-buffer').Buffer + function base(ALPHABET) { + if (ALPHABET.length >= 255) { + throw new TypeError('Alphabet too long') + } + var BASE_MAP = new Uint8Array(256) + for (var j = 0; j < BASE_MAP.length; j++) { + BASE_MAP[j] = 255 + } + for (var i = 0; i < ALPHABET.length; i++) { + var x = ALPHABET.charAt(i) + var xc = x.charCodeAt(0) + if (BASE_MAP[xc] !== 255) { + throw new TypeError(x + ' is ambiguous') + } + BASE_MAP[xc] = i + } + var BASE = ALPHABET.length + var LEADER = ALPHABET.charAt(0) + var FACTOR = Math.log(BASE) / Math.log(256) + var iFACTOR = Math.log(256) / Math.log(BASE) + function encode(source) { + if (Array.isArray(source) || source instanceof Uint8Array) { + source = _Buffer.from(source) + } + if (!_Buffer.isBuffer(source)) { + throw new TypeError('Expected Buffer') + } + if (source.length === 0) { + return '' + } + var zeroes = 0 + var length = 0 + var pbegin = 0 + var pend = source.length + while (pbegin !== pend && source[pbegin] === 0) { + pbegin++ + zeroes++ + } + var size = ((pend - pbegin) * iFACTOR + 1) >>> 0 + var b58 = new Uint8Array(size) + while (pbegin !== pend) { + var carry = source[pbegin] + var i = 0 + for (var it1 = size - 1; (carry !== 0 || i < length) && it1 !== -1; it1--, i++) { + carry += (256 * b58[it1]) >>> 0 + b58[it1] = carry % BASE >>> 0 + carry = (carry / BASE) >>> 0 + } + if (carry !== 0) { + throw new Error('Non-zero carry') + } + length = i + pbegin++ + } + var it2 = size - length + while (it2 !== size && b58[it2] === 0) { + it2++ + } + var str = LEADER.repeat(zeroes) + for (; it2 < size; ++it2) { + str += ALPHABET.charAt(b58[it2]) + } + return str + } + function decodeUnsafe(source) { + if (typeof source !== 'string') { + throw new TypeError('Expected String') + } + if (source.length === 0) { + return _Buffer.alloc(0) + } + var psz = 0 + var zeroes = 0 + var length = 0 + while (source[psz] === LEADER) { + zeroes++ + psz++ + } + var size = ((source.length - psz) * FACTOR + 1) >>> 0 + var b256 = new Uint8Array(size) + while (source[psz]) { + var carry = BASE_MAP[source.charCodeAt(psz)] + if (carry === 255) { + return + } + var i = 0 + for (var it3 = size - 1; (carry !== 0 || i < length) && it3 !== -1; it3--, i++) { + carry += (BASE * b256[it3]) >>> 0 + b256[it3] = carry % 256 >>> 0 + carry = (carry / 256) >>> 0 + } + if (carry !== 0) { + throw new Error('Non-zero carry') + } + length = i + psz++ + } + var it4 = size - length + while (it4 !== size && b256[it4] === 0) { + it4++ + } + var vch = _Buffer.allocUnsafe(zeroes + (size - it4)) + vch.fill(0, 0, zeroes) + var j = zeroes + while (it4 !== size) { + vch[j++] = b256[it4++] + } + return vch + } + function decode(string) { + var buffer = decodeUnsafe(string) + if (buffer) { + return buffer + } + throw new Error('Non-base' + BASE + ' character') + } + return { encode: encode, decodeUnsafe: decodeUnsafe, decode: decode } + } + module.exports = base + }, + { 'safe-buffer': 183 } + ], + 46: [ + function (require, module, exports) { + 'use strict' + exports.byteLength = byteLength + exports.toByteArray = toByteArray + exports.fromByteArray = fromByteArray + var lookup = [] + var revLookup = [] + var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array + var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' + for (var i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i] + revLookup[code.charCodeAt(i)] = i + } + revLookup['-'.charCodeAt(0)] = 62 + revLookup['_'.charCodeAt(0)] = 63 + function getLens(b64) { + var len = b64.length + if (len % 4 > 0) { + throw new Error('Invalid string. Length must be a multiple of 4') + } + var validLen = b64.indexOf('=') + if (validLen === -1) validLen = len + var placeHoldersLen = validLen === len ? 0 : 4 - (validLen % 4) + return [validLen, placeHoldersLen] + } + function byteLength(b64) { + var lens = getLens(b64) + var validLen = lens[0] + var placeHoldersLen = lens[1] + return ((validLen + placeHoldersLen) * 3) / 4 - placeHoldersLen + } + function _byteLength(b64, validLen, placeHoldersLen) { + return ((validLen + placeHoldersLen) * 3) / 4 - placeHoldersLen + } + function toByteArray(b64) { + var tmp + var lens = getLens(b64) + var validLen = lens[0] + var placeHoldersLen = lens[1] + var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)) + var curByte = 0 + var len = placeHoldersLen > 0 ? validLen - 4 : validLen + var i + for (i = 0; i < len; i += 4) { + tmp = + (revLookup[b64.charCodeAt(i)] << 18) | + (revLookup[b64.charCodeAt(i + 1)] << 12) | + (revLookup[b64.charCodeAt(i + 2)] << 6) | + revLookup[b64.charCodeAt(i + 3)] + arr[curByte++] = (tmp >> 16) & 255 + arr[curByte++] = (tmp >> 8) & 255 + arr[curByte++] = tmp & 255 + } + if (placeHoldersLen === 2) { + tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4) + arr[curByte++] = tmp & 255 + } + if (placeHoldersLen === 1) { + tmp = + (revLookup[b64.charCodeAt(i)] << 10) | + (revLookup[b64.charCodeAt(i + 1)] << 4) | + (revLookup[b64.charCodeAt(i + 2)] >> 2) + arr[curByte++] = (tmp >> 8) & 255 + arr[curByte++] = tmp & 255 + } + return arr + } + function tripletToBase64(num) { + return ( + lookup[(num >> 18) & 63] + + lookup[(num >> 12) & 63] + + lookup[(num >> 6) & 63] + + lookup[num & 63] + ) + } + function encodeChunk(uint8, start, end) { + var tmp + var output = [] + for (var i = start; i < end; i += 3) { + tmp = + ((uint8[i] << 16) & 16711680) + ((uint8[i + 1] << 8) & 65280) + (uint8[i + 2] & 255) + output.push(tripletToBase64(tmp)) + } + return output.join('') + } + function fromByteArray(uint8) { + var tmp + var len = uint8.length + var extraBytes = len % 3 + var parts = [] + var maxChunkLength = 16383 + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push( + encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength) + ) + } + if (extraBytes === 1) { + tmp = uint8[len - 1] + parts.push(lookup[tmp >> 2] + lookup[(tmp << 4) & 63] + '==') + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + uint8[len - 1] + parts.push( + lookup[tmp >> 10] + lookup[(tmp >> 4) & 63] + lookup[(tmp << 2) & 63] + '=' + ) + } + return parts.join('') + } + }, + {} + ], + 47: [ + function (require, module, exports) { + ;(function (module, exports) { + 'use strict' + function assert(val, msg) { + if (!val) throw new Error(msg || 'Assertion failed') + } + function inherits(ctor, superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } + function BN(number, base, endian) { + if (BN.isBN(number)) { + return number + } + this.negative = 0 + this.words = null + this.length = 0 + this.red = null + if (number !== null) { + if (base === 'le' || base === 'be') { + endian = base + base = 10 + } + this._init(number || 0, base || 10, endian || 'be') + } + } + if (typeof module === 'object') { + module.exports = BN + } else { + exports.BN = BN + } + BN.BN = BN + BN.wordSize = 26 + var Buffer + try { + Buffer = require('buffer').Buffer + } catch (e) {} + BN.isBN = function isBN(num) { + if (num instanceof BN) { + return true + } + return ( + num !== null && + typeof num === 'object' && + num.constructor.wordSize === BN.wordSize && + Array.isArray(num.words) + ) + } + BN.max = function max(left, right) { + if (left.cmp(right) > 0) return left + return right + } + BN.min = function min(left, right) { + if (left.cmp(right) < 0) return left + return right + } + BN.prototype._init = function init(number, base, endian) { + if (typeof number === 'number') { + return this._initNumber(number, base, endian) + } + if (typeof number === 'object') { + return this._initArray(number, base, endian) + } + if (base === 'hex') { + base = 16 + } + assert(base === (base | 0) && base >= 2 && base <= 36) + number = number.toString().replace(/\s+/g, '') + var start = 0 + if (number[0] === '-') { + start++ + } + if (base === 16) { + this._parseHex(number, start) + } else { + this._parseBase(number, base, start) + } + if (number[0] === '-') { + this.negative = 1 + } + this._strip() + if (endian !== 'le') return + this._initArray(this.toArray(), base, endian) + } + BN.prototype._initNumber = function _initNumber(number, base, endian) { + if (number < 0) { + this.negative = 1 + number = -number + } + if (number < 67108864) { + this.words = [number & 67108863] + this.length = 1 + } else if (number < 4503599627370496) { + this.words = [number & 67108863, (number / 67108864) & 67108863] + this.length = 2 + } else { + assert(number < 9007199254740992) + this.words = [number & 67108863, (number / 67108864) & 67108863, 1] + this.length = 3 + } + if (endian !== 'le') return + this._initArray(this.toArray(), base, endian) + } + BN.prototype._initArray = function _initArray(number, base, endian) { + assert(typeof number.length === 'number') + if (number.length <= 0) { + this.words = [0] + this.length = 1 + return this + } + this.length = Math.ceil(number.length / 3) + this.words = new Array(this.length) + for (var i = 0; i < this.length; i++) { + this.words[i] = 0 + } + var j, w + var off = 0 + if (endian === 'be') { + for (i = number.length - 1, j = 0; i >= 0; i -= 3) { + w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16) + this.words[j] |= (w << off) & 67108863 + this.words[j + 1] = (w >>> (26 - off)) & 67108863 + off += 24 + if (off >= 26) { + off -= 26 + j++ + } + } + } else if (endian === 'le') { + for (i = 0, j = 0; i < number.length; i += 3) { + w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16) + this.words[j] |= (w << off) & 67108863 + this.words[j + 1] = (w >>> (26 - off)) & 67108863 + off += 24 + if (off >= 26) { + off -= 26 + j++ + } + } + } + return this._strip() + } + function parseHex(str, start, end) { + var r = 0 + var len = Math.min(str.length, end) + var z = 0 + for (var i = start; i < len; i++) { + var c = str.charCodeAt(i) - 48 + r <<= 4 + var b + if (c >= 49 && c <= 54) { + b = c - 49 + 10 + } else if (c >= 17 && c <= 22) { + b = c - 17 + 10 + } else { + b = c + } + r |= b + z |= b + } + assert(!(z & 240), 'Invalid character in ' + str) + return r + } + BN.prototype._parseHex = function _parseHex(number, start) { + this.length = Math.ceil((number.length - start) / 6) + this.words = new Array(this.length) + for (var i = 0; i < this.length; i++) { + this.words[i] = 0 + } + var j, w + var off = 0 + for (i = number.length - 6, j = 0; i >= start; i -= 6) { + w = parseHex(number, i, i + 6) + this.words[j] |= (w << off) & 67108863 + this.words[j + 1] |= (w >>> (26 - off)) & 4194303 + off += 24 + if (off >= 26) { + off -= 26 + j++ + } + } + if (i + 6 !== start) { + w = parseHex(number, start, i + 6) + this.words[j] |= (w << off) & 67108863 + this.words[j + 1] |= (w >>> (26 - off)) & 4194303 + } + this._strip() + } + function parseBase(str, start, end, mul) { + var r = 0 + var b = 0 + var len = Math.min(str.length, end) + for (var i = start; i < len; i++) { + var c = str.charCodeAt(i) - 48 + r *= mul + if (c >= 49) { + b = c - 49 + 10 + } else if (c >= 17) { + b = c - 17 + 10 + } else { + b = c + } + assert(c >= 0 && b < mul, 'Invalid character') + r += b + } + return r + } + BN.prototype._parseBase = function _parseBase(number, base, start) { + this.words = [0] + this.length = 1 + for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { + limbLen++ + } + limbLen-- + limbPow = (limbPow / base) | 0 + var total = number.length - start + var mod = total % limbLen + var end = Math.min(total, total - mod) + start + var word = 0 + for (var i = start; i < end; i += limbLen) { + word = parseBase(number, i, i + limbLen, base) + this.imuln(limbPow) + if (this.words[0] + word < 67108864) { + this.words[0] += word + } else { + this._iaddn(word) + } + } + if (mod !== 0) { + var pow = 1 + word = parseBase(number, i, number.length, base) + for (i = 0; i < mod; i++) { + pow *= base + } + this.imuln(pow) + if (this.words[0] + word < 67108864) { + this.words[0] += word + } else { + this._iaddn(word) + } + } + } + BN.prototype.copy = function copy(dest) { + dest.words = new Array(this.length) + for (var i = 0; i < this.length; i++) { + dest.words[i] = this.words[i] + } + dest.length = this.length + dest.negative = this.negative + dest.red = this.red + } + function move(dest, src) { + dest.words = src.words + dest.length = src.length + dest.negative = src.negative + dest.red = src.red + } + BN.prototype._move = function _move(dest) { + move(dest, this) + } + BN.prototype.clone = function clone() { + var r = new BN(null) + this.copy(r) + return r + } + BN.prototype._expand = function _expand(size) { + while (this.length < size) { + this.words[this.length++] = 0 + } + return this + } + BN.prototype._strip = function strip() { + while (this.length > 1 && this.words[this.length - 1] === 0) { + this.length-- + } + return this._normSign() + } + BN.prototype._normSign = function _normSign() { + if (this.length === 1 && this.words[0] === 0) { + this.negative = 0 + } + return this + } + if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') { + BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect + } else { + BN.prototype.inspect = inspect + } + function inspect() { + return (this.red ? '' + } + var zeros = [ + '', + '0', + '00', + '000', + '0000', + '00000', + '000000', + '0000000', + '00000000', + '000000000', + '0000000000', + '00000000000', + '000000000000', + '0000000000000', + '00000000000000', + '000000000000000', + '0000000000000000', + '00000000000000000', + '000000000000000000', + '0000000000000000000', + '00000000000000000000', + '000000000000000000000', + '0000000000000000000000', + '00000000000000000000000', + '000000000000000000000000', + '0000000000000000000000000' + ] + var groupSizes = [ + 0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 + ] + var groupBases = [ + 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, + 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, + 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, + 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176 + ] + BN.prototype.toString = function toString(base, padding) { + base = base || 10 + padding = padding | 0 || 1 + var out + if (base === 16 || base === 'hex') { + out = '' + var off = 0 + var carry = 0 + for (var i = 0; i < this.length; i++) { + var w = this.words[i] + var word = (((w << off) | carry) & 16777215).toString(16) + carry = (w >>> (24 - off)) & 16777215 + if (carry !== 0 || i !== this.length - 1) { + out = zeros[6 - word.length] + word + out + } else { + out = word + out + } + off += 2 + if (off >= 26) { + off -= 26 + i-- + } + } + if (carry !== 0) { + out = carry.toString(16) + out + } + while (out.length % padding !== 0) { + out = '0' + out + } + if (this.negative !== 0) { + out = '-' + out + } + return out + } + if (base === (base | 0) && base >= 2 && base <= 36) { + var groupSize = groupSizes[base] + var groupBase = groupBases[base] + out = '' + var c = this.clone() + c.negative = 0 + while (!c.isZero()) { + var r = c.modrn(groupBase).toString(base) + c = c.idivn(groupBase) + if (!c.isZero()) { + out = zeros[groupSize - r.length] + r + out + } else { + out = r + out + } + } + if (this.isZero()) { + out = '0' + out + } + while (out.length % padding !== 0) { + out = '0' + out + } + if (this.negative !== 0) { + out = '-' + out + } + return out + } + assert(false, 'Base should be between 2 and 36') + } + BN.prototype.toNumber = function toNumber() { + var ret = this.words[0] + if (this.length === 2) { + ret += this.words[1] * 67108864 + } else if (this.length === 3 && this.words[2] === 1) { + ret += 4503599627370496 + this.words[1] * 67108864 + } else if (this.length > 2) { + assert(false, 'Number can only safely store up to 53 bits') + } + return this.negative !== 0 ? -ret : ret + } + BN.prototype.toJSON = function toJSON() { + return this.toString(16, 2) + } + if (Buffer) { + BN.prototype.toBuffer = function toBuffer(endian, length) { + return this.toArrayLike(Buffer, endian, length) + } + } + BN.prototype.toArray = function toArray(endian, length) { + return this.toArrayLike(Array, endian, length) + } + var allocate = function allocate(ArrayType, size) { + if (ArrayType.allocUnsafe) { + return ArrayType.allocUnsafe(size) + } + return new ArrayType(size) + } + BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { + this._strip() + var byteLength = this.byteLength() + var reqLength = length || Math.max(1, byteLength) + assert(byteLength <= reqLength, 'byte array longer than desired length') + assert(reqLength > 0, 'Requested array length <= 0') + var res = allocate(ArrayType, reqLength) + var postfix = endian === 'le' ? 'LE' : 'BE' + this['_toArrayLike' + postfix](res, byteLength) + return res + } + BN.prototype._toArrayLikeLE = function _toArrayLikeLE(res, byteLength) { + var position = 0 + var carry = 0 + for (var i = 0, shift = 0; i < this.length; i++) { + var word = (this.words[i] << shift) | carry + res[position++] = word & 255 + if (position < res.length) { + res[position++] = (word >> 8) & 255 + } + if (position < res.length) { + res[position++] = (word >> 16) & 255 + } + if (shift === 6) { + if (position < res.length) { + res[position++] = (word >> 24) & 255 + } + carry = 0 + shift = 0 + } else { + carry = word >>> 24 + shift += 2 + } + } + if (position < res.length) { + res[position++] = carry + while (position < res.length) { + res[position++] = 0 + } + } + } + BN.prototype._toArrayLikeBE = function _toArrayLikeBE(res, byteLength) { + var position = res.length - 1 + var carry = 0 + for (var i = 0, shift = 0; i < this.length; i++) { + var word = (this.words[i] << shift) | carry + res[position--] = word & 255 + if (position >= 0) { + res[position--] = (word >> 8) & 255 + } + if (position >= 0) { + res[position--] = (word >> 16) & 255 + } + if (shift === 6) { + if (position >= 0) { + res[position--] = (word >> 24) & 255 + } + carry = 0 + shift = 0 + } else { + carry = word >>> 24 + shift += 2 + } + } + if (position >= 0) { + res[position--] = carry + while (position >= 0) { + res[position--] = 0 + } + } + } + if (Math.clz32) { + BN.prototype._countBits = function _countBits(w) { + return 32 - Math.clz32(w) + } + } else { + BN.prototype._countBits = function _countBits(w) { + var t = w + var r = 0 + if (t >= 4096) { + r += 13 + t >>>= 13 + } + if (t >= 64) { + r += 7 + t >>>= 7 + } + if (t >= 8) { + r += 4 + t >>>= 4 + } + if (t >= 2) { + r += 2 + t >>>= 2 + } + return r + t + } + } + BN.prototype._zeroBits = function _zeroBits(w) { + if (w === 0) return 26 + var t = w + var r = 0 + if ((t & 8191) === 0) { + r += 13 + t >>>= 13 + } + if ((t & 127) === 0) { + r += 7 + t >>>= 7 + } + if ((t & 15) === 0) { + r += 4 + t >>>= 4 + } + if ((t & 3) === 0) { + r += 2 + t >>>= 2 + } + if ((t & 1) === 0) { + r++ + } + return r + } + BN.prototype.bitLength = function bitLength() { + var w = this.words[this.length - 1] + var hi = this._countBits(w) + return (this.length - 1) * 26 + hi + } + function toBitArray(num) { + var w = new Array(num.bitLength()) + for (var bit = 0; bit < w.length; bit++) { + var off = (bit / 26) | 0 + var wbit = bit % 26 + w[bit] = (num.words[off] >>> wbit) & 1 + } + return w + } + BN.prototype.zeroBits = function zeroBits() { + if (this.isZero()) return 0 + var r = 0 + for (var i = 0; i < this.length; i++) { + var b = this._zeroBits(this.words[i]) + r += b + if (b !== 26) break + } + return r + } + BN.prototype.byteLength = function byteLength() { + return Math.ceil(this.bitLength() / 8) + } + BN.prototype.toTwos = function toTwos(width) { + if (this.negative !== 0) { + return this.abs().inotn(width).iaddn(1) + } + return this.clone() + } + BN.prototype.fromTwos = function fromTwos(width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg() + } + return this.clone() + } + BN.prototype.isNeg = function isNeg() { + return this.negative !== 0 + } + BN.prototype.neg = function neg() { + return this.clone().ineg() + } + BN.prototype.ineg = function ineg() { + if (!this.isZero()) { + this.negative ^= 1 + } + return this + } + BN.prototype.iuor = function iuor(num) { + while (this.length < num.length) { + this.words[this.length++] = 0 + } + for (var i = 0; i < num.length; i++) { + this.words[i] = this.words[i] | num.words[i] + } + return this._strip() + } + BN.prototype.ior = function ior(num) { + assert((this.negative | num.negative) === 0) + return this.iuor(num) + } + BN.prototype.or = function or(num) { + if (this.length > num.length) return this.clone().ior(num) + return num.clone().ior(this) + } + BN.prototype.uor = function uor(num) { + if (this.length > num.length) return this.clone().iuor(num) + return num.clone().iuor(this) + } + BN.prototype.iuand = function iuand(num) { + var b + if (this.length > num.length) { + b = num + } else { + b = this + } + for (var i = 0; i < b.length; i++) { + this.words[i] = this.words[i] & num.words[i] + } + this.length = b.length + return this._strip() + } + BN.prototype.iand = function iand(num) { + assert((this.negative | num.negative) === 0) + return this.iuand(num) + } + BN.prototype.and = function and(num) { + if (this.length > num.length) return this.clone().iand(num) + return num.clone().iand(this) + } + BN.prototype.uand = function uand(num) { + if (this.length > num.length) return this.clone().iuand(num) + return num.clone().iuand(this) + } + BN.prototype.iuxor = function iuxor(num) { + var a + var b + if (this.length > num.length) { + a = this + b = num + } else { + a = num + b = this + } + for (var i = 0; i < b.length; i++) { + this.words[i] = a.words[i] ^ b.words[i] + } + if (this !== a) { + for (; i < a.length; i++) { + this.words[i] = a.words[i] + } + } + this.length = a.length + return this._strip() + } + BN.prototype.ixor = function ixor(num) { + assert((this.negative | num.negative) === 0) + return this.iuxor(num) + } + BN.prototype.xor = function xor(num) { + if (this.length > num.length) return this.clone().ixor(num) + return num.clone().ixor(this) + } + BN.prototype.uxor = function uxor(num) { + if (this.length > num.length) return this.clone().iuxor(num) + return num.clone().iuxor(this) + } + BN.prototype.inotn = function inotn(width) { + assert(typeof width === 'number' && width >= 0) + var bytesNeeded = Math.ceil(width / 26) | 0 + var bitsLeft = width % 26 + this._expand(bytesNeeded) + if (bitsLeft > 0) { + bytesNeeded-- + } + for (var i = 0; i < bytesNeeded; i++) { + this.words[i] = ~this.words[i] & 67108863 + } + if (bitsLeft > 0) { + this.words[i] = ~this.words[i] & (67108863 >> (26 - bitsLeft)) + } + return this._strip() + } + BN.prototype.notn = function notn(width) { + return this.clone().inotn(width) + } + BN.prototype.setn = function setn(bit, val) { + assert(typeof bit === 'number' && bit >= 0) + var off = (bit / 26) | 0 + var wbit = bit % 26 + this._expand(off + 1) + if (val) { + this.words[off] = this.words[off] | (1 << wbit) + } else { + this.words[off] = this.words[off] & ~(1 << wbit) + } + return this._strip() + } + BN.prototype.iadd = function iadd(num) { + var r + if (this.negative !== 0 && num.negative === 0) { + this.negative = 0 + r = this.isub(num) + this.negative ^= 1 + return this._normSign() + } else if (this.negative === 0 && num.negative !== 0) { + num.negative = 0 + r = this.isub(num) + num.negative = 1 + return r._normSign() + } + var a, b + if (this.length > num.length) { + a = this + b = num + } else { + a = num + b = this + } + var carry = 0 + for (var i = 0; i < b.length; i++) { + r = (a.words[i] | 0) + (b.words[i] | 0) + carry + this.words[i] = r & 67108863 + carry = r >>> 26 + } + for (; carry !== 0 && i < a.length; i++) { + r = (a.words[i] | 0) + carry + this.words[i] = r & 67108863 + carry = r >>> 26 + } + this.length = a.length + if (carry !== 0) { + this.words[this.length] = carry + this.length++ + } else if (a !== this) { + for (; i < a.length; i++) { + this.words[i] = a.words[i] + } + } + return this + } + BN.prototype.add = function add(num) { + var res + if (num.negative !== 0 && this.negative === 0) { + num.negative = 0 + res = this.sub(num) + num.negative ^= 1 + return res + } else if (num.negative === 0 && this.negative !== 0) { + this.negative = 0 + res = num.sub(this) + this.negative = 1 + return res + } + if (this.length > num.length) return this.clone().iadd(num) + return num.clone().iadd(this) + } + BN.prototype.isub = function isub(num) { + if (num.negative !== 0) { + num.negative = 0 + var r = this.iadd(num) + num.negative = 1 + return r._normSign() + } else if (this.negative !== 0) { + this.negative = 0 + this.iadd(num) + this.negative = 1 + return this._normSign() + } + var cmp = this.cmp(num) + if (cmp === 0) { + this.negative = 0 + this.length = 1 + this.words[0] = 0 + return this + } + var a, b + if (cmp > 0) { + a = this + b = num + } else { + a = num + b = this + } + var carry = 0 + for (var i = 0; i < b.length; i++) { + r = (a.words[i] | 0) - (b.words[i] | 0) + carry + carry = r >> 26 + this.words[i] = r & 67108863 + } + for (; carry !== 0 && i < a.length; i++) { + r = (a.words[i] | 0) + carry + carry = r >> 26 + this.words[i] = r & 67108863 + } + if (carry === 0 && i < a.length && a !== this) { + for (; i < a.length; i++) { + this.words[i] = a.words[i] + } + } + this.length = Math.max(this.length, i) + if (a !== this) { + this.negative = 1 + } + return this._strip() + } + BN.prototype.sub = function sub(num) { + return this.clone().isub(num) + } + function smallMulTo(self, num, out) { + out.negative = num.negative ^ self.negative + var len = (self.length + num.length) | 0 + out.length = len + len = (len - 1) | 0 + var a = self.words[0] | 0 + var b = num.words[0] | 0 + var r = a * b + var lo = r & 67108863 + var carry = (r / 67108864) | 0 + out.words[0] = lo + for (var k = 1; k < len; k++) { + var ncarry = carry >>> 26 + var rword = carry & 67108863 + var maxJ = Math.min(k, num.length - 1) + for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { + var i = (k - j) | 0 + a = self.words[i] | 0 + b = num.words[j] | 0 + r = a * b + rword + ncarry += (r / 67108864) | 0 + rword = r & 67108863 + } + out.words[k] = rword | 0 + carry = ncarry | 0 + } + if (carry !== 0) { + out.words[k] = carry | 0 + } else { + out.length-- + } + return out._strip() + } + var comb10MulTo = function comb10MulTo(self, num, out) { + var a = self.words + var b = num.words + var o = out.words + var c = 0 + var lo + var mid + var hi + var a0 = a[0] | 0 + var al0 = a0 & 8191 + var ah0 = a0 >>> 13 + var a1 = a[1] | 0 + var al1 = a1 & 8191 + var ah1 = a1 >>> 13 + var a2 = a[2] | 0 + var al2 = a2 & 8191 + var ah2 = a2 >>> 13 + var a3 = a[3] | 0 + var al3 = a3 & 8191 + var ah3 = a3 >>> 13 + var a4 = a[4] | 0 + var al4 = a4 & 8191 + var ah4 = a4 >>> 13 + var a5 = a[5] | 0 + var al5 = a5 & 8191 + var ah5 = a5 >>> 13 + var a6 = a[6] | 0 + var al6 = a6 & 8191 + var ah6 = a6 >>> 13 + var a7 = a[7] | 0 + var al7 = a7 & 8191 + var ah7 = a7 >>> 13 + var a8 = a[8] | 0 + var al8 = a8 & 8191 + var ah8 = a8 >>> 13 + var a9 = a[9] | 0 + var al9 = a9 & 8191 + var ah9 = a9 >>> 13 + var b0 = b[0] | 0 + var bl0 = b0 & 8191 + var bh0 = b0 >>> 13 + var b1 = b[1] | 0 + var bl1 = b1 & 8191 + var bh1 = b1 >>> 13 + var b2 = b[2] | 0 + var bl2 = b2 & 8191 + var bh2 = b2 >>> 13 + var b3 = b[3] | 0 + var bl3 = b3 & 8191 + var bh3 = b3 >>> 13 + var b4 = b[4] | 0 + var bl4 = b4 & 8191 + var bh4 = b4 >>> 13 + var b5 = b[5] | 0 + var bl5 = b5 & 8191 + var bh5 = b5 >>> 13 + var b6 = b[6] | 0 + var bl6 = b6 & 8191 + var bh6 = b6 >>> 13 + var b7 = b[7] | 0 + var bl7 = b7 & 8191 + var bh7 = b7 >>> 13 + var b8 = b[8] | 0 + var bl8 = b8 & 8191 + var bh8 = b8 >>> 13 + var b9 = b[9] | 0 + var bl9 = b9 & 8191 + var bh9 = b9 >>> 13 + out.negative = self.negative ^ num.negative + out.length = 19 + lo = Math.imul(al0, bl0) + mid = Math.imul(al0, bh0) + mid = (mid + Math.imul(ah0, bl0)) | 0 + hi = Math.imul(ah0, bh0) + var w0 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0 + w0 &= 67108863 + lo = Math.imul(al1, bl0) + mid = Math.imul(al1, bh0) + mid = (mid + Math.imul(ah1, bl0)) | 0 + hi = Math.imul(ah1, bh0) + lo = (lo + Math.imul(al0, bl1)) | 0 + mid = (mid + Math.imul(al0, bh1)) | 0 + mid = (mid + Math.imul(ah0, bl1)) | 0 + hi = (hi + Math.imul(ah0, bh1)) | 0 + var w1 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0 + w1 &= 67108863 + lo = Math.imul(al2, bl0) + mid = Math.imul(al2, bh0) + mid = (mid + Math.imul(ah2, bl0)) | 0 + hi = Math.imul(ah2, bh0) + lo = (lo + Math.imul(al1, bl1)) | 0 + mid = (mid + Math.imul(al1, bh1)) | 0 + mid = (mid + Math.imul(ah1, bl1)) | 0 + hi = (hi + Math.imul(ah1, bh1)) | 0 + lo = (lo + Math.imul(al0, bl2)) | 0 + mid = (mid + Math.imul(al0, bh2)) | 0 + mid = (mid + Math.imul(ah0, bl2)) | 0 + hi = (hi + Math.imul(ah0, bh2)) | 0 + var w2 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0 + w2 &= 67108863 + lo = Math.imul(al3, bl0) + mid = Math.imul(al3, bh0) + mid = (mid + Math.imul(ah3, bl0)) | 0 + hi = Math.imul(ah3, bh0) + lo = (lo + Math.imul(al2, bl1)) | 0 + mid = (mid + Math.imul(al2, bh1)) | 0 + mid = (mid + Math.imul(ah2, bl1)) | 0 + hi = (hi + Math.imul(ah2, bh1)) | 0 + lo = (lo + Math.imul(al1, bl2)) | 0 + mid = (mid + Math.imul(al1, bh2)) | 0 + mid = (mid + Math.imul(ah1, bl2)) | 0 + hi = (hi + Math.imul(ah1, bh2)) | 0 + lo = (lo + Math.imul(al0, bl3)) | 0 + mid = (mid + Math.imul(al0, bh3)) | 0 + mid = (mid + Math.imul(ah0, bl3)) | 0 + hi = (hi + Math.imul(ah0, bh3)) | 0 + var w3 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0 + w3 &= 67108863 + lo = Math.imul(al4, bl0) + mid = Math.imul(al4, bh0) + mid = (mid + Math.imul(ah4, bl0)) | 0 + hi = Math.imul(ah4, bh0) + lo = (lo + Math.imul(al3, bl1)) | 0 + mid = (mid + Math.imul(al3, bh1)) | 0 + mid = (mid + Math.imul(ah3, bl1)) | 0 + hi = (hi + Math.imul(ah3, bh1)) | 0 + lo = (lo + Math.imul(al2, bl2)) | 0 + mid = (mid + Math.imul(al2, bh2)) | 0 + mid = (mid + Math.imul(ah2, bl2)) | 0 + hi = (hi + Math.imul(ah2, bh2)) | 0 + lo = (lo + Math.imul(al1, bl3)) | 0 + mid = (mid + Math.imul(al1, bh3)) | 0 + mid = (mid + Math.imul(ah1, bl3)) | 0 + hi = (hi + Math.imul(ah1, bh3)) | 0 + lo = (lo + Math.imul(al0, bl4)) | 0 + mid = (mid + Math.imul(al0, bh4)) | 0 + mid = (mid + Math.imul(ah0, bl4)) | 0 + hi = (hi + Math.imul(ah0, bh4)) | 0 + var w4 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0 + w4 &= 67108863 + lo = Math.imul(al5, bl0) + mid = Math.imul(al5, bh0) + mid = (mid + Math.imul(ah5, bl0)) | 0 + hi = Math.imul(ah5, bh0) + lo = (lo + Math.imul(al4, bl1)) | 0 + mid = (mid + Math.imul(al4, bh1)) | 0 + mid = (mid + Math.imul(ah4, bl1)) | 0 + hi = (hi + Math.imul(ah4, bh1)) | 0 + lo = (lo + Math.imul(al3, bl2)) | 0 + mid = (mid + Math.imul(al3, bh2)) | 0 + mid = (mid + Math.imul(ah3, bl2)) | 0 + hi = (hi + Math.imul(ah3, bh2)) | 0 + lo = (lo + Math.imul(al2, bl3)) | 0 + mid = (mid + Math.imul(al2, bh3)) | 0 + mid = (mid + Math.imul(ah2, bl3)) | 0 + hi = (hi + Math.imul(ah2, bh3)) | 0 + lo = (lo + Math.imul(al1, bl4)) | 0 + mid = (mid + Math.imul(al1, bh4)) | 0 + mid = (mid + Math.imul(ah1, bl4)) | 0 + hi = (hi + Math.imul(ah1, bh4)) | 0 + lo = (lo + Math.imul(al0, bl5)) | 0 + mid = (mid + Math.imul(al0, bh5)) | 0 + mid = (mid + Math.imul(ah0, bl5)) | 0 + hi = (hi + Math.imul(ah0, bh5)) | 0 + var w5 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0 + w5 &= 67108863 + lo = Math.imul(al6, bl0) + mid = Math.imul(al6, bh0) + mid = (mid + Math.imul(ah6, bl0)) | 0 + hi = Math.imul(ah6, bh0) + lo = (lo + Math.imul(al5, bl1)) | 0 + mid = (mid + Math.imul(al5, bh1)) | 0 + mid = (mid + Math.imul(ah5, bl1)) | 0 + hi = (hi + Math.imul(ah5, bh1)) | 0 + lo = (lo + Math.imul(al4, bl2)) | 0 + mid = (mid + Math.imul(al4, bh2)) | 0 + mid = (mid + Math.imul(ah4, bl2)) | 0 + hi = (hi + Math.imul(ah4, bh2)) | 0 + lo = (lo + Math.imul(al3, bl3)) | 0 + mid = (mid + Math.imul(al3, bh3)) | 0 + mid = (mid + Math.imul(ah3, bl3)) | 0 + hi = (hi + Math.imul(ah3, bh3)) | 0 + lo = (lo + Math.imul(al2, bl4)) | 0 + mid = (mid + Math.imul(al2, bh4)) | 0 + mid = (mid + Math.imul(ah2, bl4)) | 0 + hi = (hi + Math.imul(ah2, bh4)) | 0 + lo = (lo + Math.imul(al1, bl5)) | 0 + mid = (mid + Math.imul(al1, bh5)) | 0 + mid = (mid + Math.imul(ah1, bl5)) | 0 + hi = (hi + Math.imul(ah1, bh5)) | 0 + lo = (lo + Math.imul(al0, bl6)) | 0 + mid = (mid + Math.imul(al0, bh6)) | 0 + mid = (mid + Math.imul(ah0, bl6)) | 0 + hi = (hi + Math.imul(ah0, bh6)) | 0 + var w6 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0 + w6 &= 67108863 + lo = Math.imul(al7, bl0) + mid = Math.imul(al7, bh0) + mid = (mid + Math.imul(ah7, bl0)) | 0 + hi = Math.imul(ah7, bh0) + lo = (lo + Math.imul(al6, bl1)) | 0 + mid = (mid + Math.imul(al6, bh1)) | 0 + mid = (mid + Math.imul(ah6, bl1)) | 0 + hi = (hi + Math.imul(ah6, bh1)) | 0 + lo = (lo + Math.imul(al5, bl2)) | 0 + mid = (mid + Math.imul(al5, bh2)) | 0 + mid = (mid + Math.imul(ah5, bl2)) | 0 + hi = (hi + Math.imul(ah5, bh2)) | 0 + lo = (lo + Math.imul(al4, bl3)) | 0 + mid = (mid + Math.imul(al4, bh3)) | 0 + mid = (mid + Math.imul(ah4, bl3)) | 0 + hi = (hi + Math.imul(ah4, bh3)) | 0 + lo = (lo + Math.imul(al3, bl4)) | 0 + mid = (mid + Math.imul(al3, bh4)) | 0 + mid = (mid + Math.imul(ah3, bl4)) | 0 + hi = (hi + Math.imul(ah3, bh4)) | 0 + lo = (lo + Math.imul(al2, bl5)) | 0 + mid = (mid + Math.imul(al2, bh5)) | 0 + mid = (mid + Math.imul(ah2, bl5)) | 0 + hi = (hi + Math.imul(ah2, bh5)) | 0 + lo = (lo + Math.imul(al1, bl6)) | 0 + mid = (mid + Math.imul(al1, bh6)) | 0 + mid = (mid + Math.imul(ah1, bl6)) | 0 + hi = (hi + Math.imul(ah1, bh6)) | 0 + lo = (lo + Math.imul(al0, bl7)) | 0 + mid = (mid + Math.imul(al0, bh7)) | 0 + mid = (mid + Math.imul(ah0, bl7)) | 0 + hi = (hi + Math.imul(ah0, bh7)) | 0 + var w7 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0 + w7 &= 67108863 + lo = Math.imul(al8, bl0) + mid = Math.imul(al8, bh0) + mid = (mid + Math.imul(ah8, bl0)) | 0 + hi = Math.imul(ah8, bh0) + lo = (lo + Math.imul(al7, bl1)) | 0 + mid = (mid + Math.imul(al7, bh1)) | 0 + mid = (mid + Math.imul(ah7, bl1)) | 0 + hi = (hi + Math.imul(ah7, bh1)) | 0 + lo = (lo + Math.imul(al6, bl2)) | 0 + mid = (mid + Math.imul(al6, bh2)) | 0 + mid = (mid + Math.imul(ah6, bl2)) | 0 + hi = (hi + Math.imul(ah6, bh2)) | 0 + lo = (lo + Math.imul(al5, bl3)) | 0 + mid = (mid + Math.imul(al5, bh3)) | 0 + mid = (mid + Math.imul(ah5, bl3)) | 0 + hi = (hi + Math.imul(ah5, bh3)) | 0 + lo = (lo + Math.imul(al4, bl4)) | 0 + mid = (mid + Math.imul(al4, bh4)) | 0 + mid = (mid + Math.imul(ah4, bl4)) | 0 + hi = (hi + Math.imul(ah4, bh4)) | 0 + lo = (lo + Math.imul(al3, bl5)) | 0 + mid = (mid + Math.imul(al3, bh5)) | 0 + mid = (mid + Math.imul(ah3, bl5)) | 0 + hi = (hi + Math.imul(ah3, bh5)) | 0 + lo = (lo + Math.imul(al2, bl6)) | 0 + mid = (mid + Math.imul(al2, bh6)) | 0 + mid = (mid + Math.imul(ah2, bl6)) | 0 + hi = (hi + Math.imul(ah2, bh6)) | 0 + lo = (lo + Math.imul(al1, bl7)) | 0 + mid = (mid + Math.imul(al1, bh7)) | 0 + mid = (mid + Math.imul(ah1, bl7)) | 0 + hi = (hi + Math.imul(ah1, bh7)) | 0 + lo = (lo + Math.imul(al0, bl8)) | 0 + mid = (mid + Math.imul(al0, bh8)) | 0 + mid = (mid + Math.imul(ah0, bl8)) | 0 + hi = (hi + Math.imul(ah0, bh8)) | 0 + var w8 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0 + w8 &= 67108863 + lo = Math.imul(al9, bl0) + mid = Math.imul(al9, bh0) + mid = (mid + Math.imul(ah9, bl0)) | 0 + hi = Math.imul(ah9, bh0) + lo = (lo + Math.imul(al8, bl1)) | 0 + mid = (mid + Math.imul(al8, bh1)) | 0 + mid = (mid + Math.imul(ah8, bl1)) | 0 + hi = (hi + Math.imul(ah8, bh1)) | 0 + lo = (lo + Math.imul(al7, bl2)) | 0 + mid = (mid + Math.imul(al7, bh2)) | 0 + mid = (mid + Math.imul(ah7, bl2)) | 0 + hi = (hi + Math.imul(ah7, bh2)) | 0 + lo = (lo + Math.imul(al6, bl3)) | 0 + mid = (mid + Math.imul(al6, bh3)) | 0 + mid = (mid + Math.imul(ah6, bl3)) | 0 + hi = (hi + Math.imul(ah6, bh3)) | 0 + lo = (lo + Math.imul(al5, bl4)) | 0 + mid = (mid + Math.imul(al5, bh4)) | 0 + mid = (mid + Math.imul(ah5, bl4)) | 0 + hi = (hi + Math.imul(ah5, bh4)) | 0 + lo = (lo + Math.imul(al4, bl5)) | 0 + mid = (mid + Math.imul(al4, bh5)) | 0 + mid = (mid + Math.imul(ah4, bl5)) | 0 + hi = (hi + Math.imul(ah4, bh5)) | 0 + lo = (lo + Math.imul(al3, bl6)) | 0 + mid = (mid + Math.imul(al3, bh6)) | 0 + mid = (mid + Math.imul(ah3, bl6)) | 0 + hi = (hi + Math.imul(ah3, bh6)) | 0 + lo = (lo + Math.imul(al2, bl7)) | 0 + mid = (mid + Math.imul(al2, bh7)) | 0 + mid = (mid + Math.imul(ah2, bl7)) | 0 + hi = (hi + Math.imul(ah2, bh7)) | 0 + lo = (lo + Math.imul(al1, bl8)) | 0 + mid = (mid + Math.imul(al1, bh8)) | 0 + mid = (mid + Math.imul(ah1, bl8)) | 0 + hi = (hi + Math.imul(ah1, bh8)) | 0 + lo = (lo + Math.imul(al0, bl9)) | 0 + mid = (mid + Math.imul(al0, bh9)) | 0 + mid = (mid + Math.imul(ah0, bl9)) | 0 + hi = (hi + Math.imul(ah0, bh9)) | 0 + var w9 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0 + w9 &= 67108863 + lo = Math.imul(al9, bl1) + mid = Math.imul(al9, bh1) + mid = (mid + Math.imul(ah9, bl1)) | 0 + hi = Math.imul(ah9, bh1) + lo = (lo + Math.imul(al8, bl2)) | 0 + mid = (mid + Math.imul(al8, bh2)) | 0 + mid = (mid + Math.imul(ah8, bl2)) | 0 + hi = (hi + Math.imul(ah8, bh2)) | 0 + lo = (lo + Math.imul(al7, bl3)) | 0 + mid = (mid + Math.imul(al7, bh3)) | 0 + mid = (mid + Math.imul(ah7, bl3)) | 0 + hi = (hi + Math.imul(ah7, bh3)) | 0 + lo = (lo + Math.imul(al6, bl4)) | 0 + mid = (mid + Math.imul(al6, bh4)) | 0 + mid = (mid + Math.imul(ah6, bl4)) | 0 + hi = (hi + Math.imul(ah6, bh4)) | 0 + lo = (lo + Math.imul(al5, bl5)) | 0 + mid = (mid + Math.imul(al5, bh5)) | 0 + mid = (mid + Math.imul(ah5, bl5)) | 0 + hi = (hi + Math.imul(ah5, bh5)) | 0 + lo = (lo + Math.imul(al4, bl6)) | 0 + mid = (mid + Math.imul(al4, bh6)) | 0 + mid = (mid + Math.imul(ah4, bl6)) | 0 + hi = (hi + Math.imul(ah4, bh6)) | 0 + lo = (lo + Math.imul(al3, bl7)) | 0 + mid = (mid + Math.imul(al3, bh7)) | 0 + mid = (mid + Math.imul(ah3, bl7)) | 0 + hi = (hi + Math.imul(ah3, bh7)) | 0 + lo = (lo + Math.imul(al2, bl8)) | 0 + mid = (mid + Math.imul(al2, bh8)) | 0 + mid = (mid + Math.imul(ah2, bl8)) | 0 + hi = (hi + Math.imul(ah2, bh8)) | 0 + lo = (lo + Math.imul(al1, bl9)) | 0 + mid = (mid + Math.imul(al1, bh9)) | 0 + mid = (mid + Math.imul(ah1, bl9)) | 0 + hi = (hi + Math.imul(ah1, bh9)) | 0 + var w10 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0 + w10 &= 67108863 + lo = Math.imul(al9, bl2) + mid = Math.imul(al9, bh2) + mid = (mid + Math.imul(ah9, bl2)) | 0 + hi = Math.imul(ah9, bh2) + lo = (lo + Math.imul(al8, bl3)) | 0 + mid = (mid + Math.imul(al8, bh3)) | 0 + mid = (mid + Math.imul(ah8, bl3)) | 0 + hi = (hi + Math.imul(ah8, bh3)) | 0 + lo = (lo + Math.imul(al7, bl4)) | 0 + mid = (mid + Math.imul(al7, bh4)) | 0 + mid = (mid + Math.imul(ah7, bl4)) | 0 + hi = (hi + Math.imul(ah7, bh4)) | 0 + lo = (lo + Math.imul(al6, bl5)) | 0 + mid = (mid + Math.imul(al6, bh5)) | 0 + mid = (mid + Math.imul(ah6, bl5)) | 0 + hi = (hi + Math.imul(ah6, bh5)) | 0 + lo = (lo + Math.imul(al5, bl6)) | 0 + mid = (mid + Math.imul(al5, bh6)) | 0 + mid = (mid + Math.imul(ah5, bl6)) | 0 + hi = (hi + Math.imul(ah5, bh6)) | 0 + lo = (lo + Math.imul(al4, bl7)) | 0 + mid = (mid + Math.imul(al4, bh7)) | 0 + mid = (mid + Math.imul(ah4, bl7)) | 0 + hi = (hi + Math.imul(ah4, bh7)) | 0 + lo = (lo + Math.imul(al3, bl8)) | 0 + mid = (mid + Math.imul(al3, bh8)) | 0 + mid = (mid + Math.imul(ah3, bl8)) | 0 + hi = (hi + Math.imul(ah3, bh8)) | 0 + lo = (lo + Math.imul(al2, bl9)) | 0 + mid = (mid + Math.imul(al2, bh9)) | 0 + mid = (mid + Math.imul(ah2, bl9)) | 0 + hi = (hi + Math.imul(ah2, bh9)) | 0 + var w11 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0 + w11 &= 67108863 + lo = Math.imul(al9, bl3) + mid = Math.imul(al9, bh3) + mid = (mid + Math.imul(ah9, bl3)) | 0 + hi = Math.imul(ah9, bh3) + lo = (lo + Math.imul(al8, bl4)) | 0 + mid = (mid + Math.imul(al8, bh4)) | 0 + mid = (mid + Math.imul(ah8, bl4)) | 0 + hi = (hi + Math.imul(ah8, bh4)) | 0 + lo = (lo + Math.imul(al7, bl5)) | 0 + mid = (mid + Math.imul(al7, bh5)) | 0 + mid = (mid + Math.imul(ah7, bl5)) | 0 + hi = (hi + Math.imul(ah7, bh5)) | 0 + lo = (lo + Math.imul(al6, bl6)) | 0 + mid = (mid + Math.imul(al6, bh6)) | 0 + mid = (mid + Math.imul(ah6, bl6)) | 0 + hi = (hi + Math.imul(ah6, bh6)) | 0 + lo = (lo + Math.imul(al5, bl7)) | 0 + mid = (mid + Math.imul(al5, bh7)) | 0 + mid = (mid + Math.imul(ah5, bl7)) | 0 + hi = (hi + Math.imul(ah5, bh7)) | 0 + lo = (lo + Math.imul(al4, bl8)) | 0 + mid = (mid + Math.imul(al4, bh8)) | 0 + mid = (mid + Math.imul(ah4, bl8)) | 0 + hi = (hi + Math.imul(ah4, bh8)) | 0 + lo = (lo + Math.imul(al3, bl9)) | 0 + mid = (mid + Math.imul(al3, bh9)) | 0 + mid = (mid + Math.imul(ah3, bl9)) | 0 + hi = (hi + Math.imul(ah3, bh9)) | 0 + var w12 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0 + w12 &= 67108863 + lo = Math.imul(al9, bl4) + mid = Math.imul(al9, bh4) + mid = (mid + Math.imul(ah9, bl4)) | 0 + hi = Math.imul(ah9, bh4) + lo = (lo + Math.imul(al8, bl5)) | 0 + mid = (mid + Math.imul(al8, bh5)) | 0 + mid = (mid + Math.imul(ah8, bl5)) | 0 + hi = (hi + Math.imul(ah8, bh5)) | 0 + lo = (lo + Math.imul(al7, bl6)) | 0 + mid = (mid + Math.imul(al7, bh6)) | 0 + mid = (mid + Math.imul(ah7, bl6)) | 0 + hi = (hi + Math.imul(ah7, bh6)) | 0 + lo = (lo + Math.imul(al6, bl7)) | 0 + mid = (mid + Math.imul(al6, bh7)) | 0 + mid = (mid + Math.imul(ah6, bl7)) | 0 + hi = (hi + Math.imul(ah6, bh7)) | 0 + lo = (lo + Math.imul(al5, bl8)) | 0 + mid = (mid + Math.imul(al5, bh8)) | 0 + mid = (mid + Math.imul(ah5, bl8)) | 0 + hi = (hi + Math.imul(ah5, bh8)) | 0 + lo = (lo + Math.imul(al4, bl9)) | 0 + mid = (mid + Math.imul(al4, bh9)) | 0 + mid = (mid + Math.imul(ah4, bl9)) | 0 + hi = (hi + Math.imul(ah4, bh9)) | 0 + var w13 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0 + w13 &= 67108863 + lo = Math.imul(al9, bl5) + mid = Math.imul(al9, bh5) + mid = (mid + Math.imul(ah9, bl5)) | 0 + hi = Math.imul(ah9, bh5) + lo = (lo + Math.imul(al8, bl6)) | 0 + mid = (mid + Math.imul(al8, bh6)) | 0 + mid = (mid + Math.imul(ah8, bl6)) | 0 + hi = (hi + Math.imul(ah8, bh6)) | 0 + lo = (lo + Math.imul(al7, bl7)) | 0 + mid = (mid + Math.imul(al7, bh7)) | 0 + mid = (mid + Math.imul(ah7, bl7)) | 0 + hi = (hi + Math.imul(ah7, bh7)) | 0 + lo = (lo + Math.imul(al6, bl8)) | 0 + mid = (mid + Math.imul(al6, bh8)) | 0 + mid = (mid + Math.imul(ah6, bl8)) | 0 + hi = (hi + Math.imul(ah6, bh8)) | 0 + lo = (lo + Math.imul(al5, bl9)) | 0 + mid = (mid + Math.imul(al5, bh9)) | 0 + mid = (mid + Math.imul(ah5, bl9)) | 0 + hi = (hi + Math.imul(ah5, bh9)) | 0 + var w14 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0 + w14 &= 67108863 + lo = Math.imul(al9, bl6) + mid = Math.imul(al9, bh6) + mid = (mid + Math.imul(ah9, bl6)) | 0 + hi = Math.imul(ah9, bh6) + lo = (lo + Math.imul(al8, bl7)) | 0 + mid = (mid + Math.imul(al8, bh7)) | 0 + mid = (mid + Math.imul(ah8, bl7)) | 0 + hi = (hi + Math.imul(ah8, bh7)) | 0 + lo = (lo + Math.imul(al7, bl8)) | 0 + mid = (mid + Math.imul(al7, bh8)) | 0 + mid = (mid + Math.imul(ah7, bl8)) | 0 + hi = (hi + Math.imul(ah7, bh8)) | 0 + lo = (lo + Math.imul(al6, bl9)) | 0 + mid = (mid + Math.imul(al6, bh9)) | 0 + mid = (mid + Math.imul(ah6, bl9)) | 0 + hi = (hi + Math.imul(ah6, bh9)) | 0 + var w15 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0 + w15 &= 67108863 + lo = Math.imul(al9, bl7) + mid = Math.imul(al9, bh7) + mid = (mid + Math.imul(ah9, bl7)) | 0 + hi = Math.imul(ah9, bh7) + lo = (lo + Math.imul(al8, bl8)) | 0 + mid = (mid + Math.imul(al8, bh8)) | 0 + mid = (mid + Math.imul(ah8, bl8)) | 0 + hi = (hi + Math.imul(ah8, bh8)) | 0 + lo = (lo + Math.imul(al7, bl9)) | 0 + mid = (mid + Math.imul(al7, bh9)) | 0 + mid = (mid + Math.imul(ah7, bl9)) | 0 + hi = (hi + Math.imul(ah7, bh9)) | 0 + var w16 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0 + w16 &= 67108863 + lo = Math.imul(al9, bl8) + mid = Math.imul(al9, bh8) + mid = (mid + Math.imul(ah9, bl8)) | 0 + hi = Math.imul(ah9, bh8) + lo = (lo + Math.imul(al8, bl9)) | 0 + mid = (mid + Math.imul(al8, bh9)) | 0 + mid = (mid + Math.imul(ah8, bl9)) | 0 + hi = (hi + Math.imul(ah8, bh9)) | 0 + var w17 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0 + w17 &= 67108863 + lo = Math.imul(al9, bl9) + mid = Math.imul(al9, bh9) + mid = (mid + Math.imul(ah9, bl9)) | 0 + hi = Math.imul(ah9, bh9) + var w18 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0 + w18 &= 67108863 + o[0] = w0 + o[1] = w1 + o[2] = w2 + o[3] = w3 + o[4] = w4 + o[5] = w5 + o[6] = w6 + o[7] = w7 + o[8] = w8 + o[9] = w9 + o[10] = w10 + o[11] = w11 + o[12] = w12 + o[13] = w13 + o[14] = w14 + o[15] = w15 + o[16] = w16 + o[17] = w17 + o[18] = w18 + if (c !== 0) { + o[19] = c + out.length++ + } + return out + } + if (!Math.imul) { + comb10MulTo = smallMulTo + } + function bigMulTo(self, num, out) { + out.negative = num.negative ^ self.negative + out.length = self.length + num.length + var carry = 0 + var hncarry = 0 + for (var k = 0; k < out.length - 1; k++) { + var ncarry = hncarry + hncarry = 0 + var rword = carry & 67108863 + var maxJ = Math.min(k, num.length - 1) + for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { + var i = k - j + var a = self.words[i] | 0 + var b = num.words[j] | 0 + var r = a * b + var lo = r & 67108863 + ncarry = (ncarry + ((r / 67108864) | 0)) | 0 + lo = (lo + rword) | 0 + rword = lo & 67108863 + ncarry = (ncarry + (lo >>> 26)) | 0 + hncarry += ncarry >>> 26 + ncarry &= 67108863 + } + out.words[k] = rword + carry = ncarry + ncarry = hncarry + } + if (carry !== 0) { + out.words[k] = carry + } else { + out.length-- + } + return out._strip() + } + function jumboMulTo(self, num, out) { + return bigMulTo(self, num, out) + } + BN.prototype.mulTo = function mulTo(num, out) { + var res + var len = this.length + num.length + if (this.length === 10 && num.length === 10) { + res = comb10MulTo(this, num, out) + } else if (len < 63) { + res = smallMulTo(this, num, out) + } else if (len < 1024) { + res = bigMulTo(this, num, out) + } else { + res = jumboMulTo(this, num, out) + } + return res + } + function FFTM(x, y) { + this.x = x + this.y = y + } + FFTM.prototype.makeRBT = function makeRBT(N) { + var t = new Array(N) + var l = BN.prototype._countBits(N) - 1 + for (var i = 0; i < N; i++) { + t[i] = this.revBin(i, l, N) + } + return t + } + FFTM.prototype.revBin = function revBin(x, l, N) { + if (x === 0 || x === N - 1) return x + var rb = 0 + for (var i = 0; i < l; i++) { + rb |= (x & 1) << (l - i - 1) + x >>= 1 + } + return rb + } + FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) { + for (var i = 0; i < N; i++) { + rtws[i] = rws[rbt[i]] + itws[i] = iws[rbt[i]] + } + } + FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N) + for (var s = 1; s < N; s <<= 1) { + var l = s << 1 + var rtwdf = Math.cos((2 * Math.PI) / l) + var itwdf = Math.sin((2 * Math.PI) / l) + for (var p = 0; p < N; p += l) { + var rtwdf_ = rtwdf + var itwdf_ = itwdf + for (var j = 0; j < s; j++) { + var re = rtws[p + j] + var ie = itws[p + j] + var ro = rtws[p + j + s] + var io = itws[p + j + s] + var rx = rtwdf_ * ro - itwdf_ * io + io = rtwdf_ * io + itwdf_ * ro + ro = rx + rtws[p + j] = re + ro + itws[p + j] = ie + io + rtws[p + j + s] = re - ro + itws[p + j + s] = ie - io + if (j !== l) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_ + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_ + rtwdf_ = rx + } + } + } + } + } + FFTM.prototype.guessLen13b = function guessLen13b(n, m) { + var N = Math.max(m, n) | 1 + var odd = N & 1 + var i = 0 + for (N = (N / 2) | 0; N; N = N >>> 1) { + i++ + } + return 1 << (i + 1 + odd) + } + FFTM.prototype.conjugate = function conjugate(rws, iws, N) { + if (N <= 1) return + for (var i = 0; i < N / 2; i++) { + var t = rws[i] + rws[i] = rws[N - i - 1] + rws[N - i - 1] = t + t = iws[i] + iws[i] = -iws[N - i - 1] + iws[N - i - 1] = -t + } + } + FFTM.prototype.normalize13b = function normalize13b(ws, N) { + var carry = 0 + for (var i = 0; i < N / 2; i++) { + var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry + ws[i] = w & 67108863 + if (w < 67108864) { + carry = 0 + } else { + carry = (w / 67108864) | 0 + } + } + return ws + } + FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) { + var carry = 0 + for (var i = 0; i < len; i++) { + carry = carry + (ws[i] | 0) + rws[2 * i] = carry & 8191 + carry = carry >>> 13 + rws[2 * i + 1] = carry & 8191 + carry = carry >>> 13 + } + for (i = 2 * len; i < N; ++i) { + rws[i] = 0 + } + assert(carry === 0) + assert((carry & ~8191) === 0) + } + FFTM.prototype.stub = function stub(N) { + var ph = new Array(N) + for (var i = 0; i < N; i++) { + ph[i] = 0 + } + return ph + } + FFTM.prototype.mulp = function mulp(x, y, out) { + var N = 2 * this.guessLen13b(x.length, y.length) + var rbt = this.makeRBT(N) + var _ = this.stub(N) + var rws = new Array(N) + var rwst = new Array(N) + var iwst = new Array(N) + var nrws = new Array(N) + var nrwst = new Array(N) + var niwst = new Array(N) + var rmws = out.words + rmws.length = N + this.convert13b(x.words, x.length, rws, N) + this.convert13b(y.words, y.length, nrws, N) + this.transform(rws, _, rwst, iwst, N, rbt) + this.transform(nrws, _, nrwst, niwst, N, rbt) + for (var i = 0; i < N; i++) { + var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i] + iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i] + rwst[i] = rx + } + this.conjugate(rwst, iwst, N) + this.transform(rwst, iwst, rmws, _, N, rbt) + this.conjugate(rmws, _, N) + this.normalize13b(rmws, N) + out.negative = x.negative ^ y.negative + out.length = x.length + y.length + return out._strip() + } + BN.prototype.mul = function mul(num) { + var out = new BN(null) + out.words = new Array(this.length + num.length) + return this.mulTo(num, out) + } + BN.prototype.mulf = function mulf(num) { + var out = new BN(null) + out.words = new Array(this.length + num.length) + return jumboMulTo(this, num, out) + } + BN.prototype.imul = function imul(num) { + return this.clone().mulTo(num, this) + } + BN.prototype.imuln = function imuln(num) { + var isNegNum = num < 0 + if (isNegNum) num = -num + assert(typeof num === 'number') + assert(num < 67108864) + var carry = 0 + for (var i = 0; i < this.length; i++) { + var w = (this.words[i] | 0) * num + var lo = (w & 67108863) + (carry & 67108863) + carry >>= 26 + carry += (w / 67108864) | 0 + carry += lo >>> 26 + this.words[i] = lo & 67108863 + } + if (carry !== 0) { + this.words[i] = carry + this.length++ + } + return isNegNum ? this.ineg() : this + } + BN.prototype.muln = function muln(num) { + return this.clone().imuln(num) + } + BN.prototype.sqr = function sqr() { + return this.mul(this) + } + BN.prototype.isqr = function isqr() { + return this.imul(this.clone()) + } + BN.prototype.pow = function pow(num) { + var w = toBitArray(num) + if (w.length === 0) return new BN(1) + var res = this + for (var i = 0; i < w.length; i++, res = res.sqr()) { + if (w[i] !== 0) break + } + if (++i < w.length) { + for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { + if (w[i] === 0) continue + res = res.mul(q) + } + } + return res + } + BN.prototype.iushln = function iushln(bits) { + assert(typeof bits === 'number' && bits >= 0) + var r = bits % 26 + var s = (bits - r) / 26 + var carryMask = (67108863 >>> (26 - r)) << (26 - r) + var i + if (r !== 0) { + var carry = 0 + for (i = 0; i < this.length; i++) { + var newCarry = this.words[i] & carryMask + var c = ((this.words[i] | 0) - newCarry) << r + this.words[i] = c | carry + carry = newCarry >>> (26 - r) + } + if (carry) { + this.words[i] = carry + this.length++ + } + } + if (s !== 0) { + for (i = this.length - 1; i >= 0; i--) { + this.words[i + s] = this.words[i] + } + for (i = 0; i < s; i++) { + this.words[i] = 0 + } + this.length += s + } + return this._strip() + } + BN.prototype.ishln = function ishln(bits) { + assert(this.negative === 0) + return this.iushln(bits) + } + BN.prototype.iushrn = function iushrn(bits, hint, extended) { + assert(typeof bits === 'number' && bits >= 0) + var h + if (hint) { + h = (hint - (hint % 26)) / 26 + } else { + h = 0 + } + var r = bits % 26 + var s = Math.min((bits - r) / 26, this.length) + var mask = 67108863 ^ ((67108863 >>> r) << r) + var maskedWords = extended + h -= s + h = Math.max(0, h) + if (maskedWords) { + for (var i = 0; i < s; i++) { + maskedWords.words[i] = this.words[i] + } + maskedWords.length = s + } + if (s === 0) { + } else if (this.length > s) { + this.length -= s + for (i = 0; i < this.length; i++) { + this.words[i] = this.words[i + s] + } + } else { + this.words[0] = 0 + this.length = 1 + } + var carry = 0 + for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) { + var word = this.words[i] | 0 + this.words[i] = (carry << (26 - r)) | (word >>> r) + carry = word & mask + } + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry + } + if (this.length === 0) { + this.words[0] = 0 + this.length = 1 + } + return this._strip() + } + BN.prototype.ishrn = function ishrn(bits, hint, extended) { + assert(this.negative === 0) + return this.iushrn(bits, hint, extended) + } + BN.prototype.shln = function shln(bits) { + return this.clone().ishln(bits) + } + BN.prototype.ushln = function ushln(bits) { + return this.clone().iushln(bits) + } + BN.prototype.shrn = function shrn(bits) { + return this.clone().ishrn(bits) + } + BN.prototype.ushrn = function ushrn(bits) { + return this.clone().iushrn(bits) + } + BN.prototype.testn = function testn(bit) { + assert(typeof bit === 'number' && bit >= 0) + var r = bit % 26 + var s = (bit - r) / 26 + var q = 1 << r + if (this.length <= s) return false + var w = this.words[s] + return !!(w & q) + } + BN.prototype.imaskn = function imaskn(bits) { + assert(typeof bits === 'number' && bits >= 0) + var r = bits % 26 + var s = (bits - r) / 26 + assert(this.negative === 0, 'imaskn works only with positive numbers') + if (this.length <= s) { + return this + } + if (r !== 0) { + s++ + } + this.length = Math.min(s, this.length) + if (r !== 0) { + var mask = 67108863 ^ ((67108863 >>> r) << r) + this.words[this.length - 1] &= mask + } + return this._strip() + } + BN.prototype.maskn = function maskn(bits) { + return this.clone().imaskn(bits) + } + BN.prototype.iaddn = function iaddn(num) { + assert(typeof num === 'number') + assert(num < 67108864) + if (num < 0) return this.isubn(-num) + if (this.negative !== 0) { + if (this.length === 1 && (this.words[0] | 0) <= num) { + this.words[0] = num - (this.words[0] | 0) + this.negative = 0 + return this + } + this.negative = 0 + this.isubn(num) + this.negative = 1 + return this + } + return this._iaddn(num) + } + BN.prototype._iaddn = function _iaddn(num) { + this.words[0] += num + for (var i = 0; i < this.length && this.words[i] >= 67108864; i++) { + this.words[i] -= 67108864 + if (i === this.length - 1) { + this.words[i + 1] = 1 + } else { + this.words[i + 1]++ + } + } + this.length = Math.max(this.length, i + 1) + return this + } + BN.prototype.isubn = function isubn(num) { + assert(typeof num === 'number') + assert(num < 67108864) + if (num < 0) return this.iaddn(-num) + if (this.negative !== 0) { + this.negative = 0 + this.iaddn(num) + this.negative = 1 + return this + } + this.words[0] -= num + if (this.length === 1 && this.words[0] < 0) { + this.words[0] = -this.words[0] + this.negative = 1 + } else { + for (var i = 0; i < this.length && this.words[i] < 0; i++) { + this.words[i] += 67108864 + this.words[i + 1] -= 1 + } + } + return this._strip() + } + BN.prototype.addn = function addn(num) { + return this.clone().iaddn(num) + } + BN.prototype.subn = function subn(num) { + return this.clone().isubn(num) + } + BN.prototype.iabs = function iabs() { + this.negative = 0 + return this + } + BN.prototype.abs = function abs() { + return this.clone().iabs() + } + BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { + var len = num.length + shift + var i + this._expand(len) + var w + var carry = 0 + for (i = 0; i < num.length; i++) { + w = (this.words[i + shift] | 0) + carry + var right = (num.words[i] | 0) * mul + w -= right & 67108863 + carry = (w >> 26) - ((right / 67108864) | 0) + this.words[i + shift] = w & 67108863 + } + for (; i < this.length - shift; i++) { + w = (this.words[i + shift] | 0) + carry + carry = w >> 26 + this.words[i + shift] = w & 67108863 + } + if (carry === 0) return this._strip() + assert(carry === -1) + carry = 0 + for (i = 0; i < this.length; i++) { + w = -(this.words[i] | 0) + carry + carry = w >> 26 + this.words[i] = w & 67108863 + } + this.negative = 1 + return this._strip() + } + BN.prototype._wordDiv = function _wordDiv(num, mode) { + var shift = this.length - num.length + var a = this.clone() + var b = num + var bhi = b.words[b.length - 1] | 0 + var bhiBits = this._countBits(bhi) + shift = 26 - bhiBits + if (shift !== 0) { + b = b.ushln(shift) + a.iushln(shift) + bhi = b.words[b.length - 1] | 0 + } + var m = a.length - b.length + var q + if (mode !== 'mod') { + q = new BN(null) + q.length = m + 1 + q.words = new Array(q.length) + for (var i = 0; i < q.length; i++) { + q.words[i] = 0 + } + } + var diff = a.clone()._ishlnsubmul(b, 1, m) + if (diff.negative === 0) { + a = diff + if (q) { + q.words[m] = 1 + } + } + for (var j = m - 1; j >= 0; j--) { + var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0) + qj = Math.min((qj / bhi) | 0, 67108863) + a._ishlnsubmul(b, qj, j) + while (a.negative !== 0) { + qj-- + a.negative = 0 + a._ishlnsubmul(b, 1, j) + if (!a.isZero()) { + a.negative ^= 1 + } + } + if (q) { + q.words[j] = qj + } + } + if (q) { + q._strip() + } + a._strip() + if (mode !== 'div' && shift !== 0) { + a.iushrn(shift) + } + return { div: q || null, mod: a } + } + BN.prototype.divmod = function divmod(num, mode, positive) { + assert(!num.isZero()) + if (this.isZero()) { + return { div: new BN(0), mod: new BN(0) } + } + var div, mod, res + if (this.negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode) + if (mode !== 'mod') { + div = res.div.neg() + } + if (mode !== 'div') { + mod = res.mod.neg() + if (positive && mod.negative !== 0) { + mod.iadd(num) + } + } + return { div: div, mod: mod } + } + if (this.negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode) + if (mode !== 'mod') { + div = res.div.neg() + } + return { div: div, mod: res.mod } + } + if ((this.negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode) + if (mode !== 'div') { + mod = res.mod.neg() + if (positive && mod.negative !== 0) { + mod.isub(num) + } + } + return { div: res.div, mod: mod } + } + if (num.length > this.length || this.cmp(num) < 0) { + return { div: new BN(0), mod: this } + } + if (num.length === 1) { + if (mode === 'div') { + return { div: this.divn(num.words[0]), mod: null } + } + if (mode === 'mod') { + return { div: null, mod: new BN(this.modrn(num.words[0])) } + } + return { div: this.divn(num.words[0]), mod: new BN(this.modrn(num.words[0])) } + } + return this._wordDiv(num, mode) + } + BN.prototype.div = function div(num) { + return this.divmod(num, 'div', false).div + } + BN.prototype.mod = function mod(num) { + return this.divmod(num, 'mod', false).mod + } + BN.prototype.umod = function umod(num) { + return this.divmod(num, 'mod', true).mod + } + BN.prototype.divRound = function divRound(num) { + var dm = this.divmod(num) + if (dm.mod.isZero()) return dm.div + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod + var half = num.ushrn(1) + var r2 = num.andln(1) + var cmp = mod.cmp(half) + if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1) + } + BN.prototype.modrn = function modrn(num) { + var isNegNum = num < 0 + if (isNegNum) num = -num + assert(num <= 67108863) + var p = (1 << 26) % num + var acc = 0 + for (var i = this.length - 1; i >= 0; i--) { + acc = (p * acc + (this.words[i] | 0)) % num + } + return isNegNum ? -acc : acc + } + BN.prototype.modn = function modn(num) { + return this.modrn(num) + } + BN.prototype.idivn = function idivn(num) { + var isNegNum = num < 0 + if (isNegNum) num = -num + assert(num <= 67108863) + var carry = 0 + for (var i = this.length - 1; i >= 0; i--) { + var w = (this.words[i] | 0) + carry * 67108864 + this.words[i] = (w / num) | 0 + carry = w % num + } + this._strip() + return isNegNum ? this.ineg() : this + } + BN.prototype.divn = function divn(num) { + return this.clone().idivn(num) + } + BN.prototype.egcd = function egcd(p) { + assert(p.negative === 0) + assert(!p.isZero()) + var x = this + var y = p.clone() + if (x.negative !== 0) { + x = x.umod(p) + } else { + x = x.clone() + } + var A = new BN(1) + var B = new BN(0) + var C = new BN(0) + var D = new BN(1) + var g = 0 + while (x.isEven() && y.isEven()) { + x.iushrn(1) + y.iushrn(1) + ++g + } + var yp = y.clone() + var xp = x.clone() + while (!x.isZero()) { + for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1); + if (i > 0) { + x.iushrn(i) + while (i-- > 0) { + if (A.isOdd() || B.isOdd()) { + A.iadd(yp) + B.isub(xp) + } + A.iushrn(1) + B.iushrn(1) + } + } + for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); + if (j > 0) { + y.iushrn(j) + while (j-- > 0) { + if (C.isOdd() || D.isOdd()) { + C.iadd(yp) + D.isub(xp) + } + C.iushrn(1) + D.iushrn(1) + } + } + if (x.cmp(y) >= 0) { + x.isub(y) + A.isub(C) + B.isub(D) + } else { + y.isub(x) + C.isub(A) + D.isub(B) + } + } + return { a: C, b: D, gcd: y.iushln(g) } + } + BN.prototype._invmp = function _invmp(p) { + assert(p.negative === 0) + assert(!p.isZero()) + var a = this + var b = p.clone() + if (a.negative !== 0) { + a = a.umod(p) + } else { + a = a.clone() + } + var x1 = new BN(1) + var x2 = new BN(0) + var delta = b.clone() + while (a.cmpn(1) > 0 && b.cmpn(1) > 0) { + for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1); + if (i > 0) { + a.iushrn(i) + while (i-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta) + } + x1.iushrn(1) + } + } + for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); + if (j > 0) { + b.iushrn(j) + while (j-- > 0) { + if (x2.isOdd()) { + x2.iadd(delta) + } + x2.iushrn(1) + } + } + if (a.cmp(b) >= 0) { + a.isub(b) + x1.isub(x2) + } else { + b.isub(a) + x2.isub(x1) + } + } + var res + if (a.cmpn(1) === 0) { + res = x1 + } else { + res = x2 + } + if (res.cmpn(0) < 0) { + res.iadd(p) + } + return res + } + BN.prototype.gcd = function gcd(num) { + if (this.isZero()) return num.abs() + if (num.isZero()) return this.abs() + var a = this.clone() + var b = num.clone() + a.negative = 0 + b.negative = 0 + for (var shift = 0; a.isEven() && b.isEven(); shift++) { + a.iushrn(1) + b.iushrn(1) + } + do { + while (a.isEven()) { + a.iushrn(1) + } + while (b.isEven()) { + b.iushrn(1) + } + var r = a.cmp(b) + if (r < 0) { + var t = a + a = b + b = t + } else if (r === 0 || b.cmpn(1) === 0) { + break + } + a.isub(b) + } while (true) + return b.iushln(shift) + } + BN.prototype.invm = function invm(num) { + return this.egcd(num).a.umod(num) + } + BN.prototype.isEven = function isEven() { + return (this.words[0] & 1) === 0 + } + BN.prototype.isOdd = function isOdd() { + return (this.words[0] & 1) === 1 + } + BN.prototype.andln = function andln(num) { + return this.words[0] & num + } + BN.prototype.bincn = function bincn(bit) { + assert(typeof bit === 'number') + var r = bit % 26 + var s = (bit - r) / 26 + var q = 1 << r + if (this.length <= s) { + this._expand(s + 1) + this.words[s] |= q + return this + } + var carry = q + for (var i = s; carry !== 0 && i < this.length; i++) { + var w = this.words[i] | 0 + w += carry + carry = w >>> 26 + w &= 67108863 + this.words[i] = w + } + if (carry !== 0) { + this.words[i] = carry + this.length++ + } + return this + } + BN.prototype.isZero = function isZero() { + return this.length === 1 && this.words[0] === 0 + } + BN.prototype.cmpn = function cmpn(num) { + var negative = num < 0 + if (this.negative !== 0 && !negative) return -1 + if (this.negative === 0 && negative) return 1 + this._strip() + var res + if (this.length > 1) { + res = 1 + } else { + if (negative) { + num = -num + } + assert(num <= 67108863, 'Number is too big') + var w = this.words[0] | 0 + res = w === num ? 0 : w < num ? -1 : 1 + } + if (this.negative !== 0) return -res | 0 + return res + } + BN.prototype.cmp = function cmp(num) { + if (this.negative !== 0 && num.negative === 0) return -1 + if (this.negative === 0 && num.negative !== 0) return 1 + var res = this.ucmp(num) + if (this.negative !== 0) return -res | 0 + return res + } + BN.prototype.ucmp = function ucmp(num) { + if (this.length > num.length) return 1 + if (this.length < num.length) return -1 + var res = 0 + for (var i = this.length - 1; i >= 0; i--) { + var a = this.words[i] | 0 + var b = num.words[i] | 0 + if (a === b) continue + if (a < b) { + res = -1 + } else if (a > b) { + res = 1 + } + break + } + return res + } + BN.prototype.gtn = function gtn(num) { + return this.cmpn(num) === 1 + } + BN.prototype.gt = function gt(num) { + return this.cmp(num) === 1 + } + BN.prototype.gten = function gten(num) { + return this.cmpn(num) >= 0 + } + BN.prototype.gte = function gte(num) { + return this.cmp(num) >= 0 + } + BN.prototype.ltn = function ltn(num) { + return this.cmpn(num) === -1 + } + BN.prototype.lt = function lt(num) { + return this.cmp(num) === -1 + } + BN.prototype.lten = function lten(num) { + return this.cmpn(num) <= 0 + } + BN.prototype.lte = function lte(num) { + return this.cmp(num) <= 0 + } + BN.prototype.eqn = function eqn(num) { + return this.cmpn(num) === 0 + } + BN.prototype.eq = function eq(num) { + return this.cmp(num) === 0 + } + BN.red = function red(num) { + return new Red(num) + } + BN.prototype.toRed = function toRed(ctx) { + assert(!this.red, 'Already a number in reduction context') + assert(this.negative === 0, 'red works only with positives') + return ctx.convertTo(this)._forceRed(ctx) + } + BN.prototype.fromRed = function fromRed() { + assert(this.red, 'fromRed works only with numbers in reduction context') + return this.red.convertFrom(this) + } + BN.prototype._forceRed = function _forceRed(ctx) { + this.red = ctx + return this + } + BN.prototype.forceRed = function forceRed(ctx) { + assert(!this.red, 'Already a number in reduction context') + return this._forceRed(ctx) + } + BN.prototype.redAdd = function redAdd(num) { + assert(this.red, 'redAdd works only with red numbers') + return this.red.add(this, num) + } + BN.prototype.redIAdd = function redIAdd(num) { + assert(this.red, 'redIAdd works only with red numbers') + return this.red.iadd(this, num) + } + BN.prototype.redSub = function redSub(num) { + assert(this.red, 'redSub works only with red numbers') + return this.red.sub(this, num) + } + BN.prototype.redISub = function redISub(num) { + assert(this.red, 'redISub works only with red numbers') + return this.red.isub(this, num) + } + BN.prototype.redShl = function redShl(num) { + assert(this.red, 'redShl works only with red numbers') + return this.red.shl(this, num) + } + BN.prototype.redMul = function redMul(num) { + assert(this.red, 'redMul works only with red numbers') + this.red._verify2(this, num) + return this.red.mul(this, num) + } + BN.prototype.redIMul = function redIMul(num) { + assert(this.red, 'redMul works only with red numbers') + this.red._verify2(this, num) + return this.red.imul(this, num) + } + BN.prototype.redSqr = function redSqr() { + assert(this.red, 'redSqr works only with red numbers') + this.red._verify1(this) + return this.red.sqr(this) + } + BN.prototype.redISqr = function redISqr() { + assert(this.red, 'redISqr works only with red numbers') + this.red._verify1(this) + return this.red.isqr(this) + } + BN.prototype.redSqrt = function redSqrt() { + assert(this.red, 'redSqrt works only with red numbers') + this.red._verify1(this) + return this.red.sqrt(this) + } + BN.prototype.redInvm = function redInvm() { + assert(this.red, 'redInvm works only with red numbers') + this.red._verify1(this) + return this.red.invm(this) + } + BN.prototype.redNeg = function redNeg() { + assert(this.red, 'redNeg works only with red numbers') + this.red._verify1(this) + return this.red.neg(this) + } + BN.prototype.redPow = function redPow(num) { + assert(this.red && !num.red, 'redPow(normalNum)') + this.red._verify1(this) + return this.red.pow(this, num) + } + var primes = { k256: null, p224: null, p192: null, p25519: null } + function MPrime(name, p) { + this.name = name + this.p = new BN(p, 16) + this.n = this.p.bitLength() + this.k = new BN(1).iushln(this.n).isub(this.p) + this.tmp = this._tmp() + } + MPrime.prototype._tmp = function _tmp() { + var tmp = new BN(null) + tmp.words = new Array(Math.ceil(this.n / 13)) + return tmp + } + MPrime.prototype.ireduce = function ireduce(num) { + var r = num + var rlen + do { + this.split(r, this.tmp) + r = this.imulK(r) + r = r.iadd(this.tmp) + rlen = r.bitLength() + } while (rlen > this.n) + var cmp = rlen < this.n ? -1 : r.ucmp(this.p) + if (cmp === 0) { + r.words[0] = 0 + r.length = 1 + } else if (cmp > 0) { + r.isub(this.p) + } else { + r._strip() + } + return r + } + MPrime.prototype.split = function split(input, out) { + input.iushrn(this.n, 0, out) + } + MPrime.prototype.imulK = function imulK(num) { + return num.imul(this.k) + } + function K256() { + MPrime.call( + this, + 'k256', + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f' + ) + } + inherits(K256, MPrime) + K256.prototype.split = function split(input, output) { + var mask = 4194303 + var outLen = Math.min(input.length, 9) + for (var i = 0; i < outLen; i++) { + output.words[i] = input.words[i] + } + output.length = outLen + if (input.length <= 9) { + input.words[0] = 0 + input.length = 1 + return + } + var prev = input.words[9] + output.words[output.length++] = prev & mask + for (i = 10; i < input.length; i++) { + var next = input.words[i] | 0 + input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22) + prev = next + } + prev >>>= 22 + input.words[i - 10] = prev + if (prev === 0 && input.length > 10) { + input.length -= 10 + } else { + input.length -= 9 + } + } + K256.prototype.imulK = function imulK(num) { + num.words[num.length] = 0 + num.words[num.length + 1] = 0 + num.length += 2 + var lo = 0 + for (var i = 0; i < num.length; i++) { + var w = num.words[i] | 0 + lo += w * 977 + num.words[i] = lo & 67108863 + lo = w * 64 + ((lo / 67108864) | 0) + } + if (num.words[num.length - 1] === 0) { + num.length-- + if (num.words[num.length - 1] === 0) { + num.length-- + } + } + return num + } + function P224() { + MPrime.call( + this, + 'p224', + 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001' + ) + } + inherits(P224, MPrime) + function P192() { + MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff') + } + inherits(P192, MPrime) + function P25519() { + MPrime.call( + this, + '25519', + '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed' + ) + } + inherits(P25519, MPrime) + P25519.prototype.imulK = function imulK(num) { + var carry = 0 + for (var i = 0; i < num.length; i++) { + var hi = (num.words[i] | 0) * 19 + carry + var lo = hi & 67108863 + hi >>>= 26 + num.words[i] = lo + carry = hi + } + if (carry !== 0) { + num.words[num.length++] = carry + } + return num + } + BN._prime = function prime(name) { + if (primes[name]) return primes[name] + var prime + if (name === 'k256') { + prime = new K256() + } else if (name === 'p224') { + prime = new P224() + } else if (name === 'p192') { + prime = new P192() + } else if (name === 'p25519') { + prime = new P25519() + } else { + throw new Error('Unknown prime ' + name) + } + primes[name] = prime + return prime + } + function Red(m) { + if (typeof m === 'string') { + var prime = BN._prime(m) + this.m = prime.p + this.prime = prime + } else { + assert(m.gtn(1), 'modulus must be greater than 1') + this.m = m + this.prime = null + } + } + Red.prototype._verify1 = function _verify1(a) { + assert(a.negative === 0, 'red works only with positives') + assert(a.red, 'red works only with red numbers') + } + Red.prototype._verify2 = function _verify2(a, b) { + assert((a.negative | b.negative) === 0, 'red works only with positives') + assert(a.red && a.red === b.red, 'red works only with red numbers') + } + Red.prototype.imod = function imod(a) { + if (this.prime) return this.prime.ireduce(a)._forceRed(this) + move(a, a.umod(this.m)._forceRed(this)) + return a + } + Red.prototype.neg = function neg(a) { + if (a.isZero()) { + return a.clone() + } + return this.m.sub(a)._forceRed(this) + } + Red.prototype.add = function add(a, b) { + this._verify2(a, b) + var res = a.add(b) + if (res.cmp(this.m) >= 0) { + res.isub(this.m) + } + return res._forceRed(this) + } + Red.prototype.iadd = function iadd(a, b) { + this._verify2(a, b) + var res = a.iadd(b) + if (res.cmp(this.m) >= 0) { + res.isub(this.m) + } + return res + } + Red.prototype.sub = function sub(a, b) { + this._verify2(a, b) + var res = a.sub(b) + if (res.cmpn(0) < 0) { + res.iadd(this.m) + } + return res._forceRed(this) + } + Red.prototype.isub = function isub(a, b) { + this._verify2(a, b) + var res = a.isub(b) + if (res.cmpn(0) < 0) { + res.iadd(this.m) + } + return res + } + Red.prototype.shl = function shl(a, num) { + this._verify1(a) + return this.imod(a.ushln(num)) + } + Red.prototype.imul = function imul(a, b) { + this._verify2(a, b) + return this.imod(a.imul(b)) + } + Red.prototype.mul = function mul(a, b) { + this._verify2(a, b) + return this.imod(a.mul(b)) + } + Red.prototype.isqr = function isqr(a) { + return this.imul(a, a.clone()) + } + Red.prototype.sqr = function sqr(a) { + return this.mul(a, a) + } + Red.prototype.sqrt = function sqrt(a) { + if (a.isZero()) return a.clone() + var mod3 = this.m.andln(3) + assert(mod3 % 2 === 1) + if (mod3 === 3) { + var pow = this.m.add(new BN(1)).iushrn(2) + return this.pow(a, pow) + } + var q = this.m.subn(1) + var s = 0 + while (!q.isZero() && q.andln(1) === 0) { + s++ + q.iushrn(1) + } + assert(!q.isZero()) + var one = new BN(1).toRed(this) + var nOne = one.redNeg() + var lpow = this.m.subn(1).iushrn(1) + var z = this.m.bitLength() + z = new BN(2 * z * z).toRed(this) + while (this.pow(z, lpow).cmp(nOne) !== 0) { + z.redIAdd(nOne) + } + var c = this.pow(z, q) + var r = this.pow(a, q.addn(1).iushrn(1)) + var t = this.pow(a, q) + var m = s + while (t.cmp(one) !== 0) { + var tmp = t + for (var i = 0; tmp.cmp(one) !== 0; i++) { + tmp = tmp.redSqr() + } + assert(i < m) + var b = this.pow(c, new BN(1).iushln(m - i - 1)) + r = r.redMul(b) + c = b.redSqr() + t = t.redMul(c) + m = i + } + return r + } + Red.prototype.invm = function invm(a) { + var inv = a._invmp(this.m) + if (inv.negative !== 0) { + inv.negative = 0 + return this.imod(inv).redNeg() + } else { + return this.imod(inv) + } + } + Red.prototype.pow = function pow(a, num) { + if (num.isZero()) return new BN(1).toRed(this) + if (num.cmpn(1) === 0) return a.clone() + var windowSize = 4 + var wnd = new Array(1 << windowSize) + wnd[0] = new BN(1).toRed(this) + wnd[1] = a + for (var i = 2; i < wnd.length; i++) { + wnd[i] = this.mul(wnd[i - 1], a) + } + var res = wnd[0] + var current = 0 + var currentLen = 0 + var start = num.bitLength() % 26 + if (start === 0) { + start = 26 + } + for (i = num.length - 1; i >= 0; i--) { + var word = num.words[i] + for (var j = start - 1; j >= 0; j--) { + var bit = (word >> j) & 1 + if (res !== wnd[0]) { + res = this.sqr(res) + } + if (bit === 0 && current === 0) { + currentLen = 0 + continue + } + current <<= 1 + current |= bit + currentLen++ + if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue + res = this.mul(res, wnd[current]) + currentLen = 0 + current = 0 + } + start = 26 + } + return res + } + Red.prototype.convertTo = function convertTo(num) { + var r = num.umod(this.m) + return r === num ? r.clone() : r + } + Red.prototype.convertFrom = function convertFrom(num) { + var res = num.clone() + res.red = null + return res + } + BN.mont = function mont(num) { + return new Mont(num) + } + function Mont(m) { + Red.call(this, m) + this.shift = this.m.bitLength() + if (this.shift % 26 !== 0) { + this.shift += 26 - (this.shift % 26) + } + this.r = new BN(1).iushln(this.shift) + this.r2 = this.imod(this.r.sqr()) + this.rinv = this.r._invmp(this.m) + this.minv = this.rinv.mul(this.r).isubn(1).div(this.m) + this.minv = this.minv.umod(this.r) + this.minv = this.r.sub(this.minv) + } + inherits(Mont, Red) + Mont.prototype.convertTo = function convertTo(num) { + return this.imod(num.ushln(this.shift)) + } + Mont.prototype.convertFrom = function convertFrom(num) { + var r = this.imod(num.mul(this.rinv)) + r.red = null + return r + } + Mont.prototype.imul = function imul(a, b) { + if (a.isZero() || b.isZero()) { + a.words[0] = 0 + a.length = 1 + return a + } + var t = a.imul(b) + var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m) + var u = t.isub(c).iushrn(this.shift) + var res = u + if (u.cmp(this.m) >= 0) { + res = u.isub(this.m) + } else if (u.cmpn(0) < 0) { + res = u.iadd(this.m) + } + return res._forceRed(this) + } + Mont.prototype.mul = function mul(a, b) { + if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this) + var t = a.mul(b) + var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m) + var u = t.isub(c).iushrn(this.shift) + var res = u + if (u.cmp(this.m) >= 0) { + res = u.isub(this.m) + } else if (u.cmpn(0) < 0) { + res = u.iadd(this.m) + } + return res._forceRed(this) + } + Mont.prototype.invm = function invm(a) { + var res = this.imod(a._invmp(this.m).mul(this.r2)) + return res._forceRed(this) + } + })(typeof module === 'undefined' || module, this) + }, + { buffer: 49 } + ], + 48: [ + function (require, module, exports) { + var r + module.exports = function rand(len) { + if (!r) r = new Rand(null) + return r.generate(len) + } + function Rand(rand) { + this.rand = rand + } + module.exports.Rand = Rand + Rand.prototype.generate = function generate(len) { + return this._rand(len) + } + Rand.prototype._rand = function _rand(n) { + if (this.rand.getBytes) return this.rand.getBytes(n) + var res = new Uint8Array(n) + for (var i = 0; i < res.length; i++) res[i] = this.rand.getByte() + return res + } + if (typeof self === 'object') { + if (self.crypto && self.crypto.getRandomValues) { + Rand.prototype._rand = function _rand(n) { + var arr = new Uint8Array(n) + self.crypto.getRandomValues(arr) + return arr + } + } else if (self.msCrypto && self.msCrypto.getRandomValues) { + Rand.prototype._rand = function _rand(n) { + var arr = new Uint8Array(n) + self.msCrypto.getRandomValues(arr) + return arr + } + } else if (typeof window === 'object') { + Rand.prototype._rand = function () { + throw new Error('Not implemented yet') + } + } + } else { + try { + var crypto = require('crypto') + if (typeof crypto.randomBytes !== 'function') throw new Error('Not supported') + Rand.prototype._rand = function _rand(n) { + return crypto.randomBytes(n) + } + } catch (e) {} + } + }, + { crypto: 49 } + ], + 49: [function (require, module, exports) {}, {}], + 50: [ + function (require, module, exports) { + var Buffer = require('safe-buffer').Buffer + function asUInt32Array(buf) { + if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf) + var len = (buf.length / 4) | 0 + var out = new Array(len) + for (var i = 0; i < len; i++) { + out[i] = buf.readUInt32BE(i * 4) + } + return out + } + function scrubVec(v) { + for (var i = 0; i < v.length; v++) { + v[i] = 0 + } + } + function cryptBlock(M, keySchedule, SUB_MIX, SBOX, nRounds) { + var SUB_MIX0 = SUB_MIX[0] + var SUB_MIX1 = SUB_MIX[1] + var SUB_MIX2 = SUB_MIX[2] + var SUB_MIX3 = SUB_MIX[3] + var s0 = M[0] ^ keySchedule[0] + var s1 = M[1] ^ keySchedule[1] + var s2 = M[2] ^ keySchedule[2] + var s3 = M[3] ^ keySchedule[3] + var t0, t1, t2, t3 + var ksRow = 4 + for (var round = 1; round < nRounds; round++) { + t0 = + SUB_MIX0[s0 >>> 24] ^ + SUB_MIX1[(s1 >>> 16) & 255] ^ + SUB_MIX2[(s2 >>> 8) & 255] ^ + SUB_MIX3[s3 & 255] ^ + keySchedule[ksRow++] + t1 = + SUB_MIX0[s1 >>> 24] ^ + SUB_MIX1[(s2 >>> 16) & 255] ^ + SUB_MIX2[(s3 >>> 8) & 255] ^ + SUB_MIX3[s0 & 255] ^ + keySchedule[ksRow++] + t2 = + SUB_MIX0[s2 >>> 24] ^ + SUB_MIX1[(s3 >>> 16) & 255] ^ + SUB_MIX2[(s0 >>> 8) & 255] ^ + SUB_MIX3[s1 & 255] ^ + keySchedule[ksRow++] + t3 = + SUB_MIX0[s3 >>> 24] ^ + SUB_MIX1[(s0 >>> 16) & 255] ^ + SUB_MIX2[(s1 >>> 8) & 255] ^ + SUB_MIX3[s2 & 255] ^ + keySchedule[ksRow++] + s0 = t0 + s1 = t1 + s2 = t2 + s3 = t3 + } + t0 = + ((SBOX[s0 >>> 24] << 24) | + (SBOX[(s1 >>> 16) & 255] << 16) | + (SBOX[(s2 >>> 8) & 255] << 8) | + SBOX[s3 & 255]) ^ + keySchedule[ksRow++] + t1 = + ((SBOX[s1 >>> 24] << 24) | + (SBOX[(s2 >>> 16) & 255] << 16) | + (SBOX[(s3 >>> 8) & 255] << 8) | + SBOX[s0 & 255]) ^ + keySchedule[ksRow++] + t2 = + ((SBOX[s2 >>> 24] << 24) | + (SBOX[(s3 >>> 16) & 255] << 16) | + (SBOX[(s0 >>> 8) & 255] << 8) | + SBOX[s1 & 255]) ^ + keySchedule[ksRow++] + t3 = + ((SBOX[s3 >>> 24] << 24) | + (SBOX[(s0 >>> 16) & 255] << 16) | + (SBOX[(s1 >>> 8) & 255] << 8) | + SBOX[s2 & 255]) ^ + keySchedule[ksRow++] + t0 = t0 >>> 0 + t1 = t1 >>> 0 + t2 = t2 >>> 0 + t3 = t3 >>> 0 + return [t0, t1, t2, t3] + } + var RCON = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54] + var G = (function () { + var d = new Array(256) + for (var j = 0; j < 256; j++) { + if (j < 128) { + d[j] = j << 1 + } else { + d[j] = (j << 1) ^ 283 + } + } + var SBOX = [] + var INV_SBOX = [] + var SUB_MIX = [[], [], [], []] + var INV_SUB_MIX = [[], [], [], []] + var x = 0 + var xi = 0 + for (var i = 0; i < 256; ++i) { + var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4) + sx = (sx >>> 8) ^ (sx & 255) ^ 99 + SBOX[x] = sx + INV_SBOX[sx] = x + var x2 = d[x] + var x4 = d[x2] + var x8 = d[x4] + var t = (d[sx] * 257) ^ (sx * 16843008) + SUB_MIX[0][x] = (t << 24) | (t >>> 8) + SUB_MIX[1][x] = (t << 16) | (t >>> 16) + SUB_MIX[2][x] = (t << 8) | (t >>> 24) + SUB_MIX[3][x] = t + t = (x8 * 16843009) ^ (x4 * 65537) ^ (x2 * 257) ^ (x * 16843008) + INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8) + INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16) + INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24) + INV_SUB_MIX[3][sx] = t + if (x === 0) { + x = xi = 1 + } else { + x = x2 ^ d[d[d[x8 ^ x2]]] + xi ^= d[d[xi]] + } + } + return { SBOX: SBOX, INV_SBOX: INV_SBOX, SUB_MIX: SUB_MIX, INV_SUB_MIX: INV_SUB_MIX } + })() + function AES(key) { + this._key = asUInt32Array(key) + this._reset() + } + AES.blockSize = 4 * 4 + AES.keySize = 256 / 8 + AES.prototype.blockSize = AES.blockSize + AES.prototype.keySize = AES.keySize + AES.prototype._reset = function () { + var keyWords = this._key + var keySize = keyWords.length + var nRounds = keySize + 6 + var ksRows = (nRounds + 1) * 4 + var keySchedule = [] + for (var k = 0; k < keySize; k++) { + keySchedule[k] = keyWords[k] + } + for (k = keySize; k < ksRows; k++) { + var t = keySchedule[k - 1] + if (k % keySize === 0) { + t = (t << 8) | (t >>> 24) + t = + (G.SBOX[t >>> 24] << 24) | + (G.SBOX[(t >>> 16) & 255] << 16) | + (G.SBOX[(t >>> 8) & 255] << 8) | + G.SBOX[t & 255] + t ^= RCON[(k / keySize) | 0] << 24 + } else if (keySize > 6 && k % keySize === 4) { + t = + (G.SBOX[t >>> 24] << 24) | + (G.SBOX[(t >>> 16) & 255] << 16) | + (G.SBOX[(t >>> 8) & 255] << 8) | + G.SBOX[t & 255] + } + keySchedule[k] = keySchedule[k - keySize] ^ t + } + var invKeySchedule = [] + for (var ik = 0; ik < ksRows; ik++) { + var ksR = ksRows - ik + var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)] + if (ik < 4 || ksR <= 4) { + invKeySchedule[ik] = tt + } else { + invKeySchedule[ik] = + G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^ + G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 255]] ^ + G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 255]] ^ + G.INV_SUB_MIX[3][G.SBOX[tt & 255]] + } + } + this._nRounds = nRounds + this._keySchedule = keySchedule + this._invKeySchedule = invKeySchedule + } + AES.prototype.encryptBlockRaw = function (M) { + M = asUInt32Array(M) + return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds) + } + AES.prototype.encryptBlock = function (M) { + var out = this.encryptBlockRaw(M) + var buf = Buffer.allocUnsafe(16) + buf.writeUInt32BE(out[0], 0) + buf.writeUInt32BE(out[1], 4) + buf.writeUInt32BE(out[2], 8) + buf.writeUInt32BE(out[3], 12) + return buf + } + AES.prototype.decryptBlock = function (M) { + M = asUInt32Array(M) + var m1 = M[1] + M[1] = M[3] + M[3] = m1 + var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds) + var buf = Buffer.allocUnsafe(16) + buf.writeUInt32BE(out[0], 0) + buf.writeUInt32BE(out[3], 4) + buf.writeUInt32BE(out[2], 8) + buf.writeUInt32BE(out[1], 12) + return buf + } + AES.prototype.scrub = function () { + scrubVec(this._keySchedule) + scrubVec(this._invKeySchedule) + scrubVec(this._key) + } + module.exports.AES = AES + }, + { 'safe-buffer': 183 } + ], + 51: [ + function (require, module, exports) { + var aes = require('./aes') + var Buffer = require('safe-buffer').Buffer + var Transform = require('cipher-base') + var inherits = require('inherits') + var GHASH = require('./ghash') + var xor = require('buffer-xor') + var incr32 = require('./incr32') + function xorTest(a, b) { + var out = 0 + if (a.length !== b.length) out++ + var len = Math.min(a.length, b.length) + for (var i = 0; i < len; ++i) { + out += a[i] ^ b[i] + } + return out + } + function calcIv(self, iv, ck) { + if (iv.length === 12) { + self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])]) + return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])]) + } + var ghash = new GHASH(ck) + var len = iv.length + var toPad = len % 16 + ghash.update(iv) + if (toPad) { + toPad = 16 - toPad + ghash.update(Buffer.alloc(toPad, 0)) + } + ghash.update(Buffer.alloc(8, 0)) + var ivBits = len * 8 + var tail = Buffer.alloc(8) + tail.writeUIntBE(ivBits, 0, 8) + ghash.update(tail) + self._finID = ghash.state + var out = Buffer.from(self._finID) + incr32(out) + return out + } + function StreamCipher(mode, key, iv, decrypt) { + Transform.call(this) + var h = Buffer.alloc(4, 0) + this._cipher = new aes.AES(key) + var ck = this._cipher.encryptBlock(h) + this._ghash = new GHASH(ck) + iv = calcIv(this, iv, ck) + this._prev = Buffer.from(iv) + this._cache = Buffer.allocUnsafe(0) + this._secCache = Buffer.allocUnsafe(0) + this._decrypt = decrypt + this._alen = 0 + this._len = 0 + this._mode = mode + this._authTag = null + this._called = false + } + inherits(StreamCipher, Transform) + StreamCipher.prototype._update = function (chunk) { + if (!this._called && this._alen) { + var rump = 16 - (this._alen % 16) + if (rump < 16) { + rump = Buffer.alloc(rump, 0) + this._ghash.update(rump) + } + } + this._called = true + var out = this._mode.encrypt(this, chunk) + if (this._decrypt) { + this._ghash.update(chunk) + } else { + this._ghash.update(out) + } + this._len += chunk.length + return out + } + StreamCipher.prototype._final = function () { + if (this._decrypt && !this._authTag) + throw new Error('Unsupported state or unable to authenticate data') + var tag = xor( + this._ghash.final(this._alen * 8, this._len * 8), + this._cipher.encryptBlock(this._finID) + ) + if (this._decrypt && xorTest(tag, this._authTag)) + throw new Error('Unsupported state or unable to authenticate data') + this._authTag = tag + this._cipher.scrub() + } + StreamCipher.prototype.getAuthTag = function getAuthTag() { + if (this._decrypt || !Buffer.isBuffer(this._authTag)) + throw new Error('Attempting to get auth tag in unsupported state') + return this._authTag + } + StreamCipher.prototype.setAuthTag = function setAuthTag(tag) { + if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state') + this._authTag = tag + } + StreamCipher.prototype.setAAD = function setAAD(buf) { + if (this._called) throw new Error('Attempting to set AAD in unsupported state') + this._ghash.update(buf) + this._alen += buf.length + } + module.exports = StreamCipher + }, + { + './aes': 50, + './ghash': 55, + './incr32': 56, + 'buffer-xor': 97, + 'cipher-base': 98, + inherits: 151, + 'safe-buffer': 183 + } + ], + 52: [ + function (require, module, exports) { + var ciphers = require('./encrypter') + var deciphers = require('./decrypter') + var modes = require('./modes/list.json') + function getCiphers() { + return Object.keys(modes) + } + exports.createCipher = exports.Cipher = ciphers.createCipher + exports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv + exports.createDecipher = exports.Decipher = deciphers.createDecipher + exports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv + exports.listCiphers = exports.getCiphers = getCiphers + }, + { './decrypter': 53, './encrypter': 54, './modes/list.json': 64 } + ], + 53: [ + function (require, module, exports) { + var AuthCipher = require('./authCipher') + var Buffer = require('safe-buffer').Buffer + var MODES = require('./modes') + var StreamCipher = require('./streamCipher') + var Transform = require('cipher-base') + var aes = require('./aes') + var ebtk = require('evp_bytestokey') + var inherits = require('inherits') + function Decipher(mode, key, iv) { + Transform.call(this) + this._cache = new Splitter() + this._last = void 0 + this._cipher = new aes.AES(key) + this._prev = Buffer.from(iv) + this._mode = mode + this._autopadding = true + } + inherits(Decipher, Transform) + Decipher.prototype._update = function (data) { + this._cache.add(data) + var chunk + var thing + var out = [] + while ((chunk = this._cache.get(this._autopadding))) { + thing = this._mode.decrypt(this, chunk) + out.push(thing) + } + return Buffer.concat(out) + } + Decipher.prototype._final = function () { + var chunk = this._cache.flush() + if (this._autopadding) { + return unpad(this._mode.decrypt(this, chunk)) + } else if (chunk) { + throw new Error('data not multiple of block length') + } + } + Decipher.prototype.setAutoPadding = function (setTo) { + this._autopadding = !!setTo + return this + } + function Splitter() { + this.cache = Buffer.allocUnsafe(0) + } + Splitter.prototype.add = function (data) { + this.cache = Buffer.concat([this.cache, data]) + } + Splitter.prototype.get = function (autoPadding) { + var out + if (autoPadding) { + if (this.cache.length > 16) { + out = this.cache.slice(0, 16) + this.cache = this.cache.slice(16) + return out + } + } else { + if (this.cache.length >= 16) { + out = this.cache.slice(0, 16) + this.cache = this.cache.slice(16) + return out + } + } + return null + } + Splitter.prototype.flush = function () { + if (this.cache.length) return this.cache + } + function unpad(last) { + var padded = last[15] + if (padded < 1 || padded > 16) { + throw new Error('unable to decrypt data') + } + var i = -1 + while (++i < padded) { + if (last[i + (16 - padded)] !== padded) { + throw new Error('unable to decrypt data') + } + } + if (padded === 16) return + return last.slice(0, 16 - padded) + } + function createDecipheriv(suite, password, iv) { + var config = MODES[suite.toLowerCase()] + if (!config) throw new TypeError('invalid suite type') + if (typeof iv === 'string') iv = Buffer.from(iv) + if (config.mode !== 'GCM' && iv.length !== config.iv) + throw new TypeError('invalid iv length ' + iv.length) + if (typeof password === 'string') password = Buffer.from(password) + if (password.length !== config.key / 8) + throw new TypeError('invalid key length ' + password.length) + if (config.type === 'stream') { + return new StreamCipher(config.module, password, iv, true) + } else if (config.type === 'auth') { + return new AuthCipher(config.module, password, iv, true) + } + return new Decipher(config.module, password, iv) + } + function createDecipher(suite, password) { + var config = MODES[suite.toLowerCase()] + if (!config) throw new TypeError('invalid suite type') + var keys = ebtk(password, false, config.key, config.iv) + return createDecipheriv(suite, keys.key, keys.iv) + } + exports.createDecipher = createDecipher + exports.createDecipheriv = createDecipheriv + }, + { + './aes': 50, + './authCipher': 51, + './modes': 63, + './streamCipher': 66, + 'cipher-base': 98, + evp_bytestokey: 135, + inherits: 151, + 'safe-buffer': 183 + } + ], + 54: [ + function (require, module, exports) { + var MODES = require('./modes') + var AuthCipher = require('./authCipher') + var Buffer = require('safe-buffer').Buffer + var StreamCipher = require('./streamCipher') + var Transform = require('cipher-base') + var aes = require('./aes') + var ebtk = require('evp_bytestokey') + var inherits = require('inherits') + function Cipher(mode, key, iv) { + Transform.call(this) + this._cache = new Splitter() + this._cipher = new aes.AES(key) + this._prev = Buffer.from(iv) + this._mode = mode + this._autopadding = true + } + inherits(Cipher, Transform) + Cipher.prototype._update = function (data) { + this._cache.add(data) + var chunk + var thing + var out = [] + while ((chunk = this._cache.get())) { + thing = this._mode.encrypt(this, chunk) + out.push(thing) + } + return Buffer.concat(out) + } + var PADDING = Buffer.alloc(16, 16) + Cipher.prototype._final = function () { + var chunk = this._cache.flush() + if (this._autopadding) { + chunk = this._mode.encrypt(this, chunk) + this._cipher.scrub() + return chunk + } + if (!chunk.equals(PADDING)) { + this._cipher.scrub() + throw new Error('data not multiple of block length') + } + } + Cipher.prototype.setAutoPadding = function (setTo) { + this._autopadding = !!setTo + return this + } + function Splitter() { + this.cache = Buffer.allocUnsafe(0) + } + Splitter.prototype.add = function (data) { + this.cache = Buffer.concat([this.cache, data]) + } + Splitter.prototype.get = function () { + if (this.cache.length > 15) { + var out = this.cache.slice(0, 16) + this.cache = this.cache.slice(16) + return out + } + return null + } + Splitter.prototype.flush = function () { + var len = 16 - this.cache.length + var padBuff = Buffer.allocUnsafe(len) + var i = -1 + while (++i < len) { + padBuff.writeUInt8(len, i) + } + return Buffer.concat([this.cache, padBuff]) + } + function createCipheriv(suite, password, iv) { + var config = MODES[suite.toLowerCase()] + if (!config) throw new TypeError('invalid suite type') + if (typeof password === 'string') password = Buffer.from(password) + if (password.length !== config.key / 8) + throw new TypeError('invalid key length ' + password.length) + if (typeof iv === 'string') iv = Buffer.from(iv) + if (config.mode !== 'GCM' && iv.length !== config.iv) + throw new TypeError('invalid iv length ' + iv.length) + if (config.type === 'stream') { + return new StreamCipher(config.module, password, iv) + } else if (config.type === 'auth') { + return new AuthCipher(config.module, password, iv) + } + return new Cipher(config.module, password, iv) + } + function createCipher(suite, password) { + var config = MODES[suite.toLowerCase()] + if (!config) throw new TypeError('invalid suite type') + var keys = ebtk(password, false, config.key, config.iv) + return createCipheriv(suite, keys.key, keys.iv) + } + exports.createCipheriv = createCipheriv + exports.createCipher = createCipher + }, + { + './aes': 50, + './authCipher': 51, + './modes': 63, + './streamCipher': 66, + 'cipher-base': 98, + evp_bytestokey: 135, + inherits: 151, + 'safe-buffer': 183 + } + ], + 55: [ + function (require, module, exports) { + var Buffer = require('safe-buffer').Buffer + var ZEROES = Buffer.alloc(16, 0) + function toArray(buf) { + return [ + buf.readUInt32BE(0), + buf.readUInt32BE(4), + buf.readUInt32BE(8), + buf.readUInt32BE(12) + ] + } + function fromArray(out) { + var buf = Buffer.allocUnsafe(16) + buf.writeUInt32BE(out[0] >>> 0, 0) + buf.writeUInt32BE(out[1] >>> 0, 4) + buf.writeUInt32BE(out[2] >>> 0, 8) + buf.writeUInt32BE(out[3] >>> 0, 12) + return buf + } + function GHASH(key) { + this.h = key + this.state = Buffer.alloc(16, 0) + this.cache = Buffer.allocUnsafe(0) + } + GHASH.prototype.ghash = function (block) { + var i = -1 + while (++i < block.length) { + this.state[i] ^= block[i] + } + this._multiply() + } + GHASH.prototype._multiply = function () { + var Vi = toArray(this.h) + var Zi = [0, 0, 0, 0] + var j, xi, lsbVi + var i = -1 + while (++i < 128) { + xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0 + if (xi) { + Zi[0] ^= Vi[0] + Zi[1] ^= Vi[1] + Zi[2] ^= Vi[2] + Zi[3] ^= Vi[3] + } + lsbVi = (Vi[3] & 1) !== 0 + for (j = 3; j > 0; j--) { + Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31) + } + Vi[0] = Vi[0] >>> 1 + if (lsbVi) { + Vi[0] = Vi[0] ^ (225 << 24) + } + } + this.state = fromArray(Zi) + } + GHASH.prototype.update = function (buf) { + this.cache = Buffer.concat([this.cache, buf]) + var chunk + while (this.cache.length >= 16) { + chunk = this.cache.slice(0, 16) + this.cache = this.cache.slice(16) + this.ghash(chunk) + } + } + GHASH.prototype.final = function (abl, bl) { + if (this.cache.length) { + this.ghash(Buffer.concat([this.cache, ZEROES], 16)) + } + this.ghash(fromArray([0, abl, 0, bl])) + return this.state + } + module.exports = GHASH + }, + { 'safe-buffer': 183 } + ], + 56: [ + function (require, module, exports) { + function incr32(iv) { + var len = iv.length + var item + while (len--) { + item = iv.readUInt8(len) + if (item === 255) { + iv.writeUInt8(0, len) + } else { + item++ + iv.writeUInt8(item, len) + break + } + } + } + module.exports = incr32 + }, + {} + ], + 57: [ + function (require, module, exports) { + var xor = require('buffer-xor') + exports.encrypt = function (self, block) { + var data = xor(block, self._prev) + self._prev = self._cipher.encryptBlock(data) + return self._prev + } + exports.decrypt = function (self, block) { + var pad = self._prev + self._prev = block + var out = self._cipher.decryptBlock(block) + return xor(out, pad) + } + }, + { 'buffer-xor': 97 } + ], + 58: [ + function (require, module, exports) { + var Buffer = require('safe-buffer').Buffer + var xor = require('buffer-xor') + function encryptStart(self, data, decrypt) { + var len = data.length + var out = xor(data, self._cache) + self._cache = self._cache.slice(len) + self._prev = Buffer.concat([self._prev, decrypt ? data : out]) + return out + } + exports.encrypt = function (self, data, decrypt) { + var out = Buffer.allocUnsafe(0) + var len + while (data.length) { + if (self._cache.length === 0) { + self._cache = self._cipher.encryptBlock(self._prev) + self._prev = Buffer.allocUnsafe(0) + } + if (self._cache.length <= data.length) { + len = self._cache.length + out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)]) + data = data.slice(len) + } else { + out = Buffer.concat([out, encryptStart(self, data, decrypt)]) + break + } + } + return out + } + }, + { 'buffer-xor': 97, 'safe-buffer': 183 } + ], + 59: [ + function (require, module, exports) { + var Buffer = require('safe-buffer').Buffer + function encryptByte(self, byteParam, decrypt) { + var pad + var i = -1 + var len = 8 + var out = 0 + var bit, value + while (++i < len) { + pad = self._cipher.encryptBlock(self._prev) + bit = byteParam & (1 << (7 - i)) ? 128 : 0 + value = pad[0] ^ bit + out += (value & 128) >> i % 8 + self._prev = shiftIn(self._prev, decrypt ? bit : value) + } + return out + } + function shiftIn(buffer, value) { + var len = buffer.length + var i = -1 + var out = Buffer.allocUnsafe(buffer.length) + buffer = Buffer.concat([buffer, Buffer.from([value])]) + while (++i < len) { + out[i] = (buffer[i] << 1) | (buffer[i + 1] >> 7) + } + return out + } + exports.encrypt = function (self, chunk, decrypt) { + var len = chunk.length + var out = Buffer.allocUnsafe(len) + var i = -1 + while (++i < len) { + out[i] = encryptByte(self, chunk[i], decrypt) + } + return out + } + }, + { 'safe-buffer': 183 } + ], + 60: [ + function (require, module, exports) { + var Buffer = require('safe-buffer').Buffer + function encryptByte(self, byteParam, decrypt) { + var pad = self._cipher.encryptBlock(self._prev) + var out = pad[0] ^ byteParam + self._prev = Buffer.concat([ + self._prev.slice(1), + Buffer.from([decrypt ? byteParam : out]) + ]) + return out + } + exports.encrypt = function (self, chunk, decrypt) { + var len = chunk.length + var out = Buffer.allocUnsafe(len) + var i = -1 + while (++i < len) { + out[i] = encryptByte(self, chunk[i], decrypt) + } + return out + } + }, + { 'safe-buffer': 183 } + ], + 61: [ + function (require, module, exports) { + var xor = require('buffer-xor') + var Buffer = require('safe-buffer').Buffer + var incr32 = require('../incr32') + function getBlock(self) { + var out = self._cipher.encryptBlockRaw(self._prev) + incr32(self._prev) + return out + } + var blockSize = 16 + exports.encrypt = function (self, chunk) { + var chunkNum = Math.ceil(chunk.length / blockSize) + var start = self._cache.length + self._cache = Buffer.concat([self._cache, Buffer.allocUnsafe(chunkNum * blockSize)]) + for (var i = 0; i < chunkNum; i++) { + var out = getBlock(self) + var offset = start + i * blockSize + self._cache.writeUInt32BE(out[0], offset + 0) + self._cache.writeUInt32BE(out[1], offset + 4) + self._cache.writeUInt32BE(out[2], offset + 8) + self._cache.writeUInt32BE(out[3], offset + 12) + } + var pad = self._cache.slice(0, chunk.length) + self._cache = self._cache.slice(chunk.length) + return xor(chunk, pad) + } + }, + { '../incr32': 56, 'buffer-xor': 97, 'safe-buffer': 183 } + ], + 62: [ + function (require, module, exports) { + exports.encrypt = function (self, block) { + return self._cipher.encryptBlock(block) + } + exports.decrypt = function (self, block) { + return self._cipher.decryptBlock(block) + } + }, + {} + ], + 63: [ + function (require, module, exports) { + var modeModules = { + ECB: require('./ecb'), + CBC: require('./cbc'), + CFB: require('./cfb'), + CFB8: require('./cfb8'), + CFB1: require('./cfb1'), + OFB: require('./ofb'), + CTR: require('./ctr'), + GCM: require('./ctr') + } + var modes = require('./list.json') + for (var key in modes) { + modes[key].module = modeModules[modes[key].mode] + } + module.exports = modes + }, + { + './cbc': 57, + './cfb': 58, + './cfb1': 59, + './cfb8': 60, + './ctr': 61, + './ecb': 62, + './list.json': 64, + './ofb': 65 + } + ], + 64: [ + function (require, module, exports) { + module.exports = { + 'aes-128-ecb': { cipher: 'AES', key: 128, iv: 0, mode: 'ECB', type: 'block' }, + 'aes-192-ecb': { cipher: 'AES', key: 192, iv: 0, mode: 'ECB', type: 'block' }, + 'aes-256-ecb': { cipher: 'AES', key: 256, iv: 0, mode: 'ECB', type: 'block' }, + 'aes-128-cbc': { cipher: 'AES', key: 128, iv: 16, mode: 'CBC', type: 'block' }, + 'aes-192-cbc': { cipher: 'AES', key: 192, iv: 16, mode: 'CBC', type: 'block' }, + 'aes-256-cbc': { cipher: 'AES', key: 256, iv: 16, mode: 'CBC', type: 'block' }, + aes128: { cipher: 'AES', key: 128, iv: 16, mode: 'CBC', type: 'block' }, + aes192: { cipher: 'AES', key: 192, iv: 16, mode: 'CBC', type: 'block' }, + aes256: { cipher: 'AES', key: 256, iv: 16, mode: 'CBC', type: 'block' }, + 'aes-128-cfb': { cipher: 'AES', key: 128, iv: 16, mode: 'CFB', type: 'stream' }, + 'aes-192-cfb': { cipher: 'AES', key: 192, iv: 16, mode: 'CFB', type: 'stream' }, + 'aes-256-cfb': { cipher: 'AES', key: 256, iv: 16, mode: 'CFB', type: 'stream' }, + 'aes-128-cfb8': { cipher: 'AES', key: 128, iv: 16, mode: 'CFB8', type: 'stream' }, + 'aes-192-cfb8': { cipher: 'AES', key: 192, iv: 16, mode: 'CFB8', type: 'stream' }, + 'aes-256-cfb8': { cipher: 'AES', key: 256, iv: 16, mode: 'CFB8', type: 'stream' }, + 'aes-128-cfb1': { cipher: 'AES', key: 128, iv: 16, mode: 'CFB1', type: 'stream' }, + 'aes-192-cfb1': { cipher: 'AES', key: 192, iv: 16, mode: 'CFB1', type: 'stream' }, + 'aes-256-cfb1': { cipher: 'AES', key: 256, iv: 16, mode: 'CFB1', type: 'stream' }, + 'aes-128-ofb': { cipher: 'AES', key: 128, iv: 16, mode: 'OFB', type: 'stream' }, + 'aes-192-ofb': { cipher: 'AES', key: 192, iv: 16, mode: 'OFB', type: 'stream' }, + 'aes-256-ofb': { cipher: 'AES', key: 256, iv: 16, mode: 'OFB', type: 'stream' }, + 'aes-128-ctr': { cipher: 'AES', key: 128, iv: 16, mode: 'CTR', type: 'stream' }, + 'aes-192-ctr': { cipher: 'AES', key: 192, iv: 16, mode: 'CTR', type: 'stream' }, + 'aes-256-ctr': { cipher: 'AES', key: 256, iv: 16, mode: 'CTR', type: 'stream' }, + 'aes-128-gcm': { cipher: 'AES', key: 128, iv: 12, mode: 'GCM', type: 'auth' }, + 'aes-192-gcm': { cipher: 'AES', key: 192, iv: 12, mode: 'GCM', type: 'auth' }, + 'aes-256-gcm': { cipher: 'AES', key: 256, iv: 12, mode: 'GCM', type: 'auth' } + } + }, + {} + ], + 65: [ + function (require, module, exports) { + ;(function (Buffer) { + ;(function () { + var xor = require('buffer-xor') + function getBlock(self) { + self._prev = self._cipher.encryptBlock(self._prev) + return self._prev + } + exports.encrypt = function (self, chunk) { + while (self._cache.length < chunk.length) { + self._cache = Buffer.concat([self._cache, getBlock(self)]) + } + var pad = self._cache.slice(0, chunk.length) + self._cache = self._cache.slice(chunk.length) + return xor(chunk, pad) + } + }.call(this)) + }.call(this, require('buffer').Buffer)) + }, + { buffer: 93, 'buffer-xor': 97 } + ], + 66: [ + function (require, module, exports) { + var aes = require('./aes') + var Buffer = require('safe-buffer').Buffer + var Transform = require('cipher-base') + var inherits = require('inherits') + function StreamCipher(mode, key, iv, decrypt) { + Transform.call(this) + this._cipher = new aes.AES(key) + this._prev = Buffer.from(iv) + this._cache = Buffer.allocUnsafe(0) + this._secCache = Buffer.allocUnsafe(0) + this._decrypt = decrypt + this._mode = mode + } + inherits(StreamCipher, Transform) + StreamCipher.prototype._update = function (chunk) { + return this._mode.encrypt(this, chunk, this._decrypt) + } + StreamCipher.prototype._final = function () { + this._cipher.scrub() + } + module.exports = StreamCipher + }, + { './aes': 50, 'cipher-base': 98, inherits: 151, 'safe-buffer': 183 } + ], + 67: [ + function (require, module, exports) { + var DES = require('browserify-des') + var aes = require('browserify-aes/browser') + var aesModes = require('browserify-aes/modes') + var desModes = require('browserify-des/modes') + var ebtk = require('evp_bytestokey') + function createCipher(suite, password) { + suite = suite.toLowerCase() + var keyLen, ivLen + if (aesModes[suite]) { + keyLen = aesModes[suite].key + ivLen = aesModes[suite].iv + } else if (desModes[suite]) { + keyLen = desModes[suite].key * 8 + ivLen = desModes[suite].iv + } else { + throw new TypeError('invalid suite type') + } + var keys = ebtk(password, false, keyLen, ivLen) + return createCipheriv(suite, keys.key, keys.iv) + } + function createDecipher(suite, password) { + suite = suite.toLowerCase() + var keyLen, ivLen + if (aesModes[suite]) { + keyLen = aesModes[suite].key + ivLen = aesModes[suite].iv + } else if (desModes[suite]) { + keyLen = desModes[suite].key * 8 + ivLen = desModes[suite].iv + } else { + throw new TypeError('invalid suite type') + } + var keys = ebtk(password, false, keyLen, ivLen) + return createDecipheriv(suite, keys.key, keys.iv) + } + function createCipheriv(suite, key, iv) { + suite = suite.toLowerCase() + if (aesModes[suite]) return aes.createCipheriv(suite, key, iv) + if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite }) + throw new TypeError('invalid suite type') + } + function createDecipheriv(suite, key, iv) { + suite = suite.toLowerCase() + if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv) + if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true }) + throw new TypeError('invalid suite type') + } + function getCiphers() { + return Object.keys(desModes).concat(aes.getCiphers()) + } + exports.createCipher = exports.Cipher = createCipher + exports.createCipheriv = exports.Cipheriv = createCipheriv + exports.createDecipher = exports.Decipher = createDecipher + exports.createDecipheriv = exports.Decipheriv = createDecipheriv + exports.listCiphers = exports.getCiphers = getCiphers + }, + { + 'browserify-aes/browser': 52, + 'browserify-aes/modes': 63, + 'browserify-des': 68, + 'browserify-des/modes': 69, + evp_bytestokey: 135 + } + ], + 68: [ + function (require, module, exports) { + var CipherBase = require('cipher-base') + var des = require('des.js') + var inherits = require('inherits') + var Buffer = require('safe-buffer').Buffer + var modes = { + 'des-ede3-cbc': des.CBC.instantiate(des.EDE), + 'des-ede3': des.EDE, + 'des-ede-cbc': des.CBC.instantiate(des.EDE), + 'des-ede': des.EDE, + 'des-cbc': des.CBC.instantiate(des.DES), + 'des-ecb': des.DES + } + modes.des = modes['des-cbc'] + modes.des3 = modes['des-ede3-cbc'] + module.exports = DES + inherits(DES, CipherBase) + function DES(opts) { + CipherBase.call(this) + var modeName = opts.mode.toLowerCase() + var mode = modes[modeName] + var type + if (opts.decrypt) { + type = 'decrypt' + } else { + type = 'encrypt' + } + var key = opts.key + if (!Buffer.isBuffer(key)) { + key = Buffer.from(key) + } + if (modeName === 'des-ede' || modeName === 'des-ede-cbc') { + key = Buffer.concat([key, key.slice(0, 8)]) + } + var iv = opts.iv + if (!Buffer.isBuffer(iv)) { + iv = Buffer.from(iv) + } + this._des = mode.create({ key: key, iv: iv, type: type }) + } + DES.prototype._update = function (data) { + return Buffer.from(this._des.update(data)) + } + DES.prototype._final = function () { + return Buffer.from(this._des.final()) + } + }, + { 'cipher-base': 98, 'des.js': 106, inherits: 151, 'safe-buffer': 183 } + ], + 69: [ + function (require, module, exports) { + exports['des-ecb'] = { key: 8, iv: 0 } + exports['des-cbc'] = exports.des = { key: 8, iv: 8 } + exports['des-ede3-cbc'] = exports.des3 = { key: 24, iv: 8 } + exports['des-ede3'] = { key: 24, iv: 0 } + exports['des-ede-cbc'] = { key: 16, iv: 8 } + exports['des-ede'] = { key: 16, iv: 0 } + }, + {} + ], + 70: [ + function (require, module, exports) { + ;(function (Buffer) { + ;(function () { + var bn = require('bn.js') + var randomBytes = require('randombytes') + module.exports = crt + function blind(priv) { + var r = getr(priv) + var blinder = r + .toRed(bn.mont(priv.modulus)) + .redPow(new bn(priv.publicExponent)) + .fromRed() + return { blinder: blinder, unblinder: r.invm(priv.modulus) } + } + function crt(msg, priv) { + var blinds = blind(priv) + var len = priv.modulus.byteLength() + var mod = bn.mont(priv.modulus) + var blinded = new bn(msg).mul(blinds.blinder).umod(priv.modulus) + var c1 = blinded.toRed(bn.mont(priv.prime1)) + var c2 = blinded.toRed(bn.mont(priv.prime2)) + var qinv = priv.coefficient + var p = priv.prime1 + var q = priv.prime2 + var m1 = c1.redPow(priv.exponent1) + var m2 = c2.redPow(priv.exponent2) + m1 = m1.fromRed() + m2 = m2.fromRed() + var h = m1.isub(m2).imul(qinv).umod(p) + h.imul(q) + m2.iadd(h) + return new Buffer(m2.imul(blinds.unblinder).umod(priv.modulus).toArray(false, len)) + } + crt.getr = getr + function getr(priv) { + var len = priv.modulus.byteLength() + var r = new bn(randomBytes(len)) + while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2)) { + r = new bn(randomBytes(len)) + } + return r + } + }.call(this)) + }.call(this, require('buffer').Buffer)) + }, + { 'bn.js': 71, buffer: 93, randombytes: 180 } + ], + 71: [ + function (require, module, exports) { + arguments[4][15][0].apply(exports, arguments) + }, + { buffer: 49, dup: 15 } + ], + 72: [ + function (require, module, exports) { + module.exports = require('./browser/algorithms.json') + }, + { './browser/algorithms.json': 73 } + ], + 73: [ + function (require, module, exports) { + module.exports = { + sha224WithRSAEncryption: { + sign: 'rsa', + hash: 'sha224', + id: '302d300d06096086480165030402040500041c' + }, + 'RSA-SHA224': { + sign: 'ecdsa/rsa', + hash: 'sha224', + id: '302d300d06096086480165030402040500041c' + }, + sha256WithRSAEncryption: { + sign: 'rsa', + hash: 'sha256', + id: '3031300d060960864801650304020105000420' + }, + 'RSA-SHA256': { + sign: 'ecdsa/rsa', + hash: 'sha256', + id: '3031300d060960864801650304020105000420' + }, + sha384WithRSAEncryption: { + sign: 'rsa', + hash: 'sha384', + id: '3041300d060960864801650304020205000430' + }, + 'RSA-SHA384': { + sign: 'ecdsa/rsa', + hash: 'sha384', + id: '3041300d060960864801650304020205000430' + }, + sha512WithRSAEncryption: { + sign: 'rsa', + hash: 'sha512', + id: '3051300d060960864801650304020305000440' + }, + 'RSA-SHA512': { + sign: 'ecdsa/rsa', + hash: 'sha512', + id: '3051300d060960864801650304020305000440' + }, + 'RSA-SHA1': { sign: 'rsa', hash: 'sha1', id: '3021300906052b0e03021a05000414' }, + 'ecdsa-with-SHA1': { sign: 'ecdsa', hash: 'sha1', id: '' }, + sha256: { sign: 'ecdsa', hash: 'sha256', id: '' }, + sha224: { sign: 'ecdsa', hash: 'sha224', id: '' }, + sha384: { sign: 'ecdsa', hash: 'sha384', id: '' }, + sha512: { sign: 'ecdsa', hash: 'sha512', id: '' }, + 'DSA-SHA': { sign: 'dsa', hash: 'sha1', id: '' }, + 'DSA-SHA1': { sign: 'dsa', hash: 'sha1', id: '' }, + DSA: { sign: 'dsa', hash: 'sha1', id: '' }, + 'DSA-WITH-SHA224': { sign: 'dsa', hash: 'sha224', id: '' }, + 'DSA-SHA224': { sign: 'dsa', hash: 'sha224', id: '' }, + 'DSA-WITH-SHA256': { sign: 'dsa', hash: 'sha256', id: '' }, + 'DSA-SHA256': { sign: 'dsa', hash: 'sha256', id: '' }, + 'DSA-WITH-SHA384': { sign: 'dsa', hash: 'sha384', id: '' }, + 'DSA-SHA384': { sign: 'dsa', hash: 'sha384', id: '' }, + 'DSA-WITH-SHA512': { sign: 'dsa', hash: 'sha512', id: '' }, + 'DSA-SHA512': { sign: 'dsa', hash: 'sha512', id: '' }, + 'DSA-RIPEMD160': { sign: 'dsa', hash: 'rmd160', id: '' }, + ripemd160WithRSA: { sign: 'rsa', hash: 'rmd160', id: '3021300906052b2403020105000414' }, + 'RSA-RIPEMD160': { sign: 'rsa', hash: 'rmd160', id: '3021300906052b2403020105000414' }, + md5WithRSAEncryption: { + sign: 'rsa', + hash: 'md5', + id: '3020300c06082a864886f70d020505000410' + }, + 'RSA-MD5': { sign: 'rsa', hash: 'md5', id: '3020300c06082a864886f70d020505000410' } + } + }, + {} + ], + 74: [ + function (require, module, exports) { + module.exports = { + '1.3.132.0.10': 'secp256k1', + '1.3.132.0.33': 'p224', + '1.2.840.10045.3.1.1': 'p192', + '1.2.840.10045.3.1.7': 'p256', + '1.3.132.0.34': 'p384', + '1.3.132.0.35': 'p521' + } + }, + {} + ], + 75: [ + function (require, module, exports) { + var Buffer = require('buffer').Buffer + var createHash = require('create-hash') + var stream = require('readable-stream') + var inherits = require('inherits') + var sign = require('./sign') + var verify = require('./verify') + var algorithms = require('./algorithms.json') + Object.keys(algorithms).forEach(function (key) { + algorithms[key].id = Buffer.from(algorithms[key].id, 'hex') + algorithms[key.toLowerCase()] = algorithms[key] + }) + function Sign(algorithm) { + stream.Writable.call(this) + var data = algorithms[algorithm] + if (!data) throw new Error('Unknown message digest') + this._hashType = data.hash + this._hash = createHash(data.hash) + this._tag = data.id + this._signType = data.sign + } + inherits(Sign, stream.Writable) + Sign.prototype._write = function _write(data, _, done) { + this._hash.update(data) + done() + } + Sign.prototype.update = function update(data, enc) { + if (typeof data === 'string') data = Buffer.from(data, enc) + this._hash.update(data) + return this + } + Sign.prototype.sign = function signMethod(key, enc) { + this.end() + var hash = this._hash.digest() + var sig = sign(hash, key, this._hashType, this._signType, this._tag) + return enc ? sig.toString(enc) : sig + } + function Verify(algorithm) { + stream.Writable.call(this) + var data = algorithms[algorithm] + if (!data) throw new Error('Unknown message digest') + this._hash = createHash(data.hash) + this._tag = data.id + this._signType = data.sign + } + inherits(Verify, stream.Writable) + Verify.prototype._write = function _write(data, _, done) { + this._hash.update(data) + done() + } + Verify.prototype.update = function update(data, enc) { + if (typeof data === 'string') data = Buffer.from(data, enc) + this._hash.update(data) + return this + } + Verify.prototype.verify = function verifyMethod(key, sig, enc) { + if (typeof sig === 'string') sig = Buffer.from(sig, enc) + this.end() + var hash = this._hash.digest() + return verify(sig, hash, key, this._signType, this._tag) + } + function createSign(algorithm) { + return new Sign(algorithm) + } + function createVerify(algorithm) { + return new Verify(algorithm) + } + module.exports = { + Sign: createSign, + Verify: createVerify, + createSign: createSign, + createVerify: createVerify + } + }, + { + './algorithms.json': 73, + './sign': 76, + './verify': 77, + buffer: 93, + 'create-hash': 101, + inherits: 151, + 'readable-stream': 92 + } + ], + 76: [ + function (require, module, exports) { + var Buffer = require('buffer').Buffer + var createHmac = require('create-hmac') + var crt = require('browserify-rsa') + var EC = require('elliptic').ec + var BN = require('bn.js') + var parseKeys = require('parse-asn1') + var curves = require('./curves.json') + function sign(hash, key, hashType, signType, tag) { + var priv = parseKeys(key) + if (priv.curve) { + if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') + throw new Error('wrong private key type') + return ecSign(hash, priv) + } else if (priv.type === 'dsa') { + if (signType !== 'dsa') throw new Error('wrong private key type') + return dsaSign(hash, priv, hashType) + } else { + if (signType !== 'rsa' && signType !== 'ecdsa/rsa') + throw new Error('wrong private key type') + } + hash = Buffer.concat([tag, hash]) + var len = priv.modulus.byteLength() + var pad = [0, 1] + while (hash.length + pad.length + 1 < len) pad.push(255) + pad.push(0) + var i = -1 + while (++i < hash.length) pad.push(hash[i]) + var out = crt(pad, priv) + return out + } + function ecSign(hash, priv) { + var curveId = curves[priv.curve.join('.')] + if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.')) + var curve = new EC(curveId) + var key = curve.keyFromPrivate(priv.privateKey) + var out = key.sign(hash) + return Buffer.from(out.toDER()) + } + function dsaSign(hash, priv, algo) { + var x = priv.params.priv_key + var p = priv.params.p + var q = priv.params.q + var g = priv.params.g + var r = new BN(0) + var k + var H = bits2int(hash, q).mod(q) + var s = false + var kv = getKey(x, q, hash, algo) + while (s === false) { + k = makeKey(q, kv, algo) + r = makeR(g, k, p, q) + s = k + .invm(q) + .imul(H.add(x.mul(r))) + .mod(q) + if (s.cmpn(0) === 0) { + s = false + r = new BN(0) + } + } + return toDER(r, s) + } + function toDER(r, s) { + r = r.toArray() + s = s.toArray() + if (r[0] & 128) r = [0].concat(r) + if (s[0] & 128) s = [0].concat(s) + var total = r.length + s.length + 4 + var res = [48, total, 2, r.length] + res = res.concat(r, [2, s.length], s) + return Buffer.from(res) + } + function getKey(x, q, hash, algo) { + x = Buffer.from(x.toArray()) + if (x.length < q.byteLength()) { + var zeros = Buffer.alloc(q.byteLength() - x.length) + x = Buffer.concat([zeros, x]) + } + var hlen = hash.length + var hbits = bits2octets(hash, q) + var v = Buffer.alloc(hlen) + v.fill(1) + var k = Buffer.alloc(hlen) + k = createHmac(algo, k) + .update(v) + .update(Buffer.from([0])) + .update(x) + .update(hbits) + .digest() + v = createHmac(algo, k).update(v).digest() + k = createHmac(algo, k) + .update(v) + .update(Buffer.from([1])) + .update(x) + .update(hbits) + .digest() + v = createHmac(algo, k).update(v).digest() + return { k: k, v: v } + } + function bits2int(obits, q) { + var bits = new BN(obits) + var shift = (obits.length << 3) - q.bitLength() + if (shift > 0) bits.ishrn(shift) + return bits + } + function bits2octets(bits, q) { + bits = bits2int(bits, q) + bits = bits.mod(q) + var out = Buffer.from(bits.toArray()) + if (out.length < q.byteLength()) { + var zeros = Buffer.alloc(q.byteLength() - out.length) + out = Buffer.concat([zeros, out]) + } + return out + } + function makeKey(q, kv, algo) { + var t + var k + do { + t = Buffer.alloc(0) + while (t.length * 8 < q.bitLength()) { + kv.v = createHmac(algo, kv.k).update(kv.v).digest() + t = Buffer.concat([t, kv.v]) + } + k = bits2int(t, q) + kv.k = createHmac(algo, kv.k) + .update(kv.v) + .update(Buffer.from([0])) + .digest() + kv.v = createHmac(algo, kv.k).update(kv.v).digest() + } while (k.cmp(q) !== -1) + return k + } + function makeR(g, k, p, q) { + return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q) + } + module.exports = sign + module.exports.getKey = getKey + module.exports.makeKey = makeKey + }, + { + './curves.json': 74, + 'bn.js': 47, + 'browserify-rsa': 70, + buffer: 93, + 'create-hmac': 103, + elliptic: 117, + 'parse-asn1': 164 + } + ], + 77: [ + function (require, module, exports) { + var Buffer = require('buffer').Buffer + var BN = require('bn.js') + var EC = require('elliptic').ec + var parseKeys = require('parse-asn1') + var curves = require('./curves.json') + function verify(sig, hash, key, signType, tag) { + var pub = parseKeys(key) + if (pub.type === 'ec') { + if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') + throw new Error('wrong public key type') + return ecVerify(sig, hash, pub) + } else if (pub.type === 'dsa') { + if (signType !== 'dsa') throw new Error('wrong public key type') + return dsaVerify(sig, hash, pub) + } else { + if (signType !== 'rsa' && signType !== 'ecdsa/rsa') + throw new Error('wrong public key type') + } + hash = Buffer.concat([tag, hash]) + var len = pub.modulus.byteLength() + var pad = [1] + var padNum = 0 + while (hash.length + pad.length + 2 < len) { + pad.push(255) + padNum++ + } + pad.push(0) + var i = -1 + while (++i < hash.length) { + pad.push(hash[i]) + } + pad = Buffer.from(pad) + var red = BN.mont(pub.modulus) + sig = new BN(sig).toRed(red) + sig = sig.redPow(new BN(pub.publicExponent)) + sig = Buffer.from(sig.fromRed().toArray()) + var out = padNum < 8 ? 1 : 0 + len = Math.min(sig.length, pad.length) + if (sig.length !== pad.length) out = 1 + i = -1 + while (++i < len) out |= sig[i] ^ pad[i] + return out === 0 + } + function ecVerify(sig, hash, pub) { + var curveId = curves[pub.data.algorithm.curve.join('.')] + if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.')) + var curve = new EC(curveId) + var pubkey = pub.data.subjectPrivateKey.data + return curve.verify(hash, sig, pubkey) + } + function dsaVerify(sig, hash, pub) { + var p = pub.data.p + var q = pub.data.q + var g = pub.data.g + var y = pub.data.pub_key + var unpacked = parseKeys.signature.decode(sig, 'der') + var s = unpacked.s + var r = unpacked.r + checkValue(s, q) + checkValue(r, q) + var montp = BN.mont(p) + var w = s.invm(q) + var v = g + .toRed(montp) + .redPow(new BN(hash).mul(w).mod(q)) + .fromRed() + .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed()) + .mod(p) + .mod(q) + return v.cmp(r) === 0 + } + function checkValue(b, q) { + if (b.cmpn(0) <= 0) throw new Error('invalid sig') + if (b.cmp(q) >= q) throw new Error('invalid sig') + } + module.exports = verify + }, + { './curves.json': 74, 'bn.js': 47, buffer: 93, elliptic: 117, 'parse-asn1': 164 } + ], + 78: [ + function (require, module, exports) { + 'use strict' + function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype) + subClass.prototype.constructor = subClass + subClass.__proto__ = superClass + } + var codes = {} + function createErrorType(code, message, Base) { + if (!Base) { + Base = Error + } + function getMessage(arg1, arg2, arg3) { + if (typeof message === 'string') { + return message + } else { + return message(arg1, arg2, arg3) + } + } + var NodeError = (function (_Base) { + _inheritsLoose(NodeError, _Base) + function NodeError(arg1, arg2, arg3) { + return _Base.call(this, getMessage(arg1, arg2, arg3)) || this + } + return NodeError + })(Base) + NodeError.prototype.name = Base.name + NodeError.prototype.code = code + codes[code] = NodeError + } + function oneOf(expected, thing) { + if (Array.isArray(expected)) { + var len = expected.length + expected = expected.map(function (i) { + return String(i) + }) + if (len > 2) { + return ( + 'one of ' + .concat(thing, ' ') + .concat(expected.slice(0, len - 1).join(', '), ', or ') + expected[len - 1] + ) + } else if (len === 2) { + return 'one of '.concat(thing, ' ').concat(expected[0], ' or ').concat(expected[1]) + } else { + return 'of '.concat(thing, ' ').concat(expected[0]) + } + } else { + return 'of '.concat(thing, ' ').concat(String(expected)) + } + } + function startsWith(str, search, pos) { + return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search + } + function endsWith(str, search, this_len) { + if (this_len === undefined || this_len > str.length) { + this_len = str.length + } + return str.substring(this_len - search.length, this_len) === search + } + function includes(str, search, start) { + if (typeof start !== 'number') { + start = 0 + } + if (start + search.length > str.length) { + return false + } else { + return str.indexOf(search, start) !== -1 + } + } + createErrorType( + 'ERR_INVALID_OPT_VALUE', + function (name, value) { + return 'The value "' + value + '" is invalid for option "' + name + '"' + }, + TypeError + ) + createErrorType( + 'ERR_INVALID_ARG_TYPE', + function (name, expected, actual) { + var determiner + if (typeof expected === 'string' && startsWith(expected, 'not ')) { + determiner = 'must not be' + expected = expected.replace(/^not /, '') + } else { + determiner = 'must be' + } + var msg + if (endsWith(name, ' argument')) { + msg = 'The ' + .concat(name, ' ') + .concat(determiner, ' ') + .concat(oneOf(expected, 'type')) + } else { + var type = includes(name, '.') ? 'property' : 'argument' + msg = 'The "' + .concat(name, '" ') + .concat(type, ' ') + .concat(determiner, ' ') + .concat(oneOf(expected, 'type')) + } + msg += '. Received type '.concat(typeof actual) + return msg + }, + TypeError + ) + createErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF') + createErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) { + return 'The ' + name + ' method is not implemented' + }) + createErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close') + createErrorType('ERR_STREAM_DESTROYED', function (name) { + return 'Cannot call ' + name + ' after a stream was destroyed' + }) + createErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times') + createErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable') + createErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end') + createErrorType( + 'ERR_STREAM_NULL_VALUES', + 'May not write null values to stream', + TypeError + ) + createErrorType( + 'ERR_UNKNOWN_ENCODING', + function (arg) { + return 'Unknown encoding: ' + arg + }, + TypeError + ) + createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event') + module.exports.codes = codes + }, + {} + ], + 79: [ + function (require, module, exports) { + ;(function (process) { + ;(function () { + 'use strict' + var objectKeys = + Object.keys || + function (obj) { + var keys = [] + for (var key in obj) { + keys.push(key) + } + return keys + } + module.exports = Duplex + var Readable = require('./_stream_readable') + var Writable = require('./_stream_writable') + require('inherits')(Duplex, Readable) + { + var keys = objectKeys(Writable.prototype) + for (var v = 0; v < keys.length; v++) { + var method = keys[v] + if (!Duplex.prototype[method]) + Duplex.prototype[method] = Writable.prototype[method] + } + } + function Duplex(options) { + if (!(this instanceof Duplex)) return new Duplex(options) + Readable.call(this, options) + Writable.call(this, options) + this.allowHalfOpen = true + if (options) { + if (options.readable === false) this.readable = false + if (options.writable === false) this.writable = false + if (options.allowHalfOpen === false) { + this.allowHalfOpen = false + this.once('end', onend) + } + } + } + Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { + enumerable: false, + get: function get() { + return this._writableState.highWaterMark + } + }) + Object.defineProperty(Duplex.prototype, 'writableBuffer', { + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer() + } + }) + Object.defineProperty(Duplex.prototype, 'writableLength', { + enumerable: false, + get: function get() { + return this._writableState.length + } + }) + function onend() { + if (this._writableState.ended) return + process.nextTick(onEndNT, this) + } + function onEndNT(self) { + self.end() + } + Object.defineProperty(Duplex.prototype, 'destroyed', { + enumerable: false, + get: function get() { + if (this._readableState === undefined || this._writableState === undefined) { + return false + } + return this._readableState.destroyed && this._writableState.destroyed + }, + set: function set(value) { + if (this._readableState === undefined || this._writableState === undefined) { + return + } + this._readableState.destroyed = value + this._writableState.destroyed = value + } + }) + }.call(this)) + }.call(this, require('_process'))) + }, + { './_stream_readable': 81, './_stream_writable': 83, _process: 171, inherits: 151 } + ], + 80: [ + function (require, module, exports) { + 'use strict' + module.exports = PassThrough + var Transform = require('./_stream_transform') + require('inherits')(PassThrough, Transform) + function PassThrough(options) { + if (!(this instanceof PassThrough)) return new PassThrough(options) + Transform.call(this, options) + } + PassThrough.prototype._transform = function (chunk, encoding, cb) { + cb(null, chunk) + } + }, + { './_stream_transform': 82, inherits: 151 } + ], + 81: [ + function (require, module, exports) { + ;(function (process, global) { + ;(function () { + 'use strict' + module.exports = Readable + var Duplex + Readable.ReadableState = ReadableState + var EE = require('events').EventEmitter + var EElistenerCount = function EElistenerCount(emitter, type) { + return emitter.listeners(type).length + } + var Stream = require('./internal/streams/stream') + var Buffer = require('buffer').Buffer + var OurUint8Array = global.Uint8Array || function () {} + function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk) + } + function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array + } + var debugUtil = require('util') + var debug + if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog('stream') + } else { + debug = function debug() {} + } + var BufferList = require('./internal/streams/buffer_list') + var destroyImpl = require('./internal/streams/destroy') + var _require = require('./internal/streams/state'), + getHighWaterMark = _require.getHighWaterMark + var _require$codes = require('../errors').codes, + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_STREAM_UNSHIFT_AFTER_END_EVENT = + _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT + var StringDecoder + var createReadableStreamAsyncIterator + var from + require('inherits')(Readable, Stream) + var errorOrDestroy = destroyImpl.errorOrDestroy + var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'] + function prependListener(emitter, event, fn) { + if (typeof emitter.prependListener === 'function') + return emitter.prependListener(event, fn) + if (!emitter._events || !emitter._events[event]) emitter.on(event, fn) + else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn) + else emitter._events[event] = [fn, emitter._events[event]] + } + function ReadableState(options, stream, isDuplex) { + Duplex = Duplex || require('./_stream_duplex') + options = options || {} + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex + this.objectMode = !!options.objectMode + if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode + this.highWaterMark = getHighWaterMark( + this, + options, + 'readableHighWaterMark', + isDuplex + ) + this.buffer = new BufferList() + this.length = 0 + this.pipes = null + this.pipesCount = 0 + this.flowing = null + this.ended = false + this.endEmitted = false + this.reading = false + this.sync = true + this.needReadable = false + this.emittedReadable = false + this.readableListening = false + this.resumeScheduled = false + this.paused = true + this.emitClose = options.emitClose !== false + this.autoDestroy = !!options.autoDestroy + this.destroyed = false + this.defaultEncoding = options.defaultEncoding || 'utf8' + this.awaitDrain = 0 + this.readingMore = false + this.decoder = null + this.encoding = null + if (options.encoding) { + if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder + this.decoder = new StringDecoder(options.encoding) + this.encoding = options.encoding + } + } + function Readable(options) { + Duplex = Duplex || require('./_stream_duplex') + if (!(this instanceof Readable)) return new Readable(options) + var isDuplex = this instanceof Duplex + this._readableState = new ReadableState(options, this, isDuplex) + this.readable = true + if (options) { + if (typeof options.read === 'function') this._read = options.read + if (typeof options.destroy === 'function') this._destroy = options.destroy + } + Stream.call(this) + } + Object.defineProperty(Readable.prototype, 'destroyed', { + enumerable: false, + get: function get() { + if (this._readableState === undefined) { + return false + } + return this._readableState.destroyed + }, + set: function set(value) { + if (!this._readableState) { + return + } + this._readableState.destroyed = value + } + }) + Readable.prototype.destroy = destroyImpl.destroy + Readable.prototype._undestroy = destroyImpl.undestroy + Readable.prototype._destroy = function (err, cb) { + cb(err) + } + Readable.prototype.push = function (chunk, encoding) { + var state = this._readableState + var skipChunkCheck + if (!state.objectMode) { + if (typeof chunk === 'string') { + encoding = encoding || state.defaultEncoding + if (encoding !== state.encoding) { + chunk = Buffer.from(chunk, encoding) + encoding = '' + } + skipChunkCheck = true + } + } else { + skipChunkCheck = true + } + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck) + } + Readable.prototype.unshift = function (chunk) { + return readableAddChunk(this, chunk, null, true, false) + } + function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { + debug('readableAddChunk', chunk) + var state = stream._readableState + if (chunk === null) { + state.reading = false + onEofChunk(stream, state) + } else { + var er + if (!skipChunkCheck) er = chunkInvalid(state, chunk) + if (er) { + errorOrDestroy(stream, er) + } else if (state.objectMode || (chunk && chunk.length > 0)) { + if ( + typeof chunk !== 'string' && + !state.objectMode && + Object.getPrototypeOf(chunk) !== Buffer.prototype + ) { + chunk = _uint8ArrayToBuffer(chunk) + } + if (addToFront) { + if (state.endEmitted) + errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT()) + else addChunk(stream, state, chunk, true) + } else if (state.ended) { + errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()) + } else if (state.destroyed) { + return false + } else { + state.reading = false + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk) + if (state.objectMode || chunk.length !== 0) + addChunk(stream, state, chunk, false) + else maybeReadMore(stream, state) + } else { + addChunk(stream, state, chunk, false) + } + } + } else if (!addToFront) { + state.reading = false + maybeReadMore(stream, state) + } + } + return !state.ended && (state.length < state.highWaterMark || state.length === 0) + } + function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + state.awaitDrain = 0 + stream.emit('data', chunk) + } else { + state.length += state.objectMode ? 1 : chunk.length + if (addToFront) state.buffer.unshift(chunk) + else state.buffer.push(chunk) + if (state.needReadable) emitReadable(stream) + } + maybeReadMore(stream, state) + } + function chunkInvalid(state, chunk) { + var er + if ( + !_isUint8Array(chunk) && + typeof chunk !== 'string' && + chunk !== undefined && + !state.objectMode + ) { + er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk) + } + return er + } + Readable.prototype.isPaused = function () { + return this._readableState.flowing === false + } + Readable.prototype.setEncoding = function (enc) { + if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder + var decoder = new StringDecoder(enc) + this._readableState.decoder = decoder + this._readableState.encoding = this._readableState.decoder.encoding + var p = this._readableState.buffer.head + var content = '' + while (p !== null) { + content += decoder.write(p.data) + p = p.next + } + this._readableState.buffer.clear() + if (content !== '') this._readableState.buffer.push(content) + this._readableState.length = content.length + return this + } + var MAX_HWM = 1073741824 + function computeNewHighWaterMark(n) { + if (n >= MAX_HWM) { + n = MAX_HWM + } else { + n-- + n |= n >>> 1 + n |= n >>> 2 + n |= n >>> 4 + n |= n >>> 8 + n |= n >>> 16 + n++ + } + return n + } + function howMuchToRead(n, state) { + if (n <= 0 || (state.length === 0 && state.ended)) return 0 + if (state.objectMode) return 1 + if (n !== n) { + if (state.flowing && state.length) return state.buffer.head.data.length + else return state.length + } + if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n) + if (n <= state.length) return n + if (!state.ended) { + state.needReadable = true + return 0 + } + return state.length + } + Readable.prototype.read = function (n) { + debug('read', n) + n = parseInt(n, 10) + var state = this._readableState + var nOrig = n + if (n !== 0) state.emittedReadable = false + if ( + n === 0 && + state.needReadable && + ((state.highWaterMark !== 0 + ? state.length >= state.highWaterMark + : state.length > 0) || + state.ended) + ) { + debug('read: emitReadable', state.length, state.ended) + if (state.length === 0 && state.ended) endReadable(this) + else emitReadable(this) + return null + } + n = howMuchToRead(n, state) + if (n === 0 && state.ended) { + if (state.length === 0) endReadable(this) + return null + } + var doRead = state.needReadable + debug('need readable', doRead) + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true + debug('length less than watermark', doRead) + } + if (state.ended || state.reading) { + doRead = false + debug('reading or ended', doRead) + } else if (doRead) { + debug('do read') + state.reading = true + state.sync = true + if (state.length === 0) state.needReadable = true + this._read(state.highWaterMark) + state.sync = false + if (!state.reading) n = howMuchToRead(nOrig, state) + } + var ret + if (n > 0) ret = fromList(n, state) + else ret = null + if (ret === null) { + state.needReadable = state.length <= state.highWaterMark + n = 0 + } else { + state.length -= n + state.awaitDrain = 0 + } + if (state.length === 0) { + if (!state.ended) state.needReadable = true + if (nOrig !== n && state.ended) endReadable(this) + } + if (ret !== null) this.emit('data', ret) + return ret + } + function onEofChunk(stream, state) { + debug('onEofChunk') + if (state.ended) return + if (state.decoder) { + var chunk = state.decoder.end() + if (chunk && chunk.length) { + state.buffer.push(chunk) + state.length += state.objectMode ? 1 : chunk.length + } + } + state.ended = true + if (state.sync) { + emitReadable(stream) + } else { + state.needReadable = false + if (!state.emittedReadable) { + state.emittedReadable = true + emitReadable_(stream) + } + } + } + function emitReadable(stream) { + var state = stream._readableState + debug('emitReadable', state.needReadable, state.emittedReadable) + state.needReadable = false + if (!state.emittedReadable) { + debug('emitReadable', state.flowing) + state.emittedReadable = true + process.nextTick(emitReadable_, stream) + } + } + function emitReadable_(stream) { + var state = stream._readableState + debug('emitReadable_', state.destroyed, state.length, state.ended) + if (!state.destroyed && (state.length || state.ended)) { + stream.emit('readable') + state.emittedReadable = false + } + state.needReadable = + !state.flowing && !state.ended && state.length <= state.highWaterMark + flow(stream) + } + function maybeReadMore(stream, state) { + if (!state.readingMore) { + state.readingMore = true + process.nextTick(maybeReadMore_, stream, state) + } + } + function maybeReadMore_(stream, state) { + while ( + !state.reading && + !state.ended && + (state.length < state.highWaterMark || (state.flowing && state.length === 0)) + ) { + var len = state.length + debug('maybeReadMore read 0') + stream.read(0) + if (len === state.length) break + } + state.readingMore = false + } + Readable.prototype._read = function (n) { + errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()')) + } + Readable.prototype.pipe = function (dest, pipeOpts) { + var src = this + var state = this._readableState + switch (state.pipesCount) { + case 0: + state.pipes = dest + break + case 1: + state.pipes = [state.pipes, dest] + break + default: + state.pipes.push(dest) + break + } + state.pipesCount += 1 + debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts) + var doEnd = + (!pipeOpts || pipeOpts.end !== false) && + dest !== process.stdout && + dest !== process.stderr + var endFn = doEnd ? onend : unpipe + if (state.endEmitted) process.nextTick(endFn) + else src.once('end', endFn) + dest.on('unpipe', onunpipe) + function onunpipe(readable, unpipeInfo) { + debug('onunpipe') + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true + cleanup() + } + } + } + function onend() { + debug('onend') + dest.end() + } + var ondrain = pipeOnDrain(src) + dest.on('drain', ondrain) + var cleanedUp = false + function cleanup() { + debug('cleanup') + dest.removeListener('close', onclose) + dest.removeListener('finish', onfinish) + dest.removeListener('drain', ondrain) + dest.removeListener('error', onerror) + dest.removeListener('unpipe', onunpipe) + src.removeListener('end', onend) + src.removeListener('end', unpipe) + src.removeListener('data', ondata) + cleanedUp = true + if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) + ondrain() + } + src.on('data', ondata) + function ondata(chunk) { + debug('ondata') + var ret = dest.write(chunk) + debug('dest.write', ret) + if (ret === false) { + if ( + ((state.pipesCount === 1 && state.pipes === dest) || + (state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1)) && + !cleanedUp + ) { + debug('false write response, pause', state.awaitDrain) + state.awaitDrain++ + } + src.pause() + } + } + function onerror(er) { + debug('onerror', er) + unpipe() + dest.removeListener('error', onerror) + if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er) + } + prependListener(dest, 'error', onerror) + function onclose() { + dest.removeListener('finish', onfinish) + unpipe() + } + dest.once('close', onclose) + function onfinish() { + debug('onfinish') + dest.removeListener('close', onclose) + unpipe() + } + dest.once('finish', onfinish) + function unpipe() { + debug('unpipe') + src.unpipe(dest) + } + dest.emit('pipe', src) + if (!state.flowing) { + debug('pipe resume') + src.resume() + } + return dest + } + function pipeOnDrain(src) { + return function pipeOnDrainFunctionResult() { + var state = src._readableState + debug('pipeOnDrain', state.awaitDrain) + if (state.awaitDrain) state.awaitDrain-- + if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { + state.flowing = true + flow(src) + } + } + } + Readable.prototype.unpipe = function (dest) { + var state = this._readableState + var unpipeInfo = { hasUnpiped: false } + if (state.pipesCount === 0) return this + if (state.pipesCount === 1) { + if (dest && dest !== state.pipes) return this + if (!dest) dest = state.pipes + state.pipes = null + state.pipesCount = 0 + state.flowing = false + if (dest) dest.emit('unpipe', this, unpipeInfo) + return this + } + if (!dest) { + var dests = state.pipes + var len = state.pipesCount + state.pipes = null + state.pipesCount = 0 + state.flowing = false + for (var i = 0; i < len; i++) { + dests[i].emit('unpipe', this, { hasUnpiped: false }) + } + return this + } + var index = indexOf(state.pipes, dest) + if (index === -1) return this + state.pipes.splice(index, 1) + state.pipesCount -= 1 + if (state.pipesCount === 1) state.pipes = state.pipes[0] + dest.emit('unpipe', this, unpipeInfo) + return this + } + Readable.prototype.on = function (ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn) + var state = this._readableState + if (ev === 'data') { + state.readableListening = this.listenerCount('readable') > 0 + if (state.flowing !== false) this.resume() + } else if (ev === 'readable') { + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true + state.flowing = false + state.emittedReadable = false + debug('on readable', state.length, state.reading) + if (state.length) { + emitReadable(this) + } else if (!state.reading) { + process.nextTick(nReadingNextTick, this) + } + } + } + return res + } + Readable.prototype.addListener = Readable.prototype.on + Readable.prototype.removeListener = function (ev, fn) { + var res = Stream.prototype.removeListener.call(this, ev, fn) + if (ev === 'readable') { + process.nextTick(updateReadableListening, this) + } + return res + } + Readable.prototype.removeAllListeners = function (ev) { + var res = Stream.prototype.removeAllListeners.apply(this, arguments) + if (ev === 'readable' || ev === undefined) { + process.nextTick(updateReadableListening, this) + } + return res + } + function updateReadableListening(self) { + var state = self._readableState + state.readableListening = self.listenerCount('readable') > 0 + if (state.resumeScheduled && !state.paused) { + state.flowing = true + } else if (self.listenerCount('data') > 0) { + self.resume() + } + } + function nReadingNextTick(self) { + debug('readable nexttick read 0') + self.read(0) + } + Readable.prototype.resume = function () { + var state = this._readableState + if (!state.flowing) { + debug('resume') + state.flowing = !state.readableListening + resume(this, state) + } + state.paused = false + return this + } + function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true + process.nextTick(resume_, stream, state) + } + } + function resume_(stream, state) { + debug('resume', state.reading) + if (!state.reading) { + stream.read(0) + } + state.resumeScheduled = false + stream.emit('resume') + flow(stream) + if (state.flowing && !state.reading) stream.read(0) + } + Readable.prototype.pause = function () { + debug('call pause flowing=%j', this._readableState.flowing) + if (this._readableState.flowing !== false) { + debug('pause') + this._readableState.flowing = false + this.emit('pause') + } + this._readableState.paused = true + return this + } + function flow(stream) { + var state = stream._readableState + debug('flow', state.flowing) + while (state.flowing && stream.read() !== null) {} + } + Readable.prototype.wrap = function (stream) { + var _this = this + var state = this._readableState + var paused = false + stream.on('end', function () { + debug('wrapped end') + if (state.decoder && !state.ended) { + var chunk = state.decoder.end() + if (chunk && chunk.length) _this.push(chunk) + } + _this.push(null) + }) + stream.on('data', function (chunk) { + debug('wrapped data') + if (state.decoder) chunk = state.decoder.write(chunk) + if (state.objectMode && (chunk === null || chunk === undefined)) return + else if (!state.objectMode && (!chunk || !chunk.length)) return + var ret = _this.push(chunk) + if (!ret) { + paused = true + stream.pause() + } + }) + for (var i in stream) { + if (this[i] === undefined && typeof stream[i] === 'function') { + this[i] = (function methodWrap(method) { + return function methodWrapReturnFunction() { + return stream[method].apply(stream, arguments) + } + })(i) + } + } + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])) + } + this._read = function (n) { + debug('wrapped _read', n) + if (paused) { + paused = false + stream.resume() + } + } + return this + } + if (typeof Symbol === 'function') { + Readable.prototype[Symbol.asyncIterator] = function () { + if (createReadableStreamAsyncIterator === undefined) { + createReadableStreamAsyncIterator = require('./internal/streams/async_iterator') + } + return createReadableStreamAsyncIterator(this) + } + } + Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { + enumerable: false, + get: function get() { + return this._readableState.highWaterMark + } + }) + Object.defineProperty(Readable.prototype, 'readableBuffer', { + enumerable: false, + get: function get() { + return this._readableState && this._readableState.buffer + } + }) + Object.defineProperty(Readable.prototype, 'readableFlowing', { + enumerable: false, + get: function get() { + return this._readableState.flowing + }, + set: function set(state) { + if (this._readableState) { + this._readableState.flowing = state + } + } + }) + Readable._fromList = fromList + Object.defineProperty(Readable.prototype, 'readableLength', { + enumerable: false, + get: function get() { + return this._readableState.length + } + }) + function fromList(n, state) { + if (state.length === 0) return null + var ret + if (state.objectMode) ret = state.buffer.shift() + else if (!n || n >= state.length) { + if (state.decoder) ret = state.buffer.join('') + else if (state.buffer.length === 1) ret = state.buffer.first() + else ret = state.buffer.concat(state.length) + state.buffer.clear() + } else { + ret = state.buffer.consume(n, state.decoder) + } + return ret + } + function endReadable(stream) { + var state = stream._readableState + debug('endReadable', state.endEmitted) + if (!state.endEmitted) { + state.ended = true + process.nextTick(endReadableNT, state, stream) + } + } + function endReadableNT(state, stream) { + debug('endReadableNT', state.endEmitted, state.length) + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true + stream.readable = false + stream.emit('end') + if (state.autoDestroy) { + var wState = stream._writableState + if (!wState || (wState.autoDestroy && wState.finished)) { + stream.destroy() + } + } + } + } + if (typeof Symbol === 'function') { + Readable.from = function (iterable, opts) { + if (from === undefined) { + from = require('./internal/streams/from') + } + return from(Readable, iterable, opts) + } + } + function indexOf(xs, x) { + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) return i + } + return -1 + } + }.call(this)) + }.call( + this, + require('_process'), + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {} + )) + }, + { + '../errors': 78, + './_stream_duplex': 79, + './internal/streams/async_iterator': 84, + './internal/streams/buffer_list': 85, + './internal/streams/destroy': 86, + './internal/streams/from': 88, + './internal/streams/state': 90, + './internal/streams/stream': 91, + _process: 171, + buffer: 93, + events: 134, + inherits: 151, + 'string_decoder/': 207, + util: 49 + } + ], + 82: [ + function (require, module, exports) { + 'use strict' + module.exports = Transform + var _require$codes = require('../errors').codes, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, + ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0 + var Duplex = require('./_stream_duplex') + require('inherits')(Transform, Duplex) + function afterTransform(er, data) { + var ts = this._transformState + ts.transforming = false + var cb = ts.writecb + if (cb === null) { + return this.emit('error', new ERR_MULTIPLE_CALLBACK()) + } + ts.writechunk = null + ts.writecb = null + if (data != null) this.push(data) + cb(er) + var rs = this._readableState + rs.reading = false + if (rs.needReadable || rs.length < rs.highWaterMark) { + this._read(rs.highWaterMark) + } + } + function Transform(options) { + if (!(this instanceof Transform)) return new Transform(options) + Duplex.call(this, options) + this._transformState = { + afterTransform: afterTransform.bind(this), + needTransform: false, + transforming: false, + writecb: null, + writechunk: null, + writeencoding: null + } + this._readableState.needReadable = true + this._readableState.sync = false + if (options) { + if (typeof options.transform === 'function') this._transform = options.transform + if (typeof options.flush === 'function') this._flush = options.flush + } + this.on('prefinish', prefinish) + } + function prefinish() { + var _this = this + if (typeof this._flush === 'function' && !this._readableState.destroyed) { + this._flush(function (er, data) { + done(_this, er, data) + }) + } else { + done(this, null, null) + } + } + Transform.prototype.push = function (chunk, encoding) { + this._transformState.needTransform = false + return Duplex.prototype.push.call(this, chunk, encoding) + } + Transform.prototype._transform = function (chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()')) + } + Transform.prototype._write = function (chunk, encoding, cb) { + var ts = this._transformState + ts.writecb = cb + ts.writechunk = chunk + ts.writeencoding = encoding + if (!ts.transforming) { + var rs = this._readableState + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) + this._read(rs.highWaterMark) + } + } + Transform.prototype._read = function (n) { + var ts = this._transformState + if (ts.writechunk !== null && !ts.transforming) { + ts.transforming = true + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform) + } else { + ts.needTransform = true + } + } + Transform.prototype._destroy = function (err, cb) { + Duplex.prototype._destroy.call(this, err, function (err2) { + cb(err2) + }) + } + function done(stream, er, data) { + if (er) return stream.emit('error', er) + if (data != null) stream.push(data) + if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0() + if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING() + return stream.push(null) + } + }, + { '../errors': 78, './_stream_duplex': 79, inherits: 151 } + ], + 83: [ + function (require, module, exports) { + ;(function (process, global) { + ;(function () { + 'use strict' + module.exports = Writable + function WriteReq(chunk, encoding, cb) { + this.chunk = chunk + this.encoding = encoding + this.callback = cb + this.next = null + } + function CorkedRequest(state) { + var _this = this + this.next = null + this.entry = null + this.finish = function () { + onCorkedFinish(_this, state) + } + } + var Duplex + Writable.WritableState = WritableState + var internalUtil = { deprecate: require('util-deprecate') } + var Stream = require('./internal/streams/stream') + var Buffer = require('buffer').Buffer + var OurUint8Array = global.Uint8Array || function () {} + function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk) + } + function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array + } + var destroyImpl = require('./internal/streams/destroy') + var _require = require('./internal/streams/state'), + getHighWaterMark = _require.getHighWaterMark + var _require$codes = require('../errors').codes, + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, + ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, + ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, + ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING + var errorOrDestroy = destroyImpl.errorOrDestroy + require('inherits')(Writable, Stream) + function nop() {} + function WritableState(options, stream, isDuplex) { + Duplex = Duplex || require('./_stream_duplex') + options = options || {} + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex + this.objectMode = !!options.objectMode + if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode + this.highWaterMark = getHighWaterMark( + this, + options, + 'writableHighWaterMark', + isDuplex + ) + this.finalCalled = false + this.needDrain = false + this.ending = false + this.ended = false + this.finished = false + this.destroyed = false + var noDecode = options.decodeStrings === false + this.decodeStrings = !noDecode + this.defaultEncoding = options.defaultEncoding || 'utf8' + this.length = 0 + this.writing = false + this.corked = 0 + this.sync = true + this.bufferProcessing = false + this.onwrite = function (er) { + onwrite(stream, er) + } + this.writecb = null + this.writelen = 0 + this.bufferedRequest = null + this.lastBufferedRequest = null + this.pendingcb = 0 + this.prefinished = false + this.errorEmitted = false + this.emitClose = options.emitClose !== false + this.autoDestroy = !!options.autoDestroy + this.bufferedRequestCount = 0 + this.corkedRequestsFree = new CorkedRequest(this) + } + WritableState.prototype.getBuffer = function getBuffer() { + var current = this.bufferedRequest + var out = [] + while (current) { + out.push(current) + current = current.next + } + return out + } + ;(function () { + try { + Object.defineProperty(WritableState.prototype, 'buffer', { + get: internalUtil.deprecate( + function writableStateBufferGetter() { + return this.getBuffer() + }, + '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + + 'instead.', + 'DEP0003' + ) + }) + } catch (_) {} + })() + var realHasInstance + if ( + typeof Symbol === 'function' && + Symbol.hasInstance && + typeof Function.prototype[Symbol.hasInstance] === 'function' + ) { + realHasInstance = Function.prototype[Symbol.hasInstance] + Object.defineProperty(Writable, Symbol.hasInstance, { + value: function value(object) { + if (realHasInstance.call(this, object)) return true + if (this !== Writable) return false + return object && object._writableState instanceof WritableState + } + }) + } else { + realHasInstance = function realHasInstance(object) { + return object instanceof this + } + } + function Writable(options) { + Duplex = Duplex || require('./_stream_duplex') + var isDuplex = this instanceof Duplex + if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options) + this._writableState = new WritableState(options, this, isDuplex) + this.writable = true + if (options) { + if (typeof options.write === 'function') this._write = options.write + if (typeof options.writev === 'function') this._writev = options.writev + if (typeof options.destroy === 'function') this._destroy = options.destroy + if (typeof options.final === 'function') this._final = options.final + } + Stream.call(this) + } + Writable.prototype.pipe = function () { + errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()) + } + function writeAfterEnd(stream, cb) { + var er = new ERR_STREAM_WRITE_AFTER_END() + errorOrDestroy(stream, er) + process.nextTick(cb, er) + } + function validChunk(stream, state, chunk, cb) { + var er + if (chunk === null) { + er = new ERR_STREAM_NULL_VALUES() + } else if (typeof chunk !== 'string' && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk) + } + if (er) { + errorOrDestroy(stream, er) + process.nextTick(cb, er) + return false + } + return true + } + Writable.prototype.write = function (chunk, encoding, cb) { + var state = this._writableState + var ret = false + var isBuf = !state.objectMode && _isUint8Array(chunk) + if (isBuf && !Buffer.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk) + } + if (typeof encoding === 'function') { + cb = encoding + encoding = null + } + if (isBuf) encoding = 'buffer' + else if (!encoding) encoding = state.defaultEncoding + if (typeof cb !== 'function') cb = nop + if (state.ending) writeAfterEnd(this, cb) + else if (isBuf || validChunk(this, state, chunk, cb)) { + state.pendingcb++ + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb) + } + return ret + } + Writable.prototype.cork = function () { + this._writableState.corked++ + } + Writable.prototype.uncork = function () { + var state = this._writableState + if (state.corked) { + state.corked-- + if ( + !state.writing && + !state.corked && + !state.bufferProcessing && + state.bufferedRequest + ) + clearBuffer(this, state) + } + } + Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { + if (typeof encoding === 'string') encoding = encoding.toLowerCase() + if ( + !( + [ + 'hex', + 'utf8', + 'utf-8', + 'ascii', + 'binary', + 'base64', + 'ucs2', + 'ucs-2', + 'utf16le', + 'utf-16le', + 'raw' + ].indexOf((encoding + '').toLowerCase()) > -1 + ) + ) + throw new ERR_UNKNOWN_ENCODING(encoding) + this._writableState.defaultEncoding = encoding + return this + } + Object.defineProperty(Writable.prototype, 'writableBuffer', { + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer() + } + }) + function decodeChunk(state, chunk, encoding) { + if ( + !state.objectMode && + state.decodeStrings !== false && + typeof chunk === 'string' + ) { + chunk = Buffer.from(chunk, encoding) + } + return chunk + } + Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { + enumerable: false, + get: function get() { + return this._writableState.highWaterMark + } + }) + function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + var newChunk = decodeChunk(state, chunk, encoding) + if (chunk !== newChunk) { + isBuf = true + encoding = 'buffer' + chunk = newChunk + } + } + var len = state.objectMode ? 1 : chunk.length + state.length += len + var ret = state.length < state.highWaterMark + if (!ret) state.needDrain = true + if (state.writing || state.corked) { + var last = state.lastBufferedRequest + state.lastBufferedRequest = { + chunk: chunk, + encoding: encoding, + isBuf: isBuf, + callback: cb, + next: null + } + if (last) { + last.next = state.lastBufferedRequest + } else { + state.bufferedRequest = state.lastBufferedRequest + } + state.bufferedRequestCount += 1 + } else { + doWrite(stream, state, false, len, chunk, encoding, cb) + } + return ret + } + function doWrite(stream, state, writev, len, chunk, encoding, cb) { + state.writelen = len + state.writecb = cb + state.writing = true + state.sync = true + if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write')) + else if (writev) stream._writev(chunk, state.onwrite) + else stream._write(chunk, encoding, state.onwrite) + state.sync = false + } + function onwriteError(stream, state, sync, er, cb) { + --state.pendingcb + if (sync) { + process.nextTick(cb, er) + process.nextTick(finishMaybe, stream, state) + stream._writableState.errorEmitted = true + errorOrDestroy(stream, er) + } else { + cb(er) + stream._writableState.errorEmitted = true + errorOrDestroy(stream, er) + finishMaybe(stream, state) + } + } + function onwriteStateUpdate(state) { + state.writing = false + state.writecb = null + state.length -= state.writelen + state.writelen = 0 + } + function onwrite(stream, er) { + var state = stream._writableState + var sync = state.sync + var cb = state.writecb + if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK() + onwriteStateUpdate(state) + if (er) onwriteError(stream, state, sync, er, cb) + else { + var finished = needFinish(state) || stream.destroyed + if ( + !finished && + !state.corked && + !state.bufferProcessing && + state.bufferedRequest + ) { + clearBuffer(stream, state) + } + if (sync) { + process.nextTick(afterWrite, stream, state, finished, cb) + } else { + afterWrite(stream, state, finished, cb) + } + } + } + function afterWrite(stream, state, finished, cb) { + if (!finished) onwriteDrain(stream, state) + state.pendingcb-- + cb() + finishMaybe(stream, state) + } + function onwriteDrain(stream, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false + stream.emit('drain') + } + } + function clearBuffer(stream, state) { + state.bufferProcessing = true + var entry = state.bufferedRequest + if (stream._writev && entry && entry.next) { + var l = state.bufferedRequestCount + var buffer = new Array(l) + var holder = state.corkedRequestsFree + holder.entry = entry + var count = 0 + var allBuffers = true + while (entry) { + buffer[count] = entry + if (!entry.isBuf) allBuffers = false + entry = entry.next + count += 1 + } + buffer.allBuffers = allBuffers + doWrite(stream, state, true, state.length, buffer, '', holder.finish) + state.pendingcb++ + state.lastBufferedRequest = null + if (holder.next) { + state.corkedRequestsFree = holder.next + holder.next = null + } else { + state.corkedRequestsFree = new CorkedRequest(state) + } + state.bufferedRequestCount = 0 + } else { + while (entry) { + var chunk = entry.chunk + var encoding = entry.encoding + var cb = entry.callback + var len = state.objectMode ? 1 : chunk.length + doWrite(stream, state, false, len, chunk, encoding, cb) + entry = entry.next + state.bufferedRequestCount-- + if (state.writing) { + break + } + } + if (entry === null) state.lastBufferedRequest = null + } + state.bufferedRequest = entry + state.bufferProcessing = false + } + Writable.prototype._write = function (chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')) + } + Writable.prototype._writev = null + Writable.prototype.end = function (chunk, encoding, cb) { + var state = this._writableState + if (typeof chunk === 'function') { + cb = chunk + chunk = null + encoding = null + } else if (typeof encoding === 'function') { + cb = encoding + encoding = null + } + if (chunk !== null && chunk !== undefined) this.write(chunk, encoding) + if (state.corked) { + state.corked = 1 + this.uncork() + } + if (!state.ending) endWritable(this, state, cb) + return this + } + Object.defineProperty(Writable.prototype, 'writableLength', { + enumerable: false, + get: function get() { + return this._writableState.length + } + }) + function needFinish(state) { + return ( + state.ending && + state.length === 0 && + state.bufferedRequest === null && + !state.finished && + !state.writing + ) + } + function callFinal(stream, state) { + stream._final(function (err) { + state.pendingcb-- + if (err) { + errorOrDestroy(stream, err) + } + state.prefinished = true + stream.emit('prefinish') + finishMaybe(stream, state) + }) + } + function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === 'function' && !state.destroyed) { + state.pendingcb++ + state.finalCalled = true + process.nextTick(callFinal, stream, state) + } else { + state.prefinished = true + stream.emit('prefinish') + } + } + } + function finishMaybe(stream, state) { + var need = needFinish(state) + if (need) { + prefinish(stream, state) + if (state.pendingcb === 0) { + state.finished = true + stream.emit('finish') + if (state.autoDestroy) { + var rState = stream._readableState + if (!rState || (rState.autoDestroy && rState.endEmitted)) { + stream.destroy() + } + } + } + } + return need + } + function endWritable(stream, state, cb) { + state.ending = true + finishMaybe(stream, state) + if (cb) { + if (state.finished) process.nextTick(cb) + else stream.once('finish', cb) + } + state.ended = true + stream.writable = false + } + function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry + corkReq.entry = null + while (entry) { + var cb = entry.callback + state.pendingcb-- + cb(err) + entry = entry.next + } + state.corkedRequestsFree.next = corkReq + } + Object.defineProperty(Writable.prototype, 'destroyed', { + enumerable: false, + get: function get() { + if (this._writableState === undefined) { + return false + } + return this._writableState.destroyed + }, + set: function set(value) { + if (!this._writableState) { + return + } + this._writableState.destroyed = value + } + }) + Writable.prototype.destroy = destroyImpl.destroy + Writable.prototype._undestroy = destroyImpl.undestroy + Writable.prototype._destroy = function (err, cb) { + cb(err) + } + }.call(this)) + }.call( + this, + require('_process'), + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {} + )) + }, + { + '../errors': 78, + './_stream_duplex': 79, + './internal/streams/destroy': 86, + './internal/streams/state': 90, + './internal/streams/stream': 91, + _process: 171, + buffer: 93, + inherits: 151, + 'util-deprecate': 209 + } + ], + 84: [ + function (require, module, exports) { + ;(function (process) { + ;(function () { + 'use strict' + var _Object$setPrototypeO + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }) + } else { + obj[key] = value + } + return obj + } + var finished = require('./end-of-stream') + var kLastResolve = Symbol('lastResolve') + var kLastReject = Symbol('lastReject') + var kError = Symbol('error') + var kEnded = Symbol('ended') + var kLastPromise = Symbol('lastPromise') + var kHandlePromise = Symbol('handlePromise') + var kStream = Symbol('stream') + function createIterResult(value, done) { + return { value: value, done: done } + } + function readAndResolve(iter) { + var resolve = iter[kLastResolve] + if (resolve !== null) { + var data = iter[kStream].read() + if (data !== null) { + iter[kLastPromise] = null + iter[kLastResolve] = null + iter[kLastReject] = null + resolve(createIterResult(data, false)) + } + } + } + function onReadable(iter) { + process.nextTick(readAndResolve, iter) + } + function wrapForNext(lastPromise, iter) { + return function (resolve, reject) { + lastPromise.then(function () { + if (iter[kEnded]) { + resolve(createIterResult(undefined, true)) + return + } + iter[kHandlePromise](resolve, reject) + }, reject) + } + } + var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}) + var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf( + ((_Object$setPrototypeO = { + get stream() { + return this[kStream] + }, + next: function next() { + var _this = this + var error = this[kError] + if (error !== null) { + return Promise.reject(error) + } + if (this[kEnded]) { + return Promise.resolve(createIterResult(undefined, true)) + } + if (this[kStream].destroyed) { + return new Promise(function (resolve, reject) { + process.nextTick(function () { + if (_this[kError]) { + reject(_this[kError]) + } else { + resolve(createIterResult(undefined, true)) + } + }) + }) + } + var lastPromise = this[kLastPromise] + var promise + if (lastPromise) { + promise = new Promise(wrapForNext(lastPromise, this)) + } else { + var data = this[kStream].read() + if (data !== null) { + return Promise.resolve(createIterResult(data, false)) + } + promise = new Promise(this[kHandlePromise]) + } + this[kLastPromise] = promise + return promise + } + }), + _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () { + return this + }), + _defineProperty(_Object$setPrototypeO, 'return', function _return() { + var _this2 = this + return new Promise(function (resolve, reject) { + _this2[kStream].destroy(null, function (err) { + if (err) { + reject(err) + return + } + resolve(createIterResult(undefined, true)) + }) + }) + }), + _Object$setPrototypeO), + AsyncIteratorPrototype + ) + var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator( + stream + ) { + var _Object$create + var iterator = Object.create( + ReadableStreamAsyncIteratorPrototype, + ((_Object$create = {}), + _defineProperty(_Object$create, kStream, { value: stream, writable: true }), + _defineProperty(_Object$create, kLastResolve, { value: null, writable: true }), + _defineProperty(_Object$create, kLastReject, { value: null, writable: true }), + _defineProperty(_Object$create, kError, { value: null, writable: true }), + _defineProperty(_Object$create, kEnded, { + value: stream._readableState.endEmitted, + writable: true + }), + _defineProperty(_Object$create, kHandlePromise, { + value: function value(resolve, reject) { + var data = iterator[kStream].read() + if (data) { + iterator[kLastPromise] = null + iterator[kLastResolve] = null + iterator[kLastReject] = null + resolve(createIterResult(data, false)) + } else { + iterator[kLastResolve] = resolve + iterator[kLastReject] = reject + } + }, + writable: true + }), + _Object$create) + ) + iterator[kLastPromise] = null + finished(stream, function (err) { + if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { + var reject = iterator[kLastReject] + if (reject !== null) { + iterator[kLastPromise] = null + iterator[kLastResolve] = null + iterator[kLastReject] = null + reject(err) + } + iterator[kError] = err + return + } + var resolve = iterator[kLastResolve] + if (resolve !== null) { + iterator[kLastPromise] = null + iterator[kLastResolve] = null + iterator[kLastReject] = null + resolve(createIterResult(undefined, true)) + } + iterator[kEnded] = true + }) + stream.on('readable', onReadable.bind(null, iterator)) + return iterator + } + module.exports = createReadableStreamAsyncIterator + }.call(this)) + }.call(this, require('_process'))) + }, + { './end-of-stream': 87, _process: 171 } + ], + 85: [ + function (require, module, exports) { + 'use strict' + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object) + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object) + if (enumerableOnly) + symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable + }) + keys.push.apply(keys, symbols) + } + return keys + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {} + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]) + }) + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)) + }) + } + } + return target + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }) + } else { + obj[key] = value + } + return obj + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError('Cannot call a class as a function') + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i] + descriptor.enumerable = descriptor.enumerable || false + descriptor.configurable = true + if ('value' in descriptor) descriptor.writable = true + Object.defineProperty(target, descriptor.key, descriptor) + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps) + if (staticProps) _defineProperties(Constructor, staticProps) + return Constructor + } + var _require = require('buffer'), + Buffer = _require.Buffer + var _require2 = require('util'), + inspect = _require2.inspect + var custom = (inspect && inspect.custom) || 'inspect' + function copyBuffer(src, target, offset) { + Buffer.prototype.copy.call(src, target, offset) + } + module.exports = (function () { + function BufferList() { + _classCallCheck(this, BufferList) + this.head = null + this.tail = null + this.length = 0 + } + _createClass(BufferList, [ + { + key: 'push', + value: function push(v) { + var entry = { data: v, next: null } + if (this.length > 0) this.tail.next = entry + else this.head = entry + this.tail = entry + ++this.length + } + }, + { + key: 'unshift', + value: function unshift(v) { + var entry = { data: v, next: this.head } + if (this.length === 0) this.tail = entry + this.head = entry + ++this.length + } + }, + { + key: 'shift', + value: function shift() { + if (this.length === 0) return + var ret = this.head.data + if (this.length === 1) this.head = this.tail = null + else this.head = this.head.next + --this.length + return ret + } + }, + { + key: 'clear', + value: function clear() { + this.head = this.tail = null + this.length = 0 + } + }, + { + key: 'join', + value: function join(s) { + if (this.length === 0) return '' + var p = this.head + var ret = '' + p.data + while ((p = p.next)) { + ret += s + p.data + } + return ret + } + }, + { + key: 'concat', + value: function concat(n) { + if (this.length === 0) return Buffer.alloc(0) + var ret = Buffer.allocUnsafe(n >>> 0) + var p = this.head + var i = 0 + while (p) { + copyBuffer(p.data, ret, i) + i += p.data.length + p = p.next + } + return ret + } + }, + { + key: 'consume', + value: function consume(n, hasStrings) { + var ret + if (n < this.head.data.length) { + ret = this.head.data.slice(0, n) + this.head.data = this.head.data.slice(n) + } else if (n === this.head.data.length) { + ret = this.shift() + } else { + ret = hasStrings ? this._getString(n) : this._getBuffer(n) + } + return ret + } + }, + { + key: 'first', + value: function first() { + return this.head.data + } + }, + { + key: '_getString', + value: function _getString(n) { + var p = this.head + var c = 1 + var ret = p.data + n -= ret.length + while ((p = p.next)) { + var str = p.data + var nb = n > str.length ? str.length : n + if (nb === str.length) ret += str + else ret += str.slice(0, n) + n -= nb + if (n === 0) { + if (nb === str.length) { + ++c + if (p.next) this.head = p.next + else this.head = this.tail = null + } else { + this.head = p + p.data = str.slice(nb) + } + break + } + ++c + } + this.length -= c + return ret + } + }, + { + key: '_getBuffer', + value: function _getBuffer(n) { + var ret = Buffer.allocUnsafe(n) + var p = this.head + var c = 1 + p.data.copy(ret) + n -= p.data.length + while ((p = p.next)) { + var buf = p.data + var nb = n > buf.length ? buf.length : n + buf.copy(ret, ret.length - n, 0, nb) + n -= nb + if (n === 0) { + if (nb === buf.length) { + ++c + if (p.next) this.head = p.next + else this.head = this.tail = null + } else { + this.head = p + p.data = buf.slice(nb) + } + break + } + ++c + } + this.length -= c + return ret + } + }, + { + key: custom, + value: function value(_, options) { + return inspect( + this, + _objectSpread({}, options, { depth: 0, customInspect: false }) + ) + } + } + ]) + return BufferList + })() + }, + { buffer: 93, util: 49 } + ], + 86: [ + function (require, module, exports) { + ;(function (process) { + ;(function () { + 'use strict' + function destroy(err, cb) { + var _this = this + var readableDestroyed = this._readableState && this._readableState.destroyed + var writableDestroyed = this._writableState && this._writableState.destroyed + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err) + } else if (err) { + if (!this._writableState) { + process.nextTick(emitErrorNT, this, err) + } else if (!this._writableState.errorEmitted) { + this._writableState.errorEmitted = true + process.nextTick(emitErrorNT, this, err) + } + } + return this + } + if (this._readableState) { + this._readableState.destroyed = true + } + if (this._writableState) { + this._writableState.destroyed = true + } + this._destroy(err || null, function (err) { + if (!cb && err) { + if (!_this._writableState) { + process.nextTick(emitErrorAndCloseNT, _this, err) + } else if (!_this._writableState.errorEmitted) { + _this._writableState.errorEmitted = true + process.nextTick(emitErrorAndCloseNT, _this, err) + } else { + process.nextTick(emitCloseNT, _this) + } + } else if (cb) { + process.nextTick(emitCloseNT, _this) + cb(err) + } else { + process.nextTick(emitCloseNT, _this) + } + }) + return this + } + function emitErrorAndCloseNT(self, err) { + emitErrorNT(self, err) + emitCloseNT(self) + } + function emitCloseNT(self) { + if (self._writableState && !self._writableState.emitClose) return + if (self._readableState && !self._readableState.emitClose) return + self.emit('close') + } + function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false + this._readableState.reading = false + this._readableState.ended = false + this._readableState.endEmitted = false + } + if (this._writableState) { + this._writableState.destroyed = false + this._writableState.ended = false + this._writableState.ending = false + this._writableState.finalCalled = false + this._writableState.prefinished = false + this._writableState.finished = false + this._writableState.errorEmitted = false + } + } + function emitErrorNT(self, err) { + self.emit('error', err) + } + function errorOrDestroy(stream, err) { + var rState = stream._readableState + var wState = stream._writableState + if ((rState && rState.autoDestroy) || (wState && wState.autoDestroy)) + stream.destroy(err) + else stream.emit('error', err) + } + module.exports = { + destroy: destroy, + undestroy: undestroy, + errorOrDestroy: errorOrDestroy + } + }.call(this)) + }.call(this, require('_process'))) + }, + { _process: 171 } + ], + 87: [ + function (require, module, exports) { + 'use strict' + var ERR_STREAM_PREMATURE_CLOSE = + require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE + function once(callback) { + var called = false + return function () { + if (called) return + called = true + for ( + var _len = arguments.length, args = new Array(_len), _key = 0; + _key < _len; + _key++ + ) { + args[_key] = arguments[_key] + } + callback.apply(this, args) + } + } + function noop() {} + function isRequest(stream) { + return stream.setHeader && typeof stream.abort === 'function' + } + function eos(stream, opts, callback) { + if (typeof opts === 'function') return eos(stream, null, opts) + if (!opts) opts = {} + callback = once(callback || noop) + var readable = opts.readable || (opts.readable !== false && stream.readable) + var writable = opts.writable || (opts.writable !== false && stream.writable) + var onlegacyfinish = function onlegacyfinish() { + if (!stream.writable) onfinish() + } + var writableEnded = stream._writableState && stream._writableState.finished + var onfinish = function onfinish() { + writable = false + writableEnded = true + if (!readable) callback.call(stream) + } + var readableEnded = stream._readableState && stream._readableState.endEmitted + var onend = function onend() { + readable = false + readableEnded = true + if (!writable) callback.call(stream) + } + var onerror = function onerror(err) { + callback.call(stream, err) + } + var onclose = function onclose() { + var err + if (readable && !readableEnded) { + if (!stream._readableState || !stream._readableState.ended) + err = new ERR_STREAM_PREMATURE_CLOSE() + return callback.call(stream, err) + } + if (writable && !writableEnded) { + if (!stream._writableState || !stream._writableState.ended) + err = new ERR_STREAM_PREMATURE_CLOSE() + return callback.call(stream, err) + } + } + var onrequest = function onrequest() { + stream.req.on('finish', onfinish) + } + if (isRequest(stream)) { + stream.on('complete', onfinish) + stream.on('abort', onclose) + if (stream.req) onrequest() + else stream.on('request', onrequest) + } else if (writable && !stream._writableState) { + stream.on('end', onlegacyfinish) + stream.on('close', onlegacyfinish) + } + stream.on('end', onend) + stream.on('finish', onfinish) + if (opts.error !== false) stream.on('error', onerror) + stream.on('close', onclose) + return function () { + stream.removeListener('complete', onfinish) + stream.removeListener('abort', onclose) + stream.removeListener('request', onrequest) + if (stream.req) stream.req.removeListener('finish', onfinish) + stream.removeListener('end', onlegacyfinish) + stream.removeListener('close', onlegacyfinish) + stream.removeListener('finish', onfinish) + stream.removeListener('end', onend) + stream.removeListener('error', onerror) + stream.removeListener('close', onclose) + } + } + module.exports = eos + }, + { '../../../errors': 78 } + ], + 88: [ + function (require, module, exports) { + module.exports = function () { + throw new Error('Readable.from is not available in the browser') + } + }, + {} + ], + 89: [ + function (require, module, exports) { + 'use strict' + var eos + function once(callback) { + var called = false + return function () { + if (called) return + called = true + callback.apply(void 0, arguments) + } + } + var _require$codes = require('../../../errors').codes, + ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED + function noop(err) { + if (err) throw err + } + function isRequest(stream) { + return stream.setHeader && typeof stream.abort === 'function' + } + function destroyer(stream, reading, writing, callback) { + callback = once(callback) + var closed = false + stream.on('close', function () { + closed = true + }) + if (eos === undefined) eos = require('./end-of-stream') + eos(stream, { readable: reading, writable: writing }, function (err) { + if (err) return callback(err) + closed = true + callback() + }) + var destroyed = false + return function (err) { + if (closed) return + if (destroyed) return + destroyed = true + if (isRequest(stream)) return stream.abort() + if (typeof stream.destroy === 'function') return stream.destroy() + callback(err || new ERR_STREAM_DESTROYED('pipe')) + } + } + function call(fn) { + fn() + } + function pipe(from, to) { + return from.pipe(to) + } + function popCallback(streams) { + if (!streams.length) return noop + if (typeof streams[streams.length - 1] !== 'function') return noop + return streams.pop() + } + function pipeline() { + for ( + var _len = arguments.length, streams = new Array(_len), _key = 0; + _key < _len; + _key++ + ) { + streams[_key] = arguments[_key] + } + var callback = popCallback(streams) + if (Array.isArray(streams[0])) streams = streams[0] + if (streams.length < 2) { + throw new ERR_MISSING_ARGS('streams') + } + var error + var destroys = streams.map(function (stream, i) { + var reading = i < streams.length - 1 + var writing = i > 0 + return destroyer(stream, reading, writing, function (err) { + if (!error) error = err + if (err) destroys.forEach(call) + if (reading) return + destroys.forEach(call) + callback(error) + }) + }) + return streams.reduce(pipe) + } + module.exports = pipeline + }, + { '../../../errors': 78, './end-of-stream': 87 } + ], + 90: [ + function (require, module, exports) { + 'use strict' + var ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE + function highWaterMarkFrom(options, isDuplex, duplexKey) { + return options.highWaterMark != null + ? options.highWaterMark + : isDuplex + ? options[duplexKey] + : null + } + function getHighWaterMark(state, options, duplexKey, isDuplex) { + var hwm = highWaterMarkFrom(options, isDuplex, duplexKey) + if (hwm != null) { + if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { + var name = isDuplex ? duplexKey : 'highWaterMark' + throw new ERR_INVALID_OPT_VALUE(name, hwm) + } + return Math.floor(hwm) + } + return state.objectMode ? 16 : 16 * 1024 + } + module.exports = { getHighWaterMark: getHighWaterMark } + }, + { '../../../errors': 78 } + ], + 91: [ + function (require, module, exports) { + module.exports = require('events').EventEmitter + }, + { events: 134 } + ], + 92: [ + function (require, module, exports) { + exports = module.exports = require('./lib/_stream_readable.js') + exports.Stream = exports + exports.Readable = exports + exports.Writable = require('./lib/_stream_writable.js') + exports.Duplex = require('./lib/_stream_duplex.js') + exports.Transform = require('./lib/_stream_transform.js') + exports.PassThrough = require('./lib/_stream_passthrough.js') + exports.finished = require('./lib/internal/streams/end-of-stream.js') + exports.pipeline = require('./lib/internal/streams/pipeline.js') + }, + { + './lib/_stream_duplex.js': 79, + './lib/_stream_passthrough.js': 80, + './lib/_stream_readable.js': 81, + './lib/_stream_transform.js': 82, + './lib/_stream_writable.js': 83, + './lib/internal/streams/end-of-stream.js': 87, + './lib/internal/streams/pipeline.js': 89 + } + ], + 93: [ + function (require, module, exports) { + ;(function (Buffer) { + ;(function () { + 'use strict' + var base64 = require('base64-js') + var ieee754 = require('ieee754') + exports.Buffer = Buffer + exports.SlowBuffer = SlowBuffer + exports.INSPECT_MAX_BYTES = 50 + var K_MAX_LENGTH = 2147483647 + exports.kMaxLength = K_MAX_LENGTH + Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport() + if ( + !Buffer.TYPED_ARRAY_SUPPORT && + typeof console !== 'undefined' && + typeof console.error === 'function' + ) { + console.error( + 'This browser lacks typed array (Uint8Array) support which is required by ' + + '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.' + ) + } + function typedArraySupport() { + try { + var arr = new Uint8Array(1) + arr.__proto__ = { + __proto__: Uint8Array.prototype, + foo: function () { + return 42 + } + } + return arr.foo() === 42 + } catch (e) { + return false + } + } + Object.defineProperty(Buffer.prototype, 'parent', { + enumerable: true, + get: function () { + if (!Buffer.isBuffer(this)) return undefined + return this.buffer + } + }) + Object.defineProperty(Buffer.prototype, 'offset', { + enumerable: true, + get: function () { + if (!Buffer.isBuffer(this)) return undefined + return this.byteOffset + } + }) + function createBuffer(length) { + if (length > K_MAX_LENGTH) { + throw new RangeError('The value "' + length + '" is invalid for option "size"') + } + var buf = new Uint8Array(length) + buf.__proto__ = Buffer.prototype + return buf + } + function Buffer(arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + if (typeof encodingOrOffset === 'string') { + throw new TypeError( + 'The "string" argument must be of type string. Received type number' + ) + } + return allocUnsafe(arg) + } + return from(arg, encodingOrOffset, length) + } + if ( + typeof Symbol !== 'undefined' && + Symbol.species != null && + Buffer[Symbol.species] === Buffer + ) { + Object.defineProperty(Buffer, Symbol.species, { + value: null, + configurable: true, + enumerable: false, + writable: false + }) + } + Buffer.poolSize = 8192 + function from(value, encodingOrOffset, length) { + if (typeof value === 'string') { + return fromString(value, encodingOrOffset) + } + if (ArrayBuffer.isView(value)) { + return fromArrayLike(value) + } + if (value == null) { + throw TypeError( + 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + + 'or Array-like Object. Received type ' + + typeof value + ) + } + if ( + isInstance(value, ArrayBuffer) || + (value && isInstance(value.buffer, ArrayBuffer)) + ) { + return fromArrayBuffer(value, encodingOrOffset, length) + } + if (typeof value === 'number') { + throw new TypeError( + 'The "value" argument must not be of type number. Received type number' + ) + } + var valueOf = value.valueOf && value.valueOf() + if (valueOf != null && valueOf !== value) { + return Buffer.from(valueOf, encodingOrOffset, length) + } + var b = fromObject(value) + if (b) return b + if ( + typeof Symbol !== 'undefined' && + Symbol.toPrimitive != null && + typeof value[Symbol.toPrimitive] === 'function' + ) { + return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length) + } + throw new TypeError( + 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + + 'or Array-like Object. Received type ' + + typeof value + ) + } + Buffer.from = function (value, encodingOrOffset, length) { + return from(value, encodingOrOffset, length) + } + Buffer.prototype.__proto__ = Uint8Array.prototype + Buffer.__proto__ = Uint8Array + function assertSize(size) { + if (typeof size !== 'number') { + throw new TypeError('"size" argument must be of type number') + } else if (size < 0) { + throw new RangeError('The value "' + size + '" is invalid for option "size"') + } + } + function alloc(size, fill, encoding) { + assertSize(size) + if (size <= 0) { + return createBuffer(size) + } + if (fill !== undefined) { + return typeof encoding === 'string' + ? createBuffer(size).fill(fill, encoding) + : createBuffer(size).fill(fill) + } + return createBuffer(size) + } + Buffer.alloc = function (size, fill, encoding) { + return alloc(size, fill, encoding) + } + function allocUnsafe(size) { + assertSize(size) + return createBuffer(size < 0 ? 0 : checked(size) | 0) + } + Buffer.allocUnsafe = function (size) { + return allocUnsafe(size) + } + Buffer.allocUnsafeSlow = function (size) { + return allocUnsafe(size) + } + function fromString(string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8' + } + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + var length = byteLength(string, encoding) | 0 + var buf = createBuffer(length) + var actual = buf.write(string, encoding) + if (actual !== length) { + buf = buf.slice(0, actual) + } + return buf + } + function fromArrayLike(array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0 + var buf = createBuffer(length) + for (var i = 0; i < length; i += 1) { + buf[i] = array[i] & 255 + } + return buf + } + function fromArrayBuffer(array, byteOffset, length) { + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('"offset" is outside of buffer bounds') + } + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('"length" is outside of buffer bounds') + } + var buf + if (byteOffset === undefined && length === undefined) { + buf = new Uint8Array(array) + } else if (length === undefined) { + buf = new Uint8Array(array, byteOffset) + } else { + buf = new Uint8Array(array, byteOffset, length) + } + buf.__proto__ = Buffer.prototype + return buf + } + function fromObject(obj) { + if (Buffer.isBuffer(obj)) { + var len = checked(obj.length) | 0 + var buf = createBuffer(len) + if (buf.length === 0) { + return buf + } + obj.copy(buf, 0, 0, len) + return buf + } + if (obj.length !== undefined) { + if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) { + return createBuffer(0) + } + return fromArrayLike(obj) + } + if (obj.type === 'Buffer' && Array.isArray(obj.data)) { + return fromArrayLike(obj.data) + } + } + function checked(length) { + if (length >= K_MAX_LENGTH) { + throw new RangeError( + 'Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + + K_MAX_LENGTH.toString(16) + + ' bytes' + ) + } + return length | 0 + } + function SlowBuffer(length) { + if (+length != length) { + length = 0 + } + return Buffer.alloc(+length) + } + Buffer.isBuffer = function isBuffer(b) { + return b != null && b._isBuffer === true && b !== Buffer.prototype + } + Buffer.compare = function compare(a, b) { + if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength) + if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength) + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError( + 'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array' + ) + } + if (a === b) return 0 + var x = a.length + var y = b.length + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i] + y = b[i] + break + } + } + if (x < y) return -1 + if (y < x) return 1 + return 0 + } + Buffer.isEncoding = function isEncoding(encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } + } + Buffer.concat = function concat(list, length) { + if (!Array.isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + if (list.length === 0) { + return Buffer.alloc(0) + } + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; ++i) { + length += list[i].length + } + } + var buffer = Buffer.allocUnsafe(length) + var pos = 0 + for (i = 0; i < list.length; ++i) { + var buf = list[i] + if (isInstance(buf, Uint8Array)) { + buf = Buffer.from(buf) + } + if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + buf.copy(buffer, pos) + pos += buf.length + } + return buffer + } + function byteLength(string, encoding) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + throw new TypeError( + 'The "string" argument must be one of type string, Buffer, or ArrayBuffer. ' + + 'Received type ' + + typeof string + ) + } + var len = string.length + var mustMatch = arguments.length > 2 && arguments[2] === true + if (!mustMatch && len === 0) return 0 + var loweredCase = false + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len + case 'utf8': + case 'utf-8': + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) { + return mustMatch ? -1 : utf8ToBytes(string).length + } + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } + } + Buffer.byteLength = byteLength + function slowToString(encoding, start, end) { + var loweredCase = false + if (start === undefined || start < 0) { + start = 0 + } + if (start > this.length) { + return '' + } + if (end === undefined || end > this.length) { + end = this.length + } + if (end <= 0) { + return '' + } + end >>>= 0 + start >>>= 0 + if (end <= start) { + return '' + } + if (!encoding) encoding = 'utf8' + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) + case 'ascii': + return asciiSlice(this, start, end) + case 'latin1': + case 'binary': + return latin1Slice(this, start, end) + case 'base64': + return base64Slice(this, start, end) + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase() + loweredCase = true + } + } + } + Buffer.prototype._isBuffer = true + function swap(b, n, m) { + var i = b[n] + b[n] = b[m] + b[m] = i + } + Buffer.prototype.swap16 = function swap16() { + var len = this.length + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits') + } + for (var i = 0; i < len; i += 2) { + swap(this, i, i + 1) + } + return this + } + Buffer.prototype.swap32 = function swap32() { + var len = this.length + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits') + } + for (var i = 0; i < len; i += 4) { + swap(this, i, i + 3) + swap(this, i + 1, i + 2) + } + return this + } + Buffer.prototype.swap64 = function swap64() { + var len = this.length + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits') + } + for (var i = 0; i < len; i += 8) { + swap(this, i, i + 7) + swap(this, i + 1, i + 6) + swap(this, i + 2, i + 5) + swap(this, i + 3, i + 4) + } + return this + } + Buffer.prototype.toString = function toString() { + var length = this.length + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) + } + Buffer.prototype.toLocaleString = Buffer.prototype.toString + Buffer.prototype.equals = function equals(b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 + } + Buffer.prototype.inspect = function inspect() { + var str = '' + var max = exports.INSPECT_MAX_BYTES + str = this.toString('hex', 0, max) + .replace(/(.{2})/g, '$1 ') + .trim() + if (this.length > max) str += ' ... ' + return '' + } + Buffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) { + if (isInstance(target, Uint8Array)) { + target = Buffer.from(target, target.offset, target.byteLength) + } + if (!Buffer.isBuffer(target)) { + throw new TypeError( + 'The "target" argument must be one of type Buffer or Uint8Array. ' + + 'Received type ' + + typeof target + ) + } + if (start === undefined) { + start = 0 + } + if (end === undefined) { + end = target ? target.length : 0 + } + if (thisStart === undefined) { + thisStart = 0 + } + if (thisEnd === undefined) { + thisEnd = this.length + } + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError('out of range index') + } + if (thisStart >= thisEnd && start >= end) { + return 0 + } + if (thisStart >= thisEnd) { + return -1 + } + if (start >= end) { + return 1 + } + start >>>= 0 + end >>>= 0 + thisStart >>>= 0 + thisEnd >>>= 0 + if (this === target) return 0 + var x = thisEnd - thisStart + var y = end - start + var len = Math.min(x, y) + var thisCopy = this.slice(thisStart, thisEnd) + var targetCopy = target.slice(start, end) + for (var i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i] + y = targetCopy[i] + break + } + } + if (x < y) return -1 + if (y < x) return 1 + return 0 + } + function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) { + if (buffer.length === 0) return -1 + if (typeof byteOffset === 'string') { + encoding = byteOffset + byteOffset = 0 + } else if (byteOffset > 2147483647) { + byteOffset = 2147483647 + } else if (byteOffset < -2147483648) { + byteOffset = -2147483648 + } + byteOffset = +byteOffset + if (numberIsNaN(byteOffset)) { + byteOffset = dir ? 0 : buffer.length - 1 + } + if (byteOffset < 0) byteOffset = buffer.length + byteOffset + if (byteOffset >= buffer.length) { + if (dir) return -1 + else byteOffset = buffer.length - 1 + } else if (byteOffset < 0) { + if (dir) byteOffset = 0 + else return -1 + } + if (typeof val === 'string') { + val = Buffer.from(val, encoding) + } + if (Buffer.isBuffer(val)) { + if (val.length === 0) { + return -1 + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir) + } else if (typeof val === 'number') { + val = val & 255 + if (typeof Uint8Array.prototype.indexOf === 'function') { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) + } + } + return arrayIndexOf(buffer, [val], byteOffset, encoding, dir) + } + throw new TypeError('val must be string, number or Buffer') + } + function arrayIndexOf(arr, val, byteOffset, encoding, dir) { + var indexSize = 1 + var arrLength = arr.length + var valLength = val.length + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase() + if ( + encoding === 'ucs2' || + encoding === 'ucs-2' || + encoding === 'utf16le' || + encoding === 'utf-16le' + ) { + if (arr.length < 2 || val.length < 2) { + return -1 + } + indexSize = 2 + arrLength /= 2 + valLength /= 2 + byteOffset /= 2 + } + } + function read(buf, i) { + if (indexSize === 1) { + return buf[i] + } else { + return buf.readUInt16BE(i * indexSize) + } + } + var i + if (dir) { + var foundIndex = -1 + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize + } else { + if (foundIndex !== -1) i -= i - foundIndex + foundIndex = -1 + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength + for (i = byteOffset; i >= 0; i--) { + var found = true + for (var j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false + break + } + } + if (found) return i + } + } + return -1 + } + Buffer.prototype.includes = function includes(val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1 + } + Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true) + } + Buffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false) + } + function hexWrite(buf, string, offset, length) { + offset = Number(offset) || 0 + var remaining = buf.length - offset + if (!length) { + length = remaining + } else { + length = Number(length) + if (length > remaining) { + length = remaining + } + } + var strLen = string.length + if (length > strLen / 2) { + length = strLen / 2 + } + for (var i = 0; i < length; ++i) { + var parsed = parseInt(string.substr(i * 2, 2), 16) + if (numberIsNaN(parsed)) return i + buf[offset + i] = parsed + } + return i + } + function utf8Write(buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) + } + function asciiWrite(buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) + } + function latin1Write(buf, string, offset, length) { + return asciiWrite(buf, string, offset, length) + } + function base64Write(buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) + } + function ucs2Write(buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) + } + Buffer.prototype.write = function write(string, offset, length, encoding) { + if (offset === undefined) { + encoding = 'utf8' + length = this.length + offset = 0 + } else if (length === undefined && typeof offset === 'string') { + encoding = offset + length = this.length + offset = 0 + } else if (isFinite(offset)) { + offset = offset >>> 0 + if (isFinite(length)) { + length = length >>> 0 + if (encoding === undefined) encoding = 'utf8' + } else { + encoding = length + length = undefined + } + } else { + throw new Error( + 'Buffer.write(string, encoding, offset[, length]) is no longer supported' + ) + } + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } + if (!encoding) encoding = 'utf8' + var loweredCase = false + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) + case 'ascii': + return asciiWrite(this, string, offset, length) + case 'latin1': + case 'binary': + return latin1Write(this, string, offset, length) + case 'base64': + return base64Write(this, string, offset, length) + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } + } + Buffer.prototype.toJSON = function toJSON() { + return { type: 'Buffer', data: Array.prototype.slice.call(this._arr || this, 0) } + } + function base64Slice(buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf) + } else { + return base64.fromByteArray(buf.slice(start, end)) + } + } + function utf8Slice(buf, start, end) { + end = Math.min(buf.length, end) + var res = [] + var i = start + while (i < end) { + var firstByte = buf[i] + var codePoint = null + var bytesPerSequence = + firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1 + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint + switch (bytesPerSequence) { + case 1: + if (firstByte < 128) { + codePoint = firstByte + } + break + case 2: + secondByte = buf[i + 1] + if ((secondByte & 192) === 128) { + tempCodePoint = ((firstByte & 31) << 6) | (secondByte & 63) + if (tempCodePoint > 127) { + codePoint = tempCodePoint + } + } + break + case 3: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) { + tempCodePoint = + ((firstByte & 15) << 12) | ((secondByte & 63) << 6) | (thirdByte & 63) + if ( + tempCodePoint > 2047 && + (tempCodePoint < 55296 || tempCodePoint > 57343) + ) { + codePoint = tempCodePoint + } + } + break + case 4: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + fourthByte = buf[i + 3] + if ( + (secondByte & 192) === 128 && + (thirdByte & 192) === 128 && + (fourthByte & 192) === 128 + ) { + tempCodePoint = + ((firstByte & 15) << 18) | + ((secondByte & 63) << 12) | + ((thirdByte & 63) << 6) | + (fourthByte & 63) + if (tempCodePoint > 65535 && tempCodePoint < 1114112) { + codePoint = tempCodePoint + } + } + } + } + if (codePoint === null) { + codePoint = 65533 + bytesPerSequence = 1 + } else if (codePoint > 65535) { + codePoint -= 65536 + res.push(((codePoint >>> 10) & 1023) | 55296) + codePoint = 56320 | (codePoint & 1023) + } + res.push(codePoint) + i += bytesPerSequence + } + return decodeCodePointsArray(res) + } + var MAX_ARGUMENTS_LENGTH = 4096 + function decodeCodePointsArray(codePoints) { + var len = codePoints.length + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints) + } + var res = '' + var i = 0 + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, (i += MAX_ARGUMENTS_LENGTH)) + ) + } + return res + } + function asciiSlice(buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 127) + } + return ret + } + function latin1Slice(buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]) + } + return ret + } + function hexSlice(buf, start, end) { + var len = buf.length + if (!start || start < 0) start = 0 + if (!end || end < 0 || end > len) end = len + var out = '' + for (var i = start; i < end; ++i) { + out += toHex(buf[i]) + } + return out + } + function utf16leSlice(buf, start, end) { + var bytes = buf.slice(start, end) + var res = '' + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) + } + return res + } + Buffer.prototype.slice = function slice(start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } + if (end < start) end = start + var newBuf = this.subarray(start, end) + newBuf.__proto__ = Buffer.prototype + return newBuf + } + function checkOffset(offset, ext, length) { + if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) + throw new RangeError('Trying to access beyond buffer length') + } + Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 256)) { + val += this[offset + i] * mul + } + return val + } + Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) { + checkOffset(offset, byteLength, this.length) + } + var val = this[offset + --byteLength] + var mul = 1 + while (byteLength > 0 && (mul *= 256)) { + val += this[offset + --byteLength] * mul + } + return val + } + Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 1, this.length) + return this[offset] + } + Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 2, this.length) + return this[offset] | (this[offset + 1] << 8) + } + Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 2, this.length) + return (this[offset] << 8) | this[offset + 1] + } + Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + return ( + (this[offset] | (this[offset + 1] << 8) | (this[offset + 2] << 16)) + + this[offset + 3] * 16777216 + ) + } + Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + return ( + this[offset] * 16777216 + + ((this[offset + 1] << 16) | (this[offset + 2] << 8) | this[offset + 3]) + ) + } + Buffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 256)) { + val += this[offset + i] * mul + } + mul *= 128 + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + return val + } + Buffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + var i = byteLength + var mul = 1 + var val = this[offset + --i] + while (i > 0 && (mul *= 256)) { + val += this[offset + --i] * mul + } + mul *= 128 + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + return val + } + Buffer.prototype.readInt8 = function readInt8(offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 1, this.length) + if (!(this[offset] & 128)) return this[offset] + return (255 - this[offset] + 1) * -1 + } + Buffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset] | (this[offset + 1] << 8) + return val & 32768 ? val | 4294901760 : val + } + Buffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset + 1] | (this[offset] << 8) + return val & 32768 ? val | 4294901760 : val + } + Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + return ( + this[offset] | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) + ) + } + Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + return ( + (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3] + ) + } + Buffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, true, 23, 4) + } + Buffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, false, 23, 4) + } + Buffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, true, 52, 8) + } + Buffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, false, 52, 8) + } + function checkInt(buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) + throw new TypeError('"buffer" argument must be a Buffer instance') + if (value > max || value < min) + throw new RangeError('"value" argument is out of bounds') + if (offset + ext > buf.length) throw new RangeError('Index out of range') + } + Buffer.prototype.writeUIntLE = function writeUIntLE( + value, + offset, + byteLength, + noAssert + ) { + value = +value + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + var mul = 1 + var i = 0 + this[offset] = value & 255 + while (++i < byteLength && (mul *= 256)) { + this[offset + i] = (value / mul) & 255 + } + return offset + byteLength + } + Buffer.prototype.writeUIntBE = function writeUIntBE( + value, + offset, + byteLength, + noAssert + ) { + value = +value + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + var i = byteLength - 1 + var mul = 1 + this[offset + i] = value & 255 + while (--i >= 0 && (mul *= 256)) { + this[offset + i] = (value / mul) & 255 + } + return offset + byteLength + } + Buffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 1, 255, 0) + this[offset] = value & 255 + return offset + 1 + } + Buffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 2, 65535, 0) + this[offset] = value & 255 + this[offset + 1] = value >>> 8 + return offset + 2 + } + Buffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 2, 65535, 0) + this[offset] = value >>> 8 + this[offset + 1] = value & 255 + return offset + 2 + } + Buffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0) + this[offset + 3] = value >>> 24 + this[offset + 2] = value >>> 16 + this[offset + 1] = value >>> 8 + this[offset] = value & 255 + return offset + 4 + } + Buffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0) + this[offset] = value >>> 24 + this[offset + 1] = value >>> 16 + this[offset + 2] = value >>> 8 + this[offset + 3] = value & 255 + return offset + 4 + } + Buffer.prototype.writeIntLE = function writeIntLE( + value, + offset, + byteLength, + noAssert + ) { + value = +value + offset = offset >>> 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + var i = 0 + var mul = 1 + var sub = 0 + this[offset] = value & 255 + while (++i < byteLength && (mul *= 256)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1 + } + this[offset + i] = (((value / mul) >> 0) - sub) & 255 + } + return offset + byteLength + } + Buffer.prototype.writeIntBE = function writeIntBE( + value, + offset, + byteLength, + noAssert + ) { + value = +value + offset = offset >>> 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + var i = byteLength - 1 + var mul = 1 + var sub = 0 + this[offset + i] = value & 255 + while (--i >= 0 && (mul *= 256)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1 + } + this[offset + i] = (((value / mul) >> 0) - sub) & 255 + } + return offset + byteLength + } + Buffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 1, 127, -128) + if (value < 0) value = 255 + value + 1 + this[offset] = value & 255 + return offset + 1 + } + Buffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768) + this[offset] = value & 255 + this[offset + 1] = value >>> 8 + return offset + 2 + } + Buffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768) + this[offset] = value >>> 8 + this[offset + 1] = value & 255 + return offset + 2 + } + Buffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648) + this[offset] = value & 255 + this[offset + 1] = value >>> 8 + this[offset + 2] = value >>> 16 + this[offset + 3] = value >>> 24 + return offset + 4 + } + Buffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648) + if (value < 0) value = 4294967295 + value + 1 + this[offset] = value >>> 24 + this[offset + 1] = value >>> 16 + this[offset + 2] = value >>> 8 + this[offset + 3] = value & 255 + return offset + 4 + } + function checkIEEE754(buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range') + if (offset < 0) throw new RangeError('Index out of range') + } + function writeFloat(buf, value, offset, littleEndian, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 34028234663852886e22, -34028234663852886e22) + } + ieee754.write(buf, value, offset, littleEndian, 23, 4) + return offset + 4 + } + Buffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) + } + Buffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) + } + function writeDouble(buf, value, offset, littleEndian, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 17976931348623157e292, -17976931348623157e292) + } + ieee754.write(buf, value, offset, littleEndian, 52, 8) + return offset + 8 + } + Buffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) + } + Buffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) + } + Buffer.prototype.copy = function copy(target, targetStart, start, end) { + if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer') + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('Index out of range') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + var len = end - start + if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') { + this.copyWithin(targetStart, start, end) + } else if (this === target && start < targetStart && targetStart < end) { + for (var i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start] + } + } else { + Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart) + } + return len + } + Buffer.prototype.fill = function fill(val, start, end, encoding) { + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start + start = 0 + end = this.length + } else if (typeof end === 'string') { + encoding = end + end = this.length + } + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string') + } + if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + if (val.length === 1) { + var code = val.charCodeAt(0) + if ((encoding === 'utf8' && code < 128) || encoding === 'latin1') { + val = code + } + } + } else if (typeof val === 'number') { + val = val & 255 + } + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + if (end <= start) { + return this + } + start = start >>> 0 + end = end === undefined ? this.length : end >>> 0 + if (!val) val = 0 + var i + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val + } + } else { + var bytes = Buffer.isBuffer(val) ? val : Buffer.from(val, encoding) + var len = bytes.length + if (len === 0) { + throw new TypeError('The value "' + val + '" is invalid for argument "value"') + } + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len] + } + } + return this + } + var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g + function base64clean(str) { + str = str.split('=')[0] + str = str.trim().replace(INVALID_BASE64_RE, '') + if (str.length < 2) return '' + while (str.length % 4 !== 0) { + str = str + '=' + } + return str + } + function toHex(n) { + if (n < 16) return '0' + n.toString(16) + return n.toString(16) + } + function utf8ToBytes(string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i) + if (codePoint > 55295 && codePoint < 57344) { + if (!leadSurrogate) { + if (codePoint > 56319) { + if ((units -= 3) > -1) bytes.push(239, 191, 189) + continue + } else if (i + 1 === length) { + if ((units -= 3) > -1) bytes.push(239, 191, 189) + continue + } + leadSurrogate = codePoint + continue + } + if (codePoint < 56320) { + if ((units -= 3) > -1) bytes.push(239, 191, 189) + leadSurrogate = codePoint + continue + } + codePoint = (((leadSurrogate - 55296) << 10) | (codePoint - 56320)) + 65536 + } else if (leadSurrogate) { + if ((units -= 3) > -1) bytes.push(239, 191, 189) + } + leadSurrogate = null + if (codePoint < 128) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 2048) { + if ((units -= 2) < 0) break + bytes.push((codePoint >> 6) | 192, (codePoint & 63) | 128) + } else if (codePoint < 65536) { + if ((units -= 3) < 0) break + bytes.push( + (codePoint >> 12) | 224, + ((codePoint >> 6) & 63) | 128, + (codePoint & 63) | 128 + ) + } else if (codePoint < 1114112) { + if ((units -= 4) < 0) break + bytes.push( + (codePoint >> 18) | 240, + ((codePoint >> 12) & 63) | 128, + ((codePoint >> 6) & 63) | 128, + (codePoint & 63) | 128 + ) + } else { + throw new Error('Invalid code point') + } + } + return bytes + } + function asciiToBytes(str) { + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + byteArray.push(str.charCodeAt(i) & 255) + } + return byteArray + } + function utf16leToBytes(str, units) { + var c, hi, lo + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break + c = str.charCodeAt(i) + hi = c >> 8 + lo = c % 256 + byteArray.push(lo) + byteArray.push(hi) + } + return byteArray + } + function base64ToBytes(str) { + return base64.toByteArray(base64clean(str)) + } + function blitBuffer(src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if (i + offset >= dst.length || i >= src.length) break + dst[i + offset] = src[i] + } + return i + } + function isInstance(obj, type) { + return ( + obj instanceof type || + (obj != null && + obj.constructor != null && + obj.constructor.name != null && + obj.constructor.name === type.name) + ) + } + function numberIsNaN(obj) { + return obj !== obj + } + }.call(this)) + }.call(this, require('buffer').Buffer)) + }, + { 'base64-js': 46, buffer: 93, ieee754: 150 } + ], + 94: [ + function (require, module, exports) { + var basex = require('base-x') + var ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' + module.exports = basex(ALPHABET) + }, + { 'base-x': 45 } + ], + 95: [ + function (require, module, exports) { + 'use strict' + var base58 = require('bs58') + var Buffer = require('safe-buffer').Buffer + module.exports = function (checksumFn) { + function encode(payload) { + var checksum = checksumFn(payload) + return base58.encode(Buffer.concat([payload, checksum], payload.length + 4)) + } + function decodeRaw(buffer) { + var payload = buffer.slice(0, -4) + var checksum = buffer.slice(-4) + var newChecksum = checksumFn(payload) + if ( + (checksum[0] ^ newChecksum[0]) | + (checksum[1] ^ newChecksum[1]) | + (checksum[2] ^ newChecksum[2]) | + (checksum[3] ^ newChecksum[3]) + ) + return + return payload + } + function decodeUnsafe(string) { + var buffer = base58.decodeUnsafe(string) + if (!buffer) return + return decodeRaw(buffer) + } + function decode(string) { + var buffer = base58.decode(string) + var payload = decodeRaw(buffer, checksumFn) + if (!payload) throw new Error('Invalid checksum') + return payload + } + return { encode: encode, decode: decode, decodeUnsafe: decodeUnsafe } + } + }, + { bs58: 94, 'safe-buffer': 183 } + ], + 96: [ + function (require, module, exports) { + 'use strict' + var createHash = require('create-hash') + var bs58checkBase = require('./base') + function sha256x2(buffer) { + var tmp = createHash('sha256').update(buffer).digest() + return createHash('sha256').update(tmp).digest() + } + module.exports = bs58checkBase(sha256x2) + }, + { './base': 95, 'create-hash': 101 } + ], + 97: [ + function (require, module, exports) { + ;(function (Buffer) { + ;(function () { + module.exports = function xor(a, b) { + var length = Math.min(a.length, b.length) + var buffer = new Buffer(length) + for (var i = 0; i < length; ++i) { + buffer[i] = a[i] ^ b[i] + } + return buffer + } + }.call(this)) + }.call(this, require('buffer').Buffer)) + }, + { buffer: 93 } + ], + 98: [ + function (require, module, exports) { + var Buffer = require('safe-buffer').Buffer + var Transform = require('stream').Transform + var StringDecoder = require('string_decoder').StringDecoder + var inherits = require('inherits') + function CipherBase(hashMode) { + Transform.call(this) + this.hashMode = typeof hashMode === 'string' + if (this.hashMode) { + this[hashMode] = this._finalOrDigest + } else { + this.final = this._finalOrDigest + } + if (this._final) { + this.__final = this._final + this._final = null + } + this._decoder = null + this._encoding = null + } + inherits(CipherBase, Transform) + CipherBase.prototype.update = function (data, inputEnc, outputEnc) { + if (typeof data === 'string') { + data = Buffer.from(data, inputEnc) + } + var outData = this._update(data) + if (this.hashMode) return this + if (outputEnc) { + outData = this._toString(outData, outputEnc) + } + return outData + } + CipherBase.prototype.setAutoPadding = function () {} + CipherBase.prototype.getAuthTag = function () { + throw new Error('trying to get auth tag in unsupported state') + } + CipherBase.prototype.setAuthTag = function () { + throw new Error('trying to set auth tag in unsupported state') + } + CipherBase.prototype.setAAD = function () { + throw new Error('trying to set aad in unsupported state') + } + CipherBase.prototype._transform = function (data, _, next) { + var err + try { + if (this.hashMode) { + this._update(data) + } else { + this.push(this._update(data)) + } + } catch (e) { + err = e + } finally { + next(err) + } + } + CipherBase.prototype._flush = function (done) { + var err + try { + this.push(this.__final()) + } catch (e) { + err = e + } + done(err) + } + CipherBase.prototype._finalOrDigest = function (outputEnc) { + var outData = this.__final() || Buffer.alloc(0) + if (outputEnc) { + outData = this._toString(outData, outputEnc, true) + } + return outData + } + CipherBase.prototype._toString = function (value, enc, fin) { + if (!this._decoder) { + this._decoder = new StringDecoder(enc) + this._encoding = enc + } + if (this._encoding !== enc) throw new Error("can't switch encodings") + var out = this._decoder.write(value) + if (fin) { + out += this._decoder.end() + } + return out + } + module.exports = CipherBase + }, + { inherits: 151, 'safe-buffer': 183, stream: 192, string_decoder: 207 } + ], + 99: [ + function (require, module, exports) { + ;(function (Buffer) { + ;(function () { + var elliptic = require('elliptic') + var BN = require('bn.js') + module.exports = function createECDH(curve) { + return new ECDH(curve) + } + var aliases = { + secp256k1: { name: 'secp256k1', byteLength: 32 }, + secp224r1: { name: 'p224', byteLength: 28 }, + prime256v1: { name: 'p256', byteLength: 32 }, + prime192v1: { name: 'p192', byteLength: 24 }, + ed25519: { name: 'ed25519', byteLength: 32 }, + secp384r1: { name: 'p384', byteLength: 48 }, + secp521r1: { name: 'p521', byteLength: 66 } + } + aliases.p224 = aliases.secp224r1 + aliases.p256 = aliases.secp256r1 = aliases.prime256v1 + aliases.p192 = aliases.secp192r1 = aliases.prime192v1 + aliases.p384 = aliases.secp384r1 + aliases.p521 = aliases.secp521r1 + function ECDH(curve) { + this.curveType = aliases[curve] + if (!this.curveType) { + this.curveType = { name: curve } + } + this.curve = new elliptic.ec(this.curveType.name) + this.keys = void 0 + } + ECDH.prototype.generateKeys = function (enc, format) { + this.keys = this.curve.genKeyPair() + return this.getPublicKey(enc, format) + } + ECDH.prototype.computeSecret = function (other, inenc, enc) { + inenc = inenc || 'utf8' + if (!Buffer.isBuffer(other)) { + other = new Buffer(other, inenc) + } + var otherPub = this.curve.keyFromPublic(other).getPublic() + var out = otherPub.mul(this.keys.getPrivate()).getX() + return formatReturnValue(out, enc, this.curveType.byteLength) + } + ECDH.prototype.getPublicKey = function (enc, format) { + var key = this.keys.getPublic(format === 'compressed', true) + if (format === 'hybrid') { + if (key[key.length - 1] % 2) { + key[0] = 7 + } else { + key[0] = 6 + } + } + return formatReturnValue(key, enc) + } + ECDH.prototype.getPrivateKey = function (enc) { + return formatReturnValue(this.keys.getPrivate(), enc) + } + ECDH.prototype.setPublicKey = function (pub, enc) { + enc = enc || 'utf8' + if (!Buffer.isBuffer(pub)) { + pub = new Buffer(pub, enc) + } + this.keys._importPublic(pub) + return this + } + ECDH.prototype.setPrivateKey = function (priv, enc) { + enc = enc || 'utf8' + if (!Buffer.isBuffer(priv)) { + priv = new Buffer(priv, enc) + } + var _priv = new BN(priv) + _priv = _priv.toString(16) + this.keys = this.curve.genKeyPair() + this.keys._importPrivate(_priv) + return this + } + function formatReturnValue(bn, enc, len) { + if (!Array.isArray(bn)) { + bn = bn.toArray() + } + var buf = new Buffer(bn) + if (len && buf.length < len) { + var zeros = new Buffer(len - buf.length) + zeros.fill(0) + buf = Buffer.concat([zeros, buf]) + } + if (!enc) { + return buf + } else { + return buf.toString(enc) + } + } + }.call(this)) + }.call(this, require('buffer').Buffer)) + }, + { 'bn.js': 100, buffer: 93, elliptic: 117 } + ], + 100: [ + function (require, module, exports) { + arguments[4][15][0].apply(exports, arguments) + }, + { buffer: 49, dup: 15 } + ], + 101: [ + function (require, module, exports) { + 'use strict' + var inherits = require('inherits') + var MD5 = require('md5.js') + var RIPEMD160 = require('ripemd160') + var sha = require('sha.js') + var Base = require('cipher-base') + function Hash(hash) { + Base.call(this, 'digest') + this._hash = hash + } + inherits(Hash, Base) + Hash.prototype._update = function (data) { + this._hash.update(data) + } + Hash.prototype._final = function () { + return this._hash.digest() + } + module.exports = function createHash(alg) { + alg = alg.toLowerCase() + if (alg === 'md5') return new MD5() + if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160() + return new Hash(sha(alg)) + } + }, + { 'cipher-base': 98, inherits: 151, 'md5.js': 155, ripemd160: 182, 'sha.js': 185 } + ], + 102: [ + function (require, module, exports) { + var MD5 = require('md5.js') + module.exports = function (buffer) { + return new MD5().update(buffer).digest() + } + }, + { 'md5.js': 155 } + ], + 103: [ + function (require, module, exports) { + 'use strict' + var inherits = require('inherits') + var Legacy = require('./legacy') + var Base = require('cipher-base') + var Buffer = require('safe-buffer').Buffer + var md5 = require('create-hash/md5') + var RIPEMD160 = require('ripemd160') + var sha = require('sha.js') + var ZEROS = Buffer.alloc(128) + function Hmac(alg, key) { + Base.call(this, 'digest') + if (typeof key === 'string') { + key = Buffer.from(key) + } + var blocksize = alg === 'sha512' || alg === 'sha384' ? 128 : 64 + this._alg = alg + this._key = key + if (key.length > blocksize) { + var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg) + key = hash.update(key).digest() + } else if (key.length < blocksize) { + key = Buffer.concat([key, ZEROS], blocksize) + } + var ipad = (this._ipad = Buffer.allocUnsafe(blocksize)) + var opad = (this._opad = Buffer.allocUnsafe(blocksize)) + for (var i = 0; i < blocksize; i++) { + ipad[i] = key[i] ^ 54 + opad[i] = key[i] ^ 92 + } + this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg) + this._hash.update(ipad) + } + inherits(Hmac, Base) + Hmac.prototype._update = function (data) { + this._hash.update(data) + } + Hmac.prototype._final = function () { + var h = this._hash.digest() + var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg) + return hash.update(this._opad).update(h).digest() + } + module.exports = function createHmac(alg, key) { + alg = alg.toLowerCase() + if (alg === 'rmd160' || alg === 'ripemd160') { + return new Hmac('rmd160', key) + } + if (alg === 'md5') { + return new Legacy(md5, key) + } + return new Hmac(alg, key) + } + }, + { + './legacy': 104, + 'cipher-base': 98, + 'create-hash/md5': 102, + inherits: 151, + ripemd160: 182, + 'safe-buffer': 183, + 'sha.js': 185 + } + ], + 104: [ + function (require, module, exports) { + 'use strict' + var inherits = require('inherits') + var Buffer = require('safe-buffer').Buffer + var Base = require('cipher-base') + var ZEROS = Buffer.alloc(128) + var blocksize = 64 + function Hmac(alg, key) { + Base.call(this, 'digest') + if (typeof key === 'string') { + key = Buffer.from(key) + } + this._alg = alg + this._key = key + if (key.length > blocksize) { + key = alg(key) + } else if (key.length < blocksize) { + key = Buffer.concat([key, ZEROS], blocksize) + } + var ipad = (this._ipad = Buffer.allocUnsafe(blocksize)) + var opad = (this._opad = Buffer.allocUnsafe(blocksize)) + for (var i = 0; i < blocksize; i++) { + ipad[i] = key[i] ^ 54 + opad[i] = key[i] ^ 92 + } + this._hash = [ipad] + } + inherits(Hmac, Base) + Hmac.prototype._update = function (data) { + this._hash.push(data) + } + Hmac.prototype._final = function () { + var h = this._alg(Buffer.concat(this._hash)) + return this._alg(Buffer.concat([this._opad, h])) + } + module.exports = Hmac + }, + { 'cipher-base': 98, inherits: 151, 'safe-buffer': 183 } + ], + 105: [ + function (require, module, exports) { + 'use strict' + exports.randomBytes = + exports.rng = + exports.pseudoRandomBytes = + exports.prng = + require('randombytes') + exports.createHash = exports.Hash = require('create-hash') + exports.createHmac = exports.Hmac = require('create-hmac') + var algos = require('browserify-sign/algos') + var algoKeys = Object.keys(algos) + var hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat( + algoKeys + ) + exports.getHashes = function () { + return hashes + } + var p = require('pbkdf2') + exports.pbkdf2 = p.pbkdf2 + exports.pbkdf2Sync = p.pbkdf2Sync + var aes = require('browserify-cipher') + exports.Cipher = aes.Cipher + exports.createCipher = aes.createCipher + exports.Cipheriv = aes.Cipheriv + exports.createCipheriv = aes.createCipheriv + exports.Decipher = aes.Decipher + exports.createDecipher = aes.createDecipher + exports.Decipheriv = aes.Decipheriv + exports.createDecipheriv = aes.createDecipheriv + exports.getCiphers = aes.getCiphers + exports.listCiphers = aes.listCiphers + var dh = require('diffie-hellman') + exports.DiffieHellmanGroup = dh.DiffieHellmanGroup + exports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup + exports.getDiffieHellman = dh.getDiffieHellman + exports.createDiffieHellman = dh.createDiffieHellman + exports.DiffieHellman = dh.DiffieHellman + var sign = require('browserify-sign') + exports.createSign = sign.createSign + exports.Sign = sign.Sign + exports.createVerify = sign.createVerify + exports.Verify = sign.Verify + exports.createECDH = require('create-ecdh') + var publicEncrypt = require('public-encrypt') + exports.publicEncrypt = publicEncrypt.publicEncrypt + exports.privateEncrypt = publicEncrypt.privateEncrypt + exports.publicDecrypt = publicEncrypt.publicDecrypt + exports.privateDecrypt = publicEncrypt.privateDecrypt + var rf = require('randomfill') + exports.randomFill = rf.randomFill + exports.randomFillSync = rf.randomFillSync + exports.createCredentials = function () { + throw new Error( + [ + 'sorry, createCredentials is not implemented yet', + 'we accept pull requests', + 'https://github.com/crypto-browserify/crypto-browserify' + ].join('\n') + ) + } + exports.constants = { + DH_CHECK_P_NOT_SAFE_PRIME: 2, + DH_CHECK_P_NOT_PRIME: 1, + DH_UNABLE_TO_CHECK_GENERATOR: 4, + DH_NOT_SUITABLE_GENERATOR: 8, + NPN_ENABLED: 1, + ALPN_ENABLED: 1, + RSA_PKCS1_PADDING: 1, + RSA_SSLV23_PADDING: 2, + RSA_NO_PADDING: 3, + RSA_PKCS1_OAEP_PADDING: 4, + RSA_X931_PADDING: 5, + RSA_PKCS1_PSS_PADDING: 6, + POINT_CONVERSION_COMPRESSED: 2, + POINT_CONVERSION_UNCOMPRESSED: 4, + POINT_CONVERSION_HYBRID: 6 + } + }, + { + 'browserify-cipher': 67, + 'browserify-sign': 75, + 'browserify-sign/algos': 72, + 'create-ecdh': 99, + 'create-hash': 101, + 'create-hmac': 103, + 'diffie-hellman': 112, + pbkdf2: 166, + 'public-encrypt': 172, + randombytes: 180, + randomfill: 181 + } + ], + 106: [ + function (require, module, exports) { + 'use strict' + exports.utils = require('./des/utils') + exports.Cipher = require('./des/cipher') + exports.DES = require('./des/des') + exports.CBC = require('./des/cbc') + exports.EDE = require('./des/ede') + }, + { + './des/cbc': 107, + './des/cipher': 108, + './des/des': 109, + './des/ede': 110, + './des/utils': 111 + } + ], + 107: [ + function (require, module, exports) { + 'use strict' + var assert = require('minimalistic-assert') + var inherits = require('inherits') + var proto = {} + function CBCState(iv) { + assert.equal(iv.length, 8, 'Invalid IV length') + this.iv = new Array(8) + for (var i = 0; i < this.iv.length; i++) this.iv[i] = iv[i] + } + function instantiate(Base) { + function CBC(options) { + Base.call(this, options) + this._cbcInit() + } + inherits(CBC, Base) + var keys = Object.keys(proto) + for (var i = 0; i < keys.length; i++) { + var key = keys[i] + CBC.prototype[key] = proto[key] + } + CBC.create = function create(options) { + return new CBC(options) + } + return CBC + } + exports.instantiate = instantiate + proto._cbcInit = function _cbcInit() { + var state = new CBCState(this.options.iv) + this._cbcState = state + } + proto._update = function _update(inp, inOff, out, outOff) { + var state = this._cbcState + var superProto = this.constructor.super_.prototype + var iv = state.iv + if (this.type === 'encrypt') { + for (var i = 0; i < this.blockSize; i++) iv[i] ^= inp[inOff + i] + superProto._update.call(this, iv, 0, out, outOff) + for (var i = 0; i < this.blockSize; i++) iv[i] = out[outOff + i] + } else { + superProto._update.call(this, inp, inOff, out, outOff) + for (var i = 0; i < this.blockSize; i++) out[outOff + i] ^= iv[i] + for (var i = 0; i < this.blockSize; i++) iv[i] = inp[inOff + i] + } + } + }, + { inherits: 151, 'minimalistic-assert': 158 } + ], + 108: [ + function (require, module, exports) { + 'use strict' + var assert = require('minimalistic-assert') + function Cipher(options) { + this.options = options + this.type = this.options.type + this.blockSize = 8 + this._init() + this.buffer = new Array(this.blockSize) + this.bufferOff = 0 + } + module.exports = Cipher + Cipher.prototype._init = function _init() {} + Cipher.prototype.update = function update(data) { + if (data.length === 0) return [] + if (this.type === 'decrypt') return this._updateDecrypt(data) + else return this._updateEncrypt(data) + } + Cipher.prototype._buffer = function _buffer(data, off) { + var min = Math.min(this.buffer.length - this.bufferOff, data.length - off) + for (var i = 0; i < min; i++) this.buffer[this.bufferOff + i] = data[off + i] + this.bufferOff += min + return min + } + Cipher.prototype._flushBuffer = function _flushBuffer(out, off) { + this._update(this.buffer, 0, out, off) + this.bufferOff = 0 + return this.blockSize + } + Cipher.prototype._updateEncrypt = function _updateEncrypt(data) { + var inputOff = 0 + var outputOff = 0 + var count = ((this.bufferOff + data.length) / this.blockSize) | 0 + var out = new Array(count * this.blockSize) + if (this.bufferOff !== 0) { + inputOff += this._buffer(data, inputOff) + if (this.bufferOff === this.buffer.length) + outputOff += this._flushBuffer(out, outputOff) + } + var max = data.length - ((data.length - inputOff) % this.blockSize) + for (; inputOff < max; inputOff += this.blockSize) { + this._update(data, inputOff, out, outputOff) + outputOff += this.blockSize + } + for (; inputOff < data.length; inputOff++, this.bufferOff++) + this.buffer[this.bufferOff] = data[inputOff] + return out + } + Cipher.prototype._updateDecrypt = function _updateDecrypt(data) { + var inputOff = 0 + var outputOff = 0 + var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1 + var out = new Array(count * this.blockSize) + for (; count > 0; count--) { + inputOff += this._buffer(data, inputOff) + outputOff += this._flushBuffer(out, outputOff) + } + inputOff += this._buffer(data, inputOff) + return out + } + Cipher.prototype.final = function final(buffer) { + var first + if (buffer) first = this.update(buffer) + var last + if (this.type === 'encrypt') last = this._finalEncrypt() + else last = this._finalDecrypt() + if (first) return first.concat(last) + else return last + } + Cipher.prototype._pad = function _pad(buffer, off) { + if (off === 0) return false + while (off < buffer.length) buffer[off++] = 0 + return true + } + Cipher.prototype._finalEncrypt = function _finalEncrypt() { + if (!this._pad(this.buffer, this.bufferOff)) return [] + var out = new Array(this.blockSize) + this._update(this.buffer, 0, out, 0) + return out + } + Cipher.prototype._unpad = function _unpad(buffer) { + return buffer + } + Cipher.prototype._finalDecrypt = function _finalDecrypt() { + assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt') + var out = new Array(this.blockSize) + this._flushBuffer(out, 0) + return this._unpad(out) + } + }, + { 'minimalistic-assert': 158 } + ], + 109: [ + function (require, module, exports) { + 'use strict' + var assert = require('minimalistic-assert') + var inherits = require('inherits') + var utils = require('./utils') + var Cipher = require('./cipher') + function DESState() { + this.tmp = new Array(2) + this.keys = null + } + function DES(options) { + Cipher.call(this, options) + var state = new DESState() + this._desState = state + this.deriveKeys(state, options.key) + } + inherits(DES, Cipher) + module.exports = DES + DES.create = function create(options) { + return new DES(options) + } + var shiftTable = [1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1] + DES.prototype.deriveKeys = function deriveKeys(state, key) { + state.keys = new Array(16 * 2) + assert.equal(key.length, this.blockSize, 'Invalid key length') + var kL = utils.readUInt32BE(key, 0) + var kR = utils.readUInt32BE(key, 4) + utils.pc1(kL, kR, state.tmp, 0) + kL = state.tmp[0] + kR = state.tmp[1] + for (var i = 0; i < state.keys.length; i += 2) { + var shift = shiftTable[i >>> 1] + kL = utils.r28shl(kL, shift) + kR = utils.r28shl(kR, shift) + utils.pc2(kL, kR, state.keys, i) + } + } + DES.prototype._update = function _update(inp, inOff, out, outOff) { + var state = this._desState + var l = utils.readUInt32BE(inp, inOff) + var r = utils.readUInt32BE(inp, inOff + 4) + utils.ip(l, r, state.tmp, 0) + l = state.tmp[0] + r = state.tmp[1] + if (this.type === 'encrypt') this._encrypt(state, l, r, state.tmp, 0) + else this._decrypt(state, l, r, state.tmp, 0) + l = state.tmp[0] + r = state.tmp[1] + utils.writeUInt32BE(out, l, outOff) + utils.writeUInt32BE(out, r, outOff + 4) + } + DES.prototype._pad = function _pad(buffer, off) { + var value = buffer.length - off + for (var i = off; i < buffer.length; i++) buffer[i] = value + return true + } + DES.prototype._unpad = function _unpad(buffer) { + var pad = buffer[buffer.length - 1] + for (var i = buffer.length - pad; i < buffer.length; i++) assert.equal(buffer[i], pad) + return buffer.slice(0, buffer.length - pad) + } + DES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) { + var l = lStart + var r = rStart + for (var i = 0; i < state.keys.length; i += 2) { + var keyL = state.keys[i] + var keyR = state.keys[i + 1] + utils.expand(r, state.tmp, 0) + keyL ^= state.tmp[0] + keyR ^= state.tmp[1] + var s = utils.substitute(keyL, keyR) + var f = utils.permute(s) + var t = r + r = (l ^ f) >>> 0 + l = t + } + utils.rip(r, l, out, off) + } + DES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) { + var l = rStart + var r = lStart + for (var i = state.keys.length - 2; i >= 0; i -= 2) { + var keyL = state.keys[i] + var keyR = state.keys[i + 1] + utils.expand(l, state.tmp, 0) + keyL ^= state.tmp[0] + keyR ^= state.tmp[1] + var s = utils.substitute(keyL, keyR) + var f = utils.permute(s) + var t = l + l = (r ^ f) >>> 0 + r = t + } + utils.rip(l, r, out, off) + } + }, + { './cipher': 108, './utils': 111, inherits: 151, 'minimalistic-assert': 158 } + ], + 110: [ + function (require, module, exports) { + 'use strict' + var assert = require('minimalistic-assert') + var inherits = require('inherits') + var Cipher = require('./cipher') + var DES = require('./des') + function EDEState(type, key) { + assert.equal(key.length, 24, 'Invalid key length') + var k1 = key.slice(0, 8) + var k2 = key.slice(8, 16) + var k3 = key.slice(16, 24) + if (type === 'encrypt') { + this.ciphers = [ + DES.create({ type: 'encrypt', key: k1 }), + DES.create({ type: 'decrypt', key: k2 }), + DES.create({ type: 'encrypt', key: k3 }) + ] + } else { + this.ciphers = [ + DES.create({ type: 'decrypt', key: k3 }), + DES.create({ type: 'encrypt', key: k2 }), + DES.create({ type: 'decrypt', key: k1 }) + ] + } + } + function EDE(options) { + Cipher.call(this, options) + var state = new EDEState(this.type, this.options.key) + this._edeState = state + } + inherits(EDE, Cipher) + module.exports = EDE + EDE.create = function create(options) { + return new EDE(options) + } + EDE.prototype._update = function _update(inp, inOff, out, outOff) { + var state = this._edeState + state.ciphers[0]._update(inp, inOff, out, outOff) + state.ciphers[1]._update(out, outOff, out, outOff) + state.ciphers[2]._update(out, outOff, out, outOff) + } + EDE.prototype._pad = DES.prototype._pad + EDE.prototype._unpad = DES.prototype._unpad + }, + { './cipher': 108, './des': 109, inherits: 151, 'minimalistic-assert': 158 } + ], + 111: [ + function (require, module, exports) { + 'use strict' + exports.readUInt32BE = function readUInt32BE(bytes, off) { + var res = + (bytes[0 + off] << 24) | + (bytes[1 + off] << 16) | + (bytes[2 + off] << 8) | + bytes[3 + off] + return res >>> 0 + } + exports.writeUInt32BE = function writeUInt32BE(bytes, value, off) { + bytes[0 + off] = value >>> 24 + bytes[1 + off] = (value >>> 16) & 255 + bytes[2 + off] = (value >>> 8) & 255 + bytes[3 + off] = value & 255 + } + exports.ip = function ip(inL, inR, out, off) { + var outL = 0 + var outR = 0 + for (var i = 6; i >= 0; i -= 2) { + for (var j = 0; j <= 24; j += 8) { + outL <<= 1 + outL |= (inR >>> (j + i)) & 1 + } + for (var j = 0; j <= 24; j += 8) { + outL <<= 1 + outL |= (inL >>> (j + i)) & 1 + } + } + for (var i = 6; i >= 0; i -= 2) { + for (var j = 1; j <= 25; j += 8) { + outR <<= 1 + outR |= (inR >>> (j + i)) & 1 + } + for (var j = 1; j <= 25; j += 8) { + outR <<= 1 + outR |= (inL >>> (j + i)) & 1 + } + } + out[off + 0] = outL >>> 0 + out[off + 1] = outR >>> 0 + } + exports.rip = function rip(inL, inR, out, off) { + var outL = 0 + var outR = 0 + for (var i = 0; i < 4; i++) { + for (var j = 24; j >= 0; j -= 8) { + outL <<= 1 + outL |= (inR >>> (j + i)) & 1 + outL <<= 1 + outL |= (inL >>> (j + i)) & 1 + } + } + for (var i = 4; i < 8; i++) { + for (var j = 24; j >= 0; j -= 8) { + outR <<= 1 + outR |= (inR >>> (j + i)) & 1 + outR <<= 1 + outR |= (inL >>> (j + i)) & 1 + } + } + out[off + 0] = outL >>> 0 + out[off + 1] = outR >>> 0 + } + exports.pc1 = function pc1(inL, inR, out, off) { + var outL = 0 + var outR = 0 + for (var i = 7; i >= 5; i--) { + for (var j = 0; j <= 24; j += 8) { + outL <<= 1 + outL |= (inR >> (j + i)) & 1 + } + for (var j = 0; j <= 24; j += 8) { + outL <<= 1 + outL |= (inL >> (j + i)) & 1 + } + } + for (var j = 0; j <= 24; j += 8) { + outL <<= 1 + outL |= (inR >> (j + i)) & 1 + } + for (var i = 1; i <= 3; i++) { + for (var j = 0; j <= 24; j += 8) { + outR <<= 1 + outR |= (inR >> (j + i)) & 1 + } + for (var j = 0; j <= 24; j += 8) { + outR <<= 1 + outR |= (inL >> (j + i)) & 1 + } + } + for (var j = 0; j <= 24; j += 8) { + outR <<= 1 + outR |= (inL >> (j + i)) & 1 + } + out[off + 0] = outL >>> 0 + out[off + 1] = outR >>> 0 + } + exports.r28shl = function r28shl(num, shift) { + return ((num << shift) & 268435455) | (num >>> (28 - shift)) + } + var pc2table = [ + 14, 11, 17, 4, 27, 23, 25, 0, 13, 22, 7, 18, 5, 9, 16, 24, 2, 20, 12, 21, 1, 8, 15, 26, + 15, 4, 25, 19, 9, 1, 26, 16, 5, 11, 23, 8, 12, 7, 17, 0, 22, 3, 10, 14, 6, 20, 27, 24 + ] + exports.pc2 = function pc2(inL, inR, out, off) { + var outL = 0 + var outR = 0 + var len = pc2table.length >>> 1 + for (var i = 0; i < len; i++) { + outL <<= 1 + outL |= (inL >>> pc2table[i]) & 1 + } + for (var i = len; i < pc2table.length; i++) { + outR <<= 1 + outR |= (inR >>> pc2table[i]) & 1 + } + out[off + 0] = outL >>> 0 + out[off + 1] = outR >>> 0 + } + exports.expand = function expand(r, out, off) { + var outL = 0 + var outR = 0 + outL = ((r & 1) << 5) | (r >>> 27) + for (var i = 23; i >= 15; i -= 4) { + outL <<= 6 + outL |= (r >>> i) & 63 + } + for (var i = 11; i >= 3; i -= 4) { + outR |= (r >>> i) & 63 + outR <<= 6 + } + outR |= ((r & 31) << 1) | (r >>> 31) + out[off + 0] = outL >>> 0 + out[off + 1] = outR >>> 0 + } + var sTable = [ + 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, 3, 10, 10, 6, 6, 12, 12, 11, 5, + 9, 9, 5, 0, 3, 7, 8, 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7, 15, 5, 12, 11, + 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13, 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, + 4, 14, 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, 0, 13, 14, 8, 7, 10, 11, 1, + 10, 3, 4, 15, 13, 4, 1, 2, 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9, 10, 13, + 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10, 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, + 2, 15, 8, 1, 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7, 11, 4, 1, 15, 2, 14, + 12, 3, 5, 11, 10, 5, 14, 2, 7, 12, 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3, + 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, + 11, 1, 7, 13, 13, 8, 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14, 2, 14, 12, 11, + 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1, 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, + 9, 6, 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13, 15, 6, 9, 15, 12, 0, 5, 9, + 6, 10, 3, 4, 0, 5, 14, 3, 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5, 0, 6, + 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, + 12, 15, 3, 10, 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13, 4, 13, 11, 0, 2, + 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, + 6, 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, 10, 9, 15, 5, 6, 0, 8, 15, 0, + 14, 5, 2, 9, 3, 2, 12, 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4, 10, 12, 9, + 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2, 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, + 8, 2, 13, 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11 + ] + exports.substitute = function substitute(inL, inR) { + var out = 0 + for (var i = 0; i < 4; i++) { + var b = (inL >>> (18 - i * 6)) & 63 + var sb = sTable[i * 64 + b] + out <<= 4 + out |= sb + } + for (var i = 0; i < 4; i++) { + var b = (inR >>> (18 - i * 6)) & 63 + var sb = sTable[4 * 64 + i * 64 + b] + out <<= 4 + out |= sb + } + return out >>> 0 + } + var permuteTable = [ + 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22, 30, 24, 8, 18, 0, 5, 29, 23, + 13, 19, 2, 26, 10, 21, 28, 7 + ] + exports.permute = function permute(num) { + var out = 0 + for (var i = 0; i < permuteTable.length; i++) { + out <<= 1 + out |= (num >>> permuteTable[i]) & 1 + } + return out >>> 0 + } + exports.padSplit = function padSplit(num, size, group) { + var str = num.toString(2) + while (str.length < size) str = '0' + str + var out = [] + for (var i = 0; i < size; i += group) out.push(str.slice(i, i + group)) + return out.join(' ') + } + }, + {} + ], + 112: [ + function (require, module, exports) { + ;(function (Buffer) { + ;(function () { + var generatePrime = require('./lib/generatePrime') + var primes = require('./lib/primes.json') + var DH = require('./lib/dh') + function getDiffieHellman(mod) { + var prime = new Buffer(primes[mod].prime, 'hex') + var gen = new Buffer(primes[mod].gen, 'hex') + return new DH(prime, gen) + } + var ENCODINGS = { binary: true, hex: true, base64: true } + function createDiffieHellman(prime, enc, generator, genc) { + if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) { + return createDiffieHellman(prime, 'binary', enc, generator) + } + enc = enc || 'binary' + genc = genc || 'binary' + generator = generator || new Buffer([2]) + if (!Buffer.isBuffer(generator)) { + generator = new Buffer(generator, genc) + } + if (typeof prime === 'number') { + return new DH(generatePrime(prime, generator), generator, true) + } + if (!Buffer.isBuffer(prime)) { + prime = new Buffer(prime, enc) + } + return new DH(prime, generator, true) + } + exports.DiffieHellmanGroup = + exports.createDiffieHellmanGroup = + exports.getDiffieHellman = + getDiffieHellman + exports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman + }.call(this)) + }.call(this, require('buffer').Buffer)) + }, + { './lib/dh': 113, './lib/generatePrime': 114, './lib/primes.json': 115, buffer: 93 } + ], + 113: [ + function (require, module, exports) { + ;(function (Buffer) { + ;(function () { + var BN = require('bn.js') + var MillerRabin = require('miller-rabin') + var millerRabin = new MillerRabin() + var TWENTYFOUR = new BN(24) + var ELEVEN = new BN(11) + var TEN = new BN(10) + var THREE = new BN(3) + var SEVEN = new BN(7) + var primes = require('./generatePrime') + var randomBytes = require('randombytes') + module.exports = DH + function setPublicKey(pub, enc) { + enc = enc || 'utf8' + if (!Buffer.isBuffer(pub)) { + pub = new Buffer(pub, enc) + } + this._pub = new BN(pub) + return this + } + function setPrivateKey(priv, enc) { + enc = enc || 'utf8' + if (!Buffer.isBuffer(priv)) { + priv = new Buffer(priv, enc) + } + this._priv = new BN(priv) + return this + } + var primeCache = {} + function checkPrime(prime, generator) { + var gen = generator.toString('hex') + var hex = [gen, prime.toString(16)].join('_') + if (hex in primeCache) { + return primeCache[hex] + } + var error = 0 + if ( + prime.isEven() || + !primes.simpleSieve || + !primes.fermatTest(prime) || + !millerRabin.test(prime) + ) { + error += 1 + if (gen === '02' || gen === '05') { + error += 8 + } else { + error += 4 + } + primeCache[hex] = error + return error + } + if (!millerRabin.test(prime.shrn(1))) { + error += 2 + } + var rem + switch (gen) { + case '02': + if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) { + error += 8 + } + break + case '05': + rem = prime.mod(TEN) + if (rem.cmp(THREE) && rem.cmp(SEVEN)) { + error += 8 + } + break + default: + error += 4 + } + primeCache[hex] = error + return error + } + function DH(prime, generator, malleable) { + this.setGenerator(generator) + this.__prime = new BN(prime) + this._prime = BN.mont(this.__prime) + this._primeLen = prime.length + this._pub = undefined + this._priv = undefined + this._primeCode = undefined + if (malleable) { + this.setPublicKey = setPublicKey + this.setPrivateKey = setPrivateKey + } else { + this._primeCode = 8 + } + } + Object.defineProperty(DH.prototype, 'verifyError', { + enumerable: true, + get: function () { + if (typeof this._primeCode !== 'number') { + this._primeCode = checkPrime(this.__prime, this.__gen) + } + return this._primeCode + } + }) + DH.prototype.generateKeys = function () { + if (!this._priv) { + this._priv = new BN(randomBytes(this._primeLen)) + } + this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed() + return this.getPublicKey() + } + DH.prototype.computeSecret = function (other) { + other = new BN(other) + other = other.toRed(this._prime) + var secret = other.redPow(this._priv).fromRed() + var out = new Buffer(secret.toArray()) + var prime = this.getPrime() + if (out.length < prime.length) { + var front = new Buffer(prime.length - out.length) + front.fill(0) + out = Buffer.concat([front, out]) + } + return out + } + DH.prototype.getPublicKey = function getPublicKey(enc) { + return formatReturnValue(this._pub, enc) + } + DH.prototype.getPrivateKey = function getPrivateKey(enc) { + return formatReturnValue(this._priv, enc) + } + DH.prototype.getPrime = function (enc) { + return formatReturnValue(this.__prime, enc) + } + DH.prototype.getGenerator = function (enc) { + return formatReturnValue(this._gen, enc) + } + DH.prototype.setGenerator = function (gen, enc) { + enc = enc || 'utf8' + if (!Buffer.isBuffer(gen)) { + gen = new Buffer(gen, enc) + } + this.__gen = gen + this._gen = new BN(gen) + return this + } + function formatReturnValue(bn, enc) { + var buf = new Buffer(bn.toArray()) + if (!enc) { + return buf + } else { + return buf.toString(enc) + } + } + }.call(this)) + }.call(this, require('buffer').Buffer)) + }, + { './generatePrime': 114, 'bn.js': 116, buffer: 93, 'miller-rabin': 156, randombytes: 180 } + ], + 114: [ + function (require, module, exports) { + var randomBytes = require('randombytes') + module.exports = findPrime + findPrime.simpleSieve = simpleSieve + findPrime.fermatTest = fermatTest + var BN = require('bn.js') + var TWENTYFOUR = new BN(24) + var MillerRabin = require('miller-rabin') + var millerRabin = new MillerRabin() + var ONE = new BN(1) + var TWO = new BN(2) + var FIVE = new BN(5) + var SIXTEEN = new BN(16) + var EIGHT = new BN(8) + var TEN = new BN(10) + var THREE = new BN(3) + var SEVEN = new BN(7) + var ELEVEN = new BN(11) + var FOUR = new BN(4) + var TWELVE = new BN(12) + var primes = null + function _getPrimes() { + if (primes !== null) return primes + var limit = 1048576 + var res = [] + res[0] = 2 + for (var i = 1, k = 3; k < limit; k += 2) { + var sqrt = Math.ceil(Math.sqrt(k)) + for (var j = 0; j < i && res[j] <= sqrt; j++) if (k % res[j] === 0) break + if (i !== j && res[j] <= sqrt) continue + res[i++] = k + } + primes = res + return res + } + function simpleSieve(p) { + var primes = _getPrimes() + for (var i = 0; i < primes.length; i++) + if (p.modn(primes[i]) === 0) { + if (p.cmpn(primes[i]) === 0) { + return true + } else { + return false + } + } + return true + } + function fermatTest(p) { + var red = BN.mont(p) + return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0 + } + function findPrime(bits, gen) { + if (bits < 16) { + if (gen === 2 || gen === 5) { + return new BN([140, 123]) + } else { + return new BN([140, 39]) + } + } + gen = new BN(gen) + var num, n2 + while (true) { + num = new BN(randomBytes(Math.ceil(bits / 8))) + while (num.bitLength() > bits) { + num.ishrn(1) + } + if (num.isEven()) { + num.iadd(ONE) + } + if (!num.testn(1)) { + num.iadd(TWO) + } + if (!gen.cmp(TWO)) { + while (num.mod(TWENTYFOUR).cmp(ELEVEN)) { + num.iadd(FOUR) + } + } else if (!gen.cmp(FIVE)) { + while (num.mod(TEN).cmp(THREE)) { + num.iadd(FOUR) + } + } + n2 = num.shrn(1) + if ( + simpleSieve(n2) && + simpleSieve(num) && + fermatTest(n2) && + fermatTest(num) && + millerRabin.test(n2) && + millerRabin.test(num) + ) { + return num + } + } + } + }, + { 'bn.js': 116, 'miller-rabin': 156, randombytes: 180 } + ], + 115: [ + function (require, module, exports) { + module.exports = { + modp1: { + gen: '02', + prime: + 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff' + }, + modp2: { + gen: '02', + prime: + 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff' + }, + modp5: { + gen: '02', + prime: + 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff' + }, + modp14: { + gen: '02', + prime: + 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff' + }, + modp15: { + gen: '02', + prime: + 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff' + }, + modp16: { + gen: '02', + prime: + 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff' + }, + modp17: { + gen: '02', + prime: + 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff' + }, + modp18: { + gen: '02', + prime: + 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff' + } + } + }, + {} + ], + 116: [ + function (require, module, exports) { + arguments[4][15][0].apply(exports, arguments) + }, + { buffer: 49, dup: 15 } + ], + 117: [ + function (require, module, exports) { + 'use strict' + var elliptic = exports + elliptic.version = require('../package.json').version + elliptic.utils = require('./elliptic/utils') + elliptic.rand = require('brorand') + elliptic.curve = require('./elliptic/curve') + elliptic.curves = require('./elliptic/curves') + elliptic.ec = require('./elliptic/ec') + elliptic.eddsa = require('./elliptic/eddsa') + }, + { + '../package.json': 133, + './elliptic/curve': 120, + './elliptic/curves': 123, + './elliptic/ec': 124, + './elliptic/eddsa': 127, + './elliptic/utils': 131, + brorand: 48 + } + ], + 118: [ + function (require, module, exports) { + 'use strict' + var BN = require('bn.js') + var utils = require('../utils') + var getNAF = utils.getNAF + var getJSF = utils.getJSF + var assert = utils.assert + function BaseCurve(type, conf) { + this.type = type + this.p = new BN(conf.p, 16) + this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p) + this.zero = new BN(0).toRed(this.red) + this.one = new BN(1).toRed(this.red) + this.two = new BN(2).toRed(this.red) + this.n = conf.n && new BN(conf.n, 16) + this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed) + this._wnafT1 = new Array(4) + this._wnafT2 = new Array(4) + this._wnafT3 = new Array(4) + this._wnafT4 = new Array(4) + this._bitLength = this.n ? this.n.bitLength() : 0 + var adjustCount = this.n && this.p.div(this.n) + if (!adjustCount || adjustCount.cmpn(100) > 0) { + this.redN = null + } else { + this._maxwellTrick = true + this.redN = this.n.toRed(this.red) + } + } + module.exports = BaseCurve + BaseCurve.prototype.point = function point() { + throw new Error('Not implemented') + } + BaseCurve.prototype.validate = function validate() { + throw new Error('Not implemented') + } + BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) { + assert(p.precomputed) + var doubles = p._getDoubles() + var naf = getNAF(k, 1, this._bitLength) + var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1) + I /= 3 + var repr = [] + for (var j = 0; j < naf.length; j += doubles.step) { + var nafW = 0 + for (var k = j + doubles.step - 1; k >= j; k--) nafW = (nafW << 1) + naf[k] + repr.push(nafW) + } + var a = this.jpoint(null, null, null) + var b = this.jpoint(null, null, null) + for (var i = I; i > 0; i--) { + for (var j = 0; j < repr.length; j++) { + var nafW = repr[j] + if (nafW === i) b = b.mixedAdd(doubles.points[j]) + else if (nafW === -i) b = b.mixedAdd(doubles.points[j].neg()) + } + a = a.add(b) + } + return a.toP() + } + BaseCurve.prototype._wnafMul = function _wnafMul(p, k) { + var w = 4 + var nafPoints = p._getNAFPoints(w) + w = nafPoints.wnd + var wnd = nafPoints.points + var naf = getNAF(k, w, this._bitLength) + var acc = this.jpoint(null, null, null) + for (var i = naf.length - 1; i >= 0; i--) { + for (var k = 0; i >= 0 && naf[i] === 0; i--) k++ + if (i >= 0) k++ + acc = acc.dblp(k) + if (i < 0) break + var z = naf[i] + assert(z !== 0) + if (p.type === 'affine') { + if (z > 0) acc = acc.mixedAdd(wnd[(z - 1) >> 1]) + else acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg()) + } else { + if (z > 0) acc = acc.add(wnd[(z - 1) >> 1]) + else acc = acc.add(wnd[(-z - 1) >> 1].neg()) + } + } + return p.type === 'affine' ? acc.toP() : acc + } + BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd( + defW, + points, + coeffs, + len, + jacobianResult + ) { + var wndWidth = this._wnafT1 + var wnd = this._wnafT2 + var naf = this._wnafT3 + var max = 0 + for (var i = 0; i < len; i++) { + var p = points[i] + var nafPoints = p._getNAFPoints(defW) + wndWidth[i] = nafPoints.wnd + wnd[i] = nafPoints.points + } + for (var i = len - 1; i >= 1; i -= 2) { + var a = i - 1 + var b = i + if (wndWidth[a] !== 1 || wndWidth[b] !== 1) { + naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength) + naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength) + max = Math.max(naf[a].length, max) + max = Math.max(naf[b].length, max) + continue + } + var comb = [points[a], null, null, points[b]] + if (points[a].y.cmp(points[b].y) === 0) { + comb[1] = points[a].add(points[b]) + comb[2] = points[a].toJ().mixedAdd(points[b].neg()) + } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) { + comb[1] = points[a].toJ().mixedAdd(points[b]) + comb[2] = points[a].add(points[b].neg()) + } else { + comb[1] = points[a].toJ().mixedAdd(points[b]) + comb[2] = points[a].toJ().mixedAdd(points[b].neg()) + } + var index = [-3, -1, -5, -7, 0, 7, 5, 1, 3] + var jsf = getJSF(coeffs[a], coeffs[b]) + max = Math.max(jsf[0].length, max) + naf[a] = new Array(max) + naf[b] = new Array(max) + for (var j = 0; j < max; j++) { + var ja = jsf[0][j] | 0 + var jb = jsf[1][j] | 0 + naf[a][j] = index[(ja + 1) * 3 + (jb + 1)] + naf[b][j] = 0 + wnd[a] = comb + } + } + var acc = this.jpoint(null, null, null) + var tmp = this._wnafT4 + for (var i = max; i >= 0; i--) { + var k = 0 + while (i >= 0) { + var zero = true + for (var j = 0; j < len; j++) { + tmp[j] = naf[j][i] | 0 + if (tmp[j] !== 0) zero = false + } + if (!zero) break + k++ + i-- + } + if (i >= 0) k++ + acc = acc.dblp(k) + if (i < 0) break + for (var j = 0; j < len; j++) { + var z = tmp[j] + var p + if (z === 0) continue + else if (z > 0) p = wnd[j][(z - 1) >> 1] + else if (z < 0) p = wnd[j][(-z - 1) >> 1].neg() + if (p.type === 'affine') acc = acc.mixedAdd(p) + else acc = acc.add(p) + } + } + for (var i = 0; i < len; i++) wnd[i] = null + if (jacobianResult) return acc + else return acc.toP() + } + function BasePoint(curve, type) { + this.curve = curve + this.type = type + this.precomputed = null + } + BaseCurve.BasePoint = BasePoint + BasePoint.prototype.eq = function eq() { + throw new Error('Not implemented') + } + BasePoint.prototype.validate = function validate() { + return this.curve.validate(this) + } + BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) { + bytes = utils.toArray(bytes, enc) + var len = this.p.byteLength() + if ( + (bytes[0] === 4 || bytes[0] === 6 || bytes[0] === 7) && + bytes.length - 1 === 2 * len + ) { + if (bytes[0] === 6) assert(bytes[bytes.length - 1] % 2 === 0) + else if (bytes[0] === 7) assert(bytes[bytes.length - 1] % 2 === 1) + var res = this.point(bytes.slice(1, 1 + len), bytes.slice(1 + len, 1 + 2 * len)) + return res + } else if ((bytes[0] === 2 || bytes[0] === 3) && bytes.length - 1 === len) { + return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 3) + } + throw new Error('Unknown point format') + } + BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) { + return this.encode(enc, true) + } + BasePoint.prototype._encode = function _encode(compact) { + var len = this.curve.p.byteLength() + var x = this.getX().toArray('be', len) + if (compact) return [this.getY().isEven() ? 2 : 3].concat(x) + return [4].concat(x, this.getY().toArray('be', len)) + } + BasePoint.prototype.encode = function encode(enc, compact) { + return utils.encode(this._encode(compact), enc) + } + BasePoint.prototype.precompute = function precompute(power) { + if (this.precomputed) return this + var precomputed = { doubles: null, naf: null, beta: null } + precomputed.naf = this._getNAFPoints(8) + precomputed.doubles = this._getDoubles(4, power) + precomputed.beta = this._getBeta() + this.precomputed = precomputed + return this + } + BasePoint.prototype._hasDoubles = function _hasDoubles(k) { + if (!this.precomputed) return false + var doubles = this.precomputed.doubles + if (!doubles) return false + return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step) + } + BasePoint.prototype._getDoubles = function _getDoubles(step, power) { + if (this.precomputed && this.precomputed.doubles) return this.precomputed.doubles + var doubles = [this] + var acc = this + for (var i = 0; i < power; i += step) { + for (var j = 0; j < step; j++) acc = acc.dbl() + doubles.push(acc) + } + return { step: step, points: doubles } + } + BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) { + if (this.precomputed && this.precomputed.naf) return this.precomputed.naf + var res = [this] + var max = (1 << wnd) - 1 + var dbl = max === 1 ? null : this.dbl() + for (var i = 1; i < max; i++) res[i] = res[i - 1].add(dbl) + return { wnd: wnd, points: res } + } + BasePoint.prototype._getBeta = function _getBeta() { + return null + } + BasePoint.prototype.dblp = function dblp(k) { + var r = this + for (var i = 0; i < k; i++) r = r.dbl() + return r + } + }, + { '../utils': 131, 'bn.js': 132 } + ], + 119: [ + function (require, module, exports) { + 'use strict' + var utils = require('../utils') + var BN = require('bn.js') + var inherits = require('inherits') + var Base = require('./base') + var assert = utils.assert + function EdwardsCurve(conf) { + this.twisted = (conf.a | 0) !== 1 + this.mOneA = this.twisted && (conf.a | 0) === -1 + this.extended = this.mOneA + Base.call(this, 'edwards', conf) + this.a = new BN(conf.a, 16).umod(this.red.m) + this.a = this.a.toRed(this.red) + this.c = new BN(conf.c, 16).toRed(this.red) + this.c2 = this.c.redSqr() + this.d = new BN(conf.d, 16).toRed(this.red) + this.dd = this.d.redAdd(this.d) + assert(!this.twisted || this.c.fromRed().cmpn(1) === 0) + this.oneC = (conf.c | 0) === 1 + } + inherits(EdwardsCurve, Base) + module.exports = EdwardsCurve + EdwardsCurve.prototype._mulA = function _mulA(num) { + if (this.mOneA) return num.redNeg() + else return this.a.redMul(num) + } + EdwardsCurve.prototype._mulC = function _mulC(num) { + if (this.oneC) return num + else return this.c.redMul(num) + } + EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) { + return this.point(x, y, z, t) + } + EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) { + x = new BN(x, 16) + if (!x.red) x = x.toRed(this.red) + var x2 = x.redSqr() + var rhs = this.c2.redSub(this.a.redMul(x2)) + var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2)) + var y2 = rhs.redMul(lhs.redInvm()) + var y = y2.redSqrt() + if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error('invalid point') + var isOdd = y.fromRed().isOdd() + if ((odd && !isOdd) || (!odd && isOdd)) y = y.redNeg() + return this.point(x, y) + } + EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) { + y = new BN(y, 16) + if (!y.red) y = y.toRed(this.red) + var y2 = y.redSqr() + var lhs = y2.redSub(this.c2) + var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a) + var x2 = lhs.redMul(rhs.redInvm()) + if (x2.cmp(this.zero) === 0) { + if (odd) throw new Error('invalid point') + else return this.point(this.zero, y) + } + var x = x2.redSqrt() + if (x.redSqr().redSub(x2).cmp(this.zero) !== 0) throw new Error('invalid point') + if (x.fromRed().isOdd() !== odd) x = x.redNeg() + return this.point(x, y) + } + EdwardsCurve.prototype.validate = function validate(point) { + if (point.isInfinity()) return true + point.normalize() + var x2 = point.x.redSqr() + var y2 = point.y.redSqr() + var lhs = x2.redMul(this.a).redAdd(y2) + var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2))) + return lhs.cmp(rhs) === 0 + } + function Point(curve, x, y, z, t) { + Base.BasePoint.call(this, curve, 'projective') + if (x === null && y === null && z === null) { + this.x = this.curve.zero + this.y = this.curve.one + this.z = this.curve.one + this.t = this.curve.zero + this.zOne = true + } else { + this.x = new BN(x, 16) + this.y = new BN(y, 16) + this.z = z ? new BN(z, 16) : this.curve.one + this.t = t && new BN(t, 16) + if (!this.x.red) this.x = this.x.toRed(this.curve.red) + if (!this.y.red) this.y = this.y.toRed(this.curve.red) + if (!this.z.red) this.z = this.z.toRed(this.curve.red) + if (this.t && !this.t.red) this.t = this.t.toRed(this.curve.red) + this.zOne = this.z === this.curve.one + if (this.curve.extended && !this.t) { + this.t = this.x.redMul(this.y) + if (!this.zOne) this.t = this.t.redMul(this.z.redInvm()) + } + } + } + inherits(Point, Base.BasePoint) + EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) { + return Point.fromJSON(this, obj) + } + EdwardsCurve.prototype.point = function point(x, y, z, t) { + return new Point(this, x, y, z, t) + } + Point.fromJSON = function fromJSON(curve, obj) { + return new Point(curve, obj[0], obj[1], obj[2]) + } + Point.prototype.inspect = function inspect() { + if (this.isInfinity()) return '' + return ( + '' + ) + } + Point.prototype.isInfinity = function isInfinity() { + return ( + this.x.cmpn(0) === 0 && + (this.y.cmp(this.z) === 0 || (this.zOne && this.y.cmp(this.curve.c) === 0)) + ) + } + Point.prototype._extDbl = function _extDbl() { + var a = this.x.redSqr() + var b = this.y.redSqr() + var c = this.z.redSqr() + c = c.redIAdd(c) + var d = this.curve._mulA(a) + var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b) + var g = d.redAdd(b) + var f = g.redSub(c) + var h = d.redSub(b) + var nx = e.redMul(f) + var ny = g.redMul(h) + var nt = e.redMul(h) + var nz = f.redMul(g) + return this.curve.point(nx, ny, nz, nt) + } + Point.prototype._projDbl = function _projDbl() { + var b = this.x.redAdd(this.y).redSqr() + var c = this.x.redSqr() + var d = this.y.redSqr() + var nx + var ny + var nz + if (this.curve.twisted) { + var e = this.curve._mulA(c) + var f = e.redAdd(d) + if (this.zOne) { + nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two)) + ny = f.redMul(e.redSub(d)) + nz = f.redSqr().redSub(f).redSub(f) + } else { + var h = this.z.redSqr() + var j = f.redSub(h).redISub(h) + nx = b.redSub(c).redISub(d).redMul(j) + ny = f.redMul(e.redSub(d)) + nz = f.redMul(j) + } + } else { + var e = c.redAdd(d) + var h = this.curve._mulC(this.z).redSqr() + var j = e.redSub(h).redSub(h) + nx = this.curve._mulC(b.redISub(e)).redMul(j) + ny = this.curve._mulC(e).redMul(c.redISub(d)) + nz = e.redMul(j) + } + return this.curve.point(nx, ny, nz) + } + Point.prototype.dbl = function dbl() { + if (this.isInfinity()) return this + if (this.curve.extended) return this._extDbl() + else return this._projDbl() + } + Point.prototype._extAdd = function _extAdd(p) { + var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x)) + var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)) + var c = this.t.redMul(this.curve.dd).redMul(p.t) + var d = this.z.redMul(p.z.redAdd(p.z)) + var e = b.redSub(a) + var f = d.redSub(c) + var g = d.redAdd(c) + var h = b.redAdd(a) + var nx = e.redMul(f) + var ny = g.redMul(h) + var nt = e.redMul(h) + var nz = f.redMul(g) + return this.curve.point(nx, ny, nz, nt) + } + Point.prototype._projAdd = function _projAdd(p) { + var a = this.z.redMul(p.z) + var b = a.redSqr() + var c = this.x.redMul(p.x) + var d = this.y.redMul(p.y) + var e = this.curve.d.redMul(c).redMul(d) + var f = b.redSub(e) + var g = b.redAdd(e) + var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d) + var nx = a.redMul(f).redMul(tmp) + var ny + var nz + if (this.curve.twisted) { + ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c))) + nz = f.redMul(g) + } else { + ny = a.redMul(g).redMul(d.redSub(c)) + nz = this.curve._mulC(f).redMul(g) + } + return this.curve.point(nx, ny, nz) + } + Point.prototype.add = function add(p) { + if (this.isInfinity()) return p + if (p.isInfinity()) return this + if (this.curve.extended) return this._extAdd(p) + else return this._projAdd(p) + } + Point.prototype.mul = function mul(k) { + if (this._hasDoubles(k)) return this.curve._fixedNafMul(this, k) + else return this.curve._wnafMul(this, k) + } + Point.prototype.mulAdd = function mulAdd(k1, p, k2) { + return this.curve._wnafMulAdd(1, [this, p], [k1, k2], 2, false) + } + Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) { + return this.curve._wnafMulAdd(1, [this, p], [k1, k2], 2, true) + } + Point.prototype.normalize = function normalize() { + if (this.zOne) return this + var zi = this.z.redInvm() + this.x = this.x.redMul(zi) + this.y = this.y.redMul(zi) + if (this.t) this.t = this.t.redMul(zi) + this.z = this.curve.one + this.zOne = true + return this + } + Point.prototype.neg = function neg() { + return this.curve.point(this.x.redNeg(), this.y, this.z, this.t && this.t.redNeg()) + } + Point.prototype.getX = function getX() { + this.normalize() + return this.x.fromRed() + } + Point.prototype.getY = function getY() { + this.normalize() + return this.y.fromRed() + } + Point.prototype.eq = function eq(other) { + return ( + this === other || + (this.getX().cmp(other.getX()) === 0 && this.getY().cmp(other.getY()) === 0) + ) + } + Point.prototype.eqXToP = function eqXToP(x) { + var rx = x.toRed(this.curve.red).redMul(this.z) + if (this.x.cmp(rx) === 0) return true + var xc = x.clone() + var t = this.curve.redN.redMul(this.z) + for (;;) { + xc.iadd(this.curve.n) + if (xc.cmp(this.curve.p) >= 0) return false + rx.redIAdd(t) + if (this.x.cmp(rx) === 0) return true + } + } + Point.prototype.toP = Point.prototype.normalize + Point.prototype.mixedAdd = Point.prototype.add + }, + { '../utils': 131, './base': 118, 'bn.js': 132, inherits: 151 } + ], + 120: [ + function (require, module, exports) { + 'use strict' + var curve = exports + curve.base = require('./base') + curve.short = require('./short') + curve.mont = require('./mont') + curve.edwards = require('./edwards') + }, + { './base': 118, './edwards': 119, './mont': 121, './short': 122 } + ], + 121: [ + function (require, module, exports) { + 'use strict' + var BN = require('bn.js') + var inherits = require('inherits') + var Base = require('./base') + var utils = require('../utils') + function MontCurve(conf) { + Base.call(this, 'mont', conf) + this.a = new BN(conf.a, 16).toRed(this.red) + this.b = new BN(conf.b, 16).toRed(this.red) + this.i4 = new BN(4).toRed(this.red).redInvm() + this.two = new BN(2).toRed(this.red) + this.a24 = this.i4.redMul(this.a.redAdd(this.two)) + } + inherits(MontCurve, Base) + module.exports = MontCurve + MontCurve.prototype.validate = function validate(point) { + var x = point.normalize().x + var x2 = x.redSqr() + var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x) + var y = rhs.redSqrt() + return y.redSqr().cmp(rhs) === 0 + } + function Point(curve, x, z) { + Base.BasePoint.call(this, curve, 'projective') + if (x === null && z === null) { + this.x = this.curve.one + this.z = this.curve.zero + } else { + this.x = new BN(x, 16) + this.z = new BN(z, 16) + if (!this.x.red) this.x = this.x.toRed(this.curve.red) + if (!this.z.red) this.z = this.z.toRed(this.curve.red) + } + } + inherits(Point, Base.BasePoint) + MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) { + return this.point(utils.toArray(bytes, enc), 1) + } + MontCurve.prototype.point = function point(x, z) { + return new Point(this, x, z) + } + MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) { + return Point.fromJSON(this, obj) + } + Point.prototype.precompute = function precompute() {} + Point.prototype._encode = function _encode() { + return this.getX().toArray('be', this.curve.p.byteLength()) + } + Point.fromJSON = function fromJSON(curve, obj) { + return new Point(curve, obj[0], obj[1] || curve.one) + } + Point.prototype.inspect = function inspect() { + if (this.isInfinity()) return '' + return ( + '' + ) + } + Point.prototype.isInfinity = function isInfinity() { + return this.z.cmpn(0) === 0 + } + Point.prototype.dbl = function dbl() { + var a = this.x.redAdd(this.z) + var aa = a.redSqr() + var b = this.x.redSub(this.z) + var bb = b.redSqr() + var c = aa.redSub(bb) + var nx = aa.redMul(bb) + var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c))) + return this.curve.point(nx, nz) + } + Point.prototype.add = function add() { + throw new Error('Not supported on Montgomery curve') + } + Point.prototype.diffAdd = function diffAdd(p, diff) { + var a = this.x.redAdd(this.z) + var b = this.x.redSub(this.z) + var c = p.x.redAdd(p.z) + var d = p.x.redSub(p.z) + var da = d.redMul(a) + var cb = c.redMul(b) + var nx = diff.z.redMul(da.redAdd(cb).redSqr()) + var nz = diff.x.redMul(da.redISub(cb).redSqr()) + return this.curve.point(nx, nz) + } + Point.prototype.mul = function mul(k) { + var t = k.clone() + var a = this + var b = this.curve.point(null, null) + var c = this + for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1)) bits.push(t.andln(1)) + for (var i = bits.length - 1; i >= 0; i--) { + if (bits[i] === 0) { + a = a.diffAdd(b, c) + b = b.dbl() + } else { + b = a.diffAdd(b, c) + a = a.dbl() + } + } + return b + } + Point.prototype.mulAdd = function mulAdd() { + throw new Error('Not supported on Montgomery curve') + } + Point.prototype.jumlAdd = function jumlAdd() { + throw new Error('Not supported on Montgomery curve') + } + Point.prototype.eq = function eq(other) { + return this.getX().cmp(other.getX()) === 0 + } + Point.prototype.normalize = function normalize() { + this.x = this.x.redMul(this.z.redInvm()) + this.z = this.curve.one + return this + } + Point.prototype.getX = function getX() { + this.normalize() + return this.x.fromRed() + } + }, + { '../utils': 131, './base': 118, 'bn.js': 132, inherits: 151 } + ], + 122: [ + function (require, module, exports) { + 'use strict' + var utils = require('../utils') + var BN = require('bn.js') + var inherits = require('inherits') + var Base = require('./base') + var assert = utils.assert + function ShortCurve(conf) { + Base.call(this, 'short', conf) + this.a = new BN(conf.a, 16).toRed(this.red) + this.b = new BN(conf.b, 16).toRed(this.red) + this.tinv = this.two.redInvm() + this.zeroA = this.a.fromRed().cmpn(0) === 0 + this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0 + this.endo = this._getEndomorphism(conf) + this._endoWnafT1 = new Array(4) + this._endoWnafT2 = new Array(4) + } + inherits(ShortCurve, Base) + module.exports = ShortCurve + ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) { + if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1) return + var beta + var lambda + if (conf.beta) { + beta = new BN(conf.beta, 16).toRed(this.red) + } else { + var betas = this._getEndoRoots(this.p) + beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1] + beta = beta.toRed(this.red) + } + if (conf.lambda) { + lambda = new BN(conf.lambda, 16) + } else { + var lambdas = this._getEndoRoots(this.n) + if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) { + lambda = lambdas[0] + } else { + lambda = lambdas[1] + assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0) + } + } + var basis + if (conf.basis) { + basis = conf.basis.map(function (vec) { + return { a: new BN(vec.a, 16), b: new BN(vec.b, 16) } + }) + } else { + basis = this._getEndoBasis(lambda) + } + return { beta: beta, lambda: lambda, basis: basis } + } + ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) { + var red = num === this.p ? this.red : BN.mont(num) + var tinv = new BN(2).toRed(red).redInvm() + var ntinv = tinv.redNeg() + var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv) + var l1 = ntinv.redAdd(s).fromRed() + var l2 = ntinv.redSub(s).fromRed() + return [l1, l2] + } + ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) { + var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2)) + var u = lambda + var v = this.n.clone() + var x1 = new BN(1) + var y1 = new BN(0) + var x2 = new BN(0) + var y2 = new BN(1) + var a0 + var b0 + var a1 + var b1 + var a2 + var b2 + var prevR + var i = 0 + var r + var x + while (u.cmpn(0) !== 0) { + var q = v.div(u) + r = v.sub(q.mul(u)) + x = x2.sub(q.mul(x1)) + var y = y2.sub(q.mul(y1)) + if (!a1 && r.cmp(aprxSqrt) < 0) { + a0 = prevR.neg() + b0 = x1 + a1 = r.neg() + b1 = x + } else if (a1 && ++i === 2) { + break + } + prevR = r + v = u + u = r + x2 = x1 + x1 = x + y2 = y1 + y1 = y + } + a2 = r.neg() + b2 = x + var len1 = a1.sqr().add(b1.sqr()) + var len2 = a2.sqr().add(b2.sqr()) + if (len2.cmp(len1) >= 0) { + a2 = a0 + b2 = b0 + } + if (a1.negative) { + a1 = a1.neg() + b1 = b1.neg() + } + if (a2.negative) { + a2 = a2.neg() + b2 = b2.neg() + } + return [ + { a: a1, b: b1 }, + { a: a2, b: b2 } + ] + } + ShortCurve.prototype._endoSplit = function _endoSplit(k) { + var basis = this.endo.basis + var v1 = basis[0] + var v2 = basis[1] + var c1 = v2.b.mul(k).divRound(this.n) + var c2 = v1.b.neg().mul(k).divRound(this.n) + var p1 = c1.mul(v1.a) + var p2 = c2.mul(v2.a) + var q1 = c1.mul(v1.b) + var q2 = c2.mul(v2.b) + var k1 = k.sub(p1).sub(p2) + var k2 = q1.add(q2).neg() + return { k1: k1, k2: k2 } + } + ShortCurve.prototype.pointFromX = function pointFromX(x, odd) { + x = new BN(x, 16) + if (!x.red) x = x.toRed(this.red) + var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b) + var y = y2.redSqrt() + if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error('invalid point') + var isOdd = y.fromRed().isOdd() + if ((odd && !isOdd) || (!odd && isOdd)) y = y.redNeg() + return this.point(x, y) + } + ShortCurve.prototype.validate = function validate(point) { + if (point.inf) return true + var x = point.x + var y = point.y + var ax = this.a.redMul(x) + var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b) + return y.redSqr().redISub(rhs).cmpn(0) === 0 + } + ShortCurve.prototype._endoWnafMulAdd = function _endoWnafMulAdd( + points, + coeffs, + jacobianResult + ) { + var npoints = this._endoWnafT1 + var ncoeffs = this._endoWnafT2 + for (var i = 0; i < points.length; i++) { + var split = this._endoSplit(coeffs[i]) + var p = points[i] + var beta = p._getBeta() + if (split.k1.negative) { + split.k1.ineg() + p = p.neg(true) + } + if (split.k2.negative) { + split.k2.ineg() + beta = beta.neg(true) + } + npoints[i * 2] = p + npoints[i * 2 + 1] = beta + ncoeffs[i * 2] = split.k1 + ncoeffs[i * 2 + 1] = split.k2 + } + var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult) + for (var j = 0; j < i * 2; j++) { + npoints[j] = null + ncoeffs[j] = null + } + return res + } + function Point(curve, x, y, isRed) { + Base.BasePoint.call(this, curve, 'affine') + if (x === null && y === null) { + this.x = null + this.y = null + this.inf = true + } else { + this.x = new BN(x, 16) + this.y = new BN(y, 16) + if (isRed) { + this.x.forceRed(this.curve.red) + this.y.forceRed(this.curve.red) + } + if (!this.x.red) this.x = this.x.toRed(this.curve.red) + if (!this.y.red) this.y = this.y.toRed(this.curve.red) + this.inf = false + } + } + inherits(Point, Base.BasePoint) + ShortCurve.prototype.point = function point(x, y, isRed) { + return new Point(this, x, y, isRed) + } + ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) { + return Point.fromJSON(this, obj, red) + } + Point.prototype._getBeta = function _getBeta() { + if (!this.curve.endo) return + var pre = this.precomputed + if (pre && pre.beta) return pre.beta + var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y) + if (pre) { + var curve = this.curve + var endoMul = function (p) { + return curve.point(p.x.redMul(curve.endo.beta), p.y) + } + pre.beta = beta + beta.precomputed = { + beta: null, + naf: pre.naf && { wnd: pre.naf.wnd, points: pre.naf.points.map(endoMul) }, + doubles: pre.doubles && { + step: pre.doubles.step, + points: pre.doubles.points.map(endoMul) + } + } + } + return beta + } + Point.prototype.toJSON = function toJSON() { + if (!this.precomputed) return [this.x, this.y] + return [ + this.x, + this.y, + this.precomputed && { + doubles: this.precomputed.doubles && { + step: this.precomputed.doubles.step, + points: this.precomputed.doubles.points.slice(1) + }, + naf: this.precomputed.naf && { + wnd: this.precomputed.naf.wnd, + points: this.precomputed.naf.points.slice(1) + } + } + ] + } + Point.fromJSON = function fromJSON(curve, obj, red) { + if (typeof obj === 'string') obj = JSON.parse(obj) + var res = curve.point(obj[0], obj[1], red) + if (!obj[2]) return res + function obj2point(obj) { + return curve.point(obj[0], obj[1], red) + } + var pre = obj[2] + res.precomputed = { + beta: null, + doubles: pre.doubles && { + step: pre.doubles.step, + points: [res].concat(pre.doubles.points.map(obj2point)) + }, + naf: pre.naf && { + wnd: pre.naf.wnd, + points: [res].concat(pre.naf.points.map(obj2point)) + } + } + return res + } + Point.prototype.inspect = function inspect() { + if (this.isInfinity()) return '' + return ( + '' + ) + } + Point.prototype.isInfinity = function isInfinity() { + return this.inf + } + Point.prototype.add = function add(p) { + if (this.inf) return p + if (p.inf) return this + if (this.eq(p)) return this.dbl() + if (this.neg().eq(p)) return this.curve.point(null, null) + if (this.x.cmp(p.x) === 0) return this.curve.point(null, null) + var c = this.y.redSub(p.y) + if (c.cmpn(0) !== 0) c = c.redMul(this.x.redSub(p.x).redInvm()) + var nx = c.redSqr().redISub(this.x).redISub(p.x) + var ny = c.redMul(this.x.redSub(nx)).redISub(this.y) + return this.curve.point(nx, ny) + } + Point.prototype.dbl = function dbl() { + if (this.inf) return this + var ys1 = this.y.redAdd(this.y) + if (ys1.cmpn(0) === 0) return this.curve.point(null, null) + var a = this.curve.a + var x2 = this.x.redSqr() + var dyinv = ys1.redInvm() + var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv) + var nx = c.redSqr().redISub(this.x.redAdd(this.x)) + var ny = c.redMul(this.x.redSub(nx)).redISub(this.y) + return this.curve.point(nx, ny) + } + Point.prototype.getX = function getX() { + return this.x.fromRed() + } + Point.prototype.getY = function getY() { + return this.y.fromRed() + } + Point.prototype.mul = function mul(k) { + k = new BN(k, 16) + if (this.isInfinity()) return this + else if (this._hasDoubles(k)) return this.curve._fixedNafMul(this, k) + else if (this.curve.endo) return this.curve._endoWnafMulAdd([this], [k]) + else return this.curve._wnafMul(this, k) + } + Point.prototype.mulAdd = function mulAdd(k1, p2, k2) { + var points = [this, p2] + var coeffs = [k1, k2] + if (this.curve.endo) return this.curve._endoWnafMulAdd(points, coeffs) + else return this.curve._wnafMulAdd(1, points, coeffs, 2) + } + Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) { + var points = [this, p2] + var coeffs = [k1, k2] + if (this.curve.endo) return this.curve._endoWnafMulAdd(points, coeffs, true) + else return this.curve._wnafMulAdd(1, points, coeffs, 2, true) + } + Point.prototype.eq = function eq(p) { + return ( + this === p || + (this.inf === p.inf && (this.inf || (this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0))) + ) + } + Point.prototype.neg = function neg(_precompute) { + if (this.inf) return this + var res = this.curve.point(this.x, this.y.redNeg()) + if (_precompute && this.precomputed) { + var pre = this.precomputed + var negate = function (p) { + return p.neg() + } + res.precomputed = { + naf: pre.naf && { wnd: pre.naf.wnd, points: pre.naf.points.map(negate) }, + doubles: pre.doubles && { + step: pre.doubles.step, + points: pre.doubles.points.map(negate) + } + } + } + return res + } + Point.prototype.toJ = function toJ() { + if (this.inf) return this.curve.jpoint(null, null, null) + var res = this.curve.jpoint(this.x, this.y, this.curve.one) + return res + } + function JPoint(curve, x, y, z) { + Base.BasePoint.call(this, curve, 'jacobian') + if (x === null && y === null && z === null) { + this.x = this.curve.one + this.y = this.curve.one + this.z = new BN(0) + } else { + this.x = new BN(x, 16) + this.y = new BN(y, 16) + this.z = new BN(z, 16) + } + if (!this.x.red) this.x = this.x.toRed(this.curve.red) + if (!this.y.red) this.y = this.y.toRed(this.curve.red) + if (!this.z.red) this.z = this.z.toRed(this.curve.red) + this.zOne = this.z === this.curve.one + } + inherits(JPoint, Base.BasePoint) + ShortCurve.prototype.jpoint = function jpoint(x, y, z) { + return new JPoint(this, x, y, z) + } + JPoint.prototype.toP = function toP() { + if (this.isInfinity()) return this.curve.point(null, null) + var zinv = this.z.redInvm() + var zinv2 = zinv.redSqr() + var ax = this.x.redMul(zinv2) + var ay = this.y.redMul(zinv2).redMul(zinv) + return this.curve.point(ax, ay) + } + JPoint.prototype.neg = function neg() { + return this.curve.jpoint(this.x, this.y.redNeg(), this.z) + } + JPoint.prototype.add = function add(p) { + if (this.isInfinity()) return p + if (p.isInfinity()) return this + var pz2 = p.z.redSqr() + var z2 = this.z.redSqr() + var u1 = this.x.redMul(pz2) + var u2 = p.x.redMul(z2) + var s1 = this.y.redMul(pz2.redMul(p.z)) + var s2 = p.y.redMul(z2.redMul(this.z)) + var h = u1.redSub(u2) + var r = s1.redSub(s2) + if (h.cmpn(0) === 0) { + if (r.cmpn(0) !== 0) return this.curve.jpoint(null, null, null) + else return this.dbl() + } + var h2 = h.redSqr() + var h3 = h2.redMul(h) + var v = u1.redMul(h2) + var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v) + var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)) + var nz = this.z.redMul(p.z).redMul(h) + return this.curve.jpoint(nx, ny, nz) + } + JPoint.prototype.mixedAdd = function mixedAdd(p) { + if (this.isInfinity()) return p.toJ() + if (p.isInfinity()) return this + var z2 = this.z.redSqr() + var u1 = this.x + var u2 = p.x.redMul(z2) + var s1 = this.y + var s2 = p.y.redMul(z2).redMul(this.z) + var h = u1.redSub(u2) + var r = s1.redSub(s2) + if (h.cmpn(0) === 0) { + if (r.cmpn(0) !== 0) return this.curve.jpoint(null, null, null) + else return this.dbl() + } + var h2 = h.redSqr() + var h3 = h2.redMul(h) + var v = u1.redMul(h2) + var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v) + var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)) + var nz = this.z.redMul(h) + return this.curve.jpoint(nx, ny, nz) + } + JPoint.prototype.dblp = function dblp(pow) { + if (pow === 0) return this + if (this.isInfinity()) return this + if (!pow) return this.dbl() + if (this.curve.zeroA || this.curve.threeA) { + var r = this + for (var i = 0; i < pow; i++) r = r.dbl() + return r + } + var a = this.curve.a + var tinv = this.curve.tinv + var jx = this.x + var jy = this.y + var jz = this.z + var jz4 = jz.redSqr().redSqr() + var jyd = jy.redAdd(jy) + for (var i = 0; i < pow; i++) { + var jx2 = jx.redSqr() + var jyd2 = jyd.redSqr() + var jyd4 = jyd2.redSqr() + var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)) + var t1 = jx.redMul(jyd2) + var nx = c.redSqr().redISub(t1.redAdd(t1)) + var t2 = t1.redISub(nx) + var dny = c.redMul(t2) + dny = dny.redIAdd(dny).redISub(jyd4) + var nz = jyd.redMul(jz) + if (i + 1 < pow) jz4 = jz4.redMul(jyd4) + jx = nx + jz = nz + jyd = dny + } + return this.curve.jpoint(jx, jyd.redMul(tinv), jz) + } + JPoint.prototype.dbl = function dbl() { + if (this.isInfinity()) return this + if (this.curve.zeroA) return this._zeroDbl() + else if (this.curve.threeA) return this._threeDbl() + else return this._dbl() + } + JPoint.prototype._zeroDbl = function _zeroDbl() { + var nx + var ny + var nz + if (this.zOne) { + var xx = this.x.redSqr() + var yy = this.y.redSqr() + var yyyy = yy.redSqr() + var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy) + s = s.redIAdd(s) + var m = xx.redAdd(xx).redIAdd(xx) + var t = m.redSqr().redISub(s).redISub(s) + var yyyy8 = yyyy.redIAdd(yyyy) + yyyy8 = yyyy8.redIAdd(yyyy8) + yyyy8 = yyyy8.redIAdd(yyyy8) + nx = t + ny = m.redMul(s.redISub(t)).redISub(yyyy8) + nz = this.y.redAdd(this.y) + } else { + var a = this.x.redSqr() + var b = this.y.redSqr() + var c = b.redSqr() + var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c) + d = d.redIAdd(d) + var e = a.redAdd(a).redIAdd(a) + var f = e.redSqr() + var c8 = c.redIAdd(c) + c8 = c8.redIAdd(c8) + c8 = c8.redIAdd(c8) + nx = f.redISub(d).redISub(d) + ny = e.redMul(d.redISub(nx)).redISub(c8) + nz = this.y.redMul(this.z) + nz = nz.redIAdd(nz) + } + return this.curve.jpoint(nx, ny, nz) + } + JPoint.prototype._threeDbl = function _threeDbl() { + var nx + var ny + var nz + if (this.zOne) { + var xx = this.x.redSqr() + var yy = this.y.redSqr() + var yyyy = yy.redSqr() + var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy) + s = s.redIAdd(s) + var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a) + var t = m.redSqr().redISub(s).redISub(s) + nx = t + var yyyy8 = yyyy.redIAdd(yyyy) + yyyy8 = yyyy8.redIAdd(yyyy8) + yyyy8 = yyyy8.redIAdd(yyyy8) + ny = m.redMul(s.redISub(t)).redISub(yyyy8) + nz = this.y.redAdd(this.y) + } else { + var delta = this.z.redSqr() + var gamma = this.y.redSqr() + var beta = this.x.redMul(gamma) + var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta)) + alpha = alpha.redAdd(alpha).redIAdd(alpha) + var beta4 = beta.redIAdd(beta) + beta4 = beta4.redIAdd(beta4) + var beta8 = beta4.redAdd(beta4) + nx = alpha.redSqr().redISub(beta8) + nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta) + var ggamma8 = gamma.redSqr() + ggamma8 = ggamma8.redIAdd(ggamma8) + ggamma8 = ggamma8.redIAdd(ggamma8) + ggamma8 = ggamma8.redIAdd(ggamma8) + ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8) + } + return this.curve.jpoint(nx, ny, nz) + } + JPoint.prototype._dbl = function _dbl() { + var a = this.curve.a + var jx = this.x + var jy = this.y + var jz = this.z + var jz4 = jz.redSqr().redSqr() + var jx2 = jx.redSqr() + var jy2 = jy.redSqr() + var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)) + var jxd4 = jx.redAdd(jx) + jxd4 = jxd4.redIAdd(jxd4) + var t1 = jxd4.redMul(jy2) + var nx = c.redSqr().redISub(t1.redAdd(t1)) + var t2 = t1.redISub(nx) + var jyd8 = jy2.redSqr() + jyd8 = jyd8.redIAdd(jyd8) + jyd8 = jyd8.redIAdd(jyd8) + jyd8 = jyd8.redIAdd(jyd8) + var ny = c.redMul(t2).redISub(jyd8) + var nz = jy.redAdd(jy).redMul(jz) + return this.curve.jpoint(nx, ny, nz) + } + JPoint.prototype.trpl = function trpl() { + if (!this.curve.zeroA) return this.dbl().add(this) + var xx = this.x.redSqr() + var yy = this.y.redSqr() + var zz = this.z.redSqr() + var yyyy = yy.redSqr() + var m = xx.redAdd(xx).redIAdd(xx) + var mm = m.redSqr() + var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy) + e = e.redIAdd(e) + e = e.redAdd(e).redIAdd(e) + e = e.redISub(mm) + var ee = e.redSqr() + var t = yyyy.redIAdd(yyyy) + t = t.redIAdd(t) + t = t.redIAdd(t) + t = t.redIAdd(t) + var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t) + var yyu4 = yy.redMul(u) + yyu4 = yyu4.redIAdd(yyu4) + yyu4 = yyu4.redIAdd(yyu4) + var nx = this.x.redMul(ee).redISub(yyu4) + nx = nx.redIAdd(nx) + nx = nx.redIAdd(nx) + var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee))) + ny = ny.redIAdd(ny) + ny = ny.redIAdd(ny) + ny = ny.redIAdd(ny) + var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee) + return this.curve.jpoint(nx, ny, nz) + } + JPoint.prototype.mul = function mul(k, kbase) { + k = new BN(k, kbase) + return this.curve._wnafMul(this, k) + } + JPoint.prototype.eq = function eq(p) { + if (p.type === 'affine') return this.eq(p.toJ()) + if (this === p) return true + var z2 = this.z.redSqr() + var pz2 = p.z.redSqr() + if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0) return false + var z3 = z2.redMul(this.z) + var pz3 = pz2.redMul(p.z) + return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0 + } + JPoint.prototype.eqXToP = function eqXToP(x) { + var zs = this.z.redSqr() + var rx = x.toRed(this.curve.red).redMul(zs) + if (this.x.cmp(rx) === 0) return true + var xc = x.clone() + var t = this.curve.redN.redMul(zs) + for (;;) { + xc.iadd(this.curve.n) + if (xc.cmp(this.curve.p) >= 0) return false + rx.redIAdd(t) + if (this.x.cmp(rx) === 0) return true + } + } + JPoint.prototype.inspect = function inspect() { + if (this.isInfinity()) return '' + return ( + '' + ) + } + JPoint.prototype.isInfinity = function isInfinity() { + return this.z.cmpn(0) === 0 + } + }, + { '../utils': 131, './base': 118, 'bn.js': 132, inherits: 151 } + ], + 123: [ + function (require, module, exports) { + 'use strict' + var curves = exports + var hash = require('hash.js') + var curve = require('./curve') + var utils = require('./utils') + var assert = utils.assert + function PresetCurve(options) { + if (options.type === 'short') this.curve = new curve.short(options) + else if (options.type === 'edwards') this.curve = new curve.edwards(options) + else this.curve = new curve.mont(options) + this.g = this.curve.g + this.n = this.curve.n + this.hash = options.hash + assert(this.g.validate(), 'Invalid curve') + assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O') + } + curves.PresetCurve = PresetCurve + function defineCurve(name, options) { + Object.defineProperty(curves, name, { + configurable: true, + enumerable: true, + get: function () { + var curve = new PresetCurve(options) + Object.defineProperty(curves, name, { + configurable: true, + enumerable: true, + value: curve + }) + return curve + } + }) + } + defineCurve('p192', { + type: 'short', + prime: 'p192', + p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff', + a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc', + b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1', + n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831', + hash: hash.sha256, + gRed: false, + g: [ + '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012', + '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811' + ] + }) + defineCurve('p224', { + type: 'short', + prime: 'p224', + p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001', + a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe', + b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4', + n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d', + hash: hash.sha256, + gRed: false, + g: [ + 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21', + 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34' + ] + }) + defineCurve('p256', { + type: 'short', + prime: null, + p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff', + a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc', + b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b', + n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551', + hash: hash.sha256, + gRed: false, + g: [ + '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296', + '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5' + ] + }) + defineCurve('p384', { + type: 'short', + prime: null, + p: + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + + 'fffffffe ffffffff 00000000 00000000 ffffffff', + a: + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + + 'fffffffe ffffffff 00000000 00000000 fffffffc', + b: + 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' + + '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef', + n: + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' + + 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973', + hash: hash.sha384, + gRed: false, + g: [ + 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' + + '5502f25d bf55296c 3a545e38 72760ab7', + '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' + + '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f' + ] + }) + defineCurve('p521', { + type: 'short', + prime: null, + p: + '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + + 'ffffffff ffffffff ffffffff ffffffff ffffffff', + a: + '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + + 'ffffffff ffffffff ffffffff ffffffff fffffffc', + b: + '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' + + '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' + + '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00', + n: + '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + + 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' + + 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409', + hash: hash.sha512, + gRed: false, + g: [ + '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' + + '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' + + 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66', + '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' + + '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' + + '3fad0761 353c7086 a272c240 88be9476 9fd16650' + ] + }) + defineCurve('curve25519', { + type: 'mont', + prime: 'p25519', + p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed', + a: '76d06', + b: '1', + n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed', + hash: hash.sha256, + gRed: false, + g: ['9'] + }) + defineCurve('ed25519', { + type: 'edwards', + prime: 'p25519', + p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed', + a: '-1', + c: '1', + d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3', + n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed', + hash: hash.sha256, + gRed: false, + g: [ + '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a', + '6666666666666666666666666666666666666666666666666666666666666658' + ] + }) + var pre + try { + pre = require('./precomputed/secp256k1') + } catch (e) { + pre = undefined + } + defineCurve('secp256k1', { + type: 'short', + prime: 'k256', + p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f', + a: '0', + b: '7', + n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141', + h: '1', + hash: hash.sha256, + beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee', + lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72', + basis: [ + { a: '3086d221a7d46bcde86c90e49284eb15', b: '-e4437ed6010e88286f547fa90abfe4c3' }, + { a: '114ca50f7a8e2f3f657c1108d9d44cfd8', b: '3086d221a7d46bcde86c90e49284eb15' } + ], + gRed: false, + g: [ + '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798', + '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8', + pre + ] + }) + }, + { './curve': 120, './precomputed/secp256k1': 130, './utils': 131, 'hash.js': 137 } + ], + 124: [ + function (require, module, exports) { + 'use strict' + var BN = require('bn.js') + var HmacDRBG = require('hmac-drbg') + var utils = require('../utils') + var curves = require('../curves') + var rand = require('brorand') + var assert = utils.assert + var KeyPair = require('./key') + var Signature = require('./signature') + function EC(options) { + if (!(this instanceof EC)) return new EC(options) + if (typeof options === 'string') { + assert(curves.hasOwnProperty(options), 'Unknown curve ' + options) + options = curves[options] + } + if (options instanceof curves.PresetCurve) options = { curve: options } + this.curve = options.curve.curve + this.n = this.curve.n + this.nh = this.n.ushrn(1) + this.g = this.curve.g + this.g = options.curve.g + this.g.precompute(options.curve.n.bitLength() + 1) + this.hash = options.hash || options.curve.hash + } + module.exports = EC + EC.prototype.keyPair = function keyPair(options) { + return new KeyPair(this, options) + } + EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) { + return KeyPair.fromPrivate(this, priv, enc) + } + EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) { + return KeyPair.fromPublic(this, pub, enc) + } + EC.prototype.genKeyPair = function genKeyPair(options) { + if (!options) options = {} + var drbg = new HmacDRBG({ + hash: this.hash, + pers: options.pers, + persEnc: options.persEnc || 'utf8', + entropy: options.entropy || rand(this.hash.hmacStrength), + entropyEnc: (options.entropy && options.entropyEnc) || 'utf8', + nonce: this.n.toArray() + }) + var bytes = this.n.byteLength() + var ns2 = this.n.sub(new BN(2)) + do { + var priv = new BN(drbg.generate(bytes)) + if (priv.cmp(ns2) > 0) continue + priv.iaddn(1) + return this.keyFromPrivate(priv) + } while (true) + } + EC.prototype._truncateToN = function truncateToN(msg, truncOnly) { + var delta = msg.byteLength() * 8 - this.n.bitLength() + if (delta > 0) msg = msg.ushrn(delta) + if (!truncOnly && msg.cmp(this.n) >= 0) return msg.sub(this.n) + else return msg + } + EC.prototype.sign = function sign(msg, key, enc, options) { + if (typeof enc === 'object') { + options = enc + enc = null + } + if (!options) options = {} + key = this.keyFromPrivate(key, enc) + msg = this._truncateToN(new BN(msg, 16)) + var bytes = this.n.byteLength() + var bkey = key.getPrivate().toArray('be', bytes) + var nonce = msg.toArray('be', bytes) + var drbg = new HmacDRBG({ + hash: this.hash, + entropy: bkey, + nonce: nonce, + pers: options.pers, + persEnc: options.persEnc || 'utf8' + }) + var ns1 = this.n.sub(new BN(1)) + for (var iter = 0; true; iter++) { + var k = options.k ? options.k(iter) : new BN(drbg.generate(this.n.byteLength())) + k = this._truncateToN(k, true) + if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0) continue + var kp = this.g.mul(k) + if (kp.isInfinity()) continue + var kpX = kp.getX() + var r = kpX.umod(this.n) + if (r.cmpn(0) === 0) continue + var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg)) + s = s.umod(this.n) + if (s.cmpn(0) === 0) continue + var recoveryParam = (kp.getY().isOdd() ? 1 : 0) | (kpX.cmp(r) !== 0 ? 2 : 0) + if (options.canonical && s.cmp(this.nh) > 0) { + s = this.n.sub(s) + recoveryParam ^= 1 + } + return new Signature({ r: r, s: s, recoveryParam: recoveryParam }) + } + } + EC.prototype.verify = function verify(msg, signature, key, enc) { + msg = this._truncateToN(new BN(msg, 16)) + key = this.keyFromPublic(key, enc) + signature = new Signature(signature, 'hex') + var r = signature.r + var s = signature.s + if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0) return false + if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0) return false + var sinv = s.invm(this.n) + var u1 = sinv.mul(msg).umod(this.n) + var u2 = sinv.mul(r).umod(this.n) + if (!this.curve._maxwellTrick) { + var p = this.g.mulAdd(u1, key.getPublic(), u2) + if (p.isInfinity()) return false + return p.getX().umod(this.n).cmp(r) === 0 + } + var p = this.g.jmulAdd(u1, key.getPublic(), u2) + if (p.isInfinity()) return false + return p.eqXToP(r) + } + EC.prototype.recoverPubKey = function (msg, signature, j, enc) { + assert((3 & j) === j, 'The recovery param is more than two bits') + signature = new Signature(signature, enc) + var n = this.n + var e = new BN(msg) + var r = signature.r + var s = signature.s + var isYOdd = j & 1 + var isSecondKey = j >> 1 + if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey) + throw new Error('Unable to find sencond key candinate') + if (isSecondKey) r = this.curve.pointFromX(r.add(this.curve.n), isYOdd) + else r = this.curve.pointFromX(r, isYOdd) + var rInv = signature.r.invm(n) + var s1 = n.sub(e).mul(rInv).umod(n) + var s2 = s.mul(rInv).umod(n) + return this.g.mulAdd(s1, r, s2) + } + EC.prototype.getKeyRecoveryParam = function (e, signature, Q, enc) { + signature = new Signature(signature, enc) + if (signature.recoveryParam !== null) return signature.recoveryParam + for (var i = 0; i < 4; i++) { + var Qprime + try { + Qprime = this.recoverPubKey(e, signature, i) + } catch (e) { + continue + } + if (Qprime.eq(Q)) return i + } + throw new Error('Unable to find valid recovery factor') + } + }, + { + '../curves': 123, + '../utils': 131, + './key': 125, + './signature': 126, + 'bn.js': 132, + brorand: 48, + 'hmac-drbg': 149 + } + ], + 125: [ + function (require, module, exports) { + 'use strict' + var BN = require('bn.js') + var utils = require('../utils') + var assert = utils.assert + function KeyPair(ec, options) { + this.ec = ec + this.priv = null + this.pub = null + if (options.priv) this._importPrivate(options.priv, options.privEnc) + if (options.pub) this._importPublic(options.pub, options.pubEnc) + } + module.exports = KeyPair + KeyPair.fromPublic = function fromPublic(ec, pub, enc) { + if (pub instanceof KeyPair) return pub + return new KeyPair(ec, { pub: pub, pubEnc: enc }) + } + KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) { + if (priv instanceof KeyPair) return priv + return new KeyPair(ec, { priv: priv, privEnc: enc }) + } + KeyPair.prototype.validate = function validate() { + var pub = this.getPublic() + if (pub.isInfinity()) return { result: false, reason: 'Invalid public key' } + if (!pub.validate()) return { result: false, reason: 'Public key is not a point' } + if (!pub.mul(this.ec.curve.n).isInfinity()) + return { result: false, reason: 'Public key * N != O' } + return { result: true, reason: null } + } + KeyPair.prototype.getPublic = function getPublic(compact, enc) { + if (typeof compact === 'string') { + enc = compact + compact = null + } + if (!this.pub) this.pub = this.ec.g.mul(this.priv) + if (!enc) return this.pub + return this.pub.encode(enc, compact) + } + KeyPair.prototype.getPrivate = function getPrivate(enc) { + if (enc === 'hex') return this.priv.toString(16, 2) + else return this.priv + } + KeyPair.prototype._importPrivate = function _importPrivate(key, enc) { + this.priv = new BN(key, enc || 16) + this.priv = this.priv.umod(this.ec.curve.n) + } + KeyPair.prototype._importPublic = function _importPublic(key, enc) { + if (key.x || key.y) { + if (this.ec.curve.type === 'mont') { + assert(key.x, 'Need x coordinate') + } else if (this.ec.curve.type === 'short' || this.ec.curve.type === 'edwards') { + assert(key.x && key.y, 'Need both x and y coordinate') + } + this.pub = this.ec.curve.point(key.x, key.y) + return + } + this.pub = this.ec.curve.decodePoint(key, enc) + } + KeyPair.prototype.derive = function derive(pub) { + return pub.mul(this.priv).getX() + } + KeyPair.prototype.sign = function sign(msg, enc, options) { + return this.ec.sign(msg, this, enc, options) + } + KeyPair.prototype.verify = function verify(msg, signature) { + return this.ec.verify(msg, signature, this) + } + KeyPair.prototype.inspect = function inspect() { + return ( + '' + ) + } + }, + { '../utils': 131, 'bn.js': 132 } + ], + 126: [ + function (require, module, exports) { + 'use strict' + var BN = require('bn.js') + var utils = require('../utils') + var assert = utils.assert + function Signature(options, enc) { + if (options instanceof Signature) return options + if (this._importDER(options, enc)) return + assert(options.r && options.s, 'Signature without r or s') + this.r = new BN(options.r, 16) + this.s = new BN(options.s, 16) + if (options.recoveryParam === undefined) this.recoveryParam = null + else this.recoveryParam = options.recoveryParam + } + module.exports = Signature + function Position() { + this.place = 0 + } + function getLength(buf, p) { + var initial = buf[p.place++] + if (!(initial & 128)) { + return initial + } + var octetLen = initial & 15 + if (octetLen === 0 || octetLen > 4) { + return false + } + var val = 0 + for (var i = 0, off = p.place; i < octetLen; i++, off++) { + val <<= 8 + val |= buf[off] + val >>>= 0 + } + if (val <= 127) { + return false + } + p.place = off + return val + } + function rmPadding(buf) { + var i = 0 + var len = buf.length - 1 + while (!buf[i] && !(buf[i + 1] & 128) && i < len) { + i++ + } + if (i === 0) { + return buf + } + return buf.slice(i) + } + Signature.prototype._importDER = function _importDER(data, enc) { + data = utils.toArray(data, enc) + var p = new Position() + if (data[p.place++] !== 48) { + return false + } + var len = getLength(data, p) + if (len === false) { + return false + } + if (len + p.place !== data.length) { + return false + } + if (data[p.place++] !== 2) { + return false + } + var rlen = getLength(data, p) + if (rlen === false) { + return false + } + var r = data.slice(p.place, rlen + p.place) + p.place += rlen + if (data[p.place++] !== 2) { + return false + } + var slen = getLength(data, p) + if (slen === false) { + return false + } + if (data.length !== slen + p.place) { + return false + } + var s = data.slice(p.place, slen + p.place) + if (r[0] === 0) { + if (r[1] & 128) { + r = r.slice(1) + } else { + return false + } + } + if (s[0] === 0) { + if (s[1] & 128) { + s = s.slice(1) + } else { + return false + } + } + this.r = new BN(r) + this.s = new BN(s) + this.recoveryParam = null + return true + } + function constructLength(arr, len) { + if (len < 128) { + arr.push(len) + return + } + var octets = 1 + ((Math.log(len) / Math.LN2) >>> 3) + arr.push(octets | 128) + while (--octets) { + arr.push((len >>> (octets << 3)) & 255) + } + arr.push(len) + } + Signature.prototype.toDER = function toDER(enc) { + var r = this.r.toArray() + var s = this.s.toArray() + if (r[0] & 128) r = [0].concat(r) + if (s[0] & 128) s = [0].concat(s) + r = rmPadding(r) + s = rmPadding(s) + while (!s[0] && !(s[1] & 128)) { + s = s.slice(1) + } + var arr = [2] + constructLength(arr, r.length) + arr = arr.concat(r) + arr.push(2) + constructLength(arr, s.length) + var backHalf = arr.concat(s) + var res = [48] + constructLength(res, backHalf.length) + res = res.concat(backHalf) + return utils.encode(res, enc) + } + }, + { '../utils': 131, 'bn.js': 132 } + ], + 127: [ + function (require, module, exports) { + 'use strict' + var hash = require('hash.js') + var curves = require('../curves') + var utils = require('../utils') + var assert = utils.assert + var parseBytes = utils.parseBytes + var KeyPair = require('./key') + var Signature = require('./signature') + function EDDSA(curve) { + assert(curve === 'ed25519', 'only tested with ed25519 so far') + if (!(this instanceof EDDSA)) return new EDDSA(curve) + var curve = curves[curve].curve + this.curve = curve + this.g = curve.g + this.g.precompute(curve.n.bitLength() + 1) + this.pointClass = curve.point().constructor + this.encodingLength = Math.ceil(curve.n.bitLength() / 8) + this.hash = hash.sha512 + } + module.exports = EDDSA + EDDSA.prototype.sign = function sign(message, secret) { + message = parseBytes(message) + var key = this.keyFromSecret(secret) + var r = this.hashInt(key.messagePrefix(), message) + var R = this.g.mul(r) + var Rencoded = this.encodePoint(R) + var s_ = this.hashInt(Rencoded, key.pubBytes(), message).mul(key.priv()) + var S = r.add(s_).umod(this.curve.n) + return this.makeSignature({ R: R, S: S, Rencoded: Rencoded }) + } + EDDSA.prototype.verify = function verify(message, sig, pub) { + message = parseBytes(message) + sig = this.makeSignature(sig) + var key = this.keyFromPublic(pub) + var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message) + var SG = this.g.mul(sig.S()) + var RplusAh = sig.R().add(key.pub().mul(h)) + return RplusAh.eq(SG) + } + EDDSA.prototype.hashInt = function hashInt() { + var hash = this.hash() + for (var i = 0; i < arguments.length; i++) hash.update(arguments[i]) + return utils.intFromLE(hash.digest()).umod(this.curve.n) + } + EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) { + return KeyPair.fromPublic(this, pub) + } + EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) { + return KeyPair.fromSecret(this, secret) + } + EDDSA.prototype.makeSignature = function makeSignature(sig) { + if (sig instanceof Signature) return sig + return new Signature(this, sig) + } + EDDSA.prototype.encodePoint = function encodePoint(point) { + var enc = point.getY().toArray('le', this.encodingLength) + enc[this.encodingLength - 1] |= point.getX().isOdd() ? 128 : 0 + return enc + } + EDDSA.prototype.decodePoint = function decodePoint(bytes) { + bytes = utils.parseBytes(bytes) + var lastIx = bytes.length - 1 + var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~128) + var xIsOdd = (bytes[lastIx] & 128) !== 0 + var y = utils.intFromLE(normed) + return this.curve.pointFromY(y, xIsOdd) + } + EDDSA.prototype.encodeInt = function encodeInt(num) { + return num.toArray('le', this.encodingLength) + } + EDDSA.prototype.decodeInt = function decodeInt(bytes) { + return utils.intFromLE(bytes) + } + EDDSA.prototype.isPoint = function isPoint(val) { + return val instanceof this.pointClass + } + }, + { '../curves': 123, '../utils': 131, './key': 128, './signature': 129, 'hash.js': 137 } + ], + 128: [ + function (require, module, exports) { + 'use strict' + var utils = require('../utils') + var assert = utils.assert + var parseBytes = utils.parseBytes + var cachedProperty = utils.cachedProperty + function KeyPair(eddsa, params) { + this.eddsa = eddsa + this._secret = parseBytes(params.secret) + if (eddsa.isPoint(params.pub)) this._pub = params.pub + else this._pubBytes = parseBytes(params.pub) + } + KeyPair.fromPublic = function fromPublic(eddsa, pub) { + if (pub instanceof KeyPair) return pub + return new KeyPair(eddsa, { pub: pub }) + } + KeyPair.fromSecret = function fromSecret(eddsa, secret) { + if (secret instanceof KeyPair) return secret + return new KeyPair(eddsa, { secret: secret }) + } + KeyPair.prototype.secret = function secret() { + return this._secret + } + cachedProperty(KeyPair, 'pubBytes', function pubBytes() { + return this.eddsa.encodePoint(this.pub()) + }) + cachedProperty(KeyPair, 'pub', function pub() { + if (this._pubBytes) return this.eddsa.decodePoint(this._pubBytes) + return this.eddsa.g.mul(this.priv()) + }) + cachedProperty(KeyPair, 'privBytes', function privBytes() { + var eddsa = this.eddsa + var hash = this.hash() + var lastIx = eddsa.encodingLength - 1 + var a = hash.slice(0, eddsa.encodingLength) + a[0] &= 248 + a[lastIx] &= 127 + a[lastIx] |= 64 + return a + }) + cachedProperty(KeyPair, 'priv', function priv() { + return this.eddsa.decodeInt(this.privBytes()) + }) + cachedProperty(KeyPair, 'hash', function hash() { + return this.eddsa.hash().update(this.secret()).digest() + }) + cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() { + return this.hash().slice(this.eddsa.encodingLength) + }) + KeyPair.prototype.sign = function sign(message) { + assert(this._secret, 'KeyPair can only verify') + return this.eddsa.sign(message, this) + } + KeyPair.prototype.verify = function verify(message, sig) { + return this.eddsa.verify(message, sig, this) + } + KeyPair.prototype.getSecret = function getSecret(enc) { + assert(this._secret, 'KeyPair is public only') + return utils.encode(this.secret(), enc) + } + KeyPair.prototype.getPublic = function getPublic(enc) { + return utils.encode(this.pubBytes(), enc) + } + module.exports = KeyPair + }, + { '../utils': 131 } + ], + 129: [ + function (require, module, exports) { + 'use strict' + var BN = require('bn.js') + var utils = require('../utils') + var assert = utils.assert + var cachedProperty = utils.cachedProperty + var parseBytes = utils.parseBytes + function Signature(eddsa, sig) { + this.eddsa = eddsa + if (typeof sig !== 'object') sig = parseBytes(sig) + if (Array.isArray(sig)) { + sig = { R: sig.slice(0, eddsa.encodingLength), S: sig.slice(eddsa.encodingLength) } + } + assert(sig.R && sig.S, 'Signature without R or S') + if (eddsa.isPoint(sig.R)) this._R = sig.R + if (sig.S instanceof BN) this._S = sig.S + this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded + this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded + } + cachedProperty(Signature, 'S', function S() { + return this.eddsa.decodeInt(this.Sencoded()) + }) + cachedProperty(Signature, 'R', function R() { + return this.eddsa.decodePoint(this.Rencoded()) + }) + cachedProperty(Signature, 'Rencoded', function Rencoded() { + return this.eddsa.encodePoint(this.R()) + }) + cachedProperty(Signature, 'Sencoded', function Sencoded() { + return this.eddsa.encodeInt(this.S()) + }) + Signature.prototype.toBytes = function toBytes() { + return this.Rencoded().concat(this.Sencoded()) + } + Signature.prototype.toHex = function toHex() { + return utils.encode(this.toBytes(), 'hex').toUpperCase() + } + module.exports = Signature + }, + { '../utils': 131, 'bn.js': 132 } + ], + 130: [ + function (require, module, exports) { + module.exports = { + doubles: { + step: 4, + points: [ + [ + 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a', + 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821' + ], + [ + '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508', + '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf' + ], + [ + '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739', + 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695' + ], + [ + '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640', + '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9' + ], + [ + '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c', + '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36' + ], + [ + '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda', + '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f' + ], + [ + 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa', + '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999' + ], + [ + '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0', + 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09' + ], + [ + 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d', + '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d' + ], + [ + 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d', + 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088' + ], + [ + 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1', + '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d' + ], + [ + '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0', + '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8' + ], + [ + '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047', + '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a' + ], + [ + '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862', + '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453' + ], + [ + '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7', + '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160' + ], + [ + '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd', + '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0' + ], + [ + '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83', + '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6' + ], + [ + '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a', + '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589' + ], + [ + '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8', + 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17' + ], + [ + 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d', + '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda' + ], + [ + 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725', + '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd' + ], + [ + '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754', + '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2' + ], + [ + '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c', + '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6' + ], + [ + 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6', + '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f' + ], + [ + '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39', + 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01' + ], + [ + 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891', + '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3' + ], + [ + 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b', + 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f' + ], + [ + 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03', + '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7' + ], + [ + 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d', + 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78' + ], + [ + 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070', + '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1' + ], + [ + '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4', + 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150' + ], + [ + '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da', + '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82' + ], + [ + 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11', + '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc' + ], + [ + '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e', + 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b' + ], + [ + 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41', + '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51' + ], + [ + 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef', + '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45' + ], + [ + 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8', + 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120' + ], + [ + '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d', + '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84' + ], + [ + '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96', + '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d' + ], + [ + '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd', + 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d' + ], + [ + '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5', + '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8' + ], + [ + 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266', + '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8' + ], + [ + '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71', + '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac' + ], + [ + '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac', + 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f' + ], + [ + '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751', + '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962' + ], + [ + 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e', + '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907' + ], + [ + '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241', + 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec' + ], + [ + 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3', + 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d' + ], + [ + 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f', + '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414' + ], + [ + '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19', + 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd' + ], + [ + '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be', + 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0' + ], + [ + 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9', + '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811' + ], + [ + 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2', + '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1' + ], + [ + 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13', + '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c' + ], + [ + '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c', + 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73' + ], + [ + '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba', + '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd' + ], + [ + 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151', + 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405' + ], + [ + '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073', + 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589' + ], + [ + '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458', + '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e' + ], + [ + '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b', + '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27' + ], + [ + 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366', + 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1' + ], + [ + '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa', + '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482' + ], + [ + '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0', + '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945' + ], + [ + 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787', + '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573' + ], + [ + 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e', + 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82' + ] + ] + }, + naf: { + wnd: 7, + points: [ + [ + 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9', + '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672' + ], + [ + '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4', + 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6' + ], + [ + '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc', + '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da' + ], + [ + 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe', + 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37' + ], + [ + '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb', + 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b' + ], + [ + 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8', + 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81' + ], + [ + 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e', + '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58' + ], + [ + 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34', + '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77' + ], + [ + '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c', + '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a' + ], + [ + '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5', + '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c' + ], + [ + '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f', + '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67' + ], + [ + '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714', + '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402' + ], + [ + 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729', + 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55' + ], + [ + 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db', + '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482' + ], + [ + '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4', + 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82' + ], + [ + '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5', + 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396' + ], + [ + '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479', + '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49' + ], + [ + '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d', + '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf' + ], + [ + '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f', + '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a' + ], + [ + '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb', + 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7' + ], + [ + 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9', + 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933' + ], + [ + '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963', + '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a' + ], + [ + '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74', + '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6' + ], + [ + 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530', + 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37' + ], + [ + '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b', + '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e' + ], + [ + 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247', + 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6' + ], + [ + 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1', + 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476' + ], + [ + '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120', + '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40' + ], + [ + '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435', + '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61' + ], + [ + '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18', + '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683' + ], + [ + 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8', + '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5' + ], + [ + '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb', + '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b' + ], + [ + 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f', + '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417' + ], + [ + '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143', + 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868' + ], + [ + '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba', + 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a' + ], + [ + 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45', + 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6' + ], + [ + '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a', + '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996' + ], + [ + '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e', + 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e' + ], + [ + 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8', + 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d' + ], + [ + '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c', + '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2' + ], + [ + '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519', + 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e' + ], + [ + '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab', + '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437' + ], + [ + '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca', + 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311' + ], + [ + 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf', + '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4' + ], + [ + '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610', + '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575' + ], + [ + '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4', + 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d' + ], + [ + '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c', + 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d' + ], + [ + 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940', + 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629' + ], + [ + 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980', + 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06' + ], + [ + '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3', + '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374' + ], + [ + '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf', + '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee' + ], + [ + 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63', + '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1' + ], + [ + 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448', + 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b' + ], + [ + '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf', + '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661' + ], + [ + '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5', + '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6' + ], + [ + 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6', + '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e' + ], + [ + '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5', + '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d' + ], + [ + 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99', + 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc' + ], + [ + '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51', + 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4' + ], + [ + '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5', + '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c' + ], + [ + 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5', + '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b' + ], + [ + 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997', + '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913' + ], + [ + '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881', + '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154' + ], + [ + '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5', + '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865' + ], + [ + '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66', + 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc' + ], + [ + '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726', + 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224' + ], + [ + '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede', + '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e' + ], + [ + '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94', + '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6' + ], + [ + '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31', + '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511' + ], + [ + '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51', + 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b' + ], + [ + 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252', + 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2' + ], + [ + '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5', + 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c' + ], + [ + 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b', + '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3' + ], + [ + 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4', + '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d' + ], + [ + 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f', + '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700' + ], + [ + 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889', + '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4' + ], + [ + '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246', + 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196' + ], + [ + '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984', + '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4' + ], + [ + '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a', + 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257' + ], + [ + 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030', + 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13' + ], + [ + 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197', + '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096' + ], + [ + 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593', + 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38' + ], + [ + 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef', + '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f' + ], + [ + '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38', + '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448' + ], + [ + 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a', + '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a' + ], + [ + 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111', + '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4' + ], + [ + '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502', + '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437' + ], + [ + '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea', + 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7' + ], + [ + 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26', + '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d' + ], + [ + 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986', + '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a' + ], + [ + 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e', + '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54' + ], + [ + '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4', + '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77' + ], + [ + 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda', + 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517' + ], + [ + '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859', + 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10' + ], + [ + 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f', + 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125' + ], + [ + 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c', + '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e' + ], + [ + '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942', + 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1' + ], + [ + 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a', + '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2' + ], + [ + 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80', + '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423' + ], + [ + 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d', + '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8' + ], + [ + '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1', + 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758' + ], + [ + '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63', + 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375' + ], + [ + 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352', + '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d' + ], + [ + '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193', + 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec' + ], + [ + '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00', + '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0' + ], + [ + '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58', + 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c' + ], + [ + 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7', + 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4' + ], + [ + '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8', + 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f' + ], + [ + '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e', + '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649' + ], + [ + '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d', + 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826' + ], + [ + '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b', + '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5' + ], + [ + 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f', + 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87' + ], + [ + '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6', + '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b' + ], + [ + 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297', + '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc' + ], + [ + '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a', + '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c' + ], + [ + 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c', + 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f' + ], + [ + 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52', + '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a' + ], + [ + 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb', + 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46' + ], + [ + '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065', + 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f' + ], + [ + '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917', + '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03' + ], + [ + '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9', + 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08' + ], + [ + '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3', + '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8' + ], + [ + '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57', + '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373' + ], + [ + '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66', + 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3' + ], + [ + '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8', + '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8' + ], + [ + '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721', + '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1' + ], + [ + '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180', + '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9' + ] + ] + } + } + }, + {} + ], + 131: [ + function (require, module, exports) { + 'use strict' + var utils = exports + var BN = require('bn.js') + var minAssert = require('minimalistic-assert') + var minUtils = require('minimalistic-crypto-utils') + utils.assert = minAssert + utils.toArray = minUtils.toArray + utils.zero2 = minUtils.zero2 + utils.toHex = minUtils.toHex + utils.encode = minUtils.encode + function getNAF(num, w, bits) { + var naf = new Array(Math.max(num.bitLength(), bits) + 1) + naf.fill(0) + var ws = 1 << (w + 1) + var k = num.clone() + for (var i = 0; i < naf.length; i++) { + var z + var mod = k.andln(ws - 1) + if (k.isOdd()) { + if (mod > (ws >> 1) - 1) z = (ws >> 1) - mod + else z = mod + k.isubn(z) + } else { + z = 0 + } + naf[i] = z + k.iushrn(1) + } + return naf + } + utils.getNAF = getNAF + function getJSF(k1, k2) { + var jsf = [[], []] + k1 = k1.clone() + k2 = k2.clone() + var d1 = 0 + var d2 = 0 + while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) { + var m14 = (k1.andln(3) + d1) & 3 + var m24 = (k2.andln(3) + d2) & 3 + if (m14 === 3) m14 = -1 + if (m24 === 3) m24 = -1 + var u1 + if ((m14 & 1) === 0) { + u1 = 0 + } else { + var m8 = (k1.andln(7) + d1) & 7 + if ((m8 === 3 || m8 === 5) && m24 === 2) u1 = -m14 + else u1 = m14 + } + jsf[0].push(u1) + var u2 + if ((m24 & 1) === 0) { + u2 = 0 + } else { + var m8 = (k2.andln(7) + d2) & 7 + if ((m8 === 3 || m8 === 5) && m14 === 2) u2 = -m24 + else u2 = m24 + } + jsf[1].push(u2) + if (2 * d1 === u1 + 1) d1 = 1 - d1 + if (2 * d2 === u2 + 1) d2 = 1 - d2 + k1.iushrn(1) + k2.iushrn(1) + } + return jsf + } + utils.getJSF = getJSF + function cachedProperty(obj, name, computer) { + var key = '_' + name + obj.prototype[name] = function cachedProperty() { + return this[key] !== undefined ? this[key] : (this[key] = computer.call(this)) + } + } + utils.cachedProperty = cachedProperty + function parseBytes(bytes) { + return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') : bytes + } + utils.parseBytes = parseBytes + function intFromLE(bytes) { + return new BN(bytes, 'hex', 'le') + } + utils.intFromLE = intFromLE + }, + { 'bn.js': 132, 'minimalistic-assert': 158, 'minimalistic-crypto-utils': 159 } + ], + 132: [ + function (require, module, exports) { + ;(function (module, exports) { + 'use strict' + function assert(val, msg) { + if (!val) throw new Error(msg || 'Assertion failed') + } + function inherits(ctor, superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } + function BN(number, base, endian) { + if (BN.isBN(number)) { + return number + } + this.negative = 0 + this.words = null + this.length = 0 + this.red = null + if (number !== null) { + if (base === 'le' || base === 'be') { + endian = base + base = 10 + } + this._init(number || 0, base || 10, endian || 'be') + } + } + if (typeof module === 'object') { + module.exports = BN + } else { + exports.BN = BN + } + BN.BN = BN + BN.wordSize = 26 + var Buffer + try { + Buffer = require('buffer').Buffer + } catch (e) {} + BN.isBN = function isBN(num) { + if (num instanceof BN) { + return true + } + return ( + num !== null && + typeof num === 'object' && + num.constructor.wordSize === BN.wordSize && + Array.isArray(num.words) + ) + } + BN.max = function max(left, right) { + if (left.cmp(right) > 0) return left + return right + } + BN.min = function min(left, right) { + if (left.cmp(right) < 0) return left + return right + } + BN.prototype._init = function init(number, base, endian) { + if (typeof number === 'number') { + return this._initNumber(number, base, endian) + } + if (typeof number === 'object') { + return this._initArray(number, base, endian) + } + if (base === 'hex') { + base = 16 + } + assert(base === (base | 0) && base >= 2 && base <= 36) + number = number.toString().replace(/\s+/g, '') + var start = 0 + if (number[0] === '-') { + start++ + } + if (base === 16) { + this._parseHex(number, start) + } else { + this._parseBase(number, base, start) + } + if (number[0] === '-') { + this.negative = 1 + } + this.strip() + if (endian !== 'le') return + this._initArray(this.toArray(), base, endian) + } + BN.prototype._initNumber = function _initNumber(number, base, endian) { + if (number < 0) { + this.negative = 1 + number = -number + } + if (number < 67108864) { + this.words = [number & 67108863] + this.length = 1 + } else if (number < 4503599627370496) { + this.words = [number & 67108863, (number / 67108864) & 67108863] + this.length = 2 + } else { + assert(number < 9007199254740992) + this.words = [number & 67108863, (number / 67108864) & 67108863, 1] + this.length = 3 + } + if (endian !== 'le') return + this._initArray(this.toArray(), base, endian) + } + BN.prototype._initArray = function _initArray(number, base, endian) { + assert(typeof number.length === 'number') + if (number.length <= 0) { + this.words = [0] + this.length = 1 + return this + } + this.length = Math.ceil(number.length / 3) + this.words = new Array(this.length) + for (var i = 0; i < this.length; i++) { + this.words[i] = 0 + } + var j, w + var off = 0 + if (endian === 'be') { + for (i = number.length - 1, j = 0; i >= 0; i -= 3) { + w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16) + this.words[j] |= (w << off) & 67108863 + this.words[j + 1] = (w >>> (26 - off)) & 67108863 + off += 24 + if (off >= 26) { + off -= 26 + j++ + } + } + } else if (endian === 'le') { + for (i = 0, j = 0; i < number.length; i += 3) { + w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16) + this.words[j] |= (w << off) & 67108863 + this.words[j + 1] = (w >>> (26 - off)) & 67108863 + off += 24 + if (off >= 26) { + off -= 26 + j++ + } + } + } + return this.strip() + } + function parseHex(str, start, end) { + var r = 0 + var len = Math.min(str.length, end) + for (var i = start; i < len; i++) { + var c = str.charCodeAt(i) - 48 + r <<= 4 + if (c >= 49 && c <= 54) { + r |= c - 49 + 10 + } else if (c >= 17 && c <= 22) { + r |= c - 17 + 10 + } else { + r |= c & 15 + } + } + return r + } + BN.prototype._parseHex = function _parseHex(number, start) { + this.length = Math.ceil((number.length - start) / 6) + this.words = new Array(this.length) + for (var i = 0; i < this.length; i++) { + this.words[i] = 0 + } + var j, w + var off = 0 + for (i = number.length - 6, j = 0; i >= start; i -= 6) { + w = parseHex(number, i, i + 6) + this.words[j] |= (w << off) & 67108863 + this.words[j + 1] |= (w >>> (26 - off)) & 4194303 + off += 24 + if (off >= 26) { + off -= 26 + j++ + } + } + if (i + 6 !== start) { + w = parseHex(number, start, i + 6) + this.words[j] |= (w << off) & 67108863 + this.words[j + 1] |= (w >>> (26 - off)) & 4194303 + } + this.strip() + } + function parseBase(str, start, end, mul) { + var r = 0 + var len = Math.min(str.length, end) + for (var i = start; i < len; i++) { + var c = str.charCodeAt(i) - 48 + r *= mul + if (c >= 49) { + r += c - 49 + 10 + } else if (c >= 17) { + r += c - 17 + 10 + } else { + r += c + } + } + return r + } + BN.prototype._parseBase = function _parseBase(number, base, start) { + this.words = [0] + this.length = 1 + for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { + limbLen++ + } + limbLen-- + limbPow = (limbPow / base) | 0 + var total = number.length - start + var mod = total % limbLen + var end = Math.min(total, total - mod) + start + var word = 0 + for (var i = start; i < end; i += limbLen) { + word = parseBase(number, i, i + limbLen, base) + this.imuln(limbPow) + if (this.words[0] + word < 67108864) { + this.words[0] += word + } else { + this._iaddn(word) + } + } + if (mod !== 0) { + var pow = 1 + word = parseBase(number, i, number.length, base) + for (i = 0; i < mod; i++) { + pow *= base + } + this.imuln(pow) + if (this.words[0] + word < 67108864) { + this.words[0] += word + } else { + this._iaddn(word) + } + } + } + BN.prototype.copy = function copy(dest) { + dest.words = new Array(this.length) + for (var i = 0; i < this.length; i++) { + dest.words[i] = this.words[i] + } + dest.length = this.length + dest.negative = this.negative + dest.red = this.red + } + BN.prototype.clone = function clone() { + var r = new BN(null) + this.copy(r) + return r + } + BN.prototype._expand = function _expand(size) { + while (this.length < size) { + this.words[this.length++] = 0 + } + return this + } + BN.prototype.strip = function strip() { + while (this.length > 1 && this.words[this.length - 1] === 0) { + this.length-- + } + return this._normSign() + } + BN.prototype._normSign = function _normSign() { + if (this.length === 1 && this.words[0] === 0) { + this.negative = 0 + } + return this + } + BN.prototype.inspect = function inspect() { + return (this.red ? '' + } + var zeros = [ + '', + '0', + '00', + '000', + '0000', + '00000', + '000000', + '0000000', + '00000000', + '000000000', + '0000000000', + '00000000000', + '000000000000', + '0000000000000', + '00000000000000', + '000000000000000', + '0000000000000000', + '00000000000000000', + '000000000000000000', + '0000000000000000000', + '00000000000000000000', + '000000000000000000000', + '0000000000000000000000', + '00000000000000000000000', + '000000000000000000000000', + '0000000000000000000000000' + ] + var groupSizes = [ + 0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 + ] + var groupBases = [ + 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, + 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, + 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, + 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176 + ] + BN.prototype.toString = function toString(base, padding) { + base = base || 10 + padding = padding | 0 || 1 + var out + if (base === 16 || base === 'hex') { + out = '' + var off = 0 + var carry = 0 + for (var i = 0; i < this.length; i++) { + var w = this.words[i] + var word = (((w << off) | carry) & 16777215).toString(16) + carry = (w >>> (24 - off)) & 16777215 + if (carry !== 0 || i !== this.length - 1) { + out = zeros[6 - word.length] + word + out + } else { + out = word + out + } + off += 2 + if (off >= 26) { + off -= 26 + i-- + } + } + if (carry !== 0) { + out = carry.toString(16) + out + } + while (out.length % padding !== 0) { + out = '0' + out + } + if (this.negative !== 0) { + out = '-' + out + } + return out + } + if (base === (base | 0) && base >= 2 && base <= 36) { + var groupSize = groupSizes[base] + var groupBase = groupBases[base] + out = '' + var c = this.clone() + c.negative = 0 + while (!c.isZero()) { + var r = c.modn(groupBase).toString(base) + c = c.idivn(groupBase) + if (!c.isZero()) { + out = zeros[groupSize - r.length] + r + out + } else { + out = r + out + } + } + if (this.isZero()) { + out = '0' + out + } + while (out.length % padding !== 0) { + out = '0' + out + } + if (this.negative !== 0) { + out = '-' + out + } + return out + } + assert(false, 'Base should be between 2 and 36') + } + BN.prototype.toNumber = function toNumber() { + var ret = this.words[0] + if (this.length === 2) { + ret += this.words[1] * 67108864 + } else if (this.length === 3 && this.words[2] === 1) { + ret += 4503599627370496 + this.words[1] * 67108864 + } else if (this.length > 2) { + assert(false, 'Number can only safely store up to 53 bits') + } + return this.negative !== 0 ? -ret : ret + } + BN.prototype.toJSON = function toJSON() { + return this.toString(16) + } + BN.prototype.toBuffer = function toBuffer(endian, length) { + assert(typeof Buffer !== 'undefined') + return this.toArrayLike(Buffer, endian, length) + } + BN.prototype.toArray = function toArray(endian, length) { + return this.toArrayLike(Array, endian, length) + } + BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { + var byteLength = this.byteLength() + var reqLength = length || Math.max(1, byteLength) + assert(byteLength <= reqLength, 'byte array longer than desired length') + assert(reqLength > 0, 'Requested array length <= 0') + this.strip() + var littleEndian = endian === 'le' + var res = new ArrayType(reqLength) + var b, i + var q = this.clone() + if (!littleEndian) { + for (i = 0; i < reqLength - byteLength; i++) { + res[i] = 0 + } + for (i = 0; !q.isZero(); i++) { + b = q.andln(255) + q.iushrn(8) + res[reqLength - i - 1] = b + } + } else { + for (i = 0; !q.isZero(); i++) { + b = q.andln(255) + q.iushrn(8) + res[i] = b + } + for (; i < reqLength; i++) { + res[i] = 0 + } + } + return res + } + if (Math.clz32) { + BN.prototype._countBits = function _countBits(w) { + return 32 - Math.clz32(w) + } + } else { + BN.prototype._countBits = function _countBits(w) { + var t = w + var r = 0 + if (t >= 4096) { + r += 13 + t >>>= 13 + } + if (t >= 64) { + r += 7 + t >>>= 7 + } + if (t >= 8) { + r += 4 + t >>>= 4 + } + if (t >= 2) { + r += 2 + t >>>= 2 + } + return r + t + } + } + BN.prototype._zeroBits = function _zeroBits(w) { + if (w === 0) return 26 + var t = w + var r = 0 + if ((t & 8191) === 0) { + r += 13 + t >>>= 13 + } + if ((t & 127) === 0) { + r += 7 + t >>>= 7 + } + if ((t & 15) === 0) { + r += 4 + t >>>= 4 + } + if ((t & 3) === 0) { + r += 2 + t >>>= 2 + } + if ((t & 1) === 0) { + r++ + } + return r + } + BN.prototype.bitLength = function bitLength() { + var w = this.words[this.length - 1] + var hi = this._countBits(w) + return (this.length - 1) * 26 + hi + } + function toBitArray(num) { + var w = new Array(num.bitLength()) + for (var bit = 0; bit < w.length; bit++) { + var off = (bit / 26) | 0 + var wbit = bit % 26 + w[bit] = (num.words[off] & (1 << wbit)) >>> wbit + } + return w + } + BN.prototype.zeroBits = function zeroBits() { + if (this.isZero()) return 0 + var r = 0 + for (var i = 0; i < this.length; i++) { + var b = this._zeroBits(this.words[i]) + r += b + if (b !== 26) break + } + return r + } + BN.prototype.byteLength = function byteLength() { + return Math.ceil(this.bitLength() / 8) + } + BN.prototype.toTwos = function toTwos(width) { + if (this.negative !== 0) { + return this.abs().inotn(width).iaddn(1) + } + return this.clone() + } + BN.prototype.fromTwos = function fromTwos(width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg() + } + return this.clone() + } + BN.prototype.isNeg = function isNeg() { + return this.negative !== 0 + } + BN.prototype.neg = function neg() { + return this.clone().ineg() + } + BN.prototype.ineg = function ineg() { + if (!this.isZero()) { + this.negative ^= 1 + } + return this + } + BN.prototype.iuor = function iuor(num) { + while (this.length < num.length) { + this.words[this.length++] = 0 + } + for (var i = 0; i < num.length; i++) { + this.words[i] = this.words[i] | num.words[i] + } + return this.strip() + } + BN.prototype.ior = function ior(num) { + assert((this.negative | num.negative) === 0) + return this.iuor(num) + } + BN.prototype.or = function or(num) { + if (this.length > num.length) return this.clone().ior(num) + return num.clone().ior(this) + } + BN.prototype.uor = function uor(num) { + if (this.length > num.length) return this.clone().iuor(num) + return num.clone().iuor(this) + } + BN.prototype.iuand = function iuand(num) { + var b + if (this.length > num.length) { + b = num + } else { + b = this + } + for (var i = 0; i < b.length; i++) { + this.words[i] = this.words[i] & num.words[i] + } + this.length = b.length + return this.strip() + } + BN.prototype.iand = function iand(num) { + assert((this.negative | num.negative) === 0) + return this.iuand(num) + } + BN.prototype.and = function and(num) { + if (this.length > num.length) return this.clone().iand(num) + return num.clone().iand(this) + } + BN.prototype.uand = function uand(num) { + if (this.length > num.length) return this.clone().iuand(num) + return num.clone().iuand(this) + } + BN.prototype.iuxor = function iuxor(num) { + var a + var b + if (this.length > num.length) { + a = this + b = num + } else { + a = num + b = this + } + for (var i = 0; i < b.length; i++) { + this.words[i] = a.words[i] ^ b.words[i] + } + if (this !== a) { + for (; i < a.length; i++) { + this.words[i] = a.words[i] + } + } + this.length = a.length + return this.strip() + } + BN.prototype.ixor = function ixor(num) { + assert((this.negative | num.negative) === 0) + return this.iuxor(num) + } + BN.prototype.xor = function xor(num) { + if (this.length > num.length) return this.clone().ixor(num) + return num.clone().ixor(this) + } + BN.prototype.uxor = function uxor(num) { + if (this.length > num.length) return this.clone().iuxor(num) + return num.clone().iuxor(this) + } + BN.prototype.inotn = function inotn(width) { + assert(typeof width === 'number' && width >= 0) + var bytesNeeded = Math.ceil(width / 26) | 0 + var bitsLeft = width % 26 + this._expand(bytesNeeded) + if (bitsLeft > 0) { + bytesNeeded-- + } + for (var i = 0; i < bytesNeeded; i++) { + this.words[i] = ~this.words[i] & 67108863 + } + if (bitsLeft > 0) { + this.words[i] = ~this.words[i] & (67108863 >> (26 - bitsLeft)) + } + return this.strip() + } + BN.prototype.notn = function notn(width) { + return this.clone().inotn(width) + } + BN.prototype.setn = function setn(bit, val) { + assert(typeof bit === 'number' && bit >= 0) + var off = (bit / 26) | 0 + var wbit = bit % 26 + this._expand(off + 1) + if (val) { + this.words[off] = this.words[off] | (1 << wbit) + } else { + this.words[off] = this.words[off] & ~(1 << wbit) + } + return this.strip() + } + BN.prototype.iadd = function iadd(num) { + var r + if (this.negative !== 0 && num.negative === 0) { + this.negative = 0 + r = this.isub(num) + this.negative ^= 1 + return this._normSign() + } else if (this.negative === 0 && num.negative !== 0) { + num.negative = 0 + r = this.isub(num) + num.negative = 1 + return r._normSign() + } + var a, b + if (this.length > num.length) { + a = this + b = num + } else { + a = num + b = this + } + var carry = 0 + for (var i = 0; i < b.length; i++) { + r = (a.words[i] | 0) + (b.words[i] | 0) + carry + this.words[i] = r & 67108863 + carry = r >>> 26 + } + for (; carry !== 0 && i < a.length; i++) { + r = (a.words[i] | 0) + carry + this.words[i] = r & 67108863 + carry = r >>> 26 + } + this.length = a.length + if (carry !== 0) { + this.words[this.length] = carry + this.length++ + } else if (a !== this) { + for (; i < a.length; i++) { + this.words[i] = a.words[i] + } + } + return this + } + BN.prototype.add = function add(num) { + var res + if (num.negative !== 0 && this.negative === 0) { + num.negative = 0 + res = this.sub(num) + num.negative ^= 1 + return res + } else if (num.negative === 0 && this.negative !== 0) { + this.negative = 0 + res = num.sub(this) + this.negative = 1 + return res + } + if (this.length > num.length) return this.clone().iadd(num) + return num.clone().iadd(this) + } + BN.prototype.isub = function isub(num) { + if (num.negative !== 0) { + num.negative = 0 + var r = this.iadd(num) + num.negative = 1 + return r._normSign() + } else if (this.negative !== 0) { + this.negative = 0 + this.iadd(num) + this.negative = 1 + return this._normSign() + } + var cmp = this.cmp(num) + if (cmp === 0) { + this.negative = 0 + this.length = 1 + this.words[0] = 0 + return this + } + var a, b + if (cmp > 0) { + a = this + b = num + } else { + a = num + b = this + } + var carry = 0 + for (var i = 0; i < b.length; i++) { + r = (a.words[i] | 0) - (b.words[i] | 0) + carry + carry = r >> 26 + this.words[i] = r & 67108863 + } + for (; carry !== 0 && i < a.length; i++) { + r = (a.words[i] | 0) + carry + carry = r >> 26 + this.words[i] = r & 67108863 + } + if (carry === 0 && i < a.length && a !== this) { + for (; i < a.length; i++) { + this.words[i] = a.words[i] + } + } + this.length = Math.max(this.length, i) + if (a !== this) { + this.negative = 1 + } + return this.strip() + } + BN.prototype.sub = function sub(num) { + return this.clone().isub(num) + } + function smallMulTo(self, num, out) { + out.negative = num.negative ^ self.negative + var len = (self.length + num.length) | 0 + out.length = len + len = (len - 1) | 0 + var a = self.words[0] | 0 + var b = num.words[0] | 0 + var r = a * b + var lo = r & 67108863 + var carry = (r / 67108864) | 0 + out.words[0] = lo + for (var k = 1; k < len; k++) { + var ncarry = carry >>> 26 + var rword = carry & 67108863 + var maxJ = Math.min(k, num.length - 1) + for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { + var i = (k - j) | 0 + a = self.words[i] | 0 + b = num.words[j] | 0 + r = a * b + rword + ncarry += (r / 67108864) | 0 + rword = r & 67108863 + } + out.words[k] = rword | 0 + carry = ncarry | 0 + } + if (carry !== 0) { + out.words[k] = carry | 0 + } else { + out.length-- + } + return out.strip() + } + var comb10MulTo = function comb10MulTo(self, num, out) { + var a = self.words + var b = num.words + var o = out.words + var c = 0 + var lo + var mid + var hi + var a0 = a[0] | 0 + var al0 = a0 & 8191 + var ah0 = a0 >>> 13 + var a1 = a[1] | 0 + var al1 = a1 & 8191 + var ah1 = a1 >>> 13 + var a2 = a[2] | 0 + var al2 = a2 & 8191 + var ah2 = a2 >>> 13 + var a3 = a[3] | 0 + var al3 = a3 & 8191 + var ah3 = a3 >>> 13 + var a4 = a[4] | 0 + var al4 = a4 & 8191 + var ah4 = a4 >>> 13 + var a5 = a[5] | 0 + var al5 = a5 & 8191 + var ah5 = a5 >>> 13 + var a6 = a[6] | 0 + var al6 = a6 & 8191 + var ah6 = a6 >>> 13 + var a7 = a[7] | 0 + var al7 = a7 & 8191 + var ah7 = a7 >>> 13 + var a8 = a[8] | 0 + var al8 = a8 & 8191 + var ah8 = a8 >>> 13 + var a9 = a[9] | 0 + var al9 = a9 & 8191 + var ah9 = a9 >>> 13 + var b0 = b[0] | 0 + var bl0 = b0 & 8191 + var bh0 = b0 >>> 13 + var b1 = b[1] | 0 + var bl1 = b1 & 8191 + var bh1 = b1 >>> 13 + var b2 = b[2] | 0 + var bl2 = b2 & 8191 + var bh2 = b2 >>> 13 + var b3 = b[3] | 0 + var bl3 = b3 & 8191 + var bh3 = b3 >>> 13 + var b4 = b[4] | 0 + var bl4 = b4 & 8191 + var bh4 = b4 >>> 13 + var b5 = b[5] | 0 + var bl5 = b5 & 8191 + var bh5 = b5 >>> 13 + var b6 = b[6] | 0 + var bl6 = b6 & 8191 + var bh6 = b6 >>> 13 + var b7 = b[7] | 0 + var bl7 = b7 & 8191 + var bh7 = b7 >>> 13 + var b8 = b[8] | 0 + var bl8 = b8 & 8191 + var bh8 = b8 >>> 13 + var b9 = b[9] | 0 + var bl9 = b9 & 8191 + var bh9 = b9 >>> 13 + out.negative = self.negative ^ num.negative + out.length = 19 + lo = Math.imul(al0, bl0) + mid = Math.imul(al0, bh0) + mid = (mid + Math.imul(ah0, bl0)) | 0 + hi = Math.imul(ah0, bh0) + var w0 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0 + w0 &= 67108863 + lo = Math.imul(al1, bl0) + mid = Math.imul(al1, bh0) + mid = (mid + Math.imul(ah1, bl0)) | 0 + hi = Math.imul(ah1, bh0) + lo = (lo + Math.imul(al0, bl1)) | 0 + mid = (mid + Math.imul(al0, bh1)) | 0 + mid = (mid + Math.imul(ah0, bl1)) | 0 + hi = (hi + Math.imul(ah0, bh1)) | 0 + var w1 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0 + w1 &= 67108863 + lo = Math.imul(al2, bl0) + mid = Math.imul(al2, bh0) + mid = (mid + Math.imul(ah2, bl0)) | 0 + hi = Math.imul(ah2, bh0) + lo = (lo + Math.imul(al1, bl1)) | 0 + mid = (mid + Math.imul(al1, bh1)) | 0 + mid = (mid + Math.imul(ah1, bl1)) | 0 + hi = (hi + Math.imul(ah1, bh1)) | 0 + lo = (lo + Math.imul(al0, bl2)) | 0 + mid = (mid + Math.imul(al0, bh2)) | 0 + mid = (mid + Math.imul(ah0, bl2)) | 0 + hi = (hi + Math.imul(ah0, bh2)) | 0 + var w2 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0 + w2 &= 67108863 + lo = Math.imul(al3, bl0) + mid = Math.imul(al3, bh0) + mid = (mid + Math.imul(ah3, bl0)) | 0 + hi = Math.imul(ah3, bh0) + lo = (lo + Math.imul(al2, bl1)) | 0 + mid = (mid + Math.imul(al2, bh1)) | 0 + mid = (mid + Math.imul(ah2, bl1)) | 0 + hi = (hi + Math.imul(ah2, bh1)) | 0 + lo = (lo + Math.imul(al1, bl2)) | 0 + mid = (mid + Math.imul(al1, bh2)) | 0 + mid = (mid + Math.imul(ah1, bl2)) | 0 + hi = (hi + Math.imul(ah1, bh2)) | 0 + lo = (lo + Math.imul(al0, bl3)) | 0 + mid = (mid + Math.imul(al0, bh3)) | 0 + mid = (mid + Math.imul(ah0, bl3)) | 0 + hi = (hi + Math.imul(ah0, bh3)) | 0 + var w3 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0 + w3 &= 67108863 + lo = Math.imul(al4, bl0) + mid = Math.imul(al4, bh0) + mid = (mid + Math.imul(ah4, bl0)) | 0 + hi = Math.imul(ah4, bh0) + lo = (lo + Math.imul(al3, bl1)) | 0 + mid = (mid + Math.imul(al3, bh1)) | 0 + mid = (mid + Math.imul(ah3, bl1)) | 0 + hi = (hi + Math.imul(ah3, bh1)) | 0 + lo = (lo + Math.imul(al2, bl2)) | 0 + mid = (mid + Math.imul(al2, bh2)) | 0 + mid = (mid + Math.imul(ah2, bl2)) | 0 + hi = (hi + Math.imul(ah2, bh2)) | 0 + lo = (lo + Math.imul(al1, bl3)) | 0 + mid = (mid + Math.imul(al1, bh3)) | 0 + mid = (mid + Math.imul(ah1, bl3)) | 0 + hi = (hi + Math.imul(ah1, bh3)) | 0 + lo = (lo + Math.imul(al0, bl4)) | 0 + mid = (mid + Math.imul(al0, bh4)) | 0 + mid = (mid + Math.imul(ah0, bl4)) | 0 + hi = (hi + Math.imul(ah0, bh4)) | 0 + var w4 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0 + w4 &= 67108863 + lo = Math.imul(al5, bl0) + mid = Math.imul(al5, bh0) + mid = (mid + Math.imul(ah5, bl0)) | 0 + hi = Math.imul(ah5, bh0) + lo = (lo + Math.imul(al4, bl1)) | 0 + mid = (mid + Math.imul(al4, bh1)) | 0 + mid = (mid + Math.imul(ah4, bl1)) | 0 + hi = (hi + Math.imul(ah4, bh1)) | 0 + lo = (lo + Math.imul(al3, bl2)) | 0 + mid = (mid + Math.imul(al3, bh2)) | 0 + mid = (mid + Math.imul(ah3, bl2)) | 0 + hi = (hi + Math.imul(ah3, bh2)) | 0 + lo = (lo + Math.imul(al2, bl3)) | 0 + mid = (mid + Math.imul(al2, bh3)) | 0 + mid = (mid + Math.imul(ah2, bl3)) | 0 + hi = (hi + Math.imul(ah2, bh3)) | 0 + lo = (lo + Math.imul(al1, bl4)) | 0 + mid = (mid + Math.imul(al1, bh4)) | 0 + mid = (mid + Math.imul(ah1, bl4)) | 0 + hi = (hi + Math.imul(ah1, bh4)) | 0 + lo = (lo + Math.imul(al0, bl5)) | 0 + mid = (mid + Math.imul(al0, bh5)) | 0 + mid = (mid + Math.imul(ah0, bl5)) | 0 + hi = (hi + Math.imul(ah0, bh5)) | 0 + var w5 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0 + w5 &= 67108863 + lo = Math.imul(al6, bl0) + mid = Math.imul(al6, bh0) + mid = (mid + Math.imul(ah6, bl0)) | 0 + hi = Math.imul(ah6, bh0) + lo = (lo + Math.imul(al5, bl1)) | 0 + mid = (mid + Math.imul(al5, bh1)) | 0 + mid = (mid + Math.imul(ah5, bl1)) | 0 + hi = (hi + Math.imul(ah5, bh1)) | 0 + lo = (lo + Math.imul(al4, bl2)) | 0 + mid = (mid + Math.imul(al4, bh2)) | 0 + mid = (mid + Math.imul(ah4, bl2)) | 0 + hi = (hi + Math.imul(ah4, bh2)) | 0 + lo = (lo + Math.imul(al3, bl3)) | 0 + mid = (mid + Math.imul(al3, bh3)) | 0 + mid = (mid + Math.imul(ah3, bl3)) | 0 + hi = (hi + Math.imul(ah3, bh3)) | 0 + lo = (lo + Math.imul(al2, bl4)) | 0 + mid = (mid + Math.imul(al2, bh4)) | 0 + mid = (mid + Math.imul(ah2, bl4)) | 0 + hi = (hi + Math.imul(ah2, bh4)) | 0 + lo = (lo + Math.imul(al1, bl5)) | 0 + mid = (mid + Math.imul(al1, bh5)) | 0 + mid = (mid + Math.imul(ah1, bl5)) | 0 + hi = (hi + Math.imul(ah1, bh5)) | 0 + lo = (lo + Math.imul(al0, bl6)) | 0 + mid = (mid + Math.imul(al0, bh6)) | 0 + mid = (mid + Math.imul(ah0, bl6)) | 0 + hi = (hi + Math.imul(ah0, bh6)) | 0 + var w6 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0 + w6 &= 67108863 + lo = Math.imul(al7, bl0) + mid = Math.imul(al7, bh0) + mid = (mid + Math.imul(ah7, bl0)) | 0 + hi = Math.imul(ah7, bh0) + lo = (lo + Math.imul(al6, bl1)) | 0 + mid = (mid + Math.imul(al6, bh1)) | 0 + mid = (mid + Math.imul(ah6, bl1)) | 0 + hi = (hi + Math.imul(ah6, bh1)) | 0 + lo = (lo + Math.imul(al5, bl2)) | 0 + mid = (mid + Math.imul(al5, bh2)) | 0 + mid = (mid + Math.imul(ah5, bl2)) | 0 + hi = (hi + Math.imul(ah5, bh2)) | 0 + lo = (lo + Math.imul(al4, bl3)) | 0 + mid = (mid + Math.imul(al4, bh3)) | 0 + mid = (mid + Math.imul(ah4, bl3)) | 0 + hi = (hi + Math.imul(ah4, bh3)) | 0 + lo = (lo + Math.imul(al3, bl4)) | 0 + mid = (mid + Math.imul(al3, bh4)) | 0 + mid = (mid + Math.imul(ah3, bl4)) | 0 + hi = (hi + Math.imul(ah3, bh4)) | 0 + lo = (lo + Math.imul(al2, bl5)) | 0 + mid = (mid + Math.imul(al2, bh5)) | 0 + mid = (mid + Math.imul(ah2, bl5)) | 0 + hi = (hi + Math.imul(ah2, bh5)) | 0 + lo = (lo + Math.imul(al1, bl6)) | 0 + mid = (mid + Math.imul(al1, bh6)) | 0 + mid = (mid + Math.imul(ah1, bl6)) | 0 + hi = (hi + Math.imul(ah1, bh6)) | 0 + lo = (lo + Math.imul(al0, bl7)) | 0 + mid = (mid + Math.imul(al0, bh7)) | 0 + mid = (mid + Math.imul(ah0, bl7)) | 0 + hi = (hi + Math.imul(ah0, bh7)) | 0 + var w7 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0 + w7 &= 67108863 + lo = Math.imul(al8, bl0) + mid = Math.imul(al8, bh0) + mid = (mid + Math.imul(ah8, bl0)) | 0 + hi = Math.imul(ah8, bh0) + lo = (lo + Math.imul(al7, bl1)) | 0 + mid = (mid + Math.imul(al7, bh1)) | 0 + mid = (mid + Math.imul(ah7, bl1)) | 0 + hi = (hi + Math.imul(ah7, bh1)) | 0 + lo = (lo + Math.imul(al6, bl2)) | 0 + mid = (mid + Math.imul(al6, bh2)) | 0 + mid = (mid + Math.imul(ah6, bl2)) | 0 + hi = (hi + Math.imul(ah6, bh2)) | 0 + lo = (lo + Math.imul(al5, bl3)) | 0 + mid = (mid + Math.imul(al5, bh3)) | 0 + mid = (mid + Math.imul(ah5, bl3)) | 0 + hi = (hi + Math.imul(ah5, bh3)) | 0 + lo = (lo + Math.imul(al4, bl4)) | 0 + mid = (mid + Math.imul(al4, bh4)) | 0 + mid = (mid + Math.imul(ah4, bl4)) | 0 + hi = (hi + Math.imul(ah4, bh4)) | 0 + lo = (lo + Math.imul(al3, bl5)) | 0 + mid = (mid + Math.imul(al3, bh5)) | 0 + mid = (mid + Math.imul(ah3, bl5)) | 0 + hi = (hi + Math.imul(ah3, bh5)) | 0 + lo = (lo + Math.imul(al2, bl6)) | 0 + mid = (mid + Math.imul(al2, bh6)) | 0 + mid = (mid + Math.imul(ah2, bl6)) | 0 + hi = (hi + Math.imul(ah2, bh6)) | 0 + lo = (lo + Math.imul(al1, bl7)) | 0 + mid = (mid + Math.imul(al1, bh7)) | 0 + mid = (mid + Math.imul(ah1, bl7)) | 0 + hi = (hi + Math.imul(ah1, bh7)) | 0 + lo = (lo + Math.imul(al0, bl8)) | 0 + mid = (mid + Math.imul(al0, bh8)) | 0 + mid = (mid + Math.imul(ah0, bl8)) | 0 + hi = (hi + Math.imul(ah0, bh8)) | 0 + var w8 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0 + w8 &= 67108863 + lo = Math.imul(al9, bl0) + mid = Math.imul(al9, bh0) + mid = (mid + Math.imul(ah9, bl0)) | 0 + hi = Math.imul(ah9, bh0) + lo = (lo + Math.imul(al8, bl1)) | 0 + mid = (mid + Math.imul(al8, bh1)) | 0 + mid = (mid + Math.imul(ah8, bl1)) | 0 + hi = (hi + Math.imul(ah8, bh1)) | 0 + lo = (lo + Math.imul(al7, bl2)) | 0 + mid = (mid + Math.imul(al7, bh2)) | 0 + mid = (mid + Math.imul(ah7, bl2)) | 0 + hi = (hi + Math.imul(ah7, bh2)) | 0 + lo = (lo + Math.imul(al6, bl3)) | 0 + mid = (mid + Math.imul(al6, bh3)) | 0 + mid = (mid + Math.imul(ah6, bl3)) | 0 + hi = (hi + Math.imul(ah6, bh3)) | 0 + lo = (lo + Math.imul(al5, bl4)) | 0 + mid = (mid + Math.imul(al5, bh4)) | 0 + mid = (mid + Math.imul(ah5, bl4)) | 0 + hi = (hi + Math.imul(ah5, bh4)) | 0 + lo = (lo + Math.imul(al4, bl5)) | 0 + mid = (mid + Math.imul(al4, bh5)) | 0 + mid = (mid + Math.imul(ah4, bl5)) | 0 + hi = (hi + Math.imul(ah4, bh5)) | 0 + lo = (lo + Math.imul(al3, bl6)) | 0 + mid = (mid + Math.imul(al3, bh6)) | 0 + mid = (mid + Math.imul(ah3, bl6)) | 0 + hi = (hi + Math.imul(ah3, bh6)) | 0 + lo = (lo + Math.imul(al2, bl7)) | 0 + mid = (mid + Math.imul(al2, bh7)) | 0 + mid = (mid + Math.imul(ah2, bl7)) | 0 + hi = (hi + Math.imul(ah2, bh7)) | 0 + lo = (lo + Math.imul(al1, bl8)) | 0 + mid = (mid + Math.imul(al1, bh8)) | 0 + mid = (mid + Math.imul(ah1, bl8)) | 0 + hi = (hi + Math.imul(ah1, bh8)) | 0 + lo = (lo + Math.imul(al0, bl9)) | 0 + mid = (mid + Math.imul(al0, bh9)) | 0 + mid = (mid + Math.imul(ah0, bl9)) | 0 + hi = (hi + Math.imul(ah0, bh9)) | 0 + var w9 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0 + w9 &= 67108863 + lo = Math.imul(al9, bl1) + mid = Math.imul(al9, bh1) + mid = (mid + Math.imul(ah9, bl1)) | 0 + hi = Math.imul(ah9, bh1) + lo = (lo + Math.imul(al8, bl2)) | 0 + mid = (mid + Math.imul(al8, bh2)) | 0 + mid = (mid + Math.imul(ah8, bl2)) | 0 + hi = (hi + Math.imul(ah8, bh2)) | 0 + lo = (lo + Math.imul(al7, bl3)) | 0 + mid = (mid + Math.imul(al7, bh3)) | 0 + mid = (mid + Math.imul(ah7, bl3)) | 0 + hi = (hi + Math.imul(ah7, bh3)) | 0 + lo = (lo + Math.imul(al6, bl4)) | 0 + mid = (mid + Math.imul(al6, bh4)) | 0 + mid = (mid + Math.imul(ah6, bl4)) | 0 + hi = (hi + Math.imul(ah6, bh4)) | 0 + lo = (lo + Math.imul(al5, bl5)) | 0 + mid = (mid + Math.imul(al5, bh5)) | 0 + mid = (mid + Math.imul(ah5, bl5)) | 0 + hi = (hi + Math.imul(ah5, bh5)) | 0 + lo = (lo + Math.imul(al4, bl6)) | 0 + mid = (mid + Math.imul(al4, bh6)) | 0 + mid = (mid + Math.imul(ah4, bl6)) | 0 + hi = (hi + Math.imul(ah4, bh6)) | 0 + lo = (lo + Math.imul(al3, bl7)) | 0 + mid = (mid + Math.imul(al3, bh7)) | 0 + mid = (mid + Math.imul(ah3, bl7)) | 0 + hi = (hi + Math.imul(ah3, bh7)) | 0 + lo = (lo + Math.imul(al2, bl8)) | 0 + mid = (mid + Math.imul(al2, bh8)) | 0 + mid = (mid + Math.imul(ah2, bl8)) | 0 + hi = (hi + Math.imul(ah2, bh8)) | 0 + lo = (lo + Math.imul(al1, bl9)) | 0 + mid = (mid + Math.imul(al1, bh9)) | 0 + mid = (mid + Math.imul(ah1, bl9)) | 0 + hi = (hi + Math.imul(ah1, bh9)) | 0 + var w10 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0 + w10 &= 67108863 + lo = Math.imul(al9, bl2) + mid = Math.imul(al9, bh2) + mid = (mid + Math.imul(ah9, bl2)) | 0 + hi = Math.imul(ah9, bh2) + lo = (lo + Math.imul(al8, bl3)) | 0 + mid = (mid + Math.imul(al8, bh3)) | 0 + mid = (mid + Math.imul(ah8, bl3)) | 0 + hi = (hi + Math.imul(ah8, bh3)) | 0 + lo = (lo + Math.imul(al7, bl4)) | 0 + mid = (mid + Math.imul(al7, bh4)) | 0 + mid = (mid + Math.imul(ah7, bl4)) | 0 + hi = (hi + Math.imul(ah7, bh4)) | 0 + lo = (lo + Math.imul(al6, bl5)) | 0 + mid = (mid + Math.imul(al6, bh5)) | 0 + mid = (mid + Math.imul(ah6, bl5)) | 0 + hi = (hi + Math.imul(ah6, bh5)) | 0 + lo = (lo + Math.imul(al5, bl6)) | 0 + mid = (mid + Math.imul(al5, bh6)) | 0 + mid = (mid + Math.imul(ah5, bl6)) | 0 + hi = (hi + Math.imul(ah5, bh6)) | 0 + lo = (lo + Math.imul(al4, bl7)) | 0 + mid = (mid + Math.imul(al4, bh7)) | 0 + mid = (mid + Math.imul(ah4, bl7)) | 0 + hi = (hi + Math.imul(ah4, bh7)) | 0 + lo = (lo + Math.imul(al3, bl8)) | 0 + mid = (mid + Math.imul(al3, bh8)) | 0 + mid = (mid + Math.imul(ah3, bl8)) | 0 + hi = (hi + Math.imul(ah3, bh8)) | 0 + lo = (lo + Math.imul(al2, bl9)) | 0 + mid = (mid + Math.imul(al2, bh9)) | 0 + mid = (mid + Math.imul(ah2, bl9)) | 0 + hi = (hi + Math.imul(ah2, bh9)) | 0 + var w11 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0 + w11 &= 67108863 + lo = Math.imul(al9, bl3) + mid = Math.imul(al9, bh3) + mid = (mid + Math.imul(ah9, bl3)) | 0 + hi = Math.imul(ah9, bh3) + lo = (lo + Math.imul(al8, bl4)) | 0 + mid = (mid + Math.imul(al8, bh4)) | 0 + mid = (mid + Math.imul(ah8, bl4)) | 0 + hi = (hi + Math.imul(ah8, bh4)) | 0 + lo = (lo + Math.imul(al7, bl5)) | 0 + mid = (mid + Math.imul(al7, bh5)) | 0 + mid = (mid + Math.imul(ah7, bl5)) | 0 + hi = (hi + Math.imul(ah7, bh5)) | 0 + lo = (lo + Math.imul(al6, bl6)) | 0 + mid = (mid + Math.imul(al6, bh6)) | 0 + mid = (mid + Math.imul(ah6, bl6)) | 0 + hi = (hi + Math.imul(ah6, bh6)) | 0 + lo = (lo + Math.imul(al5, bl7)) | 0 + mid = (mid + Math.imul(al5, bh7)) | 0 + mid = (mid + Math.imul(ah5, bl7)) | 0 + hi = (hi + Math.imul(ah5, bh7)) | 0 + lo = (lo + Math.imul(al4, bl8)) | 0 + mid = (mid + Math.imul(al4, bh8)) | 0 + mid = (mid + Math.imul(ah4, bl8)) | 0 + hi = (hi + Math.imul(ah4, bh8)) | 0 + lo = (lo + Math.imul(al3, bl9)) | 0 + mid = (mid + Math.imul(al3, bh9)) | 0 + mid = (mid + Math.imul(ah3, bl9)) | 0 + hi = (hi + Math.imul(ah3, bh9)) | 0 + var w12 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0 + w12 &= 67108863 + lo = Math.imul(al9, bl4) + mid = Math.imul(al9, bh4) + mid = (mid + Math.imul(ah9, bl4)) | 0 + hi = Math.imul(ah9, bh4) + lo = (lo + Math.imul(al8, bl5)) | 0 + mid = (mid + Math.imul(al8, bh5)) | 0 + mid = (mid + Math.imul(ah8, bl5)) | 0 + hi = (hi + Math.imul(ah8, bh5)) | 0 + lo = (lo + Math.imul(al7, bl6)) | 0 + mid = (mid + Math.imul(al7, bh6)) | 0 + mid = (mid + Math.imul(ah7, bl6)) | 0 + hi = (hi + Math.imul(ah7, bh6)) | 0 + lo = (lo + Math.imul(al6, bl7)) | 0 + mid = (mid + Math.imul(al6, bh7)) | 0 + mid = (mid + Math.imul(ah6, bl7)) | 0 + hi = (hi + Math.imul(ah6, bh7)) | 0 + lo = (lo + Math.imul(al5, bl8)) | 0 + mid = (mid + Math.imul(al5, bh8)) | 0 + mid = (mid + Math.imul(ah5, bl8)) | 0 + hi = (hi + Math.imul(ah5, bh8)) | 0 + lo = (lo + Math.imul(al4, bl9)) | 0 + mid = (mid + Math.imul(al4, bh9)) | 0 + mid = (mid + Math.imul(ah4, bl9)) | 0 + hi = (hi + Math.imul(ah4, bh9)) | 0 + var w13 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0 + w13 &= 67108863 + lo = Math.imul(al9, bl5) + mid = Math.imul(al9, bh5) + mid = (mid + Math.imul(ah9, bl5)) | 0 + hi = Math.imul(ah9, bh5) + lo = (lo + Math.imul(al8, bl6)) | 0 + mid = (mid + Math.imul(al8, bh6)) | 0 + mid = (mid + Math.imul(ah8, bl6)) | 0 + hi = (hi + Math.imul(ah8, bh6)) | 0 + lo = (lo + Math.imul(al7, bl7)) | 0 + mid = (mid + Math.imul(al7, bh7)) | 0 + mid = (mid + Math.imul(ah7, bl7)) | 0 + hi = (hi + Math.imul(ah7, bh7)) | 0 + lo = (lo + Math.imul(al6, bl8)) | 0 + mid = (mid + Math.imul(al6, bh8)) | 0 + mid = (mid + Math.imul(ah6, bl8)) | 0 + hi = (hi + Math.imul(ah6, bh8)) | 0 + lo = (lo + Math.imul(al5, bl9)) | 0 + mid = (mid + Math.imul(al5, bh9)) | 0 + mid = (mid + Math.imul(ah5, bl9)) | 0 + hi = (hi + Math.imul(ah5, bh9)) | 0 + var w14 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0 + w14 &= 67108863 + lo = Math.imul(al9, bl6) + mid = Math.imul(al9, bh6) + mid = (mid + Math.imul(ah9, bl6)) | 0 + hi = Math.imul(ah9, bh6) + lo = (lo + Math.imul(al8, bl7)) | 0 + mid = (mid + Math.imul(al8, bh7)) | 0 + mid = (mid + Math.imul(ah8, bl7)) | 0 + hi = (hi + Math.imul(ah8, bh7)) | 0 + lo = (lo + Math.imul(al7, bl8)) | 0 + mid = (mid + Math.imul(al7, bh8)) | 0 + mid = (mid + Math.imul(ah7, bl8)) | 0 + hi = (hi + Math.imul(ah7, bh8)) | 0 + lo = (lo + Math.imul(al6, bl9)) | 0 + mid = (mid + Math.imul(al6, bh9)) | 0 + mid = (mid + Math.imul(ah6, bl9)) | 0 + hi = (hi + Math.imul(ah6, bh9)) | 0 + var w15 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0 + w15 &= 67108863 + lo = Math.imul(al9, bl7) + mid = Math.imul(al9, bh7) + mid = (mid + Math.imul(ah9, bl7)) | 0 + hi = Math.imul(ah9, bh7) + lo = (lo + Math.imul(al8, bl8)) | 0 + mid = (mid + Math.imul(al8, bh8)) | 0 + mid = (mid + Math.imul(ah8, bl8)) | 0 + hi = (hi + Math.imul(ah8, bh8)) | 0 + lo = (lo + Math.imul(al7, bl9)) | 0 + mid = (mid + Math.imul(al7, bh9)) | 0 + mid = (mid + Math.imul(ah7, bl9)) | 0 + hi = (hi + Math.imul(ah7, bh9)) | 0 + var w16 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0 + w16 &= 67108863 + lo = Math.imul(al9, bl8) + mid = Math.imul(al9, bh8) + mid = (mid + Math.imul(ah9, bl8)) | 0 + hi = Math.imul(ah9, bh8) + lo = (lo + Math.imul(al8, bl9)) | 0 + mid = (mid + Math.imul(al8, bh9)) | 0 + mid = (mid + Math.imul(ah8, bl9)) | 0 + hi = (hi + Math.imul(ah8, bh9)) | 0 + var w17 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0 + w17 &= 67108863 + lo = Math.imul(al9, bl9) + mid = Math.imul(al9, bh9) + mid = (mid + Math.imul(ah9, bl9)) | 0 + hi = Math.imul(ah9, bh9) + var w18 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 + c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0 + w18 &= 67108863 + o[0] = w0 + o[1] = w1 + o[2] = w2 + o[3] = w3 + o[4] = w4 + o[5] = w5 + o[6] = w6 + o[7] = w7 + o[8] = w8 + o[9] = w9 + o[10] = w10 + o[11] = w11 + o[12] = w12 + o[13] = w13 + o[14] = w14 + o[15] = w15 + o[16] = w16 + o[17] = w17 + o[18] = w18 + if (c !== 0) { + o[19] = c + out.length++ + } + return out + } + if (!Math.imul) { + comb10MulTo = smallMulTo + } + function bigMulTo(self, num, out) { + out.negative = num.negative ^ self.negative + out.length = self.length + num.length + var carry = 0 + var hncarry = 0 + for (var k = 0; k < out.length - 1; k++) { + var ncarry = hncarry + hncarry = 0 + var rword = carry & 67108863 + var maxJ = Math.min(k, num.length - 1) + for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { + var i = k - j + var a = self.words[i] | 0 + var b = num.words[j] | 0 + var r = a * b + var lo = r & 67108863 + ncarry = (ncarry + ((r / 67108864) | 0)) | 0 + lo = (lo + rword) | 0 + rword = lo & 67108863 + ncarry = (ncarry + (lo >>> 26)) | 0 + hncarry += ncarry >>> 26 + ncarry &= 67108863 + } + out.words[k] = rword + carry = ncarry + ncarry = hncarry + } + if (carry !== 0) { + out.words[k] = carry + } else { + out.length-- + } + return out.strip() + } + function jumboMulTo(self, num, out) { + var fftm = new FFTM() + return fftm.mulp(self, num, out) + } + BN.prototype.mulTo = function mulTo(num, out) { + var res + var len = this.length + num.length + if (this.length === 10 && num.length === 10) { + res = comb10MulTo(this, num, out) + } else if (len < 63) { + res = smallMulTo(this, num, out) + } else if (len < 1024) { + res = bigMulTo(this, num, out) + } else { + res = jumboMulTo(this, num, out) + } + return res + } + function FFTM(x, y) { + this.x = x + this.y = y + } + FFTM.prototype.makeRBT = function makeRBT(N) { + var t = new Array(N) + var l = BN.prototype._countBits(N) - 1 + for (var i = 0; i < N; i++) { + t[i] = this.revBin(i, l, N) + } + return t + } + FFTM.prototype.revBin = function revBin(x, l, N) { + if (x === 0 || x === N - 1) return x + var rb = 0 + for (var i = 0; i < l; i++) { + rb |= (x & 1) << (l - i - 1) + x >>= 1 + } + return rb + } + FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) { + for (var i = 0; i < N; i++) { + rtws[i] = rws[rbt[i]] + itws[i] = iws[rbt[i]] + } + } + FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N) + for (var s = 1; s < N; s <<= 1) { + var l = s << 1 + var rtwdf = Math.cos((2 * Math.PI) / l) + var itwdf = Math.sin((2 * Math.PI) / l) + for (var p = 0; p < N; p += l) { + var rtwdf_ = rtwdf + var itwdf_ = itwdf + for (var j = 0; j < s; j++) { + var re = rtws[p + j] + var ie = itws[p + j] + var ro = rtws[p + j + s] + var io = itws[p + j + s] + var rx = rtwdf_ * ro - itwdf_ * io + io = rtwdf_ * io + itwdf_ * ro + ro = rx + rtws[p + j] = re + ro + itws[p + j] = ie + io + rtws[p + j + s] = re - ro + itws[p + j + s] = ie - io + if (j !== l) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_ + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_ + rtwdf_ = rx + } + } + } + } + } + FFTM.prototype.guessLen13b = function guessLen13b(n, m) { + var N = Math.max(m, n) | 1 + var odd = N & 1 + var i = 0 + for (N = (N / 2) | 0; N; N = N >>> 1) { + i++ + } + return 1 << (i + 1 + odd) + } + FFTM.prototype.conjugate = function conjugate(rws, iws, N) { + if (N <= 1) return + for (var i = 0; i < N / 2; i++) { + var t = rws[i] + rws[i] = rws[N - i - 1] + rws[N - i - 1] = t + t = iws[i] + iws[i] = -iws[N - i - 1] + iws[N - i - 1] = -t + } + } + FFTM.prototype.normalize13b = function normalize13b(ws, N) { + var carry = 0 + for (var i = 0; i < N / 2; i++) { + var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry + ws[i] = w & 67108863 + if (w < 67108864) { + carry = 0 + } else { + carry = (w / 67108864) | 0 + } + } + return ws + } + FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) { + var carry = 0 + for (var i = 0; i < len; i++) { + carry = carry + (ws[i] | 0) + rws[2 * i] = carry & 8191 + carry = carry >>> 13 + rws[2 * i + 1] = carry & 8191 + carry = carry >>> 13 + } + for (i = 2 * len; i < N; ++i) { + rws[i] = 0 + } + assert(carry === 0) + assert((carry & ~8191) === 0) + } + FFTM.prototype.stub = function stub(N) { + var ph = new Array(N) + for (var i = 0; i < N; i++) { + ph[i] = 0 + } + return ph + } + FFTM.prototype.mulp = function mulp(x, y, out) { + var N = 2 * this.guessLen13b(x.length, y.length) + var rbt = this.makeRBT(N) + var _ = this.stub(N) + var rws = new Array(N) + var rwst = new Array(N) + var iwst = new Array(N) + var nrws = new Array(N) + var nrwst = new Array(N) + var niwst = new Array(N) + var rmws = out.words + rmws.length = N + this.convert13b(x.words, x.length, rws, N) + this.convert13b(y.words, y.length, nrws, N) + this.transform(rws, _, rwst, iwst, N, rbt) + this.transform(nrws, _, nrwst, niwst, N, rbt) + for (var i = 0; i < N; i++) { + var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i] + iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i] + rwst[i] = rx + } + this.conjugate(rwst, iwst, N) + this.transform(rwst, iwst, rmws, _, N, rbt) + this.conjugate(rmws, _, N) + this.normalize13b(rmws, N) + out.negative = x.negative ^ y.negative + out.length = x.length + y.length + return out.strip() + } + BN.prototype.mul = function mul(num) { + var out = new BN(null) + out.words = new Array(this.length + num.length) + return this.mulTo(num, out) + } + BN.prototype.mulf = function mulf(num) { + var out = new BN(null) + out.words = new Array(this.length + num.length) + return jumboMulTo(this, num, out) + } + BN.prototype.imul = function imul(num) { + return this.clone().mulTo(num, this) + } + BN.prototype.imuln = function imuln(num) { + assert(typeof num === 'number') + assert(num < 67108864) + var carry = 0 + for (var i = 0; i < this.length; i++) { + var w = (this.words[i] | 0) * num + var lo = (w & 67108863) + (carry & 67108863) + carry >>= 26 + carry += (w / 67108864) | 0 + carry += lo >>> 26 + this.words[i] = lo & 67108863 + } + if (carry !== 0) { + this.words[i] = carry + this.length++ + } + return this + } + BN.prototype.muln = function muln(num) { + return this.clone().imuln(num) + } + BN.prototype.sqr = function sqr() { + return this.mul(this) + } + BN.prototype.isqr = function isqr() { + return this.imul(this.clone()) + } + BN.prototype.pow = function pow(num) { + var w = toBitArray(num) + if (w.length === 0) return new BN(1) + var res = this + for (var i = 0; i < w.length; i++, res = res.sqr()) { + if (w[i] !== 0) break + } + if (++i < w.length) { + for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { + if (w[i] === 0) continue + res = res.mul(q) + } + } + return res + } + BN.prototype.iushln = function iushln(bits) { + assert(typeof bits === 'number' && bits >= 0) + var r = bits % 26 + var s = (bits - r) / 26 + var carryMask = (67108863 >>> (26 - r)) << (26 - r) + var i + if (r !== 0) { + var carry = 0 + for (i = 0; i < this.length; i++) { + var newCarry = this.words[i] & carryMask + var c = ((this.words[i] | 0) - newCarry) << r + this.words[i] = c | carry + carry = newCarry >>> (26 - r) + } + if (carry) { + this.words[i] = carry + this.length++ + } + } + if (s !== 0) { + for (i = this.length - 1; i >= 0; i--) { + this.words[i + s] = this.words[i] + } + for (i = 0; i < s; i++) { + this.words[i] = 0 + } + this.length += s + } + return this.strip() + } + BN.prototype.ishln = function ishln(bits) { + assert(this.negative === 0) + return this.iushln(bits) + } + BN.prototype.iushrn = function iushrn(bits, hint, extended) { + assert(typeof bits === 'number' && bits >= 0) + var h + if (hint) { + h = (hint - (hint % 26)) / 26 + } else { + h = 0 + } + var r = bits % 26 + var s = Math.min((bits - r) / 26, this.length) + var mask = 67108863 ^ ((67108863 >>> r) << r) + var maskedWords = extended + h -= s + h = Math.max(0, h) + if (maskedWords) { + for (var i = 0; i < s; i++) { + maskedWords.words[i] = this.words[i] + } + maskedWords.length = s + } + if (s === 0) { + } else if (this.length > s) { + this.length -= s + for (i = 0; i < this.length; i++) { + this.words[i] = this.words[i + s] + } + } else { + this.words[0] = 0 + this.length = 1 + } + var carry = 0 + for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) { + var word = this.words[i] | 0 + this.words[i] = (carry << (26 - r)) | (word >>> r) + carry = word & mask + } + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry + } + if (this.length === 0) { + this.words[0] = 0 + this.length = 1 + } + return this.strip() + } + BN.prototype.ishrn = function ishrn(bits, hint, extended) { + assert(this.negative === 0) + return this.iushrn(bits, hint, extended) + } + BN.prototype.shln = function shln(bits) { + return this.clone().ishln(bits) + } + BN.prototype.ushln = function ushln(bits) { + return this.clone().iushln(bits) + } + BN.prototype.shrn = function shrn(bits) { + return this.clone().ishrn(bits) + } + BN.prototype.ushrn = function ushrn(bits) { + return this.clone().iushrn(bits) + } + BN.prototype.testn = function testn(bit) { + assert(typeof bit === 'number' && bit >= 0) + var r = bit % 26 + var s = (bit - r) / 26 + var q = 1 << r + if (this.length <= s) return false + var w = this.words[s] + return !!(w & q) + } + BN.prototype.imaskn = function imaskn(bits) { + assert(typeof bits === 'number' && bits >= 0) + var r = bits % 26 + var s = (bits - r) / 26 + assert(this.negative === 0, 'imaskn works only with positive numbers') + if (this.length <= s) { + return this + } + if (r !== 0) { + s++ + } + this.length = Math.min(s, this.length) + if (r !== 0) { + var mask = 67108863 ^ ((67108863 >>> r) << r) + this.words[this.length - 1] &= mask + } + return this.strip() + } + BN.prototype.maskn = function maskn(bits) { + return this.clone().imaskn(bits) + } + BN.prototype.iaddn = function iaddn(num) { + assert(typeof num === 'number') + assert(num < 67108864) + if (num < 0) return this.isubn(-num) + if (this.negative !== 0) { + if (this.length === 1 && (this.words[0] | 0) < num) { + this.words[0] = num - (this.words[0] | 0) + this.negative = 0 + return this + } + this.negative = 0 + this.isubn(num) + this.negative = 1 + return this + } + return this._iaddn(num) + } + BN.prototype._iaddn = function _iaddn(num) { + this.words[0] += num + for (var i = 0; i < this.length && this.words[i] >= 67108864; i++) { + this.words[i] -= 67108864 + if (i === this.length - 1) { + this.words[i + 1] = 1 + } else { + this.words[i + 1]++ + } + } + this.length = Math.max(this.length, i + 1) + return this + } + BN.prototype.isubn = function isubn(num) { + assert(typeof num === 'number') + assert(num < 67108864) + if (num < 0) return this.iaddn(-num) + if (this.negative !== 0) { + this.negative = 0 + this.iaddn(num) + this.negative = 1 + return this + } + this.words[0] -= num + if (this.length === 1 && this.words[0] < 0) { + this.words[0] = -this.words[0] + this.negative = 1 + } else { + for (var i = 0; i < this.length && this.words[i] < 0; i++) { + this.words[i] += 67108864 + this.words[i + 1] -= 1 + } + } + return this.strip() + } + BN.prototype.addn = function addn(num) { + return this.clone().iaddn(num) + } + BN.prototype.subn = function subn(num) { + return this.clone().isubn(num) + } + BN.prototype.iabs = function iabs() { + this.negative = 0 + return this + } + BN.prototype.abs = function abs() { + return this.clone().iabs() + } + BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { + var len = num.length + shift + var i + this._expand(len) + var w + var carry = 0 + for (i = 0; i < num.length; i++) { + w = (this.words[i + shift] | 0) + carry + var right = (num.words[i] | 0) * mul + w -= right & 67108863 + carry = (w >> 26) - ((right / 67108864) | 0) + this.words[i + shift] = w & 67108863 + } + for (; i < this.length - shift; i++) { + w = (this.words[i + shift] | 0) + carry + carry = w >> 26 + this.words[i + shift] = w & 67108863 + } + if (carry === 0) return this.strip() + assert(carry === -1) + carry = 0 + for (i = 0; i < this.length; i++) { + w = -(this.words[i] | 0) + carry + carry = w >> 26 + this.words[i] = w & 67108863 + } + this.negative = 1 + return this.strip() + } + BN.prototype._wordDiv = function _wordDiv(num, mode) { + var shift = this.length - num.length + var a = this.clone() + var b = num + var bhi = b.words[b.length - 1] | 0 + var bhiBits = this._countBits(bhi) + shift = 26 - bhiBits + if (shift !== 0) { + b = b.ushln(shift) + a.iushln(shift) + bhi = b.words[b.length - 1] | 0 + } + var m = a.length - b.length + var q + if (mode !== 'mod') { + q = new BN(null) + q.length = m + 1 + q.words = new Array(q.length) + for (var i = 0; i < q.length; i++) { + q.words[i] = 0 + } + } + var diff = a.clone()._ishlnsubmul(b, 1, m) + if (diff.negative === 0) { + a = diff + if (q) { + q.words[m] = 1 + } + } + for (var j = m - 1; j >= 0; j--) { + var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0) + qj = Math.min((qj / bhi) | 0, 67108863) + a._ishlnsubmul(b, qj, j) + while (a.negative !== 0) { + qj-- + a.negative = 0 + a._ishlnsubmul(b, 1, j) + if (!a.isZero()) { + a.negative ^= 1 + } + } + if (q) { + q.words[j] = qj + } + } + if (q) { + q.strip() + } + a.strip() + if (mode !== 'div' && shift !== 0) { + a.iushrn(shift) + } + return { div: q || null, mod: a } + } + BN.prototype.divmod = function divmod(num, mode, positive) { + assert(!num.isZero()) + if (this.isZero()) { + return { div: new BN(0), mod: new BN(0) } + } + var div, mod, res + if (this.negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode) + if (mode !== 'mod') { + div = res.div.neg() + } + if (mode !== 'div') { + mod = res.mod.neg() + if (positive && mod.negative !== 0) { + mod.iadd(num) + } + } + return { div: div, mod: mod } + } + if (this.negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode) + if (mode !== 'mod') { + div = res.div.neg() + } + return { div: div, mod: res.mod } + } + if ((this.negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode) + if (mode !== 'div') { + mod = res.mod.neg() + if (positive && mod.negative !== 0) { + mod.isub(num) + } + } + return { div: res.div, mod: mod } + } + if (num.length > this.length || this.cmp(num) < 0) { + return { div: new BN(0), mod: this } + } + if (num.length === 1) { + if (mode === 'div') { + return { div: this.divn(num.words[0]), mod: null } + } + if (mode === 'mod') { + return { div: null, mod: new BN(this.modn(num.words[0])) } + } + return { div: this.divn(num.words[0]), mod: new BN(this.modn(num.words[0])) } + } + return this._wordDiv(num, mode) + } + BN.prototype.div = function div(num) { + return this.divmod(num, 'div', false).div + } + BN.prototype.mod = function mod(num) { + return this.divmod(num, 'mod', false).mod + } + BN.prototype.umod = function umod(num) { + return this.divmod(num, 'mod', true).mod + } + BN.prototype.divRound = function divRound(num) { + var dm = this.divmod(num) + if (dm.mod.isZero()) return dm.div + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod + var half = num.ushrn(1) + var r2 = num.andln(1) + var cmp = mod.cmp(half) + if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1) + } + BN.prototype.modn = function modn(num) { + assert(num <= 67108863) + var p = (1 << 26) % num + var acc = 0 + for (var i = this.length - 1; i >= 0; i--) { + acc = (p * acc + (this.words[i] | 0)) % num + } + return acc + } + BN.prototype.idivn = function idivn(num) { + assert(num <= 67108863) + var carry = 0 + for (var i = this.length - 1; i >= 0; i--) { + var w = (this.words[i] | 0) + carry * 67108864 + this.words[i] = (w / num) | 0 + carry = w % num + } + return this.strip() + } + BN.prototype.divn = function divn(num) { + return this.clone().idivn(num) + } + BN.prototype.egcd = function egcd(p) { + assert(p.negative === 0) + assert(!p.isZero()) + var x = this + var y = p.clone() + if (x.negative !== 0) { + x = x.umod(p) + } else { + x = x.clone() + } + var A = new BN(1) + var B = new BN(0) + var C = new BN(0) + var D = new BN(1) + var g = 0 + while (x.isEven() && y.isEven()) { + x.iushrn(1) + y.iushrn(1) + ++g + } + var yp = y.clone() + var xp = x.clone() + while (!x.isZero()) { + for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1); + if (i > 0) { + x.iushrn(i) + while (i-- > 0) { + if (A.isOdd() || B.isOdd()) { + A.iadd(yp) + B.isub(xp) + } + A.iushrn(1) + B.iushrn(1) + } + } + for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); + if (j > 0) { + y.iushrn(j) + while (j-- > 0) { + if (C.isOdd() || D.isOdd()) { + C.iadd(yp) + D.isub(xp) + } + C.iushrn(1) + D.iushrn(1) + } + } + if (x.cmp(y) >= 0) { + x.isub(y) + A.isub(C) + B.isub(D) + } else { + y.isub(x) + C.isub(A) + D.isub(B) + } + } + return { a: C, b: D, gcd: y.iushln(g) } + } + BN.prototype._invmp = function _invmp(p) { + assert(p.negative === 0) + assert(!p.isZero()) + var a = this + var b = p.clone() + if (a.negative !== 0) { + a = a.umod(p) + } else { + a = a.clone() + } + var x1 = new BN(1) + var x2 = new BN(0) + var delta = b.clone() + while (a.cmpn(1) > 0 && b.cmpn(1) > 0) { + for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1); + if (i > 0) { + a.iushrn(i) + while (i-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta) + } + x1.iushrn(1) + } + } + for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); + if (j > 0) { + b.iushrn(j) + while (j-- > 0) { + if (x2.isOdd()) { + x2.iadd(delta) + } + x2.iushrn(1) + } + } + if (a.cmp(b) >= 0) { + a.isub(b) + x1.isub(x2) + } else { + b.isub(a) + x2.isub(x1) + } + } + var res + if (a.cmpn(1) === 0) { + res = x1 + } else { + res = x2 + } + if (res.cmpn(0) < 0) { + res.iadd(p) + } + return res + } + BN.prototype.gcd = function gcd(num) { + if (this.isZero()) return num.abs() + if (num.isZero()) return this.abs() + var a = this.clone() + var b = num.clone() + a.negative = 0 + b.negative = 0 + for (var shift = 0; a.isEven() && b.isEven(); shift++) { + a.iushrn(1) + b.iushrn(1) + } + do { + while (a.isEven()) { + a.iushrn(1) + } + while (b.isEven()) { + b.iushrn(1) + } + var r = a.cmp(b) + if (r < 0) { + var t = a + a = b + b = t + } else if (r === 0 || b.cmpn(1) === 0) { + break + } + a.isub(b) + } while (true) + return b.iushln(shift) + } + BN.prototype.invm = function invm(num) { + return this.egcd(num).a.umod(num) + } + BN.prototype.isEven = function isEven() { + return (this.words[0] & 1) === 0 + } + BN.prototype.isOdd = function isOdd() { + return (this.words[0] & 1) === 1 + } + BN.prototype.andln = function andln(num) { + return this.words[0] & num + } + BN.prototype.bincn = function bincn(bit) { + assert(typeof bit === 'number') + var r = bit % 26 + var s = (bit - r) / 26 + var q = 1 << r + if (this.length <= s) { + this._expand(s + 1) + this.words[s] |= q + return this + } + var carry = q + for (var i = s; carry !== 0 && i < this.length; i++) { + var w = this.words[i] | 0 + w += carry + carry = w >>> 26 + w &= 67108863 + this.words[i] = w + } + if (carry !== 0) { + this.words[i] = carry + this.length++ + } + return this + } + BN.prototype.isZero = function isZero() { + return this.length === 1 && this.words[0] === 0 + } + BN.prototype.cmpn = function cmpn(num) { + var negative = num < 0 + if (this.negative !== 0 && !negative) return -1 + if (this.negative === 0 && negative) return 1 + this.strip() + var res + if (this.length > 1) { + res = 1 + } else { + if (negative) { + num = -num + } + assert(num <= 67108863, 'Number is too big') + var w = this.words[0] | 0 + res = w === num ? 0 : w < num ? -1 : 1 + } + if (this.negative !== 0) return -res | 0 + return res + } + BN.prototype.cmp = function cmp(num) { + if (this.negative !== 0 && num.negative === 0) return -1 + if (this.negative === 0 && num.negative !== 0) return 1 + var res = this.ucmp(num) + if (this.negative !== 0) return -res | 0 + return res + } + BN.prototype.ucmp = function ucmp(num) { + if (this.length > num.length) return 1 + if (this.length < num.length) return -1 + var res = 0 + for (var i = this.length - 1; i >= 0; i--) { + var a = this.words[i] | 0 + var b = num.words[i] | 0 + if (a === b) continue + if (a < b) { + res = -1 + } else if (a > b) { + res = 1 + } + break + } + return res + } + BN.prototype.gtn = function gtn(num) { + return this.cmpn(num) === 1 + } + BN.prototype.gt = function gt(num) { + return this.cmp(num) === 1 + } + BN.prototype.gten = function gten(num) { + return this.cmpn(num) >= 0 + } + BN.prototype.gte = function gte(num) { + return this.cmp(num) >= 0 + } + BN.prototype.ltn = function ltn(num) { + return this.cmpn(num) === -1 + } + BN.prototype.lt = function lt(num) { + return this.cmp(num) === -1 + } + BN.prototype.lten = function lten(num) { + return this.cmpn(num) <= 0 + } + BN.prototype.lte = function lte(num) { + return this.cmp(num) <= 0 + } + BN.prototype.eqn = function eqn(num) { + return this.cmpn(num) === 0 + } + BN.prototype.eq = function eq(num) { + return this.cmp(num) === 0 + } + BN.red = function red(num) { + return new Red(num) + } + BN.prototype.toRed = function toRed(ctx) { + assert(!this.red, 'Already a number in reduction context') + assert(this.negative === 0, 'red works only with positives') + return ctx.convertTo(this)._forceRed(ctx) + } + BN.prototype.fromRed = function fromRed() { + assert(this.red, 'fromRed works only with numbers in reduction context') + return this.red.convertFrom(this) + } + BN.prototype._forceRed = function _forceRed(ctx) { + this.red = ctx + return this + } + BN.prototype.forceRed = function forceRed(ctx) { + assert(!this.red, 'Already a number in reduction context') + return this._forceRed(ctx) + } + BN.prototype.redAdd = function redAdd(num) { + assert(this.red, 'redAdd works only with red numbers') + return this.red.add(this, num) + } + BN.prototype.redIAdd = function redIAdd(num) { + assert(this.red, 'redIAdd works only with red numbers') + return this.red.iadd(this, num) + } + BN.prototype.redSub = function redSub(num) { + assert(this.red, 'redSub works only with red numbers') + return this.red.sub(this, num) + } + BN.prototype.redISub = function redISub(num) { + assert(this.red, 'redISub works only with red numbers') + return this.red.isub(this, num) + } + BN.prototype.redShl = function redShl(num) { + assert(this.red, 'redShl works only with red numbers') + return this.red.shl(this, num) + } + BN.prototype.redMul = function redMul(num) { + assert(this.red, 'redMul works only with red numbers') + this.red._verify2(this, num) + return this.red.mul(this, num) + } + BN.prototype.redIMul = function redIMul(num) { + assert(this.red, 'redMul works only with red numbers') + this.red._verify2(this, num) + return this.red.imul(this, num) + } + BN.prototype.redSqr = function redSqr() { + assert(this.red, 'redSqr works only with red numbers') + this.red._verify1(this) + return this.red.sqr(this) + } + BN.prototype.redISqr = function redISqr() { + assert(this.red, 'redISqr works only with red numbers') + this.red._verify1(this) + return this.red.isqr(this) + } + BN.prototype.redSqrt = function redSqrt() { + assert(this.red, 'redSqrt works only with red numbers') + this.red._verify1(this) + return this.red.sqrt(this) + } + BN.prototype.redInvm = function redInvm() { + assert(this.red, 'redInvm works only with red numbers') + this.red._verify1(this) + return this.red.invm(this) + } + BN.prototype.redNeg = function redNeg() { + assert(this.red, 'redNeg works only with red numbers') + this.red._verify1(this) + return this.red.neg(this) + } + BN.prototype.redPow = function redPow(num) { + assert(this.red && !num.red, 'redPow(normalNum)') + this.red._verify1(this) + return this.red.pow(this, num) + } + var primes = { k256: null, p224: null, p192: null, p25519: null } + function MPrime(name, p) { + this.name = name + this.p = new BN(p, 16) + this.n = this.p.bitLength() + this.k = new BN(1).iushln(this.n).isub(this.p) + this.tmp = this._tmp() + } + MPrime.prototype._tmp = function _tmp() { + var tmp = new BN(null) + tmp.words = new Array(Math.ceil(this.n / 13)) + return tmp + } + MPrime.prototype.ireduce = function ireduce(num) { + var r = num + var rlen + do { + this.split(r, this.tmp) + r = this.imulK(r) + r = r.iadd(this.tmp) + rlen = r.bitLength() + } while (rlen > this.n) + var cmp = rlen < this.n ? -1 : r.ucmp(this.p) + if (cmp === 0) { + r.words[0] = 0 + r.length = 1 + } else if (cmp > 0) { + r.isub(this.p) + } else { + if (r.strip !== undefined) { + r.strip() + } else { + r._strip() + } + } + return r + } + MPrime.prototype.split = function split(input, out) { + input.iushrn(this.n, 0, out) + } + MPrime.prototype.imulK = function imulK(num) { + return num.imul(this.k) + } + function K256() { + MPrime.call( + this, + 'k256', + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f' + ) + } + inherits(K256, MPrime) + K256.prototype.split = function split(input, output) { + var mask = 4194303 + var outLen = Math.min(input.length, 9) + for (var i = 0; i < outLen; i++) { + output.words[i] = input.words[i] + } + output.length = outLen + if (input.length <= 9) { + input.words[0] = 0 + input.length = 1 + return + } + var prev = input.words[9] + output.words[output.length++] = prev & mask + for (i = 10; i < input.length; i++) { + var next = input.words[i] | 0 + input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22) + prev = next + } + prev >>>= 22 + input.words[i - 10] = prev + if (prev === 0 && input.length > 10) { + input.length -= 10 + } else { + input.length -= 9 + } + } + K256.prototype.imulK = function imulK(num) { + num.words[num.length] = 0 + num.words[num.length + 1] = 0 + num.length += 2 + var lo = 0 + for (var i = 0; i < num.length; i++) { + var w = num.words[i] | 0 + lo += w * 977 + num.words[i] = lo & 67108863 + lo = w * 64 + ((lo / 67108864) | 0) + } + if (num.words[num.length - 1] === 0) { + num.length-- + if (num.words[num.length - 1] === 0) { + num.length-- + } + } + return num + } + function P224() { + MPrime.call( + this, + 'p224', + 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001' + ) + } + inherits(P224, MPrime) + function P192() { + MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff') + } + inherits(P192, MPrime) + function P25519() { + MPrime.call( + this, + '25519', + '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed' + ) + } + inherits(P25519, MPrime) + P25519.prototype.imulK = function imulK(num) { + var carry = 0 + for (var i = 0; i < num.length; i++) { + var hi = (num.words[i] | 0) * 19 + carry + var lo = hi & 67108863 + hi >>>= 26 + num.words[i] = lo + carry = hi + } + if (carry !== 0) { + num.words[num.length++] = carry + } + return num + } + BN._prime = function prime(name) { + if (primes[name]) return primes[name] + var prime + if (name === 'k256') { + prime = new K256() + } else if (name === 'p224') { + prime = new P224() + } else if (name === 'p192') { + prime = new P192() + } else if (name === 'p25519') { + prime = new P25519() + } else { + throw new Error('Unknown prime ' + name) + } + primes[name] = prime + return prime + } + function Red(m) { + if (typeof m === 'string') { + var prime = BN._prime(m) + this.m = prime.p + this.prime = prime + } else { + assert(m.gtn(1), 'modulus must be greater than 1') + this.m = m + this.prime = null + } + } + Red.prototype._verify1 = function _verify1(a) { + assert(a.negative === 0, 'red works only with positives') + assert(a.red, 'red works only with red numbers') + } + Red.prototype._verify2 = function _verify2(a, b) { + assert((a.negative | b.negative) === 0, 'red works only with positives') + assert(a.red && a.red === b.red, 'red works only with red numbers') + } + Red.prototype.imod = function imod(a) { + if (this.prime) return this.prime.ireduce(a)._forceRed(this) + return a.umod(this.m)._forceRed(this) + } + Red.prototype.neg = function neg(a) { + if (a.isZero()) { + return a.clone() + } + return this.m.sub(a)._forceRed(this) + } + Red.prototype.add = function add(a, b) { + this._verify2(a, b) + var res = a.add(b) + if (res.cmp(this.m) >= 0) { + res.isub(this.m) + } + return res._forceRed(this) + } + Red.prototype.iadd = function iadd(a, b) { + this._verify2(a, b) + var res = a.iadd(b) + if (res.cmp(this.m) >= 0) { + res.isub(this.m) + } + return res + } + Red.prototype.sub = function sub(a, b) { + this._verify2(a, b) + var res = a.sub(b) + if (res.cmpn(0) < 0) { + res.iadd(this.m) + } + return res._forceRed(this) + } + Red.prototype.isub = function isub(a, b) { + this._verify2(a, b) + var res = a.isub(b) + if (res.cmpn(0) < 0) { + res.iadd(this.m) + } + return res + } + Red.prototype.shl = function shl(a, num) { + this._verify1(a) + return this.imod(a.ushln(num)) + } + Red.prototype.imul = function imul(a, b) { + this._verify2(a, b) + return this.imod(a.imul(b)) + } + Red.prototype.mul = function mul(a, b) { + this._verify2(a, b) + return this.imod(a.mul(b)) + } + Red.prototype.isqr = function isqr(a) { + return this.imul(a, a.clone()) + } + Red.prototype.sqr = function sqr(a) { + return this.mul(a, a) + } + Red.prototype.sqrt = function sqrt(a) { + if (a.isZero()) return a.clone() + var mod3 = this.m.andln(3) + assert(mod3 % 2 === 1) + if (mod3 === 3) { + var pow = this.m.add(new BN(1)).iushrn(2) + return this.pow(a, pow) + } + var q = this.m.subn(1) + var s = 0 + while (!q.isZero() && q.andln(1) === 0) { + s++ + q.iushrn(1) + } + assert(!q.isZero()) + var one = new BN(1).toRed(this) + var nOne = one.redNeg() + var lpow = this.m.subn(1).iushrn(1) + var z = this.m.bitLength() + z = new BN(2 * z * z).toRed(this) + while (this.pow(z, lpow).cmp(nOne) !== 0) { + z.redIAdd(nOne) + } + var c = this.pow(z, q) + var r = this.pow(a, q.addn(1).iushrn(1)) + var t = this.pow(a, q) + var m = s + while (t.cmp(one) !== 0) { + var tmp = t + for (var i = 0; tmp.cmp(one) !== 0; i++) { + tmp = tmp.redSqr() + } + assert(i < m) + var b = this.pow(c, new BN(1).iushln(m - i - 1)) + r = r.redMul(b) + c = b.redSqr() + t = t.redMul(c) + m = i + } + return r + } + Red.prototype.invm = function invm(a) { + var inv = a._invmp(this.m) + if (inv.negative !== 0) { + inv.negative = 0 + return this.imod(inv).redNeg() + } else { + return this.imod(inv) + } + } + Red.prototype.pow = function pow(a, num) { + if (num.isZero()) return new BN(1).toRed(this) + if (num.cmpn(1) === 0) return a.clone() + var windowSize = 4 + var wnd = new Array(1 << windowSize) + wnd[0] = new BN(1).toRed(this) + wnd[1] = a + for (var i = 2; i < wnd.length; i++) { + wnd[i] = this.mul(wnd[i - 1], a) + } + var res = wnd[0] + var current = 0 + var currentLen = 0 + var start = num.bitLength() % 26 + if (start === 0) { + start = 26 + } + for (i = num.length - 1; i >= 0; i--) { + var word = num.words[i] + for (var j = start - 1; j >= 0; j--) { + var bit = (word >> j) & 1 + if (res !== wnd[0]) { + res = this.sqr(res) + } + if (bit === 0 && current === 0) { + currentLen = 0 + continue + } + current <<= 1 + current |= bit + currentLen++ + if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue + res = this.mul(res, wnd[current]) + currentLen = 0 + current = 0 + } + start = 26 + } + return res + } + Red.prototype.convertTo = function convertTo(num) { + var r = num.umod(this.m) + return r === num ? r.clone() : r + } + Red.prototype.convertFrom = function convertFrom(num) { + var res = num.clone() + res.red = null + return res + } + BN.mont = function mont(num) { + return new Mont(num) + } + function Mont(m) { + Red.call(this, m) + this.shift = this.m.bitLength() + if (this.shift % 26 !== 0) { + this.shift += 26 - (this.shift % 26) + } + this.r = new BN(1).iushln(this.shift) + this.r2 = this.imod(this.r.sqr()) + this.rinv = this.r._invmp(this.m) + this.minv = this.rinv.mul(this.r).isubn(1).div(this.m) + this.minv = this.minv.umod(this.r) + this.minv = this.r.sub(this.minv) + } + inherits(Mont, Red) + Mont.prototype.convertTo = function convertTo(num) { + return this.imod(num.ushln(this.shift)) + } + Mont.prototype.convertFrom = function convertFrom(num) { + var r = this.imod(num.mul(this.rinv)) + r.red = null + return r + } + Mont.prototype.imul = function imul(a, b) { + if (a.isZero() || b.isZero()) { + a.words[0] = 0 + a.length = 1 + return a + } + var t = a.imul(b) + var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m) + var u = t.isub(c).iushrn(this.shift) + var res = u + if (u.cmp(this.m) >= 0) { + res = u.isub(this.m) + } else if (u.cmpn(0) < 0) { + res = u.iadd(this.m) + } + return res._forceRed(this) + } + Mont.prototype.mul = function mul(a, b) { + if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this) + var t = a.mul(b) + var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m) + var u = t.isub(c).iushrn(this.shift) + var res = u + if (u.cmp(this.m) >= 0) { + res = u.isub(this.m) + } else if (u.cmpn(0) < 0) { + res = u.iadd(this.m) + } + return res._forceRed(this) + } + Mont.prototype.invm = function invm(a) { + var res = this.imod(a._invmp(this.m).mul(this.r2)) + return res._forceRed(this) + } + })(typeof module === 'undefined' || module, this) + }, + { buffer: 49 } + ], + 133: [ + function (require, module, exports) { + module.exports = { + name: 'elliptic', + version: '6.5.3', + description: 'EC cryptography', + main: 'lib/elliptic.js', + files: ['lib'], + scripts: { + jscs: 'jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js', + jshint: 'jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js', + lint: 'npm run jscs && npm run jshint', + unit: 'istanbul test _mocha --reporter=spec test/index.js', + test: 'npm run lint && npm run unit', + version: 'grunt dist && git add dist/' + }, + repository: { type: 'git', url: 'git@github.com:indutny/elliptic' }, + keywords: ['EC', 'Elliptic', 'curve', 'Cryptography'], + author: 'Fedor Indutny ', + license: 'MIT', + bugs: { url: 'https://github.com/indutny/elliptic/issues' }, + homepage: 'https://github.com/indutny/elliptic', + devDependencies: { + brfs: '^1.4.3', + coveralls: '^3.0.8', + grunt: '^1.0.4', + 'grunt-browserify': '^5.0.0', + 'grunt-cli': '^1.2.0', + 'grunt-contrib-connect': '^1.0.0', + 'grunt-contrib-copy': '^1.0.0', + 'grunt-contrib-uglify': '^1.0.1', + 'grunt-mocha-istanbul': '^3.0.1', + 'grunt-saucelabs': '^9.0.1', + istanbul: '^0.4.2', + jscs: '^3.0.7', + jshint: '^2.10.3', + mocha: '^6.2.2' + }, + dependencies: { + 'bn.js': '^4.4.0', + brorand: '^1.0.1', + 'hash.js': '^1.0.0', + 'hmac-drbg': '^1.0.0', + inherits: '^2.0.1', + 'minimalistic-assert': '^1.0.0', + 'minimalistic-crypto-utils': '^1.0.0' + } + } + }, + {} + ], + 134: [ + function (require, module, exports) { + 'use strict' + var R = typeof Reflect === 'object' ? Reflect : null + var ReflectApply = + R && typeof R.apply === 'function' + ? R.apply + : function ReflectApply(target, receiver, args) { + return Function.prototype.apply.call(target, receiver, args) + } + var ReflectOwnKeys + if (R && typeof R.ownKeys === 'function') { + ReflectOwnKeys = R.ownKeys + } else if (Object.getOwnPropertySymbols) { + ReflectOwnKeys = function ReflectOwnKeys(target) { + return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target)) + } + } else { + ReflectOwnKeys = function ReflectOwnKeys(target) { + return Object.getOwnPropertyNames(target) + } + } + function ProcessEmitWarning(warning) { + if (console && console.warn) console.warn(warning) + } + var NumberIsNaN = + Number.isNaN || + function NumberIsNaN(value) { + return value !== value + } + function EventEmitter() { + EventEmitter.init.call(this) + } + module.exports = EventEmitter + module.exports.once = once + EventEmitter.EventEmitter = EventEmitter + EventEmitter.prototype._events = undefined + EventEmitter.prototype._eventsCount = 0 + EventEmitter.prototype._maxListeners = undefined + var defaultMaxListeners = 10 + function checkListener(listener) { + if (typeof listener !== 'function') { + throw new TypeError( + 'The "listener" argument must be of type Function. Received type ' + typeof listener + ) + } + } + Object.defineProperty(EventEmitter, 'defaultMaxListeners', { + enumerable: true, + get: function () { + return defaultMaxListeners + }, + set: function (arg) { + if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) { + throw new RangeError( + 'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + + arg + + '.' + ) + } + defaultMaxListeners = arg + } + }) + EventEmitter.init = function () { + if ( + this._events === undefined || + this._events === Object.getPrototypeOf(this)._events + ) { + this._events = Object.create(null) + this._eventsCount = 0 + } + this._maxListeners = this._maxListeners || undefined + } + EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) { + if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) { + throw new RangeError( + 'The value of "n" is out of range. It must be a non-negative number. Received ' + + n + + '.' + ) + } + this._maxListeners = n + return this + } + function _getMaxListeners(that) { + if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners + return that._maxListeners + } + EventEmitter.prototype.getMaxListeners = function getMaxListeners() { + return _getMaxListeners(this) + } + EventEmitter.prototype.emit = function emit(type) { + var args = [] + for (var i = 1; i < arguments.length; i++) args.push(arguments[i]) + var doError = type === 'error' + var events = this._events + if (events !== undefined) doError = doError && events.error === undefined + else if (!doError) return false + if (doError) { + var er + if (args.length > 0) er = args[0] + if (er instanceof Error) { + throw er + } + var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : '')) + err.context = er + throw err + } + var handler = events[type] + if (handler === undefined) return false + if (typeof handler === 'function') { + ReflectApply(handler, this, args) + } else { + var len = handler.length + var listeners = arrayClone(handler, len) + for (var i = 0; i < len; ++i) ReflectApply(listeners[i], this, args) + } + return true + } + function _addListener(target, type, listener, prepend) { + var m + var events + var existing + checkListener(listener) + events = target._events + if (events === undefined) { + events = target._events = Object.create(null) + target._eventsCount = 0 + } else { + if (events.newListener !== undefined) { + target.emit('newListener', type, listener.listener ? listener.listener : listener) + events = target._events + } + existing = events[type] + } + if (existing === undefined) { + existing = events[type] = listener + ++target._eventsCount + } else { + if (typeof existing === 'function') { + existing = events[type] = prepend ? [listener, existing] : [existing, listener] + } else if (prepend) { + existing.unshift(listener) + } else { + existing.push(listener) + } + m = _getMaxListeners(target) + if (m > 0 && existing.length > m && !existing.warned) { + existing.warned = true + var w = new Error( + 'Possible EventEmitter memory leak detected. ' + + existing.length + + ' ' + + String(type) + + ' listeners ' + + 'added. Use emitter.setMaxListeners() to ' + + 'increase limit' + ) + w.name = 'MaxListenersExceededWarning' + w.emitter = target + w.type = type + w.count = existing.length + ProcessEmitWarning(w) + } + } + return target + } + EventEmitter.prototype.addListener = function addListener(type, listener) { + return _addListener(this, type, listener, false) + } + EventEmitter.prototype.on = EventEmitter.prototype.addListener + EventEmitter.prototype.prependListener = function prependListener(type, listener) { + return _addListener(this, type, listener, true) + } + function onceWrapper() { + if (!this.fired) { + this.target.removeListener(this.type, this.wrapFn) + this.fired = true + if (arguments.length === 0) return this.listener.call(this.target) + return this.listener.apply(this.target, arguments) + } + } + function _onceWrap(target, type, listener) { + var state = { + fired: false, + wrapFn: undefined, + target: target, + type: type, + listener: listener + } + var wrapped = onceWrapper.bind(state) + wrapped.listener = listener + state.wrapFn = wrapped + return wrapped + } + EventEmitter.prototype.once = function once(type, listener) { + checkListener(listener) + this.on(type, _onceWrap(this, type, listener)) + return this + } + EventEmitter.prototype.prependOnceListener = function prependOnceListener( + type, + listener + ) { + checkListener(listener) + this.prependListener(type, _onceWrap(this, type, listener)) + return this + } + EventEmitter.prototype.removeListener = function removeListener(type, listener) { + var list, events, position, i, originalListener + checkListener(listener) + events = this._events + if (events === undefined) return this + list = events[type] + if (list === undefined) return this + if (list === listener || list.listener === listener) { + if (--this._eventsCount === 0) this._events = Object.create(null) + else { + delete events[type] + if (events.removeListener) + this.emit('removeListener', type, list.listener || listener) + } + } else if (typeof list !== 'function') { + position = -1 + for (i = list.length - 1; i >= 0; i--) { + if (list[i] === listener || list[i].listener === listener) { + originalListener = list[i].listener + position = i + break + } + } + if (position < 0) return this + if (position === 0) list.shift() + else { + spliceOne(list, position) + } + if (list.length === 1) events[type] = list[0] + if (events.removeListener !== undefined) + this.emit('removeListener', type, originalListener || listener) + } + return this + } + EventEmitter.prototype.off = EventEmitter.prototype.removeListener + EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) { + var listeners, events, i + events = this._events + if (events === undefined) return this + if (events.removeListener === undefined) { + if (arguments.length === 0) { + this._events = Object.create(null) + this._eventsCount = 0 + } else if (events[type] !== undefined) { + if (--this._eventsCount === 0) this._events = Object.create(null) + else delete events[type] + } + return this + } + if (arguments.length === 0) { + var keys = Object.keys(events) + var key + for (i = 0; i < keys.length; ++i) { + key = keys[i] + if (key === 'removeListener') continue + this.removeAllListeners(key) + } + this.removeAllListeners('removeListener') + this._events = Object.create(null) + this._eventsCount = 0 + return this + } + listeners = events[type] + if (typeof listeners === 'function') { + this.removeListener(type, listeners) + } else if (listeners !== undefined) { + for (i = listeners.length - 1; i >= 0; i--) { + this.removeListener(type, listeners[i]) + } + } + return this + } + function _listeners(target, type, unwrap) { + var events = target._events + if (events === undefined) return [] + var evlistener = events[type] + if (evlistener === undefined) return [] + if (typeof evlistener === 'function') + return unwrap ? [evlistener.listener || evlistener] : [evlistener] + return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length) + } + EventEmitter.prototype.listeners = function listeners(type) { + return _listeners(this, type, true) + } + EventEmitter.prototype.rawListeners = function rawListeners(type) { + return _listeners(this, type, false) + } + EventEmitter.listenerCount = function (emitter, type) { + if (typeof emitter.listenerCount === 'function') { + return emitter.listenerCount(type) + } else { + return listenerCount.call(emitter, type) + } + } + EventEmitter.prototype.listenerCount = listenerCount + function listenerCount(type) { + var events = this._events + if (events !== undefined) { + var evlistener = events[type] + if (typeof evlistener === 'function') { + return 1 + } else if (evlistener !== undefined) { + return evlistener.length + } + } + return 0 + } + EventEmitter.prototype.eventNames = function eventNames() { + return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [] + } + function arrayClone(arr, n) { + var copy = new Array(n) + for (var i = 0; i < n; ++i) copy[i] = arr[i] + return copy + } + function spliceOne(list, index) { + for (; index + 1 < list.length; index++) list[index] = list[index + 1] + list.pop() + } + function unwrapListeners(arr) { + var ret = new Array(arr.length) + for (var i = 0; i < ret.length; ++i) { + ret[i] = arr[i].listener || arr[i] + } + return ret + } + function once(emitter, name) { + return new Promise(function (resolve, reject) { + function errorListener(err) { + emitter.removeListener(name, resolver) + reject(err) + } + function resolver() { + if (typeof emitter.removeListener === 'function') { + emitter.removeListener('error', errorListener) + } + resolve([].slice.call(arguments)) + } + eventTargetAgnosticAddListener(emitter, name, resolver, { once: true }) + if (name !== 'error') { + addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true }) + } + }) + } + function addErrorHandlerIfEventEmitter(emitter, handler, flags) { + if (typeof emitter.on === 'function') { + eventTargetAgnosticAddListener(emitter, 'error', handler, flags) + } + } + function eventTargetAgnosticAddListener(emitter, name, listener, flags) { + if (typeof emitter.on === 'function') { + if (flags.once) { + emitter.once(name, listener) + } else { + emitter.on(name, listener) + } + } else if (typeof emitter.addEventListener === 'function') { + emitter.addEventListener(name, function wrapListener(arg) { + if (flags.once) { + emitter.removeEventListener(name, wrapListener) + } + listener(arg) + }) + } else { + throw new TypeError( + 'The "emitter" argument must be of type EventEmitter. Received type ' + + typeof emitter + ) + } + } + }, + {} + ], + 135: [ + function (require, module, exports) { + var Buffer = require('safe-buffer').Buffer + var MD5 = require('md5.js') + function EVP_BytesToKey(password, salt, keyBits, ivLen) { + if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary') + if (salt) { + if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary') + if (salt.length !== 8) + throw new RangeError('salt should be Buffer with 8 byte length') + } + var keyLen = keyBits / 8 + var key = Buffer.alloc(keyLen) + var iv = Buffer.alloc(ivLen || 0) + var tmp = Buffer.alloc(0) + while (keyLen > 0 || ivLen > 0) { + var hash = new MD5() + hash.update(tmp) + hash.update(password) + if (salt) hash.update(salt) + tmp = hash.digest() + var used = 0 + if (keyLen > 0) { + var keyStart = key.length - keyLen + used = Math.min(keyLen, tmp.length) + tmp.copy(key, keyStart, 0, used) + keyLen -= used + } + if (used < tmp.length && ivLen > 0) { + var ivStart = iv.length - ivLen + var length = Math.min(ivLen, tmp.length - used) + tmp.copy(iv, ivStart, used, used + length) + ivLen -= length + } + } + tmp.fill(0) + return { key: key, iv: iv } + } + module.exports = EVP_BytesToKey + }, + { 'md5.js': 155, 'safe-buffer': 183 } + ], + 136: [ + function (require, module, exports) { + 'use strict' + var Buffer = require('safe-buffer').Buffer + var Transform = require('stream').Transform + var inherits = require('inherits') + function throwIfNotStringOrBuffer(val, prefix) { + if (!Buffer.isBuffer(val) && typeof val !== 'string') { + throw new TypeError(prefix + ' must be a string or a buffer') + } + } + function HashBase(blockSize) { + Transform.call(this) + this._block = Buffer.allocUnsafe(blockSize) + this._blockSize = blockSize + this._blockOffset = 0 + this._length = [0, 0, 0, 0] + this._finalized = false + } + inherits(HashBase, Transform) + HashBase.prototype._transform = function (chunk, encoding, callback) { + var error = null + try { + this.update(chunk, encoding) + } catch (err) { + error = err + } + callback(error) + } + HashBase.prototype._flush = function (callback) { + var error = null + try { + this.push(this.digest()) + } catch (err) { + error = err + } + callback(error) + } + HashBase.prototype.update = function (data, encoding) { + throwIfNotStringOrBuffer(data, 'Data') + if (this._finalized) throw new Error('Digest already called') + if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding) + var block = this._block + var offset = 0 + while (this._blockOffset + data.length - offset >= this._blockSize) { + for (var i = this._blockOffset; i < this._blockSize; ) block[i++] = data[offset++] + this._update() + this._blockOffset = 0 + } + while (offset < data.length) block[this._blockOffset++] = data[offset++] + for (var j = 0, carry = data.length * 8; carry > 0; ++j) { + this._length[j] += carry + carry = (this._length[j] / 4294967296) | 0 + if (carry > 0) this._length[j] -= 4294967296 * carry + } + return this + } + HashBase.prototype._update = function () { + throw new Error('_update is not implemented') + } + HashBase.prototype.digest = function (encoding) { + if (this._finalized) throw new Error('Digest already called') + this._finalized = true + var digest = this._digest() + if (encoding !== undefined) digest = digest.toString(encoding) + this._block.fill(0) + this._blockOffset = 0 + for (var i = 0; i < 4; ++i) this._length[i] = 0 + return digest + } + HashBase.prototype._digest = function () { + throw new Error('_digest is not implemented') + } + module.exports = HashBase + }, + { inherits: 151, 'safe-buffer': 183, stream: 192 } + ], + 137: [ + function (require, module, exports) { + var hash = exports + hash.utils = require('./hash/utils') + hash.common = require('./hash/common') + hash.sha = require('./hash/sha') + hash.ripemd = require('./hash/ripemd') + hash.hmac = require('./hash/hmac') + hash.sha1 = hash.sha.sha1 + hash.sha256 = hash.sha.sha256 + hash.sha224 = hash.sha.sha224 + hash.sha384 = hash.sha.sha384 + hash.sha512 = hash.sha.sha512 + hash.ripemd160 = hash.ripemd.ripemd160 + }, + { + './hash/common': 138, + './hash/hmac': 139, + './hash/ripemd': 140, + './hash/sha': 141, + './hash/utils': 148 + } + ], + 138: [ + function (require, module, exports) { + 'use strict' + var utils = require('./utils') + var assert = require('minimalistic-assert') + function BlockHash() { + this.pending = null + this.pendingTotal = 0 + this.blockSize = this.constructor.blockSize + this.outSize = this.constructor.outSize + this.hmacStrength = this.constructor.hmacStrength + this.padLength = this.constructor.padLength / 8 + this.endian = 'big' + this._delta8 = this.blockSize / 8 + this._delta32 = this.blockSize / 32 + } + exports.BlockHash = BlockHash + BlockHash.prototype.update = function update(msg, enc) { + msg = utils.toArray(msg, enc) + if (!this.pending) this.pending = msg + else this.pending = this.pending.concat(msg) + this.pendingTotal += msg.length + if (this.pending.length >= this._delta8) { + msg = this.pending + var r = msg.length % this._delta8 + this.pending = msg.slice(msg.length - r, msg.length) + if (this.pending.length === 0) this.pending = null + msg = utils.join32(msg, 0, msg.length - r, this.endian) + for (var i = 0; i < msg.length; i += this._delta32) + this._update(msg, i, i + this._delta32) + } + return this + } + BlockHash.prototype.digest = function digest(enc) { + this.update(this._pad()) + assert(this.pending === null) + return this._digest(enc) + } + BlockHash.prototype._pad = function pad() { + var len = this.pendingTotal + var bytes = this._delta8 + var k = bytes - ((len + this.padLength) % bytes) + var res = new Array(k + this.padLength) + res[0] = 128 + for (var i = 1; i < k; i++) res[i] = 0 + len <<= 3 + if (this.endian === 'big') { + for (var t = 8; t < this.padLength; t++) res[i++] = 0 + res[i++] = 0 + res[i++] = 0 + res[i++] = 0 + res[i++] = 0 + res[i++] = (len >>> 24) & 255 + res[i++] = (len >>> 16) & 255 + res[i++] = (len >>> 8) & 255 + res[i++] = len & 255 + } else { + res[i++] = len & 255 + res[i++] = (len >>> 8) & 255 + res[i++] = (len >>> 16) & 255 + res[i++] = (len >>> 24) & 255 + res[i++] = 0 + res[i++] = 0 + res[i++] = 0 + res[i++] = 0 + for (t = 8; t < this.padLength; t++) res[i++] = 0 + } + return res + } + }, + { './utils': 148, 'minimalistic-assert': 158 } + ], + 139: [ + function (require, module, exports) { + 'use strict' + var utils = require('./utils') + var assert = require('minimalistic-assert') + function Hmac(hash, key, enc) { + if (!(this instanceof Hmac)) return new Hmac(hash, key, enc) + this.Hash = hash + this.blockSize = hash.blockSize / 8 + this.outSize = hash.outSize / 8 + this.inner = null + this.outer = null + this._init(utils.toArray(key, enc)) + } + module.exports = Hmac + Hmac.prototype._init = function init(key) { + if (key.length > this.blockSize) key = new this.Hash().update(key).digest() + assert(key.length <= this.blockSize) + for (var i = key.length; i < this.blockSize; i++) key.push(0) + for (i = 0; i < key.length; i++) key[i] ^= 54 + this.inner = new this.Hash().update(key) + for (i = 0; i < key.length; i++) key[i] ^= 106 + this.outer = new this.Hash().update(key) + } + Hmac.prototype.update = function update(msg, enc) { + this.inner.update(msg, enc) + return this + } + Hmac.prototype.digest = function digest(enc) { + this.outer.update(this.inner.digest()) + return this.outer.digest(enc) + } + }, + { './utils': 148, 'minimalistic-assert': 158 } + ], + 140: [ + function (require, module, exports) { + 'use strict' + var utils = require('./utils') + var common = require('./common') + var rotl32 = utils.rotl32 + var sum32 = utils.sum32 + var sum32_3 = utils.sum32_3 + var sum32_4 = utils.sum32_4 + var BlockHash = common.BlockHash + function RIPEMD160() { + if (!(this instanceof RIPEMD160)) return new RIPEMD160() + BlockHash.call(this) + this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520] + this.endian = 'little' + } + utils.inherits(RIPEMD160, BlockHash) + exports.ripemd160 = RIPEMD160 + RIPEMD160.blockSize = 512 + RIPEMD160.outSize = 160 + RIPEMD160.hmacStrength = 192 + RIPEMD160.padLength = 64 + RIPEMD160.prototype._update = function update(msg, start) { + var A = this.h[0] + var B = this.h[1] + var C = this.h[2] + var D = this.h[3] + var E = this.h[4] + var Ah = A + var Bh = B + var Ch = C + var Dh = D + var Eh = E + for (var j = 0; j < 80; j++) { + var T = sum32(rotl32(sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)), s[j]), E) + A = E + E = D + D = rotl32(C, 10) + C = B + B = T + T = sum32( + rotl32(sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)), sh[j]), + Eh + ) + Ah = Eh + Eh = Dh + Dh = rotl32(Ch, 10) + Ch = Bh + Bh = T + } + T = sum32_3(this.h[1], C, Dh) + this.h[1] = sum32_3(this.h[2], D, Eh) + this.h[2] = sum32_3(this.h[3], E, Ah) + this.h[3] = sum32_3(this.h[4], A, Bh) + this.h[4] = sum32_3(this.h[0], B, Ch) + this.h[0] = T + } + RIPEMD160.prototype._digest = function digest(enc) { + if (enc === 'hex') return utils.toHex32(this.h, 'little') + else return utils.split32(this.h, 'little') + } + function f(j, x, y, z) { + if (j <= 15) return x ^ y ^ z + else if (j <= 31) return (x & y) | (~x & z) + else if (j <= 47) return (x | ~y) ^ z + else if (j <= 63) return (x & z) | (y & ~z) + else return x ^ (y | ~z) + } + function K(j) { + if (j <= 15) return 0 + else if (j <= 31) return 1518500249 + else if (j <= 47) return 1859775393 + else if (j <= 63) return 2400959708 + else return 2840853838 + } + function Kh(j) { + if (j <= 15) return 1352829926 + else if (j <= 31) return 1548603684 + else if (j <= 47) return 1836072691 + else if (j <= 63) return 2053994217 + else return 0 + } + var r = [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, + 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, + 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, + 15, 13 + ] + var rh = [ + 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, + 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, + 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, + 11 + ] + var s = [ + 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, + 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, + 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, + 13, 14, 11, 8, 5, 6 + ] + var sh = [ + 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, + 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, + 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, + 15, 13, 11, 11 + ] + }, + { './common': 138, './utils': 148 } + ], + 141: [ + function (require, module, exports) { + 'use strict' + exports.sha1 = require('./sha/1') + exports.sha224 = require('./sha/224') + exports.sha256 = require('./sha/256') + exports.sha384 = require('./sha/384') + exports.sha512 = require('./sha/512') + }, + { './sha/1': 142, './sha/224': 143, './sha/256': 144, './sha/384': 145, './sha/512': 146 } + ], + 142: [ + function (require, module, exports) { + 'use strict' + var utils = require('../utils') + var common = require('../common') + var shaCommon = require('./common') + var rotl32 = utils.rotl32 + var sum32 = utils.sum32 + var sum32_5 = utils.sum32_5 + var ft_1 = shaCommon.ft_1 + var BlockHash = common.BlockHash + var sha1_K = [1518500249, 1859775393, 2400959708, 3395469782] + function SHA1() { + if (!(this instanceof SHA1)) return new SHA1() + BlockHash.call(this) + this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520] + this.W = new Array(80) + } + utils.inherits(SHA1, BlockHash) + module.exports = SHA1 + SHA1.blockSize = 512 + SHA1.outSize = 160 + SHA1.hmacStrength = 80 + SHA1.padLength = 64 + SHA1.prototype._update = function _update(msg, start) { + var W = this.W + for (var i = 0; i < 16; i++) W[i] = msg[start + i] + for (; i < W.length; i++) W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1) + var a = this.h[0] + var b = this.h[1] + var c = this.h[2] + var d = this.h[3] + var e = this.h[4] + for (i = 0; i < W.length; i++) { + var s = ~~(i / 20) + var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]) + e = d + d = c + c = rotl32(b, 30) + b = a + a = t + } + this.h[0] = sum32(this.h[0], a) + this.h[1] = sum32(this.h[1], b) + this.h[2] = sum32(this.h[2], c) + this.h[3] = sum32(this.h[3], d) + this.h[4] = sum32(this.h[4], e) + } + SHA1.prototype._digest = function digest(enc) { + if (enc === 'hex') return utils.toHex32(this.h, 'big') + else return utils.split32(this.h, 'big') + } + }, + { '../common': 138, '../utils': 148, './common': 147 } + ], + 143: [ + function (require, module, exports) { + 'use strict' + var utils = require('../utils') + var SHA256 = require('./256') + function SHA224() { + if (!(this instanceof SHA224)) return new SHA224() + SHA256.call(this) + this.h = [ + 3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, + 3204075428 + ] + } + utils.inherits(SHA224, SHA256) + module.exports = SHA224 + SHA224.blockSize = 512 + SHA224.outSize = 224 + SHA224.hmacStrength = 192 + SHA224.padLength = 64 + SHA224.prototype._digest = function digest(enc) { + if (enc === 'hex') return utils.toHex32(this.h.slice(0, 7), 'big') + else return utils.split32(this.h.slice(0, 7), 'big') + } + }, + { '../utils': 148, './256': 144 } + ], + 144: [ + function (require, module, exports) { + 'use strict' + var utils = require('../utils') + var common = require('../common') + var shaCommon = require('./common') + var assert = require('minimalistic-assert') + var sum32 = utils.sum32 + var sum32_4 = utils.sum32_4 + var sum32_5 = utils.sum32_5 + var ch32 = shaCommon.ch32 + var maj32 = shaCommon.maj32 + var s0_256 = shaCommon.s0_256 + var s1_256 = shaCommon.s1_256 + var g0_256 = shaCommon.g0_256 + var g1_256 = shaCommon.g1_256 + var BlockHash = common.BlockHash + var sha256_K = [ + 1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, + 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, + 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, + 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, + 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, + 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, + 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, + 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, + 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, + 3329325298 + ] + function SHA256() { + if (!(this instanceof SHA256)) return new SHA256() + BlockHash.call(this) + this.h = [ + 1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, + 1541459225 + ] + this.k = sha256_K + this.W = new Array(64) + } + utils.inherits(SHA256, BlockHash) + module.exports = SHA256 + SHA256.blockSize = 512 + SHA256.outSize = 256 + SHA256.hmacStrength = 192 + SHA256.padLength = 64 + SHA256.prototype._update = function _update(msg, start) { + var W = this.W + for (var i = 0; i < 16; i++) W[i] = msg[start + i] + for (; i < W.length; i++) + W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]) + var a = this.h[0] + var b = this.h[1] + var c = this.h[2] + var d = this.h[3] + var e = this.h[4] + var f = this.h[5] + var g = this.h[6] + var h = this.h[7] + assert(this.k.length === W.length) + for (i = 0; i < W.length; i++) { + var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]) + var T2 = sum32(s0_256(a), maj32(a, b, c)) + h = g + g = f + f = e + e = sum32(d, T1) + d = c + c = b + b = a + a = sum32(T1, T2) + } + this.h[0] = sum32(this.h[0], a) + this.h[1] = sum32(this.h[1], b) + this.h[2] = sum32(this.h[2], c) + this.h[3] = sum32(this.h[3], d) + this.h[4] = sum32(this.h[4], e) + this.h[5] = sum32(this.h[5], f) + this.h[6] = sum32(this.h[6], g) + this.h[7] = sum32(this.h[7], h) + } + SHA256.prototype._digest = function digest(enc) { + if (enc === 'hex') return utils.toHex32(this.h, 'big') + else return utils.split32(this.h, 'big') + } + }, + { '../common': 138, '../utils': 148, './common': 147, 'minimalistic-assert': 158 } + ], + 145: [ + function (require, module, exports) { + 'use strict' + var utils = require('../utils') + var SHA512 = require('./512') + function SHA384() { + if (!(this instanceof SHA384)) return new SHA384() + SHA512.call(this) + this.h = [ + 3418070365, 3238371032, 1654270250, 914150663, 2438529370, 812702999, 355462360, + 4144912697, 1731405415, 4290775857, 2394180231, 1750603025, 3675008525, 1694076839, + 1203062813, 3204075428 + ] + } + utils.inherits(SHA384, SHA512) + module.exports = SHA384 + SHA384.blockSize = 1024 + SHA384.outSize = 384 + SHA384.hmacStrength = 192 + SHA384.padLength = 128 + SHA384.prototype._digest = function digest(enc) { + if (enc === 'hex') return utils.toHex32(this.h.slice(0, 12), 'big') + else return utils.split32(this.h.slice(0, 12), 'big') + } + }, + { '../utils': 148, './512': 146 } + ], + 146: [ + function (require, module, exports) { + 'use strict' + var utils = require('../utils') + var common = require('../common') + var assert = require('minimalistic-assert') + var rotr64_hi = utils.rotr64_hi + var rotr64_lo = utils.rotr64_lo + var shr64_hi = utils.shr64_hi + var shr64_lo = utils.shr64_lo + var sum64 = utils.sum64 + var sum64_hi = utils.sum64_hi + var sum64_lo = utils.sum64_lo + var sum64_4_hi = utils.sum64_4_hi + var sum64_4_lo = utils.sum64_4_lo + var sum64_5_hi = utils.sum64_5_hi + var sum64_5_lo = utils.sum64_5_lo + var BlockHash = common.BlockHash + var sha512_K = [ + 1116352408, 3609767458, 1899447441, 602891725, 3049323471, 3964484399, 3921009573, + 2173295548, 961987163, 4081628472, 1508970993, 3053834265, 2453635748, 2937671579, + 2870763221, 3664609560, 3624381080, 2734883394, 310598401, 1164996542, 607225278, + 1323610764, 1426881987, 3590304994, 1925078388, 4068182383, 2162078206, 991336113, + 2614888103, 633803317, 3248222580, 3479774868, 3835390401, 2666613458, 4022224774, + 944711139, 264347078, 2341262773, 604807628, 2007800933, 770255983, 1495990901, + 1249150122, 1856431235, 1555081692, 3175218132, 1996064986, 2198950837, 2554220882, + 3999719339, 2821834349, 766784016, 2952996808, 2566594879, 3210313671, 3203337956, + 3336571891, 1034457026, 3584528711, 2466948901, 113926993, 3758326383, 338241895, + 168717936, 666307205, 1188179964, 773529912, 1546045734, 1294757372, 1522805485, + 1396182291, 2643833823, 1695183700, 2343527390, 1986661051, 1014477480, 2177026350, + 1206759142, 2456956037, 344077627, 2730485921, 1290863460, 2820302411, 3158454273, + 3259730800, 3505952657, 3345764771, 106217008, 3516065817, 3606008344, 3600352804, + 1432725776, 4094571909, 1467031594, 275423344, 851169720, 430227734, 3100823752, + 506948616, 1363258195, 659060556, 3750685593, 883997877, 3785050280, 958139571, + 3318307427, 1322822218, 3812723403, 1537002063, 2003034995, 1747873779, 3602036899, + 1955562222, 1575990012, 2024104815, 1125592928, 2227730452, 2716904306, 2361852424, + 442776044, 2428436474, 593698344, 2756734187, 3733110249, 3204031479, 2999351573, + 3329325298, 3815920427, 3391569614, 3928383900, 3515267271, 566280711, 3940187606, + 3454069534, 4118630271, 4000239992, 116418474, 1914138554, 174292421, 2731055270, + 289380356, 3203993006, 460393269, 320620315, 685471733, 587496836, 852142971, + 1086792851, 1017036298, 365543100, 1126000580, 2618297676, 1288033470, 3409855158, + 1501505948, 4234509866, 1607167915, 987167468, 1816402316, 1246189591 + ] + function SHA512() { + if (!(this instanceof SHA512)) return new SHA512() + BlockHash.call(this) + this.h = [ + 1779033703, 4089235720, 3144134277, 2227873595, 1013904242, 4271175723, 2773480762, + 1595750129, 1359893119, 2917565137, 2600822924, 725511199, 528734635, 4215389547, + 1541459225, 327033209 + ] + this.k = sha512_K + this.W = new Array(160) + } + utils.inherits(SHA512, BlockHash) + module.exports = SHA512 + SHA512.blockSize = 1024 + SHA512.outSize = 512 + SHA512.hmacStrength = 192 + SHA512.padLength = 128 + SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) { + var W = this.W + for (var i = 0; i < 32; i++) W[i] = msg[start + i] + for (; i < W.length; i += 2) { + var c0_hi = g1_512_hi(W[i - 4], W[i - 3]) + var c0_lo = g1_512_lo(W[i - 4], W[i - 3]) + var c1_hi = W[i - 14] + var c1_lo = W[i - 13] + var c2_hi = g0_512_hi(W[i - 30], W[i - 29]) + var c2_lo = g0_512_lo(W[i - 30], W[i - 29]) + var c3_hi = W[i - 32] + var c3_lo = W[i - 31] + W[i] = sum64_4_hi(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo) + W[i + 1] = sum64_4_lo(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo) + } + } + SHA512.prototype._update = function _update(msg, start) { + this._prepareBlock(msg, start) + var W = this.W + var ah = this.h[0] + var al = this.h[1] + var bh = this.h[2] + var bl = this.h[3] + var ch = this.h[4] + var cl = this.h[5] + var dh = this.h[6] + var dl = this.h[7] + var eh = this.h[8] + var el = this.h[9] + var fh = this.h[10] + var fl = this.h[11] + var gh = this.h[12] + var gl = this.h[13] + var hh = this.h[14] + var hl = this.h[15] + assert(this.k.length === W.length) + for (var i = 0; i < W.length; i += 2) { + var c0_hi = hh + var c0_lo = hl + var c1_hi = s1_512_hi(eh, el) + var c1_lo = s1_512_lo(eh, el) + var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl) + var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl) + var c3_hi = this.k[i] + var c3_lo = this.k[i + 1] + var c4_hi = W[i] + var c4_lo = W[i + 1] + var T1_hi = sum64_5_hi( + c0_hi, + c0_lo, + c1_hi, + c1_lo, + c2_hi, + c2_lo, + c3_hi, + c3_lo, + c4_hi, + c4_lo + ) + var T1_lo = sum64_5_lo( + c0_hi, + c0_lo, + c1_hi, + c1_lo, + c2_hi, + c2_lo, + c3_hi, + c3_lo, + c4_hi, + c4_lo + ) + c0_hi = s0_512_hi(ah, al) + c0_lo = s0_512_lo(ah, al) + c1_hi = maj64_hi(ah, al, bh, bl, ch, cl) + c1_lo = maj64_lo(ah, al, bh, bl, ch, cl) + var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo) + var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo) + hh = gh + hl = gl + gh = fh + gl = fl + fh = eh + fl = el + eh = sum64_hi(dh, dl, T1_hi, T1_lo) + el = sum64_lo(dl, dl, T1_hi, T1_lo) + dh = ch + dl = cl + ch = bh + cl = bl + bh = ah + bl = al + ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo) + al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo) + } + sum64(this.h, 0, ah, al) + sum64(this.h, 2, bh, bl) + sum64(this.h, 4, ch, cl) + sum64(this.h, 6, dh, dl) + sum64(this.h, 8, eh, el) + sum64(this.h, 10, fh, fl) + sum64(this.h, 12, gh, gl) + sum64(this.h, 14, hh, hl) + } + SHA512.prototype._digest = function digest(enc) { + if (enc === 'hex') return utils.toHex32(this.h, 'big') + else return utils.split32(this.h, 'big') + } + function ch64_hi(xh, xl, yh, yl, zh) { + var r = (xh & yh) ^ (~xh & zh) + if (r < 0) r += 4294967296 + return r + } + function ch64_lo(xh, xl, yh, yl, zh, zl) { + var r = (xl & yl) ^ (~xl & zl) + if (r < 0) r += 4294967296 + return r + } + function maj64_hi(xh, xl, yh, yl, zh) { + var r = (xh & yh) ^ (xh & zh) ^ (yh & zh) + if (r < 0) r += 4294967296 + return r + } + function maj64_lo(xh, xl, yh, yl, zh, zl) { + var r = (xl & yl) ^ (xl & zl) ^ (yl & zl) + if (r < 0) r += 4294967296 + return r + } + function s0_512_hi(xh, xl) { + var c0_hi = rotr64_hi(xh, xl, 28) + var c1_hi = rotr64_hi(xl, xh, 2) + var c2_hi = rotr64_hi(xl, xh, 7) + var r = c0_hi ^ c1_hi ^ c2_hi + if (r < 0) r += 4294967296 + return r + } + function s0_512_lo(xh, xl) { + var c0_lo = rotr64_lo(xh, xl, 28) + var c1_lo = rotr64_lo(xl, xh, 2) + var c2_lo = rotr64_lo(xl, xh, 7) + var r = c0_lo ^ c1_lo ^ c2_lo + if (r < 0) r += 4294967296 + return r + } + function s1_512_hi(xh, xl) { + var c0_hi = rotr64_hi(xh, xl, 14) + var c1_hi = rotr64_hi(xh, xl, 18) + var c2_hi = rotr64_hi(xl, xh, 9) + var r = c0_hi ^ c1_hi ^ c2_hi + if (r < 0) r += 4294967296 + return r + } + function s1_512_lo(xh, xl) { + var c0_lo = rotr64_lo(xh, xl, 14) + var c1_lo = rotr64_lo(xh, xl, 18) + var c2_lo = rotr64_lo(xl, xh, 9) + var r = c0_lo ^ c1_lo ^ c2_lo + if (r < 0) r += 4294967296 + return r + } + function g0_512_hi(xh, xl) { + var c0_hi = rotr64_hi(xh, xl, 1) + var c1_hi = rotr64_hi(xh, xl, 8) + var c2_hi = shr64_hi(xh, xl, 7) + var r = c0_hi ^ c1_hi ^ c2_hi + if (r < 0) r += 4294967296 + return r + } + function g0_512_lo(xh, xl) { + var c0_lo = rotr64_lo(xh, xl, 1) + var c1_lo = rotr64_lo(xh, xl, 8) + var c2_lo = shr64_lo(xh, xl, 7) + var r = c0_lo ^ c1_lo ^ c2_lo + if (r < 0) r += 4294967296 + return r + } + function g1_512_hi(xh, xl) { + var c0_hi = rotr64_hi(xh, xl, 19) + var c1_hi = rotr64_hi(xl, xh, 29) + var c2_hi = shr64_hi(xh, xl, 6) + var r = c0_hi ^ c1_hi ^ c2_hi + if (r < 0) r += 4294967296 + return r + } + function g1_512_lo(xh, xl) { + var c0_lo = rotr64_lo(xh, xl, 19) + var c1_lo = rotr64_lo(xl, xh, 29) + var c2_lo = shr64_lo(xh, xl, 6) + var r = c0_lo ^ c1_lo ^ c2_lo + if (r < 0) r += 4294967296 + return r + } + }, + { '../common': 138, '../utils': 148, 'minimalistic-assert': 158 } + ], + 147: [ + function (require, module, exports) { + 'use strict' + var utils = require('../utils') + var rotr32 = utils.rotr32 + function ft_1(s, x, y, z) { + if (s === 0) return ch32(x, y, z) + if (s === 1 || s === 3) return p32(x, y, z) + if (s === 2) return maj32(x, y, z) + } + exports.ft_1 = ft_1 + function ch32(x, y, z) { + return (x & y) ^ (~x & z) + } + exports.ch32 = ch32 + function maj32(x, y, z) { + return (x & y) ^ (x & z) ^ (y & z) + } + exports.maj32 = maj32 + function p32(x, y, z) { + return x ^ y ^ z + } + exports.p32 = p32 + function s0_256(x) { + return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22) + } + exports.s0_256 = s0_256 + function s1_256(x) { + return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25) + } + exports.s1_256 = s1_256 + function g0_256(x) { + return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3) + } + exports.g0_256 = g0_256 + function g1_256(x) { + return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10) + } + exports.g1_256 = g1_256 + }, + { '../utils': 148 } + ], + 148: [ + function (require, module, exports) { + 'use strict' + var assert = require('minimalistic-assert') + var inherits = require('inherits') + exports.inherits = inherits + function isSurrogatePair(msg, i) { + if ((msg.charCodeAt(i) & 64512) !== 55296) { + return false + } + if (i < 0 || i + 1 >= msg.length) { + return false + } + return (msg.charCodeAt(i + 1) & 64512) === 56320 + } + function toArray(msg, enc) { + if (Array.isArray(msg)) return msg.slice() + if (!msg) return [] + var res = [] + if (typeof msg === 'string') { + if (!enc) { + var p = 0 + for (var i = 0; i < msg.length; i++) { + var c = msg.charCodeAt(i) + if (c < 128) { + res[p++] = c + } else if (c < 2048) { + res[p++] = (c >> 6) | 192 + res[p++] = (c & 63) | 128 + } else if (isSurrogatePair(msg, i)) { + c = 65536 + ((c & 1023) << 10) + (msg.charCodeAt(++i) & 1023) + res[p++] = (c >> 18) | 240 + res[p++] = ((c >> 12) & 63) | 128 + res[p++] = ((c >> 6) & 63) | 128 + res[p++] = (c & 63) | 128 + } else { + res[p++] = (c >> 12) | 224 + res[p++] = ((c >> 6) & 63) | 128 + res[p++] = (c & 63) | 128 + } + } + } else if (enc === 'hex') { + msg = msg.replace(/[^a-z0-9]+/gi, '') + if (msg.length % 2 !== 0) msg = '0' + msg + for (i = 0; i < msg.length; i += 2) res.push(parseInt(msg[i] + msg[i + 1], 16)) + } + } else { + for (i = 0; i < msg.length; i++) res[i] = msg[i] | 0 + } + return res + } + exports.toArray = toArray + function toHex(msg) { + var res = '' + for (var i = 0; i < msg.length; i++) res += zero2(msg[i].toString(16)) + return res + } + exports.toHex = toHex + function htonl(w) { + var res = (w >>> 24) | ((w >>> 8) & 65280) | ((w << 8) & 16711680) | ((w & 255) << 24) + return res >>> 0 + } + exports.htonl = htonl + function toHex32(msg, endian) { + var res = '' + for (var i = 0; i < msg.length; i++) { + var w = msg[i] + if (endian === 'little') w = htonl(w) + res += zero8(w.toString(16)) + } + return res + } + exports.toHex32 = toHex32 + function zero2(word) { + if (word.length === 1) return '0' + word + else return word + } + exports.zero2 = zero2 + function zero8(word) { + if (word.length === 7) return '0' + word + else if (word.length === 6) return '00' + word + else if (word.length === 5) return '000' + word + else if (word.length === 4) return '0000' + word + else if (word.length === 3) return '00000' + word + else if (word.length === 2) return '000000' + word + else if (word.length === 1) return '0000000' + word + else return word + } + exports.zero8 = zero8 + function join32(msg, start, end, endian) { + var len = end - start + assert(len % 4 === 0) + var res = new Array(len / 4) + for (var i = 0, k = start; i < res.length; i++, k += 4) { + var w + if (endian === 'big') + w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3] + else w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k] + res[i] = w >>> 0 + } + return res + } + exports.join32 = join32 + function split32(msg, endian) { + var res = new Array(msg.length * 4) + for (var i = 0, k = 0; i < msg.length; i++, k += 4) { + var m = msg[i] + if (endian === 'big') { + res[k] = m >>> 24 + res[k + 1] = (m >>> 16) & 255 + res[k + 2] = (m >>> 8) & 255 + res[k + 3] = m & 255 + } else { + res[k + 3] = m >>> 24 + res[k + 2] = (m >>> 16) & 255 + res[k + 1] = (m >>> 8) & 255 + res[k] = m & 255 + } + } + return res + } + exports.split32 = split32 + function rotr32(w, b) { + return (w >>> b) | (w << (32 - b)) + } + exports.rotr32 = rotr32 + function rotl32(w, b) { + return (w << b) | (w >>> (32 - b)) + } + exports.rotl32 = rotl32 + function sum32(a, b) { + return (a + b) >>> 0 + } + exports.sum32 = sum32 + function sum32_3(a, b, c) { + return (a + b + c) >>> 0 + } + exports.sum32_3 = sum32_3 + function sum32_4(a, b, c, d) { + return (a + b + c + d) >>> 0 + } + exports.sum32_4 = sum32_4 + function sum32_5(a, b, c, d, e) { + return (a + b + c + d + e) >>> 0 + } + exports.sum32_5 = sum32_5 + function sum64(buf, pos, ah, al) { + var bh = buf[pos] + var bl = buf[pos + 1] + var lo = (al + bl) >>> 0 + var hi = (lo < al ? 1 : 0) + ah + bh + buf[pos] = hi >>> 0 + buf[pos + 1] = lo + } + exports.sum64 = sum64 + function sum64_hi(ah, al, bh, bl) { + var lo = (al + bl) >>> 0 + var hi = (lo < al ? 1 : 0) + ah + bh + return hi >>> 0 + } + exports.sum64_hi = sum64_hi + function sum64_lo(ah, al, bh, bl) { + var lo = al + bl + return lo >>> 0 + } + exports.sum64_lo = sum64_lo + function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) { + var carry = 0 + var lo = al + lo = (lo + bl) >>> 0 + carry += lo < al ? 1 : 0 + lo = (lo + cl) >>> 0 + carry += lo < cl ? 1 : 0 + lo = (lo + dl) >>> 0 + carry += lo < dl ? 1 : 0 + var hi = ah + bh + ch + dh + carry + return hi >>> 0 + } + exports.sum64_4_hi = sum64_4_hi + function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) { + var lo = al + bl + cl + dl + return lo >>> 0 + } + exports.sum64_4_lo = sum64_4_lo + function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) { + var carry = 0 + var lo = al + lo = (lo + bl) >>> 0 + carry += lo < al ? 1 : 0 + lo = (lo + cl) >>> 0 + carry += lo < cl ? 1 : 0 + lo = (lo + dl) >>> 0 + carry += lo < dl ? 1 : 0 + lo = (lo + el) >>> 0 + carry += lo < el ? 1 : 0 + var hi = ah + bh + ch + dh + eh + carry + return hi >>> 0 + } + exports.sum64_5_hi = sum64_5_hi + function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) { + var lo = al + bl + cl + dl + el + return lo >>> 0 + } + exports.sum64_5_lo = sum64_5_lo + function rotr64_hi(ah, al, num) { + var r = (al << (32 - num)) | (ah >>> num) + return r >>> 0 + } + exports.rotr64_hi = rotr64_hi + function rotr64_lo(ah, al, num) { + var r = (ah << (32 - num)) | (al >>> num) + return r >>> 0 + } + exports.rotr64_lo = rotr64_lo + function shr64_hi(ah, al, num) { + return ah >>> num + } + exports.shr64_hi = shr64_hi + function shr64_lo(ah, al, num) { + var r = (ah << (32 - num)) | (al >>> num) + return r >>> 0 + } + exports.shr64_lo = shr64_lo + }, + { inherits: 151, 'minimalistic-assert': 158 } + ], + 149: [ + function (require, module, exports) { + 'use strict' + var hash = require('hash.js') + var utils = require('minimalistic-crypto-utils') + var assert = require('minimalistic-assert') + function HmacDRBG(options) { + if (!(this instanceof HmacDRBG)) return new HmacDRBG(options) + this.hash = options.hash + this.predResist = !!options.predResist + this.outLen = this.hash.outSize + this.minEntropy = options.minEntropy || this.hash.hmacStrength + this._reseed = null + this.reseedInterval = null + this.K = null + this.V = null + var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex') + var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex') + var pers = utils.toArray(options.pers, options.persEnc || 'hex') + assert( + entropy.length >= this.minEntropy / 8, + 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits' + ) + this._init(entropy, nonce, pers) + } + module.exports = HmacDRBG + HmacDRBG.prototype._init = function init(entropy, nonce, pers) { + var seed = entropy.concat(nonce).concat(pers) + this.K = new Array(this.outLen / 8) + this.V = new Array(this.outLen / 8) + for (var i = 0; i < this.V.length; i++) { + this.K[i] = 0 + this.V[i] = 1 + } + this._update(seed) + this._reseed = 1 + this.reseedInterval = 281474976710656 + } + HmacDRBG.prototype._hmac = function hmac() { + return new hash.hmac(this.hash, this.K) + } + HmacDRBG.prototype._update = function update(seed) { + var kmac = this._hmac().update(this.V).update([0]) + if (seed) kmac = kmac.update(seed) + this.K = kmac.digest() + this.V = this._hmac().update(this.V).digest() + if (!seed) return + this.K = this._hmac().update(this.V).update([1]).update(seed).digest() + this.V = this._hmac().update(this.V).digest() + } + HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) { + if (typeof entropyEnc !== 'string') { + addEnc = add + add = entropyEnc + entropyEnc = null + } + entropy = utils.toArray(entropy, entropyEnc) + add = utils.toArray(add, addEnc) + assert( + entropy.length >= this.minEntropy / 8, + 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits' + ) + this._update(entropy.concat(add || [])) + this._reseed = 1 + } + HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) { + if (this._reseed > this.reseedInterval) throw new Error('Reseed is required') + if (typeof enc !== 'string') { + addEnc = add + add = enc + enc = null + } + if (add) { + add = utils.toArray(add, addEnc || 'hex') + this._update(add) + } + var temp = [] + while (temp.length < len) { + this.V = this._hmac().update(this.V).digest() + temp = temp.concat(this.V) + } + var res = temp.slice(0, len) + this._update(add) + this._reseed++ + return utils.encode(res, enc) + } + }, + { 'hash.js': 137, 'minimalistic-assert': 158, 'minimalistic-crypto-utils': 159 } + ], + 150: [ + function (require, module, exports) { + exports.read = function (buffer, offset, isLE, mLen, nBytes) { + var e, m + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var nBits = -7 + var i = isLE ? nBytes - 1 : 0 + var d = isLE ? -1 : 1 + var s = buffer[offset + i] + i += d + e = s & ((1 << -nBits) - 1) + s >>= -nBits + nBits += eLen + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} + m = e & ((1 << -nBits) - 1) + e >>= -nBits + nBits += mLen + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} + if (e === 0) { + e = 1 - eBias + } else if (e === eMax) { + return m ? NaN : (s ? -1 : 1) * Infinity + } else { + m = m + Math.pow(2, mLen) + e = e - eBias + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen) + } + exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0 + var i = isLE ? 0 : nBytes - 1 + var d = isLE ? 1 : -1 + var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 + value = Math.abs(value) + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0 + e = eMax + } else { + e = Math.floor(Math.log(value) / Math.LN2) + if (value * (c = Math.pow(2, -e)) < 1) { + e-- + c *= 2 + } + if (e + eBias >= 1) { + value += rt / c + } else { + value += rt * Math.pow(2, 1 - eBias) + } + if (value * c >= 2) { + e++ + c /= 2 + } + if (e + eBias >= eMax) { + m = 0 + e = eMax + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen) + e = e + eBias + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) + e = 0 + } + } + for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {} + e = (e << mLen) | m + eLen += mLen + for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {} + buffer[offset + i - d] |= s * 128 + } + }, + {} + ], + 151: [ + function (require, module, exports) { + if (typeof Object.create === 'function') { + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }) + } + } + } else { + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } + } + } + }, + {} + ], + 152: [ + function (require, module, exports) { + module.exports = function (obj) { + return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) + } + function isBuffer(obj) { + return ( + !!obj.constructor && + typeof obj.constructor.isBuffer === 'function' && + obj.constructor.isBuffer(obj) + ) + } + function isSlowBuffer(obj) { + return ( + typeof obj.readFloatLE === 'function' && + typeof obj.slice === 'function' && + isBuffer(obj.slice(0, 0)) + ) + } + }, + {} + ], + 153: [ + function (require, module, exports) { + !(function (e) { + function r(e, r) { + 'use strict' + var t, + a = r.ready.then(function () { + function a() { + if (0 !== t._sodium_init()) + throw new Error('libsodium was not correctly initialized.') + for ( + var r = [ + 'crypto_aead_chacha20poly1305_decrypt', + 'crypto_aead_chacha20poly1305_decrypt_detached', + 'crypto_aead_chacha20poly1305_encrypt', + 'crypto_aead_chacha20poly1305_encrypt_detached', + 'crypto_aead_chacha20poly1305_ietf_decrypt', + 'crypto_aead_chacha20poly1305_ietf_decrypt_detached', + 'crypto_aead_chacha20poly1305_ietf_encrypt', + 'crypto_aead_chacha20poly1305_ietf_encrypt_detached', + 'crypto_aead_chacha20poly1305_ietf_keygen', + 'crypto_aead_chacha20poly1305_keygen', + 'crypto_aead_xchacha20poly1305_ietf_decrypt', + 'crypto_aead_xchacha20poly1305_ietf_decrypt_detached', + 'crypto_aead_xchacha20poly1305_ietf_encrypt', + 'crypto_aead_xchacha20poly1305_ietf_encrypt_detached', + 'crypto_aead_xchacha20poly1305_ietf_keygen', + 'crypto_auth', + 'crypto_auth_hmacsha256', + 'crypto_auth_hmacsha256_keygen', + 'crypto_auth_hmacsha256_verify', + 'crypto_auth_hmacsha512', + 'crypto_auth_hmacsha512_keygen', + 'crypto_auth_hmacsha512_verify', + 'crypto_auth_keygen', + 'crypto_auth_verify', + 'crypto_box_beforenm', + 'crypto_box_curve25519xchacha20poly1305_keypair', + 'crypto_box_curve25519xchacha20poly1305_seal', + 'crypto_box_curve25519xchacha20poly1305_seal_open', + 'crypto_box_detached', + 'crypto_box_easy', + 'crypto_box_easy_afternm', + 'crypto_box_keypair', + 'crypto_box_open_detached', + 'crypto_box_open_easy', + 'crypto_box_open_easy_afternm', + 'crypto_box_seal', + 'crypto_box_seal_open', + 'crypto_box_seed_keypair', + 'crypto_core_ed25519_add', + 'crypto_core_ed25519_from_hash', + 'crypto_core_ed25519_from_uniform', + 'crypto_core_ed25519_is_valid_point', + 'crypto_core_ed25519_random', + 'crypto_core_ed25519_scalar_add', + 'crypto_core_ed25519_scalar_complement', + 'crypto_core_ed25519_scalar_invert', + 'crypto_core_ed25519_scalar_mul', + 'crypto_core_ed25519_scalar_negate', + 'crypto_core_ed25519_scalar_random', + 'crypto_core_ed25519_scalar_reduce', + 'crypto_core_ed25519_scalar_sub', + 'crypto_core_ed25519_sub', + 'crypto_core_ristretto255_add', + 'crypto_core_ristretto255_from_hash', + 'crypto_core_ristretto255_is_valid_point', + 'crypto_core_ristretto255_random', + 'crypto_core_ristretto255_scalar_add', + 'crypto_core_ristretto255_scalar_complement', + 'crypto_core_ristretto255_scalar_invert', + 'crypto_core_ristretto255_scalar_mul', + 'crypto_core_ristretto255_scalar_negate', + 'crypto_core_ristretto255_scalar_random', + 'crypto_core_ristretto255_scalar_reduce', + 'crypto_core_ristretto255_scalar_sub', + 'crypto_core_ristretto255_sub', + 'crypto_generichash', + 'crypto_generichash_blake2b_salt_personal', + 'crypto_generichash_final', + 'crypto_generichash_init', + 'crypto_generichash_keygen', + 'crypto_generichash_update', + 'crypto_hash', + 'crypto_hash_sha256', + 'crypto_hash_sha256_final', + 'crypto_hash_sha256_init', + 'crypto_hash_sha256_update', + 'crypto_hash_sha512', + 'crypto_hash_sha512_final', + 'crypto_hash_sha512_init', + 'crypto_hash_sha512_update', + 'crypto_kdf_derive_from_key', + 'crypto_kdf_keygen', + 'crypto_kx_client_session_keys', + 'crypto_kx_keypair', + 'crypto_kx_seed_keypair', + 'crypto_kx_server_session_keys', + 'crypto_onetimeauth', + 'crypto_onetimeauth_final', + 'crypto_onetimeauth_init', + 'crypto_onetimeauth_keygen', + 'crypto_onetimeauth_update', + 'crypto_onetimeauth_verify', + 'crypto_pwhash', + 'crypto_pwhash_scryptsalsa208sha256', + 'crypto_pwhash_scryptsalsa208sha256_ll', + 'crypto_pwhash_scryptsalsa208sha256_str', + 'crypto_pwhash_scryptsalsa208sha256_str_verify', + 'crypto_pwhash_str', + 'crypto_pwhash_str_needs_rehash', + 'crypto_pwhash_str_verify', + 'crypto_scalarmult', + 'crypto_scalarmult_base', + 'crypto_scalarmult_ed25519', + 'crypto_scalarmult_ed25519_base', + 'crypto_scalarmult_ed25519_base_noclamp', + 'crypto_scalarmult_ed25519_noclamp', + 'crypto_scalarmult_ristretto255', + 'crypto_scalarmult_ristretto255_base', + 'crypto_secretbox_detached', + 'crypto_secretbox_easy', + 'crypto_secretbox_keygen', + 'crypto_secretbox_open_detached', + 'crypto_secretbox_open_easy', + 'crypto_secretstream_xchacha20poly1305_init_pull', + 'crypto_secretstream_xchacha20poly1305_init_push', + 'crypto_secretstream_xchacha20poly1305_keygen', + 'crypto_secretstream_xchacha20poly1305_pull', + 'crypto_secretstream_xchacha20poly1305_push', + 'crypto_secretstream_xchacha20poly1305_rekey', + 'crypto_shorthash', + 'crypto_shorthash_keygen', + 'crypto_shorthash_siphashx24', + 'crypto_sign', + 'crypto_sign_detached', + 'crypto_sign_ed25519_pk_to_curve25519', + 'crypto_sign_ed25519_sk_to_curve25519', + 'crypto_sign_ed25519_sk_to_pk', + 'crypto_sign_ed25519_sk_to_seed', + 'crypto_sign_final_create', + 'crypto_sign_final_verify', + 'crypto_sign_init', + 'crypto_sign_keypair', + 'crypto_sign_open', + 'crypto_sign_seed_keypair', + 'crypto_sign_update', + 'crypto_sign_verify_detached', + 'crypto_stream_chacha20', + 'crypto_stream_chacha20_ietf_xor', + 'crypto_stream_chacha20_ietf_xor_ic', + 'crypto_stream_chacha20_keygen', + 'crypto_stream_chacha20_xor', + 'crypto_stream_chacha20_xor_ic', + 'crypto_stream_keygen', + 'crypto_stream_xchacha20_keygen', + 'crypto_stream_xchacha20_xor', + 'crypto_stream_xchacha20_xor_ic', + 'randombytes_buf', + 'randombytes_buf_deterministic', + 'randombytes_close', + 'randombytes_random', + 'randombytes_set_implementation', + 'randombytes_stir', + 'randombytes_uniform', + 'sodium_version_string' + ], + a = [ + E, + x, + k, + S, + T, + w, + Y, + B, + A, + K, + M, + I, + N, + L, + U, + O, + C, + R, + P, + G, + X, + D, + F, + V, + H, + q, + j, + z, + W, + J, + Q, + Z, + $, + ee, + re, + te, + ae, + _e, + se, + ne, + ce, + oe, + he, + pe, + ye, + ie, + le, + ue, + de, + ve, + ge, + be, + fe, + me, + Ee, + xe, + ke, + Se, + Te, + we, + Ye, + Be, + Ae, + Ke, + Me, + Ie, + Ne, + Le, + Ue, + Oe, + Ce, + Re, + Pe, + Ge, + Xe, + De, + Fe, + Ve, + He, + qe, + je, + ze, + We, + Je, + Qe, + Ze, + $e, + er, + rr, + tr, + ar, + _r, + sr, + nr, + cr, + or, + hr, + pr, + yr, + ir, + lr, + ur, + dr, + vr, + gr, + br, + fr, + mr, + Er, + xr, + kr, + Sr, + Tr, + wr, + Yr, + Br, + Ar, + Kr, + Mr, + Ir, + Nr, + Lr, + Ur, + Or, + Cr, + Rr, + Pr, + Gr, + Xr, + Dr, + Fr, + Vr, + Hr, + qr, + jr, + zr, + Wr, + Jr, + Qr, + Zr, + $r, + et, + rt, + tt, + at, + _t, + st, + nt, + ct, + ot, + ht, + pt, + yt, + it + ], + _ = 0; + _ < a.length; + _++ + ) + 'function' == typeof t['_' + r[_]] && (e[r[_]] = a[_]) + var s = [ + 'SODIUM_LIBRARY_VERSION_MAJOR', + 'SODIUM_LIBRARY_VERSION_MINOR', + 'crypto_aead_chacha20poly1305_ABYTES', + 'crypto_aead_chacha20poly1305_IETF_ABYTES', + 'crypto_aead_chacha20poly1305_IETF_KEYBYTES', + 'crypto_aead_chacha20poly1305_IETF_MESSAGEBYTES_MAX', + 'crypto_aead_chacha20poly1305_IETF_NPUBBYTES', + 'crypto_aead_chacha20poly1305_IETF_NSECBYTES', + 'crypto_aead_chacha20poly1305_KEYBYTES', + 'crypto_aead_chacha20poly1305_MESSAGEBYTES_MAX', + 'crypto_aead_chacha20poly1305_NPUBBYTES', + 'crypto_aead_chacha20poly1305_NSECBYTES', + 'crypto_aead_chacha20poly1305_ietf_ABYTES', + 'crypto_aead_chacha20poly1305_ietf_KEYBYTES', + 'crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX', + 'crypto_aead_chacha20poly1305_ietf_NPUBBYTES', + 'crypto_aead_chacha20poly1305_ietf_NSECBYTES', + 'crypto_aead_xchacha20poly1305_IETF_ABYTES', + 'crypto_aead_xchacha20poly1305_IETF_KEYBYTES', + 'crypto_aead_xchacha20poly1305_IETF_MESSAGEBYTES_MAX', + 'crypto_aead_xchacha20poly1305_IETF_NPUBBYTES', + 'crypto_aead_xchacha20poly1305_IETF_NSECBYTES', + 'crypto_aead_xchacha20poly1305_ietf_ABYTES', + 'crypto_aead_xchacha20poly1305_ietf_KEYBYTES', + 'crypto_aead_xchacha20poly1305_ietf_MESSAGEBYTES_MAX', + 'crypto_aead_xchacha20poly1305_ietf_NPUBBYTES', + 'crypto_aead_xchacha20poly1305_ietf_NSECBYTES', + 'crypto_auth_BYTES', + 'crypto_auth_KEYBYTES', + 'crypto_auth_hmacsha256_BYTES', + 'crypto_auth_hmacsha256_KEYBYTES', + 'crypto_auth_hmacsha512256_BYTES', + 'crypto_auth_hmacsha512256_KEYBYTES', + 'crypto_auth_hmacsha512_BYTES', + 'crypto_auth_hmacsha512_KEYBYTES', + 'crypto_box_BEFORENMBYTES', + 'crypto_box_MACBYTES', + 'crypto_box_MESSAGEBYTES_MAX', + 'crypto_box_NONCEBYTES', + 'crypto_box_PUBLICKEYBYTES', + 'crypto_box_SEALBYTES', + 'crypto_box_SECRETKEYBYTES', + 'crypto_box_SEEDBYTES', + 'crypto_box_curve25519xchacha20poly1305_BEFORENMBYTES', + 'crypto_box_curve25519xchacha20poly1305_MACBYTES', + 'crypto_box_curve25519xchacha20poly1305_MESSAGEBYTES_MAX', + 'crypto_box_curve25519xchacha20poly1305_NONCEBYTES', + 'crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES', + 'crypto_box_curve25519xchacha20poly1305_SEALBYTES', + 'crypto_box_curve25519xchacha20poly1305_SECRETKEYBYTES', + 'crypto_box_curve25519xchacha20poly1305_SEEDBYTES', + 'crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES', + 'crypto_box_curve25519xsalsa20poly1305_MACBYTES', + 'crypto_box_curve25519xsalsa20poly1305_MESSAGEBYTES_MAX', + 'crypto_box_curve25519xsalsa20poly1305_NONCEBYTES', + 'crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES', + 'crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES', + 'crypto_box_curve25519xsalsa20poly1305_SEEDBYTES', + 'crypto_core_ed25519_BYTES', + 'crypto_core_ed25519_HASHBYTES', + 'crypto_core_ed25519_NONREDUCEDSCALARBYTES', + 'crypto_core_ed25519_SCALARBYTES', + 'crypto_core_ed25519_UNIFORMBYTES', + 'crypto_core_hchacha20_CONSTBYTES', + 'crypto_core_hchacha20_INPUTBYTES', + 'crypto_core_hchacha20_KEYBYTES', + 'crypto_core_hchacha20_OUTPUTBYTES', + 'crypto_core_hsalsa20_CONSTBYTES', + 'crypto_core_hsalsa20_INPUTBYTES', + 'crypto_core_hsalsa20_KEYBYTES', + 'crypto_core_hsalsa20_OUTPUTBYTES', + 'crypto_core_ristretto255_BYTES', + 'crypto_core_ristretto255_HASHBYTES', + 'crypto_core_ristretto255_NONREDUCEDSCALARBYTES', + 'crypto_core_ristretto255_SCALARBYTES', + 'crypto_core_salsa2012_CONSTBYTES', + 'crypto_core_salsa2012_INPUTBYTES', + 'crypto_core_salsa2012_KEYBYTES', + 'crypto_core_salsa2012_OUTPUTBYTES', + 'crypto_core_salsa20_CONSTBYTES', + 'crypto_core_salsa20_INPUTBYTES', + 'crypto_core_salsa20_KEYBYTES', + 'crypto_core_salsa20_OUTPUTBYTES', + 'crypto_generichash_BYTES', + 'crypto_generichash_BYTES_MAX', + 'crypto_generichash_BYTES_MIN', + 'crypto_generichash_KEYBYTES', + 'crypto_generichash_KEYBYTES_MAX', + 'crypto_generichash_KEYBYTES_MIN', + 'crypto_generichash_blake2b_BYTES', + 'crypto_generichash_blake2b_BYTES_MAX', + 'crypto_generichash_blake2b_BYTES_MIN', + 'crypto_generichash_blake2b_KEYBYTES', + 'crypto_generichash_blake2b_KEYBYTES_MAX', + 'crypto_generichash_blake2b_KEYBYTES_MIN', + 'crypto_generichash_blake2b_PERSONALBYTES', + 'crypto_generichash_blake2b_SALTBYTES', + 'crypto_hash_BYTES', + 'crypto_hash_sha256_BYTES', + 'crypto_hash_sha512_BYTES', + 'crypto_kdf_BYTES_MAX', + 'crypto_kdf_BYTES_MIN', + 'crypto_kdf_CONTEXTBYTES', + 'crypto_kdf_KEYBYTES', + 'crypto_kdf_blake2b_BYTES_MAX', + 'crypto_kdf_blake2b_BYTES_MIN', + 'crypto_kdf_blake2b_CONTEXTBYTES', + 'crypto_kdf_blake2b_KEYBYTES', + 'crypto_kx_PUBLICKEYBYTES', + 'crypto_kx_SECRETKEYBYTES', + 'crypto_kx_SEEDBYTES', + 'crypto_kx_SESSIONKEYBYTES', + 'crypto_onetimeauth_BYTES', + 'crypto_onetimeauth_KEYBYTES', + 'crypto_onetimeauth_poly1305_BYTES', + 'crypto_onetimeauth_poly1305_KEYBYTES', + 'crypto_pwhash_ALG_ARGON2I13', + 'crypto_pwhash_ALG_ARGON2ID13', + 'crypto_pwhash_ALG_DEFAULT', + 'crypto_pwhash_BYTES_MAX', + 'crypto_pwhash_BYTES_MIN', + 'crypto_pwhash_MEMLIMIT_INTERACTIVE', + 'crypto_pwhash_MEMLIMIT_MAX', + 'crypto_pwhash_MEMLIMIT_MIN', + 'crypto_pwhash_MEMLIMIT_MODERATE', + 'crypto_pwhash_MEMLIMIT_SENSITIVE', + 'crypto_pwhash_OPSLIMIT_INTERACTIVE', + 'crypto_pwhash_OPSLIMIT_MAX', + 'crypto_pwhash_OPSLIMIT_MIN', + 'crypto_pwhash_OPSLIMIT_MODERATE', + 'crypto_pwhash_OPSLIMIT_SENSITIVE', + 'crypto_pwhash_PASSWD_MAX', + 'crypto_pwhash_PASSWD_MIN', + 'crypto_pwhash_SALTBYTES', + 'crypto_pwhash_STRBYTES', + 'crypto_pwhash_argon2i_BYTES_MAX', + 'crypto_pwhash_argon2i_BYTES_MIN', + 'crypto_pwhash_argon2i_SALTBYTES', + 'crypto_pwhash_argon2i_STRBYTES', + 'crypto_pwhash_argon2id_BYTES_MAX', + 'crypto_pwhash_argon2id_BYTES_MIN', + 'crypto_pwhash_argon2id_SALTBYTES', + 'crypto_pwhash_argon2id_STRBYTES', + 'crypto_pwhash_scryptsalsa208sha256_BYTES_MAX', + 'crypto_pwhash_scryptsalsa208sha256_BYTES_MIN', + 'crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE', + 'crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MAX', + 'crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MIN', + 'crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_SENSITIVE', + 'crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE', + 'crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MAX', + 'crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MIN', + 'crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_SENSITIVE', + 'crypto_pwhash_scryptsalsa208sha256_SALTBYTES', + 'crypto_pwhash_scryptsalsa208sha256_STRBYTES', + 'crypto_scalarmult_BYTES', + 'crypto_scalarmult_SCALARBYTES', + 'crypto_scalarmult_curve25519_BYTES', + 'crypto_scalarmult_curve25519_SCALARBYTES', + 'crypto_scalarmult_ed25519_BYTES', + 'crypto_scalarmult_ed25519_SCALARBYTES', + 'crypto_scalarmult_ristretto255_BYTES', + 'crypto_scalarmult_ristretto255_SCALARBYTES', + 'crypto_secretbox_KEYBYTES', + 'crypto_secretbox_MACBYTES', + 'crypto_secretbox_MESSAGEBYTES_MAX', + 'crypto_secretbox_NONCEBYTES', + 'crypto_secretbox_xchacha20poly1305_KEYBYTES', + 'crypto_secretbox_xchacha20poly1305_MACBYTES', + 'crypto_secretbox_xchacha20poly1305_MESSAGEBYTES_MAX', + 'crypto_secretbox_xchacha20poly1305_NONCEBYTES', + 'crypto_secretbox_xsalsa20poly1305_KEYBYTES', + 'crypto_secretbox_xsalsa20poly1305_MACBYTES', + 'crypto_secretbox_xsalsa20poly1305_MESSAGEBYTES_MAX', + 'crypto_secretbox_xsalsa20poly1305_NONCEBYTES', + 'crypto_secretstream_xchacha20poly1305_ABYTES', + 'crypto_secretstream_xchacha20poly1305_HEADERBYTES', + 'crypto_secretstream_xchacha20poly1305_KEYBYTES', + 'crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX', + 'crypto_secretstream_xchacha20poly1305_TAG_FINAL', + 'crypto_secretstream_xchacha20poly1305_TAG_MESSAGE', + 'crypto_secretstream_xchacha20poly1305_TAG_PUSH', + 'crypto_secretstream_xchacha20poly1305_TAG_REKEY', + 'crypto_shorthash_BYTES', + 'crypto_shorthash_KEYBYTES', + 'crypto_shorthash_siphash24_BYTES', + 'crypto_shorthash_siphash24_KEYBYTES', + 'crypto_shorthash_siphashx24_BYTES', + 'crypto_shorthash_siphashx24_KEYBYTES', + 'crypto_sign_BYTES', + 'crypto_sign_MESSAGEBYTES_MAX', + 'crypto_sign_PUBLICKEYBYTES', + 'crypto_sign_SECRETKEYBYTES', + 'crypto_sign_SEEDBYTES', + 'crypto_sign_ed25519_BYTES', + 'crypto_sign_ed25519_MESSAGEBYTES_MAX', + 'crypto_sign_ed25519_PUBLICKEYBYTES', + 'crypto_sign_ed25519_SECRETKEYBYTES', + 'crypto_sign_ed25519_SEEDBYTES', + 'crypto_stream_KEYBYTES', + 'crypto_stream_MESSAGEBYTES_MAX', + 'crypto_stream_NONCEBYTES', + 'crypto_stream_chacha20_IETF_KEYBYTES', + 'crypto_stream_chacha20_IETF_MESSAGEBYTES_MAX', + 'crypto_stream_chacha20_IETF_NONCEBYTES', + 'crypto_stream_chacha20_KEYBYTES', + 'crypto_stream_chacha20_MESSAGEBYTES_MAX', + 'crypto_stream_chacha20_NONCEBYTES', + 'crypto_stream_chacha20_ietf_KEYBYTES', + 'crypto_stream_chacha20_ietf_MESSAGEBYTES_MAX', + 'crypto_stream_chacha20_ietf_NONCEBYTES', + 'crypto_stream_salsa2012_KEYBYTES', + 'crypto_stream_salsa2012_MESSAGEBYTES_MAX', + 'crypto_stream_salsa2012_NONCEBYTES', + 'crypto_stream_salsa208_KEYBYTES', + 'crypto_stream_salsa208_MESSAGEBYTES_MAX', + 'crypto_stream_salsa208_NONCEBYTES', + 'crypto_stream_salsa20_KEYBYTES', + 'crypto_stream_salsa20_MESSAGEBYTES_MAX', + 'crypto_stream_salsa20_NONCEBYTES', + 'crypto_stream_xchacha20_KEYBYTES', + 'crypto_stream_xchacha20_MESSAGEBYTES_MAX', + 'crypto_stream_xchacha20_NONCEBYTES', + 'crypto_stream_xsalsa20_KEYBYTES', + 'crypto_stream_xsalsa20_MESSAGEBYTES_MAX', + 'crypto_stream_xsalsa20_NONCEBYTES', + 'crypto_verify_16_BYTES', + 'crypto_verify_32_BYTES', + 'crypto_verify_64_BYTES' + ] + for (_ = 0; _ < s.length; _++) + 'function' == typeof (c = t['_' + s[_].toLowerCase()]) && (e[s[_]] = c()) + var n = [ + 'SODIUM_VERSION_STRING', + 'crypto_pwhash_STRPREFIX', + 'crypto_pwhash_scryptsalsa208sha256_STRPREFIX' + ] + for (_ = 0; _ < n.length; _++) { + var c + 'function' == typeof (c = t['_' + n[_].toLowerCase()]) && + (e[n[_]] = t.UTF8ToString(c())) + } + } + t = r + try { + a() + var _ = new Uint8Array([98, 97, 108, 108, 115]), + s = e.randombytes_buf(e.crypto_secretbox_NONCEBYTES), + n = e.randombytes_buf(e.crypto_secretbox_KEYBYTES), + c = e.crypto_secretbox_easy(_, s, n), + o = e.crypto_secretbox_open_easy(c, s, n) + if (e.memcmp(_, o)) return + } catch (e) { + if (null == t.useBackupModule) + throw new Error('Both wasm and asm failed to load' + e) + } + t.useBackupModule(), a() + }) + function _(e) { + if ('function' == typeof TextEncoder) return new TextEncoder().encode(e) + e = unescape(encodeURIComponent(e)) + for (var r = new Uint8Array(e.length), t = 0, a = e.length; t < a; t++) + r[t] = e.charCodeAt(t) + return r + } + function s(e) { + if ('function' == typeof TextDecoder) + return new TextDecoder('utf-8', { fatal: !0 }).decode(e) + var r = 8192, + t = Math.ceil(e.length / r) + if (t <= 1) + try { + return decodeURIComponent(escape(String.fromCharCode.apply(null, e))) + } catch (e) { + throw new TypeError('The encoded data was not valid.') + } + for (var a = '', _ = 0, n = 0; n < t; n++) { + var c = Array.prototype.slice.call(e, n * r + _, (n + 1) * r + _) + if (0 != c.length) { + var o, + h = c.length, + p = 0 + do { + var y = c[--h] + y >= 240 + ? ((p = 4), (o = !0)) + : y >= 224 + ? ((p = 3), (o = !0)) + : y >= 192 + ? ((p = 2), (o = !0)) + : y < 128 && ((p = 1), (o = !0)) + } while (!o) + for (var i = p - (c.length - h), l = 0; l < i; l++) _--, c.pop() + a += s(c) + } + } + return a + } + function n(e) { + e = m(null, e, 'input') + for (var r, t, a, _ = '', s = 0; s < e.length; s++) + (a = + ((87 + (t = 15 & e[s]) + (((t - 10) >> 8) & -39)) << 8) | + (87 + (r = e[s] >>> 4) + (((r - 10) >> 8) & -39))), + (_ += String.fromCharCode(255 & a) + String.fromCharCode(a >>> 8)) + return _ + } + var c = { ORIGINAL: 1, ORIGINAL_NO_PADDING: 3, URLSAFE: 5, URLSAFE_NO_PADDING: 7 } + function o(e) { + if (null == e) return c.URLSAFE_NO_PADDING + if ( + e !== c.ORIGINAL && + e !== c.ORIGINAL_NO_PADDING && + e !== c.URLSAFE && + e != c.URLSAFE_NO_PADDING + ) + throw new Error('unsupported base64 variant') + return e + } + function h(e, r) { + ;(r = o(r)), (e = m(_, e, 'input')) + var a, + _ = [], + n = 0 | Math.floor(e.length / 3), + c = e.length - 3 * n, + h = 4 * n + (0 !== c ? (0 == (2 & r) ? 4 : 2 + (c >>> 1)) : 0), + p = new l(h + 1), + y = u(e) + return ( + _.push(y), + _.push(p.address), + 0 === t._sodium_bin2base64(p.address, p.length, y, e.length, r) && + g(_, 'conversion failed'), + (p.length = h), + (a = s(p.to_Uint8Array())), + v(_), + a + ) + } + function p(e, r) { + var t = r || 'uint8array' + if (!y(t)) throw new Error(t + ' output format is not available') + if (e instanceof l) { + if ('uint8array' === t) return e.to_Uint8Array() + if ('text' === t) return s(e.to_Uint8Array()) + if ('hex' === t) return n(e.to_Uint8Array()) + if ('base64' === t) return h(e.to_Uint8Array(), c.URLSAFE_NO_PADDING) + throw new Error('What is output format "' + t + '"?') + } + if ('object' == typeof e) { + for (var a = Object.keys(e), _ = {}, o = 0; o < a.length; o++) + _[a[o]] = p(e[a[o]], t) + return _ + } + if ('string' == typeof e) return e + throw new TypeError('Cannot format output') + } + function y(e) { + for (var r = ['uint8array', 'text', 'hex', 'base64'], t = 0; t < r.length; t++) + if (r[t] === e) return !0 + return !1 + } + function i(e) { + if (e) { + if ('string' != typeof e) + throw new TypeError('When defined, the output format must be a string') + if (!y(e)) throw new Error(e + ' is not a supported output format') + } + } + function l(e) { + ;(this.length = e), (this.address = d(e)) + } + function u(e) { + var r = d(e.length) + return t.HEAPU8.set(e, r), r + } + function d(e) { + var r = t._malloc(e) + if (0 === r) throw { message: '_malloc() failed', length: e } + return r + } + function v(e) { + if (e) for (var r = 0; r < e.length; r++) (a = e[r]), t._free(a) + var a + } + function g(e, r) { + throw (v(e), new Error(r)) + } + function b(e, r) { + throw (v(e), new TypeError(r)) + } + function f(e, r, t) { + null == r && b(e, t + ' cannot be null or undefined') + } + function m(e, r, t) { + return ( + f(e, r, t), + r instanceof Uint8Array + ? r + : 'string' == typeof r + ? _(r) + : void b(e, 'unsupported input type for ' + t) + ) + } + function E(e, r, a, _, s, n) { + var c = [] + i(n) + var o = null + null != e && ((o = u((e = m(c, e, 'secret_nonce')))), e.length, c.push(o)), + (r = m(c, r, 'ciphertext')) + var h, + y = t._crypto_aead_chacha20poly1305_abytes(), + d = r.length + d < y && b(c, 'ciphertext is too short'), (h = u(r)), c.push(h) + var f = null, + E = 0 + null != a && ((f = u((a = m(c, a, 'additional_data')))), (E = a.length), c.push(f)), + (_ = m(c, _, 'public_nonce')) + var x, + k = 0 | t._crypto_aead_chacha20poly1305_npubbytes() + _.length !== k && b(c, 'invalid public_nonce length'), + (x = u(_)), + c.push(x), + (s = m(c, s, 'key')) + var S, + T = 0 | t._crypto_aead_chacha20poly1305_keybytes() + s.length !== T && b(c, 'invalid key length'), (S = u(s)), c.push(S) + var w = new l((d - t._crypto_aead_chacha20poly1305_abytes()) | 0), + Y = w.address + if ( + (c.push(Y), + 0 === t._crypto_aead_chacha20poly1305_decrypt(Y, null, o, h, d, 0, f, E, 0, x, S)) + ) { + var B = p(w, n) + return v(c), B + } + g(c, 'ciphertext cannot be decrypted using that key') + } + function x(e, r, a, _, s, n, c) { + var o = [] + i(c) + var h = null + null != e && ((h = u((e = m(o, e, 'secret_nonce')))), e.length, o.push(h)) + var y = u((r = m(o, r, 'ciphertext'))), + d = r.length + o.push(y), (a = m(o, a, 'mac')) + var f, + E = 0 | t._crypto_box_macbytes() + a.length !== E && b(o, 'invalid mac length'), (f = u(a)), o.push(f) + var x = null, + k = 0 + null != _ && ((x = u((_ = m(o, _, 'additional_data')))), (k = _.length), o.push(x)), + (s = m(o, s, 'public_nonce')) + var S, + T = 0 | t._crypto_aead_chacha20poly1305_npubbytes() + s.length !== T && b(o, 'invalid public_nonce length'), + (S = u(s)), + o.push(S), + (n = m(o, n, 'key')) + var w, + Y = 0 | t._crypto_aead_chacha20poly1305_keybytes() + n.length !== Y && b(o, 'invalid key length'), (w = u(n)), o.push(w) + var B = new l(0 | d), + A = B.address + if ( + (o.push(A), + 0 === + t._crypto_aead_chacha20poly1305_decrypt_detached( + A, + h, + y, + d, + 0, + f, + x, + k, + 0, + S, + w + )) + ) { + var K = p(B, c) + return v(o), K + } + g(o, 'ciphertext cannot be decrypted using that key') + } + function k(e, r, a, _, s, n) { + var c = [] + i(n) + var o = u((e = m(c, e, 'message'))), + h = e.length + c.push(o) + var y = null, + d = 0 + null != r && ((y = u((r = m(c, r, 'additional_data')))), (d = r.length), c.push(y)) + var f = null + null != a && ((f = u((a = m(c, a, 'secret_nonce')))), a.length, c.push(f)), + (_ = m(c, _, 'public_nonce')) + var E, + x = 0 | t._crypto_aead_chacha20poly1305_npubbytes() + _.length !== x && b(c, 'invalid public_nonce length'), + (E = u(_)), + c.push(E), + (s = m(c, s, 'key')) + var k, + S = 0 | t._crypto_aead_chacha20poly1305_keybytes() + s.length !== S && b(c, 'invalid key length'), (k = u(s)), c.push(k) + var T = new l((h + t._crypto_aead_chacha20poly1305_abytes()) | 0), + w = T.address + if ( + (c.push(w), + 0 === t._crypto_aead_chacha20poly1305_encrypt(w, null, o, h, 0, y, d, 0, f, E, k)) + ) { + var Y = p(T, n) + return v(c), Y + } + g(c, 'invalid usage') + } + function S(e, r, a, _, s, n) { + var c = [] + i(n) + var o = u((e = m(c, e, 'message'))), + h = e.length + c.push(o) + var y = null, + d = 0 + null != r && ((y = u((r = m(c, r, 'additional_data')))), (d = r.length), c.push(y)) + var f = null + null != a && ((f = u((a = m(c, a, 'secret_nonce')))), a.length, c.push(f)), + (_ = m(c, _, 'public_nonce')) + var E, + x = 0 | t._crypto_aead_chacha20poly1305_npubbytes() + _.length !== x && b(c, 'invalid public_nonce length'), + (E = u(_)), + c.push(E), + (s = m(c, s, 'key')) + var k, + S = 0 | t._crypto_aead_chacha20poly1305_keybytes() + s.length !== S && b(c, 'invalid key length'), (k = u(s)), c.push(k) + var T = new l(0 | h), + w = T.address + c.push(w) + var Y = new l(0 | t._crypto_aead_chacha20poly1305_abytes()), + B = Y.address + if ( + (c.push(B), + 0 === + t._crypto_aead_chacha20poly1305_encrypt_detached( + w, + B, + null, + o, + h, + 0, + y, + d, + 0, + f, + E, + k + )) + ) { + var A = p({ ciphertext: T, mac: Y }, n) + return v(c), A + } + g(c, 'invalid usage') + } + function T(e, r, a, _, s, n) { + var c = [] + i(n) + var o = null + null != e && ((o = u((e = m(c, e, 'secret_nonce')))), e.length, c.push(o)), + (r = m(c, r, 'ciphertext')) + var h, + y = t._crypto_aead_chacha20poly1305_ietf_abytes(), + d = r.length + d < y && b(c, 'ciphertext is too short'), (h = u(r)), c.push(h) + var f = null, + E = 0 + null != a && ((f = u((a = m(c, a, 'additional_data')))), (E = a.length), c.push(f)), + (_ = m(c, _, 'public_nonce')) + var x, + k = 0 | t._crypto_aead_chacha20poly1305_ietf_npubbytes() + _.length !== k && b(c, 'invalid public_nonce length'), + (x = u(_)), + c.push(x), + (s = m(c, s, 'key')) + var S, + T = 0 | t._crypto_aead_chacha20poly1305_ietf_keybytes() + s.length !== T && b(c, 'invalid key length'), (S = u(s)), c.push(S) + var w = new l((d - t._crypto_aead_chacha20poly1305_ietf_abytes()) | 0), + Y = w.address + if ( + (c.push(Y), + 0 === + t._crypto_aead_chacha20poly1305_ietf_decrypt( + Y, + null, + o, + h, + d, + 0, + f, + E, + 0, + x, + S + )) + ) { + var B = p(w, n) + return v(c), B + } + g(c, 'ciphertext cannot be decrypted using that key') + } + function w(e, r, a, _, s, n, c) { + var o = [] + i(c) + var h = null + null != e && ((h = u((e = m(o, e, 'secret_nonce')))), e.length, o.push(h)) + var y = u((r = m(o, r, 'ciphertext'))), + d = r.length + o.push(y), (a = m(o, a, 'mac')) + var f, + E = 0 | t._crypto_box_macbytes() + a.length !== E && b(o, 'invalid mac length'), (f = u(a)), o.push(f) + var x = null, + k = 0 + null != _ && ((x = u((_ = m(o, _, 'additional_data')))), (k = _.length), o.push(x)), + (s = m(o, s, 'public_nonce')) + var S, + T = 0 | t._crypto_aead_chacha20poly1305_ietf_npubbytes() + s.length !== T && b(o, 'invalid public_nonce length'), + (S = u(s)), + o.push(S), + (n = m(o, n, 'key')) + var w, + Y = 0 | t._crypto_aead_chacha20poly1305_ietf_keybytes() + n.length !== Y && b(o, 'invalid key length'), (w = u(n)), o.push(w) + var B = new l(0 | d), + A = B.address + if ( + (o.push(A), + 0 === + t._crypto_aead_chacha20poly1305_ietf_decrypt_detached( + A, + h, + y, + d, + 0, + f, + x, + k, + 0, + S, + w + )) + ) { + var K = p(B, c) + return v(o), K + } + g(o, 'ciphertext cannot be decrypted using that key') + } + function Y(e, r, a, _, s, n) { + var c = [] + i(n) + var o = u((e = m(c, e, 'message'))), + h = e.length + c.push(o) + var y = null, + d = 0 + null != r && ((y = u((r = m(c, r, 'additional_data')))), (d = r.length), c.push(y)) + var f = null + null != a && ((f = u((a = m(c, a, 'secret_nonce')))), a.length, c.push(f)), + (_ = m(c, _, 'public_nonce')) + var E, + x = 0 | t._crypto_aead_chacha20poly1305_ietf_npubbytes() + _.length !== x && b(c, 'invalid public_nonce length'), + (E = u(_)), + c.push(E), + (s = m(c, s, 'key')) + var k, + S = 0 | t._crypto_aead_chacha20poly1305_ietf_keybytes() + s.length !== S && b(c, 'invalid key length'), (k = u(s)), c.push(k) + var T = new l((h + t._crypto_aead_chacha20poly1305_ietf_abytes()) | 0), + w = T.address + if ( + (c.push(w), + 0 === + t._crypto_aead_chacha20poly1305_ietf_encrypt( + w, + null, + o, + h, + 0, + y, + d, + 0, + f, + E, + k + )) + ) { + var Y = p(T, n) + return v(c), Y + } + g(c, 'invalid usage') + } + function B(e, r, a, _, s, n) { + var c = [] + i(n) + var o = u((e = m(c, e, 'message'))), + h = e.length + c.push(o) + var y = null, + d = 0 + null != r && ((y = u((r = m(c, r, 'additional_data')))), (d = r.length), c.push(y)) + var f = null + null != a && ((f = u((a = m(c, a, 'secret_nonce')))), a.length, c.push(f)), + (_ = m(c, _, 'public_nonce')) + var E, + x = 0 | t._crypto_aead_chacha20poly1305_ietf_npubbytes() + _.length !== x && b(c, 'invalid public_nonce length'), + (E = u(_)), + c.push(E), + (s = m(c, s, 'key')) + var k, + S = 0 | t._crypto_aead_chacha20poly1305_ietf_keybytes() + s.length !== S && b(c, 'invalid key length'), (k = u(s)), c.push(k) + var T = new l(0 | h), + w = T.address + c.push(w) + var Y = new l(0 | t._crypto_aead_chacha20poly1305_ietf_abytes()), + B = Y.address + if ( + (c.push(B), + 0 === + t._crypto_aead_chacha20poly1305_ietf_encrypt_detached( + w, + B, + null, + o, + h, + 0, + y, + d, + 0, + f, + E, + k + )) + ) { + var A = p({ ciphertext: T, mac: Y }, n) + return v(c), A + } + g(c, 'invalid usage') + } + function A(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_aead_chacha20poly1305_ietf_keybytes()), + _ = a.address + r.push(_), t._crypto_aead_chacha20poly1305_ietf_keygen(_) + var s = p(a, e) + return v(r), s + } + function K(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_aead_chacha20poly1305_keybytes()), + _ = a.address + r.push(_), t._crypto_aead_chacha20poly1305_keygen(_) + var s = p(a, e) + return v(r), s + } + function M(e, r, a, _, s, n) { + var c = [] + i(n) + var o = null + null != e && ((o = u((e = m(c, e, 'secret_nonce')))), e.length, c.push(o)), + (r = m(c, r, 'ciphertext')) + var h, + y = t._crypto_aead_xchacha20poly1305_ietf_abytes(), + d = r.length + d < y && b(c, 'ciphertext is too short'), (h = u(r)), c.push(h) + var f = null, + E = 0 + null != a && ((f = u((a = m(c, a, 'additional_data')))), (E = a.length), c.push(f)), + (_ = m(c, _, 'public_nonce')) + var x, + k = 0 | t._crypto_aead_xchacha20poly1305_ietf_npubbytes() + _.length !== k && b(c, 'invalid public_nonce length'), + (x = u(_)), + c.push(x), + (s = m(c, s, 'key')) + var S, + T = 0 | t._crypto_aead_xchacha20poly1305_ietf_keybytes() + s.length !== T && b(c, 'invalid key length'), (S = u(s)), c.push(S) + var w = new l((d - t._crypto_aead_xchacha20poly1305_ietf_abytes()) | 0), + Y = w.address + if ( + (c.push(Y), + 0 === + t._crypto_aead_xchacha20poly1305_ietf_decrypt( + Y, + null, + o, + h, + d, + 0, + f, + E, + 0, + x, + S + )) + ) { + var B = p(w, n) + return v(c), B + } + g(c, 'ciphertext cannot be decrypted using that key') + } + function I(e, r, a, _, s, n, c) { + var o = [] + i(c) + var h = null + null != e && ((h = u((e = m(o, e, 'secret_nonce')))), e.length, o.push(h)) + var y = u((r = m(o, r, 'ciphertext'))), + d = r.length + o.push(y), (a = m(o, a, 'mac')) + var f, + E = 0 | t._crypto_box_macbytes() + a.length !== E && b(o, 'invalid mac length'), (f = u(a)), o.push(f) + var x = null, + k = 0 + null != _ && ((x = u((_ = m(o, _, 'additional_data')))), (k = _.length), o.push(x)), + (s = m(o, s, 'public_nonce')) + var S, + T = 0 | t._crypto_aead_xchacha20poly1305_ietf_npubbytes() + s.length !== T && b(o, 'invalid public_nonce length'), + (S = u(s)), + o.push(S), + (n = m(o, n, 'key')) + var w, + Y = 0 | t._crypto_aead_xchacha20poly1305_ietf_keybytes() + n.length !== Y && b(o, 'invalid key length'), (w = u(n)), o.push(w) + var B = new l(0 | d), + A = B.address + if ( + (o.push(A), + 0 === + t._crypto_aead_xchacha20poly1305_ietf_decrypt_detached( + A, + h, + y, + d, + 0, + f, + x, + k, + 0, + S, + w + )) + ) { + var K = p(B, c) + return v(o), K + } + g(o, 'ciphertext cannot be decrypted using that key') + } + function N(e, r, a, _, s, n) { + var c = [] + i(n) + var o = u((e = m(c, e, 'message'))), + h = e.length + c.push(o) + var y = null, + d = 0 + null != r && ((y = u((r = m(c, r, 'additional_data')))), (d = r.length), c.push(y)) + var f = null + null != a && ((f = u((a = m(c, a, 'secret_nonce')))), a.length, c.push(f)), + (_ = m(c, _, 'public_nonce')) + var E, + x = 0 | t._crypto_aead_xchacha20poly1305_ietf_npubbytes() + _.length !== x && b(c, 'invalid public_nonce length'), + (E = u(_)), + c.push(E), + (s = m(c, s, 'key')) + var k, + S = 0 | t._crypto_aead_xchacha20poly1305_ietf_keybytes() + s.length !== S && b(c, 'invalid key length'), (k = u(s)), c.push(k) + var T = new l((h + t._crypto_aead_xchacha20poly1305_ietf_abytes()) | 0), + w = T.address + if ( + (c.push(w), + 0 === + t._crypto_aead_xchacha20poly1305_ietf_encrypt( + w, + null, + o, + h, + 0, + y, + d, + 0, + f, + E, + k + )) + ) { + var Y = p(T, n) + return v(c), Y + } + g(c, 'invalid usage') + } + function L(e, r, a, _, s, n) { + var c = [] + i(n) + var o = u((e = m(c, e, 'message'))), + h = e.length + c.push(o) + var y = null, + d = 0 + null != r && ((y = u((r = m(c, r, 'additional_data')))), (d = r.length), c.push(y)) + var f = null + null != a && ((f = u((a = m(c, a, 'secret_nonce')))), a.length, c.push(f)), + (_ = m(c, _, 'public_nonce')) + var E, + x = 0 | t._crypto_aead_xchacha20poly1305_ietf_npubbytes() + _.length !== x && b(c, 'invalid public_nonce length'), + (E = u(_)), + c.push(E), + (s = m(c, s, 'key')) + var k, + S = 0 | t._crypto_aead_xchacha20poly1305_ietf_keybytes() + s.length !== S && b(c, 'invalid key length'), (k = u(s)), c.push(k) + var T = new l(0 | h), + w = T.address + c.push(w) + var Y = new l(0 | t._crypto_aead_xchacha20poly1305_ietf_abytes()), + B = Y.address + if ( + (c.push(B), + 0 === + t._crypto_aead_xchacha20poly1305_ietf_encrypt_detached( + w, + B, + null, + o, + h, + 0, + y, + d, + 0, + f, + E, + k + )) + ) { + var A = p({ ciphertext: T, mac: Y }, n) + return v(c), A + } + g(c, 'invalid usage') + } + function U(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_aead_xchacha20poly1305_ietf_keybytes()), + _ = a.address + r.push(_), t._crypto_aead_xchacha20poly1305_ietf_keygen(_) + var s = p(a, e) + return v(r), s + } + function O(e, r, a) { + var _ = [] + i(a) + var s = u((e = m(_, e, 'message'))), + n = e.length + _.push(s), (r = m(_, r, 'key')) + var c, + o = 0 | t._crypto_auth_keybytes() + r.length !== o && b(_, 'invalid key length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_auth_bytes()), + y = h.address + if ((_.push(y), 0 == (0 | t._crypto_auth(y, s, n, 0, c)))) { + var d = p(h, a) + return v(_), d + } + g(_, 'invalid usage') + } + function C(e, r, a) { + var _ = [] + i(a) + var s = u((e = m(_, e, 'message'))), + n = e.length + _.push(s), (r = m(_, r, 'key')) + var c, + o = 0 | t._crypto_auth_hmacsha256_keybytes() + r.length !== o && b(_, 'invalid key length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_auth_hmacsha256_bytes()), + y = h.address + if ((_.push(y), 0 == (0 | t._crypto_auth_hmacsha256(y, s, n, 0, c)))) { + var d = p(h, a) + return v(_), d + } + g(_, 'invalid usage') + } + function R(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_auth_hmacsha256_keybytes()), + _ = a.address + r.push(_), t._crypto_auth_hmacsha256_keygen(_) + var s = p(a, e) + return v(r), s + } + function P(e, r, a) { + var _ = [] + e = m(_, e, 'tag') + var s, + n = 0 | t._crypto_auth_hmacsha256_bytes() + e.length !== n && b(_, 'invalid tag length'), (s = u(e)), _.push(s) + var c = u((r = m(_, r, 'message'))), + o = r.length + _.push(c), (a = m(_, a, 'key')) + var h, + p = 0 | t._crypto_auth_hmacsha256_keybytes() + a.length !== p && b(_, 'invalid key length'), (h = u(a)), _.push(h) + var y = 0 == (0 | t._crypto_auth_hmacsha256_verify(s, c, o, 0, h)) + return v(_), y + } + function G(e, r, a) { + var _ = [] + i(a) + var s = u((e = m(_, e, 'message'))), + n = e.length + _.push(s), (r = m(_, r, 'key')) + var c, + o = 0 | t._crypto_auth_hmacsha512_keybytes() + r.length !== o && b(_, 'invalid key length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_auth_hmacsha512_bytes()), + y = h.address + if ((_.push(y), 0 == (0 | t._crypto_auth_hmacsha512(y, s, n, 0, c)))) { + var d = p(h, a) + return v(_), d + } + g(_, 'invalid usage') + } + function X(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_auth_hmacsha512_keybytes()), + _ = a.address + r.push(_), t._crypto_auth_hmacsha512_keygen(_) + var s = p(a, e) + return v(r), s + } + function D(e, r, a) { + var _ = [] + e = m(_, e, 'tag') + var s, + n = 0 | t._crypto_auth_hmacsha512_bytes() + e.length !== n && b(_, 'invalid tag length'), (s = u(e)), _.push(s) + var c = u((r = m(_, r, 'message'))), + o = r.length + _.push(c), (a = m(_, a, 'key')) + var h, + p = 0 | t._crypto_auth_hmacsha512_keybytes() + a.length !== p && b(_, 'invalid key length'), (h = u(a)), _.push(h) + var y = 0 == (0 | t._crypto_auth_hmacsha512_verify(s, c, o, 0, h)) + return v(_), y + } + function F(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_auth_keybytes()), + _ = a.address + r.push(_), t._crypto_auth_keygen(_) + var s = p(a, e) + return v(r), s + } + function V(e, r, a) { + var _ = [] + e = m(_, e, 'tag') + var s, + n = 0 | t._crypto_auth_bytes() + e.length !== n && b(_, 'invalid tag length'), (s = u(e)), _.push(s) + var c = u((r = m(_, r, 'message'))), + o = r.length + _.push(c), (a = m(_, a, 'key')) + var h, + p = 0 | t._crypto_auth_keybytes() + a.length !== p && b(_, 'invalid key length'), (h = u(a)), _.push(h) + var y = 0 == (0 | t._crypto_auth_verify(s, c, o, 0, h)) + return v(_), y + } + function H(e, r, a) { + var _ = [] + i(a), (e = m(_, e, 'publicKey')) + var s, + n = 0 | t._crypto_box_publickeybytes() + e.length !== n && b(_, 'invalid publicKey length'), + (s = u(e)), + _.push(s), + (r = m(_, r, 'privateKey')) + var c, + o = 0 | t._crypto_box_secretkeybytes() + r.length !== o && b(_, 'invalid privateKey length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_box_beforenmbytes()), + y = h.address + if ((_.push(y), 0 == (0 | t._crypto_box_beforenm(y, s, c)))) { + var d = p(h, a) + return v(_), d + } + g(_, 'invalid usage') + } + function q(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_box_curve25519xchacha20poly1305_publickeybytes()), + _ = a.address + r.push(_) + var s = new l(0 | t._crypto_box_curve25519xchacha20poly1305_secretkeybytes()), + n = s.address + r.push(n), t._crypto_box_curve25519xchacha20poly1305_keypair(_, n) + var c = p({ publicKey: a, privateKey: s, keyType: 'curve25519' }, e) + return v(r), c + } + function j(e, r, a) { + var _ = [] + i(a) + var s = u((e = m(_, e, 'message'))), + n = e.length + _.push(s), (r = m(_, r, 'publicKey')) + var c, + o = 0 | t._crypto_box_curve25519xchacha20poly1305_publickeybytes() + r.length !== o && b(_, 'invalid publicKey length'), (c = u(r)), _.push(c) + var h = new l((n + t._crypto_box_curve25519xchacha20poly1305_sealbytes()) | 0), + y = h.address + _.push(y), t._crypto_box_curve25519xchacha20poly1305_seal(y, s, n, 0, c) + var d = p(h, a) + return v(_), d + } + function z(e, r, a, _) { + var s = [] + i(_), (e = m(s, e, 'ciphertext')) + var n, + c = t._crypto_box_curve25519xchacha20poly1305_sealbytes(), + o = e.length + o < c && b(s, 'ciphertext is too short'), + (n = u(e)), + s.push(n), + (r = m(s, r, 'publicKey')) + var h, + y = 0 | t._crypto_box_curve25519xchacha20poly1305_publickeybytes() + r.length !== y && b(s, 'invalid publicKey length'), + (h = u(r)), + s.push(h), + (a = m(s, a, 'secretKey')) + var d, + g = 0 | t._crypto_box_curve25519xchacha20poly1305_secretkeybytes() + a.length !== g && b(s, 'invalid secretKey length'), (d = u(a)), s.push(d) + var f = new l((o - t._crypto_box_curve25519xchacha20poly1305_sealbytes()) | 0), + E = f.address + s.push(E), t._crypto_box_curve25519xchacha20poly1305_seal_open(E, n, o, 0, h, d) + var x = p(f, _) + return v(s), x + } + function W(e, r, a, _, s) { + var n = [] + i(s) + var c = u((e = m(n, e, 'message'))), + o = e.length + n.push(c), (r = m(n, r, 'nonce')) + var h, + y = 0 | t._crypto_box_noncebytes() + r.length !== y && b(n, 'invalid nonce length'), + (h = u(r)), + n.push(h), + (a = m(n, a, 'publicKey')) + var d, + f = 0 | t._crypto_box_publickeybytes() + a.length !== f && b(n, 'invalid publicKey length'), + (d = u(a)), + n.push(d), + (_ = m(n, _, 'privateKey')) + var E, + x = 0 | t._crypto_box_secretkeybytes() + _.length !== x && b(n, 'invalid privateKey length'), (E = u(_)), n.push(E) + var k = new l(0 | o), + S = k.address + n.push(S) + var T = new l(0 | t._crypto_box_macbytes()), + w = T.address + if ((n.push(w), 0 == (0 | t._crypto_box_detached(S, w, c, o, 0, h, d, E)))) { + var Y = p({ ciphertext: k, mac: T }, s) + return v(n), Y + } + g(n, 'invalid usage') + } + function J(e, r, a, _, s) { + var n = [] + i(s) + var c = u((e = m(n, e, 'message'))), + o = e.length + n.push(c), (r = m(n, r, 'nonce')) + var h, + y = 0 | t._crypto_box_noncebytes() + r.length !== y && b(n, 'invalid nonce length'), + (h = u(r)), + n.push(h), + (a = m(n, a, 'publicKey')) + var d, + f = 0 | t._crypto_box_publickeybytes() + a.length !== f && b(n, 'invalid publicKey length'), + (d = u(a)), + n.push(d), + (_ = m(n, _, 'privateKey')) + var E, + x = 0 | t._crypto_box_secretkeybytes() + _.length !== x && b(n, 'invalid privateKey length'), (E = u(_)), n.push(E) + var k = new l((o + t._crypto_box_macbytes()) | 0), + S = k.address + if ((n.push(S), 0 == (0 | t._crypto_box_easy(S, c, o, 0, h, d, E)))) { + var T = p(k, s) + return v(n), T + } + g(n, 'invalid usage') + } + function Q(e, r, a, _) { + var s = [] + i(_) + var n = u((e = m(s, e, 'message'))), + c = e.length + s.push(n), (r = m(s, r, 'nonce')) + var o, + h = 0 | t._crypto_box_noncebytes() + r.length !== h && b(s, 'invalid nonce length'), + (o = u(r)), + s.push(o), + (a = m(s, a, 'sharedKey')) + var y, + d = 0 | t._crypto_box_beforenmbytes() + a.length !== d && b(s, 'invalid sharedKey length'), (y = u(a)), s.push(y) + var f = new l((c + t._crypto_box_macbytes()) | 0), + E = f.address + if ((s.push(E), 0 == (0 | t._crypto_box_easy_afternm(E, n, c, 0, o, y)))) { + var x = p(f, _) + return v(s), x + } + g(s, 'invalid usage') + } + function Z(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_box_publickeybytes()), + _ = a.address + r.push(_) + var s = new l(0 | t._crypto_box_secretkeybytes()), + n = s.address + if ((r.push(n), 0 == (0 | t._crypto_box_keypair(_, n)))) { + var c = { publicKey: p(a, e), privateKey: p(s, e), keyType: 'x25519' } + return v(r), c + } + g(r, 'internal error') + } + function $(e, r, a, _, s, n) { + var c = [] + i(n) + var o = u((e = m(c, e, 'ciphertext'))), + h = e.length + c.push(o), (r = m(c, r, 'mac')) + var y, + d = 0 | t._crypto_box_macbytes() + r.length !== d && b(c, 'invalid mac length'), + (y = u(r)), + c.push(y), + (a = m(c, a, 'nonce')) + var f, + E = 0 | t._crypto_box_noncebytes() + a.length !== E && b(c, 'invalid nonce length'), + (f = u(a)), + c.push(f), + (_ = m(c, _, 'publicKey')) + var x, + k = 0 | t._crypto_box_publickeybytes() + _.length !== k && b(c, 'invalid publicKey length'), + (x = u(_)), + c.push(x), + (s = m(c, s, 'privateKey')) + var S, + T = 0 | t._crypto_box_secretkeybytes() + s.length !== T && b(c, 'invalid privateKey length'), (S = u(s)), c.push(S) + var w = new l(0 | h), + Y = w.address + if ((c.push(Y), 0 == (0 | t._crypto_box_open_detached(Y, o, y, h, 0, f, x, S)))) { + var B = p(w, n) + return v(c), B + } + g(c, 'incorrect key pair for the given ciphertext') + } + function ee(e, r, a, _, s) { + var n = [] + i(s), (e = m(n, e, 'ciphertext')) + var c, + o = t._crypto_box_macbytes(), + h = e.length + h < o && b(n, 'ciphertext is too short'), + (c = u(e)), + n.push(c), + (r = m(n, r, 'nonce')) + var y, + d = 0 | t._crypto_box_noncebytes() + r.length !== d && b(n, 'invalid nonce length'), + (y = u(r)), + n.push(y), + (a = m(n, a, 'publicKey')) + var f, + E = 0 | t._crypto_box_publickeybytes() + a.length !== E && b(n, 'invalid publicKey length'), + (f = u(a)), + n.push(f), + (_ = m(n, _, 'privateKey')) + var x, + k = 0 | t._crypto_box_secretkeybytes() + _.length !== k && b(n, 'invalid privateKey length'), (x = u(_)), n.push(x) + var S = new l((h - t._crypto_box_macbytes()) | 0), + T = S.address + if ((n.push(T), 0 == (0 | t._crypto_box_open_easy(T, c, h, 0, y, f, x)))) { + var w = p(S, s) + return v(n), w + } + g(n, 'incorrect key pair for the given ciphertext') + } + function re(e, r, a, _) { + var s = [] + i(_) + var n = u((e = m(s, e, 'ciphertext'))), + c = e.length + s.push(n), (r = m(s, r, 'nonce')) + var o, + h = 0 | t._crypto_box_noncebytes() + r.length !== h && b(s, 'invalid nonce length'), + (o = u(r)), + s.push(o), + (a = m(s, a, 'sharedKey')) + var y, + d = 0 | t._crypto_box_beforenmbytes() + a.length !== d && b(s, 'invalid sharedKey length'), (y = u(a)), s.push(y) + var f = new l((c - t._crypto_box_macbytes()) | 0), + E = f.address + if ((s.push(E), 0 == (0 | t._crypto_box_open_easy_afternm(E, n, c, 0, o, y)))) { + var x = p(f, _) + return v(s), x + } + g(s, 'incorrect secret key for the given ciphertext') + } + function te(e, r, a) { + var _ = [] + i(a) + var s = u((e = m(_, e, 'message'))), + n = e.length + _.push(s), (r = m(_, r, 'publicKey')) + var c, + o = 0 | t._crypto_box_publickeybytes() + r.length !== o && b(_, 'invalid publicKey length'), (c = u(r)), _.push(c) + var h = new l((n + t._crypto_box_sealbytes()) | 0), + y = h.address + if ((_.push(y), 0 == (0 | t._crypto_box_seal(y, s, n, 0, c)))) { + var d = p(h, a) + return v(_), d + } + g(_, 'invalid usage') + } + function ae(e, r, a, _) { + var s = [] + i(_), (e = m(s, e, 'ciphertext')) + var n, + c = t._crypto_box_sealbytes(), + o = e.length + o < c && b(s, 'ciphertext is too short'), + (n = u(e)), + s.push(n), + (r = m(s, r, 'publicKey')) + var h, + y = 0 | t._crypto_box_publickeybytes() + r.length !== y && b(s, 'invalid publicKey length'), + (h = u(r)), + s.push(h), + (a = m(s, a, 'privateKey')) + var d, + f = 0 | t._crypto_box_secretkeybytes() + a.length !== f && b(s, 'invalid privateKey length'), (d = u(a)), s.push(d) + var E = new l((o - t._crypto_box_sealbytes()) | 0), + x = E.address + if ((s.push(x), 0 == (0 | t._crypto_box_seal_open(x, n, o, 0, h, d)))) { + var k = p(E, _) + return v(s), k + } + g(s, 'incorrect key pair for the given ciphertext') + } + function _e(e, r) { + var a = [] + i(r), (e = m(a, e, 'seed')) + var _, + s = 0 | t._crypto_box_seedbytes() + e.length !== s && b(a, 'invalid seed length'), (_ = u(e)), a.push(_) + var n = new l(0 | t._crypto_box_publickeybytes()), + c = n.address + a.push(c) + var o = new l(0 | t._crypto_box_secretkeybytes()), + h = o.address + if ((a.push(h), 0 == (0 | t._crypto_box_seed_keypair(c, h, _)))) { + var y = { publicKey: p(n, r), privateKey: p(o, r), keyType: 'x25519' } + return v(a), y + } + g(a, 'invalid usage') + } + function se(e, r, a) { + var _ = [] + i(a), (e = m(_, e, 'p')) + var s, + n = 0 | t._crypto_core_ed25519_bytes() + e.length !== n && b(_, 'invalid p length'), + (s = u(e)), + _.push(s), + (r = m(_, r, 'q')) + var c, + o = 0 | t._crypto_core_ed25519_bytes() + r.length !== o && b(_, 'invalid q length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_core_ed25519_bytes()), + y = h.address + if ((_.push(y), 0 == (0 | t._crypto_core_ed25519_add(y, s, c)))) { + var d = p(h, a) + return v(_), d + } + g(_, 'input is an invalid element') + } + function ne(e, r) { + var a = [] + i(r) + var _ = u((e = m(a, e, 'r'))) + e.length, a.push(_) + var s = new l(0 | t._crypto_core_ed25519_bytes()), + n = s.address + if ((a.push(n), 0 == (0 | t._crypto_core_ed25519_from_hash(n, _)))) { + var c = p(s, r) + return v(a), c + } + g(a, 'invalid usage') + } + function ce(e, r) { + var a = [] + i(r) + var _ = u((e = m(a, e, 'r'))) + e.length, a.push(_) + var s = new l(0 | t._crypto_core_ed25519_bytes()), + n = s.address + if ((a.push(n), 0 == (0 | t._crypto_core_ed25519_from_uniform(n, _)))) { + var c = p(s, r) + return v(a), c + } + g(a, 'invalid usage') + } + function oe(e, r) { + var a = [] + i(r), (e = m(a, e, 'repr')) + var _, + s = 0 | t._crypto_core_ed25519_bytes() + e.length !== s && b(a, 'invalid repr length'), (_ = u(e)), a.push(_) + var n = 1 == (0 | t._crypto_core_ed25519_is_valid_point(_)) + return v(a), n + } + function he(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_core_ed25519_bytes()), + _ = a.address + r.push(_), t._crypto_core_ed25519_random(_) + var s = p(a, e) + return v(r), s + } + function pe(e, r, a) { + var _ = [] + i(a), (e = m(_, e, 'x')) + var s, + n = 0 | t._crypto_core_ed25519_scalarbytes() + e.length !== n && b(_, 'invalid x length'), + (s = u(e)), + _.push(s), + (r = m(_, r, 'y')) + var c, + o = 0 | t._crypto_core_ed25519_scalarbytes() + r.length !== o && b(_, 'invalid y length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_core_ed25519_scalarbytes()), + y = h.address + _.push(y), t._crypto_core_ed25519_scalar_add(y, s, c) + var d = p(h, a) + return v(_), d + } + function ye(e, r) { + var a = [] + i(r), (e = m(a, e, 's')) + var _, + s = 0 | t._crypto_core_ed25519_scalarbytes() + e.length !== s && b(a, 'invalid s length'), (_ = u(e)), a.push(_) + var n = new l(0 | t._crypto_core_ed25519_scalarbytes()), + c = n.address + a.push(c), t._crypto_core_ed25519_scalar_complement(c, _) + var o = p(n, r) + return v(a), o + } + function ie(e, r) { + var a = [] + i(r), (e = m(a, e, 's')) + var _, + s = 0 | t._crypto_core_ed25519_scalarbytes() + e.length !== s && b(a, 'invalid s length'), (_ = u(e)), a.push(_) + var n = new l(0 | t._crypto_core_ed25519_scalarbytes()), + c = n.address + if ((a.push(c), 0 == (0 | t._crypto_core_ed25519_scalar_invert(c, _)))) { + var o = p(n, r) + return v(a), o + } + g(a, 'invalid reciprocate') + } + function le(e, r, a) { + var _ = [] + i(a), (e = m(_, e, 'x')) + var s, + n = 0 | t._crypto_core_ed25519_scalarbytes() + e.length !== n && b(_, 'invalid x length'), + (s = u(e)), + _.push(s), + (r = m(_, r, 'y')) + var c, + o = 0 | t._crypto_core_ed25519_scalarbytes() + r.length !== o && b(_, 'invalid y length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_core_ed25519_scalarbytes()), + y = h.address + _.push(y), t._crypto_core_ed25519_scalar_mul(y, s, c) + var d = p(h, a) + return v(_), d + } + function ue(e, r) { + var a = [] + i(r), (e = m(a, e, 's')) + var _, + s = 0 | t._crypto_core_ed25519_scalarbytes() + e.length !== s && b(a, 'invalid s length'), (_ = u(e)), a.push(_) + var n = new l(0 | t._crypto_core_ed25519_scalarbytes()), + c = n.address + a.push(c), t._crypto_core_ed25519_scalar_negate(c, _) + var o = p(n, r) + return v(a), o + } + function de(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_core_ed25519_scalarbytes()), + _ = a.address + r.push(_), t._crypto_core_ed25519_scalar_random(_) + var s = p(a, e) + return v(r), s + } + function ve(e, r) { + var a = [] + i(r), (e = m(a, e, 'sample')) + var _, + s = 0 | t._crypto_core_ed25519_nonreducedscalarbytes() + e.length !== s && b(a, 'invalid sample length'), (_ = u(e)), a.push(_) + var n = new l(0 | t._crypto_core_ed25519_scalarbytes()), + c = n.address + a.push(c), t._crypto_core_ed25519_scalar_reduce(c, _) + var o = p(n, r) + return v(a), o + } + function ge(e, r, a) { + var _ = [] + i(a), (e = m(_, e, 'x')) + var s, + n = 0 | t._crypto_core_ed25519_scalarbytes() + e.length !== n && b(_, 'invalid x length'), + (s = u(e)), + _.push(s), + (r = m(_, r, 'y')) + var c, + o = 0 | t._crypto_core_ed25519_scalarbytes() + r.length !== o && b(_, 'invalid y length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_core_ed25519_scalarbytes()), + y = h.address + _.push(y), t._crypto_core_ed25519_scalar_sub(y, s, c) + var d = p(h, a) + return v(_), d + } + function be(e, r, a) { + var _ = [] + i(a), (e = m(_, e, 'p')) + var s, + n = 0 | t._crypto_core_ed25519_bytes() + e.length !== n && b(_, 'invalid p length'), + (s = u(e)), + _.push(s), + (r = m(_, r, 'q')) + var c, + o = 0 | t._crypto_core_ed25519_bytes() + r.length !== o && b(_, 'invalid q length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_core_ed25519_bytes()), + y = h.address + if ((_.push(y), 0 == (0 | t._crypto_core_ed25519_sub(y, s, c)))) { + var d = p(h, a) + return v(_), d + } + g(_, 'input is an invalid element') + } + function fe(e, r, a) { + var _ = [] + i(a), (e = m(_, e, 'p')) + var s, + n = 0 | t._crypto_core_ristretto255_bytes() + e.length !== n && b(_, 'invalid p length'), + (s = u(e)), + _.push(s), + (r = m(_, r, 'q')) + var c, + o = 0 | t._crypto_core_ristretto255_bytes() + r.length !== o && b(_, 'invalid q length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_core_ristretto255_bytes()), + y = h.address + if ((_.push(y), 0 == (0 | t._crypto_core_ristretto255_add(y, s, c)))) { + var d = p(h, a) + return v(_), d + } + g(_, 'input is an invalid element') + } + function me(e, r) { + var a = [] + i(r) + var _ = u((e = m(a, e, 'r'))) + e.length, a.push(_) + var s = new l(0 | t._crypto_core_ristretto255_bytes()), + n = s.address + if ((a.push(n), 0 == (0 | t._crypto_core_ristretto255_from_hash(n, _)))) { + var c = p(s, r) + return v(a), c + } + g(a, 'invalid usage') + } + function Ee(e, r) { + var a = [] + i(r), (e = m(a, e, 'repr')) + var _, + s = 0 | t._crypto_core_ristretto255_bytes() + e.length !== s && b(a, 'invalid repr length'), (_ = u(e)), a.push(_) + var n = 1 == (0 | t._crypto_core_ristretto255_is_valid_point(_)) + return v(a), n + } + function xe(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_core_ristretto255_bytes()), + _ = a.address + r.push(_), t._crypto_core_ristretto255_random(_) + var s = p(a, e) + return v(r), s + } + function ke(e, r, a) { + var _ = [] + i(a), (e = m(_, e, 'x')) + var s, + n = 0 | t._crypto_core_ristretto255_scalarbytes() + e.length !== n && b(_, 'invalid x length'), + (s = u(e)), + _.push(s), + (r = m(_, r, 'y')) + var c, + o = 0 | t._crypto_core_ristretto255_scalarbytes() + r.length !== o && b(_, 'invalid y length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_core_ristretto255_scalarbytes()), + y = h.address + _.push(y), t._crypto_core_ristretto255_scalar_add(y, s, c) + var d = p(h, a) + return v(_), d + } + function Se(e, r) { + var a = [] + i(r), (e = m(a, e, 's')) + var _, + s = 0 | t._crypto_core_ristretto255_scalarbytes() + e.length !== s && b(a, 'invalid s length'), (_ = u(e)), a.push(_) + var n = new l(0 | t._crypto_core_ristretto255_scalarbytes()), + c = n.address + a.push(c), t._crypto_core_ristretto255_scalar_complement(c, _) + var o = p(n, r) + return v(a), o + } + function Te(e, r) { + var a = [] + i(r), (e = m(a, e, 's')) + var _, + s = 0 | t._crypto_core_ristretto255_scalarbytes() + e.length !== s && b(a, 'invalid s length'), (_ = u(e)), a.push(_) + var n = new l(0 | t._crypto_core_ristretto255_scalarbytes()), + c = n.address + if ((a.push(c), 0 == (0 | t._crypto_core_ristretto255_scalar_invert(c, _)))) { + var o = p(n, r) + return v(a), o + } + g(a, 'invalid reciprocate') + } + function we(e, r, a) { + var _ = [] + i(a), (e = m(_, e, 'x')) + var s, + n = 0 | t._crypto_core_ristretto255_scalarbytes() + e.length !== n && b(_, 'invalid x length'), + (s = u(e)), + _.push(s), + (r = m(_, r, 'y')) + var c, + o = 0 | t._crypto_core_ristretto255_scalarbytes() + r.length !== o && b(_, 'invalid y length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_core_ristretto255_scalarbytes()), + y = h.address + _.push(y), t._crypto_core_ristretto255_scalar_mul(y, s, c) + var d = p(h, a) + return v(_), d + } + function Ye(e, r) { + var a = [] + i(r), (e = m(a, e, 's')) + var _, + s = 0 | t._crypto_core_ristretto255_scalarbytes() + e.length !== s && b(a, 'invalid s length'), (_ = u(e)), a.push(_) + var n = new l(0 | t._crypto_core_ristretto255_scalarbytes()), + c = n.address + a.push(c), t._crypto_core_ristretto255_scalar_negate(c, _) + var o = p(n, r) + return v(a), o + } + function Be(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_core_ristretto255_scalarbytes()), + _ = a.address + r.push(_), t._crypto_core_ristretto255_scalar_random(_) + var s = p(a, e) + return v(r), s + } + function Ae(e, r) { + var a = [] + i(r), (e = m(a, e, 'sample')) + var _, + s = 0 | t._crypto_core_ristretto255_nonreducedscalarbytes() + e.length !== s && b(a, 'invalid sample length'), (_ = u(e)), a.push(_) + var n = new l(0 | t._crypto_core_ristretto255_scalarbytes()), + c = n.address + a.push(c), t._crypto_core_ristretto255_scalar_reduce(c, _) + var o = p(n, r) + return v(a), o + } + function Ke(e, r, a) { + var _ = [] + i(a), (e = m(_, e, 'x')) + var s, + n = 0 | t._crypto_core_ristretto255_scalarbytes() + e.length !== n && b(_, 'invalid x length'), + (s = u(e)), + _.push(s), + (r = m(_, r, 'y')) + var c, + o = 0 | t._crypto_core_ristretto255_scalarbytes() + r.length !== o && b(_, 'invalid y length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_core_ristretto255_scalarbytes()), + y = h.address + _.push(y), t._crypto_core_ristretto255_scalar_sub(y, s, c) + var d = p(h, a) + return v(_), d + } + function Me(e, r, a) { + var _ = [] + i(a), (e = m(_, e, 'p')) + var s, + n = 0 | t._crypto_core_ristretto255_bytes() + e.length !== n && b(_, 'invalid p length'), + (s = u(e)), + _.push(s), + (r = m(_, r, 'q')) + var c, + o = 0 | t._crypto_core_ristretto255_bytes() + r.length !== o && b(_, 'invalid q length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_core_ristretto255_bytes()), + y = h.address + if ((_.push(y), 0 == (0 | t._crypto_core_ristretto255_sub(y, s, c)))) { + var d = p(h, a) + return v(_), d + } + g(_, 'input is an invalid element') + } + function Ie(e, r, a, _) { + var s = [] + i(_), + f(s, e, 'hash_length'), + ('number' != typeof e || (0 | e) !== e || e < 0) && + b(s, 'hash_length must be an unsigned integer') + var n = u((r = m(s, r, 'message'))), + c = r.length + s.push(n) + var o = null, + h = 0 + null != a && ((o = u((a = m(s, a, 'key')))), (h = a.length), s.push(o)) + var y = new l((e |= 0)), + d = y.address + if ((s.push(d), 0 == (0 | t._crypto_generichash(d, e, n, c, 0, o, h)))) { + var E = p(y, _) + return v(s), E + } + g(s, 'invalid usage') + } + function Ne(e, r, a, _, s) { + var n = [] + i(s), + f(n, e, 'subkey_len'), + ('number' != typeof e || (0 | e) !== e || e < 0) && + b(n, 'subkey_len must be an unsigned integer') + var c = null, + o = 0 + null != r && ((c = u((r = m(n, r, 'key')))), (o = r.length), n.push(c)), + (a = m(n, a, 'id')) + var h, + y = 0 | t._crypto_generichash_blake2b_saltbytes() + a.length !== y && b(n, 'invalid id length'), + (h = u(a)), + n.push(h), + (_ = m(n, _, 'ctx')) + var d, + E = 0 | t._crypto_generichash_blake2b_personalbytes() + _.length !== E && b(n, 'invalid ctx length'), (d = u(_)), n.push(d) + var x = new l(0 | e), + k = x.address + if ( + (n.push(k), + 0 == + (0 | t._crypto_generichash_blake2b_salt_personal(k, e, null, 0, 0, c, o, h, d))) + ) { + var S = p(x, s) + return v(n), S + } + g(n, 'invalid usage') + } + function Le(e, r, a) { + var _ = [] + i(a), + f(_, e, 'state_address'), + f(_, r, 'hash_length'), + ('number' != typeof r || (0 | r) !== r || r < 0) && + b(_, 'hash_length must be an unsigned integer') + var s = new l((r |= 0)), + n = s.address + if ((_.push(n), 0 == (0 | t._crypto_generichash_final(e, n, r)))) { + var c = (t._free(e), p(s, a)) + return v(_), c + } + g(_, 'invalid usage') + } + function Ue(e, r, a) { + var _ = [] + i(a) + var s = null, + n = 0 + null != e && ((s = u((e = m(_, e, 'key')))), (n = e.length), _.push(s)), + f(_, r, 'hash_length'), + ('number' != typeof r || (0 | r) !== r || r < 0) && + b(_, 'hash_length must be an unsigned integer') + var c = new l(357).address + if (0 == (0 | t._crypto_generichash_init(c, s, n, r))) { + var o = c + return v(_), o + } + g(_, 'invalid usage') + } + function Oe(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_generichash_keybytes()), + _ = a.address + r.push(_), t._crypto_generichash_keygen(_) + var s = p(a, e) + return v(r), s + } + function Ce(e, r, a) { + var _ = [] + i(a), f(_, e, 'state_address') + var s = u((r = m(_, r, 'message_chunk'))), + n = r.length + _.push(s), + 0 != (0 | t._crypto_generichash_update(e, s, n)) && g(_, 'invalid usage'), + v(_) + } + function Re(e, r) { + var a = [] + i(r) + var _ = u((e = m(a, e, 'message'))), + s = e.length + a.push(_) + var n = new l(0 | t._crypto_hash_bytes()), + c = n.address + if ((a.push(c), 0 == (0 | t._crypto_hash(c, _, s, 0)))) { + var o = p(n, r) + return v(a), o + } + g(a, 'invalid usage') + } + function Pe(e, r) { + var a = [] + i(r) + var _ = u((e = m(a, e, 'message'))), + s = e.length + a.push(_) + var n = new l(0 | t._crypto_hash_sha256_bytes()), + c = n.address + if ((a.push(c), 0 == (0 | t._crypto_hash_sha256(c, _, s, 0)))) { + var o = p(n, r) + return v(a), o + } + g(a, 'invalid usage') + } + function Ge(e, r) { + var a = [] + i(r), f(a, e, 'state_address') + var _ = new l(0 | t._crypto_hash_sha256_bytes()), + s = _.address + if ((a.push(s), 0 == (0 | t._crypto_hash_sha256_final(e, s)))) { + var n = (t._free(e), p(_, r)) + return v(a), n + } + g(a, 'invalid usage') + } + function Xe(e) { + var r = [] + i(e) + var a = new l(104).address + if (0 == (0 | t._crypto_hash_sha256_init(a))) { + var _ = a + return v(r), _ + } + g(r, 'invalid usage') + } + function De(e, r, a) { + var _ = [] + i(a), f(_, e, 'state_address') + var s = u((r = m(_, r, 'message_chunk'))), + n = r.length + _.push(s), + 0 != (0 | t._crypto_hash_sha256_update(e, s, n)) && g(_, 'invalid usage'), + v(_) + } + function Fe(e, r) { + var a = [] + i(r) + var _ = u((e = m(a, e, 'message'))), + s = e.length + a.push(_) + var n = new l(0 | t._crypto_hash_sha512_bytes()), + c = n.address + if ((a.push(c), 0 == (0 | t._crypto_hash_sha512(c, _, s, 0)))) { + var o = p(n, r) + return v(a), o + } + g(a, 'invalid usage') + } + function Ve(e, r) { + var a = [] + i(r), f(a, e, 'state_address') + var _ = new l(0 | t._crypto_hash_sha512_bytes()), + s = _.address + if ((a.push(s), 0 == (0 | t._crypto_hash_sha512_final(e, s)))) { + var n = (t._free(e), p(_, r)) + return v(a), n + } + g(a, 'invalid usage') + } + function He(e) { + var r = [] + i(e) + var a = new l(208).address + if (0 == (0 | t._crypto_hash_sha512_init(a))) { + var _ = a + return v(r), _ + } + g(r, 'invalid usage') + } + function qe(e, r, a) { + var _ = [] + i(a), f(_, e, 'state_address') + var s = u((r = m(_, r, 'message_chunk'))), + n = r.length + _.push(s), + 0 != (0 | t._crypto_hash_sha512_update(e, s, n)) && g(_, 'invalid usage'), + v(_) + } + function je(e, r, a, s, n) { + var c = [] + i(n), + f(c, e, 'subkey_len'), + ('number' != typeof e || (0 | e) !== e || e < 0) && + b(c, 'subkey_len must be an unsigned integer'), + f(c, r, 'subkey_id'), + ('number' != typeof r || (0 | r) !== r || r < 0) && + b(c, 'subkey_id must be an unsigned integer'), + 'string' != typeof a && b(c, 'ctx must be a string'), + (a = _(a + '\0')), + null != h && a.length - 1 !== h && b(c, 'invalid ctx length') + var o = u(a), + h = a.length - 1 + c.push(o), (s = m(c, s, 'key')) + var y, + d = 0 | t._crypto_kdf_keybytes() + s.length !== d && b(c, 'invalid key length'), (y = u(s)), c.push(y) + var g = new l(0 | e), + E = g.address + c.push(E), t._crypto_kdf_derive_from_key(E, e, r, (r >>> 24) >>> 8, o, y) + var x = p(g, n) + return v(c), x + } + function ze(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_kdf_keybytes()), + _ = a.address + r.push(_), t._crypto_kdf_keygen(_) + var s = p(a, e) + return v(r), s + } + function We(e, r, a, _) { + var s = [] + i(_), (e = m(s, e, 'clientPublicKey')) + var n, + c = 0 | t._crypto_kx_publickeybytes() + e.length !== c && b(s, 'invalid clientPublicKey length'), + (n = u(e)), + s.push(n), + (r = m(s, r, 'clientSecretKey')) + var o, + h = 0 | t._crypto_kx_secretkeybytes() + r.length !== h && b(s, 'invalid clientSecretKey length'), + (o = u(r)), + s.push(o), + (a = m(s, a, 'serverPublicKey')) + var y, + d = 0 | t._crypto_kx_publickeybytes() + a.length !== d && b(s, 'invalid serverPublicKey length'), (y = u(a)), s.push(y) + var f = new l(0 | t._crypto_kx_sessionkeybytes()), + E = f.address + s.push(E) + var x = new l(0 | t._crypto_kx_sessionkeybytes()), + k = x.address + if ((s.push(k), 0 == (0 | t._crypto_kx_client_session_keys(E, k, n, o, y)))) { + var S = p({ sharedRx: f, sharedTx: x }, _) + return v(s), S + } + g(s, 'invalid usage') + } + function Je(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_kx_publickeybytes()), + _ = a.address + r.push(_) + var s = new l(0 | t._crypto_kx_secretkeybytes()), + n = s.address + if ((r.push(n), 0 == (0 | t._crypto_kx_keypair(_, n)))) { + var c = { publicKey: p(a, e), privateKey: p(s, e), keyType: 'x25519' } + return v(r), c + } + g(r, 'internal error') + } + function Qe(e, r) { + var a = [] + i(r), (e = m(a, e, 'seed')) + var _, + s = 0 | t._crypto_kx_seedbytes() + e.length !== s && b(a, 'invalid seed length'), (_ = u(e)), a.push(_) + var n = new l(0 | t._crypto_kx_publickeybytes()), + c = n.address + a.push(c) + var o = new l(0 | t._crypto_kx_secretkeybytes()), + h = o.address + if ((a.push(h), 0 == (0 | t._crypto_kx_seed_keypair(c, h, _)))) { + var y = { publicKey: p(n, r), privateKey: p(o, r), keyType: 'x25519' } + return v(a), y + } + g(a, 'internal error') + } + function Ze(e, r, a, _) { + var s = [] + i(_), (e = m(s, e, 'serverPublicKey')) + var n, + c = 0 | t._crypto_kx_publickeybytes() + e.length !== c && b(s, 'invalid serverPublicKey length'), + (n = u(e)), + s.push(n), + (r = m(s, r, 'serverSecretKey')) + var o, + h = 0 | t._crypto_kx_secretkeybytes() + r.length !== h && b(s, 'invalid serverSecretKey length'), + (o = u(r)), + s.push(o), + (a = m(s, a, 'clientPublicKey')) + var y, + d = 0 | t._crypto_kx_publickeybytes() + a.length !== d && b(s, 'invalid clientPublicKey length'), (y = u(a)), s.push(y) + var f = new l(0 | t._crypto_kx_sessionkeybytes()), + E = f.address + s.push(E) + var x = new l(0 | t._crypto_kx_sessionkeybytes()), + k = x.address + if ((s.push(k), 0 == (0 | t._crypto_kx_server_session_keys(E, k, n, o, y)))) { + var S = p({ sharedRx: f, sharedTx: x }, _) + return v(s), S + } + g(s, 'invalid usage') + } + function $e(e, r, a) { + var _ = [] + i(a) + var s = u((e = m(_, e, 'message'))), + n = e.length + _.push(s), (r = m(_, r, 'key')) + var c, + o = 0 | t._crypto_onetimeauth_keybytes() + r.length !== o && b(_, 'invalid key length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_onetimeauth_bytes()), + y = h.address + if ((_.push(y), 0 == (0 | t._crypto_onetimeauth(y, s, n, 0, c)))) { + var d = p(h, a) + return v(_), d + } + g(_, 'invalid usage') + } + function er(e, r) { + var a = [] + i(r), f(a, e, 'state_address') + var _ = new l(0 | t._crypto_onetimeauth_bytes()), + s = _.address + if ((a.push(s), 0 == (0 | t._crypto_onetimeauth_final(e, s)))) { + var n = (t._free(e), p(_, r)) + return v(a), n + } + g(a, 'invalid usage') + } + function rr(e, r) { + var a = [] + i(r) + var _ = null + null != e && ((_ = u((e = m(a, e, 'key')))), e.length, a.push(_)) + var s = new l(144).address + if (0 == (0 | t._crypto_onetimeauth_init(s, _))) { + var n = s + return v(a), n + } + g(a, 'invalid usage') + } + function tr(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_onetimeauth_keybytes()), + _ = a.address + r.push(_), t._crypto_onetimeauth_keygen(_) + var s = p(a, e) + return v(r), s + } + function ar(e, r, a) { + var _ = [] + i(a), f(_, e, 'state_address') + var s = u((r = m(_, r, 'message_chunk'))), + n = r.length + _.push(s), + 0 != (0 | t._crypto_onetimeauth_update(e, s, n)) && g(_, 'invalid usage'), + v(_) + } + function _r(e, r, a) { + var _ = [] + e = m(_, e, 'hash') + var s, + n = 0 | t._crypto_onetimeauth_bytes() + e.length !== n && b(_, 'invalid hash length'), (s = u(e)), _.push(s) + var c = u((r = m(_, r, 'message'))), + o = r.length + _.push(c), (a = m(_, a, 'key')) + var h, + p = 0 | t._crypto_onetimeauth_keybytes() + a.length !== p && b(_, 'invalid key length'), (h = u(a)), _.push(h) + var y = 0 == (0 | t._crypto_onetimeauth_verify(s, c, o, 0, h)) + return v(_), y + } + function sr(e, r, a, _, s, n, c) { + var o = [] + i(c), + f(o, e, 'keyLength'), + ('number' != typeof e || (0 | e) !== e || e < 0) && + b(o, 'keyLength must be an unsigned integer') + var h = u((r = m(o, r, 'password'))), + y = r.length + o.push(h), (a = m(o, a, 'salt')) + var d, + E = 0 | t._crypto_pwhash_saltbytes() + a.length !== E && b(o, 'invalid salt length'), + (d = u(a)), + o.push(d), + f(o, _, 'opsLimit'), + ('number' != typeof _ || (0 | _) !== _ || _ < 0) && + b(o, 'opsLimit must be an unsigned integer'), + f(o, s, 'memLimit'), + ('number' != typeof s || (0 | s) !== s || s < 0) && + b(o, 'memLimit must be an unsigned integer'), + f(o, n, 'algorithm'), + ('number' != typeof n || (0 | n) !== n || n < 0) && + b(o, 'algorithm must be an unsigned integer') + var x = new l(0 | e), + k = x.address + if ((o.push(k), 0 == (0 | t._crypto_pwhash(k, e, 0, h, y, 0, d, _, 0, s, n)))) { + var S = p(x, c) + return v(o), S + } + g(o, 'invalid usage') + } + function nr(e, r, a, _, s, n) { + var c = [] + i(n), + f(c, e, 'keyLength'), + ('number' != typeof e || (0 | e) !== e || e < 0) && + b(c, 'keyLength must be an unsigned integer') + var o = u((r = m(c, r, 'password'))), + h = r.length + c.push(o), (a = m(c, a, 'salt')) + var y, + d = 0 | t._crypto_pwhash_scryptsalsa208sha256_saltbytes() + a.length !== d && b(c, 'invalid salt length'), + (y = u(a)), + c.push(y), + f(c, _, 'opsLimit'), + ('number' != typeof _ || (0 | _) !== _ || _ < 0) && + b(c, 'opsLimit must be an unsigned integer'), + f(c, s, 'memLimit'), + ('number' != typeof s || (0 | s) !== s || s < 0) && + b(c, 'memLimit must be an unsigned integer') + var E = new l(0 | e), + x = E.address + if ( + (c.push(x), + 0 == (0 | t._crypto_pwhash_scryptsalsa208sha256(x, e, 0, o, h, 0, y, _, 0, s))) + ) { + var k = p(E, n) + return v(c), k + } + g(c, 'invalid usage') + } + function cr(e, r, a, _, s, n, c) { + var o = [] + i(c) + var h = u((e = m(o, e, 'password'))), + y = e.length + o.push(h) + var d = u((r = m(o, r, 'salt'))), + E = r.length + o.push(d), + f(o, a, 'opsLimit'), + ('number' != typeof a || (0 | a) !== a || a < 0) && + b(o, 'opsLimit must be an unsigned integer'), + f(o, _, 'r'), + ('number' != typeof _ || (0 | _) !== _ || _ < 0) && + b(o, 'r must be an unsigned integer'), + f(o, s, 'p'), + ('number' != typeof s || (0 | s) !== s || s < 0) && + b(o, 'p must be an unsigned integer'), + f(o, n, 'keyLength'), + ('number' != typeof n || (0 | n) !== n || n < 0) && + b(o, 'keyLength must be an unsigned integer') + var x = new l(0 | n), + k = x.address + if ( + (o.push(k), + 0 == (0 | t._crypto_pwhash_scryptsalsa208sha256_ll(h, y, d, E, a, 0, _, s, k, n))) + ) { + var S = p(x, c) + return v(o), S + } + g(o, 'invalid usage') + } + function or(e, r, a, _) { + var s = [] + i(_) + var n = u((e = m(s, e, 'password'))), + c = e.length + s.push(n), + f(s, r, 'opsLimit'), + ('number' != typeof r || (0 | r) !== r || r < 0) && + b(s, 'opsLimit must be an unsigned integer'), + f(s, a, 'memLimit'), + ('number' != typeof a || (0 | a) !== a || a < 0) && + b(s, 'memLimit must be an unsigned integer') + var o = new l(0 | t._crypto_pwhash_scryptsalsa208sha256_strbytes()).address + if ( + (s.push(o), + 0 == (0 | t._crypto_pwhash_scryptsalsa208sha256_str(o, n, c, 0, r, 0, a))) + ) { + var h = t.UTF8ToString(o) + return v(s), h + } + g(s, 'invalid usage') + } + function hr(e, r, a) { + var s = [] + i(a), + 'string' != typeof e && b(s, 'hashed_password must be a string'), + (e = _(e + '\0')), + null != c && e.length - 1 !== c && b(s, 'invalid hashed_password length') + var n = u(e), + c = e.length - 1 + s.push(n) + var o = u((r = m(s, r, 'password'))), + h = r.length + s.push(o) + var p = 0 == (0 | t._crypto_pwhash_scryptsalsa208sha256_str_verify(n, o, h, 0)) + return v(s), p + } + function pr(e, r, a, _) { + var s = [] + i(_) + var n = u((e = m(s, e, 'password'))), + c = e.length + s.push(n), + f(s, r, 'opsLimit'), + ('number' != typeof r || (0 | r) !== r || r < 0) && + b(s, 'opsLimit must be an unsigned integer'), + f(s, a, 'memLimit'), + ('number' != typeof a || (0 | a) !== a || a < 0) && + b(s, 'memLimit must be an unsigned integer') + var o = new l(0 | t._crypto_pwhash_strbytes()).address + if ((s.push(o), 0 == (0 | t._crypto_pwhash_str(o, n, c, 0, r, 0, a)))) { + var h = t.UTF8ToString(o) + return v(s), h + } + g(s, 'invalid usage') + } + function yr(e, r, a, s) { + var n = [] + i(s), + 'string' != typeof e && b(n, 'hashed_password must be a string'), + (e = _(e + '\0')), + null != o && e.length - 1 !== o && b(n, 'invalid hashed_password length') + var c = u(e), + o = e.length - 1 + n.push(c), + f(n, r, 'opsLimit'), + ('number' != typeof r || (0 | r) !== r || r < 0) && + b(n, 'opsLimit must be an unsigned integer'), + f(n, a, 'memLimit'), + ('number' != typeof a || (0 | a) !== a || a < 0) && + b(n, 'memLimit must be an unsigned integer') + var h = 0 != (0 | t._crypto_pwhash_str_needs_rehash(c, r, 0, a)) + return v(n), h + } + function ir(e, r, a) { + var s = [] + i(a), + 'string' != typeof e && b(s, 'hashed_password must be a string'), + (e = _(e + '\0')), + null != c && e.length - 1 !== c && b(s, 'invalid hashed_password length') + var n = u(e), + c = e.length - 1 + s.push(n) + var o = u((r = m(s, r, 'password'))), + h = r.length + s.push(o) + var p = 0 == (0 | t._crypto_pwhash_str_verify(n, o, h, 0)) + return v(s), p + } + function lr(e, r, a) { + var _ = [] + i(a), (e = m(_, e, 'privateKey')) + var s, + n = 0 | t._crypto_scalarmult_scalarbytes() + e.length !== n && b(_, 'invalid privateKey length'), + (s = u(e)), + _.push(s), + (r = m(_, r, 'publicKey')) + var c, + o = 0 | t._crypto_scalarmult_bytes() + r.length !== o && b(_, 'invalid publicKey length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_scalarmult_bytes()), + y = h.address + if ((_.push(y), 0 == (0 | t._crypto_scalarmult(y, s, c)))) { + var d = p(h, a) + return v(_), d + } + g(_, 'weak public key') + } + function ur(e, r) { + var a = [] + i(r), (e = m(a, e, 'privateKey')) + var _, + s = 0 | t._crypto_scalarmult_scalarbytes() + e.length !== s && b(a, 'invalid privateKey length'), (_ = u(e)), a.push(_) + var n = new l(0 | t._crypto_scalarmult_bytes()), + c = n.address + if ((a.push(c), 0 == (0 | t._crypto_scalarmult_base(c, _)))) { + var o = p(n, r) + return v(a), o + } + g(a, 'unknown error') + } + function dr(e, r, a) { + var _ = [] + i(a), (e = m(_, e, 'n')) + var s, + n = 0 | t._crypto_scalarmult_ed25519_scalarbytes() + e.length !== n && b(_, 'invalid n length'), + (s = u(e)), + _.push(s), + (r = m(_, r, 'p')) + var c, + o = 0 | t._crypto_scalarmult_ed25519_bytes() + r.length !== o && b(_, 'invalid p length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_scalarmult_ed25519_bytes()), + y = h.address + if ((_.push(y), 0 == (0 | t._crypto_scalarmult_ed25519(y, s, c)))) { + var d = p(h, a) + return v(_), d + } + g(_, 'invalid point or scalar is 0') + } + function vr(e, r) { + var a = [] + i(r), (e = m(a, e, 'scalar')) + var _, + s = 0 | t._crypto_scalarmult_ed25519_scalarbytes() + e.length !== s && b(a, 'invalid scalar length'), (_ = u(e)), a.push(_) + var n = new l(0 | t._crypto_scalarmult_ed25519_bytes()), + c = n.address + if ((a.push(c), 0 == (0 | t._crypto_scalarmult_ed25519_base(c, _)))) { + var o = p(n, r) + return v(a), o + } + g(a, 'scalar is 0') + } + function gr(e, r) { + var a = [] + i(r), (e = m(a, e, 'scalar')) + var _, + s = 0 | t._crypto_scalarmult_ed25519_scalarbytes() + e.length !== s && b(a, 'invalid scalar length'), (_ = u(e)), a.push(_) + var n = new l(0 | t._crypto_scalarmult_ed25519_bytes()), + c = n.address + if ((a.push(c), 0 == (0 | t._crypto_scalarmult_ed25519_base_noclamp(c, _)))) { + var o = p(n, r) + return v(a), o + } + g(a, 'scalar is 0') + } + function br(e, r, a) { + var _ = [] + i(a), (e = m(_, e, 'n')) + var s, + n = 0 | t._crypto_scalarmult_ed25519_scalarbytes() + e.length !== n && b(_, 'invalid n length'), + (s = u(e)), + _.push(s), + (r = m(_, r, 'p')) + var c, + o = 0 | t._crypto_scalarmult_ed25519_bytes() + r.length !== o && b(_, 'invalid p length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_scalarmult_ed25519_bytes()), + y = h.address + if ((_.push(y), 0 == (0 | t._crypto_scalarmult_ed25519_noclamp(y, s, c)))) { + var d = p(h, a) + return v(_), d + } + g(_, 'invalid point or scalar is 0') + } + function fr(e, r, a) { + var _ = [] + i(a), (e = m(_, e, 'scalar')) + var s, + n = 0 | t._crypto_scalarmult_ristretto255_scalarbytes() + e.length !== n && b(_, 'invalid scalar length'), + (s = u(e)), + _.push(s), + (r = m(_, r, 'element')) + var c, + o = 0 | t._crypto_scalarmult_ristretto255_bytes() + r.length !== o && b(_, 'invalid element length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_scalarmult_ristretto255_bytes()), + y = h.address + if ((_.push(y), 0 == (0 | t._crypto_scalarmult_ristretto255(y, s, c)))) { + var d = p(h, a) + return v(_), d + } + g(_, 'result is identity element') + } + function mr(e, r) { + var a = [] + i(r), (e = m(a, e, 'scalar')) + var _, + s = 0 | t._crypto_core_ristretto255_scalarbytes() + e.length !== s && b(a, 'invalid scalar length'), (_ = u(e)), a.push(_) + var n = new l(0 | t._crypto_core_ristretto255_bytes()), + c = n.address + if ((a.push(c), 0 == (0 | t._crypto_scalarmult_ristretto255_base(c, _)))) { + var o = p(n, r) + return v(a), o + } + g(a, 'scalar is 0') + } + function Er(e, r, a, _) { + var s = [] + i(_) + var n = u((e = m(s, e, 'message'))), + c = e.length + s.push(n), (r = m(s, r, 'nonce')) + var o, + h = 0 | t._crypto_secretbox_noncebytes() + r.length !== h && b(s, 'invalid nonce length'), + (o = u(r)), + s.push(o), + (a = m(s, a, 'key')) + var y, + d = 0 | t._crypto_secretbox_keybytes() + a.length !== d && b(s, 'invalid key length'), (y = u(a)), s.push(y) + var f = new l(0 | c), + E = f.address + s.push(E) + var x = new l(0 | t._crypto_secretbox_macbytes()), + k = x.address + if ((s.push(k), 0 == (0 | t._crypto_secretbox_detached(E, k, n, c, 0, o, y)))) { + var S = p({ mac: x, cipher: f }, _) + return v(s), S + } + g(s, 'invalid usage') + } + function xr(e, r, a, _) { + var s = [] + i(_) + var n = u((e = m(s, e, 'message'))), + c = e.length + s.push(n), (r = m(s, r, 'nonce')) + var o, + h = 0 | t._crypto_secretbox_noncebytes() + r.length !== h && b(s, 'invalid nonce length'), + (o = u(r)), + s.push(o), + (a = m(s, a, 'key')) + var y, + d = 0 | t._crypto_secretbox_keybytes() + a.length !== d && b(s, 'invalid key length'), (y = u(a)), s.push(y) + var f = new l((c + t._crypto_secretbox_macbytes()) | 0), + E = f.address + if ((s.push(E), 0 == (0 | t._crypto_secretbox_easy(E, n, c, 0, o, y)))) { + var x = p(f, _) + return v(s), x + } + g(s, 'invalid usage') + } + function kr(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_secretbox_keybytes()), + _ = a.address + r.push(_), t._crypto_secretbox_keygen(_) + var s = p(a, e) + return v(r), s + } + function Sr(e, r, a, _, s) { + var n = [] + i(s) + var c = u((e = m(n, e, 'ciphertext'))), + o = e.length + n.push(c), (r = m(n, r, 'mac')) + var h, + y = 0 | t._crypto_secretbox_macbytes() + r.length !== y && b(n, 'invalid mac length'), + (h = u(r)), + n.push(h), + (a = m(n, a, 'nonce')) + var d, + f = 0 | t._crypto_secretbox_noncebytes() + a.length !== f && b(n, 'invalid nonce length'), + (d = u(a)), + n.push(d), + (_ = m(n, _, 'key')) + var E, + x = 0 | t._crypto_secretbox_keybytes() + _.length !== x && b(n, 'invalid key length'), (E = u(_)), n.push(E) + var k = new l(0 | o), + S = k.address + if ( + (n.push(S), 0 == (0 | t._crypto_secretbox_open_detached(S, c, h, o, 0, d, E))) + ) { + var T = p(k, s) + return v(n), T + } + g(n, 'wrong secret key for the given ciphertext') + } + function Tr(e, r, a, _) { + var s = [] + i(_), (e = m(s, e, 'ciphertext')) + var n, + c = t._crypto_secretbox_macbytes(), + o = e.length + o < c && b(s, 'ciphertext is too short'), + (n = u(e)), + s.push(n), + (r = m(s, r, 'nonce')) + var h, + y = 0 | t._crypto_secretbox_noncebytes() + r.length !== y && b(s, 'invalid nonce length'), + (h = u(r)), + s.push(h), + (a = m(s, a, 'key')) + var d, + f = 0 | t._crypto_secretbox_keybytes() + a.length !== f && b(s, 'invalid key length'), (d = u(a)), s.push(d) + var E = new l((o - t._crypto_secretbox_macbytes()) | 0), + x = E.address + if ((s.push(x), 0 == (0 | t._crypto_secretbox_open_easy(x, n, o, 0, h, d)))) { + var k = p(E, _) + return v(s), k + } + g(s, 'wrong secret key for the given ciphertext') + } + function wr(e, r, a) { + var _ = [] + i(a), (e = m(_, e, 'header')) + var s, + n = 0 | t._crypto_secretstream_xchacha20poly1305_headerbytes() + e.length !== n && b(_, 'invalid header length'), + (s = u(e)), + _.push(s), + (r = m(_, r, 'key')) + var c, + o = 0 | t._crypto_secretstream_xchacha20poly1305_keybytes() + r.length !== o && b(_, 'invalid key length'), (c = u(r)), _.push(c) + var h = new l(52).address + if (0 == (0 | t._crypto_secretstream_xchacha20poly1305_init_pull(h, s, c))) { + var p = h + return v(_), p + } + g(_, 'invalid usage') + } + function Yr(e, r) { + var a = [] + i(r), (e = m(a, e, 'key')) + var _, + s = 0 | t._crypto_secretstream_xchacha20poly1305_keybytes() + e.length !== s && b(a, 'invalid key length'), (_ = u(e)), a.push(_) + var n = new l(52).address, + c = new l(0 | t._crypto_secretstream_xchacha20poly1305_headerbytes()), + o = c.address + if ( + (a.push(o), + 0 == (0 | t._crypto_secretstream_xchacha20poly1305_init_push(n, o, _))) + ) { + var h = { state: n, header: p(c, r) } + return v(a), h + } + g(a, 'invalid usage') + } + function Br(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_secretstream_xchacha20poly1305_keybytes()), + _ = a.address + r.push(_), t._crypto_secretstream_xchacha20poly1305_keygen(_) + var s = p(a, e) + return v(r), s + } + function Ar(e, r, a, _) { + var s = [] + i(_), f(s, e, 'state_address'), (r = m(s, r, 'cipher')) + var n, + c = t._crypto_secretstream_xchacha20poly1305_abytes(), + o = r.length + o < c && b(s, 'cipher is too short'), (n = u(r)), s.push(n) + var h = null, + y = 0 + null != a && ((h = u((a = m(s, a, 'ad')))), (y = a.length), s.push(h)) + var g = new l((o - t._crypto_secretstream_xchacha20poly1305_abytes()) | 0), + E = g.address + s.push(E) + var x, + k = + ((x = d(1)), + s.push(x), + (k = 0 === + t._crypto_secretstream_xchacha20poly1305_pull(e, E, 0, x, n, o, 0, h, y) && { + tag: t.HEAPU8[x], + message: g + }) && { message: p(k.message, _), tag: k.tag }) + return v(s), k + } + function Kr(e, r, a, _, s) { + var n = [] + i(s), f(n, e, 'state_address') + var c = u((r = m(n, r, 'message_chunk'))), + o = r.length + n.push(c) + var h = null, + y = 0 + null != a && ((h = u((a = m(n, a, 'ad')))), (y = a.length), n.push(h)), + f(n, _, 'tag'), + ('number' != typeof _ || (0 | _) !== _ || _ < 0) && + b(n, 'tag must be an unsigned integer') + var d = new l((o + t._crypto_secretstream_xchacha20poly1305_abytes()) | 0), + E = d.address + if ( + (n.push(E), + 0 == + (0 | + t._crypto_secretstream_xchacha20poly1305_push(e, E, 0, c, o, 0, h, y, 0, _))) + ) { + var x = p(d, s) + return v(n), x + } + g(n, 'invalid usage') + } + function Mr(e, r) { + var a = [] + return ( + i(r), + f(a, e, 'state_address'), + t._crypto_secretstream_xchacha20poly1305_rekey(e), + v(a), + !0 + ) + } + function Ir(e, r, a) { + var _ = [] + i(a) + var s = u((e = m(_, e, 'message'))), + n = e.length + _.push(s), (r = m(_, r, 'key')) + var c, + o = 0 | t._crypto_shorthash_keybytes() + r.length !== o && b(_, 'invalid key length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_shorthash_bytes()), + y = h.address + if ((_.push(y), 0 == (0 | t._crypto_shorthash(y, s, n, 0, c)))) { + var d = p(h, a) + return v(_), d + } + g(_, 'invalid usage') + } + function Nr(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_shorthash_keybytes()), + _ = a.address + r.push(_), t._crypto_shorthash_keygen(_) + var s = p(a, e) + return v(r), s + } + function Lr(e, r, a) { + var _ = [] + i(a) + var s = u((e = m(_, e, 'message'))), + n = e.length + _.push(s), (r = m(_, r, 'key')) + var c, + o = 0 | t._crypto_shorthash_siphashx24_keybytes() + r.length !== o && b(_, 'invalid key length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_shorthash_siphashx24_bytes()), + y = h.address + if ((_.push(y), 0 == (0 | t._crypto_shorthash_siphashx24(y, s, n, 0, c)))) { + var d = p(h, a) + return v(_), d + } + g(_, 'invalid usage') + } + function Ur(e, r, a) { + var _ = [] + i(a) + var s = u((e = m(_, e, 'message'))), + n = e.length + _.push(s), (r = m(_, r, 'privateKey')) + var c, + o = 0 | t._crypto_sign_secretkeybytes() + r.length !== o && b(_, 'invalid privateKey length'), (c = u(r)), _.push(c) + var h = new l((e.length + t._crypto_sign_bytes()) | 0), + y = h.address + if ((_.push(y), 0 == (0 | t._crypto_sign(y, null, s, n, 0, c)))) { + var d = p(h, a) + return v(_), d + } + g(_, 'invalid usage') + } + function Or(e, r, a) { + var _ = [] + i(a) + var s = u((e = m(_, e, 'message'))), + n = e.length + _.push(s), (r = m(_, r, 'privateKey')) + var c, + o = 0 | t._crypto_sign_secretkeybytes() + r.length !== o && b(_, 'invalid privateKey length'), (c = u(r)), _.push(c) + var h = new l(0 | t._crypto_sign_bytes()), + y = h.address + if ((_.push(y), 0 == (0 | t._crypto_sign_detached(y, null, s, n, 0, c)))) { + var d = p(h, a) + return v(_), d + } + g(_, 'invalid usage') + } + function Cr(e, r) { + var a = [] + i(r), (e = m(a, e, 'edPk')) + var _, + s = 0 | t._crypto_sign_publickeybytes() + e.length !== s && b(a, 'invalid edPk length'), (_ = u(e)), a.push(_) + var n = new l(0 | t._crypto_scalarmult_scalarbytes()), + c = n.address + if ((a.push(c), 0 == (0 | t._crypto_sign_ed25519_pk_to_curve25519(c, _)))) { + var o = p(n, r) + return v(a), o + } + g(a, 'invalid key') + } + function Rr(e, r) { + var a = [] + i(r), (e = m(a, e, 'edSk')) + var _, + s = 0 | t._crypto_sign_secretkeybytes() + e.length !== s && b(a, 'invalid edSk length'), (_ = u(e)), a.push(_) + var n = new l(0 | t._crypto_scalarmult_scalarbytes()), + c = n.address + if ((a.push(c), 0 == (0 | t._crypto_sign_ed25519_sk_to_curve25519(c, _)))) { + var o = p(n, r) + return v(a), o + } + g(a, 'invalid key') + } + function Pr(e, r) { + var a = [] + i(r), (e = m(a, e, 'privateKey')) + var _, + s = 0 | t._crypto_sign_secretkeybytes() + e.length !== s && b(a, 'invalid privateKey length'), (_ = u(e)), a.push(_) + var n = new l(0 | t._crypto_sign_publickeybytes()), + c = n.address + if ((a.push(c), 0 == (0 | t._crypto_sign_ed25519_sk_to_pk(c, _)))) { + var o = p(n, r) + return v(a), o + } + g(a, 'invalid key') + } + function Gr(e, r) { + var a = [] + i(r), (e = m(a, e, 'privateKey')) + var _, + s = 0 | t._crypto_sign_secretkeybytes() + e.length !== s && b(a, 'invalid privateKey length'), (_ = u(e)), a.push(_) + var n = new l(0 | t._crypto_sign_seedbytes()), + c = n.address + if ((a.push(c), 0 == (0 | t._crypto_sign_ed25519_sk_to_seed(c, _)))) { + var o = p(n, r) + return v(a), o + } + g(a, 'invalid key') + } + function Xr(e, r, a) { + var _ = [] + i(a), f(_, e, 'state_address'), (r = m(_, r, 'privateKey')) + var s, + n = 0 | t._crypto_sign_secretkeybytes() + r.length !== n && b(_, 'invalid privateKey length'), (s = u(r)), _.push(s) + var c = new l(0 | t._crypto_sign_bytes()), + o = c.address + if ((_.push(o), 0 == (0 | t._crypto_sign_final_create(e, o, null, s)))) { + var h = (t._free(e), p(c, a)) + return v(_), h + } + g(_, 'invalid usage') + } + function Dr(e, r, a, _) { + var s = [] + i(_), f(s, e, 'state_address'), (r = m(s, r, 'signature')) + var n, + c = 0 | t._crypto_sign_bytes() + r.length !== c && b(s, 'invalid signature length'), + (n = u(r)), + s.push(n), + (a = m(s, a, 'publicKey')) + var o, + h = 0 | t._crypto_sign_publickeybytes() + a.length !== h && b(s, 'invalid publicKey length'), (o = u(a)), s.push(o) + var p = 0 == (0 | t._crypto_sign_final_verify(e, n, o)) + return v(s), p + } + function Fr(e) { + var r = [] + i(e) + var a = new l(208).address + if (0 == (0 | t._crypto_sign_init(a))) { + var _ = a + return v(r), _ + } + g(r, 'internal error') + } + function Vr(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_sign_publickeybytes()), + _ = a.address + r.push(_) + var s = new l(0 | t._crypto_sign_secretkeybytes()), + n = s.address + if ((r.push(n), 0 == (0 | t._crypto_sign_keypair(_, n)))) { + var c = { publicKey: p(a, e), privateKey: p(s, e), keyType: 'ed25519' } + return v(r), c + } + g(r, 'internal error') + } + function Hr(e, r, a) { + var _ = [] + i(a), (e = m(_, e, 'signedMessage')) + var s, + n = t._crypto_sign_bytes(), + c = e.length + c < n && b(_, 'signedMessage is too short'), + (s = u(e)), + _.push(s), + (r = m(_, r, 'publicKey')) + var o, + h = 0 | t._crypto_sign_publickeybytes() + r.length !== h && b(_, 'invalid publicKey length'), (o = u(r)), _.push(o) + var y = new l((c - t._crypto_sign_bytes()) | 0), + d = y.address + if ((_.push(d), 0 == (0 | t._crypto_sign_open(d, null, s, c, 0, o)))) { + var f = p(y, a) + return v(_), f + } + g(_, 'incorrect signature for the given public key') + } + function qr(e, r) { + var a = [] + i(r), (e = m(a, e, 'seed')) + var _, + s = 0 | t._crypto_sign_seedbytes() + e.length !== s && b(a, 'invalid seed length'), (_ = u(e)), a.push(_) + var n = new l(0 | t._crypto_sign_publickeybytes()), + c = n.address + a.push(c) + var o = new l(0 | t._crypto_sign_secretkeybytes()), + h = o.address + if ((a.push(h), 0 == (0 | t._crypto_sign_seed_keypair(c, h, _)))) { + var y = { publicKey: p(n, r), privateKey: p(o, r), keyType: 'ed25519' } + return v(a), y + } + g(a, 'invalid usage') + } + function jr(e, r, a) { + var _ = [] + i(a), f(_, e, 'state_address') + var s = u((r = m(_, r, 'message_chunk'))), + n = r.length + _.push(s), 0 != (0 | t._crypto_sign_update(e, s, n)) && g(_, 'invalid usage'), v(_) + } + function zr(e, r, a) { + var _ = [] + e = m(_, e, 'signature') + var s, + n = 0 | t._crypto_sign_bytes() + e.length !== n && b(_, 'invalid signature length'), (s = u(e)), _.push(s) + var c = u((r = m(_, r, 'message'))), + o = r.length + _.push(c), (a = m(_, a, 'publicKey')) + var h, + p = 0 | t._crypto_sign_publickeybytes() + a.length !== p && b(_, 'invalid publicKey length'), (h = u(a)), _.push(h) + var y = 0 == (0 | t._crypto_sign_verify_detached(s, c, o, 0, h)) + return v(_), y + } + function Wr(e, r, a, _) { + var s = [] + i(_), + f(s, e, 'outLength'), + ('number' != typeof e || (0 | e) !== e || e < 0) && + b(s, 'outLength must be an unsigned integer'), + (r = m(s, r, 'key')) + var n, + c = 0 | t._crypto_stream_chacha20_keybytes() + r.length !== c && b(s, 'invalid key length'), + (n = u(r)), + s.push(n), + (a = m(s, a, 'nonce')) + var o, + h = 0 | t._crypto_stream_chacha20_noncebytes() + a.length !== h && b(s, 'invalid nonce length'), (o = u(a)), s.push(o) + var y = new l(0 | e), + d = y.address + s.push(d), t._crypto_stream_chacha20(d, e, 0, o, n) + var g = p(y, _) + return v(s), g + } + function Jr(e, r, a, _) { + var s = [] + i(_) + var n = u((e = m(s, e, 'input_message'))), + c = e.length + s.push(n), (r = m(s, r, 'nonce')) + var o, + h = 0 | t._crypto_stream_chacha20_ietf_noncebytes() + r.length !== h && b(s, 'invalid nonce length'), + (o = u(r)), + s.push(o), + (a = m(s, a, 'key')) + var y, + d = 0 | t._crypto_stream_chacha20_ietf_keybytes() + a.length !== d && b(s, 'invalid key length'), (y = u(a)), s.push(y) + var f = new l(0 | c), + E = f.address + if ((s.push(E), 0 === t._crypto_stream_chacha20_ietf_xor(E, n, c, 0, o, y))) { + var x = p(f, _) + return v(s), x + } + g(s, 'invalid usage') + } + function Qr(e, r, a, _, s) { + var n = [] + i(s) + var c = u((e = m(n, e, 'input_message'))), + o = e.length + n.push(c), (r = m(n, r, 'nonce')) + var h, + y = 0 | t._crypto_stream_chacha20_ietf_noncebytes() + r.length !== y && b(n, 'invalid nonce length'), + (h = u(r)), + n.push(h), + f(n, a, 'nonce_increment'), + ('number' != typeof a || (0 | a) !== a || a < 0) && + b(n, 'nonce_increment must be an unsigned integer'), + (_ = m(n, _, 'key')) + var d, + E = 0 | t._crypto_stream_chacha20_ietf_keybytes() + _.length !== E && b(n, 'invalid key length'), (d = u(_)), n.push(d) + var x = new l(0 | o), + k = x.address + if ((n.push(k), 0 === t._crypto_stream_chacha20_ietf_xor_ic(k, c, o, 0, h, a, d))) { + var S = p(x, s) + return v(n), S + } + g(n, 'invalid usage') + } + function Zr(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_stream_chacha20_keybytes()), + _ = a.address + r.push(_), t._crypto_stream_chacha20_keygen(_) + var s = p(a, e) + return v(r), s + } + function $r(e, r, a, _) { + var s = [] + i(_) + var n = u((e = m(s, e, 'input_message'))), + c = e.length + s.push(n), (r = m(s, r, 'nonce')) + var o, + h = 0 | t._crypto_stream_chacha20_noncebytes() + r.length !== h && b(s, 'invalid nonce length'), + (o = u(r)), + s.push(o), + (a = m(s, a, 'key')) + var y, + d = 0 | t._crypto_stream_chacha20_keybytes() + a.length !== d && b(s, 'invalid key length'), (y = u(a)), s.push(y) + var f = new l(0 | c), + E = f.address + if ((s.push(E), 0 === t._crypto_stream_chacha20_xor(E, n, c, 0, o, y))) { + var x = p(f, _) + return v(s), x + } + g(s, 'invalid usage') + } + function et(e, r, a, _, s) { + var n = [] + i(s) + var c = u((e = m(n, e, 'input_message'))), + o = e.length + n.push(c), (r = m(n, r, 'nonce')) + var h, + y = 0 | t._crypto_stream_chacha20_noncebytes() + r.length !== y && b(n, 'invalid nonce length'), + (h = u(r)), + n.push(h), + f(n, a, 'nonce_increment'), + ('number' != typeof a || (0 | a) !== a || a < 0) && + b(n, 'nonce_increment must be an unsigned integer'), + (_ = m(n, _, 'key')) + var d, + E = 0 | t._crypto_stream_chacha20_keybytes() + _.length !== E && b(n, 'invalid key length'), (d = u(_)), n.push(d) + var x = new l(0 | o), + k = x.address + if ((n.push(k), 0 === t._crypto_stream_chacha20_xor_ic(k, c, o, 0, h, a, 0, d))) { + var S = p(x, s) + return v(n), S + } + g(n, 'invalid usage') + } + function rt(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_stream_keybytes()), + _ = a.address + r.push(_), t._crypto_stream_keygen(_) + var s = p(a, e) + return v(r), s + } + function tt(e) { + var r = [] + i(e) + var a = new l(0 | t._crypto_stream_xchacha20_keybytes()), + _ = a.address + r.push(_), t._crypto_stream_xchacha20_keygen(_) + var s = p(a, e) + return v(r), s + } + function at(e, r, a, _) { + var s = [] + i(_) + var n = u((e = m(s, e, 'input_message'))), + c = e.length + s.push(n), (r = m(s, r, 'nonce')) + var o, + h = 0 | t._crypto_stream_xchacha20_noncebytes() + r.length !== h && b(s, 'invalid nonce length'), + (o = u(r)), + s.push(o), + (a = m(s, a, 'key')) + var y, + d = 0 | t._crypto_stream_xchacha20_keybytes() + a.length !== d && b(s, 'invalid key length'), (y = u(a)), s.push(y) + var f = new l(0 | c), + E = f.address + if ((s.push(E), 0 === t._crypto_stream_xchacha20_xor(E, n, c, 0, o, y))) { + var x = p(f, _) + return v(s), x + } + g(s, 'invalid usage') + } + function _t(e, r, a, _, s) { + var n = [] + i(s) + var c = u((e = m(n, e, 'input_message'))), + o = e.length + n.push(c), (r = m(n, r, 'nonce')) + var h, + y = 0 | t._crypto_stream_xchacha20_noncebytes() + r.length !== y && b(n, 'invalid nonce length'), + (h = u(r)), + n.push(h), + f(n, a, 'nonce_increment'), + ('number' != typeof a || (0 | a) !== a || a < 0) && + b(n, 'nonce_increment must be an unsigned integer'), + (_ = m(n, _, 'key')) + var d, + E = 0 | t._crypto_stream_xchacha20_keybytes() + _.length !== E && b(n, 'invalid key length'), (d = u(_)), n.push(d) + var x = new l(0 | o), + k = x.address + if ((n.push(k), 0 === t._crypto_stream_xchacha20_xor_ic(k, c, o, 0, h, a, 0, d))) { + var S = p(x, s) + return v(n), S + } + g(n, 'invalid usage') + } + function st(e, r) { + var a = [] + i(r), + f(a, e, 'length'), + ('number' != typeof e || (0 | e) !== e || e < 0) && + b(a, 'length must be an unsigned integer') + var _ = new l(0 | e), + s = _.address + a.push(s), t._randombytes_buf(s, e) + var n = p(_, r) + return v(a), n + } + function nt(e, r, a) { + var _ = [] + i(a), + f(_, e, 'length'), + ('number' != typeof e || (0 | e) !== e || e < 0) && + b(_, 'length must be an unsigned integer'), + (r = m(_, r, 'seed')) + var s, + n = 0 | t._randombytes_seedbytes() + r.length !== n && b(_, 'invalid seed length'), (s = u(r)), _.push(s) + var c = new l(0 | e), + o = c.address + _.push(o), t._randombytes_buf_deterministic(o, e, s) + var h = p(c, a) + return v(_), h + } + function ct(e) { + i(e), t._randombytes_close() + } + function ot(e) { + i(e) + var r = t._randombytes_random() >>> 0 + return v([]), r + } + function ht(e, r) { + var a = [] + i(r) + for (var _ = t._malloc(24), s = 0; s < 6; s++) + t.setValue( + _ + 4 * s, + t.Runtime.addFunction( + e[['implementation_name', 'random', 'stir', 'uniform', 'buf', 'close'][s]] + ), + 'i32' + ) + 0 != (0 | t._randombytes_set_implementation(_)) && + g(a, 'unsupported implementation'), + v(a) + } + function pt(e) { + i(e), t._randombytes_stir() + } + function yt(e, r) { + var a = [] + i(r), + f(a, e, 'upper_bound'), + ('number' != typeof e || (0 | e) !== e || e < 0) && + b(a, 'upper_bound must be an unsigned integer') + var _ = t._randombytes_uniform(e) >>> 0 + return v(a), _ + } + function it() { + var e = t._sodium_version_string(), + r = t.UTF8ToString(e) + return v([]), r + } + return ( + (l.prototype.to_Uint8Array = function () { + var e = new Uint8Array(this.length) + return e.set(t.HEAPU8.subarray(this.address, this.address + this.length)), e + }), + (e.add = function (e, r) { + if (!(e instanceof Uint8Array && r instanceof Uint8Array)) + throw new TypeError('Only Uint8Array instances can added') + var t = e.length, + a = 0, + _ = 0 + if (r.length != e.length) + throw new TypeError('Arguments must have the same length') + for (_ = 0; _ < t; _++) (a >>= 8), (a += e[_] + r[_]), (e[_] = 255 & a) + }), + (e.base64_variants = c), + (e.compare = function (e, r) { + if (!(e instanceof Uint8Array && r instanceof Uint8Array)) + throw new TypeError('Only Uint8Array instances can be compared') + if (e.length !== r.length) + throw new TypeError('Only instances of identical length can be compared') + for (var t = 0, a = 1, _ = e.length; _-- > 0; ) + (t |= ((r[_] - e[_]) >> 8) & a), (a &= ((r[_] ^ e[_]) - 1) >> 8) + return t + t + a - 1 + }), + (e.from_base64 = function (e, r) { + r = o(r) + var a, + _ = [], + s = new l((3 * (e = m(_, e, 'input')).length) / 4), + n = u(e), + c = d(4), + h = d(4) + return ( + _.push(n), + _.push(s.address), + _.push(s.result_bin_len_p), + _.push(s.b64_end_p), + 0 !== t._sodium_base642bin(s.address, s.length, n, e.length, 0, c, h, r) && + g(_, 'invalid input'), + t.getValue(h, 'i32') - n !== e.length && g(_, 'incomplete input'), + (s.length = t.getValue(c, 'i32')), + (a = s.to_Uint8Array()), + v(_), + a + ) + }), + (e.from_hex = function (e) { + var r, + a = [], + _ = new l((e = m(a, e, 'input')).length / 2), + s = u(e), + n = d(4) + return ( + a.push(s), + a.push(_.address), + a.push(_.hex_end_p), + 0 !== t._sodium_hex2bin(_.address, _.length, s, e.length, 0, 0, n) && + g(a, 'invalid input'), + t.getValue(n, 'i32') - s !== e.length && g(a, 'incomplete input'), + (r = _.to_Uint8Array()), + v(a), + r + ) + }), + (e.from_string = _), + (e.increment = function (e) { + if (!(e instanceof Uint8Array)) + throw new TypeError('Only Uint8Array instances can be incremented') + for (var r = 256, t = 0, a = e.length; t < a; t++) + (r >>= 8), (r += e[t]), (e[t] = 255 & r) + }), + (e.is_zero = function (e) { + if (!(e instanceof Uint8Array)) + throw new TypeError('Only Uint8Array instances can be checked') + for (var r = 0, t = 0, a = e.length; t < a; t++) r |= e[t] + return 0 === r + }), + (e.libsodium = r), + (e.memcmp = function (e, r) { + if (!(e instanceof Uint8Array && r instanceof Uint8Array)) + throw new TypeError('Only Uint8Array instances can be compared') + if (e.length !== r.length) + throw new TypeError('Only instances of identical length can be compared') + for (var t = 0, a = 0, _ = e.length; a < _; a++) t |= e[a] ^ r[a] + return 0 === t + }), + (e.memzero = function (e) { + if (!(e instanceof Uint8Array)) + throw new TypeError('Only Uint8Array instances can be wiped') + for (var r = 0, t = e.length; r < t; r++) e[r] = 0 + }), + (e.output_formats = function () { + return ['uint8array', 'text', 'hex', 'base64'] + }), + (e.pad = function (e, r) { + if (!(e instanceof Uint8Array)) throw new TypeError('buffer must be a Uint8Array') + if ((r |= 0) <= 0) throw new Error('block size must be > 0') + var a, + _ = [], + s = d(4), + n = 1, + c = 0, + o = 0 | e.length, + h = new l(o + r) + _.push(s), _.push(h.address) + for (var p = h.address, y = h.address + o + r; p < y; p++) + (t.HEAPU8[p] = e[c]), + (c += n = + 1 & + ~(((65535 & (((o -= n) >>> 48) | (o >>> 32) | (o >>> 16) | o)) - 1) >> 16)) + return ( + 0 !== t._sodium_pad(s, h.address, e.length, r, h.length) && + g(_, 'internal error'), + (h.length = t.getValue(s, 'i32')), + (a = h.to_Uint8Array()), + v(_), + a + ) + }), + (e.unpad = function (e, r) { + if (!(e instanceof Uint8Array)) throw new TypeError('buffer must be a Uint8Array') + if ((r |= 0) <= 0) throw new Error('block size must be > 0') + var a = [], + _ = u(e), + s = d(4) + return ( + a.push(_), + a.push(s), + 0 !== t._sodium_unpad(s, _, e.length, r) && g(a, 'unsupported/invalid padding'), + (e = (e = new Uint8Array(e)).subarray(0, t.getValue(s, 'i32'))), + v(a), + e + ) + }), + (e.ready = a), + (e.symbols = function () { + return Object.keys(e).sort() + }), + (e.to_base64 = h), + (e.to_hex = n), + (e.to_string = s), + e + ) + } + var t = + 'object' == typeof e.sodium && 'function' == typeof e.sodium.onload + ? e.sodium.onload + : null + 'function' == typeof define && define.amd + ? define(['exports', 'libsodium'], r) + : 'object' == typeof exports && 'string' != typeof exports.nodeName + ? r(exports, require('libsodium')) + : (e.sodium = r((e.commonJsStrict = {}), e.libsodium)), + t && + e.sodium.ready.then(function () { + t(e.sodium) + }) + })(this) + }, + { libsodium: 154 } + ], + 154: [ + function (require, module, exports) { + ;(function ( + process, + global, + Buffer, + __argument0, + __argument1, + __argument2, + __argument3, + __dirname + ) { + ;(function () { + !(function (A) { + function I(A) { + 'use strict' + var I + void 0 === (I = A) && (I = {}) + var g = I + 'object' != typeof g.sodium && + ('object' == typeof global + ? (g = global) + : 'object' == typeof window && (g = window)), + 'object' == typeof g.sodium && + 'number' == typeof g.sodium.totalMemory && + (I.TOTAL_MEMORY = g.sodium.totalMemory) + var B = I + return ( + (I.ready = new Promise(function (A, I) { + ;((Q = B).onAbort = I), + (Q.print = function (A) {}), + (Q.printErr = function (A) {}), + (Q.onRuntimeInitialized = function () { + try { + Q._crypto_secretbox_keybytes(), A() + } catch (A) { + I(A) + } + }), + (Q.useBackupModule = function () { + return new Promise(function (A, I) { + ;((Q = {}).onAbort = I), + (Q.onRuntimeInitialized = function () { + Object.keys(B).forEach(function (A) { + 'getRandomValue' !== A && delete B[A] + }), + Object.keys(Q).forEach(function (A) { + B[A] = Q[A] + }), + A() + }) + var g, + Q = void 0 !== Q ? Q : {}, + C = {} + for (g in Q) Q.hasOwnProperty(g) && (C[g] = Q[g]) + var E = [], + i = !1, + n = !1, + a = !1, + r = !1 + ;(i = 'object' == typeof window), + (n = 'function' == typeof importScripts), + (a = + 'object' == typeof process && + 'object' == typeof process.versions && + 'string' == typeof process.versions.node), + (r = !i && !a && !n) + var o, + e, + t, + f, + c, + y = '' + function s(A) { + return Q.locateFile ? Q.locateFile(A, y) : y + A + } + a + ? ((y = n ? require('path').dirname(y) + '/' : __dirname + '/'), + (o = function (A, I) { + var g = bA(A) + return g + ? I + ? g + : g.toString() + : (f || (f = require('fs')), + c || (c = require('path')), + (A = c.normalize(A)), + f.readFileSync(A, I ? null : 'utf8')) + }), + (t = function (A) { + var I = o(A, !0) + return I.buffer || (I = new Uint8Array(I)), G(I.buffer), I + }), + process.argv.length > 1 && process.argv[1].replace(/\\/g, '/'), + (E = process.argv.slice(2)), + 'undefined' != typeof module && (module.exports = Q), + (Q.inspect = function () { + return '[Emscripten Module object]' + })) + : r + ? ('undefined' != typeof read && + (o = function (A) { + var I = bA(A) + return I ? _A(I) : read(A) + }), + (t = function (A) { + var I + return (I = bA(A)) + ? I + : 'function' == typeof readbuffer + ? new Uint8Array(readbuffer(A)) + : (G('object' == typeof (I = read(A, 'binary'))), I) + }), + 'undefined' != typeof scriptArgs + ? (E = scriptArgs) + : void 0 !== arguments && (E = arguments), + 'undefined' != typeof print && + ('undefined' == typeof console && (console = {}), + (console.log = print), + (console.warn = console.error = + 'undefined' != typeof printErr ? printErr : print))) + : (i || n) && + (n + ? (y = self.location.href) + : 'undefined' != typeof document && + document.currentScript && + (y = document.currentScript.src), + (y = + 0 !== y.indexOf('blob:') + ? y.substr(0, y.lastIndexOf('/') + 1) + : ''), + (o = function (A) { + try { + var I = new XMLHttpRequest() + return I.open('GET', A, !1), I.send(null), I.responseText + } catch (I) { + var g = bA(A) + if (g) return _A(g) + throw I + } + }), + n && + (t = function (A) { + try { + var I = new XMLHttpRequest() + return ( + I.open('GET', A, !1), + (I.responseType = 'arraybuffer'), + I.send(null), + new Uint8Array(I.response) + ) + } catch (I) { + var g = bA(A) + if (g) return g + throw I + } + }), + (e = function (A, I, g) { + var B = new XMLHttpRequest() + B.open('GET', A, !0), + (B.responseType = 'arraybuffer'), + (B.onload = function () { + if (200 == B.status || (0 == B.status && B.response)) + I(B.response) + else { + var Q = bA(A) + Q ? I(Q.buffer) : g() + } + }), + (B.onerror = g), + B.send(null) + })), + Q.print + var w, + h = Q.printErr || void 0 + for (g in C) C.hasOwnProperty(g) && (Q[g] = C[g]) + ;(C = null), + Q.arguments && (E = Q.arguments), + Q.thisProgram && Q.thisProgram, + Q.quit && Q.quit, + Q.wasmBinary && (w = Q.wasmBinary), + Q.noExitRuntime && Q.noExitRuntime + var D, + u = { + Memory: function (A) { + this.buffer = new ArrayBuffer(65536 * A.initial) + }, + Module: function (A) {}, + Instance: function (A, I) { + this.exports = (function (A) { + for (var I, g = new Uint8Array(123), B = 25; B >= 0; --B) + (g[48 + B] = 52 + B), (g[65 + B] = B), (g[97 + B] = 26 + B) + function Q(A, I, B) { + for ( + var Q, + C, + E = 0, + i = I, + n = B.length, + a = + I + + ((3 * n) >> 2) - + ('=' == B[n - 2]) - + ('=' == B[n - 1]); + E < n; + E += 4 + ) + (Q = g[B.charCodeAt(E + 1)]), + (C = g[B.charCodeAt(E + 2)]), + (A[i++] = (g[B.charCodeAt(E)] << 2) | (Q >> 4)), + i < a && (A[i++] = (Q << 4) | (C >> 2)), + i < a && (A[i++] = (C << 6) | g[B.charCodeAt(E + 3)]) + } + return ( + (g[43] = 62), + (g[47] = 63), + (function (A) { + var g = A.a, + B = g.buffer + g.grow = function (A) { + A |= 0 + var Q = 0 | Wg(), + o = (Q + A) | 0 + if (Q < o && o < 65536) { + var e = new ArrayBuffer(r(o, 65536)) + new Int8Array(e).set(C), + (C = new Int8Array(e)), + (E = new Int16Array(e)), + (i = new Int32Array(e)), + (n = new Uint8Array(e)), + new Uint16Array(e), + (a = new Uint32Array(e)), + new Float32Array(e), + new Float64Array(e), + (B = e), + (g.buffer = B), + (I = n) + } + return Q + } + var C = new Int8Array(B), + E = new Int16Array(B), + i = new Int32Array(B), + n = new Uint8Array(B), + a = (new Uint16Array(B), new Uint32Array(B)), + r = (new Float32Array(B), new Float64Array(B), Math.imul), + o = (Math.fround, Math.abs, Math.clz32), + e = + (Math.min, + Math.max, + Math.floor, + Math.ceil, + Math.trunc, + Math.sqrt, + A.abort), + t = A.b, + f = A.c, + c = A.d, + y = A.e, + s = A.f, + w = A.g, + h = 5279312, + D = 0, + u = 0, + p = 0 + function l(A, I) { + var g, + B, + Q, + E, + a = 0, + r = 0, + o = 0, + e = 0, + t = 0, + f = 0, + c = 0, + y = 0, + s = 0, + w = 0, + D = 0, + u = 0, + l = 0, + F = 0, + G = 0, + k = 0, + _ = 0, + H = 0, + Y = 0, + b = 0, + m = 0, + v = 0, + U = 0, + S = 0, + N = 0, + M = 0, + d = 0, + P = 0, + R = 0, + J = 0, + x = 0, + L = 0, + K = 0, + q = 0, + V = 0, + W = 0, + T = 0, + j = 0, + Z = 0, + O = 0, + z = 0, + $ = 0, + AA = 0, + IA = 0, + gA = 0, + BA = 0, + QA = 0, + CA = 0, + EA = 0, + iA = 0, + nA = 0, + aA = 0, + rA = 0, + oA = 0, + eA = 0, + tA = 0, + fA = 0, + cA = 0, + yA = 0, + sA = 0, + wA = 0, + hA = 0, + DA = 0 + for ( + h = W = (h - 256) | 0; + (V = ((K = Z << 3) + ((W + 128) | 0)) | 0), + (QA = + n[(4 + (K = (I + K) | 0)) | 0] | + (n[(K + 5) | 0] << 8) | + (n[(K + 6) | 0] << 16) | + (n[(K + 7) | 0] << 24)), + (i[V >> 2] = + n[0 | K] | + (n[(K + 1) | 0] << 8) | + (n[(K + 2) | 0] << 16) | + (n[(K + 3) | 0] << 24)), + (i[(V + 4) >> 2] = QA), + 16 != (0 | (Z = (Z + 1) | 0)); + + ); + for ( + g = X(W, A, 64), + K = i[(I = g) >> 2], + Z = i[(I + 4) >> 2], + a = K, + K = + ((QA = i[(I + 32) >> 2]) + + (W = i[(I + 128) >> 2])) | + 0, + I = (($ = i[(I + 36) >> 2]) + i[(I + 132) >> 2]) | 0, + I = K >>> 0 < W >>> 0 ? (I + 1) | 0 : I, + W = K, + I = (I + Z) | 0, + W = I = + (K = (a + K) | 0) >>> 0 < W >>> 0 ? (I + 1) | 0 : I, + x = ug( + (Z = K) ^ + (n[0 | (K = (A - -64) | 0)] | + (n[(K + 1) | 0] << 8) | + (n[(K + 2) | 0] << 16) | + (n[(K + 3) | 0] << 24)) ^ + -1377402159, + I ^ + (n[(K + 4) | 0] | + (n[(K + 5) | 0] << 8) | + (n[(K + 6) | 0] << 16) | + (n[(K + 7) | 0] << 24)) ^ + 1359893119, + 32 + ), + K = I = p, + I = (I + 1779033703) | 0, + a = QA ^ (V = (x - 205731576) | 0), + QA = I = V >>> 0 < 4089235720 ? (I + 1) | 0 : I, + b = ug(a, $ ^ I, 24), + m = I = p, + j = K, + a = x, + I = (I + W) | 0, + I = + ((I = + (x = (b + Z) | 0) >>> 0 < Z >>> 0 + ? (I + 1) | 0 + : I) + + (t = B = i[(g + 140) >> 2])) | + 0, + a = ug( + a ^ (o = Z = ((K = i[(g + 136) >> 2]) + x) | 0), + (G = x >>> 0 > o >>> 0 ? (I + 1) | 0 : I) ^ j, + 16 + ), + I = (QA + (d = p)) | 0, + t = ug( + (l = Z = (V + a) | 0) ^ b, + (W = V >>> 0 > l >>> 0 ? (I + 1) | 0 : I) ^ m, + 63 + ), + f = p, + V = i[(g + 12) >> 2], + Z = + ((b = i[(g + 144) >> 2]) + + ($ = QA = i[(g + 40) >> 2])) | + 0, + I = + ((T = i[(g + 148) >> 2]) + (j = i[(g + 44) >> 2])) | + 0, + I = Z >>> 0 < $ >>> 0 ? (I + 1) | 0 : I, + $ = Z, + I = (I + V) | 0, + I = + (Z = (Z + i[(g + 8) >> 2]) | 0) >>> 0 < $ >>> 0 + ? (I + 1) | 0 + : I, + x = ug( + Z ^ + (n[(A + 72) | 0] | + (n[(A + 73) | 0] << 8) | + (n[(A + 74) | 0] << 16) | + (n[(A + 75) | 0] << 24)) ^ + 725511199, + (n[(A + 76) | 0] | + (n[(A + 77) | 0] << 8) | + (n[(A + 78) | 0] << 16) | + (n[(A + 79) | 0] << 24)) ^ + I ^ + -1694144372, + 32 + ), + j = ug( + (r = (V = (x - 2067093701) | 0) ^ QA), + j ^ + (m = + ((QA = p) - + (((x >>> 0 < 2067093701) + 1150833018) | 0)) | + 0), + 24 + ), + c = i[(g + 156) >> 2], + r = j, + I = (I + ($ = p)) | 0, + I = + ((I = + (j = (j + Z) | 0) >>> 0 < Z >>> 0 + ? (I + 1) | 0 + : I) + + c) | + 0, + eA = ug( + (u = Z = (j + i[(g + 152) >> 2]) | 0) ^ x, + (k = j >>> 0 > u >>> 0 ? (I + 1) | 0 : I) ^ QA, + 16 + ), + I = (m + (H = p)) | 0, + cA = Z = (V + eA) | 0, + x = ug( + r ^ Z, + (V = V >>> 0 > Z >>> 0 ? (I + 1) | 0 : I) ^ $, + 63 + ), + m = p, + QA = i[(g + 20) >> 2], + Z = + ((U = i[(g + 160) >> 2]) + (j = i[(g + 48) >> 2])) | + 0, + I = + ((iA = i[(g + 164) >> 2]) + + (y = i[(g + 52) >> 2])) | + 0, + $ = Z, + I = + ((I = Z >>> 0 < j >>> 0 ? (I + 1) | 0 : I) + QA) | + 0, + rA = Z = (Z + i[(g + 16) >> 2]) | 0, + Z = Z >>> 0 < $ >>> 0 ? (I + 1) | 0 : I, + s = ug( + rA ^ + (n[(A + 80) | 0] | + (n[(A + 81) | 0] << 8) | + (n[(A + 82) | 0] << 16) | + (n[(A + 83) | 0] << 24)) ^ + -79577749, + Z ^ + (n[(A + 84) | 0] | + (n[(A + 85) | 0] << 8) | + (n[(A + 86) | 0] << 16) | + (n[(A + 87) | 0] << 24)) ^ + 528734635, + 32 + ), + QA = I = p, + I = (I + 1013904242) | 0, + r = j ^ ($ = (s - 23791573) | 0), + j = I = $ >>> 0 < 4271175723 ? (I + 1) | 0 : I, + I = ug(r, y ^ I, 24), + c = QA, + Q = i[(g + 172) >> 2], + r = I, + e = s, + s = I, + rA = (I + rA) | 0, + I = ((y = p) + Z) | 0, + I = + ((I = s >>> 0 > rA >>> 0 ? (I + 1) | 0 : I) + + (J = Q)) | + 0, + AA = ug( + e ^ + (F = Z = + ((QA = i[(g + 168) >> 2]) + (s = rA)) | 0), + (J = s >>> 0 > F >>> 0 ? (I + 1) | 0 : I) ^ c, + 16 + ), + I = (j + (M = p)) | 0, + y = ug( + r ^ (_ = Z = ($ + AA) | 0), + (j = _ >>> 0 < $ >>> 0 ? (I + 1) | 0 : I) ^ y, + 63 + ), + c = p, + s = i[(g + 28) >> 2], + $ = + ((Z = i[(g + 176) >> 2]) + + (D = rA = i[(g + 56) >> 2])) | + 0, + I = + ((yA = i[(g + 180) >> 2]) + + (w = i[(g + 60) >> 2])) | + 0, + I = + ((I = D >>> 0 > $ >>> 0 ? (I + 1) | 0 : I) + s) | 0, + I = + (D = $) >>> 0 > + (v = $ = (D + i[(g + 24) >> 2]) | 0) >>> 0 + ? (I + 1) | 0 + : I, + S = ug( + v ^ + (n[(A + 88) | 0] | + (n[(A + 89) | 0] << 8) | + (n[(A + 90) | 0] << 16) | + (n[(A + 91) | 0] << 24)) ^ + 327033209, + I ^ + (n[(A + 92) | 0] | + (n[(A + 93) | 0] << 8) | + (n[(A + 94) | 0] << 16) | + (n[(A + 95) | 0] << 24)) ^ + 1541459225, + 32 + ), + s = ug( + (e = (r = ((s = S) + 1595750129) | 0) ^ rA), + w ^ + (rA = + (($ = p) - + (((s >>> 0 < 2699217167) + 1521486533) | 0)) | + 0), + 24 + ), + w = rA, + Y = $, + rA = i[(g + 188) >> 2], + e = s, + P = r, + I = ((D = p) + I) | 0, + I = + ((I = + (v = (s + v) | 0) >>> 0 < s >>> 0 + ? (I + 1) | 0 + : I) + + (N = rA)) | + 0, + O = s = (($ = i[(g + 184) >> 2]) + v) | 0, + r = ug( + s ^ S, + (r = Y) ^ (Y = s >>> 0 < v >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = ((I = w) + (w = p)) | 0, + v = s = (P + r) | 0, + S = D, + D = I = s >>> 0 < r >>> 0 ? (I + 1) | 0 : I, + e = ug(e ^ s, S ^ I, 63), + s = p, + S = m, + P = x, + L = _, + I = (m + G) | 0, + m = o = (o + x) | 0, + I = + ((I = o >>> 0 < x >>> 0 ? (I + 1) | 0 : I) + + (N = q = i[(g + 196) >> 2])) | + 0, + _ = ug( + (o = x = ((IA = i[(g + 192) >> 2]) + o) | 0) ^ r, + (x = m >>> 0 > o >>> 0 ? (I + 1) | 0 : I) ^ w, + 32 + ), + I = ((I = j) + (j = p)) | 0, + G = I = + (m = (L + (G = _)) | 0) >>> 0 < G >>> 0 + ? (I + 1) | 0 + : I, + I = ug(P ^ m, I ^ S, 24), + fA = i[(g + 204) >> 2], + P = I, + r = _, + w = o, + o = I, + _ = (w + I) | 0, + I = ((w = p) + x) | 0, + I = + ((I = o >>> 0 > _ >>> 0 ? (I + 1) | 0 : I) + + (N = fA)) | + 0, + CA = x = ((S = i[(g + 200) >> 2]) + (o = _)) | 0, + tA = ug( + r ^ x, + (o = o >>> 0 > x >>> 0 ? (I + 1) | 0 : I) ^ j, + 16 + ), + I = (G + (_ = p)) | 0, + N = ug( + P ^ (r = j = (m + tA) | 0), + (G = w) ^ (w = m >>> 0 > r >>> 0 ? (I + 1) | 0 : I), + 63 + ), + G = p, + j = c, + L = y, + I = (c + k) | 0, + I = + ((I = + (m = (y + u) | 0) >>> 0 < y >>> 0 + ? (I + 1) | 0 + : I) + + (P = oA = i[(g + 212) >> 2])) | + 0, + u = ug( + (R = a) ^ + (a = m = ((x = i[(g + 208) >> 2]) + (y = m)) | 0), + (y = y >>> 0 > a >>> 0 ? (I + 1) | 0 : I) ^ d, + 32 + ), + I = (D + (m = p)) | 0, + j = ug( + L ^ (c = (v + u) | 0), + (I = c >>> 0 < v >>> 0 ? (I + 1) | 0 : I) ^ j, + 24 + ), + d = I, + k = m, + z = i[(g + 220) >> 2], + L = j, + R = c, + I = ((c = p) + y) | 0, + I = + ((I = + (D = (a + j) | 0) >>> 0 < j >>> 0 + ? (I + 1) | 0 + : I) + + (P = z)) | + 0, + k = ug( + (D = j = ((m = i[(g + 216) >> 2]) + (y = D)) | 0) ^ + u, + (v = y >>> 0 > D >>> 0 ? (I + 1) | 0 : I) ^ k, + 16 + ), + I = ((a = p) + d) | 0, + aA = j = (R + (y = k)) | 0, + P = ug( + L ^ j, + (y = y >>> 0 > j >>> 0 ? (I + 1) | 0 : I) ^ c, + 63 + ), + c = p, + d = s, + L = e, + I = (s + J) | 0, + I = + ((I = + (e = (e + F) | 0) >>> 0 < F >>> 0 + ? (I + 1) | 0 + : I) + + (u = E = i[(g + 228) >> 2])) | + 0, + e = ug( + (J = s = ((j = i[(g + 224) >> 2]) + e) | 0) ^ eA, + (s = s >>> 0 < e >>> 0 ? (I + 1) | 0 : I) ^ H, + 32 + ), + I = ((H = p) + W) | 0, + l = F = (l + e) | 0, + W = ug( + L ^ F, + (I = F >>> 0 < e >>> 0 ? (I + 1) | 0 : I) ^ d, + 24 + ), + F = I, + L = i[(g + 236) >> 2], + u = W, + I = ((d = p) + s) | 0, + I = + ((I = + (J = (J + W) | 0) >>> 0 < W >>> 0 + ? (I + 1) | 0 + : I) + + L) | + 0, + nA = ug( + (J = W = ((BA = i[(g + 232) >> 2]) + (s = J)) | 0) ^ + e, + (W = H) ^ (H = s >>> 0 > J >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = ((I = F) + (F = p)) | 0, + s = ug( + u ^ (e = W = ((s = nA) + l) | 0), + (l = s >>> 0 > e >>> 0 ? (I + 1) | 0 : I) ^ d, + 63 + ), + d = p, + u = f, + gA = t, + EA = cA, + I = (f + Y) | 0, + I = + ((I = + (cA = (t + O) | 0) >>> 0 < t >>> 0 + ? (I + 1) | 0 + : I) + + (R = eA = i[(g + 244) >> 2])) | + 0, + f = I = + (t = ((W = i[(g + 240) >> 2]) + (f = cA)) | 0) >>> + 0 < + f >>> 0 + ? (I + 1) | 0 + : I, + AA = ug(t ^ AA, I ^ M, 32), + I = ((I = V) + (V = p)) | 0, + O = M = (EA + (Y = AA)) | 0, + u = ug( + gA ^ M, + (I = Y >>> 0 > M >>> 0 ? (I + 1) | 0 : I) ^ u, + 24 + ), + gA = EA = p, + M = I, + Y = V, + sA = u, + I = (f + EA) | 0, + I = + ((I = + (u = (t + u) | 0) >>> 0 < t >>> 0 + ? (I + 1) | 0 + : I) + + (cA = i[(g + 252) >> 2])) | + 0, + u = t = ((V = i[(g + 248) >> 2]) + (f = u)) | 0, + R = ug( + t ^ AA, + (R = Y) ^ (Y = t >>> 0 < f >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = ((I = M) + (M = p)) | 0, + AA = ug( + sA ^ (EA = t = ((f = R) + O) | 0), + (t = t >>> 0 < f >>> 0 ? (I + 1) | 0 : I) ^ gA, + 63 + ), + gA = I = p, + f = I, + sA = k, + I = (o + eA) | 0, + I = + ((I = + (k = W) >>> 0 > (O = (k + CA) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + f) | + 0, + O = ug( + sA ^ (f = k = ((o = O) + AA) | 0), + (k = o >>> 0 > f >>> 0 ? (I + 1) | 0 : I) ^ a, + 32 + ), + I = (l + (o = p)) | 0, + e = I = + (a = (e + O) | 0) >>> 0 < e >>> 0 ? (I + 1) | 0 : I, + CA = AA = ug(AA ^ a, gA ^ I, 24), + gA = I = p, + l = I, + wA = AA, + I = (k + oA) | 0, + I = + ((I = + (AA = (f + x) | 0) >>> 0 < f >>> 0 + ? (I + 1) | 0 + : I) + + l) | + 0, + CA = f = (CA + (k = AA)) | 0, + sA = ug( + f ^ O, + (l = o) ^ (o = f >>> 0 < k >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (e + (l = p)) | 0, + e = I = + (f = (a + sA) | 0) >>> 0 < a >>> 0 + ? (I + 1) | 0 + : I, + AA = ug(wA ^ (a = f), I ^ gA, 63), + k = p, + O = N, + I = (iA + (f = G)) | 0, + I = + ((I = + (N = (U + N) | 0) >>> 0 < U >>> 0 + ? (I + 1) | 0 + : I) + + v) | + 0, + U = I = + (G = (D + N) | 0) >>> 0 < D >>> 0 ? (I + 1) | 0 : I, + v = ug(G ^ nA, I ^ F, 32), + I = ((I = t) + (t = p)) | 0, + I = + (F = ((D = v) + EA) | 0) >>> 0 < D >>> 0 + ? (I + 1) | 0 + : I, + D = f, + f = I, + N = ug(O ^ F, D ^ I, 24), + iA = I = p, + D = I, + O = v, + I = (U + q) | 0, + I = + ((I = + (v = (G + IA) | 0) >>> 0 < G >>> 0 + ? (I + 1) | 0 + : I) + + D) | + 0, + I = + (G = ((U = v) + N) | 0) >>> 0 < U >>> 0 + ? (I + 1) | 0 + : I, + U = G, + D = I, + nA = ug(O ^ G, I ^ t, 16), + I = (f + (v = p)) | 0, + EA = t = (F + nA) | 0, + N = ug( + t ^ N, + (f = t >>> 0 < F >>> 0 ? (I + 1) | 0 : I) ^ iA, + 63 + ), + t = p, + G = c, + I = (c + fA) | 0, + I = + ((I = + (F = (S + P) | 0) >>> 0 < S >>> 0 + ? (I + 1) | 0 + : I) + + H) | + 0, + M = ug( + (S = c = (F + J) | 0) ^ R, + (c = c >>> 0 < J >>> 0 ? (I + 1) | 0 : I) ^ M, + 32 + ), + I = (w + (H = p)) | 0, + I = + r >>> 0 > (F = (r + M) | 0) >>> 0 ? (I + 1) | 0 : I, + r = G, + G = I, + r = w = ug(F ^ P, r ^ I, 24), + P = I = p, + J = I, + O = M, + I = (c + cA) | 0, + I = + ((I = + (w = ((M = V) + S) | 0) >>> 0 < M >>> 0 + ? (I + 1) | 0 + : I) + + J) | + 0, + R = c = (r + w) | 0, + gA = ug( + O ^ c, + (M = H) ^ (H = c >>> 0 < w >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (G + (J = p)) | 0, + P = ug( + (S = c = (F + gA) | 0) ^ r, + (c = c >>> 0 < F >>> 0 ? (I + 1) | 0 : I) ^ P, + 63 + ), + G = p, + r = s, + I = ((F = d) + L) | 0, + I = + ((I = + (M = (s + BA) | 0) >>> 0 < s >>> 0 + ? (I + 1) | 0 + : I) + + Y) | + 0, + w = ug( + (M = s = (u + M) | 0) ^ tA, + (s = s >>> 0 < u >>> 0 ? (I + 1) | 0 : I) ^ _, + 32 + ), + I = ((I = y) + (y = p)) | 0, + _ = ug( + r ^ (Y = d = (w + aA) | 0), + (I = d >>> 0 < w >>> 0 ? (I + 1) | 0 : I) ^ F, + 24 + ), + u = d = p, + F = I, + O = Y, + Y = w, + w = ((I = M) + (M = Z)) | 0, + I = (s + yA) | 0, + I = + ((I = w >>> 0 < M >>> 0 ? (I + 1) | 0 : I) + d) | 0, + M = s = (w + (r = _)) | 0, + w = I = s >>> 0 < w >>> 0 ? (I + 1) | 0 : I, + Y = ug(Y ^ s, I ^ y, 16), + I = ((d = p) + F) | 0, + O = ug( + _ ^ (r = y = (O + (s = Y)) | 0), + (s = r >>> 0 < s >>> 0 ? (I + 1) | 0 : I) ^ u, + 63 + ), + y = p, + F = t, + _ = S, + u = Y, + I = (o + B) | 0, + I = + ((I = + (Y = K) >>> 0 > (S = (Y + CA) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + t) | + 0, + S = ug( + u ^ (t = Y = (S + N) | 0), + (o = d) ^ (d = t >>> 0 < S >>> 0 ? (I + 1) | 0 : I), + 32 + ), + I = ((I = c) + (c = p)) | 0, + I = + (o = S) >>> 0 > (Y = (_ + o) | 0) >>> 0 + ? (I + 1) | 0 + : I, + u = _ = ug((o = Y) ^ N, I ^ F, 24), + N = F = p, + Y = I, + CA = S, + I = (d + E) | 0, + I = + ((I = + (S = (t + j) | 0) >>> 0 < t >>> 0 + ? (I + 1) | 0 + : I) + + F) | + 0, + F = t = ((d = S) + _) | 0, + tA = ug( + CA ^ t, + (S = t >>> 0 < d >>> 0 ? (I + 1) | 0 : I) ^ c, + 16 + ), + I = ((I = Y) + (Y = p)) | 0, + o = t = ((c = tA) + o) | 0, + iA = ug( + t ^ u, + (_ = t >>> 0 < c >>> 0 ? (I + 1) | 0 : I) ^ N, + 63 + ), + c = p, + N = r, + I = (D + (t = G)) | 0, + I = + ((I = + (d = (U + P) | 0) >>> 0 < U >>> 0 + ? (I + 1) | 0 + : I) + + (u = aA = i[(g + 132) >> 2])) | + 0, + d = I = + (G = ((r = i[(g + 128) >> 2]) + d) | 0) >>> 0 < + d >>> 0 + ? (I + 1) | 0 + : I, + D = ug(G ^ sA, I ^ l, 32), + I = ((I = s) + (s = p)) | 0, + l = U = (N + D) | 0, + N = u = + ug( + U ^ P, + (I = U >>> 0 < D >>> 0 ? (I + 1) | 0 : I) ^ t, + 24 + ), + P = t = p, + U = I, + CA = D, + I = (d + T) | 0, + d = D = (b + G) | 0, + I = + ((I = D >>> 0 < G >>> 0 ? (I + 1) | 0 : I) + t) | 0, + t = ug( + CA ^ (D = G = (D + u) | 0), + (t = s) ^ (s = D >>> 0 < d >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = ((I = U) + (U = p)) | 0, + l = G = (t + l) | 0, + fA = ug( + G ^ N, + (u = G >>> 0 < t >>> 0 ? (I + 1) | 0 : I) ^ P, + 63 + ), + G = p, + d = y, + I = (H + z) | 0, + I = + ((I = + (P = (m + R) | 0) >>> 0 < m >>> 0 + ? (I + 1) | 0 + : I) + + y) | + 0, + I = + (H = ((N = P) + O) | 0) >>> 0 < N >>> 0 + ? (I + 1) | 0 + : I, + N = H, + y = I, + P = ug(H ^ nA, I ^ v, 32), + I = (e + (H = p)) | 0, + I = + a >>> 0 > (v = (a + P) | 0) >>> 0 ? (I + 1) | 0 : I, + O = e = ug((a = v) ^ O, I ^ d, 24), + CA = d = p, + v = I, + R = a, + I = (y + rA) | 0, + I = + (a = $) >>> 0 > (e = (a + N) | 0) >>> 0 + ? (I + 1) | 0 + : I, + a = e, + I = (I + d) | 0, + e = H, + H = I = + a >>> 0 > (y = (O + a) | 0) >>> 0 ? (I + 1) | 0 : I, + nA = ug((a = y) ^ P, e ^ I, 16), + I = ((y = p) + v) | 0, + O = ug( + (v = d = (R + (e = nA)) | 0) ^ O, + (I = e >>> 0 > v >>> 0 ? (I + 1) | 0 : I) ^ CA, + 63 + ), + d = p, + N = I, + P = t, + R = AA, + I = (Q + (e = k)) | 0, + I = + ((I = + (t = QA) >>> 0 > (AA = (t + AA) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + w) | + 0, + k = t = (M + AA) | 0, + w = ug( + t ^ gA, + (w = J) ^ (J = t >>> 0 < M >>> 0 ? (I + 1) | 0 : I), + 32 + ), + I = ((t = p) + f) | 0, + CA = M = (w + EA) | 0, + e = ug( + R ^ M, + (I = M >>> 0 < w >>> 0 ? (I + 1) | 0 : I) ^ e, + 24 + ), + gA = EA = p, + f = I, + M = t, + EA = e, + R = w, + I = (J + gA) | 0, + I = + ((I = + (w = (e + k) | 0) >>> 0 < k >>> 0 + ? (I + 1) | 0 + : I) + + (AA = i[(g + 156) >> 2])) | + 0, + J = k = ((t = i[(g + 152) >> 2]) + w) | 0, + e = M, + M = I = k >>> 0 < w >>> 0 ? (I + 1) | 0 : I, + R = ug(R ^ k, e ^ I, 16), + I = ((I = f) + (f = p)) | 0, + e = I = + (w = R) >>> 0 > (k = (w + CA) | 0) >>> 0 + ? (I + 1) | 0 + : I, + CA = ug(EA ^ (w = k), I ^ gA, 63), + EA = I = p, + k = I, + gA = v, + I = (S + z) | 0, + I = + ((I = + (v = (F + m) | 0) >>> 0 < F >>> 0 + ? (I + 1) | 0 + : I) + + k) | + 0, + k = F = (v + CA) | 0, + P = ug( + F ^ P, + (S = U) ^ (U = F >>> 0 < v >>> 0 ? (I + 1) | 0 : I), + 32 + ), + I = ((F = p) + N) | 0, + S = I = + (v = (gA + (S = P)) | 0) >>> 0 < S >>> 0 + ? (I + 1) | 0 + : I, + EA = CA = ug(CA ^ v, EA ^ I, 24), + gA = I = p, + N = I, + sA = P, + I = (U + q) | 0, + I = + ((I = + (P = (k + IA) | 0) >>> 0 < k >>> 0 + ? (I + 1) | 0 + : I) + + N) | + 0, + I = + (k = ((U = P) + CA) | 0) >>> 0 < U >>> 0 + ? (I + 1) | 0 + : I, + U = k, + N = F, + F = I, + CA = ug(sA ^ k, N ^ I, 16), + I = (S + (N = p)) | 0, + I = + (k = (v + CA) | 0) >>> 0 < v >>> 0 + ? (I + 1) | 0 + : I, + v = k, + S = I, + IA = ug(k ^ EA, I ^ gA, 63), + k = p, + P = c, + gA = iA, + I = (c + E) | 0, + I = + (s + + (j >>> 0 > (iA = (j + iA) | 0) >>> 0 + ? (I + 1) | 0 + : I)) | + 0, + q = c = (D + iA) | 0, + iA = ug( + c ^ nA, + (s = y) ^ (y = c >>> 0 < D >>> 0 ? (I + 1) | 0 : I), + 32 + ), + I = (e + (c = p)) | 0, + D = I = + (s = (w + iA) | 0) >>> 0 < w >>> 0 + ? (I + 1) | 0 + : I, + P = e = ug(gA ^ s, I ^ P, 24), + nA = I = p, + w = I, + I = (y + aA) | 0, + I = + ((I = + (e = (r + q) | 0) >>> 0 < r >>> 0 + ? (I + 1) | 0 + : I) + + w) | + 0, + q = y = (P + (r = e)) | 0, + iA = ug( + y ^ iA, + (w = y >>> 0 < r >>> 0 ? (I + 1) | 0 : I) ^ c, + 16 + ), + I = (D + (r = p)) | 0, + aA = y = (s + iA) | 0, + e = ug( + y ^ P, + (s = y >>> 0 < s >>> 0 ? (I + 1) | 0 : I) ^ nA, + 63 + ), + y = p, + I = (Q + (c = G)) | 0, + I = + (H + + ((D = QA) >>> 0 > (P = (D + fA) | 0) >>> 0 + ? (I + 1) | 0 + : I)) | + 0, + D = f, + f = I = + a >>> 0 > (G = (a + P) | 0) >>> 0 ? (I + 1) | 0 : I, + P = ug((a = G) ^ R, D ^ I, 32), + I = (_ + (G = p)) | 0, + I = + o >>> 0 > (H = (o + P) | 0) >>> 0 ? (I + 1) | 0 : I, + o = c, + c = I, + o = ug(H ^ fA, o ^ I, 24), + fA = I = p, + D = I, + gA = o, + I = (f + T) | 0, + I = + ((I = + (o = b) >>> 0 > (_ = (o + a) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + D) | + 0, + nA = f = (gA + (o = _)) | 0, + R = ug( + f ^ P, + (D = f >>> 0 < o >>> 0 ? (I + 1) | 0 : I) ^ G, + 16 + ), + I = (c + (o = p)) | 0, + P = f = (H + R) | 0, + _ = ug( + gA ^ f, + (G = f >>> 0 < H >>> 0 ? (I + 1) | 0 : I) ^ fA, + 63 + ), + f = p, + I = (cA + (c = d)) | 0, + I = + (M + + ((a = ((H = V) + O) | 0) >>> 0 < H >>> 0 + ? (I + 1) | 0 + : I)) | + 0, + H = I = + (d = (J + a) | 0) >>> 0 < J >>> 0 ? (I + 1) | 0 : I, + a = ug(d ^ tA, I ^ Y, 32), + I = (u + (J = p)) | 0, + Y = c, + c = I = + l >>> 0 > (M = (l + a) | 0) >>> 0 ? (I + 1) | 0 : I, + l = ug(M ^ O, Y ^ I, 24), + O = I = p, + Y = I, + gA = a, + I = (H + L) | 0, + I = + ((I = + (a = (d + BA) | 0) >>> 0 < d >>> 0 + ? (I + 1) | 0 + : I) + + Y) | + 0, + a = ug( + gA ^ (Y = d = (a + (u = l)) | 0), + (u = J) ^ (J = a >>> 0 > Y >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (c + (H = p)) | 0, + l = ug( + l ^ (u = d = (M + a) | 0), + (d = u >>> 0 < M >>> 0 ? (I + 1) | 0 : I) ^ O, + 63 + ), + c = p, + M = y, + O = e, + gA = a, + I = (F + oA) | 0, + F = a = (U + x) | 0, + I = + ((I = a >>> 0 < U >>> 0 ? (I + 1) | 0 : I) + y) | 0, + e = ug( + gA ^ (a = U = (a + e) | 0), + (y = F >>> 0 > a >>> 0 ? (I + 1) | 0 : I) ^ H, + 32 + ), + I = ((I = G) + (G = p)) | 0, + U = I = + (H = (e + P) | 0) >>> 0 < e >>> 0 ? (I + 1) | 0 : I, + P = M = ug(O ^ H, I ^ M, 24), + O = I = p, + F = I, + I = (y + eA) | 0, + I = + ((I = + (a = ((M = W) + a) | 0) >>> 0 < M >>> 0 + ? (I + 1) | 0 + : I) + + F) | + 0, + fA = y = (P + a) | 0, + tA = ug( + y ^ e, + (F = y >>> 0 < a >>> 0 ? (I + 1) | 0 : I) ^ G, + 16 + ), + I = (U + (M = p)) | 0, + P = ug( + (EA = y = (H + tA) | 0) ^ P, + (y = y >>> 0 < H >>> 0 ? (I + 1) | 0 : I) ^ O, + 63 + ), + G = p, + H = f, + e = _, + I = (w + AA) | 0, + I = + ((I = + (_ = (t + q) | 0) >>> 0 < t >>> 0 + ? (I + 1) | 0 + : I) + + f) | + 0, + f = I = + (w = _) >>> 0 > (U = (e + w) | 0) >>> 0 + ? (I + 1) | 0 + : I, + _ = ug((w = U) ^ CA, I ^ N, 32), + I = ((I = d) + (d = p)) | 0, + I = + (a = _) >>> 0 > (U = (a + u) | 0) >>> 0 + ? (I + 1) | 0 + : I, + u = e = ug(e ^ (a = U), I ^ H, 24), + U = I, + N = a, + a = _, + _ = ((I = w) + (w = Z)) | 0, + I = (f + yA) | 0, + I = + ((I = w >>> 0 > _ >>> 0 ? (I + 1) | 0 : I) + + (H = p)) | + 0, + I = + (f = ((w = _) + e) | 0) >>> 0 < w >>> 0 + ? (I + 1) | 0 + : I, + w = f, + _ = I, + a = ug(a ^ f, I ^ d, 16), + I = ((e = p) + U) | 0, + d = ug( + (CA = f = (N + a) | 0) ^ u, + (f = f >>> 0 < a >>> 0 ? (I + 1) | 0 : I) ^ H, + 63 + ), + H = p, + U = c, + N = l, + I = (D + rA) | 0, + I = + ((I = + (u = ((l = $) + nA) | 0) >>> 0 < l >>> 0 + ? (I + 1) | 0 + : I) + + c) | + 0, + l = D = (N + u) | 0, + c = I = D >>> 0 < u >>> 0 ? (I + 1) | 0 : I, + u = ug(D ^ iA, I ^ r, 32), + I = (S + (D = p)) | 0, + S = r = (v + u) | 0, + N = r = + ug( + N ^ r, + (I = r >>> 0 < v >>> 0 ? (I + 1) | 0 : I) ^ U, + 24 + ), + q = U = p, + v = I, + O = S, + I = (c + B) | 0, + I = + ((I = + (r = ((S = K) + l) | 0) >>> 0 < S >>> 0 + ? (I + 1) | 0 + : I) + + U) | + 0, + I = + (c = (N + r) | 0) >>> 0 < r >>> 0 ? (I + 1) | 0 : I, + S = c, + r = D, + D = I, + nA = ug(c ^ u, r ^ I, 16), + I = ((I = v) + (v = p)) | 0, + N = ug( + (c = (O + (U = nA)) | 0) ^ N, + (I = c >>> 0 < U >>> 0 ? (I + 1) | 0 : I) ^ q, + 63 + ), + U = p, + l = c, + u = I, + I = (J + (r = k)) | 0, + k = c = (Y + IA) | 0, + I = + ((I = c >>> 0 < Y >>> 0 ? (I + 1) | 0 : I) + + (q = i[(g + 204) >> 2])) | + 0, + k = I = + (c = ((O = i[(g + 200) >> 2]) + c) | 0) >>> 0 < + k >>> 0 + ? (I + 1) | 0 + : I, + Y = ug(c ^ R, I ^ o, 32), + I = ((I = s) + (s = p)) | 0, + I = + (o = Y) >>> 0 > (J = (o + aA) | 0) >>> 0 + ? (I + 1) | 0 + : I, + r = ug((o = J) ^ IA, I ^ r, 24), + R = aA = p, + J = I, + gA = o, + aA = Y, + I = (k + R) | 0, + I = + ((I = + (Y = (c + r) | 0) >>> 0 < c >>> 0 + ? (I + 1) | 0 + : I) + + (IA = i[(g + 164) >> 2])) | + 0, + Y = c = ((iA = i[(g + 160) >> 2]) + (k = Y)) | 0, + aA = ug( + aA ^ c, + (o = c >>> 0 < k >>> 0 ? (I + 1) | 0 : I) ^ s, + 16 + ), + I = ((I = J) + (J = p)) | 0, + r = ug( + r ^ (gA = c = (gA + (s = aA)) | 0), + (c = c >>> 0 < s >>> 0 ? (I + 1) | 0 : I) ^ R, + 63 + ), + R = I = p, + s = I, + sA = a, + I = (F + rA) | 0, + I = + ((I = + (a = ((k = $) + fA) | 0) >>> 0 < k >>> 0 + ? (I + 1) | 0 + : I) + + s) | + 0, + e = ug( + sA ^ (s = k = (a + r) | 0), + (k = a >>> 0 > s >>> 0 ? (I + 1) | 0 : I) ^ e, + 32 + ), + I = ((F = p) + u) | 0, + l = a = (l + e) | 0, + u = ug( + r ^ a, + (I = a >>> 0 < e >>> 0 ? (I + 1) | 0 : I) ^ R, + 24 + ), + R = r = p, + a = I, + fA = l, + sA = e, + I = (k + q) | 0, + I = + ((I = + (e = (s + O) | 0) >>> 0 < s >>> 0 + ? (I + 1) | 0 + : I) + + r) | + 0, + l = s = (e + u) | 0, + sA = ug( + sA ^ s, + (r = F) ^ (F = s >>> 0 < e >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = ((r = p) + a) | 0, + fA = ug( + (wA = s = (fA + (k = sA)) | 0) ^ u, + (s = s >>> 0 < k >>> 0 ? (I + 1) | 0 : I) ^ R, + 63 + ), + k = p, + I = (AA + (a = G)) | 0, + I = + ((I = + (e = (t + P) | 0) >>> 0 < t >>> 0 + ? (I + 1) | 0 + : I) + + _) | + 0, + e = ug( + (_ = t = (e + w) | 0) ^ nA, + (t = t >>> 0 < w >>> 0 ? (I + 1) | 0 : I) ^ v, + 32 + ), + I = ((I = c) + (c = p)) | 0, + w = I = + e >>> 0 > (G = (e + gA) | 0) >>> 0 + ? (I + 1) | 0 + : I, + u = a = ug(G ^ P, I ^ a, 24), + P = I = p, + v = I, + a = ((I = _) + (_ = K)) | 0, + I = (t + B) | 0, + I = + ((I = a >>> 0 < _ >>> 0 ? (I + 1) | 0 : I) + v) | 0, + AA = t = (u + a) | 0, + nA = ug( + t ^ e, + (v = t >>> 0 < a >>> 0 ? (I + 1) | 0 : I) ^ c, + 16 + ), + I = (w + (_ = p)) | 0, + R = t = (G + nA) | 0, + a = ug( + t ^ u, + (c = t >>> 0 < G >>> 0 ? (I + 1) | 0 : I) ^ P, + 63 + ), + t = p, + e = d, + I = ((G = H) + L) | 0, + I = + ((I = + (w = (d + BA) | 0) >>> 0 < d >>> 0 + ? (I + 1) | 0 + : I) + + D) | + 0, + H = I = + (d = (w + S) | 0) >>> 0 < S >>> 0 ? (I + 1) | 0 : I, + D = ug(d ^ aA, I ^ J, 32), + I = ((I = y) + (y = p)) | 0, + I = + (w = D) >>> 0 > (J = (w + EA) | 0) >>> 0 + ? (I + 1) | 0 + : I, + S = ug(e ^ (w = J), I ^ G, 24), + u = G = p, + J = I, + P = w, + L = D, + I = (H + E) | 0, + H = D = (d + j) | 0, + I = + ((I = D >>> 0 < d >>> 0 ? (I + 1) | 0 : I) + G) | 0, + aA = ug( + L ^ (D = d = (D + (e = S)) | 0), + (w = H >>> 0 > D >>> 0 ? (I + 1) | 0 : I) ^ y, + 16 + ), + I = ((I = J) + (J = p)) | 0, + u = ug( + S ^ (e = y = (P + (G = aA)) | 0), + (G = e >>> 0 < G >>> 0 ? (I + 1) | 0 : I) ^ u, + 63 + ), + y = p, + d = U, + I = (U + z) | 0, + I = + ((I = + (S = (m + N) | 0) >>> 0 < m >>> 0 + ? (I + 1) | 0 + : I) + + o) | + 0, + I = + (H = (Y + S) | 0) >>> 0 < Y >>> 0 ? (I + 1) | 0 : I, + Y = H, + H = I, + S = ug(Y ^ tA, I ^ M, 32), + I = ((I = f) + (f = p)) | 0, + o = d, + d = I = + (U = ((M = S) + CA) | 0) >>> 0 < M >>> 0 + ? (I + 1) | 0 + : I, + N = o = ug(U ^ N, o ^ I, 24), + P = I = p, + M = I, + L = S, + S = ((I = Y) + (Y = W)) | 0, + I = (H + eA) | 0, + I = + ((I = Y >>> 0 > S >>> 0 ? (I + 1) | 0 : I) + M) | 0, + M = H = ((Y = S) + o) | 0, + o = ug( + L ^ H, + (Y = H >>> 0 < Y >>> 0 ? (I + 1) | 0 : I) ^ f, + 16 + ), + I = (d + (H = p)) | 0, + I = + (f = (U + o) | 0) >>> 0 < U >>> 0 ? (I + 1) | 0 : I, + U = f, + S = I, + N = ug(f ^ N, I ^ P, 63), + f = p, + d = t, + P = a, + L = o, + I = (F + T) | 0, + I = + ((I = + (a = ((o = b) + l) | 0) >>> 0 < o >>> 0 + ? (I + 1) | 0 + : I) + + t) | + 0, + t = I = + a >>> 0 > (F = (P + a) | 0) >>> 0 ? (I + 1) | 0 : I, + o = ug(L ^ F, I ^ H, 32), + I = ((I = G) + (G = p)) | 0, + I = + (a = o) >>> 0 > (H = (a + e) | 0) >>> 0 + ? (I + 1) | 0 + : I, + l = e = ug(P ^ (a = H), I ^ d, 24), + H = I, + P = o, + o = ((I = F) + (F = Z)) | 0, + I = (t + yA) | 0, + I = + ((I = o >>> 0 < F >>> 0 ? (I + 1) | 0 : I) + + (d = p)) | + 0, + F = t = (o + e) | 0, + o = I = t >>> 0 < o >>> 0 ? (I + 1) | 0 : I, + t = ((G = tA = ug(P ^ t, I ^ G, 16)) + a) | 0, + I = ((a = p) + H) | 0, + e = t, + L = ug( + (H = t ^ l), + (l = t >>> 0 < G >>> 0 ? (I + 1) | 0 : I) ^ d, + 63 + ), + d = p, + I = (v + Q) | 0, + I = + ((I = + (G = QA) >>> 0 > (H = (G + AA) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + (t = y)) | + 0, + v = G = (H + u) | 0, + r = ug( + G ^ sA, + (y = G >>> 0 < H >>> 0 ? (I + 1) | 0 : I) ^ r, + 32 + ), + I = (S + (G = p)) | 0, + I = + (H = (U + r) | 0) >>> 0 < U >>> 0 ? (I + 1) | 0 : I, + U = H, + S = ug(H ^ u, I ^ t, 24), + P = t = p, + H = I, + AA = U, + I = (y + oA) | 0, + I = + (U = x) >>> 0 > (v = (U + v) | 0) >>> 0 + ? (I + 1) | 0 + : I, + U = v, + I = (I + t) | 0, + v = y = (v + (u = S)) | 0, + y = ug( + y ^ r, + (S = y >>> 0 < U >>> 0 ? (I + 1) | 0 : I) ^ G, + 16 + ), + I = ((U = p) + H) | 0, + EA = t = (AA + y) | 0, + BA = ug( + t ^ u, + (G = t >>> 0 < y >>> 0 ? (I + 1) | 0 : I) ^ P, + 63 + ), + H = p, + P = N, + I = (w + IA) | 0, + I = + ((I = + (r = (D + iA) | 0) >>> 0 < D >>> 0 + ? (I + 1) | 0 + : I) + + (t = f)) | + 0, + u = ug( + (f = D = (r + N) | 0) ^ nA, + (D = r >>> 0 > f >>> 0 ? (I + 1) | 0 : I) ^ _, + 32 + ), + I = ((I = s) + (s = p)) | 0, + N = w = ((_ = u) + wA) | 0, + r = ug( + P ^ w, + (I = w >>> 0 < _ >>> 0 ? (I + 1) | 0 : I) ^ t, + 24 + ), + w = t = p, + _ = I, + P = r, + I = (D + t) | 0, + I = + ((I = + (r = (f + r) | 0) >>> 0 < f >>> 0 + ? (I + 1) | 0 + : I) + + (AA = i[(g + 132) >> 2])) | + 0, + D = f = ((t = i[(g + 128) >> 2]) + r) | 0, + r = I = f >>> 0 < r >>> 0 ? (I + 1) | 0 : I, + nA = ug(f ^ u, I ^ s, 16), + I = ((I = _) + (_ = p)) | 0, + CA = ug( + P ^ (f = ((s = nA) + N) | 0), + (I = f >>> 0 < s >>> 0 ? (I + 1) | 0 : I) ^ w, + 63 + ), + s = p, + u = f, + N = I, + P = y, + I = (cA + (w = k)) | 0, + I = + ((I = + (f = ((y = V) + fA) | 0) >>> 0 < y >>> 0 + ? (I + 1) | 0 + : I) + + Y) | + 0, + M = ug( + (f = y = (f + M) | 0) ^ aA, + (k = f >>> 0 < M >>> 0 ? (I + 1) | 0 : I) ^ J, + 32 + ), + I = ((y = p) + c) | 0, + I = + (Y = M) >>> 0 > (J = (Y + R) | 0) >>> 0 + ? (I + 1) | 0 + : I, + w = ug((Y = J) ^ fA, I ^ w, 24), + gA = R = p, + c = I, + J = y, + aA = M, + I = (k + R) | 0, + I = + ((I = + (M = (f + w) | 0) >>> 0 < f >>> 0 + ? (I + 1) | 0 + : I) + + (fA = i[(g + 196) >> 2])) | + 0, + M = f = ((y = i[(g + 192) >> 2]) + (k = M)) | 0, + aA = ug( + aA ^ f, + (R = J) ^ (J = f >>> 0 < k >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = ((I = c) + (c = p)) | 0, + w = ug( + w ^ (R = f = ((k = aA) + Y) | 0), + (f = f >>> 0 < k >>> 0 ? (I + 1) | 0 : I) ^ gA, + 63 + ), + gA = I = p, + k = I, + I = (o + q) | 0, + I = + ((I = + (Y = (F + O) | 0) >>> 0 < F >>> 0 + ? (I + 1) | 0 + : I) + + k) | + 0, + I = + (F = (Y + w) | 0) >>> 0 < Y >>> 0 ? (I + 1) | 0 : I, + Y = F, + k = I, + o = ug(F ^ P, I ^ U, 32), + I = ((U = p) + N) | 0, + u = F = (u + o) | 0, + N = ug( + w ^ F, + (I = F >>> 0 < o >>> 0 ? (I + 1) | 0 : I) ^ gA, + 24 + ), + q = F = p, + w = I, + P = o, + I = (k + AA) | 0, + I = + ((I = + (o = (t + Y) | 0) >>> 0 < t >>> 0 + ? (I + 1) | 0 + : I) + + F) | + 0, + O = k = (o + N) | 0, + gA = ug( + P ^ k, + (F = k >>> 0 < o >>> 0 ? (I + 1) | 0 : I) ^ U, + 16 + ), + I = ((I = w) + (w = p)) | 0, + Y = k = ((U = gA) + u) | 0, + q = ug( + k ^ N, + (o = k >>> 0 < U >>> 0 ? (I + 1) | 0 : I) ^ q, + 63 + ), + U = p, + I = (Q + (k = d)) | 0, + I = + (S + + ((u = QA) >>> 0 > (N = (u + L) | 0) >>> 0 + ? (I + 1) | 0 + : I)) | + 0, + v = I = + (d = (v + N) | 0) >>> 0 < v >>> 0 ? (I + 1) | 0 : I, + u = ug(d ^ nA, I ^ _, 32), + I = ((I = f) + (f = p)) | 0, + I = + (_ = u) >>> 0 > (S = (_ + R) | 0) >>> 0 + ? (I + 1) | 0 + : I, + _ = k, + k = I, + N = ug(S ^ L, _ ^ I, 24), + L = I = p, + _ = I, + P = u, + I = (v + rA) | 0, + I = + ((I = + (u = (d + $) | 0) >>> 0 < d >>> 0 + ? (I + 1) | 0 + : I) + + _) | + 0, + _ = I = + (d = ((v = u) + N) | 0) >>> 0 < v >>> 0 + ? (I + 1) | 0 + : I, + nA = ug(P ^ (v = d), I ^ f, 16), + I = (k + (u = p)) | 0, + R = f = (S + nA) | 0, + N = ug( + f ^ N, + (d = f >>> 0 < S >>> 0 ? (I + 1) | 0 : I) ^ L, + 63 + ), + f = p, + k = H, + I = (H + T) | 0, + I = + (r + + (b >>> 0 > (P = (b + BA) | 0) >>> 0 + ? (I + 1) | 0 + : I)) | + 0, + r = c, + c = I = + D >>> 0 > (H = (D + P) | 0) >>> 0 ? (I + 1) | 0 : I, + P = ug(H ^ aA, r ^ I, 32), + I = (l + (D = p)) | 0, + r = k, + k = I = + e >>> 0 > (S = (e + P) | 0) >>> 0 ? (I + 1) | 0 : I, + l = e = ug(S ^ BA, r ^ I, 24), + r = I = p, + I = (c + IA) | 0, + I = + ((I = + (e = (H + iA) | 0) >>> 0 < H >>> 0 + ? (I + 1) | 0 + : I) + + r) | + 0, + IA = c = (l + e) | 0, + iA = ug( + c ^ P, + (H = c >>> 0 < e >>> 0 ? (I + 1) | 0 : I) ^ D, + 16 + ), + I = (k + (D = p)) | 0, + BA = c = (S + iA) | 0, + e = ug( + c ^ l, + (k = c >>> 0 < S >>> 0 ? (I + 1) | 0 : I) ^ r, + 63 + ), + c = p, + S = s, + I = (s + oA) | 0, + I = + (J + + ((r = x) >>> 0 > (l = (r + CA) | 0) >>> 0 + ? (I + 1) | 0 + : I)) | + 0, + a = ug( + (r = s = (M + l) | 0) ^ tA, + (s = r >>> 0 < M >>> 0 ? (I + 1) | 0 : I) ^ a, + 32 + ), + I = ((I = G) + (G = p)) | 0, + P = S = + ug( + (l = J = (a + EA) | 0) ^ CA, + (I = a >>> 0 > l >>> 0 ? (I + 1) | 0 : I) ^ S, + 24 + ), + L = J = p, + M = I, + I = (s + cA) | 0, + I = + ((I = + (r = ((S = V) + r) | 0) >>> 0 < S >>> 0 + ? (I + 1) | 0 + : I) + + J) | + 0, + J = s = (P + r) | 0, + a = ug( + s ^ a, + (S = s >>> 0 < r >>> 0 ? (I + 1) | 0 : I) ^ G, + 16 + ), + I = ((I = M) + (M = p)) | 0, + CA = s = (a + l) | 0, + P = ug( + s ^ P, + (G = s >>> 0 < a >>> 0 ? (I + 1) | 0 : I) ^ L, + 63 + ), + s = p, + L = N, + aA = a, + I = (F + eA) | 0, + I = + ((I = + (a = W) >>> 0 > (l = (a + O) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + (r = f)) | + 0, + f = I = + (a = l) >>> 0 > (F = (a + N) | 0) >>> 0 + ? (I + 1) | 0 + : I, + l = ug(aA ^ (a = F), I ^ M, 32), + I = ((I = k) + (k = p)) | 0, + N = F = ((M = l) + BA) | 0, + L = r = + ug( + L ^ F, + (I = F >>> 0 < M >>> 0 ? (I + 1) | 0 : I) ^ r, + 24 + ), + BA = F = p, + M = I, + I = (f + B) | 0, + I = + ((I = + (a = ((r = K) + a) | 0) >>> 0 < r >>> 0 + ? (I + 1) | 0 + : I) + + F) | + 0, + tA = f = (L + a) | 0, + aA = ug( + f ^ l, + (r = k) ^ (k = f >>> 0 < a >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = ((F = p) + M) | 0, + M = f = ((r = aA) + N) | 0, + L = ug( + f ^ L, + (r = f >>> 0 < r >>> 0 ? (I + 1) | 0 : I) ^ BA, + 63 + ), + f = p, + N = e, + I = (_ + z) | 0, + _ = e = (m + v) | 0, + I = + ((I = e >>> 0 < v >>> 0 ? (I + 1) | 0 : I) + + (a = c)) | + 0, + l = ug( + (e = v = (N + e) | 0) ^ gA, + (c = e >>> 0 < _ >>> 0 ? (I + 1) | 0 : I) ^ w, + 32 + ), + I = ((I = G) + (G = p)) | 0, + v = I = + (w = ((v = l) + CA) | 0) >>> 0 < v >>> 0 + ? (I + 1) | 0 + : I, + N = a = ug(N ^ w, I ^ a, 24), + BA = I = p, + _ = I, + I = (c + E) | 0, + I = + ((I = + (a = j) >>> 0 > (e = (a + e) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + _) | + 0, + _ = c = (N + (a = e)) | 0, + G = ug( + c ^ l, + (a = c >>> 0 < a >>> 0 ? (I + 1) | 0 : I) ^ G, + 16 + ), + I = (v + (e = p)) | 0, + I = + (c = (w + G) | 0) >>> 0 < w >>> 0 ? (I + 1) | 0 : I, + w = c, + v = I, + BA = ug(c ^ N, I ^ BA, 63), + c = p, + l = s, + O = P, + I = (H + yA) | 0, + I = + ((I = + (N = Z) >>> 0 > (P = (N + IA) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + s) | + 0, + I = + (H = (O + (N = P)) | 0) >>> 0 < N >>> 0 + ? (I + 1) | 0 + : I, + N = H, + s = I, + P = ug(H ^ nA, I ^ u, 32), + I = (o + (H = p)) | 0, + o = I = + (u = (Y + P) | 0) >>> 0 < Y >>> 0 ? (I + 1) | 0 : I, + u = ug(O ^ (Y = u), I ^ l, 24), + O = I = p, + l = I, + I = (s + fA) | 0, + I = + ((I = + (N = (y + N) | 0) >>> 0 < y >>> 0 + ? (I + 1) | 0 + : I) + + l) | + 0, + l = s = ((IA = u) + (u = N)) | 0, + CA = ug( + s ^ P, + (N = H) ^ (H = s >>> 0 < u >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (o + (u = p)) | 0, + I = + (s = (Y + CA) | 0) >>> 0 < Y >>> 0 + ? (I + 1) | 0 + : I, + Y = s, + IA = ug(s ^ IA, I ^ O, 63), + s = p, + N = I, + gA = q, + I = (S + (o = U)) | 0, + I = + ((I = + (q = (J + q) | 0) >>> 0 < J >>> 0 + ? (I + 1) | 0 + : I) + + (O = nA = i[(g + 156) >> 2])) | + 0, + J = I = + (U = ((P = i[(g + 152) >> 2]) + (J = q)) | 0) >>> + 0 < + J >>> 0 + ? (I + 1) | 0 + : I, + S = ug(U ^ iA, I ^ D, 32), + I = ((I = d) + (d = p)) | 0, + q = D = (S + R) | 0, + O = o = + ug( + gA ^ D, + (I = D >>> 0 < S >>> 0 ? (I + 1) | 0 : I) ^ o, + 24 + ), + R = iA = p, + D = I, + gA = EA = i[(g + 236) >> 2], + EA = q, + q = S, + I = (J + R) | 0, + I = + ((I = + (o = (o + U) | 0) >>> 0 < U >>> 0 + ? (I + 1) | 0 + : I) + + gA) | + 0, + I = + (U = ((S = i[(g + 232) >> 2]) + o) | 0) >>> 0 < + o >>> 0 + ? (I + 1) | 0 + : I, + o = d, + d = I, + iA = ug(q ^ U, o ^ I, 16), + I = ((J = p) + D) | 0, + O = ug( + (D = o = (EA + (q = iA)) | 0) ^ O, + (o = o >>> 0 < q >>> 0 ? (I + 1) | 0 : I) ^ R, + 63 + ), + R = I = p, + q = I, + EA = G, + I = (k + T) | 0, + I = + ((I = + (G = (b + tA) | 0) >>> 0 < b >>> 0 + ? (I + 1) | 0 + : I) + + q) | + 0, + e = ug( + EA ^ (q = b = (G + O) | 0), + (b = b >>> 0 < G >>> 0 ? (I + 1) | 0 : I) ^ e, + 32 + ), + I = ((G = p) + N) | 0, + N = k = (Y + e) | 0, + T = ug( + O ^ k, + R ^ (I = k >>> 0 < e >>> 0 ? (I + 1) | 0 : I), + 24 + ), + tA = k = p, + Y = I, + O = N, + R = e, + I = (b + E) | 0, + I = + ((I = + (e = j) >>> 0 > (N = (e + q) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + k) | + 0, + R = ug( + R ^ (k = b = ((e = N) + T) | 0), + (e = e >>> 0 > k >>> 0 ? (I + 1) | 0 : I) ^ G, + 16 + ), + I = ((I = Y) + (Y = p)) | 0, + N = b = (O + (G = R)) | 0, + O = ug( + b ^ T, + (q = b >>> 0 < G >>> 0 ? (I + 1) | 0 : I) ^ tA, + 63 + ), + G = p, + b = f, + EA = L, + I = (f + yA) | 0, + I = + (a + + (Z >>> 0 > (L = (Z + L) | 0) >>> 0 + ? (I + 1) | 0 + : I)) | + 0, + u = ug( + (T = f = (_ + L) | 0) ^ CA, + (f = f >>> 0 < _ >>> 0 ? (I + 1) | 0 : I) ^ u, + 32 + ), + I = (o + (_ = p)) | 0, + I = + (a = (D + u) | 0) >>> 0 < D >>> 0 ? (I + 1) | 0 : I, + D = a, + o = b, + b = I, + L = a = ug(EA ^ a, o ^ I, 24), + CA = I = p, + o = I, + EA = a, + tA = u, + I = (f + oA) | 0, + I = + ((I = + (a = x) >>> 0 > (u = (a + T) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + o) | + 0, + L = f = (L + (a = u)) | 0, + tA = ug( + tA ^ f, + (o = f >>> 0 < a >>> 0 ? (I + 1) | 0 : I) ^ _, + 16 + ), + I = (b + (_ = p)) | 0, + I = + (f = (D + tA) | 0) >>> 0 < D >>> 0 + ? (I + 1) | 0 + : I, + D = f, + a = I, + u = ug(EA ^ f, I ^ CA, 63), + f = p, + b = c, + I = (c + AA) | 0, + I = + ((I = + (T = (t + BA) | 0) >>> 0 < t >>> 0 + ? (I + 1) | 0 + : I) + + H) | + 0, + I = + (t = (l + T) | 0) >>> 0 < l >>> 0 ? (I + 1) | 0 : I, + l = t, + t = I, + T = ug(l ^ iA, I ^ J, 32), + I = (r + (c = p)) | 0, + r = b, + b = I = + (H = (M + T) | 0) >>> 0 < M >>> 0 ? (I + 1) | 0 : I, + r = M = ug(H ^ BA, r ^ I, 24), + BA = I = p, + J = I, + I = (t + z) | 0, + I = + ((I = + (M = (m + l) | 0) >>> 0 < m >>> 0 + ? (I + 1) | 0 + : I) + + J) | + 0, + l = m = (r + (t = M)) | 0, + T = ug( + m ^ T, + (M = c) ^ (c = t >>> 0 > m >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (b + (J = p)) | 0, + z = m = (H + T) | 0, + M = ug( + m ^ r, + (t = m >>> 0 < H >>> 0 ? (I + 1) | 0 : I) ^ BA, + 63 + ), + b = p, + m = s, + I = (s + fA) | 0, + I = + ((I = + (H = (y + IA) | 0) >>> 0 < y >>> 0 + ? (I + 1) | 0 + : I) + + d) | + 0, + I = + (y = (H + U) | 0) >>> 0 < U >>> 0 ? (I + 1) | 0 : I, + U = y, + y = I, + F = ug(U ^ aA, I ^ F, 32), + I = (v + (s = p)) | 0, + r = m, + m = I = + w >>> 0 > (d = (w + F) | 0) >>> 0 ? (I + 1) | 0 : I, + v = w = ug(d ^ IA, r ^ I, 24), + r = I = p, + I = (y + nA) | 0, + I = + ((I = + (U = (U + P) | 0) >>> 0 < P >>> 0 + ? (I + 1) | 0 + : I) + + r) | + 0, + H = y = (U + w) | 0, + F = ug( + y ^ F, + (w = s) ^ (s = y >>> 0 < U >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (m + (U = p)) | 0, + r = ug( + (w = y = (d + F) | 0) ^ v, + (y = y >>> 0 < d >>> 0 ? (I + 1) | 0 : I) ^ r, + 63 + ), + m = p, + d = f, + P = F, + I = (f + e) | 0, + I = + (F = (k + u) | 0) >>> 0 < k >>> 0 ? (I + 1) | 0 : I, + k = F, + I = (I + (v = i[(g + 164) >> 2])) | 0, + v = ug( + P ^ (F = f = (F + i[(g + 160) >> 2]) | 0), + (f = f >>> 0 < k >>> 0 ? (I + 1) | 0 : I) ^ U, + 32 + ), + I = ((I = t) + (t = p)) | 0, + e = d, + d = I = + (k = ((U = v) + z) | 0) >>> 0 < U >>> 0 + ? (I + 1) | 0 + : I, + e = ug(k ^ u, e ^ I, 24), + P = I = p, + U = I, + I = (f + gA) | 0, + I = + ((I = + (F = (F + S) | 0) >>> 0 < S >>> 0 + ? (I + 1) | 0 + : I) + + U) | + 0, + BA = ug( + (z = f = (F + e) | 0) ^ v, + (f = f >>> 0 < F >>> 0 ? (I + 1) | 0 : I) ^ t, + 16 + ), + I = (d + (U = p)) | 0, + d = t = (k + BA) | 0, + u = ug( + t ^ e, + (k = t >>> 0 < k >>> 0 ? (I + 1) | 0 : I) ^ P, + 63 + ), + t = p, + e = M, + S = w, + I = (o + rA) | 0, + I = + ((I = + (w = ((M = $) + L) | 0) >>> 0 < M >>> 0 + ? (I + 1) | 0 + : I) + + (F = b)) | + 0, + Y = ug( + (v = M = (e + w) | 0) ^ R, + (b = w >>> 0 > v >>> 0 ? (I + 1) | 0 : I) ^ Y, + 32 + ), + I = ((I = y) + (y = p)) | 0, + o = F, + F = I = + (w = Y) >>> 0 > (M = (S + w) | 0) >>> 0 + ? (I + 1) | 0 + : I, + o = S = ug(e ^ M, o ^ I, 24), + e = I = p, + S = Y, + I = (b + Q) | 0, + I = + ((I = + (Y = QA) >>> 0 > (v = (Y + v) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + e) | + 0, + v = ug( + S ^ (w = b = (v + o) | 0), + (Y = w >>> 0 < v >>> 0 ? (I + 1) | 0 : I) ^ y, + 16 + ), + I = (F + (S = p)) | 0, + P = ug( + (F = b = (M + v) | 0) ^ o, + (M = F >>> 0 < M >>> 0 ? (I + 1) | 0 : I) ^ e, + 63 + ), + b = p, + L = r, + I = (c + cA) | 0, + I = + (o = V) >>> 0 > (r = (o + l) | 0) >>> 0 + ? (I + 1) | 0 + : I, + o = r, + I = (I + (y = m)) | 0, + e = ug( + (r = c = (L + r) | 0) ^ tA, + (m = r >>> 0 < o >>> 0 ? (I + 1) | 0 : I) ^ _, + 32 + ), + I = (q + (c = p)) | 0, + _ = y, + y = I = + (o = (N + e) | 0) >>> 0 < N >>> 0 ? (I + 1) | 0 : I, + l = ug(L ^ o, _ ^ I, 24), + q = I = p, + _ = I, + N = e, + e = ((I = r) + (r = W)) | 0, + I = (m + eA) | 0, + I = + ((I = r >>> 0 > e >>> 0 ? (I + 1) | 0 : I) + _) | 0, + _ = I = + (r = e) >>> 0 > (m = (r + l) | 0) >>> 0 + ? (I + 1) | 0 + : I, + L = ug(N ^ m, I ^ c, 16), + I = (y + (r = p)) | 0, + N = ug( + (c = (o + L) | 0) ^ l, + (I = c >>> 0 < o >>> 0 ? (I + 1) | 0 : I) ^ q, + 63 + ), + y = p, + e = I, + I = (B + (o = G)) | 0, + I = + (s + + ((l = K) >>> 0 > (q = (l + O) | 0) >>> 0 + ? (I + 1) | 0 + : I)) | + 0, + l = G = (H + q) | 0, + q = ug( + G ^ T, + (s = G >>> 0 < H >>> 0 ? (I + 1) | 0 : I) ^ J, + 32 + ), + I = (a + (G = p)) | 0, + J = I = + D >>> 0 > (H = (D + q) | 0) >>> 0 ? (I + 1) | 0 : I, + T = I = ug(H ^ O, I ^ o, 24), + D = I, + o = (I + l) | 0, + I = ((a = p) + s) | 0, + I = + ((I = o >>> 0 < D >>> 0 ? (I + 1) | 0 : I) + + (IA = i[(g + 204) >> 2])) | + 0, + I = + (s = (o + i[(g + 200) >> 2]) | 0) >>> 0 < o >>> 0 + ? (I + 1) | 0 + : I, + o = G, + G = I, + IA = ug(s ^ q, o ^ I, 16), + I = (J + (D = p)) | 0, + I = + (o = (H + IA) | 0) >>> 0 < H >>> 0 + ? (I + 1) | 0 + : I, + H = o, + J = I, + a = ug(T ^ o, I ^ a, 63), + o = I = p, + l = c, + T = v, + I = (f + E) | 0, + I = + ((I = + (c = j) >>> 0 > (v = (c + z) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + o) | + 0, + T = ug( + T ^ (q = f = ((c = v) + a) | 0), + (f = f >>> 0 < c >>> 0 ? (I + 1) | 0 : I) ^ S, + 32 + ), + I = ((c = p) + e) | 0, + S = I = + (v = (l + (S = T)) | 0) >>> 0 < S >>> 0 + ? (I + 1) | 0 + : I, + a = ug(a ^ v, o ^ I, 24), + l = I = p, + o = I, + R = a, + I = (f + Q) | 0, + I = + ((I = + (a = QA) >>> 0 > (e = (a + q) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + o) | + 0, + T = ug( + (o = f = (R + (a = e)) | 0) ^ T, + (a = o >>> 0 < a >>> 0 ? (I + 1) | 0 : I) ^ c, + 16 + ), + I = (S + (e = p)) | 0, + I = + (f = (v + T) | 0) >>> 0 < v >>> 0 ? (I + 1) | 0 : I, + v = f, + S = I, + f = ug(R ^ f, I ^ l, 63), + c = p, + l = t, + R = u, + I = (t + B) | 0, + I = + (Y + + ((u = K) >>> 0 > (q = (R + u) | 0) >>> 0 + ? (I + 1) | 0 + : I)) | + 0, + r = ug( + (u = t = (w + q) | 0) ^ L, + (t = t >>> 0 < w >>> 0 ? (I + 1) | 0 : I) ^ r, + 32 + ), + I = (J + (w = p)) | 0, + J = I = + H >>> 0 > (Y = (H + r) | 0) >>> 0 ? (I + 1) | 0 : I, + q = l = ug(R ^ (H = Y), I ^ l, 24), + z = I = p, + Y = I, + R = l, + L = r, + I = (t + cA) | 0, + I = + ((I = + (r = V) >>> 0 > (l = (r + u) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + Y) | + 0, + q = t = (q + (r = l)) | 0, + L = ug( + L ^ t, + (Y = w) ^ (w = t >>> 0 < r >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (J + (Y = p)) | 0, + I = + (t = (H + L) | 0) >>> 0 < H >>> 0 ? (I + 1) | 0 : I, + H = t, + J = I, + u = ug(R ^ t, I ^ z, 63), + t = p, + R = P, + I = (eA + (r = b)) | 0, + I = + (_ + + ((l = W) >>> 0 > (P = (l + P) | 0) >>> 0 + ? (I + 1) | 0 + : I)) | + 0, + l = ug( + (_ = b = (m + P) | 0) ^ IA, + (b = m >>> 0 > _ >>> 0 ? (I + 1) | 0 : I) ^ D, + 32 + ), + I = (k + (m = p)) | 0, + I = + (D = (d + l) | 0) >>> 0 < d >>> 0 ? (I + 1) | 0 : I, + d = D, + k = I, + I = ug(R ^ D, I ^ r, 24), + z = i[(g + 236) >> 2], + R = I, + r = _, + _ = I, + r = (r + I) | 0, + I = ((D = p) + b) | 0, + I = + ((I = r >>> 0 < _ >>> 0 ? (I + 1) | 0 : I) + z) | 0, + r = I = + (b = (r + i[(g + 232) >> 2]) | 0) >>> 0 < r >>> 0 + ? (I + 1) | 0 + : I, + z = ug((_ = b) ^ l, I ^ m, 16), + I = (k + (l = p)) | 0, + P = b = (d + z) | 0, + D = ug( + R ^ b, + (m = b >>> 0 < d >>> 0 ? (I + 1) | 0 : I) ^ D, + 63 + ), + b = p, + d = y, + R = N, + I = (y + G) | 0, + I = + ((I = + (k = (s + N) | 0) >>> 0 < s >>> 0 + ? (I + 1) | 0 + : I) + + (IA = i[(g + 164) >> 2])) | + 0, + U = ug( + (N = y = ((s = k) + i[(g + 160) >> 2]) | 0) ^ BA, + (y = y >>> 0 < s >>> 0 ? (I + 1) | 0 : I) ^ U, + 32 + ), + I = (M + (s = p)) | 0, + M = d, + d = I = + F >>> 0 > (G = (F + U) | 0) >>> 0 ? (I + 1) | 0 : I, + M = F = ug(R ^ G, M ^ I, 24), + BA = I = p, + k = I, + R = U, + I = (y + oA) | 0, + I = + ((I = + (F = ((U = x) + N) | 0) >>> 0 < U >>> 0 + ? (I + 1) | 0 + : I) + + k) | + 0, + IA = y = (M + F) | 0, + F = ug( + R ^ y, + (k = s) ^ (s = y >>> 0 < F >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (d + (k = p)) | 0, + I = + (y = (G + F) | 0) >>> 0 < G >>> 0 ? (I + 1) | 0 : I, + G = y, + d = I, + N = ug(y ^ M, I ^ BA, 63), + y = p, + U = t, + R = F, + I = (t + a) | 0, + I = + ((I = + (F = (o + u) | 0) >>> 0 < o >>> 0 + ? (I + 1) | 0 + : I) + + (M = i[(g + 132) >> 2])) | + 0, + o = ug( + R ^ (M = t = (F + i[(g + 128) >> 2]) | 0), + (t = t >>> 0 < F >>> 0 ? (I + 1) | 0 : I) ^ k, + 32 + ), + I = ((I = m) + (m = p)) | 0, + a = U, + U = I = + o >>> 0 > (k = (o + P) | 0) >>> 0 ? (I + 1) | 0 : I, + a = ug(k ^ u, a ^ I, 24), + P = I = p, + F = I, + u = o, + o = ((I = M) + (M = $)) | 0, + I = (t + rA) | 0, + I = + ((I = o >>> 0 < M >>> 0 ? (I + 1) | 0 : I) + F) | 0, + BA = t = (o + a) | 0, + AA = ug( + u ^ t, + (F = t >>> 0 < o >>> 0 ? (I + 1) | 0 : I) ^ m, + 16 + ), + I = (U + (M = p)) | 0, + U = I = + (m = (k + AA) | 0) >>> 0 < k >>> 0 + ? (I + 1) | 0 + : I, + u = ug((k = m) ^ a, I ^ P, 63), + m = p, + P = D, + I = (w + yA) | 0, + w = o = ((D = Z) + q) | 0, + I = + ((I = o >>> 0 < D >>> 0 ? (I + 1) | 0 : I) + + (t = b)) | + 0, + a = ug( + (o = D = (P + o) | 0) ^ T, + (b = w >>> 0 > o >>> 0 ? (I + 1) | 0 : I) ^ e, + 32 + ), + I = (d + (D = p)) | 0, + I = + (w = (G + a) | 0) >>> 0 < G >>> 0 ? (I + 1) | 0 : I, + G = w, + e = t, + t = I, + I = ug(P ^ w, e ^ I, 24), + P = i[(g + 156) >> 2], + e = I, + w = I, + o = (I + o) | 0, + I = ((d = p) + b) | 0, + I = + ((I = o >>> 0 < w >>> 0 ? (I + 1) | 0 : I) + P) | 0, + I = + o >>> 0 > (b = (o + i[(g + 152) >> 2]) | 0) >>> 0 + ? (I + 1) | 0 + : I, + o = D, + D = I, + q = ug((w = b) ^ a, o ^ I, 16), + I = (t + (o = p)) | 0, + a = d, + d = I = + (b = (G + q) | 0) >>> 0 < G >>> 0 ? (I + 1) | 0 : I, + P = ug(e ^ (G = b), a ^ I, 63), + t = p, + b = y, + I = (y + r) | 0, + I = + ((I = + (a = (_ + N) | 0) >>> 0 < _ >>> 0 + ? (I + 1) | 0 + : I) + + (e = i[(g + 204) >> 2])) | + 0, + I = + (y = (a + i[(g + 200) >> 2]) | 0) >>> 0 < a >>> 0 + ? (I + 1) | 0 + : I, + a = Y, + Y = I, + a = ug(y ^ L, a ^ I, 32), + I = (S + (_ = p)) | 0, + I = + (r = (v + a) | 0) >>> 0 < v >>> 0 ? (I + 1) | 0 : I, + v = r, + e = b, + b = I, + r = ug(r ^ N, e ^ I, 24), + e = I = p, + L = r, + I = (I + Y) | 0, + I = + ((I = + (r = (y + r) | 0) >>> 0 < y >>> 0 + ? (I + 1) | 0 + : I) + + (N = i[(g + 148) >> 2])) | + 0, + I = + (y = (r + i[(g + 144) >> 2]) | 0) >>> 0 < r >>> 0 + ? (I + 1) | 0 + : I, + Y = y, + r = _, + _ = I, + T = ug(y ^ a, r ^ I, 16), + I = (b + (r = p)) | 0, + I = + (y = (v + T) | 0) >>> 0 < v >>> 0 ? (I + 1) | 0 : I, + v = y, + S = I, + N = ug(L ^ y, e ^ I, 63), + y = p, + b = c, + L = f, + I = (c + s) | 0, + c = a = (f + IA) | 0, + I = + ((I = a >>> 0 < f >>> 0 ? (I + 1) | 0 : I) + + (e = i[(g + 196) >> 2])) | + 0, + e = ug( + (a = f = (a + i[(g + 192) >> 2]) | 0) ^ z, + (f = a >>> 0 < c >>> 0 ? (I + 1) | 0 : I) ^ l, + 32 + ), + I = (J + (c = p)) | 0, + b = ug( + L ^ (s = (H + e) | 0), + (I = s >>> 0 < H >>> 0 ? (I + 1) | 0 : I) ^ b, + 24 + ), + H = I, + z = i[(g + 220) >> 2], + l = b, + R = s, + I = ((s = p) + f) | 0, + f = a = (a + b) | 0, + I = + ((I = a >>> 0 < b >>> 0 ? (I + 1) | 0 : I) + + (L = z)) | + 0, + L = ug( + (b = + (a = b = ((J = i[(g + 216) >> 2]) + a) | 0) ^ e), + (e = f >>> 0 > a >>> 0 ? (I + 1) | 0 : I) ^ c, + 16 + ), + I = ((I = H) + (H = p)) | 0, + I = + (f = L) >>> 0 > (b = (R + f) | 0) >>> 0 + ? (I + 1) | 0 + : I, + f = s, + s = I, + I = ug(l ^ b, f ^ I, 63), + O = i[(g + 236) >> 2], + R = I, + c = I, + l = (I + BA) | 0, + I = ((f = p) + F) | 0, + I = + ((I = c >>> 0 > l >>> 0 ? (I + 1) | 0 : I) + O) | 0, + q = ug( + (l = c = ((F = l) + i[(g + 232) >> 2]) | 0) ^ q, + (c = c >>> 0 < F >>> 0 ? (I + 1) | 0 : I) ^ o, + 32 + ), + I = (S + (F = p)) | 0, + I = + (o = (v + q) | 0) >>> 0 < v >>> 0 ? (I + 1) | 0 : I, + v = o, + S = f, + f = I, + I = ug(R ^ o, S ^ I, 24), + R = q, + o = I, + l = (I + l) | 0, + I = ((S = p) + c) | 0, + I = (z + (o >>> 0 > l >>> 0 ? (I + 1) | 0 : I)) | 0, + q = c = (l + J) | 0, + z = ug( + R ^ c, + (l = F) ^ (F = c >>> 0 < J >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (f + (J = p)) | 0, + I = + (c = (v + z) | 0) >>> 0 < v >>> 0 ? (I + 1) | 0 : I, + v = c, + f = S, + S = I, + f = ug(o ^ c, f ^ I, 63), + c = p, + R = u, + I = (rA + (o = m)) | 0, + I = + (D + + ((u = ((l = $) + u) | 0) >>> 0 < l >>> 0 + ? (I + 1) | 0 + : I)) | + 0, + r = ug( + (l = m = (w + u) | 0) ^ T, + (m = w >>> 0 > m >>> 0 ? (I + 1) | 0 : I) ^ r, + 32 + ), + I = (s + (D = p)) | 0, + I = + (w = (b + r) | 0) >>> 0 < b >>> 0 ? (I + 1) | 0 : I, + b = w, + s = I, + u = o = ug(R ^ w, I ^ o, 24), + T = I = p, + w = I, + R = r, + I = (m + eA) | 0, + I = + ((I = + (o = W) >>> 0 > (r = (o + l) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + w) | + 0, + BA = m = (u + (o = r)) | 0, + IA = ug( + R ^ m, + (r = D) ^ (D = o >>> 0 > m >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (s + (w = p)) | 0, + l = ug( + (s = m = (b + IA) | 0) ^ u, + (o = s >>> 0 < b >>> 0 ? (I + 1) | 0 : I) ^ T, + 63 + ), + b = p, + m = t, + I = (t + E) | 0, + I = + (_ + + ((r = j) >>> 0 > (u = (r + P) | 0) >>> 0 + ? (I + 1) | 0 + : I)) | + 0, + r = ug( + (_ = t = (Y + u) | 0) ^ L, + (t = t >>> 0 < Y >>> 0 ? (I + 1) | 0 : I) ^ H, + 32 + ), + I = (U + (H = p)) | 0, + I = + k >>> 0 > (Y = (k + r) | 0) >>> 0 ? (I + 1) | 0 : I, + k = Y, + Y = m, + m = I, + u = Y = ug(k ^ P, Y ^ I, 24), + P = I = p, + U = I, + I = (t + B) | 0, + I = + ((I = + (Y = K) >>> 0 > (_ = (Y + _) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + U) | + 0, + U = t = (u + _) | 0, + T = ug( + t ^ r, + (Y = H) ^ (H = t >>> 0 < _ >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (m + (Y = p)) | 0, + I = + (t = (k + T) | 0) >>> 0 < k >>> 0 ? (I + 1) | 0 : I, + k = t, + _ = I, + u = ug(t ^ u, I ^ P, 63), + m = p, + I = (e + (t = y)) | 0, + I = + ((I = + (r = (a + N) | 0) >>> 0 < a >>> 0 + ? (I + 1) | 0 + : I) + + (P = i[(g + 156) >> 2])) | + 0, + a = M, + M = I = + (y = (r + i[(g + 152) >> 2]) | 0) >>> 0 < r >>> 0 + ? (I + 1) | 0 + : I, + e = ug(y ^ AA, a ^ I, 32), + I = (d + (r = p)) | 0, + I = + (a = (G + e) | 0) >>> 0 < G >>> 0 ? (I + 1) | 0 : I, + G = a, + d = t, + t = I, + a = ug(a ^ N, d ^ I, 24), + N = I = p, + R = a, + I = (M + I) | 0, + I = + ((I = + (a = (a + y) | 0) >>> 0 < y >>> 0 + ? (I + 1) | 0 + : I) + + (P = i[(g + 204) >> 2])) | + 0, + L = y = (a + i[(g + 200) >> 2]) | 0, + a = ug( + y ^ e, + (M = y >>> 0 < a >>> 0 ? (I + 1) | 0 : I) ^ r, + 16 + ), + I = (t + (y = p)) | 0, + I = + (r = (G + a) | 0) >>> 0 < G >>> 0 ? (I + 1) | 0 : I, + G = r, + d = I, + N = ug(R ^ r, N ^ I, 63), + t = p, + P = a, + I = (F + Q) | 0, + I = + ((I = + (a = QA) >>> 0 > (e = (a + q) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + (r = b)) | + 0, + b = F = ((a = e) + l) | 0, + e = ug( + P ^ F, + (e = y) ^ (y = a >>> 0 > F >>> 0 ? (I + 1) | 0 : I), + 32 + ), + I = (_ + (F = p)) | 0, + I = + (a = (k + e) | 0) >>> 0 < k >>> 0 ? (I + 1) | 0 : I, + k = a, + _ = I, + a = ug(a ^ l, I ^ r, 24), + r = I = p, + l = a, + I = (y + I) | 0, + I = + ((I = + (a = (a + b) | 0) >>> 0 < b >>> 0 + ? (I + 1) | 0 + : I) + + (P = i[(g + 132) >> 2])) | + 0, + q = b = (a + i[(g + 128) >> 2]) | 0, + AA = ug( + b ^ e, + (y = F) ^ (F = a >>> 0 > b >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (_ + (a = p)) | 0, + _ = I = + (b = (k + AA) | 0) >>> 0 < k >>> 0 + ? (I + 1) | 0 + : I, + P = ug(l ^ (k = b), I ^ r, 63), + b = p, + I = (D + cA) | 0, + I = + ((I = + (r = V) >>> 0 > (e = (r + BA) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + (y = m)) | + 0, + m = I = + (r = e) >>> 0 > (D = (r + u) | 0) >>> 0 + ? (I + 1) | 0 + : I, + e = ug((r = D) ^ z, I ^ J, 32), + I = (d + (J = p)) | 0, + I = + G >>> 0 > (D = (G + e) | 0) >>> 0 ? (I + 1) | 0 : I, + G = D, + l = y, + y = I, + I = ug(D ^ u, l ^ I, 24), + u = i[(g + 164) >> 2], + l = I, + D = I, + r = (I + r) | 0, + I = ((d = p) + m) | 0, + I = + ((I = r >>> 0 < D >>> 0 ? (I + 1) | 0 : I) + u) | 0, + I = + (m = (r + i[(g + 160) >> 2]) | 0) >>> 0 < r >>> 0 + ? (I + 1) | 0 + : I, + r = J, + J = I, + r = ug((D = m) ^ e, r ^ I, 16), + I = (y + (e = p)) | 0, + y = d, + d = I = + (m = (G + r) | 0) >>> 0 < G >>> 0 ? (I + 1) | 0 : I, + m = ug(l ^ (G = m), y ^ I, 63), + y = p, + l = t, + R = N, + I = (t + H) | 0, + I = + ((I = + (u = (U + N) | 0) >>> 0 < U >>> 0 + ? (I + 1) | 0 + : I) + + (z = i[(g + 196) >> 2])) | + 0, + N = ug( + (u = t = ((H = u) + i[(g + 192) >> 2]) | 0) ^ IA, + (t = t >>> 0 < H >>> 0 ? (I + 1) | 0 : I) ^ w, + 32 + ), + I = (S + (H = p)) | 0, + w = I = + (U = (v + N) | 0) >>> 0 < v >>> 0 ? (I + 1) | 0 : I, + S = ug(R ^ U, I ^ l, 24), + z = I = p, + v = I, + R = S, + I = (t + yA) | 0, + I = + ((I = + (l = ((S = Z) + u) | 0) >>> 0 < S >>> 0 + ? (I + 1) | 0 + : I) + + v) | + 0, + BA = t = (R + (S = l)) | 0, + IA = ug( + t ^ N, + (l = H) ^ (H = t >>> 0 < S >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (w + (v = p)) | 0, + I = + (t = (U + IA) | 0) >>> 0 < U >>> 0 + ? (I + 1) | 0 + : I, + U = t, + l = ug(R ^ t, I ^ z, 63), + t = p, + w = c, + S = I, + R = f, + I = (c + M) | 0, + I = + ((I = + (u = (f + L) | 0) >>> 0 < f >>> 0 + ? (I + 1) | 0 + : I) + + (N = i[(g + 148) >> 2])) | + 0, + Y = ug( + (u = f = ((c = u) + i[(g + 144) >> 2]) | 0) ^ T, + (f = f >>> 0 < c >>> 0 ? (I + 1) | 0 : I) ^ Y, + 32 + ), + I = (o + (c = p)) | 0, + I = + s >>> 0 > (M = (s + Y) | 0) >>> 0 ? (I + 1) | 0 : I, + s = M, + M = I, + N = o = ug(R ^ s, I ^ w, 24), + T = I = p, + w = I, + L = Y, + I = (f + oA) | 0, + I = + ((I = + (o = ((Y = x) + u) | 0) >>> 0 < Y >>> 0 + ? (I + 1) | 0 + : I) + + w) | + 0, + w = f = (N + o) | 0, + z = ug( + L ^ f, + (Y = f >>> 0 < o >>> 0 ? (I + 1) | 0 : I) ^ c, + 16 + ), + I = (M + (c = p)) | 0, + I = + (f = (s + z) | 0) >>> 0 < s >>> 0 ? (I + 1) | 0 : I, + s = f, + M = I, + o = ug(f ^ N, I ^ T, 63), + u = I = p, + f = I, + N = U, + T = r, + I = (F + yA) | 0, + F = r = ((U = Z) + q) | 0, + I = + ((I = r >>> 0 < U >>> 0 ? (I + 1) | 0 : I) + f) | 0, + e = ug( + T ^ (r = U = (r + o) | 0), + (f = F >>> 0 > r >>> 0 ? (I + 1) | 0 : I) ^ e, + 32 + ), + I = ((U = p) + S) | 0, + S = I = + (F = (N + e) | 0) >>> 0 < e >>> 0 ? (I + 1) | 0 : I, + u = ug(o ^ F, u ^ I, 24), + q = I = p, + o = I, + N = e, + e = ((I = r) + (r = V)) | 0, + I = (f + cA) | 0, + I = + ((I = r >>> 0 > e >>> 0 ? (I + 1) | 0 : I) + o) | 0, + T = f = ((r = e) + u) | 0, + L = ug( + N ^ f, + (o = U) ^ (U = f >>> 0 < r >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (S + (o = p)) | 0, + I = + (f = (F + L) | 0) >>> 0 < F >>> 0 ? (I + 1) | 0 : I, + F = f, + S = I, + N = ug(f ^ u, I ^ q, 63), + f = p, + I = (eA + (r = b)) | 0, + I = + (J + + ((e = W) >>> 0 > (u = (e + P) | 0) >>> 0 + ? (I + 1) | 0 + : I)) | + 0, + v = ug( + (e = b = (D + u) | 0) ^ IA, + (b = e >>> 0 < D >>> 0 ? (I + 1) | 0 : I) ^ v, + 32 + ), + I = (M + (J = p)) | 0, + M = I = + s >>> 0 > (D = (s + v) | 0) >>> 0 ? (I + 1) | 0 : I, + I = ug((s = D) ^ P, I ^ r, 24), + P = i[(g + 204) >> 2], + u = I, + q = v, + v = I, + r = (I + e) | 0, + I = ((D = p) + b) | 0, + I = + ((I = r >>> 0 < v >>> 0 ? (I + 1) | 0 : I) + P) | 0, + P = b = (r + i[(g + 200) >> 2]) | 0, + q = ug( + q ^ b, + (e = J) ^ (J = b >>> 0 < r >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (M + (v = p)) | 0, + M = b = (s + q) | 0, + e = ug( + u ^ b, + (r = D) ^ (D = s >>> 0 > b >>> 0 ? (I + 1) | 0 : I), + 63 + ), + b = p, + s = y, + R = m, + I = (y + H) | 0, + I = + ((I = + (r = (m + BA) | 0) >>> 0 < m >>> 0 + ? (I + 1) | 0 + : I) + + (u = i[(g + 220) >> 2])) | + 0, + r = ug( + (H = m = (r + i[(g + 216) >> 2]) | 0) ^ z, + (m = r >>> 0 > H >>> 0 ? (I + 1) | 0 : I) ^ c, + 32 + ), + I = (_ + (y = p)) | 0, + _ = s, + s = I = + (c = (k + r) | 0) >>> 0 < k >>> 0 ? (I + 1) | 0 : I, + I = ug(R ^ c, _ ^ I, 24), + z = i[(g + 156) >> 2], + u = I, + _ = H, + H = I, + _ = (_ + I) | 0, + I = ((k = p) + m) | 0, + I = + ((I = H >>> 0 > _ >>> 0 ? (I + 1) | 0 : I) + z) | 0, + z = m = ((H = _) + i[(g + 152) >> 2]) | 0, + BA = ug( + m ^ r, + (H = m >>> 0 < H >>> 0 ? (I + 1) | 0 : I) ^ y, + 16 + ), + I = (s + (_ = p)) | 0, + y = ug( + u ^ (s = m = (c + BA) | 0), + (r = k) ^ (k = c >>> 0 > s >>> 0 ? (I + 1) | 0 : I), + 63 + ), + c = p, + m = t, + I = (t + Y) | 0, + I = + ((I = + (r = (w + l) | 0) >>> 0 < w >>> 0 + ? (I + 1) | 0 + : I) + + (u = i[(g + 132) >> 2])) | + 0, + w = I = + (t = (r + i[(g + 128) >> 2]) | 0) >>> 0 < r >>> 0 + ? (I + 1) | 0 + : I, + a = ug(t ^ AA, I ^ a, 32), + I = (d + (Y = p)) | 0, + I = + (r = (G + a) | 0) >>> 0 < G >>> 0 ? (I + 1) | 0 : I, + G = r, + u = m, + m = I, + r = ug(r ^ l, u ^ I, 24), + l = I = p, + R = r, + I = (w + I) | 0, + I = + ((I = + (r = (t + r) | 0) >>> 0 < t >>> 0 + ? (I + 1) | 0 + : I) + + (u = i[(g + 196) >> 2])) | + 0, + I = + (t = (r + i[(g + 192) >> 2]) | 0) >>> 0 < r >>> 0 + ? (I + 1) | 0 + : I, + w = t, + r = Y, + Y = I, + a = ug(t ^ a, r ^ I, 16), + I = (m + (t = p)) | 0, + I = + (r = (G + a) | 0) >>> 0 < G >>> 0 ? (I + 1) | 0 : I, + G = r, + d = I, + u = ug(R ^ r, l ^ I, 63), + m = p, + R = e, + l = a, + I = (U + E) | 0, + I = + ((I = + (a = j) >>> 0 > (e = (a + T) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + (r = b)) | + 0, + b = U = (R + (a = e)) | 0, + e = ug( + l ^ U, + (e = t) ^ (t = a >>> 0 > U >>> 0 ? (I + 1) | 0 : I), + 32 + ), + I = (k + (U = p)) | 0, + l = a = (s + e) | 0, + a = ug( + R ^ a, + (I = a >>> 0 < s >>> 0 ? (I + 1) | 0 : I) ^ r, + 24 + ), + k = I, + IA = i[(g + 148) >> 2], + T = a, + I = (t + (s = p)) | 0, + I = + ((I = + (a = (a + b) | 0) >>> 0 < b >>> 0 + ? (I + 1) | 0 + : I) + + (AA = IA)) | + 0, + O = ug( + (AA = b = ((r = i[(g + 144) >> 2]) + a) | 0) ^ e, + (b = a >>> 0 > b >>> 0 ? (I + 1) | 0 : I) ^ U, + 16 + ), + I = ((I = k) + (k = p)) | 0, + I = + (t = ((U = O) + l) | 0) >>> 0 < U >>> 0 + ? (I + 1) | 0 + : I, + U = t, + a = I, + t = ug(T ^ t, I ^ s, 63), + s = p, + R = y, + I = ((e = c) + J) | 0, + I = + ((I = + (l = (y + P) | 0) >>> 0 < y >>> 0 + ? (I + 1) | 0 + : I) + + (T = i[(g + 236) >> 2])) | + 0, + o = ug( + (l = y = ((c = l) + i[(g + 232) >> 2]) | 0) ^ L, + (y = c >>> 0 > y >>> 0 ? (I + 1) | 0 : I) ^ o, + 32 + ), + I = (d + (c = p)) | 0, + d = I = + G >>> 0 > (J = (G + o) | 0) >>> 0 ? (I + 1) | 0 : I, + P = e = ug(R ^ (G = J), I ^ e, 24), + T = I = p, + J = I, + R = o, + I = (y + rA) | 0, + I = + ((I = + (o = $) >>> 0 > (e = (o + l) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + J) | + 0, + L = y = (P + (o = e)) | 0, + o = ug( + R ^ y, + (J = y >>> 0 < o >>> 0 ? (I + 1) | 0 : I) ^ c, + 16 + ), + I = (d + (e = p)) | 0, + d = y = (G + o) | 0, + P = ug( + y ^ P, + (l = y >>> 0 < G >>> 0 ? (I + 1) | 0 : I) ^ T, + 63 + ), + y = p, + T = u, + I = (H + B) | 0, + I = + ((I = + (G = K) >>> 0 > (u = (G + z) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + (c = m)) | + 0, + u = ug( + (m = G = (T + (H = u)) | 0) ^ q, + (G = G >>> 0 < H >>> 0 ? (I + 1) | 0 : I) ^ v, + 32 + ), + I = (S + (H = p)) | 0, + S = ug( + T ^ (v = (F + u) | 0), + (I = F >>> 0 > v >>> 0 ? (I + 1) | 0 : I) ^ c, + 24 + ), + F = I, + z = i[(g + 164) >> 2], + q = S, + R = v, + I = (G + (c = p)) | 0, + G = S = (m + S) | 0, + I = + ((I = S >>> 0 < m >>> 0 ? (I + 1) | 0 : I) + + (T = z)) | + 0, + S = H, + H = I = + (m = ((v = i[(g + 160) >> 2]) + G) | 0) >>> 0 < + G >>> 0 + ? (I + 1) | 0 + : I, + iA = ug(m ^ u, S ^ I, 16), + I = ((I = F) + (F = p)) | 0, + S = I = + (G = (R + (S = iA)) | 0) >>> 0 < S >>> 0 + ? (I + 1) | 0 + : I, + q = ug(q ^ G, I ^ c, 63), + c = p, + u = f, + R = N, + I = (f + oA) | 0, + I = + (Y + + ((N = x) >>> 0 > (T = (R + N) | 0) >>> 0 + ? (I + 1) | 0 + : I)) | + 0, + _ = ug( + (N = f = (w + T) | 0) ^ BA, + (f = f >>> 0 < w >>> 0 ? (I + 1) | 0 : I) ^ _, + 32 + ), + I = (D + (w = p)) | 0, + D = I = + (Y = (M + _) | 0) >>> 0 < M >>> 0 ? (I + 1) | 0 : I, + T = u = ug(R ^ (M = Y), I ^ u, 24), + BA = I = p, + Y = I, + R = _, + I = (f + Q) | 0, + I = + ((I = + (u = ((_ = QA) + N) | 0) >>> 0 < _ >>> 0 + ? (I + 1) | 0 + : I) + + Y) | + 0, + Y = f = (T + u) | 0, + N = ug( + R ^ f, + (_ = w) ^ (w = f >>> 0 < u >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (D + (_ = p)) | 0, + I = + (f = (M + N) | 0) >>> 0 < M >>> 0 ? (I + 1) | 0 : I, + M = f, + D = I, + u = ug(f ^ T, I ^ BA, 63), + T = I = p, + f = I, + R = o, + I = (b + oA) | 0, + b = o = (x + AA) | 0, + I = + ((I = o >>> 0 < x >>> 0 ? (I + 1) | 0 : I) + f) | 0, + e = ug( + R ^ (o = x = (o + u) | 0), + (b = b >>> 0 > o >>> 0 ? (I + 1) | 0 : I) ^ e, + 32 + ), + I = (S + (f = p)) | 0, + oA = x = (G + e) | 0, + S = I = G >>> 0 > x >>> 0 ? (I + 1) | 0 : I, + R = x = ug(u ^ x, T ^ I, 24), + I = ((G = p) + b) | 0, + I = + ((I = + (o = (o + x) | 0) >>> 0 < x >>> 0 + ? (I + 1) | 0 + : I) + + IA) | + 0, + T = ug( + (u = x = (o + r) | 0) ^ e, + (o = r >>> 0 > u >>> 0 ? (I + 1) | 0 : I) ^ f, + 16 + ), + I = ((I = S) + (S = p)) | 0, + oA = x = ((b = T) + oA) | 0, + f = ug( + R ^ x, + (b = b >>> 0 > x >>> 0 ? (I + 1) | 0 : I) ^ G, + 63 + ), + G = p, + x = s, + R = t, + I = (s + J) | 0, + s = r = (t + L) | 0, + I = + ((I = r >>> 0 < t >>> 0 ? (I + 1) | 0 : I) + + (e = i[(g + 196) >> 2])) | + 0, + e = ug( + (r = t = (r + i[(g + 192) >> 2]) | 0) ^ iA, + (t = r >>> 0 < s >>> 0 ? (I + 1) | 0 : I) ^ F, + 32 + ), + I = (D + (s = p)) | 0, + D = x, + x = I = + (F = (M + e) | 0) >>> 0 < M >>> 0 ? (I + 1) | 0 : I, + R = I = ug(R ^ F, D ^ I, 24), + M = I, + D = (I + r) | 0, + I = ((J = p) + t) | 0, + I = (z + (D >>> 0 < M >>> 0 ? (I + 1) | 0 : I)) | 0, + z = t = (D + v) | 0, + L = ug( + t ^ e, + (r = s) ^ (s = t >>> 0 < v >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (x + (M = p)) | 0, + I = + (t = (F + L) | 0) >>> 0 < F >>> 0 ? (I + 1) | 0 : I, + F = t, + r = J, + J = I, + r = ug(R ^ t, r ^ I, 63), + x = p, + I = (rA + (t = y)) | 0, + I = + (H + + ((D = $) >>> 0 > (v = (D + P) | 0) >>> 0 + ? (I + 1) | 0 + : I)) | + 0, + D = y = (m + v) | 0, + v = ug( + y ^ N, + (m = y >>> 0 < m >>> 0 ? (I + 1) | 0 : I) ^ _, + 32 + ), + I = (a + (y = p)) | 0, + a = t, + t = I = + (H = (U + v) | 0) >>> 0 < U >>> 0 ? (I + 1) | 0 : I, + a = _ = ug(H ^ P, a ^ I, 24), + e = I = p, + _ = v, + v = ((I = D) + (D = Z)) | 0, + I = (m + yA) | 0, + I = + ((I = D >>> 0 > v >>> 0 ? (I + 1) | 0 : I) + e) | 0, + U = m = ((D = v) + a) | 0, + N = ug( + _ ^ m, + (D = m >>> 0 < D >>> 0 ? (I + 1) | 0 : I) ^ y, + 16 + ), + I = (t + (v = p)) | 0, + t = ug( + (P = m = (H + N) | 0) ^ a, + (m = m >>> 0 < H >>> 0 ? (I + 1) | 0 : I) ^ e, + 63 + ), + y = p, + H = c, + I = (c + B) | 0, + I = + (w + + ((a = ((_ = K) + q) | 0) >>> 0 < _ >>> 0 + ? (I + 1) | 0 + : I)) | + 0, + I = + (c = (Y + a) | 0) >>> 0 < Y >>> 0 ? (I + 1) | 0 : I, + Y = c, + c = I, + _ = ug(Y ^ O, I ^ k, 32), + I = (l + (k = p)) | 0, + I = + (w = (d + _) | 0) >>> 0 < d >>> 0 ? (I + 1) | 0 : I, + d = w, + a = H, + H = I, + a = ug(w ^ q, a ^ I, 24), + l = I = p, + w = I, + e = _, + _ = ((I = Y) + (Y = QA)) | 0, + I = (c + Q) | 0, + I = + ((I = Y >>> 0 > _ >>> 0 ? (I + 1) | 0 : I) + w) | 0, + q = c = (_ + a) | 0, + _ = ug( + e ^ c, + (Y = k) ^ (k = c >>> 0 < _ >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (H + (w = p)) | 0, + I = + (c = (d + _) | 0) >>> 0 < d >>> 0 ? (I + 1) | 0 : I, + d = c, + H = I, + e = ug(c ^ a, I ^ l, 63), + c = p, + a = r, + l = _, + I = (o + cA) | 0, + I = + ((I = + (r = ((_ = V) + u) | 0) >>> 0 < _ >>> 0 + ? (I + 1) | 0 + : I) + + (Y = x)) | + 0, + _ = o = (a + r) | 0, + x = I = o >>> 0 < r >>> 0 ? (I + 1) | 0 : I, + r = ug(l ^ o, I ^ w, 32), + I = ((I = m) + (m = p)) | 0, + o = Y, + Y = I = + r >>> 0 > (w = (r + P) | 0) >>> 0 ? (I + 1) | 0 : I, + I = ug(a ^ w, o ^ I, 24), + l = i[(g + 220) >> 2], + a = I, + P = r, + o = _, + _ = I, + r = (o + I) | 0, + I = ((o = p) + x) | 0, + I = + ((I = r >>> 0 < _ >>> 0 ? (I + 1) | 0 : I) + l) | 0, + P = ug( + P ^ (u = x = (r + i[(g + 216) >> 2]) | 0), + (_ = r >>> 0 > u >>> 0 ? (I + 1) | 0 : I) ^ m, + 16 + ), + I = (Y + (r = p)) | 0, + Y = I = + w >>> 0 > (x = (w + P) | 0) >>> 0 ? (I + 1) | 0 : I, + x = ug(a ^ (w = x), I ^ o, 63), + m = p, + R = t, + I = ((o = y) + s) | 0, + y = a = (t + z) | 0, + I = + ((I = a >>> 0 < t >>> 0 ? (I + 1) | 0 : I) + + (l = i[(g + 204) >> 2])) | + 0, + S = ug( + (a = t = (a + i[(g + 200) >> 2]) | 0) ^ T, + (t = a >>> 0 < y >>> 0 ? (I + 1) | 0 : I) ^ S, + 32 + ), + I = (H + (y = p)) | 0, + d = I = + (s = (d + S) | 0) >>> 0 < d >>> 0 ? (I + 1) | 0 : I, + l = o = ug(R ^ s, I ^ o, 24), + T = I = p, + H = I, + R = S, + I = (t + eA) | 0, + I = + ((I = + (o = ((S = W) + a) | 0) >>> 0 < S >>> 0 + ? (I + 1) | 0 + : I) + + H) | + 0, + z = t = (l + o) | 0, + BA = ug( + R ^ t, + (H = t >>> 0 < o >>> 0 ? (I + 1) | 0 : I) ^ y, + 16 + ), + I = (d + (S = p)) | 0, + I = + (t = (s + BA) | 0) >>> 0 < s >>> 0 + ? (I + 1) | 0 + : I, + s = t, + d = I, + t = ug(t ^ l, I ^ T, 63), + y = p, + R = e, + I = ((o = c) + D) | 0, + I = + (e = (e + U) | 0) >>> 0 < U >>> 0 ? (I + 1) | 0 : I, + U = e, + I = (I + (l = T = i[(g + 156) >> 2])) | 0, + l = ug( + (e = c = ((a = i[(g + 152) >> 2]) + e) | 0) ^ L, + (c = e >>> 0 < U >>> 0 ? (I + 1) | 0 : I) ^ M, + 32 + ), + I = ((I = b) + (b = p)) | 0, + M = I = + (U = (l + oA) | 0) >>> 0 < l >>> 0 + ? (I + 1) | 0 + : I, + oA = o = ug(R ^ U, I ^ o, 24), + L = I = p, + D = I, + R = o, + I = (c + E) | 0, + I = + ((I = + (o = j) >>> 0 > (e = (o + e) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + D) | + 0, + oA = c = (oA + (o = e)) | 0, + IA = ug( + c ^ l, + (D = c >>> 0 < o >>> 0 ? (I + 1) | 0 : I) ^ b, + 16 + ), + I = (M + (c = p)) | 0, + I = + (b = (U + IA) | 0) >>> 0 < U >>> 0 + ? (I + 1) | 0 + : I, + U = b, + M = I, + l = ug(R ^ b, I ^ L, 63), + b = p, + R = f, + I = ((o = G) + k) | 0, + G = e = (f + q) | 0, + I = + ((I = e >>> 0 < f >>> 0 ? (I + 1) | 0 : I) + + (L = i[(g + 236) >> 2])) | + 0, + v = ug( + (e = f = (e + i[(g + 232) >> 2]) | 0) ^ N, + (G = e >>> 0 < G >>> 0 ? (I + 1) | 0 : I) ^ v, + 32 + ), + I = (J + (k = p)) | 0, + N = f = (F + v) | 0, + f = ug( + R ^ f, + (I = f >>> 0 < F >>> 0 ? (I + 1) | 0 : I) ^ o, + 24 + ), + J = I, + L = i[(g + 132) >> 2], + q = f, + R = N, + N = v, + I = ((F = p) + G) | 0, + I = + ((I = + (o = (f + e) | 0) >>> 0 < f >>> 0 + ? (I + 1) | 0 + : I) + + L) | + 0, + I = + (f = ((v = i[(g + 128) >> 2]) + o) | 0) >>> 0 < + o >>> 0 + ? (I + 1) | 0 + : I, + G = f, + o = k, + k = I, + N = ug(N ^ f, o ^ I, 16), + I = ((I = J) + (J = p)) | 0, + I = + (f = (R + (o = N)) | 0) >>> 0 < o >>> 0 + ? (I + 1) | 0 + : I, + o = f, + f = F, + F = I, + q = I = ug(q ^ o, f ^ I, 63), + e = I, + u = (I + u) | 0, + I = ((f = p) + _) | 0, + I = (L + (e >>> 0 > u >>> 0 ? (I + 1) | 0 : I)) | 0, + u = ug( + (e = _ = (u + v) | 0) ^ BA, + (v = v >>> 0 > e >>> 0 ? (I + 1) | 0 : I) ^ S, + 32 + ), + I = (M + (S = p)) | 0, + I = + U >>> 0 > (_ = (U + u) | 0) >>> 0 ? (I + 1) | 0 : I, + U = _, + _ = f, + f = I, + q = _ = ug(q ^ U, _ ^ I, 24), + L = I = p, + M = I, + R = _, + I = (v + B) | 0, + I = + ((I = + (e = ((_ = K) + e) | 0) >>> 0 < _ >>> 0 + ? (I + 1) | 0 + : I) + + M) | + 0, + q = v = (q + e) | 0, + BA = ug( + v ^ u, + (M = v >>> 0 < e >>> 0 ? (I + 1) | 0 : I) ^ S, + 16 + ), + I = (f + (v = p)) | 0, + I = + U >>> 0 > (S = (U + BA) | 0) >>> 0 + ? (I + 1) | 0 + : I, + U = S, + S = I, + u = ug(R ^ U, I ^ L, 63), + f = p, + _ = m, + R = x, + I = (m + H) | 0, + m = e = (x + z) | 0, + I = + ((I = e >>> 0 < x >>> 0 ? (I + 1) | 0 : I) + + (L = i[(g + 148) >> 2])) | + 0, + z = ug( + (e = x = (e + i[(g + 144) >> 2]) | 0) ^ IA, + (x = m >>> 0 > e >>> 0 ? (I + 1) | 0 : I) ^ c, + 32 + ), + I = (F + (m = p)) | 0, + H = I = + (c = (o + z) | 0) >>> 0 < o >>> 0 ? (I + 1) | 0 : I, + L = I = ug(R ^ c, I ^ _, 24), + o = I, + _ = (I + e) | 0, + I = ((F = p) + x) | 0, + I = (T + (o >>> 0 > _ >>> 0 ? (I + 1) | 0 : I)) | 0, + T = x = (a + _) | 0, + z = ug( + x ^ z, + (o = a >>> 0 > x >>> 0 ? (I + 1) | 0 : I) ^ m, + 16 + ), + I = (H + (_ = p)) | 0, + m = ug( + L ^ (H = x = (c + z) | 0), + (a = F) ^ (F = c >>> 0 > H >>> 0 ? (I + 1) | 0 : I), + 63 + ), + c = p, + x = y, + L = t, + I = (y + D) | 0, + y = a = (t + oA) | 0, + I = + ((I = a >>> 0 < t >>> 0 ? (I + 1) | 0 : I) + + (e = i[(g + 164) >> 2])) | + 0, + e = ug( + (a = t = (a + i[(g + 160) >> 2]) | 0) ^ N, + (t = a >>> 0 < y >>> 0 ? (I + 1) | 0 : I) ^ J, + 32 + ), + I = (Y + (y = p)) | 0, + Y = x, + x = I = + w >>> 0 > (J = (w + e) | 0) >>> 0 ? (I + 1) | 0 : I, + w = ug(L ^ J, Y ^ I, 24), + N = I = p, + D = I, + R = w, + I = (t + Q) | 0, + I = + ((I = + (w = QA) >>> 0 > (Y = (w + a) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + D) | + 0, + oA = t = (R + (w = Y)) | 0, + L = ug( + t ^ e, + (D = t >>> 0 < w >>> 0 ? (I + 1) | 0 : I) ^ y, + 16 + ), + I = (x + (w = p)) | 0, + I = + (t = (J + L) | 0) >>> 0 < J >>> 0 ? (I + 1) | 0 : I, + J = t, + Y = I, + t = ug(R ^ t, I ^ N, 63), + y = p, + x = b, + I = (b + yA) | 0, + I = + (k + + ((a = Z) >>> 0 > (e = (a + l) | 0) >>> 0 + ? (I + 1) | 0 + : I)) | + 0, + r = ug( + (a = b = (G + e) | 0) ^ P, + (b = a >>> 0 < G >>> 0 ? (I + 1) | 0 : I) ^ r, + 32 + ), + I = (d + (G = p)) | 0, + e = x, + x = I = + s >>> 0 > (k = (s + r) | 0) >>> 0 ? (I + 1) | 0 : I, + e = k = ug((s = k) ^ l, e ^ I, 24), + l = I = p, + N = r, + I = (b + rA) | 0, + I = + ((I = + (r = ((k = $) + a) | 0) >>> 0 < k >>> 0 + ? (I + 1) | 0 + : I) + + l) | + 0, + d = b = (e + r) | 0, + r = ug( + N ^ b, + (a = G) ^ (G = b >>> 0 < r >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (x + (k = p)) | 0, + l = ug( + (a = b = (s + r) | 0) ^ e, + (b = s >>> 0 > a >>> 0 ? (I + 1) | 0 : I) ^ l, + 63 + ), + x = p, + s = c, + N = m, + P = r, + I = (c + M) | 0, + I = + ((I = + (r = (m + q) | 0) >>> 0 < m >>> 0 + ? (I + 1) | 0 + : I) + + (e = i[(g + 196) >> 2])) | + 0, + r = ug( + P ^ (M = m = (r + i[(g + 192) >> 2]) | 0), + (m = r >>> 0 > m >>> 0 ? (I + 1) | 0 : I) ^ k, + 32 + ), + I = (Y + (c = p)) | 0, + e = s, + s = I = + (k = (J + r) | 0) >>> 0 < J >>> 0 ? (I + 1) | 0 : I, + I = ug(N ^ k, e ^ I, 24), + N = i[(g + 204) >> 2], + e = I, + Y = M, + M = I, + Y = (Y + I) | 0, + I = ((J = p) + m) | 0, + I = + ((I = Y >>> 0 < M >>> 0 ? (I + 1) | 0 : I) + N) | 0, + P = m = (Y + i[(g + 200) >> 2]) | 0, + q = ug( + m ^ r, + (M = m >>> 0 < Y >>> 0 ? (I + 1) | 0 : I) ^ c, + 16 + ), + I = (s + (Y = p)) | 0, + m = ug( + e ^ (s = m = (k + q) | 0), + (k = s >>> 0 < k >>> 0 ? (I + 1) | 0 : I) ^ J, + 63 + ), + c = p, + J = y, + N = t, + R = a, + I = (y + o) | 0, + I = + ((I = + (a = (t + T) | 0) >>> 0 < t >>> 0 + ? (I + 1) | 0 + : I) + + (e = IA = i[(g + 212) >> 2])) | + 0, + a = ug( + (o = t = ((r = i[(g + 208) >> 2]) + a) | 0) ^ BA, + (t = t >>> 0 < a >>> 0 ? (I + 1) | 0 : I) ^ v, + 32 + ), + I = ((I = b) + (b = p)) | 0, + e = J, + J = I = + (y = (R + a) | 0) >>> 0 < a >>> 0 ? (I + 1) | 0 : I, + I = ug(N ^ y, e ^ I, 24), + N = i[(g + 220) >> 2], + R = I, + e = a, + a = o, + o = I, + a = (a + I) | 0, + I = ((v = p) + t) | 0, + I = + ((I = a >>> 0 < o >>> 0 ? (I + 1) | 0 : I) + N) | 0, + T = t = (a + i[(g + 216) >> 2]) | 0, + a = ug( + e ^ t, + (o = t >>> 0 < a >>> 0 ? (I + 1) | 0 : I) ^ b, + 16 + ), + I = (J + (e = p)) | 0, + J = b = (y + a) | 0, + b = ug( + R ^ b, + (t = v) ^ (v = y >>> 0 > b >>> 0 ? (I + 1) | 0 : I), + 63 + ), + t = p, + R = l, + I = (D + E) | 0, + I = + ((I = + (l = j) >>> 0 > (N = (l + oA) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + (y = x)) | + 0, + N = ug( + (x = D = (R + (l = N)) | 0) ^ z, + (D = D >>> 0 < l >>> 0 ? (I + 1) | 0 : I) ^ _, + 32 + ), + I = (S + (_ = p)) | 0, + I = + U >>> 0 > (l = (U + N) | 0) >>> 0 ? (I + 1) | 0 : I, + U = l, + l = y, + y = I, + l = ug(R ^ U, l ^ I, 24), + S = I = p, + R = l, + I = (D + I) | 0, + I = + ((I = + (l = (l + x) | 0) >>> 0 < x >>> 0 + ? (I + 1) | 0 + : I) + + (z = i[(g + 236) >> 2])) | + 0, + oA = x = ((D = l) + i[(g + 232) >> 2]) | 0, + z = ug( + x ^ N, + (D = D >>> 0 > x >>> 0 ? (I + 1) | 0 : I) ^ _, + 16 + ), + I = (y + (_ = p)) | 0, + N = ug( + R ^ (y = x = (U + z) | 0), + (U = U >>> 0 > y >>> 0 ? (I + 1) | 0 : I) ^ S, + 63 + ), + x = p, + S = f, + R = u, + I = (f + eA) | 0, + I = + (G + + ((u = ((l = W) + u) | 0) >>> 0 < l >>> 0 + ? (I + 1) | 0 + : I)) | + 0, + w = ug( + (l = f = (d + u) | 0) ^ L, + (f = f >>> 0 < d >>> 0 ? (I + 1) | 0 : I) ^ w, + 32 + ), + I = (F + (G = p)) | 0, + H = I = + H >>> 0 > (d = (H + w) | 0) >>> 0 ? (I + 1) | 0 : I, + u = S = ug(R ^ d, I ^ S, 24), + L = I = p, + F = I, + R = w, + I = (f + cA) | 0, + I = + ((I = + (w = V) >>> 0 > (S = (w + l) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + F) | + 0, + F = f = (u + (w = S)) | 0, + l = ug( + R ^ f, + (l = G) ^ (G = f >>> 0 < w >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (H + (w = p)) | 0, + I = + (f = (d + l) | 0) >>> 0 < d >>> 0 ? (I + 1) | 0 : I, + d = f, + H = I, + S = ug(f ^ u, I ^ L, 63), + u = I = p, + f = I, + L = a, + I = (M + eA) | 0, + M = a = (P + W) | 0, + I = + ((I = a >>> 0 < W >>> 0 ? (I + 1) | 0 : I) + f) | 0, + e = ug( + L ^ (a = W = (a + S) | 0), + (W = M >>> 0 > a >>> 0 ? (I + 1) | 0 : I) ^ e, + 32 + ), + I = (U + (f = p)) | 0, + U = I = + y >>> 0 > (M = (y + e) | 0) >>> 0 ? (I + 1) | 0 : I, + P = I = ug(S ^ (y = M), u ^ I, 24), + S = I, + a = (I + a) | 0, + I = ((M = p) + W) | 0, + I = (IA + (a >>> 0 < S >>> 0 ? (I + 1) | 0 : I)) | 0, + u = ug( + (u = e) ^ (e = W = (a + r) | 0), + (S = r >>> 0 > e >>> 0 ? (I + 1) | 0 : I) ^ f, + 16 + ), + I = (U + (r = p)) | 0, + y = ug( + P ^ (U = W = (y + u) | 0), + (a = M) ^ (M = y >>> 0 > U >>> 0 ? (I + 1) | 0 : I), + 63 + ), + f = p, + W = c, + L = m, + I = (c + o) | 0, + c = a = (m + T) | 0, + I = + ((I = a >>> 0 < m >>> 0 ? (I + 1) | 0 : I) + + (P = i[(g + 164) >> 2])) | + 0, + _ = ug( + (a = m = (a + i[(g + 160) >> 2]) | 0) ^ z, + (m = c >>> 0 > a >>> 0 ? (I + 1) | 0 : I) ^ _, + 32 + ), + I = (H + (c = p)) | 0, + I = + (o = (d + _) | 0) >>> 0 < d >>> 0 ? (I + 1) | 0 : I, + d = o, + H = W, + W = I, + I = ug(L ^ o, H ^ I, 24), + T = i[(g + 196) >> 2], + L = I, + P = _, + o = I, + _ = (I + a) | 0, + I = ((H = p) + m) | 0, + I = + ((I = o >>> 0 > _ >>> 0 ? (I + 1) | 0 : I) + T) | 0, + P = ug( + P ^ (a = m = ((o = _) + i[(g + 192) >> 2]) | 0), + (_ = c) ^ (c = o >>> 0 > a >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (W + (T = p)) | 0, + I = + (m = (d + P) | 0) >>> 0 < d >>> 0 ? (I + 1) | 0 : I, + d = m, + o = H, + H = I, + o = ug(L ^ m, o ^ I, 63), + W = p, + m = t, + L = b, + I = (t + D) | 0, + I = + ((I = + (_ = (b + oA) | 0) >>> 0 < b >>> 0 + ? (I + 1) | 0 + : I) + + (eA = i[(g + 204) >> 2])) | + 0, + w = ug( + (_ = b = ((t = _) + i[(g + 200) >> 2]) | 0) ^ l, + (b = t >>> 0 > b >>> 0 ? (I + 1) | 0 : I) ^ w, + 32 + ), + I = (k + (t = p)) | 0, + I = + s >>> 0 > (D = (s + w) | 0) >>> 0 ? (I + 1) | 0 : I, + s = D, + D = m, + m = I, + l = D = ug(L ^ s, D ^ I, 24), + eA = I = p, + k = I, + L = D, + I = (b + cA) | 0, + I = + ((I = + (D = (_ + V) | 0) >>> 0 < V >>> 0 + ? (I + 1) | 0 + : I) + + k) | + 0, + l = ug( + (_ = V = (l + D) | 0) ^ w, + (l = t) ^ (t = D >>> 0 > _ >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (m + (k = p)) | 0, + D = I = + s >>> 0 > (V = (s + l) | 0) >>> 0 ? (I + 1) | 0 : I, + V = ug(L ^ (s = V), I ^ eA, 63), + b = p, + I = (G + (m = x)) | 0, + G = w = (F + N) | 0, + I = + ((I = w >>> 0 < F >>> 0 ? (I + 1) | 0 : I) + + (eA = i[(g + 236) >> 2])) | + 0, + Y = ug( + (w = x = (w + i[(g + 232) >> 2]) | 0) ^ q, + (x = G >>> 0 > w >>> 0 ? (I + 1) | 0 : I) ^ Y, + 32 + ), + I = (v + (G = p)) | 0, + v = m, + m = I = + (F = (J + Y) | 0) >>> 0 < J >>> 0 ? (I + 1) | 0 : I, + v = ug(F ^ N, v ^ I, 24), + q = I = p, + J = I, + I = (x + yA) | 0, + I = + ((I = + (w = (w + Z) | 0) >>> 0 < Z >>> 0 + ? (I + 1) | 0 + : I) + + J) | + 0, + N = ug( + (J = Z = (w + v) | 0) ^ Y, + (N = G) ^ (G = w >>> 0 > J >>> 0 ? (I + 1) | 0 : I), + 16 + ), + I = (m + (yA = p)) | 0, + w = I = + F >>> 0 > (Z = (F + N) | 0) >>> 0 ? (I + 1) | 0 : I, + x = ug(v ^ (F = Z), I ^ q, 63), + m = p, + I = (S + B) | 0, + I = + ((I = + (v = (e + K) | 0) >>> 0 < K >>> 0 + ? (I + 1) | 0 + : I) + + (Y = W)) | + 0, + I = + v >>> 0 > (K = (v + o) | 0) >>> 0 ? (I + 1) | 0 : I, + v = K, + K = I, + I = (E + I) | 0, + j = I = + (Y = (j + v) | 0) >>> 0 < j >>> 0 ? (I + 1) | 0 : I, + e = Y, + Y = ug(v ^ N, K ^ yA, 32), + I = (D + (v = p)) | 0, + S = ug( + (D = K = (s + Y) | 0) ^ o, + (K = s >>> 0 > D >>> 0 ? (I + 1) | 0 : I) ^ W, + 24 + ), + I = ((o = p) + j) | 0, + I = + (s = S) >>> 0 > (W = (e + s) | 0) >>> 0 + ? (I + 1) | 0 + : I, + s = W, + i[g >> 2] = s, + i[(g + 4) >> 2] = I, + Z = I, + I = ug(s ^ Y, I ^ v, 16), + Y = W = p, + i[(g + 120) >> 2] = I, + i[(g + 124) >> 2] = Y, + j = I, + D = (I + D) | 0, + I = (Y + K) | 0, + i[(g + 80) >> 2] = D, + I = D >>> 0 < j >>> 0 ? (I + 1) | 0 : I, + i[(g + 84) >> 2] = I, + hA = g, + DA = ug(S ^ D, I ^ o, 63), + i[(hA + 40) >> 2] = DA, + i[(g + 44) >> 2] = p, + K = b, + o = V, + I = (c + b) | 0, + I = + ((I = + (j = (a + V) | 0) >>> 0 < V >>> 0 + ? (I + 1) | 0 + : I) + + (D = i[(g + 132) >> 2])) | + 0, + j = I = + (V = (j + i[(g + 128) >> 2]) | 0) >>> 0 < j >>> 0 + ? (I + 1) | 0 + : I, + c = ug(V ^ u, I ^ r, 32), + I = (w + (D = p)) | 0, + a = K, + K = I = + F >>> 0 > (b = (F + c) | 0) >>> 0 ? (I + 1) | 0 : I, + w = ug(o ^ (F = b), a ^ I, 24), + I = (j + (Y = p)) | 0, + I = + (b = (w + V) | 0) >>> 0 < V >>> 0 ? (I + 1) | 0 : I, + V = ((j = i[(g + 144) >> 2]) + b) | 0, + I = (i[(g + 148) >> 2] + I) | 0, + I = V >>> 0 < j >>> 0 ? (I + 1) | 0 : I, + i[(g + 8) >> 2] = V, + i[(g + 12) >> 2] = I, + I = ug(c ^ V, I ^ D, 16), + b = W = p, + i[(g + 96) >> 2] = I, + i[(g + 100) >> 2] = b, + V = I, + j = (I + F) | 0, + I = (b + K) | 0, + K = j, + i[(g + 88) >> 2] = K, + I = V >>> 0 > K >>> 0 ? (I + 1) | 0 : I, + i[(g + 92) >> 2] = I, + hA = g, + DA = ug(w ^ K, I ^ Y, 63), + i[(hA + 48) >> 2] = DA, + i[(g + 52) >> 2] = p, + a = $, + I = (t + m) | 0, + I = + ((I = + (V = (_ + x) | 0) >>> 0 < x >>> 0 + ? (I + 1) | 0 + : I) + + (j = i[(g + 220) >> 2])) | + 0, + I = + (W = (V + i[(g + 216) >> 2]) | 0) >>> 0 < V >>> 0 + ? (I + 1) | 0 + : I, + $ = W, + j = W, + V = (a + W) | 0, + W = I, + I = (I + rA) | 0, + I = V >>> 0 < j >>> 0 ? (I + 1) | 0 : I, + j = V, + V = I, + a = j, + o = x, + j = ug(P ^ $, W ^ T, 32), + I = (M + (x = p)) | 0, + m = ug( + o ^ (b = W = (U + j) | 0), + (W = U >>> 0 > b >>> 0 ? (I + 1) | 0 : I) ^ m, + 24 + ), + I = ((c = p) + V) | 0, + V = $ = (a + (t = m)) | 0, + i[(g + 16) >> 2] = V, + I = t >>> 0 > V >>> 0 ? (I + 1) | 0 : I, + i[(g + 20) >> 2] = I, + I = ug(V ^ j, I ^ x, 16), + K = p, + i[(g + 104) >> 2] = I, + i[(g + 108) >> 2] = K, + V = I, + $ = (I + b) | 0, + I = (W + K) | 0, + W = $, + i[(g + 64) >> 2] = W, + I = V >>> 0 > W >>> 0 ? (I + 1) | 0 : I, + i[(g + 68) >> 2] = I, + hA = g, + DA = ug(t ^ W, I ^ c, 63), + i[(hA + 56) >> 2] = DA, + i[(g + 60) >> 2] = p, + I = (f + Q) | 0, + I = + ((I = + (V = (y + QA) | 0) >>> 0 < y >>> 0 + ? (I + 1) | 0 + : I) + + G) | + 0, + QA = I = + J >>> 0 > (V = (J + V) | 0) >>> 0 ? (I + 1) | 0 : I, + x = ug(V ^ l, I ^ k, 32), + I = (H + (b = p)) | 0, + K = I = + d >>> 0 > ($ = (d + x) | 0) >>> 0 ? (I + 1) | 0 : I, + m = ug($ ^ y, f ^ I, 24), + I = (QA + (t = p)) | 0, + I = + V >>> 0 > (j = (m + V) | 0) >>> 0 ? (I + 1) | 0 : I, + V = ((QA = i[(g + 152) >> 2]) + j) | 0, + I = (i[(g + 156) >> 2] + I) | 0, + I = V >>> 0 < QA >>> 0 ? (I + 1) | 0 : I, + i[(g + 24) >> 2] = V, + i[(g + 28) >> 2] = I, + I = ug(x ^ V, I ^ b, 16), + i[(g + 112) >> 2] = I, + QA = p, + i[(g + 116) >> 2] = QA, + V = (I + $) | 0, + I = (K + QA) | 0, + K = V, + i[(g + 72) >> 2] = K, + I = K >>> 0 < $ >>> 0 ? (I + 1) | 0 : I, + i[(g + 76) >> 2] = I, + hA = g, + DA = ug(m ^ K, I ^ t, 63), + i[(hA + 32) >> 2] = DA, + i[(g + 36) >> 2] = p, + I = + i[(g + 68) >> 2] ^ + (n[(A + 4) | 0] | + (n[(A + 5) | 0] << 8) | + (n[(A + 6) | 0] << 16) | + (n[(A + 7) | 0] << 24)) ^ + Z, + K = + i[(g + 64) >> 2] ^ + (n[0 | A] | + (n[(A + 1) | 0] << 8) | + (n[(A + 2) | 0] << 16) | + (n[(A + 3) | 0] << 24)) ^ + s, + C[0 | A] = K, + C[(A + 1) | 0] = K >>> 8, + C[(A + 2) | 0] = K >>> 16, + C[(A + 3) | 0] = K >>> 24, + C[(A + 4) | 0] = I, + C[(A + 5) | 0] = I >>> 8, + C[(A + 6) | 0] = I >>> 16, + C[(A + 7) | 0] = I >>> 24, + Z = 1; + (I = ((K = Z << 3) + A) | 0), + (W = K = (g + K) | 0), + (V = + i[K >> 2] ^ + (n[0 | I] | + (n[(I + 1) | 0] << 8) | + (n[(I + 2) | 0] << 16) | + (n[(I + 3) | 0] << 24))), + (QA = i[(K = (K - -64) | 0) >> 2]), + (K = + i[(K + 4) >> 2] ^ + i[(W + 4) >> 2] ^ + (n[(I + 4) | 0] | + (n[(I + 5) | 0] << 8) | + (n[(I + 6) | 0] << 16) | + (n[(I + 7) | 0] << 24))), + (W = V ^ QA), + (C[0 | I] = W), + (C[(I + 1) | 0] = W >>> 8), + (C[(I + 2) | 0] = W >>> 16), + (C[(I + 3) | 0] = W >>> 24), + (C[(I + 4) | 0] = K), + (C[(I + 5) | 0] = K >>> 8), + (C[(I + 6) | 0] = K >>> 16), + (C[(I + 7) | 0] = K >>> 24), + 8 != (0 | (Z = (Z + 1) | 0)); + + ); + h = (g + 256) | 0 + } + function F(A, I, g, B) { + var Q = 0, + C = 0, + E = 0, + n = 0, + a = 0, + r = 0, + o = 0, + e = 0, + t = 0, + f = 0, + c = 0, + y = 0, + s = 0, + w = 0, + h = 0, + D = 0, + u = 0, + l = 0, + F = 0, + G = 0, + k = 0, + _ = 0, + H = 0, + Y = 0, + b = 0, + m = 0, + v = 0, + U = 0, + S = 0, + N = 0, + M = 0, + d = 0, + P = 0, + R = 0, + J = 0, + x = 0, + L = 0 + for ( + (function (A, I) { + for ( + var g = 0, B = 0, Q = 0, C = 0, E = 0; + (C = Q = ((B = g << 3) + A) | 0), + (E = dA((I + B) | 0)), + (i[C >> 2] = E), + (i[(Q + 4) >> 2] = p), + 16 != (0 | (g = (g + 1) | 0)); + + ); + })(g, I), + I = X(B, A, 64), + o = i[g >> 2], + f = i[(g + 4) >> 2], + B = 0; + ; + + ) { + if ( + ((Q = ug( + (l = i[((E = I) + 32) >> 2]), + (t = i[(E + 36) >> 2]), + 14 + )), + (s = p), + (Q = ug(l, t, 18) ^ Q), + (D = p ^ s), + (C = o), + (o = ug(l, t, 41) ^ Q), + (Q = ((p ^ D) + f) | 0), + (Q = + o >>> 0 > (s = (C + o) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (o = s), + (y = i[(E + 48) >> 2]), + (o = + ((D = i[(f = (34784 + (L = B << 3)) | 0) >> 2]) + + o) | + 0), + (Q = (i[(f + 4) >> 2] + Q) | 0), + (Q = o >>> 0 < D >>> 0 ? (Q + 1) | 0 : Q), + (o = + ((f = y ^ (((k = i[(E + 40) >> 2]) ^ y) & l)) + o) | + 0), + (Q = + (((((C = i[(E + 52) >> 2]) ^ + (u = i[(E + 44) >> 2])) & + t) ^ + C) + + Q) | + 0), + (Q = o >>> 0 < f >>> 0 ? (Q + 1) | 0 : Q), + (s = ((a = o) + (o = i[(E + 56) >> 2])) | 0), + (Q = (i[(E + 60) >> 2] + Q) | 0), + (Q = o >>> 0 > s >>> 0 ? (Q + 1) | 0 : Q), + (f = (s + (D = i[(E + 24) >> 2])) | 0), + (o = Q), + (Q = (Q + i[(E + 28) >> 2]) | 0), + (Q = f >>> 0 < D >>> 0 ? (Q + 1) | 0 : Q), + (D = f), + (c = Q), + (i[(E + 24) >> 2] = f), + (i[(E + 28) >> 2] = Q), + (Q = ug((F = i[E >> 2]), (f = i[(E + 4) >> 2]), 28)), + (h = p), + (Q = ug(F, f, 34) ^ Q), + (n = p ^ h), + (h = (s + (ug(F, f, 39) ^ Q)) | 0), + (Q = (o + (p ^ n)) | 0), + (Q = s >>> 0 > h >>> 0 ? (Q + 1) | 0 : Q), + (s = + ((a = + (F & + ((n = i[(E + 16) >> 2]) | + (r = i[(E + 8) >> 2]))) | + (n & r)) + + h) | + 0), + (Q = + (((f & + ((h = i[(E + 20) >> 2]) | + (o = i[(E + 12) >> 2]))) | + (o & h)) + + Q) | + 0), + (s = Q = a >>> 0 > (e = s) >>> 0 ? (Q + 1) | 0 : Q), + (i[(E + 56) >> 2] = e), + (i[(E + 60) >> 2] = Q), + (Q = ug(D, c, 14)), + (a = p), + (d = ug(D, c, 18) ^ Q), + (a ^= p), + (w = n), + (Q = ((((t ^ u) & c) ^ u) + C) | 0), + (Q = + (n = ((l ^ k) & D) ^ k) >>> 0 > + (y = (n + y) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (C = ug(D, c, 41) ^ d), + (Q = ((p ^ a) + Q) | 0), + (Q = + C >>> 0 > (y = (C + y) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (y = + ((a = + i[(n = d = ((C = (1 | B) << 3) + g) | 0) >> 2]) + + y) | + 0), + (Q = (i[(n + 4) >> 2] + Q) | 0), + (Q = a >>> 0 > y >>> 0 ? (Q + 1) | 0 : Q), + (y = ((n = i[(C = (C + 34784) | 0) >> 2]) + y) | 0), + (Q = (i[(C + 4) >> 2] + Q) | 0), + (n = Q = n >>> 0 > y >>> 0 ? (Q + 1) | 0 : Q), + (Q = (Q + h) | 0), + (h = y = (w + (C = a = y)) | 0), + (C = Q = C >>> 0 > y >>> 0 ? (Q + 1) | 0 : Q), + (i[(E + 16) >> 2] = y), + (i[(E + 20) >> 2] = Q), + (y = E), + (Q = ug(e, s, 28)), + (E = p), + (G = ug(e, s, 34) ^ Q), + (H = p ^ E), + (E = ((Q = a) + (a = ((r | F) & e) | (r & F))) | 0), + (Q = ((((o | f) & s) | (o & f)) + n) | 0), + (Q = E >>> 0 < a >>> 0 ? (Q + 1) | 0 : Q), + (n = ug(e, s, 39) ^ G), + (Q = ((p ^ H) + Q) | 0), + (G = E = (n + E) | 0), + (E = Q = E >>> 0 < n >>> 0 ? (Q + 1) | 0 : Q), + (i[(y + 48) >> 2] = G), + (i[(y + 52) >> 2] = Q), + (a = y), + (Q = ug(h, C, 14)), + (y = p), + (n = ug(h, C, 18) ^ Q), + (H = p ^ y), + (w = r), + (Q = ((((t ^ c) & C) ^ t) + u) | 0), + (Q = + (r = ((D ^ l) & h) ^ l) >>> 0 > + (y = (r + k) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (n = ug(h, C, 41) ^ n), + (Q = ((p ^ H) + Q) | 0), + (Q = + n >>> 0 > (y = (n + y) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (y = + ((k = + i[(r = U = ((n = (2 | B) << 3) + g) | 0) >> 2]) + + y) | + 0), + (Q = (i[(r + 4) >> 2] + Q) | 0), + (Q = y >>> 0 < k >>> 0 ? (Q + 1) | 0 : Q), + (y = ((r = i[(n = (n + 34784) | 0) >> 2]) + y) | 0), + (Q = (i[(n + 4) >> 2] + Q) | 0), + (Q = r >>> 0 > y >>> 0 ? (Q + 1) | 0 : Q), + (y = (w + (n = r = y)) | 0), + (w = o), + (o = Q), + (Q = (w + Q) | 0), + (n = Q = n >>> 0 > y >>> 0 ? (Q + 1) | 0 : Q), + (i[(a + 8) >> 2] = y), + (i[(a + 12) >> 2] = Q), + (Q = ug(G, E, 28)), + (k = p), + (u = ug(G, E, 34) ^ Q), + (k ^= p), + (Q = ((((f | s) & E) | (f & s)) + o) | 0), + (Q = + (r = ((H = ((e | F) & G) | (e & F)) + r) | 0) >>> + 0 < + H >>> 0 + ? (Q + 1) | 0 + : Q), + (o = r), + (r = ug(G, E, 39) ^ u), + (Q = ((p ^ k) + Q) | 0), + (k = o = (o + r) | 0), + (o = Q = o >>> 0 < r >>> 0 ? (Q + 1) | 0 : Q), + (i[(a + 40) >> 2] = k), + (i[(a + 44) >> 2] = Q), + (r = a), + (Q = ug(y, n, 14)), + (a = p), + (u = ug(y, n, 18) ^ Q), + (H = p ^ a), + (w = F), + (Q = ((c ^ ((C ^ c) & n)) + t) | 0), + (Q = + (a = ((F = D ^ ((h ^ D) & y)) + l) | 0) >>> 0 < + F >>> 0 + ? (Q + 1) | 0 + : Q), + (t = a), + (a = ug(y, n, 41) ^ u), + (Q = ((p ^ H) + Q) | 0), + (Q = + a >>> 0 > (t = (t + a) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (t = + ((u = + i[(l = F = ((a = (3 | B) << 3) + g) | 0) >> 2]) + + t) | + 0), + (Q = (i[(l + 4) >> 2] + Q) | 0), + (Q = t >>> 0 < u >>> 0 ? (Q + 1) | 0 : Q), + (t = ((l = i[(a = (a + 34784) | 0) >> 2]) + t) | 0), + (Q = (i[(a + 4) >> 2] + Q) | 0), + (Q = t >>> 0 < l >>> 0 ? (Q + 1) | 0 : Q), + (l = t), + (t = (w + (a = t)) | 0), + (w = f), + (f = Q), + (Q = (w + Q) | 0), + (a = Q = a >>> 0 > t >>> 0 ? (Q + 1) | 0 : Q), + (i[r >> 2] = t), + (i[(r + 4) >> 2] = Q), + (Q = ug(k, o, 28)), + (u = p), + (H = ug(k, o, 34) ^ Q), + (u ^= p), + (Q = ((((E | s) & o) | (E & s)) + f) | 0), + (Q = + (l = ((v = ((e | G) & k) | (e & G)) + l) | 0) >>> + 0 < + v >>> 0 + ? (Q + 1) | 0 + : Q), + (f = l), + (l = ug(k, o, 39) ^ H), + (Q = ((p ^ u) + Q) | 0), + (Q = + (f = (f + l) | 0) >>> 0 < l >>> 0 + ? (Q + 1) | 0 + : Q), + (l = f), + (f = Q), + (i[(r + 32) >> 2] = l), + (i[(r + 36) >> 2] = Q), + (Q = ug(t, a, 14)), + (u = p), + (H = ug(t, a, 18) ^ Q), + (u ^= p), + (w = e), + (Q = (c + (C ^ ((C ^ n) & a))) | 0), + (Q = + (e = (D + (h ^ ((y ^ h) & t))) | 0) >>> 0 < D >>> 0 + ? (Q + 1) | 0 + : Q), + (c = ug(t, a, 41) ^ H), + (Q = ((p ^ u) + Q) | 0), + (Q = + c >>> 0 > (D = (c + e) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (D = + ((u = + i[(e = S = ((c = (4 | B) << 3) + g) | 0) >> 2]) + + D) | + 0), + (Q = (i[(e + 4) >> 2] + Q) | 0), + (Q = D >>> 0 < u >>> 0 ? (Q + 1) | 0 : Q), + (D = ((e = i[(c = (c + 34784) | 0) >> 2]) + D) | 0), + (Q = (i[(c + 4) >> 2] + Q) | 0), + (c = s), + (s = Q = e >>> 0 > D >>> 0 ? (Q + 1) | 0 : Q), + (Q = (c + Q) | 0), + (c = Q = + (e = D) >>> 0 > (D = (w + e) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (i[(r + 56) >> 2] = D), + (i[(r + 60) >> 2] = Q), + (Q = ug(l, f, 28)), + (u = p), + (H = ug(l, f, 34) ^ Q), + (u ^= p), + (Q = ((((E | o) & f) | (E & o)) + s) | 0), + (Q = + (e = ((v = ((k | G) & l) | (k & G)) + e) | 0) >>> + 0 < + v >>> 0 + ? (Q + 1) | 0 + : Q), + (s = e), + (e = ug(l, f, 39) ^ H), + (Q = ((p ^ u) + Q) | 0), + (u = s = (s + e) | 0), + (s = Q = e >>> 0 > s >>> 0 ? (Q + 1) | 0 : Q), + (i[(r + 24) >> 2] = u), + (i[(r + 28) >> 2] = Q), + (Q = ug(D, c, 14)), + (e = p), + (H = ug(D, c, 18) ^ Q), + (v = p ^ e), + (w = G), + (Q = (C + (n ^ ((n ^ a) & c))) | 0), + (Q = + (e = (h + (y ^ ((t ^ y) & D))) | 0) >>> 0 < h >>> 0 + ? (Q + 1) | 0 + : Q), + (C = ug(D, c, 41) ^ H), + (Q = ((p ^ v) + Q) | 0), + (Q = + C >>> 0 > (h = (C + e) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (h = + ((H = + i[(e = G = ((C = (5 | B) << 3) + g) | 0) >> 2]) + + h) | + 0), + (Q = (i[(e + 4) >> 2] + Q) | 0), + (Q = h >>> 0 < H >>> 0 ? (Q + 1) | 0 : Q), + (h = ((e = i[(C = (C + 34784) | 0) >> 2]) + h) | 0), + (Q = (i[(C + 4) >> 2] + Q) | 0), + (Q = e >>> 0 > h >>> 0 ? (Q + 1) | 0 : Q), + (h = (w + (C = e = h)) | 0), + (w = E), + (E = Q), + (Q = (w + Q) | 0), + (C = Q = C >>> 0 > h >>> 0 ? (Q + 1) | 0 : Q), + (i[(r + 48) >> 2] = h), + (i[(r + 52) >> 2] = Q), + (Q = ug(u, s, 28)), + (H = p), + (v = ug(u, s, 34) ^ Q), + (H ^= p), + (Q = ((((o | f) & s) | (o & f)) + E) | 0), + (Q = + (e = ((_ = ((l | k) & u) | (l & k)) + e) | 0) >>> + 0 < + _ >>> 0 + ? (Q + 1) | 0 + : Q), + (E = e), + (e = ug(u, s, 39) ^ v), + (Q = ((p ^ H) + Q) | 0), + (v = E = (E + e) | 0), + (E = Q = E >>> 0 < e >>> 0 ? (Q + 1) | 0 : Q), + (i[(r + 16) >> 2] = v), + (i[(r + 20) >> 2] = Q), + (Q = ug(h, C, 14)), + (e = p), + (H = ug(h, C, 18) ^ Q), + (_ = p ^ e), + (w = k), + (Q = (n + (a ^ ((a ^ c) & C))) | 0), + (Q = + (e = (y + (t ^ ((t ^ D) & h))) | 0) >>> 0 < y >>> 0 + ? (Q + 1) | 0 + : Q), + (n = ug(h, C, 41) ^ H), + (Q = ((p ^ _) + Q) | 0), + (Q = + n >>> 0 > (y = (n + e) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (y = + ((k = + i[(e = R = ((n = (6 | B) << 3) + g) | 0) >> 2]) + + y) | + 0), + (Q = (i[(e + 4) >> 2] + Q) | 0), + (Q = y >>> 0 < k >>> 0 ? (Q + 1) | 0 : Q), + (y = ((e = i[(n = (n + 34784) | 0) >> 2]) + y) | 0), + (Q = (i[(n + 4) >> 2] + Q) | 0), + (Q = e >>> 0 > y >>> 0 ? (Q + 1) | 0 : Q), + (y = (w + (n = e = y)) | 0), + (w = o), + (o = Q), + (Q = (w + Q) | 0), + (n = Q = n >>> 0 > y >>> 0 ? (Q + 1) | 0 : Q), + (i[(r + 40) >> 2] = y), + (i[(r + 44) >> 2] = Q), + (Q = ug(v, E, 28)), + (k = p), + (H = ug(v, E, 34) ^ Q), + (k ^= p), + (Q = ((((f | s) & E) | (f & s)) + o) | 0), + (Q = + (e = ((_ = ((u | l) & v) | (u & l)) + e) | 0) >>> + 0 < + _ >>> 0 + ? (Q + 1) | 0 + : Q), + (o = e), + (e = ug(v, E, 39) ^ H), + (Q = ((p ^ k) + Q) | 0), + (_ = o = (o + e) | 0), + (o = Q = o >>> 0 < e >>> 0 ? (Q + 1) | 0 : Q), + (i[(r + 8) >> 2] = _), + (i[(r + 12) >> 2] = Q), + (Q = ug(y, n, 14)), + (e = p), + (k = ug(y, n, 18) ^ Q), + (H = p ^ e), + (w = l), + (Q = (a + (c ^ ((C ^ c) & n))) | 0), + (Q = + (e = (t + (D ^ ((h ^ D) & y))) | 0) >>> 0 < t >>> 0 + ? (Q + 1) | 0 + : Q), + (a = ug(y, n, 41) ^ k), + (Q = ((p ^ H) + Q) | 0), + (Q = + a >>> 0 > (t = (a + e) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (t = + ((l = + i[(e = k = ((a = (7 | B) << 3) + g) | 0) >> 2]) + + t) | + 0), + (Q = (i[(e + 4) >> 2] + Q) | 0), + (Q = t >>> 0 < l >>> 0 ? (Q + 1) | 0 : Q), + (t = ((e = i[(a = (a + 34784) | 0) >> 2]) + t) | 0), + (Q = (i[(a + 4) >> 2] + Q) | 0), + (Q = t >>> 0 < e >>> 0 ? (Q + 1) | 0 : Q), + (t = (w + (a = e = t)) | 0), + (w = f), + (f = Q), + (Q = (w + Q) | 0), + (a = Q = a >>> 0 > t >>> 0 ? (Q + 1) | 0 : Q), + (i[(r + 32) >> 2] = t), + (i[(r + 36) >> 2] = Q), + (Q = ug(_, o, 28)), + (l = p), + (H = ug(_, o, 34) ^ Q), + (l ^= p), + (Q = ((((E | s) & o) | (E & s)) + f) | 0), + (Q = + (e = ((w = ((u | v) & _) | (u & v)) + e) | 0) >>> + 0 < + w >>> 0 + ? (Q + 1) | 0 + : Q), + (f = e), + (e = ug(_, o, 39) ^ H), + (Q = ((p ^ l) + Q) | 0), + (w = f = (f + e) | 0), + (f = Q = e >>> 0 > f >>> 0 ? (Q + 1) | 0 : Q), + (i[r >> 2] = w), + (i[(r + 4) >> 2] = Q), + (e = r), + (Q = ug(t, a, 14)), + (r = p), + (l = ug(t, a, 18) ^ Q), + (H = p ^ r), + (Q = (c + (C ^ ((C ^ n) & a))) | 0), + (Q = + (r = (D + (h ^ ((y ^ h) & t))) | 0) >>> 0 < D >>> 0 + ? (Q + 1) | 0 + : Q), + (c = ug(t, a, 41) ^ l), + (Q = ((p ^ H) + Q) | 0), + (Q = + c >>> 0 > (D = (c + r) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (D = + ((l = + i[(r = H = ((c = (8 | B) << 3) + g) | 0) >> 2]) + + D) | + 0), + (Q = (i[(r + 4) >> 2] + Q) | 0), + (Q = D >>> 0 < l >>> 0 ? (Q + 1) | 0 : Q), + (D = ((r = i[(c = (c + 34784) | 0) >> 2]) + D) | 0), + (Q = (i[(c + 4) >> 2] + Q) | 0), + (Q = r >>> 0 > D >>> 0 ? (Q + 1) | 0 : Q), + (l = D), + (r = s), + (s = Q), + (Q = (r + Q) | 0), + (r = Q = + (c = D) >>> 0 > (D = (c + u) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (i[(e + 24) >> 2] = D), + (i[(e + 28) >> 2] = Q), + (c = e), + (Q = ug(w, f, 28)), + (e = p), + (u = ug(w, f, 34) ^ Q), + (Y = p ^ e), + (e = ((Q = l) + (l = ((_ | v) & w) | (_ & v))) | 0), + (Q = ((((E | o) & f) | (E & o)) + s) | 0), + (Q = e >>> 0 < l >>> 0 ? (Q + 1) | 0 : Q), + (s = e), + (e = ug(w, f, 39) ^ u), + (Q = ((p ^ Y) + Q) | 0), + (Y = s = (s + e) | 0), + (s = Q = e >>> 0 > s >>> 0 ? (Q + 1) | 0 : Q), + (i[(c + 56) >> 2] = Y), + (i[(c + 60) >> 2] = Q), + (Q = ug(D, r, 14)), + (e = p), + (l = ug(D, r, 18) ^ Q), + (u = p ^ e), + (Q = (C + (n ^ ((n ^ a) & r))) | 0), + (Q = + (e = (h + (y ^ ((t ^ y) & D))) | 0) >>> 0 < h >>> 0 + ? (Q + 1) | 0 + : Q), + (C = ug(D, r, 41) ^ l), + (Q = ((p ^ u) + Q) | 0), + (Q = + C >>> 0 > (h = (C + e) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (h = + ((u = + i[(e = l = ((C = (9 | B) << 3) + g) | 0) >> 2]) + + h) | + 0), + (Q = (i[(e + 4) >> 2] + Q) | 0), + (Q = h >>> 0 < u >>> 0 ? (Q + 1) | 0 : Q), + (h = ((e = i[(C = (C + 34784) | 0) >> 2]) + h) | 0), + (Q = (i[(C + 4) >> 2] + Q) | 0), + (Q = e >>> 0 > h >>> 0 ? (Q + 1) | 0 : Q), + (e = E), + (E = Q), + (Q = (e + Q) | 0), + (e = Q = + (C = h) >>> 0 > (h = (C + v) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (i[(c + 16) >> 2] = h), + (i[(c + 20) >> 2] = Q), + (Q = ug(Y, s, 28)), + (u = p), + (v = ug(Y, s, 34) ^ Q), + (u ^= p), + (Q = ((((o | f) & s) | (o & f)) + E) | 0), + (Q = + (C = ((b = ((w | _) & Y) | (w & _)) + C) | 0) >>> + 0 < + b >>> 0 + ? (Q + 1) | 0 + : Q), + (E = C), + (C = ug(Y, s, 39) ^ v), + (Q = ((p ^ u) + Q) | 0), + (b = E = (E + C) | 0), + (E = Q = E >>> 0 < C >>> 0 ? (Q + 1) | 0 : Q), + (i[(c + 48) >> 2] = b), + (i[(c + 52) >> 2] = Q), + (Q = ug(h, e, 14)), + (C = p), + (u = ug(h, e, 18) ^ Q), + (v = p ^ C), + (Q = (n + (a ^ ((r ^ a) & e))) | 0), + (Q = + (C = (y + (t ^ ((t ^ D) & h))) | 0) >>> 0 < y >>> 0 + ? (Q + 1) | 0 + : Q), + (n = C), + (C = ug(h, e, 41) ^ u), + (Q = ((p ^ v) + Q) | 0), + (Q = + C >>> 0 > (y = (n + C) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (y = + ((u = + i[(n = v = ((C = (10 | B) << 3) + g) | 0) >> 2]) + + y) | + 0), + (Q = (i[(n + 4) >> 2] + Q) | 0), + (Q = y >>> 0 < u >>> 0 ? (Q + 1) | 0 : Q), + (y = ((n = i[(C = (C + 34784) | 0) >> 2]) + y) | 0), + (Q = (i[(C + 4) >> 2] + Q) | 0), + (Q = n >>> 0 > y >>> 0 ? (Q + 1) | 0 : Q), + (u = y), + (n = o), + (o = Q), + (Q = (n + Q) | 0), + (n = Q = + (C = y) >>> 0 > (y = (C + _) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (i[(c + 8) >> 2] = y), + (i[(c + 12) >> 2] = Q), + (C = c), + (Q = ug(b, E, 28)), + (c = p), + (_ = ug(b, E, 34) ^ Q), + (N = p ^ c), + (c = ((Q = u) + (u = ((w | Y) & b) | (w & Y))) | 0), + (Q = ((((f | s) & E) | (f & s)) + o) | 0), + (Q = c >>> 0 < u >>> 0 ? (Q + 1) | 0 : Q), + (o = c), + (c = ug(b, E, 39) ^ _), + (Q = ((p ^ N) + Q) | 0), + (c = Q = + (o = (o + c) | 0) >>> 0 < c >>> 0 + ? (Q + 1) | 0 + : Q), + (i[(C + 40) >> 2] = o), + (i[(C + 44) >> 2] = Q), + (Q = ug(y, n, 14)), + (u = p), + (_ = ug(y, n, 18) ^ Q), + (N = p ^ u), + (m = w), + (Q = (a + (r ^ ((r ^ e) & n))) | 0), + (Q = + (u = (t + (D ^ ((h ^ D) & y))) | 0) >>> 0 < t >>> 0 + ? (Q + 1) | 0 + : Q), + (a = ug(y, n, 41) ^ _), + (Q = ((p ^ N) + Q) | 0), + (Q = + a >>> 0 > (t = (a + u) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (t = + ((w = i[(u = ((a = (11 | B) << 3) + g) | 0) >> 2]) + + t) | + 0), + (Q = (i[(u + 4) >> 2] + Q) | 0), + (Q = t >>> 0 < w >>> 0 ? (Q + 1) | 0 : Q), + (t = ((_ = i[(a = (a + 34784) | 0) >> 2]) + t) | 0), + (Q = (i[(a + 4) >> 2] + Q) | 0), + (Q = t >>> 0 < _ >>> 0 ? (Q + 1) | 0 : Q), + (w = t), + (_ = f), + (f = Q), + (Q = (_ + Q) | 0), + (a = Q = + (a = t) >>> 0 > (t = (m + a) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (i[C >> 2] = t), + (i[(C + 4) >> 2] = Q), + (_ = C), + (Q = ug(o, c, 28)), + (C = p), + (N = ug(o, c, 34) ^ Q), + (M = p ^ C), + (C = ((Q = w) + (w = ((Y | b) & o) | (Y & b))) | 0), + (Q = ((((E | s) & c) | (E & s)) + f) | 0), + (Q = C >>> 0 < w >>> 0 ? (Q + 1) | 0 : Q), + (f = C), + (C = ug(o, c, 39) ^ N), + (Q = ((p ^ M) + Q) | 0), + (C = Q = + C >>> 0 > (f = (f + C) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (i[(_ + 32) >> 2] = f), + (i[(_ + 36) >> 2] = Q), + (w = _), + (Q = ug(t, a, 14)), + (_ = p), + (N = ug(t, a, 18) ^ Q), + (M = p ^ _), + (m = Y), + (Q = (r + (e ^ ((n ^ e) & a))) | 0), + (Q = + (_ = (D + (h ^ ((y ^ h) & t))) | 0) >>> 0 < D >>> 0 + ? (Q + 1) | 0 + : Q), + (r = ug(t, a, 41) ^ N), + (Q = ((p ^ M) + Q) | 0), + (Q = + r >>> 0 > (D = (r + _) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (D = + ((N = + i[(Y = _ = ((r = (12 | B) << 3) + g) | 0) >> 2]) + + D) | + 0), + (Q = (i[(Y + 4) >> 2] + Q) | 0), + (Q = D >>> 0 < N >>> 0 ? (Q + 1) | 0 : Q), + (D = ((Y = i[(r = (r + 34784) | 0) >> 2]) + D) | 0), + (Q = (i[(r + 4) >> 2] + Q) | 0), + (Q = D >>> 0 < Y >>> 0 ? (Q + 1) | 0 : Q), + (Y = D), + (D = (m + (r = D)) | 0), + (m = s), + (s = Q), + (Q = (m + Q) | 0), + (N = D), + (D = Q = r >>> 0 > D >>> 0 ? (Q + 1) | 0 : Q), + (i[(w + 56) >> 2] = N), + (i[(w + 60) >> 2] = Q), + (r = w), + (Q = ug(f, C, 28)), + (w = p), + (M = ug(f, C, 34) ^ Q), + (m = p ^ w), + (w = ((Q = Y) + (Y = ((o | b) & f) | (o & b))) | 0), + (Q = ((((E | c) & C) | (E & c)) + s) | 0), + (Q = w >>> 0 < Y >>> 0 ? (Q + 1) | 0 : Q), + (s = w), + (w = ug(f, C, 39) ^ M), + (Q = ((p ^ m) + Q) | 0), + (Y = s = (s + w) | 0), + (s = Q = s >>> 0 < w >>> 0 ? (Q + 1) | 0 : Q), + (i[(r + 24) >> 2] = Y), + (i[(r + 28) >> 2] = Q), + (w = r), + (Q = ug(N, D, 14)), + (r = p), + (M = ug(N, D, 18) ^ Q), + (m = p ^ r), + (P = b), + (Q = (e + (n ^ ((n ^ a) & D))) | 0), + (Q = + (r = (h + (y ^ ((t ^ y) & N))) | 0) >>> 0 < h >>> 0 + ? (Q + 1) | 0 + : Q), + (e = r), + (r = ug(N, D, 41) ^ M), + (Q = ((p ^ m) + Q) | 0), + (Q = + r >>> 0 > (h = (e + r) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (r = + ((r = h) + + (M = + i[(h = ((e = (13 | B) << 3) + g) | 0) >> 2])) | + 0), + (Q = (i[(h + 4) >> 2] + Q) | 0), + (Q = r >>> 0 < M >>> 0 ? (Q + 1) | 0 : Q), + (r = ((b = i[(e = (e + 34784) | 0) >> 2]) + r) | 0), + (Q = (i[(e + 4) >> 2] + Q) | 0), + (Q = r >>> 0 < b >>> 0 ? (Q + 1) | 0 : Q), + (b = r), + (e = r), + (m = E), + (E = Q), + (Q = (m + Q) | 0), + (M = r = (P + r) | 0), + (r = Q = r >>> 0 < e >>> 0 ? (Q + 1) | 0 : Q), + (i[(w + 48) >> 2] = M), + (i[(w + 52) >> 2] = Q), + (e = w), + (Q = ug(Y, s, 28)), + (w = p), + (m = ug(Y, s, 34) ^ Q), + (P = p ^ w), + (w = ((Q = b) + (b = ((o | f) & Y) | (o & f))) | 0), + (Q = ((((C | c) & s) | (C & c)) + E) | 0), + (Q = w >>> 0 < b >>> 0 ? (Q + 1) | 0 : Q), + (E = w), + (w = ug(Y, s, 39) ^ m), + (Q = ((p ^ P) + Q) | 0), + (b = E = (E + w) | 0), + (E = Q = E >>> 0 < w >>> 0 ? (Q + 1) | 0 : Q), + (i[(e + 16) >> 2] = b), + (i[(e + 20) >> 2] = Q), + (Q = ug(M, r, 14)), + (w = p), + (m = ug(M, r, 18) ^ Q), + (P = p ^ w), + (Q = (n + (a ^ ((a ^ D) & r))) | 0), + (Q = + (w = (y + (t ^ ((t ^ N) & M))) | 0) >>> 0 < y >>> 0 + ? (Q + 1) | 0 + : Q), + (n = ug(M, r, 41) ^ m), + (Q = ((p ^ P) + Q) | 0), + (Q = + n >>> 0 > (y = (n + w) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (n = + ((n = y) + + (P = + i[(y = ((w = (14 | B) << 3) + g) | 0) >> 2])) | + 0), + (Q = (i[(y + 4) >> 2] + Q) | 0), + (Q = n >>> 0 < P >>> 0 ? (Q + 1) | 0 : Q), + (n = ((m = i[(w = (w + 34784) | 0) >> 2]) + n) | 0), + (Q = (i[(w + 4) >> 2] + Q) | 0), + (P = n), + (w = Q = n >>> 0 < m >>> 0 ? (Q + 1) | 0 : Q), + (Q = (c + Q) | 0), + (m = n = (o + n) | 0), + (o = Q = n >>> 0 < o >>> 0 ? (Q + 1) | 0 : Q), + (i[(e + 40) >> 2] = n), + (i[(e + 44) >> 2] = Q), + (n = e), + (Q = ug(b, E, 28)), + (c = p), + (e = ug(b, E, 34) ^ Q), + (J = p ^ c), + (c = ((Q = P) + (P = ((f | Y) & b) | (f & Y))) | 0), + (Q = ((((C | s) & E) | (C & s)) + w) | 0), + (Q = c >>> 0 < P >>> 0 ? (Q + 1) | 0 : Q), + (e = ug(b, E, 39) ^ e), + (Q = ((p ^ J) + Q) | 0), + (Q = + e >>> 0 > (c = (e + c) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (e = c), + (c = Q), + (i[(n + 8) >> 2] = e), + (i[(n + 12) >> 2] = Q), + (Q = ug(m, o, 14)), + (n = p), + (P = ug(m, o, 18) ^ Q), + (J = p ^ n), + (Q = (a + (D ^ ((r ^ D) & o))) | 0), + (Q = + (w = (t + (N ^ ((N ^ M) & m))) | 0) >>> 0 < t >>> 0 + ? (Q + 1) | 0 + : Q), + (D = ug(m, o, 41) ^ P), + (Q = ((p ^ J) + Q) | 0), + (Q = + (o = (D + w) | 0) >>> 0 < D >>> 0 + ? (Q + 1) | 0 + : Q), + (o = + ((r = + i[(a = D = ((t = (15 | B) << 3) + g) | 0) >> 2]) + + o) | + 0), + (Q = (i[(a + 4) >> 2] + Q) | 0), + (Q = o >>> 0 < r >>> 0 ? (Q + 1) | 0 : Q), + (o = ((a = i[(t = (t + 34784) | 0) >> 2]) + o) | 0), + (Q = (i[(t + 4) >> 2] + Q) | 0), + (Q = o >>> 0 < a >>> 0 ? (Q + 1) | 0 : Q), + (t = (f + (a = o)) | 0), + (o = Q), + (Q = (C + Q) | 0), + (i[((n = I) + 32) >> 2] = t), + (i[(n + 36) >> 2] = + t >>> 0 < f >>> 0 ? (Q + 1) | 0 : Q), + (Q = ug(e, c, 28)), + (f = p), + (C = ug(e, c, 34) ^ Q), + (n = p ^ f), + (Q = ((((E | s) & c) | (E & s)) + o) | 0), + (s = + ((t = + ((E = a) + (a = ((Y | b) & e) | (Y & b))) | 0) + + (E = ug(e, c, 39) ^ C)) | + 0), + (Q = + ((p ^ n) + (a >>> 0 > t >>> 0 ? (Q + 1) | 0 : Q)) | + 0), + (i[(f = I) >> 2] = s), + (i[(f + 4) >> 2] = + E >>> 0 > s >>> 0 ? (Q + 1) | 0 : Q), + 64 == (0 | B)) + ) { + for ( + ; + (s = g = ((B = x << 3) + A) | 0), + (B = + ((E = i[(Q = (I + B) | 0) >> 2]) + i[s >> 2]) | + 0), + (Q = (i[(s + 4) >> 2] + i[(Q + 4) >> 2]) | 0), + (i[s >> 2] = B), + (i[(s + 4) >> 2] = + B >>> 0 < E >>> 0 ? (Q + 1) | 0 : Q), + 8 != (0 | (x = (x + 1) | 0)); + + ); + break + } + ;(c = (((B = (B + 16) | 0) << 3) + g) | 0), + (Y = s = i[(y + 4) >> 2]), + (Q = (s >>> 6) | 0), + (s = + (((63 & s) << 26) | ((b = i[y >> 2]) >>> 6)) ^ + ug(b, s, 19)), + (Q ^= p), + (s = + ((C = ug(b, Y, 61) ^ s) + (E = w = i[l >> 2])) | 0), + (Q = ((f = i[(l + 4) >> 2]) + (p ^ Q)) | 0), + (Q = E >>> 0 > s >>> 0 ? (Q + 1) | 0 : Q), + (s = ((o = i[(E = (g + L) | 0) >> 2]) + s) | 0), + (Q = (i[(E + 4) >> 2] + Q) | 0), + (s = o >>> 0 > (C = s) >>> 0 ? (Q + 1) | 0 : Q), + (o = E = i[(d + 4) >> 2]), + (Q = (E >>> 7) | 0), + (E = + (((127 & E) << 25) | ((t = i[d >> 2]) >>> 7)) ^ + ug(t, E, 1)), + (Q ^= p), + (a = C), + (C = ug(t, o, 8) ^ E), + (Q = ((p ^ Q) + s) | 0), + (n = E = (a + C) | 0), + (E = Q = E >>> 0 < C >>> 0 ? (Q + 1) | 0 : Q), + (i[c >> 2] = n), + (i[(c + 4) >> 2] = Q), + (Q = (i[((c = d) + 76) >> 2] + o) | 0), + (C = t), + (o = + (t = i[(c + 72) >> 2]) >>> 0 > + (C = s = (C + t) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (s = t = i[(D + 4) >> 2]), + (Q = (t >>> 6) | 0), + (t = + (((63 & t) << 26) | ((e = i[D >> 2]) >>> 6)) ^ + ug(e, t, 19)), + (Q ^= p), + (a = C), + (C = ug(e, s, 61) ^ t), + (Q = ((p ^ Q) + o) | 0), + (o = + C >>> 0 > (a = t = (a + C) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (t = C = i[(c + 12) >> 2]), + (Q = (C >>> 7) | 0), + (C = + (((127 & C) << 25) | + ((r = i[(c + 8) >> 2]) >>> 7)) ^ + ug(r, C, 1)), + (Q ^= p), + (d = a), + (a = ug(r, t, 8) ^ C), + (Q = ((p ^ Q) + o) | 0), + (Q = + (C = (d + a) | 0) >>> 0 < a >>> 0 + ? (Q + 1) | 0 + : Q), + (a = C), + (o = Q), + (i[(c + 128) >> 2] = C), + (i[(c + 132) >> 2] = Q), + (c = U), + (C = t), + (Q = ug(n, E, 19)), + (U = p), + (t = Q), + (Q = (E >>> 6) | 0), + (E = + ((E = + ug(n, E, 61) ^ + t ^ + (((63 & E) << 26) | (n >>> 6))) + + (n = d = i[u >> 2])) | + 0), + (Q = ((t = i[(u + 4) >> 2]) + (p ^ Q ^ U)) | 0), + (Q = E >>> 0 < n >>> 0 ? (Q + 1) | 0 : Q), + (n = E), + (Q = (Q + C) | 0), + (r = E = (E + r) | 0), + (E = E >>> 0 < n >>> 0 ? (Q + 1) | 0 : Q), + (n = C = i[(F + 4) >> 2]), + (Q = (C >>> 7) | 0), + (C = + (((127 & C) << 25) | ((U = i[F >> 2]) >>> 7)) ^ + ug(U, C, 1)), + (Q ^= p), + (m = r), + (r = ug(U, n, 8) ^ C), + (Q = ((p ^ Q) + E) | 0), + (Q = + (C = (m + r) | 0) >>> 0 < r >>> 0 + ? (Q + 1) | 0 + : Q), + (r = C), + (E = Q), + (i[(c + 128) >> 2] = C), + (i[(c + 132) >> 2] = Q), + (c = ((Q = U) + (U = i[((C = F) + 72) >> 2])) | 0), + (Q = (i[(C + 76) >> 2] + n) | 0), + (n = Q = c >>> 0 < U >>> 0 ? (Q + 1) | 0 : Q), + (Q = ug(a, o, 19)), + (U = p), + (F = c), + (c = Q), + (Q = (o >>> 6) | 0), + (c = + ug(a, o, 61) ^ c ^ (((63 & o) << 26) | (a >>> 6))), + (Q = ((p ^ Q ^ U) + n) | 0), + (U = o = (F + c) | 0), + (o = o >>> 0 < c >>> 0 ? (Q + 1) | 0 : Q), + (c = n = i[(C + 12) >> 2]), + (Q = (n >>> 7) | 0), + (n = + (((127 & n) << 25) | + ((a = i[(C + 8) >> 2]) >>> 7)) ^ + ug(a, n, 1)), + (Q ^= p), + (F = ug(a, c, 8) ^ n), + (Q = ((p ^ Q) + o) | 0), + (Q = + (n = (F + U) | 0) >>> 0 < F >>> 0 + ? (Q + 1) | 0 + : Q), + (F = n), + (o = Q), + (i[(C + 128) >> 2] = n), + (i[(C + 132) >> 2] = Q), + (C = S), + (n = c), + (Q = ug(r, E, 19)), + (S = p), + (m = a), + (a = Q), + (Q = (E >>> 6) | 0), + (E = + ((E = + ug(r, E, 61) ^ + a ^ + (((63 & E) << 26) | (r >>> 6))) + + (a = U = i[h >> 2])) | + 0), + (Q = ((c = i[(h + 4) >> 2]) + (p ^ Q ^ S)) | 0), + (Q = E >>> 0 < a >>> 0 ? (Q + 1) | 0 : Q), + (a = E), + (Q = (Q + n) | 0), + (S = E = (m + E) | 0), + (E = E >>> 0 < a >>> 0 ? (Q + 1) | 0 : Q), + (a = n = i[(G + 4) >> 2]), + (Q = (n >>> 7) | 0), + (n = + (((127 & n) << 25) | ((r = i[G >> 2]) >>> 7)) ^ + ug(r, n, 1)), + (Q ^= p), + (m = S), + (S = ug(r, a, 8) ^ n), + (Q = ((p ^ Q) + E) | 0), + (Q = + (n = (m + S) | 0) >>> 0 < S >>> 0 + ? (Q + 1) | 0 + : Q), + (S = n), + (E = Q), + (i[(C + 128) >> 2] = n), + (i[(C + 132) >> 2] = Q), + (C = ((Q = r) + (r = i[((n = G) + 72) >> 2])) | 0), + (Q = (i[(n + 76) >> 2] + a) | 0), + (a = Q = C >>> 0 < r >>> 0 ? (Q + 1) | 0 : Q), + (Q = ug(F, o, 19)), + (r = p), + (G = C), + (m = Q), + (Q = ((C = o) >>> 6) | 0), + (C = + m ^ (((63 & C) << 26) | (F >>> 6)) ^ ug(F, C, 61)), + (Q = ((p ^ Q ^ r) + a) | 0), + (o = + C >>> 0 > (r = o = (G + C) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (Q = ((C = a = i[(n + 12) >> 2]) >>> 7) | 0), + (a = + (((127 & C) << 25) | + ((G = i[(n + 8) >> 2]) >>> 7)) ^ + ug(G, C, 1)), + (Q ^= p), + (F = r), + (r = ug(G, C, 8) ^ a), + (Q = ((p ^ Q) + o) | 0), + (F = a = (F + r) | 0), + (o = Q = r >>> 0 > a >>> 0 ? (Q + 1) | 0 : Q), + (i[(n + 128) >> 2] = a), + (i[(n + 132) >> 2] = Q), + (n = R), + (a = C), + (Q = ug(S, E, 19)), + (R = p), + (C = Q), + (Q = (E >>> 6) | 0), + (C = + ug(S, E, 61) ^ C ^ (((63 & E) << 26) | (S >>> 6))), + (Q = ((p ^ Q ^ R) + s) | 0), + (Q = + (E = (C + e) | 0) >>> 0 < C >>> 0 + ? (Q + 1) | 0 + : Q), + (C = E), + (Q = (Q + a) | 0), + (G = E = (E + G) | 0), + (E = E >>> 0 < C >>> 0 ? (Q + 1) | 0 : Q), + (Q = ((C = r = i[(k + 4) >> 2]) >>> 7) | 0), + (r = + (((127 & C) << 25) | ((a = i[k >> 2]) >>> 7)) ^ + ug(a, C, 1)), + (Q ^= p), + (S = G), + (G = ug(a, C, 8) ^ r), + (Q = ((p ^ Q) + E) | 0), + (E = Q = + (r = (S + G) | 0) >>> 0 < G >>> 0 + ? (Q + 1) | 0 + : Q), + (i[(n + 128) >> 2] = r), + (i[(n + 132) >> 2] = Q), + (Q = (i[((n = k) + 76) >> 2] + C) | 0), + (a = + (C = a = ((G = i[(n + 72) >> 2]) + a) | 0) >>> 0 < + G >>> 0 + ? (Q + 1) | 0 + : Q), + (Q = ug(F, o, 19)), + (G = p), + (S = C), + (k = Q), + (Q = ((C = o) >>> 6) | 0), + (C = + k ^ (((63 & C) << 26) | (F >>> 6)) ^ ug(F, C, 61)), + (Q = ((p ^ Q ^ G) + a) | 0), + (F = o = (S + C) | 0), + (o = C >>> 0 > o >>> 0 ? (Q + 1) | 0 : Q), + (Q = ((C = a = i[(n + 12) >> 2]) >>> 7) | 0), + (a = + (((127 & C) << 25) | + ((G = i[(n + 8) >> 2]) >>> 7)) ^ + ug(G, C, 1)), + (Q ^= p), + (S = F), + (F = ug(G, C, 8) ^ a), + (Q = ((p ^ Q) + o) | 0), + (Q = + (a = (S + F) | 0) >>> 0 < F >>> 0 + ? (Q + 1) | 0 + : Q), + (F = a), + (o = Q), + (i[(n + 128) >> 2] = a), + (i[(n + 132) >> 2] = Q), + (a = C), + (Q = ug(r, E, 19)), + (k = p), + (C = Q), + (Q = (E >>> 6) | 0), + (E = + ((E = + ug(r, E, 61) ^ + C ^ + (((63 & E) << 26) | (r >>> 6))) + + (C = i[((n = H) + 72) >> 2])) | + 0), + (Q = (i[(n + 76) >> 2] + (p ^ Q ^ k)) | 0), + (Q = E >>> 0 < C >>> 0 ? (Q + 1) | 0 : Q), + (C = E), + (Q = (Q + a) | 0), + (C = Q = + (E = (E + G) | 0) >>> 0 < C >>> 0 + ? (Q + 1) | 0 + : Q), + (Q = ug(w, f, 1)), + (a = p), + (G = E), + (r = Q), + (Q = ((E = f) >>> 7) | 0), + (r = + r ^ (((127 & E) << 25) | (w >>> 7)) ^ ug(w, E, 8)), + (Q = ((p ^ Q ^ a) + C) | 0), + (a = E = (G + r) | 0), + (E = Q = E >>> 0 < r >>> 0 ? (Q + 1) | 0 : Q), + (i[(n + 128) >> 2] = a), + (i[(n + 132) >> 2] = Q), + (Q = (i[((C = l) + 76) >> 2] + f) | 0), + (f = n = ((r = i[(C + 72) >> 2]) + w) | 0), + (n = n >>> 0 < r >>> 0 ? (Q + 1) | 0 : Q), + (Q = ug(F, o, 19)), + (r = p), + (w = f), + (f = Q), + (Q = (o >>> 6) | 0), + (f = + ug(F, o, 61) ^ f ^ (((63 & o) << 26) | (F >>> 6))), + (Q = ((p ^ Q ^ r) + n) | 0), + (o = + (r = o = (w + f) | 0) >>> 0 < f >>> 0 + ? (Q + 1) | 0 + : Q), + (f = n = i[(C + 12) >> 2]), + (Q = (n >>> 7) | 0), + (n = + (((127 & n) << 25) | + ((F = i[(C + 8) >> 2]) >>> 7)) ^ + ug(F, n, 1)), + (Q ^= p), + (w = r), + (r = ug(F, f, 8) ^ n), + (Q = ((p ^ Q) + o) | 0), + (Q = + (n = (w + r) | 0) >>> 0 < r >>> 0 + ? (Q + 1) | 0 + : Q), + (r = n), + (o = Q), + (i[(C + 128) >> 2] = n), + (i[(C + 132) >> 2] = Q), + (n = f), + (Q = ug(a, E, 19)), + (G = p), + (C = Q), + (Q = (E >>> 6) | 0), + (E = + ((E = + ug(a, E, 61) ^ + C ^ + (((63 & E) << 26) | (a >>> 6))) + + (f = i[((C = v) + 72) >> 2])) | + 0), + (Q = (i[(C + 76) >> 2] + (p ^ Q ^ G)) | 0), + (Q = E >>> 0 < f >>> 0 ? (Q + 1) | 0 : Q), + (f = E), + (Q = (Q + n) | 0), + (f = Q = + (E = (E + F) | 0) >>> 0 < f >>> 0 + ? (Q + 1) | 0 + : Q), + (Q = ug(d, t, 1)), + (n = p), + (w = E), + (a = Q), + (Q = ((E = t) >>> 7) | 0), + (a = + a ^ (((127 & E) << 25) | (d >>> 7)) ^ ug(d, E, 8)), + (Q = ((p ^ Q ^ n) + f) | 0), + (n = E = (w + a) | 0), + (E = Q = E >>> 0 < a >>> 0 ? (Q + 1) | 0 : Q), + (i[(C + 128) >> 2] = n), + (i[(C + 132) >> 2] = Q), + (f = ((a = i[((C = u) + 72) >> 2]) + d) | 0), + (Q = (i[(C + 76) >> 2] + t) | 0), + (t = Q = a >>> 0 > f >>> 0 ? (Q + 1) | 0 : Q), + (Q = ug(r, o, 19)), + (a = p), + (w = f), + (f = Q), + (Q = (o >>> 6) | 0), + (f = + ug(r, o, 61) ^ f ^ (((63 & o) << 26) | (r >>> 6))), + (Q = ((p ^ Q ^ a) + t) | 0), + (o = + (a = o = (w + f) | 0) >>> 0 < f >>> 0 + ? (Q + 1) | 0 + : Q), + (f = t = i[(C + 12) >> 2]), + (Q = (t >>> 7) | 0), + (t = + (((127 & t) << 25) | + ((r = i[(C + 8) >> 2]) >>> 7)) ^ + ug(r, t, 1)), + (Q ^= p), + (w = a), + (a = ug(r, f, 8) ^ t), + (Q = ((p ^ Q) + o) | 0), + (Q = + a >>> 0 > (t = (w + a) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (a = t), + (o = Q), + (i[(C + 128) >> 2] = a), + (i[(C + 132) >> 2] = Q), + (C = f), + (Q = ug(n, E, 19)), + (d = p), + (f = Q), + (Q = (E >>> 6) | 0), + (E = + ((E = + ug(n, E, 61) ^ + f ^ + (((63 & E) << 26) | (n >>> 6))) + + (f = i[((t = _) + 72) >> 2])) | + 0), + (Q = (i[(t + 76) >> 2] + (p ^ Q ^ d)) | 0), + (Q = E >>> 0 < f >>> 0 ? (Q + 1) | 0 : Q), + (f = E), + (Q = (Q + C) | 0), + (f = Q = + (E = (E + r) | 0) >>> 0 < f >>> 0 + ? (Q + 1) | 0 + : Q), + (Q = ug(U, c, 1)), + (C = p), + (r = E), + (n = Q), + (Q = ((E = c) >>> 7) | 0), + (n = + n ^ (((127 & E) << 25) | (U >>> 7)) ^ ug(U, E, 8)), + (Q = ((p ^ Q ^ C) + f) | 0), + (C = E = (r + n) | 0), + (E = Q = E >>> 0 < n >>> 0 ? (Q + 1) | 0 : Q), + (i[(t + 128) >> 2] = C), + (i[(t + 132) >> 2] = Q), + (t = ((n = i[((f = h) + 72) >> 2]) + U) | 0), + (Q = (i[(f + 76) >> 2] + c) | 0), + (c = Q = n >>> 0 > t >>> 0 ? (Q + 1) | 0 : Q), + (Q = ug(a, o, 19)), + (n = p), + (r = t), + (t = Q), + (Q = (o >>> 6) | 0), + (t = + ug(a, o, 61) ^ t ^ (((63 & o) << 26) | (a >>> 6))), + (Q = ((p ^ Q ^ n) + c) | 0), + (o = + (n = o = (r + t) | 0) >>> 0 < t >>> 0 + ? (Q + 1) | 0 + : Q), + (c = t = i[(f + 12) >> 2]), + (Q = (t >>> 7) | 0), + (t = + (((127 & t) << 25) | + ((h = i[(f + 8) >> 2]) >>> 7)) ^ + ug(h, t, 1)), + (Q ^= p), + (t = ug(h, c, 8) ^ t), + (Q = ((p ^ Q) + o) | 0), + (Q = + t >>> 0 > (h = (t + n) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (t = h), + (o = Q), + (i[(f + 128) >> 2] = t), + (i[(f + 132) >> 2] = Q), + (h = ((c = i[((f = y) + 72) >> 2]) + b) | 0), + (Q = (i[(f + 76) >> 2] + Y) | 0), + (y = Q = c >>> 0 > h >>> 0 ? (Q + 1) | 0 : Q), + (Q = ug(C, E, 19)), + (c = p), + (a = h), + (n = Q), + (Q = (E >>> 6) | 0), + (h = + ug(C, E, 61) ^ n ^ (((63 & E) << 26) | (C >>> 6))), + (Q = ((p ^ Q ^ c) + y) | 0), + (h = Q = + (E = (a + h) | 0) >>> 0 < h >>> 0 + ? (Q + 1) | 0 + : Q), + (Q = ug(e, s, 1)), + (y = p), + (C = E), + (a = Q), + (Q = ((E = s) >>> 7) | 0), + (E = + (C + + (c = + a ^ + (((127 & E) << 25) | (e >>> 7)) ^ + ug(e, E, 8))) | + 0), + (Q = ((p ^ Q ^ y) + h) | 0), + (i[(f + 128) >> 2] = E), + (i[(f + 132) >> 2] = + E >>> 0 < c >>> 0 ? (Q + 1) | 0 : Q), + (Q = (i[((E = D) + 76) >> 2] + s) | 0), + (s = f = ((h = i[(E + 72) >> 2]) + e) | 0), + (f = f >>> 0 < h >>> 0 ? (Q + 1) | 0 : Q), + (Q = ug(t, o, 19)), + (h = p), + (C = Q), + (Q = (o >>> 6) | 0), + (o = + ug(t, o, 61) ^ C ^ (((63 & o) << 26) | (t >>> 6))), + (Q = ((p ^ Q ^ h) + f) | 0), + (s = + o >>> 0 > (y = s = (o + s) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (D = + (((127 & (f = h = i[(E + 12) >> 2])) << 25) | + ((o = i[(E + 8) >> 2]) >>> 7)) ^ + ug(o, f, 1)), + (Q = p ^ (f >>> 7)), + (D = ((h = ug(o, f, 8) ^ D) + y) | 0), + (Q = ((p ^ Q) + s) | 0), + (i[(E + 128) >> 2] = D), + (i[(E + 132) >> 2] = + h >>> 0 > D >>> 0 ? (Q + 1) | 0 : Q) + } + } + function G(A) { + var I, + g, + B, + Q, + E, + i, + a, + r, + o, + e, + t, + f, + c, + y, + s, + w, + h, + D, + u = 0, + l = 0, + F = 0, + G = 0, + k = 0, + _ = 0, + H = 0, + Y = 0, + b = 0, + m = 0, + v = 0, + U = 0, + S = 0, + N = 0, + M = 0, + d = 0, + P = 0, + R = 0, + J = 0, + x = 0, + L = 0, + K = 0, + q = 0, + X = 0, + V = 0, + W = 0, + T = 0, + j = 0, + Z = 0, + O = 0, + z = 0, + $ = 0, + AA = 0, + IA = 0, + gA = 0, + BA = 0, + QA = 0, + CA = 0, + EA = 0 + ;(y = HI(A)), + (s = + n[(A + 2) | 0] | + (n[(A + 3) | 0] << 8) | + (n[(A + 4) | 0] << 16) | + (n[(A + 5) | 0] << 24)), + (w = HI((A + 5) | 0)), + (h = p), + (IA = + n[(A + 7) | 0] | + (n[(A + 8) | 0] << 8) | + (n[(A + 9) | 0] << 16) | + (n[(A + 10) | 0] << 24)), + (gA = + n[(A + 10) | 0] | + (n[(A + 11) | 0] << 8) | + (n[(A + 12) | 0] << 16) | + (n[(A + 13) | 0] << 24)), + (D = HI((A + 13) | 0)), + (BA = p), + (M = + n[(A + 15) | 0] | + (n[(A + 16) | 0] << 8) | + (n[(A + 17) | 0] << 16) | + (n[(A + 18) | 0] << 24)), + (Z = HI((A + 18) | 0)), + (d = p), + (m = HI((A + 21) | 0)), + (_ = + n[(A + 23) | 0] | + (n[(A + 24) | 0] << 8) | + (n[(A + 25) | 0] << 16) | + (n[(A + 26) | 0] << 24)), + (k = HI((A + 26) | 0)), + (l = p), + (AA = + n[(A + 28) | 0] | + (n[(A + 29) | 0] << 8) | + (n[(A + 30) | 0] << 16) | + (n[(A + 31) | 0] << 24)), + (q = + n[(A + 31) | 0] | + (n[(A + 32) | 0] << 8) | + (n[(A + 33) | 0] << 16) | + (n[(A + 34) | 0] << 24)), + (T = HI((A + 34) | 0)), + (W = p), + (P = + n[(A + 36) | 0] | + (n[(A + 37) | 0] << 8) | + (n[(A + 38) | 0] << 16) | + (n[(A + 39) | 0] << 24)), + (O = HI((A + 39) | 0)), + (J = p), + (Y = HI((A + 42) | 0)), + (G = + n[(A + 44) | 0] | + (n[(A + 45) | 0] << 8) | + (n[(A + 46) | 0] << 16) | + (n[(A + 47) | 0] << 24)), + (F = HI((A + 47) | 0)), + (u = 2097151 & (((3 & l) << 30) | (k >>> 2))), + (k = + (eg( + (I = 2097151 & (((3 & (H = p)) << 30) | (F >>> 2))), + 0, + 136657, + 0 + ) + + u) | + 0), + (l = p), + (l = u >>> 0 > k >>> 0 ? (l + 1) | 0 : l), + (F = eg( + (g = + ((n[(A + 49) | 0] | + (n[(A + 50) | 0] << 8) | + (n[(A + 51) | 0] << 16) | + (n[(A + 52) | 0] << 24)) >>> + 7) & + 2097151), + 0, + -997805, + -1 + )), + (u = (p + l) | 0), + (u = + F >>> 0 > (k = (F + k) | 0) >>> 0 ? (u + 1) | 0 : u), + (l = eg( + (B = + ((n[(A + 52) | 0] | + (n[(A + 53) | 0] << 8) | + (n[(A + 54) | 0] << 16) | + (n[(A + 55) | 0] << 24)) >>> + 4) & + 2097151), + 0, + 654183, + 0 + )), + (F = (p + u) | 0), + (F = + l >>> 0 > (k = (l + k) | 0) >>> 0 ? (F + 1) | 0 : F), + (u = k), + (l = HI((A + 55) | 0)), + (k = + (u + + (l = eg( + (Q = + 2097151 & (((1 & (k = p)) << 31) | (l >>> 1))), + 0, + 470296, + 0 + ))) | + 0), + (u = (p + F) | 0), + (u = l >>> 0 > k >>> 0 ? (u + 1) | 0 : u), + (F = eg( + (E = + ((n[(A + 57) | 0] | + (n[(A + 58) | 0] << 8) | + (n[(A + 59) | 0] << 16) | + (n[(A + 60) | 0] << 24)) >>> + 6) & + 2097151), + 0, + 666643, + 0 + )), + (l = (p + u) | 0), + (U = l = + F >>> 0 > (k = (F + k) | 0) >>> 0 ? (l + 1) | 0 : l), + (F = l), + (b = (G >>> 5) & 2097151), + (l = 2097151 & Y), + (G = + (eg( + (i = + ((n[(A + 60) | 0] | + (n[(A + 61) | 0] << 8) | + (n[(A + 62) | 0] << 16) | + (n[(A + 63) | 0] << 24)) >>> + 3) | + 0), + 0, + -683901, + -1 + ) + + l) | + 0), + (u = p), + (Y = G), + (S = u = l >>> 0 > G >>> 0 ? (u + 1) | 0 : u), + (N = ((u = G) - -1048576) | 0), + (L = G = (S - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), + (u = G >> 21), + (r = b = + ((G = ((2097151 & G) << 11) | (N >>> 21)) + b) | 0), + (V = l = G >>> 0 > b >>> 0 ? (u + 1) | 0 : u), + (u = eg(b, l, -683901, -1)), + (l = (p + F) | 0), + (j = H = (u + k) | 0), + (v = u >>> 0 > H >>> 0 ? (l + 1) | 0 : l), + (F = (_ >>> 5) & 2097151), + (H = (eg(I, 0, -997805, -1) + F) | 0), + (u = p), + (u = F >>> 0 > H >>> 0 ? (u + 1) | 0 : u), + (l = eg(g, 0, 654183, 0)), + (F = (p + u) | 0), + (F = + l >>> 0 > (H = (l + H) | 0) >>> 0 ? (F + 1) | 0 : F), + (u = eg(B, 0, 470296, 0)), + (l = (p + F) | 0), + (l = + u >>> 0 > (H = (u + H) | 0) >>> 0 ? (l + 1) | 0 : l), + (F = eg(Q, 0, 666643, 0)), + (u = (p + l) | 0), + (F = + F >>> 0 > (_ = H = (F + H) | 0) >>> 0 + ? (u + 1) | 0 + : u), + (u = 2097151 & m), + (H = (eg(I, 0, 654183, 0) + u) | 0), + (l = p), + (l = u >>> 0 > H >>> 0 ? (l + 1) | 0 : l), + (G = ((u = H) + (H = eg(g, 0, 470296, 0))) | 0), + (u = (p + l) | 0), + (u = G >>> 0 < H >>> 0 ? (u + 1) | 0 : u), + (H = eg(B, 0, 666643, 0)), + (l = (p + u) | 0), + (b = G = (H + G) | 0), + (G = l = G >>> 0 < H >>> 0 ? (l + 1) | 0 : l), + (z = ((u = b) - -1048576) | 0), + (R = H = (l - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), + (F = ((u = (H >>> 21) | 0) + F) | 0), + (m = F = + (l = ((2097151 & H) << 11) | (z >>> 21)) >>> 0 > + (_ = H = (l + _) | 0) >>> 0 + ? (F + 1) | 0 + : F), + (K = ((u = _) - -1048576) | 0), + (f = (k - -1048576) | 0), + (U = (U - (((k >>> 0 < 4293918720) - 1) | 0)) | 0), + (l = + ((u = + (F = x = + (F - (((u >>> 0 < 4293918720) - 1) | 0)) | 0) >> + 21) + + v) | + 0), + (U = + ((l = + (k = ((2097151 & F) << 11) | (K >>> 21)) >>> 0 > + (x = (k + j) | 0) >>> 0 + ? (l + 1) | 0 + : l) - + ((((u = -2097152 & f) >>> 0 > (k = x) >>> 0) + + (H = U)) | + 0)) | + 0), + (QA = + ((u = (k - u) | 0) - + (l = -2097152 & (c = (u - -1048576) | 0))) | + 0), + (CA = + (U - + (((u >>> 0 < l >>> 0) + + (k = + (U - (((u >>> 0 < 4293918720) - 1) | 0)) | 0)) | + 0)) | + 0), + (l = (eg(r, V, 136657, 0) + _) | 0), + (u = (m + p) | 0), + (u = l >>> 0 < _ >>> 0 ? (u + 1) | 0 : u), + ($ = ((_ = l) - (l = -2097152 & K)) | 0), + (j = (u - (((l >>> 0 > _ >>> 0) + F) | 0)) | 0), + (U = (Y - (u = -2097152 & N)) | 0), + (v = (S - (((u >>> 0 > Y >>> 0) + L) | 0)) | 0), + (u = 2097151 & (((7 & J) << 29) | (O >>> 3))), + (F = (eg(i, 0, 136657, 0) + u) | 0), + (l = p), + (l = u >>> 0 > F >>> 0 ? (l + 1) | 0 : l), + (_ = ((u = F) + (F = eg(E, 0, -683901, -1))) | 0), + (u = (p + l) | 0), + (Y = _), + (_ = F >>> 0 > _ >>> 0 ? (u + 1) | 0 : u), + (u = eg(Q, 0, -683901, -1)), + (l = p), + (F = u), + (l = + (u = (P >>> 6) & 2097151) >>> 0 > + (F = (F + u) | 0) >>> 0 + ? (l + 1) | 0 + : l), + (m = ((u = eg(i, 0, -997805, -1)) + F) | 0), + (F = (p + l) | 0), + (F = u >>> 0 > m >>> 0 ? (F + 1) | 0 : F), + (l = eg(E, 0, 136657, 0)), + (u = (p + F) | 0), + (K = l = + ((N = u = + l >>> 0 > (m = (l + m) | 0) >>> 0 + ? (u + 1) | 0 + : u) - + ((((u = m) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (u = + ((2097151 & l) << 11) | + ((O = (u - -1048576) | 0) >>> 21)), + (l = ((l >> 21) + _) | 0), + (S = l = + u >>> 0 > (Y = (u + Y) | 0) >>> 0 ? (l + 1) | 0 : l), + (x = ((u = Y) - -1048576) | 0), + (L = l = (l - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), + (u = ((F = l >> 21) + v) | 0), + (o = _ = + ((l = ((2097151 & l) << 11) | (x >>> 21)) + U) | 0), + (X = u = l >>> 0 > _ >>> 0 ? (u + 1) | 0 : u), + (l = eg(_, u, -683901, -1)), + (u = (p + j) | 0), + (EA = F = (l + $) | 0), + (P = l >>> 0 > F >>> 0 ? (u + 1) | 0 : u), + (v = b), + (u = 2097151 & (((7 & d) << 29) | (Z >>> 3))), + (F = (eg(I, 0, 470296, 0) + u) | 0), + (l = p), + (l = u >>> 0 > F >>> 0 ? (l + 1) | 0 : l), + (u = eg(g, 0, 666643, 0)), + (l = (p + l) | 0), + (U = F = (u + F) | 0), + (F = u >>> 0 > F >>> 0 ? (l + 1) | 0 : l), + (_ = (M >>> 6) & 2097151), + (b = (eg(I, 0, 666643, 0) + _) | 0), + (u = p), + (d = _ = + ((M = u = _ >>> 0 > b >>> 0 ? (u + 1) | 0 : u) - + ((((u = b) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (l = ((l = (_ >>> 21) | 0) + F) | 0), + (J = l = + (u = + ((2097151 & _) << 11) | + (($ = (u - -1048576) | 0) >>> 21)) >>> + 0 > + (_ = (u + U) | 0) >>> 0 + ? (l + 1) | 0 + : l), + (Z = + (l - ((((u = _) >>> 0 < 4293918720) - 1) | 0)) | 0), + (j = (u - -1048576) | 0), + (a = (Y - (u = -2097152 & x)) | 0), + (e = F = (S - (((u >>> 0 > Y >>> 0) + L) | 0)) | 0), + (u = ((((U = Z) >>> 21) | 0) + G) | 0), + (u = + (Y = ((2097151 & U) << 11) | (j >>> 21)) >>> 0 > + (v = (Y + v) | 0) >>> 0 + ? (u + 1) | 0 + : u), + (v = + ((G = eg(r, V, -997805, -1)) + + (((Y = v) - (l = -2097152 & z)) | 0)) | + 0), + (l = + (p + + ((u - (((8191 & R) + (l >>> 0 > Y >>> 0)) | 0)) | + 0)) | + 0), + (l = G >>> 0 > v >>> 0 ? (l + 1) | 0 : l), + (u = eg(o, X, 136657, 0)), + (l = (p + l) | 0), + (l = + u >>> 0 > (G = (u + v) | 0) >>> 0 ? (l + 1) | 0 : l), + (F = eg(a, F, -683901, -1)), + (u = (p + l) | 0), + (S = u = + F >>> 0 > (G = (F + G) | 0) >>> 0 ? (u + 1) | 0 : u), + (x = ((u = G) - -1048576) | 0), + (L = F = (S - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), + (l = ((u = F >> 21) + P) | 0), + (v = l = + (F = ((2097151 & F) << 11) | (x >>> 21)) >>> 0 > + (Y = (F + EA) | 0) >>> 0 + ? (l + 1) | 0 + : l), + (R = ((u = F = Y) - -1048576) | 0), + (u = + ((u = + (Y = P = + (l - (((u >>> 0 < 4293918720) - 1) | 0)) | 0) >> + 21) + + CA) | + 0), + (QA = P = + ((l = ((2097151 & Y) << 11) | (R >>> 21)) + QA) | 0), + (P = l >>> 0 > P >>> 0 ? (u + 1) | 0 : u), + (CA = (F - (u = -2097152 & R)) | 0), + (EA = (v - (((u >>> 0 > F >>> 0) + Y) | 0)) | 0), + (Z = (G - (u = -2097152 & x)) | 0), + (z = (S - (((u >>> 0 > G >>> 0) + L) | 0)) | 0), + (u = eg(r, V, 654183, 0)), + (F = + (p + + ((J - + (((8191 & U) + + ((l = -2097152 & j) >>> 0 > _ >>> 0)) | + 0)) | + 0)) | + 0), + (F = + u >>> 0 > (G = (u + ((_ - l) | 0)) | 0) >>> 0 + ? (F + 1) | 0 + : F), + (l = eg(o, X, -997805, -1)), + (u = (p + F) | 0), + (u = + l >>> 0 > (G = (l + G) | 0) >>> 0 ? (u + 1) | 0 : u), + (F = eg(a, e, 136657, 0)), + (l = (p + u) | 0), + (x = G = (F + G) | 0), + (Y = F >>> 0 > G >>> 0 ? (l + 1) | 0 : l), + (R = (m - (u = -2097152 & O)) | 0), + (J = (N - (((u >>> 0 > m >>> 0) + K) | 0)) | 0), + (l = 2097151 & (((1 & W) << 31) | (T >>> 1))), + (G = (eg(B, 0, -683901, -1) + l) | 0), + (u = p), + (u = l >>> 0 > G >>> 0 ? (u + 1) | 0 : u), + (l = eg(Q, 0, 136657, 0)), + (u = (p + u) | 0), + (u = + l >>> 0 > (F = (l + G) | 0) >>> 0 ? (u + 1) | 0 : u), + (G = ((l = F) + (F = eg(i, 0, 654183, 0))) | 0), + (l = (p + u) | 0), + (l = F >>> 0 > G >>> 0 ? (l + 1) | 0 : l), + (u = eg(E, 0, -997805, -1)), + (l = (p + l) | 0), + (m = F = (u + G) | 0), + (G = u >>> 0 > F >>> 0 ? (l + 1) | 0 : l), + (u = eg(g, 0, -683901, -1)), + (F = p), + (l = u), + (F = + (u = (q >>> 4) & 2097151) >>> 0 > + (l = (l + u) | 0) >>> 0 + ? (F + 1) | 0 + : F), + (_ = ((u = l) + (l = eg(B, 0, 136657, 0))) | 0), + (u = (p + F) | 0), + (u = l >>> 0 > _ >>> 0 ? (u + 1) | 0 : u), + (F = eg(Q, 0, -997805, -1)), + (l = (p + u) | 0), + (l = + F >>> 0 > (_ = (F + _) | 0) >>> 0 ? (l + 1) | 0 : l), + (F = eg(i, 0, 470296, 0)), + (u = (p + l) | 0), + (u = + F >>> 0 > (_ = (F + _) | 0) >>> 0 ? (u + 1) | 0 : u), + (F = eg(E, 0, 654183, 0)), + (l = (p + u) | 0), + (S = l = + F >>> 0 > (_ = (F + _) | 0) >>> 0 ? (l + 1) | 0 : l), + (K = ((u = _) - -1048576) | 0), + (L = F = (l - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), + (u = ((u = F >> 21) + G) | 0), + (G = F = + ((l = ((2097151 & F) << 11) | (K >>> 21)) + m) | 0), + (v = u = l >>> 0 > F >>> 0 ? (u + 1) | 0 : u), + (U = ((u = F) - -1048576) | 0), + (m = F = (v - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), + (l = ((u = F >> 21) + J) | 0), + (t = N = + ((F = ((2097151 & F) << 11) | (U >>> 21)) + R) | 0), + (q = l = F >>> 0 > N >>> 0 ? (l + 1) | 0 : l), + (u = eg(N, l, -683901, -1)), + (F = (p + Y) | 0), + (J = l = (u + x) | 0), + (Y = u >>> 0 > l >>> 0 ? (F + 1) | 0 : F), + (T = (G - (u = -2097152 & U)) | 0), + (W = m = (v - (((u >>> 0 > G >>> 0) + m) | 0)) | 0), + (F = + ((u = eg(r, V, 470296, 0)) + + ((b - (l = -2097152 & $)) | 0)) | + 0), + (l = + (p + + ((M - (((2047 & d) + (l >>> 0 > b >>> 0)) | 0)) | + 0)) | + 0), + (l = u >>> 0 > F >>> 0 ? (l + 1) | 0 : l), + (u = eg(o, X, 654183, 0)), + (l = (p + l) | 0), + (l = + u >>> 0 > (F = (u + F) | 0) >>> 0 ? (l + 1) | 0 : l), + (G = ((u = eg(a, e, -997805, -1)) + F) | 0), + (F = (p + l) | 0), + (F = u >>> 0 > G >>> 0 ? (F + 1) | 0 : F), + (l = eg(N, q, 136657, 0)), + (u = (p + F) | 0), + (u = + l >>> 0 > (G = (l + G) | 0) >>> 0 ? (u + 1) | 0 : u), + (F = eg(T, m, -683901, -1)), + (l = (p + u) | 0), + (v = l = + F >>> 0 > (G = (F + G) | 0) >>> 0 ? (l + 1) | 0 : l), + (d = ((u = G) - -1048576) | 0), + (m = F = (l - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), + (u = ((u = F >> 21) + Y) | 0), + (Y = u = + (l = ((2097151 & F) << 11) | (d >>> 21)) >>> 0 > + (F = (l + J) | 0) >>> 0 + ? (u + 1) | 0 + : u), + (U = ((u = F) - -1048576) | 0), + (l = + ((u = + (b = J = + (Y - (((u >>> 0 < 4293918720) - 1) | 0)) | 0) >> + 21) + + z) | + 0), + (Z = M = + ((J = ((2097151 & b) << 11) | (U >>> 21)) + Z) | 0), + (J = M >>> 0 < J >>> 0 ? (l + 1) | 0 : l), + (z = (F - (u = -2097152 & U)) | 0), + (O = (Y - (((u >>> 0 > F >>> 0) + b) | 0)) | 0), + (x = (G - (u = -2097152 & d)) | 0), + (N = (v - (((u >>> 0 > G >>> 0) + m) | 0)) | 0), + (l = 2097151 & (((1 & BA) << 31) | (D >>> 1))), + (G = (eg(r, V, 666643, 0) + l) | 0), + (u = p), + (u = l >>> 0 > G >>> 0 ? (u + 1) | 0 : u), + (F = eg(o, X, 470296, 0)), + (l = (p + u) | 0), + (l = + F >>> 0 > (G = (F + G) | 0) >>> 0 ? (l + 1) | 0 : l), + (F = eg(a, e, 654183, 0)), + (u = (p + l) | 0), + (u = + F >>> 0 > (G = (F + G) | 0) >>> 0 ? (u + 1) | 0 : u), + (l = eg(t, q, -997805, -1)), + (F = (p + u) | 0), + (F = + l >>> 0 > (G = (l + G) | 0) >>> 0 ? (F + 1) | 0 : F), + (u = eg(T, W, 136657, 0)), + (l = (p + F) | 0), + (m = G = (u + G) | 0), + (b = u >>> 0 > G >>> 0 ? (l + 1) | 0 : l), + (Y = (_ - (u = -2097152 & K)) | 0), + (_ = (S - (((u >>> 0 > _ >>> 0) + L) | 0)) | 0), + (u = eg(I, 0, -683901, -1)), + (l = p), + (F = u), + (l = + (u = (AA >>> 7) & 2097151) >>> 0 > + (F = (F + u) | 0) >>> 0 + ? (l + 1) | 0 + : l), + (G = ((u = eg(g, 0, 136657, 0)) + F) | 0), + (F = (p + l) | 0), + (F = u >>> 0 > G >>> 0 ? (F + 1) | 0 : F), + (l = eg(B, 0, -997805, -1)), + (u = (p + F) | 0), + (u = + l >>> 0 > (G = (l + G) | 0) >>> 0 ? (u + 1) | 0 : u), + (F = eg(Q, 0, 654183, 0)), + (l = (p + u) | 0), + (l = + F >>> 0 > (G = (F + G) | 0) >>> 0 ? (l + 1) | 0 : l), + (F = eg(i, 0, 666643, 0)), + (u = (p + l) | 0), + (u = + F >>> 0 > (G = (F + G) | 0) >>> 0 ? (u + 1) | 0 : u), + (F = eg(E, 0, 470296, 0)), + (l = (p + u) | 0), + (u = l = + F >>> 0 > (G = (F + G) | 0) >>> 0 ? (l + 1) | 0 : l), + (l = H >> 21), + (G = + ((H = ((2097151 & H) << 11) | (f >>> 21)) + (F = G)) | + 0), + (F = (u + l) | 0), + (L = F = G >>> 0 < H >>> 0 ? (F + 1) | 0 : F), + (S = ((u = G) - -1048576) | 0), + (v = F = (F - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), + (u = ((l = F >> 21) + _) | 0), + (V = H = + ((F = ((2097151 & F) << 11) | (S >>> 21)) + Y) | 0), + (R = u = F >>> 0 > H >>> 0 ? (u + 1) | 0 : u), + (u = eg(H, u, -683901, -1)), + (l = (p + b) | 0), + (b = F = (u + m) | 0), + (H = u >>> 0 > F >>> 0 ? (l + 1) | 0 : l), + (u = eg(o, X, 666643, 0)), + (F = p), + (l = u), + (F = + (u = (gA >>> 4) & 2097151) >>> 0 > + (l = (l + u) | 0) >>> 0 + ? (F + 1) | 0 + : F), + (_ = ((u = l) + (l = eg(a, e, 470296, 0))) | 0), + (u = (p + F) | 0), + (u = l >>> 0 > _ >>> 0 ? (u + 1) | 0 : u), + (F = eg(t, q, 654183, 0)), + (l = (p + u) | 0), + (l = + F >>> 0 > (_ = (F + _) | 0) >>> 0 ? (l + 1) | 0 : l), + (u = eg(T, W, -997805, -1)), + (l = (p + l) | 0), + (l = + u >>> 0 > (F = (u + _) | 0) >>> 0 ? (l + 1) | 0 : l), + (_ = ((u = F) + (F = eg(V, R, 136657, 0))) | 0), + (u = (p + l) | 0), + (m = u = F >>> 0 > _ >>> 0 ? (u + 1) | 0 : u), + (M = ((u = _) - -1048576) | 0), + (Y = F = (m - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), + (u = ((l = F >> 21) + H) | 0), + (F = u = + (F = ((2097151 & F) << 11) | (M >>> 21)) >>> 0 > + (H = b = (F + b) | 0) >>> 0 + ? (u + 1) | 0 + : u), + (d = ((u = H) - -1048576) | 0), + (u = + ((l = + (b = U = + (F - (((u >>> 0 < 4293918720) - 1) | 0)) | 0) >> + 21) + + N) | + 0), + ($ = K = + ((U = ((2097151 & b) << 11) | (d >>> 21)) + x) | 0), + (U = U >>> 0 > K >>> 0 ? (u + 1) | 0 : u), + (u = (G - (l = -2097152 & S)) | 0), + (G = (L - (((l >>> 0 > G >>> 0) + v) | 0)) | 0), + (v = u), + (u = ((u = k >> 21) + G) | 0), + (S = u = + (l = ((2097151 & k) << 11) | (c >>> 21)) >>> 0 > + (G = k = (v + l) | 0) >>> 0 + ? (u + 1) | 0 + : u), + (K = ((u = G) - -1048576) | 0), + (L = k = (S - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), + (N = u = k >> 21), + (u = eg( + (X = ((2097151 & k) << 11) | (K >>> 21)), + u, + -683901, + -1 + )), + (l = (p + F) | 0), + (l = + u >>> 0 > (k = (u + H) | 0) >>> 0 ? (l + 1) | 0 : l), + (j = ((F = k) - (u = -2097152 & d)) | 0), + (x = (l - (((u >>> 0 > F >>> 0) + b) | 0)) | 0), + (l = (eg(X, N, 136657, 0) + _) | 0), + (u = (m + p) | 0), + (u = l >>> 0 < _ >>> 0 ? (u + 1) | 0 : u), + (AA = ((F = l) - (l = -2097152 & M)) | 0), + (M = (u - (((l >>> 0 > F >>> 0) + Y) | 0)) | 0), + (u = eg(a, e, 666643, 0)), + (l = p), + (F = u), + (l = + (u = (IA >>> 7) & 2097151) >>> 0 > + (F = (F + u) | 0) >>> 0 + ? (l + 1) | 0 + : l), + (k = ((u = eg(t, q, 470296, 0)) + F) | 0), + (F = (p + l) | 0), + (F = u >>> 0 > k >>> 0 ? (F + 1) | 0 : F), + (l = eg(T, W, 654183, 0)), + (u = (p + F) | 0), + (u = + l >>> 0 > (k = (l + k) | 0) >>> 0 ? (u + 1) | 0 : u), + (l = eg(V, R, -997805, -1)), + (u = (p + u) | 0), + (Y = F = (l + k) | 0), + (F = l >>> 0 > F >>> 0 ? (u + 1) | 0 : u), + (u = 2097151 & (((3 & h) << 30) | (w >>> 2))), + (k = (eg(t, q, 666643, 0) + u) | 0), + (l = p), + (l = u >>> 0 > k >>> 0 ? (l + 1) | 0 : l), + (u = eg(T, W, 470296, 0)), + (l = (p + l) | 0), + (l = + u >>> 0 > (k = (u + k) | 0) >>> 0 ? (l + 1) | 0 : l), + (H = ((u = k) + (k = eg(V, R, 654183, 0))) | 0), + (u = (p + l) | 0), + (b = u = k >>> 0 > H >>> 0 ? (u + 1) | 0 : u), + (d = ((u = k = H) - -1048576) | 0), + (u = + ((l = + (_ = H = + (b - (((u >>> 0 < 4293918720) - 1) | 0)) | 0) >> + 21) + + F) | + 0), + (m = Y = + ((H = ((2097151 & _) << 11) | (d >>> 21)) + Y) | 0), + (F = u = H >>> 0 > Y >>> 0 ? (u + 1) | 0 : u), + (Y = ((u = Y) - -1048576) | 0), + (u = + ((l = + (H = v = + (F - (((u >>> 0 < 4293918720) - 1) | 0)) | 0) >> + 21) + + M) | + 0), + (IA = q = + ((v = ((2097151 & H) << 11) | (Y >>> 21)) + AA) | 0), + (v = v >>> 0 > q >>> 0 ? (u + 1) | 0 : u), + (u = eg(X, N, -997805, -1)), + (F = (p + F) | 0), + (F = + u >>> 0 > (l = (u + m) | 0) >>> 0 ? (F + 1) | 0 : F), + (gA = (l - (u = -2097152 & Y)) | 0), + (BA = (F - (((u >>> 0 > l >>> 0) + H) | 0)) | 0), + (u = (eg(X, N, 654183, 0) + k) | 0), + (l = (b + p) | 0), + (l = u >>> 0 < k >>> 0 ? (l + 1) | 0 : l), + (AA = ((F = u) - (u = -2097152 & d)) | 0), + (q = (l - (((u >>> 0 > F >>> 0) + _) | 0)) | 0), + (u = eg(T, W, 666643, 0)), + (F = p), + (l = u), + (F = + (u = (s >>> 5) & 2097151) >>> 0 > + (l = (l + u) | 0) >>> 0 + ? (F + 1) | 0 + : F), + (k = ((u = l) + (l = eg(V, R, 470296, 0))) | 0), + (u = (p + F) | 0), + (_ = k), + (F = l >>> 0 > k >>> 0 ? (u + 1) | 0 : u), + (l = 2097151 & y), + (k = (eg(V, R, 666643, 0) + l) | 0), + (u = p), + (H = k), + (Y = k = + ((m = u = l >>> 0 > k >>> 0 ? (u + 1) | 0 : u) - + ((((u = k) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (F = ((l = k >> 21) + F) | 0), + (b = F = + (u = + ((2097151 & k) << 11) | + ((M = (u - -1048576) | 0) >>> 21)) >>> + 0 > + (k = (u + _) | 0) >>> 0 + ? (F + 1) | 0 + : F), + (d = ((u = k) - -1048576) | 0), + (_ = F = (F - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), + (u = ((l = F >> 21) + q) | 0), + (F = u = + (F = ((2097151 & F) << 11) | (d >>> 21)) >>> 0 > + (R = (F + AA) | 0) >>> 0 + ? (u + 1) | 0 + : u), + (u = (eg(X, N, 470296, 0) + k) | 0), + (l = (b + p) | 0), + (_ = + ((l = u >>> 0 < k >>> 0 ? (l + 1) | 0 : l) - + ((((k = -2097152 & d) >>> 0 > (b = u) >>> 0) + _) | + 0)) | + 0), + (b = u = (u - k) | 0), + (k = + ((l = eg(X, N, 666643, 0)) + + ((H - (u = -2097152 & M)) | 0)) | + 0), + (u = + (p + ((m - (((u >>> 0 > H >>> 0) + Y) | 0)) | 0)) | + 0), + (H = k), + (l = + ((l = + (u = l >>> 0 > k >>> 0 ? (u + 1) | 0 : u) >> 21) + + _) | + 0), + (W = k = + (b + (u = ((2097151 & u) << 11) | (k >>> 21))) | 0), + (F = + ((u = + (l = u >>> 0 > k >>> 0 ? (l + 1) | 0 : l) >> 21) + + F) | + 0), + (_ = k = + ((l = ((2097151 & l) << 11) | (k >>> 21)) + R) | 0), + (l = + (F = l >>> 0 > (u = k) >>> 0 ? (F + 1) | 0 : F) >> + 21), + (F = ((2097151 & F) << 11) | (u >>> 21)), + (u = (l + BA) | 0), + (Y = k = (F + gA) | 0), + (F = + (u = F >>> 0 > (l = k) >>> 0 ? (u + 1) | 0 : u) >> + 21), + (u = ((2097151 & u) << 11) | (l >>> 21)), + (l = (F + v) | 0), + (v = k = (u + IA) | 0), + (u = + ((u = + (l = u >>> 0 > (F = k) >>> 0 ? (l + 1) | 0 : l) >> + 21) + + x) | + 0), + (R = F = + ((l = ((2097151 & l) << 11) | (F >>> 21)) + j) | 0), + (l = + ((l = + (u = l >>> 0 > F >>> 0 ? (u + 1) | 0 : u) >> 21) + + U) | + 0), + (N = F = + ((u = ((2097151 & u) << 11) | (F >>> 21)) + $) | 0), + (u = (l = u >>> 0 > F >>> 0 ? (l + 1) | 0 : l) >> 21), + (l = ((2097151 & l) << 11) | (F >>> 21)), + (F = (u + O) | 0), + (M = k = (l + z) | 0), + (l = + (F = l >>> 0 > (u = k) >>> 0 ? (F + 1) | 0 : F) >> + 21), + (F = ((2097151 & F) << 11) | (u >>> 21)), + (u = (l + J) | 0), + (d = k = (F + Z) | 0), + (F = + (u = F >>> 0 > (l = k) >>> 0 ? (u + 1) | 0 : u) >> + 21), + (u = ((2097151 & u) << 11) | (l >>> 21)), + (l = (F + EA) | 0), + (J = k = (u + CA) | 0), + (u = + ((u = + (l = u >>> 0 > (F = k) >>> 0 ? (l + 1) | 0 : l) >> + 21) + + P) | + 0), + (U = F = + ((l = ((2097151 & l) << 11) | (F >>> 21)) + QA) | 0), + (l = (u = l >>> 0 > F >>> 0 ? (u + 1) | 0 : u) >> 21), + (k = ((2097151 & u) << 11) | (F >>> 21)), + (u = (G - (F = -2097152 & K)) | 0), + (F = + (((S - (((F >>> 0 > G >>> 0) + L) | 0)) | 0) + l) | + 0), + (L = k = (k + u) | 0), + (P = + ((2097151 & + (F = u >>> 0 > (l = k) >>> 0 ? (F + 1) | 0 : F)) << + 11) | + (l >>> 21)), + (m = u = F >> 21), + (l = 2097151 & H), + (F = (eg(P, u, 666643, 0) + l) | 0), + (u = p), + (b = F), + (k = u = l >>> 0 > F >>> 0 ? (u + 1) | 0 : u), + (C[0 | A] = F), + (C[(A + 1) | 0] = ((255 & u) << 24) | (F >>> 8)), + (u = 2097151 & W), + (F = (eg(P, m, 470296, 0) + u) | 0), + (l = p), + (l = u >>> 0 > F >>> 0 ? (l + 1) | 0 : l), + (H = F), + (G = ((2097151 & (F = k)) << 11) | (b >>> 21)), + (F = ((u = F >> 21) + l) | 0), + (F = + G >>> 0 > (S = (H + G) | 0) >>> 0 ? (F + 1) | 0 : F), + (G = S), + (C[(A + 4) | 0] = ((2047 & F) << 21) | (G >>> 11)), + (u = l = F), + (F = G), + (C[(A + 3) | 0] = ((7 & u) << 29) | (F >>> 3)), + (F = 2097151 & _), + (_ = (eg(P, m, 654183, 0) + F) | 0), + (u = p), + (u = F >>> 0 > _ >>> 0 ? (u + 1) | 0 : u), + (F = _), + (_ = ((2097151 & l) << 11) | (G >>> 21)), + (l = ((l >> 21) + u) | 0), + (l = + _ >>> 0 > (S = (F + _) | 0) >>> 0 ? (l + 1) | 0 : l), + (_ = S), + (u = l), + (C[(A + 6) | 0] = ((63 & u) << 26) | (_ >>> 6)), + (H = 0), + (F = 31 & (((65535 & k) << 16) | (b >>> 16))), + (l = b = 2097151 & G), + (C[(A + 2) | 0] = F | (l << 5)), + (F = 2097151 & Y), + (G = (eg(P, m, -997805, -1) + F) | 0), + (l = p), + (F = l = F >>> 0 > G >>> 0 ? (l + 1) | 0 : l), + (F = ((l = u >> 21) + F) | 0), + (Y = G = + ((u = ((2097151 & u) << 11) | (_ >>> 21)) + G) | 0), + (F = u >>> 0 > G >>> 0 ? (F + 1) | 0 : F), + (C[(A + 9) | 0] = ((511 & F) << 23) | (G >>> 9)), + (u = l = F), + (F = G), + (C[(A + 8) | 0] = ((1 & u) << 31) | (F >>> 1)), + (G = 0), + (F = _ &= 2097151), + (C[(A + 5) | 0] = + ((524287 & H) << 13) | (b >>> 19) | (F << 2)), + (F = 2097151 & v), + (H = (eg(P, m, 136657, 0) + F) | 0), + (u = p), + (u = + ((u = F >>> 0 > H >>> 0 ? (u + 1) | 0 : u) + + (F = l >> 21)) | + 0), + (b = H = + ((l = ((2097151 & l) << 11) | (Y >>> 21)) + H) | 0), + (u = l >>> 0 > H >>> 0 ? (u + 1) | 0 : u), + (l = H), + (C[(A + 12) | 0] = ((4095 & u) << 20) | (l >>> 12)), + (F = u), + (C[(A + 11) | 0] = ((15 & u) << 28) | (l >>> 4)), + (H = 0), + (l = v = 2097151 & Y), + (C[(A + 7) | 0] = + ((16383 & G) << 18) | (_ >>> 14) | (l << 7)), + (u = 2097151 & R), + (G = (eg(P, m, -683901, -1) + u) | 0), + (l = p), + (l = u >>> 0 > G >>> 0 ? (l + 1) | 0 : l), + (l = ((u = F >> 21) + l) | 0), + (_ = G = + ((F = ((2097151 & F) << 11) | (b >>> 21)) + G) | 0), + (u = l = F >>> 0 > G >>> 0 ? (l + 1) | 0 : l), + (C[(A + 14) | 0] = ((127 & u) << 25) | (G >>> 7)), + (G = 0), + (F = Y = 2097151 & b), + (C[(A + 10) | 0] = + ((131071 & H) << 15) | (v >>> 17) | (F << 4)), + (l = u >> 21), + (F = + (u = ((2097151 & u) << 11) | (_ >>> 21)) >>> 0 > + (b = (u + (2097151 & N)) | 0) >>> 0 + ? (l + 1) | 0 + : l), + (C[(A + 17) | 0] = ((1023 & F) << 22) | (b >>> 10)), + (u = F), + (F = b), + (C[(A + 16) | 0] = ((3 & u) << 30) | (F >>> 2)), + (F = m = 2097151 & _), + (C[(A + 13) | 0] = + ((1048575 & G) << 12) | (Y >>> 20) | (F << 1)), + (F = ((2097151 & u) << 11) | (b >>> 21)), + (u >>= 21), + (u = + F >>> 0 > (_ = (F + (2097151 & M)) | 0) >>> 0 + ? (u + 1) | 0 + : u), + (l = _), + (C[(A + 20) | 0] = ((8191 & u) << 19) | (l >>> 13)), + (C[(A + 19) | 0] = ((31 & u) << 27) | (l >>> 5)), + (l = Y = 2097151 & b), + (C[(A + 15) | 0] = + ((32767 & H) << 17) | (m >>> 15) | (l << 6)), + (k = ((2097151 & u) << 11) | (_ >>> 21)), + (u = l = u >> 21), + (k = u = + k >>> 0 > (m = (k + (2097151 & d)) | 0) >>> 0 + ? (u + 1) | 0 + : u), + (C[(A + 21) | 0] = m), + (u = _), + (C[(A + 18) | 0] = + ((262143 & G) << 14) | (Y >>> 18) | (u << 3)), + (u = k), + (C[(A + 22) | 0] = ((255 & u) << 24) | (m >>> 8)), + (F = u), + (u >>= 21), + (F = + (_ = + ((H = ((2097151 & F) << 11) | (m >>> 21)) + + (2097151 & J)) | + 0) >>> + 0 < + H >>> 0 + ? (u + 1) | 0 + : u), + (C[((l = A) + 25) | 0] = + ((2047 & F) << 21) | (_ >>> 11)), + (u = F), + (F = _), + (C[(l + 24) | 0] = ((7 & u) << 29) | (F >>> 3)), + (F = l), + (H = ((2097151 & u) << 11) | (_ >>> 21)), + (u >>= 21), + (l = u = + H >>> 0 > (G = b = (H + (2097151 & U)) | 0) >>> 0 + ? (u + 1) | 0 + : u), + (C[(F + 27) | 0] = ((63 & u) << 26) | (G >>> 6)), + (H = 0), + (u = b = 2097151 & _), + (C[(F + 23) | 0] = + (31 & (((65535 & k) << 16) | (m >>> 16))) | (u << 5)), + (l = (u = l) >> 21), + (l = + (u = ((2097151 & u) << 11) | (G >>> 21)) >>> 0 > + (k = (u + (2097151 & L)) | 0) >>> 0 + ? (l + 1) | 0 + : l), + (F = k), + (C[(A + 31) | 0] = ((131071 & l) << 15) | (F >>> 17)), + (u = l), + (C[(A + 30) | 0] = ((511 & u) << 23) | (F >>> 9)), + (C[(A + 29) | 0] = ((1 & u) << 31) | (F >>> 1)), + (l = 0), + (G &= 2097151), + (C[(A + 26) | 0] = + ((524287 & H) << 13) | (b >>> 19) | (G << 2)), + (C[(A + 28) | 0] = + ((16383 & l) << 18) | (G >>> 14) | (F << 7)) + } + function k(A) { + var I, + g = 0, + B = 0, + Q = 0, + C = 0, + E = 0, + r = 0, + o = 0, + t = 0, + f = 0, + c = 0, + y = 0, + s = 0, + w = 0 + h = I = (h - 16) | 0 + A: { + I: { + g: { + B: { + Q: { + C: { + E: { + i: { + n: { + a: { + r: { + o: { + if ((A |= 0) >>> 0 <= 244) { + if ( + 3 & + (g = + ((E = i[8961]) >>> + (B = + ((t = + A >>> 0 < 11 + ? 16 + : (A + 11) & -8) >>> + 3) | + 0)) | + 0) + ) { + ;(A = + ((C = + i[ + (35892 + + (g = + (Q = + (B + + (1 & + (-1 ^ g))) | + 0) << 3)) >> + 2 + ]) + + 8) | + 0), + (0 | + (B = i[(C + 8) >> 2])) != + (0 | (g = (g + 35884) | 0)) + ? ((i[(B + 12) >> 2] = g), + (i[(g + 8) >> 2] = B)) + : ((s = 35844), + (w = vI(-2, Q) & E), + (i[s >> 2] = w)), + (g = Q << 3), + (i[(C + 4) >> 2] = 3 | g), + (i[ + (4 + (g = (g + C) | 0)) >> + 2 + ] = 1 | i[(g + 4) >> 2]) + break A + } + if ( + (c = i[8963]) >>> 0 >= + t >>> 0 + ) + break o + if (g) { + ;(B = A = + ((g = + (((0 - + (A = + ((0 - (A = 2 << B)) | + A) & + (g << B))) & + A) - + 1) | + 0) >>> + 12) & + 16), + (B |= A = + ((g = (g >>> A) | 0) >>> + 5) & + 8), + (B |= A = + ((g = (g >>> A) | 0) >>> + 2) & + 4), + (r = + i[ + (35892 + + (A = + (B = + (((B |= A = + ((g = + (g >>> A) | + 0) >>> + 1) & + 2) | + (A = + ((g = + (g >>> A) | + 0) >>> + 1) & + 1)) + + ((g >>> A) | + 0)) | + 0) << 3)) >> + 2 + ]), + (0 | + (g = i[(r + 8) >> 2])) != + (0 | (A = (A + 35884) | 0)) + ? ((i[(g + 12) >> 2] = A), + (i[(A + 8) >> 2] = g)) + : ((E = vI(-2, B) & E), + (i[8961] = E)), + (A = (r + 8) | 0), + (i[(r + 4) >> 2] = 3 | t), + (C = + ((g = B << 3) - t) | 0), + (i[ + (4 + (Q = (r + t) | 0)) >> + 2 + ] = 1 | C), + (i[(g + r) >> 2] = C), + c && + ((B = + (35884 + + ((g = + (c >>> 3) | 0) << + 3)) | + 0), + (r = i[8966]), + (g = 1 << g) & E + ? (g = i[(B + 8) >> 2]) + : ((i[8961] = g | E), + (g = B)), + (i[(B + 8) >> 2] = r), + (i[(g + 12) >> 2] = r), + (i[(r + 12) >> 2] = B), + (i[(r + 8) >> 2] = g)), + (i[8966] = Q), + (i[8963] = C) + break A + } + if (!(o = i[8962])) break o + for ( + B = A = + ((g = + ((o & (0 - o)) - 1) | + 0) >>> + 12) & + 16, + B |= A = + ((g = (g >>> A) | 0) >>> + 5) & + 8, + B |= A = + ((g = (g >>> A) | 0) >>> + 2) & + 4, + g = + i[ + (36148 + + ((((B |= A = + ((g = + (g >>> A) | 0) >>> + 1) & + 2) | + (A = + ((g = + (g >>> A) | + 0) >>> + 1) & + 1)) + + ((g >>> A) | 0)) << + 2)) >> + 2 + ], + C = + ((-8 & i[(g + 4) >> 2]) - + t) | + 0, + B = g; + (A = i[(B + 16) >> 2]) || + (A = i[(B + 20) >> 2]); + + ) + (C = (Q = + (B = + ((-8 & i[(A + 4) >> 2]) - + t) | + 0) >>> + 0 < + C >>> 0) + ? B + : C), + (g = Q ? A : g), + (B = A) + if ( + (f = (g + t) | 0) >>> 0 <= + g >>> 0 + ) + break r + if ( + ((y = i[(g + 24) >> 2]), + (0 | + (Q = i[(g + 12) >> 2])) != + (0 | g)) + ) { + ;(A = i[(g + 8) >> 2]), + (i[(A + 12) >> 2] = Q), + (i[(Q + 8) >> 2] = A) + break I + } + if ( + !(A = + i[(B = (g + 20) | 0) >> 2]) + ) { + if (!(A = i[(g + 16) >> 2])) + break a + B = (g + 16) | 0 + } + for ( + ; + (r = B), + (Q = A), + (A = + i[ + (B = (A + 20) | 0) >> 2 + ]) || + ((B = (Q + 16) | 0), + (A = i[(Q + 16) >> 2])); + + ); + i[r >> 2] = 0 + break I + } + if ( + ((t = -1), + !(A >>> 0 > 4294967231) && + ((t = + -8 & (A = (A + 11) | 0)), + (f = i[8962]))) + ) { + ;(E = 31), + (C = (0 - t) | 0), + t >>> 0 <= 16777215 && + ((A = (A >>> 8) | 0), + (A <<= r = + ((A + 1048320) >>> 16) & + 8), + (E = + (28 + + (((A = + (((((A <<= B = + ((A + 520192) >>> + 16) & + 4) << + (g = + ((A + 245760) >>> + 16) & + 2)) >>> + 15) | + 0) - + (g | B | r)) | + 0) << + 1) | + ((t >>> (A + 21)) & + 1))) | + 0)) + e: { + t: { + if ( + (B = + i[ + (36148 + (E << 2)) >> + 2 + ]) + ) + for ( + A = 0, + g = + t << + (31 == (0 | E) + ? 0 + : (25 - + ((E >>> 1) | + 0)) | + 0); + ; + + ) { + if ( + !( + (r = + ((-8 & + i[ + (B + 4) >> 2 + ]) - + t) | + 0) >>> + 0 >= + C >>> 0 || + ((Q = B), (C = r)) + ) + ) { + ;(C = 0), (A = B) + break t + } + if ( + ((r = + i[(B + 20) >> 2]), + (B = + i[ + (16 + + ((((g >>> 29) & + 4) + + B) | + 0)) >> + 2 + ]), + (A = r + ? (0 | r) == (0 | B) + ? A + : r + : A), + (g <<= 1), + !B) + ) + break + } + else A = 0 + if (!(A | Q)) { + if ( + !(A = + ((0 - (A = 2 << E)) | + A) & + f) + ) + break o + ;(B = A = + ((g = + ((A & (0 - A)) - 1) | + 0) >>> + 12) & + 16), + (B |= A = + ((g = + (g >>> A) | 0) >>> + 5) & + 8), + (B |= A = + ((g = + (g >>> A) | 0) >>> + 2) & + 4), + (A = + i[ + (36148 + + ((((B |= A = + ((g = + (g >>> A) | + 0) >>> + 1) & + 2) | + (A = + ((g = + (g >>> A) | + 0) >>> + 1) & + 1)) + + ((g >>> A) | + 0)) << + 2)) >> + 2 + ]) + } + if (!A) break e + } + for ( + ; + (C = (B = + (g = + ((-8 & + i[(A + 4) >> 2]) - + t) | + 0) >>> + 0 < + C >>> 0) + ? g + : C), + (Q = B ? A : Q), + (A = + (g = + i[(A + 16) >> 2]) || + i[(A + 20) >> 2]); + + ); + } + if ( + !( + !Q | + ((i[8963] - t) >>> 0 <= + C >>> 0) + ) + ) { + if ( + (o = (Q + t) | 0) >>> 0 <= + Q >>> 0 + ) + break r + if ( + ((E = i[(Q + 24) >> 2]), + (0 | Q) != + (0 | + (g = i[(Q + 12) >> 2]))) + ) { + ;(A = i[(Q + 8) >> 2]), + (i[(A + 12) >> 2] = g), + (i[(g + 8) >> 2] = A) + break g + } + if ( + !(A = + i[ + (B = (Q + 20) | 0) >> 2 + ]) + ) { + if (!(A = i[(Q + 16) >> 2])) + break n + B = (Q + 16) | 0 + } + for ( + ; + (r = B), + (g = A), + (A = + i[ + (B = (A + 20) | 0) >> + 2 + ]) || + ((B = (g + 16) | 0), + (A = i[(g + 16) >> 2])); + + ); + i[r >> 2] = 0 + break g + } + } + } + if ( + (B = i[8963]) >>> 0 >= + t >>> 0 + ) { + ;(Q = i[8966]), + (g = (B - t) | 0) >>> 0 >= 16 + ? ((i[8963] = g), + (A = (Q + t) | 0), + (i[8966] = A), + (i[(A + 4) >> 2] = 1 | g), + (i[(B + Q) >> 2] = g), + (i[(Q + 4) >> 2] = 3 | t)) + : ((i[8966] = 0), + (i[8963] = 0), + (i[(Q + 4) >> 2] = 3 | B), + (i[ + (4 + (A = (B + Q) | 0)) >> + 2 + ] = 1 | i[(A + 4) >> 2])), + (A = (Q + 8) | 0) + break A + } + if ((o = i[8964]) >>> 0 > t >>> 0) { + ;(g = (o - t) | 0), + (i[8964] = g), + (A = ((B = i[8967]) + t) | 0), + (i[8967] = A), + (i[(A + 4) >> 2] = 1 | g), + (i[(B + 4) >> 2] = 3 | t), + (A = (B + 8) | 0) + break A + } + if ( + ((A = 0), + (g = f = (t + 47) | 0), + i[9079] + ? (B = i[9081]) + : ((i[9082] = -1), + (i[9083] = -1), + (i[9080] = 4096), + (i[9081] = 4096), + (i[9079] = + ((I + 12) & -16) ^ + 1431655768), + (i[9084] = 0), + (i[9072] = 0), + (B = 4096)), + (B = + (r = (g + B) | 0) & + (C = (0 - B) | 0)) >>> + 0 <= + t >>> 0) + ) + break A + if ( + (Q = i[9071]) && + (Q >>> 0 < + (E = + ((g = i[9069]) + B) | 0) >>> + 0) | + (g >>> 0 >= E >>> 0) + ) + break A + if (4 & n[36288]) break C + o: { + e: { + if ((Q = i[8967])) + for (A = 36292; ; ) { + if ( + Q >>> 0 < + ((g = i[A >> 2]) + + i[(A + 4) >> 2]) >>> + 0 && + g >>> 0 <= Q >>> 0 + ) + break e + if (!(A = i[(A + 8) >> 2])) + break + } + if (-1 == (0 | (g = II(0)))) + break E + if ( + ((E = B), + (A = + ((Q = i[9080]) - 1) | 0) & + g && + (E = + (((B - g) | 0) + + ((A + g) & (0 - Q))) | + 0), + (E >>> 0 <= t >>> 0) | + (E >>> 0 > 2147483646)) + ) + break E + if ( + (Q = i[9071]) && + (Q >>> 0 < + (C = + ((A = i[9069]) + E) | + 0) >>> + 0) | + (A >>> 0 >= C >>> 0) + ) + break E + if ( + (0 | g) != + (0 | (A = II(E))) + ) + break o + break Q + } + if ( + (E = C & (r - o)) >>> 0 > + 2147483646 + ) + break E + if ( + (0 | (g = II(E))) == + ((i[A >> 2] + i[(A + 4) >> 2]) | + 0) + ) + break i + A = g + } + if ( + !( + (-1 == (0 | A)) | + ((t + 48) >>> 0 <= E >>> 0) + ) + ) { + if ( + (g = + ((g = i[9081]) + + ((f - E) | 0)) & + (0 - g)) >>> + 0 > + 2147483646 + ) { + g = A + break Q + } + if (-1 != (0 | II(g))) { + ;(E = (g + E) | 0), (g = A) + break Q + } + II((0 - E) | 0) + break E + } + if (((g = A), -1 != (0 | A))) + break Q + break E + } + e() + } + Q = 0 + break I + } + g = 0 + break g + } + if (-1 != (0 | g)) break Q + } + i[9072] = 4 | i[9072] + } + if (B >>> 0 > 2147483646) break B + if ( + ((g = II(B)) >>> 0 >= (A = II(0)) >>> 0) | + (-1 == (0 | g)) | + (-1 == (0 | A)) + ) + break B + if ((E = (A - g) | 0) >>> 0 <= (t + 40) >>> 0) + break B + } + ;(A = (i[9069] + E) | 0), + (i[9069] = A), + A >>> 0 > a[9070] && (i[9070] = A) + Q: { + C: { + E: { + if ((r = i[8967])) { + for (A = 36292; ; ) { + if ( + (((Q = i[A >> 2]) + + (B = i[(A + 4) >> 2])) | + 0) == + (0 | g) + ) + break E + if (!(A = i[(A + 8) >> 2])) break + } + break C + } + for ( + ((A = i[8965]) >>> 0 <= g >>> 0 && A) || + (i[8965] = g), + A = 0, + i[9074] = E, + i[9073] = g, + i[8969] = -1, + i[8970] = i[9079], + i[9076] = 0; + (B = (35884 + (Q = A << 3)) | 0), + (i[(Q + 35892) >> 2] = B), + (i[(Q + 35896) >> 2] = B), + 32 != (0 | (A = (A + 1) | 0)); + + ); + ;(B = + ((Q = (E - 40) | 0) - + (A = (g + 8) & 7 ? (-8 - g) & 7 : 0)) | + 0), + (i[8964] = B), + (A = (A + g) | 0), + (i[8967] = A), + (i[(A + 4) >> 2] = 1 | B), + (i[(4 + ((g + Q) | 0)) >> 2] = 40), + (i[8968] = i[9083]) + break Q + } + if ( + !( + (8 & n[(A + 12) | 0]) | + (g >>> 0 <= r >>> 0) | + (Q >>> 0 > r >>> 0) + ) + ) { + ;(i[(A + 4) >> 2] = B + E), + (B = + ((A = (r + 8) & 7 ? (-8 - r) & 7 : 0) + + r) | + 0), + (i[8967] = B), + (A = ((g = (i[8964] + E) | 0) - A) | 0), + (i[8964] = A), + (i[(B + 4) >> 2] = 1 | A), + (i[(4 + ((g + r) | 0)) >> 2] = 40), + (i[8968] = i[9083]) + break Q + } + } + ;(Q = i[8965]) >>> 0 > g >>> 0 && + ((i[8965] = g), (Q = 0)), + (B = (g + E) | 0), + (A = 36292) + C: { + E: { + i: { + n: { + a: { + r: { + for (;;) { + if ((0 | B) != i[A >> 2]) { + if ((A = i[(A + 8) >> 2])) + continue + break r + } + break + } + if (!(8 & n[(A + 12) | 0])) break a + } + for (A = 36292; ; ) { + if ( + (B = i[A >> 2]) >>> 0 <= + r >>> 0 && + (C = + (B + i[(A + 4) >> 2]) | 0) >>> + 0 > + r >>> 0 + ) + break n + A = i[(A + 8) >> 2] + } + } + if ( + ((i[A >> 2] = g), + (i[(A + 4) >> 2] = + i[(A + 4) >> 2] + E), + (i[ + (4 + + (f = + (((g + 8) & 7 + ? (-8 - g) & 7 + : 0) + + g) | + 0)) >> + 2 + ] = 3 | t), + (B = + ((((E = + (B + + ((B + 8) & 7 + ? (-8 - B) & 7 + : 0)) | + 0) - + f) | + 0) - + t) | + 0), + (o = (t + f) | 0), + (0 | E) == (0 | r)) + ) { + ;(i[8967] = o), + (A = (i[8964] + B) | 0), + (i[8964] = A), + (i[(o + 4) >> 2] = 1 | A) + break E + } + if (i[8966] == (0 | E)) { + ;(i[8966] = o), + (A = (i[8963] + B) | 0), + (i[8963] = A), + (i[(o + 4) >> 2] = 1 | A), + (i[(A + o) >> 2] = A) + break E + } + if (1 == (3 & (A = i[(E + 4) >> 2]))) { + r = -8 & A + a: if (A >>> 0 <= 255) { + if ( + ((Q = i[(E + 8) >> 2]), + (A = (A >>> 3) | 0), + (0 | (g = i[(E + 12) >> 2])) == + (0 | Q)) + ) { + ;(s = 35844), + (w = i[8961] & vI(-2, A)), + (i[s >> 2] = w) + break a + } + ;(i[(Q + 12) >> 2] = g), + (i[(g + 8) >> 2] = Q) + } else { + if ( + ((t = i[(E + 24) >> 2]), + (0 | E) == + (0 | (g = i[(E + 12) >> 2]))) + ) + if ( + (C = + i[(A = (E + 20) | 0) >> 2]) || + (C = i[(A = (E + 16) | 0) >> 2]) + ) { + for ( + ; + (Q = A), + (C = + i[ + (A = + ((g = C) + 20) | 0) >> + 2 + ]) || + ((A = (g + 16) | 0), + (C = i[(g + 16) >> 2])); + + ); + i[Q >> 2] = 0 + } else g = 0 + else + (A = i[(E + 8) >> 2]), + (i[(A + 12) >> 2] = g), + (i[(g + 8) >> 2] = A) + if (t) { + Q = i[(E + 28) >> 2] + r: { + if ( + i[ + (A = + (36148 + (Q << 2)) | 0) >> + 2 + ] == + (0 | E) + ) { + if (((i[A >> 2] = g), g)) + break r + ;(s = 35848), + (w = i[8962] & vI(-2, Q)), + (i[s >> 2] = w) + break a + } + if ( + ((i[ + (t + + (i[(t + 16) >> 2] == + (0 | E) + ? 16 + : 20)) >> + 2 + ] = g), + !g) + ) + break a + } + ;(i[(g + 24) >> 2] = t), + (A = i[(E + 16) >> 2]) && + ((i[(g + 16) >> 2] = A), + (i[(A + 24) >> 2] = g)), + (A = i[(E + 20) >> 2]) && + ((i[(g + 20) >> 2] = A), + (i[(A + 24) >> 2] = g)) + } + } + ;(E = (E + r) | 0), (B = (B + r) | 0) + } + if ( + ((i[(E + 4) >> 2] = + -2 & i[(E + 4) >> 2]), + (i[(o + 4) >> 2] = 1 | B), + (i[(B + o) >> 2] = B), + B >>> 0 <= 255) + ) { + ;(g = + (35884 + + ((A = (B >>> 3) | 0) << 3)) | + 0), + (B = i[8961]) & (A = 1 << A) + ? (A = i[(g + 8) >> 2]) + : ((i[8961] = A | B), (A = g)), + (i[(g + 8) >> 2] = o), + (i[(A + 12) >> 2] = o), + (i[(o + 12) >> 2] = g), + (i[(o + 8) >> 2] = A) + break E + } + if ( + ((A = 31), + B >>> 0 <= 16777215 && + ((A = (B >>> 8) | 0), + (A <<= C = + ((A + 1048320) >>> 16) & 8), + (A = + (28 + + (((A = + (((((A <<= Q = + ((A + 520192) >>> 16) & + 4) << + (g = + ((A + 245760) >>> 16) & + 2)) >>> + 15) | + 0) - + (g | Q | C)) | + 0) << + 1) | + ((B >>> (A + 21)) & 1))) | + 0)), + (i[(o + 28) >> 2] = A), + (i[(o + 16) >> 2] = 0), + (i[(o + 20) >> 2] = 0), + (C = (36148 + (A << 2)) | 0), + (Q = i[8962]) & (g = 1 << A)) + ) { + for ( + A = + B << + (31 == (0 | A) + ? 0 + : (25 - ((A >>> 1) | 0)) | 0), + g = i[C >> 2]; + ; + + ) { + if ( + ((Q = g), + (-8 & i[(g + 4) >> 2]) == (0 | B)) + ) + break i + if ( + ((g = (A >>> 29) | 0), + (A <<= 1), + !(g = + i[ + (16 + + (C = (Q + (4 & g)) | 0)) >> + 2 + ])) + ) + break + } + ;(i[(C + 16) >> 2] = o), + (i[(o + 24) >> 2] = Q) + } else + (i[8962] = g | Q), + (i[C >> 2] = o), + (i[(o + 24) >> 2] = C) + ;(i[(o + 12) >> 2] = o), + (i[(o + 8) >> 2] = o) + break E + } + for ( + B = + ((Q = (E - 40) | 0) - + (A = + (g + 8) & 7 ? (-8 - g) & 7 : 0)) | + 0, + i[8964] = B, + A = (A + g) | 0, + i[8967] = A, + i[(A + 4) >> 2] = 1 | B, + i[(4 + ((g + Q) | 0)) >> 2] = 40, + i[8968] = i[9083], + i[ + ((B = + (A = + (((C + + ((C - 39) & 7 + ? (39 - C) & 7 + : 0)) | + 0) - + 47) | + 0) >>> + 0 < + (r + 16) >>> 0 + ? r + : A) + + 4) >> + 2 + ] = 27, + A = i[9076], + i[(B + 16) >> 2] = i[9075], + i[(B + 20) >> 2] = A, + A = i[9074], + i[(B + 8) >> 2] = i[9073], + i[(B + 12) >> 2] = A, + i[9075] = B + 8, + i[9074] = E, + i[9073] = g, + i[9076] = 0, + A = (B + 24) | 0; + (i[(A + 4) >> 2] = 7), + (g = (A + 8) | 0), + (A = (A + 4) | 0), + g >>> 0 < C >>> 0; + + ); + if ((0 | B) == (0 | r)) break Q + if ( + ((i[(B + 4) >> 2] = + -2 & i[(B + 4) >> 2]), + (C = (B - r) | 0), + (i[(r + 4) >> 2] = 1 | C), + (i[B >> 2] = C), + C >>> 0 <= 255) + ) { + ;(g = + (35884 + ((A = (C >>> 3) | 0) << 3)) | + 0), + (B = i[8961]) & (A = 1 << A) + ? (A = i[(g + 8) >> 2]) + : ((i[8961] = A | B), (A = g)), + (i[(g + 8) >> 2] = r), + (i[(A + 12) >> 2] = r), + (i[(r + 12) >> 2] = g), + (i[(r + 8) >> 2] = A) + break Q + } + if ( + ((A = 31), + (i[(r + 16) >> 2] = 0), + (i[(r + 20) >> 2] = 0), + C >>> 0 <= 16777215 && + ((A = (C >>> 8) | 0), + (A <<= Q = + ((A + 1048320) >>> 16) & 8), + (A = + (28 + + (((A = + (((((A <<= B = + ((A + 520192) >>> 16) & 4) << + (g = + ((A + 245760) >>> 16) & + 2)) >>> + 15) | + 0) - + (g | B | Q)) | + 0) << + 1) | + ((C >>> (A + 21)) & 1))) | + 0)), + (i[(r + 28) >> 2] = A), + (Q = (36148 + (A << 2)) | 0), + (B = i[8962]) & (g = 1 << A)) + ) { + for ( + A = + C << + (31 == (0 | A) + ? 0 + : (25 - ((A >>> 1) | 0)) | 0), + g = i[Q >> 2]; + ; + + ) { + if ( + ((B = g), + (0 | C) == (-8 & i[(g + 4) >> 2])) + ) + break C + if ( + ((g = (A >>> 29) | 0), + (A <<= 1), + !(g = + i[ + (16 + + (Q = (B + (4 & g)) | 0)) >> + 2 + ])) + ) + break + } + ;(i[(Q + 16) >> 2] = r), + (i[(r + 24) >> 2] = B) + } else + (i[8962] = g | B), + (i[Q >> 2] = r), + (i[(r + 24) >> 2] = Q) + ;(i[(r + 12) >> 2] = r), + (i[(r + 8) >> 2] = r) + break Q + } + ;(A = i[(Q + 8) >> 2]), + (i[(A + 12) >> 2] = o), + (i[(Q + 8) >> 2] = o), + (i[(o + 24) >> 2] = 0), + (i[(o + 12) >> 2] = Q), + (i[(o + 8) >> 2] = A) + } + A = (f + 8) | 0 + break A + } + ;(A = i[(B + 8) >> 2]), + (i[(A + 12) >> 2] = r), + (i[(B + 8) >> 2] = r), + (i[(r + 24) >> 2] = 0), + (i[(r + 12) >> 2] = B), + (i[(r + 8) >> 2] = A) + } + if (!((A = i[8964]) >>> 0 <= t >>> 0)) { + ;(g = (A - t) | 0), + (i[8964] = g), + (A = ((B = i[8967]) + t) | 0), + (i[8967] = A), + (i[(A + 4) >> 2] = 1 | g), + (i[(B + 4) >> 2] = 3 | t), + (A = (B + 8) | 0) + break A + } + } + ;(i[8960] = 48), (A = 0) + break A + } + g: if (E) { + B = i[(Q + 28) >> 2] + B: { + if ( + i[(A = (36148 + (B << 2)) | 0) >> 2] == + (0 | Q) + ) { + if (((i[A >> 2] = g), g)) break B + ;(f = vI(-2, B) & f), (i[8962] = f) + break g + } + if ( + ((i[ + (E + + (i[(E + 16) >> 2] == (0 | Q) ? 16 : 20)) >> + 2 + ] = g), + !g) + ) + break g + } + ;(i[(g + 24) >> 2] = E), + (A = i[(Q + 16) >> 2]) && + ((i[(g + 16) >> 2] = A), + (i[(A + 24) >> 2] = g)), + (A = i[(Q + 20) >> 2]) && + ((i[(g + 20) >> 2] = A), (i[(A + 24) >> 2] = g)) + } + g: if (C >>> 0 <= 15) + (A = (C + t) | 0), + (i[(Q + 4) >> 2] = 3 | A), + (i[(4 + (A = (A + Q) | 0)) >> 2] = + 1 | i[(A + 4) >> 2]) + else if ( + ((i[(Q + 4) >> 2] = 3 | t), + (i[(o + 4) >> 2] = 1 | C), + (i[(C + o) >> 2] = C), + C >>> 0 <= 255) + ) + (g = (35884 + ((A = (C >>> 3) | 0) << 3)) | 0), + (B = i[8961]) & (A = 1 << A) + ? (A = i[(g + 8) >> 2]) + : ((i[8961] = A | B), (A = g)), + (i[(g + 8) >> 2] = o), + (i[(A + 12) >> 2] = o), + (i[(o + 12) >> 2] = g), + (i[(o + 8) >> 2] = A) + else { + ;(A = 31), + C >>> 0 <= 16777215 && + ((A = (C >>> 8) | 0), + (A <<= r = ((A + 1048320) >>> 16) & 8), + (A = + (28 + + (((A = + (((((A <<= B = + ((A + 520192) >>> 16) & 4) << + (g = ((A + 245760) >>> 16) & 2)) >>> + 15) | + 0) - + (g | B | r)) | + 0) << + 1) | + ((C >>> (A + 21)) & 1))) | + 0)), + (i[(o + 28) >> 2] = A), + (i[(o + 16) >> 2] = 0), + (i[(o + 20) >> 2] = 0), + (B = (36148 + (A << 2)) | 0) + B: { + if ((g = 1 << A) & f) { + for ( + A = + C << + (31 == (0 | A) + ? 0 + : (25 - ((A >>> 1) | 0)) | 0), + t = i[B >> 2]; + ; + + ) { + if ((-8 & i[((g = t) + 4) >> 2]) == (0 | C)) + break B + if ( + ((B = (A >>> 29) | 0), + (A <<= 1), + !(t = + i[(16 + (B = (g + (4 & B)) | 0)) >> 2])) + ) + break + } + ;(i[(B + 16) >> 2] = o), (i[(o + 24) >> 2] = g) + } else + (i[8962] = g | f), + (i[B >> 2] = o), + (i[(o + 24) >> 2] = B) + ;(i[(o + 12) >> 2] = o), (i[(o + 8) >> 2] = o) + break g + } + ;(A = i[(g + 8) >> 2]), + (i[(A + 12) >> 2] = o), + (i[(g + 8) >> 2] = o), + (i[(o + 24) >> 2] = 0), + (i[(o + 12) >> 2] = g), + (i[(o + 8) >> 2] = A) + } + A = (Q + 8) | 0 + break A + } + I: if (y) { + B = i[(g + 28) >> 2] + g: { + if ( + i[(A = (36148 + (B << 2)) | 0) >> 2] == + (0 | g) + ) { + if (((i[A >> 2] = Q), Q)) break g + ;(s = 35848), (w = vI(-2, B) & o), (i[s >> 2] = w) + break I + } + if ( + ((i[ + ((i[(y + 16) >> 2] == (0 | g) ? 16 : 20) + y) >> + 2 + ] = Q), + !Q) + ) + break I + } + ;(i[(Q + 24) >> 2] = y), + (A = i[(g + 16) >> 2]) && + ((i[(Q + 16) >> 2] = A), (i[(A + 24) >> 2] = Q)), + (A = i[(g + 20) >> 2]) && + ((i[(Q + 20) >> 2] = A), (i[(A + 24) >> 2] = Q)) + } + C >>> 0 <= 15 + ? ((A = (C + t) | 0), + (i[(g + 4) >> 2] = 3 | A), + (i[(4 + (A = (A + g) | 0)) >> 2] = + 1 | i[(A + 4) >> 2])) + : ((i[(g + 4) >> 2] = 3 | t), + (i[(f + 4) >> 2] = 1 | C), + (i[(C + f) >> 2] = C), + c && + ((B = (35884 + ((A = (c >>> 3) | 0) << 3)) | 0), + (Q = i[8966]), + (A = 1 << A) & E + ? (A = i[(B + 8) >> 2]) + : ((i[8961] = A | E), (A = B)), + (i[(B + 8) >> 2] = Q), + (i[(A + 12) >> 2] = Q), + (i[(Q + 12) >> 2] = B), + (i[(Q + 8) >> 2] = A)), + (i[8966] = f), + (i[8963] = C)), + (A = (g + 8) | 0) + } + return (h = (I + 16) | 0), 0 | A + } + function _(A, I, g) { + var B, + Q, + C, + E, + n, + a, + o, + e, + t, + f, + c, + y, + s, + w, + h, + D, + u, + l, + F, + G, + k, + _, + H, + Y, + b, + m, + v, + U, + S, + N, + M, + d, + P, + R, + J, + x, + L, + K, + q, + X, + V, + W, + T, + j, + Z, + O, + z, + $, + AA, + IA, + gA, + BA, + QA, + CA, + EA = 0, + iA = 0, + nA = 0, + aA = 0, + rA = 0, + oA = 0, + eA = 0, + tA = 0, + fA = 0, + cA = 0, + yA = 0, + sA = 0, + wA = 0, + hA = 0, + DA = 0, + uA = 0, + pA = 0, + lA = 0, + FA = 0, + GA = 0, + kA = 0, + _A = 0, + HA = 0, + YA = 0, + bA = 0 + ;(eA = A), + (B = EA = HA = i[(g + 4) >> 2]), + (t = EA >> 31), + (x = EA = (DA = i[(I + 20) >> 2]) << 1), + (EA = eg(B, t, EA, (H = EA >> 31))), + (nA = p), + (iA = EA), + (Q = EA = i[g >> 2]), + (C = EA >> 31), + (f = EA = i[(I + 24) >> 2]), + (rA = eg(Q, C, EA, (E = EA >> 31))), + (EA = (p + nA) | 0), + (EA = + (iA = (iA + rA) | 0) >>> 0 < rA >>> 0 + ? (EA + 1) | 0 + : EA), + (nA = iA), + (L = iA = oA = i[(g + 8) >> 2]), + (u = iA >> 31), + (c = iA = i[(I + 16) >> 2]), + (iA = (nA + (rA = eg(oA, u, iA, (n = iA >> 31)))) | 0), + (nA = (p + EA) | 0), + (nA = iA >>> 0 < rA >>> 0 ? (nA + 1) | 0 : nA), + (K = EA = pA = i[(g + 12) >> 2]), + (l = EA >> 31), + (q = EA = (sA = i[(I + 12) >> 2]) << 1), + (EA = ((rA = eg(pA, l, EA, (Y = EA >> 31))) + iA) | 0), + (iA = (p + nA) | 0), + (iA = EA >>> 0 < rA >>> 0 ? (iA + 1) | 0 : iA), + (nA = EA), + (O = EA = uA = i[(g + 16) >> 2]), + (k = EA >> 31), + (y = EA = i[(I + 8) >> 2]), + (rA = eg(uA, k, EA, (a = EA >> 31))), + (EA = (p + iA) | 0), + (EA = + (nA = (nA + rA) | 0) >>> 0 < rA >>> 0 + ? (EA + 1) | 0 + : EA), + (aA = nA), + (z = iA = cA = i[(g + 20) >> 2]), + (b = iA >> 31), + (X = iA = (fA = i[(I + 4) >> 2]) << 1), + (nA = eg(cA, b, iA, (m = iA >> 31))), + (EA = (p + EA) | 0), + (EA = + (iA = (aA + nA) | 0) >>> 0 < nA >>> 0 + ? (EA + 1) | 0 + : EA), + (nA = iA), + ($ = iA = yA = i[(g + 24) >> 2]), + (V = iA >> 31), + (s = iA = i[I >> 2]), + (rA = eg(yA, V, iA, (o = iA >> 31))), + (iA = (p + EA) | 0), + (iA = + (nA = (nA + rA) | 0) >>> 0 < rA >>> 0 + ? (iA + 1) | 0 + : iA), + (lA = i[(g + 28) >> 2]), + (F = EA = r(lA, 19)), + (G = EA >> 31), + (W = EA = (wA = i[(I + 36) >> 2]) << 1), + (EA = ((rA = eg(F, G, EA, (v = EA >> 31))) + nA) | 0), + (nA = (p + iA) | 0), + (nA = EA >>> 0 < rA >>> 0 ? (nA + 1) | 0 : nA), + (iA = EA), + (hA = i[(g + 32) >> 2]), + (FA = EA = r(hA, 19)), + (GA = EA >> 31), + (w = EA = i[(I + 32) >> 2]), + (rA = eg(FA, GA, EA, (e = EA >> 31))), + (EA = (p + nA) | 0), + (EA = + (iA = (iA + rA) | 0) >>> 0 < rA >>> 0 + ? (EA + 1) | 0 + : EA), + (nA = iA), + (AA = i[(g + 36) >> 2]), + (h = g = r(AA, 19)), + (D = g >> 31), + (T = g = (I = i[(I + 28) >> 2]) << 1), + (iA = eg(h, D, g, (U = g >> 31))), + (EA = (p + EA) | 0), + (tA = g = (nA + iA) | 0), + (g = g >>> 0 < iA >>> 0 ? (EA + 1) | 0 : EA), + (EA = eg(c, n, B, t)), + (iA = p), + (DA = eg(Q, C, (rA = DA), (S = rA >> 31))), + (nA = (p + iA) | 0), + (nA = + (EA = (DA + EA) | 0) >>> 0 < DA >>> 0 + ? (nA + 1) | 0 + : nA), + (DA = sA), + (sA = eg(oA, u, sA, (N = sA >> 31))), + (iA = (p + nA) | 0), + (iA = + (EA = (sA + EA) | 0) >>> 0 < sA >>> 0 + ? (iA + 1) | 0 + : iA), + (nA = ((sA = eg(y, a, pA, l)) + EA) | 0), + (EA = (p + iA) | 0), + (EA = nA >>> 0 < sA >>> 0 ? (EA + 1) | 0 : EA), + (iA = nA), + (sA = fA), + (nA = eg(uA, k, fA, (M = fA >> 31))), + (EA = (p + EA) | 0), + (EA = + (iA = (iA + nA) | 0) >>> 0 < nA >>> 0 + ? (EA + 1) | 0 + : EA), + (nA = eg(s, o, cA, b)), + (EA = (p + EA) | 0), + (EA = + (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 + ? (EA + 1) | 0 + : EA), + (nA = iA), + (d = iA = r(yA, 19)), + (iA = + (nA + + (wA = eg( + iA, + (_ = iA >> 31), + (fA = wA), + (P = fA >> 31) + ))) | + 0), + (nA = (p + EA) | 0), + (nA = iA >>> 0 < wA >>> 0 ? (nA + 1) | 0 : nA), + (EA = ((wA = eg(w, e, F, G)) + iA) | 0), + (iA = (p + nA) | 0), + (iA = EA >>> 0 < wA >>> 0 ? (iA + 1) | 0 : iA), + (wA = I), + (I = ((nA = eg(FA, GA, I, (R = I >> 31))) + EA) | 0), + (EA = (p + iA) | 0), + (EA = I >>> 0 < nA >>> 0 ? (EA + 1) | 0 : EA), + (iA = eg(h, D, f, E)), + (EA = (p + EA) | 0), + (_A = I = (iA + I) | 0), + (I = I >>> 0 < iA >>> 0 ? (EA + 1) | 0 : EA), + (EA = eg(B, t, q, Y)), + (nA = p), + (iA = ((yA = eg(Q, C, c, n)) + EA) | 0), + (EA = (p + nA) | 0), + (EA = iA >>> 0 < yA >>> 0 ? (EA + 1) | 0 : EA), + (yA = eg(y, a, oA, u)), + (nA = (p + EA) | 0), + (nA = + (iA = (yA + iA) | 0) >>> 0 < yA >>> 0 + ? (nA + 1) | 0 + : nA), + (EA = ((yA = eg(pA, l, X, m)) + iA) | 0), + (iA = (p + nA) | 0), + (iA = EA >>> 0 < yA >>> 0 ? (iA + 1) | 0 : iA), + (nA = ((yA = eg(s, o, uA, k)) + EA) | 0), + (EA = (p + iA) | 0), + (EA = nA >>> 0 < yA >>> 0 ? (EA + 1) | 0 : EA), + (aA = nA), + (j = iA = r(cA, 19)), + (nA = eg(iA, (J = iA >> 31), W, v)), + (EA = (p + EA) | 0), + (EA = + (iA = (aA + nA) | 0) >>> 0 < nA >>> 0 + ? (EA + 1) | 0 + : EA), + (nA = eg(w, e, d, _)), + (EA = (p + EA) | 0), + (EA = + (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 + ? (EA + 1) | 0 + : EA), + (cA = eg(F, G, T, U)), + (nA = (p + EA) | 0), + (nA = + (iA = (cA + iA) | 0) >>> 0 < cA >>> 0 + ? (nA + 1) | 0 + : nA), + (EA = ((cA = eg(FA, GA, f, E)) + iA) | 0), + (iA = (p + nA) | 0), + (iA = EA >>> 0 < cA >>> 0 ? (iA + 1) | 0 : iA), + (nA = ((cA = eg(h, D, x, H)) + EA) | 0), + (EA = (p + iA) | 0), + (EA = nA >>> 0 < cA >>> 0 ? (EA + 1) | 0 : EA), + (cA = nA), + (gA = EA), + (yA = iA = (nA + 33554432) | 0), + (BA = EA = iA >>> 0 < 33554432 ? (EA + 1) | 0 : EA), + (nA = _A), + (_A = ((67108863 & EA) << 6) | (iA >>> 26)), + (EA = ((EA >> 26) + I) | 0), + (EA = + (nA = (nA + _A) | 0) >>> 0 < _A >>> 0 + ? (EA + 1) | 0 + : EA), + (QA = I = ((_A = nA) + 16777216) | 0), + (EA = + (g + + (iA = + (nA = I >>> 0 < 16777216 ? (EA + 1) | 0 : EA) >> + 25)) | + 0), + (EA = + (I = + ((nA = ((33554431 & nA) << 7) | (I >>> 25)) + tA) | + 0) >>> + 0 < + nA >>> 0 + ? (EA + 1) | 0 + : EA), + (YA = I = ((g = I) + 33554432) | 0), + (I = EA = I >>> 0 < 33554432 ? (EA + 1) | 0 : EA), + (EA = -67108864 & YA), + (i[(eA + 24) >> 2] = g - EA), + (tA = eA), + (g = eg(B, t, X, m)), + (EA = p), + (iA = eg(Q, C, y, a)), + (nA = (p + EA) | 0), + (nA = + (g = (iA + g) | 0) >>> 0 < iA >>> 0 + ? (nA + 1) | 0 + : nA), + (iA = eg(s, o, oA, u)), + (EA = (p + nA) | 0), + (EA = + (g = (iA + g) | 0) >>> 0 < iA >>> 0 + ? (EA + 1) | 0 + : EA), + (nA = g), + (eA = g = r(pA, 19)), + (iA = eg(g, (pA = g >> 31), W, v)), + (EA = (p + EA) | 0), + (EA = + (g = (nA + iA) | 0) >>> 0 < iA >>> 0 + ? (EA + 1) | 0 + : EA), + (iA = g), + (IA = g = r(uA, 19)), + (g = (iA + (nA = eg(w, e, g, (Z = g >> 31)))) | 0), + (iA = (p + EA) | 0), + (iA = g >>> 0 < nA >>> 0 ? (iA + 1) | 0 : iA), + (nA = eg(T, U, j, J)), + (EA = (p + iA) | 0), + (EA = + (g = (nA + g) | 0) >>> 0 < nA >>> 0 + ? (EA + 1) | 0 + : EA), + (iA = eg(f, E, d, _)), + (nA = (p + EA) | 0), + (nA = + (g = (iA + g) | 0) >>> 0 < iA >>> 0 + ? (nA + 1) | 0 + : nA), + (iA = eg(F, G, x, H)), + (EA = (p + nA) | 0), + (EA = + (g = (iA + g) | 0) >>> 0 < iA >>> 0 + ? (EA + 1) | 0 + : EA), + (iA = eg(FA, GA, c, n)), + (EA = (p + EA) | 0), + (EA = + (g = (iA + g) | 0) >>> 0 < iA >>> 0 + ? (EA + 1) | 0 + : EA), + (nA = eg(h, D, q, Y)), + (iA = (p + EA) | 0), + (aA = g = (nA + g) | 0), + (g = g >>> 0 < nA >>> 0 ? (iA + 1) | 0 : iA), + (EA = eg(s, o, B, t)), + (nA = p), + (iA = ((uA = eg(Q, C, sA, M)) + EA) | 0), + (EA = (p + nA) | 0), + (EA = iA >>> 0 < uA >>> 0 ? (EA + 1) | 0 : EA), + (nA = iA), + (uA = iA = r(oA, 19)), + (iA = (nA + (oA = eg(iA, (kA = iA >> 31), fA, P))) | 0), + (nA = (p + EA) | 0), + (nA = iA >>> 0 < oA >>> 0 ? (nA + 1) | 0 : nA), + (oA = eg(w, e, eA, pA)), + (EA = (p + nA) | 0), + (EA = + (iA = (oA + iA) | 0) >>> 0 < oA >>> 0 + ? (EA + 1) | 0 + : EA), + (nA = eg(IA, Z, wA, R)), + (EA = (p + EA) | 0), + (EA = + (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 + ? (EA + 1) | 0 + : EA), + (nA = ((oA = eg(f, E, j, J)) + iA) | 0), + (iA = (p + EA) | 0), + (iA = nA >>> 0 < oA >>> 0 ? (iA + 1) | 0 : iA), + (oA = eg(d, _, rA, S)), + (EA = (p + iA) | 0), + (EA = + (nA = (oA + nA) | 0) >>> 0 < oA >>> 0 + ? (EA + 1) | 0 + : EA), + (iA = ((oA = eg(c, n, F, G)) + nA) | 0), + (nA = (p + EA) | 0), + (nA = iA >>> 0 < oA >>> 0 ? (nA + 1) | 0 : nA), + (oA = eg(FA, GA, DA, N)), + (EA = (p + nA) | 0), + (EA = + (iA = (oA + iA) | 0) >>> 0 < oA >>> 0 + ? (EA + 1) | 0 + : EA), + (nA = eg(h, D, y, a)), + (EA = (p + EA) | 0), + (bA = iA = (nA + iA) | 0), + (oA = iA >>> 0 < nA >>> 0 ? (EA + 1) | 0 : EA), + (EA = eg((EA = r(B, 19)), EA >> 31, W, v)), + (iA = p), + (nA = eg(Q, C, s, o)), + (iA = (p + iA) | 0), + (iA = + (EA = (nA + EA) | 0) >>> 0 < nA >>> 0 + ? (iA + 1) | 0 + : iA), + (nA = ((HA = eg(w, e, uA, kA)) + EA) | 0), + (EA = (p + iA) | 0), + (iA = ((eA = eg(eA, pA, T, U)) + nA) | 0), + (nA = + (p + (nA >>> 0 < HA >>> 0 ? (EA + 1) | 0 : EA)) | 0), + (nA = iA >>> 0 < eA >>> 0 ? (nA + 1) | 0 : nA), + (eA = eg(f, E, IA, Z)), + (EA = (p + nA) | 0), + (EA = + (iA = (eA + iA) | 0) >>> 0 < eA >>> 0 + ? (EA + 1) | 0 + : EA), + (nA = eg(x, H, j, J)), + (EA = (p + EA) | 0), + (EA = + (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 + ? (EA + 1) | 0 + : EA), + (nA = ((eA = eg(c, n, d, _)) + iA) | 0), + (iA = (p + EA) | 0), + (iA = nA >>> 0 < eA >>> 0 ? (iA + 1) | 0 : iA), + (eA = eg(F, G, q, Y)), + (EA = (p + iA) | 0), + (EA = + (nA = (eA + nA) | 0) >>> 0 < eA >>> 0 + ? (EA + 1) | 0 + : EA), + (iA = ((eA = eg(FA, GA, y, a)) + nA) | 0), + (nA = (p + EA) | 0), + (nA = iA >>> 0 < eA >>> 0 ? (nA + 1) | 0 : nA), + (eA = eg(h, D, X, m)), + (EA = (p + nA) | 0), + (EA = + (iA = (eA + iA) | 0) >>> 0 < eA >>> 0 + ? (EA + 1) | 0 + : EA), + (eA = iA), + (HA = EA), + (pA = iA = (iA + 33554432) | 0), + (uA = EA = iA >>> 0 < 33554432 ? (EA + 1) | 0 : EA), + (kA = ((67108863 & EA) << 6) | (iA >>> 26)), + (iA = ((nA = EA >> 26) + oA) | 0), + (oA = EA = (kA + bA) | 0), + (nA = aA), + (EA = EA >>> 0 < kA >>> 0 ? (iA + 1) | 0 : iA), + (CA = iA = (oA + 16777216) | 0), + (aA = + ((33554431 & + (EA = iA >>> 0 < 16777216 ? (EA + 1) | 0 : EA)) << + 7) | + (iA >>> 25)), + (EA = ((EA >> 25) + g) | 0), + (EA = + (iA = (nA + aA) | 0) >>> 0 < aA >>> 0 + ? (EA + 1) | 0 + : EA), + (kA = g = (iA + 33554432) | 0), + (g = EA = g >>> 0 < 33554432 ? (EA + 1) | 0 : EA), + (EA = -67108864 & kA), + (i[(tA + 8) >> 2] = iA - EA), + (aA = tA), + (EA = eg(f, E, B, t)), + (nA = p), + (iA = ((tA = eg(Q, C, wA, R)) + EA) | 0), + (EA = (p + nA) | 0), + (EA = iA >>> 0 < tA >>> 0 ? (EA + 1) | 0 : EA), + (nA = eg(L, u, rA, S)), + (EA = (p + EA) | 0), + (EA = + (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 + ? (EA + 1) | 0 + : EA), + (nA = eg(c, n, K, l)), + (EA = (p + EA) | 0), + (EA = + (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 + ? (EA + 1) | 0 + : EA), + (tA = eg(O, k, DA, N)), + (nA = (p + EA) | 0), + (nA = + (iA = (tA + iA) | 0) >>> 0 < tA >>> 0 + ? (nA + 1) | 0 + : nA), + (EA = ((tA = eg(y, a, z, b)) + iA) | 0), + (iA = (p + nA) | 0), + (iA = EA >>> 0 < tA >>> 0 ? (iA + 1) | 0 : iA), + (nA = ((tA = eg(sA, M, $, V)) + EA) | 0), + (EA = (p + iA) | 0), + (EA = nA >>> 0 < tA >>> 0 ? (EA + 1) | 0 : EA), + (iA = nA), + (nA = eg(s, o, (tA = lA), (bA = tA >> 31))), + (EA = (p + EA) | 0), + (EA = + (iA = (iA + nA) | 0) >>> 0 < nA >>> 0 + ? (EA + 1) | 0 + : EA), + (nA = eg(FA, GA, fA, P)), + (EA = (p + EA) | 0), + (EA = + (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 + ? (EA + 1) | 0 + : EA), + (lA = eg(h, D, w, e)), + (nA = (p + EA) | 0), + (nA = + (iA = (lA + iA) | 0) >>> 0 < lA >>> 0 + ? (nA + 1) | 0 + : nA), + (EA = I >> 26), + (I = + ((lA = ((67108863 & I) << 6) | (YA >>> 26)) + iA) | + 0), + (iA = (EA + nA) | 0), + (EA = iA = I >>> 0 < lA >>> 0 ? (iA + 1) | 0 : iA), + (YA = I = ((nA = I) + 16777216) | 0), + (I = EA = I >>> 0 < 16777216 ? (EA + 1) | 0 : EA), + (EA = -33554432 & YA), + (i[(aA + 28) >> 2] = nA - EA), + (lA = aA), + (EA = eg(y, a, B, t)), + (iA = p), + (aA = eg(Q, C, DA, N)), + (nA = (p + iA) | 0), + (nA = + (EA = (aA + EA) | 0) >>> 0 < aA >>> 0 + ? (nA + 1) | 0 + : nA), + (aA = eg(L, u, sA, M)), + (iA = (p + nA) | 0), + (iA = + (EA = (aA + EA) | 0) >>> 0 < aA >>> 0 + ? (iA + 1) | 0 + : iA), + (nA = ((aA = eg(s, o, K, l)) + EA) | 0), + (EA = (p + iA) | 0), + (EA = nA >>> 0 < aA >>> 0 ? (EA + 1) | 0 : EA), + (iA = nA), + (nA = eg(IA, Z, fA, P)), + (EA = (p + EA) | 0), + (EA = + (iA = (iA + nA) | 0) >>> 0 < nA >>> 0 + ? (EA + 1) | 0 + : EA), + (nA = eg(w, e, j, J)), + (EA = (p + EA) | 0), + (EA = + (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 + ? (EA + 1) | 0 + : EA), + (aA = eg(d, _, wA, R)), + (nA = (p + EA) | 0), + (nA = + (iA = (aA + iA) | 0) >>> 0 < aA >>> 0 + ? (nA + 1) | 0 + : nA), + (EA = ((aA = eg(f, E, F, G)) + iA) | 0), + (iA = (p + nA) | 0), + (iA = EA >>> 0 < aA >>> 0 ? (iA + 1) | 0 : iA), + (nA = ((aA = eg(FA, GA, rA, S)) + EA) | 0), + (EA = (p + iA) | 0), + (EA = nA >>> 0 < aA >>> 0 ? (EA + 1) | 0 : EA), + (iA = nA), + (nA = eg(h, D, c, n)), + (EA = (p + EA) | 0), + (aA = iA = (iA + nA) | 0), + (EA = + ((EA = iA >>> 0 < nA >>> 0 ? (EA + 1) | 0 : EA) + + (iA = g >> 26)) | + 0), + (EA = + (g = + (aA + (nA = ((67108863 & g) << 6) | (kA >>> 26))) | + 0) >>> + 0 < + nA >>> 0 + ? (EA + 1) | 0 + : EA), + (FA = g = ((iA = g) + 16777216) | 0), + (g = nA = g >>> 0 < 16777216 ? (EA + 1) | 0 : EA), + (EA = -33554432 & FA), + (i[(lA + 12) >> 2] = iA - EA), + (EA = eg(B, t, T, U)), + (nA = p), + (iA = ((aA = eg(Q, C, w, e)) + EA) | 0), + (EA = (p + nA) | 0), + (EA = iA >>> 0 < aA >>> 0 ? (EA + 1) | 0 : EA), + (nA = eg(f, E, L, u)), + (EA = (p + EA) | 0), + (EA = + (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 + ? (EA + 1) | 0 + : EA), + (aA = eg(K, l, x, H)), + (nA = (p + EA) | 0), + (nA = + (iA = (aA + iA) | 0) >>> 0 < aA >>> 0 + ? (nA + 1) | 0 + : nA), + (EA = ((aA = eg(c, n, O, k)) + iA) | 0), + (iA = (p + nA) | 0), + (iA = EA >>> 0 < aA >>> 0 ? (iA + 1) | 0 : iA), + (nA = ((aA = eg(q, Y, z, b)) + EA) | 0), + (EA = (p + iA) | 0), + (EA = nA >>> 0 < aA >>> 0 ? (EA + 1) | 0 : EA), + (iA = nA), + (nA = eg(y, a, $, V)), + (EA = (p + EA) | 0), + (EA = + (iA = (iA + nA) | 0) >>> 0 < nA >>> 0 + ? (EA + 1) | 0 + : EA), + (nA = eg(tA, bA, X, m)), + (EA = (p + EA) | 0), + (EA = + (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 + ? (EA + 1) | 0 + : EA), + (hA = eg(s, o, (aA = hA), (GA = aA >> 31))), + (nA = (p + EA) | 0), + (nA = + (iA = (hA + iA) | 0) >>> 0 < hA >>> 0 + ? (nA + 1) | 0 + : nA), + (EA = ((hA = eg(h, D, W, v)) + iA) | 0), + (iA = (p + nA) | 0), + (iA = EA >>> 0 < hA >>> 0 ? (iA + 1) | 0 : iA), + (hA = EA), + (EA = ((EA = I >> 25) + iA) | 0), + (EA = + (I = + (hA + (nA = ((33554431 & I) << 7) | (YA >>> 25))) | + 0) >>> + 0 < + nA >>> 0 + ? (EA + 1) | 0 + : EA), + (hA = I = ((iA = I) + 33554432) | 0), + (I = EA = I >>> 0 < 33554432 ? (EA + 1) | 0 : EA), + (EA = -67108864 & hA), + (i[(lA + 32) >> 2] = iA - EA), + (nA = iA = (cA - (EA = -67108864 & yA)) | 0), + (EA = + ((EA = + (gA - (((EA >>> 0 > cA >>> 0) + BA) | 0)) | 0) + + (iA = g >> 25)) | + 0), + (EA = + (g = + (nA + (cA = ((33554431 & g) << 7) | (FA >>> 25))) | + 0) >>> + 0 < + cA >>> 0 + ? (EA + 1) | 0 + : EA), + (iA = (g + 33554432) | 0) >>> 0 < 33554432 && + (EA = (EA + 1) | 0), + (EA = + (((_A - (-33554432 & QA)) | 0) + + (((67108863 & EA) << 6) | (iA >>> 26))) | + 0), + (i[(A + 20) >> 2] = EA), + (EA = -67108864 & iA), + (i[(A + 16) >> 2] = g - EA), + (EA = eg(w, e, B, t)), + (nA = p), + (iA = ((fA = eg(Q, C, fA, P)) + EA) | 0), + (EA = (p + nA) | 0), + (EA = iA >>> 0 < fA >>> 0 ? (EA + 1) | 0 : EA), + (nA = ((fA = eg(L, u, wA, R)) + iA) | 0), + (iA = (p + EA) | 0), + (iA = nA >>> 0 < fA >>> 0 ? (iA + 1) | 0 : iA), + (EA = ((fA = eg(f, E, K, l)) + nA) | 0), + (nA = (p + iA) | 0), + (iA = ((rA = eg(O, k, rA, S)) + EA) | 0), + (EA = + (p + (EA >>> 0 < fA >>> 0 ? (nA + 1) | 0 : nA)) | 0), + (EA = iA >>> 0 < rA >>> 0 ? (EA + 1) | 0 : EA), + (nA = eg(c, n, z, b)), + (EA = (p + EA) | 0), + (EA = + (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 + ? (EA + 1) | 0 + : EA), + (nA = eg(DA, N, $, V)), + (EA = (p + EA) | 0), + (EA = + (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 + ? (EA + 1) | 0 + : EA), + (nA = ((rA = eg(y, a, tA, bA)) + iA) | 0), + (iA = (p + EA) | 0), + (iA = nA >>> 0 < rA >>> 0 ? (iA + 1) | 0 : iA), + (EA = ((rA = eg(aA, GA, sA, M)) + nA) | 0), + (nA = (p + iA) | 0), + (nA = EA >>> 0 < rA >>> 0 ? (nA + 1) | 0 : nA), + (iA = ((rA = eg(s, o, AA, AA >> 31)) + EA) | 0), + (EA = (p + nA) | 0), + (g = iA), + (EA = + ((EA = iA >>> 0 < rA >>> 0 ? (EA + 1) | 0 : EA) + + (iA = I >> 26)) | + 0), + (EA = + (I = + (g + (nA = ((67108863 & I) << 6) | (hA >>> 26))) | + 0) >>> + 0 < + nA >>> 0 + ? (EA + 1) | 0 + : EA), + (EA = + (I = ((g = I) + 16777216) | 0) >>> 0 < 16777216 + ? (EA + 1) | 0 + : EA), + (I = -33554432 & (iA = I)), + (i[(A + 36) >> 2] = g - I), + (nA = (oA - (-33554432 & CA)) | 0), + (rA = (eA - (I = -67108864 & pA)) | 0), + (DA = (HA - (((I >>> 0 > eA >>> 0) + uA) | 0)) | 0), + (EA = eg( + ((33554431 & (I = EA)) << 7) | (iA >>> 25), + (EA >>= 25), + 19, + 0 + )), + (iA = (p + DA) | 0), + (EA = iA = + (I = (EA + rA) | 0) >>> 0 < EA >>> 0 + ? (iA + 1) | 0 + : iA), + (g = + ((((67108863 & + (EA = + (g = (I + 33554432) | 0) >>> 0 < 33554432 + ? (EA + 1) | 0 + : EA)) << + 6) | + ((iA = g) >>> 26)) + + nA) | + 0), + (i[(A + 4) >> 2] = g), + (g = A), + (A = -67108864 & iA), + (i[g >> 2] = I - A) + } + function H(A, I) { + var g, + B, + Q, + C, + E, + n, + a, + o, + e, + t, + f, + c, + y, + s, + w, + h, + D, + u, + l, + F, + G, + k, + _, + H, + Y, + b, + m, + v, + U, + S, + N, + M, + d, + P, + R, + J, + x, + L = 0, + K = 0, + q = 0, + X = 0, + V = 0, + W = 0, + T = 0, + j = 0, + Z = 0, + O = 0, + z = 0, + $ = 0, + AA = 0, + IA = 0, + gA = 0, + BA = 0, + QA = 0 + ;(W = A), + (t = K = (L = i[(I + 12) >> 2]) << 1), + (j = L), + (L = eg(K, (E = K >> 31), L, (H = L >> 31))), + (X = p), + (K = L), + (g = L = i[(I + 16) >> 2]), + (n = L >> 31), + (D = L = (O = i[(I + 8) >> 2]) << 1), + (V = eg(g, n, L, (y = L >> 31))), + (L = (p + X) | 0), + (L = + (K = (K + V) | 0) >>> 0 < V >>> 0 ? (L + 1) | 0 : L), + (X = K), + (s = K = (V = i[(I + 20) >> 2]) << 1), + (w = K >> 31), + (a = K = (z = i[(I + 4) >> 2]) << 1), + (q = eg(s, w, K, (B = K >> 31))), + (K = (p + L) | 0), + (K = + (X = (X + q) | 0) >>> 0 < q >>> 0 ? (K + 1) | 0 : K), + (F = L = T = i[(I + 24) >> 2]), + (f = L >> 31), + (o = L = (BA = i[I >> 2]) << 1), + (q = eg(T, f, L, (Q = L >> 31))), + (L = (p + K) | 0), + (L = + (X = (q + X) | 0) >>> 0 < q >>> 0 ? (L + 1) | 0 : L), + (Z = X), + (K = i[(I + 32) >> 2]), + (h = X = r(K, 19)), + (Y = K), + (X = eg(X, (c = X >> 31), K, (G = K >> 31))), + (L = (p + L) | 0), + (L = + (K = (Z + X) | 0) >>> 0 < X >>> 0 ? (L + 1) | 0 : L), + (Z = K), + (AA = i[(I + 36) >> 2]), + (e = K = r(AA, 38)), + (C = K >> 31), + (S = I = (X = i[(I + 28) >> 2]) << 1), + (q = eg(K, C, I, (b = I >> 31))), + (I = (p + L) | 0), + (IA = K = (Z + q) | 0), + ($ = K >>> 0 < q >>> 0 ? (I + 1) | 0 : I), + (I = eg(a, B, g, n)), + (L = p), + (K = eg(D, y, j, H)), + (L = (p + L) | 0), + (L = + (I = (K + I) | 0) >>> 0 < K >>> 0 ? (L + 1) | 0 : L), + (N = V), + (q = eg(V, (k = V >> 31), o, Q)), + (K = (p + L) | 0), + (K = + (I = (q + I) | 0) >>> 0 < q >>> 0 ? (K + 1) | 0 : K), + (q = eg(h, c, S, b)), + (L = (p + K) | 0), + (L = + (I = (q + I) | 0) >>> 0 < q >>> 0 ? (L + 1) | 0 : L), + (K = eg(e, C, T, f)), + (L = (p + L) | 0), + (Z = I = (K + I) | 0), + (QA = I >>> 0 < K >>> 0 ? (L + 1) | 0 : L), + (I = eg(a, B, t, E)), + (K = p), + (L = ((O = eg((q = O), (u = q >> 31), q, u)) + I) | 0), + (I = (p + K) | 0), + (I = L >>> 0 < O >>> 0 ? (I + 1) | 0 : I), + (K = ((O = eg(o, Q, g, n)) + L) | 0), + (L = (p + I) | 0), + (L = K >>> 0 < O >>> 0 ? (L + 1) | 0 : L), + (_ = I = r(X, 38)), + (O = X), + (I = + ((X = eg(I, (l = I >> 31), X, (m = X >> 31))) + K) | + 0), + (K = (p + L) | 0), + (K = I >>> 0 < X >>> 0 ? (K + 1) | 0 : K), + (I = + ((L = I) + (X = eg(h, c, (I = T << 1), I >> 31))) | + 0), + (L = (p + K) | 0), + (L = I >>> 0 < X >>> 0 ? (L + 1) | 0 : L), + (K = eg(e, C, s, w)), + (L = (p + L) | 0), + (v = I = (K + I) | 0), + (P = L = I >>> 0 < K >>> 0 ? (L + 1) | 0 : L), + (I = L), + (M = L = (v + 33554432) | 0), + (R = I = L >>> 0 < 33554432 ? (I + 1) | 0 : I), + (L = ((L = I >> 26) + QA) | 0), + (QA = I = + ((K = ((67108863 & I) << 6) | (M >>> 26)) + Z) | 0), + (K = I >>> 0 < K >>> 0 ? (L + 1) | 0 : L), + (J = I = (I + 16777216) | 0), + (L = + ((L = + (K = I >>> 0 < 16777216 ? (K + 1) | 0 : K) >> 25) + + $) | + 0), + (L = + (I = + ((K = ((33554431 & K) << 7) | (I >>> 25)) + IA) | + 0) >>> + 0 < + K >>> 0 + ? (L + 1) | 0 + : L), + (K = I), + (I = L), + (Z = L = (K + 33554432) | 0), + (X = I = L >>> 0 < 33554432 ? (I + 1) | 0 : I), + (I = -67108864 & L), + (i[(W + 24) >> 2] = K - I), + (I = eg(o, Q, q, u)), + (L = p), + (z = eg(a, B, (W = z), (gA = W >> 31))), + (K = (p + L) | 0), + (K = + (I = (z + I) | 0) >>> 0 < z >>> 0 ? (K + 1) | 0 : K), + (L = I), + (z = I = r(T, 19)), + (I = (L + (T = eg(I, (IA = I >> 31), T, f))) | 0), + (L = (p + K) | 0), + (L = I >>> 0 < T >>> 0 ? (L + 1) | 0 : L), + (K = ((T = eg(s, w, _, l)) + I) | 0), + (I = (p + L) | 0), + (I = K >>> 0 < T >>> 0 ? (I + 1) | 0 : I), + (d = L = g << 1), + (T = eg(h, c, L, (U = L >> 31))), + (L = (p + I) | 0), + (L = + (K = (T + K) | 0) >>> 0 < T >>> 0 ? (L + 1) | 0 : L), + (I = K), + (K = eg(e, C, t, E)), + (L = (p + L) | 0), + ($ = I = (I + K) | 0), + (T = I >>> 0 < K >>> 0 ? (L + 1) | 0 : L), + (I = eg(s, w, z, IA)), + (L = p), + (W = eg(o, Q, W, gA)), + (K = (p + L) | 0), + (K = + (I = (W + I) | 0) >>> 0 < W >>> 0 ? (K + 1) | 0 : K), + (W = eg(g, n, _, l)), + (L = (p + K) | 0), + (L = + (I = (W + I) | 0) >>> 0 < W >>> 0 ? (L + 1) | 0 : L), + (K = ((W = eg(h, c, t, E)) + I) | 0), + (I = (p + L) | 0), + (I = K >>> 0 < W >>> 0 ? (I + 1) | 0 : I), + (W = eg(e, C, q, u)), + (L = (p + I) | 0), + (gA = K = (W + K) | 0), + (W = K >>> 0 < W >>> 0 ? (L + 1) | 0 : L), + (I = eg((I = r(V, 38)), I >> 31, V, k)), + (L = p), + (V = I), + (K = eg((I = BA), (K = I >> 31), I, K)), + (L = (p + L) | 0), + (L = + (I = (V + K) | 0) >>> 0 < K >>> 0 ? (L + 1) | 0 : L), + (V = eg(z, IA, d, U)), + (K = (p + L) | 0), + (K = + (I = (V + I) | 0) >>> 0 < V >>> 0 ? (K + 1) | 0 : K), + (V = eg(t, E, _, l)), + (L = (p + K) | 0), + (L = + (I = (V + I) | 0) >>> 0 < V >>> 0 ? (L + 1) | 0 : L), + (K = ((V = eg(h, c, D, y)) + I) | 0), + (I = (p + L) | 0), + (I = K >>> 0 < V >>> 0 ? (I + 1) | 0 : I), + (V = eg(a, B, e, C)), + (L = (p + I) | 0), + (z = K = (V + K) | 0), + (IA = L = K >>> 0 < V >>> 0 ? (L + 1) | 0 : L), + (BA = I = (K + 33554432) | 0), + (x = L = I >>> 0 < 33554432 ? (L + 1) | 0 : L), + (K = ((I = L >> 26) + W) | 0), + (W = L = + ((V = ((67108863 & L) << 6) | (BA >>> 26)) + gA) | 0), + (L = L >>> 0 < V >>> 0 ? (K + 1) | 0 : K), + (gA = I = (W + 16777216) | 0), + (V = + ((33554431 & + (L = I >>> 0 < 16777216 ? (L + 1) | 0 : L)) << + 7) | + (I >>> 25)), + (L = ((L >> 25) + T) | 0), + (L = + (K = (V + $) | 0) >>> 0 < V >>> 0 ? (L + 1) | 0 : L), + (T = K = ((I = K) + 33554432) | 0), + (V = L = K >>> 0 < 33554432 ? (L + 1) | 0 : L), + (L = -67108864 & K), + (i[(A + 8) >> 2] = I - L), + (I = eg(D, y, N, k)), + (L = p), + (K = eg(g, n, t, E)), + (L = (p + L) | 0), + (L = + (I = (K + I) | 0) >>> 0 < K >>> 0 ? (L + 1) | 0 : L), + (K = eg(a, B, F, f)), + (L = (p + L) | 0), + (L = + (I = (K + I) | 0) >>> 0 < K >>> 0 ? (L + 1) | 0 : L), + (K = eg(o, Q, O, m)), + (L = (p + L) | 0), + (L = + (I = (K + I) | 0) >>> 0 < K >>> 0 ? (L + 1) | 0 : L), + (K = (($ = eg(e, C, Y, G)) + I) | 0), + (I = (p + L) | 0), + (L = X >> 26), + (X = + ((Z = ((67108863 & X) << 6) | (Z >>> 26)) + K) | 0), + (K = + ((I = K >>> 0 < $ >>> 0 ? (I + 1) | 0 : I) + L) | 0), + (L = K = X >>> 0 < Z >>> 0 ? (K + 1) | 0 : K), + (Z = K = ((I = X) + 16777216) | 0), + (X = L = K >>> 0 < 16777216 ? (L + 1) | 0 : L), + (L = -33554432 & K), + (i[(A + 28) >> 2] = I - L), + (I = eg(o, Q, j, H)), + (K = p), + (L = ((q = eg(a, B, q, u)) + I) | 0), + (I = (p + K) | 0), + (I = L >>> 0 < q >>> 0 ? (I + 1) | 0 : I), + (q = eg(F, f, _, l)), + (K = (p + I) | 0), + (K = + (L = (q + L) | 0) >>> 0 < q >>> 0 ? (K + 1) | 0 : K), + (I = ((q = eg(h, c, s, w)) + L) | 0), + (L = (p + K) | 0), + (L = I >>> 0 < q >>> 0 ? (L + 1) | 0 : L), + (K = eg(e, C, g, n)), + (L = (p + L) | 0), + (L = + ((L = + (I = (K + I) | 0) >>> 0 < K >>> 0 + ? (L + 1) | 0 + : L) + + (K = V >> 26)) | + 0), + (K = I = + ((V = ((67108863 & V) << 6) | (T >>> 26)) + I) | 0), + (I = L = I >>> 0 < V >>> 0 ? (L + 1) | 0 : L), + (T = L = (K + 16777216) | 0), + (V = I = L >>> 0 < 16777216 ? (I + 1) | 0 : I), + (I = -33554432 & L), + (i[(A + 12) >> 2] = K - I), + (q = A), + (I = eg(F, f, D, y)), + (L = p), + (K = eg(g, n, g, n)), + (L = (p + L) | 0), + (L = + (I = (K + I) | 0) >>> 0 < K >>> 0 ? (L + 1) | 0 : L), + (K = eg(t, E, s, w)), + (L = (p + L) | 0), + (L = + (I = (K + I) | 0) >>> 0 < K >>> 0 ? (L + 1) | 0 : L), + (K = ((j = eg(a, B, S, b)) + I) | 0), + (I = (p + L) | 0), + (I = K >>> 0 < j >>> 0 ? (I + 1) | 0 : I), + (L = ((j = eg(o, Q, Y, G)) + K) | 0), + (K = (p + I) | 0), + (K = L >>> 0 < j >>> 0 ? (K + 1) | 0 : K), + (I = + ((AA = eg(e, C, (j = AA), ($ = j >> 31))) + L) | 0), + (L = (p + K) | 0), + (L = I >>> 0 < AA >>> 0 ? (L + 1) | 0 : L), + (A = I), + (L = ((I = X >> 25) + L) | 0), + (L = + (K = + (A + (X = ((33554431 & X) << 7) | (Z >>> 25))) | + 0) >>> + 0 < + X >>> 0 + ? (L + 1) | 0 + : L), + (AA = K = ((I = K) + 33554432) | 0), + (X = L = K >>> 0 < 33554432 ? (L + 1) | 0 : L), + (L = -67108864 & K), + (i[(q + 32) >> 2] = I - L), + (L = V >> 25), + (K = + ((V = ((33554431 & V) << 7) | (T >>> 25)) + + ((v - (I = -67108864 & M)) | 0)) | + 0), + (I = + (L + ((P - (((I >>> 0 > v >>> 0) + R) | 0)) | 0)) | + 0), + (L = I = K >>> 0 < V >>> 0 ? (I + 1) | 0 : I), + (V = I = (K + 33554432) | 0), + (I = + ((((67108863 & + (L = I >>> 0 < 33554432 ? (L + 1) | 0 : L)) << + 6) | + (I >>> 26)) + + (QA = (QA - (-33554432 & J)) | 0)) | + 0), + (i[(q + 20) >> 2] = I), + (I = -67108864 & V), + (i[(q + 16) >> 2] = K - I), + (V = q), + (I = eg(t, E, F, f)), + (K = p), + (L = ((q = eg(N, k, d, U)) + I) | 0), + (I = (p + K) | 0), + (I = L >>> 0 < q >>> 0 ? (I + 1) | 0 : I), + (K = ((q = eg(D, y, O, m)) + L) | 0), + (L = (p + I) | 0), + (L = K >>> 0 < q >>> 0 ? (L + 1) | 0 : L), + (I = ((q = eg(a, B, Y, G)) + K) | 0), + (K = (p + L) | 0), + (K = I >>> 0 < q >>> 0 ? (K + 1) | 0 : K), + (q = eg(o, Q, j, $)), + (L = (p + K) | 0), + (K = I = (q + I) | 0), + (L = + ((I = I >>> 0 < q >>> 0 ? (L + 1) | 0 : L) + + (L = X >> 26)) | + 0), + (L = + (K = + ((X = ((67108863 & X) << 6) | (AA >>> 26)) + K) | + 0) >>> + 0 < + X >>> 0 + ? (L + 1) | 0 + : L), + (X = K), + (I = L), + (I = + (L = (K + 16777216) | 0) >>> 0 < 16777216 + ? (I + 1) | 0 + : I), + (K = -33554432 & L), + (i[(V + 36) >> 2] = X - K), + (q = eg( + ((33554431 & I) << 7) | (L >>> 25), + I >> 25, + 19, + 0 + )), + (L = + (p + + ((IA - + ((((K = -67108864 & BA) >>> 0 > z >>> 0) + x) | + 0)) | + 0)) | + 0), + (K = I = (q + ((z - K) | 0)) | 0), + (I = I >>> 0 < q >>> 0 ? (L + 1) | 0 : L), + (I = + (((W - (-33554432 & gA)) | 0) + + (((67108863 & + (I = + (L = (K + 33554432) | 0) >>> 0 < 33554432 + ? (I + 1) | 0 + : I)) << + 6) | + (L >>> 26))) | + 0), + (i[(V + 4) >> 2] = I), + (A = -67108864 & L), + (i[V >> 2] = K - A) + } + function Y(A, I, g) { + var B, + Q = 0, + C = 0, + E = 0, + n = 0, + a = 0, + r = 0, + o = 0, + e = 0, + t = 0, + f = 0, + c = 0, + y = 0, + s = 0, + w = 0, + D = 0, + u = 0, + l = 0, + F = 0, + G = 0, + k = 0, + _ = 0, + H = 0, + Y = 0, + b = 0, + m = 0, + v = 0, + U = 0, + S = 0, + N = 0, + M = 0, + d = 0, + P = 0, + R = 0, + J = 0, + x = 0, + L = 0, + K = 0, + q = 0, + X = 0, + V = 0, + W = 0, + T = 0, + j = 0, + Z = 0, + O = 0, + z = 0, + $ = 0, + AA = 0, + IA = 0, + gA = 0, + BA = 0, + QA = 0, + CA = 0 + for ( + h = B = (h - 2048) | 0, + Yg((B + 1024) | 0, I), + QI((B + 1024) | 0, A), + Yg(B, (B + 1024) | 0), + QI(B, g), + I = 0; + (n = + i[ + (Q = f = + (((B + 1024) | 0) + (64 | (A = F << 7))) | 0) >> 2 + ]), + (e = + i[ + (E = t = (((B + 1024) | 0) + (96 | A)) | 0) >> 2 + ]), + (E = i[(E + 4) >> 2]), + (a = n), + (w = i[(Q + 4) >> 2]), + (o = e), + (Q = (A + ((B + 1024) | 0)) | 0), + (r = i[(n = (((B + 1024) | 0) + (32 | A)) | 0) >> 2]), + (e = i[(n + 4) >> 2]), + (o = ug( + o ^ (l = rI(i[Q >> 2], i[(Q + 4) >> 2], r, e)), + (C = E) ^ (E = p), + 32 + )), + (e = ug( + (a = (s = rI(a, w, o, (C = p))) ^ r), + e ^ (r = p), + 24 + )), + (P = ug( + (m = rI(l, (a = E), e, (E = p))) ^ o, + (y = p) ^ C, + 16 + )), + (E = ug( + e ^ (R = rI(s, r, P, (S = p))), + (N = p) ^ E, + 63 + )), + (e = p), + (o = + i[(r = (((B + 1024) | 0) + (104 | A)) | 0) >> 2]), + (s = i[(r + 4) >> 2]), + (H = + i[ + (C = l = (((B + 1024) | 0) + (72 | A)) | 0) >> 2 + ]), + (c = i[(C + 4) >> 2]), + (G = ug( + (G = o) ^ + (k = rI( + (u = + i[ + (C = o = + (((B + 1024) | 0) + (8 | A)) | 0) >> 2 + ]), + (w = i[(C + 4) >> 2]), + (U = + i[ + (C = (((B + 1024) | 0) + (40 | A)) | 0) >> 2 + ]), + (a = i[(C + 4) >> 2]) + )), + (w = s) ^ (s = p), + 32 + )), + (a = ug( + (c = (u = rI(H, c, G, (w = p))) ^ U), + a ^ (U = p), + 24 + )), + (V = ug( + (M = rI(k, (c = s), a, (s = p))) ^ G, + (J = p) ^ w, + 16 + )), + (s = ug( + a ^ (O = rI(u, U, V, (j = p))), + (z = p) ^ s, + 63 + )), + (a = p), + (G = + i[ + (k = U = (((B + 1024) | 0) + (112 | A)) | 0) >> 2 + ]), + (u = i[(k + 4) >> 2]), + (v = i[(k = (((B + 1024) | 0) + (80 | A)) | 0) >> 2]), + (D = i[(k + 4) >> 2]), + (H = G), + (G = (((B + 1024) | 0) + (16 | A)) | 0), + (Y = + i[ + (b = w = (((B + 1024) | 0) + (48 | A)) | 0) >> 2 + ]), + (b = i[(b + 4) >> 2]), + (H = ug( + H ^ (d = rI(i[G >> 2], i[(G + 4) >> 2], Y, b)), + (c = u) ^ (u = p), + 32 + )), + (b = ug( + (D = (c = rI(v, D, H, (_ = p))) ^ Y), + b ^ (Y = p), + 24 + )), + (IA = ug( + ($ = rI(d, (D = u), b, (u = p))) ^ H, + (AA = p) ^ _, + 16 + )), + (u = ug( + b ^ (W = rI(c, Y, IA, (gA = p))), + (q = p) ^ u, + 63 + )), + (b = p), + (H = + i[(Y = (((B + 1024) | 0) + (120 | A)) | 0) >> 2]), + (_ = i[(Y + 4) >> 2]), + (BA = + i[ + (c = d = (((B + 1024) | 0) + (88 | A)) | 0) >> 2 + ]), + (X = i[(c + 4) >> 2]), + (L = ug( + (v = H) ^ + (T = rI( + (Z = + i[ + (c = H = + (((B + 1024) | 0) + (24 | A)) | 0) >> 2 + ]), + (D = i[(c + 4) >> 2]), + (x = + i[ + (A = (((B + 1024) | 0) + (56 | A)) | 0) >> 2 + ]), + (c = i[(A + 4) >> 2]) + )), + (D = _) ^ (_ = p), + 32 + )), + (c = ug( + (D = (X = rI(BA, X, L, (K = p))) ^ x), + c ^ (x = p), + 24 + )), + (v = x), + (L = ug( + (x = rI(T, (D = _), c, (_ = p))) ^ L, + (T = p) ^ K, + 16 + )), + (_ = ug( + c ^ (X = rI(X, v, L, (K = p))), + (Z = p) ^ _, + 63 + )), + (c = p), + (v = W), + (D = q), + (W = ug(L ^ (m = rI(m, y, s, a)), K ^ (y = p), 32)), + (s = ug( + (L = rI(v, D, W, (q = p))) ^ s, + (K = p) ^ a, + 24 + )), + (a = rI((a = m), y, s, (m = p))), + (y = p), + (i[Q >> 2] = a), + (i[(Q + 4) >> 2] = y), + (Q = ug(a ^ W, q ^ y, 16)), + (a = p), + (i[Y >> 2] = Q), + (i[(Y + 4) >> 2] = a), + (Q = rI(L, K, Q, a)), + (a = p), + (i[k >> 2] = Q), + (i[(k + 4) >> 2] = a), + (QA = C), + (CA = ug(Q ^ s, a ^ m, 63)), + (i[QA >> 2] = CA), + (i[(C + 4) >> 2] = p), + (y = u), + (a = ug(P ^ (C = rI(M, J, u, b)), S ^ (s = p), 32)), + (Q = ug( + y ^ (u = rI(X, Z, a, (k = p))), + (Q = b) ^ (b = p), + 24 + )), + (C = rI(C, (y = s), Q, (s = p))), + (Y = p), + (i[o >> 2] = C), + (i[(o + 4) >> 2] = Y), + (o = ug(C ^ a, k ^ Y, 16)), + (C = p), + (i[t >> 2] = o), + (i[(t + 4) >> 2] = C), + (t = rI(u, b, o, C)), + (i[d >> 2] = t), + (o = p), + (i[(d + 4) >> 2] = o), + (QA = w), + (CA = ug(Q ^ t, o ^ s, 63)), + (i[QA >> 2] = CA), + (i[(w + 4) >> 2] = p), + (Q = rI($, AA, _, c)), + (a = rI( + R, + N, + (C = ug(V ^ Q, j ^ (o = p), 32)), + (s = p) + )), + (Q = rI( + Q, + (w = o), + (t = ug(a ^ _, (k = p) ^ c, 24)), + (o = p) + )), + (u = w = p), + (i[G >> 2] = Q), + (i[(G + 4) >> 2] = u), + (Q = ug(Q ^ C, s ^ u, 16)), + (C = p), + (i[r >> 2] = Q), + (i[(r + 4) >> 2] = C), + (Q = rI(a, k, Q, C)), + (i[f >> 2] = Q), + (C = f), + (f = p), + (i[(C + 4) >> 2] = f), + (QA = A), + (CA = ug(Q ^ t, f ^ o, 63)), + (i[QA >> 2] = CA), + (i[(A + 4) >> 2] = p), + (C = E), + (Q = ug(IA ^ (f = rI(x, T, E, e)), gA ^ (t = p), 32)), + (A = ug( + C ^ (r = rI(O, z, Q, (E = p))), + (A = e) ^ (e = p), + 24 + )), + (f = rI(f, (C = t), A, (t = p))), + (C = o = p), + (i[H >> 2] = f), + (i[(H + 4) >> 2] = C), + (f = ug(Q ^ f, E ^ C, 16)), + (Q = p), + (i[U >> 2] = f), + (i[(U + 4) >> 2] = Q), + (f = rI(r, e, f, Q)), + (i[l >> 2] = f), + (Q = p), + (i[(l + 4) >> 2] = Q), + (QA = n), + (CA = ug(A ^ f, Q ^ t, 63)), + (i[QA >> 2] = CA), + (i[(n + 4) >> 2] = p), + 8 != (0 | (F = (F + 1) | 0)); + + ); + for ( + ; + (F = + i[ + (768 + + (A = ((t = I << 4) + ((B + 1024) | 0)) | 0)) >> + 2 + ]), + (f = i[(A + 772) >> 2]), + (a = i[(Q = (A + 512) | 0) >> 2]), + (o = i[(Q + 4) >> 2]), + (C = F), + (F = i[(A + 256) >> 2]), + (Q = i[(A + 260) >> 2]), + (E = ug( + C ^ (n = rI(i[A >> 2], i[(A + 4) >> 2], F, Q)), + (E = f) ^ (f = p), + 32 + )), + (Q = ug( + (C = (r = rI(a, o, E, (e = p))) ^ F), + Q ^ (F = p), + 24 + )), + (w = F), + (s = ug( + (o = rI(n, f, Q, (F = p))) ^ E, + (C = p) ^ e, + 16 + )), + (F = ug( + Q ^ (U = rI(r, w, s, (a = p))), + (k = p) ^ F, + 63 + )), + (f = p), + (Q = i[(A + 780) >> 2]), + (u = i[(A + 520) >> 2]), + (y = i[(A + 524) >> 2]), + (r = ug( + (G = i[(A + 776) >> 2]) ^ + (e = rI( + (w = + i[ + (n = t = + (((B + 1024) | 0) + (8 | t)) | 0) >> 2 + ]), + (e = i[(n + 4) >> 2]), + (n = i[(A + 264) >> 2]), + (E = i[(A + 268) >> 2]) + )), + (w = Q) ^ (Q = p), + 32 + )), + (E = ug( + (w = (G = rI(u, y, r, (l = p))) ^ n), + E ^ (n = p), + 24 + )), + (y = G), + (u = ug( + (G = rI(e, (w = Q), E, (Q = p))) ^ r, + (w = p) ^ l, + 16 + )), + (Q = ug( + E ^ (Y = rI(y, n, u, (b = p))), + (d = p) ^ Q, + 63 + )), + (n = p), + (E = i[(A + 900) >> 2]), + (D = i[(A + 640) >> 2]), + (m = i[(A + 644) >> 2]), + (c = i[(A + 896) >> 2]), + (e = i[(A + 384) >> 2]), + (r = i[(A + 388) >> 2]), + (H = ug( + c ^ + (l = rI( + i[(A + 128) >> 2], + i[(A + 132) >> 2], + e, + r + )), + (y = E) ^ (E = p), + 32 + )), + (r = ug( + (y = (c = rI(D, m, H, (_ = p))) ^ e), + r ^ (e = p), + 24 + )), + (D = c), + (c = ug( + (c = H) ^ (H = rI(l, (y = E), r, (E = p))), + (y = _) ^ (_ = p), + 16 + )), + (E = ug( + r ^ (y = rI(D, e, c, (m = p))), + (P = p) ^ E, + 63 + )), + (e = p), + (r = i[(A + 908) >> 2]), + (q = i[(A + 648) >> 2]), + (j = i[(A + 652) >> 2]), + (v = i[(A + 904) >> 2]), + (l = i[(A + 392) >> 2]), + (S = i[(A + 396) >> 2]), + (N = ug( + v ^ + (R = rI( + i[(A + 136) >> 2], + i[(A + 140) >> 2], + l, + S + )), + (D = r) ^ (r = p), + 32 + )), + (v = S = + ug( + (D = (J = rI(q, j, N, (M = p))) ^ l), + S ^ (l = p), + 24 + )), + (N = ug( + (S = rI(R, (D = r), S, (r = p))) ^ N, + (R = p) ^ M, + 16 + )), + (r = ug( + v ^ (J = rI(J, l, N, (M = p))), + (V = p) ^ r, + 63 + )), + (l = p), + (v = y), + (D = P), + (y = ug(N ^ (o = rI(o, C, Q, n)), M ^ (C = p), 32)), + (Q = ug( + (N = rI(v, D, y, (P = p))) ^ Q, + (M = p) ^ n, + 24 + )), + (n = rI((n = o), C, Q, (o = p))), + (C = p), + (i[A >> 2] = n), + (i[(A + 4) >> 2] = C), + (n = ug(n ^ y, P ^ C, 16)), + (C = p), + (i[(A + 904) >> 2] = n), + (i[(A + 908) >> 2] = C), + (n = rI(N, M, n, C)), + (C = p), + (i[(A + 640) >> 2] = n), + (i[(A + 644) >> 2] = C), + (QA = A), + (CA = ug(Q ^ n, o ^ C, 63)), + (i[(QA + 264) >> 2] = CA), + (i[(A + 268) >> 2] = p), + (y = E), + (n = rI(G, w, E, e)), + (s = rI( + J, + V, + (o = ug(s ^ n, a ^ (E = p), 32)), + (C = p) + )), + (n = rI( + n, + (a = E), + (Q = ug(y ^ s, (Q = e) ^ (e = p), 24)), + (E = p) + )), + (a = p), + (i[t >> 2] = n), + (i[(t + 4) >> 2] = a), + (t = ug(n ^ o, C ^ a, 16)), + (n = p), + (i[(A + 768) >> 2] = t), + (i[(A + 772) >> 2] = n), + (t = rI(s, e, t, n)), + (i[(A + 648) >> 2] = t), + (n = p), + (i[(A + 652) >> 2] = n), + (QA = A), + (CA = ug(Q ^ t, n ^ E, 63)), + (i[(QA + 384) >> 2] = CA), + (i[(A + 388) >> 2] = p), + (o = r), + (E = ug(u ^ (Q = rI(H, _, r, l)), b ^ (n = p), 32)), + (t = ug( + o ^ (r = rI(U, k, E, (e = p))), + (C = l) ^ (l = p), + 24 + )), + (Q = rI(Q, (C = n), t, (n = p))), + (C = o = p), + (i[(A + 128) >> 2] = Q), + (i[(A + 132) >> 2] = C), + (Q = ug(Q ^ E, C ^ e, 16)), + (E = p), + (i[(A + 776) >> 2] = Q), + (i[(A + 780) >> 2] = E), + (Q = rI(r, l, Q, E)), + (i[(A + 512) >> 2] = Q), + (E = p), + (i[(A + 516) >> 2] = E), + (QA = A), + (CA = ug(Q ^ t, n ^ E, 63)), + (i[(QA + 392) >> 2] = CA), + (i[(A + 396) >> 2] = p), + (t = rI(S, R, F, f)), + (e = rI( + Y, + d, + (n = ug(c ^ t, m ^ (Q = p), 32)), + (E = p) + )), + (f = rI( + (C = t), + Q, + (F = ug(e ^ F, (r = p) ^ f, 24)), + (t = p) + )), + (Q = p), + (i[(A + 136) >> 2] = f), + (i[(A + 140) >> 2] = Q), + (f = ug(n ^ f, E ^ Q, 16)), + (Q = p), + (i[(A + 896) >> 2] = f), + (i[(A + 900) >> 2] = Q), + (f = rI(e, r, f, Q)), + (i[(A + 520) >> 2] = f), + (Q = p), + (i[(A + 524) >> 2] = Q), + (QA = A), + (CA = ug(f ^ F, Q ^ t, 63)), + (i[(QA + 256) >> 2] = CA), + (i[(A + 260) >> 2] = p), + 8 != (0 | (I = (I + 1) | 0)); + + ); + Yg(g, B), QI(g, (B + 1024) | 0), (h = (B + 2048) | 0) + } + function b(A, I, g) { + var B, + Q = 0, + C = 0, + E = 0, + n = 0, + a = 0, + r = 0, + o = 0, + e = 0, + t = 0, + f = 0, + c = 0, + y = 0, + s = 0, + w = 0, + D = 0, + u = 0, + l = 0, + F = 0, + G = 0, + k = 0, + _ = 0, + H = 0, + Y = 0, + b = 0, + m = 0, + v = 0, + U = 0, + S = 0, + N = 0, + M = 0, + d = 0, + P = 0, + R = 0, + J = 0, + x = 0, + L = 0, + K = 0, + q = 0, + X = 0, + V = 0, + W = 0, + T = 0, + j = 0, + Z = 0, + O = 0, + z = 0, + $ = 0, + AA = 0, + IA = 0, + gA = 0, + BA = 0, + QA = 0, + CA = 0 + for ( + h = B = (h - 2048) | 0, + Yg((B + 1024) | 0, I), + QI((B + 1024) | 0, A), + Yg(B, (B + 1024) | 0), + I = 0; + (n = + i[ + (Q = f = + (((B + 1024) | 0) + (64 | (A = F << 7))) | 0) >> 2 + ]), + (e = + i[ + (E = t = (((B + 1024) | 0) + (96 | A)) | 0) >> 2 + ]), + (E = i[(E + 4) >> 2]), + (a = n), + (w = i[(Q + 4) >> 2]), + (o = e), + (Q = (A + ((B + 1024) | 0)) | 0), + (r = i[(n = (((B + 1024) | 0) + (32 | A)) | 0) >> 2]), + (e = i[(n + 4) >> 2]), + (o = ug( + o ^ (l = rI(i[Q >> 2], i[(Q + 4) >> 2], r, e)), + (C = E) ^ (E = p), + 32 + )), + (e = ug( + (a = (s = rI(a, w, o, (C = p))) ^ r), + e ^ (r = p), + 24 + )), + (P = ug( + (m = rI(l, (a = E), e, (E = p))) ^ o, + (y = p) ^ C, + 16 + )), + (E = ug( + e ^ (R = rI(s, r, P, (S = p))), + (N = p) ^ E, + 63 + )), + (e = p), + (o = + i[(r = (((B + 1024) | 0) + (104 | A)) | 0) >> 2]), + (s = i[(r + 4) >> 2]), + (H = + i[ + (C = l = (((B + 1024) | 0) + (72 | A)) | 0) >> 2 + ]), + (c = i[(C + 4) >> 2]), + (G = ug( + (G = o) ^ + (k = rI( + (u = + i[ + (C = o = + (((B + 1024) | 0) + (8 | A)) | 0) >> 2 + ]), + (w = i[(C + 4) >> 2]), + (U = + i[ + (C = (((B + 1024) | 0) + (40 | A)) | 0) >> 2 + ]), + (a = i[(C + 4) >> 2]) + )), + (w = s) ^ (s = p), + 32 + )), + (a = ug( + (c = (u = rI(H, c, G, (w = p))) ^ U), + a ^ (U = p), + 24 + )), + (V = ug( + (M = rI(k, (c = s), a, (s = p))) ^ G, + (J = p) ^ w, + 16 + )), + (s = ug( + a ^ (O = rI(u, U, V, (j = p))), + (z = p) ^ s, + 63 + )), + (a = p), + (G = + i[ + (k = U = (((B + 1024) | 0) + (112 | A)) | 0) >> 2 + ]), + (u = i[(k + 4) >> 2]), + (v = i[(k = (((B + 1024) | 0) + (80 | A)) | 0) >> 2]), + (D = i[(k + 4) >> 2]), + (H = G), + (G = (((B + 1024) | 0) + (16 | A)) | 0), + (Y = + i[ + (b = w = (((B + 1024) | 0) + (48 | A)) | 0) >> 2 + ]), + (b = i[(b + 4) >> 2]), + (H = ug( + H ^ (d = rI(i[G >> 2], i[(G + 4) >> 2], Y, b)), + (c = u) ^ (u = p), + 32 + )), + (b = ug( + (D = (c = rI(v, D, H, (_ = p))) ^ Y), + b ^ (Y = p), + 24 + )), + (IA = ug( + ($ = rI(d, (D = u), b, (u = p))) ^ H, + (AA = p) ^ _, + 16 + )), + (u = ug( + b ^ (W = rI(c, Y, IA, (gA = p))), + (q = p) ^ u, + 63 + )), + (b = p), + (H = + i[(Y = (((B + 1024) | 0) + (120 | A)) | 0) >> 2]), + (_ = i[(Y + 4) >> 2]), + (BA = + i[ + (c = d = (((B + 1024) | 0) + (88 | A)) | 0) >> 2 + ]), + (X = i[(c + 4) >> 2]), + (L = ug( + (v = H) ^ + (T = rI( + (Z = + i[ + (c = H = + (((B + 1024) | 0) + (24 | A)) | 0) >> 2 + ]), + (D = i[(c + 4) >> 2]), + (x = + i[ + (A = (((B + 1024) | 0) + (56 | A)) | 0) >> 2 + ]), + (c = i[(A + 4) >> 2]) + )), + (D = _) ^ (_ = p), + 32 + )), + (c = ug( + (D = (X = rI(BA, X, L, (K = p))) ^ x), + c ^ (x = p), + 24 + )), + (v = x), + (L = ug( + (x = rI(T, (D = _), c, (_ = p))) ^ L, + (T = p) ^ K, + 16 + )), + (_ = ug( + c ^ (X = rI(X, v, L, (K = p))), + (Z = p) ^ _, + 63 + )), + (c = p), + (v = W), + (D = q), + (W = ug(L ^ (m = rI(m, y, s, a)), K ^ (y = p), 32)), + (s = ug( + (L = rI(v, D, W, (q = p))) ^ s, + (K = p) ^ a, + 24 + )), + (a = rI((a = m), y, s, (m = p))), + (y = p), + (i[Q >> 2] = a), + (i[(Q + 4) >> 2] = y), + (Q = ug(a ^ W, q ^ y, 16)), + (a = p), + (i[Y >> 2] = Q), + (i[(Y + 4) >> 2] = a), + (Q = rI(L, K, Q, a)), + (a = p), + (i[k >> 2] = Q), + (i[(k + 4) >> 2] = a), + (QA = C), + (CA = ug(Q ^ s, a ^ m, 63)), + (i[QA >> 2] = CA), + (i[(C + 4) >> 2] = p), + (y = u), + (a = ug(P ^ (C = rI(M, J, u, b)), S ^ (s = p), 32)), + (Q = ug( + y ^ (u = rI(X, Z, a, (k = p))), + (Q = b) ^ (b = p), + 24 + )), + (C = rI(C, (y = s), Q, (s = p))), + (Y = p), + (i[o >> 2] = C), + (i[(o + 4) >> 2] = Y), + (o = ug(C ^ a, k ^ Y, 16)), + (C = p), + (i[t >> 2] = o), + (i[(t + 4) >> 2] = C), + (t = rI(u, b, o, C)), + (i[d >> 2] = t), + (o = p), + (i[(d + 4) >> 2] = o), + (QA = w), + (CA = ug(Q ^ t, o ^ s, 63)), + (i[QA >> 2] = CA), + (i[(w + 4) >> 2] = p), + (Q = rI($, AA, _, c)), + (a = rI( + R, + N, + (C = ug(V ^ Q, j ^ (o = p), 32)), + (s = p) + )), + (Q = rI( + Q, + (w = o), + (t = ug(a ^ _, (k = p) ^ c, 24)), + (o = p) + )), + (u = w = p), + (i[G >> 2] = Q), + (i[(G + 4) >> 2] = u), + (Q = ug(Q ^ C, s ^ u, 16)), + (C = p), + (i[r >> 2] = Q), + (i[(r + 4) >> 2] = C), + (Q = rI(a, k, Q, C)), + (i[f >> 2] = Q), + (C = f), + (f = p), + (i[(C + 4) >> 2] = f), + (QA = A), + (CA = ug(Q ^ t, f ^ o, 63)), + (i[QA >> 2] = CA), + (i[(A + 4) >> 2] = p), + (C = E), + (Q = ug(IA ^ (f = rI(x, T, E, e)), gA ^ (t = p), 32)), + (A = ug( + C ^ (r = rI(O, z, Q, (E = p))), + (A = e) ^ (e = p), + 24 + )), + (f = rI(f, (C = t), A, (t = p))), + (C = o = p), + (i[H >> 2] = f), + (i[(H + 4) >> 2] = C), + (f = ug(Q ^ f, E ^ C, 16)), + (Q = p), + (i[U >> 2] = f), + (i[(U + 4) >> 2] = Q), + (f = rI(r, e, f, Q)), + (i[l >> 2] = f), + (Q = p), + (i[(l + 4) >> 2] = Q), + (QA = n), + (CA = ug(A ^ f, Q ^ t, 63)), + (i[QA >> 2] = CA), + (i[(n + 4) >> 2] = p), + 8 != (0 | (F = (F + 1) | 0)); + + ); + for ( + ; + (F = + i[ + (768 + + (A = ((t = I << 4) + ((B + 1024) | 0)) | 0)) >> + 2 + ]), + (f = i[(A + 772) >> 2]), + (a = i[(Q = (A + 512) | 0) >> 2]), + (o = i[(Q + 4) >> 2]), + (C = F), + (F = i[(A + 256) >> 2]), + (Q = i[(A + 260) >> 2]), + (E = ug( + C ^ (n = rI(i[A >> 2], i[(A + 4) >> 2], F, Q)), + (E = f) ^ (f = p), + 32 + )), + (Q = ug( + (C = (r = rI(a, o, E, (e = p))) ^ F), + Q ^ (F = p), + 24 + )), + (w = F), + (s = ug( + (o = rI(n, f, Q, (F = p))) ^ E, + (C = p) ^ e, + 16 + )), + (F = ug( + Q ^ (U = rI(r, w, s, (a = p))), + (k = p) ^ F, + 63 + )), + (f = p), + (Q = i[(A + 780) >> 2]), + (u = i[(A + 520) >> 2]), + (y = i[(A + 524) >> 2]), + (r = ug( + (G = i[(A + 776) >> 2]) ^ + (e = rI( + (w = + i[ + (n = t = + (((B + 1024) | 0) + (8 | t)) | 0) >> 2 + ]), + (e = i[(n + 4) >> 2]), + (n = i[(A + 264) >> 2]), + (E = i[(A + 268) >> 2]) + )), + (w = Q) ^ (Q = p), + 32 + )), + (E = ug( + (w = (G = rI(u, y, r, (l = p))) ^ n), + E ^ (n = p), + 24 + )), + (y = G), + (u = ug( + (G = rI(e, (w = Q), E, (Q = p))) ^ r, + (w = p) ^ l, + 16 + )), + (Q = ug( + E ^ (Y = rI(y, n, u, (b = p))), + (d = p) ^ Q, + 63 + )), + (n = p), + (E = i[(A + 900) >> 2]), + (D = i[(A + 640) >> 2]), + (m = i[(A + 644) >> 2]), + (c = i[(A + 896) >> 2]), + (e = i[(A + 384) >> 2]), + (r = i[(A + 388) >> 2]), + (H = ug( + c ^ + (l = rI( + i[(A + 128) >> 2], + i[(A + 132) >> 2], + e, + r + )), + (y = E) ^ (E = p), + 32 + )), + (r = ug( + (y = (c = rI(D, m, H, (_ = p))) ^ e), + r ^ (e = p), + 24 + )), + (D = c), + (c = ug( + (c = H) ^ (H = rI(l, (y = E), r, (E = p))), + (y = _) ^ (_ = p), + 16 + )), + (E = ug( + r ^ (y = rI(D, e, c, (m = p))), + (P = p) ^ E, + 63 + )), + (e = p), + (r = i[(A + 908) >> 2]), + (q = i[(A + 648) >> 2]), + (j = i[(A + 652) >> 2]), + (v = i[(A + 904) >> 2]), + (l = i[(A + 392) >> 2]), + (S = i[(A + 396) >> 2]), + (N = ug( + v ^ + (R = rI( + i[(A + 136) >> 2], + i[(A + 140) >> 2], + l, + S + )), + (D = r) ^ (r = p), + 32 + )), + (v = S = + ug( + (D = (J = rI(q, j, N, (M = p))) ^ l), + S ^ (l = p), + 24 + )), + (N = ug( + (S = rI(R, (D = r), S, (r = p))) ^ N, + (R = p) ^ M, + 16 + )), + (r = ug( + v ^ (J = rI(J, l, N, (M = p))), + (V = p) ^ r, + 63 + )), + (l = p), + (v = y), + (D = P), + (y = ug(N ^ (o = rI(o, C, Q, n)), M ^ (C = p), 32)), + (Q = ug( + (N = rI(v, D, y, (P = p))) ^ Q, + (M = p) ^ n, + 24 + )), + (n = rI((n = o), C, Q, (o = p))), + (C = p), + (i[A >> 2] = n), + (i[(A + 4) >> 2] = C), + (n = ug(n ^ y, P ^ C, 16)), + (C = p), + (i[(A + 904) >> 2] = n), + (i[(A + 908) >> 2] = C), + (n = rI(N, M, n, C)), + (C = p), + (i[(A + 640) >> 2] = n), + (i[(A + 644) >> 2] = C), + (QA = A), + (CA = ug(Q ^ n, o ^ C, 63)), + (i[(QA + 264) >> 2] = CA), + (i[(A + 268) >> 2] = p), + (y = E), + (n = rI(G, w, E, e)), + (s = rI( + J, + V, + (o = ug(s ^ n, a ^ (E = p), 32)), + (C = p) + )), + (n = rI( + n, + (a = E), + (Q = ug(y ^ s, (Q = e) ^ (e = p), 24)), + (E = p) + )), + (a = p), + (i[t >> 2] = n), + (i[(t + 4) >> 2] = a), + (t = ug(n ^ o, C ^ a, 16)), + (n = p), + (i[(A + 768) >> 2] = t), + (i[(A + 772) >> 2] = n), + (t = rI(s, e, t, n)), + (i[(A + 648) >> 2] = t), + (n = p), + (i[(A + 652) >> 2] = n), + (QA = A), + (CA = ug(Q ^ t, n ^ E, 63)), + (i[(QA + 384) >> 2] = CA), + (i[(A + 388) >> 2] = p), + (o = r), + (E = ug(u ^ (Q = rI(H, _, r, l)), b ^ (n = p), 32)), + (t = ug( + o ^ (r = rI(U, k, E, (e = p))), + (C = l) ^ (l = p), + 24 + )), + (Q = rI(Q, (C = n), t, (n = p))), + (C = o = p), + (i[(A + 128) >> 2] = Q), + (i[(A + 132) >> 2] = C), + (Q = ug(Q ^ E, C ^ e, 16)), + (E = p), + (i[(A + 776) >> 2] = Q), + (i[(A + 780) >> 2] = E), + (Q = rI(r, l, Q, E)), + (i[(A + 512) >> 2] = Q), + (E = p), + (i[(A + 516) >> 2] = E), + (QA = A), + (CA = ug(Q ^ t, n ^ E, 63)), + (i[(QA + 392) >> 2] = CA), + (i[(A + 396) >> 2] = p), + (t = rI(S, R, F, f)), + (e = rI( + Y, + d, + (n = ug(c ^ t, m ^ (Q = p), 32)), + (E = p) + )), + (f = rI( + (C = t), + Q, + (F = ug(e ^ F, (r = p) ^ f, 24)), + (t = p) + )), + (Q = p), + (i[(A + 136) >> 2] = f), + (i[(A + 140) >> 2] = Q), + (f = ug(n ^ f, E ^ Q, 16)), + (Q = p), + (i[(A + 896) >> 2] = f), + (i[(A + 900) >> 2] = Q), + (f = rI(e, r, f, Q)), + (i[(A + 520) >> 2] = f), + (Q = p), + (i[(A + 524) >> 2] = Q), + (QA = A), + (CA = ug(f ^ F, Q ^ t, 63)), + (i[(QA + 256) >> 2] = CA), + (i[(A + 260) >> 2] = p), + 8 != (0 | (I = (I + 1) | 0)); + + ); + Yg(g, B), QI(g, (B + 1024) | 0), (h = (B + 2048) | 0) + } + function m(A) { + var I = 0, + g = 0, + B = 0, + Q = 0, + C = 0, + E = 0, + n = 0, + r = 0, + o = 0 + A: if ((A |= 0)) { + C = + ((B = (A - 8) | 0) + + (A = -8 & (I = i[(A - 4) >> 2]))) | + 0 + I: if (!(1 & I)) { + if (!(3 & I)) break A + if ((B = (B - (I = i[B >> 2])) | 0) >>> 0 < a[8965]) + break A + if (((A = (A + I) | 0), i[8966] == (0 | B))) { + if (3 == (3 & (I = i[(C + 4) >> 2]))) + return ( + (i[8963] = A), + (i[(C + 4) >> 2] = -2 & I), + (i[(B + 4) >> 2] = 1 | A), + void (i[(A + B) >> 2] = A) + ) + } else { + if (I >>> 0 <= 255) { + if ( + ((Q = i[(B + 8) >> 2]), + (I = (I >>> 3) | 0), + (0 | (g = i[(B + 12) >> 2])) == (0 | Q)) + ) { + ;(r = 35844), + (o = i[8961] & vI(-2, I)), + (i[r >> 2] = o) + break I + } + ;(i[(Q + 12) >> 2] = g), (i[(g + 8) >> 2] = Q) + break I + } + if ( + ((n = i[(B + 24) >> 2]), + (0 | B) == (0 | (I = i[(B + 12) >> 2]))) + ) + if ( + (g = i[(Q = (B + 20) | 0) >> 2]) || + (g = i[(Q = (B + 16) | 0) >> 2]) + ) { + for ( + ; + (E = Q), + (g = i[(Q = ((I = g) + 20) | 0) >> 2]) || + ((Q = (I + 16) | 0), + (g = i[(I + 16) >> 2])); + + ); + i[E >> 2] = 0 + } else I = 0 + else + (g = i[(B + 8) >> 2]), + (i[(g + 12) >> 2] = I), + (i[(I + 8) >> 2] = g) + if (!n) break I + Q = i[(B + 28) >> 2] + g: { + if ( + i[(g = (36148 + (Q << 2)) | 0) >> 2] == + (0 | B) + ) { + if (((i[g >> 2] = I), I)) break g + ;(r = 35848), + (o = i[8962] & vI(-2, Q)), + (i[r >> 2] = o) + break I + } + if ( + ((i[ + (n + + (i[(n + 16) >> 2] == (0 | B) ? 16 : 20)) >> + 2 + ] = I), + !I) + ) + break I + } + if ( + ((i[(I + 24) >> 2] = n), + (g = i[(B + 16) >> 2]) && + ((i[(I + 16) >> 2] = g), + (i[(g + 24) >> 2] = I)), + !(g = i[(B + 20) >> 2])) + ) + break I + ;(i[(I + 20) >> 2] = g), (i[(g + 24) >> 2] = I) + } + } + if ( + !(B >>> 0 >= C >>> 0) && + 1 & (I = i[(C + 4) >> 2]) + ) { + I: { + if (!(2 & I)) { + if (i[8967] == (0 | C)) { + if ( + ((i[8967] = B), + (A = (i[8964] + A) | 0), + (i[8964] = A), + (i[(B + 4) >> 2] = 1 | A), + i[8966] != (0 | B)) + ) + break A + return (i[8963] = 0), void (i[8966] = 0) + } + if (i[8966] == (0 | C)) + return ( + (i[8966] = B), + (A = (i[8963] + A) | 0), + (i[8963] = A), + (i[(B + 4) >> 2] = 1 | A), + void (i[(A + B) >> 2] = A) + ) + A = ((-8 & I) + A) | 0 + g: if (I >>> 0 <= 255) { + if ( + ((I = (I >>> 3) | 0), + (0 | (g = i[(C + 8) >> 2])) == + (0 | (Q = i[(C + 12) >> 2]))) + ) { + ;(r = 35844), + (o = i[8961] & vI(-2, I)), + (i[r >> 2] = o) + break g + } + ;(i[(g + 12) >> 2] = Q), (i[(Q + 8) >> 2] = g) + } else { + if ( + ((n = i[(C + 24) >> 2]), + (0 | C) == (0 | (I = i[(C + 12) >> 2]))) + ) + if ( + (g = i[(Q = (C + 20) | 0) >> 2]) || + (g = i[(Q = (C + 16) | 0) >> 2]) + ) { + for ( + ; + (E = Q), + (g = + i[(Q = ((I = g) + 20) | 0) >> 2]) || + ((Q = (I + 16) | 0), + (g = i[(I + 16) >> 2])); + + ); + i[E >> 2] = 0 + } else I = 0 + else + (g = i[(C + 8) >> 2]), + (i[(g + 12) >> 2] = I), + (i[(I + 8) >> 2] = g) + if (n) { + Q = i[(C + 28) >> 2] + B: { + if ( + i[(g = (36148 + (Q << 2)) | 0) >> 2] == + (0 | C) + ) { + if (((i[g >> 2] = I), I)) break B + ;(r = 35848), + (o = i[8962] & vI(-2, Q)), + (i[r >> 2] = o) + break g + } + if ( + ((i[ + (n + + (i[(n + 16) >> 2] == (0 | C) + ? 16 + : 20)) >> + 2 + ] = I), + !I) + ) + break g + } + ;(i[(I + 24) >> 2] = n), + (g = i[(C + 16) >> 2]) && + ((i[(I + 16) >> 2] = g), + (i[(g + 24) >> 2] = I)), + (g = i[(C + 20) >> 2]) && + ((i[(I + 20) >> 2] = g), + (i[(g + 24) >> 2] = I)) + } + } + if ( + ((i[(B + 4) >> 2] = 1 | A), + (i[(A + B) >> 2] = A), + i[8966] != (0 | B)) + ) + break I + return void (i[8963] = A) + } + ;(i[(C + 4) >> 2] = -2 & I), + (i[(B + 4) >> 2] = 1 | A), + (i[(A + B) >> 2] = A) + } + if (A >>> 0 <= 255) + return ( + (I = (35884 + ((A = (A >>> 3) | 0) << 3)) | 0), + (g = i[8961]) & (A = 1 << A) + ? (A = i[(I + 8) >> 2]) + : ((i[8961] = A | g), (A = I)), + (i[(I + 8) >> 2] = B), + (i[(A + 12) >> 2] = B), + (i[(B + 12) >> 2] = I), + void (i[(B + 8) >> 2] = A) + ) + ;(Q = 31), + (i[(B + 16) >> 2] = 0), + (i[(B + 20) >> 2] = 0), + A >>> 0 <= 16777215 && + ((I = (A >>> 8) | 0), + (I <<= E = ((I + 1048320) >>> 16) & 8), + (Q = + (28 + + (((I = + (((((I <<= Q = ((I + 520192) >>> 16) & 4) << + (g = ((I + 245760) >>> 16) & 2)) >>> + 15) | + 0) - + (g | Q | E)) | + 0) << + 1) | + ((A >>> (I + 21)) & 1))) | + 0)), + (i[(B + 28) >> 2] = Q), + (E = (36148 + (Q << 2)) | 0) + I: { + g: { + if ((g = i[8962]) & (I = 1 << Q)) { + for ( + Q = + A << + (31 == (0 | Q) + ? 0 + : (25 - ((Q >>> 1) | 0)) | 0), + I = i[E >> 2]; + ; + + ) { + if ( + ((g = I), (-8 & i[(I + 4) >> 2]) == (0 | A)) + ) + break g + if ( + ((I = (Q >>> 29) | 0), + (Q <<= 1), + !(I = + i[(16 + (E = (g + (4 & I)) | 0)) >> 2])) + ) + break + } + ;(i[(E + 16) >> 2] = B), (i[(B + 24) >> 2] = g) + } else + (i[8962] = I | g), + (i[E >> 2] = B), + (i[(B + 24) >> 2] = E) + ;(i[(B + 12) >> 2] = B), (i[(B + 8) >> 2] = B) + break I + } + ;(A = i[(g + 8) >> 2]), + (i[(A + 12) >> 2] = B), + (i[(g + 8) >> 2] = B), + (i[(B + 24) >> 2] = 0), + (i[(B + 12) >> 2] = g), + (i[(B + 8) >> 2] = A) + } + ;(A = (i[8969] - 1) | 0), (i[8969] = A || -1) + } + } + } + function v(A, I) { + var g, + B = 0, + Q = 0, + C = 0, + E = 0, + n = 0, + a = 0, + r = 0 + g = (A + I) | 0 + A: { + I: if (!(1 & (B = i[(A + 4) >> 2]))) { + if (!(3 & B)) break A + if ( + ((I = ((B = i[A >> 2]) + I) | 0), + (0 | (A = (A - B) | 0)) == i[8966]) + ) { + if (3 == (3 & (B = i[(g + 4) >> 2]))) + return ( + (i[8963] = I), + (i[(g + 4) >> 2] = -2 & B), + (i[(A + 4) >> 2] = 1 | I), + void (i[g >> 2] = I) + ) + } else { + if (B >>> 0 <= 255) { + if ( + ((C = i[(A + 8) >> 2]), + (B = (B >>> 3) | 0), + (0 | (Q = i[(A + 12) >> 2])) == (0 | C)) + ) { + ;(a = 35844), + (r = i[8961] & vI(-2, B)), + (i[a >> 2] = r) + break I + } + ;(i[(C + 12) >> 2] = Q), (i[(Q + 8) >> 2] = C) + break I + } + if ( + ((n = i[(A + 24) >> 2]), + (0 | (B = i[(A + 12) >> 2])) == (0 | A)) + ) + if ( + (Q = i[(C = (A + 20) | 0) >> 2]) || + (Q = i[(C = (A + 16) | 0) >> 2]) + ) { + for ( + ; + (E = C), + (Q = i[(C = ((B = Q) + 20) | 0) >> 2]) || + ((C = (B + 16) | 0), + (Q = i[(B + 16) >> 2])); + + ); + i[E >> 2] = 0 + } else B = 0 + else + (Q = i[(A + 8) >> 2]), + (i[(Q + 12) >> 2] = B), + (i[(B + 8) >> 2] = Q) + if (!n) break I + C = i[(A + 28) >> 2] + g: { + if ( + i[(Q = (36148 + (C << 2)) | 0) >> 2] == + (0 | A) + ) { + if (((i[Q >> 2] = B), B)) break g + ;(a = 35848), + (r = i[8962] & vI(-2, C)), + (i[a >> 2] = r) + break I + } + if ( + ((i[ + (n + + (i[(n + 16) >> 2] == (0 | A) ? 16 : 20)) >> + 2 + ] = B), + !B) + ) + break I + } + if ( + ((i[(B + 24) >> 2] = n), + (Q = i[(A + 16) >> 2]) && + ((i[(B + 16) >> 2] = Q), + (i[(Q + 24) >> 2] = B)), + !(Q = i[(A + 20) >> 2])) + ) + break I + ;(i[(B + 20) >> 2] = Q), (i[(Q + 24) >> 2] = B) + } + } + I: { + if (!(2 & (B = i[(g + 4) >> 2]))) { + if (i[8967] == (0 | g)) { + if ( + ((i[8967] = A), + (I = (i[8964] + I) | 0), + (i[8964] = I), + (i[(A + 4) >> 2] = 1 | I), + i[8966] != (0 | A)) + ) + break A + return (i[8963] = 0), void (i[8966] = 0) + } + if (i[8966] == (0 | g)) + return ( + (i[8966] = A), + (I = (i[8963] + I) | 0), + (i[8963] = I), + (i[(A + 4) >> 2] = 1 | I), + void (i[(A + I) >> 2] = I) + ) + I = ((-8 & B) + I) | 0 + g: if (B >>> 0 <= 255) { + if ( + ((C = i[(g + 8) >> 2]), + (B = (B >>> 3) | 0), + (0 | (Q = i[(g + 12) >> 2])) == (0 | C)) + ) { + ;(a = 35844), + (r = i[8961] & vI(-2, B)), + (i[a >> 2] = r) + break g + } + ;(i[(C + 12) >> 2] = Q), (i[(Q + 8) >> 2] = C) + } else { + if ( + ((n = i[(g + 24) >> 2]), + (0 | g) == (0 | (B = i[(g + 12) >> 2]))) + ) + if ( + (C = i[(Q = (g + 20) | 0) >> 2]) || + (C = i[(Q = (g + 16) | 0) >> 2]) + ) { + for ( + ; + (E = Q), + (C = i[(Q = ((B = C) + 20) | 0) >> 2]) || + ((Q = (B + 16) | 0), + (C = i[(B + 16) >> 2])); + + ); + i[E >> 2] = 0 + } else B = 0 + else + (Q = i[(g + 8) >> 2]), + (i[(Q + 12) >> 2] = B), + (i[(B + 8) >> 2] = Q) + if (n) { + C = i[(g + 28) >> 2] + B: { + if ( + i[(Q = (36148 + (C << 2)) | 0) >> 2] == + (0 | g) + ) { + if (((i[Q >> 2] = B), B)) break B + ;(a = 35848), + (r = i[8962] & vI(-2, C)), + (i[a >> 2] = r) + break g + } + if ( + ((i[ + (n + + (i[(n + 16) >> 2] == (0 | g) + ? 16 + : 20)) >> + 2 + ] = B), + !B) + ) + break g + } + ;(i[(B + 24) >> 2] = n), + (Q = i[(g + 16) >> 2]) && + ((i[(B + 16) >> 2] = Q), + (i[(Q + 24) >> 2] = B)), + (Q = i[(g + 20) >> 2]) && + ((i[(B + 20) >> 2] = Q), + (i[(Q + 24) >> 2] = B)) + } + } + if ( + ((i[(A + 4) >> 2] = 1 | I), + (i[(A + I) >> 2] = I), + i[8966] != (0 | A)) + ) + break I + return void (i[8963] = I) + } + ;(i[(g + 4) >> 2] = -2 & B), + (i[(A + 4) >> 2] = 1 | I), + (i[(A + I) >> 2] = I) + } + if (I >>> 0 <= 255) + return ( + (B = (35884 + ((I = (I >>> 3) | 0) << 3)) | 0), + (Q = i[8961]) & (I = 1 << I) + ? (I = i[(B + 8) >> 2]) + : ((i[8961] = I | Q), (I = B)), + (i[(B + 8) >> 2] = A), + (i[(I + 12) >> 2] = A), + (i[(A + 12) >> 2] = B), + void (i[(A + 8) >> 2] = I) + ) + ;(C = 31), + (i[(A + 16) >> 2] = 0), + (i[(A + 20) >> 2] = 0), + I >>> 0 <= 16777215 && + ((B = (I >>> 8) | 0), + (B <<= E = ((B + 1048320) >>> 16) & 8), + (C = + (28 + + (((B = + (((((B <<= C = ((B + 520192) >>> 16) & 4) << + (Q = ((B + 245760) >>> 16) & 2)) >>> + 15) | + 0) - + (Q | C | E)) | + 0) << + 1) | + ((I >>> (B + 21)) & 1))) | + 0)), + (i[(A + 28) >> 2] = C), + (E = (36148 + (C << 2)) | 0) + I: { + if ((Q = i[8962]) & (B = 1 << C)) { + for ( + C = + I << + (31 == (0 | C) + ? 0 + : (25 - ((C >>> 1) | 0)) | 0), + B = i[E >> 2]; + ; + + ) { + if (((Q = B), (-8 & i[(B + 4) >> 2]) == (0 | I))) + break I + if ( + ((B = (C >>> 29) | 0), + (C <<= 1), + !(B = i[(16 + (E = (Q + (4 & B)) | 0)) >> 2])) + ) + break + } + ;(i[(E + 16) >> 2] = A), (i[(A + 24) >> 2] = Q) + } else + (i[8962] = B | Q), + (i[E >> 2] = A), + (i[(A + 24) >> 2] = E) + return ( + (i[(A + 12) >> 2] = A), void (i[(A + 8) >> 2] = A) + ) + } + ;(I = i[(Q + 8) >> 2]), + (i[(I + 12) >> 2] = A), + (i[(Q + 8) >> 2] = A), + (i[(A + 24) >> 2] = 0), + (i[(A + 12) >> 2] = Q), + (i[(A + 8) >> 2] = I) + } + } + function U(A, I, g, B, Q) { + var E, + a, + r, + o, + e, + t, + f, + c, + y, + s, + w, + D, + u, + p, + l, + F = 0, + G = 0, + k = 0, + _ = 0, + H = 0, + Y = 0, + b = 0, + m = 0, + v = 0, + U = 0, + S = 0, + N = 0, + M = 0, + d = 0, + P = 0, + R = 0, + J = 0, + x = 0, + L = 0, + K = 0, + q = 0, + X = 0, + V = 0, + W = 0, + T = 0, + j = 0, + Z = 0, + O = 0, + z = 0, + $ = 0, + AA = 0, + IA = 0, + gA = 0, + BA = 0 + for ( + h = E = (h + -64) | 0, + a = i[(A + 60) >> 2], + r = i[(A + 56) >> 2], + K = i[(A + 52) >> 2], + x = i[(A + 48) >> 2], + o = i[(A + 44) >> 2], + e = i[(A + 40) >> 2], + t = i[(A + 36) >> 2], + f = i[(A + 32) >> 2], + c = i[(A + 28) >> 2], + y = i[(A + 24) >> 2], + s = i[(A + 20) >> 2], + w = i[(A + 16) >> 2], + D = i[(A + 12) >> 2], + u = i[(A + 8) >> 2], + p = i[(A + 4) >> 2], + l = i[A >> 2]; + ; + + ) { + if ((!Q & (B >>> 0 > 63)) | Q) k = g + else { + if (((_ = 0), (k = F = EA(E, 0, 64)), B | Q)) + for ( + ; + (C[(F + _) | 0] = n[(I + _) | 0]), + (!Q & ((_ = (_ + 1) | 0) >>> 0 < B >>> 0)) | Q; + + ); + ;(I = k), (V = g) + } + for ( + q = 20, + m = l, + v = p, + U = u, + S = D, + _ = w, + F = s, + g = y, + N = c, + H = f, + Y = t, + M = e, + d = a, + P = r, + G = K, + R = x, + L = o; + (b = _), + (m = Hg((_ = (_ + m) | 0) ^ R, 16)), + (R = Hg(b ^ (H = (m + H) | 0), 12)), + (b = H), + (H = Hg((H = m) ^ (m = (_ + R) | 0), 8)), + (_ = Hg(R ^ (J = (b + H) | 0), 7)), + (b = F), + (v = Hg((F = (F + v) | 0) ^ G, 16)), + (G = Hg(b ^ (Y = (v + Y) | 0), 12)), + (b = Y), + (Y = Hg((Y = v) ^ (v = (F + G) | 0), 8)), + (F = Hg(G ^ (X = (b + Y) | 0), 7)), + (G = g), + (U = Hg((g = (g + U) | 0) ^ P, 16)), + (b = P = Hg(G ^ (M = (U + M) | 0), 12)), + (P = Hg((G = U) ^ (U = (g + P) | 0), 8)), + (g = Hg(b ^ (M = (P + M) | 0), 7)), + (G = N), + (S = Hg((N = (N + S) | 0) ^ d, 16)), + (L = G = Hg(G ^ (d = (S + L) | 0), 12)), + (b = d), + (d = Hg((d = S) ^ (S = (N + G) | 0), 8)), + (N = Hg(L ^ (G = (b + d) | 0), 7)), + (b = M), + (M = Hg((m = (F + m) | 0) ^ d, 16)), + (F = Hg((R = (b + M) | 0) ^ F, 12)), + (d = Hg(M ^ (m = (F + m) | 0), 8)), + (F = Hg(F ^ (M = (R + d) | 0), 7)), + (H = Hg((v = (g + v) | 0) ^ H, 16)), + (g = Hg((G = (H + G) | 0) ^ g, 12)), + (R = Hg(H ^ (v = (g + v) | 0), 8)), + (g = Hg(g ^ (L = (G + R) | 0), 7)), + (H = Hg((U = (N + U) | 0) ^ Y, 16)), + (N = Hg((Y = (H + J) | 0) ^ N, 12)), + (G = Hg(H ^ (U = (N + U) | 0), 8)), + (N = Hg(N ^ (H = (Y + G) | 0), 7)), + (Y = Hg((S = (_ + S) | 0) ^ P, 16)), + (_ = Hg((J = (Y + X) | 0) ^ _, 12)), + (P = Hg(Y ^ (S = (_ + S) | 0), 8)), + (_ = Hg(_ ^ (Y = (J + P) | 0), 7)), + (q = (q - 2) | 0); + + ); + if ( + ((q = + n[(I + 4) | 0] | + (n[(I + 5) | 0] << 8) | + (n[(I + 6) | 0] << 16) | + (n[(I + 7) | 0] << 24)), + (J = + n[(I + 8) | 0] | + (n[(I + 9) | 0] << 8) | + (n[(I + 10) | 0] << 16) | + (n[(I + 11) | 0] << 24)), + (X = + n[(I + 12) | 0] | + (n[(I + 13) | 0] << 8) | + (n[(I + 14) | 0] << 16) | + (n[(I + 15) | 0] << 24)), + (W = + n[(I + 16) | 0] | + (n[(I + 17) | 0] << 8) | + (n[(I + 18) | 0] << 16) | + (n[(I + 19) | 0] << 24)), + (T = + n[(I + 20) | 0] | + (n[(I + 21) | 0] << 8) | + (n[(I + 22) | 0] << 16) | + (n[(I + 23) | 0] << 24)), + (j = + n[(I + 24) | 0] | + (n[(I + 25) | 0] << 8) | + (n[(I + 26) | 0] << 16) | + (n[(I + 27) | 0] << 24)), + (Z = + n[(I + 28) | 0] | + (n[(I + 29) | 0] << 8) | + (n[(I + 30) | 0] << 16) | + (n[(I + 31) | 0] << 24)), + (O = + n[(I + 32) | 0] | + (n[(I + 33) | 0] << 8) | + (n[(I + 34) | 0] << 16) | + (n[(I + 35) | 0] << 24)), + (z = + n[(I + 36) | 0] | + (n[(I + 37) | 0] << 8) | + (n[(I + 38) | 0] << 16) | + (n[(I + 39) | 0] << 24)), + ($ = + n[(I + 40) | 0] | + (n[(I + 41) | 0] << 8) | + (n[(I + 42) | 0] << 16) | + (n[(I + 43) | 0] << 24)), + (AA = + n[(I + 44) | 0] | + (n[(I + 45) | 0] << 8) | + (n[(I + 46) | 0] << 16) | + (n[(I + 47) | 0] << 24)), + (IA = + n[(I + 48) | 0] | + (n[(I + 49) | 0] << 8) | + (n[(I + 50) | 0] << 16) | + (n[(I + 51) | 0] << 24)), + (gA = + n[(I + 52) | 0] | + (n[(I + 53) | 0] << 8) | + (n[(I + 54) | 0] << 16) | + (n[(I + 55) | 0] << 24)), + (BA = + n[(I + 56) | 0] | + (n[(I + 57) | 0] << 8) | + (n[(I + 58) | 0] << 16) | + (n[(I + 59) | 0] << 24)), + (b = + n[(I + 60) | 0] | + (n[(I + 61) | 0] << 8) | + (n[(I + 62) | 0] << 16) | + (n[(I + 63) | 0] << 24)), + xI( + k, + (m + l) ^ + (n[0 | I] | + (n[(I + 1) | 0] << 8) | + (n[(I + 2) | 0] << 16) | + (n[(I + 3) | 0] << 24)) + ), + xI((k + 4) | 0, (v + p) ^ q), + xI((k + 8) | 0, (U + u) ^ J), + xI((k + 12) | 0, (S + D) ^ X), + xI((k + 16) | 0, (_ + w) ^ W), + xI((k + 20) | 0, (F + s) ^ T), + xI((k + 24) | 0, (g + y) ^ j), + xI((k + 28) | 0, (N + c) ^ Z), + xI((k + 32) | 0, (H + f) ^ O), + xI((k + 36) | 0, (Y + t) ^ z), + xI((k + 40) | 0, $ ^ (M + e)), + xI((k + 44) | 0, AA ^ (L + o)), + xI((k + 48) | 0, IA ^ (R + x)), + xI((k + 52) | 0, gA ^ (G + K)), + xI((k + 56) | 0, BA ^ (P + r)), + xI((k + 60) | 0, b ^ (d + a)), + (K = + (((x = ((g = x) + 1) | 0) >>> 0 < g >>> 0) + K) | + 0), + !Q & (B >>> 0 <= 64)) + ) { + if (!(!B | (!Q & (B >>> 0 > 63)) | (0 != (0 | Q)))) + for ( + F = 0; + (C[(F + V) | 0] = n[(k + F) | 0]), + (0 | B) != (0 | (F = (F + 1) | 0)); + + ); + ;(i[(A + 52) >> 2] = K), + (i[(A + 48) >> 2] = x), + (h = (E - -64) | 0) + break + } + ;(I = (I - -64) | 0), + (g = (k - -64) | 0), + (Q = (Q - 1) | 0), + (Q = + (B = (B + -64) | 0) >>> 0 < 4294967232 + ? (Q + 1) | 0 + : Q) + } + } + function S(A, I, g, B) { + var Q = 0, + C = 0, + E = 0, + a = 0, + o = 0, + e = 0, + t = 0, + f = 0, + c = 0, + y = 0, + s = 0, + w = 0, + h = 0, + D = 0, + u = 0, + l = 0, + F = 0, + G = 0, + k = 0, + _ = 0, + H = 0, + Y = 0, + b = 0, + m = 0, + v = 0 + if ( + ((c = i[(A + 36) >> 2]), + (a = i[(A + 32) >> 2]), + (E = i[(A + 28) >> 2]), + (C = i[(A + 24) >> 2]), + (o = i[(A + 20) >> 2]), + (!B & (g >>> 0 >= 16)) | B) + ) + for ( + H = !n[(A + 80) | 0] << 24, + s = i[(A + 4) >> 2], + Y = r(s, 5), + D = i[(A + 8) >> 2], + _ = r(D, 5), + G = i[(A + 12) >> 2], + k = r(G, 5), + Q = i[(A + 16) >> 2], + u = r(Q, 5), + b = Q, + w = i[A >> 2]; + (Q = eg( + (e = + ((((n[(I + 3) | 0] | + (n[(I + 4) | 0] << 8) | + (n[(I + 5) | 0] << 16) | + (n[(I + 6) | 0] << 24)) >>> + 2) & + 67108863) + + C) | + 0), + 0, + G, + 0 + )), + (t = p), + (C = + ((y = eg( + (o = + ((67108863 & + (n[0 | I] | + (n[(I + 1) | 0] << 8) | + (n[(I + 2) | 0] << 16) | + (n[(I + 3) | 0] << 24))) + + o) | + 0), + 0, + b, + 0 + )) + + Q) | + 0), + (Q = (p + t) | 0), + (Q = C >>> 0 < y >>> 0 ? (Q + 1) | 0 : Q), + (f = C), + (C = eg( + (t = + ((((n[(I + 6) | 0] | + (n[(I + 7) | 0] << 8) | + (n[(I + 8) | 0] << 16) | + (n[(I + 9) | 0] << 24)) >>> + 4) & + 67108863) + + E) | + 0), + 0, + D, + 0 + )), + (Q = (p + Q) | 0), + (Q = + C >>> 0 > (E = (f + C) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (C = E), + (E = eg( + (y = + ((((n[(I + 9) | 0] | + (n[(I + 10) | 0] << 8) | + (n[(I + 11) | 0] << 16) | + (n[(I + 12) | 0] << 24)) >>> + 6) | + 0) + + a) | + 0), + 0, + s, + 0 + )), + (Q = (p + Q) | 0), + (Q = + E >>> 0 > (a = (C + E) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (C = a), + (a = eg( + (h = + (c + + H + + ((n[(I + 12) | 0] | + (n[(I + 13) | 0] << 8) | + (n[(I + 14) | 0] << 16) | + (n[(I + 15) | 0] << 24)) >>> + 8)) | + 0), + 0, + w, + 0 + )), + (Q = (p + Q) | 0), + (m = c = (C + a) | 0), + (c = a >>> 0 > c >>> 0 ? (Q + 1) | 0 : Q), + (Q = eg(e, 0, D, 0)), + (E = p), + (a = ((C = eg(o, 0, G, 0)) + Q) | 0), + (Q = (p + E) | 0), + (Q = C >>> 0 > a >>> 0 ? (Q + 1) | 0 : Q), + (E = eg(t, 0, s, 0)), + (Q = (p + Q) | 0), + (Q = + E >>> 0 > (a = (E + a) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (E = eg(y, 0, w, 0)), + (Q = (p + Q) | 0), + (Q = + E >>> 0 > (a = (E + a) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (E = eg(h, 0, u, 0)), + (Q = (p + Q) | 0), + (v = a = (E + a) | 0), + (a = E >>> 0 > a >>> 0 ? (Q + 1) | 0 : Q), + (Q = eg(e, 0, s, 0)), + (C = p), + (E = ((l = eg(o, 0, D, 0)) + Q) | 0), + (Q = (p + C) | 0), + (Q = E >>> 0 < l >>> 0 ? (Q + 1) | 0 : Q), + (C = eg(t, 0, w, 0)), + (Q = (p + Q) | 0), + (Q = + C >>> 0 > (E = (C + E) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (C = eg(y, 0, u, 0)), + (Q = (p + Q) | 0), + (Q = + C >>> 0 > (E = (C + E) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (C = eg(h, 0, k, 0)), + (Q = (p + Q) | 0), + (l = E = (C + E) | 0), + (E = C >>> 0 > E >>> 0 ? (Q + 1) | 0 : Q), + (Q = eg(e, 0, w, 0)), + (f = p), + (C = ((F = eg(o, 0, s, 0)) + Q) | 0), + (Q = (p + f) | 0), + (Q = C >>> 0 < F >>> 0 ? (Q + 1) | 0 : Q), + (f = eg(t, 0, u, 0)), + (Q = (p + Q) | 0), + (Q = + (C = (f + C) | 0) >>> 0 < f >>> 0 + ? (Q + 1) | 0 + : Q), + (f = eg(y, 0, k, 0)), + (Q = (p + Q) | 0), + (Q = + (C = (f + C) | 0) >>> 0 < f >>> 0 + ? (Q + 1) | 0 + : Q), + (f = eg(h, 0, _, 0)), + (Q = (p + Q) | 0), + (Q = + (C = (f + C) | 0) >>> 0 < f >>> 0 + ? (Q + 1) | 0 + : Q), + (f = C), + (C = Q), + (Q = eg(e, 0, u, 0)), + (F = p), + (e = ((o = eg(o, 0, w, 0)) + Q) | 0), + (Q = (p + F) | 0), + (Q = e >>> 0 < o >>> 0 ? (Q + 1) | 0 : Q), + (o = eg(t, 0, k, 0)), + (Q = (p + Q) | 0), + (Q = + (e = (o + e) | 0) >>> 0 < o >>> 0 + ? (Q + 1) | 0 + : Q), + (o = eg(y, 0, _, 0)), + (Q = (p + Q) | 0), + (Q = + (e = (o + e) | 0) >>> 0 < o >>> 0 + ? (Q + 1) | 0 + : Q), + (o = eg(h, 0, Y, 0)), + (Q = (p + Q) | 0), + (Q = + (e = (o + e) | 0) >>> 0 < o >>> 0 + ? (Q + 1) | 0 + : Q), + (o = e), + (t = ((67108863 & Q) << 6) | (e >>> 26)), + (Q = C), + (t = + ((67108863 & + (Q = + (e = (t + f) | 0) >>> 0 < t >>> 0 + ? (Q + 1) | 0 + : Q)) << + 6) | + ((C = e) >>> 26)), + (Q = E), + (Q = + (C = (t + l) | 0) >>> 0 < t >>> 0 + ? (Q + 1) | 0 + : Q), + (t = C), + (C = ((67108863 & Q) << 6) | (C >>> 26)), + (Q = a), + (y = E = (C + v) | 0), + (E = + ((67108863 & + (Q = C >>> 0 > E >>> 0 ? (Q + 1) | 0 : Q)) << + 6) | + (E >>> 26)), + (Q = c), + (c = a = (E + m) | 0), + (C = + ((67108863 & e) + + (((Q = + (r( + ((67108863 & + (Q = + E >>> 0 > a >>> 0 ? (Q + 1) | 0 : Q)) << + 6) | + (a >>> 26), + 5 + ) + + (67108863 & o)) | + 0) >>> + 26) | + 0)) | + 0), + (E = 67108863 & t), + (a = 67108863 & y), + (c &= 67108863), + (o = 67108863 & Q), + (I = (I + 16) | 0), + (!(B = (B - (g >>> 0 < 16)) | 0) & + ((g = (g - 16) | 0) >>> 0 > 15)) | + B; + + ); + ;(i[(A + 20) >> 2] = o), + (i[(A + 36) >> 2] = c), + (i[(A + 32) >> 2] = a), + (i[(A + 28) >> 2] = E), + (i[(A + 24) >> 2] = C) + } + function N(A, I, g) { + var B, + Q, + E, + i, + a = 0, + r = 0, + o = 0, + e = 0, + t = 0 + return ( + (h = E = (h - 160) | 0), + mI(I, g, 32, 0), + (C[0 | I] = 248 & n[0 | I]), + (C[(I + 31) | 0] = (63 & n[(I + 31) | 0]) | 64), + CA(E, I), + nI(A, E), + (r = + n[((Q = g) + 8) | 0] | + (n[(Q + 9) | 0] << 8) | + (n[(Q + 10) | 0] << 16) | + (n[(Q + 11) | 0] << 24)), + (a = + n[(Q + 12) | 0] | + (n[(Q + 13) | 0] << 8) | + (n[(Q + 14) | 0] << 16) | + (n[(Q + 15) | 0] << 24)), + (o = + n[(Q + 16) | 0] | + (n[(Q + 17) | 0] << 8) | + (n[(Q + 18) | 0] << 16) | + (n[(Q + 19) | 0] << 24)), + (e = + n[(Q + 20) | 0] | + (n[(Q + 21) | 0] << 8) | + (n[(Q + 22) | 0] << 16) | + (n[(Q + 23) | 0] << 24)), + (t = + n[0 | Q] | + (n[(Q + 1) | 0] << 8) | + (n[(Q + 2) | 0] << 16) | + (n[(Q + 3) | 0] << 24)), + (g = + n[(Q + 4) | 0] | + (n[(Q + 5) | 0] << 8) | + (n[(Q + 6) | 0] << 16) | + (n[(Q + 7) | 0] << 24)), + (B = I), + (i = + n[(Q + 28) | 0] | + (n[(Q + 29) | 0] << 8) | + (n[(Q + 30) | 0] << 16) | + (n[(Q + 31) | 0] << 24)), + (I = + n[(Q + 24) | 0] | + (n[(Q + 25) | 0] << 8) | + (n[(Q + 26) | 0] << 16) | + (n[(Q + 27) | 0] << 24)), + (C[(B + 24) | 0] = I), + (C[(B + 25) | 0] = I >>> 8), + (C[(B + 26) | 0] = I >>> 16), + (C[(B + 27) | 0] = I >>> 24), + (C[(B + 28) | 0] = i), + (C[(B + 29) | 0] = i >>> 8), + (C[(B + 30) | 0] = i >>> 16), + (C[(B + 31) | 0] = i >>> 24), + (C[(B + 16) | 0] = o), + (C[(B + 17) | 0] = o >>> 8), + (C[(B + 18) | 0] = o >>> 16), + (C[(B + 19) | 0] = o >>> 24), + (C[(B + 20) | 0] = e), + (C[(B + 21) | 0] = e >>> 8), + (C[(B + 22) | 0] = e >>> 16), + (C[(B + 23) | 0] = e >>> 24), + (C[(B + 8) | 0] = r), + (C[(B + 9) | 0] = r >>> 8), + (C[(B + 10) | 0] = r >>> 16), + (C[(B + 11) | 0] = r >>> 24), + (C[(B + 12) | 0] = a), + (C[(B + 13) | 0] = a >>> 8), + (C[(B + 14) | 0] = a >>> 16), + (C[(B + 15) | 0] = a >>> 24), + (C[0 | B] = t), + (C[(B + 1) | 0] = t >>> 8), + (C[(B + 2) | 0] = t >>> 16), + (C[(B + 3) | 0] = t >>> 24), + (C[(B + 4) | 0] = g), + (C[(B + 5) | 0] = g >>> 8), + (C[(B + 6) | 0] = g >>> 16), + (C[(B + 7) | 0] = g >>> 24), + (o = + n[((a = A) + 8) | 0] | + (n[(a + 9) | 0] << 8) | + (n[(a + 10) | 0] << 16) | + (n[(a + 11) | 0] << 24)), + (e = + n[(a + 12) | 0] | + (n[(a + 13) | 0] << 8) | + (n[(a + 14) | 0] << 16) | + (n[(a + 15) | 0] << 24)), + (t = + n[(a + 16) | 0] | + (n[(a + 17) | 0] << 8) | + (n[(a + 18) | 0] << 16) | + (n[(a + 19) | 0] << 24)), + (g = + n[(a + 20) | 0] | + (n[(a + 21) | 0] << 8) | + (n[(a + 22) | 0] << 16) | + (n[(a + 23) | 0] << 24)), + (I = + n[0 | a] | + (n[(a + 1) | 0] << 8) | + (n[(a + 2) | 0] << 16) | + (n[(a + 3) | 0] << 24)), + (A = + n[(a + 4) | 0] | + (n[(a + 5) | 0] << 8) | + (n[(a + 6) | 0] << 16) | + (n[(a + 7) | 0] << 24)), + (r = + n[(a + 28) | 0] | + (n[(a + 29) | 0] << 8) | + (n[(a + 30) | 0] << 16) | + (n[(a + 31) | 0] << 24)), + (a = + n[(a + 24) | 0] | + (n[(a + 25) | 0] << 8) | + (n[(a + 26) | 0] << 16) | + (n[(a + 27) | 0] << 24)), + (C[(B + 56) | 0] = a), + (C[(B + 57) | 0] = a >>> 8), + (C[(B + 58) | 0] = a >>> 16), + (C[(B + 59) | 0] = a >>> 24), + (C[(B + 60) | 0] = r), + (C[(B + 61) | 0] = r >>> 8), + (C[(B + 62) | 0] = r >>> 16), + (C[(B + 63) | 0] = r >>> 24), + (C[(B + 48) | 0] = t), + (C[(B + 49) | 0] = t >>> 8), + (C[(B + 50) | 0] = t >>> 16), + (C[(B + 51) | 0] = t >>> 24), + (C[(B + 52) | 0] = g), + (C[(B + 53) | 0] = g >>> 8), + (C[(B + 54) | 0] = g >>> 16), + (C[(B + 55) | 0] = g >>> 24), + (C[(B + 40) | 0] = o), + (C[(B + 41) | 0] = o >>> 8), + (C[(B + 42) | 0] = o >>> 16), + (C[(B + 43) | 0] = o >>> 24), + (C[(B + 44) | 0] = e), + (C[(B + 45) | 0] = e >>> 8), + (C[(B + 46) | 0] = e >>> 16), + (C[(B + 47) | 0] = e >>> 24), + (C[(B + 32) | 0] = I), + (C[(B + 33) | 0] = I >>> 8), + (C[(B + 34) | 0] = I >>> 16), + (C[(B + 35) | 0] = I >>> 24), + (C[(B + 36) | 0] = A), + (C[(B + 37) | 0] = A >>> 8), + (C[(B + 38) | 0] = A >>> 16), + (C[(B + 39) | 0] = A >>> 24), + (h = (E + 160) | 0), + 0 + ) + } + function M(A, I, g) { + var B, + Q = 0, + E = 0, + i = 0 + h = B = (h + -64) | 0 + A: { + if (!(!g | (g >>> 0 >= 65))) { + if ( + ((Q = -1), + !( + n[(A + 80) | 0] | + (n[(A + 81) | 0] << 8) | + (n[(A + 82) | 0] << 16) | + (n[(A + 83) | 0] << 24) | + n[(A + 84) | 0] | + (n[(A + 85) | 0] << 8) | + (n[(A + 86) | 0] << 16) | + (n[(A + 87) | 0] << 24) + )) + ) { + if ( + ((E = A), + (Q = + n[(A + 352) | 0] | + (n[(A + 353) | 0] << 8) | + (n[(A + 354) | 0] << 16) | + (n[(A + 355) | 0] << 24)) >>> + 0 >= + 129) + ) { + if ( + (iA(A, 128), + l(A, (i = (A + 96) | 0)), + (Q = + ((n[(A + 352) | 0] | + (n[(A + 353) | 0] << 8) | + (n[(A + 354) | 0] << 16) | + (n[(A + 355) | 0] << 24)) - + 128) | + 0), + (C[(A + 352) | 0] = Q), + (C[(A + 353) | 0] = Q >>> 8), + (C[(A + 354) | 0] = Q >>> 16), + (C[(A + 355) | 0] = Q >>> 24), + Q >>> 0 >= 129) + ) + break A + X(i, (A + 224) | 0, Q), + (Q = + n[(A + 352) | 0] | + (n[(A + 353) | 0] << 8) | + (n[(A + 354) | 0] << 16) | + (n[(A + 355) | 0] << 24)) + } + iA(E, Q), + n[(A + 356) | 0] && + ((C[(A + 88) | 0] = 255), + (C[(A + 89) | 0] = 255), + (C[(A + 90) | 0] = 255), + (C[(A + 91) | 0] = 255), + (C[(A + 92) | 0] = 255), + (C[(A + 93) | 0] = 255), + (C[(A + 94) | 0] = 255), + (C[(A + 95) | 0] = 255)), + (C[(A + 80) | 0] = 255), + (C[(A + 81) | 0] = 255), + (C[(A + 82) | 0] = 255), + (C[(A + 83) | 0] = 255), + (C[(A + 84) | 0] = 255), + (C[(A + 85) | 0] = 255), + (C[(A + 86) | 0] = 255), + (C[(A + 87) | 0] = 255), + EA( + ((Q = (A + 96) | 0) + + (E = + n[(A + 352) | 0] | + (n[(A + 353) | 0] << 8) | + (n[(A + 354) | 0] << 16) | + (n[(A + 355) | 0] << 24))) | + 0, + 0, + (256 - E) | 0 + ), + l(A, Q), + tI( + B, + n[0 | A] | + (n[(A + 1) | 0] << 8) | + (n[(A + 2) | 0] << 16) | + (n[(A + 3) | 0] << 24), + n[(A + 4) | 0] | + (n[(A + 5) | 0] << 8) | + (n[(A + 6) | 0] << 16) | + (n[(A + 7) | 0] << 24) + ), + tI( + 8 | B, + n[(A + 8) | 0] | + (n[(A + 9) | 0] << 8) | + (n[(A + 10) | 0] << 16) | + (n[(A + 11) | 0] << 24), + n[(A + 12) | 0] | + (n[(A + 13) | 0] << 8) | + (n[(A + 14) | 0] << 16) | + (n[(A + 15) | 0] << 24) + ), + tI( + (B + 16) | 0, + n[(A + 16) | 0] | + (n[(A + 17) | 0] << 8) | + (n[(A + 18) | 0] << 16) | + (n[(A + 19) | 0] << 24), + n[(A + 20) | 0] | + (n[(A + 21) | 0] << 8) | + (n[(A + 22) | 0] << 16) | + (n[(A + 23) | 0] << 24) + ), + tI( + (B + 24) | 0, + n[(A + 24) | 0] | + (n[(A + 25) | 0] << 8) | + (n[(A + 26) | 0] << 16) | + (n[(A + 27) | 0] << 24), + n[(A + 28) | 0] | + (n[(A + 29) | 0] << 8) | + (n[(A + 30) | 0] << 16) | + (n[(A + 31) | 0] << 24) + ), + tI( + (B + 32) | 0, + n[(A + 32) | 0] | + (n[(A + 33) | 0] << 8) | + (n[(A + 34) | 0] << 16) | + (n[(A + 35) | 0] << 24), + n[(A + 36) | 0] | + (n[(A + 37) | 0] << 8) | + (n[(A + 38) | 0] << 16) | + (n[(A + 39) | 0] << 24) + ), + tI( + (B + 40) | 0, + n[(A + 40) | 0] | + (n[(A + 41) | 0] << 8) | + (n[(A + 42) | 0] << 16) | + (n[(A + 43) | 0] << 24), + n[(A + 44) | 0] | + (n[(A + 45) | 0] << 8) | + (n[(A + 46) | 0] << 16) | + (n[(A + 47) | 0] << 24) + ), + tI( + (B + 48) | 0, + n[(A + 48) | 0] | + (n[(A + 49) | 0] << 8) | + (n[(A + 50) | 0] << 16) | + (n[(A + 51) | 0] << 24), + n[(A + 52) | 0] | + (n[(A + 53) | 0] << 8) | + (n[(A + 54) | 0] << 16) | + (n[(A + 55) | 0] << 24) + ), + tI( + (B + 56) | 0, + n[(A + 56) | 0] | + (n[(A + 57) | 0] << 8) | + (n[(A + 58) | 0] << 16) | + (n[(A + 59) | 0] << 24), + n[(A + 60) | 0] | + (n[(A + 61) | 0] << 8) | + (n[(A + 62) | 0] << 16) | + (n[(A + 63) | 0] << 24) + ), + X(I, B, g), + fI(A, 64), + fI(Q, 256), + (Q = 0) + } + return (h = (B - -64) | 0), Q + } + OI(), e() + } + t(1854, 1886, 306, 1931), e() + } + function d(A, I) { + var g, + B, + Q, + C, + E, + a, + r, + o, + e, + t = 0, + f = 0, + c = 0, + y = 0, + s = 0, + w = 0, + h = 0, + D = 0, + u = 0, + l = 0, + F = 0 + ;(g = + n[0 | I] | + (n[(I + 1) | 0] << 8) | + (n[(I + 2) | 0] << 16) | + (n[(I + 3) | 0] << 24)), + (u = HI((I + 4) | 0)), + (t = p), + (h = HI((I + 7) | 0)), + (c = p), + (D = HI((I + 10) | 0)), + (f = p), + (B = HI((I + 13) | 0)), + (s = p), + (y = + n[(I + 16) | 0] | + (n[(I + 17) | 0] << 8) | + (n[(I + 18) | 0] << 16) | + (n[(I + 19) | 0] << 24)), + (Q = HI((I + 20) | 0)), + (l = p), + (C = HI((I + 23) | 0)), + (E = p), + (a = HI((I + 26) | 0)), + (r = p), + (o = HI((I + 29) | 0)), + (I = (f << 3) | (D >>> 29)), + (F = f = D << 3), + (D = f = (f + 16777216) | 0), + (f = I = f >>> 0 < 16777216 ? (I + 1) | 0 : I), + (c = I = (c << 5) | (h >>> 27)), + (e = w = h << 5), + (t = I = (t << 6) | ((h = u) >>> 26)), + (u = I = (16777216 + (h <<= 6)) | 0), + (w = I), + (I = + ((I = + (t = I >>> 0 < 16777216 ? (t + 1) | 0 : t) >> 25) + + c) | + 0), + (I = + (t = + (e + (w = ((33554431 & t) << 7) | (w >>> 25))) | + 0) >>> + 0 < + w >>> 0 + ? (I + 1) | 0 + : I), + (c = (t + 33554432) | 0) >>> 0 < 33554432 && + (I = (I + 1) | 0), + (I = + (((F - (-33554432 & D)) | 0) + + (((67108863 & I) << 6) | (c >>> 26))) | + 0), + (i[(A + 12) >> 2] = I), + (I = -67108864 & c), + (i[(A + 8) >> 2] = t - I), + (I = 0), + (w = y = ((c = y) + 16777216) | 0), + (y = I = y >>> 0 < 16777216 ? 1 : I), + (F = (c - (-33554432 & w)) | 0), + (I = (s << 2) | ((c = B) >>> 30)), + (s = c << 2), + (c = I), + (I = ((I = f >> 25) + c) | 0), + (t = I = + (f = + ((t = s) + + (s = ((33554431 & f) << 7) | (D >>> 25))) | + 0) >>> + 0 < + s >>> 0 + ? (I + 1) | 0 + : I), + (c = I = (f + 33554432) | 0), + (I = + ((((67108863 & + (t = I >>> 0 < 33554432 ? (t + 1) | 0 : t)) << + 6) | + (I >>> 26)) + + F) | + 0), + (i[(A + 20) >> 2] = I), + (I = -67108864 & c), + (i[(A + 16) >> 2] = f - I), + (s = (t = Q) << 7), + (I = ((I = (l << 7) | (t >>> 25)) + (t = y >> 25)) | 0), + (I = + (y = + (s + (c = ((33554431 & y) << 7) | (w >>> 25))) | + 0) >>> + 0 < + c >>> 0 + ? (I + 1) | 0 + : I), + (y = t = y), + (c = t = (t + 33554432) | 0), + (t = I = t >>> 0 < 33554432 ? (I + 1) | 0 : I), + (I = -67108864 & c), + (i[((f = A) + 24) >> 2] = y - I), + (y = f), + (I = (E << 5) | ((f = C) >>> 27)), + (l = f <<= 5), + (s = f = (f + 16777216) | 0), + (f = I = f >>> 0 < 16777216 ? (I + 1) | 0 : I), + (I = + (((l - (-33554432 & s)) | 0) + + (((67108863 & t) << 6) | (c >>> 26))) | + 0), + (i[(y + 28) >> 2] = I), + (c = (t = a) << 4), + (t = I = (r << 4) | (t >>> 28)), + (I = ((I = f >> 25) + t) | 0), + (I = + (f = + ((w = c) + + (c = ((33554431 & f) << 7) | (s >>> 25))) | + 0) >>> + 0 < + c >>> 0 + ? (I + 1) | 0 + : I), + (f = t = f), + (c = t = (t + 33554432) | 0), + (t = I = t >>> 0 < 33554432 ? (I + 1) | 0 : I), + (I = -67108864 & c), + (i[(y + 32) >> 2] = f - I), + (I = 0), + (f = y = ((y = o) << 2) & 33554428), + (I = + (y = (y + 16777216) | 0) >>> 0 < 16777216 + ? (I + 1) | 0 + : I), + (t = + (((f - (33554432 & y)) | 0) + + (((67108863 & t) << 6) | (c >>> 26))) | + 0), + (i[(A + 36) >> 2] = t), + (y = eg( + ((33554431 & I) << 7) | (y >>> 25), + (I >>> 25) | 0, + 19, + 0 + )), + (I = p), + (I = + (t = (y + g) | 0) >>> 0 < y >>> 0 ? (I + 1) | 0 : I), + (f = (t + 33554432) | 0) >>> 0 < 33554432 && + (I = (I + 1) | 0), + (I = + (((h - (-33554432 & u)) | 0) + + (((67108863 & I) << 6) | (f >>> 26))) | + 0), + (i[(A + 4) >> 2] = I), + (I = A), + (A = -67108864 & f), + (i[I >> 2] = t - A) + } + function P(A, I) { + var g, + B, + Q, + C, + E, + n, + a, + r, + o, + e = 0, + t = 0, + f = 0, + c = 0, + y = 0, + s = 0, + w = 0, + h = 0, + D = 0, + u = 0, + l = 0, + F = 0, + G = 0, + k = 0 + ;(l = t = i[((e = I) + 4) >> 2]), + (D = t >> 31), + (F = t = i[(e + 8) >> 2]), + (B = t >> 31), + (w = t = i[(e + 12) >> 2]), + (u = t >> 31), + (G = t = i[(e + 16) >> 2]), + (Q = t >> 31), + (h = t = i[(e + 20) >> 2]), + (s = t >> 31), + (k = t = i[(e + 24) >> 2]), + (C = t >> 31), + (E = t = i[e >> 2]), + (n = t >> 31), + (c = t = + eg((e = i[(e + 36) >> 2]), e >> 31, 121666, 0)), + (e = p), + (g = t = (t + 16777216) | 0), + (t = e = t >>> 0 < 16777216 ? (e + 1) | 0 : e), + (a = (c - (-33554432 & g)) | 0), + (f = eg((e = i[(I + 32) >> 2]), e >> 31, 121666, 0)), + (r = p), + (c = eg((I = i[(I + 28) >> 2]), I >> 31, 121666, 0)), + (e = p), + (y = f), + (o = I = (c + 16777216) | 0), + (f = I), + (I = + ((I = + (e = I >>> 0 < 16777216 ? (e + 1) | 0 : e) >> 25) + + r) | + 0), + (I = + (e = + (y + (f = ((33554431 & e) << 7) | (f >>> 25))) | + 0) >>> + 0 < + f >>> 0 + ? (I + 1) | 0 + : I), + (f = e), + (e = I), + (y = I = (f + 33554432) | 0), + (I = + ((((67108863 & + (e = I >>> 0 < 33554432 ? (e + 1) | 0 : e)) << + 6) | + (I >>> 26)) + + a) | + 0), + (i[(A + 36) >> 2] = I), + (I = -67108864 & y), + (i[(A + 32) >> 2] = f - I), + (y = (c - (-33554432 & o)) | 0), + (e = eg(k, C, 121666, 0)), + (k = p), + (c = eg(h, s, 121666, 0)), + (I = p), + (f = e), + (h = e = (c + 16777216) | 0), + (s = e), + (e = + ((e = + (I = e >>> 0 < 16777216 ? (I + 1) | 0 : I) >> 25) + + k) | + 0), + (e = + (I = + (f + (s = ((33554431 & I) << 7) | (s >>> 25))) | + 0) >>> + 0 < + s >>> 0 + ? (e + 1) | 0 + : e), + (f = (I + 33554432) | 0) >>> 0 < 33554432 && + (e = (e + 1) | 0), + (e = (y + (((67108863 & e) << 6) | (f >>> 26))) | 0), + (i[(A + 28) >> 2] = e), + (e = -67108864 & f), + (i[(A + 24) >> 2] = I - e), + (h = (c - (-33554432 & h)) | 0), + (I = eg(G, Q, 121666, 0)), + (G = p), + (c = eg(w, u, 121666, 0)), + (e = p), + (y = I), + (w = I = (c + 16777216) | 0), + (u = + ((33554431 & + (e = I >>> 0 < 16777216 ? (e + 1) | 0 : e)) << + 7) | + (I >>> 25)), + (e = ((e >> 25) + G) | 0), + (I = e = + (f = (y + u) | 0) >>> 0 < u >>> 0 ? (e + 1) | 0 : e), + (I = + ((((67108863 & + (I = + (e = (f + 33554432) | 0) >>> 0 < 33554432 + ? (I + 1) | 0 + : I)) << + 6) | + (e >>> 26)) + + h) | + 0), + (i[(A + 20) >> 2] = I), + (I = -67108864 & e), + (i[(A + 16) >> 2] = f - I), + (w = (c - (-33554432 & w)) | 0), + (e = eg(F, B, 121666, 0)), + (F = p), + (c = eg(l, D, 121666, 0)), + (I = p), + (y = e), + (l = e = (c + 16777216) | 0), + (D = + ((33554431 & + (I = e >>> 0 < 16777216 ? (I + 1) | 0 : I)) << + 7) | + (e >>> 25)), + (I = ((I >> 25) + F) | 0), + (e = I = + (f = (y + D) | 0) >>> 0 < D >>> 0 ? (I + 1) | 0 : I), + (y = I = (f + 33554432) | 0), + (I = + ((((67108863 & + (e = I >>> 0 < 33554432 ? (e + 1) | 0 : e)) << + 6) | + (I >>> 26)) + + w) | + 0), + (i[(A + 12) >> 2] = I), + (I = -67108864 & y), + (i[(A + 8) >> 2] = f - I), + (I = eg( + ((33554431 & t) << 7) | (g >>> 25), + t >> 25, + 19, + 0 + )), + (e = p), + (y = (c - (-33554432 & l)) | 0), + (t = eg(E, n, 121666, 0)), + (e = (p + e) | 0), + (e = + (I = (t + I) | 0) >>> 0 < t >>> 0 ? (e + 1) | 0 : e), + (t = (I + 33554432) | 0) >>> 0 < 33554432 && + (e = (e + 1) | 0), + (e = (y + (((67108863 & e) << 6) | (t >>> 26))) | 0), + (i[(A + 4) >> 2] = e), + (e = A), + (A = -67108864 & t), + (i[e >> 2] = I - A) + } + function R(A, I, g, B) { + var Q, + E = 0, + a = 0 + ;(h = Q = (h - 16) | 0), (E = -31) + A: { + I: { + g: { + B: switch ((B - 1) | 0) { + case 1: + if (I >>> 0 < 13) break I + ;(B = + n[35660] | + (n[35661] << 8) | + (n[35662] << 16) | + (n[35663] << 24)), + (E = + n[35656] | + (n[35657] << 8) | + (n[35658] << 16) | + (n[35659] << 24)), + (C[0 | A] = E), + (C[(A + 1) | 0] = E >>> 8), + (C[(A + 2) | 0] = E >>> 16), + (C[(A + 3) | 0] = E >>> 24), + (C[(A + 4) | 0] = B), + (C[(A + 5) | 0] = B >>> 8), + (C[(A + 6) | 0] = B >>> 16), + (C[(A + 7) | 0] = B >>> 24), + (B = + n[35665] | + (n[35666] << 8) | + (n[35667] << 16) | + (n[35668] << 24)), + (E = + n[35661] | + (n[35662] << 8) | + (n[35663] << 16) | + (n[35664] << 24)), + (C[(A + 5) | 0] = E), + (C[(A + 6) | 0] = E >>> 8), + (C[(A + 7) | 0] = E >>> 16), + (C[(A + 8) | 0] = E >>> 24), + (C[(A + 9) | 0] = B), + (C[(A + 10) | 0] = B >>> 8), + (C[(A + 11) | 0] = B >>> 16), + (C[(A + 12) | 0] = B >>> 24), + (a = -12), + (B = 12) + break g + case 0: + break B + default: + break A + } + if (I >>> 0 < 12) break I + ;(B = + n[35673] | + (n[35674] << 8) | + (n[35675] << 16) | + (n[35676] << 24)), + (E = + n[35669] | + (n[35670] << 8) | + (n[35671] << 16) | + (n[35672] << 24)), + (C[0 | A] = E), + (C[(A + 1) | 0] = E >>> 8), + (C[(A + 2) | 0] = E >>> 16), + (C[(A + 3) | 0] = E >>> 24), + (C[(A + 4) | 0] = B), + (C[(A + 5) | 0] = B >>> 8), + (C[(A + 6) | 0] = B >>> 16), + (C[(A + 7) | 0] = B >>> 24), + (B = + n[35677] | + (n[35678] << 8) | + (n[35679] << 16) | + (n[35680] << 24)), + (C[(A + 8) | 0] = B), + (C[(A + 9) | 0] = B >>> 8), + (C[(A + 10) | 0] = B >>> 16), + (C[(A + 11) | 0] = B >>> 24), + (a = -11), + (B = 11) + } + if ((E = oA(g))) break A + if ( + (qA((Q + 5) | 0, 19), + !( + (E = (I + a) | 0) >>> 0 <= + (I = YA((Q + 5) | 0)) >>> 0 + ) && + ((A = X((A + B) | 0, (Q + 5) | 0, (I + 1) | 0)), + !((B = (E - I) | 0) >>> 0 < 4) && + ((C[0 | (A = (A + I) | 0)] = 36), + (C[(A + 1) | 0] = 109), + (C[(A + 2) | 0] = 61), + (C[(A + 3) | 0] = 0), + qA((Q + 5) | 0, i[(g + 44) >> 2]), + !( + (B = (B - 3) | 0) >>> 0 <= + (I = YA((Q + 5) | 0)) >>> 0 + ) && + ((A = X( + (A + 3) | 0, + (Q + 5) | 0, + (I + 1) | 0 + )), + !((B = (B - I) | 0) >>> 0 < 4) && + ((C[0 | (A = (A + I) | 0)] = 44), + (C[(A + 1) | 0] = 116), + (C[(A + 2) | 0] = 61), + (C[(A + 3) | 0] = 0), + qA((Q + 5) | 0, i[(g + 40) >> 2]), + !( + (B = (B - 3) | 0) >>> 0 <= + (I = YA((Q + 5) | 0)) >>> 0 + ) && + ((A = X( + (A + 3) | 0, + (Q + 5) | 0, + (I + 1) | 0 + )), + !((B = (B - I) | 0) >>> 0 < 4) && + ((C[0 | (A = (A + I) | 0)] = 44), + (C[(A + 1) | 0] = 112), + (C[(A + 2) | 0] = 61), + (C[(A + 3) | 0] = 0), + qA((Q + 5) | 0, i[(g + 48) >> 2]), + !( + (B = (B - 3) | 0) >>> 0 <= + (I = YA((Q + 5) | 0)) >>> 0 + ) && + ((A = X( + (A + 3) | 0, + (Q + 5) | 0, + (I + 1) | 0 + )), + !((B = (B - I) | 0) >>> 0 < 2) && + ((C[0 | (A = (A + I) | 0)] = 36), + (C[(A + 1) | 0] = 0), + O( + (A = (A + 1) | 0), + (I = (B - 1) | 0), + i[(g + 16) >> 2], + i[(g + 20) >> 2], + 3 + )))))))))) + ) { + if ( + ((E = -31), + (B = ((B = I) - (I = YA(A))) | 0) >>> 0 < 2) + ) + break A + return ( + (C[0 | (A = (A + I) | 0)] = 36), + (C[(A + 1) | 0] = 0), + (A = O( + (A + 1) | 0, + (B - 1) | 0, + i[g >> 2], + i[(g + 4) >> 2], + 3 + )), + (h = (Q + 16) | 0), + A ? 0 : -31 + ) + } + } + E = -31 + } + return (h = (Q + 16) | 0), E + } + function J(A, I, g, B) { + var Q, + E = 0 + ;(Q = E = h), + (h = E = (E - 576) & -64), + (i[(E + 188) >> 2] = 0), + xI((E + 188) | 0, I) + A: if (I >>> 0 <= 64) { + if ((0 | iI((E + 192) | 0, 0, 0, I)) < 0) break A + if ((0 | hg((E + 192) | 0, (E + 188) | 0, 4, 0)) < 0) + break A + if ((0 | hg((E + 192) | 0, g, B, 0)) < 0) break A + dI((E + 192) | 0, A, I) + } else if ( + !( + (0 | iI((E + 192) | 0, 0, 0, 64)) < 0 || + (0 | hg((E + 192) | 0, (E + 188) | 0, 4, 0)) < 0 || + (0 | hg((E + 192) | 0, g, B, 0)) < 0 || + (0 | dI((E + 192) | 0, (E + 112) | 0, 64)) < 0 + ) + ) { + if ( + ((g = i[(E + 116) >> 2]), + (B = i[(E + 112) >> 2]), + (C[0 | A] = B), + (C[(A + 1) | 0] = B >>> 8), + (C[(A + 2) | 0] = B >>> 16), + (C[(A + 3) | 0] = B >>> 24), + (C[(A + 4) | 0] = g), + (C[(A + 5) | 0] = g >>> 8), + (C[(A + 6) | 0] = g >>> 16), + (C[(A + 7) | 0] = g >>> 24), + (g = i[(E + 124) >> 2]), + (B = i[(E + 120) >> 2]), + (C[(A + 8) | 0] = B), + (C[(A + 9) | 0] = B >>> 8), + (C[(A + 10) | 0] = B >>> 16), + (C[(A + 11) | 0] = B >>> 24), + (C[(A + 12) | 0] = g), + (C[(A + 13) | 0] = g >>> 8), + (C[(A + 14) | 0] = g >>> 16), + (C[(A + 15) | 0] = g >>> 24), + (g = i[(E + 140) >> 2]), + (B = i[(E + 136) >> 2]), + (C[(A + 24) | 0] = B), + (C[(A + 25) | 0] = B >>> 8), + (C[(A + 26) | 0] = B >>> 16), + (C[(A + 27) | 0] = B >>> 24), + (C[(A + 28) | 0] = g), + (C[(A + 29) | 0] = g >>> 8), + (C[(A + 30) | 0] = g >>> 16), + (C[(A + 31) | 0] = g >>> 24), + (g = i[(E + 132) >> 2]), + (B = i[(E + 128) >> 2]), + (C[(A + 16) | 0] = B), + (C[(A + 17) | 0] = B >>> 8), + (C[(A + 18) | 0] = B >>> 16), + (C[(A + 19) | 0] = B >>> 24), + (C[(A + 20) | 0] = g), + (C[(A + 21) | 0] = g >>> 8), + (C[(A + 22) | 0] = g >>> 16), + (C[(A + 23) | 0] = g >>> 24), + (A = (A + 32) | 0), + (I = (I - 32) | 0) >>> 0 >= 65) + ) + for (;;) { + if ( + (X((E + 48) | 0, (E + 112) | 0, 64), + (0 | + GI( + (E + 112) | 0, + 64, + (E + 48) | 0, + 64, + 0, + 0, + 0 + )) < + 0) + ) + break A + if ( + ((g = i[(E + 116) >> 2]), + (B = i[(E + 112) >> 2]), + (C[0 | A] = B), + (C[(A + 1) | 0] = B >>> 8), + (C[(A + 2) | 0] = B >>> 16), + (C[(A + 3) | 0] = B >>> 24), + (C[(A + 4) | 0] = g), + (C[(A + 5) | 0] = g >>> 8), + (C[(A + 6) | 0] = g >>> 16), + (C[(A + 7) | 0] = g >>> 24), + (g = i[(E + 124) >> 2]), + (B = i[(E + 120) >> 2]), + (C[(A + 8) | 0] = B), + (C[(A + 9) | 0] = B >>> 8), + (C[(A + 10) | 0] = B >>> 16), + (C[(A + 11) | 0] = B >>> 24), + (C[(A + 12) | 0] = g), + (C[(A + 13) | 0] = g >>> 8), + (C[(A + 14) | 0] = g >>> 16), + (C[(A + 15) | 0] = g >>> 24), + (g = i[(E + 140) >> 2]), + (B = i[(E + 136) >> 2]), + (C[(A + 24) | 0] = B), + (C[(A + 25) | 0] = B >>> 8), + (C[(A + 26) | 0] = B >>> 16), + (C[(A + 27) | 0] = B >>> 24), + (C[(A + 28) | 0] = g), + (C[(A + 29) | 0] = g >>> 8), + (C[(A + 30) | 0] = g >>> 16), + (C[(A + 31) | 0] = g >>> 24), + (g = i[(E + 132) >> 2]), + (B = i[(E + 128) >> 2]), + (C[(A + 16) | 0] = B), + (C[(A + 17) | 0] = B >>> 8), + (C[(A + 18) | 0] = B >>> 16), + (C[(A + 19) | 0] = B >>> 24), + (C[(A + 20) | 0] = g), + (C[(A + 21) | 0] = g >>> 8), + (C[(A + 22) | 0] = g >>> 16), + (C[(A + 23) | 0] = g >>> 24), + (A = (A + 32) | 0), + !((I = (I - 32) | 0) >>> 0 > 64)) + ) + break + } + X((E + 48) | 0, (E + 112) | 0, 64), + (0 | + GI((E + 112) | 0, I, (E + 48) | 0, 64, 0, 0, 0)) < + 0 || X(A, (E + 112) | 0, I) + } + fI((E + 192) | 0, 384), (h = Q) + } + function x(A, I, g) { + var B = 0, + Q = 0, + C = 0, + E = 0, + i = 0, + a = 0, + r = 0, + o = 0, + e = 0, + t = 0, + f = 0, + c = 0, + y = 0, + s = 0, + w = 0, + h = 0, + D = 0, + u = 0, + p = 0 + for ( + C = 2036477234, + e = 857760878, + t = 1634760805, + E = 1797285236, + o = + n[0 | g] | + (n[(g + 1) | 0] << 8) | + (n[(g + 2) | 0] << 16) | + (n[(g + 3) | 0] << 24), + B = + n[(g + 4) | 0] | + (n[(g + 5) | 0] << 8) | + (n[(g + 6) | 0] << 16) | + (n[(g + 7) | 0] << 24), + Q = + n[(g + 8) | 0] | + (n[(g + 9) | 0] << 8) | + (n[(g + 10) | 0] << 16) | + (n[(g + 11) | 0] << 24), + a = + n[(g + 12) | 0] | + (n[(g + 13) | 0] << 8) | + (n[(g + 14) | 0] << 16) | + (n[(g + 15) | 0] << 24), + c = + n[(g + 16) | 0] | + (n[(g + 17) | 0] << 8) | + (n[(g + 18) | 0] << 16) | + (n[(g + 19) | 0] << 24), + y = + n[(g + 20) | 0] | + (n[(g + 21) | 0] << 8) | + (n[(g + 22) | 0] << 16) | + (n[(g + 23) | 0] << 24), + w = + n[(g + 24) | 0] | + (n[(g + 25) | 0] << 8) | + (n[(g + 26) | 0] << 16) | + (n[(g + 27) | 0] << 24), + h = + n[(g + 28) | 0] | + (n[(g + 29) | 0] << 8) | + (n[(g + 30) | 0] << 16) | + (n[(g + 31) | 0] << 24), + g = + n[0 | I] | + (n[(I + 1) | 0] << 8) | + (n[(I + 2) | 0] << 16) | + (n[(I + 3) | 0] << 24), + f = + n[(I + 4) | 0] | + (n[(I + 5) | 0] << 8) | + (n[(I + 6) | 0] << 16) | + (n[(I + 7) | 0] << 24), + i = + n[(I + 8) | 0] | + (n[(I + 9) | 0] << 8) | + (n[(I + 10) | 0] << 16) | + (n[(I + 11) | 0] << 24), + I = + n[(I + 12) | 0] | + (n[(I + 13) | 0] << 8) | + (n[(I + 14) | 0] << 16) | + (n[(I + 15) | 0] << 24); + (r = o), + (t = Hg((s = g) ^ (g = (o + t) | 0), 16)), + (r = c = Hg(r ^ (o = (t + c) | 0), 12)), + (c = Hg((s = t) ^ (t = (g + c) | 0), 8)), + (o = Hg(r ^ (D = (c + o) | 0), 7)), + (r = B), + (e = Hg((g = (B + e) | 0) ^ f, 16)), + (r = f = Hg(r ^ (B = (e + y) | 0), 12)), + (f = Hg((s = e) ^ (e = (g + f) | 0), 8)), + (g = Hg(r ^ (y = (f + B) | 0), 7)), + (r = Q), + (B = Hg((C = (C + Q) | 0) ^ i, 16)), + (r = i = Hg(r ^ (Q = (B + w) | 0), 12)), + (s = Hg(B ^ (i = (C + i) | 0), 8)), + (C = Hg(r ^ (B = (s + Q) | 0), 7)), + (E = Hg((Q = I) ^ (I = (E + a) | 0), 16)), + (a = Hg((Q = (E + h) | 0) ^ a, 12)), + (I = Hg(E ^ (u = (I + a) | 0), 8)), + (E = Hg(a ^ (Q = (I + Q) | 0), 7)), + (r = B), + (B = Hg((B = I) ^ (I = (g + t) | 0), 16)), + (g = Hg((a = (r + B) | 0) ^ g, 12)), + (I = Hg(B ^ (t = (I + g) | 0), 8)), + (B = Hg(g ^ (w = (a + I) | 0), 7)), + (r = Q), + (Q = Hg((g = (C + e) | 0) ^ c, 16)), + (C = Hg((a = (r + Q) | 0) ^ C, 12)), + (g = Hg(Q ^ (e = (g + C) | 0), 8)), + (Q = Hg(C ^ (h = (a + g) | 0), 7)), + (a = Hg((C = (E + i) | 0) ^ f, 16)), + (E = Hg((i = (a + D) | 0) ^ E, 12)), + (f = Hg(a ^ (C = (C + E) | 0), 8)), + (a = Hg(E ^ (c = (i + f) | 0), 7)), + (i = Hg((E = (o + u) | 0) ^ s, 16)), + (o = Hg((y = (i + y) | 0) ^ o, 12)), + (i = Hg(i ^ (E = (E + o) | 0), 8)), + (o = Hg(o ^ (y = (y + i) | 0), 7)), + 10 != (0 | (p = (p + 1) | 0)); + + ); + xI(A, t), + xI((A + 4) | 0, e), + xI((A + 8) | 0, C), + xI((A + 12) | 0, E), + xI((A + 16) | 0, g), + xI((A + 20) | 0, f), + xI((A + 24) | 0, i), + xI((A + 28) | 0, I) + } + function L(A) { + var I, + g = 0, + B = 0 + ;(h = I = (h - 48) | 0), + (g = + n[(28 + (A |= 0)) | 0] | + (n[(A + 29) | 0] << 8) | + (n[(A + 30) | 0] << 16) | + (n[(A + 31) | 0] << 24)), + (i[(I + 24) >> 2] = + n[(A + 24) | 0] | + (n[(A + 25) | 0] << 8) | + (n[(A + 26) | 0] << 16) | + (n[(A + 27) | 0] << 24)), + (i[(I + 28) >> 2] = g), + (g = + n[(A + 20) | 0] | + (n[(A + 21) | 0] << 8) | + (n[(A + 22) | 0] << 16) | + (n[(A + 23) | 0] << 24)), + (i[(I + 16) >> 2] = + n[(A + 16) | 0] | + (n[(A + 17) | 0] << 8) | + (n[(A + 18) | 0] << 16) | + (n[(A + 19) | 0] << 24)), + (i[(I + 20) >> 2] = g), + (g = + n[(A + 4) | 0] | + (n[(A + 5) | 0] << 8) | + (n[(A + 6) | 0] << 16) | + (n[(A + 7) | 0] << 24)), + (i[I >> 2] = + n[0 | A] | + (n[(A + 1) | 0] << 8) | + (n[(A + 2) | 0] << 16) | + (n[(A + 3) | 0] << 24)), + (i[(I + 4) >> 2] = g), + (g = + n[(A + 12) | 0] | + (n[(A + 13) | 0] << 8) | + (n[(A + 14) | 0] << 16) | + (n[(A + 15) | 0] << 24)), + (i[(I + 8) >> 2] = + n[(A + 8) | 0] | + (n[(A + 9) | 0] << 8) | + (n[(A + 10) | 0] << 16) | + (n[(A + 11) | 0] << 24)), + (i[(I + 12) >> 2] = g), + (g = + n[(A + 40) | 0] | + (n[(A + 41) | 0] << 8) | + (n[(A + 42) | 0] << 16) | + (n[(A + 43) | 0] << 24)), + (i[(I + 32) >> 2] = + n[(A + 36) | 0] | + (n[(A + 37) | 0] << 8) | + (n[(A + 38) | 0] << 16) | + (n[(A + 39) | 0] << 24)), + (i[(I + 36) >> 2] = g), + Vg[i[8957]](I, I, 40, 0, (A + 32) | 0, 0, A), + (g = i[(I + 28) >> 2]), + (B = i[(I + 24) >> 2]), + (C[(A + 24) | 0] = B), + (C[(A + 25) | 0] = B >>> 8), + (C[(A + 26) | 0] = B >>> 16), + (C[(A + 27) | 0] = B >>> 24), + (C[(A + 28) | 0] = g), + (C[(A + 29) | 0] = g >>> 8), + (C[(A + 30) | 0] = g >>> 16), + (C[(A + 31) | 0] = g >>> 24), + (g = i[(I + 20) >> 2]), + (B = i[(I + 16) >> 2]), + (C[(A + 16) | 0] = B), + (C[(A + 17) | 0] = B >>> 8), + (C[(A + 18) | 0] = B >>> 16), + (C[(A + 19) | 0] = B >>> 24), + (C[(A + 20) | 0] = g), + (C[(A + 21) | 0] = g >>> 8), + (C[(A + 22) | 0] = g >>> 16), + (C[(A + 23) | 0] = g >>> 24), + (g = i[(I + 12) >> 2]), + (B = i[(I + 8) >> 2]), + (C[(A + 8) | 0] = B), + (C[(A + 9) | 0] = B >>> 8), + (C[(A + 10) | 0] = B >>> 16), + (C[(A + 11) | 0] = B >>> 24), + (C[(A + 12) | 0] = g), + (C[(A + 13) | 0] = g >>> 8), + (C[(A + 14) | 0] = g >>> 16), + (C[(A + 15) | 0] = g >>> 24), + (g = i[(I + 4) >> 2]), + (B = i[I >> 2]), + (C[0 | A] = B), + (C[(A + 1) | 0] = B >>> 8), + (C[(A + 2) | 0] = B >>> 16), + (C[(A + 3) | 0] = B >>> 24), + (C[(A + 4) | 0] = g), + (C[(A + 5) | 0] = g >>> 8), + (C[(A + 6) | 0] = g >>> 16), + (C[(A + 7) | 0] = g >>> 24), + (g = i[(I + 36) >> 2]), + (B = i[(I + 32) >> 2]), + (C[(A + 36) | 0] = B), + (C[(A + 37) | 0] = B >>> 8), + (C[(A + 38) | 0] = B >>> 16), + (C[(A + 39) | 0] = B >>> 24), + (C[(A + 40) | 0] = g), + (C[(A + 41) | 0] = g >>> 8), + (C[(A + 42) | 0] = g >>> 16), + (C[(A + 43) | 0] = g >>> 24), + XI(A), + (h = (I + 48) | 0) + } + function K(A, I, g) { + var B = 0, + Q = 0, + C = 0, + E = 0, + i = 0, + a = 0, + r = 0, + o = 0, + e = 0, + t = 0, + f = 0, + c = 0, + y = 0, + s = 0, + w = 0, + h = 0, + D = 0, + u = 0, + p = 0, + l = 0, + F = 0 + for ( + Q = 2036477234, + C = 857760878, + E = 1634760805, + i = 1797285236, + w = 20, + o = + n[0 | g] | + (n[(g + 1) | 0] << 8) | + (n[(g + 2) | 0] << 16) | + (n[(g + 3) | 0] << 24), + s = + n[(g + 4) | 0] | + (n[(g + 5) | 0] << 8) | + (n[(g + 6) | 0] << 16) | + (n[(g + 7) | 0] << 24), + h = + n[(g + 8) | 0] | + (n[(g + 9) | 0] << 8) | + (n[(g + 10) | 0] << 16) | + (n[(g + 11) | 0] << 24), + c = + n[(g + 12) | 0] | + (n[(g + 13) | 0] << 8) | + (n[(g + 14) | 0] << 16) | + (n[(g + 15) | 0] << 24), + e = + n[(g + 16) | 0] | + (n[(g + 17) | 0] << 8) | + (n[(g + 18) | 0] << 16) | + (n[(g + 19) | 0] << 24), + a = + n[(g + 20) | 0] | + (n[(g + 21) | 0] << 8) | + (n[(g + 22) | 0] << 16) | + (n[(g + 23) | 0] << 24), + t = + n[(g + 24) | 0] | + (n[(g + 25) | 0] << 8) | + (n[(g + 26) | 0] << 16) | + (n[(g + 27) | 0] << 24), + f = + n[(g + 28) | 0] | + (n[(g + 29) | 0] << 8) | + (n[(g + 30) | 0] << 16) | + (n[(g + 31) | 0] << 24), + g = + n[0 | I] | + (n[(I + 1) | 0] << 8) | + (n[(I + 2) | 0] << 16) | + (n[(I + 3) | 0] << 24), + r = + n[(I + 4) | 0] | + (n[(I + 5) | 0] << 8) | + (n[(I + 6) | 0] << 16) | + (n[(I + 7) | 0] << 24), + B = + n[(I + 8) | 0] | + (n[(I + 9) | 0] << 8) | + (n[(I + 10) | 0] << 16) | + (n[(I + 11) | 0] << 24), + I = + n[(I + 12) | 0] | + (n[(I + 13) | 0] << 8) | + (n[(I + 14) | 0] << 16) | + (n[(I + 15) | 0] << 24); + (D = B), + (B = Hg((E + a) | 0, 7) ^ c), + (y = D ^ Hg((B + E) | 0, 9)), + (u = Hg((B + y) | 0, 13) ^ a), + (c = Hg((y + u) | 0, 18)), + (I = Hg((C + o) | 0, 7) ^ I), + (t = Hg((I + C) | 0, 9) ^ t), + (o = Hg((I + t) | 0, 13) ^ o), + (l = Hg((t + o) | 0, 18)), + (f = Hg((g + Q) | 0, 7) ^ f), + (a = Hg((f + Q) | 0, 9) ^ s), + (p = Hg((a + f) | 0, 13) ^ g), + (F = Hg((a + p) | 0, 18)), + (g = Hg((i + e) | 0, 7) ^ h), + (r = Hg((g + i) | 0, 9) ^ r), + (e = Hg((g + r) | 0, 13) ^ e), + (D = Hg((r + e) | 0, 18)), + (o = Hg(((E ^= c) + g) | 0, 7) ^ o), + (s = Hg((o + E) | 0, 9) ^ a), + (h = Hg((o + s) | 0, 13) ^ g), + (E = Hg((s + h) | 0, 18) ^ E), + (g = Hg(((C ^= l) + B) | 0, 7) ^ p), + (r = Hg((g + C) | 0, 9) ^ r), + (c = Hg((g + r) | 0, 13) ^ B), + (C = Hg((r + c) | 0, 18) ^ C), + (e = Hg(((Q ^= F) + I) | 0, 7) ^ e), + (B = Hg((e + Q) | 0, 9) ^ y), + (I = Hg((B + e) | 0, 13) ^ I), + (Q = Hg((I + B) | 0, 18) ^ Q), + (a = Hg(((i ^= D) + f) | 0, 7) ^ u), + (t = Hg((a + i) | 0, 9) ^ t), + (f = Hg((a + t) | 0, 13) ^ f), + (i = Hg((t + f) | 0, 18) ^ i), + (y = w >>> 0 > 2), + (w = (w - 2) | 0), + y; + + ); + return ( + xI(A, E), + xI((A + 4) | 0, C), + xI((A + 8) | 0, Q), + xI((A + 12) | 0, i), + xI((A + 16) | 0, g), + xI((A + 20) | 0, r), + xI((A + 24) | 0, B), + xI((A + 28) | 0, I), + 0 + ) + } + function q(A, I, g, B, Q, E, a) { + var r, + o, + e, + t, + f, + c, + y, + s = 0 + return ( + (h = r = (h - 560) | 0), + ig((r + 352) | 0, a), + mI((r + 288) | 0, E, 32, 0), + V((r + 352) | 0, (r + 320) | 0, 32, 0), + V((r + 352) | 0, g, B, Q), + UI((r + 352) | 0, (r + 224) | 0), + (o = + n[((s = E) + 32) | 0] | + (n[(s + 33) | 0] << 8) | + (n[(s + 34) | 0] << 16) | + (n[(s + 35) | 0] << 24)), + (e = + n[(s + 36) | 0] | + (n[(s + 37) | 0] << 8) | + (n[(s + 38) | 0] << 16) | + (n[(s + 39) | 0] << 24)), + (t = + n[(s + 40) | 0] | + (n[(s + 41) | 0] << 8) | + (n[(s + 42) | 0] << 16) | + (n[(s + 43) | 0] << 24)), + (f = + n[(s + 44) | 0] | + (n[(s + 45) | 0] << 8) | + (n[(s + 46) | 0] << 16) | + (n[(s + 47) | 0] << 24)), + (c = + n[(s + 48) | 0] | + (n[(s + 49) | 0] << 8) | + (n[(s + 50) | 0] << 16) | + (n[(s + 51) | 0] << 24)), + (E = + n[(s + 52) | 0] | + (n[(s + 53) | 0] << 8) | + (n[(s + 54) | 0] << 16) | + (n[(s + 55) | 0] << 24)), + (y = + n[(s + 60) | 0] | + (n[(s + 61) | 0] << 8) | + (n[(s + 62) | 0] << 16) | + (n[(s + 63) | 0] << 24)), + (s = + n[(s + 56) | 0] | + (n[(s + 57) | 0] << 8) | + (n[(s + 58) | 0] << 16) | + (n[(s + 59) | 0] << 24)), + (C[(A + 56) | 0] = s), + (C[(A + 57) | 0] = s >>> 8), + (C[(A + 58) | 0] = s >>> 16), + (C[(A + 59) | 0] = s >>> 24), + (C[(A + 60) | 0] = y), + (C[(A + 61) | 0] = y >>> 8), + (C[(A + 62) | 0] = y >>> 16), + (C[(A + 63) | 0] = y >>> 24), + (C[(A + 48) | 0] = c), + (C[(A + 49) | 0] = c >>> 8), + (C[(A + 50) | 0] = c >>> 16), + (C[(A + 51) | 0] = c >>> 24), + (C[(A + 52) | 0] = E), + (C[(A + 53) | 0] = E >>> 8), + (C[(A + 54) | 0] = E >>> 16), + (C[(A + 55) | 0] = E >>> 24), + (C[(A + 40) | 0] = t), + (C[(A + 41) | 0] = t >>> 8), + (C[(A + 42) | 0] = t >>> 16), + (C[(A + 43) | 0] = t >>> 24), + (C[(A + 44) | 0] = f), + (C[(A + 45) | 0] = f >>> 8), + (C[(A + 46) | 0] = f >>> 16), + (C[(A + 47) | 0] = f >>> 24), + (C[0 | (E = (A + 32) | 0)] = o), + (C[(E + 1) | 0] = o >>> 8), + (C[(E + 2) | 0] = o >>> 16), + (C[(E + 3) | 0] = o >>> 24), + (C[(E + 4) | 0] = e), + (C[(E + 5) | 0] = e >>> 8), + (C[(E + 6) | 0] = e >>> 16), + (C[(E + 7) | 0] = e >>> 24), + G((r + 224) | 0), + CA(r, (r + 224) | 0), + nI(A, r), + ig((r + 352) | 0, a), + V((r + 352) | 0, A, 64, 0), + V((r + 352) | 0, g, B, Q), + UI((r + 352) | 0, (r + 160) | 0), + G((r + 160) | 0), + (C[(r + 288) | 0] = 248 & n[(r + 288) | 0]), + (C[(r + 319) | 0] = (63 & n[(r + 319) | 0]) | 64), + (function (A, I, g, B) { + var Q, + E, + i, + a, + r, + o, + e, + t, + f, + c, + y, + s, + w, + h, + D, + u, + l, + F, + G, + k, + _, + H, + Y, + b, + m, + v, + U, + S, + N, + M, + d, + P, + R, + J, + x, + L, + K, + q, + X, + V, + W, + T, + j, + Z, + O, + z, + $, + AA, + IA = 0, + gA = 0, + BA = 0, + QA = 0, + CA = 0, + EA = 0, + iA = 0, + nA = 0, + aA = 0, + rA = 0, + oA = 0, + eA = 0, + tA = 0, + fA = 0, + cA = 0, + yA = 0, + sA = 0, + wA = 0, + hA = 0, + DA = 0, + uA = 0, + pA = 0, + lA = 0, + FA = 0, + GA = 0, + kA = 0, + _A = 0, + HA = 0, + YA = 0, + bA = 0, + mA = 0, + vA = 0, + UA = 0, + SA = 0, + NA = 0, + MA = 0, + dA = 0, + PA = 0, + RA = 0, + JA = 0, + xA = 0, + LA = 0, + KA = 0, + qA = 0, + XA = 0, + VA = 0, + WA = 0, + TA = 0, + jA = 0, + ZA = 0, + OA = 0 + ;(RA = HI(I)), + (sA = + n[(I + 2) | 0] | + (n[(I + 3) | 0] << 8) | + (n[(I + 4) | 0] << 16) | + (n[(I + 5) | 0] << 24)), + (WA = HI((I + 5) | 0)), + (YA = p), + (wA = + n[(I + 7) | 0] | + (n[(I + 8) | 0] << 8) | + (n[(I + 9) | 0] << 16) | + (n[(I + 10) | 0] << 24)), + (hA = + n[(I + 10) | 0] | + (n[(I + 11) | 0] << 8) | + (n[(I + 12) | 0] << 16) | + (n[(I + 13) | 0] << 24)), + (mA = HI((I + 13) | 0)), + (oA = p), + (tA = + n[(I + 15) | 0] | + (n[(I + 16) | 0] << 8) | + (n[(I + 17) | 0] << 16) | + (n[(I + 18) | 0] << 24)), + (KA = HI((I + 18) | 0)), + (fA = p), + (bA = HI((I + 21) | 0)), + (iA = + n[(I + 23) | 0] | + (n[(I + 24) | 0] << 8) | + (n[(I + 25) | 0] << 16) | + (n[(I + 26) | 0] << 24)), + (aA = HI((I + 26) | 0)), + (QA = p), + (BA = + n[(I + 28) | 0] | + (n[(I + 29) | 0] << 8) | + (n[(I + 30) | 0] << 16) | + (n[(I + 31) | 0] << 24)), + (NA = HI(g)), + (pA = + n[((I = g) + 2) | 0] | + (n[(I + 3) | 0] << 8) | + (n[(I + 4) | 0] << 16) | + (n[(I + 5) | 0] << 24)), + (XA = HI((I + 5) | 0)), + (rA = p), + (cA = + n[(I + 7) | 0] | + (n[(I + 8) | 0] << 8) | + (n[(I + 9) | 0] << 16) | + (n[(I + 10) | 0] << 24)), + (yA = + n[(I + 10) | 0] | + (n[(I + 11) | 0] << 8) | + (n[(I + 12) | 0] << 16) | + (n[(I + 13) | 0] << 24)), + (VA = HI((I + 13) | 0)), + (eA = p), + (CA = + n[(I + 15) | 0] | + (n[(I + 16) | 0] << 8) | + (n[(I + 17) | 0] << 16) | + (n[(I + 18) | 0] << 24)), + (qA = HI((I + 18) | 0)), + (gA = p), + (JA = HI((I + 21) | 0)), + (IA = + n[(I + 23) | 0] | + (n[(I + 24) | 0] << 8) | + (n[(I + 25) | 0] << 16) | + (n[(I + 26) | 0] << 24)), + (nA = HI((I + 26) | 0)), + (g = p), + (I = + n[(I + 28) | 0] | + (n[(I + 29) | 0] << 8) | + (n[(I + 30) | 0] << 16) | + (n[(I + 31) | 0] << 24)), + (Z = HI(B)), + (O = + n[(B + 2) | 0] | + (n[(B + 3) | 0] << 8) | + (n[(B + 4) | 0] << 16) | + (n[(B + 5) | 0] << 24)), + (z = HI((B + 5) | 0)), + ($ = p), + (MA = + n[(B + 7) | 0] | + (n[(B + 8) | 0] << 8) | + (n[(B + 9) | 0] << 16) | + (n[(B + 10) | 0] << 24)), + (xA = + n[(B + 10) | 0] | + (n[(B + 11) | 0] << 8) | + (n[(B + 12) | 0] << 16) | + (n[(B + 13) | 0] << 24)), + (LA = HI((B + 13) | 0)), + (SA = p), + (vA = + n[(B + 15) | 0] | + (n[(B + 16) | 0] << 8) | + (n[(B + 17) | 0] << 16) | + (n[(B + 18) | 0] << 24)), + (TA = HI((B + 18) | 0)), + (_A = p), + (FA = HI((B + 21) | 0)), + (I = eg( + (Q = (I >>> 7) | 0), + 0, + (E = 2097151 & (((3 & QA) << 30) | (aA >>> 2))), + 0 + )), + (EA = p), + (QA = I), + (I = eg( + (i = 2097151 & (((3 & g) << 30) | (nA >>> 2))), + 0, + (a = (BA >>> 7) | 0), + 0 + )), + (g = (p + EA) | 0), + (EA = BA = (QA + I) | 0), + (BA = I >>> 0 > BA >>> 0 ? (g + 1) | 0 : g), + (I = eg(E, 0, i, 0)), + (QA = p), + (IA = + ((g = eg((r = (IA >>> 5) & 2097151), 0, a, 0)) + + I) | + 0), + (I = (p + QA) | 0), + (g = I = g >>> 0 > IA >>> 0 ? (I + 1) | 0 : I), + (I = eg(Q, 0, (o = (iA >>> 5) & 2097151), 0)), + (g = (p + g) | 0), + (iA = IA = (I + IA) | 0), + (lA = g = I >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), + (DA = ((I = IA) - -1048576) | 0), + (uA = g = + (g - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (I = ((IA = g >> 21) + BA) | 0), + (aA = I = + (g = ((2097151 & g) << 11) | (DA >>> 21)) >>> 0 > + (BA = QA = (g + EA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (GA = ((I = BA) - -1048576) | 0), + (nA = EA = + (aA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (QA = eg(Q, 0, a, 0)), + (g = HA = + ((PA = p) - + ((((I = QA) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (IA = EA >> 21), + (HA = ((2097151 & EA) << 11) | (GA >>> 21)), + (QA = + (I - + (EA = -2097152 & (dA = (I - -1048576) | 0))) | + 0), + (I = + (((PA - (((I >>> 0 < EA >>> 0) + g) | 0)) | 0) + + IA) | + 0), + (P = I = + QA >>> 0 > (v = (HA + QA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (EA = eg(v, I, -683901, -1)), + (QA = p), + (R = I = g >> 21), + (I = eg( + (S = ((2097151 & g) << 11) | (dA >>> 21)), + I, + 136657, + 0 + )), + (IA = (p + QA) | 0), + (HA = g = (I + EA) | 0), + (EA = I >>> 0 > g >>> 0 ? (IA + 1) | 0 : IA), + (I = eg( + (e = 2097151 & (((1 & eA) << 31) | (VA >>> 1))), + 0, + E, + 0 + )), + (g = p), + (IA = I), + (I = eg((t = (yA >>> 4) & 2097151), 0, a, 0)), + (g = (p + g) | 0), + (g = + I >>> 0 > (IA = (IA + I) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (I = eg((f = (CA >>> 6) & 2097151), 0, o, 0)), + (g = (p + g) | 0), + (g = + I >>> 0 > (IA = (I + IA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (m = I = 0), + (QA = IA), + (IA = eg( + (c = 2097151 & JA), + I, + (y = 2097151 & (((7 & fA) << 29) | (KA >>> 3))), + 0 + )), + (I = (p + g) | 0), + (I = + IA >>> 0 > (QA = (QA + IA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (IA = eg( + (s = 2097151 & (((7 & gA) << 29) | (qA >>> 3))), + 0, + (w = 2097151 & bA), + 0 + )), + (g = (p + I) | 0), + (g = + IA >>> 0 > (QA = (IA + QA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (I = eg(r, 0, (h = (tA >>> 6) & 2097151), 0)), + (IA = (p + g) | 0), + (IA = + I >>> 0 > (QA = (I + QA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (g = eg( + i, + 0, + (D = 2097151 & (((1 & oA) << 31) | (mA >>> 1))), + 0 + )), + (I = (p + IA) | 0), + (g = + g >>> 0 > (IA = QA = (g + QA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (I = eg(Q, 0, (u = (hA >>> 4) & 2097151), 0)), + (g = (p + g) | 0), + (fA = IA = (I + IA) | 0), + (QA = I >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), + (I = eg(E, 0, t, 0)), + (g = p), + (gA = + ((IA = I) + + (I = eg((l = (cA >>> 7) & 2097151), 0, a, 0))) | + 0), + (IA = (p + g) | 0), + (IA = I >>> 0 > gA >>> 0 ? (IA + 1) | 0 : IA), + (g = eg(o, 0, e, 0)), + (I = (p + IA) | 0), + (I = + g >>> 0 > (gA = (g + gA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (IA = eg(f, 0, w, 0)), + (g = (p + I) | 0), + (g = + IA >>> 0 > (gA = (IA + gA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (I = eg(c, m, h, 0)), + (g = (p + g) | 0), + (g = + I >>> 0 > (IA = (I + gA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (gA = ((I = IA) + (IA = eg(y, 0, s, 0))) | 0), + (I = (p + g) | 0), + (I = IA >>> 0 > gA >>> 0 ? (I + 1) | 0 : I), + (g = eg(r, 0, D, 0)), + (IA = (p + I) | 0), + (IA = + g >>> 0 > (gA = (g + gA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (g = eg(i, 0, u, 0)), + (I = (p + IA) | 0), + (g = + g >>> 0 > (IA = gA = (g + gA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (I = eg(Q, 0, (F = (wA >>> 7) & 2097151), 0)), + (g = (p + g) | 0), + (yA = IA = (I + IA) | 0), + (CA = g = I >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), + (eA = ((I = IA) - -1048576) | 0), + (gA = g = + (g - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (I = ((IA = g >> 21) + QA) | 0), + (g = I = + (g = ((2097151 & g) << 11) | (eA >>> 21)) >>> 0 > + (cA = (g + fA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (I = (I + EA) | 0), + (I = + (IA = QA = cA) >>> 0 > (cA = (IA + HA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (EA = + ((EA = g) - + ((((g = QA) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (oA = (g - -1048576) | 0), + (tA = ((g = IA = cA) - (IA = -2097152 & oA)) | 0), + (fA = + (I - (((QA = EA) + (g >>> 0 < IA >>> 0)) | 0)) | + 0), + (N = (BA - (I = -2097152 & GA)) | 0), + (J = g = + (aA - (((I >>> 0 > BA >>> 0) + nA) | 0)) | 0), + (I = eg(S, R, -997805, -1)), + (IA = (p + CA) | 0), + (IA = + I >>> 0 > (BA = (I + yA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (CA = ((I = BA) + (BA = eg(v, P, 136657, 0))) | 0), + (I = (p + IA) | 0), + (g = eg(N, g, -683901, -1)), + (I = + (p + (BA >>> 0 > CA >>> 0 ? (I + 1) | 0 : I)) | + 0), + (I = + g >>> 0 > (IA = (g + CA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (EA = (IA - (g = -2097152 & eA)) | 0), + (CA = (I - (((g >>> 0 > IA >>> 0) + gA) | 0)) | 0), + (I = eg(E, 0, l, 0)), + (IA = p), + (BA = + ((g = eg( + (G = 2097151 & (((3 & rA) << 30) | (XA >>> 2))), + 0, + a, + 0 + )) + + I) | + 0), + (I = (p + IA) | 0), + (I = g >>> 0 > BA >>> 0 ? (I + 1) | 0 : I), + (IA = eg(o, 0, t, 0)), + (g = (p + I) | 0), + (g = + IA >>> 0 > (BA = (IA + BA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (I = eg(e, 0, w, 0)), + (IA = (p + g) | 0), + (IA = + I >>> 0 > (BA = (I + BA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (g = eg(f, 0, y, 0)), + (I = (p + IA) | 0), + (I = + g >>> 0 > (BA = (g + BA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (IA = eg(c, m, D, 0)), + (g = (p + I) | 0), + (g = + IA >>> 0 > (BA = (IA + BA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (IA = eg(s, 0, h, 0)), + (I = (p + g) | 0), + (I = + IA >>> 0 > (BA = (IA + BA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (IA = eg(r, 0, u, 0)), + (g = (p + I) | 0), + (g = + IA >>> 0 > (BA = (IA + BA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (I = eg(i, 0, F, 0)), + (IA = (p + g) | 0), + (IA = + I >>> 0 > (BA = (I + BA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (g = eg( + Q, + 0, + (k = 2097151 & (((3 & YA) << 30) | (WA >>> 2))), + 0 + )), + (I = (p + IA) | 0), + (BA = + g >>> 0 > (gA = BA = (g + BA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (I = eg(E, 0, G, 0)), + (g = p), + (IA = I), + (I = eg((_ = (pA >>> 5) & 2097151), 0, a, 0)), + (g = (p + g) | 0), + (g = + I >>> 0 > (IA = (IA + I) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (nA = ((I = eg(o, 0, l, 0)) + IA) | 0), + (IA = (p + g) | 0), + (IA = I >>> 0 > nA >>> 0 ? (IA + 1) | 0 : IA), + (g = eg(t, 0, w, 0)), + (I = (p + IA) | 0), + (I = + g >>> 0 > (nA = (g + nA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (g = eg(e, 0, y, 0)), + (I = (p + I) | 0), + (I = + g >>> 0 > (IA = (g + nA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (nA = ((g = IA) + (IA = eg(f, 0, h, 0))) | 0), + (g = (p + I) | 0), + (g = IA >>> 0 > nA >>> 0 ? (g + 1) | 0 : g), + (I = eg(c, m, u, 0)), + (g = (p + g) | 0), + (g = + I >>> 0 > (IA = (I + nA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (nA = ((I = eg(s, 0, D, 0)) + IA) | 0), + (IA = (p + g) | 0), + (IA = I >>> 0 > nA >>> 0 ? (IA + 1) | 0 : IA), + (g = eg(r, 0, F, 0)), + (I = (p + IA) | 0), + (I = + g >>> 0 > (nA = (g + nA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (g = eg(i, 0, k, 0)), + (I = (p + I) | 0), + (g = I = + g >>> 0 > (IA = (g + nA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (I = eg(Q, 0, (H = (sA >>> 5) & 2097151), 0)), + (g = (p + g) | 0), + (cA = IA = (I + IA) | 0), + (XA = g = I >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), + (AA = ((I = IA) - -1048576) | 0), + (VA = IA = + (g - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (I = ((I = IA >> 21) + BA) | 0), + (yA = IA = + ((g = ((2097151 & IA) << 11) | (AA >>> 21)) + + gA) | + 0), + (qA = I = g >>> 0 > IA >>> 0 ? (I + 1) | 0 : I), + (WA = ((I = IA) - -1048576) | 0), + (JA = IA = + (qA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (g = ((I = IA >> 21) + CA) | 0), + (eA = BA = + ((IA = ((2097151 & IA) << 11) | (WA >>> 21)) + + EA) | + 0), + (PA = g = IA >>> 0 > BA >>> 0 ? (g + 1) | 0 : g), + (mA = ((I = BA) - -1048576) | 0), + (HA = IA = + (g - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (I = ((I = IA >> 21) + fA) | 0), + (CA = IA = + ((g = ((2097151 & IA) << 11) | (mA >>> 21)) + + tA) | + 0), + (sA = IA = + ((GA = I = g >>> 0 > IA >>> 0 ? (I + 1) | 0 : I) - + ((((I = IA) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (aA = + ((2097151 & IA) << 11) | + ((bA = (I - -1048576) | 0) >>> 21)), + (gA = IA >> 21), + (I = eg(E, 0, f, 0)), + (g = p), + (IA = I), + (I = eg(a, 0, e, 0)), + (g = (p + g) | 0), + (g = + I >>> 0 > (IA = (IA + I) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (I = eg(c, m, w, 0)), + (g = (p + g) | 0), + (g = + I >>> 0 > (IA = (I + IA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (BA = ((I = IA) + (IA = eg(o, 0, s, 0))) | 0), + (I = (p + g) | 0), + (I = IA >>> 0 > BA >>> 0 ? (I + 1) | 0 : I), + (g = eg(r, 0, y, 0)), + (IA = (p + I) | 0), + (IA = + g >>> 0 > (BA = (g + BA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (g = eg(i, 0, h, 0)), + (I = (p + IA) | 0), + (I = + g >>> 0 > (BA = (g + BA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (IA = eg(Q, 0, D, 0)), + (g = (p + I) | 0), + (g = + IA >>> 0 > (BA = (IA + BA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (IA = eg(S, R, -683901, -1)), + (g = ((I = g) + p) | 0), + (g = + IA >>> 0 > (EA = (BA + IA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (IA = EA), + (EA = + ((EA = I) - + ((((I = BA) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (pA = (I - -1048576) | 0), + (nA = ((I = IA) - (IA = -2097152 & pA)) | 0), + (IA = + (g - (((BA = EA) + (I >>> 0 < IA >>> 0)) | 0)) | + 0), + (I = ((I = QA >> 21) + IA) | 0), + (I = + (g = ((2097151 & QA) << 11) | (oA >>> 21)) >>> 0 > + (QA = (g + nA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (EA = + ((g = QA) - + (IA = -2097152 & (rA = (g - -1048576) | 0))) | + 0), + (IA = + (((I - + (((g >>> 0 < IA >>> 0) + + (QA = nA = + (I - (((g >>> 0 < 4293918720) - 1) | 0)) | + 0)) | + 0)) | + 0) + + gA) | + 0), + (x = aA = (EA + aA) | 0), + (L = IA = EA >>> 0 > aA >>> 0 ? (IA + 1) | 0 : IA), + (nA = eg(aA, IA, -683901, -1)), + (EA = p), + (g = eg(o, 0, c, m)), + (I = p), + (IA = g), + (g = eg(a, 0, f, 0)), + (I = (p + I) | 0), + (I = + g >>> 0 > (IA = (IA + g) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (gA = ((g = IA) + (IA = eg(E, 0, s, 0))) | 0), + (g = (p + I) | 0), + (g = IA >>> 0 > gA >>> 0 ? (g + 1) | 0 : g), + (IA = eg(r, 0, w, 0)), + (I = (p + g) | 0), + (I = + IA >>> 0 > (gA = (IA + gA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (IA = eg(i, 0, y, 0)), + (g = (p + I) | 0), + (g = + IA >>> 0 > (gA = (IA + gA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (I = eg(Q, 0, h, 0)), + (IA = (p + g) | 0), + (IA = + I >>> 0 > (gA = (I + gA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (I = ((I = BA >> 21) + IA) | 0), + (wA = gA = + ((I = + (g = ((2097151 & BA) << 11) | (pA >>> 21)) >>> + 0 > + (BA = (g + gA) | 0) >>> 0 + ? (I + 1) | 0 + : I) - + ((((g = BA) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (BA = + (g - + (IA = -2097152 & (UA = (g - -1048576) | 0))) | + 0), + (IA = + (((I - (((g >>> 0 < IA >>> 0) + gA) | 0)) | 0) + + (QA >> 21)) | + 0), + (K = BA = + ((I = ((2097151 & QA) << 11) | (rA >>> 21)) + + BA) | + 0), + (q = IA = I >>> 0 > BA >>> 0 ? (IA + 1) | 0 : IA), + (g = eg(BA, IA, 136657, 0)), + (I = (p + EA) | 0), + (KA = IA = (g + nA) | 0), + (hA = g >>> 0 > IA >>> 0 ? (I + 1) | 0 : I), + (g = eg(w, 0, _, 0)), + (I = p), + (IA = g), + (g = eg((Y = 2097151 & NA), 0, o, 0)), + (I = (p + I) | 0), + (I = + g >>> 0 > (IA = (IA + g) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (BA = ((g = IA) + (IA = eg(y, 0, G, 0))) | 0), + (g = (p + I) | 0), + (g = IA >>> 0 > BA >>> 0 ? (g + 1) | 0 : g), + (I = eg(h, 0, l, 0)), + (IA = (p + g) | 0), + (IA = + I >>> 0 > (BA = (I + BA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (g = eg(t, 0, D, 0)), + (I = (p + IA) | 0), + (I = + g >>> 0 > (BA = (g + BA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (IA = eg(e, 0, u, 0)), + (g = (p + I) | 0), + (g = + IA >>> 0 > (BA = (IA + BA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (IA = eg(f, 0, F, 0)), + (I = (p + g) | 0), + (I = + IA >>> 0 > (BA = (IA + BA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (IA = eg(c, m, H, 0)), + (g = (p + I) | 0), + (g = + IA >>> 0 > (BA = (IA + BA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (I = eg(s, 0, k, 0)), + (IA = (p + g) | 0), + (IA = + I >>> 0 > (BA = (I + BA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (g = eg(r, 0, (b = 2097151 & RA), 0)), + (I = (p + IA) | 0), + (I = + g >>> 0 > (BA = (g + BA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (QA = BA = + ((IA = + ((n[(B + 23) | 0] | + (n[(B + 24) | 0] << 8) | + (n[(B + 25) | 0] << 16) | + (n[(B + 26) | 0] << 24)) >>> + 5) & + 2097151) + + BA) | + 0), + (BA = IA >>> 0 > BA >>> 0 ? (I + 1) | 0 : I), + (I = eg(y, 0, _, 0)), + (g = p), + (IA = I), + (I = eg(w, 0, Y, 0)), + (g = (p + g) | 0), + (g = + I >>> 0 > (IA = (IA + I) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (gA = ((I = eg(h, 0, G, 0)) + IA) | 0), + (IA = (p + g) | 0), + (IA = I >>> 0 > gA >>> 0 ? (IA + 1) | 0 : IA), + (g = eg(D, 0, l, 0)), + (I = (p + IA) | 0), + (I = + g >>> 0 > (gA = (g + gA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (g = eg(t, 0, u, 0)), + (I = (p + I) | 0), + (I = + g >>> 0 > (IA = (g + gA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (gA = ((g = IA) + (IA = eg(e, 0, F, 0))) | 0), + (g = (p + I) | 0), + (g = IA >>> 0 > gA >>> 0 ? (g + 1) | 0 : g), + (I = eg(f, 0, k, 0)), + (g = (p + g) | 0), + (g = + I >>> 0 > (IA = (I + gA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (gA = ((I = eg(c, m, b, 0)) + IA) | 0), + (IA = (p + g) | 0), + (IA = I >>> 0 > gA >>> 0 ? (IA + 1) | 0 : IA), + (g = eg(s, 0, H, 0)), + (I = (p + IA) | 0), + (I = + g >>> 0 > (gA = (g + gA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (gA = IA = ((g = 2097151 & FA) + gA) | 0), + (tA = IA = + ((oA = I = g >>> 0 > IA >>> 0 ? (I + 1) | 0 : I) - + ((((I = IA) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (I = + ((2097151 & IA) << 11) | + ((YA = (I - -1048576) | 0) >>> 21)), + (IA = (((IA >>> 21) | 0) + BA) | 0), + (rA = IA = + I >>> 0 > (QA = (I + QA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (NA = (iA - (I = -2097152 & DA)) | 0), + (FA = (lA - (((I >>> 0 > iA >>> 0) + uA) | 0)) | 0), + (g = eg(E, 0, r, 0)), + (I = p), + (IA = g), + (g = eg(a, 0, c, m)), + (I = (p + I) | 0), + (I = + g >>> 0 > (IA = (IA + g) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (BA = ((g = IA) + (IA = eg(i, 0, o, 0))) | 0), + (g = (p + I) | 0), + (g = IA >>> 0 > BA >>> 0 ? (g + 1) | 0 : g), + (I = eg(Q, 0, w, 0)), + (IA = (p + g) | 0), + (IA = + I >>> 0 > (BA = (I + BA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (EA = BA), + (I = eg(a, 0, s, 0)), + (g = p), + (BA = I), + (I = eg(E, 0, c, m)), + (g = (p + g) | 0), + (g = + I >>> 0 > (BA = (BA + I) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (iA = ((I = BA) + (BA = eg(o, 0, r, 0))) | 0), + (I = (p + g) | 0), + (I = BA >>> 0 > iA >>> 0 ? (I + 1) | 0 : I), + (g = eg(i, 0, w, 0)), + (I = (p + I) | 0), + (I = + g >>> 0 > (BA = (g + iA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (iA = ((g = BA) + (BA = eg(Q, 0, y, 0))) | 0), + (g = (p + I) | 0), + (aA = g = BA >>> 0 > iA >>> 0 ? (g + 1) | 0 : g), + (lA = ((I = BA = iA) - -1048576) | 0), + (nA = iA = + (g - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (g = ((I = iA >> 21) + IA) | 0), + (EA = g = + (IA = EA = + ((iA = ((2097151 & iA) << 11) | (lA >>> 21)) + + EA) | + 0) >>> + 0 < + iA >>> 0 + ? (g + 1) | 0 + : g), + (uA = ((I = IA) - -1048576) | 0), + (g = + ((I = + (iA = DA = + (g - (((I >>> 0 < 4293918720) - 1) | 0)) | + 0) >> 21) + + FA) | + 0), + (X = g = + (DA = ((2097151 & iA) << 11) | (uA >>> 21)) >>> + 0 > + (U = NA = (DA + NA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (FA = eg(U, g, 470296, 0)), + (DA = p), + (M = (IA - (g = -2097152 & uA)) | 0), + (dA = I = + (EA - (((g >>> 0 > IA >>> 0) + iA) | 0)) | 0), + (g = eg(N, J, 666643, 0)), + (IA = (p + DA) | 0), + (IA = + g >>> 0 > (iA = (g + FA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (g = eg(M, I, 654183, 0)), + (I = (p + IA) | 0), + (g = + g >>> 0 > (EA = iA = (g + iA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (I = (BA - (IA = -2097152 & lA)) | 0), + (IA = + ((wA >> 21) + + (iA = + (aA - (((IA >>> 0 > BA >>> 0) + nA) | 0)) | + 0)) | + 0), + (V = nA = + ((BA = ((2097151 & wA) << 11) | (UA >>> 21)) + + I) | + 0), + (RA = IA = BA >>> 0 > nA >>> 0 ? (IA + 1) | 0 : IA), + (jA = (QA - -1048576) | 0), + (BA = iA = + (rA - (((QA >>> 0 < 4293918720) - 1) | 0)) | 0), + (I = eg(nA, IA, -997805, -1)), + (g = (p + g) | 0), + (I = + ((g = + I >>> 0 > (IA = (I + EA) | 0) >>> 0 + ? (g + 1) | 0 + : g) + + rA) | + 0), + (I = + IA >>> 0 > (QA = (IA + QA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (FA = ((IA = QA) - (g = -2097152 & jA)) | 0), + (DA = (I - (((g >>> 0 > IA >>> 0) + BA) | 0)) | 0), + (I = eg(M, dA, 470296, 0)), + (g = p), + (QA = ((IA = I) + (I = eg(U, X, 666643, 0))) | 0), + (IA = (p + g) | 0), + (IA = I >>> 0 > QA >>> 0 ? (IA + 1) | 0 : IA), + (g = eg(nA, RA, 654183, 0)), + (I = (p + IA) | 0), + (g = + (oA + + (g >>> 0 > (QA = (g + QA) | 0) >>> 0 + ? (I + 1) | 0 + : I)) | + 0), + (rA = + ((IA = (gA + QA) | 0) - (I = -2097152 & YA)) | 0), + (iA = + ((g = IA >>> 0 < gA >>> 0 ? (g + 1) | 0 : g) - + (((I >>> 0 > IA >>> 0) + tA) | 0)) | + 0), + (g = eg(h, 0, _, 0)), + (I = p), + (IA = g), + (g = eg(y, 0, Y, 0)), + (I = (p + I) | 0), + (I = + g >>> 0 > (IA = (IA + g) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (g = eg(D, 0, G, 0)), + (I = (p + I) | 0), + (I = + g >>> 0 > (IA = (g + IA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (QA = ((g = IA) + (IA = eg(u, 0, l, 0))) | 0), + (g = (p + I) | 0), + (g = IA >>> 0 > QA >>> 0 ? (g + 1) | 0 : g), + (I = eg(t, 0, F, 0)), + (IA = (p + g) | 0), + (IA = + I >>> 0 > (QA = (I + QA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (I = eg(e, 0, k, 0)), + (g = (p + IA) | 0), + (g = + I >>> 0 > (QA = (I + QA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (IA = eg(f, 0, H, 0)), + (I = (p + g) | 0), + (I = + IA >>> 0 > (QA = (IA + QA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (g = eg(s, 0, b, 0)), + (I = (p + I) | 0), + (I = + g >>> 0 > (IA = (g + QA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (g = IA), + (QA = + (IA = + 2097151 & (((7 & _A) << 29) | (TA >>> 3))) >>> + 0 > + (gA = QA = (g + IA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (I = eg(D, 0, _, 0)), + (g = p), + (EA = ((IA = I) + (I = eg(h, 0, Y, 0))) | 0), + (IA = (p + g) | 0), + (IA = I >>> 0 > EA >>> 0 ? (IA + 1) | 0 : IA), + (g = eg(u, 0, G, 0)), + (I = (p + IA) | 0), + (I = + g >>> 0 > (EA = (g + EA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (IA = eg(F, 0, l, 0)), + (g = (p + I) | 0), + (g = + IA >>> 0 > (EA = (IA + EA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (IA = eg(t, 0, k, 0)), + (I = (p + g) | 0), + (I = + IA >>> 0 > (EA = (IA + EA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (IA = eg(e, 0, H, 0)), + (g = (p + I) | 0), + (g = + IA >>> 0 > (EA = (IA + EA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (I = eg(f, 0, b, 0)), + (IA = (p + g) | 0), + (I = + I >>> 0 > (g = EA = (I + EA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (lA = IA = (EA + (g = (vA >>> 6) & 2097151)) | 0), + (fA = IA = + ((aA = I = g >>> 0 > IA >>> 0 ? (I + 1) | 0 : I) - + ((((I = IA) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (I = + ((2097151 & IA) << 11) | + ((uA = (I - -1048576) | 0) >>> 21)), + (IA = (((IA >>> 21) | 0) + QA) | 0), + (nA = IA = + I >>> 0 > (gA = (I + gA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (wA = ((I = gA) - -1048576) | 0), + (EA = IA = + (IA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (I = ((g = (IA >>> 21) | 0) + iA) | 0), + (oA = QA = + ((IA = ((2097151 & IA) << 11) | (wA >>> 21)) + + rA) | + 0), + (pA = IA = + ((iA = I = + IA >>> 0 > QA >>> 0 ? (I + 1) | 0 : I) - + ((((I = QA) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (I = + ((2097151 & IA) << 11) | + ((tA = (I - -1048576) | 0) >>> 21)), + (IA = ((IA >> 21) + DA) | 0), + (I = + ((g = IA = + I >>> 0 > (QA = (I + FA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA) + + hA) | + 0), + (rA = + ((rA = g) - + ((((g = QA) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (ZA = (g - -1048576) | 0), + (OA = + ((g = IA = _A = (QA + KA) | 0) - + (IA = -2097152 & ZA)) | + 0), + (kA = + ((I = QA >>> 0 > _A >>> 0 ? (I + 1) | 0 : I) - + (((QA = rA) + (g >>> 0 < IA >>> 0)) | 0)) | + 0), + (I = eg(K, q, -997805, -1)), + (g = (p + iA) | 0), + (UA = IA = (I + oA) | 0), + (rA = I >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), + (g = eg(V, RA, 470296, 0)), + (I = p), + (IA = g), + (g = eg(M, dA, 666643, 0)), + (I = (p + I) | 0), + (I = + ((I = + g >>> 0 > (IA = (IA + g) | 0) >>> 0 + ? (I + 1) | 0 + : I) + + nA) | + 0), + (I = + (g = (IA + gA) | 0) >>> 0 < gA >>> 0 + ? (I + 1) | 0 + : I), + (wA = ((IA = g) - (g = -2097152 & wA)) | 0), + (hA = (I - (((g >>> 0 > IA >>> 0) + EA) | 0)) | 0), + (I = eg(V, RA, 666643, 0)), + (g = (p + aA) | 0), + (oA = IA = (I + lA) | 0), + (iA = I >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), + (g = eg(u, 0, _, 0)), + (I = p), + (IA = g), + (g = eg(D, 0, Y, 0)), + (I = (p + I) | 0), + (I = + g >>> 0 > (IA = (IA + g) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (g = eg(F, 0, G, 0)), + (I = (p + I) | 0), + (I = + g >>> 0 > (IA = (g + IA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (gA = ((g = IA) + (IA = eg(k, 0, l, 0))) | 0), + (g = (p + I) | 0), + (g = IA >>> 0 > gA >>> 0 ? (g + 1) | 0 : g), + (I = eg(t, 0, H, 0)), + (IA = (p + g) | 0), + (IA = + I >>> 0 > (gA = (I + gA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (I = eg(e, 0, b, 0)), + (g = (p + IA) | 0), + (I = g = + I >>> 0 > (gA = (I + gA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (EA = gA = + ((IA = + 2097151 & (((1 & SA) << 31) | (LA >>> 1))) + + gA) | + 0), + (gA = IA >>> 0 > gA >>> 0 ? (I + 1) | 0 : I), + (g = eg(F, 0, _, 0)), + (I = p), + (IA = g), + (g = eg(u, 0, Y, 0)), + (I = (p + I) | 0), + (I = + g >>> 0 > (IA = (IA + g) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (nA = ((g = IA) + (IA = eg(k, 0, G, 0))) | 0), + (g = (p + I) | 0), + (g = IA >>> 0 > nA >>> 0 ? (g + 1) | 0 : g), + (I = eg(H, 0, l, 0)), + (g = (p + g) | 0), + (g = + I >>> 0 > (IA = (I + nA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (nA = ((I = eg(t, 0, b, 0)) + IA) | 0), + (IA = (p + g) | 0), + (I = I >>> 0 > (g = nA) >>> 0 ? (IA + 1) | 0 : IA), + (aA = IA = (nA + (g = (xA >>> 4) & 2097151)) | 0), + (xA = IA = + ((YA = I = g >>> 0 > IA >>> 0 ? (I + 1) | 0 : I) - + ((((I = IA) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (I = + ((2097151 & IA) << 11) | + ((TA = (I - -1048576) | 0) >>> 21)), + (IA = (((IA >>> 21) | 0) + gA) | 0), + (nA = EA = (I + EA) | 0), + (SA = IA = I >>> 0 > EA >>> 0 ? (IA + 1) | 0 : IA), + (KA = ((I = EA) - -1048576) | 0), + (vA = IA = + (IA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (I = ((g = (IA >>> 21) | 0) + iA) | 0), + (lA = IA = + ((_A = + ((IA = + (IA = + ((2097151 & IA) << 11) | (KA >>> 21)) >>> + 0 > + (g = gA = (IA + oA) | 0) >>> 0 + ? (I + 1) | 0 + : I) - + ((((I = -2097152 & uA) >>> 0 > g >>> 0) + + fA) | + 0)) | + 0) - + ((((I = EA = (g - I) | 0) >>> 0 < 4293918720) - + 1) | + 0)) | + 0), + (g = ((g = IA >> 21) + hA) | 0), + (FA = IA = + ((I = + ((2097151 & IA) << 11) | + ((NA = (I - -1048576) | 0) >>> 21)) + + wA) | + 0), + (uA = g = I >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), + (DA = ((I = IA) - -1048576) | 0), + (wA = gA = + (g - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (d = (CA - (I = -2097152 & bA)) | 0), + (LA = IA = + (GA - (((I >>> 0 > CA >>> 0) + sA) | 0)) | 0), + (I = ((g = gA >> 21) + rA) | 0), + (I = + (gA = ((2097151 & gA) << 11) | (DA >>> 21)) >>> + 0 > + (CA = (gA + UA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (iA = + ((gA = eg(x, L, 136657, 0)) + + ((CA - (g = -2097152 & tA)) | 0)) | + 0), + (g = + (p + + ((I - (((g >>> 0 > CA >>> 0) + pA) | 0)) | 0)) | + 0), + (g = gA >>> 0 > iA >>> 0 ? (g + 1) | 0 : g), + (IA = eg(d, IA, -683901, -1)), + (I = (p + g) | 0), + (iA = gA = (IA + iA) | 0), + (oA = IA = + ((hA = I = + IA >>> 0 > gA >>> 0 ? (I + 1) | 0 : I) - + ((((I = gA) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (g = ((g = IA >> 21) + kA) | 0), + (CA = IA = + ((I = + ((2097151 & IA) << 11) | + ((bA = (I - -1048576) | 0) >>> 21)) + + OA) | + 0), + (tA = g = I >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), + (fA = IA = + (g - ((((I = IA) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (UA = + ((2097151 & IA) << 11) | + ((GA = (I - -1048576) | 0) >>> 21)), + (pA = IA >> 21), + (g = eg(o, 0, _, 0)), + (I = p), + (IA = g), + (g = eg(E, 0, Y, 0)), + (I = (p + I) | 0), + (I = + g >>> 0 > (IA = (IA + g) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (gA = ((g = eg(w, 0, G, 0)) + IA) | 0), + (IA = (p + I) | 0), + (IA = g >>> 0 > gA >>> 0 ? (IA + 1) | 0 : IA), + (I = eg(y, 0, l, 0)), + (g = (p + IA) | 0), + (g = + I >>> 0 > (gA = (I + gA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (IA = eg(t, 0, h, 0)), + (I = (p + g) | 0), + (I = + IA >>> 0 > (gA = (IA + gA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (IA = eg(e, 0, D, 0)), + (g = (p + I) | 0), + (g = + IA >>> 0 > (gA = (IA + gA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (IA = eg(f, 0, u, 0)), + (I = (p + g) | 0), + (I = + IA >>> 0 > (gA = (IA + gA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (g = eg(c, m, k, 0)), + (IA = (p + I) | 0), + (IA = + g >>> 0 > (gA = (g + gA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (I = eg(s, 0, F, 0)), + (g = (p + IA) | 0), + (g = + I >>> 0 > (gA = (I + gA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (IA = eg(r, 0, H, 0)), + (I = (p + g) | 0), + (I = + IA >>> 0 > (gA = (IA + gA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (IA = eg(i, 0, b, 0)), + (g = (p + I) | 0), + (g = + IA >>> 0 > (gA = (IA + gA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (I = HI((B + 26) | 0)), + (IA = + 2097151 & (((3 & (IA = p)) << 30) | (I >>> 2))), + (I = g), + (sA = gA = (IA + gA) | 0), + (gA = I = IA >>> 0 > gA >>> 0 ? (I + 1) | 0 : I), + (I = eg(N, J, 470296, 0)), + (g = p), + (kA = ((IA = I) + (I = eg(v, P, 666643, 0))) | 0), + (IA = (p + g) | 0), + (IA = I >>> 0 > kA >>> 0 ? (IA + 1) | 0 : IA), + (I = eg(U, X, 654183, 0)), + (g = (p + IA) | 0), + (g = + I >>> 0 > (kA = (I + kA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (I = eg(M, dA, -997805, -1)), + (g = (p + g) | 0), + (g = + I >>> 0 > (IA = (I + kA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (kA = ((I = IA) + (IA = eg(V, RA, 136657, 0))) | 0), + (I = (p + g) | 0), + (I = + ((I = IA >>> 0 > kA >>> 0 ? (I + 1) | 0 : I) + + gA) | + 0), + (I = + (g = kA) >>> 0 > (IA = (g + sA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (g = IA), + (IA = I), + (W = ((I = sA) - -1048576) | 0), + (gA = rA = + (gA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (rA = g), + (IA = ((g = BA >> 21) + IA) | 0), + (IA = + (I = ((2097151 & BA) << 11) | (jA >>> 21)) >>> 0 > + (BA = (rA + I) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (g = (BA - (I = -2097152 & W)) | 0), + (sA = eg(K, q, -683901, -1)), + (I = + ((BA = + (IA - (((I >>> 0 > BA >>> 0) + gA) | 0)) | 0) + + p) | + 0), + (IA = I = + sA >>> 0 > (kA = (g + sA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (rA = + (BA - ((((I = g) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (T = (I - -1048576) | 0), + (IA = ((g = QA >> 21) + IA) | 0), + (IA = + (I = ((2097151 & QA) << 11) | (ZA >>> 21)) >>> 0 > + (QA = (I + (sA = kA)) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (sA = g = (QA - (I = -2097152 & T)) | 0), + (I = + ((QA = + (IA - + (((I >>> 0 > QA >>> 0) + (BA = rA)) | 0)) | + 0) + + pA) | + 0), + (j = (g - -1048576) | 0), + (rA = + (QA - (((g >>> 0 < 4293918720) - 1) | 0)) | 0), + (jA = + ((g = IA = UA = (g + UA) | 0) - + (IA = -2097152 & j)) | + 0), + (ZA = + ((sA >>> 0 > g >>> 0 ? (I + 1) | 0 : I) - + (((g >>> 0 < IA >>> 0) + (QA = rA)) | 0)) | + 0), + (OA = (CA - (I = -2097152 & GA)) | 0), + (kA = (tA - (((I >>> 0 > CA >>> 0) + fA) | 0)) | 0), + (UA = (iA - (I = -2097152 & bA)) | 0), + (bA = (hA - (((I >>> 0 > iA >>> 0) + oA) | 0)) | 0), + (g = eg(K, q, 654183, 0)), + (I = (p + uA) | 0), + (I = + g >>> 0 > (IA = (g + FA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (iA = + ((((CA = IA) - (g = -2097152 & DA)) | 0) + + (IA = eg(x, L, -997805, -1))) | + 0), + (g = + (p + + ((I - (((g >>> 0 > CA >>> 0) + wA) | 0)) | 0)) | + 0), + (g = IA >>> 0 > iA >>> 0 ? (g + 1) | 0 : g), + (IA = eg(d, LA, 136657, 0)), + (I = (p + g) | 0), + (GA = CA = (IA + iA) | 0), + (iA = IA >>> 0 > CA >>> 0 ? (I + 1) | 0 : I), + (sA = (eA - (I = -2097152 & mA)) | 0), + (hA = (PA - (((I >>> 0 > eA >>> 0) + HA) | 0)) | 0), + (I = eg(v, P, -997805, -1)), + (g = p), + (IA = I), + (I = eg(S, R, 654183, 0)), + (g = (p + g) | 0), + (g = + I >>> 0 > (IA = (IA + I) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (I = eg(N, J, 136657, 0)), + (g = (p + g) | 0), + (g = + I >>> 0 > (IA = (I + IA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (CA = + ((I = IA) + (IA = eg(U, X, -683901, -1))) | 0), + (I = (p + g) | 0), + (IA = + (qA + (IA >>> 0 > CA >>> 0 ? (I + 1) | 0 : I)) | + 0), + (oA = + ((g = (CA + yA) | 0) - (I = -2097152 & WA)) | 0), + (tA = + ((IA = g >>> 0 < yA >>> 0 ? (IA + 1) | 0 : IA) - + (((I >>> 0 > g >>> 0) + JA) | 0)) | + 0), + (I = eg(v, P, 654183, 0)), + (g = p), + (IA = I), + (I = eg(S, R, 470296, 0)), + (g = (p + g) | 0), + (g = + I >>> 0 > (IA = (IA + I) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (CA = + ((I = IA) + (IA = eg(N, J, -997805, -1))) | 0), + (I = (p + g) | 0), + (g = (CA + cA) | 0), + (IA = + (XA + (IA >>> 0 > CA >>> 0 ? (I + 1) | 0 : I)) | + 0), + (CA = ((I = eg(U, X, 136657, 0)) + g) | 0), + (g = + (p + (g >>> 0 < cA >>> 0 ? (IA + 1) | 0 : IA)) | + 0), + (g = I >>> 0 > CA >>> 0 ? (g + 1) | 0 : g), + (IA = eg(M, dA, -683901, -1)), + (I = (p + g) | 0), + (I = + IA >>> 0 > (CA = (IA + CA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (yA = ((IA = CA) - (g = -2097152 & AA)) | 0), + (eA = (I - (((g >>> 0 > IA >>> 0) + VA) | 0)) | 0), + (g = eg(E, 0, _, 0)), + (I = p), + (IA = g), + (g = eg(a, 0, Y, 0)), + (I = (p + I) | 0), + (I = + g >>> 0 > (IA = (IA + g) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (CA = ((g = IA) + (IA = eg(o, 0, G, 0))) | 0), + (g = (p + I) | 0), + (g = IA >>> 0 > CA >>> 0 ? (g + 1) | 0 : g), + (IA = eg(w, 0, l, 0)), + (I = (p + g) | 0), + (I = + IA >>> 0 > (CA = (IA + CA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (g = eg(t, 0, y, 0)), + (IA = (p + I) | 0), + (IA = + g >>> 0 > (CA = (g + CA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (I = eg(e, 0, h, 0)), + (g = (p + IA) | 0), + (g = + I >>> 0 > (CA = (I + CA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (IA = eg(f, 0, D, 0)), + (I = (p + g) | 0), + (I = + IA >>> 0 > (CA = (IA + CA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (IA = eg(c, m, F, 0)), + (g = (p + I) | 0), + (g = + IA >>> 0 > (CA = (IA + CA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (IA = eg(s, 0, u, 0)), + (I = (p + g) | 0), + (I = + IA >>> 0 > (CA = (IA + CA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (g = eg(r, 0, k, 0)), + (IA = (p + I) | 0), + (IA = + g >>> 0 > (CA = (g + CA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (I = eg(Q, 0, b, 0)), + (g = (p + IA) | 0), + (g = + I >>> 0 > (CA = (I + CA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (IA = eg(i, 0, H, 0)), + (I = (p + g) | 0), + (I = + IA >>> 0 > (CA = (IA + CA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (g = + (B = + ((n[(B + 28) | 0] | + (n[(B + 29) | 0] << 8) | + (n[(B + 30) | 0] << 16) | + (n[(B + 31) | 0] << 24)) >>> + 7) | + 0) >>> + 0 > + (IA = (B + CA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (I = IA), + (IA = gA >> 21), + (gA = + (I + (B = ((2097151 & gA) << 11) | (W >>> 21))) | + 0), + (I = (g + IA) | 0), + (CA = gA), + (fA = I = B >>> 0 > gA >>> 0 ? (I + 1) | 0 : I), + (uA = ((I = gA) - -1048576) | 0), + (pA = g = + (fA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (I = ((IA = g >> 21) + eA) | 0), + (gA = B = + ((g = ((2097151 & g) << 11) | (uA >>> 21)) + yA) | + 0), + (rA = I = g >>> 0 > B >>> 0 ? (I + 1) | 0 : I), + (wA = ((I = B) - -1048576) | 0), + (cA = g = + (rA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (I = ((IA = g >> 21) + tA) | 0), + (yA = I = + (g = ((2097151 & g) << 11) | (wA >>> 21)) >>> 0 > + (B = (g + oA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (tA = ((I = B) - -1048576) | 0), + (eA = g = + (yA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (I = ((IA = g >> 21) + hA) | 0), + (mA = oA = + ((g = ((2097151 & g) << 11) | (tA >>> 21)) + sA) | + 0), + (HA = I = g >>> 0 > oA >>> 0 ? (I + 1) | 0 : I), + (I = eg(oA, I, -683901, -1)), + (g = (p + iA) | 0), + (oA = IA = (I + GA) | 0), + (iA = I >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), + (FA = (B - (I = -2097152 & tA)) | 0), + (GA = eA = + (yA - (((I >>> 0 > B >>> 0) + eA) | 0)) | 0), + (g = (eg(K, q, 470296, 0) + EA) | 0), + (I = (_A + p) | 0), + (I = g >>> 0 < EA >>> 0 ? (I + 1) | 0 : I), + (EA = + ((((IA = g) - (B = -2097152 & NA)) | 0) + + (g = eg(x, L, 654183, 0))) | + 0), + (IA = + (p + + ((I - (((B >>> 0 > IA >>> 0) + lA) | 0)) | 0)) | + 0), + (I = eg(d, LA, -997805, -1)), + (g = + (p + (g >>> 0 > EA >>> 0 ? (IA + 1) | 0 : IA)) | + 0), + (g = + I >>> 0 > (B = (I + EA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (IA = ((I = B) + (B = eg(mA, HA, 136657, 0))) | 0), + (I = (p + g) | 0), + (I = B >>> 0 > IA >>> 0 ? (I + 1) | 0 : I), + (B = eg(FA, eA, -683901, -1)), + (g = (p + I) | 0), + (yA = g = + B >>> 0 > (IA = (B + IA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (hA = ((I = IA) - -1048576) | 0), + (eA = B = + (g - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (I = ((I = B >> 21) + iA) | 0), + (EA = I = + (g = ((2097151 & B) << 11) | (hA >>> 21)) >>> 0 > + (B = (g + oA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (tA = ((I = B) - -1048576) | 0), + (g = + ((I = + (iA = oA = + (EA - (((I >>> 0 < 4293918720) - 1) | 0)) | + 0) >> 21) + + bA) | + 0), + (bA = lA = + ((oA = ((2097151 & iA) << 11) | (tA >>> 21)) + + UA) | + 0), + (oA = oA >>> 0 > lA >>> 0 ? (g + 1) | 0 : g), + (XA = (B - (I = -2097152 & tA)) | 0), + (VA = (EA - (((I >>> 0 > B >>> 0) + iA) | 0)) | 0), + (JA = (IA - (I = -2097152 & hA)) | 0), + (PA = (yA - (((I >>> 0 > IA >>> 0) + eA) | 0)) | 0), + (I = eg(K, q, 666643, 0)), + (IA = + (p + + ((SA - + ((((g = -2097152 & KA) >>> 0 > nA >>> 0) + + vA) | + 0)) | + 0)) | + 0), + (IA = + I >>> 0 > (B = (I + ((nA - g) | 0)) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (I = eg(x, L, 470296, 0)), + (g = (p + IA) | 0), + (g = + I >>> 0 > (B = (I + B) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (IA = ((I = B) + (B = eg(d, LA, 654183, 0))) | 0), + (I = (p + g) | 0), + (eA = IA), + (B = B >>> 0 > IA >>> 0 ? (I + 1) | 0 : I), + (nA = (gA - (I = -2097152 & wA)) | 0), + (iA = (rA - (((I >>> 0 > gA >>> 0) + cA) | 0)) | 0), + (g = eg(v, P, 470296, 0)), + (I = p), + (IA = g), + (g = eg(S, R, 666643, 0)), + (I = (p + I) | 0), + (I = + g >>> 0 > (IA = (IA + g) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (gA = ((g = IA) + (IA = eg(N, J, 654183, 0))) | 0), + (g = (p + I) | 0), + (g = IA >>> 0 > gA >>> 0 ? (g + 1) | 0 : g), + (IA = eg(U, X, -997805, -1)), + (I = (p + g) | 0), + (I = + IA >>> 0 > (gA = (IA + gA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (g = eg(M, dA, 136657, 0)), + (IA = (p + I) | 0), + (IA = + g >>> 0 > (gA = (g + gA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (I = eg(V, RA, -683901, -1)), + (g = (p + IA) | 0), + (I = + (fA + + (I >>> 0 > (gA = (I + gA) | 0) >>> 0 + ? (g + 1) | 0 + : g)) | + 0), + (I = + (IA = (gA + CA) | 0) >>> 0 < CA >>> 0 + ? (I + 1) | 0 + : I), + (g = ((gA = IA) - (IA = -2097152 & uA)) | 0), + (IA = (I - (((IA >>> 0 > gA >>> 0) + pA) | 0)) | 0), + (I = ((I = BA >> 21) + IA) | 0), + (EA = BA = + ((gA = g) + + (g = ((2097151 & BA) << 11) | (T >>> 21))) | + 0), + (cA = IA = + ((rA = I = g >>> 0 > BA >>> 0 ? (I + 1) | 0 : I) - + ((((I = BA) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (g = + ((2097151 & IA) << 11) | + ((_A = (I - -1048576) | 0) >>> 21)), + (IA = ((IA >> 21) + iA) | 0), + (DA = BA = (g + nA) | 0), + (sA = IA = g >>> 0 > BA >>> 0 ? (IA + 1) | 0 : IA), + (I = eg(BA, IA, -683901, -1)), + (g = (p + B) | 0), + (g = + I >>> 0 > (IA = (I + eA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (B = eg(mA, HA, -997805, -1)), + (I = (p + g) | 0), + (I = + B >>> 0 > (IA = (B + IA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (B = eg(FA, GA, 136657, 0)), + (g = (p + I) | 0), + (nA = IA = (B + IA) | 0), + (gA = B >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), + (g = eg(k, 0, _, 0)), + (I = p), + (B = g), + (g = eg(F, 0, Y, 0)), + (I = (p + I) | 0), + (I = + g >>> 0 > (B = (B + g) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (g = eg(H, 0, G, 0)), + (IA = (p + I) | 0), + (IA = + g >>> 0 > (B = (g + B) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (I = eg(b, 0, l, 0)), + (g = (p + IA) | 0), + (I = g = + I >>> 0 > (B = (I + B) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (CA = B = ((g = (MA >>> 7) & 2097151) + B) | 0), + (B = g >>> 0 > B >>> 0 ? (I + 1) | 0 : I), + (I = eg(H, 0, _, 0)), + (g = p), + (IA = I), + (I = eg(k, 0, Y, 0)), + (g = (p + g) | 0), + (g = + I >>> 0 > (IA = (IA + I) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (I = eg(b, 0, G, 0)), + (g = (p + g) | 0), + (g = + I >>> 0 > (IA = (I + IA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (BA = + ((I = IA) + + (IA = + 2097151 & (((3 & $) << 30) | (z >>> 2)))) | + 0), + (I = g), + (iA = BA), + (tA = IA = + ((BA = I = + IA >>> 0 > BA >>> 0 ? (I + 1) | 0 : I) - + ((((I = iA) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (g = ((g = (IA >>> 21) | 0) + B) | 0), + (CA = IA = + ((I = + ((2097151 & IA) << 11) | + ((vA = (I - -1048576) | 0) >>> 21)) + + CA) | + 0), + (fA = g = I >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), + (lA = ((I = IA) - -1048576) | 0), + (yA = B = + (g - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (I = ((g = (B >>> 21) | 0) + YA) | 0), + (I = + (B = + (aA + (((2097151 & B) << 11) | (lA >>> 21))) | + 0) >>> + 0 < + aA >>> 0 + ? (I + 1) | 0 + : I), + (aA = + ((((IA = B) - (g = -2097152 & TA)) | 0) + + (B = eg(x, L, 666643, 0))) | + 0), + (g = + (p + + ((I - (((g >>> 0 > IA >>> 0) + xA) | 0)) | 0)) | + 0), + (g = B >>> 0 > aA >>> 0 ? (g + 1) | 0 : g), + (I = eg(d, LA, 470296, 0)), + (g = (p + g) | 0), + (g = + I >>> 0 > (B = (I + aA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (IA = ((I = B) + (B = eg(DA, sA, 136657, 0))) | 0), + (I = (p + g) | 0), + (I = B >>> 0 > IA >>> 0 ? (I + 1) | 0 : I), + (g = eg(mA, HA, 654183, 0)), + (I = (p + I) | 0), + (I = + g >>> 0 > (B = (g + IA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (g = eg(FA, GA, -997805, -1)), + (IA = (p + I) | 0), + (uA = B = (g + B) | 0), + (eA = IA = g >>> 0 > B >>> 0 ? (IA + 1) | 0 : IA), + (wA = ((I = B) - -1048576) | 0), + (aA = B = + (IA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (g = ((I = B >> 21) + gA) | 0), + (gA = IA = + ((B = ((2097151 & B) << 11) | (wA >>> 21)) + nA) | + 0), + (B = g = B >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), + (nA = IA = + (g - ((((I = IA) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (g = + ((2097151 & IA) << 11) | + ((hA = (I - -1048576) | 0) >>> 21)), + (IA = ((IA >> 21) + PA) | 0), + (qA = pA = (g + JA) | 0), + (pA = g >>> 0 > pA >>> 0 ? (IA + 1) | 0 : IA), + (IA = QA >> 21), + (QA = + ((I = ((2097151 & QA) << 11) | (j >>> 21)) + + ((EA - (g = -2097152 & _A)) | 0)) | + 0), + (g = + (IA + + ((rA - (((g >>> 0 > EA >>> 0) + cA) | 0)) | + 0)) | + 0), + (rA = g = I >>> 0 > QA >>> 0 ? (g + 1) | 0 : g), + (cA = g = + (g - ((((I = QA) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (SA = IA = g >> 21), + (g = eg( + (MA = + ((2097151 & g) << 11) | + ((_A = (I - -1048576) | 0) >>> 21)), + IA, + -683901, + -1 + )), + (I = (p + B) | 0), + (I = + g >>> 0 > (IA = (g + gA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (JA = (IA - (g = -2097152 & hA)) | 0), + (PA = (I - (((g >>> 0 > IA >>> 0) + nA) | 0)) | 0), + (I = eg(MA, SA, 136657, 0)), + (g = (p + eA) | 0), + (g = + I >>> 0 > (B = (I + uA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (YA = (B - (I = -2097152 & wA)) | 0), + (xA = (g - (((I >>> 0 > B >>> 0) + aA) | 0)) | 0), + (B = + ((I = eg(d, LA, 666643, 0)) + + ((CA - (g = -2097152 & lA)) | 0)) | + 0), + (g = + (p + + ((fA - (((g >>> 0 > CA >>> 0) + yA) | 0)) | + 0)) | + 0), + (g = I >>> 0 > B >>> 0 ? (g + 1) | 0 : g), + (IA = + ((I = B) + (B = eg(DA, sA, -997805, -1))) | 0), + (I = (p + g) | 0), + (I = B >>> 0 > IA >>> 0 ? (I + 1) | 0 : I), + (B = ((g = eg(mA, HA, 470296, 0)) + IA) | 0), + (IA = (p + I) | 0), + (IA = g >>> 0 > B >>> 0 ? (IA + 1) | 0 : IA), + (I = eg(FA, GA, 654183, 0)), + (g = (p + IA) | 0), + (fA = B = (I + B) | 0), + (EA = I >>> 0 > B >>> 0 ? (g + 1) | 0 : g), + (gA = BA), + (g = eg(b, 0, _, 0)), + (I = p), + (B = g), + (g = eg(H, 0, Y, 0)), + (I = (p + I) | 0), + (I = + g >>> 0 > (B = (B + g) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (g = B), + (g = + (B = (O >>> 5) & 2097151) >>> 0 > + (IA = (g + B) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (B = 2097151 & Z), + (BA = (eg(b, 0, Y, 0) + B) | 0), + (I = p), + (eA = B = + ((yA = I = B >>> 0 > BA >>> 0 ? (I + 1) | 0 : I) - + ((((I = BA) >>> 0 < 4293918720) - 1) | 0)) | + 0), + (CA = IA), + (g = (g + (IA = (B >>> 21) | 0)) | 0), + (aA = g = + (I = + ((2097151 & B) << 11) | + ((lA = (I - -1048576) | 0) >>> 21)) >>> + 0 > + (B = (CA + I) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (uA = ((I = B) - -1048576) | 0), + (nA = g = + (g - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (I = ((IA = (g >>> 21) | 0) + gA) | 0), + (I = + (g = ((2097151 & g) << 11) | (uA >>> 21)) >>> 0 > + (CA = (g + iA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (CA = + ((IA = eg(DA, sA, 654183, 0)) + + (((gA = CA) - (g = -2097152 & vA)) | 0)) | + 0), + (g = + (p + + ((I - + (((16383 & tA) + (g >>> 0 > gA >>> 0)) | 0)) | + 0)) | + 0), + (I = eg(mA, HA, 666643, 0)), + (IA = + (p + (IA >>> 0 > CA >>> 0 ? (g + 1) | 0 : g)) | + 0), + (IA = + I >>> 0 > (gA = (I + CA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (g = eg(FA, GA, 470296, 0)), + (I = (p + IA) | 0), + (wA = gA = (g + gA) | 0), + (iA = I = g >>> 0 > gA >>> 0 ? (I + 1) | 0 : I), + (hA = ((I = gA) - -1048576) | 0), + (CA = g = + (iA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (I = ((IA = g >> 21) + EA) | 0), + (tA = gA = + ((g = ((2097151 & g) << 11) | (hA >>> 21)) + fA) | + 0), + (g = I = g >>> 0 > gA >>> 0 ? (I + 1) | 0 : I), + (fA = ((I = gA) - -1048576) | 0), + (I = + ((IA = + (gA = EA = + (g - (((I >>> 0 < 4293918720) - 1) | 0)) | + 0) >> 21) + + xA) | + 0), + (EA = + (EA = ((2097151 & gA) << 11) | (fA >>> 21)) >>> + 0 > + (YA = vA = (EA + YA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (I = eg(MA, SA, -997805, -1)) + ;(g = (p + g) | 0), + (g = + I >>> 0 > (IA = (I + tA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (xA = (IA - (I = -2097152 & fA)) | 0), + (vA = (g - (((I >>> 0 > IA >>> 0) + gA) | 0)) | 0), + (I = eg(MA, SA, 654183, 0)), + (g = (p + iA) | 0), + (g = + I >>> 0 > (IA = (I + wA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (tA = (IA - (I = -2097152 & hA)) | 0), + (fA = (g - (((I >>> 0 > IA >>> 0) + CA) | 0)) | 0), + (IA = + ((g = eg(DA, sA, 470296, 0)) + + ((B - (I = -2097152 & uA)) | 0)) | + 0), + (I = + (p + + ((aA - + (((16383 & nA) + (I >>> 0 > B >>> 0)) | 0)) | + 0)) | + 0), + (I = g >>> 0 > IA >>> 0 ? (I + 1) | 0 : I), + (B = ((g = eg(FA, GA, 666643, 0)) + IA) | 0), + (IA = (p + I) | 0), + (IA = g >>> 0 > B >>> 0 ? (IA + 1) | 0 : IA), + (gA = B), + (B = + ((I = eg(DA, sA, 666643, 0)) + + ((BA - (g = -2097152 & lA)) | 0)) | + 0), + (g = + (p + + ((yA - + (((4095 & eA) + (g >>> 0 > BA >>> 0)) | 0)) | + 0)) | + 0), + (iA = g = I >>> 0 > B >>> 0 ? (g + 1) | 0 : g), + (eA = ((I = B) - -1048576) | 0), + (CA = BA = + (g - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (IA = ((I = BA >> 21) + IA) | 0), + (aA = BA = + ((g = ((2097151 & BA) << 11) | (eA >>> 21)) + + gA) | + 0), + (gA = IA = g >>> 0 > BA >>> 0 ? (IA + 1) | 0 : IA), + (nA = ((I = BA) - -1048576) | 0), + (BA = IA = + (IA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), + (g = ((I = IA >> 21) + fA) | 0), + (IA = g = + (IA = ((2097151 & IA) << 11) | (nA >>> 21)) >>> + 0 > + (yA = (IA + tA) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (g = eg(MA, SA, 470296, 0)), + (I = (p + gA) | 0), + (I = + g >>> 0 > (aA = (g + aA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (g = (aA - (gA = -2097152 & nA)) | 0), + (gA = (I - (((gA >>> 0 > aA >>> 0) + BA) | 0)) | 0), + (nA = g), + (BA = + ((I = eg(MA, SA, 666643, 0)) + + ((B - (g = -2097152 & eA)) | 0)) | + 0), + (g = + (p + + ((iA - (((g >>> 0 > B >>> 0) + CA) | 0)) | 0)) | + 0), + (I = + ((I = + (g = I >>> 0 > BA >>> 0 ? (g + 1) | 0 : g) >> + 21) + + gA) | + 0), + (CA = B = + (nA + + (g = + ((2097151 & g) << 11) | ((B = BA) >>> 21))) | + 0), + (IA = + ((g = + (I = g >>> 0 > B >>> 0 ? (I + 1) | 0 : I) >> + 21) + + IA) | + 0), + (gA = B = + ((I = ((2097151 & I) << 11) | (B >>> 21)) + yA) | + 0), + (B = + ((2097151 & + (IA = + I >>> 0 > (g = B) >>> 0 + ? (IA + 1) | 0 + : IA)) << + 11) | + (g >>> 21)), + (g = ((I = IA >> 21) + vA) | 0), + (aA = IA = (B + xA) | 0), + (IA = + (g = + B >>> 0 > (I = IA) >>> 0 ? (g + 1) | 0 : g) >> + 21), + (g = ((2097151 & g) << 11) | (I >>> 21)), + (I = (IA + EA) | 0), + (uA = B = (g + YA) | 0), + (g = + ((g = + (I = g >>> 0 > B >>> 0 ? (I + 1) | 0 : I) >> + 21) + + PA) | + 0), + (wA = B = + ((I = ((2097151 & I) << 11) | (B >>> 21)) + JA) | + 0), + (I = + ((I = + (g = I >>> 0 > B >>> 0 ? (g + 1) | 0 : g) >> + 21) + + pA) | + 0), + (hA = B = + ((g = ((2097151 & g) << 11) | (B >>> 21)) + qA) | + 0), + (IA = + ((g = + (I = g >>> 0 > B >>> 0 ? (I + 1) | 0 : I) >> + 21) + + VA) | + 0), + (tA = B = + ((I = ((2097151 & I) << 11) | (B >>> 21)) + XA) | + 0), + (B = + ((2097151 & + (IA = + I >>> 0 > (g = B) >>> 0 + ? (IA + 1) | 0 + : IA)) << + 11) | + (g >>> 21)), + (g = ((I = IA >> 21) + oA) | 0), + (fA = IA = (B + bA) | 0), + (IA = + (g = + B >>> 0 > (I = IA) >>> 0 ? (g + 1) | 0 : g) >> + 21), + (g = ((2097151 & g) << 11) | (I >>> 21)), + (I = (IA + kA) | 0), + (pA = B = (g + OA) | 0), + (g = + ((g = + (I = g >>> 0 > B >>> 0 ? (I + 1) | 0 : I) >> + 21) + + ZA) | + 0), + (yA = B = + ((I = ((2097151 & I) << 11) | (B >>> 21)) + jA) | + 0), + (I = + (g = I >>> 0 > B >>> 0 ? (g + 1) | 0 : g) >> 21), + (iA = + ((IA = ((2097151 & g) << 11) | (B >>> 21)) + + (g = (QA - (B = -2097152 & _A)) | 0)) | + 0), + (IA = + (((rA - (((B >>> 0 > QA >>> 0) + cA) | 0)) | 0) + + I) | + 0), + (eA = iA), + (cA = + ((2097151 & + (IA = + g >>> 0 > (I = iA) >>> 0 + ? (IA + 1) | 0 + : IA)) << + 11) | + (I >>> 21)), + (EA = g = IA >> 21), + (I = 2097151 & BA), + (B = (eg(cA, g, 666643, 0) + I) | 0), + (g = p), + (iA = B), + (B = g = I >>> 0 > B >>> 0 ? (g + 1) | 0 : g), + (C[0 | A] = iA), + (C[(A + 1) | 0] = ((255 & g) << 24) | (iA >>> 8)), + (BA = A), + (g = 2097151 & CA), + (IA = (eg(cA, EA, 470296, 0) + g) | 0), + (I = p), + (I = g >>> 0 > IA >>> 0 ? (I + 1) | 0 : I), + (CA = IA), + (QA = ((2097151 & (IA = B)) << 11) | (iA >>> 21)), + (IA = (I + (g = IA >> 21)) | 0), + (IA = + QA >>> 0 > (CA = (CA + QA) | 0) >>> 0 + ? (IA + 1) | 0 + : IA), + (QA = CA), + (C[(BA + 4) | 0] = + ((2047 & IA) << 21) | (QA >>> 11)), + (I = IA), + (IA = QA), + (C[(BA + 3) | 0] = ((7 & I) << 29) | (IA >>> 3)), + (IA = 2097151 & gA), + (gA = (eg(cA, EA, 654183, 0) + IA) | 0), + (g = p), + (g = IA >>> 0 > gA >>> 0 ? (g + 1) | 0 : g), + (IA = gA), + (gA = ((2097151 & I) << 11) | (QA >>> 21)), + (I = ((I >> 21) + g) | 0), + (g = I = + gA >>> 0 > (CA = (IA + gA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (C[(BA + 6) | 0] = ((63 & I) << 26) | (CA >>> 6)), + (gA = 0), + (I = nA = 2097151 & QA), + (C[(BA + 2) | 0] = + (31 & (((65535 & B) << 16) | (iA >>> 16))) | + (I << 5)), + (B = 2097151 & aA), + (IA = (eg(cA, EA, -997805, -1) + B) | 0), + (I = p), + (B = I = B >>> 0 > IA >>> 0 ? (I + 1) | 0 : I), + (I = g >> 21), + (QA = + ((g = ((2097151 & g) << 11) | (CA >>> 21)) + IA) | + 0), + (IA = (I + B) | 0), + (iA = QA), + (IA = g >>> 0 > QA >>> 0 ? (IA + 1) | 0 : IA), + (C[(BA + 9) | 0] = ((511 & IA) << 23) | (QA >>> 9)), + (I = IA), + (C[(BA + 8) | 0] = ((1 & I) << 31) | (QA >>> 1)), + (QA = 0), + (B = aA = 2097151 & CA), + (C[(BA + 5) | 0] = + ((524287 & gA) << 13) | (nA >>> 19) | (B << 2)), + (B = 2097151 & uA), + (IA = (eg(cA, EA, 136657, 0) + B) | 0), + (g = p), + (g = B >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), + (B = IA), + (g = (g + (IA = I >> 21)) | 0), + (CA = B = + (B + (I = ((2097151 & I) << 11) | (iA >>> 21))) | + 0), + (g = I >>> 0 > B >>> 0 ? (g + 1) | 0 : g), + (C[(BA + 12) | 0] = + ((4095 & g) << 20) | (B >>> 12)), + (B = g), + (I = g), + (g = CA), + (C[(BA + 11) | 0] = ((15 & I) << 28) | (g >>> 4)), + (BA = 0), + (g = nA = 2097151 & iA), + (C[(A + 7) | 0] = + ((16383 & QA) << 18) | (aA >>> 14) | (g << 7)), + (IA = A), + (g = 2097151 & wA), + (QA = (eg(cA, EA, -683901, -1) + g) | 0), + (I = p), + (I = + ((I = g >>> 0 > QA >>> 0 ? (I + 1) | 0 : I) + + (g = B >> 21)) | + 0), + (g = I = + (B = ((2097151 & B) << 11) | (CA >>> 21)) >>> 0 > + (gA = QA = (B + QA) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (C[(IA + 14) | 0] = ((127 & I) << 25) | (gA >>> 7)), + (QA = 0), + (B = iA = 2097151 & CA), + (C[(IA + 10) | 0] = + ((131071 & BA) << 15) | (nA >>> 17) | (B << 4)), + (B = IA), + (I >>= 21), + (IA = + (g = ((2097151 & g) << 11) | (gA >>> 21)) >>> 0 > + (CA = (g + (2097151 & hA)) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (C[(B + 17) | 0] = + ((1023 & IA) << 22) | (CA >>> 10)), + (I = IA), + (C[(B + 16) | 0] = ((3 & I) << 30) | (CA >>> 2)), + (B = EA = 2097151 & gA), + (C[(A + 13) | 0] = + ((1048575 & QA) << 12) | (iA >>> 20) | (B << 1)), + (g = I), + (I >>= 21), + (g = + (IA = ((2097151 & g) << 11) | (CA >>> 21)) >>> 0 > + (gA = (IA + (2097151 & tA)) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (C[((B = A) + 20) | 0] = + ((8191 & g) << 19) | (gA >>> 13)), + (I = g), + (g = gA), + (C[(B + 19) | 0] = ((31 & I) << 27) | (g >>> 5)), + (g = iA = 2097151 & CA), + (C[(B + 15) | 0] = + ((32767 & BA) << 17) | (EA >>> 15) | (g << 6)), + (g = I), + (I >>= 21), + (g = + (B = ((2097151 & g) << 11) | (gA >>> 21)) >>> 0 > + (EA = (B + (2097151 & fA)) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (C[(A + 21) | 0] = EA), + (I = gA), + (C[(A + 18) | 0] = + ((262143 & QA) << 14) | (iA >>> 18) | (I << 3)), + (B = g), + (I = g), + (g = EA), + (C[(A + 22) | 0] = ((255 & I) << 24) | (g >>> 8)), + (g = I >> 21), + (IA = + (I = ((2097151 & I) << 11) | (EA >>> 21)) >>> 0 > + (gA = (I + (2097151 & pA)) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (C[(A + 25) | 0] = + ((2047 & IA) << 21) | (gA >>> 11)), + (I = IA), + (IA = gA), + (C[(A + 24) | 0] = ((7 & I) << 29) | (IA >>> 3)), + (g = I >> 21), + (g = + (BA = ((2097151 & I) << 11) | (gA >>> 21)) >>> 0 > + (CA = (BA + (2097151 & yA)) | 0) >>> 0 + ? (g + 1) | 0 + : g), + (BA = CA), + (I = g), + (C[((IA = A) + 27) | 0] = + ((63 & I) << 26) | (BA >>> 6)), + (IA = 0), + (g = CA = 2097151 & gA), + (C[(A + 23) | 0] = + (31 & (((65535 & B) << 16) | (EA >>> 16))) | + (g << 5)), + (g = I), + (I >>= 21), + (I = + (g = ((2097151 & g) << 11) | (BA >>> 21)) >>> 0 > + (QA = (g + (2097151 & eA)) | 0) >>> 0 + ? (I + 1) | 0 + : I), + (B = QA), + (C[(A + 31) | 0] = + ((131071 & I) << 15) | (B >>> 17)), + (C[(A + 30) | 0] = ((511 & I) << 23) | (B >>> 9)), + (C[(A + 29) | 0] = ((1 & I) << 31) | (B >>> 1)), + (I = 0), + (gA = BA &= 2097151), + (C[(A + 26) | 0] = + ((524287 & IA) << 13) | (CA >>> 19) | (gA << 2)), + (C[(A + 28) | 0] = + ((16383 & I) << 18) | (gA >>> 14) | (B << 7)) + })(E, (r + 160) | 0, (r + 288) | 0, (r + 224) | 0), + fI((r + 288) | 0, 64), + fI((r + 224) | 0, 64), + I && ((i[I >> 2] = 64), (i[(I + 4) >> 2] = 0)), + (h = (r + 560) | 0), + 0 + ) + } + function X(A, I, g) { + var B, + Q = 0, + E = 0 + if (g >>> 0 >= 512) return s(0 | A, 0 | I, 0 | g), A + B = (A + g) | 0 + A: if (3 & (A ^ I)) + if (B >>> 0 < 4) g = A + else if ((Q = (B - 4) | 0) >>> 0 < A >>> 0) g = A + else + for ( + g = A; + (C[0 | g] = n[0 | I]), + (C[(g + 1) | 0] = n[(I + 1) | 0]), + (C[(g + 2) | 0] = n[(I + 2) | 0]), + (C[(g + 3) | 0] = n[(I + 3) | 0]), + (I = (I + 4) | 0), + Q >>> 0 >= (g = (g + 4) | 0) >>> 0; + + ); + else { + I: if ((0 | g) < 1) g = A + else if (3 & A) + for (g = A; ; ) { + if ( + ((C[0 | g] = n[0 | I]), + (I = (I + 1) | 0), + B >>> 0 <= (g = (g + 1) | 0) >>> 0) + ) + break I + if (!(3 & g)) break + } + else g = A + if ( + !( + (Q = -4 & B) >>> 0 < 64 || + (E = (Q + -64) | 0) >>> 0 < g >>> 0 + ) + ) + for ( + ; + (i[g >> 2] = i[I >> 2]), + (i[(g + 4) >> 2] = i[(I + 4) >> 2]), + (i[(g + 8) >> 2] = i[(I + 8) >> 2]), + (i[(g + 12) >> 2] = i[(I + 12) >> 2]), + (i[(g + 16) >> 2] = i[(I + 16) >> 2]), + (i[(g + 20) >> 2] = i[(I + 20) >> 2]), + (i[(g + 24) >> 2] = i[(I + 24) >> 2]), + (i[(g + 28) >> 2] = i[(I + 28) >> 2]), + (i[(g + 32) >> 2] = i[(I + 32) >> 2]), + (i[(g + 36) >> 2] = i[(I + 36) >> 2]), + (i[(g + 40) >> 2] = i[(I + 40) >> 2]), + (i[(g + 44) >> 2] = i[(I + 44) >> 2]), + (i[(g + 48) >> 2] = i[(I + 48) >> 2]), + (i[(g + 52) >> 2] = i[(I + 52) >> 2]), + (i[(g + 56) >> 2] = i[(I + 56) >> 2]), + (i[(g + 60) >> 2] = i[(I + 60) >> 2]), + (I = (I - -64) | 0), + E >>> 0 >= (g = (g - -64) | 0) >>> 0; + + ); + if (g >>> 0 >= Q >>> 0) break A + for ( + ; + (i[g >> 2] = i[I >> 2]), + (I = (I + 4) | 0), + Q >>> 0 > (g = (g + 4) | 0) >>> 0; + + ); + } + if (g >>> 0 < B >>> 0) + for ( + ; + (C[0 | g] = n[0 | I]), + (I = (I + 1) | 0), + (0 | B) != (0 | (g = (g + 1) | 0)); + + ); + return A + } + function V(A, I, g, B) { + var Q, + E = 0, + a = 0, + r = 0, + o = 0, + e = 0, + t = 0, + f = 0 + if (((h = Q = (h - 704) | 0), g | B)) + if ( + ((E = (B << 3) | (g >>> 29)), + (r = + ((f = i[((a = A) + 72) >> 2]) + (e = g << 3)) | 0), + (E = (E + (o = i[(a + 76) >> 2])) | 0), + (t = r), + (i[(a + 72) >> 2] = r), + (E = r >>> 0 < e >>> 0 ? (E + 1) | 0 : E), + (i[(a + 76) >> 2] = E), + (t = + ((e = + (((0 | E) == (0 | o)) & (f >>> 0 > t >>> 0)) | + (E >>> 0 < o >>> 0)) + + i[(a = r = (a - -64) | 0) >> 2]) | + 0), + (E = i[(a + 4) >> 2]), + (E = e >>> 0 > t >>> 0 ? (E + 1) | 0 : E), + (r = ((e = (B >>> 29) | 0) + t) | 0), + (i[a >> 2] = r), + (i[(a + 4) >> 2] = + r >>> 0 < e >>> 0 ? (E + 1) | 0 : E), + (((0 | (E = B)) == + (0 | + (t = + (0 - + ((o = 127 & (((7 & o) << 29) | (f >>> 3))) >>> + 0 > + 128)) | + 0))) & + (g >>> 0 >= (r = (128 - o) | 0) >>> 0)) | + (E >>> 0 > t >>> 0)) + ) { + for ( + a = 0, E = 0; + (C[(80 + ((A + (e = (a + o) | 0)) | 0)) | 0] = + n[(I + a) | 0]), + ((0 | r) != (0 | (a = (a + 1) | 0))) | + ((0 | (E = a >>> 0 < 1 ? (E + 1) | 0 : E)) != + (0 | t)); + + ); + if ( + (F(A, (A + 80) | 0, Q, (E = (Q + 640) | 0)), + (I = (I + r) | 0), + (!(B = (B - (((g >>> 0 < r >>> 0) + t) | 0)) | 0) & + ((g = (g - r) | 0) >>> 0 > 127)) | + B) + ) + for ( + ; + F(A, I, Q, E), + (I = (I + 128) | 0), + (!(B = (B - (g >>> 0 < 128)) | 0) & + ((g = (g - 128) | 0) >>> 0 > 127)) | + B; + + ); + if (g | B) + for ( + a = 0, E = 0; + (C[(80 + ((A + a) | 0)) | 0] = n[(I + a) | 0]), + ((0 | g) != (0 | (a = o = (a + 1) | 0))) | + ((0 | B) != + (0 | (E = o >>> 0 < 1 ? (E + 1) | 0 : E))); + + ); + fI(Q, 704) + } else + for ( + a = g, + r = (g = (!B & (g >>> 0 > 1)) | (0 != (0 | B))) + ? a + : 1, + f = g ? B : 0, + a = 0, + E = 0; + (C[(80 + ((A + (B = (a + o) | 0)) | 0)) | 0] = + n[(I + a) | 0]), + ((0 | r) != (0 | (a = g = (a + 1) | 0))) | + ((0 | (E = g >>> 0 < 1 ? (E + 1) | 0 : E)) != + (0 | f)); + + ); + return (h = (Q + 704) | 0), 0 + } + function W(A, I, g, B, Q, E, n, a) { + ;(A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (E |= 0), + (n |= 0), + (a |= 0) + var r, + o = 0, + e = 0, + t = 0, + f = 0, + c = 0, + y = 0, + s = 0, + w = 0, + D = 0 + ;(h = r = (h - 16) | 0), (i[(r + 12) >> 2] = 0), pg(a) + A: { + if (B) { + w = 4 & a + I: { + g: { + B: { + for (;;) { + o = f + Q: { + C: { + for (;;) { + if ( + ((y = C[(g + o) | 0]), + 255 != (0 | (t = w ? LA(y) : KA(y)))) + ) + break C + if (!Q) break Q + if (!gg(Q, y)) break B + if ( + !((o = (o + 1) | 0) >>> 0 < B >>> 0) + ) + break + } + ;(A = (f + 1) | 0), + (i[(r + 12) >> 2] = + A >>> 0 < B >>> 0 ? B : A) + break g + } + if ( + ((s = ((s << 6) + t) | 0), + (t = (e + 6) | 0) >>> 0 < 8) + ) + e = t + else { + if ( + ((e = (e - 2) | 0), I >>> 0 <= c >>> 0) + ) { + ;(i[(r + 12) >> 2] = o), + (i[8960] = 68), + (o = 1) + break I + } + ;(C[(A + c) | 0] = s >>> e), + (c = (c + 1) | 0) + } + if ((f = (o + 1) | 0) >>> 0 < B >>> 0) + continue + } + break + } + i[(r + 12) >> 2] = f + break g + } + i[(r + 12) >> 2] = o + } + o = 0 + } + if (!(e >>> 0 <= 4)) { + A = -1 + break A + } + } + if ( + ((A = -1), + !((((-1 << e) ^ -1) & s) | o) && + (2 & a || + !(A = (function (A, I, g, B, Q) { + var E = 0, + n = 0, + a = 0 + I: if (Q) + for (E = i[g >> 2]; ; ) { + g: { + if (I >>> 0 <= E >>> 0) i[8960] = 68 + else { + if (61 == (0 | (n = C[(A + E) | 0]))) { + Q = (Q - 1) | 0 + break g + } + if (B && gg(B, n)) break g + i[8960] = 28 + } + a = -1 + break I + } + if ( + ((E = (E + 1) | 0), (i[g >> 2] = E), !Q) + ) + break + } + return a + })(g, B, (r + 12) | 0, Q, (e >>> 1) | 0)))) + ) { + A = 0 + I: if ( + Q && + !((o = i[(r + 12) >> 2]) >>> 0 >= B >>> 0) + ) { + g: { + for (;;) { + if (!gg(Q, C[(g + o) | 0])) break g + if ((0 | (o = (o + 1) | 0)) == (0 | B)) break + } + i[(r + 12) >> 2] = B + break I + } + i[(r + 12) >> 2] = o + } + D = c + } + } + return ( + (I = i[(r + 12) >> 2]), + n + ? (i[n >> 2] = I + g) + : (0 | I) != (0 | B) && ((i[8960] = 28), (A = -1)), + E && (i[E >> 2] = D), + (h = (r + 16) | 0), + 0 | A + ) + } + function T(A, I, g) { + var B, + Q, + C, + E = 0 + ;(h = B = (h - 16) | 0), + (Q = i[(A + 20) >> 2]), + (i[(A + 20) >> 2] = 0), + (C = i[(A + 4) >> 2]), + (i[(A + 4) >> 2] = 0), + (E = -26) + A: { + I: { + g: switch ((g - 1) | 0) { + case 1: + if (((E = -32), XA(I, 35621, 9))) break A + I = (I + 9) | 0 + break I + case 0: + break g + default: + break A + } + if (((E = -32), XA(I, 35631, 8))) break A + I = (I + 8) | 0 + } + if ( + !XA(I, 35640, 3) && + (I = bA((I + 3) | 0, (B + 12) | 0)) + ) { + if (((E = -26), 19 != i[(B + 12) >> 2])) break A + if ( + !XA(I, 35644, 3) && + (I = bA((I + 3) | 0, (B + 12) | 0)) && + ((i[(A + 44) >> 2] = i[(B + 12) >> 2]), + !XA(I, 35648, 3) && + (I = bA((I + 3) | 0, (B + 12) | 0)) && + ((i[(A + 40) >> 2] = i[(B + 12) >> 2]), + !XA(I, 35652, 3) && + (I = bA((I + 3) | 0, (B + 12) | 0)) && + ((g = i[(B + 12) >> 2]), + (i[(A + 48) >> 2] = g), + (i[(A + 52) >> 2] = g), + 36 == (0 | (g = n[0 | I])) && + ((i[(B + 12) >> 2] = Q), + (I = 36 == (0 | g) ? (I + 1) | 0 : I), + !W( + i[(A + 16) >> 2], + Q, + I, + YA(I), + 0, + (B + 12) | 0, + (B + 8) | 0, + 3 + ) && + ((i[(A + 20) >> 2] = i[(B + 12) >> 2]), + (I = i[(B + 8) >> 2]), + 36 == (0 | (g = n[0 | I])) && + ((i[(B + 12) >> 2] = C), + (I = 36 == (0 | g) ? (I + 1) | 0 : I), + !W( + i[A >> 2], + C, + I, + YA(I), + 0, + (B + 12) | 0, + (B + 8) | 0, + 3 + ))))))) + ) { + if ( + ((i[(A + 4) >> 2] = i[(B + 12) >> 2]), + (I = i[(B + 8) >> 2]), + (E = oA(A))) + ) + break A + return (h = (B + 16) | 0), n[0 | I] ? -32 : 0 + } + } + E = -32 + } + return (h = (B + 16) | 0), E + } + function j(A, I) { + var g + for ( + h = g = (h - 192) | 0, + H((g + 144) | 0, I), + H((g + 96) | 0, (g + 144) | 0), + H((g + 96) | 0, (g + 96) | 0), + _((g + 96) | 0, I, (g + 96) | 0), + _((g + 144) | 0, (g + 144) | 0, (g + 96) | 0), + H((g + 48) | 0, (g + 144) | 0), + _((g + 96) | 0, (g + 96) | 0, (g + 48) | 0), + H((g + 48) | 0, (g + 96) | 0), + I = 1; + H((g + 48) | 0, (g + 48) | 0), + 5 != (0 | (I = (I + 1) | 0)); + + ); + for ( + _((g + 96) | 0, (g + 48) | 0, (g + 96) | 0), + H((g + 48) | 0, (g + 96) | 0), + I = 1; + H((g + 48) | 0, (g + 48) | 0), + 10 != (0 | (I = (I + 1) | 0)); + + ); + for ( + _((g + 48) | 0, (g + 48) | 0, (g + 96) | 0), + H(g, (g + 48) | 0), + I = 1; + H(g, g), 20 != (0 | (I = (I + 1) | 0)); + + ); + for ( + _((g + 48) | 0, g, (g + 48) | 0), I = 1; + H((g + 48) | 0, (g + 48) | 0), + 11 != (0 | (I = (I + 1) | 0)); + + ); + for ( + _((g + 96) | 0, (g + 48) | 0, (g + 96) | 0), + H((g + 48) | 0, (g + 96) | 0), + I = 1; + H((g + 48) | 0, (g + 48) | 0), + 50 != (0 | (I = (I + 1) | 0)); + + ); + for ( + _((g + 48) | 0, (g + 48) | 0, (g + 96) | 0), + H(g, (g + 48) | 0), + I = 1; + H(g, g), 100 != (0 | (I = (I + 1) | 0)); + + ); + for ( + _((g + 48) | 0, g, (g + 48) | 0), I = 1; + H((g + 48) | 0, (g + 48) | 0), + 51 != (0 | (I = (I + 1) | 0)); + + ); + for ( + _((g + 96) | 0, (g + 48) | 0, (g + 96) | 0), I = 1; + H((g + 96) | 0, (g + 96) | 0), + 6 != (0 | (I = (I + 1) | 0)); + + ); + _(A, (g + 96) | 0, (g + 144) | 0), (h = (g + 192) | 0) + } + function Z(A, I) { + var g, + B, + Q, + E, + n, + a, + o, + e, + t, + f, + c = 0, + y = 0, + s = 0, + w = 0, + h = 0, + D = 0, + u = 0 + ;(y = s = i[(A + 60) >> 2]) | (c = i[(A + 56) >> 2]) && + ((s = c), + (C[((w = (c + A) | 0) - -64) | 0] = 1), + !(y = (c = (c + 1) | 0) >>> 0 < 1 ? (y + 1) | 0 : y) & + (c >>> 0 <= 15) && EA((w + 65) | 0, 0, (15 - s) | 0), + (C[(A + 80) | 0] = 1), + S(A, (A - -64) | 0, 16, 0)), + (t = i[(A + 52) >> 2]), + (f = i[(A + 48) >> 2]), + (s = i[(A + 44) >> 2]), + (u = i[(A + 24) >> 2]), + (h = (i[(A + 28) >> 2] + ((u >>> 26) | 0)) | 0), + (c = (i[(A + 32) >> 2] + ((h >>> 26) | 0)) | 0), + (e = + ((g = + (E = + ((-67108864 | + (Q = + (i[(A + 36) >> 2] + ((c >>> 26) | 0)) | 0)) + + (((o = + ((a = 67108863 & c) + + (((h = + ((D = 67108863 & h) + + (((y = + ((c = + ((67108863 & u) + + (((y = + (i[(A + 20) >> 2] + + r((Q >>> 26) | 0, 5)) | + 0) >>> + 26) | + 0)) | + 0) + + (((n = + (5 + (w = 67108863 & y)) | 0) >>> + 26) | + 0)) | + 0) >>> + 26) | + 0)) | + 0) >>> + 26) | + 0)) | + 0) >>> + 26) | + 0)) | + 0) >> 31) & + c) | + ((B = 67108863 & (u = (((E >>> 31) | 0) - 1) | 0)) & + y)), + (y = 0), + (y = + (c = (w & g) | (B & n) | (e << 26)) >>> 0 > + (w = (c + i[(A + 40) >> 2]) | 0) >>> 0 + ? 1 + : y), + xI(I, w), + (h = + ((c = ((D = (D & g) | (h & B)) << 20) | (e >>> 6)) + + s) | + 0), + (s = 0), + (s = c >>> 0 > h >>> 0 ? 1 : s), + (c = y), + (y = s), + (y = + c >>> 0 > (h = (c + h) | 0) >>> 0 ? (y + 1) | 0 : y), + xI((I + 4) | 0, h), + (s = 0), + (s = + (c = ((w = (g & a) | (B & o)) << 14) | (D >>> 12)) >>> + 0 > + (D = (c + f) | 0) >>> 0 + ? 1 + : s), + (c = y), + (y = s), + (y = + c >>> 0 > (D = (c + D) | 0) >>> 0 ? (y + 1) | 0 : y), + xI((I + 8) | 0, D), + xI( + (s = (I + 12) | 0), + (y = + (y + + (w = + ((I = (((u & E) | (g & Q)) << 8) | (w >>> 18)) + + t) | + 0)) | + 0) + ), + fI(A, 88) + } + function O(A, I, g, B, Q) { + ;(A |= 0), (I |= 0), (g |= 0), (B |= 0) + var E = 0, + i = 0, + a = 0, + o = 0, + f = 0, + c = 0, + y = 0, + s = 0, + w = 0 + pg((Q |= 0)), + (i = (E = ((B >>> 0) / 3) | 0) << 2), + (E = (r(E, -3) + B) | 0) && + (i = + 2 & Q + ? ((2 | i) + ((E >>> 1) | 0)) | 0 + : (i + 4) | 0) + A: { + I: { + g: { + B: { + if (I >>> 0 > i >>> 0) { + if (!(4 & Q)) { + if (((a = 0), !B)) break g + ;(Q = 0), (E = 0) + break B + } + if (((a = 0), !B)) break g + for (Q = 0, E = 0; ; ) { + for ( + f = n[(g + o) | 0] | (f << 8), + Q = (Q + 8) | 0; + (c = E), + (y = Q), + (s = (A + E) | 0), + (w = CI((f >>> (Q = (Q - 6) | 0)) & 63)), + (C[0 | s] = w), + (E = (E + 1) | 0), + Q >>> 0 > 5; + + ); + if ((0 | (o = (o + 1) | 0)) == (0 | B)) break + } + if (((a = E), !Q)) break g + ;(s = (A + E) | 0), + (w = CI((f << (12 - y)) & 63)), + (C[0 | s] = w), + (a = (c + 2) | 0) + break g + } + OI(), e() + } + for (;;) { + for ( + f = n[(g + o) | 0] | (f << 8), Q = (Q + 8) | 0; + (c = E), + (y = Q), + (s = (A + E) | 0), + (w = EI((f >>> (Q = (Q - 6) | 0)) & 63)), + (C[0 | s] = w), + (E = (E + 1) | 0), + Q >>> 0 > 5; + + ); + if ((0 | (o = (o + 1) | 0)) == (0 | B)) break + } + ;(a = E), + Q && + ((s = (A + E) | 0), + (w = EI((f << (12 - y)) & 63)), + (C[0 | s] = w), + (a = (c + 2) | 0)) + } + if ((E = a) >>> 0 <= i >>> 0) { + if (E >>> 0 < i >>> 0) break I + i = E + break A + } + t(35568, 35587, 230, 35603), e() + } + EA((A + E) | 0, 61, (i - E) | 0) + } + return ( + EA( + (A + i) | 0, + 0, + ((I >>> 0 > (g = (i + 1) | 0) >>> 0 ? I : g) - i) | 0 + ), + 0 | A + ) + } + function z(A, I, g, B) { + var Q = 0, + E = 0, + a = 0, + r = 0, + o = 0, + e = 0 + A: { + if ((Q = i[(A + 56) >> 2]) | (E = i[(A + 60) >> 2])) { + if ( + ((e = A), + (o = a = (16 - Q) | 0), + (o = (a = + (((0 | + (r = (0 - (((Q >>> 0 > 16) + E) | 0)) | 0)) == + (0 | B)) & + (g >>> 0 < a >>> 0)) | + (B >>> 0 < r >>> 0)) + ? g + : o), + (a = r = a ? B : r) | o) + ) { + if ( + ((C[(((A + Q) | 0) - -64) | 0] = n[0 | I]), + (E = 1), + (Q = 0), + (1 != (0 | o)) | a) + ) + for ( + ; + (r = (E + i[(A + 56) >> 2]) | 0), + (C[(((A + r) | 0) - -64) | 0] = + n[(I + E) | 0]), + ((0 | o) != (0 | (E = (E + 1) | 0))) | + ((0 | + (Q = E >>> 0 < 1 ? (Q + 1) | 0 : Q)) != + (0 | a)); + + ); + ;(Q = i[(A + 56) >> 2]), (E = i[(A + 60) >> 2]) + } + if ( + ((r = (Q + o) | 0), + (Q = (E + a) | 0), + (E = r), + (i[(e + 56) >> 2] = E), + (Q = E >>> 0 < o >>> 0 ? (Q + 1) | 0 : Q), + (i[(e + 60) >> 2] = Q), + !Q & (E >>> 0 < 16)) + ) + break A + S(A, (A - -64) | 0, 16, 0), + (i[(A + 56) >> 2] = 0), + (i[(A + 60) >> 2] = 0), + (g = ((Q = g) - (E = o)) | 0), + (B = (B - (((Q >>> 0 < E >>> 0) + a) | 0)) | 0), + (I = (I + E) | 0) + } + if ( + ((!B & (g >>> 0 >= 16)) | B && + (S(A, I, (Q = -16 & g), B), + (g &= 15), + (B = 0), + (I = (I + Q) | 0)), + g | B) + ) { + for ( + E = 0, Q = 0; + (e = (E + i[(A + 56) >> 2]) | 0), + (C[(((A + e) | 0) - -64) | 0] = n[(I + E) | 0]), + ((0 | g) != (0 | (E = (E + 1) | 0))) | + ((0 | B) != + (0 | (Q = E >>> 0 < 1 ? (Q + 1) | 0 : Q))); + + ); + ;(I = A), + (Q = (g + i[(A + 56) >> 2]) | 0), + (A = (B + i[(A + 60) >> 2]) | 0), + (i[(I + 56) >> 2] = Q), + (i[(I + 60) >> 2] = + g >>> 0 > Q >>> 0 ? (A + 1) | 0 : A) + } + } + } + function $(A, I) { + var g = 0, + B = 0, + Q = 0, + C = 0, + E = 0, + o = 0, + e = 0, + t = 0, + f = 0, + c = 0, + y = 0, + s = 0, + w = 0 + A: if ( + A && + (2 != i[(A + 36) >> 2] || + ((Q = i[I >> 2]), n[(I + 8) | 0] < 2 && !Q) + ? ((function (A, I, g) { + var B, + Q = 0, + C = 0, + E = 0 + if ( + ((h = B = (h - 4096) | 0), + vg((B + 3072) | 0), + vg((B + 2048) | 0), + !(!A | !I) && + ((i[(B + 2048) >> 2] = i[I >> 2]), + (i[(B + 2052) >> 2] = 0), + (i[(B + 2056) >> 2] = i[(I + 4) >> 2]), + (i[(B + 2060) >> 2] = 0), + (i[(B + 2064) >> 2] = n[(I + 8) | 0]), + (i[(B + 2068) >> 2] = 0), + (i[(B + 2072) >> 2] = i[(A + 16) >> 2]), + (i[(B + 2076) >> 2] = 0), + (i[(B + 2080) >> 2] = i[(A + 8) >> 2]), + (i[(B + 2084) >> 2] = 0), + (i[(B + 2088) >> 2] = i[(A + 36) >> 2]), + (i[(B + 2092) >> 2] = 0), + i[(A + 20) >> 2])) + ) + for ( + I = 0; + (E = 127 & I) || + ((Q = i[(B + 2100) >> 2]), + (Q = + (C = (i[(B + 2096) >> 2] + 1) | 0) >>> 0 < + 1 + ? (Q + 1) | 0 + : Q), + (i[(B + 2096) >> 2] = C), + (i[(B + 2100) >> 2] = Q), + vg(B), + vg((B + 1024) | 0), + Y((B + 3072) | 0, (B + 2048) | 0, B), + Y((B + 3072) | 0, B, (B + 1024) | 0)), + (E = + i[ + (4 + + (C = + (((B + 1024) | 0) + (E << 3)) | + 0)) >> + 2 + ]), + (i[(Q = ((I << 3) + g) | 0) >> 2] = + i[C >> 2]), + (i[(Q + 4) >> 2] = E), + (I = (I + 1) | 0) >>> 0 < a[(A + 20) >> 2]; + + ); + h = (B + 4096) | 0 + })(A, I, (t = i[(A + 4) >> 2])), + (Q = i[I >> 2]), + (B = 0)) + : ((t = i[(A + 4) >> 2]), (B = 1)), + (c = B), + !( + (E = !((B = n[(I + 8) | 0]) | Q) << 1) >>> 0 >= + (g = i[(A + 20) >> 2]) >>> 0 + )) + ) + for ( + C = i[(A + 24) >> 2], + g = + ((Q = + (((r(C, i[(I + 4) >> 2]) + E) | 0) + r(g, B)) | + 0) + + ((Q >>> 0) % (C >>> 0) | 0 + ? -1 + : (C - 1) | 0)) | + 0; + ; + + ) { + if ( + ((f = + 1 == ((Q >>> 0) % (C >>> 0) | 0) + ? (Q - 1) | 0 + : g), + c + ? ((o = i[A >> 2]), + (g = (i[(o + 4) >> 2] + (f << 10)) | 0)) + : ((o = i[A >> 2]), (g = ((E << 3) + t) | 0)), + (B = i[(g + 4) >> 2]), + (y = i[g >> 2]), + (g = i[(A + 28) >> 2]), + (i[(I + 12) >> 2] = E), + (B = (B >>> 0) % (g >>> 0) | 0), + (e = i[(I + 4) >> 2]), + (g = n[(I + 8) | 0] ? B : e), + (o = i[(o + 4) >> 2]), + (s = C), + (w = B), + (C = i[I >> 2]), + (e = + (((o + (r(s, (g = (B = C) ? w : g)) << 10)) | 0) + + (FA(A, I, y, !0 & ((0 | g) == (0 | e))) << + 10)) | + 0), + (B = (o + (f << 10)) | 0), + (g = (o + (Q << 10)) | 0), + C ? Y(B, e, g) : b(B, e, g), + (E = (E + 1) | 0) >>> 0 >= a[(A + 20) >> 2]) + ) + break A + ;(Q = (Q + 1) | 0), + (g = (f + 1) | 0), + (C = i[(A + 24) >> 2]) + } + } + function AA(A, I, g) { + var B, + Q, + C, + E, + n, + a, + r, + o, + e, + t, + f, + c, + y = 0, + s = 0, + w = 0, + h = 0, + D = 0, + u = 0, + p = 0, + l = 0, + F = 0 + ;(B = i[(I + 4) >> 2]), + (Q = i[(A + 4) >> 2]), + (C = i[(I + 8) >> 2]), + (s = i[(A + 8) >> 2]), + (E = i[(I + 12) >> 2]), + (w = i[(A + 12) >> 2]), + (n = i[(I + 16) >> 2]), + (h = i[(A + 16) >> 2]), + (a = i[(I + 20) >> 2]), + (D = i[(A + 20) >> 2]), + (r = i[(I + 24) >> 2]), + (u = i[(A + 24) >> 2]), + (o = i[(I + 28) >> 2]), + (p = i[(A + 28) >> 2]), + (e = i[(I + 32) >> 2]), + (l = i[(A + 32) >> 2]), + (t = i[(I + 36) >> 2]), + (F = i[(A + 36) >> 2]), + (c = + (g = (0 - g) | 0) & + ((f = i[I >> 2]) ^ (y = i[A >> 2]))), + (i[A >> 2] = c ^ y), + (y = F), + (F = g & (F ^ t)), + (i[(A + 36) >> 2] = y ^ F), + (y = l), + (l = g & (l ^ e)), + (i[(A + 32) >> 2] = y ^ l), + (y = p), + (p = g & (p ^ o)), + (i[(A + 28) >> 2] = y ^ p), + (y = u), + (u = g & (u ^ r)), + (i[(A + 24) >> 2] = y ^ u), + (y = D), + (D = g & (D ^ a)), + (i[(A + 20) >> 2] = y ^ D), + (y = h), + (h = g & (h ^ n)), + (i[(A + 16) >> 2] = y ^ h), + (y = w), + (w = g & (w ^ E)), + (i[(A + 12) >> 2] = y ^ w), + (y = s), + (s = g & (s ^ C)), + (i[(A + 8) >> 2] = y ^ s), + (y = A), + (A = g & (B ^ Q)), + (i[(y + 4) >> 2] = A ^ Q), + (i[(I + 36) >> 2] = F ^ t), + (i[(I + 32) >> 2] = l ^ e), + (i[(I + 28) >> 2] = p ^ o), + (i[(I + 24) >> 2] = u ^ r), + (i[(I + 20) >> 2] = D ^ a), + (i[(I + 16) >> 2] = h ^ n), + (i[(I + 12) >> 2] = w ^ E), + (i[(I + 8) >> 2] = s ^ C), + (i[(I + 4) >> 2] = A ^ B), + (i[I >> 2] = f ^ c) + } + function IA(A, I) { + var g + ;(i[A >> 2] = + 67108863 & + (n[0 | I] | + (n[(I + 1) | 0] << 8) | + (n[(I + 2) | 0] << 16) | + (n[(I + 3) | 0] << 24))), + (i[(A + 4) >> 2] = + ((n[(I + 3) | 0] | + (n[(I + 4) | 0] << 8) | + (n[(I + 5) | 0] << 16) | + (n[(I + 6) | 0] << 24)) >>> + 2) & + 67108611), + (i[(A + 8) >> 2] = + ((n[(I + 6) | 0] | + (n[(I + 7) | 0] << 8) | + (n[(I + 8) | 0] << 16) | + (n[(I + 9) | 0] << 24)) >>> + 4) & + 67092735), + (i[(A + 12) >> 2] = + ((n[(I + 9) | 0] | + (n[(I + 10) | 0] << 8) | + (n[(I + 11) | 0] << 16) | + (n[(I + 12) | 0] << 24)) >>> + 6) & + 66076671), + (g = + n[(I + 12) | 0] | + (n[(I + 13) | 0] << 8) | + (n[(I + 14) | 0] << 16) | + (n[(I + 15) | 0] << 24)), + (i[(A + 20) >> 2] = 0), + (i[(A + 24) >> 2] = 0), + (i[(A + 28) >> 2] = 0), + (i[(A + 32) >> 2] = 0), + (i[(A + 36) >> 2] = 0), + (i[(A + 16) >> 2] = (g >>> 8) & 1048575), + (i[(A + 40) >> 2] = + n[(I + 16) | 0] | + (n[(I + 17) | 0] << 8) | + (n[(I + 18) | 0] << 16) | + (n[(I + 19) | 0] << 24)), + (i[(A + 44) >> 2] = + n[(I + 20) | 0] | + (n[(I + 21) | 0] << 8) | + (n[(I + 22) | 0] << 16) | + (n[(I + 23) | 0] << 24)), + (i[(A + 48) >> 2] = + n[(I + 24) | 0] | + (n[(I + 25) | 0] << 8) | + (n[(I + 26) | 0] << 16) | + (n[(I + 27) | 0] << 24)), + (I = + n[(I + 28) | 0] | + (n[(I + 29) | 0] << 8) | + (n[(I + 30) | 0] << 16) | + (n[(I + 31) | 0] << 24)), + (C[(A + 80) | 0] = 0), + (i[(A + 56) >> 2] = 0), + (i[(A + 60) >> 2] = 0), + (i[(A + 52) >> 2] = I) + } + function gA(A, I, g) { + var B = 0 + A: if ((0 | A) != (0 | I)) { + if ((((I - A) | 0) - g) >>> 0 <= (0 - (g << 1)) >>> 0) + return X(A, I, g) + if (((B = 3 & (A ^ I)), A >>> 0 < I >>> 0)) { + if (B) B = A + else { + if (3 & A) + for (B = A; ; ) { + if (!g) break A + if ( + ((C[0 | B] = n[0 | I]), + (I = (I + 1) | 0), + (g = (g - 1) | 0), + !(3 & (B = (B + 1) | 0))) + ) + break + } + else B = A + if (!(g >>> 0 <= 3)) + for ( + ; + (i[B >> 2] = i[I >> 2]), + (I = (I + 4) | 0), + (B = (B + 4) | 0), + (g = (g - 4) | 0) >>> 0 > 3; + + ); + } + if (g) + for ( + ; + (C[0 | B] = n[0 | I]), + (B = (B + 1) | 0), + (I = (I + 1) | 0), + (g = (g - 1) | 0); + + ); + } else { + if (!B) { + if ((A + g) & 3) + for (;;) { + if (!g) break A + if ( + ((C[0 | (B = ((g = (g - 1) | 0) + A) | 0)] = + n[(I + g) | 0]), + !(3 & B)) + ) + break + } + if (!(g >>> 0 <= 3)) + for ( + ; + (i[((g = (g - 4) | 0) + A) >> 2] = + i[(I + g) >> 2]), + g >>> 0 > 3; + + ); + } + if (!g) break A + for ( + ; + (C[((g = (g - 1) | 0) + A) | 0] = n[(I + g) | 0]), + g; + + ); + } + } + return A + } + function BA(A, I) { + var g, + B = 0 + ;(h = g = (h - 48) | 0), + (function (A, I) { + var g, + B, + Q, + C, + E, + n, + a, + o, + e = 0 + ;(B = i[(I + 28) >> 2]), + (Q = i[(I + 24) >> 2]), + (C = i[(I + 20) >> 2]), + (E = i[(I + 16) >> 2]), + (n = i[(I + 12) >> 2]), + (a = i[(I + 8) >> 2]), + (o = i[(I + 4) >> 2]), + (e = i[I >> 2]), + (g = i[(I + 36) >> 2]), + (I = i[(I + 32) >> 2]), + (e = + (r( + (((((B + + ((Q + + ((C + + ((E + + ((n + + ((a + + ((o + + ((e + + (((r(g, 19) + 16777216) >>> + 25) | + 0)) >> + 26)) >> + 25)) >> + 26)) >> + 25)) >> + 26)) >> + 25)) >> + 26)) >> + 25) + + I) >> + 26) + + g) >> + 25, + 19 + ) + + e) | + 0), + (i[A >> 2] = 67108863 & e), + (e = (o + (e >> 26)) | 0), + (i[(A + 4) >> 2] = 33554431 & e), + (e = (a + (e >> 25)) | 0), + (i[(A + 8) >> 2] = 67108863 & e), + (e = (n + (e >> 26)) | 0), + (i[(A + 12) >> 2] = 33554431 & e), + (e = (E + (e >> 25)) | 0), + (i[(A + 16) >> 2] = 67108863 & e), + (e = (C + (e >> 26)) | 0), + (i[(A + 20) >> 2] = 33554431 & e), + (e = (Q + (e >> 25)) | 0), + (i[(A + 24) >> 2] = 67108863 & e), + (e = (B + (e >> 26)) | 0), + (i[(A + 28) >> 2] = 33554431 & e), + (I = (I + (e >> 25)) | 0), + (i[(A + 32) >> 2] = 67108863 & I), + (i[(A + 36) >> 2] = (g + (I >> 26)) & 33554431) + })(g, I), + (I = i[g >> 2]), + (C[0 | A] = I), + (C[(A + 2) | 0] = I >>> 16), + (C[(A + 1) | 0] = I >>> 8), + (B = i[(g + 4) >> 2]), + (C[(A + 5) | 0] = B >>> 14), + (C[(A + 4) | 0] = B >>> 6), + (C[(A + 3) | 0] = (B << 2) | (I >>> 24)), + (I = i[(g + 8) >> 2]), + (C[(A + 8) | 0] = I >>> 13), + (C[(A + 7) | 0] = I >>> 5), + (C[(A + 6) | 0] = (I << 3) | (B >>> 22)), + (B = i[(g + 12) >> 2]), + (C[(A + 11) | 0] = B >>> 11), + (C[(A + 10) | 0] = B >>> 3), + (C[(A + 9) | 0] = (B << 5) | (I >>> 21)), + (I = i[(g + 16) >> 2]), + (C[(A + 15) | 0] = I >>> 18), + (C[(A + 14) | 0] = I >>> 10), + (C[(A + 13) | 0] = I >>> 2), + (C[(A + 12) | 0] = (I << 6) | (B >>> 19)), + (I = i[(g + 20) >> 2]), + (C[(A + 16) | 0] = I), + (C[(A + 18) | 0] = I >>> 16), + (C[(A + 17) | 0] = I >>> 8), + (B = i[(g + 24) >> 2]), + (C[(A + 21) | 0] = B >>> 15), + (C[(A + 20) | 0] = B >>> 7), + (C[(A + 19) | 0] = (B << 1) | (I >>> 24)), + (I = i[(g + 28) >> 2]), + (C[(A + 24) | 0] = I >>> 13), + (C[(A + 23) | 0] = I >>> 5), + (C[(A + 22) | 0] = (I << 3) | (B >>> 23)), + (B = i[(g + 32) >> 2]), + (C[(A + 27) | 0] = B >>> 12), + (C[(A + 26) | 0] = B >>> 4), + (C[(A + 25) | 0] = (B << 4) | (I >>> 21)), + (I = i[(g + 36) >> 2]), + (C[(A + 31) | 0] = I >>> 18), + (C[(A + 30) | 0] = I >>> 10), + (C[(A + 29) | 0] = I >>> 2), + (C[(A + 28) | 0] = (I << 6) | (B >>> 20)), + (h = (g + 48) | 0) + } + function QA(A, I, g, B) { + var Q = 0, + E = 0, + i = 0, + a = 0, + r = 0, + o = 0 + A: if (g | B) + for ( + o = (A + 224) | 0, + i = (A + 96) | 0, + Q = + n[(A + 352) | 0] | + (n[(A + 353) | 0] << 8) | + (n[(A + 354) | 0] << 16) | + (n[(A + 355) | 0] << 24); + ; + + ) { + if ( + ((a = (96 + ((A + Q) | 0)) | 0), + (r = E = (256 - Q) | 0), + !B & (g >>> 0 <= E >>> 0)) + ) { + X(a, I, g), + (I = + (g + + (n[(A + 352) | 0] | + (n[(A + 353) | 0] << 8) | + (n[(A + 354) | 0] << 16) | + (n[(A + 355) | 0] << 24))) | + 0), + (C[(A + 352) | 0] = I), + (C[(A + 353) | 0] = I >>> 8), + (C[(A + 354) | 0] = I >>> 16), + (C[(A + 355) | 0] = I >>> 24) + break A + } + if ( + (X(a, I, E), + (Q = + ((n[(A + 352) | 0] | + (n[(A + 353) | 0] << 8) | + (n[(A + 354) | 0] << 16) | + (n[(A + 355) | 0] << 24)) + + E) | + 0), + (C[(A + 352) | 0] = Q), + (C[(A + 353) | 0] = Q >>> 8), + (C[(A + 354) | 0] = Q >>> 16), + (C[(A + 355) | 0] = Q >>> 24), + iA(A, 128), + l(A, i), + X(i, o, 128), + (Q = + ((n[(A + 352) | 0] | + (n[(A + 353) | 0] << 8) | + (n[(A + 354) | 0] << 16) | + (n[(A + 355) | 0] << 24)) - + 128) | + 0), + (C[(A + 352) | 0] = Q), + (C[(A + 353) | 0] = Q >>> 8), + (C[(A + 354) | 0] = Q >>> 16), + (C[(A + 355) | 0] = Q >>> 24), + (I = (I + E) | 0), + !( + (g = ((E = g) - r) | 0) | + (B = (B - (E >>> 0 < r >>> 0)) | 0) + )) + ) + break + } + return 0 + } + function CA(A, I) { + var g, + B = 0, + Q = 0, + E = 0, + i = 0 + for ( + h = g = (h - 464) | 0; + (Q = B << 1), + (i = n[(I + B) | 0]), + (C[(Q + ((g + 400) | 0)) | 0] = 15 & i), + (C[(((g + 400) | 0) + (1 | Q)) | 0] = i >>> 4), + 32 != (0 | (B = (B + 1) | 0)); + + ); + for ( + B = 0; + (I = + (((Q = + ((I = B) + n[0 | (B = (((g + 400) | 0) + E) | 0)]) | + 0) << + 24) - + -134217728) | + 0), + (C[0 | B] = Q - ((I >> 24) & 240)), + (B = I >> 28), + 63 != (0 | (E = (E + 1) | 0)); + + ); + for ( + C[(g + 463) | 0] = n[(g + 463) | 0] + B, zI(A), B = 1; + fg(g, (B >>> 1) | 0, C[(((g + 400) | 0) + B) | 0]), + OA((g + 240) | 0, A, g), + DI(A, (g + 240) | 0), + (I = B >>> 0 < 62), + (B = (B + 2) | 0), + I; + + ); + for ( + JI((g + 240) | 0, A), + _I((g + 120) | 0, (g + 240) | 0), + AI((g + 240) | 0, (g + 120) | 0), + _I((g + 120) | 0, (g + 240) | 0), + AI((g + 240) | 0, (g + 120) | 0), + _I((g + 120) | 0, (g + 240) | 0), + AI((g + 240) | 0, (g + 120) | 0), + DI(A, (g + 240) | 0), + B = 0; + fg(g, (B >>> 1) | 0, C[(((g + 400) | 0) + B) | 0]), + OA((g + 240) | 0, A, g), + DI(A, (g + 240) | 0), + (I = B >>> 0 < 62), + (B = (B + 2) | 0), + I; + + ); + h = (g + 464) | 0 + } + function EA(A, I, g) { + var B = 0, + Q = 0, + E = 0, + n = 0 + if ( + g && + ((C[((B = (A + g) | 0) - 1) | 0] = I), + (C[0 | A] = I), + !( + g >>> 0 < 3 || + ((C[(B - 2) | 0] = I), + (C[(A + 1) | 0] = I), + (C[(B - 3) | 0] = I), + (C[(A + 2) | 0] = I), + g >>> 0 < 7 || + ((C[(B - 4) | 0] = I), + (C[(A + 3) | 0] = I), + g >>> 0 < 9 || + ((Q = ((B = (0 - A) & 3) + A) | 0), + (I = r(255 & I, 16843009)), + (i[Q >> 2] = I), + (i[ + ((B = ((g = (g - B) & -4) + Q) | 0) - 4) >> 2 + ] = I), + g >>> 0 < 9 || + ((i[(Q + 8) >> 2] = I), + (i[(Q + 4) >> 2] = I), + (i[(B - 8) >> 2] = I), + (i[(B - 12) >> 2] = I), + g >>> 0 < 25 || + ((i[(Q + 24) >> 2] = I), + (i[(Q + 20) >> 2] = I), + (i[(Q + 16) >> 2] = I), + (i[(Q + 12) >> 2] = I), + (i[(B - 16) >> 2] = I), + (i[(B - 20) >> 2] = I), + (i[(B - 24) >> 2] = I), + (i[(B - 28) >> 2] = I), + (g = (g - (n = (4 & Q) | 24)) | 0) >>> 0 < + 32))))) + )) + ) + for ( + B = I, E = I, I = (Q + n) | 0; + (i[(I + 24) >> 2] = E), + (i[(I + 28) >> 2] = B), + (i[(I + 16) >> 2] = E), + (i[(I + 20) >> 2] = B), + (i[(I + 8) >> 2] = E), + (i[(I + 12) >> 2] = B), + (i[I >> 2] = E), + (i[(I + 4) >> 2] = B), + (I = (I + 32) | 0), + (g = (g - 32) | 0) >>> 0 > 31; + + ); + return A + } + function iA(A, I) { + var g, + B, + Q, + E = 0, + i = 0 + ;(i = E = (A - -64) | 0), + (B = + (1 + + (g = + n[(E + 4) | 0] | + (n[(E + 5) | 0] << 8) | + (n[(E + 6) | 0] << 16) | + (n[(E + 7) | 0] << 24))) | + 0), + (E = + (I = + (I + + (E = Q = + n[0 | E] | + (n[(E + 1) | 0] << 8) | + (n[(E + 2) | 0] << 16) | + (n[(E + 3) | 0] << 24))) | + 0) >>> + 0 < + E >>> 0 + ? B + : g), + (C[0 | i] = I), + (C[(i + 1) | 0] = I >>> 8), + (C[(i + 2) | 0] = I >>> 16), + (C[(i + 3) | 0] = I >>> 24), + (C[(i + 4) | 0] = E), + (C[(i + 5) | 0] = E >>> 8), + (C[(i + 6) | 0] = E >>> 16), + (C[(i + 7) | 0] = E >>> 24), + (I = + ((E = + (((0 | E) == (0 | g)) & (I >>> 0 < Q >>> 0)) | + (E >>> 0 < g >>> 0)) + + (n[(A + 72) | 0] | + (n[(A + 73) | 0] << 8) | + (n[(A + 74) | 0] << 16) | + (n[(A + 75) | 0] << 24))) | + 0), + (i = + n[(A + 76) | 0] | + (n[(A + 77) | 0] << 8) | + (n[(A + 78) | 0] << 16) | + (n[(A + 79) | 0] << 24)), + (E = I >>> 0 < E >>> 0 ? (i + 1) | 0 : i), + (C[(A + 72) | 0] = I), + (C[(A + 73) | 0] = I >>> 8), + (C[(A + 74) | 0] = I >>> 16), + (C[(A + 75) | 0] = I >>> 24), + (C[(A + 76) | 0] = E), + (C[(A + 77) | 0] = E >>> 8), + (C[(A + 78) | 0] = E >>> 16), + (C[(A + 79) | 0] = E >>> 24) + } + function nA(A, I, g, B, Q, C, E) { + var n, + a, + r, + o, + e = 0 + return ( + (h = n = (h - 352) | 0), + K(n, C, E), + ((!Q & (B >>> 0 <= (g - A) >>> 0)) | + (A >>> 0 >= g >>> 0) && + !( + (!Q & (B >>> 0 > (A - g) >>> 0)) | Q && + A >>> 0 > g >>> 0 + )) || + (g = gA(A, g, B)), + (i[(n + 56) >> 2] = 0), + (i[(n + 60) >> 2] = 0), + (i[(n + 48) >> 2] = 0), + (i[(n + 52) >> 2] = 0), + (i[(n + 40) >> 2] = 0), + (i[(n + 44) >> 2] = 0), + (i[(n + 32) >> 2] = 0), + (i[(n + 36) >> 2] = 0), + (a = !( + (E = (e = (!Q & (B >>> 0 > 32)) | (0 != (0 | Q))) + ? 32 + : B) | (e = e ? 0 : Q) + )) || X((n - -64) | 0, g, E), + (o = (C + 16) | 0), + $I( + (n + 32) | 0, + (n + 32) | 0, + (r = (E + 32) | 0), + (C = r >>> 0 < 32 ? (e + 1) | 0 : e), + o, + n + ), + lg((n + 96) | 0, (n + 32) | 0), + a || X(A, (n - -64) | 0, E), + fI((n + 32) | 0, 64), + (!Q & (B >>> 0 >= 33)) | Q && + Ag( + (A + E) | 0, + (C = (g + E) | 0), + ((g = B) - E) | 0, + (Q - ((e + (g >>> 0 < E >>> 0)) | 0)) | 0, + o, + n + ), + fI(n, 32), + yg((n + 96) | 0, A, B, Q), + Fg((n + 96) | 0, I), + fI((n + 96) | 0, 256), + (h = (n + 352) | 0), + 0 + ) + } + function aA(A, I) { + ;(i[A >> 2] = 1634760805), + (i[(A + 4) >> 2] = 857760878), + (i[(A + 8) >> 2] = 2036477234), + (i[(A + 12) >> 2] = 1797285236), + (i[(A + 16) >> 2] = + n[0 | I] | + (n[(I + 1) | 0] << 8) | + (n[(I + 2) | 0] << 16) | + (n[(I + 3) | 0] << 24)), + (i[(A + 20) >> 2] = + n[(I + 4) | 0] | + (n[(I + 5) | 0] << 8) | + (n[(I + 6) | 0] << 16) | + (n[(I + 7) | 0] << 24)), + (i[(A + 24) >> 2] = + n[(I + 8) | 0] | + (n[(I + 9) | 0] << 8) | + (n[(I + 10) | 0] << 16) | + (n[(I + 11) | 0] << 24)), + (i[(A + 28) >> 2] = + n[(I + 12) | 0] | + (n[(I + 13) | 0] << 8) | + (n[(I + 14) | 0] << 16) | + (n[(I + 15) | 0] << 24)), + (i[(A + 32) >> 2] = + n[(I + 16) | 0] | + (n[(I + 17) | 0] << 8) | + (n[(I + 18) | 0] << 16) | + (n[(I + 19) | 0] << 24)), + (i[(A + 36) >> 2] = + n[(I + 20) | 0] | + (n[(I + 21) | 0] << 8) | + (n[(I + 22) | 0] << 16) | + (n[(I + 23) | 0] << 24)), + (i[(A + 40) >> 2] = + n[(I + 24) | 0] | + (n[(I + 25) | 0] << 8) | + (n[(I + 26) | 0] << 16) | + (n[(I + 27) | 0] << 24)), + (i[(A + 44) >> 2] = + n[(I + 28) | 0] | + (n[(I + 29) | 0] << 8) | + (n[(I + 30) | 0] << 16) | + (n[(I + 31) | 0] << 24)) + } + function rA(A, I, g, B, Q, C, E) { + var n, + a, + r = 0, + o = 0 + ;(h = n = (h - 96) | 0), + K(n, C, E), + (a = (C + 16) | 0), + Vg[i[8952]]((n + 32) | 0, 32, 0, a, n), + (C = -1) + A: { + if (!(0 | Vg[i[8946]](g, I, B, Q, (n + 32) | 0))) { + if (((C = 0), !A)) break A + ;((!Q & (B >>> 0 <= (A - I) >>> 0)) | + (A >>> 0 <= I >>> 0) && + !( + (!Q & (B >>> 0 > (I - A) >>> 0)) | Q && + A >>> 0 < I >>> 0 + )) || + (I = gA(A, I, B)), + (g = (C = (!Q & (B >>> 0 > 32)) | (0 != (0 | Q))) + ? 32 + : B), + (E = C = C ? 0 : Q), + g | C + ? ((o = X((n - -64) | 0, I, g)), + (C = E), + $I( + (n + 32) | 0, + (n + 32) | 0, + (r = (g + 32) | 0), + (C = r >>> 0 < 32 ? (C + 1) | 0 : C), + a, + n + ), + X(A, o, g)) + : ((C = E), + $I( + (n + 32) | 0, + (n + 32) | 0, + (r = (g + 32) | 0), + (C = r >>> 0 < 32 ? (C + 1) | 0 : C), + a, + n + )), + (C = 0), + !Q & (B >>> 0 < 33) || + Ag( + ((r = A) + (A = g)) | 0, + (A + I) | 0, + (B - A) | 0, + (Q - ((E + (A >>> 0 > B >>> 0)) | 0)) | 0, + a, + n + ) + } + fI(n, 32) + } + return (h = (n + 96) | 0), C + } + function oA(A) { + var I = 0, + g = 0, + B = 0 + if (!A) return -25 + if (!i[A >> 2]) return -1 + A: { + I: { + if ( + ((I = -2), + !(a[(A + 4) >> 2] < 16) && + (i[(A + 8) >> 2] || + ((I = -18), !i[(A + 12) >> 2]))) + ) { + if (((g = i[(A + 20) >> 2]), !i[(A + 16) >> 2])) + break I + if ( + ((I = -6), + !(g >>> 0 < 8) && + (i[(A + 24) >> 2] || + ((I = -20), !i[(A + 28) >> 2])) && + (i[(A + 32) >> 2] || + ((I = -21), !i[(A + 36) >> 2]))) + ) { + if (!(g = i[(A + 48) >> 2])) return -16 + if ( + ((I = -17), + !( + g >>> 0 > 16777215 || + ((I = -14), + (B = i[(A + 44) >> 2]) >>> 0 < 8 || + ((I = -15), + B >>> 0 > 2097152 || + ((I = -14), (g << 3) >>> 0 > B >>> 0))) + )) + ) { + if (!i[(A + 40) >> 2]) return -12 + if ((A = i[(A + 52) >> 2])) break A + I = -28 + } + } + } + return I + } + return g ? -19 : -6 + } + return A >>> 0 > 16777215 ? -29 : 0 + } + function eA(A, I, g) { + var B, + Q, + C, + E, + n, + a, + r, + o, + e, + t, + f, + c, + y, + s, + w, + h, + D, + u, + p, + l + ;(f = i[(I + 4) >> 2]), + (B = i[(A + 4) >> 2]), + (c = i[(I + 8) >> 2]), + (Q = i[(A + 8) >> 2]), + (y = i[(I + 12) >> 2]), + (C = i[(A + 12) >> 2]), + (s = i[(I + 16) >> 2]), + (E = i[(A + 16) >> 2]), + (w = i[(I + 20) >> 2]), + (n = i[(A + 20) >> 2]), + (h = i[(I + 24) >> 2]), + (a = i[(A + 24) >> 2]), + (D = i[(I + 28) >> 2]), + (r = i[(A + 28) >> 2]), + (u = i[(I + 32) >> 2]), + (o = i[(A + 32) >> 2]), + (p = i[(I + 36) >> 2]), + (e = i[(A + 36) >> 2]), + (t = i[A >> 2]), + (l = i[I >> 2] ^ t), + (I = (0 - g) | 0), + (i[A >> 2] = t ^ (l & I)), + (i[(A + 36) >> 2] = (I & (e ^ p)) ^ e), + (i[(A + 32) >> 2] = (I & (o ^ u)) ^ o), + (i[(A + 28) >> 2] = (I & (r ^ D)) ^ r), + (i[(A + 24) >> 2] = (I & (a ^ h)) ^ a), + (i[(A + 20) >> 2] = (I & (n ^ w)) ^ n), + (i[(A + 16) >> 2] = (I & (E ^ s)) ^ E), + (i[(A + 12) >> 2] = (I & (C ^ y)) ^ C), + (i[(A + 8) >> 2] = (I & (Q ^ c)) ^ Q), + (i[(A + 4) >> 2] = (I & (B ^ f)) ^ B) + } + function tA(A, I) { + for ( + var g = 0, + B = 0, + Q = 0, + E = 0, + i = 0, + a = 0, + r = 0, + o = 0; + (C[(A + g) | 0] = + (n[(((g >>> 3) | 0) + I) | 0] >>> (7 & g)) & 1), + 256 != (0 | (g = (g + 1) | 0)); + + ); + for (;;) { + a = ((I = a) + 1) | 0 + A: if ( + n[0 | (i = (A + I) | 0)] && + ((g = a), (Q = 1), !(I >>> 0 > 254)) + ) + for (;;) { + I: if ((E = C[0 | (B = (A + g) | 0)])) + if ( + (0 | (o = ((r = C[0 | i]) + (E <<= Q)) | 0)) <= + 15 + ) + (C[0 | i] = o), (C[0 | B] = 0) + else { + if ((0 | (B = (r - E) | 0)) < -15) break A + for (C[0 | i] = B; ; ) { + if (!n[0 | (B = (A + g) | 0)]) { + C[0 | B] = 1 + break I + } + if ( + ((C[0 | B] = 0), + (B = g >>> 0 < 255), + (g = (g + 1) | 0), + !B) + ) + break + } + } + if (Q >>> 0 > 5) break A + if ( + !((g = (I + (Q = (Q + 1) | 0)) | 0) >>> 0 < 256) + ) + break + } + if (256 == (0 | a)) break + } + } + function fA(A, I, g, B) { + var Q, + C, + E, + n, + a = 0 + ;(h = Q = (h + -64) | 0), + EA((Q + 8) | 0, 0, 52), + (a = YA(A)), + (i[(Q + 20) >> 2] = a), + (i[(Q + 36) >> 2] = a), + (i[(Q + 4) >> 2] = a), + (C = k(a)), + (i[(Q + 32) >> 2] = C), + (E = k(a)), + (i[(Q + 16) >> 2] = E), + (n = k(a)), + (i[Q >> 2] = n) + A: if (!n | !C | !E || !(a = k(a))) + m(C), m(E), m(n), (A = -22) + else { + if ((A = T(Q, A, B))) { + m(i[(Q + 32) >> 2]), + m(i[(Q + 16) >> 2]), + m(i[Q >> 2]), + m(a) + break A + } + ;(A = 0), + (I = pA( + i[(Q + 40) >> 2], + i[(Q + 44) >> 2], + i[(Q + 52) >> 2], + I, + g, + i[(Q + 16) >> 2], + i[(Q + 20) >> 2], + a, + i[(Q + 4) >> 2], + 0, + 0, + B + )), + m(i[(Q + 32) >> 2]), + m(i[(Q + 16) >> 2]), + (I || zA(a, i[Q >> 2], i[(Q + 4) >> 2])) && (A = -35), + m(a), + m(i[Q >> 2]) + } + return (h = (Q - -64) | 0), A + } + function cA(A, I) { + var g, + B, + Q = 0 + ;(h = g = (h - 288) | 0), + d((B = (A + 40) | 0), I), + wg((Q = (A + 80) | 0)), + H((g + 240) | 0, B), + _((g + 192) | 0, (g + 240) | 0, 2128), + yA((g + 240) | 0, (g + 240) | 0, Q), + sA((g + 192) | 0, (g + 192) | 0, Q), + H((g + 144) | 0, (g + 192) | 0), + _((g + 144) | 0, (g + 144) | 0, (g + 192) | 0), + H(A, (g + 144) | 0), + _(A, A, (g + 192) | 0), + _(A, A, (g + 240) | 0), + (function (A, I) { + var g, + B = 0 + for ( + h = g = (h - 144) | 0, + H((g + 96) | 0, I), + H((g + 48) | 0, (g + 96) | 0), + H((g + 48) | 0, (g + 48) | 0), + _((g + 48) | 0, I, (g + 48) | 0), + _((g + 96) | 0, (g + 96) | 0, (g + 48) | 0), + H((g + 96) | 0, (g + 96) | 0), + _((g + 96) | 0, (g + 48) | 0, (g + 96) | 0), + H((g + 48) | 0, (g + 96) | 0), + B = 1; + H((g + 48) | 0, (g + 48) | 0), + 5 != (0 | (B = (B + 1) | 0)); + + ); + for ( + _((g + 96) | 0, (g + 48) | 0, (g + 96) | 0), + H((g + 48) | 0, (g + 96) | 0), + B = 1; + H((g + 48) | 0, (g + 48) | 0), + 10 != (0 | (B = (B + 1) | 0)); + + ); + for ( + _((g + 48) | 0, (g + 48) | 0, (g + 96) | 0), + H(g, (g + 48) | 0), + B = 1; + H(g, g), 20 != (0 | (B = (B + 1) | 0)); + + ); + for ( + _((g + 48) | 0, g, (g + 48) | 0), B = 1; + H((g + 48) | 0, (g + 48) | 0), + 11 != (0 | (B = (B + 1) | 0)); + + ); + for ( + _((g + 96) | 0, (g + 48) | 0, (g + 96) | 0), + H((g + 48) | 0, (g + 96) | 0), + B = 1; + H((g + 48) | 0, (g + 48) | 0), + 50 != (0 | (B = (B + 1) | 0)); + + ); + for ( + _((g + 48) | 0, (g + 48) | 0, (g + 96) | 0), + H(g, (g + 48) | 0), + B = 1; + H(g, g), 100 != (0 | (B = (B + 1) | 0)); + + ); + for ( + _((g + 48) | 0, g, (g + 48) | 0), B = 1; + H((g + 48) | 0, (g + 48) | 0), + 51 != (0 | (B = (B + 1) | 0)); + + ); + _((g + 96) | 0, (g + 48) | 0, (g + 96) | 0), + H((g + 96) | 0, (g + 96) | 0), + H((g + 96) | 0, (g + 96) | 0), + _(A, (g + 96) | 0, I), + (h = (g + 144) | 0) + })(A, A), + _(A, A, (g + 144) | 0), + _(A, A, (g + 240) | 0), + H((g + 96) | 0, A), + _((g + 96) | 0, (g + 96) | 0, (g + 192) | 0), + yA((g + 48) | 0, (g + 96) | 0, (g + 240) | 0) + A: { + if (!RI((g + 48) | 0)) { + if ( + (sA(g, (g + 96) | 0, (g + 240) | 0), + (Q = -1), + !RI(g)) + ) + break A + _(A, A, 2176) + } + ;(0 | KI(A)) == ((n[(I + 31) | 0] >>> 7) | 0) && + mA(A, A), + _((A + 120) | 0, A, B), + (Q = 0) + } + return (h = (g + 288) | 0), Q + } + function yA(A, I, g) { + var B, Q, C, E, n, a, r, o, e, t, f, c, y, s, w, h, D, u + ;(B = i[(g + 4) >> 2]), + (Q = i[(I + 4) >> 2]), + (C = i[(g + 8) >> 2]), + (E = i[(I + 8) >> 2]), + (n = i[(g + 12) >> 2]), + (a = i[(I + 12) >> 2]), + (r = i[(g + 16) >> 2]), + (o = i[(I + 16) >> 2]), + (e = i[(g + 20) >> 2]), + (t = i[(I + 20) >> 2]), + (f = i[(g + 24) >> 2]), + (c = i[(I + 24) >> 2]), + (y = i[(g + 28) >> 2]), + (s = i[(I + 28) >> 2]), + (w = i[(g + 32) >> 2]), + (h = i[(I + 32) >> 2]), + (D = i[(g + 36) >> 2]), + (u = i[(I + 36) >> 2]), + (i[A >> 2] = i[I >> 2] - i[g >> 2]), + (i[(A + 36) >> 2] = u - D), + (i[(A + 32) >> 2] = h - w), + (i[(A + 28) >> 2] = s - y), + (i[(A + 24) >> 2] = c - f), + (i[(A + 20) >> 2] = t - e), + (i[(A + 16) >> 2] = o - r), + (i[(A + 12) >> 2] = a - n), + (i[(A + 8) >> 2] = E - C), + (i[(A + 4) >> 2] = Q - B) + } + function sA(A, I, g) { + var B, Q, C, E, n, a, r, o, e, t, f, c, y, s, w, h, D, u + ;(B = i[(g + 4) >> 2]), + (Q = i[(I + 4) >> 2]), + (C = i[(g + 8) >> 2]), + (E = i[(I + 8) >> 2]), + (n = i[(g + 12) >> 2]), + (a = i[(I + 12) >> 2]), + (r = i[(g + 16) >> 2]), + (o = i[(I + 16) >> 2]), + (e = i[(g + 20) >> 2]), + (t = i[(I + 20) >> 2]), + (f = i[(g + 24) >> 2]), + (c = i[(I + 24) >> 2]), + (y = i[(g + 28) >> 2]), + (s = i[(I + 28) >> 2]), + (w = i[(g + 32) >> 2]), + (h = i[(I + 32) >> 2]), + (D = i[(g + 36) >> 2]), + (u = i[(I + 36) >> 2]), + (i[A >> 2] = i[g >> 2] + i[I >> 2]), + (i[(A + 36) >> 2] = D + u), + (i[(A + 32) >> 2] = w + h), + (i[(A + 28) >> 2] = y + s), + (i[(A + 24) >> 2] = f + c), + (i[(A + 20) >> 2] = e + t), + (i[(A + 16) >> 2] = r + o), + (i[(A + 12) >> 2] = n + a), + (i[(A + 8) >> 2] = C + E), + (i[(A + 4) >> 2] = B + Q) + } + function wA(A) { + var I, + g = 0, + B = 0, + Q = 0, + E = 0 + for ( + C[(11 + (I = (h - 16) | 0)) | 0] = 0, + C[(I + 12) | 0] = 0, + C[(I + 13) | 0] = 0, + C[(I + 14) | 0] = 0, + i[(I + 8) >> 2] = 0; + ; + + ) { + for ( + Q = n[(A + B) | 0], g = 0; + (C[0 | (E = (((I + 8) | 0) + g) | 0)] = + n[0 | E] | + (Q ^ n[(((3232 + (g << 5)) | 0) + B) | 0])), + 7 != (0 | (g = (g + 1) | 0)); + + ); + if (31 == (0 | (B = (B + 1) | 0))) break + } + for ( + B = 127 & n[(A + 31) | 0], A = 0, g = 0; + (C[0 | (Q = (((I + 8) | 0) + g) | 0)] = + n[0 | Q] | (B ^ n[(3263 + (g << 5)) | 0])), + 7 != (0 | (g = (g + 1) | 0)); + + ); + for ( + g = 0; + (g = (n[(((I + 8) | 0) + A) | 0] - 1) | g), + 7 != (0 | (A = (A + 1) | 0)); + + ); + return (g >>> 8) & 1 + } + function hA(A, I) { + var g = 0, + B = 0, + Q = 0, + E = 0, + i = 0 + for ( + EA((X(A, 1952, 64) - -64) | 0, 0, 293); + (Q = B = ((g = E << 3) + A) | 0), + (g = (I + g) | 0), + (i = + n[0 | B] | + (n[(B + 1) | 0] << 8) | + (n[(B + 2) | 0] << 16) | + (n[(B + 3) | 0] << 24)), + (B = + (n[(g + 4) | 0] | + (n[(g + 5) | 0] << 8) | + (n[(g + 6) | 0] << 16) | + (n[(g + 7) | 0] << 24)) ^ + (n[(B + 4) | 0] | + (n[(B + 5) | 0] << 8) | + (n[(B + 6) | 0] << 16) | + (n[(B + 7) | 0] << 24))), + (g = + (n[0 | g] | + (n[(g + 1) | 0] << 8) | + (n[(g + 2) | 0] << 16) | + (n[(g + 3) | 0] << 24)) ^ + i), + (C[0 | Q] = g), + (C[(Q + 1) | 0] = g >>> 8), + (C[(Q + 2) | 0] = g >>> 16), + (C[(Q + 3) | 0] = g >>> 24), + (C[(Q + 4) | 0] = B), + (C[(Q + 5) | 0] = B >>> 8), + (C[(Q + 6) | 0] = B >>> 16), + (C[(Q + 7) | 0] = B >>> 24), + 8 != (0 | (E = (E + 1) | 0)); + + ); + } + function DA(A, I, g, B, Q) { + var C, + E = 0 + h = C = (h + -64) | 0 + A: { + I: { + if (((E = !g), (g = YA(A)) >>> 0 < 128 && E)) { + if ( + ((i[(C + 56) >> 2] = 0), + (i[(C + 48) >> 2] = 0), + (i[(C + 52) >> 2] = 0), + (i[(C + 40) >> 2] = 0), + (i[(C + 44) >> 2] = 0), + (E = (function (A) { + var I = 0, + g = 0 + return ( + (I = 0), + A && + ((g = A), + (I = A), + (1 | A) >>> 0 < 65536 || (I = g)), + (g = I), + !(A = k(I)) | !(3 & n[(A - 4) | 0]) || + EA(A, 0, g), + A + ) + })(g))) + ) + break I + } else i[8960] = 28 + A = -1 + break A + } + ;(i[(C + 32) >> 2] = 0), + (i[(C + 36) >> 2] = 0), + (i[(C + 8) >> 2] = E), + (i[(C + 16) >> 2] = E), + (i[(C + 20) >> 2] = g), + (i[C >> 2] = E), + (i[(C + 12) >> 2] = g), + (i[(C + 24) >> 2] = 0), + (i[(C + 28) >> 2] = 0), + (i[(C + 4) >> 2] = g), + T(C, A, Q) + ? ((i[8960] = 28), (A = -1)) + : ((A = 1), + (0 | I) == i[(C + 40) >> 2] && + (A = i[(C + 44) >> 2] != ((B >>> 10) | 0))), + m(E) + } + return (h = (C - -64) | 0), A + } + function uA(A, I) { + var g, + B = 0, + Q = 0, + E = 0, + o = 0 + if ( + ((h = g = (h - 48) | 0), + !( + (B = oA(A)) || + ((B = -26), + (I - 1) >>> 0 > 1 || + ((E = i[(A + 44) >> 2]), + (B = i[(A + 48) >> 2]), + (i[g >> 2] = 0), + (Q = i[(A + 40) >> 2]), + (i[(g + 28) >> 2] = B), + (i[(g + 12) >> 2] = -1), + (i[(g + 8) >> 2] = Q), + (B = + (((Q = E >>> 0 < (Q = B << 3) >>> 0 ? Q : E) >>> + 0) / + ((E = B << 2) >>> 0)) | + 0), + (i[(g + 20) >> 2] = B), + (i[(g + 24) >> 2] = B << 2), + (i[(g + 16) >> 2] = r(B, E)), + (B = i[(A + 52) >> 2]), + (i[(g + 36) >> 2] = I), + (i[(g + 32) >> 2] = B), + (B = (function (A, I) { + var g, + B = 0 + return ( + (h = g = (h - 80) | 0), + (B = -25), + !A | !I || + ((B = k(i[(A + 20) >> 2] << 3)), + (i[(A + 4) >> 2] = B), + B + ? (B = (function (A, I) { + var g, + B = 0, + Q = 0 + ;(h = g = (h - 16) | 0), (Q = -22) + A: if ( + !(!A | !I) && + 1024 == + ((((B = I << 10) >>> 0) / + (I >>> 0)) | + 0) && + ((I = k(12)), (i[A >> 2] = I), I) + ) { + ;(i[I >> 2] = 0), + (i[(I + 4) >> 2] = 0), + (I = (function (A, I) { + if (I >>> 0 > 4294967168) A = 48 + else { + if ( + !(I = (function (A) { + var I = 0, + g = 0, + B = 0, + Q = 0, + C = 0, + E = 0 + return A >>> 0 >= 4294967168 + ? ((i[8960] = 48), 0) + : (A = k( + (76 + + (B = + A >>> 0 < 11 + ? 16 + : (A + 11) & + -8)) | + 0 + )) + ? ((I = (A - 8) | 0), + 63 & A + ? ((Q = + ((-8 & + (E = + i[ + (C = + (A - 4) | + 0) >> 2 + ])) - + (g = + ((A = + ((A = + (((A + + 63) & + -64) - + 8) | + 0) - + I) >>> + 0 > + 15 + ? A + : (A - + -64) | + 0) - + I) | + 0)) | + 0), + 3 & E + ? ((i[ + (A + 4) >> 2 + ] = + Q | + (1 & + i[ + (A + 4) >> + 2 + ]) | + 2), + (i[ + (4 + + (Q = + (A + Q) | + 0)) >> + 2 + ] = + 1 | + i[ + (Q + 4) >> 2 + ]), + (i[C >> 2] = + g | + (1 & + i[C >> 2]) | + 2), + (i[ + (A + 4) >> 2 + ] = + 1 | + i[ + (A + 4) >> 2 + ]), + v(I, g)) + : ((I = + i[I >> 2]), + (i[ + (A + 4) >> 2 + ] = Q), + (i[A >> 2] = + I + g))) + : (A = I), + 3 & + (I = + i[(A + 4) >> 2]) && + ((g = -8 & I) >>> 0 <= + (B + 16) >>> 0 || + ((i[(A + 4) >> 2] = + B | (1 & I) | 2), + (I = (A + B) | 0), + (B = (g - B) | 0), + (i[(I + 4) >> 2] = + 3 | B), + (i[ + (4 + + (g = + (A + g) | + 0)) >> + 2 + ] = + 1 | + i[(g + 4) >> 2]), + v(I, B))), + (A + 8) | 0) + : 0 + })(I)) + ) + return 48 + ;(i[A >> 2] = I), (A = 0) + } + return A + })((g + 12) | 0, B)), + (i[8960] = I) + I: { + if (I) i[(g + 12) >> 2] = 0 + else if ((I = i[(g + 12) >> 2])) + break I + m(i[A >> 2]), (i[A >> 2] = 0) + break A + } + ;(i[i[A >> 2] >> 2] = I), + (i[(i[A >> 2] + 4) >> 2] = I), + (i[(i[A >> 2] + 8) >> 2] = B), + (Q = 0) + } + return (h = (g + 16) | 0), Q + })(A, i[(A + 16) >> 2])) + ? eI(A, i[(I + 56) >> 2]) + : ((function (A, I, g) { + var B, + Q = 0 + ;(B = Q = h), + (h = Q = (Q - 448) & -64), + !A | !I || + (iI((Q - -64) | 0, 0, 0, 64), + xI( + (Q + 60) | 0, + i[(I + 48) >> 2] + ), + hg( + (Q - -64) | 0, + (Q + 60) | 0, + 4, + 0 + ), + xI((Q + 60) | 0, i[(I + 4) >> 2]), + hg( + (Q - -64) | 0, + (Q + 60) | 0, + 4, + 0 + ), + xI( + (Q + 60) | 0, + i[(I + 44) >> 2] + ), + hg( + (Q - -64) | 0, + (Q + 60) | 0, + 4, + 0 + ), + xI( + (Q + 60) | 0, + i[(I + 40) >> 2] + ), + hg( + (Q - -64) | 0, + (Q + 60) | 0, + 4, + 0 + ), + xI((Q + 60) | 0, 19), + hg( + (Q - -64) | 0, + (Q + 60) | 0, + 4, + 0 + ), + xI((Q + 60) | 0, g), + hg( + (Q - -64) | 0, + (Q + 60) | 0, + 4, + 0 + ), + xI( + (Q + 60) | 0, + i[(I + 12) >> 2] + ), + hg( + (Q - -64) | 0, + (Q + 60) | 0, + 4, + 0 + ), + (g = i[(I + 8) >> 2]) && + (hg( + (Q - -64) | 0, + g, + i[(I + 12) >> 2], + 0 + ), + 1 & C[(I + 56) | 0] && + (fI( + i[(I + 8) >> 2], + i[(I + 12) >> 2] + ), + (i[(I + 12) >> 2] = 0))), + xI( + (Q + 60) | 0, + i[(I + 20) >> 2] + ), + hg( + (Q - -64) | 0, + (Q + 60) | 0, + 4, + 0 + ), + (g = i[(I + 16) >> 2]) && + hg( + (Q - -64) | 0, + g, + i[(I + 20) >> 2], + 0 + ), + xI( + (Q + 60) | 0, + i[(I + 28) >> 2] + ), + hg( + (Q - -64) | 0, + (Q + 60) | 0, + 4, + 0 + ), + (g = i[(I + 24) >> 2]) && + (hg( + (Q - -64) | 0, + g, + i[(I + 28) >> 2], + 0 + ), + 2 & n[(I + 56) | 0] && + (fI( + i[(I + 24) >> 2], + i[(I + 28) >> 2] + ), + (i[(I + 28) >> 2] = 0))), + xI( + (Q + 60) | 0, + i[(I + 36) >> 2] + ), + hg( + (Q - -64) | 0, + (Q + 60) | 0, + 4, + 0 + ), + (g = i[(I + 32) >> 2]) && + hg( + (Q - -64) | 0, + g, + i[(I + 36) >> 2], + 0 + ), + dI((Q - -64) | 0, A, 64)), + (h = B) + })(g, I, i[(A + 36) >> 2]), + fI((g - -64) | 0, 8), + (function (A, I) { + var g, + B = 0, + Q = 0, + C = 0 + if ( + ((h = g = (h - 1024) | 0), + i[(I + 28) >> 2]) + ) + for ( + C = (A + 68) | 0, + Q = (A - -64) | 0; + xI(Q, 0), + xI(C, B), + J(g, 1024, A, 72), + TA( + (i[(i[I >> 2] + 4) >> 2] + + (r(i[(I + 24) >> 2], B) << + 10)) | + 0, + g + ), + xI(Q, 1), + J(g, 1024, A, 72), + TA( + (1024 + + ((i[(i[I >> 2] + 4) >> 2] + + (r(i[(I + 24) >> 2], B) << + 10)) | + 0)) | + 0, + g + ), + (B = (B + 1) | 0) >>> 0 < + a[(I + 28) >> 2]; + + ); + fI(g, 1024), (h = (g + 1024) | 0) + })(g, A), + fI(g, 72), + (B = 0)) + : (B = -22)), + (h = (g + 80) | 0), + B + ) + })(g, A)))) + )) + ) { + if (i[(g + 8) >> 2]) + for ( + ; + kA(g, o), (o = (o + 1) | 0) >>> 0 < a[(g + 8) >> 2]; + + ); + !(function (A, I) { + var g, + B = 0, + Q = 0 + if (((h = g = (h - 2048) | 0), !(!A | !I))) { + if ( + (Yg( + (g + 1024) | 0, + (((i[(i[I >> 2] + 4) >> 2] + + (i[(I + 24) >> 2] << 10)) | + 0) - + 1024) | + 0 + ), + a[(I + 28) >> 2] >= 2) + ) + for ( + B = 1; + (Q = i[(I + 24) >> 2]), + QI( + (g + 1024) | 0, + (((i[(i[I >> 2] + 4) >> 2] + + ((Q + r(B, Q)) << 10)) | + 0) - + 1024) | + 0 + ), + (B = (B + 1) | 0) >>> 0 < a[(I + 28) >> 2]; + + ); + !(function (A, I) { + for ( + var g = 0, B = 0; + tI( + ((g = B << 3) + A) | 0, + i[(g = (I + g) | 0) >> 2], + i[(g + 4) >> 2] + ), + 128 != (0 | (B = (B + 1) | 0)); + + ); + })(g, (g + 1024) | 0), + J(i[A >> 2], i[(A + 4) >> 2], g, 1024), + fI((g + 1024) | 0, 1024), + fI(g, 1024), + eI(I, i[(A + 56) >> 2]) + } + h = (g + 2048) | 0 + })(A, g), + (B = 0) + } + return (h = (g + 48) | 0), B + } + function pA(A, I, g, B, Q, C, E, n, a, r, o, e) { + var t, f + return ( + (h = t = (h + -64) | 0), + (f = k(a)) + ? ((i[(t + 32) >> 2] = 0), + (i[(t + 36) >> 2] = 0), + (i[(t + 24) >> 2] = 0), + (i[(t + 28) >> 2] = 0), + (i[(t + 20) >> 2] = E), + (i[(t + 16) >> 2] = C), + (i[(t + 12) >> 2] = Q), + (i[(t + 8) >> 2] = B), + (i[(t + 4) >> 2] = a), + (i[t >> 2] = f), + (i[(t + 56) >> 2] = 0), + (i[(t + 52) >> 2] = g), + (i[(t + 48) >> 2] = g), + (i[(t + 44) >> 2] = I), + (i[(t + 40) >> 2] = A), + (g = uA(t, e)) + ? fI(f, a) + : !r | !o || !R(r, o, t, e) + ? (n && X(n, f, a), fI(f, a), (g = 0)) + : (fI(f, a), fI(r, o), (g = -31)), + m(f)) + : (g = -22), + (h = (t - -64) | 0), + g + ) + } + function lA(A, I, g, B, Q, E) { + var i, + a, + o = 0, + e = 0, + t = 0 + return ( + (h = i = (h - 592) | 0), + (o = -1), + (function (A) { + var I = 0, + g = 0, + B = 0, + Q = 0, + C = 0 + for ( + I = 32, g = 1; + (C = + ((((B = n[((I = (I - 1) | 0) + A) | 0]) - + (Q = n[(I + 3456) | 0])) >> + 8) & + g) | + (255 & C)), + (g &= (65535 + (B ^ Q)) >>> 8), + I; + + ); + return 0 != (0 | C) + })((a = (A + 32) | 0)) && + (wA(A) || + ((function (A) { + var I = 0, + g = 0 + for ( + g = 127 & (-1 ^ n[(A + 31) | 0]), I = 30; + (g = (-1 ^ n[(A + I) | 0]) | g), + (I = (I - 1) | 0); + + ); + return ( + 1 & + (((((255 & g) - 1) & (236 - n[0 | A])) >>> 8) ^ + -1) + ) + })(Q) && + (wA(Q) || + cA((i + 128) | 0, Q) || + (ig((i + 384) | 0, E), + V((i + 384) | 0, A, 32, 0), + V((i + 384) | 0, Q, 32, 0), + V((i + 384) | 0, I, g, B), + UI((i + 384) | 0, (i + 320) | 0), + G((i + 320) | 0), + (function (A, I, g, B) { + var Q + ;(h = Q = (h - 2272) | 0), + tA((Q + 2016) | 0, I), + tA((Q + 1760) | 0, B), + FI((Q + 480) | 0, g), + JI((Q + 320) | 0, g), + DI(Q, (Q + 320) | 0), + VA((Q + 320) | 0, Q, (Q + 480) | 0), + DI((Q + 160) | 0, (Q + 320) | 0), + FI((I = (Q + 640) | 0), (Q + 160) | 0), + VA((Q + 320) | 0, Q, I), + DI((Q + 160) | 0, (Q + 320) | 0), + FI((I = (Q + 800) | 0), (Q + 160) | 0), + VA((Q + 320) | 0, Q, I), + DI((Q + 160) | 0, (Q + 320) | 0), + FI((I = (Q + 960) | 0), (Q + 160) | 0), + VA((Q + 320) | 0, Q, I), + DI((Q + 160) | 0, (Q + 320) | 0), + FI((I = (Q + 1120) | 0), (Q + 160) | 0), + VA((Q + 320) | 0, Q, I), + DI((Q + 160) | 0, (Q + 320) | 0), + FI((I = (Q + 1280) | 0), (Q + 160) | 0), + VA((Q + 320) | 0, Q, I), + DI((Q + 160) | 0, (Q + 320) | 0), + FI((I = (Q + 1440) | 0), (Q + 160) | 0), + VA((Q + 320) | 0, Q, I), + DI((Q + 160) | 0, (Q + 320) | 0), + FI((Q + 1600) | 0, (Q + 160) | 0), + Ug(A), + wg((A + 40) | 0), + wg((A + 80) | 0), + (B = 255) + A: { + for (;;) { + if ( + !( + n[((g = B) + ((Q + 2016) | 0)) | 0] | + n[(((Q + 1760) | 0) + g) | 0] + ) + ) { + if (((B = (g - 1) | 0), g)) continue + break A + } + break + } + if (!((0 | g) < 0)) + for ( + ; + AI((Q + 320) | 0, A), + (0 | + (g = + C[ + ((I = g) + ((Q + 2016) | 0)) | 0 + ])) >= + 1 + ? (DI((Q + 160) | 0, (Q + 320) | 0), + VA( + (Q + 320) | 0, + (Q + 160) | 0, + (((Q + 480) | 0) + + r( + ((254 & g) >>> 1) | 0, + 160 + )) | + 0 + )) + : (0 | g) > -1 || + (DI((Q + 160) | 0, (Q + 320) | 0), + WA( + (Q + 320) | 0, + (Q + 160) | 0, + (((Q + 480) | 0) + + r( + (((0 - g) & 254) >>> 1) | 0, + 160 + )) | + 0 + )), + (0 | + (g = + C[(I + ((Q + 1760) | 0)) | 0])) >= + 1 + ? (DI((Q + 160) | 0, (Q + 320) | 0), + OA( + (Q + 320) | 0, + (Q + 160) | 0, + (r(((254 & g) >>> 1) | 0, 120) + + 2272) | + 0 + )) + : (0 | g) > -1 || + (DI((Q + 160) | 0, (Q + 320) | 0), + ZA( + (Q + 320) | 0, + (Q + 160) | 0, + (r( + (((0 - g) & 254) >>> 1) | 0, + 120 + ) + + 2272) | + 0 + )), + _I(A, (Q + 320) | 0), + (g = (I - 1) | 0), + (0 | I) > 0; + + ); + } + h = (Q + 2272) | 0 + })( + (i + 8) | 0, + (i + 320) | 0, + (i + 128) | 0, + a + ), + nI((i + 288) | 0, (i + 8) | 0), + (e = -1), + (t = Gg((i + 288) | 0, A)), + (o = + (((i + 288) | 0) == (0 | A) ? e : t) | + zA(A, (i + 288) | 0, 32)))))), + (h = (i + 592) | 0), + o + ) + } + function FA(A, I, g, B) { + var Q = 0, + C = 0 + A: if (i[I >> 2]) + (C = i[(A + 24) >> 2]), + (Q = i[(A + 20) >> 2]), + (B = B + ? (i[(I + 12) >> 2] + ((C + (-1 ^ Q)) | 0)) | 0 + : (((C - Q) | 0) - !i[(I + 12) >> 2]) | 0), + (C = 0), + 3 != (0 | (I = n[(I + 8) | 0])) && + (C = r(Q, (I + 1) | 0)) + else { + if (!(Q = n[(I + 8) | 0])) { + ;(B = (i[(I + 12) >> 2] - 1) | 0), (C = 0) + break A + } + if ( + ((Q = r(Q, i[(A + 20) >> 2])), + (I = i[(I + 12) >> 2]), + B) + ) { + ;(B = (((I + Q) | 0) - 1) | 0), (C = 0) + break A + } + ;(B = (Q - !I) | 0), (C = 0) + } + return ( + (I = (C + (Q = (B - 1) | 0)) | 0), + eg(g, 0, g, 0), + eg(B, 0, p, 0), + (function (A, I, g) { + var B = 0, + Q = 0, + C = 0, + E = 0, + i = 0, + n = 0, + a = 0, + e = 0, + t = 0 + A: { + I: { + g: { + B: { + Q: { + C: { + E: { + i: { + n: { + if ((Q = I)) { + if (!(B = g)) break n + break i + } + return ( + (D = + (A - + r( + ((A >>> 0) / (g >>> 0)) | 0, + g + )) | + 0), + (u = 0), + void (p = 0) + ) + } + if (!A) break E + break C + } + if (!((E = (B - 1) | 0) & B)) break Q + i = + (0 - + (E = + (((o(B) + 33) | 0) - o(Q)) | 0)) | + 0 + break g + } + return (D = 0), (u = Q), void (p = 0) + } + if ((B = (32 - o(Q)) | 0) >>> 0 < 31) + break B + break I + } + if (((D = A & E), (u = 0), 1 == (0 | B))) + break A + return ( + (g = + 31 & + (A = B ? (31 - o((B - 1) ^ B)) | 0 : 32)), + void (p = + (63 & A) >>> 0 >= 32 ? 0 : (I >>> g) | 0) + ) + } + ;(E = (B + 1) | 0), (i = (63 - B) | 0) + } + if ( + ((B = I), + (C = 31 & (Q = 63 & E)), + Q >>> 0 >= 32 + ? ((Q = 0), (C = (B >>> C) | 0)) + : ((Q = (B >>> C) | 0), + (C = + ((((1 << C) - 1) & B) << (32 - C)) | + (A >>> C))), + (B = 31 & (i &= 63)), + i >>> 0 >= 32 + ? ((I = A << B), (A = 0)) + : ((I = + (((1 << B) - 1) & (A >>> (32 - B))) | + (I << B)), + (A <<= B)), + E) + ) + for ( + i = -1 != (0 | (B = (g - 1) | 0)) ? 0 : -1; + (C = + ((a = n = (C << 1) | (I >>> 31)) - + (e = + g & + (n = + (i - + (((Q = (Q << 1) | (C >>> 31)) + + (B >>> 0 < n >>> 0)) | + 0)) >> + 31))) | + 0), + (Q = (Q - (a >>> 0 < e >>> 0)) | 0), + (I = (I << 1) | (A >>> 31)), + (A = t | (A << 1)), + (t = 1 & n), + (E = (E - 1) | 0); + + ); + return ( + (D = C), + (u = Q), + void (p = (I << 1) | (A >>> 31)) + ) + } + ;(D = A), (u = I), (I = 0) + } + p = I + })( + (I - (g = p)) | 0, + ((I >>> 0 < Q >>> 0) - (I >>> 0 < g >>> 0)) | 0, + i[(A + 24) >> 2] + ), + (p = u), + D + ) + } + function GA(A, I, g, B, Q, C, E, i, n, a) { + var r + return ( + (h = r = (h - 352) | 0), + _g((r + 32) | 0, 64, n, a), + lg((r + 96) | 0, (r + 32) | 0), + fI((r + 32) | 0, 64), + yg((r + 96) | 0, C, E, i), + yg((r + 96) | 0, 34688, (0 - E) & 15, 0), + yg((r + 96) | 0, I, g, B), + yg((r + 96) | 0, 34688, (0 - g) & 15, 0), + tI((r + 24) | 0, E, i), + yg((r + 96) | 0, (r + 24) | 0, 8, 0), + tI((r + 24) | 0, g, B), + yg((r + 96) | 0, (r + 24) | 0, 8, 0), + Fg((r + 96) | 0, r), + fI((r + 96) | 0, 256), + (Q = kg(r, Q)), + fI(r, 16), + A && + (Q + ? (EA(A, 0, g), (Q = -1)) + : (BI(A, I, g, B, n, 1, a), (Q = 0))), + (h = (r + 352) | 0), + Q + ) + } + function kA(A, I) { + var g, + B = 0, + Q = 0, + E = 0 + if (((h = g = (h - 32) | 0), !(!A | !i[(A + 28) >> 2]))) + for (i[(g + 16) >> 2] = I, B = 1; ; ) { + if (((C[(g + 24) | 0] = Q), (I = 0), (E = 0), B)) + for ( + ; + (i[(g + 28) >> 2] = 0), + (B = i[(g + 28) >> 2]), + (i[(g + 8) >> 2] = i[(g + 24) >> 2]), + (i[(g + 12) >> 2] = B), + (i[(g + 20) >> 2] = I), + (B = i[(g + 20) >> 2]), + (i[g >> 2] = i[(g + 16) >> 2]), + (i[(g + 4) >> 2] = B), + $(A, g), + (I = (I + 1) | 0) >>> 0 < + (E = i[(A + 28) >> 2]) >>> 0; + + ); + if (((B = E), 4 == (0 | (Q = (Q + 1) | 0)))) break + } + h = (g + 32) | 0 + } + function _A(A, I, g, B, Q, C, E, n, a, r, o) { + var e + return ( + (h = e = (h - 336) | 0), + _g((e + 16) | 0, 64, r, o), + lg((e + 80) | 0, (e + 16) | 0), + fI((e + 16) | 0, 64), + yg((e + 80) | 0, E, n, a), + yg((e + 80) | 0, 34688, (0 - n) & 15, 0), + BI(A, B, Q, C, r, 1, o), + yg((e + 80) | 0, A, Q, C), + yg((e + 80) | 0, 34688, (0 - Q) & 15, 0), + tI((e + 8) | 0, n, a), + yg((e + 80) | 0, (e + 8) | 0, 8, 0), + tI((e + 8) | 0, Q, C), + yg((e + 80) | 0, (e + 8) | 0, 8, 0), + Fg((e + 80) | 0, I), + fI((e + 80) | 0, 256), + g && ((i[g >> 2] = 16), (i[(g + 4) >> 2] = 0)), + (h = (e + 336) | 0), + 0 + ) + } + function HA(A, I, g, B, Q, C, E, i, n, a) { + var r + return ( + (h = r = (h - 352) | 0), + og((r + 32) | 0, n, a), + lg((r + 96) | 0, (r + 32) | 0), + fI((r + 32) | 0, 64), + yg((r + 96) | 0, C, E, i), + tI((r + 24) | 0, E, i), + yg((r + 96) | 0, (r + 24) | 0, 8, 0), + yg((r + 96) | 0, I, g, B), + tI((r + 24) | 0, g, B), + yg((r + 96) | 0, (r + 24) | 0, 8, 0), + Fg((r + 96) | 0, r), + fI((r + 96) | 0, 256), + (Q = kg(r, Q)), + fI(r, 16), + A && + (Q + ? (EA(A, 0, g), (Q = -1)) + : (NI(A, I, g, B, n, a), (Q = 0))), + (h = (r + 352) | 0), + Q + ) + } + function YA(A) { + var I = 0, + g = 0, + B = 0 + A: { + I: if (3 & (I = A)) { + if (!n[0 | A]) return 0 + for (;;) { + if (!(3 & (I = (I + 1) | 0))) break I + if (!n[0 | I]) break + } + break A + } + for ( + ; + (g = I), + (I = (I + 4) | 0), + !( + (-1 ^ (B = i[g >> 2])) & + (B - 16843009) & + -2139062144 + ); + + ); + if (!(255 & B)) return (g - A) | 0 + for ( + ; + (B = n[(g + 1) | 0]), (g = I = (g + 1) | 0), B; + + ); + } + return (I - A) | 0 + } + function bA(A, I) { + var g, + B = 0, + Q = 0, + C = 0, + E = 0, + a = 0 + A: if (!((((g = n[0 | A]) - 48) & 255) >>> 0 > 9)) { + for (Q = g, B = A; ; ) { + if (((E = B), C >>> 0 > 429496729)) break A + if ( + (Q = ((255 & Q) - 48) | 0) >>> 0 > + (-1 ^ (B = r(C, 10))) >>> 0 + ) + break A + if ( + ((C = (B + Q) | 0), + !( + (((Q = n[0 | (B = (E + 1) | 0)]) - 48) & 255) >>> + 0 < + 10 + )) + ) + break + } + ;((0 | A) == (0 | B)) | + (48 == (0 | g) ? (0 | A) != (0 | E) : 0) || + ((i[I >> 2] = C), (a = B)) + } + return a + } + function mA(A, I) { + var g, B, Q, C, E, n, a, r, o + ;(g = i[(I + 4) >> 2]), + (B = i[(I + 8) >> 2]), + (Q = i[(I + 12) >> 2]), + (C = i[(I + 16) >> 2]), + (E = i[(I + 20) >> 2]), + (n = i[(I + 24) >> 2]), + (a = i[(I + 28) >> 2]), + (r = i[(I + 32) >> 2]), + (o = i[(I + 36) >> 2]), + (i[A >> 2] = 0 - i[I >> 2]), + (i[(A + 36) >> 2] = 0 - o), + (i[(A + 32) >> 2] = 0 - r), + (i[(A + 28) >> 2] = 0 - a), + (i[(A + 24) >> 2] = 0 - n), + (i[(A + 20) >> 2] = 0 - E), + (i[(A + 16) >> 2] = 0 - C), + (i[(A + 12) >> 2] = 0 - Q), + (i[(A + 8) >> 2] = 0 - B), + (i[(A + 4) >> 2] = 0 - g) + } + function vA(A, I, g) { + var B = 0 + ;(B = ((I << 8) & 16711680) | (I << 24)), + (B |= + (255 & ((g << 8) | (I >>> 24))) | + (65280 & ((g << 24) | (I >>> 8)))), + (I = + (-16777216 & (((255 & g) << 24) | (I >>> 8))) | + (16711680 & (((16777215 & g) << 8) | (I >>> 24))) | + ((g >>> 8) & 65280) | + (g >>> 24) | + 0), + (C[0 | A] = I), + (C[(A + 1) | 0] = I >>> 8), + (C[(A + 2) | 0] = I >>> 16), + (C[(A + 3) | 0] = I >>> 24), + (I = B), + (C[(A + 4) | 0] = I), + (C[(A + 5) | 0] = I >>> 8), + (C[(A + 6) | 0] = I >>> 16), + (C[(A + 7) | 0] = I >>> 24) + } + function UA(A, I, g) { + var B + ;(B = A), + g + ? ((i[(A + 48) >> 2] = + n[0 | g] | + (n[(g + 1) | 0] << 8) | + (n[(g + 2) | 0] << 16) | + (n[(g + 3) | 0] << 24)), + (g = + n[(g + 4) | 0] | + (n[(g + 5) | 0] << 8) | + (n[(g + 6) | 0] << 16) | + (n[(g + 7) | 0] << 24))) + : ((i[(A + 48) >> 2] = 0), (g = 0)), + (i[(B + 52) >> 2] = g), + (i[(A + 56) >> 2] = + n[0 | I] | + (n[(I + 1) | 0] << 8) | + (n[(I + 2) | 0] << 16) | + (n[(I + 3) | 0] << 24)), + (i[(A + 60) >> 2] = + n[(I + 4) | 0] | + (n[(I + 5) | 0] << 8) | + (n[(I + 6) | 0] << 16) | + (n[(I + 7) | 0] << 24)) + } + function SA(A, I) { + var g, B, Q, C, E, n, a, r, o + ;(g = i[(I + 8) >> 2]), + (B = i[(I + 12) >> 2]), + (Q = i[(I + 16) >> 2]), + (C = i[(I + 20) >> 2]), + (E = i[(I + 24) >> 2]), + (n = i[(I + 28) >> 2]), + (a = i[I >> 2]), + (r = i[(I + 4) >> 2]), + (o = i[(I + 36) >> 2]), + (i[(A + 32) >> 2] = i[(I + 32) >> 2]), + (i[(A + 36) >> 2] = o), + (i[(A + 24) >> 2] = E), + (i[(A + 28) >> 2] = n), + (i[(A + 16) >> 2] = Q), + (i[(A + 20) >> 2] = C), + (i[(A + 8) >> 2] = g), + (i[(A + 12) >> 2] = B), + (i[A >> 2] = a), + (i[(A + 4) >> 2] = r) + } + function NA(A, I, g, B, Q, C, E, a, r, o, e) { + var t + return ( + (h = t = (h - 48) | 0), + (i[(t + 8) >> 2] = 0), + (i[t >> 2] = 0), + (i[(t + 4) >> 2] = 0), + x((t + 16) | 0, o, e), + (e = + n[(o + 16) | 0] | + (n[(o + 17) | 0] << 8) | + (n[(o + 18) | 0] << 16) | + (n[(o + 19) | 0] << 24)), + (o = + n[(o + 20) | 0] | + (n[(o + 21) | 0] << 8) | + (n[(o + 22) | 0] << 16) | + (n[(o + 23) | 0] << 24)), + (i[(t + 4) >> 2] = e), + (i[(t + 8) >> 2] = o), + (function (A, I, g, B, Q, C, E, n, a, r, o) { + var e + ;(h = e = (h - 336) | 0), + rg((e + 16) | 0, 64, r, o), + lg((e + 80) | 0, (e + 16) | 0), + fI((e + 16) | 0, 64), + yg((e + 80) | 0, E, n, a), + yg((e + 80) | 0, 34704, (0 - n) & 15, 0), + SI(A, B, Q, C, r, 1, o), + yg((e + 80) | 0, A, Q, C), + yg((e + 80) | 0, 34704, (0 - Q) & 15, 0), + tI((e + 8) | 0, n, a), + yg((e + 80) | 0, (e + 8) | 0, 8, 0), + tI((e + 8) | 0, Q, C), + yg((e + 80) | 0, (e + 8) | 0, 8, 0), + Fg((e + 80) | 0, I), + fI((e + 80) | 0, 256), + g && ((i[g >> 2] = 16), (i[(g + 4) >> 2] = 0)), + (h = (e + 336) | 0) + })(A, I, g, B, Q, C, E, a, r, t, (t + 16) | 0), + fI((t + 16) | 0, 32), + (h = (t + 48) | 0), + 0 + ) + } + function MA(A, I, g, B, Q, C, E, a, r, o) { + var e + return ( + (h = e = (h - 48) | 0), + (i[(e + 8) >> 2] = 0), + (i[e >> 2] = 0), + (i[(e + 4) >> 2] = 0), + x((e + 16) | 0, r, o), + (o = + n[(r + 16) | 0] | + (n[(r + 17) | 0] << 8) | + (n[(r + 18) | 0] << 16) | + (n[(r + 19) | 0] << 24)), + (r = + n[(r + 20) | 0] | + (n[(r + 21) | 0] << 8) | + (n[(r + 22) | 0] << 16) | + (n[(r + 23) | 0] << 24)), + (i[(e + 4) >> 2] = o), + (i[(e + 8) >> 2] = r), + (A = (function (A, I, g, B, Q, C, E, i, n, a) { + var r + return ( + (h = r = (h - 352) | 0), + rg((r + 32) | 0, 64, n, a), + lg((r + 96) | 0, (r + 32) | 0), + fI((r + 32) | 0, 64), + yg((r + 96) | 0, C, E, i), + yg((r + 96) | 0, 34704, (0 - E) & 15, 0), + yg((r + 96) | 0, I, g, B), + yg((r + 96) | 0, 34704, (0 - g) & 15, 0), + tI((r + 24) | 0, E, i), + yg((r + 96) | 0, (r + 24) | 0, 8, 0), + tI((r + 24) | 0, g, B), + yg((r + 96) | 0, (r + 24) | 0, 8, 0), + Fg((r + 96) | 0, r), + fI((r + 96) | 0, 256), + (Q = kg(r, Q)), + fI(r, 16), + A && + (Q + ? (EA(A, 0, g), (Q = -1)) + : (SI(A, I, g, B, n, 1, a), (Q = 0))), + (h = (r + 352) | 0), + Q + ) + })(A, I, g, B, Q, C, E, a, e, (e + 16) | 0)), + fI((e + 16) | 0, 32), + (h = (e + 48) | 0), + A + ) + } + function dA(A) { + var I + return ( + (I = + n[0 | A] | + (n[(A + 1) | 0] << 8) | + (n[(A + 2) | 0] << 16) | + (n[(A + 3) | 0] << 24)), + (A = + n[(A + 4) | 0] | + (n[(A + 5) | 0] << 8) | + (n[(A + 6) | 0] << 16) | + (n[(A + 7) | 0] << 24)), + (p = + (65280 & ((A << 24) | (I >>> 8))) | + (255 & ((A << 8) | (I >>> 24))) | + ((I << 8) & 16711680) | + (I << 24)), + (-16777216 & (((255 & A) << 24) | (I >>> 8))) | + (16711680 & (((16777215 & A) << 8) | (I >>> 24))) | + ((A >>> 8) & 65280) | + (A >>> 24) | + 0 + ) + } + function PA(A, I, g, B, Q, C, E, n, a, r, o) { + var e + return ( + (h = e = (h - 336) | 0), + og((e + 16) | 0, r, o), + lg((e + 80) | 0, (e + 16) | 0), + fI((e + 16) | 0, 64), + yg((e + 80) | 0, E, n, a), + tI((e + 8) | 0, n, a), + yg((e + 80) | 0, (e + 8) | 0, 8, 0), + NI(A, B, Q, C, r, o), + yg((e + 80) | 0, A, Q, C), + tI((e + 8) | 0, Q, C), + yg((e + 80) | 0, (e + 8) | 0, 8, 0), + Fg((e + 80) | 0, I), + fI((e + 80) | 0, 256), + g && ((i[g >> 2] = 16), (i[(g + 4) >> 2] = 0)), + (h = (e + 336) | 0), + 0 + ) + } + function RA(A, I, g, B) { + var Q + if ( + ((h = Q = (h - 192) | 0), + !( + !g | + (((I - 1) & 255) >>> 0 >= 64) | + (((B - 1) & 255) >>> 0 >= 64) + )) + ) + return ( + (E[(Q + 130) >> 1] = 257), + (C[(Q + 129) | 0] = B), + (C[(Q + 128) | 0] = I), + WI((Q + 128) | 4), + tI((Q + 128) | 8, 0, 0), + EA((Q + 144) | 0, 0, 48), + hA(A, (Q + 128) | 0), + EA((B + Q) | 0, 0, (128 - B) | 0), + QA((I = A), (A = X(Q, g, B)), 128, 0), + fI(A, 128), + (h = (A + 192) | 0), + 0 + ) + OI(), e() + } + function JA(A, I, g) { + ;(i[(A + 48) >> 2] = g + ? n[0 | g] | + (n[(g + 1) | 0] << 8) | + (n[(g + 2) | 0] << 16) | + (n[(g + 3) | 0] << 24) + : 0), + (i[(A + 52) >> 2] = + n[0 | I] | + (n[(I + 1) | 0] << 8) | + (n[(I + 2) | 0] << 16) | + (n[(I + 3) | 0] << 24)), + (i[(A + 56) >> 2] = + n[(I + 4) | 0] | + (n[(I + 5) | 0] << 8) | + (n[(I + 6) | 0] << 16) | + (n[(I + 7) | 0] << 24)), + (i[(A + 60) >> 2] = + n[(I + 8) | 0] | + (n[(I + 9) | 0] << 8) | + (n[(I + 10) | 0] << 16) | + (n[(I + 11) | 0] << 24)) + } + function xA(A, I, g, B, Q, C, E) { + var n + return ( + (h = n = (h - 16) | 0), + (A = EA(A, 0, 128)), + E >>> 0 < 2147483649 && !(B | C) + ? E >>> 0 > 8191 && Q | C + ? (cI(n, 16), + (A = pA( + Q, + (E >>> 10) | 0, + 1, + I, + g, + n, + 16, + 0, + 32, + A, + 128, + 2 + ) + ? -1 + : 0)) + : ((i[8960] = 28), (A = -1)) + : ((i[8960] = 22), (A = -1)), + (h = (n + 16) | 0), + A + ) + } + function LA(A) { + var I = 0 + return ( + ((((0 - + (I = + ((A + 4) & + (((A + 65488) >>> 8) ^ -1) & + (((57 - A) >>> 8) ^ -1) & + 255) | + ((((I = (A - 65) | 0) >>> 8) ^ -1) & + I & + (((90 - A) >>> 8) ^ -1) & + 255) | + ((A + 185) & + (((A + 65439) >>> 8) ^ -1) & + (((122 - A) >>> 8) ^ -1) & + 255) | + (63 & (((1 + (16288 ^ A)) >>> 8) ^ -1)) | + (62 & (((1 + (16338 ^ A)) >>> 8) ^ -1)))) >>> + 8) ^ + -1) & + ((1 + (65470 ^ A)) >>> 8) & + 255) | + I + ) + } + function KA(A) { + var I = 0 + return ( + ((((0 - + (I = + ((A + 4) & + (((A + 65488) >>> 8) ^ -1) & + (((57 - A) >>> 8) ^ -1) & + 255) | + ((((I = (A - 65) | 0) >>> 8) ^ -1) & + I & + (((90 - A) >>> 8) ^ -1) & + 255) | + ((A + 185) & + (((A + 65439) >>> 8) ^ -1) & + (((122 - A) >>> 8) ^ -1) & + 255) | + (63 & (((1 + (16336 ^ A)) >>> 8) ^ -1)) | + (62 & (((1 + (16340 ^ A)) >>> 8) ^ -1)))) >>> + 8) ^ + -1) & + ((1 + (65470 ^ A)) >>> 8) & + 255) | + I + ) + } + function qA(A, I) { + var g, + B, + Q = 0, + E = 0, + i = 0, + n = 0 + for ( + h = g = (h - 16) | 0, Q = 10; + (n = Q), + (i = ((I >>> 0) / 10) | 0), + (C[ + 0 | (E = ((Q = (Q - 1) | 0) + ((g + 6) | 0)) | 0) + ] = (I - r(i, 10)) | 48), + !(I >>> 0 < 10) && ((I = i), Q); + + ); + ;(B = (X((I = A), E, (A = (11 - n) | 0)) + A) | 0), + (C[0 | B] = 0), + (h = (g + 16) | 0) + } + function XA(A, I, g) { + var B = 0, + Q = 0, + C = 0 + if (!g) return 0 + A: if ((B = n[0 | A])) { + for (;;) { + if ( + (0 | (Q = n[0 | I])) == (0 | B) && + !(!(g = (g - 1) | 0) | !Q) + ) { + if ( + ((I = (I + 1) | 0), + (B = n[(A + 1) | 0]), + (A = (A + 1) | 0), + B) + ) + continue + break A + } + break + } + C = B + } + return ((255 & C) - n[0 | I]) | 0 + } + function VA(A, I, g) { + var B, + Q, + C, + E = 0 + ;(h = Q = (h - 48) | 0), + sA(A, (E = (I + 40) | 0), I), + yA((B = (A + 40) | 0), E, I), + _((E = (A + 80) | 0), A, g), + _(B, B, (g + 40) | 0), + _((C = (A + 120) | 0), (g + 120) | 0, (I + 120) | 0), + _(A, (I + 80) | 0, (g + 80) | 0), + sA(Q, A, A), + yA(A, E, B), + sA(B, E, B), + sA(E, Q, C), + yA(C, Q, C), + (h = (Q + 48) | 0) + } + function WA(A, I, g) { + var B, + Q, + C, + E = 0 + ;(h = Q = (h - 48) | 0), + sA(A, (E = (I + 40) | 0), I), + yA((B = (A + 40) | 0), E, I), + _((E = (A + 80) | 0), A, (g + 40) | 0), + _(B, B, g), + _((C = (A + 120) | 0), (g + 120) | 0, (I + 120) | 0), + _(A, (I + 80) | 0, (g + 80) | 0), + sA(Q, A, A), + yA(A, E, B), + sA(B, E, B), + yA(E, Q, C), + sA(C, Q, C), + (h = (Q + 48) | 0) + } + function TA(A, I) { + for ( + var g = 0, B = 0, Q = 0, C = 0; + (Q = ((g = B << 3) + A) | 0), + (C = + n[0 | (g = (I + g) | 0)] | + (n[(g + 1) | 0] << 8) | + (n[(g + 2) | 0] << 16) | + (n[(g + 3) | 0] << 24)), + (g = + n[(g + 4) | 0] | + (n[(g + 5) | 0] << 8) | + (n[(g + 6) | 0] << 16) | + (n[(g + 7) | 0] << 24)), + (i[Q >> 2] = C), + (i[(Q + 4) >> 2] = g), + 128 != (0 | (B = (B + 1) | 0)); + + ); + } + function jA(A, I, g) { + var B + if ( + ((i[(12 + (B = (h - 16) | 0)) >> 2] = A), + (i[(B + 8) >> 2] = I), + (I = 0), + (i[(B + 4) >> 2] = 0), + (0 | g) >= 1) + ) + for ( + ; + (i[(B + 4) >> 2] = + i[(B + 4) >> 2] | + (n[(i[(B + 8) >> 2] + I) | 0] ^ + n[(i[(B + 12) >> 2] + I) | 0])), + (0 | g) != (0 | (I = (I + 1) | 0)); + + ); + return ((((i[(B + 4) >> 2] - 1) >>> 8) & 1) - 1) | 0 + } + function ZA(A, I, g) { + var B, + Q, + C, + E = 0 + ;(h = Q = (h - 48) | 0), + sA(A, (E = (I + 40) | 0), I), + yA((B = (A + 40) | 0), E, I), + _((E = (A + 80) | 0), A, (g + 40) | 0), + _(B, B, g), + _((C = (A + 120) | 0), (g + 80) | 0, (I + 120) | 0), + sA(Q, (I = (I + 80) | 0), I), + yA(A, E, B), + sA(B, E, B), + yA(E, Q, C), + sA(C, Q, C), + (h = (Q + 48) | 0) + } + function OA(A, I, g) { + var B, + Q, + C, + E = 0 + ;(h = Q = (h - 48) | 0), + sA(A, (E = (I + 40) | 0), I), + yA((B = (A + 40) | 0), E, I), + _((E = (A + 80) | 0), A, g), + _(B, B, (g + 40) | 0), + _((C = (A + 120) | 0), (g + 80) | 0, (I + 120) | 0), + sA(Q, (I = (I + 80) | 0), I), + yA(A, E, B), + sA(B, E, B), + sA(E, Q, C), + yA(C, Q, C), + (h = (Q + 48) | 0) + } + function zA(A, I, g) { + var B + if ( + ((i[(12 + (B = (h - 16) | 0)) >> 2] = A), + (i[(B + 8) >> 2] = I), + (I = 0), + (C[(B + 7) | 0] = 0), + g) + ) + for ( + ; + (C[(B + 7) | 0] = + n[(B + 7) | 0] | + (n[(i[(B + 8) >> 2] + I) | 0] ^ + n[(i[(B + 12) >> 2] + I) | 0])), + (0 | g) != (0 | (I = (I + 1) | 0)); + + ); + return ((((n[(B + 7) | 0] - 1) >>> 8) & 1) - 1) | 0 + } + function $A(A, I, g) { + var B, + Q = 0, + E = 0 + if ( + ((h = B = (h - 16) | 0), + (C[(B + 15) | 0] = 0), + (E = -1), + !(0 | Vg[i[8950]](A, I, g))) + ) { + for ( + ; + (C[(B + 15) | 0] = n[(A + Q) | 0] | n[(B + 15) | 0]), + 32 != (0 | (Q = (Q + 1) | 0)); + + ); + E = (0 - (((n[(B + 15) | 0] - 1) >>> 8) & 1)) | 0 + } + return (h = (B + 16) | 0), E + } + function AI(A, I) { + var g, B, Q, C, E + ;(h = B = (h - 48) | 0), + H(A, I), + H((g = (A + 80) | 0), (E = (I + 40) | 0)), + (function (A, I) { + var g, + B, + Q, + C, + E, + n, + a, + o, + e, + t, + f, + c, + y, + s, + w, + h, + D, + u, + l, + F, + G, + k, + _, + H, + Y, + b, + m, + v, + U, + S, + N, + M, + d, + P, + R, + J, + x, + L, + K = 0, + q = 0, + X = 0, + V = 0, + W = 0, + T = 0, + j = 0, + Z = 0, + O = 0, + z = 0, + $ = 0, + AA = 0, + IA = 0, + gA = 0, + BA = 0, + QA = 0, + CA = 0, + EA = 0, + iA = 0, + nA = 0 + ;(E = K = (W = i[(I + 12) >> 2]) << 1), + (n = K >> 31), + (a = K = (O = i[(I + 4) >> 2]) << 1), + (K = eg(E, n, K, (g = K >> 31))), + (X = p), + (q = K), + (k = K = gA = i[(I + 8) >> 2]), + (V = eg(K, (z = K >> 31), K, z)), + (K = (p + X) | 0), + (K = + (q = (q + V) | 0) >>> 0 < V >>> 0 + ? (K + 1) | 0 + : K), + (V = q), + (B = q = BA = i[(I + 16) >> 2]), + (o = q >> 31), + (e = q = (QA = i[I >> 2]) << 1), + (X = eg(B, o, q, (Q = q >> 31))), + (K = (p + K) | 0), + (K = + (q = (V + X) | 0) >>> 0 < X >>> 0 + ? (K + 1) | 0 + : K), + (j = q), + (X = i[(I + 28) >> 2]), + (l = q = r(X, 38)), + (U = X), + (V = eg(q, (h = q >> 31), X, (_ = X >> 31))), + (K = (p + K) | 0), + (K = + (q = (j + V) | 0) >>> 0 < V >>> 0 + ? (K + 1) | 0 + : K), + (T = q), + (j = i[(I + 32) >> 2]), + (Z = eg( + (f = q = r(j, 19)), + (c = q >> 31), + (q = (V = i[(I + 24) >> 2]) << 1), + q >> 31 + )), + (q = (p + K) | 0), + (q = + Z >>> 0 > ($ = (T + Z) | 0) >>> 0 + ? (q + 1) | 0 + : q), + (T = $), + (IA = i[(I + 36) >> 2]), + (t = K = r(IA, 38)), + (C = K >> 31), + (D = I = ($ = i[(I + 20) >> 2]) << 1), + (Z = eg(K, C, I, (s = I >> 31))), + (I = (p + q) | 0), + (H = (K = (T + Z) | 0) << 1), + (P = K = + ((K >>> 0 < Z >>> 0 ? (I + 1) | 0 : I) << 1) | + (K >>> 31)), + (S = I = (H + 33554432) | 0), + (R = K = I >>> 0 < 33554432 ? (K + 1) | 0 : K), + (I = K >> 26), + (K = ((67108863 & K) << 6) | (S >>> 26)), + (q = eg(a, g, B, o)), + (Z = p), + (T = K), + (u = K = gA << 1), + (CA = W), + (W = eg(K, (w = K >> 31), W, (Y = W >> 31))), + (K = (p + Z) | 0), + (K = + (q = (W + q) | 0) >>> 0 < W >>> 0 + ? (K + 1) | 0 + : K), + (gA = $), + (W = ((Z = eg($, (F = $ >> 31), e, Q)) + q) | 0), + (q = (p + K) | 0), + (q = W >>> 0 < Z >>> 0 ? (q + 1) | 0 : q), + (BA = W), + (N = K = X << 1), + (W = eg(f, c, K, (b = K >> 31))), + (K = (p + q) | 0), + (K = + (X = (BA + W) | 0) >>> 0 < W >>> 0 + ? (K + 1) | 0 + : K), + (q = X), + (W = V), + (X = eg(t, C, V, (y = V >> 31))), + (K = (p + K) | 0), + (K = + (q = (q + X) | 0) >>> 0 < X >>> 0 + ? (K + 1) | 0 + : K), + (X = q), + (I = (I + (q = (K << 1) | (q >>> 31))) | 0), + (EA = K = (T + (X <<= 1)) | 0), + (K = K >>> 0 < X >>> 0 ? (I + 1) | 0 : I), + (J = I = (EA + 16777216) | 0), + (I = + ((33554431 & + (K = I >>> 0 < 16777216 ? (K + 1) | 0 : K)) << + 7) | + (I >>> 25)), + (X = K >> 25), + (K = eg(E, n, CA, Y)), + (q = p), + (T = I), + (I = ((Z = eg(B, o, u, w)) + K) | 0), + (K = (p + q) | 0), + (K = I >>> 0 < Z >>> 0 ? (K + 1) | 0 : K), + (q = eg(a, g, D, s)), + (K = (p + K) | 0), + (K = + (I = (q + I) | 0) >>> 0 < q >>> 0 + ? (K + 1) | 0 + : K), + (q = ((Z = eg(e, Q, V, y)) + I) | 0), + (I = (p + K) | 0), + (I = q >>> 0 < Z >>> 0 ? (I + 1) | 0 : I), + (Z = j), + (j = eg(f, c, j, (G = j >> 31))), + (K = (p + I) | 0), + (K = + (q = (j + q) | 0) >>> 0 < j >>> 0 + ? (K + 1) | 0 + : K), + (I = ((j = eg(t, C, N, b)) + q) | 0), + (q = (p + K) | 0), + (I = + (((K = I) >>> 0 < j >>> 0 ? (q + 1) | 0 : q) << + 1) | + (K >>> 31)), + (j = K << 1), + (K = (I + X) | 0), + (K = + (q = (T + j) | 0) >>> 0 < j >>> 0 + ? (K + 1) | 0 + : K), + (iA = q = ((I = q) + 33554432) | 0), + (X = K = q >>> 0 < 33554432 ? (K + 1) | 0 : K), + (K = -67108864 & q), + (i[(A + 24) >> 2] = I - K), + (j = A), + (I = eg((I = r($, 38)), I >> 31, $, F)), + (K = p), + (T = I), + ($ = eg((I = QA), (q = I >> 31), I, q)), + (q = (p + K) | 0), + (q = + (I = (T + $) | 0) >>> 0 < $ >>> 0 + ? (q + 1) | 0 + : q), + (K = I), + (AA = I = r(V, 19)), + (m = I >> 31), + (M = I = B << 1), + (I = (K + (V = eg(AA, m, I, (v = I >> 31)))) | 0), + (K = (p + q) | 0), + (K = I >>> 0 < V >>> 0 ? (K + 1) | 0 : K), + (q = eg(E, n, l, h)), + (K = (p + K) | 0), + (K = + (I = (q + I) | 0) >>> 0 < q >>> 0 + ? (K + 1) | 0 + : K), + (q = ((V = eg(f, c, u, w)) + I) | 0), + (I = (p + K) | 0), + (I = q >>> 0 < V >>> 0 ? (I + 1) | 0 : I), + (V = eg(a, g, t, C)), + (K = (p + I) | 0), + (x = K = + (((I = q = (V + q) | 0) >>> 0 < V >>> 0 + ? (K + 1) | 0 + : K) << + 1) | + (I >>> 31)), + (QA = I = (33554432 + ($ = I << 1)) | 0), + (BA = q = I >>> 0 < 33554432 ? (K + 1) | 0 : K), + (I = ((67108863 & q) << 6) | (I >>> 26)), + (V = q >> 26), + (K = eg(AA, m, D, s)), + (q = p), + (nA = I), + (I = + ((O = eg(e, Q, (T = O), (d = T >> 31))) + K) | 0), + (K = (p + q) | 0), + (K = I >>> 0 < O >>> 0 ? (K + 1) | 0 : K), + (q = ((O = eg(B, o, l, h)) + I) | 0), + (I = (p + K) | 0), + (I = q >>> 0 < O >>> 0 ? (I + 1) | 0 : I), + (O = eg(f, c, E, n)), + (K = (p + I) | 0), + (K = + (q = (O + q) | 0) >>> 0 < O >>> 0 + ? (K + 1) | 0 + : K), + (I = ((O = eg(t, C, k, z)) + q) | 0), + (q = (p + K) | 0), + (I = + (((K = I) >>> 0 < O >>> 0 ? (q + 1) | 0 : q) << + 1) | + (K >>> 31)), + (O = K << 1), + (K = (I + V) | 0), + (K = + (q = (nA + O) | 0) >>> 0 < O >>> 0 + ? (K + 1) | 0 + : K), + (O = q), + (I = (q + 16777216) | 0) >>> 0 < 16777216 && + (K = (K + 1) | 0), + (nA = I), + (q = I), + (I = K >> 25), + (K = ((33554431 & K) << 7) | (q >>> 25)), + (V = I), + (I = eg(e, Q, k, z)), + (q = p), + (L = K), + (T = eg(a, g, T, d)), + (K = (p + q) | 0), + (K = + (I = (T + I) | 0) >>> 0 < T >>> 0 + ? (K + 1) | 0 + : K), + (T = eg(AA, m, W, y)), + (q = (p + K) | 0), + (q = + (I = (T + I) | 0) >>> 0 < T >>> 0 + ? (q + 1) | 0 + : q), + (T = eg(D, s, l, h)), + (K = (p + q) | 0), + (K = + (I = (T + I) | 0) >>> 0 < T >>> 0 + ? (K + 1) | 0 + : K), + (q = eg(f, c, M, v)), + (K = (p + K) | 0), + (K = + (I = (q + I) | 0) >>> 0 < q >>> 0 + ? (K + 1) | 0 + : K), + (q = ((T = eg(t, C, E, n)) + I) | 0), + (I = (p + K) | 0), + (K = + ((K = + ((I = q >>> 0 < T >>> 0 ? (I + 1) | 0 : I) << + 1) | + (q >>> 31)) + + V) | + 0), + (q = K = + (I = (L + (q <<= 1)) | 0) >>> 0 < q >>> 0 + ? (K + 1) | 0 + : K), + (T = K = (I + 33554432) | 0), + (V = q = K >>> 0 < 33554432 ? (q + 1) | 0 : q), + (K &= -67108864), + (i[(j + 8) >> 2] = I - K), + (I = eg(u, w, gA, F)), + (q = p), + (K = ((AA = eg(B, o, E, n)) + I) | 0), + (I = (p + q) | 0), + (I = K >>> 0 < AA >>> 0 ? (I + 1) | 0 : I), + (q = ((AA = eg(a, g, W, y)) + K) | 0), + (K = (p + I) | 0), + (K = q >>> 0 < AA >>> 0 ? (K + 1) | 0 : K), + (I = ((AA = eg(e, Q, U, _)) + q) | 0), + (q = (p + K) | 0), + (q = I >>> 0 < AA >>> 0 ? (q + 1) | 0 : q), + (AA = eg(t, C, Z, G)), + (K = (p + q) | 0), + (K = + ((K = + ((K = + (I = (AA + I) | 0) >>> 0 < AA >>> 0 + ? (K + 1) | 0 + : K) << + 1) | + (I >>> 31)) + + (q = X >> 26)) | + 0), + (q = I = + ((X = ((67108863 & X) << 6) | (iA >>> 26)) + + (I << 1)) | + 0), + (I = K = I >>> 0 < X >>> 0 ? (K + 1) | 0 : K), + (iA = K = (q + 16777216) | 0), + (X = I = K >>> 0 < 16777216 ? (I + 1) | 0 : I), + (I = -33554432 & K), + (i[(j + 28) >> 2] = q - I), + (I = eg(e, Q, CA, Y)), + (K = p), + (q = eg(a, g, k, z)), + (K = (p + K) | 0), + (K = + (I = (q + I) | 0) >>> 0 < q >>> 0 + ? (K + 1) | 0 + : K), + (q = eg(W, y, l, h)), + (K = (p + K) | 0), + (K = + (I = (q + I) | 0) >>> 0 < q >>> 0 + ? (K + 1) | 0 + : K), + (q = ((z = eg(f, c, D, s)) + I) | 0), + (I = (p + K) | 0), + (I = q >>> 0 < z >>> 0 ? (I + 1) | 0 : I), + (K = ((z = eg(t, C, B, o)) + q) | 0), + (q = (p + I) | 0), + (I = K), + (K = + ((K >>> 0 < z >>> 0 ? (q + 1) | 0 : q) << 1) | + (K >>> 31)), + (q = I << 1), + (K = ((I = V >> 26) + K) | 0), + (K = + (q = + (q + (V = ((67108863 & V) << 6) | (T >>> 26))) | + 0) >>> + 0 < + V >>> 0 + ? (K + 1) | 0 + : K), + (CA = q = ((I = q) + 16777216) | 0), + (V = K = q >>> 0 < 16777216 ? (K + 1) | 0 : K), + (K = -33554432 & q), + (i[(j + 12) >> 2] = I - K), + (z = A), + (I = eg(W, y, u, w)), + (K = p), + (q = eg(B, o, B, o)), + (K = (p + K) | 0), + (K = + (I = (q + I) | 0) >>> 0 < q >>> 0 + ? (K + 1) | 0 + : K), + (q = eg(E, n, D, s)), + (K = (p + K) | 0), + (K = + (I = (q + I) | 0) >>> 0 < q >>> 0 + ? (K + 1) | 0 + : K), + (q = eg(a, g, N, b)), + (K = (p + K) | 0), + (K = + (I = (q + I) | 0) >>> 0 < q >>> 0 + ? (K + 1) | 0 + : K), + (q = ((j = eg(e, Q, Z, G)) + I) | 0), + (I = (p + K) | 0), + (I = q >>> 0 < j >>> 0 ? (I + 1) | 0 : I), + (K = + ((IA = eg(t, C, (j = IA), (T = j >> 31))) + q) | + 0), + (q = (p + I) | 0), + (A = (I = K) << 1), + (K = + ((I = X >> 25) + + (K = + ((K >>> 0 < IA >>> 0 ? (q + 1) | 0 : q) << + 1) | + (K >>> 31))) | + 0), + (K = + (q = + (A + + (X = ((33554431 & X) << 7) | (iA >>> 25))) | + 0) >>> + 0 < + X >>> 0 + ? (K + 1) | 0 + : K), + (IA = q = ((I = q) + 33554432) | 0), + (X = K = q >>> 0 < 33554432 ? (K + 1) | 0 : K), + (K = -67108864 & q), + (i[(z + 32) >> 2] = I - K), + (K = V >> 25), + (q = + ((V = ((33554431 & V) << 7) | (CA >>> 25)) + + ((H - (I = -67108864 & S)) | 0)) | + 0), + (I = + (K + + ((P - (((I >>> 0 > H >>> 0) + R) | 0)) | 0)) | + 0), + (K = I = q >>> 0 < V >>> 0 ? (I + 1) | 0 : I), + (V = I = (q + 33554432) | 0), + (I = + ((((67108863 & + (K = I >>> 0 < 33554432 ? (K + 1) | 0 : K)) << + 6) | + (I >>> 26)) + + (EA = (EA - (-33554432 & J)) | 0)) | + 0), + (i[(z + 20) >> 2] = I), + (I = -67108864 & V), + (i[(z + 16) >> 2] = q - I), + (I = eg(E, n, W, y)), + (q = p), + (K = ((W = eg(gA, F, M, v)) + I) | 0), + (I = (p + q) | 0), + (I = K >>> 0 < W >>> 0 ? (I + 1) | 0 : I), + (q = ((W = eg(u, w, U, _)) + K) | 0), + (K = (p + I) | 0), + (K = q >>> 0 < W >>> 0 ? (K + 1) | 0 : K), + (I = ((W = eg(a, g, Z, G)) + q) | 0), + (q = (p + K) | 0), + (q = I >>> 0 < W >>> 0 ? (q + 1) | 0 : q), + (W = eg(e, Q, j, T)), + (K = (p + q) | 0), + (K = + ((K = + ((K = + (I = (W + I) | 0) >>> 0 < W >>> 0 + ? (K + 1) | 0 + : K) << + 1) | + (I >>> 31)) + + (q = X >> 26)) | + 0), + (K = + (I = + ((X = ((67108863 & X) << 6) | (IA >>> 26)) + + (I << 1)) | + 0) >>> + 0 < + X >>> 0 + ? (K + 1) | 0 + : K), + (q = I), + (X = I), + (I = K), + (I = + (K = (q + 16777216) | 0) >>> 0 < 16777216 + ? (I + 1) | 0 + : I), + (q = -33554432 & K), + (i[(z + 36) >> 2] = X - q), + (V = (O - (-33554432 & nA)) | 0), + (I = + ((K = eg( + ((33554431 & I) << 7) | (K >>> 25), + I >> 25, + 19, + 0 + )) + + (($ - (q = -67108864 & QA)) | 0)) | + 0), + (q = + (p + + ((x - (((q >>> 0 > $ >>> 0) + BA) | 0)) | 0)) | + 0), + (q = I >>> 0 < K >>> 0 ? (q + 1) | 0 : q), + (K = I), + (I = q), + (I = + ((((67108863 & + (I = + (q = (K + 33554432) | 0) >>> 0 < 33554432 + ? (I + 1) | 0 + : I)) << + 6) | + (q >>> 26)) + + V) | + 0), + (i[(z + 4) >> 2] = I), + (A = -67108864 & q), + (i[z >> 2] = K - A) + })((C = (A + 120) | 0), (I + 80) | 0), + sA((Q = (A + 40) | 0), I, E), + H(B, Q), + sA(Q, g, A), + yA(g, g, A), + yA(A, B, Q), + yA(C, C, g), + (h = (B + 48) | 0) + } + function II(A) { + var I, g + return ((A = ((I = i[8943]) + (g = (A + 3) & -4)) | 0) >>> + 0 <= + I >>> 0 && + (0 | g) >= 1) || + (A >>> 0 > (Wg() << 16) >>> 0 && !(0 | w(0 | A))) + ? ((i[8960] = 48), -1) + : ((i[8943] = A), I) + } + function gI(A, I) { + var g + return ( + (h = g = (h + -64) | 0), + ((I - 1) & 255) >>> 0 >= 64 && (OI(), e()), + (C[(g + 3) | 0] = 1), + (C[(g + 1) | 0] = 0), + (C[(g + 2) | 0] = 1), + (C[0 | g] = I), + WI(4 | g), + tI(8 | g, 0, 0), + EA((g + 16) | 0, 0, 48), + hA(A, g), + (h = (g - -64) | 0), + 0 + ) + } + function BI(A, I, g, B, Q, C, E) { + var i = 0, + n = 0 + ;(i = B), + (1 == + (((((i = + (n = (g + 63) | 0) >>> 0 < 63 ? (i + 1) | 0 : i) >>> + 6) | + 0) + + (0 != (0 | (i = ((63 & i) << 26) | (n >>> 6))))) | + 0)) & + ((n = (0 - i) | 0) >>> 0 < C >>> 0) && (OI(), e()), + SI(A, I, g, B, Q, C, E) + } + function QI(A, I) { + for ( + var g = 0, B = 0, Q = 0, C = 0; + (B = ((g = Q << 3) + A) | 0), + (C = i[(g = (I + g) | 0) >> 2]), + (g = i[(B + 4) >> 2] ^ i[(g + 4) >> 2]), + (i[B >> 2] = i[B >> 2] ^ C), + (i[(B + 4) >> 2] = g), + 128 != (0 | (Q = (Q + 1) | 0)); + + ); + } + function CI(A) { + var I, g + return ( + (95 & (((1 + (32704 ^ A)) >>> 8) ^ -1)) | + (45 & (((1 + (16321 ^ A)) >>> 8) ^ -1)) | + ((I = ((A + 65510) >>> 8) & 255) & (A + 65)) | + ((g = ((A + 65484) >>> 8) | 0) & (A + 71) & (255 ^ I)) | + ((A + 252) & ((A + 65474) >>> 8) & (-1 ^ g) & 255) + ) + } + function EI(A) { + var I, g + return ( + (47 & (((1 + (16320 ^ A)) >>> 8) ^ -1)) | + (43 & (((1 + (16321 ^ A)) >>> 8) ^ -1)) | + ((I = ((A + 65510) >>> 8) & 255) & (A + 65)) | + ((g = ((A + 65484) >>> 8) | 0) & (A + 71) & (255 ^ I)) | + ((A + 252) & ((A + 65474) >>> 8) & (-1 ^ g) & 255) + ) + } + function iI(A, I, g, B) { + var Q = 0 + Q = -1 + A: if (!((g >>> 0 > 64) | ((B - 1) >>> 0 > 63))) { + I: { + if (!g || !I) { + if (!gI(A, 255 & B)) break I + break A + } + if (RA(A, 255 & B, I, 255 & g)) break A + } + Q = 0 + } + return Q + } + function nI(A, I) { + var g, B, Q + ;(h = g = (h - 144) | 0), + j((g + 96) | 0, (I + 80) | 0), + _((g + 48) | 0, I, (g + 96) | 0), + _(g, (I + 40) | 0, (g + 96) | 0), + BA(A, g), + (B = A), + (Q = (KI((g + 48) | 0) << 7) ^ n[(A + 31) | 0]), + (C[(B + 31) | 0] = Q), + (h = (g + 144) | 0) + } + function aI(A, I) { + var g, + B = 0 + if (((C[(15 + (g = (h - 16) | 0)) | 0] = 0), I)) + for ( + ; + (C[(g + 15) | 0] = n[(A + B) | 0] | n[(g + 15) | 0]), + (0 | (B = (B + 1) | 0)) != (0 | I); + + ); + return ((n[(g + 15) | 0] - 1) >>> 8) & 1 + } + function rI(A, I, g, B) { + var Q + return ( + (B = (I + B) | 0), + (B = + (Q = (A + g) | 0) >>> 0 < g >>> 0 ? (B + 1) | 0 : B), + (g = eg( + (A << 1) & -2, + 1 & (I = (I << 1) | (A >>> 31)), + g, + 0 + )), + (A = (p + B) | 0), + (p = A = + (I = (g + Q) | 0) >>> 0 < g >>> 0 ? (A + 1) | 0 : A), + I + ) + } + function oI(A, I, g) { + var B, + Q = 0 + if ((B = (g >>> 3) | 0)) + for ( + g = 0; + vA( + ((Q = g << 3) + A) | 0, + i[(Q = (I + Q) | 0) >> 2], + i[(Q + 4) >> 2] + ), + (0 | B) != (0 | (g = (g + 1) | 0)); + + ); + } + function eI(A, I) { + var g = 0 + !(function (A, I) { + I && + ((I = i[A >> 2]) && + fI(i[(I + 4) >> 2], i[(A + 16) >> 2] << 10), + (I = i[(A + 4) >> 2]) && fI(I, i[(A + 20) >> 2] << 3)) + })(A, 4 & I), + m(i[(A + 4) >> 2]), + (i[(A + 4) >> 2] = 0), + (I = i[A >> 2]) && (g = i[I >> 2]) && m(g), + m(I), + (i[A >> 2] = 0) + } + function tI(A, I, g) { + ;(C[0 | A] = I), + (C[(A + 1) | 0] = I >>> 8), + (C[(A + 2) | 0] = I >>> 16), + (C[(A + 3) | 0] = I >>> 24), + (C[(A + 4) | 0] = g), + (C[(A + 5) | 0] = g >>> 8), + (C[(A + 6) | 0] = g >>> 16), + (C[(A + 7) | 0] = g >>> 24) + } + function fI(A, I) { + var g + if (((i[(12 + (g = (h - 16) | 0)) >> 2] = A), I)) + for ( + A = 0; + (C[(i[(g + 12) >> 2] + A) | 0] = 0), + (0 | I) != (0 | (A = (A + 1) | 0)); + + ); + } + function cI(A, I) { + A |= 0 + var g = 0, + B = 0, + Q = 0 + if ((I |= 0)) + for ( + ; + (B = (A + g) | 0), + (Q = YI()), + (C[0 | B] = Q), + (0 | (g = (g + 1) | 0)) != (0 | I); + + ); + } + function yI(A, I, g, B, Q) { + var C, E + return ( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (h = C = ((E = h) - 128) & -64), + IA(C, (Q |= 0)), + z(C, I, g, B), + Z(C, A), + (h = E), + 0 + ) + } + function sI(A) { + var I = 0, + g = 0, + B = 0 + for ( + I = 1; + (I = (n[0 | (B = (A + g) | 0)] + I) | 0), + (C[0 | B] = I), + (I = (I >>> 8) | 0), + 4 != (0 | (g = (g + 1) | 0)); + + ); + } + function wI(A, I, g, B, Q, C, E, i) { + var n, + a = 0 + return ( + (h = n = (h - 32) | 0), + (a = -1), + jI(n, E, i) || + ((a = Qg(A, I, g, B, Q, C, n)), fI(n, 32)), + (h = (n + 32) | 0), + a + ) + } + function hI(A, I, g, B, Q, C, E, i) { + var n, + a = 0 + return ( + (h = n = (h - 32) | 0), + (a = -1), + jI(n, E, i) || + ((a = Cg(A, I, g, B, Q, C, n)), fI(n, 32)), + (h = (n + 32) | 0), + a + ) + } + function DI(A, I) { + var g, B, Q + _(A, I, (g = (I + 120) | 0)), + _((A + 40) | 0, (B = (I + 40) | 0), (Q = (I + 80) | 0)), + _((A + 80) | 0, Q, g), + _((A + 120) | 0, I, B) + } + function uI(A, I, g, B, Q, C, E) { + return (!B & (g >>> 0 >= 16)) | B + ? hI( + A, + (I + 16) | 0, + I, + (g - 16) | 0, + (B - (g >>> 0 < 16)) | 0, + Q, + C, + E + ) + : -1 + } + function pI(A, I) { + for ( + var g = 0, B = 0; + (C[0 | (B = (A + g) | 0)] = n[0 | B] ^ n[(I + g) | 0]), + 8 != (0 | (g = (g + 1) | 0)); + + ); + } + function lI(A, I, g) { + var B, Q + ;(h = B = ((Q = h) - 384) & -64), + qI(B, 0, 0, 24), + sg(B, I, 32, 0), + sg(B, g, 32, 0), + TI(B, A, 24), + (h = Q) + } + function FI(A, I) { + var g + sA(A, (g = (I + 40) | 0), I), + yA((A + 40) | 0, g, I), + SA((A + 80) | 0, (I + 80) | 0), + _((A + 120) | 0, (I + 120) | 0, 2224) + } + function GI(A, I, g, B, Q, C, E) { + return ((I - 1) >>> 0 > 63) | (E >>> 0 > 64) + ? -1 + : (function (A, I, g, B, Q, C, E) { + var i, + n = 0 + if ( + ((i = n = h), + (h = n = (n - 384) & -64), + !( + !A | + (((B - 1) & 255) >>> 0 >= 64) | + (Q | C ? !I : 0) | + (E >>> 0 >= 65) | + (E ? !g : 0) + )) + ) + return ( + E ? RA(n, B, g, E) : gI(n, B), + QA(n, I, Q, C), + M(n, A, B), + (h = i), + 0 + ) + OI(), e() + })(A, g, C, 255 & I, B, Q, 255 & E) + } + function kI(A, I, g, B, Q, C, E) { + return ( + (!B & (g >>> 0 >= 4294967280)) | B && (OI(), e()), + wI((A + 16) | 0, A, I, g, B, Q, C, E) + ) + } + function _I(A, I) { + var g + _(A, I, (g = (I + 120) | 0)), + _((A + 40) | 0, (I + 40) | 0, (I = (I + 80) | 0)), + _((A + 80) | 0, I, g) + } + function HI(A) { + var I + return ( + (I = n[0 | A] | (n[(A + 1) | 0] << 8)), + (A = n[(A + 2) | 0]), + (p = (A >>> 16) | 0), + I | (A << 16) + ) + } + function YI() { + var A, I + return ( + (h = A = (h - 16) | 0), + (C[(A + 15) | 0] = 0), + (I = 0 | f(1024, (A + 15) | 0, 0)), + (h = (A + 16) | 0), + 0 | I + ) + } + function bI(A, I, g, B, Q) { + var E + return ( + (h = E = (h - 416) | 0), + (function (A, I) { + var g, + B = 0, + Q = 0 + for ( + h = g = (h - 192) | 0, + MI(A), + EA((g - -64) | 0, 54, 128), + C[(g + 64) | 0] = 54 ^ n[0 | I], + B = 1; + (C[0 | (Q = (((g - -64) | 0) + B) | 0)] = + n[0 | Q] ^ n[(I + B) | 0]), + 32 != (0 | (B = (B + 1) | 0)); + + ); + for ( + V(A, (g - -64) | 0, 128, 0), + MI((A = (A + 208) | 0)), + EA((g - -64) | 0, 92, 128), + C[(g + 64) | 0] = 92 ^ n[0 | I], + B = 1; + (C[0 | (Q = (((g - -64) | 0) + B) | 0)] = + n[0 | Q] ^ n[(I + B) | 0]), + 32 != (0 | (B = (B + 1) | 0)); + + ); + V(A, (g - -64) | 0, 128, 0), + fI((g - -64) | 0, 128), + fI(g, 64), + (h = (g + 192) | 0) + })(E, Q), + V(E, I, g, B), + (function (A, I) { + var g, + B = 0 + ;(h = g = (h + -64) | 0), + (function (A, I) { + var g + ;(h = g = (h + -64) | 0), + UI(A, g), + V((A = (A + 208) | 0), g, 64, 0), + UI(A, I), + fI(g, 64), + (h = (g - -64) | 0) + })(A, g), + (B = i[(g + 28) >> 2]), + (A = i[(g + 24) >> 2]), + (C[(I + 24) | 0] = A), + (C[(I + 25) | 0] = A >>> 8), + (C[(I + 26) | 0] = A >>> 16), + (C[(I + 27) | 0] = A >>> 24), + (C[(I + 28) | 0] = B), + (C[(I + 29) | 0] = B >>> 8), + (C[(I + 30) | 0] = B >>> 16), + (C[(I + 31) | 0] = B >>> 24), + (B = i[(g + 20) >> 2]), + (A = i[(g + 16) >> 2]), + (C[(I + 16) | 0] = A), + (C[(I + 17) | 0] = A >>> 8), + (C[(I + 18) | 0] = A >>> 16), + (C[(I + 19) | 0] = A >>> 24), + (C[(I + 20) | 0] = B), + (C[(I + 21) | 0] = B >>> 8), + (C[(I + 22) | 0] = B >>> 16), + (C[(I + 23) | 0] = B >>> 24), + (B = i[(g + 12) >> 2]), + (A = i[(g + 8) >> 2]), + (C[(I + 8) | 0] = A), + (C[(I + 9) | 0] = A >>> 8), + (C[(I + 10) | 0] = A >>> 16), + (C[(I + 11) | 0] = A >>> 24), + (C[(I + 12) | 0] = B), + (C[(I + 13) | 0] = B >>> 8), + (C[(I + 14) | 0] = B >>> 16), + (C[(I + 15) | 0] = B >>> 24), + (B = i[(g + 4) >> 2]), + (A = i[g >> 2]), + (C[0 | I] = A), + (C[(I + 1) | 0] = A >>> 8), + (C[(I + 2) | 0] = A >>> 16), + (C[(I + 3) | 0] = A >>> 24), + (C[(I + 4) | 0] = B), + (C[(I + 5) | 0] = B >>> 8), + (C[(I + 6) | 0] = B >>> 16), + (C[(I + 7) | 0] = B >>> 24), + (h = (g - -64) | 0) + })(E, A), + (h = (E + 416) | 0), + 0 + ) + } + function mI(A, I, g, B) { + var Q + return ( + (h = Q = (h - 208) | 0), + MI(Q), + V(Q, I, g, B), + UI(Q, A), + (h = (Q + 208) | 0), + 0 + ) + } + function vI(A, I) { + var g = 0 + return ( + (((-1 >>> (g = 31 & I)) & A) << g) | + (((g = A) & (-1 << (A = (0 - I) & 31))) >>> A) + ) + } + function UI(A, I) { + var g + ;(h = g = (h - 704) | 0), + (function (A, I) { + var g, + B = 0 + ;(g = (i[(A + 72) >> 2] >>> 3) & 127) >>> 0 <= 111 + ? X((80 + ((A + g) | 0)) | 0, 35424, (112 - g) | 0) + : (X( + ((B = (A + 80) | 0) + g) | 0, + 35424, + (128 - g) | 0 + ), + F(A, B, I, (I + 640) | 0), + EA(B, 0, 112)), + oI((A + 192) | 0, (A - -64) | 0, 16), + F(A, (A + 80) | 0, I, (I + 640) | 0) + })(A, g), + oI(I, A, 64), + fI(g, 704), + fI(A, 208), + (h = (g + 704) | 0) + } + function SI(A, I, g, B, Q, C, E) { + ;(1 == (0 | B)) | (B >>> 0 > 1) && (OI(), e()), + Vg[i[8957]](A, I, g, B, Q, C, E) + } + function NI(A, I, g, B, Q, C) { + ;(1 == (0 | B)) | (B >>> 0 > 1) && (OI(), e()), + Vg[i[8956]](A, I, g, B, Q, 1, 0, C) + } + function MI(A) { + ;(i[(A + 64) >> 2] = 0), + (i[(A + 68) >> 2] = 0), + (i[(A + 72) >> 2] = 0), + (i[(A + 76) >> 2] = 0), + X(A, 34720, 64) + } + function dI(A, I, g) { + return ( + g >>> 0 >= 256 && (t(2016, 2036, 107, 2089), e()), + M(A, I, 255 & g) + ) + } + function PI() { + var A + ;(h = A = (h - 16) | 0), + (C[(A + 15) | 0] = 0), + f(1062, (A + 15) | 0, 0), + (h = (A + 16) | 0) + } + function RI(A) { + var I + return ( + (h = I = (h - 32) | 0), + BA(I, A), + (A = aI(I, 32)), + (h = (I + 32) | 0), + A + ) + } + function JI(A, I) { + var g + ;(h = g = (h - 128) | 0), + (function (A, I) { + SA(A, I), + SA((A + 40) | 0, (I + 40) | 0), + SA((A + 80) | 0, (I + 80) | 0) + })((g + 8) | 0, I), + AI(A, (g + 8) | 0), + (h = (g + 128) | 0) + } + function xI(A, I) { + ;(C[0 | A] = I), + (C[(A + 1) | 0] = I >>> 8), + (C[(A + 2) | 0] = I >>> 16), + (C[(A + 3) | 0] = I >>> 24) + } + function LI(A, I, g) { + eA(A, I, g), + eA((A + 40) | 0, (I + 40) | 0, g), + eA((A + 80) | 0, (I + 80) | 0, g) + } + function KI(A) { + var I + return ( + (h = I = (h - 32) | 0), + BA(I, A), + (h = (I + 32) | 0), + 1 & C[0 | I] + ) + } + function qI(A, I, g, B) { + return 0 | iI((A |= 0), (I |= 0), (g |= 0), (B |= 0)) + } + function XI(A) { + ;(C[(A + 32) | 0] = 1), + (C[(A + 33) | 0] = 0), + (C[(A + 34) | 0] = 0), + (C[(A + 35) | 0] = 0) + } + function VI(A) { + ;(i[A >> 2] = 0), + (i[(A + 4) >> 2] = 0), + (i[(A + 8) >> 2] = 0), + (i[(A + 12) >> 2] = 0) + } + function WI(A) { + ;(C[0 | A] = 0), + (C[(A + 1) | 0] = 0), + (C[(A + 2) | 0] = 0), + (C[(A + 3) | 0] = 0) + } + function TI(A, I, g) { + return 0 | dI((A |= 0), (I |= 0), (g |= 0)) + } + function jI(A, I, g) { + return ( + 0 | + (function (A, I, g) { + var B, + Q = 0 + return ( + (h = B = (h - 32) | 0), + (Q = -1), + $A(B, g, I) || (Q = K(A, 35552, B)), + (h = (B + 32) | 0), + Q + ) + })((A |= 0), (I |= 0), (g |= 0)) + ) + } + function ZI(A, I, g) { + return 0 | $A((A |= 0), (I |= 0), (g |= 0)) + } + function OI() { + var A + ;(A = i[9105]) && Vg[0 | A](), c(), e() + } + function zI(A) { + Ug(A), + wg((A + 40) | 0), + wg((A + 80) | 0), + Ug((A + 120) | 0) + } + function $I(A, I, g, B, Q, C) { + Vg[i[8953]](A, I, g, B, Q, 0, 0, C) + } + function Ag(A, I, g, B, Q, C) { + Vg[i[8953]](A, I, g, B, Q, 1, 0, C) + } + function Ig(A, I) { + return (A |= 0), cI((I |= 0), 32), 0 | cg(A, I) + } + function gg(A, I) { + return ( + (A = (function (A, I) { + var g = 0, + B = 0 + A: { + if ((B = 255 & I)) { + if (3 & A) + for (;;) { + if (!(g = n[0 | A]) | ((0 | g) == (255 & I))) + break A + if (!(3 & (A = (A + 1) | 0))) break + } + I: if ( + !( + (-1 ^ (g = i[A >> 2])) & + (g - 16843009) & + -2139062144 + ) + ) + for (B = r(B, 16843009); ; ) { + if ( + (-1 ^ (g ^= B)) & + (g - 16843009) & + -2139062144 + ) + break I + if ( + ((g = i[(A + 4) >> 2]), + (A = (A + 4) | 0), + (g - 16843009) & (-1 ^ g) & -2139062144) + ) + break + } + for ( + ; + (B = n[0 | (g = A)]) && + ((A = (g + 1) | 0), (0 | B) != (255 & I)); + + ); + return g + } + return (YA(A) + A) | 0 + } + return A + })(A, I)), + n[0 | A] == (255 & I) ? A : 0 + ) + } + function Bg(A, I, g, B, Q, C) { + return q(A, I, g, B, Q, C, 0), 0 + } + function Qg(A, I, g, B, Q, C, E) { + return nA(A, I, g, B, Q, C, E) + } + function Cg(A, I, g, B, Q, C, E) { + return rA(A, I, g, B, Q, C, E) + } + function Eg(A, I, g, B, Q, C, E) { + return GI(A, I, g, B, Q, C, E) + } + function ig(A, I) { + MI(A), I && V(A, 35728, 34, 0) + } + function ng(A, I, g, B, Q) { + return lA(A, I, g, B, Q, 0) + } + function ag(A, I) { + return 0 | cg((A |= 0), (I |= 0)) + } + function rg(A, I, g, B) { + Vg[i[8955]](A, I, 0, g, B) + } + function og(A, I, g) { + Vg[i[8954]](A, 64, 0, I, g) + } + function eg(A, I, g, B) { + return (function (A, I, g, B) { + var Q, + C, + E, + i, + n = 0, + a = 0 + return ( + (i = r((n = (g >>> 16) | 0), (a = (A >>> 16) | 0))), + (n = + ((65535 & + (a = + ((((E = r((Q = 65535 & g), (C = 65535 & A))) >>> + 16) | + 0) + + r(a, Q)) | + 0)) + + r(n, C)) | + 0), + (A = + (((r(I, g) + i) | 0) + + r(A, B) + + (a >>> 16) + + (n >>> 16)) | + 0), + (p = A), + (65535 & E) | (n << 16) + ) + })(A, I, g, B) + } + function tg(A, I) { + return (((255 & (A ^ I)) - 1) >>> 31) | 0 + } + function fg(A, I, g) { + !(function (A, I, g) { + var B, Q + ;(h = B = (h - 128) | 0), + wg(A), + wg((A + 40) | 0), + Ug((A + 80) | 0), + LI( + A, + I, + tg( + (g = + ((g - + (((0 - (Q = ((128 & g) >>> 7) | 0)) & g) << + 1)) << + 24) >> + 24), + 1 + ) + ), + LI(A, (I + 120) | 0, tg(g, 2)), + LI(A, (I + 240) | 0, tg(g, 3)), + LI(A, (I + 360) | 0, tg(g, 4)), + LI(A, (I + 480) | 0, tg(g, 5)), + LI(A, (I + 600) | 0, tg(g, 6)), + LI(A, (I + 720) | 0, tg(g, 7)), + LI(A, (I + 840) | 0, tg(g, 8)), + SA((B + 8) | 0, (A + 40) | 0), + SA((B + 48) | 0, A), + mA((B + 88) | 0, (A + 80) | 0), + LI(A, (B + 8) | 0, Q), + (h = (B + 128) | 0) + })(A, (r(I, 960) + 3488) | 0, g) + } + function cg(A, I) { + return 0 | Vg[i[8951]](A, I) + } + function yg(A, I, g, B) { + Vg[i[8948]](A, I, g, B) + } + function sg(A, I, g, B) { + return hg(A, I, g, B) + } + function wg(A) { + ;(i[A >> 2] = 1), EA((A + 4) | 0, 0, 36) + } + function hg(A, I, g, B) { + return QA(A, I, g, B) + } + function Dg(A, I, g) { + return (function (A, I, g) { + var B = 0, + Q = 0, + C = 0, + E = 0 + return ( + (B = 31 & (C = E = 63 & g)), + C >>> 0 >= 32 + ? (B = (-1 >>> B) | 0) + : ((Q = (-1 >>> B) | 0), + (B = (((1 << B) - 1) << (32 - B)) | (-1 >>> B))), + (C = B & A), + (B = I & Q), + (Q = 31 & E), + E >>> 0 >= 32 + ? ((B = C << Q), (E = 0)) + : ((B = + (((1 << Q) - 1) & (C >>> (32 - Q))) | (B << Q)), + (E = C << Q)), + (C = B), + (g = 31 & (B = Q = (0 - g) & 63)), + B >>> 0 >= 32 + ? ((B = -1 << g), (g = 0)) + : ((B = + (((1 << g) - 1) & (-1 >>> (32 - g))) | + (-1 << g)), + (g = -1 << g)), + (A &= g), + (B &= I), + (I = 31 & Q), + Q >>> 0 >= 32 + ? ((g = 0), (A = (B >>> I) | 0)) + : ((g = (B >>> I) | 0), + (A = + ((((1 << I) - 1) & B) << (32 - I)) | + (A >>> I))), + (p = g | C), + A | E + ) + })(A, I, g) + } + function ug(A, I, g) { + return (function (A, I, g) { + var B = 0, + Q = 0, + C = 0, + E = 0, + i = 0 + return ( + (B = 31 & (E = 63 & g)), + E >>> 0 >= 32 + ? ((Q = -1 << B), (i = 0)) + : ((Q = + (((1 << B) - 1) & (-1 >>> (32 - B))) | + (-1 << B)), + (i = -1 << B)), + (i &= A), + (B = I & Q), + (C = 31 & E), + E >>> 0 >= 32 + ? ((Q = 0), (E = (B >>> C) | 0)) + : ((Q = (B >>> C) | 0), + (E = + ((((1 << C) - 1) & B) << (32 - C)) | + (i >>> C))), + (i = Q), + (C = 31 & (B = (0 - g) & 63)), + B >>> 0 >= 32 + ? ((Q = 0), (g = (-1 >>> C) | 0)) + : ((Q = (-1 >>> C) | 0), + (g = (((1 << C) - 1) << (32 - C)) | (-1 >>> C))), + (A &= g), + (I &= Q), + (Q = 31 & B), + B >>> 0 >= 32 + ? ((g = A << Q), (A = 0)) + : ((g = + (((1 << Q) - 1) & (A >>> (32 - Q))) | (I << Q)), + (A <<= Q)), + (p = g | i), + A | E + ) + })(A, I, g) + } + function pg(A) { + 1 != (-7 & A) && (OI(), e()) + } + function lg(A, I) { + Vg[i[8947]](A, I) + } + function Fg(A, I) { + Vg[i[8949]](A, I) + } + function Gg(A, I) { + return jA(A, I, 32) + } + function kg(A, I) { + return jA(A, I, 16) + } + function _g(A, I, g, B) { + rg(A, I, g, B) + } + function Hg(A, I) { + return vI(A, I) + } + function Yg(A, I) { + X(A, I, 1024) + } + function bg(A) { + cI((A |= 0), 32) + } + function mg(A, I, g) { + !(function (A, I, g) { + var B, + Q, + C, + E, + i, + a, + r, + o, + e, + t, + f, + c, + y = 0, + s = 0, + w = 0, + h = 0, + D = 0, + u = 0, + p = 0, + l = 0, + F = 0, + G = 0, + k = 0, + _ = 0, + H = 0, + Y = 0, + b = 0, + m = 0, + v = 0, + U = 0, + S = 0, + N = 0, + M = 0 + for ( + B = + n[0 | g] | + (n[(g + 1) | 0] << 8) | + (n[(g + 2) | 0] << 16) | + (n[(g + 3) | 0] << 24), + Q = + n[(g + 4) | 0] | + (n[(g + 5) | 0] << 8) | + (n[(g + 6) | 0] << 16) | + (n[(g + 7) | 0] << 24), + C = + n[(g + 8) | 0] | + (n[(g + 9) | 0] << 8) | + (n[(g + 10) | 0] << 16) | + (n[(g + 11) | 0] << 24), + E = + n[(g + 12) | 0] | + (n[(g + 13) | 0] << 8) | + (n[(g + 14) | 0] << 16) | + (n[(g + 15) | 0] << 24), + i = + n[(g + 16) | 0] | + (n[(g + 17) | 0] << 8) | + (n[(g + 18) | 0] << 16) | + (n[(g + 19) | 0] << 24), + a = + n[(g + 20) | 0] | + (n[(g + 21) | 0] << 8) | + (n[(g + 22) | 0] << 16) | + (n[(g + 23) | 0] << 24), + r = + n[(g + 24) | 0] | + (n[(g + 25) | 0] << 8) | + (n[(g + 26) | 0] << 16) | + (n[(g + 27) | 0] << 24), + o = + n[(g + 28) | 0] | + (n[(g + 29) | 0] << 8) | + (n[(g + 30) | 0] << 16) | + (n[(g + 31) | 0] << 24), + g = 1634760805, + h = B, + D = Q, + b = C, + u = E, + H = 857760878, + p = e = + n[0 | I] | + (n[(I + 1) | 0] << 8) | + (n[(I + 2) | 0] << 16) | + (n[(I + 3) | 0] << 24), + l = t = + n[(I + 4) | 0] | + (n[(I + 5) | 0] << 8) | + (n[(I + 6) | 0] << 16) | + (n[(I + 7) | 0] << 24), + F = f = + n[(I + 8) | 0] | + (n[(I + 9) | 0] << 8) | + (n[(I + 10) | 0] << 16) | + (n[(I + 11) | 0] << 24), + _ = c = + n[(I + 12) | 0] | + (n[(I + 13) | 0] << 8) | + (n[(I + 14) | 0] << 16) | + (n[(I + 15) | 0] << 24), + I = 2036477234, + s = i, + G = 1797285236, + k = o, + w = r, + y = a; + (u = Hg((g + y) | 0, 7) ^ u), + (F = Hg((u + g) | 0, 9) ^ F), + (m = Hg((F + u) | 0, 13) ^ y), + (S = Hg((F + m) | 0, 18)), + (y = Hg((h + H) | 0, 7) ^ _), + (Y = Hg((y + H) | 0, 9) ^ w), + (h = Hg((y + Y) | 0, 13) ^ h), + (_ = Hg((Y + h) | 0, 18)), + (k = Hg((I + p) | 0, 7) ^ k), + (D = Hg((k + I) | 0, 9) ^ D), + (p = Hg((D + k) | 0, 13) ^ p), + (N = Hg((D + p) | 0, 18)), + (w = Hg((s + G) | 0, 7) ^ b), + (l = Hg((w + G) | 0, 9) ^ l), + (v = Hg((l + w) | 0, 13) ^ s), + (M = Hg((l + v) | 0, 18)), + (h = Hg(((g ^= S) + w) | 0, 7) ^ h), + (D = Hg((h + g) | 0, 9) ^ D), + (b = Hg((h + D) | 0, 13) ^ w), + (g = Hg((D + b) | 0, 18) ^ g), + (p = Hg(((s = H ^ _) + u) | 0, 7) ^ p), + (l = Hg((p + s) | 0, 9) ^ l), + (u = Hg((l + p) | 0, 13) ^ u), + (H = Hg((l + u) | 0, 18) ^ s), + (s = Hg(((I ^= N) + y) | 0, 7) ^ v), + (F = Hg((s + I) | 0, 9) ^ F), + (_ = Hg((F + s) | 0, 13) ^ y), + (I = Hg((F + _) | 0, 18) ^ I), + (y = Hg(((G ^= M) + k) | 0, 7) ^ m), + (w = Hg((y + G) | 0, 9) ^ Y), + (k = Hg((y + w) | 0, 13) ^ k), + (G = Hg((w + k) | 0, 18) ^ G), + (Y = U >>> 0 < 18), + (U = (U + 2) | 0), + Y; + + ); + xI(A, (g + 1634760805) | 0), + xI((A + 4) | 0, (h + B) | 0), + xI((A + 8) | 0, (D + Q) | 0), + xI((A + 12) | 0, (b + C) | 0), + xI((A + 16) | 0, (u + E) | 0), + xI((A + 20) | 0, (H + 857760878) | 0), + xI((A + 24) | 0, (p + e) | 0), + xI((A + 28) | 0, (l + t) | 0), + xI((A + 32) | 0, (F + f) | 0), + xI((A + 36) | 0, (_ + c) | 0), + xI((A + 40) | 0, (I + 2036477234) | 0), + xI((A + 44) | 0, (s + i) | 0), + xI((A + 48) | 0, (y + a) | 0), + xI((A + 52) | 0, (w + r) | 0), + xI((A + 56) | 0, (k + o) | 0), + xI((A + 60) | 0, (G + 1797285236) | 0) + })(A, I, g) + } + function vg(A) { + EA(A, 0, 1024) + } + function Ug(A) { + EA(A, 0, 40) + } + function Sg() { + return 16 + } + function Ng() { + return 32 + } + function Mg() { + return 24 + } + function dg() { + return -17 + } + function Pg() { + return 64 + } + function Rg() { + return 1 + } + function Jg() { + return 2 + } + function xg() { + return 8 + } + function Lg() { + return 0 + } + function Kg() { + return -1 + } + function qg() { + return 3 + } + Q( + (I = n), + 1024, + 'InsgcmV0dXJuIE1vZHVsZS5nZXRSYW5kb21WYWx1ZSgpOyB9IgB7IGlmIChNb2R1bGUuZ2V0UmFuZG9tVmFsdWUgPT09IHVuZGVmaW5lZCkgeyB0cnkgeyB2YXIgd2luZG93XyA9ICdvYmplY3QnID09PSB0eXBlb2Ygd2luZG93ID8gd2luZG93IDogc2VsZjsgdmFyIGNyeXB0b18gPSB0eXBlb2Ygd2luZG93Xy5jcnlwdG8gIT09ICd1bmRlZmluZWQnID8gd2luZG93Xy5jcnlwdG8gOiB3aW5kb3dfLm1zQ3J5cHRvOyB2YXIgcmFuZG9tVmFsdWVzU3RhbmRhcmQgPSBmdW5jdGlvbigpIHsgdmFyIGJ1ZiA9IG5ldyBVaW50MzJBcnJheSgxKTsgY3J5cHRvXy5nZXRSYW5kb21WYWx1ZXMoYnVmKTsgcmV0dXJuIGJ1ZlswXSA+Pj4gMDsgfTsgcmFuZG9tVmFsdWVzU3RhbmRhcmQoKTsgTW9kdWxlLmdldFJhbmRvbVZhbHVlID0gcmFuZG9tVmFsdWVzU3RhbmRhcmQ7IH0gY2F0Y2ggKGUpIHsgdHJ5IHsgdmFyIGNyeXB0byA9IHJlcXVpcmUoJ2NyeXB0bycpOyB2YXIgcmFuZG9tVmFsdWVOb2RlSlMgPSBmdW5jdGlvbigpIHsgdmFyIGJ1ZiA9IGNyeXB0b1sncmFuZG9tQnl0ZXMnXSg0KTsgcmV0dXJuIChidWZbMF0gPDwgMjQgfCBidWZbMV0gPDwgMTYgfCBidWZbMl0gPDwgOCB8IGJ1ZlszXSkgPj4+IDA7IH07IHJhbmRvbVZhbHVlTm9kZUpTKCk7IE1vZHVsZS5nZXRSYW5kb21WYWx1ZSA9IHJhbmRvbVZhbHVlTm9kZUpTOyB9IGNhdGNoIChlKSB7IHRocm93ICdObyBzZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgZm91bmQnOyB9IH0gfSB9AExpYnNvZGl1bURSR2J1Zl9sZW4gPD0gU0laRV9NQVgAcmFuZG9tYnl0ZXMvcmFuZG9tYnl0ZXMuYwByYW5kb21ieXRlcwBTLT5idWZsZW4gPD0gQkxBS0UyQl9CTE9DS0JZVEVTAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9ibGFrZTJiLXJlZi5jAGJsYWtlMmJfZmluYWwAAAAAAAAAAAjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FtvdXRsZW4gPD0gVUlOVDhfTUFYAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9nZW5lcmljaGFzaF9ibGFrZTJiLmMAY3J5cHRvX2dlbmVyaWNoYXNoX2JsYWtlMmJfZmluYWwAAAAAAAAAtnhZ/4Vy0wC9bhX/DwpqACnAAQCY6Hn/vDyg/5lxzv8At+L+tA1I/wAAAAAAAAAAsKAO/tPJhv+eGI8Af2k1AGAMvQCn1/v/n0yA/mpl4f8e/AQAkgyu' + ), + Q( + I, + 2224, + 'WfGy/grlpv973Sr+HhTUAFKAAwAw0fMAd3lA/zLjnP8AbsUBZxuQ' + ), + Q( + I, + 2272, + 'hTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/' + ), + Q(I, 3264, 'AQ=='), + Q( + I, + 3296, + 'JuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ=' + ), + Q( + I, + 3487, + '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' + ), + Q(I, 34460, 'AQ=='), + Q(I, 34496, 'AQ=='), + Q( + I, + 34528, + '4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////fw==' + ), + Q( + I, + 34720, + 'CMm882fmCWo7p8qEha5nuyv4lP5y82488TYdXzr1T6XRguatf1IOUR9sPiuMaAWba71B+6vZgx95IX4TGc3gWyKuKNeYL4pCzWXvI5FEN3EvO03sz/vAtbzbiYGl27XpOLVI81vCVjkZ0AW28RHxWZtPGa+kgj+SGIFt2tVeHKtCAgOjmKoH2L5vcEUBW4MSjLLkTr6FMSTitP/Vw30MVW+Je/J0Xb5ysZYWO/6x3oA1Esclpwbcm5Qmac908ZvB0krxnsFpm+TjJU84hke+77XVjIvGncEPZZysd8yhDCR1AitZbyzpLYPkpm6qhHRK1PtBvdypsFy1UxGD2oj5dqvfZu5SUT6YEDK0LW3GMag/IfuYyCcDsOQO777Hf1m/wo+oPfML4MYlpwqTR5Gn1W+CA+BRY8oGcG4OCmcpKRT8L9JGhQq3JybJJlw4IRsu7SrEWvxtLE3fs5WdEw04U95jr4tUcwplqLJ3PLsKanbmru1HLsnCgTs1ghSFLHKSZAPxTKHov6IBMEK8S2YaqJGX+NBwi0vCML5UBqNRbMcYUu/WGeiS0RCpZVUkBpnWKiBxV4U1DvS40bsycKBqEMjQ0rgWwaQZU6tBUQhsNx6Z647fTHdIJ6hIm+G1vLA0Y1rJxbMMHDnLikHjSqrYTnPjY3dPypxbo7iy1vNvLmj8su9d7oKPdGAvF0NvY6V4cqvwoRR4yITsOWQaCALHjCgeYyP6/76Q6b2C3utsUKQVecay96P5vitTcuPyeHHGnGEm6s4+J8oHwsAhx7iG0R7r4M3WfdrqeNFu7n9PffW6bxdyqmfwBqaYyKLFfWMKrg35vgSYPxEbRxwTNQtxG4R9BCP1d9sokyTHQHuryjK8vskVCr6ePEwNEJzEZx1DtkI+y77UxUwqfmX8nCl/Wez61jqrb8tfF1hHSowZRGyA' + ), + Q( + I, + 35568, + 'YjY0X3BvcyA8PSBiNjRfbGVuAHNvZGl1bS9jb2RlY3MuYwBzb2RpdW1fYmluMmJhc2U2NAAkYXJnb24yaWQAJGFyZ29uMmkAJHY9ACRtPQAsdD0ALHA9ACRhcmdvbjJpZCR2PQAkYXJnb24yaSR2PQAkYXJnb24yaWQkACRhcmdvbjJpJA==' + ), + Q( + I, + 35728, + 'U2lnRWQyNTUxOSBubyBFZDI1NTE5IGNvbGxpc2lvbnMBADEuMC4xOA==' + ), + Q( + I, + 35772, + 'UI5QAABAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAAN' + ) + var Xg, + Vg = + (((Xg = [ + null, + yI, + function (A, I, g, B, Q) { + var C + return ( + (A |= 0), + (h = C = (h - 16) | 0), + yI(C, (I |= 0), (g |= 0), (B |= 0), (Q |= 0)), + (A = kg(A, C)), + (h = (C + 16) | 0), + 0 | A + ) + }, + function (A, I) { + return IA((A |= 0), (I |= 0)), 0 + }, + function (A, I, g, B) { + return z((A |= 0), (I |= 0), (g |= 0), (B |= 0)), 0 + }, + function (A, I) { + return Z((A |= 0), (I |= 0)), 0 + }, + function (A, I, g) { + ;(A |= 0), (I |= 0) + var B, + Q = 0, + E = 0 + if ( + ((h = B = (h - 336) | 0), + (Q = -1), + !(function (A) { + var I, + g = 0, + B = 0, + Q = 0, + E = 0 + for ( + C[(11 + (I = (h - 16) | 0)) | 0] = 0, + C[(I + 12) | 0] = 0, + C[(I + 13) | 0] = 0, + C[(I + 14) | 0] = 0, + i[(I + 8) >> 2] = 0; + ; + + ) { + for ( + Q = n[(A + B) | 0], g = 0; + (C[0 | (E = (((I + 8) | 0) + g) | 0)] = + n[0 | E] | + (Q ^ + n[(((34464 + (g << 5)) | 0) + B) | 0])), + 7 != (0 | (g = (g + 1) | 0)); + + ); + if (31 == (0 | (B = (B + 1) | 0))) break + } + for ( + B = 127 & n[(A + 31) | 0], A = 0, g = 0; + (C[0 | (Q = (((I + 8) | 0) + g) | 0)] = + n[0 | Q] | (B ^ n[(34495 + (g << 5)) | 0])), + 7 != (0 | (g = (g + 1) | 0)); + + ); + for ( + g = 0; + (g = (n[(((I + 8) | 0) + A) | 0] - 1) | g), + 7 != (0 | (A = (A + 1) | 0)); + + ); + return (g >>> 8) & 1 + })((g |= 0))) + ) { + for ( + Q = 0; + (C[(A + Q) | 0] = n[(I + Q) | 0]), + 32 != (0 | (Q = (Q + 1) | 0)); + + ); + for ( + C[0 | A] = 248 & n[0 | A], + C[(A + 31) | 0] = (63 & n[(A + 31) | 0]) | 64, + d((B + 288) | 0, g), + wg((B + 240) | 0), + Ug((B + 192) | 0), + SA((B + 144) | 0, (B + 288) | 0), + wg((B + 96) | 0), + g = 254, + I = 0; + (Q = I), + (E = g), + AA( + (B + 240) | 0, + (B + 144) | 0, + (Q ^= I = + (n[(((g >>> 3) | 0) + A) | 0] >>> + (7 & g)) & + 1) + ), + AA((B + 192) | 0, (B + 96) | 0, Q), + (g = (g - 1) | 0), + yA((B + 48) | 0, (B + 144) | 0, (B + 96) | 0), + yA(B, (B + 240) | 0, (B + 192) | 0), + sA( + (B + 240) | 0, + (B + 240) | 0, + (B + 192) | 0 + ), + sA( + (B + 192) | 0, + (B + 144) | 0, + (B + 96) | 0 + ), + _((B + 96) | 0, (B + 48) | 0, (B + 240) | 0), + _((B + 192) | 0, (B + 192) | 0, B), + H((B + 48) | 0, B), + H(B, (B + 240) | 0), + sA( + (B + 144) | 0, + (B + 96) | 0, + (B + 192) | 0 + ), + yA( + (B + 192) | 0, + (B + 96) | 0, + (B + 192) | 0 + ), + _((B + 240) | 0, B, (B + 48) | 0), + yA(B, B, (B + 48) | 0), + H((B + 192) | 0, (B + 192) | 0), + P((B + 96) | 0, B), + H((B + 144) | 0, (B + 144) | 0), + sA((B + 48) | 0, (B + 48) | 0, (B + 96) | 0), + _((B + 96) | 0, (B + 288) | 0, (B + 192) | 0), + _((B + 192) | 0, B, (B + 48) | 0), + E; + + ); + AA((B + 240) | 0, (B + 144) | 0, I), + AA((B + 192) | 0, (B + 96) | 0, I), + j((B + 192) | 0, (B + 192) | 0), + _((B + 240) | 0, (B + 240) | 0, (B + 192) | 0), + BA(A, (B + 240) | 0), + (Q = 0) + } + return (h = (B + 336) | 0), 0 | Q + }, + function (A, I) { + ;(A |= 0), (I |= 0) + var g, + B = 0 + for ( + h = g = (h - 208) | 0; + (C[(A + B) | 0] = n[(I + B) | 0]), + 32 != (0 | (B = (B + 1) | 0)); + + ); + return ( + (C[0 | A] = 248 & n[0 | A]), + (C[(A + 31) | 0] = (63 & n[(A + 31) | 0]) | 64), + CA((g + 48) | 0, A), + (function (A, I, g) { + var B + ;(h = B = (h - 96) | 0), + sA((B + 48) | 0, g, I), + yA(B, g, I), + j(B, B), + _(A, (B + 48) | 0, B), + (h = (B + 96) | 0) + })(g, (g + 88) | 0, (g + 128) | 0), + BA(A, g), + (h = (g + 208) | 0), + 0 + ) + }, + function (A, I, g, B, Q) { + ;(A |= 0), (B |= 0), (Q |= 0) + var E, + a = 0 + if ( + ((h = E = (h - 112) | 0), (I |= 0) | (g |= 0)) + ) { + ;(a = + n[(Q + 28) | 0] | + (n[(Q + 29) | 0] << 8) | + (n[(Q + 30) | 0] << 16) | + (n[(Q + 31) | 0] << 24)), + (i[(E + 24) >> 2] = + n[(Q + 24) | 0] | + (n[(Q + 25) | 0] << 8) | + (n[(Q + 26) | 0] << 16) | + (n[(Q + 27) | 0] << 24)), + (i[(E + 28) >> 2] = a), + (a = + n[(Q + 20) | 0] | + (n[(Q + 21) | 0] << 8) | + (n[(Q + 22) | 0] << 16) | + (n[(Q + 23) | 0] << 24)), + (i[(E + 16) >> 2] = + n[(Q + 16) | 0] | + (n[(Q + 17) | 0] << 8) | + (n[(Q + 18) | 0] << 16) | + (n[(Q + 19) | 0] << 24)), + (i[(E + 20) >> 2] = a), + (a = + n[(Q + 4) | 0] | + (n[(Q + 5) | 0] << 8) | + (n[(Q + 6) | 0] << 16) | + (n[(Q + 7) | 0] << 24)), + (i[E >> 2] = + n[0 | Q] | + (n[(Q + 1) | 0] << 8) | + (n[(Q + 2) | 0] << 16) | + (n[(Q + 3) | 0] << 24)), + (i[(E + 4) >> 2] = a), + (a = + n[(Q + 12) | 0] | + (n[(Q + 13) | 0] << 8) | + (n[(Q + 14) | 0] << 16) | + (n[(Q + 15) | 0] << 24)), + (i[(E + 8) >> 2] = + n[(Q + 8) | 0] | + (n[(Q + 9) | 0] << 8) | + (n[(Q + 10) | 0] << 16) | + (n[(Q + 11) | 0] << 24)), + (i[(E + 12) >> 2] = a), + (Q = + n[0 | B] | + (n[(B + 1) | 0] << 8) | + (n[(B + 2) | 0] << 16) | + (n[(B + 3) | 0] << 24)), + (B = + n[(B + 4) | 0] | + (n[(B + 5) | 0] << 8) | + (n[(B + 6) | 0] << 16) | + (n[(B + 7) | 0] << 24)), + (i[(E + 104) >> 2] = 0), + (i[(E + 108) >> 2] = 0), + (i[(E + 96) >> 2] = Q), + (i[(E + 100) >> 2] = B) + A: { + if ((!g & (I >>> 0 >= 64)) | g) { + for (;;) { + for ( + mg(A, (E + 96) | 0, E), Q = 8, B = 1; + (B = + (n[0 | (a = (((E + 96) | 0) + Q) | 0)] + + B) | + 0), + (C[0 | a] = B), + (B = (B >>> 8) | 0), + 16 != (0 | (Q = (Q + 1) | 0)); + + ); + if ( + ((A = (A - -64) | 0), + (g = (g - 1) | 0), + !( + (!(g = + (I = (I + -64) | 0) >>> 0 < 4294967232 + ? (g + 1) | 0 + : g) & + (I >>> 0 > 63)) | + g + )) + ) + break + } + if (!(I | g)) break A + } + for ( + Q = 0, mg((E + 32) | 0, (E + 96) | 0, E); + (C[(A + Q) | 0] = + n[(((E + 32) | 0) + Q) | 0]), + (0 | I) != (0 | (Q = (Q + 1) | 0)); + + ); + } + fI((E + 32) | 0, 64), fI(E, 32) + } + return (h = (E + 112) | 0), 0 + }, + function (A, I, g, B, Q, E, a, r) { + ;(A |= 0), + (I |= 0), + (Q |= 0), + (E |= 0), + (a |= 0), + (r |= 0) + var o, + e = 0, + t = 0 + if ( + ((h = o = (h - 112) | 0), (g |= 0) | (B |= 0)) + ) { + for ( + e = + n[(r + 28) | 0] | + (n[(r + 29) | 0] << 8) | + (n[(r + 30) | 0] << 16) | + (n[(r + 31) | 0] << 24), + i[(o + 24) >> 2] = + n[(r + 24) | 0] | + (n[(r + 25) | 0] << 8) | + (n[(r + 26) | 0] << 16) | + (n[(r + 27) | 0] << 24), + i[(o + 28) >> 2] = e, + e = + n[(r + 20) | 0] | + (n[(r + 21) | 0] << 8) | + (n[(r + 22) | 0] << 16) | + (n[(r + 23) | 0] << 24), + i[(o + 16) >> 2] = + n[(r + 16) | 0] | + (n[(r + 17) | 0] << 8) | + (n[(r + 18) | 0] << 16) | + (n[(r + 19) | 0] << 24), + i[(o + 20) >> 2] = e, + e = + n[(r + 4) | 0] | + (n[(r + 5) | 0] << 8) | + (n[(r + 6) | 0] << 16) | + (n[(r + 7) | 0] << 24), + i[o >> 2] = + n[0 | r] | + (n[(r + 1) | 0] << 8) | + (n[(r + 2) | 0] << 16) | + (n[(r + 3) | 0] << 24), + i[(o + 4) >> 2] = e, + e = 8, + t = + n[(r + 12) | 0] | + (n[(r + 13) | 0] << 8) | + (n[(r + 14) | 0] << 16) | + (n[(r + 15) | 0] << 24), + i[(o + 8) >> 2] = + n[(r + 8) | 0] | + (n[(r + 9) | 0] << 8) | + (n[(r + 10) | 0] << 16) | + (n[(r + 11) | 0] << 24), + i[(o + 12) >> 2] = t, + r = + n[(Q + 4) | 0] | + (n[(Q + 5) | 0] << 8) | + (n[(Q + 6) | 0] << 16) | + (n[(Q + 7) | 0] << 24), + i[(o + 96) >> 2] = + n[0 | Q] | + (n[(Q + 1) | 0] << 8) | + (n[(Q + 2) | 0] << 16) | + (n[(Q + 3) | 0] << 24), + i[(o + 100) >> 2] = r; + (C[(((o + 96) | 0) + e) | 0] = E), + (E = ((255 & a) << 24) | (E >>> 8)), + (a = (a >>> 8) | 0), + 16 != (0 | (e = (e + 1) | 0)); + + ); + if ((!B & (g >>> 0 > 63)) | B) + for (;;) { + for ( + e = 0, mg((o + 32) | 0, (o + 96) | 0, o); + (C[(A + e) | 0] = + n[(((o + 32) | 0) + e) | 0] ^ + n[(I + e) | 0]), + (r = 1), + 64 != (0 | (e = (e + 1) | 0)); + + ); + for ( + e = 8; + (Q = + (n[0 | (E = (((o + 96) | 0) + e) | 0)] + + r) | + 0), + (C[0 | E] = Q), + (r = (Q >>> 8) | 0), + 16 != (0 | (e = (e + 1) | 0)); + + ); + if ( + ((I = (I - -64) | 0), + (A = (A - -64) | 0), + (B = (B - 1) | 0), + !( + (!(B = + (g = (g + -64) | 0) >>> 0 < 4294967232 + ? (B + 1) | 0 + : B) & + (g >>> 0 > 63)) | + B + )) + ) + break + } + if (g | B) + for ( + e = 0, mg((o + 32) | 0, (o + 96) | 0, o); + (C[(A + e) | 0] = + n[(((o + 32) | 0) + e) | 0] ^ + n[(I + e) | 0]), + (0 | g) != (0 | (e = (e + 1) | 0)); + + ); + fI((o + 32) | 0, 64), fI(o, 32) + } + return (h = (o + 112) | 0), 0 + }, + function (A, I, g, B, Q) { + var C + return ( + (A |= 0), + (B |= 0), + (h = C = (h + -64) | 0), + (I |= 0) | (g |= 0) && + (aA(C, (Q |= 0)), + UA(C, B, 0), + U(C, (A = EA(A, 0, I)), A, I, g), + fI(C, 64)), + (h = (C - -64) | 0), + 0 + ) + }, + function (A, I, g, B, Q) { + var C + return ( + (A |= 0), + (B |= 0), + (h = C = (h + -64) | 0), + (I |= 0) | (g |= 0) && + (aA(C, (Q |= 0)), + JA(C, B, 0), + U(C, (A = EA(A, 0, I)), A, I, g), + fI(C, 64)), + (h = (C - -64) | 0), + 0 + ) + }, + function (A, I, g, B, Q, C, E, i) { + var n + return ( + (A |= 0), + (I |= 0), + (Q |= 0), + (E |= 0), + (i |= 0), + (h = n = (h - 80) | 0), + (g |= 0) | (B |= 0) && + (xI((n + 8) | 0, (C |= 0)), + xI((n + 12) | 0, E), + aA((n + 16) | 0, i), + UA((n + 16) | 0, Q, (n + 8) | 0), + U((n + 16) | 0, I, A, g, B), + fI((n + 16) | 0, 64)), + (h = (n + 80) | 0), + 0 + ) + }, + function (A, I, g, B, Q, C, E) { + var i + return ( + (A |= 0), + (I |= 0), + (Q |= 0), + (E |= 0), + (h = i = (h - 80) | 0), + (g |= 0) | (B |= 0) && + (xI((i + 12) | 0, (C |= 0)), + aA((i + 16) | 0, E), + JA((i + 16) | 0, Q, (i + 12) | 0), + U((i + 16) | 0, I, A, g, B), + fI((i + 16) | 0, 64)), + (h = (i + 80) | 0), + 0 + ) + } + ]).grow = function (A) { + var I = this.length + return (this.length = this.length + A), I + }), + (Xg.set = function (A, I) { + this[A] = I + }), + (Xg.get = function (A) { + return this[A] + }), + Xg) + function Wg() { + return (B.byteLength / 65536) | 0 + } + return { + h: Vg, + i: function () {}, + j: function (A, I, g, B, Q, C, E, i, n, a, r, o) { + return ( + 0 | + PA( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0), + (i |= 0), + (n |= 0), + (r |= 0), + (o |= 0) + ) + ) + }, + k: function (A, I, g, B, Q, C, E, n, a, r, o) { + return ( + 0 | + (function (A, I, g, B, Q, C, E, n, a, r) { + if (!Q & (B >>> 0 < 4294967280)) + return ( + PA(A, (A + B) | 0, 0, g, B, Q, C, E, n, a, r), + I && + ((Q = + (A = (B + 16) | 0) >>> 0 < 16 + ? (Q + 1) | 0 + : Q), + (i[I >> 2] = A), + (i[(I + 4) >> 2] = Q)), + 0 + ) + OI(), e() + })( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0), + (n |= 0), + (r |= 0), + (o |= 0) + ) + ) + }, + l: function (A, I, g, B, Q, C, E, i, n, a, r, o) { + return ( + 0 | + _A( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0), + (i |= 0), + (n |= 0), + (r |= 0), + (o |= 0) + ) + ) + }, + m: function (A, I, g, B, Q, C, E, n, a, r, o) { + return ( + 0 | + (function (A, I, g, B, Q, C, E, n, a, r) { + if (!Q & (B >>> 0 < 4294967280)) + return ( + _A(A, (A + B) | 0, 0, g, B, Q, C, E, n, a, r), + I && + ((Q = + (A = (B + 16) | 0) >>> 0 < 16 + ? (Q + 1) | 0 + : Q), + (i[I >> 2] = A), + (i[(I + 4) >> 2] = Q)), + 0 + ) + OI(), e() + })( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0), + (n |= 0), + (r |= 0), + (o |= 0) + ) + ) + }, + n: function (A, I, g, B, Q, C, E, i, n, a, r) { + return ( + 0 | + HA( + (A |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0), + (i |= 0), + (n |= 0), + (a |= 0), + (r |= 0) + ) + ) + }, + o: function (A, I, g, B, Q, C, E, n, a, r, o) { + return ( + 0 | + (function (A, I, g, B, Q, C, E, n, a, r) { + var o = 0 + return ( + (o = -1), + (!Q & (B >>> 0 >= 16)) | Q && + (o = HA( + A, + g, + (B - 16) | 0, + (Q - (B >>> 0 < 16)) | 0, + (((g + B) | 0) - 16) | 0, + C, + E, + n, + a, + r + )), + I && + ((i[I >> 2] = o ? 0 : (B - 16) | 0), + (i[(I + 4) >> 2] = o + ? 0 + : (Q - (B >>> 0 < 16)) | 0)), + o + ) + })( + (A |= 0), + (I |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0), + (n |= 0), + (a |= 0), + (r |= 0), + (o |= 0) + ) + ) + }, + p: function (A, I, g, B, Q, C, E, i, n, a, r) { + return ( + 0 | + GA( + (A |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0), + (i |= 0), + (n |= 0), + (a |= 0), + (r |= 0) + ) + ) + }, + q: function (A, I, g, B, Q, C, E, n, a, r, o) { + return ( + 0 | + (function (A, I, g, B, Q, C, E, n, a, r) { + var o = 0 + return ( + (o = -1), + (!Q & (B >>> 0 >= 16)) | Q && + (o = GA( + A, + g, + (B - 16) | 0, + (Q - (B >>> 0 < 16)) | 0, + (((g + B) | 0) - 16) | 0, + C, + E, + n, + a, + r + )), + I && + ((i[I >> 2] = o ? 0 : (B - 16) | 0), + (i[(I + 4) >> 2] = o + ? 0 + : (Q - (B >>> 0 < 16)) | 0)), + o + ) + })( + (A |= 0), + (I |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0), + (n |= 0), + (a |= 0), + (r |= 0), + (o |= 0) + ) + ) + }, + r: Ng, + s: function () { + return 12 + }, + t: Lg, + u: Sg, + v: dg, + w: bg, + x: Ng, + y: xg, + z: Lg, + A: Sg, + B: dg, + C: bg, + D: function (A, I, g, B, Q, C, E, i, n, a, r, o) { + return ( + 0 | + NA( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0), + (i |= 0), + (n |= 0), + (r |= 0), + (o |= 0) + ) + ) + }, + E: function (A, I, g, B, Q, C, E, n, a, r, o) { + return ( + 0 | + (function (A, I, g, B, Q, C, E, n, a, r) { + if (!Q & (B >>> 0 < 4294967280)) + return ( + NA(A, (A + B) | 0, 0, g, B, Q, C, E, n, a, r), + I && + ((Q = + (A = (B + 16) | 0) >>> 0 < 16 + ? (Q + 1) | 0 + : Q), + (i[I >> 2] = A), + (i[(I + 4) >> 2] = Q)), + 0 + ) + OI(), e() + })( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0), + (n |= 0), + (r |= 0), + (o |= 0) + ) + ) + }, + F: function (A, I, g, B, Q, C, E, i, n, a, r) { + return ( + 0 | + MA( + (A |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0), + (i |= 0), + (n |= 0), + (a |= 0), + (r |= 0) + ) + ) + }, + G: function (A, I, g, B, Q, C, E, n, a, r, o) { + return ( + 0 | + (function (A, I, g, B, Q, C, E, n, a, r) { + var o = 0 + return ( + (o = -1), + (!Q & (B >>> 0 >= 16)) | Q && + (o = MA( + A, + g, + (B - 16) | 0, + (Q - (B >>> 0 < 16)) | 0, + (((g + B) | 0) - 16) | 0, + C, + E, + n, + a, + r + )), + I && + ((i[I >> 2] = o ? 0 : (B - 16) | 0), + (i[(I + 4) >> 2] = o + ? 0 + : (Q - (B >>> 0 < 16)) | 0)), + o + ) + })( + (A |= 0), + (I |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0), + (n |= 0), + (a |= 0), + (r |= 0), + (o |= 0) + ) + ) + }, + H: Ng, + I: Mg, + J: Lg, + K: Sg, + L: dg, + M: bg, + N: Ng, + O: Ng, + P: function (A, I, g, B, Q) { + return ( + 0 | + bI((A |= 0), (I |= 0), (g |= 0), (B |= 0), (Q |= 0)) + ) + }, + Q: function (A, I, g, B, Q) { + return ( + 0 | + (function (A, I, g, B, Q) { + var C + return ( + (h = C = (h - 32) | 0), + bI(C, I, g, B, Q), + (I = Gg(A, C)), + (g = zA(C, A, 32)), + (h = (C + 32) | 0), + g | ((0 | A) == (0 | C) ? -1 : I) + ) + })((A |= 0), (I |= 0), (g |= 0), (B |= 0), (Q |= 0)) + ) + }, + R: bg, + S: Ng, + T: Ng, + U: Ng, + V: Ng, + W: Mg, + X: Sg, + Y: dg, + Z: function (A, I, g) { + return ( + 0 | + (function (A, I, g) { + var B, + Q = 0 + return ( + (h = B = (h + -64) | 0), + mI(B, g, 32, 0), + (g = i[(B + 28) >> 2]), + (Q = i[(B + 24) >> 2]), + (C[(I + 24) | 0] = Q), + (C[(I + 25) | 0] = Q >>> 8), + (C[(I + 26) | 0] = Q >>> 16), + (C[(I + 27) | 0] = Q >>> 24), + (C[(I + 28) | 0] = g), + (C[(I + 29) | 0] = g >>> 8), + (C[(I + 30) | 0] = g >>> 16), + (C[(I + 31) | 0] = g >>> 24), + (g = i[(B + 20) >> 2]), + (Q = i[(B + 16) >> 2]), + (C[(I + 16) | 0] = Q), + (C[(I + 17) | 0] = Q >>> 8), + (C[(I + 18) | 0] = Q >>> 16), + (C[(I + 19) | 0] = Q >>> 24), + (C[(I + 20) | 0] = g), + (C[(I + 21) | 0] = g >>> 8), + (C[(I + 22) | 0] = g >>> 16), + (C[(I + 23) | 0] = g >>> 24), + (g = i[(B + 12) >> 2]), + (Q = i[(B + 8) >> 2]), + (C[(I + 8) | 0] = Q), + (C[(I + 9) | 0] = Q >>> 8), + (C[(I + 10) | 0] = Q >>> 16), + (C[(I + 11) | 0] = Q >>> 24), + (C[(I + 12) | 0] = g), + (C[(I + 13) | 0] = g >>> 8), + (C[(I + 14) | 0] = g >>> 16), + (C[(I + 15) | 0] = g >>> 24), + (g = i[(B + 4) >> 2]), + (Q = i[B >> 2]), + (C[0 | I] = Q), + (C[(I + 1) | 0] = Q >>> 8), + (C[(I + 2) | 0] = Q >>> 16), + (C[(I + 3) | 0] = Q >>> 24), + (C[(I + 4) | 0] = g), + (C[(I + 5) | 0] = g >>> 8), + (C[(I + 6) | 0] = g >>> 16), + (C[(I + 7) | 0] = g >>> 24), + fI(B, 64), + (A = cg(A, I)), + (h = (B - -64) | 0), + A + ) + })((A |= 0), (I |= 0), (g |= 0)) + ) + }, + _: Ig, + $: jI, + aa: function (A, I, g, B, Q, C, E) { + return ( + 0 | + Qg( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0) + ) + ) + }, + ba: function (A, I, g, B, Q, C, E, i) { + return ( + 0 | + wI( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0), + (i |= 0) + ) + ) + }, + ca: function (A, I, g, B, Q, C) { + return ( + 0 | + (function (A, I, g, B, Q, C) { + return ( + (!B & (g >>> 0 >= 4294967280)) | B && (OI(), e()), + Qg((A + 16) | 0, A, I, g, B, Q, C) + ) + })( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0) + ) + ) + }, + da: function (A, I, g, B, Q, C, E) { + return ( + 0 | + kI( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0) + ) + ) + }, + ea: function (A, I, g, B, Q, C, E) { + return ( + 0 | + Cg( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0) + ) + ) + }, + fa: function (A, I, g, B, Q, C, E, i) { + return ( + 0 | + hI( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0), + (i |= 0) + ) + ) + }, + ga: function (A, I, g, B, Q, C) { + return ( + 0 | + (function (A, I, g, B, Q, C) { + return (!B & (g >>> 0 >= 16)) | B + ? Cg( + A, + (I + 16) | 0, + I, + (g - 16) | 0, + (B - (g >>> 0 < 16)) | 0, + Q, + C + ) + : -1 + })( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0) + ) + ) + }, + ha: function (A, I, g, B, Q, C, E) { + return ( + 0 | + uI( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0) + ) + ) + }, + ia: function (A, I, g, B, Q) { + return ( + 0 | + (function (A, I, g, B, Q) { + var E, + n = 0 + return ( + (h = E = (h - 96) | 0), + (n = -1), + Ig((E + 32) | 0, E) || + (lI((E - -64) | 0, (E + 32) | 0, Q), + (n = kI( + (A + 32) | 0, + I, + g, + B, + (E - -64) | 0, + Q, + E + )), + (I = i[(E + 60) >> 2]), + (g = i[(E + 56) >> 2]), + (C[(A + 24) | 0] = g), + (C[(A + 25) | 0] = g >>> 8), + (C[(A + 26) | 0] = g >>> 16), + (C[(A + 27) | 0] = g >>> 24), + (C[(A + 28) | 0] = I), + (C[(A + 29) | 0] = I >>> 8), + (C[(A + 30) | 0] = I >>> 16), + (C[(A + 31) | 0] = I >>> 24), + (I = i[(E + 52) >> 2]), + (g = i[(E + 48) >> 2]), + (C[(A + 16) | 0] = g), + (C[(A + 17) | 0] = g >>> 8), + (C[(A + 18) | 0] = g >>> 16), + (C[(A + 19) | 0] = g >>> 24), + (C[(A + 20) | 0] = I), + (C[(A + 21) | 0] = I >>> 8), + (C[(A + 22) | 0] = I >>> 16), + (C[(A + 23) | 0] = I >>> 24), + (I = i[(E + 44) >> 2]), + (g = i[(E + 40) >> 2]), + (C[(A + 8) | 0] = g), + (C[(A + 9) | 0] = g >>> 8), + (C[(A + 10) | 0] = g >>> 16), + (C[(A + 11) | 0] = g >>> 24), + (C[(A + 12) | 0] = I), + (C[(A + 13) | 0] = I >>> 8), + (C[(A + 14) | 0] = I >>> 16), + (C[(A + 15) | 0] = I >>> 24), + (I = i[(E + 36) >> 2]), + (g = i[(E + 32) >> 2]), + (C[0 | A] = g), + (C[(A + 1) | 0] = g >>> 8), + (C[(A + 2) | 0] = g >>> 16), + (C[(A + 3) | 0] = g >>> 24), + (C[(A + 4) | 0] = I), + (C[(A + 5) | 0] = I >>> 8), + (C[(A + 6) | 0] = I >>> 16), + (C[(A + 7) | 0] = I >>> 24), + fI(E, 32), + fI((E + 32) | 0, 32), + fI((E - -64) | 0, 24)), + (h = (E + 96) | 0), + n + ) + })((A |= 0), (I |= 0), (g |= 0), (B |= 0), (Q |= 0)) + ) + }, + ja: function (A, I, g, B, Q, C) { + return ( + 0 | + (function (A, I, g, B, Q, C) { + var E, + i = 0 + return ( + (h = E = (h - 32) | 0), + (i = -1), + (!B & (g >>> 0 >= 48)) | B && + (lI(E, I, Q), + (i = uI( + A, + (I + 32) | 0, + (g - 32) | 0, + (B - (g >>> 0 < 32)) | 0, + E, + I, + C + ))), + (h = (E + 32) | 0), + i + ) + })( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0) + ) + ) + }, + ka: function () { + return 48 + }, + la: Sg, + ma: Pg, + na: Ng, + oa: Sg, + pa: Pg, + qa: Ng, + ra: function () { + return 384 + }, + sa: function (A, I, g, B, Q, C, E) { + return ( + 0 | + Eg( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0) + ) + ) + }, + ta: qI, + ua: function (A, I, g, B) { + return 0 | sg((A |= 0), (I |= 0), (g |= 0), (B |= 0)) + }, + va: TI, + wa: bg, + xa: Pg, + ya: function (A, I, g, B) { + return 0 | mI((A |= 0), (I |= 0), (g |= 0), (B |= 0)) + }, + za: Sg, + Aa: Pg, + Ba: xg, + Ca: Ng, + Da: function (A, I, g, B, Q, a) { + return ( + 0 | + (function (A, I, g, B, Q, a) { + var r, o + return ( + (h = r = (h - 32) | 0), + (o = + n[0 | Q] | + (n[(Q + 1) | 0] << 8) | + (n[(Q + 2) | 0] << 16) | + (n[(Q + 3) | 0] << 24)), + (Q = + n[(Q + 4) | 0] | + (n[(Q + 5) | 0] << 8) | + (n[(Q + 6) | 0] << 16) | + (n[(Q + 7) | 0] << 24)), + (i[(r + 24) >> 2] = 0), + (i[(r + 28) >> 2] = 0), + (i[(r + 16) >> 2] = o), + (i[(r + 20) >> 2] = Q), + tI(r, g, B), + (i[(r + 8) >> 2] = 0), + (i[(r + 12) >> 2] = 0), + (I - 16) >>> 0 >= 49 + ? ((i[8960] = 28), (A = -1)) + : ((g = (r + 16) | 0), + (A = + (I - 1) >>> 0 > 63 + ? -1 + : (function (A, I, g, B, Q) { + var a, + r = 0 + if ( + ((a = r = h), + (h = r = (r - 384) & -64), + !( + !I | + !A | + (((g - 1) & 255) >>> 0 >= 64) + )) + ) + return ( + (function (A, I, g, B, Q) { + var a + if ( + ((h = a = (h - 192) | 0), + !( + !g | + (((I - 1) & 255) >>> 0 >= + 64) + )) + ) + return ( + (E[(a + 130) >> 1] = 257), + (C[(a + 129) | 0] = 32), + (C[(a + 128) | 0] = I), + WI((a + 128) | 4), + tI((a + 128) | 8, 0, 0), + (i[(a + 152) >> 2] = 0), + (i[(a + 156) >> 2] = 0), + (i[(a + 144) >> 2] = 0), + (i[(a + 148) >> 2] = 0), + B + ? (function (A, I) { + var g, + B = 0 + ;(B = + n[(I + 4) | 0] | + (n[(I + 5) | 0] << + 8) | + (n[(I + 6) | 0] << + 16) | + (n[(I + 7) | 0] << + 24)), + (g = + n[0 | I] | + (n[(I + 1) | 0] << + 8) | + (n[(I + 2) | 0] << + 16) | + (n[(I + 3) | 0] << + 24)), + (C[(A + 32) | 0] = + g), + (C[(A + 33) | 0] = + g >>> 8), + (C[(A + 34) | 0] = + g >>> 16), + (C[(A + 35) | 0] = + g >>> 24), + (C[(A + 36) | 0] = + B), + (C[(A + 37) | 0] = + B >>> 8), + (C[(A + 38) | 0] = + B >>> 16), + (C[(A + 39) | 0] = + B >>> 24), + (B = + n[(I + 12) | 0] | + (n[ + (I + 13) | 0 + ] << + 8) | + (n[ + (I + 14) | 0 + ] << + 16) | + (n[ + (I + 15) | 0 + ] << + 24)), + (I = + n[(I + 8) | 0] | + (n[(I + 9) | 0] << + 8) | + (n[ + (I + 10) | 0 + ] << + 16) | + (n[ + (I + 11) | 0 + ] << + 24)), + (C[(A + 40) | 0] = + I), + (C[(A + 41) | 0] = + I >>> 8), + (C[(A + 42) | 0] = + I >>> 16), + (C[(A + 43) | 0] = + I >>> 24), + (C[(A + 44) | 0] = + B), + (C[(A + 45) | 0] = + B >>> 8), + (C[(A + 46) | 0] = + B >>> 16), + (C[(A + 47) | 0] = + B >>> 24) + })((a + 128) | 0, B) + : ((i[ + (a + 168) >> 2 + ] = 0), + (i[(a + 172) >> 2] = 0), + (i[(a + 160) >> 2] = 0), + (i[ + (a + 164) >> 2 + ] = 0)), + Q + ? (function (A, I) { + var g, + B = 0 + ;(B = + n[(I + 4) | 0] | + (n[(I + 5) | 0] << + 8) | + (n[(I + 6) | 0] << + 16) | + (n[(I + 7) | 0] << + 24)), + (g = + n[0 | I] | + (n[(I + 1) | 0] << + 8) | + (n[(I + 2) | 0] << + 16) | + (n[(I + 3) | 0] << + 24)), + (C[(A + 48) | 0] = + g), + (C[(A + 49) | 0] = + g >>> 8), + (C[(A + 50) | 0] = + g >>> 16), + (C[(A + 51) | 0] = + g >>> 24), + (C[(A + 52) | 0] = + B), + (C[(A + 53) | 0] = + B >>> 8), + (C[(A + 54) | 0] = + B >>> 16), + (C[(A + 55) | 0] = + B >>> 24), + (B = + n[(I + 12) | 0] | + (n[ + (I + 13) | 0 + ] << + 8) | + (n[ + (I + 14) | 0 + ] << + 16) | + (n[ + (I + 15) | 0 + ] << + 24)), + (I = + n[(I + 8) | 0] | + (n[(I + 9) | 0] << + 8) | + (n[ + (I + 10) | 0 + ] << + 16) | + (n[ + (I + 11) | 0 + ] << + 24)), + (C[(A + 56) | 0] = + I), + (C[(A + 57) | 0] = + I >>> 8), + (C[(A + 58) | 0] = + I >>> 16), + (C[(A + 59) | 0] = + I >>> 24), + (C[(A + 60) | 0] = + B), + (C[(A + 61) | 0] = + B >>> 8), + (C[(A + 62) | 0] = + B >>> 16), + (C[(A + 63) | 0] = + B >>> 24) + })((a + 128) | 0, Q) + : ((i[ + (a + 184) >> 2 + ] = 0), + (i[(a + 188) >> 2] = 0), + (i[(a + 176) >> 2] = 0), + (i[ + (a + 180) >> 2 + ] = 0)), + hA(A, (a + 128) | 0), + EA((a + 32) | 0, 0, 96), + QA( + (I = A), + (A = X(a, g, 32)), + 128, + 0 + ), + fI(A, 128), + void (h = (A + 192) | 0) + ) + OI(), e() + })(r, g, I, B, Q), + QA(r, 0, 0, 0), + M(r, A, g), + (h = a), + 0 + ) + OI(), e() + })(A, a, 255 & I, r, g))), + (h = (r + 32) | 0), + A + ) + })( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (a |= 0) + ) + ) + }, + Ea: bg, + Fa: function (A, I, g) { + return ( + (A |= 0), + Eg((I |= 0), 32, (g |= 0), 32, 0, 0, 0), + 0 | ag(A, I) + ) + }, + Ga: function (A, I) { + return (A |= 0), cI((I |= 0), 32), 0 | ag(A, I) + }, + Ha: function (A, I, g, B, Q) { + ;(I |= 0), (g |= 0), (Q |= 0) + var E, + i, + a = 0 + if ( + ((i = a = h), + (h = a = (a - 512) & -64), + (E = (A |= 0) || I)) + ) { + if (((A = -1), !ZI((a + 96) | 0, (B |= 0), Q))) { + for ( + I = I || E, + A = 0, + qI((a + 128) | 0, 0, 0, 64), + sg((a + 128) | 0, (a + 96) | 0, 32, 0), + fI((a + 96) | 0, 32), + sg((a + 128) | 0, g, 32, 0), + sg((a + 128) | 0, Q, 32, 0), + TI((a + 128) | 0, (a + 32) | 0, 64), + fI((a + 128) | 0, 384); + (g = (((a + 32) | 0) + A) | 0), + (C[(A + E) | 0] = n[0 | g]), + (C[(A + I) | 0] = n[(g + 32) | 0]), + 32 != (0 | (A = (A + 1) | 0)); + + ); + fI((a + 32) | 0, 64), (A = 0) + } + return (h = i), 0 | A + } + OI(), e() + }, + Ia: function (A, I, g, B, Q) { + ;(I |= 0), (g |= 0), (Q |= 0) + var E, + i, + a = 0 + if ( + ((i = a = h), + (h = a = (a - 512) & -64), + (E = (A |= 0) || I)) + ) { + if (((A = -1), !ZI((a + 96) | 0, (B |= 0), Q))) { + for ( + I = I || E, + A = 0, + qI((a + 128) | 0, 0, 0, 64), + sg((a + 128) | 0, (a + 96) | 0, 32, 0), + fI((a + 96) | 0, 32), + sg((a + 128) | 0, Q, 32, 0), + sg((a + 128) | 0, g, 32, 0), + TI((a + 128) | 0, (a + 32) | 0, 64), + fI((a + 128) | 0, 384); + (g = (((a + 32) | 0) + A) | 0), + (C[(A + I) | 0] = n[0 | g]), + (C[(A + E) | 0] = n[(g + 32) | 0]), + 32 != (0 | (A = (A + 1) | 0)); + + ); + fI((a + 32) | 0, 64), (A = 0) + } + return (h = i), 0 | A + } + OI(), e() + }, + Ja: Ng, + Ka: Ng, + La: Ng, + Ma: Ng, + Na: Rg, + Oa: Jg, + Pa: Jg, + Qa: Sg, + Ra: Kg, + Sa: Lg, + Ta: Kg, + Ua: Sg, + Va: function () { + return 128 + }, + Wa: function () { + return 35681 + }, + Xa: Rg, + Ya: Kg, + Za: function () { + return 8192 + }, + _a: function () { + return -2147483648 + }, + $a: Jg, + ab: function () { + return 67108864 + }, + bb: qg, + cb: function () { + return 268435456 + }, + db: function () { + return 4 + }, + eb: function () { + return 1073741824 + }, + fb: function (A, I, g, B, Q, C, E, n, a, r, o) { + return ( + 0 | + (function (A, I, g, B, Q, C, E, n, a, r, o) { + switch ((o - 1) | 0) { + case 0: + return (function ( + A, + I, + g, + B, + Q, + C, + E, + n, + a, + r + ) { + var o, e + ;(e = I), (o = EA(A, 0, I)), (A = 22) + A: if (!g) { + if (!(!g & (I >>> 0 < 16))) { + if (C | a | (r >>> 0 > 2147483648)) + break A + if ( + !( + (!a & (n >>> 0 < 3)) | + (r >>> 0 < 8192) + ) + ) { + if (((A = 28), (0 | B) == (0 | o))) + break A + return pA( + n, + (r >>> 10) | 0, + 1, + B, + Q, + E, + 16, + o, + e, + 0, + 0, + 1 + ) + ? -1 + : 0 + } + } + A = 28 + } + return (i[8960] = A), -1 + })(A, I, g, B, Q, C, E, n, a, r) + case 1: + return (function ( + A, + I, + g, + B, + Q, + C, + E, + n, + a, + r + ) { + var o, e + ;(e = I), (o = EA(A, 0, I)), (A = 22) + A: if (!g) { + if (!(!g & (I >>> 0 < 16))) { + if (C | a | (r >>> 0 > 2147483648)) + break A + if (!(!(n | a) | (r >>> 0 < 8192))) { + if (((A = 28), (0 | B) == (0 | o))) + break A + return pA( + n, + (r >>> 10) | 0, + 1, + B, + Q, + E, + 16, + o, + e, + 0, + 0, + 2 + ) + ? -1 + : 0 + } + } + A = 28 + } + return (i[8960] = A), -1 + })(A, I, g, B, Q, C, E, n, a, r) + } + return (i[8960] = 28), -1 + })( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0), + (n |= 0), + (a |= 0), + (r |= 0), + (o |= 0) + ) + ) + }, + gb: function (A, I, g, B, Q, C, E) { + return ( + 0 | + xA( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0) + ) + ) + }, + hb: function (A, I, g, B, Q, C, E, n) { + return ( + 0 | + (function (A, I, g, B, Q, C, E, n) { + switch ((n - 1) | 0) { + case 1: + return xA(A, I, g, B, Q, C, E) + default: + OI(), e() + case 0: + } + return (function (A, I, g, B, Q, C, E) { + var n + return ( + (h = n = (h - 16) | 0), + (A = EA(A, 0, 128)), + E >>> 0 < 2147483649 && !(B | C) + ? E >>> 0 > 8191 && + (!C & (Q >>> 0 >= 3)) | (0 != (0 | C)) + ? (cI(n, 16), + (A = pA( + Q, + (E >>> 10) | 0, + 1, + I, + g, + n, + 16, + 0, + 32, + A, + 128, + 1 + ) + ? -1 + : 0)) + : ((i[8960] = 28), (A = -1)) + : ((i[8960] = 22), (A = -1)), + (h = (n + 16) | 0), + A + ) + })(A, I, g, B, Q, C, E) + })( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0), + (E |= 0), + (n |= 0) + ) + ) + }, + ib: function (A, I, g, B) { + return ( + 0 | + (function (A, I, g, B) { + return XA(A, 35681, 10) + ? XA(A, 35692, 9) + ? ((i[8960] = 28), -1) + : (function (A, I, g, B) { + A: { + if ((1 == (0 | B)) | (B >>> 0 > 1)) + i[8960] = 22 + else { + if (!(A = fA(A, I, g, 1))) break A + ;-35 == (0 | A) && (i[8960] = 28) + } + A = -1 + } + return A + })(A, I, g, B) + : (function (A, I, g, B) { + A: { + if ((1 == (0 | B)) | (B >>> 0 > 1)) + i[8960] = 22 + else { + if (!(A = fA(A, I, g, 2))) break A + ;-35 == (0 | A) && (i[8960] = 28) + } + A = -1 + } + return A + })(A, I, g, B) + })((A |= 0), (I |= 0), (g |= 0), (B |= 0)) + ) + }, + jb: function (A, I, g, B) { + return ( + 0 | + (function (A, I, g, B) { + return XA(A, 35681, 10) + ? XA(A, 35692, 9) + ? ((i[8960] = 28), -1) + : DA(A, I, g, B, 1) + : DA(A, I, g, B, 2) + })((A |= 0), (I |= 0), (g |= 0), (B |= 0)) + ) + }, + kb: ag, + lb: ZI, + mb: Ng, + nb: Ng, + ob: Ng, + pb: Mg, + qb: Sg, + rb: dg, + sb: bg, + tb: Qg, + ub: function (A, I, g, B, Q, C) { + return ( + 0 | + (function (A, I, g, B, Q, C) { + return ( + (!B & (g >>> 0 >= 4294967280)) | B && (OI(), e()), + nA((A + 16) | 0, A, I, g, B, Q, C), + 0 + ) + })( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0) + ) + ) + }, + vb: Cg, + wb: function (A, I, g, B, Q, C) { + return ( + 0 | + (function (A, I, g, B, Q, C) { + return (!B & (g >>> 0 >= 16)) | B + ? rA( + A, + (I + 16) | 0, + I, + (g - 16) | 0, + (B - (g >>> 0 < 16)) | 0, + Q, + C + ) + : -1 + })( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0) + ) + ) + }, + xb: bg, + yb: function (A, I, g) { + return ( + (A |= 0), + (g |= 0), + cI((I |= 0), 24), + x(A, I, g), + XI(A), + (g = + n[(I + 16) | 0] | + (n[(I + 17) | 0] << 8) | + (n[(I + 18) | 0] << 16) | + (n[(I + 19) | 0] << 24)), + (I = + n[(I + 20) | 0] | + (n[(I + 21) | 0] << 8) | + (n[(I + 22) | 0] << 16) | + (n[(I + 23) | 0] << 24)), + (C[(A + 44) | 0] = 0), + (C[(A + 45) | 0] = 0), + (C[(A + 46) | 0] = 0), + (C[(A + 47) | 0] = 0), + (C[(A + 48) | 0] = 0), + (C[(A + 49) | 0] = 0), + (C[(A + 50) | 0] = 0), + (C[(A + 51) | 0] = 0), + (C[(A + 36) | 0] = g), + (C[(A + 37) | 0] = g >>> 8), + (C[(A + 38) | 0] = g >>> 16), + (C[(A + 39) | 0] = g >>> 24), + (C[(A + 40) | 0] = I), + (C[(A + 41) | 0] = I >>> 8), + (C[(A + 42) | 0] = I >>> 16), + (C[(A + 43) | 0] = I >>> 24), + 0 + ) + }, + zb: function (A, I, g) { + return ( + x((A |= 0), (I |= 0), (g |= 0)), + XI(A), + (g = + n[(I + 16) | 0] | + (n[(I + 17) | 0] << 8) | + (n[(I + 18) | 0] << 16) | + (n[(I + 19) | 0] << 24)), + (I = + n[(I + 20) | 0] | + (n[(I + 21) | 0] << 8) | + (n[(I + 22) | 0] << 16) | + (n[(I + 23) | 0] << 24)), + (C[(A + 44) | 0] = 0), + (C[(A + 45) | 0] = 0), + (C[(A + 46) | 0] = 0), + (C[(A + 47) | 0] = 0), + (C[(A + 48) | 0] = 0), + (C[(A + 49) | 0] = 0), + (C[(A + 50) | 0] = 0), + (C[(A + 51) | 0] = 0), + (C[(A + 36) | 0] = g), + (C[(A + 37) | 0] = g >>> 8), + (C[(A + 38) | 0] = g >>> 16), + (C[(A + 39) | 0] = g >>> 24), + (C[(A + 40) | 0] = I), + (C[(A + 41) | 0] = I >>> 8), + (C[(A + 42) | 0] = I >>> 16), + (C[(A + 43) | 0] = I >>> 24), + 0 + ) + }, + Ab: L, + Bb: function (A, I, g, B, Q, E, a, r, o, t) { + return ( + 0 | + (function (A, I, g, B, Q, E, a, r, o, t) { + var f, + c = 0 + if ( + ((h = f = (h - 336) | 0), + g && ((i[g >> 2] = 0), (i[(g + 4) >> 2] = 0)), + !E & (Q >>> 0 < 4294967279)) + ) + return ( + _g((f + 16) | 0, 64, (c = (A + 32) | 0), A), + lg((f + 80) | 0, (f + 16) | 0), + fI((f + 16) | 0, 64), + yg((f + 80) | 0, a, r, o), + yg((f + 80) | 0, 35712, (0 - r) & 15, 0), + EA((f + 16) | 0, 0, 64), + (C[(f + 16) | 0] = t), + BI((f + 16) | 0, (f + 16) | 0, 64, 0, c, 1, A), + yg((f + 80) | 0, (f + 16) | 0, 64, 0), + (C[0 | I] = n[(f + 16) | 0]), + BI((a = (I + 1) | 0), B, Q, E, c, 2, A), + yg((f + 80) | 0, a, Q, E), + yg((f + 80) | 0, 35712, 15 & Q, 0), + tI((f + 8) | 0, r, o), + yg((f + 80) | 0, (f + 8) | 0, 8, 0), + tI( + (f + 8) | 0, + (Q - -64) | 0, + (E - (((Q >>> 0 < 4294967232) - 1) | 0)) | 0 + ), + yg((f + 80) | 0, (f + 8) | 0, 8, 0), + Fg((f + 80) | 0, (I = (Q + a) | 0)), + fI((f + 80) | 0, 256), + pI((A + 36) | 0, I), + sI(c), + (2 & t || aI(c, 4)) && L(A), + g && + ((E = + (A = (Q + 17) | 0) >>> 0 < 17 + ? (E + 1) | 0 + : E), + (i[g >> 2] = A), + (i[(g + 4) >> 2] = E)), + (h = (f + 336) | 0), + 0 + ) + OI(), e() + })( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (E |= 0), + (a |= 0), + (r |= 0), + (o |= 0), + (t |= 0) + ) + ) + }, + Cb: function (A, I, g, B, Q, E, a, r, o, t) { + return ( + 0 | + (function (A, I, g, B, Q, E, a, r, o, t) { + var f, + c = 0, + y = 0, + s = 0, + w = 0, + D = 0 + ;(h = f = (h - 352) | 0), + g && ((i[g >> 2] = 0), (i[(g + 4) >> 2] = 0)), + B && (C[0 | B] = 255), + (w = -1) + A: { + if (!(!a & (E >>> 0 < 17))) { + if ( + (!(c = (a - (E >>> 0 < 17)) | 0) & + ((y = (E - 17) | 0) >>> 0 >= 4294967279)) | + c + ) + break A + _g((f + 32) | 0, 64, (s = (A + 32) | 0), A), + lg((f + 96) | 0, (f + 32) | 0), + fI((f + 32) | 0, 64), + yg((f + 96) | 0, r, o, t), + yg((f + 96) | 0, 35712, (0 - o) & 15, 0), + EA((f + 32) | 0, 0, 64), + (C[(f + 32) | 0] = n[0 | Q]), + BI( + (f + 32) | 0, + (f + 32) | 0, + 64, + 0, + s, + 1, + A + ), + (D = n[(f + 32) | 0]), + (C[(f + 32) | 0] = n[0 | Q]), + yg((f + 96) | 0, (f + 32) | 0, 64, 0), + yg((f + 96) | 0, (r = (Q + 1) | 0), y, c), + yg((f + 96) | 0, 35712, (E - 1) & 15, 0), + tI((f + 24) | 0, o, t), + yg((f + 96) | 0, (f + 24) | 0, 8, 0), + tI( + (f + 24) | 0, + (Q = (E + 47) | 0), + (a = Q >>> 0 < 47 ? (a + 1) | 0 : a) + ), + yg((f + 96) | 0, (f + 24) | 0, 8, 0), + Fg((f + 96) | 0, f), + fI((f + 96) | 0, 256), + zA(f, (r + y) | 0, 16) + ? fI(f, 16) + : (BI(I, r, y, c, s, 2, A), + pI((A + 36) | 0, f), + sI(s), + (2 & D || aI(s, 4)) && L(A), + g && + ((i[g >> 2] = y), + (i[(g + 4) >> 2] = c)), + (w = 0), + B && (C[0 | B] = D)) + } + return (h = (f + 352) | 0), w + } + OI(), e() + })( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (E |= 0), + (a |= 0), + (r |= 0), + (o |= 0), + (t |= 0) + ) + ) + }, + Db: function () { + return 52 + }, + Eb: function () { + return 17 + }, + Fb: Mg, + Gb: Ng, + Hb: function () { + return -18 + }, + Ib: Lg, + Jb: Rg, + Kb: Jg, + Lb: qg, + Mb: xg, + Nb: Sg, + Ob: function (A, I, g, B, Q) { + return ( + 0 | + (function (A, I, g, B) { + var Q = 0, + C = 0, + E = 0, + i = 0, + a = 0, + r = 0, + o = 0, + e = 0, + t = 0, + f = 0, + c = 0, + y = 0, + s = 0, + w = 0, + h = 0, + D = 0 + if ( + ((Q = + 1886610805 ^ + (E = + n[0 | B] | + (n[(B + 1) | 0] << 8) | + (n[(B + 2) | 0] << 16) | + (n[(B + 3) | 0] << 24))), + (i = + 1936682341 ^ + (C = + n[(B + 4) | 0] | + (n[(B + 5) | 0] << 8) | + (n[(B + 6) | 0] << 16) | + (n[(B + 7) | 0] << 24))), + (a = 1852142177 ^ E), + (o = 1819895653 ^ C), + (E = + 1852075885 ^ + (t = + n[(B + 8) | 0] | + (n[(B + 9) | 0] << 8) | + (n[(B + 10) | 0] << 16) | + (n[(B + 11) | 0] << 24))), + (C = + 1685025377 ^ + (B = + n[(B + 12) | 0] | + (n[(B + 13) | 0] << 8) | + (n[(B + 14) | 0] << 16) | + (n[(B + 15) | 0] << 24))), + (t ^= 2037671283), + (r = 1952801890 ^ B), + (0 | (B = (((I + g) | 0) - (y = 7 & g)) | 0)) != + (0 | I)) + ) { + for ( + ; + (e = + n[0 | I] | + (n[(I + 1) | 0] << 8) | + (n[(I + 2) | 0] << 16) | + (n[(I + 3) | 0] << 24)), + (f = + n[(I + 4) | 0] | + (n[(I + 5) | 0] << 8) | + (n[(I + 6) | 0] << 16) | + (n[(I + 7) | 0] << 24)), + (c = Dg(E, C, 13)), + (s = p), + (w = (1 + (C = (C + i) | 0)) | 0), + (i = C), + (h = Dg( + (C = (Q + E) | 0), + (i = C >>> 0 < Q >>> 0 ? w : i), + 32 + )), + (w = p), + (r = Q = r ^ f), + (E = Dg((t ^= e), Q, 16)), + (Q = (a + t) | 0), + (a = (o + r) | 0), + (t = o = + (a = Q >>> 0 < t >>> 0 ? (a + 1) | 0 : a) ^ + p), + (o = Dg((E ^= Q), o, 21)), + (r = p), + (c = Dg((C ^= c), (i ^= s), 17)), + (D = p), + (i = (a + i) | 0), + (a = Q), + (i = Dg( + (Q = (Q + C) | 0), + (C = a >>> 0 > Q >>> 0 ? (i + 1) | 0 : i), + 32 + )), + (a = p), + (s = Dg((c ^= Q), (C ^= D), 13)), + (D = p), + (w = (1 + (Q = (t + w) | 0)) | 0), + (t = Q), + (E = + (Q = (E + h) | 0) >>> 0 < E >>> 0 ? w : t), + (c = t = (Q + c) | 0), + (C = (E + C) | 0), + (C = Dg( + t, + (h = Q >>> 0 > t >>> 0 ? (C + 1) | 0 : C), + 32 + )), + (t = p), + (o = Dg((Q ^= o), (E ^= r), 16)), + (E = (a + E) | 0), + (E = + (Q = (Q + i) | 0) >>> 0 < i >>> 0 + ? (E + 1) | 0 + : E), + (i = (C + (a = Q ^ o)) | 0), + (C = ((r = t) + (t = E ^ p)) | 0), + (t = Dg(a, t, 21) ^ i), + (r = + (w = i >>> 0 < a >>> 0 ? (C + 1) | 0 : C) ^ + p), + (a = C = h ^ D), + (C = Dg((o = c ^ s), C, 17)), + (E = (E + a) | 0), + (o = + (a = (Q + o) | 0) >>> 0 < Q >>> 0 + ? (E + 1) | 0 + : E), + (E = C ^ a), + (C = o ^ p), + (Q = i ^ e), + (i = f ^ w), + (a = Dg(a, o, 32)), + (o = p), + (0 | B) != (0 | (I = (I + 8) | 0)); + + ); + I = B + } + switch (((B = g << 24), (g = 0), (y - 1) | 0)) { + case 6: + B |= n[(I + 6) | 0] << 16 + case 5: + B |= n[(I + 5) | 0] << 8 + case 4: + B |= n[(I + 4) | 0] + case 3: + ;(e = ((g = n[(I + 3) | 0]) >>> 8) | 0), + (g <<= 24), + (B |= e) + case 2: + ;(g |= (e = n[(I + 2) | 0]) << 16), + (B |= f = (e >>> 16) | 0) + case 1: + ;(g |= (e = n[(I + 1) | 0]) << 8), + (B |= f = (e >>> 24) | 0) + case 0: + g = n[0 | I] | g + } + return ( + (e = Dg(E, C, 13)), + (f = p), + (I = (C + i) | 0), + (y = Dg( + (E = (Q + E) | 0), + (C = E >>> 0 < Q >>> 0 ? (I + 1) | 0 : I), + 32 + )), + (c = p), + (i = Q = B ^ r), + (Q = Dg((I = g ^ t), Q, 16)), + (i = (i + o) | 0), + (o = a = + (i = + (r = I) >>> 0 > (I = (I + a) | 0) >>> 0 + ? (i + 1) | 0 + : i) ^ p), + (a = Dg((Q ^= I), a, 21)), + (t = p), + (e = Dg((E ^= e), (C ^= f), 17)), + (f = p), + (C = (i + C) | 0), + (r = I), + (C = Dg( + (I = (I + E) | 0), + (E = r >>> 0 > I >>> 0 ? (C + 1) | 0 : C), + 32 + )), + (i = p), + (e = Dg((r = I ^ e), (E ^= f), 13)), + (f = p), + (s = (1 + (I = (o + c) | 0)) | 0), + (o = I), + (E = + ((Q = + (I = (Q + y) | 0) >>> 0 < Q >>> 0 ? s : o) + + E) | + 0), + (E = Dg( + (r = o = (I + r) | 0), + (o = I >>> 0 > o >>> 0 ? (E + 1) | 0 : E), + 32 + )), + (y = p), + (a = Dg((I ^= a), (Q ^= t), 16)), + (Q = (i + Q) | 0), + (Q = + (I = (I + C) | 0) >>> 0 < C >>> 0 + ? (Q + 1) | 0 + : Q), + (C = I ^ a), + (a = i = Q ^ p), + (i = Dg(C, i, 21)), + (t = p), + (f = o ^= f), + (o = Dg((r ^= e), o, 17)), + (e = p), + (Q = (Q + f) | 0), + (s = I), + (r = Dg( + (I = (I + r) | 0), + (Q = s >>> 0 > I >>> 0 ? (Q + 1) | 0 : Q), + 32 + )), + (f = p), + (e = Dg((I ^= o), (o = Q ^ e), 13)), + (c = p), + (s = I), + (a = (1 + (I = (a + y) | 0)) | 0), + (Q = I), + (B = + (o + + (B ^ + (Q = + (I = (E + C) | 0) >>> 0 < E >>> 0 + ? a + : Q))) | + 0), + (g = Dg( + (C = E = (s + (g ^= I)) | 0), + (E = g >>> 0 > E >>> 0 ? (B + 1) | 0 : B), + 32 + )), + (a = p), + (i = Dg((I ^= i), (B = Q ^ t), 16)), + (B = (B + f) | 0), + (B = + (Q = I) >>> 0 > (I = (I + (255 ^ r)) | 0) >>> 0 + ? (B + 1) | 0 + : B), + (Q = I ^ i), + (o = i = B ^ p), + (i = Dg(Q, i, 21)), + (t = p), + (r = E ^= c), + (E = Dg((C ^= e), E, 17)), + (e = p), + (B = (B + r) | 0), + (r = I), + (C = Dg( + (I = (I + C) | 0), + (B = r >>> 0 > I >>> 0 ? (B + 1) | 0 : B), + 32 + )), + (r = p), + (f = Dg((E ^= I), (e ^= B), 13)), + (y = p), + (o = (1 + (I = (a + o) | 0)) | 0), + (B = I), + (Q = + ((B = + (I = (g + Q) | 0) >>> 0 < g >>> 0 ? o : B) + + e) | + 0), + (a = Q = + I >>> 0 > (g = (I + E) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (Q = Dg(g, Q, 32)), + (o = p), + (i = Dg((I ^= i), (B ^= t), 16)), + (B = (B + r) | 0), + (r = I), + (E = (I = (I + C) | 0) ^ i), + (i = C = + (B = r >>> 0 > I >>> 0 ? (B + 1) | 0 : B) ^ p), + (C = Dg(E, C, 21)), + (t = p), + (r = a ^= y), + (a = Dg((g ^= f), a, 17)), + (e = p), + (B = (B + r) | 0), + (r = I), + (r = Dg( + (I = (I + g) | 0), + (g = r >>> 0 > I >>> 0 ? (B + 1) | 0 : B), + 32 + )), + (f = p), + (y = Dg((a ^= I), (e ^= g), 13)), + (c = p), + (B = (1 + (I = (i + o) | 0)) | 0), + (g = I), + (Q = + ((B = + (I = (Q + E) | 0) >>> 0 < Q >>> 0 ? B : g) + + e) | + 0), + (i = Q = + I >>> 0 > (g = (I + a) | 0) >>> 0 + ? (Q + 1) | 0 + : Q), + (Q = Dg(g, Q, 32)), + (a = p), + (C = Dg((I ^= C), (B ^= t), 16)), + (B = (B + f) | 0), + (o = I), + (E = (I = (I + r) | 0) ^ C), + (o = C = + (B = o >>> 0 > I >>> 0 ? (B + 1) | 0 : B) ^ p), + (C = Dg(E, C, 21)), + (t = p), + (r = i ^= c), + (i = Dg((g ^= y), i, 17)), + (e = p), + (B = (B + r) | 0), + (r = I), + (B = Dg( + (I = (I + g) | 0), + (g = r >>> 0 > I >>> 0 ? (B + 1) | 0 : B), + 32 + )), + (r = p), + (e = g ^= e), + (f = Dg((i ^= I), g, 13)), + (y = p), + (o = (1 + (I = (a + o) | 0)) | 0), + (g = I), + (a = E = + t ^ + (Q = + (I = (Q + E) | 0) >>> 0 < Q >>> 0 ? o : g)), + (E = Dg((g = I ^ C), E, 16)), + (C = (a + r) | 0), + (r = g), + (E = Dg( + (g = (g + B) | 0) ^ E, + (B = r >>> 0 > g >>> 0 ? (C + 1) | 0 : C) ^ p, + 21 + )), + (C = p), + (Q = (Q + e) | 0), + (o = + (1 + + (B = + (B + + (Q = + ((r = I) >>> 0 > (I = (I + i) | 0) >>> 0 + ? (Q + 1) | 0 + : Q) ^ y)) | + 0)) | + 0), + (r = B), + (g = + (I = (g + (B = I ^ f)) | 0) >>> 0 < g >>> 0 + ? o + : r), + (B = Dg(B, Q, 17) ^ I ^ E), + (Q = p ^ g ^ C), + tI(A, Dg(I, g, 32) ^ B, p ^ Q), + 0 + ) + })((A |= 0), (I |= 0), (g |= 0), (Q |= 0)) + ) + }, + Pb: function (A) { + cI((A |= 0), 16) + }, + Qb: function () { + return 208 + }, + Rb: Pg, + Sb: Ng, + Tb: Ng, + Ub: Pg, + Vb: function () { + return -65 + }, + Wb: function (A, I, g) { + return 0 | N((A |= 0), (I |= 0), (g |= 0)) + }, + Xb: function (A, I) { + return ( + 0 | + (function (A, I) { + var g + return ( + (h = g = (h - 32) | 0), + cI(g, 32), + N(A, I, g), + fI(g, 32), + (h = (g + 32) | 0), + 0 + ) + })((A |= 0), (I |= 0)) + ) + }, + Yb: function (A, I, g, B, Q, C) { + return ( + 0 | + (function (A, I, g, B, Q, C) { + var E, n + return ( + (h = E = (h - 16) | 0), + (n = g), + (g = B), + Bg( + A, + (E + 8) | 0, + gA((A - -64) | 0, n, B), + B, + Q, + C + ), + (64 != i[(E + 8) >> 2]) | i[(E + 12) >> 2] + ? (I && + ((i[I >> 2] = 0), (i[(I + 4) >> 2] = 0)), + EA(A, 0, (g - -64) | 0), + (A = -1)) + : ((A = 0), + I && + ((i[I >> 2] = B - -64), + (i[(I + 4) >> 2] = + Q - (((B >>> 0 < 4294967232) - 1) | 0)))), + (h = (E + 16) | 0), + A + ) + })( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0) + ) + ) + }, + Zb: function (A, I, g, B, Q, C) { + return ( + 0 | + (function (A, I, g, B, Q, C) { + var E = 0 + A: { + I: { + if ( + !( + !Q & (B >>> 0 < 64) || + ((Q = (Q - 1) | 0), + (!(Q = + (B = (B + -64) | 0) >>> 0 < 4294967232 + ? (Q + 1) | 0 + : Q) & + (B >>> 0 > 4294967231)) | + Q) + ) + ) { + if (!ng(g, (E = (g - -64) | 0), B, Q, C)) + break I + A && EA(A, 0, B) + } + if (((g = -1), !I)) break A + return ( + (i[I >> 2] = 0), (i[(I + 4) >> 2] = 0), -1 + ) + } + I && ((i[I >> 2] = B), (i[(I + 4) >> 2] = Q)), + (g = 0), + A && gA(A, E, B) + } + return g + })( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0) + ) + ) + }, + _b: function (A, I, g, B, Q, C) { + return ( + 0 | + Bg( + (A |= 0), + (I |= 0), + (g |= 0), + (B |= 0), + (Q |= 0), + (C |= 0) + ) + ) + }, + $b: function (A, I, g, B, Q) { + return ( + 0 | + ng((A |= 0), (I |= 0), (g |= 0), (B |= 0), (Q |= 0)) + ) + }, + ac: function (A) { + return MI((A |= 0)), 0 + }, + bc: function (A, I, g, B) { + return 0 | V((A |= 0), (I |= 0), (g |= 0), (B |= 0)) + }, + cc: function (A, I, g, B) { + return ( + 0 | + (function (A, I, g, B) { + var Q + return ( + (h = Q = (h + -64) | 0), + UI(A, Q), + (A = q(I, g, Q, 64, 0, B, 1)), + (h = (Q - -64) | 0), + A + ) + })((A |= 0), (I |= 0), (g |= 0), (B |= 0)) + ) + }, + dc: function (A, I, g) { + return ( + 0 | + (function (A, I, g) { + var B + return ( + (h = B = (h + -64) | 0), + UI(A, B), + (A = lA(I, B, 64, 0, g, 1)), + (h = (B - -64) | 0), + A + ) + })((A |= 0), (I |= 0), (g |= 0)) + ) + }, + ec: function (A, I) { + A |= 0 + var g, + B = 0 + return ( + (h = g = (h - 256) | 0), + (B = -1), + wA((I |= 0)) || + cA((g + 96) | 0, I) || + ((function (A) { + var I + return ( + (h = I = (h - 160) | 0), + (function (A, I) { + var g, + B = 0 + for ( + h = g = (h - 1760) | 0, + FI((g + 480) | 0, I), + JI((g + 320) | 0, I), + DI(g, (g + 320) | 0), + VA((g + 320) | 0, g, (g + 480) | 0), + DI((g + 160) | 0, (g + 320) | 0), + FI((I = (g + 640) | 0), (g + 160) | 0), + VA((g + 320) | 0, g, I), + DI((g + 160) | 0, (g + 320) | 0), + FI((I = (g + 800) | 0), (g + 160) | 0), + VA((g + 320) | 0, g, I), + DI((g + 160) | 0, (g + 320) | 0), + FI((I = (g + 960) | 0), (g + 160) | 0), + VA((g + 320) | 0, g, I), + DI((g + 160) | 0, (g + 320) | 0), + FI((I = (g + 1120) | 0), (g + 160) | 0), + VA((g + 320) | 0, g, I), + DI((g + 160) | 0, (g + 320) | 0), + FI((I = (g + 1280) | 0), (g + 160) | 0), + VA((g + 320) | 0, g, I), + DI((g + 160) | 0, (g + 320) | 0), + FI((I = (g + 1440) | 0), (g + 160) | 0), + VA((g + 320) | 0, g, I), + DI((g + 160) | 0, (g + 320) | 0), + FI((g + 1600) | 0, (g + 160) | 0), + zI(A), + I = 252; + JI((g + 320) | 0, A), + (B = I), + (0 | (I = C[(I + 34208) | 0])) >= 1 + ? (DI((g + 160) | 0, (g + 320) | 0), + VA( + (g + 320) | 0, + (g + 160) | 0, + (((g + 480) | 0) + + r(((254 & I) >>> 1) | 0, 160)) | + 0 + )) + : (0 | I) > -1 || + (DI((g + 160) | 0, (g + 320) | 0), + WA( + (g + 320) | 0, + (g + 160) | 0, + (((g + 480) | 0) + + r( + (((0 - I) & 254) >>> 1) | 0, + 160 + )) | + 0 + )), + DI(A, (g + 320) | 0), + (I = (B - 1) | 0), + B; + + ); + h = (g + 1760) | 0 + })(I, A), + (A = RI(I)), + (h = (I + 160) | 0), + A + ) + })((g + 96) | 0) && + (wg(g), + yA(g, g, (I = (g + 136) | 0)), + wg((g + 48) | 0), + sA((g + 48) | 0, (g + 48) | 0, I), + j(g, g), + _((g + 48) | 0, (g + 48) | 0, g), + BA(A, (g + 48) | 0), + (B = 0))), + (h = (g + 256) | 0), + 0 | B + ) + }, + fc: function (A, I) { + A |= 0 + var g, + B = 0 + return ( + (h = g = (h + -64) | 0), + mI(g, (I |= 0), 32, 0), + (C[0 | g] = 248 & n[0 | g]), + (C[(g + 31) | 0] = (63 & n[(g + 31) | 0]) | 64), + (I = i[(g + 20) >> 2]), + (B = i[(g + 16) >> 2]), + (C[(A + 16) | 0] = B), + (C[(A + 17) | 0] = B >>> 8), + (C[(A + 18) | 0] = B >>> 16), + (C[(A + 19) | 0] = B >>> 24), + (C[(A + 20) | 0] = I), + (C[(A + 21) | 0] = I >>> 8), + (C[(A + 22) | 0] = I >>> 16), + (C[(A + 23) | 0] = I >>> 24), + (I = i[(g + 12) >> 2]), + (B = i[(g + 8) >> 2]), + (C[(A + 8) | 0] = B), + (C[(A + 9) | 0] = B >>> 8), + (C[(A + 10) | 0] = B >>> 16), + (C[(A + 11) | 0] = B >>> 24), + (C[(A + 12) | 0] = I), + (C[(A + 13) | 0] = I >>> 8), + (C[(A + 14) | 0] = I >>> 16), + (C[(A + 15) | 0] = I >>> 24), + (I = i[(g + 4) >> 2]), + (B = i[g >> 2]), + (C[0 | A] = B), + (C[(A + 1) | 0] = B >>> 8), + (C[(A + 2) | 0] = B >>> 16), + (C[(A + 3) | 0] = B >>> 24), + (C[(A + 4) | 0] = I), + (C[(A + 5) | 0] = I >>> 8), + (C[(A + 6) | 0] = I >>> 16), + (C[(A + 7) | 0] = I >>> 24), + (I = i[(g + 28) >> 2]), + (B = i[(g + 24) >> 2]), + (C[(A + 24) | 0] = B), + (C[(A + 25) | 0] = B >>> 8), + (C[(A + 26) | 0] = B >>> 16), + (C[(A + 27) | 0] = B >>> 24), + (C[(A + 28) | 0] = I), + (C[(A + 29) | 0] = I >>> 8), + (C[(A + 30) | 0] = I >>> 16), + (C[(A + 31) | 0] = I >>> 24), + fI(g, 64), + (h = (g - -64) | 0), + 0 + ) + }, + gc: YI, + hc: PI, + ic: function (A) { + var I = 0, + g = 0 + if ((A |= 0) >>> 0 >= 2) { + for ( + g = ((0 - A) >>> 0) % (A >>> 0) | 0; + (I = YI()) >>> 0 < g >>> 0; + + ); + A = (I >>> 0) % (A >>> 0) | 0 + } else A = 0 + return 0 | A + }, + jc: cI, + kc: function (A, I, g) { + _g((A |= 0), (I |= 0), 1784, (g |= 0)) + }, + lc: Ng, + mc: function () { + var A = 0, + I = 0 + return ( + (A = i[9097]) && + (A = i[(A + 20) >> 2]) && + (I = 0 | Vg[0 | A]()), + 0 | I + ) + }, + nc: function (A, I, g) { + !(function (A, I, g) { + ;(1 == (0 | g)) | (g >>> 0 > 1) && + (t(1796, 1816, 197, 1842), e()), + cI(A, I) + })((A |= 0), (I |= 0), (g |= 0)) + }, + oc: function (A, I, g, B) { + ;(A |= 0), (g |= 0) + var Q = 0, + E = 0, + i = 0 + if ( + !( + ((B |= 0) >>> 0 > 2147483646) | + ((B << 1) >>> 0 >= (I |= 0) >>> 0) + ) + ) { + if (((I = 0), B)) { + for ( + ; + (Q = I << 1), + (E = ((i = n[(I + g) | 0]) >>> 4) | 0), + (C[(Q + A) | 0] = + 87 + ((E + (((E + 65526) >>> 8) & 217)) | 0)), + (E = ((1 | Q) + A) | 0), + (Q = 15 & i), + (C[0 | E] = + (22272 + + (((Q << 8) + ((Q + 65526) & 55552)) | + 0)) >>> + 8), + (0 | B) != (0 | (I = (I + 1) | 0)); + + ); + I = B << 1 + } else I = 0 + return (C[(I + A) | 0] = 0), 0 | A + } + OI(), e() + }, + pc: function (A, I, g, B, Q, E, a) { + ;(A |= 0), + (I |= 0), + (g |= 0), + (Q |= 0), + (E |= 0), + (a |= 0) + var r = 0, + o = 0, + e = 0, + t = 0, + f = 0, + c = 0, + y = 0, + s = 0, + w = 0, + h = 0, + D = 0 + A: if ((B |= 0)) { + I: { + g: { + B: for (;;) { + for (o = r; ; ) { + Q: { + if ( + !( + 255 & + ((w = + (((65526 + + (y = + ((223 & (c = n[(g + o) | 0])) - + 55) & + 255)) ^ + (y + 65520)) >>> + 8) | + 0) | + (e = + ((65526 + (h = 48 ^ c)) >>> 8) | 0)) + ) + ) { + if (((e = 1), !Q | (255 & f))) break g + if (gg(Q, c)) break Q + r = o + break A + } + if (I >>> 0 <= t >>> 0) { + ;(i[8960] = 68), (e = 0) + break g + } + if ( + ((r = (y & w) | (e & h)), + 255 & f + ? ((C[(A + t) | 0] = r | D), + (t = (t + 1) | 0)) + : (D = r << 4), + (f ^= -1), + (e = 1), + (r = (o + 1) | 0) >>> 0 < B >>> 0) + ) + continue B + break I + } + if ( + ((f = 0), + !((o = (o + 1) | 0) >>> 0 < B >>> 0)) + ) + break + } + break + } + r = (A = (r + 1) | 0) >>> 0 < B >>> 0 ? B : A + break A + } + r = o + } + 255 & f + ? ((i[8960] = 28), + (s = -1), + (r = (r - 1) | 0), + (t = 0)) + : e || ((t = 0), (s = -1)) + } + return ( + a + ? (i[a >> 2] = g + r) + : (0 | B) != (0 | r) && ((i[8960] = 28), (s = -1)), + E && (i[E >> 2] = t), + 0 | s + ) + }, + qc: function (A, I) { + var g + return ( + (A |= 0), + pg((I |= 0)), + (A = (r((g = ((A >>> 0) / 3) | 0), -3) + A) | 0), + (r( + (4 - ((3 - A) & (0 - ((I >>> 1) & 1)))) | 0, + 1 & (A | (A >>> 1)) + ) + + ((g << 2) | 1)) | + 0 + ) + }, + rc: O, + sc: W, + tc: function () { + var A = 0 + return ( + i[9104] + ? (A = 1) + : ((i[9086] = 0), + (function () { + var A + ;(h = A = (h - 16) | 0), + VI(A), + i[A >> 2] && (VI(A), EA(36348, 0, 40)), + (h = (A + 16) | 0) + })(), + (i[9085] = 1), + PI(), + (function () { + var A = 0 + ;(0 | (A = 0 | y(30))) >= 1 + ? (i[8944] = A) + : (A = i[8944]), + A >>> 0 <= 15 && (OI(), e()), + cI(36400, 16) + })(), + (i[9104] = 1), + (A = 0)), + 0 | A + ) + }, + uc: function (A, I, g, B, Q) { + ;(A |= 0), (I |= 0), (g |= 0), (Q |= 0) + var E, + a = 0, + r = 0, + o = 0 + h = E = (h - 16) | 0 + A: { + if ((B |= 0)) { + if ( + ((o = -1), + (a = + ((a = (B - 1) | 0) - + (r = + a & B + ? (g >>> 0) % (B >>> 0) | 0 + : g & a)) | + 0) >>> + 0 >= + (-1 ^ g) >>> 0) + ) + break A + if (!((g = (g + a) | 0) >>> 0 >= Q >>> 0)) + for ( + A && (i[A >> 2] = g + 1), + A = (I + g) | 0, + o = 0, + C[(E + 15) | 0] = 0, + I = B >>> 0 > 1 ? B : 1, + B = 0; + (Q = g = (A - B) | 0), + (r = n[0 | g] & n[(E + 15) | 0]), + (g = (((B ^ a) - 1) >>> 24) | 0), + (C[0 | Q] = r | (128 & g)), + (C[(E + 15) | 0] = g | n[(E + 15) | 0]), + (0 | I) != (0 | (B = (B + 1) | 0)); + + ); + } else o = -1 + return (h = (E + 16) | 0), 0 | o + } + OI(), e() + }, + vc: function (A, I, g, B) { + ;(A |= 0), (I |= 0), (g |= 0), (B |= 0) + var Q, + C = 0, + E = 0, + a = 0, + r = 0, + o = 0 + if ( + ((i[(12 + (Q = (h - 16) | 0)) >> 2] = 0), + (B - 1) >>> 0 < g >>> 0) + ) { + for ( + o = ((C = (g - 1) | 0) + I) | 0, g = 0, I = 0; + (r = + ((((128 ^ (E = n[(o - g) | 0])) - 1) & + (i[(Q + 12) >> 2] - 1) & + (a - 1)) >>> + 8) & + 1), + (i[(Q + 12) >> 2] = + i[(Q + 12) >> 2] | ((0 - r) & g)), + (I |= r), + (a |= E), + (0 | B) != (0 | (g = (g + 1) | 0)); + + ); + ;(i[A >> 2] = C - i[(Q + 12) >> 2]), (A = (I - 1) | 0) + } else A = -1 + return 0 | A + }, + wc: function () { + return 35762 + }, + xc: function () { + return 10 + }, + yc: qg, + zc: Rg, + Ac: function () { + return 35840 + }, + Bc: k, + Cc: m + } + })(A) + ) + })(vA) + }, + instantiate: function (A, I) { + return { + then: function (I) { + var g = new u.Module(A) + I({ instance: new u.Instance(g) }) + } + } + }, + RuntimeError: Error + } + function p(A, I, g, B) { + switch ( + ('*' === (g = g || 'i8').charAt(g.length - 1) && (g = 'i32'), g) + ) { + case 'i1': + case 'i8': + _[A >> 0] = I + break + case 'i16': + Y[A >> 1] = I + break + case 'i32': + b[A >> 2] = I + break + case 'i64': + ;(nA = [ + I >>> 0, + ((iA = I), + +Math.abs(iA) >= 1 + ? iA > 0 + ? (0 | + Math.min(+Math.floor(iA / 4294967296), 4294967295)) >>> + 0 + : ~~+Math.ceil((iA - +(~~iA >>> 0)) / 4294967296) >>> 0 + : 0) + ]), + (b[A >> 2] = nA[0]), + (b[(A + 4) >> 2] = nA[1]) + break + case 'float': + m[A >> 2] = I + break + case 'double': + v[A >> 3] = I + break + default: + IA('invalid type for setValue: ' + g) + } + } + function l(A, I, g) { + switch ( + ('*' === (I = I || 'i8').charAt(I.length - 1) && (I = 'i32'), I) + ) { + case 'i1': + case 'i8': + return _[A >> 0] + case 'i16': + return Y[A >> 1] + case 'i32': + case 'i64': + return b[A >> 2] + case 'float': + return m[A >> 2] + case 'double': + return v[A >> 3] + default: + IA('invalid type for getValue: ' + I) + } + return null + } + ;(w = []), 'object' != typeof u && IA('no native wasm support detected') + var F = !1 + function G(A, I) { + A || IA('Assertion failed: ' + I) + } + var k, + _, + H, + Y, + b, + m, + v, + U = + 'undefined' != typeof TextDecoder ? new TextDecoder('utf8') : void 0 + function S(A, I, g) { + for (var B = I + g, Q = I; A[Q] && !(Q >= B); ) ++Q + if (Q - I > 16 && A.subarray && U) return U.decode(A.subarray(I, Q)) + for (var C = ''; I < Q; ) { + var E = A[I++] + if (128 & E) { + var i = 63 & A[I++] + if (192 != (224 & E)) { + var n = 63 & A[I++] + if ( + (E = + 224 == (240 & E) + ? ((15 & E) << 12) | (i << 6) | n + : ((7 & E) << 18) | + (i << 12) | + (n << 6) | + (63 & A[I++])) < 65536 + ) + C += String.fromCharCode(E) + else { + var a = E - 65536 + C += String.fromCharCode( + 55296 | (a >> 10), + 56320 | (1023 & a) + ) + } + } else C += String.fromCharCode(((31 & E) << 6) | i) + } else C += String.fromCharCode(E) + } + return C + } + function N(A, I) { + return A ? S(H, A, I) : '' + } + function M(A, I) { + return A % I > 0 && (A += I - (A % I)), A + } + function d(A) { + ;(k = A), + (Q.HEAP8 = _ = new Int8Array(A)), + (Q.HEAP16 = Y = new Int16Array(A)), + (Q.HEAP32 = b = new Int32Array(A)), + (Q.HEAPU8 = H = new Uint8Array(A)), + (Q.HEAPU16 = new Uint16Array(A)), + (Q.HEAPU32 = new Uint32Array(A)), + (Q.HEAPF32 = m = new Float32Array(A)), + (Q.HEAPF64 = v = new Float64Array(A)) + } + var P, + R = Q.INITIAL_MEMORY || 16777216 + ;(D = Q.wasmMemory + ? Q.wasmMemory + : new u.Memory({ initial: R / 65536, maximum: 32768 })) && + (k = D.buffer), + (R = k.byteLength), + d(k) + var J = [], + x = [], + L = [], + K = [] + function q() { + if (Q.preRun) + for ( + 'function' == typeof Q.preRun && (Q.preRun = [Q.preRun]); + Q.preRun.length; + + ) + T(Q.preRun.shift()) + fA(J) + } + function X() { + fA(x) + } + function V() { + fA(L) + } + function W() { + if (Q.postRun) + for ( + 'function' == typeof Q.postRun && (Q.postRun = [Q.postRun]); + Q.postRun.length; + + ) + j(Q.postRun.shift()) + fA(K) + } + function T(A) { + J.unshift(A) + } + function j(A) { + K.unshift(A) + } + x.push({ + func: function () { + UA() + } + }) + var Z = 0, + O = null, + z = null + function $(A) { + Z++, Q.monitorRunDependencies && Q.monitorRunDependencies(Z) + } + function AA(A) { + if ( + (Z--, + Q.monitorRunDependencies && Q.monitorRunDependencies(Z), + 0 == Z && (null !== O && (clearInterval(O), (O = null)), z)) + ) { + var I = z + ;(z = null), I() + } + } + function IA(A) { + throw ( + (Q.onAbort && Q.onAbort(A), + h((A += '')), + (F = !0), + (A = 'abort(' + A + '). Build with -s ASSERTIONS=1 for more info.'), + new u.RuntimeError(A)) + ) + } + function gA(A, I) { + return String.prototype.startsWith + ? A.startsWith(I) + : 0 === A.indexOf(I) + } + ;(Q.preloadedImages = {}), (Q.preloadedAudios = {}) + var BA = 'data:application/octet-stream;base64,' + function QA(A) { + return gA(A, BA) + } + var CA = 'file://' + function EA(A) { + return gA(A, CA) + } + var iA, + nA, + aA = '<<< WASM_BINARY_FILE >>>' + function rA(A) { + try { + if (A == aA && w) return new Uint8Array(w) + var I = bA(A) + if (I) return I + if (t) return t(A) + throw 'both async and sync fetching of the wasm failed' + } catch (A) { + IA(A) + } + } + function oA() { + if (!w && (i || n)) { + if ('function' == typeof fetch && !EA(aA)) + return fetch(aA, { credentials: 'same-origin' }) + .then(function (A) { + if (!A.ok) + throw "failed to load wasm binary file at '" + aA + "'" + return A.arrayBuffer() + }) + .catch(function () { + return rA(aA) + }) + if (e) + return new Promise(function (A, I) { + e( + aA, + function (I) { + A(new Uint8Array(I)) + }, + I + ) + }) + } + return Promise.resolve().then(function () { + return rA(aA) + }) + } + function eA() { + var A = { a: vA } + function I(A, I) { + var g = A.exports + ;(Q.asm = g), (P = Q.asm.h), AA() + } + function g(A) { + I(A.instance) + } + function B(I) { + return oA() + .then(function (I) { + return u.instantiate(I, A) + }) + .then(I, function (A) { + h('failed to asynchronously prepare wasm: ' + A), IA(A) + }) + } + if (($(), Q.instantiateWasm)) + try { + return Q.instantiateWasm(A, I) + } catch (A) { + return ( + h('Module.instantiateWasm callback failed with error: ' + A), !1 + ) + } + return ( + w || + 'function' != typeof u.instantiateStreaming || + QA(aA) || + EA(aA) || + 'function' != typeof fetch + ? B(g) + : fetch(aA, { credentials: 'same-origin' }).then(function (I) { + return u.instantiateStreaming(I, A).then(g, function (A) { + return ( + h('wasm streaming compile failed: ' + A), + h('falling back to ArrayBuffer instantiation'), + B(g) + ) + }) + }), + {} + ) + } + QA(aA) || (aA = s(aA)) + var tA = { + 1024: function () { + return Q.getRandomValue() + }, + 1062: function () { + if (void 0 === Q.getRandomValue) + try { + var A = 'object' == typeof window ? window : self, + I = void 0 !== A.crypto ? A.crypto : A.msCrypto, + g = function () { + var A = new Uint32Array(1) + return I.getRandomValues(A), A[0] >>> 0 + } + g(), (Q.getRandomValue = g) + } catch (A) { + try { + var B = require('crypto'), + C = function () { + var A = B.randomBytes(4) + return ( + ((A[0] << 24) | (A[1] << 16) | (A[2] << 8) | A[3]) >>> 0 + ) + } + C(), (Q.getRandomValue = C) + } catch (A) { + throw 'No secure random number generator found' + } + } + } + } + function fA(A) { + for (; A.length > 0; ) { + var I = A.shift() + if ('function' != typeof I) { + var g = I.func + 'number' == typeof g + ? void 0 === I.arg + ? P.get(g)() + : P.get(g)(I.arg) + : g(void 0 === I.arg ? null : I.arg) + } else I(Q) + } + } + function cA(A, I, g, B) { + IA( + 'Assertion failed: ' + + N(A) + + ', at: ' + + [I ? N(I) : 'unknown filename', g, B ? N(B) : 'unknown function'] + ) + } + function yA() { + IA() + } + function sA(A, I, g) { + var B = GA(I, g) + return tA[A].apply(null, B) + } + function wA(A, I, g) { + H.copyWithin(A, I, I + g) + } + function hA() { + return H.length + } + function DA(A) { + try { + return D.grow((A - k.byteLength + 65535) >>> 16), d(D.buffer), 1 + } catch (A) {} + } + function uA(A) { + A >>>= 0 + var I = hA(), + g = 2147483648 + if (A > g) return !1 + for (var B = 1; B <= 4; B *= 2) { + var Q = I * (1 + 0.2 / B) + if ( + ((Q = Math.min(Q, A + 100663296)), + DA(Math.min(g, M(Math.max(16777216, A, Q), 65536)))) + ) + return !0 + } + return !1 + } + function pA(A) { + return (b[SA() >> 2] = A), A + } + function lA(A) { + switch (A) { + case 30: + return 16384 + case 85: + return 131072 + case 132: + case 133: + case 12: + case 137: + case 138: + case 15: + case 235: + case 16: + case 17: + case 18: + case 19: + case 20: + case 149: + case 13: + case 10: + case 236: + case 153: + case 9: + case 21: + case 22: + case 159: + case 154: + case 14: + case 77: + case 78: + case 139: + case 82: + case 68: + case 67: + case 164: + case 11: + case 29: + case 47: + case 48: + case 95: + case 52: + case 51: + case 46: + return 200809 + case 27: + case 246: + case 127: + case 128: + case 23: + case 24: + case 160: + case 161: + case 181: + case 182: + case 242: + case 183: + case 184: + case 243: + case 244: + case 245: + case 165: + case 178: + case 179: + case 49: + case 50: + case 168: + case 169: + case 175: + case 170: + case 171: + case 172: + case 97: + case 76: + case 32: + case 173: + case 35: + case 80: + case 81: + case 79: + return -1 + case 176: + case 177: + case 7: + case 155: + case 8: + case 157: + case 125: + case 126: + case 92: + case 93: + case 129: + case 130: + case 131: + case 94: + case 91: + return 1 + case 74: + case 60: + case 69: + case 70: + case 4: + return 1024 + case 31: + case 42: + case 72: + return 32 + case 87: + case 26: + case 33: + return 2147483647 + case 34: + case 1: + return 47839 + case 38: + case 36: + return 99 + case 43: + case 37: + return 2048 + case 0: + return 2097152 + case 3: + return 65536 + case 28: + return 32768 + case 44: + return 32767 + case 75: + return 16384 + case 39: + return 1e3 + case 89: + return 700 + case 71: + return 256 + case 40: + return 255 + case 2: + return 100 + case 180: + return 64 + case 25: + return 20 + case 5: + return 16 + case 6: + return 6 + case 73: + return 4 + case 84: + return ( + ('object' == typeof navigator && + navigator.hardwareConcurrency) || + 1 + ) + } + return pA(28), -1 + } + var FA = [] + function GA(A, I) { + var g + for (FA.length = 0, I >>= 2; (g = H[A++]); ) { + var B = g < 105 + B && 1 & I && I++, FA.push(B ? v[I++ >> 1] : b[I]), ++I + } + return FA + } + var kA = !1 + function _A(A) { + for (var I = [], g = 0; g < A.length; g++) { + var B = A[g] + B > 255 && + (kA && + G( + !1, + 'Character code ' + + B + + ' (' + + String.fromCharCode(B) + + ') at offset ' + + g + + ' not in 0x00-0xFF.' + ), + (B &= 255)), + I.push(String.fromCharCode(B)) + } + return I.join('') + } + var HA = + 'function' == typeof atob + ? atob + : function (A) { + var I, + g, + B, + Q, + C, + E, + i = + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', + n = '', + a = 0 + A = A.replace(/[^A-Za-z0-9\+\/\=]/g, '') + do { + ;(I = + (i.indexOf(A.charAt(a++)) << 2) | + ((Q = i.indexOf(A.charAt(a++))) >> 4)), + (g = + ((15 & Q) << 4) | ((C = i.indexOf(A.charAt(a++))) >> 2)), + (B = ((3 & C) << 6) | (E = i.indexOf(A.charAt(a++)))), + (n += String.fromCharCode(I)), + 64 !== C && (n += String.fromCharCode(g)), + 64 !== E && (n += String.fromCharCode(B)) + } while (a < A.length) + return n + } + function YA(A) { + if ('boolean' == typeof a && a) { + var I + try { + I = Buffer.from(A, 'base64') + } catch (g) { + I = new Buffer(A, 'base64') + } + return new Uint8Array(I.buffer, I.byteOffset, I.byteLength) + } + try { + for ( + var g = HA(A), B = new Uint8Array(g.length), Q = 0; + Q < g.length; + ++Q + ) + B[Q] = g.charCodeAt(Q) + return B + } catch (A) { + throw new Error('Converting base64 string to bytes failed.') + } + } + function bA(A) { + if (QA(A)) return YA(A.slice(BA.length)) + } + var mA, + vA = { b: cA, d: yA, c: sA, f: wA, g: uA, a: D, e: lA }, + UA = + (eA(), + (Q.___wasm_call_ctors = function () { + return (UA = Q.___wasm_call_ctors = Q.asm.i).apply( + null, + arguments + ) + })), + SA = + ((Q._crypto_aead_chacha20poly1305_encrypt_detached = function () { + return (Q._crypto_aead_chacha20poly1305_encrypt_detached = + Q.asm.j).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_encrypt = function () { + return (Q._crypto_aead_chacha20poly1305_encrypt = Q.asm.k).apply( + null, + arguments + ) + }), + (Q._crypto_aead_chacha20poly1305_ietf_encrypt_detached = + function () { + return (Q._crypto_aead_chacha20poly1305_ietf_encrypt_detached = + Q.asm.l).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_ietf_encrypt = function () { + return (Q._crypto_aead_chacha20poly1305_ietf_encrypt = + Q.asm.m).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_decrypt_detached = function () { + return (Q._crypto_aead_chacha20poly1305_decrypt_detached = + Q.asm.n).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_decrypt = function () { + return (Q._crypto_aead_chacha20poly1305_decrypt = Q.asm.o).apply( + null, + arguments + ) + }), + (Q._crypto_aead_chacha20poly1305_ietf_decrypt_detached = + function () { + return (Q._crypto_aead_chacha20poly1305_ietf_decrypt_detached = + Q.asm.p).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_ietf_decrypt = function () { + return (Q._crypto_aead_chacha20poly1305_ietf_decrypt = + Q.asm.q).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_ietf_keybytes = function () { + return (Q._crypto_aead_chacha20poly1305_ietf_keybytes = + Q.asm.r).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_ietf_npubbytes = function () { + return (Q._crypto_aead_chacha20poly1305_ietf_npubbytes = + Q.asm.s).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_ietf_nsecbytes = function () { + return (Q._crypto_aead_chacha20poly1305_ietf_nsecbytes = + Q.asm.t).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_ietf_abytes = function () { + return (Q._crypto_aead_chacha20poly1305_ietf_abytes = + Q.asm.u).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_ietf_messagebytes_max = + function () { + return (Q._crypto_aead_chacha20poly1305_ietf_messagebytes_max = + Q.asm.v).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_ietf_keygen = function () { + return (Q._crypto_aead_chacha20poly1305_ietf_keygen = + Q.asm.w).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_keybytes = function () { + return (Q._crypto_aead_chacha20poly1305_keybytes = Q.asm.x).apply( + null, + arguments + ) + }), + (Q._crypto_aead_chacha20poly1305_npubbytes = function () { + return (Q._crypto_aead_chacha20poly1305_npubbytes = + Q.asm.y).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_nsecbytes = function () { + return (Q._crypto_aead_chacha20poly1305_nsecbytes = + Q.asm.z).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_abytes = function () { + return (Q._crypto_aead_chacha20poly1305_abytes = Q.asm.A).apply( + null, + arguments + ) + }), + (Q._crypto_aead_chacha20poly1305_messagebytes_max = function () { + return (Q._crypto_aead_chacha20poly1305_messagebytes_max = + Q.asm.B).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_keygen = function () { + return (Q._crypto_aead_chacha20poly1305_keygen = Q.asm.C).apply( + null, + arguments + ) + }), + (Q._crypto_aead_xchacha20poly1305_ietf_encrypt_detached = + function () { + return (Q._crypto_aead_xchacha20poly1305_ietf_encrypt_detached = + Q.asm.D).apply(null, arguments) + }), + (Q._crypto_aead_xchacha20poly1305_ietf_encrypt = function () { + return (Q._crypto_aead_xchacha20poly1305_ietf_encrypt = + Q.asm.E).apply(null, arguments) + }), + (Q._crypto_aead_xchacha20poly1305_ietf_decrypt_detached = + function () { + return (Q._crypto_aead_xchacha20poly1305_ietf_decrypt_detached = + Q.asm.F).apply(null, arguments) + }), + (Q._crypto_aead_xchacha20poly1305_ietf_decrypt = function () { + return (Q._crypto_aead_xchacha20poly1305_ietf_decrypt = + Q.asm.G).apply(null, arguments) + }), + (Q._crypto_aead_xchacha20poly1305_ietf_keybytes = function () { + return (Q._crypto_aead_xchacha20poly1305_ietf_keybytes = + Q.asm.H).apply(null, arguments) + }), + (Q._crypto_aead_xchacha20poly1305_ietf_npubbytes = function () { + return (Q._crypto_aead_xchacha20poly1305_ietf_npubbytes = + Q.asm.I).apply(null, arguments) + }), + (Q._crypto_aead_xchacha20poly1305_ietf_nsecbytes = function () { + return (Q._crypto_aead_xchacha20poly1305_ietf_nsecbytes = + Q.asm.J).apply(null, arguments) + }), + (Q._crypto_aead_xchacha20poly1305_ietf_abytes = function () { + return (Q._crypto_aead_xchacha20poly1305_ietf_abytes = + Q.asm.K).apply(null, arguments) + }), + (Q._crypto_aead_xchacha20poly1305_ietf_messagebytes_max = + function () { + return (Q._crypto_aead_xchacha20poly1305_ietf_messagebytes_max = + Q.asm.L).apply(null, arguments) + }), + (Q._crypto_aead_xchacha20poly1305_ietf_keygen = function () { + return (Q._crypto_aead_xchacha20poly1305_ietf_keygen = + Q.asm.M).apply(null, arguments) + }), + (Q._crypto_auth_bytes = function () { + return (Q._crypto_auth_bytes = Q.asm.N).apply(null, arguments) + }), + (Q._crypto_auth_keybytes = function () { + return (Q._crypto_auth_keybytes = Q.asm.O).apply(null, arguments) + }), + (Q._crypto_auth = function () { + return (Q._crypto_auth = Q.asm.P).apply(null, arguments) + }), + (Q._crypto_auth_verify = function () { + return (Q._crypto_auth_verify = Q.asm.Q).apply(null, arguments) + }), + (Q._crypto_auth_keygen = function () { + return (Q._crypto_auth_keygen = Q.asm.R).apply(null, arguments) + }), + (Q._crypto_box_seedbytes = function () { + return (Q._crypto_box_seedbytes = Q.asm.S).apply(null, arguments) + }), + (Q._crypto_box_publickeybytes = function () { + return (Q._crypto_box_publickeybytes = Q.asm.T).apply( + null, + arguments + ) + }), + (Q._crypto_box_secretkeybytes = function () { + return (Q._crypto_box_secretkeybytes = Q.asm.U).apply( + null, + arguments + ) + }), + (Q._crypto_box_beforenmbytes = function () { + return (Q._crypto_box_beforenmbytes = Q.asm.V).apply( + null, + arguments + ) + }), + (Q._crypto_box_noncebytes = function () { + return (Q._crypto_box_noncebytes = Q.asm.W).apply(null, arguments) + }), + (Q._crypto_box_macbytes = function () { + return (Q._crypto_box_macbytes = Q.asm.X).apply(null, arguments) + }), + (Q._crypto_box_messagebytes_max = function () { + return (Q._crypto_box_messagebytes_max = Q.asm.Y).apply( + null, + arguments + ) + }), + (Q._crypto_box_seed_keypair = function () { + return (Q._crypto_box_seed_keypair = Q.asm.Z).apply( + null, + arguments + ) + }), + (Q._crypto_box_keypair = function () { + return (Q._crypto_box_keypair = Q.asm._).apply(null, arguments) + }), + (Q._crypto_box_beforenm = function () { + return (Q._crypto_box_beforenm = Q.asm.$).apply(null, arguments) + }), + (Q._crypto_box_detached_afternm = function () { + return (Q._crypto_box_detached_afternm = Q.asm.aa).apply( + null, + arguments + ) + }), + (Q._crypto_box_detached = function () { + return (Q._crypto_box_detached = Q.asm.ba).apply(null, arguments) + }), + (Q._crypto_box_easy_afternm = function () { + return (Q._crypto_box_easy_afternm = Q.asm.ca).apply( + null, + arguments + ) + }), + (Q._crypto_box_easy = function () { + return (Q._crypto_box_easy = Q.asm.da).apply(null, arguments) + }), + (Q._crypto_box_open_detached_afternm = function () { + return (Q._crypto_box_open_detached_afternm = Q.asm.ea).apply( + null, + arguments + ) + }), + (Q._crypto_box_open_detached = function () { + return (Q._crypto_box_open_detached = Q.asm.fa).apply( + null, + arguments + ) + }), + (Q._crypto_box_open_easy_afternm = function () { + return (Q._crypto_box_open_easy_afternm = Q.asm.ga).apply( + null, + arguments + ) + }), + (Q._crypto_box_open_easy = function () { + return (Q._crypto_box_open_easy = Q.asm.ha).apply(null, arguments) + }), + (Q._crypto_box_seal = function () { + return (Q._crypto_box_seal = Q.asm.ia).apply(null, arguments) + }), + (Q._crypto_box_seal_open = function () { + return (Q._crypto_box_seal_open = Q.asm.ja).apply(null, arguments) + }), + (Q._crypto_box_sealbytes = function () { + return (Q._crypto_box_sealbytes = Q.asm.ka).apply(null, arguments) + }), + (Q._crypto_generichash_bytes_min = function () { + return (Q._crypto_generichash_bytes_min = Q.asm.la).apply( + null, + arguments + ) + }), + (Q._crypto_generichash_bytes_max = function () { + return (Q._crypto_generichash_bytes_max = Q.asm.ma).apply( + null, + arguments + ) + }), + (Q._crypto_generichash_bytes = function () { + return (Q._crypto_generichash_bytes = Q.asm.na).apply( + null, + arguments + ) + }), + (Q._crypto_generichash_keybytes_min = function () { + return (Q._crypto_generichash_keybytes_min = Q.asm.oa).apply( + null, + arguments + ) + }), + (Q._crypto_generichash_keybytes_max = function () { + return (Q._crypto_generichash_keybytes_max = Q.asm.pa).apply( + null, + arguments + ) + }), + (Q._crypto_generichash_keybytes = function () { + return (Q._crypto_generichash_keybytes = Q.asm.qa).apply( + null, + arguments + ) + }), + (Q._crypto_generichash_statebytes = function () { + return (Q._crypto_generichash_statebytes = Q.asm.ra).apply( + null, + arguments + ) + }), + (Q._crypto_generichash = function () { + return (Q._crypto_generichash = Q.asm.sa).apply(null, arguments) + }), + (Q._crypto_generichash_init = function () { + return (Q._crypto_generichash_init = Q.asm.ta).apply( + null, + arguments + ) + }), + (Q._crypto_generichash_update = function () { + return (Q._crypto_generichash_update = Q.asm.ua).apply( + null, + arguments + ) + }), + (Q._crypto_generichash_final = function () { + return (Q._crypto_generichash_final = Q.asm.va).apply( + null, + arguments + ) + }), + (Q._crypto_generichash_keygen = function () { + return (Q._crypto_generichash_keygen = Q.asm.wa).apply( + null, + arguments + ) + }), + (Q._crypto_hash_bytes = function () { + return (Q._crypto_hash_bytes = Q.asm.xa).apply(null, arguments) + }), + (Q._crypto_hash = function () { + return (Q._crypto_hash = Q.asm.ya).apply(null, arguments) + }), + (Q._crypto_kdf_bytes_min = function () { + return (Q._crypto_kdf_bytes_min = Q.asm.za).apply(null, arguments) + }), + (Q._crypto_kdf_bytes_max = function () { + return (Q._crypto_kdf_bytes_max = Q.asm.Aa).apply(null, arguments) + }), + (Q._crypto_kdf_contextbytes = function () { + return (Q._crypto_kdf_contextbytes = Q.asm.Ba).apply( + null, + arguments + ) + }), + (Q._crypto_kdf_keybytes = function () { + return (Q._crypto_kdf_keybytes = Q.asm.Ca).apply(null, arguments) + }), + (Q._crypto_kdf_derive_from_key = function () { + return (Q._crypto_kdf_derive_from_key = Q.asm.Da).apply( + null, + arguments + ) + }), + (Q._crypto_kdf_keygen = function () { + return (Q._crypto_kdf_keygen = Q.asm.Ea).apply(null, arguments) + }), + (Q._crypto_kx_seed_keypair = function () { + return (Q._crypto_kx_seed_keypair = Q.asm.Fa).apply( + null, + arguments + ) + }), + (Q._crypto_kx_keypair = function () { + return (Q._crypto_kx_keypair = Q.asm.Ga).apply(null, arguments) + }), + (Q._crypto_kx_client_session_keys = function () { + return (Q._crypto_kx_client_session_keys = Q.asm.Ha).apply( + null, + arguments + ) + }), + (Q._crypto_kx_server_session_keys = function () { + return (Q._crypto_kx_server_session_keys = Q.asm.Ia).apply( + null, + arguments + ) + }), + (Q._crypto_kx_publickeybytes = function () { + return (Q._crypto_kx_publickeybytes = Q.asm.Ja).apply( + null, + arguments + ) + }), + (Q._crypto_kx_secretkeybytes = function () { + return (Q._crypto_kx_secretkeybytes = Q.asm.Ka).apply( + null, + arguments + ) + }), + (Q._crypto_kx_seedbytes = function () { + return (Q._crypto_kx_seedbytes = Q.asm.La).apply(null, arguments) + }), + (Q._crypto_kx_sessionkeybytes = function () { + return (Q._crypto_kx_sessionkeybytes = Q.asm.Ma).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_alg_argon2i13 = function () { + return (Q._crypto_pwhash_alg_argon2i13 = Q.asm.Na).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_alg_argon2id13 = function () { + return (Q._crypto_pwhash_alg_argon2id13 = Q.asm.Oa).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_alg_default = function () { + return (Q._crypto_pwhash_alg_default = Q.asm.Pa).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_bytes_min = function () { + return (Q._crypto_pwhash_bytes_min = Q.asm.Qa).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_bytes_max = function () { + return (Q._crypto_pwhash_bytes_max = Q.asm.Ra).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_passwd_min = function () { + return (Q._crypto_pwhash_passwd_min = Q.asm.Sa).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_passwd_max = function () { + return (Q._crypto_pwhash_passwd_max = Q.asm.Ta).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_saltbytes = function () { + return (Q._crypto_pwhash_saltbytes = Q.asm.Ua).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_strbytes = function () { + return (Q._crypto_pwhash_strbytes = Q.asm.Va).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_strprefix = function () { + return (Q._crypto_pwhash_strprefix = Q.asm.Wa).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_opslimit_min = function () { + return (Q._crypto_pwhash_opslimit_min = Q.asm.Xa).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_opslimit_max = function () { + return (Q._crypto_pwhash_opslimit_max = Q.asm.Ya).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_memlimit_min = function () { + return (Q._crypto_pwhash_memlimit_min = Q.asm.Za).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_memlimit_max = function () { + return (Q._crypto_pwhash_memlimit_max = Q.asm._a).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_opslimit_interactive = function () { + return (Q._crypto_pwhash_opslimit_interactive = Q.asm.$a).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_memlimit_interactive = function () { + return (Q._crypto_pwhash_memlimit_interactive = Q.asm.ab).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_opslimit_moderate = function () { + return (Q._crypto_pwhash_opslimit_moderate = Q.asm.bb).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_memlimit_moderate = function () { + return (Q._crypto_pwhash_memlimit_moderate = Q.asm.cb).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_opslimit_sensitive = function () { + return (Q._crypto_pwhash_opslimit_sensitive = Q.asm.db).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_memlimit_sensitive = function () { + return (Q._crypto_pwhash_memlimit_sensitive = Q.asm.eb).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash = function () { + return (Q._crypto_pwhash = Q.asm.fb).apply(null, arguments) + }), + (Q._crypto_pwhash_str = function () { + return (Q._crypto_pwhash_str = Q.asm.gb).apply(null, arguments) + }), + (Q._crypto_pwhash_str_alg = function () { + return (Q._crypto_pwhash_str_alg = Q.asm.hb).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_str_verify = function () { + return (Q._crypto_pwhash_str_verify = Q.asm.ib).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_str_needs_rehash = function () { + return (Q._crypto_pwhash_str_needs_rehash = Q.asm.jb).apply( + null, + arguments + ) + }), + (Q._crypto_scalarmult_base = function () { + return (Q._crypto_scalarmult_base = Q.asm.kb).apply( + null, + arguments + ) + }), + (Q._crypto_scalarmult = function () { + return (Q._crypto_scalarmult = Q.asm.lb).apply(null, arguments) + }), + (Q._crypto_scalarmult_bytes = function () { + return (Q._crypto_scalarmult_bytes = Q.asm.mb).apply( + null, + arguments + ) + }), + (Q._crypto_scalarmult_scalarbytes = function () { + return (Q._crypto_scalarmult_scalarbytes = Q.asm.nb).apply( + null, + arguments + ) + }), + (Q._crypto_secretbox_keybytes = function () { + return (Q._crypto_secretbox_keybytes = Q.asm.ob).apply( + null, + arguments + ) + }), + (Q._crypto_secretbox_noncebytes = function () { + return (Q._crypto_secretbox_noncebytes = Q.asm.pb).apply( + null, + arguments + ) + }), + (Q._crypto_secretbox_macbytes = function () { + return (Q._crypto_secretbox_macbytes = Q.asm.qb).apply( + null, + arguments + ) + }), + (Q._crypto_secretbox_messagebytes_max = function () { + return (Q._crypto_secretbox_messagebytes_max = Q.asm.rb).apply( + null, + arguments + ) + }), + (Q._crypto_secretbox_keygen = function () { + return (Q._crypto_secretbox_keygen = Q.asm.sb).apply( + null, + arguments + ) + }), + (Q._crypto_secretbox_detached = function () { + return (Q._crypto_secretbox_detached = Q.asm.tb).apply( + null, + arguments + ) + }), + (Q._crypto_secretbox_easy = function () { + return (Q._crypto_secretbox_easy = Q.asm.ub).apply( + null, + arguments + ) + }), + (Q._crypto_secretbox_open_detached = function () { + return (Q._crypto_secretbox_open_detached = Q.asm.vb).apply( + null, + arguments + ) + }), + (Q._crypto_secretbox_open_easy = function () { + return (Q._crypto_secretbox_open_easy = Q.asm.wb).apply( + null, + arguments + ) + }), + (Q._crypto_secretstream_xchacha20poly1305_keygen = function () { + return (Q._crypto_secretstream_xchacha20poly1305_keygen = + Q.asm.xb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_init_push = function () { + return (Q._crypto_secretstream_xchacha20poly1305_init_push = + Q.asm.yb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_init_pull = function () { + return (Q._crypto_secretstream_xchacha20poly1305_init_pull = + Q.asm.zb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_rekey = function () { + return (Q._crypto_secretstream_xchacha20poly1305_rekey = + Q.asm.Ab).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_push = function () { + return (Q._crypto_secretstream_xchacha20poly1305_push = + Q.asm.Bb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_pull = function () { + return (Q._crypto_secretstream_xchacha20poly1305_pull = + Q.asm.Cb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_statebytes = function () { + return (Q._crypto_secretstream_xchacha20poly1305_statebytes = + Q.asm.Db).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_abytes = function () { + return (Q._crypto_secretstream_xchacha20poly1305_abytes = + Q.asm.Eb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_headerbytes = + function () { + return (Q._crypto_secretstream_xchacha20poly1305_headerbytes = + Q.asm.Fb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_keybytes = function () { + return (Q._crypto_secretstream_xchacha20poly1305_keybytes = + Q.asm.Gb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_messagebytes_max = + function () { + return (Q._crypto_secretstream_xchacha20poly1305_messagebytes_max = + Q.asm.Hb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_tag_message = + function () { + return (Q._crypto_secretstream_xchacha20poly1305_tag_message = + Q.asm.Ib).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_tag_push = function () { + return (Q._crypto_secretstream_xchacha20poly1305_tag_push = + Q.asm.Jb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_tag_rekey = function () { + return (Q._crypto_secretstream_xchacha20poly1305_tag_rekey = + Q.asm.Kb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_tag_final = function () { + return (Q._crypto_secretstream_xchacha20poly1305_tag_final = + Q.asm.Lb).apply(null, arguments) + }), + (Q._crypto_shorthash_bytes = function () { + return (Q._crypto_shorthash_bytes = Q.asm.Mb).apply( + null, + arguments + ) + }), + (Q._crypto_shorthash_keybytes = function () { + return (Q._crypto_shorthash_keybytes = Q.asm.Nb).apply( + null, + arguments + ) + }), + (Q._crypto_shorthash = function () { + return (Q._crypto_shorthash = Q.asm.Ob).apply(null, arguments) + }), + (Q._crypto_shorthash_keygen = function () { + return (Q._crypto_shorthash_keygen = Q.asm.Pb).apply( + null, + arguments + ) + }), + (Q._crypto_sign_statebytes = function () { + return (Q._crypto_sign_statebytes = Q.asm.Qb).apply( + null, + arguments + ) + }), + (Q._crypto_sign_bytes = function () { + return (Q._crypto_sign_bytes = Q.asm.Rb).apply(null, arguments) + }), + (Q._crypto_sign_seedbytes = function () { + return (Q._crypto_sign_seedbytes = Q.asm.Sb).apply( + null, + arguments + ) + }), + (Q._crypto_sign_publickeybytes = function () { + return (Q._crypto_sign_publickeybytes = Q.asm.Tb).apply( + null, + arguments + ) + }), + (Q._crypto_sign_secretkeybytes = function () { + return (Q._crypto_sign_secretkeybytes = Q.asm.Ub).apply( + null, + arguments + ) + }), + (Q._crypto_sign_messagebytes_max = function () { + return (Q._crypto_sign_messagebytes_max = Q.asm.Vb).apply( + null, + arguments + ) + }), + (Q._crypto_sign_seed_keypair = function () { + return (Q._crypto_sign_seed_keypair = Q.asm.Wb).apply( + null, + arguments + ) + }), + (Q._crypto_sign_keypair = function () { + return (Q._crypto_sign_keypair = Q.asm.Xb).apply(null, arguments) + }), + (Q._crypto_sign = function () { + return (Q._crypto_sign = Q.asm.Yb).apply(null, arguments) + }), + (Q._crypto_sign_open = function () { + return (Q._crypto_sign_open = Q.asm.Zb).apply(null, arguments) + }), + (Q._crypto_sign_detached = function () { + return (Q._crypto_sign_detached = Q.asm._b).apply(null, arguments) + }), + (Q._crypto_sign_verify_detached = function () { + return (Q._crypto_sign_verify_detached = Q.asm.$b).apply( + null, + arguments + ) + }), + (Q._crypto_sign_init = function () { + return (Q._crypto_sign_init = Q.asm.ac).apply(null, arguments) + }), + (Q._crypto_sign_update = function () { + return (Q._crypto_sign_update = Q.asm.bc).apply(null, arguments) + }), + (Q._crypto_sign_final_create = function () { + return (Q._crypto_sign_final_create = Q.asm.cc).apply( + null, + arguments + ) + }), + (Q._crypto_sign_final_verify = function () { + return (Q._crypto_sign_final_verify = Q.asm.dc).apply( + null, + arguments + ) + }), + (Q._crypto_sign_ed25519_pk_to_curve25519 = function () { + return (Q._crypto_sign_ed25519_pk_to_curve25519 = Q.asm.ec).apply( + null, + arguments + ) + }), + (Q._crypto_sign_ed25519_sk_to_curve25519 = function () { + return (Q._crypto_sign_ed25519_sk_to_curve25519 = Q.asm.fc).apply( + null, + arguments + ) + }), + (Q._randombytes_random = function () { + return (Q._randombytes_random = Q.asm.gc).apply(null, arguments) + }), + (Q._randombytes_stir = function () { + return (Q._randombytes_stir = Q.asm.hc).apply(null, arguments) + }), + (Q._randombytes_uniform = function () { + return (Q._randombytes_uniform = Q.asm.ic).apply(null, arguments) + }), + (Q._randombytes_buf = function () { + return (Q._randombytes_buf = Q.asm.jc).apply(null, arguments) + }), + (Q._randombytes_buf_deterministic = function () { + return (Q._randombytes_buf_deterministic = Q.asm.kc).apply( + null, + arguments + ) + }), + (Q._randombytes_seedbytes = function () { + return (Q._randombytes_seedbytes = Q.asm.lc).apply( + null, + arguments + ) + }), + (Q._randombytes_close = function () { + return (Q._randombytes_close = Q.asm.mc).apply(null, arguments) + }), + (Q._randombytes = function () { + return (Q._randombytes = Q.asm.nc).apply(null, arguments) + }), + (Q._sodium_bin2hex = function () { + return (Q._sodium_bin2hex = Q.asm.oc).apply(null, arguments) + }), + (Q._sodium_hex2bin = function () { + return (Q._sodium_hex2bin = Q.asm.pc).apply(null, arguments) + }), + (Q._sodium_base64_encoded_len = function () { + return (Q._sodium_base64_encoded_len = Q.asm.qc).apply( + null, + arguments + ) + }), + (Q._sodium_bin2base64 = function () { + return (Q._sodium_bin2base64 = Q.asm.rc).apply(null, arguments) + }), + (Q._sodium_base642bin = function () { + return (Q._sodium_base642bin = Q.asm.sc).apply(null, arguments) + }), + (Q._sodium_init = function () { + return (Q._sodium_init = Q.asm.tc).apply(null, arguments) + }), + (Q._sodium_pad = function () { + return (Q._sodium_pad = Q.asm.uc).apply(null, arguments) + }), + (Q._sodium_unpad = function () { + return (Q._sodium_unpad = Q.asm.vc).apply(null, arguments) + }), + (Q._sodium_version_string = function () { + return (Q._sodium_version_string = Q.asm.wc).apply( + null, + arguments + ) + }), + (Q._sodium_library_version_major = function () { + return (Q._sodium_library_version_major = Q.asm.xc).apply( + null, + arguments + ) + }), + (Q._sodium_library_version_minor = function () { + return (Q._sodium_library_version_minor = Q.asm.yc).apply( + null, + arguments + ) + }), + (Q._sodium_library_minimal = function () { + return (Q._sodium_library_minimal = Q.asm.zc).apply( + null, + arguments + ) + }), + (Q.___errno_location = function () { + return (SA = Q.___errno_location = Q.asm.Ac).apply( + null, + arguments + ) + })) + function NA(A) { + function I() { + mA || + ((mA = !0), + (Q.calledRun = !0), + F || + (X(), + V(), + Q.onRuntimeInitialized && Q.onRuntimeInitialized(), + W())) + } + ;(A = A || E), + Z > 0 || + (q(), + Z > 0 || + (Q.setStatus + ? (Q.setStatus('Running...'), + setTimeout(function () { + setTimeout(function () { + Q.setStatus('') + }, 1), + I() + }, 1)) + : I())) + } + if ( + ((Q._malloc = function () { + return (Q._malloc = Q.asm.Bc).apply(null, arguments) + }), + (Q._free = function () { + return (Q._free = Q.asm.Cc).apply(null, arguments) + }), + (Q.setValue = p), + (Q.getValue = l), + (Q.UTF8ToString = N), + (z = function A() { + mA || NA(), mA || (z = A) + }), + (Q.run = NA), + Q.preInit) + ) + for ( + 'function' == typeof Q.preInit && (Q.preInit = [Q.preInit]); + Q.preInit.length > 0; + + ) + Q.preInit.pop()() + NA() + }) + }) + var g, + Q = void 0 !== Q ? Q : {}, + C = {} + for (g in Q) Q.hasOwnProperty(g) && (C[g] = Q[g]) + var E = [], + i = !1, + n = !1, + a = !1, + r = !1 + ;(i = 'object' == typeof window), + (n = 'function' == typeof importScripts), + (a = + 'object' == typeof process && + 'object' == typeof process.versions && + 'string' == typeof process.versions.node), + (r = !i && !a && !n) + var o, + e, + t, + f, + c, + y = '' + function s(A) { + return Q.locateFile ? Q.locateFile(A, y) : y + A + } + a + ? ((y = n ? require('path').dirname(y) + '/' : __dirname + '/'), + (o = function (A, I) { + var g = HA(A) + return g + ? I + ? g + : g.toString() + : (f || (f = require('fs')), + c || (c = require('path')), + (A = c.normalize(A)), + f.readFileSync(A, I ? null : 'utf8')) + }), + (t = function (A) { + var I = o(A, !0) + return I.buffer || (I = new Uint8Array(I)), F(I.buffer), I + }), + process.argv.length > 1 && process.argv[1].replace(/\\/g, '/'), + (E = process.argv.slice(2)), + 'undefined' != typeof module && (module.exports = Q), + (Q.inspect = function () { + return '[Emscripten Module object]' + })) + : r + ? ('undefined' != typeof read && + (o = function (A) { + var I = HA(A) + return I ? GA(I) : read(A) + }), + (t = function (A) { + var I + return (I = HA(A)) + ? I + : 'function' == typeof readbuffer + ? new Uint8Array(readbuffer(A)) + : (F('object' == typeof (I = read(A, 'binary'))), I) + }), + 'undefined' != typeof scriptArgs + ? (E = scriptArgs) + : void 0 !== arguments && (E = arguments), + 'undefined' != typeof print && + ('undefined' == typeof console && (console = {}), + (console.log = print), + (console.warn = console.error = + 'undefined' != typeof printErr ? printErr : print))) + : (i || n) && + (n + ? (y = self.location.href) + : 'undefined' != typeof document && + document.currentScript && + (y = document.currentScript.src), + (y = 0 !== y.indexOf('blob:') ? y.substr(0, y.lastIndexOf('/') + 1) : ''), + (o = function (A) { + try { + var I = new XMLHttpRequest() + return I.open('GET', A, !1), I.send(null), I.responseText + } catch (I) { + var g = HA(A) + if (g) return GA(g) + throw I + } + }), + n && + (t = function (A) { + try { + var I = new XMLHttpRequest() + return ( + I.open('GET', A, !1), + (I.responseType = 'arraybuffer'), + I.send(null), + new Uint8Array(I.response) + ) + } catch (I) { + var g = HA(A) + if (g) return g + throw I + } + }), + (e = function (A, I, g) { + var B = new XMLHttpRequest() + B.open('GET', A, !0), + (B.responseType = 'arraybuffer'), + (B.onload = function () { + if (200 == B.status || (0 == B.status && B.response)) I(B.response) + else { + var Q = HA(A) + Q ? I(Q.buffer) : g() + } + }), + (B.onerror = g), + B.send(null) + })), + Q.print + var w, + h, + D = Q.printErr || void 0 + for (g in C) C.hasOwnProperty(g) && (Q[g] = C[g]) + function u(A, I, g, B) { + switch (('*' === (g = g || 'i8').charAt(g.length - 1) && (g = 'i32'), g)) { + case 'i1': + case 'i8': + k[A >> 0] = I + break + case 'i16': + H[A >> 1] = I + break + case 'i32': + Y[A >> 2] = I + break + case 'i64': + ;(EA = [ + I >>> 0, + ((CA = I), + +Math.abs(CA) >= 1 + ? CA > 0 + ? (0 | Math.min(+Math.floor(CA / 4294967296), 4294967295)) >>> 0 + : ~~+Math.ceil((CA - +(~~CA >>> 0)) / 4294967296) >>> 0 + : 0) + ]), + (Y[A >> 2] = EA[0]), + (Y[(A + 4) >> 2] = EA[1]) + break + case 'float': + b[A >> 2] = I + break + case 'double': + m[A >> 3] = I + break + default: + $('invalid type for setValue: ' + g) + } + } + function p(A, I, g) { + switch (('*' === (I = I || 'i8').charAt(I.length - 1) && (I = 'i32'), I)) { + case 'i1': + case 'i8': + return k[A >> 0] + case 'i16': + return H[A >> 1] + case 'i32': + case 'i64': + return Y[A >> 2] + case 'float': + return b[A >> 2] + case 'double': + return m[A >> 3] + default: + $('invalid type for getValue: ' + I) + } + return null + } + ;(C = null), + Q.arguments && (E = Q.arguments), + Q.thisProgram && Q.thisProgram, + Q.quit && Q.quit, + Q.wasmBinary && (w = Q.wasmBinary), + Q.noExitRuntime && Q.noExitRuntime, + 'object' != typeof WebAssembly && $('no native wasm support detected') + var l = !1 + function F(A, I) { + A || $('Assertion failed: ' + I) + } + var G, + k, + _, + H, + Y, + b, + m, + v = 'undefined' != typeof TextDecoder ? new TextDecoder('utf8') : void 0 + function U(A, I, g) { + for (var B = I + g, Q = I; A[Q] && !(Q >= B); ) ++Q + if (Q - I > 16 && A.subarray && v) return v.decode(A.subarray(I, Q)) + for (var C = ''; I < Q; ) { + var E = A[I++] + if (128 & E) { + var i = 63 & A[I++] + if (192 != (224 & E)) { + var n = 63 & A[I++] + if ( + (E = + 224 == (240 & E) + ? ((15 & E) << 12) | (i << 6) | n + : ((7 & E) << 18) | (i << 12) | (n << 6) | (63 & A[I++])) < + 65536 + ) + C += String.fromCharCode(E) + else { + var a = E - 65536 + C += String.fromCharCode(55296 | (a >> 10), 56320 | (1023 & a)) + } + } else C += String.fromCharCode(((31 & E) << 6) | i) + } else C += String.fromCharCode(E) + } + return C + } + function S(A, I) { + return A ? U(_, A, I) : '' + } + function N(A, I) { + return A % I > 0 && (A += I - (A % I)), A + } + function M(A) { + ;(G = A), + (Q.HEAP8 = k = new Int8Array(A)), + (Q.HEAP16 = H = new Int16Array(A)), + (Q.HEAP32 = Y = new Int32Array(A)), + (Q.HEAPU8 = _ = new Uint8Array(A)), + (Q.HEAPU16 = new Uint16Array(A)), + (Q.HEAPU32 = new Uint32Array(A)), + (Q.HEAPF32 = b = new Float32Array(A)), + (Q.HEAPF64 = m = new Float64Array(A)) + } + Q.INITIAL_MEMORY + var d, + P = [], + R = [], + J = [], + x = [] + function L() { + if (Q.preRun) + for ( + 'function' == typeof Q.preRun && (Q.preRun = [Q.preRun]); + Q.preRun.length; + + ) + V(Q.preRun.shift()) + eA(P) + } + function K() { + eA(R) + } + function q() { + eA(J) + } + function X() { + if (Q.postRun) + for ( + 'function' == typeof Q.postRun && (Q.postRun = [Q.postRun]); + Q.postRun.length; + + ) + W(Q.postRun.shift()) + eA(x) + } + function V(A) { + P.unshift(A) + } + function W(A) { + x.unshift(A) + } + R.push({ + func: function () { + mA() + } + }) + var T = 0, + j = null, + Z = null + function O(A) { + T++, Q.monitorRunDependencies && Q.monitorRunDependencies(T) + } + function z(A) { + if ( + (T--, + Q.monitorRunDependencies && Q.monitorRunDependencies(T), + 0 == T && (null !== j && (clearInterval(j), (j = null)), Z)) + ) { + var I = Z + ;(Z = null), I() + } + } + function $(A) { + throw ( + (Q.onAbort && Q.onAbort(A), + D((A += '')), + (l = !0), + (A = 'abort(' + A + '). Build with -s ASSERTIONS=1 for more info.'), + new WebAssembly.RuntimeError(A)) + ) + } + function AA(A, I) { + return String.prototype.startsWith ? A.startsWith(I) : 0 === A.indexOf(I) + } + ;(Q.preloadedImages = {}), (Q.preloadedAudios = {}) + var IA = 'data:application/octet-stream;base64,' + function gA(A) { + return AA(A, IA) + } + var BA = 'file://' + function QA(A) { + return AA(A, BA) + } + var CA, + EA, + iA = + 'data:application/octet-stream;base64,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CiASfnwgCSALfnwiEUKAgIAQfCIUQhqHfCIiQoCAgAh8IiNCGYd8IhkgGUKAgIAQfCIZQoCAgOAPg30+AgggACASIBh+IA0gDn58IAkgEH58IAwgHH58IAsgF358IBNCGod8IhMgE0KAgIAIfCITQoCAgPAPg30+AhwgACAMIBp+IAkgFX58IBAgFn58IAogD358IAsgDX58IBlCGod8IgogCkKAgIAIfCIKQoCAgPAPg30+AgwgACAQIBJ+IA0gDX58IA4gD358IAkgG358IAwgF358IAsgA6wiDX58IBNCGYd8IgsgC0KAgIAQfCILQoCAgOAPg30+AiAgACAgICFCgICA8A+DfSAeIB9CgICAYIN9IApCGYd8IgpCgICAEHwiD0IaiHw+AhQgACAKIA9CgICA4A+DfT4CECAAIA4gEH4gGCAdfnwgEiAcfnwgCSAXfnwgDCANfnwgC0Iah3wiCSAJQoCAgAh8IglCgICA8A+DfT4CJCAAICIgI0KAgIDwD4N9IBEgFEKAgIBgg30gCUIZh0ITfnwiCUKAgIAQfCIMQhqIfD4CBCAAIAkgDEKAgIDgD4N9PgIACxAAIAAzAAAgADEAAkIQhoQL8wICAn8BfgJAIAJFDQAgACACaiIDQQFrIAE6AAAgACABOgAAIAJBA0kNACADQQJrIAE6AAAgACABOgABIANBA2sgAToAACAAIAE6AAIgAkEHSQ0AIANBBGsgAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBBGsgATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQQhrIAE2AgAgAkEMayABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkEQayABNgIAIAJBFGsgATYCACACQRhrIAE2AgAgAkEcayABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkEgayICQR9LDQALCyAACwkAIAAgATcAAAuCBAEDfyACQYAETwRAIAAgASACEAQaIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAkEBSARAIAAhAgwBCyAAQQNxRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADTw0BIAJBA3ENAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvsAQESfyACKAIEIQMgASgCBCEEIAIoAgghBSABKAIIIQYgAigCDCEHIAEoAgwhCCACKAIQIQkgASgCECEKIAIoAhQhCyABKAIUIQwgAigCGCENIAEoAhghDiACKAIcIQ8gASgCHCEQIAIoAiAhESABKAIgIRIgAigCJCETIAEoAiQhFCAAIAIoAgAgASgCAGo2AgAgACATIBRqNgIkIAAgESASajYCICAAIA8gEGo2AhwgACANIA5qNgIYIAAgCyAMajYCFCAAIAkgCmo2AhAgACAHIAhqNgIMIAAgBSAGajYCCCAAIAMgBGo2AgQLGAEBf0HEnAIoAgAiAARAIAARDgALEAIAC0ABA38gACABIAFB+ABqIgIQCyAAQShqIAFBKGoiAyABQdAAaiIEEAsgAEHQAGogBCACEAsgAEH4AGogASADEAsL7AEBEn8gAigCBCEDIAEoAgQhBCACKAIIIQUgASgCCCEGIAIoAgwhByABKAIMIQggAigCECEJIAEoAhAhCiACKAIUIQsgASgCFCEMIAIoAhghDSABKAIYIQ4gAigCHCEPIAEoAhwhECACKAIgIREg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czYCFCABIAUgEHM2AhAgASAEIA9zNgIMIAEgAyANczYCCCABIAAgC3M2AgQgASAWIBdzNgIACykBAX8jAEGAAWsiAiQAIAJBCGogARDoAiAAIAJBCGoQOSACQYABaiQACzIBAX8gACABIAFB+ABqIgIQCyAAQShqIAFBKGogAUHQAGoiARALIABB0ABqIAEgAhALC68CARN/IAEoAgQhDCAAKAIEIQMgASgCCCENIAAoAgghBCABKAIMIQ4gACgCDCEFIAEoAhAhDyAAKAIQIQYgASgCFCEQIAAoAhQhByABKAIYIREgACgCGCEIIAEoAhwhEiAAKAIcIQkgASgCICETIAAoAiAhCiABKAIkIRQgACgCJCELIABBACACayICIAAoAgAiFSABKAIAc3EgFXM2AgAgACALIAsgFHMgAnFzNgIkIAAgCiAKIBNzIAJxczYCICAAIAkgCSAScyACcXM2AhwgACAIIAggEXMgAnFzNgIYIAAgByAHIBBzIAJxczYCFCAAIAYgBiAPcyACcXM2AhAgACAFIAUgDnMgAnFzNgIMIAAgBCAEIA1zIAJxczYCCCAAIAMgAyAMcyACcXM2AgQLJAEBfyMAQSBrIgEkACABIAAQLSABQSAQZSEAIAFBIGokACAAC6YEAgp/Dn4gACgCJCEEIAAoAiAhBSAAKAIcIQYgACgCGCEHIAAoAhQhAyACQhBaBEAgAC0AUEVBGHQhCCAAKAIEIglBBWytIRkgACgCCCIKQQVsrSEXIAAoAgwiC0EFbK0hFSAAKAIQIgxBBWytIRMgDK0hGiALrSEYIAqtIRYgCa0hFCAANQIAIRIDQCABKAADQQJ2Qf///x9xIAdqrSINIBh+IAEoAABB////H3EgA2qtIg4gGn58IAEoAAZBBHZB////H3EgBmqtIg8gFn58IAEoAAlBBnYgBWqtIhAgFH58IAQgCGogASgADEEIdmqtIhEgEn58IA0gFn4gDiAYfnwgDyAUfnwgECASfnwgESATfnwgDSAUfiAOIBZ+fCAPIBJ+fCAQIBN+fCARIBV+fCANIBJ+IA4gFH58IA8gE358IBAgFX58IBEgF358IA0gE34gDiASfnwgDyAVfnwgECAXfnwgESAZfnwiDUIaiEL/////D4N8Ig5CGohC/////w+DfCIPQhqIQv////8Pg3wiEEIaiEL/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aiAFIAYQDCAJQQhqIAYQESAJQdAAaiAJQQhqQggQDCAAIAMgBCAHIAgQogEgCUHQAGogACAEEAwgCUEIaiAEEBEgCUHQAGogCUEIakIIEAwgCUHQAGogARAjIAlB0ABqQYACEAkgAgRAIAJCEDcDAAsgCUHQAmokAEEACygAIAJCgICAgBBaBEAQFAALIAAgASACIANCASAEQfCXAigCABEVABoLFgAgAELAACABIAJB6JcCKAIAEREAGgsyACAAIAIEfyACKAAABUEACzYCMCAAIAEoAAA2AjQgACABKAAENgI4IAAgASgACDYCPAs9ACAAAn8gAgRAIAAgAigAADYCMCACKAAEDAELIABBADYCMEEACzYCNCAAIAEoAAA2AjggACABKAAENgI8CxkAIAAgASACIANCASAEQeSXAigCABEVABoLKAEBfyMAQRBrIgAkACAAQQA6AA9BpgggAEEPakEAEAEaIABBEGokAAtqAQN/IwBBEGsiAyQAIANBADoAD0F/IQUgACABIAJB2JcCKAIAEQMARQRAA0AgAyAAIARqLQAAIAMtAA9yOgAPIARBAWoiBEEgRw0AC0EAIAMtAA9BAWtBCHZBAXFrIQULIANBEGokACAFCxMAIAAgAUHAB2xBoBtqIAIQ5gILEAAgAEIANwIAIABCADcCCAsdACAAEDggAEEoahAdIABB0ABqEB0gAEH4AGoQOAuAAgEIfwNAIAAgAmogASACQQN2ai0AACACQQdxdkEBcToAACACQQFqIgJBgAJHDQALA0AgBCIBQQFqIQQCQCAAIAFqIgYtAABFDQAgBCECQQEhBSABQf4BSw0AA0ACQCAAIAJqIgMsAAAiB0UNACAHIAV0IgcgBiwAACIIaiIJQQ9MBEAgBiAJOgAAIANBADoAAAwBCyAIIAdrIgNBcUgNAiAGIAM6AAADQCAAIAJqIgMtAABFBEAgA0EBOgAADAILIANBADoAACACQf8BSSEDIAJBAWohAiADDQALCyAFQQVLDQEgBUEBaiIFIAFqIgJBgAJJDQALCyAEQYACRw0ACwuVAQEEfyMAQTBrIgUkACAAIAFBKGoiAyABEBMgAEEoaiIEIAMgARAWIABB0ABqIgMgACACQShqEAsgBCAEIAIQCyAAQfgAaiIGIAJB+ABqIAFB+ABqEAsgACABQdAAaiACQdAA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CSACQYAIaiQAC/ADAQJ/IwAiAyEEIANBwANrQUBxIgMkACAARSABRXJFBEAgA0FAa0EAQQBBwAAQPhogA0E8aiABKAIwEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIEEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIsEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIoEAogA0FAayADQTxqQgQQGBogA0E8akETEAogA0FAayADQTxqQgQQGBogA0E8aiACEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIMEAogA0FAayADQTxqQgQQGBoCQCABKAIIIgJFDQAgA0FAayACIAE1AgwQGBogAS0AOEEBcUUNACABKAIIIAEoAgwQCSABQQA2AgwLIANBPGogASgCFBAKIANBQGsgA0E8akIEEBgaIAEoAhAiAgRAIANBQGsgAiABNQIUEBgaCyADQTxqIAEoAhwQCiADQUBrIANBPGpCBBAYGgJAIAEoAhgiAkUNACADQUBrIAIgATUCHBAYGiABLQA4QQJxRQ0AIAEoAhggASgCHBAJIAFBADYCHAsgA0E8aiABKAIkEAogA0FAayADQTxqQgQQGBogASgCICICBEAgA0FAayACIAE1AiQQGBoLIANBQGsgAEHAABA9GgsgBCQAC68BAQN/IwBBEGsiAiQAQWohAwJAIABFIAFFcg0AIAFBCnQiBCABbkGACEcNACAAQQwQICIBNgIAIAFFDQAgAUIANwIAQYCYAiACQQxqIAQQsgEiATYCAAJAAkAgAQRAIAJBADYCDAwBCyACKAIMIgENAQsgACgCABAZIABBADYCAAwBCyAAKAIAIAE2AgAgACgCACABNgIEIAAoAgAgBDYCCEEAIQMLIAJBEGokACADC4cBAQJ/IwBB0ABrIgMkAEFnIQICQCAARSABRXINACAAIAAoAhRBA3QQICICNgIEIAJFBEBBaiECDAELIAAgACgCEBC8ASICBEAgACABKAI4EIMBDAELIAMgASAAKAIkELsBIANBQGtBCBAJIAMgABC6ASADQcgAEAlBACECCyADQdAAaiQAIAILkwEBBH8jAEEgayICJAACQCAARQ0AIAAoAhxFDQAgAiABNgIQQQEhBANAIAIgAzoAGEEAIQFBACEFIAQEQANAIAJBADYCHCACIAIpAxg3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ACAAIAEgAiADrSAErUIghoQgBSAGEGoLFwAgACABIAKtIAOtQiCGhCAEIAUQuwILFgAgACABKQAANwAwIAAgASkACDcAOAsYACAAIAEgAiADrSAErUIghoQgBSAGEGsLEwAgACABrSACrUIghoQgAxCSAgsTACAAIAEgAq0gA61CIIaEEJMCCyEAIAAgASACrSADrUIghoQgBK0gBa1CIIaEIAYgBxCUAgsfACAAIAEgAq0gA61CIIaEIAStIAWtQiCGhCAGEIwBCy0AIAAgAa0gAq1CIIaEIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAkgChCVAgsXACAAIAEgAq0gA61CIIaEIAQgBRCzAgsSACAAIAEgAq0gA61CIIaEEDQLEgAgACABIAKtIAOtQiCGhBAlCxkAIAAgASACIAOtIAStQiCGhCAFIAYQlAELFgAgACABKQAANwAgIAAgASkACDcAKAsXACAAIAEgAq0gA61CIIaEIAQgBRC1AgsVACAAIAEgAq0gA61CIIaEIAQQtgILGQAgACABIAKtIAOtQiCGhCAEIAUgBhCVAQsXACAAIAEgAq0gA61CIIaEIAQgBRC4AgsbACAAIAEgAiADrSAErUIghoQgBSAGIAcQlgELGAAgACABIAIgA60gBK1CIIaEIAUgBhBoCxkAIAAgASACrSADrUIghoQgBCAFIAYQlwELFwAgACABIAKtIAOtQiCGhCAEIAUQuQILGwAgACABIAIgA60gBK1CIIaEIAUgBiAHEJgBCxgAIAAgASACIAOtIAStQiCGhCAFIAYQaQsVACAAIAEgAq0gA61CIIaEIAQQwAILFQAgACABIAKtIAOtQiCGhCAEEJoBCyUAIAAgASADIAStIAWtQiCGhCAGIAetIAitQiCGhCAJIAoQyQILJQAgACACIAOtIAStQiCGhCAFIAYgB60gCK1CIIaEIAkgChCcAQslACAAIAEgAiADrSAErUIghoQgBSAGrSAHrUIghoQgCSAKEMsCCycAIAAgASACIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAogCxCdAQslACAAIAEgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCSAKEM8CCyUAIAAgAiADrSAErUIghoQgBSAGIAetIAitQiCGhCAJIAoQngELJQAgACABIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAkgChDQAgslACAAIAIgA60gBK1CIIaEIAUgBiAHrSAIrUIghoQgCSAKEJ8BCyUAIAAgASACIAOtIAStQiCGhCAFIAatIAetQiCGhCAJIAoQ0QILJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEKABCyUAIAAgASACIAOtIAStQiCGhCAFIAatIAetQiCGhCAJIAoQ0gILJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEKEBCwQAQQoLBgBBspcCCwsAIAAgASACEIICCw0AIAAgASACIAMQgwILCAAgABA1QQALCQAgACABEIgCCwsAIAAgASACEIoBCwUAQb9/CwUAQdABCywBAX8jAEFAaiIDJAAgACADECcgASADQsAAIAJBARCHASEAIANBQGskACAACy4BAX8jAEFAaiIEJAAgACAEECcgASACIARCwAAgA0EBEIkBIQAgBEFAayQAIAALewEBfwJAAkACQCADQsAAVA0AIANCQHwiA0K/////D1YNACACIAJBQGsiBSADIAQQhgFFDQEgAEUNACAAQQAgA6cQEBoLQX8hAiABRQ0BIAFCADcDAEF/DwsgAQRAIAEgAzcDAAtBACECIABFDQAgACAFIAOnEEcaCyACC3MBAX8jAEEQayIFJAAgACAFQQhqIABBQGsgAiADpyICEEcgAyAEEIgBGgJAIAUpAwhCwABSBEAgAQRAIAFCADcDAAsgAEEAIAJBQGsQEBpBfyEADAELQQAhACABRQ0AIAEgA0JAfTcDAAsgBUEQaiQAIAALbQEBfyMAQUBqIgIkACACIAFCIBA0GiACIAItAABB+AFxOgAAIAIgAi0AH0E/cUHAAHI6AB8gACACKQMQNwAQIAAgAikDCDcACCAAIAIpAwA3AAAgACACKQMYNwAYIAJBwAAQCSACQUBrJABBAAuGAQECfyMAQYACayICJABBfyEDAkAgARB1DQAgAkHgAGogARCuAQ0AIAJB4ABqEOUCRQ0AIAIQHSACIAIgAkGIAWoiARAWIAJBMGoQHSACQTBqIAJBMGogARATIAIgAhA6IAJBMGogAkEwaiACEAsgACACQTBqEC1BACEDCyACQYACaiQAIAMLLAEBfyMAQSBrIgIkACACQSAQHyAAIAEg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ASACQhB9IAMgBBBqBSAFCwslACACQvD///8PWgRAEBQACyAAQRBqIAAgASACIAMgBBBrGkEACwsAIAAgASACEL8CCy8AIAFCgICAgBBaBEBBACIAQYQOaiAAQZgOakHFASAAQbIOahAAAAsgACABpxAfCzMBAn8jAEEgayIDJABBfyEEIAMgAiABEKgBRQRAIABB4JUCIAMQbSEECyADQSBqJAAgBAtWAQF/IwBBQGoiAyQAIAMgAkIgEDQaIAEgAykDGDcAGCABIAMpAxA3ABAgASADKQMINwAIIAEgAykDADcAACADQcAAEAkgACABEHIhACADQUBrJAAgAAtAAQF/IwBBIGsiBCQAIAQgASACIAMQmgEaIAAgBBCAASEBIAQgAEEgEEUhAyAEQSBqJAAgA0F/IAEgACAERhtyC0MBAX8jAEFAaiICJAAgACACEMICIAEgAikDGDcAGCABIAIpAxA3ABAgASACKQMINwAIIAEgAikDADcAACACQUBrJAALNwEBfyMAQUBqIgIkACAAIAIQJyAAQdABaiIAIAJCwAAQHBogACABECcgAkHAABAJIAJBQGskAAvhAQEDfyMAQcABayICJAAgABA1IAJBQGtBNkGAARAQGiACIAEtAABBNnM6AEBBASEDA0AgAkFAayADaiIEIAQtAAAgASADai0AAHM6AAAgA0EBaiIDQSBHDQALIAAgAkFAa0KAARAcGiAAQdABaiIAEDUgAkFAa0HcAEGAARAQGiACIAEtAABB3ABzOgBAQQEhAwNAIAJBQGsgA2oiBCAELQAAIAEgA2otAABzOgAAIANBAWoiA0EgRw0ACyAAIAJBQGtCgAEQHBogAkFAa0GAARAJIAJBwAAQCSACQcABaiQAC2YBAX4gACkAACIBQjiGIAFCKIZCgICAgICAwP8Ag4QgAUIYhkKAgICAgOA/gyABQgiGQoCAgIDwH4OEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhAsmAQJ/AkBBpJwCKAIAIgBFDQAgACgCFCIARQ0AIAARAQAhAQsgAQtkACAAIAFCKIZCgICAgICAwP8AgyABQjiGhCABQhiGQoCAgICA4D+DIAFCCIZCgICAgPAfg4SEIAFCCIhCgICA+A+DIAFCGIhCgID8B4OEIAFCKIhCgP4D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BiADakENEAggDXMiDSAGakESEAggBXMhBSAaQRJJIRAgGkECaiEaIBANAAsgACACQeXwwYsGahAKIABBBGogByASahAKIABBCGogCCATahAKIABBDGogESAUahAKIABBEGogCSAVahAKIABBFGogDkHuyIGZA2oQCiAAQRhqIAogG2oQCiAAQRxqIAsgHGoQCiAAQSBqIAwgHWoQCiAAQSRqIA8gHmoQCiAAQShqIAFBstqIywdqEAogAEEsaiAEIBZqEAogAEEwaiADIBdqEAogAEE0aiAGIBhqEAogAEE4aiANIBlqEAogAEE8aiAFQfTKgdkGahAKCzoBAX8jAEHgAGsiAyQAIANBMGogAiABEBMgAyACIAEQFiADIAMQOiAAIANBMGogAxALIANB4ABqJAALdgECfyMAQdABayICJAADQCAAIANqIAEgA2otAAA6AAAgA0EBaiIDQSBHDQALIAAgAC0AAEH4AXE6AAAgACAALQAfQT9xQcAAcjoAHyACQTBqIAAQdiACIAJB2ABqIAJBgAFqENwCIAAgAhAtIAJB0AFqJABBAAu9AwEMfiABNAIEIQIgATQCCCEDIAE0AgwhBCABNAIQIQUgATQCFCEGIAE0AhghByABNAIAIQsgACABNAIkQsK2B34iCCAIQoCAgAh8IghCgICA8A+DfSABNAIgQsK2B34gATQCHELCtgd+IglCgICACHwiCkIZh3wiDEKAgIAQfCINQhqIfD4CJCAAIAwgDUKAgIDgD4N9PgIgIAAgCSAKQoCAgPAPg30gB0LCtgd+IAZCwrYHfiIGQoCAgAh8IgdCGYd8IglCgICAEHwiCkIaiHw+AhwgACAJIApCgICA4A+DfT4CGCAAIAYgB0KAgIDwD4N9IAVCwrYHfiAEQsK2B34iBEKAgIAIfCIFQhmHfCIGQoCAgBB8IgdCGoh8PgIUIAAgBiAHQoCAgOAPg30+AhAgACAEIAVCgICA8A+DfSADQsK2B34gAkLCtgd+IgJCgICACHwiA0IZh3wiBEKAgIAQfCIFQhqIfD4CDCAAIAQgBUKAgIDgD4N9PgIIIAAgAiADQoCAgPAPg30gCEIZh0ITfiALQsK2B358IgJCgICAEHwiA0IaiHw+AgQgACACIANCgICA4A+DfT4CAAvcAQEFfyMAQRBrIgNBADYACyADQQA2AggDQCAAIAJqLQAAIQRBACEBA0AgA0EIaiABaiIFIAUtAAAgAUEFdEGgjQJqIAJqLQAAIARzcjoAACABQQFqIgFBB0cNAAsgAkEBaiICQR9HDQALIAAtAB9B/wBxIQJBACEAQQAhAQNAIANBCGogAWoiBCAELQAAIAIgAUEFdEG/jQJqLQAAc3I6AAAgAUEBaiIBQQdHDQALQQAhAQNAIANBCGogAGotAABBAWsgAXIhASAAQQFqIgBBB0cNAAsgAUEIdkEBcQvcBAEDfyMAQdACayIDJABBfyEEIAIQ3wJFBEBBACEEA0AgACAEaiABIARqLQAAOgAAIARBAWoiBEEgRw0ACyAAIAAtAABB+AFxOgAAIAAgAC0AH0E/cUHAAHI6AB8gA0GgAmogAhB7IANB8AFqEB0gA0HAAWoQOCADQZABaiADQaACahAsIANB4ABqEB1B/gEhAkEAIQQDQCADQfABaiADQZABaiAAIAIiBUEDdmotAAAgAkEHcXZBAXEiASAEcyIEEE4gA0HAAWogA0HgAGogBBBOIAJBAWshAiADQTBqIANBkAFqIANB4ABqEBYgAyADQfABaiADQcABahAWIANB8AFqIANB8AFqIANBwAFqEBMgA0HAAWogA0GQAWogA0HgAGoQEyADQeAAaiADQTBqIANB8AFqEAsgA0HAAWogA0HAAWogAxALIANBMGogAxAOIAMgA0HwAWoQDiADQZABaiADQeAAaiADQcABahATIANBwAFqIANB4ABqIANBwAFqEBYgA0HwAWogAyADQTBqEAsgAyADIANBMGoQFiADQcABaiADQcABahAOIANB4ABqIAMQ3gIgA0GQAWogA0GQAWoQDiADQTBqIANBMGogA0HgAGoQEyADQeAAaiADQaACaiADQcABahALIANBwAFqIAMgA0EwahALIAEhBCAFDQALIANB8AFqIANBkAFqIAEQTiADQcABaiADQeAAaiABEE4gA0HAAWogA0HAAWoQOiADQfABaiADQfABaiADQcABahALIAAgA0HwAWoQLUEAIQQLIANB0AJqJAAgBAtUAQV/QSAhAUEBIQIDQCAAIAFBAWsiAWotAAAiBCABQYAbai0AACIFa0EIdSACcSADQf8BcXIhAyAEIAVzQf//A2pBCHYgAnEhAiABDQALIANBAEcL6B4BOn4gARAPIRIg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CiAAIAtC////AIMgBEIVh3wiBkIKiDwAESAAIAZCAog8ABAgACAEQv///wCDIgdCAYYgBUIUiIQ8AA0gACAMQv///wCDIAZCFYd8IgRCDYg8ABQgACAEQgWIPAATIAAgBkL///8AgyIFQgaGIAdCD4iEPAAPIAAgDkL///8AgyAEQhWHfCIGPAAVIAAgBEIDhiAFQhKIhDwAEiAAIAZCCIg8ABYgACAPQv///wCDIAZCFYd8IgRCC4g8ABkgACAEQgOIPAAYIAAgEEL///8AgyAEQhWHfCIFQgaIPAAbIAAgBkIQiEIfgyAEQv///wCDIgRCBYaEPAAXIAAgDUL///8AgyAFQhWHfCIGQhGIPAAfIAAgBkIJiDwAHiAAIAZCAYg8AB0gACAFQv///wCDIgVCAoYgBEITiIQ8ABogACAGQgeGIAVCDoiEPAAcC1IBA38gAC0AH0F/c0H/AHEhAUEeIQIDQCABIAAgAmotAABBf3NyIQEgAkEBayIDIQIgAw0ACyABQf8BcUEBa0HsASAALQAAa3FBCHZBf3NBAXELjAQBAn8jAEHgDWsiAiQAIAJB4ANqIAEQGyACQcACaiABEE8gAiACQcACahAVIAJBwAJqIAIgAkHgA2oQGiACQaABaiACQcACahAVIAJBgAVqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBoAZqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBwAdqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJB4AhqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBgApqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBoAtqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBwAxqIAJBoAFqEBsgABCrAUH8ASEBA0AgAkHAAmogABBPAkAgASIDQaCLAmosAAAiAUEBTgRAIAJBoAFqIAJBwAJqEBUgAkHAAmogAkGgAWogAkHgA2ogAUH+AXFBAXZBoAFsahAaDAELIAFBf0oNACACQaABaiACQcACahAVIAJBwAJqIAJBoAFqIAJB4ANqQQAgAWtB/gFxQQF2QaABbGoQrQELIAAgAkHAAmoQFSADQQFrIQEgAw0ACyACQeANaiQACyUBAX8jAEGgAWsiASQAIAEgABDkAiABEFIhACABQaABaiQAIAAL8AEBAn8jAEGAAWsiAyQAIAAQHSAAQShqEB0gAEHQAGoQOCAAIAEgAkEAIAJBgAFxQQd2IgRrIAJxQQF0a0EYdEEYdSICQQEQKRAmIAAgAUH4AGogAkECECkQJiAAIAFB8AFqIAJBAxApECYgACABQegCaiACQQQQKRAmIAAgAUHgA2ogAkEFECkQJiAAIAFB2ARqIAJBBhApECYgACABQdAFaiACQQcQKRAmIAAgAUHIBmogAkEIECkQJiADQQhqIABBKGoQLCADQTBqIAAQLCADQdgAaiAAQdAAahB6IAAgA0EIaiAEECYgA0GAAWokAAvpBgIJfxx+IAAgASgCDCIEQQF0rCIRIAEoAgQiBUEBdKwiC34gASgCCCIGrCIWIBZ+fCABKAIQIgesIhAgASgCACIIQQF0rCIOfnwgASgCHCICQSZsrCIXIAKsIhp+fCABKAIgIglBE2ysIgwgASgCGCIDQQF0rH58IAEoAiQiCkEmbKwiDSABKAIUIgFBAXSsIhJ+fEIBhiIeQoCAgBB8Ih9CGocgCyAQfiAGQQF0rCIUIASsIht+fCABrCIYIA5+fCAMIAJBAXSsIhx+fCANIAOsIhN+fEIBhnwiIEKAgIAIfCIhQhmHIBEgG34gECAUfnwgCyASfnwgDiATfnwgDCAJrCIZfnwgDSAcfnxCAYZ8Ig8gD0KAgIAQfCIVQoCAgOAPg30+AhggACABQSZsrCAYfiAIrCIPIA9+fCADQRNsrCIPIAdBAXSsIh1+fCARIBd+fCAMIBR+fCALIA1+fEIBhiIiQoCAgBB8IiNCGocgDyASfiAOIAWsIiR+fCAQIBd+fCAMIBF+fCANIBZ+fEIBhnwiJUKAgIAIfCImQhmHIA4gFn4gCyAkfnwgDyATfnwgEiAXfnwgDCAdfnwgDSARfnxCAYZ8Ig8gD0KAgIAQfCIPQoCAgOAPg30+AgggACAUIBh+IBAgEX58IAsgE358IA4gGn58IA0gGX58QgGGIBVCGod8IhUgFUKAgIAIfCIVQoCAgPAPg30+AhwgACAOIBt+IAsgFn58IBMgF358IAwgEn58IA0gEH58QgGGIA9CGod8IgwgDEKAgIAIfCIMQoCAgPAPg30+AgwgACATIBR+IBAgEH58IBEgEn58IAsgHH58IA4gGX58IA0gCqwiEH58QgGGIBVCGYd8Ig0gDUKAgIAQfCINQoCAgOAPg30+AiAgACAgICFCgICA8A+DfSAeIB9CgICAYIN9IAxCGYd8IgxCgICAEHwiEkIaiHw+AhQgACAMIBJCgICA4A+DfT4CECAAIBEgE34gGCAdfnwgFCAafnwgCyAZfnwgDiAQfnxCAYYgDUIah3wiCyALQoCAgAh8IgtCgICA8A+DfT4CJCAAICUgJkKAgIDwD4N9ICIgI0KAgIBgg30gC0IZh0ITfnwiC0KAgIAQfCIOQhqIfD4CBCAAIAsgDkKAgIDgD4N9PgIACyIAIAAgARAsIABBKGogAUEoahAsIABB0ABqIAFB0ABqECwLiwEBBH8jAEEwayIFJAAgACABQShqIgMgARATIABBKGoiBCADIAEQFiAAQdAAaiIDIAAgAkEoahALIAQgBCACEAsgAEH4AGoiBiACQdAAaiABQfgAahALIAUgAUHQAGoiASABEBMgACADIAQQFiAEIAMgBBATIAMgBSAGEBYgBiAFIAYQEyAFQTBqJAALMQEBfyMAQRBrIgAkACAAEKoBIAAoAgAEQCAAEKoBQfybAkEAQSgQEBoLIABBEGokAAvuBQEBfyMAQeARayIEJAAgBEHgD2ogARCsASAEQeANaiADEKwBIARB4ANqIAIQGyAEQcACaiACEE8gBCAEQcACahAVIARBwAJqIAQgBEHgA2oQGiAEQaABaiAEQcACahAVIARBgAVqIgEgBEGgAWoQGyAEQcACaiAEIAEQGiAEQaABaiAEQcACahAVIARBoAZqIgEgBEGgAWoQGyAEQcACaiAEIAEQGiAEQaABaiAEQcACahAVIARBwAdqIgEgBEGgAWoQGyAEQcACaiAEIAEQGiAEQaABaiAEQcACahAVIARB4AhqIgEgBEGgAWoQGyAEQcACaiAEIAEQGiAEQaABaiAEQcACahAVIARBgApqIgEgBEGgAWoQGyAEQcACaiAEIAEQGiAEQaABaiAEQcACahAVIARBoAtqIgEgBEGgAWoQGyAEQcACaiAEIAEQGiAEQaABaiAEQcACahAVIARBwAxqIARBoAFqEBsgABA4IABBKGoQHSAAQdAAahAdQf8BIQMCQANAAkAgAyICIARB4A9qai0AAA0AIARB4A1qIAJqLQAADQAgAkEBayEDIAINAQwCCwsgAkEASA0AA0AgBEHAAmogABA5AkAgAiIBIARB4A9qaiwAACICQQFOBEAgBEGgAWogBEHAAmoQFSAEQcACaiAEQaABaiAEQeADaiACQf4BcUEBdkGgAWxqEBoMAQsgAkF/Sg0AIARBoAFqIARBwAJqEBUgBEHAAmogBEGgAWogBEHgA2pBACACa0H+AXFBAXZBoAFsahCtAQsCQCAEQeANaiABaiwAACICQQFOBEAgBEGgAWogBEHAAmoQFSAEQcACaiAEQaABaiACQf4BcUEBdkH4AGxB4BFqEHcMAQsgAkF/Sg0AIARBoAFqIARBwAJqEBUgBEHAAmogBEGgAWpBACACa0H+AXFBAXZB+ABsQeARahDpAgsgACAEQcACahBQIAFBAWshAiABQQBKDQALCyAEQeARaiQACwYAQYCYAgsL4owCDQBBgAgLpwkieyByZXR1cm4gTW9kdWxlLmdldFJhbmRvbVZhbHVlKCk7IH0iAHsgaWYgKE1vZHVsZS5nZXRSYW5kb21WYWx1ZSA9PT0gdW5kZWZpbmVkKSB7IHRyeSB7IHZhciB3aW5kb3dfID0gJ29iamVjdCcgPT09IHR5cGVvZiB3aW5kb3cgPyB3aW5kb3cgOiBzZWxmOyB2YXIgY3J5cHRvXyA9IHR5cGVvZiB3aW5kb3dfLmNyeXB0byAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3dfLmNyeXB0byA6IHdpbmRvd18ubXNDcnlwdG87IHZhciByYW5kb21WYWx1ZXNTdGFuZGFyZCA9IGZ1bmN0aW9uKCkgeyB2YXIgYnVmID0gbmV3IFVpbnQzMkFycmF5KDEpOyBjcnlwdG9fLmdldFJhbmRvbVZhbHVlcyhidWYpOyByZXR1cm4gYnVmWzBdID4+PiAwOyB9OyByYW5kb21WYWx1ZXNTdGFuZGFyZCgpOyBNb2R1bGUuZ2V0UmFuZG9tVmFsdWUgPSByYW5kb21WYWx1ZXNTdGFuZGFyZDsgfSBjYXRjaCAoZSkgeyB0cnkgeyB2YXIgY3J5cHRvID0gcmVxdWlyZSgnY3J5cHRvJyk7IHZhciByYW5kb21WYWx1ZU5vZGVKUyA9IGZ1bmN0aW9uKCkgeyB2YXIgYnVmID0gY3J5cHRvWydyYW5kb21CeXRlcyddKDQpOyByZXR1cm4gKGJ1ZlswXSA8PCAyNCB8IGJ1ZlsxXSA8PCAxNiB8IGJ1ZlsyXSA8PCA4IHwgYnVmWzNdKSA+Pj4gMDsgfTsgcmFuZG9tVmFsdWVOb2RlSlMoKTsgTW9kdWxlLmdldFJhbmRvbVZhbHVlID0gcmFuZG9tVmFsdWVOb2RlSlM7IH0gY2F0Y2ggKGUpIHsgdGhyb3cgJ05vIHNlY3VyZSByYW5kb20gbnVtYmVyIGdlbmVyYXRvciBmb3VuZCc7IH0gfSB9IH0ATGlic29kaXVtRFJHYnVmX2xlbiA8PSBTSVpFX01BWAByYW5kb21ieXRlcy9yYW5kb21ieXRlcy5jAHJhbmRvbWJ5dGVzAFMtPmJ1ZmxlbiA8PSBCTEFLRTJCX0JMT0NLQllURVMAY3J5cHRvX2dlbmVyaWNoYXNoL2JsYWtlMmIvcmVmL2JsYWtlMmItcmVmLmMAYmxha2UyYl9maW5hbAAAAAAAAAAACMm882fmCWo7p8qEha5nuyv4lP5y82488TYdXzr1T6XRguatf1IOUR9sPiuMaAWba71B+6vZgx95IX4TGc3gW291dGxlbiA8PSBVSU5UOF9NQVgAY3J5cHRvX2dlbmVyaWNoYXNoL2JsYWtlMmIvcmVmL2dlbmVyaWNoYXNoX2JsYWtlMmIuYwBjcnlwdG9fZ2VuZXJpY2hhc2hfYmxha2UyYl9maW5hbAAAAAAAAAC2eFn/hXLTAL1uFf8PCmoAKcABAJjoef+8PKD/mXHO/wC34v60DUj/AAAAAAAAAACwoA7+08mG/54YjwB/aTUAYAy9AKfX+/+fTID+amXh/x78BACSDK4AQbARCydZ8bL+CuWm/3vdKv4eFNQAUoADADDR8wB3eUD/MuOc/wBuxQFnG5AAQeARC8AHhTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/AEHAGQsBAQBB4BkLsAEm6JWPwrInsEXD9Iny75jw1d+sBdPGMzmxOAKIbVP8BccXanA9TdhPujwLdg0QZw8qIFP6LDnMxk7H/XeSrAN67P///////////////////////////////////////3/t////////////////////////////////////////f+7///////////////////////////////////////9/7dP1XBpjEljWnPei3vneFABBnxsL/PABEIU7jAG98ST/+CXDAWDcNwC3TD7/w0I9ADJMpAHhpEz/TD2j/3U+HwBRkUD/dkEOAKJz1v8Gii4AfOb0/wqKjwA0GsIAuPRMAIGPKQG+9BP/e6p6/2KBRAB51ZMAVmUe/6FnmwCMWUP/7+W+AUMLtQDG8In+7kW8/+pxPP8l/zn/RbK2/oDQswB2Gn3+AwfW//EyTf9Vy8X/04f6/xkwZP+71bT+EVhpAFPRngEFc2IABK48/qs3bv/ZtRH/FLyqAJKcZv5X1q7/cnqbAeksqgB/CO8B1uzqAK8F2wAxaj3/BkLQ/wJqbv9R6hP/12vA/0OX7gATKmz/5VVxATJEh/8RagkAMmcB/1ABqAEjmB7/EKi5AThZ6P9l0vwAKfpHAMyqT/8OLu//UE3vAL3WS/8RjfkAJlBM/75VdQBW5KoAnNjQAcPPpP+WQkz/r+EQ/41QYgFM2/IAxqJyAC7amACbK/H+m6Bo/7IJ/P5kbtQADgWnAOnvo/8cl50BZZIK//6eRv5H+eQAWB4yAEQ6oP+/GGgBgUKB/8AyVf8Is4r/JvrJAHNQoACD5nEAfViTAFpExwD9TJ4AHP92AHH6/gBCSy4A5torAOV4ugGURCsAiHzuAbtrxf9UNfb/M3T+/zO7pQACEa8AQlSgAfc6HgAjQTX+Rey/AC2G9QGje90AIG4U/zQXpQC61kcA6bBgAPLvNgE5WYoAUwBU/4igZABcjnj+aHy+ALWxPv/6KVUAmIIqAWD89gCXlz/+74U+ACA4nAAtp73/joWzAYNW0wC7s5b++qoO/0RxFf/eujv/QgfxAUUGSABWnGz+N6dZAG002/4NsBf/xCxq/++VR/+kjH3/n60BADMp5wCRPiEAim9dAblTRQCQcy4AYZcQ/xjkGgAx2eIAcUvq/sGZDP+2MGD/Dg0aAIDD+f5FwTsAhCVR/n1qPADW8KkBpONCANKjTgAlNJcAY00aAO6c1f/VwNEBSS5UABRBKQE2zk8AyYOS/qpvGP+xITL+qybL/073dADR3ZkAhYCyATosGQDJJzsBvRP8ADHl0gF1u3UAtbO4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ANW7ff/oLjz/vnQq/peyE/8zPu3+zOzBAMLoPACsIp3/vRC4/mcDX/+N6ST+KRkL/xXDpgB29S0AQ9WV/58MEv+7pOMBoBkFAAxOwwErxeEAMI4p/sSbPP/fxxIBkYicAPx1qf6R4u4A7xdrAG21vP/mcDH+Sart/+e34/9Q3BQAwmt/AX/NZQAuNMUB0qsk/1gDWv84l40AYLv//ypOyAD+RkYB9H2oAMxEigF810YAZkLI/hE05AB13I/+y/h7ADgSrv+6l6T/M+jQAaDkK//5HRkBRL4/AA0AAAAA/wAAAAD1AAAAAAAA+wAAAAAAAP0AAAAA8wAAAAAHAAAAAAADAAAAAPMAAAAABQAAAAAAAAAACwAAAAAACwAAAADzAAAAAAAA/QAAAAAA/wAAAAADAAAAAPUAAAAAAAAADwAAAAAA/wAAAAD/AAAAAAcAAAAABQBBnI0CCwEBAEHAjQILAQEAQeCNAgugAeDrenw7QbiuFlbj+vGfxGraCY3rnDKx/YZiBRZfSbgAX5yVvKNQjCSx0LFVnIPvWwREXMRYHI6G2CJO3dCfEVfs////////////////////////////////////////f+3///////////////////////////////////////9/7v///////////////////////////////////////38AQaCPAgvBBQjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FsirijXmC+KQs1l7yORRDdxLztN7M/7wLW824mBpdu16Ti1SPNbwlY5GdAFtvER8VmbTxmvpII/khiBbdrVXhyrQgIDo5iqB9i+b3BFAVuDEoyy5E6+hTEk4rT/1cN9DFVviXvydF2+crGWFjv+sd6ANRLHJacG3JuUJmnPdPGbwdJK8Z7BaZvk4yVPOIZHvu+11YyLxp3BD2WcrHfMoQwkdQIrWW8s6S2D5KZuqoR0StT7Qb3cqbBctVMRg9qI+Xar32buUlE+mBAytC1txjGoPyH7mMgnA7DkDu++x39Zv8KPqD3zC+DGJacKk0eRp9VvggPgUWPKBnBuDgpnKSkU/C/SRoUKtycmySZcOCEbLu0qxFr8bSxN37OVnRMNOFPeY6+LVHMKZaiydzy7Cmp25q7tRy7JwoE7NYIUhSxykmQD8Uyh6L+iATBCvEtmGqiRl/jQcItLwjC+VAajUWzHGFLv1hnoktEQqWVVJAaZ1iogcVeFNQ70uNG7MnCgahDI0NK4FsGkGVOrQVEIbDcemeuO30x3SCeoSJvhtbywNGNaycWzDBw5y4pB40qq2E5z42N3T8qcW6O4stbzby5o/LLvXe6Cj3RgLxdDb2OleHKr8KEUeMiE7DlkGggCx4woHmMj+v++kOm9gt7rbFCkFXnGsvej+b4rU3Lj8nhxxpxhJurOPifKB8LAIce4htEe6+DN1n3a6njRbu5/T331um8Xcqpn8AammMiixX1jCq4N+b4EmD8RG0ccEzULcRuEfQQj9XfbKJMkx0B7q8oyvL7JFQq+njxMDRCcxGcdQ7ZCPsu+1MVMKn5l/Jwpf1ns+tY6q2/LXxdYR0qMGURsgABB8JUCC4UBYjY0X3BvcyA8PSBiNjRfbGVuAHNvZGl1bS9jb2RlY3MuYwBzb2RpdW1fYmluMmJhc2U2NAAkYXJnb24yaWQAJGFyZ29uMmkAJHY9ACRtPQAsdD0ALHA9ACRhcmdvbjJpZCR2PQAkYXJnb24yaSR2PQAkYXJnb24yaWQkACRhcmdvbjJpJABBkJcCCyhTaWdFZDI1NTE5IG5vIEVkMjU1MTkgY29sbGlzaW9ucwEAMS4wLjE4AEG8lwILOVCOUAAAQAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQ==' + function nA(A) { + try { + if (A == iA && w) return new Uint8Array(w) + var I = HA(A) + if (I) return I + if (t) return t(A) + throw 'both async and sync fetching of the wasm failed' + } catch (A) { + $(A) + } + } + function aA() { + if (!w && (i || n)) { + if ('function' == typeof fetch && !QA(iA)) + return fetch(iA, { credentials: 'same-origin' }) + .then(function (A) { + if (!A.ok) throw "failed to load wasm binary file at '" + iA + "'" + return A.arrayBuffer() + }) + .catch(function () { + return nA(iA) + }) + if (e) + return new Promise(function (A, I) { + e( + iA, + function (I) { + A(new Uint8Array(I)) + }, + I + ) + }) + } + return Promise.resolve().then(function () { + return nA(iA) + }) + } + function rA() { + var A = { a: bA } + function I(A, I) { + var g = A.exports + ;(Q.asm = g), M((h = Q.asm.g).buffer), (d = Q.asm.h), z() + } + function g(A) { + I(A.instance) + } + function B(I) { + return aA() + .then(function (I) { + return WebAssembly.instantiate(I, A) + }) + .then(I, function (A) { + D('failed to asynchronously prepare wasm: ' + A), $(A) + }) + } + if ((O(), Q.instantiateWasm)) + try { + return Q.instantiateWasm(A, I) + } catch (A) { + return D('Module.instantiateWasm callback failed with error: ' + A), !1 + } + return ( + w || + 'function' != typeof WebAssembly.instantiateStreaming || + gA(iA) || + QA(iA) || + 'function' != typeof fetch + ? B(g) + : fetch(iA, { credentials: 'same-origin' }).then(function (I) { + return WebAssembly.instantiateStreaming(I, A).then(g, function (A) { + return ( + D('wasm streaming compile failed: ' + A), + D('falling back to ArrayBuffer instantiation'), + B(g) + ) + }) + }), + {} + ) + } + gA(iA) || (iA = s(iA)) + var oA = { + 1024: function () { + return Q.getRandomValue() + }, + 1062: function () { + if (void 0 === Q.getRandomValue) + try { + var A = 'object' == typeof window ? window : self, + I = void 0 !== A.crypto ? A.crypto : A.msCrypto, + g = function () { + var A = new Uint32Array(1) + return I.getRandomValues(A), A[0] >>> 0 + } + g(), (Q.getRandomValue = g) + } catch (A) { + try { + var B = require('crypto'), + C = function () { + var A = B.randomBytes(4) + return ((A[0] << 24) | (A[1] << 16) | (A[2] << 8) | A[3]) >>> 0 + } + C(), (Q.getRandomValue = C) + } catch (A) { + throw 'No secure random number generator found' + } + } + } + } + function eA(A) { + for (; A.length > 0; ) { + var I = A.shift() + if ('function' != typeof I) { + var g = I.func + 'number' == typeof g + ? void 0 === I.arg + ? d.get(g)() + : d.get(g)(I.arg) + : g(void 0 === I.arg ? null : I.arg) + } else I(Q) + } + } + function tA(A, I, g, B) { + $( + 'Assertion failed: ' + + S(A) + + ', at: ' + + [I ? S(I) : 'unknown filename', g, B ? S(B) : 'unknown function'] + ) + } + function fA() { + $() + } + function cA(A, I, g) { + var B = lA(I, g) + return oA[A].apply(null, B) + } + function yA(A, I, g) { + _.copyWithin(A, I, I + g) + } + function sA() { + return _.length + } + function wA(A) { + try { + return h.grow((A - G.byteLength + 65535) >>> 16), M(h.buffer), 1 + } catch (A) {} + } + function hA(A) { + A >>>= 0 + var I = sA(), + g = 2147483648 + if (A > g) return !1 + for (var B = 1; B <= 4; B *= 2) { + var Q = I * (1 + 0.2 / B) + if ( + ((Q = Math.min(Q, A + 100663296)), + wA(Math.min(g, N(Math.max(16777216, A, Q), 65536)))) + ) + return !0 + } + return !1 + } + function DA(A) { + return (Y[vA() >> 2] = A), A + } + function uA(A) { + switch (A) { + case 30: + return 16384 + case 85: + return 131072 + case 132: + case 133: + case 12: + case 137: + case 138: + case 15: + case 235: + case 16: + case 17: + case 18: + case 19: + case 20: + case 149: + case 13: + case 10: + case 236: + case 153: + case 9: + case 21: + case 22: + case 159: + case 154: + case 14: + case 77: + case 78: + case 139: + case 82: + case 68: + case 67: + case 164: + case 11: + case 29: + case 47: + case 48: + case 95: + case 52: + case 51: + case 46: + return 200809 + case 27: + case 246: + case 127: + case 128: + case 23: + case 24: + case 160: + case 161: + case 181: + case 182: + case 242: + case 183: + case 184: + case 243: + case 244: + case 245: + case 165: + case 178: + case 179: + case 49: + case 50: + case 168: + case 169: + case 175: + case 170: + case 171: + case 172: + case 97: + case 76: + case 32: + case 173: + case 35: + case 80: + case 81: + case 79: + return -1 + case 176: + case 177: + case 7: + case 155: + case 8: + case 157: + case 125: + case 126: + case 92: + case 93: + case 129: + case 130: + case 131: + case 94: + case 91: + return 1 + case 74: + case 60: + case 69: + case 70: + case 4: + return 1024 + case 31: + case 42: + case 72: + return 32 + case 87: + case 26: + case 33: + return 2147483647 + case 34: + case 1: + return 47839 + case 38: + case 36: + return 99 + case 43: + case 37: + return 2048 + case 0: + return 2097152 + case 3: + return 65536 + case 28: + return 32768 + case 44: + return 32767 + case 75: + return 16384 + case 39: + return 1e3 + case 89: + return 700 + case 71: + return 256 + case 40: + return 255 + case 2: + return 100 + case 180: + return 64 + case 25: + return 20 + case 5: + return 16 + case 6: + return 6 + case 73: + return 4 + case 84: + return ( + ('object' == typeof navigator && navigator.hardwareConcurrency) || 1 + ) + } + return DA(28), -1 + } + var pA = [] + function lA(A, I) { + var g + for (pA.length = 0, I >>= 2; (g = _[A++]); ) { + var B = g < 105 + B && 1 & I && I++, pA.push(B ? m[I++ >> 1] : Y[I]), ++I + } + return pA + } + var FA = !1 + function GA(A) { + for (var I = [], g = 0; g < A.length; g++) { + var B = A[g] + B > 255 && + (FA && + F( + !1, + 'Character code ' + + B + + ' (' + + String.fromCharCode(B) + + ') at offset ' + + g + + ' not in 0x00-0xFF.' + ), + (B &= 255)), + I.push(String.fromCharCode(B)) + } + return I.join('') + } + var kA = + 'function' == typeof atob + ? atob + : function (A) { + var I, + g, + B, + Q, + C, + E, + i = + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', + n = '', + a = 0 + A = A.replace(/[^A-Za-z0-9\+\/\=]/g, '') + do { + ;(I = + (i.indexOf(A.charAt(a++)) << 2) | + ((Q = i.indexOf(A.charAt(a++))) >> 4)), + (g = ((15 & Q) << 4) | ((C = i.indexOf(A.charAt(a++))) >> 2)), + (B = ((3 & C) << 6) | (E = i.indexOf(A.charAt(a++)))), + (n += String.fromCharCode(I)), + 64 !== C && (n += String.fromCharCode(g)), + 64 !== E && (n += String.fromCharCode(B)) + } while (a < A.length) + return n + } + function _A(A) { + if ('boolean' == typeof a && a) { + var I + try { + I = Buffer.from(A, 'base64') + } catch (g) { + I = new Buffer(A, 'base64') + } + return new Uint8Array(I.buffer, I.byteOffset, I.byteLength) + } + try { + for ( + var g = kA(A), B = new Uint8Array(g.length), Q = 0; + Q < g.length; + ++Q + ) + B[Q] = g.charCodeAt(Q) + return B + } catch (A) { + throw new Error('Converting base64 string to bytes failed.') + } + } + function HA(A) { + if (gA(A)) return _A(A.slice(IA.length)) + } + var YA, + bA = { a: tA, c: fA, b: cA, e: yA, f: hA, d: uA }, + mA = + (rA(), + (Q.___wasm_call_ctors = function () { + return (mA = Q.___wasm_call_ctors = Q.asm.i).apply(null, arguments) + })), + vA = + ((Q._crypto_aead_chacha20poly1305_encrypt_detached = function () { + return (Q._crypto_aead_chacha20poly1305_encrypt_detached = + Q.asm.j).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_encrypt = function () { + return (Q._crypto_aead_chacha20poly1305_encrypt = Q.asm.k).apply( + null, + arguments + ) + }), + (Q._crypto_aead_chacha20poly1305_ietf_encrypt_detached = function () { + return (Q._crypto_aead_chacha20poly1305_ietf_encrypt_detached = + Q.asm.l).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_ietf_encrypt = function () { + return (Q._crypto_aead_chacha20poly1305_ietf_encrypt = Q.asm.m).apply( + null, + arguments + ) + }), + (Q._crypto_aead_chacha20poly1305_decrypt_detached = function () { + return (Q._crypto_aead_chacha20poly1305_decrypt_detached = + Q.asm.n).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_decrypt = function () { + return (Q._crypto_aead_chacha20poly1305_decrypt = Q.asm.o).apply( + null, + arguments + ) + }), + (Q._crypto_aead_chacha20poly1305_ietf_decrypt_detached = function () { + return (Q._crypto_aead_chacha20poly1305_ietf_decrypt_detached = + Q.asm.p).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_ietf_decrypt = function () { + return (Q._crypto_aead_chacha20poly1305_ietf_decrypt = Q.asm.q).apply( + null, + arguments + ) + }), + (Q._crypto_aead_chacha20poly1305_ietf_keybytes = function () { + return (Q._crypto_aead_chacha20poly1305_ietf_keybytes = Q.asm.r).apply( + null, + arguments + ) + }), + (Q._crypto_aead_chacha20poly1305_ietf_npubbytes = function () { + return (Q._crypto_aead_chacha20poly1305_ietf_npubbytes = Q.asm.s).apply( + null, + arguments + ) + }), + (Q._crypto_aead_chacha20poly1305_ietf_nsecbytes = function () { + return (Q._crypto_aead_chacha20poly1305_ietf_nsecbytes = Q.asm.t).apply( + null, + arguments + ) + }), + (Q._crypto_aead_chacha20poly1305_ietf_abytes = function () { + return (Q._crypto_aead_chacha20poly1305_ietf_abytes = Q.asm.u).apply( + null, + arguments + ) + }), + (Q._crypto_aead_chacha20poly1305_ietf_messagebytes_max = function () { + return (Q._crypto_aead_chacha20poly1305_ietf_messagebytes_max = + Q.asm.v).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_ietf_keygen = function () { + return (Q._crypto_aead_chacha20poly1305_ietf_keygen = Q.asm.w).apply( + null, + arguments + ) + }), + (Q._crypto_aead_chacha20poly1305_keybytes = function () { + return (Q._crypto_aead_chacha20poly1305_keybytes = Q.asm.x).apply( + null, + arguments + ) + }), + (Q._crypto_aead_chacha20poly1305_npubbytes = function () { + return (Q._crypto_aead_chacha20poly1305_npubbytes = Q.asm.y).apply( + null, + arguments + ) + }), + (Q._crypto_aead_chacha20poly1305_nsecbytes = function () { + return (Q._crypto_aead_chacha20poly1305_nsecbytes = Q.asm.z).apply( + null, + arguments + ) + }), + (Q._crypto_aead_chacha20poly1305_abytes = function () { + return (Q._crypto_aead_chacha20poly1305_abytes = Q.asm.A).apply( + null, + arguments + ) + }), + (Q._crypto_aead_chacha20poly1305_messagebytes_max = function () { + return (Q._crypto_aead_chacha20poly1305_messagebytes_max = + Q.asm.B).apply(null, arguments) + }), + (Q._crypto_aead_chacha20poly1305_keygen = function () { + return (Q._crypto_aead_chacha20poly1305_keygen = Q.asm.C).apply( + null, + arguments + ) + }), + (Q._crypto_aead_xchacha20poly1305_ietf_encrypt_detached = function () { + return (Q._crypto_aead_xchacha20poly1305_ietf_encrypt_detached = + Q.asm.D).apply(null, arguments) + }), + (Q._crypto_aead_xchacha20poly1305_ietf_encrypt = function () { + return (Q._crypto_aead_xchacha20poly1305_ietf_encrypt = Q.asm.E).apply( + null, + arguments + ) + }), + (Q._crypto_aead_xchacha20poly1305_ietf_decrypt_detached = function () { + return (Q._crypto_aead_xchacha20poly1305_ietf_decrypt_detached = + Q.asm.F).apply(null, arguments) + }), + (Q._crypto_aead_xchacha20poly1305_ietf_decrypt = function () { + return (Q._crypto_aead_xchacha20poly1305_ietf_decrypt = Q.asm.G).apply( + null, + arguments + ) + }), + (Q._crypto_aead_xchacha20poly1305_ietf_keybytes = function () { + return (Q._crypto_aead_xchacha20poly1305_ietf_keybytes = Q.asm.H).apply( + null, + arguments + ) + }), + (Q._crypto_aead_xchacha20poly1305_ietf_npubbytes = function () { + return (Q._crypto_aead_xchacha20poly1305_ietf_npubbytes = + Q.asm.I).apply(null, arguments) + }), + (Q._crypto_aead_xchacha20poly1305_ietf_nsecbytes = function () { + return (Q._crypto_aead_xchacha20poly1305_ietf_nsecbytes = + Q.asm.J).apply(null, arguments) + }), + (Q._crypto_aead_xchacha20poly1305_ietf_abytes = function () { + return (Q._crypto_aead_xchacha20poly1305_ietf_abytes = Q.asm.K).apply( + null, + arguments + ) + }), + (Q._crypto_aead_xchacha20poly1305_ietf_messagebytes_max = function () { + return (Q._crypto_aead_xchacha20poly1305_ietf_messagebytes_max = + Q.asm.L).apply(null, arguments) + }), + (Q._crypto_aead_xchacha20poly1305_ietf_keygen = function () { + return (Q._crypto_aead_xchacha20poly1305_ietf_keygen = Q.asm.M).apply( + null, + arguments + ) + }), + (Q._crypto_auth_bytes = function () { + return (Q._crypto_auth_bytes = Q.asm.N).apply(null, arguments) + }), + (Q._crypto_auth_keybytes = function () { + return (Q._crypto_auth_keybytes = Q.asm.O).apply(null, arguments) + }), + (Q._crypto_auth = function () { + return (Q._crypto_auth = Q.asm.P).apply(null, arguments) + }), + (Q._crypto_auth_verify = function () { + return (Q._crypto_auth_verify = Q.asm.Q).apply(null, arguments) + }), + (Q._crypto_auth_keygen = function () { + return (Q._crypto_auth_keygen = Q.asm.R).apply(null, arguments) + }), + (Q._crypto_box_seedbytes = function () { + return (Q._crypto_box_seedbytes = Q.asm.S).apply(null, arguments) + }), + (Q._crypto_box_publickeybytes = function () { + return (Q._crypto_box_publickeybytes = Q.asm.T).apply(null, arguments) + }), + (Q._crypto_box_secretkeybytes = function () { + return (Q._crypto_box_secretkeybytes = Q.asm.U).apply(null, arguments) + }), + (Q._crypto_box_beforenmbytes = function () { + return (Q._crypto_box_beforenmbytes = Q.asm.V).apply(null, arguments) + }), + (Q._crypto_box_noncebytes = function () { + return (Q._crypto_box_noncebytes = Q.asm.W).apply(null, arguments) + }), + (Q._crypto_box_macbytes = function () { + return (Q._crypto_box_macbytes = Q.asm.X).apply(null, arguments) + }), + (Q._crypto_box_messagebytes_max = function () { + return (Q._crypto_box_messagebytes_max = Q.asm.Y).apply(null, arguments) + }), + (Q._crypto_box_seed_keypair = function () { + return (Q._crypto_box_seed_keypair = Q.asm.Z).apply(null, arguments) + }), + (Q._crypto_box_keypair = function () { + return (Q._crypto_box_keypair = Q.asm._).apply(null, arguments) + }), + (Q._crypto_box_beforenm = function () { + return (Q._crypto_box_beforenm = Q.asm.$).apply(null, arguments) + }), + (Q._crypto_box_detached_afternm = function () { + return (Q._crypto_box_detached_afternm = Q.asm.aa).apply( + null, + arguments + ) + }), + (Q._crypto_box_detached = function () { + return (Q._crypto_box_detached = Q.asm.ba).apply(null, arguments) + }), + (Q._crypto_box_easy_afternm = function () { + return (Q._crypto_box_easy_afternm = Q.asm.ca).apply(null, arguments) + }), + (Q._crypto_box_easy = function () { + return (Q._crypto_box_easy = Q.asm.da).apply(null, arguments) + }), + (Q._crypto_box_open_detached_afternm = function () { + return (Q._crypto_box_open_detached_afternm = Q.asm.ea).apply( + null, + arguments + ) + }), + (Q._crypto_box_open_detached = function () { + return (Q._crypto_box_open_detached = Q.asm.fa).apply(null, arguments) + }), + (Q._crypto_box_open_easy_afternm = function () { + return (Q._crypto_box_open_easy_afternm = Q.asm.ga).apply( + null, + arguments + ) + }), + (Q._crypto_box_open_easy = function () { + return (Q._crypto_box_open_easy = Q.asm.ha).apply(null, arguments) + }), + (Q._crypto_box_seal = function () { + return (Q._crypto_box_seal = Q.asm.ia).apply(null, arguments) + }), + (Q._crypto_box_seal_open = function () { + return (Q._crypto_box_seal_open = Q.asm.ja).apply(null, arguments) + }), + (Q._crypto_box_sealbytes = function () { + return (Q._crypto_box_sealbytes = Q.asm.ka).apply(null, arguments) + }), + (Q._crypto_generichash_bytes_min = function () { + return (Q._crypto_generichash_bytes_min = Q.asm.la).apply( + null, + arguments + ) + }), + (Q._crypto_generichash_bytes_max = function () { + return (Q._crypto_generichash_bytes_max = Q.asm.ma).apply( + null, + arguments + ) + }), + (Q._crypto_generichash_bytes = function () { + return (Q._crypto_generichash_bytes = Q.asm.na).apply(null, arguments) + }), + (Q._crypto_generichash_keybytes_min = function () { + return (Q._crypto_generichash_keybytes_min = Q.asm.oa).apply( + null, + arguments + ) + }), + (Q._crypto_generichash_keybytes_max = function () { + return (Q._crypto_generichash_keybytes_max = Q.asm.pa).apply( + null, + arguments + ) + }), + (Q._crypto_generichash_keybytes = function () { + return (Q._crypto_generichash_keybytes = Q.asm.qa).apply( + null, + arguments + ) + }), + (Q._crypto_generichash_statebytes = function () { + return (Q._crypto_generichash_statebytes = Q.asm.ra).apply( + null, + arguments + ) + }), + (Q._crypto_generichash = function () { + return (Q._crypto_generichash = Q.asm.sa).apply(null, arguments) + }), + (Q._crypto_generichash_init = function () { + return (Q._crypto_generichash_init = Q.asm.ta).apply(null, arguments) + }), + (Q._crypto_generichash_update = function () { + return (Q._crypto_generichash_update = Q.asm.ua).apply(null, arguments) + }), + (Q._crypto_generichash_final = function () { + return (Q._crypto_generichash_final = Q.asm.va).apply(null, arguments) + }), + (Q._crypto_generichash_keygen = function () { + return (Q._crypto_generichash_keygen = Q.asm.wa).apply(null, arguments) + }), + (Q._crypto_hash_bytes = function () { + return (Q._crypto_hash_bytes = Q.asm.xa).apply(null, arguments) + }), + (Q._crypto_hash = function () { + return (Q._crypto_hash = Q.asm.ya).apply(null, arguments) + }), + (Q._crypto_kdf_bytes_min = function () { + return (Q._crypto_kdf_bytes_min = Q.asm.za).apply(null, arguments) + }), + (Q._crypto_kdf_bytes_max = function () { + return (Q._crypto_kdf_bytes_max = Q.asm.Aa).apply(null, arguments) + }), + (Q._crypto_kdf_contextbytes = function () { + return (Q._crypto_kdf_contextbytes = Q.asm.Ba).apply(null, arguments) + }), + (Q._crypto_kdf_keybytes = function () { + return (Q._crypto_kdf_keybytes = Q.asm.Ca).apply(null, arguments) + }), + (Q._crypto_kdf_derive_from_key = function () { + return (Q._crypto_kdf_derive_from_key = Q.asm.Da).apply(null, arguments) + }), + (Q._crypto_kdf_keygen = function () { + return (Q._crypto_kdf_keygen = Q.asm.Ea).apply(null, arguments) + }), + (Q._crypto_kx_seed_keypair = function () { + return (Q._crypto_kx_seed_keypair = Q.asm.Fa).apply(null, arguments) + }), + (Q._crypto_kx_keypair = function () { + return (Q._crypto_kx_keypair = Q.asm.Ga).apply(null, arguments) + }), + (Q._crypto_kx_client_session_keys = function () { + return (Q._crypto_kx_client_session_keys = Q.asm.Ha).apply( + null, + arguments + ) + }), + (Q._crypto_kx_server_session_keys = function () { + return (Q._crypto_kx_server_session_keys = Q.asm.Ia).apply( + null, + arguments + ) + }), + (Q._crypto_kx_publickeybytes = function () { + return (Q._crypto_kx_publickeybytes = Q.asm.Ja).apply(null, arguments) + }), + (Q._crypto_kx_secretkeybytes = function () { + return (Q._crypto_kx_secretkeybytes = Q.asm.Ka).apply(null, arguments) + }), + (Q._crypto_kx_seedbytes = function () { + return (Q._crypto_kx_seedbytes = Q.asm.La).apply(null, arguments) + }), + (Q._crypto_kx_sessionkeybytes = function () { + return (Q._crypto_kx_sessionkeybytes = Q.asm.Ma).apply(null, arguments) + }), + (Q._crypto_pwhash_alg_argon2i13 = function () { + return (Q._crypto_pwhash_alg_argon2i13 = Q.asm.Na).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_alg_argon2id13 = function () { + return (Q._crypto_pwhash_alg_argon2id13 = Q.asm.Oa).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_alg_default = function () { + return (Q._crypto_pwhash_alg_default = Q.asm.Pa).apply(null, arguments) + }), + (Q._crypto_pwhash_bytes_min = function () { + return (Q._crypto_pwhash_bytes_min = Q.asm.Qa).apply(null, arguments) + }), + (Q._crypto_pwhash_bytes_max = function () { + return (Q._crypto_pwhash_bytes_max = Q.asm.Ra).apply(null, arguments) + }), + (Q._crypto_pwhash_passwd_min = function () { + return (Q._crypto_pwhash_passwd_min = Q.asm.Sa).apply(null, arguments) + }), + (Q._crypto_pwhash_passwd_max = function () { + return (Q._crypto_pwhash_passwd_max = Q.asm.Ta).apply(null, arguments) + }), + (Q._crypto_pwhash_saltbytes = function () { + return (Q._crypto_pwhash_saltbytes = Q.asm.Ua).apply(null, arguments) + }), + (Q._crypto_pwhash_strbytes = function () { + return (Q._crypto_pwhash_strbytes = Q.asm.Va).apply(null, arguments) + }), + (Q._crypto_pwhash_strprefix = function () { + return (Q._crypto_pwhash_strprefix = Q.asm.Wa).apply(null, arguments) + }), + (Q._crypto_pwhash_opslimit_min = function () { + return (Q._crypto_pwhash_opslimit_min = Q.asm.Xa).apply(null, arguments) + }), + (Q._crypto_pwhash_opslimit_max = function () { + return (Q._crypto_pwhash_opslimit_max = Q.asm.Ya).apply(null, arguments) + }), + (Q._crypto_pwhash_memlimit_min = function () { + return (Q._crypto_pwhash_memlimit_min = Q.asm.Za).apply(null, arguments) + }), + (Q._crypto_pwhash_memlimit_max = function () { + return (Q._crypto_pwhash_memlimit_max = Q.asm._a).apply(null, arguments) + }), + (Q._crypto_pwhash_opslimit_interactive = function () { + return (Q._crypto_pwhash_opslimit_interactive = Q.asm.$a).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_memlimit_interactive = function () { + return (Q._crypto_pwhash_memlimit_interactive = Q.asm.ab).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_opslimit_moderate = function () { + return (Q._crypto_pwhash_opslimit_moderate = Q.asm.bb).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_memlimit_moderate = function () { + return (Q._crypto_pwhash_memlimit_moderate = Q.asm.cb).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_opslimit_sensitive = function () { + return (Q._crypto_pwhash_opslimit_sensitive = Q.asm.db).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash_memlimit_sensitive = function () { + return (Q._crypto_pwhash_memlimit_sensitive = Q.asm.eb).apply( + null, + arguments + ) + }), + (Q._crypto_pwhash = function () { + return (Q._crypto_pwhash = Q.asm.fb).apply(null, arguments) + }), + (Q._crypto_pwhash_str = function () { + return (Q._crypto_pwhash_str = Q.asm.gb).apply(null, arguments) + }), + (Q._crypto_pwhash_str_alg = function () { + return (Q._crypto_pwhash_str_alg = Q.asm.hb).apply(null, arguments) + }), + (Q._crypto_pwhash_str_verify = function () { + return (Q._crypto_pwhash_str_verify = Q.asm.ib).apply(null, arguments) + }), + (Q._crypto_pwhash_str_needs_rehash = function () { + return (Q._crypto_pwhash_str_needs_rehash = Q.asm.jb).apply( + null, + arguments + ) + }), + (Q._crypto_scalarmult_base = function () { + return (Q._crypto_scalarmult_base = Q.asm.kb).apply(null, arguments) + }), + (Q._crypto_scalarmult = function () { + return (Q._crypto_scalarmult = Q.asm.lb).apply(null, arguments) + }), + (Q._crypto_scalarmult_bytes = function () { + return (Q._crypto_scalarmult_bytes = Q.asm.mb).apply(null, arguments) + }), + (Q._crypto_scalarmult_scalarbytes = function () { + return (Q._crypto_scalarmult_scalarbytes = Q.asm.nb).apply( + null, + arguments + ) + }), + (Q._crypto_secretbox_keybytes = function () { + return (Q._crypto_secretbox_keybytes = Q.asm.ob).apply(null, arguments) + }), + (Q._crypto_secretbox_noncebytes = function () { + return (Q._crypto_secretbox_noncebytes = Q.asm.pb).apply( + null, + arguments + ) + }), + (Q._crypto_secretbox_macbytes = function () { + return (Q._crypto_secretbox_macbytes = Q.asm.qb).apply(null, arguments) + }), + (Q._crypto_secretbox_messagebytes_max = function () { + return (Q._crypto_secretbox_messagebytes_max = Q.asm.rb).apply( + null, + arguments + ) + }), + (Q._crypto_secretbox_keygen = function () { + return (Q._crypto_secretbox_keygen = Q.asm.sb).apply(null, arguments) + }), + (Q._crypto_secretbox_detached = function () { + return (Q._crypto_secretbox_detached = Q.asm.tb).apply(null, arguments) + }), + (Q._crypto_secretbox_easy = function () { + return (Q._crypto_secretbox_easy = Q.asm.ub).apply(null, arguments) + }), + (Q._crypto_secretbox_open_detached = function () { + return (Q._crypto_secretbox_open_detached = Q.asm.vb).apply( + null, + arguments + ) + }), + (Q._crypto_secretbox_open_easy = function () { + return (Q._crypto_secretbox_open_easy = Q.asm.wb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_keygen = function () { + return (Q._crypto_secretstream_xchacha20poly1305_keygen = + Q.asm.xb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_init_push = function () { + return (Q._crypto_secretstream_xchacha20poly1305_init_push = + Q.asm.yb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_init_pull = function () { + return (Q._crypto_secretstream_xchacha20poly1305_init_pull = + Q.asm.zb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_rekey = function () { + return (Q._crypto_secretstream_xchacha20poly1305_rekey = + Q.asm.Ab).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_push = function () { + return (Q._crypto_secretstream_xchacha20poly1305_push = Q.asm.Bb).apply( + null, + arguments + ) + }), + (Q._crypto_secretstream_xchacha20poly1305_pull = function () { + return (Q._crypto_secretstream_xchacha20poly1305_pull = Q.asm.Cb).apply( + null, + arguments + ) + }), + (Q._crypto_secretstream_xchacha20poly1305_statebytes = function () { + return (Q._crypto_secretstream_xchacha20poly1305_statebytes = + Q.asm.Db).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_abytes = function () { + return (Q._crypto_secretstream_xchacha20poly1305_abytes = + Q.asm.Eb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_headerbytes = function () { + return (Q._crypto_secretstream_xchacha20poly1305_headerbytes = + Q.asm.Fb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_keybytes = function () { + return (Q._crypto_secretstream_xchacha20poly1305_keybytes = + Q.asm.Gb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_messagebytes_max = function () { + return (Q._crypto_secretstream_xchacha20poly1305_messagebytes_max = + Q.asm.Hb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_tag_message = function () { + return (Q._crypto_secretstream_xchacha20poly1305_tag_message = + Q.asm.Ib).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_tag_push = function () { + return (Q._crypto_secretstream_xchacha20poly1305_tag_push = + Q.asm.Jb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_tag_rekey = function () { + return (Q._crypto_secretstream_xchacha20poly1305_tag_rekey = + Q.asm.Kb).apply(null, arguments) + }), + (Q._crypto_secretstream_xchacha20poly1305_tag_final = function () { + return (Q._crypto_secretstream_xchacha20poly1305_tag_final = + Q.asm.Lb).apply(null, arguments) + }), + (Q._crypto_shorthash_bytes = function () { + return (Q._crypto_shorthash_bytes = Q.asm.Mb).apply(null, arguments) + }), + (Q._crypto_shorthash_keybytes = function () { + return (Q._crypto_shorthash_keybytes = Q.asm.Nb).apply(null, arguments) + }), + (Q._crypto_shorthash = function () { + return (Q._crypto_shorthash = Q.asm.Ob).apply(null, arguments) + }), + (Q._crypto_shorthash_keygen = function () { + return (Q._crypto_shorthash_keygen = Q.asm.Pb).apply(null, arguments) + }), + (Q._crypto_sign_statebytes = function () { + return (Q._crypto_sign_statebytes = Q.asm.Qb).apply(null, arguments) + }), + (Q._crypto_sign_bytes = function () { + return (Q._crypto_sign_bytes = Q.asm.Rb).apply(null, arguments) + }), + (Q._crypto_sign_seedbytes = function () { + return (Q._crypto_sign_seedbytes = Q.asm.Sb).apply(null, arguments) + }), + (Q._crypto_sign_publickeybytes = function () { + return (Q._crypto_sign_publickeybytes = Q.asm.Tb).apply(null, arguments) + }), + (Q._crypto_sign_secretkeybytes = function () { + return (Q._crypto_sign_secretkeybytes = Q.asm.Ub).apply(null, arguments) + }), + (Q._crypto_sign_messagebytes_max = function () { + return (Q._crypto_sign_messagebytes_max = Q.asm.Vb).apply( + null, + arguments + ) + }), + (Q._crypto_sign_seed_keypair = function () { + return (Q._crypto_sign_seed_keypair = Q.asm.Wb).apply(null, arguments) + }), + (Q._crypto_sign_keypair = function () { + return (Q._crypto_sign_keypair = Q.asm.Xb).apply(null, arguments) + }), + (Q._crypto_sign = function () { + return (Q._crypto_sign = Q.asm.Yb).apply(null, arguments) + }), + (Q._crypto_sign_open = function () { + return (Q._crypto_sign_open = Q.asm.Zb).apply(null, arguments) + }), + (Q._crypto_sign_detached = function () { + return (Q._crypto_sign_detached = Q.asm._b).apply(null, arguments) + }), + (Q._crypto_sign_verify_detached = function () { + return (Q._crypto_sign_verify_detached = Q.asm.$b).apply( + null, + arguments + ) + }), + (Q._crypto_sign_init = function () { + return (Q._crypto_sign_init = Q.asm.ac).apply(null, arguments) + }), + (Q._crypto_sign_update = function () { + return (Q._crypto_sign_update = Q.asm.bc).apply(null, arguments) + }), + (Q._crypto_sign_final_create = function () { + return (Q._crypto_sign_final_create = Q.asm.cc).apply(null, arguments) + }), + (Q._crypto_sign_final_verify = function () { + return (Q._crypto_sign_final_verify = Q.asm.dc).apply(null, arguments) + }), + (Q._crypto_sign_ed25519_pk_to_curve25519 = function () { + return (Q._crypto_sign_ed25519_pk_to_curve25519 = Q.asm.ec).apply( + null, + arguments + ) + }), + (Q._crypto_sign_ed25519_sk_to_curve25519 = function () { + return (Q._crypto_sign_ed25519_sk_to_curve25519 = Q.asm.fc).apply( + null, + arguments + ) + }), + (Q._randombytes_random = function () { + return (Q._randombytes_random = Q.asm.gc).apply(null, arguments) + }), + (Q._randombytes_stir = function () { + return (Q._randombytes_stir = Q.asm.hc).apply(null, arguments) + }), + (Q._randombytes_uniform = function () { + return (Q._randombytes_uniform = Q.asm.ic).apply(null, arguments) + }), + (Q._randombytes_buf = function () { + return (Q._randombytes_buf = Q.asm.jc).apply(null, arguments) + }), + (Q._randombytes_buf_deterministic = function () { + return (Q._randombytes_buf_deterministic = Q.asm.kc).apply( + null, + arguments + ) + }), + (Q._randombytes_seedbytes = function () { + return (Q._randombytes_seedbytes = Q.asm.lc).apply(null, arguments) + }), + (Q._randombytes_close = function () { + return (Q._randombytes_close = Q.asm.mc).apply(null, arguments) + }), + (Q._randombytes = function () { + return (Q._randombytes = Q.asm.nc).apply(null, arguments) + }), + (Q._sodium_bin2hex = function () { + return (Q._sodium_bin2hex = Q.asm.oc).apply(null, arguments) + }), + (Q._sodium_hex2bin = function () { + return (Q._sodium_hex2bin = Q.asm.pc).apply(null, arguments) + }), + (Q._sodium_base64_encoded_len = function () { + return (Q._sodium_base64_encoded_len = Q.asm.qc).apply(null, arguments) + }), + (Q._sodium_bin2base64 = function () { + return (Q._sodium_bin2base64 = Q.asm.rc).apply(null, arguments) + }), + (Q._sodium_base642bin = function () { + return (Q._sodium_base642bin = Q.asm.sc).apply(null, arguments) + }), + (Q._sodium_init = function () { + return (Q._sodium_init = Q.asm.tc).apply(null, arguments) + }), + (Q._sodium_pad = function () { + return (Q._sodium_pad = Q.asm.uc).apply(null, arguments) + }), + (Q._sodium_unpad = function () { + return (Q._sodium_unpad = Q.asm.vc).apply(null, arguments) + }), + (Q._sodium_version_string = function () { + return (Q._sodium_version_string = Q.asm.wc).apply(null, arguments) + }), + (Q._sodium_library_version_major = function () { + return (Q._sodium_library_version_major = Q.asm.xc).apply( + null, + arguments + ) + }), + (Q._sodium_library_version_minor = function () { + return (Q._sodium_library_version_minor = Q.asm.yc).apply( + null, + arguments + ) + }), + (Q._sodium_library_minimal = function () { + return (Q._sodium_library_minimal = Q.asm.zc).apply(null, arguments) + }), + (Q.___errno_location = function () { + return (vA = Q.___errno_location = Q.asm.Ac).apply(null, arguments) + })) + function UA(A) { + function I() { + YA || + ((YA = !0), + (Q.calledRun = !0), + l || + (K(), q(), Q.onRuntimeInitialized && Q.onRuntimeInitialized(), X())) + } + ;(A = A || E), + T > 0 || + (L(), + T > 0 || + (Q.setStatus + ? (Q.setStatus('Running...'), + setTimeout(function () { + setTimeout(function () { + Q.setStatus('') + }, 1), + I() + }, 1)) + : I())) + } + if ( + ((Q._malloc = function () { + return (Q._malloc = Q.asm.Bc).apply(null, arguments) + }), + (Q._free = function () { + return (Q._free = Q.asm.Cc).apply(null, arguments) + }), + (Q.setValue = u), + (Q.getValue = p), + (Q.UTF8ToString = S), + (Z = function A() { + YA || UA(), YA || (Z = A) + }), + (Q.run = UA), + Q.preInit) + ) + for ( + 'function' == typeof Q.preInit && (Q.preInit = [Q.preInit]); + Q.preInit.length > 0; + + ) + Q.preInit.pop()() + UA() + }).catch(function () { + return B.useBackupModule() + })), + I + ) + } + 'function' == typeof define && define.amd + ? define(['exports'], I) + : 'object' == typeof exports && 'string' != typeof exports.nodeName + ? I(exports) + : (A.libsodium = I(A.libsodium_mod || (A.commonJsStrict = {}))) + })(this) + }.call(this)) + }.call( + this, + require('_process'), + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {}, + require('buffer').Buffer, + arguments[3], + arguments[4], + arguments[5], + arguments[6], + '/node_modules/libsodium/dist/modules' + )) + }, + { _process: 171, buffer: 93, crypto: 105, fs: 49, path: 165 } + ], + 155: [ + function (require, module, exports) { + 'use strict' + var inherits = require('inherits') + var HashBase = require('hash-base') + var Buffer = require('safe-buffer').Buffer + var ARRAY16 = new Array(16) + function MD5() { + HashBase.call(this, 64) + this._a = 1732584193 + this._b = 4023233417 + this._c = 2562383102 + this._d = 271733878 + } + inherits(MD5, HashBase) + MD5.prototype._update = function () { + var M = ARRAY16 + for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4) + var a = this._a + var b = this._b + var c = this._c + var d = this._d + a = fnF(a, b, c, d, M[0], 3614090360, 7) + d = fnF(d, a, b, c, M[1], 3905402710, 12) + c = fnF(c, d, a, b, M[2], 606105819, 17) + b = fnF(b, c, d, a, M[3], 3250441966, 22) + a = fnF(a, b, c, d, M[4], 4118548399, 7) + d = fnF(d, a, b, c, M[5], 1200080426, 12) + c = fnF(c, d, a, b, M[6], 2821735955, 17) + b = fnF(b, c, d, a, M[7], 4249261313, 22) + a = fnF(a, b, c, d, M[8], 1770035416, 7) + d = fnF(d, a, b, c, M[9], 2336552879, 12) + c = fnF(c, d, a, b, M[10], 4294925233, 17) + b = fnF(b, c, d, a, M[11], 2304563134, 22) + a = fnF(a, b, c, d, M[12], 1804603682, 7) + d = fnF(d, a, b, c, M[13], 4254626195, 12) + c = fnF(c, d, a, b, M[14], 2792965006, 17) + b = fnF(b, c, d, a, M[15], 1236535329, 22) + a = fnG(a, b, c, d, M[1], 4129170786, 5) + d = fnG(d, a, b, c, M[6], 3225465664, 9) + c = fnG(c, d, a, b, M[11], 643717713, 14) + b = fnG(b, c, d, a, M[0], 3921069994, 20) + a = fnG(a, b, c, d, M[5], 3593408605, 5) + d = fnG(d, a, b, c, M[10], 38016083, 9) + c = fnG(c, d, a, b, M[15], 3634488961, 14) + b = fnG(b, c, d, a, M[4], 3889429448, 20) + a = fnG(a, b, c, d, M[9], 568446438, 5) + d = fnG(d, a, b, c, M[14], 3275163606, 9) + c = fnG(c, d, a, b, M[3], 4107603335, 14) + b = fnG(b, c, d, a, M[8], 1163531501, 20) + a = fnG(a, b, c, d, M[13], 2850285829, 5) + d = fnG(d, a, b, c, M[2], 4243563512, 9) + c = fnG(c, d, a, b, M[7], 1735328473, 14) + b = fnG(b, c, d, a, M[12], 2368359562, 20) + a = fnH(a, b, c, d, M[5], 4294588738, 4) + d = fnH(d, a, b, c, M[8], 2272392833, 11) + c = fnH(c, d, a, b, M[11], 1839030562, 16) + b = fnH(b, c, d, a, M[14], 4259657740, 23) + a = fnH(a, b, c, d, M[1], 2763975236, 4) + d = fnH(d, a, b, c, M[4], 1272893353, 11) + c = fnH(c, d, a, b, M[7], 4139469664, 16) + b = fnH(b, c, d, a, M[10], 3200236656, 23) + a = fnH(a, b, c, d, M[13], 681279174, 4) + d = fnH(d, a, b, c, M[0], 3936430074, 11) + c = fnH(c, d, a, b, M[3], 3572445317, 16) + b = fnH(b, c, d, a, M[6], 76029189, 23) + a = fnH(a, b, c, d, M[9], 3654602809, 4) + d = fnH(d, a, b, c, M[12], 3873151461, 11) + c = fnH(c, d, a, b, M[15], 530742520, 16) + b = fnH(b, c, d, a, M[2], 3299628645, 23) + a = fnI(a, b, c, d, M[0], 4096336452, 6) + d = fnI(d, a, b, c, M[7], 1126891415, 10) + c = fnI(c, d, a, b, M[14], 2878612391, 15) + b = fnI(b, c, d, a, M[5], 4237533241, 21) + a = fnI(a, b, c, d, M[12], 1700485571, 6) + d = fnI(d, a, b, c, M[3], 2399980690, 10) + c = fnI(c, d, a, b, M[10], 4293915773, 15) + b = fnI(b, c, d, a, M[1], 2240044497, 21) + a = fnI(a, b, c, d, M[8], 1873313359, 6) + d = fnI(d, a, b, c, M[15], 4264355552, 10) + c = fnI(c, d, a, b, M[6], 2734768916, 15) + b = fnI(b, c, d, a, M[13], 1309151649, 21) + a = fnI(a, b, c, d, M[4], 4149444226, 6) + d = fnI(d, a, b, c, M[11], 3174756917, 10) + c = fnI(c, d, a, b, M[2], 718787259, 15) + b = fnI(b, c, d, a, M[9], 3951481745, 21) + this._a = (this._a + a) | 0 + this._b = (this._b + b) | 0 + this._c = (this._c + c) | 0 + this._d = (this._d + d) | 0 + } + MD5.prototype._digest = function () { + this._block[this._blockOffset++] = 128 + if (this._blockOffset > 56) { + this._block.fill(0, this._blockOffset, 64) + this._update() + this._blockOffset = 0 + } + this._block.fill(0, this._blockOffset, 56) + this._block.writeUInt32LE(this._length[0], 56) + this._block.writeUInt32LE(this._length[1], 60) + this._update() + var buffer = Buffer.allocUnsafe(16) + buffer.writeInt32LE(this._a, 0) + buffer.writeInt32LE(this._b, 4) + buffer.writeInt32LE(this._c, 8) + buffer.writeInt32LE(this._d, 12) + return buffer + } + function rotl(x, n) { + return (x << n) | (x >>> (32 - n)) + } + function fnF(a, b, c, d, m, k, s) { + return (rotl((a + ((b & c) | (~b & d)) + m + k) | 0, s) + b) | 0 + } + function fnG(a, b, c, d, m, k, s) { + return (rotl((a + ((b & d) | (c & ~d)) + m + k) | 0, s) + b) | 0 + } + function fnH(a, b, c, d, m, k, s) { + return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0 + } + function fnI(a, b, c, d, m, k, s) { + return (rotl((a + (c ^ (b | ~d)) + m + k) | 0, s) + b) | 0 + } + module.exports = MD5 + }, + { 'hash-base': 136, inherits: 151, 'safe-buffer': 183 } + ], + 156: [ + function (require, module, exports) { + var bn = require('bn.js') + var brorand = require('brorand') + function MillerRabin(rand) { + this.rand = rand || new brorand.Rand() + } + module.exports = MillerRabin + MillerRabin.create = function create(rand) { + return new MillerRabin(rand) + } + MillerRabin.prototype._randbelow = function _randbelow(n) { + var len = n.bitLength() + var min_bytes = Math.ceil(len / 8) + do { + var a = new bn(this.rand.generate(min_bytes)) + } while (a.cmp(n) >= 0) + return a + } + MillerRabin.prototype._randrange = function _randrange(start, stop) { + var size = stop.sub(start) + return start.add(this._randbelow(size)) + } + MillerRabin.prototype.test = function test(n, k, cb) { + var len = n.bitLength() + var red = bn.mont(n) + var rone = new bn(1).toRed(red) + if (!k) k = Math.max(1, (len / 48) | 0) + var n1 = n.subn(1) + for (var s = 0; !n1.testn(s); s++) {} + var d = n.shrn(s) + var rn1 = n1.toRed(red) + var prime = true + for (; k > 0; k--) { + var a = this._randrange(new bn(2), n1) + if (cb) cb(a) + var x = a.toRed(red).redPow(d) + if (x.cmp(rone) === 0 || x.cmp(rn1) === 0) continue + for (var i = 1; i < s; i++) { + x = x.redSqr() + if (x.cmp(rone) === 0) return false + if (x.cmp(rn1) === 0) break + } + if (i === s) return false + } + return prime + } + MillerRabin.prototype.getDivisor = function getDivisor(n, k) { + var len = n.bitLength() + var red = bn.mont(n) + var rone = new bn(1).toRed(red) + if (!k) k = Math.max(1, (len / 48) | 0) + var n1 = n.subn(1) + for (var s = 0; !n1.testn(s); s++) {} + var d = n.shrn(s) + var rn1 = n1.toRed(red) + for (; k > 0; k--) { + var a = this._randrange(new bn(2), n1) + var g = n.gcd(a) + if (g.cmpn(1) !== 0) return g + var x = a.toRed(red).redPow(d) + if (x.cmp(rone) === 0 || x.cmp(rn1) === 0) continue + for (var i = 1; i < s; i++) { + x = x.redSqr() + if (x.cmp(rone) === 0) return x.fromRed().subn(1).gcd(n) + if (x.cmp(rn1) === 0) break + } + if (i === s) { + x = x.redSqr() + return x.fromRed().subn(1).gcd(n) + } + } + return false + } + }, + { 'bn.js': 157, brorand: 48 } + ], + 157: [ + function (require, module, exports) { + arguments[4][15][0].apply(exports, arguments) + }, + { buffer: 49, dup: 15 } + ], + 158: [ + function (require, module, exports) { + module.exports = assert + function assert(val, msg) { + if (!val) throw new Error(msg || 'Assertion failed') + } + assert.equal = function assertEqual(l, r, msg) { + if (l != r) throw new Error(msg || 'Assertion failed: ' + l + ' != ' + r) + } + }, + {} + ], + 159: [ + function (require, module, exports) { + 'use strict' + var utils = exports + function toArray(msg, enc) { + if (Array.isArray(msg)) return msg.slice() + if (!msg) return [] + var res = [] + if (typeof msg !== 'string') { + for (var i = 0; i < msg.length; i++) res[i] = msg[i] | 0 + return res + } + if (enc === 'hex') { + msg = msg.replace(/[^a-z0-9]+/gi, '') + if (msg.length % 2 !== 0) msg = '0' + msg + for (var i = 0; i < msg.length; i += 2) res.push(parseInt(msg[i] + msg[i + 1], 16)) + } else { + for (var i = 0; i < msg.length; i++) { + var c = msg.charCodeAt(i) + var hi = c >> 8 + var lo = c & 255 + if (hi) res.push(hi, lo) + else res.push(lo) + } + } + return res + } + utils.toArray = toArray + function zero2(word) { + if (word.length === 1) return '0' + word + else return word + } + utils.zero2 = zero2 + function toHex(msg) { + var res = '' + for (var i = 0; i < msg.length; i++) res += zero2(msg[i].toString(16)) + return res + } + utils.toHex = toHex + utils.encode = function encode(arr, enc) { + if (enc === 'hex') return toHex(arr) + else return arr + } + }, + {} + ], + 160: [ + function (require, module, exports) { + module.exports = { + '2.16.840.1.101.3.4.1.1': 'aes-128-ecb', + '2.16.840.1.101.3.4.1.2': 'aes-128-cbc', + '2.16.840.1.101.3.4.1.3': 'aes-128-ofb', + '2.16.840.1.101.3.4.1.4': 'aes-128-cfb', + '2.16.840.1.101.3.4.1.21': 'aes-192-ecb', + '2.16.840.1.101.3.4.1.22': 'aes-192-cbc', + '2.16.840.1.101.3.4.1.23': 'aes-192-ofb', + '2.16.840.1.101.3.4.1.24': 'aes-192-cfb', + '2.16.840.1.101.3.4.1.41': 'aes-256-ecb', + '2.16.840.1.101.3.4.1.42': 'aes-256-cbc', + '2.16.840.1.101.3.4.1.43': 'aes-256-ofb', + '2.16.840.1.101.3.4.1.44': 'aes-256-cfb' + } + }, + {} + ], + 161: [ + function (require, module, exports) { + 'use strict' + var asn1 = require('asn1.js') + exports.certificate = require('./certificate') + var RSAPrivateKey = asn1.define('RSAPrivateKey', function () { + this.seq().obj( + this.key('version').int(), + this.key('modulus').int(), + this.key('publicExponent').int(), + this.key('privateExponent').int(), + this.key('prime1').int(), + this.key('prime2').int(), + this.key('exponent1').int(), + this.key('exponent2').int(), + this.key('coefficient').int() + ) + }) + exports.RSAPrivateKey = RSAPrivateKey + var RSAPublicKey = asn1.define('RSAPublicKey', function () { + this.seq().obj(this.key('modulus').int(), this.key('publicExponent').int()) + }) + exports.RSAPublicKey = RSAPublicKey + var PublicKey = asn1.define('SubjectPublicKeyInfo', function () { + this.seq().obj( + this.key('algorithm').use(AlgorithmIdentifier), + this.key('subjectPublicKey').bitstr() + ) + }) + exports.PublicKey = PublicKey + var AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () { + this.seq().obj( + this.key('algorithm').objid(), + this.key('none').null_().optional(), + this.key('curve').objid().optional(), + this.key('params') + .seq() + .obj(this.key('p').int(), this.key('q').int(), this.key('g').int()) + .optional() + ) + }) + var PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () { + this.seq().obj( + this.key('version').int(), + this.key('algorithm').use(AlgorithmIdentifier), + this.key('subjectPrivateKey').octstr() + ) + }) + exports.PrivateKey = PrivateKeyInfo + var EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () { + this.seq().obj( + this.key('algorithm') + .seq() + .obj( + this.key('id').objid(), + this.key('decrypt') + .seq() + .obj( + this.key('kde') + .seq() + .obj( + this.key('id').objid(), + this.key('kdeparams') + .seq() + .obj(this.key('salt').octstr(), this.key('iters').int()) + ), + this.key('cipher') + .seq() + .obj(this.key('algo').objid(), this.key('iv').octstr()) + ) + ), + this.key('subjectPrivateKey').octstr() + ) + }) + exports.EncryptedPrivateKey = EncryptedPrivateKeyInfo + var DSAPrivateKey = asn1.define('DSAPrivateKey', function () { + this.seq().obj( + this.key('version').int(), + this.key('p').int(), + this.key('q').int(), + this.key('g').int(), + this.key('pub_key').int(), + this.key('priv_key').int() + ) + }) + exports.DSAPrivateKey = DSAPrivateKey + exports.DSAparam = asn1.define('DSAparam', function () { + this.int() + }) + var ECPrivateKey = asn1.define('ECPrivateKey', function () { + this.seq().obj( + this.key('version').int(), + this.key('privateKey').octstr(), + this.key('parameters').optional().explicit(0).use(ECParameters), + this.key('publicKey').optional().explicit(1).bitstr() + ) + }) + exports.ECPrivateKey = ECPrivateKey + var ECParameters = asn1.define('ECParameters', function () { + this.choice({ namedCurve: this.objid() }) + }) + exports.signature = asn1.define('signature', function () { + this.seq().obj(this.key('r').int(), this.key('s').int()) + }) + }, + { './certificate': 162, 'asn1.js': 1 } + ], + 162: [ + function (require, module, exports) { + 'use strict' + var asn = require('asn1.js') + var Time = asn.define('Time', function () { + this.choice({ utcTime: this.utctime(), generalTime: this.gentime() }) + }) + var AttributeTypeValue = asn.define('AttributeTypeValue', function () { + this.seq().obj(this.key('type').objid(), this.key('value').any()) + }) + var AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () { + this.seq().obj( + this.key('algorithm').objid(), + this.key('parameters').optional(), + this.key('curve').objid().optional() + ) + }) + var SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () { + this.seq().obj( + this.key('algorithm').use(AlgorithmIdentifier), + this.key('subjectPublicKey').bitstr() + ) + }) + var RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () { + this.setof(AttributeTypeValue) + }) + var RDNSequence = asn.define('RDNSequence', function () { + this.seqof(RelativeDistinguishedName) + }) + var Name = asn.define('Name', function () { + this.choice({ rdnSequence: this.use(RDNSequence) }) + }) + var Validity = asn.define('Validity', function () { + this.seq().obj(this.key('notBefore').use(Time), this.key('notAfter').use(Time)) + }) + var Extension = asn.define('Extension', function () { + this.seq().obj( + this.key('extnID').objid(), + this.key('critical').bool().def(false), + this.key('extnValue').octstr() + ) + }) + var TBSCertificate = asn.define('TBSCertificate', function () { + this.seq().obj( + this.key('version').explicit(0).int().optional(), + this.key('serialNumber').int(), + this.key('signature').use(AlgorithmIdentifier), + this.key('issuer').use(Name), + this.key('validity').use(Validity), + this.key('subject').use(Name), + this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo), + this.key('issuerUniqueID').implicit(1).bitstr().optional(), + this.key('subjectUniqueID').implicit(2).bitstr().optional(), + this.key('extensions').explicit(3).seqof(Extension).optional() + ) + }) + var X509Certificate = asn.define('X509Certificate', function () { + this.seq().obj( + this.key('tbsCertificate').use(TBSCertificate), + this.key('signatureAlgorithm').use(AlgorithmIdentifier), + this.key('signatureValue').bitstr() + ) + }) + module.exports = X509Certificate + }, + { 'asn1.js': 1 } + ], + 163: [ + function (require, module, exports) { + var findProc = + /Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r\+\/\=]+)[\n\r]+/m + var startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m + var fullRegex = + /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r\+\/\=]+)-----END \1-----$/m + var evp = require('evp_bytestokey') + var ciphers = require('browserify-aes') + var Buffer = require('safe-buffer').Buffer + module.exports = function (okey, password) { + var key = okey.toString() + var match = key.match(findProc) + var decrypted + if (!match) { + var match2 = key.match(fullRegex) + decrypted = new Buffer(match2[2].replace(/[\r\n]/g, ''), 'base64') + } else { + var suite = 'aes' + match[1] + var iv = Buffer.from(match[2], 'hex') + var cipherText = Buffer.from(match[3].replace(/[\r\n]/g, ''), 'base64') + var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key + var out = [] + var cipher = ciphers.createDecipheriv(suite, cipherKey, iv) + out.push(cipher.update(cipherText)) + out.push(cipher.final()) + decrypted = Buffer.concat(out) + } + var tag = key.match(startRegex)[1] + return { tag: tag, data: decrypted } + } + }, + { 'browserify-aes': 52, evp_bytestokey: 135, 'safe-buffer': 183 } + ], + 164: [ + function (require, module, exports) { + var asn1 = require('./asn1') + var aesid = require('./aesid.json') + var fixProc = require('./fixProc') + var ciphers = require('browserify-aes') + var compat = require('pbkdf2') + var Buffer = require('safe-buffer').Buffer + module.exports = parseKeys + function parseKeys(buffer) { + var password + if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) { + password = buffer.passphrase + buffer = buffer.key + } + if (typeof buffer === 'string') { + buffer = Buffer.from(buffer) + } + var stripped = fixProc(buffer, password) + var type = stripped.tag + var data = stripped.data + var subtype, ndata + switch (type) { + case 'CERTIFICATE': + ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo + case 'PUBLIC KEY': + if (!ndata) { + ndata = asn1.PublicKey.decode(data, 'der') + } + subtype = ndata.algorithm.algorithm.join('.') + switch (subtype) { + case '1.2.840.113549.1.1.1': + return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der') + case '1.2.840.10045.2.1': + ndata.subjectPrivateKey = ndata.subjectPublicKey + return { type: 'ec', data: ndata } + case '1.2.840.10040.4.1': + ndata.algorithm.params.pub_key = asn1.DSAparam.decode( + ndata.subjectPublicKey.data, + 'der' + ) + return { type: 'dsa', data: ndata.algorithm.params } + default: + throw new Error('unknown key id ' + subtype) + } + throw new Error('unknown key type ' + type) + case 'ENCRYPTED PRIVATE KEY': + data = asn1.EncryptedPrivateKey.decode(data, 'der') + data = decrypt(data, password) + case 'PRIVATE KEY': + ndata = asn1.PrivateKey.decode(data, 'der') + subtype = ndata.algorithm.algorithm.join('.') + switch (subtype) { + case '1.2.840.113549.1.1.1': + return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der') + case '1.2.840.10045.2.1': + return { + curve: ndata.algorithm.curve, + privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der') + .privateKey + } + case '1.2.840.10040.4.1': + ndata.algorithm.params.priv_key = asn1.DSAparam.decode( + ndata.subjectPrivateKey, + 'der' + ) + return { type: 'dsa', params: ndata.algorithm.params } + default: + throw new Error('unknown key id ' + subtype) + } + throw new Error('unknown key type ' + type) + case 'RSA PUBLIC KEY': + return asn1.RSAPublicKey.decode(data, 'der') + case 'RSA PRIVATE KEY': + return asn1.RSAPrivateKey.decode(data, 'der') + case 'DSA PRIVATE KEY': + return { type: 'dsa', params: asn1.DSAPrivateKey.decode(data, 'der') } + case 'EC PRIVATE KEY': + data = asn1.ECPrivateKey.decode(data, 'der') + return { curve: data.parameters.value, privateKey: data.privateKey } + default: + throw new Error('unknown key type ' + type) + } + } + parseKeys.signature = asn1.signature + function decrypt(data, password) { + var salt = data.algorithm.decrypt.kde.kdeparams.salt + var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10) + var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')] + var iv = data.algorithm.decrypt.cipher.iv + var cipherText = data.subjectPrivateKey + var keylen = parseInt(algo.split('-')[1], 10) / 8 + var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1') + var cipher = ciphers.createDecipheriv(algo, key, iv) + var out = [] + out.push(cipher.update(cipherText)) + out.push(cipher.final()) + return Buffer.concat(out) + } + }, + { + './aesid.json': 160, + './asn1': 161, + './fixProc': 163, + 'browserify-aes': 52, + pbkdf2: 166, + 'safe-buffer': 183 + } + ], + 165: [ + function (require, module, exports) { + ;(function (process) { + ;(function () { + 'use strict' + function assertPath(path) { + if (typeof path !== 'string') { + throw new TypeError('Path must be a string. Received ' + JSON.stringify(path)) + } + } + function normalizeStringPosix(path, allowAboveRoot) { + var res = '' + var lastSegmentLength = 0 + var lastSlash = -1 + var dots = 0 + var code + for (var i = 0; i <= path.length; ++i) { + if (i < path.length) code = path.charCodeAt(i) + else if (code === 47) break + else code = 47 + if (code === 47) { + if (lastSlash === i - 1 || dots === 1) { + } else if (lastSlash !== i - 1 && dots === 2) { + if ( + res.length < 2 || + lastSegmentLength !== 2 || + res.charCodeAt(res.length - 1) !== 46 || + res.charCodeAt(res.length - 2) !== 46 + ) { + if (res.length > 2) { + var lastSlashIndex = res.lastIndexOf('/') + if (lastSlashIndex !== res.length - 1) { + if (lastSlashIndex === -1) { + res = '' + lastSegmentLength = 0 + } else { + res = res.slice(0, lastSlashIndex) + lastSegmentLength = res.length - 1 - res.lastIndexOf('/') + } + lastSlash = i + dots = 0 + continue + } + } else if (res.length === 2 || res.length === 1) { + res = '' + lastSegmentLength = 0 + lastSlash = i + dots = 0 + continue + } + } + if (allowAboveRoot) { + if (res.length > 0) res += '/..' + else res = '..' + lastSegmentLength = 2 + } + } else { + if (res.length > 0) res += '/' + path.slice(lastSlash + 1, i) + else res = path.slice(lastSlash + 1, i) + lastSegmentLength = i - lastSlash - 1 + } + lastSlash = i + dots = 0 + } else if (code === 46 && dots !== -1) { + ++dots + } else { + dots = -1 + } + } + return res + } + function _format(sep, pathObject) { + var dir = pathObject.dir || pathObject.root + var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '') + if (!dir) { + return base + } + if (dir === pathObject.root) { + return dir + base + } + return dir + sep + base + } + var posix = { + resolve: function resolve() { + var resolvedPath = '' + var resolvedAbsolute = false + var cwd + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path + if (i >= 0) path = arguments[i] + else { + if (cwd === undefined) cwd = process.cwd() + path = cwd + } + assertPath(path) + if (path.length === 0) { + continue + } + resolvedPath = path + '/' + resolvedPath + resolvedAbsolute = path.charCodeAt(0) === 47 + } + resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute) + if (resolvedAbsolute) { + if (resolvedPath.length > 0) return '/' + resolvedPath + else return '/' + } else if (resolvedPath.length > 0) { + return resolvedPath + } else { + return '.' + } + }, + normalize: function normalize(path) { + assertPath(path) + if (path.length === 0) return '.' + var isAbsolute = path.charCodeAt(0) === 47 + var trailingSeparator = path.charCodeAt(path.length - 1) === 47 + path = normalizeStringPosix(path, !isAbsolute) + if (path.length === 0 && !isAbsolute) path = '.' + if (path.length > 0 && trailingSeparator) path += '/' + if (isAbsolute) return '/' + path + return path + }, + isAbsolute: function isAbsolute(path) { + assertPath(path) + return path.length > 0 && path.charCodeAt(0) === 47 + }, + join: function join() { + if (arguments.length === 0) return '.' + var joined + for (var i = 0; i < arguments.length; ++i) { + var arg = arguments[i] + assertPath(arg) + if (arg.length > 0) { + if (joined === undefined) joined = arg + else joined += '/' + arg + } + } + if (joined === undefined) return '.' + return posix.normalize(joined) + }, + relative: function relative(from, to) { + assertPath(from) + assertPath(to) + if (from === to) return '' + from = posix.resolve(from) + to = posix.resolve(to) + if (from === to) return '' + var fromStart = 1 + for (; fromStart < from.length; ++fromStart) { + if (from.charCodeAt(fromStart) !== 47) break + } + var fromEnd = from.length + var fromLen = fromEnd - fromStart + var toStart = 1 + for (; toStart < to.length; ++toStart) { + if (to.charCodeAt(toStart) !== 47) break + } + var toEnd = to.length + var toLen = toEnd - toStart + var length = fromLen < toLen ? fromLen : toLen + var lastCommonSep = -1 + var i = 0 + for (; i <= length; ++i) { + if (i === length) { + if (toLen > length) { + if (to.charCodeAt(toStart + i) === 47) { + return to.slice(toStart + i + 1) + } else if (i === 0) { + return to.slice(toStart + i) + } + } else if (fromLen > length) { + if (from.charCodeAt(fromStart + i) === 47) { + lastCommonSep = i + } else if (i === 0) { + lastCommonSep = 0 + } + } + break + } + var fromCode = from.charCodeAt(fromStart + i) + var toCode = to.charCodeAt(toStart + i) + if (fromCode !== toCode) break + else if (fromCode === 47) lastCommonSep = i + } + var out = '' + for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { + if (i === fromEnd || from.charCodeAt(i) === 47) { + if (out.length === 0) out += '..' + else out += '/..' + } + } + if (out.length > 0) return out + to.slice(toStart + lastCommonSep) + else { + toStart += lastCommonSep + if (to.charCodeAt(toStart) === 47) ++toStart + return to.slice(toStart) + } + }, + _makeLong: function _makeLong(path) { + return path + }, + dirname: function dirname(path) { + assertPath(path) + if (path.length === 0) return '.' + var code = path.charCodeAt(0) + var hasRoot = code === 47 + var end = -1 + var matchedSlash = true + for (var i = path.length - 1; i >= 1; --i) { + code = path.charCodeAt(i) + if (code === 47) { + if (!matchedSlash) { + end = i + break + } + } else { + matchedSlash = false + } + } + if (end === -1) return hasRoot ? '/' : '.' + if (hasRoot && end === 1) return '//' + return path.slice(0, end) + }, + basename: function basename(path, ext) { + if (ext !== undefined && typeof ext !== 'string') + throw new TypeError('"ext" argument must be a string') + assertPath(path) + var start = 0 + var end = -1 + var matchedSlash = true + var i + if (ext !== undefined && ext.length > 0 && ext.length <= path.length) { + if (ext.length === path.length && ext === path) return '' + var extIdx = ext.length - 1 + var firstNonSlashEnd = -1 + for (i = path.length - 1; i >= 0; --i) { + var code = path.charCodeAt(i) + if (code === 47) { + if (!matchedSlash) { + start = i + 1 + break + } + } else { + if (firstNonSlashEnd === -1) { + matchedSlash = false + firstNonSlashEnd = i + 1 + } + if (extIdx >= 0) { + if (code === ext.charCodeAt(extIdx)) { + if (--extIdx === -1) { + end = i + } + } else { + extIdx = -1 + end = firstNonSlashEnd + } + } + } + } + if (start === end) end = firstNonSlashEnd + else if (end === -1) end = path.length + return path.slice(start, end) + } else { + for (i = path.length - 1; i >= 0; --i) { + if (path.charCodeAt(i) === 47) { + if (!matchedSlash) { + start = i + 1 + break + } + } else if (end === -1) { + matchedSlash = false + end = i + 1 + } + } + if (end === -1) return '' + return path.slice(start, end) + } + }, + extname: function extname(path) { + assertPath(path) + var startDot = -1 + var startPart = 0 + var end = -1 + var matchedSlash = true + var preDotState = 0 + for (var i = path.length - 1; i >= 0; --i) { + var code = path.charCodeAt(i) + if (code === 47) { + if (!matchedSlash) { + startPart = i + 1 + break + } + continue + } + if (end === -1) { + matchedSlash = false + end = i + 1 + } + if (code === 46) { + if (startDot === -1) startDot = i + else if (preDotState !== 1) preDotState = 1 + } else if (startDot !== -1) { + preDotState = -1 + } + } + if ( + startDot === -1 || + end === -1 || + preDotState === 0 || + (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) + ) { + return '' + } + return path.slice(startDot, end) + }, + format: function format(pathObject) { + if (pathObject === null || typeof pathObject !== 'object') { + throw new TypeError( + 'The "pathObject" argument must be of type Object. Received type ' + + typeof pathObject + ) + } + return _format('/', pathObject) + }, + parse: function parse(path) { + assertPath(path) + var ret = { root: '', dir: '', base: '', ext: '', name: '' } + if (path.length === 0) return ret + var code = path.charCodeAt(0) + var isAbsolute = code === 47 + var start + if (isAbsolute) { + ret.root = '/' + start = 1 + } else { + start = 0 + } + var startDot = -1 + var startPart = 0 + var end = -1 + var matchedSlash = true + var i = path.length - 1 + var preDotState = 0 + for (; i >= start; --i) { + code = path.charCodeAt(i) + if (code === 47) { + if (!matchedSlash) { + startPart = i + 1 + break + } + continue + } + if (end === -1) { + matchedSlash = false + end = i + 1 + } + if (code === 46) { + if (startDot === -1) startDot = i + else if (preDotState !== 1) preDotState = 1 + } else if (startDot !== -1) { + preDotState = -1 + } + } + if ( + startDot === -1 || + end === -1 || + preDotState === 0 || + (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) + ) { + if (end !== -1) { + if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end) + else ret.base = ret.name = path.slice(startPart, end) + } + } else { + if (startPart === 0 && isAbsolute) { + ret.name = path.slice(1, startDot) + ret.base = path.slice(1, end) + } else { + ret.name = path.slice(startPart, startDot) + ret.base = path.slice(startPart, end) + } + ret.ext = path.slice(startDot, end) + } + if (startPart > 0) ret.dir = path.slice(0, startPart - 1) + else if (isAbsolute) ret.dir = '/' + return ret + }, + sep: '/', + delimiter: ':', + win32: null, + posix: null + } + posix.posix = posix + module.exports = posix + }.call(this)) + }.call(this, require('_process'))) + }, + { _process: 171 } + ], + 166: [ + function (require, module, exports) { + exports.pbkdf2 = require('./lib/async') + exports.pbkdf2Sync = require('./lib/sync') + }, + { './lib/async': 167, './lib/sync': 170 } + ], + 167: [ + function (require, module, exports) { + ;(function (process, global) { + ;(function () { + var checkParameters = require('./precondition') + var defaultEncoding = require('./default-encoding') + var sync = require('./sync') + var Buffer = require('safe-buffer').Buffer + var ZERO_BUF + var subtle = global.crypto && global.crypto.subtle + var toBrowser = { + sha: 'SHA-1', + 'sha-1': 'SHA-1', + sha1: 'SHA-1', + sha256: 'SHA-256', + 'sha-256': 'SHA-256', + sha384: 'SHA-384', + 'sha-384': 'SHA-384', + 'sha-512': 'SHA-512', + sha512: 'SHA-512' + } + var checks = [] + function checkNative(algo) { + if (global.process && !global.process.browser) { + return Promise.resolve(false) + } + if (!subtle || !subtle.importKey || !subtle.deriveBits) { + return Promise.resolve(false) + } + if (checks[algo] !== undefined) { + return checks[algo] + } + ZERO_BUF = ZERO_BUF || Buffer.alloc(8) + var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo) + .then(function () { + return true + }) + .catch(function () { + return false + }) + checks[algo] = prom + return prom + } + function browserPbkdf2(password, salt, iterations, length, algo) { + return subtle + .importKey('raw', password, { name: 'PBKDF2' }, false, ['deriveBits']) + .then(function (key) { + return subtle.deriveBits( + { name: 'PBKDF2', salt: salt, iterations: iterations, hash: { name: algo } }, + key, + length << 3 + ) + }) + .then(function (res) { + return Buffer.from(res) + }) + } + function resolvePromise(promise, callback) { + promise.then( + function (out) { + process.nextTick(function () { + callback(null, out) + }) + }, + function (e) { + process.nextTick(function () { + callback(e) + }) + } + ) + } + module.exports = function (password, salt, iterations, keylen, digest, callback) { + if (typeof digest === 'function') { + callback = digest + digest = undefined + } + digest = digest || 'sha1' + var algo = toBrowser[digest.toLowerCase()] + if (!algo || typeof global.Promise !== 'function') { + return process.nextTick(function () { + var out + try { + out = sync(password, salt, iterations, keylen, digest) + } catch (e) { + return callback(e) + } + callback(null, out) + }) + } + checkParameters(password, salt, iterations, keylen) + if (typeof callback !== 'function') + throw new Error('No callback provided to pbkdf2') + if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding) + if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding) + resolvePromise( + checkNative(algo).then(function (resp) { + if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo) + return sync(password, salt, iterations, keylen, digest) + }), + callback + ) + } + }.call(this)) + }.call( + this, + require('_process'), + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {} + )) + }, + { + './default-encoding': 168, + './precondition': 169, + './sync': 170, + _process: 171, + 'safe-buffer': 183 + } + ], + 168: [ + function (require, module, exports) { + ;(function (process) { + ;(function () { + var defaultEncoding + if (process.browser) { + defaultEncoding = 'utf-8' + } else { + var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10) + defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary' + } + module.exports = defaultEncoding + }.call(this)) + }.call(this, require('_process'))) + }, + { _process: 171 } + ], + 169: [ + function (require, module, exports) { + ;(function (Buffer) { + ;(function () { + var MAX_ALLOC = Math.pow(2, 30) - 1 + function checkBuffer(buf, name) { + if (typeof buf !== 'string' && !Buffer.isBuffer(buf)) { + throw new TypeError(name + ' must be a buffer or string') + } + } + module.exports = function (password, salt, iterations, keylen) { + checkBuffer(password, 'Password') + checkBuffer(salt, 'Salt') + if (typeof iterations !== 'number') { + throw new TypeError('Iterations not a number') + } + if (iterations < 0) { + throw new TypeError('Bad iterations') + } + if (typeof keylen !== 'number') { + throw new TypeError('Key length not a number') + } + if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { + throw new TypeError('Bad key length') + } + } + }.call(this)) + }.call(this, { + isBuffer: require('../../insert-module-globals/node_modules/is-buffer/index.js') + })) + }, + { '../../insert-module-globals/node_modules/is-buffer/index.js': 152 } + ], + 170: [ + function (require, module, exports) { + var md5 = require('create-hash/md5') + var RIPEMD160 = require('ripemd160') + var sha = require('sha.js') + var checkParameters = require('./precondition') + var defaultEncoding = require('./default-encoding') + var Buffer = require('safe-buffer').Buffer + var ZEROS = Buffer.alloc(128) + var sizes = { + md5: 16, + sha1: 20, + sha224: 28, + sha256: 32, + sha384: 48, + sha512: 64, + rmd160: 20, + ripemd160: 20 + } + function Hmac(alg, key, saltLen) { + var hash = getDigest(alg) + var blocksize = alg === 'sha512' || alg === 'sha384' ? 128 : 64 + if (key.length > blocksize) { + key = hash(key) + } else if (key.length < blocksize) { + key = Buffer.concat([key, ZEROS], blocksize) + } + var ipad = Buffer.allocUnsafe(blocksize + sizes[alg]) + var opad = Buffer.allocUnsafe(blocksize + sizes[alg]) + for (var i = 0; i < blocksize; i++) { + ipad[i] = key[i] ^ 54 + opad[i] = key[i] ^ 92 + } + var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4) + ipad.copy(ipad1, 0, 0, blocksize) + this.ipad1 = ipad1 + this.ipad2 = ipad + this.opad = opad + this.alg = alg + this.blocksize = blocksize + this.hash = hash + this.size = sizes[alg] + } + Hmac.prototype.run = function (data, ipad) { + data.copy(ipad, this.blocksize) + var h = this.hash(ipad) + h.copy(this.opad, this.blocksize) + return this.hash(this.opad) + } + function getDigest(alg) { + function shaFunc(data) { + return sha(alg).update(data).digest() + } + function rmd160Func(data) { + return new RIPEMD160().update(data).digest() + } + if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func + if (alg === 'md5') return md5 + return shaFunc + } + function pbkdf2(password, salt, iterations, keylen, digest) { + checkParameters(password, salt, iterations, keylen) + if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding) + if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding) + digest = digest || 'sha1' + var hmac = new Hmac(digest, password, salt.length) + var DK = Buffer.allocUnsafe(keylen) + var block1 = Buffer.allocUnsafe(salt.length + 4) + salt.copy(block1, 0, 0, salt.length) + var destPos = 0 + var hLen = sizes[digest] + var l = Math.ceil(keylen / hLen) + for (var i = 1; i <= l; i++) { + block1.writeUInt32BE(i, salt.length) + var T = hmac.run(block1, hmac.ipad1) + var U = T + for (var j = 1; j < iterations; j++) { + U = hmac.run(U, hmac.ipad2) + for (var k = 0; k < hLen; k++) T[k] ^= U[k] + } + T.copy(DK, destPos) + destPos += hLen + } + return DK + } + module.exports = pbkdf2 + }, + { + './default-encoding': 168, + './precondition': 169, + 'create-hash/md5': 102, + ripemd160: 182, + 'safe-buffer': 183, + 'sha.js': 185 + } + ], + 171: [ + function (require, module, exports) { + var process = (module.exports = {}) + var cachedSetTimeout + var cachedClearTimeout + function defaultSetTimout() { + throw new Error('setTimeout has not been defined') + } + function defaultClearTimeout() { + throw new Error('clearTimeout has not been defined') + } + ;(function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout + } else { + cachedSetTimeout = defaultSetTimout + } + } catch (e) { + cachedSetTimeout = defaultSetTimout + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout + } else { + cachedClearTimeout = defaultClearTimeout + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout + } + })() + function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + return setTimeout(fun, 0) + } + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout + return setTimeout(fun, 0) + } + try { + return cachedSetTimeout(fun, 0) + } catch (e) { + try { + return cachedSetTimeout.call(null, fun, 0) + } catch (e) { + return cachedSetTimeout.call(this, fun, 0) + } + } + } + function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + return clearTimeout(marker) + } + if ( + (cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && + clearTimeout + ) { + cachedClearTimeout = clearTimeout + return clearTimeout(marker) + } + try { + return cachedClearTimeout(marker) + } catch (e) { + try { + return cachedClearTimeout.call(null, marker) + } catch (e) { + return cachedClearTimeout.call(this, marker) + } + } + } + var queue = [] + var draining = false + var currentQueue + var queueIndex = -1 + function cleanUpNextTick() { + if (!draining || !currentQueue) { + return + } + draining = false + if (currentQueue.length) { + queue = currentQueue.concat(queue) + } else { + queueIndex = -1 + } + if (queue.length) { + drainQueue() + } + } + function drainQueue() { + if (draining) { + return + } + var timeout = runTimeout(cleanUpNextTick) + draining = true + var len = queue.length + while (len) { + currentQueue = queue + queue = [] + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run() + } + } + queueIndex = -1 + len = queue.length + } + currentQueue = null + draining = false + runClearTimeout(timeout) + } + process.nextTick = function (fun) { + var args = new Array(arguments.length - 1) + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i] + } + } + queue.push(new Item(fun, args)) + if (queue.length === 1 && !draining) { + runTimeout(drainQueue) + } + } + function Item(fun, array) { + this.fun = fun + this.array = array + } + Item.prototype.run = function () { + this.fun.apply(null, this.array) + } + process.title = 'browser' + process.browser = true + process.env = {} + process.argv = [] + process.version = '' + process.versions = {} + function noop() {} + process.on = noop + process.addListener = noop + process.once = noop + process.off = noop + process.removeListener = noop + process.removeAllListeners = noop + process.emit = noop + process.prependListener = noop + process.prependOnceListener = noop + process.listeners = function (name) { + return [] + } + process.binding = function (name) { + throw new Error('process.binding is not supported') + } + process.cwd = function () { + return '/' + } + process.chdir = function (dir) { + throw new Error('process.chdir is not supported') + } + process.umask = function () { + return 0 + } + }, + {} + ], + 172: [ + function (require, module, exports) { + exports.publicEncrypt = require('./publicEncrypt') + exports.privateDecrypt = require('./privateDecrypt') + exports.privateEncrypt = function privateEncrypt(key, buf) { + return exports.publicEncrypt(key, buf, true) + } + exports.publicDecrypt = function publicDecrypt(key, buf) { + return exports.privateDecrypt(key, buf, true) + } + }, + { './privateDecrypt': 175, './publicEncrypt': 176 } + ], + 173: [ + function (require, module, exports) { + var createHash = require('create-hash') + var Buffer = require('safe-buffer').Buffer + module.exports = function (seed, len) { + var t = Buffer.alloc(0) + var i = 0 + var c + while (t.length < len) { + c = i2ops(i++) + t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()]) + } + return t.slice(0, len) + } + function i2ops(c) { + var out = Buffer.allocUnsafe(4) + out.writeUInt32BE(c, 0) + return out + } + }, + { 'create-hash': 101, 'safe-buffer': 183 } + ], + 174: [ + function (require, module, exports) { + arguments[4][15][0].apply(exports, arguments) + }, + { buffer: 49, dup: 15 } + ], + 175: [ + function (require, module, exports) { + var parseKeys = require('parse-asn1') + var mgf = require('./mgf') + var xor = require('./xor') + var BN = require('bn.js') + var crt = require('browserify-rsa') + var createHash = require('create-hash') + var withPublic = require('./withPublic') + var Buffer = require('safe-buffer').Buffer + module.exports = function privateDecrypt(privateKey, enc, reverse) { + var padding + if (privateKey.padding) { + padding = privateKey.padding + } else if (reverse) { + padding = 1 + } else { + padding = 4 + } + var key = parseKeys(privateKey) + var k = key.modulus.byteLength() + if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) { + throw new Error('decryption error') + } + var msg + if (reverse) { + msg = withPublic(new BN(enc), key) + } else { + msg = crt(enc, key) + } + var zBuffer = Buffer.alloc(k - msg.length) + msg = Buffer.concat([zBuffer, msg], k) + if (padding === 4) { + return oaep(key, msg) + } else if (padding === 1) { + return pkcs1(key, msg, reverse) + } else if (padding === 3) { + return msg + } else { + throw new Error('unknown padding') + } + } + function oaep(key, msg) { + var k = key.modulus.byteLength() + var iHash = createHash('sha1').update(Buffer.alloc(0)).digest() + var hLen = iHash.length + if (msg[0] !== 0) { + throw new Error('decryption error') + } + var maskedSeed = msg.slice(1, hLen + 1) + var maskedDb = msg.slice(hLen + 1) + var seed = xor(maskedSeed, mgf(maskedDb, hLen)) + var db = xor(maskedDb, mgf(seed, k - hLen - 1)) + if (compare(iHash, db.slice(0, hLen))) { + throw new Error('decryption error') + } + var i = hLen + while (db[i] === 0) { + i++ + } + if (db[i++] !== 1) { + throw new Error('decryption error') + } + return db.slice(i) + } + function pkcs1(key, msg, reverse) { + var p1 = msg.slice(0, 2) + var i = 2 + var status = 0 + while (msg[i++] !== 0) { + if (i >= msg.length) { + status++ + break + } + } + var ps = msg.slice(2, i - 1) + if ( + (p1.toString('hex') !== '0002' && !reverse) || + (p1.toString('hex') !== '0001' && reverse) + ) { + status++ + } + if (ps.length < 8) { + status++ + } + if (status) { + throw new Error('decryption error') + } + return msg.slice(i) + } + function compare(a, b) { + a = Buffer.from(a) + b = Buffer.from(b) + var dif = 0 + var len = a.length + if (a.length !== b.length) { + dif++ + len = Math.min(a.length, b.length) + } + var i = -1 + while (++i < len) { + dif += a[i] ^ b[i] + } + return dif + } + }, + { + './mgf': 173, + './withPublic': 177, + './xor': 178, + 'bn.js': 174, + 'browserify-rsa': 70, + 'create-hash': 101, + 'parse-asn1': 164, + 'safe-buffer': 183 + } + ], + 176: [ + function (require, module, exports) { + var parseKeys = require('parse-asn1') + var randomBytes = require('randombytes') + var createHash = require('create-hash') + var mgf = require('./mgf') + var xor = require('./xor') + var BN = require('bn.js') + var withPublic = require('./withPublic') + var crt = require('browserify-rsa') + var Buffer = require('safe-buffer').Buffer + module.exports = function publicEncrypt(publicKey, msg, reverse) { + var padding + if (publicKey.padding) { + padding = publicKey.padding + } else if (reverse) { + padding = 1 + } else { + padding = 4 + } + var key = parseKeys(publicKey) + var paddedMsg + if (padding === 4) { + paddedMsg = oaep(key, msg) + } else if (padding === 1) { + paddedMsg = pkcs1(key, msg, reverse) + } else if (padding === 3) { + paddedMsg = new BN(msg) + if (paddedMsg.cmp(key.modulus) >= 0) { + throw new Error('data too long for modulus') + } + } else { + throw new Error('unknown padding') + } + if (reverse) { + return crt(paddedMsg, key) + } else { + return withPublic(paddedMsg, key) + } + } + function oaep(key, msg) { + var k = key.modulus.byteLength() + var mLen = msg.length + var iHash = createHash('sha1').update(Buffer.alloc(0)).digest() + var hLen = iHash.length + var hLen2 = 2 * hLen + if (mLen > k - hLen2 - 2) { + throw new Error('message too long') + } + var ps = Buffer.alloc(k - mLen - hLen2 - 2) + var dblen = k - hLen - 1 + var seed = randomBytes(hLen) + var maskedDb = xor( + Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), + mgf(seed, dblen) + ) + var maskedSeed = xor(seed, mgf(maskedDb, hLen)) + return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k)) + } + function pkcs1(key, msg, reverse) { + var mLen = msg.length + var k = key.modulus.byteLength() + if (mLen > k - 11) { + throw new Error('message too long') + } + var ps + if (reverse) { + ps = Buffer.alloc(k - mLen - 3, 255) + } else { + ps = nonZero(k - mLen - 3) + } + return new BN( + Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k) + ) + } + function nonZero(len) { + var out = Buffer.allocUnsafe(len) + var i = 0 + var cache = randomBytes(len * 2) + var cur = 0 + var num + while (i < len) { + if (cur === cache.length) { + cache = randomBytes(len * 2) + cur = 0 + } + num = cache[cur++] + if (num) { + out[i++] = num + } + } + return out + } + }, + { + './mgf': 173, + './withPublic': 177, + './xor': 178, + 'bn.js': 174, + 'browserify-rsa': 70, + 'create-hash': 101, + 'parse-asn1': 164, + randombytes: 180, + 'safe-buffer': 183 + } + ], + 177: [ + function (require, module, exports) { + var BN = require('bn.js') + var Buffer = require('safe-buffer').Buffer + function withPublic(paddedMsg, key) { + return Buffer.from( + paddedMsg + .toRed(BN.mont(key.modulus)) + .redPow(new BN(key.publicExponent)) + .fromRed() + .toArray() + ) + } + module.exports = withPublic + }, + { 'bn.js': 174, 'safe-buffer': 183 } + ], + 178: [ + function (require, module, exports) { + module.exports = function xor(a, b) { + var len = a.length + var i = -1 + while (++i < len) { + a[i] ^= b[i] + } + return a + } + }, + {} + ], + 179: [ + function (require, module, exports) { + var qrcode = (function () { + var qrcode = function (typeNumber, errorCorrectionLevel) { + var PAD0 = 236 + var PAD1 = 17 + var _typeNumber = typeNumber + var _errorCorrectionLevel = QRErrorCorrectionLevel[errorCorrectionLevel] + var _modules = null + var _moduleCount = 0 + var _dataCache = null + var _dataList = [] + var _this = {} + var makeImpl = function (test, maskPattern) { + _moduleCount = _typeNumber * 4 + 17 + _modules = (function (moduleCount) { + var modules = new Array(moduleCount) + for (var row = 0; row < moduleCount; row += 1) { + modules[row] = new Array(moduleCount) + for (var col = 0; col < moduleCount; col += 1) { + modules[row][col] = null + } + } + return modules + })(_moduleCount) + setupPositionProbePattern(0, 0) + setupPositionProbePattern(_moduleCount - 7, 0) + setupPositionProbePattern(0, _moduleCount - 7) + setupPositionAdjustPattern() + setupTimingPattern() + setupTypeInfo(test, maskPattern) + if (_typeNumber >= 7) { + setupTypeNumber(test) + } + if (_dataCache == null) { + _dataCache = createData(_typeNumber, _errorCorrectionLevel, _dataList) + } + mapData(_dataCache, maskPattern) + } + var setupPositionProbePattern = function (row, col) { + for (var r = -1; r <= 7; r += 1) { + if (row + r <= -1 || _moduleCount <= row + r) continue + for (var c = -1; c <= 7; c += 1) { + if (col + c <= -1 || _moduleCount <= col + c) continue + if ( + (0 <= r && r <= 6 && (c == 0 || c == 6)) || + (0 <= c && c <= 6 && (r == 0 || r == 6)) || + (2 <= r && r <= 4 && 2 <= c && c <= 4) + ) { + _modules[row + r][col + c] = true + } else { + _modules[row + r][col + c] = false + } + } + } + } + var getBestMaskPattern = function () { + var minLostPoint = 0 + var pattern = 0 + for (var i = 0; i < 8; i += 1) { + makeImpl(true, i) + var lostPoint = QRUtil.getLostPoint(_this) + if (i == 0 || minLostPoint > lostPoint) { + minLostPoint = lostPoint + pattern = i + } + } + return pattern + } + var setupTimingPattern = function () { + for (var r = 8; r < _moduleCount - 8; r += 1) { + if (_modules[r][6] != null) { + continue + } + _modules[r][6] = r % 2 == 0 + } + for (var c = 8; c < _moduleCount - 8; c += 1) { + if (_modules[6][c] != null) { + continue + } + _modules[6][c] = c % 2 == 0 + } + } + var setupPositionAdjustPattern = function () { + var pos = QRUtil.getPatternPosition(_typeNumber) + for (var i = 0; i < pos.length; i += 1) { + for (var j = 0; j < pos.length; j += 1) { + var row = pos[i] + var col = pos[j] + if (_modules[row][col] != null) { + continue + } + for (var r = -2; r <= 2; r += 1) { + for (var c = -2; c <= 2; c += 1) { + if (r == -2 || r == 2 || c == -2 || c == 2 || (r == 0 && c == 0)) { + _modules[row + r][col + c] = true + } else { + _modules[row + r][col + c] = false + } + } + } + } + } + } + var setupTypeNumber = function (test) { + var bits = QRUtil.getBCHTypeNumber(_typeNumber) + for (var i = 0; i < 18; i += 1) { + var mod = !test && ((bits >> i) & 1) == 1 + _modules[Math.floor(i / 3)][(i % 3) + _moduleCount - 8 - 3] = mod + } + for (var i = 0; i < 18; i += 1) { + var mod = !test && ((bits >> i) & 1) == 1 + _modules[(i % 3) + _moduleCount - 8 - 3][Math.floor(i / 3)] = mod + } + } + var setupTypeInfo = function (test, maskPattern) { + var data = (_errorCorrectionLevel << 3) | maskPattern + var bits = QRUtil.getBCHTypeInfo(data) + for (var i = 0; i < 15; i += 1) { + var mod = !test && ((bits >> i) & 1) == 1 + if (i < 6) { + _modules[i][8] = mod + } else if (i < 8) { + _modules[i + 1][8] = mod + } else { + _modules[_moduleCount - 15 + i][8] = mod + } + } + for (var i = 0; i < 15; i += 1) { + var mod = !test && ((bits >> i) & 1) == 1 + if (i < 8) { + _modules[8][_moduleCount - i - 1] = mod + } else if (i < 9) { + _modules[8][15 - i - 1 + 1] = mod + } else { + _modules[8][15 - i - 1] = mod + } + } + _modules[_moduleCount - 8][8] = !test + } + var mapData = function (data, maskPattern) { + var inc = -1 + var row = _moduleCount - 1 + var bitIndex = 7 + var byteIndex = 0 + var maskFunc = QRUtil.getMaskFunction(maskPattern) + for (var col = _moduleCount - 1; col > 0; col -= 2) { + if (col == 6) col -= 1 + while (true) { + for (var c = 0; c < 2; c += 1) { + if (_modules[row][col - c] == null) { + var dark = false + if (byteIndex < data.length) { + dark = ((data[byteIndex] >>> bitIndex) & 1) == 1 + } + var mask = maskFunc(row, col - c) + if (mask) { + dark = !dark + } + _modules[row][col - c] = dark + bitIndex -= 1 + if (bitIndex == -1) { + byteIndex += 1 + bitIndex = 7 + } + } + } + row += inc + if (row < 0 || _moduleCount <= row) { + row -= inc + inc = -inc + break + } + } + } + } + var createBytes = function (buffer, rsBlocks) { + var offset = 0 + var maxDcCount = 0 + var maxEcCount = 0 + var dcdata = new Array(rsBlocks.length) + var ecdata = new Array(rsBlocks.length) + for (var r = 0; r < rsBlocks.length; r += 1) { + var dcCount = rsBlocks[r].dataCount + var ecCount = rsBlocks[r].totalCount - dcCount + maxDcCount = Math.max(maxDcCount, dcCount) + maxEcCount = Math.max(maxEcCount, ecCount) + dcdata[r] = new Array(dcCount) + for (var i = 0; i < dcdata[r].length; i += 1) { + dcdata[r][i] = 255 & buffer.getBuffer()[i + offset] + } + offset += dcCount + var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount) + var rawPoly = qrPolynomial(dcdata[r], rsPoly.getLength() - 1) + var modPoly = rawPoly.mod(rsPoly) + ecdata[r] = new Array(rsPoly.getLength() - 1) + for (var i = 0; i < ecdata[r].length; i += 1) { + var modIndex = i + modPoly.getLength() - ecdata[r].length + ecdata[r][i] = modIndex >= 0 ? modPoly.getAt(modIndex) : 0 + } + } + var totalCodeCount = 0 + for (var i = 0; i < rsBlocks.length; i += 1) { + totalCodeCount += rsBlocks[i].totalCount + } + var data = new Array(totalCodeCount) + var index = 0 + for (var i = 0; i < maxDcCount; i += 1) { + for (var r = 0; r < rsBlocks.length; r += 1) { + if (i < dcdata[r].length) { + data[index] = dcdata[r][i] + index += 1 + } + } + } + for (var i = 0; i < maxEcCount; i += 1) { + for (var r = 0; r < rsBlocks.length; r += 1) { + if (i < ecdata[r].length) { + data[index] = ecdata[r][i] + index += 1 + } + } + } + return data + } + var createData = function (typeNumber, errorCorrectionLevel, dataList) { + var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectionLevel) + var buffer = qrBitBuffer() + for (var i = 0; i < dataList.length; i += 1) { + var data = dataList[i] + buffer.put(data.getMode(), 4) + buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber)) + data.write(buffer) + } + var totalDataCount = 0 + for (var i = 0; i < rsBlocks.length; i += 1) { + totalDataCount += rsBlocks[i].dataCount + } + if (buffer.getLengthInBits() > totalDataCount * 8) { + throw ( + 'code length overflow. (' + + buffer.getLengthInBits() + + '>' + + totalDataCount * 8 + + ')' + ) + } + if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) { + buffer.put(0, 4) + } + while (buffer.getLengthInBits() % 8 != 0) { + buffer.putBit(false) + } + while (true) { + if (buffer.getLengthInBits() >= totalDataCount * 8) { + break + } + buffer.put(PAD0, 8) + if (buffer.getLengthInBits() >= totalDataCount * 8) { + break + } + buffer.put(PAD1, 8) + } + return createBytes(buffer, rsBlocks) + } + _this.addData = function (data, mode) { + mode = mode || 'Byte' + var newData = null + switch (mode) { + case 'Numeric': + newData = qrNumber(data) + break + case 'Alphanumeric': + newData = qrAlphaNum(data) + break + case 'Byte': + newData = qr8BitByte(data) + break + case 'Kanji': + newData = qrKanji(data) + break + default: + throw 'mode:' + mode + } + _dataList.push(newData) + _dataCache = null + } + _this.isDark = function (row, col) { + if (row < 0 || _moduleCount <= row || col < 0 || _moduleCount <= col) { + throw row + ',' + col + } + return _modules[row][col] + } + _this.getModuleCount = function () { + return _moduleCount + } + _this.make = function () { + if (_typeNumber < 1) { + var typeNumber = 1 + for (; typeNumber < 40; typeNumber++) { + var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, _errorCorrectionLevel) + var buffer = qrBitBuffer() + for (var i = 0; i < _dataList.length; i++) { + var data = _dataList[i] + buffer.put(data.getMode(), 4) + buffer.put( + data.getLength(), + QRUtil.getLengthInBits(data.getMode(), typeNumber) + ) + data.write(buffer) + } + var totalDataCount = 0 + for (var i = 0; i < rsBlocks.length; i++) { + totalDataCount += rsBlocks[i].dataCount + } + if (buffer.getLengthInBits() <= totalDataCount * 8) { + break + } + } + _typeNumber = typeNumber + } + makeImpl(false, getBestMaskPattern()) + } + _this.createTableTag = function (cellSize, margin) { + cellSize = cellSize || 2 + margin = typeof margin == 'undefined' ? cellSize * 4 : margin + var qrHtml = '' + qrHtml += '' + qrHtml += '' + for (var r = 0; r < _this.getModuleCount(); r += 1) { + qrHtml += '' + for (var c = 0; c < _this.getModuleCount(); c += 1) { + qrHtml += '' + } + qrHtml += '' + qrHtml += '
' + } + qrHtml += '
' + return qrHtml + } + _this.createSvgTag = function (cellSize, margin, alt, title) { + var opts = {} + if (typeof arguments[0] == 'object') { + opts = arguments[0] + cellSize = opts.cellSize + margin = opts.margin + alt = opts.alt + title = opts.title + } + cellSize = cellSize || 2 + margin = typeof margin == 'undefined' ? cellSize * 4 : margin + alt = typeof alt === 'string' ? { text: alt } : alt || {} + alt.text = alt.text || null + alt.id = alt.text ? alt.id || 'qrcode-description' : null + title = typeof title === 'string' ? { text: title } : title || {} + title.text = title.text || null + title.id = title.text ? title.id || 'qrcode-title' : null + var size = _this.getModuleCount() * cellSize + margin * 2 + var c, + mc, + r, + mr, + qrSvg = '', + rect + rect = + 'l' + cellSize + ',0 0,' + cellSize + ' -' + cellSize + ',0 0,-' + cellSize + 'z ' + qrSvg += '' + escapeXml(title.text) + '' + : '' + qrSvg += alt.text + ? '' + + escapeXml(alt.text) + + '' + : '' + qrSvg += '' + qrSvg += '' + qrSvg += '' + return qrSvg + } + _this.createDataURL = function (cellSize, margin) { + cellSize = cellSize || 2 + margin = typeof margin == 'undefined' ? cellSize * 4 : margin + var size = _this.getModuleCount() * cellSize + margin * 2 + var min = margin + var max = size - margin + return createDataURL(size, size, function (x, y) { + if (min <= x && x < max && min <= y && y < max) { + var c = Math.floor((x - min) / cellSize) + var r = Math.floor((y - min) / cellSize) + return _this.isDark(r, c) ? 0 : 1 + } else { + return 1 + } + }) + } + _this.createImgTag = function (cellSize, margin, alt) { + cellSize = cellSize || 2 + margin = typeof margin == 'undefined' ? cellSize * 4 : margin + var size = _this.getModuleCount() * cellSize + margin * 2 + var img = '' + img += '': + escaped += '>' + break + case '&': + escaped += '&' + break + case '"': + escaped += '"' + break + default: + escaped += c + break + } + } + return escaped + } + var _createHalfASCII = function (margin) { + var cellSize = 1 + margin = typeof margin == 'undefined' ? cellSize * 2 : margin + var size = _this.getModuleCount() * cellSize + margin * 2 + var min = margin + var max = size - margin + var y, x, r1, r2, p + var blocks = { '██': '█', '█ ': '▀', ' █': '▄', ' ': ' ' } + var blocksLastLineNoMargin = { '██': '▀', '█ ': '▀', ' █': ' ', ' ': ' ' } + var ascii = '' + for (y = 0; y < size; y += 2) { + r1 = Math.floor((y - min) / cellSize) + r2 = Math.floor((y + 1 - min) / cellSize) + for (x = 0; x < size; x += 1) { + p = '█' + if ( + min <= x && + x < max && + min <= y && + y < max && + _this.isDark(r1, Math.floor((x - min) / cellSize)) + ) { + p = ' ' + } + if ( + min <= x && + x < max && + min <= y + 1 && + y + 1 < max && + _this.isDark(r2, Math.floor((x - min) / cellSize)) + ) { + p += ' ' + } else { + p += '█' + } + ascii += margin < 1 && y + 1 >= max ? blocksLastLineNoMargin[p] : blocks[p] + } + ascii += '\n' + } + if (size % 2 && margin > 0) { + return ascii.substring(0, ascii.length - size - 1) + Array(size + 1).join('▀') + } + return ascii.substring(0, ascii.length - 1) + } + _this.createASCII = function (cellSize, margin) { + cellSize = cellSize || 1 + if (cellSize < 2) { + return _createHalfASCII(margin) + } + cellSize -= 1 + margin = typeof margin == 'undefined' ? cellSize * 2 : margin + var size = _this.getModuleCount() * cellSize + margin * 2 + var min = margin + var max = size - margin + var y, x, r, p + var white = Array(cellSize + 1).join('██') + var black = Array(cellSize + 1).join(' ') + var ascii = '' + var line = '' + for (y = 0; y < size; y += 1) { + r = Math.floor((y - min) / cellSize) + line = '' + for (x = 0; x < size; x += 1) { + p = 1 + if ( + min <= x && + x < max && + min <= y && + y < max && + _this.isDark(r, Math.floor((x - min) / cellSize)) + ) { + p = 0 + } + line += p ? white : black + } + for (r = 0; r < cellSize; r += 1) { + ascii += line + '\n' + } + } + return ascii.substring(0, ascii.length - 1) + } + _this.renderTo2dContext = function (context, cellSize) { + cellSize = cellSize || 2 + var length = _this.getModuleCount() + for (var row = 0; row < length; row++) { + for (var col = 0; col < length; col++) { + context.fillStyle = _this.isDark(row, col) ? 'black' : 'white' + context.fillRect(row * cellSize, col * cellSize, cellSize, cellSize) + } + } + } + return _this + } + qrcode.stringToBytesFuncs = { + default: function (s) { + var bytes = [] + for (var i = 0; i < s.length; i += 1) { + var c = s.charCodeAt(i) + bytes.push(c & 255) + } + return bytes + } + } + qrcode.stringToBytes = qrcode.stringToBytesFuncs['default'] + qrcode.createStringToBytes = function (unicodeData, numChars) { + var unicodeMap = (function () { + var bin = base64DecodeInputStream(unicodeData) + var read = function () { + var b = bin.read() + if (b == -1) throw 'eof' + return b + } + var count = 0 + var unicodeMap = {} + while (true) { + var b0 = bin.read() + if (b0 == -1) break + var b1 = read() + var b2 = read() + var b3 = read() + var k = String.fromCharCode((b0 << 8) | b1) + var v = (b2 << 8) | b3 + unicodeMap[k] = v + count += 1 + } + if (count != numChars) { + throw count + ' != ' + numChars + } + return unicodeMap + })() + var unknownChar = '?'.charCodeAt(0) + return function (s) { + var bytes = [] + for (var i = 0; i < s.length; i += 1) { + var c = s.charCodeAt(i) + if (c < 128) { + bytes.push(c) + } else { + var b = unicodeMap[s.charAt(i)] + if (typeof b == 'number') { + if ((b & 255) == b) { + bytes.push(b) + } else { + bytes.push(b >>> 8) + bytes.push(b & 255) + } + } else { + bytes.push(unknownChar) + } + } + } + return bytes + } + } + var QRMode = { + MODE_NUMBER: 1 << 0, + MODE_ALPHA_NUM: 1 << 1, + MODE_8BIT_BYTE: 1 << 2, + MODE_KANJI: 1 << 3 + } + var QRErrorCorrectionLevel = { L: 1, M: 0, Q: 3, H: 2 } + var QRMaskPattern = { + PATTERN000: 0, + PATTERN001: 1, + PATTERN010: 2, + PATTERN011: 3, + PATTERN100: 4, + PATTERN101: 5, + PATTERN110: 6, + PATTERN111: 7 + } + var QRUtil = (function () { + var PATTERN_POSITION_TABLE = [ + [], + [6, 18], + [6, 22], + [6, 26], + [6, 30], + [6, 34], + [6, 22, 38], + [6, 24, 42], + [6, 26, 46], + [6, 28, 50], + [6, 30, 54], + [6, 32, 58], + [6, 34, 62], + [6, 26, 46, 66], + [6, 26, 48, 70], + [6, 26, 50, 74], + [6, 30, 54, 78], + [6, 30, 56, 82], + [6, 30, 58, 86], + [6, 34, 62, 90], + [6, 28, 50, 72, 94], + [6, 26, 50, 74, 98], + [6, 30, 54, 78, 102], + [6, 28, 54, 80, 106], + [6, 32, 58, 84, 110], + [6, 30, 58, 86, 114], + [6, 34, 62, 90, 118], + [6, 26, 50, 74, 98, 122], + [6, 30, 54, 78, 102, 126], + [6, 26, 52, 78, 104, 130], + [6, 30, 56, 82, 108, 134], + [6, 34, 60, 86, 112, 138], + [6, 30, 58, 86, 114, 142], + [6, 34, 62, 90, 118, 146], + [6, 30, 54, 78, 102, 126, 150], + [6, 24, 50, 76, 102, 128, 154], + [6, 28, 54, 80, 106, 132, 158], + [6, 32, 58, 84, 110, 136, 162], + [6, 26, 54, 82, 110, 138, 166], + [6, 30, 58, 86, 114, 142, 170] + ] + var G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0) + var G18 = + (1 << 12) | + (1 << 11) | + (1 << 10) | + (1 << 9) | + (1 << 8) | + (1 << 5) | + (1 << 2) | + (1 << 0) + var G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1) + var _this = {} + var getBCHDigit = function (data) { + var digit = 0 + while (data != 0) { + digit += 1 + data >>>= 1 + } + return digit + } + _this.getBCHTypeInfo = function (data) { + var d = data << 10 + while (getBCHDigit(d) - getBCHDigit(G15) >= 0) { + d ^= G15 << (getBCHDigit(d) - getBCHDigit(G15)) + } + return ((data << 10) | d) ^ G15_MASK + } + _this.getBCHTypeNumber = function (data) { + var d = data << 12 + while (getBCHDigit(d) - getBCHDigit(G18) >= 0) { + d ^= G18 << (getBCHDigit(d) - getBCHDigit(G18)) + } + return (data << 12) | d + } + _this.getPatternPosition = function (typeNumber) { + return PATTERN_POSITION_TABLE[typeNumber - 1] + } + _this.getMaskFunction = function (maskPattern) { + switch (maskPattern) { + case QRMaskPattern.PATTERN000: + return function (i, j) { + return (i + j) % 2 == 0 + } + case QRMaskPattern.PATTERN001: + return function (i, j) { + return i % 2 == 0 + } + case QRMaskPattern.PATTERN010: + return function (i, j) { + return j % 3 == 0 + } + case QRMaskPattern.PATTERN011: + return function (i, j) { + return (i + j) % 3 == 0 + } + case QRMaskPattern.PATTERN100: + return function (i, j) { + return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0 + } + case QRMaskPattern.PATTERN101: + return function (i, j) { + return ((i * j) % 2) + ((i * j) % 3) == 0 + } + case QRMaskPattern.PATTERN110: + return function (i, j) { + return (((i * j) % 2) + ((i * j) % 3)) % 2 == 0 + } + case QRMaskPattern.PATTERN111: + return function (i, j) { + return (((i * j) % 3) + ((i + j) % 2)) % 2 == 0 + } + default: + throw 'bad maskPattern:' + maskPattern + } + } + _this.getErrorCorrectPolynomial = function (errorCorrectLength) { + var a = qrPolynomial([1], 0) + for (var i = 0; i < errorCorrectLength; i += 1) { + a = a.multiply(qrPolynomial([1, QRMath.gexp(i)], 0)) + } + return a + } + _this.getLengthInBits = function (mode, type) { + if (1 <= type && type < 10) { + switch (mode) { + case QRMode.MODE_NUMBER: + return 10 + case QRMode.MODE_ALPHA_NUM: + return 9 + case QRMode.MODE_8BIT_BYTE: + return 8 + case QRMode.MODE_KANJI: + return 8 + default: + throw 'mode:' + mode + } + } else if (type < 27) { + switch (mode) { + case QRMode.MODE_NUMBER: + return 12 + case QRMode.MODE_ALPHA_NUM: + return 11 + case QRMode.MODE_8BIT_BYTE: + return 16 + case QRMode.MODE_KANJI: + return 10 + default: + throw 'mode:' + mode + } + } else if (type < 41) { + switch (mode) { + case QRMode.MODE_NUMBER: + return 14 + case QRMode.MODE_ALPHA_NUM: + return 13 + case QRMode.MODE_8BIT_BYTE: + return 16 + case QRMode.MODE_KANJI: + return 12 + default: + throw 'mode:' + mode + } + } else { + throw 'type:' + type + } + } + _this.getLostPoint = function (qrcode) { + var moduleCount = qrcode.getModuleCount() + var lostPoint = 0 + for (var row = 0; row < moduleCount; row += 1) { + for (var col = 0; col < moduleCount; col += 1) { + var sameCount = 0 + var dark = qrcode.isDark(row, col) + for (var r = -1; r <= 1; r += 1) { + if (row + r < 0 || moduleCount <= row + r) { + continue + } + for (var c = -1; c <= 1; c += 1) { + if (col + c < 0 || moduleCount <= col + c) { + continue + } + if (r == 0 && c == 0) { + continue + } + if (dark == qrcode.isDark(row + r, col + c)) { + sameCount += 1 + } + } + } + if (sameCount > 5) { + lostPoint += 3 + sameCount - 5 + } + } + } + for (var row = 0; row < moduleCount - 1; row += 1) { + for (var col = 0; col < moduleCount - 1; col += 1) { + var count = 0 + if (qrcode.isDark(row, col)) count += 1 + if (qrcode.isDark(row + 1, col)) count += 1 + if (qrcode.isDark(row, col + 1)) count += 1 + if (qrcode.isDark(row + 1, col + 1)) count += 1 + if (count == 0 || count == 4) { + lostPoint += 3 + } + } + } + for (var row = 0; row < moduleCount; row += 1) { + for (var col = 0; col < moduleCount - 6; col += 1) { + if ( + qrcode.isDark(row, col) && + !qrcode.isDark(row, col + 1) && + qrcode.isDark(row, col + 2) && + qrcode.isDark(row, col + 3) && + qrcode.isDark(row, col + 4) && + !qrcode.isDark(row, col + 5) && + qrcode.isDark(row, col + 6) + ) { + lostPoint += 40 + } + } + } + for (var col = 0; col < moduleCount; col += 1) { + for (var row = 0; row < moduleCount - 6; row += 1) { + if ( + qrcode.isDark(row, col) && + !qrcode.isDark(row + 1, col) && + qrcode.isDark(row + 2, col) && + qrcode.isDark(row + 3, col) && + qrcode.isDark(row + 4, col) && + !qrcode.isDark(row + 5, col) && + qrcode.isDark(row + 6, col) + ) { + lostPoint += 40 + } + } + } + var darkCount = 0 + for (var col = 0; col < moduleCount; col += 1) { + for (var row = 0; row < moduleCount; row += 1) { + if (qrcode.isDark(row, col)) { + darkCount += 1 + } + } + } + var ratio = Math.abs((100 * darkCount) / moduleCount / moduleCount - 50) / 5 + lostPoint += ratio * 10 + return lostPoint + } + return _this + })() + var QRMath = (function () { + var EXP_TABLE = new Array(256) + var LOG_TABLE = new Array(256) + for (var i = 0; i < 8; i += 1) { + EXP_TABLE[i] = 1 << i + } + for (var i = 8; i < 256; i += 1) { + EXP_TABLE[i] = + EXP_TABLE[i - 4] ^ EXP_TABLE[i - 5] ^ EXP_TABLE[i - 6] ^ EXP_TABLE[i - 8] + } + for (var i = 0; i < 255; i += 1) { + LOG_TABLE[EXP_TABLE[i]] = i + } + var _this = {} + _this.glog = function (n) { + if (n < 1) { + throw 'glog(' + n + ')' + } + return LOG_TABLE[n] + } + _this.gexp = function (n) { + while (n < 0) { + n += 255 + } + while (n >= 256) { + n -= 255 + } + return EXP_TABLE[n] + } + return _this + })() + function qrPolynomial(num, shift) { + if (typeof num.length == 'undefined') { + throw num.length + '/' + shift + } + var _num = (function () { + var offset = 0 + while (offset < num.length && num[offset] == 0) { + offset += 1 + } + var _num = new Array(num.length - offset + shift) + for (var i = 0; i < num.length - offset; i += 1) { + _num[i] = num[i + offset] + } + return _num + })() + var _this = {} + _this.getAt = function (index) { + return _num[index] + } + _this.getLength = function () { + return _num.length + } + _this.multiply = function (e) { + var num = new Array(_this.getLength() + e.getLength() - 1) + for (var i = 0; i < _this.getLength(); i += 1) { + for (var j = 0; j < e.getLength(); j += 1) { + num[i + j] ^= QRMath.gexp(QRMath.glog(_this.getAt(i)) + QRMath.glog(e.getAt(j))) + } + } + return qrPolynomial(num, 0) + } + _this.mod = function (e) { + if (_this.getLength() - e.getLength() < 0) { + return _this + } + var ratio = QRMath.glog(_this.getAt(0)) - QRMath.glog(e.getAt(0)) + var num = new Array(_this.getLength()) + for (var i = 0; i < _this.getLength(); i += 1) { + num[i] = _this.getAt(i) + } + for (var i = 0; i < e.getLength(); i += 1) { + num[i] ^= QRMath.gexp(QRMath.glog(e.getAt(i)) + ratio) + } + return qrPolynomial(num, 0).mod(e) + } + return _this + } + var QRRSBlock = (function () { + var RS_BLOCK_TABLE = [ + [1, 26, 19], + [1, 26, 16], + [1, 26, 13], + [1, 26, 9], + [1, 44, 34], + [1, 44, 28], + [1, 44, 22], + [1, 44, 16], + [1, 70, 55], + [1, 70, 44], + [2, 35, 17], + [2, 35, 13], + [1, 100, 80], + [2, 50, 32], + [2, 50, 24], + [4, 25, 9], + [1, 134, 108], + [2, 67, 43], + [2, 33, 15, 2, 34, 16], + [2, 33, 11, 2, 34, 12], + [2, 86, 68], + [4, 43, 27], + [4, 43, 19], + [4, 43, 15], + [2, 98, 78], + [4, 49, 31], + [2, 32, 14, 4, 33, 15], + [4, 39, 13, 1, 40, 14], + [2, 121, 97], + [2, 60, 38, 2, 61, 39], + [4, 40, 18, 2, 41, 19], + [4, 40, 14, 2, 41, 15], + [2, 146, 116], + [3, 58, 36, 2, 59, 37], + [4, 36, 16, 4, 37, 17], + [4, 36, 12, 4, 37, 13], + [2, 86, 68, 2, 87, 69], + [4, 69, 43, 1, 70, 44], + [6, 43, 19, 2, 44, 20], + [6, 43, 15, 2, 44, 16], + [4, 101, 81], + [1, 80, 50, 4, 81, 51], + [4, 50, 22, 4, 51, 23], + [3, 36, 12, 8, 37, 13], + [2, 116, 92, 2, 117, 93], + [6, 58, 36, 2, 59, 37], + [4, 46, 20, 6, 47, 21], + [7, 42, 14, 4, 43, 15], + [4, 133, 107], + [8, 59, 37, 1, 60, 38], + [8, 44, 20, 4, 45, 21], + [12, 33, 11, 4, 34, 12], + [3, 145, 115, 1, 146, 116], + [4, 64, 40, 5, 65, 41], + [11, 36, 16, 5, 37, 17], + [11, 36, 12, 5, 37, 13], + [5, 109, 87, 1, 110, 88], + [5, 65, 41, 5, 66, 42], + [5, 54, 24, 7, 55, 25], + [11, 36, 12, 7, 37, 13], + [5, 122, 98, 1, 123, 99], + [7, 73, 45, 3, 74, 46], + [15, 43, 19, 2, 44, 20], + [3, 45, 15, 13, 46, 16], + [1, 135, 107, 5, 136, 108], + [10, 74, 46, 1, 75, 47], + [1, 50, 22, 15, 51, 23], + [2, 42, 14, 17, 43, 15], + [5, 150, 120, 1, 151, 121], + [9, 69, 43, 4, 70, 44], + [17, 50, 22, 1, 51, 23], + [2, 42, 14, 19, 43, 15], + [3, 141, 113, 4, 142, 114], + [3, 70, 44, 11, 71, 45], + [17, 47, 21, 4, 48, 22], + [9, 39, 13, 16, 40, 14], + [3, 135, 107, 5, 136, 108], + [3, 67, 41, 13, 68, 42], + [15, 54, 24, 5, 55, 25], + [15, 43, 15, 10, 44, 16], + [4, 144, 116, 4, 145, 117], + [17, 68, 42], + [17, 50, 22, 6, 51, 23], + [19, 46, 16, 6, 47, 17], + [2, 139, 111, 7, 140, 112], + [17, 74, 46], + [7, 54, 24, 16, 55, 25], + [34, 37, 13], + [4, 151, 121, 5, 152, 122], + [4, 75, 47, 14, 76, 48], + [11, 54, 24, 14, 55, 25], + [16, 45, 15, 14, 46, 16], + [6, 147, 117, 4, 148, 118], + [6, 73, 45, 14, 74, 46], + [11, 54, 24, 16, 55, 25], + [30, 46, 16, 2, 47, 17], + [8, 132, 106, 4, 133, 107], + [8, 75, 47, 13, 76, 48], + [7, 54, 24, 22, 55, 25], + [22, 45, 15, 13, 46, 16], + [10, 142, 114, 2, 143, 115], + [19, 74, 46, 4, 75, 47], + [28, 50, 22, 6, 51, 23], + [33, 46, 16, 4, 47, 17], + [8, 152, 122, 4, 153, 123], + [22, 73, 45, 3, 74, 46], + [8, 53, 23, 26, 54, 24], + [12, 45, 15, 28, 46, 16], + [3, 147, 117, 10, 148, 118], + [3, 73, 45, 23, 74, 46], + [4, 54, 24, 31, 55, 25], + [11, 45, 15, 31, 46, 16], + [7, 146, 116, 7, 147, 117], + [21, 73, 45, 7, 74, 46], + [1, 53, 23, 37, 54, 24], + [19, 45, 15, 26, 46, 16], + [5, 145, 115, 10, 146, 116], + [19, 75, 47, 10, 76, 48], + [15, 54, 24, 25, 55, 25], + [23, 45, 15, 25, 46, 16], + [13, 145, 115, 3, 146, 116], + [2, 74, 46, 29, 75, 47], + [42, 54, 24, 1, 55, 25], + [23, 45, 15, 28, 46, 16], + [17, 145, 115], + [10, 74, 46, 23, 75, 47], + [10, 54, 24, 35, 55, 25], + [19, 45, 15, 35, 46, 16], + [17, 145, 115, 1, 146, 116], + [14, 74, 46, 21, 75, 47], + [29, 54, 24, 19, 55, 25], + [11, 45, 15, 46, 46, 16], + [13, 145, 115, 6, 146, 116], + [14, 74, 46, 23, 75, 47], + [44, 54, 24, 7, 55, 25], + [59, 46, 16, 1, 47, 17], + [12, 151, 121, 7, 152, 122], + [12, 75, 47, 26, 76, 48], + [39, 54, 24, 14, 55, 25], + [22, 45, 15, 41, 46, 16], + [6, 151, 121, 14, 152, 122], + [6, 75, 47, 34, 76, 48], + [46, 54, 24, 10, 55, 25], + [2, 45, 15, 64, 46, 16], + [17, 152, 122, 4, 153, 123], + [29, 74, 46, 14, 75, 47], + [49, 54, 24, 10, 55, 25], + [24, 45, 15, 46, 46, 16], + [4, 152, 122, 18, 153, 123], + [13, 74, 46, 32, 75, 47], + [48, 54, 24, 14, 55, 25], + [42, 45, 15, 32, 46, 16], + [20, 147, 117, 4, 148, 118], + [40, 75, 47, 7, 76, 48], + [43, 54, 24, 22, 55, 25], + [10, 45, 15, 67, 46, 16], + [19, 148, 118, 6, 149, 119], + [18, 75, 47, 31, 76, 48], + [34, 54, 24, 34, 55, 25], + [20, 45, 15, 61, 46, 16] + ] + var qrRSBlock = function (totalCount, dataCount) { + var _this = {} + _this.totalCount = totalCount + _this.dataCount = dataCount + return _this + } + var _this = {} + var getRsBlockTable = function (typeNumber, errorCorrectionLevel) { + switch (errorCorrectionLevel) { + case QRErrorCorrectionLevel.L: + return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0] + case QRErrorCorrectionLevel.M: + return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1] + case QRErrorCorrectionLevel.Q: + return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2] + case QRErrorCorrectionLevel.H: + return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3] + default: + return undefined + } + } + _this.getRSBlocks = function (typeNumber, errorCorrectionLevel) { + var rsBlock = getRsBlockTable(typeNumber, errorCorrectionLevel) + if (typeof rsBlock == 'undefined') { + throw ( + 'bad rs block @ typeNumber:' + + typeNumber + + '/errorCorrectionLevel:' + + errorCorrectionLevel + ) + } + var length = rsBlock.length / 3 + var list = [] + for (var i = 0; i < length; i += 1) { + var count = rsBlock[i * 3 + 0] + var totalCount = rsBlock[i * 3 + 1] + var dataCount = rsBlock[i * 3 + 2] + for (var j = 0; j < count; j += 1) { + list.push(qrRSBlock(totalCount, dataCount)) + } + } + return list + } + return _this + })() + var qrBitBuffer = function () { + var _buffer = [] + var _length = 0 + var _this = {} + _this.getBuffer = function () { + return _buffer + } + _this.getAt = function (index) { + var bufIndex = Math.floor(index / 8) + return ((_buffer[bufIndex] >>> (7 - (index % 8))) & 1) == 1 + } + _this.put = function (num, length) { + for (var i = 0; i < length; i += 1) { + _this.putBit(((num >>> (length - i - 1)) & 1) == 1) + } + } + _this.getLengthInBits = function () { + return _length + } + _this.putBit = function (bit) { + var bufIndex = Math.floor(_length / 8) + if (_buffer.length <= bufIndex) { + _buffer.push(0) + } + if (bit) { + _buffer[bufIndex] |= 128 >>> _length % 8 + } + _length += 1 + } + return _this + } + var qrNumber = function (data) { + var _mode = QRMode.MODE_NUMBER + var _data = data + var _this = {} + _this.getMode = function () { + return _mode + } + _this.getLength = function (buffer) { + return _data.length + } + _this.write = function (buffer) { + var data = _data + var i = 0 + while (i + 2 < data.length) { + buffer.put(strToNum(data.substring(i, i + 3)), 10) + i += 3 + } + if (i < data.length) { + if (data.length - i == 1) { + buffer.put(strToNum(data.substring(i, i + 1)), 4) + } else if (data.length - i == 2) { + buffer.put(strToNum(data.substring(i, i + 2)), 7) + } + } + } + var strToNum = function (s) { + var num = 0 + for (var i = 0; i < s.length; i += 1) { + num = num * 10 + chatToNum(s.charAt(i)) + } + return num + } + var chatToNum = function (c) { + if ('0' <= c && c <= '9') { + return c.charCodeAt(0) - '0'.charCodeAt(0) + } + throw 'illegal char :' + c + } + return _this + } + var qrAlphaNum = function (data) { + var _mode = QRMode.MODE_ALPHA_NUM + var _data = data + var _this = {} + _this.getMode = function () { + return _mode + } + _this.getLength = function (buffer) { + return _data.length + } + _this.write = function (buffer) { + var s = _data + var i = 0 + while (i + 1 < s.length) { + buffer.put(getCode(s.charAt(i)) * 45 + getCode(s.charAt(i + 1)), 11) + i += 2 + } + if (i < s.length) { + buffer.put(getCode(s.charAt(i)), 6) + } + } + var getCode = function (c) { + if ('0' <= c && c <= '9') { + return c.charCodeAt(0) - '0'.charCodeAt(0) + } else if ('A' <= c && c <= 'Z') { + return c.charCodeAt(0) - 'A'.charCodeAt(0) + 10 + } else { + switch (c) { + case ' ': + return 36 + case '$': + return 37 + case '%': + return 38 + case '*': + return 39 + case '+': + return 40 + case '-': + return 41 + case '.': + return 42 + case '/': + return 43 + case ':': + return 44 + default: + throw 'illegal char :' + c + } + } + } + return _this + } + var qr8BitByte = function (data) { + var _mode = QRMode.MODE_8BIT_BYTE + var _data = data + var _bytes = qrcode.stringToBytes(data) + var _this = {} + _this.getMode = function () { + return _mode + } + _this.getLength = function (buffer) { + return _bytes.length + } + _this.write = function (buffer) { + for (var i = 0; i < _bytes.length; i += 1) { + buffer.put(_bytes[i], 8) + } + } + return _this + } + var qrKanji = function (data) { + var _mode = QRMode.MODE_KANJI + var _data = data + var stringToBytes = qrcode.stringToBytesFuncs['SJIS'] + if (!stringToBytes) { + throw 'sjis not supported.' + } + !(function (c, code) { + var test = stringToBytes(c) + if (test.length != 2 || ((test[0] << 8) | test[1]) != code) { + throw 'sjis not supported.' + } + })('友', 38726) + var _bytes = stringToBytes(data) + var _this = {} + _this.getMode = function () { + return _mode + } + _this.getLength = function (buffer) { + return ~~(_bytes.length / 2) + } + _this.write = function (buffer) { + var data = _bytes + var i = 0 + while (i + 1 < data.length) { + var c = ((255 & data[i]) << 8) | (255 & data[i + 1]) + if (33088 <= c && c <= 40956) { + c -= 33088 + } else if (57408 <= c && c <= 60351) { + c -= 49472 + } else { + throw 'illegal char at ' + (i + 1) + '/' + c + } + c = ((c >>> 8) & 255) * 192 + (c & 255) + buffer.put(c, 13) + i += 2 + } + if (i < data.length) { + throw 'illegal char at ' + (i + 1) + } + } + return _this + } + var byteArrayOutputStream = function () { + var _bytes = [] + var _this = {} + _this.writeByte = function (b) { + _bytes.push(b & 255) + } + _this.writeShort = function (i) { + _this.writeByte(i) + _this.writeByte(i >>> 8) + } + _this.writeBytes = function (b, off, len) { + off = off || 0 + len = len || b.length + for (var i = 0; i < len; i += 1) { + _this.writeByte(b[i + off]) + } + } + _this.writeString = function (s) { + for (var i = 0; i < s.length; i += 1) { + _this.writeByte(s.charCodeAt(i)) + } + } + _this.toByteArray = function () { + return _bytes + } + _this.toString = function () { + var s = '' + s += '[' + for (var i = 0; i < _bytes.length; i += 1) { + if (i > 0) { + s += ',' + } + s += _bytes[i] + } + s += ']' + return s + } + return _this + } + var base64EncodeOutputStream = function () { + var _buffer = 0 + var _buflen = 0 + var _length = 0 + var _base64 = '' + var _this = {} + var writeEncoded = function (b) { + _base64 += String.fromCharCode(encode(b & 63)) + } + var encode = function (n) { + if (n < 0) { + } else if (n < 26) { + return 65 + n + } else if (n < 52) { + return 97 + (n - 26) + } else if (n < 62) { + return 48 + (n - 52) + } else if (n == 62) { + return 43 + } else if (n == 63) { + return 47 + } + throw 'n:' + n + } + _this.writeByte = function (n) { + _buffer = (_buffer << 8) | (n & 255) + _buflen += 8 + _length += 1 + while (_buflen >= 6) { + writeEncoded(_buffer >>> (_buflen - 6)) + _buflen -= 6 + } + } + _this.flush = function () { + if (_buflen > 0) { + writeEncoded(_buffer << (6 - _buflen)) + _buffer = 0 + _buflen = 0 + } + if (_length % 3 != 0) { + var padlen = 3 - (_length % 3) + for (var i = 0; i < padlen; i += 1) { + _base64 += '=' + } + } + } + _this.toString = function () { + return _base64 + } + return _this + } + var base64DecodeInputStream = function (str) { + var _str = str + var _pos = 0 + var _buffer = 0 + var _buflen = 0 + var _this = {} + _this.read = function () { + while (_buflen < 8) { + if (_pos >= _str.length) { + if (_buflen == 0) { + return -1 + } + throw 'unexpected end of file./' + _buflen + } + var c = _str.charAt(_pos) + _pos += 1 + if (c == '=') { + _buflen = 0 + return -1 + } else if (c.match(/^\s$/)) { + continue + } + _buffer = (_buffer << 6) | decode(c.charCodeAt(0)) + _buflen += 6 + } + var n = (_buffer >>> (_buflen - 8)) & 255 + _buflen -= 8 + return n + } + var decode = function (c) { + if (65 <= c && c <= 90) { + return c - 65 + } else if (97 <= c && c <= 122) { + return c - 97 + 26 + } else if (48 <= c && c <= 57) { + return c - 48 + 52 + } else if (c == 43) { + return 62 + } else if (c == 47) { + return 63 + } else { + throw 'c:' + c + } + } + return _this + } + var gifImage = function (width, height) { + var _width = width + var _height = height + var _data = new Array(width * height) + var _this = {} + _this.setPixel = function (x, y, pixel) { + _data[y * _width + x] = pixel + } + _this.write = function (out) { + out.writeString('GIF87a') + out.writeShort(_width) + out.writeShort(_height) + out.writeByte(128) + out.writeByte(0) + out.writeByte(0) + out.writeByte(0) + out.writeByte(0) + out.writeByte(0) + out.writeByte(255) + out.writeByte(255) + out.writeByte(255) + out.writeString(',') + out.writeShort(0) + out.writeShort(0) + out.writeShort(_width) + out.writeShort(_height) + out.writeByte(0) + var lzwMinCodeSize = 2 + var raster = getLZWRaster(lzwMinCodeSize) + out.writeByte(lzwMinCodeSize) + var offset = 0 + while (raster.length - offset > 255) { + out.writeByte(255) + out.writeBytes(raster, offset, 255) + offset += 255 + } + out.writeByte(raster.length - offset) + out.writeBytes(raster, offset, raster.length - offset) + out.writeByte(0) + out.writeString(';') + } + var bitOutputStream = function (out) { + var _out = out + var _bitLength = 0 + var _bitBuffer = 0 + var _this = {} + _this.write = function (data, length) { + if (data >>> length != 0) { + throw 'length over' + } + while (_bitLength + length >= 8) { + _out.writeByte(255 & ((data << _bitLength) | _bitBuffer)) + length -= 8 - _bitLength + data >>>= 8 - _bitLength + _bitBuffer = 0 + _bitLength = 0 + } + _bitBuffer = (data << _bitLength) | _bitBuffer + _bitLength = _bitLength + length + } + _this.flush = function () { + if (_bitLength > 0) { + _out.writeByte(_bitBuffer) + } + } + return _this + } + var getLZWRaster = function (lzwMinCodeSize) { + var clearCode = 1 << lzwMinCodeSize + var endCode = (1 << lzwMinCodeSize) + 1 + var bitLength = lzwMinCodeSize + 1 + var table = lzwTable() + for (var i = 0; i < clearCode; i += 1) { + table.add(String.fromCharCode(i)) + } + table.add(String.fromCharCode(clearCode)) + table.add(String.fromCharCode(endCode)) + var byteOut = byteArrayOutputStream() + var bitOut = bitOutputStream(byteOut) + bitOut.write(clearCode, bitLength) + var dataIndex = 0 + var s = String.fromCharCode(_data[dataIndex]) + dataIndex += 1 + while (dataIndex < _data.length) { + var c = String.fromCharCode(_data[dataIndex]) + dataIndex += 1 + if (table.contains(s + c)) { + s = s + c + } else { + bitOut.write(table.indexOf(s), bitLength) + if (table.size() < 4095) { + if (table.size() == 1 << bitLength) { + bitLength += 1 + } + table.add(s + c) + } + s = c + } + } + bitOut.write(table.indexOf(s), bitLength) + bitOut.write(endCode, bitLength) + bitOut.flush() + return byteOut.toByteArray() + } + var lzwTable = function () { + var _map = {} + var _size = 0 + var _this = {} + _this.add = function (key) { + if (_this.contains(key)) { + throw 'dup key:' + key + } + _map[key] = _size + _size += 1 + } + _this.size = function () { + return _size + } + _this.indexOf = function (key) { + return _map[key] + } + _this.contains = function (key) { + return typeof _map[key] != 'undefined' + } + return _this + } + return _this + } + var createDataURL = function (width, height, getPixel) { + var gif = gifImage(width, height) + for (var y = 0; y < height; y += 1) { + for (var x = 0; x < width; x += 1) { + gif.setPixel(x, y, getPixel(x, y)) + } + } + var b = byteArrayOutputStream() + gif.write(b) + var base64 = base64EncodeOutputStream() + var bytes = b.toByteArray() + for (var i = 0; i < bytes.length; i += 1) { + base64.writeByte(bytes[i]) + } + base64.flush() + return 'data:image/gif;base64,' + base64 + } + return qrcode + })() + !(function () { + qrcode.stringToBytesFuncs['UTF-8'] = function (s) { + function toUTF8Array(str) { + var utf8 = [] + for (var i = 0; i < str.length; i++) { + var charcode = str.charCodeAt(i) + if (charcode < 128) utf8.push(charcode) + else if (charcode < 2048) { + utf8.push(192 | (charcode >> 6), 128 | (charcode & 63)) + } else if (charcode < 55296 || charcode >= 57344) { + utf8.push( + 224 | (charcode >> 12), + 128 | ((charcode >> 6) & 63), + 128 | (charcode & 63) + ) + } else { + i++ + charcode = 65536 + (((charcode & 1023) << 10) | (str.charCodeAt(i) & 1023)) + utf8.push( + 240 | (charcode >> 18), + 128 | ((charcode >> 12) & 63), + 128 | ((charcode >> 6) & 63), + 128 | (charcode & 63) + ) + } + } + return utf8 + } + return toUTF8Array(s) + } + })() + ;(function (factory) { + if (typeof define === 'function' && define.amd) { + define([], factory) + } else if (typeof exports === 'object') { + module.exports = factory() + } + })(function () { + return qrcode + }) + }, + {} + ], + 180: [ + function (require, module, exports) { + ;(function (process, global) { + ;(function () { + 'use strict' + var MAX_BYTES = 65536 + var MAX_UINT32 = 4294967295 + function oldBrowser() { + throw new Error( + 'Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11' + ) + } + var Buffer = require('safe-buffer').Buffer + var crypto = global.crypto || global.msCrypto + if (crypto && crypto.getRandomValues) { + module.exports = randomBytes + } else { + module.exports = oldBrowser + } + function randomBytes(size, cb) { + if (size > MAX_UINT32) throw new RangeError('requested too many random bytes') + var bytes = Buffer.allocUnsafe(size) + if (size > 0) { + if (size > MAX_BYTES) { + for (var generated = 0; generated < size; generated += MAX_BYTES) { + crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES)) + } + } else { + crypto.getRandomValues(bytes) + } + } + if (typeof cb === 'function') { + return process.nextTick(function () { + cb(null, bytes) + }) + } + return bytes + } + }.call(this)) + }.call( + this, + require('_process'), + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {} + )) + }, + { _process: 171, 'safe-buffer': 183 } + ], + 181: [ + function (require, module, exports) { + ;(function (process, global) { + ;(function () { + 'use strict' + function oldBrowser() { + throw new Error( + 'secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11' + ) + } + var safeBuffer = require('safe-buffer') + var randombytes = require('randombytes') + var Buffer = safeBuffer.Buffer + var kBufferMaxLength = safeBuffer.kMaxLength + var crypto = global.crypto || global.msCrypto + var kMaxUint32 = Math.pow(2, 32) - 1 + function assertOffset(offset, length) { + if (typeof offset !== 'number' || offset !== offset) { + throw new TypeError('offset must be a number') + } + if (offset > kMaxUint32 || offset < 0) { + throw new TypeError('offset must be a uint32') + } + if (offset > kBufferMaxLength || offset > length) { + throw new RangeError('offset out of range') + } + } + function assertSize(size, offset, length) { + if (typeof size !== 'number' || size !== size) { + throw new TypeError('size must be a number') + } + if (size > kMaxUint32 || size < 0) { + throw new TypeError('size must be a uint32') + } + if (size + offset > length || size > kBufferMaxLength) { + throw new RangeError('buffer too small') + } + } + if ((crypto && crypto.getRandomValues) || !process.browser) { + exports.randomFill = randomFill + exports.randomFillSync = randomFillSync + } else { + exports.randomFill = oldBrowser + exports.randomFillSync = oldBrowser + } + function randomFill(buf, offset, size, cb) { + if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) { + throw new TypeError('"buf" argument must be a Buffer or Uint8Array') + } + if (typeof offset === 'function') { + cb = offset + offset = 0 + size = buf.length + } else if (typeof size === 'function') { + cb = size + size = buf.length - offset + } else if (typeof cb !== 'function') { + throw new TypeError('"cb" argument must be a function') + } + assertOffset(offset, buf.length) + assertSize(size, offset, buf.length) + return actualFill(buf, offset, size, cb) + } + function actualFill(buf, offset, size, cb) { + if (process.browser) { + var ourBuf = buf.buffer + var uint = new Uint8Array(ourBuf, offset, size) + crypto.getRandomValues(uint) + if (cb) { + process.nextTick(function () { + cb(null, buf) + }) + return + } + return buf + } + if (cb) { + randombytes(size, function (err, bytes) { + if (err) { + return cb(err) + } + bytes.copy(buf, offset) + cb(null, buf) + }) + return + } + var bytes = randombytes(size) + bytes.copy(buf, offset) + return buf + } + function randomFillSync(buf, offset, size) { + if (typeof offset === 'undefined') { + offset = 0 + } + if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) { + throw new TypeError('"buf" argument must be a Buffer or Uint8Array') + } + assertOffset(offset, buf.length) + if (size === undefined) size = buf.length - offset + assertSize(size, offset, buf.length) + return actualFill(buf, offset, size) + } + }.call(this)) + }.call( + this, + require('_process'), + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {} + )) + }, + { _process: 171, randombytes: 180, 'safe-buffer': 183 } + ], + 182: [ + function (require, module, exports) { + 'use strict' + var Buffer = require('buffer').Buffer + var inherits = require('inherits') + var HashBase = require('hash-base') + var ARRAY16 = new Array(16) + var zl = [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, + 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, + 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, + 15, 13 + ] + var zr = [ + 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, + 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, + 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, + 11 + ] + var sl = [ + 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, + 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, + 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, + 13, 14, 11, 8, 5, 6 + ] + var sr = [ + 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, + 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, + 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, + 15, 13, 11, 11 + ] + var hl = [0, 1518500249, 1859775393, 2400959708, 2840853838] + var hr = [1352829926, 1548603684, 1836072691, 2053994217, 0] + function RIPEMD160() { + HashBase.call(this, 64) + this._a = 1732584193 + this._b = 4023233417 + this._c = 2562383102 + this._d = 271733878 + this._e = 3285377520 + } + inherits(RIPEMD160, HashBase) + RIPEMD160.prototype._update = function () { + var words = ARRAY16 + for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4) + var al = this._a | 0 + var bl = this._b | 0 + var cl = this._c | 0 + var dl = this._d | 0 + var el = this._e | 0 + var ar = this._a | 0 + var br = this._b | 0 + var cr = this._c | 0 + var dr = this._d | 0 + var er = this._e | 0 + for (var i = 0; i < 80; i += 1) { + var tl + var tr + if (i < 16) { + tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i]) + tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i]) + } else if (i < 32) { + tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i]) + tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i]) + } else if (i < 48) { + tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i]) + tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i]) + } else if (i < 64) { + tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i]) + tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i]) + } else { + tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i]) + tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i]) + } + al = el + el = dl + dl = rotl(cl, 10) + cl = bl + bl = tl + ar = er + er = dr + dr = rotl(cr, 10) + cr = br + br = tr + } + var t = (this._b + cl + dr) | 0 + this._b = (this._c + dl + er) | 0 + this._c = (this._d + el + ar) | 0 + this._d = (this._e + al + br) | 0 + this._e = (this._a + bl + cr) | 0 + this._a = t + } + RIPEMD160.prototype._digest = function () { + this._block[this._blockOffset++] = 128 + if (this._blockOffset > 56) { + this._block.fill(0, this._blockOffset, 64) + this._update() + this._blockOffset = 0 + } + this._block.fill(0, this._blockOffset, 56) + this._block.writeUInt32LE(this._length[0], 56) + this._block.writeUInt32LE(this._length[1], 60) + this._update() + var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20) + buffer.writeInt32LE(this._a, 0) + buffer.writeInt32LE(this._b, 4) + buffer.writeInt32LE(this._c, 8) + buffer.writeInt32LE(this._d, 12) + buffer.writeInt32LE(this._e, 16) + return buffer + } + function rotl(x, n) { + return (x << n) | (x >>> (32 - n)) + } + function fn1(a, b, c, d, e, m, k, s) { + return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0 + } + function fn2(a, b, c, d, e, m, k, s) { + return (rotl((a + ((b & c) | (~b & d)) + m + k) | 0, s) + e) | 0 + } + function fn3(a, b, c, d, e, m, k, s) { + return (rotl((a + ((b | ~c) ^ d) + m + k) | 0, s) + e) | 0 + } + function fn4(a, b, c, d, e, m, k, s) { + return (rotl((a + ((b & d) | (c & ~d)) + m + k) | 0, s) + e) | 0 + } + function fn5(a, b, c, d, e, m, k, s) { + return (rotl((a + (b ^ (c | ~d)) + m + k) | 0, s) + e) | 0 + } + module.exports = RIPEMD160 + }, + { buffer: 93, 'hash-base': 136, inherits: 151 } + ], + 183: [ + function (require, module, exports) { + var buffer = require('buffer') + var Buffer = buffer.Buffer + function copyProps(src, dst) { + for (var key in src) { + dst[key] = src[key] + } + } + if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer + } else { + copyProps(buffer, exports) + exports.Buffer = SafeBuffer + } + function SafeBuffer(arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) + } + SafeBuffer.prototype = Object.create(Buffer.prototype) + copyProps(Buffer, SafeBuffer) + SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) + } + SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size) + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + } else { + buf.fill(0) + } + return buf + } + SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return Buffer(size) + } + SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) + } + }, + { buffer: 93 } + ], + 184: [ + function (require, module, exports) { + var Buffer = require('safe-buffer').Buffer + function Hash(blockSize, finalSize) { + this._block = Buffer.alloc(blockSize) + this._finalSize = finalSize + this._blockSize = blockSize + this._len = 0 + } + Hash.prototype.update = function (data, enc) { + if (typeof data === 'string') { + enc = enc || 'utf8' + data = Buffer.from(data, enc) + } + var block = this._block + var blockSize = this._blockSize + var length = data.length + var accum = this._len + for (var offset = 0; offset < length; ) { + var assigned = accum % blockSize + var remainder = Math.min(length - offset, blockSize - assigned) + for (var i = 0; i < remainder; i++) { + block[assigned + i] = data[offset + i] + } + accum += remainder + offset += remainder + if (accum % blockSize === 0) { + this._update(block) + } + } + this._len += length + return this + } + Hash.prototype.digest = function (enc) { + var rem = this._len % this._blockSize + this._block[rem] = 128 + this._block.fill(0, rem + 1) + if (rem >= this._finalSize) { + this._update(this._block) + this._block.fill(0) + } + var bits = this._len * 8 + if (bits <= 4294967295) { + this._block.writeUInt32BE(bits, this._blockSize - 4) + } else { + var lowBits = (bits & 4294967295) >>> 0 + var highBits = (bits - lowBits) / 4294967296 + this._block.writeUInt32BE(highBits, this._blockSize - 8) + this._block.writeUInt32BE(lowBits, this._blockSize - 4) + } + this._update(this._block) + var hash = this._hash() + return enc ? hash.toString(enc) : hash + } + Hash.prototype._update = function () { + throw new Error('_update must be implemented by subclass') + } + module.exports = Hash + }, + { 'safe-buffer': 183 } + ], + 185: [ + function (require, module, exports) { + var exports = (module.exports = function SHA(algorithm) { + algorithm = algorithm.toLowerCase() + var Algorithm = exports[algorithm] + if (!Algorithm) + throw new Error(algorithm + ' is not supported (we accept pull requests)') + return new Algorithm() + }) + exports.sha = require('./sha') + exports.sha1 = require('./sha1') + exports.sha224 = require('./sha224') + exports.sha256 = require('./sha256') + exports.sha384 = require('./sha384') + exports.sha512 = require('./sha512') + }, + { + './sha': 186, + './sha1': 187, + './sha224': 188, + './sha256': 189, + './sha384': 190, + './sha512': 191 + } + ], + 186: [ + function (require, module, exports) { + var inherits = require('inherits') + var Hash = require('./hash') + var Buffer = require('safe-buffer').Buffer + var K = [1518500249, 1859775393, 2400959708 | 0, 3395469782 | 0] + var W = new Array(80) + function Sha() { + this.init() + this._w = W + Hash.call(this, 64, 56) + } + inherits(Sha, Hash) + Sha.prototype.init = function () { + this._a = 1732584193 + this._b = 4023233417 + this._c = 2562383102 + this._d = 271733878 + this._e = 3285377520 + return this + } + function rotl5(num) { + return (num << 5) | (num >>> 27) + } + function rotl30(num) { + return (num << 30) | (num >>> 2) + } + function ft(s, b, c, d) { + if (s === 0) return (b & c) | (~b & d) + if (s === 2) return (b & c) | (b & d) | (c & d) + return b ^ c ^ d + } + Sha.prototype._update = function (M) { + var W = this._w + var a = this._a | 0 + var b = this._b | 0 + var c = this._c | 0 + var d = this._d | 0 + var e = this._e | 0 + for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4) + for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16] + for (var j = 0; j < 80; ++j) { + var s = ~~(j / 20) + var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0 + e = d + d = c + c = rotl30(b) + b = a + a = t + } + this._a = (a + this._a) | 0 + this._b = (b + this._b) | 0 + this._c = (c + this._c) | 0 + this._d = (d + this._d) | 0 + this._e = (e + this._e) | 0 + } + Sha.prototype._hash = function () { + var H = Buffer.allocUnsafe(20) + H.writeInt32BE(this._a | 0, 0) + H.writeInt32BE(this._b | 0, 4) + H.writeInt32BE(this._c | 0, 8) + H.writeInt32BE(this._d | 0, 12) + H.writeInt32BE(this._e | 0, 16) + return H + } + module.exports = Sha + }, + { './hash': 184, inherits: 151, 'safe-buffer': 183 } + ], + 187: [ + function (require, module, exports) { + var inherits = require('inherits') + var Hash = require('./hash') + var Buffer = require('safe-buffer').Buffer + var K = [1518500249, 1859775393, 2400959708 | 0, 3395469782 | 0] + var W = new Array(80) + function Sha1() { + this.init() + this._w = W + Hash.call(this, 64, 56) + } + inherits(Sha1, Hash) + Sha1.prototype.init = function () { + this._a = 1732584193 + this._b = 4023233417 + this._c = 2562383102 + this._d = 271733878 + this._e = 3285377520 + return this + } + function rotl1(num) { + return (num << 1) | (num >>> 31) + } + function rotl5(num) { + return (num << 5) | (num >>> 27) + } + function rotl30(num) { + return (num << 30) | (num >>> 2) + } + function ft(s, b, c, d) { + if (s === 0) return (b & c) | (~b & d) + if (s === 2) return (b & c) | (b & d) | (c & d) + return b ^ c ^ d + } + Sha1.prototype._update = function (M) { + var W = this._w + var a = this._a | 0 + var b = this._b | 0 + var c = this._c | 0 + var d = this._d | 0 + var e = this._e | 0 + for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4) + for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]) + for (var j = 0; j < 80; ++j) { + var s = ~~(j / 20) + var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0 + e = d + d = c + c = rotl30(b) + b = a + a = t + } + this._a = (a + this._a) | 0 + this._b = (b + this._b) | 0 + this._c = (c + this._c) | 0 + this._d = (d + this._d) | 0 + this._e = (e + this._e) | 0 + } + Sha1.prototype._hash = function () { + var H = Buffer.allocUnsafe(20) + H.writeInt32BE(this._a | 0, 0) + H.writeInt32BE(this._b | 0, 4) + H.writeInt32BE(this._c | 0, 8) + H.writeInt32BE(this._d | 0, 12) + H.writeInt32BE(this._e | 0, 16) + return H + } + module.exports = Sha1 + }, + { './hash': 184, inherits: 151, 'safe-buffer': 183 } + ], + 188: [ + function (require, module, exports) { + var inherits = require('inherits') + var Sha256 = require('./sha256') + var Hash = require('./hash') + var Buffer = require('safe-buffer').Buffer + var W = new Array(64) + function Sha224() { + this.init() + this._w = W + Hash.call(this, 64, 56) + } + inherits(Sha224, Sha256) + Sha224.prototype.init = function () { + this._a = 3238371032 + this._b = 914150663 + this._c = 812702999 + this._d = 4144912697 + this._e = 4290775857 + this._f = 1750603025 + this._g = 1694076839 + this._h = 3204075428 + return this + } + Sha224.prototype._hash = function () { + var H = Buffer.allocUnsafe(28) + H.writeInt32BE(this._a, 0) + H.writeInt32BE(this._b, 4) + H.writeInt32BE(this._c, 8) + H.writeInt32BE(this._d, 12) + H.writeInt32BE(this._e, 16) + H.writeInt32BE(this._f, 20) + H.writeInt32BE(this._g, 24) + return H + } + module.exports = Sha224 + }, + { './hash': 184, './sha256': 189, inherits: 151, 'safe-buffer': 183 } + ], + 189: [ + function (require, module, exports) { + var inherits = require('inherits') + var Hash = require('./hash') + var Buffer = require('safe-buffer').Buffer + var K = [ + 1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, + 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, + 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, + 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, + 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, + 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, + 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, + 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, + 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, + 3329325298 + ] + var W = new Array(64) + function Sha256() { + this.init() + this._w = W + Hash.call(this, 64, 56) + } + inherits(Sha256, Hash) + Sha256.prototype.init = function () { + this._a = 1779033703 + this._b = 3144134277 + this._c = 1013904242 + this._d = 2773480762 + this._e = 1359893119 + this._f = 2600822924 + this._g = 528734635 + this._h = 1541459225 + return this + } + function ch(x, y, z) { + return z ^ (x & (y ^ z)) + } + function maj(x, y, z) { + return (x & y) | (z & (x | y)) + } + function sigma0(x) { + return ((x >>> 2) | (x << 30)) ^ ((x >>> 13) | (x << 19)) ^ ((x >>> 22) | (x << 10)) + } + function sigma1(x) { + return ((x >>> 6) | (x << 26)) ^ ((x >>> 11) | (x << 21)) ^ ((x >>> 25) | (x << 7)) + } + function gamma0(x) { + return ((x >>> 7) | (x << 25)) ^ ((x >>> 18) | (x << 14)) ^ (x >>> 3) + } + function gamma1(x) { + return ((x >>> 17) | (x << 15)) ^ ((x >>> 19) | (x << 13)) ^ (x >>> 10) + } + Sha256.prototype._update = function (M) { + var W = this._w + var a = this._a | 0 + var b = this._b | 0 + var c = this._c | 0 + var d = this._d | 0 + var e = this._e | 0 + var f = this._f | 0 + var g = this._g | 0 + var h = this._h | 0 + for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4) + for (; i < 64; ++i) + W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0 + for (var j = 0; j < 64; ++j) { + var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0 + var T2 = (sigma0(a) + maj(a, b, c)) | 0 + h = g + g = f + f = e + e = (d + T1) | 0 + d = c + c = b + b = a + a = (T1 + T2) | 0 + } + this._a = (a + this._a) | 0 + this._b = (b + this._b) | 0 + this._c = (c + this._c) | 0 + this._d = (d + this._d) | 0 + this._e = (e + this._e) | 0 + this._f = (f + this._f) | 0 + this._g = (g + this._g) | 0 + this._h = (h + this._h) | 0 + } + Sha256.prototype._hash = function () { + var H = Buffer.allocUnsafe(32) + H.writeInt32BE(this._a, 0) + H.writeInt32BE(this._b, 4) + H.writeInt32BE(this._c, 8) + H.writeInt32BE(this._d, 12) + H.writeInt32BE(this._e, 16) + H.writeInt32BE(this._f, 20) + H.writeInt32BE(this._g, 24) + H.writeInt32BE(this._h, 28) + return H + } + module.exports = Sha256 + }, + { './hash': 184, inherits: 151, 'safe-buffer': 183 } + ], + 190: [ + function (require, module, exports) { + var inherits = require('inherits') + var SHA512 = require('./sha512') + var Hash = require('./hash') + var Buffer = require('safe-buffer').Buffer + var W = new Array(160) + function Sha384() { + this.init() + this._w = W + Hash.call(this, 128, 112) + } + inherits(Sha384, SHA512) + Sha384.prototype.init = function () { + this._ah = 3418070365 + this._bh = 1654270250 + this._ch = 2438529370 + this._dh = 355462360 + this._eh = 1731405415 + this._fh = 2394180231 + this._gh = 3675008525 + this._hh = 1203062813 + this._al = 3238371032 + this._bl = 914150663 + this._cl = 812702999 + this._dl = 4144912697 + this._el = 4290775857 + this._fl = 1750603025 + this._gl = 1694076839 + this._hl = 3204075428 + return this + } + Sha384.prototype._hash = function () { + var H = Buffer.allocUnsafe(48) + function writeInt64BE(h, l, offset) { + H.writeInt32BE(h, offset) + H.writeInt32BE(l, offset + 4) + } + writeInt64BE(this._ah, this._al, 0) + writeInt64BE(this._bh, this._bl, 8) + writeInt64BE(this._ch, this._cl, 16) + writeInt64BE(this._dh, this._dl, 24) + writeInt64BE(this._eh, this._el, 32) + writeInt64BE(this._fh, this._fl, 40) + return H + } + module.exports = Sha384 + }, + { './hash': 184, './sha512': 191, inherits: 151, 'safe-buffer': 183 } + ], + 191: [ + function (require, module, exports) { + var inherits = require('inherits') + var Hash = require('./hash') + var Buffer = require('safe-buffer').Buffer + var K = [ + 1116352408, 3609767458, 1899447441, 602891725, 3049323471, 3964484399, 3921009573, + 2173295548, 961987163, 4081628472, 1508970993, 3053834265, 2453635748, 2937671579, + 2870763221, 3664609560, 3624381080, 2734883394, 310598401, 1164996542, 607225278, + 1323610764, 1426881987, 3590304994, 1925078388, 4068182383, 2162078206, 991336113, + 2614888103, 633803317, 3248222580, 3479774868, 3835390401, 2666613458, 4022224774, + 944711139, 264347078, 2341262773, 604807628, 2007800933, 770255983, 1495990901, + 1249150122, 1856431235, 1555081692, 3175218132, 1996064986, 2198950837, 2554220882, + 3999719339, 2821834349, 766784016, 2952996808, 2566594879, 3210313671, 3203337956, + 3336571891, 1034457026, 3584528711, 2466948901, 113926993, 3758326383, 338241895, + 168717936, 666307205, 1188179964, 773529912, 1546045734, 1294757372, 1522805485, + 1396182291, 2643833823, 1695183700, 2343527390, 1986661051, 1014477480, 2177026350, + 1206759142, 2456956037, 344077627, 2730485921, 1290863460, 2820302411, 3158454273, + 3259730800, 3505952657, 3345764771, 106217008, 3516065817, 3606008344, 3600352804, + 1432725776, 4094571909, 1467031594, 275423344, 851169720, 430227734, 3100823752, + 506948616, 1363258195, 659060556, 3750685593, 883997877, 3785050280, 958139571, + 3318307427, 1322822218, 3812723403, 1537002063, 2003034995, 1747873779, 3602036899, + 1955562222, 1575990012, 2024104815, 1125592928, 2227730452, 2716904306, 2361852424, + 442776044, 2428436474, 593698344, 2756734187, 3733110249, 3204031479, 2999351573, + 3329325298, 3815920427, 3391569614, 3928383900, 3515267271, 566280711, 3940187606, + 3454069534, 4118630271, 4000239992, 116418474, 1914138554, 174292421, 2731055270, + 289380356, 3203993006, 460393269, 320620315, 685471733, 587496836, 852142971, + 1086792851, 1017036298, 365543100, 1126000580, 2618297676, 1288033470, 3409855158, + 1501505948, 4234509866, 1607167915, 987167468, 1816402316, 1246189591 + ] + var W = new Array(160) + function Sha512() { + this.init() + this._w = W + Hash.call(this, 128, 112) + } + inherits(Sha512, Hash) + Sha512.prototype.init = function () { + this._ah = 1779033703 + this._bh = 3144134277 + this._ch = 1013904242 + this._dh = 2773480762 + this._eh = 1359893119 + this._fh = 2600822924 + this._gh = 528734635 + this._hh = 1541459225 + this._al = 4089235720 + this._bl = 2227873595 + this._cl = 4271175723 + this._dl = 1595750129 + this._el = 2917565137 + this._fl = 725511199 + this._gl = 4215389547 + this._hl = 327033209 + return this + } + function Ch(x, y, z) { + return z ^ (x & (y ^ z)) + } + function maj(x, y, z) { + return (x & y) | (z & (x | y)) + } + function sigma0(x, xl) { + return ((x >>> 28) | (xl << 4)) ^ ((xl >>> 2) | (x << 30)) ^ ((xl >>> 7) | (x << 25)) + } + function sigma1(x, xl) { + return ((x >>> 14) | (xl << 18)) ^ ((x >>> 18) | (xl << 14)) ^ ((xl >>> 9) | (x << 23)) + } + function Gamma0(x, xl) { + return ((x >>> 1) | (xl << 31)) ^ ((x >>> 8) | (xl << 24)) ^ (x >>> 7) + } + function Gamma0l(x, xl) { + return ((x >>> 1) | (xl << 31)) ^ ((x >>> 8) | (xl << 24)) ^ ((x >>> 7) | (xl << 25)) + } + function Gamma1(x, xl) { + return ((x >>> 19) | (xl << 13)) ^ ((xl >>> 29) | (x << 3)) ^ (x >>> 6) + } + function Gamma1l(x, xl) { + return ((x >>> 19) | (xl << 13)) ^ ((xl >>> 29) | (x << 3)) ^ ((x >>> 6) | (xl << 26)) + } + function getCarry(a, b) { + return a >>> 0 < b >>> 0 ? 1 : 0 + } + Sha512.prototype._update = function (M) { + var W = this._w + var ah = this._ah | 0 + var bh = this._bh | 0 + var ch = this._ch | 0 + var dh = this._dh | 0 + var eh = this._eh | 0 + var fh = this._fh | 0 + var gh = this._gh | 0 + var hh = this._hh | 0 + var al = this._al | 0 + var bl = this._bl | 0 + var cl = this._cl | 0 + var dl = this._dl | 0 + var el = this._el | 0 + var fl = this._fl | 0 + var gl = this._gl | 0 + var hl = this._hl | 0 + for (var i = 0; i < 32; i += 2) { + W[i] = M.readInt32BE(i * 4) + W[i + 1] = M.readInt32BE(i * 4 + 4) + } + for (; i < 160; i += 2) { + var xh = W[i - 15 * 2] + var xl = W[i - 15 * 2 + 1] + var gamma0 = Gamma0(xh, xl) + var gamma0l = Gamma0l(xl, xh) + xh = W[i - 2 * 2] + xl = W[i - 2 * 2 + 1] + var gamma1 = Gamma1(xh, xl) + var gamma1l = Gamma1l(xl, xh) + var Wi7h = W[i - 7 * 2] + var Wi7l = W[i - 7 * 2 + 1] + var Wi16h = W[i - 16 * 2] + var Wi16l = W[i - 16 * 2 + 1] + var Wil = (gamma0l + Wi7l) | 0 + var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0 + Wil = (Wil + gamma1l) | 0 + Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0 + Wil = (Wil + Wi16l) | 0 + Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0 + W[i] = Wih + W[i + 1] = Wil + } + for (var j = 0; j < 160; j += 2) { + Wih = W[j] + Wil = W[j + 1] + var majh = maj(ah, bh, ch) + var majl = maj(al, bl, cl) + var sigma0h = sigma0(ah, al) + var sigma0l = sigma0(al, ah) + var sigma1h = sigma1(eh, el) + var sigma1l = sigma1(el, eh) + var Kih = K[j] + var Kil = K[j + 1] + var chh = Ch(eh, fh, gh) + var chl = Ch(el, fl, gl) + var t1l = (hl + sigma1l) | 0 + var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0 + t1l = (t1l + chl) | 0 + t1h = (t1h + chh + getCarry(t1l, chl)) | 0 + t1l = (t1l + Kil) | 0 + t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0 + t1l = (t1l + Wil) | 0 + t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0 + var t2l = (sigma0l + majl) | 0 + var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0 + hh = gh + hl = gl + gh = fh + gl = fl + fh = eh + fl = el + el = (dl + t1l) | 0 + eh = (dh + t1h + getCarry(el, dl)) | 0 + dh = ch + dl = cl + ch = bh + cl = bl + bh = ah + bl = al + al = (t1l + t2l) | 0 + ah = (t1h + t2h + getCarry(al, t1l)) | 0 + } + this._al = (this._al + al) | 0 + this._bl = (this._bl + bl) | 0 + this._cl = (this._cl + cl) | 0 + this._dl = (this._dl + dl) | 0 + this._el = (this._el + el) | 0 + this._fl = (this._fl + fl) | 0 + this._gl = (this._gl + gl) | 0 + this._hl = (this._hl + hl) | 0 + this._ah = (this._ah + ah + getCarry(this._al, al)) | 0 + this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0 + this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0 + this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0 + this._eh = (this._eh + eh + getCarry(this._el, el)) | 0 + this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0 + this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0 + this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0 + } + Sha512.prototype._hash = function () { + var H = Buffer.allocUnsafe(64) + function writeInt64BE(h, l, offset) { + H.writeInt32BE(h, offset) + H.writeInt32BE(l, offset + 4) + } + writeInt64BE(this._ah, this._al, 0) + writeInt64BE(this._bh, this._bl, 8) + writeInt64BE(this._ch, this._cl, 16) + writeInt64BE(this._dh, this._dl, 24) + writeInt64BE(this._eh, this._el, 32) + writeInt64BE(this._fh, this._fl, 40) + writeInt64BE(this._gh, this._gl, 48) + writeInt64BE(this._hh, this._hl, 56) + return H + } + module.exports = Sha512 + }, + { './hash': 184, inherits: 151, 'safe-buffer': 183 } + ], + 192: [ + function (require, module, exports) { + module.exports = Stream + var EE = require('events').EventEmitter + var inherits = require('inherits') + inherits(Stream, EE) + Stream.Readable = require('readable-stream/lib/_stream_readable.js') + Stream.Writable = require('readable-stream/lib/_stream_writable.js') + Stream.Duplex = require('readable-stream/lib/_stream_duplex.js') + Stream.Transform = require('readable-stream/lib/_stream_transform.js') + Stream.PassThrough = require('readable-stream/lib/_stream_passthrough.js') + Stream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js') + Stream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js') + Stream.Stream = Stream + function Stream() { + EE.call(this) + } + Stream.prototype.pipe = function (dest, options) { + var source = this + function ondata(chunk) { + if (dest.writable) { + if (false === dest.write(chunk) && source.pause) { + source.pause() + } + } + } + source.on('data', ondata) + function ondrain() { + if (source.readable && source.resume) { + source.resume() + } + } + dest.on('drain', ondrain) + if (!dest._isStdio && (!options || options.end !== false)) { + source.on('end', onend) + source.on('close', onclose) + } + var didOnEnd = false + function onend() { + if (didOnEnd) return + didOnEnd = true + dest.end() + } + function onclose() { + if (didOnEnd) return + didOnEnd = true + if (typeof dest.destroy === 'function') dest.destroy() + } + function onerror(er) { + cleanup() + if (EE.listenerCount(this, 'error') === 0) { + throw er + } + } + source.on('error', onerror) + dest.on('error', onerror) + function cleanup() { + source.removeListener('data', ondata) + dest.removeListener('drain', ondrain) + source.removeListener('end', onend) + source.removeListener('close', onclose) + source.removeListener('error', onerror) + dest.removeListener('error', onerror) + source.removeListener('end', cleanup) + source.removeListener('close', cleanup) + dest.removeListener('close', cleanup) + } + source.on('end', cleanup) + source.on('close', cleanup) + dest.on('close', cleanup) + dest.emit('pipe', source) + return dest + } + }, + { + events: 134, + inherits: 151, + 'readable-stream/lib/_stream_duplex.js': 194, + 'readable-stream/lib/_stream_passthrough.js': 195, + 'readable-stream/lib/_stream_readable.js': 196, + 'readable-stream/lib/_stream_transform.js': 197, + 'readable-stream/lib/_stream_writable.js': 198, + 'readable-stream/lib/internal/streams/end-of-stream.js': 202, + 'readable-stream/lib/internal/streams/pipeline.js': 204 + } + ], + 193: [ + function (require, module, exports) { + arguments[4][78][0].apply(exports, arguments) + }, + { dup: 78 } + ], + 194: [ + function (require, module, exports) { + arguments[4][79][0].apply(exports, arguments) + }, + { + './_stream_readable': 196, + './_stream_writable': 198, + _process: 171, + dup: 79, + inherits: 151 + } + ], + 195: [ + function (require, module, exports) { + arguments[4][80][0].apply(exports, arguments) + }, + { './_stream_transform': 197, dup: 80, inherits: 151 } + ], + 196: [ + function (require, module, exports) { + arguments[4][81][0].apply(exports, arguments) + }, + { + '../errors': 193, + './_stream_duplex': 194, + './internal/streams/async_iterator': 199, + './internal/streams/buffer_list': 200, + './internal/streams/destroy': 201, + './internal/streams/from': 203, + './internal/streams/state': 205, + './internal/streams/stream': 206, + _process: 171, + buffer: 93, + dup: 81, + events: 134, + inherits: 151, + 'string_decoder/': 207, + util: 49 + } + ], + 197: [ + function (require, module, exports) { + arguments[4][82][0].apply(exports, arguments) + }, + { '../errors': 193, './_stream_duplex': 194, dup: 82, inherits: 151 } + ], + 198: [ + function (require, module, exports) { + arguments[4][83][0].apply(exports, arguments) + }, + { + '../errors': 193, + './_stream_duplex': 194, + './internal/streams/destroy': 201, + './internal/streams/state': 205, + './internal/streams/stream': 206, + _process: 171, + buffer: 93, + dup: 83, + inherits: 151, + 'util-deprecate': 209 + } + ], + 199: [ + function (require, module, exports) { + arguments[4][84][0].apply(exports, arguments) + }, + { './end-of-stream': 202, _process: 171, dup: 84 } + ], + 200: [ + function (require, module, exports) { + arguments[4][85][0].apply(exports, arguments) + }, + { buffer: 93, dup: 85, util: 49 } + ], + 201: [ + function (require, module, exports) { + arguments[4][86][0].apply(exports, arguments) + }, + { _process: 171, dup: 86 } + ], + 202: [ + function (require, module, exports) { + arguments[4][87][0].apply(exports, arguments) + }, + { '../../../errors': 193, dup: 87 } + ], + 203: [ + function (require, module, exports) { + arguments[4][88][0].apply(exports, arguments) + }, + { dup: 88 } + ], + 204: [ + function (require, module, exports) { + arguments[4][89][0].apply(exports, arguments) + }, + { '../../../errors': 193, './end-of-stream': 202, dup: 89 } + ], + 205: [ + function (require, module, exports) { + arguments[4][90][0].apply(exports, arguments) + }, + { '../../../errors': 193, dup: 90 } + ], + 206: [ + function (require, module, exports) { + arguments[4][91][0].apply(exports, arguments) + }, + { dup: 91, events: 134 } + ], + 207: [ + function (require, module, exports) { + 'use strict' + var Buffer = require('safe-buffer').Buffer + var isEncoding = + Buffer.isEncoding || + function (encoding) { + encoding = '' + encoding + switch (encoding && encoding.toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + case 'raw': + return true + default: + return false + } + } + function _normalizeEncoding(enc) { + if (!enc) return 'utf8' + var retried + while (true) { + switch (enc) { + case 'utf8': + case 'utf-8': + return 'utf8' + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return 'utf16le' + case 'latin1': + case 'binary': + return 'latin1' + case 'base64': + case 'ascii': + case 'hex': + return enc + default: + if (retried) return + enc = ('' + enc).toLowerCase() + retried = true + } + } + } + function normalizeEncoding(enc) { + var nenc = _normalizeEncoding(enc) + if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) + throw new Error('Unknown encoding: ' + enc) + return nenc || enc + } + exports.StringDecoder = StringDecoder + function StringDecoder(encoding) { + this.encoding = normalizeEncoding(encoding) + var nb + switch (this.encoding) { + case 'utf16le': + this.text = utf16Text + this.end = utf16End + nb = 4 + break + case 'utf8': + this.fillLast = utf8FillLast + nb = 4 + break + case 'base64': + this.text = base64Text + this.end = base64End + nb = 3 + break + default: + this.write = simpleWrite + this.end = simpleEnd + return + } + this.lastNeed = 0 + this.lastTotal = 0 + this.lastChar = Buffer.allocUnsafe(nb) + } + StringDecoder.prototype.write = function (buf) { + if (buf.length === 0) return '' + var r + var i + if (this.lastNeed) { + r = this.fillLast(buf) + if (r === undefined) return '' + i = this.lastNeed + this.lastNeed = 0 + } else { + i = 0 + } + if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i) + return r || '' + } + StringDecoder.prototype.end = utf8End + StringDecoder.prototype.text = utf8Text + StringDecoder.prototype.fillLast = function (buf) { + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed) + return this.lastChar.toString(this.encoding, 0, this.lastTotal) + } + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length) + this.lastNeed -= buf.length + } + function utf8CheckByte(byte) { + if (byte <= 127) return 0 + else if (byte >> 5 === 6) return 2 + else if (byte >> 4 === 14) return 3 + else if (byte >> 3 === 30) return 4 + return byte >> 6 === 2 ? -1 : -2 + } + function utf8CheckIncomplete(self, buf, i) { + var j = buf.length - 1 + if (j < i) return 0 + var nb = utf8CheckByte(buf[j]) + if (nb >= 0) { + if (nb > 0) self.lastNeed = nb - 1 + return nb + } + if (--j < i || nb === -2) return 0 + nb = utf8CheckByte(buf[j]) + if (nb >= 0) { + if (nb > 0) self.lastNeed = nb - 2 + return nb + } + if (--j < i || nb === -2) return 0 + nb = utf8CheckByte(buf[j]) + if (nb >= 0) { + if (nb > 0) { + if (nb === 2) nb = 0 + else self.lastNeed = nb - 3 + } + return nb + } + return 0 + } + function utf8CheckExtraBytes(self, buf, p) { + if ((buf[0] & 192) !== 128) { + self.lastNeed = 0 + return '�' + } + if (self.lastNeed > 1 && buf.length > 1) { + if ((buf[1] & 192) !== 128) { + self.lastNeed = 1 + return '�' + } + if (self.lastNeed > 2 && buf.length > 2) { + if ((buf[2] & 192) !== 128) { + self.lastNeed = 2 + return '�' + } + } + } + } + function utf8FillLast(buf) { + var p = this.lastTotal - this.lastNeed + var r = utf8CheckExtraBytes(this, buf, p) + if (r !== undefined) return r + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, p, 0, this.lastNeed) + return this.lastChar.toString(this.encoding, 0, this.lastTotal) + } + buf.copy(this.lastChar, p, 0, buf.length) + this.lastNeed -= buf.length + } + function utf8Text(buf, i) { + var total = utf8CheckIncomplete(this, buf, i) + if (!this.lastNeed) return buf.toString('utf8', i) + this.lastTotal = total + var end = buf.length - (total - this.lastNeed) + buf.copy(this.lastChar, 0, end) + return buf.toString('utf8', i, end) + } + function utf8End(buf) { + var r = buf && buf.length ? this.write(buf) : '' + if (this.lastNeed) return r + '�' + return r + } + function utf16Text(buf, i) { + if ((buf.length - i) % 2 === 0) { + var r = buf.toString('utf16le', i) + if (r) { + var c = r.charCodeAt(r.length - 1) + if (c >= 55296 && c <= 56319) { + this.lastNeed = 2 + this.lastTotal = 4 + this.lastChar[0] = buf[buf.length - 2] + this.lastChar[1] = buf[buf.length - 1] + return r.slice(0, -1) + } + } + return r + } + this.lastNeed = 1 + this.lastTotal = 2 + this.lastChar[0] = buf[buf.length - 1] + return buf.toString('utf16le', i, buf.length - 1) + } + function utf16End(buf) { + var r = buf && buf.length ? this.write(buf) : '' + if (this.lastNeed) { + var end = this.lastTotal - this.lastNeed + return r + this.lastChar.toString('utf16le', 0, end) + } + return r + } + function base64Text(buf, i) { + var n = (buf.length - i) % 3 + if (n === 0) return buf.toString('base64', i) + this.lastNeed = 3 - n + this.lastTotal = 3 + if (n === 1) { + this.lastChar[0] = buf[buf.length - 1] + } else { + this.lastChar[0] = buf[buf.length - 2] + this.lastChar[1] = buf[buf.length - 1] + } + return buf.toString('base64', i, buf.length - n) + } + function base64End(buf) { + var r = buf && buf.length ? this.write(buf) : '' + if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed) + return r + } + function simpleWrite(buf) { + return buf.toString(this.encoding) + } + function simpleEnd(buf) { + return buf && buf.length ? this.write(buf) : '' + } + }, + { 'safe-buffer': 208 } + ], + 208: [ + function (require, module, exports) { + var buffer = require('buffer') + var Buffer = buffer.Buffer + function copyProps(src, dst) { + for (var key in src) { + dst[key] = src[key] + } + } + if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer + } else { + copyProps(buffer, exports) + exports.Buffer = SafeBuffer + } + function SafeBuffer(arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) + } + copyProps(Buffer, SafeBuffer) + SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) + } + SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size) + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + } else { + buf.fill(0) + } + return buf + } + SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return Buffer(size) + } + SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) + } + }, + { buffer: 93 } + ], + 209: [ + function (require, module, exports) { + ;(function (global) { + ;(function () { + module.exports = deprecate + function deprecate(fn, msg) { + if (config('noDeprecation')) { + return fn + } + var warned = false + function deprecated() { + if (!warned) { + if (config('throwDeprecation')) { + throw new Error(msg) + } else if (config('traceDeprecation')) { + console.trace(msg) + } else { + console.warn(msg) + } + warned = true + } + return fn.apply(this, arguments) + } + return deprecated + } + function config(name) { + try { + if (!global.localStorage) return false + } catch (_) { + return false + } + var val = global.localStorage[name] + if (null == val) return false + return String(val).toLowerCase() === 'true' + } + }.call(this)) + }.call( + this, + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {} + )) + }, + {} + ], + 210: [ + function (require, module, exports) { + var indexOf = function (xs, item) { + if (xs.indexOf) return xs.indexOf(item) + else + for (var i = 0; i < xs.length; i++) { + if (xs[i] === item) return i + } + return -1 + } + var Object_keys = function (obj) { + if (Object.keys) return Object.keys(obj) + else { + var res = [] + for (var key in obj) res.push(key) + return res + } + } + var forEach = function (xs, fn) { + if (xs.forEach) return xs.forEach(fn) + else + for (var i = 0; i < xs.length; i++) { + fn(xs[i], i, xs) + } + } + var defineProp = (function () { + try { + Object.defineProperty({}, '_', {}) + return function (obj, name, value) { + Object.defineProperty(obj, name, { + writable: true, + enumerable: false, + configurable: true, + value: value + }) + } + } catch (e) { + return function (obj, name, value) { + obj[name] = value + } + } + })() + var globals = [ + 'Array', + 'Boolean', + 'Date', + 'Error', + 'EvalError', + 'Function', + 'Infinity', + 'JSON', + 'Math', + 'NaN', + 'Number', + 'Object', + 'RangeError', + 'ReferenceError', + 'RegExp', + 'String', + 'SyntaxError', + 'TypeError', + 'URIError', + 'decodeURI', + 'decodeURIComponent', + 'encodeURI', + 'encodeURIComponent', + 'escape', + 'eval', + 'isFinite', + 'isNaN', + 'parseFloat', + 'parseInt', + 'undefined', + 'unescape' + ] + function Context() {} + Context.prototype = {} + var Script = (exports.Script = function NodeScript(code) { + if (!(this instanceof Script)) return new Script(code) + this.code = code + }) + Script.prototype.runInContext = function (context) { + if (!(context instanceof Context)) { + throw new TypeError("needs a 'context' argument.") + } + var iframe = document.createElement('iframe') + if (!iframe.style) iframe.style = {} + iframe.style.display = 'none' + document.body.appendChild(iframe) + var win = iframe.contentWindow + var wEval = win.eval, + wExecScript = win.execScript + if (!wEval && wExecScript) { + wExecScript.call(win, 'null') + wEval = win.eval + } + forEach(Object_keys(context), function (key) { + win[key] = context[key] + }) + forEach(globals, function (key) { + if (context[key]) { + win[key] = context[key] + } + }) + var winKeys = Object_keys(win) + var res = wEval.call(win, this.code) + forEach(Object_keys(win), function (key) { + if (key in context || indexOf(winKeys, key) === -1) { + context[key] = win[key] + } + }) + forEach(globals, function (key) { + if (!(key in context)) { + defineProp(context, key, win[key]) + } + }) + document.body.removeChild(iframe) + return res + } + Script.prototype.runInThisContext = function () { + return eval(this.code) + } + Script.prototype.runInNewContext = function (context) { + var ctx = Script.createContext(context) + var res = this.runInContext(ctx) + if (context) { + forEach(Object_keys(ctx), function (key) { + context[key] = ctx[key] + }) + } + return res + } + forEach(Object_keys(Script.prototype), function (name) { + exports[name] = Script[name] = function (code) { + var s = Script(code) + return s[name].apply(s, [].slice.call(arguments, 1)) + } + }) + exports.isContext = function (context) { + return context instanceof Context + } + exports.createScript = function (code) { + return exports.Script(code) + } + exports.createContext = Script.createContext = function (context) { + var copy = new Context() + if (typeof context === 'object') { + forEach(Object_keys(context), function (key) { + copy[key] = context[key] + }) + } + return copy + } + }, + {} + ], + 211: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.clearMockWindowState = exports.windowRef = void 0 + var cbs = [ + function (_) { + return undefined + } + ] + var windowRef = { + postMessage: function (message, _target) { + console.log('GOT MOCK POST MESSAGE', message) + cbs.forEach(function (callbackElement) { + callbackElement({ data: message }) + }) + }, + addEventListener: function (_name, eventCallback) { + cbs.push(eventCallback) + }, + removeEventListener: function (_name, eventCallback) { + cbs.splice( + cbs.indexOf(function (element) { + return element === eventCallback + }), + 1 + ) + }, + location: { origin: '*' } + } + exports.windowRef = windowRef + try { + if (typeof window !== 'undefined') { + exports.windowRef = windowRef = window + } + } catch (windowError) { + console.log('not defined: ' + windowError) + } + var clearMockWindowState = function () { + cbs.length = 0 + } + exports.clearMockWindowState = clearMockWindowState + }, + {} + ], + 212: [ + function (require, module, exports) { + ;(function (Buffer) { + ;(function () { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.Serializer = void 0 + var bs58check = require('bs58check') + var Serializer = (function () { + function Serializer() {} + Serializer.prototype.serialize = function (message) { + return __awaiter(this, void 0, void 0, function () { + var str + return __generator(this, function (_a) { + str = JSON.stringify(message) + return [2, bs58check.encode(Buffer.from(str))] + }) + }) + } + Serializer.prototype.deserialize = function (encoded) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + if (typeof encoded !== 'string') { + throw new Error('Encoded payload needs to be a string') + } + return [2, JSON.parse(bs58check.decode(encoded).toString())] + }) + }) + } + return Serializer + })() + exports.Serializer = Serializer + }.call(this)) + }.call(this, require('buffer').Buffer)) + }, + { bs58check: 96, buffer: 93 } + ], + 213: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.BeaconClient = void 0 + var beacon_utils_1 = require('@airgap/beacon-utils') + var beacon_utils_2 = require('@airgap/beacon-utils') + var beacon_types_1 = require('@airgap/beacon-types') + var constants_1 = require('../../constants') + var MockWindow_1 = require('../../MockWindow') + var BeaconClient = (function () { + function BeaconClient(config) { + this._beaconId = new beacon_utils_1.ExposedPromise() + this._keyPair = new beacon_utils_1.ExposedPromise() + if (!config.name) { + throw new Error('Name not set') + } + if (!config.storage) { + throw new Error('Storage not set') + } + this.name = config.name + this.iconUrl = config.iconUrl + this.appUrl = config.appUrl + this.storage = config.storage + if (MockWindow_1.windowRef.beaconCreatedClientInstance) { + console.warn( + '[BEACON] It looks like you created multiple Beacon SDK Client instances. This can lead to problems. Only create one instance and re-use it everywhere.' + ) + } else { + MockWindow_1.windowRef.beaconCreatedClientInstance = true + } + this.initSDK().catch(console.error) + } + Object.defineProperty(BeaconClient.prototype, 'beaconId', { + get: function () { + return this._beaconId.promise + }, + enumerable: false, + configurable: true + }) + Object.defineProperty(BeaconClient.prototype, 'keyPair', { + get: function () { + return this._keyPair.promise + }, + enumerable: false, + configurable: true + }) + BeaconClient.prototype.destroy = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.removeBeaconEntriesFromStorage()] + case 1: + _a.sent() + MockWindow_1.windowRef.beaconCreatedClientInstance = false + return [2] + } + }) + }) + } + BeaconClient.prototype.initSDK = function () { + return __awaiter(this, void 0, void 0, function () { + var _this = this + return __generator(this, function (_a) { + this.storage + .set(beacon_types_1.StorageKey.BEACON_SDK_VERSION, constants_1.SDK_VERSION) + .catch(console.error) + this.loadOrCreateBeaconSecret().catch(console.error) + return [ + 2, + this.keyPair.then(function (keyPair) { + _this._beaconId.resolve((0, beacon_utils_2.toHex)(keyPair.publicKey)) + }) + ] + }) + }) + } + BeaconClient.prototype.removeBeaconEntriesFromStorage = function () { + return __awaiter(this, void 0, void 0, function () { + var allKeys + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + allKeys = Object.values(beacon_types_1.StorageKey) + return [ + 4, + Promise.all( + allKeys.map(function (key) { + return _this.storage.delete(key) + }) + ) + ] + case 1: + _a.sent() + return [2] + } + }) + }) + } + BeaconClient.prototype.loadOrCreateBeaconSecret = function () { + return __awaiter(this, void 0, void 0, function () { + var storageValue, _a, _b, key, _c, _d + return __generator(this, function (_e) { + switch (_e.label) { + case 0: + return [4, this.storage.get(beacon_types_1.StorageKey.BEACON_SDK_SECRET_SEED)] + case 1: + storageValue = _e.sent() + if (!(storageValue && typeof storageValue === 'string')) return [3, 3] + _b = (_a = this._keyPair).resolve + return [4, (0, beacon_utils_2.getKeypairFromSeed)(storageValue)] + case 2: + _b.apply(_a, [_e.sent()]) + return [3, 7] + case 3: + return [4, (0, beacon_utils_2.generateGUID)()] + case 4: + key = _e.sent() + return [ + 4, + this.storage.set(beacon_types_1.StorageKey.BEACON_SDK_SECRET_SEED, key) + ] + case 5: + _e.sent() + _d = (_c = this._keyPair).resolve + return [4, (0, beacon_utils_2.getKeypairFromSeed)(key)] + case 6: + _d.apply(_c, [_e.sent()]) + _e.label = 7 + case 7: + return [2] + } + }) + }) + } + return BeaconClient + })() + exports.BeaconClient = BeaconClient + }, + { + '../../MockWindow': 211, + '../../constants': 215, + '@airgap/beacon-types': 287, + '@airgap/beacon-utils': 302 + } + ], + 214: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.Client = void 0 + var beacon_utils_1 = require('@airgap/beacon-utils') + var beacon_types_1 = require('@airgap/beacon-types') + var __1 = require('../..') + var BeaconClient_1 = require('../beacon-client/BeaconClient') + var AccountManager_1 = require('../../managers/AccountManager') + var constants_1 = require('../../constants') + var get_sender_id_1 = require('../../utils/get-sender-id') + var Logger_1 = require('../../utils/Logger') + var logger = new Logger_1.Logger('Client') + var Client = (function (_super) { + __extends(Client, _super) + function Client(config) { + var _a + var _this = _super.call(this, config) || this + _this.rateLimit = 2 + _this.rateLimitWindowInSeconds = 5 + _this.requestCounter = [] + _this._transport = new beacon_utils_1.ExposedPromise() + _this.accountManager = new AccountManager_1.AccountManager(config.storage) + _this.matrixNodes = (_a = config.matrixNodes) !== null && _a !== void 0 ? _a : [] + _this.handleResponse = function (message, connectionInfo) { + throw new Error( + 'not overwritten' + + JSON.stringify(message) + + ' - ' + + JSON.stringify(connectionInfo) + ) + } + return _this + } + Object.defineProperty(Client.prototype, 'transport', { + get: function () { + return this._transport.promise + }, + enumerable: false, + configurable: true + }) + Object.defineProperty(Client.prototype, 'connectionStatus', { + get: function () { + var _a, _b + return (_b = + (_a = this._transport.promiseResult) === null || _a === void 0 + ? void 0 + : _a.connectionStatus) !== null && _b !== void 0 + ? _b + : beacon_types_1.TransportStatus.NOT_CONNECTED + }, + enumerable: false, + configurable: true + }) + Object.defineProperty(Client.prototype, 'ready', { + get: function () { + return this.transport.then(function () { + return undefined + }) + }, + enumerable: false, + configurable: true + }) + Client.prototype.getAccounts = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.accountManager.getAccounts()] + }) + }) + } + Client.prototype.getAccount = function (accountIdentifier) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.accountManager.getAccount(accountIdentifier)] + }) + }) + } + Client.prototype.removeAccount = function (accountIdentifier) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.accountManager.removeAccount(accountIdentifier)] + }) + }) + } + Client.prototype.removeAllAccounts = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.accountManager.removeAllAccounts()] + }) + }) + } + Client.prototype.addRequestAndCheckIfRateLimited = function () { + return __awaiter(this, void 0, void 0, function () { + var now + var _this = this + return __generator(this, function (_a) { + now = new Date().getTime() + this.requestCounter = this.requestCounter.filter(function (date) { + return date + _this.rateLimitWindowInSeconds * 1e3 > now + }) + this.requestCounter.push(now) + return [2, this.requestCounter.length > this.rateLimit] + }) + }) + } + Client.prototype.init = function (transport) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if ( + !(this._transport.status === beacon_utils_1.ExposedPromiseStatus.RESOLVED) + ) + return [3, 2] + return [4, this.transport] + case 1: + return [2, _a.sent().type] + case 2: + return [4, this.setTransport(transport)] + case 3: + _a.sent() + return [2, transport.type] + } + }) + }) + } + Client.prototype.getOwnAppMetadata = function () { + return __awaiter(this, void 0, void 0, function () { + var _a + var _b + return __generator(this, function (_c) { + switch (_c.label) { + case 0: + _b = {} + _a = get_sender_id_1.getSenderId + return [4, this.beaconId] + case 1: + return [4, _a.apply(void 0, [_c.sent()])] + case 2: + return [ + 2, + ((_b.senderId = _c.sent()), + (_b.name = this.name), + (_b.icon = this.iconUrl), + _b) + ] + } + }) + }) + } + Client.prototype.getPeers = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.transport] + case 1: + return [2, _a.sent().getPeers()] + } + }) + }) + } + Client.prototype.addPeer = function (peer) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.transport] + case 1: + return [2, _a.sent().addPeer(peer)] + } + }) + }) + } + Client.prototype.destroy = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if ( + !(this._transport.status === beacon_utils_1.ExposedPromiseStatus.RESOLVED) + ) + return [3, 3] + return [4, this.transport] + case 1: + return [4, _a.sent().disconnect()] + case 2: + _a.sent() + _a.label = 3 + case 3: + return [4, _super.prototype.destroy.call(this)] + case 4: + _a.sent() + return [2] + } + }) + }) + } + Client.prototype.setTransport = function (transport) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + if (transport) { + if (this._transport.isSettled()) { + this._transport = beacon_utils_1.ExposedPromise.resolve(transport) + } else { + this._transport.resolve(transport) + } + } else { + if (this._transport.isSettled()) { + this._transport = new beacon_utils_1.ExposedPromise() + } + } + return [2] + }) + }) + } + Client.prototype.addListener = function (transport) { + return __awaiter(this, void 0, void 0, function () { + var _this = this + return __generator(this, function (_a) { + transport + .addListener(function (message, connectionInfo) { + return __awaiter(_this, void 0, void 0, function () { + var deserializedMessage + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!(typeof message === 'string')) return [3, 2] + return [4, new __1.Serializer().deserialize(message)] + case 1: + deserializedMessage = _a.sent() + this.handleResponse(deserializedMessage, connectionInfo) + _a.label = 2 + case 2: + return [2] + } + }) + }) + }) + .catch(function (error) { + return logger.error('addListener', error) + }) + return [2] + }) + }) + } + Client.prototype.sendDisconnectToPeer = function (peer, transport) { + return __awaiter(this, void 0, void 0, function () { + var request, _a, payload, selectedTransport, _b + var _c + return __generator(this, function (_d) { + switch (_d.label) { + case 0: + _c = {} + return [4, (0, beacon_utils_1.generateGUID)()] + case 1: + ;(_c.id = _d.sent()), (_c.version = constants_1.BEACON_VERSION) + _a = get_sender_id_1.getSenderId + return [4, this.beaconId] + case 2: + return [4, _a.apply(void 0, [_d.sent()])] + case 3: + request = + ((_c.senderId = _d.sent()), + (_c.type = beacon_types_1.BeaconMessageType.Disconnect), + _c) + return [4, new __1.Serializer().serialize(request)] + case 4: + payload = _d.sent() + if (!(transport !== null && transport !== void 0)) return [3, 5] + _b = transport + return [3, 7] + case 5: + return [4, this.transport] + case 6: + _b = _d.sent() + _d.label = 7 + case 7: + selectedTransport = _b + return [4, selectedTransport.send(payload, peer)] + case 8: + _d.sent() + return [2] + } + }) + }) + } + return Client + })(BeaconClient_1.BeaconClient) + exports.Client = Client + }, + { + '../..': 229, + '../../constants': 215, + '../../managers/AccountManager': 232, + '../../utils/Logger': 244, + '../../utils/get-sender-id': 247, + '../beacon-client/BeaconClient': 213, + '@airgap/beacon-types': 287, + '@airgap/beacon-utils': 302 + } + ], + 215: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.BEACON_VERSION = exports.SDK_VERSION = void 0 + exports.SDK_VERSION = '2.4.0-beta.0' + exports.BEACON_VERSION = '2' + }, + {} + ], + 216: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getDebugEnabled = exports.setDebugEnabled = void 0 + var MockWindow_1 = require('./MockWindow') + var debug = MockWindow_1.windowRef.beaconSdkDebugEnabled ? true : false + if (debug) { + console.log( + '[BEACON]: Debug mode is ON (turned on either by the developer or a browser extension)' + ) + } + var setDebugEnabled = function (enabled) { + debug = enabled + } + exports.setDebugEnabled = setDebugEnabled + var getDebugEnabled = function () { + return debug + } + exports.getDebugEnabled = getDebugEnabled + }, + { './MockWindow': 211 } + ], + 217: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + Object.defineProperty(exports, '__esModule', { value: true }) + exports.AbortedBeaconError = void 0 + var __1 = require('..') + var beacon_types_1 = require('@airgap/beacon-types') + var AbortedBeaconError = (function (_super) { + __extends(AbortedBeaconError, _super) + function AbortedBeaconError() { + var _this = + _super.call( + this, + beacon_types_1.BeaconErrorType.ABORTED_ERROR, + 'The action was aborted by the user.' + ) || this + _this.name = 'UnknownBeaconError' + _this.title = 'Aborted' + return _this + } + return AbortedBeaconError + })(__1.BeaconError) + exports.AbortedBeaconError = AbortedBeaconError + }, + { '..': 229, '@airgap/beacon-types': 287 } + ], + 218: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.BeaconError = void 0 + var assert_never_1 = require('../utils/assert-never') + var __1 = require('..') + var beacon_types_1 = require('@airgap/beacon-types') + var BeaconError = (function () { + function BeaconError(errorType, message) { + this.name = 'BeaconError' + this.title = 'Error' + this.message = '[' + errorType + ']:' + message + this.description = message + } + Object.defineProperty(BeaconError.prototype, 'fullDescription', { + get: function () { + return this.description + }, + enumerable: false, + configurable: true + }) + BeaconError.getError = function (errorType, errorData) { + switch (errorType) { + case beacon_types_1.BeaconErrorType.BROADCAST_ERROR: + return new __1.BroadcastBeaconError() + case beacon_types_1.BeaconErrorType.NETWORK_NOT_SUPPORTED: + return new __1.NetworkNotSupportedBeaconError() + case beacon_types_1.BeaconErrorType.NO_ADDRESS_ERROR: + return new __1.NoAddressBeaconError() + case beacon_types_1.BeaconErrorType.NO_PRIVATE_KEY_FOUND_ERROR: + return new __1.NoPrivateKeyBeaconError() + case beacon_types_1.BeaconErrorType.NOT_GRANTED_ERROR: + return new __1.NotGrantedBeaconError() + case beacon_types_1.BeaconErrorType.PARAMETERS_INVALID_ERROR: + return new __1.ParametersInvalidBeaconError() + case beacon_types_1.BeaconErrorType.TOO_MANY_OPERATIONS: + return new __1.TooManyOperationsBeaconError() + case beacon_types_1.BeaconErrorType.TRANSACTION_INVALID_ERROR: + return new __1.TransactionInvalidBeaconError(errorData) + case beacon_types_1.BeaconErrorType.SIGNATURE_TYPE_NOT_SUPPORTED: + return new __1.SignatureTypeNotSupportedBeaconError() + case beacon_types_1.BeaconErrorType.ABORTED_ERROR: + return new __1.AbortedBeaconError() + case beacon_types_1.BeaconErrorType.UNKNOWN_ERROR: + return new __1.UnknownBeaconError() + default: + ;(0, assert_never_1.assertNever)(errorType) + } + } + return BeaconError + })() + exports.BeaconError = BeaconError + }, + { '..': 229, '../utils/assert-never': 245, '@airgap/beacon-types': 287 } + ], + 219: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + Object.defineProperty(exports, '__esModule', { value: true }) + exports.BroadcastBeaconError = void 0 + var __1 = require('..') + var beacon_types_1 = require('@airgap/beacon-types') + var BroadcastBeaconError = (function (_super) { + __extends(BroadcastBeaconError, _super) + function BroadcastBeaconError() { + var _this = + _super.call( + this, + beacon_types_1.BeaconErrorType.BROADCAST_ERROR, + 'The transaction could not be broadcast to the network. Please try again.' + ) || this + _this.name = 'BroadcastBeaconError' + _this.title = 'Broadcast Error' + return _this + } + return BroadcastBeaconError + })(__1.BeaconError) + exports.BroadcastBeaconError = BroadcastBeaconError + }, + { '..': 229, '@airgap/beacon-types': 287 } + ], + 220: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + Object.defineProperty(exports, '__esModule', { value: true }) + exports.NetworkNotSupportedBeaconError = void 0 + var __1 = require('..') + var beacon_types_1 = require('@airgap/beacon-types') + var NetworkNotSupportedBeaconError = (function (_super) { + __extends(NetworkNotSupportedBeaconError, _super) + function NetworkNotSupportedBeaconError() { + var _this = + _super.call( + this, + beacon_types_1.BeaconErrorType.NETWORK_NOT_SUPPORTED, + 'The wallet does not support this network. Please select another one.' + ) || this + _this.name = 'NetworkNotSupportedBeaconError' + _this.title = 'Network Error' + return _this + } + return NetworkNotSupportedBeaconError + })(__1.BeaconError) + exports.NetworkNotSupportedBeaconError = NetworkNotSupportedBeaconError + }, + { '..': 229, '@airgap/beacon-types': 287 } + ], + 221: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + Object.defineProperty(exports, '__esModule', { value: true }) + exports.NoAddressBeaconError = void 0 + var __1 = require('..') + var beacon_types_1 = require('@airgap/beacon-types') + var NoAddressBeaconError = (function (_super) { + __extends(NoAddressBeaconError, _super) + function NoAddressBeaconError() { + var _this = + _super.call( + this, + beacon_types_1.BeaconErrorType.NO_ADDRESS_ERROR, + 'The wallet does not have an account set up. Please make sure to set up your wallet and try again.' + ) || this + _this.name = 'NoAddressBeaconError' + _this.title = 'No Address' + return _this + } + return NoAddressBeaconError + })(__1.BeaconError) + exports.NoAddressBeaconError = NoAddressBeaconError + }, + { '..': 229, '@airgap/beacon-types': 287 } + ], + 222: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + Object.defineProperty(exports, '__esModule', { value: true }) + exports.NoPrivateKeyBeaconError = void 0 + var __1 = require('..') + var beacon_types_1 = require('@airgap/beacon-types') + var NoPrivateKeyBeaconError = (function (_super) { + __extends(NoPrivateKeyBeaconError, _super) + function NoPrivateKeyBeaconError() { + var _this = + _super.call( + this, + beacon_types_1.BeaconErrorType.NO_PRIVATE_KEY_FOUND_ERROR, + 'The account you are trying to interact with is not available. Please make sure to add the account to your wallet and try again.' + ) || this + _this.name = 'NoPrivateKeyBeaconError' + _this.title = 'Account Not Found' + return _this + } + return NoPrivateKeyBeaconError + })(__1.BeaconError) + exports.NoPrivateKeyBeaconError = NoPrivateKeyBeaconError + }, + { '..': 229, '@airgap/beacon-types': 287 } + ], + 223: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + Object.defineProperty(exports, '__esModule', { value: true }) + exports.NotGrantedBeaconError = void 0 + var __1 = require('..') + var beacon_types_1 = require('@airgap/beacon-types') + var NotGrantedBeaconError = (function (_super) { + __extends(NotGrantedBeaconError, _super) + function NotGrantedBeaconError() { + var _this = + _super.call( + this, + beacon_types_1.BeaconErrorType.NOT_GRANTED_ERROR, + 'You do not have the necessary permissions to perform this action. Please initiate another permission request and give the necessary permissions.' + ) || this + _this.name = 'NotGrantedBeaconError' + _this.title = 'Permission Not Granted' + return _this + } + return NotGrantedBeaconError + })(__1.BeaconError) + exports.NotGrantedBeaconError = NotGrantedBeaconError + }, + { '..': 229, '@airgap/beacon-types': 287 } + ], + 224: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + Object.defineProperty(exports, '__esModule', { value: true }) + exports.ParametersInvalidBeaconError = void 0 + var __1 = require('..') + var beacon_types_1 = require('@airgap/beacon-types') + var ParametersInvalidBeaconError = (function (_super) { + __extends(ParametersInvalidBeaconError, _super) + function ParametersInvalidBeaconError() { + var _this = + _super.call( + this, + beacon_types_1.BeaconErrorType.PARAMETERS_INVALID_ERROR, + 'Some of the parameters you provided are invalid and the request could not be completed. Please check your inputs and try again.' + ) || this + _this.name = 'ParametersInvalidBeaconError' + _this.title = 'Parameters Invalid' + return _this + } + return ParametersInvalidBeaconError + })(__1.BeaconError) + exports.ParametersInvalidBeaconError = ParametersInvalidBeaconError + }, + { '..': 229, '@airgap/beacon-types': 287 } + ], + 225: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + Object.defineProperty(exports, '__esModule', { value: true }) + exports.SignatureTypeNotSupportedBeaconError = void 0 + var __1 = require('..') + var beacon_types_1 = require('@airgap/beacon-types') + var SignatureTypeNotSupportedBeaconError = (function (_super) { + __extends(SignatureTypeNotSupportedBeaconError, _super) + function SignatureTypeNotSupportedBeaconError() { + var _this = + _super.call( + this, + beacon_types_1.BeaconErrorType.SIGNATURE_TYPE_NOT_SUPPORTED, + 'The wallet is not able to sign payloads of this type.' + ) || this + _this.name = 'SignatureTypeNotSupportedBeaconError' + _this.title = 'Signature Type Not Supported' + return _this + } + return SignatureTypeNotSupportedBeaconError + })(__1.BeaconError) + exports.SignatureTypeNotSupportedBeaconError = SignatureTypeNotSupportedBeaconError + }, + { '..': 229, '@airgap/beacon-types': 287 } + ], + 226: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + Object.defineProperty(exports, '__esModule', { value: true }) + exports.TooManyOperationsBeaconError = void 0 + var __1 = require('..') + var beacon_types_1 = require('@airgap/beacon-types') + var TooManyOperationsBeaconError = (function (_super) { + __extends(TooManyOperationsBeaconError, _super) + function TooManyOperationsBeaconError() { + var _this = + _super.call( + this, + beacon_types_1.BeaconErrorType.TOO_MANY_OPERATIONS, + 'The request contains too many transactions. Please include fewer operations and try again.' + ) || this + _this.name = 'TooManyOperationsBeaconError' + _this.title = 'Too Many Operations' + return _this + } + return TooManyOperationsBeaconError + })(__1.BeaconError) + exports.TooManyOperationsBeaconError = TooManyOperationsBeaconError + }, + { '..': 229, '@airgap/beacon-types': 287 } + ], + 227: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + Object.defineProperty(exports, '__esModule', { value: true }) + exports.TransactionInvalidBeaconError = void 0 + var __1 = require('..') + var beacon_types_1 = require('@airgap/beacon-types') + var TransactionInvalidBeaconError = (function (_super) { + __extends(TransactionInvalidBeaconError, _super) + function TransactionInvalidBeaconError(data) { + var _this = + _super.call( + this, + beacon_types_1.BeaconErrorType.TRANSACTION_INVALID_ERROR, + 'The transaction is invalid and the node did not accept it.' + ) || this + _this.data = data + _this.name = 'TransactionInvalidBeaconError' + _this.title = 'Transaction Invalid' + _this.data = data + return _this + } + Object.defineProperty(TransactionInvalidBeaconError.prototype, 'fullDescription', { + get: function () { + return ( + this.description + + '
' +
+                  JSON.stringify(this.data, undefined, 2) +
+                  '
' + ) + }, + enumerable: false, + configurable: true + }) + return TransactionInvalidBeaconError + })(__1.BeaconError) + exports.TransactionInvalidBeaconError = TransactionInvalidBeaconError + }, + { '..': 229, '@airgap/beacon-types': 287 } + ], + 228: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + Object.defineProperty(exports, '__esModule', { value: true }) + exports.UnknownBeaconError = void 0 + var __1 = require('..') + var beacon_types_1 = require('@airgap/beacon-types') + var UnknownBeaconError = (function (_super) { + __extends(UnknownBeaconError, _super) + function UnknownBeaconError() { + var _this = + _super.call( + this, + beacon_types_1.BeaconErrorType.UNKNOWN_ERROR, + 'An unknown error occured. Please try again or report it to a developer.' + ) || this + _this.name = 'UnknownBeaconError' + _this.title = 'Error' + return _this + } + return UnknownBeaconError + })(__1.BeaconError) + exports.UnknownBeaconError = UnknownBeaconError + }, + { '..': 229, '@airgap/beacon-types': 287 } + ], + 229: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getDebugEnabled = + exports.setDebugEnabled = + exports.Logger = + exports.OutgoingResponseInterceptor = + exports.IncomingRequestInterceptor = + exports.Serializer = + exports.windowRef = + exports.getAccountIdentifier = + exports.getSenderId = + exports.BEACON_VERSION = + exports.SDK_VERSION = + exports.PermissionManager = + exports.AppMetadataManager = + exports.AccountManager = + exports.PeerManager = + exports.getStorage = + exports.LocalStorage = + exports.ChromeStorage = + exports.CommunicationClient = + exports.MessageBasedClient = + exports.Transport = + exports.UnknownBeaconError = + exports.SignatureTypeNotSupportedBeaconError = + exports.TransactionInvalidBeaconError = + exports.TooManyOperationsBeaconError = + exports.ParametersInvalidBeaconError = + exports.NotGrantedBeaconError = + exports.NoPrivateKeyBeaconError = + exports.NoAddressBeaconError = + exports.NetworkNotSupportedBeaconError = + exports.BroadcastBeaconError = + exports.AbortedBeaconError = + exports.BeaconError = + exports.Client = + exports.BeaconClient = + void 0 + var Client_1 = require('./clients/client/Client') + Object.defineProperty(exports, 'Client', { + enumerable: true, + get: function () { + return Client_1.Client + } + }) + var BeaconError_1 = require('./errors/BeaconError') + Object.defineProperty(exports, 'BeaconError', { + enumerable: true, + get: function () { + return BeaconError_1.BeaconError + } + }) + var BroadcastBeaconError_1 = require('./errors/BroadcastBeaconError') + Object.defineProperty(exports, 'BroadcastBeaconError', { + enumerable: true, + get: function () { + return BroadcastBeaconError_1.BroadcastBeaconError + } + }) + var NetworkNotSupportedBeaconError_1 = require('./errors/NetworkNotSupportedBeaconError') + Object.defineProperty(exports, 'NetworkNotSupportedBeaconError', { + enumerable: true, + get: function () { + return NetworkNotSupportedBeaconError_1.NetworkNotSupportedBeaconError + } + }) + var NoAddressBeaconError_1 = require('./errors/NoAddressBeaconError') + Object.defineProperty(exports, 'NoAddressBeaconError', { + enumerable: true, + get: function () { + return NoAddressBeaconError_1.NoAddressBeaconError + } + }) + var NoPrivateKeyBeaconError_1 = require('./errors/NoPrivateKeyBeaconError') + Object.defineProperty(exports, 'NoPrivateKeyBeaconError', { + enumerable: true, + get: function () { + return NoPrivateKeyBeaconError_1.NoPrivateKeyBeaconError + } + }) + var NotGrantedBeaconError_1 = require('./errors/NotGrantedBeaconError') + Object.defineProperty(exports, 'NotGrantedBeaconError', { + enumerable: true, + get: function () { + return NotGrantedBeaconError_1.NotGrantedBeaconError + } + }) + var ParametersInvalidBeaconError_1 = require('./errors/ParametersInvalidBeaconError') + Object.defineProperty(exports, 'ParametersInvalidBeaconError', { + enumerable: true, + get: function () { + return ParametersInvalidBeaconError_1.ParametersInvalidBeaconError + } + }) + var TooManyOperationsBeaconError_1 = require('./errors/TooManyOperationsBeaconError') + Object.defineProperty(exports, 'TooManyOperationsBeaconError', { + enumerable: true, + get: function () { + return TooManyOperationsBeaconError_1.TooManyOperationsBeaconError + } + }) + var TransactionInvalidBeaconError_1 = require('./errors/TransactionInvalidBeaconError') + Object.defineProperty(exports, 'TransactionInvalidBeaconError', { + enumerable: true, + get: function () { + return TransactionInvalidBeaconError_1.TransactionInvalidBeaconError + } + }) + var UnknownBeaconError_1 = require('./errors/UnknownBeaconError') + Object.defineProperty(exports, 'UnknownBeaconError', { + enumerable: true, + get: function () { + return UnknownBeaconError_1.UnknownBeaconError + } + }) + var Transport_1 = require('./transports/Transport') + Object.defineProperty(exports, 'Transport', { + enumerable: true, + get: function () { + return Transport_1.Transport + } + }) + var ChromeStorage_1 = require('./storage/ChromeStorage') + Object.defineProperty(exports, 'ChromeStorage', { + enumerable: true, + get: function () { + return ChromeStorage_1.ChromeStorage + } + }) + var LocalStorage_1 = require('./storage/LocalStorage') + Object.defineProperty(exports, 'LocalStorage', { + enumerable: true, + get: function () { + return LocalStorage_1.LocalStorage + } + }) + var getStorage_1 = require('./storage/getStorage') + Object.defineProperty(exports, 'getStorage', { + enumerable: true, + get: function () { + return getStorage_1.getStorage + } + }) + var Serializer_1 = require('./Serializer') + Object.defineProperty(exports, 'Serializer', { + enumerable: true, + get: function () { + return Serializer_1.Serializer + } + }) + var constants_1 = require('./constants') + Object.defineProperty(exports, 'SDK_VERSION', { + enumerable: true, + get: function () { + return constants_1.SDK_VERSION + } + }) + Object.defineProperty(exports, 'BEACON_VERSION', { + enumerable: true, + get: function () { + return constants_1.BEACON_VERSION + } + }) + var AccountManager_1 = require('./managers/AccountManager') + Object.defineProperty(exports, 'AccountManager', { + enumerable: true, + get: function () { + return AccountManager_1.AccountManager + } + }) + var AppMetadataManager_1 = require('./managers/AppMetadataManager') + Object.defineProperty(exports, 'AppMetadataManager', { + enumerable: true, + get: function () { + return AppMetadataManager_1.AppMetadataManager + } + }) + var PermissionManager_1 = require('./managers/PermissionManager') + Object.defineProperty(exports, 'PermissionManager', { + enumerable: true, + get: function () { + return PermissionManager_1.PermissionManager + } + }) + var BeaconClient_1 = require('./clients/beacon-client/BeaconClient') + Object.defineProperty(exports, 'BeaconClient', { + enumerable: true, + get: function () { + return BeaconClient_1.BeaconClient + } + }) + var get_account_identifier_1 = require('./utils/get-account-identifier') + Object.defineProperty(exports, 'getAccountIdentifier', { + enumerable: true, + get: function () { + return get_account_identifier_1.getAccountIdentifier + } + }) + var AbortedBeaconError_1 = require('./errors/AbortedBeaconError') + Object.defineProperty(exports, 'AbortedBeaconError', { + enumerable: true, + get: function () { + return AbortedBeaconError_1.AbortedBeaconError + } + }) + var get_sender_id_1 = require('./utils/get-sender-id') + Object.defineProperty(exports, 'getSenderId', { + enumerable: true, + get: function () { + return get_sender_id_1.getSenderId + } + }) + var PeerManager_1 = require('./managers/PeerManager') + Object.defineProperty(exports, 'PeerManager', { + enumerable: true, + get: function () { + return PeerManager_1.PeerManager + } + }) + var MessageBasedClient_1 = require('./transports/clients/MessageBasedClient') + Object.defineProperty(exports, 'MessageBasedClient', { + enumerable: true, + get: function () { + return MessageBasedClient_1.MessageBasedClient + } + }) + var debug_1 = require('./debug') + Object.defineProperty(exports, 'setDebugEnabled', { + enumerable: true, + get: function () { + return debug_1.setDebugEnabled + } + }) + Object.defineProperty(exports, 'getDebugEnabled', { + enumerable: true, + get: function () { + return debug_1.getDebugEnabled + } + }) + var SignatureTypeNotSupportedBeaconError_1 = require('./errors/SignatureTypeNotSupportedBeaconError') + Object.defineProperty(exports, 'SignatureTypeNotSupportedBeaconError', { + enumerable: true, + get: function () { + return SignatureTypeNotSupportedBeaconError_1.SignatureTypeNotSupportedBeaconError + } + }) + var Logger_1 = require('./utils/Logger') + Object.defineProperty(exports, 'Logger', { + enumerable: true, + get: function () { + return Logger_1.Logger + } + }) + var IncomingRequestInterceptor_1 = require('./interceptors/IncomingRequestInterceptor') + Object.defineProperty(exports, 'IncomingRequestInterceptor', { + enumerable: true, + get: function () { + return IncomingRequestInterceptor_1.IncomingRequestInterceptor + } + }) + var OutgoingResponseInterceptor_1 = require('./interceptors/OutgoingResponseInterceptor') + Object.defineProperty(exports, 'OutgoingResponseInterceptor', { + enumerable: true, + get: function () { + return OutgoingResponseInterceptor_1.OutgoingResponseInterceptor + } + }) + var MockWindow_1 = require('./MockWindow') + Object.defineProperty(exports, 'windowRef', { + enumerable: true, + get: function () { + return MockWindow_1.windowRef + } + }) + var CommunicationClient_1 = require('./transports/clients/CommunicationClient') + Object.defineProperty(exports, 'CommunicationClient', { + enumerable: true, + get: function () { + return CommunicationClient_1.CommunicationClient + } + }) + }, + { + './MockWindow': 211, + './Serializer': 212, + './clients/beacon-client/BeaconClient': 213, + './clients/client/Client': 214, + './constants': 215, + './debug': 216, + './errors/AbortedBeaconError': 217, + './errors/BeaconError': 218, + './errors/BroadcastBeaconError': 219, + './errors/NetworkNotSupportedBeaconError': 220, + './errors/NoAddressBeaconError': 221, + './errors/NoPrivateKeyBeaconError': 222, + './errors/NotGrantedBeaconError': 223, + './errors/ParametersInvalidBeaconError': 224, + './errors/SignatureTypeNotSupportedBeaconError': 225, + './errors/TooManyOperationsBeaconError': 226, + './errors/TransactionInvalidBeaconError': 227, + './errors/UnknownBeaconError': 228, + './interceptors/IncomingRequestInterceptor': 230, + './interceptors/OutgoingResponseInterceptor': 231, + './managers/AccountManager': 232, + './managers/AppMetadataManager': 233, + './managers/PeerManager': 234, + './managers/PermissionManager': 235, + './storage/ChromeStorage': 238, + './storage/LocalStorage': 239, + './storage/getStorage': 240, + './transports/Transport': 241, + './transports/clients/CommunicationClient': 242, + './transports/clients/MessageBasedClient': 243, + './utils/Logger': 244, + './utils/get-account-identifier': 246, + './utils/get-sender-id': 247 + } + ], + 230: [ + function (require, module, exports) { + 'use strict' + var __assign = + (this && this.__assign) || + function () { + __assign = + Object.assign || + function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i] + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p] + } + return t + } + return __assign.apply(this, arguments) + } + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.IncomingRequestInterceptor = void 0 + var assert_never_1 = require('../utils/assert-never') + var beacon_types_1 = require('@airgap/beacon-types') + var Logger_1 = require('../utils/Logger') + var logger = new Logger_1.Logger('IncomingRequestInterceptor') + var IncomingRequestInterceptor = (function () { + function IncomingRequestInterceptor() {} + IncomingRequestInterceptor.intercept = function (config) { + return __awaiter(this, void 0, void 0, function () { + var message, + connectionInfo, + appMetadataManager, + interceptorCallback, + _a, + request, + appMetadata, + request, + appMetadata, + request, + appMetadata, + request + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + ;(message = config.message), + (connectionInfo = config.connectionInfo), + (appMetadataManager = config.appMetadataManager), + (interceptorCallback = config.interceptorCallback) + if (message.beaconId && !message.senderId) { + message.senderId = message.beaconId + delete message.beaconId + } + _a = message.type + switch (_a) { + case beacon_types_1.BeaconMessageType.PermissionRequest: + return [3, 1] + case beacon_types_1.BeaconMessageType.OperationRequest: + return [3, 3] + case beacon_types_1.BeaconMessageType.SignPayloadRequest: + return [3, 5] + case beacon_types_1.BeaconMessageType.BroadcastRequest: + return [3, 7] + } + return [3, 9] + case 1: + if (message.appMetadata.beaconId && !message.appMetadata.senderId) { + message.appMetadata.senderId = message.appMetadata.beaconId + delete message.appMetadata.beaconId + } + return [4, appMetadataManager.addAppMetadata(message.appMetadata)] + case 2: + _b.sent() + request = message + interceptorCallback(request, connectionInfo) + return [3, 10] + case 3: + return [ + 4, + IncomingRequestInterceptor.getAppMetadata( + appMetadataManager, + message.senderId + ) + ] + case 4: + appMetadata = _b.sent() + request = __assign({ appMetadata: appMetadata }, message) + interceptorCallback(request, connectionInfo) + return [3, 10] + case 5: + return [ + 4, + IncomingRequestInterceptor.getAppMetadata( + appMetadataManager, + message.senderId + ) + ] + case 6: + appMetadata = _b.sent() + request = __assign({ appMetadata: appMetadata }, message) + interceptorCallback(request, connectionInfo) + return [3, 10] + case 7: + return [ + 4, + IncomingRequestInterceptor.getAppMetadata( + appMetadataManager, + message.senderId + ) + ] + case 8: + appMetadata = _b.sent() + request = __assign({ appMetadata: appMetadata }, message) + interceptorCallback(request, connectionInfo) + return [3, 10] + case 9: + logger.log('intercept', 'Message not handled') + ;(0, assert_never_1.assertNever)(message) + _b.label = 10 + case 10: + return [2] + } + }) + }) + } + IncomingRequestInterceptor.getAppMetadata = function (appMetadataManager, senderId) { + return __awaiter(this, void 0, void 0, function () { + var appMetadata + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, appMetadataManager.getAppMetadata(senderId)] + case 1: + appMetadata = _a.sent() + if (!appMetadata) { + throw new Error('AppMetadata not found') + } + return [2, appMetadata] + } + }) + }) + } + return IncomingRequestInterceptor + })() + exports.IncomingRequestInterceptor = IncomingRequestInterceptor + }, + { '../utils/Logger': 244, '../utils/assert-never': 245, '@airgap/beacon-types': 287 } + ], + 231: [ + function (require, module, exports) { + 'use strict' + var __assign = + (this && this.__assign) || + function () { + __assign = + Object.assign || + function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i] + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p] + } + return t + } + return __assign.apply(this, arguments) + } + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.OutgoingResponseInterceptor = void 0 + var assert_never_1 = require('../utils/assert-never') + var beacon_types_1 = require('@airgap/beacon-types') + var constants_1 = require('../constants') + var beacon_utils_1 = require('@airgap/beacon-utils') + var get_account_identifier_1 = require('../utils/get-account-identifier') + var Logger_1 = require('../utils/Logger') + var logger = new Logger_1.Logger('OutgoingResponseInterceptor') + var OutgoingResponseInterceptor = (function () { + function OutgoingResponseInterceptor() {} + OutgoingResponseInterceptor.intercept = function (config) { + return __awaiter(this, void 0, void 0, function () { + var senderId, + request, + message, + ownAppMetadata, + permissionManager, + appMetadataManager, + interceptorCallback, + interceptorCallbackWrapper, + _a, + response, + errorData, + response, + response, + publicKey, + address, + appMetadata, + permission, + response, + response, + response + var _b + return __generator(this, function (_c) { + switch (_c.label) { + case 0: + ;(senderId = config.senderId), + (request = config.request), + (message = config.message), + (ownAppMetadata = config.ownAppMetadata), + (permissionManager = config.permissionManager), + (appMetadataManager = config.appMetadataManager), + (interceptorCallback = config.interceptorCallback) + interceptorCallbackWrapper = function (msg) { + var untypedMessage = msg + untypedMessage.beaconId = msg.senderId + interceptorCallback(msg) + } + _a = message.type + switch (_a) { + case beacon_types_1.BeaconMessageType.Error: + return [3, 1] + case beacon_types_1.BeaconMessageType.Acknowledge: + return [3, 2] + case beacon_types_1.BeaconMessageType.PermissionResponse: + return [3, 3] + case beacon_types_1.BeaconMessageType.OperationResponse: + return [3, 7] + case beacon_types_1.BeaconMessageType.SignPayloadResponse: + return [3, 8] + case beacon_types_1.BeaconMessageType.BroadcastResponse: + return [3, 9] + } + return [3, 10] + case 1: + { + response = { + type: message.type, + version: constants_1.BEACON_VERSION, + senderId: senderId, + id: message.id, + errorType: message.errorType + } + if ( + message.errorType === + beacon_types_1.BeaconErrorType.TRANSACTION_INVALID_ERROR && + message.errorData + ) { + errorData = message.errorData + if ( + Array.isArray(errorData) && + errorData.every(function (item) { + return Boolean(item.kind) && Boolean(item.id) + }) + ) { + response.errorData = message.errorData + } else { + logger.warn( + 'ErrorData provided is not in correct format. It needs to be an array of RPC errors. It will not be included in the message sent to the dApp' + ) + } + } + interceptorCallbackWrapper(response) + return [3, 11] + } + _c.label = 2 + case 2: + { + response = { + type: message.type, + version: constants_1.BEACON_VERSION, + senderId: senderId, + id: message.id + } + interceptorCallbackWrapper(response) + return [3, 11] + } + _c.label = 3 + case 3: + response = __assign( + { + senderId: senderId, + version: constants_1.BEACON_VERSION, + appMetadata: ownAppMetadata + }, + message + ) + publicKey = response.publicKey || response.pubkey || response.pubKey + return [4, (0, beacon_utils_1.getAddressFromPublicKey)(publicKey)] + case 4: + address = _c.sent() + return [4, appMetadataManager.getAppMetadata(request.senderId)] + case 5: + appMetadata = _c.sent() + if (!appMetadata) { + throw new Error('AppMetadata not found') + } + _b = {} + return [ + 4, + (0, get_account_identifier_1.getAccountIdentifier)( + address, + response.network + ) + ] + case 6: + permission = + ((_b.accountIdentifier = _c.sent()), + (_b.senderId = request.senderId), + (_b.appMetadata = appMetadata), + (_b.website = ''), + (_b.address = address), + (_b.publicKey = publicKey), + (_b.network = response.network), + (_b.scopes = response.scopes), + (_b.connectedAt = new Date().getTime()), + _b) + permissionManager.addPermission(permission).catch(console.error) + interceptorCallbackWrapper(response) + return [3, 11] + case 7: + { + response = __assign( + { senderId: senderId, version: constants_1.BEACON_VERSION }, + message + ) + interceptorCallbackWrapper(response) + } + return [3, 11] + case 8: + { + response = __assign( + { senderId: senderId, version: constants_1.BEACON_VERSION }, + message + ) + interceptorCallbackWrapper(response) + } + return [3, 11] + case 9: + { + response = __assign( + { senderId: senderId, version: constants_1.BEACON_VERSION }, + message + ) + interceptorCallbackWrapper(response) + } + return [3, 11] + case 10: + logger.log('intercept', 'Message not handled') + ;(0, assert_never_1.assertNever)(message) + _c.label = 11 + case 11: + return [2] + } + }) + }) + } + return OutgoingResponseInterceptor + })() + exports.OutgoingResponseInterceptor = OutgoingResponseInterceptor + }, + { + '../constants': 215, + '../utils/Logger': 244, + '../utils/assert-never': 245, + '../utils/get-account-identifier': 246, + '@airgap/beacon-types': 287, + '@airgap/beacon-utils': 302 + } + ], + 232: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.AccountManager = void 0 + var beacon_types_1 = require('@airgap/beacon-types') + var StorageManager_1 = require('./StorageManager') + var PermissionValidator_1 = require('./PermissionValidator') + var AccountManager = (function () { + function AccountManager(storage) { + this.storageManager = new StorageManager_1.StorageManager( + storage, + beacon_types_1.StorageKey.ACCOUNTS + ) + } + AccountManager.prototype.getAccounts = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.storageManager.getAll()] + }) + }) + } + AccountManager.prototype.getAccount = function (accountIdentifier) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + this.storageManager.getOne(function (account) { + return account.accountIdentifier === accountIdentifier + }) + ] + }) + }) + } + AccountManager.prototype.addAccount = function (accountInfo) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + this.storageManager.addOne(accountInfo, function (account) { + return account.accountIdentifier === accountInfo.accountIdentifier + }) + ] + }) + }) + } + AccountManager.prototype.removeAccount = function (accountIdentifier) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + this.storageManager.remove(function (account) { + return account.accountIdentifier === accountIdentifier + }) + ] + }) + }) + } + AccountManager.prototype.removeAccounts = function (accountIdentifiers) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + this.storageManager.remove(function (account) { + return accountIdentifiers.includes(account.accountIdentifier) + }) + ] + }) + }) + } + AccountManager.prototype.removeAllAccounts = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.storageManager.removeAll()] + }) + }) + } + AccountManager.prototype.hasPermission = function (message) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + PermissionValidator_1.PermissionValidator.hasPermission( + message, + this.getAccount.bind(this), + this.getAccounts.bind(this) + ) + ] + }) + }) + } + return AccountManager + })() + exports.AccountManager = AccountManager + }, + { './PermissionValidator': 236, './StorageManager': 237, '@airgap/beacon-types': 287 } + ], + 233: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.AppMetadataManager = void 0 + var beacon_types_1 = require('@airgap/beacon-types') + var StorageManager_1 = require('./StorageManager') + var AppMetadataManager = (function () { + function AppMetadataManager(storage) { + this.storageManager = new StorageManager_1.StorageManager( + storage, + beacon_types_1.StorageKey.APP_METADATA_LIST + ) + } + AppMetadataManager.prototype.getAppMetadataList = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.storageManager.getAll()] + }) + }) + } + AppMetadataManager.prototype.getAppMetadata = function (senderId) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + this.storageManager.getOne(function (appMetadata) { + return appMetadata.senderId === senderId + }) + ] + }) + }) + } + AppMetadataManager.prototype.addAppMetadata = function (appMetadata) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + this.storageManager.addOne(appMetadata, function (appMetadataElement) { + return appMetadataElement.senderId === appMetadata.senderId + }) + ] + }) + }) + } + AppMetadataManager.prototype.removeAppMetadata = function (senderId) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + this.storageManager.remove(function (appMetadata) { + return appMetadata.senderId === senderId + }) + ] + }) + }) + } + AppMetadataManager.prototype.removeAppMetadatas = function (senderIds) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + this.storageManager.remove(function (appMetadata) { + return senderIds.includes(appMetadata.senderId) + }) + ] + }) + }) + } + AppMetadataManager.prototype.removeAllAppMetadata = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.storageManager.removeAll()] + }) + }) + } + return AppMetadataManager + })() + exports.AppMetadataManager = AppMetadataManager + }, + { './StorageManager': 237, '@airgap/beacon-types': 287 } + ], + 234: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.PeerManager = void 0 + var StorageManager_1 = require('./StorageManager') + var PeerManager = (function () { + function PeerManager(storage, key) { + this.storageManager = new StorageManager_1.StorageManager(storage, key) + } + PeerManager.prototype.hasPeer = function (publicKey) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.getPeer(publicKey)] + case 1: + return [2, _a.sent() ? true : false] + } + }) + }) + } + PeerManager.prototype.getPeers = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.storageManager.getAll()] + }) + }) + } + PeerManager.prototype.getPeer = function (publicKey) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + this.storageManager.getOne(function (peer) { + return peer.publicKey === publicKey + }) + ] + }) + }) + } + PeerManager.prototype.addPeer = function (peerInfo) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + this.storageManager.addOne(peerInfo, function (peer) { + return peer.publicKey === peerInfo.publicKey + }) + ] + }) + }) + } + PeerManager.prototype.removePeer = function (publicKey) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + this.storageManager.remove(function (peer) { + return peer.publicKey === publicKey + }) + ] + }) + }) + } + PeerManager.prototype.removePeers = function (publicKeys) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + this.storageManager.remove(function (peer) { + return publicKeys.includes(peer.publicKey) + }) + ] + }) + }) + } + PeerManager.prototype.removeAllPeers = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.storageManager.removeAll()] + }) + }) + } + return PeerManager + })() + exports.PeerManager = PeerManager + }, + { './StorageManager': 237 } + ], + 235: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.PermissionManager = void 0 + var beacon_types_1 = require('@airgap/beacon-types') + var StorageManager_1 = require('./StorageManager') + var PermissionValidator_1 = require('./PermissionValidator') + var PermissionManager = (function () { + function PermissionManager(storage) { + this.storageManager = new StorageManager_1.StorageManager( + storage, + beacon_types_1.StorageKey.PERMISSION_LIST + ) + } + PermissionManager.prototype.getPermissions = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.storageManager.getAll()] + }) + }) + } + PermissionManager.prototype.getPermission = function (accountIdentifier) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + this.storageManager.getOne(function (permission) { + return permission.accountIdentifier === accountIdentifier + }) + ] + }) + }) + } + PermissionManager.prototype.addPermission = function (permissionInfo) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + this.storageManager.addOne(permissionInfo, function (permission) { + return permission.accountIdentifier === permissionInfo.accountIdentifier + }) + ] + }) + }) + } + PermissionManager.prototype.removePermission = function (accountIdentifier) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + this.storageManager.remove(function (permissionInfo) { + return permissionInfo.accountIdentifier === accountIdentifier + }) + ] + }) + }) + } + PermissionManager.prototype.removePermissions = function (accountIdentifiers) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + this.storageManager.remove(function (permission) { + return accountIdentifiers.includes(permission.accountIdentifier) + }) + ] + }) + }) + } + PermissionManager.prototype.removeAllPermissions = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.storageManager.removeAll()] + }) + }) + } + PermissionManager.prototype.hasPermission = function (message) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + PermissionValidator_1.PermissionValidator.hasPermission( + message, + this.getPermission.bind(this), + this.getPermissions.bind(this) + ) + ] + }) + }) + } + return PermissionManager + })() + exports.PermissionManager = PermissionManager + }, + { './PermissionValidator': 236, './StorageManager': 237, '@airgap/beacon-types': 287 } + ], + 236: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.PermissionValidator = void 0 + var beacon_types_1 = require('@airgap/beacon-types') + var get_account_identifier_1 = require('../utils/get-account-identifier') + var PermissionValidator = (function () { + function PermissionValidator() {} + PermissionValidator.hasPermission = function (message, getOne, getAll) { + return __awaiter(this, void 0, void 0, function () { + var _a, accountIdentifier, permission, permissions, filteredPermissions + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + _a = message.type + switch (_a) { + case beacon_types_1.BeaconMessageType.PermissionRequest: + return [3, 1] + case beacon_types_1.BeaconMessageType.BroadcastRequest: + return [3, 1] + case beacon_types_1.BeaconMessageType.OperationRequest: + return [3, 2] + case beacon_types_1.BeaconMessageType.SignPayloadRequest: + return [3, 5] + } + return [3, 7] + case 1: + { + return [2, true] + } + _b.label = 2 + case 2: + return [ + 4, + (0, get_account_identifier_1.getAccountIdentifier)( + message.sourceAddress, + message.network + ) + ] + case 3: + accountIdentifier = _b.sent() + return [4, getOne(accountIdentifier)] + case 4: + permission = _b.sent() + if (!permission) { + return [2, false] + } + return [ + 2, + permission.scopes.includes(beacon_types_1.PermissionScope.OPERATION_REQUEST) + ] + case 5: + return [4, getAll()] + case 6: + permissions = _b.sent() + filteredPermissions = permissions.filter(function (permission) { + return permission.address === message.sourceAddress + }) + if (filteredPermissions.length === 0) { + return [2, false] + } + return [ + 2, + filteredPermissions.some(function (permission) { + return permission.scopes.includes(beacon_types_1.PermissionScope.SIGN) + }) + ] + case 7: + throw new Error('Message not handled') + } + }) + }) + } + return PermissionValidator + })() + exports.PermissionValidator = PermissionValidator + }, + { '../utils/get-account-identifier': 246, '@airgap/beacon-types': 287 } + ], + 237: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.StorageManager = void 0 + function fixArrayType(array) { + return array + } + var StorageManager = (function () { + function StorageManager(storage, storageKey) { + this.storage = storage + this.storageKey = storageKey + } + StorageManager.prototype.getAll = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.storage.get(this.storageKey)] + }) + }) + } + StorageManager.prototype.getOne = function (predicate) { + return __awaiter(this, void 0, void 0, function () { + var entities + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.storage.get(this.storageKey)] + case 1: + entities = _a.sent() + return [2, fixArrayType(entities).find(predicate)] + } + }) + }) + } + StorageManager.prototype.addOne = function (element, predicate, overwrite) { + if (overwrite === void 0) { + overwrite = true + } + return __awaiter(this, void 0, void 0, function () { + var entities, i + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.storage.get(this.storageKey)] + case 1: + entities = _a.sent() + if (!fixArrayType(entities).some(predicate)) { + fixArrayType(entities).push(element) + } else if (overwrite) { + for (i = 0; i < entities.length; i++) { + if (predicate(fixArrayType(entities)[i])) { + entities[i] = element + } + } + } + return [2, this.storage.set(this.storageKey, entities)] + } + }) + }) + } + StorageManager.prototype.remove = function (predicate) { + return __awaiter(this, void 0, void 0, function () { + var entities, filteredEntities + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.storage.get(this.storageKey)] + case 1: + entities = _a.sent() + filteredEntities = fixArrayType(entities).filter(function (entity) { + return !predicate(entity) + }) + return [2, this.storage.set(this.storageKey, filteredEntities)] + } + }) + }) + } + StorageManager.prototype.removeAll = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.storage.delete(this.storageKey)] + }) + }) + } + return StorageManager + })() + exports.StorageManager = StorageManager + }, + {} + ], + 238: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.ChromeStorage = void 0 + var beacon_types_1 = require('@airgap/beacon-types') + var ChromeStorage = (function () { + function ChromeStorage() {} + ChromeStorage.isSupported = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + typeof window !== 'undefined' && + typeof chrome !== 'undefined' && + Boolean(chrome) && + Boolean(chrome.runtime) && + Boolean(chrome.runtime.id) + ] + }) + }) + } + ChromeStorage.prototype.get = function (key) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + new Promise(function (resolve) { + chrome.storage.local.get(null, function (storageContent) { + if (storageContent[key]) { + resolve(storageContent[key]) + } else { + if (typeof beacon_types_1.defaultValues[key] === 'object') { + resolve(JSON.parse(JSON.stringify(beacon_types_1.defaultValues[key]))) + } else { + resolve(beacon_types_1.defaultValues[key]) + } + } + }) + }) + ] + }) + }) + } + ChromeStorage.prototype.set = function (key, value) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + new Promise(function (resolve) { + var _a + chrome.storage.local.set(((_a = {}), (_a[key] = value), _a), function () { + resolve() + }) + }) + ] + }) + }) + } + ChromeStorage.prototype.delete = function (key) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + new Promise(function (resolve) { + var _a + chrome.storage.local.set(((_a = {}), (_a[key] = undefined), _a), function () { + resolve() + }) + }) + ] + }) + }) + } + return ChromeStorage + })() + exports.ChromeStorage = ChromeStorage + }, + { '@airgap/beacon-types': 287 } + ], + 239: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.LocalStorage = void 0 + var beacon_types_1 = require('@airgap/beacon-types') + var LocalStorage = (function () { + function LocalStorage(prefix) { + this.prefix = prefix + } + LocalStorage.isSupported = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + Promise.resolve( + Boolean(typeof window !== 'undefined') && Boolean(window.localStorage) + ) + ] + }) + }) + } + LocalStorage.prototype.get = function (key) { + return __awaiter(this, void 0, void 0, function () { + var value + return __generator(this, function (_a) { + value = localStorage.getItem(this.getPrefixedKey(key)) + if (!value) { + if (typeof beacon_types_1.defaultValues[key] === 'object') { + return [2, JSON.parse(JSON.stringify(beacon_types_1.defaultValues[key]))] + } else { + return [2, beacon_types_1.defaultValues[key]] + } + } else { + try { + return [2, JSON.parse(value)] + } catch (jsonParseError) { + return [2, value] + } + } + return [2] + }) + }) + } + LocalStorage.prototype.set = function (key, value) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + if (typeof value === 'string') { + return [2, localStorage.setItem(this.getPrefixedKey(key), value)] + } else { + return [ + 2, + localStorage.setItem(this.getPrefixedKey(key), JSON.stringify(value)) + ] + } + return [2] + }) + }) + } + LocalStorage.prototype.delete = function (key) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, Promise.resolve(localStorage.removeItem(this.getPrefixedKey(key)))] + }) + }) + } + LocalStorage.prototype.getPrefixedKey = function (key) { + return this.prefix ? this.prefix + '-' + key : key + } + return LocalStorage + })() + exports.LocalStorage = LocalStorage + }, + { '@airgap/beacon-types': 287 } + ], + 240: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getStorage = void 0 + var Logger_1 = require('../utils/Logger') + var __1 = require('..') + var logger = new Logger_1.Logger('STORAGE') + var getStorage = function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, __1.ChromeStorage.isSupported()] + case 1: + if (!_a.sent()) return [3, 2] + logger.log('getStorage', 'USING CHROME STORAGE') + return [2, new __1.ChromeStorage()] + case 2: + return [4, __1.LocalStorage.isSupported()] + case 3: + if (_a.sent()) { + logger.log('getStorage', 'USING LOCAL STORAGE') + return [2, new __1.LocalStorage()] + } else { + throw new Error('no storage type supported') + } + _a.label = 4 + case 4: + return [2] + } + }) + }) + } + exports.getStorage = getStorage + }, + { '..': 229, '../utils/Logger': 244 } + ], + 241: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.Transport = void 0 + var Logger_1 = require('../utils/Logger') + var beacon_types_1 = require('@airgap/beacon-types') + var logger = new Logger_1.Logger('Transport') + var Transport = (function () { + function Transport(name, client, peerManager) { + this.type = beacon_types_1.TransportType.POST_MESSAGE + this._isConnected = beacon_types_1.TransportStatus.NOT_CONNECTED + this.listeners = [] + this.name = name + this.client = client + this.peerManager = peerManager + } + Object.defineProperty(Transport.prototype, 'connectionStatus', { + get: function () { + return this._isConnected + }, + enumerable: false, + configurable: true + }) + Transport.isAvailable = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, Promise.resolve(false)] + }) + }) + } + Transport.prototype.connect = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + logger.log('connect') + this._isConnected = beacon_types_1.TransportStatus.CONNECTED + return [2] + }) + }) + } + Transport.prototype.disconnect = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + logger.log('disconnect') + this._isConnected = beacon_types_1.TransportStatus.NOT_CONNECTED + return [2] + }) + }) + } + Transport.prototype.send = function (message, peer) { + return __awaiter(this, void 0, void 0, function () { + var knownPeers, promises + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!peer) return [3, 1] + return [2, this.client.sendMessage(message, peer)] + case 1: + return [4, this.getPeers()] + case 2: + knownPeers = _a.sent() + promises = knownPeers.map(function (peerEl) { + return _this.client.sendMessage(message, peerEl) + }) + return [4, Promise.all(promises)] + case 3: + return [2, _a.sent()[0]] + } + }) + }) + } + Transport.prototype.addListener = function (listener) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + logger.debug('addListener', listener) + this.listeners.push(listener) + return [2] + }) + }) + } + Transport.prototype.removeListener = function (listener) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + logger.log('removeListener') + this.listeners = this.listeners.filter(function (element) { + return element !== listener + }) + return [2] + }) + }) + } + Transport.prototype.getPeers = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.peerManager.getPeers()] + }) + }) + } + Transport.prototype.addPeer = function (newPeer, _sendPairingResponse) { + if (_sendPairingResponse === void 0) { + _sendPairingResponse = true + } + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + logger.log('addPeer', 'adding peer', newPeer) + return [4, this.peerManager.addPeer(newPeer)] + case 1: + _a.sent() + return [4, this.listen(newPeer.publicKey)] + case 2: + _a.sent() + return [2] + } + }) + }) + } + Transport.prototype.removePeer = function (peerToBeRemoved) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + logger.log('removePeer', 'removing peer', peerToBeRemoved) + return [4, this.peerManager.removePeer(peerToBeRemoved.publicKey)] + case 1: + _a.sent() + if (!this.client) return [3, 3] + return [ + 4, + this.client.unsubscribeFromEncryptedMessage(peerToBeRemoved.publicKey) + ] + case 2: + _a.sent() + _a.label = 3 + case 3: + return [2] + } + }) + }) + } + Transport.prototype.removeAllPeers = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + logger.log('removeAllPeers') + return [4, this.peerManager.removeAllPeers()] + case 1: + _a.sent() + if (!this.client) return [3, 3] + return [4, this.client.unsubscribeFromEncryptedMessages()] + case 2: + _a.sent() + _a.label = 3 + case 3: + return [2] + } + }) + }) + } + Transport.prototype.notifyListeners = function (message, connectionInfo) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + if (this.listeners.length === 0) { + logger.warn('notifyListeners', '0 listeners notified!', this) + } else { + logger.log( + 'notifyListeners', + 'Notifying ' + this.listeners.length + ' listeners', + this + ) + } + this.listeners.forEach(function (listener) { + listener(message, connectionInfo) + }) + return [2] + }) + }) + } + return Transport + })() + exports.Transport = Transport + }, + { '../utils/Logger': 244, '@airgap/beacon-types': 287 } + ], + 242: [ + function (require, module, exports) { + ;(function (Buffer) { + ;(function () { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.CommunicationClient = void 0 + var libsodium_wrappers_1 = require('libsodium-wrappers') + var beacon_utils_1 = require('@airgap/beacon-utils') + var CommunicationClient = (function () { + function CommunicationClient(keyPair) { + this.keyPair = keyPair + } + CommunicationClient.prototype.getPublicKey = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, (0, beacon_utils_1.toHex)(this.keyPair.publicKey)] + }) + }) + } + CommunicationClient.prototype.getPublicKeyHash = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, (0, beacon_utils_1.getHexHash)(this.keyPair.publicKey)] + }) + }) + } + CommunicationClient.prototype.createCryptoBox = function ( + otherPublicKey, + selfPrivateKey + ) { + return __awaiter(this, void 0, void 0, function () { + var kxSelfPrivateKey, kxSelfPublicKey, kxOtherPublicKey + return __generator(this, function (_a) { + kxSelfPrivateKey = (0, + libsodium_wrappers_1.crypto_sign_ed25519_sk_to_curve25519)( + Buffer.from(selfPrivateKey) + ) + kxSelfPublicKey = (0, + libsodium_wrappers_1.crypto_sign_ed25519_pk_to_curve25519)( + Buffer.from(selfPrivateKey).slice(32, 64) + ) + kxOtherPublicKey = (0, + libsodium_wrappers_1.crypto_sign_ed25519_pk_to_curve25519)( + Buffer.from(otherPublicKey, 'hex') + ) + return [ + 2, + [ + Buffer.from(kxSelfPublicKey), + Buffer.from(kxSelfPrivateKey), + Buffer.from(kxOtherPublicKey) + ] + ] + }) + }) + } + CommunicationClient.prototype.createCryptoBoxServer = function ( + otherPublicKey, + selfPrivateKey + ) { + return __awaiter(this, void 0, void 0, function () { + var keys + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.createCryptoBox(otherPublicKey, selfPrivateKey)] + case 1: + keys = _a.sent() + return [ + 2, + libsodium_wrappers_1.crypto_kx_server_session_keys.apply(void 0, keys) + ] + } + }) + }) + } + CommunicationClient.prototype.createCryptoBoxClient = function ( + otherPublicKey, + selfPrivateKey + ) { + return __awaiter(this, void 0, void 0, function () { + var keys + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.createCryptoBox(otherPublicKey, selfPrivateKey)] + case 1: + keys = _a.sent() + return [ + 2, + libsodium_wrappers_1.crypto_kx_client_session_keys.apply(void 0, keys) + ] + } + }) + }) + } + CommunicationClient.prototype.encryptMessageAsymmetric = function ( + recipientPublicKey, + message + ) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + (0, beacon_utils_1.sealCryptobox)( + message, + Buffer.from(recipientPublicKey, 'hex') + ) + ] + }) + }) + } + return CommunicationClient + })() + exports.CommunicationClient = CommunicationClient + }.call(this)) + }.call(this, require('buffer').Buffer)) + }, + { '@airgap/beacon-utils': 302, buffer: 93, 'libsodium-wrappers': 153 } + ], + 243: [ + function (require, module, exports) { + ;(function (Buffer) { + ;(function () { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.MessageBasedClient = void 0 + var libsodium_wrappers_1 = require('libsodium-wrappers') + var constants_1 = require('../../constants') + var beacon_utils_1 = require('@airgap/beacon-utils') + var CommunicationClient_1 = require('./CommunicationClient') + var MessageBasedClient = (function (_super) { + __extends(MessageBasedClient, _super) + function MessageBasedClient(name, keyPair) { + var _this = _super.call(this, keyPair) || this + _this.name = name + _this.init().catch(console.error) + return _this + } + MessageBasedClient.prototype.start = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, libsodium_wrappers_1.ready] + case 1: + _a.sent() + return [2] + } + }) + }) + } + MessageBasedClient.prototype.getPairingRequestInfo = function () { + return __awaiter(this, void 0, void 0, function () { + var _a + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + _a = {} + return [4, (0, beacon_utils_1.generateGUID)()] + case 1: + ;(_a.id = _b.sent()), + (_a.type = 'postmessage-pairing-request'), + (_a.name = this.name), + (_a.version = constants_1.BEACON_VERSION) + return [4, this.getPublicKey()] + case 2: + return [2, ((_a.publicKey = _b.sent()), _a)] + } + }) + }) + } + MessageBasedClient.prototype.getPairingResponseInfo = function (request) { + return __awaiter(this, void 0, void 0, function () { + var _a + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + _a = { + id: request.id, + type: 'postmessage-pairing-response', + name: this.name, + version: constants_1.BEACON_VERSION + } + return [4, this.getPublicKey()] + case 1: + return [2, ((_a.publicKey = _b.sent()), _a)] + } + }) + }) + } + MessageBasedClient.prototype.unsubscribeFromEncryptedMessage = function ( + senderPublicKey + ) { + return __awaiter(this, void 0, void 0, function () { + var listener + return __generator(this, function (_a) { + listener = this.activeListeners.get(senderPublicKey) + if (!listener) { + return [2] + } + this.activeListeners.delete(senderPublicKey) + return [2] + }) + }) + } + MessageBasedClient.prototype.unsubscribeFromEncryptedMessages = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + this.activeListeners.clear() + return [2] + }) + }) + } + MessageBasedClient.prototype.decryptMessage = function (senderPublicKey, payload) { + return __awaiter(this, void 0, void 0, function () { + var sharedRx, hexPayload, decryptionError_1 + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [ + 4, + this.createCryptoBoxServer(senderPublicKey, this.keyPair.privateKey) + ] + case 1: + sharedRx = _a.sent().sharedRx + hexPayload = Buffer.from(payload, 'hex') + if ( + !( + hexPayload.length >= + libsodium_wrappers_1.crypto_secretbox_NONCEBYTES + + libsodium_wrappers_1.crypto_secretbox_MACBYTES + ) + ) + return [3, 5] + _a.label = 2 + case 2: + _a.trys.push([2, 4, , 5]) + return [ + 4, + (0, beacon_utils_1.decryptCryptoboxPayload)(hexPayload, sharedRx) + ] + case 3: + return [2, _a.sent()] + case 4: + decryptionError_1 = _a.sent() + return [3, 5] + case 5: + throw new Error('Could not decrypt message') + } + }) + }) + } + MessageBasedClient.prototype.encryptMessage = function ( + recipientPublicKey, + message + ) { + return __awaiter(this, void 0, void 0, function () { + var sharedTx + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [ + 4, + this.createCryptoBoxClient(recipientPublicKey, this.keyPair.privateKey) + ] + case 1: + sharedTx = _a.sent().sharedTx + return [2, (0, beacon_utils_1.encryptCryptoboxPayload)(message, sharedTx)] + } + }) + }) + } + return MessageBasedClient + })(CommunicationClient_1.CommunicationClient) + exports.MessageBasedClient = MessageBasedClient + }.call(this)) + }.call(this, require('buffer').Buffer)) + }, + { + '../../constants': 215, + './CommunicationClient': 242, + '@airgap/beacon-utils': 302, + buffer: 93, + 'libsodium-wrappers': 153 + } + ], + 244: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.Logger = void 0 + var debug_1 = require('../debug') + var Logger = (function () { + function Logger(service) { + this.name = service + } + Logger.prototype.debug = function (method) { + var args = [] + for (var _i = 1; _i < arguments.length; _i++) { + args[_i - 1] = arguments[_i] + } + this._log('debug', method, args) + } + Logger.prototype.log = function (method) { + var args = [] + for (var _i = 1; _i < arguments.length; _i++) { + args[_i - 1] = arguments[_i] + } + this._log('log', method, args) + } + Logger.prototype.warn = function (method) { + var args = [] + for (var _i = 1; _i < arguments.length; _i++) { + args[_i - 1] = arguments[_i] + } + this._log('warn', method, args) + } + Logger.prototype.error = function (method) { + var args = [] + for (var _i = 1; _i < arguments.length; _i++) { + args[_i - 1] = arguments[_i] + } + this._log('error', method, args) + } + Logger.prototype._log = function (type, method, args) { + if (args === void 0) { + args = [] + } + if (!(0, debug_1.getDebugEnabled)()) { + return + } + var groupText = + '[BEACON] ' + new Date().toISOString() + ' [' + this.name + '](' + method + ')' + var data = args + if (args[0] && typeof args[0] === 'string') { + groupText += ' ' + args[0] + data = args.slice(1) + } + switch (type) { + case 'error': + console.group(groupText) + console.error.apply(console, data) + break + case 'warn': + console.group(groupText) + console.warn.apply(console, data) + break + case 'debug': + console.groupCollapsed(groupText) + console.debug.apply(console, data) + break + default: + console.group(groupText) + console.log.apply(console, data) + } + console.groupEnd() + } + return Logger + })() + exports.Logger = Logger + }, + { '../debug': 216 } + ], + 245: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.assertNever = void 0 + function assertNever(empty) { + return empty + } + exports.assertNever = assertNever + }, + {} + ], + 246: [ + function (require, module, exports) { + ;(function (Buffer) { + ;(function () { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getAccountIdentifier = void 0 + var libsodium_wrappers_1 = require('libsodium-wrappers') + var bs58check = require('bs58check') + var getAccountIdentifier = function (address, network) { + return __awaiter(void 0, void 0, void 0, function () { + var data, buffer + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + data = [address, network.type] + if (network.name) { + data.push('name:' + network.name) + } + if (network.rpcUrl) { + data.push('rpc:' + network.rpcUrl) + } + return [4, libsodium_wrappers_1.ready] + case 1: + _a.sent() + buffer = Buffer.from( + (0, libsodium_wrappers_1.crypto_generichash)(10, data.join('-')) + ) + return [2, bs58check.encode(buffer)] + } + }) + }) + } + exports.getAccountIdentifier = getAccountIdentifier + }.call(this)) + }.call(this, require('buffer').Buffer)) + }, + { bs58check: 96, buffer: 93, 'libsodium-wrappers': 153 } + ], + 247: [ + function (require, module, exports) { + ;(function (Buffer) { + ;(function () { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getSenderId = void 0 + var libsodium_wrappers_1 = require('libsodium-wrappers') + var bs58check = require('bs58check') + var getSenderId = function (publicKey) { + return __awaiter(void 0, void 0, void 0, function () { + var buffer + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, libsodium_wrappers_1.ready] + case 1: + _a.sent() + buffer = Buffer.from( + (0, libsodium_wrappers_1.crypto_generichash)( + 5, + Buffer.from(publicKey, 'hex') + ) + ) + return [2, bs58check.encode(buffer)] + } + }) + }) + } + exports.getSenderId = getSenderId + }.call(this)) + }.call(this, require('buffer').Buffer)) + }, + { bs58check: 96, buffer: 93, 'libsodium-wrappers': 153 } + ], + 248: [ + function (require, module, exports) { + 'use strict' + var _a + Object.defineProperty(exports, '__esModule', { value: true }) + exports.messageEvents = void 0 + var events_1 = require('./events') + var beacon_types_1 = require('@airgap/beacon-types') + exports.messageEvents = + ((_a = {}), + (_a[beacon_types_1.BeaconMessageType.PermissionRequest] = { + sent: events_1.BeaconEvent.PERMISSION_REQUEST_SENT, + success: events_1.BeaconEvent.PERMISSION_REQUEST_SUCCESS, + error: events_1.BeaconEvent.PERMISSION_REQUEST_ERROR + }), + (_a[beacon_types_1.BeaconMessageType.PermissionResponse] = { + sent: events_1.BeaconEvent.UNKNOWN, + success: events_1.BeaconEvent.UNKNOWN, + error: events_1.BeaconEvent.UNKNOWN + }), + (_a[beacon_types_1.BeaconMessageType.OperationRequest] = { + sent: events_1.BeaconEvent.OPERATION_REQUEST_SENT, + success: events_1.BeaconEvent.OPERATION_REQUEST_SUCCESS, + error: events_1.BeaconEvent.OPERATION_REQUEST_ERROR + }), + (_a[beacon_types_1.BeaconMessageType.OperationResponse] = { + sent: events_1.BeaconEvent.UNKNOWN, + success: events_1.BeaconEvent.UNKNOWN, + error: events_1.BeaconEvent.UNKNOWN + }), + (_a[beacon_types_1.BeaconMessageType.SignPayloadRequest] = { + sent: events_1.BeaconEvent.SIGN_REQUEST_SENT, + success: events_1.BeaconEvent.SIGN_REQUEST_SUCCESS, + error: events_1.BeaconEvent.SIGN_REQUEST_ERROR + }), + (_a[beacon_types_1.BeaconMessageType.SignPayloadResponse] = { + sent: events_1.BeaconEvent.UNKNOWN, + success: events_1.BeaconEvent.UNKNOWN, + error: events_1.BeaconEvent.UNKNOWN + }), + (_a[beacon_types_1.BeaconMessageType.BroadcastRequest] = { + sent: events_1.BeaconEvent.BROADCAST_REQUEST_SENT, + success: events_1.BeaconEvent.BROADCAST_REQUEST_SUCCESS, + error: events_1.BeaconEvent.BROADCAST_REQUEST_ERROR + }), + (_a[beacon_types_1.BeaconMessageType.BroadcastResponse] = { + sent: events_1.BeaconEvent.UNKNOWN, + success: events_1.BeaconEvent.UNKNOWN, + error: events_1.BeaconEvent.UNKNOWN + }), + (_a[beacon_types_1.BeaconMessageType.Acknowledge] = { + sent: events_1.BeaconEvent.UNKNOWN, + success: events_1.BeaconEvent.UNKNOWN, + error: events_1.BeaconEvent.UNKNOWN + }), + (_a[beacon_types_1.BeaconMessageType.Disconnect] = { + sent: events_1.BeaconEvent.UNKNOWN, + success: events_1.BeaconEvent.UNKNOWN, + error: events_1.BeaconEvent.UNKNOWN + }), + (_a[beacon_types_1.BeaconMessageType.Error] = { + sent: events_1.BeaconEvent.UNKNOWN, + success: events_1.BeaconEvent.UNKNOWN, + error: events_1.BeaconEvent.UNKNOWN + }), + _a) + }, + { './events': 251, '@airgap/beacon-types': 287 } + ], + 249: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getColorMode = exports.setColorMode = void 0 + var beacon_types_1 = require('@airgap/beacon-types') + var colorMode = beacon_types_1.ColorMode.LIGHT + var setColorMode = function (mode) { + colorMode = mode + } + exports.setColorMode = setColorMode + var getColorMode = function () { + return colorMode + } + exports.getColorMode = getColorMode + }, + { '@airgap/beacon-types': 287 } + ], + 250: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + var __assign = + (this && this.__assign) || + function () { + __assign = + Object.assign || + function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i] + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p] + } + return t + } + return __assign.apply(this, arguments) + } + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + var __spreadArray = + (this && this.__spreadArray) || + function (to, from, pack) { + if (pack || arguments.length === 2) + for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i) + ar[i] = from[i] + } + } + return to.concat(ar || Array.prototype.slice.call(from)) + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.DAppClient = void 0 + var events_1 = require('../events') + var beacon_types_1 = require('@airgap/beacon-types') + var beacon_core_1 = require('@airgap/beacon-core') + var beacon_utils_1 = require('@airgap/beacon-utils') + var beacon_message_events_1 = require('../beacon-message-events') + var tezblock_blockexplorer_1 = require('../utils/tezblock-blockexplorer') + var colorMode_1 = require('../colorMode') + var wallet_lists_1 = require('../ui/alert/wallet-lists') + var beacon_dapp_1 = require('@airgap/beacon-dapp') + var DappPostMessageTransport_1 = require('../transports/DappPostMessageTransport') + var DappP2PTransport_1 = require('../transports/DappP2PTransport') + var beacon_transport_postmessage_1 = require('@airgap/beacon-transport-postmessage') + var Toast_1 = require('../ui/toast/Toast') + var logger = new beacon_core_1.Logger('DAppClient') + var DAppClient = (function (_super) { + __extends(DAppClient, _super) + function DAppClient(config) { + var _a, _b, _c, _d + var _this = + _super.call( + this, + __assign( + { + storage: + config && config.storage ? config.storage : new beacon_core_1.LocalStorage() + }, + config + ) + ) || this + _this.events = new beacon_dapp_1.BeaconEventHandler() + _this.openRequests = new Map() + _this._activeAccount = new beacon_utils_1.ExposedPromise() + _this._activePeer = new beacon_utils_1.ExposedPromise() + _this.events = new beacon_dapp_1.BeaconEventHandler( + config.eventHandlers, + (_a = config.disableDefaultEvents) !== null && _a !== void 0 ? _a : false + ) + _this.blockExplorer = + (_b = config.blockExplorer) !== null && _b !== void 0 + ? _b + : new tezblock_blockexplorer_1.TezblockBlockExplorer() + _this.preferredNetwork = + (_c = config.preferredNetwork) !== null && _c !== void 0 + ? _c + : beacon_types_1.NetworkType.MAINNET + ;(0, colorMode_1.setColorMode)( + (_d = config.colorMode) !== null && _d !== void 0 + ? _d + : beacon_types_1.ColorMode.LIGHT + ) + _this.disclaimerText = config.disclaimerText + _this.appMetadataManager = new beacon_core_1.AppMetadataManager(_this.storage) + _this.activeAccountLoaded = _this.storage + .get(beacon_types_1.StorageKey.ACTIVE_ACCOUNT) + .then(function (activeAccountIdentifier) { + return __awaiter(_this, void 0, void 0, function () { + var _a + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + if (!activeAccountIdentifier) return [3, 3] + _a = this.setActiveAccount + return [4, this.accountManager.getAccount(activeAccountIdentifier)] + case 1: + return [4, _a.apply(this, [_b.sent()])] + case 2: + _b.sent() + return [3, 5] + case 3: + return [4, this.setActiveAccount(undefined)] + case 4: + _b.sent() + _b.label = 5 + case 5: + return [2] + } + }) + }) + }) + .catch(function (storageError) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.setActiveAccount(undefined)] + case 1: + _a.sent() + console.error(storageError) + return [2] + } + }) + }) + }) + _this.handleResponse = function (message, connectionInfo) { + return __awaiter(_this, void 0, void 0, function () { + var openRequest, _a, _b, _c, relevantTransport, _d, _e, peers, peer + var _f + var _g + return __generator(this, function (_h) { + switch (_h.label) { + case 0: + openRequest = this.openRequests.get(message.id) + logger.log('handleResponse', 'Received message', message, connectionInfo) + if ( + !( + openRequest && + message.type === beacon_types_1.BeaconMessageType.Acknowledge + ) + ) + return [3, 2] + logger.log('acknowledge message received for ' + message.id) + console.timeLog(message.id, 'acknowledge') + _b = (_a = this.events).emit + _c = [events_1.BeaconEvent.ACKNOWLEDGE_RECEIVED] + _f = { message: message, extraInfo: {} } + return [4, this.getWalletInfo()] + case 1: + _b.apply(_a, _c.concat([((_f.walletInfo = _h.sent()), _f)])).catch( + console.error + ) + return [3, 18] + case 2: + if (!openRequest) return [3, 5] + if ( + !( + message.type === beacon_types_1.BeaconMessageType.PermissionResponse && + message.appMetadata + ) + ) + return [3, 4] + return [4, this.appMetadataManager.addAppMetadata(message.appMetadata)] + case 3: + _h.sent() + _h.label = 4 + case 4: + console.timeLog(message.id, 'response') + console.timeEnd(message.id) + if ( + message.type === beacon_types_1.BeaconMessageType.Error || + message.errorType + ) { + openRequest.reject(message) + } else { + openRequest.resolve({ message: message, connectionInfo: connectionInfo }) + } + this.openRequests.delete(message.id) + return [3, 18] + case 5: + if (!(message.type === beacon_types_1.BeaconMessageType.Disconnect)) + return [3, 17] + if (!(connectionInfo.origin === beacon_types_1.Origin.P2P)) return [3, 6] + _d = this.p2pTransport + return [3, 10] + case 6: + if (!((_g = this.postMessageTransport) !== null && _g !== void 0)) + return [3, 7] + _e = _g + return [3, 9] + case 7: + return [4, this.transport] + case 8: + _e = _h.sent() + _h.label = 9 + case 9: + _d = _e + _h.label = 10 + case 10: + relevantTransport = _d + if (!relevantTransport) return [3, 16] + return [4, relevantTransport.getPeers()] + case 11: + peers = _h.sent() + peer = peers.find(function (peerEl) { + return peerEl.senderId === message.senderId + }) + if (!peer) return [3, 15] + return [4, relevantTransport.removePeer(peer)] + case 12: + _h.sent() + return [4, this.removeAccountsForPeers([peer])] + case 13: + _h.sent() + return [4, this.events.emit(events_1.BeaconEvent.CHANNEL_CLOSED)] + case 14: + _h.sent() + return [3, 16] + case 15: + logger.error( + 'handleDisconnect', + 'cannot find peer for sender ID', + message.senderId + ) + _h.label = 16 + case 16: + return [3, 18] + case 17: + logger.error('handleResponse', 'no request found for id ', message.id) + _h.label = 18 + case 18: + return [2] + } + }) + }) + } + return _this + } + DAppClient.prototype.initInternalTransports = function () { + return __awaiter(this, void 0, void 0, function () { + var keyPair + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.keyPair] + case 1: + keyPair = _a.sent() + if (this.postMessageTransport || this.p2pTransport) { + return [2] + } + this.postMessageTransport = + new DappPostMessageTransport_1.DappPostMessageTransport( + this.name, + keyPair, + this.storage + ) + return [4, this.addListener(this.postMessageTransport)] + case 2: + _a.sent() + this.p2pTransport = new DappP2PTransport_1.DappP2PTransport( + this.name, + keyPair, + this.storage, + this.matrixNodes, + this.iconUrl, + this.appUrl + ) + return [4, this.addListener(this.p2pTransport)] + case 3: + _a.sent() + return [2] + } + }) + }) + } + DAppClient.prototype.init = function (transport) { + return __awaiter(this, void 0, void 0, function () { + var _a + var _this = this + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + if (this._initPromise) { + return [2, this._initPromise] + } + _b.label = 1 + case 1: + _b.trys.push([1, 3, , 4]) + return [4, this.activeAccountLoaded] + case 2: + _b.sent() + return [3, 4] + case 3: + _a = _b.sent() + return [3, 4] + case 4: + this._initPromise = new Promise(function (resolve) { + return __awaiter(_this, void 0, void 0, function () { + var _a, + _b, + _c, + _d, + _e, + activeAccount, + stopListening_1, + origin_1, + _f, + _g, + p2pTransport_1, + postMessageTransport_1 + var _this = this + return __generator(this, function (_h) { + switch (_h.label) { + case 0: + if (!transport) return [3, 3] + return [4, this.addListener(transport)] + case 1: + _h.sent() + _a = resolve + return [4, _super.prototype.init.call(this, transport)] + case 2: + _a.apply(void 0, [_h.sent()]) + return [3, 16] + case 3: + if (!this._transport.isSettled()) return [3, 8] + return [4, this.transport] + case 4: + return [4, _h.sent().connect()] + case 5: + _h.sent() + _b = resolve + _d = (_c = _super.prototype.init).call + _e = [this] + return [4, this.transport] + case 6: + return [4, _d.apply(_c, _e.concat([_h.sent()]))] + case 7: + _b.apply(void 0, [_h.sent()]) + return [3, 16] + case 8: + return [4, this.getActiveAccount()] + case 9: + activeAccount = _h.sent() + stopListening_1 = function () { + if (_this.postMessageTransport) { + _this.postMessageTransport + .stopListeningForNewPeers() + .catch(console.error) + } + if (_this.p2pTransport) { + _this.p2pTransport + .stopListeningForNewPeers() + .catch(console.error) + } + } + return [4, this.initInternalTransports()] + case 10: + _h.sent() + if (!this.postMessageTransport || !this.p2pTransport) { + return [2] + } + this.postMessageTransport.connect().then().catch(console.error) + if (!(activeAccount && activeAccount.origin)) return [3, 15] + origin_1 = activeAccount.origin.type + if (!(origin_1 === beacon_types_1.Origin.EXTENSION)) return [3, 12] + _f = resolve + return [ + 4, + _super.prototype.init.call(this, this.postMessageTransport) + ] + case 11: + _f.apply(void 0, [_h.sent()]) + return [3, 14] + case 12: + if (!(origin_1 === beacon_types_1.Origin.P2P)) return [3, 14] + _g = resolve + return [4, _super.prototype.init.call(this, this.p2pTransport)] + case 13: + _g.apply(void 0, [_h.sent()]) + _h.label = 14 + case 14: + return [3, 16] + case 15: + p2pTransport_1 = this.p2pTransport + postMessageTransport_1 = this.postMessageTransport + postMessageTransport_1 + .listenForNewPeer(function (peer) { + logger.log('init', 'postmessage transport peer connected', peer) + _this.events + .emit(events_1.BeaconEvent.PAIR_SUCCESS, peer) + .catch(function (emitError) { + return console.warn(emitError) + }) + _this.setActivePeer(peer).catch(console.error) + _this + .setTransport(_this.postMessageTransport) + .catch(console.error) + stopListening_1() + resolve(beacon_types_1.TransportType.POST_MESSAGE) + }) + .catch(console.error) + p2pTransport_1 + .listenForNewPeer(function (peer) { + logger.log('init', 'p2p transport peer connected', peer) + _this.events + .emit(events_1.BeaconEvent.PAIR_SUCCESS, peer) + .catch(function (emitError) { + return console.warn(emitError) + }) + _this.setActivePeer(peer).catch(console.error) + _this.setTransport(_this.p2pTransport).catch(console.error) + stopListening_1() + resolve(beacon_types_1.TransportType.P2P) + }) + .catch(console.error) + beacon_transport_postmessage_1.PostMessageTransport.getAvailableExtensions() + .then(function () { + return __awaiter(_this, void 0, void 0, function () { + var _this = this + return __generator(this, function (_a) { + this.events + .emit(events_1.BeaconEvent.PAIR_INIT, { + p2pPeerInfo: function () { + p2pTransport_1.connect().then().catch(console.error) + return p2pTransport_1.getPairingRequestInfo() + }, + postmessagePeerInfo: function () { + return postMessageTransport_1.getPairingRequestInfo() + }, + preferredNetwork: this.preferredNetwork, + abortedHandler: function () { + _this._initPromise = undefined + }, + disclaimerText: this.disclaimerText + }) + .catch(function (emitError) { + return console.warn(emitError) + }) + return [2] + }) + }) + }) + .catch(function (error) { + _this._initPromise = undefined + console.error(error) + }) + _h.label = 16 + case 16: + return [2] + } + }) + }) + }) + return [2, this._initPromise] + } + }) + }) + } + DAppClient.prototype.getActiveAccount = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this._activeAccount.promise] + }) + }) + } + DAppClient.prototype.setActiveAccount = function (account) { + return __awaiter(this, void 0, void 0, function () { + var origin_2, peer + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (this._activeAccount.isSettled()) { + this._activeAccount = beacon_utils_1.ExposedPromise.resolve(account) + } else { + this._activeAccount.resolve(account) + } + if (!account) return [3, 8] + origin_2 = account.origin.type + return [4, this.initInternalTransports()] + case 1: + _a.sent() + if (!(origin_2 === beacon_types_1.Origin.EXTENSION)) return [3, 3] + return [4, this.setTransport(this.postMessageTransport)] + case 2: + _a.sent() + return [3, 5] + case 3: + if (!(origin_2 === beacon_types_1.Origin.P2P)) return [3, 5] + return [4, this.setTransport(this.p2pTransport)] + case 4: + _a.sent() + _a.label = 5 + case 5: + return [4, this.getPeer(account)] + case 6: + peer = _a.sent() + return [4, this.setActivePeer(peer)] + case 7: + _a.sent() + return [3, 11] + case 8: + return [4, this.setActivePeer(undefined)] + case 9: + _a.sent() + return [4, this.setTransport(undefined)] + case 10: + _a.sent() + _a.label = 11 + case 11: + return [ + 4, + this.storage.set( + beacon_types_1.StorageKey.ACTIVE_ACCOUNT, + account ? account.accountIdentifier : undefined + ) + ] + case 12: + _a.sent() + return [4, this.events.emit(events_1.BeaconEvent.ACTIVE_ACCOUNT_SET, account)] + case 13: + _a.sent() + return [2] + } + }) + }) + } + DAppClient.prototype.clearActiveAccount = function () { + return this.setActiveAccount() + } + DAppClient.prototype.setColorMode = function (colorMode) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, (0, colorMode_1.setColorMode)(colorMode)] + }) + }) + } + DAppClient.prototype.getColorMode = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, (0, colorMode_1.getColorMode)()] + }) + }) + } + DAppClient.prototype.getAppMetadata = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.getOwnAppMetadata()] + }) + }) + } + DAppClient.prototype.showPrepare = function () { + return __awaiter(this, void 0, void 0, function () { + var walletInfo + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [ + 4, + (function () { + return __awaiter(_this, void 0, void 0, function () { + var _a + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + _b.trys.push([0, 2, , 3]) + return [4, this.getWalletInfo()] + case 1: + return [2, _b.sent()] + case 2: + _a = _b.sent() + return [2, undefined] + case 3: + return [2] + } + }) + }) + })() + ] + case 1: + walletInfo = _a.sent() + return [ + 4, + this.events.emit(events_1.BeaconEvent.SHOW_PREPARE, { + walletInfo: walletInfo + }) + ] + case 2: + _a.sent() + return [2] + } + }) + }) + } + DAppClient.prototype.hideUI = function (elements) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.events.emit(events_1.BeaconEvent.HIDE_UI, elements)] + case 1: + _a.sent() + return [2] + } + }) + }) + } + DAppClient.prototype.removeAccount = function (accountIdentifier) { + return __awaiter(this, void 0, void 0, function () { + var removeAccountResult, activeAccount + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + removeAccountResult = _super.prototype.removeAccount.call( + this, + accountIdentifier + ) + return [4, this.getActiveAccount()] + case 1: + activeAccount = _a.sent() + if (!(activeAccount && activeAccount.accountIdentifier === accountIdentifier)) + return [3, 3] + return [4, this.setActiveAccount(undefined)] + case 2: + _a.sent() + _a.label = 3 + case 3: + return [2, removeAccountResult] + } + }) + }) + } + DAppClient.prototype.removeAllAccounts = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, _super.prototype.removeAllAccounts.call(this)] + case 1: + _a.sent() + return [4, this.setActiveAccount(undefined)] + case 2: + _a.sent() + return [2] + } + }) + }) + } + DAppClient.prototype.removePeer = function (peer, sendDisconnectToPeer) { + if (sendDisconnectToPeer === void 0) { + sendDisconnectToPeer = false + } + return __awaiter(this, void 0, void 0, function () { + var transport, removePeerResult + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.transport] + case 1: + transport = _a.sent() + removePeerResult = transport.removePeer(peer) + return [4, this.removeAccountsForPeers([peer])] + case 2: + _a.sent() + if (!sendDisconnectToPeer) return [3, 4] + return [4, this.sendDisconnectToPeer(peer, transport)] + case 3: + _a.sent() + _a.label = 4 + case 4: + return [2, removePeerResult] + } + }) + }) + } + DAppClient.prototype.removeAllPeers = function (sendDisconnectToPeers) { + if (sendDisconnectToPeers === void 0) { + sendDisconnectToPeers = false + } + return __awaiter(this, void 0, void 0, function () { + var transport, peers, removePeerResult, disconnectPromises + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.transport] + case 1: + transport = _a.sent() + return [4, transport.getPeers()] + case 2: + peers = _a.sent() + removePeerResult = transport.removeAllPeers() + return [4, this.removeAccountsForPeers(peers)] + case 3: + _a.sent() + if (!sendDisconnectToPeers) return [3, 5] + disconnectPromises = peers.map(function (peer) { + return _this.sendDisconnectToPeer(peer, transport) + }) + return [4, Promise.all(disconnectPromises)] + case 4: + _a.sent() + _a.label = 5 + case 5: + return [2, removePeerResult] + } + }) + }) + } + DAppClient.prototype.subscribeToEvent = function (internalEvent, eventCallback) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.events.on(internalEvent, eventCallback)] + case 1: + _a.sent() + return [2] + } + }) + }) + } + DAppClient.prototype.checkPermissions = function (type) { + return __awaiter(this, void 0, void 0, function () { + var activeAccount, permissions + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (type === beacon_types_1.BeaconMessageType.PermissionRequest) { + return [2, true] + } + return [4, this.getActiveAccount()] + case 1: + activeAccount = _a.sent() + if (!!activeAccount) return [3, 3] + return [4, this.sendInternalError('No active account set!')] + case 2: + throw _a.sent() + case 3: + permissions = activeAccount.scopes + switch (type) { + case beacon_types_1.BeaconMessageType.OperationRequest: + return [ + 2, + permissions.includes(beacon_types_1.PermissionScope.OPERATION_REQUEST) + ] + case beacon_types_1.BeaconMessageType.SignPayloadRequest: + return [2, permissions.includes(beacon_types_1.PermissionScope.SIGN)] + case beacon_types_1.BeaconMessageType.BroadcastRequest: + return [2, true] + default: + return [2, false] + } + return [2] + } + }) + }) + } + DAppClient.prototype.requestPermissions = function (input) { + return __awaiter(this, void 0, void 0, function () { + var request, + _a, + message, + connectionInfo, + publicKey, + address, + accountInfo, + output, + _b, + _c + var _d, _e, _f + var _this = this + return __generator(this, function (_g) { + switch (_g.label) { + case 0: + _d = {} + return [4, this.getOwnAppMetadata()] + case 1: + request = + ((_d.appMetadata = _g.sent()), + (_d.type = beacon_types_1.BeaconMessageType.PermissionRequest), + (_d.network = + input && input.network + ? input.network + : { type: beacon_types_1.NetworkType.MAINNET }), + (_d.scopes = + input && input.scopes + ? input.scopes + : [ + beacon_types_1.PermissionScope.OPERATION_REQUEST, + beacon_types_1.PermissionScope.SIGN + ]), + _d) + return [ + 4, + this.makeRequest(request).catch(function (requestError) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.handleRequestError(request, requestError)] + case 1: + throw _a.sent() + } + }) + }) + }) + ] + case 2: + ;(_a = _g.sent()), + (message = _a.message), + (connectionInfo = _a.connectionInfo) + publicKey = message.publicKey || message.pubkey || message.pubKey + return [4, (0, beacon_utils_1.getAddressFromPublicKey)(publicKey)] + case 3: + address = _g.sent() + _e = {} + return [4, (0, beacon_core_1.getAccountIdentifier)(address, message.network)] + case 4: + accountInfo = + ((_e.accountIdentifier = _g.sent()), + (_e.senderId = message.senderId), + (_e.origin = { type: connectionInfo.origin, id: connectionInfo.id }), + (_e.address = address), + (_e.publicKey = publicKey), + (_e.network = message.network), + (_e.scopes = message.scopes), + (_e.threshold = message.threshold), + (_e.connectedAt = new Date().getTime()), + _e) + return [4, this.accountManager.addAccount(accountInfo)] + case 5: + _g.sent() + return [4, this.setActiveAccount(accountInfo)] + case 6: + _g.sent() + output = __assign(__assign({}, message), { + address: address, + accountInfo: accountInfo + }) + _b = this.notifySuccess + _c = [request] + _f = { + account: accountInfo, + output: output, + blockExplorer: this.blockExplorer, + connectionContext: connectionInfo + } + return [4, this.getWalletInfo()] + case 7: + return [4, _b.apply(this, _c.concat([((_f.walletInfo = _g.sent()), _f)]))] + case 8: + _g.sent() + return [2, output] + } + }) + }) + } + DAppClient.prototype.requestSignPayload = function (input) { + return __awaiter(this, void 0, void 0, function () { + var activeAccount, + payload, + signingType, + request, + _a, + message, + connectionInfo, + _b, + _c + var _d + var _this = this + return __generator(this, function (_e) { + switch (_e.label) { + case 0: + if (!!input.payload) return [3, 2] + return [4, this.sendInternalError('Payload must be provided')] + case 1: + throw _e.sent() + case 2: + return [4, this.getActiveAccount()] + case 3: + activeAccount = _e.sent() + if (!!activeAccount) return [3, 5] + return [4, this.sendInternalError('No active account!')] + case 4: + throw _e.sent() + case 5: + payload = input.payload + if (typeof payload !== 'string') { + throw new Error('Payload must be a string') + } + signingType = (function () { + switch (input.signingType) { + case beacon_types_1.SigningType.OPERATION: + if (!payload.startsWith('03')) { + throw new Error( + 'When using signing type "OPERATION", the payload must start with prefix "03"' + ) + } + return beacon_types_1.SigningType.OPERATION + case beacon_types_1.SigningType.MICHELINE: + if (!payload.startsWith('05')) { + throw new Error( + 'When using signing type "MICHELINE", the payload must start with prefix "05"' + ) + } + return beacon_types_1.SigningType.MICHELINE + case beacon_types_1.SigningType.RAW: + default: + return beacon_types_1.SigningType.RAW + } + })() + request = { + type: beacon_types_1.BeaconMessageType.SignPayloadRequest, + signingType: signingType, + payload: payload, + sourceAddress: input.sourceAddress || activeAccount.address + } + return [ + 4, + this.makeRequest(request).catch(function (requestError) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.handleRequestError(request, requestError)] + case 1: + throw _a.sent() + } + }) + }) + }) + ] + case 6: + ;(_a = _e.sent()), + (message = _a.message), + (connectionInfo = _a.connectionInfo) + _b = this.notifySuccess + _c = [request] + _d = { + account: activeAccount, + output: message, + connectionContext: connectionInfo + } + return [4, this.getWalletInfo()] + case 7: + return [4, _b.apply(this, _c.concat([((_d.walletInfo = _e.sent()), _d)]))] + case 8: + _e.sent() + return [2, message] + } + }) + }) + } + DAppClient.prototype.requestOperation = function (input) { + return __awaiter(this, void 0, void 0, function () { + var activeAccount, request, _a, message, connectionInfo, _b, _c + var _d + var _this = this + return __generator(this, function (_e) { + switch (_e.label) { + case 0: + if (!!input.operationDetails) return [3, 2] + return [4, this.sendInternalError('Operation details must be provided')] + case 1: + throw _e.sent() + case 2: + return [4, this.getActiveAccount()] + case 3: + activeAccount = _e.sent() + if (!!activeAccount) return [3, 5] + return [4, this.sendInternalError('No active account!')] + case 4: + throw _e.sent() + case 5: + request = { + type: beacon_types_1.BeaconMessageType.OperationRequest, + network: activeAccount.network || { + type: beacon_types_1.NetworkType.MAINNET + }, + operationDetails: input.operationDetails, + sourceAddress: activeAccount.address || '' + } + return [ + 4, + this.makeRequest(request).catch(function (requestError) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.handleRequestError(request, requestError)] + case 1: + throw _a.sent() + } + }) + }) + }) + ] + case 6: + ;(_a = _e.sent()), + (message = _a.message), + (connectionInfo = _a.connectionInfo) + _b = this.notifySuccess + _c = [request] + _d = { + account: activeAccount, + output: message, + blockExplorer: this.blockExplorer, + connectionContext: connectionInfo + } + return [4, this.getWalletInfo()] + case 7: + return [4, _b.apply(this, _c.concat([((_d.walletInfo = _e.sent()), _d)]))] + case 8: + _e.sent() + return [2, message] + } + }) + }) + } + DAppClient.prototype.requestBroadcast = function (input) { + return __awaiter(this, void 0, void 0, function () { + var network, request, _a, message, connectionInfo, _b, _c + var _d + var _this = this + return __generator(this, function (_e) { + switch (_e.label) { + case 0: + if (!!input.signedTransaction) return [3, 2] + return [4, this.sendInternalError('Signed transaction must be provided')] + case 1: + throw _e.sent() + case 2: + network = input.network || { type: beacon_types_1.NetworkType.MAINNET } + request = { + type: beacon_types_1.BeaconMessageType.BroadcastRequest, + network: network, + signedTransaction: input.signedTransaction + } + return [ + 4, + this.makeRequest(request).catch(function (requestError) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.handleRequestError(request, requestError)] + case 1: + throw _a.sent() + } + }) + }) + }) + ] + case 3: + ;(_a = _e.sent()), + (message = _a.message), + (connectionInfo = _a.connectionInfo) + _b = this.notifySuccess + _c = [request] + _d = { + network: network, + output: message, + blockExplorer: this.blockExplorer, + connectionContext: connectionInfo + } + return [4, this.getWalletInfo()] + case 4: + return [4, _b.apply(this, _c.concat([((_d.walletInfo = _e.sent()), _d)]))] + case 5: + _e.sent() + return [2, message] + } + }) + }) + } + DAppClient.prototype.setActivePeer = function (peer) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (this._activePeer.isSettled()) { + this._activePeer = beacon_utils_1.ExposedPromise.resolve(peer) + } else { + this._activePeer.resolve(peer) + } + if (!peer) return [3, 5] + return [4, this.initInternalTransports()] + case 1: + _a.sent() + if (!(peer.type === 'postmessage-pairing-response')) return [3, 3] + return [4, this.setTransport(this.postMessageTransport)] + case 2: + _a.sent() + return [3, 5] + case 3: + if (!(peer.type === 'p2p-pairing-response')) return [3, 5] + return [4, this.setTransport(this.p2pTransport)] + case 4: + _a.sent() + _a.label = 5 + case 5: + return [2] + } + }) + }) + } + DAppClient.prototype.setTransport = function (transport) { + return __awaiter(this, void 0, void 0, function () { + var result + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!transport) { + this._initPromise = undefined + } + result = _super.prototype.setTransport.call(this, transport) + return [ + 4, + this.events.emit(events_1.BeaconEvent.ACTIVE_TRANSPORT_SET, transport) + ] + case 1: + _a.sent() + return [2, result] + } + }) + }) + } + DAppClient.prototype.sendInternalError = function (errorMessage) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [ + 4, + this.events.emit(events_1.BeaconEvent.INTERNAL_ERROR, { + text: errorMessage + }) + ] + case 1: + _a.sent() + throw new Error(errorMessage) + } + }) + }) + } + DAppClient.prototype.removeAccountsForPeers = function (peersToRemove) { + return __awaiter(this, void 0, void 0, function () { + var accounts, + peerIdsToRemove, + accountsToRemove, + accountIdentifiersToRemove, + activeAccount + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.accountManager.getAccounts()] + case 1: + accounts = _a.sent() + peerIdsToRemove = peersToRemove.map(function (peer) { + return peer.senderId + }) + accountsToRemove = accounts.filter(function (account) { + return peerIdsToRemove.includes(account.senderId) + }) + accountIdentifiersToRemove = accountsToRemove.map(function (accountInfo) { + return accountInfo.accountIdentifier + }) + return [4, this.accountManager.removeAccounts(accountIdentifiersToRemove)] + case 2: + _a.sent() + return [4, this.getActiveAccount()] + case 3: + activeAccount = _a.sent() + if (!activeAccount) return [3, 5] + if (!accountIdentifiersToRemove.includes(activeAccount.accountIdentifier)) + return [3, 5] + return [4, this.setActiveAccount(undefined)] + case 4: + _a.sent() + _a.label = 5 + case 5: + return [2] + } + }) + }) + } + DAppClient.prototype.handleRequestError = function (request, beaconError) { + return __awaiter(this, void 0, void 0, function () { + var buttons, actionCallback, peer, activeAccount, _a, _b, _c, _d + var _e + var _this = this + return __generator(this, function (_f) { + switch (_f.label) { + case 0: + logger.error('handleRequestError', 'error response', beaconError) + if (!beaconError.errorType) return [3, 9] + buttons = [] + if ( + beaconError.errorType === + beacon_types_1.BeaconErrorType.NO_PRIVATE_KEY_FOUND_ERROR + ) { + actionCallback = function () { + return __awaiter(_this, void 0, void 0, function () { + var operationRequest, accountInfo, accountIdentifier + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + operationRequest = request + if (!(operationRequest.sourceAddress && operationRequest.network)) + return [3, 4] + return [ + 4, + (0, beacon_core_1.getAccountIdentifier)( + operationRequest.sourceAddress, + operationRequest.network + ) + ] + case 1: + accountIdentifier = _a.sent() + return [4, this.getAccount(accountIdentifier)] + case 2: + accountInfo = _a.sent() + if (!accountInfo) return [3, 4] + return [4, this.removeAccount(accountInfo.accountIdentifier)] + case 3: + _a.sent() + _a.label = 4 + case 4: + return [2] + } + }) + }) + } + buttons.push({ text: 'Remove account', actionCallback: actionCallback }) + } + return [4, this.getPeer()] + case 1: + peer = _f.sent() + return [4, this.getActiveAccount()] + case 2: + activeAccount = _f.sent() + _a = request.type === beacon_types_1.BeaconMessageType.PermissionRequest + if (!_a) return [3, 4] + return [4, this.getActiveAccount()] + case 3: + _a = _f.sent() === undefined + _f.label = 4 + case 4: + if (!_a) return [3, 7] + this._initPromise = undefined + this.postMessageTransport = undefined + this.p2pTransport = undefined + return [4, this.setTransport()] + case 5: + _f.sent() + return [4, this.setActivePeer()] + case 6: + _f.sent() + _f.label = 7 + case 7: + _c = (_b = this.events).emit + _d = [beacon_message_events_1.messageEvents[request.type].error] + _e = { errorResponse: beaconError } + return [4, this.getWalletInfo(peer, activeAccount)] + case 8: + _c.apply(_b, _d.concat([((_e.walletInfo = _f.sent()), _e), buttons])).catch( + function (emitError) { + return logger.error('handleRequestError', emitError) + } + ) + throw beacon_core_1.BeaconError.getError( + beaconError.errorType, + beaconError.errorData + ) + case 9: + throw beaconError + } + }) + }) + } + DAppClient.prototype.notifySuccess = function (request, response) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + this.events + .emit(beacon_message_events_1.messageEvents[request.type].success, response) + .catch(function (emitError) { + return console.warn(emitError) + }) + return [2] + }) + }) + } + DAppClient.prototype.getWalletInfo = function (peer, account) { + var _a, _b + return __awaiter(this, void 0, void 0, function () { + var selectedAccount, + _c, + selectedPeer, + _d, + walletInfo, + typedPeer, + lowerCaseCompare, + selectedApp, + type, + deeplink + return __generator(this, function (_e) { + switch (_e.label) { + case 0: + if (!account) return [3, 1] + _c = account + return [3, 3] + case 1: + return [4, this.getActiveAccount()] + case 2: + _c = _e.sent() + _e.label = 3 + case 3: + selectedAccount = _c + if (!peer) return [3, 4] + _d = peer + return [3, 6] + case 4: + return [4, this.getPeer(selectedAccount)] + case 5: + _d = _e.sent() + _e.label = 6 + case 6: + selectedPeer = _d + if (!selectedAccount) return [3, 8] + return [4, this.appMetadataManager.getAppMetadata(selectedAccount.senderId)] + case 7: + walletInfo = _e.sent() + _e.label = 8 + case 8: + typedPeer = selectedPeer + if (!walletInfo) { + walletInfo = { name: typedPeer.name, icon: typedPeer.icon } + } + lowerCaseCompare = function (str1, str2) { + if (str1 && str2) { + return str1.toLowerCase() === str2.toLowerCase() + } + return false + } + if ( + wallet_lists_1.iOSList.find(function (app) { + return lowerCaseCompare( + app.name, + walletInfo === null || walletInfo === void 0 ? void 0 : walletInfo.name + ) + }) + ) { + selectedApp = wallet_lists_1.iOSList.find(function (app) { + return lowerCaseCompare( + app.name, + walletInfo === null || walletInfo === void 0 ? void 0 : walletInfo.name + ) + }) + type = 'mobile' + } else if ( + wallet_lists_1.webList.find(function (app) { + return lowerCaseCompare( + app.name, + walletInfo === null || walletInfo === void 0 ? void 0 : walletInfo.name + ) + }) + ) { + selectedApp = wallet_lists_1.webList.find(function (app) { + return lowerCaseCompare( + app.name, + walletInfo === null || walletInfo === void 0 ? void 0 : walletInfo.name + ) + }) + type = 'web' + } else if ( + wallet_lists_1.desktopList.find(function (app) { + return lowerCaseCompare( + app.name, + walletInfo === null || walletInfo === void 0 ? void 0 : walletInfo.name + ) + }) + ) { + selectedApp = wallet_lists_1.desktopList.find(function (app) { + return lowerCaseCompare( + app.name, + walletInfo === null || walletInfo === void 0 ? void 0 : walletInfo.name + ) + }) + type = 'desktop' + } else if ( + wallet_lists_1.extensionList.find(function (app) { + return lowerCaseCompare( + app.name, + walletInfo === null || walletInfo === void 0 ? void 0 : walletInfo.name + ) + }) + ) { + selectedApp = wallet_lists_1.extensionList.find(function (app) { + return lowerCaseCompare( + app.name, + walletInfo === null || walletInfo === void 0 ? void 0 : walletInfo.name + ) + }) + type = 'extension' + } + if (selectedApp) { + deeplink = void 0 + if (selectedApp.hasOwnProperty('links')) { + deeplink = + selectedApp.links[ + (_a = + selectedAccount === null || selectedAccount === void 0 + ? void 0 + : selectedAccount.network.type) !== null && _a !== void 0 + ? _a + : this.preferredNetwork + ] + } else if (selectedApp.hasOwnProperty('deepLink')) { + deeplink = selectedApp.deepLink + } + return [ + 2, + { + name: walletInfo.name, + icon: + (_b = walletInfo.icon) !== null && _b !== void 0 + ? _b + : selectedApp.logo, + deeplink: deeplink, + type: type + } + ] + } + return [2, walletInfo] + } + }) + }) + } + DAppClient.prototype.getPeer = function (account) { + var _a, _b, _c, _d + return __awaiter(this, void 0, void 0, function () { + var peer, postMessagePeers, p2pPeers, peers + return __generator(this, function (_e) { + switch (_e.label) { + case 0: + if (!account) return [3, 3] + logger.log('getPeer', 'We have an account', account) + return [ + 4, + (_a = this.postMessageTransport) === null || _a === void 0 + ? void 0 + : _a.getPeers() + ] + case 1: + postMessagePeers = (_b = _e.sent()) !== null && _b !== void 0 ? _b : [] + return [ + 4, + (_c = this.p2pTransport) === null || _c === void 0 ? void 0 : _c.getPeers() + ] + case 2: + p2pPeers = (_d = _e.sent()) !== null && _d !== void 0 ? _d : [] + peers = __spreadArray( + __spreadArray([], postMessagePeers, true), + p2pPeers, + true + ) + logger.log('getPeer', 'Found peers', peers, account) + peer = peers.find(function (peerEl) { + return peerEl.senderId === account.senderId + }) + if (!peer) { + peer = peers.find(function (peerEl) { + return peerEl.extensionId === account.origin.id + }) + } + return [3, 5] + case 3: + return [4, this._activePeer.promise] + case 4: + peer = _e.sent() + logger.log('getPeer', 'Active peer', peer) + _e.label = 5 + case 5: + if (!peer) { + throw new Error('No matching peer found.') + } + return [2, peer] + } + }) + }) + } + DAppClient.prototype.makeRequest = function (requestInput) { + var _a + return __awaiter(this, void 0, void 0, function () { + var messageId, request, _b, exposed, payload, account, peer, walletInfo, sendError_1 + var _c + var _this = this + return __generator(this, function (_d) { + switch (_d.label) { + case 0: + return [4, (0, beacon_utils_1.generateGUID)()] + case 1: + messageId = _d.sent() + console.time(messageId) + logger.log('makeRequest', 'starting') + return [4, this.init()] + case 2: + _d.sent() + console.timeLog(messageId, 'init done') + logger.log('makeRequest', 'after init') + return [4, this.addRequestAndCheckIfRateLimited()] + case 3: + if (_d.sent()) { + this.events + .emit(events_1.BeaconEvent.LOCAL_RATE_LIMIT_REACHED) + .catch(function (emitError) { + return console.warn(emitError) + }) + throw new Error('rate limit reached') + } + return [4, this.checkPermissions(requestInput.type)] + case 4: + if (!_d.sent()) { + this.events + .emit(events_1.BeaconEvent.NO_PERMISSIONS) + .catch(function (emitError) { + return console.warn(emitError) + }) + throw new Error('No permissions to send this request to wallet!') + } + if (!!this.beaconId) return [3, 6] + return [4, this.sendInternalError('BeaconID not defined')] + case 5: + throw _d.sent() + case 6: + _c = { id: messageId, version: beacon_core_1.BEACON_VERSION } + _b = beacon_core_1.getSenderId + return [4, this.beaconId] + case 7: + return [4, _b.apply(void 0, [_d.sent()])] + case 8: + request = __assign.apply(void 0, [ + ((_c.senderId = _d.sent()), _c), + requestInput + ]) + exposed = new beacon_utils_1.ExposedPromise() + this.addOpenRequest(request.id, exposed) + return [4, new beacon_core_1.Serializer().serialize(request)] + case 9: + payload = _d.sent() + return [4, this.getActiveAccount()] + case 10: + account = _d.sent() + return [4, this.getPeer(account)] + case 11: + peer = _d.sent() + return [4, this.getWalletInfo(peer, account)] + case 12: + walletInfo = _d.sent() + logger.log('makeRequest', 'sending message', request) + console.timeLog(messageId, 'sending') + _d.label = 13 + case 13: + _d.trys.push([13, 16, , 17]) + return [4, this.transport] + case 14: + return [4, _d.sent().send(payload, peer)] + case 15: + _d.sent() + return [3, 17] + case 16: + sendError_1 = _d.sent() + this.events.emit(events_1.BeaconEvent.INTERNAL_ERROR, { + text: 'Unable to send message. If this problem persists, please reset the connection and pair your wallet again.', + buttons: [ + { + text: 'Reset Connection', + actionCallback: function () { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, (0, Toast_1.closeToast)()] + case 1: + _a.sent() + this.disconnect() + return [2] + } + }) + }) + } + } + ] + }) + console.timeLog(messageId, 'send error') + throw sendError_1 + case 17: + console.timeLog(messageId, 'sent') + this.events + .emit(beacon_message_events_1.messageEvents[requestInput.type].sent, { + walletInfo: __assign(__assign({}, walletInfo), { + name: (_a = walletInfo.name) !== null && _a !== void 0 ? _a : 'Wallet' + }), + extraInfo: { + resetCallback: function () { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + this.disconnect() + return [2] + }) + }) + } + } + }) + .catch(function (emitError) { + return console.warn(emitError) + }) + return [2, exposed.promise] + } + }) + }) + } + DAppClient.prototype.disconnect = function () { + return __awaiter(this, void 0, void 0, function () { + var _a, _b, _c + return __generator(this, function (_d) { + switch (_d.label) { + case 0: + this.postMessageTransport = undefined + this.p2pTransport = undefined + _b = (_a = Promise).all + _c = [this.clearActiveAccount()] + return [4, this.transport] + case 1: + return [4, _b.apply(_a, [_c.concat([_d.sent().disconnect()])])] + case 2: + _d.sent() + return [2] + } + }) + }) + } + DAppClient.prototype.addOpenRequest = function (id, promise) { + logger.log( + 'addOpenRequest', + this.name, + 'adding request ' + id + ' and waiting for answer' + ) + this.openRequests.set(id, promise) + } + return DAppClient + })(beacon_core_1.Client) + exports.DAppClient = DAppClient + }, + { + '../beacon-message-events': 248, + '../colorMode': 249, + '../events': 251, + '../transports/DappP2PTransport': 253, + '../transports/DappPostMessageTransport': 254, + '../ui/alert/wallet-lists': 259, + '../ui/toast/Toast': 260, + '../utils/tezblock-blockexplorer': 268, + '@airgap/beacon-core': 229, + '@airgap/beacon-dapp': 252, + '@airgap/beacon-transport-postmessage': 286, + '@airgap/beacon-types': 287, + '@airgap/beacon-utils': 302 + } + ], + 251: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + var __spreadArray = + (this && this.__spreadArray) || + function (to, from, pack) { + if (pack || arguments.length === 2) + for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i) + ar[i] = from[i] + } + } + return to.concat(ar || Array.prototype.slice.call(from)) + } + var _a + Object.defineProperty(exports, '__esModule', { value: true }) + exports.BeaconEventHandler = exports.defaultEventCallbacks = exports.BeaconEvent = void 0 + var beacon_dapp_1 = require('@airgap/beacon-dapp') + var beacon_types_1 = require('@airgap/beacon-types') + var beacon_core_1 = require('@airgap/beacon-core') + var shorten_string_1 = require('./utils/shorten-string') + var platform_1 = require('./utils/platform') + var logger = new beacon_core_1.Logger('BeaconEvents') + var SUCCESS_TIMER = 5 * 1e3 + var SVG_EXTERNAL = + '' + var BeaconEvent + ;(function (BeaconEvent) { + BeaconEvent['PERMISSION_REQUEST_SENT'] = 'PERMISSION_REQUEST_SENT' + BeaconEvent['PERMISSION_REQUEST_SUCCESS'] = 'PERMISSION_REQUEST_SUCCESS' + BeaconEvent['PERMISSION_REQUEST_ERROR'] = 'PERMISSION_REQUEST_ERROR' + BeaconEvent['OPERATION_REQUEST_SENT'] = 'OPERATION_REQUEST_SENT' + BeaconEvent['OPERATION_REQUEST_SUCCESS'] = 'OPERATION_REQUEST_SUCCESS' + BeaconEvent['OPERATION_REQUEST_ERROR'] = 'OPERATION_REQUEST_ERROR' + BeaconEvent['SIGN_REQUEST_SENT'] = 'SIGN_REQUEST_SENT' + BeaconEvent['SIGN_REQUEST_SUCCESS'] = 'SIGN_REQUEST_SUCCESS' + BeaconEvent['SIGN_REQUEST_ERROR'] = 'SIGN_REQUEST_ERROR' + BeaconEvent['BROADCAST_REQUEST_SENT'] = 'BROADCAST_REQUEST_SENT' + BeaconEvent['BROADCAST_REQUEST_SUCCESS'] = 'BROADCAST_REQUEST_SUCCESS' + BeaconEvent['BROADCAST_REQUEST_ERROR'] = 'BROADCAST_REQUEST_ERROR' + BeaconEvent['ACKNOWLEDGE_RECEIVED'] = 'ACKNOWLEDGE_RECEIVED' + BeaconEvent['LOCAL_RATE_LIMIT_REACHED'] = 'LOCAL_RATE_LIMIT_REACHED' + BeaconEvent['NO_PERMISSIONS'] = 'NO_PERMISSIONS' + BeaconEvent['ACTIVE_ACCOUNT_SET'] = 'ACTIVE_ACCOUNT_SET' + BeaconEvent['ACTIVE_TRANSPORT_SET'] = 'ACTIVE_TRANSPORT_SET' + BeaconEvent['SHOW_PREPARE'] = 'SHOW_PREPARE' + BeaconEvent['HIDE_UI'] = 'HIDE_UI' + BeaconEvent['PAIR_INIT'] = 'PAIR_INIT' + BeaconEvent['PAIR_SUCCESS'] = 'PAIR_SUCCESS' + BeaconEvent['CHANNEL_CLOSED'] = 'CHANNEL_CLOSED' + BeaconEvent['INTERNAL_ERROR'] = 'INTERNAL_ERROR' + BeaconEvent['UNKNOWN'] = 'UNKNOWN' + })((BeaconEvent = exports.BeaconEvent || (exports.BeaconEvent = {}))) + var showSentToast = function (data) { + return __awaiter(void 0, void 0, void 0, function () { + var openWalletAction, actions, link_1 + return __generator(this, function (_a) { + actions = [] + if (data.walletInfo.deeplink) { + if ( + data.walletInfo.type === 'web' || + (data.walletInfo.type === 'mobile' && (0, platform_1.isMobile)(window)) || + (data.walletInfo.type === 'desktop' && !(0, platform_1.isMobile)(window)) + ) { + link_1 = data.walletInfo.deeplink + openWalletAction = function () { + return __awaiter(void 0, void 0, void 0, function () { + var a + return __generator(this, function (_a) { + a = document.createElement('a') + a.setAttribute('href', link_1) + a.setAttribute('target', '_blank') + a.dispatchEvent( + new MouseEvent('click', { + view: window, + bubbles: true, + cancelable: true + }) + ) + return [2] + }) + }) + } + } + } + actions.push({ + text: 'No answer from your wallet received yet. Please make sure the wallet is open.' + }) + actions.push({ + text: 'Did you make a mistake?', + actionText: 'Cancel Request', + actionCallback: function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, (0, beacon_dapp_1.closeToast)()] + case 1: + _a.sent() + return [2] + } + }) + }) + } + }) + actions.push({ + text: 'Wallet not receiving request?', + actionText: 'Reset Connection', + actionCallback: function () { + return __awaiter(void 0, void 0, void 0, function () { + var resetCallback + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, (0, beacon_dapp_1.closeToast)()] + case 1: + _a.sent() + resetCallback = data.extraInfo.resetCallback + if (!resetCallback) return [3, 3] + logger.log('showSentToast', 'resetCallback invoked') + return [4, resetCallback()] + case 2: + _a.sent() + _a.label = 3 + case 3: + return [2] + } + }) + }) + } + }) + ;(0, beacon_dapp_1.openToast)({ + body: 'Request sent to {{wallet}}', + walletInfo: data.walletInfo, + state: 'loading', + actions: actions, + openWalletAction: openWalletAction + }).catch(function (toastError) { + return console.error(toastError) + }) + return [2] + }) + }) + } + var showAcknowledgedToast = function (data) { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + ;(0, beacon_dapp_1.openToast)({ + body: 'Awaiting confirmation in {{wallet}}', + state: 'acknowledge', + walletInfo: data.walletInfo + }).catch(function (toastError) { + return console.error(toastError) + }) + return [2] + }) + }) + } + var showPrepare = function (data) { + return __awaiter(void 0, void 0, void 0, function () { + var text + return __generator(this, function (_a) { + text = data.walletInfo + ? 'Preparing Request for {{wallet}}...' + : 'Preparing Request...' + ;(0, beacon_dapp_1.openToast)({ + body: '' + text + '', + state: 'prepare', + walletInfo: data.walletInfo + }).catch(function (toastError) { + return console.error(toastError) + }) + return [2] + }) + }) + } + var hideUI = function (elements) { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + if (elements) { + if (elements.includes('alert')) { + ;(0, beacon_dapp_1.closeAlerts)() + } + if (elements.includes('toast')) { + ;(0, beacon_dapp_1.closeToast)() + } + } else { + ;(0, beacon_dapp_1.closeToast)() + } + return [2] + }) + }) + } + var showNoPermissionAlert = function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [ + 4, + (0, beacon_dapp_1.openAlert)({ + title: 'No Permission', + body: 'Please allow the wallet to handle this type of request.' + }) + ] + case 1: + _a.sent() + return [2] + } + }) + }) + } + var showErrorToast = function (response, buttons) { + return __awaiter(void 0, void 0, void 0, function () { + var error, actions + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + error = response.errorResponse.errorType + ? beacon_core_1.BeaconError.getError( + response.errorResponse.errorType, + response.errorResponse.errorData + ) + : new beacon_core_1.UnknownBeaconError() + actions = [ + { text: '' + error.title + '' }, + { text: error.description } + ] + if ( + response.errorResponse.errorType === + beacon_types_1.BeaconErrorType.TRANSACTION_INVALID_ERROR && + response.errorResponse.errorData + ) { + actions.push({ + text: '', + actionText: 'Show Details', + actionCallback: function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, (0, beacon_dapp_1.closeToast)()] + case 1: + _a.sent() + return [ + 4, + (0, beacon_dapp_1.openAlert)({ + title: error.title, + body: error.fullDescription, + buttons: buttons + }) + ] + case 2: + _a.sent() + return [2] + } + }) + }) + } + }) + } + return [ + 4, + (0, beacon_dapp_1.openToast)({ + body: '{{wallet}} has returned an error', + timer: + response.errorResponse.errorType === + beacon_types_1.BeaconErrorType.ABORTED_ERROR + ? SUCCESS_TIMER + : undefined, + state: 'finished', + walletInfo: response.walletInfo, + actions: actions + }) + ] + case 1: + _a.sent() + return [2] + } + }) + }) + } + var showRateLimitReached = function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + ;(0, beacon_dapp_1.openAlert)({ + title: 'Error', + body: 'Rate limit reached. Please slow down', + buttons: [{ text: 'Done', style: 'outline' }], + timer: 3e3 + }).catch(function (toastError) { + return console.error(toastError) + }) + return [2] + }) + }) + } + var showExtensionConnectedAlert = function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, (0, beacon_dapp_1.closeAlerts)()] + case 1: + _a.sent() + return [2] + } + }) + }) + } + var showChannelClosedAlert = function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [ + 4, + (0, beacon_dapp_1.openAlert)({ + title: 'Channel closed', + body: 'Your peer has closed the connection.', + buttons: [{ text: 'Done', style: 'outline' }], + timer: 1500 + }) + ] + case 1: + _a.sent() + return [2] + } + }) + }) + } + var showInternalErrorAlert = function (data) { + return __awaiter(void 0, void 0, void 0, function () { + var buttons, alertConfig + var _a + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + buttons = __spreadArray( + [], + (_a = data.buttons) !== null && _a !== void 0 ? _a : [], + true + ) + buttons.push({ text: 'Done', style: 'outline' }) + alertConfig = { title: 'Internal Error', body: data.text, buttons: buttons } + return [4, (0, beacon_dapp_1.openAlert)(alertConfig)] + case 1: + _b.sent() + return [2] + } + }) + }) + } + var showPairAlert = function (data) { + return __awaiter(void 0, void 0, void 0, function () { + var alertConfig + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + alertConfig = { + title: 'Choose your preferred wallet', + body: '

', + pairingPayload: { + p2pSyncCode: data.p2pPeerInfo, + postmessageSyncCode: data.postmessagePeerInfo, + preferredNetwork: data.preferredNetwork + }, + closeButtonCallback: data.abortedHandler, + disclaimerText: data.disclaimerText + } + return [4, (0, beacon_dapp_1.openAlert)(alertConfig)] + case 1: + _a.sent() + return [2] + } + }) + }) + } + var showPermissionSuccessAlert = function (data) { + return __awaiter(void 0, void 0, void 0, function () { + var output + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + output = data.output + return [ + 4, + (0, beacon_dapp_1.openToast)({ + body: '{{wallet}} has granted permission', + timer: SUCCESS_TIMER, + walletInfo: data.walletInfo, + state: 'finished', + actions: [ + { + text: 'Address', + actionText: + '' + + (0, shorten_string_1.shortenString)(output.address) + + '' + }, + { text: 'Network', actionText: '' + output.network.type }, + { text: 'Permissions', actionText: output.scopes.join(', ') } + ] + }) + ] + case 1: + _a.sent() + return [2] + } + }) + }) + } + var showOperationSuccessAlert = function (data) { + return __awaiter(void 0, void 0, void 0, function () { + var account, output, blockExplorer + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + ;(account = data.account), + (output = data.output), + (blockExplorer = data.blockExplorer) + return [ + 4, + (0, beacon_dapp_1.openToast)({ + body: '{{wallet}} successfully submitted operation', + timer: SUCCESS_TIMER, + state: 'finished', + walletInfo: data.walletInfo, + actions: [ + { + text: + '' + + (0, shorten_string_1.shortenString)(output.transactionHash) + + '', + actionText: 'Open Blockexplorer ' + SVG_EXTERNAL, + actionCallback: function () { + return __awaiter(void 0, void 0, void 0, function () { + var link + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [ + 4, + blockExplorer.getTransactionLink( + output.transactionHash, + account.network + ) + ] + case 1: + link = _a.sent() + window.open(link, '_blank') + return [4, (0, beacon_dapp_1.closeToast)()] + case 2: + _a.sent() + return [2] + } + }) + }) + } + } + ] + }) + ] + case 1: + _a.sent() + return [2] + } + }) + }) + } + var showSignSuccessAlert = function (data) { + return __awaiter(void 0, void 0, void 0, function () { + var output + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + output = data.output + return [ + 4, + (0, beacon_dapp_1.openToast)({ + body: '{{wallet}} successfully signed payload', + timer: SUCCESS_TIMER, + state: 'finished', + walletInfo: data.walletInfo, + actions: [ + { + text: + 'Signature: ' + + (0, shorten_string_1.shortenString)(output.signature) + + '', + actionText: 'Copy to clipboard', + actionCallback: function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + navigator.clipboard.writeText(output.signature).then( + function () { + logger.log( + 'showSignSuccessAlert', + 'Copying to clipboard was successful!' + ) + }, + function (err) { + logger.error( + 'showSignSuccessAlert', + 'Could not copy text to clipboard: ', + err + ) + } + ) + return [4, (0, beacon_dapp_1.closeToast)()] + case 1: + _a.sent() + return [2] + } + }) + }) + } + } + ] + }) + ] + case 1: + _a.sent() + return [2] + } + }) + }) + } + var showBroadcastSuccessAlert = function (data) { + return __awaiter(void 0, void 0, void 0, function () { + var network, output, blockExplorer + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + ;(network = data.network), + (output = data.output), + (blockExplorer = data.blockExplorer) + return [ + 4, + (0, beacon_dapp_1.openToast)({ + body: '{{wallet}} successfully injected operation', + timer: SUCCESS_TIMER, + state: 'finished', + walletInfo: data.walletInfo, + actions: [ + { + text: + '' + + (0, shorten_string_1.shortenString)(output.transactionHash) + + '', + actionText: 'Open Blockexplorer ' + SVG_EXTERNAL, + actionCallback: function () { + return __awaiter(void 0, void 0, void 0, function () { + var link + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [ + 4, + blockExplorer.getTransactionLink( + output.transactionHash, + network + ) + ] + case 1: + link = _a.sent() + window.open(link, '_blank') + return [4, (0, beacon_dapp_1.closeToast)()] + case 2: + _a.sent() + return [2] + } + }) + }) + } + } + ] + }) + ] + case 1: + _a.sent() + return [2] + } + }) + }) + } + var emptyHandler = function () { + return function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2] + }) + }) + } + } + exports.defaultEventCallbacks = + ((_a = {}), + (_a[BeaconEvent.PERMISSION_REQUEST_SENT] = showSentToast), + (_a[BeaconEvent.PERMISSION_REQUEST_SUCCESS] = showPermissionSuccessAlert), + (_a[BeaconEvent.PERMISSION_REQUEST_ERROR] = showErrorToast), + (_a[BeaconEvent.OPERATION_REQUEST_SENT] = showSentToast), + (_a[BeaconEvent.OPERATION_REQUEST_SUCCESS] = showOperationSuccessAlert), + (_a[BeaconEvent.OPERATION_REQUEST_ERROR] = showErrorToast), + (_a[BeaconEvent.SIGN_REQUEST_SENT] = showSentToast), + (_a[BeaconEvent.SIGN_REQUEST_SUCCESS] = showSignSuccessAlert), + (_a[BeaconEvent.SIGN_REQUEST_ERROR] = showErrorToast), + (_a[BeaconEvent.BROADCAST_REQUEST_SENT] = showSentToast), + (_a[BeaconEvent.BROADCAST_REQUEST_SUCCESS] = showBroadcastSuccessAlert), + (_a[BeaconEvent.BROADCAST_REQUEST_ERROR] = showErrorToast), + (_a[BeaconEvent.ACKNOWLEDGE_RECEIVED] = showAcknowledgedToast), + (_a[BeaconEvent.LOCAL_RATE_LIMIT_REACHED] = showRateLimitReached), + (_a[BeaconEvent.NO_PERMISSIONS] = showNoPermissionAlert), + (_a[BeaconEvent.ACTIVE_ACCOUNT_SET] = emptyHandler()), + (_a[BeaconEvent.ACTIVE_TRANSPORT_SET] = emptyHandler()), + (_a[BeaconEvent.SHOW_PREPARE] = showPrepare), + (_a[BeaconEvent.HIDE_UI] = hideUI), + (_a[BeaconEvent.PAIR_INIT] = showPairAlert), + (_a[BeaconEvent.PAIR_SUCCESS] = showExtensionConnectedAlert), + (_a[BeaconEvent.CHANNEL_CLOSED] = showChannelClosedAlert), + (_a[BeaconEvent.INTERNAL_ERROR] = showInternalErrorAlert), + (_a[BeaconEvent.UNKNOWN] = emptyHandler()), + _a) + var BeaconEventHandler = (function () { + function BeaconEventHandler(eventsToOverride, overrideAll) { + var _a + if (eventsToOverride === void 0) { + eventsToOverride = {} + } + this.callbackMap = + ((_a = {}), + (_a[BeaconEvent.PERMISSION_REQUEST_SENT] = [ + exports.defaultEventCallbacks.PERMISSION_REQUEST_SENT + ]), + (_a[BeaconEvent.PERMISSION_REQUEST_SUCCESS] = [ + exports.defaultEventCallbacks.PERMISSION_REQUEST_SUCCESS + ]), + (_a[BeaconEvent.PERMISSION_REQUEST_ERROR] = [ + exports.defaultEventCallbacks.PERMISSION_REQUEST_ERROR + ]), + (_a[BeaconEvent.OPERATION_REQUEST_SENT] = [ + exports.defaultEventCallbacks.OPERATION_REQUEST_SENT + ]), + (_a[BeaconEvent.OPERATION_REQUEST_SUCCESS] = [ + exports.defaultEventCallbacks.OPERATION_REQUEST_SUCCESS + ]), + (_a[BeaconEvent.OPERATION_REQUEST_ERROR] = [ + exports.defaultEventCallbacks.OPERATION_REQUEST_ERROR + ]), + (_a[BeaconEvent.SIGN_REQUEST_SENT] = [ + exports.defaultEventCallbacks.SIGN_REQUEST_SENT + ]), + (_a[BeaconEvent.SIGN_REQUEST_SUCCESS] = [ + exports.defaultEventCallbacks.SIGN_REQUEST_SUCCESS + ]), + (_a[BeaconEvent.SIGN_REQUEST_ERROR] = [ + exports.defaultEventCallbacks.SIGN_REQUEST_ERROR + ]), + (_a[BeaconEvent.BROADCAST_REQUEST_SENT] = [ + exports.defaultEventCallbacks.BROADCAST_REQUEST_SENT + ]), + (_a[BeaconEvent.BROADCAST_REQUEST_SUCCESS] = [ + exports.defaultEventCallbacks.BROADCAST_REQUEST_SUCCESS + ]), + (_a[BeaconEvent.BROADCAST_REQUEST_ERROR] = [ + exports.defaultEventCallbacks.BROADCAST_REQUEST_ERROR + ]), + (_a[BeaconEvent.ACKNOWLEDGE_RECEIVED] = [ + exports.defaultEventCallbacks.ACKNOWLEDGE_RECEIVED + ]), + (_a[BeaconEvent.LOCAL_RATE_LIMIT_REACHED] = [ + exports.defaultEventCallbacks.LOCAL_RATE_LIMIT_REACHED + ]), + (_a[BeaconEvent.NO_PERMISSIONS] = [exports.defaultEventCallbacks.NO_PERMISSIONS]), + (_a[BeaconEvent.ACTIVE_ACCOUNT_SET] = [ + exports.defaultEventCallbacks.ACTIVE_ACCOUNT_SET + ]), + (_a[BeaconEvent.ACTIVE_TRANSPORT_SET] = [ + exports.defaultEventCallbacks.ACTIVE_TRANSPORT_SET + ]), + (_a[BeaconEvent.SHOW_PREPARE] = [exports.defaultEventCallbacks.SHOW_PREPARE]), + (_a[BeaconEvent.HIDE_UI] = [exports.defaultEventCallbacks.HIDE_UI]), + (_a[BeaconEvent.PAIR_INIT] = [exports.defaultEventCallbacks.PAIR_INIT]), + (_a[BeaconEvent.PAIR_SUCCESS] = [exports.defaultEventCallbacks.PAIR_SUCCESS]), + (_a[BeaconEvent.CHANNEL_CLOSED] = [exports.defaultEventCallbacks.CHANNEL_CLOSED]), + (_a[BeaconEvent.INTERNAL_ERROR] = [exports.defaultEventCallbacks.INTERNAL_ERROR]), + (_a[BeaconEvent.UNKNOWN] = [exports.defaultEventCallbacks.UNKNOWN]), + _a) + if (overrideAll) { + this.setAllHandlers() + } + this.overrideDefaults(eventsToOverride) + } + BeaconEventHandler.prototype.on = function (event, eventCallback) { + return __awaiter(this, void 0, void 0, function () { + var listeners + return __generator(this, function (_a) { + listeners = this.callbackMap[event] || [] + listeners.push(eventCallback) + this.callbackMap[event] = listeners + return [2] + }) + }) + } + BeaconEventHandler.prototype.emit = function (event, data, eventCallback) { + return __awaiter(this, void 0, void 0, function () { + var listeners + var _this = this + return __generator(this, function (_a) { + listeners = this.callbackMap[event] + if (listeners && listeners.length > 0) { + listeners.forEach(function (listener) { + return __awaiter(_this, void 0, void 0, function () { + var listenerError_1 + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]) + return [4, listener(data, eventCallback)] + case 1: + _a.sent() + return [3, 3] + case 2: + listenerError_1 = _a.sent() + logger.error('error handling event ' + event, listenerError_1) + return [3, 3] + case 3: + return [2] + } + }) + }) + }) + } + return [2] + }) + }) + } + BeaconEventHandler.prototype.overrideDefaults = function (eventsToOverride) { + var _this = this + Object.keys(eventsToOverride).forEach(function (untypedEvent) { + var eventType = untypedEvent + var event = eventsToOverride[eventType] + if (event) { + _this.callbackMap[eventType] = [event.handler] + } + }) + } + BeaconEventHandler.prototype.setAllHandlers = function (handler) { + var _this = this + Object.keys(this.callbackMap).forEach(function (untypedEvent) { + var eventType = untypedEvent + _this.callbackMap[eventType] = [] + if (handler) { + _this.callbackMap[eventType].push(handler) + } else { + _this.callbackMap[eventType].push(function () { + var data = [] + for (var _i = 0; _i < arguments.length; _i++) { + data[_i] = arguments[_i] + } + logger.log.apply(logger, __spreadArray([untypedEvent], data, false)) + }) + } + }) + } + return BeaconEventHandler + })() + exports.BeaconEventHandler = BeaconEventHandler + }, + { + './utils/platform': 264, + './utils/shorten-string': 267, + '@airgap/beacon-core': 229, + '@airgap/beacon-dapp': 252, + '@airgap/beacon-types': 287 + } + ], + 252: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.openToast = + exports.closeToast = + exports.closeAlerts = + exports.openAlert = + exports.TezblockBlockExplorer = + exports.BlockExplorer = + exports.defaultEventCallbacks = + exports.BeaconEventHandler = + exports.BeaconEvent = + exports.Pairing = + exports.DAppClient = + void 0 + var DAppClient_1 = require('./dapp-client/DAppClient') + Object.defineProperty(exports, 'DAppClient', { + enumerable: true, + get: function () { + return DAppClient_1.DAppClient + } + }) + var events_1 = require('./events') + Object.defineProperty(exports, 'BeaconEvent', { + enumerable: true, + get: function () { + return events_1.BeaconEvent + } + }) + Object.defineProperty(exports, 'BeaconEventHandler', { + enumerable: true, + get: function () { + return events_1.BeaconEventHandler + } + }) + Object.defineProperty(exports, 'defaultEventCallbacks', { + enumerable: true, + get: function () { + return events_1.defaultEventCallbacks + } + }) + var Pairing_1 = require('./ui/alert/Pairing') + Object.defineProperty(exports, 'Pairing', { + enumerable: true, + get: function () { + return Pairing_1.Pairing + } + }) + var block_explorer_1 = require('./utils/block-explorer') + Object.defineProperty(exports, 'BlockExplorer', { + enumerable: true, + get: function () { + return block_explorer_1.BlockExplorer + } + }) + var tezblock_blockexplorer_1 = require('./utils/tezblock-blockexplorer') + Object.defineProperty(exports, 'TezblockBlockExplorer', { + enumerable: true, + get: function () { + return tezblock_blockexplorer_1.TezblockBlockExplorer + } + }) + var Alert_1 = require('./ui/alert/Alert') + Object.defineProperty(exports, 'openAlert', { + enumerable: true, + get: function () { + return Alert_1.openAlert + } + }) + Object.defineProperty(exports, 'closeAlerts', { + enumerable: true, + get: function () { + return Alert_1.closeAlerts + } + }) + var Toast_1 = require('./ui/toast/Toast') + Object.defineProperty(exports, 'closeToast', { + enumerable: true, + get: function () { + return Toast_1.closeToast + } + }) + Object.defineProperty(exports, 'openToast', { + enumerable: true, + get: function () { + return Toast_1.openToast + } + }) + }, + { + './dapp-client/DAppClient': 250, + './events': 251, + './ui/alert/Alert': 255, + './ui/alert/Pairing': 256, + './ui/toast/Toast': 260, + './utils/block-explorer': 262, + './utils/tezblock-blockexplorer': 268 + } + ], + 253: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.DappP2PTransport = void 0 + var beacon_types_1 = require('@airgap/beacon-types') + var beacon_core_1 = require('@airgap/beacon-core') + var beacon_transport_matrix_1 = require('@airgap/beacon-transport-matrix') + var logger = new beacon_core_1.Logger('DappP2PTransport') + var DappP2PTransport = (function (_super) { + __extends(DappP2PTransport, _super) + function DappP2PTransport(name, keyPair, storage, matrixNodes, iconUrl, appUrl) { + return ( + _super.call( + this, + name, + keyPair, + storage, + matrixNodes, + beacon_types_1.StorageKey.TRANSPORT_P2P_PEERS_DAPP, + iconUrl, + appUrl + ) || this + ) + } + DappP2PTransport.prototype.startOpenChannelListener = function () { + return __awaiter(this, void 0, void 0, function () { + var _this = this + return __generator(this, function (_a) { + return [ + 2, + this.client.listenForChannelOpening(function (peer) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + logger.log('listenForNewPeer', 'new publicKey', peer.publicKey) + return [4, this.addPeer(peer)] + case 1: + _a.sent() + this._isConnected = beacon_types_1.TransportStatus.CONNECTED + if (this.newPeerListener) { + this.newPeerListener(peer) + this.newPeerListener = undefined + } + return [2] + } + }) + }) + }) + ] + }) + }) + } + DappP2PTransport.prototype.listenForNewPeer = function (newPeerListener) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + logger.log('listenForNewPeer') + this.newPeerListener = newPeerListener + return [2] + }) + }) + } + DappP2PTransport.prototype.stopListeningForNewPeers = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + logger.log('stopListeningForNewPeers') + this.newPeerListener = undefined + return [2] + }) + }) + } + return DappP2PTransport + })(beacon_transport_matrix_1.P2PTransport) + exports.DappP2PTransport = DappP2PTransport + }, + { + '@airgap/beacon-core': 229, + '@airgap/beacon-transport-matrix': 272, + '@airgap/beacon-types': 287 + } + ], + 254: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.DappPostMessageTransport = void 0 + var beacon_types_1 = require('@airgap/beacon-types') + var beacon_core_1 = require('@airgap/beacon-core') + var beacon_transport_postmessage_1 = require('@airgap/beacon-transport-postmessage') + var logger = new beacon_core_1.Logger('DappPostMessageTransport') + var DappPostMessageTransport = (function (_super) { + __extends(DappPostMessageTransport, _super) + function DappPostMessageTransport(name, keyPair, storage) { + return ( + _super.call( + this, + name, + keyPair, + storage, + beacon_types_1.StorageKey.TRANSPORT_POSTMESSAGE_PEERS_DAPP + ) || this + ) + } + DappPostMessageTransport.prototype.startOpenChannelListener = function () { + return __awaiter(this, void 0, void 0, function () { + var _this = this + return __generator(this, function (_a) { + return [ + 2, + this.client.listenForChannelOpening(function (peer) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + logger.log('connect', 'received PostMessagePairingResponse', peer) + return [4, this.addPeer(peer)] + case 1: + _a.sent() + this._isConnected = beacon_types_1.TransportStatus.CONNECTED + if (this.newPeerListener) { + this.newPeerListener(peer) + this.newPeerListener = undefined + } + return [2] + } + }) + }) + }) + ] + }) + }) + } + DappPostMessageTransport.prototype.listenForNewPeer = function (newPeerListener) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + logger.log('listenForNewPeer') + this.newPeerListener = newPeerListener + return [2] + }) + }) + } + DappPostMessageTransport.prototype.stopListeningForNewPeers = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + logger.log('stopListeningForNewPeers') + this.newPeerListener = undefined + return [2] + }) + }) + } + return DappPostMessageTransport + })(beacon_transport_postmessage_1.PostMessageTransport) + exports.DappPostMessageTransport = DappPostMessageTransport + }, + { + '@airgap/beacon-core': 229, + '@airgap/beacon-transport-postmessage': 286, + '@airgap/beacon-types': 287 + } + ], + 255: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + var __spreadArray = + (this && this.__spreadArray) || + function (to, from, pack) { + if (pack || arguments.length === 2) + for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i) + ar[i] = from[i] + } + } + return to.concat(ar || Array.prototype.slice.call(from)) + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.openAlert = exports.closeAlerts = exports.closeAlert = void 0 + var colorMode_1 = require('../../colorMode') + var beacon_core_1 = require('@airgap/beacon-core') + var beacon_utils_1 = require('@airgap/beacon-utils') + var replace_in_template_1 = require('../../utils/replace-in-template') + var alert_templates_1 = require('./alert-templates') + var PairingAlert_1 = require('./PairingAlert') + var lastFocusedElement + var document + if (typeof window !== 'undefined' && typeof window.document !== 'undefined') { + document = window.document + } + var timeout = {} + var addQR = function (dataString) { + if (typeof dataString === 'string') { + return ( + '
' + + dataString + ) + } + return '' + } + var formatAlert = function (id, body, title, buttons, hasPairingPayload) { + var callToAction = title + var buttonsHtml = buttons.map(function (button, index) { + return ( + '' + ) + }) + var allStyles = alert_templates_1.alertTemplates.default.css + if (hasPairingPayload) { + allStyles += alert_templates_1.alertTemplates.pair.css + } + var alertContainer = alert_templates_1.alertTemplates.container + alertContainer = (0, replace_in_template_1.replaceInTemplate)( + alertContainer, + 'main', + hasPairingPayload + ? alert_templates_1.alertTemplates.pair.html + : alert_templates_1.alertTemplates.default.html + ) + alertContainer = (0, replace_in_template_1.replaceInTemplate)( + alertContainer, + 'callToAction', + callToAction + ) + alertContainer = (0, replace_in_template_1.replaceInTemplate)( + alertContainer, + 'buttons', + buttonsHtml.join(' ') + ) + alertContainer = (0, replace_in_template_1.replaceInTemplate)( + alertContainer, + 'body', + body + ) + alertContainer = (0, replace_in_template_1.replaceInTemplate)(alertContainer, 'id', id) + if (alertContainer.indexOf('{{') >= 0) { + var start = alertContainer.indexOf('{{') + var end = alertContainer.indexOf('}}') + console.error( + 'Not all placeholders replaced!', + alertContainer.substr(start, end - start) + ) + throw new Error('Not all placeholders replaced!') + } + return { style: allStyles, html: alertContainer } + } + var closeAlert = function (id) { + beacon_core_1.windowRef.postMessage('closeAlert-' + id) + return new Promise(function (resolve) { + var _a + var wrapper = document.getElementById('beacon-alert-wrapper-' + id) + if (!wrapper) { + return resolve() + } + var elm = + (_a = wrapper.shadowRoot) === null || _a === void 0 + ? void 0 + : _a.getElementById('beacon-alert-modal-' + id) + if (elm) { + var animationDuration = 300 + var localTimeout = timeout[id] + if (localTimeout) { + clearTimeout(localTimeout) + timeout[id] = undefined + } + elm.className = elm.className.replace('fadeIn', 'fadeOut') + window.setTimeout(function () { + var parent = wrapper.parentNode + if (parent) { + parent.removeChild(wrapper) + } + if (lastFocusedElement) { + lastFocusedElement.focus() + } + resolve() + }, animationDuration) + } else { + resolve() + } + }) + } + exports.closeAlert = closeAlert + var closeAlerts = function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + new Promise(function (resolve) { + return __awaiter(void 0, void 0, void 0, function () { + var openAlertElements, alertIds_1 + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + openAlertElements = document.querySelectorAll( + '[id^="beacon-alert-wrapper-"]' + ) + if (!(openAlertElements.length > 0)) return [3, 2] + alertIds_1 = [] + openAlertElements.forEach(function (element) { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + alertIds_1.push(element.id.split('-')[3]) + return [2] + }) + }) + }) + return [4, Promise.all(alertIds_1.map(closeAlert))] + case 1: + _a.sent() + resolve() + return [3, 3] + case 2: + resolve() + _a.label = 3 + case 3: + return [2] + } + }) + }) + }) + ] + }) + }) + } + exports.closeAlerts = closeAlerts + var openAlert = function (alertConfig) { + return __awaiter(void 0, void 0, void 0, function () { + var body, + title, + timer, + pairingPayload, + disclaimer, + closeButtonCallback, + id, + shadowRootEl, + shadowRoot, + wrapper, + buttons, + formattedBody, + _a, + style, + html, + styleEl, + closeButton, + closeButtonClick, + disclaimerContainer, + colorMode, + elm, + modal + var _b, _c + return __generator(this, function (_d) { + switch (_d.label) { + case 0: + body = alertConfig.body + title = alertConfig.title + timer = alertConfig.timer + pairingPayload = alertConfig.pairingPayload + disclaimer = alertConfig.disclaimerText + closeButtonCallback = alertConfig.closeButtonCallback + return [4, closeAlerts()] + case 1: + _d.sent() + return [4, (0, beacon_utils_1.generateGUID)()] + case 2: + id = _d.sent().split('-').join('') + shadowRootEl = document.createElement('div') + shadowRootEl.setAttribute('id', 'beacon-alert-wrapper-' + id) + shadowRoot = shadowRootEl.attachShadow({ mode: 'open' }) + wrapper = document.createElement('div') + wrapper.setAttribute('tabindex', '0') + shadowRoot.appendChild(wrapper) + buttons = __spreadArray( + [], + (_c = + (_b = alertConfig.buttons) === null || _b === void 0 + ? void 0 + : _b.map(function (button) { + var _a, _b + return { + text: button.text, + actionCallback: + (_a = button.actionCallback) !== null && _a !== void 0 + ? _a + : function () { + return Promise.resolve() + }, + style: + (_b = button.style) !== null && _b !== void 0 ? _b : 'outline' + } + })) !== null && _c !== void 0 + ? _c + : [], + true + ) + formattedBody = pairingPayload + ? addQR(body) + : body !== null && body !== void 0 + ? body + : '' + ;(_a = formatAlert( + id, + formattedBody, + title, + buttons, + !!(pairingPayload === null || pairingPayload === void 0 + ? void 0 + : pairingPayload.p2pSyncCode) + )), + (style = _a.style), + (html = _a.html) + wrapper.innerHTML = html + styleEl = document.createElement('style') + styleEl.textContent = style + shadowRoot.appendChild(styleEl) + if (timer) { + timeout[id] = window.setTimeout(function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, closeAlert(id)] + case 1: + _a.sent() + return [2] + } + }) + }) + }, timer) + } + document.body.prepend(shadowRootEl) + closeButton = shadowRoot.getElementById('beacon-alert-' + id + '-close') + closeButtonClick = function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (closeButtonCallback) { + closeButtonCallback() + } + return [4, closeAlert(id)] + case 1: + _a.sent() + return [2] + } + }) + }) + } + if (disclaimer) { + disclaimerContainer = shadowRoot.getElementById('beacon--disclaimer') + if (disclaimerContainer) { + disclaimerContainer.innerHTML = disclaimer + } + } + colorMode = (0, colorMode_1.getColorMode)() + elm = shadowRoot.getElementById('beacon-alert-modal-' + id) + if (elm) { + elm.classList.add('theme__' + colorMode) + elm.addEventListener('click', closeButtonClick) + } + modal = shadowRoot.querySelectorAll('.beacon-modal__wrapper') + if (modal.length > 0) { + modal[0].addEventListener('click', function (event) { + event.stopPropagation() + }) + } + lastFocusedElement = document.activeElement + wrapper.focus() + buttons.forEach(function (button, index) { + var buttonElement = shadowRoot.getElementById( + 'beacon-alert-' + id + '-' + index + ) + if (buttonElement) { + buttonElement.addEventListener('click', function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, closeAlert(id)] + case 1: + _a.sent() + if (!button.actionCallback) return [3, 3] + return [4, button.actionCallback()] + case 2: + _a.sent() + _a.label = 3 + case 3: + return [2] + } + }) + }) + }) + } + }) + if (closeButton) { + closeButton.addEventListener('click', function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, closeButtonClick()] + case 1: + _a.sent() + return [2] + } + }) + }) + }) + } + window.addEventListener('keydown', function (event) { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!(event.key === 'Escape')) return [3, 2] + return [4, closeButtonClick()] + case 1: + _a.sent() + _a.label = 2 + case 2: + return [2] + } + }) + }) + }) + if (!pairingPayload) return [3, 4] + return [ + 4, + (0, PairingAlert_1.preparePairingAlert)(id, shadowRoot, pairingPayload) + ] + case 3: + _d.sent() + _d.label = 4 + case 4: + return [2, id] + } + }) + }) + } + exports.openAlert = openAlert + }, + { + '../../colorMode': 249, + '../../utils/replace-in-template': 266, + './PairingAlert': 257, + './alert-templates': 258, + '@airgap/beacon-core': 229, + '@airgap/beacon-utils': 302 + } + ], + 256: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + var __spreadArray = + (this && this.__spreadArray) || + function (to, from, pack) { + if (pack || arguments.length === 2) + for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i) + ar[i] = from[i] + } + } + return to.concat(ar || Array.prototype.slice.call(from)) + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.Pairing = exports.WalletType = exports.Platform = void 0 + var beacon_core_1 = require('@airgap/beacon-core') + var beacon_types_1 = require('@airgap/beacon-types') + var beacon_core_2 = require('@airgap/beacon-core') + var get_tzip10_link_1 = require('../../utils/get-tzip10-link') + var platform_1 = require('../../utils/platform') + var beacon_transport_postmessage_1 = require('@airgap/beacon-transport-postmessage') + var wallet_lists_1 = require('./wallet-lists') + var serializer = new beacon_core_1.Serializer() + var defaultExtensions = [ + 'ookjlbkiijinhpmnjffcofjonbfbgaoc', + 'gpfndedineagiepkpinficbcbbgjoenn' + ] + var Platform + ;(function (Platform) { + Platform[(Platform['DESKTOP'] = 0)] = 'DESKTOP' + Platform[(Platform['IOS'] = 1)] = 'IOS' + Platform[(Platform['ANDROID'] = 2)] = 'ANDROID' + })((Platform = exports.Platform || (exports.Platform = {}))) + var WalletType + ;(function (WalletType) { + WalletType['IOS'] = 'ios' + WalletType['ANDROID'] = 'android' + WalletType['EXTENSION'] = 'extension' + WalletType['DESKTOP'] = 'desktop' + WalletType['WEB'] = 'web' + })((WalletType = exports.WalletType || (exports.WalletType = {}))) + var Pairing = (function () { + function Pairing() {} + Pairing.getPlatfrom = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + (0, platform_1.isAndroid)(window) + ? Platform.ANDROID + : (0, platform_1.isIOS)(window) + ? Platform.IOS + : Platform.DESKTOP + ] + }) + }) + } + Pairing.getPairingInfo = function ( + pairingPayload, + statusUpdateHandler, + mobileWalletHandler, + platform + ) { + return __awaiter(this, void 0, void 0, function () { + var activePlatform, _a, pairingCode, postmessageSyncCode, preferredNetwork + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + if (!(platform !== null && platform !== void 0)) return [3, 1] + _a = platform + return [3, 3] + case 1: + return [4, Pairing.getPlatfrom()] + case 2: + _a = _b.sent() + _b.label = 3 + case 3: + activePlatform = _a + pairingCode = pairingPayload.p2pSyncCode + postmessageSyncCode = pairingPayload.postmessageSyncCode + preferredNetwork = pairingPayload.preferredNetwork + switch (activePlatform) { + case Platform.DESKTOP: + return [ + 2, + Pairing.getDesktopPairingAlert( + pairingCode, + statusUpdateHandler, + postmessageSyncCode, + mobileWalletHandler, + preferredNetwork + ) + ] + case Platform.IOS: + return [ + 2, + Pairing.getIOSPairingAlert( + pairingCode, + statusUpdateHandler, + preferredNetwork + ) + ] + case Platform.ANDROID: + return [ + 2, + Pairing.getAndroidPairingAlert( + pairingCode, + statusUpdateHandler, + preferredNetwork + ) + ] + default: + throw new Error('platform unknown') + } + return [2] + } + }) + }) + } + Pairing.getDesktopPairingAlert = function ( + pairingCode, + statusUpdateHandler, + postmessageSyncCode, + mobileWalletHandler, + network + ) { + return __awaiter(this, void 0, void 0, function () { + var availableExtensions, _a, _b + var _c, _d + return __generator(this, function (_e) { + switch (_e.label) { + case 0: + return [ + 4, + beacon_transport_postmessage_1.PostMessageTransport.getAvailableExtensions() + ] + case 1: + availableExtensions = _e.sent() + availableExtensions.forEach(function (ext) { + var index = defaultExtensions.indexOf(ext.id) + if (index >= 0) { + defaultExtensions.splice(index, 1) + } + }) + _c = {} + _a = [ + { + title: 'Browser Extensions', + type: WalletType.EXTENSION, + wallets: __spreadArray( + __spreadArray( + [], + availableExtensions.map(function (app) { + var _a, _b, _c, _d, _e + var ext = wallet_lists_1.extensionList.find(function (extEl) { + return extEl.id === app.id + }) + return { + key: + (_a = ext === null || ext === void 0 ? void 0 : ext.key) !== + null && _a !== void 0 + ? _a + : app.id, + name: + (_b = app.name) !== null && _b !== void 0 + ? _b + : ext === null || ext === void 0 + ? void 0 + : ext.name, + logo: + (_c = app.iconUrl) !== null && _c !== void 0 + ? _c + : ext === null || ext === void 0 + ? void 0 + : ext.logo, + shortName: + (_d = app.shortName) !== null && _d !== void 0 + ? _d + : ext === null || ext === void 0 + ? void 0 + : ext.shortName, + color: + (_e = app.color) !== null && _e !== void 0 + ? _e + : ext === null || ext === void 0 + ? void 0 + : ext.color, + enabled: true, + clicked: false, + clickHandler: function () { + return __awaiter(this, void 0, void 0, function () { + var postmessageCode, _a, _b, message + return __generator(this, function (_c) { + switch (_c.label) { + case 0: + if (this.clicked) { + return [2] + } + this.clicked = true + if (!postmessageSyncCode) return [3, 3] + _b = (_a = serializer).serialize + return [4, postmessageSyncCode()] + case 1: + return [4, _b.apply(_a, [_c.sent()])] + case 2: + postmessageCode = _c.sent() + message = { + target: + beacon_types_1.ExtensionMessageTarget.EXTENSION, + payload: postmessageCode, + targetId: app.id + } + beacon_core_2.windowRef.postMessage( + message, + beacon_core_2.windowRef.location.origin + ) + _c.label = 3 + case 3: + statusUpdateHandler(WalletType.EXTENSION, this) + return [2] + } + }) + }) + } + } + }), + true + ), + wallet_lists_1.extensionList + .filter(function (app) { + return defaultExtensions.some(function (extId) { + return extId === app.id + }) + }) + .map(function (app) { + return { + key: app.key, + name: app.name, + shortName: app.shortName, + color: app.color, + logo: app.logo, + enabled: false, + clickHandler: function () {} + } + }), + true + ).sort(function (a, b) { + return a.key.localeCompare(b.key) + }) + } + ] + _d = { title: 'Desktop & Web Wallets', type: WalletType.DESKTOP } + _b = [ + __spreadArray( + [], + wallet_lists_1.desktopList.map(function (app) { + return { + key: app.key, + name: app.name, + shortName: app.shortName, + color: app.color, + logo: app.logo, + enabled: true, + clicked: false, + clickHandler: function () { + return __awaiter(this, void 0, void 0, function () { + var code, _a, _b, link + return __generator(this, function (_c) { + switch (_c.label) { + case 0: + if (this.clicked) { + return [2] + } + this.clicked = true + _b = (_a = serializer).serialize + return [4, pairingCode()] + case 1: + return [4, _b.apply(_a, [_c.sent()])] + case 2: + code = _c.sent() + link = (0, get_tzip10_link_1.getTzip10Link)( + app.deepLink, + code + ) + window.open(link, '_blank') + statusUpdateHandler(WalletType.DESKTOP, this, true) + return [2] + } + }) + }) + } + } + }), + true + ) + ] + return [4, Pairing.getWebList(pairingCode, statusUpdateHandler, network)] + case 2: + return [ + 2, + ((_c.walletLists = _a.concat([ + ((_d.wallets = __spreadArray + .apply(void 0, _b.concat([_e.sent(), true])) + .sort(function (a, b) { + return a.key.localeCompare(b.key) + })), + _d), + { + title: 'Mobile Wallets', + type: WalletType.IOS, + wallets: __spreadArray( + [], + wallet_lists_1.iOSList.map(function (app) { + return { + key: app.key, + name: app.name, + shortName: app.shortName, + color: app.color, + logo: app.logo, + enabled: true, + clicked: false, + clickHandler: function () { + return __awaiter(this, void 0, void 0, function () { + var code, _a, _b + return __generator(this, function (_c) { + switch (_c.label) { + case 0: + if (this.clicked) { + return [2] + } + this.clicked = true + _b = (_a = serializer).serialize + return [4, pairingCode()] + case 1: + return [4, _b.apply(_a, [_c.sent()])] + case 2: + code = _c.sent() + mobileWalletHandler(code) + statusUpdateHandler(WalletType.IOS, this, true) + return [2] + } + }) + }) + } + } + }), + true + ).sort(function (a, b) { + return a.key.localeCompare(b.key) + }) + } + ])), + (_c.buttons = []), + _c) + ] + } + }) + }) + } + Pairing.getIOSPairingAlert = function (pairingCode, statusUpdateHandler, network) { + return __awaiter(this, void 0, void 0, function () { + var _a, _b + var _c, _d + return __generator(this, function (_e) { + switch (_e.label) { + case 0: + _c = {} + _a = [ + { + title: 'Mobile Wallets', + type: WalletType.IOS, + wallets: wallet_lists_1.iOSList + .map(function (app) { + return { + key: app.key, + name: app.name, + shortName: app.shortName, + color: app.color, + logo: app.logo, + enabled: true, + clicked: false, + clickHandler: function () { + var _a + return __awaiter(this, void 0, void 0, function () { + var code, _b, _c, link, a + return __generator(this, function (_d) { + switch (_d.label) { + case 0: + if (this.clicked) { + return [2] + } + this.clicked = true + _c = (_b = serializer).serialize + return [4, pairingCode()] + case 1: + return [4, _c.apply(_b, [_d.sent()])] + case 2: + code = _d.sent() + link = (0, get_tzip10_link_1.getTzip10Link)( + (_a = app.deepLink) !== null && _a !== void 0 + ? _a + : app.universalLink, + code + ) + a = document.createElement('a') + a.setAttribute('href', link) + a.dispatchEvent( + new MouseEvent('click', { + view: window, + bubbles: true, + cancelable: true + }) + ) + statusUpdateHandler(WalletType.IOS, this, true) + return [2] + } + }) + }) + } + } + }) + .sort(function (a, b) { + return a.key.localeCompare(b.key) + }) + } + ] + _d = { title: 'Web Wallets', type: WalletType.WEB } + _b = [[]] + return [4, Pairing.getWebList(pairingCode, statusUpdateHandler, network)] + case 1: + return [ + 2, + ((_c.walletLists = _a.concat([ + ((_d.wallets = __spreadArray + .apply(void 0, _b.concat([_e.sent(), true])) + .sort(function (a, b) { + return a.key.localeCompare(b.key) + })), + _d) + ])), + (_c.buttons = []), + _c) + ] + } + }) + }) + } + Pairing.getAndroidPairingAlert = function (pairingCode, statusUpdateHandler, network) { + return __awaiter(this, void 0, void 0, function () { + var _a + var _b, _c + var _this = this + return __generator(this, function (_d) { + switch (_d.label) { + case 0: + _b = {} + _c = { title: 'Web Wallets', type: WalletType.WEB } + _a = [[]] + return [4, Pairing.getWebList(pairingCode, statusUpdateHandler, network)] + case 1: + return [ + 2, + ((_b.walletLists = [ + ((_c.wallets = __spreadArray + .apply(void 0, _a.concat([_d.sent(), true])) + .sort(function (a, b) { + return a.key.localeCompare(b.key) + })), + _c) + ]), + (_b.buttons = [ + { + title: 'Mobile Wallets', + text: 'Connect Wallet', + clickHandler: function () { + return __awaiter(_this, void 0, void 0, function () { + var code, _a, _b, qrLink + return __generator(this, function (_c) { + switch (_c.label) { + case 0: + _b = (_a = serializer).serialize + return [4, pairingCode()] + case 1: + return [4, _b.apply(_a, [_c.sent()])] + case 2: + code = _c.sent() + qrLink = (0, get_tzip10_link_1.getTzip10Link)( + 'tezos://', + code + ) + window.open(qrLink, '_blank') + statusUpdateHandler(WalletType.ANDROID) + return [2] + } + }) + }) + } + } + ]), + _b) + ] + } + }) + }) + } + Pairing.getWebList = function (pairingCode, statusUpdateHandler, network) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + wallet_lists_1.webList + .map(function (app) { + return { + key: app.key, + name: app.name, + shortName: app.shortName, + color: app.color, + logo: app.logo, + enabled: true, + clicked: false, + clickHandler: function () { + var _this = this + if (this.clicked) { + return + } + this.clicked = true + var newTab = window.open('', '_blank') + pairingCode() + .then(function (code) { + return serializer.serialize(code) + }) + .then(function (code) { + var _a + var link = (0, get_tzip10_link_1.getTzip10Link)( + (_a = app.links[network]) !== null && _a !== void 0 + ? _a + : app.links[beacon_types_1.NetworkType.MAINNET], + code + ) + if (newTab) { + newTab.location.href = link + } else { + window.open(link, '_blank') + } + statusUpdateHandler(WalletType.WEB, _this, true) + }) + .catch(function (error) { + console.error(error) + }) + } + } + }) + .sort(function (a, b) { + return a.key.localeCompare(b.key) + }) + ] + }) + }) + } + return Pairing + })() + exports.Pairing = Pairing + }, + { + '../../utils/get-tzip10-link': 263, + '../../utils/platform': 264, + './wallet-lists': 259, + '@airgap/beacon-core': 229, + '@airgap/beacon-transport-postmessage': 286, + '@airgap/beacon-types': 287 + } + ], + 257: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.preparePairingAlert = void 0 + var beacon_core_1 = require('@airgap/beacon-core') + var beacon_utils_1 = require('@airgap/beacon-utils') + var platform_1 = require('../../utils/platform') + var qr_1 = require('../../utils/qr') + var get_tzip10_link_1 = require('../../utils/get-tzip10-link') + var Alert_1 = require('./Alert') + var Pairing_1 = require('./Pairing') + var logger = new beacon_core_1.Logger('Alert') + var serializer = new beacon_core_1.Serializer() + var preparePairingAlert = function (id, shadowRoot, pairingPayload) { + return __awaiter(void 0, void 0, void 0, function () { + var getInfo, + info, + container, + buttonListWrapper, + showWallet, + listContainer, + showWalletLists, + messageFn, + closeFn, + qr, + copyButton, + titleEl, + platform, + mainText, + walletList, + switchButton, + clipboardFn, + qrShown, + showPlatform, + showQr, + switchPlatform, + platformSwitch + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + getInfo = function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + Pairing_1.Pairing.getPairingInfo( + pairingPayload, + function (_walletType, _wallet, keepOpen) { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (keepOpen) { + return [2] + } + return [4, (0, Alert_1.closeAlerts)()] + case 1: + _a.sent() + return [2] + } + }) + }) + }, + function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switchPlatform() + return [2] + }) + }) + } + ) + ] + }) + }) + } + return [4, getInfo()] + case 1: + info = _a.sent() + container = shadowRoot.getElementById('pairing-container') + if (!container) { + throw new Error('container not found') + } + buttonListWrapper = document.createElement('span') + container.appendChild(buttonListWrapper) + info.buttons.forEach(function (button) { + return __awaiter(void 0, void 0, void 0, function () { + var randomId, x, el, buttonEl + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, (0, beacon_utils_1.generateGUID)()] + case 1: + randomId = _a.sent() + x = + '\n
' + + button.title + + '
\n\t\t\n\t\t ' + el = document.createElement('a') + el.id = 'button_' + randomId + el.innerHTML = x + buttonListWrapper.appendChild(el) + buttonEl = shadowRoot.getElementById(el.id) + if (buttonEl) { + buttonEl.addEventListener('click', function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + button.clickHandler() + return [2] + }) + }) + }) + } + return [2] + } + }) + }) + }) + showWallet = function (listEl, type, wallet) { + var altTag = 'Open in ' + wallet.name + var walletKey = wallet.key + var x = + '\n \n
' + + wallet.name + + '\n ' + + (wallet.enabled ? '' : '

Not installed

') + + '\n
\n ' + + (wallet.logo + ? '
\n \n
' + : '') + + '\n
\n ' + var el = document.createElement('span') + el.innerHTML = x + listEl.appendChild(el) + var walletEl = shadowRoot.getElementById('wallet_' + walletKey) + var completeHandler = function (event) { + return __awaiter(void 0, void 0, void 0, function () { + var modalEl + return __generator(this, function (_a) { + if (event && event.key !== 'Enter') { + return [2] + } + wallet.clickHandler() + modalEl = shadowRoot.getElementById('beacon-modal__content') + if ( + modalEl && + type !== Pairing_1.WalletType.EXTENSION && + type !== Pairing_1.WalletType.IOS + ) { + modalEl.innerHTML = + (wallet.logo + ? '

Establishing Connection..

\n
\n
\n \n
' + + wallet.name + + '
\n
' + : '') + '\n ' + } + return [2] + }) + }) + } + if (walletEl) { + walletEl.addEventListener('click', function () { + return completeHandler() + }) + walletEl.addEventListener('keydown', completeHandler) + } + } + listContainer = document.createElement('span') + container.appendChild(listContainer) + showWalletLists = function (walletLists) { + listContainer.innerHTML = '' + walletLists.forEach(function (list) { + var listWrapperEl = document.createElement('div') + listWrapperEl.classList.add('beacon-list__wrapper') + listContainer.appendChild(listWrapperEl) + var listTitleEl = document.createElement('div') + listTitleEl.classList.add('beacon-list__title') + listTitleEl.innerHTML = list.title + listWrapperEl.appendChild(listTitleEl) + var listEl = document.createElement('span') + listWrapperEl.appendChild(listEl) + list.wallets.forEach(function (wallet) { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + showWallet(listEl, list.type, wallet) + return [2] + }) + }) + }) + }) + } + showWalletLists(info.walletLists) + messageFn = function (event) { + return __awaiter(void 0, void 0, void 0, function () { + var newInfo + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!(event.data === 'extensionsUpdated')) return [3, 2] + return [4, getInfo()] + case 1: + newInfo = _a.sent() + showWalletLists(newInfo.walletLists) + _a.label = 2 + case 2: + return [2] + } + }) + }) + } + closeFn = function (event) { + if (event.data === 'closeAlert-' + id) { + beacon_core_1.windowRef.removeEventListener('message', messageFn) + beacon_core_1.windowRef.removeEventListener('message', closeFn) + } + } + beacon_core_1.windowRef.addEventListener('message', messageFn) + beacon_core_1.windowRef.addEventListener('message', closeFn) + qr = shadowRoot.getElementById('beacon--qr__container') + copyButton = shadowRoot.getElementById('beacon--qr__copy') + titleEl = shadowRoot.getElementById('beacon-title') + platform = (0, platform_1.isAndroid)(window) + ? 'android' + : (0, platform_1.isIOS)(window) + ? 'ios' + : 'desktop' + mainText = shadowRoot.getElementById('beacon-main-text') + walletList = shadowRoot.getElementById('pairing-container') + switchButton = shadowRoot.getElementById('beacon--switch__container') + clipboardFn = function () { + return __awaiter(void 0, void 0, void 0, function () { + var code, _a, _b, _c + return __generator(this, function (_d) { + switch (_d.label) { + case 0: + if (!pairingPayload) return [3, 3] + _c = (_b = serializer).serialize + return [4, pairingPayload.p2pSyncCode()] + case 1: + return [4, _c.apply(_b, [_d.sent()])] + case 2: + _a = _d.sent() + return [3, 4] + case 3: + _a = '' + _d.label = 4 + case 4: + code = _a + navigator.clipboard.writeText(code).then( + function () { + if (copyButton) { + copyButton.innerText = 'Copied' + } + logger.log('Copying to clipboard was successful!') + }, + function (err) { + logger.error('Could not copy text to clipboard: ', err) + } + ) + return [2] + } + }) + }) + } + qrShown = false + showPlatform = function (type) { + return __awaiter(void 0, void 0, void 0, function () { + var platformSwitch, _a, code, _b, _c, uri, qrSVG, qrString + return __generator(this, function (_d) { + switch (_d.label) { + case 0: + platformSwitch = shadowRoot.getElementById('beacon-switch') + if (platformSwitch) { + platformSwitch.innerHTML = + type === 'none' + ? 'Pair wallet on same device' + : 'Pair wallet on another device' + } + if ( + !( + mainText && + walletList && + switchButton && + copyButton && + qr && + titleEl + ) + ) + return [3, 8] + mainText.style.display = 'none' + titleEl.style.textAlign = 'center' + walletList.style.display = 'none' + switchButton.style.display = 'initial' + _a = type + switch (_a) { + case 'ios': + return [3, 1] + case 'android': + return [3, 2] + case 'desktop': + return [3, 3] + } + return [3, 4] + case 1: + walletList.style.display = 'initial' + return [3, 8] + case 2: + walletList.style.display = 'initial' + return [3, 8] + case 3: + walletList.style.display = 'initial' + titleEl.style.textAlign = 'left' + mainText.style.display = 'none' + switchButton.style.display = 'initial' + return [3, 8] + case 4: + if (!!qrShown) return [3, 7] + qrShown = true + _c = (_b = serializer).serialize + return [4, pairingPayload.p2pSyncCode()] + case 5: + return [4, _c.apply(_b, [_d.sent()])] + case 6: + code = _d.sent() + uri = (0, get_tzip10_link_1.getTzip10Link)('tezos://', code) + qrSVG = (0, qr_1.getQrData)(uri, 'svg') + qrString = qrSVG.replace('\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

\n {{callToAction}}\n

\n\n {{main}}\n\n
\n {{buttons}}\n
\n
\n
\n
\n
\n\n', + default: { + html: '
\n {{body}}\n
\n', + css: ':host {\n --animation-duration: 300ms;\n all: initial;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n.animated {\n animation-duration: var(--animation-duration);\n animation-fill-mode: both;\n}\n\n.fadeIn {\n animation-name: fadeIn;\n}\n\n.fadeOut {\n animation-name: fadeOut;\n}\n\n.beacon-modal__wrapper {\n position: relative;\n top: 0;\n display: inline-block;\n z-index: 2147483000;\n max-width: 500px;\n width: 80%;\n padding: 24px;\n}\n\n@media (min-height: 700px) {\n .beacon-modal__wrapper {\n top: 50%;\n transform: translateY(-50%);\n }\n}\n\n.theme__light .beacon-modal__base,\n.theme__light .beacon-modal__close__wrapper {\n background: #fff;\n}\n\n.theme__dark .beacon-modal__base,\n.theme__dark .beacon-modal__close__wrapper {\n background: #27334c;\n}\n\n.beacon-modal__base,\n.beacon-modal__close__wrapper {\n box-shadow: 0 12px 24px 0 rgba(0, 0, 0, 0.1);\n}\n\n.beacon-modal__base {\n margin: 0 auto;\n border-radius: 32px;\n overflow: hidden;\n}\n\n.beacon-modal__header {\n padding: 16px 0;\n width: 100%;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n}\n\n.beacon-modal__headerLogo {\n width: 100%;\n max-width: 320px;\n margin: 20px auto;\n height: 100%;\n}\n\na,\nbutton {\n cursor: pointer;\n}\n\n.beacon-modal__close__wrapper {\n position: absolute;\n top: 44px;\n right: 24px;\n z-index: 10000;\n cursor: pointer;\n border-radius: 100%;\n}\n\n.beacon-modal__close__icon {\n width: 16px;\n height: 16px;\n position: relative;\n top: 0;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n transform: rotate(45deg);\n margin: 8px;\n}\n\n.beacon-modal__close__line1 {\n position: absolute;\n width: 90%;\n}\n\n.beacon-modal__close__line2 {\n position: absolute;\n width: 90%;\n transform: rotate(90deg);\n}\n\n.theme__light .beacon-modal__close__line2,\n.theme__light .beacon-modal__close__line1 {\n border: 1px solid #000;\n}\n\n.theme__dark .beacon-modal__close__line2,\n.theme__dark .beacon-modal__close__line1 {\n border: 1px solid #fff;\n}\n\n.beacon-alert__base {\n position: fixed;\n overflow-y: scroll;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 2147482999;\n background-color: rgb(17 17 17 / 0.84);\n text-align: center;\n -ms-overflow-style: none;\n scrollbar-width: none;\n font-family: Roboto, Helvetica, sans-serif;\n}\n\n.beacon-alert__base::-webkit-scrollbar {\n display: none;\n}\n\n.beacon-alert__title {\n text-align: center;\n}\n\n.beacon-alert__text,\n.beacon-alert__title {\n margin: 0 auto;\n padding: 0 0 24px;\n}\n\n.margin__bottom {\n margin-bottom: 16px;\n}\n\n.beacon-alert__title {\n font-size: 18px;\n}\n\n.theme__light .beacon-alert__title {\n color: #3b3d40;\n}\n\n.theme__dark .beacon-alert__title,\n.theme__dark .beacon-alert__text {\n color: #7c99d6;\n}\n\n.beacon-alert__text {\n color: #000;\n font-size: 14px;\n}\n\n.beacon-modal__button,\n.beacon-modal__button--outline {\n height: 36px;\n font-size: 14px;\n letter-spacing: 0.84px;\n margin-bottom: 4px;\n margin-inline-end: 2px;\n margin-inline-start: 2px;\n margin-left: 2px;\n margin-right: 2px;\n margin-top: 4px;\n padding-inline-end: 15.4px;\n padding-inline-start: 15.4px;\n padding-left: 15.4px;\n padding-right: 15.4px;\n overflow-wrap: break-word;\n pointer-events: auto;\n text-align: center;\n border-radius: 4px;\n border: 2px solid #3880ff;\n}\n\n.beacon-modal__button {\n background: #3880ff;\n color: #fff;\n}\n\n.beacon-modal__button--outline {\n background: #fff;\n color: #444444;\n border: 1px solid #444444;\n}\n\n.beacon-alert__image {\n width: 200px;\n height: 200px;\n box-sizing: border-box;\n box-shadow: 0 10px 20px 0 rgba(17, 17, 17, 0.12);\n border: 1px solid rgba(17, 17, 17, 0.04);\n border-radius: 16px;\n}\n.connect__btn {\n margin: 24px 0;\n width: 100%;\n}\n\n#beacon-modal__content {\n padding: 24px;\n}\n\n#beacon-switch {\n margin-top: 24px;\n}\n\n#beacon-title {\n margin: 0 0 24px;\n}\n\na {\n text-decoration: none;\n}\n\npre {\n white-space: pre-wrap; /* css-3 */\n white-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n white-space: -pre-wrap; /* Opera 4-6 */\n white-space: -o-pre-wrap; /* Opera 7 */\n word-wrap: break-word; /* Internet Explorer 5.5+ */\n padding: 16px;\n background: #ececec;\n line-height: 1.25rem;\n}\n' + }, + pair: { + html: '\n\n
\n

\n Scan QR code with a Beacon-compatible wallet.\n Learn more\n

\n {{body}}\n
\n\n
\n \n
\n\n
\n', + css: "#beacon-main-text {\n display: initial;\n}\n.beacon-selection__container {\n padding: 16px 16px 0;\n}\n.beacon-selection__list {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n text-decoration: none;\n padding-bottom: 12px;\n align-items: center;\n}\n.beacon-list__title {\n text-align: left;\n font-size: 12px;\n}\n.beacon-list__wrapper:nth-child(-n + 3) {\n padding: 0 0 1rem;\n}\n.theme__light .beacon-list__title {\n color: #7c828b;\n}\n.theme__dark .beacon-list__title,\n.theme__dark #beacon--disclaimer {\n color: #7c99d6;\n}\n\n.beacon-selection__name {\n font-size: 1rem;\n font-weight: 600;\n text-align: left;\n}\n.theme__light .beacon-selection__name,\n.theme__light .beacon--selection__name__lg {\n color: #3b3d40;\n}\n.theme__dark .beacon-selection__name,\n.theme__dark .beacon--selection__name__lg {\n color: #6183ff;\n}\n.beacon-selection__img {\n width: 48px;\n height: 48px;\n box-shadow: 0 4px 12px 0 rgba(17, 17, 17, 0.24);\n border-radius: 16px;\n background-color: #fff;\n}\n.beacon--selection__name__lg {\n font-size: 1.5rem;\n font-weight: 600;\n text-align: center;\n padding: 1rem 0;\n}\n.beacon--selected__container {\n padding: 2rem 0 0;\n}\n#beacon--qr__copy__container {\n height: 0;\n}\n#beacon--qr__copy {\n display: none;\n position: relative;\n top: -190px;\n left: 138px;\n margin: 0;\n}\n#beacon--qr__container {\n margin-left: auto;\n margin-right: auto;\n}\n#beacon--qr__container:hover #beacon--qr__copy {\n display: block;\n}\n.disabled {\n cursor: initial;\n}\n.disabled span,\n.disabled img {\n opacity: 0.48;\n}\n.disabled p {\n text-align: left;\n margin: 0;\n font-size: 10px;\n font-weight: 300;\n}\n.disabled img {\n -webkit-filter: grayscale(100%);\n -moz-filter: grayscale(100%);\n -ms-filter: grayscale(100%);\n -o-filter: grayscale(100%);\n filter: grayscale(100%);\n filter: gray;\n}\n\n#beacon--disclaimer {\n text-align: left;\n padding-top: 24px;\n font-size: 0.875rem;\n}\n.progress-line,\n.progress-line:before {\n height: 3px;\n width: -webkit-fill-available;\n margin-left: -24px;\n margin-right: -24px;\n}\n.progress-line {\n background-color: #a7c4f7;\n display: -webkit-flex;\n display: flex;\n}\n.progress-line:before {\n background-color: #3880ff;\n content: '';\n -webkit-animation: running-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n animation: running-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n}\n@-webkit-keyframes running-progress {\n 0% {\n margin-left: 0px;\n margin-right: 100%;\n }\n 50% {\n margin-left: 25%;\n margin-right: 0%;\n }\n 100% {\n margin-left: 100%;\n margin-right: 0;\n }\n}\n@keyframes running-progress {\n 0% {\n margin-left: 0px;\n margin-right: 100%;\n }\n 50% {\n margin-left: 25%;\n margin-right: 0%;\n }\n 100% {\n margin-left: 100%;\n margin-right: 0;\n }\n}\n" + } + } + }, + {} + ], + 259: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.iOSList = exports.webList = exports.desktopList = exports.extensionList = void 0 + exports.extensionList = [ + { + key: 'spire_chrome', + id: 'gpfndedineagiepkpinficbcbbgjoenn', + name: 'Spire', + shortName: 'Spire', + color: '', + logo: 'data:image/png;base64,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', + link: 'https://spirewallet.com/' + }, + { + key: 'temple_chrome', + id: 'ookjlbkiijinhpmnjffcofjonbfbgaoc', + name: 'Temple Wallet', + shortName: 'Temple', + color: '', + logo: 'data:image/png;base64,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', + link: 'https://templewallet.com/' + } + ] + exports.desktopList = [ + { + key: 'galleon_desktop', + name: 'Galleon', + shortName: 'Galleon', + color: '', + logo: 'data:image/png;base64,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', + deepLink: 'galleon://' + }, + { + key: 'umami_desktop', + name: 'Umami', + shortName: 'Umami', + color: '', + logo: 'data:image/png;base64,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', + deepLink: 'umami://' + } + ] + exports.webList = [ + { + key: 'kukai_web', + name: 'Kukai Wallet', + shortName: 'Kukai', + color: '', + logo: 'data:image/png;base64,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', + links: { + mainnet: 'https://wallet.kukai.app', + delphinet: 'https://testnet.kukai.app', + edonet: 'https://edonet.kukai.app', + florencenet: 'https://florencenet.kukai.app', + granadanet: 'https://granadanet.kukai.app', + hangzhounet: 'https://hangzhounet.kukai.app' + } + } + ] + exports.iOSList = [ + { + key: 'airgap_ios', + name: 'AirGap Wallet', + shortName: 'AirGap', + color: 'rgb(4, 235, 204)', + logo: 'data:image/png;base64,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', + universalLink: 'https://wallet.airgap.it', + deepLink: 'airgap-wallet://' + } + ] + }, + {} + ], + 260: [ + function (require, module, exports) { + 'use strict' + var __assign = + (this && this.__assign) || + function () { + __assign = + Object.assign || + function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i] + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p] + } + return t + } + return __assign.apply(this, arguments) + } + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.openToast = exports.closeToast = void 0 + var colorMode_1 = require('../../colorMode') + var replace_in_template_1 = require('../../utils/replace-in-template') + var beacon_utils_1 = require('@airgap/beacon-utils') + var toast_templates_1 = require('./toast-templates') + var document + if (typeof window !== 'undefined' && typeof window.document !== 'undefined') { + document = window.document + } + var EXPAND_AFTER = 5 * 1e3 + var timeout + var expandTimeout + var globalToastConfig + var createActionItem = function (toastAction) { + return __awaiter(void 0, void 0, void 0, function () { + var text, actionText, actionCallback, id, wrapper + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + ;(text = toastAction.text), + (actionText = toastAction.actionText), + (actionCallback = toastAction.actionCallback) + return [4, (0, beacon_utils_1.generateGUID)()] + case 1: + id = _a.sent() + wrapper = document.createElement('div') + wrapper.classList.add('beacon-toast__action__item') + if (actionCallback) { + wrapper.innerHTML = text.length > 0 ? '

' + text + '

' : '' + wrapper.innerHTML += '

' + actionText + '

' + } else if (actionText) { + wrapper.innerHTML = + text.length > 0 + ? '

' + text + '

' + : '' + wrapper.innerHTML += '

' + actionText + '

' + } else { + wrapper.innerHTML = '

' + text + '

' + } + if (actionCallback) { + wrapper.addEventListener('click', actionCallback) + } + return [2, wrapper] + } + }) + }) + } + var removeAllChildNodes = function (parent) { + while (parent.firstChild) { + parent.removeChild(parent.firstChild) + } + } + var formatToastText = function (html) { + var _a, _b + var walletIcon = + (_a = + globalToastConfig === null || globalToastConfig === void 0 + ? void 0 + : globalToastConfig.walletInfo) === null || _a === void 0 + ? void 0 + : _a.icon + var walletName = + (_b = + globalToastConfig === null || globalToastConfig === void 0 + ? void 0 + : globalToastConfig.walletInfo) === null || _b === void 0 + ? void 0 + : _b.name + var wallet = '' + if (walletIcon) { + wallet += + '' + } + if (walletName) { + wallet += '' + walletName + '' + } else { + wallet += 'Wallet' + } + return (0, replace_in_template_1.replaceInTemplate)(html, 'wallet', wallet) + } + var getToastHTML = function (config) { + var text = config.body + var html = (0, replace_in_template_1.replaceInTemplate)( + toast_templates_1.toastTemplates.default.html, + 'text', + text + ) + html = formatToastText(html) + return { style: toast_templates_1.toastTemplates.default.css, html: html } + } + var closeToast = function () { + return new Promise(function (resolve) { + var _a + globalToastConfig = undefined + var wrapper = document.getElementById('beacon-toast-wrapper') + if (!wrapper) { + return resolve() + } + var elm = + (_a = wrapper.shadowRoot) === null || _a === void 0 + ? void 0 + : _a.getElementById('beacon-toast') + if (elm) { + var animationDuration = 300 + if (timeout) { + clearTimeout(timeout) + timeout = undefined + } + elm.className = elm.className.replace('fadeIn', 'fadeOut') + window.setTimeout(function () { + var parent = wrapper.parentNode + if (parent) { + parent.removeChild(wrapper) + } + resolve() + }, animationDuration) + } else { + resolve() + } + }) + } + exports.closeToast = closeToast + var registerClick = function (shadowRoot, id, callback) { + var button = shadowRoot.getElementById(id) + if (button) { + button.addEventListener('click', function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, callback(button)] + case 1: + _a.sent() + return [2] + } + }) + }) + }) + } + return button + } + var showElement = function (shadowRoot, id) { + var el = shadowRoot.getElementById(id) + if (el) { + el.classList.remove('hide') + el.classList.add('show') + } + } + var hideElement = function (shadowRoot, id) { + var el = shadowRoot.getElementById(id) + if (el) { + el.classList.add('hide') + el.classList.remove('show') + } + } + var hideLoader = function (shadowRoot) { + hideElement(shadowRoot, 'beacon-toast-loader') + showElement(shadowRoot, 'beacon-toast-loader-placeholder') + } + var showExpand = function (shadowRoot) { + showElement(shadowRoot, 'beacon-toast-button-expand') + hideElement(shadowRoot, 'beacon-toast-button-close') + } + var showClose = function (shadowRoot) { + showElement(shadowRoot, 'beacon-toast-button-close') + hideElement(shadowRoot, 'beacon-toast-button-expand') + } + var collapseList = function (shadowRoot) { + var expandButton = shadowRoot.getElementById('beacon-toast-button-expand') + var list = shadowRoot.getElementById('beacon-toast-list') + if (expandButton && list) { + expandButton.classList.remove('beacon-toast__upside_down') + list.classList.add('hide') + list.classList.remove('show') + } + } + var expandList = function (shadowRoot) { + var expandButton = shadowRoot.getElementById('beacon-toast-button-expand') + var list = shadowRoot.getElementById('beacon-toast-list') + if (expandButton && list) { + expandButton.classList.add('beacon-toast__upside_down') + list.classList.remove('hide') + list.classList.add('show') + } + } + var expandOrCollapseList = function (shadowRoot) { + var expandButton = shadowRoot.getElementById('beacon-toast-button-expand') + var list = shadowRoot.getElementById('beacon-toast-list') + if (expandButton && list) { + if (expandButton.classList.contains('beacon-toast__upside_down')) { + collapseList(shadowRoot) + } else { + expandList(shadowRoot) + } + } + } + var addActionsToToast = function (shadowRoot, toastConfig, list) { + return __awaiter(void 0, void 0, void 0, function () { + var actions, actionPromises, actionItems, poweredByBeacon + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + actions = toastConfig.actions + if (!(actions && actions.length > 0)) return [3, 2] + actionPromises = actions.map(function (action) { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, createActionItem(action)] + }) + }) + }) + return [4, Promise.all(actionPromises)] + case 1: + actionItems = _a.sent() + actionItems.forEach(function (item) { + return list.appendChild(item) + }) + poweredByBeacon = document.createElement('small') + poweredByBeacon.classList.add('beacon-toast__powered') + poweredByBeacon.innerHTML = + toast_templates_1.toastTemplates.default.poweredByBeacon + list.appendChild(poweredByBeacon) + showExpand(shadowRoot) + return [3, 3] + case 2: + showClose(shadowRoot) + collapseList(shadowRoot) + _a.label = 3 + case 3: + return [2] + } + }) + }) + } + var createNewToast = function (toastConfig) { + return __awaiter(void 0, void 0, void 0, function () { + var timer, + shadowRootEl, + shadowRoot, + wrapper, + _a, + style, + html, + styleEl, + colorMode, + elm, + list, + openWalletButtonEl, + closeButton + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + globalToastConfig = toastConfig + timer = toastConfig.timer + shadowRootEl = document.createElement('div') + shadowRootEl.setAttribute('id', 'beacon-toast-wrapper') + shadowRoot = shadowRootEl.attachShadow({ mode: 'open' }) + wrapper = document.createElement('div') + ;(_a = getToastHTML(toastConfig)), (style = _a.style), (html = _a.html) + wrapper.innerHTML = html + styleEl = document.createElement('style') + styleEl.textContent = style + shadowRoot.appendChild(wrapper) + shadowRoot.appendChild(styleEl) + if (timer) { + timeout = window.setTimeout(function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, closeToast()] + case 1: + _a.sent() + return [2] + } + }) + }) + }, timer) + } + document.body.prepend(shadowRootEl) + colorMode = (0, colorMode_1.getColorMode)() + elm = shadowRoot.getElementById('beacon-toast') + if (elm) { + elm.classList.add('theme__' + colorMode) + } + list = shadowRoot.getElementById('beacon-toast-list') + if (!list) return [3, 2] + return [4, addActionsToToast(shadowRoot, toastConfig, list)] + case 1: + _b.sent() + _b.label = 2 + case 2: + openWalletButtonEl = shadowRoot.getElementById('beacon-open-wallet') + if (openWalletButtonEl) { + if (toastConfig.openWalletAction) { + openWalletButtonEl.addEventListener('click', function () { + if (toastConfig.openWalletAction) { + toastConfig.openWalletAction() + } + }) + } else { + openWalletButtonEl.classList.add('hide') + } + } + if (globalToastConfig.state === 'loading') { + expandTimeout = window.setTimeout(function () { + return __awaiter(void 0, void 0, void 0, function () { + var expandButton + return __generator(this, function (_a) { + expandButton = shadowRoot.getElementById('beacon-toast-button-expand') + if ( + expandButton && + !expandButton.classList.contains('beacon-toast__upside_down') + ) { + expandOrCollapseList(shadowRoot) + } + return [2] + }) + }) + }, EXPAND_AFTER) + } + registerClick(shadowRoot, 'beacon-toast-button-done', function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, closeToast()] + case 1: + _a.sent() + return [2] + } + }) + }) + }) + closeButton = registerClick( + shadowRoot, + 'beacon-toast-button-close', + function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, closeToast()] + case 1: + _a.sent() + return [2] + } + }) + }) + } + ) + if (closeButton && globalToastConfig.state === 'loading') { + closeButton.classList.add('hide') + } + registerClick(shadowRoot, 'beacon-toast-button-expand', function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + expandOrCollapseList(shadowRoot) + return [2] + }) + }) + }) + return [2] + } + }) + }) + } + var updateToast = function (toastConfig) { + return __awaiter(void 0, void 0, void 0, function () { + var timer, wrapper, shadowRoot, list, toastTextEl, openWalletButtonEl, doneButton + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + globalToastConfig = __assign(__assign({}, globalToastConfig), toastConfig) + timer = toastConfig.timer + wrapper = document.getElementById('beacon-toast-wrapper') + if (!wrapper) { + return [2] + } + shadowRoot = wrapper.shadowRoot + if (!shadowRoot) { + return [2] + } + list = shadowRoot.getElementById('beacon-toast-list') + if (!list) return [3, 2] + removeAllChildNodes(list) + return [4, addActionsToToast(shadowRoot, toastConfig, list)] + case 1: + _a.sent() + _a.label = 2 + case 2: + if (globalToastConfig.state === 'loading') { + expandTimeout = window.setTimeout(function () { + return __awaiter(void 0, void 0, void 0, function () { + var expandButton + return __generator(this, function (_a) { + expandButton = shadowRoot.getElementById('beacon-toast-button-expand') + if ( + expandButton && + !expandButton.classList.contains('beacon-toast__upside_down') + ) { + expandOrCollapseList(shadowRoot) + } + return [2] + }) + }) + }, EXPAND_AFTER) + } + toastTextEl = shadowRoot.getElementById('beacon-text-content') + if (toastTextEl) { + toastTextEl.innerHTML = formatToastText(toastConfig.body) + } + openWalletButtonEl = shadowRoot.getElementById('beacon-open-wallet') + if (openWalletButtonEl) { + if (toastConfig.openWalletAction) { + openWalletButtonEl.classList.remove('hide') + openWalletButtonEl.addEventListener('click', function () { + if (toastConfig.openWalletAction) { + toastConfig.openWalletAction() + } + }) + } else { + openWalletButtonEl.classList.add('hide') + } + } + if (timer) { + timeout = window.setTimeout(function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, closeToast()] + case 1: + _a.sent() + return [2] + } + }) + }) + }, timer) + } + doneButton = shadowRoot.getElementById('beacon-toast-button-done') + if (doneButton) { + doneButton.addEventListener('click', function () { + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, closeToast()] + case 1: + _a.sent() + return [2] + } + }) + }) + }) + } + return [2] + } + }) + }) + } + var openToast = function (toastConfig) { + return __awaiter(void 0, void 0, void 0, function () { + var wrapper, shadowRoot + var _a + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + if (expandTimeout) { + clearTimeout(expandTimeout) + } + wrapper = document.getElementById('beacon-toast-wrapper') + if (!wrapper) return [3, 6] + if (!toastConfig.forceNew) return [3, 3] + return [4, closeToast()] + case 1: + _b.sent() + return [4, createNewToast(toastConfig)] + case 2: + _b.sent() + return [3, 5] + case 3: + return [4, updateToast(toastConfig)] + case 4: + _b.sent() + _b.label = 5 + case 5: + return [3, 8] + case 6: + return [4, createNewToast(toastConfig)] + case 7: + _b.sent() + _b.label = 8 + case 8: + if (globalToastConfig && globalToastConfig.state === 'finished') { + shadowRoot = + (_a = document.getElementById('beacon-toast-wrapper')) === null || + _a === void 0 + ? void 0 + : _a.shadowRoot + if (shadowRoot) { + hideLoader(shadowRoot) + showClose(shadowRoot) + expandList(shadowRoot) + } + } + return [2] + } + }) + }) + } + exports.openToast = openToast + }, + { + '../../colorMode': 249, + '../../utils/replace-in-template': 266, + './toast-templates': 261, + '@airgap/beacon-utils': 302 + } + ], + 261: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.toastTemplates = void 0 + exports.toastTemplates = { + default: { + html: '
\n
\n \n

{{text}}

\n \n Open\n \n
\n\n
\n
\n
\n
\n
\n', + css: ":host {\n --animation-duration: 300ms;\n all: initial;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n.animated {\n animation-duration: var(--animation-duration);\n animation-fill-mode: both;\n}\n\n.fadeIn {\n animation-name: fadeIn;\n}\n\n.fadeOut {\n animation-name: fadeOut;\n}\n\n.beacon-toast__base {\n position: fixed;\n top: 16px;\n right: 16px;\n z-index: 2147483000;\n margin: 0 auto;\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 12px 24px 0 rgba(0, 0, 0, 0.1);\n flex-direction: column;\n}\n@media (max-width: 576px) {\n .beacon-toast__base {\n top: 8px;\n right: 8px;\n left: 8px;\n }\n .beacon-toast__wallet__outer {\n flex-wrap: wrap;\n }\n .beacon-toast__wallet__link {\n display: flex;\n margin-left: 12px !important;\n }\n}\n\n.theme__light.beacon-toast__base {\n background: #fff;\n}\n\n.theme__dark.beacon-toast__base {\n background: #27334c;\n}\n\n.theme__dark p {\n color: #6183ff;\n}\n\na {\n text-decoration: none;\n color: #3880ff;\n}\n\na svg {\n width: 12px;\n margin-left: 2px;\n}\n\na:visited {\n color: #3880ff;\n}\n\nhr {\n height: 1px;\n color: rgba(0, 0, 0, 0.12);\n background-color: rgba(0, 0, 0, 0.12);\n border: none;\n width: 100%;\n margin: 0;\n display: none;\n}\n\n.show {\n display: block !important;\n}\n\n.hide {\n display: none !important;\n}\n\n#beacon-toast-list {\n display: none;\n}\n\n.beacon-toast__upside_down {\n transform: rotate(180deg);\n}\n\n.beacon-toast__content {\n justify-content: space-between;\n min-height: 56px;\n height: 0;\n}\n\n.beacon-toast__action__item,\n.beacon-toast__powered a,\n.beacon-toast__wallet__container,\n#beacon-text,\n.beacon-toast__action__item p,\n.beacon-toast__wallet__outer {\n align-items: center;\n}\n\n.beacon-toast__content,\n.beacon-toast__base,\n.beacon-toast__action__item,\n.beacon-toast__powered a,\n#beacon-text,\n.beacon-toast__wallet__container,\n.beacon-toast__wallet__outer {\n display: flex;\n}\n\n.beacon-toast__content,\n.beacon-toast__action__item,\n.beacon-toast__powered a {\n padding: 0 16px;\n font-family: Roboto, Helvetica, sans-serif;\n}\n\n#beacon-text strong {\n display: contents;\n}\n.beacon-toast__wallet__link {\n margin-left: 8px;\n}\n.beacon-toast__wallet__link svg {\n margin-left: 4px;\n}\n.beacon-toast__powered a {\n margin: 4px 0 12px;\n font-size: 12px;\n opacity: 0.64;\n}\n\n.beacon-toast__powered svg {\n width: 20px;\n height: 20px;\n margin: 0 2px 0 4px;\n}\n\n.beacon-toast__action__item {\n font-size: 14px;\n max-width: 40ch;\n}\n\n.beacon-toast__action__item p {\n margin-right: 8px;\n}\n\n.beacon-toast__action__item__subtitle,\n.beacon-toast__powered a {\n min-width: 88px;\n color: rgba(0, 0, 0, 0.54);\n}\n\n.theme__dark .beacon-toast__powered a {\n color: #7c99d6;\n}\n\n.beacon-toast__content__img {\n width: 24px;\n height: 24px;\n margin-right: 4px;\n image-rendering: -moz-crisp-edges; /* Firefox */\n image-rendering: -o-crisp-edges; /* Opera */\n image-rendering: -webkit-optimize-contrast; /* Webkit (non-standard naming) */\n image-rendering: crisp-edges;\n -ms-interpolation-mode: nearest-neighbor; /* IE (non-standard property) */\n}\n\n.beacon-toast__more {\n width: 14px;\n transition: transform 0.5s;\n}\n\na,\n.beacon-toast__more {\n cursor: pointer;\n}\n\na:hover {\n opacity: 0.64;\n}\n\n.theme__dark .beacon-toast__more {\n color: #7c99d6;\n}\n\n.beacon-toast__more--action {\n margin: 8px 0;\n}\n\n#beacon-text {\n padding-right: 24px;\n}\n\n#beacon-text-content {\n display: flex;\n align-items: center;\n}\n\n.progress-line,\n.progress-line:before {\n height: 3px;\n width: 100%;\n margin: 0;\n}\n.progress-line {\n background-color: #a7c4f7;\n display: -webkit-flex;\n display: flex;\n}\n.progress-line:before {\n background-color: #3880ff;\n content: '';\n -webkit-animation: running-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n animation: running-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n}\n@-webkit-keyframes running-progress {\n 0% {\n margin-left: 0px;\n margin-right: 100%;\n }\n 50% {\n margin-left: 25%;\n margin-right: 0%;\n }\n 100% {\n margin-left: 100%;\n margin-right: 0;\n }\n}\n@keyframes running-progress {\n 0% {\n margin-left: 0px;\n margin-right: 100%;\n }\n 50% {\n margin-left: 25%;\n margin-right: 0%;\n }\n 100% {\n margin-left: 100%;\n margin-right: 0;\n }\n}\n", + poweredByBeacon: + '\n powered by\n \n beacon_logo\n \n \n \n \n Beacon\n\n' + } + } + }, + {} + ], + 262: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.BlockExplorer = void 0 + var BlockExplorer = (function () { + function BlockExplorer(rpcUrls) { + this.rpcUrls = rpcUrls + } + BlockExplorer.prototype.getLinkForNetwork = function (network) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.rpcUrls[network.type]] + }) + }) + } + return BlockExplorer + })() + exports.BlockExplorer = BlockExplorer + }, + {} + ], + 263: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getTzip10Link = void 0 + var getTzip10Link = function (url, payload) { + return url + '?type=tzip10&data=' + payload + } + exports.getTzip10Link = getTzip10Link + }, + {} + ], + 264: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.isDesktop = + exports.isAndroid = + exports.isIOS = + exports.isMobile = + exports.testUserAgent = + void 0 + var testUserAgent = function (win, expr) { + return expr.test(win.navigator.userAgent) + } + exports.testUserAgent = testUserAgent + var matchMedia = function (win, query) { + return win.matchMedia(query).matches + } + var isMobile = function (win) { + return matchMedia(win, '(any-pointer:coarse)') + } + exports.isMobile = isMobile + var isIpad = function (win) { + if ((0, exports.testUserAgent)(win, /iPad/i)) { + return true + } + if ((0, exports.testUserAgent)(win, /Macintosh/i) && (0, exports.isMobile)(win)) { + return true + } + return false + } + var isIOS = function (win) { + return (0, exports.testUserAgent)(win, /iPhone|iPod/i) || isIpad(win) + } + exports.isIOS = isIOS + var isAndroid = function (win) { + return (0, exports.testUserAgent)(win, /android|sink/i) + } + exports.isAndroid = isAndroid + var isDesktop = function (win) { + return !(0, exports.isMobile)(win) + } + exports.isDesktop = isDesktop + }, + {} + ], + 265: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.getQrData = void 0 + var qrcode = require('qrcode-generator') + var beacon_core_1 = require('@airgap/beacon-core') + var logger = new beacon_core_1.Logger('QR') + var getQrData = function (payload, type) { + var typeNumber = 0 + var errorCorrectionLevel = 'L' + var qr = qrcode(typeNumber, errorCorrectionLevel) + if (payload.length > 500) { + logger.warn( + 'getQrData', + 'The size of the payload in the QR code is quite long and some devices might not be able to scan it anymore. To reduce the QR size, try using a shorter "name", "appUrl" and "iconUrl"' + ) + } + try { + qr.addData(payload) + qr.make() + if (type === 'svg') { + return qr.createSvgTag() + } else if (type === 'ascii') { + var length_1 = qr.getModuleCount() + var black = ' ' + var white = ' ' + var whiteLine = new Array(length_1 + 3).join(white) + var blackLine = new Array(length_1 + 3).join(black) + var ascii = '' + ascii += blackLine + '\n' + ascii += whiteLine + '\n' + for (var x = 0; x < length_1; x++) { + ascii += white + for (var y = 0; y < length_1; y++) { + ascii += qr.isDark(x, y) ? black : white + } + ascii += white + '\n' + } + ascii += whiteLine + ascii += blackLine + return ascii + } else { + return qr.createDataURL() + } + } catch (qrError) { + console.error('error', qrError) + throw qrError + } + } + exports.getQrData = getQrData + }, + { '@airgap/beacon-core': 229, 'qrcode-generator': 179 } + ], + 266: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.replaceInTemplate = void 0 + var replaceInTemplate = function (text, placeholder, value) { + return text.split('{{' + placeholder + '}}').join(value) + } + exports.replaceInTemplate = replaceInTemplate + }, + {} + ], + 267: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.shortenString = void 0 + var shortenString = function (text) { + if (text.length >= 12) { + return text.substr(0, 5) + '...' + text.substr(-5) + } + return text + } + exports.shortenString = shortenString + }, + {} + ], + 268: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.TezblockBlockExplorer = void 0 + var beacon_types_1 = require('@airgap/beacon-types') + var block_explorer_1 = require('./block-explorer') + var TezblockBlockExplorer = (function (_super) { + __extends(TezblockBlockExplorer, _super) + function TezblockBlockExplorer(rpcUrls) { + var _a + if (rpcUrls === void 0) { + rpcUrls = + ((_a = {}), + (_a[beacon_types_1.NetworkType.MAINNET] = 'https://tezblock.io'), + (_a[beacon_types_1.NetworkType.DELPHINET] = 'https://delphinet.tezblock.io'), + (_a[beacon_types_1.NetworkType.EDONET] = 'https://edonet.tezblock.io'), + (_a[beacon_types_1.NetworkType.FLORENCENET] = 'https://florencenet.tezblock.io'), + (_a[beacon_types_1.NetworkType.GRANADANET] = 'https://granadanet.tezblock.io'), + (_a[beacon_types_1.NetworkType.HANGZHOUNET] = 'https://hangzhounet.tezblock.io'), + (_a[beacon_types_1.NetworkType.CUSTOM] = 'https://granadanet.tezblock.io'), + _a) + } + var _this = _super.call(this, rpcUrls) || this + _this.rpcUrls = rpcUrls + return _this + } + TezblockBlockExplorer.prototype.getAddressLink = function (address, network) { + return __awaiter(this, void 0, void 0, function () { + var blockExplorer + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.getLinkForNetwork(network)] + case 1: + blockExplorer = _a.sent() + return [2, blockExplorer + '/account/' + address] + } + }) + }) + } + TezblockBlockExplorer.prototype.getTransactionLink = function (transactionId, network) { + return __awaiter(this, void 0, void 0, function () { + var blockExplorer + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.getLinkForNetwork(network)] + case 1: + blockExplorer = _a.sent() + return [2, blockExplorer + '/transaction/' + transactionId] + } + }) + }) + } + return TezblockBlockExplorer + })(block_explorer_1.BlockExplorer) + exports.TezblockBlockExplorer = TezblockBlockExplorer + }, + { './block-explorer': 262, '@airgap/beacon-types': 287 } + ], + 269: [ + function (require, module, exports) { + 'use strict' + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k] + } + }) + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k + o[k2] = m[k] + }) + var __exportStar = + (this && this.__exportStar) || + function (m, exports) { + for (var p in m) + if (p !== 'default' && !Object.prototype.hasOwnProperty.call(exports, p)) + __createBinding(exports, m, p) + } + Object.defineProperty(exports, '__esModule', { value: true }) + __exportStar(require('@airgap/beacon-core'), exports) + __exportStar(require('@airgap/beacon-dapp'), exports) + __exportStar(require('@airgap/beacon-transport-matrix'), exports) + __exportStar(require('@airgap/beacon-transport-postmessage'), exports) + __exportStar(require('@airgap/beacon-types'), exports) + __exportStar(require('@airgap/beacon-utils'), exports) + __exportStar(require('@airgap/beacon-wallet'), exports) + }, + { + '@airgap/beacon-core': 229, + '@airgap/beacon-dapp': 252, + '@airgap/beacon-transport-matrix': 272, + '@airgap/beacon-transport-postmessage': 286, + '@airgap/beacon-types': 287, + '@airgap/beacon-utils': 302, + '@airgap/beacon-wallet': 308 + } + ], + 270: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.P2PTransport = void 0 + var beacon_core_1 = require('@airgap/beacon-core') + var beacon_types_1 = require('@airgap/beacon-types') + var beacon_transport_matrix_1 = require('@airgap/beacon-transport-matrix') + var logger = new beacon_core_1.Logger('P2PTransport') + var P2PTransport = (function (_super) { + __extends(P2PTransport, _super) + function P2PTransport( + name, + keyPair, + storage, + matrixNodes, + storageKey, + iconUrl, + appUrl + ) { + var _this = + _super.call( + this, + name, + new beacon_transport_matrix_1.P2PCommunicationClient( + name, + keyPair, + 1, + storage, + matrixNodes, + iconUrl, + appUrl + ), + new beacon_core_1.PeerManager(storage, storageKey) + ) || this + _this.type = beacon_types_1.TransportType.P2P + return _this + } + P2PTransport.isAvailable = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, Promise.resolve(true)] + }) + }) + } + P2PTransport.prototype.connect = function () { + return __awaiter(this, void 0, void 0, function () { + var knownPeers, connectionPromises + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (this._isConnected !== beacon_types_1.TransportStatus.NOT_CONNECTED) { + return [2] + } + logger.log('connect') + this._isConnected = beacon_types_1.TransportStatus.CONNECTING + return [4, this.client.start()] + case 1: + _a.sent() + return [4, this.getPeers()] + case 2: + knownPeers = _a.sent() + if (knownPeers.length > 0) { + logger.log('connect', 'connecting to ' + knownPeers.length + ' peers') + connectionPromises = knownPeers.map(function (peer) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.listen(peer.publicKey)] + }) + }) + }) + Promise.all(connectionPromises).catch(function (error) { + return logger.error('connect', error) + }) + } + return [4, this.startOpenChannelListener()] + case 3: + _a.sent() + return [2, _super.prototype.connect.call(this)] + } + }) + }) + } + P2PTransport.prototype.disconnect = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.client.stop()] + case 1: + _a.sent() + return [2, _super.prototype.disconnect.call(this)] + } + }) + }) + } + P2PTransport.prototype.startOpenChannelListener = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2] + }) + }) + } + P2PTransport.prototype.getPairingRequestInfo = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.client.getPairingRequestInfo()] + }) + }) + } + P2PTransport.prototype.listen = function (publicKey) { + return __awaiter(this, void 0, void 0, function () { + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [ + 4, + this.client + .listenForEncryptedMessage(publicKey, function (message) { + var connectionContext = { + origin: beacon_types_1.Origin.P2P, + id: publicKey + } + _this + .notifyListeners(message, connectionContext) + .catch(function (error) { + throw error + }) + }) + .catch(function (error) { + throw error + }) + ] + case 1: + _a.sent() + return [2] + } + }) + }) + } + return P2PTransport + })(beacon_core_1.Transport) + exports.P2PTransport = P2PTransport + }, + { + '@airgap/beacon-core': 229, + '@airgap/beacon-transport-matrix': 272, + '@airgap/beacon-types': 287 + } + ], + 271: [ + function (require, module, exports) { + ;(function (Buffer) { + ;(function () { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + var __assign = + (this && this.__assign) || + function () { + __assign = + Object.assign || + function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i] + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p] + } + return t + } + return __assign.apply(this, arguments) + } + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.P2PCommunicationClient = + exports.deterministicShuffle = + exports.publicKeyToNumber = + exports.KNOWN_RELAY_SERVERS = + void 0 + var libsodium_wrappers_1 = require('libsodium-wrappers') + var axios_1 = require('axios') + var beacon_utils_1 = require('@airgap/beacon-utils') + var MatrixClient_1 = require('../matrix-client/MatrixClient') + var MatrixClientEvent_1 = require('../matrix-client/models/MatrixClientEvent') + var MatrixMessage_1 = require('../matrix-client/models/MatrixMessage') + var beacon_types_1 = require('@airgap/beacon-types') + var beacon_core_1 = require('@airgap/beacon-core') + var beacon_utils_2 = require('@airgap/beacon-utils') + var logger = new beacon_core_1.Logger('P2PCommunicationClient') + exports.KNOWN_RELAY_SERVERS = [ + 'beacon-node-1.sky.papers.tech', + 'beacon-node-0.papers.tech:8448', + 'beacon-node-2.sky.papers.tech' + ] + var publicKeyToNumber = function (arr, mod) { + var sum = 0 + for (var i = 0; i < arr.length; i++) { + sum += arr[i] + i + } + return Math.floor(sum % mod) + } + exports.publicKeyToNumber = publicKeyToNumber + var deterministicShuffle = function (arr, keypair) { + var arrCopy = JSON.parse(JSON.stringify(arr)) + var newArr = [] + while (arrCopy.length > 0) { + var position = (0, exports.publicKeyToNumber)(keypair.publicKey, arrCopy.length) + newArr.push.apply(newArr, arrCopy.splice(position, 1)) + } + return newArr + } + exports.deterministicShuffle = deterministicShuffle + var P2PCommunicationClient = (function (_super) { + __extends(P2PCommunicationClient, _super) + function P2PCommunicationClient( + name, + keyPair, + replicationCount, + storage, + matrixNodes, + iconUrl, + appUrl + ) { + var _this = _super.call(this, keyPair) || this + _this.name = name + _this.replicationCount = replicationCount + _this.storage = storage + _this.iconUrl = iconUrl + _this.appUrl = appUrl + _this.client = new beacon_utils_2.ExposedPromise() + _this.activeListeners = new Map() + _this.ignoredRooms = [] + _this.loginCounter = 0 + logger.log('constructor', 'P2PCommunicationClient created') + var nodes = matrixNodes.length > 0 ? matrixNodes : exports.KNOWN_RELAY_SERVERS + _this.ENABLED_RELAY_SERVERS = (0, exports.deterministicShuffle)(nodes, keyPair) + return _this + } + P2PCommunicationClient.prototype.getPairingRequestInfo = function () { + return __awaiter(this, void 0, void 0, function () { + var info + var _a + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + _a = {} + return [4, (0, beacon_utils_2.generateGUID)()] + case 1: + ;(_a.id = _b.sent()), + (_a.type = 'p2p-pairing-request'), + (_a.name = this.name), + (_a.version = beacon_core_1.BEACON_VERSION) + return [4, this.getPublicKey()] + case 2: + _a.publicKey = _b.sent() + return [4, this.getRelayServer()] + case 3: + info = ((_a.relayServer = _b.sent()), _a) + if (this.iconUrl) { + info.icon = this.iconUrl + } + if (this.appUrl) { + info.appUrl = this.appUrl + } + return [2, info] + } + }) + }) + } + P2PCommunicationClient.prototype.getPairingResponseInfo = function (request) { + return __awaiter(this, void 0, void 0, function () { + var info + var _a + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + _a = { + id: request.id, + type: 'p2p-pairing-response', + name: this.name, + version: beacon_core_1.BEACON_VERSION + } + return [4, this.getPublicKey()] + case 1: + _a.publicKey = _b.sent() + return [4, this.getRelayServer()] + case 2: + info = ((_a.relayServer = _b.sent()), _a) + if (this.iconUrl) { + info.icon = this.iconUrl + } + if (this.appUrl) { + info.appUrl = this.appUrl + } + return [2, info] + } + }) + }) + } + P2PCommunicationClient.prototype.getRelayServer = function () { + return __awaiter(this, void 0, void 0, function () { + var node, startIndex, offset, serverIndex, server, relayError_1 + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (this.relayServer) { + return [2, this.relayServer.promise] + } else { + this.relayServer = new beacon_utils_2.ExposedPromise() + } + return [ + 4, + this.storage.get(beacon_types_1.StorageKey.MATRIX_SELECTED_NODE) + ] + case 1: + node = _a.sent() + if (node && node.length > 0) { + this.relayServer.resolve(node) + return [2, node] + } + startIndex = (0, exports.publicKeyToNumber)( + this.keyPair.publicKey, + this.ENABLED_RELAY_SERVERS.length + ) + offset = 0 + _a.label = 2 + case 2: + if (!(offset < this.ENABLED_RELAY_SERVERS.length)) return [3, 7] + serverIndex = (startIndex + offset) % this.ENABLED_RELAY_SERVERS.length + server = this.ENABLED_RELAY_SERVERS[serverIndex] + _a.label = 3 + case 3: + _a.trys.push([3, 5, , 6]) + return [ + 4, + axios_1.default.get('https://' + server + '/_matrix/client/versions') + ] + case 4: + _a.sent() + this.storage + .set(beacon_types_1.StorageKey.MATRIX_SELECTED_NODE, server) + .catch(function (error) { + return logger.log(error) + }) + this.relayServer.resolve(server) + return [2, server] + case 5: + relayError_1 = _a.sent() + logger.log('Ignoring server "' + server + '", trying another one...') + offset++ + return [3, 6] + case 6: + return [3, 2] + case 7: + this.relayServer.reject('No matrix server reachable!') + throw new Error('No matrix server reachable!') + } + }) + }) + } + P2PCommunicationClient.prototype.tryJoinRooms = function (roomId, retry) { + if (retry === void 0) { + retry = 1 + } + return __awaiter(this, void 0, void 0, function () { + var error_1 + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 3, , 4]) + return [4, this.client.promise] + case 1: + return [4, _a.sent().joinRooms(roomId)] + case 2: + _a.sent() + return [3, 4] + case 3: + error_1 = _a.sent() + if (retry <= 10 && error_1.errcode === 'M_FORBIDDEN') { + logger.log('Retrying to join...', error_1) + setTimeout(function () { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.tryJoinRooms(roomId, retry + 1)] + case 1: + _a.sent() + return [2] + } + }) + }) + }, 200) + } else { + logger.log('Failed to join after ' + retry + ' tries.', error_1) + } + return [3, 4] + case 4: + return [2] + } + }) + }) + } + P2PCommunicationClient.prototype.start = function () { + return __awaiter(this, void 0, void 0, function () { + var loginRawDigest, + rawSignature, + relayServer, + client, + _a, + _b, + _c, + _d, + _e, + _f, + error_2 + var _g + var _this = this + return __generator(this, function (_h) { + switch (_h.label) { + case 0: + logger.log('start', 'starting client') + return [4, libsodium_wrappers_1.ready] + case 1: + _h.sent() + loginRawDigest = (0, libsodium_wrappers_1.crypto_generichash)( + 32, + (0, libsodium_wrappers_1.from_string)( + 'login:' + Math.floor(Date.now() / 1e3 / (5 * 60)) + ) + ) + rawSignature = (0, libsodium_wrappers_1.crypto_sign_detached)( + loginRawDigest, + this.keyPair.privateKey + ) + logger.log('start', 'connecting to server') + return [4, this.getRelayServer()] + case 2: + relayServer = _h.sent() + client = MatrixClient_1.MatrixClient.create({ + baseUrl: 'https://' + relayServer, + storage: this.storage + }) + this.initialListener = function (event) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + if ( + this.initialEvent && + this.initialEvent.timestamp && + event && + event.timestamp + ) { + if (this.initialEvent.timestamp < event.timestamp) { + this.initialEvent = event + } + } else { + this.initialEvent = event + } + return [2] + }) + }) + } + client.subscribe( + MatrixClientEvent_1.MatrixClientEventType.MESSAGE, + this.initialListener + ) + client.subscribe( + MatrixClientEvent_1.MatrixClientEventType.INVITE, + function (event) { + return __awaiter(_this, void 0, void 0, function () { + var member + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (event.content.members.length === 1) { + member = event.content.members[0] + } + return [4, this.tryJoinRooms(event.content.roomId)] + case 1: + _a.sent() + if (!member) return [3, 4] + return [4, this.updateRelayServer(member)] + case 2: + _a.sent() + return [4, this.updatePeerRoom(member, event.content.roomId)] + case 3: + _a.sent() + _a.label = 4 + case 4: + return [2] + } + }) + }) + } + ) + _b = (_a = logger).log + _c = ['start', 'login'] + return [4, this.getPublicKeyHash()] + case 3: + _b.apply(_a, _c.concat([_h.sent(), 'on', relayServer])) + _h.label = 4 + case 4: + _h.trys.push([4, 8, , 10]) + _e = (_d = client).start + _g = {} + return [4, this.getPublicKeyHash()] + case 5: + _g.id = _h.sent() + _f = 'ed:' + (0, beacon_utils_1.toHex)(rawSignature) + ':' + return [4, this.getPublicKey()] + case 6: + return [ + 4, + _e.apply(_d, [ + ((_g.password = _f + _h.sent()), + (_g.deviceId = (0, beacon_utils_1.toHex)(this.keyPair.publicKey)), + _g) + ]) + ] + case 7: + _h.sent() + return [3, 10] + case 8: + error_2 = _h.sent() + console.log('ERROR, RETRYING') + return [4, this.reset()] + case 9: + _h.sent() + console.log('TRYING AGAIN') + if (this.loginCounter <= this.ENABLED_RELAY_SERVERS.length) { + this.loginCounter++ + this.start() + return [2] + } else { + throw new Error('Too many login attempts. Try again later.') + } + return [3, 10] + case 10: + console.log('client is ready') + this.client.resolve(client) + return [2] + } + }) + }) + } + P2PCommunicationClient.prototype.stop = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!this.client.isResolved()) return [3, 3] + return [4, this.client.promise] + case 1: + return [ + 4, + _a + .sent() + .stop() + .catch(function (error) { + return logger.error(error) + }) + ] + case 2: + _a.sent() + _a.label = 3 + case 3: + return [4, this.reset()] + case 4: + _a.sent() + return [2] + } + }) + }) + } + P2PCommunicationClient.prototype.reset = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [ + 4, + this.storage + .delete(beacon_types_1.StorageKey.MATRIX_PEER_ROOM_IDS) + .catch(function (error) { + return logger.log(error) + }) + ] + case 1: + _a.sent() + return [ + 4, + this.storage + .delete(beacon_types_1.StorageKey.MATRIX_PRESERVED_STATE) + .catch(function (error) { + return logger.log(error) + }) + ] + case 2: + _a.sent() + return [ + 4, + this.storage + .delete(beacon_types_1.StorageKey.MATRIX_SELECTED_NODE) + .catch(function (error) { + return logger.log(error) + }) + ] + case 3: + _a.sent() + this.relayServer = undefined + this.client = new beacon_utils_2.ExposedPromise() + this.initialEvent = undefined + this.initialListener = undefined + return [2] + } + }) + }) + } + P2PCommunicationClient.prototype.listenForEncryptedMessage = function ( + senderPublicKey, + messageCallback + ) { + return __awaiter(this, void 0, void 0, function () { + var sharedRx, callbackFunction, lastEvent, initialListener + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (this.activeListeners.has(senderPublicKey)) { + return [2] + } + return [ + 4, + this.createCryptoBoxServer(senderPublicKey, this.keyPair.privateKey) + ] + case 1: + sharedRx = _a.sent().sharedRx + callbackFunction = function (event) { + return __awaiter(_this, void 0, void 0, function () { + var _a, payload, decryptedMessage, decryptionError_1 + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + _a = this.isTextMessage(event.content) + if (!_a) return [3, 2] + return [4, this.isSender(event, senderPublicKey)] + case 1: + _a = _b.sent() + _b.label = 2 + case 2: + if (!_a) return [3, 8] + payload = void 0 + return [4, this.updateRelayServer(event.content.message.sender)] + case 3: + _b.sent() + return [ + 4, + this.updatePeerRoom( + event.content.message.sender, + event.content.roomId + ) + ] + case 4: + _b.sent() + try { + payload = Buffer.from(event.content.message.content, 'hex') + } catch (_c) {} + if ( + !( + payload && + payload.length >= + libsodium_wrappers_1.crypto_secretbox_NONCEBYTES + + libsodium_wrappers_1.crypto_secretbox_MACBYTES + ) + ) + return [3, 8] + _b.label = 5 + case 5: + _b.trys.push([5, 7, , 8]) + return [ + 4, + (0, beacon_utils_1.decryptCryptoboxPayload)(payload, sharedRx) + ] + case 6: + decryptedMessage = _b.sent() + messageCallback(decryptedMessage) + return [3, 8] + case 7: + decryptionError_1 = _b.sent() + return [3, 8] + case 8: + return [2] + } + }) + }) + } + this.activeListeners.set(senderPublicKey, callbackFunction) + return [4, this.client.promise] + case 2: + _a.sent().subscribe( + MatrixClientEvent_1.MatrixClientEventType.MESSAGE, + callbackFunction + ) + lastEvent = this.initialEvent + if ( + !( + lastEvent && + lastEvent.timestamp && + new Date().getTime() - lastEvent.timestamp < 5 * 60 * 1e3 + ) + ) + return [3, 4] + logger.log('listenForEncryptedMessage', 'Handling previous event') + return [4, callbackFunction(lastEvent)] + case 3: + _a.sent() + return [3, 5] + case 4: + logger.log('listenForEncryptedMessage', 'No previous event found') + _a.label = 5 + case 5: + initialListener = this.initialListener + if (!initialListener) return [3, 7] + return [4, this.client.promise] + case 6: + _a.sent().unsubscribe( + MatrixClientEvent_1.MatrixClientEventType.MESSAGE, + initialListener + ) + _a.label = 7 + case 7: + this.initialListener = undefined + this.initialEvent = undefined + return [2] + } + }) + }) + } + P2PCommunicationClient.prototype.unsubscribeFromEncryptedMessage = function ( + senderPublicKey + ) { + return __awaiter(this, void 0, void 0, function () { + var listener + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + listener = this.activeListeners.get(senderPublicKey) + if (!listener) { + return [2] + } + return [4, this.client.promise] + case 1: + _a.sent().unsubscribe( + MatrixClientEvent_1.MatrixClientEventType.MESSAGE, + listener + ) + this.activeListeners.delete(senderPublicKey) + return [2] + } + }) + }) + } + P2PCommunicationClient.prototype.unsubscribeFromEncryptedMessages = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.client.promise] + case 1: + _a.sent().unsubscribeAll( + MatrixClientEvent_1.MatrixClientEventType.MESSAGE + ) + this.activeListeners.clear() + return [2] + } + }) + }) + } + P2PCommunicationClient.prototype.sendMessage = function (message, peer) { + return __awaiter(this, void 0, void 0, function () { + var sharedTx, recipientHash, recipient, roomId, encryptedMessage + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [ + 4, + this.createCryptoBoxClient(peer.publicKey, this.keyPair.privateKey) + ] + case 1: + sharedTx = _a.sent().sharedTx + return [ + 4, + (0, beacon_utils_1.getHexHash)(Buffer.from(peer.publicKey, 'hex')) + ] + case 2: + recipientHash = _a.sent() + recipient = (0, beacon_utils_1.recipientString)( + recipientHash, + peer.relayServer + ) + return [4, this.getRelevantRoom(recipient)] + case 3: + roomId = _a.sent() + return [4, this.waitForJoin(roomId)] + case 4: + _a.sent() + return [4, (0, beacon_utils_1.encryptCryptoboxPayload)(message, sharedTx)] + case 5: + encryptedMessage = _a.sent() + return [4, this.client.promise] + case 6: + _a.sent() + .sendTextMessage(roomId, encryptedMessage) + .catch(function (error) { + return __awaiter(_this, void 0, void 0, function () { + var newRoomId + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!(error.errcode === 'M_FORBIDDEN')) return [3, 4] + logger.log('sendMessage', 'M_FORBIDDEN', error) + return [4, this.deleteRoomIdFromRooms(roomId)] + case 1: + _a.sent() + return [4, this.getRelevantRoom(recipient)] + case 2: + newRoomId = _a.sent() + return [4, this.client.promise] + case 3: + _a.sent() + .sendTextMessage(newRoomId, encryptedMessage) + .catch(function (error2) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + logger.log('sendMessage', 'inner error', error2) + return [2] + }) + }) + }) + return [3, 5] + case 4: + logger.log('sendMessage', 'not forbidden', error) + _a.label = 5 + case 5: + return [2] + } + }) + }) + }) + return [2] + } + }) + }) + } + P2PCommunicationClient.prototype.updatePeerRoom = function (sender, roomId) { + return __awaiter(this, void 0, void 0, function () { + var split, roomIds, room + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + split = sender.split(':') + if (split.length < 2 || !split[0].startsWith('@')) { + throw new Error('Invalid sender') + } + return [ + 4, + this.storage.get(beacon_types_1.StorageKey.MATRIX_PEER_ROOM_IDS) + ] + case 1: + roomIds = _a.sent() + room = roomIds[sender] + if (room && room[1]) { + this.ignoredRooms.push(room[1]) + } + roomIds[sender] = roomId + return [ + 4, + this.storage.set( + beacon_types_1.StorageKey.MATRIX_PEER_ROOM_IDS, + roomIds + ) + ] + case 2: + _a.sent() + return [2] + } + }) + }) + } + P2PCommunicationClient.prototype.deleteRoomIdFromRooms = function (roomId) { + return __awaiter(this, void 0, void 0, function () { + var roomIds, newRoomIds + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [ + 4, + this.storage.get(beacon_types_1.StorageKey.MATRIX_PEER_ROOM_IDS) + ] + case 1: + roomIds = _a.sent() + newRoomIds = Object.entries(roomIds) + .filter(function (entry) { + return entry[1] !== roomId + }) + .reduce(function (pv, cv) { + var _a + return __assign( + __assign({}, pv), + ((_a = {}), (_a[cv[0]] = cv[1]), _a) + ) + }, {}) + return [ + 4, + this.storage.set( + beacon_types_1.StorageKey.MATRIX_PEER_ROOM_IDS, + newRoomIds + ) + ] + case 2: + _a.sent() + this.ignoredRooms.push(roomId) + return [2] + } + }) + }) + } + P2PCommunicationClient.prototype.listenForChannelOpening = function ( + messageCallback + ) { + return __awaiter(this, void 0, void 0, function () { + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.client.promise] + case 1: + _a.sent().subscribe( + MatrixClientEvent_1.MatrixClientEventType.MESSAGE, + function (event) { + return __awaiter(_this, void 0, void 0, function () { + var _a, + splits, + payload, + pairingResponse, + _b, + _c, + _d, + _e, + decryptionError_2 + var _f + return __generator(this, function (_g) { + switch (_g.label) { + case 0: + _a = this.isTextMessage(event.content) + if (!_a) return [3, 2] + return [4, this.isChannelOpenMessage(event.content)] + case 1: + _a = _g.sent() + _g.label = 2 + case 2: + if (!_a) return [3, 9] + logger.log( + 'listenForChannelOpening', + 'channel opening', + JSON.stringify(event) + ) + return [ + 4, + this.updateRelayServer(event.content.message.sender) + ] + case 3: + _g.sent() + return [ + 4, + this.updatePeerRoom( + event.content.message.sender, + event.content.roomId + ) + ] + case 4: + _g.sent() + splits = event.content.message.content.split(':') + payload = Buffer.from(splits[splits.length - 1], 'hex') + if ( + !( + payload.length >= + libsodium_wrappers_1.crypto_secretbox_NONCEBYTES + + libsodium_wrappers_1.crypto_secretbox_MACBYTES + ) + ) + return [3, 9] + _g.label = 5 + case 5: + _g.trys.push([5, 8, , 9]) + _c = (_b = JSON).parse + return [ + 4, + (0, beacon_utils_1.openCryptobox)( + payload, + this.keyPair.publicKey, + this.keyPair.privateKey + ) + ] + case 6: + pairingResponse = _c.apply(_b, [_g.sent()]) + _d = messageCallback + _e = [__assign({}, pairingResponse)] + _f = {} + return [ + 4, + (0, beacon_core_1.getSenderId)(pairingResponse.publicKey) + ] + case 7: + _d.apply(void 0, [ + __assign.apply( + void 0, + _e.concat([((_f.senderId = _g.sent()), _f)]) + ) + ]) + return [3, 9] + case 8: + decryptionError_2 = _g.sent() + return [3, 9] + case 9: + return [2] + } + }) + }) + } + ) + return [2] + } + }) + }) + } + P2PCommunicationClient.prototype.waitForJoin = function (roomId, retry) { + if (retry === void 0) { + retry = 0 + } + return __awaiter(this, void 0, void 0, function () { + var room + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.client.promise] + case 1: + return [4, _a.sent().getRoomById(roomId)] + case 2: + room = _a.sent() + logger.log( + 'waitForJoin', + 'Currently ' + room.members.length + ' members, we need at least 2' + ) + if (room.members.length >= 2 || room.members.length === 0) { + return [2] + } else { + if (retry <= 200) { + logger.log('Waiting for join... Try: ' + retry) + return [ + 2, + new Promise(function (resolve) { + setTimeout(function () { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + resolve(this.waitForJoin(roomId, retry + 1)) + return [2] + }) + }) + }, 100 * (retry > 50 ? 10 : 1)) + }) + ] + } else { + throw new Error('No one joined after ' + retry + ' tries.') + } + } + return [2] + } + }) + }) + } + P2PCommunicationClient.prototype.sendPairingResponse = function (pairingRequest) { + return __awaiter(this, void 0, void 0, function () { + var recipientHash, recipient, roomId, message, _a, _b, _c, encryptedMessage, msg + var _this = this + return __generator(this, function (_d) { + switch (_d.label) { + case 0: + logger.log('sendPairingResponse') + return [ + 4, + (0, beacon_utils_1.getHexHash)( + Buffer.from(pairingRequest.publicKey, 'hex') + ) + ] + case 1: + recipientHash = _d.sent() + recipient = (0, beacon_utils_1.recipientString)( + recipientHash, + pairingRequest.relayServer + ) + return [4, this.client.promise] + case 2: + return [4, _d.sent().createTrustedPrivateRoom(recipient)] + case 3: + roomId = _d.sent() + return [4, this.updatePeerRoom(recipient, roomId)] + case 4: + _d.sent() + return [4, this.waitForJoin(roomId)] + case 5: + _d.sent() + if (!(typeof pairingRequest.version === 'undefined')) return [3, 7] + return [4, this.getPublicKey()] + case 6: + _a = _d.sent() + return [3, 9] + case 7: + _c = (_b = JSON).stringify + return [4, this.getPairingResponseInfo(pairingRequest)] + case 8: + _a = _c.apply(_b, [_d.sent()]) + _d.label = 9 + case 9: + message = _a + return [ + 4, + this.encryptMessageAsymmetric(pairingRequest.publicKey, message) + ] + case 10: + encryptedMessage = _d.sent() + msg = ['@channel-open', recipient, encryptedMessage].join(':') + return [4, this.client.promise] + case 11: + _d.sent() + .sendTextMessage(roomId, msg) + .catch(function (error) { + return __awaiter(_this, void 0, void 0, function () { + var newRoomId + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!(error.errcode === 'M_FORBIDDEN')) return [3, 4] + logger.log('sendMessage', 'M_FORBIDDEN', error) + return [4, this.deleteRoomIdFromRooms(roomId)] + case 1: + _a.sent() + return [4, this.getRelevantRoom(recipient)] + case 2: + newRoomId = _a.sent() + return [4, this.client.promise] + case 3: + _a.sent() + .sendTextMessage(newRoomId, msg) + .catch(function (error2) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + logger.log('sendMessage', 'inner error', error2) + return [2] + }) + }) + }) + return [3, 5] + case 4: + logger.log('sendMessage', 'not forbidden', error) + _a.label = 5 + case 5: + return [2] + } + }) + }) + }) + return [2] + } + }) + }) + } + P2PCommunicationClient.prototype.isTextMessage = function (content) { + return content.message.type === MatrixMessage_1.MatrixMessageType.TEXT + } + P2PCommunicationClient.prototype.updateRelayServer = function (sender) { + return __awaiter(this, void 0, void 0, function () { + var split, senderHash, relayServer, manager, peers, promiseArray + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + split = sender.split(':') + if (split.length < 2 || !split[0].startsWith('@')) { + throw new Error('Invalid sender') + } + senderHash = split.shift() + relayServer = split.join(':') + manager = localStorage.getItem('beacon:communication-peers-dapp') + ? new beacon_core_1.PeerManager( + this.storage, + beacon_types_1.StorageKey.TRANSPORT_P2P_PEERS_DAPP + ) + : new beacon_core_1.PeerManager( + this.storage, + beacon_types_1.StorageKey.TRANSPORT_P2P_PEERS_WALLET + ) + return [4, manager.getPeers()] + case 1: + peers = _a.sent() + promiseArray = peers.map(function (peer) { + return __awaiter(_this, void 0, void 0, function () { + var hash, _a + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + _a = '@' + return [ + 4, + (0, beacon_utils_1.getHexHash)( + Buffer.from(peer.publicKey, 'hex') + ) + ] + case 1: + hash = _a + _b.sent() + if (!(hash === senderHash)) return [3, 3] + if (!(peer.relayServer !== relayServer)) return [3, 3] + peer.relayServer = relayServer + return [4, manager.addPeer(peer)] + case 2: + _b.sent() + _b.label = 3 + case 3: + return [2] + } + }) + }) + }) + return [4, Promise.all(promiseArray)] + case 2: + _a.sent() + return [2] + } + }) + }) + } + P2PCommunicationClient.prototype.isChannelOpenMessage = function (content) { + return __awaiter(this, void 0, void 0, function () { + var _a, _b, _c, _d, _e, _f + return __generator(this, function (_g) { + switch (_g.label) { + case 0: + _b = (_a = content.message.content).startsWith + _c = '@channel-open:@' + _d = beacon_utils_1.getHexHash + _f = (_e = Buffer).from + return [4, this.getPublicKey()] + case 1: + return [4, _d.apply(void 0, [_f.apply(_e, [_g.sent(), 'hex'])])] + case 2: + return [2, _b.apply(_a, [_c + _g.sent()])] + } + }) + }) + } + P2PCommunicationClient.prototype.isSender = function (event, senderPublicKey) { + return __awaiter(this, void 0, void 0, function () { + var _a, _b, _c + return __generator(this, function (_d) { + switch (_d.label) { + case 0: + _b = (_a = event.content.message.sender).startsWith + _c = '@' + return [ + 4, + (0, beacon_utils_1.getHexHash)(Buffer.from(senderPublicKey, 'hex')) + ] + case 1: + return [2, _b.apply(_a, [_c + _d.sent()])] + } + }) + }) + } + P2PCommunicationClient.prototype.getRelevantRoom = function (recipient) { + return __awaiter(this, void 0, void 0, function () { + var roomIds, roomId, room + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [ + 4, + this.storage.get(beacon_types_1.StorageKey.MATRIX_PEER_ROOM_IDS) + ] + case 1: + roomIds = _a.sent() + roomId = roomIds[recipient] + if (!!roomId) return [3, 4] + logger.log( + 'getRelevantRoom', + 'No room found for peer ' + recipient + ', checking joined ones.' + ) + return [4, this.getRelevantJoinedRoom(recipient)] + case 2: + room = _a.sent() + roomId = room.id + roomIds[recipient] = room.id + return [ + 4, + this.storage.set( + beacon_types_1.StorageKey.MATRIX_PEER_ROOM_IDS, + roomIds + ) + ] + case 3: + _a.sent() + _a.label = 4 + case 4: + logger.log('getRelevantRoom', 'Using room ' + roomId) + return [2, roomId] + } + }) + }) + } + P2PCommunicationClient.prototype.getRelevantJoinedRoom = function (recipient) { + return __awaiter(this, void 0, void 0, function () { + var joinedRooms, relevantRooms, room, roomId + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.client.promise] + case 1: + return [4, _a.sent().joinedRooms] + case 2: + joinedRooms = _a.sent() + logger.log('checking joined rooms', joinedRooms, recipient) + relevantRooms = joinedRooms + .filter(function (roomElement) { + return !_this.ignoredRooms.some(function (id) { + return roomElement.id === id + }) + }) + .filter(function (roomElement) { + return roomElement.members.some(function (member) { + return member === recipient + }) + }) + if (!(relevantRooms.length === 0 || this.ignoredRooms.length > 0)) + return [3, 8] + logger.log( + 'getRelevantJoinedRoom', + 'no relevant rooms found, creating new one' + ) + return [4, this.client.promise] + case 3: + return [4, _a.sent().createTrustedPrivateRoom(recipient)] + case 4: + roomId = _a.sent() + return [4, this.client.promise] + case 5: + return [4, _a.sent().getRoomById(roomId)] + case 6: + room = _a.sent() + logger.log( + 'getRelevantJoinedRoom', + 'waiting for other party to join room: ' + room.id + ) + return [4, this.waitForJoin(roomId)] + case 7: + _a.sent() + logger.log( + 'getRelevantJoinedRoom', + 'new room created and peer invited: ' + room.id + ) + return [3, 9] + case 8: + room = relevantRooms[0] + logger.log( + 'getRelevantJoinedRoom', + 'channel already open, reusing room ' + room.id + ) + _a.label = 9 + case 9: + return [2, room] + } + }) + }) + } + return P2PCommunicationClient + })(beacon_core_1.CommunicationClient) + exports.P2PCommunicationClient = P2PCommunicationClient + }.call(this)) + }.call(this, require('buffer').Buffer)) + }, + { + '../matrix-client/MatrixClient': 273, + '../matrix-client/models/MatrixClientEvent': 277, + '../matrix-client/models/MatrixMessage': 278, + '@airgap/beacon-core': 229, + '@airgap/beacon-types': 287, + '@airgap/beacon-utils': 302, + axios: 16, + buffer: 93, + 'libsodium-wrappers': 153 + } + ], + 272: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.P2PTransport = exports.P2PCommunicationClient = void 0 + var P2PCommunicationClient_1 = require('./communication-client/P2PCommunicationClient') + Object.defineProperty(exports, 'P2PCommunicationClient', { + enumerable: true, + get: function () { + return P2PCommunicationClient_1.P2PCommunicationClient + } + }) + var P2PTransport_1 = require('./P2PTransport') + Object.defineProperty(exports, 'P2PTransport', { + enumerable: true, + get: function () { + return P2PTransport_1.P2PTransport + } + }) + }, + { './P2PTransport': 270, './communication-client/P2PCommunicationClient': 271 } + ], + 273: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.MatrixClient = void 0 + var beacon_core_1 = require('@airgap/beacon-core') + var beacon_utils_1 = require('@airgap/beacon-utils') + var MatrixClientStore_1 = require('./MatrixClientStore') + var MatrixHttpClient_1 = require('./MatrixHttpClient') + var MatrixRoom_1 = require('./models/MatrixRoom') + var MatrixRoomService_1 = require('./services/MatrixRoomService') + var MatrixUserService_1 = require('./services/MatrixUserService') + var MatrixEventService_1 = require('./services/MatrixEventService') + var MatrixClientEventEmitter_1 = require('./MatrixClientEventEmitter') + var logger = new beacon_core_1.Logger('MatrixClient') + var IMMEDIATE_POLLING_RETRIES = 3 + var RETRY_INTERVAL = 5e3 + var MatrixClient = (function () { + function MatrixClient( + store, + eventEmitter, + userService, + roomService, + eventService, + httpClient + ) { + var _this = this + this.store = store + this.eventEmitter = eventEmitter + this.userService = userService + this.roomService = roomService + this.eventService = eventService + this.httpClient = httpClient + this.isActive = true + this._isReady = new beacon_utils_1.ExposedPromise() + this.store.onStateChanged(function (oldState, newState, stateChange) { + _this.eventEmitter.onStateChanged(oldState, newState, stateChange) + }, 'rooms') + } + MatrixClient.create = function (config) { + var store = new MatrixClientStore_1.MatrixClientStore(config.storage) + var eventEmitter = new MatrixClientEventEmitter_1.MatrixClientEventEmitter() + var httpClient = new MatrixHttpClient_1.MatrixHttpClient(config.baseUrl) + var accountService = new MatrixUserService_1.MatrixUserService(httpClient) + var roomService = new MatrixRoomService_1.MatrixRoomService(httpClient) + var eventService = new MatrixEventService_1.MatrixEventService(httpClient) + return new MatrixClient( + store, + eventEmitter, + accountService, + roomService, + eventService, + httpClient + ) + } + Object.defineProperty(MatrixClient.prototype, 'joinedRooms', { + get: function () { + var _this = this + return new Promise(function (resolve) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.isConnected()] + case 1: + _a.sent() + resolve( + Object.values(this.store.get('rooms')).filter(function (room) { + return room.status === MatrixRoom_1.MatrixRoomStatus.JOINED + }) + ) + return [2] + } + }) + }) + }) + }, + enumerable: false, + configurable: true + }) + Object.defineProperty(MatrixClient.prototype, 'invitedRooms', { + get: function () { + var _this = this + return new Promise(function (resolve) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.isConnected()] + case 1: + _a.sent() + resolve( + Object.values(this.store.get('rooms')).filter(function (room) { + return room.status === MatrixRoom_1.MatrixRoomStatus.INVITED + }) + ) + return [2] + } + }) + }) + }) + }, + enumerable: false, + configurable: true + }) + Object.defineProperty(MatrixClient.prototype, 'leftRooms', { + get: function () { + var _this = this + return new Promise(function (resolve) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.isConnected()] + case 1: + _a.sent() + resolve( + Object.values(this.store.get('rooms')).filter(function (room) { + return room.status === MatrixRoom_1.MatrixRoomStatus.LEFT + }) + ) + return [2] + } + }) + }) + }) + }, + enumerable: false, + configurable: true + }) + MatrixClient.prototype.start = function (user) { + return __awaiter(this, void 0, void 0, function () { + var response, initialPollingResult + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.userService.login(user.id, user.password, user.deviceId)] + case 1: + response = _a.sent() + return [4, this.store.update({ accessToken: response.access_token })] + case 2: + _a.sent() + initialPollingResult = new Promise(function (resolve, reject) { + return __awaiter(_this, void 0, void 0, function () { + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [ + 4, + this.poll( + 0, + function (pollingResponse) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!this.store.get('isRunning')) { + resolve() + } + return [ + 4, + this.store.update({ + isRunning: true, + syncToken: pollingResponse.next_batch, + pollingTimeout: 3e4, + pollingRetries: 0, + rooms: MatrixRoom_1.MatrixRoom.fromSync( + pollingResponse.rooms + ) + }) + ] + case 1: + _a.sent() + return [2] + } + }) + }) + }, + function (error) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!this.store.get('isRunning')) { + reject(error) + } + return [ + 4, + this.store.update({ + isRunning: false, + pollingRetries: + this.store.get('pollingRetries') + 1 + }) + ] + case 1: + _a.sent() + return [2] + } + }) + }) + } + ) + ] + case 1: + _a.sent() + return [2] + } + }) + }) + }) + initialPollingResult + .then(function () { + _this._isReady.resolve() + }) + .catch(console.error) + return [2, initialPollingResult] + } + }) + }) + } + MatrixClient.prototype.isConnected = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this._isReady.promise] + }) + }) + } + MatrixClient.prototype.stop = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + logger.log('MATRIX CLIENT STOPPED') + this.isActive = false + this._isReady = new beacon_utils_1.ExposedPromise() + return [2, this.httpClient.cancelAllRequests()] + }) + }) + } + MatrixClient.prototype.subscribe = function (event, listener) { + this.eventEmitter.on(event, listener) + } + MatrixClient.prototype.unsubscribe = function (event, listener) { + if (listener) { + this.eventEmitter.removeListener(event, listener) + } + } + MatrixClient.prototype.unsubscribeAll = function (event) { + this.eventEmitter.removeAllListeners(event) + } + MatrixClient.prototype.getRoomById = function (id) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.isConnected()] + case 1: + _a.sent() + return [2, this.store.getRoom(id)] + } + }) + }) + } + MatrixClient.prototype.createTrustedPrivateRoom = function () { + var members = [] + for (var _i = 0; _i < arguments.length; _i++) { + members[_i] = arguments[_i] + } + return __awaiter(this, void 0, void 0, function () { + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.isConnected()] + case 1: + _a.sent() + return [ + 2, + this.requiresAuthorization('createRoom', function (accessToken) { + return __awaiter(_this, void 0, void 0, function () { + var response + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [ + 4, + this.roomService.createRoom(accessToken, { + room_version: '5', + invite: members, + preset: 'public_chat', + is_direct: true + }) + ] + case 1: + response = _a.sent() + return [2, response.room_id] + } + }) + }) + }) + ] + } + }) + }) + } + MatrixClient.prototype.inviteToRooms = function (user) { + var roomsOrIds = [] + for (var _i = 1; _i < arguments.length; _i++) { + roomsOrIds[_i - 1] = arguments[_i] + } + return __awaiter(this, void 0, void 0, function () { + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.isConnected()] + case 1: + _a.sent() + return [ + 4, + this.requiresAuthorization('invite', function (accessToken) { + return Promise.all( + roomsOrIds.map(function (roomOrId) { + var room = _this.store.getRoom(roomOrId) + _this.roomService + .inviteToRoom(accessToken, user, room) + .catch(function (error) { + return logger.warn('inviteToRooms', error) + }) + }) + ) + }) + ] + case 2: + _a.sent() + return [2] + } + }) + }) + } + MatrixClient.prototype.joinRooms = function () { + var roomsOrIds = [] + for (var _i = 0; _i < arguments.length; _i++) { + roomsOrIds[_i] = arguments[_i] + } + return __awaiter(this, void 0, void 0, function () { + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.isConnected()] + case 1: + _a.sent() + return [ + 4, + this.requiresAuthorization('join', function (accessToken) { + return Promise.all( + roomsOrIds.map(function (roomOrId) { + var room = _this.store.getRoom(roomOrId) + return _this.roomService.joinRoom(accessToken, room) + }) + ) + }) + ] + case 2: + _a.sent() + return [2] + } + }) + }) + } + MatrixClient.prototype.sendTextMessage = function (roomId, message) { + return __awaiter(this, void 0, void 0, function () { + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.isConnected()] + case 1: + _a.sent() + return [ + 4, + this.requiresAuthorization('send', function (accessToken) { + return __awaiter(_this, void 0, void 0, function () { + var txnId + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.createTxnId()] + case 1: + txnId = _a.sent() + return [ + 2, + this.eventService.sendMessage( + accessToken, + roomId, + { msgtype: 'm.text', body: message }, + txnId + ) + ] + } + }) + }) + }) + ] + case 2: + _a.sent() + return [2] + } + }) + }) + } + MatrixClient.prototype.poll = function (interval, onSyncSuccess, onSyncError) { + return __awaiter(this, void 0, void 0, function () { + var store, sync, pollSync + var _this = this + return __generator(this, function (_a) { + store = this.store + sync = this.sync.bind(this) + pollSync = function (resolve, reject) { + return __awaiter(_this, void 0, void 0, function () { + var syncingRetries, response, error_1 + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + syncingRetries = 0 + _a.label = 1 + case 1: + _a.trys.push([1, 3, 4, 5]) + return [4, sync()] + case 2: + response = _a.sent() + onSyncSuccess(response) + return [3, 5] + case 3: + error_1 = _a.sent() + onSyncError(error_1) + syncingRetries = store.get('pollingRetries') + if (this.isActive) { + logger.log('Retry syncing... ' + syncingRetries + ' retries so far') + } + return [3, 5] + case 4: + if (this.isActive) { + setTimeout( + function () { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, pollSync(resolve, reject)] + case 1: + _a.sent() + return [2] + } + }) + }) + }, + syncingRetries > IMMEDIATE_POLLING_RETRIES + ? RETRY_INTERVAL + interval + : interval + ) + } else { + reject(new Error('Syncing stopped manually.')) + } + return [7] + case 5: + return [2] + } + }) + }) + } + return [2, new Promise(pollSync)] + }) + }) + } + MatrixClient.prototype.sync = function () { + return __awaiter(this, void 0, void 0, function () { + var _this = this + return __generator(this, function (_a) { + return [ + 2, + this.requiresAuthorization('sync', function (accessToken) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + this.eventService.sync(accessToken, { + pollingTimeout: this.store.get('pollingTimeout'), + syncToken: this.store.get('syncToken') + }) + ] + }) + }) + }) + ] + }) + }) + } + MatrixClient.prototype.requiresAuthorization = function (name, action) { + return __awaiter(this, void 0, void 0, function () { + var storedToken + return __generator(this, function (_a) { + storedToken = this.store.get('accessToken') + if (!storedToken) { + return [ + 2, + Promise.reject( + name + ' requires authorization but no access token has been provided.' + ) + ] + } + return [2, action(storedToken)] + }) + }) + } + MatrixClient.prototype.createTxnId = function () { + return __awaiter(this, void 0, void 0, function () { + var timestamp, counter + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + timestamp = new Date().getTime() + counter = this.store.get('txnNo') + return [4, this.store.update({ txnNo: counter + 1 })] + case 1: + _a.sent() + return [2, 'm' + timestamp + '.' + counter] + } + }) + }) + } + return MatrixClient + })() + exports.MatrixClient = MatrixClient + }, + { + './MatrixClientEventEmitter': 274, + './MatrixClientStore': 275, + './MatrixHttpClient': 276, + './models/MatrixRoom': 279, + './services/MatrixEventService': 280, + './services/MatrixRoomService': 281, + './services/MatrixUserService': 282, + '@airgap/beacon-core': 229, + '@airgap/beacon-utils': 302 + } + ], + 274: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + Object.defineProperty(exports, '__esModule', { value: true }) + exports.MatrixClientEventEmitter = void 0 + var events_1 = require('events') + var beacon_utils_1 = require('@airgap/beacon-utils') + var MatrixRoom_1 = require('./models/MatrixRoom') + var MatrixClientEvent_1 = require('./models/MatrixClientEvent') + var MatrixClientEventEmitter = (function (_super) { + __extends(MatrixClientEventEmitter, _super) + function MatrixClientEventEmitter() { + var _this = (_super !== null && _super.apply(this, arguments)) || this + _this.eventEmitProviders = new Map([ + [ + MatrixClientEvent_1.MatrixClientEventType.INVITE, + function () { + return [_this.isInvite, _this.emitInvite.bind(_this)] + } + ], + [ + MatrixClientEvent_1.MatrixClientEventType.MESSAGE, + function () { + return [_this.isMessage, _this.emitMessage.bind(_this)] + } + ] + ]) + return _this + } + MatrixClientEventEmitter.prototype.onStateChanged = function ( + _oldState, + _newState, + stateChange + ) { + for ( + var _i = 0, + _a = (0, beacon_utils_1.keys)(MatrixClientEvent_1.MatrixClientEventType); + _i < _a.length; + _i++ + ) { + var event_1 = _a[_i] + this.emitIfEvent(MatrixClientEvent_1.MatrixClientEventType[event_1], stateChange) + } + } + MatrixClientEventEmitter.prototype.emitIfEvent = function (eventType, object) { + var provider = this.eventEmitProviders.get(eventType) + if (provider) { + var _a = provider(), + predicate = _a[0], + emitter = _a[1] + if (predicate(object)) { + emitter(eventType, object) + } + } + } + MatrixClientEventEmitter.prototype.emitClientEvent = function ( + eventType, + content, + timestamp + ) { + this.emit(eventType, { type: eventType, content: content, timestamp: timestamp }) + } + MatrixClientEventEmitter.prototype.isInvite = function (stateChange) { + return stateChange.rooms + ? stateChange.rooms.some(function (room) { + return room.status === MatrixRoom_1.MatrixRoomStatus.INVITED + }) + : false + } + MatrixClientEventEmitter.prototype.emitInvite = function (eventType, stateChange) { + var _this = this + stateChange.rooms + .filter(function (room) { + return room.status === MatrixRoom_1.MatrixRoomStatus.INVITED + }) + .map(function (room) { + return [room.id, room.members] + }) + .forEach(function (_a) { + var id = _a[0], + members = _a[1] + _this.emitClientEvent(eventType, { roomId: id, members: members }) + }) + } + MatrixClientEventEmitter.prototype.isMessage = function (stateChange) { + return stateChange.rooms + ? stateChange.rooms.some(function (room) { + return room.messages.length > 0 + }) + : false + } + MatrixClientEventEmitter.prototype.emitMessage = function (eventType, stateChange) { + var _this = this + stateChange.rooms + .filter(function (room) { + return room.messages.length > 0 + }) + .map(function (room) { + return room.messages.map(function (message) { + return [room.id, message, message.timestamp] + }) + }) + .reduce(function (flatten, toFlatten) { + return flatten.concat(toFlatten) + }, []) + .forEach(function (_a) { + var roomId = _a[0], + message = _a[1], + timestamp = _a[2] + _this.emitClientEvent(eventType, { roomId: roomId, message: message }, timestamp) + }) + } + return MatrixClientEventEmitter + })(events_1.EventEmitter) + exports.MatrixClientEventEmitter = MatrixClientEventEmitter + }, + { + './models/MatrixClientEvent': 277, + './models/MatrixRoom': 279, + '@airgap/beacon-utils': 302, + events: 134 + } + ], + 275: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.MatrixClientStore = void 0 + var beacon_utils_1 = require('@airgap/beacon-utils') + var MatrixRoom_1 = require('./models/MatrixRoom') + var beacon_types_1 = require('@airgap/beacon-types') + var PRESERVED_FIELDS = ['syncToken', 'rooms'] + var MatrixClientStore = (function () { + function MatrixClientStore(storage) { + var _this = this + this.storage = storage + this.state = { + isRunning: false, + userId: undefined, + deviceId: undefined, + txnNo: 0, + accessToken: undefined, + syncToken: undefined, + pollingTimeout: undefined, + pollingRetries: 0, + rooms: {} + } + this.onStateChangedListeners = new Map() + this.waitReadyPromise = new Promise(function (resolve, reject) { + return __awaiter(_this, void 0, void 0, function () { + var error_1 + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]) + return [4, this.initFromStorage()] + case 1: + _a.sent() + resolve() + return [3, 3] + case 2: + error_1 = _a.sent() + reject(error_1) + return [3, 3] + case 3: + return [2] + } + }) + }) + }) + } + MatrixClientStore.prototype.get = function (key) { + return this.state[key] + } + MatrixClientStore.prototype.getRoom = function (roomOrId) { + var room = MatrixRoom_1.MatrixRoom.from( + roomOrId, + MatrixRoom_1.MatrixRoomStatus.UNKNOWN + ) + return this.state.rooms[room.id] || room + } + MatrixClientStore.prototype.update = function (stateUpdate) { + return __awaiter(this, void 0, void 0, function () { + var oldState + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.waitReady()] + case 1: + _a.sent() + oldState = Object.assign({}, this.state) + this.setState(stateUpdate) + this.updateStorage(stateUpdate) + this.notifyListeners(oldState, this.state, stateUpdate) + return [2] + } + }) + }) + } + MatrixClientStore.prototype.onStateChanged = function (listener) { + var _this = this + var subscribed = [] + for (var _i = 1; _i < arguments.length; _i++) { + subscribed[_i - 1] = arguments[_i] + } + if (subscribed.length > 0) { + subscribed.forEach(function (key) { + _this.onStateChangedListeners.set(key, listener) + }) + } else { + this.onStateChangedListeners.set('all', listener) + } + } + MatrixClientStore.prototype.waitReady = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.waitReadyPromise] + }) + }) + } + MatrixClientStore.prototype.initFromStorage = function () { + return __awaiter(this, void 0, void 0, function () { + var preserved + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.storage.get(beacon_types_1.StorageKey.MATRIX_PRESERVED_STATE)] + case 1: + preserved = _a.sent() + this.setState(preserved) + return [2] + } + }) + }) + } + MatrixClientStore.prototype.prepareData = function (toStore) { + var requiresPreparation = ['rooms'] + var toStoreCopy = requiresPreparation.some(function (key) { + return toStore[key] !== undefined + }) + ? JSON.parse(JSON.stringify(toStore)) + : toStore + Object.values(toStoreCopy.rooms || {}).forEach(function (room) { + room.messages = [] + }) + return toStoreCopy + } + MatrixClientStore.prototype.updateStorage = function (stateUpdate) { + var _this = this + var updatedCachedFields = Object.entries(stateUpdate).filter(function (_a) { + var key = _a[0], + value = _a[1] + return PRESERVED_FIELDS.includes(key) && Boolean(value) + }) + if (updatedCachedFields.length > 0) { + var filteredState_1 = {} + PRESERVED_FIELDS.forEach(function (key) { + filteredState_1[key] = _this.state[key] + }) + this.storage.set( + beacon_types_1.StorageKey.MATRIX_PRESERVED_STATE, + this.prepareData(filteredState_1) + ) + } + } + MatrixClientStore.prototype.setState = function (partialState) { + this.state = { + isRunning: partialState.isRunning || this.state.isRunning, + userId: partialState.userId || this.state.userId, + deviceId: partialState.deviceId || this.state.deviceId, + txnNo: partialState.txnNo || this.state.txnNo, + accessToken: partialState.accessToken || this.state.accessToken, + syncToken: partialState.syncToken || this.state.syncToken, + pollingTimeout: partialState.pollingTimeout || this.state.pollingTimeout, + pollingRetries: partialState.pollingRetries || this.state.pollingRetries, + rooms: this.mergeRooms(this.state.rooms, partialState.rooms) + } + } + MatrixClientStore.prototype.mergeRooms = function (oldRooms, _newRooms) { + if (!_newRooms) { + return oldRooms + } + var newRooms = Array.isArray(_newRooms) ? _newRooms : Object.values(_newRooms) + var merged = Object.assign({}, oldRooms) + newRooms.forEach(function (newRoom) { + merged[newRoom.id] = MatrixRoom_1.MatrixRoom.merge(newRoom, oldRooms[newRoom.id]) + }) + return merged + } + MatrixClientStore.prototype.notifyListeners = function ( + oldState, + newState, + stateChange + ) { + var _this = this + var listenForAll = this.onStateChangedListeners.get('all') + if (listenForAll) { + listenForAll(oldState, newState, stateChange) + } + ;(0, beacon_utils_1.keys)(stateChange) + .filter(function (key) { + return stateChange[key] !== undefined + }) + .forEach(function (key) { + var listener = _this.onStateChangedListeners.get(key) + if (listener) { + listener(oldState, newState, stateChange) + } + }) + } + return MatrixClientStore + })() + exports.MatrixClientStore = MatrixClientStore + }, + { './models/MatrixRoom': 279, '@airgap/beacon-types': 287, '@airgap/beacon-utils': 302 } + ], + 276: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + var __spreadArray = + (this && this.__spreadArray) || + function (to, from, pack) { + if (pack || arguments.length === 2) + for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i) + ar[i] = from[i] + } + } + return to.concat(ar || Array.prototype.slice.call(from)) + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.MatrixHttpClient = void 0 + var axios_1 = require('axios') + var beacon_utils_1 = require('@airgap/beacon-utils') + var CLIENT_API_R0 = '/_matrix/client/r0' + var MatrixHttpClient = (function () { + function MatrixHttpClient(baseUrl) { + this.baseUrl = baseUrl + this.cancelTokenSource = axios_1.default.CancelToken.source() + } + MatrixHttpClient.prototype.get = function (endpoint, params, options) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.send('GET', endpoint, options, params)] + }) + }) + } + MatrixHttpClient.prototype.post = function (endpoint, body, options, params) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.send('POST', endpoint, options, params, body)] + }) + }) + } + MatrixHttpClient.prototype.put = function (endpoint, body, options, params) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.send('PUT', endpoint, options, params, body)] + }) + }) + } + MatrixHttpClient.prototype.cancelAllRequests = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.cancelTokenSource.cancel('Manually cancelled')] + }) + }) + } + MatrixHttpClient.prototype.send = function ( + method, + endpoint, + config, + requestParams, + data + ) { + return __awaiter(this, void 0, void 0, function () { + var headers, params, response, axiosError_1 + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + headers = config ? this.getHeaders(config) : undefined + params = requestParams ? this.getParams(requestParams) : undefined + _a.label = 1 + case 1: + _a.trys.push([1, 3, , 4]) + return [ + 4, + axios_1.default.request({ + method: method, + url: endpoint, + baseURL: this.apiUrl(CLIENT_API_R0), + headers: headers, + data: data, + params: params, + cancelToken: this.cancelTokenSource.token + }) + ] + case 2: + response = _a.sent() + return [3, 4] + case 3: + axiosError_1 = _a.sent() + throw axiosError_1.response.data + case 4: + return [2, response.data] + } + }) + }) + } + MatrixHttpClient.prototype.getHeaders = function (options) { + var headers = {} + var entries = [] + if (options.accessToken) { + entries.push(['Authorization', 'Bearer ' + options.accessToken]) + } + if (entries.length === 0) { + return undefined + } + for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) { + var _a = entries_1[_i], + key = _a[0], + value = _a[1] + headers[key] = value + } + return headers + } + MatrixHttpClient.prototype.getParams = function (_params) { + if (!_params) { + return undefined + } + var params = Object.assign(_params, {}) + ;(0, beacon_utils_1.keys)(params).forEach(function (key) { + return params[key] === undefined && delete params[key] + }) + return params + } + MatrixHttpClient.prototype.apiUrl = function () { + var parts = [] + for (var _i = 0; _i < arguments.length; _i++) { + parts[_i] = arguments[_i] + } + var apiBase = this.baseUrl.endsWith('/') + ? this.baseUrl.substr(0, this.baseUrl.length - 1) + : this.baseUrl + var apiParts = parts.map(function (path) { + return path.startsWith('/') ? path.substr(1) : path + }) + return __spreadArray([apiBase], apiParts, true).join('/') + } + return MatrixHttpClient + })() + exports.MatrixHttpClient = MatrixHttpClient + }, + { '@airgap/beacon-utils': 302, axios: 16 } + ], + 277: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.MatrixClientEventType = void 0 + var MatrixClientEventType + ;(function (MatrixClientEventType) { + MatrixClientEventType['INVITE'] = 'invite' + MatrixClientEventType['MESSAGE'] = 'message' + })( + (MatrixClientEventType = + exports.MatrixClientEventType || (exports.MatrixClientEventType = {})) + ) + }, + {} + ], + 278: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.MatrixMessage = exports.MatrixMessageType = void 0 + var events_1 = require('../utils/events') + var MatrixMessageType + ;(function (MatrixMessageType) { + MatrixMessageType['TEXT'] = 'm.text' + })((MatrixMessageType = exports.MatrixMessageType || (exports.MatrixMessageType = {}))) + var MatrixMessage = (function () { + function MatrixMessage(type, sender, content, timestamp) { + this.type = type + this.sender = sender + this.content = content + this.timestamp = timestamp + } + MatrixMessage.from = function (event) { + if ((0, events_1.isTextMessageEvent)(event)) { + return new MatrixMessage( + event.content.msgtype, + event.sender, + event.content.body, + event.origin_server_ts + ) + } + return undefined + } + return MatrixMessage + })() + exports.MatrixMessage = MatrixMessage + }, + { '../utils/events': 283 } + ], + 279: [ + function (require, module, exports) { + 'use strict' + var __spreadArray = + (this && this.__spreadArray) || + function (to, from, pack) { + if (pack || arguments.length === 2) + for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i) + ar[i] = from[i] + } + } + return to.concat(ar || Array.prototype.slice.call(from)) + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.MatrixRoom = exports.MatrixRoomStatus = void 0 + var events_1 = require('../utils/events') + var MatrixMessage_1 = require('./MatrixMessage') + var MatrixRoomStatus + ;(function (MatrixRoomStatus) { + MatrixRoomStatus[(MatrixRoomStatus['UNKNOWN'] = 0)] = 'UNKNOWN' + MatrixRoomStatus[(MatrixRoomStatus['JOINED'] = 1)] = 'JOINED' + MatrixRoomStatus[(MatrixRoomStatus['INVITED'] = 2)] = 'INVITED' + MatrixRoomStatus[(MatrixRoomStatus['LEFT'] = 3)] = 'LEFT' + })((MatrixRoomStatus = exports.MatrixRoomStatus || (exports.MatrixRoomStatus = {}))) + var MatrixRoom = (function () { + function MatrixRoom(id, status, members, messages) { + if (status === void 0) { + status = MatrixRoomStatus.UNKNOWN + } + if (members === void 0) { + members = [] + } + if (messages === void 0) { + messages = [] + } + this.id = id + this.status = status + this.members = members + this.messages = messages + } + MatrixRoom.fromSync = function (roomSync) { + function create(rooms, creator) { + return Object.entries(rooms).map(function (_a) { + var id = _a[0], + room = _a[1] + return creator(id, room) + }) + } + return __spreadArray( + __spreadArray( + __spreadArray([], create(roomSync.join, MatrixRoom.fromJoined), true), + create(roomSync.invite, MatrixRoom.fromInvited), + true + ), + create(roomSync.leave, MatrixRoom.fromLeft), + true + ) + } + MatrixRoom.from = function (roomOrId, status) { + return typeof roomOrId === 'string' + ? new MatrixRoom(roomOrId, status || MatrixRoomStatus.UNKNOWN) + : status !== undefined + ? new MatrixRoom(roomOrId.id, status, roomOrId.members, roomOrId.messages) + : roomOrId + } + MatrixRoom.merge = function (newState, previousState) { + if (!previousState || previousState.id !== newState.id) { + return MatrixRoom.from(newState) + } + return new MatrixRoom( + newState.id, + newState.status, + __spreadArray( + __spreadArray([], previousState.members, true), + newState.members, + true + ).filter(function (member, index, array) { + return array.indexOf(member) === index + }), + __spreadArray( + __spreadArray([], previousState.messages, true), + newState.messages, + true + ) + ) + } + MatrixRoom.fromJoined = function (id, joined) { + var events = __spreadArray( + __spreadArray([], joined.state.events, true), + joined.timeline.events, + true + ) + var members = MatrixRoom.getMembersFromEvents(events) + var messages = MatrixRoom.getMessagesFromEvents(events) + return new MatrixRoom(id, MatrixRoomStatus.JOINED, members, messages) + } + MatrixRoom.fromInvited = function (id, invited) { + var members = MatrixRoom.getMembersFromEvents(invited.invite_state.events) + return new MatrixRoom(id, MatrixRoomStatus.INVITED, members) + } + MatrixRoom.fromLeft = function (id, left) { + var events = __spreadArray( + __spreadArray([], left.state.events, true), + left.timeline.events, + true + ) + var members = MatrixRoom.getMembersFromEvents(events) + var messages = MatrixRoom.getMessagesFromEvents(events) + return new MatrixRoom(id, MatrixRoomStatus.LEFT, members, messages) + } + MatrixRoom.getMembersFromEvents = function (events) { + return MatrixRoom.getUniqueEvents( + events.filter(function (event) { + return (0, events_1.isCreateEvent)(event) || (0, events_1.isJoinEvent)(event) + }) + ) + .map(function (event) { + return event.sender + }) + .filter(function (member, index, array) { + return array.indexOf(member) === index + }) + } + MatrixRoom.getMessagesFromEvents = function (events) { + return MatrixRoom.getUniqueEvents(events.filter(events_1.isMessageEvent)) + .map(function (event) { + return MatrixMessage_1.MatrixMessage.from(event) + }) + .filter(Boolean) + } + MatrixRoom.getUniqueEvents = function (events) { + var eventIds = {} + var uniqueEvents = [] + events.forEach(function (event, index) { + var eventId = event.event_id + if (eventId === undefined || !(eventId in eventIds)) { + if (eventId !== undefined) { + eventIds[eventId] = index + } + uniqueEvents.push(event) + } + }) + return uniqueEvents + } + return MatrixRoom + })() + exports.MatrixRoom = MatrixRoom + }, + { '../utils/events': 283, './MatrixMessage': 278 } + ], + 280: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.MatrixEventService = void 0 + var MatrixEventService = (function () { + function MatrixEventService(httpClient) { + this.httpClient = httpClient + this.cachedPromises = new Map() + } + MatrixEventService.prototype.sync = function (accessToken, options) { + return __awaiter(this, void 0, void 0, function () { + var _this = this + return __generator(this, function (_a) { + return [ + 2, + this.withCache('sync', function () { + return _this.httpClient.get( + '/sync', + { + timeout: options ? options.pollingTimeout : undefined, + since: options ? options.syncToken : undefined + }, + { accessToken: accessToken } + ) + }) + ] + }) + }) + } + MatrixEventService.prototype.sendMessage = function ( + accessToken, + roomId, + content, + txnId + ) { + return __awaiter(this, void 0, void 0, function () { + var _this = this + return __generator(this, function (_a) { + return [ + 2, + new Promise(function (resolve, reject) { + return _this.scheduleEvent({ + accessToken: accessToken, + roomId: roomId, + type: 'm.room.message', + content: content, + txnId: txnId, + onSuccess: resolve, + onError: reject + }) + }) + ] + }) + }) + } + MatrixEventService.prototype.scheduleEvent = function (event) { + this.sendEvent(event) + } + MatrixEventService.prototype.sendEvent = function (scheduledEvent) { + return __awaiter(this, void 0, void 0, function () { + var roomId, type, txnId, content, accessToken, response, error_1 + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + ;(roomId = scheduledEvent.roomId), + (type = scheduledEvent.type), + (txnId = scheduledEvent.txnId), + (content = scheduledEvent.content), + (accessToken = scheduledEvent.accessToken) + _a.label = 1 + case 1: + _a.trys.push([1, 3, , 4]) + return [ + 4, + this.httpClient.put( + '/rooms/' + + encodeURIComponent(roomId) + + '/send/' + + type + + '/' + + encodeURIComponent(txnId), + content, + { accessToken: accessToken } + ) + ] + case 2: + response = _a.sent() + scheduledEvent.onSuccess(response) + return [3, 4] + case 3: + error_1 = _a.sent() + scheduledEvent.onError(error_1) + return [3, 4] + case 4: + return [2] + } + }) + }) + } + MatrixEventService.prototype.withCache = function (key, promiseProvider) { + var _this = this + var promise = this.cachedPromises.get(key) + if (!promise) { + promise = promiseProvider().finally(function () { + _this.cachedPromises.delete(key) + }) + this.cachedPromises.set(key, promise) + } + return promise + } + return MatrixEventService + })() + exports.MatrixEventService = MatrixEventService + }, + {} + ], + 281: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.MatrixRoomService = void 0 + var MatrixRoom_1 = require('../models/MatrixRoom') + var MatrixRoomService = (function () { + function MatrixRoomService(httpClient) { + this.httpClient = httpClient + } + MatrixRoomService.prototype.createRoom = function (accessToken, config) { + if (config === void 0) { + config = {} + } + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + this.httpClient.post('/createRoom', config, { accessToken: accessToken }) + ] + }) + }) + } + MatrixRoomService.prototype.inviteToRoom = function (accessToken, user, room) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + if ( + room.status !== MatrixRoom_1.MatrixRoomStatus.JOINED && + room.status !== MatrixRoom_1.MatrixRoomStatus.UNKNOWN + ) { + return [2, Promise.reject('User is not a member of room ' + room.id + '.')] + } + return [ + 2, + this.httpClient.post( + '/rooms/' + encodeURIComponent(room.id) + '/invite', + { user_id: user }, + { accessToken: accessToken } + ) + ] + }) + }) + } + MatrixRoomService.prototype.joinRoom = function (accessToken, room) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + if (room.status === MatrixRoom_1.MatrixRoomStatus.JOINED) { + return [2, Promise.resolve({ room_id: room.id })] + } + return [ + 2, + this.httpClient.post( + '/rooms/' + encodeURIComponent(room.id) + '/join', + {}, + { accessToken: accessToken } + ) + ] + }) + }) + } + MatrixRoomService.prototype.getJoinedRooms = function (accessToken) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + this.httpClient.get('/joined_rooms', undefined, { accessToken: accessToken }) + ] + }) + }) + } + return MatrixRoomService + })() + exports.MatrixRoomService = MatrixRoomService + }, + { '../models/MatrixRoom': 279 } + ], + 282: [ + function (require, module, exports) { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.MatrixUserService = void 0 + var MatrixUserService = (function () { + function MatrixUserService(httpClient) { + this.httpClient = httpClient + } + MatrixUserService.prototype.login = function (user, password, deviceId) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + this.httpClient.post('/login', { + type: 'm.login.password', + identifier: { type: 'm.id.user', user: user }, + password: password, + device_id: deviceId + }) + ] + }) + }) + } + return MatrixUserService + })() + exports.MatrixUserService = MatrixUserService + }, + {} + ], + 283: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.isTextMessageEvent = + exports.isMessageEvent = + exports.isJoinEvent = + exports.isCreateEvent = + void 0 + var MatrixMessage_1 = require('../models/MatrixMessage') + var isCreateEvent = function (event) { + return ( + event.type === 'm.room.create' && + event.content instanceof Object && + 'creator' in event.content + ) + } + exports.isCreateEvent = isCreateEvent + var isJoinEvent = function (event) { + return ( + event.type === 'm.room.member' && + event.content instanceof Object && + 'membership' in event.content && + event.content['membership'] === 'join' + ) + } + exports.isJoinEvent = isJoinEvent + var isMessageEvent = function (event) { + return event.type === 'm.room.message' + } + exports.isMessageEvent = isMessageEvent + var isTextMessageEvent = function (event) { + return ( + (0, exports.isMessageEvent)(event) && + event.content instanceof Object && + 'msgtype' in event.content && + event.content['msgtype'] === MatrixMessage_1.MatrixMessageType.TEXT + ) + } + exports.isTextMessageEvent = isTextMessageEvent + }, + { '../models/MatrixMessage': 278 } + ], + 284: [ + function (require, module, exports) { + ;(function (Buffer) { + ;(function () { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + var __assign = + (this && this.__assign) || + function () { + __assign = + Object.assign || + function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i] + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p] + } + return t + } + return __assign.apply(this, arguments) + } + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.PostMessageClient = void 0 + var libsodium_wrappers_1 = require('libsodium-wrappers') + var beacon_core_1 = require('@airgap/beacon-core') + var beacon_utils_1 = require('@airgap/beacon-utils') + var beacon_types_1 = require('@airgap/beacon-types') + var PostMessageClient = (function (_super) { + __extends(PostMessageClient, _super) + function PostMessageClient() { + var _this = (_super !== null && _super.apply(this, arguments)) || this + _this.activeListeners = new Map() + return _this + } + PostMessageClient.prototype.init = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + this.subscribeToMessages().catch(console.error) + return [2] + }) + }) + } + PostMessageClient.prototype.listenForEncryptedMessage = function ( + senderPublicKey, + messageCallback + ) { + return __awaiter(this, void 0, void 0, function () { + var callbackFunction + var _this = this + return __generator(this, function (_a) { + if (this.activeListeners.has(senderPublicKey)) { + return [2] + } + callbackFunction = function (message, context) { + return __awaiter(_this, void 0, void 0, function () { + var decryptedMessage, decryptionError_1 + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]) + return [ + 4, + this.decryptMessage(senderPublicKey, message.encryptedPayload) + ] + case 1: + decryptedMessage = _a.sent() + messageCallback(decryptedMessage, context) + return [3, 3] + case 2: + decryptionError_1 = _a.sent() + return [3, 3] + case 3: + return [2] + } + }) + }) + } + this.activeListeners.set(senderPublicKey, callbackFunction) + return [2] + }) + }) + } + PostMessageClient.prototype.sendMessage = function (message, peer) { + var _a + return __awaiter(this, void 0, void 0, function () { + var payload, targetId, msg + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + return [4, this.encryptMessage(peer.publicKey, message)] + case 1: + payload = _b.sent() + targetId = (_a = peer) === null || _a === void 0 ? void 0 : _a.extensionId + msg = { + target: beacon_types_1.ExtensionMessageTarget.EXTENSION, + encryptedPayload: payload, + targetId: targetId + } + beacon_core_1.windowRef.postMessage( + msg, + beacon_core_1.windowRef.location.origin + ) + return [2] + } + }) + }) + } + PostMessageClient.prototype.listenForChannelOpening = function (messageCallback) { + return __awaiter(this, void 0, void 0, function () { + var fn + var _this = this + return __generator(this, function (_a) { + fn = function (event) { + return __awaiter(_this, void 0, void 0, function () { + var data, _a, payload, pairingResponse, _b, _c, _d, _e, decryptionError_2 + var _f + var _g, _h + return __generator(this, function (_j) { + switch (_j.label) { + case 0: + data = + (_g = + event === null || event === void 0 ? void 0 : event.data) === + null || _g === void 0 + ? void 0 + : _g.message + _a = + data && data.target === beacon_types_1.ExtensionMessageTarget.PAGE + if (!_a) return [3, 2] + return [4, this.isChannelOpenMessage(data)] + case 1: + _a = _j.sent() + _j.label = 2 + case 2: + if (!_a) return [3, 7] + payload = Buffer.from(data.payload, 'hex') + if ( + !( + payload.length >= + libsodium_wrappers_1.crypto_secretbox_NONCEBYTES + + libsodium_wrappers_1.crypto_secretbox_MACBYTES + ) + ) + return [3, 7] + _j.label = 3 + case 3: + _j.trys.push([3, 6, , 7]) + _c = (_b = JSON).parse + return [ + 4, + (0, beacon_utils_1.openCryptobox)( + payload, + this.keyPair.publicKey, + this.keyPair.privateKey + ) + ] + case 4: + pairingResponse = _c.apply(_b, [_j.sent()]) + _d = messageCallback + _e = [__assign({}, pairingResponse)] + _f = {} + return [ + 4, + (0, beacon_core_1.getSenderId)(pairingResponse.publicKey) + ] + case 5: + _d.apply(void 0, [ + __assign.apply( + void 0, + _e.concat([ + ((_f.senderId = _j.sent()), + (_f.extensionId = + (_h = + event === null || event === void 0 + ? void 0 + : event.data) === null || _h === void 0 + ? void 0 + : _h.sender.id), + _f) + ]) + ) + ]) + return [3, 7] + case 6: + decryptionError_2 = _j.sent() + return [3, 7] + case 7: + return [2] + } + }) + }) + } + beacon_core_1.windowRef.addEventListener('message', fn) + return [2] + }) + }) + } + PostMessageClient.prototype.sendPairingRequest = function (id) { + return __awaiter(this, void 0, void 0, function () { + var message, _a, _b + var _c + return __generator(this, function (_d) { + switch (_d.label) { + case 0: + _c = { target: beacon_types_1.ExtensionMessageTarget.EXTENSION } + _b = (_a = new beacon_core_1.Serializer()).serialize + return [4, this.getPairingRequestInfo()] + case 1: + return [4, _b.apply(_a, [_d.sent()])] + case 2: + message = ((_c.payload = _d.sent()), (_c.targetId = id), _c) + beacon_core_1.windowRef.postMessage( + message, + beacon_core_1.windowRef.location.origin + ) + return [2] + } + }) + }) + } + PostMessageClient.prototype.isChannelOpenMessage = function (message) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, typeof message === 'object' && message.hasOwnProperty('payload')] + }) + }) + } + PostMessageClient.prototype.subscribeToMessages = function () { + return __awaiter(this, void 0, void 0, function () { + var _this = this + return __generator(this, function (_a) { + beacon_core_1.windowRef.addEventListener('message', function (message) { + if (typeof message === 'object' && message) { + var data_1 = message.data + if ( + data_1.message && + data_1.message.target === beacon_types_1.ExtensionMessageTarget.PAGE + ) { + _this.activeListeners.forEach(function (listener) { + listener(data_1.message, { + origin: beacon_types_1.Origin.EXTENSION, + id: data_1.sender.id || '' + }) + }) + } + } + }) + return [2] + }) + }) + } + return PostMessageClient + })(beacon_core_1.MessageBasedClient) + exports.PostMessageClient = PostMessageClient + }.call(this)) + }.call(this, require('buffer').Buffer)) + }, + { + '@airgap/beacon-core': 229, + '@airgap/beacon-types': 287, + '@airgap/beacon-utils': 302, + buffer: 93, + 'libsodium-wrappers': 153 + } + ], + 285: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.PostMessageTransport = void 0 + var beacon_types_1 = require('@airgap/beacon-types') + var beacon_core_1 = require('@airgap/beacon-core') + var PostMessageClient_1 = require('./PostMessageClient') + var logger = new beacon_core_1.Logger('PostMessageTransport') + var listeningForExtensions = false + var extensionsPromise + var extensions + var addExtension = function (extension) { + if (!extensions) { + extensions = [] + } + if ( + !extensions.some(function (ext) { + return ext.id === extension.id + }) + ) { + extensions.push(extension) + beacon_core_1.windowRef.postMessage( + 'extensionsUpdated', + beacon_core_1.windowRef.location.origin + ) + } + } + var PostMessageTransport = (function (_super) { + __extends(PostMessageTransport, _super) + function PostMessageTransport(name, keyPair, storage, storageKey) { + var _this = + _super.call( + this, + name, + new PostMessageClient_1.PostMessageClient(name, keyPair), + new beacon_core_1.PeerManager(storage, storageKey) + ) || this + _this.type = beacon_types_1.TransportType.POST_MESSAGE + return _this + } + PostMessageTransport.isAvailable = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [ + 2, + new Promise(function (resolve) { + var fn = function (event) { + var data = event.data + if (data && data.payload === 'pong') { + resolve(true) + beacon_core_1.windowRef.removeEventListener('message', fn) + } + } + beacon_core_1.windowRef.addEventListener('message', fn) + var message = { + target: beacon_types_1.ExtensionMessageTarget.EXTENSION, + payload: 'ping' + } + beacon_core_1.windowRef.postMessage( + message, + beacon_core_1.windowRef.location.origin + ) + }) + ] + }) + }) + } + PostMessageTransport.getAvailableExtensions = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + if (extensionsPromise) { + return [2, extensionsPromise] + } + if (extensions) { + return [2, extensions] + } + extensions = [] + extensionsPromise = new Promise(function (resolve) { + PostMessageTransport.listenForExtensions() + setTimeout(function () { + resolve(extensions !== null && extensions !== void 0 ? extensions : []) + }, 1e3) + }).finally(function () { + extensionsPromise = undefined + }) + return [2, extensionsPromise] + }) + }) + } + PostMessageTransport.listenForExtensions = function () { + if (listeningForExtensions) { + return + } + var fn = function (event) { + var data = event.data + var sender = data.sender + if (data && data.payload === 'pong' && sender) { + logger.log( + 'getAvailableExtensions', + 'extension "' + sender.name + '" is available', + sender + ) + addExtension(sender) + } + } + beacon_core_1.windowRef.addEventListener('message', fn) + var message = { + target: beacon_types_1.ExtensionMessageTarget.EXTENSION, + payload: 'ping' + } + beacon_core_1.windowRef.postMessage(message, beacon_core_1.windowRef.location.origin) + listeningForExtensions = true + } + PostMessageTransport.prototype.connect = function () { + return __awaiter(this, void 0, void 0, function () { + var knownPeers, connectionPromises + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + logger.log('connect') + if (this._isConnected !== beacon_types_1.TransportStatus.NOT_CONNECTED) { + return [2] + } + this._isConnected = beacon_types_1.TransportStatus.CONNECTING + return [4, this.getPeers()] + case 1: + knownPeers = _a.sent() + if (knownPeers.length > 0) { + logger.log('connect', 'connecting to ' + knownPeers.length + ' peers') + connectionPromises = knownPeers.map(function (peer) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.listen(peer.publicKey)] + }) + }) + }) + Promise.all(connectionPromises).catch(function (error) { + return logger.error('connect', error) + }) + } + return [4, this.startOpenChannelListener()] + case 2: + _a.sent() + return [4, _super.prototype.connect.call(this)] + case 3: + _a.sent() + return [2] + } + }) + }) + } + PostMessageTransport.prototype.startOpenChannelListener = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2] + }) + }) + } + PostMessageTransport.prototype.getPairingRequestInfo = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.client.getPairingRequestInfo()] + }) + }) + } + PostMessageTransport.prototype.listen = function (publicKey) { + return __awaiter(this, void 0, void 0, function () { + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + logger.log('listen', publicKey) + return [ + 4, + this.client + .listenForEncryptedMessage(publicKey, function (message, context) { + var connectionContext = { + origin: beacon_types_1.Origin.EXTENSION, + id: context.id + } + _this + .notifyListeners(message, connectionContext) + .catch(function (error) { + throw error + }) + }) + .catch(function (error) { + throw error + }) + ] + case 1: + _a.sent() + return [2] + } + }) + }) + } + return PostMessageTransport + })(beacon_core_1.Transport) + exports.PostMessageTransport = PostMessageTransport + }, + { './PostMessageClient': 284, '@airgap/beacon-core': 229, '@airgap/beacon-types': 287 } + ], + 286: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.PostMessageTransport = void 0 + var PostMessageTransport_1 = require('./PostMessageTransport') + Object.defineProperty(exports, 'PostMessageTransport', { + enumerable: true, + get: function () { + return PostMessageTransport_1.PostMessageTransport + } + }) + }, + { './PostMessageTransport': 285 } + ], + 287: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.ColorMode = + exports.defaultValues = + exports.StorageKey = + exports.Storage = + exports.TransportType = + exports.TransportStatus = + exports.BeaconErrorType = + exports.ExtensionMessageTarget = + exports.SigningType = + exports.Origin = + exports.PermissionScope = + exports.BeaconMessageType = + exports.NetworkType = + exports.TezosOperationType = + void 0 + var BeaconMessageType_1 = require('./types/beacon/BeaconMessageType') + Object.defineProperty(exports, 'BeaconMessageType', { + enumerable: true, + get: function () { + return BeaconMessageType_1.BeaconMessageType + } + }) + var PermissionScope_1 = require('./types/beacon/PermissionScope') + Object.defineProperty(exports, 'PermissionScope', { + enumerable: true, + get: function () { + return PermissionScope_1.PermissionScope + } + }) + var NetworkType_1 = require('./types/beacon/NetworkType') + Object.defineProperty(exports, 'NetworkType', { + enumerable: true, + get: function () { + return NetworkType_1.NetworkType + } + }) + var OperationTypes_1 = require('./types/tezos/OperationTypes') + Object.defineProperty(exports, 'TezosOperationType', { + enumerable: true, + get: function () { + return OperationTypes_1.TezosOperationType + } + }) + var Origin_1 = require('./types/Origin') + Object.defineProperty(exports, 'Origin', { + enumerable: true, + get: function () { + return Origin_1.Origin + } + }) + var ExtensionMessageTarget_1 = require('./types/ExtensionMessageTarget') + Object.defineProperty(exports, 'ExtensionMessageTarget', { + enumerable: true, + get: function () { + return ExtensionMessageTarget_1.ExtensionMessageTarget + } + }) + var BeaconErrorType_1 = require('./types/BeaconErrorType') + Object.defineProperty(exports, 'BeaconErrorType', { + enumerable: true, + get: function () { + return BeaconErrorType_1.BeaconErrorType + } + }) + var TransportStatus_1 = require('./types/transport/TransportStatus') + Object.defineProperty(exports, 'TransportStatus', { + enumerable: true, + get: function () { + return TransportStatus_1.TransportStatus + } + }) + var TransportType_1 = require('./types/transport/TransportType') + Object.defineProperty(exports, 'TransportType', { + enumerable: true, + get: function () { + return TransportType_1.TransportType + } + }) + var Storage_1 = require('./types/storage/Storage') + Object.defineProperty(exports, 'Storage', { + enumerable: true, + get: function () { + return Storage_1.Storage + } + }) + var StorageKey_1 = require('./types/storage/StorageKey') + Object.defineProperty(exports, 'StorageKey', { + enumerable: true, + get: function () { + return StorageKey_1.StorageKey + } + }) + var StorageKeyReturnDefaults_1 = require('./types/storage/StorageKeyReturnDefaults') + Object.defineProperty(exports, 'defaultValues', { + enumerable: true, + get: function () { + return StorageKeyReturnDefaults_1.defaultValues + } + }) + var SigningType_1 = require('./types/beacon/SigningType') + Object.defineProperty(exports, 'SigningType', { + enumerable: true, + get: function () { + return SigningType_1.SigningType + } + }) + var ColorMode_1 = require('./types/ColorMode') + Object.defineProperty(exports, 'ColorMode', { + enumerable: true, + get: function () { + return ColorMode_1.ColorMode + } + }) + }, + { + './types/BeaconErrorType': 288, + './types/ColorMode': 289, + './types/ExtensionMessageTarget': 290, + './types/Origin': 291, + './types/beacon/BeaconMessageType': 292, + './types/beacon/NetworkType': 293, + './types/beacon/PermissionScope': 294, + './types/beacon/SigningType': 295, + './types/storage/Storage': 296, + './types/storage/StorageKey': 297, + './types/storage/StorageKeyReturnDefaults': 298, + './types/tezos/OperationTypes': 299, + './types/transport/TransportStatus': 300, + './types/transport/TransportType': 301 + } + ], + 288: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.BeaconErrorType = void 0 + var BeaconErrorType + ;(function (BeaconErrorType) { + BeaconErrorType['BROADCAST_ERROR'] = 'BROADCAST_ERROR' + BeaconErrorType['NETWORK_NOT_SUPPORTED'] = 'NETWORK_NOT_SUPPORTED' + BeaconErrorType['NO_ADDRESS_ERROR'] = 'NO_ADDRESS_ERROR' + BeaconErrorType['NO_PRIVATE_KEY_FOUND_ERROR'] = 'NO_PRIVATE_KEY_FOUND_ERROR' + BeaconErrorType['NOT_GRANTED_ERROR'] = 'NOT_GRANTED_ERROR' + BeaconErrorType['PARAMETERS_INVALID_ERROR'] = 'PARAMETERS_INVALID_ERROR' + BeaconErrorType['TOO_MANY_OPERATIONS'] = 'TOO_MANY_OPERATIONS' + BeaconErrorType['TRANSACTION_INVALID_ERROR'] = 'TRANSACTION_INVALID_ERROR' + BeaconErrorType['SIGNATURE_TYPE_NOT_SUPPORTED'] = 'SIGNATURE_TYPE_NOT_SUPPORTED' + BeaconErrorType['ABORTED_ERROR'] = 'ABORTED_ERROR' + BeaconErrorType['UNKNOWN_ERROR'] = 'UNKNOWN_ERROR' + })((BeaconErrorType = exports.BeaconErrorType || (exports.BeaconErrorType = {}))) + }, + {} + ], + 289: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.ColorMode = void 0 + var ColorMode + ;(function (ColorMode) { + ColorMode['LIGHT'] = 'light' + ColorMode['DARK'] = 'dark' + })((ColorMode = exports.ColorMode || (exports.ColorMode = {}))) + }, + {} + ], + 290: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.ExtensionMessageTarget = void 0 + var ExtensionMessageTarget + ;(function (ExtensionMessageTarget) { + ExtensionMessageTarget['BACKGROUND'] = 'toBackground' + ExtensionMessageTarget['PAGE'] = 'toPage' + ExtensionMessageTarget['EXTENSION'] = 'toExtension' + })( + (ExtensionMessageTarget = + exports.ExtensionMessageTarget || (exports.ExtensionMessageTarget = {})) + ) + }, + {} + ], + 291: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.Origin = void 0 + var Origin + ;(function (Origin) { + Origin['WEBSITE'] = 'website' + Origin['EXTENSION'] = 'extension' + Origin['P2P'] = 'p2p' + })((Origin = exports.Origin || (exports.Origin = {}))) + }, + {} + ], + 292: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.BeaconMessageType = void 0 + var BeaconMessageType + ;(function (BeaconMessageType) { + BeaconMessageType['PermissionRequest'] = 'permission_request' + BeaconMessageType['SignPayloadRequest'] = 'sign_payload_request' + BeaconMessageType['OperationRequest'] = 'operation_request' + BeaconMessageType['BroadcastRequest'] = 'broadcast_request' + BeaconMessageType['PermissionResponse'] = 'permission_response' + BeaconMessageType['SignPayloadResponse'] = 'sign_payload_response' + BeaconMessageType['OperationResponse'] = 'operation_response' + BeaconMessageType['BroadcastResponse'] = 'broadcast_response' + BeaconMessageType['Acknowledge'] = 'acknowledge' + BeaconMessageType['Disconnect'] = 'disconnect' + BeaconMessageType['Error'] = 'error' + })((BeaconMessageType = exports.BeaconMessageType || (exports.BeaconMessageType = {}))) + }, + {} + ], + 293: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.NetworkType = void 0 + var NetworkType + ;(function (NetworkType) { + NetworkType['MAINNET'] = 'mainnet' + NetworkType['DELPHINET'] = 'delphinet' + NetworkType['EDONET'] = 'edonet' + NetworkType['FLORENCENET'] = 'florencenet' + NetworkType['GRANADANET'] = 'granadanet' + NetworkType['HANGZHOUNET'] = 'hangzhounet' + NetworkType['CUSTOM'] = 'custom' + })((NetworkType = exports.NetworkType || (exports.NetworkType = {}))) + }, + {} + ], + 294: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.PermissionScope = void 0 + var PermissionScope + ;(function (PermissionScope) { + PermissionScope['SIGN'] = 'sign' + PermissionScope['OPERATION_REQUEST'] = 'operation_request' + PermissionScope['ENCRYPT'] = 'encrypt' + PermissionScope['THRESHOLD'] = 'threshold' + })((PermissionScope = exports.PermissionScope || (exports.PermissionScope = {}))) + }, + {} + ], + 295: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.SigningType = void 0 + var SigningType + ;(function (SigningType) { + SigningType['RAW'] = 'raw' + SigningType['OPERATION'] = 'operation' + SigningType['MICHELINE'] = 'micheline' + })((SigningType = exports.SigningType || (exports.SigningType = {}))) + }, + {} + ], + 296: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.Storage = void 0 + var Storage = (function () { + function Storage() {} + Storage.isSupported = function () { + return Promise.resolve(false) + } + return Storage + })() + exports.Storage = Storage + }, + {} + ], + 297: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.StorageKey = void 0 + var StorageKey + ;(function (StorageKey) { + StorageKey['TRANSPORT_P2P_PEERS_DAPP'] = 'beacon:communication-peers-dapp' + StorageKey['TRANSPORT_P2P_PEERS_WALLET'] = 'beacon:communication-peers-wallet' + StorageKey['TRANSPORT_POSTMESSAGE_PEERS_DAPP'] = 'beacon:postmessage-peers-dapp' + StorageKey['TRANSPORT_POSTMESSAGE_PEERS_WALLET'] = 'beacon:postmessage-peers-wallet' + StorageKey['ACCOUNTS'] = 'beacon:accounts' + StorageKey['ACTIVE_ACCOUNT'] = 'beacon:active-account' + StorageKey['BEACON_SDK_SECRET_SEED'] = 'beacon:sdk-secret-seed' + StorageKey['APP_METADATA_LIST'] = 'beacon:app-metadata-list' + StorageKey['PERMISSION_LIST'] = 'beacon:permissions' + StorageKey['BEACON_SDK_VERSION'] = 'beacon:sdk_version' + StorageKey['MATRIX_PRESERVED_STATE'] = 'beacon:sdk-matrix-preserved-state' + StorageKey['MATRIX_PEER_ROOM_IDS'] = 'beacon:matrix-peer-rooms' + StorageKey['MATRIX_SELECTED_NODE'] = 'beacon:matrix-selected-node' + StorageKey['MULTI_NODE_SETUP_DONE'] = 'beacon:multi-node-setup' + })((StorageKey = exports.StorageKey || (exports.StorageKey = {}))) + }, + {} + ], + 298: [ + function (require, module, exports) { + 'use strict' + var _a + Object.defineProperty(exports, '__esModule', { value: true }) + exports.defaultValues = void 0 + var __1 = require('../..') + exports.defaultValues = + ((_a = {}), + (_a[__1.StorageKey.TRANSPORT_P2P_PEERS_DAPP] = []), + (_a[__1.StorageKey.TRANSPORT_P2P_PEERS_WALLET] = []), + (_a[__1.StorageKey.TRANSPORT_POSTMESSAGE_PEERS_DAPP] = []), + (_a[__1.StorageKey.TRANSPORT_POSTMESSAGE_PEERS_WALLET] = []), + (_a[__1.StorageKey.ACCOUNTS] = []), + (_a[__1.StorageKey.ACTIVE_ACCOUNT] = undefined), + (_a[__1.StorageKey.BEACON_SDK_SECRET_SEED] = undefined), + (_a[__1.StorageKey.APP_METADATA_LIST] = []), + (_a[__1.StorageKey.PERMISSION_LIST] = []), + (_a[__1.StorageKey.BEACON_SDK_VERSION] = undefined), + (_a[__1.StorageKey.MATRIX_PRESERVED_STATE] = {}), + (_a[__1.StorageKey.MATRIX_PEER_ROOM_IDS] = {}), + (_a[__1.StorageKey.MATRIX_SELECTED_NODE] = undefined), + (_a[__1.StorageKey.MULTI_NODE_SETUP_DONE] = undefined), + _a) + }, + { '../..': 287 } + ], + 299: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.TezosOperationType = void 0 + var TezosOperationType + ;(function (TezosOperationType) { + TezosOperationType['ENDORSEMENT'] = 'endorsement' + TezosOperationType['SEED_NONCE_REVELATION'] = 'seed_nonce_revelation' + TezosOperationType['DOUBLE_ENDORSEMENT_EVIDENCE'] = 'double_endorsement_evidence' + TezosOperationType['DOUBLE_BAKING_EVIDENCE'] = 'double_baking_evidence' + TezosOperationType['ACTIVATE_ACCOUNT'] = 'activate_account' + TezosOperationType['PROPOSALS'] = 'proposals' + TezosOperationType['BALLOT'] = 'ballot' + TezosOperationType['REVEAL'] = 'reveal' + TezosOperationType['TRANSACTION'] = 'transaction' + TezosOperationType['ORIGINATION'] = 'origination' + TezosOperationType['DELEGATION'] = 'delegation' + })((TezosOperationType = exports.TezosOperationType || (exports.TezosOperationType = {}))) + }, + {} + ], + 300: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.TransportStatus = void 0 + var TransportStatus + ;(function (TransportStatus) { + TransportStatus['NOT_CONNECTED'] = 'NOT_CONNECTED' + TransportStatus['CONNECTING'] = 'CONNECTING' + TransportStatus['CONNECTED'] = 'CONNECTED' + })((TransportStatus = exports.TransportStatus || (exports.TransportStatus = {}))) + }, + {} + ], + 301: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.TransportType = void 0 + var TransportType + ;(function (TransportType) { + TransportType['CHROME_MESSAGE'] = 'chrome_message' + TransportType['POST_MESSAGE'] = 'post_message' + TransportType['LEDGER'] = 'ledger' + TransportType['P2P'] = 'p2p' + })((TransportType = exports.TransportType || (exports.TransportType = {}))) + }, + {} + ], + 302: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.generateGUID = + exports.recipientString = + exports.openCryptobox = + exports.sealCryptobox = + exports.getHexHash = + exports.encryptCryptoboxPayload = + exports.decryptCryptoboxPayload = + exports.getAddressFromPublicKey = + exports.toHex = + exports.getKeypairFromSeed = + exports.ExposedPromiseStatus = + exports.ExposedPromise = + exports.keys = + void 0 + var keys_1 = require('./utils/keys') + Object.defineProperty(exports, 'keys', { + enumerable: true, + get: function () { + return keys_1.keys + } + }) + var exposed_promise_1 = require('./utils/exposed-promise') + Object.defineProperty(exports, 'ExposedPromise', { + enumerable: true, + get: function () { + return exposed_promise_1.ExposedPromise + } + }) + Object.defineProperty(exports, 'ExposedPromiseStatus', { + enumerable: true, + get: function () { + return exposed_promise_1.ExposedPromiseStatus + } + }) + var crypto_1 = require('./utils/crypto') + Object.defineProperty(exports, 'getKeypairFromSeed', { + enumerable: true, + get: function () { + return crypto_1.getKeypairFromSeed + } + }) + Object.defineProperty(exports, 'toHex', { + enumerable: true, + get: function () { + return crypto_1.toHex + } + }) + Object.defineProperty(exports, 'getAddressFromPublicKey', { + enumerable: true, + get: function () { + return crypto_1.getAddressFromPublicKey + } + }) + Object.defineProperty(exports, 'decryptCryptoboxPayload', { + enumerable: true, + get: function () { + return crypto_1.decryptCryptoboxPayload + } + }) + Object.defineProperty(exports, 'encryptCryptoboxPayload', { + enumerable: true, + get: function () { + return crypto_1.encryptCryptoboxPayload + } + }) + Object.defineProperty(exports, 'getHexHash', { + enumerable: true, + get: function () { + return crypto_1.getHexHash + } + }) + Object.defineProperty(exports, 'sealCryptobox', { + enumerable: true, + get: function () { + return crypto_1.sealCryptobox + } + }) + Object.defineProperty(exports, 'openCryptobox', { + enumerable: true, + get: function () { + return crypto_1.openCryptobox + } + }) + Object.defineProperty(exports, 'recipientString', { + enumerable: true, + get: function () { + return crypto_1.recipientString + } + }) + var generate_uuid_1 = require('./utils/generate-uuid') + Object.defineProperty(exports, 'generateGUID', { + enumerable: true, + get: function () { + return generate_uuid_1.generateGUID + } + }) + }, + { + './utils/crypto': 303, + './utils/exposed-promise': 304, + './utils/generate-uuid': 305, + './utils/keys': 306 + } + ], + 303: [ + function (require, module, exports) { + ;(function (Buffer) { + ;(function () { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.recipientString = + exports.getAddressFromPublicKey = + exports.openCryptobox = + exports.sealCryptobox = + exports.decryptCryptoboxPayload = + exports.encryptCryptoboxPayload = + exports.getKeypairFromSeed = + exports.getHexHash = + exports.toHex = + void 0 + var bs58check = require('bs58check') + var libsodium_wrappers_1 = require('libsodium-wrappers') + function toHex(value) { + return Buffer.from(value).toString('hex') + } + exports.toHex = toHex + function getHexHash(key) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, libsodium_wrappers_1.ready] + case 1: + _a.sent() + return [2, toHex((0, libsodium_wrappers_1.crypto_generichash)(32, key))] + } + }) + }) + } + exports.getHexHash = getHexHash + function getKeypairFromSeed(seed) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, libsodium_wrappers_1.ready] + case 1: + _a.sent() + return [ + 2, + (0, libsodium_wrappers_1.crypto_sign_seed_keypair)( + (0, libsodium_wrappers_1.crypto_generichash)( + 32, + (0, libsodium_wrappers_1.from_string)(seed) + ) + ) + ] + } + }) + }) + } + exports.getKeypairFromSeed = getKeypairFromSeed + function encryptCryptoboxPayload(message, sharedKey) { + return __awaiter(this, void 0, void 0, function () { + var nonce, combinedPayload + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, libsodium_wrappers_1.ready] + case 1: + _a.sent() + nonce = Buffer.from( + (0, libsodium_wrappers_1.randombytes_buf)( + libsodium_wrappers_1.crypto_secretbox_NONCEBYTES + ) + ) + combinedPayload = Buffer.concat([ + nonce, + Buffer.from( + (0, libsodium_wrappers_1.crypto_secretbox_easy)( + Buffer.from(message, 'utf8'), + nonce, + sharedKey + ) + ) + ]) + return [2, toHex(combinedPayload)] + } + }) + }) + } + exports.encryptCryptoboxPayload = encryptCryptoboxPayload + function decryptCryptoboxPayload(payload, sharedKey) { + return __awaiter(this, void 0, void 0, function () { + var nonce, ciphertext + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, libsodium_wrappers_1.ready] + case 1: + _a.sent() + nonce = payload.slice(0, libsodium_wrappers_1.crypto_secretbox_NONCEBYTES) + ciphertext = payload.slice(libsodium_wrappers_1.crypto_secretbox_NONCEBYTES) + return [ + 2, + Buffer.from( + (0, libsodium_wrappers_1.crypto_secretbox_open_easy)( + ciphertext, + nonce, + sharedKey + ) + ).toString('utf8') + ] + } + }) + }) + } + exports.decryptCryptoboxPayload = decryptCryptoboxPayload + function sealCryptobox(payload, publicKey) { + return __awaiter(this, void 0, void 0, function () { + var kxSelfPublicKey, encryptedMessage + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, libsodium_wrappers_1.ready] + case 1: + _a.sent() + kxSelfPublicKey = (0, + libsodium_wrappers_1.crypto_sign_ed25519_pk_to_curve25519)( + Buffer.from(publicKey) + ) + encryptedMessage = (0, libsodium_wrappers_1.crypto_box_seal)( + payload, + kxSelfPublicKey + ) + return [2, toHex(encryptedMessage)] + } + }) + }) + } + exports.sealCryptobox = sealCryptobox + function openCryptobox(encryptedPayload, publicKey, privateKey) { + return __awaiter(this, void 0, void 0, function () { + var kxSelfPrivateKey, kxSelfPublicKey, decryptedMessage + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, libsodium_wrappers_1.ready] + case 1: + _a.sent() + kxSelfPrivateKey = (0, + libsodium_wrappers_1.crypto_sign_ed25519_sk_to_curve25519)( + Buffer.from(privateKey) + ) + kxSelfPublicKey = (0, + libsodium_wrappers_1.crypto_sign_ed25519_pk_to_curve25519)( + Buffer.from(publicKey) + ) + decryptedMessage = (0, libsodium_wrappers_1.crypto_box_seal_open)( + encryptedPayload, + kxSelfPublicKey, + kxSelfPrivateKey + ) + return [2, Buffer.from(decryptedMessage).toString()] + } + }) + }) + } + exports.openCryptobox = openCryptobox + function getAddressFromPublicKey(publicKey) { + return __awaiter(this, void 0, void 0, function () { + var prefixes, + prefix, + plainPublicKey, + entries, + index, + _a, + key, + value, + decoded, + payload + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + return [4, libsodium_wrappers_1.ready] + case 1: + _b.sent() + prefixes = { + edpk: { length: 54, prefix: Buffer.from(new Uint8Array([6, 161, 159])) }, + sppk: { length: 55, prefix: Buffer.from(new Uint8Array([6, 161, 161])) }, + p2pk: { length: 55, prefix: Buffer.from(new Uint8Array([6, 161, 164])) } + } + if (publicKey.length === 64) { + prefix = prefixes.edpk.prefix + plainPublicKey = publicKey + } else { + entries = Object.entries(prefixes) + for (index = 0; index < entries.length; index++) { + ;(_a = entries[index]), (key = _a[0]), (value = _a[1]) + if (publicKey.startsWith(key) && publicKey.length === value.length) { + prefix = value.prefix + decoded = bs58check.decode(publicKey) + plainPublicKey = decoded + .slice(key.length, decoded.length) + .toString('hex') + break + } + } + } + if (!prefix || !plainPublicKey) { + throw new Error('invalid publicKey: ' + publicKey) + } + payload = (0, libsodium_wrappers_1.crypto_generichash)( + 20, + Buffer.from(plainPublicKey, 'hex') + ) + return [2, bs58check.encode(Buffer.concat([prefix, Buffer.from(payload)]))] + } + }) + }) + } + exports.getAddressFromPublicKey = getAddressFromPublicKey + function recipientString(recipientHash, relayServer) { + return '@' + recipientHash + ':' + relayServer + } + exports.recipientString = recipientString + }.call(this)) + }.call(this, require('buffer').Buffer)) + }, + { bs58check: 96, buffer: 93, 'libsodium-wrappers': 153 } + ], + 304: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.ExposedPromise = exports.ExposedPromiseStatus = void 0 + var ExposedPromiseStatus + ;(function (ExposedPromiseStatus) { + ExposedPromiseStatus['PENDING'] = 'pending' + ExposedPromiseStatus['RESOLVED'] = 'resolved' + ExposedPromiseStatus['REJECTED'] = 'rejected' + })( + (ExposedPromiseStatus = + exports.ExposedPromiseStatus || (exports.ExposedPromiseStatus = {})) + ) + var notInitialized = function () { + throw new Error('ExposedPromise not initialized yet.') + } + var ExposedPromise = (function () { + function ExposedPromise() { + var _this = this + this._resolve = notInitialized + this._reject = notInitialized + this._status = ExposedPromiseStatus.PENDING + this._promise = new Promise(function (innerResolve, innerReject) { + _this._resolve = function (value) { + if (_this.isSettled()) { + return + } + _this._promiseResult = value + innerResolve(value) + _this._status = ExposedPromiseStatus.RESOLVED + return + } + _this._reject = function (reason) { + if (_this.isSettled()) { + return + } + _this._promiseError = reason + innerReject(reason) + _this._status = ExposedPromiseStatus.REJECTED + return + } + }) + } + Object.defineProperty(ExposedPromise.prototype, 'promise', { + get: function () { + return this._promise + }, + enumerable: false, + configurable: true + }) + Object.defineProperty(ExposedPromise.prototype, 'resolve', { + get: function () { + return this._resolve + }, + enumerable: false, + configurable: true + }) + Object.defineProperty(ExposedPromise.prototype, 'reject', { + get: function () { + return this._reject + }, + enumerable: false, + configurable: true + }) + Object.defineProperty(ExposedPromise.prototype, 'status', { + get: function () { + return this._status + }, + enumerable: false, + configurable: true + }) + Object.defineProperty(ExposedPromise.prototype, 'promiseResult', { + get: function () { + return this._promiseResult + }, + enumerable: false, + configurable: true + }) + Object.defineProperty(ExposedPromise.prototype, 'promiseError', { + get: function () { + return this._promiseError + }, + enumerable: false, + configurable: true + }) + ExposedPromise.resolve = function (value) { + var promise = new ExposedPromise() + promise.resolve(value) + return promise + } + ExposedPromise.reject = function (reason) { + var promise = new ExposedPromise() + promise.reject(reason) + return promise + } + ExposedPromise.prototype.isPending = function () { + return this.status === ExposedPromiseStatus.PENDING + } + ExposedPromise.prototype.isResolved = function () { + return this.status === ExposedPromiseStatus.RESOLVED + } + ExposedPromise.prototype.isRejected = function () { + return this.status === ExposedPromiseStatus.REJECTED + } + ExposedPromise.prototype.isSettled = function () { + return this.isResolved() || this.isRejected() + } + return ExposedPromise + })() + exports.ExposedPromise = ExposedPromise + }, + {} + ], + 305: [ + function (require, module, exports) { + ;(function (Buffer) { + ;(function () { + 'use strict' + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.generateGUID = void 0 + var libsodium_wrappers_1 = require('libsodium-wrappers') + function generateGUID() { + return __awaiter(this, void 0, void 0, function () { + var buf + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, libsodium_wrappers_1.ready] + case 1: + _a.sent() + buf = (0, libsodium_wrappers_1.randombytes_buf)(16) + return [ + 2, + [ + buf.slice(0, 4), + buf.slice(4, 6), + buf.slice(6, 8), + buf.slice(8, 10), + buf.slice(10, 16) + ] + .map(function (subbuf) { + return Buffer.from(subbuf).toString('hex') + }) + .join('-') + ] + } + }) + }) + } + exports.generateGUID = generateGUID + }.call(this)) + }.call(this, require('buffer').Buffer)) + }, + { buffer: 93, 'libsodium-wrappers': 153 } + ], + 306: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.keys = void 0 + function keys(obj) { + return Object.keys(obj) + } + exports.keys = keys + }, + {} + ], + 307: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + var __assign = + (this && this.__assign) || + function () { + __assign = + Object.assign || + function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i] + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p] + } + return t + } + return __assign.apply(this, arguments) + } + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.WalletClient = void 0 + var beacon_core_1 = require('@airgap/beacon-core') + var beacon_utils_1 = require('@airgap/beacon-utils') + var beacon_types_1 = require('@airgap/beacon-types') + var WalletP2PTransport_1 = require('../transports/WalletP2PTransport') + var logger = new beacon_core_1.Logger('WalletClient') + var WalletClient = (function (_super) { + __extends(WalletClient, _super) + function WalletClient(config) { + var _this = + _super.call( + this, + __assign( + { + storage: + config && config.storage ? config.storage : new beacon_core_1.LocalStorage() + }, + config + ) + ) || this + _this._isConnected = new beacon_utils_1.ExposedPromise() + _this.pendingRequests = [] + _this.permissionManager = new beacon_core_1.PermissionManager(_this.storage) + _this.appMetadataManager = new beacon_core_1.AppMetadataManager(_this.storage) + return _this + } + Object.defineProperty(WalletClient.prototype, 'isConnected', { + get: function () { + return this._isConnected.promise + }, + enumerable: false, + configurable: true + }) + WalletClient.prototype.init = function () { + return __awaiter(this, void 0, void 0, function () { + var keyPair, p2pTransport + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.keyPair] + case 1: + keyPair = _a.sent() + p2pTransport = new WalletP2PTransport_1.WalletP2PTransport( + this.name, + keyPair, + this.storage, + this.matrixNodes, + this.iconUrl, + this.appUrl + ) + return [2, _super.prototype.init.call(this, p2pTransport)] + } + }) + }) + } + WalletClient.prototype.connect = function (newMessageCallback) { + return __awaiter(this, void 0, void 0, function () { + var _this = this + return __generator(this, function (_a) { + this.handleResponse = function (message, connectionContext) { + return __awaiter(_this, void 0, void 0, function () { + var transport, peers, peer + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!(message.type === beacon_types_1.BeaconMessageType.Disconnect)) + return [3, 5] + return [4, this.transport] + case 1: + transport = _a.sent() + return [4, transport.getPeers()] + case 2: + peers = _a.sent() + peer = peers.find(function (peerEl) { + return peerEl.senderId === message.senderId + }) + if (!peer) return [3, 4] + return [4, this.removePeer(peer)] + case 3: + _a.sent() + _a.label = 4 + case 4: + return [2] + case 5: + if ( + !!this.pendingRequests.some(function (request) { + return request[0].id === message.id + }) + ) + return [3, 9] + this.pendingRequests.push([message, connectionContext]) + if (!(message.version !== '1')) return [3, 7] + return [4, this.sendAcknowledgeResponse(message, connectionContext)] + case 6: + _a.sent() + _a.label = 7 + case 7: + return [ + 4, + beacon_core_1.IncomingRequestInterceptor.intercept({ + message: message, + connectionInfo: connectionContext, + appMetadataManager: this.appMetadataManager, + interceptorCallback: newMessageCallback + }) + ] + case 8: + _a.sent() + _a.label = 9 + case 9: + return [2] + } + }) + }) + } + return [2, this._connect()] + }) + }) + } + WalletClient.prototype._connect = function () { + return __awaiter(this, void 0, void 0, function () { + var transport + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.transport] + case 1: + transport = _a.sent() + if ( + !( + transport.connectionStatus === + beacon_types_1.TransportStatus.NOT_CONNECTED + ) + ) + return [3, 3] + return [4, transport.connect()] + case 2: + _a.sent() + transport + .addListener(function (message, connectionInfo) { + return __awaiter(_this, void 0, void 0, function () { + var deserializedMessage + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!(typeof message === 'string')) return [3, 2] + return [4, new beacon_core_1.Serializer().deserialize(message)] + case 1: + deserializedMessage = _a.sent() + this.handleResponse(deserializedMessage, connectionInfo) + _a.label = 2 + case 2: + return [2] + } + }) + }) + }) + .catch(function (error) { + return logger.log('_connect', error) + }) + this._isConnected.resolve(true) + return [3, 3] + case 3: + return [2] + } + }) + }) + } + WalletClient.prototype.respond = function (message) { + return __awaiter(this, void 0, void 0, function () { + var request, _a, _b, _c + var _d + var _this = this + return __generator(this, function (_e) { + switch (_e.label) { + case 0: + request = this.pendingRequests.find(function (pendingRequest) { + return pendingRequest[0].id === message.id + }) + if (!request) { + throw new Error('No matching request found!') + } + this.pendingRequests = this.pendingRequests.filter(function (pendingRequest) { + return pendingRequest[0].id !== message.id + }) + _b = (_a = beacon_core_1.OutgoingResponseInterceptor).intercept + _d = {} + _c = beacon_core_1.getSenderId + return [4, this.beaconId] + case 1: + return [4, _c.apply(void 0, [_e.sent()])] + case 2: + ;(_d.senderId = _e.sent()), (_d.request = request[0]), (_d.message = message) + return [4, this.getOwnAppMetadata()] + case 3: + return [ + 4, + _b.apply(_a, [ + ((_d.ownAppMetadata = _e.sent()), + (_d.permissionManager = this.permissionManager), + (_d.appMetadataManager = this.appMetadataManager), + (_d.interceptorCallback = function (response) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.respondToMessage(response, request[1])] + case 1: + _a.sent() + return [2] + } + }) + }) + }), + _d) + ]) + ] + case 4: + _e.sent() + return [2] + } + }) + }) + } + WalletClient.prototype.getAppMetadataList = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.appMetadataManager.getAppMetadataList()] + }) + }) + } + WalletClient.prototype.getAppMetadata = function (senderId) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.appMetadataManager.getAppMetadata(senderId)] + }) + }) + } + WalletClient.prototype.removeAppMetadata = function (senderId) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.appMetadataManager.removeAppMetadata(senderId)] + }) + }) + } + WalletClient.prototype.removeAllAppMetadata = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.appMetadataManager.removeAllAppMetadata()] + }) + }) + } + WalletClient.prototype.getPermissions = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.permissionManager.getPermissions()] + }) + }) + } + WalletClient.prototype.getPermission = function (accountIdentifier) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.permissionManager.getPermission(accountIdentifier)] + }) + }) + } + WalletClient.prototype.removePermission = function (accountIdentifier) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.permissionManager.removePermission(accountIdentifier)] + }) + }) + } + WalletClient.prototype.removeAllPermissions = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2, this.permissionManager.removeAllPermissions()] + }) + }) + } + WalletClient.prototype.addPeer = function (peer, sendPairingResponse) { + if (sendPairingResponse === void 0) { + sendPairingResponse = true + } + return __awaiter(this, void 0, void 0, function () { + var extendedPeer, _a + var _b + return __generator(this, function (_c) { + switch (_c.label) { + case 0: + _a = [__assign({}, peer)] + _b = {} + return [4, (0, beacon_core_1.getSenderId)(peer.publicKey)] + case 1: + extendedPeer = __assign.apply( + void 0, + _a.concat([((_b.senderId = _c.sent()), _b)]) + ) + return [4, this.transport] + case 2: + return [2, _c.sent().addPeer(extendedPeer, sendPairingResponse)] + } + }) + }) + } + WalletClient.prototype.removePeer = function (peer, sendDisconnectToPeer) { + if (sendDisconnectToPeer === void 0) { + sendDisconnectToPeer = false + } + return __awaiter(this, void 0, void 0, function () { + var removePeerResult + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.transport] + case 1: + removePeerResult = _a.sent().removePeer(peer) + return [4, this.removePermissionsForPeers([peer])] + case 2: + _a.sent() + if (!sendDisconnectToPeer) return [3, 4] + return [4, this.sendDisconnectToPeer(peer)] + case 3: + _a.sent() + _a.label = 4 + case 4: + return [2, removePeerResult] + } + }) + }) + } + WalletClient.prototype.removeAllPeers = function (sendDisconnectToPeers) { + if (sendDisconnectToPeers === void 0) { + sendDisconnectToPeers = false + } + return __awaiter(this, void 0, void 0, function () { + var peers, removePeerResult, disconnectPromises + var _this = this + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.transport] + case 1: + return [4, _a.sent().getPeers()] + case 2: + peers = _a.sent() + return [4, this.transport] + case 3: + removePeerResult = _a.sent().removeAllPeers() + return [4, this.removePermissionsForPeers(peers)] + case 4: + _a.sent() + if (!sendDisconnectToPeers) return [3, 6] + disconnectPromises = peers.map(function (peer) { + return _this.sendDisconnectToPeer(peer) + }) + return [4, Promise.all(disconnectPromises)] + case 5: + _a.sent() + _a.label = 6 + case 6: + return [2, removePeerResult] + } + }) + }) + } + WalletClient.prototype.removePermissionsForPeers = function (peersToRemove) { + return __awaiter(this, void 0, void 0, function () { + var permissions, peerIdsToRemove, permissionsToRemove, permissionIdentifiersToRemove + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.permissionManager.getPermissions()] + case 1: + permissions = _a.sent() + peerIdsToRemove = peersToRemove.map(function (peer) { + return peer.senderId + }) + permissionsToRemove = permissions.filter(function (permission) { + return peerIdsToRemove.includes(permission.appMetadata.senderId) + }) + permissionIdentifiersToRemove = permissionsToRemove.map(function ( + permissionInfo + ) { + return permissionInfo.accountIdentifier + }) + return [ + 4, + this.permissionManager.removePermissions(permissionIdentifiersToRemove) + ] + case 2: + _a.sent() + return [2] + } + }) + }) + } + WalletClient.prototype.sendAcknowledgeResponse = function (request, connectionContext) { + return __awaiter(this, void 0, void 0, function () { + var acknowledgeResponse, _a, _b, _c + var _d + var _this = this + return __generator(this, function (_e) { + switch (_e.label) { + case 0: + acknowledgeResponse = { + id: request.id, + type: beacon_types_1.BeaconMessageType.Acknowledge + } + _b = (_a = beacon_core_1.OutgoingResponseInterceptor).intercept + _d = {} + _c = beacon_core_1.getSenderId + return [4, this.beaconId] + case 1: + return [4, _c.apply(void 0, [_e.sent()])] + case 2: + ;(_d.senderId = _e.sent()), + (_d.request = request), + (_d.message = acknowledgeResponse) + return [4, this.getOwnAppMetadata()] + case 3: + return [ + 4, + _b.apply(_a, [ + ((_d.ownAppMetadata = _e.sent()), + (_d.permissionManager = this.permissionManager), + (_d.appMetadataManager = this.appMetadataManager), + (_d.interceptorCallback = function (response) { + return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, this.respondToMessage(response, connectionContext)] + case 1: + _a.sent() + return [2] + } + }) + }) + }), + _d) + ]) + ] + case 4: + _e.sent() + return [2] + } + }) + }) + } + WalletClient.prototype.respondToMessage = function (response, connectionContext) { + return __awaiter(this, void 0, void 0, function () { + var serializedMessage, peerInfos, peer + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, new beacon_core_1.Serializer().serialize(response)] + case 1: + serializedMessage = _a.sent() + if (!connectionContext) return [3, 5] + return [4, this.getPeers()] + case 2: + peerInfos = _a.sent() + peer = peerInfos.find(function (peerInfo) { + return peerInfo.publicKey === connectionContext.id + }) + return [4, this.transport] + case 3: + return [4, _a.sent().send(serializedMessage, peer)] + case 4: + _a.sent() + return [3, 8] + case 5: + return [4, this.transport] + case 6: + return [4, _a.sent().send(serializedMessage)] + case 7: + _a.sent() + _a.label = 8 + case 8: + return [2] + } + }) + }) + } + return WalletClient + })(beacon_core_1.Client) + exports.WalletClient = WalletClient + }, + { + '../transports/WalletP2PTransport': 309, + '@airgap/beacon-core': 229, + '@airgap/beacon-types': 287, + '@airgap/beacon-utils': 302 + } + ], + 308: [ + function (require, module, exports) { + 'use strict' + Object.defineProperty(exports, '__esModule', { value: true }) + exports.WalletClient = void 0 + var WalletClient_1 = require('./client/WalletClient') + Object.defineProperty(exports, 'WalletClient', { + enumerable: true, + get: function () { + return WalletClient_1.WalletClient + } + }) + }, + { './client/WalletClient': 307 } + ], + 309: [ + function (require, module, exports) { + 'use strict' + var __extends = + (this && this.__extends) || + (function () { + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] + } + return extendStatics(d, b) + } + return function (d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError( + 'Class extends value ' + String(b) + ' is not a constructor or null' + ) + extendStatics(d, b) + function __() { + this.constructor = d + } + d.prototype = + b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) + } + })() + var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value) + }) + } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)) + } catch (e) { + reject(e) + } + } + function rejected(value) { + try { + step(generator['throw'](value)) + } catch (e) { + reject(e) + } + } + function step(result) { + result.done + ? resolve(result.value) + : adopt(result.value).then(fulfilled, rejected) + } + step((generator = generator.apply(thisArg, _arguments || [])).next()) + }) + } + var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1] + return t[1] + }, + trys: [], + ops: [] + }, + f, + y, + t, + g + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === 'function' && + (g[Symbol.iterator] = function () { + return this + }), + g + ) + function verb(n) { + return function (v) { + return step([n, v]) + } + } + function step(op) { + if (f) throw new TypeError('Generator is already executing.') + while (_) + try { + if ( + ((f = 1), + y && + (t = + op[0] & 2 + ? y['return'] + : op[0] + ? y['throw'] || ((t = y['return']) && t.call(y), 0) + : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t + if (((y = 0), t)) op = [op[0] & 2, t.value] + switch (op[0]) { + case 0: + case 1: + t = op + break + case 4: + _.label++ + return { value: op[1], done: false } + case 5: + _.label++ + y = op[1] + op = [0] + continue + case 7: + op = _.ops.pop() + _.trys.pop() + continue + default: + if ( + !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && + (op[0] === 6 || op[0] === 2) + ) { + _ = 0 + continue + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1] + break + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1] + t = op + break + } + if (t && _.label < t[2]) { + _.label = t[2] + _.ops.push(op) + break + } + if (t[2]) _.ops.pop() + _.trys.pop() + continue + } + op = body.call(thisArg, _) + } catch (e) { + op = [6, e] + y = 0 + } finally { + f = t = 0 + } + if (op[0] & 5) throw op[1] + return { value: op[0] ? op[1] : void 0, done: true } + } + } + Object.defineProperty(exports, '__esModule', { value: true }) + exports.WalletP2PTransport = void 0 + var beacon_types_1 = require('@airgap/beacon-types') + var beacon_transport_matrix_1 = require('@airgap/beacon-transport-matrix') + var WalletP2PTransport = (function (_super) { + __extends(WalletP2PTransport, _super) + function WalletP2PTransport(name, keyPair, storage, matrixNodes, iconUrl, appUrl) { + return ( + _super.call( + this, + name, + keyPair, + storage, + matrixNodes, + beacon_types_1.StorageKey.TRANSPORT_P2P_PEERS_WALLET, + iconUrl, + appUrl + ) || this + ) + } + WalletP2PTransport.prototype.addPeer = function (newPeer, sendPairingResponse) { + if (sendPairingResponse === void 0) { + sendPairingResponse = true + } + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + return [4, _super.prototype.addPeer.call(this, newPeer)] + case 1: + _a.sent() + if (!sendPairingResponse) return [3, 3] + return [4, this.client.sendPairingResponse(newPeer)] + case 2: + _a.sent() + _a.label = 3 + case 3: + return [2] + } + }) + }) + } + return WalletP2PTransport + })(beacon_transport_matrix_1.P2PTransport) + exports.WalletP2PTransport = WalletP2PTransport + }, + { '@airgap/beacon-transport-matrix': 272, '@airgap/beacon-types': 287 } + ] + }, + {}, + [269] + )(269) +}) diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index 6e3431e4d..25eba337f 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,8 +1,8 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "0.0.1-beta.14", + "version": "2.4.0-beta.0", "description": "> TODO: description", - "author": "Andreas Gassmann ", + "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", "main": "dist/cjs/index.js", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.14", - "@airgap/beacon-utils": "^0.0.1-beta.14", + "@airgap/beacon-core": "^2.4.0-beta.0", + "@airgap/beacon-utils": "^2.4.0-beta.0", "axios": "0.24.0" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 88e7d10b5..6098ffd73 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,8 +1,8 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "0.0.1-beta.14", + "version": "2.4.0-beta.0", "description": "> TODO: description", - "author": "Andreas Gassmann ", + "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", "main": "dist/cjs/index.js", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.14", - "@airgap/beacon-types": "^0.0.1-beta.14", - "@airgap/beacon-utils": "^0.0.1-beta.14", + "@airgap/beacon-core": "^2.4.0-beta.0", + "@airgap/beacon-types": "^2.4.0-beta.0", + "@airgap/beacon-utils": "^2.4.0-beta.0", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index ed3432023..07ede7267 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,8 +1,8 @@ { "name": "@airgap/beacon-types", - "version": "0.0.1-beta.14", + "version": "2.4.0-beta.0", "description": "> TODO: description", - "author": "Andreas Gassmann ", + "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", "main": "dist/cjs/index.js", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index 3154368fc..5b046cff2 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,8 +1,8 @@ { "name": "@airgap/beacon-ui", - "version": "0.0.1-beta.14", + "version": "2.4.0-beta.0", "description": "> TODO: description", - "author": "Andreas Gassmann ", + "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", "main": "dist/cjs/index.js", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 26106fd5a..4dd15ae1b 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,8 +1,8 @@ { "name": "@airgap/beacon-utils", - "version": "0.0.1-beta.14", + "version": "2.4.0-beta.0", "description": "> TODO: description", - "author": "Andreas Gassmann ", + "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", "main": "dist/cjs/index.js", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index c20b64127..38f9b31ce 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,8 +1,8 @@ { "name": "@airgap/beacon-wallet", - "version": "0.0.1-beta.14", + "version": "2.4.0-beta.0", "description": "> TODO: description", - "author": "Andreas Gassmann ", + "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", "license": "ISC", "main": "dist/cjs/index.js", @@ -35,8 +35,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^0.0.1-beta.14", - "@airgap/beacon-transport-matrix": "^0.0.1-beta.14", - "@airgap/beacon-transport-postmessage": "^0.0.1-beta.14" + "@airgap/beacon-core": "^2.4.0-beta.0", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.0", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.0" } } From cd7135ac8fda95253d8c12cdfac55fad22df2fe8 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 15 Nov 2021 13:44:56 +0100 Subject: [PATCH 072/130] fix(sdk): move location of minified version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8df37aff8..1e64fbb50 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "prebuild": "ts-node --project tsconfig-cjs.json scripts/generate-wallet-list.ts", "build": "npm run check-version && lerna run tsc && npm run browserify:all", "browserify:all": "npm run browserify:sdk && npm run browserify:dapp && npm run browserify:wallet", - "browserify:sdk": "browserify ./packages/beacon-sdk/dist/cjs/index.js -s beacon | uglifyjs > ./packages/beacon-sdk/walletbeacon.min.js && cp ./packages/beacon-sdk/walletbeacon.min.js ./examples/walletbeacon.min.js", + "browserify:sdk": "browserify ./packages/beacon-sdk/dist/cjs/index.js -s beacon | uglifyjs > ./packages/beacon-sdk/dist/walletbeacon.min.js && cp ./packages/beacon-sdk/dist/walletbeacon.min.js ./examples/walletbeacon.min.js", "browserify:dapp": "browserify ./packages/beacon-dapp/dist/cjs/index.js -s beacon | uglifyjs > ./packages/beacon-dapp/dist/walletbeacon.dapp.min.js", "browserify:wallet": "browserify ./packages/beacon-wallet/dist/cjs/index.js -s beacon | uglifyjs > ./packages/beacon-wallet/dist/walletbeacon.wallet.min.js", "prettier": "prettier --write 'src/**/*' '**/src/**/*' 'docs/**/*.md' 'example-dapp.html' 'example-wallet.html'", From 094a04fb05d043e7cf184efc2c8df62b819aac3d Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 15 Nov 2021 14:22:47 +0100 Subject: [PATCH 073/130] chore(release): v2.4.0-beta.1 --- lerna.json | 2 +- .../beacon-blockchain-kusama/package.json | 2 +- packages/beacon-blockchain-tezos/package.json | 2 +- packages/beacon-core/package.json | 6 ++--- packages/beacon-core/src/constants.ts | 2 +- packages/beacon-dapp/package.json | 8 +++---- packages/beacon-sdk/package.json | 22 +++++++++---------- packages/beacon-transport-matrix/package.json | 6 ++--- .../beacon-transport-postmessage/package.json | 8 +++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 2 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 +++---- 13 files changed, 36 insertions(+), 36 deletions(-) diff --git a/lerna.json b/lerna.json index 313962706..e510cc653 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "2.4.0-beta.0" + "version": "2.4.0-beta.1" } diff --git a/packages/beacon-blockchain-kusama/package.json b/packages/beacon-blockchain-kusama/package.json index 752b5086a..cb0f0c8ad 100644 --- a/packages/beacon-blockchain-kusama/package.json +++ b/packages/beacon-blockchain-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-kusama", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-blockchain-tezos/package.json b/packages/beacon-blockchain-tezos/package.json index e5b537af4..6fcda7596 100644 --- a/packages/beacon-blockchain-tezos/package.json +++ b/packages/beacon-blockchain-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-tezos", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 6a7f7078a..2d977f90f 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^2.4.0-beta.0", - "@airgap/beacon-utils": "^2.4.0-beta.0", + "@airgap/beacon-types": "^2.4.0-beta.1", + "@airgap/beacon-utils": "^2.4.0-beta.1", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-core/src/constants.ts b/packages/beacon-core/src/constants.ts index 154d61a68..30f9ebe87 100644 --- a/packages/beacon-core/src/constants.ts +++ b/packages/beacon-core/src/constants.ts @@ -1,2 +1,2 @@ -export const SDK_VERSION: string = '2.4.0-beta.0' +export const SDK_VERSION: string = '2.4.0-beta.1' export const BEACON_VERSION: string = '2' diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 40cccc881..18ee838be 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,9 +35,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.0", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.0", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.0", + "@airgap/beacon-core": "^2.4.0-beta.1", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.1", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.1", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-sdk/package.json b/packages/beacon-sdk/package.json index 3bdcc6eee..66d285c09 100644 --- a/packages/beacon-sdk/package.json +++ b/packages/beacon-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-sdk", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,16 +35,16 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-blockchain-kusama": "^2.4.0-beta.0", - "@airgap/beacon-blockchain-tezos": "^2.4.0-beta.0", - "@airgap/beacon-core": "^2.4.0-beta.0", - "@airgap/beacon-dapp": "^2.4.0-beta.0", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.0", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.0", - "@airgap/beacon-types": "^2.4.0-beta.0", - "@airgap/beacon-ui": "^2.4.0-beta.0", - "@airgap/beacon-utils": "^2.4.0-beta.0", - "@airgap/beacon-wallet": "^2.4.0-beta.0", + "@airgap/beacon-blockchain-kusama": "^2.4.0-beta.1", + "@airgap/beacon-blockchain-tezos": "^2.4.0-beta.1", + "@airgap/beacon-core": "^2.4.0-beta.1", + "@airgap/beacon-dapp": "^2.4.0-beta.1", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.1", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.1", + "@airgap/beacon-types": "^2.4.0-beta.1", + "@airgap/beacon-ui": "^2.4.0-beta.1", + "@airgap/beacon-utils": "^2.4.0-beta.1", + "@airgap/beacon-wallet": "^2.4.0-beta.1", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index 25eba337f..dded5e03f 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.0", - "@airgap/beacon-utils": "^2.4.0-beta.0", + "@airgap/beacon-core": "^2.4.0-beta.1", + "@airgap/beacon-utils": "^2.4.0-beta.1", "axios": "0.24.0" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 6098ffd73..a05c34a47 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.0", - "@airgap/beacon-types": "^2.4.0-beta.0", - "@airgap/beacon-utils": "^2.4.0-beta.0", + "@airgap/beacon-core": "^2.4.0-beta.1", + "@airgap/beacon-types": "^2.4.0-beta.1", + "@airgap/beacon-utils": "^2.4.0-beta.1", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 07ede7267..2f68e2348 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index 5b046cff2..504996995 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 4dd15ae1b..889b80886 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 38f9b31ce..435baf24e 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,8 +35,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.0", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.0", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.0" + "@airgap/beacon-core": "^2.4.0-beta.1", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.1", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.1" } } From 458e5ce04eb15d615aa13ceb2dabafb72f580de4 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 15 Nov 2021 17:42:41 +0100 Subject: [PATCH 074/130] fix(test): imports --- package-lock.json | 72 +++++++++---------- .../__tests__/matrix-client.spec.ts | 4 +- .../__tests__/wallet-client.spec.ts | 4 +- 3 files changed, 40 insertions(+), 40 deletions(-) diff --git a/package-lock.json b/package-lock.json index f5cb5d8df..0aa6ef960 100755 --- a/package-lock.json +++ b/package-lock.json @@ -15556,21 +15556,21 @@ }, "packages/beacon-blockchain-kusama": { "name": "@airgap/beacon-blockchain-kusama", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "license": "ISC" }, "packages/beacon-blockchain-tezos": { "name": "@airgap/beacon-blockchain-tezos", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "license": "ISC" }, "packages/beacon-core": { "name": "@airgap/beacon-core", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^2.4.0-beta.0", - "@airgap/beacon-utils": "^2.4.0-beta.0", + "@airgap/beacon-types": "^2.4.0-beta.1", + "@airgap/beacon-utils": "^2.4.0-beta.1", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15578,40 +15578,40 @@ }, "packages/beacon-dapp": { "name": "@airgap/beacon-dapp", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.0", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.0", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.0", + "@airgap/beacon-core": "^2.4.0-beta.1", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.1", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.1", "qrcode-generator": "1.4.4" } }, "packages/beacon-transport-matrix": { "name": "@airgap/beacon-transport-matrix", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.0", - "@airgap/beacon-utils": "^2.4.0-beta.0", + "@airgap/beacon-core": "^2.4.0-beta.1", + "@airgap/beacon-utils": "^2.4.0-beta.1", "axios": "0.24.0" } }, "packages/beacon-transport-postmessage": { "name": "@airgap/beacon-transport-postmessage", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.0", - "@airgap/beacon-types": "^2.4.0-beta.0", - "@airgap/beacon-utils": "^2.4.0-beta.0", + "@airgap/beacon-core": "^2.4.0-beta.1", + "@airgap/beacon-types": "^2.4.0-beta.1", + "@airgap/beacon-utils": "^2.4.0-beta.1", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } }, "packages/beacon-types": { "name": "@airgap/beacon-types", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "license": "ISC", "dependencies": { "@types/chrome": "0.0.163" @@ -15619,12 +15619,12 @@ }, "packages/beacon-ui": { "name": "@airgap/beacon-ui", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "license": "ISC" }, "packages/beacon-utils": { "name": "@airgap/beacon-utils", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "license": "ISC", "dependencies": { "@types/libsodium-wrappers": "0.7.9", @@ -15634,12 +15634,12 @@ }, "packages/beacon-wallet": { "name": "@airgap/beacon-wallet", - "version": "2.4.0-beta.0", + "version": "2.4.0-beta.1", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.0", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.0", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.0" + "@airgap/beacon-core": "^2.4.0-beta.1", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.1", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.1" } } }, @@ -15653,8 +15653,8 @@ "@airgap/beacon-core": { "version": "file:packages/beacon-core", "requires": { - "@airgap/beacon-types": "^2.4.0-beta.0", - "@airgap/beacon-utils": "^2.4.0-beta.0", + "@airgap/beacon-types": "^2.4.0-beta.1", + "@airgap/beacon-utils": "^2.4.0-beta.1", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15663,26 +15663,26 @@ "@airgap/beacon-dapp": { "version": "file:packages/beacon-dapp", "requires": { - "@airgap/beacon-core": "^2.4.0-beta.0", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.0", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.0", + "@airgap/beacon-core": "^2.4.0-beta.1", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.1", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.1", "qrcode-generator": "1.4.4" } }, "@airgap/beacon-transport-matrix": { "version": "file:packages/beacon-transport-matrix", "requires": { - "@airgap/beacon-core": "^2.4.0-beta.0", - "@airgap/beacon-utils": "^2.4.0-beta.0", + "@airgap/beacon-core": "^2.4.0-beta.1", + "@airgap/beacon-utils": "^2.4.0-beta.1", "axios": "0.24.0" } }, "@airgap/beacon-transport-postmessage": { "version": "file:packages/beacon-transport-postmessage", "requires": { - "@airgap/beacon-core": "^2.4.0-beta.0", - "@airgap/beacon-types": "^2.4.0-beta.0", - "@airgap/beacon-utils": "^2.4.0-beta.0", + "@airgap/beacon-core": "^2.4.0-beta.1", + "@airgap/beacon-types": "^2.4.0-beta.1", + "@airgap/beacon-utils": "^2.4.0-beta.1", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } @@ -15707,9 +15707,9 @@ "@airgap/beacon-wallet": { "version": "file:packages/beacon-wallet", "requires": { - "@airgap/beacon-core": "^2.4.0-beta.0", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.0", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.0" + "@airgap/beacon-core": "^2.4.0-beta.1", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.1", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.1" } }, "@babel/code-frame": { diff --git a/packages/beacon-transport-matrix/__tests__/matrix-client.spec.ts b/packages/beacon-transport-matrix/__tests__/matrix-client.spec.ts index c352e95f8..8b3b00d7f 100644 --- a/packages/beacon-transport-matrix/__tests__/matrix-client.spec.ts +++ b/packages/beacon-transport-matrix/__tests__/matrix-client.spec.ts @@ -1,5 +1,5 @@ -import chai from 'chai' -import chaiAsPromised from 'chai-as-promised' +import * as chai from 'chai' +import * as chaiAsPromised from 'chai-as-promised' import 'mocha' import { LocalStorage } from '@airgap/beacon-core' import { MatrixClient } from '../src/matrix-client/MatrixClient' diff --git a/packages/beacon-wallet/__tests__/wallet-client.spec.ts b/packages/beacon-wallet/__tests__/wallet-client.spec.ts index 1e56bec17..d7440c41c 100644 --- a/packages/beacon-wallet/__tests__/wallet-client.spec.ts +++ b/packages/beacon-wallet/__tests__/wallet-client.spec.ts @@ -1,5 +1,5 @@ -import chai from 'chai' -import chaiAsPromised from 'chai-as-promised' +import * as chai from 'chai' +import * as chaiAsPromised from 'chai-as-promised' import 'mocha' import * as sinon from 'sinon' From af85d27f504896c12c6e3aae95db7c2e1492373f Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 15 Nov 2021 18:11:22 +0100 Subject: [PATCH 075/130] fix(): remove generated file --- packages/beacon-sdk/package.json | 3 +- packages/beacon-sdk/walletbeacon.min.js | 77921 ---------------------- 2 files changed, 1 insertion(+), 77923 deletions(-) delete mode 100644 packages/beacon-sdk/walletbeacon.min.js diff --git a/packages/beacon-sdk/package.json b/packages/beacon-sdk/package.json index 66d285c09..a1c191b0f 100644 --- a/packages/beacon-sdk/package.json +++ b/packages/beacon-sdk/package.json @@ -44,7 +44,6 @@ "@airgap/beacon-types": "^2.4.0-beta.1", "@airgap/beacon-ui": "^2.4.0-beta.1", "@airgap/beacon-utils": "^2.4.0-beta.1", - "@airgap/beacon-wallet": "^2.4.0-beta.1", - "qrcode-generator": "1.4.4" + "@airgap/beacon-wallet": "^2.4.0-beta.1" } } diff --git a/packages/beacon-sdk/walletbeacon.min.js b/packages/beacon-sdk/walletbeacon.min.js deleted file mode 100644 index f208d8eb2..000000000 --- a/packages/beacon-sdk/walletbeacon.min.js +++ /dev/null @@ -1,77921 +0,0 @@ -;(function (f) { - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = f() - } else if (typeof define === 'function' && define.amd) { - define([], f) - } else { - var g - if (typeof window !== 'undefined') { - g = window - } else if (typeof global !== 'undefined') { - g = global - } else if (typeof self !== 'undefined') { - g = self - } else { - g = this - } - g.beacon = f() - } -})(function () { - var define, module, exports - return (function () { - function r(e, n, t) { - function o(i, f) { - if (!n[i]) { - if (!e[i]) { - var c = 'function' == typeof require && require - if (!f && c) return c(i, !0) - if (u) return u(i, !0) - var a = new Error("Cannot find module '" + i + "'") - throw ((a.code = 'MODULE_NOT_FOUND'), a) - } - var p = (n[i] = { exports: {} }) - e[i][0].call( - p.exports, - function (r) { - var n = e[i][1][r] - return o(n || r) - }, - p, - p.exports, - r, - e, - n, - t - ) - } - return n[i].exports - } - for (var u = 'function' == typeof require && require, i = 0; i < t.length; i++) o(t[i]) - return o - } - return r - })()( - { - 1: [ - function (require, module, exports) { - var asn1 = exports - asn1.bignum = require('bn.js') - asn1.define = require('./asn1/api').define - asn1.base = require('./asn1/base') - asn1.constants = require('./asn1/constants') - asn1.decoders = require('./asn1/decoders') - asn1.encoders = require('./asn1/encoders') - }, - { - './asn1/api': 2, - './asn1/base': 4, - './asn1/constants': 8, - './asn1/decoders': 10, - './asn1/encoders': 13, - 'bn.js': 15 - } - ], - 2: [ - function (require, module, exports) { - var asn1 = require('../asn1') - var inherits = require('inherits') - var api = exports - api.define = function define(name, body) { - return new Entity(name, body) - } - function Entity(name, body) { - this.name = name - this.body = body - this.decoders = {} - this.encoders = {} - } - Entity.prototype._createNamed = function createNamed(base) { - var named - try { - named = require('vm').runInThisContext( - '(function ' + this.name + '(entity) {\n' + ' this._initNamed(entity);\n' + '})' - ) - } catch (e) { - named = function (entity) { - this._initNamed(entity) - } - } - inherits(named, base) - named.prototype._initNamed = function initnamed(entity) { - base.call(this, entity) - } - return new named(this) - } - Entity.prototype._getDecoder = function _getDecoder(enc) { - enc = enc || 'der' - if (!this.decoders.hasOwnProperty(enc)) - this.decoders[enc] = this._createNamed(asn1.decoders[enc]) - return this.decoders[enc] - } - Entity.prototype.decode = function decode(data, enc, options) { - return this._getDecoder(enc).decode(data, options) - } - Entity.prototype._getEncoder = function _getEncoder(enc) { - enc = enc || 'der' - if (!this.encoders.hasOwnProperty(enc)) - this.encoders[enc] = this._createNamed(asn1.encoders[enc]) - return this.encoders[enc] - } - Entity.prototype.encode = function encode(data, enc, reporter) { - return this._getEncoder(enc).encode(data, reporter) - } - }, - { '../asn1': 1, inherits: 151, vm: 210 } - ], - 3: [ - function (require, module, exports) { - var inherits = require('inherits') - var Reporter = require('../base').Reporter - var Buffer = require('buffer').Buffer - function DecoderBuffer(base, options) { - Reporter.call(this, options) - if (!Buffer.isBuffer(base)) { - this.error('Input not Buffer') - return - } - this.base = base - this.offset = 0 - this.length = base.length - } - inherits(DecoderBuffer, Reporter) - exports.DecoderBuffer = DecoderBuffer - DecoderBuffer.prototype.save = function save() { - return { offset: this.offset, reporter: Reporter.prototype.save.call(this) } - } - DecoderBuffer.prototype.restore = function restore(save) { - var res = new DecoderBuffer(this.base) - res.offset = save.offset - res.length = this.offset - this.offset = save.offset - Reporter.prototype.restore.call(this, save.reporter) - return res - } - DecoderBuffer.prototype.isEmpty = function isEmpty() { - return this.offset === this.length - } - DecoderBuffer.prototype.readUInt8 = function readUInt8(fail) { - if (this.offset + 1 <= this.length) return this.base.readUInt8(this.offset++, true) - else return this.error(fail || 'DecoderBuffer overrun') - } - DecoderBuffer.prototype.skip = function skip(bytes, fail) { - if (!(this.offset + bytes <= this.length)) - return this.error(fail || 'DecoderBuffer overrun') - var res = new DecoderBuffer(this.base) - res._reporterState = this._reporterState - res.offset = this.offset - res.length = this.offset + bytes - this.offset += bytes - return res - } - DecoderBuffer.prototype.raw = function raw(save) { - return this.base.slice(save ? save.offset : this.offset, this.length) - } - function EncoderBuffer(value, reporter) { - if (Array.isArray(value)) { - this.length = 0 - this.value = value.map(function (item) { - if (!(item instanceof EncoderBuffer)) item = new EncoderBuffer(item, reporter) - this.length += item.length - return item - }, this) - } else if (typeof value === 'number') { - if (!(0 <= value && value <= 255)) - return reporter.error('non-byte EncoderBuffer value') - this.value = value - this.length = 1 - } else if (typeof value === 'string') { - this.value = value - this.length = Buffer.byteLength(value) - } else if (Buffer.isBuffer(value)) { - this.value = value - this.length = value.length - } else { - return reporter.error('Unsupported type: ' + typeof value) - } - } - exports.EncoderBuffer = EncoderBuffer - EncoderBuffer.prototype.join = function join(out, offset) { - if (!out) out = new Buffer(this.length) - if (!offset) offset = 0 - if (this.length === 0) return out - if (Array.isArray(this.value)) { - this.value.forEach(function (item) { - item.join(out, offset) - offset += item.length - }) - } else { - if (typeof this.value === 'number') out[offset] = this.value - else if (typeof this.value === 'string') out.write(this.value, offset) - else if (Buffer.isBuffer(this.value)) this.value.copy(out, offset) - offset += this.length - } - return out - } - }, - { '../base': 4, buffer: 93, inherits: 151 } - ], - 4: [ - function (require, module, exports) { - var base = exports - base.Reporter = require('./reporter').Reporter - base.DecoderBuffer = require('./buffer').DecoderBuffer - base.EncoderBuffer = require('./buffer').EncoderBuffer - base.Node = require('./node') - }, - { './buffer': 3, './node': 5, './reporter': 6 } - ], - 5: [ - function (require, module, exports) { - var Reporter = require('../base').Reporter - var EncoderBuffer = require('../base').EncoderBuffer - var DecoderBuffer = require('../base').DecoderBuffer - var assert = require('minimalistic-assert') - var tags = [ - 'seq', - 'seqof', - 'set', - 'setof', - 'objid', - 'bool', - 'gentime', - 'utctime', - 'null_', - 'enum', - 'int', - 'objDesc', - 'bitstr', - 'bmpstr', - 'charstr', - 'genstr', - 'graphstr', - 'ia5str', - 'iso646str', - 'numstr', - 'octstr', - 'printstr', - 't61str', - 'unistr', - 'utf8str', - 'videostr' - ] - var methods = [ - 'key', - 'obj', - 'use', - 'optional', - 'explicit', - 'implicit', - 'def', - 'choice', - 'any', - 'contains' - ].concat(tags) - var overrided = [ - '_peekTag', - '_decodeTag', - '_use', - '_decodeStr', - '_decodeObjid', - '_decodeTime', - '_decodeNull', - '_decodeInt', - '_decodeBool', - '_decodeList', - '_encodeComposite', - '_encodeStr', - '_encodeObjid', - '_encodeTime', - '_encodeNull', - '_encodeInt', - '_encodeBool' - ] - function Node(enc, parent) { - var state = {} - this._baseState = state - state.enc = enc - state.parent = parent || null - state.children = null - state.tag = null - state.args = null - state.reverseArgs = null - state.choice = null - state.optional = false - state.any = false - state.obj = false - state.use = null - state.useDecoder = null - state.key = null - state['default'] = null - state.explicit = null - state.implicit = null - state.contains = null - if (!state.parent) { - state.children = [] - this._wrap() - } - } - module.exports = Node - var stateProps = [ - 'enc', - 'parent', - 'children', - 'tag', - 'args', - 'reverseArgs', - 'choice', - 'optional', - 'any', - 'obj', - 'use', - 'alteredUse', - 'key', - 'default', - 'explicit', - 'implicit', - 'contains' - ] - Node.prototype.clone = function clone() { - var state = this._baseState - var cstate = {} - stateProps.forEach(function (prop) { - cstate[prop] = state[prop] - }) - var res = new this.constructor(cstate.parent) - res._baseState = cstate - return res - } - Node.prototype._wrap = function wrap() { - var state = this._baseState - methods.forEach(function (method) { - this[method] = function _wrappedMethod() { - var clone = new this.constructor(this) - state.children.push(clone) - return clone[method].apply(clone, arguments) - } - }, this) - } - Node.prototype._init = function init(body) { - var state = this._baseState - assert(state.parent === null) - body.call(this) - state.children = state.children.filter(function (child) { - return child._baseState.parent === this - }, this) - assert.equal(state.children.length, 1, 'Root node can have only one child') - } - Node.prototype._useArgs = function useArgs(args) { - var state = this._baseState - var children = args.filter(function (arg) { - return arg instanceof this.constructor - }, this) - args = args.filter(function (arg) { - return !(arg instanceof this.constructor) - }, this) - if (children.length !== 0) { - assert(state.children === null) - state.children = children - children.forEach(function (child) { - child._baseState.parent = this - }, this) - } - if (args.length !== 0) { - assert(state.args === null) - state.args = args - state.reverseArgs = args.map(function (arg) { - if (typeof arg !== 'object' || arg.constructor !== Object) return arg - var res = {} - Object.keys(arg).forEach(function (key) { - if (key == (key | 0)) key |= 0 - var value = arg[key] - res[value] = key - }) - return res - }) - } - } - overrided.forEach(function (method) { - Node.prototype[method] = function _overrided() { - var state = this._baseState - throw new Error(method + ' not implemented for encoding: ' + state.enc) - } - }) - tags.forEach(function (tag) { - Node.prototype[tag] = function _tagMethod() { - var state = this._baseState - var args = Array.prototype.slice.call(arguments) - assert(state.tag === null) - state.tag = tag - this._useArgs(args) - return this - } - }) - Node.prototype.use = function use(item) { - assert(item) - var state = this._baseState - assert(state.use === null) - state.use = item - return this - } - Node.prototype.optional = function optional() { - var state = this._baseState - state.optional = true - return this - } - Node.prototype.def = function def(val) { - var state = this._baseState - assert(state['default'] === null) - state['default'] = val - state.optional = true - return this - } - Node.prototype.explicit = function explicit(num) { - var state = this._baseState - assert(state.explicit === null && state.implicit === null) - state.explicit = num - return this - } - Node.prototype.implicit = function implicit(num) { - var state = this._baseState - assert(state.explicit === null && state.implicit === null) - state.implicit = num - return this - } - Node.prototype.obj = function obj() { - var state = this._baseState - var args = Array.prototype.slice.call(arguments) - state.obj = true - if (args.length !== 0) this._useArgs(args) - return this - } - Node.prototype.key = function key(newKey) { - var state = this._baseState - assert(state.key === null) - state.key = newKey - return this - } - Node.prototype.any = function any() { - var state = this._baseState - state.any = true - return this - } - Node.prototype.choice = function choice(obj) { - var state = this._baseState - assert(state.choice === null) - state.choice = obj - this._useArgs( - Object.keys(obj).map(function (key) { - return obj[key] - }) - ) - return this - } - Node.prototype.contains = function contains(item) { - var state = this._baseState - assert(state.use === null) - state.contains = item - return this - } - Node.prototype._decode = function decode(input, options) { - var state = this._baseState - if (state.parent === null) - return input.wrapResult(state.children[0]._decode(input, options)) - var result = state['default'] - var present = true - var prevKey = null - if (state.key !== null) prevKey = input.enterKey(state.key) - if (state.optional) { - var tag = null - if (state.explicit !== null) tag = state.explicit - else if (state.implicit !== null) tag = state.implicit - else if (state.tag !== null) tag = state.tag - if (tag === null && !state.any) { - var save = input.save() - try { - if (state.choice === null) this._decodeGeneric(state.tag, input, options) - else this._decodeChoice(input, options) - present = true - } catch (e) { - present = false - } - input.restore(save) - } else { - present = this._peekTag(input, tag, state.any) - if (input.isError(present)) return present - } - } - var prevObj - if (state.obj && present) prevObj = input.enterObject() - if (present) { - if (state.explicit !== null) { - var explicit = this._decodeTag(input, state.explicit) - if (input.isError(explicit)) return explicit - input = explicit - } - var start = input.offset - if (state.use === null && state.choice === null) { - if (state.any) var save = input.save() - var body = this._decodeTag( - input, - state.implicit !== null ? state.implicit : state.tag, - state.any - ) - if (input.isError(body)) return body - if (state.any) result = input.raw(save) - else input = body - } - if (options && options.track && state.tag !== null) - options.track(input.path(), start, input.length, 'tagged') - if (options && options.track && state.tag !== null) - options.track(input.path(), input.offset, input.length, 'content') - if (state.any) result = result - else if (state.choice === null) - result = this._decodeGeneric(state.tag, input, options) - else result = this._decodeChoice(input, options) - if (input.isError(result)) return result - if (!state.any && state.choice === null && state.children !== null) { - state.children.forEach(function decodeChildren(child) { - child._decode(input, options) - }) - } - if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) { - var data = new DecoderBuffer(result) - result = this._getUse(state.contains, input._reporterState.obj)._decode( - data, - options - ) - } - } - if (state.obj && present) result = input.leaveObject(prevObj) - if (state.key !== null && (result !== null || present === true)) - input.leaveKey(prevKey, state.key, result) - else if (prevKey !== null) input.exitKey(prevKey) - return result - } - Node.prototype._decodeGeneric = function decodeGeneric(tag, input, options) { - var state = this._baseState - if (tag === 'seq' || tag === 'set') return null - if (tag === 'seqof' || tag === 'setof') - return this._decodeList(input, tag, state.args[0], options) - else if (/str$/.test(tag)) return this._decodeStr(input, tag, options) - else if (tag === 'objid' && state.args) - return this._decodeObjid(input, state.args[0], state.args[1], options) - else if (tag === 'objid') return this._decodeObjid(input, null, null, options) - else if (tag === 'gentime' || tag === 'utctime') - return this._decodeTime(input, tag, options) - else if (tag === 'null_') return this._decodeNull(input, options) - else if (tag === 'bool') return this._decodeBool(input, options) - else if (tag === 'objDesc') return this._decodeStr(input, tag, options) - else if (tag === 'int' || tag === 'enum') - return this._decodeInt(input, state.args && state.args[0], options) - if (state.use !== null) { - return this._getUse(state.use, input._reporterState.obj)._decode(input, options) - } else { - return input.error('unknown tag: ' + tag) - } - } - Node.prototype._getUse = function _getUse(entity, obj) { - var state = this._baseState - state.useDecoder = this._use(entity, obj) - assert(state.useDecoder._baseState.parent === null) - state.useDecoder = state.useDecoder._baseState.children[0] - if (state.implicit !== state.useDecoder._baseState.implicit) { - state.useDecoder = state.useDecoder.clone() - state.useDecoder._baseState.implicit = state.implicit - } - return state.useDecoder - } - Node.prototype._decodeChoice = function decodeChoice(input, options) { - var state = this._baseState - var result = null - var match = false - Object.keys(state.choice).some(function (key) { - var save = input.save() - var node = state.choice[key] - try { - var value = node._decode(input, options) - if (input.isError(value)) return false - result = { type: key, value: value } - match = true - } catch (e) { - input.restore(save) - return false - } - return true - }, this) - if (!match) return input.error('Choice not matched') - return result - } - Node.prototype._createEncoderBuffer = function createEncoderBuffer(data) { - return new EncoderBuffer(data, this.reporter) - } - Node.prototype._encode = function encode(data, reporter, parent) { - var state = this._baseState - if (state['default'] !== null && state['default'] === data) return - var result = this._encodeValue(data, reporter, parent) - if (result === undefined) return - if (this._skipDefault(result, reporter, parent)) return - return result - } - Node.prototype._encodeValue = function encode(data, reporter, parent) { - var state = this._baseState - if (state.parent === null) - return state.children[0]._encode(data, reporter || new Reporter()) - var result = null - this.reporter = reporter - if (state.optional && data === undefined) { - if (state['default'] !== null) data = state['default'] - else return - } - var content = null - var primitive = false - if (state.any) { - result = this._createEncoderBuffer(data) - } else if (state.choice) { - result = this._encodeChoice(data, reporter) - } else if (state.contains) { - content = this._getUse(state.contains, parent)._encode(data, reporter) - primitive = true - } else if (state.children) { - content = state.children - .map(function (child) { - if (child._baseState.tag === 'null_') return child._encode(null, reporter, data) - if (child._baseState.key === null) - return reporter.error('Child should have a key') - var prevKey = reporter.enterKey(child._baseState.key) - if (typeof data !== 'object') - return reporter.error('Child expected, but input is not object') - var res = child._encode(data[child._baseState.key], reporter, data) - reporter.leaveKey(prevKey) - return res - }, this) - .filter(function (child) { - return child - }) - content = this._createEncoderBuffer(content) - } else { - if (state.tag === 'seqof' || state.tag === 'setof') { - if (!(state.args && state.args.length === 1)) - return reporter.error('Too many args for : ' + state.tag) - if (!Array.isArray(data)) - return reporter.error('seqof/setof, but data is not Array') - var child = this.clone() - child._baseState.implicit = null - content = this._createEncoderBuffer( - data.map(function (item) { - var state = this._baseState - return this._getUse(state.args[0], data)._encode(item, reporter) - }, child) - ) - } else if (state.use !== null) { - result = this._getUse(state.use, parent)._encode(data, reporter) - } else { - content = this._encodePrimitive(state.tag, data) - primitive = true - } - } - var result - if (!state.any && state.choice === null) { - var tag = state.implicit !== null ? state.implicit : state.tag - var cls = state.implicit === null ? 'universal' : 'context' - if (tag === null) { - if (state.use === null) reporter.error('Tag could be omitted only for .use()') - } else { - if (state.use === null) result = this._encodeComposite(tag, primitive, cls, content) - } - } - if (state.explicit !== null) - result = this._encodeComposite(state.explicit, false, 'context', result) - return result - } - Node.prototype._encodeChoice = function encodeChoice(data, reporter) { - var state = this._baseState - var node = state.choice[data.type] - if (!node) { - assert( - false, - data.type + ' not found in ' + JSON.stringify(Object.keys(state.choice)) - ) - } - return node._encode(data.value, reporter) - } - Node.prototype._encodePrimitive = function encodePrimitive(tag, data) { - var state = this._baseState - if (/str$/.test(tag)) return this._encodeStr(data, tag) - else if (tag === 'objid' && state.args) - return this._encodeObjid(data, state.reverseArgs[0], state.args[1]) - else if (tag === 'objid') return this._encodeObjid(data, null, null) - else if (tag === 'gentime' || tag === 'utctime') return this._encodeTime(data, tag) - else if (tag === 'null_') return this._encodeNull() - else if (tag === 'int' || tag === 'enum') - return this._encodeInt(data, state.args && state.reverseArgs[0]) - else if (tag === 'bool') return this._encodeBool(data) - else if (tag === 'objDesc') return this._encodeStr(data, tag) - else throw new Error('Unsupported tag: ' + tag) - } - Node.prototype._isNumstr = function isNumstr(str) { - return /^[0-9 ]*$/.test(str) - } - Node.prototype._isPrintstr = function isPrintstr(str) { - return /^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(str) - } - }, - { '../base': 4, 'minimalistic-assert': 158 } - ], - 6: [ - function (require, module, exports) { - var inherits = require('inherits') - function Reporter(options) { - this._reporterState = { obj: null, path: [], options: options || {}, errors: [] } - } - exports.Reporter = Reporter - Reporter.prototype.isError = function isError(obj) { - return obj instanceof ReporterError - } - Reporter.prototype.save = function save() { - var state = this._reporterState - return { obj: state.obj, pathLen: state.path.length } - } - Reporter.prototype.restore = function restore(data) { - var state = this._reporterState - state.obj = data.obj - state.path = state.path.slice(0, data.pathLen) - } - Reporter.prototype.enterKey = function enterKey(key) { - return this._reporterState.path.push(key) - } - Reporter.prototype.exitKey = function exitKey(index) { - var state = this._reporterState - state.path = state.path.slice(0, index - 1) - } - Reporter.prototype.leaveKey = function leaveKey(index, key, value) { - var state = this._reporterState - this.exitKey(index) - if (state.obj !== null) state.obj[key] = value - } - Reporter.prototype.path = function path() { - return this._reporterState.path.join('/') - } - Reporter.prototype.enterObject = function enterObject() { - var state = this._reporterState - var prev = state.obj - state.obj = {} - return prev - } - Reporter.prototype.leaveObject = function leaveObject(prev) { - var state = this._reporterState - var now = state.obj - state.obj = prev - return now - } - Reporter.prototype.error = function error(msg) { - var err - var state = this._reporterState - var inherited = msg instanceof ReporterError - if (inherited) { - err = msg - } else { - err = new ReporterError( - state.path - .map(function (elem) { - return '[' + JSON.stringify(elem) + ']' - }) - .join(''), - msg.message || msg, - msg.stack - ) - } - if (!state.options.partial) throw err - if (!inherited) state.errors.push(err) - return err - } - Reporter.prototype.wrapResult = function wrapResult(result) { - var state = this._reporterState - if (!state.options.partial) return result - return { result: this.isError(result) ? null : result, errors: state.errors } - } - function ReporterError(path, msg) { - this.path = path - this.rethrow(msg) - } - inherits(ReporterError, Error) - ReporterError.prototype.rethrow = function rethrow(msg) { - this.message = msg + ' at: ' + (this.path || '(shallow)') - if (Error.captureStackTrace) Error.captureStackTrace(this, ReporterError) - if (!this.stack) { - try { - throw new Error(this.message) - } catch (e) { - this.stack = e.stack - } - } - return this - } - }, - { inherits: 151 } - ], - 7: [ - function (require, module, exports) { - var constants = require('../constants') - exports.tagClass = { 0: 'universal', 1: 'application', 2: 'context', 3: 'private' } - exports.tagClassByName = constants._reverse(exports.tagClass) - exports.tag = { - 0: 'end', - 1: 'bool', - 2: 'int', - 3: 'bitstr', - 4: 'octstr', - 5: 'null_', - 6: 'objid', - 7: 'objDesc', - 8: 'external', - 9: 'real', - 10: 'enum', - 11: 'embed', - 12: 'utf8str', - 13: 'relativeOid', - 16: 'seq', - 17: 'set', - 18: 'numstr', - 19: 'printstr', - 20: 't61str', - 21: 'videostr', - 22: 'ia5str', - 23: 'utctime', - 24: 'gentime', - 25: 'graphstr', - 26: 'iso646str', - 27: 'genstr', - 28: 'unistr', - 29: 'charstr', - 30: 'bmpstr' - } - exports.tagByName = constants._reverse(exports.tag) - }, - { '../constants': 8 } - ], - 8: [ - function (require, module, exports) { - var constants = exports - constants._reverse = function reverse(map) { - var res = {} - Object.keys(map).forEach(function (key) { - if ((key | 0) == key) key = key | 0 - var value = map[key] - res[value] = key - }) - return res - } - constants.der = require('./der') - }, - { './der': 7 } - ], - 9: [ - function (require, module, exports) { - var inherits = require('inherits') - var asn1 = require('../../asn1') - var base = asn1.base - var bignum = asn1.bignum - var der = asn1.constants.der - function DERDecoder(entity) { - this.enc = 'der' - this.name = entity.name - this.entity = entity - this.tree = new DERNode() - this.tree._init(entity.body) - } - module.exports = DERDecoder - DERDecoder.prototype.decode = function decode(data, options) { - if (!(data instanceof base.DecoderBuffer)) data = new base.DecoderBuffer(data, options) - return this.tree._decode(data, options) - } - function DERNode(parent) { - base.Node.call(this, 'der', parent) - } - inherits(DERNode, base.Node) - DERNode.prototype._peekTag = function peekTag(buffer, tag, any) { - if (buffer.isEmpty()) return false - var state = buffer.save() - var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: "' + tag + '"') - if (buffer.isError(decodedTag)) return decodedTag - buffer.restore(state) - return ( - decodedTag.tag === tag || - decodedTag.tagStr === tag || - decodedTag.tagStr + 'of' === tag || - any - ) - } - DERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) { - var decodedTag = derDecodeTag(buffer, 'Failed to decode tag of "' + tag + '"') - if (buffer.isError(decodedTag)) return decodedTag - var len = derDecodeLen( - buffer, - decodedTag.primitive, - 'Failed to get length of "' + tag + '"' - ) - if (buffer.isError(len)) return len - if ( - !any && - decodedTag.tag !== tag && - decodedTag.tagStr !== tag && - decodedTag.tagStr + 'of' !== tag - ) { - return buffer.error('Failed to match tag: "' + tag + '"') - } - if (decodedTag.primitive || len !== null) - return buffer.skip(len, 'Failed to match body of: "' + tag + '"') - var state = buffer.save() - var res = this._skipUntilEnd( - buffer, - 'Failed to skip indefinite length body: "' + this.tag + '"' - ) - if (buffer.isError(res)) return res - len = buffer.offset - state.offset - buffer.restore(state) - return buffer.skip(len, 'Failed to match body of: "' + tag + '"') - } - DERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) { - while (true) { - var tag = derDecodeTag(buffer, fail) - if (buffer.isError(tag)) return tag - var len = derDecodeLen(buffer, tag.primitive, fail) - if (buffer.isError(len)) return len - var res - if (tag.primitive || len !== null) res = buffer.skip(len) - else res = this._skipUntilEnd(buffer, fail) - if (buffer.isError(res)) return res - if (tag.tagStr === 'end') break - } - } - DERNode.prototype._decodeList = function decodeList(buffer, tag, decoder, options) { - var result = [] - while (!buffer.isEmpty()) { - var possibleEnd = this._peekTag(buffer, 'end') - if (buffer.isError(possibleEnd)) return possibleEnd - var res = decoder.decode(buffer, 'der', options) - if (buffer.isError(res) && possibleEnd) break - result.push(res) - } - return result - } - DERNode.prototype._decodeStr = function decodeStr(buffer, tag) { - if (tag === 'bitstr') { - var unused = buffer.readUInt8() - if (buffer.isError(unused)) return unused - return { unused: unused, data: buffer.raw() } - } else if (tag === 'bmpstr') { - var raw = buffer.raw() - if (raw.length % 2 === 1) - return buffer.error('Decoding of string type: bmpstr length mismatch') - var str = '' - for (var i = 0; i < raw.length / 2; i++) { - str += String.fromCharCode(raw.readUInt16BE(i * 2)) - } - return str - } else if (tag === 'numstr') { - var numstr = buffer.raw().toString('ascii') - if (!this._isNumstr(numstr)) { - return buffer.error('Decoding of string type: ' + 'numstr unsupported characters') - } - return numstr - } else if (tag === 'octstr') { - return buffer.raw() - } else if (tag === 'objDesc') { - return buffer.raw() - } else if (tag === 'printstr') { - var printstr = buffer.raw().toString('ascii') - if (!this._isPrintstr(printstr)) { - return buffer.error('Decoding of string type: ' + 'printstr unsupported characters') - } - return printstr - } else if (/str$/.test(tag)) { - return buffer.raw().toString() - } else { - return buffer.error('Decoding of string type: ' + tag + ' unsupported') - } - } - DERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) { - var result - var identifiers = [] - var ident = 0 - while (!buffer.isEmpty()) { - var subident = buffer.readUInt8() - ident <<= 7 - ident |= subident & 127 - if ((subident & 128) === 0) { - identifiers.push(ident) - ident = 0 - } - } - if (subident & 128) identifiers.push(ident) - var first = (identifiers[0] / 40) | 0 - var second = identifiers[0] % 40 - if (relative) result = identifiers - else result = [first, second].concat(identifiers.slice(1)) - if (values) { - var tmp = values[result.join(' ')] - if (tmp === undefined) tmp = values[result.join('.')] - if (tmp !== undefined) result = tmp - } - return result - } - DERNode.prototype._decodeTime = function decodeTime(buffer, tag) { - var str = buffer.raw().toString() - if (tag === 'gentime') { - var year = str.slice(0, 4) | 0 - var mon = str.slice(4, 6) | 0 - var day = str.slice(6, 8) | 0 - var hour = str.slice(8, 10) | 0 - var min = str.slice(10, 12) | 0 - var sec = str.slice(12, 14) | 0 - } else if (tag === 'utctime') { - var year = str.slice(0, 2) | 0 - var mon = str.slice(2, 4) | 0 - var day = str.slice(4, 6) | 0 - var hour = str.slice(6, 8) | 0 - var min = str.slice(8, 10) | 0 - var sec = str.slice(10, 12) | 0 - if (year < 70) year = 2e3 + year - else year = 1900 + year - } else { - return buffer.error('Decoding ' + tag + ' time is not supported yet') - } - return Date.UTC(year, mon - 1, day, hour, min, sec, 0) - } - DERNode.prototype._decodeNull = function decodeNull(buffer) { - return null - } - DERNode.prototype._decodeBool = function decodeBool(buffer) { - var res = buffer.readUInt8() - if (buffer.isError(res)) return res - else return res !== 0 - } - DERNode.prototype._decodeInt = function decodeInt(buffer, values) { - var raw = buffer.raw() - var res = new bignum(raw) - if (values) res = values[res.toString(10)] || res - return res - } - DERNode.prototype._use = function use(entity, obj) { - if (typeof entity === 'function') entity = entity(obj) - return entity._getDecoder('der').tree - } - function derDecodeTag(buf, fail) { - var tag = buf.readUInt8(fail) - if (buf.isError(tag)) return tag - var cls = der.tagClass[tag >> 6] - var primitive = (tag & 32) === 0 - if ((tag & 31) === 31) { - var oct = tag - tag = 0 - while ((oct & 128) === 128) { - oct = buf.readUInt8(fail) - if (buf.isError(oct)) return oct - tag <<= 7 - tag |= oct & 127 - } - } else { - tag &= 31 - } - var tagStr = der.tag[tag] - return { cls: cls, primitive: primitive, tag: tag, tagStr: tagStr } - } - function derDecodeLen(buf, primitive, fail) { - var len = buf.readUInt8(fail) - if (buf.isError(len)) return len - if (!primitive && len === 128) return null - if ((len & 128) === 0) { - return len - } - var num = len & 127 - if (num > 4) return buf.error('length octect is too long') - len = 0 - for (var i = 0; i < num; i++) { - len <<= 8 - var j = buf.readUInt8(fail) - if (buf.isError(j)) return j - len |= j - } - return len - } - }, - { '../../asn1': 1, inherits: 151 } - ], - 10: [ - function (require, module, exports) { - var decoders = exports - decoders.der = require('./der') - decoders.pem = require('./pem') - }, - { './der': 9, './pem': 11 } - ], - 11: [ - function (require, module, exports) { - var inherits = require('inherits') - var Buffer = require('buffer').Buffer - var DERDecoder = require('./der') - function PEMDecoder(entity) { - DERDecoder.call(this, entity) - this.enc = 'pem' - } - inherits(PEMDecoder, DERDecoder) - module.exports = PEMDecoder - PEMDecoder.prototype.decode = function decode(data, options) { - var lines = data.toString().split(/[\r\n]+/g) - var label = options.label.toUpperCase() - var re = /^-----(BEGIN|END) ([^-]+)-----$/ - var start = -1 - var end = -1 - for (var i = 0; i < lines.length; i++) { - var match = lines[i].match(re) - if (match === null) continue - if (match[2] !== label) continue - if (start === -1) { - if (match[1] !== 'BEGIN') break - start = i - } else { - if (match[1] !== 'END') break - end = i - break - } - } - if (start === -1 || end === -1) throw new Error('PEM section not found for: ' + label) - var base64 = lines.slice(start + 1, end).join('') - base64.replace(/[^a-z0-9\+\/=]+/gi, '') - var input = new Buffer(base64, 'base64') - return DERDecoder.prototype.decode.call(this, input, options) - } - }, - { './der': 9, buffer: 93, inherits: 151 } - ], - 12: [ - function (require, module, exports) { - var inherits = require('inherits') - var Buffer = require('buffer').Buffer - var asn1 = require('../../asn1') - var base = asn1.base - var der = asn1.constants.der - function DEREncoder(entity) { - this.enc = 'der' - this.name = entity.name - this.entity = entity - this.tree = new DERNode() - this.tree._init(entity.body) - } - module.exports = DEREncoder - DEREncoder.prototype.encode = function encode(data, reporter) { - return this.tree._encode(data, reporter).join() - } - function DERNode(parent) { - base.Node.call(this, 'der', parent) - } - inherits(DERNode, base.Node) - DERNode.prototype._encodeComposite = function encodeComposite( - tag, - primitive, - cls, - content - ) { - var encodedTag = encodeTag(tag, primitive, cls, this.reporter) - if (content.length < 128) { - var header = new Buffer(2) - header[0] = encodedTag - header[1] = content.length - return this._createEncoderBuffer([header, content]) - } - var lenOctets = 1 - for (var i = content.length; i >= 256; i >>= 8) lenOctets++ - var header = new Buffer(1 + 1 + lenOctets) - header[0] = encodedTag - header[1] = 128 | lenOctets - for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8) header[i] = j & 255 - return this._createEncoderBuffer([header, content]) - } - DERNode.prototype._encodeStr = function encodeStr(str, tag) { - if (tag === 'bitstr') { - return this._createEncoderBuffer([str.unused | 0, str.data]) - } else if (tag === 'bmpstr') { - var buf = new Buffer(str.length * 2) - for (var i = 0; i < str.length; i++) { - buf.writeUInt16BE(str.charCodeAt(i), i * 2) - } - return this._createEncoderBuffer(buf) - } else if (tag === 'numstr') { - if (!this._isNumstr(str)) { - return this.reporter.error( - 'Encoding of string type: numstr supports ' + 'only digits and space' - ) - } - return this._createEncoderBuffer(str) - } else if (tag === 'printstr') { - if (!this._isPrintstr(str)) { - return this.reporter.error( - 'Encoding of string type: printstr supports ' + - 'only latin upper and lower case letters, ' + - 'digits, space, apostrophe, left and rigth ' + - 'parenthesis, plus sign, comma, hyphen, ' + - 'dot, slash, colon, equal sign, ' + - 'question mark' - ) - } - return this._createEncoderBuffer(str) - } else if (/str$/.test(tag)) { - return this._createEncoderBuffer(str) - } else if (tag === 'objDesc') { - return this._createEncoderBuffer(str) - } else { - return this.reporter.error('Encoding of string type: ' + tag + ' unsupported') - } - } - DERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) { - if (typeof id === 'string') { - if (!values) return this.reporter.error('string objid given, but no values map found') - if (!values.hasOwnProperty(id)) - return this.reporter.error('objid not found in values map') - id = values[id].split(/[\s\.]+/g) - for (var i = 0; i < id.length; i++) id[i] |= 0 - } else if (Array.isArray(id)) { - id = id.slice() - for (var i = 0; i < id.length; i++) id[i] |= 0 - } - if (!Array.isArray(id)) { - return this.reporter.error( - 'objid() should be either array or string, ' + 'got: ' + JSON.stringify(id) - ) - } - if (!relative) { - if (id[1] >= 40) return this.reporter.error('Second objid identifier OOB') - id.splice(0, 2, id[0] * 40 + id[1]) - } - var size = 0 - for (var i = 0; i < id.length; i++) { - var ident = id[i] - for (size++; ident >= 128; ident >>= 7) size++ - } - var objid = new Buffer(size) - var offset = objid.length - 1 - for (var i = id.length - 1; i >= 0; i--) { - var ident = id[i] - objid[offset--] = ident & 127 - while ((ident >>= 7) > 0) objid[offset--] = 128 | (ident & 127) - } - return this._createEncoderBuffer(objid) - } - function two(num) { - if (num < 10) return '0' + num - else return num - } - DERNode.prototype._encodeTime = function encodeTime(time, tag) { - var str - var date = new Date(time) - if (tag === 'gentime') { - str = [ - two(date.getFullYear()), - two(date.getUTCMonth() + 1), - two(date.getUTCDate()), - two(date.getUTCHours()), - two(date.getUTCMinutes()), - two(date.getUTCSeconds()), - 'Z' - ].join('') - } else if (tag === 'utctime') { - str = [ - two(date.getFullYear() % 100), - two(date.getUTCMonth() + 1), - two(date.getUTCDate()), - two(date.getUTCHours()), - two(date.getUTCMinutes()), - two(date.getUTCSeconds()), - 'Z' - ].join('') - } else { - this.reporter.error('Encoding ' + tag + ' time is not supported yet') - } - return this._encodeStr(str, 'octstr') - } - DERNode.prototype._encodeNull = function encodeNull() { - return this._createEncoderBuffer('') - } - DERNode.prototype._encodeInt = function encodeInt(num, values) { - if (typeof num === 'string') { - if (!values) return this.reporter.error('String int or enum given, but no values map') - if (!values.hasOwnProperty(num)) { - return this.reporter.error("Values map doesn't contain: " + JSON.stringify(num)) - } - num = values[num] - } - if (typeof num !== 'number' && !Buffer.isBuffer(num)) { - var numArray = num.toArray() - if (!num.sign && numArray[0] & 128) { - numArray.unshift(0) - } - num = new Buffer(numArray) - } - if (Buffer.isBuffer(num)) { - var size = num.length - if (num.length === 0) size++ - var out = new Buffer(size) - num.copy(out) - if (num.length === 0) out[0] = 0 - return this._createEncoderBuffer(out) - } - if (num < 128) return this._createEncoderBuffer(num) - if (num < 256) return this._createEncoderBuffer([0, num]) - var size = 1 - for (var i = num; i >= 256; i >>= 8) size++ - var out = new Array(size) - for (var i = out.length - 1; i >= 0; i--) { - out[i] = num & 255 - num >>= 8 - } - if (out[0] & 128) { - out.unshift(0) - } - return this._createEncoderBuffer(new Buffer(out)) - } - DERNode.prototype._encodeBool = function encodeBool(value) { - return this._createEncoderBuffer(value ? 255 : 0) - } - DERNode.prototype._use = function use(entity, obj) { - if (typeof entity === 'function') entity = entity(obj) - return entity._getEncoder('der').tree - } - DERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) { - var state = this._baseState - var i - if (state['default'] === null) return false - var data = dataBuffer.join() - if (state.defaultBuffer === undefined) - state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join() - if (data.length !== state.defaultBuffer.length) return false - for (i = 0; i < data.length; i++) if (data[i] !== state.defaultBuffer[i]) return false - return true - } - function encodeTag(tag, primitive, cls, reporter) { - var res - if (tag === 'seqof') tag = 'seq' - else if (tag === 'setof') tag = 'set' - if (der.tagByName.hasOwnProperty(tag)) res = der.tagByName[tag] - else if (typeof tag === 'number' && (tag | 0) === tag) res = tag - else return reporter.error('Unknown tag: ' + tag) - if (res >= 31) return reporter.error('Multi-octet tag encoding unsupported') - if (!primitive) res |= 32 - res |= der.tagClassByName[cls || 'universal'] << 6 - return res - } - }, - { '../../asn1': 1, buffer: 93, inherits: 151 } - ], - 13: [ - function (require, module, exports) { - var encoders = exports - encoders.der = require('./der') - encoders.pem = require('./pem') - }, - { './der': 12, './pem': 14 } - ], - 14: [ - function (require, module, exports) { - var inherits = require('inherits') - var DEREncoder = require('./der') - function PEMEncoder(entity) { - DEREncoder.call(this, entity) - this.enc = 'pem' - } - inherits(PEMEncoder, DEREncoder) - module.exports = PEMEncoder - PEMEncoder.prototype.encode = function encode(data, options) { - var buf = DEREncoder.prototype.encode.call(this, data) - var p = buf.toString('base64') - var out = ['-----BEGIN ' + options.label + '-----'] - for (var i = 0; i < p.length; i += 64) out.push(p.slice(i, i + 64)) - out.push('-----END ' + options.label + '-----') - return out.join('\n') - } - }, - { './der': 12, inherits: 151 } - ], - 15: [ - function (require, module, exports) { - ;(function (module, exports) { - 'use strict' - function assert(val, msg) { - if (!val) throw new Error(msg || 'Assertion failed') - } - function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } - function BN(number, base, endian) { - if (BN.isBN(number)) { - return number - } - this.negative = 0 - this.words = null - this.length = 0 - this.red = null - if (number !== null) { - if (base === 'le' || base === 'be') { - endian = base - base = 10 - } - this._init(number || 0, base || 10, endian || 'be') - } - } - if (typeof module === 'object') { - module.exports = BN - } else { - exports.BN = BN - } - BN.BN = BN - BN.wordSize = 26 - var Buffer - try { - Buffer = require('buffer').Buffer - } catch (e) {} - BN.isBN = function isBN(num) { - if (num instanceof BN) { - return true - } - return ( - num !== null && - typeof num === 'object' && - num.constructor.wordSize === BN.wordSize && - Array.isArray(num.words) - ) - } - BN.max = function max(left, right) { - if (left.cmp(right) > 0) return left - return right - } - BN.min = function min(left, right) { - if (left.cmp(right) < 0) return left - return right - } - BN.prototype._init = function init(number, base, endian) { - if (typeof number === 'number') { - return this._initNumber(number, base, endian) - } - if (typeof number === 'object') { - return this._initArray(number, base, endian) - } - if (base === 'hex') { - base = 16 - } - assert(base === (base | 0) && base >= 2 && base <= 36) - number = number.toString().replace(/\s+/g, '') - var start = 0 - if (number[0] === '-') { - start++ - } - if (base === 16) { - this._parseHex(number, start) - } else { - this._parseBase(number, base, start) - } - if (number[0] === '-') { - this.negative = 1 - } - this.strip() - if (endian !== 'le') return - this._initArray(this.toArray(), base, endian) - } - BN.prototype._initNumber = function _initNumber(number, base, endian) { - if (number < 0) { - this.negative = 1 - number = -number - } - if (number < 67108864) { - this.words = [number & 67108863] - this.length = 1 - } else if (number < 4503599627370496) { - this.words = [number & 67108863, (number / 67108864) & 67108863] - this.length = 2 - } else { - assert(number < 9007199254740992) - this.words = [number & 67108863, (number / 67108864) & 67108863, 1] - this.length = 3 - } - if (endian !== 'le') return - this._initArray(this.toArray(), base, endian) - } - BN.prototype._initArray = function _initArray(number, base, endian) { - assert(typeof number.length === 'number') - if (number.length <= 0) { - this.words = [0] - this.length = 1 - return this - } - this.length = Math.ceil(number.length / 3) - this.words = new Array(this.length) - for (var i = 0; i < this.length; i++) { - this.words[i] = 0 - } - var j, w - var off = 0 - if (endian === 'be') { - for (i = number.length - 1, j = 0; i >= 0; i -= 3) { - w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16) - this.words[j] |= (w << off) & 67108863 - this.words[j + 1] = (w >>> (26 - off)) & 67108863 - off += 24 - if (off >= 26) { - off -= 26 - j++ - } - } - } else if (endian === 'le') { - for (i = 0, j = 0; i < number.length; i += 3) { - w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16) - this.words[j] |= (w << off) & 67108863 - this.words[j + 1] = (w >>> (26 - off)) & 67108863 - off += 24 - if (off >= 26) { - off -= 26 - j++ - } - } - } - return this.strip() - } - function parseHex(str, start, end) { - var r = 0 - var len = Math.min(str.length, end) - for (var i = start; i < len; i++) { - var c = str.charCodeAt(i) - 48 - r <<= 4 - if (c >= 49 && c <= 54) { - r |= c - 49 + 10 - } else if (c >= 17 && c <= 22) { - r |= c - 17 + 10 - } else { - r |= c & 15 - } - } - return r - } - BN.prototype._parseHex = function _parseHex(number, start) { - this.length = Math.ceil((number.length - start) / 6) - this.words = new Array(this.length) - for (var i = 0; i < this.length; i++) { - this.words[i] = 0 - } - var j, w - var off = 0 - for (i = number.length - 6, j = 0; i >= start; i -= 6) { - w = parseHex(number, i, i + 6) - this.words[j] |= (w << off) & 67108863 - this.words[j + 1] |= (w >>> (26 - off)) & 4194303 - off += 24 - if (off >= 26) { - off -= 26 - j++ - } - } - if (i + 6 !== start) { - w = parseHex(number, start, i + 6) - this.words[j] |= (w << off) & 67108863 - this.words[j + 1] |= (w >>> (26 - off)) & 4194303 - } - this.strip() - } - function parseBase(str, start, end, mul) { - var r = 0 - var len = Math.min(str.length, end) - for (var i = start; i < len; i++) { - var c = str.charCodeAt(i) - 48 - r *= mul - if (c >= 49) { - r += c - 49 + 10 - } else if (c >= 17) { - r += c - 17 + 10 - } else { - r += c - } - } - return r - } - BN.prototype._parseBase = function _parseBase(number, base, start) { - this.words = [0] - this.length = 1 - for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { - limbLen++ - } - limbLen-- - limbPow = (limbPow / base) | 0 - var total = number.length - start - var mod = total % limbLen - var end = Math.min(total, total - mod) + start - var word = 0 - for (var i = start; i < end; i += limbLen) { - word = parseBase(number, i, i + limbLen, base) - this.imuln(limbPow) - if (this.words[0] + word < 67108864) { - this.words[0] += word - } else { - this._iaddn(word) - } - } - if (mod !== 0) { - var pow = 1 - word = parseBase(number, i, number.length, base) - for (i = 0; i < mod; i++) { - pow *= base - } - this.imuln(pow) - if (this.words[0] + word < 67108864) { - this.words[0] += word - } else { - this._iaddn(word) - } - } - } - BN.prototype.copy = function copy(dest) { - dest.words = new Array(this.length) - for (var i = 0; i < this.length; i++) { - dest.words[i] = this.words[i] - } - dest.length = this.length - dest.negative = this.negative - dest.red = this.red - } - BN.prototype.clone = function clone() { - var r = new BN(null) - this.copy(r) - return r - } - BN.prototype._expand = function _expand(size) { - while (this.length < size) { - this.words[this.length++] = 0 - } - return this - } - BN.prototype.strip = function strip() { - while (this.length > 1 && this.words[this.length - 1] === 0) { - this.length-- - } - return this._normSign() - } - BN.prototype._normSign = function _normSign() { - if (this.length === 1 && this.words[0] === 0) { - this.negative = 0 - } - return this - } - BN.prototype.inspect = function inspect() { - return (this.red ? '' - } - var zeros = [ - '', - '0', - '00', - '000', - '0000', - '00000', - '000000', - '0000000', - '00000000', - '000000000', - '0000000000', - '00000000000', - '000000000000', - '0000000000000', - '00000000000000', - '000000000000000', - '0000000000000000', - '00000000000000000', - '000000000000000000', - '0000000000000000000', - '00000000000000000000', - '000000000000000000000', - '0000000000000000000000', - '00000000000000000000000', - '000000000000000000000000', - '0000000000000000000000000' - ] - var groupSizes = [ - 0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 - ] - var groupBases = [ - 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, - 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, - 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, - 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176 - ] - BN.prototype.toString = function toString(base, padding) { - base = base || 10 - padding = padding | 0 || 1 - var out - if (base === 16 || base === 'hex') { - out = '' - var off = 0 - var carry = 0 - for (var i = 0; i < this.length; i++) { - var w = this.words[i] - var word = (((w << off) | carry) & 16777215).toString(16) - carry = (w >>> (24 - off)) & 16777215 - if (carry !== 0 || i !== this.length - 1) { - out = zeros[6 - word.length] + word + out - } else { - out = word + out - } - off += 2 - if (off >= 26) { - off -= 26 - i-- - } - } - if (carry !== 0) { - out = carry.toString(16) + out - } - while (out.length % padding !== 0) { - out = '0' + out - } - if (this.negative !== 0) { - out = '-' + out - } - return out - } - if (base === (base | 0) && base >= 2 && base <= 36) { - var groupSize = groupSizes[base] - var groupBase = groupBases[base] - out = '' - var c = this.clone() - c.negative = 0 - while (!c.isZero()) { - var r = c.modn(groupBase).toString(base) - c = c.idivn(groupBase) - if (!c.isZero()) { - out = zeros[groupSize - r.length] + r + out - } else { - out = r + out - } - } - if (this.isZero()) { - out = '0' + out - } - while (out.length % padding !== 0) { - out = '0' + out - } - if (this.negative !== 0) { - out = '-' + out - } - return out - } - assert(false, 'Base should be between 2 and 36') - } - BN.prototype.toNumber = function toNumber() { - var ret = this.words[0] - if (this.length === 2) { - ret += this.words[1] * 67108864 - } else if (this.length === 3 && this.words[2] === 1) { - ret += 4503599627370496 + this.words[1] * 67108864 - } else if (this.length > 2) { - assert(false, 'Number can only safely store up to 53 bits') - } - return this.negative !== 0 ? -ret : ret - } - BN.prototype.toJSON = function toJSON() { - return this.toString(16) - } - BN.prototype.toBuffer = function toBuffer(endian, length) { - assert(typeof Buffer !== 'undefined') - return this.toArrayLike(Buffer, endian, length) - } - BN.prototype.toArray = function toArray(endian, length) { - return this.toArrayLike(Array, endian, length) - } - BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { - var byteLength = this.byteLength() - var reqLength = length || Math.max(1, byteLength) - assert(byteLength <= reqLength, 'byte array longer than desired length') - assert(reqLength > 0, 'Requested array length <= 0') - this.strip() - var littleEndian = endian === 'le' - var res = new ArrayType(reqLength) - var b, i - var q = this.clone() - if (!littleEndian) { - for (i = 0; i < reqLength - byteLength; i++) { - res[i] = 0 - } - for (i = 0; !q.isZero(); i++) { - b = q.andln(255) - q.iushrn(8) - res[reqLength - i - 1] = b - } - } else { - for (i = 0; !q.isZero(); i++) { - b = q.andln(255) - q.iushrn(8) - res[i] = b - } - for (; i < reqLength; i++) { - res[i] = 0 - } - } - return res - } - if (Math.clz32) { - BN.prototype._countBits = function _countBits(w) { - return 32 - Math.clz32(w) - } - } else { - BN.prototype._countBits = function _countBits(w) { - var t = w - var r = 0 - if (t >= 4096) { - r += 13 - t >>>= 13 - } - if (t >= 64) { - r += 7 - t >>>= 7 - } - if (t >= 8) { - r += 4 - t >>>= 4 - } - if (t >= 2) { - r += 2 - t >>>= 2 - } - return r + t - } - } - BN.prototype._zeroBits = function _zeroBits(w) { - if (w === 0) return 26 - var t = w - var r = 0 - if ((t & 8191) === 0) { - r += 13 - t >>>= 13 - } - if ((t & 127) === 0) { - r += 7 - t >>>= 7 - } - if ((t & 15) === 0) { - r += 4 - t >>>= 4 - } - if ((t & 3) === 0) { - r += 2 - t >>>= 2 - } - if ((t & 1) === 0) { - r++ - } - return r - } - BN.prototype.bitLength = function bitLength() { - var w = this.words[this.length - 1] - var hi = this._countBits(w) - return (this.length - 1) * 26 + hi - } - function toBitArray(num) { - var w = new Array(num.bitLength()) - for (var bit = 0; bit < w.length; bit++) { - var off = (bit / 26) | 0 - var wbit = bit % 26 - w[bit] = (num.words[off] & (1 << wbit)) >>> wbit - } - return w - } - BN.prototype.zeroBits = function zeroBits() { - if (this.isZero()) return 0 - var r = 0 - for (var i = 0; i < this.length; i++) { - var b = this._zeroBits(this.words[i]) - r += b - if (b !== 26) break - } - return r - } - BN.prototype.byteLength = function byteLength() { - return Math.ceil(this.bitLength() / 8) - } - BN.prototype.toTwos = function toTwos(width) { - if (this.negative !== 0) { - return this.abs().inotn(width).iaddn(1) - } - return this.clone() - } - BN.prototype.fromTwos = function fromTwos(width) { - if (this.testn(width - 1)) { - return this.notn(width).iaddn(1).ineg() - } - return this.clone() - } - BN.prototype.isNeg = function isNeg() { - return this.negative !== 0 - } - BN.prototype.neg = function neg() { - return this.clone().ineg() - } - BN.prototype.ineg = function ineg() { - if (!this.isZero()) { - this.negative ^= 1 - } - return this - } - BN.prototype.iuor = function iuor(num) { - while (this.length < num.length) { - this.words[this.length++] = 0 - } - for (var i = 0; i < num.length; i++) { - this.words[i] = this.words[i] | num.words[i] - } - return this.strip() - } - BN.prototype.ior = function ior(num) { - assert((this.negative | num.negative) === 0) - return this.iuor(num) - } - BN.prototype.or = function or(num) { - if (this.length > num.length) return this.clone().ior(num) - return num.clone().ior(this) - } - BN.prototype.uor = function uor(num) { - if (this.length > num.length) return this.clone().iuor(num) - return num.clone().iuor(this) - } - BN.prototype.iuand = function iuand(num) { - var b - if (this.length > num.length) { - b = num - } else { - b = this - } - for (var i = 0; i < b.length; i++) { - this.words[i] = this.words[i] & num.words[i] - } - this.length = b.length - return this.strip() - } - BN.prototype.iand = function iand(num) { - assert((this.negative | num.negative) === 0) - return this.iuand(num) - } - BN.prototype.and = function and(num) { - if (this.length > num.length) return this.clone().iand(num) - return num.clone().iand(this) - } - BN.prototype.uand = function uand(num) { - if (this.length > num.length) return this.clone().iuand(num) - return num.clone().iuand(this) - } - BN.prototype.iuxor = function iuxor(num) { - var a - var b - if (this.length > num.length) { - a = this - b = num - } else { - a = num - b = this - } - for (var i = 0; i < b.length; i++) { - this.words[i] = a.words[i] ^ b.words[i] - } - if (this !== a) { - for (; i < a.length; i++) { - this.words[i] = a.words[i] - } - } - this.length = a.length - return this.strip() - } - BN.prototype.ixor = function ixor(num) { - assert((this.negative | num.negative) === 0) - return this.iuxor(num) - } - BN.prototype.xor = function xor(num) { - if (this.length > num.length) return this.clone().ixor(num) - return num.clone().ixor(this) - } - BN.prototype.uxor = function uxor(num) { - if (this.length > num.length) return this.clone().iuxor(num) - return num.clone().iuxor(this) - } - BN.prototype.inotn = function inotn(width) { - assert(typeof width === 'number' && width >= 0) - var bytesNeeded = Math.ceil(width / 26) | 0 - var bitsLeft = width % 26 - this._expand(bytesNeeded) - if (bitsLeft > 0) { - bytesNeeded-- - } - for (var i = 0; i < bytesNeeded; i++) { - this.words[i] = ~this.words[i] & 67108863 - } - if (bitsLeft > 0) { - this.words[i] = ~this.words[i] & (67108863 >> (26 - bitsLeft)) - } - return this.strip() - } - BN.prototype.notn = function notn(width) { - return this.clone().inotn(width) - } - BN.prototype.setn = function setn(bit, val) { - assert(typeof bit === 'number' && bit >= 0) - var off = (bit / 26) | 0 - var wbit = bit % 26 - this._expand(off + 1) - if (val) { - this.words[off] = this.words[off] | (1 << wbit) - } else { - this.words[off] = this.words[off] & ~(1 << wbit) - } - return this.strip() - } - BN.prototype.iadd = function iadd(num) { - var r - if (this.negative !== 0 && num.negative === 0) { - this.negative = 0 - r = this.isub(num) - this.negative ^= 1 - return this._normSign() - } else if (this.negative === 0 && num.negative !== 0) { - num.negative = 0 - r = this.isub(num) - num.negative = 1 - return r._normSign() - } - var a, b - if (this.length > num.length) { - a = this - b = num - } else { - a = num - b = this - } - var carry = 0 - for (var i = 0; i < b.length; i++) { - r = (a.words[i] | 0) + (b.words[i] | 0) + carry - this.words[i] = r & 67108863 - carry = r >>> 26 - } - for (; carry !== 0 && i < a.length; i++) { - r = (a.words[i] | 0) + carry - this.words[i] = r & 67108863 - carry = r >>> 26 - } - this.length = a.length - if (carry !== 0) { - this.words[this.length] = carry - this.length++ - } else if (a !== this) { - for (; i < a.length; i++) { - this.words[i] = a.words[i] - } - } - return this - } - BN.prototype.add = function add(num) { - var res - if (num.negative !== 0 && this.negative === 0) { - num.negative = 0 - res = this.sub(num) - num.negative ^= 1 - return res - } else if (num.negative === 0 && this.negative !== 0) { - this.negative = 0 - res = num.sub(this) - this.negative = 1 - return res - } - if (this.length > num.length) return this.clone().iadd(num) - return num.clone().iadd(this) - } - BN.prototype.isub = function isub(num) { - if (num.negative !== 0) { - num.negative = 0 - var r = this.iadd(num) - num.negative = 1 - return r._normSign() - } else if (this.negative !== 0) { - this.negative = 0 - this.iadd(num) - this.negative = 1 - return this._normSign() - } - var cmp = this.cmp(num) - if (cmp === 0) { - this.negative = 0 - this.length = 1 - this.words[0] = 0 - return this - } - var a, b - if (cmp > 0) { - a = this - b = num - } else { - a = num - b = this - } - var carry = 0 - for (var i = 0; i < b.length; i++) { - r = (a.words[i] | 0) - (b.words[i] | 0) + carry - carry = r >> 26 - this.words[i] = r & 67108863 - } - for (; carry !== 0 && i < a.length; i++) { - r = (a.words[i] | 0) + carry - carry = r >> 26 - this.words[i] = r & 67108863 - } - if (carry === 0 && i < a.length && a !== this) { - for (; i < a.length; i++) { - this.words[i] = a.words[i] - } - } - this.length = Math.max(this.length, i) - if (a !== this) { - this.negative = 1 - } - return this.strip() - } - BN.prototype.sub = function sub(num) { - return this.clone().isub(num) - } - function smallMulTo(self, num, out) { - out.negative = num.negative ^ self.negative - var len = (self.length + num.length) | 0 - out.length = len - len = (len - 1) | 0 - var a = self.words[0] | 0 - var b = num.words[0] | 0 - var r = a * b - var lo = r & 67108863 - var carry = (r / 67108864) | 0 - out.words[0] = lo - for (var k = 1; k < len; k++) { - var ncarry = carry >>> 26 - var rword = carry & 67108863 - var maxJ = Math.min(k, num.length - 1) - for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { - var i = (k - j) | 0 - a = self.words[i] | 0 - b = num.words[j] | 0 - r = a * b + rword - ncarry += (r / 67108864) | 0 - rword = r & 67108863 - } - out.words[k] = rword | 0 - carry = ncarry | 0 - } - if (carry !== 0) { - out.words[k] = carry | 0 - } else { - out.length-- - } - return out.strip() - } - var comb10MulTo = function comb10MulTo(self, num, out) { - var a = self.words - var b = num.words - var o = out.words - var c = 0 - var lo - var mid - var hi - var a0 = a[0] | 0 - var al0 = a0 & 8191 - var ah0 = a0 >>> 13 - var a1 = a[1] | 0 - var al1 = a1 & 8191 - var ah1 = a1 >>> 13 - var a2 = a[2] | 0 - var al2 = a2 & 8191 - var ah2 = a2 >>> 13 - var a3 = a[3] | 0 - var al3 = a3 & 8191 - var ah3 = a3 >>> 13 - var a4 = a[4] | 0 - var al4 = a4 & 8191 - var ah4 = a4 >>> 13 - var a5 = a[5] | 0 - var al5 = a5 & 8191 - var ah5 = a5 >>> 13 - var a6 = a[6] | 0 - var al6 = a6 & 8191 - var ah6 = a6 >>> 13 - var a7 = a[7] | 0 - var al7 = a7 & 8191 - var ah7 = a7 >>> 13 - var a8 = a[8] | 0 - var al8 = a8 & 8191 - var ah8 = a8 >>> 13 - var a9 = a[9] | 0 - var al9 = a9 & 8191 - var ah9 = a9 >>> 13 - var b0 = b[0] | 0 - var bl0 = b0 & 8191 - var bh0 = b0 >>> 13 - var b1 = b[1] | 0 - var bl1 = b1 & 8191 - var bh1 = b1 >>> 13 - var b2 = b[2] | 0 - var bl2 = b2 & 8191 - var bh2 = b2 >>> 13 - var b3 = b[3] | 0 - var bl3 = b3 & 8191 - var bh3 = b3 >>> 13 - var b4 = b[4] | 0 - var bl4 = b4 & 8191 - var bh4 = b4 >>> 13 - var b5 = b[5] | 0 - var bl5 = b5 & 8191 - var bh5 = b5 >>> 13 - var b6 = b[6] | 0 - var bl6 = b6 & 8191 - var bh6 = b6 >>> 13 - var b7 = b[7] | 0 - var bl7 = b7 & 8191 - var bh7 = b7 >>> 13 - var b8 = b[8] | 0 - var bl8 = b8 & 8191 - var bh8 = b8 >>> 13 - var b9 = b[9] | 0 - var bl9 = b9 & 8191 - var bh9 = b9 >>> 13 - out.negative = self.negative ^ num.negative - out.length = 19 - lo = Math.imul(al0, bl0) - mid = Math.imul(al0, bh0) - mid = (mid + Math.imul(ah0, bl0)) | 0 - hi = Math.imul(ah0, bh0) - var w0 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0 - w0 &= 67108863 - lo = Math.imul(al1, bl0) - mid = Math.imul(al1, bh0) - mid = (mid + Math.imul(ah1, bl0)) | 0 - hi = Math.imul(ah1, bh0) - lo = (lo + Math.imul(al0, bl1)) | 0 - mid = (mid + Math.imul(al0, bh1)) | 0 - mid = (mid + Math.imul(ah0, bl1)) | 0 - hi = (hi + Math.imul(ah0, bh1)) | 0 - var w1 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0 - w1 &= 67108863 - lo = Math.imul(al2, bl0) - mid = Math.imul(al2, bh0) - mid = (mid + Math.imul(ah2, bl0)) | 0 - hi = Math.imul(ah2, bh0) - lo = (lo + Math.imul(al1, bl1)) | 0 - mid = (mid + Math.imul(al1, bh1)) | 0 - mid = (mid + Math.imul(ah1, bl1)) | 0 - hi = (hi + Math.imul(ah1, bh1)) | 0 - lo = (lo + Math.imul(al0, bl2)) | 0 - mid = (mid + Math.imul(al0, bh2)) | 0 - mid = (mid + Math.imul(ah0, bl2)) | 0 - hi = (hi + Math.imul(ah0, bh2)) | 0 - var w2 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0 - w2 &= 67108863 - lo = Math.imul(al3, bl0) - mid = Math.imul(al3, bh0) - mid = (mid + Math.imul(ah3, bl0)) | 0 - hi = Math.imul(ah3, bh0) - lo = (lo + Math.imul(al2, bl1)) | 0 - mid = (mid + Math.imul(al2, bh1)) | 0 - mid = (mid + Math.imul(ah2, bl1)) | 0 - hi = (hi + Math.imul(ah2, bh1)) | 0 - lo = (lo + Math.imul(al1, bl2)) | 0 - mid = (mid + Math.imul(al1, bh2)) | 0 - mid = (mid + Math.imul(ah1, bl2)) | 0 - hi = (hi + Math.imul(ah1, bh2)) | 0 - lo = (lo + Math.imul(al0, bl3)) | 0 - mid = (mid + Math.imul(al0, bh3)) | 0 - mid = (mid + Math.imul(ah0, bl3)) | 0 - hi = (hi + Math.imul(ah0, bh3)) | 0 - var w3 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0 - w3 &= 67108863 - lo = Math.imul(al4, bl0) - mid = Math.imul(al4, bh0) - mid = (mid + Math.imul(ah4, bl0)) | 0 - hi = Math.imul(ah4, bh0) - lo = (lo + Math.imul(al3, bl1)) | 0 - mid = (mid + Math.imul(al3, bh1)) | 0 - mid = (mid + Math.imul(ah3, bl1)) | 0 - hi = (hi + Math.imul(ah3, bh1)) | 0 - lo = (lo + Math.imul(al2, bl2)) | 0 - mid = (mid + Math.imul(al2, bh2)) | 0 - mid = (mid + Math.imul(ah2, bl2)) | 0 - hi = (hi + Math.imul(ah2, bh2)) | 0 - lo = (lo + Math.imul(al1, bl3)) | 0 - mid = (mid + Math.imul(al1, bh3)) | 0 - mid = (mid + Math.imul(ah1, bl3)) | 0 - hi = (hi + Math.imul(ah1, bh3)) | 0 - lo = (lo + Math.imul(al0, bl4)) | 0 - mid = (mid + Math.imul(al0, bh4)) | 0 - mid = (mid + Math.imul(ah0, bl4)) | 0 - hi = (hi + Math.imul(ah0, bh4)) | 0 - var w4 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0 - w4 &= 67108863 - lo = Math.imul(al5, bl0) - mid = Math.imul(al5, bh0) - mid = (mid + Math.imul(ah5, bl0)) | 0 - hi = Math.imul(ah5, bh0) - lo = (lo + Math.imul(al4, bl1)) | 0 - mid = (mid + Math.imul(al4, bh1)) | 0 - mid = (mid + Math.imul(ah4, bl1)) | 0 - hi = (hi + Math.imul(ah4, bh1)) | 0 - lo = (lo + Math.imul(al3, bl2)) | 0 - mid = (mid + Math.imul(al3, bh2)) | 0 - mid = (mid + Math.imul(ah3, bl2)) | 0 - hi = (hi + Math.imul(ah3, bh2)) | 0 - lo = (lo + Math.imul(al2, bl3)) | 0 - mid = (mid + Math.imul(al2, bh3)) | 0 - mid = (mid + Math.imul(ah2, bl3)) | 0 - hi = (hi + Math.imul(ah2, bh3)) | 0 - lo = (lo + Math.imul(al1, bl4)) | 0 - mid = (mid + Math.imul(al1, bh4)) | 0 - mid = (mid + Math.imul(ah1, bl4)) | 0 - hi = (hi + Math.imul(ah1, bh4)) | 0 - lo = (lo + Math.imul(al0, bl5)) | 0 - mid = (mid + Math.imul(al0, bh5)) | 0 - mid = (mid + Math.imul(ah0, bl5)) | 0 - hi = (hi + Math.imul(ah0, bh5)) | 0 - var w5 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0 - w5 &= 67108863 - lo = Math.imul(al6, bl0) - mid = Math.imul(al6, bh0) - mid = (mid + Math.imul(ah6, bl0)) | 0 - hi = Math.imul(ah6, bh0) - lo = (lo + Math.imul(al5, bl1)) | 0 - mid = (mid + Math.imul(al5, bh1)) | 0 - mid = (mid + Math.imul(ah5, bl1)) | 0 - hi = (hi + Math.imul(ah5, bh1)) | 0 - lo = (lo + Math.imul(al4, bl2)) | 0 - mid = (mid + Math.imul(al4, bh2)) | 0 - mid = (mid + Math.imul(ah4, bl2)) | 0 - hi = (hi + Math.imul(ah4, bh2)) | 0 - lo = (lo + Math.imul(al3, bl3)) | 0 - mid = (mid + Math.imul(al3, bh3)) | 0 - mid = (mid + Math.imul(ah3, bl3)) | 0 - hi = (hi + Math.imul(ah3, bh3)) | 0 - lo = (lo + Math.imul(al2, bl4)) | 0 - mid = (mid + Math.imul(al2, bh4)) | 0 - mid = (mid + Math.imul(ah2, bl4)) | 0 - hi = (hi + Math.imul(ah2, bh4)) | 0 - lo = (lo + Math.imul(al1, bl5)) | 0 - mid = (mid + Math.imul(al1, bh5)) | 0 - mid = (mid + Math.imul(ah1, bl5)) | 0 - hi = (hi + Math.imul(ah1, bh5)) | 0 - lo = (lo + Math.imul(al0, bl6)) | 0 - mid = (mid + Math.imul(al0, bh6)) | 0 - mid = (mid + Math.imul(ah0, bl6)) | 0 - hi = (hi + Math.imul(ah0, bh6)) | 0 - var w6 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0 - w6 &= 67108863 - lo = Math.imul(al7, bl0) - mid = Math.imul(al7, bh0) - mid = (mid + Math.imul(ah7, bl0)) | 0 - hi = Math.imul(ah7, bh0) - lo = (lo + Math.imul(al6, bl1)) | 0 - mid = (mid + Math.imul(al6, bh1)) | 0 - mid = (mid + Math.imul(ah6, bl1)) | 0 - hi = (hi + Math.imul(ah6, bh1)) | 0 - lo = (lo + Math.imul(al5, bl2)) | 0 - mid = (mid + Math.imul(al5, bh2)) | 0 - mid = (mid + Math.imul(ah5, bl2)) | 0 - hi = (hi + Math.imul(ah5, bh2)) | 0 - lo = (lo + Math.imul(al4, bl3)) | 0 - mid = (mid + Math.imul(al4, bh3)) | 0 - mid = (mid + Math.imul(ah4, bl3)) | 0 - hi = (hi + Math.imul(ah4, bh3)) | 0 - lo = (lo + Math.imul(al3, bl4)) | 0 - mid = (mid + Math.imul(al3, bh4)) | 0 - mid = (mid + Math.imul(ah3, bl4)) | 0 - hi = (hi + Math.imul(ah3, bh4)) | 0 - lo = (lo + Math.imul(al2, bl5)) | 0 - mid = (mid + Math.imul(al2, bh5)) | 0 - mid = (mid + Math.imul(ah2, bl5)) | 0 - hi = (hi + Math.imul(ah2, bh5)) | 0 - lo = (lo + Math.imul(al1, bl6)) | 0 - mid = (mid + Math.imul(al1, bh6)) | 0 - mid = (mid + Math.imul(ah1, bl6)) | 0 - hi = (hi + Math.imul(ah1, bh6)) | 0 - lo = (lo + Math.imul(al0, bl7)) | 0 - mid = (mid + Math.imul(al0, bh7)) | 0 - mid = (mid + Math.imul(ah0, bl7)) | 0 - hi = (hi + Math.imul(ah0, bh7)) | 0 - var w7 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0 - w7 &= 67108863 - lo = Math.imul(al8, bl0) - mid = Math.imul(al8, bh0) - mid = (mid + Math.imul(ah8, bl0)) | 0 - hi = Math.imul(ah8, bh0) - lo = (lo + Math.imul(al7, bl1)) | 0 - mid = (mid + Math.imul(al7, bh1)) | 0 - mid = (mid + Math.imul(ah7, bl1)) | 0 - hi = (hi + Math.imul(ah7, bh1)) | 0 - lo = (lo + Math.imul(al6, bl2)) | 0 - mid = (mid + Math.imul(al6, bh2)) | 0 - mid = (mid + Math.imul(ah6, bl2)) | 0 - hi = (hi + Math.imul(ah6, bh2)) | 0 - lo = (lo + Math.imul(al5, bl3)) | 0 - mid = (mid + Math.imul(al5, bh3)) | 0 - mid = (mid + Math.imul(ah5, bl3)) | 0 - hi = (hi + Math.imul(ah5, bh3)) | 0 - lo = (lo + Math.imul(al4, bl4)) | 0 - mid = (mid + Math.imul(al4, bh4)) | 0 - mid = (mid + Math.imul(ah4, bl4)) | 0 - hi = (hi + Math.imul(ah4, bh4)) | 0 - lo = (lo + Math.imul(al3, bl5)) | 0 - mid = (mid + Math.imul(al3, bh5)) | 0 - mid = (mid + Math.imul(ah3, bl5)) | 0 - hi = (hi + Math.imul(ah3, bh5)) | 0 - lo = (lo + Math.imul(al2, bl6)) | 0 - mid = (mid + Math.imul(al2, bh6)) | 0 - mid = (mid + Math.imul(ah2, bl6)) | 0 - hi = (hi + Math.imul(ah2, bh6)) | 0 - lo = (lo + Math.imul(al1, bl7)) | 0 - mid = (mid + Math.imul(al1, bh7)) | 0 - mid = (mid + Math.imul(ah1, bl7)) | 0 - hi = (hi + Math.imul(ah1, bh7)) | 0 - lo = (lo + Math.imul(al0, bl8)) | 0 - mid = (mid + Math.imul(al0, bh8)) | 0 - mid = (mid + Math.imul(ah0, bl8)) | 0 - hi = (hi + Math.imul(ah0, bh8)) | 0 - var w8 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0 - w8 &= 67108863 - lo = Math.imul(al9, bl0) - mid = Math.imul(al9, bh0) - mid = (mid + Math.imul(ah9, bl0)) | 0 - hi = Math.imul(ah9, bh0) - lo = (lo + Math.imul(al8, bl1)) | 0 - mid = (mid + Math.imul(al8, bh1)) | 0 - mid = (mid + Math.imul(ah8, bl1)) | 0 - hi = (hi + Math.imul(ah8, bh1)) | 0 - lo = (lo + Math.imul(al7, bl2)) | 0 - mid = (mid + Math.imul(al7, bh2)) | 0 - mid = (mid + Math.imul(ah7, bl2)) | 0 - hi = (hi + Math.imul(ah7, bh2)) | 0 - lo = (lo + Math.imul(al6, bl3)) | 0 - mid = (mid + Math.imul(al6, bh3)) | 0 - mid = (mid + Math.imul(ah6, bl3)) | 0 - hi = (hi + Math.imul(ah6, bh3)) | 0 - lo = (lo + Math.imul(al5, bl4)) | 0 - mid = (mid + Math.imul(al5, bh4)) | 0 - mid = (mid + Math.imul(ah5, bl4)) | 0 - hi = (hi + Math.imul(ah5, bh4)) | 0 - lo = (lo + Math.imul(al4, bl5)) | 0 - mid = (mid + Math.imul(al4, bh5)) | 0 - mid = (mid + Math.imul(ah4, bl5)) | 0 - hi = (hi + Math.imul(ah4, bh5)) | 0 - lo = (lo + Math.imul(al3, bl6)) | 0 - mid = (mid + Math.imul(al3, bh6)) | 0 - mid = (mid + Math.imul(ah3, bl6)) | 0 - hi = (hi + Math.imul(ah3, bh6)) | 0 - lo = (lo + Math.imul(al2, bl7)) | 0 - mid = (mid + Math.imul(al2, bh7)) | 0 - mid = (mid + Math.imul(ah2, bl7)) | 0 - hi = (hi + Math.imul(ah2, bh7)) | 0 - lo = (lo + Math.imul(al1, bl8)) | 0 - mid = (mid + Math.imul(al1, bh8)) | 0 - mid = (mid + Math.imul(ah1, bl8)) | 0 - hi = (hi + Math.imul(ah1, bh8)) | 0 - lo = (lo + Math.imul(al0, bl9)) | 0 - mid = (mid + Math.imul(al0, bh9)) | 0 - mid = (mid + Math.imul(ah0, bl9)) | 0 - hi = (hi + Math.imul(ah0, bh9)) | 0 - var w9 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0 - w9 &= 67108863 - lo = Math.imul(al9, bl1) - mid = Math.imul(al9, bh1) - mid = (mid + Math.imul(ah9, bl1)) | 0 - hi = Math.imul(ah9, bh1) - lo = (lo + Math.imul(al8, bl2)) | 0 - mid = (mid + Math.imul(al8, bh2)) | 0 - mid = (mid + Math.imul(ah8, bl2)) | 0 - hi = (hi + Math.imul(ah8, bh2)) | 0 - lo = (lo + Math.imul(al7, bl3)) | 0 - mid = (mid + Math.imul(al7, bh3)) | 0 - mid = (mid + Math.imul(ah7, bl3)) | 0 - hi = (hi + Math.imul(ah7, bh3)) | 0 - lo = (lo + Math.imul(al6, bl4)) | 0 - mid = (mid + Math.imul(al6, bh4)) | 0 - mid = (mid + Math.imul(ah6, bl4)) | 0 - hi = (hi + Math.imul(ah6, bh4)) | 0 - lo = (lo + Math.imul(al5, bl5)) | 0 - mid = (mid + Math.imul(al5, bh5)) | 0 - mid = (mid + Math.imul(ah5, bl5)) | 0 - hi = (hi + Math.imul(ah5, bh5)) | 0 - lo = (lo + Math.imul(al4, bl6)) | 0 - mid = (mid + Math.imul(al4, bh6)) | 0 - mid = (mid + Math.imul(ah4, bl6)) | 0 - hi = (hi + Math.imul(ah4, bh6)) | 0 - lo = (lo + Math.imul(al3, bl7)) | 0 - mid = (mid + Math.imul(al3, bh7)) | 0 - mid = (mid + Math.imul(ah3, bl7)) | 0 - hi = (hi + Math.imul(ah3, bh7)) | 0 - lo = (lo + Math.imul(al2, bl8)) | 0 - mid = (mid + Math.imul(al2, bh8)) | 0 - mid = (mid + Math.imul(ah2, bl8)) | 0 - hi = (hi + Math.imul(ah2, bh8)) | 0 - lo = (lo + Math.imul(al1, bl9)) | 0 - mid = (mid + Math.imul(al1, bh9)) | 0 - mid = (mid + Math.imul(ah1, bl9)) | 0 - hi = (hi + Math.imul(ah1, bh9)) | 0 - var w10 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0 - w10 &= 67108863 - lo = Math.imul(al9, bl2) - mid = Math.imul(al9, bh2) - mid = (mid + Math.imul(ah9, bl2)) | 0 - hi = Math.imul(ah9, bh2) - lo = (lo + Math.imul(al8, bl3)) | 0 - mid = (mid + Math.imul(al8, bh3)) | 0 - mid = (mid + Math.imul(ah8, bl3)) | 0 - hi = (hi + Math.imul(ah8, bh3)) | 0 - lo = (lo + Math.imul(al7, bl4)) | 0 - mid = (mid + Math.imul(al7, bh4)) | 0 - mid = (mid + Math.imul(ah7, bl4)) | 0 - hi = (hi + Math.imul(ah7, bh4)) | 0 - lo = (lo + Math.imul(al6, bl5)) | 0 - mid = (mid + Math.imul(al6, bh5)) | 0 - mid = (mid + Math.imul(ah6, bl5)) | 0 - hi = (hi + Math.imul(ah6, bh5)) | 0 - lo = (lo + Math.imul(al5, bl6)) | 0 - mid = (mid + Math.imul(al5, bh6)) | 0 - mid = (mid + Math.imul(ah5, bl6)) | 0 - hi = (hi + Math.imul(ah5, bh6)) | 0 - lo = (lo + Math.imul(al4, bl7)) | 0 - mid = (mid + Math.imul(al4, bh7)) | 0 - mid = (mid + Math.imul(ah4, bl7)) | 0 - hi = (hi + Math.imul(ah4, bh7)) | 0 - lo = (lo + Math.imul(al3, bl8)) | 0 - mid = (mid + Math.imul(al3, bh8)) | 0 - mid = (mid + Math.imul(ah3, bl8)) | 0 - hi = (hi + Math.imul(ah3, bh8)) | 0 - lo = (lo + Math.imul(al2, bl9)) | 0 - mid = (mid + Math.imul(al2, bh9)) | 0 - mid = (mid + Math.imul(ah2, bl9)) | 0 - hi = (hi + Math.imul(ah2, bh9)) | 0 - var w11 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0 - w11 &= 67108863 - lo = Math.imul(al9, bl3) - mid = Math.imul(al9, bh3) - mid = (mid + Math.imul(ah9, bl3)) | 0 - hi = Math.imul(ah9, bh3) - lo = (lo + Math.imul(al8, bl4)) | 0 - mid = (mid + Math.imul(al8, bh4)) | 0 - mid = (mid + Math.imul(ah8, bl4)) | 0 - hi = (hi + Math.imul(ah8, bh4)) | 0 - lo = (lo + Math.imul(al7, bl5)) | 0 - mid = (mid + Math.imul(al7, bh5)) | 0 - mid = (mid + Math.imul(ah7, bl5)) | 0 - hi = (hi + Math.imul(ah7, bh5)) | 0 - lo = (lo + Math.imul(al6, bl6)) | 0 - mid = (mid + Math.imul(al6, bh6)) | 0 - mid = (mid + Math.imul(ah6, bl6)) | 0 - hi = (hi + Math.imul(ah6, bh6)) | 0 - lo = (lo + Math.imul(al5, bl7)) | 0 - mid = (mid + Math.imul(al5, bh7)) | 0 - mid = (mid + Math.imul(ah5, bl7)) | 0 - hi = (hi + Math.imul(ah5, bh7)) | 0 - lo = (lo + Math.imul(al4, bl8)) | 0 - mid = (mid + Math.imul(al4, bh8)) | 0 - mid = (mid + Math.imul(ah4, bl8)) | 0 - hi = (hi + Math.imul(ah4, bh8)) | 0 - lo = (lo + Math.imul(al3, bl9)) | 0 - mid = (mid + Math.imul(al3, bh9)) | 0 - mid = (mid + Math.imul(ah3, bl9)) | 0 - hi = (hi + Math.imul(ah3, bh9)) | 0 - var w12 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0 - w12 &= 67108863 - lo = Math.imul(al9, bl4) - mid = Math.imul(al9, bh4) - mid = (mid + Math.imul(ah9, bl4)) | 0 - hi = Math.imul(ah9, bh4) - lo = (lo + Math.imul(al8, bl5)) | 0 - mid = (mid + Math.imul(al8, bh5)) | 0 - mid = (mid + Math.imul(ah8, bl5)) | 0 - hi = (hi + Math.imul(ah8, bh5)) | 0 - lo = (lo + Math.imul(al7, bl6)) | 0 - mid = (mid + Math.imul(al7, bh6)) | 0 - mid = (mid + Math.imul(ah7, bl6)) | 0 - hi = (hi + Math.imul(ah7, bh6)) | 0 - lo = (lo + Math.imul(al6, bl7)) | 0 - mid = (mid + Math.imul(al6, bh7)) | 0 - mid = (mid + Math.imul(ah6, bl7)) | 0 - hi = (hi + Math.imul(ah6, bh7)) | 0 - lo = (lo + Math.imul(al5, bl8)) | 0 - mid = (mid + Math.imul(al5, bh8)) | 0 - mid = (mid + Math.imul(ah5, bl8)) | 0 - hi = (hi + Math.imul(ah5, bh8)) | 0 - lo = (lo + Math.imul(al4, bl9)) | 0 - mid = (mid + Math.imul(al4, bh9)) | 0 - mid = (mid + Math.imul(ah4, bl9)) | 0 - hi = (hi + Math.imul(ah4, bh9)) | 0 - var w13 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0 - w13 &= 67108863 - lo = Math.imul(al9, bl5) - mid = Math.imul(al9, bh5) - mid = (mid + Math.imul(ah9, bl5)) | 0 - hi = Math.imul(ah9, bh5) - lo = (lo + Math.imul(al8, bl6)) | 0 - mid = (mid + Math.imul(al8, bh6)) | 0 - mid = (mid + Math.imul(ah8, bl6)) | 0 - hi = (hi + Math.imul(ah8, bh6)) | 0 - lo = (lo + Math.imul(al7, bl7)) | 0 - mid = (mid + Math.imul(al7, bh7)) | 0 - mid = (mid + Math.imul(ah7, bl7)) | 0 - hi = (hi + Math.imul(ah7, bh7)) | 0 - lo = (lo + Math.imul(al6, bl8)) | 0 - mid = (mid + Math.imul(al6, bh8)) | 0 - mid = (mid + Math.imul(ah6, bl8)) | 0 - hi = (hi + Math.imul(ah6, bh8)) | 0 - lo = (lo + Math.imul(al5, bl9)) | 0 - mid = (mid + Math.imul(al5, bh9)) | 0 - mid = (mid + Math.imul(ah5, bl9)) | 0 - hi = (hi + Math.imul(ah5, bh9)) | 0 - var w14 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0 - w14 &= 67108863 - lo = Math.imul(al9, bl6) - mid = Math.imul(al9, bh6) - mid = (mid + Math.imul(ah9, bl6)) | 0 - hi = Math.imul(ah9, bh6) - lo = (lo + Math.imul(al8, bl7)) | 0 - mid = (mid + Math.imul(al8, bh7)) | 0 - mid = (mid + Math.imul(ah8, bl7)) | 0 - hi = (hi + Math.imul(ah8, bh7)) | 0 - lo = (lo + Math.imul(al7, bl8)) | 0 - mid = (mid + Math.imul(al7, bh8)) | 0 - mid = (mid + Math.imul(ah7, bl8)) | 0 - hi = (hi + Math.imul(ah7, bh8)) | 0 - lo = (lo + Math.imul(al6, bl9)) | 0 - mid = (mid + Math.imul(al6, bh9)) | 0 - mid = (mid + Math.imul(ah6, bl9)) | 0 - hi = (hi + Math.imul(ah6, bh9)) | 0 - var w15 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0 - w15 &= 67108863 - lo = Math.imul(al9, bl7) - mid = Math.imul(al9, bh7) - mid = (mid + Math.imul(ah9, bl7)) | 0 - hi = Math.imul(ah9, bh7) - lo = (lo + Math.imul(al8, bl8)) | 0 - mid = (mid + Math.imul(al8, bh8)) | 0 - mid = (mid + Math.imul(ah8, bl8)) | 0 - hi = (hi + Math.imul(ah8, bh8)) | 0 - lo = (lo + Math.imul(al7, bl9)) | 0 - mid = (mid + Math.imul(al7, bh9)) | 0 - mid = (mid + Math.imul(ah7, bl9)) | 0 - hi = (hi + Math.imul(ah7, bh9)) | 0 - var w16 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0 - w16 &= 67108863 - lo = Math.imul(al9, bl8) - mid = Math.imul(al9, bh8) - mid = (mid + Math.imul(ah9, bl8)) | 0 - hi = Math.imul(ah9, bh8) - lo = (lo + Math.imul(al8, bl9)) | 0 - mid = (mid + Math.imul(al8, bh9)) | 0 - mid = (mid + Math.imul(ah8, bl9)) | 0 - hi = (hi + Math.imul(ah8, bh9)) | 0 - var w17 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0 - w17 &= 67108863 - lo = Math.imul(al9, bl9) - mid = Math.imul(al9, bh9) - mid = (mid + Math.imul(ah9, bl9)) | 0 - hi = Math.imul(ah9, bh9) - var w18 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0 - w18 &= 67108863 - o[0] = w0 - o[1] = w1 - o[2] = w2 - o[3] = w3 - o[4] = w4 - o[5] = w5 - o[6] = w6 - o[7] = w7 - o[8] = w8 - o[9] = w9 - o[10] = w10 - o[11] = w11 - o[12] = w12 - o[13] = w13 - o[14] = w14 - o[15] = w15 - o[16] = w16 - o[17] = w17 - o[18] = w18 - if (c !== 0) { - o[19] = c - out.length++ - } - return out - } - if (!Math.imul) { - comb10MulTo = smallMulTo - } - function bigMulTo(self, num, out) { - out.negative = num.negative ^ self.negative - out.length = self.length + num.length - var carry = 0 - var hncarry = 0 - for (var k = 0; k < out.length - 1; k++) { - var ncarry = hncarry - hncarry = 0 - var rword = carry & 67108863 - var maxJ = Math.min(k, num.length - 1) - for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { - var i = k - j - var a = self.words[i] | 0 - var b = num.words[j] | 0 - var r = a * b - var lo = r & 67108863 - ncarry = (ncarry + ((r / 67108864) | 0)) | 0 - lo = (lo + rword) | 0 - rword = lo & 67108863 - ncarry = (ncarry + (lo >>> 26)) | 0 - hncarry += ncarry >>> 26 - ncarry &= 67108863 - } - out.words[k] = rword - carry = ncarry - ncarry = hncarry - } - if (carry !== 0) { - out.words[k] = carry - } else { - out.length-- - } - return out.strip() - } - function jumboMulTo(self, num, out) { - var fftm = new FFTM() - return fftm.mulp(self, num, out) - } - BN.prototype.mulTo = function mulTo(num, out) { - var res - var len = this.length + num.length - if (this.length === 10 && num.length === 10) { - res = comb10MulTo(this, num, out) - } else if (len < 63) { - res = smallMulTo(this, num, out) - } else if (len < 1024) { - res = bigMulTo(this, num, out) - } else { - res = jumboMulTo(this, num, out) - } - return res - } - function FFTM(x, y) { - this.x = x - this.y = y - } - FFTM.prototype.makeRBT = function makeRBT(N) { - var t = new Array(N) - var l = BN.prototype._countBits(N) - 1 - for (var i = 0; i < N; i++) { - t[i] = this.revBin(i, l, N) - } - return t - } - FFTM.prototype.revBin = function revBin(x, l, N) { - if (x === 0 || x === N - 1) return x - var rb = 0 - for (var i = 0; i < l; i++) { - rb |= (x & 1) << (l - i - 1) - x >>= 1 - } - return rb - } - FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) { - for (var i = 0; i < N; i++) { - rtws[i] = rws[rbt[i]] - itws[i] = iws[rbt[i]] - } - } - FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) { - this.permute(rbt, rws, iws, rtws, itws, N) - for (var s = 1; s < N; s <<= 1) { - var l = s << 1 - var rtwdf = Math.cos((2 * Math.PI) / l) - var itwdf = Math.sin((2 * Math.PI) / l) - for (var p = 0; p < N; p += l) { - var rtwdf_ = rtwdf - var itwdf_ = itwdf - for (var j = 0; j < s; j++) { - var re = rtws[p + j] - var ie = itws[p + j] - var ro = rtws[p + j + s] - var io = itws[p + j + s] - var rx = rtwdf_ * ro - itwdf_ * io - io = rtwdf_ * io + itwdf_ * ro - ro = rx - rtws[p + j] = re + ro - itws[p + j] = ie + io - rtws[p + j + s] = re - ro - itws[p + j + s] = ie - io - if (j !== l) { - rx = rtwdf * rtwdf_ - itwdf * itwdf_ - itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_ - rtwdf_ = rx - } - } - } - } - } - FFTM.prototype.guessLen13b = function guessLen13b(n, m) { - var N = Math.max(m, n) | 1 - var odd = N & 1 - var i = 0 - for (N = (N / 2) | 0; N; N = N >>> 1) { - i++ - } - return 1 << (i + 1 + odd) - } - FFTM.prototype.conjugate = function conjugate(rws, iws, N) { - if (N <= 1) return - for (var i = 0; i < N / 2; i++) { - var t = rws[i] - rws[i] = rws[N - i - 1] - rws[N - i - 1] = t - t = iws[i] - iws[i] = -iws[N - i - 1] - iws[N - i - 1] = -t - } - } - FFTM.prototype.normalize13b = function normalize13b(ws, N) { - var carry = 0 - for (var i = 0; i < N / 2; i++) { - var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry - ws[i] = w & 67108863 - if (w < 67108864) { - carry = 0 - } else { - carry = (w / 67108864) | 0 - } - } - return ws - } - FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) { - var carry = 0 - for (var i = 0; i < len; i++) { - carry = carry + (ws[i] | 0) - rws[2 * i] = carry & 8191 - carry = carry >>> 13 - rws[2 * i + 1] = carry & 8191 - carry = carry >>> 13 - } - for (i = 2 * len; i < N; ++i) { - rws[i] = 0 - } - assert(carry === 0) - assert((carry & ~8191) === 0) - } - FFTM.prototype.stub = function stub(N) { - var ph = new Array(N) - for (var i = 0; i < N; i++) { - ph[i] = 0 - } - return ph - } - FFTM.prototype.mulp = function mulp(x, y, out) { - var N = 2 * this.guessLen13b(x.length, y.length) - var rbt = this.makeRBT(N) - var _ = this.stub(N) - var rws = new Array(N) - var rwst = new Array(N) - var iwst = new Array(N) - var nrws = new Array(N) - var nrwst = new Array(N) - var niwst = new Array(N) - var rmws = out.words - rmws.length = N - this.convert13b(x.words, x.length, rws, N) - this.convert13b(y.words, y.length, nrws, N) - this.transform(rws, _, rwst, iwst, N, rbt) - this.transform(nrws, _, nrwst, niwst, N, rbt) - for (var i = 0; i < N; i++) { - var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i] - iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i] - rwst[i] = rx - } - this.conjugate(rwst, iwst, N) - this.transform(rwst, iwst, rmws, _, N, rbt) - this.conjugate(rmws, _, N) - this.normalize13b(rmws, N) - out.negative = x.negative ^ y.negative - out.length = x.length + y.length - return out.strip() - } - BN.prototype.mul = function mul(num) { - var out = new BN(null) - out.words = new Array(this.length + num.length) - return this.mulTo(num, out) - } - BN.prototype.mulf = function mulf(num) { - var out = new BN(null) - out.words = new Array(this.length + num.length) - return jumboMulTo(this, num, out) - } - BN.prototype.imul = function imul(num) { - return this.clone().mulTo(num, this) - } - BN.prototype.imuln = function imuln(num) { - assert(typeof num === 'number') - assert(num < 67108864) - var carry = 0 - for (var i = 0; i < this.length; i++) { - var w = (this.words[i] | 0) * num - var lo = (w & 67108863) + (carry & 67108863) - carry >>= 26 - carry += (w / 67108864) | 0 - carry += lo >>> 26 - this.words[i] = lo & 67108863 - } - if (carry !== 0) { - this.words[i] = carry - this.length++ - } - return this - } - BN.prototype.muln = function muln(num) { - return this.clone().imuln(num) - } - BN.prototype.sqr = function sqr() { - return this.mul(this) - } - BN.prototype.isqr = function isqr() { - return this.imul(this.clone()) - } - BN.prototype.pow = function pow(num) { - var w = toBitArray(num) - if (w.length === 0) return new BN(1) - var res = this - for (var i = 0; i < w.length; i++, res = res.sqr()) { - if (w[i] !== 0) break - } - if (++i < w.length) { - for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { - if (w[i] === 0) continue - res = res.mul(q) - } - } - return res - } - BN.prototype.iushln = function iushln(bits) { - assert(typeof bits === 'number' && bits >= 0) - var r = bits % 26 - var s = (bits - r) / 26 - var carryMask = (67108863 >>> (26 - r)) << (26 - r) - var i - if (r !== 0) { - var carry = 0 - for (i = 0; i < this.length; i++) { - var newCarry = this.words[i] & carryMask - var c = ((this.words[i] | 0) - newCarry) << r - this.words[i] = c | carry - carry = newCarry >>> (26 - r) - } - if (carry) { - this.words[i] = carry - this.length++ - } - } - if (s !== 0) { - for (i = this.length - 1; i >= 0; i--) { - this.words[i + s] = this.words[i] - } - for (i = 0; i < s; i++) { - this.words[i] = 0 - } - this.length += s - } - return this.strip() - } - BN.prototype.ishln = function ishln(bits) { - assert(this.negative === 0) - return this.iushln(bits) - } - BN.prototype.iushrn = function iushrn(bits, hint, extended) { - assert(typeof bits === 'number' && bits >= 0) - var h - if (hint) { - h = (hint - (hint % 26)) / 26 - } else { - h = 0 - } - var r = bits % 26 - var s = Math.min((bits - r) / 26, this.length) - var mask = 67108863 ^ ((67108863 >>> r) << r) - var maskedWords = extended - h -= s - h = Math.max(0, h) - if (maskedWords) { - for (var i = 0; i < s; i++) { - maskedWords.words[i] = this.words[i] - } - maskedWords.length = s - } - if (s === 0) { - } else if (this.length > s) { - this.length -= s - for (i = 0; i < this.length; i++) { - this.words[i] = this.words[i + s] - } - } else { - this.words[0] = 0 - this.length = 1 - } - var carry = 0 - for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) { - var word = this.words[i] | 0 - this.words[i] = (carry << (26 - r)) | (word >>> r) - carry = word & mask - } - if (maskedWords && carry !== 0) { - maskedWords.words[maskedWords.length++] = carry - } - if (this.length === 0) { - this.words[0] = 0 - this.length = 1 - } - return this.strip() - } - BN.prototype.ishrn = function ishrn(bits, hint, extended) { - assert(this.negative === 0) - return this.iushrn(bits, hint, extended) - } - BN.prototype.shln = function shln(bits) { - return this.clone().ishln(bits) - } - BN.prototype.ushln = function ushln(bits) { - return this.clone().iushln(bits) - } - BN.prototype.shrn = function shrn(bits) { - return this.clone().ishrn(bits) - } - BN.prototype.ushrn = function ushrn(bits) { - return this.clone().iushrn(bits) - } - BN.prototype.testn = function testn(bit) { - assert(typeof bit === 'number' && bit >= 0) - var r = bit % 26 - var s = (bit - r) / 26 - var q = 1 << r - if (this.length <= s) return false - var w = this.words[s] - return !!(w & q) - } - BN.prototype.imaskn = function imaskn(bits) { - assert(typeof bits === 'number' && bits >= 0) - var r = bits % 26 - var s = (bits - r) / 26 - assert(this.negative === 0, 'imaskn works only with positive numbers') - if (this.length <= s) { - return this - } - if (r !== 0) { - s++ - } - this.length = Math.min(s, this.length) - if (r !== 0) { - var mask = 67108863 ^ ((67108863 >>> r) << r) - this.words[this.length - 1] &= mask - } - return this.strip() - } - BN.prototype.maskn = function maskn(bits) { - return this.clone().imaskn(bits) - } - BN.prototype.iaddn = function iaddn(num) { - assert(typeof num === 'number') - assert(num < 67108864) - if (num < 0) return this.isubn(-num) - if (this.negative !== 0) { - if (this.length === 1 && (this.words[0] | 0) < num) { - this.words[0] = num - (this.words[0] | 0) - this.negative = 0 - return this - } - this.negative = 0 - this.isubn(num) - this.negative = 1 - return this - } - return this._iaddn(num) - } - BN.prototype._iaddn = function _iaddn(num) { - this.words[0] += num - for (var i = 0; i < this.length && this.words[i] >= 67108864; i++) { - this.words[i] -= 67108864 - if (i === this.length - 1) { - this.words[i + 1] = 1 - } else { - this.words[i + 1]++ - } - } - this.length = Math.max(this.length, i + 1) - return this - } - BN.prototype.isubn = function isubn(num) { - assert(typeof num === 'number') - assert(num < 67108864) - if (num < 0) return this.iaddn(-num) - if (this.negative !== 0) { - this.negative = 0 - this.iaddn(num) - this.negative = 1 - return this - } - this.words[0] -= num - if (this.length === 1 && this.words[0] < 0) { - this.words[0] = -this.words[0] - this.negative = 1 - } else { - for (var i = 0; i < this.length && this.words[i] < 0; i++) { - this.words[i] += 67108864 - this.words[i + 1] -= 1 - } - } - return this.strip() - } - BN.prototype.addn = function addn(num) { - return this.clone().iaddn(num) - } - BN.prototype.subn = function subn(num) { - return this.clone().isubn(num) - } - BN.prototype.iabs = function iabs() { - this.negative = 0 - return this - } - BN.prototype.abs = function abs() { - return this.clone().iabs() - } - BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { - var len = num.length + shift - var i - this._expand(len) - var w - var carry = 0 - for (i = 0; i < num.length; i++) { - w = (this.words[i + shift] | 0) + carry - var right = (num.words[i] | 0) * mul - w -= right & 67108863 - carry = (w >> 26) - ((right / 67108864) | 0) - this.words[i + shift] = w & 67108863 - } - for (; i < this.length - shift; i++) { - w = (this.words[i + shift] | 0) + carry - carry = w >> 26 - this.words[i + shift] = w & 67108863 - } - if (carry === 0) return this.strip() - assert(carry === -1) - carry = 0 - for (i = 0; i < this.length; i++) { - w = -(this.words[i] | 0) + carry - carry = w >> 26 - this.words[i] = w & 67108863 - } - this.negative = 1 - return this.strip() - } - BN.prototype._wordDiv = function _wordDiv(num, mode) { - var shift = this.length - num.length - var a = this.clone() - var b = num - var bhi = b.words[b.length - 1] | 0 - var bhiBits = this._countBits(bhi) - shift = 26 - bhiBits - if (shift !== 0) { - b = b.ushln(shift) - a.iushln(shift) - bhi = b.words[b.length - 1] | 0 - } - var m = a.length - b.length - var q - if (mode !== 'mod') { - q = new BN(null) - q.length = m + 1 - q.words = new Array(q.length) - for (var i = 0; i < q.length; i++) { - q.words[i] = 0 - } - } - var diff = a.clone()._ishlnsubmul(b, 1, m) - if (diff.negative === 0) { - a = diff - if (q) { - q.words[m] = 1 - } - } - for (var j = m - 1; j >= 0; j--) { - var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0) - qj = Math.min((qj / bhi) | 0, 67108863) - a._ishlnsubmul(b, qj, j) - while (a.negative !== 0) { - qj-- - a.negative = 0 - a._ishlnsubmul(b, 1, j) - if (!a.isZero()) { - a.negative ^= 1 - } - } - if (q) { - q.words[j] = qj - } - } - if (q) { - q.strip() - } - a.strip() - if (mode !== 'div' && shift !== 0) { - a.iushrn(shift) - } - return { div: q || null, mod: a } - } - BN.prototype.divmod = function divmod(num, mode, positive) { - assert(!num.isZero()) - if (this.isZero()) { - return { div: new BN(0), mod: new BN(0) } - } - var div, mod, res - if (this.negative !== 0 && num.negative === 0) { - res = this.neg().divmod(num, mode) - if (mode !== 'mod') { - div = res.div.neg() - } - if (mode !== 'div') { - mod = res.mod.neg() - if (positive && mod.negative !== 0) { - mod.iadd(num) - } - } - return { div: div, mod: mod } - } - if (this.negative === 0 && num.negative !== 0) { - res = this.divmod(num.neg(), mode) - if (mode !== 'mod') { - div = res.div.neg() - } - return { div: div, mod: res.mod } - } - if ((this.negative & num.negative) !== 0) { - res = this.neg().divmod(num.neg(), mode) - if (mode !== 'div') { - mod = res.mod.neg() - if (positive && mod.negative !== 0) { - mod.isub(num) - } - } - return { div: res.div, mod: mod } - } - if (num.length > this.length || this.cmp(num) < 0) { - return { div: new BN(0), mod: this } - } - if (num.length === 1) { - if (mode === 'div') { - return { div: this.divn(num.words[0]), mod: null } - } - if (mode === 'mod') { - return { div: null, mod: new BN(this.modn(num.words[0])) } - } - return { div: this.divn(num.words[0]), mod: new BN(this.modn(num.words[0])) } - } - return this._wordDiv(num, mode) - } - BN.prototype.div = function div(num) { - return this.divmod(num, 'div', false).div - } - BN.prototype.mod = function mod(num) { - return this.divmod(num, 'mod', false).mod - } - BN.prototype.umod = function umod(num) { - return this.divmod(num, 'mod', true).mod - } - BN.prototype.divRound = function divRound(num) { - var dm = this.divmod(num) - if (dm.mod.isZero()) return dm.div - var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod - var half = num.ushrn(1) - var r2 = num.andln(1) - var cmp = mod.cmp(half) - if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div - return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1) - } - BN.prototype.modn = function modn(num) { - assert(num <= 67108863) - var p = (1 << 26) % num - var acc = 0 - for (var i = this.length - 1; i >= 0; i--) { - acc = (p * acc + (this.words[i] | 0)) % num - } - return acc - } - BN.prototype.idivn = function idivn(num) { - assert(num <= 67108863) - var carry = 0 - for (var i = this.length - 1; i >= 0; i--) { - var w = (this.words[i] | 0) + carry * 67108864 - this.words[i] = (w / num) | 0 - carry = w % num - } - return this.strip() - } - BN.prototype.divn = function divn(num) { - return this.clone().idivn(num) - } - BN.prototype.egcd = function egcd(p) { - assert(p.negative === 0) - assert(!p.isZero()) - var x = this - var y = p.clone() - if (x.negative !== 0) { - x = x.umod(p) - } else { - x = x.clone() - } - var A = new BN(1) - var B = new BN(0) - var C = new BN(0) - var D = new BN(1) - var g = 0 - while (x.isEven() && y.isEven()) { - x.iushrn(1) - y.iushrn(1) - ++g - } - var yp = y.clone() - var xp = x.clone() - while (!x.isZero()) { - for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1); - if (i > 0) { - x.iushrn(i) - while (i-- > 0) { - if (A.isOdd() || B.isOdd()) { - A.iadd(yp) - B.isub(xp) - } - A.iushrn(1) - B.iushrn(1) - } - } - for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); - if (j > 0) { - y.iushrn(j) - while (j-- > 0) { - if (C.isOdd() || D.isOdd()) { - C.iadd(yp) - D.isub(xp) - } - C.iushrn(1) - D.iushrn(1) - } - } - if (x.cmp(y) >= 0) { - x.isub(y) - A.isub(C) - B.isub(D) - } else { - y.isub(x) - C.isub(A) - D.isub(B) - } - } - return { a: C, b: D, gcd: y.iushln(g) } - } - BN.prototype._invmp = function _invmp(p) { - assert(p.negative === 0) - assert(!p.isZero()) - var a = this - var b = p.clone() - if (a.negative !== 0) { - a = a.umod(p) - } else { - a = a.clone() - } - var x1 = new BN(1) - var x2 = new BN(0) - var delta = b.clone() - while (a.cmpn(1) > 0 && b.cmpn(1) > 0) { - for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1); - if (i > 0) { - a.iushrn(i) - while (i-- > 0) { - if (x1.isOdd()) { - x1.iadd(delta) - } - x1.iushrn(1) - } - } - for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); - if (j > 0) { - b.iushrn(j) - while (j-- > 0) { - if (x2.isOdd()) { - x2.iadd(delta) - } - x2.iushrn(1) - } - } - if (a.cmp(b) >= 0) { - a.isub(b) - x1.isub(x2) - } else { - b.isub(a) - x2.isub(x1) - } - } - var res - if (a.cmpn(1) === 0) { - res = x1 - } else { - res = x2 - } - if (res.cmpn(0) < 0) { - res.iadd(p) - } - return res - } - BN.prototype.gcd = function gcd(num) { - if (this.isZero()) return num.abs() - if (num.isZero()) return this.abs() - var a = this.clone() - var b = num.clone() - a.negative = 0 - b.negative = 0 - for (var shift = 0; a.isEven() && b.isEven(); shift++) { - a.iushrn(1) - b.iushrn(1) - } - do { - while (a.isEven()) { - a.iushrn(1) - } - while (b.isEven()) { - b.iushrn(1) - } - var r = a.cmp(b) - if (r < 0) { - var t = a - a = b - b = t - } else if (r === 0 || b.cmpn(1) === 0) { - break - } - a.isub(b) - } while (true) - return b.iushln(shift) - } - BN.prototype.invm = function invm(num) { - return this.egcd(num).a.umod(num) - } - BN.prototype.isEven = function isEven() { - return (this.words[0] & 1) === 0 - } - BN.prototype.isOdd = function isOdd() { - return (this.words[0] & 1) === 1 - } - BN.prototype.andln = function andln(num) { - return this.words[0] & num - } - BN.prototype.bincn = function bincn(bit) { - assert(typeof bit === 'number') - var r = bit % 26 - var s = (bit - r) / 26 - var q = 1 << r - if (this.length <= s) { - this._expand(s + 1) - this.words[s] |= q - return this - } - var carry = q - for (var i = s; carry !== 0 && i < this.length; i++) { - var w = this.words[i] | 0 - w += carry - carry = w >>> 26 - w &= 67108863 - this.words[i] = w - } - if (carry !== 0) { - this.words[i] = carry - this.length++ - } - return this - } - BN.prototype.isZero = function isZero() { - return this.length === 1 && this.words[0] === 0 - } - BN.prototype.cmpn = function cmpn(num) { - var negative = num < 0 - if (this.negative !== 0 && !negative) return -1 - if (this.negative === 0 && negative) return 1 - this.strip() - var res - if (this.length > 1) { - res = 1 - } else { - if (negative) { - num = -num - } - assert(num <= 67108863, 'Number is too big') - var w = this.words[0] | 0 - res = w === num ? 0 : w < num ? -1 : 1 - } - if (this.negative !== 0) return -res | 0 - return res - } - BN.prototype.cmp = function cmp(num) { - if (this.negative !== 0 && num.negative === 0) return -1 - if (this.negative === 0 && num.negative !== 0) return 1 - var res = this.ucmp(num) - if (this.negative !== 0) return -res | 0 - return res - } - BN.prototype.ucmp = function ucmp(num) { - if (this.length > num.length) return 1 - if (this.length < num.length) return -1 - var res = 0 - for (var i = this.length - 1; i >= 0; i--) { - var a = this.words[i] | 0 - var b = num.words[i] | 0 - if (a === b) continue - if (a < b) { - res = -1 - } else if (a > b) { - res = 1 - } - break - } - return res - } - BN.prototype.gtn = function gtn(num) { - return this.cmpn(num) === 1 - } - BN.prototype.gt = function gt(num) { - return this.cmp(num) === 1 - } - BN.prototype.gten = function gten(num) { - return this.cmpn(num) >= 0 - } - BN.prototype.gte = function gte(num) { - return this.cmp(num) >= 0 - } - BN.prototype.ltn = function ltn(num) { - return this.cmpn(num) === -1 - } - BN.prototype.lt = function lt(num) { - return this.cmp(num) === -1 - } - BN.prototype.lten = function lten(num) { - return this.cmpn(num) <= 0 - } - BN.prototype.lte = function lte(num) { - return this.cmp(num) <= 0 - } - BN.prototype.eqn = function eqn(num) { - return this.cmpn(num) === 0 - } - BN.prototype.eq = function eq(num) { - return this.cmp(num) === 0 - } - BN.red = function red(num) { - return new Red(num) - } - BN.prototype.toRed = function toRed(ctx) { - assert(!this.red, 'Already a number in reduction context') - assert(this.negative === 0, 'red works only with positives') - return ctx.convertTo(this)._forceRed(ctx) - } - BN.prototype.fromRed = function fromRed() { - assert(this.red, 'fromRed works only with numbers in reduction context') - return this.red.convertFrom(this) - } - BN.prototype._forceRed = function _forceRed(ctx) { - this.red = ctx - return this - } - BN.prototype.forceRed = function forceRed(ctx) { - assert(!this.red, 'Already a number in reduction context') - return this._forceRed(ctx) - } - BN.prototype.redAdd = function redAdd(num) { - assert(this.red, 'redAdd works only with red numbers') - return this.red.add(this, num) - } - BN.prototype.redIAdd = function redIAdd(num) { - assert(this.red, 'redIAdd works only with red numbers') - return this.red.iadd(this, num) - } - BN.prototype.redSub = function redSub(num) { - assert(this.red, 'redSub works only with red numbers') - return this.red.sub(this, num) - } - BN.prototype.redISub = function redISub(num) { - assert(this.red, 'redISub works only with red numbers') - return this.red.isub(this, num) - } - BN.prototype.redShl = function redShl(num) { - assert(this.red, 'redShl works only with red numbers') - return this.red.shl(this, num) - } - BN.prototype.redMul = function redMul(num) { - assert(this.red, 'redMul works only with red numbers') - this.red._verify2(this, num) - return this.red.mul(this, num) - } - BN.prototype.redIMul = function redIMul(num) { - assert(this.red, 'redMul works only with red numbers') - this.red._verify2(this, num) - return this.red.imul(this, num) - } - BN.prototype.redSqr = function redSqr() { - assert(this.red, 'redSqr works only with red numbers') - this.red._verify1(this) - return this.red.sqr(this) - } - BN.prototype.redISqr = function redISqr() { - assert(this.red, 'redISqr works only with red numbers') - this.red._verify1(this) - return this.red.isqr(this) - } - BN.prototype.redSqrt = function redSqrt() { - assert(this.red, 'redSqrt works only with red numbers') - this.red._verify1(this) - return this.red.sqrt(this) - } - BN.prototype.redInvm = function redInvm() { - assert(this.red, 'redInvm works only with red numbers') - this.red._verify1(this) - return this.red.invm(this) - } - BN.prototype.redNeg = function redNeg() { - assert(this.red, 'redNeg works only with red numbers') - this.red._verify1(this) - return this.red.neg(this) - } - BN.prototype.redPow = function redPow(num) { - assert(this.red && !num.red, 'redPow(normalNum)') - this.red._verify1(this) - return this.red.pow(this, num) - } - var primes = { k256: null, p224: null, p192: null, p25519: null } - function MPrime(name, p) { - this.name = name - this.p = new BN(p, 16) - this.n = this.p.bitLength() - this.k = new BN(1).iushln(this.n).isub(this.p) - this.tmp = this._tmp() - } - MPrime.prototype._tmp = function _tmp() { - var tmp = new BN(null) - tmp.words = new Array(Math.ceil(this.n / 13)) - return tmp - } - MPrime.prototype.ireduce = function ireduce(num) { - var r = num - var rlen - do { - this.split(r, this.tmp) - r = this.imulK(r) - r = r.iadd(this.tmp) - rlen = r.bitLength() - } while (rlen > this.n) - var cmp = rlen < this.n ? -1 : r.ucmp(this.p) - if (cmp === 0) { - r.words[0] = 0 - r.length = 1 - } else if (cmp > 0) { - r.isub(this.p) - } else { - r.strip() - } - return r - } - MPrime.prototype.split = function split(input, out) { - input.iushrn(this.n, 0, out) - } - MPrime.prototype.imulK = function imulK(num) { - return num.imul(this.k) - } - function K256() { - MPrime.call( - this, - 'k256', - 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f' - ) - } - inherits(K256, MPrime) - K256.prototype.split = function split(input, output) { - var mask = 4194303 - var outLen = Math.min(input.length, 9) - for (var i = 0; i < outLen; i++) { - output.words[i] = input.words[i] - } - output.length = outLen - if (input.length <= 9) { - input.words[0] = 0 - input.length = 1 - return - } - var prev = input.words[9] - output.words[output.length++] = prev & mask - for (i = 10; i < input.length; i++) { - var next = input.words[i] | 0 - input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22) - prev = next - } - prev >>>= 22 - input.words[i - 10] = prev - if (prev === 0 && input.length > 10) { - input.length -= 10 - } else { - input.length -= 9 - } - } - K256.prototype.imulK = function imulK(num) { - num.words[num.length] = 0 - num.words[num.length + 1] = 0 - num.length += 2 - var lo = 0 - for (var i = 0; i < num.length; i++) { - var w = num.words[i] | 0 - lo += w * 977 - num.words[i] = lo & 67108863 - lo = w * 64 + ((lo / 67108864) | 0) - } - if (num.words[num.length - 1] === 0) { - num.length-- - if (num.words[num.length - 1] === 0) { - num.length-- - } - } - return num - } - function P224() { - MPrime.call( - this, - 'p224', - 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001' - ) - } - inherits(P224, MPrime) - function P192() { - MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff') - } - inherits(P192, MPrime) - function P25519() { - MPrime.call( - this, - '25519', - '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed' - ) - } - inherits(P25519, MPrime) - P25519.prototype.imulK = function imulK(num) { - var carry = 0 - for (var i = 0; i < num.length; i++) { - var hi = (num.words[i] | 0) * 19 + carry - var lo = hi & 67108863 - hi >>>= 26 - num.words[i] = lo - carry = hi - } - if (carry !== 0) { - num.words[num.length++] = carry - } - return num - } - BN._prime = function prime(name) { - if (primes[name]) return primes[name] - var prime - if (name === 'k256') { - prime = new K256() - } else if (name === 'p224') { - prime = new P224() - } else if (name === 'p192') { - prime = new P192() - } else if (name === 'p25519') { - prime = new P25519() - } else { - throw new Error('Unknown prime ' + name) - } - primes[name] = prime - return prime - } - function Red(m) { - if (typeof m === 'string') { - var prime = BN._prime(m) - this.m = prime.p - this.prime = prime - } else { - assert(m.gtn(1), 'modulus must be greater than 1') - this.m = m - this.prime = null - } - } - Red.prototype._verify1 = function _verify1(a) { - assert(a.negative === 0, 'red works only with positives') - assert(a.red, 'red works only with red numbers') - } - Red.prototype._verify2 = function _verify2(a, b) { - assert((a.negative | b.negative) === 0, 'red works only with positives') - assert(a.red && a.red === b.red, 'red works only with red numbers') - } - Red.prototype.imod = function imod(a) { - if (this.prime) return this.prime.ireduce(a)._forceRed(this) - return a.umod(this.m)._forceRed(this) - } - Red.prototype.neg = function neg(a) { - if (a.isZero()) { - return a.clone() - } - return this.m.sub(a)._forceRed(this) - } - Red.prototype.add = function add(a, b) { - this._verify2(a, b) - var res = a.add(b) - if (res.cmp(this.m) >= 0) { - res.isub(this.m) - } - return res._forceRed(this) - } - Red.prototype.iadd = function iadd(a, b) { - this._verify2(a, b) - var res = a.iadd(b) - if (res.cmp(this.m) >= 0) { - res.isub(this.m) - } - return res - } - Red.prototype.sub = function sub(a, b) { - this._verify2(a, b) - var res = a.sub(b) - if (res.cmpn(0) < 0) { - res.iadd(this.m) - } - return res._forceRed(this) - } - Red.prototype.isub = function isub(a, b) { - this._verify2(a, b) - var res = a.isub(b) - if (res.cmpn(0) < 0) { - res.iadd(this.m) - } - return res - } - Red.prototype.shl = function shl(a, num) { - this._verify1(a) - return this.imod(a.ushln(num)) - } - Red.prototype.imul = function imul(a, b) { - this._verify2(a, b) - return this.imod(a.imul(b)) - } - Red.prototype.mul = function mul(a, b) { - this._verify2(a, b) - return this.imod(a.mul(b)) - } - Red.prototype.isqr = function isqr(a) { - return this.imul(a, a.clone()) - } - Red.prototype.sqr = function sqr(a) { - return this.mul(a, a) - } - Red.prototype.sqrt = function sqrt(a) { - if (a.isZero()) return a.clone() - var mod3 = this.m.andln(3) - assert(mod3 % 2 === 1) - if (mod3 === 3) { - var pow = this.m.add(new BN(1)).iushrn(2) - return this.pow(a, pow) - } - var q = this.m.subn(1) - var s = 0 - while (!q.isZero() && q.andln(1) === 0) { - s++ - q.iushrn(1) - } - assert(!q.isZero()) - var one = new BN(1).toRed(this) - var nOne = one.redNeg() - var lpow = this.m.subn(1).iushrn(1) - var z = this.m.bitLength() - z = new BN(2 * z * z).toRed(this) - while (this.pow(z, lpow).cmp(nOne) !== 0) { - z.redIAdd(nOne) - } - var c = this.pow(z, q) - var r = this.pow(a, q.addn(1).iushrn(1)) - var t = this.pow(a, q) - var m = s - while (t.cmp(one) !== 0) { - var tmp = t - for (var i = 0; tmp.cmp(one) !== 0; i++) { - tmp = tmp.redSqr() - } - assert(i < m) - var b = this.pow(c, new BN(1).iushln(m - i - 1)) - r = r.redMul(b) - c = b.redSqr() - t = t.redMul(c) - m = i - } - return r - } - Red.prototype.invm = function invm(a) { - var inv = a._invmp(this.m) - if (inv.negative !== 0) { - inv.negative = 0 - return this.imod(inv).redNeg() - } else { - return this.imod(inv) - } - } - Red.prototype.pow = function pow(a, num) { - if (num.isZero()) return new BN(1).toRed(this) - if (num.cmpn(1) === 0) return a.clone() - var windowSize = 4 - var wnd = new Array(1 << windowSize) - wnd[0] = new BN(1).toRed(this) - wnd[1] = a - for (var i = 2; i < wnd.length; i++) { - wnd[i] = this.mul(wnd[i - 1], a) - } - var res = wnd[0] - var current = 0 - var currentLen = 0 - var start = num.bitLength() % 26 - if (start === 0) { - start = 26 - } - for (i = num.length - 1; i >= 0; i--) { - var word = num.words[i] - for (var j = start - 1; j >= 0; j--) { - var bit = (word >> j) & 1 - if (res !== wnd[0]) { - res = this.sqr(res) - } - if (bit === 0 && current === 0) { - currentLen = 0 - continue - } - current <<= 1 - current |= bit - currentLen++ - if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue - res = this.mul(res, wnd[current]) - currentLen = 0 - current = 0 - } - start = 26 - } - return res - } - Red.prototype.convertTo = function convertTo(num) { - var r = num.umod(this.m) - return r === num ? r.clone() : r - } - Red.prototype.convertFrom = function convertFrom(num) { - var res = num.clone() - res.red = null - return res - } - BN.mont = function mont(num) { - return new Mont(num) - } - function Mont(m) { - Red.call(this, m) - this.shift = this.m.bitLength() - if (this.shift % 26 !== 0) { - this.shift += 26 - (this.shift % 26) - } - this.r = new BN(1).iushln(this.shift) - this.r2 = this.imod(this.r.sqr()) - this.rinv = this.r._invmp(this.m) - this.minv = this.rinv.mul(this.r).isubn(1).div(this.m) - this.minv = this.minv.umod(this.r) - this.minv = this.r.sub(this.minv) - } - inherits(Mont, Red) - Mont.prototype.convertTo = function convertTo(num) { - return this.imod(num.ushln(this.shift)) - } - Mont.prototype.convertFrom = function convertFrom(num) { - var r = this.imod(num.mul(this.rinv)) - r.red = null - return r - } - Mont.prototype.imul = function imul(a, b) { - if (a.isZero() || b.isZero()) { - a.words[0] = 0 - a.length = 1 - return a - } - var t = a.imul(b) - var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m) - var u = t.isub(c).iushrn(this.shift) - var res = u - if (u.cmp(this.m) >= 0) { - res = u.isub(this.m) - } else if (u.cmpn(0) < 0) { - res = u.iadd(this.m) - } - return res._forceRed(this) - } - Mont.prototype.mul = function mul(a, b) { - if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this) - var t = a.mul(b) - var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m) - var u = t.isub(c).iushrn(this.shift) - var res = u - if (u.cmp(this.m) >= 0) { - res = u.isub(this.m) - } else if (u.cmpn(0) < 0) { - res = u.iadd(this.m) - } - return res._forceRed(this) - } - Mont.prototype.invm = function invm(a) { - var res = this.imod(a._invmp(this.m).mul(this.r2)) - return res._forceRed(this) - } - })(typeof module === 'undefined' || module, this) - }, - { buffer: 49 } - ], - 16: [ - function (require, module, exports) { - module.exports = require('./lib/axios') - }, - { './lib/axios': 18 } - ], - 17: [ - function (require, module, exports) { - 'use strict' - var utils = require('./../utils') - var settle = require('./../core/settle') - var cookies = require('./../helpers/cookies') - var buildURL = require('./../helpers/buildURL') - var buildFullPath = require('../core/buildFullPath') - var parseHeaders = require('./../helpers/parseHeaders') - var isURLSameOrigin = require('./../helpers/isURLSameOrigin') - var createError = require('../core/createError') - var defaults = require('../defaults') - var Cancel = require('../cancel/Cancel') - module.exports = function xhrAdapter(config) { - return new Promise(function dispatchXhrRequest(resolve, reject) { - var requestData = config.data - var requestHeaders = config.headers - var responseType = config.responseType - var onCanceled - function done() { - if (config.cancelToken) { - config.cancelToken.unsubscribe(onCanceled) - } - if (config.signal) { - config.signal.removeEventListener('abort', onCanceled) - } - } - if (utils.isFormData(requestData)) { - delete requestHeaders['Content-Type'] - } - var request = new XMLHttpRequest() - if (config.auth) { - var username = config.auth.username || '' - var password = config.auth.password - ? unescape(encodeURIComponent(config.auth.password)) - : '' - requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password) - } - var fullPath = buildFullPath(config.baseURL, config.url) - request.open( - config.method.toUpperCase(), - buildURL(fullPath, config.params, config.paramsSerializer), - true - ) - request.timeout = config.timeout - function onloadend() { - if (!request) { - return - } - var responseHeaders = - 'getAllResponseHeaders' in request - ? parseHeaders(request.getAllResponseHeaders()) - : null - var responseData = - !responseType || responseType === 'text' || responseType === 'json' - ? request.responseText - : request.response - var response = { - data: responseData, - status: request.status, - statusText: request.statusText, - headers: responseHeaders, - config: config, - request: request - } - settle( - function _resolve(value) { - resolve(value) - done() - }, - function _reject(err) { - reject(err) - done() - }, - response - ) - request = null - } - if ('onloadend' in request) { - request.onloadend = onloadend - } else { - request.onreadystatechange = function handleLoad() { - if (!request || request.readyState !== 4) { - return - } - if ( - request.status === 0 && - !(request.responseURL && request.responseURL.indexOf('file:') === 0) - ) { - return - } - setTimeout(onloadend) - } - } - request.onabort = function handleAbort() { - if (!request) { - return - } - reject(createError('Request aborted', config, 'ECONNABORTED', request)) - request = null - } - request.onerror = function handleError() { - reject(createError('Network Error', config, null, request)) - request = null - } - request.ontimeout = function handleTimeout() { - var timeoutErrorMessage = config.timeout - ? 'timeout of ' + config.timeout + 'ms exceeded' - : 'timeout exceeded' - var transitional = config.transitional || defaults.transitional - if (config.timeoutErrorMessage) { - timeoutErrorMessage = config.timeoutErrorMessage - } - reject( - createError( - timeoutErrorMessage, - config, - transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED', - request - ) - ) - request = null - } - if (utils.isStandardBrowserEnv()) { - var xsrfValue = - (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName - ? cookies.read(config.xsrfCookieName) - : undefined - if (xsrfValue) { - requestHeaders[config.xsrfHeaderName] = xsrfValue - } - } - if ('setRequestHeader' in request) { - utils.forEach(requestHeaders, function setRequestHeader(val, key) { - if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { - delete requestHeaders[key] - } else { - request.setRequestHeader(key, val) - } - }) - } - if (!utils.isUndefined(config.withCredentials)) { - request.withCredentials = !!config.withCredentials - } - if (responseType && responseType !== 'json') { - request.responseType = config.responseType - } - if (typeof config.onDownloadProgress === 'function') { - request.addEventListener('progress', config.onDownloadProgress) - } - if (typeof config.onUploadProgress === 'function' && request.upload) { - request.upload.addEventListener('progress', config.onUploadProgress) - } - if (config.cancelToken || config.signal) { - onCanceled = function (cancel) { - if (!request) { - return - } - reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel) - request.abort() - request = null - } - config.cancelToken && config.cancelToken.subscribe(onCanceled) - if (config.signal) { - config.signal.aborted - ? onCanceled() - : config.signal.addEventListener('abort', onCanceled) - } - } - if (!requestData) { - requestData = null - } - request.send(requestData) - }) - } - }, - { - '../cancel/Cancel': 19, - '../core/buildFullPath': 24, - '../core/createError': 25, - '../defaults': 31, - './../core/settle': 29, - './../helpers/buildURL': 34, - './../helpers/cookies': 36, - './../helpers/isURLSameOrigin': 39, - './../helpers/parseHeaders': 41, - './../utils': 44 - } - ], - 18: [ - function (require, module, exports) { - 'use strict' - var utils = require('./utils') - var bind = require('./helpers/bind') - var Axios = require('./core/Axios') - var mergeConfig = require('./core/mergeConfig') - var defaults = require('./defaults') - function createInstance(defaultConfig) { - var context = new Axios(defaultConfig) - var instance = bind(Axios.prototype.request, context) - utils.extend(instance, Axios.prototype, context) - utils.extend(instance, context) - instance.create = function create(instanceConfig) { - return createInstance(mergeConfig(defaultConfig, instanceConfig)) - } - return instance - } - var axios = createInstance(defaults) - axios.Axios = Axios - axios.Cancel = require('./cancel/Cancel') - axios.CancelToken = require('./cancel/CancelToken') - axios.isCancel = require('./cancel/isCancel') - axios.VERSION = require('./env/data').version - axios.all = function all(promises) { - return Promise.all(promises) - } - axios.spread = require('./helpers/spread') - axios.isAxiosError = require('./helpers/isAxiosError') - module.exports = axios - module.exports.default = axios - }, - { - './cancel/Cancel': 19, - './cancel/CancelToken': 20, - './cancel/isCancel': 21, - './core/Axios': 22, - './core/mergeConfig': 28, - './defaults': 31, - './env/data': 32, - './helpers/bind': 33, - './helpers/isAxiosError': 38, - './helpers/spread': 42, - './utils': 44 - } - ], - 19: [ - function (require, module, exports) { - 'use strict' - function Cancel(message) { - this.message = message - } - Cancel.prototype.toString = function toString() { - return 'Cancel' + (this.message ? ': ' + this.message : '') - } - Cancel.prototype.__CANCEL__ = true - module.exports = Cancel - }, - {} - ], - 20: [ - function (require, module, exports) { - 'use strict' - var Cancel = require('./Cancel') - function CancelToken(executor) { - if (typeof executor !== 'function') { - throw new TypeError('executor must be a function.') - } - var resolvePromise - this.promise = new Promise(function promiseExecutor(resolve) { - resolvePromise = resolve - }) - var token = this - this.promise.then(function (cancel) { - if (!token._listeners) return - var i - var l = token._listeners.length - for (i = 0; i < l; i++) { - token._listeners[i](cancel) - } - token._listeners = null - }) - this.promise.then = function (onfulfilled) { - var _resolve - var promise = new Promise(function (resolve) { - token.subscribe(resolve) - _resolve = resolve - }).then(onfulfilled) - promise.cancel = function reject() { - token.unsubscribe(_resolve) - } - return promise - } - executor(function cancel(message) { - if (token.reason) { - return - } - token.reason = new Cancel(message) - resolvePromise(token.reason) - }) - } - CancelToken.prototype.throwIfRequested = function throwIfRequested() { - if (this.reason) { - throw this.reason - } - } - CancelToken.prototype.subscribe = function subscribe(listener) { - if (this.reason) { - listener(this.reason) - return - } - if (this._listeners) { - this._listeners.push(listener) - } else { - this._listeners = [listener] - } - } - CancelToken.prototype.unsubscribe = function unsubscribe(listener) { - if (!this._listeners) { - return - } - var index = this._listeners.indexOf(listener) - if (index !== -1) { - this._listeners.splice(index, 1) - } - } - CancelToken.source = function source() { - var cancel - var token = new CancelToken(function executor(c) { - cancel = c - }) - return { token: token, cancel: cancel } - } - module.exports = CancelToken - }, - { './Cancel': 19 } - ], - 21: [ - function (require, module, exports) { - 'use strict' - module.exports = function isCancel(value) { - return !!(value && value.__CANCEL__) - } - }, - {} - ], - 22: [ - function (require, module, exports) { - 'use strict' - var utils = require('./../utils') - var buildURL = require('../helpers/buildURL') - var InterceptorManager = require('./InterceptorManager') - var dispatchRequest = require('./dispatchRequest') - var mergeConfig = require('./mergeConfig') - var validator = require('../helpers/validator') - var validators = validator.validators - function Axios(instanceConfig) { - this.defaults = instanceConfig - this.interceptors = { - request: new InterceptorManager(), - response: new InterceptorManager() - } - } - Axios.prototype.request = function request(config) { - if (typeof config === 'string') { - config = arguments[1] || {} - config.url = arguments[0] - } else { - config = config || {} - } - config = mergeConfig(this.defaults, config) - if (config.method) { - config.method = config.method.toLowerCase() - } else if (this.defaults.method) { - config.method = this.defaults.method.toLowerCase() - } else { - config.method = 'get' - } - var transitional = config.transitional - if (transitional !== undefined) { - validator.assertOptions( - transitional, - { - silentJSONParsing: validators.transitional(validators.boolean), - forcedJSONParsing: validators.transitional(validators.boolean), - clarifyTimeoutError: validators.transitional(validators.boolean) - }, - false - ) - } - var requestInterceptorChain = [] - var synchronousRequestInterceptors = true - this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { - if ( - typeof interceptor.runWhen === 'function' && - interceptor.runWhen(config) === false - ) { - return - } - synchronousRequestInterceptors = - synchronousRequestInterceptors && interceptor.synchronous - requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected) - }) - var responseInterceptorChain = [] - this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { - responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected) - }) - var promise - if (!synchronousRequestInterceptors) { - var chain = [dispatchRequest, undefined] - Array.prototype.unshift.apply(chain, requestInterceptorChain) - chain = chain.concat(responseInterceptorChain) - promise = Promise.resolve(config) - while (chain.length) { - promise = promise.then(chain.shift(), chain.shift()) - } - return promise - } - var newConfig = config - while (requestInterceptorChain.length) { - var onFulfilled = requestInterceptorChain.shift() - var onRejected = requestInterceptorChain.shift() - try { - newConfig = onFulfilled(newConfig) - } catch (error) { - onRejected(error) - break - } - } - try { - promise = dispatchRequest(newConfig) - } catch (error) { - return Promise.reject(error) - } - while (responseInterceptorChain.length) { - promise = promise.then( - responseInterceptorChain.shift(), - responseInterceptorChain.shift() - ) - } - return promise - } - Axios.prototype.getUri = function getUri(config) { - config = mergeConfig(this.defaults, config) - return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, '') - } - utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { - Axios.prototype[method] = function (url, config) { - return this.request( - mergeConfig(config || {}, { method: method, url: url, data: (config || {}).data }) - ) - } - }) - utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { - Axios.prototype[method] = function (url, data, config) { - return this.request( - mergeConfig(config || {}, { method: method, url: url, data: data }) - ) - } - }) - module.exports = Axios - }, - { - '../helpers/buildURL': 34, - '../helpers/validator': 43, - './../utils': 44, - './InterceptorManager': 23, - './dispatchRequest': 26, - './mergeConfig': 28 - } - ], - 23: [ - function (require, module, exports) { - 'use strict' - var utils = require('./../utils') - function InterceptorManager() { - this.handlers = [] - } - InterceptorManager.prototype.use = function use(fulfilled, rejected, options) { - this.handlers.push({ - fulfilled: fulfilled, - rejected: rejected, - synchronous: options ? options.synchronous : false, - runWhen: options ? options.runWhen : null - }) - return this.handlers.length - 1 - } - InterceptorManager.prototype.eject = function eject(id) { - if (this.handlers[id]) { - this.handlers[id] = null - } - } - InterceptorManager.prototype.forEach = function forEach(fn) { - utils.forEach(this.handlers, function forEachHandler(h) { - if (h !== null) { - fn(h) - } - }) - } - module.exports = InterceptorManager - }, - { './../utils': 44 } - ], - 24: [ - function (require, module, exports) { - 'use strict' - var isAbsoluteURL = require('../helpers/isAbsoluteURL') - var combineURLs = require('../helpers/combineURLs') - module.exports = function buildFullPath(baseURL, requestedURL) { - if (baseURL && !isAbsoluteURL(requestedURL)) { - return combineURLs(baseURL, requestedURL) - } - return requestedURL - } - }, - { '../helpers/combineURLs': 35, '../helpers/isAbsoluteURL': 37 } - ], - 25: [ - function (require, module, exports) { - 'use strict' - var enhanceError = require('./enhanceError') - module.exports = function createError(message, config, code, request, response) { - var error = new Error(message) - return enhanceError(error, config, code, request, response) - } - }, - { './enhanceError': 27 } - ], - 26: [ - function (require, module, exports) { - 'use strict' - var utils = require('./../utils') - var transformData = require('./transformData') - var isCancel = require('../cancel/isCancel') - var defaults = require('../defaults') - var Cancel = require('../cancel/Cancel') - function throwIfCancellationRequested(config) { - if (config.cancelToken) { - config.cancelToken.throwIfRequested() - } - if (config.signal && config.signal.aborted) { - throw new Cancel('canceled') - } - } - module.exports = function dispatchRequest(config) { - throwIfCancellationRequested(config) - config.headers = config.headers || {} - config.data = transformData.call( - config, - config.data, - config.headers, - config.transformRequest - ) - config.headers = utils.merge( - config.headers.common || {}, - config.headers[config.method] || {}, - config.headers - ) - utils.forEach( - ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], - function cleanHeaderConfig(method) { - delete config.headers[method] - } - ) - var adapter = config.adapter || defaults.adapter - return adapter(config).then( - function onAdapterResolution(response) { - throwIfCancellationRequested(config) - response.data = transformData.call( - config, - response.data, - response.headers, - config.transformResponse - ) - return response - }, - function onAdapterRejection(reason) { - if (!isCancel(reason)) { - throwIfCancellationRequested(config) - if (reason && reason.response) { - reason.response.data = transformData.call( - config, - reason.response.data, - reason.response.headers, - config.transformResponse - ) - } - } - return Promise.reject(reason) - } - ) - } - }, - { - '../cancel/Cancel': 19, - '../cancel/isCancel': 21, - '../defaults': 31, - './../utils': 44, - './transformData': 30 - } - ], - 27: [ - function (require, module, exports) { - 'use strict' - module.exports = function enhanceError(error, config, code, request, response) { - error.config = config - if (code) { - error.code = code - } - error.request = request - error.response = response - error.isAxiosError = true - error.toJSON = function toJSON() { - return { - message: this.message, - name: this.name, - description: this.description, - number: this.number, - fileName: this.fileName, - lineNumber: this.lineNumber, - columnNumber: this.columnNumber, - stack: this.stack, - config: this.config, - code: this.code, - status: this.response && this.response.status ? this.response.status : null - } - } - return error - } - }, - {} - ], - 28: [ - function (require, module, exports) { - 'use strict' - var utils = require('../utils') - module.exports = function mergeConfig(config1, config2) { - config2 = config2 || {} - var config = {} - function getMergedValue(target, source) { - if (utils.isPlainObject(target) && utils.isPlainObject(source)) { - return utils.merge(target, source) - } else if (utils.isPlainObject(source)) { - return utils.merge({}, source) - } else if (utils.isArray(source)) { - return source.slice() - } - return source - } - function mergeDeepProperties(prop) { - if (!utils.isUndefined(config2[prop])) { - return getMergedValue(config1[prop], config2[prop]) - } else if (!utils.isUndefined(config1[prop])) { - return getMergedValue(undefined, config1[prop]) - } - } - function valueFromConfig2(prop) { - if (!utils.isUndefined(config2[prop])) { - return getMergedValue(undefined, config2[prop]) - } - } - function defaultToConfig2(prop) { - if (!utils.isUndefined(config2[prop])) { - return getMergedValue(undefined, config2[prop]) - } else if (!utils.isUndefined(config1[prop])) { - return getMergedValue(undefined, config1[prop]) - } - } - function mergeDirectKeys(prop) { - if (prop in config2) { - return getMergedValue(config1[prop], config2[prop]) - } else if (prop in config1) { - return getMergedValue(undefined, config1[prop]) - } - } - var mergeMap = { - url: valueFromConfig2, - method: valueFromConfig2, - data: valueFromConfig2, - baseURL: defaultToConfig2, - transformRequest: defaultToConfig2, - transformResponse: defaultToConfig2, - paramsSerializer: defaultToConfig2, - timeout: defaultToConfig2, - timeoutMessage: defaultToConfig2, - withCredentials: defaultToConfig2, - adapter: defaultToConfig2, - responseType: defaultToConfig2, - xsrfCookieName: defaultToConfig2, - xsrfHeaderName: defaultToConfig2, - onUploadProgress: defaultToConfig2, - onDownloadProgress: defaultToConfig2, - decompress: defaultToConfig2, - maxContentLength: defaultToConfig2, - maxBodyLength: defaultToConfig2, - transport: defaultToConfig2, - httpAgent: defaultToConfig2, - httpsAgent: defaultToConfig2, - cancelToken: defaultToConfig2, - socketPath: defaultToConfig2, - responseEncoding: defaultToConfig2, - validateStatus: mergeDirectKeys - } - utils.forEach( - Object.keys(config1).concat(Object.keys(config2)), - function computeConfigValue(prop) { - var merge = mergeMap[prop] || mergeDeepProperties - var configValue = merge(prop) - ;(utils.isUndefined(configValue) && merge !== mergeDirectKeys) || - (config[prop] = configValue) - } - ) - return config - } - }, - { '../utils': 44 } - ], - 29: [ - function (require, module, exports) { - 'use strict' - var createError = require('./createError') - module.exports = function settle(resolve, reject, response) { - var validateStatus = response.config.validateStatus - if (!response.status || !validateStatus || validateStatus(response.status)) { - resolve(response) - } else { - reject( - createError( - 'Request failed with status code ' + response.status, - response.config, - null, - response.request, - response - ) - ) - } - } - }, - { './createError': 25 } - ], - 30: [ - function (require, module, exports) { - 'use strict' - var utils = require('./../utils') - var defaults = require('./../defaults') - module.exports = function transformData(data, headers, fns) { - var context = this || defaults - utils.forEach(fns, function transform(fn) { - data = fn.call(context, data, headers) - }) - return data - } - }, - { './../defaults': 31, './../utils': 44 } - ], - 31: [ - function (require, module, exports) { - ;(function (process) { - ;(function () { - 'use strict' - var utils = require('./utils') - var normalizeHeaderName = require('./helpers/normalizeHeaderName') - var enhanceError = require('./core/enhanceError') - var DEFAULT_CONTENT_TYPE = { 'Content-Type': 'application/x-www-form-urlencoded' } - function setContentTypeIfUnset(headers, value) { - if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { - headers['Content-Type'] = value - } - } - function getDefaultAdapter() { - var adapter - if (typeof XMLHttpRequest !== 'undefined') { - adapter = require('./adapters/xhr') - } else if ( - typeof process !== 'undefined' && - Object.prototype.toString.call(process) === '[object process]' - ) { - adapter = require('./adapters/http') - } - return adapter - } - function stringifySafely(rawValue, parser, encoder) { - if (utils.isString(rawValue)) { - try { - ;(parser || JSON.parse)(rawValue) - return utils.trim(rawValue) - } catch (e) { - if (e.name !== 'SyntaxError') { - throw e - } - } - } - return (encoder || JSON.stringify)(rawValue) - } - var defaults = { - transitional: { - silentJSONParsing: true, - forcedJSONParsing: true, - clarifyTimeoutError: false - }, - adapter: getDefaultAdapter(), - transformRequest: [ - function transformRequest(data, headers) { - normalizeHeaderName(headers, 'Accept') - normalizeHeaderName(headers, 'Content-Type') - if ( - utils.isFormData(data) || - utils.isArrayBuffer(data) || - utils.isBuffer(data) || - utils.isStream(data) || - utils.isFile(data) || - utils.isBlob(data) - ) { - return data - } - if (utils.isArrayBufferView(data)) { - return data.buffer - } - if (utils.isURLSearchParams(data)) { - setContentTypeIfUnset( - headers, - 'application/x-www-form-urlencoded;charset=utf-8' - ) - return data.toString() - } - if ( - utils.isObject(data) || - (headers && headers['Content-Type'] === 'application/json') - ) { - setContentTypeIfUnset(headers, 'application/json') - return stringifySafely(data) - } - return data - } - ], - transformResponse: [ - function transformResponse(data) { - var transitional = this.transitional || defaults.transitional - var silentJSONParsing = transitional && transitional.silentJSONParsing - var forcedJSONParsing = transitional && transitional.forcedJSONParsing - var strictJSONParsing = !silentJSONParsing && this.responseType === 'json' - if ( - strictJSONParsing || - (forcedJSONParsing && utils.isString(data) && data.length) - ) { - try { - return JSON.parse(data) - } catch (e) { - if (strictJSONParsing) { - if (e.name === 'SyntaxError') { - throw enhanceError(e, this, 'E_JSON_PARSE') - } - throw e - } - } - } - return data - } - ], - timeout: 0, - xsrfCookieName: 'XSRF-TOKEN', - xsrfHeaderName: 'X-XSRF-TOKEN', - maxContentLength: -1, - maxBodyLength: -1, - validateStatus: function validateStatus(status) { - return status >= 200 && status < 300 - }, - headers: { common: { Accept: 'application/json, text/plain, */*' } } - } - utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { - defaults.headers[method] = {} - }) - utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { - defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE) - }) - module.exports = defaults - }.call(this)) - }.call(this, require('_process'))) - }, - { - './adapters/http': 17, - './adapters/xhr': 17, - './core/enhanceError': 27, - './helpers/normalizeHeaderName': 40, - './utils': 44, - _process: 171 - } - ], - 32: [ - function (require, module, exports) { - module.exports = { version: '0.24.0' } - }, - {} - ], - 33: [ - function (require, module, exports) { - 'use strict' - module.exports = function bind(fn, thisArg) { - return function wrap() { - var args = new Array(arguments.length) - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - return fn.apply(thisArg, args) - } - } - }, - {} - ], - 34: [ - function (require, module, exports) { - 'use strict' - var utils = require('./../utils') - function encode(val) { - return encodeURIComponent(val) - .replace(/%3A/gi, ':') - .replace(/%24/g, '$') - .replace(/%2C/gi, ',') - .replace(/%20/g, '+') - .replace(/%5B/gi, '[') - .replace(/%5D/gi, ']') - } - module.exports = function buildURL(url, params, paramsSerializer) { - if (!params) { - return url - } - var serializedParams - if (paramsSerializer) { - serializedParams = paramsSerializer(params) - } else if (utils.isURLSearchParams(params)) { - serializedParams = params.toString() - } else { - var parts = [] - utils.forEach(params, function serialize(val, key) { - if (val === null || typeof val === 'undefined') { - return - } - if (utils.isArray(val)) { - key = key + '[]' - } else { - val = [val] - } - utils.forEach(val, function parseValue(v) { - if (utils.isDate(v)) { - v = v.toISOString() - } else if (utils.isObject(v)) { - v = JSON.stringify(v) - } - parts.push(encode(key) + '=' + encode(v)) - }) - }) - serializedParams = parts.join('&') - } - if (serializedParams) { - var hashmarkIndex = url.indexOf('#') - if (hashmarkIndex !== -1) { - url = url.slice(0, hashmarkIndex) - } - url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams - } - return url - } - }, - { './../utils': 44 } - ], - 35: [ - function (require, module, exports) { - 'use strict' - module.exports = function combineURLs(baseURL, relativeURL) { - return relativeURL - ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') - : baseURL - } - }, - {} - ], - 36: [ - function (require, module, exports) { - 'use strict' - var utils = require('./../utils') - module.exports = utils.isStandardBrowserEnv() - ? (function standardBrowserEnv() { - return { - write: function write(name, value, expires, path, domain, secure) { - var cookie = [] - cookie.push(name + '=' + encodeURIComponent(value)) - if (utils.isNumber(expires)) { - cookie.push('expires=' + new Date(expires).toGMTString()) - } - if (utils.isString(path)) { - cookie.push('path=' + path) - } - if (utils.isString(domain)) { - cookie.push('domain=' + domain) - } - if (secure === true) { - cookie.push('secure') - } - document.cookie = cookie.join('; ') - }, - read: function read(name) { - var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')) - return match ? decodeURIComponent(match[3]) : null - }, - remove: function remove(name) { - this.write(name, '', Date.now() - 864e5) - } - } - })() - : (function nonStandardBrowserEnv() { - return { - write: function write() {}, - read: function read() { - return null - }, - remove: function remove() {} - } - })() - }, - { './../utils': 44 } - ], - 37: [ - function (require, module, exports) { - 'use strict' - module.exports = function isAbsoluteURL(url) { - return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url) - } - }, - {} - ], - 38: [ - function (require, module, exports) { - 'use strict' - module.exports = function isAxiosError(payload) { - return typeof payload === 'object' && payload.isAxiosError === true - } - }, - {} - ], - 39: [ - function (require, module, exports) { - 'use strict' - var utils = require('./../utils') - module.exports = utils.isStandardBrowserEnv() - ? (function standardBrowserEnv() { - var msie = /(msie|trident)/i.test(navigator.userAgent) - var urlParsingNode = document.createElement('a') - var originURL - function resolveURL(url) { - var href = url - if (msie) { - urlParsingNode.setAttribute('href', href) - href = urlParsingNode.href - } - urlParsingNode.setAttribute('href', href) - return { - href: urlParsingNode.href, - protocol: urlParsingNode.protocol - ? urlParsingNode.protocol.replace(/:$/, '') - : '', - host: urlParsingNode.host, - search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', - hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', - hostname: urlParsingNode.hostname, - port: urlParsingNode.port, - pathname: - urlParsingNode.pathname.charAt(0) === '/' - ? urlParsingNode.pathname - : '/' + urlParsingNode.pathname - } - } - originURL = resolveURL(window.location.href) - return function isURLSameOrigin(requestURL) { - var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL - return parsed.protocol === originURL.protocol && parsed.host === originURL.host - } - })() - : (function nonStandardBrowserEnv() { - return function isURLSameOrigin() { - return true - } - })() - }, - { './../utils': 44 } - ], - 40: [ - function (require, module, exports) { - 'use strict' - var utils = require('../utils') - module.exports = function normalizeHeaderName(headers, normalizedName) { - utils.forEach(headers, function processHeader(value, name) { - if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { - headers[normalizedName] = value - delete headers[name] - } - }) - } - }, - { '../utils': 44 } - ], - 41: [ - function (require, module, exports) { - 'use strict' - var utils = require('./../utils') - var ignoreDuplicateOf = [ - 'age', - 'authorization', - 'content-length', - 'content-type', - 'etag', - 'expires', - 'from', - 'host', - 'if-modified-since', - 'if-unmodified-since', - 'last-modified', - 'location', - 'max-forwards', - 'proxy-authorization', - 'referer', - 'retry-after', - 'user-agent' - ] - module.exports = function parseHeaders(headers) { - var parsed = {} - var key - var val - var i - if (!headers) { - return parsed - } - utils.forEach(headers.split('\n'), function parser(line) { - i = line.indexOf(':') - key = utils.trim(line.substr(0, i)).toLowerCase() - val = utils.trim(line.substr(i + 1)) - if (key) { - if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { - return - } - if (key === 'set-cookie') { - parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]) - } else { - parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val - } - } - }) - return parsed - } - }, - { './../utils': 44 } - ], - 42: [ - function (require, module, exports) { - 'use strict' - module.exports = function spread(callback) { - return function wrap(arr) { - return callback.apply(null, arr) - } - } - }, - {} - ], - 43: [ - function (require, module, exports) { - 'use strict' - var VERSION = require('../env/data').version - var validators = {} - ;['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function ( - type, - i - ) { - validators[type] = function validator(thing) { - return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type - } - }) - var deprecatedWarnings = {} - validators.transitional = function transitional(validator, version, message) { - function formatMessage(opt, desc) { - return ( - '[Axios v' + - VERSION + - "] Transitional option '" + - opt + - "'" + - desc + - (message ? '. ' + message : '') - ) - } - return function (value, opt, opts) { - if (validator === false) { - throw new Error( - formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')) - ) - } - if (version && !deprecatedWarnings[opt]) { - deprecatedWarnings[opt] = true - console.warn( - formatMessage( - opt, - ' has been deprecated since v' + - version + - ' and will be removed in the near future' - ) - ) - } - return validator ? validator(value, opt, opts) : true - } - } - function assertOptions(options, schema, allowUnknown) { - if (typeof options !== 'object') { - throw new TypeError('options must be an object') - } - var keys = Object.keys(options) - var i = keys.length - while (i-- > 0) { - var opt = keys[i] - var validator = schema[opt] - if (validator) { - var value = options[opt] - var result = value === undefined || validator(value, opt, options) - if (result !== true) { - throw new TypeError('option ' + opt + ' must be ' + result) - } - continue - } - if (allowUnknown !== true) { - throw Error('Unknown option ' + opt) - } - } - } - module.exports = { assertOptions: assertOptions, validators: validators } - }, - { '../env/data': 32 } - ], - 44: [ - function (require, module, exports) { - 'use strict' - var bind = require('./helpers/bind') - var toString = Object.prototype.toString - function isArray(val) { - return toString.call(val) === '[object Array]' - } - function isUndefined(val) { - return typeof val === 'undefined' - } - function isBuffer(val) { - return ( - val !== null && - !isUndefined(val) && - val.constructor !== null && - !isUndefined(val.constructor) && - typeof val.constructor.isBuffer === 'function' && - val.constructor.isBuffer(val) - ) - } - function isArrayBuffer(val) { - return toString.call(val) === '[object ArrayBuffer]' - } - function isFormData(val) { - return typeof FormData !== 'undefined' && val instanceof FormData - } - function isArrayBufferView(val) { - var result - if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) { - result = ArrayBuffer.isView(val) - } else { - result = val && val.buffer && val.buffer instanceof ArrayBuffer - } - return result - } - function isString(val) { - return typeof val === 'string' - } - function isNumber(val) { - return typeof val === 'number' - } - function isObject(val) { - return val !== null && typeof val === 'object' - } - function isPlainObject(val) { - if (toString.call(val) !== '[object Object]') { - return false - } - var prototype = Object.getPrototypeOf(val) - return prototype === null || prototype === Object.prototype - } - function isDate(val) { - return toString.call(val) === '[object Date]' - } - function isFile(val) { - return toString.call(val) === '[object File]' - } - function isBlob(val) { - return toString.call(val) === '[object Blob]' - } - function isFunction(val) { - return toString.call(val) === '[object Function]' - } - function isStream(val) { - return isObject(val) && isFunction(val.pipe) - } - function isURLSearchParams(val) { - return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams - } - function trim(str) { - return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, '') - } - function isStandardBrowserEnv() { - if ( - typeof navigator !== 'undefined' && - (navigator.product === 'ReactNative' || - navigator.product === 'NativeScript' || - navigator.product === 'NS') - ) { - return false - } - return typeof window !== 'undefined' && typeof document !== 'undefined' - } - function forEach(obj, fn) { - if (obj === null || typeof obj === 'undefined') { - return - } - if (typeof obj !== 'object') { - obj = [obj] - } - if (isArray(obj)) { - for (var i = 0, l = obj.length; i < l; i++) { - fn.call(null, obj[i], i, obj) - } - } else { - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) { - fn.call(null, obj[key], key, obj) - } - } - } - } - function merge() { - var result = {} - function assignValue(val, key) { - if (isPlainObject(result[key]) && isPlainObject(val)) { - result[key] = merge(result[key], val) - } else if (isPlainObject(val)) { - result[key] = merge({}, val) - } else if (isArray(val)) { - result[key] = val.slice() - } else { - result[key] = val - } - } - for (var i = 0, l = arguments.length; i < l; i++) { - forEach(arguments[i], assignValue) - } - return result - } - function extend(a, b, thisArg) { - forEach(b, function assignValue(val, key) { - if (thisArg && typeof val === 'function') { - a[key] = bind(val, thisArg) - } else { - a[key] = val - } - }) - return a - } - function stripBOM(content) { - if (content.charCodeAt(0) === 65279) { - content = content.slice(1) - } - return content - } - module.exports = { - isArray: isArray, - isArrayBuffer: isArrayBuffer, - isBuffer: isBuffer, - isFormData: isFormData, - isArrayBufferView: isArrayBufferView, - isString: isString, - isNumber: isNumber, - isObject: isObject, - isPlainObject: isPlainObject, - isUndefined: isUndefined, - isDate: isDate, - isFile: isFile, - isBlob: isBlob, - isFunction: isFunction, - isStream: isStream, - isURLSearchParams: isURLSearchParams, - isStandardBrowserEnv: isStandardBrowserEnv, - forEach: forEach, - merge: merge, - extend: extend, - trim: trim, - stripBOM: stripBOM - } - }, - { './helpers/bind': 33 } - ], - 45: [ - function (require, module, exports) { - 'use strict' - var _Buffer = require('safe-buffer').Buffer - function base(ALPHABET) { - if (ALPHABET.length >= 255) { - throw new TypeError('Alphabet too long') - } - var BASE_MAP = new Uint8Array(256) - for (var j = 0; j < BASE_MAP.length; j++) { - BASE_MAP[j] = 255 - } - for (var i = 0; i < ALPHABET.length; i++) { - var x = ALPHABET.charAt(i) - var xc = x.charCodeAt(0) - if (BASE_MAP[xc] !== 255) { - throw new TypeError(x + ' is ambiguous') - } - BASE_MAP[xc] = i - } - var BASE = ALPHABET.length - var LEADER = ALPHABET.charAt(0) - var FACTOR = Math.log(BASE) / Math.log(256) - var iFACTOR = Math.log(256) / Math.log(BASE) - function encode(source) { - if (Array.isArray(source) || source instanceof Uint8Array) { - source = _Buffer.from(source) - } - if (!_Buffer.isBuffer(source)) { - throw new TypeError('Expected Buffer') - } - if (source.length === 0) { - return '' - } - var zeroes = 0 - var length = 0 - var pbegin = 0 - var pend = source.length - while (pbegin !== pend && source[pbegin] === 0) { - pbegin++ - zeroes++ - } - var size = ((pend - pbegin) * iFACTOR + 1) >>> 0 - var b58 = new Uint8Array(size) - while (pbegin !== pend) { - var carry = source[pbegin] - var i = 0 - for (var it1 = size - 1; (carry !== 0 || i < length) && it1 !== -1; it1--, i++) { - carry += (256 * b58[it1]) >>> 0 - b58[it1] = carry % BASE >>> 0 - carry = (carry / BASE) >>> 0 - } - if (carry !== 0) { - throw new Error('Non-zero carry') - } - length = i - pbegin++ - } - var it2 = size - length - while (it2 !== size && b58[it2] === 0) { - it2++ - } - var str = LEADER.repeat(zeroes) - for (; it2 < size; ++it2) { - str += ALPHABET.charAt(b58[it2]) - } - return str - } - function decodeUnsafe(source) { - if (typeof source !== 'string') { - throw new TypeError('Expected String') - } - if (source.length === 0) { - return _Buffer.alloc(0) - } - var psz = 0 - var zeroes = 0 - var length = 0 - while (source[psz] === LEADER) { - zeroes++ - psz++ - } - var size = ((source.length - psz) * FACTOR + 1) >>> 0 - var b256 = new Uint8Array(size) - while (source[psz]) { - var carry = BASE_MAP[source.charCodeAt(psz)] - if (carry === 255) { - return - } - var i = 0 - for (var it3 = size - 1; (carry !== 0 || i < length) && it3 !== -1; it3--, i++) { - carry += (BASE * b256[it3]) >>> 0 - b256[it3] = carry % 256 >>> 0 - carry = (carry / 256) >>> 0 - } - if (carry !== 0) { - throw new Error('Non-zero carry') - } - length = i - psz++ - } - var it4 = size - length - while (it4 !== size && b256[it4] === 0) { - it4++ - } - var vch = _Buffer.allocUnsafe(zeroes + (size - it4)) - vch.fill(0, 0, zeroes) - var j = zeroes - while (it4 !== size) { - vch[j++] = b256[it4++] - } - return vch - } - function decode(string) { - var buffer = decodeUnsafe(string) - if (buffer) { - return buffer - } - throw new Error('Non-base' + BASE + ' character') - } - return { encode: encode, decodeUnsafe: decodeUnsafe, decode: decode } - } - module.exports = base - }, - { 'safe-buffer': 183 } - ], - 46: [ - function (require, module, exports) { - 'use strict' - exports.byteLength = byteLength - exports.toByteArray = toByteArray - exports.fromByteArray = fromByteArray - var lookup = [] - var revLookup = [] - var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array - var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' - for (var i = 0, len = code.length; i < len; ++i) { - lookup[i] = code[i] - revLookup[code.charCodeAt(i)] = i - } - revLookup['-'.charCodeAt(0)] = 62 - revLookup['_'.charCodeAt(0)] = 63 - function getLens(b64) { - var len = b64.length - if (len % 4 > 0) { - throw new Error('Invalid string. Length must be a multiple of 4') - } - var validLen = b64.indexOf('=') - if (validLen === -1) validLen = len - var placeHoldersLen = validLen === len ? 0 : 4 - (validLen % 4) - return [validLen, placeHoldersLen] - } - function byteLength(b64) { - var lens = getLens(b64) - var validLen = lens[0] - var placeHoldersLen = lens[1] - return ((validLen + placeHoldersLen) * 3) / 4 - placeHoldersLen - } - function _byteLength(b64, validLen, placeHoldersLen) { - return ((validLen + placeHoldersLen) * 3) / 4 - placeHoldersLen - } - function toByteArray(b64) { - var tmp - var lens = getLens(b64) - var validLen = lens[0] - var placeHoldersLen = lens[1] - var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)) - var curByte = 0 - var len = placeHoldersLen > 0 ? validLen - 4 : validLen - var i - for (i = 0; i < len; i += 4) { - tmp = - (revLookup[b64.charCodeAt(i)] << 18) | - (revLookup[b64.charCodeAt(i + 1)] << 12) | - (revLookup[b64.charCodeAt(i + 2)] << 6) | - revLookup[b64.charCodeAt(i + 3)] - arr[curByte++] = (tmp >> 16) & 255 - arr[curByte++] = (tmp >> 8) & 255 - arr[curByte++] = tmp & 255 - } - if (placeHoldersLen === 2) { - tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4) - arr[curByte++] = tmp & 255 - } - if (placeHoldersLen === 1) { - tmp = - (revLookup[b64.charCodeAt(i)] << 10) | - (revLookup[b64.charCodeAt(i + 1)] << 4) | - (revLookup[b64.charCodeAt(i + 2)] >> 2) - arr[curByte++] = (tmp >> 8) & 255 - arr[curByte++] = tmp & 255 - } - return arr - } - function tripletToBase64(num) { - return ( - lookup[(num >> 18) & 63] + - lookup[(num >> 12) & 63] + - lookup[(num >> 6) & 63] + - lookup[num & 63] - ) - } - function encodeChunk(uint8, start, end) { - var tmp - var output = [] - for (var i = start; i < end; i += 3) { - tmp = - ((uint8[i] << 16) & 16711680) + ((uint8[i + 1] << 8) & 65280) + (uint8[i + 2] & 255) - output.push(tripletToBase64(tmp)) - } - return output.join('') - } - function fromByteArray(uint8) { - var tmp - var len = uint8.length - var extraBytes = len % 3 - var parts = [] - var maxChunkLength = 16383 - for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { - parts.push( - encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength) - ) - } - if (extraBytes === 1) { - tmp = uint8[len - 1] - parts.push(lookup[tmp >> 2] + lookup[(tmp << 4) & 63] + '==') - } else if (extraBytes === 2) { - tmp = (uint8[len - 2] << 8) + uint8[len - 1] - parts.push( - lookup[tmp >> 10] + lookup[(tmp >> 4) & 63] + lookup[(tmp << 2) & 63] + '=' - ) - } - return parts.join('') - } - }, - {} - ], - 47: [ - function (require, module, exports) { - ;(function (module, exports) { - 'use strict' - function assert(val, msg) { - if (!val) throw new Error(msg || 'Assertion failed') - } - function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } - function BN(number, base, endian) { - if (BN.isBN(number)) { - return number - } - this.negative = 0 - this.words = null - this.length = 0 - this.red = null - if (number !== null) { - if (base === 'le' || base === 'be') { - endian = base - base = 10 - } - this._init(number || 0, base || 10, endian || 'be') - } - } - if (typeof module === 'object') { - module.exports = BN - } else { - exports.BN = BN - } - BN.BN = BN - BN.wordSize = 26 - var Buffer - try { - Buffer = require('buffer').Buffer - } catch (e) {} - BN.isBN = function isBN(num) { - if (num instanceof BN) { - return true - } - return ( - num !== null && - typeof num === 'object' && - num.constructor.wordSize === BN.wordSize && - Array.isArray(num.words) - ) - } - BN.max = function max(left, right) { - if (left.cmp(right) > 0) return left - return right - } - BN.min = function min(left, right) { - if (left.cmp(right) < 0) return left - return right - } - BN.prototype._init = function init(number, base, endian) { - if (typeof number === 'number') { - return this._initNumber(number, base, endian) - } - if (typeof number === 'object') { - return this._initArray(number, base, endian) - } - if (base === 'hex') { - base = 16 - } - assert(base === (base | 0) && base >= 2 && base <= 36) - number = number.toString().replace(/\s+/g, '') - var start = 0 - if (number[0] === '-') { - start++ - } - if (base === 16) { - this._parseHex(number, start) - } else { - this._parseBase(number, base, start) - } - if (number[0] === '-') { - this.negative = 1 - } - this._strip() - if (endian !== 'le') return - this._initArray(this.toArray(), base, endian) - } - BN.prototype._initNumber = function _initNumber(number, base, endian) { - if (number < 0) { - this.negative = 1 - number = -number - } - if (number < 67108864) { - this.words = [number & 67108863] - this.length = 1 - } else if (number < 4503599627370496) { - this.words = [number & 67108863, (number / 67108864) & 67108863] - this.length = 2 - } else { - assert(number < 9007199254740992) - this.words = [number & 67108863, (number / 67108864) & 67108863, 1] - this.length = 3 - } - if (endian !== 'le') return - this._initArray(this.toArray(), base, endian) - } - BN.prototype._initArray = function _initArray(number, base, endian) { - assert(typeof number.length === 'number') - if (number.length <= 0) { - this.words = [0] - this.length = 1 - return this - } - this.length = Math.ceil(number.length / 3) - this.words = new Array(this.length) - for (var i = 0; i < this.length; i++) { - this.words[i] = 0 - } - var j, w - var off = 0 - if (endian === 'be') { - for (i = number.length - 1, j = 0; i >= 0; i -= 3) { - w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16) - this.words[j] |= (w << off) & 67108863 - this.words[j + 1] = (w >>> (26 - off)) & 67108863 - off += 24 - if (off >= 26) { - off -= 26 - j++ - } - } - } else if (endian === 'le') { - for (i = 0, j = 0; i < number.length; i += 3) { - w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16) - this.words[j] |= (w << off) & 67108863 - this.words[j + 1] = (w >>> (26 - off)) & 67108863 - off += 24 - if (off >= 26) { - off -= 26 - j++ - } - } - } - return this._strip() - } - function parseHex(str, start, end) { - var r = 0 - var len = Math.min(str.length, end) - var z = 0 - for (var i = start; i < len; i++) { - var c = str.charCodeAt(i) - 48 - r <<= 4 - var b - if (c >= 49 && c <= 54) { - b = c - 49 + 10 - } else if (c >= 17 && c <= 22) { - b = c - 17 + 10 - } else { - b = c - } - r |= b - z |= b - } - assert(!(z & 240), 'Invalid character in ' + str) - return r - } - BN.prototype._parseHex = function _parseHex(number, start) { - this.length = Math.ceil((number.length - start) / 6) - this.words = new Array(this.length) - for (var i = 0; i < this.length; i++) { - this.words[i] = 0 - } - var j, w - var off = 0 - for (i = number.length - 6, j = 0; i >= start; i -= 6) { - w = parseHex(number, i, i + 6) - this.words[j] |= (w << off) & 67108863 - this.words[j + 1] |= (w >>> (26 - off)) & 4194303 - off += 24 - if (off >= 26) { - off -= 26 - j++ - } - } - if (i + 6 !== start) { - w = parseHex(number, start, i + 6) - this.words[j] |= (w << off) & 67108863 - this.words[j + 1] |= (w >>> (26 - off)) & 4194303 - } - this._strip() - } - function parseBase(str, start, end, mul) { - var r = 0 - var b = 0 - var len = Math.min(str.length, end) - for (var i = start; i < len; i++) { - var c = str.charCodeAt(i) - 48 - r *= mul - if (c >= 49) { - b = c - 49 + 10 - } else if (c >= 17) { - b = c - 17 + 10 - } else { - b = c - } - assert(c >= 0 && b < mul, 'Invalid character') - r += b - } - return r - } - BN.prototype._parseBase = function _parseBase(number, base, start) { - this.words = [0] - this.length = 1 - for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { - limbLen++ - } - limbLen-- - limbPow = (limbPow / base) | 0 - var total = number.length - start - var mod = total % limbLen - var end = Math.min(total, total - mod) + start - var word = 0 - for (var i = start; i < end; i += limbLen) { - word = parseBase(number, i, i + limbLen, base) - this.imuln(limbPow) - if (this.words[0] + word < 67108864) { - this.words[0] += word - } else { - this._iaddn(word) - } - } - if (mod !== 0) { - var pow = 1 - word = parseBase(number, i, number.length, base) - for (i = 0; i < mod; i++) { - pow *= base - } - this.imuln(pow) - if (this.words[0] + word < 67108864) { - this.words[0] += word - } else { - this._iaddn(word) - } - } - } - BN.prototype.copy = function copy(dest) { - dest.words = new Array(this.length) - for (var i = 0; i < this.length; i++) { - dest.words[i] = this.words[i] - } - dest.length = this.length - dest.negative = this.negative - dest.red = this.red - } - function move(dest, src) { - dest.words = src.words - dest.length = src.length - dest.negative = src.negative - dest.red = src.red - } - BN.prototype._move = function _move(dest) { - move(dest, this) - } - BN.prototype.clone = function clone() { - var r = new BN(null) - this.copy(r) - return r - } - BN.prototype._expand = function _expand(size) { - while (this.length < size) { - this.words[this.length++] = 0 - } - return this - } - BN.prototype._strip = function strip() { - while (this.length > 1 && this.words[this.length - 1] === 0) { - this.length-- - } - return this._normSign() - } - BN.prototype._normSign = function _normSign() { - if (this.length === 1 && this.words[0] === 0) { - this.negative = 0 - } - return this - } - if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') { - BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect - } else { - BN.prototype.inspect = inspect - } - function inspect() { - return (this.red ? '' - } - var zeros = [ - '', - '0', - '00', - '000', - '0000', - '00000', - '000000', - '0000000', - '00000000', - '000000000', - '0000000000', - '00000000000', - '000000000000', - '0000000000000', - '00000000000000', - '000000000000000', - '0000000000000000', - '00000000000000000', - '000000000000000000', - '0000000000000000000', - '00000000000000000000', - '000000000000000000000', - '0000000000000000000000', - '00000000000000000000000', - '000000000000000000000000', - '0000000000000000000000000' - ] - var groupSizes = [ - 0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 - ] - var groupBases = [ - 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, - 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, - 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, - 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176 - ] - BN.prototype.toString = function toString(base, padding) { - base = base || 10 - padding = padding | 0 || 1 - var out - if (base === 16 || base === 'hex') { - out = '' - var off = 0 - var carry = 0 - for (var i = 0; i < this.length; i++) { - var w = this.words[i] - var word = (((w << off) | carry) & 16777215).toString(16) - carry = (w >>> (24 - off)) & 16777215 - if (carry !== 0 || i !== this.length - 1) { - out = zeros[6 - word.length] + word + out - } else { - out = word + out - } - off += 2 - if (off >= 26) { - off -= 26 - i-- - } - } - if (carry !== 0) { - out = carry.toString(16) + out - } - while (out.length % padding !== 0) { - out = '0' + out - } - if (this.negative !== 0) { - out = '-' + out - } - return out - } - if (base === (base | 0) && base >= 2 && base <= 36) { - var groupSize = groupSizes[base] - var groupBase = groupBases[base] - out = '' - var c = this.clone() - c.negative = 0 - while (!c.isZero()) { - var r = c.modrn(groupBase).toString(base) - c = c.idivn(groupBase) - if (!c.isZero()) { - out = zeros[groupSize - r.length] + r + out - } else { - out = r + out - } - } - if (this.isZero()) { - out = '0' + out - } - while (out.length % padding !== 0) { - out = '0' + out - } - if (this.negative !== 0) { - out = '-' + out - } - return out - } - assert(false, 'Base should be between 2 and 36') - } - BN.prototype.toNumber = function toNumber() { - var ret = this.words[0] - if (this.length === 2) { - ret += this.words[1] * 67108864 - } else if (this.length === 3 && this.words[2] === 1) { - ret += 4503599627370496 + this.words[1] * 67108864 - } else if (this.length > 2) { - assert(false, 'Number can only safely store up to 53 bits') - } - return this.negative !== 0 ? -ret : ret - } - BN.prototype.toJSON = function toJSON() { - return this.toString(16, 2) - } - if (Buffer) { - BN.prototype.toBuffer = function toBuffer(endian, length) { - return this.toArrayLike(Buffer, endian, length) - } - } - BN.prototype.toArray = function toArray(endian, length) { - return this.toArrayLike(Array, endian, length) - } - var allocate = function allocate(ArrayType, size) { - if (ArrayType.allocUnsafe) { - return ArrayType.allocUnsafe(size) - } - return new ArrayType(size) - } - BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { - this._strip() - var byteLength = this.byteLength() - var reqLength = length || Math.max(1, byteLength) - assert(byteLength <= reqLength, 'byte array longer than desired length') - assert(reqLength > 0, 'Requested array length <= 0') - var res = allocate(ArrayType, reqLength) - var postfix = endian === 'le' ? 'LE' : 'BE' - this['_toArrayLike' + postfix](res, byteLength) - return res - } - BN.prototype._toArrayLikeLE = function _toArrayLikeLE(res, byteLength) { - var position = 0 - var carry = 0 - for (var i = 0, shift = 0; i < this.length; i++) { - var word = (this.words[i] << shift) | carry - res[position++] = word & 255 - if (position < res.length) { - res[position++] = (word >> 8) & 255 - } - if (position < res.length) { - res[position++] = (word >> 16) & 255 - } - if (shift === 6) { - if (position < res.length) { - res[position++] = (word >> 24) & 255 - } - carry = 0 - shift = 0 - } else { - carry = word >>> 24 - shift += 2 - } - } - if (position < res.length) { - res[position++] = carry - while (position < res.length) { - res[position++] = 0 - } - } - } - BN.prototype._toArrayLikeBE = function _toArrayLikeBE(res, byteLength) { - var position = res.length - 1 - var carry = 0 - for (var i = 0, shift = 0; i < this.length; i++) { - var word = (this.words[i] << shift) | carry - res[position--] = word & 255 - if (position >= 0) { - res[position--] = (word >> 8) & 255 - } - if (position >= 0) { - res[position--] = (word >> 16) & 255 - } - if (shift === 6) { - if (position >= 0) { - res[position--] = (word >> 24) & 255 - } - carry = 0 - shift = 0 - } else { - carry = word >>> 24 - shift += 2 - } - } - if (position >= 0) { - res[position--] = carry - while (position >= 0) { - res[position--] = 0 - } - } - } - if (Math.clz32) { - BN.prototype._countBits = function _countBits(w) { - return 32 - Math.clz32(w) - } - } else { - BN.prototype._countBits = function _countBits(w) { - var t = w - var r = 0 - if (t >= 4096) { - r += 13 - t >>>= 13 - } - if (t >= 64) { - r += 7 - t >>>= 7 - } - if (t >= 8) { - r += 4 - t >>>= 4 - } - if (t >= 2) { - r += 2 - t >>>= 2 - } - return r + t - } - } - BN.prototype._zeroBits = function _zeroBits(w) { - if (w === 0) return 26 - var t = w - var r = 0 - if ((t & 8191) === 0) { - r += 13 - t >>>= 13 - } - if ((t & 127) === 0) { - r += 7 - t >>>= 7 - } - if ((t & 15) === 0) { - r += 4 - t >>>= 4 - } - if ((t & 3) === 0) { - r += 2 - t >>>= 2 - } - if ((t & 1) === 0) { - r++ - } - return r - } - BN.prototype.bitLength = function bitLength() { - var w = this.words[this.length - 1] - var hi = this._countBits(w) - return (this.length - 1) * 26 + hi - } - function toBitArray(num) { - var w = new Array(num.bitLength()) - for (var bit = 0; bit < w.length; bit++) { - var off = (bit / 26) | 0 - var wbit = bit % 26 - w[bit] = (num.words[off] >>> wbit) & 1 - } - return w - } - BN.prototype.zeroBits = function zeroBits() { - if (this.isZero()) return 0 - var r = 0 - for (var i = 0; i < this.length; i++) { - var b = this._zeroBits(this.words[i]) - r += b - if (b !== 26) break - } - return r - } - BN.prototype.byteLength = function byteLength() { - return Math.ceil(this.bitLength() / 8) - } - BN.prototype.toTwos = function toTwos(width) { - if (this.negative !== 0) { - return this.abs().inotn(width).iaddn(1) - } - return this.clone() - } - BN.prototype.fromTwos = function fromTwos(width) { - if (this.testn(width - 1)) { - return this.notn(width).iaddn(1).ineg() - } - return this.clone() - } - BN.prototype.isNeg = function isNeg() { - return this.negative !== 0 - } - BN.prototype.neg = function neg() { - return this.clone().ineg() - } - BN.prototype.ineg = function ineg() { - if (!this.isZero()) { - this.negative ^= 1 - } - return this - } - BN.prototype.iuor = function iuor(num) { - while (this.length < num.length) { - this.words[this.length++] = 0 - } - for (var i = 0; i < num.length; i++) { - this.words[i] = this.words[i] | num.words[i] - } - return this._strip() - } - BN.prototype.ior = function ior(num) { - assert((this.negative | num.negative) === 0) - return this.iuor(num) - } - BN.prototype.or = function or(num) { - if (this.length > num.length) return this.clone().ior(num) - return num.clone().ior(this) - } - BN.prototype.uor = function uor(num) { - if (this.length > num.length) return this.clone().iuor(num) - return num.clone().iuor(this) - } - BN.prototype.iuand = function iuand(num) { - var b - if (this.length > num.length) { - b = num - } else { - b = this - } - for (var i = 0; i < b.length; i++) { - this.words[i] = this.words[i] & num.words[i] - } - this.length = b.length - return this._strip() - } - BN.prototype.iand = function iand(num) { - assert((this.negative | num.negative) === 0) - return this.iuand(num) - } - BN.prototype.and = function and(num) { - if (this.length > num.length) return this.clone().iand(num) - return num.clone().iand(this) - } - BN.prototype.uand = function uand(num) { - if (this.length > num.length) return this.clone().iuand(num) - return num.clone().iuand(this) - } - BN.prototype.iuxor = function iuxor(num) { - var a - var b - if (this.length > num.length) { - a = this - b = num - } else { - a = num - b = this - } - for (var i = 0; i < b.length; i++) { - this.words[i] = a.words[i] ^ b.words[i] - } - if (this !== a) { - for (; i < a.length; i++) { - this.words[i] = a.words[i] - } - } - this.length = a.length - return this._strip() - } - BN.prototype.ixor = function ixor(num) { - assert((this.negative | num.negative) === 0) - return this.iuxor(num) - } - BN.prototype.xor = function xor(num) { - if (this.length > num.length) return this.clone().ixor(num) - return num.clone().ixor(this) - } - BN.prototype.uxor = function uxor(num) { - if (this.length > num.length) return this.clone().iuxor(num) - return num.clone().iuxor(this) - } - BN.prototype.inotn = function inotn(width) { - assert(typeof width === 'number' && width >= 0) - var bytesNeeded = Math.ceil(width / 26) | 0 - var bitsLeft = width % 26 - this._expand(bytesNeeded) - if (bitsLeft > 0) { - bytesNeeded-- - } - for (var i = 0; i < bytesNeeded; i++) { - this.words[i] = ~this.words[i] & 67108863 - } - if (bitsLeft > 0) { - this.words[i] = ~this.words[i] & (67108863 >> (26 - bitsLeft)) - } - return this._strip() - } - BN.prototype.notn = function notn(width) { - return this.clone().inotn(width) - } - BN.prototype.setn = function setn(bit, val) { - assert(typeof bit === 'number' && bit >= 0) - var off = (bit / 26) | 0 - var wbit = bit % 26 - this._expand(off + 1) - if (val) { - this.words[off] = this.words[off] | (1 << wbit) - } else { - this.words[off] = this.words[off] & ~(1 << wbit) - } - return this._strip() - } - BN.prototype.iadd = function iadd(num) { - var r - if (this.negative !== 0 && num.negative === 0) { - this.negative = 0 - r = this.isub(num) - this.negative ^= 1 - return this._normSign() - } else if (this.negative === 0 && num.negative !== 0) { - num.negative = 0 - r = this.isub(num) - num.negative = 1 - return r._normSign() - } - var a, b - if (this.length > num.length) { - a = this - b = num - } else { - a = num - b = this - } - var carry = 0 - for (var i = 0; i < b.length; i++) { - r = (a.words[i] | 0) + (b.words[i] | 0) + carry - this.words[i] = r & 67108863 - carry = r >>> 26 - } - for (; carry !== 0 && i < a.length; i++) { - r = (a.words[i] | 0) + carry - this.words[i] = r & 67108863 - carry = r >>> 26 - } - this.length = a.length - if (carry !== 0) { - this.words[this.length] = carry - this.length++ - } else if (a !== this) { - for (; i < a.length; i++) { - this.words[i] = a.words[i] - } - } - return this - } - BN.prototype.add = function add(num) { - var res - if (num.negative !== 0 && this.negative === 0) { - num.negative = 0 - res = this.sub(num) - num.negative ^= 1 - return res - } else if (num.negative === 0 && this.negative !== 0) { - this.negative = 0 - res = num.sub(this) - this.negative = 1 - return res - } - if (this.length > num.length) return this.clone().iadd(num) - return num.clone().iadd(this) - } - BN.prototype.isub = function isub(num) { - if (num.negative !== 0) { - num.negative = 0 - var r = this.iadd(num) - num.negative = 1 - return r._normSign() - } else if (this.negative !== 0) { - this.negative = 0 - this.iadd(num) - this.negative = 1 - return this._normSign() - } - var cmp = this.cmp(num) - if (cmp === 0) { - this.negative = 0 - this.length = 1 - this.words[0] = 0 - return this - } - var a, b - if (cmp > 0) { - a = this - b = num - } else { - a = num - b = this - } - var carry = 0 - for (var i = 0; i < b.length; i++) { - r = (a.words[i] | 0) - (b.words[i] | 0) + carry - carry = r >> 26 - this.words[i] = r & 67108863 - } - for (; carry !== 0 && i < a.length; i++) { - r = (a.words[i] | 0) + carry - carry = r >> 26 - this.words[i] = r & 67108863 - } - if (carry === 0 && i < a.length && a !== this) { - for (; i < a.length; i++) { - this.words[i] = a.words[i] - } - } - this.length = Math.max(this.length, i) - if (a !== this) { - this.negative = 1 - } - return this._strip() - } - BN.prototype.sub = function sub(num) { - return this.clone().isub(num) - } - function smallMulTo(self, num, out) { - out.negative = num.negative ^ self.negative - var len = (self.length + num.length) | 0 - out.length = len - len = (len - 1) | 0 - var a = self.words[0] | 0 - var b = num.words[0] | 0 - var r = a * b - var lo = r & 67108863 - var carry = (r / 67108864) | 0 - out.words[0] = lo - for (var k = 1; k < len; k++) { - var ncarry = carry >>> 26 - var rword = carry & 67108863 - var maxJ = Math.min(k, num.length - 1) - for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { - var i = (k - j) | 0 - a = self.words[i] | 0 - b = num.words[j] | 0 - r = a * b + rword - ncarry += (r / 67108864) | 0 - rword = r & 67108863 - } - out.words[k] = rword | 0 - carry = ncarry | 0 - } - if (carry !== 0) { - out.words[k] = carry | 0 - } else { - out.length-- - } - return out._strip() - } - var comb10MulTo = function comb10MulTo(self, num, out) { - var a = self.words - var b = num.words - var o = out.words - var c = 0 - var lo - var mid - var hi - var a0 = a[0] | 0 - var al0 = a0 & 8191 - var ah0 = a0 >>> 13 - var a1 = a[1] | 0 - var al1 = a1 & 8191 - var ah1 = a1 >>> 13 - var a2 = a[2] | 0 - var al2 = a2 & 8191 - var ah2 = a2 >>> 13 - var a3 = a[3] | 0 - var al3 = a3 & 8191 - var ah3 = a3 >>> 13 - var a4 = a[4] | 0 - var al4 = a4 & 8191 - var ah4 = a4 >>> 13 - var a5 = a[5] | 0 - var al5 = a5 & 8191 - var ah5 = a5 >>> 13 - var a6 = a[6] | 0 - var al6 = a6 & 8191 - var ah6 = a6 >>> 13 - var a7 = a[7] | 0 - var al7 = a7 & 8191 - var ah7 = a7 >>> 13 - var a8 = a[8] | 0 - var al8 = a8 & 8191 - var ah8 = a8 >>> 13 - var a9 = a[9] | 0 - var al9 = a9 & 8191 - var ah9 = a9 >>> 13 - var b0 = b[0] | 0 - var bl0 = b0 & 8191 - var bh0 = b0 >>> 13 - var b1 = b[1] | 0 - var bl1 = b1 & 8191 - var bh1 = b1 >>> 13 - var b2 = b[2] | 0 - var bl2 = b2 & 8191 - var bh2 = b2 >>> 13 - var b3 = b[3] | 0 - var bl3 = b3 & 8191 - var bh3 = b3 >>> 13 - var b4 = b[4] | 0 - var bl4 = b4 & 8191 - var bh4 = b4 >>> 13 - var b5 = b[5] | 0 - var bl5 = b5 & 8191 - var bh5 = b5 >>> 13 - var b6 = b[6] | 0 - var bl6 = b6 & 8191 - var bh6 = b6 >>> 13 - var b7 = b[7] | 0 - var bl7 = b7 & 8191 - var bh7 = b7 >>> 13 - var b8 = b[8] | 0 - var bl8 = b8 & 8191 - var bh8 = b8 >>> 13 - var b9 = b[9] | 0 - var bl9 = b9 & 8191 - var bh9 = b9 >>> 13 - out.negative = self.negative ^ num.negative - out.length = 19 - lo = Math.imul(al0, bl0) - mid = Math.imul(al0, bh0) - mid = (mid + Math.imul(ah0, bl0)) | 0 - hi = Math.imul(ah0, bh0) - var w0 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0 - w0 &= 67108863 - lo = Math.imul(al1, bl0) - mid = Math.imul(al1, bh0) - mid = (mid + Math.imul(ah1, bl0)) | 0 - hi = Math.imul(ah1, bh0) - lo = (lo + Math.imul(al0, bl1)) | 0 - mid = (mid + Math.imul(al0, bh1)) | 0 - mid = (mid + Math.imul(ah0, bl1)) | 0 - hi = (hi + Math.imul(ah0, bh1)) | 0 - var w1 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0 - w1 &= 67108863 - lo = Math.imul(al2, bl0) - mid = Math.imul(al2, bh0) - mid = (mid + Math.imul(ah2, bl0)) | 0 - hi = Math.imul(ah2, bh0) - lo = (lo + Math.imul(al1, bl1)) | 0 - mid = (mid + Math.imul(al1, bh1)) | 0 - mid = (mid + Math.imul(ah1, bl1)) | 0 - hi = (hi + Math.imul(ah1, bh1)) | 0 - lo = (lo + Math.imul(al0, bl2)) | 0 - mid = (mid + Math.imul(al0, bh2)) | 0 - mid = (mid + Math.imul(ah0, bl2)) | 0 - hi = (hi + Math.imul(ah0, bh2)) | 0 - var w2 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0 - w2 &= 67108863 - lo = Math.imul(al3, bl0) - mid = Math.imul(al3, bh0) - mid = (mid + Math.imul(ah3, bl0)) | 0 - hi = Math.imul(ah3, bh0) - lo = (lo + Math.imul(al2, bl1)) | 0 - mid = (mid + Math.imul(al2, bh1)) | 0 - mid = (mid + Math.imul(ah2, bl1)) | 0 - hi = (hi + Math.imul(ah2, bh1)) | 0 - lo = (lo + Math.imul(al1, bl2)) | 0 - mid = (mid + Math.imul(al1, bh2)) | 0 - mid = (mid + Math.imul(ah1, bl2)) | 0 - hi = (hi + Math.imul(ah1, bh2)) | 0 - lo = (lo + Math.imul(al0, bl3)) | 0 - mid = (mid + Math.imul(al0, bh3)) | 0 - mid = (mid + Math.imul(ah0, bl3)) | 0 - hi = (hi + Math.imul(ah0, bh3)) | 0 - var w3 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0 - w3 &= 67108863 - lo = Math.imul(al4, bl0) - mid = Math.imul(al4, bh0) - mid = (mid + Math.imul(ah4, bl0)) | 0 - hi = Math.imul(ah4, bh0) - lo = (lo + Math.imul(al3, bl1)) | 0 - mid = (mid + Math.imul(al3, bh1)) | 0 - mid = (mid + Math.imul(ah3, bl1)) | 0 - hi = (hi + Math.imul(ah3, bh1)) | 0 - lo = (lo + Math.imul(al2, bl2)) | 0 - mid = (mid + Math.imul(al2, bh2)) | 0 - mid = (mid + Math.imul(ah2, bl2)) | 0 - hi = (hi + Math.imul(ah2, bh2)) | 0 - lo = (lo + Math.imul(al1, bl3)) | 0 - mid = (mid + Math.imul(al1, bh3)) | 0 - mid = (mid + Math.imul(ah1, bl3)) | 0 - hi = (hi + Math.imul(ah1, bh3)) | 0 - lo = (lo + Math.imul(al0, bl4)) | 0 - mid = (mid + Math.imul(al0, bh4)) | 0 - mid = (mid + Math.imul(ah0, bl4)) | 0 - hi = (hi + Math.imul(ah0, bh4)) | 0 - var w4 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0 - w4 &= 67108863 - lo = Math.imul(al5, bl0) - mid = Math.imul(al5, bh0) - mid = (mid + Math.imul(ah5, bl0)) | 0 - hi = Math.imul(ah5, bh0) - lo = (lo + Math.imul(al4, bl1)) | 0 - mid = (mid + Math.imul(al4, bh1)) | 0 - mid = (mid + Math.imul(ah4, bl1)) | 0 - hi = (hi + Math.imul(ah4, bh1)) | 0 - lo = (lo + Math.imul(al3, bl2)) | 0 - mid = (mid + Math.imul(al3, bh2)) | 0 - mid = (mid + Math.imul(ah3, bl2)) | 0 - hi = (hi + Math.imul(ah3, bh2)) | 0 - lo = (lo + Math.imul(al2, bl3)) | 0 - mid = (mid + Math.imul(al2, bh3)) | 0 - mid = (mid + Math.imul(ah2, bl3)) | 0 - hi = (hi + Math.imul(ah2, bh3)) | 0 - lo = (lo + Math.imul(al1, bl4)) | 0 - mid = (mid + Math.imul(al1, bh4)) | 0 - mid = (mid + Math.imul(ah1, bl4)) | 0 - hi = (hi + Math.imul(ah1, bh4)) | 0 - lo = (lo + Math.imul(al0, bl5)) | 0 - mid = (mid + Math.imul(al0, bh5)) | 0 - mid = (mid + Math.imul(ah0, bl5)) | 0 - hi = (hi + Math.imul(ah0, bh5)) | 0 - var w5 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0 - w5 &= 67108863 - lo = Math.imul(al6, bl0) - mid = Math.imul(al6, bh0) - mid = (mid + Math.imul(ah6, bl0)) | 0 - hi = Math.imul(ah6, bh0) - lo = (lo + Math.imul(al5, bl1)) | 0 - mid = (mid + Math.imul(al5, bh1)) | 0 - mid = (mid + Math.imul(ah5, bl1)) | 0 - hi = (hi + Math.imul(ah5, bh1)) | 0 - lo = (lo + Math.imul(al4, bl2)) | 0 - mid = (mid + Math.imul(al4, bh2)) | 0 - mid = (mid + Math.imul(ah4, bl2)) | 0 - hi = (hi + Math.imul(ah4, bh2)) | 0 - lo = (lo + Math.imul(al3, bl3)) | 0 - mid = (mid + Math.imul(al3, bh3)) | 0 - mid = (mid + Math.imul(ah3, bl3)) | 0 - hi = (hi + Math.imul(ah3, bh3)) | 0 - lo = (lo + Math.imul(al2, bl4)) | 0 - mid = (mid + Math.imul(al2, bh4)) | 0 - mid = (mid + Math.imul(ah2, bl4)) | 0 - hi = (hi + Math.imul(ah2, bh4)) | 0 - lo = (lo + Math.imul(al1, bl5)) | 0 - mid = (mid + Math.imul(al1, bh5)) | 0 - mid = (mid + Math.imul(ah1, bl5)) | 0 - hi = (hi + Math.imul(ah1, bh5)) | 0 - lo = (lo + Math.imul(al0, bl6)) | 0 - mid = (mid + Math.imul(al0, bh6)) | 0 - mid = (mid + Math.imul(ah0, bl6)) | 0 - hi = (hi + Math.imul(ah0, bh6)) | 0 - var w6 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0 - w6 &= 67108863 - lo = Math.imul(al7, bl0) - mid = Math.imul(al7, bh0) - mid = (mid + Math.imul(ah7, bl0)) | 0 - hi = Math.imul(ah7, bh0) - lo = (lo + Math.imul(al6, bl1)) | 0 - mid = (mid + Math.imul(al6, bh1)) | 0 - mid = (mid + Math.imul(ah6, bl1)) | 0 - hi = (hi + Math.imul(ah6, bh1)) | 0 - lo = (lo + Math.imul(al5, bl2)) | 0 - mid = (mid + Math.imul(al5, bh2)) | 0 - mid = (mid + Math.imul(ah5, bl2)) | 0 - hi = (hi + Math.imul(ah5, bh2)) | 0 - lo = (lo + Math.imul(al4, bl3)) | 0 - mid = (mid + Math.imul(al4, bh3)) | 0 - mid = (mid + Math.imul(ah4, bl3)) | 0 - hi = (hi + Math.imul(ah4, bh3)) | 0 - lo = (lo + Math.imul(al3, bl4)) | 0 - mid = (mid + Math.imul(al3, bh4)) | 0 - mid = (mid + Math.imul(ah3, bl4)) | 0 - hi = (hi + Math.imul(ah3, bh4)) | 0 - lo = (lo + Math.imul(al2, bl5)) | 0 - mid = (mid + Math.imul(al2, bh5)) | 0 - mid = (mid + Math.imul(ah2, bl5)) | 0 - hi = (hi + Math.imul(ah2, bh5)) | 0 - lo = (lo + Math.imul(al1, bl6)) | 0 - mid = (mid + Math.imul(al1, bh6)) | 0 - mid = (mid + Math.imul(ah1, bl6)) | 0 - hi = (hi + Math.imul(ah1, bh6)) | 0 - lo = (lo + Math.imul(al0, bl7)) | 0 - mid = (mid + Math.imul(al0, bh7)) | 0 - mid = (mid + Math.imul(ah0, bl7)) | 0 - hi = (hi + Math.imul(ah0, bh7)) | 0 - var w7 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0 - w7 &= 67108863 - lo = Math.imul(al8, bl0) - mid = Math.imul(al8, bh0) - mid = (mid + Math.imul(ah8, bl0)) | 0 - hi = Math.imul(ah8, bh0) - lo = (lo + Math.imul(al7, bl1)) | 0 - mid = (mid + Math.imul(al7, bh1)) | 0 - mid = (mid + Math.imul(ah7, bl1)) | 0 - hi = (hi + Math.imul(ah7, bh1)) | 0 - lo = (lo + Math.imul(al6, bl2)) | 0 - mid = (mid + Math.imul(al6, bh2)) | 0 - mid = (mid + Math.imul(ah6, bl2)) | 0 - hi = (hi + Math.imul(ah6, bh2)) | 0 - lo = (lo + Math.imul(al5, bl3)) | 0 - mid = (mid + Math.imul(al5, bh3)) | 0 - mid = (mid + Math.imul(ah5, bl3)) | 0 - hi = (hi + Math.imul(ah5, bh3)) | 0 - lo = (lo + Math.imul(al4, bl4)) | 0 - mid = (mid + Math.imul(al4, bh4)) | 0 - mid = (mid + Math.imul(ah4, bl4)) | 0 - hi = (hi + Math.imul(ah4, bh4)) | 0 - lo = (lo + Math.imul(al3, bl5)) | 0 - mid = (mid + Math.imul(al3, bh5)) | 0 - mid = (mid + Math.imul(ah3, bl5)) | 0 - hi = (hi + Math.imul(ah3, bh5)) | 0 - lo = (lo + Math.imul(al2, bl6)) | 0 - mid = (mid + Math.imul(al2, bh6)) | 0 - mid = (mid + Math.imul(ah2, bl6)) | 0 - hi = (hi + Math.imul(ah2, bh6)) | 0 - lo = (lo + Math.imul(al1, bl7)) | 0 - mid = (mid + Math.imul(al1, bh7)) | 0 - mid = (mid + Math.imul(ah1, bl7)) | 0 - hi = (hi + Math.imul(ah1, bh7)) | 0 - lo = (lo + Math.imul(al0, bl8)) | 0 - mid = (mid + Math.imul(al0, bh8)) | 0 - mid = (mid + Math.imul(ah0, bl8)) | 0 - hi = (hi + Math.imul(ah0, bh8)) | 0 - var w8 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0 - w8 &= 67108863 - lo = Math.imul(al9, bl0) - mid = Math.imul(al9, bh0) - mid = (mid + Math.imul(ah9, bl0)) | 0 - hi = Math.imul(ah9, bh0) - lo = (lo + Math.imul(al8, bl1)) | 0 - mid = (mid + Math.imul(al8, bh1)) | 0 - mid = (mid + Math.imul(ah8, bl1)) | 0 - hi = (hi + Math.imul(ah8, bh1)) | 0 - lo = (lo + Math.imul(al7, bl2)) | 0 - mid = (mid + Math.imul(al7, bh2)) | 0 - mid = (mid + Math.imul(ah7, bl2)) | 0 - hi = (hi + Math.imul(ah7, bh2)) | 0 - lo = (lo + Math.imul(al6, bl3)) | 0 - mid = (mid + Math.imul(al6, bh3)) | 0 - mid = (mid + Math.imul(ah6, bl3)) | 0 - hi = (hi + Math.imul(ah6, bh3)) | 0 - lo = (lo + Math.imul(al5, bl4)) | 0 - mid = (mid + Math.imul(al5, bh4)) | 0 - mid = (mid + Math.imul(ah5, bl4)) | 0 - hi = (hi + Math.imul(ah5, bh4)) | 0 - lo = (lo + Math.imul(al4, bl5)) | 0 - mid = (mid + Math.imul(al4, bh5)) | 0 - mid = (mid + Math.imul(ah4, bl5)) | 0 - hi = (hi + Math.imul(ah4, bh5)) | 0 - lo = (lo + Math.imul(al3, bl6)) | 0 - mid = (mid + Math.imul(al3, bh6)) | 0 - mid = (mid + Math.imul(ah3, bl6)) | 0 - hi = (hi + Math.imul(ah3, bh6)) | 0 - lo = (lo + Math.imul(al2, bl7)) | 0 - mid = (mid + Math.imul(al2, bh7)) | 0 - mid = (mid + Math.imul(ah2, bl7)) | 0 - hi = (hi + Math.imul(ah2, bh7)) | 0 - lo = (lo + Math.imul(al1, bl8)) | 0 - mid = (mid + Math.imul(al1, bh8)) | 0 - mid = (mid + Math.imul(ah1, bl8)) | 0 - hi = (hi + Math.imul(ah1, bh8)) | 0 - lo = (lo + Math.imul(al0, bl9)) | 0 - mid = (mid + Math.imul(al0, bh9)) | 0 - mid = (mid + Math.imul(ah0, bl9)) | 0 - hi = (hi + Math.imul(ah0, bh9)) | 0 - var w9 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0 - w9 &= 67108863 - lo = Math.imul(al9, bl1) - mid = Math.imul(al9, bh1) - mid = (mid + Math.imul(ah9, bl1)) | 0 - hi = Math.imul(ah9, bh1) - lo = (lo + Math.imul(al8, bl2)) | 0 - mid = (mid + Math.imul(al8, bh2)) | 0 - mid = (mid + Math.imul(ah8, bl2)) | 0 - hi = (hi + Math.imul(ah8, bh2)) | 0 - lo = (lo + Math.imul(al7, bl3)) | 0 - mid = (mid + Math.imul(al7, bh3)) | 0 - mid = (mid + Math.imul(ah7, bl3)) | 0 - hi = (hi + Math.imul(ah7, bh3)) | 0 - lo = (lo + Math.imul(al6, bl4)) | 0 - mid = (mid + Math.imul(al6, bh4)) | 0 - mid = (mid + Math.imul(ah6, bl4)) | 0 - hi = (hi + Math.imul(ah6, bh4)) | 0 - lo = (lo + Math.imul(al5, bl5)) | 0 - mid = (mid + Math.imul(al5, bh5)) | 0 - mid = (mid + Math.imul(ah5, bl5)) | 0 - hi = (hi + Math.imul(ah5, bh5)) | 0 - lo = (lo + Math.imul(al4, bl6)) | 0 - mid = (mid + Math.imul(al4, bh6)) | 0 - mid = (mid + Math.imul(ah4, bl6)) | 0 - hi = (hi + Math.imul(ah4, bh6)) | 0 - lo = (lo + Math.imul(al3, bl7)) | 0 - mid = (mid + Math.imul(al3, bh7)) | 0 - mid = (mid + Math.imul(ah3, bl7)) | 0 - hi = (hi + Math.imul(ah3, bh7)) | 0 - lo = (lo + Math.imul(al2, bl8)) | 0 - mid = (mid + Math.imul(al2, bh8)) | 0 - mid = (mid + Math.imul(ah2, bl8)) | 0 - hi = (hi + Math.imul(ah2, bh8)) | 0 - lo = (lo + Math.imul(al1, bl9)) | 0 - mid = (mid + Math.imul(al1, bh9)) | 0 - mid = (mid + Math.imul(ah1, bl9)) | 0 - hi = (hi + Math.imul(ah1, bh9)) | 0 - var w10 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0 - w10 &= 67108863 - lo = Math.imul(al9, bl2) - mid = Math.imul(al9, bh2) - mid = (mid + Math.imul(ah9, bl2)) | 0 - hi = Math.imul(ah9, bh2) - lo = (lo + Math.imul(al8, bl3)) | 0 - mid = (mid + Math.imul(al8, bh3)) | 0 - mid = (mid + Math.imul(ah8, bl3)) | 0 - hi = (hi + Math.imul(ah8, bh3)) | 0 - lo = (lo + Math.imul(al7, bl4)) | 0 - mid = (mid + Math.imul(al7, bh4)) | 0 - mid = (mid + Math.imul(ah7, bl4)) | 0 - hi = (hi + Math.imul(ah7, bh4)) | 0 - lo = (lo + Math.imul(al6, bl5)) | 0 - mid = (mid + Math.imul(al6, bh5)) | 0 - mid = (mid + Math.imul(ah6, bl5)) | 0 - hi = (hi + Math.imul(ah6, bh5)) | 0 - lo = (lo + Math.imul(al5, bl6)) | 0 - mid = (mid + Math.imul(al5, bh6)) | 0 - mid = (mid + Math.imul(ah5, bl6)) | 0 - hi = (hi + Math.imul(ah5, bh6)) | 0 - lo = (lo + Math.imul(al4, bl7)) | 0 - mid = (mid + Math.imul(al4, bh7)) | 0 - mid = (mid + Math.imul(ah4, bl7)) | 0 - hi = (hi + Math.imul(ah4, bh7)) | 0 - lo = (lo + Math.imul(al3, bl8)) | 0 - mid = (mid + Math.imul(al3, bh8)) | 0 - mid = (mid + Math.imul(ah3, bl8)) | 0 - hi = (hi + Math.imul(ah3, bh8)) | 0 - lo = (lo + Math.imul(al2, bl9)) | 0 - mid = (mid + Math.imul(al2, bh9)) | 0 - mid = (mid + Math.imul(ah2, bl9)) | 0 - hi = (hi + Math.imul(ah2, bh9)) | 0 - var w11 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0 - w11 &= 67108863 - lo = Math.imul(al9, bl3) - mid = Math.imul(al9, bh3) - mid = (mid + Math.imul(ah9, bl3)) | 0 - hi = Math.imul(ah9, bh3) - lo = (lo + Math.imul(al8, bl4)) | 0 - mid = (mid + Math.imul(al8, bh4)) | 0 - mid = (mid + Math.imul(ah8, bl4)) | 0 - hi = (hi + Math.imul(ah8, bh4)) | 0 - lo = (lo + Math.imul(al7, bl5)) | 0 - mid = (mid + Math.imul(al7, bh5)) | 0 - mid = (mid + Math.imul(ah7, bl5)) | 0 - hi = (hi + Math.imul(ah7, bh5)) | 0 - lo = (lo + Math.imul(al6, bl6)) | 0 - mid = (mid + Math.imul(al6, bh6)) | 0 - mid = (mid + Math.imul(ah6, bl6)) | 0 - hi = (hi + Math.imul(ah6, bh6)) | 0 - lo = (lo + Math.imul(al5, bl7)) | 0 - mid = (mid + Math.imul(al5, bh7)) | 0 - mid = (mid + Math.imul(ah5, bl7)) | 0 - hi = (hi + Math.imul(ah5, bh7)) | 0 - lo = (lo + Math.imul(al4, bl8)) | 0 - mid = (mid + Math.imul(al4, bh8)) | 0 - mid = (mid + Math.imul(ah4, bl8)) | 0 - hi = (hi + Math.imul(ah4, bh8)) | 0 - lo = (lo + Math.imul(al3, bl9)) | 0 - mid = (mid + Math.imul(al3, bh9)) | 0 - mid = (mid + Math.imul(ah3, bl9)) | 0 - hi = (hi + Math.imul(ah3, bh9)) | 0 - var w12 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0 - w12 &= 67108863 - lo = Math.imul(al9, bl4) - mid = Math.imul(al9, bh4) - mid = (mid + Math.imul(ah9, bl4)) | 0 - hi = Math.imul(ah9, bh4) - lo = (lo + Math.imul(al8, bl5)) | 0 - mid = (mid + Math.imul(al8, bh5)) | 0 - mid = (mid + Math.imul(ah8, bl5)) | 0 - hi = (hi + Math.imul(ah8, bh5)) | 0 - lo = (lo + Math.imul(al7, bl6)) | 0 - mid = (mid + Math.imul(al7, bh6)) | 0 - mid = (mid + Math.imul(ah7, bl6)) | 0 - hi = (hi + Math.imul(ah7, bh6)) | 0 - lo = (lo + Math.imul(al6, bl7)) | 0 - mid = (mid + Math.imul(al6, bh7)) | 0 - mid = (mid + Math.imul(ah6, bl7)) | 0 - hi = (hi + Math.imul(ah6, bh7)) | 0 - lo = (lo + Math.imul(al5, bl8)) | 0 - mid = (mid + Math.imul(al5, bh8)) | 0 - mid = (mid + Math.imul(ah5, bl8)) | 0 - hi = (hi + Math.imul(ah5, bh8)) | 0 - lo = (lo + Math.imul(al4, bl9)) | 0 - mid = (mid + Math.imul(al4, bh9)) | 0 - mid = (mid + Math.imul(ah4, bl9)) | 0 - hi = (hi + Math.imul(ah4, bh9)) | 0 - var w13 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0 - w13 &= 67108863 - lo = Math.imul(al9, bl5) - mid = Math.imul(al9, bh5) - mid = (mid + Math.imul(ah9, bl5)) | 0 - hi = Math.imul(ah9, bh5) - lo = (lo + Math.imul(al8, bl6)) | 0 - mid = (mid + Math.imul(al8, bh6)) | 0 - mid = (mid + Math.imul(ah8, bl6)) | 0 - hi = (hi + Math.imul(ah8, bh6)) | 0 - lo = (lo + Math.imul(al7, bl7)) | 0 - mid = (mid + Math.imul(al7, bh7)) | 0 - mid = (mid + Math.imul(ah7, bl7)) | 0 - hi = (hi + Math.imul(ah7, bh7)) | 0 - lo = (lo + Math.imul(al6, bl8)) | 0 - mid = (mid + Math.imul(al6, bh8)) | 0 - mid = (mid + Math.imul(ah6, bl8)) | 0 - hi = (hi + Math.imul(ah6, bh8)) | 0 - lo = (lo + Math.imul(al5, bl9)) | 0 - mid = (mid + Math.imul(al5, bh9)) | 0 - mid = (mid + Math.imul(ah5, bl9)) | 0 - hi = (hi + Math.imul(ah5, bh9)) | 0 - var w14 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0 - w14 &= 67108863 - lo = Math.imul(al9, bl6) - mid = Math.imul(al9, bh6) - mid = (mid + Math.imul(ah9, bl6)) | 0 - hi = Math.imul(ah9, bh6) - lo = (lo + Math.imul(al8, bl7)) | 0 - mid = (mid + Math.imul(al8, bh7)) | 0 - mid = (mid + Math.imul(ah8, bl7)) | 0 - hi = (hi + Math.imul(ah8, bh7)) | 0 - lo = (lo + Math.imul(al7, bl8)) | 0 - mid = (mid + Math.imul(al7, bh8)) | 0 - mid = (mid + Math.imul(ah7, bl8)) | 0 - hi = (hi + Math.imul(ah7, bh8)) | 0 - lo = (lo + Math.imul(al6, bl9)) | 0 - mid = (mid + Math.imul(al6, bh9)) | 0 - mid = (mid + Math.imul(ah6, bl9)) | 0 - hi = (hi + Math.imul(ah6, bh9)) | 0 - var w15 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0 - w15 &= 67108863 - lo = Math.imul(al9, bl7) - mid = Math.imul(al9, bh7) - mid = (mid + Math.imul(ah9, bl7)) | 0 - hi = Math.imul(ah9, bh7) - lo = (lo + Math.imul(al8, bl8)) | 0 - mid = (mid + Math.imul(al8, bh8)) | 0 - mid = (mid + Math.imul(ah8, bl8)) | 0 - hi = (hi + Math.imul(ah8, bh8)) | 0 - lo = (lo + Math.imul(al7, bl9)) | 0 - mid = (mid + Math.imul(al7, bh9)) | 0 - mid = (mid + Math.imul(ah7, bl9)) | 0 - hi = (hi + Math.imul(ah7, bh9)) | 0 - var w16 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0 - w16 &= 67108863 - lo = Math.imul(al9, bl8) - mid = Math.imul(al9, bh8) - mid = (mid + Math.imul(ah9, bl8)) | 0 - hi = Math.imul(ah9, bh8) - lo = (lo + Math.imul(al8, bl9)) | 0 - mid = (mid + Math.imul(al8, bh9)) | 0 - mid = (mid + Math.imul(ah8, bl9)) | 0 - hi = (hi + Math.imul(ah8, bh9)) | 0 - var w17 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0 - w17 &= 67108863 - lo = Math.imul(al9, bl9) - mid = Math.imul(al9, bh9) - mid = (mid + Math.imul(ah9, bl9)) | 0 - hi = Math.imul(ah9, bh9) - var w18 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0 - w18 &= 67108863 - o[0] = w0 - o[1] = w1 - o[2] = w2 - o[3] = w3 - o[4] = w4 - o[5] = w5 - o[6] = w6 - o[7] = w7 - o[8] = w8 - o[9] = w9 - o[10] = w10 - o[11] = w11 - o[12] = w12 - o[13] = w13 - o[14] = w14 - o[15] = w15 - o[16] = w16 - o[17] = w17 - o[18] = w18 - if (c !== 0) { - o[19] = c - out.length++ - } - return out - } - if (!Math.imul) { - comb10MulTo = smallMulTo - } - function bigMulTo(self, num, out) { - out.negative = num.negative ^ self.negative - out.length = self.length + num.length - var carry = 0 - var hncarry = 0 - for (var k = 0; k < out.length - 1; k++) { - var ncarry = hncarry - hncarry = 0 - var rword = carry & 67108863 - var maxJ = Math.min(k, num.length - 1) - for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { - var i = k - j - var a = self.words[i] | 0 - var b = num.words[j] | 0 - var r = a * b - var lo = r & 67108863 - ncarry = (ncarry + ((r / 67108864) | 0)) | 0 - lo = (lo + rword) | 0 - rword = lo & 67108863 - ncarry = (ncarry + (lo >>> 26)) | 0 - hncarry += ncarry >>> 26 - ncarry &= 67108863 - } - out.words[k] = rword - carry = ncarry - ncarry = hncarry - } - if (carry !== 0) { - out.words[k] = carry - } else { - out.length-- - } - return out._strip() - } - function jumboMulTo(self, num, out) { - return bigMulTo(self, num, out) - } - BN.prototype.mulTo = function mulTo(num, out) { - var res - var len = this.length + num.length - if (this.length === 10 && num.length === 10) { - res = comb10MulTo(this, num, out) - } else if (len < 63) { - res = smallMulTo(this, num, out) - } else if (len < 1024) { - res = bigMulTo(this, num, out) - } else { - res = jumboMulTo(this, num, out) - } - return res - } - function FFTM(x, y) { - this.x = x - this.y = y - } - FFTM.prototype.makeRBT = function makeRBT(N) { - var t = new Array(N) - var l = BN.prototype._countBits(N) - 1 - for (var i = 0; i < N; i++) { - t[i] = this.revBin(i, l, N) - } - return t - } - FFTM.prototype.revBin = function revBin(x, l, N) { - if (x === 0 || x === N - 1) return x - var rb = 0 - for (var i = 0; i < l; i++) { - rb |= (x & 1) << (l - i - 1) - x >>= 1 - } - return rb - } - FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) { - for (var i = 0; i < N; i++) { - rtws[i] = rws[rbt[i]] - itws[i] = iws[rbt[i]] - } - } - FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) { - this.permute(rbt, rws, iws, rtws, itws, N) - for (var s = 1; s < N; s <<= 1) { - var l = s << 1 - var rtwdf = Math.cos((2 * Math.PI) / l) - var itwdf = Math.sin((2 * Math.PI) / l) - for (var p = 0; p < N; p += l) { - var rtwdf_ = rtwdf - var itwdf_ = itwdf - for (var j = 0; j < s; j++) { - var re = rtws[p + j] - var ie = itws[p + j] - var ro = rtws[p + j + s] - var io = itws[p + j + s] - var rx = rtwdf_ * ro - itwdf_ * io - io = rtwdf_ * io + itwdf_ * ro - ro = rx - rtws[p + j] = re + ro - itws[p + j] = ie + io - rtws[p + j + s] = re - ro - itws[p + j + s] = ie - io - if (j !== l) { - rx = rtwdf * rtwdf_ - itwdf * itwdf_ - itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_ - rtwdf_ = rx - } - } - } - } - } - FFTM.prototype.guessLen13b = function guessLen13b(n, m) { - var N = Math.max(m, n) | 1 - var odd = N & 1 - var i = 0 - for (N = (N / 2) | 0; N; N = N >>> 1) { - i++ - } - return 1 << (i + 1 + odd) - } - FFTM.prototype.conjugate = function conjugate(rws, iws, N) { - if (N <= 1) return - for (var i = 0; i < N / 2; i++) { - var t = rws[i] - rws[i] = rws[N - i - 1] - rws[N - i - 1] = t - t = iws[i] - iws[i] = -iws[N - i - 1] - iws[N - i - 1] = -t - } - } - FFTM.prototype.normalize13b = function normalize13b(ws, N) { - var carry = 0 - for (var i = 0; i < N / 2; i++) { - var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry - ws[i] = w & 67108863 - if (w < 67108864) { - carry = 0 - } else { - carry = (w / 67108864) | 0 - } - } - return ws - } - FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) { - var carry = 0 - for (var i = 0; i < len; i++) { - carry = carry + (ws[i] | 0) - rws[2 * i] = carry & 8191 - carry = carry >>> 13 - rws[2 * i + 1] = carry & 8191 - carry = carry >>> 13 - } - for (i = 2 * len; i < N; ++i) { - rws[i] = 0 - } - assert(carry === 0) - assert((carry & ~8191) === 0) - } - FFTM.prototype.stub = function stub(N) { - var ph = new Array(N) - for (var i = 0; i < N; i++) { - ph[i] = 0 - } - return ph - } - FFTM.prototype.mulp = function mulp(x, y, out) { - var N = 2 * this.guessLen13b(x.length, y.length) - var rbt = this.makeRBT(N) - var _ = this.stub(N) - var rws = new Array(N) - var rwst = new Array(N) - var iwst = new Array(N) - var nrws = new Array(N) - var nrwst = new Array(N) - var niwst = new Array(N) - var rmws = out.words - rmws.length = N - this.convert13b(x.words, x.length, rws, N) - this.convert13b(y.words, y.length, nrws, N) - this.transform(rws, _, rwst, iwst, N, rbt) - this.transform(nrws, _, nrwst, niwst, N, rbt) - for (var i = 0; i < N; i++) { - var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i] - iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i] - rwst[i] = rx - } - this.conjugate(rwst, iwst, N) - this.transform(rwst, iwst, rmws, _, N, rbt) - this.conjugate(rmws, _, N) - this.normalize13b(rmws, N) - out.negative = x.negative ^ y.negative - out.length = x.length + y.length - return out._strip() - } - BN.prototype.mul = function mul(num) { - var out = new BN(null) - out.words = new Array(this.length + num.length) - return this.mulTo(num, out) - } - BN.prototype.mulf = function mulf(num) { - var out = new BN(null) - out.words = new Array(this.length + num.length) - return jumboMulTo(this, num, out) - } - BN.prototype.imul = function imul(num) { - return this.clone().mulTo(num, this) - } - BN.prototype.imuln = function imuln(num) { - var isNegNum = num < 0 - if (isNegNum) num = -num - assert(typeof num === 'number') - assert(num < 67108864) - var carry = 0 - for (var i = 0; i < this.length; i++) { - var w = (this.words[i] | 0) * num - var lo = (w & 67108863) + (carry & 67108863) - carry >>= 26 - carry += (w / 67108864) | 0 - carry += lo >>> 26 - this.words[i] = lo & 67108863 - } - if (carry !== 0) { - this.words[i] = carry - this.length++ - } - return isNegNum ? this.ineg() : this - } - BN.prototype.muln = function muln(num) { - return this.clone().imuln(num) - } - BN.prototype.sqr = function sqr() { - return this.mul(this) - } - BN.prototype.isqr = function isqr() { - return this.imul(this.clone()) - } - BN.prototype.pow = function pow(num) { - var w = toBitArray(num) - if (w.length === 0) return new BN(1) - var res = this - for (var i = 0; i < w.length; i++, res = res.sqr()) { - if (w[i] !== 0) break - } - if (++i < w.length) { - for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { - if (w[i] === 0) continue - res = res.mul(q) - } - } - return res - } - BN.prototype.iushln = function iushln(bits) { - assert(typeof bits === 'number' && bits >= 0) - var r = bits % 26 - var s = (bits - r) / 26 - var carryMask = (67108863 >>> (26 - r)) << (26 - r) - var i - if (r !== 0) { - var carry = 0 - for (i = 0; i < this.length; i++) { - var newCarry = this.words[i] & carryMask - var c = ((this.words[i] | 0) - newCarry) << r - this.words[i] = c | carry - carry = newCarry >>> (26 - r) - } - if (carry) { - this.words[i] = carry - this.length++ - } - } - if (s !== 0) { - for (i = this.length - 1; i >= 0; i--) { - this.words[i + s] = this.words[i] - } - for (i = 0; i < s; i++) { - this.words[i] = 0 - } - this.length += s - } - return this._strip() - } - BN.prototype.ishln = function ishln(bits) { - assert(this.negative === 0) - return this.iushln(bits) - } - BN.prototype.iushrn = function iushrn(bits, hint, extended) { - assert(typeof bits === 'number' && bits >= 0) - var h - if (hint) { - h = (hint - (hint % 26)) / 26 - } else { - h = 0 - } - var r = bits % 26 - var s = Math.min((bits - r) / 26, this.length) - var mask = 67108863 ^ ((67108863 >>> r) << r) - var maskedWords = extended - h -= s - h = Math.max(0, h) - if (maskedWords) { - for (var i = 0; i < s; i++) { - maskedWords.words[i] = this.words[i] - } - maskedWords.length = s - } - if (s === 0) { - } else if (this.length > s) { - this.length -= s - for (i = 0; i < this.length; i++) { - this.words[i] = this.words[i + s] - } - } else { - this.words[0] = 0 - this.length = 1 - } - var carry = 0 - for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) { - var word = this.words[i] | 0 - this.words[i] = (carry << (26 - r)) | (word >>> r) - carry = word & mask - } - if (maskedWords && carry !== 0) { - maskedWords.words[maskedWords.length++] = carry - } - if (this.length === 0) { - this.words[0] = 0 - this.length = 1 - } - return this._strip() - } - BN.prototype.ishrn = function ishrn(bits, hint, extended) { - assert(this.negative === 0) - return this.iushrn(bits, hint, extended) - } - BN.prototype.shln = function shln(bits) { - return this.clone().ishln(bits) - } - BN.prototype.ushln = function ushln(bits) { - return this.clone().iushln(bits) - } - BN.prototype.shrn = function shrn(bits) { - return this.clone().ishrn(bits) - } - BN.prototype.ushrn = function ushrn(bits) { - return this.clone().iushrn(bits) - } - BN.prototype.testn = function testn(bit) { - assert(typeof bit === 'number' && bit >= 0) - var r = bit % 26 - var s = (bit - r) / 26 - var q = 1 << r - if (this.length <= s) return false - var w = this.words[s] - return !!(w & q) - } - BN.prototype.imaskn = function imaskn(bits) { - assert(typeof bits === 'number' && bits >= 0) - var r = bits % 26 - var s = (bits - r) / 26 - assert(this.negative === 0, 'imaskn works only with positive numbers') - if (this.length <= s) { - return this - } - if (r !== 0) { - s++ - } - this.length = Math.min(s, this.length) - if (r !== 0) { - var mask = 67108863 ^ ((67108863 >>> r) << r) - this.words[this.length - 1] &= mask - } - return this._strip() - } - BN.prototype.maskn = function maskn(bits) { - return this.clone().imaskn(bits) - } - BN.prototype.iaddn = function iaddn(num) { - assert(typeof num === 'number') - assert(num < 67108864) - if (num < 0) return this.isubn(-num) - if (this.negative !== 0) { - if (this.length === 1 && (this.words[0] | 0) <= num) { - this.words[0] = num - (this.words[0] | 0) - this.negative = 0 - return this - } - this.negative = 0 - this.isubn(num) - this.negative = 1 - return this - } - return this._iaddn(num) - } - BN.prototype._iaddn = function _iaddn(num) { - this.words[0] += num - for (var i = 0; i < this.length && this.words[i] >= 67108864; i++) { - this.words[i] -= 67108864 - if (i === this.length - 1) { - this.words[i + 1] = 1 - } else { - this.words[i + 1]++ - } - } - this.length = Math.max(this.length, i + 1) - return this - } - BN.prototype.isubn = function isubn(num) { - assert(typeof num === 'number') - assert(num < 67108864) - if (num < 0) return this.iaddn(-num) - if (this.negative !== 0) { - this.negative = 0 - this.iaddn(num) - this.negative = 1 - return this - } - this.words[0] -= num - if (this.length === 1 && this.words[0] < 0) { - this.words[0] = -this.words[0] - this.negative = 1 - } else { - for (var i = 0; i < this.length && this.words[i] < 0; i++) { - this.words[i] += 67108864 - this.words[i + 1] -= 1 - } - } - return this._strip() - } - BN.prototype.addn = function addn(num) { - return this.clone().iaddn(num) - } - BN.prototype.subn = function subn(num) { - return this.clone().isubn(num) - } - BN.prototype.iabs = function iabs() { - this.negative = 0 - return this - } - BN.prototype.abs = function abs() { - return this.clone().iabs() - } - BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { - var len = num.length + shift - var i - this._expand(len) - var w - var carry = 0 - for (i = 0; i < num.length; i++) { - w = (this.words[i + shift] | 0) + carry - var right = (num.words[i] | 0) * mul - w -= right & 67108863 - carry = (w >> 26) - ((right / 67108864) | 0) - this.words[i + shift] = w & 67108863 - } - for (; i < this.length - shift; i++) { - w = (this.words[i + shift] | 0) + carry - carry = w >> 26 - this.words[i + shift] = w & 67108863 - } - if (carry === 0) return this._strip() - assert(carry === -1) - carry = 0 - for (i = 0; i < this.length; i++) { - w = -(this.words[i] | 0) + carry - carry = w >> 26 - this.words[i] = w & 67108863 - } - this.negative = 1 - return this._strip() - } - BN.prototype._wordDiv = function _wordDiv(num, mode) { - var shift = this.length - num.length - var a = this.clone() - var b = num - var bhi = b.words[b.length - 1] | 0 - var bhiBits = this._countBits(bhi) - shift = 26 - bhiBits - if (shift !== 0) { - b = b.ushln(shift) - a.iushln(shift) - bhi = b.words[b.length - 1] | 0 - } - var m = a.length - b.length - var q - if (mode !== 'mod') { - q = new BN(null) - q.length = m + 1 - q.words = new Array(q.length) - for (var i = 0; i < q.length; i++) { - q.words[i] = 0 - } - } - var diff = a.clone()._ishlnsubmul(b, 1, m) - if (diff.negative === 0) { - a = diff - if (q) { - q.words[m] = 1 - } - } - for (var j = m - 1; j >= 0; j--) { - var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0) - qj = Math.min((qj / bhi) | 0, 67108863) - a._ishlnsubmul(b, qj, j) - while (a.negative !== 0) { - qj-- - a.negative = 0 - a._ishlnsubmul(b, 1, j) - if (!a.isZero()) { - a.negative ^= 1 - } - } - if (q) { - q.words[j] = qj - } - } - if (q) { - q._strip() - } - a._strip() - if (mode !== 'div' && shift !== 0) { - a.iushrn(shift) - } - return { div: q || null, mod: a } - } - BN.prototype.divmod = function divmod(num, mode, positive) { - assert(!num.isZero()) - if (this.isZero()) { - return { div: new BN(0), mod: new BN(0) } - } - var div, mod, res - if (this.negative !== 0 && num.negative === 0) { - res = this.neg().divmod(num, mode) - if (mode !== 'mod') { - div = res.div.neg() - } - if (mode !== 'div') { - mod = res.mod.neg() - if (positive && mod.negative !== 0) { - mod.iadd(num) - } - } - return { div: div, mod: mod } - } - if (this.negative === 0 && num.negative !== 0) { - res = this.divmod(num.neg(), mode) - if (mode !== 'mod') { - div = res.div.neg() - } - return { div: div, mod: res.mod } - } - if ((this.negative & num.negative) !== 0) { - res = this.neg().divmod(num.neg(), mode) - if (mode !== 'div') { - mod = res.mod.neg() - if (positive && mod.negative !== 0) { - mod.isub(num) - } - } - return { div: res.div, mod: mod } - } - if (num.length > this.length || this.cmp(num) < 0) { - return { div: new BN(0), mod: this } - } - if (num.length === 1) { - if (mode === 'div') { - return { div: this.divn(num.words[0]), mod: null } - } - if (mode === 'mod') { - return { div: null, mod: new BN(this.modrn(num.words[0])) } - } - return { div: this.divn(num.words[0]), mod: new BN(this.modrn(num.words[0])) } - } - return this._wordDiv(num, mode) - } - BN.prototype.div = function div(num) { - return this.divmod(num, 'div', false).div - } - BN.prototype.mod = function mod(num) { - return this.divmod(num, 'mod', false).mod - } - BN.prototype.umod = function umod(num) { - return this.divmod(num, 'mod', true).mod - } - BN.prototype.divRound = function divRound(num) { - var dm = this.divmod(num) - if (dm.mod.isZero()) return dm.div - var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod - var half = num.ushrn(1) - var r2 = num.andln(1) - var cmp = mod.cmp(half) - if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div - return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1) - } - BN.prototype.modrn = function modrn(num) { - var isNegNum = num < 0 - if (isNegNum) num = -num - assert(num <= 67108863) - var p = (1 << 26) % num - var acc = 0 - for (var i = this.length - 1; i >= 0; i--) { - acc = (p * acc + (this.words[i] | 0)) % num - } - return isNegNum ? -acc : acc - } - BN.prototype.modn = function modn(num) { - return this.modrn(num) - } - BN.prototype.idivn = function idivn(num) { - var isNegNum = num < 0 - if (isNegNum) num = -num - assert(num <= 67108863) - var carry = 0 - for (var i = this.length - 1; i >= 0; i--) { - var w = (this.words[i] | 0) + carry * 67108864 - this.words[i] = (w / num) | 0 - carry = w % num - } - this._strip() - return isNegNum ? this.ineg() : this - } - BN.prototype.divn = function divn(num) { - return this.clone().idivn(num) - } - BN.prototype.egcd = function egcd(p) { - assert(p.negative === 0) - assert(!p.isZero()) - var x = this - var y = p.clone() - if (x.negative !== 0) { - x = x.umod(p) - } else { - x = x.clone() - } - var A = new BN(1) - var B = new BN(0) - var C = new BN(0) - var D = new BN(1) - var g = 0 - while (x.isEven() && y.isEven()) { - x.iushrn(1) - y.iushrn(1) - ++g - } - var yp = y.clone() - var xp = x.clone() - while (!x.isZero()) { - for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1); - if (i > 0) { - x.iushrn(i) - while (i-- > 0) { - if (A.isOdd() || B.isOdd()) { - A.iadd(yp) - B.isub(xp) - } - A.iushrn(1) - B.iushrn(1) - } - } - for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); - if (j > 0) { - y.iushrn(j) - while (j-- > 0) { - if (C.isOdd() || D.isOdd()) { - C.iadd(yp) - D.isub(xp) - } - C.iushrn(1) - D.iushrn(1) - } - } - if (x.cmp(y) >= 0) { - x.isub(y) - A.isub(C) - B.isub(D) - } else { - y.isub(x) - C.isub(A) - D.isub(B) - } - } - return { a: C, b: D, gcd: y.iushln(g) } - } - BN.prototype._invmp = function _invmp(p) { - assert(p.negative === 0) - assert(!p.isZero()) - var a = this - var b = p.clone() - if (a.negative !== 0) { - a = a.umod(p) - } else { - a = a.clone() - } - var x1 = new BN(1) - var x2 = new BN(0) - var delta = b.clone() - while (a.cmpn(1) > 0 && b.cmpn(1) > 0) { - for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1); - if (i > 0) { - a.iushrn(i) - while (i-- > 0) { - if (x1.isOdd()) { - x1.iadd(delta) - } - x1.iushrn(1) - } - } - for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); - if (j > 0) { - b.iushrn(j) - while (j-- > 0) { - if (x2.isOdd()) { - x2.iadd(delta) - } - x2.iushrn(1) - } - } - if (a.cmp(b) >= 0) { - a.isub(b) - x1.isub(x2) - } else { - b.isub(a) - x2.isub(x1) - } - } - var res - if (a.cmpn(1) === 0) { - res = x1 - } else { - res = x2 - } - if (res.cmpn(0) < 0) { - res.iadd(p) - } - return res - } - BN.prototype.gcd = function gcd(num) { - if (this.isZero()) return num.abs() - if (num.isZero()) return this.abs() - var a = this.clone() - var b = num.clone() - a.negative = 0 - b.negative = 0 - for (var shift = 0; a.isEven() && b.isEven(); shift++) { - a.iushrn(1) - b.iushrn(1) - } - do { - while (a.isEven()) { - a.iushrn(1) - } - while (b.isEven()) { - b.iushrn(1) - } - var r = a.cmp(b) - if (r < 0) { - var t = a - a = b - b = t - } else if (r === 0 || b.cmpn(1) === 0) { - break - } - a.isub(b) - } while (true) - return b.iushln(shift) - } - BN.prototype.invm = function invm(num) { - return this.egcd(num).a.umod(num) - } - BN.prototype.isEven = function isEven() { - return (this.words[0] & 1) === 0 - } - BN.prototype.isOdd = function isOdd() { - return (this.words[0] & 1) === 1 - } - BN.prototype.andln = function andln(num) { - return this.words[0] & num - } - BN.prototype.bincn = function bincn(bit) { - assert(typeof bit === 'number') - var r = bit % 26 - var s = (bit - r) / 26 - var q = 1 << r - if (this.length <= s) { - this._expand(s + 1) - this.words[s] |= q - return this - } - var carry = q - for (var i = s; carry !== 0 && i < this.length; i++) { - var w = this.words[i] | 0 - w += carry - carry = w >>> 26 - w &= 67108863 - this.words[i] = w - } - if (carry !== 0) { - this.words[i] = carry - this.length++ - } - return this - } - BN.prototype.isZero = function isZero() { - return this.length === 1 && this.words[0] === 0 - } - BN.prototype.cmpn = function cmpn(num) { - var negative = num < 0 - if (this.negative !== 0 && !negative) return -1 - if (this.negative === 0 && negative) return 1 - this._strip() - var res - if (this.length > 1) { - res = 1 - } else { - if (negative) { - num = -num - } - assert(num <= 67108863, 'Number is too big') - var w = this.words[0] | 0 - res = w === num ? 0 : w < num ? -1 : 1 - } - if (this.negative !== 0) return -res | 0 - return res - } - BN.prototype.cmp = function cmp(num) { - if (this.negative !== 0 && num.negative === 0) return -1 - if (this.negative === 0 && num.negative !== 0) return 1 - var res = this.ucmp(num) - if (this.negative !== 0) return -res | 0 - return res - } - BN.prototype.ucmp = function ucmp(num) { - if (this.length > num.length) return 1 - if (this.length < num.length) return -1 - var res = 0 - for (var i = this.length - 1; i >= 0; i--) { - var a = this.words[i] | 0 - var b = num.words[i] | 0 - if (a === b) continue - if (a < b) { - res = -1 - } else if (a > b) { - res = 1 - } - break - } - return res - } - BN.prototype.gtn = function gtn(num) { - return this.cmpn(num) === 1 - } - BN.prototype.gt = function gt(num) { - return this.cmp(num) === 1 - } - BN.prototype.gten = function gten(num) { - return this.cmpn(num) >= 0 - } - BN.prototype.gte = function gte(num) { - return this.cmp(num) >= 0 - } - BN.prototype.ltn = function ltn(num) { - return this.cmpn(num) === -1 - } - BN.prototype.lt = function lt(num) { - return this.cmp(num) === -1 - } - BN.prototype.lten = function lten(num) { - return this.cmpn(num) <= 0 - } - BN.prototype.lte = function lte(num) { - return this.cmp(num) <= 0 - } - BN.prototype.eqn = function eqn(num) { - return this.cmpn(num) === 0 - } - BN.prototype.eq = function eq(num) { - return this.cmp(num) === 0 - } - BN.red = function red(num) { - return new Red(num) - } - BN.prototype.toRed = function toRed(ctx) { - assert(!this.red, 'Already a number in reduction context') - assert(this.negative === 0, 'red works only with positives') - return ctx.convertTo(this)._forceRed(ctx) - } - BN.prototype.fromRed = function fromRed() { - assert(this.red, 'fromRed works only with numbers in reduction context') - return this.red.convertFrom(this) - } - BN.prototype._forceRed = function _forceRed(ctx) { - this.red = ctx - return this - } - BN.prototype.forceRed = function forceRed(ctx) { - assert(!this.red, 'Already a number in reduction context') - return this._forceRed(ctx) - } - BN.prototype.redAdd = function redAdd(num) { - assert(this.red, 'redAdd works only with red numbers') - return this.red.add(this, num) - } - BN.prototype.redIAdd = function redIAdd(num) { - assert(this.red, 'redIAdd works only with red numbers') - return this.red.iadd(this, num) - } - BN.prototype.redSub = function redSub(num) { - assert(this.red, 'redSub works only with red numbers') - return this.red.sub(this, num) - } - BN.prototype.redISub = function redISub(num) { - assert(this.red, 'redISub works only with red numbers') - return this.red.isub(this, num) - } - BN.prototype.redShl = function redShl(num) { - assert(this.red, 'redShl works only with red numbers') - return this.red.shl(this, num) - } - BN.prototype.redMul = function redMul(num) { - assert(this.red, 'redMul works only with red numbers') - this.red._verify2(this, num) - return this.red.mul(this, num) - } - BN.prototype.redIMul = function redIMul(num) { - assert(this.red, 'redMul works only with red numbers') - this.red._verify2(this, num) - return this.red.imul(this, num) - } - BN.prototype.redSqr = function redSqr() { - assert(this.red, 'redSqr works only with red numbers') - this.red._verify1(this) - return this.red.sqr(this) - } - BN.prototype.redISqr = function redISqr() { - assert(this.red, 'redISqr works only with red numbers') - this.red._verify1(this) - return this.red.isqr(this) - } - BN.prototype.redSqrt = function redSqrt() { - assert(this.red, 'redSqrt works only with red numbers') - this.red._verify1(this) - return this.red.sqrt(this) - } - BN.prototype.redInvm = function redInvm() { - assert(this.red, 'redInvm works only with red numbers') - this.red._verify1(this) - return this.red.invm(this) - } - BN.prototype.redNeg = function redNeg() { - assert(this.red, 'redNeg works only with red numbers') - this.red._verify1(this) - return this.red.neg(this) - } - BN.prototype.redPow = function redPow(num) { - assert(this.red && !num.red, 'redPow(normalNum)') - this.red._verify1(this) - return this.red.pow(this, num) - } - var primes = { k256: null, p224: null, p192: null, p25519: null } - function MPrime(name, p) { - this.name = name - this.p = new BN(p, 16) - this.n = this.p.bitLength() - this.k = new BN(1).iushln(this.n).isub(this.p) - this.tmp = this._tmp() - } - MPrime.prototype._tmp = function _tmp() { - var tmp = new BN(null) - tmp.words = new Array(Math.ceil(this.n / 13)) - return tmp - } - MPrime.prototype.ireduce = function ireduce(num) { - var r = num - var rlen - do { - this.split(r, this.tmp) - r = this.imulK(r) - r = r.iadd(this.tmp) - rlen = r.bitLength() - } while (rlen > this.n) - var cmp = rlen < this.n ? -1 : r.ucmp(this.p) - if (cmp === 0) { - r.words[0] = 0 - r.length = 1 - } else if (cmp > 0) { - r.isub(this.p) - } else { - r._strip() - } - return r - } - MPrime.prototype.split = function split(input, out) { - input.iushrn(this.n, 0, out) - } - MPrime.prototype.imulK = function imulK(num) { - return num.imul(this.k) - } - function K256() { - MPrime.call( - this, - 'k256', - 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f' - ) - } - inherits(K256, MPrime) - K256.prototype.split = function split(input, output) { - var mask = 4194303 - var outLen = Math.min(input.length, 9) - for (var i = 0; i < outLen; i++) { - output.words[i] = input.words[i] - } - output.length = outLen - if (input.length <= 9) { - input.words[0] = 0 - input.length = 1 - return - } - var prev = input.words[9] - output.words[output.length++] = prev & mask - for (i = 10; i < input.length; i++) { - var next = input.words[i] | 0 - input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22) - prev = next - } - prev >>>= 22 - input.words[i - 10] = prev - if (prev === 0 && input.length > 10) { - input.length -= 10 - } else { - input.length -= 9 - } - } - K256.prototype.imulK = function imulK(num) { - num.words[num.length] = 0 - num.words[num.length + 1] = 0 - num.length += 2 - var lo = 0 - for (var i = 0; i < num.length; i++) { - var w = num.words[i] | 0 - lo += w * 977 - num.words[i] = lo & 67108863 - lo = w * 64 + ((lo / 67108864) | 0) - } - if (num.words[num.length - 1] === 0) { - num.length-- - if (num.words[num.length - 1] === 0) { - num.length-- - } - } - return num - } - function P224() { - MPrime.call( - this, - 'p224', - 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001' - ) - } - inherits(P224, MPrime) - function P192() { - MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff') - } - inherits(P192, MPrime) - function P25519() { - MPrime.call( - this, - '25519', - '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed' - ) - } - inherits(P25519, MPrime) - P25519.prototype.imulK = function imulK(num) { - var carry = 0 - for (var i = 0; i < num.length; i++) { - var hi = (num.words[i] | 0) * 19 + carry - var lo = hi & 67108863 - hi >>>= 26 - num.words[i] = lo - carry = hi - } - if (carry !== 0) { - num.words[num.length++] = carry - } - return num - } - BN._prime = function prime(name) { - if (primes[name]) return primes[name] - var prime - if (name === 'k256') { - prime = new K256() - } else if (name === 'p224') { - prime = new P224() - } else if (name === 'p192') { - prime = new P192() - } else if (name === 'p25519') { - prime = new P25519() - } else { - throw new Error('Unknown prime ' + name) - } - primes[name] = prime - return prime - } - function Red(m) { - if (typeof m === 'string') { - var prime = BN._prime(m) - this.m = prime.p - this.prime = prime - } else { - assert(m.gtn(1), 'modulus must be greater than 1') - this.m = m - this.prime = null - } - } - Red.prototype._verify1 = function _verify1(a) { - assert(a.negative === 0, 'red works only with positives') - assert(a.red, 'red works only with red numbers') - } - Red.prototype._verify2 = function _verify2(a, b) { - assert((a.negative | b.negative) === 0, 'red works only with positives') - assert(a.red && a.red === b.red, 'red works only with red numbers') - } - Red.prototype.imod = function imod(a) { - if (this.prime) return this.prime.ireduce(a)._forceRed(this) - move(a, a.umod(this.m)._forceRed(this)) - return a - } - Red.prototype.neg = function neg(a) { - if (a.isZero()) { - return a.clone() - } - return this.m.sub(a)._forceRed(this) - } - Red.prototype.add = function add(a, b) { - this._verify2(a, b) - var res = a.add(b) - if (res.cmp(this.m) >= 0) { - res.isub(this.m) - } - return res._forceRed(this) - } - Red.prototype.iadd = function iadd(a, b) { - this._verify2(a, b) - var res = a.iadd(b) - if (res.cmp(this.m) >= 0) { - res.isub(this.m) - } - return res - } - Red.prototype.sub = function sub(a, b) { - this._verify2(a, b) - var res = a.sub(b) - if (res.cmpn(0) < 0) { - res.iadd(this.m) - } - return res._forceRed(this) - } - Red.prototype.isub = function isub(a, b) { - this._verify2(a, b) - var res = a.isub(b) - if (res.cmpn(0) < 0) { - res.iadd(this.m) - } - return res - } - Red.prototype.shl = function shl(a, num) { - this._verify1(a) - return this.imod(a.ushln(num)) - } - Red.prototype.imul = function imul(a, b) { - this._verify2(a, b) - return this.imod(a.imul(b)) - } - Red.prototype.mul = function mul(a, b) { - this._verify2(a, b) - return this.imod(a.mul(b)) - } - Red.prototype.isqr = function isqr(a) { - return this.imul(a, a.clone()) - } - Red.prototype.sqr = function sqr(a) { - return this.mul(a, a) - } - Red.prototype.sqrt = function sqrt(a) { - if (a.isZero()) return a.clone() - var mod3 = this.m.andln(3) - assert(mod3 % 2 === 1) - if (mod3 === 3) { - var pow = this.m.add(new BN(1)).iushrn(2) - return this.pow(a, pow) - } - var q = this.m.subn(1) - var s = 0 - while (!q.isZero() && q.andln(1) === 0) { - s++ - q.iushrn(1) - } - assert(!q.isZero()) - var one = new BN(1).toRed(this) - var nOne = one.redNeg() - var lpow = this.m.subn(1).iushrn(1) - var z = this.m.bitLength() - z = new BN(2 * z * z).toRed(this) - while (this.pow(z, lpow).cmp(nOne) !== 0) { - z.redIAdd(nOne) - } - var c = this.pow(z, q) - var r = this.pow(a, q.addn(1).iushrn(1)) - var t = this.pow(a, q) - var m = s - while (t.cmp(one) !== 0) { - var tmp = t - for (var i = 0; tmp.cmp(one) !== 0; i++) { - tmp = tmp.redSqr() - } - assert(i < m) - var b = this.pow(c, new BN(1).iushln(m - i - 1)) - r = r.redMul(b) - c = b.redSqr() - t = t.redMul(c) - m = i - } - return r - } - Red.prototype.invm = function invm(a) { - var inv = a._invmp(this.m) - if (inv.negative !== 0) { - inv.negative = 0 - return this.imod(inv).redNeg() - } else { - return this.imod(inv) - } - } - Red.prototype.pow = function pow(a, num) { - if (num.isZero()) return new BN(1).toRed(this) - if (num.cmpn(1) === 0) return a.clone() - var windowSize = 4 - var wnd = new Array(1 << windowSize) - wnd[0] = new BN(1).toRed(this) - wnd[1] = a - for (var i = 2; i < wnd.length; i++) { - wnd[i] = this.mul(wnd[i - 1], a) - } - var res = wnd[0] - var current = 0 - var currentLen = 0 - var start = num.bitLength() % 26 - if (start === 0) { - start = 26 - } - for (i = num.length - 1; i >= 0; i--) { - var word = num.words[i] - for (var j = start - 1; j >= 0; j--) { - var bit = (word >> j) & 1 - if (res !== wnd[0]) { - res = this.sqr(res) - } - if (bit === 0 && current === 0) { - currentLen = 0 - continue - } - current <<= 1 - current |= bit - currentLen++ - if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue - res = this.mul(res, wnd[current]) - currentLen = 0 - current = 0 - } - start = 26 - } - return res - } - Red.prototype.convertTo = function convertTo(num) { - var r = num.umod(this.m) - return r === num ? r.clone() : r - } - Red.prototype.convertFrom = function convertFrom(num) { - var res = num.clone() - res.red = null - return res - } - BN.mont = function mont(num) { - return new Mont(num) - } - function Mont(m) { - Red.call(this, m) - this.shift = this.m.bitLength() - if (this.shift % 26 !== 0) { - this.shift += 26 - (this.shift % 26) - } - this.r = new BN(1).iushln(this.shift) - this.r2 = this.imod(this.r.sqr()) - this.rinv = this.r._invmp(this.m) - this.minv = this.rinv.mul(this.r).isubn(1).div(this.m) - this.minv = this.minv.umod(this.r) - this.minv = this.r.sub(this.minv) - } - inherits(Mont, Red) - Mont.prototype.convertTo = function convertTo(num) { - return this.imod(num.ushln(this.shift)) - } - Mont.prototype.convertFrom = function convertFrom(num) { - var r = this.imod(num.mul(this.rinv)) - r.red = null - return r - } - Mont.prototype.imul = function imul(a, b) { - if (a.isZero() || b.isZero()) { - a.words[0] = 0 - a.length = 1 - return a - } - var t = a.imul(b) - var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m) - var u = t.isub(c).iushrn(this.shift) - var res = u - if (u.cmp(this.m) >= 0) { - res = u.isub(this.m) - } else if (u.cmpn(0) < 0) { - res = u.iadd(this.m) - } - return res._forceRed(this) - } - Mont.prototype.mul = function mul(a, b) { - if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this) - var t = a.mul(b) - var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m) - var u = t.isub(c).iushrn(this.shift) - var res = u - if (u.cmp(this.m) >= 0) { - res = u.isub(this.m) - } else if (u.cmpn(0) < 0) { - res = u.iadd(this.m) - } - return res._forceRed(this) - } - Mont.prototype.invm = function invm(a) { - var res = this.imod(a._invmp(this.m).mul(this.r2)) - return res._forceRed(this) - } - })(typeof module === 'undefined' || module, this) - }, - { buffer: 49 } - ], - 48: [ - function (require, module, exports) { - var r - module.exports = function rand(len) { - if (!r) r = new Rand(null) - return r.generate(len) - } - function Rand(rand) { - this.rand = rand - } - module.exports.Rand = Rand - Rand.prototype.generate = function generate(len) { - return this._rand(len) - } - Rand.prototype._rand = function _rand(n) { - if (this.rand.getBytes) return this.rand.getBytes(n) - var res = new Uint8Array(n) - for (var i = 0; i < res.length; i++) res[i] = this.rand.getByte() - return res - } - if (typeof self === 'object') { - if (self.crypto && self.crypto.getRandomValues) { - Rand.prototype._rand = function _rand(n) { - var arr = new Uint8Array(n) - self.crypto.getRandomValues(arr) - return arr - } - } else if (self.msCrypto && self.msCrypto.getRandomValues) { - Rand.prototype._rand = function _rand(n) { - var arr = new Uint8Array(n) - self.msCrypto.getRandomValues(arr) - return arr - } - } else if (typeof window === 'object') { - Rand.prototype._rand = function () { - throw new Error('Not implemented yet') - } - } - } else { - try { - var crypto = require('crypto') - if (typeof crypto.randomBytes !== 'function') throw new Error('Not supported') - Rand.prototype._rand = function _rand(n) { - return crypto.randomBytes(n) - } - } catch (e) {} - } - }, - { crypto: 49 } - ], - 49: [function (require, module, exports) {}, {}], - 50: [ - function (require, module, exports) { - var Buffer = require('safe-buffer').Buffer - function asUInt32Array(buf) { - if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf) - var len = (buf.length / 4) | 0 - var out = new Array(len) - for (var i = 0; i < len; i++) { - out[i] = buf.readUInt32BE(i * 4) - } - return out - } - function scrubVec(v) { - for (var i = 0; i < v.length; v++) { - v[i] = 0 - } - } - function cryptBlock(M, keySchedule, SUB_MIX, SBOX, nRounds) { - var SUB_MIX0 = SUB_MIX[0] - var SUB_MIX1 = SUB_MIX[1] - var SUB_MIX2 = SUB_MIX[2] - var SUB_MIX3 = SUB_MIX[3] - var s0 = M[0] ^ keySchedule[0] - var s1 = M[1] ^ keySchedule[1] - var s2 = M[2] ^ keySchedule[2] - var s3 = M[3] ^ keySchedule[3] - var t0, t1, t2, t3 - var ksRow = 4 - for (var round = 1; round < nRounds; round++) { - t0 = - SUB_MIX0[s0 >>> 24] ^ - SUB_MIX1[(s1 >>> 16) & 255] ^ - SUB_MIX2[(s2 >>> 8) & 255] ^ - SUB_MIX3[s3 & 255] ^ - keySchedule[ksRow++] - t1 = - SUB_MIX0[s1 >>> 24] ^ - SUB_MIX1[(s2 >>> 16) & 255] ^ - SUB_MIX2[(s3 >>> 8) & 255] ^ - SUB_MIX3[s0 & 255] ^ - keySchedule[ksRow++] - t2 = - SUB_MIX0[s2 >>> 24] ^ - SUB_MIX1[(s3 >>> 16) & 255] ^ - SUB_MIX2[(s0 >>> 8) & 255] ^ - SUB_MIX3[s1 & 255] ^ - keySchedule[ksRow++] - t3 = - SUB_MIX0[s3 >>> 24] ^ - SUB_MIX1[(s0 >>> 16) & 255] ^ - SUB_MIX2[(s1 >>> 8) & 255] ^ - SUB_MIX3[s2 & 255] ^ - keySchedule[ksRow++] - s0 = t0 - s1 = t1 - s2 = t2 - s3 = t3 - } - t0 = - ((SBOX[s0 >>> 24] << 24) | - (SBOX[(s1 >>> 16) & 255] << 16) | - (SBOX[(s2 >>> 8) & 255] << 8) | - SBOX[s3 & 255]) ^ - keySchedule[ksRow++] - t1 = - ((SBOX[s1 >>> 24] << 24) | - (SBOX[(s2 >>> 16) & 255] << 16) | - (SBOX[(s3 >>> 8) & 255] << 8) | - SBOX[s0 & 255]) ^ - keySchedule[ksRow++] - t2 = - ((SBOX[s2 >>> 24] << 24) | - (SBOX[(s3 >>> 16) & 255] << 16) | - (SBOX[(s0 >>> 8) & 255] << 8) | - SBOX[s1 & 255]) ^ - keySchedule[ksRow++] - t3 = - ((SBOX[s3 >>> 24] << 24) | - (SBOX[(s0 >>> 16) & 255] << 16) | - (SBOX[(s1 >>> 8) & 255] << 8) | - SBOX[s2 & 255]) ^ - keySchedule[ksRow++] - t0 = t0 >>> 0 - t1 = t1 >>> 0 - t2 = t2 >>> 0 - t3 = t3 >>> 0 - return [t0, t1, t2, t3] - } - var RCON = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54] - var G = (function () { - var d = new Array(256) - for (var j = 0; j < 256; j++) { - if (j < 128) { - d[j] = j << 1 - } else { - d[j] = (j << 1) ^ 283 - } - } - var SBOX = [] - var INV_SBOX = [] - var SUB_MIX = [[], [], [], []] - var INV_SUB_MIX = [[], [], [], []] - var x = 0 - var xi = 0 - for (var i = 0; i < 256; ++i) { - var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4) - sx = (sx >>> 8) ^ (sx & 255) ^ 99 - SBOX[x] = sx - INV_SBOX[sx] = x - var x2 = d[x] - var x4 = d[x2] - var x8 = d[x4] - var t = (d[sx] * 257) ^ (sx * 16843008) - SUB_MIX[0][x] = (t << 24) | (t >>> 8) - SUB_MIX[1][x] = (t << 16) | (t >>> 16) - SUB_MIX[2][x] = (t << 8) | (t >>> 24) - SUB_MIX[3][x] = t - t = (x8 * 16843009) ^ (x4 * 65537) ^ (x2 * 257) ^ (x * 16843008) - INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8) - INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16) - INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24) - INV_SUB_MIX[3][sx] = t - if (x === 0) { - x = xi = 1 - } else { - x = x2 ^ d[d[d[x8 ^ x2]]] - xi ^= d[d[xi]] - } - } - return { SBOX: SBOX, INV_SBOX: INV_SBOX, SUB_MIX: SUB_MIX, INV_SUB_MIX: INV_SUB_MIX } - })() - function AES(key) { - this._key = asUInt32Array(key) - this._reset() - } - AES.blockSize = 4 * 4 - AES.keySize = 256 / 8 - AES.prototype.blockSize = AES.blockSize - AES.prototype.keySize = AES.keySize - AES.prototype._reset = function () { - var keyWords = this._key - var keySize = keyWords.length - var nRounds = keySize + 6 - var ksRows = (nRounds + 1) * 4 - var keySchedule = [] - for (var k = 0; k < keySize; k++) { - keySchedule[k] = keyWords[k] - } - for (k = keySize; k < ksRows; k++) { - var t = keySchedule[k - 1] - if (k % keySize === 0) { - t = (t << 8) | (t >>> 24) - t = - (G.SBOX[t >>> 24] << 24) | - (G.SBOX[(t >>> 16) & 255] << 16) | - (G.SBOX[(t >>> 8) & 255] << 8) | - G.SBOX[t & 255] - t ^= RCON[(k / keySize) | 0] << 24 - } else if (keySize > 6 && k % keySize === 4) { - t = - (G.SBOX[t >>> 24] << 24) | - (G.SBOX[(t >>> 16) & 255] << 16) | - (G.SBOX[(t >>> 8) & 255] << 8) | - G.SBOX[t & 255] - } - keySchedule[k] = keySchedule[k - keySize] ^ t - } - var invKeySchedule = [] - for (var ik = 0; ik < ksRows; ik++) { - var ksR = ksRows - ik - var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)] - if (ik < 4 || ksR <= 4) { - invKeySchedule[ik] = tt - } else { - invKeySchedule[ik] = - G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^ - G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 255]] ^ - G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 255]] ^ - G.INV_SUB_MIX[3][G.SBOX[tt & 255]] - } - } - this._nRounds = nRounds - this._keySchedule = keySchedule - this._invKeySchedule = invKeySchedule - } - AES.prototype.encryptBlockRaw = function (M) { - M = asUInt32Array(M) - return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds) - } - AES.prototype.encryptBlock = function (M) { - var out = this.encryptBlockRaw(M) - var buf = Buffer.allocUnsafe(16) - buf.writeUInt32BE(out[0], 0) - buf.writeUInt32BE(out[1], 4) - buf.writeUInt32BE(out[2], 8) - buf.writeUInt32BE(out[3], 12) - return buf - } - AES.prototype.decryptBlock = function (M) { - M = asUInt32Array(M) - var m1 = M[1] - M[1] = M[3] - M[3] = m1 - var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds) - var buf = Buffer.allocUnsafe(16) - buf.writeUInt32BE(out[0], 0) - buf.writeUInt32BE(out[3], 4) - buf.writeUInt32BE(out[2], 8) - buf.writeUInt32BE(out[1], 12) - return buf - } - AES.prototype.scrub = function () { - scrubVec(this._keySchedule) - scrubVec(this._invKeySchedule) - scrubVec(this._key) - } - module.exports.AES = AES - }, - { 'safe-buffer': 183 } - ], - 51: [ - function (require, module, exports) { - var aes = require('./aes') - var Buffer = require('safe-buffer').Buffer - var Transform = require('cipher-base') - var inherits = require('inherits') - var GHASH = require('./ghash') - var xor = require('buffer-xor') - var incr32 = require('./incr32') - function xorTest(a, b) { - var out = 0 - if (a.length !== b.length) out++ - var len = Math.min(a.length, b.length) - for (var i = 0; i < len; ++i) { - out += a[i] ^ b[i] - } - return out - } - function calcIv(self, iv, ck) { - if (iv.length === 12) { - self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])]) - return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])]) - } - var ghash = new GHASH(ck) - var len = iv.length - var toPad = len % 16 - ghash.update(iv) - if (toPad) { - toPad = 16 - toPad - ghash.update(Buffer.alloc(toPad, 0)) - } - ghash.update(Buffer.alloc(8, 0)) - var ivBits = len * 8 - var tail = Buffer.alloc(8) - tail.writeUIntBE(ivBits, 0, 8) - ghash.update(tail) - self._finID = ghash.state - var out = Buffer.from(self._finID) - incr32(out) - return out - } - function StreamCipher(mode, key, iv, decrypt) { - Transform.call(this) - var h = Buffer.alloc(4, 0) - this._cipher = new aes.AES(key) - var ck = this._cipher.encryptBlock(h) - this._ghash = new GHASH(ck) - iv = calcIv(this, iv, ck) - this._prev = Buffer.from(iv) - this._cache = Buffer.allocUnsafe(0) - this._secCache = Buffer.allocUnsafe(0) - this._decrypt = decrypt - this._alen = 0 - this._len = 0 - this._mode = mode - this._authTag = null - this._called = false - } - inherits(StreamCipher, Transform) - StreamCipher.prototype._update = function (chunk) { - if (!this._called && this._alen) { - var rump = 16 - (this._alen % 16) - if (rump < 16) { - rump = Buffer.alloc(rump, 0) - this._ghash.update(rump) - } - } - this._called = true - var out = this._mode.encrypt(this, chunk) - if (this._decrypt) { - this._ghash.update(chunk) - } else { - this._ghash.update(out) - } - this._len += chunk.length - return out - } - StreamCipher.prototype._final = function () { - if (this._decrypt && !this._authTag) - throw new Error('Unsupported state or unable to authenticate data') - var tag = xor( - this._ghash.final(this._alen * 8, this._len * 8), - this._cipher.encryptBlock(this._finID) - ) - if (this._decrypt && xorTest(tag, this._authTag)) - throw new Error('Unsupported state or unable to authenticate data') - this._authTag = tag - this._cipher.scrub() - } - StreamCipher.prototype.getAuthTag = function getAuthTag() { - if (this._decrypt || !Buffer.isBuffer(this._authTag)) - throw new Error('Attempting to get auth tag in unsupported state') - return this._authTag - } - StreamCipher.prototype.setAuthTag = function setAuthTag(tag) { - if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state') - this._authTag = tag - } - StreamCipher.prototype.setAAD = function setAAD(buf) { - if (this._called) throw new Error('Attempting to set AAD in unsupported state') - this._ghash.update(buf) - this._alen += buf.length - } - module.exports = StreamCipher - }, - { - './aes': 50, - './ghash': 55, - './incr32': 56, - 'buffer-xor': 97, - 'cipher-base': 98, - inherits: 151, - 'safe-buffer': 183 - } - ], - 52: [ - function (require, module, exports) { - var ciphers = require('./encrypter') - var deciphers = require('./decrypter') - var modes = require('./modes/list.json') - function getCiphers() { - return Object.keys(modes) - } - exports.createCipher = exports.Cipher = ciphers.createCipher - exports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv - exports.createDecipher = exports.Decipher = deciphers.createDecipher - exports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv - exports.listCiphers = exports.getCiphers = getCiphers - }, - { './decrypter': 53, './encrypter': 54, './modes/list.json': 64 } - ], - 53: [ - function (require, module, exports) { - var AuthCipher = require('./authCipher') - var Buffer = require('safe-buffer').Buffer - var MODES = require('./modes') - var StreamCipher = require('./streamCipher') - var Transform = require('cipher-base') - var aes = require('./aes') - var ebtk = require('evp_bytestokey') - var inherits = require('inherits') - function Decipher(mode, key, iv) { - Transform.call(this) - this._cache = new Splitter() - this._last = void 0 - this._cipher = new aes.AES(key) - this._prev = Buffer.from(iv) - this._mode = mode - this._autopadding = true - } - inherits(Decipher, Transform) - Decipher.prototype._update = function (data) { - this._cache.add(data) - var chunk - var thing - var out = [] - while ((chunk = this._cache.get(this._autopadding))) { - thing = this._mode.decrypt(this, chunk) - out.push(thing) - } - return Buffer.concat(out) - } - Decipher.prototype._final = function () { - var chunk = this._cache.flush() - if (this._autopadding) { - return unpad(this._mode.decrypt(this, chunk)) - } else if (chunk) { - throw new Error('data not multiple of block length') - } - } - Decipher.prototype.setAutoPadding = function (setTo) { - this._autopadding = !!setTo - return this - } - function Splitter() { - this.cache = Buffer.allocUnsafe(0) - } - Splitter.prototype.add = function (data) { - this.cache = Buffer.concat([this.cache, data]) - } - Splitter.prototype.get = function (autoPadding) { - var out - if (autoPadding) { - if (this.cache.length > 16) { - out = this.cache.slice(0, 16) - this.cache = this.cache.slice(16) - return out - } - } else { - if (this.cache.length >= 16) { - out = this.cache.slice(0, 16) - this.cache = this.cache.slice(16) - return out - } - } - return null - } - Splitter.prototype.flush = function () { - if (this.cache.length) return this.cache - } - function unpad(last) { - var padded = last[15] - if (padded < 1 || padded > 16) { - throw new Error('unable to decrypt data') - } - var i = -1 - while (++i < padded) { - if (last[i + (16 - padded)] !== padded) { - throw new Error('unable to decrypt data') - } - } - if (padded === 16) return - return last.slice(0, 16 - padded) - } - function createDecipheriv(suite, password, iv) { - var config = MODES[suite.toLowerCase()] - if (!config) throw new TypeError('invalid suite type') - if (typeof iv === 'string') iv = Buffer.from(iv) - if (config.mode !== 'GCM' && iv.length !== config.iv) - throw new TypeError('invalid iv length ' + iv.length) - if (typeof password === 'string') password = Buffer.from(password) - if (password.length !== config.key / 8) - throw new TypeError('invalid key length ' + password.length) - if (config.type === 'stream') { - return new StreamCipher(config.module, password, iv, true) - } else if (config.type === 'auth') { - return new AuthCipher(config.module, password, iv, true) - } - return new Decipher(config.module, password, iv) - } - function createDecipher(suite, password) { - var config = MODES[suite.toLowerCase()] - if (!config) throw new TypeError('invalid suite type') - var keys = ebtk(password, false, config.key, config.iv) - return createDecipheriv(suite, keys.key, keys.iv) - } - exports.createDecipher = createDecipher - exports.createDecipheriv = createDecipheriv - }, - { - './aes': 50, - './authCipher': 51, - './modes': 63, - './streamCipher': 66, - 'cipher-base': 98, - evp_bytestokey: 135, - inherits: 151, - 'safe-buffer': 183 - } - ], - 54: [ - function (require, module, exports) { - var MODES = require('./modes') - var AuthCipher = require('./authCipher') - var Buffer = require('safe-buffer').Buffer - var StreamCipher = require('./streamCipher') - var Transform = require('cipher-base') - var aes = require('./aes') - var ebtk = require('evp_bytestokey') - var inherits = require('inherits') - function Cipher(mode, key, iv) { - Transform.call(this) - this._cache = new Splitter() - this._cipher = new aes.AES(key) - this._prev = Buffer.from(iv) - this._mode = mode - this._autopadding = true - } - inherits(Cipher, Transform) - Cipher.prototype._update = function (data) { - this._cache.add(data) - var chunk - var thing - var out = [] - while ((chunk = this._cache.get())) { - thing = this._mode.encrypt(this, chunk) - out.push(thing) - } - return Buffer.concat(out) - } - var PADDING = Buffer.alloc(16, 16) - Cipher.prototype._final = function () { - var chunk = this._cache.flush() - if (this._autopadding) { - chunk = this._mode.encrypt(this, chunk) - this._cipher.scrub() - return chunk - } - if (!chunk.equals(PADDING)) { - this._cipher.scrub() - throw new Error('data not multiple of block length') - } - } - Cipher.prototype.setAutoPadding = function (setTo) { - this._autopadding = !!setTo - return this - } - function Splitter() { - this.cache = Buffer.allocUnsafe(0) - } - Splitter.prototype.add = function (data) { - this.cache = Buffer.concat([this.cache, data]) - } - Splitter.prototype.get = function () { - if (this.cache.length > 15) { - var out = this.cache.slice(0, 16) - this.cache = this.cache.slice(16) - return out - } - return null - } - Splitter.prototype.flush = function () { - var len = 16 - this.cache.length - var padBuff = Buffer.allocUnsafe(len) - var i = -1 - while (++i < len) { - padBuff.writeUInt8(len, i) - } - return Buffer.concat([this.cache, padBuff]) - } - function createCipheriv(suite, password, iv) { - var config = MODES[suite.toLowerCase()] - if (!config) throw new TypeError('invalid suite type') - if (typeof password === 'string') password = Buffer.from(password) - if (password.length !== config.key / 8) - throw new TypeError('invalid key length ' + password.length) - if (typeof iv === 'string') iv = Buffer.from(iv) - if (config.mode !== 'GCM' && iv.length !== config.iv) - throw new TypeError('invalid iv length ' + iv.length) - if (config.type === 'stream') { - return new StreamCipher(config.module, password, iv) - } else if (config.type === 'auth') { - return new AuthCipher(config.module, password, iv) - } - return new Cipher(config.module, password, iv) - } - function createCipher(suite, password) { - var config = MODES[suite.toLowerCase()] - if (!config) throw new TypeError('invalid suite type') - var keys = ebtk(password, false, config.key, config.iv) - return createCipheriv(suite, keys.key, keys.iv) - } - exports.createCipheriv = createCipheriv - exports.createCipher = createCipher - }, - { - './aes': 50, - './authCipher': 51, - './modes': 63, - './streamCipher': 66, - 'cipher-base': 98, - evp_bytestokey: 135, - inherits: 151, - 'safe-buffer': 183 - } - ], - 55: [ - function (require, module, exports) { - var Buffer = require('safe-buffer').Buffer - var ZEROES = Buffer.alloc(16, 0) - function toArray(buf) { - return [ - buf.readUInt32BE(0), - buf.readUInt32BE(4), - buf.readUInt32BE(8), - buf.readUInt32BE(12) - ] - } - function fromArray(out) { - var buf = Buffer.allocUnsafe(16) - buf.writeUInt32BE(out[0] >>> 0, 0) - buf.writeUInt32BE(out[1] >>> 0, 4) - buf.writeUInt32BE(out[2] >>> 0, 8) - buf.writeUInt32BE(out[3] >>> 0, 12) - return buf - } - function GHASH(key) { - this.h = key - this.state = Buffer.alloc(16, 0) - this.cache = Buffer.allocUnsafe(0) - } - GHASH.prototype.ghash = function (block) { - var i = -1 - while (++i < block.length) { - this.state[i] ^= block[i] - } - this._multiply() - } - GHASH.prototype._multiply = function () { - var Vi = toArray(this.h) - var Zi = [0, 0, 0, 0] - var j, xi, lsbVi - var i = -1 - while (++i < 128) { - xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0 - if (xi) { - Zi[0] ^= Vi[0] - Zi[1] ^= Vi[1] - Zi[2] ^= Vi[2] - Zi[3] ^= Vi[3] - } - lsbVi = (Vi[3] & 1) !== 0 - for (j = 3; j > 0; j--) { - Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31) - } - Vi[0] = Vi[0] >>> 1 - if (lsbVi) { - Vi[0] = Vi[0] ^ (225 << 24) - } - } - this.state = fromArray(Zi) - } - GHASH.prototype.update = function (buf) { - this.cache = Buffer.concat([this.cache, buf]) - var chunk - while (this.cache.length >= 16) { - chunk = this.cache.slice(0, 16) - this.cache = this.cache.slice(16) - this.ghash(chunk) - } - } - GHASH.prototype.final = function (abl, bl) { - if (this.cache.length) { - this.ghash(Buffer.concat([this.cache, ZEROES], 16)) - } - this.ghash(fromArray([0, abl, 0, bl])) - return this.state - } - module.exports = GHASH - }, - { 'safe-buffer': 183 } - ], - 56: [ - function (require, module, exports) { - function incr32(iv) { - var len = iv.length - var item - while (len--) { - item = iv.readUInt8(len) - if (item === 255) { - iv.writeUInt8(0, len) - } else { - item++ - iv.writeUInt8(item, len) - break - } - } - } - module.exports = incr32 - }, - {} - ], - 57: [ - function (require, module, exports) { - var xor = require('buffer-xor') - exports.encrypt = function (self, block) { - var data = xor(block, self._prev) - self._prev = self._cipher.encryptBlock(data) - return self._prev - } - exports.decrypt = function (self, block) { - var pad = self._prev - self._prev = block - var out = self._cipher.decryptBlock(block) - return xor(out, pad) - } - }, - { 'buffer-xor': 97 } - ], - 58: [ - function (require, module, exports) { - var Buffer = require('safe-buffer').Buffer - var xor = require('buffer-xor') - function encryptStart(self, data, decrypt) { - var len = data.length - var out = xor(data, self._cache) - self._cache = self._cache.slice(len) - self._prev = Buffer.concat([self._prev, decrypt ? data : out]) - return out - } - exports.encrypt = function (self, data, decrypt) { - var out = Buffer.allocUnsafe(0) - var len - while (data.length) { - if (self._cache.length === 0) { - self._cache = self._cipher.encryptBlock(self._prev) - self._prev = Buffer.allocUnsafe(0) - } - if (self._cache.length <= data.length) { - len = self._cache.length - out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)]) - data = data.slice(len) - } else { - out = Buffer.concat([out, encryptStart(self, data, decrypt)]) - break - } - } - return out - } - }, - { 'buffer-xor': 97, 'safe-buffer': 183 } - ], - 59: [ - function (require, module, exports) { - var Buffer = require('safe-buffer').Buffer - function encryptByte(self, byteParam, decrypt) { - var pad - var i = -1 - var len = 8 - var out = 0 - var bit, value - while (++i < len) { - pad = self._cipher.encryptBlock(self._prev) - bit = byteParam & (1 << (7 - i)) ? 128 : 0 - value = pad[0] ^ bit - out += (value & 128) >> i % 8 - self._prev = shiftIn(self._prev, decrypt ? bit : value) - } - return out - } - function shiftIn(buffer, value) { - var len = buffer.length - var i = -1 - var out = Buffer.allocUnsafe(buffer.length) - buffer = Buffer.concat([buffer, Buffer.from([value])]) - while (++i < len) { - out[i] = (buffer[i] << 1) | (buffer[i + 1] >> 7) - } - return out - } - exports.encrypt = function (self, chunk, decrypt) { - var len = chunk.length - var out = Buffer.allocUnsafe(len) - var i = -1 - while (++i < len) { - out[i] = encryptByte(self, chunk[i], decrypt) - } - return out - } - }, - { 'safe-buffer': 183 } - ], - 60: [ - function (require, module, exports) { - var Buffer = require('safe-buffer').Buffer - function encryptByte(self, byteParam, decrypt) { - var pad = self._cipher.encryptBlock(self._prev) - var out = pad[0] ^ byteParam - self._prev = Buffer.concat([ - self._prev.slice(1), - Buffer.from([decrypt ? byteParam : out]) - ]) - return out - } - exports.encrypt = function (self, chunk, decrypt) { - var len = chunk.length - var out = Buffer.allocUnsafe(len) - var i = -1 - while (++i < len) { - out[i] = encryptByte(self, chunk[i], decrypt) - } - return out - } - }, - { 'safe-buffer': 183 } - ], - 61: [ - function (require, module, exports) { - var xor = require('buffer-xor') - var Buffer = require('safe-buffer').Buffer - var incr32 = require('../incr32') - function getBlock(self) { - var out = self._cipher.encryptBlockRaw(self._prev) - incr32(self._prev) - return out - } - var blockSize = 16 - exports.encrypt = function (self, chunk) { - var chunkNum = Math.ceil(chunk.length / blockSize) - var start = self._cache.length - self._cache = Buffer.concat([self._cache, Buffer.allocUnsafe(chunkNum * blockSize)]) - for (var i = 0; i < chunkNum; i++) { - var out = getBlock(self) - var offset = start + i * blockSize - self._cache.writeUInt32BE(out[0], offset + 0) - self._cache.writeUInt32BE(out[1], offset + 4) - self._cache.writeUInt32BE(out[2], offset + 8) - self._cache.writeUInt32BE(out[3], offset + 12) - } - var pad = self._cache.slice(0, chunk.length) - self._cache = self._cache.slice(chunk.length) - return xor(chunk, pad) - } - }, - { '../incr32': 56, 'buffer-xor': 97, 'safe-buffer': 183 } - ], - 62: [ - function (require, module, exports) { - exports.encrypt = function (self, block) { - return self._cipher.encryptBlock(block) - } - exports.decrypt = function (self, block) { - return self._cipher.decryptBlock(block) - } - }, - {} - ], - 63: [ - function (require, module, exports) { - var modeModules = { - ECB: require('./ecb'), - CBC: require('./cbc'), - CFB: require('./cfb'), - CFB8: require('./cfb8'), - CFB1: require('./cfb1'), - OFB: require('./ofb'), - CTR: require('./ctr'), - GCM: require('./ctr') - } - var modes = require('./list.json') - for (var key in modes) { - modes[key].module = modeModules[modes[key].mode] - } - module.exports = modes - }, - { - './cbc': 57, - './cfb': 58, - './cfb1': 59, - './cfb8': 60, - './ctr': 61, - './ecb': 62, - './list.json': 64, - './ofb': 65 - } - ], - 64: [ - function (require, module, exports) { - module.exports = { - 'aes-128-ecb': { cipher: 'AES', key: 128, iv: 0, mode: 'ECB', type: 'block' }, - 'aes-192-ecb': { cipher: 'AES', key: 192, iv: 0, mode: 'ECB', type: 'block' }, - 'aes-256-ecb': { cipher: 'AES', key: 256, iv: 0, mode: 'ECB', type: 'block' }, - 'aes-128-cbc': { cipher: 'AES', key: 128, iv: 16, mode: 'CBC', type: 'block' }, - 'aes-192-cbc': { cipher: 'AES', key: 192, iv: 16, mode: 'CBC', type: 'block' }, - 'aes-256-cbc': { cipher: 'AES', key: 256, iv: 16, mode: 'CBC', type: 'block' }, - aes128: { cipher: 'AES', key: 128, iv: 16, mode: 'CBC', type: 'block' }, - aes192: { cipher: 'AES', key: 192, iv: 16, mode: 'CBC', type: 'block' }, - aes256: { cipher: 'AES', key: 256, iv: 16, mode: 'CBC', type: 'block' }, - 'aes-128-cfb': { cipher: 'AES', key: 128, iv: 16, mode: 'CFB', type: 'stream' }, - 'aes-192-cfb': { cipher: 'AES', key: 192, iv: 16, mode: 'CFB', type: 'stream' }, - 'aes-256-cfb': { cipher: 'AES', key: 256, iv: 16, mode: 'CFB', type: 'stream' }, - 'aes-128-cfb8': { cipher: 'AES', key: 128, iv: 16, mode: 'CFB8', type: 'stream' }, - 'aes-192-cfb8': { cipher: 'AES', key: 192, iv: 16, mode: 'CFB8', type: 'stream' }, - 'aes-256-cfb8': { cipher: 'AES', key: 256, iv: 16, mode: 'CFB8', type: 'stream' }, - 'aes-128-cfb1': { cipher: 'AES', key: 128, iv: 16, mode: 'CFB1', type: 'stream' }, - 'aes-192-cfb1': { cipher: 'AES', key: 192, iv: 16, mode: 'CFB1', type: 'stream' }, - 'aes-256-cfb1': { cipher: 'AES', key: 256, iv: 16, mode: 'CFB1', type: 'stream' }, - 'aes-128-ofb': { cipher: 'AES', key: 128, iv: 16, mode: 'OFB', type: 'stream' }, - 'aes-192-ofb': { cipher: 'AES', key: 192, iv: 16, mode: 'OFB', type: 'stream' }, - 'aes-256-ofb': { cipher: 'AES', key: 256, iv: 16, mode: 'OFB', type: 'stream' }, - 'aes-128-ctr': { cipher: 'AES', key: 128, iv: 16, mode: 'CTR', type: 'stream' }, - 'aes-192-ctr': { cipher: 'AES', key: 192, iv: 16, mode: 'CTR', type: 'stream' }, - 'aes-256-ctr': { cipher: 'AES', key: 256, iv: 16, mode: 'CTR', type: 'stream' }, - 'aes-128-gcm': { cipher: 'AES', key: 128, iv: 12, mode: 'GCM', type: 'auth' }, - 'aes-192-gcm': { cipher: 'AES', key: 192, iv: 12, mode: 'GCM', type: 'auth' }, - 'aes-256-gcm': { cipher: 'AES', key: 256, iv: 12, mode: 'GCM', type: 'auth' } - } - }, - {} - ], - 65: [ - function (require, module, exports) { - ;(function (Buffer) { - ;(function () { - var xor = require('buffer-xor') - function getBlock(self) { - self._prev = self._cipher.encryptBlock(self._prev) - return self._prev - } - exports.encrypt = function (self, chunk) { - while (self._cache.length < chunk.length) { - self._cache = Buffer.concat([self._cache, getBlock(self)]) - } - var pad = self._cache.slice(0, chunk.length) - self._cache = self._cache.slice(chunk.length) - return xor(chunk, pad) - } - }.call(this)) - }.call(this, require('buffer').Buffer)) - }, - { buffer: 93, 'buffer-xor': 97 } - ], - 66: [ - function (require, module, exports) { - var aes = require('./aes') - var Buffer = require('safe-buffer').Buffer - var Transform = require('cipher-base') - var inherits = require('inherits') - function StreamCipher(mode, key, iv, decrypt) { - Transform.call(this) - this._cipher = new aes.AES(key) - this._prev = Buffer.from(iv) - this._cache = Buffer.allocUnsafe(0) - this._secCache = Buffer.allocUnsafe(0) - this._decrypt = decrypt - this._mode = mode - } - inherits(StreamCipher, Transform) - StreamCipher.prototype._update = function (chunk) { - return this._mode.encrypt(this, chunk, this._decrypt) - } - StreamCipher.prototype._final = function () { - this._cipher.scrub() - } - module.exports = StreamCipher - }, - { './aes': 50, 'cipher-base': 98, inherits: 151, 'safe-buffer': 183 } - ], - 67: [ - function (require, module, exports) { - var DES = require('browserify-des') - var aes = require('browserify-aes/browser') - var aesModes = require('browserify-aes/modes') - var desModes = require('browserify-des/modes') - var ebtk = require('evp_bytestokey') - function createCipher(suite, password) { - suite = suite.toLowerCase() - var keyLen, ivLen - if (aesModes[suite]) { - keyLen = aesModes[suite].key - ivLen = aesModes[suite].iv - } else if (desModes[suite]) { - keyLen = desModes[suite].key * 8 - ivLen = desModes[suite].iv - } else { - throw new TypeError('invalid suite type') - } - var keys = ebtk(password, false, keyLen, ivLen) - return createCipheriv(suite, keys.key, keys.iv) - } - function createDecipher(suite, password) { - suite = suite.toLowerCase() - var keyLen, ivLen - if (aesModes[suite]) { - keyLen = aesModes[suite].key - ivLen = aesModes[suite].iv - } else if (desModes[suite]) { - keyLen = desModes[suite].key * 8 - ivLen = desModes[suite].iv - } else { - throw new TypeError('invalid suite type') - } - var keys = ebtk(password, false, keyLen, ivLen) - return createDecipheriv(suite, keys.key, keys.iv) - } - function createCipheriv(suite, key, iv) { - suite = suite.toLowerCase() - if (aesModes[suite]) return aes.createCipheriv(suite, key, iv) - if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite }) - throw new TypeError('invalid suite type') - } - function createDecipheriv(suite, key, iv) { - suite = suite.toLowerCase() - if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv) - if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true }) - throw new TypeError('invalid suite type') - } - function getCiphers() { - return Object.keys(desModes).concat(aes.getCiphers()) - } - exports.createCipher = exports.Cipher = createCipher - exports.createCipheriv = exports.Cipheriv = createCipheriv - exports.createDecipher = exports.Decipher = createDecipher - exports.createDecipheriv = exports.Decipheriv = createDecipheriv - exports.listCiphers = exports.getCiphers = getCiphers - }, - { - 'browserify-aes/browser': 52, - 'browserify-aes/modes': 63, - 'browserify-des': 68, - 'browserify-des/modes': 69, - evp_bytestokey: 135 - } - ], - 68: [ - function (require, module, exports) { - var CipherBase = require('cipher-base') - var des = require('des.js') - var inherits = require('inherits') - var Buffer = require('safe-buffer').Buffer - var modes = { - 'des-ede3-cbc': des.CBC.instantiate(des.EDE), - 'des-ede3': des.EDE, - 'des-ede-cbc': des.CBC.instantiate(des.EDE), - 'des-ede': des.EDE, - 'des-cbc': des.CBC.instantiate(des.DES), - 'des-ecb': des.DES - } - modes.des = modes['des-cbc'] - modes.des3 = modes['des-ede3-cbc'] - module.exports = DES - inherits(DES, CipherBase) - function DES(opts) { - CipherBase.call(this) - var modeName = opts.mode.toLowerCase() - var mode = modes[modeName] - var type - if (opts.decrypt) { - type = 'decrypt' - } else { - type = 'encrypt' - } - var key = opts.key - if (!Buffer.isBuffer(key)) { - key = Buffer.from(key) - } - if (modeName === 'des-ede' || modeName === 'des-ede-cbc') { - key = Buffer.concat([key, key.slice(0, 8)]) - } - var iv = opts.iv - if (!Buffer.isBuffer(iv)) { - iv = Buffer.from(iv) - } - this._des = mode.create({ key: key, iv: iv, type: type }) - } - DES.prototype._update = function (data) { - return Buffer.from(this._des.update(data)) - } - DES.prototype._final = function () { - return Buffer.from(this._des.final()) - } - }, - { 'cipher-base': 98, 'des.js': 106, inherits: 151, 'safe-buffer': 183 } - ], - 69: [ - function (require, module, exports) { - exports['des-ecb'] = { key: 8, iv: 0 } - exports['des-cbc'] = exports.des = { key: 8, iv: 8 } - exports['des-ede3-cbc'] = exports.des3 = { key: 24, iv: 8 } - exports['des-ede3'] = { key: 24, iv: 0 } - exports['des-ede-cbc'] = { key: 16, iv: 8 } - exports['des-ede'] = { key: 16, iv: 0 } - }, - {} - ], - 70: [ - function (require, module, exports) { - ;(function (Buffer) { - ;(function () { - var bn = require('bn.js') - var randomBytes = require('randombytes') - module.exports = crt - function blind(priv) { - var r = getr(priv) - var blinder = r - .toRed(bn.mont(priv.modulus)) - .redPow(new bn(priv.publicExponent)) - .fromRed() - return { blinder: blinder, unblinder: r.invm(priv.modulus) } - } - function crt(msg, priv) { - var blinds = blind(priv) - var len = priv.modulus.byteLength() - var mod = bn.mont(priv.modulus) - var blinded = new bn(msg).mul(blinds.blinder).umod(priv.modulus) - var c1 = blinded.toRed(bn.mont(priv.prime1)) - var c2 = blinded.toRed(bn.mont(priv.prime2)) - var qinv = priv.coefficient - var p = priv.prime1 - var q = priv.prime2 - var m1 = c1.redPow(priv.exponent1) - var m2 = c2.redPow(priv.exponent2) - m1 = m1.fromRed() - m2 = m2.fromRed() - var h = m1.isub(m2).imul(qinv).umod(p) - h.imul(q) - m2.iadd(h) - return new Buffer(m2.imul(blinds.unblinder).umod(priv.modulus).toArray(false, len)) - } - crt.getr = getr - function getr(priv) { - var len = priv.modulus.byteLength() - var r = new bn(randomBytes(len)) - while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2)) { - r = new bn(randomBytes(len)) - } - return r - } - }.call(this)) - }.call(this, require('buffer').Buffer)) - }, - { 'bn.js': 71, buffer: 93, randombytes: 180 } - ], - 71: [ - function (require, module, exports) { - arguments[4][15][0].apply(exports, arguments) - }, - { buffer: 49, dup: 15 } - ], - 72: [ - function (require, module, exports) { - module.exports = require('./browser/algorithms.json') - }, - { './browser/algorithms.json': 73 } - ], - 73: [ - function (require, module, exports) { - module.exports = { - sha224WithRSAEncryption: { - sign: 'rsa', - hash: 'sha224', - id: '302d300d06096086480165030402040500041c' - }, - 'RSA-SHA224': { - sign: 'ecdsa/rsa', - hash: 'sha224', - id: '302d300d06096086480165030402040500041c' - }, - sha256WithRSAEncryption: { - sign: 'rsa', - hash: 'sha256', - id: '3031300d060960864801650304020105000420' - }, - 'RSA-SHA256': { - sign: 'ecdsa/rsa', - hash: 'sha256', - id: '3031300d060960864801650304020105000420' - }, - sha384WithRSAEncryption: { - sign: 'rsa', - hash: 'sha384', - id: '3041300d060960864801650304020205000430' - }, - 'RSA-SHA384': { - sign: 'ecdsa/rsa', - hash: 'sha384', - id: '3041300d060960864801650304020205000430' - }, - sha512WithRSAEncryption: { - sign: 'rsa', - hash: 'sha512', - id: '3051300d060960864801650304020305000440' - }, - 'RSA-SHA512': { - sign: 'ecdsa/rsa', - hash: 'sha512', - id: '3051300d060960864801650304020305000440' - }, - 'RSA-SHA1': { sign: 'rsa', hash: 'sha1', id: '3021300906052b0e03021a05000414' }, - 'ecdsa-with-SHA1': { sign: 'ecdsa', hash: 'sha1', id: '' }, - sha256: { sign: 'ecdsa', hash: 'sha256', id: '' }, - sha224: { sign: 'ecdsa', hash: 'sha224', id: '' }, - sha384: { sign: 'ecdsa', hash: 'sha384', id: '' }, - sha512: { sign: 'ecdsa', hash: 'sha512', id: '' }, - 'DSA-SHA': { sign: 'dsa', hash: 'sha1', id: '' }, - 'DSA-SHA1': { sign: 'dsa', hash: 'sha1', id: '' }, - DSA: { sign: 'dsa', hash: 'sha1', id: '' }, - 'DSA-WITH-SHA224': { sign: 'dsa', hash: 'sha224', id: '' }, - 'DSA-SHA224': { sign: 'dsa', hash: 'sha224', id: '' }, - 'DSA-WITH-SHA256': { sign: 'dsa', hash: 'sha256', id: '' }, - 'DSA-SHA256': { sign: 'dsa', hash: 'sha256', id: '' }, - 'DSA-WITH-SHA384': { sign: 'dsa', hash: 'sha384', id: '' }, - 'DSA-SHA384': { sign: 'dsa', hash: 'sha384', id: '' }, - 'DSA-WITH-SHA512': { sign: 'dsa', hash: 'sha512', id: '' }, - 'DSA-SHA512': { sign: 'dsa', hash: 'sha512', id: '' }, - 'DSA-RIPEMD160': { sign: 'dsa', hash: 'rmd160', id: '' }, - ripemd160WithRSA: { sign: 'rsa', hash: 'rmd160', id: '3021300906052b2403020105000414' }, - 'RSA-RIPEMD160': { sign: 'rsa', hash: 'rmd160', id: '3021300906052b2403020105000414' }, - md5WithRSAEncryption: { - sign: 'rsa', - hash: 'md5', - id: '3020300c06082a864886f70d020505000410' - }, - 'RSA-MD5': { sign: 'rsa', hash: 'md5', id: '3020300c06082a864886f70d020505000410' } - } - }, - {} - ], - 74: [ - function (require, module, exports) { - module.exports = { - '1.3.132.0.10': 'secp256k1', - '1.3.132.0.33': 'p224', - '1.2.840.10045.3.1.1': 'p192', - '1.2.840.10045.3.1.7': 'p256', - '1.3.132.0.34': 'p384', - '1.3.132.0.35': 'p521' - } - }, - {} - ], - 75: [ - function (require, module, exports) { - var Buffer = require('buffer').Buffer - var createHash = require('create-hash') - var stream = require('readable-stream') - var inherits = require('inherits') - var sign = require('./sign') - var verify = require('./verify') - var algorithms = require('./algorithms.json') - Object.keys(algorithms).forEach(function (key) { - algorithms[key].id = Buffer.from(algorithms[key].id, 'hex') - algorithms[key.toLowerCase()] = algorithms[key] - }) - function Sign(algorithm) { - stream.Writable.call(this) - var data = algorithms[algorithm] - if (!data) throw new Error('Unknown message digest') - this._hashType = data.hash - this._hash = createHash(data.hash) - this._tag = data.id - this._signType = data.sign - } - inherits(Sign, stream.Writable) - Sign.prototype._write = function _write(data, _, done) { - this._hash.update(data) - done() - } - Sign.prototype.update = function update(data, enc) { - if (typeof data === 'string') data = Buffer.from(data, enc) - this._hash.update(data) - return this - } - Sign.prototype.sign = function signMethod(key, enc) { - this.end() - var hash = this._hash.digest() - var sig = sign(hash, key, this._hashType, this._signType, this._tag) - return enc ? sig.toString(enc) : sig - } - function Verify(algorithm) { - stream.Writable.call(this) - var data = algorithms[algorithm] - if (!data) throw new Error('Unknown message digest') - this._hash = createHash(data.hash) - this._tag = data.id - this._signType = data.sign - } - inherits(Verify, stream.Writable) - Verify.prototype._write = function _write(data, _, done) { - this._hash.update(data) - done() - } - Verify.prototype.update = function update(data, enc) { - if (typeof data === 'string') data = Buffer.from(data, enc) - this._hash.update(data) - return this - } - Verify.prototype.verify = function verifyMethod(key, sig, enc) { - if (typeof sig === 'string') sig = Buffer.from(sig, enc) - this.end() - var hash = this._hash.digest() - return verify(sig, hash, key, this._signType, this._tag) - } - function createSign(algorithm) { - return new Sign(algorithm) - } - function createVerify(algorithm) { - return new Verify(algorithm) - } - module.exports = { - Sign: createSign, - Verify: createVerify, - createSign: createSign, - createVerify: createVerify - } - }, - { - './algorithms.json': 73, - './sign': 76, - './verify': 77, - buffer: 93, - 'create-hash': 101, - inherits: 151, - 'readable-stream': 92 - } - ], - 76: [ - function (require, module, exports) { - var Buffer = require('buffer').Buffer - var createHmac = require('create-hmac') - var crt = require('browserify-rsa') - var EC = require('elliptic').ec - var BN = require('bn.js') - var parseKeys = require('parse-asn1') - var curves = require('./curves.json') - function sign(hash, key, hashType, signType, tag) { - var priv = parseKeys(key) - if (priv.curve) { - if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') - throw new Error('wrong private key type') - return ecSign(hash, priv) - } else if (priv.type === 'dsa') { - if (signType !== 'dsa') throw new Error('wrong private key type') - return dsaSign(hash, priv, hashType) - } else { - if (signType !== 'rsa' && signType !== 'ecdsa/rsa') - throw new Error('wrong private key type') - } - hash = Buffer.concat([tag, hash]) - var len = priv.modulus.byteLength() - var pad = [0, 1] - while (hash.length + pad.length + 1 < len) pad.push(255) - pad.push(0) - var i = -1 - while (++i < hash.length) pad.push(hash[i]) - var out = crt(pad, priv) - return out - } - function ecSign(hash, priv) { - var curveId = curves[priv.curve.join('.')] - if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.')) - var curve = new EC(curveId) - var key = curve.keyFromPrivate(priv.privateKey) - var out = key.sign(hash) - return Buffer.from(out.toDER()) - } - function dsaSign(hash, priv, algo) { - var x = priv.params.priv_key - var p = priv.params.p - var q = priv.params.q - var g = priv.params.g - var r = new BN(0) - var k - var H = bits2int(hash, q).mod(q) - var s = false - var kv = getKey(x, q, hash, algo) - while (s === false) { - k = makeKey(q, kv, algo) - r = makeR(g, k, p, q) - s = k - .invm(q) - .imul(H.add(x.mul(r))) - .mod(q) - if (s.cmpn(0) === 0) { - s = false - r = new BN(0) - } - } - return toDER(r, s) - } - function toDER(r, s) { - r = r.toArray() - s = s.toArray() - if (r[0] & 128) r = [0].concat(r) - if (s[0] & 128) s = [0].concat(s) - var total = r.length + s.length + 4 - var res = [48, total, 2, r.length] - res = res.concat(r, [2, s.length], s) - return Buffer.from(res) - } - function getKey(x, q, hash, algo) { - x = Buffer.from(x.toArray()) - if (x.length < q.byteLength()) { - var zeros = Buffer.alloc(q.byteLength() - x.length) - x = Buffer.concat([zeros, x]) - } - var hlen = hash.length - var hbits = bits2octets(hash, q) - var v = Buffer.alloc(hlen) - v.fill(1) - var k = Buffer.alloc(hlen) - k = createHmac(algo, k) - .update(v) - .update(Buffer.from([0])) - .update(x) - .update(hbits) - .digest() - v = createHmac(algo, k).update(v).digest() - k = createHmac(algo, k) - .update(v) - .update(Buffer.from([1])) - .update(x) - .update(hbits) - .digest() - v = createHmac(algo, k).update(v).digest() - return { k: k, v: v } - } - function bits2int(obits, q) { - var bits = new BN(obits) - var shift = (obits.length << 3) - q.bitLength() - if (shift > 0) bits.ishrn(shift) - return bits - } - function bits2octets(bits, q) { - bits = bits2int(bits, q) - bits = bits.mod(q) - var out = Buffer.from(bits.toArray()) - if (out.length < q.byteLength()) { - var zeros = Buffer.alloc(q.byteLength() - out.length) - out = Buffer.concat([zeros, out]) - } - return out - } - function makeKey(q, kv, algo) { - var t - var k - do { - t = Buffer.alloc(0) - while (t.length * 8 < q.bitLength()) { - kv.v = createHmac(algo, kv.k).update(kv.v).digest() - t = Buffer.concat([t, kv.v]) - } - k = bits2int(t, q) - kv.k = createHmac(algo, kv.k) - .update(kv.v) - .update(Buffer.from([0])) - .digest() - kv.v = createHmac(algo, kv.k).update(kv.v).digest() - } while (k.cmp(q) !== -1) - return k - } - function makeR(g, k, p, q) { - return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q) - } - module.exports = sign - module.exports.getKey = getKey - module.exports.makeKey = makeKey - }, - { - './curves.json': 74, - 'bn.js': 47, - 'browserify-rsa': 70, - buffer: 93, - 'create-hmac': 103, - elliptic: 117, - 'parse-asn1': 164 - } - ], - 77: [ - function (require, module, exports) { - var Buffer = require('buffer').Buffer - var BN = require('bn.js') - var EC = require('elliptic').ec - var parseKeys = require('parse-asn1') - var curves = require('./curves.json') - function verify(sig, hash, key, signType, tag) { - var pub = parseKeys(key) - if (pub.type === 'ec') { - if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') - throw new Error('wrong public key type') - return ecVerify(sig, hash, pub) - } else if (pub.type === 'dsa') { - if (signType !== 'dsa') throw new Error('wrong public key type') - return dsaVerify(sig, hash, pub) - } else { - if (signType !== 'rsa' && signType !== 'ecdsa/rsa') - throw new Error('wrong public key type') - } - hash = Buffer.concat([tag, hash]) - var len = pub.modulus.byteLength() - var pad = [1] - var padNum = 0 - while (hash.length + pad.length + 2 < len) { - pad.push(255) - padNum++ - } - pad.push(0) - var i = -1 - while (++i < hash.length) { - pad.push(hash[i]) - } - pad = Buffer.from(pad) - var red = BN.mont(pub.modulus) - sig = new BN(sig).toRed(red) - sig = sig.redPow(new BN(pub.publicExponent)) - sig = Buffer.from(sig.fromRed().toArray()) - var out = padNum < 8 ? 1 : 0 - len = Math.min(sig.length, pad.length) - if (sig.length !== pad.length) out = 1 - i = -1 - while (++i < len) out |= sig[i] ^ pad[i] - return out === 0 - } - function ecVerify(sig, hash, pub) { - var curveId = curves[pub.data.algorithm.curve.join('.')] - if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.')) - var curve = new EC(curveId) - var pubkey = pub.data.subjectPrivateKey.data - return curve.verify(hash, sig, pubkey) - } - function dsaVerify(sig, hash, pub) { - var p = pub.data.p - var q = pub.data.q - var g = pub.data.g - var y = pub.data.pub_key - var unpacked = parseKeys.signature.decode(sig, 'der') - var s = unpacked.s - var r = unpacked.r - checkValue(s, q) - checkValue(r, q) - var montp = BN.mont(p) - var w = s.invm(q) - var v = g - .toRed(montp) - .redPow(new BN(hash).mul(w).mod(q)) - .fromRed() - .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed()) - .mod(p) - .mod(q) - return v.cmp(r) === 0 - } - function checkValue(b, q) { - if (b.cmpn(0) <= 0) throw new Error('invalid sig') - if (b.cmp(q) >= q) throw new Error('invalid sig') - } - module.exports = verify - }, - { './curves.json': 74, 'bn.js': 47, buffer: 93, elliptic: 117, 'parse-asn1': 164 } - ], - 78: [ - function (require, module, exports) { - 'use strict' - function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype) - subClass.prototype.constructor = subClass - subClass.__proto__ = superClass - } - var codes = {} - function createErrorType(code, message, Base) { - if (!Base) { - Base = Error - } - function getMessage(arg1, arg2, arg3) { - if (typeof message === 'string') { - return message - } else { - return message(arg1, arg2, arg3) - } - } - var NodeError = (function (_Base) { - _inheritsLoose(NodeError, _Base) - function NodeError(arg1, arg2, arg3) { - return _Base.call(this, getMessage(arg1, arg2, arg3)) || this - } - return NodeError - })(Base) - NodeError.prototype.name = Base.name - NodeError.prototype.code = code - codes[code] = NodeError - } - function oneOf(expected, thing) { - if (Array.isArray(expected)) { - var len = expected.length - expected = expected.map(function (i) { - return String(i) - }) - if (len > 2) { - return ( - 'one of ' - .concat(thing, ' ') - .concat(expected.slice(0, len - 1).join(', '), ', or ') + expected[len - 1] - ) - } else if (len === 2) { - return 'one of '.concat(thing, ' ').concat(expected[0], ' or ').concat(expected[1]) - } else { - return 'of '.concat(thing, ' ').concat(expected[0]) - } - } else { - return 'of '.concat(thing, ' ').concat(String(expected)) - } - } - function startsWith(str, search, pos) { - return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search - } - function endsWith(str, search, this_len) { - if (this_len === undefined || this_len > str.length) { - this_len = str.length - } - return str.substring(this_len - search.length, this_len) === search - } - function includes(str, search, start) { - if (typeof start !== 'number') { - start = 0 - } - if (start + search.length > str.length) { - return false - } else { - return str.indexOf(search, start) !== -1 - } - } - createErrorType( - 'ERR_INVALID_OPT_VALUE', - function (name, value) { - return 'The value "' + value + '" is invalid for option "' + name + '"' - }, - TypeError - ) - createErrorType( - 'ERR_INVALID_ARG_TYPE', - function (name, expected, actual) { - var determiner - if (typeof expected === 'string' && startsWith(expected, 'not ')) { - determiner = 'must not be' - expected = expected.replace(/^not /, '') - } else { - determiner = 'must be' - } - var msg - if (endsWith(name, ' argument')) { - msg = 'The ' - .concat(name, ' ') - .concat(determiner, ' ') - .concat(oneOf(expected, 'type')) - } else { - var type = includes(name, '.') ? 'property' : 'argument' - msg = 'The "' - .concat(name, '" ') - .concat(type, ' ') - .concat(determiner, ' ') - .concat(oneOf(expected, 'type')) - } - msg += '. Received type '.concat(typeof actual) - return msg - }, - TypeError - ) - createErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF') - createErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) { - return 'The ' + name + ' method is not implemented' - }) - createErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close') - createErrorType('ERR_STREAM_DESTROYED', function (name) { - return 'Cannot call ' + name + ' after a stream was destroyed' - }) - createErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times') - createErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable') - createErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end') - createErrorType( - 'ERR_STREAM_NULL_VALUES', - 'May not write null values to stream', - TypeError - ) - createErrorType( - 'ERR_UNKNOWN_ENCODING', - function (arg) { - return 'Unknown encoding: ' + arg - }, - TypeError - ) - createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event') - module.exports.codes = codes - }, - {} - ], - 79: [ - function (require, module, exports) { - ;(function (process) { - ;(function () { - 'use strict' - var objectKeys = - Object.keys || - function (obj) { - var keys = [] - for (var key in obj) { - keys.push(key) - } - return keys - } - module.exports = Duplex - var Readable = require('./_stream_readable') - var Writable = require('./_stream_writable') - require('inherits')(Duplex, Readable) - { - var keys = objectKeys(Writable.prototype) - for (var v = 0; v < keys.length; v++) { - var method = keys[v] - if (!Duplex.prototype[method]) - Duplex.prototype[method] = Writable.prototype[method] - } - } - function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options) - Readable.call(this, options) - Writable.call(this, options) - this.allowHalfOpen = true - if (options) { - if (options.readable === false) this.readable = false - if (options.writable === false) this.writable = false - if (options.allowHalfOpen === false) { - this.allowHalfOpen = false - this.once('end', onend) - } - } - } - Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { - enumerable: false, - get: function get() { - return this._writableState.highWaterMark - } - }) - Object.defineProperty(Duplex.prototype, 'writableBuffer', { - enumerable: false, - get: function get() { - return this._writableState && this._writableState.getBuffer() - } - }) - Object.defineProperty(Duplex.prototype, 'writableLength', { - enumerable: false, - get: function get() { - return this._writableState.length - } - }) - function onend() { - if (this._writableState.ended) return - process.nextTick(onEndNT, this) - } - function onEndNT(self) { - self.end() - } - Object.defineProperty(Duplex.prototype, 'destroyed', { - enumerable: false, - get: function get() { - if (this._readableState === undefined || this._writableState === undefined) { - return false - } - return this._readableState.destroyed && this._writableState.destroyed - }, - set: function set(value) { - if (this._readableState === undefined || this._writableState === undefined) { - return - } - this._readableState.destroyed = value - this._writableState.destroyed = value - } - }) - }.call(this)) - }.call(this, require('_process'))) - }, - { './_stream_readable': 81, './_stream_writable': 83, _process: 171, inherits: 151 } - ], - 80: [ - function (require, module, exports) { - 'use strict' - module.exports = PassThrough - var Transform = require('./_stream_transform') - require('inherits')(PassThrough, Transform) - function PassThrough(options) { - if (!(this instanceof PassThrough)) return new PassThrough(options) - Transform.call(this, options) - } - PassThrough.prototype._transform = function (chunk, encoding, cb) { - cb(null, chunk) - } - }, - { './_stream_transform': 82, inherits: 151 } - ], - 81: [ - function (require, module, exports) { - ;(function (process, global) { - ;(function () { - 'use strict' - module.exports = Readable - var Duplex - Readable.ReadableState = ReadableState - var EE = require('events').EventEmitter - var EElistenerCount = function EElistenerCount(emitter, type) { - return emitter.listeners(type).length - } - var Stream = require('./internal/streams/stream') - var Buffer = require('buffer').Buffer - var OurUint8Array = global.Uint8Array || function () {} - function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk) - } - function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array - } - var debugUtil = require('util') - var debug - if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog('stream') - } else { - debug = function debug() {} - } - var BufferList = require('./internal/streams/buffer_list') - var destroyImpl = require('./internal/streams/destroy') - var _require = require('./internal/streams/state'), - getHighWaterMark = _require.getHighWaterMark - var _require$codes = require('../errors').codes, - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_STREAM_UNSHIFT_AFTER_END_EVENT = - _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT - var StringDecoder - var createReadableStreamAsyncIterator - var from - require('inherits')(Readable, Stream) - var errorOrDestroy = destroyImpl.errorOrDestroy - var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'] - function prependListener(emitter, event, fn) { - if (typeof emitter.prependListener === 'function') - return emitter.prependListener(event, fn) - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn) - else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn) - else emitter._events[event] = [fn, emitter._events[event]] - } - function ReadableState(options, stream, isDuplex) { - Duplex = Duplex || require('./_stream_duplex') - options = options || {} - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex - this.objectMode = !!options.objectMode - if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode - this.highWaterMark = getHighWaterMark( - this, - options, - 'readableHighWaterMark', - isDuplex - ) - this.buffer = new BufferList() - this.length = 0 - this.pipes = null - this.pipesCount = 0 - this.flowing = null - this.ended = false - this.endEmitted = false - this.reading = false - this.sync = true - this.needReadable = false - this.emittedReadable = false - this.readableListening = false - this.resumeScheduled = false - this.paused = true - this.emitClose = options.emitClose !== false - this.autoDestroy = !!options.autoDestroy - this.destroyed = false - this.defaultEncoding = options.defaultEncoding || 'utf8' - this.awaitDrain = 0 - this.readingMore = false - this.decoder = null - this.encoding = null - if (options.encoding) { - if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder - this.decoder = new StringDecoder(options.encoding) - this.encoding = options.encoding - } - } - function Readable(options) { - Duplex = Duplex || require('./_stream_duplex') - if (!(this instanceof Readable)) return new Readable(options) - var isDuplex = this instanceof Duplex - this._readableState = new ReadableState(options, this, isDuplex) - this.readable = true - if (options) { - if (typeof options.read === 'function') this._read = options.read - if (typeof options.destroy === 'function') this._destroy = options.destroy - } - Stream.call(this) - } - Object.defineProperty(Readable.prototype, 'destroyed', { - enumerable: false, - get: function get() { - if (this._readableState === undefined) { - return false - } - return this._readableState.destroyed - }, - set: function set(value) { - if (!this._readableState) { - return - } - this._readableState.destroyed = value - } - }) - Readable.prototype.destroy = destroyImpl.destroy - Readable.prototype._undestroy = destroyImpl.undestroy - Readable.prototype._destroy = function (err, cb) { - cb(err) - } - Readable.prototype.push = function (chunk, encoding) { - var state = this._readableState - var skipChunkCheck - if (!state.objectMode) { - if (typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding - if (encoding !== state.encoding) { - chunk = Buffer.from(chunk, encoding) - encoding = '' - } - skipChunkCheck = true - } - } else { - skipChunkCheck = true - } - return readableAddChunk(this, chunk, encoding, false, skipChunkCheck) - } - Readable.prototype.unshift = function (chunk) { - return readableAddChunk(this, chunk, null, true, false) - } - function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { - debug('readableAddChunk', chunk) - var state = stream._readableState - if (chunk === null) { - state.reading = false - onEofChunk(stream, state) - } else { - var er - if (!skipChunkCheck) er = chunkInvalid(state, chunk) - if (er) { - errorOrDestroy(stream, er) - } else if (state.objectMode || (chunk && chunk.length > 0)) { - if ( - typeof chunk !== 'string' && - !state.objectMode && - Object.getPrototypeOf(chunk) !== Buffer.prototype - ) { - chunk = _uint8ArrayToBuffer(chunk) - } - if (addToFront) { - if (state.endEmitted) - errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT()) - else addChunk(stream, state, chunk, true) - } else if (state.ended) { - errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()) - } else if (state.destroyed) { - return false - } else { - state.reading = false - if (state.decoder && !encoding) { - chunk = state.decoder.write(chunk) - if (state.objectMode || chunk.length !== 0) - addChunk(stream, state, chunk, false) - else maybeReadMore(stream, state) - } else { - addChunk(stream, state, chunk, false) - } - } - } else if (!addToFront) { - state.reading = false - maybeReadMore(stream, state) - } - } - return !state.ended && (state.length < state.highWaterMark || state.length === 0) - } - function addChunk(stream, state, chunk, addToFront) { - if (state.flowing && state.length === 0 && !state.sync) { - state.awaitDrain = 0 - stream.emit('data', chunk) - } else { - state.length += state.objectMode ? 1 : chunk.length - if (addToFront) state.buffer.unshift(chunk) - else state.buffer.push(chunk) - if (state.needReadable) emitReadable(stream) - } - maybeReadMore(stream, state) - } - function chunkInvalid(state, chunk) { - var er - if ( - !_isUint8Array(chunk) && - typeof chunk !== 'string' && - chunk !== undefined && - !state.objectMode - ) { - er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk) - } - return er - } - Readable.prototype.isPaused = function () { - return this._readableState.flowing === false - } - Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder - var decoder = new StringDecoder(enc) - this._readableState.decoder = decoder - this._readableState.encoding = this._readableState.decoder.encoding - var p = this._readableState.buffer.head - var content = '' - while (p !== null) { - content += decoder.write(p.data) - p = p.next - } - this._readableState.buffer.clear() - if (content !== '') this._readableState.buffer.push(content) - this._readableState.length = content.length - return this - } - var MAX_HWM = 1073741824 - function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - n = MAX_HWM - } else { - n-- - n |= n >>> 1 - n |= n >>> 2 - n |= n >>> 4 - n |= n >>> 8 - n |= n >>> 16 - n++ - } - return n - } - function howMuchToRead(n, state) { - if (n <= 0 || (state.length === 0 && state.ended)) return 0 - if (state.objectMode) return 1 - if (n !== n) { - if (state.flowing && state.length) return state.buffer.head.data.length - else return state.length - } - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n) - if (n <= state.length) return n - if (!state.ended) { - state.needReadable = true - return 0 - } - return state.length - } - Readable.prototype.read = function (n) { - debug('read', n) - n = parseInt(n, 10) - var state = this._readableState - var nOrig = n - if (n !== 0) state.emittedReadable = false - if ( - n === 0 && - state.needReadable && - ((state.highWaterMark !== 0 - ? state.length >= state.highWaterMark - : state.length > 0) || - state.ended) - ) { - debug('read: emitReadable', state.length, state.ended) - if (state.length === 0 && state.ended) endReadable(this) - else emitReadable(this) - return null - } - n = howMuchToRead(n, state) - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this) - return null - } - var doRead = state.needReadable - debug('need readable', doRead) - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true - debug('length less than watermark', doRead) - } - if (state.ended || state.reading) { - doRead = false - debug('reading or ended', doRead) - } else if (doRead) { - debug('do read') - state.reading = true - state.sync = true - if (state.length === 0) state.needReadable = true - this._read(state.highWaterMark) - state.sync = false - if (!state.reading) n = howMuchToRead(nOrig, state) - } - var ret - if (n > 0) ret = fromList(n, state) - else ret = null - if (ret === null) { - state.needReadable = state.length <= state.highWaterMark - n = 0 - } else { - state.length -= n - state.awaitDrain = 0 - } - if (state.length === 0) { - if (!state.ended) state.needReadable = true - if (nOrig !== n && state.ended) endReadable(this) - } - if (ret !== null) this.emit('data', ret) - return ret - } - function onEofChunk(stream, state) { - debug('onEofChunk') - if (state.ended) return - if (state.decoder) { - var chunk = state.decoder.end() - if (chunk && chunk.length) { - state.buffer.push(chunk) - state.length += state.objectMode ? 1 : chunk.length - } - } - state.ended = true - if (state.sync) { - emitReadable(stream) - } else { - state.needReadable = false - if (!state.emittedReadable) { - state.emittedReadable = true - emitReadable_(stream) - } - } - } - function emitReadable(stream) { - var state = stream._readableState - debug('emitReadable', state.needReadable, state.emittedReadable) - state.needReadable = false - if (!state.emittedReadable) { - debug('emitReadable', state.flowing) - state.emittedReadable = true - process.nextTick(emitReadable_, stream) - } - } - function emitReadable_(stream) { - var state = stream._readableState - debug('emitReadable_', state.destroyed, state.length, state.ended) - if (!state.destroyed && (state.length || state.ended)) { - stream.emit('readable') - state.emittedReadable = false - } - state.needReadable = - !state.flowing && !state.ended && state.length <= state.highWaterMark - flow(stream) - } - function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true - process.nextTick(maybeReadMore_, stream, state) - } - } - function maybeReadMore_(stream, state) { - while ( - !state.reading && - !state.ended && - (state.length < state.highWaterMark || (state.flowing && state.length === 0)) - ) { - var len = state.length - debug('maybeReadMore read 0') - stream.read(0) - if (len === state.length) break - } - state.readingMore = false - } - Readable.prototype._read = function (n) { - errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()')) - } - Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this - var state = this._readableState - switch (state.pipesCount) { - case 0: - state.pipes = dest - break - case 1: - state.pipes = [state.pipes, dest] - break - default: - state.pipes.push(dest) - break - } - state.pipesCount += 1 - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts) - var doEnd = - (!pipeOpts || pipeOpts.end !== false) && - dest !== process.stdout && - dest !== process.stderr - var endFn = doEnd ? onend : unpipe - if (state.endEmitted) process.nextTick(endFn) - else src.once('end', endFn) - dest.on('unpipe', onunpipe) - function onunpipe(readable, unpipeInfo) { - debug('onunpipe') - if (readable === src) { - if (unpipeInfo && unpipeInfo.hasUnpiped === false) { - unpipeInfo.hasUnpiped = true - cleanup() - } - } - } - function onend() { - debug('onend') - dest.end() - } - var ondrain = pipeOnDrain(src) - dest.on('drain', ondrain) - var cleanedUp = false - function cleanup() { - debug('cleanup') - dest.removeListener('close', onclose) - dest.removeListener('finish', onfinish) - dest.removeListener('drain', ondrain) - dest.removeListener('error', onerror) - dest.removeListener('unpipe', onunpipe) - src.removeListener('end', onend) - src.removeListener('end', unpipe) - src.removeListener('data', ondata) - cleanedUp = true - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) - ondrain() - } - src.on('data', ondata) - function ondata(chunk) { - debug('ondata') - var ret = dest.write(chunk) - debug('dest.write', ret) - if (ret === false) { - if ( - ((state.pipesCount === 1 && state.pipes === dest) || - (state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1)) && - !cleanedUp - ) { - debug('false write response, pause', state.awaitDrain) - state.awaitDrain++ - } - src.pause() - } - } - function onerror(er) { - debug('onerror', er) - unpipe() - dest.removeListener('error', onerror) - if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er) - } - prependListener(dest, 'error', onerror) - function onclose() { - dest.removeListener('finish', onfinish) - unpipe() - } - dest.once('close', onclose) - function onfinish() { - debug('onfinish') - dest.removeListener('close', onclose) - unpipe() - } - dest.once('finish', onfinish) - function unpipe() { - debug('unpipe') - src.unpipe(dest) - } - dest.emit('pipe', src) - if (!state.flowing) { - debug('pipe resume') - src.resume() - } - return dest - } - function pipeOnDrain(src) { - return function pipeOnDrainFunctionResult() { - var state = src._readableState - debug('pipeOnDrain', state.awaitDrain) - if (state.awaitDrain) state.awaitDrain-- - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { - state.flowing = true - flow(src) - } - } - } - Readable.prototype.unpipe = function (dest) { - var state = this._readableState - var unpipeInfo = { hasUnpiped: false } - if (state.pipesCount === 0) return this - if (state.pipesCount === 1) { - if (dest && dest !== state.pipes) return this - if (!dest) dest = state.pipes - state.pipes = null - state.pipesCount = 0 - state.flowing = false - if (dest) dest.emit('unpipe', this, unpipeInfo) - return this - } - if (!dest) { - var dests = state.pipes - var len = state.pipesCount - state.pipes = null - state.pipesCount = 0 - state.flowing = false - for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this, { hasUnpiped: false }) - } - return this - } - var index = indexOf(state.pipes, dest) - if (index === -1) return this - state.pipes.splice(index, 1) - state.pipesCount -= 1 - if (state.pipesCount === 1) state.pipes = state.pipes[0] - dest.emit('unpipe', this, unpipeInfo) - return this - } - Readable.prototype.on = function (ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn) - var state = this._readableState - if (ev === 'data') { - state.readableListening = this.listenerCount('readable') > 0 - if (state.flowing !== false) this.resume() - } else if (ev === 'readable') { - if (!state.endEmitted && !state.readableListening) { - state.readableListening = state.needReadable = true - state.flowing = false - state.emittedReadable = false - debug('on readable', state.length, state.reading) - if (state.length) { - emitReadable(this) - } else if (!state.reading) { - process.nextTick(nReadingNextTick, this) - } - } - } - return res - } - Readable.prototype.addListener = Readable.prototype.on - Readable.prototype.removeListener = function (ev, fn) { - var res = Stream.prototype.removeListener.call(this, ev, fn) - if (ev === 'readable') { - process.nextTick(updateReadableListening, this) - } - return res - } - Readable.prototype.removeAllListeners = function (ev) { - var res = Stream.prototype.removeAllListeners.apply(this, arguments) - if (ev === 'readable' || ev === undefined) { - process.nextTick(updateReadableListening, this) - } - return res - } - function updateReadableListening(self) { - var state = self._readableState - state.readableListening = self.listenerCount('readable') > 0 - if (state.resumeScheduled && !state.paused) { - state.flowing = true - } else if (self.listenerCount('data') > 0) { - self.resume() - } - } - function nReadingNextTick(self) { - debug('readable nexttick read 0') - self.read(0) - } - Readable.prototype.resume = function () { - var state = this._readableState - if (!state.flowing) { - debug('resume') - state.flowing = !state.readableListening - resume(this, state) - } - state.paused = false - return this - } - function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true - process.nextTick(resume_, stream, state) - } - } - function resume_(stream, state) { - debug('resume', state.reading) - if (!state.reading) { - stream.read(0) - } - state.resumeScheduled = false - stream.emit('resume') - flow(stream) - if (state.flowing && !state.reading) stream.read(0) - } - Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing) - if (this._readableState.flowing !== false) { - debug('pause') - this._readableState.flowing = false - this.emit('pause') - } - this._readableState.paused = true - return this - } - function flow(stream) { - var state = stream._readableState - debug('flow', state.flowing) - while (state.flowing && stream.read() !== null) {} - } - Readable.prototype.wrap = function (stream) { - var _this = this - var state = this._readableState - var paused = false - stream.on('end', function () { - debug('wrapped end') - if (state.decoder && !state.ended) { - var chunk = state.decoder.end() - if (chunk && chunk.length) _this.push(chunk) - } - _this.push(null) - }) - stream.on('data', function (chunk) { - debug('wrapped data') - if (state.decoder) chunk = state.decoder.write(chunk) - if (state.objectMode && (chunk === null || chunk === undefined)) return - else if (!state.objectMode && (!chunk || !chunk.length)) return - var ret = _this.push(chunk) - if (!ret) { - paused = true - stream.pause() - } - }) - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = (function methodWrap(method) { - return function methodWrapReturnFunction() { - return stream[method].apply(stream, arguments) - } - })(i) - } - } - for (var n = 0; n < kProxyEvents.length; n++) { - stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])) - } - this._read = function (n) { - debug('wrapped _read', n) - if (paused) { - paused = false - stream.resume() - } - } - return this - } - if (typeof Symbol === 'function') { - Readable.prototype[Symbol.asyncIterator] = function () { - if (createReadableStreamAsyncIterator === undefined) { - createReadableStreamAsyncIterator = require('./internal/streams/async_iterator') - } - return createReadableStreamAsyncIterator(this) - } - } - Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { - enumerable: false, - get: function get() { - return this._readableState.highWaterMark - } - }) - Object.defineProperty(Readable.prototype, 'readableBuffer', { - enumerable: false, - get: function get() { - return this._readableState && this._readableState.buffer - } - }) - Object.defineProperty(Readable.prototype, 'readableFlowing', { - enumerable: false, - get: function get() { - return this._readableState.flowing - }, - set: function set(state) { - if (this._readableState) { - this._readableState.flowing = state - } - } - }) - Readable._fromList = fromList - Object.defineProperty(Readable.prototype, 'readableLength', { - enumerable: false, - get: function get() { - return this._readableState.length - } - }) - function fromList(n, state) { - if (state.length === 0) return null - var ret - if (state.objectMode) ret = state.buffer.shift() - else if (!n || n >= state.length) { - if (state.decoder) ret = state.buffer.join('') - else if (state.buffer.length === 1) ret = state.buffer.first() - else ret = state.buffer.concat(state.length) - state.buffer.clear() - } else { - ret = state.buffer.consume(n, state.decoder) - } - return ret - } - function endReadable(stream) { - var state = stream._readableState - debug('endReadable', state.endEmitted) - if (!state.endEmitted) { - state.ended = true - process.nextTick(endReadableNT, state, stream) - } - } - function endReadableNT(state, stream) { - debug('endReadableNT', state.endEmitted, state.length) - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true - stream.readable = false - stream.emit('end') - if (state.autoDestroy) { - var wState = stream._writableState - if (!wState || (wState.autoDestroy && wState.finished)) { - stream.destroy() - } - } - } - } - if (typeof Symbol === 'function') { - Readable.from = function (iterable, opts) { - if (from === undefined) { - from = require('./internal/streams/from') - } - return from(Readable, iterable, opts) - } - } - function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i - } - return -1 - } - }.call(this)) - }.call( - this, - require('_process'), - typeof global !== 'undefined' - ? global - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : {} - )) - }, - { - '../errors': 78, - './_stream_duplex': 79, - './internal/streams/async_iterator': 84, - './internal/streams/buffer_list': 85, - './internal/streams/destroy': 86, - './internal/streams/from': 88, - './internal/streams/state': 90, - './internal/streams/stream': 91, - _process: 171, - buffer: 93, - events: 134, - inherits: 151, - 'string_decoder/': 207, - util: 49 - } - ], - 82: [ - function (require, module, exports) { - 'use strict' - module.exports = Transform - var _require$codes = require('../errors').codes, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, - ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0 - var Duplex = require('./_stream_duplex') - require('inherits')(Transform, Duplex) - function afterTransform(er, data) { - var ts = this._transformState - ts.transforming = false - var cb = ts.writecb - if (cb === null) { - return this.emit('error', new ERR_MULTIPLE_CALLBACK()) - } - ts.writechunk = null - ts.writecb = null - if (data != null) this.push(data) - cb(er) - var rs = this._readableState - rs.reading = false - if (rs.needReadable || rs.length < rs.highWaterMark) { - this._read(rs.highWaterMark) - } - } - function Transform(options) { - if (!(this instanceof Transform)) return new Transform(options) - Duplex.call(this, options) - this._transformState = { - afterTransform: afterTransform.bind(this), - needTransform: false, - transforming: false, - writecb: null, - writechunk: null, - writeencoding: null - } - this._readableState.needReadable = true - this._readableState.sync = false - if (options) { - if (typeof options.transform === 'function') this._transform = options.transform - if (typeof options.flush === 'function') this._flush = options.flush - } - this.on('prefinish', prefinish) - } - function prefinish() { - var _this = this - if (typeof this._flush === 'function' && !this._readableState.destroyed) { - this._flush(function (er, data) { - done(_this, er, data) - }) - } else { - done(this, null, null) - } - } - Transform.prototype.push = function (chunk, encoding) { - this._transformState.needTransform = false - return Duplex.prototype.push.call(this, chunk, encoding) - } - Transform.prototype._transform = function (chunk, encoding, cb) { - cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()')) - } - Transform.prototype._write = function (chunk, encoding, cb) { - var ts = this._transformState - ts.writecb = cb - ts.writechunk = chunk - ts.writeencoding = encoding - if (!ts.transforming) { - var rs = this._readableState - if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) - this._read(rs.highWaterMark) - } - } - Transform.prototype._read = function (n) { - var ts = this._transformState - if (ts.writechunk !== null && !ts.transforming) { - ts.transforming = true - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform) - } else { - ts.needTransform = true - } - } - Transform.prototype._destroy = function (err, cb) { - Duplex.prototype._destroy.call(this, err, function (err2) { - cb(err2) - }) - } - function done(stream, er, data) { - if (er) return stream.emit('error', er) - if (data != null) stream.push(data) - if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0() - if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING() - return stream.push(null) - } - }, - { '../errors': 78, './_stream_duplex': 79, inherits: 151 } - ], - 83: [ - function (require, module, exports) { - ;(function (process, global) { - ;(function () { - 'use strict' - module.exports = Writable - function WriteReq(chunk, encoding, cb) { - this.chunk = chunk - this.encoding = encoding - this.callback = cb - this.next = null - } - function CorkedRequest(state) { - var _this = this - this.next = null - this.entry = null - this.finish = function () { - onCorkedFinish(_this, state) - } - } - var Duplex - Writable.WritableState = WritableState - var internalUtil = { deprecate: require('util-deprecate') } - var Stream = require('./internal/streams/stream') - var Buffer = require('buffer').Buffer - var OurUint8Array = global.Uint8Array || function () {} - function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk) - } - function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array - } - var destroyImpl = require('./internal/streams/destroy') - var _require = require('./internal/streams/state'), - getHighWaterMark = _require.getHighWaterMark - var _require$codes = require('../errors').codes, - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, - ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, - ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, - ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING - var errorOrDestroy = destroyImpl.errorOrDestroy - require('inherits')(Writable, Stream) - function nop() {} - function WritableState(options, stream, isDuplex) { - Duplex = Duplex || require('./_stream_duplex') - options = options || {} - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex - this.objectMode = !!options.objectMode - if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode - this.highWaterMark = getHighWaterMark( - this, - options, - 'writableHighWaterMark', - isDuplex - ) - this.finalCalled = false - this.needDrain = false - this.ending = false - this.ended = false - this.finished = false - this.destroyed = false - var noDecode = options.decodeStrings === false - this.decodeStrings = !noDecode - this.defaultEncoding = options.defaultEncoding || 'utf8' - this.length = 0 - this.writing = false - this.corked = 0 - this.sync = true - this.bufferProcessing = false - this.onwrite = function (er) { - onwrite(stream, er) - } - this.writecb = null - this.writelen = 0 - this.bufferedRequest = null - this.lastBufferedRequest = null - this.pendingcb = 0 - this.prefinished = false - this.errorEmitted = false - this.emitClose = options.emitClose !== false - this.autoDestroy = !!options.autoDestroy - this.bufferedRequestCount = 0 - this.corkedRequestsFree = new CorkedRequest(this) - } - WritableState.prototype.getBuffer = function getBuffer() { - var current = this.bufferedRequest - var out = [] - while (current) { - out.push(current) - current = current.next - } - return out - } - ;(function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate( - function writableStateBufferGetter() { - return this.getBuffer() - }, - '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + - 'instead.', - 'DEP0003' - ) - }) - } catch (_) {} - })() - var realHasInstance - if ( - typeof Symbol === 'function' && - Symbol.hasInstance && - typeof Function.prototype[Symbol.hasInstance] === 'function' - ) { - realHasInstance = Function.prototype[Symbol.hasInstance] - Object.defineProperty(Writable, Symbol.hasInstance, { - value: function value(object) { - if (realHasInstance.call(this, object)) return true - if (this !== Writable) return false - return object && object._writableState instanceof WritableState - } - }) - } else { - realHasInstance = function realHasInstance(object) { - return object instanceof this - } - } - function Writable(options) { - Duplex = Duplex || require('./_stream_duplex') - var isDuplex = this instanceof Duplex - if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options) - this._writableState = new WritableState(options, this, isDuplex) - this.writable = true - if (options) { - if (typeof options.write === 'function') this._write = options.write - if (typeof options.writev === 'function') this._writev = options.writev - if (typeof options.destroy === 'function') this._destroy = options.destroy - if (typeof options.final === 'function') this._final = options.final - } - Stream.call(this) - } - Writable.prototype.pipe = function () { - errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()) - } - function writeAfterEnd(stream, cb) { - var er = new ERR_STREAM_WRITE_AFTER_END() - errorOrDestroy(stream, er) - process.nextTick(cb, er) - } - function validChunk(stream, state, chunk, cb) { - var er - if (chunk === null) { - er = new ERR_STREAM_NULL_VALUES() - } else if (typeof chunk !== 'string' && !state.objectMode) { - er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk) - } - if (er) { - errorOrDestroy(stream, er) - process.nextTick(cb, er) - return false - } - return true - } - Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState - var ret = false - var isBuf = !state.objectMode && _isUint8Array(chunk) - if (isBuf && !Buffer.isBuffer(chunk)) { - chunk = _uint8ArrayToBuffer(chunk) - } - if (typeof encoding === 'function') { - cb = encoding - encoding = null - } - if (isBuf) encoding = 'buffer' - else if (!encoding) encoding = state.defaultEncoding - if (typeof cb !== 'function') cb = nop - if (state.ending) writeAfterEnd(this, cb) - else if (isBuf || validChunk(this, state, chunk, cb)) { - state.pendingcb++ - ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb) - } - return ret - } - Writable.prototype.cork = function () { - this._writableState.corked++ - } - Writable.prototype.uncork = function () { - var state = this._writableState - if (state.corked) { - state.corked-- - if ( - !state.writing && - !state.corked && - !state.bufferProcessing && - state.bufferedRequest - ) - clearBuffer(this, state) - } - } - Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - if (typeof encoding === 'string') encoding = encoding.toLowerCase() - if ( - !( - [ - 'hex', - 'utf8', - 'utf-8', - 'ascii', - 'binary', - 'base64', - 'ucs2', - 'ucs-2', - 'utf16le', - 'utf-16le', - 'raw' - ].indexOf((encoding + '').toLowerCase()) > -1 - ) - ) - throw new ERR_UNKNOWN_ENCODING(encoding) - this._writableState.defaultEncoding = encoding - return this - } - Object.defineProperty(Writable.prototype, 'writableBuffer', { - enumerable: false, - get: function get() { - return this._writableState && this._writableState.getBuffer() - } - }) - function decodeChunk(state, chunk, encoding) { - if ( - !state.objectMode && - state.decodeStrings !== false && - typeof chunk === 'string' - ) { - chunk = Buffer.from(chunk, encoding) - } - return chunk - } - Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { - enumerable: false, - get: function get() { - return this._writableState.highWaterMark - } - }) - function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { - if (!isBuf) { - var newChunk = decodeChunk(state, chunk, encoding) - if (chunk !== newChunk) { - isBuf = true - encoding = 'buffer' - chunk = newChunk - } - } - var len = state.objectMode ? 1 : chunk.length - state.length += len - var ret = state.length < state.highWaterMark - if (!ret) state.needDrain = true - if (state.writing || state.corked) { - var last = state.lastBufferedRequest - state.lastBufferedRequest = { - chunk: chunk, - encoding: encoding, - isBuf: isBuf, - callback: cb, - next: null - } - if (last) { - last.next = state.lastBufferedRequest - } else { - state.bufferedRequest = state.lastBufferedRequest - } - state.bufferedRequestCount += 1 - } else { - doWrite(stream, state, false, len, chunk, encoding, cb) - } - return ret - } - function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len - state.writecb = cb - state.writing = true - state.sync = true - if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write')) - else if (writev) stream._writev(chunk, state.onwrite) - else stream._write(chunk, encoding, state.onwrite) - state.sync = false - } - function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb - if (sync) { - process.nextTick(cb, er) - process.nextTick(finishMaybe, stream, state) - stream._writableState.errorEmitted = true - errorOrDestroy(stream, er) - } else { - cb(er) - stream._writableState.errorEmitted = true - errorOrDestroy(stream, er) - finishMaybe(stream, state) - } - } - function onwriteStateUpdate(state) { - state.writing = false - state.writecb = null - state.length -= state.writelen - state.writelen = 0 - } - function onwrite(stream, er) { - var state = stream._writableState - var sync = state.sync - var cb = state.writecb - if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK() - onwriteStateUpdate(state) - if (er) onwriteError(stream, state, sync, er, cb) - else { - var finished = needFinish(state) || stream.destroyed - if ( - !finished && - !state.corked && - !state.bufferProcessing && - state.bufferedRequest - ) { - clearBuffer(stream, state) - } - if (sync) { - process.nextTick(afterWrite, stream, state, finished, cb) - } else { - afterWrite(stream, state, finished, cb) - } - } - } - function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state) - state.pendingcb-- - cb() - finishMaybe(stream, state) - } - function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false - stream.emit('drain') - } - } - function clearBuffer(stream, state) { - state.bufferProcessing = true - var entry = state.bufferedRequest - if (stream._writev && entry && entry.next) { - var l = state.bufferedRequestCount - var buffer = new Array(l) - var holder = state.corkedRequestsFree - holder.entry = entry - var count = 0 - var allBuffers = true - while (entry) { - buffer[count] = entry - if (!entry.isBuf) allBuffers = false - entry = entry.next - count += 1 - } - buffer.allBuffers = allBuffers - doWrite(stream, state, true, state.length, buffer, '', holder.finish) - state.pendingcb++ - state.lastBufferedRequest = null - if (holder.next) { - state.corkedRequestsFree = holder.next - holder.next = null - } else { - state.corkedRequestsFree = new CorkedRequest(state) - } - state.bufferedRequestCount = 0 - } else { - while (entry) { - var chunk = entry.chunk - var encoding = entry.encoding - var cb = entry.callback - var len = state.objectMode ? 1 : chunk.length - doWrite(stream, state, false, len, chunk, encoding, cb) - entry = entry.next - state.bufferedRequestCount-- - if (state.writing) { - break - } - } - if (entry === null) state.lastBufferedRequest = null - } - state.bufferedRequest = entry - state.bufferProcessing = false - } - Writable.prototype._write = function (chunk, encoding, cb) { - cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')) - } - Writable.prototype._writev = null - Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState - if (typeof chunk === 'function') { - cb = chunk - chunk = null - encoding = null - } else if (typeof encoding === 'function') { - cb = encoding - encoding = null - } - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding) - if (state.corked) { - state.corked = 1 - this.uncork() - } - if (!state.ending) endWritable(this, state, cb) - return this - } - Object.defineProperty(Writable.prototype, 'writableLength', { - enumerable: false, - get: function get() { - return this._writableState.length - } - }) - function needFinish(state) { - return ( - state.ending && - state.length === 0 && - state.bufferedRequest === null && - !state.finished && - !state.writing - ) - } - function callFinal(stream, state) { - stream._final(function (err) { - state.pendingcb-- - if (err) { - errorOrDestroy(stream, err) - } - state.prefinished = true - stream.emit('prefinish') - finishMaybe(stream, state) - }) - } - function prefinish(stream, state) { - if (!state.prefinished && !state.finalCalled) { - if (typeof stream._final === 'function' && !state.destroyed) { - state.pendingcb++ - state.finalCalled = true - process.nextTick(callFinal, stream, state) - } else { - state.prefinished = true - stream.emit('prefinish') - } - } - } - function finishMaybe(stream, state) { - var need = needFinish(state) - if (need) { - prefinish(stream, state) - if (state.pendingcb === 0) { - state.finished = true - stream.emit('finish') - if (state.autoDestroy) { - var rState = stream._readableState - if (!rState || (rState.autoDestroy && rState.endEmitted)) { - stream.destroy() - } - } - } - } - return need - } - function endWritable(stream, state, cb) { - state.ending = true - finishMaybe(stream, state) - if (cb) { - if (state.finished) process.nextTick(cb) - else stream.once('finish', cb) - } - state.ended = true - stream.writable = false - } - function onCorkedFinish(corkReq, state, err) { - var entry = corkReq.entry - corkReq.entry = null - while (entry) { - var cb = entry.callback - state.pendingcb-- - cb(err) - entry = entry.next - } - state.corkedRequestsFree.next = corkReq - } - Object.defineProperty(Writable.prototype, 'destroyed', { - enumerable: false, - get: function get() { - if (this._writableState === undefined) { - return false - } - return this._writableState.destroyed - }, - set: function set(value) { - if (!this._writableState) { - return - } - this._writableState.destroyed = value - } - }) - Writable.prototype.destroy = destroyImpl.destroy - Writable.prototype._undestroy = destroyImpl.undestroy - Writable.prototype._destroy = function (err, cb) { - cb(err) - } - }.call(this)) - }.call( - this, - require('_process'), - typeof global !== 'undefined' - ? global - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : {} - )) - }, - { - '../errors': 78, - './_stream_duplex': 79, - './internal/streams/destroy': 86, - './internal/streams/state': 90, - './internal/streams/stream': 91, - _process: 171, - buffer: 93, - inherits: 151, - 'util-deprecate': 209 - } - ], - 84: [ - function (require, module, exports) { - ;(function (process) { - ;(function () { - 'use strict' - var _Object$setPrototypeO - function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }) - } else { - obj[key] = value - } - return obj - } - var finished = require('./end-of-stream') - var kLastResolve = Symbol('lastResolve') - var kLastReject = Symbol('lastReject') - var kError = Symbol('error') - var kEnded = Symbol('ended') - var kLastPromise = Symbol('lastPromise') - var kHandlePromise = Symbol('handlePromise') - var kStream = Symbol('stream') - function createIterResult(value, done) { - return { value: value, done: done } - } - function readAndResolve(iter) { - var resolve = iter[kLastResolve] - if (resolve !== null) { - var data = iter[kStream].read() - if (data !== null) { - iter[kLastPromise] = null - iter[kLastResolve] = null - iter[kLastReject] = null - resolve(createIterResult(data, false)) - } - } - } - function onReadable(iter) { - process.nextTick(readAndResolve, iter) - } - function wrapForNext(lastPromise, iter) { - return function (resolve, reject) { - lastPromise.then(function () { - if (iter[kEnded]) { - resolve(createIterResult(undefined, true)) - return - } - iter[kHandlePromise](resolve, reject) - }, reject) - } - } - var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}) - var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf( - ((_Object$setPrototypeO = { - get stream() { - return this[kStream] - }, - next: function next() { - var _this = this - var error = this[kError] - if (error !== null) { - return Promise.reject(error) - } - if (this[kEnded]) { - return Promise.resolve(createIterResult(undefined, true)) - } - if (this[kStream].destroyed) { - return new Promise(function (resolve, reject) { - process.nextTick(function () { - if (_this[kError]) { - reject(_this[kError]) - } else { - resolve(createIterResult(undefined, true)) - } - }) - }) - } - var lastPromise = this[kLastPromise] - var promise - if (lastPromise) { - promise = new Promise(wrapForNext(lastPromise, this)) - } else { - var data = this[kStream].read() - if (data !== null) { - return Promise.resolve(createIterResult(data, false)) - } - promise = new Promise(this[kHandlePromise]) - } - this[kLastPromise] = promise - return promise - } - }), - _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () { - return this - }), - _defineProperty(_Object$setPrototypeO, 'return', function _return() { - var _this2 = this - return new Promise(function (resolve, reject) { - _this2[kStream].destroy(null, function (err) { - if (err) { - reject(err) - return - } - resolve(createIterResult(undefined, true)) - }) - }) - }), - _Object$setPrototypeO), - AsyncIteratorPrototype - ) - var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator( - stream - ) { - var _Object$create - var iterator = Object.create( - ReadableStreamAsyncIteratorPrototype, - ((_Object$create = {}), - _defineProperty(_Object$create, kStream, { value: stream, writable: true }), - _defineProperty(_Object$create, kLastResolve, { value: null, writable: true }), - _defineProperty(_Object$create, kLastReject, { value: null, writable: true }), - _defineProperty(_Object$create, kError, { value: null, writable: true }), - _defineProperty(_Object$create, kEnded, { - value: stream._readableState.endEmitted, - writable: true - }), - _defineProperty(_Object$create, kHandlePromise, { - value: function value(resolve, reject) { - var data = iterator[kStream].read() - if (data) { - iterator[kLastPromise] = null - iterator[kLastResolve] = null - iterator[kLastReject] = null - resolve(createIterResult(data, false)) - } else { - iterator[kLastResolve] = resolve - iterator[kLastReject] = reject - } - }, - writable: true - }), - _Object$create) - ) - iterator[kLastPromise] = null - finished(stream, function (err) { - if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { - var reject = iterator[kLastReject] - if (reject !== null) { - iterator[kLastPromise] = null - iterator[kLastResolve] = null - iterator[kLastReject] = null - reject(err) - } - iterator[kError] = err - return - } - var resolve = iterator[kLastResolve] - if (resolve !== null) { - iterator[kLastPromise] = null - iterator[kLastResolve] = null - iterator[kLastReject] = null - resolve(createIterResult(undefined, true)) - } - iterator[kEnded] = true - }) - stream.on('readable', onReadable.bind(null, iterator)) - return iterator - } - module.exports = createReadableStreamAsyncIterator - }.call(this)) - }.call(this, require('_process'))) - }, - { './end-of-stream': 87, _process: 171 } - ], - 85: [ - function (require, module, exports) { - 'use strict' - function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object) - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object) - if (enumerableOnly) - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable - }) - keys.push.apply(keys, symbols) - } - return keys - } - function _objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {} - if (i % 2) { - ownKeys(Object(source), true).forEach(function (key) { - _defineProperty(target, key, source[key]) - }) - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) - } else { - ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)) - }) - } - } - return target - } - function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }) - } else { - obj[key] = value - } - return obj - } - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError('Cannot call a class as a function') - } - } - function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i] - descriptor.enumerable = descriptor.enumerable || false - descriptor.configurable = true - if ('value' in descriptor) descriptor.writable = true - Object.defineProperty(target, descriptor.key, descriptor) - } - } - function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps) - if (staticProps) _defineProperties(Constructor, staticProps) - return Constructor - } - var _require = require('buffer'), - Buffer = _require.Buffer - var _require2 = require('util'), - inspect = _require2.inspect - var custom = (inspect && inspect.custom) || 'inspect' - function copyBuffer(src, target, offset) { - Buffer.prototype.copy.call(src, target, offset) - } - module.exports = (function () { - function BufferList() { - _classCallCheck(this, BufferList) - this.head = null - this.tail = null - this.length = 0 - } - _createClass(BufferList, [ - { - key: 'push', - value: function push(v) { - var entry = { data: v, next: null } - if (this.length > 0) this.tail.next = entry - else this.head = entry - this.tail = entry - ++this.length - } - }, - { - key: 'unshift', - value: function unshift(v) { - var entry = { data: v, next: this.head } - if (this.length === 0) this.tail = entry - this.head = entry - ++this.length - } - }, - { - key: 'shift', - value: function shift() { - if (this.length === 0) return - var ret = this.head.data - if (this.length === 1) this.head = this.tail = null - else this.head = this.head.next - --this.length - return ret - } - }, - { - key: 'clear', - value: function clear() { - this.head = this.tail = null - this.length = 0 - } - }, - { - key: 'join', - value: function join(s) { - if (this.length === 0) return '' - var p = this.head - var ret = '' + p.data - while ((p = p.next)) { - ret += s + p.data - } - return ret - } - }, - { - key: 'concat', - value: function concat(n) { - if (this.length === 0) return Buffer.alloc(0) - var ret = Buffer.allocUnsafe(n >>> 0) - var p = this.head - var i = 0 - while (p) { - copyBuffer(p.data, ret, i) - i += p.data.length - p = p.next - } - return ret - } - }, - { - key: 'consume', - value: function consume(n, hasStrings) { - var ret - if (n < this.head.data.length) { - ret = this.head.data.slice(0, n) - this.head.data = this.head.data.slice(n) - } else if (n === this.head.data.length) { - ret = this.shift() - } else { - ret = hasStrings ? this._getString(n) : this._getBuffer(n) - } - return ret - } - }, - { - key: 'first', - value: function first() { - return this.head.data - } - }, - { - key: '_getString', - value: function _getString(n) { - var p = this.head - var c = 1 - var ret = p.data - n -= ret.length - while ((p = p.next)) { - var str = p.data - var nb = n > str.length ? str.length : n - if (nb === str.length) ret += str - else ret += str.slice(0, n) - n -= nb - if (n === 0) { - if (nb === str.length) { - ++c - if (p.next) this.head = p.next - else this.head = this.tail = null - } else { - this.head = p - p.data = str.slice(nb) - } - break - } - ++c - } - this.length -= c - return ret - } - }, - { - key: '_getBuffer', - value: function _getBuffer(n) { - var ret = Buffer.allocUnsafe(n) - var p = this.head - var c = 1 - p.data.copy(ret) - n -= p.data.length - while ((p = p.next)) { - var buf = p.data - var nb = n > buf.length ? buf.length : n - buf.copy(ret, ret.length - n, 0, nb) - n -= nb - if (n === 0) { - if (nb === buf.length) { - ++c - if (p.next) this.head = p.next - else this.head = this.tail = null - } else { - this.head = p - p.data = buf.slice(nb) - } - break - } - ++c - } - this.length -= c - return ret - } - }, - { - key: custom, - value: function value(_, options) { - return inspect( - this, - _objectSpread({}, options, { depth: 0, customInspect: false }) - ) - } - } - ]) - return BufferList - })() - }, - { buffer: 93, util: 49 } - ], - 86: [ - function (require, module, exports) { - ;(function (process) { - ;(function () { - 'use strict' - function destroy(err, cb) { - var _this = this - var readableDestroyed = this._readableState && this._readableState.destroyed - var writableDestroyed = this._writableState && this._writableState.destroyed - if (readableDestroyed || writableDestroyed) { - if (cb) { - cb(err) - } else if (err) { - if (!this._writableState) { - process.nextTick(emitErrorNT, this, err) - } else if (!this._writableState.errorEmitted) { - this._writableState.errorEmitted = true - process.nextTick(emitErrorNT, this, err) - } - } - return this - } - if (this._readableState) { - this._readableState.destroyed = true - } - if (this._writableState) { - this._writableState.destroyed = true - } - this._destroy(err || null, function (err) { - if (!cb && err) { - if (!_this._writableState) { - process.nextTick(emitErrorAndCloseNT, _this, err) - } else if (!_this._writableState.errorEmitted) { - _this._writableState.errorEmitted = true - process.nextTick(emitErrorAndCloseNT, _this, err) - } else { - process.nextTick(emitCloseNT, _this) - } - } else if (cb) { - process.nextTick(emitCloseNT, _this) - cb(err) - } else { - process.nextTick(emitCloseNT, _this) - } - }) - return this - } - function emitErrorAndCloseNT(self, err) { - emitErrorNT(self, err) - emitCloseNT(self) - } - function emitCloseNT(self) { - if (self._writableState && !self._writableState.emitClose) return - if (self._readableState && !self._readableState.emitClose) return - self.emit('close') - } - function undestroy() { - if (this._readableState) { - this._readableState.destroyed = false - this._readableState.reading = false - this._readableState.ended = false - this._readableState.endEmitted = false - } - if (this._writableState) { - this._writableState.destroyed = false - this._writableState.ended = false - this._writableState.ending = false - this._writableState.finalCalled = false - this._writableState.prefinished = false - this._writableState.finished = false - this._writableState.errorEmitted = false - } - } - function emitErrorNT(self, err) { - self.emit('error', err) - } - function errorOrDestroy(stream, err) { - var rState = stream._readableState - var wState = stream._writableState - if ((rState && rState.autoDestroy) || (wState && wState.autoDestroy)) - stream.destroy(err) - else stream.emit('error', err) - } - module.exports = { - destroy: destroy, - undestroy: undestroy, - errorOrDestroy: errorOrDestroy - } - }.call(this)) - }.call(this, require('_process'))) - }, - { _process: 171 } - ], - 87: [ - function (require, module, exports) { - 'use strict' - var ERR_STREAM_PREMATURE_CLOSE = - require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE - function once(callback) { - var called = false - return function () { - if (called) return - called = true - for ( - var _len = arguments.length, args = new Array(_len), _key = 0; - _key < _len; - _key++ - ) { - args[_key] = arguments[_key] - } - callback.apply(this, args) - } - } - function noop() {} - function isRequest(stream) { - return stream.setHeader && typeof stream.abort === 'function' - } - function eos(stream, opts, callback) { - if (typeof opts === 'function') return eos(stream, null, opts) - if (!opts) opts = {} - callback = once(callback || noop) - var readable = opts.readable || (opts.readable !== false && stream.readable) - var writable = opts.writable || (opts.writable !== false && stream.writable) - var onlegacyfinish = function onlegacyfinish() { - if (!stream.writable) onfinish() - } - var writableEnded = stream._writableState && stream._writableState.finished - var onfinish = function onfinish() { - writable = false - writableEnded = true - if (!readable) callback.call(stream) - } - var readableEnded = stream._readableState && stream._readableState.endEmitted - var onend = function onend() { - readable = false - readableEnded = true - if (!writable) callback.call(stream) - } - var onerror = function onerror(err) { - callback.call(stream, err) - } - var onclose = function onclose() { - var err - if (readable && !readableEnded) { - if (!stream._readableState || !stream._readableState.ended) - err = new ERR_STREAM_PREMATURE_CLOSE() - return callback.call(stream, err) - } - if (writable && !writableEnded) { - if (!stream._writableState || !stream._writableState.ended) - err = new ERR_STREAM_PREMATURE_CLOSE() - return callback.call(stream, err) - } - } - var onrequest = function onrequest() { - stream.req.on('finish', onfinish) - } - if (isRequest(stream)) { - stream.on('complete', onfinish) - stream.on('abort', onclose) - if (stream.req) onrequest() - else stream.on('request', onrequest) - } else if (writable && !stream._writableState) { - stream.on('end', onlegacyfinish) - stream.on('close', onlegacyfinish) - } - stream.on('end', onend) - stream.on('finish', onfinish) - if (opts.error !== false) stream.on('error', onerror) - stream.on('close', onclose) - return function () { - stream.removeListener('complete', onfinish) - stream.removeListener('abort', onclose) - stream.removeListener('request', onrequest) - if (stream.req) stream.req.removeListener('finish', onfinish) - stream.removeListener('end', onlegacyfinish) - stream.removeListener('close', onlegacyfinish) - stream.removeListener('finish', onfinish) - stream.removeListener('end', onend) - stream.removeListener('error', onerror) - stream.removeListener('close', onclose) - } - } - module.exports = eos - }, - { '../../../errors': 78 } - ], - 88: [ - function (require, module, exports) { - module.exports = function () { - throw new Error('Readable.from is not available in the browser') - } - }, - {} - ], - 89: [ - function (require, module, exports) { - 'use strict' - var eos - function once(callback) { - var called = false - return function () { - if (called) return - called = true - callback.apply(void 0, arguments) - } - } - var _require$codes = require('../../../errors').codes, - ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED - function noop(err) { - if (err) throw err - } - function isRequest(stream) { - return stream.setHeader && typeof stream.abort === 'function' - } - function destroyer(stream, reading, writing, callback) { - callback = once(callback) - var closed = false - stream.on('close', function () { - closed = true - }) - if (eos === undefined) eos = require('./end-of-stream') - eos(stream, { readable: reading, writable: writing }, function (err) { - if (err) return callback(err) - closed = true - callback() - }) - var destroyed = false - return function (err) { - if (closed) return - if (destroyed) return - destroyed = true - if (isRequest(stream)) return stream.abort() - if (typeof stream.destroy === 'function') return stream.destroy() - callback(err || new ERR_STREAM_DESTROYED('pipe')) - } - } - function call(fn) { - fn() - } - function pipe(from, to) { - return from.pipe(to) - } - function popCallback(streams) { - if (!streams.length) return noop - if (typeof streams[streams.length - 1] !== 'function') return noop - return streams.pop() - } - function pipeline() { - for ( - var _len = arguments.length, streams = new Array(_len), _key = 0; - _key < _len; - _key++ - ) { - streams[_key] = arguments[_key] - } - var callback = popCallback(streams) - if (Array.isArray(streams[0])) streams = streams[0] - if (streams.length < 2) { - throw new ERR_MISSING_ARGS('streams') - } - var error - var destroys = streams.map(function (stream, i) { - var reading = i < streams.length - 1 - var writing = i > 0 - return destroyer(stream, reading, writing, function (err) { - if (!error) error = err - if (err) destroys.forEach(call) - if (reading) return - destroys.forEach(call) - callback(error) - }) - }) - return streams.reduce(pipe) - } - module.exports = pipeline - }, - { '../../../errors': 78, './end-of-stream': 87 } - ], - 90: [ - function (require, module, exports) { - 'use strict' - var ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE - function highWaterMarkFrom(options, isDuplex, duplexKey) { - return options.highWaterMark != null - ? options.highWaterMark - : isDuplex - ? options[duplexKey] - : null - } - function getHighWaterMark(state, options, duplexKey, isDuplex) { - var hwm = highWaterMarkFrom(options, isDuplex, duplexKey) - if (hwm != null) { - if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { - var name = isDuplex ? duplexKey : 'highWaterMark' - throw new ERR_INVALID_OPT_VALUE(name, hwm) - } - return Math.floor(hwm) - } - return state.objectMode ? 16 : 16 * 1024 - } - module.exports = { getHighWaterMark: getHighWaterMark } - }, - { '../../../errors': 78 } - ], - 91: [ - function (require, module, exports) { - module.exports = require('events').EventEmitter - }, - { events: 134 } - ], - 92: [ - function (require, module, exports) { - exports = module.exports = require('./lib/_stream_readable.js') - exports.Stream = exports - exports.Readable = exports - exports.Writable = require('./lib/_stream_writable.js') - exports.Duplex = require('./lib/_stream_duplex.js') - exports.Transform = require('./lib/_stream_transform.js') - exports.PassThrough = require('./lib/_stream_passthrough.js') - exports.finished = require('./lib/internal/streams/end-of-stream.js') - exports.pipeline = require('./lib/internal/streams/pipeline.js') - }, - { - './lib/_stream_duplex.js': 79, - './lib/_stream_passthrough.js': 80, - './lib/_stream_readable.js': 81, - './lib/_stream_transform.js': 82, - './lib/_stream_writable.js': 83, - './lib/internal/streams/end-of-stream.js': 87, - './lib/internal/streams/pipeline.js': 89 - } - ], - 93: [ - function (require, module, exports) { - ;(function (Buffer) { - ;(function () { - 'use strict' - var base64 = require('base64-js') - var ieee754 = require('ieee754') - exports.Buffer = Buffer - exports.SlowBuffer = SlowBuffer - exports.INSPECT_MAX_BYTES = 50 - var K_MAX_LENGTH = 2147483647 - exports.kMaxLength = K_MAX_LENGTH - Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport() - if ( - !Buffer.TYPED_ARRAY_SUPPORT && - typeof console !== 'undefined' && - typeof console.error === 'function' - ) { - console.error( - 'This browser lacks typed array (Uint8Array) support which is required by ' + - '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.' - ) - } - function typedArraySupport() { - try { - var arr = new Uint8Array(1) - arr.__proto__ = { - __proto__: Uint8Array.prototype, - foo: function () { - return 42 - } - } - return arr.foo() === 42 - } catch (e) { - return false - } - } - Object.defineProperty(Buffer.prototype, 'parent', { - enumerable: true, - get: function () { - if (!Buffer.isBuffer(this)) return undefined - return this.buffer - } - }) - Object.defineProperty(Buffer.prototype, 'offset', { - enumerable: true, - get: function () { - if (!Buffer.isBuffer(this)) return undefined - return this.byteOffset - } - }) - function createBuffer(length) { - if (length > K_MAX_LENGTH) { - throw new RangeError('The value "' + length + '" is invalid for option "size"') - } - var buf = new Uint8Array(length) - buf.__proto__ = Buffer.prototype - return buf - } - function Buffer(arg, encodingOrOffset, length) { - if (typeof arg === 'number') { - if (typeof encodingOrOffset === 'string') { - throw new TypeError( - 'The "string" argument must be of type string. Received type number' - ) - } - return allocUnsafe(arg) - } - return from(arg, encodingOrOffset, length) - } - if ( - typeof Symbol !== 'undefined' && - Symbol.species != null && - Buffer[Symbol.species] === Buffer - ) { - Object.defineProperty(Buffer, Symbol.species, { - value: null, - configurable: true, - enumerable: false, - writable: false - }) - } - Buffer.poolSize = 8192 - function from(value, encodingOrOffset, length) { - if (typeof value === 'string') { - return fromString(value, encodingOrOffset) - } - if (ArrayBuffer.isView(value)) { - return fromArrayLike(value) - } - if (value == null) { - throw TypeError( - 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + - 'or Array-like Object. Received type ' + - typeof value - ) - } - if ( - isInstance(value, ArrayBuffer) || - (value && isInstance(value.buffer, ArrayBuffer)) - ) { - return fromArrayBuffer(value, encodingOrOffset, length) - } - if (typeof value === 'number') { - throw new TypeError( - 'The "value" argument must not be of type number. Received type number' - ) - } - var valueOf = value.valueOf && value.valueOf() - if (valueOf != null && valueOf !== value) { - return Buffer.from(valueOf, encodingOrOffset, length) - } - var b = fromObject(value) - if (b) return b - if ( - typeof Symbol !== 'undefined' && - Symbol.toPrimitive != null && - typeof value[Symbol.toPrimitive] === 'function' - ) { - return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length) - } - throw new TypeError( - 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + - 'or Array-like Object. Received type ' + - typeof value - ) - } - Buffer.from = function (value, encodingOrOffset, length) { - return from(value, encodingOrOffset, length) - } - Buffer.prototype.__proto__ = Uint8Array.prototype - Buffer.__proto__ = Uint8Array - function assertSize(size) { - if (typeof size !== 'number') { - throw new TypeError('"size" argument must be of type number') - } else if (size < 0) { - throw new RangeError('The value "' + size + '" is invalid for option "size"') - } - } - function alloc(size, fill, encoding) { - assertSize(size) - if (size <= 0) { - return createBuffer(size) - } - if (fill !== undefined) { - return typeof encoding === 'string' - ? createBuffer(size).fill(fill, encoding) - : createBuffer(size).fill(fill) - } - return createBuffer(size) - } - Buffer.alloc = function (size, fill, encoding) { - return alloc(size, fill, encoding) - } - function allocUnsafe(size) { - assertSize(size) - return createBuffer(size < 0 ? 0 : checked(size) | 0) - } - Buffer.allocUnsafe = function (size) { - return allocUnsafe(size) - } - Buffer.allocUnsafeSlow = function (size) { - return allocUnsafe(size) - } - function fromString(string, encoding) { - if (typeof encoding !== 'string' || encoding === '') { - encoding = 'utf8' - } - if (!Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } - var length = byteLength(string, encoding) | 0 - var buf = createBuffer(length) - var actual = buf.write(string, encoding) - if (actual !== length) { - buf = buf.slice(0, actual) - } - return buf - } - function fromArrayLike(array) { - var length = array.length < 0 ? 0 : checked(array.length) | 0 - var buf = createBuffer(length) - for (var i = 0; i < length; i += 1) { - buf[i] = array[i] & 255 - } - return buf - } - function fromArrayBuffer(array, byteOffset, length) { - if (byteOffset < 0 || array.byteLength < byteOffset) { - throw new RangeError('"offset" is outside of buffer bounds') - } - if (array.byteLength < byteOffset + (length || 0)) { - throw new RangeError('"length" is outside of buffer bounds') - } - var buf - if (byteOffset === undefined && length === undefined) { - buf = new Uint8Array(array) - } else if (length === undefined) { - buf = new Uint8Array(array, byteOffset) - } else { - buf = new Uint8Array(array, byteOffset, length) - } - buf.__proto__ = Buffer.prototype - return buf - } - function fromObject(obj) { - if (Buffer.isBuffer(obj)) { - var len = checked(obj.length) | 0 - var buf = createBuffer(len) - if (buf.length === 0) { - return buf - } - obj.copy(buf, 0, 0, len) - return buf - } - if (obj.length !== undefined) { - if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) { - return createBuffer(0) - } - return fromArrayLike(obj) - } - if (obj.type === 'Buffer' && Array.isArray(obj.data)) { - return fromArrayLike(obj.data) - } - } - function checked(length) { - if (length >= K_MAX_LENGTH) { - throw new RangeError( - 'Attempt to allocate Buffer larger than maximum ' + - 'size: 0x' + - K_MAX_LENGTH.toString(16) + - ' bytes' - ) - } - return length | 0 - } - function SlowBuffer(length) { - if (+length != length) { - length = 0 - } - return Buffer.alloc(+length) - } - Buffer.isBuffer = function isBuffer(b) { - return b != null && b._isBuffer === true && b !== Buffer.prototype - } - Buffer.compare = function compare(a, b) { - if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength) - if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength) - if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { - throw new TypeError( - 'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array' - ) - } - if (a === b) return 0 - var x = a.length - var y = b.length - for (var i = 0, len = Math.min(x, y); i < len; ++i) { - if (a[i] !== b[i]) { - x = a[i] - y = b[i] - break - } - } - if (x < y) return -1 - if (y < x) return 1 - return 0 - } - Buffer.isEncoding = function isEncoding(encoding) { - switch (String(encoding).toLowerCase()) { - case 'hex': - case 'utf8': - case 'utf-8': - case 'ascii': - case 'latin1': - case 'binary': - case 'base64': - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return true - default: - return false - } - } - Buffer.concat = function concat(list, length) { - if (!Array.isArray(list)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - if (list.length === 0) { - return Buffer.alloc(0) - } - var i - if (length === undefined) { - length = 0 - for (i = 0; i < list.length; ++i) { - length += list[i].length - } - } - var buffer = Buffer.allocUnsafe(length) - var pos = 0 - for (i = 0; i < list.length; ++i) { - var buf = list[i] - if (isInstance(buf, Uint8Array)) { - buf = Buffer.from(buf) - } - if (!Buffer.isBuffer(buf)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - buf.copy(buffer, pos) - pos += buf.length - } - return buffer - } - function byteLength(string, encoding) { - if (Buffer.isBuffer(string)) { - return string.length - } - if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { - return string.byteLength - } - if (typeof string !== 'string') { - throw new TypeError( - 'The "string" argument must be one of type string, Buffer, or ArrayBuffer. ' + - 'Received type ' + - typeof string - ) - } - var len = string.length - var mustMatch = arguments.length > 2 && arguments[2] === true - if (!mustMatch && len === 0) return 0 - var loweredCase = false - for (;;) { - switch (encoding) { - case 'ascii': - case 'latin1': - case 'binary': - return len - case 'utf8': - case 'utf-8': - return utf8ToBytes(string).length - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return len * 2 - case 'hex': - return len >>> 1 - case 'base64': - return base64ToBytes(string).length - default: - if (loweredCase) { - return mustMatch ? -1 : utf8ToBytes(string).length - } - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } - } - Buffer.byteLength = byteLength - function slowToString(encoding, start, end) { - var loweredCase = false - if (start === undefined || start < 0) { - start = 0 - } - if (start > this.length) { - return '' - } - if (end === undefined || end > this.length) { - end = this.length - } - if (end <= 0) { - return '' - } - end >>>= 0 - start >>>= 0 - if (end <= start) { - return '' - } - if (!encoding) encoding = 'utf8' - while (true) { - switch (encoding) { - case 'hex': - return hexSlice(this, start, end) - case 'utf8': - case 'utf-8': - return utf8Slice(this, start, end) - case 'ascii': - return asciiSlice(this, start, end) - case 'latin1': - case 'binary': - return latin1Slice(this, start, end) - case 'base64': - return base64Slice(this, start, end) - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16leSlice(this, start, end) - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = (encoding + '').toLowerCase() - loweredCase = true - } - } - } - Buffer.prototype._isBuffer = true - function swap(b, n, m) { - var i = b[n] - b[n] = b[m] - b[m] = i - } - Buffer.prototype.swap16 = function swap16() { - var len = this.length - if (len % 2 !== 0) { - throw new RangeError('Buffer size must be a multiple of 16-bits') - } - for (var i = 0; i < len; i += 2) { - swap(this, i, i + 1) - } - return this - } - Buffer.prototype.swap32 = function swap32() { - var len = this.length - if (len % 4 !== 0) { - throw new RangeError('Buffer size must be a multiple of 32-bits') - } - for (var i = 0; i < len; i += 4) { - swap(this, i, i + 3) - swap(this, i + 1, i + 2) - } - return this - } - Buffer.prototype.swap64 = function swap64() { - var len = this.length - if (len % 8 !== 0) { - throw new RangeError('Buffer size must be a multiple of 64-bits') - } - for (var i = 0; i < len; i += 8) { - swap(this, i, i + 7) - swap(this, i + 1, i + 6) - swap(this, i + 2, i + 5) - swap(this, i + 3, i + 4) - } - return this - } - Buffer.prototype.toString = function toString() { - var length = this.length - if (length === 0) return '' - if (arguments.length === 0) return utf8Slice(this, 0, length) - return slowToString.apply(this, arguments) - } - Buffer.prototype.toLocaleString = Buffer.prototype.toString - Buffer.prototype.equals = function equals(b) { - if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return true - return Buffer.compare(this, b) === 0 - } - Buffer.prototype.inspect = function inspect() { - var str = '' - var max = exports.INSPECT_MAX_BYTES - str = this.toString('hex', 0, max) - .replace(/(.{2})/g, '$1 ') - .trim() - if (this.length > max) str += ' ... ' - return '' - } - Buffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) { - if (isInstance(target, Uint8Array)) { - target = Buffer.from(target, target.offset, target.byteLength) - } - if (!Buffer.isBuffer(target)) { - throw new TypeError( - 'The "target" argument must be one of type Buffer or Uint8Array. ' + - 'Received type ' + - typeof target - ) - } - if (start === undefined) { - start = 0 - } - if (end === undefined) { - end = target ? target.length : 0 - } - if (thisStart === undefined) { - thisStart = 0 - } - if (thisEnd === undefined) { - thisEnd = this.length - } - if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { - throw new RangeError('out of range index') - } - if (thisStart >= thisEnd && start >= end) { - return 0 - } - if (thisStart >= thisEnd) { - return -1 - } - if (start >= end) { - return 1 - } - start >>>= 0 - end >>>= 0 - thisStart >>>= 0 - thisEnd >>>= 0 - if (this === target) return 0 - var x = thisEnd - thisStart - var y = end - start - var len = Math.min(x, y) - var thisCopy = this.slice(thisStart, thisEnd) - var targetCopy = target.slice(start, end) - for (var i = 0; i < len; ++i) { - if (thisCopy[i] !== targetCopy[i]) { - x = thisCopy[i] - y = targetCopy[i] - break - } - } - if (x < y) return -1 - if (y < x) return 1 - return 0 - } - function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) { - if (buffer.length === 0) return -1 - if (typeof byteOffset === 'string') { - encoding = byteOffset - byteOffset = 0 - } else if (byteOffset > 2147483647) { - byteOffset = 2147483647 - } else if (byteOffset < -2147483648) { - byteOffset = -2147483648 - } - byteOffset = +byteOffset - if (numberIsNaN(byteOffset)) { - byteOffset = dir ? 0 : buffer.length - 1 - } - if (byteOffset < 0) byteOffset = buffer.length + byteOffset - if (byteOffset >= buffer.length) { - if (dir) return -1 - else byteOffset = buffer.length - 1 - } else if (byteOffset < 0) { - if (dir) byteOffset = 0 - else return -1 - } - if (typeof val === 'string') { - val = Buffer.from(val, encoding) - } - if (Buffer.isBuffer(val)) { - if (val.length === 0) { - return -1 - } - return arrayIndexOf(buffer, val, byteOffset, encoding, dir) - } else if (typeof val === 'number') { - val = val & 255 - if (typeof Uint8Array.prototype.indexOf === 'function') { - if (dir) { - return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) - } else { - return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) - } - } - return arrayIndexOf(buffer, [val], byteOffset, encoding, dir) - } - throw new TypeError('val must be string, number or Buffer') - } - function arrayIndexOf(arr, val, byteOffset, encoding, dir) { - var indexSize = 1 - var arrLength = arr.length - var valLength = val.length - if (encoding !== undefined) { - encoding = String(encoding).toLowerCase() - if ( - encoding === 'ucs2' || - encoding === 'ucs-2' || - encoding === 'utf16le' || - encoding === 'utf-16le' - ) { - if (arr.length < 2 || val.length < 2) { - return -1 - } - indexSize = 2 - arrLength /= 2 - valLength /= 2 - byteOffset /= 2 - } - } - function read(buf, i) { - if (indexSize === 1) { - return buf[i] - } else { - return buf.readUInt16BE(i * indexSize) - } - } - var i - if (dir) { - var foundIndex = -1 - for (i = byteOffset; i < arrLength; i++) { - if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { - if (foundIndex === -1) foundIndex = i - if (i - foundIndex + 1 === valLength) return foundIndex * indexSize - } else { - if (foundIndex !== -1) i -= i - foundIndex - foundIndex = -1 - } - } - } else { - if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength - for (i = byteOffset; i >= 0; i--) { - var found = true - for (var j = 0; j < valLength; j++) { - if (read(arr, i + j) !== read(val, j)) { - found = false - break - } - } - if (found) return i - } - } - return -1 - } - Buffer.prototype.includes = function includes(val, byteOffset, encoding) { - return this.indexOf(val, byteOffset, encoding) !== -1 - } - Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, true) - } - Buffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, false) - } - function hexWrite(buf, string, offset, length) { - offset = Number(offset) || 0 - var remaining = buf.length - offset - if (!length) { - length = remaining - } else { - length = Number(length) - if (length > remaining) { - length = remaining - } - } - var strLen = string.length - if (length > strLen / 2) { - length = strLen / 2 - } - for (var i = 0; i < length; ++i) { - var parsed = parseInt(string.substr(i * 2, 2), 16) - if (numberIsNaN(parsed)) return i - buf[offset + i] = parsed - } - return i - } - function utf8Write(buf, string, offset, length) { - return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) - } - function asciiWrite(buf, string, offset, length) { - return blitBuffer(asciiToBytes(string), buf, offset, length) - } - function latin1Write(buf, string, offset, length) { - return asciiWrite(buf, string, offset, length) - } - function base64Write(buf, string, offset, length) { - return blitBuffer(base64ToBytes(string), buf, offset, length) - } - function ucs2Write(buf, string, offset, length) { - return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) - } - Buffer.prototype.write = function write(string, offset, length, encoding) { - if (offset === undefined) { - encoding = 'utf8' - length = this.length - offset = 0 - } else if (length === undefined && typeof offset === 'string') { - encoding = offset - length = this.length - offset = 0 - } else if (isFinite(offset)) { - offset = offset >>> 0 - if (isFinite(length)) { - length = length >>> 0 - if (encoding === undefined) encoding = 'utf8' - } else { - encoding = length - length = undefined - } - } else { - throw new Error( - 'Buffer.write(string, encoding, offset[, length]) is no longer supported' - ) - } - var remaining = this.length - offset - if (length === undefined || length > remaining) length = remaining - if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { - throw new RangeError('Attempt to write outside buffer bounds') - } - if (!encoding) encoding = 'utf8' - var loweredCase = false - for (;;) { - switch (encoding) { - case 'hex': - return hexWrite(this, string, offset, length) - case 'utf8': - case 'utf-8': - return utf8Write(this, string, offset, length) - case 'ascii': - return asciiWrite(this, string, offset, length) - case 'latin1': - case 'binary': - return latin1Write(this, string, offset, length) - case 'base64': - return base64Write(this, string, offset, length) - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return ucs2Write(this, string, offset, length) - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } - } - Buffer.prototype.toJSON = function toJSON() { - return { type: 'Buffer', data: Array.prototype.slice.call(this._arr || this, 0) } - } - function base64Slice(buf, start, end) { - if (start === 0 && end === buf.length) { - return base64.fromByteArray(buf) - } else { - return base64.fromByteArray(buf.slice(start, end)) - } - } - function utf8Slice(buf, start, end) { - end = Math.min(buf.length, end) - var res = [] - var i = start - while (i < end) { - var firstByte = buf[i] - var codePoint = null - var bytesPerSequence = - firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1 - if (i + bytesPerSequence <= end) { - var secondByte, thirdByte, fourthByte, tempCodePoint - switch (bytesPerSequence) { - case 1: - if (firstByte < 128) { - codePoint = firstByte - } - break - case 2: - secondByte = buf[i + 1] - if ((secondByte & 192) === 128) { - tempCodePoint = ((firstByte & 31) << 6) | (secondByte & 63) - if (tempCodePoint > 127) { - codePoint = tempCodePoint - } - } - break - case 3: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) { - tempCodePoint = - ((firstByte & 15) << 12) | ((secondByte & 63) << 6) | (thirdByte & 63) - if ( - tempCodePoint > 2047 && - (tempCodePoint < 55296 || tempCodePoint > 57343) - ) { - codePoint = tempCodePoint - } - } - break - case 4: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - fourthByte = buf[i + 3] - if ( - (secondByte & 192) === 128 && - (thirdByte & 192) === 128 && - (fourthByte & 192) === 128 - ) { - tempCodePoint = - ((firstByte & 15) << 18) | - ((secondByte & 63) << 12) | - ((thirdByte & 63) << 6) | - (fourthByte & 63) - if (tempCodePoint > 65535 && tempCodePoint < 1114112) { - codePoint = tempCodePoint - } - } - } - } - if (codePoint === null) { - codePoint = 65533 - bytesPerSequence = 1 - } else if (codePoint > 65535) { - codePoint -= 65536 - res.push(((codePoint >>> 10) & 1023) | 55296) - codePoint = 56320 | (codePoint & 1023) - } - res.push(codePoint) - i += bytesPerSequence - } - return decodeCodePointsArray(res) - } - var MAX_ARGUMENTS_LENGTH = 4096 - function decodeCodePointsArray(codePoints) { - var len = codePoints.length - if (len <= MAX_ARGUMENTS_LENGTH) { - return String.fromCharCode.apply(String, codePoints) - } - var res = '' - var i = 0 - while (i < len) { - res += String.fromCharCode.apply( - String, - codePoints.slice(i, (i += MAX_ARGUMENTS_LENGTH)) - ) - } - return res - } - function asciiSlice(buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i] & 127) - } - return ret - } - function latin1Slice(buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i]) - } - return ret - } - function hexSlice(buf, start, end) { - var len = buf.length - if (!start || start < 0) start = 0 - if (!end || end < 0 || end > len) end = len - var out = '' - for (var i = start; i < end; ++i) { - out += toHex(buf[i]) - } - return out - } - function utf16leSlice(buf, start, end) { - var bytes = buf.slice(start, end) - var res = '' - for (var i = 0; i < bytes.length; i += 2) { - res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) - } - return res - } - Buffer.prototype.slice = function slice(start, end) { - var len = this.length - start = ~~start - end = end === undefined ? len : ~~end - if (start < 0) { - start += len - if (start < 0) start = 0 - } else if (start > len) { - start = len - } - if (end < 0) { - end += len - if (end < 0) end = 0 - } else if (end > len) { - end = len - } - if (end < start) end = start - var newBuf = this.subarray(start, end) - newBuf.__proto__ = Buffer.prototype - return newBuf - } - function checkOffset(offset, ext, length) { - if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint') - if (offset + ext > length) - throw new RangeError('Trying to access beyond buffer length') - } - Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 256)) { - val += this[offset + i] * mul - } - return val - } - Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - checkOffset(offset, byteLength, this.length) - } - var val = this[offset + --byteLength] - var mul = 1 - while (byteLength > 0 && (mul *= 256)) { - val += this[offset + --byteLength] * mul - } - return val - } - Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 1, this.length) - return this[offset] - } - Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - return this[offset] | (this[offset + 1] << 8) - } - Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - return (this[offset] << 8) | this[offset + 1] - } - Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - return ( - (this[offset] | (this[offset + 1] << 8) | (this[offset + 2] << 16)) + - this[offset + 3] * 16777216 - ) - } - Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - return ( - this[offset] * 16777216 + - ((this[offset + 1] << 16) | (this[offset + 2] << 8) | this[offset + 3]) - ) - } - Buffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 256)) { - val += this[offset + i] * mul - } - mul *= 128 - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - return val - } - Buffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - var i = byteLength - var mul = 1 - var val = this[offset + --i] - while (i > 0 && (mul *= 256)) { - val += this[offset + --i] * mul - } - mul *= 128 - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - return val - } - Buffer.prototype.readInt8 = function readInt8(offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 1, this.length) - if (!(this[offset] & 128)) return this[offset] - return (255 - this[offset] + 1) * -1 - } - Buffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset] | (this[offset + 1] << 8) - return val & 32768 ? val | 4294901760 : val - } - Buffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset + 1] | (this[offset] << 8) - return val & 32768 ? val | 4294901760 : val - } - Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - return ( - this[offset] | - (this[offset + 1] << 8) | - (this[offset + 2] << 16) | - (this[offset + 3] << 24) - ) - } - Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - return ( - (this[offset] << 24) | - (this[offset + 1] << 16) | - (this[offset + 2] << 8) | - this[offset + 3] - ) - } - Buffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, true, 23, 4) - } - Buffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, false, 23, 4) - } - Buffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, true, 52, 8) - } - Buffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, false, 52, 8) - } - function checkInt(buf, value, offset, ext, max, min) { - if (!Buffer.isBuffer(buf)) - throw new TypeError('"buffer" argument must be a Buffer instance') - if (value > max || value < min) - throw new RangeError('"value" argument is out of bounds') - if (offset + ext > buf.length) throw new RangeError('Index out of range') - } - Buffer.prototype.writeUIntLE = function writeUIntLE( - value, - offset, - byteLength, - noAssert - ) { - value = +value - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - var mul = 1 - var i = 0 - this[offset] = value & 255 - while (++i < byteLength && (mul *= 256)) { - this[offset + i] = (value / mul) & 255 - } - return offset + byteLength - } - Buffer.prototype.writeUIntBE = function writeUIntBE( - value, - offset, - byteLength, - noAssert - ) { - value = +value - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - var i = byteLength - 1 - var mul = 1 - this[offset + i] = value & 255 - while (--i >= 0 && (mul *= 256)) { - this[offset + i] = (value / mul) & 255 - } - return offset + byteLength - } - Buffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 1, 255, 0) - this[offset] = value & 255 - return offset + 1 - } - Buffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 65535, 0) - this[offset] = value & 255 - this[offset + 1] = value >>> 8 - return offset + 2 - } - Buffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 65535, 0) - this[offset] = value >>> 8 - this[offset + 1] = value & 255 - return offset + 2 - } - Buffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0) - this[offset + 3] = value >>> 24 - this[offset + 2] = value >>> 16 - this[offset + 1] = value >>> 8 - this[offset] = value & 255 - return offset + 4 - } - Buffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0) - this[offset] = value >>> 24 - this[offset + 1] = value >>> 16 - this[offset + 2] = value >>> 8 - this[offset + 3] = value & 255 - return offset + 4 - } - Buffer.prototype.writeIntLE = function writeIntLE( - value, - offset, - byteLength, - noAssert - ) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1) - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - var i = 0 - var mul = 1 - var sub = 0 - this[offset] = value & 255 - while (++i < byteLength && (mul *= 256)) { - if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { - sub = 1 - } - this[offset + i] = (((value / mul) >> 0) - sub) & 255 - } - return offset + byteLength - } - Buffer.prototype.writeIntBE = function writeIntBE( - value, - offset, - byteLength, - noAssert - ) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1) - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - var i = byteLength - 1 - var mul = 1 - var sub = 0 - this[offset + i] = value & 255 - while (--i >= 0 && (mul *= 256)) { - if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { - sub = 1 - } - this[offset + i] = (((value / mul) >> 0) - sub) & 255 - } - return offset + byteLength - } - Buffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 1, 127, -128) - if (value < 0) value = 255 + value + 1 - this[offset] = value & 255 - return offset + 1 - } - Buffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768) - this[offset] = value & 255 - this[offset + 1] = value >>> 8 - return offset + 2 - } - Buffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768) - this[offset] = value >>> 8 - this[offset + 1] = value & 255 - return offset + 2 - } - Buffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648) - this[offset] = value & 255 - this[offset + 1] = value >>> 8 - this[offset + 2] = value >>> 16 - this[offset + 3] = value >>> 24 - return offset + 4 - } - Buffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648) - if (value < 0) value = 4294967295 + value + 1 - this[offset] = value >>> 24 - this[offset + 1] = value >>> 16 - this[offset + 2] = value >>> 8 - this[offset + 3] = value & 255 - return offset + 4 - } - function checkIEEE754(buf, value, offset, ext, max, min) { - if (offset + ext > buf.length) throw new RangeError('Index out of range') - if (offset < 0) throw new RangeError('Index out of range') - } - function writeFloat(buf, value, offset, littleEndian, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - checkIEEE754(buf, value, offset, 4, 34028234663852886e22, -34028234663852886e22) - } - ieee754.write(buf, value, offset, littleEndian, 23, 4) - return offset + 4 - } - Buffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) { - return writeFloat(this, value, offset, true, noAssert) - } - Buffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) { - return writeFloat(this, value, offset, false, noAssert) - } - function writeDouble(buf, value, offset, littleEndian, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - checkIEEE754(buf, value, offset, 8, 17976931348623157e292, -17976931348623157e292) - } - ieee754.write(buf, value, offset, littleEndian, 52, 8) - return offset + 8 - } - Buffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) { - return writeDouble(this, value, offset, true, noAssert) - } - Buffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) { - return writeDouble(this, value, offset, false, noAssert) - } - Buffer.prototype.copy = function copy(target, targetStart, start, end) { - if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer') - if (!start) start = 0 - if (!end && end !== 0) end = this.length - if (targetStart >= target.length) targetStart = target.length - if (!targetStart) targetStart = 0 - if (end > 0 && end < start) end = start - if (end === start) return 0 - if (target.length === 0 || this.length === 0) return 0 - if (targetStart < 0) { - throw new RangeError('targetStart out of bounds') - } - if (start < 0 || start >= this.length) throw new RangeError('Index out of range') - if (end < 0) throw new RangeError('sourceEnd out of bounds') - if (end > this.length) end = this.length - if (target.length - targetStart < end - start) { - end = target.length - targetStart + start - } - var len = end - start - if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') { - this.copyWithin(targetStart, start, end) - } else if (this === target && start < targetStart && targetStart < end) { - for (var i = len - 1; i >= 0; --i) { - target[i + targetStart] = this[i + start] - } - } else { - Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart) - } - return len - } - Buffer.prototype.fill = function fill(val, start, end, encoding) { - if (typeof val === 'string') { - if (typeof start === 'string') { - encoding = start - start = 0 - end = this.length - } else if (typeof end === 'string') { - encoding = end - end = this.length - } - if (encoding !== undefined && typeof encoding !== 'string') { - throw new TypeError('encoding must be a string') - } - if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } - if (val.length === 1) { - var code = val.charCodeAt(0) - if ((encoding === 'utf8' && code < 128) || encoding === 'latin1') { - val = code - } - } - } else if (typeof val === 'number') { - val = val & 255 - } - if (start < 0 || this.length < start || this.length < end) { - throw new RangeError('Out of range index') - } - if (end <= start) { - return this - } - start = start >>> 0 - end = end === undefined ? this.length : end >>> 0 - if (!val) val = 0 - var i - if (typeof val === 'number') { - for (i = start; i < end; ++i) { - this[i] = val - } - } else { - var bytes = Buffer.isBuffer(val) ? val : Buffer.from(val, encoding) - var len = bytes.length - if (len === 0) { - throw new TypeError('The value "' + val + '" is invalid for argument "value"') - } - for (i = 0; i < end - start; ++i) { - this[i + start] = bytes[i % len] - } - } - return this - } - var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g - function base64clean(str) { - str = str.split('=')[0] - str = str.trim().replace(INVALID_BASE64_RE, '') - if (str.length < 2) return '' - while (str.length % 4 !== 0) { - str = str + '=' - } - return str - } - function toHex(n) { - if (n < 16) return '0' + n.toString(16) - return n.toString(16) - } - function utf8ToBytes(string, units) { - units = units || Infinity - var codePoint - var length = string.length - var leadSurrogate = null - var bytes = [] - for (var i = 0; i < length; ++i) { - codePoint = string.charCodeAt(i) - if (codePoint > 55295 && codePoint < 57344) { - if (!leadSurrogate) { - if (codePoint > 56319) { - if ((units -= 3) > -1) bytes.push(239, 191, 189) - continue - } else if (i + 1 === length) { - if ((units -= 3) > -1) bytes.push(239, 191, 189) - continue - } - leadSurrogate = codePoint - continue - } - if (codePoint < 56320) { - if ((units -= 3) > -1) bytes.push(239, 191, 189) - leadSurrogate = codePoint - continue - } - codePoint = (((leadSurrogate - 55296) << 10) | (codePoint - 56320)) + 65536 - } else if (leadSurrogate) { - if ((units -= 3) > -1) bytes.push(239, 191, 189) - } - leadSurrogate = null - if (codePoint < 128) { - if ((units -= 1) < 0) break - bytes.push(codePoint) - } else if (codePoint < 2048) { - if ((units -= 2) < 0) break - bytes.push((codePoint >> 6) | 192, (codePoint & 63) | 128) - } else if (codePoint < 65536) { - if ((units -= 3) < 0) break - bytes.push( - (codePoint >> 12) | 224, - ((codePoint >> 6) & 63) | 128, - (codePoint & 63) | 128 - ) - } else if (codePoint < 1114112) { - if ((units -= 4) < 0) break - bytes.push( - (codePoint >> 18) | 240, - ((codePoint >> 12) & 63) | 128, - ((codePoint >> 6) & 63) | 128, - (codePoint & 63) | 128 - ) - } else { - throw new Error('Invalid code point') - } - } - return bytes - } - function asciiToBytes(str) { - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - byteArray.push(str.charCodeAt(i) & 255) - } - return byteArray - } - function utf16leToBytes(str, units) { - var c, hi, lo - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - if ((units -= 2) < 0) break - c = str.charCodeAt(i) - hi = c >> 8 - lo = c % 256 - byteArray.push(lo) - byteArray.push(hi) - } - return byteArray - } - function base64ToBytes(str) { - return base64.toByteArray(base64clean(str)) - } - function blitBuffer(src, dst, offset, length) { - for (var i = 0; i < length; ++i) { - if (i + offset >= dst.length || i >= src.length) break - dst[i + offset] = src[i] - } - return i - } - function isInstance(obj, type) { - return ( - obj instanceof type || - (obj != null && - obj.constructor != null && - obj.constructor.name != null && - obj.constructor.name === type.name) - ) - } - function numberIsNaN(obj) { - return obj !== obj - } - }.call(this)) - }.call(this, require('buffer').Buffer)) - }, - { 'base64-js': 46, buffer: 93, ieee754: 150 } - ], - 94: [ - function (require, module, exports) { - var basex = require('base-x') - var ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' - module.exports = basex(ALPHABET) - }, - { 'base-x': 45 } - ], - 95: [ - function (require, module, exports) { - 'use strict' - var base58 = require('bs58') - var Buffer = require('safe-buffer').Buffer - module.exports = function (checksumFn) { - function encode(payload) { - var checksum = checksumFn(payload) - return base58.encode(Buffer.concat([payload, checksum], payload.length + 4)) - } - function decodeRaw(buffer) { - var payload = buffer.slice(0, -4) - var checksum = buffer.slice(-4) - var newChecksum = checksumFn(payload) - if ( - (checksum[0] ^ newChecksum[0]) | - (checksum[1] ^ newChecksum[1]) | - (checksum[2] ^ newChecksum[2]) | - (checksum[3] ^ newChecksum[3]) - ) - return - return payload - } - function decodeUnsafe(string) { - var buffer = base58.decodeUnsafe(string) - if (!buffer) return - return decodeRaw(buffer) - } - function decode(string) { - var buffer = base58.decode(string) - var payload = decodeRaw(buffer, checksumFn) - if (!payload) throw new Error('Invalid checksum') - return payload - } - return { encode: encode, decode: decode, decodeUnsafe: decodeUnsafe } - } - }, - { bs58: 94, 'safe-buffer': 183 } - ], - 96: [ - function (require, module, exports) { - 'use strict' - var createHash = require('create-hash') - var bs58checkBase = require('./base') - function sha256x2(buffer) { - var tmp = createHash('sha256').update(buffer).digest() - return createHash('sha256').update(tmp).digest() - } - module.exports = bs58checkBase(sha256x2) - }, - { './base': 95, 'create-hash': 101 } - ], - 97: [ - function (require, module, exports) { - ;(function (Buffer) { - ;(function () { - module.exports = function xor(a, b) { - var length = Math.min(a.length, b.length) - var buffer = new Buffer(length) - for (var i = 0; i < length; ++i) { - buffer[i] = a[i] ^ b[i] - } - return buffer - } - }.call(this)) - }.call(this, require('buffer').Buffer)) - }, - { buffer: 93 } - ], - 98: [ - function (require, module, exports) { - var Buffer = require('safe-buffer').Buffer - var Transform = require('stream').Transform - var StringDecoder = require('string_decoder').StringDecoder - var inherits = require('inherits') - function CipherBase(hashMode) { - Transform.call(this) - this.hashMode = typeof hashMode === 'string' - if (this.hashMode) { - this[hashMode] = this._finalOrDigest - } else { - this.final = this._finalOrDigest - } - if (this._final) { - this.__final = this._final - this._final = null - } - this._decoder = null - this._encoding = null - } - inherits(CipherBase, Transform) - CipherBase.prototype.update = function (data, inputEnc, outputEnc) { - if (typeof data === 'string') { - data = Buffer.from(data, inputEnc) - } - var outData = this._update(data) - if (this.hashMode) return this - if (outputEnc) { - outData = this._toString(outData, outputEnc) - } - return outData - } - CipherBase.prototype.setAutoPadding = function () {} - CipherBase.prototype.getAuthTag = function () { - throw new Error('trying to get auth tag in unsupported state') - } - CipherBase.prototype.setAuthTag = function () { - throw new Error('trying to set auth tag in unsupported state') - } - CipherBase.prototype.setAAD = function () { - throw new Error('trying to set aad in unsupported state') - } - CipherBase.prototype._transform = function (data, _, next) { - var err - try { - if (this.hashMode) { - this._update(data) - } else { - this.push(this._update(data)) - } - } catch (e) { - err = e - } finally { - next(err) - } - } - CipherBase.prototype._flush = function (done) { - var err - try { - this.push(this.__final()) - } catch (e) { - err = e - } - done(err) - } - CipherBase.prototype._finalOrDigest = function (outputEnc) { - var outData = this.__final() || Buffer.alloc(0) - if (outputEnc) { - outData = this._toString(outData, outputEnc, true) - } - return outData - } - CipherBase.prototype._toString = function (value, enc, fin) { - if (!this._decoder) { - this._decoder = new StringDecoder(enc) - this._encoding = enc - } - if (this._encoding !== enc) throw new Error("can't switch encodings") - var out = this._decoder.write(value) - if (fin) { - out += this._decoder.end() - } - return out - } - module.exports = CipherBase - }, - { inherits: 151, 'safe-buffer': 183, stream: 192, string_decoder: 207 } - ], - 99: [ - function (require, module, exports) { - ;(function (Buffer) { - ;(function () { - var elliptic = require('elliptic') - var BN = require('bn.js') - module.exports = function createECDH(curve) { - return new ECDH(curve) - } - var aliases = { - secp256k1: { name: 'secp256k1', byteLength: 32 }, - secp224r1: { name: 'p224', byteLength: 28 }, - prime256v1: { name: 'p256', byteLength: 32 }, - prime192v1: { name: 'p192', byteLength: 24 }, - ed25519: { name: 'ed25519', byteLength: 32 }, - secp384r1: { name: 'p384', byteLength: 48 }, - secp521r1: { name: 'p521', byteLength: 66 } - } - aliases.p224 = aliases.secp224r1 - aliases.p256 = aliases.secp256r1 = aliases.prime256v1 - aliases.p192 = aliases.secp192r1 = aliases.prime192v1 - aliases.p384 = aliases.secp384r1 - aliases.p521 = aliases.secp521r1 - function ECDH(curve) { - this.curveType = aliases[curve] - if (!this.curveType) { - this.curveType = { name: curve } - } - this.curve = new elliptic.ec(this.curveType.name) - this.keys = void 0 - } - ECDH.prototype.generateKeys = function (enc, format) { - this.keys = this.curve.genKeyPair() - return this.getPublicKey(enc, format) - } - ECDH.prototype.computeSecret = function (other, inenc, enc) { - inenc = inenc || 'utf8' - if (!Buffer.isBuffer(other)) { - other = new Buffer(other, inenc) - } - var otherPub = this.curve.keyFromPublic(other).getPublic() - var out = otherPub.mul(this.keys.getPrivate()).getX() - return formatReturnValue(out, enc, this.curveType.byteLength) - } - ECDH.prototype.getPublicKey = function (enc, format) { - var key = this.keys.getPublic(format === 'compressed', true) - if (format === 'hybrid') { - if (key[key.length - 1] % 2) { - key[0] = 7 - } else { - key[0] = 6 - } - } - return formatReturnValue(key, enc) - } - ECDH.prototype.getPrivateKey = function (enc) { - return formatReturnValue(this.keys.getPrivate(), enc) - } - ECDH.prototype.setPublicKey = function (pub, enc) { - enc = enc || 'utf8' - if (!Buffer.isBuffer(pub)) { - pub = new Buffer(pub, enc) - } - this.keys._importPublic(pub) - return this - } - ECDH.prototype.setPrivateKey = function (priv, enc) { - enc = enc || 'utf8' - if (!Buffer.isBuffer(priv)) { - priv = new Buffer(priv, enc) - } - var _priv = new BN(priv) - _priv = _priv.toString(16) - this.keys = this.curve.genKeyPair() - this.keys._importPrivate(_priv) - return this - } - function formatReturnValue(bn, enc, len) { - if (!Array.isArray(bn)) { - bn = bn.toArray() - } - var buf = new Buffer(bn) - if (len && buf.length < len) { - var zeros = new Buffer(len - buf.length) - zeros.fill(0) - buf = Buffer.concat([zeros, buf]) - } - if (!enc) { - return buf - } else { - return buf.toString(enc) - } - } - }.call(this)) - }.call(this, require('buffer').Buffer)) - }, - { 'bn.js': 100, buffer: 93, elliptic: 117 } - ], - 100: [ - function (require, module, exports) { - arguments[4][15][0].apply(exports, arguments) - }, - { buffer: 49, dup: 15 } - ], - 101: [ - function (require, module, exports) { - 'use strict' - var inherits = require('inherits') - var MD5 = require('md5.js') - var RIPEMD160 = require('ripemd160') - var sha = require('sha.js') - var Base = require('cipher-base') - function Hash(hash) { - Base.call(this, 'digest') - this._hash = hash - } - inherits(Hash, Base) - Hash.prototype._update = function (data) { - this._hash.update(data) - } - Hash.prototype._final = function () { - return this._hash.digest() - } - module.exports = function createHash(alg) { - alg = alg.toLowerCase() - if (alg === 'md5') return new MD5() - if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160() - return new Hash(sha(alg)) - } - }, - { 'cipher-base': 98, inherits: 151, 'md5.js': 155, ripemd160: 182, 'sha.js': 185 } - ], - 102: [ - function (require, module, exports) { - var MD5 = require('md5.js') - module.exports = function (buffer) { - return new MD5().update(buffer).digest() - } - }, - { 'md5.js': 155 } - ], - 103: [ - function (require, module, exports) { - 'use strict' - var inherits = require('inherits') - var Legacy = require('./legacy') - var Base = require('cipher-base') - var Buffer = require('safe-buffer').Buffer - var md5 = require('create-hash/md5') - var RIPEMD160 = require('ripemd160') - var sha = require('sha.js') - var ZEROS = Buffer.alloc(128) - function Hmac(alg, key) { - Base.call(this, 'digest') - if (typeof key === 'string') { - key = Buffer.from(key) - } - var blocksize = alg === 'sha512' || alg === 'sha384' ? 128 : 64 - this._alg = alg - this._key = key - if (key.length > blocksize) { - var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg) - key = hash.update(key).digest() - } else if (key.length < blocksize) { - key = Buffer.concat([key, ZEROS], blocksize) - } - var ipad = (this._ipad = Buffer.allocUnsafe(blocksize)) - var opad = (this._opad = Buffer.allocUnsafe(blocksize)) - for (var i = 0; i < blocksize; i++) { - ipad[i] = key[i] ^ 54 - opad[i] = key[i] ^ 92 - } - this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg) - this._hash.update(ipad) - } - inherits(Hmac, Base) - Hmac.prototype._update = function (data) { - this._hash.update(data) - } - Hmac.prototype._final = function () { - var h = this._hash.digest() - var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg) - return hash.update(this._opad).update(h).digest() - } - module.exports = function createHmac(alg, key) { - alg = alg.toLowerCase() - if (alg === 'rmd160' || alg === 'ripemd160') { - return new Hmac('rmd160', key) - } - if (alg === 'md5') { - return new Legacy(md5, key) - } - return new Hmac(alg, key) - } - }, - { - './legacy': 104, - 'cipher-base': 98, - 'create-hash/md5': 102, - inherits: 151, - ripemd160: 182, - 'safe-buffer': 183, - 'sha.js': 185 - } - ], - 104: [ - function (require, module, exports) { - 'use strict' - var inherits = require('inherits') - var Buffer = require('safe-buffer').Buffer - var Base = require('cipher-base') - var ZEROS = Buffer.alloc(128) - var blocksize = 64 - function Hmac(alg, key) { - Base.call(this, 'digest') - if (typeof key === 'string') { - key = Buffer.from(key) - } - this._alg = alg - this._key = key - if (key.length > blocksize) { - key = alg(key) - } else if (key.length < blocksize) { - key = Buffer.concat([key, ZEROS], blocksize) - } - var ipad = (this._ipad = Buffer.allocUnsafe(blocksize)) - var opad = (this._opad = Buffer.allocUnsafe(blocksize)) - for (var i = 0; i < blocksize; i++) { - ipad[i] = key[i] ^ 54 - opad[i] = key[i] ^ 92 - } - this._hash = [ipad] - } - inherits(Hmac, Base) - Hmac.prototype._update = function (data) { - this._hash.push(data) - } - Hmac.prototype._final = function () { - var h = this._alg(Buffer.concat(this._hash)) - return this._alg(Buffer.concat([this._opad, h])) - } - module.exports = Hmac - }, - { 'cipher-base': 98, inherits: 151, 'safe-buffer': 183 } - ], - 105: [ - function (require, module, exports) { - 'use strict' - exports.randomBytes = - exports.rng = - exports.pseudoRandomBytes = - exports.prng = - require('randombytes') - exports.createHash = exports.Hash = require('create-hash') - exports.createHmac = exports.Hmac = require('create-hmac') - var algos = require('browserify-sign/algos') - var algoKeys = Object.keys(algos) - var hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat( - algoKeys - ) - exports.getHashes = function () { - return hashes - } - var p = require('pbkdf2') - exports.pbkdf2 = p.pbkdf2 - exports.pbkdf2Sync = p.pbkdf2Sync - var aes = require('browserify-cipher') - exports.Cipher = aes.Cipher - exports.createCipher = aes.createCipher - exports.Cipheriv = aes.Cipheriv - exports.createCipheriv = aes.createCipheriv - exports.Decipher = aes.Decipher - exports.createDecipher = aes.createDecipher - exports.Decipheriv = aes.Decipheriv - exports.createDecipheriv = aes.createDecipheriv - exports.getCiphers = aes.getCiphers - exports.listCiphers = aes.listCiphers - var dh = require('diffie-hellman') - exports.DiffieHellmanGroup = dh.DiffieHellmanGroup - exports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup - exports.getDiffieHellman = dh.getDiffieHellman - exports.createDiffieHellman = dh.createDiffieHellman - exports.DiffieHellman = dh.DiffieHellman - var sign = require('browserify-sign') - exports.createSign = sign.createSign - exports.Sign = sign.Sign - exports.createVerify = sign.createVerify - exports.Verify = sign.Verify - exports.createECDH = require('create-ecdh') - var publicEncrypt = require('public-encrypt') - exports.publicEncrypt = publicEncrypt.publicEncrypt - exports.privateEncrypt = publicEncrypt.privateEncrypt - exports.publicDecrypt = publicEncrypt.publicDecrypt - exports.privateDecrypt = publicEncrypt.privateDecrypt - var rf = require('randomfill') - exports.randomFill = rf.randomFill - exports.randomFillSync = rf.randomFillSync - exports.createCredentials = function () { - throw new Error( - [ - 'sorry, createCredentials is not implemented yet', - 'we accept pull requests', - 'https://github.com/crypto-browserify/crypto-browserify' - ].join('\n') - ) - } - exports.constants = { - DH_CHECK_P_NOT_SAFE_PRIME: 2, - DH_CHECK_P_NOT_PRIME: 1, - DH_UNABLE_TO_CHECK_GENERATOR: 4, - DH_NOT_SUITABLE_GENERATOR: 8, - NPN_ENABLED: 1, - ALPN_ENABLED: 1, - RSA_PKCS1_PADDING: 1, - RSA_SSLV23_PADDING: 2, - RSA_NO_PADDING: 3, - RSA_PKCS1_OAEP_PADDING: 4, - RSA_X931_PADDING: 5, - RSA_PKCS1_PSS_PADDING: 6, - POINT_CONVERSION_COMPRESSED: 2, - POINT_CONVERSION_UNCOMPRESSED: 4, - POINT_CONVERSION_HYBRID: 6 - } - }, - { - 'browserify-cipher': 67, - 'browserify-sign': 75, - 'browserify-sign/algos': 72, - 'create-ecdh': 99, - 'create-hash': 101, - 'create-hmac': 103, - 'diffie-hellman': 112, - pbkdf2: 166, - 'public-encrypt': 172, - randombytes: 180, - randomfill: 181 - } - ], - 106: [ - function (require, module, exports) { - 'use strict' - exports.utils = require('./des/utils') - exports.Cipher = require('./des/cipher') - exports.DES = require('./des/des') - exports.CBC = require('./des/cbc') - exports.EDE = require('./des/ede') - }, - { - './des/cbc': 107, - './des/cipher': 108, - './des/des': 109, - './des/ede': 110, - './des/utils': 111 - } - ], - 107: [ - function (require, module, exports) { - 'use strict' - var assert = require('minimalistic-assert') - var inherits = require('inherits') - var proto = {} - function CBCState(iv) { - assert.equal(iv.length, 8, 'Invalid IV length') - this.iv = new Array(8) - for (var i = 0; i < this.iv.length; i++) this.iv[i] = iv[i] - } - function instantiate(Base) { - function CBC(options) { - Base.call(this, options) - this._cbcInit() - } - inherits(CBC, Base) - var keys = Object.keys(proto) - for (var i = 0; i < keys.length; i++) { - var key = keys[i] - CBC.prototype[key] = proto[key] - } - CBC.create = function create(options) { - return new CBC(options) - } - return CBC - } - exports.instantiate = instantiate - proto._cbcInit = function _cbcInit() { - var state = new CBCState(this.options.iv) - this._cbcState = state - } - proto._update = function _update(inp, inOff, out, outOff) { - var state = this._cbcState - var superProto = this.constructor.super_.prototype - var iv = state.iv - if (this.type === 'encrypt') { - for (var i = 0; i < this.blockSize; i++) iv[i] ^= inp[inOff + i] - superProto._update.call(this, iv, 0, out, outOff) - for (var i = 0; i < this.blockSize; i++) iv[i] = out[outOff + i] - } else { - superProto._update.call(this, inp, inOff, out, outOff) - for (var i = 0; i < this.blockSize; i++) out[outOff + i] ^= iv[i] - for (var i = 0; i < this.blockSize; i++) iv[i] = inp[inOff + i] - } - } - }, - { inherits: 151, 'minimalistic-assert': 158 } - ], - 108: [ - function (require, module, exports) { - 'use strict' - var assert = require('minimalistic-assert') - function Cipher(options) { - this.options = options - this.type = this.options.type - this.blockSize = 8 - this._init() - this.buffer = new Array(this.blockSize) - this.bufferOff = 0 - } - module.exports = Cipher - Cipher.prototype._init = function _init() {} - Cipher.prototype.update = function update(data) { - if (data.length === 0) return [] - if (this.type === 'decrypt') return this._updateDecrypt(data) - else return this._updateEncrypt(data) - } - Cipher.prototype._buffer = function _buffer(data, off) { - var min = Math.min(this.buffer.length - this.bufferOff, data.length - off) - for (var i = 0; i < min; i++) this.buffer[this.bufferOff + i] = data[off + i] - this.bufferOff += min - return min - } - Cipher.prototype._flushBuffer = function _flushBuffer(out, off) { - this._update(this.buffer, 0, out, off) - this.bufferOff = 0 - return this.blockSize - } - Cipher.prototype._updateEncrypt = function _updateEncrypt(data) { - var inputOff = 0 - var outputOff = 0 - var count = ((this.bufferOff + data.length) / this.blockSize) | 0 - var out = new Array(count * this.blockSize) - if (this.bufferOff !== 0) { - inputOff += this._buffer(data, inputOff) - if (this.bufferOff === this.buffer.length) - outputOff += this._flushBuffer(out, outputOff) - } - var max = data.length - ((data.length - inputOff) % this.blockSize) - for (; inputOff < max; inputOff += this.blockSize) { - this._update(data, inputOff, out, outputOff) - outputOff += this.blockSize - } - for (; inputOff < data.length; inputOff++, this.bufferOff++) - this.buffer[this.bufferOff] = data[inputOff] - return out - } - Cipher.prototype._updateDecrypt = function _updateDecrypt(data) { - var inputOff = 0 - var outputOff = 0 - var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1 - var out = new Array(count * this.blockSize) - for (; count > 0; count--) { - inputOff += this._buffer(data, inputOff) - outputOff += this._flushBuffer(out, outputOff) - } - inputOff += this._buffer(data, inputOff) - return out - } - Cipher.prototype.final = function final(buffer) { - var first - if (buffer) first = this.update(buffer) - var last - if (this.type === 'encrypt') last = this._finalEncrypt() - else last = this._finalDecrypt() - if (first) return first.concat(last) - else return last - } - Cipher.prototype._pad = function _pad(buffer, off) { - if (off === 0) return false - while (off < buffer.length) buffer[off++] = 0 - return true - } - Cipher.prototype._finalEncrypt = function _finalEncrypt() { - if (!this._pad(this.buffer, this.bufferOff)) return [] - var out = new Array(this.blockSize) - this._update(this.buffer, 0, out, 0) - return out - } - Cipher.prototype._unpad = function _unpad(buffer) { - return buffer - } - Cipher.prototype._finalDecrypt = function _finalDecrypt() { - assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt') - var out = new Array(this.blockSize) - this._flushBuffer(out, 0) - return this._unpad(out) - } - }, - { 'minimalistic-assert': 158 } - ], - 109: [ - function (require, module, exports) { - 'use strict' - var assert = require('minimalistic-assert') - var inherits = require('inherits') - var utils = require('./utils') - var Cipher = require('./cipher') - function DESState() { - this.tmp = new Array(2) - this.keys = null - } - function DES(options) { - Cipher.call(this, options) - var state = new DESState() - this._desState = state - this.deriveKeys(state, options.key) - } - inherits(DES, Cipher) - module.exports = DES - DES.create = function create(options) { - return new DES(options) - } - var shiftTable = [1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1] - DES.prototype.deriveKeys = function deriveKeys(state, key) { - state.keys = new Array(16 * 2) - assert.equal(key.length, this.blockSize, 'Invalid key length') - var kL = utils.readUInt32BE(key, 0) - var kR = utils.readUInt32BE(key, 4) - utils.pc1(kL, kR, state.tmp, 0) - kL = state.tmp[0] - kR = state.tmp[1] - for (var i = 0; i < state.keys.length; i += 2) { - var shift = shiftTable[i >>> 1] - kL = utils.r28shl(kL, shift) - kR = utils.r28shl(kR, shift) - utils.pc2(kL, kR, state.keys, i) - } - } - DES.prototype._update = function _update(inp, inOff, out, outOff) { - var state = this._desState - var l = utils.readUInt32BE(inp, inOff) - var r = utils.readUInt32BE(inp, inOff + 4) - utils.ip(l, r, state.tmp, 0) - l = state.tmp[0] - r = state.tmp[1] - if (this.type === 'encrypt') this._encrypt(state, l, r, state.tmp, 0) - else this._decrypt(state, l, r, state.tmp, 0) - l = state.tmp[0] - r = state.tmp[1] - utils.writeUInt32BE(out, l, outOff) - utils.writeUInt32BE(out, r, outOff + 4) - } - DES.prototype._pad = function _pad(buffer, off) { - var value = buffer.length - off - for (var i = off; i < buffer.length; i++) buffer[i] = value - return true - } - DES.prototype._unpad = function _unpad(buffer) { - var pad = buffer[buffer.length - 1] - for (var i = buffer.length - pad; i < buffer.length; i++) assert.equal(buffer[i], pad) - return buffer.slice(0, buffer.length - pad) - } - DES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) { - var l = lStart - var r = rStart - for (var i = 0; i < state.keys.length; i += 2) { - var keyL = state.keys[i] - var keyR = state.keys[i + 1] - utils.expand(r, state.tmp, 0) - keyL ^= state.tmp[0] - keyR ^= state.tmp[1] - var s = utils.substitute(keyL, keyR) - var f = utils.permute(s) - var t = r - r = (l ^ f) >>> 0 - l = t - } - utils.rip(r, l, out, off) - } - DES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) { - var l = rStart - var r = lStart - for (var i = state.keys.length - 2; i >= 0; i -= 2) { - var keyL = state.keys[i] - var keyR = state.keys[i + 1] - utils.expand(l, state.tmp, 0) - keyL ^= state.tmp[0] - keyR ^= state.tmp[1] - var s = utils.substitute(keyL, keyR) - var f = utils.permute(s) - var t = l - l = (r ^ f) >>> 0 - r = t - } - utils.rip(l, r, out, off) - } - }, - { './cipher': 108, './utils': 111, inherits: 151, 'minimalistic-assert': 158 } - ], - 110: [ - function (require, module, exports) { - 'use strict' - var assert = require('minimalistic-assert') - var inherits = require('inherits') - var Cipher = require('./cipher') - var DES = require('./des') - function EDEState(type, key) { - assert.equal(key.length, 24, 'Invalid key length') - var k1 = key.slice(0, 8) - var k2 = key.slice(8, 16) - var k3 = key.slice(16, 24) - if (type === 'encrypt') { - this.ciphers = [ - DES.create({ type: 'encrypt', key: k1 }), - DES.create({ type: 'decrypt', key: k2 }), - DES.create({ type: 'encrypt', key: k3 }) - ] - } else { - this.ciphers = [ - DES.create({ type: 'decrypt', key: k3 }), - DES.create({ type: 'encrypt', key: k2 }), - DES.create({ type: 'decrypt', key: k1 }) - ] - } - } - function EDE(options) { - Cipher.call(this, options) - var state = new EDEState(this.type, this.options.key) - this._edeState = state - } - inherits(EDE, Cipher) - module.exports = EDE - EDE.create = function create(options) { - return new EDE(options) - } - EDE.prototype._update = function _update(inp, inOff, out, outOff) { - var state = this._edeState - state.ciphers[0]._update(inp, inOff, out, outOff) - state.ciphers[1]._update(out, outOff, out, outOff) - state.ciphers[2]._update(out, outOff, out, outOff) - } - EDE.prototype._pad = DES.prototype._pad - EDE.prototype._unpad = DES.prototype._unpad - }, - { './cipher': 108, './des': 109, inherits: 151, 'minimalistic-assert': 158 } - ], - 111: [ - function (require, module, exports) { - 'use strict' - exports.readUInt32BE = function readUInt32BE(bytes, off) { - var res = - (bytes[0 + off] << 24) | - (bytes[1 + off] << 16) | - (bytes[2 + off] << 8) | - bytes[3 + off] - return res >>> 0 - } - exports.writeUInt32BE = function writeUInt32BE(bytes, value, off) { - bytes[0 + off] = value >>> 24 - bytes[1 + off] = (value >>> 16) & 255 - bytes[2 + off] = (value >>> 8) & 255 - bytes[3 + off] = value & 255 - } - exports.ip = function ip(inL, inR, out, off) { - var outL = 0 - var outR = 0 - for (var i = 6; i >= 0; i -= 2) { - for (var j = 0; j <= 24; j += 8) { - outL <<= 1 - outL |= (inR >>> (j + i)) & 1 - } - for (var j = 0; j <= 24; j += 8) { - outL <<= 1 - outL |= (inL >>> (j + i)) & 1 - } - } - for (var i = 6; i >= 0; i -= 2) { - for (var j = 1; j <= 25; j += 8) { - outR <<= 1 - outR |= (inR >>> (j + i)) & 1 - } - for (var j = 1; j <= 25; j += 8) { - outR <<= 1 - outR |= (inL >>> (j + i)) & 1 - } - } - out[off + 0] = outL >>> 0 - out[off + 1] = outR >>> 0 - } - exports.rip = function rip(inL, inR, out, off) { - var outL = 0 - var outR = 0 - for (var i = 0; i < 4; i++) { - for (var j = 24; j >= 0; j -= 8) { - outL <<= 1 - outL |= (inR >>> (j + i)) & 1 - outL <<= 1 - outL |= (inL >>> (j + i)) & 1 - } - } - for (var i = 4; i < 8; i++) { - for (var j = 24; j >= 0; j -= 8) { - outR <<= 1 - outR |= (inR >>> (j + i)) & 1 - outR <<= 1 - outR |= (inL >>> (j + i)) & 1 - } - } - out[off + 0] = outL >>> 0 - out[off + 1] = outR >>> 0 - } - exports.pc1 = function pc1(inL, inR, out, off) { - var outL = 0 - var outR = 0 - for (var i = 7; i >= 5; i--) { - for (var j = 0; j <= 24; j += 8) { - outL <<= 1 - outL |= (inR >> (j + i)) & 1 - } - for (var j = 0; j <= 24; j += 8) { - outL <<= 1 - outL |= (inL >> (j + i)) & 1 - } - } - for (var j = 0; j <= 24; j += 8) { - outL <<= 1 - outL |= (inR >> (j + i)) & 1 - } - for (var i = 1; i <= 3; i++) { - for (var j = 0; j <= 24; j += 8) { - outR <<= 1 - outR |= (inR >> (j + i)) & 1 - } - for (var j = 0; j <= 24; j += 8) { - outR <<= 1 - outR |= (inL >> (j + i)) & 1 - } - } - for (var j = 0; j <= 24; j += 8) { - outR <<= 1 - outR |= (inL >> (j + i)) & 1 - } - out[off + 0] = outL >>> 0 - out[off + 1] = outR >>> 0 - } - exports.r28shl = function r28shl(num, shift) { - return ((num << shift) & 268435455) | (num >>> (28 - shift)) - } - var pc2table = [ - 14, 11, 17, 4, 27, 23, 25, 0, 13, 22, 7, 18, 5, 9, 16, 24, 2, 20, 12, 21, 1, 8, 15, 26, - 15, 4, 25, 19, 9, 1, 26, 16, 5, 11, 23, 8, 12, 7, 17, 0, 22, 3, 10, 14, 6, 20, 27, 24 - ] - exports.pc2 = function pc2(inL, inR, out, off) { - var outL = 0 - var outR = 0 - var len = pc2table.length >>> 1 - for (var i = 0; i < len; i++) { - outL <<= 1 - outL |= (inL >>> pc2table[i]) & 1 - } - for (var i = len; i < pc2table.length; i++) { - outR <<= 1 - outR |= (inR >>> pc2table[i]) & 1 - } - out[off + 0] = outL >>> 0 - out[off + 1] = outR >>> 0 - } - exports.expand = function expand(r, out, off) { - var outL = 0 - var outR = 0 - outL = ((r & 1) << 5) | (r >>> 27) - for (var i = 23; i >= 15; i -= 4) { - outL <<= 6 - outL |= (r >>> i) & 63 - } - for (var i = 11; i >= 3; i -= 4) { - outR |= (r >>> i) & 63 - outR <<= 6 - } - outR |= ((r & 31) << 1) | (r >>> 31) - out[off + 0] = outL >>> 0 - out[off + 1] = outR >>> 0 - } - var sTable = [ - 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, 3, 10, 10, 6, 6, 12, 12, 11, 5, - 9, 9, 5, 0, 3, 7, 8, 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7, 15, 5, 12, 11, - 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13, 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, - 4, 14, 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, 0, 13, 14, 8, 7, 10, 11, 1, - 10, 3, 4, 15, 13, 4, 1, 2, 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9, 10, 13, - 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10, 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, - 2, 15, 8, 1, 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7, 11, 4, 1, 15, 2, 14, - 12, 3, 5, 11, 10, 5, 14, 2, 7, 12, 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3, - 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, - 11, 1, 7, 13, 13, 8, 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14, 2, 14, 12, 11, - 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1, 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, - 9, 6, 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13, 15, 6, 9, 15, 12, 0, 5, 9, - 6, 10, 3, 4, 0, 5, 14, 3, 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5, 0, 6, - 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, - 12, 15, 3, 10, 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13, 4, 13, 11, 0, 2, - 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, - 6, 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, 10, 9, 15, 5, 6, 0, 8, 15, 0, - 14, 5, 2, 9, 3, 2, 12, 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4, 10, 12, 9, - 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2, 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, - 8, 2, 13, 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11 - ] - exports.substitute = function substitute(inL, inR) { - var out = 0 - for (var i = 0; i < 4; i++) { - var b = (inL >>> (18 - i * 6)) & 63 - var sb = sTable[i * 64 + b] - out <<= 4 - out |= sb - } - for (var i = 0; i < 4; i++) { - var b = (inR >>> (18 - i * 6)) & 63 - var sb = sTable[4 * 64 + i * 64 + b] - out <<= 4 - out |= sb - } - return out >>> 0 - } - var permuteTable = [ - 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22, 30, 24, 8, 18, 0, 5, 29, 23, - 13, 19, 2, 26, 10, 21, 28, 7 - ] - exports.permute = function permute(num) { - var out = 0 - for (var i = 0; i < permuteTable.length; i++) { - out <<= 1 - out |= (num >>> permuteTable[i]) & 1 - } - return out >>> 0 - } - exports.padSplit = function padSplit(num, size, group) { - var str = num.toString(2) - while (str.length < size) str = '0' + str - var out = [] - for (var i = 0; i < size; i += group) out.push(str.slice(i, i + group)) - return out.join(' ') - } - }, - {} - ], - 112: [ - function (require, module, exports) { - ;(function (Buffer) { - ;(function () { - var generatePrime = require('./lib/generatePrime') - var primes = require('./lib/primes.json') - var DH = require('./lib/dh') - function getDiffieHellman(mod) { - var prime = new Buffer(primes[mod].prime, 'hex') - var gen = new Buffer(primes[mod].gen, 'hex') - return new DH(prime, gen) - } - var ENCODINGS = { binary: true, hex: true, base64: true } - function createDiffieHellman(prime, enc, generator, genc) { - if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) { - return createDiffieHellman(prime, 'binary', enc, generator) - } - enc = enc || 'binary' - genc = genc || 'binary' - generator = generator || new Buffer([2]) - if (!Buffer.isBuffer(generator)) { - generator = new Buffer(generator, genc) - } - if (typeof prime === 'number') { - return new DH(generatePrime(prime, generator), generator, true) - } - if (!Buffer.isBuffer(prime)) { - prime = new Buffer(prime, enc) - } - return new DH(prime, generator, true) - } - exports.DiffieHellmanGroup = - exports.createDiffieHellmanGroup = - exports.getDiffieHellman = - getDiffieHellman - exports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman - }.call(this)) - }.call(this, require('buffer').Buffer)) - }, - { './lib/dh': 113, './lib/generatePrime': 114, './lib/primes.json': 115, buffer: 93 } - ], - 113: [ - function (require, module, exports) { - ;(function (Buffer) { - ;(function () { - var BN = require('bn.js') - var MillerRabin = require('miller-rabin') - var millerRabin = new MillerRabin() - var TWENTYFOUR = new BN(24) - var ELEVEN = new BN(11) - var TEN = new BN(10) - var THREE = new BN(3) - var SEVEN = new BN(7) - var primes = require('./generatePrime') - var randomBytes = require('randombytes') - module.exports = DH - function setPublicKey(pub, enc) { - enc = enc || 'utf8' - if (!Buffer.isBuffer(pub)) { - pub = new Buffer(pub, enc) - } - this._pub = new BN(pub) - return this - } - function setPrivateKey(priv, enc) { - enc = enc || 'utf8' - if (!Buffer.isBuffer(priv)) { - priv = new Buffer(priv, enc) - } - this._priv = new BN(priv) - return this - } - var primeCache = {} - function checkPrime(prime, generator) { - var gen = generator.toString('hex') - var hex = [gen, prime.toString(16)].join('_') - if (hex in primeCache) { - return primeCache[hex] - } - var error = 0 - if ( - prime.isEven() || - !primes.simpleSieve || - !primes.fermatTest(prime) || - !millerRabin.test(prime) - ) { - error += 1 - if (gen === '02' || gen === '05') { - error += 8 - } else { - error += 4 - } - primeCache[hex] = error - return error - } - if (!millerRabin.test(prime.shrn(1))) { - error += 2 - } - var rem - switch (gen) { - case '02': - if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) { - error += 8 - } - break - case '05': - rem = prime.mod(TEN) - if (rem.cmp(THREE) && rem.cmp(SEVEN)) { - error += 8 - } - break - default: - error += 4 - } - primeCache[hex] = error - return error - } - function DH(prime, generator, malleable) { - this.setGenerator(generator) - this.__prime = new BN(prime) - this._prime = BN.mont(this.__prime) - this._primeLen = prime.length - this._pub = undefined - this._priv = undefined - this._primeCode = undefined - if (malleable) { - this.setPublicKey = setPublicKey - this.setPrivateKey = setPrivateKey - } else { - this._primeCode = 8 - } - } - Object.defineProperty(DH.prototype, 'verifyError', { - enumerable: true, - get: function () { - if (typeof this._primeCode !== 'number') { - this._primeCode = checkPrime(this.__prime, this.__gen) - } - return this._primeCode - } - }) - DH.prototype.generateKeys = function () { - if (!this._priv) { - this._priv = new BN(randomBytes(this._primeLen)) - } - this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed() - return this.getPublicKey() - } - DH.prototype.computeSecret = function (other) { - other = new BN(other) - other = other.toRed(this._prime) - var secret = other.redPow(this._priv).fromRed() - var out = new Buffer(secret.toArray()) - var prime = this.getPrime() - if (out.length < prime.length) { - var front = new Buffer(prime.length - out.length) - front.fill(0) - out = Buffer.concat([front, out]) - } - return out - } - DH.prototype.getPublicKey = function getPublicKey(enc) { - return formatReturnValue(this._pub, enc) - } - DH.prototype.getPrivateKey = function getPrivateKey(enc) { - return formatReturnValue(this._priv, enc) - } - DH.prototype.getPrime = function (enc) { - return formatReturnValue(this.__prime, enc) - } - DH.prototype.getGenerator = function (enc) { - return formatReturnValue(this._gen, enc) - } - DH.prototype.setGenerator = function (gen, enc) { - enc = enc || 'utf8' - if (!Buffer.isBuffer(gen)) { - gen = new Buffer(gen, enc) - } - this.__gen = gen - this._gen = new BN(gen) - return this - } - function formatReturnValue(bn, enc) { - var buf = new Buffer(bn.toArray()) - if (!enc) { - return buf - } else { - return buf.toString(enc) - } - } - }.call(this)) - }.call(this, require('buffer').Buffer)) - }, - { './generatePrime': 114, 'bn.js': 116, buffer: 93, 'miller-rabin': 156, randombytes: 180 } - ], - 114: [ - function (require, module, exports) { - var randomBytes = require('randombytes') - module.exports = findPrime - findPrime.simpleSieve = simpleSieve - findPrime.fermatTest = fermatTest - var BN = require('bn.js') - var TWENTYFOUR = new BN(24) - var MillerRabin = require('miller-rabin') - var millerRabin = new MillerRabin() - var ONE = new BN(1) - var TWO = new BN(2) - var FIVE = new BN(5) - var SIXTEEN = new BN(16) - var EIGHT = new BN(8) - var TEN = new BN(10) - var THREE = new BN(3) - var SEVEN = new BN(7) - var ELEVEN = new BN(11) - var FOUR = new BN(4) - var TWELVE = new BN(12) - var primes = null - function _getPrimes() { - if (primes !== null) return primes - var limit = 1048576 - var res = [] - res[0] = 2 - for (var i = 1, k = 3; k < limit; k += 2) { - var sqrt = Math.ceil(Math.sqrt(k)) - for (var j = 0; j < i && res[j] <= sqrt; j++) if (k % res[j] === 0) break - if (i !== j && res[j] <= sqrt) continue - res[i++] = k - } - primes = res - return res - } - function simpleSieve(p) { - var primes = _getPrimes() - for (var i = 0; i < primes.length; i++) - if (p.modn(primes[i]) === 0) { - if (p.cmpn(primes[i]) === 0) { - return true - } else { - return false - } - } - return true - } - function fermatTest(p) { - var red = BN.mont(p) - return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0 - } - function findPrime(bits, gen) { - if (bits < 16) { - if (gen === 2 || gen === 5) { - return new BN([140, 123]) - } else { - return new BN([140, 39]) - } - } - gen = new BN(gen) - var num, n2 - while (true) { - num = new BN(randomBytes(Math.ceil(bits / 8))) - while (num.bitLength() > bits) { - num.ishrn(1) - } - if (num.isEven()) { - num.iadd(ONE) - } - if (!num.testn(1)) { - num.iadd(TWO) - } - if (!gen.cmp(TWO)) { - while (num.mod(TWENTYFOUR).cmp(ELEVEN)) { - num.iadd(FOUR) - } - } else if (!gen.cmp(FIVE)) { - while (num.mod(TEN).cmp(THREE)) { - num.iadd(FOUR) - } - } - n2 = num.shrn(1) - if ( - simpleSieve(n2) && - simpleSieve(num) && - fermatTest(n2) && - fermatTest(num) && - millerRabin.test(n2) && - millerRabin.test(num) - ) { - return num - } - } - } - }, - { 'bn.js': 116, 'miller-rabin': 156, randombytes: 180 } - ], - 115: [ - function (require, module, exports) { - module.exports = { - modp1: { - gen: '02', - prime: - 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff' - }, - modp2: { - gen: '02', - prime: - 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff' - }, - modp5: { - gen: '02', - prime: - 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff' - }, - modp14: { - gen: '02', - prime: - 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff' - }, - modp15: { - gen: '02', - prime: - 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff' - }, - modp16: { - gen: '02', - prime: - 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff' - }, - modp17: { - gen: '02', - prime: - 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff' - }, - modp18: { - gen: '02', - prime: - 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff' - } - } - }, - {} - ], - 116: [ - function (require, module, exports) { - arguments[4][15][0].apply(exports, arguments) - }, - { buffer: 49, dup: 15 } - ], - 117: [ - function (require, module, exports) { - 'use strict' - var elliptic = exports - elliptic.version = require('../package.json').version - elliptic.utils = require('./elliptic/utils') - elliptic.rand = require('brorand') - elliptic.curve = require('./elliptic/curve') - elliptic.curves = require('./elliptic/curves') - elliptic.ec = require('./elliptic/ec') - elliptic.eddsa = require('./elliptic/eddsa') - }, - { - '../package.json': 133, - './elliptic/curve': 120, - './elliptic/curves': 123, - './elliptic/ec': 124, - './elliptic/eddsa': 127, - './elliptic/utils': 131, - brorand: 48 - } - ], - 118: [ - function (require, module, exports) { - 'use strict' - var BN = require('bn.js') - var utils = require('../utils') - var getNAF = utils.getNAF - var getJSF = utils.getJSF - var assert = utils.assert - function BaseCurve(type, conf) { - this.type = type - this.p = new BN(conf.p, 16) - this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p) - this.zero = new BN(0).toRed(this.red) - this.one = new BN(1).toRed(this.red) - this.two = new BN(2).toRed(this.red) - this.n = conf.n && new BN(conf.n, 16) - this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed) - this._wnafT1 = new Array(4) - this._wnafT2 = new Array(4) - this._wnafT3 = new Array(4) - this._wnafT4 = new Array(4) - this._bitLength = this.n ? this.n.bitLength() : 0 - var adjustCount = this.n && this.p.div(this.n) - if (!adjustCount || adjustCount.cmpn(100) > 0) { - this.redN = null - } else { - this._maxwellTrick = true - this.redN = this.n.toRed(this.red) - } - } - module.exports = BaseCurve - BaseCurve.prototype.point = function point() { - throw new Error('Not implemented') - } - BaseCurve.prototype.validate = function validate() { - throw new Error('Not implemented') - } - BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) { - assert(p.precomputed) - var doubles = p._getDoubles() - var naf = getNAF(k, 1, this._bitLength) - var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1) - I /= 3 - var repr = [] - for (var j = 0; j < naf.length; j += doubles.step) { - var nafW = 0 - for (var k = j + doubles.step - 1; k >= j; k--) nafW = (nafW << 1) + naf[k] - repr.push(nafW) - } - var a = this.jpoint(null, null, null) - var b = this.jpoint(null, null, null) - for (var i = I; i > 0; i--) { - for (var j = 0; j < repr.length; j++) { - var nafW = repr[j] - if (nafW === i) b = b.mixedAdd(doubles.points[j]) - else if (nafW === -i) b = b.mixedAdd(doubles.points[j].neg()) - } - a = a.add(b) - } - return a.toP() - } - BaseCurve.prototype._wnafMul = function _wnafMul(p, k) { - var w = 4 - var nafPoints = p._getNAFPoints(w) - w = nafPoints.wnd - var wnd = nafPoints.points - var naf = getNAF(k, w, this._bitLength) - var acc = this.jpoint(null, null, null) - for (var i = naf.length - 1; i >= 0; i--) { - for (var k = 0; i >= 0 && naf[i] === 0; i--) k++ - if (i >= 0) k++ - acc = acc.dblp(k) - if (i < 0) break - var z = naf[i] - assert(z !== 0) - if (p.type === 'affine') { - if (z > 0) acc = acc.mixedAdd(wnd[(z - 1) >> 1]) - else acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg()) - } else { - if (z > 0) acc = acc.add(wnd[(z - 1) >> 1]) - else acc = acc.add(wnd[(-z - 1) >> 1].neg()) - } - } - return p.type === 'affine' ? acc.toP() : acc - } - BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd( - defW, - points, - coeffs, - len, - jacobianResult - ) { - var wndWidth = this._wnafT1 - var wnd = this._wnafT2 - var naf = this._wnafT3 - var max = 0 - for (var i = 0; i < len; i++) { - var p = points[i] - var nafPoints = p._getNAFPoints(defW) - wndWidth[i] = nafPoints.wnd - wnd[i] = nafPoints.points - } - for (var i = len - 1; i >= 1; i -= 2) { - var a = i - 1 - var b = i - if (wndWidth[a] !== 1 || wndWidth[b] !== 1) { - naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength) - naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength) - max = Math.max(naf[a].length, max) - max = Math.max(naf[b].length, max) - continue - } - var comb = [points[a], null, null, points[b]] - if (points[a].y.cmp(points[b].y) === 0) { - comb[1] = points[a].add(points[b]) - comb[2] = points[a].toJ().mixedAdd(points[b].neg()) - } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) { - comb[1] = points[a].toJ().mixedAdd(points[b]) - comb[2] = points[a].add(points[b].neg()) - } else { - comb[1] = points[a].toJ().mixedAdd(points[b]) - comb[2] = points[a].toJ().mixedAdd(points[b].neg()) - } - var index = [-3, -1, -5, -7, 0, 7, 5, 1, 3] - var jsf = getJSF(coeffs[a], coeffs[b]) - max = Math.max(jsf[0].length, max) - naf[a] = new Array(max) - naf[b] = new Array(max) - for (var j = 0; j < max; j++) { - var ja = jsf[0][j] | 0 - var jb = jsf[1][j] | 0 - naf[a][j] = index[(ja + 1) * 3 + (jb + 1)] - naf[b][j] = 0 - wnd[a] = comb - } - } - var acc = this.jpoint(null, null, null) - var tmp = this._wnafT4 - for (var i = max; i >= 0; i--) { - var k = 0 - while (i >= 0) { - var zero = true - for (var j = 0; j < len; j++) { - tmp[j] = naf[j][i] | 0 - if (tmp[j] !== 0) zero = false - } - if (!zero) break - k++ - i-- - } - if (i >= 0) k++ - acc = acc.dblp(k) - if (i < 0) break - for (var j = 0; j < len; j++) { - var z = tmp[j] - var p - if (z === 0) continue - else if (z > 0) p = wnd[j][(z - 1) >> 1] - else if (z < 0) p = wnd[j][(-z - 1) >> 1].neg() - if (p.type === 'affine') acc = acc.mixedAdd(p) - else acc = acc.add(p) - } - } - for (var i = 0; i < len; i++) wnd[i] = null - if (jacobianResult) return acc - else return acc.toP() - } - function BasePoint(curve, type) { - this.curve = curve - this.type = type - this.precomputed = null - } - BaseCurve.BasePoint = BasePoint - BasePoint.prototype.eq = function eq() { - throw new Error('Not implemented') - } - BasePoint.prototype.validate = function validate() { - return this.curve.validate(this) - } - BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) { - bytes = utils.toArray(bytes, enc) - var len = this.p.byteLength() - if ( - (bytes[0] === 4 || bytes[0] === 6 || bytes[0] === 7) && - bytes.length - 1 === 2 * len - ) { - if (bytes[0] === 6) assert(bytes[bytes.length - 1] % 2 === 0) - else if (bytes[0] === 7) assert(bytes[bytes.length - 1] % 2 === 1) - var res = this.point(bytes.slice(1, 1 + len), bytes.slice(1 + len, 1 + 2 * len)) - return res - } else if ((bytes[0] === 2 || bytes[0] === 3) && bytes.length - 1 === len) { - return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 3) - } - throw new Error('Unknown point format') - } - BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) { - return this.encode(enc, true) - } - BasePoint.prototype._encode = function _encode(compact) { - var len = this.curve.p.byteLength() - var x = this.getX().toArray('be', len) - if (compact) return [this.getY().isEven() ? 2 : 3].concat(x) - return [4].concat(x, this.getY().toArray('be', len)) - } - BasePoint.prototype.encode = function encode(enc, compact) { - return utils.encode(this._encode(compact), enc) - } - BasePoint.prototype.precompute = function precompute(power) { - if (this.precomputed) return this - var precomputed = { doubles: null, naf: null, beta: null } - precomputed.naf = this._getNAFPoints(8) - precomputed.doubles = this._getDoubles(4, power) - precomputed.beta = this._getBeta() - this.precomputed = precomputed - return this - } - BasePoint.prototype._hasDoubles = function _hasDoubles(k) { - if (!this.precomputed) return false - var doubles = this.precomputed.doubles - if (!doubles) return false - return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step) - } - BasePoint.prototype._getDoubles = function _getDoubles(step, power) { - if (this.precomputed && this.precomputed.doubles) return this.precomputed.doubles - var doubles = [this] - var acc = this - for (var i = 0; i < power; i += step) { - for (var j = 0; j < step; j++) acc = acc.dbl() - doubles.push(acc) - } - return { step: step, points: doubles } - } - BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) { - if (this.precomputed && this.precomputed.naf) return this.precomputed.naf - var res = [this] - var max = (1 << wnd) - 1 - var dbl = max === 1 ? null : this.dbl() - for (var i = 1; i < max; i++) res[i] = res[i - 1].add(dbl) - return { wnd: wnd, points: res } - } - BasePoint.prototype._getBeta = function _getBeta() { - return null - } - BasePoint.prototype.dblp = function dblp(k) { - var r = this - for (var i = 0; i < k; i++) r = r.dbl() - return r - } - }, - { '../utils': 131, 'bn.js': 132 } - ], - 119: [ - function (require, module, exports) { - 'use strict' - var utils = require('../utils') - var BN = require('bn.js') - var inherits = require('inherits') - var Base = require('./base') - var assert = utils.assert - function EdwardsCurve(conf) { - this.twisted = (conf.a | 0) !== 1 - this.mOneA = this.twisted && (conf.a | 0) === -1 - this.extended = this.mOneA - Base.call(this, 'edwards', conf) - this.a = new BN(conf.a, 16).umod(this.red.m) - this.a = this.a.toRed(this.red) - this.c = new BN(conf.c, 16).toRed(this.red) - this.c2 = this.c.redSqr() - this.d = new BN(conf.d, 16).toRed(this.red) - this.dd = this.d.redAdd(this.d) - assert(!this.twisted || this.c.fromRed().cmpn(1) === 0) - this.oneC = (conf.c | 0) === 1 - } - inherits(EdwardsCurve, Base) - module.exports = EdwardsCurve - EdwardsCurve.prototype._mulA = function _mulA(num) { - if (this.mOneA) return num.redNeg() - else return this.a.redMul(num) - } - EdwardsCurve.prototype._mulC = function _mulC(num) { - if (this.oneC) return num - else return this.c.redMul(num) - } - EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) { - return this.point(x, y, z, t) - } - EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) { - x = new BN(x, 16) - if (!x.red) x = x.toRed(this.red) - var x2 = x.redSqr() - var rhs = this.c2.redSub(this.a.redMul(x2)) - var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2)) - var y2 = rhs.redMul(lhs.redInvm()) - var y = y2.redSqrt() - if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error('invalid point') - var isOdd = y.fromRed().isOdd() - if ((odd && !isOdd) || (!odd && isOdd)) y = y.redNeg() - return this.point(x, y) - } - EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) { - y = new BN(y, 16) - if (!y.red) y = y.toRed(this.red) - var y2 = y.redSqr() - var lhs = y2.redSub(this.c2) - var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a) - var x2 = lhs.redMul(rhs.redInvm()) - if (x2.cmp(this.zero) === 0) { - if (odd) throw new Error('invalid point') - else return this.point(this.zero, y) - } - var x = x2.redSqrt() - if (x.redSqr().redSub(x2).cmp(this.zero) !== 0) throw new Error('invalid point') - if (x.fromRed().isOdd() !== odd) x = x.redNeg() - return this.point(x, y) - } - EdwardsCurve.prototype.validate = function validate(point) { - if (point.isInfinity()) return true - point.normalize() - var x2 = point.x.redSqr() - var y2 = point.y.redSqr() - var lhs = x2.redMul(this.a).redAdd(y2) - var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2))) - return lhs.cmp(rhs) === 0 - } - function Point(curve, x, y, z, t) { - Base.BasePoint.call(this, curve, 'projective') - if (x === null && y === null && z === null) { - this.x = this.curve.zero - this.y = this.curve.one - this.z = this.curve.one - this.t = this.curve.zero - this.zOne = true - } else { - this.x = new BN(x, 16) - this.y = new BN(y, 16) - this.z = z ? new BN(z, 16) : this.curve.one - this.t = t && new BN(t, 16) - if (!this.x.red) this.x = this.x.toRed(this.curve.red) - if (!this.y.red) this.y = this.y.toRed(this.curve.red) - if (!this.z.red) this.z = this.z.toRed(this.curve.red) - if (this.t && !this.t.red) this.t = this.t.toRed(this.curve.red) - this.zOne = this.z === this.curve.one - if (this.curve.extended && !this.t) { - this.t = this.x.redMul(this.y) - if (!this.zOne) this.t = this.t.redMul(this.z.redInvm()) - } - } - } - inherits(Point, Base.BasePoint) - EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) { - return Point.fromJSON(this, obj) - } - EdwardsCurve.prototype.point = function point(x, y, z, t) { - return new Point(this, x, y, z, t) - } - Point.fromJSON = function fromJSON(curve, obj) { - return new Point(curve, obj[0], obj[1], obj[2]) - } - Point.prototype.inspect = function inspect() { - if (this.isInfinity()) return '' - return ( - '' - ) - } - Point.prototype.isInfinity = function isInfinity() { - return ( - this.x.cmpn(0) === 0 && - (this.y.cmp(this.z) === 0 || (this.zOne && this.y.cmp(this.curve.c) === 0)) - ) - } - Point.prototype._extDbl = function _extDbl() { - var a = this.x.redSqr() - var b = this.y.redSqr() - var c = this.z.redSqr() - c = c.redIAdd(c) - var d = this.curve._mulA(a) - var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b) - var g = d.redAdd(b) - var f = g.redSub(c) - var h = d.redSub(b) - var nx = e.redMul(f) - var ny = g.redMul(h) - var nt = e.redMul(h) - var nz = f.redMul(g) - return this.curve.point(nx, ny, nz, nt) - } - Point.prototype._projDbl = function _projDbl() { - var b = this.x.redAdd(this.y).redSqr() - var c = this.x.redSqr() - var d = this.y.redSqr() - var nx - var ny - var nz - if (this.curve.twisted) { - var e = this.curve._mulA(c) - var f = e.redAdd(d) - if (this.zOne) { - nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two)) - ny = f.redMul(e.redSub(d)) - nz = f.redSqr().redSub(f).redSub(f) - } else { - var h = this.z.redSqr() - var j = f.redSub(h).redISub(h) - nx = b.redSub(c).redISub(d).redMul(j) - ny = f.redMul(e.redSub(d)) - nz = f.redMul(j) - } - } else { - var e = c.redAdd(d) - var h = this.curve._mulC(this.z).redSqr() - var j = e.redSub(h).redSub(h) - nx = this.curve._mulC(b.redISub(e)).redMul(j) - ny = this.curve._mulC(e).redMul(c.redISub(d)) - nz = e.redMul(j) - } - return this.curve.point(nx, ny, nz) - } - Point.prototype.dbl = function dbl() { - if (this.isInfinity()) return this - if (this.curve.extended) return this._extDbl() - else return this._projDbl() - } - Point.prototype._extAdd = function _extAdd(p) { - var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x)) - var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)) - var c = this.t.redMul(this.curve.dd).redMul(p.t) - var d = this.z.redMul(p.z.redAdd(p.z)) - var e = b.redSub(a) - var f = d.redSub(c) - var g = d.redAdd(c) - var h = b.redAdd(a) - var nx = e.redMul(f) - var ny = g.redMul(h) - var nt = e.redMul(h) - var nz = f.redMul(g) - return this.curve.point(nx, ny, nz, nt) - } - Point.prototype._projAdd = function _projAdd(p) { - var a = this.z.redMul(p.z) - var b = a.redSqr() - var c = this.x.redMul(p.x) - var d = this.y.redMul(p.y) - var e = this.curve.d.redMul(c).redMul(d) - var f = b.redSub(e) - var g = b.redAdd(e) - var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d) - var nx = a.redMul(f).redMul(tmp) - var ny - var nz - if (this.curve.twisted) { - ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c))) - nz = f.redMul(g) - } else { - ny = a.redMul(g).redMul(d.redSub(c)) - nz = this.curve._mulC(f).redMul(g) - } - return this.curve.point(nx, ny, nz) - } - Point.prototype.add = function add(p) { - if (this.isInfinity()) return p - if (p.isInfinity()) return this - if (this.curve.extended) return this._extAdd(p) - else return this._projAdd(p) - } - Point.prototype.mul = function mul(k) { - if (this._hasDoubles(k)) return this.curve._fixedNafMul(this, k) - else return this.curve._wnafMul(this, k) - } - Point.prototype.mulAdd = function mulAdd(k1, p, k2) { - return this.curve._wnafMulAdd(1, [this, p], [k1, k2], 2, false) - } - Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) { - return this.curve._wnafMulAdd(1, [this, p], [k1, k2], 2, true) - } - Point.prototype.normalize = function normalize() { - if (this.zOne) return this - var zi = this.z.redInvm() - this.x = this.x.redMul(zi) - this.y = this.y.redMul(zi) - if (this.t) this.t = this.t.redMul(zi) - this.z = this.curve.one - this.zOne = true - return this - } - Point.prototype.neg = function neg() { - return this.curve.point(this.x.redNeg(), this.y, this.z, this.t && this.t.redNeg()) - } - Point.prototype.getX = function getX() { - this.normalize() - return this.x.fromRed() - } - Point.prototype.getY = function getY() { - this.normalize() - return this.y.fromRed() - } - Point.prototype.eq = function eq(other) { - return ( - this === other || - (this.getX().cmp(other.getX()) === 0 && this.getY().cmp(other.getY()) === 0) - ) - } - Point.prototype.eqXToP = function eqXToP(x) { - var rx = x.toRed(this.curve.red).redMul(this.z) - if (this.x.cmp(rx) === 0) return true - var xc = x.clone() - var t = this.curve.redN.redMul(this.z) - for (;;) { - xc.iadd(this.curve.n) - if (xc.cmp(this.curve.p) >= 0) return false - rx.redIAdd(t) - if (this.x.cmp(rx) === 0) return true - } - } - Point.prototype.toP = Point.prototype.normalize - Point.prototype.mixedAdd = Point.prototype.add - }, - { '../utils': 131, './base': 118, 'bn.js': 132, inherits: 151 } - ], - 120: [ - function (require, module, exports) { - 'use strict' - var curve = exports - curve.base = require('./base') - curve.short = require('./short') - curve.mont = require('./mont') - curve.edwards = require('./edwards') - }, - { './base': 118, './edwards': 119, './mont': 121, './short': 122 } - ], - 121: [ - function (require, module, exports) { - 'use strict' - var BN = require('bn.js') - var inherits = require('inherits') - var Base = require('./base') - var utils = require('../utils') - function MontCurve(conf) { - Base.call(this, 'mont', conf) - this.a = new BN(conf.a, 16).toRed(this.red) - this.b = new BN(conf.b, 16).toRed(this.red) - this.i4 = new BN(4).toRed(this.red).redInvm() - this.two = new BN(2).toRed(this.red) - this.a24 = this.i4.redMul(this.a.redAdd(this.two)) - } - inherits(MontCurve, Base) - module.exports = MontCurve - MontCurve.prototype.validate = function validate(point) { - var x = point.normalize().x - var x2 = x.redSqr() - var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x) - var y = rhs.redSqrt() - return y.redSqr().cmp(rhs) === 0 - } - function Point(curve, x, z) { - Base.BasePoint.call(this, curve, 'projective') - if (x === null && z === null) { - this.x = this.curve.one - this.z = this.curve.zero - } else { - this.x = new BN(x, 16) - this.z = new BN(z, 16) - if (!this.x.red) this.x = this.x.toRed(this.curve.red) - if (!this.z.red) this.z = this.z.toRed(this.curve.red) - } - } - inherits(Point, Base.BasePoint) - MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) { - return this.point(utils.toArray(bytes, enc), 1) - } - MontCurve.prototype.point = function point(x, z) { - return new Point(this, x, z) - } - MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) { - return Point.fromJSON(this, obj) - } - Point.prototype.precompute = function precompute() {} - Point.prototype._encode = function _encode() { - return this.getX().toArray('be', this.curve.p.byteLength()) - } - Point.fromJSON = function fromJSON(curve, obj) { - return new Point(curve, obj[0], obj[1] || curve.one) - } - Point.prototype.inspect = function inspect() { - if (this.isInfinity()) return '' - return ( - '' - ) - } - Point.prototype.isInfinity = function isInfinity() { - return this.z.cmpn(0) === 0 - } - Point.prototype.dbl = function dbl() { - var a = this.x.redAdd(this.z) - var aa = a.redSqr() - var b = this.x.redSub(this.z) - var bb = b.redSqr() - var c = aa.redSub(bb) - var nx = aa.redMul(bb) - var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c))) - return this.curve.point(nx, nz) - } - Point.prototype.add = function add() { - throw new Error('Not supported on Montgomery curve') - } - Point.prototype.diffAdd = function diffAdd(p, diff) { - var a = this.x.redAdd(this.z) - var b = this.x.redSub(this.z) - var c = p.x.redAdd(p.z) - var d = p.x.redSub(p.z) - var da = d.redMul(a) - var cb = c.redMul(b) - var nx = diff.z.redMul(da.redAdd(cb).redSqr()) - var nz = diff.x.redMul(da.redISub(cb).redSqr()) - return this.curve.point(nx, nz) - } - Point.prototype.mul = function mul(k) { - var t = k.clone() - var a = this - var b = this.curve.point(null, null) - var c = this - for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1)) bits.push(t.andln(1)) - for (var i = bits.length - 1; i >= 0; i--) { - if (bits[i] === 0) { - a = a.diffAdd(b, c) - b = b.dbl() - } else { - b = a.diffAdd(b, c) - a = a.dbl() - } - } - return b - } - Point.prototype.mulAdd = function mulAdd() { - throw new Error('Not supported on Montgomery curve') - } - Point.prototype.jumlAdd = function jumlAdd() { - throw new Error('Not supported on Montgomery curve') - } - Point.prototype.eq = function eq(other) { - return this.getX().cmp(other.getX()) === 0 - } - Point.prototype.normalize = function normalize() { - this.x = this.x.redMul(this.z.redInvm()) - this.z = this.curve.one - return this - } - Point.prototype.getX = function getX() { - this.normalize() - return this.x.fromRed() - } - }, - { '../utils': 131, './base': 118, 'bn.js': 132, inherits: 151 } - ], - 122: [ - function (require, module, exports) { - 'use strict' - var utils = require('../utils') - var BN = require('bn.js') - var inherits = require('inherits') - var Base = require('./base') - var assert = utils.assert - function ShortCurve(conf) { - Base.call(this, 'short', conf) - this.a = new BN(conf.a, 16).toRed(this.red) - this.b = new BN(conf.b, 16).toRed(this.red) - this.tinv = this.two.redInvm() - this.zeroA = this.a.fromRed().cmpn(0) === 0 - this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0 - this.endo = this._getEndomorphism(conf) - this._endoWnafT1 = new Array(4) - this._endoWnafT2 = new Array(4) - } - inherits(ShortCurve, Base) - module.exports = ShortCurve - ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) { - if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1) return - var beta - var lambda - if (conf.beta) { - beta = new BN(conf.beta, 16).toRed(this.red) - } else { - var betas = this._getEndoRoots(this.p) - beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1] - beta = beta.toRed(this.red) - } - if (conf.lambda) { - lambda = new BN(conf.lambda, 16) - } else { - var lambdas = this._getEndoRoots(this.n) - if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) { - lambda = lambdas[0] - } else { - lambda = lambdas[1] - assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0) - } - } - var basis - if (conf.basis) { - basis = conf.basis.map(function (vec) { - return { a: new BN(vec.a, 16), b: new BN(vec.b, 16) } - }) - } else { - basis = this._getEndoBasis(lambda) - } - return { beta: beta, lambda: lambda, basis: basis } - } - ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) { - var red = num === this.p ? this.red : BN.mont(num) - var tinv = new BN(2).toRed(red).redInvm() - var ntinv = tinv.redNeg() - var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv) - var l1 = ntinv.redAdd(s).fromRed() - var l2 = ntinv.redSub(s).fromRed() - return [l1, l2] - } - ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) { - var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2)) - var u = lambda - var v = this.n.clone() - var x1 = new BN(1) - var y1 = new BN(0) - var x2 = new BN(0) - var y2 = new BN(1) - var a0 - var b0 - var a1 - var b1 - var a2 - var b2 - var prevR - var i = 0 - var r - var x - while (u.cmpn(0) !== 0) { - var q = v.div(u) - r = v.sub(q.mul(u)) - x = x2.sub(q.mul(x1)) - var y = y2.sub(q.mul(y1)) - if (!a1 && r.cmp(aprxSqrt) < 0) { - a0 = prevR.neg() - b0 = x1 - a1 = r.neg() - b1 = x - } else if (a1 && ++i === 2) { - break - } - prevR = r - v = u - u = r - x2 = x1 - x1 = x - y2 = y1 - y1 = y - } - a2 = r.neg() - b2 = x - var len1 = a1.sqr().add(b1.sqr()) - var len2 = a2.sqr().add(b2.sqr()) - if (len2.cmp(len1) >= 0) { - a2 = a0 - b2 = b0 - } - if (a1.negative) { - a1 = a1.neg() - b1 = b1.neg() - } - if (a2.negative) { - a2 = a2.neg() - b2 = b2.neg() - } - return [ - { a: a1, b: b1 }, - { a: a2, b: b2 } - ] - } - ShortCurve.prototype._endoSplit = function _endoSplit(k) { - var basis = this.endo.basis - var v1 = basis[0] - var v2 = basis[1] - var c1 = v2.b.mul(k).divRound(this.n) - var c2 = v1.b.neg().mul(k).divRound(this.n) - var p1 = c1.mul(v1.a) - var p2 = c2.mul(v2.a) - var q1 = c1.mul(v1.b) - var q2 = c2.mul(v2.b) - var k1 = k.sub(p1).sub(p2) - var k2 = q1.add(q2).neg() - return { k1: k1, k2: k2 } - } - ShortCurve.prototype.pointFromX = function pointFromX(x, odd) { - x = new BN(x, 16) - if (!x.red) x = x.toRed(this.red) - var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b) - var y = y2.redSqrt() - if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error('invalid point') - var isOdd = y.fromRed().isOdd() - if ((odd && !isOdd) || (!odd && isOdd)) y = y.redNeg() - return this.point(x, y) - } - ShortCurve.prototype.validate = function validate(point) { - if (point.inf) return true - var x = point.x - var y = point.y - var ax = this.a.redMul(x) - var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b) - return y.redSqr().redISub(rhs).cmpn(0) === 0 - } - ShortCurve.prototype._endoWnafMulAdd = function _endoWnafMulAdd( - points, - coeffs, - jacobianResult - ) { - var npoints = this._endoWnafT1 - var ncoeffs = this._endoWnafT2 - for (var i = 0; i < points.length; i++) { - var split = this._endoSplit(coeffs[i]) - var p = points[i] - var beta = p._getBeta() - if (split.k1.negative) { - split.k1.ineg() - p = p.neg(true) - } - if (split.k2.negative) { - split.k2.ineg() - beta = beta.neg(true) - } - npoints[i * 2] = p - npoints[i * 2 + 1] = beta - ncoeffs[i * 2] = split.k1 - ncoeffs[i * 2 + 1] = split.k2 - } - var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult) - for (var j = 0; j < i * 2; j++) { - npoints[j] = null - ncoeffs[j] = null - } - return res - } - function Point(curve, x, y, isRed) { - Base.BasePoint.call(this, curve, 'affine') - if (x === null && y === null) { - this.x = null - this.y = null - this.inf = true - } else { - this.x = new BN(x, 16) - this.y = new BN(y, 16) - if (isRed) { - this.x.forceRed(this.curve.red) - this.y.forceRed(this.curve.red) - } - if (!this.x.red) this.x = this.x.toRed(this.curve.red) - if (!this.y.red) this.y = this.y.toRed(this.curve.red) - this.inf = false - } - } - inherits(Point, Base.BasePoint) - ShortCurve.prototype.point = function point(x, y, isRed) { - return new Point(this, x, y, isRed) - } - ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) { - return Point.fromJSON(this, obj, red) - } - Point.prototype._getBeta = function _getBeta() { - if (!this.curve.endo) return - var pre = this.precomputed - if (pre && pre.beta) return pre.beta - var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y) - if (pre) { - var curve = this.curve - var endoMul = function (p) { - return curve.point(p.x.redMul(curve.endo.beta), p.y) - } - pre.beta = beta - beta.precomputed = { - beta: null, - naf: pre.naf && { wnd: pre.naf.wnd, points: pre.naf.points.map(endoMul) }, - doubles: pre.doubles && { - step: pre.doubles.step, - points: pre.doubles.points.map(endoMul) - } - } - } - return beta - } - Point.prototype.toJSON = function toJSON() { - if (!this.precomputed) return [this.x, this.y] - return [ - this.x, - this.y, - this.precomputed && { - doubles: this.precomputed.doubles && { - step: this.precomputed.doubles.step, - points: this.precomputed.doubles.points.slice(1) - }, - naf: this.precomputed.naf && { - wnd: this.precomputed.naf.wnd, - points: this.precomputed.naf.points.slice(1) - } - } - ] - } - Point.fromJSON = function fromJSON(curve, obj, red) { - if (typeof obj === 'string') obj = JSON.parse(obj) - var res = curve.point(obj[0], obj[1], red) - if (!obj[2]) return res - function obj2point(obj) { - return curve.point(obj[0], obj[1], red) - } - var pre = obj[2] - res.precomputed = { - beta: null, - doubles: pre.doubles && { - step: pre.doubles.step, - points: [res].concat(pre.doubles.points.map(obj2point)) - }, - naf: pre.naf && { - wnd: pre.naf.wnd, - points: [res].concat(pre.naf.points.map(obj2point)) - } - } - return res - } - Point.prototype.inspect = function inspect() { - if (this.isInfinity()) return '' - return ( - '' - ) - } - Point.prototype.isInfinity = function isInfinity() { - return this.inf - } - Point.prototype.add = function add(p) { - if (this.inf) return p - if (p.inf) return this - if (this.eq(p)) return this.dbl() - if (this.neg().eq(p)) return this.curve.point(null, null) - if (this.x.cmp(p.x) === 0) return this.curve.point(null, null) - var c = this.y.redSub(p.y) - if (c.cmpn(0) !== 0) c = c.redMul(this.x.redSub(p.x).redInvm()) - var nx = c.redSqr().redISub(this.x).redISub(p.x) - var ny = c.redMul(this.x.redSub(nx)).redISub(this.y) - return this.curve.point(nx, ny) - } - Point.prototype.dbl = function dbl() { - if (this.inf) return this - var ys1 = this.y.redAdd(this.y) - if (ys1.cmpn(0) === 0) return this.curve.point(null, null) - var a = this.curve.a - var x2 = this.x.redSqr() - var dyinv = ys1.redInvm() - var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv) - var nx = c.redSqr().redISub(this.x.redAdd(this.x)) - var ny = c.redMul(this.x.redSub(nx)).redISub(this.y) - return this.curve.point(nx, ny) - } - Point.prototype.getX = function getX() { - return this.x.fromRed() - } - Point.prototype.getY = function getY() { - return this.y.fromRed() - } - Point.prototype.mul = function mul(k) { - k = new BN(k, 16) - if (this.isInfinity()) return this - else if (this._hasDoubles(k)) return this.curve._fixedNafMul(this, k) - else if (this.curve.endo) return this.curve._endoWnafMulAdd([this], [k]) - else return this.curve._wnafMul(this, k) - } - Point.prototype.mulAdd = function mulAdd(k1, p2, k2) { - var points = [this, p2] - var coeffs = [k1, k2] - if (this.curve.endo) return this.curve._endoWnafMulAdd(points, coeffs) - else return this.curve._wnafMulAdd(1, points, coeffs, 2) - } - Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) { - var points = [this, p2] - var coeffs = [k1, k2] - if (this.curve.endo) return this.curve._endoWnafMulAdd(points, coeffs, true) - else return this.curve._wnafMulAdd(1, points, coeffs, 2, true) - } - Point.prototype.eq = function eq(p) { - return ( - this === p || - (this.inf === p.inf && (this.inf || (this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0))) - ) - } - Point.prototype.neg = function neg(_precompute) { - if (this.inf) return this - var res = this.curve.point(this.x, this.y.redNeg()) - if (_precompute && this.precomputed) { - var pre = this.precomputed - var negate = function (p) { - return p.neg() - } - res.precomputed = { - naf: pre.naf && { wnd: pre.naf.wnd, points: pre.naf.points.map(negate) }, - doubles: pre.doubles && { - step: pre.doubles.step, - points: pre.doubles.points.map(negate) - } - } - } - return res - } - Point.prototype.toJ = function toJ() { - if (this.inf) return this.curve.jpoint(null, null, null) - var res = this.curve.jpoint(this.x, this.y, this.curve.one) - return res - } - function JPoint(curve, x, y, z) { - Base.BasePoint.call(this, curve, 'jacobian') - if (x === null && y === null && z === null) { - this.x = this.curve.one - this.y = this.curve.one - this.z = new BN(0) - } else { - this.x = new BN(x, 16) - this.y = new BN(y, 16) - this.z = new BN(z, 16) - } - if (!this.x.red) this.x = this.x.toRed(this.curve.red) - if (!this.y.red) this.y = this.y.toRed(this.curve.red) - if (!this.z.red) this.z = this.z.toRed(this.curve.red) - this.zOne = this.z === this.curve.one - } - inherits(JPoint, Base.BasePoint) - ShortCurve.prototype.jpoint = function jpoint(x, y, z) { - return new JPoint(this, x, y, z) - } - JPoint.prototype.toP = function toP() { - if (this.isInfinity()) return this.curve.point(null, null) - var zinv = this.z.redInvm() - var zinv2 = zinv.redSqr() - var ax = this.x.redMul(zinv2) - var ay = this.y.redMul(zinv2).redMul(zinv) - return this.curve.point(ax, ay) - } - JPoint.prototype.neg = function neg() { - return this.curve.jpoint(this.x, this.y.redNeg(), this.z) - } - JPoint.prototype.add = function add(p) { - if (this.isInfinity()) return p - if (p.isInfinity()) return this - var pz2 = p.z.redSqr() - var z2 = this.z.redSqr() - var u1 = this.x.redMul(pz2) - var u2 = p.x.redMul(z2) - var s1 = this.y.redMul(pz2.redMul(p.z)) - var s2 = p.y.redMul(z2.redMul(this.z)) - var h = u1.redSub(u2) - var r = s1.redSub(s2) - if (h.cmpn(0) === 0) { - if (r.cmpn(0) !== 0) return this.curve.jpoint(null, null, null) - else return this.dbl() - } - var h2 = h.redSqr() - var h3 = h2.redMul(h) - var v = u1.redMul(h2) - var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v) - var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)) - var nz = this.z.redMul(p.z).redMul(h) - return this.curve.jpoint(nx, ny, nz) - } - JPoint.prototype.mixedAdd = function mixedAdd(p) { - if (this.isInfinity()) return p.toJ() - if (p.isInfinity()) return this - var z2 = this.z.redSqr() - var u1 = this.x - var u2 = p.x.redMul(z2) - var s1 = this.y - var s2 = p.y.redMul(z2).redMul(this.z) - var h = u1.redSub(u2) - var r = s1.redSub(s2) - if (h.cmpn(0) === 0) { - if (r.cmpn(0) !== 0) return this.curve.jpoint(null, null, null) - else return this.dbl() - } - var h2 = h.redSqr() - var h3 = h2.redMul(h) - var v = u1.redMul(h2) - var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v) - var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)) - var nz = this.z.redMul(h) - return this.curve.jpoint(nx, ny, nz) - } - JPoint.prototype.dblp = function dblp(pow) { - if (pow === 0) return this - if (this.isInfinity()) return this - if (!pow) return this.dbl() - if (this.curve.zeroA || this.curve.threeA) { - var r = this - for (var i = 0; i < pow; i++) r = r.dbl() - return r - } - var a = this.curve.a - var tinv = this.curve.tinv - var jx = this.x - var jy = this.y - var jz = this.z - var jz4 = jz.redSqr().redSqr() - var jyd = jy.redAdd(jy) - for (var i = 0; i < pow; i++) { - var jx2 = jx.redSqr() - var jyd2 = jyd.redSqr() - var jyd4 = jyd2.redSqr() - var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)) - var t1 = jx.redMul(jyd2) - var nx = c.redSqr().redISub(t1.redAdd(t1)) - var t2 = t1.redISub(nx) - var dny = c.redMul(t2) - dny = dny.redIAdd(dny).redISub(jyd4) - var nz = jyd.redMul(jz) - if (i + 1 < pow) jz4 = jz4.redMul(jyd4) - jx = nx - jz = nz - jyd = dny - } - return this.curve.jpoint(jx, jyd.redMul(tinv), jz) - } - JPoint.prototype.dbl = function dbl() { - if (this.isInfinity()) return this - if (this.curve.zeroA) return this._zeroDbl() - else if (this.curve.threeA) return this._threeDbl() - else return this._dbl() - } - JPoint.prototype._zeroDbl = function _zeroDbl() { - var nx - var ny - var nz - if (this.zOne) { - var xx = this.x.redSqr() - var yy = this.y.redSqr() - var yyyy = yy.redSqr() - var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy) - s = s.redIAdd(s) - var m = xx.redAdd(xx).redIAdd(xx) - var t = m.redSqr().redISub(s).redISub(s) - var yyyy8 = yyyy.redIAdd(yyyy) - yyyy8 = yyyy8.redIAdd(yyyy8) - yyyy8 = yyyy8.redIAdd(yyyy8) - nx = t - ny = m.redMul(s.redISub(t)).redISub(yyyy8) - nz = this.y.redAdd(this.y) - } else { - var a = this.x.redSqr() - var b = this.y.redSqr() - var c = b.redSqr() - var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c) - d = d.redIAdd(d) - var e = a.redAdd(a).redIAdd(a) - var f = e.redSqr() - var c8 = c.redIAdd(c) - c8 = c8.redIAdd(c8) - c8 = c8.redIAdd(c8) - nx = f.redISub(d).redISub(d) - ny = e.redMul(d.redISub(nx)).redISub(c8) - nz = this.y.redMul(this.z) - nz = nz.redIAdd(nz) - } - return this.curve.jpoint(nx, ny, nz) - } - JPoint.prototype._threeDbl = function _threeDbl() { - var nx - var ny - var nz - if (this.zOne) { - var xx = this.x.redSqr() - var yy = this.y.redSqr() - var yyyy = yy.redSqr() - var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy) - s = s.redIAdd(s) - var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a) - var t = m.redSqr().redISub(s).redISub(s) - nx = t - var yyyy8 = yyyy.redIAdd(yyyy) - yyyy8 = yyyy8.redIAdd(yyyy8) - yyyy8 = yyyy8.redIAdd(yyyy8) - ny = m.redMul(s.redISub(t)).redISub(yyyy8) - nz = this.y.redAdd(this.y) - } else { - var delta = this.z.redSqr() - var gamma = this.y.redSqr() - var beta = this.x.redMul(gamma) - var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta)) - alpha = alpha.redAdd(alpha).redIAdd(alpha) - var beta4 = beta.redIAdd(beta) - beta4 = beta4.redIAdd(beta4) - var beta8 = beta4.redAdd(beta4) - nx = alpha.redSqr().redISub(beta8) - nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta) - var ggamma8 = gamma.redSqr() - ggamma8 = ggamma8.redIAdd(ggamma8) - ggamma8 = ggamma8.redIAdd(ggamma8) - ggamma8 = ggamma8.redIAdd(ggamma8) - ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8) - } - return this.curve.jpoint(nx, ny, nz) - } - JPoint.prototype._dbl = function _dbl() { - var a = this.curve.a - var jx = this.x - var jy = this.y - var jz = this.z - var jz4 = jz.redSqr().redSqr() - var jx2 = jx.redSqr() - var jy2 = jy.redSqr() - var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)) - var jxd4 = jx.redAdd(jx) - jxd4 = jxd4.redIAdd(jxd4) - var t1 = jxd4.redMul(jy2) - var nx = c.redSqr().redISub(t1.redAdd(t1)) - var t2 = t1.redISub(nx) - var jyd8 = jy2.redSqr() - jyd8 = jyd8.redIAdd(jyd8) - jyd8 = jyd8.redIAdd(jyd8) - jyd8 = jyd8.redIAdd(jyd8) - var ny = c.redMul(t2).redISub(jyd8) - var nz = jy.redAdd(jy).redMul(jz) - return this.curve.jpoint(nx, ny, nz) - } - JPoint.prototype.trpl = function trpl() { - if (!this.curve.zeroA) return this.dbl().add(this) - var xx = this.x.redSqr() - var yy = this.y.redSqr() - var zz = this.z.redSqr() - var yyyy = yy.redSqr() - var m = xx.redAdd(xx).redIAdd(xx) - var mm = m.redSqr() - var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy) - e = e.redIAdd(e) - e = e.redAdd(e).redIAdd(e) - e = e.redISub(mm) - var ee = e.redSqr() - var t = yyyy.redIAdd(yyyy) - t = t.redIAdd(t) - t = t.redIAdd(t) - t = t.redIAdd(t) - var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t) - var yyu4 = yy.redMul(u) - yyu4 = yyu4.redIAdd(yyu4) - yyu4 = yyu4.redIAdd(yyu4) - var nx = this.x.redMul(ee).redISub(yyu4) - nx = nx.redIAdd(nx) - nx = nx.redIAdd(nx) - var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee))) - ny = ny.redIAdd(ny) - ny = ny.redIAdd(ny) - ny = ny.redIAdd(ny) - var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee) - return this.curve.jpoint(nx, ny, nz) - } - JPoint.prototype.mul = function mul(k, kbase) { - k = new BN(k, kbase) - return this.curve._wnafMul(this, k) - } - JPoint.prototype.eq = function eq(p) { - if (p.type === 'affine') return this.eq(p.toJ()) - if (this === p) return true - var z2 = this.z.redSqr() - var pz2 = p.z.redSqr() - if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0) return false - var z3 = z2.redMul(this.z) - var pz3 = pz2.redMul(p.z) - return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0 - } - JPoint.prototype.eqXToP = function eqXToP(x) { - var zs = this.z.redSqr() - var rx = x.toRed(this.curve.red).redMul(zs) - if (this.x.cmp(rx) === 0) return true - var xc = x.clone() - var t = this.curve.redN.redMul(zs) - for (;;) { - xc.iadd(this.curve.n) - if (xc.cmp(this.curve.p) >= 0) return false - rx.redIAdd(t) - if (this.x.cmp(rx) === 0) return true - } - } - JPoint.prototype.inspect = function inspect() { - if (this.isInfinity()) return '' - return ( - '' - ) - } - JPoint.prototype.isInfinity = function isInfinity() { - return this.z.cmpn(0) === 0 - } - }, - { '../utils': 131, './base': 118, 'bn.js': 132, inherits: 151 } - ], - 123: [ - function (require, module, exports) { - 'use strict' - var curves = exports - var hash = require('hash.js') - var curve = require('./curve') - var utils = require('./utils') - var assert = utils.assert - function PresetCurve(options) { - if (options.type === 'short') this.curve = new curve.short(options) - else if (options.type === 'edwards') this.curve = new curve.edwards(options) - else this.curve = new curve.mont(options) - this.g = this.curve.g - this.n = this.curve.n - this.hash = options.hash - assert(this.g.validate(), 'Invalid curve') - assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O') - } - curves.PresetCurve = PresetCurve - function defineCurve(name, options) { - Object.defineProperty(curves, name, { - configurable: true, - enumerable: true, - get: function () { - var curve = new PresetCurve(options) - Object.defineProperty(curves, name, { - configurable: true, - enumerable: true, - value: curve - }) - return curve - } - }) - } - defineCurve('p192', { - type: 'short', - prime: 'p192', - p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff', - a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc', - b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1', - n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831', - hash: hash.sha256, - gRed: false, - g: [ - '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012', - '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811' - ] - }) - defineCurve('p224', { - type: 'short', - prime: 'p224', - p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001', - a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe', - b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4', - n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d', - hash: hash.sha256, - gRed: false, - g: [ - 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21', - 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34' - ] - }) - defineCurve('p256', { - type: 'short', - prime: null, - p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff', - a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc', - b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b', - n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551', - hash: hash.sha256, - gRed: false, - g: [ - '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296', - '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5' - ] - }) - defineCurve('p384', { - type: 'short', - prime: null, - p: - 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + - 'fffffffe ffffffff 00000000 00000000 ffffffff', - a: - 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + - 'fffffffe ffffffff 00000000 00000000 fffffffc', - b: - 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' + - '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef', - n: - 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' + - 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973', - hash: hash.sha384, - gRed: false, - g: [ - 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' + - '5502f25d bf55296c 3a545e38 72760ab7', - '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' + - '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f' - ] - }) - defineCurve('p521', { - type: 'short', - prime: null, - p: - '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + - 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + - 'ffffffff ffffffff ffffffff ffffffff ffffffff', - a: - '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + - 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + - 'ffffffff ffffffff ffffffff ffffffff fffffffc', - b: - '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' + - '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' + - '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00', - n: - '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + - 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' + - 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409', - hash: hash.sha512, - gRed: false, - g: [ - '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' + - '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' + - 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66', - '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' + - '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' + - '3fad0761 353c7086 a272c240 88be9476 9fd16650' - ] - }) - defineCurve('curve25519', { - type: 'mont', - prime: 'p25519', - p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed', - a: '76d06', - b: '1', - n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed', - hash: hash.sha256, - gRed: false, - g: ['9'] - }) - defineCurve('ed25519', { - type: 'edwards', - prime: 'p25519', - p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed', - a: '-1', - c: '1', - d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3', - n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed', - hash: hash.sha256, - gRed: false, - g: [ - '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a', - '6666666666666666666666666666666666666666666666666666666666666658' - ] - }) - var pre - try { - pre = require('./precomputed/secp256k1') - } catch (e) { - pre = undefined - } - defineCurve('secp256k1', { - type: 'short', - prime: 'k256', - p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f', - a: '0', - b: '7', - n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141', - h: '1', - hash: hash.sha256, - beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee', - lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72', - basis: [ - { a: '3086d221a7d46bcde86c90e49284eb15', b: '-e4437ed6010e88286f547fa90abfe4c3' }, - { a: '114ca50f7a8e2f3f657c1108d9d44cfd8', b: '3086d221a7d46bcde86c90e49284eb15' } - ], - gRed: false, - g: [ - '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798', - '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8', - pre - ] - }) - }, - { './curve': 120, './precomputed/secp256k1': 130, './utils': 131, 'hash.js': 137 } - ], - 124: [ - function (require, module, exports) { - 'use strict' - var BN = require('bn.js') - var HmacDRBG = require('hmac-drbg') - var utils = require('../utils') - var curves = require('../curves') - var rand = require('brorand') - var assert = utils.assert - var KeyPair = require('./key') - var Signature = require('./signature') - function EC(options) { - if (!(this instanceof EC)) return new EC(options) - if (typeof options === 'string') { - assert(curves.hasOwnProperty(options), 'Unknown curve ' + options) - options = curves[options] - } - if (options instanceof curves.PresetCurve) options = { curve: options } - this.curve = options.curve.curve - this.n = this.curve.n - this.nh = this.n.ushrn(1) - this.g = this.curve.g - this.g = options.curve.g - this.g.precompute(options.curve.n.bitLength() + 1) - this.hash = options.hash || options.curve.hash - } - module.exports = EC - EC.prototype.keyPair = function keyPair(options) { - return new KeyPair(this, options) - } - EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) { - return KeyPair.fromPrivate(this, priv, enc) - } - EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) { - return KeyPair.fromPublic(this, pub, enc) - } - EC.prototype.genKeyPair = function genKeyPair(options) { - if (!options) options = {} - var drbg = new HmacDRBG({ - hash: this.hash, - pers: options.pers, - persEnc: options.persEnc || 'utf8', - entropy: options.entropy || rand(this.hash.hmacStrength), - entropyEnc: (options.entropy && options.entropyEnc) || 'utf8', - nonce: this.n.toArray() - }) - var bytes = this.n.byteLength() - var ns2 = this.n.sub(new BN(2)) - do { - var priv = new BN(drbg.generate(bytes)) - if (priv.cmp(ns2) > 0) continue - priv.iaddn(1) - return this.keyFromPrivate(priv) - } while (true) - } - EC.prototype._truncateToN = function truncateToN(msg, truncOnly) { - var delta = msg.byteLength() * 8 - this.n.bitLength() - if (delta > 0) msg = msg.ushrn(delta) - if (!truncOnly && msg.cmp(this.n) >= 0) return msg.sub(this.n) - else return msg - } - EC.prototype.sign = function sign(msg, key, enc, options) { - if (typeof enc === 'object') { - options = enc - enc = null - } - if (!options) options = {} - key = this.keyFromPrivate(key, enc) - msg = this._truncateToN(new BN(msg, 16)) - var bytes = this.n.byteLength() - var bkey = key.getPrivate().toArray('be', bytes) - var nonce = msg.toArray('be', bytes) - var drbg = new HmacDRBG({ - hash: this.hash, - entropy: bkey, - nonce: nonce, - pers: options.pers, - persEnc: options.persEnc || 'utf8' - }) - var ns1 = this.n.sub(new BN(1)) - for (var iter = 0; true; iter++) { - var k = options.k ? options.k(iter) : new BN(drbg.generate(this.n.byteLength())) - k = this._truncateToN(k, true) - if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0) continue - var kp = this.g.mul(k) - if (kp.isInfinity()) continue - var kpX = kp.getX() - var r = kpX.umod(this.n) - if (r.cmpn(0) === 0) continue - var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg)) - s = s.umod(this.n) - if (s.cmpn(0) === 0) continue - var recoveryParam = (kp.getY().isOdd() ? 1 : 0) | (kpX.cmp(r) !== 0 ? 2 : 0) - if (options.canonical && s.cmp(this.nh) > 0) { - s = this.n.sub(s) - recoveryParam ^= 1 - } - return new Signature({ r: r, s: s, recoveryParam: recoveryParam }) - } - } - EC.prototype.verify = function verify(msg, signature, key, enc) { - msg = this._truncateToN(new BN(msg, 16)) - key = this.keyFromPublic(key, enc) - signature = new Signature(signature, 'hex') - var r = signature.r - var s = signature.s - if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0) return false - if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0) return false - var sinv = s.invm(this.n) - var u1 = sinv.mul(msg).umod(this.n) - var u2 = sinv.mul(r).umod(this.n) - if (!this.curve._maxwellTrick) { - var p = this.g.mulAdd(u1, key.getPublic(), u2) - if (p.isInfinity()) return false - return p.getX().umod(this.n).cmp(r) === 0 - } - var p = this.g.jmulAdd(u1, key.getPublic(), u2) - if (p.isInfinity()) return false - return p.eqXToP(r) - } - EC.prototype.recoverPubKey = function (msg, signature, j, enc) { - assert((3 & j) === j, 'The recovery param is more than two bits') - signature = new Signature(signature, enc) - var n = this.n - var e = new BN(msg) - var r = signature.r - var s = signature.s - var isYOdd = j & 1 - var isSecondKey = j >> 1 - if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey) - throw new Error('Unable to find sencond key candinate') - if (isSecondKey) r = this.curve.pointFromX(r.add(this.curve.n), isYOdd) - else r = this.curve.pointFromX(r, isYOdd) - var rInv = signature.r.invm(n) - var s1 = n.sub(e).mul(rInv).umod(n) - var s2 = s.mul(rInv).umod(n) - return this.g.mulAdd(s1, r, s2) - } - EC.prototype.getKeyRecoveryParam = function (e, signature, Q, enc) { - signature = new Signature(signature, enc) - if (signature.recoveryParam !== null) return signature.recoveryParam - for (var i = 0; i < 4; i++) { - var Qprime - try { - Qprime = this.recoverPubKey(e, signature, i) - } catch (e) { - continue - } - if (Qprime.eq(Q)) return i - } - throw new Error('Unable to find valid recovery factor') - } - }, - { - '../curves': 123, - '../utils': 131, - './key': 125, - './signature': 126, - 'bn.js': 132, - brorand: 48, - 'hmac-drbg': 149 - } - ], - 125: [ - function (require, module, exports) { - 'use strict' - var BN = require('bn.js') - var utils = require('../utils') - var assert = utils.assert - function KeyPair(ec, options) { - this.ec = ec - this.priv = null - this.pub = null - if (options.priv) this._importPrivate(options.priv, options.privEnc) - if (options.pub) this._importPublic(options.pub, options.pubEnc) - } - module.exports = KeyPair - KeyPair.fromPublic = function fromPublic(ec, pub, enc) { - if (pub instanceof KeyPair) return pub - return new KeyPair(ec, { pub: pub, pubEnc: enc }) - } - KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) { - if (priv instanceof KeyPair) return priv - return new KeyPair(ec, { priv: priv, privEnc: enc }) - } - KeyPair.prototype.validate = function validate() { - var pub = this.getPublic() - if (pub.isInfinity()) return { result: false, reason: 'Invalid public key' } - if (!pub.validate()) return { result: false, reason: 'Public key is not a point' } - if (!pub.mul(this.ec.curve.n).isInfinity()) - return { result: false, reason: 'Public key * N != O' } - return { result: true, reason: null } - } - KeyPair.prototype.getPublic = function getPublic(compact, enc) { - if (typeof compact === 'string') { - enc = compact - compact = null - } - if (!this.pub) this.pub = this.ec.g.mul(this.priv) - if (!enc) return this.pub - return this.pub.encode(enc, compact) - } - KeyPair.prototype.getPrivate = function getPrivate(enc) { - if (enc === 'hex') return this.priv.toString(16, 2) - else return this.priv - } - KeyPair.prototype._importPrivate = function _importPrivate(key, enc) { - this.priv = new BN(key, enc || 16) - this.priv = this.priv.umod(this.ec.curve.n) - } - KeyPair.prototype._importPublic = function _importPublic(key, enc) { - if (key.x || key.y) { - if (this.ec.curve.type === 'mont') { - assert(key.x, 'Need x coordinate') - } else if (this.ec.curve.type === 'short' || this.ec.curve.type === 'edwards') { - assert(key.x && key.y, 'Need both x and y coordinate') - } - this.pub = this.ec.curve.point(key.x, key.y) - return - } - this.pub = this.ec.curve.decodePoint(key, enc) - } - KeyPair.prototype.derive = function derive(pub) { - return pub.mul(this.priv).getX() - } - KeyPair.prototype.sign = function sign(msg, enc, options) { - return this.ec.sign(msg, this, enc, options) - } - KeyPair.prototype.verify = function verify(msg, signature) { - return this.ec.verify(msg, signature, this) - } - KeyPair.prototype.inspect = function inspect() { - return ( - '' - ) - } - }, - { '../utils': 131, 'bn.js': 132 } - ], - 126: [ - function (require, module, exports) { - 'use strict' - var BN = require('bn.js') - var utils = require('../utils') - var assert = utils.assert - function Signature(options, enc) { - if (options instanceof Signature) return options - if (this._importDER(options, enc)) return - assert(options.r && options.s, 'Signature without r or s') - this.r = new BN(options.r, 16) - this.s = new BN(options.s, 16) - if (options.recoveryParam === undefined) this.recoveryParam = null - else this.recoveryParam = options.recoveryParam - } - module.exports = Signature - function Position() { - this.place = 0 - } - function getLength(buf, p) { - var initial = buf[p.place++] - if (!(initial & 128)) { - return initial - } - var octetLen = initial & 15 - if (octetLen === 0 || octetLen > 4) { - return false - } - var val = 0 - for (var i = 0, off = p.place; i < octetLen; i++, off++) { - val <<= 8 - val |= buf[off] - val >>>= 0 - } - if (val <= 127) { - return false - } - p.place = off - return val - } - function rmPadding(buf) { - var i = 0 - var len = buf.length - 1 - while (!buf[i] && !(buf[i + 1] & 128) && i < len) { - i++ - } - if (i === 0) { - return buf - } - return buf.slice(i) - } - Signature.prototype._importDER = function _importDER(data, enc) { - data = utils.toArray(data, enc) - var p = new Position() - if (data[p.place++] !== 48) { - return false - } - var len = getLength(data, p) - if (len === false) { - return false - } - if (len + p.place !== data.length) { - return false - } - if (data[p.place++] !== 2) { - return false - } - var rlen = getLength(data, p) - if (rlen === false) { - return false - } - var r = data.slice(p.place, rlen + p.place) - p.place += rlen - if (data[p.place++] !== 2) { - return false - } - var slen = getLength(data, p) - if (slen === false) { - return false - } - if (data.length !== slen + p.place) { - return false - } - var s = data.slice(p.place, slen + p.place) - if (r[0] === 0) { - if (r[1] & 128) { - r = r.slice(1) - } else { - return false - } - } - if (s[0] === 0) { - if (s[1] & 128) { - s = s.slice(1) - } else { - return false - } - } - this.r = new BN(r) - this.s = new BN(s) - this.recoveryParam = null - return true - } - function constructLength(arr, len) { - if (len < 128) { - arr.push(len) - return - } - var octets = 1 + ((Math.log(len) / Math.LN2) >>> 3) - arr.push(octets | 128) - while (--octets) { - arr.push((len >>> (octets << 3)) & 255) - } - arr.push(len) - } - Signature.prototype.toDER = function toDER(enc) { - var r = this.r.toArray() - var s = this.s.toArray() - if (r[0] & 128) r = [0].concat(r) - if (s[0] & 128) s = [0].concat(s) - r = rmPadding(r) - s = rmPadding(s) - while (!s[0] && !(s[1] & 128)) { - s = s.slice(1) - } - var arr = [2] - constructLength(arr, r.length) - arr = arr.concat(r) - arr.push(2) - constructLength(arr, s.length) - var backHalf = arr.concat(s) - var res = [48] - constructLength(res, backHalf.length) - res = res.concat(backHalf) - return utils.encode(res, enc) - } - }, - { '../utils': 131, 'bn.js': 132 } - ], - 127: [ - function (require, module, exports) { - 'use strict' - var hash = require('hash.js') - var curves = require('../curves') - var utils = require('../utils') - var assert = utils.assert - var parseBytes = utils.parseBytes - var KeyPair = require('./key') - var Signature = require('./signature') - function EDDSA(curve) { - assert(curve === 'ed25519', 'only tested with ed25519 so far') - if (!(this instanceof EDDSA)) return new EDDSA(curve) - var curve = curves[curve].curve - this.curve = curve - this.g = curve.g - this.g.precompute(curve.n.bitLength() + 1) - this.pointClass = curve.point().constructor - this.encodingLength = Math.ceil(curve.n.bitLength() / 8) - this.hash = hash.sha512 - } - module.exports = EDDSA - EDDSA.prototype.sign = function sign(message, secret) { - message = parseBytes(message) - var key = this.keyFromSecret(secret) - var r = this.hashInt(key.messagePrefix(), message) - var R = this.g.mul(r) - var Rencoded = this.encodePoint(R) - var s_ = this.hashInt(Rencoded, key.pubBytes(), message).mul(key.priv()) - var S = r.add(s_).umod(this.curve.n) - return this.makeSignature({ R: R, S: S, Rencoded: Rencoded }) - } - EDDSA.prototype.verify = function verify(message, sig, pub) { - message = parseBytes(message) - sig = this.makeSignature(sig) - var key = this.keyFromPublic(pub) - var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message) - var SG = this.g.mul(sig.S()) - var RplusAh = sig.R().add(key.pub().mul(h)) - return RplusAh.eq(SG) - } - EDDSA.prototype.hashInt = function hashInt() { - var hash = this.hash() - for (var i = 0; i < arguments.length; i++) hash.update(arguments[i]) - return utils.intFromLE(hash.digest()).umod(this.curve.n) - } - EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) { - return KeyPair.fromPublic(this, pub) - } - EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) { - return KeyPair.fromSecret(this, secret) - } - EDDSA.prototype.makeSignature = function makeSignature(sig) { - if (sig instanceof Signature) return sig - return new Signature(this, sig) - } - EDDSA.prototype.encodePoint = function encodePoint(point) { - var enc = point.getY().toArray('le', this.encodingLength) - enc[this.encodingLength - 1] |= point.getX().isOdd() ? 128 : 0 - return enc - } - EDDSA.prototype.decodePoint = function decodePoint(bytes) { - bytes = utils.parseBytes(bytes) - var lastIx = bytes.length - 1 - var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~128) - var xIsOdd = (bytes[lastIx] & 128) !== 0 - var y = utils.intFromLE(normed) - return this.curve.pointFromY(y, xIsOdd) - } - EDDSA.prototype.encodeInt = function encodeInt(num) { - return num.toArray('le', this.encodingLength) - } - EDDSA.prototype.decodeInt = function decodeInt(bytes) { - return utils.intFromLE(bytes) - } - EDDSA.prototype.isPoint = function isPoint(val) { - return val instanceof this.pointClass - } - }, - { '../curves': 123, '../utils': 131, './key': 128, './signature': 129, 'hash.js': 137 } - ], - 128: [ - function (require, module, exports) { - 'use strict' - var utils = require('../utils') - var assert = utils.assert - var parseBytes = utils.parseBytes - var cachedProperty = utils.cachedProperty - function KeyPair(eddsa, params) { - this.eddsa = eddsa - this._secret = parseBytes(params.secret) - if (eddsa.isPoint(params.pub)) this._pub = params.pub - else this._pubBytes = parseBytes(params.pub) - } - KeyPair.fromPublic = function fromPublic(eddsa, pub) { - if (pub instanceof KeyPair) return pub - return new KeyPair(eddsa, { pub: pub }) - } - KeyPair.fromSecret = function fromSecret(eddsa, secret) { - if (secret instanceof KeyPair) return secret - return new KeyPair(eddsa, { secret: secret }) - } - KeyPair.prototype.secret = function secret() { - return this._secret - } - cachedProperty(KeyPair, 'pubBytes', function pubBytes() { - return this.eddsa.encodePoint(this.pub()) - }) - cachedProperty(KeyPair, 'pub', function pub() { - if (this._pubBytes) return this.eddsa.decodePoint(this._pubBytes) - return this.eddsa.g.mul(this.priv()) - }) - cachedProperty(KeyPair, 'privBytes', function privBytes() { - var eddsa = this.eddsa - var hash = this.hash() - var lastIx = eddsa.encodingLength - 1 - var a = hash.slice(0, eddsa.encodingLength) - a[0] &= 248 - a[lastIx] &= 127 - a[lastIx] |= 64 - return a - }) - cachedProperty(KeyPair, 'priv', function priv() { - return this.eddsa.decodeInt(this.privBytes()) - }) - cachedProperty(KeyPair, 'hash', function hash() { - return this.eddsa.hash().update(this.secret()).digest() - }) - cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() { - return this.hash().slice(this.eddsa.encodingLength) - }) - KeyPair.prototype.sign = function sign(message) { - assert(this._secret, 'KeyPair can only verify') - return this.eddsa.sign(message, this) - } - KeyPair.prototype.verify = function verify(message, sig) { - return this.eddsa.verify(message, sig, this) - } - KeyPair.prototype.getSecret = function getSecret(enc) { - assert(this._secret, 'KeyPair is public only') - return utils.encode(this.secret(), enc) - } - KeyPair.prototype.getPublic = function getPublic(enc) { - return utils.encode(this.pubBytes(), enc) - } - module.exports = KeyPair - }, - { '../utils': 131 } - ], - 129: [ - function (require, module, exports) { - 'use strict' - var BN = require('bn.js') - var utils = require('../utils') - var assert = utils.assert - var cachedProperty = utils.cachedProperty - var parseBytes = utils.parseBytes - function Signature(eddsa, sig) { - this.eddsa = eddsa - if (typeof sig !== 'object') sig = parseBytes(sig) - if (Array.isArray(sig)) { - sig = { R: sig.slice(0, eddsa.encodingLength), S: sig.slice(eddsa.encodingLength) } - } - assert(sig.R && sig.S, 'Signature without R or S') - if (eddsa.isPoint(sig.R)) this._R = sig.R - if (sig.S instanceof BN) this._S = sig.S - this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded - this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded - } - cachedProperty(Signature, 'S', function S() { - return this.eddsa.decodeInt(this.Sencoded()) - }) - cachedProperty(Signature, 'R', function R() { - return this.eddsa.decodePoint(this.Rencoded()) - }) - cachedProperty(Signature, 'Rencoded', function Rencoded() { - return this.eddsa.encodePoint(this.R()) - }) - cachedProperty(Signature, 'Sencoded', function Sencoded() { - return this.eddsa.encodeInt(this.S()) - }) - Signature.prototype.toBytes = function toBytes() { - return this.Rencoded().concat(this.Sencoded()) - } - Signature.prototype.toHex = function toHex() { - return utils.encode(this.toBytes(), 'hex').toUpperCase() - } - module.exports = Signature - }, - { '../utils': 131, 'bn.js': 132 } - ], - 130: [ - function (require, module, exports) { - module.exports = { - doubles: { - step: 4, - points: [ - [ - 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a', - 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821' - ], - [ - '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508', - '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf' - ], - [ - '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739', - 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695' - ], - [ - '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640', - '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9' - ], - [ - '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c', - '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36' - ], - [ - '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda', - '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f' - ], - [ - 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa', - '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999' - ], - [ - '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0', - 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09' - ], - [ - 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d', - '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d' - ], - [ - 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d', - 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088' - ], - [ - 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1', - '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d' - ], - [ - '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0', - '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8' - ], - [ - '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047', - '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a' - ], - [ - '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862', - '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453' - ], - [ - '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7', - '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160' - ], - [ - '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd', - '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0' - ], - [ - '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83', - '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6' - ], - [ - '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a', - '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589' - ], - [ - '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8', - 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17' - ], - [ - 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d', - '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda' - ], - [ - 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725', - '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd' - ], - [ - '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754', - '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2' - ], - [ - '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c', - '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6' - ], - [ - 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6', - '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f' - ], - [ - '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39', - 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01' - ], - [ - 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891', - '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3' - ], - [ - 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b', - 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f' - ], - [ - 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03', - '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7' - ], - [ - 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d', - 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78' - ], - [ - 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070', - '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1' - ], - [ - '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4', - 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150' - ], - [ - '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da', - '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82' - ], - [ - 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11', - '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc' - ], - [ - '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e', - 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b' - ], - [ - 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41', - '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51' - ], - [ - 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef', - '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45' - ], - [ - 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8', - 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120' - ], - [ - '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d', - '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84' - ], - [ - '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96', - '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d' - ], - [ - '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd', - 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d' - ], - [ - '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5', - '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8' - ], - [ - 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266', - '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8' - ], - [ - '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71', - '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac' - ], - [ - '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac', - 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f' - ], - [ - '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751', - '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962' - ], - [ - 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e', - '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907' - ], - [ - '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241', - 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec' - ], - [ - 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3', - 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d' - ], - [ - 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f', - '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414' - ], - [ - '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19', - 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd' - ], - [ - '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be', - 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0' - ], - [ - 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9', - '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811' - ], - [ - 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2', - '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1' - ], - [ - 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13', - '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c' - ], - [ - '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c', - 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73' - ], - [ - '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba', - '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd' - ], - [ - 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151', - 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405' - ], - [ - '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073', - 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589' - ], - [ - '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458', - '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e' - ], - [ - '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b', - '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27' - ], - [ - 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366', - 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1' - ], - [ - '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa', - '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482' - ], - [ - '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0', - '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945' - ], - [ - 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787', - '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573' - ], - [ - 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e', - 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82' - ] - ] - }, - naf: { - wnd: 7, - points: [ - [ - 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9', - '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672' - ], - [ - '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4', - 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6' - ], - [ - '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc', - '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da' - ], - [ - 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe', - 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37' - ], - [ - '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb', - 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b' - ], - [ - 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8', - 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81' - ], - [ - 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e', - '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58' - ], - [ - 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34', - '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77' - ], - [ - '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c', - '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a' - ], - [ - '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5', - '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c' - ], - [ - '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f', - '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67' - ], - [ - '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714', - '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402' - ], - [ - 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729', - 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55' - ], - [ - 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db', - '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482' - ], - [ - '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4', - 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82' - ], - [ - '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5', - 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396' - ], - [ - '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479', - '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49' - ], - [ - '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d', - '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf' - ], - [ - '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f', - '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a' - ], - [ - '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb', - 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7' - ], - [ - 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9', - 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933' - ], - [ - '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963', - '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a' - ], - [ - '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74', - '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6' - ], - [ - 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530', - 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37' - ], - [ - '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b', - '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e' - ], - [ - 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247', - 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6' - ], - [ - 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1', - 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476' - ], - [ - '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120', - '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40' - ], - [ - '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435', - '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61' - ], - [ - '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18', - '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683' - ], - [ - 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8', - '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5' - ], - [ - '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb', - '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b' - ], - [ - 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f', - '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417' - ], - [ - '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143', - 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868' - ], - [ - '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba', - 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a' - ], - [ - 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45', - 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6' - ], - [ - '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a', - '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996' - ], - [ - '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e', - 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e' - ], - [ - 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8', - 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d' - ], - [ - '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c', - '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2' - ], - [ - '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519', - 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e' - ], - [ - '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab', - '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437' - ], - [ - '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca', - 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311' - ], - [ - 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf', - '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4' - ], - [ - '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610', - '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575' - ], - [ - '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4', - 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d' - ], - [ - '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c', - 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d' - ], - [ - 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940', - 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629' - ], - [ - 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980', - 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06' - ], - [ - '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3', - '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374' - ], - [ - '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf', - '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee' - ], - [ - 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63', - '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1' - ], - [ - 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448', - 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b' - ], - [ - '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf', - '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661' - ], - [ - '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5', - '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6' - ], - [ - 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6', - '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e' - ], - [ - '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5', - '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d' - ], - [ - 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99', - 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc' - ], - [ - '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51', - 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4' - ], - [ - '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5', - '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c' - ], - [ - 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5', - '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b' - ], - [ - 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997', - '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913' - ], - [ - '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881', - '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154' - ], - [ - '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5', - '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865' - ], - [ - '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66', - 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc' - ], - [ - '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726', - 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224' - ], - [ - '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede', - '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e' - ], - [ - '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94', - '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6' - ], - [ - '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31', - '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511' - ], - [ - '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51', - 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b' - ], - [ - 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252', - 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2' - ], - [ - '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5', - 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c' - ], - [ - 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b', - '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3' - ], - [ - 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4', - '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d' - ], - [ - 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f', - '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700' - ], - [ - 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889', - '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4' - ], - [ - '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246', - 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196' - ], - [ - '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984', - '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4' - ], - [ - '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a', - 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257' - ], - [ - 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030', - 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13' - ], - [ - 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197', - '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096' - ], - [ - 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593', - 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38' - ], - [ - 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef', - '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f' - ], - [ - '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38', - '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448' - ], - [ - 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a', - '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a' - ], - [ - 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111', - '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4' - ], - [ - '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502', - '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437' - ], - [ - '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea', - 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7' - ], - [ - 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26', - '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d' - ], - [ - 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986', - '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a' - ], - [ - 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e', - '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54' - ], - [ - '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4', - '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77' - ], - [ - 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda', - 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517' - ], - [ - '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859', - 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10' - ], - [ - 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f', - 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125' - ], - [ - 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c', - '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e' - ], - [ - '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942', - 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1' - ], - [ - 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a', - '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2' - ], - [ - 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80', - '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423' - ], - [ - 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d', - '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8' - ], - [ - '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1', - 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758' - ], - [ - '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63', - 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375' - ], - [ - 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352', - '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d' - ], - [ - '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193', - 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec' - ], - [ - '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00', - '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0' - ], - [ - '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58', - 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c' - ], - [ - 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7', - 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4' - ], - [ - '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8', - 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f' - ], - [ - '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e', - '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649' - ], - [ - '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d', - 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826' - ], - [ - '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b', - '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5' - ], - [ - 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f', - 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87' - ], - [ - '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6', - '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b' - ], - [ - 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297', - '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc' - ], - [ - '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a', - '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c' - ], - [ - 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c', - 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f' - ], - [ - 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52', - '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a' - ], - [ - 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb', - 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46' - ], - [ - '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065', - 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f' - ], - [ - '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917', - '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03' - ], - [ - '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9', - 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08' - ], - [ - '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3', - '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8' - ], - [ - '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57', - '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373' - ], - [ - '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66', - 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3' - ], - [ - '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8', - '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8' - ], - [ - '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721', - '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1' - ], - [ - '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180', - '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9' - ] - ] - } - } - }, - {} - ], - 131: [ - function (require, module, exports) { - 'use strict' - var utils = exports - var BN = require('bn.js') - var minAssert = require('minimalistic-assert') - var minUtils = require('minimalistic-crypto-utils') - utils.assert = minAssert - utils.toArray = minUtils.toArray - utils.zero2 = minUtils.zero2 - utils.toHex = minUtils.toHex - utils.encode = minUtils.encode - function getNAF(num, w, bits) { - var naf = new Array(Math.max(num.bitLength(), bits) + 1) - naf.fill(0) - var ws = 1 << (w + 1) - var k = num.clone() - for (var i = 0; i < naf.length; i++) { - var z - var mod = k.andln(ws - 1) - if (k.isOdd()) { - if (mod > (ws >> 1) - 1) z = (ws >> 1) - mod - else z = mod - k.isubn(z) - } else { - z = 0 - } - naf[i] = z - k.iushrn(1) - } - return naf - } - utils.getNAF = getNAF - function getJSF(k1, k2) { - var jsf = [[], []] - k1 = k1.clone() - k2 = k2.clone() - var d1 = 0 - var d2 = 0 - while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) { - var m14 = (k1.andln(3) + d1) & 3 - var m24 = (k2.andln(3) + d2) & 3 - if (m14 === 3) m14 = -1 - if (m24 === 3) m24 = -1 - var u1 - if ((m14 & 1) === 0) { - u1 = 0 - } else { - var m8 = (k1.andln(7) + d1) & 7 - if ((m8 === 3 || m8 === 5) && m24 === 2) u1 = -m14 - else u1 = m14 - } - jsf[0].push(u1) - var u2 - if ((m24 & 1) === 0) { - u2 = 0 - } else { - var m8 = (k2.andln(7) + d2) & 7 - if ((m8 === 3 || m8 === 5) && m14 === 2) u2 = -m24 - else u2 = m24 - } - jsf[1].push(u2) - if (2 * d1 === u1 + 1) d1 = 1 - d1 - if (2 * d2 === u2 + 1) d2 = 1 - d2 - k1.iushrn(1) - k2.iushrn(1) - } - return jsf - } - utils.getJSF = getJSF - function cachedProperty(obj, name, computer) { - var key = '_' + name - obj.prototype[name] = function cachedProperty() { - return this[key] !== undefined ? this[key] : (this[key] = computer.call(this)) - } - } - utils.cachedProperty = cachedProperty - function parseBytes(bytes) { - return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') : bytes - } - utils.parseBytes = parseBytes - function intFromLE(bytes) { - return new BN(bytes, 'hex', 'le') - } - utils.intFromLE = intFromLE - }, - { 'bn.js': 132, 'minimalistic-assert': 158, 'minimalistic-crypto-utils': 159 } - ], - 132: [ - function (require, module, exports) { - ;(function (module, exports) { - 'use strict' - function assert(val, msg) { - if (!val) throw new Error(msg || 'Assertion failed') - } - function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } - function BN(number, base, endian) { - if (BN.isBN(number)) { - return number - } - this.negative = 0 - this.words = null - this.length = 0 - this.red = null - if (number !== null) { - if (base === 'le' || base === 'be') { - endian = base - base = 10 - } - this._init(number || 0, base || 10, endian || 'be') - } - } - if (typeof module === 'object') { - module.exports = BN - } else { - exports.BN = BN - } - BN.BN = BN - BN.wordSize = 26 - var Buffer - try { - Buffer = require('buffer').Buffer - } catch (e) {} - BN.isBN = function isBN(num) { - if (num instanceof BN) { - return true - } - return ( - num !== null && - typeof num === 'object' && - num.constructor.wordSize === BN.wordSize && - Array.isArray(num.words) - ) - } - BN.max = function max(left, right) { - if (left.cmp(right) > 0) return left - return right - } - BN.min = function min(left, right) { - if (left.cmp(right) < 0) return left - return right - } - BN.prototype._init = function init(number, base, endian) { - if (typeof number === 'number') { - return this._initNumber(number, base, endian) - } - if (typeof number === 'object') { - return this._initArray(number, base, endian) - } - if (base === 'hex') { - base = 16 - } - assert(base === (base | 0) && base >= 2 && base <= 36) - number = number.toString().replace(/\s+/g, '') - var start = 0 - if (number[0] === '-') { - start++ - } - if (base === 16) { - this._parseHex(number, start) - } else { - this._parseBase(number, base, start) - } - if (number[0] === '-') { - this.negative = 1 - } - this.strip() - if (endian !== 'le') return - this._initArray(this.toArray(), base, endian) - } - BN.prototype._initNumber = function _initNumber(number, base, endian) { - if (number < 0) { - this.negative = 1 - number = -number - } - if (number < 67108864) { - this.words = [number & 67108863] - this.length = 1 - } else if (number < 4503599627370496) { - this.words = [number & 67108863, (number / 67108864) & 67108863] - this.length = 2 - } else { - assert(number < 9007199254740992) - this.words = [number & 67108863, (number / 67108864) & 67108863, 1] - this.length = 3 - } - if (endian !== 'le') return - this._initArray(this.toArray(), base, endian) - } - BN.prototype._initArray = function _initArray(number, base, endian) { - assert(typeof number.length === 'number') - if (number.length <= 0) { - this.words = [0] - this.length = 1 - return this - } - this.length = Math.ceil(number.length / 3) - this.words = new Array(this.length) - for (var i = 0; i < this.length; i++) { - this.words[i] = 0 - } - var j, w - var off = 0 - if (endian === 'be') { - for (i = number.length - 1, j = 0; i >= 0; i -= 3) { - w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16) - this.words[j] |= (w << off) & 67108863 - this.words[j + 1] = (w >>> (26 - off)) & 67108863 - off += 24 - if (off >= 26) { - off -= 26 - j++ - } - } - } else if (endian === 'le') { - for (i = 0, j = 0; i < number.length; i += 3) { - w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16) - this.words[j] |= (w << off) & 67108863 - this.words[j + 1] = (w >>> (26 - off)) & 67108863 - off += 24 - if (off >= 26) { - off -= 26 - j++ - } - } - } - return this.strip() - } - function parseHex(str, start, end) { - var r = 0 - var len = Math.min(str.length, end) - for (var i = start; i < len; i++) { - var c = str.charCodeAt(i) - 48 - r <<= 4 - if (c >= 49 && c <= 54) { - r |= c - 49 + 10 - } else if (c >= 17 && c <= 22) { - r |= c - 17 + 10 - } else { - r |= c & 15 - } - } - return r - } - BN.prototype._parseHex = function _parseHex(number, start) { - this.length = Math.ceil((number.length - start) / 6) - this.words = new Array(this.length) - for (var i = 0; i < this.length; i++) { - this.words[i] = 0 - } - var j, w - var off = 0 - for (i = number.length - 6, j = 0; i >= start; i -= 6) { - w = parseHex(number, i, i + 6) - this.words[j] |= (w << off) & 67108863 - this.words[j + 1] |= (w >>> (26 - off)) & 4194303 - off += 24 - if (off >= 26) { - off -= 26 - j++ - } - } - if (i + 6 !== start) { - w = parseHex(number, start, i + 6) - this.words[j] |= (w << off) & 67108863 - this.words[j + 1] |= (w >>> (26 - off)) & 4194303 - } - this.strip() - } - function parseBase(str, start, end, mul) { - var r = 0 - var len = Math.min(str.length, end) - for (var i = start; i < len; i++) { - var c = str.charCodeAt(i) - 48 - r *= mul - if (c >= 49) { - r += c - 49 + 10 - } else if (c >= 17) { - r += c - 17 + 10 - } else { - r += c - } - } - return r - } - BN.prototype._parseBase = function _parseBase(number, base, start) { - this.words = [0] - this.length = 1 - for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) { - limbLen++ - } - limbLen-- - limbPow = (limbPow / base) | 0 - var total = number.length - start - var mod = total % limbLen - var end = Math.min(total, total - mod) + start - var word = 0 - for (var i = start; i < end; i += limbLen) { - word = parseBase(number, i, i + limbLen, base) - this.imuln(limbPow) - if (this.words[0] + word < 67108864) { - this.words[0] += word - } else { - this._iaddn(word) - } - } - if (mod !== 0) { - var pow = 1 - word = parseBase(number, i, number.length, base) - for (i = 0; i < mod; i++) { - pow *= base - } - this.imuln(pow) - if (this.words[0] + word < 67108864) { - this.words[0] += word - } else { - this._iaddn(word) - } - } - } - BN.prototype.copy = function copy(dest) { - dest.words = new Array(this.length) - for (var i = 0; i < this.length; i++) { - dest.words[i] = this.words[i] - } - dest.length = this.length - dest.negative = this.negative - dest.red = this.red - } - BN.prototype.clone = function clone() { - var r = new BN(null) - this.copy(r) - return r - } - BN.prototype._expand = function _expand(size) { - while (this.length < size) { - this.words[this.length++] = 0 - } - return this - } - BN.prototype.strip = function strip() { - while (this.length > 1 && this.words[this.length - 1] === 0) { - this.length-- - } - return this._normSign() - } - BN.prototype._normSign = function _normSign() { - if (this.length === 1 && this.words[0] === 0) { - this.negative = 0 - } - return this - } - BN.prototype.inspect = function inspect() { - return (this.red ? '' - } - var zeros = [ - '', - '0', - '00', - '000', - '0000', - '00000', - '000000', - '0000000', - '00000000', - '000000000', - '0000000000', - '00000000000', - '000000000000', - '0000000000000', - '00000000000000', - '000000000000000', - '0000000000000000', - '00000000000000000', - '000000000000000000', - '0000000000000000000', - '00000000000000000000', - '000000000000000000000', - '0000000000000000000000', - '00000000000000000000000', - '000000000000000000000000', - '0000000000000000000000000' - ] - var groupSizes = [ - 0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 - ] - var groupBases = [ - 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, - 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, - 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, - 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176 - ] - BN.prototype.toString = function toString(base, padding) { - base = base || 10 - padding = padding | 0 || 1 - var out - if (base === 16 || base === 'hex') { - out = '' - var off = 0 - var carry = 0 - for (var i = 0; i < this.length; i++) { - var w = this.words[i] - var word = (((w << off) | carry) & 16777215).toString(16) - carry = (w >>> (24 - off)) & 16777215 - if (carry !== 0 || i !== this.length - 1) { - out = zeros[6 - word.length] + word + out - } else { - out = word + out - } - off += 2 - if (off >= 26) { - off -= 26 - i-- - } - } - if (carry !== 0) { - out = carry.toString(16) + out - } - while (out.length % padding !== 0) { - out = '0' + out - } - if (this.negative !== 0) { - out = '-' + out - } - return out - } - if (base === (base | 0) && base >= 2 && base <= 36) { - var groupSize = groupSizes[base] - var groupBase = groupBases[base] - out = '' - var c = this.clone() - c.negative = 0 - while (!c.isZero()) { - var r = c.modn(groupBase).toString(base) - c = c.idivn(groupBase) - if (!c.isZero()) { - out = zeros[groupSize - r.length] + r + out - } else { - out = r + out - } - } - if (this.isZero()) { - out = '0' + out - } - while (out.length % padding !== 0) { - out = '0' + out - } - if (this.negative !== 0) { - out = '-' + out - } - return out - } - assert(false, 'Base should be between 2 and 36') - } - BN.prototype.toNumber = function toNumber() { - var ret = this.words[0] - if (this.length === 2) { - ret += this.words[1] * 67108864 - } else if (this.length === 3 && this.words[2] === 1) { - ret += 4503599627370496 + this.words[1] * 67108864 - } else if (this.length > 2) { - assert(false, 'Number can only safely store up to 53 bits') - } - return this.negative !== 0 ? -ret : ret - } - BN.prototype.toJSON = function toJSON() { - return this.toString(16) - } - BN.prototype.toBuffer = function toBuffer(endian, length) { - assert(typeof Buffer !== 'undefined') - return this.toArrayLike(Buffer, endian, length) - } - BN.prototype.toArray = function toArray(endian, length) { - return this.toArrayLike(Array, endian, length) - } - BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { - var byteLength = this.byteLength() - var reqLength = length || Math.max(1, byteLength) - assert(byteLength <= reqLength, 'byte array longer than desired length') - assert(reqLength > 0, 'Requested array length <= 0') - this.strip() - var littleEndian = endian === 'le' - var res = new ArrayType(reqLength) - var b, i - var q = this.clone() - if (!littleEndian) { - for (i = 0; i < reqLength - byteLength; i++) { - res[i] = 0 - } - for (i = 0; !q.isZero(); i++) { - b = q.andln(255) - q.iushrn(8) - res[reqLength - i - 1] = b - } - } else { - for (i = 0; !q.isZero(); i++) { - b = q.andln(255) - q.iushrn(8) - res[i] = b - } - for (; i < reqLength; i++) { - res[i] = 0 - } - } - return res - } - if (Math.clz32) { - BN.prototype._countBits = function _countBits(w) { - return 32 - Math.clz32(w) - } - } else { - BN.prototype._countBits = function _countBits(w) { - var t = w - var r = 0 - if (t >= 4096) { - r += 13 - t >>>= 13 - } - if (t >= 64) { - r += 7 - t >>>= 7 - } - if (t >= 8) { - r += 4 - t >>>= 4 - } - if (t >= 2) { - r += 2 - t >>>= 2 - } - return r + t - } - } - BN.prototype._zeroBits = function _zeroBits(w) { - if (w === 0) return 26 - var t = w - var r = 0 - if ((t & 8191) === 0) { - r += 13 - t >>>= 13 - } - if ((t & 127) === 0) { - r += 7 - t >>>= 7 - } - if ((t & 15) === 0) { - r += 4 - t >>>= 4 - } - if ((t & 3) === 0) { - r += 2 - t >>>= 2 - } - if ((t & 1) === 0) { - r++ - } - return r - } - BN.prototype.bitLength = function bitLength() { - var w = this.words[this.length - 1] - var hi = this._countBits(w) - return (this.length - 1) * 26 + hi - } - function toBitArray(num) { - var w = new Array(num.bitLength()) - for (var bit = 0; bit < w.length; bit++) { - var off = (bit / 26) | 0 - var wbit = bit % 26 - w[bit] = (num.words[off] & (1 << wbit)) >>> wbit - } - return w - } - BN.prototype.zeroBits = function zeroBits() { - if (this.isZero()) return 0 - var r = 0 - for (var i = 0; i < this.length; i++) { - var b = this._zeroBits(this.words[i]) - r += b - if (b !== 26) break - } - return r - } - BN.prototype.byteLength = function byteLength() { - return Math.ceil(this.bitLength() / 8) - } - BN.prototype.toTwos = function toTwos(width) { - if (this.negative !== 0) { - return this.abs().inotn(width).iaddn(1) - } - return this.clone() - } - BN.prototype.fromTwos = function fromTwos(width) { - if (this.testn(width - 1)) { - return this.notn(width).iaddn(1).ineg() - } - return this.clone() - } - BN.prototype.isNeg = function isNeg() { - return this.negative !== 0 - } - BN.prototype.neg = function neg() { - return this.clone().ineg() - } - BN.prototype.ineg = function ineg() { - if (!this.isZero()) { - this.negative ^= 1 - } - return this - } - BN.prototype.iuor = function iuor(num) { - while (this.length < num.length) { - this.words[this.length++] = 0 - } - for (var i = 0; i < num.length; i++) { - this.words[i] = this.words[i] | num.words[i] - } - return this.strip() - } - BN.prototype.ior = function ior(num) { - assert((this.negative | num.negative) === 0) - return this.iuor(num) - } - BN.prototype.or = function or(num) { - if (this.length > num.length) return this.clone().ior(num) - return num.clone().ior(this) - } - BN.prototype.uor = function uor(num) { - if (this.length > num.length) return this.clone().iuor(num) - return num.clone().iuor(this) - } - BN.prototype.iuand = function iuand(num) { - var b - if (this.length > num.length) { - b = num - } else { - b = this - } - for (var i = 0; i < b.length; i++) { - this.words[i] = this.words[i] & num.words[i] - } - this.length = b.length - return this.strip() - } - BN.prototype.iand = function iand(num) { - assert((this.negative | num.negative) === 0) - return this.iuand(num) - } - BN.prototype.and = function and(num) { - if (this.length > num.length) return this.clone().iand(num) - return num.clone().iand(this) - } - BN.prototype.uand = function uand(num) { - if (this.length > num.length) return this.clone().iuand(num) - return num.clone().iuand(this) - } - BN.prototype.iuxor = function iuxor(num) { - var a - var b - if (this.length > num.length) { - a = this - b = num - } else { - a = num - b = this - } - for (var i = 0; i < b.length; i++) { - this.words[i] = a.words[i] ^ b.words[i] - } - if (this !== a) { - for (; i < a.length; i++) { - this.words[i] = a.words[i] - } - } - this.length = a.length - return this.strip() - } - BN.prototype.ixor = function ixor(num) { - assert((this.negative | num.negative) === 0) - return this.iuxor(num) - } - BN.prototype.xor = function xor(num) { - if (this.length > num.length) return this.clone().ixor(num) - return num.clone().ixor(this) - } - BN.prototype.uxor = function uxor(num) { - if (this.length > num.length) return this.clone().iuxor(num) - return num.clone().iuxor(this) - } - BN.prototype.inotn = function inotn(width) { - assert(typeof width === 'number' && width >= 0) - var bytesNeeded = Math.ceil(width / 26) | 0 - var bitsLeft = width % 26 - this._expand(bytesNeeded) - if (bitsLeft > 0) { - bytesNeeded-- - } - for (var i = 0; i < bytesNeeded; i++) { - this.words[i] = ~this.words[i] & 67108863 - } - if (bitsLeft > 0) { - this.words[i] = ~this.words[i] & (67108863 >> (26 - bitsLeft)) - } - return this.strip() - } - BN.prototype.notn = function notn(width) { - return this.clone().inotn(width) - } - BN.prototype.setn = function setn(bit, val) { - assert(typeof bit === 'number' && bit >= 0) - var off = (bit / 26) | 0 - var wbit = bit % 26 - this._expand(off + 1) - if (val) { - this.words[off] = this.words[off] | (1 << wbit) - } else { - this.words[off] = this.words[off] & ~(1 << wbit) - } - return this.strip() - } - BN.prototype.iadd = function iadd(num) { - var r - if (this.negative !== 0 && num.negative === 0) { - this.negative = 0 - r = this.isub(num) - this.negative ^= 1 - return this._normSign() - } else if (this.negative === 0 && num.negative !== 0) { - num.negative = 0 - r = this.isub(num) - num.negative = 1 - return r._normSign() - } - var a, b - if (this.length > num.length) { - a = this - b = num - } else { - a = num - b = this - } - var carry = 0 - for (var i = 0; i < b.length; i++) { - r = (a.words[i] | 0) + (b.words[i] | 0) + carry - this.words[i] = r & 67108863 - carry = r >>> 26 - } - for (; carry !== 0 && i < a.length; i++) { - r = (a.words[i] | 0) + carry - this.words[i] = r & 67108863 - carry = r >>> 26 - } - this.length = a.length - if (carry !== 0) { - this.words[this.length] = carry - this.length++ - } else if (a !== this) { - for (; i < a.length; i++) { - this.words[i] = a.words[i] - } - } - return this - } - BN.prototype.add = function add(num) { - var res - if (num.negative !== 0 && this.negative === 0) { - num.negative = 0 - res = this.sub(num) - num.negative ^= 1 - return res - } else if (num.negative === 0 && this.negative !== 0) { - this.negative = 0 - res = num.sub(this) - this.negative = 1 - return res - } - if (this.length > num.length) return this.clone().iadd(num) - return num.clone().iadd(this) - } - BN.prototype.isub = function isub(num) { - if (num.negative !== 0) { - num.negative = 0 - var r = this.iadd(num) - num.negative = 1 - return r._normSign() - } else if (this.negative !== 0) { - this.negative = 0 - this.iadd(num) - this.negative = 1 - return this._normSign() - } - var cmp = this.cmp(num) - if (cmp === 0) { - this.negative = 0 - this.length = 1 - this.words[0] = 0 - return this - } - var a, b - if (cmp > 0) { - a = this - b = num - } else { - a = num - b = this - } - var carry = 0 - for (var i = 0; i < b.length; i++) { - r = (a.words[i] | 0) - (b.words[i] | 0) + carry - carry = r >> 26 - this.words[i] = r & 67108863 - } - for (; carry !== 0 && i < a.length; i++) { - r = (a.words[i] | 0) + carry - carry = r >> 26 - this.words[i] = r & 67108863 - } - if (carry === 0 && i < a.length && a !== this) { - for (; i < a.length; i++) { - this.words[i] = a.words[i] - } - } - this.length = Math.max(this.length, i) - if (a !== this) { - this.negative = 1 - } - return this.strip() - } - BN.prototype.sub = function sub(num) { - return this.clone().isub(num) - } - function smallMulTo(self, num, out) { - out.negative = num.negative ^ self.negative - var len = (self.length + num.length) | 0 - out.length = len - len = (len - 1) | 0 - var a = self.words[0] | 0 - var b = num.words[0] | 0 - var r = a * b - var lo = r & 67108863 - var carry = (r / 67108864) | 0 - out.words[0] = lo - for (var k = 1; k < len; k++) { - var ncarry = carry >>> 26 - var rword = carry & 67108863 - var maxJ = Math.min(k, num.length - 1) - for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { - var i = (k - j) | 0 - a = self.words[i] | 0 - b = num.words[j] | 0 - r = a * b + rword - ncarry += (r / 67108864) | 0 - rword = r & 67108863 - } - out.words[k] = rword | 0 - carry = ncarry | 0 - } - if (carry !== 0) { - out.words[k] = carry | 0 - } else { - out.length-- - } - return out.strip() - } - var comb10MulTo = function comb10MulTo(self, num, out) { - var a = self.words - var b = num.words - var o = out.words - var c = 0 - var lo - var mid - var hi - var a0 = a[0] | 0 - var al0 = a0 & 8191 - var ah0 = a0 >>> 13 - var a1 = a[1] | 0 - var al1 = a1 & 8191 - var ah1 = a1 >>> 13 - var a2 = a[2] | 0 - var al2 = a2 & 8191 - var ah2 = a2 >>> 13 - var a3 = a[3] | 0 - var al3 = a3 & 8191 - var ah3 = a3 >>> 13 - var a4 = a[4] | 0 - var al4 = a4 & 8191 - var ah4 = a4 >>> 13 - var a5 = a[5] | 0 - var al5 = a5 & 8191 - var ah5 = a5 >>> 13 - var a6 = a[6] | 0 - var al6 = a6 & 8191 - var ah6 = a6 >>> 13 - var a7 = a[7] | 0 - var al7 = a7 & 8191 - var ah7 = a7 >>> 13 - var a8 = a[8] | 0 - var al8 = a8 & 8191 - var ah8 = a8 >>> 13 - var a9 = a[9] | 0 - var al9 = a9 & 8191 - var ah9 = a9 >>> 13 - var b0 = b[0] | 0 - var bl0 = b0 & 8191 - var bh0 = b0 >>> 13 - var b1 = b[1] | 0 - var bl1 = b1 & 8191 - var bh1 = b1 >>> 13 - var b2 = b[2] | 0 - var bl2 = b2 & 8191 - var bh2 = b2 >>> 13 - var b3 = b[3] | 0 - var bl3 = b3 & 8191 - var bh3 = b3 >>> 13 - var b4 = b[4] | 0 - var bl4 = b4 & 8191 - var bh4 = b4 >>> 13 - var b5 = b[5] | 0 - var bl5 = b5 & 8191 - var bh5 = b5 >>> 13 - var b6 = b[6] | 0 - var bl6 = b6 & 8191 - var bh6 = b6 >>> 13 - var b7 = b[7] | 0 - var bl7 = b7 & 8191 - var bh7 = b7 >>> 13 - var b8 = b[8] | 0 - var bl8 = b8 & 8191 - var bh8 = b8 >>> 13 - var b9 = b[9] | 0 - var bl9 = b9 & 8191 - var bh9 = b9 >>> 13 - out.negative = self.negative ^ num.negative - out.length = 19 - lo = Math.imul(al0, bl0) - mid = Math.imul(al0, bh0) - mid = (mid + Math.imul(ah0, bl0)) | 0 - hi = Math.imul(ah0, bh0) - var w0 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0 - w0 &= 67108863 - lo = Math.imul(al1, bl0) - mid = Math.imul(al1, bh0) - mid = (mid + Math.imul(ah1, bl0)) | 0 - hi = Math.imul(ah1, bh0) - lo = (lo + Math.imul(al0, bl1)) | 0 - mid = (mid + Math.imul(al0, bh1)) | 0 - mid = (mid + Math.imul(ah0, bl1)) | 0 - hi = (hi + Math.imul(ah0, bh1)) | 0 - var w1 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0 - w1 &= 67108863 - lo = Math.imul(al2, bl0) - mid = Math.imul(al2, bh0) - mid = (mid + Math.imul(ah2, bl0)) | 0 - hi = Math.imul(ah2, bh0) - lo = (lo + Math.imul(al1, bl1)) | 0 - mid = (mid + Math.imul(al1, bh1)) | 0 - mid = (mid + Math.imul(ah1, bl1)) | 0 - hi = (hi + Math.imul(ah1, bh1)) | 0 - lo = (lo + Math.imul(al0, bl2)) | 0 - mid = (mid + Math.imul(al0, bh2)) | 0 - mid = (mid + Math.imul(ah0, bl2)) | 0 - hi = (hi + Math.imul(ah0, bh2)) | 0 - var w2 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0 - w2 &= 67108863 - lo = Math.imul(al3, bl0) - mid = Math.imul(al3, bh0) - mid = (mid + Math.imul(ah3, bl0)) | 0 - hi = Math.imul(ah3, bh0) - lo = (lo + Math.imul(al2, bl1)) | 0 - mid = (mid + Math.imul(al2, bh1)) | 0 - mid = (mid + Math.imul(ah2, bl1)) | 0 - hi = (hi + Math.imul(ah2, bh1)) | 0 - lo = (lo + Math.imul(al1, bl2)) | 0 - mid = (mid + Math.imul(al1, bh2)) | 0 - mid = (mid + Math.imul(ah1, bl2)) | 0 - hi = (hi + Math.imul(ah1, bh2)) | 0 - lo = (lo + Math.imul(al0, bl3)) | 0 - mid = (mid + Math.imul(al0, bh3)) | 0 - mid = (mid + Math.imul(ah0, bl3)) | 0 - hi = (hi + Math.imul(ah0, bh3)) | 0 - var w3 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0 - w3 &= 67108863 - lo = Math.imul(al4, bl0) - mid = Math.imul(al4, bh0) - mid = (mid + Math.imul(ah4, bl0)) | 0 - hi = Math.imul(ah4, bh0) - lo = (lo + Math.imul(al3, bl1)) | 0 - mid = (mid + Math.imul(al3, bh1)) | 0 - mid = (mid + Math.imul(ah3, bl1)) | 0 - hi = (hi + Math.imul(ah3, bh1)) | 0 - lo = (lo + Math.imul(al2, bl2)) | 0 - mid = (mid + Math.imul(al2, bh2)) | 0 - mid = (mid + Math.imul(ah2, bl2)) | 0 - hi = (hi + Math.imul(ah2, bh2)) | 0 - lo = (lo + Math.imul(al1, bl3)) | 0 - mid = (mid + Math.imul(al1, bh3)) | 0 - mid = (mid + Math.imul(ah1, bl3)) | 0 - hi = (hi + Math.imul(ah1, bh3)) | 0 - lo = (lo + Math.imul(al0, bl4)) | 0 - mid = (mid + Math.imul(al0, bh4)) | 0 - mid = (mid + Math.imul(ah0, bl4)) | 0 - hi = (hi + Math.imul(ah0, bh4)) | 0 - var w4 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0 - w4 &= 67108863 - lo = Math.imul(al5, bl0) - mid = Math.imul(al5, bh0) - mid = (mid + Math.imul(ah5, bl0)) | 0 - hi = Math.imul(ah5, bh0) - lo = (lo + Math.imul(al4, bl1)) | 0 - mid = (mid + Math.imul(al4, bh1)) | 0 - mid = (mid + Math.imul(ah4, bl1)) | 0 - hi = (hi + Math.imul(ah4, bh1)) | 0 - lo = (lo + Math.imul(al3, bl2)) | 0 - mid = (mid + Math.imul(al3, bh2)) | 0 - mid = (mid + Math.imul(ah3, bl2)) | 0 - hi = (hi + Math.imul(ah3, bh2)) | 0 - lo = (lo + Math.imul(al2, bl3)) | 0 - mid = (mid + Math.imul(al2, bh3)) | 0 - mid = (mid + Math.imul(ah2, bl3)) | 0 - hi = (hi + Math.imul(ah2, bh3)) | 0 - lo = (lo + Math.imul(al1, bl4)) | 0 - mid = (mid + Math.imul(al1, bh4)) | 0 - mid = (mid + Math.imul(ah1, bl4)) | 0 - hi = (hi + Math.imul(ah1, bh4)) | 0 - lo = (lo + Math.imul(al0, bl5)) | 0 - mid = (mid + Math.imul(al0, bh5)) | 0 - mid = (mid + Math.imul(ah0, bl5)) | 0 - hi = (hi + Math.imul(ah0, bh5)) | 0 - var w5 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0 - w5 &= 67108863 - lo = Math.imul(al6, bl0) - mid = Math.imul(al6, bh0) - mid = (mid + Math.imul(ah6, bl0)) | 0 - hi = Math.imul(ah6, bh0) - lo = (lo + Math.imul(al5, bl1)) | 0 - mid = (mid + Math.imul(al5, bh1)) | 0 - mid = (mid + Math.imul(ah5, bl1)) | 0 - hi = (hi + Math.imul(ah5, bh1)) | 0 - lo = (lo + Math.imul(al4, bl2)) | 0 - mid = (mid + Math.imul(al4, bh2)) | 0 - mid = (mid + Math.imul(ah4, bl2)) | 0 - hi = (hi + Math.imul(ah4, bh2)) | 0 - lo = (lo + Math.imul(al3, bl3)) | 0 - mid = (mid + Math.imul(al3, bh3)) | 0 - mid = (mid + Math.imul(ah3, bl3)) | 0 - hi = (hi + Math.imul(ah3, bh3)) | 0 - lo = (lo + Math.imul(al2, bl4)) | 0 - mid = (mid + Math.imul(al2, bh4)) | 0 - mid = (mid + Math.imul(ah2, bl4)) | 0 - hi = (hi + Math.imul(ah2, bh4)) | 0 - lo = (lo + Math.imul(al1, bl5)) | 0 - mid = (mid + Math.imul(al1, bh5)) | 0 - mid = (mid + Math.imul(ah1, bl5)) | 0 - hi = (hi + Math.imul(ah1, bh5)) | 0 - lo = (lo + Math.imul(al0, bl6)) | 0 - mid = (mid + Math.imul(al0, bh6)) | 0 - mid = (mid + Math.imul(ah0, bl6)) | 0 - hi = (hi + Math.imul(ah0, bh6)) | 0 - var w6 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0 - w6 &= 67108863 - lo = Math.imul(al7, bl0) - mid = Math.imul(al7, bh0) - mid = (mid + Math.imul(ah7, bl0)) | 0 - hi = Math.imul(ah7, bh0) - lo = (lo + Math.imul(al6, bl1)) | 0 - mid = (mid + Math.imul(al6, bh1)) | 0 - mid = (mid + Math.imul(ah6, bl1)) | 0 - hi = (hi + Math.imul(ah6, bh1)) | 0 - lo = (lo + Math.imul(al5, bl2)) | 0 - mid = (mid + Math.imul(al5, bh2)) | 0 - mid = (mid + Math.imul(ah5, bl2)) | 0 - hi = (hi + Math.imul(ah5, bh2)) | 0 - lo = (lo + Math.imul(al4, bl3)) | 0 - mid = (mid + Math.imul(al4, bh3)) | 0 - mid = (mid + Math.imul(ah4, bl3)) | 0 - hi = (hi + Math.imul(ah4, bh3)) | 0 - lo = (lo + Math.imul(al3, bl4)) | 0 - mid = (mid + Math.imul(al3, bh4)) | 0 - mid = (mid + Math.imul(ah3, bl4)) | 0 - hi = (hi + Math.imul(ah3, bh4)) | 0 - lo = (lo + Math.imul(al2, bl5)) | 0 - mid = (mid + Math.imul(al2, bh5)) | 0 - mid = (mid + Math.imul(ah2, bl5)) | 0 - hi = (hi + Math.imul(ah2, bh5)) | 0 - lo = (lo + Math.imul(al1, bl6)) | 0 - mid = (mid + Math.imul(al1, bh6)) | 0 - mid = (mid + Math.imul(ah1, bl6)) | 0 - hi = (hi + Math.imul(ah1, bh6)) | 0 - lo = (lo + Math.imul(al0, bl7)) | 0 - mid = (mid + Math.imul(al0, bh7)) | 0 - mid = (mid + Math.imul(ah0, bl7)) | 0 - hi = (hi + Math.imul(ah0, bh7)) | 0 - var w7 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0 - w7 &= 67108863 - lo = Math.imul(al8, bl0) - mid = Math.imul(al8, bh0) - mid = (mid + Math.imul(ah8, bl0)) | 0 - hi = Math.imul(ah8, bh0) - lo = (lo + Math.imul(al7, bl1)) | 0 - mid = (mid + Math.imul(al7, bh1)) | 0 - mid = (mid + Math.imul(ah7, bl1)) | 0 - hi = (hi + Math.imul(ah7, bh1)) | 0 - lo = (lo + Math.imul(al6, bl2)) | 0 - mid = (mid + Math.imul(al6, bh2)) | 0 - mid = (mid + Math.imul(ah6, bl2)) | 0 - hi = (hi + Math.imul(ah6, bh2)) | 0 - lo = (lo + Math.imul(al5, bl3)) | 0 - mid = (mid + Math.imul(al5, bh3)) | 0 - mid = (mid + Math.imul(ah5, bl3)) | 0 - hi = (hi + Math.imul(ah5, bh3)) | 0 - lo = (lo + Math.imul(al4, bl4)) | 0 - mid = (mid + Math.imul(al4, bh4)) | 0 - mid = (mid + Math.imul(ah4, bl4)) | 0 - hi = (hi + Math.imul(ah4, bh4)) | 0 - lo = (lo + Math.imul(al3, bl5)) | 0 - mid = (mid + Math.imul(al3, bh5)) | 0 - mid = (mid + Math.imul(ah3, bl5)) | 0 - hi = (hi + Math.imul(ah3, bh5)) | 0 - lo = (lo + Math.imul(al2, bl6)) | 0 - mid = (mid + Math.imul(al2, bh6)) | 0 - mid = (mid + Math.imul(ah2, bl6)) | 0 - hi = (hi + Math.imul(ah2, bh6)) | 0 - lo = (lo + Math.imul(al1, bl7)) | 0 - mid = (mid + Math.imul(al1, bh7)) | 0 - mid = (mid + Math.imul(ah1, bl7)) | 0 - hi = (hi + Math.imul(ah1, bh7)) | 0 - lo = (lo + Math.imul(al0, bl8)) | 0 - mid = (mid + Math.imul(al0, bh8)) | 0 - mid = (mid + Math.imul(ah0, bl8)) | 0 - hi = (hi + Math.imul(ah0, bh8)) | 0 - var w8 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0 - w8 &= 67108863 - lo = Math.imul(al9, bl0) - mid = Math.imul(al9, bh0) - mid = (mid + Math.imul(ah9, bl0)) | 0 - hi = Math.imul(ah9, bh0) - lo = (lo + Math.imul(al8, bl1)) | 0 - mid = (mid + Math.imul(al8, bh1)) | 0 - mid = (mid + Math.imul(ah8, bl1)) | 0 - hi = (hi + Math.imul(ah8, bh1)) | 0 - lo = (lo + Math.imul(al7, bl2)) | 0 - mid = (mid + Math.imul(al7, bh2)) | 0 - mid = (mid + Math.imul(ah7, bl2)) | 0 - hi = (hi + Math.imul(ah7, bh2)) | 0 - lo = (lo + Math.imul(al6, bl3)) | 0 - mid = (mid + Math.imul(al6, bh3)) | 0 - mid = (mid + Math.imul(ah6, bl3)) | 0 - hi = (hi + Math.imul(ah6, bh3)) | 0 - lo = (lo + Math.imul(al5, bl4)) | 0 - mid = (mid + Math.imul(al5, bh4)) | 0 - mid = (mid + Math.imul(ah5, bl4)) | 0 - hi = (hi + Math.imul(ah5, bh4)) | 0 - lo = (lo + Math.imul(al4, bl5)) | 0 - mid = (mid + Math.imul(al4, bh5)) | 0 - mid = (mid + Math.imul(ah4, bl5)) | 0 - hi = (hi + Math.imul(ah4, bh5)) | 0 - lo = (lo + Math.imul(al3, bl6)) | 0 - mid = (mid + Math.imul(al3, bh6)) | 0 - mid = (mid + Math.imul(ah3, bl6)) | 0 - hi = (hi + Math.imul(ah3, bh6)) | 0 - lo = (lo + Math.imul(al2, bl7)) | 0 - mid = (mid + Math.imul(al2, bh7)) | 0 - mid = (mid + Math.imul(ah2, bl7)) | 0 - hi = (hi + Math.imul(ah2, bh7)) | 0 - lo = (lo + Math.imul(al1, bl8)) | 0 - mid = (mid + Math.imul(al1, bh8)) | 0 - mid = (mid + Math.imul(ah1, bl8)) | 0 - hi = (hi + Math.imul(ah1, bh8)) | 0 - lo = (lo + Math.imul(al0, bl9)) | 0 - mid = (mid + Math.imul(al0, bh9)) | 0 - mid = (mid + Math.imul(ah0, bl9)) | 0 - hi = (hi + Math.imul(ah0, bh9)) | 0 - var w9 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0 - w9 &= 67108863 - lo = Math.imul(al9, bl1) - mid = Math.imul(al9, bh1) - mid = (mid + Math.imul(ah9, bl1)) | 0 - hi = Math.imul(ah9, bh1) - lo = (lo + Math.imul(al8, bl2)) | 0 - mid = (mid + Math.imul(al8, bh2)) | 0 - mid = (mid + Math.imul(ah8, bl2)) | 0 - hi = (hi + Math.imul(ah8, bh2)) | 0 - lo = (lo + Math.imul(al7, bl3)) | 0 - mid = (mid + Math.imul(al7, bh3)) | 0 - mid = (mid + Math.imul(ah7, bl3)) | 0 - hi = (hi + Math.imul(ah7, bh3)) | 0 - lo = (lo + Math.imul(al6, bl4)) | 0 - mid = (mid + Math.imul(al6, bh4)) | 0 - mid = (mid + Math.imul(ah6, bl4)) | 0 - hi = (hi + Math.imul(ah6, bh4)) | 0 - lo = (lo + Math.imul(al5, bl5)) | 0 - mid = (mid + Math.imul(al5, bh5)) | 0 - mid = (mid + Math.imul(ah5, bl5)) | 0 - hi = (hi + Math.imul(ah5, bh5)) | 0 - lo = (lo + Math.imul(al4, bl6)) | 0 - mid = (mid + Math.imul(al4, bh6)) | 0 - mid = (mid + Math.imul(ah4, bl6)) | 0 - hi = (hi + Math.imul(ah4, bh6)) | 0 - lo = (lo + Math.imul(al3, bl7)) | 0 - mid = (mid + Math.imul(al3, bh7)) | 0 - mid = (mid + Math.imul(ah3, bl7)) | 0 - hi = (hi + Math.imul(ah3, bh7)) | 0 - lo = (lo + Math.imul(al2, bl8)) | 0 - mid = (mid + Math.imul(al2, bh8)) | 0 - mid = (mid + Math.imul(ah2, bl8)) | 0 - hi = (hi + Math.imul(ah2, bh8)) | 0 - lo = (lo + Math.imul(al1, bl9)) | 0 - mid = (mid + Math.imul(al1, bh9)) | 0 - mid = (mid + Math.imul(ah1, bl9)) | 0 - hi = (hi + Math.imul(ah1, bh9)) | 0 - var w10 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0 - w10 &= 67108863 - lo = Math.imul(al9, bl2) - mid = Math.imul(al9, bh2) - mid = (mid + Math.imul(ah9, bl2)) | 0 - hi = Math.imul(ah9, bh2) - lo = (lo + Math.imul(al8, bl3)) | 0 - mid = (mid + Math.imul(al8, bh3)) | 0 - mid = (mid + Math.imul(ah8, bl3)) | 0 - hi = (hi + Math.imul(ah8, bh3)) | 0 - lo = (lo + Math.imul(al7, bl4)) | 0 - mid = (mid + Math.imul(al7, bh4)) | 0 - mid = (mid + Math.imul(ah7, bl4)) | 0 - hi = (hi + Math.imul(ah7, bh4)) | 0 - lo = (lo + Math.imul(al6, bl5)) | 0 - mid = (mid + Math.imul(al6, bh5)) | 0 - mid = (mid + Math.imul(ah6, bl5)) | 0 - hi = (hi + Math.imul(ah6, bh5)) | 0 - lo = (lo + Math.imul(al5, bl6)) | 0 - mid = (mid + Math.imul(al5, bh6)) | 0 - mid = (mid + Math.imul(ah5, bl6)) | 0 - hi = (hi + Math.imul(ah5, bh6)) | 0 - lo = (lo + Math.imul(al4, bl7)) | 0 - mid = (mid + Math.imul(al4, bh7)) | 0 - mid = (mid + Math.imul(ah4, bl7)) | 0 - hi = (hi + Math.imul(ah4, bh7)) | 0 - lo = (lo + Math.imul(al3, bl8)) | 0 - mid = (mid + Math.imul(al3, bh8)) | 0 - mid = (mid + Math.imul(ah3, bl8)) | 0 - hi = (hi + Math.imul(ah3, bh8)) | 0 - lo = (lo + Math.imul(al2, bl9)) | 0 - mid = (mid + Math.imul(al2, bh9)) | 0 - mid = (mid + Math.imul(ah2, bl9)) | 0 - hi = (hi + Math.imul(ah2, bh9)) | 0 - var w11 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0 - w11 &= 67108863 - lo = Math.imul(al9, bl3) - mid = Math.imul(al9, bh3) - mid = (mid + Math.imul(ah9, bl3)) | 0 - hi = Math.imul(ah9, bh3) - lo = (lo + Math.imul(al8, bl4)) | 0 - mid = (mid + Math.imul(al8, bh4)) | 0 - mid = (mid + Math.imul(ah8, bl4)) | 0 - hi = (hi + Math.imul(ah8, bh4)) | 0 - lo = (lo + Math.imul(al7, bl5)) | 0 - mid = (mid + Math.imul(al7, bh5)) | 0 - mid = (mid + Math.imul(ah7, bl5)) | 0 - hi = (hi + Math.imul(ah7, bh5)) | 0 - lo = (lo + Math.imul(al6, bl6)) | 0 - mid = (mid + Math.imul(al6, bh6)) | 0 - mid = (mid + Math.imul(ah6, bl6)) | 0 - hi = (hi + Math.imul(ah6, bh6)) | 0 - lo = (lo + Math.imul(al5, bl7)) | 0 - mid = (mid + Math.imul(al5, bh7)) | 0 - mid = (mid + Math.imul(ah5, bl7)) | 0 - hi = (hi + Math.imul(ah5, bh7)) | 0 - lo = (lo + Math.imul(al4, bl8)) | 0 - mid = (mid + Math.imul(al4, bh8)) | 0 - mid = (mid + Math.imul(ah4, bl8)) | 0 - hi = (hi + Math.imul(ah4, bh8)) | 0 - lo = (lo + Math.imul(al3, bl9)) | 0 - mid = (mid + Math.imul(al3, bh9)) | 0 - mid = (mid + Math.imul(ah3, bl9)) | 0 - hi = (hi + Math.imul(ah3, bh9)) | 0 - var w12 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0 - w12 &= 67108863 - lo = Math.imul(al9, bl4) - mid = Math.imul(al9, bh4) - mid = (mid + Math.imul(ah9, bl4)) | 0 - hi = Math.imul(ah9, bh4) - lo = (lo + Math.imul(al8, bl5)) | 0 - mid = (mid + Math.imul(al8, bh5)) | 0 - mid = (mid + Math.imul(ah8, bl5)) | 0 - hi = (hi + Math.imul(ah8, bh5)) | 0 - lo = (lo + Math.imul(al7, bl6)) | 0 - mid = (mid + Math.imul(al7, bh6)) | 0 - mid = (mid + Math.imul(ah7, bl6)) | 0 - hi = (hi + Math.imul(ah7, bh6)) | 0 - lo = (lo + Math.imul(al6, bl7)) | 0 - mid = (mid + Math.imul(al6, bh7)) | 0 - mid = (mid + Math.imul(ah6, bl7)) | 0 - hi = (hi + Math.imul(ah6, bh7)) | 0 - lo = (lo + Math.imul(al5, bl8)) | 0 - mid = (mid + Math.imul(al5, bh8)) | 0 - mid = (mid + Math.imul(ah5, bl8)) | 0 - hi = (hi + Math.imul(ah5, bh8)) | 0 - lo = (lo + Math.imul(al4, bl9)) | 0 - mid = (mid + Math.imul(al4, bh9)) | 0 - mid = (mid + Math.imul(ah4, bl9)) | 0 - hi = (hi + Math.imul(ah4, bh9)) | 0 - var w13 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0 - w13 &= 67108863 - lo = Math.imul(al9, bl5) - mid = Math.imul(al9, bh5) - mid = (mid + Math.imul(ah9, bl5)) | 0 - hi = Math.imul(ah9, bh5) - lo = (lo + Math.imul(al8, bl6)) | 0 - mid = (mid + Math.imul(al8, bh6)) | 0 - mid = (mid + Math.imul(ah8, bl6)) | 0 - hi = (hi + Math.imul(ah8, bh6)) | 0 - lo = (lo + Math.imul(al7, bl7)) | 0 - mid = (mid + Math.imul(al7, bh7)) | 0 - mid = (mid + Math.imul(ah7, bl7)) | 0 - hi = (hi + Math.imul(ah7, bh7)) | 0 - lo = (lo + Math.imul(al6, bl8)) | 0 - mid = (mid + Math.imul(al6, bh8)) | 0 - mid = (mid + Math.imul(ah6, bl8)) | 0 - hi = (hi + Math.imul(ah6, bh8)) | 0 - lo = (lo + Math.imul(al5, bl9)) | 0 - mid = (mid + Math.imul(al5, bh9)) | 0 - mid = (mid + Math.imul(ah5, bl9)) | 0 - hi = (hi + Math.imul(ah5, bh9)) | 0 - var w14 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0 - w14 &= 67108863 - lo = Math.imul(al9, bl6) - mid = Math.imul(al9, bh6) - mid = (mid + Math.imul(ah9, bl6)) | 0 - hi = Math.imul(ah9, bh6) - lo = (lo + Math.imul(al8, bl7)) | 0 - mid = (mid + Math.imul(al8, bh7)) | 0 - mid = (mid + Math.imul(ah8, bl7)) | 0 - hi = (hi + Math.imul(ah8, bh7)) | 0 - lo = (lo + Math.imul(al7, bl8)) | 0 - mid = (mid + Math.imul(al7, bh8)) | 0 - mid = (mid + Math.imul(ah7, bl8)) | 0 - hi = (hi + Math.imul(ah7, bh8)) | 0 - lo = (lo + Math.imul(al6, bl9)) | 0 - mid = (mid + Math.imul(al6, bh9)) | 0 - mid = (mid + Math.imul(ah6, bl9)) | 0 - hi = (hi + Math.imul(ah6, bh9)) | 0 - var w15 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0 - w15 &= 67108863 - lo = Math.imul(al9, bl7) - mid = Math.imul(al9, bh7) - mid = (mid + Math.imul(ah9, bl7)) | 0 - hi = Math.imul(ah9, bh7) - lo = (lo + Math.imul(al8, bl8)) | 0 - mid = (mid + Math.imul(al8, bh8)) | 0 - mid = (mid + Math.imul(ah8, bl8)) | 0 - hi = (hi + Math.imul(ah8, bh8)) | 0 - lo = (lo + Math.imul(al7, bl9)) | 0 - mid = (mid + Math.imul(al7, bh9)) | 0 - mid = (mid + Math.imul(ah7, bl9)) | 0 - hi = (hi + Math.imul(ah7, bh9)) | 0 - var w16 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0 - w16 &= 67108863 - lo = Math.imul(al9, bl8) - mid = Math.imul(al9, bh8) - mid = (mid + Math.imul(ah9, bl8)) | 0 - hi = Math.imul(ah9, bh8) - lo = (lo + Math.imul(al8, bl9)) | 0 - mid = (mid + Math.imul(al8, bh9)) | 0 - mid = (mid + Math.imul(ah8, bl9)) | 0 - hi = (hi + Math.imul(ah8, bh9)) | 0 - var w17 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0 - w17 &= 67108863 - lo = Math.imul(al9, bl9) - mid = Math.imul(al9, bh9) - mid = (mid + Math.imul(ah9, bl9)) | 0 - hi = Math.imul(ah9, bh9) - var w18 = (((c + lo) | 0) + ((mid & 8191) << 13)) | 0 - c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0 - w18 &= 67108863 - o[0] = w0 - o[1] = w1 - o[2] = w2 - o[3] = w3 - o[4] = w4 - o[5] = w5 - o[6] = w6 - o[7] = w7 - o[8] = w8 - o[9] = w9 - o[10] = w10 - o[11] = w11 - o[12] = w12 - o[13] = w13 - o[14] = w14 - o[15] = w15 - o[16] = w16 - o[17] = w17 - o[18] = w18 - if (c !== 0) { - o[19] = c - out.length++ - } - return out - } - if (!Math.imul) { - comb10MulTo = smallMulTo - } - function bigMulTo(self, num, out) { - out.negative = num.negative ^ self.negative - out.length = self.length + num.length - var carry = 0 - var hncarry = 0 - for (var k = 0; k < out.length - 1; k++) { - var ncarry = hncarry - hncarry = 0 - var rword = carry & 67108863 - var maxJ = Math.min(k, num.length - 1) - for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { - var i = k - j - var a = self.words[i] | 0 - var b = num.words[j] | 0 - var r = a * b - var lo = r & 67108863 - ncarry = (ncarry + ((r / 67108864) | 0)) | 0 - lo = (lo + rword) | 0 - rword = lo & 67108863 - ncarry = (ncarry + (lo >>> 26)) | 0 - hncarry += ncarry >>> 26 - ncarry &= 67108863 - } - out.words[k] = rword - carry = ncarry - ncarry = hncarry - } - if (carry !== 0) { - out.words[k] = carry - } else { - out.length-- - } - return out.strip() - } - function jumboMulTo(self, num, out) { - var fftm = new FFTM() - return fftm.mulp(self, num, out) - } - BN.prototype.mulTo = function mulTo(num, out) { - var res - var len = this.length + num.length - if (this.length === 10 && num.length === 10) { - res = comb10MulTo(this, num, out) - } else if (len < 63) { - res = smallMulTo(this, num, out) - } else if (len < 1024) { - res = bigMulTo(this, num, out) - } else { - res = jumboMulTo(this, num, out) - } - return res - } - function FFTM(x, y) { - this.x = x - this.y = y - } - FFTM.prototype.makeRBT = function makeRBT(N) { - var t = new Array(N) - var l = BN.prototype._countBits(N) - 1 - for (var i = 0; i < N; i++) { - t[i] = this.revBin(i, l, N) - } - return t - } - FFTM.prototype.revBin = function revBin(x, l, N) { - if (x === 0 || x === N - 1) return x - var rb = 0 - for (var i = 0; i < l; i++) { - rb |= (x & 1) << (l - i - 1) - x >>= 1 - } - return rb - } - FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) { - for (var i = 0; i < N; i++) { - rtws[i] = rws[rbt[i]] - itws[i] = iws[rbt[i]] - } - } - FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) { - this.permute(rbt, rws, iws, rtws, itws, N) - for (var s = 1; s < N; s <<= 1) { - var l = s << 1 - var rtwdf = Math.cos((2 * Math.PI) / l) - var itwdf = Math.sin((2 * Math.PI) / l) - for (var p = 0; p < N; p += l) { - var rtwdf_ = rtwdf - var itwdf_ = itwdf - for (var j = 0; j < s; j++) { - var re = rtws[p + j] - var ie = itws[p + j] - var ro = rtws[p + j + s] - var io = itws[p + j + s] - var rx = rtwdf_ * ro - itwdf_ * io - io = rtwdf_ * io + itwdf_ * ro - ro = rx - rtws[p + j] = re + ro - itws[p + j] = ie + io - rtws[p + j + s] = re - ro - itws[p + j + s] = ie - io - if (j !== l) { - rx = rtwdf * rtwdf_ - itwdf * itwdf_ - itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_ - rtwdf_ = rx - } - } - } - } - } - FFTM.prototype.guessLen13b = function guessLen13b(n, m) { - var N = Math.max(m, n) | 1 - var odd = N & 1 - var i = 0 - for (N = (N / 2) | 0; N; N = N >>> 1) { - i++ - } - return 1 << (i + 1 + odd) - } - FFTM.prototype.conjugate = function conjugate(rws, iws, N) { - if (N <= 1) return - for (var i = 0; i < N / 2; i++) { - var t = rws[i] - rws[i] = rws[N - i - 1] - rws[N - i - 1] = t - t = iws[i] - iws[i] = -iws[N - i - 1] - iws[N - i - 1] = -t - } - } - FFTM.prototype.normalize13b = function normalize13b(ws, N) { - var carry = 0 - for (var i = 0; i < N / 2; i++) { - var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry - ws[i] = w & 67108863 - if (w < 67108864) { - carry = 0 - } else { - carry = (w / 67108864) | 0 - } - } - return ws - } - FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) { - var carry = 0 - for (var i = 0; i < len; i++) { - carry = carry + (ws[i] | 0) - rws[2 * i] = carry & 8191 - carry = carry >>> 13 - rws[2 * i + 1] = carry & 8191 - carry = carry >>> 13 - } - for (i = 2 * len; i < N; ++i) { - rws[i] = 0 - } - assert(carry === 0) - assert((carry & ~8191) === 0) - } - FFTM.prototype.stub = function stub(N) { - var ph = new Array(N) - for (var i = 0; i < N; i++) { - ph[i] = 0 - } - return ph - } - FFTM.prototype.mulp = function mulp(x, y, out) { - var N = 2 * this.guessLen13b(x.length, y.length) - var rbt = this.makeRBT(N) - var _ = this.stub(N) - var rws = new Array(N) - var rwst = new Array(N) - var iwst = new Array(N) - var nrws = new Array(N) - var nrwst = new Array(N) - var niwst = new Array(N) - var rmws = out.words - rmws.length = N - this.convert13b(x.words, x.length, rws, N) - this.convert13b(y.words, y.length, nrws, N) - this.transform(rws, _, rwst, iwst, N, rbt) - this.transform(nrws, _, nrwst, niwst, N, rbt) - for (var i = 0; i < N; i++) { - var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i] - iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i] - rwst[i] = rx - } - this.conjugate(rwst, iwst, N) - this.transform(rwst, iwst, rmws, _, N, rbt) - this.conjugate(rmws, _, N) - this.normalize13b(rmws, N) - out.negative = x.negative ^ y.negative - out.length = x.length + y.length - return out.strip() - } - BN.prototype.mul = function mul(num) { - var out = new BN(null) - out.words = new Array(this.length + num.length) - return this.mulTo(num, out) - } - BN.prototype.mulf = function mulf(num) { - var out = new BN(null) - out.words = new Array(this.length + num.length) - return jumboMulTo(this, num, out) - } - BN.prototype.imul = function imul(num) { - return this.clone().mulTo(num, this) - } - BN.prototype.imuln = function imuln(num) { - assert(typeof num === 'number') - assert(num < 67108864) - var carry = 0 - for (var i = 0; i < this.length; i++) { - var w = (this.words[i] | 0) * num - var lo = (w & 67108863) + (carry & 67108863) - carry >>= 26 - carry += (w / 67108864) | 0 - carry += lo >>> 26 - this.words[i] = lo & 67108863 - } - if (carry !== 0) { - this.words[i] = carry - this.length++ - } - return this - } - BN.prototype.muln = function muln(num) { - return this.clone().imuln(num) - } - BN.prototype.sqr = function sqr() { - return this.mul(this) - } - BN.prototype.isqr = function isqr() { - return this.imul(this.clone()) - } - BN.prototype.pow = function pow(num) { - var w = toBitArray(num) - if (w.length === 0) return new BN(1) - var res = this - for (var i = 0; i < w.length; i++, res = res.sqr()) { - if (w[i] !== 0) break - } - if (++i < w.length) { - for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { - if (w[i] === 0) continue - res = res.mul(q) - } - } - return res - } - BN.prototype.iushln = function iushln(bits) { - assert(typeof bits === 'number' && bits >= 0) - var r = bits % 26 - var s = (bits - r) / 26 - var carryMask = (67108863 >>> (26 - r)) << (26 - r) - var i - if (r !== 0) { - var carry = 0 - for (i = 0; i < this.length; i++) { - var newCarry = this.words[i] & carryMask - var c = ((this.words[i] | 0) - newCarry) << r - this.words[i] = c | carry - carry = newCarry >>> (26 - r) - } - if (carry) { - this.words[i] = carry - this.length++ - } - } - if (s !== 0) { - for (i = this.length - 1; i >= 0; i--) { - this.words[i + s] = this.words[i] - } - for (i = 0; i < s; i++) { - this.words[i] = 0 - } - this.length += s - } - return this.strip() - } - BN.prototype.ishln = function ishln(bits) { - assert(this.negative === 0) - return this.iushln(bits) - } - BN.prototype.iushrn = function iushrn(bits, hint, extended) { - assert(typeof bits === 'number' && bits >= 0) - var h - if (hint) { - h = (hint - (hint % 26)) / 26 - } else { - h = 0 - } - var r = bits % 26 - var s = Math.min((bits - r) / 26, this.length) - var mask = 67108863 ^ ((67108863 >>> r) << r) - var maskedWords = extended - h -= s - h = Math.max(0, h) - if (maskedWords) { - for (var i = 0; i < s; i++) { - maskedWords.words[i] = this.words[i] - } - maskedWords.length = s - } - if (s === 0) { - } else if (this.length > s) { - this.length -= s - for (i = 0; i < this.length; i++) { - this.words[i] = this.words[i + s] - } - } else { - this.words[0] = 0 - this.length = 1 - } - var carry = 0 - for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) { - var word = this.words[i] | 0 - this.words[i] = (carry << (26 - r)) | (word >>> r) - carry = word & mask - } - if (maskedWords && carry !== 0) { - maskedWords.words[maskedWords.length++] = carry - } - if (this.length === 0) { - this.words[0] = 0 - this.length = 1 - } - return this.strip() - } - BN.prototype.ishrn = function ishrn(bits, hint, extended) { - assert(this.negative === 0) - return this.iushrn(bits, hint, extended) - } - BN.prototype.shln = function shln(bits) { - return this.clone().ishln(bits) - } - BN.prototype.ushln = function ushln(bits) { - return this.clone().iushln(bits) - } - BN.prototype.shrn = function shrn(bits) { - return this.clone().ishrn(bits) - } - BN.prototype.ushrn = function ushrn(bits) { - return this.clone().iushrn(bits) - } - BN.prototype.testn = function testn(bit) { - assert(typeof bit === 'number' && bit >= 0) - var r = bit % 26 - var s = (bit - r) / 26 - var q = 1 << r - if (this.length <= s) return false - var w = this.words[s] - return !!(w & q) - } - BN.prototype.imaskn = function imaskn(bits) { - assert(typeof bits === 'number' && bits >= 0) - var r = bits % 26 - var s = (bits - r) / 26 - assert(this.negative === 0, 'imaskn works only with positive numbers') - if (this.length <= s) { - return this - } - if (r !== 0) { - s++ - } - this.length = Math.min(s, this.length) - if (r !== 0) { - var mask = 67108863 ^ ((67108863 >>> r) << r) - this.words[this.length - 1] &= mask - } - return this.strip() - } - BN.prototype.maskn = function maskn(bits) { - return this.clone().imaskn(bits) - } - BN.prototype.iaddn = function iaddn(num) { - assert(typeof num === 'number') - assert(num < 67108864) - if (num < 0) return this.isubn(-num) - if (this.negative !== 0) { - if (this.length === 1 && (this.words[0] | 0) < num) { - this.words[0] = num - (this.words[0] | 0) - this.negative = 0 - return this - } - this.negative = 0 - this.isubn(num) - this.negative = 1 - return this - } - return this._iaddn(num) - } - BN.prototype._iaddn = function _iaddn(num) { - this.words[0] += num - for (var i = 0; i < this.length && this.words[i] >= 67108864; i++) { - this.words[i] -= 67108864 - if (i === this.length - 1) { - this.words[i + 1] = 1 - } else { - this.words[i + 1]++ - } - } - this.length = Math.max(this.length, i + 1) - return this - } - BN.prototype.isubn = function isubn(num) { - assert(typeof num === 'number') - assert(num < 67108864) - if (num < 0) return this.iaddn(-num) - if (this.negative !== 0) { - this.negative = 0 - this.iaddn(num) - this.negative = 1 - return this - } - this.words[0] -= num - if (this.length === 1 && this.words[0] < 0) { - this.words[0] = -this.words[0] - this.negative = 1 - } else { - for (var i = 0; i < this.length && this.words[i] < 0; i++) { - this.words[i] += 67108864 - this.words[i + 1] -= 1 - } - } - return this.strip() - } - BN.prototype.addn = function addn(num) { - return this.clone().iaddn(num) - } - BN.prototype.subn = function subn(num) { - return this.clone().isubn(num) - } - BN.prototype.iabs = function iabs() { - this.negative = 0 - return this - } - BN.prototype.abs = function abs() { - return this.clone().iabs() - } - BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) { - var len = num.length + shift - var i - this._expand(len) - var w - var carry = 0 - for (i = 0; i < num.length; i++) { - w = (this.words[i + shift] | 0) + carry - var right = (num.words[i] | 0) * mul - w -= right & 67108863 - carry = (w >> 26) - ((right / 67108864) | 0) - this.words[i + shift] = w & 67108863 - } - for (; i < this.length - shift; i++) { - w = (this.words[i + shift] | 0) + carry - carry = w >> 26 - this.words[i + shift] = w & 67108863 - } - if (carry === 0) return this.strip() - assert(carry === -1) - carry = 0 - for (i = 0; i < this.length; i++) { - w = -(this.words[i] | 0) + carry - carry = w >> 26 - this.words[i] = w & 67108863 - } - this.negative = 1 - return this.strip() - } - BN.prototype._wordDiv = function _wordDiv(num, mode) { - var shift = this.length - num.length - var a = this.clone() - var b = num - var bhi = b.words[b.length - 1] | 0 - var bhiBits = this._countBits(bhi) - shift = 26 - bhiBits - if (shift !== 0) { - b = b.ushln(shift) - a.iushln(shift) - bhi = b.words[b.length - 1] | 0 - } - var m = a.length - b.length - var q - if (mode !== 'mod') { - q = new BN(null) - q.length = m + 1 - q.words = new Array(q.length) - for (var i = 0; i < q.length; i++) { - q.words[i] = 0 - } - } - var diff = a.clone()._ishlnsubmul(b, 1, m) - if (diff.negative === 0) { - a = diff - if (q) { - q.words[m] = 1 - } - } - for (var j = m - 1; j >= 0; j--) { - var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0) - qj = Math.min((qj / bhi) | 0, 67108863) - a._ishlnsubmul(b, qj, j) - while (a.negative !== 0) { - qj-- - a.negative = 0 - a._ishlnsubmul(b, 1, j) - if (!a.isZero()) { - a.negative ^= 1 - } - } - if (q) { - q.words[j] = qj - } - } - if (q) { - q.strip() - } - a.strip() - if (mode !== 'div' && shift !== 0) { - a.iushrn(shift) - } - return { div: q || null, mod: a } - } - BN.prototype.divmod = function divmod(num, mode, positive) { - assert(!num.isZero()) - if (this.isZero()) { - return { div: new BN(0), mod: new BN(0) } - } - var div, mod, res - if (this.negative !== 0 && num.negative === 0) { - res = this.neg().divmod(num, mode) - if (mode !== 'mod') { - div = res.div.neg() - } - if (mode !== 'div') { - mod = res.mod.neg() - if (positive && mod.negative !== 0) { - mod.iadd(num) - } - } - return { div: div, mod: mod } - } - if (this.negative === 0 && num.negative !== 0) { - res = this.divmod(num.neg(), mode) - if (mode !== 'mod') { - div = res.div.neg() - } - return { div: div, mod: res.mod } - } - if ((this.negative & num.negative) !== 0) { - res = this.neg().divmod(num.neg(), mode) - if (mode !== 'div') { - mod = res.mod.neg() - if (positive && mod.negative !== 0) { - mod.isub(num) - } - } - return { div: res.div, mod: mod } - } - if (num.length > this.length || this.cmp(num) < 0) { - return { div: new BN(0), mod: this } - } - if (num.length === 1) { - if (mode === 'div') { - return { div: this.divn(num.words[0]), mod: null } - } - if (mode === 'mod') { - return { div: null, mod: new BN(this.modn(num.words[0])) } - } - return { div: this.divn(num.words[0]), mod: new BN(this.modn(num.words[0])) } - } - return this._wordDiv(num, mode) - } - BN.prototype.div = function div(num) { - return this.divmod(num, 'div', false).div - } - BN.prototype.mod = function mod(num) { - return this.divmod(num, 'mod', false).mod - } - BN.prototype.umod = function umod(num) { - return this.divmod(num, 'mod', true).mod - } - BN.prototype.divRound = function divRound(num) { - var dm = this.divmod(num) - if (dm.mod.isZero()) return dm.div - var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod - var half = num.ushrn(1) - var r2 = num.andln(1) - var cmp = mod.cmp(half) - if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div - return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1) - } - BN.prototype.modn = function modn(num) { - assert(num <= 67108863) - var p = (1 << 26) % num - var acc = 0 - for (var i = this.length - 1; i >= 0; i--) { - acc = (p * acc + (this.words[i] | 0)) % num - } - return acc - } - BN.prototype.idivn = function idivn(num) { - assert(num <= 67108863) - var carry = 0 - for (var i = this.length - 1; i >= 0; i--) { - var w = (this.words[i] | 0) + carry * 67108864 - this.words[i] = (w / num) | 0 - carry = w % num - } - return this.strip() - } - BN.prototype.divn = function divn(num) { - return this.clone().idivn(num) - } - BN.prototype.egcd = function egcd(p) { - assert(p.negative === 0) - assert(!p.isZero()) - var x = this - var y = p.clone() - if (x.negative !== 0) { - x = x.umod(p) - } else { - x = x.clone() - } - var A = new BN(1) - var B = new BN(0) - var C = new BN(0) - var D = new BN(1) - var g = 0 - while (x.isEven() && y.isEven()) { - x.iushrn(1) - y.iushrn(1) - ++g - } - var yp = y.clone() - var xp = x.clone() - while (!x.isZero()) { - for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1); - if (i > 0) { - x.iushrn(i) - while (i-- > 0) { - if (A.isOdd() || B.isOdd()) { - A.iadd(yp) - B.isub(xp) - } - A.iushrn(1) - B.iushrn(1) - } - } - for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); - if (j > 0) { - y.iushrn(j) - while (j-- > 0) { - if (C.isOdd() || D.isOdd()) { - C.iadd(yp) - D.isub(xp) - } - C.iushrn(1) - D.iushrn(1) - } - } - if (x.cmp(y) >= 0) { - x.isub(y) - A.isub(C) - B.isub(D) - } else { - y.isub(x) - C.isub(A) - D.isub(B) - } - } - return { a: C, b: D, gcd: y.iushln(g) } - } - BN.prototype._invmp = function _invmp(p) { - assert(p.negative === 0) - assert(!p.isZero()) - var a = this - var b = p.clone() - if (a.negative !== 0) { - a = a.umod(p) - } else { - a = a.clone() - } - var x1 = new BN(1) - var x2 = new BN(0) - var delta = b.clone() - while (a.cmpn(1) > 0 && b.cmpn(1) > 0) { - for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1); - if (i > 0) { - a.iushrn(i) - while (i-- > 0) { - if (x1.isOdd()) { - x1.iadd(delta) - } - x1.iushrn(1) - } - } - for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); - if (j > 0) { - b.iushrn(j) - while (j-- > 0) { - if (x2.isOdd()) { - x2.iadd(delta) - } - x2.iushrn(1) - } - } - if (a.cmp(b) >= 0) { - a.isub(b) - x1.isub(x2) - } else { - b.isub(a) - x2.isub(x1) - } - } - var res - if (a.cmpn(1) === 0) { - res = x1 - } else { - res = x2 - } - if (res.cmpn(0) < 0) { - res.iadd(p) - } - return res - } - BN.prototype.gcd = function gcd(num) { - if (this.isZero()) return num.abs() - if (num.isZero()) return this.abs() - var a = this.clone() - var b = num.clone() - a.negative = 0 - b.negative = 0 - for (var shift = 0; a.isEven() && b.isEven(); shift++) { - a.iushrn(1) - b.iushrn(1) - } - do { - while (a.isEven()) { - a.iushrn(1) - } - while (b.isEven()) { - b.iushrn(1) - } - var r = a.cmp(b) - if (r < 0) { - var t = a - a = b - b = t - } else if (r === 0 || b.cmpn(1) === 0) { - break - } - a.isub(b) - } while (true) - return b.iushln(shift) - } - BN.prototype.invm = function invm(num) { - return this.egcd(num).a.umod(num) - } - BN.prototype.isEven = function isEven() { - return (this.words[0] & 1) === 0 - } - BN.prototype.isOdd = function isOdd() { - return (this.words[0] & 1) === 1 - } - BN.prototype.andln = function andln(num) { - return this.words[0] & num - } - BN.prototype.bincn = function bincn(bit) { - assert(typeof bit === 'number') - var r = bit % 26 - var s = (bit - r) / 26 - var q = 1 << r - if (this.length <= s) { - this._expand(s + 1) - this.words[s] |= q - return this - } - var carry = q - for (var i = s; carry !== 0 && i < this.length; i++) { - var w = this.words[i] | 0 - w += carry - carry = w >>> 26 - w &= 67108863 - this.words[i] = w - } - if (carry !== 0) { - this.words[i] = carry - this.length++ - } - return this - } - BN.prototype.isZero = function isZero() { - return this.length === 1 && this.words[0] === 0 - } - BN.prototype.cmpn = function cmpn(num) { - var negative = num < 0 - if (this.negative !== 0 && !negative) return -1 - if (this.negative === 0 && negative) return 1 - this.strip() - var res - if (this.length > 1) { - res = 1 - } else { - if (negative) { - num = -num - } - assert(num <= 67108863, 'Number is too big') - var w = this.words[0] | 0 - res = w === num ? 0 : w < num ? -1 : 1 - } - if (this.negative !== 0) return -res | 0 - return res - } - BN.prototype.cmp = function cmp(num) { - if (this.negative !== 0 && num.negative === 0) return -1 - if (this.negative === 0 && num.negative !== 0) return 1 - var res = this.ucmp(num) - if (this.negative !== 0) return -res | 0 - return res - } - BN.prototype.ucmp = function ucmp(num) { - if (this.length > num.length) return 1 - if (this.length < num.length) return -1 - var res = 0 - for (var i = this.length - 1; i >= 0; i--) { - var a = this.words[i] | 0 - var b = num.words[i] | 0 - if (a === b) continue - if (a < b) { - res = -1 - } else if (a > b) { - res = 1 - } - break - } - return res - } - BN.prototype.gtn = function gtn(num) { - return this.cmpn(num) === 1 - } - BN.prototype.gt = function gt(num) { - return this.cmp(num) === 1 - } - BN.prototype.gten = function gten(num) { - return this.cmpn(num) >= 0 - } - BN.prototype.gte = function gte(num) { - return this.cmp(num) >= 0 - } - BN.prototype.ltn = function ltn(num) { - return this.cmpn(num) === -1 - } - BN.prototype.lt = function lt(num) { - return this.cmp(num) === -1 - } - BN.prototype.lten = function lten(num) { - return this.cmpn(num) <= 0 - } - BN.prototype.lte = function lte(num) { - return this.cmp(num) <= 0 - } - BN.prototype.eqn = function eqn(num) { - return this.cmpn(num) === 0 - } - BN.prototype.eq = function eq(num) { - return this.cmp(num) === 0 - } - BN.red = function red(num) { - return new Red(num) - } - BN.prototype.toRed = function toRed(ctx) { - assert(!this.red, 'Already a number in reduction context') - assert(this.negative === 0, 'red works only with positives') - return ctx.convertTo(this)._forceRed(ctx) - } - BN.prototype.fromRed = function fromRed() { - assert(this.red, 'fromRed works only with numbers in reduction context') - return this.red.convertFrom(this) - } - BN.prototype._forceRed = function _forceRed(ctx) { - this.red = ctx - return this - } - BN.prototype.forceRed = function forceRed(ctx) { - assert(!this.red, 'Already a number in reduction context') - return this._forceRed(ctx) - } - BN.prototype.redAdd = function redAdd(num) { - assert(this.red, 'redAdd works only with red numbers') - return this.red.add(this, num) - } - BN.prototype.redIAdd = function redIAdd(num) { - assert(this.red, 'redIAdd works only with red numbers') - return this.red.iadd(this, num) - } - BN.prototype.redSub = function redSub(num) { - assert(this.red, 'redSub works only with red numbers') - return this.red.sub(this, num) - } - BN.prototype.redISub = function redISub(num) { - assert(this.red, 'redISub works only with red numbers') - return this.red.isub(this, num) - } - BN.prototype.redShl = function redShl(num) { - assert(this.red, 'redShl works only with red numbers') - return this.red.shl(this, num) - } - BN.prototype.redMul = function redMul(num) { - assert(this.red, 'redMul works only with red numbers') - this.red._verify2(this, num) - return this.red.mul(this, num) - } - BN.prototype.redIMul = function redIMul(num) { - assert(this.red, 'redMul works only with red numbers') - this.red._verify2(this, num) - return this.red.imul(this, num) - } - BN.prototype.redSqr = function redSqr() { - assert(this.red, 'redSqr works only with red numbers') - this.red._verify1(this) - return this.red.sqr(this) - } - BN.prototype.redISqr = function redISqr() { - assert(this.red, 'redISqr works only with red numbers') - this.red._verify1(this) - return this.red.isqr(this) - } - BN.prototype.redSqrt = function redSqrt() { - assert(this.red, 'redSqrt works only with red numbers') - this.red._verify1(this) - return this.red.sqrt(this) - } - BN.prototype.redInvm = function redInvm() { - assert(this.red, 'redInvm works only with red numbers') - this.red._verify1(this) - return this.red.invm(this) - } - BN.prototype.redNeg = function redNeg() { - assert(this.red, 'redNeg works only with red numbers') - this.red._verify1(this) - return this.red.neg(this) - } - BN.prototype.redPow = function redPow(num) { - assert(this.red && !num.red, 'redPow(normalNum)') - this.red._verify1(this) - return this.red.pow(this, num) - } - var primes = { k256: null, p224: null, p192: null, p25519: null } - function MPrime(name, p) { - this.name = name - this.p = new BN(p, 16) - this.n = this.p.bitLength() - this.k = new BN(1).iushln(this.n).isub(this.p) - this.tmp = this._tmp() - } - MPrime.prototype._tmp = function _tmp() { - var tmp = new BN(null) - tmp.words = new Array(Math.ceil(this.n / 13)) - return tmp - } - MPrime.prototype.ireduce = function ireduce(num) { - var r = num - var rlen - do { - this.split(r, this.tmp) - r = this.imulK(r) - r = r.iadd(this.tmp) - rlen = r.bitLength() - } while (rlen > this.n) - var cmp = rlen < this.n ? -1 : r.ucmp(this.p) - if (cmp === 0) { - r.words[0] = 0 - r.length = 1 - } else if (cmp > 0) { - r.isub(this.p) - } else { - if (r.strip !== undefined) { - r.strip() - } else { - r._strip() - } - } - return r - } - MPrime.prototype.split = function split(input, out) { - input.iushrn(this.n, 0, out) - } - MPrime.prototype.imulK = function imulK(num) { - return num.imul(this.k) - } - function K256() { - MPrime.call( - this, - 'k256', - 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f' - ) - } - inherits(K256, MPrime) - K256.prototype.split = function split(input, output) { - var mask = 4194303 - var outLen = Math.min(input.length, 9) - for (var i = 0; i < outLen; i++) { - output.words[i] = input.words[i] - } - output.length = outLen - if (input.length <= 9) { - input.words[0] = 0 - input.length = 1 - return - } - var prev = input.words[9] - output.words[output.length++] = prev & mask - for (i = 10; i < input.length; i++) { - var next = input.words[i] | 0 - input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22) - prev = next - } - prev >>>= 22 - input.words[i - 10] = prev - if (prev === 0 && input.length > 10) { - input.length -= 10 - } else { - input.length -= 9 - } - } - K256.prototype.imulK = function imulK(num) { - num.words[num.length] = 0 - num.words[num.length + 1] = 0 - num.length += 2 - var lo = 0 - for (var i = 0; i < num.length; i++) { - var w = num.words[i] | 0 - lo += w * 977 - num.words[i] = lo & 67108863 - lo = w * 64 + ((lo / 67108864) | 0) - } - if (num.words[num.length - 1] === 0) { - num.length-- - if (num.words[num.length - 1] === 0) { - num.length-- - } - } - return num - } - function P224() { - MPrime.call( - this, - 'p224', - 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001' - ) - } - inherits(P224, MPrime) - function P192() { - MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff') - } - inherits(P192, MPrime) - function P25519() { - MPrime.call( - this, - '25519', - '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed' - ) - } - inherits(P25519, MPrime) - P25519.prototype.imulK = function imulK(num) { - var carry = 0 - for (var i = 0; i < num.length; i++) { - var hi = (num.words[i] | 0) * 19 + carry - var lo = hi & 67108863 - hi >>>= 26 - num.words[i] = lo - carry = hi - } - if (carry !== 0) { - num.words[num.length++] = carry - } - return num - } - BN._prime = function prime(name) { - if (primes[name]) return primes[name] - var prime - if (name === 'k256') { - prime = new K256() - } else if (name === 'p224') { - prime = new P224() - } else if (name === 'p192') { - prime = new P192() - } else if (name === 'p25519') { - prime = new P25519() - } else { - throw new Error('Unknown prime ' + name) - } - primes[name] = prime - return prime - } - function Red(m) { - if (typeof m === 'string') { - var prime = BN._prime(m) - this.m = prime.p - this.prime = prime - } else { - assert(m.gtn(1), 'modulus must be greater than 1') - this.m = m - this.prime = null - } - } - Red.prototype._verify1 = function _verify1(a) { - assert(a.negative === 0, 'red works only with positives') - assert(a.red, 'red works only with red numbers') - } - Red.prototype._verify2 = function _verify2(a, b) { - assert((a.negative | b.negative) === 0, 'red works only with positives') - assert(a.red && a.red === b.red, 'red works only with red numbers') - } - Red.prototype.imod = function imod(a) { - if (this.prime) return this.prime.ireduce(a)._forceRed(this) - return a.umod(this.m)._forceRed(this) - } - Red.prototype.neg = function neg(a) { - if (a.isZero()) { - return a.clone() - } - return this.m.sub(a)._forceRed(this) - } - Red.prototype.add = function add(a, b) { - this._verify2(a, b) - var res = a.add(b) - if (res.cmp(this.m) >= 0) { - res.isub(this.m) - } - return res._forceRed(this) - } - Red.prototype.iadd = function iadd(a, b) { - this._verify2(a, b) - var res = a.iadd(b) - if (res.cmp(this.m) >= 0) { - res.isub(this.m) - } - return res - } - Red.prototype.sub = function sub(a, b) { - this._verify2(a, b) - var res = a.sub(b) - if (res.cmpn(0) < 0) { - res.iadd(this.m) - } - return res._forceRed(this) - } - Red.prototype.isub = function isub(a, b) { - this._verify2(a, b) - var res = a.isub(b) - if (res.cmpn(0) < 0) { - res.iadd(this.m) - } - return res - } - Red.prototype.shl = function shl(a, num) { - this._verify1(a) - return this.imod(a.ushln(num)) - } - Red.prototype.imul = function imul(a, b) { - this._verify2(a, b) - return this.imod(a.imul(b)) - } - Red.prototype.mul = function mul(a, b) { - this._verify2(a, b) - return this.imod(a.mul(b)) - } - Red.prototype.isqr = function isqr(a) { - return this.imul(a, a.clone()) - } - Red.prototype.sqr = function sqr(a) { - return this.mul(a, a) - } - Red.prototype.sqrt = function sqrt(a) { - if (a.isZero()) return a.clone() - var mod3 = this.m.andln(3) - assert(mod3 % 2 === 1) - if (mod3 === 3) { - var pow = this.m.add(new BN(1)).iushrn(2) - return this.pow(a, pow) - } - var q = this.m.subn(1) - var s = 0 - while (!q.isZero() && q.andln(1) === 0) { - s++ - q.iushrn(1) - } - assert(!q.isZero()) - var one = new BN(1).toRed(this) - var nOne = one.redNeg() - var lpow = this.m.subn(1).iushrn(1) - var z = this.m.bitLength() - z = new BN(2 * z * z).toRed(this) - while (this.pow(z, lpow).cmp(nOne) !== 0) { - z.redIAdd(nOne) - } - var c = this.pow(z, q) - var r = this.pow(a, q.addn(1).iushrn(1)) - var t = this.pow(a, q) - var m = s - while (t.cmp(one) !== 0) { - var tmp = t - for (var i = 0; tmp.cmp(one) !== 0; i++) { - tmp = tmp.redSqr() - } - assert(i < m) - var b = this.pow(c, new BN(1).iushln(m - i - 1)) - r = r.redMul(b) - c = b.redSqr() - t = t.redMul(c) - m = i - } - return r - } - Red.prototype.invm = function invm(a) { - var inv = a._invmp(this.m) - if (inv.negative !== 0) { - inv.negative = 0 - return this.imod(inv).redNeg() - } else { - return this.imod(inv) - } - } - Red.prototype.pow = function pow(a, num) { - if (num.isZero()) return new BN(1).toRed(this) - if (num.cmpn(1) === 0) return a.clone() - var windowSize = 4 - var wnd = new Array(1 << windowSize) - wnd[0] = new BN(1).toRed(this) - wnd[1] = a - for (var i = 2; i < wnd.length; i++) { - wnd[i] = this.mul(wnd[i - 1], a) - } - var res = wnd[0] - var current = 0 - var currentLen = 0 - var start = num.bitLength() % 26 - if (start === 0) { - start = 26 - } - for (i = num.length - 1; i >= 0; i--) { - var word = num.words[i] - for (var j = start - 1; j >= 0; j--) { - var bit = (word >> j) & 1 - if (res !== wnd[0]) { - res = this.sqr(res) - } - if (bit === 0 && current === 0) { - currentLen = 0 - continue - } - current <<= 1 - current |= bit - currentLen++ - if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue - res = this.mul(res, wnd[current]) - currentLen = 0 - current = 0 - } - start = 26 - } - return res - } - Red.prototype.convertTo = function convertTo(num) { - var r = num.umod(this.m) - return r === num ? r.clone() : r - } - Red.prototype.convertFrom = function convertFrom(num) { - var res = num.clone() - res.red = null - return res - } - BN.mont = function mont(num) { - return new Mont(num) - } - function Mont(m) { - Red.call(this, m) - this.shift = this.m.bitLength() - if (this.shift % 26 !== 0) { - this.shift += 26 - (this.shift % 26) - } - this.r = new BN(1).iushln(this.shift) - this.r2 = this.imod(this.r.sqr()) - this.rinv = this.r._invmp(this.m) - this.minv = this.rinv.mul(this.r).isubn(1).div(this.m) - this.minv = this.minv.umod(this.r) - this.minv = this.r.sub(this.minv) - } - inherits(Mont, Red) - Mont.prototype.convertTo = function convertTo(num) { - return this.imod(num.ushln(this.shift)) - } - Mont.prototype.convertFrom = function convertFrom(num) { - var r = this.imod(num.mul(this.rinv)) - r.red = null - return r - } - Mont.prototype.imul = function imul(a, b) { - if (a.isZero() || b.isZero()) { - a.words[0] = 0 - a.length = 1 - return a - } - var t = a.imul(b) - var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m) - var u = t.isub(c).iushrn(this.shift) - var res = u - if (u.cmp(this.m) >= 0) { - res = u.isub(this.m) - } else if (u.cmpn(0) < 0) { - res = u.iadd(this.m) - } - return res._forceRed(this) - } - Mont.prototype.mul = function mul(a, b) { - if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this) - var t = a.mul(b) - var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m) - var u = t.isub(c).iushrn(this.shift) - var res = u - if (u.cmp(this.m) >= 0) { - res = u.isub(this.m) - } else if (u.cmpn(0) < 0) { - res = u.iadd(this.m) - } - return res._forceRed(this) - } - Mont.prototype.invm = function invm(a) { - var res = this.imod(a._invmp(this.m).mul(this.r2)) - return res._forceRed(this) - } - })(typeof module === 'undefined' || module, this) - }, - { buffer: 49 } - ], - 133: [ - function (require, module, exports) { - module.exports = { - name: 'elliptic', - version: '6.5.3', - description: 'EC cryptography', - main: 'lib/elliptic.js', - files: ['lib'], - scripts: { - jscs: 'jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js', - jshint: 'jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js', - lint: 'npm run jscs && npm run jshint', - unit: 'istanbul test _mocha --reporter=spec test/index.js', - test: 'npm run lint && npm run unit', - version: 'grunt dist && git add dist/' - }, - repository: { type: 'git', url: 'git@github.com:indutny/elliptic' }, - keywords: ['EC', 'Elliptic', 'curve', 'Cryptography'], - author: 'Fedor Indutny ', - license: 'MIT', - bugs: { url: 'https://github.com/indutny/elliptic/issues' }, - homepage: 'https://github.com/indutny/elliptic', - devDependencies: { - brfs: '^1.4.3', - coveralls: '^3.0.8', - grunt: '^1.0.4', - 'grunt-browserify': '^5.0.0', - 'grunt-cli': '^1.2.0', - 'grunt-contrib-connect': '^1.0.0', - 'grunt-contrib-copy': '^1.0.0', - 'grunt-contrib-uglify': '^1.0.1', - 'grunt-mocha-istanbul': '^3.0.1', - 'grunt-saucelabs': '^9.0.1', - istanbul: '^0.4.2', - jscs: '^3.0.7', - jshint: '^2.10.3', - mocha: '^6.2.2' - }, - dependencies: { - 'bn.js': '^4.4.0', - brorand: '^1.0.1', - 'hash.js': '^1.0.0', - 'hmac-drbg': '^1.0.0', - inherits: '^2.0.1', - 'minimalistic-assert': '^1.0.0', - 'minimalistic-crypto-utils': '^1.0.0' - } - } - }, - {} - ], - 134: [ - function (require, module, exports) { - 'use strict' - var R = typeof Reflect === 'object' ? Reflect : null - var ReflectApply = - R && typeof R.apply === 'function' - ? R.apply - : function ReflectApply(target, receiver, args) { - return Function.prototype.apply.call(target, receiver, args) - } - var ReflectOwnKeys - if (R && typeof R.ownKeys === 'function') { - ReflectOwnKeys = R.ownKeys - } else if (Object.getOwnPropertySymbols) { - ReflectOwnKeys = function ReflectOwnKeys(target) { - return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target)) - } - } else { - ReflectOwnKeys = function ReflectOwnKeys(target) { - return Object.getOwnPropertyNames(target) - } - } - function ProcessEmitWarning(warning) { - if (console && console.warn) console.warn(warning) - } - var NumberIsNaN = - Number.isNaN || - function NumberIsNaN(value) { - return value !== value - } - function EventEmitter() { - EventEmitter.init.call(this) - } - module.exports = EventEmitter - module.exports.once = once - EventEmitter.EventEmitter = EventEmitter - EventEmitter.prototype._events = undefined - EventEmitter.prototype._eventsCount = 0 - EventEmitter.prototype._maxListeners = undefined - var defaultMaxListeners = 10 - function checkListener(listener) { - if (typeof listener !== 'function') { - throw new TypeError( - 'The "listener" argument must be of type Function. Received type ' + typeof listener - ) - } - } - Object.defineProperty(EventEmitter, 'defaultMaxListeners', { - enumerable: true, - get: function () { - return defaultMaxListeners - }, - set: function (arg) { - if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) { - throw new RangeError( - 'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + - arg + - '.' - ) - } - defaultMaxListeners = arg - } - }) - EventEmitter.init = function () { - if ( - this._events === undefined || - this._events === Object.getPrototypeOf(this)._events - ) { - this._events = Object.create(null) - this._eventsCount = 0 - } - this._maxListeners = this._maxListeners || undefined - } - EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) { - if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) { - throw new RangeError( - 'The value of "n" is out of range. It must be a non-negative number. Received ' + - n + - '.' - ) - } - this._maxListeners = n - return this - } - function _getMaxListeners(that) { - if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners - return that._maxListeners - } - EventEmitter.prototype.getMaxListeners = function getMaxListeners() { - return _getMaxListeners(this) - } - EventEmitter.prototype.emit = function emit(type) { - var args = [] - for (var i = 1; i < arguments.length; i++) args.push(arguments[i]) - var doError = type === 'error' - var events = this._events - if (events !== undefined) doError = doError && events.error === undefined - else if (!doError) return false - if (doError) { - var er - if (args.length > 0) er = args[0] - if (er instanceof Error) { - throw er - } - var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : '')) - err.context = er - throw err - } - var handler = events[type] - if (handler === undefined) return false - if (typeof handler === 'function') { - ReflectApply(handler, this, args) - } else { - var len = handler.length - var listeners = arrayClone(handler, len) - for (var i = 0; i < len; ++i) ReflectApply(listeners[i], this, args) - } - return true - } - function _addListener(target, type, listener, prepend) { - var m - var events - var existing - checkListener(listener) - events = target._events - if (events === undefined) { - events = target._events = Object.create(null) - target._eventsCount = 0 - } else { - if (events.newListener !== undefined) { - target.emit('newListener', type, listener.listener ? listener.listener : listener) - events = target._events - } - existing = events[type] - } - if (existing === undefined) { - existing = events[type] = listener - ++target._eventsCount - } else { - if (typeof existing === 'function') { - existing = events[type] = prepend ? [listener, existing] : [existing, listener] - } else if (prepend) { - existing.unshift(listener) - } else { - existing.push(listener) - } - m = _getMaxListeners(target) - if (m > 0 && existing.length > m && !existing.warned) { - existing.warned = true - var w = new Error( - 'Possible EventEmitter memory leak detected. ' + - existing.length + - ' ' + - String(type) + - ' listeners ' + - 'added. Use emitter.setMaxListeners() to ' + - 'increase limit' - ) - w.name = 'MaxListenersExceededWarning' - w.emitter = target - w.type = type - w.count = existing.length - ProcessEmitWarning(w) - } - } - return target - } - EventEmitter.prototype.addListener = function addListener(type, listener) { - return _addListener(this, type, listener, false) - } - EventEmitter.prototype.on = EventEmitter.prototype.addListener - EventEmitter.prototype.prependListener = function prependListener(type, listener) { - return _addListener(this, type, listener, true) - } - function onceWrapper() { - if (!this.fired) { - this.target.removeListener(this.type, this.wrapFn) - this.fired = true - if (arguments.length === 0) return this.listener.call(this.target) - return this.listener.apply(this.target, arguments) - } - } - function _onceWrap(target, type, listener) { - var state = { - fired: false, - wrapFn: undefined, - target: target, - type: type, - listener: listener - } - var wrapped = onceWrapper.bind(state) - wrapped.listener = listener - state.wrapFn = wrapped - return wrapped - } - EventEmitter.prototype.once = function once(type, listener) { - checkListener(listener) - this.on(type, _onceWrap(this, type, listener)) - return this - } - EventEmitter.prototype.prependOnceListener = function prependOnceListener( - type, - listener - ) { - checkListener(listener) - this.prependListener(type, _onceWrap(this, type, listener)) - return this - } - EventEmitter.prototype.removeListener = function removeListener(type, listener) { - var list, events, position, i, originalListener - checkListener(listener) - events = this._events - if (events === undefined) return this - list = events[type] - if (list === undefined) return this - if (list === listener || list.listener === listener) { - if (--this._eventsCount === 0) this._events = Object.create(null) - else { - delete events[type] - if (events.removeListener) - this.emit('removeListener', type, list.listener || listener) - } - } else if (typeof list !== 'function') { - position = -1 - for (i = list.length - 1; i >= 0; i--) { - if (list[i] === listener || list[i].listener === listener) { - originalListener = list[i].listener - position = i - break - } - } - if (position < 0) return this - if (position === 0) list.shift() - else { - spliceOne(list, position) - } - if (list.length === 1) events[type] = list[0] - if (events.removeListener !== undefined) - this.emit('removeListener', type, originalListener || listener) - } - return this - } - EventEmitter.prototype.off = EventEmitter.prototype.removeListener - EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) { - var listeners, events, i - events = this._events - if (events === undefined) return this - if (events.removeListener === undefined) { - if (arguments.length === 0) { - this._events = Object.create(null) - this._eventsCount = 0 - } else if (events[type] !== undefined) { - if (--this._eventsCount === 0) this._events = Object.create(null) - else delete events[type] - } - return this - } - if (arguments.length === 0) { - var keys = Object.keys(events) - var key - for (i = 0; i < keys.length; ++i) { - key = keys[i] - if (key === 'removeListener') continue - this.removeAllListeners(key) - } - this.removeAllListeners('removeListener') - this._events = Object.create(null) - this._eventsCount = 0 - return this - } - listeners = events[type] - if (typeof listeners === 'function') { - this.removeListener(type, listeners) - } else if (listeners !== undefined) { - for (i = listeners.length - 1; i >= 0; i--) { - this.removeListener(type, listeners[i]) - } - } - return this - } - function _listeners(target, type, unwrap) { - var events = target._events - if (events === undefined) return [] - var evlistener = events[type] - if (evlistener === undefined) return [] - if (typeof evlistener === 'function') - return unwrap ? [evlistener.listener || evlistener] : [evlistener] - return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length) - } - EventEmitter.prototype.listeners = function listeners(type) { - return _listeners(this, type, true) - } - EventEmitter.prototype.rawListeners = function rawListeners(type) { - return _listeners(this, type, false) - } - EventEmitter.listenerCount = function (emitter, type) { - if (typeof emitter.listenerCount === 'function') { - return emitter.listenerCount(type) - } else { - return listenerCount.call(emitter, type) - } - } - EventEmitter.prototype.listenerCount = listenerCount - function listenerCount(type) { - var events = this._events - if (events !== undefined) { - var evlistener = events[type] - if (typeof evlistener === 'function') { - return 1 - } else if (evlistener !== undefined) { - return evlistener.length - } - } - return 0 - } - EventEmitter.prototype.eventNames = function eventNames() { - return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [] - } - function arrayClone(arr, n) { - var copy = new Array(n) - for (var i = 0; i < n; ++i) copy[i] = arr[i] - return copy - } - function spliceOne(list, index) { - for (; index + 1 < list.length; index++) list[index] = list[index + 1] - list.pop() - } - function unwrapListeners(arr) { - var ret = new Array(arr.length) - for (var i = 0; i < ret.length; ++i) { - ret[i] = arr[i].listener || arr[i] - } - return ret - } - function once(emitter, name) { - return new Promise(function (resolve, reject) { - function errorListener(err) { - emitter.removeListener(name, resolver) - reject(err) - } - function resolver() { - if (typeof emitter.removeListener === 'function') { - emitter.removeListener('error', errorListener) - } - resolve([].slice.call(arguments)) - } - eventTargetAgnosticAddListener(emitter, name, resolver, { once: true }) - if (name !== 'error') { - addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true }) - } - }) - } - function addErrorHandlerIfEventEmitter(emitter, handler, flags) { - if (typeof emitter.on === 'function') { - eventTargetAgnosticAddListener(emitter, 'error', handler, flags) - } - } - function eventTargetAgnosticAddListener(emitter, name, listener, flags) { - if (typeof emitter.on === 'function') { - if (flags.once) { - emitter.once(name, listener) - } else { - emitter.on(name, listener) - } - } else if (typeof emitter.addEventListener === 'function') { - emitter.addEventListener(name, function wrapListener(arg) { - if (flags.once) { - emitter.removeEventListener(name, wrapListener) - } - listener(arg) - }) - } else { - throw new TypeError( - 'The "emitter" argument must be of type EventEmitter. Received type ' + - typeof emitter - ) - } - } - }, - {} - ], - 135: [ - function (require, module, exports) { - var Buffer = require('safe-buffer').Buffer - var MD5 = require('md5.js') - function EVP_BytesToKey(password, salt, keyBits, ivLen) { - if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary') - if (salt) { - if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary') - if (salt.length !== 8) - throw new RangeError('salt should be Buffer with 8 byte length') - } - var keyLen = keyBits / 8 - var key = Buffer.alloc(keyLen) - var iv = Buffer.alloc(ivLen || 0) - var tmp = Buffer.alloc(0) - while (keyLen > 0 || ivLen > 0) { - var hash = new MD5() - hash.update(tmp) - hash.update(password) - if (salt) hash.update(salt) - tmp = hash.digest() - var used = 0 - if (keyLen > 0) { - var keyStart = key.length - keyLen - used = Math.min(keyLen, tmp.length) - tmp.copy(key, keyStart, 0, used) - keyLen -= used - } - if (used < tmp.length && ivLen > 0) { - var ivStart = iv.length - ivLen - var length = Math.min(ivLen, tmp.length - used) - tmp.copy(iv, ivStart, used, used + length) - ivLen -= length - } - } - tmp.fill(0) - return { key: key, iv: iv } - } - module.exports = EVP_BytesToKey - }, - { 'md5.js': 155, 'safe-buffer': 183 } - ], - 136: [ - function (require, module, exports) { - 'use strict' - var Buffer = require('safe-buffer').Buffer - var Transform = require('stream').Transform - var inherits = require('inherits') - function throwIfNotStringOrBuffer(val, prefix) { - if (!Buffer.isBuffer(val) && typeof val !== 'string') { - throw new TypeError(prefix + ' must be a string or a buffer') - } - } - function HashBase(blockSize) { - Transform.call(this) - this._block = Buffer.allocUnsafe(blockSize) - this._blockSize = blockSize - this._blockOffset = 0 - this._length = [0, 0, 0, 0] - this._finalized = false - } - inherits(HashBase, Transform) - HashBase.prototype._transform = function (chunk, encoding, callback) { - var error = null - try { - this.update(chunk, encoding) - } catch (err) { - error = err - } - callback(error) - } - HashBase.prototype._flush = function (callback) { - var error = null - try { - this.push(this.digest()) - } catch (err) { - error = err - } - callback(error) - } - HashBase.prototype.update = function (data, encoding) { - throwIfNotStringOrBuffer(data, 'Data') - if (this._finalized) throw new Error('Digest already called') - if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding) - var block = this._block - var offset = 0 - while (this._blockOffset + data.length - offset >= this._blockSize) { - for (var i = this._blockOffset; i < this._blockSize; ) block[i++] = data[offset++] - this._update() - this._blockOffset = 0 - } - while (offset < data.length) block[this._blockOffset++] = data[offset++] - for (var j = 0, carry = data.length * 8; carry > 0; ++j) { - this._length[j] += carry - carry = (this._length[j] / 4294967296) | 0 - if (carry > 0) this._length[j] -= 4294967296 * carry - } - return this - } - HashBase.prototype._update = function () { - throw new Error('_update is not implemented') - } - HashBase.prototype.digest = function (encoding) { - if (this._finalized) throw new Error('Digest already called') - this._finalized = true - var digest = this._digest() - if (encoding !== undefined) digest = digest.toString(encoding) - this._block.fill(0) - this._blockOffset = 0 - for (var i = 0; i < 4; ++i) this._length[i] = 0 - return digest - } - HashBase.prototype._digest = function () { - throw new Error('_digest is not implemented') - } - module.exports = HashBase - }, - { inherits: 151, 'safe-buffer': 183, stream: 192 } - ], - 137: [ - function (require, module, exports) { - var hash = exports - hash.utils = require('./hash/utils') - hash.common = require('./hash/common') - hash.sha = require('./hash/sha') - hash.ripemd = require('./hash/ripemd') - hash.hmac = require('./hash/hmac') - hash.sha1 = hash.sha.sha1 - hash.sha256 = hash.sha.sha256 - hash.sha224 = hash.sha.sha224 - hash.sha384 = hash.sha.sha384 - hash.sha512 = hash.sha.sha512 - hash.ripemd160 = hash.ripemd.ripemd160 - }, - { - './hash/common': 138, - './hash/hmac': 139, - './hash/ripemd': 140, - './hash/sha': 141, - './hash/utils': 148 - } - ], - 138: [ - function (require, module, exports) { - 'use strict' - var utils = require('./utils') - var assert = require('minimalistic-assert') - function BlockHash() { - this.pending = null - this.pendingTotal = 0 - this.blockSize = this.constructor.blockSize - this.outSize = this.constructor.outSize - this.hmacStrength = this.constructor.hmacStrength - this.padLength = this.constructor.padLength / 8 - this.endian = 'big' - this._delta8 = this.blockSize / 8 - this._delta32 = this.blockSize / 32 - } - exports.BlockHash = BlockHash - BlockHash.prototype.update = function update(msg, enc) { - msg = utils.toArray(msg, enc) - if (!this.pending) this.pending = msg - else this.pending = this.pending.concat(msg) - this.pendingTotal += msg.length - if (this.pending.length >= this._delta8) { - msg = this.pending - var r = msg.length % this._delta8 - this.pending = msg.slice(msg.length - r, msg.length) - if (this.pending.length === 0) this.pending = null - msg = utils.join32(msg, 0, msg.length - r, this.endian) - for (var i = 0; i < msg.length; i += this._delta32) - this._update(msg, i, i + this._delta32) - } - return this - } - BlockHash.prototype.digest = function digest(enc) { - this.update(this._pad()) - assert(this.pending === null) - return this._digest(enc) - } - BlockHash.prototype._pad = function pad() { - var len = this.pendingTotal - var bytes = this._delta8 - var k = bytes - ((len + this.padLength) % bytes) - var res = new Array(k + this.padLength) - res[0] = 128 - for (var i = 1; i < k; i++) res[i] = 0 - len <<= 3 - if (this.endian === 'big') { - for (var t = 8; t < this.padLength; t++) res[i++] = 0 - res[i++] = 0 - res[i++] = 0 - res[i++] = 0 - res[i++] = 0 - res[i++] = (len >>> 24) & 255 - res[i++] = (len >>> 16) & 255 - res[i++] = (len >>> 8) & 255 - res[i++] = len & 255 - } else { - res[i++] = len & 255 - res[i++] = (len >>> 8) & 255 - res[i++] = (len >>> 16) & 255 - res[i++] = (len >>> 24) & 255 - res[i++] = 0 - res[i++] = 0 - res[i++] = 0 - res[i++] = 0 - for (t = 8; t < this.padLength; t++) res[i++] = 0 - } - return res - } - }, - { './utils': 148, 'minimalistic-assert': 158 } - ], - 139: [ - function (require, module, exports) { - 'use strict' - var utils = require('./utils') - var assert = require('minimalistic-assert') - function Hmac(hash, key, enc) { - if (!(this instanceof Hmac)) return new Hmac(hash, key, enc) - this.Hash = hash - this.blockSize = hash.blockSize / 8 - this.outSize = hash.outSize / 8 - this.inner = null - this.outer = null - this._init(utils.toArray(key, enc)) - } - module.exports = Hmac - Hmac.prototype._init = function init(key) { - if (key.length > this.blockSize) key = new this.Hash().update(key).digest() - assert(key.length <= this.blockSize) - for (var i = key.length; i < this.blockSize; i++) key.push(0) - for (i = 0; i < key.length; i++) key[i] ^= 54 - this.inner = new this.Hash().update(key) - for (i = 0; i < key.length; i++) key[i] ^= 106 - this.outer = new this.Hash().update(key) - } - Hmac.prototype.update = function update(msg, enc) { - this.inner.update(msg, enc) - return this - } - Hmac.prototype.digest = function digest(enc) { - this.outer.update(this.inner.digest()) - return this.outer.digest(enc) - } - }, - { './utils': 148, 'minimalistic-assert': 158 } - ], - 140: [ - function (require, module, exports) { - 'use strict' - var utils = require('./utils') - var common = require('./common') - var rotl32 = utils.rotl32 - var sum32 = utils.sum32 - var sum32_3 = utils.sum32_3 - var sum32_4 = utils.sum32_4 - var BlockHash = common.BlockHash - function RIPEMD160() { - if (!(this instanceof RIPEMD160)) return new RIPEMD160() - BlockHash.call(this) - this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520] - this.endian = 'little' - } - utils.inherits(RIPEMD160, BlockHash) - exports.ripemd160 = RIPEMD160 - RIPEMD160.blockSize = 512 - RIPEMD160.outSize = 160 - RIPEMD160.hmacStrength = 192 - RIPEMD160.padLength = 64 - RIPEMD160.prototype._update = function update(msg, start) { - var A = this.h[0] - var B = this.h[1] - var C = this.h[2] - var D = this.h[3] - var E = this.h[4] - var Ah = A - var Bh = B - var Ch = C - var Dh = D - var Eh = E - for (var j = 0; j < 80; j++) { - var T = sum32(rotl32(sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)), s[j]), E) - A = E - E = D - D = rotl32(C, 10) - C = B - B = T - T = sum32( - rotl32(sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)), sh[j]), - Eh - ) - Ah = Eh - Eh = Dh - Dh = rotl32(Ch, 10) - Ch = Bh - Bh = T - } - T = sum32_3(this.h[1], C, Dh) - this.h[1] = sum32_3(this.h[2], D, Eh) - this.h[2] = sum32_3(this.h[3], E, Ah) - this.h[3] = sum32_3(this.h[4], A, Bh) - this.h[4] = sum32_3(this.h[0], B, Ch) - this.h[0] = T - } - RIPEMD160.prototype._digest = function digest(enc) { - if (enc === 'hex') return utils.toHex32(this.h, 'little') - else return utils.split32(this.h, 'little') - } - function f(j, x, y, z) { - if (j <= 15) return x ^ y ^ z - else if (j <= 31) return (x & y) | (~x & z) - else if (j <= 47) return (x | ~y) ^ z - else if (j <= 63) return (x & z) | (y & ~z) - else return x ^ (y | ~z) - } - function K(j) { - if (j <= 15) return 0 - else if (j <= 31) return 1518500249 - else if (j <= 47) return 1859775393 - else if (j <= 63) return 2400959708 - else return 2840853838 - } - function Kh(j) { - if (j <= 15) return 1352829926 - else if (j <= 31) return 1548603684 - else if (j <= 47) return 1836072691 - else if (j <= 63) return 2053994217 - else return 0 - } - var r = [ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, - 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, - 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, - 15, 13 - ] - var rh = [ - 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, - 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, - 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, - 11 - ] - var s = [ - 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, - 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, - 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, - 13, 14, 11, 8, 5, 6 - ] - var sh = [ - 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, - 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, - 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, - 15, 13, 11, 11 - ] - }, - { './common': 138, './utils': 148 } - ], - 141: [ - function (require, module, exports) { - 'use strict' - exports.sha1 = require('./sha/1') - exports.sha224 = require('./sha/224') - exports.sha256 = require('./sha/256') - exports.sha384 = require('./sha/384') - exports.sha512 = require('./sha/512') - }, - { './sha/1': 142, './sha/224': 143, './sha/256': 144, './sha/384': 145, './sha/512': 146 } - ], - 142: [ - function (require, module, exports) { - 'use strict' - var utils = require('../utils') - var common = require('../common') - var shaCommon = require('./common') - var rotl32 = utils.rotl32 - var sum32 = utils.sum32 - var sum32_5 = utils.sum32_5 - var ft_1 = shaCommon.ft_1 - var BlockHash = common.BlockHash - var sha1_K = [1518500249, 1859775393, 2400959708, 3395469782] - function SHA1() { - if (!(this instanceof SHA1)) return new SHA1() - BlockHash.call(this) - this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520] - this.W = new Array(80) - } - utils.inherits(SHA1, BlockHash) - module.exports = SHA1 - SHA1.blockSize = 512 - SHA1.outSize = 160 - SHA1.hmacStrength = 80 - SHA1.padLength = 64 - SHA1.prototype._update = function _update(msg, start) { - var W = this.W - for (var i = 0; i < 16; i++) W[i] = msg[start + i] - for (; i < W.length; i++) W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1) - var a = this.h[0] - var b = this.h[1] - var c = this.h[2] - var d = this.h[3] - var e = this.h[4] - for (i = 0; i < W.length; i++) { - var s = ~~(i / 20) - var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]) - e = d - d = c - c = rotl32(b, 30) - b = a - a = t - } - this.h[0] = sum32(this.h[0], a) - this.h[1] = sum32(this.h[1], b) - this.h[2] = sum32(this.h[2], c) - this.h[3] = sum32(this.h[3], d) - this.h[4] = sum32(this.h[4], e) - } - SHA1.prototype._digest = function digest(enc) { - if (enc === 'hex') return utils.toHex32(this.h, 'big') - else return utils.split32(this.h, 'big') - } - }, - { '../common': 138, '../utils': 148, './common': 147 } - ], - 143: [ - function (require, module, exports) { - 'use strict' - var utils = require('../utils') - var SHA256 = require('./256') - function SHA224() { - if (!(this instanceof SHA224)) return new SHA224() - SHA256.call(this) - this.h = [ - 3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, - 3204075428 - ] - } - utils.inherits(SHA224, SHA256) - module.exports = SHA224 - SHA224.blockSize = 512 - SHA224.outSize = 224 - SHA224.hmacStrength = 192 - SHA224.padLength = 64 - SHA224.prototype._digest = function digest(enc) { - if (enc === 'hex') return utils.toHex32(this.h.slice(0, 7), 'big') - else return utils.split32(this.h.slice(0, 7), 'big') - } - }, - { '../utils': 148, './256': 144 } - ], - 144: [ - function (require, module, exports) { - 'use strict' - var utils = require('../utils') - var common = require('../common') - var shaCommon = require('./common') - var assert = require('minimalistic-assert') - var sum32 = utils.sum32 - var sum32_4 = utils.sum32_4 - var sum32_5 = utils.sum32_5 - var ch32 = shaCommon.ch32 - var maj32 = shaCommon.maj32 - var s0_256 = shaCommon.s0_256 - var s1_256 = shaCommon.s1_256 - var g0_256 = shaCommon.g0_256 - var g1_256 = shaCommon.g1_256 - var BlockHash = common.BlockHash - var sha256_K = [ - 1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, - 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, - 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, - 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, - 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, - 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, - 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, - 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, - 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, - 3329325298 - ] - function SHA256() { - if (!(this instanceof SHA256)) return new SHA256() - BlockHash.call(this) - this.h = [ - 1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, - 1541459225 - ] - this.k = sha256_K - this.W = new Array(64) - } - utils.inherits(SHA256, BlockHash) - module.exports = SHA256 - SHA256.blockSize = 512 - SHA256.outSize = 256 - SHA256.hmacStrength = 192 - SHA256.padLength = 64 - SHA256.prototype._update = function _update(msg, start) { - var W = this.W - for (var i = 0; i < 16; i++) W[i] = msg[start + i] - for (; i < W.length; i++) - W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]) - var a = this.h[0] - var b = this.h[1] - var c = this.h[2] - var d = this.h[3] - var e = this.h[4] - var f = this.h[5] - var g = this.h[6] - var h = this.h[7] - assert(this.k.length === W.length) - for (i = 0; i < W.length; i++) { - var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]) - var T2 = sum32(s0_256(a), maj32(a, b, c)) - h = g - g = f - f = e - e = sum32(d, T1) - d = c - c = b - b = a - a = sum32(T1, T2) - } - this.h[0] = sum32(this.h[0], a) - this.h[1] = sum32(this.h[1], b) - this.h[2] = sum32(this.h[2], c) - this.h[3] = sum32(this.h[3], d) - this.h[4] = sum32(this.h[4], e) - this.h[5] = sum32(this.h[5], f) - this.h[6] = sum32(this.h[6], g) - this.h[7] = sum32(this.h[7], h) - } - SHA256.prototype._digest = function digest(enc) { - if (enc === 'hex') return utils.toHex32(this.h, 'big') - else return utils.split32(this.h, 'big') - } - }, - { '../common': 138, '../utils': 148, './common': 147, 'minimalistic-assert': 158 } - ], - 145: [ - function (require, module, exports) { - 'use strict' - var utils = require('../utils') - var SHA512 = require('./512') - function SHA384() { - if (!(this instanceof SHA384)) return new SHA384() - SHA512.call(this) - this.h = [ - 3418070365, 3238371032, 1654270250, 914150663, 2438529370, 812702999, 355462360, - 4144912697, 1731405415, 4290775857, 2394180231, 1750603025, 3675008525, 1694076839, - 1203062813, 3204075428 - ] - } - utils.inherits(SHA384, SHA512) - module.exports = SHA384 - SHA384.blockSize = 1024 - SHA384.outSize = 384 - SHA384.hmacStrength = 192 - SHA384.padLength = 128 - SHA384.prototype._digest = function digest(enc) { - if (enc === 'hex') return utils.toHex32(this.h.slice(0, 12), 'big') - else return utils.split32(this.h.slice(0, 12), 'big') - } - }, - { '../utils': 148, './512': 146 } - ], - 146: [ - function (require, module, exports) { - 'use strict' - var utils = require('../utils') - var common = require('../common') - var assert = require('minimalistic-assert') - var rotr64_hi = utils.rotr64_hi - var rotr64_lo = utils.rotr64_lo - var shr64_hi = utils.shr64_hi - var shr64_lo = utils.shr64_lo - var sum64 = utils.sum64 - var sum64_hi = utils.sum64_hi - var sum64_lo = utils.sum64_lo - var sum64_4_hi = utils.sum64_4_hi - var sum64_4_lo = utils.sum64_4_lo - var sum64_5_hi = utils.sum64_5_hi - var sum64_5_lo = utils.sum64_5_lo - var BlockHash = common.BlockHash - var sha512_K = [ - 1116352408, 3609767458, 1899447441, 602891725, 3049323471, 3964484399, 3921009573, - 2173295548, 961987163, 4081628472, 1508970993, 3053834265, 2453635748, 2937671579, - 2870763221, 3664609560, 3624381080, 2734883394, 310598401, 1164996542, 607225278, - 1323610764, 1426881987, 3590304994, 1925078388, 4068182383, 2162078206, 991336113, - 2614888103, 633803317, 3248222580, 3479774868, 3835390401, 2666613458, 4022224774, - 944711139, 264347078, 2341262773, 604807628, 2007800933, 770255983, 1495990901, - 1249150122, 1856431235, 1555081692, 3175218132, 1996064986, 2198950837, 2554220882, - 3999719339, 2821834349, 766784016, 2952996808, 2566594879, 3210313671, 3203337956, - 3336571891, 1034457026, 3584528711, 2466948901, 113926993, 3758326383, 338241895, - 168717936, 666307205, 1188179964, 773529912, 1546045734, 1294757372, 1522805485, - 1396182291, 2643833823, 1695183700, 2343527390, 1986661051, 1014477480, 2177026350, - 1206759142, 2456956037, 344077627, 2730485921, 1290863460, 2820302411, 3158454273, - 3259730800, 3505952657, 3345764771, 106217008, 3516065817, 3606008344, 3600352804, - 1432725776, 4094571909, 1467031594, 275423344, 851169720, 430227734, 3100823752, - 506948616, 1363258195, 659060556, 3750685593, 883997877, 3785050280, 958139571, - 3318307427, 1322822218, 3812723403, 1537002063, 2003034995, 1747873779, 3602036899, - 1955562222, 1575990012, 2024104815, 1125592928, 2227730452, 2716904306, 2361852424, - 442776044, 2428436474, 593698344, 2756734187, 3733110249, 3204031479, 2999351573, - 3329325298, 3815920427, 3391569614, 3928383900, 3515267271, 566280711, 3940187606, - 3454069534, 4118630271, 4000239992, 116418474, 1914138554, 174292421, 2731055270, - 289380356, 3203993006, 460393269, 320620315, 685471733, 587496836, 852142971, - 1086792851, 1017036298, 365543100, 1126000580, 2618297676, 1288033470, 3409855158, - 1501505948, 4234509866, 1607167915, 987167468, 1816402316, 1246189591 - ] - function SHA512() { - if (!(this instanceof SHA512)) return new SHA512() - BlockHash.call(this) - this.h = [ - 1779033703, 4089235720, 3144134277, 2227873595, 1013904242, 4271175723, 2773480762, - 1595750129, 1359893119, 2917565137, 2600822924, 725511199, 528734635, 4215389547, - 1541459225, 327033209 - ] - this.k = sha512_K - this.W = new Array(160) - } - utils.inherits(SHA512, BlockHash) - module.exports = SHA512 - SHA512.blockSize = 1024 - SHA512.outSize = 512 - SHA512.hmacStrength = 192 - SHA512.padLength = 128 - SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) { - var W = this.W - for (var i = 0; i < 32; i++) W[i] = msg[start + i] - for (; i < W.length; i += 2) { - var c0_hi = g1_512_hi(W[i - 4], W[i - 3]) - var c0_lo = g1_512_lo(W[i - 4], W[i - 3]) - var c1_hi = W[i - 14] - var c1_lo = W[i - 13] - var c2_hi = g0_512_hi(W[i - 30], W[i - 29]) - var c2_lo = g0_512_lo(W[i - 30], W[i - 29]) - var c3_hi = W[i - 32] - var c3_lo = W[i - 31] - W[i] = sum64_4_hi(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo) - W[i + 1] = sum64_4_lo(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo) - } - } - SHA512.prototype._update = function _update(msg, start) { - this._prepareBlock(msg, start) - var W = this.W - var ah = this.h[0] - var al = this.h[1] - var bh = this.h[2] - var bl = this.h[3] - var ch = this.h[4] - var cl = this.h[5] - var dh = this.h[6] - var dl = this.h[7] - var eh = this.h[8] - var el = this.h[9] - var fh = this.h[10] - var fl = this.h[11] - var gh = this.h[12] - var gl = this.h[13] - var hh = this.h[14] - var hl = this.h[15] - assert(this.k.length === W.length) - for (var i = 0; i < W.length; i += 2) { - var c0_hi = hh - var c0_lo = hl - var c1_hi = s1_512_hi(eh, el) - var c1_lo = s1_512_lo(eh, el) - var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl) - var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl) - var c3_hi = this.k[i] - var c3_lo = this.k[i + 1] - var c4_hi = W[i] - var c4_lo = W[i + 1] - var T1_hi = sum64_5_hi( - c0_hi, - c0_lo, - c1_hi, - c1_lo, - c2_hi, - c2_lo, - c3_hi, - c3_lo, - c4_hi, - c4_lo - ) - var T1_lo = sum64_5_lo( - c0_hi, - c0_lo, - c1_hi, - c1_lo, - c2_hi, - c2_lo, - c3_hi, - c3_lo, - c4_hi, - c4_lo - ) - c0_hi = s0_512_hi(ah, al) - c0_lo = s0_512_lo(ah, al) - c1_hi = maj64_hi(ah, al, bh, bl, ch, cl) - c1_lo = maj64_lo(ah, al, bh, bl, ch, cl) - var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo) - var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo) - hh = gh - hl = gl - gh = fh - gl = fl - fh = eh - fl = el - eh = sum64_hi(dh, dl, T1_hi, T1_lo) - el = sum64_lo(dl, dl, T1_hi, T1_lo) - dh = ch - dl = cl - ch = bh - cl = bl - bh = ah - bl = al - ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo) - al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo) - } - sum64(this.h, 0, ah, al) - sum64(this.h, 2, bh, bl) - sum64(this.h, 4, ch, cl) - sum64(this.h, 6, dh, dl) - sum64(this.h, 8, eh, el) - sum64(this.h, 10, fh, fl) - sum64(this.h, 12, gh, gl) - sum64(this.h, 14, hh, hl) - } - SHA512.prototype._digest = function digest(enc) { - if (enc === 'hex') return utils.toHex32(this.h, 'big') - else return utils.split32(this.h, 'big') - } - function ch64_hi(xh, xl, yh, yl, zh) { - var r = (xh & yh) ^ (~xh & zh) - if (r < 0) r += 4294967296 - return r - } - function ch64_lo(xh, xl, yh, yl, zh, zl) { - var r = (xl & yl) ^ (~xl & zl) - if (r < 0) r += 4294967296 - return r - } - function maj64_hi(xh, xl, yh, yl, zh) { - var r = (xh & yh) ^ (xh & zh) ^ (yh & zh) - if (r < 0) r += 4294967296 - return r - } - function maj64_lo(xh, xl, yh, yl, zh, zl) { - var r = (xl & yl) ^ (xl & zl) ^ (yl & zl) - if (r < 0) r += 4294967296 - return r - } - function s0_512_hi(xh, xl) { - var c0_hi = rotr64_hi(xh, xl, 28) - var c1_hi = rotr64_hi(xl, xh, 2) - var c2_hi = rotr64_hi(xl, xh, 7) - var r = c0_hi ^ c1_hi ^ c2_hi - if (r < 0) r += 4294967296 - return r - } - function s0_512_lo(xh, xl) { - var c0_lo = rotr64_lo(xh, xl, 28) - var c1_lo = rotr64_lo(xl, xh, 2) - var c2_lo = rotr64_lo(xl, xh, 7) - var r = c0_lo ^ c1_lo ^ c2_lo - if (r < 0) r += 4294967296 - return r - } - function s1_512_hi(xh, xl) { - var c0_hi = rotr64_hi(xh, xl, 14) - var c1_hi = rotr64_hi(xh, xl, 18) - var c2_hi = rotr64_hi(xl, xh, 9) - var r = c0_hi ^ c1_hi ^ c2_hi - if (r < 0) r += 4294967296 - return r - } - function s1_512_lo(xh, xl) { - var c0_lo = rotr64_lo(xh, xl, 14) - var c1_lo = rotr64_lo(xh, xl, 18) - var c2_lo = rotr64_lo(xl, xh, 9) - var r = c0_lo ^ c1_lo ^ c2_lo - if (r < 0) r += 4294967296 - return r - } - function g0_512_hi(xh, xl) { - var c0_hi = rotr64_hi(xh, xl, 1) - var c1_hi = rotr64_hi(xh, xl, 8) - var c2_hi = shr64_hi(xh, xl, 7) - var r = c0_hi ^ c1_hi ^ c2_hi - if (r < 0) r += 4294967296 - return r - } - function g0_512_lo(xh, xl) { - var c0_lo = rotr64_lo(xh, xl, 1) - var c1_lo = rotr64_lo(xh, xl, 8) - var c2_lo = shr64_lo(xh, xl, 7) - var r = c0_lo ^ c1_lo ^ c2_lo - if (r < 0) r += 4294967296 - return r - } - function g1_512_hi(xh, xl) { - var c0_hi = rotr64_hi(xh, xl, 19) - var c1_hi = rotr64_hi(xl, xh, 29) - var c2_hi = shr64_hi(xh, xl, 6) - var r = c0_hi ^ c1_hi ^ c2_hi - if (r < 0) r += 4294967296 - return r - } - function g1_512_lo(xh, xl) { - var c0_lo = rotr64_lo(xh, xl, 19) - var c1_lo = rotr64_lo(xl, xh, 29) - var c2_lo = shr64_lo(xh, xl, 6) - var r = c0_lo ^ c1_lo ^ c2_lo - if (r < 0) r += 4294967296 - return r - } - }, - { '../common': 138, '../utils': 148, 'minimalistic-assert': 158 } - ], - 147: [ - function (require, module, exports) { - 'use strict' - var utils = require('../utils') - var rotr32 = utils.rotr32 - function ft_1(s, x, y, z) { - if (s === 0) return ch32(x, y, z) - if (s === 1 || s === 3) return p32(x, y, z) - if (s === 2) return maj32(x, y, z) - } - exports.ft_1 = ft_1 - function ch32(x, y, z) { - return (x & y) ^ (~x & z) - } - exports.ch32 = ch32 - function maj32(x, y, z) { - return (x & y) ^ (x & z) ^ (y & z) - } - exports.maj32 = maj32 - function p32(x, y, z) { - return x ^ y ^ z - } - exports.p32 = p32 - function s0_256(x) { - return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22) - } - exports.s0_256 = s0_256 - function s1_256(x) { - return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25) - } - exports.s1_256 = s1_256 - function g0_256(x) { - return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3) - } - exports.g0_256 = g0_256 - function g1_256(x) { - return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10) - } - exports.g1_256 = g1_256 - }, - { '../utils': 148 } - ], - 148: [ - function (require, module, exports) { - 'use strict' - var assert = require('minimalistic-assert') - var inherits = require('inherits') - exports.inherits = inherits - function isSurrogatePair(msg, i) { - if ((msg.charCodeAt(i) & 64512) !== 55296) { - return false - } - if (i < 0 || i + 1 >= msg.length) { - return false - } - return (msg.charCodeAt(i + 1) & 64512) === 56320 - } - function toArray(msg, enc) { - if (Array.isArray(msg)) return msg.slice() - if (!msg) return [] - var res = [] - if (typeof msg === 'string') { - if (!enc) { - var p = 0 - for (var i = 0; i < msg.length; i++) { - var c = msg.charCodeAt(i) - if (c < 128) { - res[p++] = c - } else if (c < 2048) { - res[p++] = (c >> 6) | 192 - res[p++] = (c & 63) | 128 - } else if (isSurrogatePair(msg, i)) { - c = 65536 + ((c & 1023) << 10) + (msg.charCodeAt(++i) & 1023) - res[p++] = (c >> 18) | 240 - res[p++] = ((c >> 12) & 63) | 128 - res[p++] = ((c >> 6) & 63) | 128 - res[p++] = (c & 63) | 128 - } else { - res[p++] = (c >> 12) | 224 - res[p++] = ((c >> 6) & 63) | 128 - res[p++] = (c & 63) | 128 - } - } - } else if (enc === 'hex') { - msg = msg.replace(/[^a-z0-9]+/gi, '') - if (msg.length % 2 !== 0) msg = '0' + msg - for (i = 0; i < msg.length; i += 2) res.push(parseInt(msg[i] + msg[i + 1], 16)) - } - } else { - for (i = 0; i < msg.length; i++) res[i] = msg[i] | 0 - } - return res - } - exports.toArray = toArray - function toHex(msg) { - var res = '' - for (var i = 0; i < msg.length; i++) res += zero2(msg[i].toString(16)) - return res - } - exports.toHex = toHex - function htonl(w) { - var res = (w >>> 24) | ((w >>> 8) & 65280) | ((w << 8) & 16711680) | ((w & 255) << 24) - return res >>> 0 - } - exports.htonl = htonl - function toHex32(msg, endian) { - var res = '' - for (var i = 0; i < msg.length; i++) { - var w = msg[i] - if (endian === 'little') w = htonl(w) - res += zero8(w.toString(16)) - } - return res - } - exports.toHex32 = toHex32 - function zero2(word) { - if (word.length === 1) return '0' + word - else return word - } - exports.zero2 = zero2 - function zero8(word) { - if (word.length === 7) return '0' + word - else if (word.length === 6) return '00' + word - else if (word.length === 5) return '000' + word - else if (word.length === 4) return '0000' + word - else if (word.length === 3) return '00000' + word - else if (word.length === 2) return '000000' + word - else if (word.length === 1) return '0000000' + word - else return word - } - exports.zero8 = zero8 - function join32(msg, start, end, endian) { - var len = end - start - assert(len % 4 === 0) - var res = new Array(len / 4) - for (var i = 0, k = start; i < res.length; i++, k += 4) { - var w - if (endian === 'big') - w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3] - else w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k] - res[i] = w >>> 0 - } - return res - } - exports.join32 = join32 - function split32(msg, endian) { - var res = new Array(msg.length * 4) - for (var i = 0, k = 0; i < msg.length; i++, k += 4) { - var m = msg[i] - if (endian === 'big') { - res[k] = m >>> 24 - res[k + 1] = (m >>> 16) & 255 - res[k + 2] = (m >>> 8) & 255 - res[k + 3] = m & 255 - } else { - res[k + 3] = m >>> 24 - res[k + 2] = (m >>> 16) & 255 - res[k + 1] = (m >>> 8) & 255 - res[k] = m & 255 - } - } - return res - } - exports.split32 = split32 - function rotr32(w, b) { - return (w >>> b) | (w << (32 - b)) - } - exports.rotr32 = rotr32 - function rotl32(w, b) { - return (w << b) | (w >>> (32 - b)) - } - exports.rotl32 = rotl32 - function sum32(a, b) { - return (a + b) >>> 0 - } - exports.sum32 = sum32 - function sum32_3(a, b, c) { - return (a + b + c) >>> 0 - } - exports.sum32_3 = sum32_3 - function sum32_4(a, b, c, d) { - return (a + b + c + d) >>> 0 - } - exports.sum32_4 = sum32_4 - function sum32_5(a, b, c, d, e) { - return (a + b + c + d + e) >>> 0 - } - exports.sum32_5 = sum32_5 - function sum64(buf, pos, ah, al) { - var bh = buf[pos] - var bl = buf[pos + 1] - var lo = (al + bl) >>> 0 - var hi = (lo < al ? 1 : 0) + ah + bh - buf[pos] = hi >>> 0 - buf[pos + 1] = lo - } - exports.sum64 = sum64 - function sum64_hi(ah, al, bh, bl) { - var lo = (al + bl) >>> 0 - var hi = (lo < al ? 1 : 0) + ah + bh - return hi >>> 0 - } - exports.sum64_hi = sum64_hi - function sum64_lo(ah, al, bh, bl) { - var lo = al + bl - return lo >>> 0 - } - exports.sum64_lo = sum64_lo - function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) { - var carry = 0 - var lo = al - lo = (lo + bl) >>> 0 - carry += lo < al ? 1 : 0 - lo = (lo + cl) >>> 0 - carry += lo < cl ? 1 : 0 - lo = (lo + dl) >>> 0 - carry += lo < dl ? 1 : 0 - var hi = ah + bh + ch + dh + carry - return hi >>> 0 - } - exports.sum64_4_hi = sum64_4_hi - function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) { - var lo = al + bl + cl + dl - return lo >>> 0 - } - exports.sum64_4_lo = sum64_4_lo - function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) { - var carry = 0 - var lo = al - lo = (lo + bl) >>> 0 - carry += lo < al ? 1 : 0 - lo = (lo + cl) >>> 0 - carry += lo < cl ? 1 : 0 - lo = (lo + dl) >>> 0 - carry += lo < dl ? 1 : 0 - lo = (lo + el) >>> 0 - carry += lo < el ? 1 : 0 - var hi = ah + bh + ch + dh + eh + carry - return hi >>> 0 - } - exports.sum64_5_hi = sum64_5_hi - function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) { - var lo = al + bl + cl + dl + el - return lo >>> 0 - } - exports.sum64_5_lo = sum64_5_lo - function rotr64_hi(ah, al, num) { - var r = (al << (32 - num)) | (ah >>> num) - return r >>> 0 - } - exports.rotr64_hi = rotr64_hi - function rotr64_lo(ah, al, num) { - var r = (ah << (32 - num)) | (al >>> num) - return r >>> 0 - } - exports.rotr64_lo = rotr64_lo - function shr64_hi(ah, al, num) { - return ah >>> num - } - exports.shr64_hi = shr64_hi - function shr64_lo(ah, al, num) { - var r = (ah << (32 - num)) | (al >>> num) - return r >>> 0 - } - exports.shr64_lo = shr64_lo - }, - { inherits: 151, 'minimalistic-assert': 158 } - ], - 149: [ - function (require, module, exports) { - 'use strict' - var hash = require('hash.js') - var utils = require('minimalistic-crypto-utils') - var assert = require('minimalistic-assert') - function HmacDRBG(options) { - if (!(this instanceof HmacDRBG)) return new HmacDRBG(options) - this.hash = options.hash - this.predResist = !!options.predResist - this.outLen = this.hash.outSize - this.minEntropy = options.minEntropy || this.hash.hmacStrength - this._reseed = null - this.reseedInterval = null - this.K = null - this.V = null - var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex') - var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex') - var pers = utils.toArray(options.pers, options.persEnc || 'hex') - assert( - entropy.length >= this.minEntropy / 8, - 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits' - ) - this._init(entropy, nonce, pers) - } - module.exports = HmacDRBG - HmacDRBG.prototype._init = function init(entropy, nonce, pers) { - var seed = entropy.concat(nonce).concat(pers) - this.K = new Array(this.outLen / 8) - this.V = new Array(this.outLen / 8) - for (var i = 0; i < this.V.length; i++) { - this.K[i] = 0 - this.V[i] = 1 - } - this._update(seed) - this._reseed = 1 - this.reseedInterval = 281474976710656 - } - HmacDRBG.prototype._hmac = function hmac() { - return new hash.hmac(this.hash, this.K) - } - HmacDRBG.prototype._update = function update(seed) { - var kmac = this._hmac().update(this.V).update([0]) - if (seed) kmac = kmac.update(seed) - this.K = kmac.digest() - this.V = this._hmac().update(this.V).digest() - if (!seed) return - this.K = this._hmac().update(this.V).update([1]).update(seed).digest() - this.V = this._hmac().update(this.V).digest() - } - HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) { - if (typeof entropyEnc !== 'string') { - addEnc = add - add = entropyEnc - entropyEnc = null - } - entropy = utils.toArray(entropy, entropyEnc) - add = utils.toArray(add, addEnc) - assert( - entropy.length >= this.minEntropy / 8, - 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits' - ) - this._update(entropy.concat(add || [])) - this._reseed = 1 - } - HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) { - if (this._reseed > this.reseedInterval) throw new Error('Reseed is required') - if (typeof enc !== 'string') { - addEnc = add - add = enc - enc = null - } - if (add) { - add = utils.toArray(add, addEnc || 'hex') - this._update(add) - } - var temp = [] - while (temp.length < len) { - this.V = this._hmac().update(this.V).digest() - temp = temp.concat(this.V) - } - var res = temp.slice(0, len) - this._update(add) - this._reseed++ - return utils.encode(res, enc) - } - }, - { 'hash.js': 137, 'minimalistic-assert': 158, 'minimalistic-crypto-utils': 159 } - ], - 150: [ - function (require, module, exports) { - exports.read = function (buffer, offset, isLE, mLen, nBytes) { - var e, m - var eLen = nBytes * 8 - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var nBits = -7 - var i = isLE ? nBytes - 1 : 0 - var d = isLE ? -1 : 1 - var s = buffer[offset + i] - i += d - e = s & ((1 << -nBits) - 1) - s >>= -nBits - nBits += eLen - for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} - m = e & ((1 << -nBits) - 1) - e >>= -nBits - nBits += mLen - for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} - if (e === 0) { - e = 1 - eBias - } else if (e === eMax) { - return m ? NaN : (s ? -1 : 1) * Infinity - } else { - m = m + Math.pow(2, mLen) - e = e - eBias - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen) - } - exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { - var e, m, c - var eLen = nBytes * 8 - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0 - var i = isLE ? 0 : nBytes - 1 - var d = isLE ? 1 : -1 - var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 - value = Math.abs(value) - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0 - e = eMax - } else { - e = Math.floor(Math.log(value) / Math.LN2) - if (value * (c = Math.pow(2, -e)) < 1) { - e-- - c *= 2 - } - if (e + eBias >= 1) { - value += rt / c - } else { - value += rt * Math.pow(2, 1 - eBias) - } - if (value * c >= 2) { - e++ - c /= 2 - } - if (e + eBias >= eMax) { - m = 0 - e = eMax - } else if (e + eBias >= 1) { - m = (value * c - 1) * Math.pow(2, mLen) - e = e + eBias - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) - e = 0 - } - } - for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {} - e = (e << mLen) | m - eLen += mLen - for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {} - buffer[offset + i - d] |= s * 128 - } - }, - {} - ], - 151: [ - function (require, module, exports) { - if (typeof Object.create === 'function') { - module.exports = function inherits(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }) - } - } - } else { - module.exports = function inherits(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } - } - } - }, - {} - ], - 152: [ - function (require, module, exports) { - module.exports = function (obj) { - return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) - } - function isBuffer(obj) { - return ( - !!obj.constructor && - typeof obj.constructor.isBuffer === 'function' && - obj.constructor.isBuffer(obj) - ) - } - function isSlowBuffer(obj) { - return ( - typeof obj.readFloatLE === 'function' && - typeof obj.slice === 'function' && - isBuffer(obj.slice(0, 0)) - ) - } - }, - {} - ], - 153: [ - function (require, module, exports) { - !(function (e) { - function r(e, r) { - 'use strict' - var t, - a = r.ready.then(function () { - function a() { - if (0 !== t._sodium_init()) - throw new Error('libsodium was not correctly initialized.') - for ( - var r = [ - 'crypto_aead_chacha20poly1305_decrypt', - 'crypto_aead_chacha20poly1305_decrypt_detached', - 'crypto_aead_chacha20poly1305_encrypt', - 'crypto_aead_chacha20poly1305_encrypt_detached', - 'crypto_aead_chacha20poly1305_ietf_decrypt', - 'crypto_aead_chacha20poly1305_ietf_decrypt_detached', - 'crypto_aead_chacha20poly1305_ietf_encrypt', - 'crypto_aead_chacha20poly1305_ietf_encrypt_detached', - 'crypto_aead_chacha20poly1305_ietf_keygen', - 'crypto_aead_chacha20poly1305_keygen', - 'crypto_aead_xchacha20poly1305_ietf_decrypt', - 'crypto_aead_xchacha20poly1305_ietf_decrypt_detached', - 'crypto_aead_xchacha20poly1305_ietf_encrypt', - 'crypto_aead_xchacha20poly1305_ietf_encrypt_detached', - 'crypto_aead_xchacha20poly1305_ietf_keygen', - 'crypto_auth', - 'crypto_auth_hmacsha256', - 'crypto_auth_hmacsha256_keygen', - 'crypto_auth_hmacsha256_verify', - 'crypto_auth_hmacsha512', - 'crypto_auth_hmacsha512_keygen', - 'crypto_auth_hmacsha512_verify', - 'crypto_auth_keygen', - 'crypto_auth_verify', - 'crypto_box_beforenm', - 'crypto_box_curve25519xchacha20poly1305_keypair', - 'crypto_box_curve25519xchacha20poly1305_seal', - 'crypto_box_curve25519xchacha20poly1305_seal_open', - 'crypto_box_detached', - 'crypto_box_easy', - 'crypto_box_easy_afternm', - 'crypto_box_keypair', - 'crypto_box_open_detached', - 'crypto_box_open_easy', - 'crypto_box_open_easy_afternm', - 'crypto_box_seal', - 'crypto_box_seal_open', - 'crypto_box_seed_keypair', - 'crypto_core_ed25519_add', - 'crypto_core_ed25519_from_hash', - 'crypto_core_ed25519_from_uniform', - 'crypto_core_ed25519_is_valid_point', - 'crypto_core_ed25519_random', - 'crypto_core_ed25519_scalar_add', - 'crypto_core_ed25519_scalar_complement', - 'crypto_core_ed25519_scalar_invert', - 'crypto_core_ed25519_scalar_mul', - 'crypto_core_ed25519_scalar_negate', - 'crypto_core_ed25519_scalar_random', - 'crypto_core_ed25519_scalar_reduce', - 'crypto_core_ed25519_scalar_sub', - 'crypto_core_ed25519_sub', - 'crypto_core_ristretto255_add', - 'crypto_core_ristretto255_from_hash', - 'crypto_core_ristretto255_is_valid_point', - 'crypto_core_ristretto255_random', - 'crypto_core_ristretto255_scalar_add', - 'crypto_core_ristretto255_scalar_complement', - 'crypto_core_ristretto255_scalar_invert', - 'crypto_core_ristretto255_scalar_mul', - 'crypto_core_ristretto255_scalar_negate', - 'crypto_core_ristretto255_scalar_random', - 'crypto_core_ristretto255_scalar_reduce', - 'crypto_core_ristretto255_scalar_sub', - 'crypto_core_ristretto255_sub', - 'crypto_generichash', - 'crypto_generichash_blake2b_salt_personal', - 'crypto_generichash_final', - 'crypto_generichash_init', - 'crypto_generichash_keygen', - 'crypto_generichash_update', - 'crypto_hash', - 'crypto_hash_sha256', - 'crypto_hash_sha256_final', - 'crypto_hash_sha256_init', - 'crypto_hash_sha256_update', - 'crypto_hash_sha512', - 'crypto_hash_sha512_final', - 'crypto_hash_sha512_init', - 'crypto_hash_sha512_update', - 'crypto_kdf_derive_from_key', - 'crypto_kdf_keygen', - 'crypto_kx_client_session_keys', - 'crypto_kx_keypair', - 'crypto_kx_seed_keypair', - 'crypto_kx_server_session_keys', - 'crypto_onetimeauth', - 'crypto_onetimeauth_final', - 'crypto_onetimeauth_init', - 'crypto_onetimeauth_keygen', - 'crypto_onetimeauth_update', - 'crypto_onetimeauth_verify', - 'crypto_pwhash', - 'crypto_pwhash_scryptsalsa208sha256', - 'crypto_pwhash_scryptsalsa208sha256_ll', - 'crypto_pwhash_scryptsalsa208sha256_str', - 'crypto_pwhash_scryptsalsa208sha256_str_verify', - 'crypto_pwhash_str', - 'crypto_pwhash_str_needs_rehash', - 'crypto_pwhash_str_verify', - 'crypto_scalarmult', - 'crypto_scalarmult_base', - 'crypto_scalarmult_ed25519', - 'crypto_scalarmult_ed25519_base', - 'crypto_scalarmult_ed25519_base_noclamp', - 'crypto_scalarmult_ed25519_noclamp', - 'crypto_scalarmult_ristretto255', - 'crypto_scalarmult_ristretto255_base', - 'crypto_secretbox_detached', - 'crypto_secretbox_easy', - 'crypto_secretbox_keygen', - 'crypto_secretbox_open_detached', - 'crypto_secretbox_open_easy', - 'crypto_secretstream_xchacha20poly1305_init_pull', - 'crypto_secretstream_xchacha20poly1305_init_push', - 'crypto_secretstream_xchacha20poly1305_keygen', - 'crypto_secretstream_xchacha20poly1305_pull', - 'crypto_secretstream_xchacha20poly1305_push', - 'crypto_secretstream_xchacha20poly1305_rekey', - 'crypto_shorthash', - 'crypto_shorthash_keygen', - 'crypto_shorthash_siphashx24', - 'crypto_sign', - 'crypto_sign_detached', - 'crypto_sign_ed25519_pk_to_curve25519', - 'crypto_sign_ed25519_sk_to_curve25519', - 'crypto_sign_ed25519_sk_to_pk', - 'crypto_sign_ed25519_sk_to_seed', - 'crypto_sign_final_create', - 'crypto_sign_final_verify', - 'crypto_sign_init', - 'crypto_sign_keypair', - 'crypto_sign_open', - 'crypto_sign_seed_keypair', - 'crypto_sign_update', - 'crypto_sign_verify_detached', - 'crypto_stream_chacha20', - 'crypto_stream_chacha20_ietf_xor', - 'crypto_stream_chacha20_ietf_xor_ic', - 'crypto_stream_chacha20_keygen', - 'crypto_stream_chacha20_xor', - 'crypto_stream_chacha20_xor_ic', - 'crypto_stream_keygen', - 'crypto_stream_xchacha20_keygen', - 'crypto_stream_xchacha20_xor', - 'crypto_stream_xchacha20_xor_ic', - 'randombytes_buf', - 'randombytes_buf_deterministic', - 'randombytes_close', - 'randombytes_random', - 'randombytes_set_implementation', - 'randombytes_stir', - 'randombytes_uniform', - 'sodium_version_string' - ], - a = [ - E, - x, - k, - S, - T, - w, - Y, - B, - A, - K, - M, - I, - N, - L, - U, - O, - C, - R, - P, - G, - X, - D, - F, - V, - H, - q, - j, - z, - W, - J, - Q, - Z, - $, - ee, - re, - te, - ae, - _e, - se, - ne, - ce, - oe, - he, - pe, - ye, - ie, - le, - ue, - de, - ve, - ge, - be, - fe, - me, - Ee, - xe, - ke, - Se, - Te, - we, - Ye, - Be, - Ae, - Ke, - Me, - Ie, - Ne, - Le, - Ue, - Oe, - Ce, - Re, - Pe, - Ge, - Xe, - De, - Fe, - Ve, - He, - qe, - je, - ze, - We, - Je, - Qe, - Ze, - $e, - er, - rr, - tr, - ar, - _r, - sr, - nr, - cr, - or, - hr, - pr, - yr, - ir, - lr, - ur, - dr, - vr, - gr, - br, - fr, - mr, - Er, - xr, - kr, - Sr, - Tr, - wr, - Yr, - Br, - Ar, - Kr, - Mr, - Ir, - Nr, - Lr, - Ur, - Or, - Cr, - Rr, - Pr, - Gr, - Xr, - Dr, - Fr, - Vr, - Hr, - qr, - jr, - zr, - Wr, - Jr, - Qr, - Zr, - $r, - et, - rt, - tt, - at, - _t, - st, - nt, - ct, - ot, - ht, - pt, - yt, - it - ], - _ = 0; - _ < a.length; - _++ - ) - 'function' == typeof t['_' + r[_]] && (e[r[_]] = a[_]) - var s = [ - 'SODIUM_LIBRARY_VERSION_MAJOR', - 'SODIUM_LIBRARY_VERSION_MINOR', - 'crypto_aead_chacha20poly1305_ABYTES', - 'crypto_aead_chacha20poly1305_IETF_ABYTES', - 'crypto_aead_chacha20poly1305_IETF_KEYBYTES', - 'crypto_aead_chacha20poly1305_IETF_MESSAGEBYTES_MAX', - 'crypto_aead_chacha20poly1305_IETF_NPUBBYTES', - 'crypto_aead_chacha20poly1305_IETF_NSECBYTES', - 'crypto_aead_chacha20poly1305_KEYBYTES', - 'crypto_aead_chacha20poly1305_MESSAGEBYTES_MAX', - 'crypto_aead_chacha20poly1305_NPUBBYTES', - 'crypto_aead_chacha20poly1305_NSECBYTES', - 'crypto_aead_chacha20poly1305_ietf_ABYTES', - 'crypto_aead_chacha20poly1305_ietf_KEYBYTES', - 'crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX', - 'crypto_aead_chacha20poly1305_ietf_NPUBBYTES', - 'crypto_aead_chacha20poly1305_ietf_NSECBYTES', - 'crypto_aead_xchacha20poly1305_IETF_ABYTES', - 'crypto_aead_xchacha20poly1305_IETF_KEYBYTES', - 'crypto_aead_xchacha20poly1305_IETF_MESSAGEBYTES_MAX', - 'crypto_aead_xchacha20poly1305_IETF_NPUBBYTES', - 'crypto_aead_xchacha20poly1305_IETF_NSECBYTES', - 'crypto_aead_xchacha20poly1305_ietf_ABYTES', - 'crypto_aead_xchacha20poly1305_ietf_KEYBYTES', - 'crypto_aead_xchacha20poly1305_ietf_MESSAGEBYTES_MAX', - 'crypto_aead_xchacha20poly1305_ietf_NPUBBYTES', - 'crypto_aead_xchacha20poly1305_ietf_NSECBYTES', - 'crypto_auth_BYTES', - 'crypto_auth_KEYBYTES', - 'crypto_auth_hmacsha256_BYTES', - 'crypto_auth_hmacsha256_KEYBYTES', - 'crypto_auth_hmacsha512256_BYTES', - 'crypto_auth_hmacsha512256_KEYBYTES', - 'crypto_auth_hmacsha512_BYTES', - 'crypto_auth_hmacsha512_KEYBYTES', - 'crypto_box_BEFORENMBYTES', - 'crypto_box_MACBYTES', - 'crypto_box_MESSAGEBYTES_MAX', - 'crypto_box_NONCEBYTES', - 'crypto_box_PUBLICKEYBYTES', - 'crypto_box_SEALBYTES', - 'crypto_box_SECRETKEYBYTES', - 'crypto_box_SEEDBYTES', - 'crypto_box_curve25519xchacha20poly1305_BEFORENMBYTES', - 'crypto_box_curve25519xchacha20poly1305_MACBYTES', - 'crypto_box_curve25519xchacha20poly1305_MESSAGEBYTES_MAX', - 'crypto_box_curve25519xchacha20poly1305_NONCEBYTES', - 'crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES', - 'crypto_box_curve25519xchacha20poly1305_SEALBYTES', - 'crypto_box_curve25519xchacha20poly1305_SECRETKEYBYTES', - 'crypto_box_curve25519xchacha20poly1305_SEEDBYTES', - 'crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES', - 'crypto_box_curve25519xsalsa20poly1305_MACBYTES', - 'crypto_box_curve25519xsalsa20poly1305_MESSAGEBYTES_MAX', - 'crypto_box_curve25519xsalsa20poly1305_NONCEBYTES', - 'crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES', - 'crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES', - 'crypto_box_curve25519xsalsa20poly1305_SEEDBYTES', - 'crypto_core_ed25519_BYTES', - 'crypto_core_ed25519_HASHBYTES', - 'crypto_core_ed25519_NONREDUCEDSCALARBYTES', - 'crypto_core_ed25519_SCALARBYTES', - 'crypto_core_ed25519_UNIFORMBYTES', - 'crypto_core_hchacha20_CONSTBYTES', - 'crypto_core_hchacha20_INPUTBYTES', - 'crypto_core_hchacha20_KEYBYTES', - 'crypto_core_hchacha20_OUTPUTBYTES', - 'crypto_core_hsalsa20_CONSTBYTES', - 'crypto_core_hsalsa20_INPUTBYTES', - 'crypto_core_hsalsa20_KEYBYTES', - 'crypto_core_hsalsa20_OUTPUTBYTES', - 'crypto_core_ristretto255_BYTES', - 'crypto_core_ristretto255_HASHBYTES', - 'crypto_core_ristretto255_NONREDUCEDSCALARBYTES', - 'crypto_core_ristretto255_SCALARBYTES', - 'crypto_core_salsa2012_CONSTBYTES', - 'crypto_core_salsa2012_INPUTBYTES', - 'crypto_core_salsa2012_KEYBYTES', - 'crypto_core_salsa2012_OUTPUTBYTES', - 'crypto_core_salsa20_CONSTBYTES', - 'crypto_core_salsa20_INPUTBYTES', - 'crypto_core_salsa20_KEYBYTES', - 'crypto_core_salsa20_OUTPUTBYTES', - 'crypto_generichash_BYTES', - 'crypto_generichash_BYTES_MAX', - 'crypto_generichash_BYTES_MIN', - 'crypto_generichash_KEYBYTES', - 'crypto_generichash_KEYBYTES_MAX', - 'crypto_generichash_KEYBYTES_MIN', - 'crypto_generichash_blake2b_BYTES', - 'crypto_generichash_blake2b_BYTES_MAX', - 'crypto_generichash_blake2b_BYTES_MIN', - 'crypto_generichash_blake2b_KEYBYTES', - 'crypto_generichash_blake2b_KEYBYTES_MAX', - 'crypto_generichash_blake2b_KEYBYTES_MIN', - 'crypto_generichash_blake2b_PERSONALBYTES', - 'crypto_generichash_blake2b_SALTBYTES', - 'crypto_hash_BYTES', - 'crypto_hash_sha256_BYTES', - 'crypto_hash_sha512_BYTES', - 'crypto_kdf_BYTES_MAX', - 'crypto_kdf_BYTES_MIN', - 'crypto_kdf_CONTEXTBYTES', - 'crypto_kdf_KEYBYTES', - 'crypto_kdf_blake2b_BYTES_MAX', - 'crypto_kdf_blake2b_BYTES_MIN', - 'crypto_kdf_blake2b_CONTEXTBYTES', - 'crypto_kdf_blake2b_KEYBYTES', - 'crypto_kx_PUBLICKEYBYTES', - 'crypto_kx_SECRETKEYBYTES', - 'crypto_kx_SEEDBYTES', - 'crypto_kx_SESSIONKEYBYTES', - 'crypto_onetimeauth_BYTES', - 'crypto_onetimeauth_KEYBYTES', - 'crypto_onetimeauth_poly1305_BYTES', - 'crypto_onetimeauth_poly1305_KEYBYTES', - 'crypto_pwhash_ALG_ARGON2I13', - 'crypto_pwhash_ALG_ARGON2ID13', - 'crypto_pwhash_ALG_DEFAULT', - 'crypto_pwhash_BYTES_MAX', - 'crypto_pwhash_BYTES_MIN', - 'crypto_pwhash_MEMLIMIT_INTERACTIVE', - 'crypto_pwhash_MEMLIMIT_MAX', - 'crypto_pwhash_MEMLIMIT_MIN', - 'crypto_pwhash_MEMLIMIT_MODERATE', - 'crypto_pwhash_MEMLIMIT_SENSITIVE', - 'crypto_pwhash_OPSLIMIT_INTERACTIVE', - 'crypto_pwhash_OPSLIMIT_MAX', - 'crypto_pwhash_OPSLIMIT_MIN', - 'crypto_pwhash_OPSLIMIT_MODERATE', - 'crypto_pwhash_OPSLIMIT_SENSITIVE', - 'crypto_pwhash_PASSWD_MAX', - 'crypto_pwhash_PASSWD_MIN', - 'crypto_pwhash_SALTBYTES', - 'crypto_pwhash_STRBYTES', - 'crypto_pwhash_argon2i_BYTES_MAX', - 'crypto_pwhash_argon2i_BYTES_MIN', - 'crypto_pwhash_argon2i_SALTBYTES', - 'crypto_pwhash_argon2i_STRBYTES', - 'crypto_pwhash_argon2id_BYTES_MAX', - 'crypto_pwhash_argon2id_BYTES_MIN', - 'crypto_pwhash_argon2id_SALTBYTES', - 'crypto_pwhash_argon2id_STRBYTES', - 'crypto_pwhash_scryptsalsa208sha256_BYTES_MAX', - 'crypto_pwhash_scryptsalsa208sha256_BYTES_MIN', - 'crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE', - 'crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MAX', - 'crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MIN', - 'crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_SENSITIVE', - 'crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE', - 'crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MAX', - 'crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MIN', - 'crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_SENSITIVE', - 'crypto_pwhash_scryptsalsa208sha256_SALTBYTES', - 'crypto_pwhash_scryptsalsa208sha256_STRBYTES', - 'crypto_scalarmult_BYTES', - 'crypto_scalarmult_SCALARBYTES', - 'crypto_scalarmult_curve25519_BYTES', - 'crypto_scalarmult_curve25519_SCALARBYTES', - 'crypto_scalarmult_ed25519_BYTES', - 'crypto_scalarmult_ed25519_SCALARBYTES', - 'crypto_scalarmult_ristretto255_BYTES', - 'crypto_scalarmult_ristretto255_SCALARBYTES', - 'crypto_secretbox_KEYBYTES', - 'crypto_secretbox_MACBYTES', - 'crypto_secretbox_MESSAGEBYTES_MAX', - 'crypto_secretbox_NONCEBYTES', - 'crypto_secretbox_xchacha20poly1305_KEYBYTES', - 'crypto_secretbox_xchacha20poly1305_MACBYTES', - 'crypto_secretbox_xchacha20poly1305_MESSAGEBYTES_MAX', - 'crypto_secretbox_xchacha20poly1305_NONCEBYTES', - 'crypto_secretbox_xsalsa20poly1305_KEYBYTES', - 'crypto_secretbox_xsalsa20poly1305_MACBYTES', - 'crypto_secretbox_xsalsa20poly1305_MESSAGEBYTES_MAX', - 'crypto_secretbox_xsalsa20poly1305_NONCEBYTES', - 'crypto_secretstream_xchacha20poly1305_ABYTES', - 'crypto_secretstream_xchacha20poly1305_HEADERBYTES', - 'crypto_secretstream_xchacha20poly1305_KEYBYTES', - 'crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX', - 'crypto_secretstream_xchacha20poly1305_TAG_FINAL', - 'crypto_secretstream_xchacha20poly1305_TAG_MESSAGE', - 'crypto_secretstream_xchacha20poly1305_TAG_PUSH', - 'crypto_secretstream_xchacha20poly1305_TAG_REKEY', - 'crypto_shorthash_BYTES', - 'crypto_shorthash_KEYBYTES', - 'crypto_shorthash_siphash24_BYTES', - 'crypto_shorthash_siphash24_KEYBYTES', - 'crypto_shorthash_siphashx24_BYTES', - 'crypto_shorthash_siphashx24_KEYBYTES', - 'crypto_sign_BYTES', - 'crypto_sign_MESSAGEBYTES_MAX', - 'crypto_sign_PUBLICKEYBYTES', - 'crypto_sign_SECRETKEYBYTES', - 'crypto_sign_SEEDBYTES', - 'crypto_sign_ed25519_BYTES', - 'crypto_sign_ed25519_MESSAGEBYTES_MAX', - 'crypto_sign_ed25519_PUBLICKEYBYTES', - 'crypto_sign_ed25519_SECRETKEYBYTES', - 'crypto_sign_ed25519_SEEDBYTES', - 'crypto_stream_KEYBYTES', - 'crypto_stream_MESSAGEBYTES_MAX', - 'crypto_stream_NONCEBYTES', - 'crypto_stream_chacha20_IETF_KEYBYTES', - 'crypto_stream_chacha20_IETF_MESSAGEBYTES_MAX', - 'crypto_stream_chacha20_IETF_NONCEBYTES', - 'crypto_stream_chacha20_KEYBYTES', - 'crypto_stream_chacha20_MESSAGEBYTES_MAX', - 'crypto_stream_chacha20_NONCEBYTES', - 'crypto_stream_chacha20_ietf_KEYBYTES', - 'crypto_stream_chacha20_ietf_MESSAGEBYTES_MAX', - 'crypto_stream_chacha20_ietf_NONCEBYTES', - 'crypto_stream_salsa2012_KEYBYTES', - 'crypto_stream_salsa2012_MESSAGEBYTES_MAX', - 'crypto_stream_salsa2012_NONCEBYTES', - 'crypto_stream_salsa208_KEYBYTES', - 'crypto_stream_salsa208_MESSAGEBYTES_MAX', - 'crypto_stream_salsa208_NONCEBYTES', - 'crypto_stream_salsa20_KEYBYTES', - 'crypto_stream_salsa20_MESSAGEBYTES_MAX', - 'crypto_stream_salsa20_NONCEBYTES', - 'crypto_stream_xchacha20_KEYBYTES', - 'crypto_stream_xchacha20_MESSAGEBYTES_MAX', - 'crypto_stream_xchacha20_NONCEBYTES', - 'crypto_stream_xsalsa20_KEYBYTES', - 'crypto_stream_xsalsa20_MESSAGEBYTES_MAX', - 'crypto_stream_xsalsa20_NONCEBYTES', - 'crypto_verify_16_BYTES', - 'crypto_verify_32_BYTES', - 'crypto_verify_64_BYTES' - ] - for (_ = 0; _ < s.length; _++) - 'function' == typeof (c = t['_' + s[_].toLowerCase()]) && (e[s[_]] = c()) - var n = [ - 'SODIUM_VERSION_STRING', - 'crypto_pwhash_STRPREFIX', - 'crypto_pwhash_scryptsalsa208sha256_STRPREFIX' - ] - for (_ = 0; _ < n.length; _++) { - var c - 'function' == typeof (c = t['_' + n[_].toLowerCase()]) && - (e[n[_]] = t.UTF8ToString(c())) - } - } - t = r - try { - a() - var _ = new Uint8Array([98, 97, 108, 108, 115]), - s = e.randombytes_buf(e.crypto_secretbox_NONCEBYTES), - n = e.randombytes_buf(e.crypto_secretbox_KEYBYTES), - c = e.crypto_secretbox_easy(_, s, n), - o = e.crypto_secretbox_open_easy(c, s, n) - if (e.memcmp(_, o)) return - } catch (e) { - if (null == t.useBackupModule) - throw new Error('Both wasm and asm failed to load' + e) - } - t.useBackupModule(), a() - }) - function _(e) { - if ('function' == typeof TextEncoder) return new TextEncoder().encode(e) - e = unescape(encodeURIComponent(e)) - for (var r = new Uint8Array(e.length), t = 0, a = e.length; t < a; t++) - r[t] = e.charCodeAt(t) - return r - } - function s(e) { - if ('function' == typeof TextDecoder) - return new TextDecoder('utf-8', { fatal: !0 }).decode(e) - var r = 8192, - t = Math.ceil(e.length / r) - if (t <= 1) - try { - return decodeURIComponent(escape(String.fromCharCode.apply(null, e))) - } catch (e) { - throw new TypeError('The encoded data was not valid.') - } - for (var a = '', _ = 0, n = 0; n < t; n++) { - var c = Array.prototype.slice.call(e, n * r + _, (n + 1) * r + _) - if (0 != c.length) { - var o, - h = c.length, - p = 0 - do { - var y = c[--h] - y >= 240 - ? ((p = 4), (o = !0)) - : y >= 224 - ? ((p = 3), (o = !0)) - : y >= 192 - ? ((p = 2), (o = !0)) - : y < 128 && ((p = 1), (o = !0)) - } while (!o) - for (var i = p - (c.length - h), l = 0; l < i; l++) _--, c.pop() - a += s(c) - } - } - return a - } - function n(e) { - e = m(null, e, 'input') - for (var r, t, a, _ = '', s = 0; s < e.length; s++) - (a = - ((87 + (t = 15 & e[s]) + (((t - 10) >> 8) & -39)) << 8) | - (87 + (r = e[s] >>> 4) + (((r - 10) >> 8) & -39))), - (_ += String.fromCharCode(255 & a) + String.fromCharCode(a >>> 8)) - return _ - } - var c = { ORIGINAL: 1, ORIGINAL_NO_PADDING: 3, URLSAFE: 5, URLSAFE_NO_PADDING: 7 } - function o(e) { - if (null == e) return c.URLSAFE_NO_PADDING - if ( - e !== c.ORIGINAL && - e !== c.ORIGINAL_NO_PADDING && - e !== c.URLSAFE && - e != c.URLSAFE_NO_PADDING - ) - throw new Error('unsupported base64 variant') - return e - } - function h(e, r) { - ;(r = o(r)), (e = m(_, e, 'input')) - var a, - _ = [], - n = 0 | Math.floor(e.length / 3), - c = e.length - 3 * n, - h = 4 * n + (0 !== c ? (0 == (2 & r) ? 4 : 2 + (c >>> 1)) : 0), - p = new l(h + 1), - y = u(e) - return ( - _.push(y), - _.push(p.address), - 0 === t._sodium_bin2base64(p.address, p.length, y, e.length, r) && - g(_, 'conversion failed'), - (p.length = h), - (a = s(p.to_Uint8Array())), - v(_), - a - ) - } - function p(e, r) { - var t = r || 'uint8array' - if (!y(t)) throw new Error(t + ' output format is not available') - if (e instanceof l) { - if ('uint8array' === t) return e.to_Uint8Array() - if ('text' === t) return s(e.to_Uint8Array()) - if ('hex' === t) return n(e.to_Uint8Array()) - if ('base64' === t) return h(e.to_Uint8Array(), c.URLSAFE_NO_PADDING) - throw new Error('What is output format "' + t + '"?') - } - if ('object' == typeof e) { - for (var a = Object.keys(e), _ = {}, o = 0; o < a.length; o++) - _[a[o]] = p(e[a[o]], t) - return _ - } - if ('string' == typeof e) return e - throw new TypeError('Cannot format output') - } - function y(e) { - for (var r = ['uint8array', 'text', 'hex', 'base64'], t = 0; t < r.length; t++) - if (r[t] === e) return !0 - return !1 - } - function i(e) { - if (e) { - if ('string' != typeof e) - throw new TypeError('When defined, the output format must be a string') - if (!y(e)) throw new Error(e + ' is not a supported output format') - } - } - function l(e) { - ;(this.length = e), (this.address = d(e)) - } - function u(e) { - var r = d(e.length) - return t.HEAPU8.set(e, r), r - } - function d(e) { - var r = t._malloc(e) - if (0 === r) throw { message: '_malloc() failed', length: e } - return r - } - function v(e) { - if (e) for (var r = 0; r < e.length; r++) (a = e[r]), t._free(a) - var a - } - function g(e, r) { - throw (v(e), new Error(r)) - } - function b(e, r) { - throw (v(e), new TypeError(r)) - } - function f(e, r, t) { - null == r && b(e, t + ' cannot be null or undefined') - } - function m(e, r, t) { - return ( - f(e, r, t), - r instanceof Uint8Array - ? r - : 'string' == typeof r - ? _(r) - : void b(e, 'unsupported input type for ' + t) - ) - } - function E(e, r, a, _, s, n) { - var c = [] - i(n) - var o = null - null != e && ((o = u((e = m(c, e, 'secret_nonce')))), e.length, c.push(o)), - (r = m(c, r, 'ciphertext')) - var h, - y = t._crypto_aead_chacha20poly1305_abytes(), - d = r.length - d < y && b(c, 'ciphertext is too short'), (h = u(r)), c.push(h) - var f = null, - E = 0 - null != a && ((f = u((a = m(c, a, 'additional_data')))), (E = a.length), c.push(f)), - (_ = m(c, _, 'public_nonce')) - var x, - k = 0 | t._crypto_aead_chacha20poly1305_npubbytes() - _.length !== k && b(c, 'invalid public_nonce length'), - (x = u(_)), - c.push(x), - (s = m(c, s, 'key')) - var S, - T = 0 | t._crypto_aead_chacha20poly1305_keybytes() - s.length !== T && b(c, 'invalid key length'), (S = u(s)), c.push(S) - var w = new l((d - t._crypto_aead_chacha20poly1305_abytes()) | 0), - Y = w.address - if ( - (c.push(Y), - 0 === t._crypto_aead_chacha20poly1305_decrypt(Y, null, o, h, d, 0, f, E, 0, x, S)) - ) { - var B = p(w, n) - return v(c), B - } - g(c, 'ciphertext cannot be decrypted using that key') - } - function x(e, r, a, _, s, n, c) { - var o = [] - i(c) - var h = null - null != e && ((h = u((e = m(o, e, 'secret_nonce')))), e.length, o.push(h)) - var y = u((r = m(o, r, 'ciphertext'))), - d = r.length - o.push(y), (a = m(o, a, 'mac')) - var f, - E = 0 | t._crypto_box_macbytes() - a.length !== E && b(o, 'invalid mac length'), (f = u(a)), o.push(f) - var x = null, - k = 0 - null != _ && ((x = u((_ = m(o, _, 'additional_data')))), (k = _.length), o.push(x)), - (s = m(o, s, 'public_nonce')) - var S, - T = 0 | t._crypto_aead_chacha20poly1305_npubbytes() - s.length !== T && b(o, 'invalid public_nonce length'), - (S = u(s)), - o.push(S), - (n = m(o, n, 'key')) - var w, - Y = 0 | t._crypto_aead_chacha20poly1305_keybytes() - n.length !== Y && b(o, 'invalid key length'), (w = u(n)), o.push(w) - var B = new l(0 | d), - A = B.address - if ( - (o.push(A), - 0 === - t._crypto_aead_chacha20poly1305_decrypt_detached( - A, - h, - y, - d, - 0, - f, - x, - k, - 0, - S, - w - )) - ) { - var K = p(B, c) - return v(o), K - } - g(o, 'ciphertext cannot be decrypted using that key') - } - function k(e, r, a, _, s, n) { - var c = [] - i(n) - var o = u((e = m(c, e, 'message'))), - h = e.length - c.push(o) - var y = null, - d = 0 - null != r && ((y = u((r = m(c, r, 'additional_data')))), (d = r.length), c.push(y)) - var f = null - null != a && ((f = u((a = m(c, a, 'secret_nonce')))), a.length, c.push(f)), - (_ = m(c, _, 'public_nonce')) - var E, - x = 0 | t._crypto_aead_chacha20poly1305_npubbytes() - _.length !== x && b(c, 'invalid public_nonce length'), - (E = u(_)), - c.push(E), - (s = m(c, s, 'key')) - var k, - S = 0 | t._crypto_aead_chacha20poly1305_keybytes() - s.length !== S && b(c, 'invalid key length'), (k = u(s)), c.push(k) - var T = new l((h + t._crypto_aead_chacha20poly1305_abytes()) | 0), - w = T.address - if ( - (c.push(w), - 0 === t._crypto_aead_chacha20poly1305_encrypt(w, null, o, h, 0, y, d, 0, f, E, k)) - ) { - var Y = p(T, n) - return v(c), Y - } - g(c, 'invalid usage') - } - function S(e, r, a, _, s, n) { - var c = [] - i(n) - var o = u((e = m(c, e, 'message'))), - h = e.length - c.push(o) - var y = null, - d = 0 - null != r && ((y = u((r = m(c, r, 'additional_data')))), (d = r.length), c.push(y)) - var f = null - null != a && ((f = u((a = m(c, a, 'secret_nonce')))), a.length, c.push(f)), - (_ = m(c, _, 'public_nonce')) - var E, - x = 0 | t._crypto_aead_chacha20poly1305_npubbytes() - _.length !== x && b(c, 'invalid public_nonce length'), - (E = u(_)), - c.push(E), - (s = m(c, s, 'key')) - var k, - S = 0 | t._crypto_aead_chacha20poly1305_keybytes() - s.length !== S && b(c, 'invalid key length'), (k = u(s)), c.push(k) - var T = new l(0 | h), - w = T.address - c.push(w) - var Y = new l(0 | t._crypto_aead_chacha20poly1305_abytes()), - B = Y.address - if ( - (c.push(B), - 0 === - t._crypto_aead_chacha20poly1305_encrypt_detached( - w, - B, - null, - o, - h, - 0, - y, - d, - 0, - f, - E, - k - )) - ) { - var A = p({ ciphertext: T, mac: Y }, n) - return v(c), A - } - g(c, 'invalid usage') - } - function T(e, r, a, _, s, n) { - var c = [] - i(n) - var o = null - null != e && ((o = u((e = m(c, e, 'secret_nonce')))), e.length, c.push(o)), - (r = m(c, r, 'ciphertext')) - var h, - y = t._crypto_aead_chacha20poly1305_ietf_abytes(), - d = r.length - d < y && b(c, 'ciphertext is too short'), (h = u(r)), c.push(h) - var f = null, - E = 0 - null != a && ((f = u((a = m(c, a, 'additional_data')))), (E = a.length), c.push(f)), - (_ = m(c, _, 'public_nonce')) - var x, - k = 0 | t._crypto_aead_chacha20poly1305_ietf_npubbytes() - _.length !== k && b(c, 'invalid public_nonce length'), - (x = u(_)), - c.push(x), - (s = m(c, s, 'key')) - var S, - T = 0 | t._crypto_aead_chacha20poly1305_ietf_keybytes() - s.length !== T && b(c, 'invalid key length'), (S = u(s)), c.push(S) - var w = new l((d - t._crypto_aead_chacha20poly1305_ietf_abytes()) | 0), - Y = w.address - if ( - (c.push(Y), - 0 === - t._crypto_aead_chacha20poly1305_ietf_decrypt( - Y, - null, - o, - h, - d, - 0, - f, - E, - 0, - x, - S - )) - ) { - var B = p(w, n) - return v(c), B - } - g(c, 'ciphertext cannot be decrypted using that key') - } - function w(e, r, a, _, s, n, c) { - var o = [] - i(c) - var h = null - null != e && ((h = u((e = m(o, e, 'secret_nonce')))), e.length, o.push(h)) - var y = u((r = m(o, r, 'ciphertext'))), - d = r.length - o.push(y), (a = m(o, a, 'mac')) - var f, - E = 0 | t._crypto_box_macbytes() - a.length !== E && b(o, 'invalid mac length'), (f = u(a)), o.push(f) - var x = null, - k = 0 - null != _ && ((x = u((_ = m(o, _, 'additional_data')))), (k = _.length), o.push(x)), - (s = m(o, s, 'public_nonce')) - var S, - T = 0 | t._crypto_aead_chacha20poly1305_ietf_npubbytes() - s.length !== T && b(o, 'invalid public_nonce length'), - (S = u(s)), - o.push(S), - (n = m(o, n, 'key')) - var w, - Y = 0 | t._crypto_aead_chacha20poly1305_ietf_keybytes() - n.length !== Y && b(o, 'invalid key length'), (w = u(n)), o.push(w) - var B = new l(0 | d), - A = B.address - if ( - (o.push(A), - 0 === - t._crypto_aead_chacha20poly1305_ietf_decrypt_detached( - A, - h, - y, - d, - 0, - f, - x, - k, - 0, - S, - w - )) - ) { - var K = p(B, c) - return v(o), K - } - g(o, 'ciphertext cannot be decrypted using that key') - } - function Y(e, r, a, _, s, n) { - var c = [] - i(n) - var o = u((e = m(c, e, 'message'))), - h = e.length - c.push(o) - var y = null, - d = 0 - null != r && ((y = u((r = m(c, r, 'additional_data')))), (d = r.length), c.push(y)) - var f = null - null != a && ((f = u((a = m(c, a, 'secret_nonce')))), a.length, c.push(f)), - (_ = m(c, _, 'public_nonce')) - var E, - x = 0 | t._crypto_aead_chacha20poly1305_ietf_npubbytes() - _.length !== x && b(c, 'invalid public_nonce length'), - (E = u(_)), - c.push(E), - (s = m(c, s, 'key')) - var k, - S = 0 | t._crypto_aead_chacha20poly1305_ietf_keybytes() - s.length !== S && b(c, 'invalid key length'), (k = u(s)), c.push(k) - var T = new l((h + t._crypto_aead_chacha20poly1305_ietf_abytes()) | 0), - w = T.address - if ( - (c.push(w), - 0 === - t._crypto_aead_chacha20poly1305_ietf_encrypt( - w, - null, - o, - h, - 0, - y, - d, - 0, - f, - E, - k - )) - ) { - var Y = p(T, n) - return v(c), Y - } - g(c, 'invalid usage') - } - function B(e, r, a, _, s, n) { - var c = [] - i(n) - var o = u((e = m(c, e, 'message'))), - h = e.length - c.push(o) - var y = null, - d = 0 - null != r && ((y = u((r = m(c, r, 'additional_data')))), (d = r.length), c.push(y)) - var f = null - null != a && ((f = u((a = m(c, a, 'secret_nonce')))), a.length, c.push(f)), - (_ = m(c, _, 'public_nonce')) - var E, - x = 0 | t._crypto_aead_chacha20poly1305_ietf_npubbytes() - _.length !== x && b(c, 'invalid public_nonce length'), - (E = u(_)), - c.push(E), - (s = m(c, s, 'key')) - var k, - S = 0 | t._crypto_aead_chacha20poly1305_ietf_keybytes() - s.length !== S && b(c, 'invalid key length'), (k = u(s)), c.push(k) - var T = new l(0 | h), - w = T.address - c.push(w) - var Y = new l(0 | t._crypto_aead_chacha20poly1305_ietf_abytes()), - B = Y.address - if ( - (c.push(B), - 0 === - t._crypto_aead_chacha20poly1305_ietf_encrypt_detached( - w, - B, - null, - o, - h, - 0, - y, - d, - 0, - f, - E, - k - )) - ) { - var A = p({ ciphertext: T, mac: Y }, n) - return v(c), A - } - g(c, 'invalid usage') - } - function A(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_aead_chacha20poly1305_ietf_keybytes()), - _ = a.address - r.push(_), t._crypto_aead_chacha20poly1305_ietf_keygen(_) - var s = p(a, e) - return v(r), s - } - function K(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_aead_chacha20poly1305_keybytes()), - _ = a.address - r.push(_), t._crypto_aead_chacha20poly1305_keygen(_) - var s = p(a, e) - return v(r), s - } - function M(e, r, a, _, s, n) { - var c = [] - i(n) - var o = null - null != e && ((o = u((e = m(c, e, 'secret_nonce')))), e.length, c.push(o)), - (r = m(c, r, 'ciphertext')) - var h, - y = t._crypto_aead_xchacha20poly1305_ietf_abytes(), - d = r.length - d < y && b(c, 'ciphertext is too short'), (h = u(r)), c.push(h) - var f = null, - E = 0 - null != a && ((f = u((a = m(c, a, 'additional_data')))), (E = a.length), c.push(f)), - (_ = m(c, _, 'public_nonce')) - var x, - k = 0 | t._crypto_aead_xchacha20poly1305_ietf_npubbytes() - _.length !== k && b(c, 'invalid public_nonce length'), - (x = u(_)), - c.push(x), - (s = m(c, s, 'key')) - var S, - T = 0 | t._crypto_aead_xchacha20poly1305_ietf_keybytes() - s.length !== T && b(c, 'invalid key length'), (S = u(s)), c.push(S) - var w = new l((d - t._crypto_aead_xchacha20poly1305_ietf_abytes()) | 0), - Y = w.address - if ( - (c.push(Y), - 0 === - t._crypto_aead_xchacha20poly1305_ietf_decrypt( - Y, - null, - o, - h, - d, - 0, - f, - E, - 0, - x, - S - )) - ) { - var B = p(w, n) - return v(c), B - } - g(c, 'ciphertext cannot be decrypted using that key') - } - function I(e, r, a, _, s, n, c) { - var o = [] - i(c) - var h = null - null != e && ((h = u((e = m(o, e, 'secret_nonce')))), e.length, o.push(h)) - var y = u((r = m(o, r, 'ciphertext'))), - d = r.length - o.push(y), (a = m(o, a, 'mac')) - var f, - E = 0 | t._crypto_box_macbytes() - a.length !== E && b(o, 'invalid mac length'), (f = u(a)), o.push(f) - var x = null, - k = 0 - null != _ && ((x = u((_ = m(o, _, 'additional_data')))), (k = _.length), o.push(x)), - (s = m(o, s, 'public_nonce')) - var S, - T = 0 | t._crypto_aead_xchacha20poly1305_ietf_npubbytes() - s.length !== T && b(o, 'invalid public_nonce length'), - (S = u(s)), - o.push(S), - (n = m(o, n, 'key')) - var w, - Y = 0 | t._crypto_aead_xchacha20poly1305_ietf_keybytes() - n.length !== Y && b(o, 'invalid key length'), (w = u(n)), o.push(w) - var B = new l(0 | d), - A = B.address - if ( - (o.push(A), - 0 === - t._crypto_aead_xchacha20poly1305_ietf_decrypt_detached( - A, - h, - y, - d, - 0, - f, - x, - k, - 0, - S, - w - )) - ) { - var K = p(B, c) - return v(o), K - } - g(o, 'ciphertext cannot be decrypted using that key') - } - function N(e, r, a, _, s, n) { - var c = [] - i(n) - var o = u((e = m(c, e, 'message'))), - h = e.length - c.push(o) - var y = null, - d = 0 - null != r && ((y = u((r = m(c, r, 'additional_data')))), (d = r.length), c.push(y)) - var f = null - null != a && ((f = u((a = m(c, a, 'secret_nonce')))), a.length, c.push(f)), - (_ = m(c, _, 'public_nonce')) - var E, - x = 0 | t._crypto_aead_xchacha20poly1305_ietf_npubbytes() - _.length !== x && b(c, 'invalid public_nonce length'), - (E = u(_)), - c.push(E), - (s = m(c, s, 'key')) - var k, - S = 0 | t._crypto_aead_xchacha20poly1305_ietf_keybytes() - s.length !== S && b(c, 'invalid key length'), (k = u(s)), c.push(k) - var T = new l((h + t._crypto_aead_xchacha20poly1305_ietf_abytes()) | 0), - w = T.address - if ( - (c.push(w), - 0 === - t._crypto_aead_xchacha20poly1305_ietf_encrypt( - w, - null, - o, - h, - 0, - y, - d, - 0, - f, - E, - k - )) - ) { - var Y = p(T, n) - return v(c), Y - } - g(c, 'invalid usage') - } - function L(e, r, a, _, s, n) { - var c = [] - i(n) - var o = u((e = m(c, e, 'message'))), - h = e.length - c.push(o) - var y = null, - d = 0 - null != r && ((y = u((r = m(c, r, 'additional_data')))), (d = r.length), c.push(y)) - var f = null - null != a && ((f = u((a = m(c, a, 'secret_nonce')))), a.length, c.push(f)), - (_ = m(c, _, 'public_nonce')) - var E, - x = 0 | t._crypto_aead_xchacha20poly1305_ietf_npubbytes() - _.length !== x && b(c, 'invalid public_nonce length'), - (E = u(_)), - c.push(E), - (s = m(c, s, 'key')) - var k, - S = 0 | t._crypto_aead_xchacha20poly1305_ietf_keybytes() - s.length !== S && b(c, 'invalid key length'), (k = u(s)), c.push(k) - var T = new l(0 | h), - w = T.address - c.push(w) - var Y = new l(0 | t._crypto_aead_xchacha20poly1305_ietf_abytes()), - B = Y.address - if ( - (c.push(B), - 0 === - t._crypto_aead_xchacha20poly1305_ietf_encrypt_detached( - w, - B, - null, - o, - h, - 0, - y, - d, - 0, - f, - E, - k - )) - ) { - var A = p({ ciphertext: T, mac: Y }, n) - return v(c), A - } - g(c, 'invalid usage') - } - function U(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_aead_xchacha20poly1305_ietf_keybytes()), - _ = a.address - r.push(_), t._crypto_aead_xchacha20poly1305_ietf_keygen(_) - var s = p(a, e) - return v(r), s - } - function O(e, r, a) { - var _ = [] - i(a) - var s = u((e = m(_, e, 'message'))), - n = e.length - _.push(s), (r = m(_, r, 'key')) - var c, - o = 0 | t._crypto_auth_keybytes() - r.length !== o && b(_, 'invalid key length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_auth_bytes()), - y = h.address - if ((_.push(y), 0 == (0 | t._crypto_auth(y, s, n, 0, c)))) { - var d = p(h, a) - return v(_), d - } - g(_, 'invalid usage') - } - function C(e, r, a) { - var _ = [] - i(a) - var s = u((e = m(_, e, 'message'))), - n = e.length - _.push(s), (r = m(_, r, 'key')) - var c, - o = 0 | t._crypto_auth_hmacsha256_keybytes() - r.length !== o && b(_, 'invalid key length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_auth_hmacsha256_bytes()), - y = h.address - if ((_.push(y), 0 == (0 | t._crypto_auth_hmacsha256(y, s, n, 0, c)))) { - var d = p(h, a) - return v(_), d - } - g(_, 'invalid usage') - } - function R(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_auth_hmacsha256_keybytes()), - _ = a.address - r.push(_), t._crypto_auth_hmacsha256_keygen(_) - var s = p(a, e) - return v(r), s - } - function P(e, r, a) { - var _ = [] - e = m(_, e, 'tag') - var s, - n = 0 | t._crypto_auth_hmacsha256_bytes() - e.length !== n && b(_, 'invalid tag length'), (s = u(e)), _.push(s) - var c = u((r = m(_, r, 'message'))), - o = r.length - _.push(c), (a = m(_, a, 'key')) - var h, - p = 0 | t._crypto_auth_hmacsha256_keybytes() - a.length !== p && b(_, 'invalid key length'), (h = u(a)), _.push(h) - var y = 0 == (0 | t._crypto_auth_hmacsha256_verify(s, c, o, 0, h)) - return v(_), y - } - function G(e, r, a) { - var _ = [] - i(a) - var s = u((e = m(_, e, 'message'))), - n = e.length - _.push(s), (r = m(_, r, 'key')) - var c, - o = 0 | t._crypto_auth_hmacsha512_keybytes() - r.length !== o && b(_, 'invalid key length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_auth_hmacsha512_bytes()), - y = h.address - if ((_.push(y), 0 == (0 | t._crypto_auth_hmacsha512(y, s, n, 0, c)))) { - var d = p(h, a) - return v(_), d - } - g(_, 'invalid usage') - } - function X(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_auth_hmacsha512_keybytes()), - _ = a.address - r.push(_), t._crypto_auth_hmacsha512_keygen(_) - var s = p(a, e) - return v(r), s - } - function D(e, r, a) { - var _ = [] - e = m(_, e, 'tag') - var s, - n = 0 | t._crypto_auth_hmacsha512_bytes() - e.length !== n && b(_, 'invalid tag length'), (s = u(e)), _.push(s) - var c = u((r = m(_, r, 'message'))), - o = r.length - _.push(c), (a = m(_, a, 'key')) - var h, - p = 0 | t._crypto_auth_hmacsha512_keybytes() - a.length !== p && b(_, 'invalid key length'), (h = u(a)), _.push(h) - var y = 0 == (0 | t._crypto_auth_hmacsha512_verify(s, c, o, 0, h)) - return v(_), y - } - function F(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_auth_keybytes()), - _ = a.address - r.push(_), t._crypto_auth_keygen(_) - var s = p(a, e) - return v(r), s - } - function V(e, r, a) { - var _ = [] - e = m(_, e, 'tag') - var s, - n = 0 | t._crypto_auth_bytes() - e.length !== n && b(_, 'invalid tag length'), (s = u(e)), _.push(s) - var c = u((r = m(_, r, 'message'))), - o = r.length - _.push(c), (a = m(_, a, 'key')) - var h, - p = 0 | t._crypto_auth_keybytes() - a.length !== p && b(_, 'invalid key length'), (h = u(a)), _.push(h) - var y = 0 == (0 | t._crypto_auth_verify(s, c, o, 0, h)) - return v(_), y - } - function H(e, r, a) { - var _ = [] - i(a), (e = m(_, e, 'publicKey')) - var s, - n = 0 | t._crypto_box_publickeybytes() - e.length !== n && b(_, 'invalid publicKey length'), - (s = u(e)), - _.push(s), - (r = m(_, r, 'privateKey')) - var c, - o = 0 | t._crypto_box_secretkeybytes() - r.length !== o && b(_, 'invalid privateKey length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_box_beforenmbytes()), - y = h.address - if ((_.push(y), 0 == (0 | t._crypto_box_beforenm(y, s, c)))) { - var d = p(h, a) - return v(_), d - } - g(_, 'invalid usage') - } - function q(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_box_curve25519xchacha20poly1305_publickeybytes()), - _ = a.address - r.push(_) - var s = new l(0 | t._crypto_box_curve25519xchacha20poly1305_secretkeybytes()), - n = s.address - r.push(n), t._crypto_box_curve25519xchacha20poly1305_keypair(_, n) - var c = p({ publicKey: a, privateKey: s, keyType: 'curve25519' }, e) - return v(r), c - } - function j(e, r, a) { - var _ = [] - i(a) - var s = u((e = m(_, e, 'message'))), - n = e.length - _.push(s), (r = m(_, r, 'publicKey')) - var c, - o = 0 | t._crypto_box_curve25519xchacha20poly1305_publickeybytes() - r.length !== o && b(_, 'invalid publicKey length'), (c = u(r)), _.push(c) - var h = new l((n + t._crypto_box_curve25519xchacha20poly1305_sealbytes()) | 0), - y = h.address - _.push(y), t._crypto_box_curve25519xchacha20poly1305_seal(y, s, n, 0, c) - var d = p(h, a) - return v(_), d - } - function z(e, r, a, _) { - var s = [] - i(_), (e = m(s, e, 'ciphertext')) - var n, - c = t._crypto_box_curve25519xchacha20poly1305_sealbytes(), - o = e.length - o < c && b(s, 'ciphertext is too short'), - (n = u(e)), - s.push(n), - (r = m(s, r, 'publicKey')) - var h, - y = 0 | t._crypto_box_curve25519xchacha20poly1305_publickeybytes() - r.length !== y && b(s, 'invalid publicKey length'), - (h = u(r)), - s.push(h), - (a = m(s, a, 'secretKey')) - var d, - g = 0 | t._crypto_box_curve25519xchacha20poly1305_secretkeybytes() - a.length !== g && b(s, 'invalid secretKey length'), (d = u(a)), s.push(d) - var f = new l((o - t._crypto_box_curve25519xchacha20poly1305_sealbytes()) | 0), - E = f.address - s.push(E), t._crypto_box_curve25519xchacha20poly1305_seal_open(E, n, o, 0, h, d) - var x = p(f, _) - return v(s), x - } - function W(e, r, a, _, s) { - var n = [] - i(s) - var c = u((e = m(n, e, 'message'))), - o = e.length - n.push(c), (r = m(n, r, 'nonce')) - var h, - y = 0 | t._crypto_box_noncebytes() - r.length !== y && b(n, 'invalid nonce length'), - (h = u(r)), - n.push(h), - (a = m(n, a, 'publicKey')) - var d, - f = 0 | t._crypto_box_publickeybytes() - a.length !== f && b(n, 'invalid publicKey length'), - (d = u(a)), - n.push(d), - (_ = m(n, _, 'privateKey')) - var E, - x = 0 | t._crypto_box_secretkeybytes() - _.length !== x && b(n, 'invalid privateKey length'), (E = u(_)), n.push(E) - var k = new l(0 | o), - S = k.address - n.push(S) - var T = new l(0 | t._crypto_box_macbytes()), - w = T.address - if ((n.push(w), 0 == (0 | t._crypto_box_detached(S, w, c, o, 0, h, d, E)))) { - var Y = p({ ciphertext: k, mac: T }, s) - return v(n), Y - } - g(n, 'invalid usage') - } - function J(e, r, a, _, s) { - var n = [] - i(s) - var c = u((e = m(n, e, 'message'))), - o = e.length - n.push(c), (r = m(n, r, 'nonce')) - var h, - y = 0 | t._crypto_box_noncebytes() - r.length !== y && b(n, 'invalid nonce length'), - (h = u(r)), - n.push(h), - (a = m(n, a, 'publicKey')) - var d, - f = 0 | t._crypto_box_publickeybytes() - a.length !== f && b(n, 'invalid publicKey length'), - (d = u(a)), - n.push(d), - (_ = m(n, _, 'privateKey')) - var E, - x = 0 | t._crypto_box_secretkeybytes() - _.length !== x && b(n, 'invalid privateKey length'), (E = u(_)), n.push(E) - var k = new l((o + t._crypto_box_macbytes()) | 0), - S = k.address - if ((n.push(S), 0 == (0 | t._crypto_box_easy(S, c, o, 0, h, d, E)))) { - var T = p(k, s) - return v(n), T - } - g(n, 'invalid usage') - } - function Q(e, r, a, _) { - var s = [] - i(_) - var n = u((e = m(s, e, 'message'))), - c = e.length - s.push(n), (r = m(s, r, 'nonce')) - var o, - h = 0 | t._crypto_box_noncebytes() - r.length !== h && b(s, 'invalid nonce length'), - (o = u(r)), - s.push(o), - (a = m(s, a, 'sharedKey')) - var y, - d = 0 | t._crypto_box_beforenmbytes() - a.length !== d && b(s, 'invalid sharedKey length'), (y = u(a)), s.push(y) - var f = new l((c + t._crypto_box_macbytes()) | 0), - E = f.address - if ((s.push(E), 0 == (0 | t._crypto_box_easy_afternm(E, n, c, 0, o, y)))) { - var x = p(f, _) - return v(s), x - } - g(s, 'invalid usage') - } - function Z(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_box_publickeybytes()), - _ = a.address - r.push(_) - var s = new l(0 | t._crypto_box_secretkeybytes()), - n = s.address - if ((r.push(n), 0 == (0 | t._crypto_box_keypair(_, n)))) { - var c = { publicKey: p(a, e), privateKey: p(s, e), keyType: 'x25519' } - return v(r), c - } - g(r, 'internal error') - } - function $(e, r, a, _, s, n) { - var c = [] - i(n) - var o = u((e = m(c, e, 'ciphertext'))), - h = e.length - c.push(o), (r = m(c, r, 'mac')) - var y, - d = 0 | t._crypto_box_macbytes() - r.length !== d && b(c, 'invalid mac length'), - (y = u(r)), - c.push(y), - (a = m(c, a, 'nonce')) - var f, - E = 0 | t._crypto_box_noncebytes() - a.length !== E && b(c, 'invalid nonce length'), - (f = u(a)), - c.push(f), - (_ = m(c, _, 'publicKey')) - var x, - k = 0 | t._crypto_box_publickeybytes() - _.length !== k && b(c, 'invalid publicKey length'), - (x = u(_)), - c.push(x), - (s = m(c, s, 'privateKey')) - var S, - T = 0 | t._crypto_box_secretkeybytes() - s.length !== T && b(c, 'invalid privateKey length'), (S = u(s)), c.push(S) - var w = new l(0 | h), - Y = w.address - if ((c.push(Y), 0 == (0 | t._crypto_box_open_detached(Y, o, y, h, 0, f, x, S)))) { - var B = p(w, n) - return v(c), B - } - g(c, 'incorrect key pair for the given ciphertext') - } - function ee(e, r, a, _, s) { - var n = [] - i(s), (e = m(n, e, 'ciphertext')) - var c, - o = t._crypto_box_macbytes(), - h = e.length - h < o && b(n, 'ciphertext is too short'), - (c = u(e)), - n.push(c), - (r = m(n, r, 'nonce')) - var y, - d = 0 | t._crypto_box_noncebytes() - r.length !== d && b(n, 'invalid nonce length'), - (y = u(r)), - n.push(y), - (a = m(n, a, 'publicKey')) - var f, - E = 0 | t._crypto_box_publickeybytes() - a.length !== E && b(n, 'invalid publicKey length'), - (f = u(a)), - n.push(f), - (_ = m(n, _, 'privateKey')) - var x, - k = 0 | t._crypto_box_secretkeybytes() - _.length !== k && b(n, 'invalid privateKey length'), (x = u(_)), n.push(x) - var S = new l((h - t._crypto_box_macbytes()) | 0), - T = S.address - if ((n.push(T), 0 == (0 | t._crypto_box_open_easy(T, c, h, 0, y, f, x)))) { - var w = p(S, s) - return v(n), w - } - g(n, 'incorrect key pair for the given ciphertext') - } - function re(e, r, a, _) { - var s = [] - i(_) - var n = u((e = m(s, e, 'ciphertext'))), - c = e.length - s.push(n), (r = m(s, r, 'nonce')) - var o, - h = 0 | t._crypto_box_noncebytes() - r.length !== h && b(s, 'invalid nonce length'), - (o = u(r)), - s.push(o), - (a = m(s, a, 'sharedKey')) - var y, - d = 0 | t._crypto_box_beforenmbytes() - a.length !== d && b(s, 'invalid sharedKey length'), (y = u(a)), s.push(y) - var f = new l((c - t._crypto_box_macbytes()) | 0), - E = f.address - if ((s.push(E), 0 == (0 | t._crypto_box_open_easy_afternm(E, n, c, 0, o, y)))) { - var x = p(f, _) - return v(s), x - } - g(s, 'incorrect secret key for the given ciphertext') - } - function te(e, r, a) { - var _ = [] - i(a) - var s = u((e = m(_, e, 'message'))), - n = e.length - _.push(s), (r = m(_, r, 'publicKey')) - var c, - o = 0 | t._crypto_box_publickeybytes() - r.length !== o && b(_, 'invalid publicKey length'), (c = u(r)), _.push(c) - var h = new l((n + t._crypto_box_sealbytes()) | 0), - y = h.address - if ((_.push(y), 0 == (0 | t._crypto_box_seal(y, s, n, 0, c)))) { - var d = p(h, a) - return v(_), d - } - g(_, 'invalid usage') - } - function ae(e, r, a, _) { - var s = [] - i(_), (e = m(s, e, 'ciphertext')) - var n, - c = t._crypto_box_sealbytes(), - o = e.length - o < c && b(s, 'ciphertext is too short'), - (n = u(e)), - s.push(n), - (r = m(s, r, 'publicKey')) - var h, - y = 0 | t._crypto_box_publickeybytes() - r.length !== y && b(s, 'invalid publicKey length'), - (h = u(r)), - s.push(h), - (a = m(s, a, 'privateKey')) - var d, - f = 0 | t._crypto_box_secretkeybytes() - a.length !== f && b(s, 'invalid privateKey length'), (d = u(a)), s.push(d) - var E = new l((o - t._crypto_box_sealbytes()) | 0), - x = E.address - if ((s.push(x), 0 == (0 | t._crypto_box_seal_open(x, n, o, 0, h, d)))) { - var k = p(E, _) - return v(s), k - } - g(s, 'incorrect key pair for the given ciphertext') - } - function _e(e, r) { - var a = [] - i(r), (e = m(a, e, 'seed')) - var _, - s = 0 | t._crypto_box_seedbytes() - e.length !== s && b(a, 'invalid seed length'), (_ = u(e)), a.push(_) - var n = new l(0 | t._crypto_box_publickeybytes()), - c = n.address - a.push(c) - var o = new l(0 | t._crypto_box_secretkeybytes()), - h = o.address - if ((a.push(h), 0 == (0 | t._crypto_box_seed_keypair(c, h, _)))) { - var y = { publicKey: p(n, r), privateKey: p(o, r), keyType: 'x25519' } - return v(a), y - } - g(a, 'invalid usage') - } - function se(e, r, a) { - var _ = [] - i(a), (e = m(_, e, 'p')) - var s, - n = 0 | t._crypto_core_ed25519_bytes() - e.length !== n && b(_, 'invalid p length'), - (s = u(e)), - _.push(s), - (r = m(_, r, 'q')) - var c, - o = 0 | t._crypto_core_ed25519_bytes() - r.length !== o && b(_, 'invalid q length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_core_ed25519_bytes()), - y = h.address - if ((_.push(y), 0 == (0 | t._crypto_core_ed25519_add(y, s, c)))) { - var d = p(h, a) - return v(_), d - } - g(_, 'input is an invalid element') - } - function ne(e, r) { - var a = [] - i(r) - var _ = u((e = m(a, e, 'r'))) - e.length, a.push(_) - var s = new l(0 | t._crypto_core_ed25519_bytes()), - n = s.address - if ((a.push(n), 0 == (0 | t._crypto_core_ed25519_from_hash(n, _)))) { - var c = p(s, r) - return v(a), c - } - g(a, 'invalid usage') - } - function ce(e, r) { - var a = [] - i(r) - var _ = u((e = m(a, e, 'r'))) - e.length, a.push(_) - var s = new l(0 | t._crypto_core_ed25519_bytes()), - n = s.address - if ((a.push(n), 0 == (0 | t._crypto_core_ed25519_from_uniform(n, _)))) { - var c = p(s, r) - return v(a), c - } - g(a, 'invalid usage') - } - function oe(e, r) { - var a = [] - i(r), (e = m(a, e, 'repr')) - var _, - s = 0 | t._crypto_core_ed25519_bytes() - e.length !== s && b(a, 'invalid repr length'), (_ = u(e)), a.push(_) - var n = 1 == (0 | t._crypto_core_ed25519_is_valid_point(_)) - return v(a), n - } - function he(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_core_ed25519_bytes()), - _ = a.address - r.push(_), t._crypto_core_ed25519_random(_) - var s = p(a, e) - return v(r), s - } - function pe(e, r, a) { - var _ = [] - i(a), (e = m(_, e, 'x')) - var s, - n = 0 | t._crypto_core_ed25519_scalarbytes() - e.length !== n && b(_, 'invalid x length'), - (s = u(e)), - _.push(s), - (r = m(_, r, 'y')) - var c, - o = 0 | t._crypto_core_ed25519_scalarbytes() - r.length !== o && b(_, 'invalid y length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_core_ed25519_scalarbytes()), - y = h.address - _.push(y), t._crypto_core_ed25519_scalar_add(y, s, c) - var d = p(h, a) - return v(_), d - } - function ye(e, r) { - var a = [] - i(r), (e = m(a, e, 's')) - var _, - s = 0 | t._crypto_core_ed25519_scalarbytes() - e.length !== s && b(a, 'invalid s length'), (_ = u(e)), a.push(_) - var n = new l(0 | t._crypto_core_ed25519_scalarbytes()), - c = n.address - a.push(c), t._crypto_core_ed25519_scalar_complement(c, _) - var o = p(n, r) - return v(a), o - } - function ie(e, r) { - var a = [] - i(r), (e = m(a, e, 's')) - var _, - s = 0 | t._crypto_core_ed25519_scalarbytes() - e.length !== s && b(a, 'invalid s length'), (_ = u(e)), a.push(_) - var n = new l(0 | t._crypto_core_ed25519_scalarbytes()), - c = n.address - if ((a.push(c), 0 == (0 | t._crypto_core_ed25519_scalar_invert(c, _)))) { - var o = p(n, r) - return v(a), o - } - g(a, 'invalid reciprocate') - } - function le(e, r, a) { - var _ = [] - i(a), (e = m(_, e, 'x')) - var s, - n = 0 | t._crypto_core_ed25519_scalarbytes() - e.length !== n && b(_, 'invalid x length'), - (s = u(e)), - _.push(s), - (r = m(_, r, 'y')) - var c, - o = 0 | t._crypto_core_ed25519_scalarbytes() - r.length !== o && b(_, 'invalid y length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_core_ed25519_scalarbytes()), - y = h.address - _.push(y), t._crypto_core_ed25519_scalar_mul(y, s, c) - var d = p(h, a) - return v(_), d - } - function ue(e, r) { - var a = [] - i(r), (e = m(a, e, 's')) - var _, - s = 0 | t._crypto_core_ed25519_scalarbytes() - e.length !== s && b(a, 'invalid s length'), (_ = u(e)), a.push(_) - var n = new l(0 | t._crypto_core_ed25519_scalarbytes()), - c = n.address - a.push(c), t._crypto_core_ed25519_scalar_negate(c, _) - var o = p(n, r) - return v(a), o - } - function de(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_core_ed25519_scalarbytes()), - _ = a.address - r.push(_), t._crypto_core_ed25519_scalar_random(_) - var s = p(a, e) - return v(r), s - } - function ve(e, r) { - var a = [] - i(r), (e = m(a, e, 'sample')) - var _, - s = 0 | t._crypto_core_ed25519_nonreducedscalarbytes() - e.length !== s && b(a, 'invalid sample length'), (_ = u(e)), a.push(_) - var n = new l(0 | t._crypto_core_ed25519_scalarbytes()), - c = n.address - a.push(c), t._crypto_core_ed25519_scalar_reduce(c, _) - var o = p(n, r) - return v(a), o - } - function ge(e, r, a) { - var _ = [] - i(a), (e = m(_, e, 'x')) - var s, - n = 0 | t._crypto_core_ed25519_scalarbytes() - e.length !== n && b(_, 'invalid x length'), - (s = u(e)), - _.push(s), - (r = m(_, r, 'y')) - var c, - o = 0 | t._crypto_core_ed25519_scalarbytes() - r.length !== o && b(_, 'invalid y length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_core_ed25519_scalarbytes()), - y = h.address - _.push(y), t._crypto_core_ed25519_scalar_sub(y, s, c) - var d = p(h, a) - return v(_), d - } - function be(e, r, a) { - var _ = [] - i(a), (e = m(_, e, 'p')) - var s, - n = 0 | t._crypto_core_ed25519_bytes() - e.length !== n && b(_, 'invalid p length'), - (s = u(e)), - _.push(s), - (r = m(_, r, 'q')) - var c, - o = 0 | t._crypto_core_ed25519_bytes() - r.length !== o && b(_, 'invalid q length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_core_ed25519_bytes()), - y = h.address - if ((_.push(y), 0 == (0 | t._crypto_core_ed25519_sub(y, s, c)))) { - var d = p(h, a) - return v(_), d - } - g(_, 'input is an invalid element') - } - function fe(e, r, a) { - var _ = [] - i(a), (e = m(_, e, 'p')) - var s, - n = 0 | t._crypto_core_ristretto255_bytes() - e.length !== n && b(_, 'invalid p length'), - (s = u(e)), - _.push(s), - (r = m(_, r, 'q')) - var c, - o = 0 | t._crypto_core_ristretto255_bytes() - r.length !== o && b(_, 'invalid q length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_core_ristretto255_bytes()), - y = h.address - if ((_.push(y), 0 == (0 | t._crypto_core_ristretto255_add(y, s, c)))) { - var d = p(h, a) - return v(_), d - } - g(_, 'input is an invalid element') - } - function me(e, r) { - var a = [] - i(r) - var _ = u((e = m(a, e, 'r'))) - e.length, a.push(_) - var s = new l(0 | t._crypto_core_ristretto255_bytes()), - n = s.address - if ((a.push(n), 0 == (0 | t._crypto_core_ristretto255_from_hash(n, _)))) { - var c = p(s, r) - return v(a), c - } - g(a, 'invalid usage') - } - function Ee(e, r) { - var a = [] - i(r), (e = m(a, e, 'repr')) - var _, - s = 0 | t._crypto_core_ristretto255_bytes() - e.length !== s && b(a, 'invalid repr length'), (_ = u(e)), a.push(_) - var n = 1 == (0 | t._crypto_core_ristretto255_is_valid_point(_)) - return v(a), n - } - function xe(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_core_ristretto255_bytes()), - _ = a.address - r.push(_), t._crypto_core_ristretto255_random(_) - var s = p(a, e) - return v(r), s - } - function ke(e, r, a) { - var _ = [] - i(a), (e = m(_, e, 'x')) - var s, - n = 0 | t._crypto_core_ristretto255_scalarbytes() - e.length !== n && b(_, 'invalid x length'), - (s = u(e)), - _.push(s), - (r = m(_, r, 'y')) - var c, - o = 0 | t._crypto_core_ristretto255_scalarbytes() - r.length !== o && b(_, 'invalid y length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_core_ristretto255_scalarbytes()), - y = h.address - _.push(y), t._crypto_core_ristretto255_scalar_add(y, s, c) - var d = p(h, a) - return v(_), d - } - function Se(e, r) { - var a = [] - i(r), (e = m(a, e, 's')) - var _, - s = 0 | t._crypto_core_ristretto255_scalarbytes() - e.length !== s && b(a, 'invalid s length'), (_ = u(e)), a.push(_) - var n = new l(0 | t._crypto_core_ristretto255_scalarbytes()), - c = n.address - a.push(c), t._crypto_core_ristretto255_scalar_complement(c, _) - var o = p(n, r) - return v(a), o - } - function Te(e, r) { - var a = [] - i(r), (e = m(a, e, 's')) - var _, - s = 0 | t._crypto_core_ristretto255_scalarbytes() - e.length !== s && b(a, 'invalid s length'), (_ = u(e)), a.push(_) - var n = new l(0 | t._crypto_core_ristretto255_scalarbytes()), - c = n.address - if ((a.push(c), 0 == (0 | t._crypto_core_ristretto255_scalar_invert(c, _)))) { - var o = p(n, r) - return v(a), o - } - g(a, 'invalid reciprocate') - } - function we(e, r, a) { - var _ = [] - i(a), (e = m(_, e, 'x')) - var s, - n = 0 | t._crypto_core_ristretto255_scalarbytes() - e.length !== n && b(_, 'invalid x length'), - (s = u(e)), - _.push(s), - (r = m(_, r, 'y')) - var c, - o = 0 | t._crypto_core_ristretto255_scalarbytes() - r.length !== o && b(_, 'invalid y length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_core_ristretto255_scalarbytes()), - y = h.address - _.push(y), t._crypto_core_ristretto255_scalar_mul(y, s, c) - var d = p(h, a) - return v(_), d - } - function Ye(e, r) { - var a = [] - i(r), (e = m(a, e, 's')) - var _, - s = 0 | t._crypto_core_ristretto255_scalarbytes() - e.length !== s && b(a, 'invalid s length'), (_ = u(e)), a.push(_) - var n = new l(0 | t._crypto_core_ristretto255_scalarbytes()), - c = n.address - a.push(c), t._crypto_core_ristretto255_scalar_negate(c, _) - var o = p(n, r) - return v(a), o - } - function Be(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_core_ristretto255_scalarbytes()), - _ = a.address - r.push(_), t._crypto_core_ristretto255_scalar_random(_) - var s = p(a, e) - return v(r), s - } - function Ae(e, r) { - var a = [] - i(r), (e = m(a, e, 'sample')) - var _, - s = 0 | t._crypto_core_ristretto255_nonreducedscalarbytes() - e.length !== s && b(a, 'invalid sample length'), (_ = u(e)), a.push(_) - var n = new l(0 | t._crypto_core_ristretto255_scalarbytes()), - c = n.address - a.push(c), t._crypto_core_ristretto255_scalar_reduce(c, _) - var o = p(n, r) - return v(a), o - } - function Ke(e, r, a) { - var _ = [] - i(a), (e = m(_, e, 'x')) - var s, - n = 0 | t._crypto_core_ristretto255_scalarbytes() - e.length !== n && b(_, 'invalid x length'), - (s = u(e)), - _.push(s), - (r = m(_, r, 'y')) - var c, - o = 0 | t._crypto_core_ristretto255_scalarbytes() - r.length !== o && b(_, 'invalid y length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_core_ristretto255_scalarbytes()), - y = h.address - _.push(y), t._crypto_core_ristretto255_scalar_sub(y, s, c) - var d = p(h, a) - return v(_), d - } - function Me(e, r, a) { - var _ = [] - i(a), (e = m(_, e, 'p')) - var s, - n = 0 | t._crypto_core_ristretto255_bytes() - e.length !== n && b(_, 'invalid p length'), - (s = u(e)), - _.push(s), - (r = m(_, r, 'q')) - var c, - o = 0 | t._crypto_core_ristretto255_bytes() - r.length !== o && b(_, 'invalid q length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_core_ristretto255_bytes()), - y = h.address - if ((_.push(y), 0 == (0 | t._crypto_core_ristretto255_sub(y, s, c)))) { - var d = p(h, a) - return v(_), d - } - g(_, 'input is an invalid element') - } - function Ie(e, r, a, _) { - var s = [] - i(_), - f(s, e, 'hash_length'), - ('number' != typeof e || (0 | e) !== e || e < 0) && - b(s, 'hash_length must be an unsigned integer') - var n = u((r = m(s, r, 'message'))), - c = r.length - s.push(n) - var o = null, - h = 0 - null != a && ((o = u((a = m(s, a, 'key')))), (h = a.length), s.push(o)) - var y = new l((e |= 0)), - d = y.address - if ((s.push(d), 0 == (0 | t._crypto_generichash(d, e, n, c, 0, o, h)))) { - var E = p(y, _) - return v(s), E - } - g(s, 'invalid usage') - } - function Ne(e, r, a, _, s) { - var n = [] - i(s), - f(n, e, 'subkey_len'), - ('number' != typeof e || (0 | e) !== e || e < 0) && - b(n, 'subkey_len must be an unsigned integer') - var c = null, - o = 0 - null != r && ((c = u((r = m(n, r, 'key')))), (o = r.length), n.push(c)), - (a = m(n, a, 'id')) - var h, - y = 0 | t._crypto_generichash_blake2b_saltbytes() - a.length !== y && b(n, 'invalid id length'), - (h = u(a)), - n.push(h), - (_ = m(n, _, 'ctx')) - var d, - E = 0 | t._crypto_generichash_blake2b_personalbytes() - _.length !== E && b(n, 'invalid ctx length'), (d = u(_)), n.push(d) - var x = new l(0 | e), - k = x.address - if ( - (n.push(k), - 0 == - (0 | t._crypto_generichash_blake2b_salt_personal(k, e, null, 0, 0, c, o, h, d))) - ) { - var S = p(x, s) - return v(n), S - } - g(n, 'invalid usage') - } - function Le(e, r, a) { - var _ = [] - i(a), - f(_, e, 'state_address'), - f(_, r, 'hash_length'), - ('number' != typeof r || (0 | r) !== r || r < 0) && - b(_, 'hash_length must be an unsigned integer') - var s = new l((r |= 0)), - n = s.address - if ((_.push(n), 0 == (0 | t._crypto_generichash_final(e, n, r)))) { - var c = (t._free(e), p(s, a)) - return v(_), c - } - g(_, 'invalid usage') - } - function Ue(e, r, a) { - var _ = [] - i(a) - var s = null, - n = 0 - null != e && ((s = u((e = m(_, e, 'key')))), (n = e.length), _.push(s)), - f(_, r, 'hash_length'), - ('number' != typeof r || (0 | r) !== r || r < 0) && - b(_, 'hash_length must be an unsigned integer') - var c = new l(357).address - if (0 == (0 | t._crypto_generichash_init(c, s, n, r))) { - var o = c - return v(_), o - } - g(_, 'invalid usage') - } - function Oe(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_generichash_keybytes()), - _ = a.address - r.push(_), t._crypto_generichash_keygen(_) - var s = p(a, e) - return v(r), s - } - function Ce(e, r, a) { - var _ = [] - i(a), f(_, e, 'state_address') - var s = u((r = m(_, r, 'message_chunk'))), - n = r.length - _.push(s), - 0 != (0 | t._crypto_generichash_update(e, s, n)) && g(_, 'invalid usage'), - v(_) - } - function Re(e, r) { - var a = [] - i(r) - var _ = u((e = m(a, e, 'message'))), - s = e.length - a.push(_) - var n = new l(0 | t._crypto_hash_bytes()), - c = n.address - if ((a.push(c), 0 == (0 | t._crypto_hash(c, _, s, 0)))) { - var o = p(n, r) - return v(a), o - } - g(a, 'invalid usage') - } - function Pe(e, r) { - var a = [] - i(r) - var _ = u((e = m(a, e, 'message'))), - s = e.length - a.push(_) - var n = new l(0 | t._crypto_hash_sha256_bytes()), - c = n.address - if ((a.push(c), 0 == (0 | t._crypto_hash_sha256(c, _, s, 0)))) { - var o = p(n, r) - return v(a), o - } - g(a, 'invalid usage') - } - function Ge(e, r) { - var a = [] - i(r), f(a, e, 'state_address') - var _ = new l(0 | t._crypto_hash_sha256_bytes()), - s = _.address - if ((a.push(s), 0 == (0 | t._crypto_hash_sha256_final(e, s)))) { - var n = (t._free(e), p(_, r)) - return v(a), n - } - g(a, 'invalid usage') - } - function Xe(e) { - var r = [] - i(e) - var a = new l(104).address - if (0 == (0 | t._crypto_hash_sha256_init(a))) { - var _ = a - return v(r), _ - } - g(r, 'invalid usage') - } - function De(e, r, a) { - var _ = [] - i(a), f(_, e, 'state_address') - var s = u((r = m(_, r, 'message_chunk'))), - n = r.length - _.push(s), - 0 != (0 | t._crypto_hash_sha256_update(e, s, n)) && g(_, 'invalid usage'), - v(_) - } - function Fe(e, r) { - var a = [] - i(r) - var _ = u((e = m(a, e, 'message'))), - s = e.length - a.push(_) - var n = new l(0 | t._crypto_hash_sha512_bytes()), - c = n.address - if ((a.push(c), 0 == (0 | t._crypto_hash_sha512(c, _, s, 0)))) { - var o = p(n, r) - return v(a), o - } - g(a, 'invalid usage') - } - function Ve(e, r) { - var a = [] - i(r), f(a, e, 'state_address') - var _ = new l(0 | t._crypto_hash_sha512_bytes()), - s = _.address - if ((a.push(s), 0 == (0 | t._crypto_hash_sha512_final(e, s)))) { - var n = (t._free(e), p(_, r)) - return v(a), n - } - g(a, 'invalid usage') - } - function He(e) { - var r = [] - i(e) - var a = new l(208).address - if (0 == (0 | t._crypto_hash_sha512_init(a))) { - var _ = a - return v(r), _ - } - g(r, 'invalid usage') - } - function qe(e, r, a) { - var _ = [] - i(a), f(_, e, 'state_address') - var s = u((r = m(_, r, 'message_chunk'))), - n = r.length - _.push(s), - 0 != (0 | t._crypto_hash_sha512_update(e, s, n)) && g(_, 'invalid usage'), - v(_) - } - function je(e, r, a, s, n) { - var c = [] - i(n), - f(c, e, 'subkey_len'), - ('number' != typeof e || (0 | e) !== e || e < 0) && - b(c, 'subkey_len must be an unsigned integer'), - f(c, r, 'subkey_id'), - ('number' != typeof r || (0 | r) !== r || r < 0) && - b(c, 'subkey_id must be an unsigned integer'), - 'string' != typeof a && b(c, 'ctx must be a string'), - (a = _(a + '\0')), - null != h && a.length - 1 !== h && b(c, 'invalid ctx length') - var o = u(a), - h = a.length - 1 - c.push(o), (s = m(c, s, 'key')) - var y, - d = 0 | t._crypto_kdf_keybytes() - s.length !== d && b(c, 'invalid key length'), (y = u(s)), c.push(y) - var g = new l(0 | e), - E = g.address - c.push(E), t._crypto_kdf_derive_from_key(E, e, r, (r >>> 24) >>> 8, o, y) - var x = p(g, n) - return v(c), x - } - function ze(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_kdf_keybytes()), - _ = a.address - r.push(_), t._crypto_kdf_keygen(_) - var s = p(a, e) - return v(r), s - } - function We(e, r, a, _) { - var s = [] - i(_), (e = m(s, e, 'clientPublicKey')) - var n, - c = 0 | t._crypto_kx_publickeybytes() - e.length !== c && b(s, 'invalid clientPublicKey length'), - (n = u(e)), - s.push(n), - (r = m(s, r, 'clientSecretKey')) - var o, - h = 0 | t._crypto_kx_secretkeybytes() - r.length !== h && b(s, 'invalid clientSecretKey length'), - (o = u(r)), - s.push(o), - (a = m(s, a, 'serverPublicKey')) - var y, - d = 0 | t._crypto_kx_publickeybytes() - a.length !== d && b(s, 'invalid serverPublicKey length'), (y = u(a)), s.push(y) - var f = new l(0 | t._crypto_kx_sessionkeybytes()), - E = f.address - s.push(E) - var x = new l(0 | t._crypto_kx_sessionkeybytes()), - k = x.address - if ((s.push(k), 0 == (0 | t._crypto_kx_client_session_keys(E, k, n, o, y)))) { - var S = p({ sharedRx: f, sharedTx: x }, _) - return v(s), S - } - g(s, 'invalid usage') - } - function Je(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_kx_publickeybytes()), - _ = a.address - r.push(_) - var s = new l(0 | t._crypto_kx_secretkeybytes()), - n = s.address - if ((r.push(n), 0 == (0 | t._crypto_kx_keypair(_, n)))) { - var c = { publicKey: p(a, e), privateKey: p(s, e), keyType: 'x25519' } - return v(r), c - } - g(r, 'internal error') - } - function Qe(e, r) { - var a = [] - i(r), (e = m(a, e, 'seed')) - var _, - s = 0 | t._crypto_kx_seedbytes() - e.length !== s && b(a, 'invalid seed length'), (_ = u(e)), a.push(_) - var n = new l(0 | t._crypto_kx_publickeybytes()), - c = n.address - a.push(c) - var o = new l(0 | t._crypto_kx_secretkeybytes()), - h = o.address - if ((a.push(h), 0 == (0 | t._crypto_kx_seed_keypair(c, h, _)))) { - var y = { publicKey: p(n, r), privateKey: p(o, r), keyType: 'x25519' } - return v(a), y - } - g(a, 'internal error') - } - function Ze(e, r, a, _) { - var s = [] - i(_), (e = m(s, e, 'serverPublicKey')) - var n, - c = 0 | t._crypto_kx_publickeybytes() - e.length !== c && b(s, 'invalid serverPublicKey length'), - (n = u(e)), - s.push(n), - (r = m(s, r, 'serverSecretKey')) - var o, - h = 0 | t._crypto_kx_secretkeybytes() - r.length !== h && b(s, 'invalid serverSecretKey length'), - (o = u(r)), - s.push(o), - (a = m(s, a, 'clientPublicKey')) - var y, - d = 0 | t._crypto_kx_publickeybytes() - a.length !== d && b(s, 'invalid clientPublicKey length'), (y = u(a)), s.push(y) - var f = new l(0 | t._crypto_kx_sessionkeybytes()), - E = f.address - s.push(E) - var x = new l(0 | t._crypto_kx_sessionkeybytes()), - k = x.address - if ((s.push(k), 0 == (0 | t._crypto_kx_server_session_keys(E, k, n, o, y)))) { - var S = p({ sharedRx: f, sharedTx: x }, _) - return v(s), S - } - g(s, 'invalid usage') - } - function $e(e, r, a) { - var _ = [] - i(a) - var s = u((e = m(_, e, 'message'))), - n = e.length - _.push(s), (r = m(_, r, 'key')) - var c, - o = 0 | t._crypto_onetimeauth_keybytes() - r.length !== o && b(_, 'invalid key length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_onetimeauth_bytes()), - y = h.address - if ((_.push(y), 0 == (0 | t._crypto_onetimeauth(y, s, n, 0, c)))) { - var d = p(h, a) - return v(_), d - } - g(_, 'invalid usage') - } - function er(e, r) { - var a = [] - i(r), f(a, e, 'state_address') - var _ = new l(0 | t._crypto_onetimeauth_bytes()), - s = _.address - if ((a.push(s), 0 == (0 | t._crypto_onetimeauth_final(e, s)))) { - var n = (t._free(e), p(_, r)) - return v(a), n - } - g(a, 'invalid usage') - } - function rr(e, r) { - var a = [] - i(r) - var _ = null - null != e && ((_ = u((e = m(a, e, 'key')))), e.length, a.push(_)) - var s = new l(144).address - if (0 == (0 | t._crypto_onetimeauth_init(s, _))) { - var n = s - return v(a), n - } - g(a, 'invalid usage') - } - function tr(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_onetimeauth_keybytes()), - _ = a.address - r.push(_), t._crypto_onetimeauth_keygen(_) - var s = p(a, e) - return v(r), s - } - function ar(e, r, a) { - var _ = [] - i(a), f(_, e, 'state_address') - var s = u((r = m(_, r, 'message_chunk'))), - n = r.length - _.push(s), - 0 != (0 | t._crypto_onetimeauth_update(e, s, n)) && g(_, 'invalid usage'), - v(_) - } - function _r(e, r, a) { - var _ = [] - e = m(_, e, 'hash') - var s, - n = 0 | t._crypto_onetimeauth_bytes() - e.length !== n && b(_, 'invalid hash length'), (s = u(e)), _.push(s) - var c = u((r = m(_, r, 'message'))), - o = r.length - _.push(c), (a = m(_, a, 'key')) - var h, - p = 0 | t._crypto_onetimeauth_keybytes() - a.length !== p && b(_, 'invalid key length'), (h = u(a)), _.push(h) - var y = 0 == (0 | t._crypto_onetimeauth_verify(s, c, o, 0, h)) - return v(_), y - } - function sr(e, r, a, _, s, n, c) { - var o = [] - i(c), - f(o, e, 'keyLength'), - ('number' != typeof e || (0 | e) !== e || e < 0) && - b(o, 'keyLength must be an unsigned integer') - var h = u((r = m(o, r, 'password'))), - y = r.length - o.push(h), (a = m(o, a, 'salt')) - var d, - E = 0 | t._crypto_pwhash_saltbytes() - a.length !== E && b(o, 'invalid salt length'), - (d = u(a)), - o.push(d), - f(o, _, 'opsLimit'), - ('number' != typeof _ || (0 | _) !== _ || _ < 0) && - b(o, 'opsLimit must be an unsigned integer'), - f(o, s, 'memLimit'), - ('number' != typeof s || (0 | s) !== s || s < 0) && - b(o, 'memLimit must be an unsigned integer'), - f(o, n, 'algorithm'), - ('number' != typeof n || (0 | n) !== n || n < 0) && - b(o, 'algorithm must be an unsigned integer') - var x = new l(0 | e), - k = x.address - if ((o.push(k), 0 == (0 | t._crypto_pwhash(k, e, 0, h, y, 0, d, _, 0, s, n)))) { - var S = p(x, c) - return v(o), S - } - g(o, 'invalid usage') - } - function nr(e, r, a, _, s, n) { - var c = [] - i(n), - f(c, e, 'keyLength'), - ('number' != typeof e || (0 | e) !== e || e < 0) && - b(c, 'keyLength must be an unsigned integer') - var o = u((r = m(c, r, 'password'))), - h = r.length - c.push(o), (a = m(c, a, 'salt')) - var y, - d = 0 | t._crypto_pwhash_scryptsalsa208sha256_saltbytes() - a.length !== d && b(c, 'invalid salt length'), - (y = u(a)), - c.push(y), - f(c, _, 'opsLimit'), - ('number' != typeof _ || (0 | _) !== _ || _ < 0) && - b(c, 'opsLimit must be an unsigned integer'), - f(c, s, 'memLimit'), - ('number' != typeof s || (0 | s) !== s || s < 0) && - b(c, 'memLimit must be an unsigned integer') - var E = new l(0 | e), - x = E.address - if ( - (c.push(x), - 0 == (0 | t._crypto_pwhash_scryptsalsa208sha256(x, e, 0, o, h, 0, y, _, 0, s))) - ) { - var k = p(E, n) - return v(c), k - } - g(c, 'invalid usage') - } - function cr(e, r, a, _, s, n, c) { - var o = [] - i(c) - var h = u((e = m(o, e, 'password'))), - y = e.length - o.push(h) - var d = u((r = m(o, r, 'salt'))), - E = r.length - o.push(d), - f(o, a, 'opsLimit'), - ('number' != typeof a || (0 | a) !== a || a < 0) && - b(o, 'opsLimit must be an unsigned integer'), - f(o, _, 'r'), - ('number' != typeof _ || (0 | _) !== _ || _ < 0) && - b(o, 'r must be an unsigned integer'), - f(o, s, 'p'), - ('number' != typeof s || (0 | s) !== s || s < 0) && - b(o, 'p must be an unsigned integer'), - f(o, n, 'keyLength'), - ('number' != typeof n || (0 | n) !== n || n < 0) && - b(o, 'keyLength must be an unsigned integer') - var x = new l(0 | n), - k = x.address - if ( - (o.push(k), - 0 == (0 | t._crypto_pwhash_scryptsalsa208sha256_ll(h, y, d, E, a, 0, _, s, k, n))) - ) { - var S = p(x, c) - return v(o), S - } - g(o, 'invalid usage') - } - function or(e, r, a, _) { - var s = [] - i(_) - var n = u((e = m(s, e, 'password'))), - c = e.length - s.push(n), - f(s, r, 'opsLimit'), - ('number' != typeof r || (0 | r) !== r || r < 0) && - b(s, 'opsLimit must be an unsigned integer'), - f(s, a, 'memLimit'), - ('number' != typeof a || (0 | a) !== a || a < 0) && - b(s, 'memLimit must be an unsigned integer') - var o = new l(0 | t._crypto_pwhash_scryptsalsa208sha256_strbytes()).address - if ( - (s.push(o), - 0 == (0 | t._crypto_pwhash_scryptsalsa208sha256_str(o, n, c, 0, r, 0, a))) - ) { - var h = t.UTF8ToString(o) - return v(s), h - } - g(s, 'invalid usage') - } - function hr(e, r, a) { - var s = [] - i(a), - 'string' != typeof e && b(s, 'hashed_password must be a string'), - (e = _(e + '\0')), - null != c && e.length - 1 !== c && b(s, 'invalid hashed_password length') - var n = u(e), - c = e.length - 1 - s.push(n) - var o = u((r = m(s, r, 'password'))), - h = r.length - s.push(o) - var p = 0 == (0 | t._crypto_pwhash_scryptsalsa208sha256_str_verify(n, o, h, 0)) - return v(s), p - } - function pr(e, r, a, _) { - var s = [] - i(_) - var n = u((e = m(s, e, 'password'))), - c = e.length - s.push(n), - f(s, r, 'opsLimit'), - ('number' != typeof r || (0 | r) !== r || r < 0) && - b(s, 'opsLimit must be an unsigned integer'), - f(s, a, 'memLimit'), - ('number' != typeof a || (0 | a) !== a || a < 0) && - b(s, 'memLimit must be an unsigned integer') - var o = new l(0 | t._crypto_pwhash_strbytes()).address - if ((s.push(o), 0 == (0 | t._crypto_pwhash_str(o, n, c, 0, r, 0, a)))) { - var h = t.UTF8ToString(o) - return v(s), h - } - g(s, 'invalid usage') - } - function yr(e, r, a, s) { - var n = [] - i(s), - 'string' != typeof e && b(n, 'hashed_password must be a string'), - (e = _(e + '\0')), - null != o && e.length - 1 !== o && b(n, 'invalid hashed_password length') - var c = u(e), - o = e.length - 1 - n.push(c), - f(n, r, 'opsLimit'), - ('number' != typeof r || (0 | r) !== r || r < 0) && - b(n, 'opsLimit must be an unsigned integer'), - f(n, a, 'memLimit'), - ('number' != typeof a || (0 | a) !== a || a < 0) && - b(n, 'memLimit must be an unsigned integer') - var h = 0 != (0 | t._crypto_pwhash_str_needs_rehash(c, r, 0, a)) - return v(n), h - } - function ir(e, r, a) { - var s = [] - i(a), - 'string' != typeof e && b(s, 'hashed_password must be a string'), - (e = _(e + '\0')), - null != c && e.length - 1 !== c && b(s, 'invalid hashed_password length') - var n = u(e), - c = e.length - 1 - s.push(n) - var o = u((r = m(s, r, 'password'))), - h = r.length - s.push(o) - var p = 0 == (0 | t._crypto_pwhash_str_verify(n, o, h, 0)) - return v(s), p - } - function lr(e, r, a) { - var _ = [] - i(a), (e = m(_, e, 'privateKey')) - var s, - n = 0 | t._crypto_scalarmult_scalarbytes() - e.length !== n && b(_, 'invalid privateKey length'), - (s = u(e)), - _.push(s), - (r = m(_, r, 'publicKey')) - var c, - o = 0 | t._crypto_scalarmult_bytes() - r.length !== o && b(_, 'invalid publicKey length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_scalarmult_bytes()), - y = h.address - if ((_.push(y), 0 == (0 | t._crypto_scalarmult(y, s, c)))) { - var d = p(h, a) - return v(_), d - } - g(_, 'weak public key') - } - function ur(e, r) { - var a = [] - i(r), (e = m(a, e, 'privateKey')) - var _, - s = 0 | t._crypto_scalarmult_scalarbytes() - e.length !== s && b(a, 'invalid privateKey length'), (_ = u(e)), a.push(_) - var n = new l(0 | t._crypto_scalarmult_bytes()), - c = n.address - if ((a.push(c), 0 == (0 | t._crypto_scalarmult_base(c, _)))) { - var o = p(n, r) - return v(a), o - } - g(a, 'unknown error') - } - function dr(e, r, a) { - var _ = [] - i(a), (e = m(_, e, 'n')) - var s, - n = 0 | t._crypto_scalarmult_ed25519_scalarbytes() - e.length !== n && b(_, 'invalid n length'), - (s = u(e)), - _.push(s), - (r = m(_, r, 'p')) - var c, - o = 0 | t._crypto_scalarmult_ed25519_bytes() - r.length !== o && b(_, 'invalid p length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_scalarmult_ed25519_bytes()), - y = h.address - if ((_.push(y), 0 == (0 | t._crypto_scalarmult_ed25519(y, s, c)))) { - var d = p(h, a) - return v(_), d - } - g(_, 'invalid point or scalar is 0') - } - function vr(e, r) { - var a = [] - i(r), (e = m(a, e, 'scalar')) - var _, - s = 0 | t._crypto_scalarmult_ed25519_scalarbytes() - e.length !== s && b(a, 'invalid scalar length'), (_ = u(e)), a.push(_) - var n = new l(0 | t._crypto_scalarmult_ed25519_bytes()), - c = n.address - if ((a.push(c), 0 == (0 | t._crypto_scalarmult_ed25519_base(c, _)))) { - var o = p(n, r) - return v(a), o - } - g(a, 'scalar is 0') - } - function gr(e, r) { - var a = [] - i(r), (e = m(a, e, 'scalar')) - var _, - s = 0 | t._crypto_scalarmult_ed25519_scalarbytes() - e.length !== s && b(a, 'invalid scalar length'), (_ = u(e)), a.push(_) - var n = new l(0 | t._crypto_scalarmult_ed25519_bytes()), - c = n.address - if ((a.push(c), 0 == (0 | t._crypto_scalarmult_ed25519_base_noclamp(c, _)))) { - var o = p(n, r) - return v(a), o - } - g(a, 'scalar is 0') - } - function br(e, r, a) { - var _ = [] - i(a), (e = m(_, e, 'n')) - var s, - n = 0 | t._crypto_scalarmult_ed25519_scalarbytes() - e.length !== n && b(_, 'invalid n length'), - (s = u(e)), - _.push(s), - (r = m(_, r, 'p')) - var c, - o = 0 | t._crypto_scalarmult_ed25519_bytes() - r.length !== o && b(_, 'invalid p length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_scalarmult_ed25519_bytes()), - y = h.address - if ((_.push(y), 0 == (0 | t._crypto_scalarmult_ed25519_noclamp(y, s, c)))) { - var d = p(h, a) - return v(_), d - } - g(_, 'invalid point or scalar is 0') - } - function fr(e, r, a) { - var _ = [] - i(a), (e = m(_, e, 'scalar')) - var s, - n = 0 | t._crypto_scalarmult_ristretto255_scalarbytes() - e.length !== n && b(_, 'invalid scalar length'), - (s = u(e)), - _.push(s), - (r = m(_, r, 'element')) - var c, - o = 0 | t._crypto_scalarmult_ristretto255_bytes() - r.length !== o && b(_, 'invalid element length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_scalarmult_ristretto255_bytes()), - y = h.address - if ((_.push(y), 0 == (0 | t._crypto_scalarmult_ristretto255(y, s, c)))) { - var d = p(h, a) - return v(_), d - } - g(_, 'result is identity element') - } - function mr(e, r) { - var a = [] - i(r), (e = m(a, e, 'scalar')) - var _, - s = 0 | t._crypto_core_ristretto255_scalarbytes() - e.length !== s && b(a, 'invalid scalar length'), (_ = u(e)), a.push(_) - var n = new l(0 | t._crypto_core_ristretto255_bytes()), - c = n.address - if ((a.push(c), 0 == (0 | t._crypto_scalarmult_ristretto255_base(c, _)))) { - var o = p(n, r) - return v(a), o - } - g(a, 'scalar is 0') - } - function Er(e, r, a, _) { - var s = [] - i(_) - var n = u((e = m(s, e, 'message'))), - c = e.length - s.push(n), (r = m(s, r, 'nonce')) - var o, - h = 0 | t._crypto_secretbox_noncebytes() - r.length !== h && b(s, 'invalid nonce length'), - (o = u(r)), - s.push(o), - (a = m(s, a, 'key')) - var y, - d = 0 | t._crypto_secretbox_keybytes() - a.length !== d && b(s, 'invalid key length'), (y = u(a)), s.push(y) - var f = new l(0 | c), - E = f.address - s.push(E) - var x = new l(0 | t._crypto_secretbox_macbytes()), - k = x.address - if ((s.push(k), 0 == (0 | t._crypto_secretbox_detached(E, k, n, c, 0, o, y)))) { - var S = p({ mac: x, cipher: f }, _) - return v(s), S - } - g(s, 'invalid usage') - } - function xr(e, r, a, _) { - var s = [] - i(_) - var n = u((e = m(s, e, 'message'))), - c = e.length - s.push(n), (r = m(s, r, 'nonce')) - var o, - h = 0 | t._crypto_secretbox_noncebytes() - r.length !== h && b(s, 'invalid nonce length'), - (o = u(r)), - s.push(o), - (a = m(s, a, 'key')) - var y, - d = 0 | t._crypto_secretbox_keybytes() - a.length !== d && b(s, 'invalid key length'), (y = u(a)), s.push(y) - var f = new l((c + t._crypto_secretbox_macbytes()) | 0), - E = f.address - if ((s.push(E), 0 == (0 | t._crypto_secretbox_easy(E, n, c, 0, o, y)))) { - var x = p(f, _) - return v(s), x - } - g(s, 'invalid usage') - } - function kr(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_secretbox_keybytes()), - _ = a.address - r.push(_), t._crypto_secretbox_keygen(_) - var s = p(a, e) - return v(r), s - } - function Sr(e, r, a, _, s) { - var n = [] - i(s) - var c = u((e = m(n, e, 'ciphertext'))), - o = e.length - n.push(c), (r = m(n, r, 'mac')) - var h, - y = 0 | t._crypto_secretbox_macbytes() - r.length !== y && b(n, 'invalid mac length'), - (h = u(r)), - n.push(h), - (a = m(n, a, 'nonce')) - var d, - f = 0 | t._crypto_secretbox_noncebytes() - a.length !== f && b(n, 'invalid nonce length'), - (d = u(a)), - n.push(d), - (_ = m(n, _, 'key')) - var E, - x = 0 | t._crypto_secretbox_keybytes() - _.length !== x && b(n, 'invalid key length'), (E = u(_)), n.push(E) - var k = new l(0 | o), - S = k.address - if ( - (n.push(S), 0 == (0 | t._crypto_secretbox_open_detached(S, c, h, o, 0, d, E))) - ) { - var T = p(k, s) - return v(n), T - } - g(n, 'wrong secret key for the given ciphertext') - } - function Tr(e, r, a, _) { - var s = [] - i(_), (e = m(s, e, 'ciphertext')) - var n, - c = t._crypto_secretbox_macbytes(), - o = e.length - o < c && b(s, 'ciphertext is too short'), - (n = u(e)), - s.push(n), - (r = m(s, r, 'nonce')) - var h, - y = 0 | t._crypto_secretbox_noncebytes() - r.length !== y && b(s, 'invalid nonce length'), - (h = u(r)), - s.push(h), - (a = m(s, a, 'key')) - var d, - f = 0 | t._crypto_secretbox_keybytes() - a.length !== f && b(s, 'invalid key length'), (d = u(a)), s.push(d) - var E = new l((o - t._crypto_secretbox_macbytes()) | 0), - x = E.address - if ((s.push(x), 0 == (0 | t._crypto_secretbox_open_easy(x, n, o, 0, h, d)))) { - var k = p(E, _) - return v(s), k - } - g(s, 'wrong secret key for the given ciphertext') - } - function wr(e, r, a) { - var _ = [] - i(a), (e = m(_, e, 'header')) - var s, - n = 0 | t._crypto_secretstream_xchacha20poly1305_headerbytes() - e.length !== n && b(_, 'invalid header length'), - (s = u(e)), - _.push(s), - (r = m(_, r, 'key')) - var c, - o = 0 | t._crypto_secretstream_xchacha20poly1305_keybytes() - r.length !== o && b(_, 'invalid key length'), (c = u(r)), _.push(c) - var h = new l(52).address - if (0 == (0 | t._crypto_secretstream_xchacha20poly1305_init_pull(h, s, c))) { - var p = h - return v(_), p - } - g(_, 'invalid usage') - } - function Yr(e, r) { - var a = [] - i(r), (e = m(a, e, 'key')) - var _, - s = 0 | t._crypto_secretstream_xchacha20poly1305_keybytes() - e.length !== s && b(a, 'invalid key length'), (_ = u(e)), a.push(_) - var n = new l(52).address, - c = new l(0 | t._crypto_secretstream_xchacha20poly1305_headerbytes()), - o = c.address - if ( - (a.push(o), - 0 == (0 | t._crypto_secretstream_xchacha20poly1305_init_push(n, o, _))) - ) { - var h = { state: n, header: p(c, r) } - return v(a), h - } - g(a, 'invalid usage') - } - function Br(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_secretstream_xchacha20poly1305_keybytes()), - _ = a.address - r.push(_), t._crypto_secretstream_xchacha20poly1305_keygen(_) - var s = p(a, e) - return v(r), s - } - function Ar(e, r, a, _) { - var s = [] - i(_), f(s, e, 'state_address'), (r = m(s, r, 'cipher')) - var n, - c = t._crypto_secretstream_xchacha20poly1305_abytes(), - o = r.length - o < c && b(s, 'cipher is too short'), (n = u(r)), s.push(n) - var h = null, - y = 0 - null != a && ((h = u((a = m(s, a, 'ad')))), (y = a.length), s.push(h)) - var g = new l((o - t._crypto_secretstream_xchacha20poly1305_abytes()) | 0), - E = g.address - s.push(E) - var x, - k = - ((x = d(1)), - s.push(x), - (k = 0 === - t._crypto_secretstream_xchacha20poly1305_pull(e, E, 0, x, n, o, 0, h, y) && { - tag: t.HEAPU8[x], - message: g - }) && { message: p(k.message, _), tag: k.tag }) - return v(s), k - } - function Kr(e, r, a, _, s) { - var n = [] - i(s), f(n, e, 'state_address') - var c = u((r = m(n, r, 'message_chunk'))), - o = r.length - n.push(c) - var h = null, - y = 0 - null != a && ((h = u((a = m(n, a, 'ad')))), (y = a.length), n.push(h)), - f(n, _, 'tag'), - ('number' != typeof _ || (0 | _) !== _ || _ < 0) && - b(n, 'tag must be an unsigned integer') - var d = new l((o + t._crypto_secretstream_xchacha20poly1305_abytes()) | 0), - E = d.address - if ( - (n.push(E), - 0 == - (0 | - t._crypto_secretstream_xchacha20poly1305_push(e, E, 0, c, o, 0, h, y, 0, _))) - ) { - var x = p(d, s) - return v(n), x - } - g(n, 'invalid usage') - } - function Mr(e, r) { - var a = [] - return ( - i(r), - f(a, e, 'state_address'), - t._crypto_secretstream_xchacha20poly1305_rekey(e), - v(a), - !0 - ) - } - function Ir(e, r, a) { - var _ = [] - i(a) - var s = u((e = m(_, e, 'message'))), - n = e.length - _.push(s), (r = m(_, r, 'key')) - var c, - o = 0 | t._crypto_shorthash_keybytes() - r.length !== o && b(_, 'invalid key length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_shorthash_bytes()), - y = h.address - if ((_.push(y), 0 == (0 | t._crypto_shorthash(y, s, n, 0, c)))) { - var d = p(h, a) - return v(_), d - } - g(_, 'invalid usage') - } - function Nr(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_shorthash_keybytes()), - _ = a.address - r.push(_), t._crypto_shorthash_keygen(_) - var s = p(a, e) - return v(r), s - } - function Lr(e, r, a) { - var _ = [] - i(a) - var s = u((e = m(_, e, 'message'))), - n = e.length - _.push(s), (r = m(_, r, 'key')) - var c, - o = 0 | t._crypto_shorthash_siphashx24_keybytes() - r.length !== o && b(_, 'invalid key length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_shorthash_siphashx24_bytes()), - y = h.address - if ((_.push(y), 0 == (0 | t._crypto_shorthash_siphashx24(y, s, n, 0, c)))) { - var d = p(h, a) - return v(_), d - } - g(_, 'invalid usage') - } - function Ur(e, r, a) { - var _ = [] - i(a) - var s = u((e = m(_, e, 'message'))), - n = e.length - _.push(s), (r = m(_, r, 'privateKey')) - var c, - o = 0 | t._crypto_sign_secretkeybytes() - r.length !== o && b(_, 'invalid privateKey length'), (c = u(r)), _.push(c) - var h = new l((e.length + t._crypto_sign_bytes()) | 0), - y = h.address - if ((_.push(y), 0 == (0 | t._crypto_sign(y, null, s, n, 0, c)))) { - var d = p(h, a) - return v(_), d - } - g(_, 'invalid usage') - } - function Or(e, r, a) { - var _ = [] - i(a) - var s = u((e = m(_, e, 'message'))), - n = e.length - _.push(s), (r = m(_, r, 'privateKey')) - var c, - o = 0 | t._crypto_sign_secretkeybytes() - r.length !== o && b(_, 'invalid privateKey length'), (c = u(r)), _.push(c) - var h = new l(0 | t._crypto_sign_bytes()), - y = h.address - if ((_.push(y), 0 == (0 | t._crypto_sign_detached(y, null, s, n, 0, c)))) { - var d = p(h, a) - return v(_), d - } - g(_, 'invalid usage') - } - function Cr(e, r) { - var a = [] - i(r), (e = m(a, e, 'edPk')) - var _, - s = 0 | t._crypto_sign_publickeybytes() - e.length !== s && b(a, 'invalid edPk length'), (_ = u(e)), a.push(_) - var n = new l(0 | t._crypto_scalarmult_scalarbytes()), - c = n.address - if ((a.push(c), 0 == (0 | t._crypto_sign_ed25519_pk_to_curve25519(c, _)))) { - var o = p(n, r) - return v(a), o - } - g(a, 'invalid key') - } - function Rr(e, r) { - var a = [] - i(r), (e = m(a, e, 'edSk')) - var _, - s = 0 | t._crypto_sign_secretkeybytes() - e.length !== s && b(a, 'invalid edSk length'), (_ = u(e)), a.push(_) - var n = new l(0 | t._crypto_scalarmult_scalarbytes()), - c = n.address - if ((a.push(c), 0 == (0 | t._crypto_sign_ed25519_sk_to_curve25519(c, _)))) { - var o = p(n, r) - return v(a), o - } - g(a, 'invalid key') - } - function Pr(e, r) { - var a = [] - i(r), (e = m(a, e, 'privateKey')) - var _, - s = 0 | t._crypto_sign_secretkeybytes() - e.length !== s && b(a, 'invalid privateKey length'), (_ = u(e)), a.push(_) - var n = new l(0 | t._crypto_sign_publickeybytes()), - c = n.address - if ((a.push(c), 0 == (0 | t._crypto_sign_ed25519_sk_to_pk(c, _)))) { - var o = p(n, r) - return v(a), o - } - g(a, 'invalid key') - } - function Gr(e, r) { - var a = [] - i(r), (e = m(a, e, 'privateKey')) - var _, - s = 0 | t._crypto_sign_secretkeybytes() - e.length !== s && b(a, 'invalid privateKey length'), (_ = u(e)), a.push(_) - var n = new l(0 | t._crypto_sign_seedbytes()), - c = n.address - if ((a.push(c), 0 == (0 | t._crypto_sign_ed25519_sk_to_seed(c, _)))) { - var o = p(n, r) - return v(a), o - } - g(a, 'invalid key') - } - function Xr(e, r, a) { - var _ = [] - i(a), f(_, e, 'state_address'), (r = m(_, r, 'privateKey')) - var s, - n = 0 | t._crypto_sign_secretkeybytes() - r.length !== n && b(_, 'invalid privateKey length'), (s = u(r)), _.push(s) - var c = new l(0 | t._crypto_sign_bytes()), - o = c.address - if ((_.push(o), 0 == (0 | t._crypto_sign_final_create(e, o, null, s)))) { - var h = (t._free(e), p(c, a)) - return v(_), h - } - g(_, 'invalid usage') - } - function Dr(e, r, a, _) { - var s = [] - i(_), f(s, e, 'state_address'), (r = m(s, r, 'signature')) - var n, - c = 0 | t._crypto_sign_bytes() - r.length !== c && b(s, 'invalid signature length'), - (n = u(r)), - s.push(n), - (a = m(s, a, 'publicKey')) - var o, - h = 0 | t._crypto_sign_publickeybytes() - a.length !== h && b(s, 'invalid publicKey length'), (o = u(a)), s.push(o) - var p = 0 == (0 | t._crypto_sign_final_verify(e, n, o)) - return v(s), p - } - function Fr(e) { - var r = [] - i(e) - var a = new l(208).address - if (0 == (0 | t._crypto_sign_init(a))) { - var _ = a - return v(r), _ - } - g(r, 'internal error') - } - function Vr(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_sign_publickeybytes()), - _ = a.address - r.push(_) - var s = new l(0 | t._crypto_sign_secretkeybytes()), - n = s.address - if ((r.push(n), 0 == (0 | t._crypto_sign_keypair(_, n)))) { - var c = { publicKey: p(a, e), privateKey: p(s, e), keyType: 'ed25519' } - return v(r), c - } - g(r, 'internal error') - } - function Hr(e, r, a) { - var _ = [] - i(a), (e = m(_, e, 'signedMessage')) - var s, - n = t._crypto_sign_bytes(), - c = e.length - c < n && b(_, 'signedMessage is too short'), - (s = u(e)), - _.push(s), - (r = m(_, r, 'publicKey')) - var o, - h = 0 | t._crypto_sign_publickeybytes() - r.length !== h && b(_, 'invalid publicKey length'), (o = u(r)), _.push(o) - var y = new l((c - t._crypto_sign_bytes()) | 0), - d = y.address - if ((_.push(d), 0 == (0 | t._crypto_sign_open(d, null, s, c, 0, o)))) { - var f = p(y, a) - return v(_), f - } - g(_, 'incorrect signature for the given public key') - } - function qr(e, r) { - var a = [] - i(r), (e = m(a, e, 'seed')) - var _, - s = 0 | t._crypto_sign_seedbytes() - e.length !== s && b(a, 'invalid seed length'), (_ = u(e)), a.push(_) - var n = new l(0 | t._crypto_sign_publickeybytes()), - c = n.address - a.push(c) - var o = new l(0 | t._crypto_sign_secretkeybytes()), - h = o.address - if ((a.push(h), 0 == (0 | t._crypto_sign_seed_keypair(c, h, _)))) { - var y = { publicKey: p(n, r), privateKey: p(o, r), keyType: 'ed25519' } - return v(a), y - } - g(a, 'invalid usage') - } - function jr(e, r, a) { - var _ = [] - i(a), f(_, e, 'state_address') - var s = u((r = m(_, r, 'message_chunk'))), - n = r.length - _.push(s), 0 != (0 | t._crypto_sign_update(e, s, n)) && g(_, 'invalid usage'), v(_) - } - function zr(e, r, a) { - var _ = [] - e = m(_, e, 'signature') - var s, - n = 0 | t._crypto_sign_bytes() - e.length !== n && b(_, 'invalid signature length'), (s = u(e)), _.push(s) - var c = u((r = m(_, r, 'message'))), - o = r.length - _.push(c), (a = m(_, a, 'publicKey')) - var h, - p = 0 | t._crypto_sign_publickeybytes() - a.length !== p && b(_, 'invalid publicKey length'), (h = u(a)), _.push(h) - var y = 0 == (0 | t._crypto_sign_verify_detached(s, c, o, 0, h)) - return v(_), y - } - function Wr(e, r, a, _) { - var s = [] - i(_), - f(s, e, 'outLength'), - ('number' != typeof e || (0 | e) !== e || e < 0) && - b(s, 'outLength must be an unsigned integer'), - (r = m(s, r, 'key')) - var n, - c = 0 | t._crypto_stream_chacha20_keybytes() - r.length !== c && b(s, 'invalid key length'), - (n = u(r)), - s.push(n), - (a = m(s, a, 'nonce')) - var o, - h = 0 | t._crypto_stream_chacha20_noncebytes() - a.length !== h && b(s, 'invalid nonce length'), (o = u(a)), s.push(o) - var y = new l(0 | e), - d = y.address - s.push(d), t._crypto_stream_chacha20(d, e, 0, o, n) - var g = p(y, _) - return v(s), g - } - function Jr(e, r, a, _) { - var s = [] - i(_) - var n = u((e = m(s, e, 'input_message'))), - c = e.length - s.push(n), (r = m(s, r, 'nonce')) - var o, - h = 0 | t._crypto_stream_chacha20_ietf_noncebytes() - r.length !== h && b(s, 'invalid nonce length'), - (o = u(r)), - s.push(o), - (a = m(s, a, 'key')) - var y, - d = 0 | t._crypto_stream_chacha20_ietf_keybytes() - a.length !== d && b(s, 'invalid key length'), (y = u(a)), s.push(y) - var f = new l(0 | c), - E = f.address - if ((s.push(E), 0 === t._crypto_stream_chacha20_ietf_xor(E, n, c, 0, o, y))) { - var x = p(f, _) - return v(s), x - } - g(s, 'invalid usage') - } - function Qr(e, r, a, _, s) { - var n = [] - i(s) - var c = u((e = m(n, e, 'input_message'))), - o = e.length - n.push(c), (r = m(n, r, 'nonce')) - var h, - y = 0 | t._crypto_stream_chacha20_ietf_noncebytes() - r.length !== y && b(n, 'invalid nonce length'), - (h = u(r)), - n.push(h), - f(n, a, 'nonce_increment'), - ('number' != typeof a || (0 | a) !== a || a < 0) && - b(n, 'nonce_increment must be an unsigned integer'), - (_ = m(n, _, 'key')) - var d, - E = 0 | t._crypto_stream_chacha20_ietf_keybytes() - _.length !== E && b(n, 'invalid key length'), (d = u(_)), n.push(d) - var x = new l(0 | o), - k = x.address - if ((n.push(k), 0 === t._crypto_stream_chacha20_ietf_xor_ic(k, c, o, 0, h, a, d))) { - var S = p(x, s) - return v(n), S - } - g(n, 'invalid usage') - } - function Zr(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_stream_chacha20_keybytes()), - _ = a.address - r.push(_), t._crypto_stream_chacha20_keygen(_) - var s = p(a, e) - return v(r), s - } - function $r(e, r, a, _) { - var s = [] - i(_) - var n = u((e = m(s, e, 'input_message'))), - c = e.length - s.push(n), (r = m(s, r, 'nonce')) - var o, - h = 0 | t._crypto_stream_chacha20_noncebytes() - r.length !== h && b(s, 'invalid nonce length'), - (o = u(r)), - s.push(o), - (a = m(s, a, 'key')) - var y, - d = 0 | t._crypto_stream_chacha20_keybytes() - a.length !== d && b(s, 'invalid key length'), (y = u(a)), s.push(y) - var f = new l(0 | c), - E = f.address - if ((s.push(E), 0 === t._crypto_stream_chacha20_xor(E, n, c, 0, o, y))) { - var x = p(f, _) - return v(s), x - } - g(s, 'invalid usage') - } - function et(e, r, a, _, s) { - var n = [] - i(s) - var c = u((e = m(n, e, 'input_message'))), - o = e.length - n.push(c), (r = m(n, r, 'nonce')) - var h, - y = 0 | t._crypto_stream_chacha20_noncebytes() - r.length !== y && b(n, 'invalid nonce length'), - (h = u(r)), - n.push(h), - f(n, a, 'nonce_increment'), - ('number' != typeof a || (0 | a) !== a || a < 0) && - b(n, 'nonce_increment must be an unsigned integer'), - (_ = m(n, _, 'key')) - var d, - E = 0 | t._crypto_stream_chacha20_keybytes() - _.length !== E && b(n, 'invalid key length'), (d = u(_)), n.push(d) - var x = new l(0 | o), - k = x.address - if ((n.push(k), 0 === t._crypto_stream_chacha20_xor_ic(k, c, o, 0, h, a, 0, d))) { - var S = p(x, s) - return v(n), S - } - g(n, 'invalid usage') - } - function rt(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_stream_keybytes()), - _ = a.address - r.push(_), t._crypto_stream_keygen(_) - var s = p(a, e) - return v(r), s - } - function tt(e) { - var r = [] - i(e) - var a = new l(0 | t._crypto_stream_xchacha20_keybytes()), - _ = a.address - r.push(_), t._crypto_stream_xchacha20_keygen(_) - var s = p(a, e) - return v(r), s - } - function at(e, r, a, _) { - var s = [] - i(_) - var n = u((e = m(s, e, 'input_message'))), - c = e.length - s.push(n), (r = m(s, r, 'nonce')) - var o, - h = 0 | t._crypto_stream_xchacha20_noncebytes() - r.length !== h && b(s, 'invalid nonce length'), - (o = u(r)), - s.push(o), - (a = m(s, a, 'key')) - var y, - d = 0 | t._crypto_stream_xchacha20_keybytes() - a.length !== d && b(s, 'invalid key length'), (y = u(a)), s.push(y) - var f = new l(0 | c), - E = f.address - if ((s.push(E), 0 === t._crypto_stream_xchacha20_xor(E, n, c, 0, o, y))) { - var x = p(f, _) - return v(s), x - } - g(s, 'invalid usage') - } - function _t(e, r, a, _, s) { - var n = [] - i(s) - var c = u((e = m(n, e, 'input_message'))), - o = e.length - n.push(c), (r = m(n, r, 'nonce')) - var h, - y = 0 | t._crypto_stream_xchacha20_noncebytes() - r.length !== y && b(n, 'invalid nonce length'), - (h = u(r)), - n.push(h), - f(n, a, 'nonce_increment'), - ('number' != typeof a || (0 | a) !== a || a < 0) && - b(n, 'nonce_increment must be an unsigned integer'), - (_ = m(n, _, 'key')) - var d, - E = 0 | t._crypto_stream_xchacha20_keybytes() - _.length !== E && b(n, 'invalid key length'), (d = u(_)), n.push(d) - var x = new l(0 | o), - k = x.address - if ((n.push(k), 0 === t._crypto_stream_xchacha20_xor_ic(k, c, o, 0, h, a, 0, d))) { - var S = p(x, s) - return v(n), S - } - g(n, 'invalid usage') - } - function st(e, r) { - var a = [] - i(r), - f(a, e, 'length'), - ('number' != typeof e || (0 | e) !== e || e < 0) && - b(a, 'length must be an unsigned integer') - var _ = new l(0 | e), - s = _.address - a.push(s), t._randombytes_buf(s, e) - var n = p(_, r) - return v(a), n - } - function nt(e, r, a) { - var _ = [] - i(a), - f(_, e, 'length'), - ('number' != typeof e || (0 | e) !== e || e < 0) && - b(_, 'length must be an unsigned integer'), - (r = m(_, r, 'seed')) - var s, - n = 0 | t._randombytes_seedbytes() - r.length !== n && b(_, 'invalid seed length'), (s = u(r)), _.push(s) - var c = new l(0 | e), - o = c.address - _.push(o), t._randombytes_buf_deterministic(o, e, s) - var h = p(c, a) - return v(_), h - } - function ct(e) { - i(e), t._randombytes_close() - } - function ot(e) { - i(e) - var r = t._randombytes_random() >>> 0 - return v([]), r - } - function ht(e, r) { - var a = [] - i(r) - for (var _ = t._malloc(24), s = 0; s < 6; s++) - t.setValue( - _ + 4 * s, - t.Runtime.addFunction( - e[['implementation_name', 'random', 'stir', 'uniform', 'buf', 'close'][s]] - ), - 'i32' - ) - 0 != (0 | t._randombytes_set_implementation(_)) && - g(a, 'unsupported implementation'), - v(a) - } - function pt(e) { - i(e), t._randombytes_stir() - } - function yt(e, r) { - var a = [] - i(r), - f(a, e, 'upper_bound'), - ('number' != typeof e || (0 | e) !== e || e < 0) && - b(a, 'upper_bound must be an unsigned integer') - var _ = t._randombytes_uniform(e) >>> 0 - return v(a), _ - } - function it() { - var e = t._sodium_version_string(), - r = t.UTF8ToString(e) - return v([]), r - } - return ( - (l.prototype.to_Uint8Array = function () { - var e = new Uint8Array(this.length) - return e.set(t.HEAPU8.subarray(this.address, this.address + this.length)), e - }), - (e.add = function (e, r) { - if (!(e instanceof Uint8Array && r instanceof Uint8Array)) - throw new TypeError('Only Uint8Array instances can added') - var t = e.length, - a = 0, - _ = 0 - if (r.length != e.length) - throw new TypeError('Arguments must have the same length') - for (_ = 0; _ < t; _++) (a >>= 8), (a += e[_] + r[_]), (e[_] = 255 & a) - }), - (e.base64_variants = c), - (e.compare = function (e, r) { - if (!(e instanceof Uint8Array && r instanceof Uint8Array)) - throw new TypeError('Only Uint8Array instances can be compared') - if (e.length !== r.length) - throw new TypeError('Only instances of identical length can be compared') - for (var t = 0, a = 1, _ = e.length; _-- > 0; ) - (t |= ((r[_] - e[_]) >> 8) & a), (a &= ((r[_] ^ e[_]) - 1) >> 8) - return t + t + a - 1 - }), - (e.from_base64 = function (e, r) { - r = o(r) - var a, - _ = [], - s = new l((3 * (e = m(_, e, 'input')).length) / 4), - n = u(e), - c = d(4), - h = d(4) - return ( - _.push(n), - _.push(s.address), - _.push(s.result_bin_len_p), - _.push(s.b64_end_p), - 0 !== t._sodium_base642bin(s.address, s.length, n, e.length, 0, c, h, r) && - g(_, 'invalid input'), - t.getValue(h, 'i32') - n !== e.length && g(_, 'incomplete input'), - (s.length = t.getValue(c, 'i32')), - (a = s.to_Uint8Array()), - v(_), - a - ) - }), - (e.from_hex = function (e) { - var r, - a = [], - _ = new l((e = m(a, e, 'input')).length / 2), - s = u(e), - n = d(4) - return ( - a.push(s), - a.push(_.address), - a.push(_.hex_end_p), - 0 !== t._sodium_hex2bin(_.address, _.length, s, e.length, 0, 0, n) && - g(a, 'invalid input'), - t.getValue(n, 'i32') - s !== e.length && g(a, 'incomplete input'), - (r = _.to_Uint8Array()), - v(a), - r - ) - }), - (e.from_string = _), - (e.increment = function (e) { - if (!(e instanceof Uint8Array)) - throw new TypeError('Only Uint8Array instances can be incremented') - for (var r = 256, t = 0, a = e.length; t < a; t++) - (r >>= 8), (r += e[t]), (e[t] = 255 & r) - }), - (e.is_zero = function (e) { - if (!(e instanceof Uint8Array)) - throw new TypeError('Only Uint8Array instances can be checked') - for (var r = 0, t = 0, a = e.length; t < a; t++) r |= e[t] - return 0 === r - }), - (e.libsodium = r), - (e.memcmp = function (e, r) { - if (!(e instanceof Uint8Array && r instanceof Uint8Array)) - throw new TypeError('Only Uint8Array instances can be compared') - if (e.length !== r.length) - throw new TypeError('Only instances of identical length can be compared') - for (var t = 0, a = 0, _ = e.length; a < _; a++) t |= e[a] ^ r[a] - return 0 === t - }), - (e.memzero = function (e) { - if (!(e instanceof Uint8Array)) - throw new TypeError('Only Uint8Array instances can be wiped') - for (var r = 0, t = e.length; r < t; r++) e[r] = 0 - }), - (e.output_formats = function () { - return ['uint8array', 'text', 'hex', 'base64'] - }), - (e.pad = function (e, r) { - if (!(e instanceof Uint8Array)) throw new TypeError('buffer must be a Uint8Array') - if ((r |= 0) <= 0) throw new Error('block size must be > 0') - var a, - _ = [], - s = d(4), - n = 1, - c = 0, - o = 0 | e.length, - h = new l(o + r) - _.push(s), _.push(h.address) - for (var p = h.address, y = h.address + o + r; p < y; p++) - (t.HEAPU8[p] = e[c]), - (c += n = - 1 & - ~(((65535 & (((o -= n) >>> 48) | (o >>> 32) | (o >>> 16) | o)) - 1) >> 16)) - return ( - 0 !== t._sodium_pad(s, h.address, e.length, r, h.length) && - g(_, 'internal error'), - (h.length = t.getValue(s, 'i32')), - (a = h.to_Uint8Array()), - v(_), - a - ) - }), - (e.unpad = function (e, r) { - if (!(e instanceof Uint8Array)) throw new TypeError('buffer must be a Uint8Array') - if ((r |= 0) <= 0) throw new Error('block size must be > 0') - var a = [], - _ = u(e), - s = d(4) - return ( - a.push(_), - a.push(s), - 0 !== t._sodium_unpad(s, _, e.length, r) && g(a, 'unsupported/invalid padding'), - (e = (e = new Uint8Array(e)).subarray(0, t.getValue(s, 'i32'))), - v(a), - e - ) - }), - (e.ready = a), - (e.symbols = function () { - return Object.keys(e).sort() - }), - (e.to_base64 = h), - (e.to_hex = n), - (e.to_string = s), - e - ) - } - var t = - 'object' == typeof e.sodium && 'function' == typeof e.sodium.onload - ? e.sodium.onload - : null - 'function' == typeof define && define.amd - ? define(['exports', 'libsodium'], r) - : 'object' == typeof exports && 'string' != typeof exports.nodeName - ? r(exports, require('libsodium')) - : (e.sodium = r((e.commonJsStrict = {}), e.libsodium)), - t && - e.sodium.ready.then(function () { - t(e.sodium) - }) - })(this) - }, - { libsodium: 154 } - ], - 154: [ - function (require, module, exports) { - ;(function ( - process, - global, - Buffer, - __argument0, - __argument1, - __argument2, - __argument3, - __dirname - ) { - ;(function () { - !(function (A) { - function I(A) { - 'use strict' - var I - void 0 === (I = A) && (I = {}) - var g = I - 'object' != typeof g.sodium && - ('object' == typeof global - ? (g = global) - : 'object' == typeof window && (g = window)), - 'object' == typeof g.sodium && - 'number' == typeof g.sodium.totalMemory && - (I.TOTAL_MEMORY = g.sodium.totalMemory) - var B = I - return ( - (I.ready = new Promise(function (A, I) { - ;((Q = B).onAbort = I), - (Q.print = function (A) {}), - (Q.printErr = function (A) {}), - (Q.onRuntimeInitialized = function () { - try { - Q._crypto_secretbox_keybytes(), A() - } catch (A) { - I(A) - } - }), - (Q.useBackupModule = function () { - return new Promise(function (A, I) { - ;((Q = {}).onAbort = I), - (Q.onRuntimeInitialized = function () { - Object.keys(B).forEach(function (A) { - 'getRandomValue' !== A && delete B[A] - }), - Object.keys(Q).forEach(function (A) { - B[A] = Q[A] - }), - A() - }) - var g, - Q = void 0 !== Q ? Q : {}, - C = {} - for (g in Q) Q.hasOwnProperty(g) && (C[g] = Q[g]) - var E = [], - i = !1, - n = !1, - a = !1, - r = !1 - ;(i = 'object' == typeof window), - (n = 'function' == typeof importScripts), - (a = - 'object' == typeof process && - 'object' == typeof process.versions && - 'string' == typeof process.versions.node), - (r = !i && !a && !n) - var o, - e, - t, - f, - c, - y = '' - function s(A) { - return Q.locateFile ? Q.locateFile(A, y) : y + A - } - a - ? ((y = n ? require('path').dirname(y) + '/' : __dirname + '/'), - (o = function (A, I) { - var g = bA(A) - return g - ? I - ? g - : g.toString() - : (f || (f = require('fs')), - c || (c = require('path')), - (A = c.normalize(A)), - f.readFileSync(A, I ? null : 'utf8')) - }), - (t = function (A) { - var I = o(A, !0) - return I.buffer || (I = new Uint8Array(I)), G(I.buffer), I - }), - process.argv.length > 1 && process.argv[1].replace(/\\/g, '/'), - (E = process.argv.slice(2)), - 'undefined' != typeof module && (module.exports = Q), - (Q.inspect = function () { - return '[Emscripten Module object]' - })) - : r - ? ('undefined' != typeof read && - (o = function (A) { - var I = bA(A) - return I ? _A(I) : read(A) - }), - (t = function (A) { - var I - return (I = bA(A)) - ? I - : 'function' == typeof readbuffer - ? new Uint8Array(readbuffer(A)) - : (G('object' == typeof (I = read(A, 'binary'))), I) - }), - 'undefined' != typeof scriptArgs - ? (E = scriptArgs) - : void 0 !== arguments && (E = arguments), - 'undefined' != typeof print && - ('undefined' == typeof console && (console = {}), - (console.log = print), - (console.warn = console.error = - 'undefined' != typeof printErr ? printErr : print))) - : (i || n) && - (n - ? (y = self.location.href) - : 'undefined' != typeof document && - document.currentScript && - (y = document.currentScript.src), - (y = - 0 !== y.indexOf('blob:') - ? y.substr(0, y.lastIndexOf('/') + 1) - : ''), - (o = function (A) { - try { - var I = new XMLHttpRequest() - return I.open('GET', A, !1), I.send(null), I.responseText - } catch (I) { - var g = bA(A) - if (g) return _A(g) - throw I - } - }), - n && - (t = function (A) { - try { - var I = new XMLHttpRequest() - return ( - I.open('GET', A, !1), - (I.responseType = 'arraybuffer'), - I.send(null), - new Uint8Array(I.response) - ) - } catch (I) { - var g = bA(A) - if (g) return g - throw I - } - }), - (e = function (A, I, g) { - var B = new XMLHttpRequest() - B.open('GET', A, !0), - (B.responseType = 'arraybuffer'), - (B.onload = function () { - if (200 == B.status || (0 == B.status && B.response)) - I(B.response) - else { - var Q = bA(A) - Q ? I(Q.buffer) : g() - } - }), - (B.onerror = g), - B.send(null) - })), - Q.print - var w, - h = Q.printErr || void 0 - for (g in C) C.hasOwnProperty(g) && (Q[g] = C[g]) - ;(C = null), - Q.arguments && (E = Q.arguments), - Q.thisProgram && Q.thisProgram, - Q.quit && Q.quit, - Q.wasmBinary && (w = Q.wasmBinary), - Q.noExitRuntime && Q.noExitRuntime - var D, - u = { - Memory: function (A) { - this.buffer = new ArrayBuffer(65536 * A.initial) - }, - Module: function (A) {}, - Instance: function (A, I) { - this.exports = (function (A) { - for (var I, g = new Uint8Array(123), B = 25; B >= 0; --B) - (g[48 + B] = 52 + B), (g[65 + B] = B), (g[97 + B] = 26 + B) - function Q(A, I, B) { - for ( - var Q, - C, - E = 0, - i = I, - n = B.length, - a = - I + - ((3 * n) >> 2) - - ('=' == B[n - 2]) - - ('=' == B[n - 1]); - E < n; - E += 4 - ) - (Q = g[B.charCodeAt(E + 1)]), - (C = g[B.charCodeAt(E + 2)]), - (A[i++] = (g[B.charCodeAt(E)] << 2) | (Q >> 4)), - i < a && (A[i++] = (Q << 4) | (C >> 2)), - i < a && (A[i++] = (C << 6) | g[B.charCodeAt(E + 3)]) - } - return ( - (g[43] = 62), - (g[47] = 63), - (function (A) { - var g = A.a, - B = g.buffer - g.grow = function (A) { - A |= 0 - var Q = 0 | Wg(), - o = (Q + A) | 0 - if (Q < o && o < 65536) { - var e = new ArrayBuffer(r(o, 65536)) - new Int8Array(e).set(C), - (C = new Int8Array(e)), - (E = new Int16Array(e)), - (i = new Int32Array(e)), - (n = new Uint8Array(e)), - new Uint16Array(e), - (a = new Uint32Array(e)), - new Float32Array(e), - new Float64Array(e), - (B = e), - (g.buffer = B), - (I = n) - } - return Q - } - var C = new Int8Array(B), - E = new Int16Array(B), - i = new Int32Array(B), - n = new Uint8Array(B), - a = (new Uint16Array(B), new Uint32Array(B)), - r = (new Float32Array(B), new Float64Array(B), Math.imul), - o = (Math.fround, Math.abs, Math.clz32), - e = - (Math.min, - Math.max, - Math.floor, - Math.ceil, - Math.trunc, - Math.sqrt, - A.abort), - t = A.b, - f = A.c, - c = A.d, - y = A.e, - s = A.f, - w = A.g, - h = 5279312, - D = 0, - u = 0, - p = 0 - function l(A, I) { - var g, - B, - Q, - E, - a = 0, - r = 0, - o = 0, - e = 0, - t = 0, - f = 0, - c = 0, - y = 0, - s = 0, - w = 0, - D = 0, - u = 0, - l = 0, - F = 0, - G = 0, - k = 0, - _ = 0, - H = 0, - Y = 0, - b = 0, - m = 0, - v = 0, - U = 0, - S = 0, - N = 0, - M = 0, - d = 0, - P = 0, - R = 0, - J = 0, - x = 0, - L = 0, - K = 0, - q = 0, - V = 0, - W = 0, - T = 0, - j = 0, - Z = 0, - O = 0, - z = 0, - $ = 0, - AA = 0, - IA = 0, - gA = 0, - BA = 0, - QA = 0, - CA = 0, - EA = 0, - iA = 0, - nA = 0, - aA = 0, - rA = 0, - oA = 0, - eA = 0, - tA = 0, - fA = 0, - cA = 0, - yA = 0, - sA = 0, - wA = 0, - hA = 0, - DA = 0 - for ( - h = W = (h - 256) | 0; - (V = ((K = Z << 3) + ((W + 128) | 0)) | 0), - (QA = - n[(4 + (K = (I + K) | 0)) | 0] | - (n[(K + 5) | 0] << 8) | - (n[(K + 6) | 0] << 16) | - (n[(K + 7) | 0] << 24)), - (i[V >> 2] = - n[0 | K] | - (n[(K + 1) | 0] << 8) | - (n[(K + 2) | 0] << 16) | - (n[(K + 3) | 0] << 24)), - (i[(V + 4) >> 2] = QA), - 16 != (0 | (Z = (Z + 1) | 0)); - - ); - for ( - g = X(W, A, 64), - K = i[(I = g) >> 2], - Z = i[(I + 4) >> 2], - a = K, - K = - ((QA = i[(I + 32) >> 2]) + - (W = i[(I + 128) >> 2])) | - 0, - I = (($ = i[(I + 36) >> 2]) + i[(I + 132) >> 2]) | 0, - I = K >>> 0 < W >>> 0 ? (I + 1) | 0 : I, - W = K, - I = (I + Z) | 0, - W = I = - (K = (a + K) | 0) >>> 0 < W >>> 0 ? (I + 1) | 0 : I, - x = ug( - (Z = K) ^ - (n[0 | (K = (A - -64) | 0)] | - (n[(K + 1) | 0] << 8) | - (n[(K + 2) | 0] << 16) | - (n[(K + 3) | 0] << 24)) ^ - -1377402159, - I ^ - (n[(K + 4) | 0] | - (n[(K + 5) | 0] << 8) | - (n[(K + 6) | 0] << 16) | - (n[(K + 7) | 0] << 24)) ^ - 1359893119, - 32 - ), - K = I = p, - I = (I + 1779033703) | 0, - a = QA ^ (V = (x - 205731576) | 0), - QA = I = V >>> 0 < 4089235720 ? (I + 1) | 0 : I, - b = ug(a, $ ^ I, 24), - m = I = p, - j = K, - a = x, - I = (I + W) | 0, - I = - ((I = - (x = (b + Z) | 0) >>> 0 < Z >>> 0 - ? (I + 1) | 0 - : I) + - (t = B = i[(g + 140) >> 2])) | - 0, - a = ug( - a ^ (o = Z = ((K = i[(g + 136) >> 2]) + x) | 0), - (G = x >>> 0 > o >>> 0 ? (I + 1) | 0 : I) ^ j, - 16 - ), - I = (QA + (d = p)) | 0, - t = ug( - (l = Z = (V + a) | 0) ^ b, - (W = V >>> 0 > l >>> 0 ? (I + 1) | 0 : I) ^ m, - 63 - ), - f = p, - V = i[(g + 12) >> 2], - Z = - ((b = i[(g + 144) >> 2]) + - ($ = QA = i[(g + 40) >> 2])) | - 0, - I = - ((T = i[(g + 148) >> 2]) + (j = i[(g + 44) >> 2])) | - 0, - I = Z >>> 0 < $ >>> 0 ? (I + 1) | 0 : I, - $ = Z, - I = (I + V) | 0, - I = - (Z = (Z + i[(g + 8) >> 2]) | 0) >>> 0 < $ >>> 0 - ? (I + 1) | 0 - : I, - x = ug( - Z ^ - (n[(A + 72) | 0] | - (n[(A + 73) | 0] << 8) | - (n[(A + 74) | 0] << 16) | - (n[(A + 75) | 0] << 24)) ^ - 725511199, - (n[(A + 76) | 0] | - (n[(A + 77) | 0] << 8) | - (n[(A + 78) | 0] << 16) | - (n[(A + 79) | 0] << 24)) ^ - I ^ - -1694144372, - 32 - ), - j = ug( - (r = (V = (x - 2067093701) | 0) ^ QA), - j ^ - (m = - ((QA = p) - - (((x >>> 0 < 2067093701) + 1150833018) | 0)) | - 0), - 24 - ), - c = i[(g + 156) >> 2], - r = j, - I = (I + ($ = p)) | 0, - I = - ((I = - (j = (j + Z) | 0) >>> 0 < Z >>> 0 - ? (I + 1) | 0 - : I) + - c) | - 0, - eA = ug( - (u = Z = (j + i[(g + 152) >> 2]) | 0) ^ x, - (k = j >>> 0 > u >>> 0 ? (I + 1) | 0 : I) ^ QA, - 16 - ), - I = (m + (H = p)) | 0, - cA = Z = (V + eA) | 0, - x = ug( - r ^ Z, - (V = V >>> 0 > Z >>> 0 ? (I + 1) | 0 : I) ^ $, - 63 - ), - m = p, - QA = i[(g + 20) >> 2], - Z = - ((U = i[(g + 160) >> 2]) + (j = i[(g + 48) >> 2])) | - 0, - I = - ((iA = i[(g + 164) >> 2]) + - (y = i[(g + 52) >> 2])) | - 0, - $ = Z, - I = - ((I = Z >>> 0 < j >>> 0 ? (I + 1) | 0 : I) + QA) | - 0, - rA = Z = (Z + i[(g + 16) >> 2]) | 0, - Z = Z >>> 0 < $ >>> 0 ? (I + 1) | 0 : I, - s = ug( - rA ^ - (n[(A + 80) | 0] | - (n[(A + 81) | 0] << 8) | - (n[(A + 82) | 0] << 16) | - (n[(A + 83) | 0] << 24)) ^ - -79577749, - Z ^ - (n[(A + 84) | 0] | - (n[(A + 85) | 0] << 8) | - (n[(A + 86) | 0] << 16) | - (n[(A + 87) | 0] << 24)) ^ - 528734635, - 32 - ), - QA = I = p, - I = (I + 1013904242) | 0, - r = j ^ ($ = (s - 23791573) | 0), - j = I = $ >>> 0 < 4271175723 ? (I + 1) | 0 : I, - I = ug(r, y ^ I, 24), - c = QA, - Q = i[(g + 172) >> 2], - r = I, - e = s, - s = I, - rA = (I + rA) | 0, - I = ((y = p) + Z) | 0, - I = - ((I = s >>> 0 > rA >>> 0 ? (I + 1) | 0 : I) + - (J = Q)) | - 0, - AA = ug( - e ^ - (F = Z = - ((QA = i[(g + 168) >> 2]) + (s = rA)) | 0), - (J = s >>> 0 > F >>> 0 ? (I + 1) | 0 : I) ^ c, - 16 - ), - I = (j + (M = p)) | 0, - y = ug( - r ^ (_ = Z = ($ + AA) | 0), - (j = _ >>> 0 < $ >>> 0 ? (I + 1) | 0 : I) ^ y, - 63 - ), - c = p, - s = i[(g + 28) >> 2], - $ = - ((Z = i[(g + 176) >> 2]) + - (D = rA = i[(g + 56) >> 2])) | - 0, - I = - ((yA = i[(g + 180) >> 2]) + - (w = i[(g + 60) >> 2])) | - 0, - I = - ((I = D >>> 0 > $ >>> 0 ? (I + 1) | 0 : I) + s) | 0, - I = - (D = $) >>> 0 > - (v = $ = (D + i[(g + 24) >> 2]) | 0) >>> 0 - ? (I + 1) | 0 - : I, - S = ug( - v ^ - (n[(A + 88) | 0] | - (n[(A + 89) | 0] << 8) | - (n[(A + 90) | 0] << 16) | - (n[(A + 91) | 0] << 24)) ^ - 327033209, - I ^ - (n[(A + 92) | 0] | - (n[(A + 93) | 0] << 8) | - (n[(A + 94) | 0] << 16) | - (n[(A + 95) | 0] << 24)) ^ - 1541459225, - 32 - ), - s = ug( - (e = (r = ((s = S) + 1595750129) | 0) ^ rA), - w ^ - (rA = - (($ = p) - - (((s >>> 0 < 2699217167) + 1521486533) | 0)) | - 0), - 24 - ), - w = rA, - Y = $, - rA = i[(g + 188) >> 2], - e = s, - P = r, - I = ((D = p) + I) | 0, - I = - ((I = - (v = (s + v) | 0) >>> 0 < s >>> 0 - ? (I + 1) | 0 - : I) + - (N = rA)) | - 0, - O = s = (($ = i[(g + 184) >> 2]) + v) | 0, - r = ug( - s ^ S, - (r = Y) ^ (Y = s >>> 0 < v >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = ((I = w) + (w = p)) | 0, - v = s = (P + r) | 0, - S = D, - D = I = s >>> 0 < r >>> 0 ? (I + 1) | 0 : I, - e = ug(e ^ s, S ^ I, 63), - s = p, - S = m, - P = x, - L = _, - I = (m + G) | 0, - m = o = (o + x) | 0, - I = - ((I = o >>> 0 < x >>> 0 ? (I + 1) | 0 : I) + - (N = q = i[(g + 196) >> 2])) | - 0, - _ = ug( - (o = x = ((IA = i[(g + 192) >> 2]) + o) | 0) ^ r, - (x = m >>> 0 > o >>> 0 ? (I + 1) | 0 : I) ^ w, - 32 - ), - I = ((I = j) + (j = p)) | 0, - G = I = - (m = (L + (G = _)) | 0) >>> 0 < G >>> 0 - ? (I + 1) | 0 - : I, - I = ug(P ^ m, I ^ S, 24), - fA = i[(g + 204) >> 2], - P = I, - r = _, - w = o, - o = I, - _ = (w + I) | 0, - I = ((w = p) + x) | 0, - I = - ((I = o >>> 0 > _ >>> 0 ? (I + 1) | 0 : I) + - (N = fA)) | - 0, - CA = x = ((S = i[(g + 200) >> 2]) + (o = _)) | 0, - tA = ug( - r ^ x, - (o = o >>> 0 > x >>> 0 ? (I + 1) | 0 : I) ^ j, - 16 - ), - I = (G + (_ = p)) | 0, - N = ug( - P ^ (r = j = (m + tA) | 0), - (G = w) ^ (w = m >>> 0 > r >>> 0 ? (I + 1) | 0 : I), - 63 - ), - G = p, - j = c, - L = y, - I = (c + k) | 0, - I = - ((I = - (m = (y + u) | 0) >>> 0 < y >>> 0 - ? (I + 1) | 0 - : I) + - (P = oA = i[(g + 212) >> 2])) | - 0, - u = ug( - (R = a) ^ - (a = m = ((x = i[(g + 208) >> 2]) + (y = m)) | 0), - (y = y >>> 0 > a >>> 0 ? (I + 1) | 0 : I) ^ d, - 32 - ), - I = (D + (m = p)) | 0, - j = ug( - L ^ (c = (v + u) | 0), - (I = c >>> 0 < v >>> 0 ? (I + 1) | 0 : I) ^ j, - 24 - ), - d = I, - k = m, - z = i[(g + 220) >> 2], - L = j, - R = c, - I = ((c = p) + y) | 0, - I = - ((I = - (D = (a + j) | 0) >>> 0 < j >>> 0 - ? (I + 1) | 0 - : I) + - (P = z)) | - 0, - k = ug( - (D = j = ((m = i[(g + 216) >> 2]) + (y = D)) | 0) ^ - u, - (v = y >>> 0 > D >>> 0 ? (I + 1) | 0 : I) ^ k, - 16 - ), - I = ((a = p) + d) | 0, - aA = j = (R + (y = k)) | 0, - P = ug( - L ^ j, - (y = y >>> 0 > j >>> 0 ? (I + 1) | 0 : I) ^ c, - 63 - ), - c = p, - d = s, - L = e, - I = (s + J) | 0, - I = - ((I = - (e = (e + F) | 0) >>> 0 < F >>> 0 - ? (I + 1) | 0 - : I) + - (u = E = i[(g + 228) >> 2])) | - 0, - e = ug( - (J = s = ((j = i[(g + 224) >> 2]) + e) | 0) ^ eA, - (s = s >>> 0 < e >>> 0 ? (I + 1) | 0 : I) ^ H, - 32 - ), - I = ((H = p) + W) | 0, - l = F = (l + e) | 0, - W = ug( - L ^ F, - (I = F >>> 0 < e >>> 0 ? (I + 1) | 0 : I) ^ d, - 24 - ), - F = I, - L = i[(g + 236) >> 2], - u = W, - I = ((d = p) + s) | 0, - I = - ((I = - (J = (J + W) | 0) >>> 0 < W >>> 0 - ? (I + 1) | 0 - : I) + - L) | - 0, - nA = ug( - (J = W = ((BA = i[(g + 232) >> 2]) + (s = J)) | 0) ^ - e, - (W = H) ^ (H = s >>> 0 > J >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = ((I = F) + (F = p)) | 0, - s = ug( - u ^ (e = W = ((s = nA) + l) | 0), - (l = s >>> 0 > e >>> 0 ? (I + 1) | 0 : I) ^ d, - 63 - ), - d = p, - u = f, - gA = t, - EA = cA, - I = (f + Y) | 0, - I = - ((I = - (cA = (t + O) | 0) >>> 0 < t >>> 0 - ? (I + 1) | 0 - : I) + - (R = eA = i[(g + 244) >> 2])) | - 0, - f = I = - (t = ((W = i[(g + 240) >> 2]) + (f = cA)) | 0) >>> - 0 < - f >>> 0 - ? (I + 1) | 0 - : I, - AA = ug(t ^ AA, I ^ M, 32), - I = ((I = V) + (V = p)) | 0, - O = M = (EA + (Y = AA)) | 0, - u = ug( - gA ^ M, - (I = Y >>> 0 > M >>> 0 ? (I + 1) | 0 : I) ^ u, - 24 - ), - gA = EA = p, - M = I, - Y = V, - sA = u, - I = (f + EA) | 0, - I = - ((I = - (u = (t + u) | 0) >>> 0 < t >>> 0 - ? (I + 1) | 0 - : I) + - (cA = i[(g + 252) >> 2])) | - 0, - u = t = ((V = i[(g + 248) >> 2]) + (f = u)) | 0, - R = ug( - t ^ AA, - (R = Y) ^ (Y = t >>> 0 < f >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = ((I = M) + (M = p)) | 0, - AA = ug( - sA ^ (EA = t = ((f = R) + O) | 0), - (t = t >>> 0 < f >>> 0 ? (I + 1) | 0 : I) ^ gA, - 63 - ), - gA = I = p, - f = I, - sA = k, - I = (o + eA) | 0, - I = - ((I = - (k = W) >>> 0 > (O = (k + CA) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - f) | - 0, - O = ug( - sA ^ (f = k = ((o = O) + AA) | 0), - (k = o >>> 0 > f >>> 0 ? (I + 1) | 0 : I) ^ a, - 32 - ), - I = (l + (o = p)) | 0, - e = I = - (a = (e + O) | 0) >>> 0 < e >>> 0 ? (I + 1) | 0 : I, - CA = AA = ug(AA ^ a, gA ^ I, 24), - gA = I = p, - l = I, - wA = AA, - I = (k + oA) | 0, - I = - ((I = - (AA = (f + x) | 0) >>> 0 < f >>> 0 - ? (I + 1) | 0 - : I) + - l) | - 0, - CA = f = (CA + (k = AA)) | 0, - sA = ug( - f ^ O, - (l = o) ^ (o = f >>> 0 < k >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (e + (l = p)) | 0, - e = I = - (f = (a + sA) | 0) >>> 0 < a >>> 0 - ? (I + 1) | 0 - : I, - AA = ug(wA ^ (a = f), I ^ gA, 63), - k = p, - O = N, - I = (iA + (f = G)) | 0, - I = - ((I = - (N = (U + N) | 0) >>> 0 < U >>> 0 - ? (I + 1) | 0 - : I) + - v) | - 0, - U = I = - (G = (D + N) | 0) >>> 0 < D >>> 0 ? (I + 1) | 0 : I, - v = ug(G ^ nA, I ^ F, 32), - I = ((I = t) + (t = p)) | 0, - I = - (F = ((D = v) + EA) | 0) >>> 0 < D >>> 0 - ? (I + 1) | 0 - : I, - D = f, - f = I, - N = ug(O ^ F, D ^ I, 24), - iA = I = p, - D = I, - O = v, - I = (U + q) | 0, - I = - ((I = - (v = (G + IA) | 0) >>> 0 < G >>> 0 - ? (I + 1) | 0 - : I) + - D) | - 0, - I = - (G = ((U = v) + N) | 0) >>> 0 < U >>> 0 - ? (I + 1) | 0 - : I, - U = G, - D = I, - nA = ug(O ^ G, I ^ t, 16), - I = (f + (v = p)) | 0, - EA = t = (F + nA) | 0, - N = ug( - t ^ N, - (f = t >>> 0 < F >>> 0 ? (I + 1) | 0 : I) ^ iA, - 63 - ), - t = p, - G = c, - I = (c + fA) | 0, - I = - ((I = - (F = (S + P) | 0) >>> 0 < S >>> 0 - ? (I + 1) | 0 - : I) + - H) | - 0, - M = ug( - (S = c = (F + J) | 0) ^ R, - (c = c >>> 0 < J >>> 0 ? (I + 1) | 0 : I) ^ M, - 32 - ), - I = (w + (H = p)) | 0, - I = - r >>> 0 > (F = (r + M) | 0) >>> 0 ? (I + 1) | 0 : I, - r = G, - G = I, - r = w = ug(F ^ P, r ^ I, 24), - P = I = p, - J = I, - O = M, - I = (c + cA) | 0, - I = - ((I = - (w = ((M = V) + S) | 0) >>> 0 < M >>> 0 - ? (I + 1) | 0 - : I) + - J) | - 0, - R = c = (r + w) | 0, - gA = ug( - O ^ c, - (M = H) ^ (H = c >>> 0 < w >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (G + (J = p)) | 0, - P = ug( - (S = c = (F + gA) | 0) ^ r, - (c = c >>> 0 < F >>> 0 ? (I + 1) | 0 : I) ^ P, - 63 - ), - G = p, - r = s, - I = ((F = d) + L) | 0, - I = - ((I = - (M = (s + BA) | 0) >>> 0 < s >>> 0 - ? (I + 1) | 0 - : I) + - Y) | - 0, - w = ug( - (M = s = (u + M) | 0) ^ tA, - (s = s >>> 0 < u >>> 0 ? (I + 1) | 0 : I) ^ _, - 32 - ), - I = ((I = y) + (y = p)) | 0, - _ = ug( - r ^ (Y = d = (w + aA) | 0), - (I = d >>> 0 < w >>> 0 ? (I + 1) | 0 : I) ^ F, - 24 - ), - u = d = p, - F = I, - O = Y, - Y = w, - w = ((I = M) + (M = Z)) | 0, - I = (s + yA) | 0, - I = - ((I = w >>> 0 < M >>> 0 ? (I + 1) | 0 : I) + d) | 0, - M = s = (w + (r = _)) | 0, - w = I = s >>> 0 < w >>> 0 ? (I + 1) | 0 : I, - Y = ug(Y ^ s, I ^ y, 16), - I = ((d = p) + F) | 0, - O = ug( - _ ^ (r = y = (O + (s = Y)) | 0), - (s = r >>> 0 < s >>> 0 ? (I + 1) | 0 : I) ^ u, - 63 - ), - y = p, - F = t, - _ = S, - u = Y, - I = (o + B) | 0, - I = - ((I = - (Y = K) >>> 0 > (S = (Y + CA) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - t) | - 0, - S = ug( - u ^ (t = Y = (S + N) | 0), - (o = d) ^ (d = t >>> 0 < S >>> 0 ? (I + 1) | 0 : I), - 32 - ), - I = ((I = c) + (c = p)) | 0, - I = - (o = S) >>> 0 > (Y = (_ + o) | 0) >>> 0 - ? (I + 1) | 0 - : I, - u = _ = ug((o = Y) ^ N, I ^ F, 24), - N = F = p, - Y = I, - CA = S, - I = (d + E) | 0, - I = - ((I = - (S = (t + j) | 0) >>> 0 < t >>> 0 - ? (I + 1) | 0 - : I) + - F) | - 0, - F = t = ((d = S) + _) | 0, - tA = ug( - CA ^ t, - (S = t >>> 0 < d >>> 0 ? (I + 1) | 0 : I) ^ c, - 16 - ), - I = ((I = Y) + (Y = p)) | 0, - o = t = ((c = tA) + o) | 0, - iA = ug( - t ^ u, - (_ = t >>> 0 < c >>> 0 ? (I + 1) | 0 : I) ^ N, - 63 - ), - c = p, - N = r, - I = (D + (t = G)) | 0, - I = - ((I = - (d = (U + P) | 0) >>> 0 < U >>> 0 - ? (I + 1) | 0 - : I) + - (u = aA = i[(g + 132) >> 2])) | - 0, - d = I = - (G = ((r = i[(g + 128) >> 2]) + d) | 0) >>> 0 < - d >>> 0 - ? (I + 1) | 0 - : I, - D = ug(G ^ sA, I ^ l, 32), - I = ((I = s) + (s = p)) | 0, - l = U = (N + D) | 0, - N = u = - ug( - U ^ P, - (I = U >>> 0 < D >>> 0 ? (I + 1) | 0 : I) ^ t, - 24 - ), - P = t = p, - U = I, - CA = D, - I = (d + T) | 0, - d = D = (b + G) | 0, - I = - ((I = D >>> 0 < G >>> 0 ? (I + 1) | 0 : I) + t) | 0, - t = ug( - CA ^ (D = G = (D + u) | 0), - (t = s) ^ (s = D >>> 0 < d >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = ((I = U) + (U = p)) | 0, - l = G = (t + l) | 0, - fA = ug( - G ^ N, - (u = G >>> 0 < t >>> 0 ? (I + 1) | 0 : I) ^ P, - 63 - ), - G = p, - d = y, - I = (H + z) | 0, - I = - ((I = - (P = (m + R) | 0) >>> 0 < m >>> 0 - ? (I + 1) | 0 - : I) + - y) | - 0, - I = - (H = ((N = P) + O) | 0) >>> 0 < N >>> 0 - ? (I + 1) | 0 - : I, - N = H, - y = I, - P = ug(H ^ nA, I ^ v, 32), - I = (e + (H = p)) | 0, - I = - a >>> 0 > (v = (a + P) | 0) >>> 0 ? (I + 1) | 0 : I, - O = e = ug((a = v) ^ O, I ^ d, 24), - CA = d = p, - v = I, - R = a, - I = (y + rA) | 0, - I = - (a = $) >>> 0 > (e = (a + N) | 0) >>> 0 - ? (I + 1) | 0 - : I, - a = e, - I = (I + d) | 0, - e = H, - H = I = - a >>> 0 > (y = (O + a) | 0) >>> 0 ? (I + 1) | 0 : I, - nA = ug((a = y) ^ P, e ^ I, 16), - I = ((y = p) + v) | 0, - O = ug( - (v = d = (R + (e = nA)) | 0) ^ O, - (I = e >>> 0 > v >>> 0 ? (I + 1) | 0 : I) ^ CA, - 63 - ), - d = p, - N = I, - P = t, - R = AA, - I = (Q + (e = k)) | 0, - I = - ((I = - (t = QA) >>> 0 > (AA = (t + AA) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - w) | - 0, - k = t = (M + AA) | 0, - w = ug( - t ^ gA, - (w = J) ^ (J = t >>> 0 < M >>> 0 ? (I + 1) | 0 : I), - 32 - ), - I = ((t = p) + f) | 0, - CA = M = (w + EA) | 0, - e = ug( - R ^ M, - (I = M >>> 0 < w >>> 0 ? (I + 1) | 0 : I) ^ e, - 24 - ), - gA = EA = p, - f = I, - M = t, - EA = e, - R = w, - I = (J + gA) | 0, - I = - ((I = - (w = (e + k) | 0) >>> 0 < k >>> 0 - ? (I + 1) | 0 - : I) + - (AA = i[(g + 156) >> 2])) | - 0, - J = k = ((t = i[(g + 152) >> 2]) + w) | 0, - e = M, - M = I = k >>> 0 < w >>> 0 ? (I + 1) | 0 : I, - R = ug(R ^ k, e ^ I, 16), - I = ((I = f) + (f = p)) | 0, - e = I = - (w = R) >>> 0 > (k = (w + CA) | 0) >>> 0 - ? (I + 1) | 0 - : I, - CA = ug(EA ^ (w = k), I ^ gA, 63), - EA = I = p, - k = I, - gA = v, - I = (S + z) | 0, - I = - ((I = - (v = (F + m) | 0) >>> 0 < F >>> 0 - ? (I + 1) | 0 - : I) + - k) | - 0, - k = F = (v + CA) | 0, - P = ug( - F ^ P, - (S = U) ^ (U = F >>> 0 < v >>> 0 ? (I + 1) | 0 : I), - 32 - ), - I = ((F = p) + N) | 0, - S = I = - (v = (gA + (S = P)) | 0) >>> 0 < S >>> 0 - ? (I + 1) | 0 - : I, - EA = CA = ug(CA ^ v, EA ^ I, 24), - gA = I = p, - N = I, - sA = P, - I = (U + q) | 0, - I = - ((I = - (P = (k + IA) | 0) >>> 0 < k >>> 0 - ? (I + 1) | 0 - : I) + - N) | - 0, - I = - (k = ((U = P) + CA) | 0) >>> 0 < U >>> 0 - ? (I + 1) | 0 - : I, - U = k, - N = F, - F = I, - CA = ug(sA ^ k, N ^ I, 16), - I = (S + (N = p)) | 0, - I = - (k = (v + CA) | 0) >>> 0 < v >>> 0 - ? (I + 1) | 0 - : I, - v = k, - S = I, - IA = ug(k ^ EA, I ^ gA, 63), - k = p, - P = c, - gA = iA, - I = (c + E) | 0, - I = - (s + - (j >>> 0 > (iA = (j + iA) | 0) >>> 0 - ? (I + 1) | 0 - : I)) | - 0, - q = c = (D + iA) | 0, - iA = ug( - c ^ nA, - (s = y) ^ (y = c >>> 0 < D >>> 0 ? (I + 1) | 0 : I), - 32 - ), - I = (e + (c = p)) | 0, - D = I = - (s = (w + iA) | 0) >>> 0 < w >>> 0 - ? (I + 1) | 0 - : I, - P = e = ug(gA ^ s, I ^ P, 24), - nA = I = p, - w = I, - I = (y + aA) | 0, - I = - ((I = - (e = (r + q) | 0) >>> 0 < r >>> 0 - ? (I + 1) | 0 - : I) + - w) | - 0, - q = y = (P + (r = e)) | 0, - iA = ug( - y ^ iA, - (w = y >>> 0 < r >>> 0 ? (I + 1) | 0 : I) ^ c, - 16 - ), - I = (D + (r = p)) | 0, - aA = y = (s + iA) | 0, - e = ug( - y ^ P, - (s = y >>> 0 < s >>> 0 ? (I + 1) | 0 : I) ^ nA, - 63 - ), - y = p, - I = (Q + (c = G)) | 0, - I = - (H + - ((D = QA) >>> 0 > (P = (D + fA) | 0) >>> 0 - ? (I + 1) | 0 - : I)) | - 0, - D = f, - f = I = - a >>> 0 > (G = (a + P) | 0) >>> 0 ? (I + 1) | 0 : I, - P = ug((a = G) ^ R, D ^ I, 32), - I = (_ + (G = p)) | 0, - I = - o >>> 0 > (H = (o + P) | 0) >>> 0 ? (I + 1) | 0 : I, - o = c, - c = I, - o = ug(H ^ fA, o ^ I, 24), - fA = I = p, - D = I, - gA = o, - I = (f + T) | 0, - I = - ((I = - (o = b) >>> 0 > (_ = (o + a) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - D) | - 0, - nA = f = (gA + (o = _)) | 0, - R = ug( - f ^ P, - (D = f >>> 0 < o >>> 0 ? (I + 1) | 0 : I) ^ G, - 16 - ), - I = (c + (o = p)) | 0, - P = f = (H + R) | 0, - _ = ug( - gA ^ f, - (G = f >>> 0 < H >>> 0 ? (I + 1) | 0 : I) ^ fA, - 63 - ), - f = p, - I = (cA + (c = d)) | 0, - I = - (M + - ((a = ((H = V) + O) | 0) >>> 0 < H >>> 0 - ? (I + 1) | 0 - : I)) | - 0, - H = I = - (d = (J + a) | 0) >>> 0 < J >>> 0 ? (I + 1) | 0 : I, - a = ug(d ^ tA, I ^ Y, 32), - I = (u + (J = p)) | 0, - Y = c, - c = I = - l >>> 0 > (M = (l + a) | 0) >>> 0 ? (I + 1) | 0 : I, - l = ug(M ^ O, Y ^ I, 24), - O = I = p, - Y = I, - gA = a, - I = (H + L) | 0, - I = - ((I = - (a = (d + BA) | 0) >>> 0 < d >>> 0 - ? (I + 1) | 0 - : I) + - Y) | - 0, - a = ug( - gA ^ (Y = d = (a + (u = l)) | 0), - (u = J) ^ (J = a >>> 0 > Y >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (c + (H = p)) | 0, - l = ug( - l ^ (u = d = (M + a) | 0), - (d = u >>> 0 < M >>> 0 ? (I + 1) | 0 : I) ^ O, - 63 - ), - c = p, - M = y, - O = e, - gA = a, - I = (F + oA) | 0, - F = a = (U + x) | 0, - I = - ((I = a >>> 0 < U >>> 0 ? (I + 1) | 0 : I) + y) | 0, - e = ug( - gA ^ (a = U = (a + e) | 0), - (y = F >>> 0 > a >>> 0 ? (I + 1) | 0 : I) ^ H, - 32 - ), - I = ((I = G) + (G = p)) | 0, - U = I = - (H = (e + P) | 0) >>> 0 < e >>> 0 ? (I + 1) | 0 : I, - P = M = ug(O ^ H, I ^ M, 24), - O = I = p, - F = I, - I = (y + eA) | 0, - I = - ((I = - (a = ((M = W) + a) | 0) >>> 0 < M >>> 0 - ? (I + 1) | 0 - : I) + - F) | - 0, - fA = y = (P + a) | 0, - tA = ug( - y ^ e, - (F = y >>> 0 < a >>> 0 ? (I + 1) | 0 : I) ^ G, - 16 - ), - I = (U + (M = p)) | 0, - P = ug( - (EA = y = (H + tA) | 0) ^ P, - (y = y >>> 0 < H >>> 0 ? (I + 1) | 0 : I) ^ O, - 63 - ), - G = p, - H = f, - e = _, - I = (w + AA) | 0, - I = - ((I = - (_ = (t + q) | 0) >>> 0 < t >>> 0 - ? (I + 1) | 0 - : I) + - f) | - 0, - f = I = - (w = _) >>> 0 > (U = (e + w) | 0) >>> 0 - ? (I + 1) | 0 - : I, - _ = ug((w = U) ^ CA, I ^ N, 32), - I = ((I = d) + (d = p)) | 0, - I = - (a = _) >>> 0 > (U = (a + u) | 0) >>> 0 - ? (I + 1) | 0 - : I, - u = e = ug(e ^ (a = U), I ^ H, 24), - U = I, - N = a, - a = _, - _ = ((I = w) + (w = Z)) | 0, - I = (f + yA) | 0, - I = - ((I = w >>> 0 > _ >>> 0 ? (I + 1) | 0 : I) + - (H = p)) | - 0, - I = - (f = ((w = _) + e) | 0) >>> 0 < w >>> 0 - ? (I + 1) | 0 - : I, - w = f, - _ = I, - a = ug(a ^ f, I ^ d, 16), - I = ((e = p) + U) | 0, - d = ug( - (CA = f = (N + a) | 0) ^ u, - (f = f >>> 0 < a >>> 0 ? (I + 1) | 0 : I) ^ H, - 63 - ), - H = p, - U = c, - N = l, - I = (D + rA) | 0, - I = - ((I = - (u = ((l = $) + nA) | 0) >>> 0 < l >>> 0 - ? (I + 1) | 0 - : I) + - c) | - 0, - l = D = (N + u) | 0, - c = I = D >>> 0 < u >>> 0 ? (I + 1) | 0 : I, - u = ug(D ^ iA, I ^ r, 32), - I = (S + (D = p)) | 0, - S = r = (v + u) | 0, - N = r = - ug( - N ^ r, - (I = r >>> 0 < v >>> 0 ? (I + 1) | 0 : I) ^ U, - 24 - ), - q = U = p, - v = I, - O = S, - I = (c + B) | 0, - I = - ((I = - (r = ((S = K) + l) | 0) >>> 0 < S >>> 0 - ? (I + 1) | 0 - : I) + - U) | - 0, - I = - (c = (N + r) | 0) >>> 0 < r >>> 0 ? (I + 1) | 0 : I, - S = c, - r = D, - D = I, - nA = ug(c ^ u, r ^ I, 16), - I = ((I = v) + (v = p)) | 0, - N = ug( - (c = (O + (U = nA)) | 0) ^ N, - (I = c >>> 0 < U >>> 0 ? (I + 1) | 0 : I) ^ q, - 63 - ), - U = p, - l = c, - u = I, - I = (J + (r = k)) | 0, - k = c = (Y + IA) | 0, - I = - ((I = c >>> 0 < Y >>> 0 ? (I + 1) | 0 : I) + - (q = i[(g + 204) >> 2])) | - 0, - k = I = - (c = ((O = i[(g + 200) >> 2]) + c) | 0) >>> 0 < - k >>> 0 - ? (I + 1) | 0 - : I, - Y = ug(c ^ R, I ^ o, 32), - I = ((I = s) + (s = p)) | 0, - I = - (o = Y) >>> 0 > (J = (o + aA) | 0) >>> 0 - ? (I + 1) | 0 - : I, - r = ug((o = J) ^ IA, I ^ r, 24), - R = aA = p, - J = I, - gA = o, - aA = Y, - I = (k + R) | 0, - I = - ((I = - (Y = (c + r) | 0) >>> 0 < c >>> 0 - ? (I + 1) | 0 - : I) + - (IA = i[(g + 164) >> 2])) | - 0, - Y = c = ((iA = i[(g + 160) >> 2]) + (k = Y)) | 0, - aA = ug( - aA ^ c, - (o = c >>> 0 < k >>> 0 ? (I + 1) | 0 : I) ^ s, - 16 - ), - I = ((I = J) + (J = p)) | 0, - r = ug( - r ^ (gA = c = (gA + (s = aA)) | 0), - (c = c >>> 0 < s >>> 0 ? (I + 1) | 0 : I) ^ R, - 63 - ), - R = I = p, - s = I, - sA = a, - I = (F + rA) | 0, - I = - ((I = - (a = ((k = $) + fA) | 0) >>> 0 < k >>> 0 - ? (I + 1) | 0 - : I) + - s) | - 0, - e = ug( - sA ^ (s = k = (a + r) | 0), - (k = a >>> 0 > s >>> 0 ? (I + 1) | 0 : I) ^ e, - 32 - ), - I = ((F = p) + u) | 0, - l = a = (l + e) | 0, - u = ug( - r ^ a, - (I = a >>> 0 < e >>> 0 ? (I + 1) | 0 : I) ^ R, - 24 - ), - R = r = p, - a = I, - fA = l, - sA = e, - I = (k + q) | 0, - I = - ((I = - (e = (s + O) | 0) >>> 0 < s >>> 0 - ? (I + 1) | 0 - : I) + - r) | - 0, - l = s = (e + u) | 0, - sA = ug( - sA ^ s, - (r = F) ^ (F = s >>> 0 < e >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = ((r = p) + a) | 0, - fA = ug( - (wA = s = (fA + (k = sA)) | 0) ^ u, - (s = s >>> 0 < k >>> 0 ? (I + 1) | 0 : I) ^ R, - 63 - ), - k = p, - I = (AA + (a = G)) | 0, - I = - ((I = - (e = (t + P) | 0) >>> 0 < t >>> 0 - ? (I + 1) | 0 - : I) + - _) | - 0, - e = ug( - (_ = t = (e + w) | 0) ^ nA, - (t = t >>> 0 < w >>> 0 ? (I + 1) | 0 : I) ^ v, - 32 - ), - I = ((I = c) + (c = p)) | 0, - w = I = - e >>> 0 > (G = (e + gA) | 0) >>> 0 - ? (I + 1) | 0 - : I, - u = a = ug(G ^ P, I ^ a, 24), - P = I = p, - v = I, - a = ((I = _) + (_ = K)) | 0, - I = (t + B) | 0, - I = - ((I = a >>> 0 < _ >>> 0 ? (I + 1) | 0 : I) + v) | 0, - AA = t = (u + a) | 0, - nA = ug( - t ^ e, - (v = t >>> 0 < a >>> 0 ? (I + 1) | 0 : I) ^ c, - 16 - ), - I = (w + (_ = p)) | 0, - R = t = (G + nA) | 0, - a = ug( - t ^ u, - (c = t >>> 0 < G >>> 0 ? (I + 1) | 0 : I) ^ P, - 63 - ), - t = p, - e = d, - I = ((G = H) + L) | 0, - I = - ((I = - (w = (d + BA) | 0) >>> 0 < d >>> 0 - ? (I + 1) | 0 - : I) + - D) | - 0, - H = I = - (d = (w + S) | 0) >>> 0 < S >>> 0 ? (I + 1) | 0 : I, - D = ug(d ^ aA, I ^ J, 32), - I = ((I = y) + (y = p)) | 0, - I = - (w = D) >>> 0 > (J = (w + EA) | 0) >>> 0 - ? (I + 1) | 0 - : I, - S = ug(e ^ (w = J), I ^ G, 24), - u = G = p, - J = I, - P = w, - L = D, - I = (H + E) | 0, - H = D = (d + j) | 0, - I = - ((I = D >>> 0 < d >>> 0 ? (I + 1) | 0 : I) + G) | 0, - aA = ug( - L ^ (D = d = (D + (e = S)) | 0), - (w = H >>> 0 > D >>> 0 ? (I + 1) | 0 : I) ^ y, - 16 - ), - I = ((I = J) + (J = p)) | 0, - u = ug( - S ^ (e = y = (P + (G = aA)) | 0), - (G = e >>> 0 < G >>> 0 ? (I + 1) | 0 : I) ^ u, - 63 - ), - y = p, - d = U, - I = (U + z) | 0, - I = - ((I = - (S = (m + N) | 0) >>> 0 < m >>> 0 - ? (I + 1) | 0 - : I) + - o) | - 0, - I = - (H = (Y + S) | 0) >>> 0 < Y >>> 0 ? (I + 1) | 0 : I, - Y = H, - H = I, - S = ug(Y ^ tA, I ^ M, 32), - I = ((I = f) + (f = p)) | 0, - o = d, - d = I = - (U = ((M = S) + CA) | 0) >>> 0 < M >>> 0 - ? (I + 1) | 0 - : I, - N = o = ug(U ^ N, o ^ I, 24), - P = I = p, - M = I, - L = S, - S = ((I = Y) + (Y = W)) | 0, - I = (H + eA) | 0, - I = - ((I = Y >>> 0 > S >>> 0 ? (I + 1) | 0 : I) + M) | 0, - M = H = ((Y = S) + o) | 0, - o = ug( - L ^ H, - (Y = H >>> 0 < Y >>> 0 ? (I + 1) | 0 : I) ^ f, - 16 - ), - I = (d + (H = p)) | 0, - I = - (f = (U + o) | 0) >>> 0 < U >>> 0 ? (I + 1) | 0 : I, - U = f, - S = I, - N = ug(f ^ N, I ^ P, 63), - f = p, - d = t, - P = a, - L = o, - I = (F + T) | 0, - I = - ((I = - (a = ((o = b) + l) | 0) >>> 0 < o >>> 0 - ? (I + 1) | 0 - : I) + - t) | - 0, - t = I = - a >>> 0 > (F = (P + a) | 0) >>> 0 ? (I + 1) | 0 : I, - o = ug(L ^ F, I ^ H, 32), - I = ((I = G) + (G = p)) | 0, - I = - (a = o) >>> 0 > (H = (a + e) | 0) >>> 0 - ? (I + 1) | 0 - : I, - l = e = ug(P ^ (a = H), I ^ d, 24), - H = I, - P = o, - o = ((I = F) + (F = Z)) | 0, - I = (t + yA) | 0, - I = - ((I = o >>> 0 < F >>> 0 ? (I + 1) | 0 : I) + - (d = p)) | - 0, - F = t = (o + e) | 0, - o = I = t >>> 0 < o >>> 0 ? (I + 1) | 0 : I, - t = ((G = tA = ug(P ^ t, I ^ G, 16)) + a) | 0, - I = ((a = p) + H) | 0, - e = t, - L = ug( - (H = t ^ l), - (l = t >>> 0 < G >>> 0 ? (I + 1) | 0 : I) ^ d, - 63 - ), - d = p, - I = (v + Q) | 0, - I = - ((I = - (G = QA) >>> 0 > (H = (G + AA) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - (t = y)) | - 0, - v = G = (H + u) | 0, - r = ug( - G ^ sA, - (y = G >>> 0 < H >>> 0 ? (I + 1) | 0 : I) ^ r, - 32 - ), - I = (S + (G = p)) | 0, - I = - (H = (U + r) | 0) >>> 0 < U >>> 0 ? (I + 1) | 0 : I, - U = H, - S = ug(H ^ u, I ^ t, 24), - P = t = p, - H = I, - AA = U, - I = (y + oA) | 0, - I = - (U = x) >>> 0 > (v = (U + v) | 0) >>> 0 - ? (I + 1) | 0 - : I, - U = v, - I = (I + t) | 0, - v = y = (v + (u = S)) | 0, - y = ug( - y ^ r, - (S = y >>> 0 < U >>> 0 ? (I + 1) | 0 : I) ^ G, - 16 - ), - I = ((U = p) + H) | 0, - EA = t = (AA + y) | 0, - BA = ug( - t ^ u, - (G = t >>> 0 < y >>> 0 ? (I + 1) | 0 : I) ^ P, - 63 - ), - H = p, - P = N, - I = (w + IA) | 0, - I = - ((I = - (r = (D + iA) | 0) >>> 0 < D >>> 0 - ? (I + 1) | 0 - : I) + - (t = f)) | - 0, - u = ug( - (f = D = (r + N) | 0) ^ nA, - (D = r >>> 0 > f >>> 0 ? (I + 1) | 0 : I) ^ _, - 32 - ), - I = ((I = s) + (s = p)) | 0, - N = w = ((_ = u) + wA) | 0, - r = ug( - P ^ w, - (I = w >>> 0 < _ >>> 0 ? (I + 1) | 0 : I) ^ t, - 24 - ), - w = t = p, - _ = I, - P = r, - I = (D + t) | 0, - I = - ((I = - (r = (f + r) | 0) >>> 0 < f >>> 0 - ? (I + 1) | 0 - : I) + - (AA = i[(g + 132) >> 2])) | - 0, - D = f = ((t = i[(g + 128) >> 2]) + r) | 0, - r = I = f >>> 0 < r >>> 0 ? (I + 1) | 0 : I, - nA = ug(f ^ u, I ^ s, 16), - I = ((I = _) + (_ = p)) | 0, - CA = ug( - P ^ (f = ((s = nA) + N) | 0), - (I = f >>> 0 < s >>> 0 ? (I + 1) | 0 : I) ^ w, - 63 - ), - s = p, - u = f, - N = I, - P = y, - I = (cA + (w = k)) | 0, - I = - ((I = - (f = ((y = V) + fA) | 0) >>> 0 < y >>> 0 - ? (I + 1) | 0 - : I) + - Y) | - 0, - M = ug( - (f = y = (f + M) | 0) ^ aA, - (k = f >>> 0 < M >>> 0 ? (I + 1) | 0 : I) ^ J, - 32 - ), - I = ((y = p) + c) | 0, - I = - (Y = M) >>> 0 > (J = (Y + R) | 0) >>> 0 - ? (I + 1) | 0 - : I, - w = ug((Y = J) ^ fA, I ^ w, 24), - gA = R = p, - c = I, - J = y, - aA = M, - I = (k + R) | 0, - I = - ((I = - (M = (f + w) | 0) >>> 0 < f >>> 0 - ? (I + 1) | 0 - : I) + - (fA = i[(g + 196) >> 2])) | - 0, - M = f = ((y = i[(g + 192) >> 2]) + (k = M)) | 0, - aA = ug( - aA ^ f, - (R = J) ^ (J = f >>> 0 < k >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = ((I = c) + (c = p)) | 0, - w = ug( - w ^ (R = f = ((k = aA) + Y) | 0), - (f = f >>> 0 < k >>> 0 ? (I + 1) | 0 : I) ^ gA, - 63 - ), - gA = I = p, - k = I, - I = (o + q) | 0, - I = - ((I = - (Y = (F + O) | 0) >>> 0 < F >>> 0 - ? (I + 1) | 0 - : I) + - k) | - 0, - I = - (F = (Y + w) | 0) >>> 0 < Y >>> 0 ? (I + 1) | 0 : I, - Y = F, - k = I, - o = ug(F ^ P, I ^ U, 32), - I = ((U = p) + N) | 0, - u = F = (u + o) | 0, - N = ug( - w ^ F, - (I = F >>> 0 < o >>> 0 ? (I + 1) | 0 : I) ^ gA, - 24 - ), - q = F = p, - w = I, - P = o, - I = (k + AA) | 0, - I = - ((I = - (o = (t + Y) | 0) >>> 0 < t >>> 0 - ? (I + 1) | 0 - : I) + - F) | - 0, - O = k = (o + N) | 0, - gA = ug( - P ^ k, - (F = k >>> 0 < o >>> 0 ? (I + 1) | 0 : I) ^ U, - 16 - ), - I = ((I = w) + (w = p)) | 0, - Y = k = ((U = gA) + u) | 0, - q = ug( - k ^ N, - (o = k >>> 0 < U >>> 0 ? (I + 1) | 0 : I) ^ q, - 63 - ), - U = p, - I = (Q + (k = d)) | 0, - I = - (S + - ((u = QA) >>> 0 > (N = (u + L) | 0) >>> 0 - ? (I + 1) | 0 - : I)) | - 0, - v = I = - (d = (v + N) | 0) >>> 0 < v >>> 0 ? (I + 1) | 0 : I, - u = ug(d ^ nA, I ^ _, 32), - I = ((I = f) + (f = p)) | 0, - I = - (_ = u) >>> 0 > (S = (_ + R) | 0) >>> 0 - ? (I + 1) | 0 - : I, - _ = k, - k = I, - N = ug(S ^ L, _ ^ I, 24), - L = I = p, - _ = I, - P = u, - I = (v + rA) | 0, - I = - ((I = - (u = (d + $) | 0) >>> 0 < d >>> 0 - ? (I + 1) | 0 - : I) + - _) | - 0, - _ = I = - (d = ((v = u) + N) | 0) >>> 0 < v >>> 0 - ? (I + 1) | 0 - : I, - nA = ug(P ^ (v = d), I ^ f, 16), - I = (k + (u = p)) | 0, - R = f = (S + nA) | 0, - N = ug( - f ^ N, - (d = f >>> 0 < S >>> 0 ? (I + 1) | 0 : I) ^ L, - 63 - ), - f = p, - k = H, - I = (H + T) | 0, - I = - (r + - (b >>> 0 > (P = (b + BA) | 0) >>> 0 - ? (I + 1) | 0 - : I)) | - 0, - r = c, - c = I = - D >>> 0 > (H = (D + P) | 0) >>> 0 ? (I + 1) | 0 : I, - P = ug(H ^ aA, r ^ I, 32), - I = (l + (D = p)) | 0, - r = k, - k = I = - e >>> 0 > (S = (e + P) | 0) >>> 0 ? (I + 1) | 0 : I, - l = e = ug(S ^ BA, r ^ I, 24), - r = I = p, - I = (c + IA) | 0, - I = - ((I = - (e = (H + iA) | 0) >>> 0 < H >>> 0 - ? (I + 1) | 0 - : I) + - r) | - 0, - IA = c = (l + e) | 0, - iA = ug( - c ^ P, - (H = c >>> 0 < e >>> 0 ? (I + 1) | 0 : I) ^ D, - 16 - ), - I = (k + (D = p)) | 0, - BA = c = (S + iA) | 0, - e = ug( - c ^ l, - (k = c >>> 0 < S >>> 0 ? (I + 1) | 0 : I) ^ r, - 63 - ), - c = p, - S = s, - I = (s + oA) | 0, - I = - (J + - ((r = x) >>> 0 > (l = (r + CA) | 0) >>> 0 - ? (I + 1) | 0 - : I)) | - 0, - a = ug( - (r = s = (M + l) | 0) ^ tA, - (s = r >>> 0 < M >>> 0 ? (I + 1) | 0 : I) ^ a, - 32 - ), - I = ((I = G) + (G = p)) | 0, - P = S = - ug( - (l = J = (a + EA) | 0) ^ CA, - (I = a >>> 0 > l >>> 0 ? (I + 1) | 0 : I) ^ S, - 24 - ), - L = J = p, - M = I, - I = (s + cA) | 0, - I = - ((I = - (r = ((S = V) + r) | 0) >>> 0 < S >>> 0 - ? (I + 1) | 0 - : I) + - J) | - 0, - J = s = (P + r) | 0, - a = ug( - s ^ a, - (S = s >>> 0 < r >>> 0 ? (I + 1) | 0 : I) ^ G, - 16 - ), - I = ((I = M) + (M = p)) | 0, - CA = s = (a + l) | 0, - P = ug( - s ^ P, - (G = s >>> 0 < a >>> 0 ? (I + 1) | 0 : I) ^ L, - 63 - ), - s = p, - L = N, - aA = a, - I = (F + eA) | 0, - I = - ((I = - (a = W) >>> 0 > (l = (a + O) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - (r = f)) | - 0, - f = I = - (a = l) >>> 0 > (F = (a + N) | 0) >>> 0 - ? (I + 1) | 0 - : I, - l = ug(aA ^ (a = F), I ^ M, 32), - I = ((I = k) + (k = p)) | 0, - N = F = ((M = l) + BA) | 0, - L = r = - ug( - L ^ F, - (I = F >>> 0 < M >>> 0 ? (I + 1) | 0 : I) ^ r, - 24 - ), - BA = F = p, - M = I, - I = (f + B) | 0, - I = - ((I = - (a = ((r = K) + a) | 0) >>> 0 < r >>> 0 - ? (I + 1) | 0 - : I) + - F) | - 0, - tA = f = (L + a) | 0, - aA = ug( - f ^ l, - (r = k) ^ (k = f >>> 0 < a >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = ((F = p) + M) | 0, - M = f = ((r = aA) + N) | 0, - L = ug( - f ^ L, - (r = f >>> 0 < r >>> 0 ? (I + 1) | 0 : I) ^ BA, - 63 - ), - f = p, - N = e, - I = (_ + z) | 0, - _ = e = (m + v) | 0, - I = - ((I = e >>> 0 < v >>> 0 ? (I + 1) | 0 : I) + - (a = c)) | - 0, - l = ug( - (e = v = (N + e) | 0) ^ gA, - (c = e >>> 0 < _ >>> 0 ? (I + 1) | 0 : I) ^ w, - 32 - ), - I = ((I = G) + (G = p)) | 0, - v = I = - (w = ((v = l) + CA) | 0) >>> 0 < v >>> 0 - ? (I + 1) | 0 - : I, - N = a = ug(N ^ w, I ^ a, 24), - BA = I = p, - _ = I, - I = (c + E) | 0, - I = - ((I = - (a = j) >>> 0 > (e = (a + e) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - _) | - 0, - _ = c = (N + (a = e)) | 0, - G = ug( - c ^ l, - (a = c >>> 0 < a >>> 0 ? (I + 1) | 0 : I) ^ G, - 16 - ), - I = (v + (e = p)) | 0, - I = - (c = (w + G) | 0) >>> 0 < w >>> 0 ? (I + 1) | 0 : I, - w = c, - v = I, - BA = ug(c ^ N, I ^ BA, 63), - c = p, - l = s, - O = P, - I = (H + yA) | 0, - I = - ((I = - (N = Z) >>> 0 > (P = (N + IA) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - s) | - 0, - I = - (H = (O + (N = P)) | 0) >>> 0 < N >>> 0 - ? (I + 1) | 0 - : I, - N = H, - s = I, - P = ug(H ^ nA, I ^ u, 32), - I = (o + (H = p)) | 0, - o = I = - (u = (Y + P) | 0) >>> 0 < Y >>> 0 ? (I + 1) | 0 : I, - u = ug(O ^ (Y = u), I ^ l, 24), - O = I = p, - l = I, - I = (s + fA) | 0, - I = - ((I = - (N = (y + N) | 0) >>> 0 < y >>> 0 - ? (I + 1) | 0 - : I) + - l) | - 0, - l = s = ((IA = u) + (u = N)) | 0, - CA = ug( - s ^ P, - (N = H) ^ (H = s >>> 0 < u >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (o + (u = p)) | 0, - I = - (s = (Y + CA) | 0) >>> 0 < Y >>> 0 - ? (I + 1) | 0 - : I, - Y = s, - IA = ug(s ^ IA, I ^ O, 63), - s = p, - N = I, - gA = q, - I = (S + (o = U)) | 0, - I = - ((I = - (q = (J + q) | 0) >>> 0 < J >>> 0 - ? (I + 1) | 0 - : I) + - (O = nA = i[(g + 156) >> 2])) | - 0, - J = I = - (U = ((P = i[(g + 152) >> 2]) + (J = q)) | 0) >>> - 0 < - J >>> 0 - ? (I + 1) | 0 - : I, - S = ug(U ^ iA, I ^ D, 32), - I = ((I = d) + (d = p)) | 0, - q = D = (S + R) | 0, - O = o = - ug( - gA ^ D, - (I = D >>> 0 < S >>> 0 ? (I + 1) | 0 : I) ^ o, - 24 - ), - R = iA = p, - D = I, - gA = EA = i[(g + 236) >> 2], - EA = q, - q = S, - I = (J + R) | 0, - I = - ((I = - (o = (o + U) | 0) >>> 0 < U >>> 0 - ? (I + 1) | 0 - : I) + - gA) | - 0, - I = - (U = ((S = i[(g + 232) >> 2]) + o) | 0) >>> 0 < - o >>> 0 - ? (I + 1) | 0 - : I, - o = d, - d = I, - iA = ug(q ^ U, o ^ I, 16), - I = ((J = p) + D) | 0, - O = ug( - (D = o = (EA + (q = iA)) | 0) ^ O, - (o = o >>> 0 < q >>> 0 ? (I + 1) | 0 : I) ^ R, - 63 - ), - R = I = p, - q = I, - EA = G, - I = (k + T) | 0, - I = - ((I = - (G = (b + tA) | 0) >>> 0 < b >>> 0 - ? (I + 1) | 0 - : I) + - q) | - 0, - e = ug( - EA ^ (q = b = (G + O) | 0), - (b = b >>> 0 < G >>> 0 ? (I + 1) | 0 : I) ^ e, - 32 - ), - I = ((G = p) + N) | 0, - N = k = (Y + e) | 0, - T = ug( - O ^ k, - R ^ (I = k >>> 0 < e >>> 0 ? (I + 1) | 0 : I), - 24 - ), - tA = k = p, - Y = I, - O = N, - R = e, - I = (b + E) | 0, - I = - ((I = - (e = j) >>> 0 > (N = (e + q) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - k) | - 0, - R = ug( - R ^ (k = b = ((e = N) + T) | 0), - (e = e >>> 0 > k >>> 0 ? (I + 1) | 0 : I) ^ G, - 16 - ), - I = ((I = Y) + (Y = p)) | 0, - N = b = (O + (G = R)) | 0, - O = ug( - b ^ T, - (q = b >>> 0 < G >>> 0 ? (I + 1) | 0 : I) ^ tA, - 63 - ), - G = p, - b = f, - EA = L, - I = (f + yA) | 0, - I = - (a + - (Z >>> 0 > (L = (Z + L) | 0) >>> 0 - ? (I + 1) | 0 - : I)) | - 0, - u = ug( - (T = f = (_ + L) | 0) ^ CA, - (f = f >>> 0 < _ >>> 0 ? (I + 1) | 0 : I) ^ u, - 32 - ), - I = (o + (_ = p)) | 0, - I = - (a = (D + u) | 0) >>> 0 < D >>> 0 ? (I + 1) | 0 : I, - D = a, - o = b, - b = I, - L = a = ug(EA ^ a, o ^ I, 24), - CA = I = p, - o = I, - EA = a, - tA = u, - I = (f + oA) | 0, - I = - ((I = - (a = x) >>> 0 > (u = (a + T) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - o) | - 0, - L = f = (L + (a = u)) | 0, - tA = ug( - tA ^ f, - (o = f >>> 0 < a >>> 0 ? (I + 1) | 0 : I) ^ _, - 16 - ), - I = (b + (_ = p)) | 0, - I = - (f = (D + tA) | 0) >>> 0 < D >>> 0 - ? (I + 1) | 0 - : I, - D = f, - a = I, - u = ug(EA ^ f, I ^ CA, 63), - f = p, - b = c, - I = (c + AA) | 0, - I = - ((I = - (T = (t + BA) | 0) >>> 0 < t >>> 0 - ? (I + 1) | 0 - : I) + - H) | - 0, - I = - (t = (l + T) | 0) >>> 0 < l >>> 0 ? (I + 1) | 0 : I, - l = t, - t = I, - T = ug(l ^ iA, I ^ J, 32), - I = (r + (c = p)) | 0, - r = b, - b = I = - (H = (M + T) | 0) >>> 0 < M >>> 0 ? (I + 1) | 0 : I, - r = M = ug(H ^ BA, r ^ I, 24), - BA = I = p, - J = I, - I = (t + z) | 0, - I = - ((I = - (M = (m + l) | 0) >>> 0 < m >>> 0 - ? (I + 1) | 0 - : I) + - J) | - 0, - l = m = (r + (t = M)) | 0, - T = ug( - m ^ T, - (M = c) ^ (c = t >>> 0 > m >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (b + (J = p)) | 0, - z = m = (H + T) | 0, - M = ug( - m ^ r, - (t = m >>> 0 < H >>> 0 ? (I + 1) | 0 : I) ^ BA, - 63 - ), - b = p, - m = s, - I = (s + fA) | 0, - I = - ((I = - (H = (y + IA) | 0) >>> 0 < y >>> 0 - ? (I + 1) | 0 - : I) + - d) | - 0, - I = - (y = (H + U) | 0) >>> 0 < U >>> 0 ? (I + 1) | 0 : I, - U = y, - y = I, - F = ug(U ^ aA, I ^ F, 32), - I = (v + (s = p)) | 0, - r = m, - m = I = - w >>> 0 > (d = (w + F) | 0) >>> 0 ? (I + 1) | 0 : I, - v = w = ug(d ^ IA, r ^ I, 24), - r = I = p, - I = (y + nA) | 0, - I = - ((I = - (U = (U + P) | 0) >>> 0 < P >>> 0 - ? (I + 1) | 0 - : I) + - r) | - 0, - H = y = (U + w) | 0, - F = ug( - y ^ F, - (w = s) ^ (s = y >>> 0 < U >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (m + (U = p)) | 0, - r = ug( - (w = y = (d + F) | 0) ^ v, - (y = y >>> 0 < d >>> 0 ? (I + 1) | 0 : I) ^ r, - 63 - ), - m = p, - d = f, - P = F, - I = (f + e) | 0, - I = - (F = (k + u) | 0) >>> 0 < k >>> 0 ? (I + 1) | 0 : I, - k = F, - I = (I + (v = i[(g + 164) >> 2])) | 0, - v = ug( - P ^ (F = f = (F + i[(g + 160) >> 2]) | 0), - (f = f >>> 0 < k >>> 0 ? (I + 1) | 0 : I) ^ U, - 32 - ), - I = ((I = t) + (t = p)) | 0, - e = d, - d = I = - (k = ((U = v) + z) | 0) >>> 0 < U >>> 0 - ? (I + 1) | 0 - : I, - e = ug(k ^ u, e ^ I, 24), - P = I = p, - U = I, - I = (f + gA) | 0, - I = - ((I = - (F = (F + S) | 0) >>> 0 < S >>> 0 - ? (I + 1) | 0 - : I) + - U) | - 0, - BA = ug( - (z = f = (F + e) | 0) ^ v, - (f = f >>> 0 < F >>> 0 ? (I + 1) | 0 : I) ^ t, - 16 - ), - I = (d + (U = p)) | 0, - d = t = (k + BA) | 0, - u = ug( - t ^ e, - (k = t >>> 0 < k >>> 0 ? (I + 1) | 0 : I) ^ P, - 63 - ), - t = p, - e = M, - S = w, - I = (o + rA) | 0, - I = - ((I = - (w = ((M = $) + L) | 0) >>> 0 < M >>> 0 - ? (I + 1) | 0 - : I) + - (F = b)) | - 0, - Y = ug( - (v = M = (e + w) | 0) ^ R, - (b = w >>> 0 > v >>> 0 ? (I + 1) | 0 : I) ^ Y, - 32 - ), - I = ((I = y) + (y = p)) | 0, - o = F, - F = I = - (w = Y) >>> 0 > (M = (S + w) | 0) >>> 0 - ? (I + 1) | 0 - : I, - o = S = ug(e ^ M, o ^ I, 24), - e = I = p, - S = Y, - I = (b + Q) | 0, - I = - ((I = - (Y = QA) >>> 0 > (v = (Y + v) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - e) | - 0, - v = ug( - S ^ (w = b = (v + o) | 0), - (Y = w >>> 0 < v >>> 0 ? (I + 1) | 0 : I) ^ y, - 16 - ), - I = (F + (S = p)) | 0, - P = ug( - (F = b = (M + v) | 0) ^ o, - (M = F >>> 0 < M >>> 0 ? (I + 1) | 0 : I) ^ e, - 63 - ), - b = p, - L = r, - I = (c + cA) | 0, - I = - (o = V) >>> 0 > (r = (o + l) | 0) >>> 0 - ? (I + 1) | 0 - : I, - o = r, - I = (I + (y = m)) | 0, - e = ug( - (r = c = (L + r) | 0) ^ tA, - (m = r >>> 0 < o >>> 0 ? (I + 1) | 0 : I) ^ _, - 32 - ), - I = (q + (c = p)) | 0, - _ = y, - y = I = - (o = (N + e) | 0) >>> 0 < N >>> 0 ? (I + 1) | 0 : I, - l = ug(L ^ o, _ ^ I, 24), - q = I = p, - _ = I, - N = e, - e = ((I = r) + (r = W)) | 0, - I = (m + eA) | 0, - I = - ((I = r >>> 0 > e >>> 0 ? (I + 1) | 0 : I) + _) | 0, - _ = I = - (r = e) >>> 0 > (m = (r + l) | 0) >>> 0 - ? (I + 1) | 0 - : I, - L = ug(N ^ m, I ^ c, 16), - I = (y + (r = p)) | 0, - N = ug( - (c = (o + L) | 0) ^ l, - (I = c >>> 0 < o >>> 0 ? (I + 1) | 0 : I) ^ q, - 63 - ), - y = p, - e = I, - I = (B + (o = G)) | 0, - I = - (s + - ((l = K) >>> 0 > (q = (l + O) | 0) >>> 0 - ? (I + 1) | 0 - : I)) | - 0, - l = G = (H + q) | 0, - q = ug( - G ^ T, - (s = G >>> 0 < H >>> 0 ? (I + 1) | 0 : I) ^ J, - 32 - ), - I = (a + (G = p)) | 0, - J = I = - D >>> 0 > (H = (D + q) | 0) >>> 0 ? (I + 1) | 0 : I, - T = I = ug(H ^ O, I ^ o, 24), - D = I, - o = (I + l) | 0, - I = ((a = p) + s) | 0, - I = - ((I = o >>> 0 < D >>> 0 ? (I + 1) | 0 : I) + - (IA = i[(g + 204) >> 2])) | - 0, - I = - (s = (o + i[(g + 200) >> 2]) | 0) >>> 0 < o >>> 0 - ? (I + 1) | 0 - : I, - o = G, - G = I, - IA = ug(s ^ q, o ^ I, 16), - I = (J + (D = p)) | 0, - I = - (o = (H + IA) | 0) >>> 0 < H >>> 0 - ? (I + 1) | 0 - : I, - H = o, - J = I, - a = ug(T ^ o, I ^ a, 63), - o = I = p, - l = c, - T = v, - I = (f + E) | 0, - I = - ((I = - (c = j) >>> 0 > (v = (c + z) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - o) | - 0, - T = ug( - T ^ (q = f = ((c = v) + a) | 0), - (f = f >>> 0 < c >>> 0 ? (I + 1) | 0 : I) ^ S, - 32 - ), - I = ((c = p) + e) | 0, - S = I = - (v = (l + (S = T)) | 0) >>> 0 < S >>> 0 - ? (I + 1) | 0 - : I, - a = ug(a ^ v, o ^ I, 24), - l = I = p, - o = I, - R = a, - I = (f + Q) | 0, - I = - ((I = - (a = QA) >>> 0 > (e = (a + q) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - o) | - 0, - T = ug( - (o = f = (R + (a = e)) | 0) ^ T, - (a = o >>> 0 < a >>> 0 ? (I + 1) | 0 : I) ^ c, - 16 - ), - I = (S + (e = p)) | 0, - I = - (f = (v + T) | 0) >>> 0 < v >>> 0 ? (I + 1) | 0 : I, - v = f, - S = I, - f = ug(R ^ f, I ^ l, 63), - c = p, - l = t, - R = u, - I = (t + B) | 0, - I = - (Y + - ((u = K) >>> 0 > (q = (R + u) | 0) >>> 0 - ? (I + 1) | 0 - : I)) | - 0, - r = ug( - (u = t = (w + q) | 0) ^ L, - (t = t >>> 0 < w >>> 0 ? (I + 1) | 0 : I) ^ r, - 32 - ), - I = (J + (w = p)) | 0, - J = I = - H >>> 0 > (Y = (H + r) | 0) >>> 0 ? (I + 1) | 0 : I, - q = l = ug(R ^ (H = Y), I ^ l, 24), - z = I = p, - Y = I, - R = l, - L = r, - I = (t + cA) | 0, - I = - ((I = - (r = V) >>> 0 > (l = (r + u) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - Y) | - 0, - q = t = (q + (r = l)) | 0, - L = ug( - L ^ t, - (Y = w) ^ (w = t >>> 0 < r >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (J + (Y = p)) | 0, - I = - (t = (H + L) | 0) >>> 0 < H >>> 0 ? (I + 1) | 0 : I, - H = t, - J = I, - u = ug(R ^ t, I ^ z, 63), - t = p, - R = P, - I = (eA + (r = b)) | 0, - I = - (_ + - ((l = W) >>> 0 > (P = (l + P) | 0) >>> 0 - ? (I + 1) | 0 - : I)) | - 0, - l = ug( - (_ = b = (m + P) | 0) ^ IA, - (b = m >>> 0 > _ >>> 0 ? (I + 1) | 0 : I) ^ D, - 32 - ), - I = (k + (m = p)) | 0, - I = - (D = (d + l) | 0) >>> 0 < d >>> 0 ? (I + 1) | 0 : I, - d = D, - k = I, - I = ug(R ^ D, I ^ r, 24), - z = i[(g + 236) >> 2], - R = I, - r = _, - _ = I, - r = (r + I) | 0, - I = ((D = p) + b) | 0, - I = - ((I = r >>> 0 < _ >>> 0 ? (I + 1) | 0 : I) + z) | 0, - r = I = - (b = (r + i[(g + 232) >> 2]) | 0) >>> 0 < r >>> 0 - ? (I + 1) | 0 - : I, - z = ug((_ = b) ^ l, I ^ m, 16), - I = (k + (l = p)) | 0, - P = b = (d + z) | 0, - D = ug( - R ^ b, - (m = b >>> 0 < d >>> 0 ? (I + 1) | 0 : I) ^ D, - 63 - ), - b = p, - d = y, - R = N, - I = (y + G) | 0, - I = - ((I = - (k = (s + N) | 0) >>> 0 < s >>> 0 - ? (I + 1) | 0 - : I) + - (IA = i[(g + 164) >> 2])) | - 0, - U = ug( - (N = y = ((s = k) + i[(g + 160) >> 2]) | 0) ^ BA, - (y = y >>> 0 < s >>> 0 ? (I + 1) | 0 : I) ^ U, - 32 - ), - I = (M + (s = p)) | 0, - M = d, - d = I = - F >>> 0 > (G = (F + U) | 0) >>> 0 ? (I + 1) | 0 : I, - M = F = ug(R ^ G, M ^ I, 24), - BA = I = p, - k = I, - R = U, - I = (y + oA) | 0, - I = - ((I = - (F = ((U = x) + N) | 0) >>> 0 < U >>> 0 - ? (I + 1) | 0 - : I) + - k) | - 0, - IA = y = (M + F) | 0, - F = ug( - R ^ y, - (k = s) ^ (s = y >>> 0 < F >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (d + (k = p)) | 0, - I = - (y = (G + F) | 0) >>> 0 < G >>> 0 ? (I + 1) | 0 : I, - G = y, - d = I, - N = ug(y ^ M, I ^ BA, 63), - y = p, - U = t, - R = F, - I = (t + a) | 0, - I = - ((I = - (F = (o + u) | 0) >>> 0 < o >>> 0 - ? (I + 1) | 0 - : I) + - (M = i[(g + 132) >> 2])) | - 0, - o = ug( - R ^ (M = t = (F + i[(g + 128) >> 2]) | 0), - (t = t >>> 0 < F >>> 0 ? (I + 1) | 0 : I) ^ k, - 32 - ), - I = ((I = m) + (m = p)) | 0, - a = U, - U = I = - o >>> 0 > (k = (o + P) | 0) >>> 0 ? (I + 1) | 0 : I, - a = ug(k ^ u, a ^ I, 24), - P = I = p, - F = I, - u = o, - o = ((I = M) + (M = $)) | 0, - I = (t + rA) | 0, - I = - ((I = o >>> 0 < M >>> 0 ? (I + 1) | 0 : I) + F) | 0, - BA = t = (o + a) | 0, - AA = ug( - u ^ t, - (F = t >>> 0 < o >>> 0 ? (I + 1) | 0 : I) ^ m, - 16 - ), - I = (U + (M = p)) | 0, - U = I = - (m = (k + AA) | 0) >>> 0 < k >>> 0 - ? (I + 1) | 0 - : I, - u = ug((k = m) ^ a, I ^ P, 63), - m = p, - P = D, - I = (w + yA) | 0, - w = o = ((D = Z) + q) | 0, - I = - ((I = o >>> 0 < D >>> 0 ? (I + 1) | 0 : I) + - (t = b)) | - 0, - a = ug( - (o = D = (P + o) | 0) ^ T, - (b = w >>> 0 > o >>> 0 ? (I + 1) | 0 : I) ^ e, - 32 - ), - I = (d + (D = p)) | 0, - I = - (w = (G + a) | 0) >>> 0 < G >>> 0 ? (I + 1) | 0 : I, - G = w, - e = t, - t = I, - I = ug(P ^ w, e ^ I, 24), - P = i[(g + 156) >> 2], - e = I, - w = I, - o = (I + o) | 0, - I = ((d = p) + b) | 0, - I = - ((I = o >>> 0 < w >>> 0 ? (I + 1) | 0 : I) + P) | 0, - I = - o >>> 0 > (b = (o + i[(g + 152) >> 2]) | 0) >>> 0 - ? (I + 1) | 0 - : I, - o = D, - D = I, - q = ug((w = b) ^ a, o ^ I, 16), - I = (t + (o = p)) | 0, - a = d, - d = I = - (b = (G + q) | 0) >>> 0 < G >>> 0 ? (I + 1) | 0 : I, - P = ug(e ^ (G = b), a ^ I, 63), - t = p, - b = y, - I = (y + r) | 0, - I = - ((I = - (a = (_ + N) | 0) >>> 0 < _ >>> 0 - ? (I + 1) | 0 - : I) + - (e = i[(g + 204) >> 2])) | - 0, - I = - (y = (a + i[(g + 200) >> 2]) | 0) >>> 0 < a >>> 0 - ? (I + 1) | 0 - : I, - a = Y, - Y = I, - a = ug(y ^ L, a ^ I, 32), - I = (S + (_ = p)) | 0, - I = - (r = (v + a) | 0) >>> 0 < v >>> 0 ? (I + 1) | 0 : I, - v = r, - e = b, - b = I, - r = ug(r ^ N, e ^ I, 24), - e = I = p, - L = r, - I = (I + Y) | 0, - I = - ((I = - (r = (y + r) | 0) >>> 0 < y >>> 0 - ? (I + 1) | 0 - : I) + - (N = i[(g + 148) >> 2])) | - 0, - I = - (y = (r + i[(g + 144) >> 2]) | 0) >>> 0 < r >>> 0 - ? (I + 1) | 0 - : I, - Y = y, - r = _, - _ = I, - T = ug(y ^ a, r ^ I, 16), - I = (b + (r = p)) | 0, - I = - (y = (v + T) | 0) >>> 0 < v >>> 0 ? (I + 1) | 0 : I, - v = y, - S = I, - N = ug(L ^ y, e ^ I, 63), - y = p, - b = c, - L = f, - I = (c + s) | 0, - c = a = (f + IA) | 0, - I = - ((I = a >>> 0 < f >>> 0 ? (I + 1) | 0 : I) + - (e = i[(g + 196) >> 2])) | - 0, - e = ug( - (a = f = (a + i[(g + 192) >> 2]) | 0) ^ z, - (f = a >>> 0 < c >>> 0 ? (I + 1) | 0 : I) ^ l, - 32 - ), - I = (J + (c = p)) | 0, - b = ug( - L ^ (s = (H + e) | 0), - (I = s >>> 0 < H >>> 0 ? (I + 1) | 0 : I) ^ b, - 24 - ), - H = I, - z = i[(g + 220) >> 2], - l = b, - R = s, - I = ((s = p) + f) | 0, - f = a = (a + b) | 0, - I = - ((I = a >>> 0 < b >>> 0 ? (I + 1) | 0 : I) + - (L = z)) | - 0, - L = ug( - (b = - (a = b = ((J = i[(g + 216) >> 2]) + a) | 0) ^ e), - (e = f >>> 0 > a >>> 0 ? (I + 1) | 0 : I) ^ c, - 16 - ), - I = ((I = H) + (H = p)) | 0, - I = - (f = L) >>> 0 > (b = (R + f) | 0) >>> 0 - ? (I + 1) | 0 - : I, - f = s, - s = I, - I = ug(l ^ b, f ^ I, 63), - O = i[(g + 236) >> 2], - R = I, - c = I, - l = (I + BA) | 0, - I = ((f = p) + F) | 0, - I = - ((I = c >>> 0 > l >>> 0 ? (I + 1) | 0 : I) + O) | 0, - q = ug( - (l = c = ((F = l) + i[(g + 232) >> 2]) | 0) ^ q, - (c = c >>> 0 < F >>> 0 ? (I + 1) | 0 : I) ^ o, - 32 - ), - I = (S + (F = p)) | 0, - I = - (o = (v + q) | 0) >>> 0 < v >>> 0 ? (I + 1) | 0 : I, - v = o, - S = f, - f = I, - I = ug(R ^ o, S ^ I, 24), - R = q, - o = I, - l = (I + l) | 0, - I = ((S = p) + c) | 0, - I = (z + (o >>> 0 > l >>> 0 ? (I + 1) | 0 : I)) | 0, - q = c = (l + J) | 0, - z = ug( - R ^ c, - (l = F) ^ (F = c >>> 0 < J >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (f + (J = p)) | 0, - I = - (c = (v + z) | 0) >>> 0 < v >>> 0 ? (I + 1) | 0 : I, - v = c, - f = S, - S = I, - f = ug(o ^ c, f ^ I, 63), - c = p, - R = u, - I = (rA + (o = m)) | 0, - I = - (D + - ((u = ((l = $) + u) | 0) >>> 0 < l >>> 0 - ? (I + 1) | 0 - : I)) | - 0, - r = ug( - (l = m = (w + u) | 0) ^ T, - (m = w >>> 0 > m >>> 0 ? (I + 1) | 0 : I) ^ r, - 32 - ), - I = (s + (D = p)) | 0, - I = - (w = (b + r) | 0) >>> 0 < b >>> 0 ? (I + 1) | 0 : I, - b = w, - s = I, - u = o = ug(R ^ w, I ^ o, 24), - T = I = p, - w = I, - R = r, - I = (m + eA) | 0, - I = - ((I = - (o = W) >>> 0 > (r = (o + l) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - w) | - 0, - BA = m = (u + (o = r)) | 0, - IA = ug( - R ^ m, - (r = D) ^ (D = o >>> 0 > m >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (s + (w = p)) | 0, - l = ug( - (s = m = (b + IA) | 0) ^ u, - (o = s >>> 0 < b >>> 0 ? (I + 1) | 0 : I) ^ T, - 63 - ), - b = p, - m = t, - I = (t + E) | 0, - I = - (_ + - ((r = j) >>> 0 > (u = (r + P) | 0) >>> 0 - ? (I + 1) | 0 - : I)) | - 0, - r = ug( - (_ = t = (Y + u) | 0) ^ L, - (t = t >>> 0 < Y >>> 0 ? (I + 1) | 0 : I) ^ H, - 32 - ), - I = (U + (H = p)) | 0, - I = - k >>> 0 > (Y = (k + r) | 0) >>> 0 ? (I + 1) | 0 : I, - k = Y, - Y = m, - m = I, - u = Y = ug(k ^ P, Y ^ I, 24), - P = I = p, - U = I, - I = (t + B) | 0, - I = - ((I = - (Y = K) >>> 0 > (_ = (Y + _) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - U) | - 0, - U = t = (u + _) | 0, - T = ug( - t ^ r, - (Y = H) ^ (H = t >>> 0 < _ >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (m + (Y = p)) | 0, - I = - (t = (k + T) | 0) >>> 0 < k >>> 0 ? (I + 1) | 0 : I, - k = t, - _ = I, - u = ug(t ^ u, I ^ P, 63), - m = p, - I = (e + (t = y)) | 0, - I = - ((I = - (r = (a + N) | 0) >>> 0 < a >>> 0 - ? (I + 1) | 0 - : I) + - (P = i[(g + 156) >> 2])) | - 0, - a = M, - M = I = - (y = (r + i[(g + 152) >> 2]) | 0) >>> 0 < r >>> 0 - ? (I + 1) | 0 - : I, - e = ug(y ^ AA, a ^ I, 32), - I = (d + (r = p)) | 0, - I = - (a = (G + e) | 0) >>> 0 < G >>> 0 ? (I + 1) | 0 : I, - G = a, - d = t, - t = I, - a = ug(a ^ N, d ^ I, 24), - N = I = p, - R = a, - I = (M + I) | 0, - I = - ((I = - (a = (a + y) | 0) >>> 0 < y >>> 0 - ? (I + 1) | 0 - : I) + - (P = i[(g + 204) >> 2])) | - 0, - L = y = (a + i[(g + 200) >> 2]) | 0, - a = ug( - y ^ e, - (M = y >>> 0 < a >>> 0 ? (I + 1) | 0 : I) ^ r, - 16 - ), - I = (t + (y = p)) | 0, - I = - (r = (G + a) | 0) >>> 0 < G >>> 0 ? (I + 1) | 0 : I, - G = r, - d = I, - N = ug(R ^ r, N ^ I, 63), - t = p, - P = a, - I = (F + Q) | 0, - I = - ((I = - (a = QA) >>> 0 > (e = (a + q) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - (r = b)) | - 0, - b = F = ((a = e) + l) | 0, - e = ug( - P ^ F, - (e = y) ^ (y = a >>> 0 > F >>> 0 ? (I + 1) | 0 : I), - 32 - ), - I = (_ + (F = p)) | 0, - I = - (a = (k + e) | 0) >>> 0 < k >>> 0 ? (I + 1) | 0 : I, - k = a, - _ = I, - a = ug(a ^ l, I ^ r, 24), - r = I = p, - l = a, - I = (y + I) | 0, - I = - ((I = - (a = (a + b) | 0) >>> 0 < b >>> 0 - ? (I + 1) | 0 - : I) + - (P = i[(g + 132) >> 2])) | - 0, - q = b = (a + i[(g + 128) >> 2]) | 0, - AA = ug( - b ^ e, - (y = F) ^ (F = a >>> 0 > b >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (_ + (a = p)) | 0, - _ = I = - (b = (k + AA) | 0) >>> 0 < k >>> 0 - ? (I + 1) | 0 - : I, - P = ug(l ^ (k = b), I ^ r, 63), - b = p, - I = (D + cA) | 0, - I = - ((I = - (r = V) >>> 0 > (e = (r + BA) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - (y = m)) | - 0, - m = I = - (r = e) >>> 0 > (D = (r + u) | 0) >>> 0 - ? (I + 1) | 0 - : I, - e = ug((r = D) ^ z, I ^ J, 32), - I = (d + (J = p)) | 0, - I = - G >>> 0 > (D = (G + e) | 0) >>> 0 ? (I + 1) | 0 : I, - G = D, - l = y, - y = I, - I = ug(D ^ u, l ^ I, 24), - u = i[(g + 164) >> 2], - l = I, - D = I, - r = (I + r) | 0, - I = ((d = p) + m) | 0, - I = - ((I = r >>> 0 < D >>> 0 ? (I + 1) | 0 : I) + u) | 0, - I = - (m = (r + i[(g + 160) >> 2]) | 0) >>> 0 < r >>> 0 - ? (I + 1) | 0 - : I, - r = J, - J = I, - r = ug((D = m) ^ e, r ^ I, 16), - I = (y + (e = p)) | 0, - y = d, - d = I = - (m = (G + r) | 0) >>> 0 < G >>> 0 ? (I + 1) | 0 : I, - m = ug(l ^ (G = m), y ^ I, 63), - y = p, - l = t, - R = N, - I = (t + H) | 0, - I = - ((I = - (u = (U + N) | 0) >>> 0 < U >>> 0 - ? (I + 1) | 0 - : I) + - (z = i[(g + 196) >> 2])) | - 0, - N = ug( - (u = t = ((H = u) + i[(g + 192) >> 2]) | 0) ^ IA, - (t = t >>> 0 < H >>> 0 ? (I + 1) | 0 : I) ^ w, - 32 - ), - I = (S + (H = p)) | 0, - w = I = - (U = (v + N) | 0) >>> 0 < v >>> 0 ? (I + 1) | 0 : I, - S = ug(R ^ U, I ^ l, 24), - z = I = p, - v = I, - R = S, - I = (t + yA) | 0, - I = - ((I = - (l = ((S = Z) + u) | 0) >>> 0 < S >>> 0 - ? (I + 1) | 0 - : I) + - v) | - 0, - BA = t = (R + (S = l)) | 0, - IA = ug( - t ^ N, - (l = H) ^ (H = t >>> 0 < S >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (w + (v = p)) | 0, - I = - (t = (U + IA) | 0) >>> 0 < U >>> 0 - ? (I + 1) | 0 - : I, - U = t, - l = ug(R ^ t, I ^ z, 63), - t = p, - w = c, - S = I, - R = f, - I = (c + M) | 0, - I = - ((I = - (u = (f + L) | 0) >>> 0 < f >>> 0 - ? (I + 1) | 0 - : I) + - (N = i[(g + 148) >> 2])) | - 0, - Y = ug( - (u = f = ((c = u) + i[(g + 144) >> 2]) | 0) ^ T, - (f = f >>> 0 < c >>> 0 ? (I + 1) | 0 : I) ^ Y, - 32 - ), - I = (o + (c = p)) | 0, - I = - s >>> 0 > (M = (s + Y) | 0) >>> 0 ? (I + 1) | 0 : I, - s = M, - M = I, - N = o = ug(R ^ s, I ^ w, 24), - T = I = p, - w = I, - L = Y, - I = (f + oA) | 0, - I = - ((I = - (o = ((Y = x) + u) | 0) >>> 0 < Y >>> 0 - ? (I + 1) | 0 - : I) + - w) | - 0, - w = f = (N + o) | 0, - z = ug( - L ^ f, - (Y = f >>> 0 < o >>> 0 ? (I + 1) | 0 : I) ^ c, - 16 - ), - I = (M + (c = p)) | 0, - I = - (f = (s + z) | 0) >>> 0 < s >>> 0 ? (I + 1) | 0 : I, - s = f, - M = I, - o = ug(f ^ N, I ^ T, 63), - u = I = p, - f = I, - N = U, - T = r, - I = (F + yA) | 0, - F = r = ((U = Z) + q) | 0, - I = - ((I = r >>> 0 < U >>> 0 ? (I + 1) | 0 : I) + f) | 0, - e = ug( - T ^ (r = U = (r + o) | 0), - (f = F >>> 0 > r >>> 0 ? (I + 1) | 0 : I) ^ e, - 32 - ), - I = ((U = p) + S) | 0, - S = I = - (F = (N + e) | 0) >>> 0 < e >>> 0 ? (I + 1) | 0 : I, - u = ug(o ^ F, u ^ I, 24), - q = I = p, - o = I, - N = e, - e = ((I = r) + (r = V)) | 0, - I = (f + cA) | 0, - I = - ((I = r >>> 0 > e >>> 0 ? (I + 1) | 0 : I) + o) | 0, - T = f = ((r = e) + u) | 0, - L = ug( - N ^ f, - (o = U) ^ (U = f >>> 0 < r >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (S + (o = p)) | 0, - I = - (f = (F + L) | 0) >>> 0 < F >>> 0 ? (I + 1) | 0 : I, - F = f, - S = I, - N = ug(f ^ u, I ^ q, 63), - f = p, - I = (eA + (r = b)) | 0, - I = - (J + - ((e = W) >>> 0 > (u = (e + P) | 0) >>> 0 - ? (I + 1) | 0 - : I)) | - 0, - v = ug( - (e = b = (D + u) | 0) ^ IA, - (b = e >>> 0 < D >>> 0 ? (I + 1) | 0 : I) ^ v, - 32 - ), - I = (M + (J = p)) | 0, - M = I = - s >>> 0 > (D = (s + v) | 0) >>> 0 ? (I + 1) | 0 : I, - I = ug((s = D) ^ P, I ^ r, 24), - P = i[(g + 204) >> 2], - u = I, - q = v, - v = I, - r = (I + e) | 0, - I = ((D = p) + b) | 0, - I = - ((I = r >>> 0 < v >>> 0 ? (I + 1) | 0 : I) + P) | 0, - P = b = (r + i[(g + 200) >> 2]) | 0, - q = ug( - q ^ b, - (e = J) ^ (J = b >>> 0 < r >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (M + (v = p)) | 0, - M = b = (s + q) | 0, - e = ug( - u ^ b, - (r = D) ^ (D = s >>> 0 > b >>> 0 ? (I + 1) | 0 : I), - 63 - ), - b = p, - s = y, - R = m, - I = (y + H) | 0, - I = - ((I = - (r = (m + BA) | 0) >>> 0 < m >>> 0 - ? (I + 1) | 0 - : I) + - (u = i[(g + 220) >> 2])) | - 0, - r = ug( - (H = m = (r + i[(g + 216) >> 2]) | 0) ^ z, - (m = r >>> 0 > H >>> 0 ? (I + 1) | 0 : I) ^ c, - 32 - ), - I = (_ + (y = p)) | 0, - _ = s, - s = I = - (c = (k + r) | 0) >>> 0 < k >>> 0 ? (I + 1) | 0 : I, - I = ug(R ^ c, _ ^ I, 24), - z = i[(g + 156) >> 2], - u = I, - _ = H, - H = I, - _ = (_ + I) | 0, - I = ((k = p) + m) | 0, - I = - ((I = H >>> 0 > _ >>> 0 ? (I + 1) | 0 : I) + z) | 0, - z = m = ((H = _) + i[(g + 152) >> 2]) | 0, - BA = ug( - m ^ r, - (H = m >>> 0 < H >>> 0 ? (I + 1) | 0 : I) ^ y, - 16 - ), - I = (s + (_ = p)) | 0, - y = ug( - u ^ (s = m = (c + BA) | 0), - (r = k) ^ (k = c >>> 0 > s >>> 0 ? (I + 1) | 0 : I), - 63 - ), - c = p, - m = t, - I = (t + Y) | 0, - I = - ((I = - (r = (w + l) | 0) >>> 0 < w >>> 0 - ? (I + 1) | 0 - : I) + - (u = i[(g + 132) >> 2])) | - 0, - w = I = - (t = (r + i[(g + 128) >> 2]) | 0) >>> 0 < r >>> 0 - ? (I + 1) | 0 - : I, - a = ug(t ^ AA, I ^ a, 32), - I = (d + (Y = p)) | 0, - I = - (r = (G + a) | 0) >>> 0 < G >>> 0 ? (I + 1) | 0 : I, - G = r, - u = m, - m = I, - r = ug(r ^ l, u ^ I, 24), - l = I = p, - R = r, - I = (w + I) | 0, - I = - ((I = - (r = (t + r) | 0) >>> 0 < t >>> 0 - ? (I + 1) | 0 - : I) + - (u = i[(g + 196) >> 2])) | - 0, - I = - (t = (r + i[(g + 192) >> 2]) | 0) >>> 0 < r >>> 0 - ? (I + 1) | 0 - : I, - w = t, - r = Y, - Y = I, - a = ug(t ^ a, r ^ I, 16), - I = (m + (t = p)) | 0, - I = - (r = (G + a) | 0) >>> 0 < G >>> 0 ? (I + 1) | 0 : I, - G = r, - d = I, - u = ug(R ^ r, l ^ I, 63), - m = p, - R = e, - l = a, - I = (U + E) | 0, - I = - ((I = - (a = j) >>> 0 > (e = (a + T) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - (r = b)) | - 0, - b = U = (R + (a = e)) | 0, - e = ug( - l ^ U, - (e = t) ^ (t = a >>> 0 > U >>> 0 ? (I + 1) | 0 : I), - 32 - ), - I = (k + (U = p)) | 0, - l = a = (s + e) | 0, - a = ug( - R ^ a, - (I = a >>> 0 < s >>> 0 ? (I + 1) | 0 : I) ^ r, - 24 - ), - k = I, - IA = i[(g + 148) >> 2], - T = a, - I = (t + (s = p)) | 0, - I = - ((I = - (a = (a + b) | 0) >>> 0 < b >>> 0 - ? (I + 1) | 0 - : I) + - (AA = IA)) | - 0, - O = ug( - (AA = b = ((r = i[(g + 144) >> 2]) + a) | 0) ^ e, - (b = a >>> 0 > b >>> 0 ? (I + 1) | 0 : I) ^ U, - 16 - ), - I = ((I = k) + (k = p)) | 0, - I = - (t = ((U = O) + l) | 0) >>> 0 < U >>> 0 - ? (I + 1) | 0 - : I, - U = t, - a = I, - t = ug(T ^ t, I ^ s, 63), - s = p, - R = y, - I = ((e = c) + J) | 0, - I = - ((I = - (l = (y + P) | 0) >>> 0 < y >>> 0 - ? (I + 1) | 0 - : I) + - (T = i[(g + 236) >> 2])) | - 0, - o = ug( - (l = y = ((c = l) + i[(g + 232) >> 2]) | 0) ^ L, - (y = c >>> 0 > y >>> 0 ? (I + 1) | 0 : I) ^ o, - 32 - ), - I = (d + (c = p)) | 0, - d = I = - G >>> 0 > (J = (G + o) | 0) >>> 0 ? (I + 1) | 0 : I, - P = e = ug(R ^ (G = J), I ^ e, 24), - T = I = p, - J = I, - R = o, - I = (y + rA) | 0, - I = - ((I = - (o = $) >>> 0 > (e = (o + l) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - J) | - 0, - L = y = (P + (o = e)) | 0, - o = ug( - R ^ y, - (J = y >>> 0 < o >>> 0 ? (I + 1) | 0 : I) ^ c, - 16 - ), - I = (d + (e = p)) | 0, - d = y = (G + o) | 0, - P = ug( - y ^ P, - (l = y >>> 0 < G >>> 0 ? (I + 1) | 0 : I) ^ T, - 63 - ), - y = p, - T = u, - I = (H + B) | 0, - I = - ((I = - (G = K) >>> 0 > (u = (G + z) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - (c = m)) | - 0, - u = ug( - (m = G = (T + (H = u)) | 0) ^ q, - (G = G >>> 0 < H >>> 0 ? (I + 1) | 0 : I) ^ v, - 32 - ), - I = (S + (H = p)) | 0, - S = ug( - T ^ (v = (F + u) | 0), - (I = F >>> 0 > v >>> 0 ? (I + 1) | 0 : I) ^ c, - 24 - ), - F = I, - z = i[(g + 164) >> 2], - q = S, - R = v, - I = (G + (c = p)) | 0, - G = S = (m + S) | 0, - I = - ((I = S >>> 0 < m >>> 0 ? (I + 1) | 0 : I) + - (T = z)) | - 0, - S = H, - H = I = - (m = ((v = i[(g + 160) >> 2]) + G) | 0) >>> 0 < - G >>> 0 - ? (I + 1) | 0 - : I, - iA = ug(m ^ u, S ^ I, 16), - I = ((I = F) + (F = p)) | 0, - S = I = - (G = (R + (S = iA)) | 0) >>> 0 < S >>> 0 - ? (I + 1) | 0 - : I, - q = ug(q ^ G, I ^ c, 63), - c = p, - u = f, - R = N, - I = (f + oA) | 0, - I = - (Y + - ((N = x) >>> 0 > (T = (R + N) | 0) >>> 0 - ? (I + 1) | 0 - : I)) | - 0, - _ = ug( - (N = f = (w + T) | 0) ^ BA, - (f = f >>> 0 < w >>> 0 ? (I + 1) | 0 : I) ^ _, - 32 - ), - I = (D + (w = p)) | 0, - D = I = - (Y = (M + _) | 0) >>> 0 < M >>> 0 ? (I + 1) | 0 : I, - T = u = ug(R ^ (M = Y), I ^ u, 24), - BA = I = p, - Y = I, - R = _, - I = (f + Q) | 0, - I = - ((I = - (u = ((_ = QA) + N) | 0) >>> 0 < _ >>> 0 - ? (I + 1) | 0 - : I) + - Y) | - 0, - Y = f = (T + u) | 0, - N = ug( - R ^ f, - (_ = w) ^ (w = f >>> 0 < u >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (D + (_ = p)) | 0, - I = - (f = (M + N) | 0) >>> 0 < M >>> 0 ? (I + 1) | 0 : I, - M = f, - D = I, - u = ug(f ^ T, I ^ BA, 63), - T = I = p, - f = I, - R = o, - I = (b + oA) | 0, - b = o = (x + AA) | 0, - I = - ((I = o >>> 0 < x >>> 0 ? (I + 1) | 0 : I) + f) | 0, - e = ug( - R ^ (o = x = (o + u) | 0), - (b = b >>> 0 > o >>> 0 ? (I + 1) | 0 : I) ^ e, - 32 - ), - I = (S + (f = p)) | 0, - oA = x = (G + e) | 0, - S = I = G >>> 0 > x >>> 0 ? (I + 1) | 0 : I, - R = x = ug(u ^ x, T ^ I, 24), - I = ((G = p) + b) | 0, - I = - ((I = - (o = (o + x) | 0) >>> 0 < x >>> 0 - ? (I + 1) | 0 - : I) + - IA) | - 0, - T = ug( - (u = x = (o + r) | 0) ^ e, - (o = r >>> 0 > u >>> 0 ? (I + 1) | 0 : I) ^ f, - 16 - ), - I = ((I = S) + (S = p)) | 0, - oA = x = ((b = T) + oA) | 0, - f = ug( - R ^ x, - (b = b >>> 0 > x >>> 0 ? (I + 1) | 0 : I) ^ G, - 63 - ), - G = p, - x = s, - R = t, - I = (s + J) | 0, - s = r = (t + L) | 0, - I = - ((I = r >>> 0 < t >>> 0 ? (I + 1) | 0 : I) + - (e = i[(g + 196) >> 2])) | - 0, - e = ug( - (r = t = (r + i[(g + 192) >> 2]) | 0) ^ iA, - (t = r >>> 0 < s >>> 0 ? (I + 1) | 0 : I) ^ F, - 32 - ), - I = (D + (s = p)) | 0, - D = x, - x = I = - (F = (M + e) | 0) >>> 0 < M >>> 0 ? (I + 1) | 0 : I, - R = I = ug(R ^ F, D ^ I, 24), - M = I, - D = (I + r) | 0, - I = ((J = p) + t) | 0, - I = (z + (D >>> 0 < M >>> 0 ? (I + 1) | 0 : I)) | 0, - z = t = (D + v) | 0, - L = ug( - t ^ e, - (r = s) ^ (s = t >>> 0 < v >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (x + (M = p)) | 0, - I = - (t = (F + L) | 0) >>> 0 < F >>> 0 ? (I + 1) | 0 : I, - F = t, - r = J, - J = I, - r = ug(R ^ t, r ^ I, 63), - x = p, - I = (rA + (t = y)) | 0, - I = - (H + - ((D = $) >>> 0 > (v = (D + P) | 0) >>> 0 - ? (I + 1) | 0 - : I)) | - 0, - D = y = (m + v) | 0, - v = ug( - y ^ N, - (m = y >>> 0 < m >>> 0 ? (I + 1) | 0 : I) ^ _, - 32 - ), - I = (a + (y = p)) | 0, - a = t, - t = I = - (H = (U + v) | 0) >>> 0 < U >>> 0 ? (I + 1) | 0 : I, - a = _ = ug(H ^ P, a ^ I, 24), - e = I = p, - _ = v, - v = ((I = D) + (D = Z)) | 0, - I = (m + yA) | 0, - I = - ((I = D >>> 0 > v >>> 0 ? (I + 1) | 0 : I) + e) | 0, - U = m = ((D = v) + a) | 0, - N = ug( - _ ^ m, - (D = m >>> 0 < D >>> 0 ? (I + 1) | 0 : I) ^ y, - 16 - ), - I = (t + (v = p)) | 0, - t = ug( - (P = m = (H + N) | 0) ^ a, - (m = m >>> 0 < H >>> 0 ? (I + 1) | 0 : I) ^ e, - 63 - ), - y = p, - H = c, - I = (c + B) | 0, - I = - (w + - ((a = ((_ = K) + q) | 0) >>> 0 < _ >>> 0 - ? (I + 1) | 0 - : I)) | - 0, - I = - (c = (Y + a) | 0) >>> 0 < Y >>> 0 ? (I + 1) | 0 : I, - Y = c, - c = I, - _ = ug(Y ^ O, I ^ k, 32), - I = (l + (k = p)) | 0, - I = - (w = (d + _) | 0) >>> 0 < d >>> 0 ? (I + 1) | 0 : I, - d = w, - a = H, - H = I, - a = ug(w ^ q, a ^ I, 24), - l = I = p, - w = I, - e = _, - _ = ((I = Y) + (Y = QA)) | 0, - I = (c + Q) | 0, - I = - ((I = Y >>> 0 > _ >>> 0 ? (I + 1) | 0 : I) + w) | 0, - q = c = (_ + a) | 0, - _ = ug( - e ^ c, - (Y = k) ^ (k = c >>> 0 < _ >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (H + (w = p)) | 0, - I = - (c = (d + _) | 0) >>> 0 < d >>> 0 ? (I + 1) | 0 : I, - d = c, - H = I, - e = ug(c ^ a, I ^ l, 63), - c = p, - a = r, - l = _, - I = (o + cA) | 0, - I = - ((I = - (r = ((_ = V) + u) | 0) >>> 0 < _ >>> 0 - ? (I + 1) | 0 - : I) + - (Y = x)) | - 0, - _ = o = (a + r) | 0, - x = I = o >>> 0 < r >>> 0 ? (I + 1) | 0 : I, - r = ug(l ^ o, I ^ w, 32), - I = ((I = m) + (m = p)) | 0, - o = Y, - Y = I = - r >>> 0 > (w = (r + P) | 0) >>> 0 ? (I + 1) | 0 : I, - I = ug(a ^ w, o ^ I, 24), - l = i[(g + 220) >> 2], - a = I, - P = r, - o = _, - _ = I, - r = (o + I) | 0, - I = ((o = p) + x) | 0, - I = - ((I = r >>> 0 < _ >>> 0 ? (I + 1) | 0 : I) + l) | 0, - P = ug( - P ^ (u = x = (r + i[(g + 216) >> 2]) | 0), - (_ = r >>> 0 > u >>> 0 ? (I + 1) | 0 : I) ^ m, - 16 - ), - I = (Y + (r = p)) | 0, - Y = I = - w >>> 0 > (x = (w + P) | 0) >>> 0 ? (I + 1) | 0 : I, - x = ug(a ^ (w = x), I ^ o, 63), - m = p, - R = t, - I = ((o = y) + s) | 0, - y = a = (t + z) | 0, - I = - ((I = a >>> 0 < t >>> 0 ? (I + 1) | 0 : I) + - (l = i[(g + 204) >> 2])) | - 0, - S = ug( - (a = t = (a + i[(g + 200) >> 2]) | 0) ^ T, - (t = a >>> 0 < y >>> 0 ? (I + 1) | 0 : I) ^ S, - 32 - ), - I = (H + (y = p)) | 0, - d = I = - (s = (d + S) | 0) >>> 0 < d >>> 0 ? (I + 1) | 0 : I, - l = o = ug(R ^ s, I ^ o, 24), - T = I = p, - H = I, - R = S, - I = (t + eA) | 0, - I = - ((I = - (o = ((S = W) + a) | 0) >>> 0 < S >>> 0 - ? (I + 1) | 0 - : I) + - H) | - 0, - z = t = (l + o) | 0, - BA = ug( - R ^ t, - (H = t >>> 0 < o >>> 0 ? (I + 1) | 0 : I) ^ y, - 16 - ), - I = (d + (S = p)) | 0, - I = - (t = (s + BA) | 0) >>> 0 < s >>> 0 - ? (I + 1) | 0 - : I, - s = t, - d = I, - t = ug(t ^ l, I ^ T, 63), - y = p, - R = e, - I = ((o = c) + D) | 0, - I = - (e = (e + U) | 0) >>> 0 < U >>> 0 ? (I + 1) | 0 : I, - U = e, - I = (I + (l = T = i[(g + 156) >> 2])) | 0, - l = ug( - (e = c = ((a = i[(g + 152) >> 2]) + e) | 0) ^ L, - (c = e >>> 0 < U >>> 0 ? (I + 1) | 0 : I) ^ M, - 32 - ), - I = ((I = b) + (b = p)) | 0, - M = I = - (U = (l + oA) | 0) >>> 0 < l >>> 0 - ? (I + 1) | 0 - : I, - oA = o = ug(R ^ U, I ^ o, 24), - L = I = p, - D = I, - R = o, - I = (c + E) | 0, - I = - ((I = - (o = j) >>> 0 > (e = (o + e) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - D) | - 0, - oA = c = (oA + (o = e)) | 0, - IA = ug( - c ^ l, - (D = c >>> 0 < o >>> 0 ? (I + 1) | 0 : I) ^ b, - 16 - ), - I = (M + (c = p)) | 0, - I = - (b = (U + IA) | 0) >>> 0 < U >>> 0 - ? (I + 1) | 0 - : I, - U = b, - M = I, - l = ug(R ^ b, I ^ L, 63), - b = p, - R = f, - I = ((o = G) + k) | 0, - G = e = (f + q) | 0, - I = - ((I = e >>> 0 < f >>> 0 ? (I + 1) | 0 : I) + - (L = i[(g + 236) >> 2])) | - 0, - v = ug( - (e = f = (e + i[(g + 232) >> 2]) | 0) ^ N, - (G = e >>> 0 < G >>> 0 ? (I + 1) | 0 : I) ^ v, - 32 - ), - I = (J + (k = p)) | 0, - N = f = (F + v) | 0, - f = ug( - R ^ f, - (I = f >>> 0 < F >>> 0 ? (I + 1) | 0 : I) ^ o, - 24 - ), - J = I, - L = i[(g + 132) >> 2], - q = f, - R = N, - N = v, - I = ((F = p) + G) | 0, - I = - ((I = - (o = (f + e) | 0) >>> 0 < f >>> 0 - ? (I + 1) | 0 - : I) + - L) | - 0, - I = - (f = ((v = i[(g + 128) >> 2]) + o) | 0) >>> 0 < - o >>> 0 - ? (I + 1) | 0 - : I, - G = f, - o = k, - k = I, - N = ug(N ^ f, o ^ I, 16), - I = ((I = J) + (J = p)) | 0, - I = - (f = (R + (o = N)) | 0) >>> 0 < o >>> 0 - ? (I + 1) | 0 - : I, - o = f, - f = F, - F = I, - q = I = ug(q ^ o, f ^ I, 63), - e = I, - u = (I + u) | 0, - I = ((f = p) + _) | 0, - I = (L + (e >>> 0 > u >>> 0 ? (I + 1) | 0 : I)) | 0, - u = ug( - (e = _ = (u + v) | 0) ^ BA, - (v = v >>> 0 > e >>> 0 ? (I + 1) | 0 : I) ^ S, - 32 - ), - I = (M + (S = p)) | 0, - I = - U >>> 0 > (_ = (U + u) | 0) >>> 0 ? (I + 1) | 0 : I, - U = _, - _ = f, - f = I, - q = _ = ug(q ^ U, _ ^ I, 24), - L = I = p, - M = I, - R = _, - I = (v + B) | 0, - I = - ((I = - (e = ((_ = K) + e) | 0) >>> 0 < _ >>> 0 - ? (I + 1) | 0 - : I) + - M) | - 0, - q = v = (q + e) | 0, - BA = ug( - v ^ u, - (M = v >>> 0 < e >>> 0 ? (I + 1) | 0 : I) ^ S, - 16 - ), - I = (f + (v = p)) | 0, - I = - U >>> 0 > (S = (U + BA) | 0) >>> 0 - ? (I + 1) | 0 - : I, - U = S, - S = I, - u = ug(R ^ U, I ^ L, 63), - f = p, - _ = m, - R = x, - I = (m + H) | 0, - m = e = (x + z) | 0, - I = - ((I = e >>> 0 < x >>> 0 ? (I + 1) | 0 : I) + - (L = i[(g + 148) >> 2])) | - 0, - z = ug( - (e = x = (e + i[(g + 144) >> 2]) | 0) ^ IA, - (x = m >>> 0 > e >>> 0 ? (I + 1) | 0 : I) ^ c, - 32 - ), - I = (F + (m = p)) | 0, - H = I = - (c = (o + z) | 0) >>> 0 < o >>> 0 ? (I + 1) | 0 : I, - L = I = ug(R ^ c, I ^ _, 24), - o = I, - _ = (I + e) | 0, - I = ((F = p) + x) | 0, - I = (T + (o >>> 0 > _ >>> 0 ? (I + 1) | 0 : I)) | 0, - T = x = (a + _) | 0, - z = ug( - x ^ z, - (o = a >>> 0 > x >>> 0 ? (I + 1) | 0 : I) ^ m, - 16 - ), - I = (H + (_ = p)) | 0, - m = ug( - L ^ (H = x = (c + z) | 0), - (a = F) ^ (F = c >>> 0 > H >>> 0 ? (I + 1) | 0 : I), - 63 - ), - c = p, - x = y, - L = t, - I = (y + D) | 0, - y = a = (t + oA) | 0, - I = - ((I = a >>> 0 < t >>> 0 ? (I + 1) | 0 : I) + - (e = i[(g + 164) >> 2])) | - 0, - e = ug( - (a = t = (a + i[(g + 160) >> 2]) | 0) ^ N, - (t = a >>> 0 < y >>> 0 ? (I + 1) | 0 : I) ^ J, - 32 - ), - I = (Y + (y = p)) | 0, - Y = x, - x = I = - w >>> 0 > (J = (w + e) | 0) >>> 0 ? (I + 1) | 0 : I, - w = ug(L ^ J, Y ^ I, 24), - N = I = p, - D = I, - R = w, - I = (t + Q) | 0, - I = - ((I = - (w = QA) >>> 0 > (Y = (w + a) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - D) | - 0, - oA = t = (R + (w = Y)) | 0, - L = ug( - t ^ e, - (D = t >>> 0 < w >>> 0 ? (I + 1) | 0 : I) ^ y, - 16 - ), - I = (x + (w = p)) | 0, - I = - (t = (J + L) | 0) >>> 0 < J >>> 0 ? (I + 1) | 0 : I, - J = t, - Y = I, - t = ug(R ^ t, I ^ N, 63), - y = p, - x = b, - I = (b + yA) | 0, - I = - (k + - ((a = Z) >>> 0 > (e = (a + l) | 0) >>> 0 - ? (I + 1) | 0 - : I)) | - 0, - r = ug( - (a = b = (G + e) | 0) ^ P, - (b = a >>> 0 < G >>> 0 ? (I + 1) | 0 : I) ^ r, - 32 - ), - I = (d + (G = p)) | 0, - e = x, - x = I = - s >>> 0 > (k = (s + r) | 0) >>> 0 ? (I + 1) | 0 : I, - e = k = ug((s = k) ^ l, e ^ I, 24), - l = I = p, - N = r, - I = (b + rA) | 0, - I = - ((I = - (r = ((k = $) + a) | 0) >>> 0 < k >>> 0 - ? (I + 1) | 0 - : I) + - l) | - 0, - d = b = (e + r) | 0, - r = ug( - N ^ b, - (a = G) ^ (G = b >>> 0 < r >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (x + (k = p)) | 0, - l = ug( - (a = b = (s + r) | 0) ^ e, - (b = s >>> 0 > a >>> 0 ? (I + 1) | 0 : I) ^ l, - 63 - ), - x = p, - s = c, - N = m, - P = r, - I = (c + M) | 0, - I = - ((I = - (r = (m + q) | 0) >>> 0 < m >>> 0 - ? (I + 1) | 0 - : I) + - (e = i[(g + 196) >> 2])) | - 0, - r = ug( - P ^ (M = m = (r + i[(g + 192) >> 2]) | 0), - (m = r >>> 0 > m >>> 0 ? (I + 1) | 0 : I) ^ k, - 32 - ), - I = (Y + (c = p)) | 0, - e = s, - s = I = - (k = (J + r) | 0) >>> 0 < J >>> 0 ? (I + 1) | 0 : I, - I = ug(N ^ k, e ^ I, 24), - N = i[(g + 204) >> 2], - e = I, - Y = M, - M = I, - Y = (Y + I) | 0, - I = ((J = p) + m) | 0, - I = - ((I = Y >>> 0 < M >>> 0 ? (I + 1) | 0 : I) + N) | 0, - P = m = (Y + i[(g + 200) >> 2]) | 0, - q = ug( - m ^ r, - (M = m >>> 0 < Y >>> 0 ? (I + 1) | 0 : I) ^ c, - 16 - ), - I = (s + (Y = p)) | 0, - m = ug( - e ^ (s = m = (k + q) | 0), - (k = s >>> 0 < k >>> 0 ? (I + 1) | 0 : I) ^ J, - 63 - ), - c = p, - J = y, - N = t, - R = a, - I = (y + o) | 0, - I = - ((I = - (a = (t + T) | 0) >>> 0 < t >>> 0 - ? (I + 1) | 0 - : I) + - (e = IA = i[(g + 212) >> 2])) | - 0, - a = ug( - (o = t = ((r = i[(g + 208) >> 2]) + a) | 0) ^ BA, - (t = t >>> 0 < a >>> 0 ? (I + 1) | 0 : I) ^ v, - 32 - ), - I = ((I = b) + (b = p)) | 0, - e = J, - J = I = - (y = (R + a) | 0) >>> 0 < a >>> 0 ? (I + 1) | 0 : I, - I = ug(N ^ y, e ^ I, 24), - N = i[(g + 220) >> 2], - R = I, - e = a, - a = o, - o = I, - a = (a + I) | 0, - I = ((v = p) + t) | 0, - I = - ((I = a >>> 0 < o >>> 0 ? (I + 1) | 0 : I) + N) | 0, - T = t = (a + i[(g + 216) >> 2]) | 0, - a = ug( - e ^ t, - (o = t >>> 0 < a >>> 0 ? (I + 1) | 0 : I) ^ b, - 16 - ), - I = (J + (e = p)) | 0, - J = b = (y + a) | 0, - b = ug( - R ^ b, - (t = v) ^ (v = y >>> 0 > b >>> 0 ? (I + 1) | 0 : I), - 63 - ), - t = p, - R = l, - I = (D + E) | 0, - I = - ((I = - (l = j) >>> 0 > (N = (l + oA) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - (y = x)) | - 0, - N = ug( - (x = D = (R + (l = N)) | 0) ^ z, - (D = D >>> 0 < l >>> 0 ? (I + 1) | 0 : I) ^ _, - 32 - ), - I = (S + (_ = p)) | 0, - I = - U >>> 0 > (l = (U + N) | 0) >>> 0 ? (I + 1) | 0 : I, - U = l, - l = y, - y = I, - l = ug(R ^ U, l ^ I, 24), - S = I = p, - R = l, - I = (D + I) | 0, - I = - ((I = - (l = (l + x) | 0) >>> 0 < x >>> 0 - ? (I + 1) | 0 - : I) + - (z = i[(g + 236) >> 2])) | - 0, - oA = x = ((D = l) + i[(g + 232) >> 2]) | 0, - z = ug( - x ^ N, - (D = D >>> 0 > x >>> 0 ? (I + 1) | 0 : I) ^ _, - 16 - ), - I = (y + (_ = p)) | 0, - N = ug( - R ^ (y = x = (U + z) | 0), - (U = U >>> 0 > y >>> 0 ? (I + 1) | 0 : I) ^ S, - 63 - ), - x = p, - S = f, - R = u, - I = (f + eA) | 0, - I = - (G + - ((u = ((l = W) + u) | 0) >>> 0 < l >>> 0 - ? (I + 1) | 0 - : I)) | - 0, - w = ug( - (l = f = (d + u) | 0) ^ L, - (f = f >>> 0 < d >>> 0 ? (I + 1) | 0 : I) ^ w, - 32 - ), - I = (F + (G = p)) | 0, - H = I = - H >>> 0 > (d = (H + w) | 0) >>> 0 ? (I + 1) | 0 : I, - u = S = ug(R ^ d, I ^ S, 24), - L = I = p, - F = I, - R = w, - I = (f + cA) | 0, - I = - ((I = - (w = V) >>> 0 > (S = (w + l) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - F) | - 0, - F = f = (u + (w = S)) | 0, - l = ug( - R ^ f, - (l = G) ^ (G = f >>> 0 < w >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (H + (w = p)) | 0, - I = - (f = (d + l) | 0) >>> 0 < d >>> 0 ? (I + 1) | 0 : I, - d = f, - H = I, - S = ug(f ^ u, I ^ L, 63), - u = I = p, - f = I, - L = a, - I = (M + eA) | 0, - M = a = (P + W) | 0, - I = - ((I = a >>> 0 < W >>> 0 ? (I + 1) | 0 : I) + f) | 0, - e = ug( - L ^ (a = W = (a + S) | 0), - (W = M >>> 0 > a >>> 0 ? (I + 1) | 0 : I) ^ e, - 32 - ), - I = (U + (f = p)) | 0, - U = I = - y >>> 0 > (M = (y + e) | 0) >>> 0 ? (I + 1) | 0 : I, - P = I = ug(S ^ (y = M), u ^ I, 24), - S = I, - a = (I + a) | 0, - I = ((M = p) + W) | 0, - I = (IA + (a >>> 0 < S >>> 0 ? (I + 1) | 0 : I)) | 0, - u = ug( - (u = e) ^ (e = W = (a + r) | 0), - (S = r >>> 0 > e >>> 0 ? (I + 1) | 0 : I) ^ f, - 16 - ), - I = (U + (r = p)) | 0, - y = ug( - P ^ (U = W = (y + u) | 0), - (a = M) ^ (M = y >>> 0 > U >>> 0 ? (I + 1) | 0 : I), - 63 - ), - f = p, - W = c, - L = m, - I = (c + o) | 0, - c = a = (m + T) | 0, - I = - ((I = a >>> 0 < m >>> 0 ? (I + 1) | 0 : I) + - (P = i[(g + 164) >> 2])) | - 0, - _ = ug( - (a = m = (a + i[(g + 160) >> 2]) | 0) ^ z, - (m = c >>> 0 > a >>> 0 ? (I + 1) | 0 : I) ^ _, - 32 - ), - I = (H + (c = p)) | 0, - I = - (o = (d + _) | 0) >>> 0 < d >>> 0 ? (I + 1) | 0 : I, - d = o, - H = W, - W = I, - I = ug(L ^ o, H ^ I, 24), - T = i[(g + 196) >> 2], - L = I, - P = _, - o = I, - _ = (I + a) | 0, - I = ((H = p) + m) | 0, - I = - ((I = o >>> 0 > _ >>> 0 ? (I + 1) | 0 : I) + T) | 0, - P = ug( - P ^ (a = m = ((o = _) + i[(g + 192) >> 2]) | 0), - (_ = c) ^ (c = o >>> 0 > a >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (W + (T = p)) | 0, - I = - (m = (d + P) | 0) >>> 0 < d >>> 0 ? (I + 1) | 0 : I, - d = m, - o = H, - H = I, - o = ug(L ^ m, o ^ I, 63), - W = p, - m = t, - L = b, - I = (t + D) | 0, - I = - ((I = - (_ = (b + oA) | 0) >>> 0 < b >>> 0 - ? (I + 1) | 0 - : I) + - (eA = i[(g + 204) >> 2])) | - 0, - w = ug( - (_ = b = ((t = _) + i[(g + 200) >> 2]) | 0) ^ l, - (b = t >>> 0 > b >>> 0 ? (I + 1) | 0 : I) ^ w, - 32 - ), - I = (k + (t = p)) | 0, - I = - s >>> 0 > (D = (s + w) | 0) >>> 0 ? (I + 1) | 0 : I, - s = D, - D = m, - m = I, - l = D = ug(L ^ s, D ^ I, 24), - eA = I = p, - k = I, - L = D, - I = (b + cA) | 0, - I = - ((I = - (D = (_ + V) | 0) >>> 0 < V >>> 0 - ? (I + 1) | 0 - : I) + - k) | - 0, - l = ug( - (_ = V = (l + D) | 0) ^ w, - (l = t) ^ (t = D >>> 0 > _ >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (m + (k = p)) | 0, - D = I = - s >>> 0 > (V = (s + l) | 0) >>> 0 ? (I + 1) | 0 : I, - V = ug(L ^ (s = V), I ^ eA, 63), - b = p, - I = (G + (m = x)) | 0, - G = w = (F + N) | 0, - I = - ((I = w >>> 0 < F >>> 0 ? (I + 1) | 0 : I) + - (eA = i[(g + 236) >> 2])) | - 0, - Y = ug( - (w = x = (w + i[(g + 232) >> 2]) | 0) ^ q, - (x = G >>> 0 > w >>> 0 ? (I + 1) | 0 : I) ^ Y, - 32 - ), - I = (v + (G = p)) | 0, - v = m, - m = I = - (F = (J + Y) | 0) >>> 0 < J >>> 0 ? (I + 1) | 0 : I, - v = ug(F ^ N, v ^ I, 24), - q = I = p, - J = I, - I = (x + yA) | 0, - I = - ((I = - (w = (w + Z) | 0) >>> 0 < Z >>> 0 - ? (I + 1) | 0 - : I) + - J) | - 0, - N = ug( - (J = Z = (w + v) | 0) ^ Y, - (N = G) ^ (G = w >>> 0 > J >>> 0 ? (I + 1) | 0 : I), - 16 - ), - I = (m + (yA = p)) | 0, - w = I = - F >>> 0 > (Z = (F + N) | 0) >>> 0 ? (I + 1) | 0 : I, - x = ug(v ^ (F = Z), I ^ q, 63), - m = p, - I = (S + B) | 0, - I = - ((I = - (v = (e + K) | 0) >>> 0 < K >>> 0 - ? (I + 1) | 0 - : I) + - (Y = W)) | - 0, - I = - v >>> 0 > (K = (v + o) | 0) >>> 0 ? (I + 1) | 0 : I, - v = K, - K = I, - I = (E + I) | 0, - j = I = - (Y = (j + v) | 0) >>> 0 < j >>> 0 ? (I + 1) | 0 : I, - e = Y, - Y = ug(v ^ N, K ^ yA, 32), - I = (D + (v = p)) | 0, - S = ug( - (D = K = (s + Y) | 0) ^ o, - (K = s >>> 0 > D >>> 0 ? (I + 1) | 0 : I) ^ W, - 24 - ), - I = ((o = p) + j) | 0, - I = - (s = S) >>> 0 > (W = (e + s) | 0) >>> 0 - ? (I + 1) | 0 - : I, - s = W, - i[g >> 2] = s, - i[(g + 4) >> 2] = I, - Z = I, - I = ug(s ^ Y, I ^ v, 16), - Y = W = p, - i[(g + 120) >> 2] = I, - i[(g + 124) >> 2] = Y, - j = I, - D = (I + D) | 0, - I = (Y + K) | 0, - i[(g + 80) >> 2] = D, - I = D >>> 0 < j >>> 0 ? (I + 1) | 0 : I, - i[(g + 84) >> 2] = I, - hA = g, - DA = ug(S ^ D, I ^ o, 63), - i[(hA + 40) >> 2] = DA, - i[(g + 44) >> 2] = p, - K = b, - o = V, - I = (c + b) | 0, - I = - ((I = - (j = (a + V) | 0) >>> 0 < V >>> 0 - ? (I + 1) | 0 - : I) + - (D = i[(g + 132) >> 2])) | - 0, - j = I = - (V = (j + i[(g + 128) >> 2]) | 0) >>> 0 < j >>> 0 - ? (I + 1) | 0 - : I, - c = ug(V ^ u, I ^ r, 32), - I = (w + (D = p)) | 0, - a = K, - K = I = - F >>> 0 > (b = (F + c) | 0) >>> 0 ? (I + 1) | 0 : I, - w = ug(o ^ (F = b), a ^ I, 24), - I = (j + (Y = p)) | 0, - I = - (b = (w + V) | 0) >>> 0 < V >>> 0 ? (I + 1) | 0 : I, - V = ((j = i[(g + 144) >> 2]) + b) | 0, - I = (i[(g + 148) >> 2] + I) | 0, - I = V >>> 0 < j >>> 0 ? (I + 1) | 0 : I, - i[(g + 8) >> 2] = V, - i[(g + 12) >> 2] = I, - I = ug(c ^ V, I ^ D, 16), - b = W = p, - i[(g + 96) >> 2] = I, - i[(g + 100) >> 2] = b, - V = I, - j = (I + F) | 0, - I = (b + K) | 0, - K = j, - i[(g + 88) >> 2] = K, - I = V >>> 0 > K >>> 0 ? (I + 1) | 0 : I, - i[(g + 92) >> 2] = I, - hA = g, - DA = ug(w ^ K, I ^ Y, 63), - i[(hA + 48) >> 2] = DA, - i[(g + 52) >> 2] = p, - a = $, - I = (t + m) | 0, - I = - ((I = - (V = (_ + x) | 0) >>> 0 < x >>> 0 - ? (I + 1) | 0 - : I) + - (j = i[(g + 220) >> 2])) | - 0, - I = - (W = (V + i[(g + 216) >> 2]) | 0) >>> 0 < V >>> 0 - ? (I + 1) | 0 - : I, - $ = W, - j = W, - V = (a + W) | 0, - W = I, - I = (I + rA) | 0, - I = V >>> 0 < j >>> 0 ? (I + 1) | 0 : I, - j = V, - V = I, - a = j, - o = x, - j = ug(P ^ $, W ^ T, 32), - I = (M + (x = p)) | 0, - m = ug( - o ^ (b = W = (U + j) | 0), - (W = U >>> 0 > b >>> 0 ? (I + 1) | 0 : I) ^ m, - 24 - ), - I = ((c = p) + V) | 0, - V = $ = (a + (t = m)) | 0, - i[(g + 16) >> 2] = V, - I = t >>> 0 > V >>> 0 ? (I + 1) | 0 : I, - i[(g + 20) >> 2] = I, - I = ug(V ^ j, I ^ x, 16), - K = p, - i[(g + 104) >> 2] = I, - i[(g + 108) >> 2] = K, - V = I, - $ = (I + b) | 0, - I = (W + K) | 0, - W = $, - i[(g + 64) >> 2] = W, - I = V >>> 0 > W >>> 0 ? (I + 1) | 0 : I, - i[(g + 68) >> 2] = I, - hA = g, - DA = ug(t ^ W, I ^ c, 63), - i[(hA + 56) >> 2] = DA, - i[(g + 60) >> 2] = p, - I = (f + Q) | 0, - I = - ((I = - (V = (y + QA) | 0) >>> 0 < y >>> 0 - ? (I + 1) | 0 - : I) + - G) | - 0, - QA = I = - J >>> 0 > (V = (J + V) | 0) >>> 0 ? (I + 1) | 0 : I, - x = ug(V ^ l, I ^ k, 32), - I = (H + (b = p)) | 0, - K = I = - d >>> 0 > ($ = (d + x) | 0) >>> 0 ? (I + 1) | 0 : I, - m = ug($ ^ y, f ^ I, 24), - I = (QA + (t = p)) | 0, - I = - V >>> 0 > (j = (m + V) | 0) >>> 0 ? (I + 1) | 0 : I, - V = ((QA = i[(g + 152) >> 2]) + j) | 0, - I = (i[(g + 156) >> 2] + I) | 0, - I = V >>> 0 < QA >>> 0 ? (I + 1) | 0 : I, - i[(g + 24) >> 2] = V, - i[(g + 28) >> 2] = I, - I = ug(x ^ V, I ^ b, 16), - i[(g + 112) >> 2] = I, - QA = p, - i[(g + 116) >> 2] = QA, - V = (I + $) | 0, - I = (K + QA) | 0, - K = V, - i[(g + 72) >> 2] = K, - I = K >>> 0 < $ >>> 0 ? (I + 1) | 0 : I, - i[(g + 76) >> 2] = I, - hA = g, - DA = ug(m ^ K, I ^ t, 63), - i[(hA + 32) >> 2] = DA, - i[(g + 36) >> 2] = p, - I = - i[(g + 68) >> 2] ^ - (n[(A + 4) | 0] | - (n[(A + 5) | 0] << 8) | - (n[(A + 6) | 0] << 16) | - (n[(A + 7) | 0] << 24)) ^ - Z, - K = - i[(g + 64) >> 2] ^ - (n[0 | A] | - (n[(A + 1) | 0] << 8) | - (n[(A + 2) | 0] << 16) | - (n[(A + 3) | 0] << 24)) ^ - s, - C[0 | A] = K, - C[(A + 1) | 0] = K >>> 8, - C[(A + 2) | 0] = K >>> 16, - C[(A + 3) | 0] = K >>> 24, - C[(A + 4) | 0] = I, - C[(A + 5) | 0] = I >>> 8, - C[(A + 6) | 0] = I >>> 16, - C[(A + 7) | 0] = I >>> 24, - Z = 1; - (I = ((K = Z << 3) + A) | 0), - (W = K = (g + K) | 0), - (V = - i[K >> 2] ^ - (n[0 | I] | - (n[(I + 1) | 0] << 8) | - (n[(I + 2) | 0] << 16) | - (n[(I + 3) | 0] << 24))), - (QA = i[(K = (K - -64) | 0) >> 2]), - (K = - i[(K + 4) >> 2] ^ - i[(W + 4) >> 2] ^ - (n[(I + 4) | 0] | - (n[(I + 5) | 0] << 8) | - (n[(I + 6) | 0] << 16) | - (n[(I + 7) | 0] << 24))), - (W = V ^ QA), - (C[0 | I] = W), - (C[(I + 1) | 0] = W >>> 8), - (C[(I + 2) | 0] = W >>> 16), - (C[(I + 3) | 0] = W >>> 24), - (C[(I + 4) | 0] = K), - (C[(I + 5) | 0] = K >>> 8), - (C[(I + 6) | 0] = K >>> 16), - (C[(I + 7) | 0] = K >>> 24), - 8 != (0 | (Z = (Z + 1) | 0)); - - ); - h = (g + 256) | 0 - } - function F(A, I, g, B) { - var Q = 0, - C = 0, - E = 0, - n = 0, - a = 0, - r = 0, - o = 0, - e = 0, - t = 0, - f = 0, - c = 0, - y = 0, - s = 0, - w = 0, - h = 0, - D = 0, - u = 0, - l = 0, - F = 0, - G = 0, - k = 0, - _ = 0, - H = 0, - Y = 0, - b = 0, - m = 0, - v = 0, - U = 0, - S = 0, - N = 0, - M = 0, - d = 0, - P = 0, - R = 0, - J = 0, - x = 0, - L = 0 - for ( - (function (A, I) { - for ( - var g = 0, B = 0, Q = 0, C = 0, E = 0; - (C = Q = ((B = g << 3) + A) | 0), - (E = dA((I + B) | 0)), - (i[C >> 2] = E), - (i[(Q + 4) >> 2] = p), - 16 != (0 | (g = (g + 1) | 0)); - - ); - })(g, I), - I = X(B, A, 64), - o = i[g >> 2], - f = i[(g + 4) >> 2], - B = 0; - ; - - ) { - if ( - ((Q = ug( - (l = i[((E = I) + 32) >> 2]), - (t = i[(E + 36) >> 2]), - 14 - )), - (s = p), - (Q = ug(l, t, 18) ^ Q), - (D = p ^ s), - (C = o), - (o = ug(l, t, 41) ^ Q), - (Q = ((p ^ D) + f) | 0), - (Q = - o >>> 0 > (s = (C + o) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (o = s), - (y = i[(E + 48) >> 2]), - (o = - ((D = i[(f = (34784 + (L = B << 3)) | 0) >> 2]) + - o) | - 0), - (Q = (i[(f + 4) >> 2] + Q) | 0), - (Q = o >>> 0 < D >>> 0 ? (Q + 1) | 0 : Q), - (o = - ((f = y ^ (((k = i[(E + 40) >> 2]) ^ y) & l)) + o) | - 0), - (Q = - (((((C = i[(E + 52) >> 2]) ^ - (u = i[(E + 44) >> 2])) & - t) ^ - C) + - Q) | - 0), - (Q = o >>> 0 < f >>> 0 ? (Q + 1) | 0 : Q), - (s = ((a = o) + (o = i[(E + 56) >> 2])) | 0), - (Q = (i[(E + 60) >> 2] + Q) | 0), - (Q = o >>> 0 > s >>> 0 ? (Q + 1) | 0 : Q), - (f = (s + (D = i[(E + 24) >> 2])) | 0), - (o = Q), - (Q = (Q + i[(E + 28) >> 2]) | 0), - (Q = f >>> 0 < D >>> 0 ? (Q + 1) | 0 : Q), - (D = f), - (c = Q), - (i[(E + 24) >> 2] = f), - (i[(E + 28) >> 2] = Q), - (Q = ug((F = i[E >> 2]), (f = i[(E + 4) >> 2]), 28)), - (h = p), - (Q = ug(F, f, 34) ^ Q), - (n = p ^ h), - (h = (s + (ug(F, f, 39) ^ Q)) | 0), - (Q = (o + (p ^ n)) | 0), - (Q = s >>> 0 > h >>> 0 ? (Q + 1) | 0 : Q), - (s = - ((a = - (F & - ((n = i[(E + 16) >> 2]) | - (r = i[(E + 8) >> 2]))) | - (n & r)) + - h) | - 0), - (Q = - (((f & - ((h = i[(E + 20) >> 2]) | - (o = i[(E + 12) >> 2]))) | - (o & h)) + - Q) | - 0), - (s = Q = a >>> 0 > (e = s) >>> 0 ? (Q + 1) | 0 : Q), - (i[(E + 56) >> 2] = e), - (i[(E + 60) >> 2] = Q), - (Q = ug(D, c, 14)), - (a = p), - (d = ug(D, c, 18) ^ Q), - (a ^= p), - (w = n), - (Q = ((((t ^ u) & c) ^ u) + C) | 0), - (Q = - (n = ((l ^ k) & D) ^ k) >>> 0 > - (y = (n + y) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (C = ug(D, c, 41) ^ d), - (Q = ((p ^ a) + Q) | 0), - (Q = - C >>> 0 > (y = (C + y) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (y = - ((a = - i[(n = d = ((C = (1 | B) << 3) + g) | 0) >> 2]) + - y) | - 0), - (Q = (i[(n + 4) >> 2] + Q) | 0), - (Q = a >>> 0 > y >>> 0 ? (Q + 1) | 0 : Q), - (y = ((n = i[(C = (C + 34784) | 0) >> 2]) + y) | 0), - (Q = (i[(C + 4) >> 2] + Q) | 0), - (n = Q = n >>> 0 > y >>> 0 ? (Q + 1) | 0 : Q), - (Q = (Q + h) | 0), - (h = y = (w + (C = a = y)) | 0), - (C = Q = C >>> 0 > y >>> 0 ? (Q + 1) | 0 : Q), - (i[(E + 16) >> 2] = y), - (i[(E + 20) >> 2] = Q), - (y = E), - (Q = ug(e, s, 28)), - (E = p), - (G = ug(e, s, 34) ^ Q), - (H = p ^ E), - (E = ((Q = a) + (a = ((r | F) & e) | (r & F))) | 0), - (Q = ((((o | f) & s) | (o & f)) + n) | 0), - (Q = E >>> 0 < a >>> 0 ? (Q + 1) | 0 : Q), - (n = ug(e, s, 39) ^ G), - (Q = ((p ^ H) + Q) | 0), - (G = E = (n + E) | 0), - (E = Q = E >>> 0 < n >>> 0 ? (Q + 1) | 0 : Q), - (i[(y + 48) >> 2] = G), - (i[(y + 52) >> 2] = Q), - (a = y), - (Q = ug(h, C, 14)), - (y = p), - (n = ug(h, C, 18) ^ Q), - (H = p ^ y), - (w = r), - (Q = ((((t ^ c) & C) ^ t) + u) | 0), - (Q = - (r = ((D ^ l) & h) ^ l) >>> 0 > - (y = (r + k) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (n = ug(h, C, 41) ^ n), - (Q = ((p ^ H) + Q) | 0), - (Q = - n >>> 0 > (y = (n + y) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (y = - ((k = - i[(r = U = ((n = (2 | B) << 3) + g) | 0) >> 2]) + - y) | - 0), - (Q = (i[(r + 4) >> 2] + Q) | 0), - (Q = y >>> 0 < k >>> 0 ? (Q + 1) | 0 : Q), - (y = ((r = i[(n = (n + 34784) | 0) >> 2]) + y) | 0), - (Q = (i[(n + 4) >> 2] + Q) | 0), - (Q = r >>> 0 > y >>> 0 ? (Q + 1) | 0 : Q), - (y = (w + (n = r = y)) | 0), - (w = o), - (o = Q), - (Q = (w + Q) | 0), - (n = Q = n >>> 0 > y >>> 0 ? (Q + 1) | 0 : Q), - (i[(a + 8) >> 2] = y), - (i[(a + 12) >> 2] = Q), - (Q = ug(G, E, 28)), - (k = p), - (u = ug(G, E, 34) ^ Q), - (k ^= p), - (Q = ((((f | s) & E) | (f & s)) + o) | 0), - (Q = - (r = ((H = ((e | F) & G) | (e & F)) + r) | 0) >>> - 0 < - H >>> 0 - ? (Q + 1) | 0 - : Q), - (o = r), - (r = ug(G, E, 39) ^ u), - (Q = ((p ^ k) + Q) | 0), - (k = o = (o + r) | 0), - (o = Q = o >>> 0 < r >>> 0 ? (Q + 1) | 0 : Q), - (i[(a + 40) >> 2] = k), - (i[(a + 44) >> 2] = Q), - (r = a), - (Q = ug(y, n, 14)), - (a = p), - (u = ug(y, n, 18) ^ Q), - (H = p ^ a), - (w = F), - (Q = ((c ^ ((C ^ c) & n)) + t) | 0), - (Q = - (a = ((F = D ^ ((h ^ D) & y)) + l) | 0) >>> 0 < - F >>> 0 - ? (Q + 1) | 0 - : Q), - (t = a), - (a = ug(y, n, 41) ^ u), - (Q = ((p ^ H) + Q) | 0), - (Q = - a >>> 0 > (t = (t + a) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (t = - ((u = - i[(l = F = ((a = (3 | B) << 3) + g) | 0) >> 2]) + - t) | - 0), - (Q = (i[(l + 4) >> 2] + Q) | 0), - (Q = t >>> 0 < u >>> 0 ? (Q + 1) | 0 : Q), - (t = ((l = i[(a = (a + 34784) | 0) >> 2]) + t) | 0), - (Q = (i[(a + 4) >> 2] + Q) | 0), - (Q = t >>> 0 < l >>> 0 ? (Q + 1) | 0 : Q), - (l = t), - (t = (w + (a = t)) | 0), - (w = f), - (f = Q), - (Q = (w + Q) | 0), - (a = Q = a >>> 0 > t >>> 0 ? (Q + 1) | 0 : Q), - (i[r >> 2] = t), - (i[(r + 4) >> 2] = Q), - (Q = ug(k, o, 28)), - (u = p), - (H = ug(k, o, 34) ^ Q), - (u ^= p), - (Q = ((((E | s) & o) | (E & s)) + f) | 0), - (Q = - (l = ((v = ((e | G) & k) | (e & G)) + l) | 0) >>> - 0 < - v >>> 0 - ? (Q + 1) | 0 - : Q), - (f = l), - (l = ug(k, o, 39) ^ H), - (Q = ((p ^ u) + Q) | 0), - (Q = - (f = (f + l) | 0) >>> 0 < l >>> 0 - ? (Q + 1) | 0 - : Q), - (l = f), - (f = Q), - (i[(r + 32) >> 2] = l), - (i[(r + 36) >> 2] = Q), - (Q = ug(t, a, 14)), - (u = p), - (H = ug(t, a, 18) ^ Q), - (u ^= p), - (w = e), - (Q = (c + (C ^ ((C ^ n) & a))) | 0), - (Q = - (e = (D + (h ^ ((y ^ h) & t))) | 0) >>> 0 < D >>> 0 - ? (Q + 1) | 0 - : Q), - (c = ug(t, a, 41) ^ H), - (Q = ((p ^ u) + Q) | 0), - (Q = - c >>> 0 > (D = (c + e) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (D = - ((u = - i[(e = S = ((c = (4 | B) << 3) + g) | 0) >> 2]) + - D) | - 0), - (Q = (i[(e + 4) >> 2] + Q) | 0), - (Q = D >>> 0 < u >>> 0 ? (Q + 1) | 0 : Q), - (D = ((e = i[(c = (c + 34784) | 0) >> 2]) + D) | 0), - (Q = (i[(c + 4) >> 2] + Q) | 0), - (c = s), - (s = Q = e >>> 0 > D >>> 0 ? (Q + 1) | 0 : Q), - (Q = (c + Q) | 0), - (c = Q = - (e = D) >>> 0 > (D = (w + e) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (i[(r + 56) >> 2] = D), - (i[(r + 60) >> 2] = Q), - (Q = ug(l, f, 28)), - (u = p), - (H = ug(l, f, 34) ^ Q), - (u ^= p), - (Q = ((((E | o) & f) | (E & o)) + s) | 0), - (Q = - (e = ((v = ((k | G) & l) | (k & G)) + e) | 0) >>> - 0 < - v >>> 0 - ? (Q + 1) | 0 - : Q), - (s = e), - (e = ug(l, f, 39) ^ H), - (Q = ((p ^ u) + Q) | 0), - (u = s = (s + e) | 0), - (s = Q = e >>> 0 > s >>> 0 ? (Q + 1) | 0 : Q), - (i[(r + 24) >> 2] = u), - (i[(r + 28) >> 2] = Q), - (Q = ug(D, c, 14)), - (e = p), - (H = ug(D, c, 18) ^ Q), - (v = p ^ e), - (w = G), - (Q = (C + (n ^ ((n ^ a) & c))) | 0), - (Q = - (e = (h + (y ^ ((t ^ y) & D))) | 0) >>> 0 < h >>> 0 - ? (Q + 1) | 0 - : Q), - (C = ug(D, c, 41) ^ H), - (Q = ((p ^ v) + Q) | 0), - (Q = - C >>> 0 > (h = (C + e) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (h = - ((H = - i[(e = G = ((C = (5 | B) << 3) + g) | 0) >> 2]) + - h) | - 0), - (Q = (i[(e + 4) >> 2] + Q) | 0), - (Q = h >>> 0 < H >>> 0 ? (Q + 1) | 0 : Q), - (h = ((e = i[(C = (C + 34784) | 0) >> 2]) + h) | 0), - (Q = (i[(C + 4) >> 2] + Q) | 0), - (Q = e >>> 0 > h >>> 0 ? (Q + 1) | 0 : Q), - (h = (w + (C = e = h)) | 0), - (w = E), - (E = Q), - (Q = (w + Q) | 0), - (C = Q = C >>> 0 > h >>> 0 ? (Q + 1) | 0 : Q), - (i[(r + 48) >> 2] = h), - (i[(r + 52) >> 2] = Q), - (Q = ug(u, s, 28)), - (H = p), - (v = ug(u, s, 34) ^ Q), - (H ^= p), - (Q = ((((o | f) & s) | (o & f)) + E) | 0), - (Q = - (e = ((_ = ((l | k) & u) | (l & k)) + e) | 0) >>> - 0 < - _ >>> 0 - ? (Q + 1) | 0 - : Q), - (E = e), - (e = ug(u, s, 39) ^ v), - (Q = ((p ^ H) + Q) | 0), - (v = E = (E + e) | 0), - (E = Q = E >>> 0 < e >>> 0 ? (Q + 1) | 0 : Q), - (i[(r + 16) >> 2] = v), - (i[(r + 20) >> 2] = Q), - (Q = ug(h, C, 14)), - (e = p), - (H = ug(h, C, 18) ^ Q), - (_ = p ^ e), - (w = k), - (Q = (n + (a ^ ((a ^ c) & C))) | 0), - (Q = - (e = (y + (t ^ ((t ^ D) & h))) | 0) >>> 0 < y >>> 0 - ? (Q + 1) | 0 - : Q), - (n = ug(h, C, 41) ^ H), - (Q = ((p ^ _) + Q) | 0), - (Q = - n >>> 0 > (y = (n + e) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (y = - ((k = - i[(e = R = ((n = (6 | B) << 3) + g) | 0) >> 2]) + - y) | - 0), - (Q = (i[(e + 4) >> 2] + Q) | 0), - (Q = y >>> 0 < k >>> 0 ? (Q + 1) | 0 : Q), - (y = ((e = i[(n = (n + 34784) | 0) >> 2]) + y) | 0), - (Q = (i[(n + 4) >> 2] + Q) | 0), - (Q = e >>> 0 > y >>> 0 ? (Q + 1) | 0 : Q), - (y = (w + (n = e = y)) | 0), - (w = o), - (o = Q), - (Q = (w + Q) | 0), - (n = Q = n >>> 0 > y >>> 0 ? (Q + 1) | 0 : Q), - (i[(r + 40) >> 2] = y), - (i[(r + 44) >> 2] = Q), - (Q = ug(v, E, 28)), - (k = p), - (H = ug(v, E, 34) ^ Q), - (k ^= p), - (Q = ((((f | s) & E) | (f & s)) + o) | 0), - (Q = - (e = ((_ = ((u | l) & v) | (u & l)) + e) | 0) >>> - 0 < - _ >>> 0 - ? (Q + 1) | 0 - : Q), - (o = e), - (e = ug(v, E, 39) ^ H), - (Q = ((p ^ k) + Q) | 0), - (_ = o = (o + e) | 0), - (o = Q = o >>> 0 < e >>> 0 ? (Q + 1) | 0 : Q), - (i[(r + 8) >> 2] = _), - (i[(r + 12) >> 2] = Q), - (Q = ug(y, n, 14)), - (e = p), - (k = ug(y, n, 18) ^ Q), - (H = p ^ e), - (w = l), - (Q = (a + (c ^ ((C ^ c) & n))) | 0), - (Q = - (e = (t + (D ^ ((h ^ D) & y))) | 0) >>> 0 < t >>> 0 - ? (Q + 1) | 0 - : Q), - (a = ug(y, n, 41) ^ k), - (Q = ((p ^ H) + Q) | 0), - (Q = - a >>> 0 > (t = (a + e) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (t = - ((l = - i[(e = k = ((a = (7 | B) << 3) + g) | 0) >> 2]) + - t) | - 0), - (Q = (i[(e + 4) >> 2] + Q) | 0), - (Q = t >>> 0 < l >>> 0 ? (Q + 1) | 0 : Q), - (t = ((e = i[(a = (a + 34784) | 0) >> 2]) + t) | 0), - (Q = (i[(a + 4) >> 2] + Q) | 0), - (Q = t >>> 0 < e >>> 0 ? (Q + 1) | 0 : Q), - (t = (w + (a = e = t)) | 0), - (w = f), - (f = Q), - (Q = (w + Q) | 0), - (a = Q = a >>> 0 > t >>> 0 ? (Q + 1) | 0 : Q), - (i[(r + 32) >> 2] = t), - (i[(r + 36) >> 2] = Q), - (Q = ug(_, o, 28)), - (l = p), - (H = ug(_, o, 34) ^ Q), - (l ^= p), - (Q = ((((E | s) & o) | (E & s)) + f) | 0), - (Q = - (e = ((w = ((u | v) & _) | (u & v)) + e) | 0) >>> - 0 < - w >>> 0 - ? (Q + 1) | 0 - : Q), - (f = e), - (e = ug(_, o, 39) ^ H), - (Q = ((p ^ l) + Q) | 0), - (w = f = (f + e) | 0), - (f = Q = e >>> 0 > f >>> 0 ? (Q + 1) | 0 : Q), - (i[r >> 2] = w), - (i[(r + 4) >> 2] = Q), - (e = r), - (Q = ug(t, a, 14)), - (r = p), - (l = ug(t, a, 18) ^ Q), - (H = p ^ r), - (Q = (c + (C ^ ((C ^ n) & a))) | 0), - (Q = - (r = (D + (h ^ ((y ^ h) & t))) | 0) >>> 0 < D >>> 0 - ? (Q + 1) | 0 - : Q), - (c = ug(t, a, 41) ^ l), - (Q = ((p ^ H) + Q) | 0), - (Q = - c >>> 0 > (D = (c + r) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (D = - ((l = - i[(r = H = ((c = (8 | B) << 3) + g) | 0) >> 2]) + - D) | - 0), - (Q = (i[(r + 4) >> 2] + Q) | 0), - (Q = D >>> 0 < l >>> 0 ? (Q + 1) | 0 : Q), - (D = ((r = i[(c = (c + 34784) | 0) >> 2]) + D) | 0), - (Q = (i[(c + 4) >> 2] + Q) | 0), - (Q = r >>> 0 > D >>> 0 ? (Q + 1) | 0 : Q), - (l = D), - (r = s), - (s = Q), - (Q = (r + Q) | 0), - (r = Q = - (c = D) >>> 0 > (D = (c + u) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (i[(e + 24) >> 2] = D), - (i[(e + 28) >> 2] = Q), - (c = e), - (Q = ug(w, f, 28)), - (e = p), - (u = ug(w, f, 34) ^ Q), - (Y = p ^ e), - (e = ((Q = l) + (l = ((_ | v) & w) | (_ & v))) | 0), - (Q = ((((E | o) & f) | (E & o)) + s) | 0), - (Q = e >>> 0 < l >>> 0 ? (Q + 1) | 0 : Q), - (s = e), - (e = ug(w, f, 39) ^ u), - (Q = ((p ^ Y) + Q) | 0), - (Y = s = (s + e) | 0), - (s = Q = e >>> 0 > s >>> 0 ? (Q + 1) | 0 : Q), - (i[(c + 56) >> 2] = Y), - (i[(c + 60) >> 2] = Q), - (Q = ug(D, r, 14)), - (e = p), - (l = ug(D, r, 18) ^ Q), - (u = p ^ e), - (Q = (C + (n ^ ((n ^ a) & r))) | 0), - (Q = - (e = (h + (y ^ ((t ^ y) & D))) | 0) >>> 0 < h >>> 0 - ? (Q + 1) | 0 - : Q), - (C = ug(D, r, 41) ^ l), - (Q = ((p ^ u) + Q) | 0), - (Q = - C >>> 0 > (h = (C + e) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (h = - ((u = - i[(e = l = ((C = (9 | B) << 3) + g) | 0) >> 2]) + - h) | - 0), - (Q = (i[(e + 4) >> 2] + Q) | 0), - (Q = h >>> 0 < u >>> 0 ? (Q + 1) | 0 : Q), - (h = ((e = i[(C = (C + 34784) | 0) >> 2]) + h) | 0), - (Q = (i[(C + 4) >> 2] + Q) | 0), - (Q = e >>> 0 > h >>> 0 ? (Q + 1) | 0 : Q), - (e = E), - (E = Q), - (Q = (e + Q) | 0), - (e = Q = - (C = h) >>> 0 > (h = (C + v) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (i[(c + 16) >> 2] = h), - (i[(c + 20) >> 2] = Q), - (Q = ug(Y, s, 28)), - (u = p), - (v = ug(Y, s, 34) ^ Q), - (u ^= p), - (Q = ((((o | f) & s) | (o & f)) + E) | 0), - (Q = - (C = ((b = ((w | _) & Y) | (w & _)) + C) | 0) >>> - 0 < - b >>> 0 - ? (Q + 1) | 0 - : Q), - (E = C), - (C = ug(Y, s, 39) ^ v), - (Q = ((p ^ u) + Q) | 0), - (b = E = (E + C) | 0), - (E = Q = E >>> 0 < C >>> 0 ? (Q + 1) | 0 : Q), - (i[(c + 48) >> 2] = b), - (i[(c + 52) >> 2] = Q), - (Q = ug(h, e, 14)), - (C = p), - (u = ug(h, e, 18) ^ Q), - (v = p ^ C), - (Q = (n + (a ^ ((r ^ a) & e))) | 0), - (Q = - (C = (y + (t ^ ((t ^ D) & h))) | 0) >>> 0 < y >>> 0 - ? (Q + 1) | 0 - : Q), - (n = C), - (C = ug(h, e, 41) ^ u), - (Q = ((p ^ v) + Q) | 0), - (Q = - C >>> 0 > (y = (n + C) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (y = - ((u = - i[(n = v = ((C = (10 | B) << 3) + g) | 0) >> 2]) + - y) | - 0), - (Q = (i[(n + 4) >> 2] + Q) | 0), - (Q = y >>> 0 < u >>> 0 ? (Q + 1) | 0 : Q), - (y = ((n = i[(C = (C + 34784) | 0) >> 2]) + y) | 0), - (Q = (i[(C + 4) >> 2] + Q) | 0), - (Q = n >>> 0 > y >>> 0 ? (Q + 1) | 0 : Q), - (u = y), - (n = o), - (o = Q), - (Q = (n + Q) | 0), - (n = Q = - (C = y) >>> 0 > (y = (C + _) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (i[(c + 8) >> 2] = y), - (i[(c + 12) >> 2] = Q), - (C = c), - (Q = ug(b, E, 28)), - (c = p), - (_ = ug(b, E, 34) ^ Q), - (N = p ^ c), - (c = ((Q = u) + (u = ((w | Y) & b) | (w & Y))) | 0), - (Q = ((((f | s) & E) | (f & s)) + o) | 0), - (Q = c >>> 0 < u >>> 0 ? (Q + 1) | 0 : Q), - (o = c), - (c = ug(b, E, 39) ^ _), - (Q = ((p ^ N) + Q) | 0), - (c = Q = - (o = (o + c) | 0) >>> 0 < c >>> 0 - ? (Q + 1) | 0 - : Q), - (i[(C + 40) >> 2] = o), - (i[(C + 44) >> 2] = Q), - (Q = ug(y, n, 14)), - (u = p), - (_ = ug(y, n, 18) ^ Q), - (N = p ^ u), - (m = w), - (Q = (a + (r ^ ((r ^ e) & n))) | 0), - (Q = - (u = (t + (D ^ ((h ^ D) & y))) | 0) >>> 0 < t >>> 0 - ? (Q + 1) | 0 - : Q), - (a = ug(y, n, 41) ^ _), - (Q = ((p ^ N) + Q) | 0), - (Q = - a >>> 0 > (t = (a + u) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (t = - ((w = i[(u = ((a = (11 | B) << 3) + g) | 0) >> 2]) + - t) | - 0), - (Q = (i[(u + 4) >> 2] + Q) | 0), - (Q = t >>> 0 < w >>> 0 ? (Q + 1) | 0 : Q), - (t = ((_ = i[(a = (a + 34784) | 0) >> 2]) + t) | 0), - (Q = (i[(a + 4) >> 2] + Q) | 0), - (Q = t >>> 0 < _ >>> 0 ? (Q + 1) | 0 : Q), - (w = t), - (_ = f), - (f = Q), - (Q = (_ + Q) | 0), - (a = Q = - (a = t) >>> 0 > (t = (m + a) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (i[C >> 2] = t), - (i[(C + 4) >> 2] = Q), - (_ = C), - (Q = ug(o, c, 28)), - (C = p), - (N = ug(o, c, 34) ^ Q), - (M = p ^ C), - (C = ((Q = w) + (w = ((Y | b) & o) | (Y & b))) | 0), - (Q = ((((E | s) & c) | (E & s)) + f) | 0), - (Q = C >>> 0 < w >>> 0 ? (Q + 1) | 0 : Q), - (f = C), - (C = ug(o, c, 39) ^ N), - (Q = ((p ^ M) + Q) | 0), - (C = Q = - C >>> 0 > (f = (f + C) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (i[(_ + 32) >> 2] = f), - (i[(_ + 36) >> 2] = Q), - (w = _), - (Q = ug(t, a, 14)), - (_ = p), - (N = ug(t, a, 18) ^ Q), - (M = p ^ _), - (m = Y), - (Q = (r + (e ^ ((n ^ e) & a))) | 0), - (Q = - (_ = (D + (h ^ ((y ^ h) & t))) | 0) >>> 0 < D >>> 0 - ? (Q + 1) | 0 - : Q), - (r = ug(t, a, 41) ^ N), - (Q = ((p ^ M) + Q) | 0), - (Q = - r >>> 0 > (D = (r + _) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (D = - ((N = - i[(Y = _ = ((r = (12 | B) << 3) + g) | 0) >> 2]) + - D) | - 0), - (Q = (i[(Y + 4) >> 2] + Q) | 0), - (Q = D >>> 0 < N >>> 0 ? (Q + 1) | 0 : Q), - (D = ((Y = i[(r = (r + 34784) | 0) >> 2]) + D) | 0), - (Q = (i[(r + 4) >> 2] + Q) | 0), - (Q = D >>> 0 < Y >>> 0 ? (Q + 1) | 0 : Q), - (Y = D), - (D = (m + (r = D)) | 0), - (m = s), - (s = Q), - (Q = (m + Q) | 0), - (N = D), - (D = Q = r >>> 0 > D >>> 0 ? (Q + 1) | 0 : Q), - (i[(w + 56) >> 2] = N), - (i[(w + 60) >> 2] = Q), - (r = w), - (Q = ug(f, C, 28)), - (w = p), - (M = ug(f, C, 34) ^ Q), - (m = p ^ w), - (w = ((Q = Y) + (Y = ((o | b) & f) | (o & b))) | 0), - (Q = ((((E | c) & C) | (E & c)) + s) | 0), - (Q = w >>> 0 < Y >>> 0 ? (Q + 1) | 0 : Q), - (s = w), - (w = ug(f, C, 39) ^ M), - (Q = ((p ^ m) + Q) | 0), - (Y = s = (s + w) | 0), - (s = Q = s >>> 0 < w >>> 0 ? (Q + 1) | 0 : Q), - (i[(r + 24) >> 2] = Y), - (i[(r + 28) >> 2] = Q), - (w = r), - (Q = ug(N, D, 14)), - (r = p), - (M = ug(N, D, 18) ^ Q), - (m = p ^ r), - (P = b), - (Q = (e + (n ^ ((n ^ a) & D))) | 0), - (Q = - (r = (h + (y ^ ((t ^ y) & N))) | 0) >>> 0 < h >>> 0 - ? (Q + 1) | 0 - : Q), - (e = r), - (r = ug(N, D, 41) ^ M), - (Q = ((p ^ m) + Q) | 0), - (Q = - r >>> 0 > (h = (e + r) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (r = - ((r = h) + - (M = - i[(h = ((e = (13 | B) << 3) + g) | 0) >> 2])) | - 0), - (Q = (i[(h + 4) >> 2] + Q) | 0), - (Q = r >>> 0 < M >>> 0 ? (Q + 1) | 0 : Q), - (r = ((b = i[(e = (e + 34784) | 0) >> 2]) + r) | 0), - (Q = (i[(e + 4) >> 2] + Q) | 0), - (Q = r >>> 0 < b >>> 0 ? (Q + 1) | 0 : Q), - (b = r), - (e = r), - (m = E), - (E = Q), - (Q = (m + Q) | 0), - (M = r = (P + r) | 0), - (r = Q = r >>> 0 < e >>> 0 ? (Q + 1) | 0 : Q), - (i[(w + 48) >> 2] = M), - (i[(w + 52) >> 2] = Q), - (e = w), - (Q = ug(Y, s, 28)), - (w = p), - (m = ug(Y, s, 34) ^ Q), - (P = p ^ w), - (w = ((Q = b) + (b = ((o | f) & Y) | (o & f))) | 0), - (Q = ((((C | c) & s) | (C & c)) + E) | 0), - (Q = w >>> 0 < b >>> 0 ? (Q + 1) | 0 : Q), - (E = w), - (w = ug(Y, s, 39) ^ m), - (Q = ((p ^ P) + Q) | 0), - (b = E = (E + w) | 0), - (E = Q = E >>> 0 < w >>> 0 ? (Q + 1) | 0 : Q), - (i[(e + 16) >> 2] = b), - (i[(e + 20) >> 2] = Q), - (Q = ug(M, r, 14)), - (w = p), - (m = ug(M, r, 18) ^ Q), - (P = p ^ w), - (Q = (n + (a ^ ((a ^ D) & r))) | 0), - (Q = - (w = (y + (t ^ ((t ^ N) & M))) | 0) >>> 0 < y >>> 0 - ? (Q + 1) | 0 - : Q), - (n = ug(M, r, 41) ^ m), - (Q = ((p ^ P) + Q) | 0), - (Q = - n >>> 0 > (y = (n + w) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (n = - ((n = y) + - (P = - i[(y = ((w = (14 | B) << 3) + g) | 0) >> 2])) | - 0), - (Q = (i[(y + 4) >> 2] + Q) | 0), - (Q = n >>> 0 < P >>> 0 ? (Q + 1) | 0 : Q), - (n = ((m = i[(w = (w + 34784) | 0) >> 2]) + n) | 0), - (Q = (i[(w + 4) >> 2] + Q) | 0), - (P = n), - (w = Q = n >>> 0 < m >>> 0 ? (Q + 1) | 0 : Q), - (Q = (c + Q) | 0), - (m = n = (o + n) | 0), - (o = Q = n >>> 0 < o >>> 0 ? (Q + 1) | 0 : Q), - (i[(e + 40) >> 2] = n), - (i[(e + 44) >> 2] = Q), - (n = e), - (Q = ug(b, E, 28)), - (c = p), - (e = ug(b, E, 34) ^ Q), - (J = p ^ c), - (c = ((Q = P) + (P = ((f | Y) & b) | (f & Y))) | 0), - (Q = ((((C | s) & E) | (C & s)) + w) | 0), - (Q = c >>> 0 < P >>> 0 ? (Q + 1) | 0 : Q), - (e = ug(b, E, 39) ^ e), - (Q = ((p ^ J) + Q) | 0), - (Q = - e >>> 0 > (c = (e + c) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (e = c), - (c = Q), - (i[(n + 8) >> 2] = e), - (i[(n + 12) >> 2] = Q), - (Q = ug(m, o, 14)), - (n = p), - (P = ug(m, o, 18) ^ Q), - (J = p ^ n), - (Q = (a + (D ^ ((r ^ D) & o))) | 0), - (Q = - (w = (t + (N ^ ((N ^ M) & m))) | 0) >>> 0 < t >>> 0 - ? (Q + 1) | 0 - : Q), - (D = ug(m, o, 41) ^ P), - (Q = ((p ^ J) + Q) | 0), - (Q = - (o = (D + w) | 0) >>> 0 < D >>> 0 - ? (Q + 1) | 0 - : Q), - (o = - ((r = - i[(a = D = ((t = (15 | B) << 3) + g) | 0) >> 2]) + - o) | - 0), - (Q = (i[(a + 4) >> 2] + Q) | 0), - (Q = o >>> 0 < r >>> 0 ? (Q + 1) | 0 : Q), - (o = ((a = i[(t = (t + 34784) | 0) >> 2]) + o) | 0), - (Q = (i[(t + 4) >> 2] + Q) | 0), - (Q = o >>> 0 < a >>> 0 ? (Q + 1) | 0 : Q), - (t = (f + (a = o)) | 0), - (o = Q), - (Q = (C + Q) | 0), - (i[((n = I) + 32) >> 2] = t), - (i[(n + 36) >> 2] = - t >>> 0 < f >>> 0 ? (Q + 1) | 0 : Q), - (Q = ug(e, c, 28)), - (f = p), - (C = ug(e, c, 34) ^ Q), - (n = p ^ f), - (Q = ((((E | s) & c) | (E & s)) + o) | 0), - (s = - ((t = - ((E = a) + (a = ((Y | b) & e) | (Y & b))) | 0) + - (E = ug(e, c, 39) ^ C)) | - 0), - (Q = - ((p ^ n) + (a >>> 0 > t >>> 0 ? (Q + 1) | 0 : Q)) | - 0), - (i[(f = I) >> 2] = s), - (i[(f + 4) >> 2] = - E >>> 0 > s >>> 0 ? (Q + 1) | 0 : Q), - 64 == (0 | B)) - ) { - for ( - ; - (s = g = ((B = x << 3) + A) | 0), - (B = - ((E = i[(Q = (I + B) | 0) >> 2]) + i[s >> 2]) | - 0), - (Q = (i[(s + 4) >> 2] + i[(Q + 4) >> 2]) | 0), - (i[s >> 2] = B), - (i[(s + 4) >> 2] = - B >>> 0 < E >>> 0 ? (Q + 1) | 0 : Q), - 8 != (0 | (x = (x + 1) | 0)); - - ); - break - } - ;(c = (((B = (B + 16) | 0) << 3) + g) | 0), - (Y = s = i[(y + 4) >> 2]), - (Q = (s >>> 6) | 0), - (s = - (((63 & s) << 26) | ((b = i[y >> 2]) >>> 6)) ^ - ug(b, s, 19)), - (Q ^= p), - (s = - ((C = ug(b, Y, 61) ^ s) + (E = w = i[l >> 2])) | 0), - (Q = ((f = i[(l + 4) >> 2]) + (p ^ Q)) | 0), - (Q = E >>> 0 > s >>> 0 ? (Q + 1) | 0 : Q), - (s = ((o = i[(E = (g + L) | 0) >> 2]) + s) | 0), - (Q = (i[(E + 4) >> 2] + Q) | 0), - (s = o >>> 0 > (C = s) >>> 0 ? (Q + 1) | 0 : Q), - (o = E = i[(d + 4) >> 2]), - (Q = (E >>> 7) | 0), - (E = - (((127 & E) << 25) | ((t = i[d >> 2]) >>> 7)) ^ - ug(t, E, 1)), - (Q ^= p), - (a = C), - (C = ug(t, o, 8) ^ E), - (Q = ((p ^ Q) + s) | 0), - (n = E = (a + C) | 0), - (E = Q = E >>> 0 < C >>> 0 ? (Q + 1) | 0 : Q), - (i[c >> 2] = n), - (i[(c + 4) >> 2] = Q), - (Q = (i[((c = d) + 76) >> 2] + o) | 0), - (C = t), - (o = - (t = i[(c + 72) >> 2]) >>> 0 > - (C = s = (C + t) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (s = t = i[(D + 4) >> 2]), - (Q = (t >>> 6) | 0), - (t = - (((63 & t) << 26) | ((e = i[D >> 2]) >>> 6)) ^ - ug(e, t, 19)), - (Q ^= p), - (a = C), - (C = ug(e, s, 61) ^ t), - (Q = ((p ^ Q) + o) | 0), - (o = - C >>> 0 > (a = t = (a + C) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (t = C = i[(c + 12) >> 2]), - (Q = (C >>> 7) | 0), - (C = - (((127 & C) << 25) | - ((r = i[(c + 8) >> 2]) >>> 7)) ^ - ug(r, C, 1)), - (Q ^= p), - (d = a), - (a = ug(r, t, 8) ^ C), - (Q = ((p ^ Q) + o) | 0), - (Q = - (C = (d + a) | 0) >>> 0 < a >>> 0 - ? (Q + 1) | 0 - : Q), - (a = C), - (o = Q), - (i[(c + 128) >> 2] = C), - (i[(c + 132) >> 2] = Q), - (c = U), - (C = t), - (Q = ug(n, E, 19)), - (U = p), - (t = Q), - (Q = (E >>> 6) | 0), - (E = - ((E = - ug(n, E, 61) ^ - t ^ - (((63 & E) << 26) | (n >>> 6))) + - (n = d = i[u >> 2])) | - 0), - (Q = ((t = i[(u + 4) >> 2]) + (p ^ Q ^ U)) | 0), - (Q = E >>> 0 < n >>> 0 ? (Q + 1) | 0 : Q), - (n = E), - (Q = (Q + C) | 0), - (r = E = (E + r) | 0), - (E = E >>> 0 < n >>> 0 ? (Q + 1) | 0 : Q), - (n = C = i[(F + 4) >> 2]), - (Q = (C >>> 7) | 0), - (C = - (((127 & C) << 25) | ((U = i[F >> 2]) >>> 7)) ^ - ug(U, C, 1)), - (Q ^= p), - (m = r), - (r = ug(U, n, 8) ^ C), - (Q = ((p ^ Q) + E) | 0), - (Q = - (C = (m + r) | 0) >>> 0 < r >>> 0 - ? (Q + 1) | 0 - : Q), - (r = C), - (E = Q), - (i[(c + 128) >> 2] = C), - (i[(c + 132) >> 2] = Q), - (c = ((Q = U) + (U = i[((C = F) + 72) >> 2])) | 0), - (Q = (i[(C + 76) >> 2] + n) | 0), - (n = Q = c >>> 0 < U >>> 0 ? (Q + 1) | 0 : Q), - (Q = ug(a, o, 19)), - (U = p), - (F = c), - (c = Q), - (Q = (o >>> 6) | 0), - (c = - ug(a, o, 61) ^ c ^ (((63 & o) << 26) | (a >>> 6))), - (Q = ((p ^ Q ^ U) + n) | 0), - (U = o = (F + c) | 0), - (o = o >>> 0 < c >>> 0 ? (Q + 1) | 0 : Q), - (c = n = i[(C + 12) >> 2]), - (Q = (n >>> 7) | 0), - (n = - (((127 & n) << 25) | - ((a = i[(C + 8) >> 2]) >>> 7)) ^ - ug(a, n, 1)), - (Q ^= p), - (F = ug(a, c, 8) ^ n), - (Q = ((p ^ Q) + o) | 0), - (Q = - (n = (F + U) | 0) >>> 0 < F >>> 0 - ? (Q + 1) | 0 - : Q), - (F = n), - (o = Q), - (i[(C + 128) >> 2] = n), - (i[(C + 132) >> 2] = Q), - (C = S), - (n = c), - (Q = ug(r, E, 19)), - (S = p), - (m = a), - (a = Q), - (Q = (E >>> 6) | 0), - (E = - ((E = - ug(r, E, 61) ^ - a ^ - (((63 & E) << 26) | (r >>> 6))) + - (a = U = i[h >> 2])) | - 0), - (Q = ((c = i[(h + 4) >> 2]) + (p ^ Q ^ S)) | 0), - (Q = E >>> 0 < a >>> 0 ? (Q + 1) | 0 : Q), - (a = E), - (Q = (Q + n) | 0), - (S = E = (m + E) | 0), - (E = E >>> 0 < a >>> 0 ? (Q + 1) | 0 : Q), - (a = n = i[(G + 4) >> 2]), - (Q = (n >>> 7) | 0), - (n = - (((127 & n) << 25) | ((r = i[G >> 2]) >>> 7)) ^ - ug(r, n, 1)), - (Q ^= p), - (m = S), - (S = ug(r, a, 8) ^ n), - (Q = ((p ^ Q) + E) | 0), - (Q = - (n = (m + S) | 0) >>> 0 < S >>> 0 - ? (Q + 1) | 0 - : Q), - (S = n), - (E = Q), - (i[(C + 128) >> 2] = n), - (i[(C + 132) >> 2] = Q), - (C = ((Q = r) + (r = i[((n = G) + 72) >> 2])) | 0), - (Q = (i[(n + 76) >> 2] + a) | 0), - (a = Q = C >>> 0 < r >>> 0 ? (Q + 1) | 0 : Q), - (Q = ug(F, o, 19)), - (r = p), - (G = C), - (m = Q), - (Q = ((C = o) >>> 6) | 0), - (C = - m ^ (((63 & C) << 26) | (F >>> 6)) ^ ug(F, C, 61)), - (Q = ((p ^ Q ^ r) + a) | 0), - (o = - C >>> 0 > (r = o = (G + C) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (Q = ((C = a = i[(n + 12) >> 2]) >>> 7) | 0), - (a = - (((127 & C) << 25) | - ((G = i[(n + 8) >> 2]) >>> 7)) ^ - ug(G, C, 1)), - (Q ^= p), - (F = r), - (r = ug(G, C, 8) ^ a), - (Q = ((p ^ Q) + o) | 0), - (F = a = (F + r) | 0), - (o = Q = r >>> 0 > a >>> 0 ? (Q + 1) | 0 : Q), - (i[(n + 128) >> 2] = a), - (i[(n + 132) >> 2] = Q), - (n = R), - (a = C), - (Q = ug(S, E, 19)), - (R = p), - (C = Q), - (Q = (E >>> 6) | 0), - (C = - ug(S, E, 61) ^ C ^ (((63 & E) << 26) | (S >>> 6))), - (Q = ((p ^ Q ^ R) + s) | 0), - (Q = - (E = (C + e) | 0) >>> 0 < C >>> 0 - ? (Q + 1) | 0 - : Q), - (C = E), - (Q = (Q + a) | 0), - (G = E = (E + G) | 0), - (E = E >>> 0 < C >>> 0 ? (Q + 1) | 0 : Q), - (Q = ((C = r = i[(k + 4) >> 2]) >>> 7) | 0), - (r = - (((127 & C) << 25) | ((a = i[k >> 2]) >>> 7)) ^ - ug(a, C, 1)), - (Q ^= p), - (S = G), - (G = ug(a, C, 8) ^ r), - (Q = ((p ^ Q) + E) | 0), - (E = Q = - (r = (S + G) | 0) >>> 0 < G >>> 0 - ? (Q + 1) | 0 - : Q), - (i[(n + 128) >> 2] = r), - (i[(n + 132) >> 2] = Q), - (Q = (i[((n = k) + 76) >> 2] + C) | 0), - (a = - (C = a = ((G = i[(n + 72) >> 2]) + a) | 0) >>> 0 < - G >>> 0 - ? (Q + 1) | 0 - : Q), - (Q = ug(F, o, 19)), - (G = p), - (S = C), - (k = Q), - (Q = ((C = o) >>> 6) | 0), - (C = - k ^ (((63 & C) << 26) | (F >>> 6)) ^ ug(F, C, 61)), - (Q = ((p ^ Q ^ G) + a) | 0), - (F = o = (S + C) | 0), - (o = C >>> 0 > o >>> 0 ? (Q + 1) | 0 : Q), - (Q = ((C = a = i[(n + 12) >> 2]) >>> 7) | 0), - (a = - (((127 & C) << 25) | - ((G = i[(n + 8) >> 2]) >>> 7)) ^ - ug(G, C, 1)), - (Q ^= p), - (S = F), - (F = ug(G, C, 8) ^ a), - (Q = ((p ^ Q) + o) | 0), - (Q = - (a = (S + F) | 0) >>> 0 < F >>> 0 - ? (Q + 1) | 0 - : Q), - (F = a), - (o = Q), - (i[(n + 128) >> 2] = a), - (i[(n + 132) >> 2] = Q), - (a = C), - (Q = ug(r, E, 19)), - (k = p), - (C = Q), - (Q = (E >>> 6) | 0), - (E = - ((E = - ug(r, E, 61) ^ - C ^ - (((63 & E) << 26) | (r >>> 6))) + - (C = i[((n = H) + 72) >> 2])) | - 0), - (Q = (i[(n + 76) >> 2] + (p ^ Q ^ k)) | 0), - (Q = E >>> 0 < C >>> 0 ? (Q + 1) | 0 : Q), - (C = E), - (Q = (Q + a) | 0), - (C = Q = - (E = (E + G) | 0) >>> 0 < C >>> 0 - ? (Q + 1) | 0 - : Q), - (Q = ug(w, f, 1)), - (a = p), - (G = E), - (r = Q), - (Q = ((E = f) >>> 7) | 0), - (r = - r ^ (((127 & E) << 25) | (w >>> 7)) ^ ug(w, E, 8)), - (Q = ((p ^ Q ^ a) + C) | 0), - (a = E = (G + r) | 0), - (E = Q = E >>> 0 < r >>> 0 ? (Q + 1) | 0 : Q), - (i[(n + 128) >> 2] = a), - (i[(n + 132) >> 2] = Q), - (Q = (i[((C = l) + 76) >> 2] + f) | 0), - (f = n = ((r = i[(C + 72) >> 2]) + w) | 0), - (n = n >>> 0 < r >>> 0 ? (Q + 1) | 0 : Q), - (Q = ug(F, o, 19)), - (r = p), - (w = f), - (f = Q), - (Q = (o >>> 6) | 0), - (f = - ug(F, o, 61) ^ f ^ (((63 & o) << 26) | (F >>> 6))), - (Q = ((p ^ Q ^ r) + n) | 0), - (o = - (r = o = (w + f) | 0) >>> 0 < f >>> 0 - ? (Q + 1) | 0 - : Q), - (f = n = i[(C + 12) >> 2]), - (Q = (n >>> 7) | 0), - (n = - (((127 & n) << 25) | - ((F = i[(C + 8) >> 2]) >>> 7)) ^ - ug(F, n, 1)), - (Q ^= p), - (w = r), - (r = ug(F, f, 8) ^ n), - (Q = ((p ^ Q) + o) | 0), - (Q = - (n = (w + r) | 0) >>> 0 < r >>> 0 - ? (Q + 1) | 0 - : Q), - (r = n), - (o = Q), - (i[(C + 128) >> 2] = n), - (i[(C + 132) >> 2] = Q), - (n = f), - (Q = ug(a, E, 19)), - (G = p), - (C = Q), - (Q = (E >>> 6) | 0), - (E = - ((E = - ug(a, E, 61) ^ - C ^ - (((63 & E) << 26) | (a >>> 6))) + - (f = i[((C = v) + 72) >> 2])) | - 0), - (Q = (i[(C + 76) >> 2] + (p ^ Q ^ G)) | 0), - (Q = E >>> 0 < f >>> 0 ? (Q + 1) | 0 : Q), - (f = E), - (Q = (Q + n) | 0), - (f = Q = - (E = (E + F) | 0) >>> 0 < f >>> 0 - ? (Q + 1) | 0 - : Q), - (Q = ug(d, t, 1)), - (n = p), - (w = E), - (a = Q), - (Q = ((E = t) >>> 7) | 0), - (a = - a ^ (((127 & E) << 25) | (d >>> 7)) ^ ug(d, E, 8)), - (Q = ((p ^ Q ^ n) + f) | 0), - (n = E = (w + a) | 0), - (E = Q = E >>> 0 < a >>> 0 ? (Q + 1) | 0 : Q), - (i[(C + 128) >> 2] = n), - (i[(C + 132) >> 2] = Q), - (f = ((a = i[((C = u) + 72) >> 2]) + d) | 0), - (Q = (i[(C + 76) >> 2] + t) | 0), - (t = Q = a >>> 0 > f >>> 0 ? (Q + 1) | 0 : Q), - (Q = ug(r, o, 19)), - (a = p), - (w = f), - (f = Q), - (Q = (o >>> 6) | 0), - (f = - ug(r, o, 61) ^ f ^ (((63 & o) << 26) | (r >>> 6))), - (Q = ((p ^ Q ^ a) + t) | 0), - (o = - (a = o = (w + f) | 0) >>> 0 < f >>> 0 - ? (Q + 1) | 0 - : Q), - (f = t = i[(C + 12) >> 2]), - (Q = (t >>> 7) | 0), - (t = - (((127 & t) << 25) | - ((r = i[(C + 8) >> 2]) >>> 7)) ^ - ug(r, t, 1)), - (Q ^= p), - (w = a), - (a = ug(r, f, 8) ^ t), - (Q = ((p ^ Q) + o) | 0), - (Q = - a >>> 0 > (t = (w + a) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (a = t), - (o = Q), - (i[(C + 128) >> 2] = a), - (i[(C + 132) >> 2] = Q), - (C = f), - (Q = ug(n, E, 19)), - (d = p), - (f = Q), - (Q = (E >>> 6) | 0), - (E = - ((E = - ug(n, E, 61) ^ - f ^ - (((63 & E) << 26) | (n >>> 6))) + - (f = i[((t = _) + 72) >> 2])) | - 0), - (Q = (i[(t + 76) >> 2] + (p ^ Q ^ d)) | 0), - (Q = E >>> 0 < f >>> 0 ? (Q + 1) | 0 : Q), - (f = E), - (Q = (Q + C) | 0), - (f = Q = - (E = (E + r) | 0) >>> 0 < f >>> 0 - ? (Q + 1) | 0 - : Q), - (Q = ug(U, c, 1)), - (C = p), - (r = E), - (n = Q), - (Q = ((E = c) >>> 7) | 0), - (n = - n ^ (((127 & E) << 25) | (U >>> 7)) ^ ug(U, E, 8)), - (Q = ((p ^ Q ^ C) + f) | 0), - (C = E = (r + n) | 0), - (E = Q = E >>> 0 < n >>> 0 ? (Q + 1) | 0 : Q), - (i[(t + 128) >> 2] = C), - (i[(t + 132) >> 2] = Q), - (t = ((n = i[((f = h) + 72) >> 2]) + U) | 0), - (Q = (i[(f + 76) >> 2] + c) | 0), - (c = Q = n >>> 0 > t >>> 0 ? (Q + 1) | 0 : Q), - (Q = ug(a, o, 19)), - (n = p), - (r = t), - (t = Q), - (Q = (o >>> 6) | 0), - (t = - ug(a, o, 61) ^ t ^ (((63 & o) << 26) | (a >>> 6))), - (Q = ((p ^ Q ^ n) + c) | 0), - (o = - (n = o = (r + t) | 0) >>> 0 < t >>> 0 - ? (Q + 1) | 0 - : Q), - (c = t = i[(f + 12) >> 2]), - (Q = (t >>> 7) | 0), - (t = - (((127 & t) << 25) | - ((h = i[(f + 8) >> 2]) >>> 7)) ^ - ug(h, t, 1)), - (Q ^= p), - (t = ug(h, c, 8) ^ t), - (Q = ((p ^ Q) + o) | 0), - (Q = - t >>> 0 > (h = (t + n) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (t = h), - (o = Q), - (i[(f + 128) >> 2] = t), - (i[(f + 132) >> 2] = Q), - (h = ((c = i[((f = y) + 72) >> 2]) + b) | 0), - (Q = (i[(f + 76) >> 2] + Y) | 0), - (y = Q = c >>> 0 > h >>> 0 ? (Q + 1) | 0 : Q), - (Q = ug(C, E, 19)), - (c = p), - (a = h), - (n = Q), - (Q = (E >>> 6) | 0), - (h = - ug(C, E, 61) ^ n ^ (((63 & E) << 26) | (C >>> 6))), - (Q = ((p ^ Q ^ c) + y) | 0), - (h = Q = - (E = (a + h) | 0) >>> 0 < h >>> 0 - ? (Q + 1) | 0 - : Q), - (Q = ug(e, s, 1)), - (y = p), - (C = E), - (a = Q), - (Q = ((E = s) >>> 7) | 0), - (E = - (C + - (c = - a ^ - (((127 & E) << 25) | (e >>> 7)) ^ - ug(e, E, 8))) | - 0), - (Q = ((p ^ Q ^ y) + h) | 0), - (i[(f + 128) >> 2] = E), - (i[(f + 132) >> 2] = - E >>> 0 < c >>> 0 ? (Q + 1) | 0 : Q), - (Q = (i[((E = D) + 76) >> 2] + s) | 0), - (s = f = ((h = i[(E + 72) >> 2]) + e) | 0), - (f = f >>> 0 < h >>> 0 ? (Q + 1) | 0 : Q), - (Q = ug(t, o, 19)), - (h = p), - (C = Q), - (Q = (o >>> 6) | 0), - (o = - ug(t, o, 61) ^ C ^ (((63 & o) << 26) | (t >>> 6))), - (Q = ((p ^ Q ^ h) + f) | 0), - (s = - o >>> 0 > (y = s = (o + s) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (D = - (((127 & (f = h = i[(E + 12) >> 2])) << 25) | - ((o = i[(E + 8) >> 2]) >>> 7)) ^ - ug(o, f, 1)), - (Q = p ^ (f >>> 7)), - (D = ((h = ug(o, f, 8) ^ D) + y) | 0), - (Q = ((p ^ Q) + s) | 0), - (i[(E + 128) >> 2] = D), - (i[(E + 132) >> 2] = - h >>> 0 > D >>> 0 ? (Q + 1) | 0 : Q) - } - } - function G(A) { - var I, - g, - B, - Q, - E, - i, - a, - r, - o, - e, - t, - f, - c, - y, - s, - w, - h, - D, - u = 0, - l = 0, - F = 0, - G = 0, - k = 0, - _ = 0, - H = 0, - Y = 0, - b = 0, - m = 0, - v = 0, - U = 0, - S = 0, - N = 0, - M = 0, - d = 0, - P = 0, - R = 0, - J = 0, - x = 0, - L = 0, - K = 0, - q = 0, - X = 0, - V = 0, - W = 0, - T = 0, - j = 0, - Z = 0, - O = 0, - z = 0, - $ = 0, - AA = 0, - IA = 0, - gA = 0, - BA = 0, - QA = 0, - CA = 0, - EA = 0 - ;(y = HI(A)), - (s = - n[(A + 2) | 0] | - (n[(A + 3) | 0] << 8) | - (n[(A + 4) | 0] << 16) | - (n[(A + 5) | 0] << 24)), - (w = HI((A + 5) | 0)), - (h = p), - (IA = - n[(A + 7) | 0] | - (n[(A + 8) | 0] << 8) | - (n[(A + 9) | 0] << 16) | - (n[(A + 10) | 0] << 24)), - (gA = - n[(A + 10) | 0] | - (n[(A + 11) | 0] << 8) | - (n[(A + 12) | 0] << 16) | - (n[(A + 13) | 0] << 24)), - (D = HI((A + 13) | 0)), - (BA = p), - (M = - n[(A + 15) | 0] | - (n[(A + 16) | 0] << 8) | - (n[(A + 17) | 0] << 16) | - (n[(A + 18) | 0] << 24)), - (Z = HI((A + 18) | 0)), - (d = p), - (m = HI((A + 21) | 0)), - (_ = - n[(A + 23) | 0] | - (n[(A + 24) | 0] << 8) | - (n[(A + 25) | 0] << 16) | - (n[(A + 26) | 0] << 24)), - (k = HI((A + 26) | 0)), - (l = p), - (AA = - n[(A + 28) | 0] | - (n[(A + 29) | 0] << 8) | - (n[(A + 30) | 0] << 16) | - (n[(A + 31) | 0] << 24)), - (q = - n[(A + 31) | 0] | - (n[(A + 32) | 0] << 8) | - (n[(A + 33) | 0] << 16) | - (n[(A + 34) | 0] << 24)), - (T = HI((A + 34) | 0)), - (W = p), - (P = - n[(A + 36) | 0] | - (n[(A + 37) | 0] << 8) | - (n[(A + 38) | 0] << 16) | - (n[(A + 39) | 0] << 24)), - (O = HI((A + 39) | 0)), - (J = p), - (Y = HI((A + 42) | 0)), - (G = - n[(A + 44) | 0] | - (n[(A + 45) | 0] << 8) | - (n[(A + 46) | 0] << 16) | - (n[(A + 47) | 0] << 24)), - (F = HI((A + 47) | 0)), - (u = 2097151 & (((3 & l) << 30) | (k >>> 2))), - (k = - (eg( - (I = 2097151 & (((3 & (H = p)) << 30) | (F >>> 2))), - 0, - 136657, - 0 - ) + - u) | - 0), - (l = p), - (l = u >>> 0 > k >>> 0 ? (l + 1) | 0 : l), - (F = eg( - (g = - ((n[(A + 49) | 0] | - (n[(A + 50) | 0] << 8) | - (n[(A + 51) | 0] << 16) | - (n[(A + 52) | 0] << 24)) >>> - 7) & - 2097151), - 0, - -997805, - -1 - )), - (u = (p + l) | 0), - (u = - F >>> 0 > (k = (F + k) | 0) >>> 0 ? (u + 1) | 0 : u), - (l = eg( - (B = - ((n[(A + 52) | 0] | - (n[(A + 53) | 0] << 8) | - (n[(A + 54) | 0] << 16) | - (n[(A + 55) | 0] << 24)) >>> - 4) & - 2097151), - 0, - 654183, - 0 - )), - (F = (p + u) | 0), - (F = - l >>> 0 > (k = (l + k) | 0) >>> 0 ? (F + 1) | 0 : F), - (u = k), - (l = HI((A + 55) | 0)), - (k = - (u + - (l = eg( - (Q = - 2097151 & (((1 & (k = p)) << 31) | (l >>> 1))), - 0, - 470296, - 0 - ))) | - 0), - (u = (p + F) | 0), - (u = l >>> 0 > k >>> 0 ? (u + 1) | 0 : u), - (F = eg( - (E = - ((n[(A + 57) | 0] | - (n[(A + 58) | 0] << 8) | - (n[(A + 59) | 0] << 16) | - (n[(A + 60) | 0] << 24)) >>> - 6) & - 2097151), - 0, - 666643, - 0 - )), - (l = (p + u) | 0), - (U = l = - F >>> 0 > (k = (F + k) | 0) >>> 0 ? (l + 1) | 0 : l), - (F = l), - (b = (G >>> 5) & 2097151), - (l = 2097151 & Y), - (G = - (eg( - (i = - ((n[(A + 60) | 0] | - (n[(A + 61) | 0] << 8) | - (n[(A + 62) | 0] << 16) | - (n[(A + 63) | 0] << 24)) >>> - 3) | - 0), - 0, - -683901, - -1 - ) + - l) | - 0), - (u = p), - (Y = G), - (S = u = l >>> 0 > G >>> 0 ? (u + 1) | 0 : u), - (N = ((u = G) - -1048576) | 0), - (L = G = (S - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), - (u = G >> 21), - (r = b = - ((G = ((2097151 & G) << 11) | (N >>> 21)) + b) | 0), - (V = l = G >>> 0 > b >>> 0 ? (u + 1) | 0 : u), - (u = eg(b, l, -683901, -1)), - (l = (p + F) | 0), - (j = H = (u + k) | 0), - (v = u >>> 0 > H >>> 0 ? (l + 1) | 0 : l), - (F = (_ >>> 5) & 2097151), - (H = (eg(I, 0, -997805, -1) + F) | 0), - (u = p), - (u = F >>> 0 > H >>> 0 ? (u + 1) | 0 : u), - (l = eg(g, 0, 654183, 0)), - (F = (p + u) | 0), - (F = - l >>> 0 > (H = (l + H) | 0) >>> 0 ? (F + 1) | 0 : F), - (u = eg(B, 0, 470296, 0)), - (l = (p + F) | 0), - (l = - u >>> 0 > (H = (u + H) | 0) >>> 0 ? (l + 1) | 0 : l), - (F = eg(Q, 0, 666643, 0)), - (u = (p + l) | 0), - (F = - F >>> 0 > (_ = H = (F + H) | 0) >>> 0 - ? (u + 1) | 0 - : u), - (u = 2097151 & m), - (H = (eg(I, 0, 654183, 0) + u) | 0), - (l = p), - (l = u >>> 0 > H >>> 0 ? (l + 1) | 0 : l), - (G = ((u = H) + (H = eg(g, 0, 470296, 0))) | 0), - (u = (p + l) | 0), - (u = G >>> 0 < H >>> 0 ? (u + 1) | 0 : u), - (H = eg(B, 0, 666643, 0)), - (l = (p + u) | 0), - (b = G = (H + G) | 0), - (G = l = G >>> 0 < H >>> 0 ? (l + 1) | 0 : l), - (z = ((u = b) - -1048576) | 0), - (R = H = (l - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), - (F = ((u = (H >>> 21) | 0) + F) | 0), - (m = F = - (l = ((2097151 & H) << 11) | (z >>> 21)) >>> 0 > - (_ = H = (l + _) | 0) >>> 0 - ? (F + 1) | 0 - : F), - (K = ((u = _) - -1048576) | 0), - (f = (k - -1048576) | 0), - (U = (U - (((k >>> 0 < 4293918720) - 1) | 0)) | 0), - (l = - ((u = - (F = x = - (F - (((u >>> 0 < 4293918720) - 1) | 0)) | 0) >> - 21) + - v) | - 0), - (U = - ((l = - (k = ((2097151 & F) << 11) | (K >>> 21)) >>> 0 > - (x = (k + j) | 0) >>> 0 - ? (l + 1) | 0 - : l) - - ((((u = -2097152 & f) >>> 0 > (k = x) >>> 0) + - (H = U)) | - 0)) | - 0), - (QA = - ((u = (k - u) | 0) - - (l = -2097152 & (c = (u - -1048576) | 0))) | - 0), - (CA = - (U - - (((u >>> 0 < l >>> 0) + - (k = - (U - (((u >>> 0 < 4293918720) - 1) | 0)) | 0)) | - 0)) | - 0), - (l = (eg(r, V, 136657, 0) + _) | 0), - (u = (m + p) | 0), - (u = l >>> 0 < _ >>> 0 ? (u + 1) | 0 : u), - ($ = ((_ = l) - (l = -2097152 & K)) | 0), - (j = (u - (((l >>> 0 > _ >>> 0) + F) | 0)) | 0), - (U = (Y - (u = -2097152 & N)) | 0), - (v = (S - (((u >>> 0 > Y >>> 0) + L) | 0)) | 0), - (u = 2097151 & (((7 & J) << 29) | (O >>> 3))), - (F = (eg(i, 0, 136657, 0) + u) | 0), - (l = p), - (l = u >>> 0 > F >>> 0 ? (l + 1) | 0 : l), - (_ = ((u = F) + (F = eg(E, 0, -683901, -1))) | 0), - (u = (p + l) | 0), - (Y = _), - (_ = F >>> 0 > _ >>> 0 ? (u + 1) | 0 : u), - (u = eg(Q, 0, -683901, -1)), - (l = p), - (F = u), - (l = - (u = (P >>> 6) & 2097151) >>> 0 > - (F = (F + u) | 0) >>> 0 - ? (l + 1) | 0 - : l), - (m = ((u = eg(i, 0, -997805, -1)) + F) | 0), - (F = (p + l) | 0), - (F = u >>> 0 > m >>> 0 ? (F + 1) | 0 : F), - (l = eg(E, 0, 136657, 0)), - (u = (p + F) | 0), - (K = l = - ((N = u = - l >>> 0 > (m = (l + m) | 0) >>> 0 - ? (u + 1) | 0 - : u) - - ((((u = m) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (u = - ((2097151 & l) << 11) | - ((O = (u - -1048576) | 0) >>> 21)), - (l = ((l >> 21) + _) | 0), - (S = l = - u >>> 0 > (Y = (u + Y) | 0) >>> 0 ? (l + 1) | 0 : l), - (x = ((u = Y) - -1048576) | 0), - (L = l = (l - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), - (u = ((F = l >> 21) + v) | 0), - (o = _ = - ((l = ((2097151 & l) << 11) | (x >>> 21)) + U) | 0), - (X = u = l >>> 0 > _ >>> 0 ? (u + 1) | 0 : u), - (l = eg(_, u, -683901, -1)), - (u = (p + j) | 0), - (EA = F = (l + $) | 0), - (P = l >>> 0 > F >>> 0 ? (u + 1) | 0 : u), - (v = b), - (u = 2097151 & (((7 & d) << 29) | (Z >>> 3))), - (F = (eg(I, 0, 470296, 0) + u) | 0), - (l = p), - (l = u >>> 0 > F >>> 0 ? (l + 1) | 0 : l), - (u = eg(g, 0, 666643, 0)), - (l = (p + l) | 0), - (U = F = (u + F) | 0), - (F = u >>> 0 > F >>> 0 ? (l + 1) | 0 : l), - (_ = (M >>> 6) & 2097151), - (b = (eg(I, 0, 666643, 0) + _) | 0), - (u = p), - (d = _ = - ((M = u = _ >>> 0 > b >>> 0 ? (u + 1) | 0 : u) - - ((((u = b) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (l = ((l = (_ >>> 21) | 0) + F) | 0), - (J = l = - (u = - ((2097151 & _) << 11) | - (($ = (u - -1048576) | 0) >>> 21)) >>> - 0 > - (_ = (u + U) | 0) >>> 0 - ? (l + 1) | 0 - : l), - (Z = - (l - ((((u = _) >>> 0 < 4293918720) - 1) | 0)) | 0), - (j = (u - -1048576) | 0), - (a = (Y - (u = -2097152 & x)) | 0), - (e = F = (S - (((u >>> 0 > Y >>> 0) + L) | 0)) | 0), - (u = ((((U = Z) >>> 21) | 0) + G) | 0), - (u = - (Y = ((2097151 & U) << 11) | (j >>> 21)) >>> 0 > - (v = (Y + v) | 0) >>> 0 - ? (u + 1) | 0 - : u), - (v = - ((G = eg(r, V, -997805, -1)) + - (((Y = v) - (l = -2097152 & z)) | 0)) | - 0), - (l = - (p + - ((u - (((8191 & R) + (l >>> 0 > Y >>> 0)) | 0)) | - 0)) | - 0), - (l = G >>> 0 > v >>> 0 ? (l + 1) | 0 : l), - (u = eg(o, X, 136657, 0)), - (l = (p + l) | 0), - (l = - u >>> 0 > (G = (u + v) | 0) >>> 0 ? (l + 1) | 0 : l), - (F = eg(a, F, -683901, -1)), - (u = (p + l) | 0), - (S = u = - F >>> 0 > (G = (F + G) | 0) >>> 0 ? (u + 1) | 0 : u), - (x = ((u = G) - -1048576) | 0), - (L = F = (S - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), - (l = ((u = F >> 21) + P) | 0), - (v = l = - (F = ((2097151 & F) << 11) | (x >>> 21)) >>> 0 > - (Y = (F + EA) | 0) >>> 0 - ? (l + 1) | 0 - : l), - (R = ((u = F = Y) - -1048576) | 0), - (u = - ((u = - (Y = P = - (l - (((u >>> 0 < 4293918720) - 1) | 0)) | 0) >> - 21) + - CA) | - 0), - (QA = P = - ((l = ((2097151 & Y) << 11) | (R >>> 21)) + QA) | 0), - (P = l >>> 0 > P >>> 0 ? (u + 1) | 0 : u), - (CA = (F - (u = -2097152 & R)) | 0), - (EA = (v - (((u >>> 0 > F >>> 0) + Y) | 0)) | 0), - (Z = (G - (u = -2097152 & x)) | 0), - (z = (S - (((u >>> 0 > G >>> 0) + L) | 0)) | 0), - (u = eg(r, V, 654183, 0)), - (F = - (p + - ((J - - (((8191 & U) + - ((l = -2097152 & j) >>> 0 > _ >>> 0)) | - 0)) | - 0)) | - 0), - (F = - u >>> 0 > (G = (u + ((_ - l) | 0)) | 0) >>> 0 - ? (F + 1) | 0 - : F), - (l = eg(o, X, -997805, -1)), - (u = (p + F) | 0), - (u = - l >>> 0 > (G = (l + G) | 0) >>> 0 ? (u + 1) | 0 : u), - (F = eg(a, e, 136657, 0)), - (l = (p + u) | 0), - (x = G = (F + G) | 0), - (Y = F >>> 0 > G >>> 0 ? (l + 1) | 0 : l), - (R = (m - (u = -2097152 & O)) | 0), - (J = (N - (((u >>> 0 > m >>> 0) + K) | 0)) | 0), - (l = 2097151 & (((1 & W) << 31) | (T >>> 1))), - (G = (eg(B, 0, -683901, -1) + l) | 0), - (u = p), - (u = l >>> 0 > G >>> 0 ? (u + 1) | 0 : u), - (l = eg(Q, 0, 136657, 0)), - (u = (p + u) | 0), - (u = - l >>> 0 > (F = (l + G) | 0) >>> 0 ? (u + 1) | 0 : u), - (G = ((l = F) + (F = eg(i, 0, 654183, 0))) | 0), - (l = (p + u) | 0), - (l = F >>> 0 > G >>> 0 ? (l + 1) | 0 : l), - (u = eg(E, 0, -997805, -1)), - (l = (p + l) | 0), - (m = F = (u + G) | 0), - (G = u >>> 0 > F >>> 0 ? (l + 1) | 0 : l), - (u = eg(g, 0, -683901, -1)), - (F = p), - (l = u), - (F = - (u = (q >>> 4) & 2097151) >>> 0 > - (l = (l + u) | 0) >>> 0 - ? (F + 1) | 0 - : F), - (_ = ((u = l) + (l = eg(B, 0, 136657, 0))) | 0), - (u = (p + F) | 0), - (u = l >>> 0 > _ >>> 0 ? (u + 1) | 0 : u), - (F = eg(Q, 0, -997805, -1)), - (l = (p + u) | 0), - (l = - F >>> 0 > (_ = (F + _) | 0) >>> 0 ? (l + 1) | 0 : l), - (F = eg(i, 0, 470296, 0)), - (u = (p + l) | 0), - (u = - F >>> 0 > (_ = (F + _) | 0) >>> 0 ? (u + 1) | 0 : u), - (F = eg(E, 0, 654183, 0)), - (l = (p + u) | 0), - (S = l = - F >>> 0 > (_ = (F + _) | 0) >>> 0 ? (l + 1) | 0 : l), - (K = ((u = _) - -1048576) | 0), - (L = F = (l - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), - (u = ((u = F >> 21) + G) | 0), - (G = F = - ((l = ((2097151 & F) << 11) | (K >>> 21)) + m) | 0), - (v = u = l >>> 0 > F >>> 0 ? (u + 1) | 0 : u), - (U = ((u = F) - -1048576) | 0), - (m = F = (v - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), - (l = ((u = F >> 21) + J) | 0), - (t = N = - ((F = ((2097151 & F) << 11) | (U >>> 21)) + R) | 0), - (q = l = F >>> 0 > N >>> 0 ? (l + 1) | 0 : l), - (u = eg(N, l, -683901, -1)), - (F = (p + Y) | 0), - (J = l = (u + x) | 0), - (Y = u >>> 0 > l >>> 0 ? (F + 1) | 0 : F), - (T = (G - (u = -2097152 & U)) | 0), - (W = m = (v - (((u >>> 0 > G >>> 0) + m) | 0)) | 0), - (F = - ((u = eg(r, V, 470296, 0)) + - ((b - (l = -2097152 & $)) | 0)) | - 0), - (l = - (p + - ((M - (((2047 & d) + (l >>> 0 > b >>> 0)) | 0)) | - 0)) | - 0), - (l = u >>> 0 > F >>> 0 ? (l + 1) | 0 : l), - (u = eg(o, X, 654183, 0)), - (l = (p + l) | 0), - (l = - u >>> 0 > (F = (u + F) | 0) >>> 0 ? (l + 1) | 0 : l), - (G = ((u = eg(a, e, -997805, -1)) + F) | 0), - (F = (p + l) | 0), - (F = u >>> 0 > G >>> 0 ? (F + 1) | 0 : F), - (l = eg(N, q, 136657, 0)), - (u = (p + F) | 0), - (u = - l >>> 0 > (G = (l + G) | 0) >>> 0 ? (u + 1) | 0 : u), - (F = eg(T, m, -683901, -1)), - (l = (p + u) | 0), - (v = l = - F >>> 0 > (G = (F + G) | 0) >>> 0 ? (l + 1) | 0 : l), - (d = ((u = G) - -1048576) | 0), - (m = F = (l - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), - (u = ((u = F >> 21) + Y) | 0), - (Y = u = - (l = ((2097151 & F) << 11) | (d >>> 21)) >>> 0 > - (F = (l + J) | 0) >>> 0 - ? (u + 1) | 0 - : u), - (U = ((u = F) - -1048576) | 0), - (l = - ((u = - (b = J = - (Y - (((u >>> 0 < 4293918720) - 1) | 0)) | 0) >> - 21) + - z) | - 0), - (Z = M = - ((J = ((2097151 & b) << 11) | (U >>> 21)) + Z) | 0), - (J = M >>> 0 < J >>> 0 ? (l + 1) | 0 : l), - (z = (F - (u = -2097152 & U)) | 0), - (O = (Y - (((u >>> 0 > F >>> 0) + b) | 0)) | 0), - (x = (G - (u = -2097152 & d)) | 0), - (N = (v - (((u >>> 0 > G >>> 0) + m) | 0)) | 0), - (l = 2097151 & (((1 & BA) << 31) | (D >>> 1))), - (G = (eg(r, V, 666643, 0) + l) | 0), - (u = p), - (u = l >>> 0 > G >>> 0 ? (u + 1) | 0 : u), - (F = eg(o, X, 470296, 0)), - (l = (p + u) | 0), - (l = - F >>> 0 > (G = (F + G) | 0) >>> 0 ? (l + 1) | 0 : l), - (F = eg(a, e, 654183, 0)), - (u = (p + l) | 0), - (u = - F >>> 0 > (G = (F + G) | 0) >>> 0 ? (u + 1) | 0 : u), - (l = eg(t, q, -997805, -1)), - (F = (p + u) | 0), - (F = - l >>> 0 > (G = (l + G) | 0) >>> 0 ? (F + 1) | 0 : F), - (u = eg(T, W, 136657, 0)), - (l = (p + F) | 0), - (m = G = (u + G) | 0), - (b = u >>> 0 > G >>> 0 ? (l + 1) | 0 : l), - (Y = (_ - (u = -2097152 & K)) | 0), - (_ = (S - (((u >>> 0 > _ >>> 0) + L) | 0)) | 0), - (u = eg(I, 0, -683901, -1)), - (l = p), - (F = u), - (l = - (u = (AA >>> 7) & 2097151) >>> 0 > - (F = (F + u) | 0) >>> 0 - ? (l + 1) | 0 - : l), - (G = ((u = eg(g, 0, 136657, 0)) + F) | 0), - (F = (p + l) | 0), - (F = u >>> 0 > G >>> 0 ? (F + 1) | 0 : F), - (l = eg(B, 0, -997805, -1)), - (u = (p + F) | 0), - (u = - l >>> 0 > (G = (l + G) | 0) >>> 0 ? (u + 1) | 0 : u), - (F = eg(Q, 0, 654183, 0)), - (l = (p + u) | 0), - (l = - F >>> 0 > (G = (F + G) | 0) >>> 0 ? (l + 1) | 0 : l), - (F = eg(i, 0, 666643, 0)), - (u = (p + l) | 0), - (u = - F >>> 0 > (G = (F + G) | 0) >>> 0 ? (u + 1) | 0 : u), - (F = eg(E, 0, 470296, 0)), - (l = (p + u) | 0), - (u = l = - F >>> 0 > (G = (F + G) | 0) >>> 0 ? (l + 1) | 0 : l), - (l = H >> 21), - (G = - ((H = ((2097151 & H) << 11) | (f >>> 21)) + (F = G)) | - 0), - (F = (u + l) | 0), - (L = F = G >>> 0 < H >>> 0 ? (F + 1) | 0 : F), - (S = ((u = G) - -1048576) | 0), - (v = F = (F - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), - (u = ((l = F >> 21) + _) | 0), - (V = H = - ((F = ((2097151 & F) << 11) | (S >>> 21)) + Y) | 0), - (R = u = F >>> 0 > H >>> 0 ? (u + 1) | 0 : u), - (u = eg(H, u, -683901, -1)), - (l = (p + b) | 0), - (b = F = (u + m) | 0), - (H = u >>> 0 > F >>> 0 ? (l + 1) | 0 : l), - (u = eg(o, X, 666643, 0)), - (F = p), - (l = u), - (F = - (u = (gA >>> 4) & 2097151) >>> 0 > - (l = (l + u) | 0) >>> 0 - ? (F + 1) | 0 - : F), - (_ = ((u = l) + (l = eg(a, e, 470296, 0))) | 0), - (u = (p + F) | 0), - (u = l >>> 0 > _ >>> 0 ? (u + 1) | 0 : u), - (F = eg(t, q, 654183, 0)), - (l = (p + u) | 0), - (l = - F >>> 0 > (_ = (F + _) | 0) >>> 0 ? (l + 1) | 0 : l), - (u = eg(T, W, -997805, -1)), - (l = (p + l) | 0), - (l = - u >>> 0 > (F = (u + _) | 0) >>> 0 ? (l + 1) | 0 : l), - (_ = ((u = F) + (F = eg(V, R, 136657, 0))) | 0), - (u = (p + l) | 0), - (m = u = F >>> 0 > _ >>> 0 ? (u + 1) | 0 : u), - (M = ((u = _) - -1048576) | 0), - (Y = F = (m - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), - (u = ((l = F >> 21) + H) | 0), - (F = u = - (F = ((2097151 & F) << 11) | (M >>> 21)) >>> 0 > - (H = b = (F + b) | 0) >>> 0 - ? (u + 1) | 0 - : u), - (d = ((u = H) - -1048576) | 0), - (u = - ((l = - (b = U = - (F - (((u >>> 0 < 4293918720) - 1) | 0)) | 0) >> - 21) + - N) | - 0), - ($ = K = - ((U = ((2097151 & b) << 11) | (d >>> 21)) + x) | 0), - (U = U >>> 0 > K >>> 0 ? (u + 1) | 0 : u), - (u = (G - (l = -2097152 & S)) | 0), - (G = (L - (((l >>> 0 > G >>> 0) + v) | 0)) | 0), - (v = u), - (u = ((u = k >> 21) + G) | 0), - (S = u = - (l = ((2097151 & k) << 11) | (c >>> 21)) >>> 0 > - (G = k = (v + l) | 0) >>> 0 - ? (u + 1) | 0 - : u), - (K = ((u = G) - -1048576) | 0), - (L = k = (S - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), - (N = u = k >> 21), - (u = eg( - (X = ((2097151 & k) << 11) | (K >>> 21)), - u, - -683901, - -1 - )), - (l = (p + F) | 0), - (l = - u >>> 0 > (k = (u + H) | 0) >>> 0 ? (l + 1) | 0 : l), - (j = ((F = k) - (u = -2097152 & d)) | 0), - (x = (l - (((u >>> 0 > F >>> 0) + b) | 0)) | 0), - (l = (eg(X, N, 136657, 0) + _) | 0), - (u = (m + p) | 0), - (u = l >>> 0 < _ >>> 0 ? (u + 1) | 0 : u), - (AA = ((F = l) - (l = -2097152 & M)) | 0), - (M = (u - (((l >>> 0 > F >>> 0) + Y) | 0)) | 0), - (u = eg(a, e, 666643, 0)), - (l = p), - (F = u), - (l = - (u = (IA >>> 7) & 2097151) >>> 0 > - (F = (F + u) | 0) >>> 0 - ? (l + 1) | 0 - : l), - (k = ((u = eg(t, q, 470296, 0)) + F) | 0), - (F = (p + l) | 0), - (F = u >>> 0 > k >>> 0 ? (F + 1) | 0 : F), - (l = eg(T, W, 654183, 0)), - (u = (p + F) | 0), - (u = - l >>> 0 > (k = (l + k) | 0) >>> 0 ? (u + 1) | 0 : u), - (l = eg(V, R, -997805, -1)), - (u = (p + u) | 0), - (Y = F = (l + k) | 0), - (F = l >>> 0 > F >>> 0 ? (u + 1) | 0 : u), - (u = 2097151 & (((3 & h) << 30) | (w >>> 2))), - (k = (eg(t, q, 666643, 0) + u) | 0), - (l = p), - (l = u >>> 0 > k >>> 0 ? (l + 1) | 0 : l), - (u = eg(T, W, 470296, 0)), - (l = (p + l) | 0), - (l = - u >>> 0 > (k = (u + k) | 0) >>> 0 ? (l + 1) | 0 : l), - (H = ((u = k) + (k = eg(V, R, 654183, 0))) | 0), - (u = (p + l) | 0), - (b = u = k >>> 0 > H >>> 0 ? (u + 1) | 0 : u), - (d = ((u = k = H) - -1048576) | 0), - (u = - ((l = - (_ = H = - (b - (((u >>> 0 < 4293918720) - 1) | 0)) | 0) >> - 21) + - F) | - 0), - (m = Y = - ((H = ((2097151 & _) << 11) | (d >>> 21)) + Y) | 0), - (F = u = H >>> 0 > Y >>> 0 ? (u + 1) | 0 : u), - (Y = ((u = Y) - -1048576) | 0), - (u = - ((l = - (H = v = - (F - (((u >>> 0 < 4293918720) - 1) | 0)) | 0) >> - 21) + - M) | - 0), - (IA = q = - ((v = ((2097151 & H) << 11) | (Y >>> 21)) + AA) | 0), - (v = v >>> 0 > q >>> 0 ? (u + 1) | 0 : u), - (u = eg(X, N, -997805, -1)), - (F = (p + F) | 0), - (F = - u >>> 0 > (l = (u + m) | 0) >>> 0 ? (F + 1) | 0 : F), - (gA = (l - (u = -2097152 & Y)) | 0), - (BA = (F - (((u >>> 0 > l >>> 0) + H) | 0)) | 0), - (u = (eg(X, N, 654183, 0) + k) | 0), - (l = (b + p) | 0), - (l = u >>> 0 < k >>> 0 ? (l + 1) | 0 : l), - (AA = ((F = u) - (u = -2097152 & d)) | 0), - (q = (l - (((u >>> 0 > F >>> 0) + _) | 0)) | 0), - (u = eg(T, W, 666643, 0)), - (F = p), - (l = u), - (F = - (u = (s >>> 5) & 2097151) >>> 0 > - (l = (l + u) | 0) >>> 0 - ? (F + 1) | 0 - : F), - (k = ((u = l) + (l = eg(V, R, 470296, 0))) | 0), - (u = (p + F) | 0), - (_ = k), - (F = l >>> 0 > k >>> 0 ? (u + 1) | 0 : u), - (l = 2097151 & y), - (k = (eg(V, R, 666643, 0) + l) | 0), - (u = p), - (H = k), - (Y = k = - ((m = u = l >>> 0 > k >>> 0 ? (u + 1) | 0 : u) - - ((((u = k) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (F = ((l = k >> 21) + F) | 0), - (b = F = - (u = - ((2097151 & k) << 11) | - ((M = (u - -1048576) | 0) >>> 21)) >>> - 0 > - (k = (u + _) | 0) >>> 0 - ? (F + 1) | 0 - : F), - (d = ((u = k) - -1048576) | 0), - (_ = F = (F - (((u >>> 0 < 4293918720) - 1) | 0)) | 0), - (u = ((l = F >> 21) + q) | 0), - (F = u = - (F = ((2097151 & F) << 11) | (d >>> 21)) >>> 0 > - (R = (F + AA) | 0) >>> 0 - ? (u + 1) | 0 - : u), - (u = (eg(X, N, 470296, 0) + k) | 0), - (l = (b + p) | 0), - (_ = - ((l = u >>> 0 < k >>> 0 ? (l + 1) | 0 : l) - - ((((k = -2097152 & d) >>> 0 > (b = u) >>> 0) + _) | - 0)) | - 0), - (b = u = (u - k) | 0), - (k = - ((l = eg(X, N, 666643, 0)) + - ((H - (u = -2097152 & M)) | 0)) | - 0), - (u = - (p + ((m - (((u >>> 0 > H >>> 0) + Y) | 0)) | 0)) | - 0), - (H = k), - (l = - ((l = - (u = l >>> 0 > k >>> 0 ? (u + 1) | 0 : u) >> 21) + - _) | - 0), - (W = k = - (b + (u = ((2097151 & u) << 11) | (k >>> 21))) | 0), - (F = - ((u = - (l = u >>> 0 > k >>> 0 ? (l + 1) | 0 : l) >> 21) + - F) | - 0), - (_ = k = - ((l = ((2097151 & l) << 11) | (k >>> 21)) + R) | 0), - (l = - (F = l >>> 0 > (u = k) >>> 0 ? (F + 1) | 0 : F) >> - 21), - (F = ((2097151 & F) << 11) | (u >>> 21)), - (u = (l + BA) | 0), - (Y = k = (F + gA) | 0), - (F = - (u = F >>> 0 > (l = k) >>> 0 ? (u + 1) | 0 : u) >> - 21), - (u = ((2097151 & u) << 11) | (l >>> 21)), - (l = (F + v) | 0), - (v = k = (u + IA) | 0), - (u = - ((u = - (l = u >>> 0 > (F = k) >>> 0 ? (l + 1) | 0 : l) >> - 21) + - x) | - 0), - (R = F = - ((l = ((2097151 & l) << 11) | (F >>> 21)) + j) | 0), - (l = - ((l = - (u = l >>> 0 > F >>> 0 ? (u + 1) | 0 : u) >> 21) + - U) | - 0), - (N = F = - ((u = ((2097151 & u) << 11) | (F >>> 21)) + $) | 0), - (u = (l = u >>> 0 > F >>> 0 ? (l + 1) | 0 : l) >> 21), - (l = ((2097151 & l) << 11) | (F >>> 21)), - (F = (u + O) | 0), - (M = k = (l + z) | 0), - (l = - (F = l >>> 0 > (u = k) >>> 0 ? (F + 1) | 0 : F) >> - 21), - (F = ((2097151 & F) << 11) | (u >>> 21)), - (u = (l + J) | 0), - (d = k = (F + Z) | 0), - (F = - (u = F >>> 0 > (l = k) >>> 0 ? (u + 1) | 0 : u) >> - 21), - (u = ((2097151 & u) << 11) | (l >>> 21)), - (l = (F + EA) | 0), - (J = k = (u + CA) | 0), - (u = - ((u = - (l = u >>> 0 > (F = k) >>> 0 ? (l + 1) | 0 : l) >> - 21) + - P) | - 0), - (U = F = - ((l = ((2097151 & l) << 11) | (F >>> 21)) + QA) | 0), - (l = (u = l >>> 0 > F >>> 0 ? (u + 1) | 0 : u) >> 21), - (k = ((2097151 & u) << 11) | (F >>> 21)), - (u = (G - (F = -2097152 & K)) | 0), - (F = - (((S - (((F >>> 0 > G >>> 0) + L) | 0)) | 0) + l) | - 0), - (L = k = (k + u) | 0), - (P = - ((2097151 & - (F = u >>> 0 > (l = k) >>> 0 ? (F + 1) | 0 : F)) << - 11) | - (l >>> 21)), - (m = u = F >> 21), - (l = 2097151 & H), - (F = (eg(P, u, 666643, 0) + l) | 0), - (u = p), - (b = F), - (k = u = l >>> 0 > F >>> 0 ? (u + 1) | 0 : u), - (C[0 | A] = F), - (C[(A + 1) | 0] = ((255 & u) << 24) | (F >>> 8)), - (u = 2097151 & W), - (F = (eg(P, m, 470296, 0) + u) | 0), - (l = p), - (l = u >>> 0 > F >>> 0 ? (l + 1) | 0 : l), - (H = F), - (G = ((2097151 & (F = k)) << 11) | (b >>> 21)), - (F = ((u = F >> 21) + l) | 0), - (F = - G >>> 0 > (S = (H + G) | 0) >>> 0 ? (F + 1) | 0 : F), - (G = S), - (C[(A + 4) | 0] = ((2047 & F) << 21) | (G >>> 11)), - (u = l = F), - (F = G), - (C[(A + 3) | 0] = ((7 & u) << 29) | (F >>> 3)), - (F = 2097151 & _), - (_ = (eg(P, m, 654183, 0) + F) | 0), - (u = p), - (u = F >>> 0 > _ >>> 0 ? (u + 1) | 0 : u), - (F = _), - (_ = ((2097151 & l) << 11) | (G >>> 21)), - (l = ((l >> 21) + u) | 0), - (l = - _ >>> 0 > (S = (F + _) | 0) >>> 0 ? (l + 1) | 0 : l), - (_ = S), - (u = l), - (C[(A + 6) | 0] = ((63 & u) << 26) | (_ >>> 6)), - (H = 0), - (F = 31 & (((65535 & k) << 16) | (b >>> 16))), - (l = b = 2097151 & G), - (C[(A + 2) | 0] = F | (l << 5)), - (F = 2097151 & Y), - (G = (eg(P, m, -997805, -1) + F) | 0), - (l = p), - (F = l = F >>> 0 > G >>> 0 ? (l + 1) | 0 : l), - (F = ((l = u >> 21) + F) | 0), - (Y = G = - ((u = ((2097151 & u) << 11) | (_ >>> 21)) + G) | 0), - (F = u >>> 0 > G >>> 0 ? (F + 1) | 0 : F), - (C[(A + 9) | 0] = ((511 & F) << 23) | (G >>> 9)), - (u = l = F), - (F = G), - (C[(A + 8) | 0] = ((1 & u) << 31) | (F >>> 1)), - (G = 0), - (F = _ &= 2097151), - (C[(A + 5) | 0] = - ((524287 & H) << 13) | (b >>> 19) | (F << 2)), - (F = 2097151 & v), - (H = (eg(P, m, 136657, 0) + F) | 0), - (u = p), - (u = - ((u = F >>> 0 > H >>> 0 ? (u + 1) | 0 : u) + - (F = l >> 21)) | - 0), - (b = H = - ((l = ((2097151 & l) << 11) | (Y >>> 21)) + H) | 0), - (u = l >>> 0 > H >>> 0 ? (u + 1) | 0 : u), - (l = H), - (C[(A + 12) | 0] = ((4095 & u) << 20) | (l >>> 12)), - (F = u), - (C[(A + 11) | 0] = ((15 & u) << 28) | (l >>> 4)), - (H = 0), - (l = v = 2097151 & Y), - (C[(A + 7) | 0] = - ((16383 & G) << 18) | (_ >>> 14) | (l << 7)), - (u = 2097151 & R), - (G = (eg(P, m, -683901, -1) + u) | 0), - (l = p), - (l = u >>> 0 > G >>> 0 ? (l + 1) | 0 : l), - (l = ((u = F >> 21) + l) | 0), - (_ = G = - ((F = ((2097151 & F) << 11) | (b >>> 21)) + G) | 0), - (u = l = F >>> 0 > G >>> 0 ? (l + 1) | 0 : l), - (C[(A + 14) | 0] = ((127 & u) << 25) | (G >>> 7)), - (G = 0), - (F = Y = 2097151 & b), - (C[(A + 10) | 0] = - ((131071 & H) << 15) | (v >>> 17) | (F << 4)), - (l = u >> 21), - (F = - (u = ((2097151 & u) << 11) | (_ >>> 21)) >>> 0 > - (b = (u + (2097151 & N)) | 0) >>> 0 - ? (l + 1) | 0 - : l), - (C[(A + 17) | 0] = ((1023 & F) << 22) | (b >>> 10)), - (u = F), - (F = b), - (C[(A + 16) | 0] = ((3 & u) << 30) | (F >>> 2)), - (F = m = 2097151 & _), - (C[(A + 13) | 0] = - ((1048575 & G) << 12) | (Y >>> 20) | (F << 1)), - (F = ((2097151 & u) << 11) | (b >>> 21)), - (u >>= 21), - (u = - F >>> 0 > (_ = (F + (2097151 & M)) | 0) >>> 0 - ? (u + 1) | 0 - : u), - (l = _), - (C[(A + 20) | 0] = ((8191 & u) << 19) | (l >>> 13)), - (C[(A + 19) | 0] = ((31 & u) << 27) | (l >>> 5)), - (l = Y = 2097151 & b), - (C[(A + 15) | 0] = - ((32767 & H) << 17) | (m >>> 15) | (l << 6)), - (k = ((2097151 & u) << 11) | (_ >>> 21)), - (u = l = u >> 21), - (k = u = - k >>> 0 > (m = (k + (2097151 & d)) | 0) >>> 0 - ? (u + 1) | 0 - : u), - (C[(A + 21) | 0] = m), - (u = _), - (C[(A + 18) | 0] = - ((262143 & G) << 14) | (Y >>> 18) | (u << 3)), - (u = k), - (C[(A + 22) | 0] = ((255 & u) << 24) | (m >>> 8)), - (F = u), - (u >>= 21), - (F = - (_ = - ((H = ((2097151 & F) << 11) | (m >>> 21)) + - (2097151 & J)) | - 0) >>> - 0 < - H >>> 0 - ? (u + 1) | 0 - : u), - (C[((l = A) + 25) | 0] = - ((2047 & F) << 21) | (_ >>> 11)), - (u = F), - (F = _), - (C[(l + 24) | 0] = ((7 & u) << 29) | (F >>> 3)), - (F = l), - (H = ((2097151 & u) << 11) | (_ >>> 21)), - (u >>= 21), - (l = u = - H >>> 0 > (G = b = (H + (2097151 & U)) | 0) >>> 0 - ? (u + 1) | 0 - : u), - (C[(F + 27) | 0] = ((63 & u) << 26) | (G >>> 6)), - (H = 0), - (u = b = 2097151 & _), - (C[(F + 23) | 0] = - (31 & (((65535 & k) << 16) | (m >>> 16))) | (u << 5)), - (l = (u = l) >> 21), - (l = - (u = ((2097151 & u) << 11) | (G >>> 21)) >>> 0 > - (k = (u + (2097151 & L)) | 0) >>> 0 - ? (l + 1) | 0 - : l), - (F = k), - (C[(A + 31) | 0] = ((131071 & l) << 15) | (F >>> 17)), - (u = l), - (C[(A + 30) | 0] = ((511 & u) << 23) | (F >>> 9)), - (C[(A + 29) | 0] = ((1 & u) << 31) | (F >>> 1)), - (l = 0), - (G &= 2097151), - (C[(A + 26) | 0] = - ((524287 & H) << 13) | (b >>> 19) | (G << 2)), - (C[(A + 28) | 0] = - ((16383 & l) << 18) | (G >>> 14) | (F << 7)) - } - function k(A) { - var I, - g = 0, - B = 0, - Q = 0, - C = 0, - E = 0, - r = 0, - o = 0, - t = 0, - f = 0, - c = 0, - y = 0, - s = 0, - w = 0 - h = I = (h - 16) | 0 - A: { - I: { - g: { - B: { - Q: { - C: { - E: { - i: { - n: { - a: { - r: { - o: { - if ((A |= 0) >>> 0 <= 244) { - if ( - 3 & - (g = - ((E = i[8961]) >>> - (B = - ((t = - A >>> 0 < 11 - ? 16 - : (A + 11) & -8) >>> - 3) | - 0)) | - 0) - ) { - ;(A = - ((C = - i[ - (35892 + - (g = - (Q = - (B + - (1 & - (-1 ^ g))) | - 0) << 3)) >> - 2 - ]) + - 8) | - 0), - (0 | - (B = i[(C + 8) >> 2])) != - (0 | (g = (g + 35884) | 0)) - ? ((i[(B + 12) >> 2] = g), - (i[(g + 8) >> 2] = B)) - : ((s = 35844), - (w = vI(-2, Q) & E), - (i[s >> 2] = w)), - (g = Q << 3), - (i[(C + 4) >> 2] = 3 | g), - (i[ - (4 + (g = (g + C) | 0)) >> - 2 - ] = 1 | i[(g + 4) >> 2]) - break A - } - if ( - (c = i[8963]) >>> 0 >= - t >>> 0 - ) - break o - if (g) { - ;(B = A = - ((g = - (((0 - - (A = - ((0 - (A = 2 << B)) | - A) & - (g << B))) & - A) - - 1) | - 0) >>> - 12) & - 16), - (B |= A = - ((g = (g >>> A) | 0) >>> - 5) & - 8), - (B |= A = - ((g = (g >>> A) | 0) >>> - 2) & - 4), - (r = - i[ - (35892 + - (A = - (B = - (((B |= A = - ((g = - (g >>> A) | - 0) >>> - 1) & - 2) | - (A = - ((g = - (g >>> A) | - 0) >>> - 1) & - 1)) + - ((g >>> A) | - 0)) | - 0) << 3)) >> - 2 - ]), - (0 | - (g = i[(r + 8) >> 2])) != - (0 | (A = (A + 35884) | 0)) - ? ((i[(g + 12) >> 2] = A), - (i[(A + 8) >> 2] = g)) - : ((E = vI(-2, B) & E), - (i[8961] = E)), - (A = (r + 8) | 0), - (i[(r + 4) >> 2] = 3 | t), - (C = - ((g = B << 3) - t) | 0), - (i[ - (4 + (Q = (r + t) | 0)) >> - 2 - ] = 1 | C), - (i[(g + r) >> 2] = C), - c && - ((B = - (35884 + - ((g = - (c >>> 3) | 0) << - 3)) | - 0), - (r = i[8966]), - (g = 1 << g) & E - ? (g = i[(B + 8) >> 2]) - : ((i[8961] = g | E), - (g = B)), - (i[(B + 8) >> 2] = r), - (i[(g + 12) >> 2] = r), - (i[(r + 12) >> 2] = B), - (i[(r + 8) >> 2] = g)), - (i[8966] = Q), - (i[8963] = C) - break A - } - if (!(o = i[8962])) break o - for ( - B = A = - ((g = - ((o & (0 - o)) - 1) | - 0) >>> - 12) & - 16, - B |= A = - ((g = (g >>> A) | 0) >>> - 5) & - 8, - B |= A = - ((g = (g >>> A) | 0) >>> - 2) & - 4, - g = - i[ - (36148 + - ((((B |= A = - ((g = - (g >>> A) | 0) >>> - 1) & - 2) | - (A = - ((g = - (g >>> A) | - 0) >>> - 1) & - 1)) + - ((g >>> A) | 0)) << - 2)) >> - 2 - ], - C = - ((-8 & i[(g + 4) >> 2]) - - t) | - 0, - B = g; - (A = i[(B + 16) >> 2]) || - (A = i[(B + 20) >> 2]); - - ) - (C = (Q = - (B = - ((-8 & i[(A + 4) >> 2]) - - t) | - 0) >>> - 0 < - C >>> 0) - ? B - : C), - (g = Q ? A : g), - (B = A) - if ( - (f = (g + t) | 0) >>> 0 <= - g >>> 0 - ) - break r - if ( - ((y = i[(g + 24) >> 2]), - (0 | - (Q = i[(g + 12) >> 2])) != - (0 | g)) - ) { - ;(A = i[(g + 8) >> 2]), - (i[(A + 12) >> 2] = Q), - (i[(Q + 8) >> 2] = A) - break I - } - if ( - !(A = - i[(B = (g + 20) | 0) >> 2]) - ) { - if (!(A = i[(g + 16) >> 2])) - break a - B = (g + 16) | 0 - } - for ( - ; - (r = B), - (Q = A), - (A = - i[ - (B = (A + 20) | 0) >> 2 - ]) || - ((B = (Q + 16) | 0), - (A = i[(Q + 16) >> 2])); - - ); - i[r >> 2] = 0 - break I - } - if ( - ((t = -1), - !(A >>> 0 > 4294967231) && - ((t = - -8 & (A = (A + 11) | 0)), - (f = i[8962]))) - ) { - ;(E = 31), - (C = (0 - t) | 0), - t >>> 0 <= 16777215 && - ((A = (A >>> 8) | 0), - (A <<= r = - ((A + 1048320) >>> 16) & - 8), - (E = - (28 + - (((A = - (((((A <<= B = - ((A + 520192) >>> - 16) & - 4) << - (g = - ((A + 245760) >>> - 16) & - 2)) >>> - 15) | - 0) - - (g | B | r)) | - 0) << - 1) | - ((t >>> (A + 21)) & - 1))) | - 0)) - e: { - t: { - if ( - (B = - i[ - (36148 + (E << 2)) >> - 2 - ]) - ) - for ( - A = 0, - g = - t << - (31 == (0 | E) - ? 0 - : (25 - - ((E >>> 1) | - 0)) | - 0); - ; - - ) { - if ( - !( - (r = - ((-8 & - i[ - (B + 4) >> 2 - ]) - - t) | - 0) >>> - 0 >= - C >>> 0 || - ((Q = B), (C = r)) - ) - ) { - ;(C = 0), (A = B) - break t - } - if ( - ((r = - i[(B + 20) >> 2]), - (B = - i[ - (16 + - ((((g >>> 29) & - 4) + - B) | - 0)) >> - 2 - ]), - (A = r - ? (0 | r) == (0 | B) - ? A - : r - : A), - (g <<= 1), - !B) - ) - break - } - else A = 0 - if (!(A | Q)) { - if ( - !(A = - ((0 - (A = 2 << E)) | - A) & - f) - ) - break o - ;(B = A = - ((g = - ((A & (0 - A)) - 1) | - 0) >>> - 12) & - 16), - (B |= A = - ((g = - (g >>> A) | 0) >>> - 5) & - 8), - (B |= A = - ((g = - (g >>> A) | 0) >>> - 2) & - 4), - (A = - i[ - (36148 + - ((((B |= A = - ((g = - (g >>> A) | - 0) >>> - 1) & - 2) | - (A = - ((g = - (g >>> A) | - 0) >>> - 1) & - 1)) + - ((g >>> A) | - 0)) << - 2)) >> - 2 - ]) - } - if (!A) break e - } - for ( - ; - (C = (B = - (g = - ((-8 & - i[(A + 4) >> 2]) - - t) | - 0) >>> - 0 < - C >>> 0) - ? g - : C), - (Q = B ? A : Q), - (A = - (g = - i[(A + 16) >> 2]) || - i[(A + 20) >> 2]); - - ); - } - if ( - !( - !Q | - ((i[8963] - t) >>> 0 <= - C >>> 0) - ) - ) { - if ( - (o = (Q + t) | 0) >>> 0 <= - Q >>> 0 - ) - break r - if ( - ((E = i[(Q + 24) >> 2]), - (0 | Q) != - (0 | - (g = i[(Q + 12) >> 2]))) - ) { - ;(A = i[(Q + 8) >> 2]), - (i[(A + 12) >> 2] = g), - (i[(g + 8) >> 2] = A) - break g - } - if ( - !(A = - i[ - (B = (Q + 20) | 0) >> 2 - ]) - ) { - if (!(A = i[(Q + 16) >> 2])) - break n - B = (Q + 16) | 0 - } - for ( - ; - (r = B), - (g = A), - (A = - i[ - (B = (A + 20) | 0) >> - 2 - ]) || - ((B = (g + 16) | 0), - (A = i[(g + 16) >> 2])); - - ); - i[r >> 2] = 0 - break g - } - } - } - if ( - (B = i[8963]) >>> 0 >= - t >>> 0 - ) { - ;(Q = i[8966]), - (g = (B - t) | 0) >>> 0 >= 16 - ? ((i[8963] = g), - (A = (Q + t) | 0), - (i[8966] = A), - (i[(A + 4) >> 2] = 1 | g), - (i[(B + Q) >> 2] = g), - (i[(Q + 4) >> 2] = 3 | t)) - : ((i[8966] = 0), - (i[8963] = 0), - (i[(Q + 4) >> 2] = 3 | B), - (i[ - (4 + (A = (B + Q) | 0)) >> - 2 - ] = 1 | i[(A + 4) >> 2])), - (A = (Q + 8) | 0) - break A - } - if ((o = i[8964]) >>> 0 > t >>> 0) { - ;(g = (o - t) | 0), - (i[8964] = g), - (A = ((B = i[8967]) + t) | 0), - (i[8967] = A), - (i[(A + 4) >> 2] = 1 | g), - (i[(B + 4) >> 2] = 3 | t), - (A = (B + 8) | 0) - break A - } - if ( - ((A = 0), - (g = f = (t + 47) | 0), - i[9079] - ? (B = i[9081]) - : ((i[9082] = -1), - (i[9083] = -1), - (i[9080] = 4096), - (i[9081] = 4096), - (i[9079] = - ((I + 12) & -16) ^ - 1431655768), - (i[9084] = 0), - (i[9072] = 0), - (B = 4096)), - (B = - (r = (g + B) | 0) & - (C = (0 - B) | 0)) >>> - 0 <= - t >>> 0) - ) - break A - if ( - (Q = i[9071]) && - (Q >>> 0 < - (E = - ((g = i[9069]) + B) | 0) >>> - 0) | - (g >>> 0 >= E >>> 0) - ) - break A - if (4 & n[36288]) break C - o: { - e: { - if ((Q = i[8967])) - for (A = 36292; ; ) { - if ( - Q >>> 0 < - ((g = i[A >> 2]) + - i[(A + 4) >> 2]) >>> - 0 && - g >>> 0 <= Q >>> 0 - ) - break e - if (!(A = i[(A + 8) >> 2])) - break - } - if (-1 == (0 | (g = II(0)))) - break E - if ( - ((E = B), - (A = - ((Q = i[9080]) - 1) | 0) & - g && - (E = - (((B - g) | 0) + - ((A + g) & (0 - Q))) | - 0), - (E >>> 0 <= t >>> 0) | - (E >>> 0 > 2147483646)) - ) - break E - if ( - (Q = i[9071]) && - (Q >>> 0 < - (C = - ((A = i[9069]) + E) | - 0) >>> - 0) | - (A >>> 0 >= C >>> 0) - ) - break E - if ( - (0 | g) != - (0 | (A = II(E))) - ) - break o - break Q - } - if ( - (E = C & (r - o)) >>> 0 > - 2147483646 - ) - break E - if ( - (0 | (g = II(E))) == - ((i[A >> 2] + i[(A + 4) >> 2]) | - 0) - ) - break i - A = g - } - if ( - !( - (-1 == (0 | A)) | - ((t + 48) >>> 0 <= E >>> 0) - ) - ) { - if ( - (g = - ((g = i[9081]) + - ((f - E) | 0)) & - (0 - g)) >>> - 0 > - 2147483646 - ) { - g = A - break Q - } - if (-1 != (0 | II(g))) { - ;(E = (g + E) | 0), (g = A) - break Q - } - II((0 - E) | 0) - break E - } - if (((g = A), -1 != (0 | A))) - break Q - break E - } - e() - } - Q = 0 - break I - } - g = 0 - break g - } - if (-1 != (0 | g)) break Q - } - i[9072] = 4 | i[9072] - } - if (B >>> 0 > 2147483646) break B - if ( - ((g = II(B)) >>> 0 >= (A = II(0)) >>> 0) | - (-1 == (0 | g)) | - (-1 == (0 | A)) - ) - break B - if ((E = (A - g) | 0) >>> 0 <= (t + 40) >>> 0) - break B - } - ;(A = (i[9069] + E) | 0), - (i[9069] = A), - A >>> 0 > a[9070] && (i[9070] = A) - Q: { - C: { - E: { - if ((r = i[8967])) { - for (A = 36292; ; ) { - if ( - (((Q = i[A >> 2]) + - (B = i[(A + 4) >> 2])) | - 0) == - (0 | g) - ) - break E - if (!(A = i[(A + 8) >> 2])) break - } - break C - } - for ( - ((A = i[8965]) >>> 0 <= g >>> 0 && A) || - (i[8965] = g), - A = 0, - i[9074] = E, - i[9073] = g, - i[8969] = -1, - i[8970] = i[9079], - i[9076] = 0; - (B = (35884 + (Q = A << 3)) | 0), - (i[(Q + 35892) >> 2] = B), - (i[(Q + 35896) >> 2] = B), - 32 != (0 | (A = (A + 1) | 0)); - - ); - ;(B = - ((Q = (E - 40) | 0) - - (A = (g + 8) & 7 ? (-8 - g) & 7 : 0)) | - 0), - (i[8964] = B), - (A = (A + g) | 0), - (i[8967] = A), - (i[(A + 4) >> 2] = 1 | B), - (i[(4 + ((g + Q) | 0)) >> 2] = 40), - (i[8968] = i[9083]) - break Q - } - if ( - !( - (8 & n[(A + 12) | 0]) | - (g >>> 0 <= r >>> 0) | - (Q >>> 0 > r >>> 0) - ) - ) { - ;(i[(A + 4) >> 2] = B + E), - (B = - ((A = (r + 8) & 7 ? (-8 - r) & 7 : 0) + - r) | - 0), - (i[8967] = B), - (A = ((g = (i[8964] + E) | 0) - A) | 0), - (i[8964] = A), - (i[(B + 4) >> 2] = 1 | A), - (i[(4 + ((g + r) | 0)) >> 2] = 40), - (i[8968] = i[9083]) - break Q - } - } - ;(Q = i[8965]) >>> 0 > g >>> 0 && - ((i[8965] = g), (Q = 0)), - (B = (g + E) | 0), - (A = 36292) - C: { - E: { - i: { - n: { - a: { - r: { - for (;;) { - if ((0 | B) != i[A >> 2]) { - if ((A = i[(A + 8) >> 2])) - continue - break r - } - break - } - if (!(8 & n[(A + 12) | 0])) break a - } - for (A = 36292; ; ) { - if ( - (B = i[A >> 2]) >>> 0 <= - r >>> 0 && - (C = - (B + i[(A + 4) >> 2]) | 0) >>> - 0 > - r >>> 0 - ) - break n - A = i[(A + 8) >> 2] - } - } - if ( - ((i[A >> 2] = g), - (i[(A + 4) >> 2] = - i[(A + 4) >> 2] + E), - (i[ - (4 + - (f = - (((g + 8) & 7 - ? (-8 - g) & 7 - : 0) + - g) | - 0)) >> - 2 - ] = 3 | t), - (B = - ((((E = - (B + - ((B + 8) & 7 - ? (-8 - B) & 7 - : 0)) | - 0) - - f) | - 0) - - t) | - 0), - (o = (t + f) | 0), - (0 | E) == (0 | r)) - ) { - ;(i[8967] = o), - (A = (i[8964] + B) | 0), - (i[8964] = A), - (i[(o + 4) >> 2] = 1 | A) - break E - } - if (i[8966] == (0 | E)) { - ;(i[8966] = o), - (A = (i[8963] + B) | 0), - (i[8963] = A), - (i[(o + 4) >> 2] = 1 | A), - (i[(A + o) >> 2] = A) - break E - } - if (1 == (3 & (A = i[(E + 4) >> 2]))) { - r = -8 & A - a: if (A >>> 0 <= 255) { - if ( - ((Q = i[(E + 8) >> 2]), - (A = (A >>> 3) | 0), - (0 | (g = i[(E + 12) >> 2])) == - (0 | Q)) - ) { - ;(s = 35844), - (w = i[8961] & vI(-2, A)), - (i[s >> 2] = w) - break a - } - ;(i[(Q + 12) >> 2] = g), - (i[(g + 8) >> 2] = Q) - } else { - if ( - ((t = i[(E + 24) >> 2]), - (0 | E) == - (0 | (g = i[(E + 12) >> 2]))) - ) - if ( - (C = - i[(A = (E + 20) | 0) >> 2]) || - (C = i[(A = (E + 16) | 0) >> 2]) - ) { - for ( - ; - (Q = A), - (C = - i[ - (A = - ((g = C) + 20) | 0) >> - 2 - ]) || - ((A = (g + 16) | 0), - (C = i[(g + 16) >> 2])); - - ); - i[Q >> 2] = 0 - } else g = 0 - else - (A = i[(E + 8) >> 2]), - (i[(A + 12) >> 2] = g), - (i[(g + 8) >> 2] = A) - if (t) { - Q = i[(E + 28) >> 2] - r: { - if ( - i[ - (A = - (36148 + (Q << 2)) | 0) >> - 2 - ] == - (0 | E) - ) { - if (((i[A >> 2] = g), g)) - break r - ;(s = 35848), - (w = i[8962] & vI(-2, Q)), - (i[s >> 2] = w) - break a - } - if ( - ((i[ - (t + - (i[(t + 16) >> 2] == - (0 | E) - ? 16 - : 20)) >> - 2 - ] = g), - !g) - ) - break a - } - ;(i[(g + 24) >> 2] = t), - (A = i[(E + 16) >> 2]) && - ((i[(g + 16) >> 2] = A), - (i[(A + 24) >> 2] = g)), - (A = i[(E + 20) >> 2]) && - ((i[(g + 20) >> 2] = A), - (i[(A + 24) >> 2] = g)) - } - } - ;(E = (E + r) | 0), (B = (B + r) | 0) - } - if ( - ((i[(E + 4) >> 2] = - -2 & i[(E + 4) >> 2]), - (i[(o + 4) >> 2] = 1 | B), - (i[(B + o) >> 2] = B), - B >>> 0 <= 255) - ) { - ;(g = - (35884 + - ((A = (B >>> 3) | 0) << 3)) | - 0), - (B = i[8961]) & (A = 1 << A) - ? (A = i[(g + 8) >> 2]) - : ((i[8961] = A | B), (A = g)), - (i[(g + 8) >> 2] = o), - (i[(A + 12) >> 2] = o), - (i[(o + 12) >> 2] = g), - (i[(o + 8) >> 2] = A) - break E - } - if ( - ((A = 31), - B >>> 0 <= 16777215 && - ((A = (B >>> 8) | 0), - (A <<= C = - ((A + 1048320) >>> 16) & 8), - (A = - (28 + - (((A = - (((((A <<= Q = - ((A + 520192) >>> 16) & - 4) << - (g = - ((A + 245760) >>> 16) & - 2)) >>> - 15) | - 0) - - (g | Q | C)) | - 0) << - 1) | - ((B >>> (A + 21)) & 1))) | - 0)), - (i[(o + 28) >> 2] = A), - (i[(o + 16) >> 2] = 0), - (i[(o + 20) >> 2] = 0), - (C = (36148 + (A << 2)) | 0), - (Q = i[8962]) & (g = 1 << A)) - ) { - for ( - A = - B << - (31 == (0 | A) - ? 0 - : (25 - ((A >>> 1) | 0)) | 0), - g = i[C >> 2]; - ; - - ) { - if ( - ((Q = g), - (-8 & i[(g + 4) >> 2]) == (0 | B)) - ) - break i - if ( - ((g = (A >>> 29) | 0), - (A <<= 1), - !(g = - i[ - (16 + - (C = (Q + (4 & g)) | 0)) >> - 2 - ])) - ) - break - } - ;(i[(C + 16) >> 2] = o), - (i[(o + 24) >> 2] = Q) - } else - (i[8962] = g | Q), - (i[C >> 2] = o), - (i[(o + 24) >> 2] = C) - ;(i[(o + 12) >> 2] = o), - (i[(o + 8) >> 2] = o) - break E - } - for ( - B = - ((Q = (E - 40) | 0) - - (A = - (g + 8) & 7 ? (-8 - g) & 7 : 0)) | - 0, - i[8964] = B, - A = (A + g) | 0, - i[8967] = A, - i[(A + 4) >> 2] = 1 | B, - i[(4 + ((g + Q) | 0)) >> 2] = 40, - i[8968] = i[9083], - i[ - ((B = - (A = - (((C + - ((C - 39) & 7 - ? (39 - C) & 7 - : 0)) | - 0) - - 47) | - 0) >>> - 0 < - (r + 16) >>> 0 - ? r - : A) + - 4) >> - 2 - ] = 27, - A = i[9076], - i[(B + 16) >> 2] = i[9075], - i[(B + 20) >> 2] = A, - A = i[9074], - i[(B + 8) >> 2] = i[9073], - i[(B + 12) >> 2] = A, - i[9075] = B + 8, - i[9074] = E, - i[9073] = g, - i[9076] = 0, - A = (B + 24) | 0; - (i[(A + 4) >> 2] = 7), - (g = (A + 8) | 0), - (A = (A + 4) | 0), - g >>> 0 < C >>> 0; - - ); - if ((0 | B) == (0 | r)) break Q - if ( - ((i[(B + 4) >> 2] = - -2 & i[(B + 4) >> 2]), - (C = (B - r) | 0), - (i[(r + 4) >> 2] = 1 | C), - (i[B >> 2] = C), - C >>> 0 <= 255) - ) { - ;(g = - (35884 + ((A = (C >>> 3) | 0) << 3)) | - 0), - (B = i[8961]) & (A = 1 << A) - ? (A = i[(g + 8) >> 2]) - : ((i[8961] = A | B), (A = g)), - (i[(g + 8) >> 2] = r), - (i[(A + 12) >> 2] = r), - (i[(r + 12) >> 2] = g), - (i[(r + 8) >> 2] = A) - break Q - } - if ( - ((A = 31), - (i[(r + 16) >> 2] = 0), - (i[(r + 20) >> 2] = 0), - C >>> 0 <= 16777215 && - ((A = (C >>> 8) | 0), - (A <<= Q = - ((A + 1048320) >>> 16) & 8), - (A = - (28 + - (((A = - (((((A <<= B = - ((A + 520192) >>> 16) & 4) << - (g = - ((A + 245760) >>> 16) & - 2)) >>> - 15) | - 0) - - (g | B | Q)) | - 0) << - 1) | - ((C >>> (A + 21)) & 1))) | - 0)), - (i[(r + 28) >> 2] = A), - (Q = (36148 + (A << 2)) | 0), - (B = i[8962]) & (g = 1 << A)) - ) { - for ( - A = - C << - (31 == (0 | A) - ? 0 - : (25 - ((A >>> 1) | 0)) | 0), - g = i[Q >> 2]; - ; - - ) { - if ( - ((B = g), - (0 | C) == (-8 & i[(g + 4) >> 2])) - ) - break C - if ( - ((g = (A >>> 29) | 0), - (A <<= 1), - !(g = - i[ - (16 + - (Q = (B + (4 & g)) | 0)) >> - 2 - ])) - ) - break - } - ;(i[(Q + 16) >> 2] = r), - (i[(r + 24) >> 2] = B) - } else - (i[8962] = g | B), - (i[Q >> 2] = r), - (i[(r + 24) >> 2] = Q) - ;(i[(r + 12) >> 2] = r), - (i[(r + 8) >> 2] = r) - break Q - } - ;(A = i[(Q + 8) >> 2]), - (i[(A + 12) >> 2] = o), - (i[(Q + 8) >> 2] = o), - (i[(o + 24) >> 2] = 0), - (i[(o + 12) >> 2] = Q), - (i[(o + 8) >> 2] = A) - } - A = (f + 8) | 0 - break A - } - ;(A = i[(B + 8) >> 2]), - (i[(A + 12) >> 2] = r), - (i[(B + 8) >> 2] = r), - (i[(r + 24) >> 2] = 0), - (i[(r + 12) >> 2] = B), - (i[(r + 8) >> 2] = A) - } - if (!((A = i[8964]) >>> 0 <= t >>> 0)) { - ;(g = (A - t) | 0), - (i[8964] = g), - (A = ((B = i[8967]) + t) | 0), - (i[8967] = A), - (i[(A + 4) >> 2] = 1 | g), - (i[(B + 4) >> 2] = 3 | t), - (A = (B + 8) | 0) - break A - } - } - ;(i[8960] = 48), (A = 0) - break A - } - g: if (E) { - B = i[(Q + 28) >> 2] - B: { - if ( - i[(A = (36148 + (B << 2)) | 0) >> 2] == - (0 | Q) - ) { - if (((i[A >> 2] = g), g)) break B - ;(f = vI(-2, B) & f), (i[8962] = f) - break g - } - if ( - ((i[ - (E + - (i[(E + 16) >> 2] == (0 | Q) ? 16 : 20)) >> - 2 - ] = g), - !g) - ) - break g - } - ;(i[(g + 24) >> 2] = E), - (A = i[(Q + 16) >> 2]) && - ((i[(g + 16) >> 2] = A), - (i[(A + 24) >> 2] = g)), - (A = i[(Q + 20) >> 2]) && - ((i[(g + 20) >> 2] = A), (i[(A + 24) >> 2] = g)) - } - g: if (C >>> 0 <= 15) - (A = (C + t) | 0), - (i[(Q + 4) >> 2] = 3 | A), - (i[(4 + (A = (A + Q) | 0)) >> 2] = - 1 | i[(A + 4) >> 2]) - else if ( - ((i[(Q + 4) >> 2] = 3 | t), - (i[(o + 4) >> 2] = 1 | C), - (i[(C + o) >> 2] = C), - C >>> 0 <= 255) - ) - (g = (35884 + ((A = (C >>> 3) | 0) << 3)) | 0), - (B = i[8961]) & (A = 1 << A) - ? (A = i[(g + 8) >> 2]) - : ((i[8961] = A | B), (A = g)), - (i[(g + 8) >> 2] = o), - (i[(A + 12) >> 2] = o), - (i[(o + 12) >> 2] = g), - (i[(o + 8) >> 2] = A) - else { - ;(A = 31), - C >>> 0 <= 16777215 && - ((A = (C >>> 8) | 0), - (A <<= r = ((A + 1048320) >>> 16) & 8), - (A = - (28 + - (((A = - (((((A <<= B = - ((A + 520192) >>> 16) & 4) << - (g = ((A + 245760) >>> 16) & 2)) >>> - 15) | - 0) - - (g | B | r)) | - 0) << - 1) | - ((C >>> (A + 21)) & 1))) | - 0)), - (i[(o + 28) >> 2] = A), - (i[(o + 16) >> 2] = 0), - (i[(o + 20) >> 2] = 0), - (B = (36148 + (A << 2)) | 0) - B: { - if ((g = 1 << A) & f) { - for ( - A = - C << - (31 == (0 | A) - ? 0 - : (25 - ((A >>> 1) | 0)) | 0), - t = i[B >> 2]; - ; - - ) { - if ((-8 & i[((g = t) + 4) >> 2]) == (0 | C)) - break B - if ( - ((B = (A >>> 29) | 0), - (A <<= 1), - !(t = - i[(16 + (B = (g + (4 & B)) | 0)) >> 2])) - ) - break - } - ;(i[(B + 16) >> 2] = o), (i[(o + 24) >> 2] = g) - } else - (i[8962] = g | f), - (i[B >> 2] = o), - (i[(o + 24) >> 2] = B) - ;(i[(o + 12) >> 2] = o), (i[(o + 8) >> 2] = o) - break g - } - ;(A = i[(g + 8) >> 2]), - (i[(A + 12) >> 2] = o), - (i[(g + 8) >> 2] = o), - (i[(o + 24) >> 2] = 0), - (i[(o + 12) >> 2] = g), - (i[(o + 8) >> 2] = A) - } - A = (Q + 8) | 0 - break A - } - I: if (y) { - B = i[(g + 28) >> 2] - g: { - if ( - i[(A = (36148 + (B << 2)) | 0) >> 2] == - (0 | g) - ) { - if (((i[A >> 2] = Q), Q)) break g - ;(s = 35848), (w = vI(-2, B) & o), (i[s >> 2] = w) - break I - } - if ( - ((i[ - ((i[(y + 16) >> 2] == (0 | g) ? 16 : 20) + y) >> - 2 - ] = Q), - !Q) - ) - break I - } - ;(i[(Q + 24) >> 2] = y), - (A = i[(g + 16) >> 2]) && - ((i[(Q + 16) >> 2] = A), (i[(A + 24) >> 2] = Q)), - (A = i[(g + 20) >> 2]) && - ((i[(Q + 20) >> 2] = A), (i[(A + 24) >> 2] = Q)) - } - C >>> 0 <= 15 - ? ((A = (C + t) | 0), - (i[(g + 4) >> 2] = 3 | A), - (i[(4 + (A = (A + g) | 0)) >> 2] = - 1 | i[(A + 4) >> 2])) - : ((i[(g + 4) >> 2] = 3 | t), - (i[(f + 4) >> 2] = 1 | C), - (i[(C + f) >> 2] = C), - c && - ((B = (35884 + ((A = (c >>> 3) | 0) << 3)) | 0), - (Q = i[8966]), - (A = 1 << A) & E - ? (A = i[(B + 8) >> 2]) - : ((i[8961] = A | E), (A = B)), - (i[(B + 8) >> 2] = Q), - (i[(A + 12) >> 2] = Q), - (i[(Q + 12) >> 2] = B), - (i[(Q + 8) >> 2] = A)), - (i[8966] = f), - (i[8963] = C)), - (A = (g + 8) | 0) - } - return (h = (I + 16) | 0), 0 | A - } - function _(A, I, g) { - var B, - Q, - C, - E, - n, - a, - o, - e, - t, - f, - c, - y, - s, - w, - h, - D, - u, - l, - F, - G, - k, - _, - H, - Y, - b, - m, - v, - U, - S, - N, - M, - d, - P, - R, - J, - x, - L, - K, - q, - X, - V, - W, - T, - j, - Z, - O, - z, - $, - AA, - IA, - gA, - BA, - QA, - CA, - EA = 0, - iA = 0, - nA = 0, - aA = 0, - rA = 0, - oA = 0, - eA = 0, - tA = 0, - fA = 0, - cA = 0, - yA = 0, - sA = 0, - wA = 0, - hA = 0, - DA = 0, - uA = 0, - pA = 0, - lA = 0, - FA = 0, - GA = 0, - kA = 0, - _A = 0, - HA = 0, - YA = 0, - bA = 0 - ;(eA = A), - (B = EA = HA = i[(g + 4) >> 2]), - (t = EA >> 31), - (x = EA = (DA = i[(I + 20) >> 2]) << 1), - (EA = eg(B, t, EA, (H = EA >> 31))), - (nA = p), - (iA = EA), - (Q = EA = i[g >> 2]), - (C = EA >> 31), - (f = EA = i[(I + 24) >> 2]), - (rA = eg(Q, C, EA, (E = EA >> 31))), - (EA = (p + nA) | 0), - (EA = - (iA = (iA + rA) | 0) >>> 0 < rA >>> 0 - ? (EA + 1) | 0 - : EA), - (nA = iA), - (L = iA = oA = i[(g + 8) >> 2]), - (u = iA >> 31), - (c = iA = i[(I + 16) >> 2]), - (iA = (nA + (rA = eg(oA, u, iA, (n = iA >> 31)))) | 0), - (nA = (p + EA) | 0), - (nA = iA >>> 0 < rA >>> 0 ? (nA + 1) | 0 : nA), - (K = EA = pA = i[(g + 12) >> 2]), - (l = EA >> 31), - (q = EA = (sA = i[(I + 12) >> 2]) << 1), - (EA = ((rA = eg(pA, l, EA, (Y = EA >> 31))) + iA) | 0), - (iA = (p + nA) | 0), - (iA = EA >>> 0 < rA >>> 0 ? (iA + 1) | 0 : iA), - (nA = EA), - (O = EA = uA = i[(g + 16) >> 2]), - (k = EA >> 31), - (y = EA = i[(I + 8) >> 2]), - (rA = eg(uA, k, EA, (a = EA >> 31))), - (EA = (p + iA) | 0), - (EA = - (nA = (nA + rA) | 0) >>> 0 < rA >>> 0 - ? (EA + 1) | 0 - : EA), - (aA = nA), - (z = iA = cA = i[(g + 20) >> 2]), - (b = iA >> 31), - (X = iA = (fA = i[(I + 4) >> 2]) << 1), - (nA = eg(cA, b, iA, (m = iA >> 31))), - (EA = (p + EA) | 0), - (EA = - (iA = (aA + nA) | 0) >>> 0 < nA >>> 0 - ? (EA + 1) | 0 - : EA), - (nA = iA), - ($ = iA = yA = i[(g + 24) >> 2]), - (V = iA >> 31), - (s = iA = i[I >> 2]), - (rA = eg(yA, V, iA, (o = iA >> 31))), - (iA = (p + EA) | 0), - (iA = - (nA = (nA + rA) | 0) >>> 0 < rA >>> 0 - ? (iA + 1) | 0 - : iA), - (lA = i[(g + 28) >> 2]), - (F = EA = r(lA, 19)), - (G = EA >> 31), - (W = EA = (wA = i[(I + 36) >> 2]) << 1), - (EA = ((rA = eg(F, G, EA, (v = EA >> 31))) + nA) | 0), - (nA = (p + iA) | 0), - (nA = EA >>> 0 < rA >>> 0 ? (nA + 1) | 0 : nA), - (iA = EA), - (hA = i[(g + 32) >> 2]), - (FA = EA = r(hA, 19)), - (GA = EA >> 31), - (w = EA = i[(I + 32) >> 2]), - (rA = eg(FA, GA, EA, (e = EA >> 31))), - (EA = (p + nA) | 0), - (EA = - (iA = (iA + rA) | 0) >>> 0 < rA >>> 0 - ? (EA + 1) | 0 - : EA), - (nA = iA), - (AA = i[(g + 36) >> 2]), - (h = g = r(AA, 19)), - (D = g >> 31), - (T = g = (I = i[(I + 28) >> 2]) << 1), - (iA = eg(h, D, g, (U = g >> 31))), - (EA = (p + EA) | 0), - (tA = g = (nA + iA) | 0), - (g = g >>> 0 < iA >>> 0 ? (EA + 1) | 0 : EA), - (EA = eg(c, n, B, t)), - (iA = p), - (DA = eg(Q, C, (rA = DA), (S = rA >> 31))), - (nA = (p + iA) | 0), - (nA = - (EA = (DA + EA) | 0) >>> 0 < DA >>> 0 - ? (nA + 1) | 0 - : nA), - (DA = sA), - (sA = eg(oA, u, sA, (N = sA >> 31))), - (iA = (p + nA) | 0), - (iA = - (EA = (sA + EA) | 0) >>> 0 < sA >>> 0 - ? (iA + 1) | 0 - : iA), - (nA = ((sA = eg(y, a, pA, l)) + EA) | 0), - (EA = (p + iA) | 0), - (EA = nA >>> 0 < sA >>> 0 ? (EA + 1) | 0 : EA), - (iA = nA), - (sA = fA), - (nA = eg(uA, k, fA, (M = fA >> 31))), - (EA = (p + EA) | 0), - (EA = - (iA = (iA + nA) | 0) >>> 0 < nA >>> 0 - ? (EA + 1) | 0 - : EA), - (nA = eg(s, o, cA, b)), - (EA = (p + EA) | 0), - (EA = - (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 - ? (EA + 1) | 0 - : EA), - (nA = iA), - (d = iA = r(yA, 19)), - (iA = - (nA + - (wA = eg( - iA, - (_ = iA >> 31), - (fA = wA), - (P = fA >> 31) - ))) | - 0), - (nA = (p + EA) | 0), - (nA = iA >>> 0 < wA >>> 0 ? (nA + 1) | 0 : nA), - (EA = ((wA = eg(w, e, F, G)) + iA) | 0), - (iA = (p + nA) | 0), - (iA = EA >>> 0 < wA >>> 0 ? (iA + 1) | 0 : iA), - (wA = I), - (I = ((nA = eg(FA, GA, I, (R = I >> 31))) + EA) | 0), - (EA = (p + iA) | 0), - (EA = I >>> 0 < nA >>> 0 ? (EA + 1) | 0 : EA), - (iA = eg(h, D, f, E)), - (EA = (p + EA) | 0), - (_A = I = (iA + I) | 0), - (I = I >>> 0 < iA >>> 0 ? (EA + 1) | 0 : EA), - (EA = eg(B, t, q, Y)), - (nA = p), - (iA = ((yA = eg(Q, C, c, n)) + EA) | 0), - (EA = (p + nA) | 0), - (EA = iA >>> 0 < yA >>> 0 ? (EA + 1) | 0 : EA), - (yA = eg(y, a, oA, u)), - (nA = (p + EA) | 0), - (nA = - (iA = (yA + iA) | 0) >>> 0 < yA >>> 0 - ? (nA + 1) | 0 - : nA), - (EA = ((yA = eg(pA, l, X, m)) + iA) | 0), - (iA = (p + nA) | 0), - (iA = EA >>> 0 < yA >>> 0 ? (iA + 1) | 0 : iA), - (nA = ((yA = eg(s, o, uA, k)) + EA) | 0), - (EA = (p + iA) | 0), - (EA = nA >>> 0 < yA >>> 0 ? (EA + 1) | 0 : EA), - (aA = nA), - (j = iA = r(cA, 19)), - (nA = eg(iA, (J = iA >> 31), W, v)), - (EA = (p + EA) | 0), - (EA = - (iA = (aA + nA) | 0) >>> 0 < nA >>> 0 - ? (EA + 1) | 0 - : EA), - (nA = eg(w, e, d, _)), - (EA = (p + EA) | 0), - (EA = - (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 - ? (EA + 1) | 0 - : EA), - (cA = eg(F, G, T, U)), - (nA = (p + EA) | 0), - (nA = - (iA = (cA + iA) | 0) >>> 0 < cA >>> 0 - ? (nA + 1) | 0 - : nA), - (EA = ((cA = eg(FA, GA, f, E)) + iA) | 0), - (iA = (p + nA) | 0), - (iA = EA >>> 0 < cA >>> 0 ? (iA + 1) | 0 : iA), - (nA = ((cA = eg(h, D, x, H)) + EA) | 0), - (EA = (p + iA) | 0), - (EA = nA >>> 0 < cA >>> 0 ? (EA + 1) | 0 : EA), - (cA = nA), - (gA = EA), - (yA = iA = (nA + 33554432) | 0), - (BA = EA = iA >>> 0 < 33554432 ? (EA + 1) | 0 : EA), - (nA = _A), - (_A = ((67108863 & EA) << 6) | (iA >>> 26)), - (EA = ((EA >> 26) + I) | 0), - (EA = - (nA = (nA + _A) | 0) >>> 0 < _A >>> 0 - ? (EA + 1) | 0 - : EA), - (QA = I = ((_A = nA) + 16777216) | 0), - (EA = - (g + - (iA = - (nA = I >>> 0 < 16777216 ? (EA + 1) | 0 : EA) >> - 25)) | - 0), - (EA = - (I = - ((nA = ((33554431 & nA) << 7) | (I >>> 25)) + tA) | - 0) >>> - 0 < - nA >>> 0 - ? (EA + 1) | 0 - : EA), - (YA = I = ((g = I) + 33554432) | 0), - (I = EA = I >>> 0 < 33554432 ? (EA + 1) | 0 : EA), - (EA = -67108864 & YA), - (i[(eA + 24) >> 2] = g - EA), - (tA = eA), - (g = eg(B, t, X, m)), - (EA = p), - (iA = eg(Q, C, y, a)), - (nA = (p + EA) | 0), - (nA = - (g = (iA + g) | 0) >>> 0 < iA >>> 0 - ? (nA + 1) | 0 - : nA), - (iA = eg(s, o, oA, u)), - (EA = (p + nA) | 0), - (EA = - (g = (iA + g) | 0) >>> 0 < iA >>> 0 - ? (EA + 1) | 0 - : EA), - (nA = g), - (eA = g = r(pA, 19)), - (iA = eg(g, (pA = g >> 31), W, v)), - (EA = (p + EA) | 0), - (EA = - (g = (nA + iA) | 0) >>> 0 < iA >>> 0 - ? (EA + 1) | 0 - : EA), - (iA = g), - (IA = g = r(uA, 19)), - (g = (iA + (nA = eg(w, e, g, (Z = g >> 31)))) | 0), - (iA = (p + EA) | 0), - (iA = g >>> 0 < nA >>> 0 ? (iA + 1) | 0 : iA), - (nA = eg(T, U, j, J)), - (EA = (p + iA) | 0), - (EA = - (g = (nA + g) | 0) >>> 0 < nA >>> 0 - ? (EA + 1) | 0 - : EA), - (iA = eg(f, E, d, _)), - (nA = (p + EA) | 0), - (nA = - (g = (iA + g) | 0) >>> 0 < iA >>> 0 - ? (nA + 1) | 0 - : nA), - (iA = eg(F, G, x, H)), - (EA = (p + nA) | 0), - (EA = - (g = (iA + g) | 0) >>> 0 < iA >>> 0 - ? (EA + 1) | 0 - : EA), - (iA = eg(FA, GA, c, n)), - (EA = (p + EA) | 0), - (EA = - (g = (iA + g) | 0) >>> 0 < iA >>> 0 - ? (EA + 1) | 0 - : EA), - (nA = eg(h, D, q, Y)), - (iA = (p + EA) | 0), - (aA = g = (nA + g) | 0), - (g = g >>> 0 < nA >>> 0 ? (iA + 1) | 0 : iA), - (EA = eg(s, o, B, t)), - (nA = p), - (iA = ((uA = eg(Q, C, sA, M)) + EA) | 0), - (EA = (p + nA) | 0), - (EA = iA >>> 0 < uA >>> 0 ? (EA + 1) | 0 : EA), - (nA = iA), - (uA = iA = r(oA, 19)), - (iA = (nA + (oA = eg(iA, (kA = iA >> 31), fA, P))) | 0), - (nA = (p + EA) | 0), - (nA = iA >>> 0 < oA >>> 0 ? (nA + 1) | 0 : nA), - (oA = eg(w, e, eA, pA)), - (EA = (p + nA) | 0), - (EA = - (iA = (oA + iA) | 0) >>> 0 < oA >>> 0 - ? (EA + 1) | 0 - : EA), - (nA = eg(IA, Z, wA, R)), - (EA = (p + EA) | 0), - (EA = - (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 - ? (EA + 1) | 0 - : EA), - (nA = ((oA = eg(f, E, j, J)) + iA) | 0), - (iA = (p + EA) | 0), - (iA = nA >>> 0 < oA >>> 0 ? (iA + 1) | 0 : iA), - (oA = eg(d, _, rA, S)), - (EA = (p + iA) | 0), - (EA = - (nA = (oA + nA) | 0) >>> 0 < oA >>> 0 - ? (EA + 1) | 0 - : EA), - (iA = ((oA = eg(c, n, F, G)) + nA) | 0), - (nA = (p + EA) | 0), - (nA = iA >>> 0 < oA >>> 0 ? (nA + 1) | 0 : nA), - (oA = eg(FA, GA, DA, N)), - (EA = (p + nA) | 0), - (EA = - (iA = (oA + iA) | 0) >>> 0 < oA >>> 0 - ? (EA + 1) | 0 - : EA), - (nA = eg(h, D, y, a)), - (EA = (p + EA) | 0), - (bA = iA = (nA + iA) | 0), - (oA = iA >>> 0 < nA >>> 0 ? (EA + 1) | 0 : EA), - (EA = eg((EA = r(B, 19)), EA >> 31, W, v)), - (iA = p), - (nA = eg(Q, C, s, o)), - (iA = (p + iA) | 0), - (iA = - (EA = (nA + EA) | 0) >>> 0 < nA >>> 0 - ? (iA + 1) | 0 - : iA), - (nA = ((HA = eg(w, e, uA, kA)) + EA) | 0), - (EA = (p + iA) | 0), - (iA = ((eA = eg(eA, pA, T, U)) + nA) | 0), - (nA = - (p + (nA >>> 0 < HA >>> 0 ? (EA + 1) | 0 : EA)) | 0), - (nA = iA >>> 0 < eA >>> 0 ? (nA + 1) | 0 : nA), - (eA = eg(f, E, IA, Z)), - (EA = (p + nA) | 0), - (EA = - (iA = (eA + iA) | 0) >>> 0 < eA >>> 0 - ? (EA + 1) | 0 - : EA), - (nA = eg(x, H, j, J)), - (EA = (p + EA) | 0), - (EA = - (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 - ? (EA + 1) | 0 - : EA), - (nA = ((eA = eg(c, n, d, _)) + iA) | 0), - (iA = (p + EA) | 0), - (iA = nA >>> 0 < eA >>> 0 ? (iA + 1) | 0 : iA), - (eA = eg(F, G, q, Y)), - (EA = (p + iA) | 0), - (EA = - (nA = (eA + nA) | 0) >>> 0 < eA >>> 0 - ? (EA + 1) | 0 - : EA), - (iA = ((eA = eg(FA, GA, y, a)) + nA) | 0), - (nA = (p + EA) | 0), - (nA = iA >>> 0 < eA >>> 0 ? (nA + 1) | 0 : nA), - (eA = eg(h, D, X, m)), - (EA = (p + nA) | 0), - (EA = - (iA = (eA + iA) | 0) >>> 0 < eA >>> 0 - ? (EA + 1) | 0 - : EA), - (eA = iA), - (HA = EA), - (pA = iA = (iA + 33554432) | 0), - (uA = EA = iA >>> 0 < 33554432 ? (EA + 1) | 0 : EA), - (kA = ((67108863 & EA) << 6) | (iA >>> 26)), - (iA = ((nA = EA >> 26) + oA) | 0), - (oA = EA = (kA + bA) | 0), - (nA = aA), - (EA = EA >>> 0 < kA >>> 0 ? (iA + 1) | 0 : iA), - (CA = iA = (oA + 16777216) | 0), - (aA = - ((33554431 & - (EA = iA >>> 0 < 16777216 ? (EA + 1) | 0 : EA)) << - 7) | - (iA >>> 25)), - (EA = ((EA >> 25) + g) | 0), - (EA = - (iA = (nA + aA) | 0) >>> 0 < aA >>> 0 - ? (EA + 1) | 0 - : EA), - (kA = g = (iA + 33554432) | 0), - (g = EA = g >>> 0 < 33554432 ? (EA + 1) | 0 : EA), - (EA = -67108864 & kA), - (i[(tA + 8) >> 2] = iA - EA), - (aA = tA), - (EA = eg(f, E, B, t)), - (nA = p), - (iA = ((tA = eg(Q, C, wA, R)) + EA) | 0), - (EA = (p + nA) | 0), - (EA = iA >>> 0 < tA >>> 0 ? (EA + 1) | 0 : EA), - (nA = eg(L, u, rA, S)), - (EA = (p + EA) | 0), - (EA = - (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 - ? (EA + 1) | 0 - : EA), - (nA = eg(c, n, K, l)), - (EA = (p + EA) | 0), - (EA = - (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 - ? (EA + 1) | 0 - : EA), - (tA = eg(O, k, DA, N)), - (nA = (p + EA) | 0), - (nA = - (iA = (tA + iA) | 0) >>> 0 < tA >>> 0 - ? (nA + 1) | 0 - : nA), - (EA = ((tA = eg(y, a, z, b)) + iA) | 0), - (iA = (p + nA) | 0), - (iA = EA >>> 0 < tA >>> 0 ? (iA + 1) | 0 : iA), - (nA = ((tA = eg(sA, M, $, V)) + EA) | 0), - (EA = (p + iA) | 0), - (EA = nA >>> 0 < tA >>> 0 ? (EA + 1) | 0 : EA), - (iA = nA), - (nA = eg(s, o, (tA = lA), (bA = tA >> 31))), - (EA = (p + EA) | 0), - (EA = - (iA = (iA + nA) | 0) >>> 0 < nA >>> 0 - ? (EA + 1) | 0 - : EA), - (nA = eg(FA, GA, fA, P)), - (EA = (p + EA) | 0), - (EA = - (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 - ? (EA + 1) | 0 - : EA), - (lA = eg(h, D, w, e)), - (nA = (p + EA) | 0), - (nA = - (iA = (lA + iA) | 0) >>> 0 < lA >>> 0 - ? (nA + 1) | 0 - : nA), - (EA = I >> 26), - (I = - ((lA = ((67108863 & I) << 6) | (YA >>> 26)) + iA) | - 0), - (iA = (EA + nA) | 0), - (EA = iA = I >>> 0 < lA >>> 0 ? (iA + 1) | 0 : iA), - (YA = I = ((nA = I) + 16777216) | 0), - (I = EA = I >>> 0 < 16777216 ? (EA + 1) | 0 : EA), - (EA = -33554432 & YA), - (i[(aA + 28) >> 2] = nA - EA), - (lA = aA), - (EA = eg(y, a, B, t)), - (iA = p), - (aA = eg(Q, C, DA, N)), - (nA = (p + iA) | 0), - (nA = - (EA = (aA + EA) | 0) >>> 0 < aA >>> 0 - ? (nA + 1) | 0 - : nA), - (aA = eg(L, u, sA, M)), - (iA = (p + nA) | 0), - (iA = - (EA = (aA + EA) | 0) >>> 0 < aA >>> 0 - ? (iA + 1) | 0 - : iA), - (nA = ((aA = eg(s, o, K, l)) + EA) | 0), - (EA = (p + iA) | 0), - (EA = nA >>> 0 < aA >>> 0 ? (EA + 1) | 0 : EA), - (iA = nA), - (nA = eg(IA, Z, fA, P)), - (EA = (p + EA) | 0), - (EA = - (iA = (iA + nA) | 0) >>> 0 < nA >>> 0 - ? (EA + 1) | 0 - : EA), - (nA = eg(w, e, j, J)), - (EA = (p + EA) | 0), - (EA = - (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 - ? (EA + 1) | 0 - : EA), - (aA = eg(d, _, wA, R)), - (nA = (p + EA) | 0), - (nA = - (iA = (aA + iA) | 0) >>> 0 < aA >>> 0 - ? (nA + 1) | 0 - : nA), - (EA = ((aA = eg(f, E, F, G)) + iA) | 0), - (iA = (p + nA) | 0), - (iA = EA >>> 0 < aA >>> 0 ? (iA + 1) | 0 : iA), - (nA = ((aA = eg(FA, GA, rA, S)) + EA) | 0), - (EA = (p + iA) | 0), - (EA = nA >>> 0 < aA >>> 0 ? (EA + 1) | 0 : EA), - (iA = nA), - (nA = eg(h, D, c, n)), - (EA = (p + EA) | 0), - (aA = iA = (iA + nA) | 0), - (EA = - ((EA = iA >>> 0 < nA >>> 0 ? (EA + 1) | 0 : EA) + - (iA = g >> 26)) | - 0), - (EA = - (g = - (aA + (nA = ((67108863 & g) << 6) | (kA >>> 26))) | - 0) >>> - 0 < - nA >>> 0 - ? (EA + 1) | 0 - : EA), - (FA = g = ((iA = g) + 16777216) | 0), - (g = nA = g >>> 0 < 16777216 ? (EA + 1) | 0 : EA), - (EA = -33554432 & FA), - (i[(lA + 12) >> 2] = iA - EA), - (EA = eg(B, t, T, U)), - (nA = p), - (iA = ((aA = eg(Q, C, w, e)) + EA) | 0), - (EA = (p + nA) | 0), - (EA = iA >>> 0 < aA >>> 0 ? (EA + 1) | 0 : EA), - (nA = eg(f, E, L, u)), - (EA = (p + EA) | 0), - (EA = - (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 - ? (EA + 1) | 0 - : EA), - (aA = eg(K, l, x, H)), - (nA = (p + EA) | 0), - (nA = - (iA = (aA + iA) | 0) >>> 0 < aA >>> 0 - ? (nA + 1) | 0 - : nA), - (EA = ((aA = eg(c, n, O, k)) + iA) | 0), - (iA = (p + nA) | 0), - (iA = EA >>> 0 < aA >>> 0 ? (iA + 1) | 0 : iA), - (nA = ((aA = eg(q, Y, z, b)) + EA) | 0), - (EA = (p + iA) | 0), - (EA = nA >>> 0 < aA >>> 0 ? (EA + 1) | 0 : EA), - (iA = nA), - (nA = eg(y, a, $, V)), - (EA = (p + EA) | 0), - (EA = - (iA = (iA + nA) | 0) >>> 0 < nA >>> 0 - ? (EA + 1) | 0 - : EA), - (nA = eg(tA, bA, X, m)), - (EA = (p + EA) | 0), - (EA = - (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 - ? (EA + 1) | 0 - : EA), - (hA = eg(s, o, (aA = hA), (GA = aA >> 31))), - (nA = (p + EA) | 0), - (nA = - (iA = (hA + iA) | 0) >>> 0 < hA >>> 0 - ? (nA + 1) | 0 - : nA), - (EA = ((hA = eg(h, D, W, v)) + iA) | 0), - (iA = (p + nA) | 0), - (iA = EA >>> 0 < hA >>> 0 ? (iA + 1) | 0 : iA), - (hA = EA), - (EA = ((EA = I >> 25) + iA) | 0), - (EA = - (I = - (hA + (nA = ((33554431 & I) << 7) | (YA >>> 25))) | - 0) >>> - 0 < - nA >>> 0 - ? (EA + 1) | 0 - : EA), - (hA = I = ((iA = I) + 33554432) | 0), - (I = EA = I >>> 0 < 33554432 ? (EA + 1) | 0 : EA), - (EA = -67108864 & hA), - (i[(lA + 32) >> 2] = iA - EA), - (nA = iA = (cA - (EA = -67108864 & yA)) | 0), - (EA = - ((EA = - (gA - (((EA >>> 0 > cA >>> 0) + BA) | 0)) | 0) + - (iA = g >> 25)) | - 0), - (EA = - (g = - (nA + (cA = ((33554431 & g) << 7) | (FA >>> 25))) | - 0) >>> - 0 < - cA >>> 0 - ? (EA + 1) | 0 - : EA), - (iA = (g + 33554432) | 0) >>> 0 < 33554432 && - (EA = (EA + 1) | 0), - (EA = - (((_A - (-33554432 & QA)) | 0) + - (((67108863 & EA) << 6) | (iA >>> 26))) | - 0), - (i[(A + 20) >> 2] = EA), - (EA = -67108864 & iA), - (i[(A + 16) >> 2] = g - EA), - (EA = eg(w, e, B, t)), - (nA = p), - (iA = ((fA = eg(Q, C, fA, P)) + EA) | 0), - (EA = (p + nA) | 0), - (EA = iA >>> 0 < fA >>> 0 ? (EA + 1) | 0 : EA), - (nA = ((fA = eg(L, u, wA, R)) + iA) | 0), - (iA = (p + EA) | 0), - (iA = nA >>> 0 < fA >>> 0 ? (iA + 1) | 0 : iA), - (EA = ((fA = eg(f, E, K, l)) + nA) | 0), - (nA = (p + iA) | 0), - (iA = ((rA = eg(O, k, rA, S)) + EA) | 0), - (EA = - (p + (EA >>> 0 < fA >>> 0 ? (nA + 1) | 0 : nA)) | 0), - (EA = iA >>> 0 < rA >>> 0 ? (EA + 1) | 0 : EA), - (nA = eg(c, n, z, b)), - (EA = (p + EA) | 0), - (EA = - (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 - ? (EA + 1) | 0 - : EA), - (nA = eg(DA, N, $, V)), - (EA = (p + EA) | 0), - (EA = - (iA = (nA + iA) | 0) >>> 0 < nA >>> 0 - ? (EA + 1) | 0 - : EA), - (nA = ((rA = eg(y, a, tA, bA)) + iA) | 0), - (iA = (p + EA) | 0), - (iA = nA >>> 0 < rA >>> 0 ? (iA + 1) | 0 : iA), - (EA = ((rA = eg(aA, GA, sA, M)) + nA) | 0), - (nA = (p + iA) | 0), - (nA = EA >>> 0 < rA >>> 0 ? (nA + 1) | 0 : nA), - (iA = ((rA = eg(s, o, AA, AA >> 31)) + EA) | 0), - (EA = (p + nA) | 0), - (g = iA), - (EA = - ((EA = iA >>> 0 < rA >>> 0 ? (EA + 1) | 0 : EA) + - (iA = I >> 26)) | - 0), - (EA = - (I = - (g + (nA = ((67108863 & I) << 6) | (hA >>> 26))) | - 0) >>> - 0 < - nA >>> 0 - ? (EA + 1) | 0 - : EA), - (EA = - (I = ((g = I) + 16777216) | 0) >>> 0 < 16777216 - ? (EA + 1) | 0 - : EA), - (I = -33554432 & (iA = I)), - (i[(A + 36) >> 2] = g - I), - (nA = (oA - (-33554432 & CA)) | 0), - (rA = (eA - (I = -67108864 & pA)) | 0), - (DA = (HA - (((I >>> 0 > eA >>> 0) + uA) | 0)) | 0), - (EA = eg( - ((33554431 & (I = EA)) << 7) | (iA >>> 25), - (EA >>= 25), - 19, - 0 - )), - (iA = (p + DA) | 0), - (EA = iA = - (I = (EA + rA) | 0) >>> 0 < EA >>> 0 - ? (iA + 1) | 0 - : iA), - (g = - ((((67108863 & - (EA = - (g = (I + 33554432) | 0) >>> 0 < 33554432 - ? (EA + 1) | 0 - : EA)) << - 6) | - ((iA = g) >>> 26)) + - nA) | - 0), - (i[(A + 4) >> 2] = g), - (g = A), - (A = -67108864 & iA), - (i[g >> 2] = I - A) - } - function H(A, I) { - var g, - B, - Q, - C, - E, - n, - a, - o, - e, - t, - f, - c, - y, - s, - w, - h, - D, - u, - l, - F, - G, - k, - _, - H, - Y, - b, - m, - v, - U, - S, - N, - M, - d, - P, - R, - J, - x, - L = 0, - K = 0, - q = 0, - X = 0, - V = 0, - W = 0, - T = 0, - j = 0, - Z = 0, - O = 0, - z = 0, - $ = 0, - AA = 0, - IA = 0, - gA = 0, - BA = 0, - QA = 0 - ;(W = A), - (t = K = (L = i[(I + 12) >> 2]) << 1), - (j = L), - (L = eg(K, (E = K >> 31), L, (H = L >> 31))), - (X = p), - (K = L), - (g = L = i[(I + 16) >> 2]), - (n = L >> 31), - (D = L = (O = i[(I + 8) >> 2]) << 1), - (V = eg(g, n, L, (y = L >> 31))), - (L = (p + X) | 0), - (L = - (K = (K + V) | 0) >>> 0 < V >>> 0 ? (L + 1) | 0 : L), - (X = K), - (s = K = (V = i[(I + 20) >> 2]) << 1), - (w = K >> 31), - (a = K = (z = i[(I + 4) >> 2]) << 1), - (q = eg(s, w, K, (B = K >> 31))), - (K = (p + L) | 0), - (K = - (X = (X + q) | 0) >>> 0 < q >>> 0 ? (K + 1) | 0 : K), - (F = L = T = i[(I + 24) >> 2]), - (f = L >> 31), - (o = L = (BA = i[I >> 2]) << 1), - (q = eg(T, f, L, (Q = L >> 31))), - (L = (p + K) | 0), - (L = - (X = (q + X) | 0) >>> 0 < q >>> 0 ? (L + 1) | 0 : L), - (Z = X), - (K = i[(I + 32) >> 2]), - (h = X = r(K, 19)), - (Y = K), - (X = eg(X, (c = X >> 31), K, (G = K >> 31))), - (L = (p + L) | 0), - (L = - (K = (Z + X) | 0) >>> 0 < X >>> 0 ? (L + 1) | 0 : L), - (Z = K), - (AA = i[(I + 36) >> 2]), - (e = K = r(AA, 38)), - (C = K >> 31), - (S = I = (X = i[(I + 28) >> 2]) << 1), - (q = eg(K, C, I, (b = I >> 31))), - (I = (p + L) | 0), - (IA = K = (Z + q) | 0), - ($ = K >>> 0 < q >>> 0 ? (I + 1) | 0 : I), - (I = eg(a, B, g, n)), - (L = p), - (K = eg(D, y, j, H)), - (L = (p + L) | 0), - (L = - (I = (K + I) | 0) >>> 0 < K >>> 0 ? (L + 1) | 0 : L), - (N = V), - (q = eg(V, (k = V >> 31), o, Q)), - (K = (p + L) | 0), - (K = - (I = (q + I) | 0) >>> 0 < q >>> 0 ? (K + 1) | 0 : K), - (q = eg(h, c, S, b)), - (L = (p + K) | 0), - (L = - (I = (q + I) | 0) >>> 0 < q >>> 0 ? (L + 1) | 0 : L), - (K = eg(e, C, T, f)), - (L = (p + L) | 0), - (Z = I = (K + I) | 0), - (QA = I >>> 0 < K >>> 0 ? (L + 1) | 0 : L), - (I = eg(a, B, t, E)), - (K = p), - (L = ((O = eg((q = O), (u = q >> 31), q, u)) + I) | 0), - (I = (p + K) | 0), - (I = L >>> 0 < O >>> 0 ? (I + 1) | 0 : I), - (K = ((O = eg(o, Q, g, n)) + L) | 0), - (L = (p + I) | 0), - (L = K >>> 0 < O >>> 0 ? (L + 1) | 0 : L), - (_ = I = r(X, 38)), - (O = X), - (I = - ((X = eg(I, (l = I >> 31), X, (m = X >> 31))) + K) | - 0), - (K = (p + L) | 0), - (K = I >>> 0 < X >>> 0 ? (K + 1) | 0 : K), - (I = - ((L = I) + (X = eg(h, c, (I = T << 1), I >> 31))) | - 0), - (L = (p + K) | 0), - (L = I >>> 0 < X >>> 0 ? (L + 1) | 0 : L), - (K = eg(e, C, s, w)), - (L = (p + L) | 0), - (v = I = (K + I) | 0), - (P = L = I >>> 0 < K >>> 0 ? (L + 1) | 0 : L), - (I = L), - (M = L = (v + 33554432) | 0), - (R = I = L >>> 0 < 33554432 ? (I + 1) | 0 : I), - (L = ((L = I >> 26) + QA) | 0), - (QA = I = - ((K = ((67108863 & I) << 6) | (M >>> 26)) + Z) | 0), - (K = I >>> 0 < K >>> 0 ? (L + 1) | 0 : L), - (J = I = (I + 16777216) | 0), - (L = - ((L = - (K = I >>> 0 < 16777216 ? (K + 1) | 0 : K) >> 25) + - $) | - 0), - (L = - (I = - ((K = ((33554431 & K) << 7) | (I >>> 25)) + IA) | - 0) >>> - 0 < - K >>> 0 - ? (L + 1) | 0 - : L), - (K = I), - (I = L), - (Z = L = (K + 33554432) | 0), - (X = I = L >>> 0 < 33554432 ? (I + 1) | 0 : I), - (I = -67108864 & L), - (i[(W + 24) >> 2] = K - I), - (I = eg(o, Q, q, u)), - (L = p), - (z = eg(a, B, (W = z), (gA = W >> 31))), - (K = (p + L) | 0), - (K = - (I = (z + I) | 0) >>> 0 < z >>> 0 ? (K + 1) | 0 : K), - (L = I), - (z = I = r(T, 19)), - (I = (L + (T = eg(I, (IA = I >> 31), T, f))) | 0), - (L = (p + K) | 0), - (L = I >>> 0 < T >>> 0 ? (L + 1) | 0 : L), - (K = ((T = eg(s, w, _, l)) + I) | 0), - (I = (p + L) | 0), - (I = K >>> 0 < T >>> 0 ? (I + 1) | 0 : I), - (d = L = g << 1), - (T = eg(h, c, L, (U = L >> 31))), - (L = (p + I) | 0), - (L = - (K = (T + K) | 0) >>> 0 < T >>> 0 ? (L + 1) | 0 : L), - (I = K), - (K = eg(e, C, t, E)), - (L = (p + L) | 0), - ($ = I = (I + K) | 0), - (T = I >>> 0 < K >>> 0 ? (L + 1) | 0 : L), - (I = eg(s, w, z, IA)), - (L = p), - (W = eg(o, Q, W, gA)), - (K = (p + L) | 0), - (K = - (I = (W + I) | 0) >>> 0 < W >>> 0 ? (K + 1) | 0 : K), - (W = eg(g, n, _, l)), - (L = (p + K) | 0), - (L = - (I = (W + I) | 0) >>> 0 < W >>> 0 ? (L + 1) | 0 : L), - (K = ((W = eg(h, c, t, E)) + I) | 0), - (I = (p + L) | 0), - (I = K >>> 0 < W >>> 0 ? (I + 1) | 0 : I), - (W = eg(e, C, q, u)), - (L = (p + I) | 0), - (gA = K = (W + K) | 0), - (W = K >>> 0 < W >>> 0 ? (L + 1) | 0 : L), - (I = eg((I = r(V, 38)), I >> 31, V, k)), - (L = p), - (V = I), - (K = eg((I = BA), (K = I >> 31), I, K)), - (L = (p + L) | 0), - (L = - (I = (V + K) | 0) >>> 0 < K >>> 0 ? (L + 1) | 0 : L), - (V = eg(z, IA, d, U)), - (K = (p + L) | 0), - (K = - (I = (V + I) | 0) >>> 0 < V >>> 0 ? (K + 1) | 0 : K), - (V = eg(t, E, _, l)), - (L = (p + K) | 0), - (L = - (I = (V + I) | 0) >>> 0 < V >>> 0 ? (L + 1) | 0 : L), - (K = ((V = eg(h, c, D, y)) + I) | 0), - (I = (p + L) | 0), - (I = K >>> 0 < V >>> 0 ? (I + 1) | 0 : I), - (V = eg(a, B, e, C)), - (L = (p + I) | 0), - (z = K = (V + K) | 0), - (IA = L = K >>> 0 < V >>> 0 ? (L + 1) | 0 : L), - (BA = I = (K + 33554432) | 0), - (x = L = I >>> 0 < 33554432 ? (L + 1) | 0 : L), - (K = ((I = L >> 26) + W) | 0), - (W = L = - ((V = ((67108863 & L) << 6) | (BA >>> 26)) + gA) | 0), - (L = L >>> 0 < V >>> 0 ? (K + 1) | 0 : K), - (gA = I = (W + 16777216) | 0), - (V = - ((33554431 & - (L = I >>> 0 < 16777216 ? (L + 1) | 0 : L)) << - 7) | - (I >>> 25)), - (L = ((L >> 25) + T) | 0), - (L = - (K = (V + $) | 0) >>> 0 < V >>> 0 ? (L + 1) | 0 : L), - (T = K = ((I = K) + 33554432) | 0), - (V = L = K >>> 0 < 33554432 ? (L + 1) | 0 : L), - (L = -67108864 & K), - (i[(A + 8) >> 2] = I - L), - (I = eg(D, y, N, k)), - (L = p), - (K = eg(g, n, t, E)), - (L = (p + L) | 0), - (L = - (I = (K + I) | 0) >>> 0 < K >>> 0 ? (L + 1) | 0 : L), - (K = eg(a, B, F, f)), - (L = (p + L) | 0), - (L = - (I = (K + I) | 0) >>> 0 < K >>> 0 ? (L + 1) | 0 : L), - (K = eg(o, Q, O, m)), - (L = (p + L) | 0), - (L = - (I = (K + I) | 0) >>> 0 < K >>> 0 ? (L + 1) | 0 : L), - (K = (($ = eg(e, C, Y, G)) + I) | 0), - (I = (p + L) | 0), - (L = X >> 26), - (X = - ((Z = ((67108863 & X) << 6) | (Z >>> 26)) + K) | 0), - (K = - ((I = K >>> 0 < $ >>> 0 ? (I + 1) | 0 : I) + L) | 0), - (L = K = X >>> 0 < Z >>> 0 ? (K + 1) | 0 : K), - (Z = K = ((I = X) + 16777216) | 0), - (X = L = K >>> 0 < 16777216 ? (L + 1) | 0 : L), - (L = -33554432 & K), - (i[(A + 28) >> 2] = I - L), - (I = eg(o, Q, j, H)), - (K = p), - (L = ((q = eg(a, B, q, u)) + I) | 0), - (I = (p + K) | 0), - (I = L >>> 0 < q >>> 0 ? (I + 1) | 0 : I), - (q = eg(F, f, _, l)), - (K = (p + I) | 0), - (K = - (L = (q + L) | 0) >>> 0 < q >>> 0 ? (K + 1) | 0 : K), - (I = ((q = eg(h, c, s, w)) + L) | 0), - (L = (p + K) | 0), - (L = I >>> 0 < q >>> 0 ? (L + 1) | 0 : L), - (K = eg(e, C, g, n)), - (L = (p + L) | 0), - (L = - ((L = - (I = (K + I) | 0) >>> 0 < K >>> 0 - ? (L + 1) | 0 - : L) + - (K = V >> 26)) | - 0), - (K = I = - ((V = ((67108863 & V) << 6) | (T >>> 26)) + I) | 0), - (I = L = I >>> 0 < V >>> 0 ? (L + 1) | 0 : L), - (T = L = (K + 16777216) | 0), - (V = I = L >>> 0 < 16777216 ? (I + 1) | 0 : I), - (I = -33554432 & L), - (i[(A + 12) >> 2] = K - I), - (q = A), - (I = eg(F, f, D, y)), - (L = p), - (K = eg(g, n, g, n)), - (L = (p + L) | 0), - (L = - (I = (K + I) | 0) >>> 0 < K >>> 0 ? (L + 1) | 0 : L), - (K = eg(t, E, s, w)), - (L = (p + L) | 0), - (L = - (I = (K + I) | 0) >>> 0 < K >>> 0 ? (L + 1) | 0 : L), - (K = ((j = eg(a, B, S, b)) + I) | 0), - (I = (p + L) | 0), - (I = K >>> 0 < j >>> 0 ? (I + 1) | 0 : I), - (L = ((j = eg(o, Q, Y, G)) + K) | 0), - (K = (p + I) | 0), - (K = L >>> 0 < j >>> 0 ? (K + 1) | 0 : K), - (I = - ((AA = eg(e, C, (j = AA), ($ = j >> 31))) + L) | 0), - (L = (p + K) | 0), - (L = I >>> 0 < AA >>> 0 ? (L + 1) | 0 : L), - (A = I), - (L = ((I = X >> 25) + L) | 0), - (L = - (K = - (A + (X = ((33554431 & X) << 7) | (Z >>> 25))) | - 0) >>> - 0 < - X >>> 0 - ? (L + 1) | 0 - : L), - (AA = K = ((I = K) + 33554432) | 0), - (X = L = K >>> 0 < 33554432 ? (L + 1) | 0 : L), - (L = -67108864 & K), - (i[(q + 32) >> 2] = I - L), - (L = V >> 25), - (K = - ((V = ((33554431 & V) << 7) | (T >>> 25)) + - ((v - (I = -67108864 & M)) | 0)) | - 0), - (I = - (L + ((P - (((I >>> 0 > v >>> 0) + R) | 0)) | 0)) | - 0), - (L = I = K >>> 0 < V >>> 0 ? (I + 1) | 0 : I), - (V = I = (K + 33554432) | 0), - (I = - ((((67108863 & - (L = I >>> 0 < 33554432 ? (L + 1) | 0 : L)) << - 6) | - (I >>> 26)) + - (QA = (QA - (-33554432 & J)) | 0)) | - 0), - (i[(q + 20) >> 2] = I), - (I = -67108864 & V), - (i[(q + 16) >> 2] = K - I), - (V = q), - (I = eg(t, E, F, f)), - (K = p), - (L = ((q = eg(N, k, d, U)) + I) | 0), - (I = (p + K) | 0), - (I = L >>> 0 < q >>> 0 ? (I + 1) | 0 : I), - (K = ((q = eg(D, y, O, m)) + L) | 0), - (L = (p + I) | 0), - (L = K >>> 0 < q >>> 0 ? (L + 1) | 0 : L), - (I = ((q = eg(a, B, Y, G)) + K) | 0), - (K = (p + L) | 0), - (K = I >>> 0 < q >>> 0 ? (K + 1) | 0 : K), - (q = eg(o, Q, j, $)), - (L = (p + K) | 0), - (K = I = (q + I) | 0), - (L = - ((I = I >>> 0 < q >>> 0 ? (L + 1) | 0 : L) + - (L = X >> 26)) | - 0), - (L = - (K = - ((X = ((67108863 & X) << 6) | (AA >>> 26)) + K) | - 0) >>> - 0 < - X >>> 0 - ? (L + 1) | 0 - : L), - (X = K), - (I = L), - (I = - (L = (K + 16777216) | 0) >>> 0 < 16777216 - ? (I + 1) | 0 - : I), - (K = -33554432 & L), - (i[(V + 36) >> 2] = X - K), - (q = eg( - ((33554431 & I) << 7) | (L >>> 25), - I >> 25, - 19, - 0 - )), - (L = - (p + - ((IA - - ((((K = -67108864 & BA) >>> 0 > z >>> 0) + x) | - 0)) | - 0)) | - 0), - (K = I = (q + ((z - K) | 0)) | 0), - (I = I >>> 0 < q >>> 0 ? (L + 1) | 0 : L), - (I = - (((W - (-33554432 & gA)) | 0) + - (((67108863 & - (I = - (L = (K + 33554432) | 0) >>> 0 < 33554432 - ? (I + 1) | 0 - : I)) << - 6) | - (L >>> 26))) | - 0), - (i[(V + 4) >> 2] = I), - (A = -67108864 & L), - (i[V >> 2] = K - A) - } - function Y(A, I, g) { - var B, - Q = 0, - C = 0, - E = 0, - n = 0, - a = 0, - r = 0, - o = 0, - e = 0, - t = 0, - f = 0, - c = 0, - y = 0, - s = 0, - w = 0, - D = 0, - u = 0, - l = 0, - F = 0, - G = 0, - k = 0, - _ = 0, - H = 0, - Y = 0, - b = 0, - m = 0, - v = 0, - U = 0, - S = 0, - N = 0, - M = 0, - d = 0, - P = 0, - R = 0, - J = 0, - x = 0, - L = 0, - K = 0, - q = 0, - X = 0, - V = 0, - W = 0, - T = 0, - j = 0, - Z = 0, - O = 0, - z = 0, - $ = 0, - AA = 0, - IA = 0, - gA = 0, - BA = 0, - QA = 0, - CA = 0 - for ( - h = B = (h - 2048) | 0, - Yg((B + 1024) | 0, I), - QI((B + 1024) | 0, A), - Yg(B, (B + 1024) | 0), - QI(B, g), - I = 0; - (n = - i[ - (Q = f = - (((B + 1024) | 0) + (64 | (A = F << 7))) | 0) >> 2 - ]), - (e = - i[ - (E = t = (((B + 1024) | 0) + (96 | A)) | 0) >> 2 - ]), - (E = i[(E + 4) >> 2]), - (a = n), - (w = i[(Q + 4) >> 2]), - (o = e), - (Q = (A + ((B + 1024) | 0)) | 0), - (r = i[(n = (((B + 1024) | 0) + (32 | A)) | 0) >> 2]), - (e = i[(n + 4) >> 2]), - (o = ug( - o ^ (l = rI(i[Q >> 2], i[(Q + 4) >> 2], r, e)), - (C = E) ^ (E = p), - 32 - )), - (e = ug( - (a = (s = rI(a, w, o, (C = p))) ^ r), - e ^ (r = p), - 24 - )), - (P = ug( - (m = rI(l, (a = E), e, (E = p))) ^ o, - (y = p) ^ C, - 16 - )), - (E = ug( - e ^ (R = rI(s, r, P, (S = p))), - (N = p) ^ E, - 63 - )), - (e = p), - (o = - i[(r = (((B + 1024) | 0) + (104 | A)) | 0) >> 2]), - (s = i[(r + 4) >> 2]), - (H = - i[ - (C = l = (((B + 1024) | 0) + (72 | A)) | 0) >> 2 - ]), - (c = i[(C + 4) >> 2]), - (G = ug( - (G = o) ^ - (k = rI( - (u = - i[ - (C = o = - (((B + 1024) | 0) + (8 | A)) | 0) >> 2 - ]), - (w = i[(C + 4) >> 2]), - (U = - i[ - (C = (((B + 1024) | 0) + (40 | A)) | 0) >> 2 - ]), - (a = i[(C + 4) >> 2]) - )), - (w = s) ^ (s = p), - 32 - )), - (a = ug( - (c = (u = rI(H, c, G, (w = p))) ^ U), - a ^ (U = p), - 24 - )), - (V = ug( - (M = rI(k, (c = s), a, (s = p))) ^ G, - (J = p) ^ w, - 16 - )), - (s = ug( - a ^ (O = rI(u, U, V, (j = p))), - (z = p) ^ s, - 63 - )), - (a = p), - (G = - i[ - (k = U = (((B + 1024) | 0) + (112 | A)) | 0) >> 2 - ]), - (u = i[(k + 4) >> 2]), - (v = i[(k = (((B + 1024) | 0) + (80 | A)) | 0) >> 2]), - (D = i[(k + 4) >> 2]), - (H = G), - (G = (((B + 1024) | 0) + (16 | A)) | 0), - (Y = - i[ - (b = w = (((B + 1024) | 0) + (48 | A)) | 0) >> 2 - ]), - (b = i[(b + 4) >> 2]), - (H = ug( - H ^ (d = rI(i[G >> 2], i[(G + 4) >> 2], Y, b)), - (c = u) ^ (u = p), - 32 - )), - (b = ug( - (D = (c = rI(v, D, H, (_ = p))) ^ Y), - b ^ (Y = p), - 24 - )), - (IA = ug( - ($ = rI(d, (D = u), b, (u = p))) ^ H, - (AA = p) ^ _, - 16 - )), - (u = ug( - b ^ (W = rI(c, Y, IA, (gA = p))), - (q = p) ^ u, - 63 - )), - (b = p), - (H = - i[(Y = (((B + 1024) | 0) + (120 | A)) | 0) >> 2]), - (_ = i[(Y + 4) >> 2]), - (BA = - i[ - (c = d = (((B + 1024) | 0) + (88 | A)) | 0) >> 2 - ]), - (X = i[(c + 4) >> 2]), - (L = ug( - (v = H) ^ - (T = rI( - (Z = - i[ - (c = H = - (((B + 1024) | 0) + (24 | A)) | 0) >> 2 - ]), - (D = i[(c + 4) >> 2]), - (x = - i[ - (A = (((B + 1024) | 0) + (56 | A)) | 0) >> 2 - ]), - (c = i[(A + 4) >> 2]) - )), - (D = _) ^ (_ = p), - 32 - )), - (c = ug( - (D = (X = rI(BA, X, L, (K = p))) ^ x), - c ^ (x = p), - 24 - )), - (v = x), - (L = ug( - (x = rI(T, (D = _), c, (_ = p))) ^ L, - (T = p) ^ K, - 16 - )), - (_ = ug( - c ^ (X = rI(X, v, L, (K = p))), - (Z = p) ^ _, - 63 - )), - (c = p), - (v = W), - (D = q), - (W = ug(L ^ (m = rI(m, y, s, a)), K ^ (y = p), 32)), - (s = ug( - (L = rI(v, D, W, (q = p))) ^ s, - (K = p) ^ a, - 24 - )), - (a = rI((a = m), y, s, (m = p))), - (y = p), - (i[Q >> 2] = a), - (i[(Q + 4) >> 2] = y), - (Q = ug(a ^ W, q ^ y, 16)), - (a = p), - (i[Y >> 2] = Q), - (i[(Y + 4) >> 2] = a), - (Q = rI(L, K, Q, a)), - (a = p), - (i[k >> 2] = Q), - (i[(k + 4) >> 2] = a), - (QA = C), - (CA = ug(Q ^ s, a ^ m, 63)), - (i[QA >> 2] = CA), - (i[(C + 4) >> 2] = p), - (y = u), - (a = ug(P ^ (C = rI(M, J, u, b)), S ^ (s = p), 32)), - (Q = ug( - y ^ (u = rI(X, Z, a, (k = p))), - (Q = b) ^ (b = p), - 24 - )), - (C = rI(C, (y = s), Q, (s = p))), - (Y = p), - (i[o >> 2] = C), - (i[(o + 4) >> 2] = Y), - (o = ug(C ^ a, k ^ Y, 16)), - (C = p), - (i[t >> 2] = o), - (i[(t + 4) >> 2] = C), - (t = rI(u, b, o, C)), - (i[d >> 2] = t), - (o = p), - (i[(d + 4) >> 2] = o), - (QA = w), - (CA = ug(Q ^ t, o ^ s, 63)), - (i[QA >> 2] = CA), - (i[(w + 4) >> 2] = p), - (Q = rI($, AA, _, c)), - (a = rI( - R, - N, - (C = ug(V ^ Q, j ^ (o = p), 32)), - (s = p) - )), - (Q = rI( - Q, - (w = o), - (t = ug(a ^ _, (k = p) ^ c, 24)), - (o = p) - )), - (u = w = p), - (i[G >> 2] = Q), - (i[(G + 4) >> 2] = u), - (Q = ug(Q ^ C, s ^ u, 16)), - (C = p), - (i[r >> 2] = Q), - (i[(r + 4) >> 2] = C), - (Q = rI(a, k, Q, C)), - (i[f >> 2] = Q), - (C = f), - (f = p), - (i[(C + 4) >> 2] = f), - (QA = A), - (CA = ug(Q ^ t, f ^ o, 63)), - (i[QA >> 2] = CA), - (i[(A + 4) >> 2] = p), - (C = E), - (Q = ug(IA ^ (f = rI(x, T, E, e)), gA ^ (t = p), 32)), - (A = ug( - C ^ (r = rI(O, z, Q, (E = p))), - (A = e) ^ (e = p), - 24 - )), - (f = rI(f, (C = t), A, (t = p))), - (C = o = p), - (i[H >> 2] = f), - (i[(H + 4) >> 2] = C), - (f = ug(Q ^ f, E ^ C, 16)), - (Q = p), - (i[U >> 2] = f), - (i[(U + 4) >> 2] = Q), - (f = rI(r, e, f, Q)), - (i[l >> 2] = f), - (Q = p), - (i[(l + 4) >> 2] = Q), - (QA = n), - (CA = ug(A ^ f, Q ^ t, 63)), - (i[QA >> 2] = CA), - (i[(n + 4) >> 2] = p), - 8 != (0 | (F = (F + 1) | 0)); - - ); - for ( - ; - (F = - i[ - (768 + - (A = ((t = I << 4) + ((B + 1024) | 0)) | 0)) >> - 2 - ]), - (f = i[(A + 772) >> 2]), - (a = i[(Q = (A + 512) | 0) >> 2]), - (o = i[(Q + 4) >> 2]), - (C = F), - (F = i[(A + 256) >> 2]), - (Q = i[(A + 260) >> 2]), - (E = ug( - C ^ (n = rI(i[A >> 2], i[(A + 4) >> 2], F, Q)), - (E = f) ^ (f = p), - 32 - )), - (Q = ug( - (C = (r = rI(a, o, E, (e = p))) ^ F), - Q ^ (F = p), - 24 - )), - (w = F), - (s = ug( - (o = rI(n, f, Q, (F = p))) ^ E, - (C = p) ^ e, - 16 - )), - (F = ug( - Q ^ (U = rI(r, w, s, (a = p))), - (k = p) ^ F, - 63 - )), - (f = p), - (Q = i[(A + 780) >> 2]), - (u = i[(A + 520) >> 2]), - (y = i[(A + 524) >> 2]), - (r = ug( - (G = i[(A + 776) >> 2]) ^ - (e = rI( - (w = - i[ - (n = t = - (((B + 1024) | 0) + (8 | t)) | 0) >> 2 - ]), - (e = i[(n + 4) >> 2]), - (n = i[(A + 264) >> 2]), - (E = i[(A + 268) >> 2]) - )), - (w = Q) ^ (Q = p), - 32 - )), - (E = ug( - (w = (G = rI(u, y, r, (l = p))) ^ n), - E ^ (n = p), - 24 - )), - (y = G), - (u = ug( - (G = rI(e, (w = Q), E, (Q = p))) ^ r, - (w = p) ^ l, - 16 - )), - (Q = ug( - E ^ (Y = rI(y, n, u, (b = p))), - (d = p) ^ Q, - 63 - )), - (n = p), - (E = i[(A + 900) >> 2]), - (D = i[(A + 640) >> 2]), - (m = i[(A + 644) >> 2]), - (c = i[(A + 896) >> 2]), - (e = i[(A + 384) >> 2]), - (r = i[(A + 388) >> 2]), - (H = ug( - c ^ - (l = rI( - i[(A + 128) >> 2], - i[(A + 132) >> 2], - e, - r - )), - (y = E) ^ (E = p), - 32 - )), - (r = ug( - (y = (c = rI(D, m, H, (_ = p))) ^ e), - r ^ (e = p), - 24 - )), - (D = c), - (c = ug( - (c = H) ^ (H = rI(l, (y = E), r, (E = p))), - (y = _) ^ (_ = p), - 16 - )), - (E = ug( - r ^ (y = rI(D, e, c, (m = p))), - (P = p) ^ E, - 63 - )), - (e = p), - (r = i[(A + 908) >> 2]), - (q = i[(A + 648) >> 2]), - (j = i[(A + 652) >> 2]), - (v = i[(A + 904) >> 2]), - (l = i[(A + 392) >> 2]), - (S = i[(A + 396) >> 2]), - (N = ug( - v ^ - (R = rI( - i[(A + 136) >> 2], - i[(A + 140) >> 2], - l, - S - )), - (D = r) ^ (r = p), - 32 - )), - (v = S = - ug( - (D = (J = rI(q, j, N, (M = p))) ^ l), - S ^ (l = p), - 24 - )), - (N = ug( - (S = rI(R, (D = r), S, (r = p))) ^ N, - (R = p) ^ M, - 16 - )), - (r = ug( - v ^ (J = rI(J, l, N, (M = p))), - (V = p) ^ r, - 63 - )), - (l = p), - (v = y), - (D = P), - (y = ug(N ^ (o = rI(o, C, Q, n)), M ^ (C = p), 32)), - (Q = ug( - (N = rI(v, D, y, (P = p))) ^ Q, - (M = p) ^ n, - 24 - )), - (n = rI((n = o), C, Q, (o = p))), - (C = p), - (i[A >> 2] = n), - (i[(A + 4) >> 2] = C), - (n = ug(n ^ y, P ^ C, 16)), - (C = p), - (i[(A + 904) >> 2] = n), - (i[(A + 908) >> 2] = C), - (n = rI(N, M, n, C)), - (C = p), - (i[(A + 640) >> 2] = n), - (i[(A + 644) >> 2] = C), - (QA = A), - (CA = ug(Q ^ n, o ^ C, 63)), - (i[(QA + 264) >> 2] = CA), - (i[(A + 268) >> 2] = p), - (y = E), - (n = rI(G, w, E, e)), - (s = rI( - J, - V, - (o = ug(s ^ n, a ^ (E = p), 32)), - (C = p) - )), - (n = rI( - n, - (a = E), - (Q = ug(y ^ s, (Q = e) ^ (e = p), 24)), - (E = p) - )), - (a = p), - (i[t >> 2] = n), - (i[(t + 4) >> 2] = a), - (t = ug(n ^ o, C ^ a, 16)), - (n = p), - (i[(A + 768) >> 2] = t), - (i[(A + 772) >> 2] = n), - (t = rI(s, e, t, n)), - (i[(A + 648) >> 2] = t), - (n = p), - (i[(A + 652) >> 2] = n), - (QA = A), - (CA = ug(Q ^ t, n ^ E, 63)), - (i[(QA + 384) >> 2] = CA), - (i[(A + 388) >> 2] = p), - (o = r), - (E = ug(u ^ (Q = rI(H, _, r, l)), b ^ (n = p), 32)), - (t = ug( - o ^ (r = rI(U, k, E, (e = p))), - (C = l) ^ (l = p), - 24 - )), - (Q = rI(Q, (C = n), t, (n = p))), - (C = o = p), - (i[(A + 128) >> 2] = Q), - (i[(A + 132) >> 2] = C), - (Q = ug(Q ^ E, C ^ e, 16)), - (E = p), - (i[(A + 776) >> 2] = Q), - (i[(A + 780) >> 2] = E), - (Q = rI(r, l, Q, E)), - (i[(A + 512) >> 2] = Q), - (E = p), - (i[(A + 516) >> 2] = E), - (QA = A), - (CA = ug(Q ^ t, n ^ E, 63)), - (i[(QA + 392) >> 2] = CA), - (i[(A + 396) >> 2] = p), - (t = rI(S, R, F, f)), - (e = rI( - Y, - d, - (n = ug(c ^ t, m ^ (Q = p), 32)), - (E = p) - )), - (f = rI( - (C = t), - Q, - (F = ug(e ^ F, (r = p) ^ f, 24)), - (t = p) - )), - (Q = p), - (i[(A + 136) >> 2] = f), - (i[(A + 140) >> 2] = Q), - (f = ug(n ^ f, E ^ Q, 16)), - (Q = p), - (i[(A + 896) >> 2] = f), - (i[(A + 900) >> 2] = Q), - (f = rI(e, r, f, Q)), - (i[(A + 520) >> 2] = f), - (Q = p), - (i[(A + 524) >> 2] = Q), - (QA = A), - (CA = ug(f ^ F, Q ^ t, 63)), - (i[(QA + 256) >> 2] = CA), - (i[(A + 260) >> 2] = p), - 8 != (0 | (I = (I + 1) | 0)); - - ); - Yg(g, B), QI(g, (B + 1024) | 0), (h = (B + 2048) | 0) - } - function b(A, I, g) { - var B, - Q = 0, - C = 0, - E = 0, - n = 0, - a = 0, - r = 0, - o = 0, - e = 0, - t = 0, - f = 0, - c = 0, - y = 0, - s = 0, - w = 0, - D = 0, - u = 0, - l = 0, - F = 0, - G = 0, - k = 0, - _ = 0, - H = 0, - Y = 0, - b = 0, - m = 0, - v = 0, - U = 0, - S = 0, - N = 0, - M = 0, - d = 0, - P = 0, - R = 0, - J = 0, - x = 0, - L = 0, - K = 0, - q = 0, - X = 0, - V = 0, - W = 0, - T = 0, - j = 0, - Z = 0, - O = 0, - z = 0, - $ = 0, - AA = 0, - IA = 0, - gA = 0, - BA = 0, - QA = 0, - CA = 0 - for ( - h = B = (h - 2048) | 0, - Yg((B + 1024) | 0, I), - QI((B + 1024) | 0, A), - Yg(B, (B + 1024) | 0), - I = 0; - (n = - i[ - (Q = f = - (((B + 1024) | 0) + (64 | (A = F << 7))) | 0) >> 2 - ]), - (e = - i[ - (E = t = (((B + 1024) | 0) + (96 | A)) | 0) >> 2 - ]), - (E = i[(E + 4) >> 2]), - (a = n), - (w = i[(Q + 4) >> 2]), - (o = e), - (Q = (A + ((B + 1024) | 0)) | 0), - (r = i[(n = (((B + 1024) | 0) + (32 | A)) | 0) >> 2]), - (e = i[(n + 4) >> 2]), - (o = ug( - o ^ (l = rI(i[Q >> 2], i[(Q + 4) >> 2], r, e)), - (C = E) ^ (E = p), - 32 - )), - (e = ug( - (a = (s = rI(a, w, o, (C = p))) ^ r), - e ^ (r = p), - 24 - )), - (P = ug( - (m = rI(l, (a = E), e, (E = p))) ^ o, - (y = p) ^ C, - 16 - )), - (E = ug( - e ^ (R = rI(s, r, P, (S = p))), - (N = p) ^ E, - 63 - )), - (e = p), - (o = - i[(r = (((B + 1024) | 0) + (104 | A)) | 0) >> 2]), - (s = i[(r + 4) >> 2]), - (H = - i[ - (C = l = (((B + 1024) | 0) + (72 | A)) | 0) >> 2 - ]), - (c = i[(C + 4) >> 2]), - (G = ug( - (G = o) ^ - (k = rI( - (u = - i[ - (C = o = - (((B + 1024) | 0) + (8 | A)) | 0) >> 2 - ]), - (w = i[(C + 4) >> 2]), - (U = - i[ - (C = (((B + 1024) | 0) + (40 | A)) | 0) >> 2 - ]), - (a = i[(C + 4) >> 2]) - )), - (w = s) ^ (s = p), - 32 - )), - (a = ug( - (c = (u = rI(H, c, G, (w = p))) ^ U), - a ^ (U = p), - 24 - )), - (V = ug( - (M = rI(k, (c = s), a, (s = p))) ^ G, - (J = p) ^ w, - 16 - )), - (s = ug( - a ^ (O = rI(u, U, V, (j = p))), - (z = p) ^ s, - 63 - )), - (a = p), - (G = - i[ - (k = U = (((B + 1024) | 0) + (112 | A)) | 0) >> 2 - ]), - (u = i[(k + 4) >> 2]), - (v = i[(k = (((B + 1024) | 0) + (80 | A)) | 0) >> 2]), - (D = i[(k + 4) >> 2]), - (H = G), - (G = (((B + 1024) | 0) + (16 | A)) | 0), - (Y = - i[ - (b = w = (((B + 1024) | 0) + (48 | A)) | 0) >> 2 - ]), - (b = i[(b + 4) >> 2]), - (H = ug( - H ^ (d = rI(i[G >> 2], i[(G + 4) >> 2], Y, b)), - (c = u) ^ (u = p), - 32 - )), - (b = ug( - (D = (c = rI(v, D, H, (_ = p))) ^ Y), - b ^ (Y = p), - 24 - )), - (IA = ug( - ($ = rI(d, (D = u), b, (u = p))) ^ H, - (AA = p) ^ _, - 16 - )), - (u = ug( - b ^ (W = rI(c, Y, IA, (gA = p))), - (q = p) ^ u, - 63 - )), - (b = p), - (H = - i[(Y = (((B + 1024) | 0) + (120 | A)) | 0) >> 2]), - (_ = i[(Y + 4) >> 2]), - (BA = - i[ - (c = d = (((B + 1024) | 0) + (88 | A)) | 0) >> 2 - ]), - (X = i[(c + 4) >> 2]), - (L = ug( - (v = H) ^ - (T = rI( - (Z = - i[ - (c = H = - (((B + 1024) | 0) + (24 | A)) | 0) >> 2 - ]), - (D = i[(c + 4) >> 2]), - (x = - i[ - (A = (((B + 1024) | 0) + (56 | A)) | 0) >> 2 - ]), - (c = i[(A + 4) >> 2]) - )), - (D = _) ^ (_ = p), - 32 - )), - (c = ug( - (D = (X = rI(BA, X, L, (K = p))) ^ x), - c ^ (x = p), - 24 - )), - (v = x), - (L = ug( - (x = rI(T, (D = _), c, (_ = p))) ^ L, - (T = p) ^ K, - 16 - )), - (_ = ug( - c ^ (X = rI(X, v, L, (K = p))), - (Z = p) ^ _, - 63 - )), - (c = p), - (v = W), - (D = q), - (W = ug(L ^ (m = rI(m, y, s, a)), K ^ (y = p), 32)), - (s = ug( - (L = rI(v, D, W, (q = p))) ^ s, - (K = p) ^ a, - 24 - )), - (a = rI((a = m), y, s, (m = p))), - (y = p), - (i[Q >> 2] = a), - (i[(Q + 4) >> 2] = y), - (Q = ug(a ^ W, q ^ y, 16)), - (a = p), - (i[Y >> 2] = Q), - (i[(Y + 4) >> 2] = a), - (Q = rI(L, K, Q, a)), - (a = p), - (i[k >> 2] = Q), - (i[(k + 4) >> 2] = a), - (QA = C), - (CA = ug(Q ^ s, a ^ m, 63)), - (i[QA >> 2] = CA), - (i[(C + 4) >> 2] = p), - (y = u), - (a = ug(P ^ (C = rI(M, J, u, b)), S ^ (s = p), 32)), - (Q = ug( - y ^ (u = rI(X, Z, a, (k = p))), - (Q = b) ^ (b = p), - 24 - )), - (C = rI(C, (y = s), Q, (s = p))), - (Y = p), - (i[o >> 2] = C), - (i[(o + 4) >> 2] = Y), - (o = ug(C ^ a, k ^ Y, 16)), - (C = p), - (i[t >> 2] = o), - (i[(t + 4) >> 2] = C), - (t = rI(u, b, o, C)), - (i[d >> 2] = t), - (o = p), - (i[(d + 4) >> 2] = o), - (QA = w), - (CA = ug(Q ^ t, o ^ s, 63)), - (i[QA >> 2] = CA), - (i[(w + 4) >> 2] = p), - (Q = rI($, AA, _, c)), - (a = rI( - R, - N, - (C = ug(V ^ Q, j ^ (o = p), 32)), - (s = p) - )), - (Q = rI( - Q, - (w = o), - (t = ug(a ^ _, (k = p) ^ c, 24)), - (o = p) - )), - (u = w = p), - (i[G >> 2] = Q), - (i[(G + 4) >> 2] = u), - (Q = ug(Q ^ C, s ^ u, 16)), - (C = p), - (i[r >> 2] = Q), - (i[(r + 4) >> 2] = C), - (Q = rI(a, k, Q, C)), - (i[f >> 2] = Q), - (C = f), - (f = p), - (i[(C + 4) >> 2] = f), - (QA = A), - (CA = ug(Q ^ t, f ^ o, 63)), - (i[QA >> 2] = CA), - (i[(A + 4) >> 2] = p), - (C = E), - (Q = ug(IA ^ (f = rI(x, T, E, e)), gA ^ (t = p), 32)), - (A = ug( - C ^ (r = rI(O, z, Q, (E = p))), - (A = e) ^ (e = p), - 24 - )), - (f = rI(f, (C = t), A, (t = p))), - (C = o = p), - (i[H >> 2] = f), - (i[(H + 4) >> 2] = C), - (f = ug(Q ^ f, E ^ C, 16)), - (Q = p), - (i[U >> 2] = f), - (i[(U + 4) >> 2] = Q), - (f = rI(r, e, f, Q)), - (i[l >> 2] = f), - (Q = p), - (i[(l + 4) >> 2] = Q), - (QA = n), - (CA = ug(A ^ f, Q ^ t, 63)), - (i[QA >> 2] = CA), - (i[(n + 4) >> 2] = p), - 8 != (0 | (F = (F + 1) | 0)); - - ); - for ( - ; - (F = - i[ - (768 + - (A = ((t = I << 4) + ((B + 1024) | 0)) | 0)) >> - 2 - ]), - (f = i[(A + 772) >> 2]), - (a = i[(Q = (A + 512) | 0) >> 2]), - (o = i[(Q + 4) >> 2]), - (C = F), - (F = i[(A + 256) >> 2]), - (Q = i[(A + 260) >> 2]), - (E = ug( - C ^ (n = rI(i[A >> 2], i[(A + 4) >> 2], F, Q)), - (E = f) ^ (f = p), - 32 - )), - (Q = ug( - (C = (r = rI(a, o, E, (e = p))) ^ F), - Q ^ (F = p), - 24 - )), - (w = F), - (s = ug( - (o = rI(n, f, Q, (F = p))) ^ E, - (C = p) ^ e, - 16 - )), - (F = ug( - Q ^ (U = rI(r, w, s, (a = p))), - (k = p) ^ F, - 63 - )), - (f = p), - (Q = i[(A + 780) >> 2]), - (u = i[(A + 520) >> 2]), - (y = i[(A + 524) >> 2]), - (r = ug( - (G = i[(A + 776) >> 2]) ^ - (e = rI( - (w = - i[ - (n = t = - (((B + 1024) | 0) + (8 | t)) | 0) >> 2 - ]), - (e = i[(n + 4) >> 2]), - (n = i[(A + 264) >> 2]), - (E = i[(A + 268) >> 2]) - )), - (w = Q) ^ (Q = p), - 32 - )), - (E = ug( - (w = (G = rI(u, y, r, (l = p))) ^ n), - E ^ (n = p), - 24 - )), - (y = G), - (u = ug( - (G = rI(e, (w = Q), E, (Q = p))) ^ r, - (w = p) ^ l, - 16 - )), - (Q = ug( - E ^ (Y = rI(y, n, u, (b = p))), - (d = p) ^ Q, - 63 - )), - (n = p), - (E = i[(A + 900) >> 2]), - (D = i[(A + 640) >> 2]), - (m = i[(A + 644) >> 2]), - (c = i[(A + 896) >> 2]), - (e = i[(A + 384) >> 2]), - (r = i[(A + 388) >> 2]), - (H = ug( - c ^ - (l = rI( - i[(A + 128) >> 2], - i[(A + 132) >> 2], - e, - r - )), - (y = E) ^ (E = p), - 32 - )), - (r = ug( - (y = (c = rI(D, m, H, (_ = p))) ^ e), - r ^ (e = p), - 24 - )), - (D = c), - (c = ug( - (c = H) ^ (H = rI(l, (y = E), r, (E = p))), - (y = _) ^ (_ = p), - 16 - )), - (E = ug( - r ^ (y = rI(D, e, c, (m = p))), - (P = p) ^ E, - 63 - )), - (e = p), - (r = i[(A + 908) >> 2]), - (q = i[(A + 648) >> 2]), - (j = i[(A + 652) >> 2]), - (v = i[(A + 904) >> 2]), - (l = i[(A + 392) >> 2]), - (S = i[(A + 396) >> 2]), - (N = ug( - v ^ - (R = rI( - i[(A + 136) >> 2], - i[(A + 140) >> 2], - l, - S - )), - (D = r) ^ (r = p), - 32 - )), - (v = S = - ug( - (D = (J = rI(q, j, N, (M = p))) ^ l), - S ^ (l = p), - 24 - )), - (N = ug( - (S = rI(R, (D = r), S, (r = p))) ^ N, - (R = p) ^ M, - 16 - )), - (r = ug( - v ^ (J = rI(J, l, N, (M = p))), - (V = p) ^ r, - 63 - )), - (l = p), - (v = y), - (D = P), - (y = ug(N ^ (o = rI(o, C, Q, n)), M ^ (C = p), 32)), - (Q = ug( - (N = rI(v, D, y, (P = p))) ^ Q, - (M = p) ^ n, - 24 - )), - (n = rI((n = o), C, Q, (o = p))), - (C = p), - (i[A >> 2] = n), - (i[(A + 4) >> 2] = C), - (n = ug(n ^ y, P ^ C, 16)), - (C = p), - (i[(A + 904) >> 2] = n), - (i[(A + 908) >> 2] = C), - (n = rI(N, M, n, C)), - (C = p), - (i[(A + 640) >> 2] = n), - (i[(A + 644) >> 2] = C), - (QA = A), - (CA = ug(Q ^ n, o ^ C, 63)), - (i[(QA + 264) >> 2] = CA), - (i[(A + 268) >> 2] = p), - (y = E), - (n = rI(G, w, E, e)), - (s = rI( - J, - V, - (o = ug(s ^ n, a ^ (E = p), 32)), - (C = p) - )), - (n = rI( - n, - (a = E), - (Q = ug(y ^ s, (Q = e) ^ (e = p), 24)), - (E = p) - )), - (a = p), - (i[t >> 2] = n), - (i[(t + 4) >> 2] = a), - (t = ug(n ^ o, C ^ a, 16)), - (n = p), - (i[(A + 768) >> 2] = t), - (i[(A + 772) >> 2] = n), - (t = rI(s, e, t, n)), - (i[(A + 648) >> 2] = t), - (n = p), - (i[(A + 652) >> 2] = n), - (QA = A), - (CA = ug(Q ^ t, n ^ E, 63)), - (i[(QA + 384) >> 2] = CA), - (i[(A + 388) >> 2] = p), - (o = r), - (E = ug(u ^ (Q = rI(H, _, r, l)), b ^ (n = p), 32)), - (t = ug( - o ^ (r = rI(U, k, E, (e = p))), - (C = l) ^ (l = p), - 24 - )), - (Q = rI(Q, (C = n), t, (n = p))), - (C = o = p), - (i[(A + 128) >> 2] = Q), - (i[(A + 132) >> 2] = C), - (Q = ug(Q ^ E, C ^ e, 16)), - (E = p), - (i[(A + 776) >> 2] = Q), - (i[(A + 780) >> 2] = E), - (Q = rI(r, l, Q, E)), - (i[(A + 512) >> 2] = Q), - (E = p), - (i[(A + 516) >> 2] = E), - (QA = A), - (CA = ug(Q ^ t, n ^ E, 63)), - (i[(QA + 392) >> 2] = CA), - (i[(A + 396) >> 2] = p), - (t = rI(S, R, F, f)), - (e = rI( - Y, - d, - (n = ug(c ^ t, m ^ (Q = p), 32)), - (E = p) - )), - (f = rI( - (C = t), - Q, - (F = ug(e ^ F, (r = p) ^ f, 24)), - (t = p) - )), - (Q = p), - (i[(A + 136) >> 2] = f), - (i[(A + 140) >> 2] = Q), - (f = ug(n ^ f, E ^ Q, 16)), - (Q = p), - (i[(A + 896) >> 2] = f), - (i[(A + 900) >> 2] = Q), - (f = rI(e, r, f, Q)), - (i[(A + 520) >> 2] = f), - (Q = p), - (i[(A + 524) >> 2] = Q), - (QA = A), - (CA = ug(f ^ F, Q ^ t, 63)), - (i[(QA + 256) >> 2] = CA), - (i[(A + 260) >> 2] = p), - 8 != (0 | (I = (I + 1) | 0)); - - ); - Yg(g, B), QI(g, (B + 1024) | 0), (h = (B + 2048) | 0) - } - function m(A) { - var I = 0, - g = 0, - B = 0, - Q = 0, - C = 0, - E = 0, - n = 0, - r = 0, - o = 0 - A: if ((A |= 0)) { - C = - ((B = (A - 8) | 0) + - (A = -8 & (I = i[(A - 4) >> 2]))) | - 0 - I: if (!(1 & I)) { - if (!(3 & I)) break A - if ((B = (B - (I = i[B >> 2])) | 0) >>> 0 < a[8965]) - break A - if (((A = (A + I) | 0), i[8966] == (0 | B))) { - if (3 == (3 & (I = i[(C + 4) >> 2]))) - return ( - (i[8963] = A), - (i[(C + 4) >> 2] = -2 & I), - (i[(B + 4) >> 2] = 1 | A), - void (i[(A + B) >> 2] = A) - ) - } else { - if (I >>> 0 <= 255) { - if ( - ((Q = i[(B + 8) >> 2]), - (I = (I >>> 3) | 0), - (0 | (g = i[(B + 12) >> 2])) == (0 | Q)) - ) { - ;(r = 35844), - (o = i[8961] & vI(-2, I)), - (i[r >> 2] = o) - break I - } - ;(i[(Q + 12) >> 2] = g), (i[(g + 8) >> 2] = Q) - break I - } - if ( - ((n = i[(B + 24) >> 2]), - (0 | B) == (0 | (I = i[(B + 12) >> 2]))) - ) - if ( - (g = i[(Q = (B + 20) | 0) >> 2]) || - (g = i[(Q = (B + 16) | 0) >> 2]) - ) { - for ( - ; - (E = Q), - (g = i[(Q = ((I = g) + 20) | 0) >> 2]) || - ((Q = (I + 16) | 0), - (g = i[(I + 16) >> 2])); - - ); - i[E >> 2] = 0 - } else I = 0 - else - (g = i[(B + 8) >> 2]), - (i[(g + 12) >> 2] = I), - (i[(I + 8) >> 2] = g) - if (!n) break I - Q = i[(B + 28) >> 2] - g: { - if ( - i[(g = (36148 + (Q << 2)) | 0) >> 2] == - (0 | B) - ) { - if (((i[g >> 2] = I), I)) break g - ;(r = 35848), - (o = i[8962] & vI(-2, Q)), - (i[r >> 2] = o) - break I - } - if ( - ((i[ - (n + - (i[(n + 16) >> 2] == (0 | B) ? 16 : 20)) >> - 2 - ] = I), - !I) - ) - break I - } - if ( - ((i[(I + 24) >> 2] = n), - (g = i[(B + 16) >> 2]) && - ((i[(I + 16) >> 2] = g), - (i[(g + 24) >> 2] = I)), - !(g = i[(B + 20) >> 2])) - ) - break I - ;(i[(I + 20) >> 2] = g), (i[(g + 24) >> 2] = I) - } - } - if ( - !(B >>> 0 >= C >>> 0) && - 1 & (I = i[(C + 4) >> 2]) - ) { - I: { - if (!(2 & I)) { - if (i[8967] == (0 | C)) { - if ( - ((i[8967] = B), - (A = (i[8964] + A) | 0), - (i[8964] = A), - (i[(B + 4) >> 2] = 1 | A), - i[8966] != (0 | B)) - ) - break A - return (i[8963] = 0), void (i[8966] = 0) - } - if (i[8966] == (0 | C)) - return ( - (i[8966] = B), - (A = (i[8963] + A) | 0), - (i[8963] = A), - (i[(B + 4) >> 2] = 1 | A), - void (i[(A + B) >> 2] = A) - ) - A = ((-8 & I) + A) | 0 - g: if (I >>> 0 <= 255) { - if ( - ((I = (I >>> 3) | 0), - (0 | (g = i[(C + 8) >> 2])) == - (0 | (Q = i[(C + 12) >> 2]))) - ) { - ;(r = 35844), - (o = i[8961] & vI(-2, I)), - (i[r >> 2] = o) - break g - } - ;(i[(g + 12) >> 2] = Q), (i[(Q + 8) >> 2] = g) - } else { - if ( - ((n = i[(C + 24) >> 2]), - (0 | C) == (0 | (I = i[(C + 12) >> 2]))) - ) - if ( - (g = i[(Q = (C + 20) | 0) >> 2]) || - (g = i[(Q = (C + 16) | 0) >> 2]) - ) { - for ( - ; - (E = Q), - (g = - i[(Q = ((I = g) + 20) | 0) >> 2]) || - ((Q = (I + 16) | 0), - (g = i[(I + 16) >> 2])); - - ); - i[E >> 2] = 0 - } else I = 0 - else - (g = i[(C + 8) >> 2]), - (i[(g + 12) >> 2] = I), - (i[(I + 8) >> 2] = g) - if (n) { - Q = i[(C + 28) >> 2] - B: { - if ( - i[(g = (36148 + (Q << 2)) | 0) >> 2] == - (0 | C) - ) { - if (((i[g >> 2] = I), I)) break B - ;(r = 35848), - (o = i[8962] & vI(-2, Q)), - (i[r >> 2] = o) - break g - } - if ( - ((i[ - (n + - (i[(n + 16) >> 2] == (0 | C) - ? 16 - : 20)) >> - 2 - ] = I), - !I) - ) - break g - } - ;(i[(I + 24) >> 2] = n), - (g = i[(C + 16) >> 2]) && - ((i[(I + 16) >> 2] = g), - (i[(g + 24) >> 2] = I)), - (g = i[(C + 20) >> 2]) && - ((i[(I + 20) >> 2] = g), - (i[(g + 24) >> 2] = I)) - } - } - if ( - ((i[(B + 4) >> 2] = 1 | A), - (i[(A + B) >> 2] = A), - i[8966] != (0 | B)) - ) - break I - return void (i[8963] = A) - } - ;(i[(C + 4) >> 2] = -2 & I), - (i[(B + 4) >> 2] = 1 | A), - (i[(A + B) >> 2] = A) - } - if (A >>> 0 <= 255) - return ( - (I = (35884 + ((A = (A >>> 3) | 0) << 3)) | 0), - (g = i[8961]) & (A = 1 << A) - ? (A = i[(I + 8) >> 2]) - : ((i[8961] = A | g), (A = I)), - (i[(I + 8) >> 2] = B), - (i[(A + 12) >> 2] = B), - (i[(B + 12) >> 2] = I), - void (i[(B + 8) >> 2] = A) - ) - ;(Q = 31), - (i[(B + 16) >> 2] = 0), - (i[(B + 20) >> 2] = 0), - A >>> 0 <= 16777215 && - ((I = (A >>> 8) | 0), - (I <<= E = ((I + 1048320) >>> 16) & 8), - (Q = - (28 + - (((I = - (((((I <<= Q = ((I + 520192) >>> 16) & 4) << - (g = ((I + 245760) >>> 16) & 2)) >>> - 15) | - 0) - - (g | Q | E)) | - 0) << - 1) | - ((A >>> (I + 21)) & 1))) | - 0)), - (i[(B + 28) >> 2] = Q), - (E = (36148 + (Q << 2)) | 0) - I: { - g: { - if ((g = i[8962]) & (I = 1 << Q)) { - for ( - Q = - A << - (31 == (0 | Q) - ? 0 - : (25 - ((Q >>> 1) | 0)) | 0), - I = i[E >> 2]; - ; - - ) { - if ( - ((g = I), (-8 & i[(I + 4) >> 2]) == (0 | A)) - ) - break g - if ( - ((I = (Q >>> 29) | 0), - (Q <<= 1), - !(I = - i[(16 + (E = (g + (4 & I)) | 0)) >> 2])) - ) - break - } - ;(i[(E + 16) >> 2] = B), (i[(B + 24) >> 2] = g) - } else - (i[8962] = I | g), - (i[E >> 2] = B), - (i[(B + 24) >> 2] = E) - ;(i[(B + 12) >> 2] = B), (i[(B + 8) >> 2] = B) - break I - } - ;(A = i[(g + 8) >> 2]), - (i[(A + 12) >> 2] = B), - (i[(g + 8) >> 2] = B), - (i[(B + 24) >> 2] = 0), - (i[(B + 12) >> 2] = g), - (i[(B + 8) >> 2] = A) - } - ;(A = (i[8969] - 1) | 0), (i[8969] = A || -1) - } - } - } - function v(A, I) { - var g, - B = 0, - Q = 0, - C = 0, - E = 0, - n = 0, - a = 0, - r = 0 - g = (A + I) | 0 - A: { - I: if (!(1 & (B = i[(A + 4) >> 2]))) { - if (!(3 & B)) break A - if ( - ((I = ((B = i[A >> 2]) + I) | 0), - (0 | (A = (A - B) | 0)) == i[8966]) - ) { - if (3 == (3 & (B = i[(g + 4) >> 2]))) - return ( - (i[8963] = I), - (i[(g + 4) >> 2] = -2 & B), - (i[(A + 4) >> 2] = 1 | I), - void (i[g >> 2] = I) - ) - } else { - if (B >>> 0 <= 255) { - if ( - ((C = i[(A + 8) >> 2]), - (B = (B >>> 3) | 0), - (0 | (Q = i[(A + 12) >> 2])) == (0 | C)) - ) { - ;(a = 35844), - (r = i[8961] & vI(-2, B)), - (i[a >> 2] = r) - break I - } - ;(i[(C + 12) >> 2] = Q), (i[(Q + 8) >> 2] = C) - break I - } - if ( - ((n = i[(A + 24) >> 2]), - (0 | (B = i[(A + 12) >> 2])) == (0 | A)) - ) - if ( - (Q = i[(C = (A + 20) | 0) >> 2]) || - (Q = i[(C = (A + 16) | 0) >> 2]) - ) { - for ( - ; - (E = C), - (Q = i[(C = ((B = Q) + 20) | 0) >> 2]) || - ((C = (B + 16) | 0), - (Q = i[(B + 16) >> 2])); - - ); - i[E >> 2] = 0 - } else B = 0 - else - (Q = i[(A + 8) >> 2]), - (i[(Q + 12) >> 2] = B), - (i[(B + 8) >> 2] = Q) - if (!n) break I - C = i[(A + 28) >> 2] - g: { - if ( - i[(Q = (36148 + (C << 2)) | 0) >> 2] == - (0 | A) - ) { - if (((i[Q >> 2] = B), B)) break g - ;(a = 35848), - (r = i[8962] & vI(-2, C)), - (i[a >> 2] = r) - break I - } - if ( - ((i[ - (n + - (i[(n + 16) >> 2] == (0 | A) ? 16 : 20)) >> - 2 - ] = B), - !B) - ) - break I - } - if ( - ((i[(B + 24) >> 2] = n), - (Q = i[(A + 16) >> 2]) && - ((i[(B + 16) >> 2] = Q), - (i[(Q + 24) >> 2] = B)), - !(Q = i[(A + 20) >> 2])) - ) - break I - ;(i[(B + 20) >> 2] = Q), (i[(Q + 24) >> 2] = B) - } - } - I: { - if (!(2 & (B = i[(g + 4) >> 2]))) { - if (i[8967] == (0 | g)) { - if ( - ((i[8967] = A), - (I = (i[8964] + I) | 0), - (i[8964] = I), - (i[(A + 4) >> 2] = 1 | I), - i[8966] != (0 | A)) - ) - break A - return (i[8963] = 0), void (i[8966] = 0) - } - if (i[8966] == (0 | g)) - return ( - (i[8966] = A), - (I = (i[8963] + I) | 0), - (i[8963] = I), - (i[(A + 4) >> 2] = 1 | I), - void (i[(A + I) >> 2] = I) - ) - I = ((-8 & B) + I) | 0 - g: if (B >>> 0 <= 255) { - if ( - ((C = i[(g + 8) >> 2]), - (B = (B >>> 3) | 0), - (0 | (Q = i[(g + 12) >> 2])) == (0 | C)) - ) { - ;(a = 35844), - (r = i[8961] & vI(-2, B)), - (i[a >> 2] = r) - break g - } - ;(i[(C + 12) >> 2] = Q), (i[(Q + 8) >> 2] = C) - } else { - if ( - ((n = i[(g + 24) >> 2]), - (0 | g) == (0 | (B = i[(g + 12) >> 2]))) - ) - if ( - (C = i[(Q = (g + 20) | 0) >> 2]) || - (C = i[(Q = (g + 16) | 0) >> 2]) - ) { - for ( - ; - (E = Q), - (C = i[(Q = ((B = C) + 20) | 0) >> 2]) || - ((Q = (B + 16) | 0), - (C = i[(B + 16) >> 2])); - - ); - i[E >> 2] = 0 - } else B = 0 - else - (Q = i[(g + 8) >> 2]), - (i[(Q + 12) >> 2] = B), - (i[(B + 8) >> 2] = Q) - if (n) { - C = i[(g + 28) >> 2] - B: { - if ( - i[(Q = (36148 + (C << 2)) | 0) >> 2] == - (0 | g) - ) { - if (((i[Q >> 2] = B), B)) break B - ;(a = 35848), - (r = i[8962] & vI(-2, C)), - (i[a >> 2] = r) - break g - } - if ( - ((i[ - (n + - (i[(n + 16) >> 2] == (0 | g) - ? 16 - : 20)) >> - 2 - ] = B), - !B) - ) - break g - } - ;(i[(B + 24) >> 2] = n), - (Q = i[(g + 16) >> 2]) && - ((i[(B + 16) >> 2] = Q), - (i[(Q + 24) >> 2] = B)), - (Q = i[(g + 20) >> 2]) && - ((i[(B + 20) >> 2] = Q), - (i[(Q + 24) >> 2] = B)) - } - } - if ( - ((i[(A + 4) >> 2] = 1 | I), - (i[(A + I) >> 2] = I), - i[8966] != (0 | A)) - ) - break I - return void (i[8963] = I) - } - ;(i[(g + 4) >> 2] = -2 & B), - (i[(A + 4) >> 2] = 1 | I), - (i[(A + I) >> 2] = I) - } - if (I >>> 0 <= 255) - return ( - (B = (35884 + ((I = (I >>> 3) | 0) << 3)) | 0), - (Q = i[8961]) & (I = 1 << I) - ? (I = i[(B + 8) >> 2]) - : ((i[8961] = I | Q), (I = B)), - (i[(B + 8) >> 2] = A), - (i[(I + 12) >> 2] = A), - (i[(A + 12) >> 2] = B), - void (i[(A + 8) >> 2] = I) - ) - ;(C = 31), - (i[(A + 16) >> 2] = 0), - (i[(A + 20) >> 2] = 0), - I >>> 0 <= 16777215 && - ((B = (I >>> 8) | 0), - (B <<= E = ((B + 1048320) >>> 16) & 8), - (C = - (28 + - (((B = - (((((B <<= C = ((B + 520192) >>> 16) & 4) << - (Q = ((B + 245760) >>> 16) & 2)) >>> - 15) | - 0) - - (Q | C | E)) | - 0) << - 1) | - ((I >>> (B + 21)) & 1))) | - 0)), - (i[(A + 28) >> 2] = C), - (E = (36148 + (C << 2)) | 0) - I: { - if ((Q = i[8962]) & (B = 1 << C)) { - for ( - C = - I << - (31 == (0 | C) - ? 0 - : (25 - ((C >>> 1) | 0)) | 0), - B = i[E >> 2]; - ; - - ) { - if (((Q = B), (-8 & i[(B + 4) >> 2]) == (0 | I))) - break I - if ( - ((B = (C >>> 29) | 0), - (C <<= 1), - !(B = i[(16 + (E = (Q + (4 & B)) | 0)) >> 2])) - ) - break - } - ;(i[(E + 16) >> 2] = A), (i[(A + 24) >> 2] = Q) - } else - (i[8962] = B | Q), - (i[E >> 2] = A), - (i[(A + 24) >> 2] = E) - return ( - (i[(A + 12) >> 2] = A), void (i[(A + 8) >> 2] = A) - ) - } - ;(I = i[(Q + 8) >> 2]), - (i[(I + 12) >> 2] = A), - (i[(Q + 8) >> 2] = A), - (i[(A + 24) >> 2] = 0), - (i[(A + 12) >> 2] = Q), - (i[(A + 8) >> 2] = I) - } - } - function U(A, I, g, B, Q) { - var E, - a, - r, - o, - e, - t, - f, - c, - y, - s, - w, - D, - u, - p, - l, - F = 0, - G = 0, - k = 0, - _ = 0, - H = 0, - Y = 0, - b = 0, - m = 0, - v = 0, - U = 0, - S = 0, - N = 0, - M = 0, - d = 0, - P = 0, - R = 0, - J = 0, - x = 0, - L = 0, - K = 0, - q = 0, - X = 0, - V = 0, - W = 0, - T = 0, - j = 0, - Z = 0, - O = 0, - z = 0, - $ = 0, - AA = 0, - IA = 0, - gA = 0, - BA = 0 - for ( - h = E = (h + -64) | 0, - a = i[(A + 60) >> 2], - r = i[(A + 56) >> 2], - K = i[(A + 52) >> 2], - x = i[(A + 48) >> 2], - o = i[(A + 44) >> 2], - e = i[(A + 40) >> 2], - t = i[(A + 36) >> 2], - f = i[(A + 32) >> 2], - c = i[(A + 28) >> 2], - y = i[(A + 24) >> 2], - s = i[(A + 20) >> 2], - w = i[(A + 16) >> 2], - D = i[(A + 12) >> 2], - u = i[(A + 8) >> 2], - p = i[(A + 4) >> 2], - l = i[A >> 2]; - ; - - ) { - if ((!Q & (B >>> 0 > 63)) | Q) k = g - else { - if (((_ = 0), (k = F = EA(E, 0, 64)), B | Q)) - for ( - ; - (C[(F + _) | 0] = n[(I + _) | 0]), - (!Q & ((_ = (_ + 1) | 0) >>> 0 < B >>> 0)) | Q; - - ); - ;(I = k), (V = g) - } - for ( - q = 20, - m = l, - v = p, - U = u, - S = D, - _ = w, - F = s, - g = y, - N = c, - H = f, - Y = t, - M = e, - d = a, - P = r, - G = K, - R = x, - L = o; - (b = _), - (m = Hg((_ = (_ + m) | 0) ^ R, 16)), - (R = Hg(b ^ (H = (m + H) | 0), 12)), - (b = H), - (H = Hg((H = m) ^ (m = (_ + R) | 0), 8)), - (_ = Hg(R ^ (J = (b + H) | 0), 7)), - (b = F), - (v = Hg((F = (F + v) | 0) ^ G, 16)), - (G = Hg(b ^ (Y = (v + Y) | 0), 12)), - (b = Y), - (Y = Hg((Y = v) ^ (v = (F + G) | 0), 8)), - (F = Hg(G ^ (X = (b + Y) | 0), 7)), - (G = g), - (U = Hg((g = (g + U) | 0) ^ P, 16)), - (b = P = Hg(G ^ (M = (U + M) | 0), 12)), - (P = Hg((G = U) ^ (U = (g + P) | 0), 8)), - (g = Hg(b ^ (M = (P + M) | 0), 7)), - (G = N), - (S = Hg((N = (N + S) | 0) ^ d, 16)), - (L = G = Hg(G ^ (d = (S + L) | 0), 12)), - (b = d), - (d = Hg((d = S) ^ (S = (N + G) | 0), 8)), - (N = Hg(L ^ (G = (b + d) | 0), 7)), - (b = M), - (M = Hg((m = (F + m) | 0) ^ d, 16)), - (F = Hg((R = (b + M) | 0) ^ F, 12)), - (d = Hg(M ^ (m = (F + m) | 0), 8)), - (F = Hg(F ^ (M = (R + d) | 0), 7)), - (H = Hg((v = (g + v) | 0) ^ H, 16)), - (g = Hg((G = (H + G) | 0) ^ g, 12)), - (R = Hg(H ^ (v = (g + v) | 0), 8)), - (g = Hg(g ^ (L = (G + R) | 0), 7)), - (H = Hg((U = (N + U) | 0) ^ Y, 16)), - (N = Hg((Y = (H + J) | 0) ^ N, 12)), - (G = Hg(H ^ (U = (N + U) | 0), 8)), - (N = Hg(N ^ (H = (Y + G) | 0), 7)), - (Y = Hg((S = (_ + S) | 0) ^ P, 16)), - (_ = Hg((J = (Y + X) | 0) ^ _, 12)), - (P = Hg(Y ^ (S = (_ + S) | 0), 8)), - (_ = Hg(_ ^ (Y = (J + P) | 0), 7)), - (q = (q - 2) | 0); - - ); - if ( - ((q = - n[(I + 4) | 0] | - (n[(I + 5) | 0] << 8) | - (n[(I + 6) | 0] << 16) | - (n[(I + 7) | 0] << 24)), - (J = - n[(I + 8) | 0] | - (n[(I + 9) | 0] << 8) | - (n[(I + 10) | 0] << 16) | - (n[(I + 11) | 0] << 24)), - (X = - n[(I + 12) | 0] | - (n[(I + 13) | 0] << 8) | - (n[(I + 14) | 0] << 16) | - (n[(I + 15) | 0] << 24)), - (W = - n[(I + 16) | 0] | - (n[(I + 17) | 0] << 8) | - (n[(I + 18) | 0] << 16) | - (n[(I + 19) | 0] << 24)), - (T = - n[(I + 20) | 0] | - (n[(I + 21) | 0] << 8) | - (n[(I + 22) | 0] << 16) | - (n[(I + 23) | 0] << 24)), - (j = - n[(I + 24) | 0] | - (n[(I + 25) | 0] << 8) | - (n[(I + 26) | 0] << 16) | - (n[(I + 27) | 0] << 24)), - (Z = - n[(I + 28) | 0] | - (n[(I + 29) | 0] << 8) | - (n[(I + 30) | 0] << 16) | - (n[(I + 31) | 0] << 24)), - (O = - n[(I + 32) | 0] | - (n[(I + 33) | 0] << 8) | - (n[(I + 34) | 0] << 16) | - (n[(I + 35) | 0] << 24)), - (z = - n[(I + 36) | 0] | - (n[(I + 37) | 0] << 8) | - (n[(I + 38) | 0] << 16) | - (n[(I + 39) | 0] << 24)), - ($ = - n[(I + 40) | 0] | - (n[(I + 41) | 0] << 8) | - (n[(I + 42) | 0] << 16) | - (n[(I + 43) | 0] << 24)), - (AA = - n[(I + 44) | 0] | - (n[(I + 45) | 0] << 8) | - (n[(I + 46) | 0] << 16) | - (n[(I + 47) | 0] << 24)), - (IA = - n[(I + 48) | 0] | - (n[(I + 49) | 0] << 8) | - (n[(I + 50) | 0] << 16) | - (n[(I + 51) | 0] << 24)), - (gA = - n[(I + 52) | 0] | - (n[(I + 53) | 0] << 8) | - (n[(I + 54) | 0] << 16) | - (n[(I + 55) | 0] << 24)), - (BA = - n[(I + 56) | 0] | - (n[(I + 57) | 0] << 8) | - (n[(I + 58) | 0] << 16) | - (n[(I + 59) | 0] << 24)), - (b = - n[(I + 60) | 0] | - (n[(I + 61) | 0] << 8) | - (n[(I + 62) | 0] << 16) | - (n[(I + 63) | 0] << 24)), - xI( - k, - (m + l) ^ - (n[0 | I] | - (n[(I + 1) | 0] << 8) | - (n[(I + 2) | 0] << 16) | - (n[(I + 3) | 0] << 24)) - ), - xI((k + 4) | 0, (v + p) ^ q), - xI((k + 8) | 0, (U + u) ^ J), - xI((k + 12) | 0, (S + D) ^ X), - xI((k + 16) | 0, (_ + w) ^ W), - xI((k + 20) | 0, (F + s) ^ T), - xI((k + 24) | 0, (g + y) ^ j), - xI((k + 28) | 0, (N + c) ^ Z), - xI((k + 32) | 0, (H + f) ^ O), - xI((k + 36) | 0, (Y + t) ^ z), - xI((k + 40) | 0, $ ^ (M + e)), - xI((k + 44) | 0, AA ^ (L + o)), - xI((k + 48) | 0, IA ^ (R + x)), - xI((k + 52) | 0, gA ^ (G + K)), - xI((k + 56) | 0, BA ^ (P + r)), - xI((k + 60) | 0, b ^ (d + a)), - (K = - (((x = ((g = x) + 1) | 0) >>> 0 < g >>> 0) + K) | - 0), - !Q & (B >>> 0 <= 64)) - ) { - if (!(!B | (!Q & (B >>> 0 > 63)) | (0 != (0 | Q)))) - for ( - F = 0; - (C[(F + V) | 0] = n[(k + F) | 0]), - (0 | B) != (0 | (F = (F + 1) | 0)); - - ); - ;(i[(A + 52) >> 2] = K), - (i[(A + 48) >> 2] = x), - (h = (E - -64) | 0) - break - } - ;(I = (I - -64) | 0), - (g = (k - -64) | 0), - (Q = (Q - 1) | 0), - (Q = - (B = (B + -64) | 0) >>> 0 < 4294967232 - ? (Q + 1) | 0 - : Q) - } - } - function S(A, I, g, B) { - var Q = 0, - C = 0, - E = 0, - a = 0, - o = 0, - e = 0, - t = 0, - f = 0, - c = 0, - y = 0, - s = 0, - w = 0, - h = 0, - D = 0, - u = 0, - l = 0, - F = 0, - G = 0, - k = 0, - _ = 0, - H = 0, - Y = 0, - b = 0, - m = 0, - v = 0 - if ( - ((c = i[(A + 36) >> 2]), - (a = i[(A + 32) >> 2]), - (E = i[(A + 28) >> 2]), - (C = i[(A + 24) >> 2]), - (o = i[(A + 20) >> 2]), - (!B & (g >>> 0 >= 16)) | B) - ) - for ( - H = !n[(A + 80) | 0] << 24, - s = i[(A + 4) >> 2], - Y = r(s, 5), - D = i[(A + 8) >> 2], - _ = r(D, 5), - G = i[(A + 12) >> 2], - k = r(G, 5), - Q = i[(A + 16) >> 2], - u = r(Q, 5), - b = Q, - w = i[A >> 2]; - (Q = eg( - (e = - ((((n[(I + 3) | 0] | - (n[(I + 4) | 0] << 8) | - (n[(I + 5) | 0] << 16) | - (n[(I + 6) | 0] << 24)) >>> - 2) & - 67108863) + - C) | - 0), - 0, - G, - 0 - )), - (t = p), - (C = - ((y = eg( - (o = - ((67108863 & - (n[0 | I] | - (n[(I + 1) | 0] << 8) | - (n[(I + 2) | 0] << 16) | - (n[(I + 3) | 0] << 24))) + - o) | - 0), - 0, - b, - 0 - )) + - Q) | - 0), - (Q = (p + t) | 0), - (Q = C >>> 0 < y >>> 0 ? (Q + 1) | 0 : Q), - (f = C), - (C = eg( - (t = - ((((n[(I + 6) | 0] | - (n[(I + 7) | 0] << 8) | - (n[(I + 8) | 0] << 16) | - (n[(I + 9) | 0] << 24)) >>> - 4) & - 67108863) + - E) | - 0), - 0, - D, - 0 - )), - (Q = (p + Q) | 0), - (Q = - C >>> 0 > (E = (f + C) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (C = E), - (E = eg( - (y = - ((((n[(I + 9) | 0] | - (n[(I + 10) | 0] << 8) | - (n[(I + 11) | 0] << 16) | - (n[(I + 12) | 0] << 24)) >>> - 6) | - 0) + - a) | - 0), - 0, - s, - 0 - )), - (Q = (p + Q) | 0), - (Q = - E >>> 0 > (a = (C + E) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (C = a), - (a = eg( - (h = - (c + - H + - ((n[(I + 12) | 0] | - (n[(I + 13) | 0] << 8) | - (n[(I + 14) | 0] << 16) | - (n[(I + 15) | 0] << 24)) >>> - 8)) | - 0), - 0, - w, - 0 - )), - (Q = (p + Q) | 0), - (m = c = (C + a) | 0), - (c = a >>> 0 > c >>> 0 ? (Q + 1) | 0 : Q), - (Q = eg(e, 0, D, 0)), - (E = p), - (a = ((C = eg(o, 0, G, 0)) + Q) | 0), - (Q = (p + E) | 0), - (Q = C >>> 0 > a >>> 0 ? (Q + 1) | 0 : Q), - (E = eg(t, 0, s, 0)), - (Q = (p + Q) | 0), - (Q = - E >>> 0 > (a = (E + a) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (E = eg(y, 0, w, 0)), - (Q = (p + Q) | 0), - (Q = - E >>> 0 > (a = (E + a) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (E = eg(h, 0, u, 0)), - (Q = (p + Q) | 0), - (v = a = (E + a) | 0), - (a = E >>> 0 > a >>> 0 ? (Q + 1) | 0 : Q), - (Q = eg(e, 0, s, 0)), - (C = p), - (E = ((l = eg(o, 0, D, 0)) + Q) | 0), - (Q = (p + C) | 0), - (Q = E >>> 0 < l >>> 0 ? (Q + 1) | 0 : Q), - (C = eg(t, 0, w, 0)), - (Q = (p + Q) | 0), - (Q = - C >>> 0 > (E = (C + E) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (C = eg(y, 0, u, 0)), - (Q = (p + Q) | 0), - (Q = - C >>> 0 > (E = (C + E) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (C = eg(h, 0, k, 0)), - (Q = (p + Q) | 0), - (l = E = (C + E) | 0), - (E = C >>> 0 > E >>> 0 ? (Q + 1) | 0 : Q), - (Q = eg(e, 0, w, 0)), - (f = p), - (C = ((F = eg(o, 0, s, 0)) + Q) | 0), - (Q = (p + f) | 0), - (Q = C >>> 0 < F >>> 0 ? (Q + 1) | 0 : Q), - (f = eg(t, 0, u, 0)), - (Q = (p + Q) | 0), - (Q = - (C = (f + C) | 0) >>> 0 < f >>> 0 - ? (Q + 1) | 0 - : Q), - (f = eg(y, 0, k, 0)), - (Q = (p + Q) | 0), - (Q = - (C = (f + C) | 0) >>> 0 < f >>> 0 - ? (Q + 1) | 0 - : Q), - (f = eg(h, 0, _, 0)), - (Q = (p + Q) | 0), - (Q = - (C = (f + C) | 0) >>> 0 < f >>> 0 - ? (Q + 1) | 0 - : Q), - (f = C), - (C = Q), - (Q = eg(e, 0, u, 0)), - (F = p), - (e = ((o = eg(o, 0, w, 0)) + Q) | 0), - (Q = (p + F) | 0), - (Q = e >>> 0 < o >>> 0 ? (Q + 1) | 0 : Q), - (o = eg(t, 0, k, 0)), - (Q = (p + Q) | 0), - (Q = - (e = (o + e) | 0) >>> 0 < o >>> 0 - ? (Q + 1) | 0 - : Q), - (o = eg(y, 0, _, 0)), - (Q = (p + Q) | 0), - (Q = - (e = (o + e) | 0) >>> 0 < o >>> 0 - ? (Q + 1) | 0 - : Q), - (o = eg(h, 0, Y, 0)), - (Q = (p + Q) | 0), - (Q = - (e = (o + e) | 0) >>> 0 < o >>> 0 - ? (Q + 1) | 0 - : Q), - (o = e), - (t = ((67108863 & Q) << 6) | (e >>> 26)), - (Q = C), - (t = - ((67108863 & - (Q = - (e = (t + f) | 0) >>> 0 < t >>> 0 - ? (Q + 1) | 0 - : Q)) << - 6) | - ((C = e) >>> 26)), - (Q = E), - (Q = - (C = (t + l) | 0) >>> 0 < t >>> 0 - ? (Q + 1) | 0 - : Q), - (t = C), - (C = ((67108863 & Q) << 6) | (C >>> 26)), - (Q = a), - (y = E = (C + v) | 0), - (E = - ((67108863 & - (Q = C >>> 0 > E >>> 0 ? (Q + 1) | 0 : Q)) << - 6) | - (E >>> 26)), - (Q = c), - (c = a = (E + m) | 0), - (C = - ((67108863 & e) + - (((Q = - (r( - ((67108863 & - (Q = - E >>> 0 > a >>> 0 ? (Q + 1) | 0 : Q)) << - 6) | - (a >>> 26), - 5 - ) + - (67108863 & o)) | - 0) >>> - 26) | - 0)) | - 0), - (E = 67108863 & t), - (a = 67108863 & y), - (c &= 67108863), - (o = 67108863 & Q), - (I = (I + 16) | 0), - (!(B = (B - (g >>> 0 < 16)) | 0) & - ((g = (g - 16) | 0) >>> 0 > 15)) | - B; - - ); - ;(i[(A + 20) >> 2] = o), - (i[(A + 36) >> 2] = c), - (i[(A + 32) >> 2] = a), - (i[(A + 28) >> 2] = E), - (i[(A + 24) >> 2] = C) - } - function N(A, I, g) { - var B, - Q, - E, - i, - a = 0, - r = 0, - o = 0, - e = 0, - t = 0 - return ( - (h = E = (h - 160) | 0), - mI(I, g, 32, 0), - (C[0 | I] = 248 & n[0 | I]), - (C[(I + 31) | 0] = (63 & n[(I + 31) | 0]) | 64), - CA(E, I), - nI(A, E), - (r = - n[((Q = g) + 8) | 0] | - (n[(Q + 9) | 0] << 8) | - (n[(Q + 10) | 0] << 16) | - (n[(Q + 11) | 0] << 24)), - (a = - n[(Q + 12) | 0] | - (n[(Q + 13) | 0] << 8) | - (n[(Q + 14) | 0] << 16) | - (n[(Q + 15) | 0] << 24)), - (o = - n[(Q + 16) | 0] | - (n[(Q + 17) | 0] << 8) | - (n[(Q + 18) | 0] << 16) | - (n[(Q + 19) | 0] << 24)), - (e = - n[(Q + 20) | 0] | - (n[(Q + 21) | 0] << 8) | - (n[(Q + 22) | 0] << 16) | - (n[(Q + 23) | 0] << 24)), - (t = - n[0 | Q] | - (n[(Q + 1) | 0] << 8) | - (n[(Q + 2) | 0] << 16) | - (n[(Q + 3) | 0] << 24)), - (g = - n[(Q + 4) | 0] | - (n[(Q + 5) | 0] << 8) | - (n[(Q + 6) | 0] << 16) | - (n[(Q + 7) | 0] << 24)), - (B = I), - (i = - n[(Q + 28) | 0] | - (n[(Q + 29) | 0] << 8) | - (n[(Q + 30) | 0] << 16) | - (n[(Q + 31) | 0] << 24)), - (I = - n[(Q + 24) | 0] | - (n[(Q + 25) | 0] << 8) | - (n[(Q + 26) | 0] << 16) | - (n[(Q + 27) | 0] << 24)), - (C[(B + 24) | 0] = I), - (C[(B + 25) | 0] = I >>> 8), - (C[(B + 26) | 0] = I >>> 16), - (C[(B + 27) | 0] = I >>> 24), - (C[(B + 28) | 0] = i), - (C[(B + 29) | 0] = i >>> 8), - (C[(B + 30) | 0] = i >>> 16), - (C[(B + 31) | 0] = i >>> 24), - (C[(B + 16) | 0] = o), - (C[(B + 17) | 0] = o >>> 8), - (C[(B + 18) | 0] = o >>> 16), - (C[(B + 19) | 0] = o >>> 24), - (C[(B + 20) | 0] = e), - (C[(B + 21) | 0] = e >>> 8), - (C[(B + 22) | 0] = e >>> 16), - (C[(B + 23) | 0] = e >>> 24), - (C[(B + 8) | 0] = r), - (C[(B + 9) | 0] = r >>> 8), - (C[(B + 10) | 0] = r >>> 16), - (C[(B + 11) | 0] = r >>> 24), - (C[(B + 12) | 0] = a), - (C[(B + 13) | 0] = a >>> 8), - (C[(B + 14) | 0] = a >>> 16), - (C[(B + 15) | 0] = a >>> 24), - (C[0 | B] = t), - (C[(B + 1) | 0] = t >>> 8), - (C[(B + 2) | 0] = t >>> 16), - (C[(B + 3) | 0] = t >>> 24), - (C[(B + 4) | 0] = g), - (C[(B + 5) | 0] = g >>> 8), - (C[(B + 6) | 0] = g >>> 16), - (C[(B + 7) | 0] = g >>> 24), - (o = - n[((a = A) + 8) | 0] | - (n[(a + 9) | 0] << 8) | - (n[(a + 10) | 0] << 16) | - (n[(a + 11) | 0] << 24)), - (e = - n[(a + 12) | 0] | - (n[(a + 13) | 0] << 8) | - (n[(a + 14) | 0] << 16) | - (n[(a + 15) | 0] << 24)), - (t = - n[(a + 16) | 0] | - (n[(a + 17) | 0] << 8) | - (n[(a + 18) | 0] << 16) | - (n[(a + 19) | 0] << 24)), - (g = - n[(a + 20) | 0] | - (n[(a + 21) | 0] << 8) | - (n[(a + 22) | 0] << 16) | - (n[(a + 23) | 0] << 24)), - (I = - n[0 | a] | - (n[(a + 1) | 0] << 8) | - (n[(a + 2) | 0] << 16) | - (n[(a + 3) | 0] << 24)), - (A = - n[(a + 4) | 0] | - (n[(a + 5) | 0] << 8) | - (n[(a + 6) | 0] << 16) | - (n[(a + 7) | 0] << 24)), - (r = - n[(a + 28) | 0] | - (n[(a + 29) | 0] << 8) | - (n[(a + 30) | 0] << 16) | - (n[(a + 31) | 0] << 24)), - (a = - n[(a + 24) | 0] | - (n[(a + 25) | 0] << 8) | - (n[(a + 26) | 0] << 16) | - (n[(a + 27) | 0] << 24)), - (C[(B + 56) | 0] = a), - (C[(B + 57) | 0] = a >>> 8), - (C[(B + 58) | 0] = a >>> 16), - (C[(B + 59) | 0] = a >>> 24), - (C[(B + 60) | 0] = r), - (C[(B + 61) | 0] = r >>> 8), - (C[(B + 62) | 0] = r >>> 16), - (C[(B + 63) | 0] = r >>> 24), - (C[(B + 48) | 0] = t), - (C[(B + 49) | 0] = t >>> 8), - (C[(B + 50) | 0] = t >>> 16), - (C[(B + 51) | 0] = t >>> 24), - (C[(B + 52) | 0] = g), - (C[(B + 53) | 0] = g >>> 8), - (C[(B + 54) | 0] = g >>> 16), - (C[(B + 55) | 0] = g >>> 24), - (C[(B + 40) | 0] = o), - (C[(B + 41) | 0] = o >>> 8), - (C[(B + 42) | 0] = o >>> 16), - (C[(B + 43) | 0] = o >>> 24), - (C[(B + 44) | 0] = e), - (C[(B + 45) | 0] = e >>> 8), - (C[(B + 46) | 0] = e >>> 16), - (C[(B + 47) | 0] = e >>> 24), - (C[(B + 32) | 0] = I), - (C[(B + 33) | 0] = I >>> 8), - (C[(B + 34) | 0] = I >>> 16), - (C[(B + 35) | 0] = I >>> 24), - (C[(B + 36) | 0] = A), - (C[(B + 37) | 0] = A >>> 8), - (C[(B + 38) | 0] = A >>> 16), - (C[(B + 39) | 0] = A >>> 24), - (h = (E + 160) | 0), - 0 - ) - } - function M(A, I, g) { - var B, - Q = 0, - E = 0, - i = 0 - h = B = (h + -64) | 0 - A: { - if (!(!g | (g >>> 0 >= 65))) { - if ( - ((Q = -1), - !( - n[(A + 80) | 0] | - (n[(A + 81) | 0] << 8) | - (n[(A + 82) | 0] << 16) | - (n[(A + 83) | 0] << 24) | - n[(A + 84) | 0] | - (n[(A + 85) | 0] << 8) | - (n[(A + 86) | 0] << 16) | - (n[(A + 87) | 0] << 24) - )) - ) { - if ( - ((E = A), - (Q = - n[(A + 352) | 0] | - (n[(A + 353) | 0] << 8) | - (n[(A + 354) | 0] << 16) | - (n[(A + 355) | 0] << 24)) >>> - 0 >= - 129) - ) { - if ( - (iA(A, 128), - l(A, (i = (A + 96) | 0)), - (Q = - ((n[(A + 352) | 0] | - (n[(A + 353) | 0] << 8) | - (n[(A + 354) | 0] << 16) | - (n[(A + 355) | 0] << 24)) - - 128) | - 0), - (C[(A + 352) | 0] = Q), - (C[(A + 353) | 0] = Q >>> 8), - (C[(A + 354) | 0] = Q >>> 16), - (C[(A + 355) | 0] = Q >>> 24), - Q >>> 0 >= 129) - ) - break A - X(i, (A + 224) | 0, Q), - (Q = - n[(A + 352) | 0] | - (n[(A + 353) | 0] << 8) | - (n[(A + 354) | 0] << 16) | - (n[(A + 355) | 0] << 24)) - } - iA(E, Q), - n[(A + 356) | 0] && - ((C[(A + 88) | 0] = 255), - (C[(A + 89) | 0] = 255), - (C[(A + 90) | 0] = 255), - (C[(A + 91) | 0] = 255), - (C[(A + 92) | 0] = 255), - (C[(A + 93) | 0] = 255), - (C[(A + 94) | 0] = 255), - (C[(A + 95) | 0] = 255)), - (C[(A + 80) | 0] = 255), - (C[(A + 81) | 0] = 255), - (C[(A + 82) | 0] = 255), - (C[(A + 83) | 0] = 255), - (C[(A + 84) | 0] = 255), - (C[(A + 85) | 0] = 255), - (C[(A + 86) | 0] = 255), - (C[(A + 87) | 0] = 255), - EA( - ((Q = (A + 96) | 0) + - (E = - n[(A + 352) | 0] | - (n[(A + 353) | 0] << 8) | - (n[(A + 354) | 0] << 16) | - (n[(A + 355) | 0] << 24))) | - 0, - 0, - (256 - E) | 0 - ), - l(A, Q), - tI( - B, - n[0 | A] | - (n[(A + 1) | 0] << 8) | - (n[(A + 2) | 0] << 16) | - (n[(A + 3) | 0] << 24), - n[(A + 4) | 0] | - (n[(A + 5) | 0] << 8) | - (n[(A + 6) | 0] << 16) | - (n[(A + 7) | 0] << 24) - ), - tI( - 8 | B, - n[(A + 8) | 0] | - (n[(A + 9) | 0] << 8) | - (n[(A + 10) | 0] << 16) | - (n[(A + 11) | 0] << 24), - n[(A + 12) | 0] | - (n[(A + 13) | 0] << 8) | - (n[(A + 14) | 0] << 16) | - (n[(A + 15) | 0] << 24) - ), - tI( - (B + 16) | 0, - n[(A + 16) | 0] | - (n[(A + 17) | 0] << 8) | - (n[(A + 18) | 0] << 16) | - (n[(A + 19) | 0] << 24), - n[(A + 20) | 0] | - (n[(A + 21) | 0] << 8) | - (n[(A + 22) | 0] << 16) | - (n[(A + 23) | 0] << 24) - ), - tI( - (B + 24) | 0, - n[(A + 24) | 0] | - (n[(A + 25) | 0] << 8) | - (n[(A + 26) | 0] << 16) | - (n[(A + 27) | 0] << 24), - n[(A + 28) | 0] | - (n[(A + 29) | 0] << 8) | - (n[(A + 30) | 0] << 16) | - (n[(A + 31) | 0] << 24) - ), - tI( - (B + 32) | 0, - n[(A + 32) | 0] | - (n[(A + 33) | 0] << 8) | - (n[(A + 34) | 0] << 16) | - (n[(A + 35) | 0] << 24), - n[(A + 36) | 0] | - (n[(A + 37) | 0] << 8) | - (n[(A + 38) | 0] << 16) | - (n[(A + 39) | 0] << 24) - ), - tI( - (B + 40) | 0, - n[(A + 40) | 0] | - (n[(A + 41) | 0] << 8) | - (n[(A + 42) | 0] << 16) | - (n[(A + 43) | 0] << 24), - n[(A + 44) | 0] | - (n[(A + 45) | 0] << 8) | - (n[(A + 46) | 0] << 16) | - (n[(A + 47) | 0] << 24) - ), - tI( - (B + 48) | 0, - n[(A + 48) | 0] | - (n[(A + 49) | 0] << 8) | - (n[(A + 50) | 0] << 16) | - (n[(A + 51) | 0] << 24), - n[(A + 52) | 0] | - (n[(A + 53) | 0] << 8) | - (n[(A + 54) | 0] << 16) | - (n[(A + 55) | 0] << 24) - ), - tI( - (B + 56) | 0, - n[(A + 56) | 0] | - (n[(A + 57) | 0] << 8) | - (n[(A + 58) | 0] << 16) | - (n[(A + 59) | 0] << 24), - n[(A + 60) | 0] | - (n[(A + 61) | 0] << 8) | - (n[(A + 62) | 0] << 16) | - (n[(A + 63) | 0] << 24) - ), - X(I, B, g), - fI(A, 64), - fI(Q, 256), - (Q = 0) - } - return (h = (B - -64) | 0), Q - } - OI(), e() - } - t(1854, 1886, 306, 1931), e() - } - function d(A, I) { - var g, - B, - Q, - C, - E, - a, - r, - o, - e, - t = 0, - f = 0, - c = 0, - y = 0, - s = 0, - w = 0, - h = 0, - D = 0, - u = 0, - l = 0, - F = 0 - ;(g = - n[0 | I] | - (n[(I + 1) | 0] << 8) | - (n[(I + 2) | 0] << 16) | - (n[(I + 3) | 0] << 24)), - (u = HI((I + 4) | 0)), - (t = p), - (h = HI((I + 7) | 0)), - (c = p), - (D = HI((I + 10) | 0)), - (f = p), - (B = HI((I + 13) | 0)), - (s = p), - (y = - n[(I + 16) | 0] | - (n[(I + 17) | 0] << 8) | - (n[(I + 18) | 0] << 16) | - (n[(I + 19) | 0] << 24)), - (Q = HI((I + 20) | 0)), - (l = p), - (C = HI((I + 23) | 0)), - (E = p), - (a = HI((I + 26) | 0)), - (r = p), - (o = HI((I + 29) | 0)), - (I = (f << 3) | (D >>> 29)), - (F = f = D << 3), - (D = f = (f + 16777216) | 0), - (f = I = f >>> 0 < 16777216 ? (I + 1) | 0 : I), - (c = I = (c << 5) | (h >>> 27)), - (e = w = h << 5), - (t = I = (t << 6) | ((h = u) >>> 26)), - (u = I = (16777216 + (h <<= 6)) | 0), - (w = I), - (I = - ((I = - (t = I >>> 0 < 16777216 ? (t + 1) | 0 : t) >> 25) + - c) | - 0), - (I = - (t = - (e + (w = ((33554431 & t) << 7) | (w >>> 25))) | - 0) >>> - 0 < - w >>> 0 - ? (I + 1) | 0 - : I), - (c = (t + 33554432) | 0) >>> 0 < 33554432 && - (I = (I + 1) | 0), - (I = - (((F - (-33554432 & D)) | 0) + - (((67108863 & I) << 6) | (c >>> 26))) | - 0), - (i[(A + 12) >> 2] = I), - (I = -67108864 & c), - (i[(A + 8) >> 2] = t - I), - (I = 0), - (w = y = ((c = y) + 16777216) | 0), - (y = I = y >>> 0 < 16777216 ? 1 : I), - (F = (c - (-33554432 & w)) | 0), - (I = (s << 2) | ((c = B) >>> 30)), - (s = c << 2), - (c = I), - (I = ((I = f >> 25) + c) | 0), - (t = I = - (f = - ((t = s) + - (s = ((33554431 & f) << 7) | (D >>> 25))) | - 0) >>> - 0 < - s >>> 0 - ? (I + 1) | 0 - : I), - (c = I = (f + 33554432) | 0), - (I = - ((((67108863 & - (t = I >>> 0 < 33554432 ? (t + 1) | 0 : t)) << - 6) | - (I >>> 26)) + - F) | - 0), - (i[(A + 20) >> 2] = I), - (I = -67108864 & c), - (i[(A + 16) >> 2] = f - I), - (s = (t = Q) << 7), - (I = ((I = (l << 7) | (t >>> 25)) + (t = y >> 25)) | 0), - (I = - (y = - (s + (c = ((33554431 & y) << 7) | (w >>> 25))) | - 0) >>> - 0 < - c >>> 0 - ? (I + 1) | 0 - : I), - (y = t = y), - (c = t = (t + 33554432) | 0), - (t = I = t >>> 0 < 33554432 ? (I + 1) | 0 : I), - (I = -67108864 & c), - (i[((f = A) + 24) >> 2] = y - I), - (y = f), - (I = (E << 5) | ((f = C) >>> 27)), - (l = f <<= 5), - (s = f = (f + 16777216) | 0), - (f = I = f >>> 0 < 16777216 ? (I + 1) | 0 : I), - (I = - (((l - (-33554432 & s)) | 0) + - (((67108863 & t) << 6) | (c >>> 26))) | - 0), - (i[(y + 28) >> 2] = I), - (c = (t = a) << 4), - (t = I = (r << 4) | (t >>> 28)), - (I = ((I = f >> 25) + t) | 0), - (I = - (f = - ((w = c) + - (c = ((33554431 & f) << 7) | (s >>> 25))) | - 0) >>> - 0 < - c >>> 0 - ? (I + 1) | 0 - : I), - (f = t = f), - (c = t = (t + 33554432) | 0), - (t = I = t >>> 0 < 33554432 ? (I + 1) | 0 : I), - (I = -67108864 & c), - (i[(y + 32) >> 2] = f - I), - (I = 0), - (f = y = ((y = o) << 2) & 33554428), - (I = - (y = (y + 16777216) | 0) >>> 0 < 16777216 - ? (I + 1) | 0 - : I), - (t = - (((f - (33554432 & y)) | 0) + - (((67108863 & t) << 6) | (c >>> 26))) | - 0), - (i[(A + 36) >> 2] = t), - (y = eg( - ((33554431 & I) << 7) | (y >>> 25), - (I >>> 25) | 0, - 19, - 0 - )), - (I = p), - (I = - (t = (y + g) | 0) >>> 0 < y >>> 0 ? (I + 1) | 0 : I), - (f = (t + 33554432) | 0) >>> 0 < 33554432 && - (I = (I + 1) | 0), - (I = - (((h - (-33554432 & u)) | 0) + - (((67108863 & I) << 6) | (f >>> 26))) | - 0), - (i[(A + 4) >> 2] = I), - (I = A), - (A = -67108864 & f), - (i[I >> 2] = t - A) - } - function P(A, I) { - var g, - B, - Q, - C, - E, - n, - a, - r, - o, - e = 0, - t = 0, - f = 0, - c = 0, - y = 0, - s = 0, - w = 0, - h = 0, - D = 0, - u = 0, - l = 0, - F = 0, - G = 0, - k = 0 - ;(l = t = i[((e = I) + 4) >> 2]), - (D = t >> 31), - (F = t = i[(e + 8) >> 2]), - (B = t >> 31), - (w = t = i[(e + 12) >> 2]), - (u = t >> 31), - (G = t = i[(e + 16) >> 2]), - (Q = t >> 31), - (h = t = i[(e + 20) >> 2]), - (s = t >> 31), - (k = t = i[(e + 24) >> 2]), - (C = t >> 31), - (E = t = i[e >> 2]), - (n = t >> 31), - (c = t = - eg((e = i[(e + 36) >> 2]), e >> 31, 121666, 0)), - (e = p), - (g = t = (t + 16777216) | 0), - (t = e = t >>> 0 < 16777216 ? (e + 1) | 0 : e), - (a = (c - (-33554432 & g)) | 0), - (f = eg((e = i[(I + 32) >> 2]), e >> 31, 121666, 0)), - (r = p), - (c = eg((I = i[(I + 28) >> 2]), I >> 31, 121666, 0)), - (e = p), - (y = f), - (o = I = (c + 16777216) | 0), - (f = I), - (I = - ((I = - (e = I >>> 0 < 16777216 ? (e + 1) | 0 : e) >> 25) + - r) | - 0), - (I = - (e = - (y + (f = ((33554431 & e) << 7) | (f >>> 25))) | - 0) >>> - 0 < - f >>> 0 - ? (I + 1) | 0 - : I), - (f = e), - (e = I), - (y = I = (f + 33554432) | 0), - (I = - ((((67108863 & - (e = I >>> 0 < 33554432 ? (e + 1) | 0 : e)) << - 6) | - (I >>> 26)) + - a) | - 0), - (i[(A + 36) >> 2] = I), - (I = -67108864 & y), - (i[(A + 32) >> 2] = f - I), - (y = (c - (-33554432 & o)) | 0), - (e = eg(k, C, 121666, 0)), - (k = p), - (c = eg(h, s, 121666, 0)), - (I = p), - (f = e), - (h = e = (c + 16777216) | 0), - (s = e), - (e = - ((e = - (I = e >>> 0 < 16777216 ? (I + 1) | 0 : I) >> 25) + - k) | - 0), - (e = - (I = - (f + (s = ((33554431 & I) << 7) | (s >>> 25))) | - 0) >>> - 0 < - s >>> 0 - ? (e + 1) | 0 - : e), - (f = (I + 33554432) | 0) >>> 0 < 33554432 && - (e = (e + 1) | 0), - (e = (y + (((67108863 & e) << 6) | (f >>> 26))) | 0), - (i[(A + 28) >> 2] = e), - (e = -67108864 & f), - (i[(A + 24) >> 2] = I - e), - (h = (c - (-33554432 & h)) | 0), - (I = eg(G, Q, 121666, 0)), - (G = p), - (c = eg(w, u, 121666, 0)), - (e = p), - (y = I), - (w = I = (c + 16777216) | 0), - (u = - ((33554431 & - (e = I >>> 0 < 16777216 ? (e + 1) | 0 : e)) << - 7) | - (I >>> 25)), - (e = ((e >> 25) + G) | 0), - (I = e = - (f = (y + u) | 0) >>> 0 < u >>> 0 ? (e + 1) | 0 : e), - (I = - ((((67108863 & - (I = - (e = (f + 33554432) | 0) >>> 0 < 33554432 - ? (I + 1) | 0 - : I)) << - 6) | - (e >>> 26)) + - h) | - 0), - (i[(A + 20) >> 2] = I), - (I = -67108864 & e), - (i[(A + 16) >> 2] = f - I), - (w = (c - (-33554432 & w)) | 0), - (e = eg(F, B, 121666, 0)), - (F = p), - (c = eg(l, D, 121666, 0)), - (I = p), - (y = e), - (l = e = (c + 16777216) | 0), - (D = - ((33554431 & - (I = e >>> 0 < 16777216 ? (I + 1) | 0 : I)) << - 7) | - (e >>> 25)), - (I = ((I >> 25) + F) | 0), - (e = I = - (f = (y + D) | 0) >>> 0 < D >>> 0 ? (I + 1) | 0 : I), - (y = I = (f + 33554432) | 0), - (I = - ((((67108863 & - (e = I >>> 0 < 33554432 ? (e + 1) | 0 : e)) << - 6) | - (I >>> 26)) + - w) | - 0), - (i[(A + 12) >> 2] = I), - (I = -67108864 & y), - (i[(A + 8) >> 2] = f - I), - (I = eg( - ((33554431 & t) << 7) | (g >>> 25), - t >> 25, - 19, - 0 - )), - (e = p), - (y = (c - (-33554432 & l)) | 0), - (t = eg(E, n, 121666, 0)), - (e = (p + e) | 0), - (e = - (I = (t + I) | 0) >>> 0 < t >>> 0 ? (e + 1) | 0 : e), - (t = (I + 33554432) | 0) >>> 0 < 33554432 && - (e = (e + 1) | 0), - (e = (y + (((67108863 & e) << 6) | (t >>> 26))) | 0), - (i[(A + 4) >> 2] = e), - (e = A), - (A = -67108864 & t), - (i[e >> 2] = I - A) - } - function R(A, I, g, B) { - var Q, - E = 0, - a = 0 - ;(h = Q = (h - 16) | 0), (E = -31) - A: { - I: { - g: { - B: switch ((B - 1) | 0) { - case 1: - if (I >>> 0 < 13) break I - ;(B = - n[35660] | - (n[35661] << 8) | - (n[35662] << 16) | - (n[35663] << 24)), - (E = - n[35656] | - (n[35657] << 8) | - (n[35658] << 16) | - (n[35659] << 24)), - (C[0 | A] = E), - (C[(A + 1) | 0] = E >>> 8), - (C[(A + 2) | 0] = E >>> 16), - (C[(A + 3) | 0] = E >>> 24), - (C[(A + 4) | 0] = B), - (C[(A + 5) | 0] = B >>> 8), - (C[(A + 6) | 0] = B >>> 16), - (C[(A + 7) | 0] = B >>> 24), - (B = - n[35665] | - (n[35666] << 8) | - (n[35667] << 16) | - (n[35668] << 24)), - (E = - n[35661] | - (n[35662] << 8) | - (n[35663] << 16) | - (n[35664] << 24)), - (C[(A + 5) | 0] = E), - (C[(A + 6) | 0] = E >>> 8), - (C[(A + 7) | 0] = E >>> 16), - (C[(A + 8) | 0] = E >>> 24), - (C[(A + 9) | 0] = B), - (C[(A + 10) | 0] = B >>> 8), - (C[(A + 11) | 0] = B >>> 16), - (C[(A + 12) | 0] = B >>> 24), - (a = -12), - (B = 12) - break g - case 0: - break B - default: - break A - } - if (I >>> 0 < 12) break I - ;(B = - n[35673] | - (n[35674] << 8) | - (n[35675] << 16) | - (n[35676] << 24)), - (E = - n[35669] | - (n[35670] << 8) | - (n[35671] << 16) | - (n[35672] << 24)), - (C[0 | A] = E), - (C[(A + 1) | 0] = E >>> 8), - (C[(A + 2) | 0] = E >>> 16), - (C[(A + 3) | 0] = E >>> 24), - (C[(A + 4) | 0] = B), - (C[(A + 5) | 0] = B >>> 8), - (C[(A + 6) | 0] = B >>> 16), - (C[(A + 7) | 0] = B >>> 24), - (B = - n[35677] | - (n[35678] << 8) | - (n[35679] << 16) | - (n[35680] << 24)), - (C[(A + 8) | 0] = B), - (C[(A + 9) | 0] = B >>> 8), - (C[(A + 10) | 0] = B >>> 16), - (C[(A + 11) | 0] = B >>> 24), - (a = -11), - (B = 11) - } - if ((E = oA(g))) break A - if ( - (qA((Q + 5) | 0, 19), - !( - (E = (I + a) | 0) >>> 0 <= - (I = YA((Q + 5) | 0)) >>> 0 - ) && - ((A = X((A + B) | 0, (Q + 5) | 0, (I + 1) | 0)), - !((B = (E - I) | 0) >>> 0 < 4) && - ((C[0 | (A = (A + I) | 0)] = 36), - (C[(A + 1) | 0] = 109), - (C[(A + 2) | 0] = 61), - (C[(A + 3) | 0] = 0), - qA((Q + 5) | 0, i[(g + 44) >> 2]), - !( - (B = (B - 3) | 0) >>> 0 <= - (I = YA((Q + 5) | 0)) >>> 0 - ) && - ((A = X( - (A + 3) | 0, - (Q + 5) | 0, - (I + 1) | 0 - )), - !((B = (B - I) | 0) >>> 0 < 4) && - ((C[0 | (A = (A + I) | 0)] = 44), - (C[(A + 1) | 0] = 116), - (C[(A + 2) | 0] = 61), - (C[(A + 3) | 0] = 0), - qA((Q + 5) | 0, i[(g + 40) >> 2]), - !( - (B = (B - 3) | 0) >>> 0 <= - (I = YA((Q + 5) | 0)) >>> 0 - ) && - ((A = X( - (A + 3) | 0, - (Q + 5) | 0, - (I + 1) | 0 - )), - !((B = (B - I) | 0) >>> 0 < 4) && - ((C[0 | (A = (A + I) | 0)] = 44), - (C[(A + 1) | 0] = 112), - (C[(A + 2) | 0] = 61), - (C[(A + 3) | 0] = 0), - qA((Q + 5) | 0, i[(g + 48) >> 2]), - !( - (B = (B - 3) | 0) >>> 0 <= - (I = YA((Q + 5) | 0)) >>> 0 - ) && - ((A = X( - (A + 3) | 0, - (Q + 5) | 0, - (I + 1) | 0 - )), - !((B = (B - I) | 0) >>> 0 < 2) && - ((C[0 | (A = (A + I) | 0)] = 36), - (C[(A + 1) | 0] = 0), - O( - (A = (A + 1) | 0), - (I = (B - 1) | 0), - i[(g + 16) >> 2], - i[(g + 20) >> 2], - 3 - )))))))))) - ) { - if ( - ((E = -31), - (B = ((B = I) - (I = YA(A))) | 0) >>> 0 < 2) - ) - break A - return ( - (C[0 | (A = (A + I) | 0)] = 36), - (C[(A + 1) | 0] = 0), - (A = O( - (A + 1) | 0, - (B - 1) | 0, - i[g >> 2], - i[(g + 4) >> 2], - 3 - )), - (h = (Q + 16) | 0), - A ? 0 : -31 - ) - } - } - E = -31 - } - return (h = (Q + 16) | 0), E - } - function J(A, I, g, B) { - var Q, - E = 0 - ;(Q = E = h), - (h = E = (E - 576) & -64), - (i[(E + 188) >> 2] = 0), - xI((E + 188) | 0, I) - A: if (I >>> 0 <= 64) { - if ((0 | iI((E + 192) | 0, 0, 0, I)) < 0) break A - if ((0 | hg((E + 192) | 0, (E + 188) | 0, 4, 0)) < 0) - break A - if ((0 | hg((E + 192) | 0, g, B, 0)) < 0) break A - dI((E + 192) | 0, A, I) - } else if ( - !( - (0 | iI((E + 192) | 0, 0, 0, 64)) < 0 || - (0 | hg((E + 192) | 0, (E + 188) | 0, 4, 0)) < 0 || - (0 | hg((E + 192) | 0, g, B, 0)) < 0 || - (0 | dI((E + 192) | 0, (E + 112) | 0, 64)) < 0 - ) - ) { - if ( - ((g = i[(E + 116) >> 2]), - (B = i[(E + 112) >> 2]), - (C[0 | A] = B), - (C[(A + 1) | 0] = B >>> 8), - (C[(A + 2) | 0] = B >>> 16), - (C[(A + 3) | 0] = B >>> 24), - (C[(A + 4) | 0] = g), - (C[(A + 5) | 0] = g >>> 8), - (C[(A + 6) | 0] = g >>> 16), - (C[(A + 7) | 0] = g >>> 24), - (g = i[(E + 124) >> 2]), - (B = i[(E + 120) >> 2]), - (C[(A + 8) | 0] = B), - (C[(A + 9) | 0] = B >>> 8), - (C[(A + 10) | 0] = B >>> 16), - (C[(A + 11) | 0] = B >>> 24), - (C[(A + 12) | 0] = g), - (C[(A + 13) | 0] = g >>> 8), - (C[(A + 14) | 0] = g >>> 16), - (C[(A + 15) | 0] = g >>> 24), - (g = i[(E + 140) >> 2]), - (B = i[(E + 136) >> 2]), - (C[(A + 24) | 0] = B), - (C[(A + 25) | 0] = B >>> 8), - (C[(A + 26) | 0] = B >>> 16), - (C[(A + 27) | 0] = B >>> 24), - (C[(A + 28) | 0] = g), - (C[(A + 29) | 0] = g >>> 8), - (C[(A + 30) | 0] = g >>> 16), - (C[(A + 31) | 0] = g >>> 24), - (g = i[(E + 132) >> 2]), - (B = i[(E + 128) >> 2]), - (C[(A + 16) | 0] = B), - (C[(A + 17) | 0] = B >>> 8), - (C[(A + 18) | 0] = B >>> 16), - (C[(A + 19) | 0] = B >>> 24), - (C[(A + 20) | 0] = g), - (C[(A + 21) | 0] = g >>> 8), - (C[(A + 22) | 0] = g >>> 16), - (C[(A + 23) | 0] = g >>> 24), - (A = (A + 32) | 0), - (I = (I - 32) | 0) >>> 0 >= 65) - ) - for (;;) { - if ( - (X((E + 48) | 0, (E + 112) | 0, 64), - (0 | - GI( - (E + 112) | 0, - 64, - (E + 48) | 0, - 64, - 0, - 0, - 0 - )) < - 0) - ) - break A - if ( - ((g = i[(E + 116) >> 2]), - (B = i[(E + 112) >> 2]), - (C[0 | A] = B), - (C[(A + 1) | 0] = B >>> 8), - (C[(A + 2) | 0] = B >>> 16), - (C[(A + 3) | 0] = B >>> 24), - (C[(A + 4) | 0] = g), - (C[(A + 5) | 0] = g >>> 8), - (C[(A + 6) | 0] = g >>> 16), - (C[(A + 7) | 0] = g >>> 24), - (g = i[(E + 124) >> 2]), - (B = i[(E + 120) >> 2]), - (C[(A + 8) | 0] = B), - (C[(A + 9) | 0] = B >>> 8), - (C[(A + 10) | 0] = B >>> 16), - (C[(A + 11) | 0] = B >>> 24), - (C[(A + 12) | 0] = g), - (C[(A + 13) | 0] = g >>> 8), - (C[(A + 14) | 0] = g >>> 16), - (C[(A + 15) | 0] = g >>> 24), - (g = i[(E + 140) >> 2]), - (B = i[(E + 136) >> 2]), - (C[(A + 24) | 0] = B), - (C[(A + 25) | 0] = B >>> 8), - (C[(A + 26) | 0] = B >>> 16), - (C[(A + 27) | 0] = B >>> 24), - (C[(A + 28) | 0] = g), - (C[(A + 29) | 0] = g >>> 8), - (C[(A + 30) | 0] = g >>> 16), - (C[(A + 31) | 0] = g >>> 24), - (g = i[(E + 132) >> 2]), - (B = i[(E + 128) >> 2]), - (C[(A + 16) | 0] = B), - (C[(A + 17) | 0] = B >>> 8), - (C[(A + 18) | 0] = B >>> 16), - (C[(A + 19) | 0] = B >>> 24), - (C[(A + 20) | 0] = g), - (C[(A + 21) | 0] = g >>> 8), - (C[(A + 22) | 0] = g >>> 16), - (C[(A + 23) | 0] = g >>> 24), - (A = (A + 32) | 0), - !((I = (I - 32) | 0) >>> 0 > 64)) - ) - break - } - X((E + 48) | 0, (E + 112) | 0, 64), - (0 | - GI((E + 112) | 0, I, (E + 48) | 0, 64, 0, 0, 0)) < - 0 || X(A, (E + 112) | 0, I) - } - fI((E + 192) | 0, 384), (h = Q) - } - function x(A, I, g) { - var B = 0, - Q = 0, - C = 0, - E = 0, - i = 0, - a = 0, - r = 0, - o = 0, - e = 0, - t = 0, - f = 0, - c = 0, - y = 0, - s = 0, - w = 0, - h = 0, - D = 0, - u = 0, - p = 0 - for ( - C = 2036477234, - e = 857760878, - t = 1634760805, - E = 1797285236, - o = - n[0 | g] | - (n[(g + 1) | 0] << 8) | - (n[(g + 2) | 0] << 16) | - (n[(g + 3) | 0] << 24), - B = - n[(g + 4) | 0] | - (n[(g + 5) | 0] << 8) | - (n[(g + 6) | 0] << 16) | - (n[(g + 7) | 0] << 24), - Q = - n[(g + 8) | 0] | - (n[(g + 9) | 0] << 8) | - (n[(g + 10) | 0] << 16) | - (n[(g + 11) | 0] << 24), - a = - n[(g + 12) | 0] | - (n[(g + 13) | 0] << 8) | - (n[(g + 14) | 0] << 16) | - (n[(g + 15) | 0] << 24), - c = - n[(g + 16) | 0] | - (n[(g + 17) | 0] << 8) | - (n[(g + 18) | 0] << 16) | - (n[(g + 19) | 0] << 24), - y = - n[(g + 20) | 0] | - (n[(g + 21) | 0] << 8) | - (n[(g + 22) | 0] << 16) | - (n[(g + 23) | 0] << 24), - w = - n[(g + 24) | 0] | - (n[(g + 25) | 0] << 8) | - (n[(g + 26) | 0] << 16) | - (n[(g + 27) | 0] << 24), - h = - n[(g + 28) | 0] | - (n[(g + 29) | 0] << 8) | - (n[(g + 30) | 0] << 16) | - (n[(g + 31) | 0] << 24), - g = - n[0 | I] | - (n[(I + 1) | 0] << 8) | - (n[(I + 2) | 0] << 16) | - (n[(I + 3) | 0] << 24), - f = - n[(I + 4) | 0] | - (n[(I + 5) | 0] << 8) | - (n[(I + 6) | 0] << 16) | - (n[(I + 7) | 0] << 24), - i = - n[(I + 8) | 0] | - (n[(I + 9) | 0] << 8) | - (n[(I + 10) | 0] << 16) | - (n[(I + 11) | 0] << 24), - I = - n[(I + 12) | 0] | - (n[(I + 13) | 0] << 8) | - (n[(I + 14) | 0] << 16) | - (n[(I + 15) | 0] << 24); - (r = o), - (t = Hg((s = g) ^ (g = (o + t) | 0), 16)), - (r = c = Hg(r ^ (o = (t + c) | 0), 12)), - (c = Hg((s = t) ^ (t = (g + c) | 0), 8)), - (o = Hg(r ^ (D = (c + o) | 0), 7)), - (r = B), - (e = Hg((g = (B + e) | 0) ^ f, 16)), - (r = f = Hg(r ^ (B = (e + y) | 0), 12)), - (f = Hg((s = e) ^ (e = (g + f) | 0), 8)), - (g = Hg(r ^ (y = (f + B) | 0), 7)), - (r = Q), - (B = Hg((C = (C + Q) | 0) ^ i, 16)), - (r = i = Hg(r ^ (Q = (B + w) | 0), 12)), - (s = Hg(B ^ (i = (C + i) | 0), 8)), - (C = Hg(r ^ (B = (s + Q) | 0), 7)), - (E = Hg((Q = I) ^ (I = (E + a) | 0), 16)), - (a = Hg((Q = (E + h) | 0) ^ a, 12)), - (I = Hg(E ^ (u = (I + a) | 0), 8)), - (E = Hg(a ^ (Q = (I + Q) | 0), 7)), - (r = B), - (B = Hg((B = I) ^ (I = (g + t) | 0), 16)), - (g = Hg((a = (r + B) | 0) ^ g, 12)), - (I = Hg(B ^ (t = (I + g) | 0), 8)), - (B = Hg(g ^ (w = (a + I) | 0), 7)), - (r = Q), - (Q = Hg((g = (C + e) | 0) ^ c, 16)), - (C = Hg((a = (r + Q) | 0) ^ C, 12)), - (g = Hg(Q ^ (e = (g + C) | 0), 8)), - (Q = Hg(C ^ (h = (a + g) | 0), 7)), - (a = Hg((C = (E + i) | 0) ^ f, 16)), - (E = Hg((i = (a + D) | 0) ^ E, 12)), - (f = Hg(a ^ (C = (C + E) | 0), 8)), - (a = Hg(E ^ (c = (i + f) | 0), 7)), - (i = Hg((E = (o + u) | 0) ^ s, 16)), - (o = Hg((y = (i + y) | 0) ^ o, 12)), - (i = Hg(i ^ (E = (E + o) | 0), 8)), - (o = Hg(o ^ (y = (y + i) | 0), 7)), - 10 != (0 | (p = (p + 1) | 0)); - - ); - xI(A, t), - xI((A + 4) | 0, e), - xI((A + 8) | 0, C), - xI((A + 12) | 0, E), - xI((A + 16) | 0, g), - xI((A + 20) | 0, f), - xI((A + 24) | 0, i), - xI((A + 28) | 0, I) - } - function L(A) { - var I, - g = 0, - B = 0 - ;(h = I = (h - 48) | 0), - (g = - n[(28 + (A |= 0)) | 0] | - (n[(A + 29) | 0] << 8) | - (n[(A + 30) | 0] << 16) | - (n[(A + 31) | 0] << 24)), - (i[(I + 24) >> 2] = - n[(A + 24) | 0] | - (n[(A + 25) | 0] << 8) | - (n[(A + 26) | 0] << 16) | - (n[(A + 27) | 0] << 24)), - (i[(I + 28) >> 2] = g), - (g = - n[(A + 20) | 0] | - (n[(A + 21) | 0] << 8) | - (n[(A + 22) | 0] << 16) | - (n[(A + 23) | 0] << 24)), - (i[(I + 16) >> 2] = - n[(A + 16) | 0] | - (n[(A + 17) | 0] << 8) | - (n[(A + 18) | 0] << 16) | - (n[(A + 19) | 0] << 24)), - (i[(I + 20) >> 2] = g), - (g = - n[(A + 4) | 0] | - (n[(A + 5) | 0] << 8) | - (n[(A + 6) | 0] << 16) | - (n[(A + 7) | 0] << 24)), - (i[I >> 2] = - n[0 | A] | - (n[(A + 1) | 0] << 8) | - (n[(A + 2) | 0] << 16) | - (n[(A + 3) | 0] << 24)), - (i[(I + 4) >> 2] = g), - (g = - n[(A + 12) | 0] | - (n[(A + 13) | 0] << 8) | - (n[(A + 14) | 0] << 16) | - (n[(A + 15) | 0] << 24)), - (i[(I + 8) >> 2] = - n[(A + 8) | 0] | - (n[(A + 9) | 0] << 8) | - (n[(A + 10) | 0] << 16) | - (n[(A + 11) | 0] << 24)), - (i[(I + 12) >> 2] = g), - (g = - n[(A + 40) | 0] | - (n[(A + 41) | 0] << 8) | - (n[(A + 42) | 0] << 16) | - (n[(A + 43) | 0] << 24)), - (i[(I + 32) >> 2] = - n[(A + 36) | 0] | - (n[(A + 37) | 0] << 8) | - (n[(A + 38) | 0] << 16) | - (n[(A + 39) | 0] << 24)), - (i[(I + 36) >> 2] = g), - Vg[i[8957]](I, I, 40, 0, (A + 32) | 0, 0, A), - (g = i[(I + 28) >> 2]), - (B = i[(I + 24) >> 2]), - (C[(A + 24) | 0] = B), - (C[(A + 25) | 0] = B >>> 8), - (C[(A + 26) | 0] = B >>> 16), - (C[(A + 27) | 0] = B >>> 24), - (C[(A + 28) | 0] = g), - (C[(A + 29) | 0] = g >>> 8), - (C[(A + 30) | 0] = g >>> 16), - (C[(A + 31) | 0] = g >>> 24), - (g = i[(I + 20) >> 2]), - (B = i[(I + 16) >> 2]), - (C[(A + 16) | 0] = B), - (C[(A + 17) | 0] = B >>> 8), - (C[(A + 18) | 0] = B >>> 16), - (C[(A + 19) | 0] = B >>> 24), - (C[(A + 20) | 0] = g), - (C[(A + 21) | 0] = g >>> 8), - (C[(A + 22) | 0] = g >>> 16), - (C[(A + 23) | 0] = g >>> 24), - (g = i[(I + 12) >> 2]), - (B = i[(I + 8) >> 2]), - (C[(A + 8) | 0] = B), - (C[(A + 9) | 0] = B >>> 8), - (C[(A + 10) | 0] = B >>> 16), - (C[(A + 11) | 0] = B >>> 24), - (C[(A + 12) | 0] = g), - (C[(A + 13) | 0] = g >>> 8), - (C[(A + 14) | 0] = g >>> 16), - (C[(A + 15) | 0] = g >>> 24), - (g = i[(I + 4) >> 2]), - (B = i[I >> 2]), - (C[0 | A] = B), - (C[(A + 1) | 0] = B >>> 8), - (C[(A + 2) | 0] = B >>> 16), - (C[(A + 3) | 0] = B >>> 24), - (C[(A + 4) | 0] = g), - (C[(A + 5) | 0] = g >>> 8), - (C[(A + 6) | 0] = g >>> 16), - (C[(A + 7) | 0] = g >>> 24), - (g = i[(I + 36) >> 2]), - (B = i[(I + 32) >> 2]), - (C[(A + 36) | 0] = B), - (C[(A + 37) | 0] = B >>> 8), - (C[(A + 38) | 0] = B >>> 16), - (C[(A + 39) | 0] = B >>> 24), - (C[(A + 40) | 0] = g), - (C[(A + 41) | 0] = g >>> 8), - (C[(A + 42) | 0] = g >>> 16), - (C[(A + 43) | 0] = g >>> 24), - XI(A), - (h = (I + 48) | 0) - } - function K(A, I, g) { - var B = 0, - Q = 0, - C = 0, - E = 0, - i = 0, - a = 0, - r = 0, - o = 0, - e = 0, - t = 0, - f = 0, - c = 0, - y = 0, - s = 0, - w = 0, - h = 0, - D = 0, - u = 0, - p = 0, - l = 0, - F = 0 - for ( - Q = 2036477234, - C = 857760878, - E = 1634760805, - i = 1797285236, - w = 20, - o = - n[0 | g] | - (n[(g + 1) | 0] << 8) | - (n[(g + 2) | 0] << 16) | - (n[(g + 3) | 0] << 24), - s = - n[(g + 4) | 0] | - (n[(g + 5) | 0] << 8) | - (n[(g + 6) | 0] << 16) | - (n[(g + 7) | 0] << 24), - h = - n[(g + 8) | 0] | - (n[(g + 9) | 0] << 8) | - (n[(g + 10) | 0] << 16) | - (n[(g + 11) | 0] << 24), - c = - n[(g + 12) | 0] | - (n[(g + 13) | 0] << 8) | - (n[(g + 14) | 0] << 16) | - (n[(g + 15) | 0] << 24), - e = - n[(g + 16) | 0] | - (n[(g + 17) | 0] << 8) | - (n[(g + 18) | 0] << 16) | - (n[(g + 19) | 0] << 24), - a = - n[(g + 20) | 0] | - (n[(g + 21) | 0] << 8) | - (n[(g + 22) | 0] << 16) | - (n[(g + 23) | 0] << 24), - t = - n[(g + 24) | 0] | - (n[(g + 25) | 0] << 8) | - (n[(g + 26) | 0] << 16) | - (n[(g + 27) | 0] << 24), - f = - n[(g + 28) | 0] | - (n[(g + 29) | 0] << 8) | - (n[(g + 30) | 0] << 16) | - (n[(g + 31) | 0] << 24), - g = - n[0 | I] | - (n[(I + 1) | 0] << 8) | - (n[(I + 2) | 0] << 16) | - (n[(I + 3) | 0] << 24), - r = - n[(I + 4) | 0] | - (n[(I + 5) | 0] << 8) | - (n[(I + 6) | 0] << 16) | - (n[(I + 7) | 0] << 24), - B = - n[(I + 8) | 0] | - (n[(I + 9) | 0] << 8) | - (n[(I + 10) | 0] << 16) | - (n[(I + 11) | 0] << 24), - I = - n[(I + 12) | 0] | - (n[(I + 13) | 0] << 8) | - (n[(I + 14) | 0] << 16) | - (n[(I + 15) | 0] << 24); - (D = B), - (B = Hg((E + a) | 0, 7) ^ c), - (y = D ^ Hg((B + E) | 0, 9)), - (u = Hg((B + y) | 0, 13) ^ a), - (c = Hg((y + u) | 0, 18)), - (I = Hg((C + o) | 0, 7) ^ I), - (t = Hg((I + C) | 0, 9) ^ t), - (o = Hg((I + t) | 0, 13) ^ o), - (l = Hg((t + o) | 0, 18)), - (f = Hg((g + Q) | 0, 7) ^ f), - (a = Hg((f + Q) | 0, 9) ^ s), - (p = Hg((a + f) | 0, 13) ^ g), - (F = Hg((a + p) | 0, 18)), - (g = Hg((i + e) | 0, 7) ^ h), - (r = Hg((g + i) | 0, 9) ^ r), - (e = Hg((g + r) | 0, 13) ^ e), - (D = Hg((r + e) | 0, 18)), - (o = Hg(((E ^= c) + g) | 0, 7) ^ o), - (s = Hg((o + E) | 0, 9) ^ a), - (h = Hg((o + s) | 0, 13) ^ g), - (E = Hg((s + h) | 0, 18) ^ E), - (g = Hg(((C ^= l) + B) | 0, 7) ^ p), - (r = Hg((g + C) | 0, 9) ^ r), - (c = Hg((g + r) | 0, 13) ^ B), - (C = Hg((r + c) | 0, 18) ^ C), - (e = Hg(((Q ^= F) + I) | 0, 7) ^ e), - (B = Hg((e + Q) | 0, 9) ^ y), - (I = Hg((B + e) | 0, 13) ^ I), - (Q = Hg((I + B) | 0, 18) ^ Q), - (a = Hg(((i ^= D) + f) | 0, 7) ^ u), - (t = Hg((a + i) | 0, 9) ^ t), - (f = Hg((a + t) | 0, 13) ^ f), - (i = Hg((t + f) | 0, 18) ^ i), - (y = w >>> 0 > 2), - (w = (w - 2) | 0), - y; - - ); - return ( - xI(A, E), - xI((A + 4) | 0, C), - xI((A + 8) | 0, Q), - xI((A + 12) | 0, i), - xI((A + 16) | 0, g), - xI((A + 20) | 0, r), - xI((A + 24) | 0, B), - xI((A + 28) | 0, I), - 0 - ) - } - function q(A, I, g, B, Q, E, a) { - var r, - o, - e, - t, - f, - c, - y, - s = 0 - return ( - (h = r = (h - 560) | 0), - ig((r + 352) | 0, a), - mI((r + 288) | 0, E, 32, 0), - V((r + 352) | 0, (r + 320) | 0, 32, 0), - V((r + 352) | 0, g, B, Q), - UI((r + 352) | 0, (r + 224) | 0), - (o = - n[((s = E) + 32) | 0] | - (n[(s + 33) | 0] << 8) | - (n[(s + 34) | 0] << 16) | - (n[(s + 35) | 0] << 24)), - (e = - n[(s + 36) | 0] | - (n[(s + 37) | 0] << 8) | - (n[(s + 38) | 0] << 16) | - (n[(s + 39) | 0] << 24)), - (t = - n[(s + 40) | 0] | - (n[(s + 41) | 0] << 8) | - (n[(s + 42) | 0] << 16) | - (n[(s + 43) | 0] << 24)), - (f = - n[(s + 44) | 0] | - (n[(s + 45) | 0] << 8) | - (n[(s + 46) | 0] << 16) | - (n[(s + 47) | 0] << 24)), - (c = - n[(s + 48) | 0] | - (n[(s + 49) | 0] << 8) | - (n[(s + 50) | 0] << 16) | - (n[(s + 51) | 0] << 24)), - (E = - n[(s + 52) | 0] | - (n[(s + 53) | 0] << 8) | - (n[(s + 54) | 0] << 16) | - (n[(s + 55) | 0] << 24)), - (y = - n[(s + 60) | 0] | - (n[(s + 61) | 0] << 8) | - (n[(s + 62) | 0] << 16) | - (n[(s + 63) | 0] << 24)), - (s = - n[(s + 56) | 0] | - (n[(s + 57) | 0] << 8) | - (n[(s + 58) | 0] << 16) | - (n[(s + 59) | 0] << 24)), - (C[(A + 56) | 0] = s), - (C[(A + 57) | 0] = s >>> 8), - (C[(A + 58) | 0] = s >>> 16), - (C[(A + 59) | 0] = s >>> 24), - (C[(A + 60) | 0] = y), - (C[(A + 61) | 0] = y >>> 8), - (C[(A + 62) | 0] = y >>> 16), - (C[(A + 63) | 0] = y >>> 24), - (C[(A + 48) | 0] = c), - (C[(A + 49) | 0] = c >>> 8), - (C[(A + 50) | 0] = c >>> 16), - (C[(A + 51) | 0] = c >>> 24), - (C[(A + 52) | 0] = E), - (C[(A + 53) | 0] = E >>> 8), - (C[(A + 54) | 0] = E >>> 16), - (C[(A + 55) | 0] = E >>> 24), - (C[(A + 40) | 0] = t), - (C[(A + 41) | 0] = t >>> 8), - (C[(A + 42) | 0] = t >>> 16), - (C[(A + 43) | 0] = t >>> 24), - (C[(A + 44) | 0] = f), - (C[(A + 45) | 0] = f >>> 8), - (C[(A + 46) | 0] = f >>> 16), - (C[(A + 47) | 0] = f >>> 24), - (C[0 | (E = (A + 32) | 0)] = o), - (C[(E + 1) | 0] = o >>> 8), - (C[(E + 2) | 0] = o >>> 16), - (C[(E + 3) | 0] = o >>> 24), - (C[(E + 4) | 0] = e), - (C[(E + 5) | 0] = e >>> 8), - (C[(E + 6) | 0] = e >>> 16), - (C[(E + 7) | 0] = e >>> 24), - G((r + 224) | 0), - CA(r, (r + 224) | 0), - nI(A, r), - ig((r + 352) | 0, a), - V((r + 352) | 0, A, 64, 0), - V((r + 352) | 0, g, B, Q), - UI((r + 352) | 0, (r + 160) | 0), - G((r + 160) | 0), - (C[(r + 288) | 0] = 248 & n[(r + 288) | 0]), - (C[(r + 319) | 0] = (63 & n[(r + 319) | 0]) | 64), - (function (A, I, g, B) { - var Q, - E, - i, - a, - r, - o, - e, - t, - f, - c, - y, - s, - w, - h, - D, - u, - l, - F, - G, - k, - _, - H, - Y, - b, - m, - v, - U, - S, - N, - M, - d, - P, - R, - J, - x, - L, - K, - q, - X, - V, - W, - T, - j, - Z, - O, - z, - $, - AA, - IA = 0, - gA = 0, - BA = 0, - QA = 0, - CA = 0, - EA = 0, - iA = 0, - nA = 0, - aA = 0, - rA = 0, - oA = 0, - eA = 0, - tA = 0, - fA = 0, - cA = 0, - yA = 0, - sA = 0, - wA = 0, - hA = 0, - DA = 0, - uA = 0, - pA = 0, - lA = 0, - FA = 0, - GA = 0, - kA = 0, - _A = 0, - HA = 0, - YA = 0, - bA = 0, - mA = 0, - vA = 0, - UA = 0, - SA = 0, - NA = 0, - MA = 0, - dA = 0, - PA = 0, - RA = 0, - JA = 0, - xA = 0, - LA = 0, - KA = 0, - qA = 0, - XA = 0, - VA = 0, - WA = 0, - TA = 0, - jA = 0, - ZA = 0, - OA = 0 - ;(RA = HI(I)), - (sA = - n[(I + 2) | 0] | - (n[(I + 3) | 0] << 8) | - (n[(I + 4) | 0] << 16) | - (n[(I + 5) | 0] << 24)), - (WA = HI((I + 5) | 0)), - (YA = p), - (wA = - n[(I + 7) | 0] | - (n[(I + 8) | 0] << 8) | - (n[(I + 9) | 0] << 16) | - (n[(I + 10) | 0] << 24)), - (hA = - n[(I + 10) | 0] | - (n[(I + 11) | 0] << 8) | - (n[(I + 12) | 0] << 16) | - (n[(I + 13) | 0] << 24)), - (mA = HI((I + 13) | 0)), - (oA = p), - (tA = - n[(I + 15) | 0] | - (n[(I + 16) | 0] << 8) | - (n[(I + 17) | 0] << 16) | - (n[(I + 18) | 0] << 24)), - (KA = HI((I + 18) | 0)), - (fA = p), - (bA = HI((I + 21) | 0)), - (iA = - n[(I + 23) | 0] | - (n[(I + 24) | 0] << 8) | - (n[(I + 25) | 0] << 16) | - (n[(I + 26) | 0] << 24)), - (aA = HI((I + 26) | 0)), - (QA = p), - (BA = - n[(I + 28) | 0] | - (n[(I + 29) | 0] << 8) | - (n[(I + 30) | 0] << 16) | - (n[(I + 31) | 0] << 24)), - (NA = HI(g)), - (pA = - n[((I = g) + 2) | 0] | - (n[(I + 3) | 0] << 8) | - (n[(I + 4) | 0] << 16) | - (n[(I + 5) | 0] << 24)), - (XA = HI((I + 5) | 0)), - (rA = p), - (cA = - n[(I + 7) | 0] | - (n[(I + 8) | 0] << 8) | - (n[(I + 9) | 0] << 16) | - (n[(I + 10) | 0] << 24)), - (yA = - n[(I + 10) | 0] | - (n[(I + 11) | 0] << 8) | - (n[(I + 12) | 0] << 16) | - (n[(I + 13) | 0] << 24)), - (VA = HI((I + 13) | 0)), - (eA = p), - (CA = - n[(I + 15) | 0] | - (n[(I + 16) | 0] << 8) | - (n[(I + 17) | 0] << 16) | - (n[(I + 18) | 0] << 24)), - (qA = HI((I + 18) | 0)), - (gA = p), - (JA = HI((I + 21) | 0)), - (IA = - n[(I + 23) | 0] | - (n[(I + 24) | 0] << 8) | - (n[(I + 25) | 0] << 16) | - (n[(I + 26) | 0] << 24)), - (nA = HI((I + 26) | 0)), - (g = p), - (I = - n[(I + 28) | 0] | - (n[(I + 29) | 0] << 8) | - (n[(I + 30) | 0] << 16) | - (n[(I + 31) | 0] << 24)), - (Z = HI(B)), - (O = - n[(B + 2) | 0] | - (n[(B + 3) | 0] << 8) | - (n[(B + 4) | 0] << 16) | - (n[(B + 5) | 0] << 24)), - (z = HI((B + 5) | 0)), - ($ = p), - (MA = - n[(B + 7) | 0] | - (n[(B + 8) | 0] << 8) | - (n[(B + 9) | 0] << 16) | - (n[(B + 10) | 0] << 24)), - (xA = - n[(B + 10) | 0] | - (n[(B + 11) | 0] << 8) | - (n[(B + 12) | 0] << 16) | - (n[(B + 13) | 0] << 24)), - (LA = HI((B + 13) | 0)), - (SA = p), - (vA = - n[(B + 15) | 0] | - (n[(B + 16) | 0] << 8) | - (n[(B + 17) | 0] << 16) | - (n[(B + 18) | 0] << 24)), - (TA = HI((B + 18) | 0)), - (_A = p), - (FA = HI((B + 21) | 0)), - (I = eg( - (Q = (I >>> 7) | 0), - 0, - (E = 2097151 & (((3 & QA) << 30) | (aA >>> 2))), - 0 - )), - (EA = p), - (QA = I), - (I = eg( - (i = 2097151 & (((3 & g) << 30) | (nA >>> 2))), - 0, - (a = (BA >>> 7) | 0), - 0 - )), - (g = (p + EA) | 0), - (EA = BA = (QA + I) | 0), - (BA = I >>> 0 > BA >>> 0 ? (g + 1) | 0 : g), - (I = eg(E, 0, i, 0)), - (QA = p), - (IA = - ((g = eg((r = (IA >>> 5) & 2097151), 0, a, 0)) + - I) | - 0), - (I = (p + QA) | 0), - (g = I = g >>> 0 > IA >>> 0 ? (I + 1) | 0 : I), - (I = eg(Q, 0, (o = (iA >>> 5) & 2097151), 0)), - (g = (p + g) | 0), - (iA = IA = (I + IA) | 0), - (lA = g = I >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), - (DA = ((I = IA) - -1048576) | 0), - (uA = g = - (g - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (I = ((IA = g >> 21) + BA) | 0), - (aA = I = - (g = ((2097151 & g) << 11) | (DA >>> 21)) >>> 0 > - (BA = QA = (g + EA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (GA = ((I = BA) - -1048576) | 0), - (nA = EA = - (aA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (QA = eg(Q, 0, a, 0)), - (g = HA = - ((PA = p) - - ((((I = QA) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (IA = EA >> 21), - (HA = ((2097151 & EA) << 11) | (GA >>> 21)), - (QA = - (I - - (EA = -2097152 & (dA = (I - -1048576) | 0))) | - 0), - (I = - (((PA - (((I >>> 0 < EA >>> 0) + g) | 0)) | 0) + - IA) | - 0), - (P = I = - QA >>> 0 > (v = (HA + QA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (EA = eg(v, I, -683901, -1)), - (QA = p), - (R = I = g >> 21), - (I = eg( - (S = ((2097151 & g) << 11) | (dA >>> 21)), - I, - 136657, - 0 - )), - (IA = (p + QA) | 0), - (HA = g = (I + EA) | 0), - (EA = I >>> 0 > g >>> 0 ? (IA + 1) | 0 : IA), - (I = eg( - (e = 2097151 & (((1 & eA) << 31) | (VA >>> 1))), - 0, - E, - 0 - )), - (g = p), - (IA = I), - (I = eg((t = (yA >>> 4) & 2097151), 0, a, 0)), - (g = (p + g) | 0), - (g = - I >>> 0 > (IA = (IA + I) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (I = eg((f = (CA >>> 6) & 2097151), 0, o, 0)), - (g = (p + g) | 0), - (g = - I >>> 0 > (IA = (I + IA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (m = I = 0), - (QA = IA), - (IA = eg( - (c = 2097151 & JA), - I, - (y = 2097151 & (((7 & fA) << 29) | (KA >>> 3))), - 0 - )), - (I = (p + g) | 0), - (I = - IA >>> 0 > (QA = (QA + IA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (IA = eg( - (s = 2097151 & (((7 & gA) << 29) | (qA >>> 3))), - 0, - (w = 2097151 & bA), - 0 - )), - (g = (p + I) | 0), - (g = - IA >>> 0 > (QA = (IA + QA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (I = eg(r, 0, (h = (tA >>> 6) & 2097151), 0)), - (IA = (p + g) | 0), - (IA = - I >>> 0 > (QA = (I + QA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (g = eg( - i, - 0, - (D = 2097151 & (((1 & oA) << 31) | (mA >>> 1))), - 0 - )), - (I = (p + IA) | 0), - (g = - g >>> 0 > (IA = QA = (g + QA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (I = eg(Q, 0, (u = (hA >>> 4) & 2097151), 0)), - (g = (p + g) | 0), - (fA = IA = (I + IA) | 0), - (QA = I >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), - (I = eg(E, 0, t, 0)), - (g = p), - (gA = - ((IA = I) + - (I = eg((l = (cA >>> 7) & 2097151), 0, a, 0))) | - 0), - (IA = (p + g) | 0), - (IA = I >>> 0 > gA >>> 0 ? (IA + 1) | 0 : IA), - (g = eg(o, 0, e, 0)), - (I = (p + IA) | 0), - (I = - g >>> 0 > (gA = (g + gA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (IA = eg(f, 0, w, 0)), - (g = (p + I) | 0), - (g = - IA >>> 0 > (gA = (IA + gA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (I = eg(c, m, h, 0)), - (g = (p + g) | 0), - (g = - I >>> 0 > (IA = (I + gA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (gA = ((I = IA) + (IA = eg(y, 0, s, 0))) | 0), - (I = (p + g) | 0), - (I = IA >>> 0 > gA >>> 0 ? (I + 1) | 0 : I), - (g = eg(r, 0, D, 0)), - (IA = (p + I) | 0), - (IA = - g >>> 0 > (gA = (g + gA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (g = eg(i, 0, u, 0)), - (I = (p + IA) | 0), - (g = - g >>> 0 > (IA = gA = (g + gA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (I = eg(Q, 0, (F = (wA >>> 7) & 2097151), 0)), - (g = (p + g) | 0), - (yA = IA = (I + IA) | 0), - (CA = g = I >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), - (eA = ((I = IA) - -1048576) | 0), - (gA = g = - (g - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (I = ((IA = g >> 21) + QA) | 0), - (g = I = - (g = ((2097151 & g) << 11) | (eA >>> 21)) >>> 0 > - (cA = (g + fA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (I = (I + EA) | 0), - (I = - (IA = QA = cA) >>> 0 > (cA = (IA + HA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (EA = - ((EA = g) - - ((((g = QA) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (oA = (g - -1048576) | 0), - (tA = ((g = IA = cA) - (IA = -2097152 & oA)) | 0), - (fA = - (I - (((QA = EA) + (g >>> 0 < IA >>> 0)) | 0)) | - 0), - (N = (BA - (I = -2097152 & GA)) | 0), - (J = g = - (aA - (((I >>> 0 > BA >>> 0) + nA) | 0)) | 0), - (I = eg(S, R, -997805, -1)), - (IA = (p + CA) | 0), - (IA = - I >>> 0 > (BA = (I + yA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (CA = ((I = BA) + (BA = eg(v, P, 136657, 0))) | 0), - (I = (p + IA) | 0), - (g = eg(N, g, -683901, -1)), - (I = - (p + (BA >>> 0 > CA >>> 0 ? (I + 1) | 0 : I)) | - 0), - (I = - g >>> 0 > (IA = (g + CA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (EA = (IA - (g = -2097152 & eA)) | 0), - (CA = (I - (((g >>> 0 > IA >>> 0) + gA) | 0)) | 0), - (I = eg(E, 0, l, 0)), - (IA = p), - (BA = - ((g = eg( - (G = 2097151 & (((3 & rA) << 30) | (XA >>> 2))), - 0, - a, - 0 - )) + - I) | - 0), - (I = (p + IA) | 0), - (I = g >>> 0 > BA >>> 0 ? (I + 1) | 0 : I), - (IA = eg(o, 0, t, 0)), - (g = (p + I) | 0), - (g = - IA >>> 0 > (BA = (IA + BA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (I = eg(e, 0, w, 0)), - (IA = (p + g) | 0), - (IA = - I >>> 0 > (BA = (I + BA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (g = eg(f, 0, y, 0)), - (I = (p + IA) | 0), - (I = - g >>> 0 > (BA = (g + BA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (IA = eg(c, m, D, 0)), - (g = (p + I) | 0), - (g = - IA >>> 0 > (BA = (IA + BA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (IA = eg(s, 0, h, 0)), - (I = (p + g) | 0), - (I = - IA >>> 0 > (BA = (IA + BA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (IA = eg(r, 0, u, 0)), - (g = (p + I) | 0), - (g = - IA >>> 0 > (BA = (IA + BA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (I = eg(i, 0, F, 0)), - (IA = (p + g) | 0), - (IA = - I >>> 0 > (BA = (I + BA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (g = eg( - Q, - 0, - (k = 2097151 & (((3 & YA) << 30) | (WA >>> 2))), - 0 - )), - (I = (p + IA) | 0), - (BA = - g >>> 0 > (gA = BA = (g + BA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (I = eg(E, 0, G, 0)), - (g = p), - (IA = I), - (I = eg((_ = (pA >>> 5) & 2097151), 0, a, 0)), - (g = (p + g) | 0), - (g = - I >>> 0 > (IA = (IA + I) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (nA = ((I = eg(o, 0, l, 0)) + IA) | 0), - (IA = (p + g) | 0), - (IA = I >>> 0 > nA >>> 0 ? (IA + 1) | 0 : IA), - (g = eg(t, 0, w, 0)), - (I = (p + IA) | 0), - (I = - g >>> 0 > (nA = (g + nA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (g = eg(e, 0, y, 0)), - (I = (p + I) | 0), - (I = - g >>> 0 > (IA = (g + nA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (nA = ((g = IA) + (IA = eg(f, 0, h, 0))) | 0), - (g = (p + I) | 0), - (g = IA >>> 0 > nA >>> 0 ? (g + 1) | 0 : g), - (I = eg(c, m, u, 0)), - (g = (p + g) | 0), - (g = - I >>> 0 > (IA = (I + nA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (nA = ((I = eg(s, 0, D, 0)) + IA) | 0), - (IA = (p + g) | 0), - (IA = I >>> 0 > nA >>> 0 ? (IA + 1) | 0 : IA), - (g = eg(r, 0, F, 0)), - (I = (p + IA) | 0), - (I = - g >>> 0 > (nA = (g + nA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (g = eg(i, 0, k, 0)), - (I = (p + I) | 0), - (g = I = - g >>> 0 > (IA = (g + nA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (I = eg(Q, 0, (H = (sA >>> 5) & 2097151), 0)), - (g = (p + g) | 0), - (cA = IA = (I + IA) | 0), - (XA = g = I >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), - (AA = ((I = IA) - -1048576) | 0), - (VA = IA = - (g - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (I = ((I = IA >> 21) + BA) | 0), - (yA = IA = - ((g = ((2097151 & IA) << 11) | (AA >>> 21)) + - gA) | - 0), - (qA = I = g >>> 0 > IA >>> 0 ? (I + 1) | 0 : I), - (WA = ((I = IA) - -1048576) | 0), - (JA = IA = - (qA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (g = ((I = IA >> 21) + CA) | 0), - (eA = BA = - ((IA = ((2097151 & IA) << 11) | (WA >>> 21)) + - EA) | - 0), - (PA = g = IA >>> 0 > BA >>> 0 ? (g + 1) | 0 : g), - (mA = ((I = BA) - -1048576) | 0), - (HA = IA = - (g - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (I = ((I = IA >> 21) + fA) | 0), - (CA = IA = - ((g = ((2097151 & IA) << 11) | (mA >>> 21)) + - tA) | - 0), - (sA = IA = - ((GA = I = g >>> 0 > IA >>> 0 ? (I + 1) | 0 : I) - - ((((I = IA) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (aA = - ((2097151 & IA) << 11) | - ((bA = (I - -1048576) | 0) >>> 21)), - (gA = IA >> 21), - (I = eg(E, 0, f, 0)), - (g = p), - (IA = I), - (I = eg(a, 0, e, 0)), - (g = (p + g) | 0), - (g = - I >>> 0 > (IA = (IA + I) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (I = eg(c, m, w, 0)), - (g = (p + g) | 0), - (g = - I >>> 0 > (IA = (I + IA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (BA = ((I = IA) + (IA = eg(o, 0, s, 0))) | 0), - (I = (p + g) | 0), - (I = IA >>> 0 > BA >>> 0 ? (I + 1) | 0 : I), - (g = eg(r, 0, y, 0)), - (IA = (p + I) | 0), - (IA = - g >>> 0 > (BA = (g + BA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (g = eg(i, 0, h, 0)), - (I = (p + IA) | 0), - (I = - g >>> 0 > (BA = (g + BA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (IA = eg(Q, 0, D, 0)), - (g = (p + I) | 0), - (g = - IA >>> 0 > (BA = (IA + BA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (IA = eg(S, R, -683901, -1)), - (g = ((I = g) + p) | 0), - (g = - IA >>> 0 > (EA = (BA + IA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (IA = EA), - (EA = - ((EA = I) - - ((((I = BA) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (pA = (I - -1048576) | 0), - (nA = ((I = IA) - (IA = -2097152 & pA)) | 0), - (IA = - (g - (((BA = EA) + (I >>> 0 < IA >>> 0)) | 0)) | - 0), - (I = ((I = QA >> 21) + IA) | 0), - (I = - (g = ((2097151 & QA) << 11) | (oA >>> 21)) >>> 0 > - (QA = (g + nA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (EA = - ((g = QA) - - (IA = -2097152 & (rA = (g - -1048576) | 0))) | - 0), - (IA = - (((I - - (((g >>> 0 < IA >>> 0) + - (QA = nA = - (I - (((g >>> 0 < 4293918720) - 1) | 0)) | - 0)) | - 0)) | - 0) + - gA) | - 0), - (x = aA = (EA + aA) | 0), - (L = IA = EA >>> 0 > aA >>> 0 ? (IA + 1) | 0 : IA), - (nA = eg(aA, IA, -683901, -1)), - (EA = p), - (g = eg(o, 0, c, m)), - (I = p), - (IA = g), - (g = eg(a, 0, f, 0)), - (I = (p + I) | 0), - (I = - g >>> 0 > (IA = (IA + g) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (gA = ((g = IA) + (IA = eg(E, 0, s, 0))) | 0), - (g = (p + I) | 0), - (g = IA >>> 0 > gA >>> 0 ? (g + 1) | 0 : g), - (IA = eg(r, 0, w, 0)), - (I = (p + g) | 0), - (I = - IA >>> 0 > (gA = (IA + gA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (IA = eg(i, 0, y, 0)), - (g = (p + I) | 0), - (g = - IA >>> 0 > (gA = (IA + gA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (I = eg(Q, 0, h, 0)), - (IA = (p + g) | 0), - (IA = - I >>> 0 > (gA = (I + gA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (I = ((I = BA >> 21) + IA) | 0), - (wA = gA = - ((I = - (g = ((2097151 & BA) << 11) | (pA >>> 21)) >>> - 0 > - (BA = (g + gA) | 0) >>> 0 - ? (I + 1) | 0 - : I) - - ((((g = BA) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (BA = - (g - - (IA = -2097152 & (UA = (g - -1048576) | 0))) | - 0), - (IA = - (((I - (((g >>> 0 < IA >>> 0) + gA) | 0)) | 0) + - (QA >> 21)) | - 0), - (K = BA = - ((I = ((2097151 & QA) << 11) | (rA >>> 21)) + - BA) | - 0), - (q = IA = I >>> 0 > BA >>> 0 ? (IA + 1) | 0 : IA), - (g = eg(BA, IA, 136657, 0)), - (I = (p + EA) | 0), - (KA = IA = (g + nA) | 0), - (hA = g >>> 0 > IA >>> 0 ? (I + 1) | 0 : I), - (g = eg(w, 0, _, 0)), - (I = p), - (IA = g), - (g = eg((Y = 2097151 & NA), 0, o, 0)), - (I = (p + I) | 0), - (I = - g >>> 0 > (IA = (IA + g) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (BA = ((g = IA) + (IA = eg(y, 0, G, 0))) | 0), - (g = (p + I) | 0), - (g = IA >>> 0 > BA >>> 0 ? (g + 1) | 0 : g), - (I = eg(h, 0, l, 0)), - (IA = (p + g) | 0), - (IA = - I >>> 0 > (BA = (I + BA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (g = eg(t, 0, D, 0)), - (I = (p + IA) | 0), - (I = - g >>> 0 > (BA = (g + BA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (IA = eg(e, 0, u, 0)), - (g = (p + I) | 0), - (g = - IA >>> 0 > (BA = (IA + BA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (IA = eg(f, 0, F, 0)), - (I = (p + g) | 0), - (I = - IA >>> 0 > (BA = (IA + BA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (IA = eg(c, m, H, 0)), - (g = (p + I) | 0), - (g = - IA >>> 0 > (BA = (IA + BA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (I = eg(s, 0, k, 0)), - (IA = (p + g) | 0), - (IA = - I >>> 0 > (BA = (I + BA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (g = eg(r, 0, (b = 2097151 & RA), 0)), - (I = (p + IA) | 0), - (I = - g >>> 0 > (BA = (g + BA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (QA = BA = - ((IA = - ((n[(B + 23) | 0] | - (n[(B + 24) | 0] << 8) | - (n[(B + 25) | 0] << 16) | - (n[(B + 26) | 0] << 24)) >>> - 5) & - 2097151) + - BA) | - 0), - (BA = IA >>> 0 > BA >>> 0 ? (I + 1) | 0 : I), - (I = eg(y, 0, _, 0)), - (g = p), - (IA = I), - (I = eg(w, 0, Y, 0)), - (g = (p + g) | 0), - (g = - I >>> 0 > (IA = (IA + I) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (gA = ((I = eg(h, 0, G, 0)) + IA) | 0), - (IA = (p + g) | 0), - (IA = I >>> 0 > gA >>> 0 ? (IA + 1) | 0 : IA), - (g = eg(D, 0, l, 0)), - (I = (p + IA) | 0), - (I = - g >>> 0 > (gA = (g + gA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (g = eg(t, 0, u, 0)), - (I = (p + I) | 0), - (I = - g >>> 0 > (IA = (g + gA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (gA = ((g = IA) + (IA = eg(e, 0, F, 0))) | 0), - (g = (p + I) | 0), - (g = IA >>> 0 > gA >>> 0 ? (g + 1) | 0 : g), - (I = eg(f, 0, k, 0)), - (g = (p + g) | 0), - (g = - I >>> 0 > (IA = (I + gA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (gA = ((I = eg(c, m, b, 0)) + IA) | 0), - (IA = (p + g) | 0), - (IA = I >>> 0 > gA >>> 0 ? (IA + 1) | 0 : IA), - (g = eg(s, 0, H, 0)), - (I = (p + IA) | 0), - (I = - g >>> 0 > (gA = (g + gA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (gA = IA = ((g = 2097151 & FA) + gA) | 0), - (tA = IA = - ((oA = I = g >>> 0 > IA >>> 0 ? (I + 1) | 0 : I) - - ((((I = IA) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (I = - ((2097151 & IA) << 11) | - ((YA = (I - -1048576) | 0) >>> 21)), - (IA = (((IA >>> 21) | 0) + BA) | 0), - (rA = IA = - I >>> 0 > (QA = (I + QA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (NA = (iA - (I = -2097152 & DA)) | 0), - (FA = (lA - (((I >>> 0 > iA >>> 0) + uA) | 0)) | 0), - (g = eg(E, 0, r, 0)), - (I = p), - (IA = g), - (g = eg(a, 0, c, m)), - (I = (p + I) | 0), - (I = - g >>> 0 > (IA = (IA + g) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (BA = ((g = IA) + (IA = eg(i, 0, o, 0))) | 0), - (g = (p + I) | 0), - (g = IA >>> 0 > BA >>> 0 ? (g + 1) | 0 : g), - (I = eg(Q, 0, w, 0)), - (IA = (p + g) | 0), - (IA = - I >>> 0 > (BA = (I + BA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (EA = BA), - (I = eg(a, 0, s, 0)), - (g = p), - (BA = I), - (I = eg(E, 0, c, m)), - (g = (p + g) | 0), - (g = - I >>> 0 > (BA = (BA + I) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (iA = ((I = BA) + (BA = eg(o, 0, r, 0))) | 0), - (I = (p + g) | 0), - (I = BA >>> 0 > iA >>> 0 ? (I + 1) | 0 : I), - (g = eg(i, 0, w, 0)), - (I = (p + I) | 0), - (I = - g >>> 0 > (BA = (g + iA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (iA = ((g = BA) + (BA = eg(Q, 0, y, 0))) | 0), - (g = (p + I) | 0), - (aA = g = BA >>> 0 > iA >>> 0 ? (g + 1) | 0 : g), - (lA = ((I = BA = iA) - -1048576) | 0), - (nA = iA = - (g - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (g = ((I = iA >> 21) + IA) | 0), - (EA = g = - (IA = EA = - ((iA = ((2097151 & iA) << 11) | (lA >>> 21)) + - EA) | - 0) >>> - 0 < - iA >>> 0 - ? (g + 1) | 0 - : g), - (uA = ((I = IA) - -1048576) | 0), - (g = - ((I = - (iA = DA = - (g - (((I >>> 0 < 4293918720) - 1) | 0)) | - 0) >> 21) + - FA) | - 0), - (X = g = - (DA = ((2097151 & iA) << 11) | (uA >>> 21)) >>> - 0 > - (U = NA = (DA + NA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (FA = eg(U, g, 470296, 0)), - (DA = p), - (M = (IA - (g = -2097152 & uA)) | 0), - (dA = I = - (EA - (((g >>> 0 > IA >>> 0) + iA) | 0)) | 0), - (g = eg(N, J, 666643, 0)), - (IA = (p + DA) | 0), - (IA = - g >>> 0 > (iA = (g + FA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (g = eg(M, I, 654183, 0)), - (I = (p + IA) | 0), - (g = - g >>> 0 > (EA = iA = (g + iA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (I = (BA - (IA = -2097152 & lA)) | 0), - (IA = - ((wA >> 21) + - (iA = - (aA - (((IA >>> 0 > BA >>> 0) + nA) | 0)) | - 0)) | - 0), - (V = nA = - ((BA = ((2097151 & wA) << 11) | (UA >>> 21)) + - I) | - 0), - (RA = IA = BA >>> 0 > nA >>> 0 ? (IA + 1) | 0 : IA), - (jA = (QA - -1048576) | 0), - (BA = iA = - (rA - (((QA >>> 0 < 4293918720) - 1) | 0)) | 0), - (I = eg(nA, IA, -997805, -1)), - (g = (p + g) | 0), - (I = - ((g = - I >>> 0 > (IA = (I + EA) | 0) >>> 0 - ? (g + 1) | 0 - : g) + - rA) | - 0), - (I = - IA >>> 0 > (QA = (IA + QA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (FA = ((IA = QA) - (g = -2097152 & jA)) | 0), - (DA = (I - (((g >>> 0 > IA >>> 0) + BA) | 0)) | 0), - (I = eg(M, dA, 470296, 0)), - (g = p), - (QA = ((IA = I) + (I = eg(U, X, 666643, 0))) | 0), - (IA = (p + g) | 0), - (IA = I >>> 0 > QA >>> 0 ? (IA + 1) | 0 : IA), - (g = eg(nA, RA, 654183, 0)), - (I = (p + IA) | 0), - (g = - (oA + - (g >>> 0 > (QA = (g + QA) | 0) >>> 0 - ? (I + 1) | 0 - : I)) | - 0), - (rA = - ((IA = (gA + QA) | 0) - (I = -2097152 & YA)) | 0), - (iA = - ((g = IA >>> 0 < gA >>> 0 ? (g + 1) | 0 : g) - - (((I >>> 0 > IA >>> 0) + tA) | 0)) | - 0), - (g = eg(h, 0, _, 0)), - (I = p), - (IA = g), - (g = eg(y, 0, Y, 0)), - (I = (p + I) | 0), - (I = - g >>> 0 > (IA = (IA + g) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (g = eg(D, 0, G, 0)), - (I = (p + I) | 0), - (I = - g >>> 0 > (IA = (g + IA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (QA = ((g = IA) + (IA = eg(u, 0, l, 0))) | 0), - (g = (p + I) | 0), - (g = IA >>> 0 > QA >>> 0 ? (g + 1) | 0 : g), - (I = eg(t, 0, F, 0)), - (IA = (p + g) | 0), - (IA = - I >>> 0 > (QA = (I + QA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (I = eg(e, 0, k, 0)), - (g = (p + IA) | 0), - (g = - I >>> 0 > (QA = (I + QA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (IA = eg(f, 0, H, 0)), - (I = (p + g) | 0), - (I = - IA >>> 0 > (QA = (IA + QA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (g = eg(s, 0, b, 0)), - (I = (p + I) | 0), - (I = - g >>> 0 > (IA = (g + QA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (g = IA), - (QA = - (IA = - 2097151 & (((7 & _A) << 29) | (TA >>> 3))) >>> - 0 > - (gA = QA = (g + IA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (I = eg(D, 0, _, 0)), - (g = p), - (EA = ((IA = I) + (I = eg(h, 0, Y, 0))) | 0), - (IA = (p + g) | 0), - (IA = I >>> 0 > EA >>> 0 ? (IA + 1) | 0 : IA), - (g = eg(u, 0, G, 0)), - (I = (p + IA) | 0), - (I = - g >>> 0 > (EA = (g + EA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (IA = eg(F, 0, l, 0)), - (g = (p + I) | 0), - (g = - IA >>> 0 > (EA = (IA + EA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (IA = eg(t, 0, k, 0)), - (I = (p + g) | 0), - (I = - IA >>> 0 > (EA = (IA + EA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (IA = eg(e, 0, H, 0)), - (g = (p + I) | 0), - (g = - IA >>> 0 > (EA = (IA + EA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (I = eg(f, 0, b, 0)), - (IA = (p + g) | 0), - (I = - I >>> 0 > (g = EA = (I + EA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (lA = IA = (EA + (g = (vA >>> 6) & 2097151)) | 0), - (fA = IA = - ((aA = I = g >>> 0 > IA >>> 0 ? (I + 1) | 0 : I) - - ((((I = IA) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (I = - ((2097151 & IA) << 11) | - ((uA = (I - -1048576) | 0) >>> 21)), - (IA = (((IA >>> 21) | 0) + QA) | 0), - (nA = IA = - I >>> 0 > (gA = (I + gA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (wA = ((I = gA) - -1048576) | 0), - (EA = IA = - (IA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (I = ((g = (IA >>> 21) | 0) + iA) | 0), - (oA = QA = - ((IA = ((2097151 & IA) << 11) | (wA >>> 21)) + - rA) | - 0), - (pA = IA = - ((iA = I = - IA >>> 0 > QA >>> 0 ? (I + 1) | 0 : I) - - ((((I = QA) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (I = - ((2097151 & IA) << 11) | - ((tA = (I - -1048576) | 0) >>> 21)), - (IA = ((IA >> 21) + DA) | 0), - (I = - ((g = IA = - I >>> 0 > (QA = (I + FA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA) + - hA) | - 0), - (rA = - ((rA = g) - - ((((g = QA) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (ZA = (g - -1048576) | 0), - (OA = - ((g = IA = _A = (QA + KA) | 0) - - (IA = -2097152 & ZA)) | - 0), - (kA = - ((I = QA >>> 0 > _A >>> 0 ? (I + 1) | 0 : I) - - (((QA = rA) + (g >>> 0 < IA >>> 0)) | 0)) | - 0), - (I = eg(K, q, -997805, -1)), - (g = (p + iA) | 0), - (UA = IA = (I + oA) | 0), - (rA = I >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), - (g = eg(V, RA, 470296, 0)), - (I = p), - (IA = g), - (g = eg(M, dA, 666643, 0)), - (I = (p + I) | 0), - (I = - ((I = - g >>> 0 > (IA = (IA + g) | 0) >>> 0 - ? (I + 1) | 0 - : I) + - nA) | - 0), - (I = - (g = (IA + gA) | 0) >>> 0 < gA >>> 0 - ? (I + 1) | 0 - : I), - (wA = ((IA = g) - (g = -2097152 & wA)) | 0), - (hA = (I - (((g >>> 0 > IA >>> 0) + EA) | 0)) | 0), - (I = eg(V, RA, 666643, 0)), - (g = (p + aA) | 0), - (oA = IA = (I + lA) | 0), - (iA = I >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), - (g = eg(u, 0, _, 0)), - (I = p), - (IA = g), - (g = eg(D, 0, Y, 0)), - (I = (p + I) | 0), - (I = - g >>> 0 > (IA = (IA + g) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (g = eg(F, 0, G, 0)), - (I = (p + I) | 0), - (I = - g >>> 0 > (IA = (g + IA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (gA = ((g = IA) + (IA = eg(k, 0, l, 0))) | 0), - (g = (p + I) | 0), - (g = IA >>> 0 > gA >>> 0 ? (g + 1) | 0 : g), - (I = eg(t, 0, H, 0)), - (IA = (p + g) | 0), - (IA = - I >>> 0 > (gA = (I + gA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (I = eg(e, 0, b, 0)), - (g = (p + IA) | 0), - (I = g = - I >>> 0 > (gA = (I + gA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (EA = gA = - ((IA = - 2097151 & (((1 & SA) << 31) | (LA >>> 1))) + - gA) | - 0), - (gA = IA >>> 0 > gA >>> 0 ? (I + 1) | 0 : I), - (g = eg(F, 0, _, 0)), - (I = p), - (IA = g), - (g = eg(u, 0, Y, 0)), - (I = (p + I) | 0), - (I = - g >>> 0 > (IA = (IA + g) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (nA = ((g = IA) + (IA = eg(k, 0, G, 0))) | 0), - (g = (p + I) | 0), - (g = IA >>> 0 > nA >>> 0 ? (g + 1) | 0 : g), - (I = eg(H, 0, l, 0)), - (g = (p + g) | 0), - (g = - I >>> 0 > (IA = (I + nA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (nA = ((I = eg(t, 0, b, 0)) + IA) | 0), - (IA = (p + g) | 0), - (I = I >>> 0 > (g = nA) >>> 0 ? (IA + 1) | 0 : IA), - (aA = IA = (nA + (g = (xA >>> 4) & 2097151)) | 0), - (xA = IA = - ((YA = I = g >>> 0 > IA >>> 0 ? (I + 1) | 0 : I) - - ((((I = IA) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (I = - ((2097151 & IA) << 11) | - ((TA = (I - -1048576) | 0) >>> 21)), - (IA = (((IA >>> 21) | 0) + gA) | 0), - (nA = EA = (I + EA) | 0), - (SA = IA = I >>> 0 > EA >>> 0 ? (IA + 1) | 0 : IA), - (KA = ((I = EA) - -1048576) | 0), - (vA = IA = - (IA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (I = ((g = (IA >>> 21) | 0) + iA) | 0), - (lA = IA = - ((_A = - ((IA = - (IA = - ((2097151 & IA) << 11) | (KA >>> 21)) >>> - 0 > - (g = gA = (IA + oA) | 0) >>> 0 - ? (I + 1) | 0 - : I) - - ((((I = -2097152 & uA) >>> 0 > g >>> 0) + - fA) | - 0)) | - 0) - - ((((I = EA = (g - I) | 0) >>> 0 < 4293918720) - - 1) | - 0)) | - 0), - (g = ((g = IA >> 21) + hA) | 0), - (FA = IA = - ((I = - ((2097151 & IA) << 11) | - ((NA = (I - -1048576) | 0) >>> 21)) + - wA) | - 0), - (uA = g = I >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), - (DA = ((I = IA) - -1048576) | 0), - (wA = gA = - (g - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (d = (CA - (I = -2097152 & bA)) | 0), - (LA = IA = - (GA - (((I >>> 0 > CA >>> 0) + sA) | 0)) | 0), - (I = ((g = gA >> 21) + rA) | 0), - (I = - (gA = ((2097151 & gA) << 11) | (DA >>> 21)) >>> - 0 > - (CA = (gA + UA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (iA = - ((gA = eg(x, L, 136657, 0)) + - ((CA - (g = -2097152 & tA)) | 0)) | - 0), - (g = - (p + - ((I - (((g >>> 0 > CA >>> 0) + pA) | 0)) | 0)) | - 0), - (g = gA >>> 0 > iA >>> 0 ? (g + 1) | 0 : g), - (IA = eg(d, IA, -683901, -1)), - (I = (p + g) | 0), - (iA = gA = (IA + iA) | 0), - (oA = IA = - ((hA = I = - IA >>> 0 > gA >>> 0 ? (I + 1) | 0 : I) - - ((((I = gA) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (g = ((g = IA >> 21) + kA) | 0), - (CA = IA = - ((I = - ((2097151 & IA) << 11) | - ((bA = (I - -1048576) | 0) >>> 21)) + - OA) | - 0), - (tA = g = I >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), - (fA = IA = - (g - ((((I = IA) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (UA = - ((2097151 & IA) << 11) | - ((GA = (I - -1048576) | 0) >>> 21)), - (pA = IA >> 21), - (g = eg(o, 0, _, 0)), - (I = p), - (IA = g), - (g = eg(E, 0, Y, 0)), - (I = (p + I) | 0), - (I = - g >>> 0 > (IA = (IA + g) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (gA = ((g = eg(w, 0, G, 0)) + IA) | 0), - (IA = (p + I) | 0), - (IA = g >>> 0 > gA >>> 0 ? (IA + 1) | 0 : IA), - (I = eg(y, 0, l, 0)), - (g = (p + IA) | 0), - (g = - I >>> 0 > (gA = (I + gA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (IA = eg(t, 0, h, 0)), - (I = (p + g) | 0), - (I = - IA >>> 0 > (gA = (IA + gA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (IA = eg(e, 0, D, 0)), - (g = (p + I) | 0), - (g = - IA >>> 0 > (gA = (IA + gA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (IA = eg(f, 0, u, 0)), - (I = (p + g) | 0), - (I = - IA >>> 0 > (gA = (IA + gA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (g = eg(c, m, k, 0)), - (IA = (p + I) | 0), - (IA = - g >>> 0 > (gA = (g + gA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (I = eg(s, 0, F, 0)), - (g = (p + IA) | 0), - (g = - I >>> 0 > (gA = (I + gA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (IA = eg(r, 0, H, 0)), - (I = (p + g) | 0), - (I = - IA >>> 0 > (gA = (IA + gA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (IA = eg(i, 0, b, 0)), - (g = (p + I) | 0), - (g = - IA >>> 0 > (gA = (IA + gA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (I = HI((B + 26) | 0)), - (IA = - 2097151 & (((3 & (IA = p)) << 30) | (I >>> 2))), - (I = g), - (sA = gA = (IA + gA) | 0), - (gA = I = IA >>> 0 > gA >>> 0 ? (I + 1) | 0 : I), - (I = eg(N, J, 470296, 0)), - (g = p), - (kA = ((IA = I) + (I = eg(v, P, 666643, 0))) | 0), - (IA = (p + g) | 0), - (IA = I >>> 0 > kA >>> 0 ? (IA + 1) | 0 : IA), - (I = eg(U, X, 654183, 0)), - (g = (p + IA) | 0), - (g = - I >>> 0 > (kA = (I + kA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (I = eg(M, dA, -997805, -1)), - (g = (p + g) | 0), - (g = - I >>> 0 > (IA = (I + kA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (kA = ((I = IA) + (IA = eg(V, RA, 136657, 0))) | 0), - (I = (p + g) | 0), - (I = - ((I = IA >>> 0 > kA >>> 0 ? (I + 1) | 0 : I) + - gA) | - 0), - (I = - (g = kA) >>> 0 > (IA = (g + sA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (g = IA), - (IA = I), - (W = ((I = sA) - -1048576) | 0), - (gA = rA = - (gA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (rA = g), - (IA = ((g = BA >> 21) + IA) | 0), - (IA = - (I = ((2097151 & BA) << 11) | (jA >>> 21)) >>> 0 > - (BA = (rA + I) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (g = (BA - (I = -2097152 & W)) | 0), - (sA = eg(K, q, -683901, -1)), - (I = - ((BA = - (IA - (((I >>> 0 > BA >>> 0) + gA) | 0)) | 0) + - p) | - 0), - (IA = I = - sA >>> 0 > (kA = (g + sA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (rA = - (BA - ((((I = g) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (T = (I - -1048576) | 0), - (IA = ((g = QA >> 21) + IA) | 0), - (IA = - (I = ((2097151 & QA) << 11) | (ZA >>> 21)) >>> 0 > - (QA = (I + (sA = kA)) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (sA = g = (QA - (I = -2097152 & T)) | 0), - (I = - ((QA = - (IA - - (((I >>> 0 > QA >>> 0) + (BA = rA)) | 0)) | - 0) + - pA) | - 0), - (j = (g - -1048576) | 0), - (rA = - (QA - (((g >>> 0 < 4293918720) - 1) | 0)) | 0), - (jA = - ((g = IA = UA = (g + UA) | 0) - - (IA = -2097152 & j)) | - 0), - (ZA = - ((sA >>> 0 > g >>> 0 ? (I + 1) | 0 : I) - - (((g >>> 0 < IA >>> 0) + (QA = rA)) | 0)) | - 0), - (OA = (CA - (I = -2097152 & GA)) | 0), - (kA = (tA - (((I >>> 0 > CA >>> 0) + fA) | 0)) | 0), - (UA = (iA - (I = -2097152 & bA)) | 0), - (bA = (hA - (((I >>> 0 > iA >>> 0) + oA) | 0)) | 0), - (g = eg(K, q, 654183, 0)), - (I = (p + uA) | 0), - (I = - g >>> 0 > (IA = (g + FA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (iA = - ((((CA = IA) - (g = -2097152 & DA)) | 0) + - (IA = eg(x, L, -997805, -1))) | - 0), - (g = - (p + - ((I - (((g >>> 0 > CA >>> 0) + wA) | 0)) | 0)) | - 0), - (g = IA >>> 0 > iA >>> 0 ? (g + 1) | 0 : g), - (IA = eg(d, LA, 136657, 0)), - (I = (p + g) | 0), - (GA = CA = (IA + iA) | 0), - (iA = IA >>> 0 > CA >>> 0 ? (I + 1) | 0 : I), - (sA = (eA - (I = -2097152 & mA)) | 0), - (hA = (PA - (((I >>> 0 > eA >>> 0) + HA) | 0)) | 0), - (I = eg(v, P, -997805, -1)), - (g = p), - (IA = I), - (I = eg(S, R, 654183, 0)), - (g = (p + g) | 0), - (g = - I >>> 0 > (IA = (IA + I) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (I = eg(N, J, 136657, 0)), - (g = (p + g) | 0), - (g = - I >>> 0 > (IA = (I + IA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (CA = - ((I = IA) + (IA = eg(U, X, -683901, -1))) | 0), - (I = (p + g) | 0), - (IA = - (qA + (IA >>> 0 > CA >>> 0 ? (I + 1) | 0 : I)) | - 0), - (oA = - ((g = (CA + yA) | 0) - (I = -2097152 & WA)) | 0), - (tA = - ((IA = g >>> 0 < yA >>> 0 ? (IA + 1) | 0 : IA) - - (((I >>> 0 > g >>> 0) + JA) | 0)) | - 0), - (I = eg(v, P, 654183, 0)), - (g = p), - (IA = I), - (I = eg(S, R, 470296, 0)), - (g = (p + g) | 0), - (g = - I >>> 0 > (IA = (IA + I) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (CA = - ((I = IA) + (IA = eg(N, J, -997805, -1))) | 0), - (I = (p + g) | 0), - (g = (CA + cA) | 0), - (IA = - (XA + (IA >>> 0 > CA >>> 0 ? (I + 1) | 0 : I)) | - 0), - (CA = ((I = eg(U, X, 136657, 0)) + g) | 0), - (g = - (p + (g >>> 0 < cA >>> 0 ? (IA + 1) | 0 : IA)) | - 0), - (g = I >>> 0 > CA >>> 0 ? (g + 1) | 0 : g), - (IA = eg(M, dA, -683901, -1)), - (I = (p + g) | 0), - (I = - IA >>> 0 > (CA = (IA + CA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (yA = ((IA = CA) - (g = -2097152 & AA)) | 0), - (eA = (I - (((g >>> 0 > IA >>> 0) + VA) | 0)) | 0), - (g = eg(E, 0, _, 0)), - (I = p), - (IA = g), - (g = eg(a, 0, Y, 0)), - (I = (p + I) | 0), - (I = - g >>> 0 > (IA = (IA + g) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (CA = ((g = IA) + (IA = eg(o, 0, G, 0))) | 0), - (g = (p + I) | 0), - (g = IA >>> 0 > CA >>> 0 ? (g + 1) | 0 : g), - (IA = eg(w, 0, l, 0)), - (I = (p + g) | 0), - (I = - IA >>> 0 > (CA = (IA + CA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (g = eg(t, 0, y, 0)), - (IA = (p + I) | 0), - (IA = - g >>> 0 > (CA = (g + CA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (I = eg(e, 0, h, 0)), - (g = (p + IA) | 0), - (g = - I >>> 0 > (CA = (I + CA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (IA = eg(f, 0, D, 0)), - (I = (p + g) | 0), - (I = - IA >>> 0 > (CA = (IA + CA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (IA = eg(c, m, F, 0)), - (g = (p + I) | 0), - (g = - IA >>> 0 > (CA = (IA + CA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (IA = eg(s, 0, u, 0)), - (I = (p + g) | 0), - (I = - IA >>> 0 > (CA = (IA + CA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (g = eg(r, 0, k, 0)), - (IA = (p + I) | 0), - (IA = - g >>> 0 > (CA = (g + CA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (I = eg(Q, 0, b, 0)), - (g = (p + IA) | 0), - (g = - I >>> 0 > (CA = (I + CA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (IA = eg(i, 0, H, 0)), - (I = (p + g) | 0), - (I = - IA >>> 0 > (CA = (IA + CA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (g = - (B = - ((n[(B + 28) | 0] | - (n[(B + 29) | 0] << 8) | - (n[(B + 30) | 0] << 16) | - (n[(B + 31) | 0] << 24)) >>> - 7) | - 0) >>> - 0 > - (IA = (B + CA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (I = IA), - (IA = gA >> 21), - (gA = - (I + (B = ((2097151 & gA) << 11) | (W >>> 21))) | - 0), - (I = (g + IA) | 0), - (CA = gA), - (fA = I = B >>> 0 > gA >>> 0 ? (I + 1) | 0 : I), - (uA = ((I = gA) - -1048576) | 0), - (pA = g = - (fA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (I = ((IA = g >> 21) + eA) | 0), - (gA = B = - ((g = ((2097151 & g) << 11) | (uA >>> 21)) + yA) | - 0), - (rA = I = g >>> 0 > B >>> 0 ? (I + 1) | 0 : I), - (wA = ((I = B) - -1048576) | 0), - (cA = g = - (rA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (I = ((IA = g >> 21) + tA) | 0), - (yA = I = - (g = ((2097151 & g) << 11) | (wA >>> 21)) >>> 0 > - (B = (g + oA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (tA = ((I = B) - -1048576) | 0), - (eA = g = - (yA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (I = ((IA = g >> 21) + hA) | 0), - (mA = oA = - ((g = ((2097151 & g) << 11) | (tA >>> 21)) + sA) | - 0), - (HA = I = g >>> 0 > oA >>> 0 ? (I + 1) | 0 : I), - (I = eg(oA, I, -683901, -1)), - (g = (p + iA) | 0), - (oA = IA = (I + GA) | 0), - (iA = I >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), - (FA = (B - (I = -2097152 & tA)) | 0), - (GA = eA = - (yA - (((I >>> 0 > B >>> 0) + eA) | 0)) | 0), - (g = (eg(K, q, 470296, 0) + EA) | 0), - (I = (_A + p) | 0), - (I = g >>> 0 < EA >>> 0 ? (I + 1) | 0 : I), - (EA = - ((((IA = g) - (B = -2097152 & NA)) | 0) + - (g = eg(x, L, 654183, 0))) | - 0), - (IA = - (p + - ((I - (((B >>> 0 > IA >>> 0) + lA) | 0)) | 0)) | - 0), - (I = eg(d, LA, -997805, -1)), - (g = - (p + (g >>> 0 > EA >>> 0 ? (IA + 1) | 0 : IA)) | - 0), - (g = - I >>> 0 > (B = (I + EA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (IA = ((I = B) + (B = eg(mA, HA, 136657, 0))) | 0), - (I = (p + g) | 0), - (I = B >>> 0 > IA >>> 0 ? (I + 1) | 0 : I), - (B = eg(FA, eA, -683901, -1)), - (g = (p + I) | 0), - (yA = g = - B >>> 0 > (IA = (B + IA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (hA = ((I = IA) - -1048576) | 0), - (eA = B = - (g - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (I = ((I = B >> 21) + iA) | 0), - (EA = I = - (g = ((2097151 & B) << 11) | (hA >>> 21)) >>> 0 > - (B = (g + oA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (tA = ((I = B) - -1048576) | 0), - (g = - ((I = - (iA = oA = - (EA - (((I >>> 0 < 4293918720) - 1) | 0)) | - 0) >> 21) + - bA) | - 0), - (bA = lA = - ((oA = ((2097151 & iA) << 11) | (tA >>> 21)) + - UA) | - 0), - (oA = oA >>> 0 > lA >>> 0 ? (g + 1) | 0 : g), - (XA = (B - (I = -2097152 & tA)) | 0), - (VA = (EA - (((I >>> 0 > B >>> 0) + iA) | 0)) | 0), - (JA = (IA - (I = -2097152 & hA)) | 0), - (PA = (yA - (((I >>> 0 > IA >>> 0) + eA) | 0)) | 0), - (I = eg(K, q, 666643, 0)), - (IA = - (p + - ((SA - - ((((g = -2097152 & KA) >>> 0 > nA >>> 0) + - vA) | - 0)) | - 0)) | - 0), - (IA = - I >>> 0 > (B = (I + ((nA - g) | 0)) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (I = eg(x, L, 470296, 0)), - (g = (p + IA) | 0), - (g = - I >>> 0 > (B = (I + B) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (IA = ((I = B) + (B = eg(d, LA, 654183, 0))) | 0), - (I = (p + g) | 0), - (eA = IA), - (B = B >>> 0 > IA >>> 0 ? (I + 1) | 0 : I), - (nA = (gA - (I = -2097152 & wA)) | 0), - (iA = (rA - (((I >>> 0 > gA >>> 0) + cA) | 0)) | 0), - (g = eg(v, P, 470296, 0)), - (I = p), - (IA = g), - (g = eg(S, R, 666643, 0)), - (I = (p + I) | 0), - (I = - g >>> 0 > (IA = (IA + g) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (gA = ((g = IA) + (IA = eg(N, J, 654183, 0))) | 0), - (g = (p + I) | 0), - (g = IA >>> 0 > gA >>> 0 ? (g + 1) | 0 : g), - (IA = eg(U, X, -997805, -1)), - (I = (p + g) | 0), - (I = - IA >>> 0 > (gA = (IA + gA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (g = eg(M, dA, 136657, 0)), - (IA = (p + I) | 0), - (IA = - g >>> 0 > (gA = (g + gA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (I = eg(V, RA, -683901, -1)), - (g = (p + IA) | 0), - (I = - (fA + - (I >>> 0 > (gA = (I + gA) | 0) >>> 0 - ? (g + 1) | 0 - : g)) | - 0), - (I = - (IA = (gA + CA) | 0) >>> 0 < CA >>> 0 - ? (I + 1) | 0 - : I), - (g = ((gA = IA) - (IA = -2097152 & uA)) | 0), - (IA = (I - (((IA >>> 0 > gA >>> 0) + pA) | 0)) | 0), - (I = ((I = BA >> 21) + IA) | 0), - (EA = BA = - ((gA = g) + - (g = ((2097151 & BA) << 11) | (T >>> 21))) | - 0), - (cA = IA = - ((rA = I = g >>> 0 > BA >>> 0 ? (I + 1) | 0 : I) - - ((((I = BA) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (g = - ((2097151 & IA) << 11) | - ((_A = (I - -1048576) | 0) >>> 21)), - (IA = ((IA >> 21) + iA) | 0), - (DA = BA = (g + nA) | 0), - (sA = IA = g >>> 0 > BA >>> 0 ? (IA + 1) | 0 : IA), - (I = eg(BA, IA, -683901, -1)), - (g = (p + B) | 0), - (g = - I >>> 0 > (IA = (I + eA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (B = eg(mA, HA, -997805, -1)), - (I = (p + g) | 0), - (I = - B >>> 0 > (IA = (B + IA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (B = eg(FA, GA, 136657, 0)), - (g = (p + I) | 0), - (nA = IA = (B + IA) | 0), - (gA = B >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), - (g = eg(k, 0, _, 0)), - (I = p), - (B = g), - (g = eg(F, 0, Y, 0)), - (I = (p + I) | 0), - (I = - g >>> 0 > (B = (B + g) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (g = eg(H, 0, G, 0)), - (IA = (p + I) | 0), - (IA = - g >>> 0 > (B = (g + B) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (I = eg(b, 0, l, 0)), - (g = (p + IA) | 0), - (I = g = - I >>> 0 > (B = (I + B) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (CA = B = ((g = (MA >>> 7) & 2097151) + B) | 0), - (B = g >>> 0 > B >>> 0 ? (I + 1) | 0 : I), - (I = eg(H, 0, _, 0)), - (g = p), - (IA = I), - (I = eg(k, 0, Y, 0)), - (g = (p + g) | 0), - (g = - I >>> 0 > (IA = (IA + I) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (I = eg(b, 0, G, 0)), - (g = (p + g) | 0), - (g = - I >>> 0 > (IA = (I + IA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (BA = - ((I = IA) + - (IA = - 2097151 & (((3 & $) << 30) | (z >>> 2)))) | - 0), - (I = g), - (iA = BA), - (tA = IA = - ((BA = I = - IA >>> 0 > BA >>> 0 ? (I + 1) | 0 : I) - - ((((I = iA) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (g = ((g = (IA >>> 21) | 0) + B) | 0), - (CA = IA = - ((I = - ((2097151 & IA) << 11) | - ((vA = (I - -1048576) | 0) >>> 21)) + - CA) | - 0), - (fA = g = I >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), - (lA = ((I = IA) - -1048576) | 0), - (yA = B = - (g - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (I = ((g = (B >>> 21) | 0) + YA) | 0), - (I = - (B = - (aA + (((2097151 & B) << 11) | (lA >>> 21))) | - 0) >>> - 0 < - aA >>> 0 - ? (I + 1) | 0 - : I), - (aA = - ((((IA = B) - (g = -2097152 & TA)) | 0) + - (B = eg(x, L, 666643, 0))) | - 0), - (g = - (p + - ((I - (((g >>> 0 > IA >>> 0) + xA) | 0)) | 0)) | - 0), - (g = B >>> 0 > aA >>> 0 ? (g + 1) | 0 : g), - (I = eg(d, LA, 470296, 0)), - (g = (p + g) | 0), - (g = - I >>> 0 > (B = (I + aA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (IA = ((I = B) + (B = eg(DA, sA, 136657, 0))) | 0), - (I = (p + g) | 0), - (I = B >>> 0 > IA >>> 0 ? (I + 1) | 0 : I), - (g = eg(mA, HA, 654183, 0)), - (I = (p + I) | 0), - (I = - g >>> 0 > (B = (g + IA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (g = eg(FA, GA, -997805, -1)), - (IA = (p + I) | 0), - (uA = B = (g + B) | 0), - (eA = IA = g >>> 0 > B >>> 0 ? (IA + 1) | 0 : IA), - (wA = ((I = B) - -1048576) | 0), - (aA = B = - (IA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (g = ((I = B >> 21) + gA) | 0), - (gA = IA = - ((B = ((2097151 & B) << 11) | (wA >>> 21)) + nA) | - 0), - (B = g = B >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), - (nA = IA = - (g - ((((I = IA) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (g = - ((2097151 & IA) << 11) | - ((hA = (I - -1048576) | 0) >>> 21)), - (IA = ((IA >> 21) + PA) | 0), - (qA = pA = (g + JA) | 0), - (pA = g >>> 0 > pA >>> 0 ? (IA + 1) | 0 : IA), - (IA = QA >> 21), - (QA = - ((I = ((2097151 & QA) << 11) | (j >>> 21)) + - ((EA - (g = -2097152 & _A)) | 0)) | - 0), - (g = - (IA + - ((rA - (((g >>> 0 > EA >>> 0) + cA) | 0)) | - 0)) | - 0), - (rA = g = I >>> 0 > QA >>> 0 ? (g + 1) | 0 : g), - (cA = g = - (g - ((((I = QA) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (SA = IA = g >> 21), - (g = eg( - (MA = - ((2097151 & g) << 11) | - ((_A = (I - -1048576) | 0) >>> 21)), - IA, - -683901, - -1 - )), - (I = (p + B) | 0), - (I = - g >>> 0 > (IA = (g + gA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (JA = (IA - (g = -2097152 & hA)) | 0), - (PA = (I - (((g >>> 0 > IA >>> 0) + nA) | 0)) | 0), - (I = eg(MA, SA, 136657, 0)), - (g = (p + eA) | 0), - (g = - I >>> 0 > (B = (I + uA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (YA = (B - (I = -2097152 & wA)) | 0), - (xA = (g - (((I >>> 0 > B >>> 0) + aA) | 0)) | 0), - (B = - ((I = eg(d, LA, 666643, 0)) + - ((CA - (g = -2097152 & lA)) | 0)) | - 0), - (g = - (p + - ((fA - (((g >>> 0 > CA >>> 0) + yA) | 0)) | - 0)) | - 0), - (g = I >>> 0 > B >>> 0 ? (g + 1) | 0 : g), - (IA = - ((I = B) + (B = eg(DA, sA, -997805, -1))) | 0), - (I = (p + g) | 0), - (I = B >>> 0 > IA >>> 0 ? (I + 1) | 0 : I), - (B = ((g = eg(mA, HA, 470296, 0)) + IA) | 0), - (IA = (p + I) | 0), - (IA = g >>> 0 > B >>> 0 ? (IA + 1) | 0 : IA), - (I = eg(FA, GA, 654183, 0)), - (g = (p + IA) | 0), - (fA = B = (I + B) | 0), - (EA = I >>> 0 > B >>> 0 ? (g + 1) | 0 : g), - (gA = BA), - (g = eg(b, 0, _, 0)), - (I = p), - (B = g), - (g = eg(H, 0, Y, 0)), - (I = (p + I) | 0), - (I = - g >>> 0 > (B = (B + g) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (g = B), - (g = - (B = (O >>> 5) & 2097151) >>> 0 > - (IA = (g + B) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (B = 2097151 & Z), - (BA = (eg(b, 0, Y, 0) + B) | 0), - (I = p), - (eA = B = - ((yA = I = B >>> 0 > BA >>> 0 ? (I + 1) | 0 : I) - - ((((I = BA) >>> 0 < 4293918720) - 1) | 0)) | - 0), - (CA = IA), - (g = (g + (IA = (B >>> 21) | 0)) | 0), - (aA = g = - (I = - ((2097151 & B) << 11) | - ((lA = (I - -1048576) | 0) >>> 21)) >>> - 0 > - (B = (CA + I) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (uA = ((I = B) - -1048576) | 0), - (nA = g = - (g - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (I = ((IA = (g >>> 21) | 0) + gA) | 0), - (I = - (g = ((2097151 & g) << 11) | (uA >>> 21)) >>> 0 > - (CA = (g + iA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (CA = - ((IA = eg(DA, sA, 654183, 0)) + - (((gA = CA) - (g = -2097152 & vA)) | 0)) | - 0), - (g = - (p + - ((I - - (((16383 & tA) + (g >>> 0 > gA >>> 0)) | 0)) | - 0)) | - 0), - (I = eg(mA, HA, 666643, 0)), - (IA = - (p + (IA >>> 0 > CA >>> 0 ? (g + 1) | 0 : g)) | - 0), - (IA = - I >>> 0 > (gA = (I + CA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (g = eg(FA, GA, 470296, 0)), - (I = (p + IA) | 0), - (wA = gA = (g + gA) | 0), - (iA = I = g >>> 0 > gA >>> 0 ? (I + 1) | 0 : I), - (hA = ((I = gA) - -1048576) | 0), - (CA = g = - (iA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (I = ((IA = g >> 21) + EA) | 0), - (tA = gA = - ((g = ((2097151 & g) << 11) | (hA >>> 21)) + fA) | - 0), - (g = I = g >>> 0 > gA >>> 0 ? (I + 1) | 0 : I), - (fA = ((I = gA) - -1048576) | 0), - (I = - ((IA = - (gA = EA = - (g - (((I >>> 0 < 4293918720) - 1) | 0)) | - 0) >> 21) + - xA) | - 0), - (EA = - (EA = ((2097151 & gA) << 11) | (fA >>> 21)) >>> - 0 > - (YA = vA = (EA + YA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (I = eg(MA, SA, -997805, -1)) - ;(g = (p + g) | 0), - (g = - I >>> 0 > (IA = (I + tA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (xA = (IA - (I = -2097152 & fA)) | 0), - (vA = (g - (((I >>> 0 > IA >>> 0) + gA) | 0)) | 0), - (I = eg(MA, SA, 654183, 0)), - (g = (p + iA) | 0), - (g = - I >>> 0 > (IA = (I + wA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (tA = (IA - (I = -2097152 & hA)) | 0), - (fA = (g - (((I >>> 0 > IA >>> 0) + CA) | 0)) | 0), - (IA = - ((g = eg(DA, sA, 470296, 0)) + - ((B - (I = -2097152 & uA)) | 0)) | - 0), - (I = - (p + - ((aA - - (((16383 & nA) + (I >>> 0 > B >>> 0)) | 0)) | - 0)) | - 0), - (I = g >>> 0 > IA >>> 0 ? (I + 1) | 0 : I), - (B = ((g = eg(FA, GA, 666643, 0)) + IA) | 0), - (IA = (p + I) | 0), - (IA = g >>> 0 > B >>> 0 ? (IA + 1) | 0 : IA), - (gA = B), - (B = - ((I = eg(DA, sA, 666643, 0)) + - ((BA - (g = -2097152 & lA)) | 0)) | - 0), - (g = - (p + - ((yA - - (((4095 & eA) + (g >>> 0 > BA >>> 0)) | 0)) | - 0)) | - 0), - (iA = g = I >>> 0 > B >>> 0 ? (g + 1) | 0 : g), - (eA = ((I = B) - -1048576) | 0), - (CA = BA = - (g - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (IA = ((I = BA >> 21) + IA) | 0), - (aA = BA = - ((g = ((2097151 & BA) << 11) | (eA >>> 21)) + - gA) | - 0), - (gA = IA = g >>> 0 > BA >>> 0 ? (IA + 1) | 0 : IA), - (nA = ((I = BA) - -1048576) | 0), - (BA = IA = - (IA - (((I >>> 0 < 4293918720) - 1) | 0)) | 0), - (g = ((I = IA >> 21) + fA) | 0), - (IA = g = - (IA = ((2097151 & IA) << 11) | (nA >>> 21)) >>> - 0 > - (yA = (IA + tA) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (g = eg(MA, SA, 470296, 0)), - (I = (p + gA) | 0), - (I = - g >>> 0 > (aA = (g + aA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (g = (aA - (gA = -2097152 & nA)) | 0), - (gA = (I - (((gA >>> 0 > aA >>> 0) + BA) | 0)) | 0), - (nA = g), - (BA = - ((I = eg(MA, SA, 666643, 0)) + - ((B - (g = -2097152 & eA)) | 0)) | - 0), - (g = - (p + - ((iA - (((g >>> 0 > B >>> 0) + CA) | 0)) | 0)) | - 0), - (I = - ((I = - (g = I >>> 0 > BA >>> 0 ? (g + 1) | 0 : g) >> - 21) + - gA) | - 0), - (CA = B = - (nA + - (g = - ((2097151 & g) << 11) | ((B = BA) >>> 21))) | - 0), - (IA = - ((g = - (I = g >>> 0 > B >>> 0 ? (I + 1) | 0 : I) >> - 21) + - IA) | - 0), - (gA = B = - ((I = ((2097151 & I) << 11) | (B >>> 21)) + yA) | - 0), - (B = - ((2097151 & - (IA = - I >>> 0 > (g = B) >>> 0 - ? (IA + 1) | 0 - : IA)) << - 11) | - (g >>> 21)), - (g = ((I = IA >> 21) + vA) | 0), - (aA = IA = (B + xA) | 0), - (IA = - (g = - B >>> 0 > (I = IA) >>> 0 ? (g + 1) | 0 : g) >> - 21), - (g = ((2097151 & g) << 11) | (I >>> 21)), - (I = (IA + EA) | 0), - (uA = B = (g + YA) | 0), - (g = - ((g = - (I = g >>> 0 > B >>> 0 ? (I + 1) | 0 : I) >> - 21) + - PA) | - 0), - (wA = B = - ((I = ((2097151 & I) << 11) | (B >>> 21)) + JA) | - 0), - (I = - ((I = - (g = I >>> 0 > B >>> 0 ? (g + 1) | 0 : g) >> - 21) + - pA) | - 0), - (hA = B = - ((g = ((2097151 & g) << 11) | (B >>> 21)) + qA) | - 0), - (IA = - ((g = - (I = g >>> 0 > B >>> 0 ? (I + 1) | 0 : I) >> - 21) + - VA) | - 0), - (tA = B = - ((I = ((2097151 & I) << 11) | (B >>> 21)) + XA) | - 0), - (B = - ((2097151 & - (IA = - I >>> 0 > (g = B) >>> 0 - ? (IA + 1) | 0 - : IA)) << - 11) | - (g >>> 21)), - (g = ((I = IA >> 21) + oA) | 0), - (fA = IA = (B + bA) | 0), - (IA = - (g = - B >>> 0 > (I = IA) >>> 0 ? (g + 1) | 0 : g) >> - 21), - (g = ((2097151 & g) << 11) | (I >>> 21)), - (I = (IA + kA) | 0), - (pA = B = (g + OA) | 0), - (g = - ((g = - (I = g >>> 0 > B >>> 0 ? (I + 1) | 0 : I) >> - 21) + - ZA) | - 0), - (yA = B = - ((I = ((2097151 & I) << 11) | (B >>> 21)) + jA) | - 0), - (I = - (g = I >>> 0 > B >>> 0 ? (g + 1) | 0 : g) >> 21), - (iA = - ((IA = ((2097151 & g) << 11) | (B >>> 21)) + - (g = (QA - (B = -2097152 & _A)) | 0)) | - 0), - (IA = - (((rA - (((B >>> 0 > QA >>> 0) + cA) | 0)) | 0) + - I) | - 0), - (eA = iA), - (cA = - ((2097151 & - (IA = - g >>> 0 > (I = iA) >>> 0 - ? (IA + 1) | 0 - : IA)) << - 11) | - (I >>> 21)), - (EA = g = IA >> 21), - (I = 2097151 & BA), - (B = (eg(cA, g, 666643, 0) + I) | 0), - (g = p), - (iA = B), - (B = g = I >>> 0 > B >>> 0 ? (g + 1) | 0 : g), - (C[0 | A] = iA), - (C[(A + 1) | 0] = ((255 & g) << 24) | (iA >>> 8)), - (BA = A), - (g = 2097151 & CA), - (IA = (eg(cA, EA, 470296, 0) + g) | 0), - (I = p), - (I = g >>> 0 > IA >>> 0 ? (I + 1) | 0 : I), - (CA = IA), - (QA = ((2097151 & (IA = B)) << 11) | (iA >>> 21)), - (IA = (I + (g = IA >> 21)) | 0), - (IA = - QA >>> 0 > (CA = (CA + QA) | 0) >>> 0 - ? (IA + 1) | 0 - : IA), - (QA = CA), - (C[(BA + 4) | 0] = - ((2047 & IA) << 21) | (QA >>> 11)), - (I = IA), - (IA = QA), - (C[(BA + 3) | 0] = ((7 & I) << 29) | (IA >>> 3)), - (IA = 2097151 & gA), - (gA = (eg(cA, EA, 654183, 0) + IA) | 0), - (g = p), - (g = IA >>> 0 > gA >>> 0 ? (g + 1) | 0 : g), - (IA = gA), - (gA = ((2097151 & I) << 11) | (QA >>> 21)), - (I = ((I >> 21) + g) | 0), - (g = I = - gA >>> 0 > (CA = (IA + gA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (C[(BA + 6) | 0] = ((63 & I) << 26) | (CA >>> 6)), - (gA = 0), - (I = nA = 2097151 & QA), - (C[(BA + 2) | 0] = - (31 & (((65535 & B) << 16) | (iA >>> 16))) | - (I << 5)), - (B = 2097151 & aA), - (IA = (eg(cA, EA, -997805, -1) + B) | 0), - (I = p), - (B = I = B >>> 0 > IA >>> 0 ? (I + 1) | 0 : I), - (I = g >> 21), - (QA = - ((g = ((2097151 & g) << 11) | (CA >>> 21)) + IA) | - 0), - (IA = (I + B) | 0), - (iA = QA), - (IA = g >>> 0 > QA >>> 0 ? (IA + 1) | 0 : IA), - (C[(BA + 9) | 0] = ((511 & IA) << 23) | (QA >>> 9)), - (I = IA), - (C[(BA + 8) | 0] = ((1 & I) << 31) | (QA >>> 1)), - (QA = 0), - (B = aA = 2097151 & CA), - (C[(BA + 5) | 0] = - ((524287 & gA) << 13) | (nA >>> 19) | (B << 2)), - (B = 2097151 & uA), - (IA = (eg(cA, EA, 136657, 0) + B) | 0), - (g = p), - (g = B >>> 0 > IA >>> 0 ? (g + 1) | 0 : g), - (B = IA), - (g = (g + (IA = I >> 21)) | 0), - (CA = B = - (B + (I = ((2097151 & I) << 11) | (iA >>> 21))) | - 0), - (g = I >>> 0 > B >>> 0 ? (g + 1) | 0 : g), - (C[(BA + 12) | 0] = - ((4095 & g) << 20) | (B >>> 12)), - (B = g), - (I = g), - (g = CA), - (C[(BA + 11) | 0] = ((15 & I) << 28) | (g >>> 4)), - (BA = 0), - (g = nA = 2097151 & iA), - (C[(A + 7) | 0] = - ((16383 & QA) << 18) | (aA >>> 14) | (g << 7)), - (IA = A), - (g = 2097151 & wA), - (QA = (eg(cA, EA, -683901, -1) + g) | 0), - (I = p), - (I = - ((I = g >>> 0 > QA >>> 0 ? (I + 1) | 0 : I) + - (g = B >> 21)) | - 0), - (g = I = - (B = ((2097151 & B) << 11) | (CA >>> 21)) >>> 0 > - (gA = QA = (B + QA) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (C[(IA + 14) | 0] = ((127 & I) << 25) | (gA >>> 7)), - (QA = 0), - (B = iA = 2097151 & CA), - (C[(IA + 10) | 0] = - ((131071 & BA) << 15) | (nA >>> 17) | (B << 4)), - (B = IA), - (I >>= 21), - (IA = - (g = ((2097151 & g) << 11) | (gA >>> 21)) >>> 0 > - (CA = (g + (2097151 & hA)) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (C[(B + 17) | 0] = - ((1023 & IA) << 22) | (CA >>> 10)), - (I = IA), - (C[(B + 16) | 0] = ((3 & I) << 30) | (CA >>> 2)), - (B = EA = 2097151 & gA), - (C[(A + 13) | 0] = - ((1048575 & QA) << 12) | (iA >>> 20) | (B << 1)), - (g = I), - (I >>= 21), - (g = - (IA = ((2097151 & g) << 11) | (CA >>> 21)) >>> 0 > - (gA = (IA + (2097151 & tA)) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (C[((B = A) + 20) | 0] = - ((8191 & g) << 19) | (gA >>> 13)), - (I = g), - (g = gA), - (C[(B + 19) | 0] = ((31 & I) << 27) | (g >>> 5)), - (g = iA = 2097151 & CA), - (C[(B + 15) | 0] = - ((32767 & BA) << 17) | (EA >>> 15) | (g << 6)), - (g = I), - (I >>= 21), - (g = - (B = ((2097151 & g) << 11) | (gA >>> 21)) >>> 0 > - (EA = (B + (2097151 & fA)) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (C[(A + 21) | 0] = EA), - (I = gA), - (C[(A + 18) | 0] = - ((262143 & QA) << 14) | (iA >>> 18) | (I << 3)), - (B = g), - (I = g), - (g = EA), - (C[(A + 22) | 0] = ((255 & I) << 24) | (g >>> 8)), - (g = I >> 21), - (IA = - (I = ((2097151 & I) << 11) | (EA >>> 21)) >>> 0 > - (gA = (I + (2097151 & pA)) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (C[(A + 25) | 0] = - ((2047 & IA) << 21) | (gA >>> 11)), - (I = IA), - (IA = gA), - (C[(A + 24) | 0] = ((7 & I) << 29) | (IA >>> 3)), - (g = I >> 21), - (g = - (BA = ((2097151 & I) << 11) | (gA >>> 21)) >>> 0 > - (CA = (BA + (2097151 & yA)) | 0) >>> 0 - ? (g + 1) | 0 - : g), - (BA = CA), - (I = g), - (C[((IA = A) + 27) | 0] = - ((63 & I) << 26) | (BA >>> 6)), - (IA = 0), - (g = CA = 2097151 & gA), - (C[(A + 23) | 0] = - (31 & (((65535 & B) << 16) | (EA >>> 16))) | - (g << 5)), - (g = I), - (I >>= 21), - (I = - (g = ((2097151 & g) << 11) | (BA >>> 21)) >>> 0 > - (QA = (g + (2097151 & eA)) | 0) >>> 0 - ? (I + 1) | 0 - : I), - (B = QA), - (C[(A + 31) | 0] = - ((131071 & I) << 15) | (B >>> 17)), - (C[(A + 30) | 0] = ((511 & I) << 23) | (B >>> 9)), - (C[(A + 29) | 0] = ((1 & I) << 31) | (B >>> 1)), - (I = 0), - (gA = BA &= 2097151), - (C[(A + 26) | 0] = - ((524287 & IA) << 13) | (CA >>> 19) | (gA << 2)), - (C[(A + 28) | 0] = - ((16383 & I) << 18) | (gA >>> 14) | (B << 7)) - })(E, (r + 160) | 0, (r + 288) | 0, (r + 224) | 0), - fI((r + 288) | 0, 64), - fI((r + 224) | 0, 64), - I && ((i[I >> 2] = 64), (i[(I + 4) >> 2] = 0)), - (h = (r + 560) | 0), - 0 - ) - } - function X(A, I, g) { - var B, - Q = 0, - E = 0 - if (g >>> 0 >= 512) return s(0 | A, 0 | I, 0 | g), A - B = (A + g) | 0 - A: if (3 & (A ^ I)) - if (B >>> 0 < 4) g = A - else if ((Q = (B - 4) | 0) >>> 0 < A >>> 0) g = A - else - for ( - g = A; - (C[0 | g] = n[0 | I]), - (C[(g + 1) | 0] = n[(I + 1) | 0]), - (C[(g + 2) | 0] = n[(I + 2) | 0]), - (C[(g + 3) | 0] = n[(I + 3) | 0]), - (I = (I + 4) | 0), - Q >>> 0 >= (g = (g + 4) | 0) >>> 0; - - ); - else { - I: if ((0 | g) < 1) g = A - else if (3 & A) - for (g = A; ; ) { - if ( - ((C[0 | g] = n[0 | I]), - (I = (I + 1) | 0), - B >>> 0 <= (g = (g + 1) | 0) >>> 0) - ) - break I - if (!(3 & g)) break - } - else g = A - if ( - !( - (Q = -4 & B) >>> 0 < 64 || - (E = (Q + -64) | 0) >>> 0 < g >>> 0 - ) - ) - for ( - ; - (i[g >> 2] = i[I >> 2]), - (i[(g + 4) >> 2] = i[(I + 4) >> 2]), - (i[(g + 8) >> 2] = i[(I + 8) >> 2]), - (i[(g + 12) >> 2] = i[(I + 12) >> 2]), - (i[(g + 16) >> 2] = i[(I + 16) >> 2]), - (i[(g + 20) >> 2] = i[(I + 20) >> 2]), - (i[(g + 24) >> 2] = i[(I + 24) >> 2]), - (i[(g + 28) >> 2] = i[(I + 28) >> 2]), - (i[(g + 32) >> 2] = i[(I + 32) >> 2]), - (i[(g + 36) >> 2] = i[(I + 36) >> 2]), - (i[(g + 40) >> 2] = i[(I + 40) >> 2]), - (i[(g + 44) >> 2] = i[(I + 44) >> 2]), - (i[(g + 48) >> 2] = i[(I + 48) >> 2]), - (i[(g + 52) >> 2] = i[(I + 52) >> 2]), - (i[(g + 56) >> 2] = i[(I + 56) >> 2]), - (i[(g + 60) >> 2] = i[(I + 60) >> 2]), - (I = (I - -64) | 0), - E >>> 0 >= (g = (g - -64) | 0) >>> 0; - - ); - if (g >>> 0 >= Q >>> 0) break A - for ( - ; - (i[g >> 2] = i[I >> 2]), - (I = (I + 4) | 0), - Q >>> 0 > (g = (g + 4) | 0) >>> 0; - - ); - } - if (g >>> 0 < B >>> 0) - for ( - ; - (C[0 | g] = n[0 | I]), - (I = (I + 1) | 0), - (0 | B) != (0 | (g = (g + 1) | 0)); - - ); - return A - } - function V(A, I, g, B) { - var Q, - E = 0, - a = 0, - r = 0, - o = 0, - e = 0, - t = 0, - f = 0 - if (((h = Q = (h - 704) | 0), g | B)) - if ( - ((E = (B << 3) | (g >>> 29)), - (r = - ((f = i[((a = A) + 72) >> 2]) + (e = g << 3)) | 0), - (E = (E + (o = i[(a + 76) >> 2])) | 0), - (t = r), - (i[(a + 72) >> 2] = r), - (E = r >>> 0 < e >>> 0 ? (E + 1) | 0 : E), - (i[(a + 76) >> 2] = E), - (t = - ((e = - (((0 | E) == (0 | o)) & (f >>> 0 > t >>> 0)) | - (E >>> 0 < o >>> 0)) + - i[(a = r = (a - -64) | 0) >> 2]) | - 0), - (E = i[(a + 4) >> 2]), - (E = e >>> 0 > t >>> 0 ? (E + 1) | 0 : E), - (r = ((e = (B >>> 29) | 0) + t) | 0), - (i[a >> 2] = r), - (i[(a + 4) >> 2] = - r >>> 0 < e >>> 0 ? (E + 1) | 0 : E), - (((0 | (E = B)) == - (0 | - (t = - (0 - - ((o = 127 & (((7 & o) << 29) | (f >>> 3))) >>> - 0 > - 128)) | - 0))) & - (g >>> 0 >= (r = (128 - o) | 0) >>> 0)) | - (E >>> 0 > t >>> 0)) - ) { - for ( - a = 0, E = 0; - (C[(80 + ((A + (e = (a + o) | 0)) | 0)) | 0] = - n[(I + a) | 0]), - ((0 | r) != (0 | (a = (a + 1) | 0))) | - ((0 | (E = a >>> 0 < 1 ? (E + 1) | 0 : E)) != - (0 | t)); - - ); - if ( - (F(A, (A + 80) | 0, Q, (E = (Q + 640) | 0)), - (I = (I + r) | 0), - (!(B = (B - (((g >>> 0 < r >>> 0) + t) | 0)) | 0) & - ((g = (g - r) | 0) >>> 0 > 127)) | - B) - ) - for ( - ; - F(A, I, Q, E), - (I = (I + 128) | 0), - (!(B = (B - (g >>> 0 < 128)) | 0) & - ((g = (g - 128) | 0) >>> 0 > 127)) | - B; - - ); - if (g | B) - for ( - a = 0, E = 0; - (C[(80 + ((A + a) | 0)) | 0] = n[(I + a) | 0]), - ((0 | g) != (0 | (a = o = (a + 1) | 0))) | - ((0 | B) != - (0 | (E = o >>> 0 < 1 ? (E + 1) | 0 : E))); - - ); - fI(Q, 704) - } else - for ( - a = g, - r = (g = (!B & (g >>> 0 > 1)) | (0 != (0 | B))) - ? a - : 1, - f = g ? B : 0, - a = 0, - E = 0; - (C[(80 + ((A + (B = (a + o) | 0)) | 0)) | 0] = - n[(I + a) | 0]), - ((0 | r) != (0 | (a = g = (a + 1) | 0))) | - ((0 | (E = g >>> 0 < 1 ? (E + 1) | 0 : E)) != - (0 | f)); - - ); - return (h = (Q + 704) | 0), 0 - } - function W(A, I, g, B, Q, E, n, a) { - ;(A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (E |= 0), - (n |= 0), - (a |= 0) - var r, - o = 0, - e = 0, - t = 0, - f = 0, - c = 0, - y = 0, - s = 0, - w = 0, - D = 0 - ;(h = r = (h - 16) | 0), (i[(r + 12) >> 2] = 0), pg(a) - A: { - if (B) { - w = 4 & a - I: { - g: { - B: { - for (;;) { - o = f - Q: { - C: { - for (;;) { - if ( - ((y = C[(g + o) | 0]), - 255 != (0 | (t = w ? LA(y) : KA(y)))) - ) - break C - if (!Q) break Q - if (!gg(Q, y)) break B - if ( - !((o = (o + 1) | 0) >>> 0 < B >>> 0) - ) - break - } - ;(A = (f + 1) | 0), - (i[(r + 12) >> 2] = - A >>> 0 < B >>> 0 ? B : A) - break g - } - if ( - ((s = ((s << 6) + t) | 0), - (t = (e + 6) | 0) >>> 0 < 8) - ) - e = t - else { - if ( - ((e = (e - 2) | 0), I >>> 0 <= c >>> 0) - ) { - ;(i[(r + 12) >> 2] = o), - (i[8960] = 68), - (o = 1) - break I - } - ;(C[(A + c) | 0] = s >>> e), - (c = (c + 1) | 0) - } - if ((f = (o + 1) | 0) >>> 0 < B >>> 0) - continue - } - break - } - i[(r + 12) >> 2] = f - break g - } - i[(r + 12) >> 2] = o - } - o = 0 - } - if (!(e >>> 0 <= 4)) { - A = -1 - break A - } - } - if ( - ((A = -1), - !((((-1 << e) ^ -1) & s) | o) && - (2 & a || - !(A = (function (A, I, g, B, Q) { - var E = 0, - n = 0, - a = 0 - I: if (Q) - for (E = i[g >> 2]; ; ) { - g: { - if (I >>> 0 <= E >>> 0) i[8960] = 68 - else { - if (61 == (0 | (n = C[(A + E) | 0]))) { - Q = (Q - 1) | 0 - break g - } - if (B && gg(B, n)) break g - i[8960] = 28 - } - a = -1 - break I - } - if ( - ((E = (E + 1) | 0), (i[g >> 2] = E), !Q) - ) - break - } - return a - })(g, B, (r + 12) | 0, Q, (e >>> 1) | 0)))) - ) { - A = 0 - I: if ( - Q && - !((o = i[(r + 12) >> 2]) >>> 0 >= B >>> 0) - ) { - g: { - for (;;) { - if (!gg(Q, C[(g + o) | 0])) break g - if ((0 | (o = (o + 1) | 0)) == (0 | B)) break - } - i[(r + 12) >> 2] = B - break I - } - i[(r + 12) >> 2] = o - } - D = c - } - } - return ( - (I = i[(r + 12) >> 2]), - n - ? (i[n >> 2] = I + g) - : (0 | I) != (0 | B) && ((i[8960] = 28), (A = -1)), - E && (i[E >> 2] = D), - (h = (r + 16) | 0), - 0 | A - ) - } - function T(A, I, g) { - var B, - Q, - C, - E = 0 - ;(h = B = (h - 16) | 0), - (Q = i[(A + 20) >> 2]), - (i[(A + 20) >> 2] = 0), - (C = i[(A + 4) >> 2]), - (i[(A + 4) >> 2] = 0), - (E = -26) - A: { - I: { - g: switch ((g - 1) | 0) { - case 1: - if (((E = -32), XA(I, 35621, 9))) break A - I = (I + 9) | 0 - break I - case 0: - break g - default: - break A - } - if (((E = -32), XA(I, 35631, 8))) break A - I = (I + 8) | 0 - } - if ( - !XA(I, 35640, 3) && - (I = bA((I + 3) | 0, (B + 12) | 0)) - ) { - if (((E = -26), 19 != i[(B + 12) >> 2])) break A - if ( - !XA(I, 35644, 3) && - (I = bA((I + 3) | 0, (B + 12) | 0)) && - ((i[(A + 44) >> 2] = i[(B + 12) >> 2]), - !XA(I, 35648, 3) && - (I = bA((I + 3) | 0, (B + 12) | 0)) && - ((i[(A + 40) >> 2] = i[(B + 12) >> 2]), - !XA(I, 35652, 3) && - (I = bA((I + 3) | 0, (B + 12) | 0)) && - ((g = i[(B + 12) >> 2]), - (i[(A + 48) >> 2] = g), - (i[(A + 52) >> 2] = g), - 36 == (0 | (g = n[0 | I])) && - ((i[(B + 12) >> 2] = Q), - (I = 36 == (0 | g) ? (I + 1) | 0 : I), - !W( - i[(A + 16) >> 2], - Q, - I, - YA(I), - 0, - (B + 12) | 0, - (B + 8) | 0, - 3 - ) && - ((i[(A + 20) >> 2] = i[(B + 12) >> 2]), - (I = i[(B + 8) >> 2]), - 36 == (0 | (g = n[0 | I])) && - ((i[(B + 12) >> 2] = C), - (I = 36 == (0 | g) ? (I + 1) | 0 : I), - !W( - i[A >> 2], - C, - I, - YA(I), - 0, - (B + 12) | 0, - (B + 8) | 0, - 3 - ))))))) - ) { - if ( - ((i[(A + 4) >> 2] = i[(B + 12) >> 2]), - (I = i[(B + 8) >> 2]), - (E = oA(A))) - ) - break A - return (h = (B + 16) | 0), n[0 | I] ? -32 : 0 - } - } - E = -32 - } - return (h = (B + 16) | 0), E - } - function j(A, I) { - var g - for ( - h = g = (h - 192) | 0, - H((g + 144) | 0, I), - H((g + 96) | 0, (g + 144) | 0), - H((g + 96) | 0, (g + 96) | 0), - _((g + 96) | 0, I, (g + 96) | 0), - _((g + 144) | 0, (g + 144) | 0, (g + 96) | 0), - H((g + 48) | 0, (g + 144) | 0), - _((g + 96) | 0, (g + 96) | 0, (g + 48) | 0), - H((g + 48) | 0, (g + 96) | 0), - I = 1; - H((g + 48) | 0, (g + 48) | 0), - 5 != (0 | (I = (I + 1) | 0)); - - ); - for ( - _((g + 96) | 0, (g + 48) | 0, (g + 96) | 0), - H((g + 48) | 0, (g + 96) | 0), - I = 1; - H((g + 48) | 0, (g + 48) | 0), - 10 != (0 | (I = (I + 1) | 0)); - - ); - for ( - _((g + 48) | 0, (g + 48) | 0, (g + 96) | 0), - H(g, (g + 48) | 0), - I = 1; - H(g, g), 20 != (0 | (I = (I + 1) | 0)); - - ); - for ( - _((g + 48) | 0, g, (g + 48) | 0), I = 1; - H((g + 48) | 0, (g + 48) | 0), - 11 != (0 | (I = (I + 1) | 0)); - - ); - for ( - _((g + 96) | 0, (g + 48) | 0, (g + 96) | 0), - H((g + 48) | 0, (g + 96) | 0), - I = 1; - H((g + 48) | 0, (g + 48) | 0), - 50 != (0 | (I = (I + 1) | 0)); - - ); - for ( - _((g + 48) | 0, (g + 48) | 0, (g + 96) | 0), - H(g, (g + 48) | 0), - I = 1; - H(g, g), 100 != (0 | (I = (I + 1) | 0)); - - ); - for ( - _((g + 48) | 0, g, (g + 48) | 0), I = 1; - H((g + 48) | 0, (g + 48) | 0), - 51 != (0 | (I = (I + 1) | 0)); - - ); - for ( - _((g + 96) | 0, (g + 48) | 0, (g + 96) | 0), I = 1; - H((g + 96) | 0, (g + 96) | 0), - 6 != (0 | (I = (I + 1) | 0)); - - ); - _(A, (g + 96) | 0, (g + 144) | 0), (h = (g + 192) | 0) - } - function Z(A, I) { - var g, - B, - Q, - E, - n, - a, - o, - e, - t, - f, - c = 0, - y = 0, - s = 0, - w = 0, - h = 0, - D = 0, - u = 0 - ;(y = s = i[(A + 60) >> 2]) | (c = i[(A + 56) >> 2]) && - ((s = c), - (C[((w = (c + A) | 0) - -64) | 0] = 1), - !(y = (c = (c + 1) | 0) >>> 0 < 1 ? (y + 1) | 0 : y) & - (c >>> 0 <= 15) && EA((w + 65) | 0, 0, (15 - s) | 0), - (C[(A + 80) | 0] = 1), - S(A, (A - -64) | 0, 16, 0)), - (t = i[(A + 52) >> 2]), - (f = i[(A + 48) >> 2]), - (s = i[(A + 44) >> 2]), - (u = i[(A + 24) >> 2]), - (h = (i[(A + 28) >> 2] + ((u >>> 26) | 0)) | 0), - (c = (i[(A + 32) >> 2] + ((h >>> 26) | 0)) | 0), - (e = - ((g = - (E = - ((-67108864 | - (Q = - (i[(A + 36) >> 2] + ((c >>> 26) | 0)) | 0)) + - (((o = - ((a = 67108863 & c) + - (((h = - ((D = 67108863 & h) + - (((y = - ((c = - ((67108863 & u) + - (((y = - (i[(A + 20) >> 2] + - r((Q >>> 26) | 0, 5)) | - 0) >>> - 26) | - 0)) | - 0) + - (((n = - (5 + (w = 67108863 & y)) | 0) >>> - 26) | - 0)) | - 0) >>> - 26) | - 0)) | - 0) >>> - 26) | - 0)) | - 0) >>> - 26) | - 0)) | - 0) >> 31) & - c) | - ((B = 67108863 & (u = (((E >>> 31) | 0) - 1) | 0)) & - y)), - (y = 0), - (y = - (c = (w & g) | (B & n) | (e << 26)) >>> 0 > - (w = (c + i[(A + 40) >> 2]) | 0) >>> 0 - ? 1 - : y), - xI(I, w), - (h = - ((c = ((D = (D & g) | (h & B)) << 20) | (e >>> 6)) + - s) | - 0), - (s = 0), - (s = c >>> 0 > h >>> 0 ? 1 : s), - (c = y), - (y = s), - (y = - c >>> 0 > (h = (c + h) | 0) >>> 0 ? (y + 1) | 0 : y), - xI((I + 4) | 0, h), - (s = 0), - (s = - (c = ((w = (g & a) | (B & o)) << 14) | (D >>> 12)) >>> - 0 > - (D = (c + f) | 0) >>> 0 - ? 1 - : s), - (c = y), - (y = s), - (y = - c >>> 0 > (D = (c + D) | 0) >>> 0 ? (y + 1) | 0 : y), - xI((I + 8) | 0, D), - xI( - (s = (I + 12) | 0), - (y = - (y + - (w = - ((I = (((u & E) | (g & Q)) << 8) | (w >>> 18)) + - t) | - 0)) | - 0) - ), - fI(A, 88) - } - function O(A, I, g, B, Q) { - ;(A |= 0), (I |= 0), (g |= 0), (B |= 0) - var E = 0, - i = 0, - a = 0, - o = 0, - f = 0, - c = 0, - y = 0, - s = 0, - w = 0 - pg((Q |= 0)), - (i = (E = ((B >>> 0) / 3) | 0) << 2), - (E = (r(E, -3) + B) | 0) && - (i = - 2 & Q - ? ((2 | i) + ((E >>> 1) | 0)) | 0 - : (i + 4) | 0) - A: { - I: { - g: { - B: { - if (I >>> 0 > i >>> 0) { - if (!(4 & Q)) { - if (((a = 0), !B)) break g - ;(Q = 0), (E = 0) - break B - } - if (((a = 0), !B)) break g - for (Q = 0, E = 0; ; ) { - for ( - f = n[(g + o) | 0] | (f << 8), - Q = (Q + 8) | 0; - (c = E), - (y = Q), - (s = (A + E) | 0), - (w = CI((f >>> (Q = (Q - 6) | 0)) & 63)), - (C[0 | s] = w), - (E = (E + 1) | 0), - Q >>> 0 > 5; - - ); - if ((0 | (o = (o + 1) | 0)) == (0 | B)) break - } - if (((a = E), !Q)) break g - ;(s = (A + E) | 0), - (w = CI((f << (12 - y)) & 63)), - (C[0 | s] = w), - (a = (c + 2) | 0) - break g - } - OI(), e() - } - for (;;) { - for ( - f = n[(g + o) | 0] | (f << 8), Q = (Q + 8) | 0; - (c = E), - (y = Q), - (s = (A + E) | 0), - (w = EI((f >>> (Q = (Q - 6) | 0)) & 63)), - (C[0 | s] = w), - (E = (E + 1) | 0), - Q >>> 0 > 5; - - ); - if ((0 | (o = (o + 1) | 0)) == (0 | B)) break - } - ;(a = E), - Q && - ((s = (A + E) | 0), - (w = EI((f << (12 - y)) & 63)), - (C[0 | s] = w), - (a = (c + 2) | 0)) - } - if ((E = a) >>> 0 <= i >>> 0) { - if (E >>> 0 < i >>> 0) break I - i = E - break A - } - t(35568, 35587, 230, 35603), e() - } - EA((A + E) | 0, 61, (i - E) | 0) - } - return ( - EA( - (A + i) | 0, - 0, - ((I >>> 0 > (g = (i + 1) | 0) >>> 0 ? I : g) - i) | 0 - ), - 0 | A - ) - } - function z(A, I, g, B) { - var Q = 0, - E = 0, - a = 0, - r = 0, - o = 0, - e = 0 - A: { - if ((Q = i[(A + 56) >> 2]) | (E = i[(A + 60) >> 2])) { - if ( - ((e = A), - (o = a = (16 - Q) | 0), - (o = (a = - (((0 | - (r = (0 - (((Q >>> 0 > 16) + E) | 0)) | 0)) == - (0 | B)) & - (g >>> 0 < a >>> 0)) | - (B >>> 0 < r >>> 0)) - ? g - : o), - (a = r = a ? B : r) | o) - ) { - if ( - ((C[(((A + Q) | 0) - -64) | 0] = n[0 | I]), - (E = 1), - (Q = 0), - (1 != (0 | o)) | a) - ) - for ( - ; - (r = (E + i[(A + 56) >> 2]) | 0), - (C[(((A + r) | 0) - -64) | 0] = - n[(I + E) | 0]), - ((0 | o) != (0 | (E = (E + 1) | 0))) | - ((0 | - (Q = E >>> 0 < 1 ? (Q + 1) | 0 : Q)) != - (0 | a)); - - ); - ;(Q = i[(A + 56) >> 2]), (E = i[(A + 60) >> 2]) - } - if ( - ((r = (Q + o) | 0), - (Q = (E + a) | 0), - (E = r), - (i[(e + 56) >> 2] = E), - (Q = E >>> 0 < o >>> 0 ? (Q + 1) | 0 : Q), - (i[(e + 60) >> 2] = Q), - !Q & (E >>> 0 < 16)) - ) - break A - S(A, (A - -64) | 0, 16, 0), - (i[(A + 56) >> 2] = 0), - (i[(A + 60) >> 2] = 0), - (g = ((Q = g) - (E = o)) | 0), - (B = (B - (((Q >>> 0 < E >>> 0) + a) | 0)) | 0), - (I = (I + E) | 0) - } - if ( - ((!B & (g >>> 0 >= 16)) | B && - (S(A, I, (Q = -16 & g), B), - (g &= 15), - (B = 0), - (I = (I + Q) | 0)), - g | B) - ) { - for ( - E = 0, Q = 0; - (e = (E + i[(A + 56) >> 2]) | 0), - (C[(((A + e) | 0) - -64) | 0] = n[(I + E) | 0]), - ((0 | g) != (0 | (E = (E + 1) | 0))) | - ((0 | B) != - (0 | (Q = E >>> 0 < 1 ? (Q + 1) | 0 : Q))); - - ); - ;(I = A), - (Q = (g + i[(A + 56) >> 2]) | 0), - (A = (B + i[(A + 60) >> 2]) | 0), - (i[(I + 56) >> 2] = Q), - (i[(I + 60) >> 2] = - g >>> 0 > Q >>> 0 ? (A + 1) | 0 : A) - } - } - } - function $(A, I) { - var g = 0, - B = 0, - Q = 0, - C = 0, - E = 0, - o = 0, - e = 0, - t = 0, - f = 0, - c = 0, - y = 0, - s = 0, - w = 0 - A: if ( - A && - (2 != i[(A + 36) >> 2] || - ((Q = i[I >> 2]), n[(I + 8) | 0] < 2 && !Q) - ? ((function (A, I, g) { - var B, - Q = 0, - C = 0, - E = 0 - if ( - ((h = B = (h - 4096) | 0), - vg((B + 3072) | 0), - vg((B + 2048) | 0), - !(!A | !I) && - ((i[(B + 2048) >> 2] = i[I >> 2]), - (i[(B + 2052) >> 2] = 0), - (i[(B + 2056) >> 2] = i[(I + 4) >> 2]), - (i[(B + 2060) >> 2] = 0), - (i[(B + 2064) >> 2] = n[(I + 8) | 0]), - (i[(B + 2068) >> 2] = 0), - (i[(B + 2072) >> 2] = i[(A + 16) >> 2]), - (i[(B + 2076) >> 2] = 0), - (i[(B + 2080) >> 2] = i[(A + 8) >> 2]), - (i[(B + 2084) >> 2] = 0), - (i[(B + 2088) >> 2] = i[(A + 36) >> 2]), - (i[(B + 2092) >> 2] = 0), - i[(A + 20) >> 2])) - ) - for ( - I = 0; - (E = 127 & I) || - ((Q = i[(B + 2100) >> 2]), - (Q = - (C = (i[(B + 2096) >> 2] + 1) | 0) >>> 0 < - 1 - ? (Q + 1) | 0 - : Q), - (i[(B + 2096) >> 2] = C), - (i[(B + 2100) >> 2] = Q), - vg(B), - vg((B + 1024) | 0), - Y((B + 3072) | 0, (B + 2048) | 0, B), - Y((B + 3072) | 0, B, (B + 1024) | 0)), - (E = - i[ - (4 + - (C = - (((B + 1024) | 0) + (E << 3)) | - 0)) >> - 2 - ]), - (i[(Q = ((I << 3) + g) | 0) >> 2] = - i[C >> 2]), - (i[(Q + 4) >> 2] = E), - (I = (I + 1) | 0) >>> 0 < a[(A + 20) >> 2]; - - ); - h = (B + 4096) | 0 - })(A, I, (t = i[(A + 4) >> 2])), - (Q = i[I >> 2]), - (B = 0)) - : ((t = i[(A + 4) >> 2]), (B = 1)), - (c = B), - !( - (E = !((B = n[(I + 8) | 0]) | Q) << 1) >>> 0 >= - (g = i[(A + 20) >> 2]) >>> 0 - )) - ) - for ( - C = i[(A + 24) >> 2], - g = - ((Q = - (((r(C, i[(I + 4) >> 2]) + E) | 0) + r(g, B)) | - 0) + - ((Q >>> 0) % (C >>> 0) | 0 - ? -1 - : (C - 1) | 0)) | - 0; - ; - - ) { - if ( - ((f = - 1 == ((Q >>> 0) % (C >>> 0) | 0) - ? (Q - 1) | 0 - : g), - c - ? ((o = i[A >> 2]), - (g = (i[(o + 4) >> 2] + (f << 10)) | 0)) - : ((o = i[A >> 2]), (g = ((E << 3) + t) | 0)), - (B = i[(g + 4) >> 2]), - (y = i[g >> 2]), - (g = i[(A + 28) >> 2]), - (i[(I + 12) >> 2] = E), - (B = (B >>> 0) % (g >>> 0) | 0), - (e = i[(I + 4) >> 2]), - (g = n[(I + 8) | 0] ? B : e), - (o = i[(o + 4) >> 2]), - (s = C), - (w = B), - (C = i[I >> 2]), - (e = - (((o + (r(s, (g = (B = C) ? w : g)) << 10)) | 0) + - (FA(A, I, y, !0 & ((0 | g) == (0 | e))) << - 10)) | - 0), - (B = (o + (f << 10)) | 0), - (g = (o + (Q << 10)) | 0), - C ? Y(B, e, g) : b(B, e, g), - (E = (E + 1) | 0) >>> 0 >= a[(A + 20) >> 2]) - ) - break A - ;(Q = (Q + 1) | 0), - (g = (f + 1) | 0), - (C = i[(A + 24) >> 2]) - } - } - function AA(A, I, g) { - var B, - Q, - C, - E, - n, - a, - r, - o, - e, - t, - f, - c, - y = 0, - s = 0, - w = 0, - h = 0, - D = 0, - u = 0, - p = 0, - l = 0, - F = 0 - ;(B = i[(I + 4) >> 2]), - (Q = i[(A + 4) >> 2]), - (C = i[(I + 8) >> 2]), - (s = i[(A + 8) >> 2]), - (E = i[(I + 12) >> 2]), - (w = i[(A + 12) >> 2]), - (n = i[(I + 16) >> 2]), - (h = i[(A + 16) >> 2]), - (a = i[(I + 20) >> 2]), - (D = i[(A + 20) >> 2]), - (r = i[(I + 24) >> 2]), - (u = i[(A + 24) >> 2]), - (o = i[(I + 28) >> 2]), - (p = i[(A + 28) >> 2]), - (e = i[(I + 32) >> 2]), - (l = i[(A + 32) >> 2]), - (t = i[(I + 36) >> 2]), - (F = i[(A + 36) >> 2]), - (c = - (g = (0 - g) | 0) & - ((f = i[I >> 2]) ^ (y = i[A >> 2]))), - (i[A >> 2] = c ^ y), - (y = F), - (F = g & (F ^ t)), - (i[(A + 36) >> 2] = y ^ F), - (y = l), - (l = g & (l ^ e)), - (i[(A + 32) >> 2] = y ^ l), - (y = p), - (p = g & (p ^ o)), - (i[(A + 28) >> 2] = y ^ p), - (y = u), - (u = g & (u ^ r)), - (i[(A + 24) >> 2] = y ^ u), - (y = D), - (D = g & (D ^ a)), - (i[(A + 20) >> 2] = y ^ D), - (y = h), - (h = g & (h ^ n)), - (i[(A + 16) >> 2] = y ^ h), - (y = w), - (w = g & (w ^ E)), - (i[(A + 12) >> 2] = y ^ w), - (y = s), - (s = g & (s ^ C)), - (i[(A + 8) >> 2] = y ^ s), - (y = A), - (A = g & (B ^ Q)), - (i[(y + 4) >> 2] = A ^ Q), - (i[(I + 36) >> 2] = F ^ t), - (i[(I + 32) >> 2] = l ^ e), - (i[(I + 28) >> 2] = p ^ o), - (i[(I + 24) >> 2] = u ^ r), - (i[(I + 20) >> 2] = D ^ a), - (i[(I + 16) >> 2] = h ^ n), - (i[(I + 12) >> 2] = w ^ E), - (i[(I + 8) >> 2] = s ^ C), - (i[(I + 4) >> 2] = A ^ B), - (i[I >> 2] = f ^ c) - } - function IA(A, I) { - var g - ;(i[A >> 2] = - 67108863 & - (n[0 | I] | - (n[(I + 1) | 0] << 8) | - (n[(I + 2) | 0] << 16) | - (n[(I + 3) | 0] << 24))), - (i[(A + 4) >> 2] = - ((n[(I + 3) | 0] | - (n[(I + 4) | 0] << 8) | - (n[(I + 5) | 0] << 16) | - (n[(I + 6) | 0] << 24)) >>> - 2) & - 67108611), - (i[(A + 8) >> 2] = - ((n[(I + 6) | 0] | - (n[(I + 7) | 0] << 8) | - (n[(I + 8) | 0] << 16) | - (n[(I + 9) | 0] << 24)) >>> - 4) & - 67092735), - (i[(A + 12) >> 2] = - ((n[(I + 9) | 0] | - (n[(I + 10) | 0] << 8) | - (n[(I + 11) | 0] << 16) | - (n[(I + 12) | 0] << 24)) >>> - 6) & - 66076671), - (g = - n[(I + 12) | 0] | - (n[(I + 13) | 0] << 8) | - (n[(I + 14) | 0] << 16) | - (n[(I + 15) | 0] << 24)), - (i[(A + 20) >> 2] = 0), - (i[(A + 24) >> 2] = 0), - (i[(A + 28) >> 2] = 0), - (i[(A + 32) >> 2] = 0), - (i[(A + 36) >> 2] = 0), - (i[(A + 16) >> 2] = (g >>> 8) & 1048575), - (i[(A + 40) >> 2] = - n[(I + 16) | 0] | - (n[(I + 17) | 0] << 8) | - (n[(I + 18) | 0] << 16) | - (n[(I + 19) | 0] << 24)), - (i[(A + 44) >> 2] = - n[(I + 20) | 0] | - (n[(I + 21) | 0] << 8) | - (n[(I + 22) | 0] << 16) | - (n[(I + 23) | 0] << 24)), - (i[(A + 48) >> 2] = - n[(I + 24) | 0] | - (n[(I + 25) | 0] << 8) | - (n[(I + 26) | 0] << 16) | - (n[(I + 27) | 0] << 24)), - (I = - n[(I + 28) | 0] | - (n[(I + 29) | 0] << 8) | - (n[(I + 30) | 0] << 16) | - (n[(I + 31) | 0] << 24)), - (C[(A + 80) | 0] = 0), - (i[(A + 56) >> 2] = 0), - (i[(A + 60) >> 2] = 0), - (i[(A + 52) >> 2] = I) - } - function gA(A, I, g) { - var B = 0 - A: if ((0 | A) != (0 | I)) { - if ((((I - A) | 0) - g) >>> 0 <= (0 - (g << 1)) >>> 0) - return X(A, I, g) - if (((B = 3 & (A ^ I)), A >>> 0 < I >>> 0)) { - if (B) B = A - else { - if (3 & A) - for (B = A; ; ) { - if (!g) break A - if ( - ((C[0 | B] = n[0 | I]), - (I = (I + 1) | 0), - (g = (g - 1) | 0), - !(3 & (B = (B + 1) | 0))) - ) - break - } - else B = A - if (!(g >>> 0 <= 3)) - for ( - ; - (i[B >> 2] = i[I >> 2]), - (I = (I + 4) | 0), - (B = (B + 4) | 0), - (g = (g - 4) | 0) >>> 0 > 3; - - ); - } - if (g) - for ( - ; - (C[0 | B] = n[0 | I]), - (B = (B + 1) | 0), - (I = (I + 1) | 0), - (g = (g - 1) | 0); - - ); - } else { - if (!B) { - if ((A + g) & 3) - for (;;) { - if (!g) break A - if ( - ((C[0 | (B = ((g = (g - 1) | 0) + A) | 0)] = - n[(I + g) | 0]), - !(3 & B)) - ) - break - } - if (!(g >>> 0 <= 3)) - for ( - ; - (i[((g = (g - 4) | 0) + A) >> 2] = - i[(I + g) >> 2]), - g >>> 0 > 3; - - ); - } - if (!g) break A - for ( - ; - (C[((g = (g - 1) | 0) + A) | 0] = n[(I + g) | 0]), - g; - - ); - } - } - return A - } - function BA(A, I) { - var g, - B = 0 - ;(h = g = (h - 48) | 0), - (function (A, I) { - var g, - B, - Q, - C, - E, - n, - a, - o, - e = 0 - ;(B = i[(I + 28) >> 2]), - (Q = i[(I + 24) >> 2]), - (C = i[(I + 20) >> 2]), - (E = i[(I + 16) >> 2]), - (n = i[(I + 12) >> 2]), - (a = i[(I + 8) >> 2]), - (o = i[(I + 4) >> 2]), - (e = i[I >> 2]), - (g = i[(I + 36) >> 2]), - (I = i[(I + 32) >> 2]), - (e = - (r( - (((((B + - ((Q + - ((C + - ((E + - ((n + - ((a + - ((o + - ((e + - (((r(g, 19) + 16777216) >>> - 25) | - 0)) >> - 26)) >> - 25)) >> - 26)) >> - 25)) >> - 26)) >> - 25)) >> - 26)) >> - 25) + - I) >> - 26) + - g) >> - 25, - 19 - ) + - e) | - 0), - (i[A >> 2] = 67108863 & e), - (e = (o + (e >> 26)) | 0), - (i[(A + 4) >> 2] = 33554431 & e), - (e = (a + (e >> 25)) | 0), - (i[(A + 8) >> 2] = 67108863 & e), - (e = (n + (e >> 26)) | 0), - (i[(A + 12) >> 2] = 33554431 & e), - (e = (E + (e >> 25)) | 0), - (i[(A + 16) >> 2] = 67108863 & e), - (e = (C + (e >> 26)) | 0), - (i[(A + 20) >> 2] = 33554431 & e), - (e = (Q + (e >> 25)) | 0), - (i[(A + 24) >> 2] = 67108863 & e), - (e = (B + (e >> 26)) | 0), - (i[(A + 28) >> 2] = 33554431 & e), - (I = (I + (e >> 25)) | 0), - (i[(A + 32) >> 2] = 67108863 & I), - (i[(A + 36) >> 2] = (g + (I >> 26)) & 33554431) - })(g, I), - (I = i[g >> 2]), - (C[0 | A] = I), - (C[(A + 2) | 0] = I >>> 16), - (C[(A + 1) | 0] = I >>> 8), - (B = i[(g + 4) >> 2]), - (C[(A + 5) | 0] = B >>> 14), - (C[(A + 4) | 0] = B >>> 6), - (C[(A + 3) | 0] = (B << 2) | (I >>> 24)), - (I = i[(g + 8) >> 2]), - (C[(A + 8) | 0] = I >>> 13), - (C[(A + 7) | 0] = I >>> 5), - (C[(A + 6) | 0] = (I << 3) | (B >>> 22)), - (B = i[(g + 12) >> 2]), - (C[(A + 11) | 0] = B >>> 11), - (C[(A + 10) | 0] = B >>> 3), - (C[(A + 9) | 0] = (B << 5) | (I >>> 21)), - (I = i[(g + 16) >> 2]), - (C[(A + 15) | 0] = I >>> 18), - (C[(A + 14) | 0] = I >>> 10), - (C[(A + 13) | 0] = I >>> 2), - (C[(A + 12) | 0] = (I << 6) | (B >>> 19)), - (I = i[(g + 20) >> 2]), - (C[(A + 16) | 0] = I), - (C[(A + 18) | 0] = I >>> 16), - (C[(A + 17) | 0] = I >>> 8), - (B = i[(g + 24) >> 2]), - (C[(A + 21) | 0] = B >>> 15), - (C[(A + 20) | 0] = B >>> 7), - (C[(A + 19) | 0] = (B << 1) | (I >>> 24)), - (I = i[(g + 28) >> 2]), - (C[(A + 24) | 0] = I >>> 13), - (C[(A + 23) | 0] = I >>> 5), - (C[(A + 22) | 0] = (I << 3) | (B >>> 23)), - (B = i[(g + 32) >> 2]), - (C[(A + 27) | 0] = B >>> 12), - (C[(A + 26) | 0] = B >>> 4), - (C[(A + 25) | 0] = (B << 4) | (I >>> 21)), - (I = i[(g + 36) >> 2]), - (C[(A + 31) | 0] = I >>> 18), - (C[(A + 30) | 0] = I >>> 10), - (C[(A + 29) | 0] = I >>> 2), - (C[(A + 28) | 0] = (I << 6) | (B >>> 20)), - (h = (g + 48) | 0) - } - function QA(A, I, g, B) { - var Q = 0, - E = 0, - i = 0, - a = 0, - r = 0, - o = 0 - A: if (g | B) - for ( - o = (A + 224) | 0, - i = (A + 96) | 0, - Q = - n[(A + 352) | 0] | - (n[(A + 353) | 0] << 8) | - (n[(A + 354) | 0] << 16) | - (n[(A + 355) | 0] << 24); - ; - - ) { - if ( - ((a = (96 + ((A + Q) | 0)) | 0), - (r = E = (256 - Q) | 0), - !B & (g >>> 0 <= E >>> 0)) - ) { - X(a, I, g), - (I = - (g + - (n[(A + 352) | 0] | - (n[(A + 353) | 0] << 8) | - (n[(A + 354) | 0] << 16) | - (n[(A + 355) | 0] << 24))) | - 0), - (C[(A + 352) | 0] = I), - (C[(A + 353) | 0] = I >>> 8), - (C[(A + 354) | 0] = I >>> 16), - (C[(A + 355) | 0] = I >>> 24) - break A - } - if ( - (X(a, I, E), - (Q = - ((n[(A + 352) | 0] | - (n[(A + 353) | 0] << 8) | - (n[(A + 354) | 0] << 16) | - (n[(A + 355) | 0] << 24)) + - E) | - 0), - (C[(A + 352) | 0] = Q), - (C[(A + 353) | 0] = Q >>> 8), - (C[(A + 354) | 0] = Q >>> 16), - (C[(A + 355) | 0] = Q >>> 24), - iA(A, 128), - l(A, i), - X(i, o, 128), - (Q = - ((n[(A + 352) | 0] | - (n[(A + 353) | 0] << 8) | - (n[(A + 354) | 0] << 16) | - (n[(A + 355) | 0] << 24)) - - 128) | - 0), - (C[(A + 352) | 0] = Q), - (C[(A + 353) | 0] = Q >>> 8), - (C[(A + 354) | 0] = Q >>> 16), - (C[(A + 355) | 0] = Q >>> 24), - (I = (I + E) | 0), - !( - (g = ((E = g) - r) | 0) | - (B = (B - (E >>> 0 < r >>> 0)) | 0) - )) - ) - break - } - return 0 - } - function CA(A, I) { - var g, - B = 0, - Q = 0, - E = 0, - i = 0 - for ( - h = g = (h - 464) | 0; - (Q = B << 1), - (i = n[(I + B) | 0]), - (C[(Q + ((g + 400) | 0)) | 0] = 15 & i), - (C[(((g + 400) | 0) + (1 | Q)) | 0] = i >>> 4), - 32 != (0 | (B = (B + 1) | 0)); - - ); - for ( - B = 0; - (I = - (((Q = - ((I = B) + n[0 | (B = (((g + 400) | 0) + E) | 0)]) | - 0) << - 24) - - -134217728) | - 0), - (C[0 | B] = Q - ((I >> 24) & 240)), - (B = I >> 28), - 63 != (0 | (E = (E + 1) | 0)); - - ); - for ( - C[(g + 463) | 0] = n[(g + 463) | 0] + B, zI(A), B = 1; - fg(g, (B >>> 1) | 0, C[(((g + 400) | 0) + B) | 0]), - OA((g + 240) | 0, A, g), - DI(A, (g + 240) | 0), - (I = B >>> 0 < 62), - (B = (B + 2) | 0), - I; - - ); - for ( - JI((g + 240) | 0, A), - _I((g + 120) | 0, (g + 240) | 0), - AI((g + 240) | 0, (g + 120) | 0), - _I((g + 120) | 0, (g + 240) | 0), - AI((g + 240) | 0, (g + 120) | 0), - _I((g + 120) | 0, (g + 240) | 0), - AI((g + 240) | 0, (g + 120) | 0), - DI(A, (g + 240) | 0), - B = 0; - fg(g, (B >>> 1) | 0, C[(((g + 400) | 0) + B) | 0]), - OA((g + 240) | 0, A, g), - DI(A, (g + 240) | 0), - (I = B >>> 0 < 62), - (B = (B + 2) | 0), - I; - - ); - h = (g + 464) | 0 - } - function EA(A, I, g) { - var B = 0, - Q = 0, - E = 0, - n = 0 - if ( - g && - ((C[((B = (A + g) | 0) - 1) | 0] = I), - (C[0 | A] = I), - !( - g >>> 0 < 3 || - ((C[(B - 2) | 0] = I), - (C[(A + 1) | 0] = I), - (C[(B - 3) | 0] = I), - (C[(A + 2) | 0] = I), - g >>> 0 < 7 || - ((C[(B - 4) | 0] = I), - (C[(A + 3) | 0] = I), - g >>> 0 < 9 || - ((Q = ((B = (0 - A) & 3) + A) | 0), - (I = r(255 & I, 16843009)), - (i[Q >> 2] = I), - (i[ - ((B = ((g = (g - B) & -4) + Q) | 0) - 4) >> 2 - ] = I), - g >>> 0 < 9 || - ((i[(Q + 8) >> 2] = I), - (i[(Q + 4) >> 2] = I), - (i[(B - 8) >> 2] = I), - (i[(B - 12) >> 2] = I), - g >>> 0 < 25 || - ((i[(Q + 24) >> 2] = I), - (i[(Q + 20) >> 2] = I), - (i[(Q + 16) >> 2] = I), - (i[(Q + 12) >> 2] = I), - (i[(B - 16) >> 2] = I), - (i[(B - 20) >> 2] = I), - (i[(B - 24) >> 2] = I), - (i[(B - 28) >> 2] = I), - (g = (g - (n = (4 & Q) | 24)) | 0) >>> 0 < - 32))))) - )) - ) - for ( - B = I, E = I, I = (Q + n) | 0; - (i[(I + 24) >> 2] = E), - (i[(I + 28) >> 2] = B), - (i[(I + 16) >> 2] = E), - (i[(I + 20) >> 2] = B), - (i[(I + 8) >> 2] = E), - (i[(I + 12) >> 2] = B), - (i[I >> 2] = E), - (i[(I + 4) >> 2] = B), - (I = (I + 32) | 0), - (g = (g - 32) | 0) >>> 0 > 31; - - ); - return A - } - function iA(A, I) { - var g, - B, - Q, - E = 0, - i = 0 - ;(i = E = (A - -64) | 0), - (B = - (1 + - (g = - n[(E + 4) | 0] | - (n[(E + 5) | 0] << 8) | - (n[(E + 6) | 0] << 16) | - (n[(E + 7) | 0] << 24))) | - 0), - (E = - (I = - (I + - (E = Q = - n[0 | E] | - (n[(E + 1) | 0] << 8) | - (n[(E + 2) | 0] << 16) | - (n[(E + 3) | 0] << 24))) | - 0) >>> - 0 < - E >>> 0 - ? B - : g), - (C[0 | i] = I), - (C[(i + 1) | 0] = I >>> 8), - (C[(i + 2) | 0] = I >>> 16), - (C[(i + 3) | 0] = I >>> 24), - (C[(i + 4) | 0] = E), - (C[(i + 5) | 0] = E >>> 8), - (C[(i + 6) | 0] = E >>> 16), - (C[(i + 7) | 0] = E >>> 24), - (I = - ((E = - (((0 | E) == (0 | g)) & (I >>> 0 < Q >>> 0)) | - (E >>> 0 < g >>> 0)) + - (n[(A + 72) | 0] | - (n[(A + 73) | 0] << 8) | - (n[(A + 74) | 0] << 16) | - (n[(A + 75) | 0] << 24))) | - 0), - (i = - n[(A + 76) | 0] | - (n[(A + 77) | 0] << 8) | - (n[(A + 78) | 0] << 16) | - (n[(A + 79) | 0] << 24)), - (E = I >>> 0 < E >>> 0 ? (i + 1) | 0 : i), - (C[(A + 72) | 0] = I), - (C[(A + 73) | 0] = I >>> 8), - (C[(A + 74) | 0] = I >>> 16), - (C[(A + 75) | 0] = I >>> 24), - (C[(A + 76) | 0] = E), - (C[(A + 77) | 0] = E >>> 8), - (C[(A + 78) | 0] = E >>> 16), - (C[(A + 79) | 0] = E >>> 24) - } - function nA(A, I, g, B, Q, C, E) { - var n, - a, - r, - o, - e = 0 - return ( - (h = n = (h - 352) | 0), - K(n, C, E), - ((!Q & (B >>> 0 <= (g - A) >>> 0)) | - (A >>> 0 >= g >>> 0) && - !( - (!Q & (B >>> 0 > (A - g) >>> 0)) | Q && - A >>> 0 > g >>> 0 - )) || - (g = gA(A, g, B)), - (i[(n + 56) >> 2] = 0), - (i[(n + 60) >> 2] = 0), - (i[(n + 48) >> 2] = 0), - (i[(n + 52) >> 2] = 0), - (i[(n + 40) >> 2] = 0), - (i[(n + 44) >> 2] = 0), - (i[(n + 32) >> 2] = 0), - (i[(n + 36) >> 2] = 0), - (a = !( - (E = (e = (!Q & (B >>> 0 > 32)) | (0 != (0 | Q))) - ? 32 - : B) | (e = e ? 0 : Q) - )) || X((n - -64) | 0, g, E), - (o = (C + 16) | 0), - $I( - (n + 32) | 0, - (n + 32) | 0, - (r = (E + 32) | 0), - (C = r >>> 0 < 32 ? (e + 1) | 0 : e), - o, - n - ), - lg((n + 96) | 0, (n + 32) | 0), - a || X(A, (n - -64) | 0, E), - fI((n + 32) | 0, 64), - (!Q & (B >>> 0 >= 33)) | Q && - Ag( - (A + E) | 0, - (C = (g + E) | 0), - ((g = B) - E) | 0, - (Q - ((e + (g >>> 0 < E >>> 0)) | 0)) | 0, - o, - n - ), - fI(n, 32), - yg((n + 96) | 0, A, B, Q), - Fg((n + 96) | 0, I), - fI((n + 96) | 0, 256), - (h = (n + 352) | 0), - 0 - ) - } - function aA(A, I) { - ;(i[A >> 2] = 1634760805), - (i[(A + 4) >> 2] = 857760878), - (i[(A + 8) >> 2] = 2036477234), - (i[(A + 12) >> 2] = 1797285236), - (i[(A + 16) >> 2] = - n[0 | I] | - (n[(I + 1) | 0] << 8) | - (n[(I + 2) | 0] << 16) | - (n[(I + 3) | 0] << 24)), - (i[(A + 20) >> 2] = - n[(I + 4) | 0] | - (n[(I + 5) | 0] << 8) | - (n[(I + 6) | 0] << 16) | - (n[(I + 7) | 0] << 24)), - (i[(A + 24) >> 2] = - n[(I + 8) | 0] | - (n[(I + 9) | 0] << 8) | - (n[(I + 10) | 0] << 16) | - (n[(I + 11) | 0] << 24)), - (i[(A + 28) >> 2] = - n[(I + 12) | 0] | - (n[(I + 13) | 0] << 8) | - (n[(I + 14) | 0] << 16) | - (n[(I + 15) | 0] << 24)), - (i[(A + 32) >> 2] = - n[(I + 16) | 0] | - (n[(I + 17) | 0] << 8) | - (n[(I + 18) | 0] << 16) | - (n[(I + 19) | 0] << 24)), - (i[(A + 36) >> 2] = - n[(I + 20) | 0] | - (n[(I + 21) | 0] << 8) | - (n[(I + 22) | 0] << 16) | - (n[(I + 23) | 0] << 24)), - (i[(A + 40) >> 2] = - n[(I + 24) | 0] | - (n[(I + 25) | 0] << 8) | - (n[(I + 26) | 0] << 16) | - (n[(I + 27) | 0] << 24)), - (i[(A + 44) >> 2] = - n[(I + 28) | 0] | - (n[(I + 29) | 0] << 8) | - (n[(I + 30) | 0] << 16) | - (n[(I + 31) | 0] << 24)) - } - function rA(A, I, g, B, Q, C, E) { - var n, - a, - r = 0, - o = 0 - ;(h = n = (h - 96) | 0), - K(n, C, E), - (a = (C + 16) | 0), - Vg[i[8952]]((n + 32) | 0, 32, 0, a, n), - (C = -1) - A: { - if (!(0 | Vg[i[8946]](g, I, B, Q, (n + 32) | 0))) { - if (((C = 0), !A)) break A - ;((!Q & (B >>> 0 <= (A - I) >>> 0)) | - (A >>> 0 <= I >>> 0) && - !( - (!Q & (B >>> 0 > (I - A) >>> 0)) | Q && - A >>> 0 < I >>> 0 - )) || - (I = gA(A, I, B)), - (g = (C = (!Q & (B >>> 0 > 32)) | (0 != (0 | Q))) - ? 32 - : B), - (E = C = C ? 0 : Q), - g | C - ? ((o = X((n - -64) | 0, I, g)), - (C = E), - $I( - (n + 32) | 0, - (n + 32) | 0, - (r = (g + 32) | 0), - (C = r >>> 0 < 32 ? (C + 1) | 0 : C), - a, - n - ), - X(A, o, g)) - : ((C = E), - $I( - (n + 32) | 0, - (n + 32) | 0, - (r = (g + 32) | 0), - (C = r >>> 0 < 32 ? (C + 1) | 0 : C), - a, - n - )), - (C = 0), - !Q & (B >>> 0 < 33) || - Ag( - ((r = A) + (A = g)) | 0, - (A + I) | 0, - (B - A) | 0, - (Q - ((E + (A >>> 0 > B >>> 0)) | 0)) | 0, - a, - n - ) - } - fI(n, 32) - } - return (h = (n + 96) | 0), C - } - function oA(A) { - var I = 0, - g = 0, - B = 0 - if (!A) return -25 - if (!i[A >> 2]) return -1 - A: { - I: { - if ( - ((I = -2), - !(a[(A + 4) >> 2] < 16) && - (i[(A + 8) >> 2] || - ((I = -18), !i[(A + 12) >> 2]))) - ) { - if (((g = i[(A + 20) >> 2]), !i[(A + 16) >> 2])) - break I - if ( - ((I = -6), - !(g >>> 0 < 8) && - (i[(A + 24) >> 2] || - ((I = -20), !i[(A + 28) >> 2])) && - (i[(A + 32) >> 2] || - ((I = -21), !i[(A + 36) >> 2]))) - ) { - if (!(g = i[(A + 48) >> 2])) return -16 - if ( - ((I = -17), - !( - g >>> 0 > 16777215 || - ((I = -14), - (B = i[(A + 44) >> 2]) >>> 0 < 8 || - ((I = -15), - B >>> 0 > 2097152 || - ((I = -14), (g << 3) >>> 0 > B >>> 0))) - )) - ) { - if (!i[(A + 40) >> 2]) return -12 - if ((A = i[(A + 52) >> 2])) break A - I = -28 - } - } - } - return I - } - return g ? -19 : -6 - } - return A >>> 0 > 16777215 ? -29 : 0 - } - function eA(A, I, g) { - var B, - Q, - C, - E, - n, - a, - r, - o, - e, - t, - f, - c, - y, - s, - w, - h, - D, - u, - p, - l - ;(f = i[(I + 4) >> 2]), - (B = i[(A + 4) >> 2]), - (c = i[(I + 8) >> 2]), - (Q = i[(A + 8) >> 2]), - (y = i[(I + 12) >> 2]), - (C = i[(A + 12) >> 2]), - (s = i[(I + 16) >> 2]), - (E = i[(A + 16) >> 2]), - (w = i[(I + 20) >> 2]), - (n = i[(A + 20) >> 2]), - (h = i[(I + 24) >> 2]), - (a = i[(A + 24) >> 2]), - (D = i[(I + 28) >> 2]), - (r = i[(A + 28) >> 2]), - (u = i[(I + 32) >> 2]), - (o = i[(A + 32) >> 2]), - (p = i[(I + 36) >> 2]), - (e = i[(A + 36) >> 2]), - (t = i[A >> 2]), - (l = i[I >> 2] ^ t), - (I = (0 - g) | 0), - (i[A >> 2] = t ^ (l & I)), - (i[(A + 36) >> 2] = (I & (e ^ p)) ^ e), - (i[(A + 32) >> 2] = (I & (o ^ u)) ^ o), - (i[(A + 28) >> 2] = (I & (r ^ D)) ^ r), - (i[(A + 24) >> 2] = (I & (a ^ h)) ^ a), - (i[(A + 20) >> 2] = (I & (n ^ w)) ^ n), - (i[(A + 16) >> 2] = (I & (E ^ s)) ^ E), - (i[(A + 12) >> 2] = (I & (C ^ y)) ^ C), - (i[(A + 8) >> 2] = (I & (Q ^ c)) ^ Q), - (i[(A + 4) >> 2] = (I & (B ^ f)) ^ B) - } - function tA(A, I) { - for ( - var g = 0, - B = 0, - Q = 0, - E = 0, - i = 0, - a = 0, - r = 0, - o = 0; - (C[(A + g) | 0] = - (n[(((g >>> 3) | 0) + I) | 0] >>> (7 & g)) & 1), - 256 != (0 | (g = (g + 1) | 0)); - - ); - for (;;) { - a = ((I = a) + 1) | 0 - A: if ( - n[0 | (i = (A + I) | 0)] && - ((g = a), (Q = 1), !(I >>> 0 > 254)) - ) - for (;;) { - I: if ((E = C[0 | (B = (A + g) | 0)])) - if ( - (0 | (o = ((r = C[0 | i]) + (E <<= Q)) | 0)) <= - 15 - ) - (C[0 | i] = o), (C[0 | B] = 0) - else { - if ((0 | (B = (r - E) | 0)) < -15) break A - for (C[0 | i] = B; ; ) { - if (!n[0 | (B = (A + g) | 0)]) { - C[0 | B] = 1 - break I - } - if ( - ((C[0 | B] = 0), - (B = g >>> 0 < 255), - (g = (g + 1) | 0), - !B) - ) - break - } - } - if (Q >>> 0 > 5) break A - if ( - !((g = (I + (Q = (Q + 1) | 0)) | 0) >>> 0 < 256) - ) - break - } - if (256 == (0 | a)) break - } - } - function fA(A, I, g, B) { - var Q, - C, - E, - n, - a = 0 - ;(h = Q = (h + -64) | 0), - EA((Q + 8) | 0, 0, 52), - (a = YA(A)), - (i[(Q + 20) >> 2] = a), - (i[(Q + 36) >> 2] = a), - (i[(Q + 4) >> 2] = a), - (C = k(a)), - (i[(Q + 32) >> 2] = C), - (E = k(a)), - (i[(Q + 16) >> 2] = E), - (n = k(a)), - (i[Q >> 2] = n) - A: if (!n | !C | !E || !(a = k(a))) - m(C), m(E), m(n), (A = -22) - else { - if ((A = T(Q, A, B))) { - m(i[(Q + 32) >> 2]), - m(i[(Q + 16) >> 2]), - m(i[Q >> 2]), - m(a) - break A - } - ;(A = 0), - (I = pA( - i[(Q + 40) >> 2], - i[(Q + 44) >> 2], - i[(Q + 52) >> 2], - I, - g, - i[(Q + 16) >> 2], - i[(Q + 20) >> 2], - a, - i[(Q + 4) >> 2], - 0, - 0, - B - )), - m(i[(Q + 32) >> 2]), - m(i[(Q + 16) >> 2]), - (I || zA(a, i[Q >> 2], i[(Q + 4) >> 2])) && (A = -35), - m(a), - m(i[Q >> 2]) - } - return (h = (Q - -64) | 0), A - } - function cA(A, I) { - var g, - B, - Q = 0 - ;(h = g = (h - 288) | 0), - d((B = (A + 40) | 0), I), - wg((Q = (A + 80) | 0)), - H((g + 240) | 0, B), - _((g + 192) | 0, (g + 240) | 0, 2128), - yA((g + 240) | 0, (g + 240) | 0, Q), - sA((g + 192) | 0, (g + 192) | 0, Q), - H((g + 144) | 0, (g + 192) | 0), - _((g + 144) | 0, (g + 144) | 0, (g + 192) | 0), - H(A, (g + 144) | 0), - _(A, A, (g + 192) | 0), - _(A, A, (g + 240) | 0), - (function (A, I) { - var g, - B = 0 - for ( - h = g = (h - 144) | 0, - H((g + 96) | 0, I), - H((g + 48) | 0, (g + 96) | 0), - H((g + 48) | 0, (g + 48) | 0), - _((g + 48) | 0, I, (g + 48) | 0), - _((g + 96) | 0, (g + 96) | 0, (g + 48) | 0), - H((g + 96) | 0, (g + 96) | 0), - _((g + 96) | 0, (g + 48) | 0, (g + 96) | 0), - H((g + 48) | 0, (g + 96) | 0), - B = 1; - H((g + 48) | 0, (g + 48) | 0), - 5 != (0 | (B = (B + 1) | 0)); - - ); - for ( - _((g + 96) | 0, (g + 48) | 0, (g + 96) | 0), - H((g + 48) | 0, (g + 96) | 0), - B = 1; - H((g + 48) | 0, (g + 48) | 0), - 10 != (0 | (B = (B + 1) | 0)); - - ); - for ( - _((g + 48) | 0, (g + 48) | 0, (g + 96) | 0), - H(g, (g + 48) | 0), - B = 1; - H(g, g), 20 != (0 | (B = (B + 1) | 0)); - - ); - for ( - _((g + 48) | 0, g, (g + 48) | 0), B = 1; - H((g + 48) | 0, (g + 48) | 0), - 11 != (0 | (B = (B + 1) | 0)); - - ); - for ( - _((g + 96) | 0, (g + 48) | 0, (g + 96) | 0), - H((g + 48) | 0, (g + 96) | 0), - B = 1; - H((g + 48) | 0, (g + 48) | 0), - 50 != (0 | (B = (B + 1) | 0)); - - ); - for ( - _((g + 48) | 0, (g + 48) | 0, (g + 96) | 0), - H(g, (g + 48) | 0), - B = 1; - H(g, g), 100 != (0 | (B = (B + 1) | 0)); - - ); - for ( - _((g + 48) | 0, g, (g + 48) | 0), B = 1; - H((g + 48) | 0, (g + 48) | 0), - 51 != (0 | (B = (B + 1) | 0)); - - ); - _((g + 96) | 0, (g + 48) | 0, (g + 96) | 0), - H((g + 96) | 0, (g + 96) | 0), - H((g + 96) | 0, (g + 96) | 0), - _(A, (g + 96) | 0, I), - (h = (g + 144) | 0) - })(A, A), - _(A, A, (g + 144) | 0), - _(A, A, (g + 240) | 0), - H((g + 96) | 0, A), - _((g + 96) | 0, (g + 96) | 0, (g + 192) | 0), - yA((g + 48) | 0, (g + 96) | 0, (g + 240) | 0) - A: { - if (!RI((g + 48) | 0)) { - if ( - (sA(g, (g + 96) | 0, (g + 240) | 0), - (Q = -1), - !RI(g)) - ) - break A - _(A, A, 2176) - } - ;(0 | KI(A)) == ((n[(I + 31) | 0] >>> 7) | 0) && - mA(A, A), - _((A + 120) | 0, A, B), - (Q = 0) - } - return (h = (g + 288) | 0), Q - } - function yA(A, I, g) { - var B, Q, C, E, n, a, r, o, e, t, f, c, y, s, w, h, D, u - ;(B = i[(g + 4) >> 2]), - (Q = i[(I + 4) >> 2]), - (C = i[(g + 8) >> 2]), - (E = i[(I + 8) >> 2]), - (n = i[(g + 12) >> 2]), - (a = i[(I + 12) >> 2]), - (r = i[(g + 16) >> 2]), - (o = i[(I + 16) >> 2]), - (e = i[(g + 20) >> 2]), - (t = i[(I + 20) >> 2]), - (f = i[(g + 24) >> 2]), - (c = i[(I + 24) >> 2]), - (y = i[(g + 28) >> 2]), - (s = i[(I + 28) >> 2]), - (w = i[(g + 32) >> 2]), - (h = i[(I + 32) >> 2]), - (D = i[(g + 36) >> 2]), - (u = i[(I + 36) >> 2]), - (i[A >> 2] = i[I >> 2] - i[g >> 2]), - (i[(A + 36) >> 2] = u - D), - (i[(A + 32) >> 2] = h - w), - (i[(A + 28) >> 2] = s - y), - (i[(A + 24) >> 2] = c - f), - (i[(A + 20) >> 2] = t - e), - (i[(A + 16) >> 2] = o - r), - (i[(A + 12) >> 2] = a - n), - (i[(A + 8) >> 2] = E - C), - (i[(A + 4) >> 2] = Q - B) - } - function sA(A, I, g) { - var B, Q, C, E, n, a, r, o, e, t, f, c, y, s, w, h, D, u - ;(B = i[(g + 4) >> 2]), - (Q = i[(I + 4) >> 2]), - (C = i[(g + 8) >> 2]), - (E = i[(I + 8) >> 2]), - (n = i[(g + 12) >> 2]), - (a = i[(I + 12) >> 2]), - (r = i[(g + 16) >> 2]), - (o = i[(I + 16) >> 2]), - (e = i[(g + 20) >> 2]), - (t = i[(I + 20) >> 2]), - (f = i[(g + 24) >> 2]), - (c = i[(I + 24) >> 2]), - (y = i[(g + 28) >> 2]), - (s = i[(I + 28) >> 2]), - (w = i[(g + 32) >> 2]), - (h = i[(I + 32) >> 2]), - (D = i[(g + 36) >> 2]), - (u = i[(I + 36) >> 2]), - (i[A >> 2] = i[g >> 2] + i[I >> 2]), - (i[(A + 36) >> 2] = D + u), - (i[(A + 32) >> 2] = w + h), - (i[(A + 28) >> 2] = y + s), - (i[(A + 24) >> 2] = f + c), - (i[(A + 20) >> 2] = e + t), - (i[(A + 16) >> 2] = r + o), - (i[(A + 12) >> 2] = n + a), - (i[(A + 8) >> 2] = C + E), - (i[(A + 4) >> 2] = B + Q) - } - function wA(A) { - var I, - g = 0, - B = 0, - Q = 0, - E = 0 - for ( - C[(11 + (I = (h - 16) | 0)) | 0] = 0, - C[(I + 12) | 0] = 0, - C[(I + 13) | 0] = 0, - C[(I + 14) | 0] = 0, - i[(I + 8) >> 2] = 0; - ; - - ) { - for ( - Q = n[(A + B) | 0], g = 0; - (C[0 | (E = (((I + 8) | 0) + g) | 0)] = - n[0 | E] | - (Q ^ n[(((3232 + (g << 5)) | 0) + B) | 0])), - 7 != (0 | (g = (g + 1) | 0)); - - ); - if (31 == (0 | (B = (B + 1) | 0))) break - } - for ( - B = 127 & n[(A + 31) | 0], A = 0, g = 0; - (C[0 | (Q = (((I + 8) | 0) + g) | 0)] = - n[0 | Q] | (B ^ n[(3263 + (g << 5)) | 0])), - 7 != (0 | (g = (g + 1) | 0)); - - ); - for ( - g = 0; - (g = (n[(((I + 8) | 0) + A) | 0] - 1) | g), - 7 != (0 | (A = (A + 1) | 0)); - - ); - return (g >>> 8) & 1 - } - function hA(A, I) { - var g = 0, - B = 0, - Q = 0, - E = 0, - i = 0 - for ( - EA((X(A, 1952, 64) - -64) | 0, 0, 293); - (Q = B = ((g = E << 3) + A) | 0), - (g = (I + g) | 0), - (i = - n[0 | B] | - (n[(B + 1) | 0] << 8) | - (n[(B + 2) | 0] << 16) | - (n[(B + 3) | 0] << 24)), - (B = - (n[(g + 4) | 0] | - (n[(g + 5) | 0] << 8) | - (n[(g + 6) | 0] << 16) | - (n[(g + 7) | 0] << 24)) ^ - (n[(B + 4) | 0] | - (n[(B + 5) | 0] << 8) | - (n[(B + 6) | 0] << 16) | - (n[(B + 7) | 0] << 24))), - (g = - (n[0 | g] | - (n[(g + 1) | 0] << 8) | - (n[(g + 2) | 0] << 16) | - (n[(g + 3) | 0] << 24)) ^ - i), - (C[0 | Q] = g), - (C[(Q + 1) | 0] = g >>> 8), - (C[(Q + 2) | 0] = g >>> 16), - (C[(Q + 3) | 0] = g >>> 24), - (C[(Q + 4) | 0] = B), - (C[(Q + 5) | 0] = B >>> 8), - (C[(Q + 6) | 0] = B >>> 16), - (C[(Q + 7) | 0] = B >>> 24), - 8 != (0 | (E = (E + 1) | 0)); - - ); - } - function DA(A, I, g, B, Q) { - var C, - E = 0 - h = C = (h + -64) | 0 - A: { - I: { - if (((E = !g), (g = YA(A)) >>> 0 < 128 && E)) { - if ( - ((i[(C + 56) >> 2] = 0), - (i[(C + 48) >> 2] = 0), - (i[(C + 52) >> 2] = 0), - (i[(C + 40) >> 2] = 0), - (i[(C + 44) >> 2] = 0), - (E = (function (A) { - var I = 0, - g = 0 - return ( - (I = 0), - A && - ((g = A), - (I = A), - (1 | A) >>> 0 < 65536 || (I = g)), - (g = I), - !(A = k(I)) | !(3 & n[(A - 4) | 0]) || - EA(A, 0, g), - A - ) - })(g))) - ) - break I - } else i[8960] = 28 - A = -1 - break A - } - ;(i[(C + 32) >> 2] = 0), - (i[(C + 36) >> 2] = 0), - (i[(C + 8) >> 2] = E), - (i[(C + 16) >> 2] = E), - (i[(C + 20) >> 2] = g), - (i[C >> 2] = E), - (i[(C + 12) >> 2] = g), - (i[(C + 24) >> 2] = 0), - (i[(C + 28) >> 2] = 0), - (i[(C + 4) >> 2] = g), - T(C, A, Q) - ? ((i[8960] = 28), (A = -1)) - : ((A = 1), - (0 | I) == i[(C + 40) >> 2] && - (A = i[(C + 44) >> 2] != ((B >>> 10) | 0))), - m(E) - } - return (h = (C - -64) | 0), A - } - function uA(A, I) { - var g, - B = 0, - Q = 0, - E = 0, - o = 0 - if ( - ((h = g = (h - 48) | 0), - !( - (B = oA(A)) || - ((B = -26), - (I - 1) >>> 0 > 1 || - ((E = i[(A + 44) >> 2]), - (B = i[(A + 48) >> 2]), - (i[g >> 2] = 0), - (Q = i[(A + 40) >> 2]), - (i[(g + 28) >> 2] = B), - (i[(g + 12) >> 2] = -1), - (i[(g + 8) >> 2] = Q), - (B = - (((Q = E >>> 0 < (Q = B << 3) >>> 0 ? Q : E) >>> - 0) / - ((E = B << 2) >>> 0)) | - 0), - (i[(g + 20) >> 2] = B), - (i[(g + 24) >> 2] = B << 2), - (i[(g + 16) >> 2] = r(B, E)), - (B = i[(A + 52) >> 2]), - (i[(g + 36) >> 2] = I), - (i[(g + 32) >> 2] = B), - (B = (function (A, I) { - var g, - B = 0 - return ( - (h = g = (h - 80) | 0), - (B = -25), - !A | !I || - ((B = k(i[(A + 20) >> 2] << 3)), - (i[(A + 4) >> 2] = B), - B - ? (B = (function (A, I) { - var g, - B = 0, - Q = 0 - ;(h = g = (h - 16) | 0), (Q = -22) - A: if ( - !(!A | !I) && - 1024 == - ((((B = I << 10) >>> 0) / - (I >>> 0)) | - 0) && - ((I = k(12)), (i[A >> 2] = I), I) - ) { - ;(i[I >> 2] = 0), - (i[(I + 4) >> 2] = 0), - (I = (function (A, I) { - if (I >>> 0 > 4294967168) A = 48 - else { - if ( - !(I = (function (A) { - var I = 0, - g = 0, - B = 0, - Q = 0, - C = 0, - E = 0 - return A >>> 0 >= 4294967168 - ? ((i[8960] = 48), 0) - : (A = k( - (76 + - (B = - A >>> 0 < 11 - ? 16 - : (A + 11) & - -8)) | - 0 - )) - ? ((I = (A - 8) | 0), - 63 & A - ? ((Q = - ((-8 & - (E = - i[ - (C = - (A - 4) | - 0) >> 2 - ])) - - (g = - ((A = - ((A = - (((A + - 63) & - -64) - - 8) | - 0) - - I) >>> - 0 > - 15 - ? A - : (A - - -64) | - 0) - - I) | - 0)) | - 0), - 3 & E - ? ((i[ - (A + 4) >> 2 - ] = - Q | - (1 & - i[ - (A + 4) >> - 2 - ]) | - 2), - (i[ - (4 + - (Q = - (A + Q) | - 0)) >> - 2 - ] = - 1 | - i[ - (Q + 4) >> 2 - ]), - (i[C >> 2] = - g | - (1 & - i[C >> 2]) | - 2), - (i[ - (A + 4) >> 2 - ] = - 1 | - i[ - (A + 4) >> 2 - ]), - v(I, g)) - : ((I = - i[I >> 2]), - (i[ - (A + 4) >> 2 - ] = Q), - (i[A >> 2] = - I + g))) - : (A = I), - 3 & - (I = - i[(A + 4) >> 2]) && - ((g = -8 & I) >>> 0 <= - (B + 16) >>> 0 || - ((i[(A + 4) >> 2] = - B | (1 & I) | 2), - (I = (A + B) | 0), - (B = (g - B) | 0), - (i[(I + 4) >> 2] = - 3 | B), - (i[ - (4 + - (g = - (A + g) | - 0)) >> - 2 - ] = - 1 | - i[(g + 4) >> 2]), - v(I, B))), - (A + 8) | 0) - : 0 - })(I)) - ) - return 48 - ;(i[A >> 2] = I), (A = 0) - } - return A - })((g + 12) | 0, B)), - (i[8960] = I) - I: { - if (I) i[(g + 12) >> 2] = 0 - else if ((I = i[(g + 12) >> 2])) - break I - m(i[A >> 2]), (i[A >> 2] = 0) - break A - } - ;(i[i[A >> 2] >> 2] = I), - (i[(i[A >> 2] + 4) >> 2] = I), - (i[(i[A >> 2] + 8) >> 2] = B), - (Q = 0) - } - return (h = (g + 16) | 0), Q - })(A, i[(A + 16) >> 2])) - ? eI(A, i[(I + 56) >> 2]) - : ((function (A, I, g) { - var B, - Q = 0 - ;(B = Q = h), - (h = Q = (Q - 448) & -64), - !A | !I || - (iI((Q - -64) | 0, 0, 0, 64), - xI( - (Q + 60) | 0, - i[(I + 48) >> 2] - ), - hg( - (Q - -64) | 0, - (Q + 60) | 0, - 4, - 0 - ), - xI((Q + 60) | 0, i[(I + 4) >> 2]), - hg( - (Q - -64) | 0, - (Q + 60) | 0, - 4, - 0 - ), - xI( - (Q + 60) | 0, - i[(I + 44) >> 2] - ), - hg( - (Q - -64) | 0, - (Q + 60) | 0, - 4, - 0 - ), - xI( - (Q + 60) | 0, - i[(I + 40) >> 2] - ), - hg( - (Q - -64) | 0, - (Q + 60) | 0, - 4, - 0 - ), - xI((Q + 60) | 0, 19), - hg( - (Q - -64) | 0, - (Q + 60) | 0, - 4, - 0 - ), - xI((Q + 60) | 0, g), - hg( - (Q - -64) | 0, - (Q + 60) | 0, - 4, - 0 - ), - xI( - (Q + 60) | 0, - i[(I + 12) >> 2] - ), - hg( - (Q - -64) | 0, - (Q + 60) | 0, - 4, - 0 - ), - (g = i[(I + 8) >> 2]) && - (hg( - (Q - -64) | 0, - g, - i[(I + 12) >> 2], - 0 - ), - 1 & C[(I + 56) | 0] && - (fI( - i[(I + 8) >> 2], - i[(I + 12) >> 2] - ), - (i[(I + 12) >> 2] = 0))), - xI( - (Q + 60) | 0, - i[(I + 20) >> 2] - ), - hg( - (Q - -64) | 0, - (Q + 60) | 0, - 4, - 0 - ), - (g = i[(I + 16) >> 2]) && - hg( - (Q - -64) | 0, - g, - i[(I + 20) >> 2], - 0 - ), - xI( - (Q + 60) | 0, - i[(I + 28) >> 2] - ), - hg( - (Q - -64) | 0, - (Q + 60) | 0, - 4, - 0 - ), - (g = i[(I + 24) >> 2]) && - (hg( - (Q - -64) | 0, - g, - i[(I + 28) >> 2], - 0 - ), - 2 & n[(I + 56) | 0] && - (fI( - i[(I + 24) >> 2], - i[(I + 28) >> 2] - ), - (i[(I + 28) >> 2] = 0))), - xI( - (Q + 60) | 0, - i[(I + 36) >> 2] - ), - hg( - (Q - -64) | 0, - (Q + 60) | 0, - 4, - 0 - ), - (g = i[(I + 32) >> 2]) && - hg( - (Q - -64) | 0, - g, - i[(I + 36) >> 2], - 0 - ), - dI((Q - -64) | 0, A, 64)), - (h = B) - })(g, I, i[(A + 36) >> 2]), - fI((g - -64) | 0, 8), - (function (A, I) { - var g, - B = 0, - Q = 0, - C = 0 - if ( - ((h = g = (h - 1024) | 0), - i[(I + 28) >> 2]) - ) - for ( - C = (A + 68) | 0, - Q = (A - -64) | 0; - xI(Q, 0), - xI(C, B), - J(g, 1024, A, 72), - TA( - (i[(i[I >> 2] + 4) >> 2] + - (r(i[(I + 24) >> 2], B) << - 10)) | - 0, - g - ), - xI(Q, 1), - J(g, 1024, A, 72), - TA( - (1024 + - ((i[(i[I >> 2] + 4) >> 2] + - (r(i[(I + 24) >> 2], B) << - 10)) | - 0)) | - 0, - g - ), - (B = (B + 1) | 0) >>> 0 < - a[(I + 28) >> 2]; - - ); - fI(g, 1024), (h = (g + 1024) | 0) - })(g, A), - fI(g, 72), - (B = 0)) - : (B = -22)), - (h = (g + 80) | 0), - B - ) - })(g, A)))) - )) - ) { - if (i[(g + 8) >> 2]) - for ( - ; - kA(g, o), (o = (o + 1) | 0) >>> 0 < a[(g + 8) >> 2]; - - ); - !(function (A, I) { - var g, - B = 0, - Q = 0 - if (((h = g = (h - 2048) | 0), !(!A | !I))) { - if ( - (Yg( - (g + 1024) | 0, - (((i[(i[I >> 2] + 4) >> 2] + - (i[(I + 24) >> 2] << 10)) | - 0) - - 1024) | - 0 - ), - a[(I + 28) >> 2] >= 2) - ) - for ( - B = 1; - (Q = i[(I + 24) >> 2]), - QI( - (g + 1024) | 0, - (((i[(i[I >> 2] + 4) >> 2] + - ((Q + r(B, Q)) << 10)) | - 0) - - 1024) | - 0 - ), - (B = (B + 1) | 0) >>> 0 < a[(I + 28) >> 2]; - - ); - !(function (A, I) { - for ( - var g = 0, B = 0; - tI( - ((g = B << 3) + A) | 0, - i[(g = (I + g) | 0) >> 2], - i[(g + 4) >> 2] - ), - 128 != (0 | (B = (B + 1) | 0)); - - ); - })(g, (g + 1024) | 0), - J(i[A >> 2], i[(A + 4) >> 2], g, 1024), - fI((g + 1024) | 0, 1024), - fI(g, 1024), - eI(I, i[(A + 56) >> 2]) - } - h = (g + 2048) | 0 - })(A, g), - (B = 0) - } - return (h = (g + 48) | 0), B - } - function pA(A, I, g, B, Q, C, E, n, a, r, o, e) { - var t, f - return ( - (h = t = (h + -64) | 0), - (f = k(a)) - ? ((i[(t + 32) >> 2] = 0), - (i[(t + 36) >> 2] = 0), - (i[(t + 24) >> 2] = 0), - (i[(t + 28) >> 2] = 0), - (i[(t + 20) >> 2] = E), - (i[(t + 16) >> 2] = C), - (i[(t + 12) >> 2] = Q), - (i[(t + 8) >> 2] = B), - (i[(t + 4) >> 2] = a), - (i[t >> 2] = f), - (i[(t + 56) >> 2] = 0), - (i[(t + 52) >> 2] = g), - (i[(t + 48) >> 2] = g), - (i[(t + 44) >> 2] = I), - (i[(t + 40) >> 2] = A), - (g = uA(t, e)) - ? fI(f, a) - : !r | !o || !R(r, o, t, e) - ? (n && X(n, f, a), fI(f, a), (g = 0)) - : (fI(f, a), fI(r, o), (g = -31)), - m(f)) - : (g = -22), - (h = (t - -64) | 0), - g - ) - } - function lA(A, I, g, B, Q, E) { - var i, - a, - o = 0, - e = 0, - t = 0 - return ( - (h = i = (h - 592) | 0), - (o = -1), - (function (A) { - var I = 0, - g = 0, - B = 0, - Q = 0, - C = 0 - for ( - I = 32, g = 1; - (C = - ((((B = n[((I = (I - 1) | 0) + A) | 0]) - - (Q = n[(I + 3456) | 0])) >> - 8) & - g) | - (255 & C)), - (g &= (65535 + (B ^ Q)) >>> 8), - I; - - ); - return 0 != (0 | C) - })((a = (A + 32) | 0)) && - (wA(A) || - ((function (A) { - var I = 0, - g = 0 - for ( - g = 127 & (-1 ^ n[(A + 31) | 0]), I = 30; - (g = (-1 ^ n[(A + I) | 0]) | g), - (I = (I - 1) | 0); - - ); - return ( - 1 & - (((((255 & g) - 1) & (236 - n[0 | A])) >>> 8) ^ - -1) - ) - })(Q) && - (wA(Q) || - cA((i + 128) | 0, Q) || - (ig((i + 384) | 0, E), - V((i + 384) | 0, A, 32, 0), - V((i + 384) | 0, Q, 32, 0), - V((i + 384) | 0, I, g, B), - UI((i + 384) | 0, (i + 320) | 0), - G((i + 320) | 0), - (function (A, I, g, B) { - var Q - ;(h = Q = (h - 2272) | 0), - tA((Q + 2016) | 0, I), - tA((Q + 1760) | 0, B), - FI((Q + 480) | 0, g), - JI((Q + 320) | 0, g), - DI(Q, (Q + 320) | 0), - VA((Q + 320) | 0, Q, (Q + 480) | 0), - DI((Q + 160) | 0, (Q + 320) | 0), - FI((I = (Q + 640) | 0), (Q + 160) | 0), - VA((Q + 320) | 0, Q, I), - DI((Q + 160) | 0, (Q + 320) | 0), - FI((I = (Q + 800) | 0), (Q + 160) | 0), - VA((Q + 320) | 0, Q, I), - DI((Q + 160) | 0, (Q + 320) | 0), - FI((I = (Q + 960) | 0), (Q + 160) | 0), - VA((Q + 320) | 0, Q, I), - DI((Q + 160) | 0, (Q + 320) | 0), - FI((I = (Q + 1120) | 0), (Q + 160) | 0), - VA((Q + 320) | 0, Q, I), - DI((Q + 160) | 0, (Q + 320) | 0), - FI((I = (Q + 1280) | 0), (Q + 160) | 0), - VA((Q + 320) | 0, Q, I), - DI((Q + 160) | 0, (Q + 320) | 0), - FI((I = (Q + 1440) | 0), (Q + 160) | 0), - VA((Q + 320) | 0, Q, I), - DI((Q + 160) | 0, (Q + 320) | 0), - FI((Q + 1600) | 0, (Q + 160) | 0), - Ug(A), - wg((A + 40) | 0), - wg((A + 80) | 0), - (B = 255) - A: { - for (;;) { - if ( - !( - n[((g = B) + ((Q + 2016) | 0)) | 0] | - n[(((Q + 1760) | 0) + g) | 0] - ) - ) { - if (((B = (g - 1) | 0), g)) continue - break A - } - break - } - if (!((0 | g) < 0)) - for ( - ; - AI((Q + 320) | 0, A), - (0 | - (g = - C[ - ((I = g) + ((Q + 2016) | 0)) | 0 - ])) >= - 1 - ? (DI((Q + 160) | 0, (Q + 320) | 0), - VA( - (Q + 320) | 0, - (Q + 160) | 0, - (((Q + 480) | 0) + - r( - ((254 & g) >>> 1) | 0, - 160 - )) | - 0 - )) - : (0 | g) > -1 || - (DI((Q + 160) | 0, (Q + 320) | 0), - WA( - (Q + 320) | 0, - (Q + 160) | 0, - (((Q + 480) | 0) + - r( - (((0 - g) & 254) >>> 1) | 0, - 160 - )) | - 0 - )), - (0 | - (g = - C[(I + ((Q + 1760) | 0)) | 0])) >= - 1 - ? (DI((Q + 160) | 0, (Q + 320) | 0), - OA( - (Q + 320) | 0, - (Q + 160) | 0, - (r(((254 & g) >>> 1) | 0, 120) + - 2272) | - 0 - )) - : (0 | g) > -1 || - (DI((Q + 160) | 0, (Q + 320) | 0), - ZA( - (Q + 320) | 0, - (Q + 160) | 0, - (r( - (((0 - g) & 254) >>> 1) | 0, - 120 - ) + - 2272) | - 0 - )), - _I(A, (Q + 320) | 0), - (g = (I - 1) | 0), - (0 | I) > 0; - - ); - } - h = (Q + 2272) | 0 - })( - (i + 8) | 0, - (i + 320) | 0, - (i + 128) | 0, - a - ), - nI((i + 288) | 0, (i + 8) | 0), - (e = -1), - (t = Gg((i + 288) | 0, A)), - (o = - (((i + 288) | 0) == (0 | A) ? e : t) | - zA(A, (i + 288) | 0, 32)))))), - (h = (i + 592) | 0), - o - ) - } - function FA(A, I, g, B) { - var Q = 0, - C = 0 - A: if (i[I >> 2]) - (C = i[(A + 24) >> 2]), - (Q = i[(A + 20) >> 2]), - (B = B - ? (i[(I + 12) >> 2] + ((C + (-1 ^ Q)) | 0)) | 0 - : (((C - Q) | 0) - !i[(I + 12) >> 2]) | 0), - (C = 0), - 3 != (0 | (I = n[(I + 8) | 0])) && - (C = r(Q, (I + 1) | 0)) - else { - if (!(Q = n[(I + 8) | 0])) { - ;(B = (i[(I + 12) >> 2] - 1) | 0), (C = 0) - break A - } - if ( - ((Q = r(Q, i[(A + 20) >> 2])), - (I = i[(I + 12) >> 2]), - B) - ) { - ;(B = (((I + Q) | 0) - 1) | 0), (C = 0) - break A - } - ;(B = (Q - !I) | 0), (C = 0) - } - return ( - (I = (C + (Q = (B - 1) | 0)) | 0), - eg(g, 0, g, 0), - eg(B, 0, p, 0), - (function (A, I, g) { - var B = 0, - Q = 0, - C = 0, - E = 0, - i = 0, - n = 0, - a = 0, - e = 0, - t = 0 - A: { - I: { - g: { - B: { - Q: { - C: { - E: { - i: { - n: { - if ((Q = I)) { - if (!(B = g)) break n - break i - } - return ( - (D = - (A - - r( - ((A >>> 0) / (g >>> 0)) | 0, - g - )) | - 0), - (u = 0), - void (p = 0) - ) - } - if (!A) break E - break C - } - if (!((E = (B - 1) | 0) & B)) break Q - i = - (0 - - (E = - (((o(B) + 33) | 0) - o(Q)) | 0)) | - 0 - break g - } - return (D = 0), (u = Q), void (p = 0) - } - if ((B = (32 - o(Q)) | 0) >>> 0 < 31) - break B - break I - } - if (((D = A & E), (u = 0), 1 == (0 | B))) - break A - return ( - (g = - 31 & - (A = B ? (31 - o((B - 1) ^ B)) | 0 : 32)), - void (p = - (63 & A) >>> 0 >= 32 ? 0 : (I >>> g) | 0) - ) - } - ;(E = (B + 1) | 0), (i = (63 - B) | 0) - } - if ( - ((B = I), - (C = 31 & (Q = 63 & E)), - Q >>> 0 >= 32 - ? ((Q = 0), (C = (B >>> C) | 0)) - : ((Q = (B >>> C) | 0), - (C = - ((((1 << C) - 1) & B) << (32 - C)) | - (A >>> C))), - (B = 31 & (i &= 63)), - i >>> 0 >= 32 - ? ((I = A << B), (A = 0)) - : ((I = - (((1 << B) - 1) & (A >>> (32 - B))) | - (I << B)), - (A <<= B)), - E) - ) - for ( - i = -1 != (0 | (B = (g - 1) | 0)) ? 0 : -1; - (C = - ((a = n = (C << 1) | (I >>> 31)) - - (e = - g & - (n = - (i - - (((Q = (Q << 1) | (C >>> 31)) + - (B >>> 0 < n >>> 0)) | - 0)) >> - 31))) | - 0), - (Q = (Q - (a >>> 0 < e >>> 0)) | 0), - (I = (I << 1) | (A >>> 31)), - (A = t | (A << 1)), - (t = 1 & n), - (E = (E - 1) | 0); - - ); - return ( - (D = C), - (u = Q), - void (p = (I << 1) | (A >>> 31)) - ) - } - ;(D = A), (u = I), (I = 0) - } - p = I - })( - (I - (g = p)) | 0, - ((I >>> 0 < Q >>> 0) - (I >>> 0 < g >>> 0)) | 0, - i[(A + 24) >> 2] - ), - (p = u), - D - ) - } - function GA(A, I, g, B, Q, C, E, i, n, a) { - var r - return ( - (h = r = (h - 352) | 0), - _g((r + 32) | 0, 64, n, a), - lg((r + 96) | 0, (r + 32) | 0), - fI((r + 32) | 0, 64), - yg((r + 96) | 0, C, E, i), - yg((r + 96) | 0, 34688, (0 - E) & 15, 0), - yg((r + 96) | 0, I, g, B), - yg((r + 96) | 0, 34688, (0 - g) & 15, 0), - tI((r + 24) | 0, E, i), - yg((r + 96) | 0, (r + 24) | 0, 8, 0), - tI((r + 24) | 0, g, B), - yg((r + 96) | 0, (r + 24) | 0, 8, 0), - Fg((r + 96) | 0, r), - fI((r + 96) | 0, 256), - (Q = kg(r, Q)), - fI(r, 16), - A && - (Q - ? (EA(A, 0, g), (Q = -1)) - : (BI(A, I, g, B, n, 1, a), (Q = 0))), - (h = (r + 352) | 0), - Q - ) - } - function kA(A, I) { - var g, - B = 0, - Q = 0, - E = 0 - if (((h = g = (h - 32) | 0), !(!A | !i[(A + 28) >> 2]))) - for (i[(g + 16) >> 2] = I, B = 1; ; ) { - if (((C[(g + 24) | 0] = Q), (I = 0), (E = 0), B)) - for ( - ; - (i[(g + 28) >> 2] = 0), - (B = i[(g + 28) >> 2]), - (i[(g + 8) >> 2] = i[(g + 24) >> 2]), - (i[(g + 12) >> 2] = B), - (i[(g + 20) >> 2] = I), - (B = i[(g + 20) >> 2]), - (i[g >> 2] = i[(g + 16) >> 2]), - (i[(g + 4) >> 2] = B), - $(A, g), - (I = (I + 1) | 0) >>> 0 < - (E = i[(A + 28) >> 2]) >>> 0; - - ); - if (((B = E), 4 == (0 | (Q = (Q + 1) | 0)))) break - } - h = (g + 32) | 0 - } - function _A(A, I, g, B, Q, C, E, n, a, r, o) { - var e - return ( - (h = e = (h - 336) | 0), - _g((e + 16) | 0, 64, r, o), - lg((e + 80) | 0, (e + 16) | 0), - fI((e + 16) | 0, 64), - yg((e + 80) | 0, E, n, a), - yg((e + 80) | 0, 34688, (0 - n) & 15, 0), - BI(A, B, Q, C, r, 1, o), - yg((e + 80) | 0, A, Q, C), - yg((e + 80) | 0, 34688, (0 - Q) & 15, 0), - tI((e + 8) | 0, n, a), - yg((e + 80) | 0, (e + 8) | 0, 8, 0), - tI((e + 8) | 0, Q, C), - yg((e + 80) | 0, (e + 8) | 0, 8, 0), - Fg((e + 80) | 0, I), - fI((e + 80) | 0, 256), - g && ((i[g >> 2] = 16), (i[(g + 4) >> 2] = 0)), - (h = (e + 336) | 0), - 0 - ) - } - function HA(A, I, g, B, Q, C, E, i, n, a) { - var r - return ( - (h = r = (h - 352) | 0), - og((r + 32) | 0, n, a), - lg((r + 96) | 0, (r + 32) | 0), - fI((r + 32) | 0, 64), - yg((r + 96) | 0, C, E, i), - tI((r + 24) | 0, E, i), - yg((r + 96) | 0, (r + 24) | 0, 8, 0), - yg((r + 96) | 0, I, g, B), - tI((r + 24) | 0, g, B), - yg((r + 96) | 0, (r + 24) | 0, 8, 0), - Fg((r + 96) | 0, r), - fI((r + 96) | 0, 256), - (Q = kg(r, Q)), - fI(r, 16), - A && - (Q - ? (EA(A, 0, g), (Q = -1)) - : (NI(A, I, g, B, n, a), (Q = 0))), - (h = (r + 352) | 0), - Q - ) - } - function YA(A) { - var I = 0, - g = 0, - B = 0 - A: { - I: if (3 & (I = A)) { - if (!n[0 | A]) return 0 - for (;;) { - if (!(3 & (I = (I + 1) | 0))) break I - if (!n[0 | I]) break - } - break A - } - for ( - ; - (g = I), - (I = (I + 4) | 0), - !( - (-1 ^ (B = i[g >> 2])) & - (B - 16843009) & - -2139062144 - ); - - ); - if (!(255 & B)) return (g - A) | 0 - for ( - ; - (B = n[(g + 1) | 0]), (g = I = (g + 1) | 0), B; - - ); - } - return (I - A) | 0 - } - function bA(A, I) { - var g, - B = 0, - Q = 0, - C = 0, - E = 0, - a = 0 - A: if (!((((g = n[0 | A]) - 48) & 255) >>> 0 > 9)) { - for (Q = g, B = A; ; ) { - if (((E = B), C >>> 0 > 429496729)) break A - if ( - (Q = ((255 & Q) - 48) | 0) >>> 0 > - (-1 ^ (B = r(C, 10))) >>> 0 - ) - break A - if ( - ((C = (B + Q) | 0), - !( - (((Q = n[0 | (B = (E + 1) | 0)]) - 48) & 255) >>> - 0 < - 10 - )) - ) - break - } - ;((0 | A) == (0 | B)) | - (48 == (0 | g) ? (0 | A) != (0 | E) : 0) || - ((i[I >> 2] = C), (a = B)) - } - return a - } - function mA(A, I) { - var g, B, Q, C, E, n, a, r, o - ;(g = i[(I + 4) >> 2]), - (B = i[(I + 8) >> 2]), - (Q = i[(I + 12) >> 2]), - (C = i[(I + 16) >> 2]), - (E = i[(I + 20) >> 2]), - (n = i[(I + 24) >> 2]), - (a = i[(I + 28) >> 2]), - (r = i[(I + 32) >> 2]), - (o = i[(I + 36) >> 2]), - (i[A >> 2] = 0 - i[I >> 2]), - (i[(A + 36) >> 2] = 0 - o), - (i[(A + 32) >> 2] = 0 - r), - (i[(A + 28) >> 2] = 0 - a), - (i[(A + 24) >> 2] = 0 - n), - (i[(A + 20) >> 2] = 0 - E), - (i[(A + 16) >> 2] = 0 - C), - (i[(A + 12) >> 2] = 0 - Q), - (i[(A + 8) >> 2] = 0 - B), - (i[(A + 4) >> 2] = 0 - g) - } - function vA(A, I, g) { - var B = 0 - ;(B = ((I << 8) & 16711680) | (I << 24)), - (B |= - (255 & ((g << 8) | (I >>> 24))) | - (65280 & ((g << 24) | (I >>> 8)))), - (I = - (-16777216 & (((255 & g) << 24) | (I >>> 8))) | - (16711680 & (((16777215 & g) << 8) | (I >>> 24))) | - ((g >>> 8) & 65280) | - (g >>> 24) | - 0), - (C[0 | A] = I), - (C[(A + 1) | 0] = I >>> 8), - (C[(A + 2) | 0] = I >>> 16), - (C[(A + 3) | 0] = I >>> 24), - (I = B), - (C[(A + 4) | 0] = I), - (C[(A + 5) | 0] = I >>> 8), - (C[(A + 6) | 0] = I >>> 16), - (C[(A + 7) | 0] = I >>> 24) - } - function UA(A, I, g) { - var B - ;(B = A), - g - ? ((i[(A + 48) >> 2] = - n[0 | g] | - (n[(g + 1) | 0] << 8) | - (n[(g + 2) | 0] << 16) | - (n[(g + 3) | 0] << 24)), - (g = - n[(g + 4) | 0] | - (n[(g + 5) | 0] << 8) | - (n[(g + 6) | 0] << 16) | - (n[(g + 7) | 0] << 24))) - : ((i[(A + 48) >> 2] = 0), (g = 0)), - (i[(B + 52) >> 2] = g), - (i[(A + 56) >> 2] = - n[0 | I] | - (n[(I + 1) | 0] << 8) | - (n[(I + 2) | 0] << 16) | - (n[(I + 3) | 0] << 24)), - (i[(A + 60) >> 2] = - n[(I + 4) | 0] | - (n[(I + 5) | 0] << 8) | - (n[(I + 6) | 0] << 16) | - (n[(I + 7) | 0] << 24)) - } - function SA(A, I) { - var g, B, Q, C, E, n, a, r, o - ;(g = i[(I + 8) >> 2]), - (B = i[(I + 12) >> 2]), - (Q = i[(I + 16) >> 2]), - (C = i[(I + 20) >> 2]), - (E = i[(I + 24) >> 2]), - (n = i[(I + 28) >> 2]), - (a = i[I >> 2]), - (r = i[(I + 4) >> 2]), - (o = i[(I + 36) >> 2]), - (i[(A + 32) >> 2] = i[(I + 32) >> 2]), - (i[(A + 36) >> 2] = o), - (i[(A + 24) >> 2] = E), - (i[(A + 28) >> 2] = n), - (i[(A + 16) >> 2] = Q), - (i[(A + 20) >> 2] = C), - (i[(A + 8) >> 2] = g), - (i[(A + 12) >> 2] = B), - (i[A >> 2] = a), - (i[(A + 4) >> 2] = r) - } - function NA(A, I, g, B, Q, C, E, a, r, o, e) { - var t - return ( - (h = t = (h - 48) | 0), - (i[(t + 8) >> 2] = 0), - (i[t >> 2] = 0), - (i[(t + 4) >> 2] = 0), - x((t + 16) | 0, o, e), - (e = - n[(o + 16) | 0] | - (n[(o + 17) | 0] << 8) | - (n[(o + 18) | 0] << 16) | - (n[(o + 19) | 0] << 24)), - (o = - n[(o + 20) | 0] | - (n[(o + 21) | 0] << 8) | - (n[(o + 22) | 0] << 16) | - (n[(o + 23) | 0] << 24)), - (i[(t + 4) >> 2] = e), - (i[(t + 8) >> 2] = o), - (function (A, I, g, B, Q, C, E, n, a, r, o) { - var e - ;(h = e = (h - 336) | 0), - rg((e + 16) | 0, 64, r, o), - lg((e + 80) | 0, (e + 16) | 0), - fI((e + 16) | 0, 64), - yg((e + 80) | 0, E, n, a), - yg((e + 80) | 0, 34704, (0 - n) & 15, 0), - SI(A, B, Q, C, r, 1, o), - yg((e + 80) | 0, A, Q, C), - yg((e + 80) | 0, 34704, (0 - Q) & 15, 0), - tI((e + 8) | 0, n, a), - yg((e + 80) | 0, (e + 8) | 0, 8, 0), - tI((e + 8) | 0, Q, C), - yg((e + 80) | 0, (e + 8) | 0, 8, 0), - Fg((e + 80) | 0, I), - fI((e + 80) | 0, 256), - g && ((i[g >> 2] = 16), (i[(g + 4) >> 2] = 0)), - (h = (e + 336) | 0) - })(A, I, g, B, Q, C, E, a, r, t, (t + 16) | 0), - fI((t + 16) | 0, 32), - (h = (t + 48) | 0), - 0 - ) - } - function MA(A, I, g, B, Q, C, E, a, r, o) { - var e - return ( - (h = e = (h - 48) | 0), - (i[(e + 8) >> 2] = 0), - (i[e >> 2] = 0), - (i[(e + 4) >> 2] = 0), - x((e + 16) | 0, r, o), - (o = - n[(r + 16) | 0] | - (n[(r + 17) | 0] << 8) | - (n[(r + 18) | 0] << 16) | - (n[(r + 19) | 0] << 24)), - (r = - n[(r + 20) | 0] | - (n[(r + 21) | 0] << 8) | - (n[(r + 22) | 0] << 16) | - (n[(r + 23) | 0] << 24)), - (i[(e + 4) >> 2] = o), - (i[(e + 8) >> 2] = r), - (A = (function (A, I, g, B, Q, C, E, i, n, a) { - var r - return ( - (h = r = (h - 352) | 0), - rg((r + 32) | 0, 64, n, a), - lg((r + 96) | 0, (r + 32) | 0), - fI((r + 32) | 0, 64), - yg((r + 96) | 0, C, E, i), - yg((r + 96) | 0, 34704, (0 - E) & 15, 0), - yg((r + 96) | 0, I, g, B), - yg((r + 96) | 0, 34704, (0 - g) & 15, 0), - tI((r + 24) | 0, E, i), - yg((r + 96) | 0, (r + 24) | 0, 8, 0), - tI((r + 24) | 0, g, B), - yg((r + 96) | 0, (r + 24) | 0, 8, 0), - Fg((r + 96) | 0, r), - fI((r + 96) | 0, 256), - (Q = kg(r, Q)), - fI(r, 16), - A && - (Q - ? (EA(A, 0, g), (Q = -1)) - : (SI(A, I, g, B, n, 1, a), (Q = 0))), - (h = (r + 352) | 0), - Q - ) - })(A, I, g, B, Q, C, E, a, e, (e + 16) | 0)), - fI((e + 16) | 0, 32), - (h = (e + 48) | 0), - A - ) - } - function dA(A) { - var I - return ( - (I = - n[0 | A] | - (n[(A + 1) | 0] << 8) | - (n[(A + 2) | 0] << 16) | - (n[(A + 3) | 0] << 24)), - (A = - n[(A + 4) | 0] | - (n[(A + 5) | 0] << 8) | - (n[(A + 6) | 0] << 16) | - (n[(A + 7) | 0] << 24)), - (p = - (65280 & ((A << 24) | (I >>> 8))) | - (255 & ((A << 8) | (I >>> 24))) | - ((I << 8) & 16711680) | - (I << 24)), - (-16777216 & (((255 & A) << 24) | (I >>> 8))) | - (16711680 & (((16777215 & A) << 8) | (I >>> 24))) | - ((A >>> 8) & 65280) | - (A >>> 24) | - 0 - ) - } - function PA(A, I, g, B, Q, C, E, n, a, r, o) { - var e - return ( - (h = e = (h - 336) | 0), - og((e + 16) | 0, r, o), - lg((e + 80) | 0, (e + 16) | 0), - fI((e + 16) | 0, 64), - yg((e + 80) | 0, E, n, a), - tI((e + 8) | 0, n, a), - yg((e + 80) | 0, (e + 8) | 0, 8, 0), - NI(A, B, Q, C, r, o), - yg((e + 80) | 0, A, Q, C), - tI((e + 8) | 0, Q, C), - yg((e + 80) | 0, (e + 8) | 0, 8, 0), - Fg((e + 80) | 0, I), - fI((e + 80) | 0, 256), - g && ((i[g >> 2] = 16), (i[(g + 4) >> 2] = 0)), - (h = (e + 336) | 0), - 0 - ) - } - function RA(A, I, g, B) { - var Q - if ( - ((h = Q = (h - 192) | 0), - !( - !g | - (((I - 1) & 255) >>> 0 >= 64) | - (((B - 1) & 255) >>> 0 >= 64) - )) - ) - return ( - (E[(Q + 130) >> 1] = 257), - (C[(Q + 129) | 0] = B), - (C[(Q + 128) | 0] = I), - WI((Q + 128) | 4), - tI((Q + 128) | 8, 0, 0), - EA((Q + 144) | 0, 0, 48), - hA(A, (Q + 128) | 0), - EA((B + Q) | 0, 0, (128 - B) | 0), - QA((I = A), (A = X(Q, g, B)), 128, 0), - fI(A, 128), - (h = (A + 192) | 0), - 0 - ) - OI(), e() - } - function JA(A, I, g) { - ;(i[(A + 48) >> 2] = g - ? n[0 | g] | - (n[(g + 1) | 0] << 8) | - (n[(g + 2) | 0] << 16) | - (n[(g + 3) | 0] << 24) - : 0), - (i[(A + 52) >> 2] = - n[0 | I] | - (n[(I + 1) | 0] << 8) | - (n[(I + 2) | 0] << 16) | - (n[(I + 3) | 0] << 24)), - (i[(A + 56) >> 2] = - n[(I + 4) | 0] | - (n[(I + 5) | 0] << 8) | - (n[(I + 6) | 0] << 16) | - (n[(I + 7) | 0] << 24)), - (i[(A + 60) >> 2] = - n[(I + 8) | 0] | - (n[(I + 9) | 0] << 8) | - (n[(I + 10) | 0] << 16) | - (n[(I + 11) | 0] << 24)) - } - function xA(A, I, g, B, Q, C, E) { - var n - return ( - (h = n = (h - 16) | 0), - (A = EA(A, 0, 128)), - E >>> 0 < 2147483649 && !(B | C) - ? E >>> 0 > 8191 && Q | C - ? (cI(n, 16), - (A = pA( - Q, - (E >>> 10) | 0, - 1, - I, - g, - n, - 16, - 0, - 32, - A, - 128, - 2 - ) - ? -1 - : 0)) - : ((i[8960] = 28), (A = -1)) - : ((i[8960] = 22), (A = -1)), - (h = (n + 16) | 0), - A - ) - } - function LA(A) { - var I = 0 - return ( - ((((0 - - (I = - ((A + 4) & - (((A + 65488) >>> 8) ^ -1) & - (((57 - A) >>> 8) ^ -1) & - 255) | - ((((I = (A - 65) | 0) >>> 8) ^ -1) & - I & - (((90 - A) >>> 8) ^ -1) & - 255) | - ((A + 185) & - (((A + 65439) >>> 8) ^ -1) & - (((122 - A) >>> 8) ^ -1) & - 255) | - (63 & (((1 + (16288 ^ A)) >>> 8) ^ -1)) | - (62 & (((1 + (16338 ^ A)) >>> 8) ^ -1)))) >>> - 8) ^ - -1) & - ((1 + (65470 ^ A)) >>> 8) & - 255) | - I - ) - } - function KA(A) { - var I = 0 - return ( - ((((0 - - (I = - ((A + 4) & - (((A + 65488) >>> 8) ^ -1) & - (((57 - A) >>> 8) ^ -1) & - 255) | - ((((I = (A - 65) | 0) >>> 8) ^ -1) & - I & - (((90 - A) >>> 8) ^ -1) & - 255) | - ((A + 185) & - (((A + 65439) >>> 8) ^ -1) & - (((122 - A) >>> 8) ^ -1) & - 255) | - (63 & (((1 + (16336 ^ A)) >>> 8) ^ -1)) | - (62 & (((1 + (16340 ^ A)) >>> 8) ^ -1)))) >>> - 8) ^ - -1) & - ((1 + (65470 ^ A)) >>> 8) & - 255) | - I - ) - } - function qA(A, I) { - var g, - B, - Q = 0, - E = 0, - i = 0, - n = 0 - for ( - h = g = (h - 16) | 0, Q = 10; - (n = Q), - (i = ((I >>> 0) / 10) | 0), - (C[ - 0 | (E = ((Q = (Q - 1) | 0) + ((g + 6) | 0)) | 0) - ] = (I - r(i, 10)) | 48), - !(I >>> 0 < 10) && ((I = i), Q); - - ); - ;(B = (X((I = A), E, (A = (11 - n) | 0)) + A) | 0), - (C[0 | B] = 0), - (h = (g + 16) | 0) - } - function XA(A, I, g) { - var B = 0, - Q = 0, - C = 0 - if (!g) return 0 - A: if ((B = n[0 | A])) { - for (;;) { - if ( - (0 | (Q = n[0 | I])) == (0 | B) && - !(!(g = (g - 1) | 0) | !Q) - ) { - if ( - ((I = (I + 1) | 0), - (B = n[(A + 1) | 0]), - (A = (A + 1) | 0), - B) - ) - continue - break A - } - break - } - C = B - } - return ((255 & C) - n[0 | I]) | 0 - } - function VA(A, I, g) { - var B, - Q, - C, - E = 0 - ;(h = Q = (h - 48) | 0), - sA(A, (E = (I + 40) | 0), I), - yA((B = (A + 40) | 0), E, I), - _((E = (A + 80) | 0), A, g), - _(B, B, (g + 40) | 0), - _((C = (A + 120) | 0), (g + 120) | 0, (I + 120) | 0), - _(A, (I + 80) | 0, (g + 80) | 0), - sA(Q, A, A), - yA(A, E, B), - sA(B, E, B), - sA(E, Q, C), - yA(C, Q, C), - (h = (Q + 48) | 0) - } - function WA(A, I, g) { - var B, - Q, - C, - E = 0 - ;(h = Q = (h - 48) | 0), - sA(A, (E = (I + 40) | 0), I), - yA((B = (A + 40) | 0), E, I), - _((E = (A + 80) | 0), A, (g + 40) | 0), - _(B, B, g), - _((C = (A + 120) | 0), (g + 120) | 0, (I + 120) | 0), - _(A, (I + 80) | 0, (g + 80) | 0), - sA(Q, A, A), - yA(A, E, B), - sA(B, E, B), - yA(E, Q, C), - sA(C, Q, C), - (h = (Q + 48) | 0) - } - function TA(A, I) { - for ( - var g = 0, B = 0, Q = 0, C = 0; - (Q = ((g = B << 3) + A) | 0), - (C = - n[0 | (g = (I + g) | 0)] | - (n[(g + 1) | 0] << 8) | - (n[(g + 2) | 0] << 16) | - (n[(g + 3) | 0] << 24)), - (g = - n[(g + 4) | 0] | - (n[(g + 5) | 0] << 8) | - (n[(g + 6) | 0] << 16) | - (n[(g + 7) | 0] << 24)), - (i[Q >> 2] = C), - (i[(Q + 4) >> 2] = g), - 128 != (0 | (B = (B + 1) | 0)); - - ); - } - function jA(A, I, g) { - var B - if ( - ((i[(12 + (B = (h - 16) | 0)) >> 2] = A), - (i[(B + 8) >> 2] = I), - (I = 0), - (i[(B + 4) >> 2] = 0), - (0 | g) >= 1) - ) - for ( - ; - (i[(B + 4) >> 2] = - i[(B + 4) >> 2] | - (n[(i[(B + 8) >> 2] + I) | 0] ^ - n[(i[(B + 12) >> 2] + I) | 0])), - (0 | g) != (0 | (I = (I + 1) | 0)); - - ); - return ((((i[(B + 4) >> 2] - 1) >>> 8) & 1) - 1) | 0 - } - function ZA(A, I, g) { - var B, - Q, - C, - E = 0 - ;(h = Q = (h - 48) | 0), - sA(A, (E = (I + 40) | 0), I), - yA((B = (A + 40) | 0), E, I), - _((E = (A + 80) | 0), A, (g + 40) | 0), - _(B, B, g), - _((C = (A + 120) | 0), (g + 80) | 0, (I + 120) | 0), - sA(Q, (I = (I + 80) | 0), I), - yA(A, E, B), - sA(B, E, B), - yA(E, Q, C), - sA(C, Q, C), - (h = (Q + 48) | 0) - } - function OA(A, I, g) { - var B, - Q, - C, - E = 0 - ;(h = Q = (h - 48) | 0), - sA(A, (E = (I + 40) | 0), I), - yA((B = (A + 40) | 0), E, I), - _((E = (A + 80) | 0), A, g), - _(B, B, (g + 40) | 0), - _((C = (A + 120) | 0), (g + 80) | 0, (I + 120) | 0), - sA(Q, (I = (I + 80) | 0), I), - yA(A, E, B), - sA(B, E, B), - sA(E, Q, C), - yA(C, Q, C), - (h = (Q + 48) | 0) - } - function zA(A, I, g) { - var B - if ( - ((i[(12 + (B = (h - 16) | 0)) >> 2] = A), - (i[(B + 8) >> 2] = I), - (I = 0), - (C[(B + 7) | 0] = 0), - g) - ) - for ( - ; - (C[(B + 7) | 0] = - n[(B + 7) | 0] | - (n[(i[(B + 8) >> 2] + I) | 0] ^ - n[(i[(B + 12) >> 2] + I) | 0])), - (0 | g) != (0 | (I = (I + 1) | 0)); - - ); - return ((((n[(B + 7) | 0] - 1) >>> 8) & 1) - 1) | 0 - } - function $A(A, I, g) { - var B, - Q = 0, - E = 0 - if ( - ((h = B = (h - 16) | 0), - (C[(B + 15) | 0] = 0), - (E = -1), - !(0 | Vg[i[8950]](A, I, g))) - ) { - for ( - ; - (C[(B + 15) | 0] = n[(A + Q) | 0] | n[(B + 15) | 0]), - 32 != (0 | (Q = (Q + 1) | 0)); - - ); - E = (0 - (((n[(B + 15) | 0] - 1) >>> 8) & 1)) | 0 - } - return (h = (B + 16) | 0), E - } - function AI(A, I) { - var g, B, Q, C, E - ;(h = B = (h - 48) | 0), - H(A, I), - H((g = (A + 80) | 0), (E = (I + 40) | 0)), - (function (A, I) { - var g, - B, - Q, - C, - E, - n, - a, - o, - e, - t, - f, - c, - y, - s, - w, - h, - D, - u, - l, - F, - G, - k, - _, - H, - Y, - b, - m, - v, - U, - S, - N, - M, - d, - P, - R, - J, - x, - L, - K = 0, - q = 0, - X = 0, - V = 0, - W = 0, - T = 0, - j = 0, - Z = 0, - O = 0, - z = 0, - $ = 0, - AA = 0, - IA = 0, - gA = 0, - BA = 0, - QA = 0, - CA = 0, - EA = 0, - iA = 0, - nA = 0 - ;(E = K = (W = i[(I + 12) >> 2]) << 1), - (n = K >> 31), - (a = K = (O = i[(I + 4) >> 2]) << 1), - (K = eg(E, n, K, (g = K >> 31))), - (X = p), - (q = K), - (k = K = gA = i[(I + 8) >> 2]), - (V = eg(K, (z = K >> 31), K, z)), - (K = (p + X) | 0), - (K = - (q = (q + V) | 0) >>> 0 < V >>> 0 - ? (K + 1) | 0 - : K), - (V = q), - (B = q = BA = i[(I + 16) >> 2]), - (o = q >> 31), - (e = q = (QA = i[I >> 2]) << 1), - (X = eg(B, o, q, (Q = q >> 31))), - (K = (p + K) | 0), - (K = - (q = (V + X) | 0) >>> 0 < X >>> 0 - ? (K + 1) | 0 - : K), - (j = q), - (X = i[(I + 28) >> 2]), - (l = q = r(X, 38)), - (U = X), - (V = eg(q, (h = q >> 31), X, (_ = X >> 31))), - (K = (p + K) | 0), - (K = - (q = (j + V) | 0) >>> 0 < V >>> 0 - ? (K + 1) | 0 - : K), - (T = q), - (j = i[(I + 32) >> 2]), - (Z = eg( - (f = q = r(j, 19)), - (c = q >> 31), - (q = (V = i[(I + 24) >> 2]) << 1), - q >> 31 - )), - (q = (p + K) | 0), - (q = - Z >>> 0 > ($ = (T + Z) | 0) >>> 0 - ? (q + 1) | 0 - : q), - (T = $), - (IA = i[(I + 36) >> 2]), - (t = K = r(IA, 38)), - (C = K >> 31), - (D = I = ($ = i[(I + 20) >> 2]) << 1), - (Z = eg(K, C, I, (s = I >> 31))), - (I = (p + q) | 0), - (H = (K = (T + Z) | 0) << 1), - (P = K = - ((K >>> 0 < Z >>> 0 ? (I + 1) | 0 : I) << 1) | - (K >>> 31)), - (S = I = (H + 33554432) | 0), - (R = K = I >>> 0 < 33554432 ? (K + 1) | 0 : K), - (I = K >> 26), - (K = ((67108863 & K) << 6) | (S >>> 26)), - (q = eg(a, g, B, o)), - (Z = p), - (T = K), - (u = K = gA << 1), - (CA = W), - (W = eg(K, (w = K >> 31), W, (Y = W >> 31))), - (K = (p + Z) | 0), - (K = - (q = (W + q) | 0) >>> 0 < W >>> 0 - ? (K + 1) | 0 - : K), - (gA = $), - (W = ((Z = eg($, (F = $ >> 31), e, Q)) + q) | 0), - (q = (p + K) | 0), - (q = W >>> 0 < Z >>> 0 ? (q + 1) | 0 : q), - (BA = W), - (N = K = X << 1), - (W = eg(f, c, K, (b = K >> 31))), - (K = (p + q) | 0), - (K = - (X = (BA + W) | 0) >>> 0 < W >>> 0 - ? (K + 1) | 0 - : K), - (q = X), - (W = V), - (X = eg(t, C, V, (y = V >> 31))), - (K = (p + K) | 0), - (K = - (q = (q + X) | 0) >>> 0 < X >>> 0 - ? (K + 1) | 0 - : K), - (X = q), - (I = (I + (q = (K << 1) | (q >>> 31))) | 0), - (EA = K = (T + (X <<= 1)) | 0), - (K = K >>> 0 < X >>> 0 ? (I + 1) | 0 : I), - (J = I = (EA + 16777216) | 0), - (I = - ((33554431 & - (K = I >>> 0 < 16777216 ? (K + 1) | 0 : K)) << - 7) | - (I >>> 25)), - (X = K >> 25), - (K = eg(E, n, CA, Y)), - (q = p), - (T = I), - (I = ((Z = eg(B, o, u, w)) + K) | 0), - (K = (p + q) | 0), - (K = I >>> 0 < Z >>> 0 ? (K + 1) | 0 : K), - (q = eg(a, g, D, s)), - (K = (p + K) | 0), - (K = - (I = (q + I) | 0) >>> 0 < q >>> 0 - ? (K + 1) | 0 - : K), - (q = ((Z = eg(e, Q, V, y)) + I) | 0), - (I = (p + K) | 0), - (I = q >>> 0 < Z >>> 0 ? (I + 1) | 0 : I), - (Z = j), - (j = eg(f, c, j, (G = j >> 31))), - (K = (p + I) | 0), - (K = - (q = (j + q) | 0) >>> 0 < j >>> 0 - ? (K + 1) | 0 - : K), - (I = ((j = eg(t, C, N, b)) + q) | 0), - (q = (p + K) | 0), - (I = - (((K = I) >>> 0 < j >>> 0 ? (q + 1) | 0 : q) << - 1) | - (K >>> 31)), - (j = K << 1), - (K = (I + X) | 0), - (K = - (q = (T + j) | 0) >>> 0 < j >>> 0 - ? (K + 1) | 0 - : K), - (iA = q = ((I = q) + 33554432) | 0), - (X = K = q >>> 0 < 33554432 ? (K + 1) | 0 : K), - (K = -67108864 & q), - (i[(A + 24) >> 2] = I - K), - (j = A), - (I = eg((I = r($, 38)), I >> 31, $, F)), - (K = p), - (T = I), - ($ = eg((I = QA), (q = I >> 31), I, q)), - (q = (p + K) | 0), - (q = - (I = (T + $) | 0) >>> 0 < $ >>> 0 - ? (q + 1) | 0 - : q), - (K = I), - (AA = I = r(V, 19)), - (m = I >> 31), - (M = I = B << 1), - (I = (K + (V = eg(AA, m, I, (v = I >> 31)))) | 0), - (K = (p + q) | 0), - (K = I >>> 0 < V >>> 0 ? (K + 1) | 0 : K), - (q = eg(E, n, l, h)), - (K = (p + K) | 0), - (K = - (I = (q + I) | 0) >>> 0 < q >>> 0 - ? (K + 1) | 0 - : K), - (q = ((V = eg(f, c, u, w)) + I) | 0), - (I = (p + K) | 0), - (I = q >>> 0 < V >>> 0 ? (I + 1) | 0 : I), - (V = eg(a, g, t, C)), - (K = (p + I) | 0), - (x = K = - (((I = q = (V + q) | 0) >>> 0 < V >>> 0 - ? (K + 1) | 0 - : K) << - 1) | - (I >>> 31)), - (QA = I = (33554432 + ($ = I << 1)) | 0), - (BA = q = I >>> 0 < 33554432 ? (K + 1) | 0 : K), - (I = ((67108863 & q) << 6) | (I >>> 26)), - (V = q >> 26), - (K = eg(AA, m, D, s)), - (q = p), - (nA = I), - (I = - ((O = eg(e, Q, (T = O), (d = T >> 31))) + K) | 0), - (K = (p + q) | 0), - (K = I >>> 0 < O >>> 0 ? (K + 1) | 0 : K), - (q = ((O = eg(B, o, l, h)) + I) | 0), - (I = (p + K) | 0), - (I = q >>> 0 < O >>> 0 ? (I + 1) | 0 : I), - (O = eg(f, c, E, n)), - (K = (p + I) | 0), - (K = - (q = (O + q) | 0) >>> 0 < O >>> 0 - ? (K + 1) | 0 - : K), - (I = ((O = eg(t, C, k, z)) + q) | 0), - (q = (p + K) | 0), - (I = - (((K = I) >>> 0 < O >>> 0 ? (q + 1) | 0 : q) << - 1) | - (K >>> 31)), - (O = K << 1), - (K = (I + V) | 0), - (K = - (q = (nA + O) | 0) >>> 0 < O >>> 0 - ? (K + 1) | 0 - : K), - (O = q), - (I = (q + 16777216) | 0) >>> 0 < 16777216 && - (K = (K + 1) | 0), - (nA = I), - (q = I), - (I = K >> 25), - (K = ((33554431 & K) << 7) | (q >>> 25)), - (V = I), - (I = eg(e, Q, k, z)), - (q = p), - (L = K), - (T = eg(a, g, T, d)), - (K = (p + q) | 0), - (K = - (I = (T + I) | 0) >>> 0 < T >>> 0 - ? (K + 1) | 0 - : K), - (T = eg(AA, m, W, y)), - (q = (p + K) | 0), - (q = - (I = (T + I) | 0) >>> 0 < T >>> 0 - ? (q + 1) | 0 - : q), - (T = eg(D, s, l, h)), - (K = (p + q) | 0), - (K = - (I = (T + I) | 0) >>> 0 < T >>> 0 - ? (K + 1) | 0 - : K), - (q = eg(f, c, M, v)), - (K = (p + K) | 0), - (K = - (I = (q + I) | 0) >>> 0 < q >>> 0 - ? (K + 1) | 0 - : K), - (q = ((T = eg(t, C, E, n)) + I) | 0), - (I = (p + K) | 0), - (K = - ((K = - ((I = q >>> 0 < T >>> 0 ? (I + 1) | 0 : I) << - 1) | - (q >>> 31)) + - V) | - 0), - (q = K = - (I = (L + (q <<= 1)) | 0) >>> 0 < q >>> 0 - ? (K + 1) | 0 - : K), - (T = K = (I + 33554432) | 0), - (V = q = K >>> 0 < 33554432 ? (q + 1) | 0 : q), - (K &= -67108864), - (i[(j + 8) >> 2] = I - K), - (I = eg(u, w, gA, F)), - (q = p), - (K = ((AA = eg(B, o, E, n)) + I) | 0), - (I = (p + q) | 0), - (I = K >>> 0 < AA >>> 0 ? (I + 1) | 0 : I), - (q = ((AA = eg(a, g, W, y)) + K) | 0), - (K = (p + I) | 0), - (K = q >>> 0 < AA >>> 0 ? (K + 1) | 0 : K), - (I = ((AA = eg(e, Q, U, _)) + q) | 0), - (q = (p + K) | 0), - (q = I >>> 0 < AA >>> 0 ? (q + 1) | 0 : q), - (AA = eg(t, C, Z, G)), - (K = (p + q) | 0), - (K = - ((K = - ((K = - (I = (AA + I) | 0) >>> 0 < AA >>> 0 - ? (K + 1) | 0 - : K) << - 1) | - (I >>> 31)) + - (q = X >> 26)) | - 0), - (q = I = - ((X = ((67108863 & X) << 6) | (iA >>> 26)) + - (I << 1)) | - 0), - (I = K = I >>> 0 < X >>> 0 ? (K + 1) | 0 : K), - (iA = K = (q + 16777216) | 0), - (X = I = K >>> 0 < 16777216 ? (I + 1) | 0 : I), - (I = -33554432 & K), - (i[(j + 28) >> 2] = q - I), - (I = eg(e, Q, CA, Y)), - (K = p), - (q = eg(a, g, k, z)), - (K = (p + K) | 0), - (K = - (I = (q + I) | 0) >>> 0 < q >>> 0 - ? (K + 1) | 0 - : K), - (q = eg(W, y, l, h)), - (K = (p + K) | 0), - (K = - (I = (q + I) | 0) >>> 0 < q >>> 0 - ? (K + 1) | 0 - : K), - (q = ((z = eg(f, c, D, s)) + I) | 0), - (I = (p + K) | 0), - (I = q >>> 0 < z >>> 0 ? (I + 1) | 0 : I), - (K = ((z = eg(t, C, B, o)) + q) | 0), - (q = (p + I) | 0), - (I = K), - (K = - ((K >>> 0 < z >>> 0 ? (q + 1) | 0 : q) << 1) | - (K >>> 31)), - (q = I << 1), - (K = ((I = V >> 26) + K) | 0), - (K = - (q = - (q + (V = ((67108863 & V) << 6) | (T >>> 26))) | - 0) >>> - 0 < - V >>> 0 - ? (K + 1) | 0 - : K), - (CA = q = ((I = q) + 16777216) | 0), - (V = K = q >>> 0 < 16777216 ? (K + 1) | 0 : K), - (K = -33554432 & q), - (i[(j + 12) >> 2] = I - K), - (z = A), - (I = eg(W, y, u, w)), - (K = p), - (q = eg(B, o, B, o)), - (K = (p + K) | 0), - (K = - (I = (q + I) | 0) >>> 0 < q >>> 0 - ? (K + 1) | 0 - : K), - (q = eg(E, n, D, s)), - (K = (p + K) | 0), - (K = - (I = (q + I) | 0) >>> 0 < q >>> 0 - ? (K + 1) | 0 - : K), - (q = eg(a, g, N, b)), - (K = (p + K) | 0), - (K = - (I = (q + I) | 0) >>> 0 < q >>> 0 - ? (K + 1) | 0 - : K), - (q = ((j = eg(e, Q, Z, G)) + I) | 0), - (I = (p + K) | 0), - (I = q >>> 0 < j >>> 0 ? (I + 1) | 0 : I), - (K = - ((IA = eg(t, C, (j = IA), (T = j >> 31))) + q) | - 0), - (q = (p + I) | 0), - (A = (I = K) << 1), - (K = - ((I = X >> 25) + - (K = - ((K >>> 0 < IA >>> 0 ? (q + 1) | 0 : q) << - 1) | - (K >>> 31))) | - 0), - (K = - (q = - (A + - (X = ((33554431 & X) << 7) | (iA >>> 25))) | - 0) >>> - 0 < - X >>> 0 - ? (K + 1) | 0 - : K), - (IA = q = ((I = q) + 33554432) | 0), - (X = K = q >>> 0 < 33554432 ? (K + 1) | 0 : K), - (K = -67108864 & q), - (i[(z + 32) >> 2] = I - K), - (K = V >> 25), - (q = - ((V = ((33554431 & V) << 7) | (CA >>> 25)) + - ((H - (I = -67108864 & S)) | 0)) | - 0), - (I = - (K + - ((P - (((I >>> 0 > H >>> 0) + R) | 0)) | 0)) | - 0), - (K = I = q >>> 0 < V >>> 0 ? (I + 1) | 0 : I), - (V = I = (q + 33554432) | 0), - (I = - ((((67108863 & - (K = I >>> 0 < 33554432 ? (K + 1) | 0 : K)) << - 6) | - (I >>> 26)) + - (EA = (EA - (-33554432 & J)) | 0)) | - 0), - (i[(z + 20) >> 2] = I), - (I = -67108864 & V), - (i[(z + 16) >> 2] = q - I), - (I = eg(E, n, W, y)), - (q = p), - (K = ((W = eg(gA, F, M, v)) + I) | 0), - (I = (p + q) | 0), - (I = K >>> 0 < W >>> 0 ? (I + 1) | 0 : I), - (q = ((W = eg(u, w, U, _)) + K) | 0), - (K = (p + I) | 0), - (K = q >>> 0 < W >>> 0 ? (K + 1) | 0 : K), - (I = ((W = eg(a, g, Z, G)) + q) | 0), - (q = (p + K) | 0), - (q = I >>> 0 < W >>> 0 ? (q + 1) | 0 : q), - (W = eg(e, Q, j, T)), - (K = (p + q) | 0), - (K = - ((K = - ((K = - (I = (W + I) | 0) >>> 0 < W >>> 0 - ? (K + 1) | 0 - : K) << - 1) | - (I >>> 31)) + - (q = X >> 26)) | - 0), - (K = - (I = - ((X = ((67108863 & X) << 6) | (IA >>> 26)) + - (I << 1)) | - 0) >>> - 0 < - X >>> 0 - ? (K + 1) | 0 - : K), - (q = I), - (X = I), - (I = K), - (I = - (K = (q + 16777216) | 0) >>> 0 < 16777216 - ? (I + 1) | 0 - : I), - (q = -33554432 & K), - (i[(z + 36) >> 2] = X - q), - (V = (O - (-33554432 & nA)) | 0), - (I = - ((K = eg( - ((33554431 & I) << 7) | (K >>> 25), - I >> 25, - 19, - 0 - )) + - (($ - (q = -67108864 & QA)) | 0)) | - 0), - (q = - (p + - ((x - (((q >>> 0 > $ >>> 0) + BA) | 0)) | 0)) | - 0), - (q = I >>> 0 < K >>> 0 ? (q + 1) | 0 : q), - (K = I), - (I = q), - (I = - ((((67108863 & - (I = - (q = (K + 33554432) | 0) >>> 0 < 33554432 - ? (I + 1) | 0 - : I)) << - 6) | - (q >>> 26)) + - V) | - 0), - (i[(z + 4) >> 2] = I), - (A = -67108864 & q), - (i[z >> 2] = K - A) - })((C = (A + 120) | 0), (I + 80) | 0), - sA((Q = (A + 40) | 0), I, E), - H(B, Q), - sA(Q, g, A), - yA(g, g, A), - yA(A, B, Q), - yA(C, C, g), - (h = (B + 48) | 0) - } - function II(A) { - var I, g - return ((A = ((I = i[8943]) + (g = (A + 3) & -4)) | 0) >>> - 0 <= - I >>> 0 && - (0 | g) >= 1) || - (A >>> 0 > (Wg() << 16) >>> 0 && !(0 | w(0 | A))) - ? ((i[8960] = 48), -1) - : ((i[8943] = A), I) - } - function gI(A, I) { - var g - return ( - (h = g = (h + -64) | 0), - ((I - 1) & 255) >>> 0 >= 64 && (OI(), e()), - (C[(g + 3) | 0] = 1), - (C[(g + 1) | 0] = 0), - (C[(g + 2) | 0] = 1), - (C[0 | g] = I), - WI(4 | g), - tI(8 | g, 0, 0), - EA((g + 16) | 0, 0, 48), - hA(A, g), - (h = (g - -64) | 0), - 0 - ) - } - function BI(A, I, g, B, Q, C, E) { - var i = 0, - n = 0 - ;(i = B), - (1 == - (((((i = - (n = (g + 63) | 0) >>> 0 < 63 ? (i + 1) | 0 : i) >>> - 6) | - 0) + - (0 != (0 | (i = ((63 & i) << 26) | (n >>> 6))))) | - 0)) & - ((n = (0 - i) | 0) >>> 0 < C >>> 0) && (OI(), e()), - SI(A, I, g, B, Q, C, E) - } - function QI(A, I) { - for ( - var g = 0, B = 0, Q = 0, C = 0; - (B = ((g = Q << 3) + A) | 0), - (C = i[(g = (I + g) | 0) >> 2]), - (g = i[(B + 4) >> 2] ^ i[(g + 4) >> 2]), - (i[B >> 2] = i[B >> 2] ^ C), - (i[(B + 4) >> 2] = g), - 128 != (0 | (Q = (Q + 1) | 0)); - - ); - } - function CI(A) { - var I, g - return ( - (95 & (((1 + (32704 ^ A)) >>> 8) ^ -1)) | - (45 & (((1 + (16321 ^ A)) >>> 8) ^ -1)) | - ((I = ((A + 65510) >>> 8) & 255) & (A + 65)) | - ((g = ((A + 65484) >>> 8) | 0) & (A + 71) & (255 ^ I)) | - ((A + 252) & ((A + 65474) >>> 8) & (-1 ^ g) & 255) - ) - } - function EI(A) { - var I, g - return ( - (47 & (((1 + (16320 ^ A)) >>> 8) ^ -1)) | - (43 & (((1 + (16321 ^ A)) >>> 8) ^ -1)) | - ((I = ((A + 65510) >>> 8) & 255) & (A + 65)) | - ((g = ((A + 65484) >>> 8) | 0) & (A + 71) & (255 ^ I)) | - ((A + 252) & ((A + 65474) >>> 8) & (-1 ^ g) & 255) - ) - } - function iI(A, I, g, B) { - var Q = 0 - Q = -1 - A: if (!((g >>> 0 > 64) | ((B - 1) >>> 0 > 63))) { - I: { - if (!g || !I) { - if (!gI(A, 255 & B)) break I - break A - } - if (RA(A, 255 & B, I, 255 & g)) break A - } - Q = 0 - } - return Q - } - function nI(A, I) { - var g, B, Q - ;(h = g = (h - 144) | 0), - j((g + 96) | 0, (I + 80) | 0), - _((g + 48) | 0, I, (g + 96) | 0), - _(g, (I + 40) | 0, (g + 96) | 0), - BA(A, g), - (B = A), - (Q = (KI((g + 48) | 0) << 7) ^ n[(A + 31) | 0]), - (C[(B + 31) | 0] = Q), - (h = (g + 144) | 0) - } - function aI(A, I) { - var g, - B = 0 - if (((C[(15 + (g = (h - 16) | 0)) | 0] = 0), I)) - for ( - ; - (C[(g + 15) | 0] = n[(A + B) | 0] | n[(g + 15) | 0]), - (0 | (B = (B + 1) | 0)) != (0 | I); - - ); - return ((n[(g + 15) | 0] - 1) >>> 8) & 1 - } - function rI(A, I, g, B) { - var Q - return ( - (B = (I + B) | 0), - (B = - (Q = (A + g) | 0) >>> 0 < g >>> 0 ? (B + 1) | 0 : B), - (g = eg( - (A << 1) & -2, - 1 & (I = (I << 1) | (A >>> 31)), - g, - 0 - )), - (A = (p + B) | 0), - (p = A = - (I = (g + Q) | 0) >>> 0 < g >>> 0 ? (A + 1) | 0 : A), - I - ) - } - function oI(A, I, g) { - var B, - Q = 0 - if ((B = (g >>> 3) | 0)) - for ( - g = 0; - vA( - ((Q = g << 3) + A) | 0, - i[(Q = (I + Q) | 0) >> 2], - i[(Q + 4) >> 2] - ), - (0 | B) != (0 | (g = (g + 1) | 0)); - - ); - } - function eI(A, I) { - var g = 0 - !(function (A, I) { - I && - ((I = i[A >> 2]) && - fI(i[(I + 4) >> 2], i[(A + 16) >> 2] << 10), - (I = i[(A + 4) >> 2]) && fI(I, i[(A + 20) >> 2] << 3)) - })(A, 4 & I), - m(i[(A + 4) >> 2]), - (i[(A + 4) >> 2] = 0), - (I = i[A >> 2]) && (g = i[I >> 2]) && m(g), - m(I), - (i[A >> 2] = 0) - } - function tI(A, I, g) { - ;(C[0 | A] = I), - (C[(A + 1) | 0] = I >>> 8), - (C[(A + 2) | 0] = I >>> 16), - (C[(A + 3) | 0] = I >>> 24), - (C[(A + 4) | 0] = g), - (C[(A + 5) | 0] = g >>> 8), - (C[(A + 6) | 0] = g >>> 16), - (C[(A + 7) | 0] = g >>> 24) - } - function fI(A, I) { - var g - if (((i[(12 + (g = (h - 16) | 0)) >> 2] = A), I)) - for ( - A = 0; - (C[(i[(g + 12) >> 2] + A) | 0] = 0), - (0 | I) != (0 | (A = (A + 1) | 0)); - - ); - } - function cI(A, I) { - A |= 0 - var g = 0, - B = 0, - Q = 0 - if ((I |= 0)) - for ( - ; - (B = (A + g) | 0), - (Q = YI()), - (C[0 | B] = Q), - (0 | (g = (g + 1) | 0)) != (0 | I); - - ); - } - function yI(A, I, g, B, Q) { - var C, E - return ( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (h = C = ((E = h) - 128) & -64), - IA(C, (Q |= 0)), - z(C, I, g, B), - Z(C, A), - (h = E), - 0 - ) - } - function sI(A) { - var I = 0, - g = 0, - B = 0 - for ( - I = 1; - (I = (n[0 | (B = (A + g) | 0)] + I) | 0), - (C[0 | B] = I), - (I = (I >>> 8) | 0), - 4 != (0 | (g = (g + 1) | 0)); - - ); - } - function wI(A, I, g, B, Q, C, E, i) { - var n, - a = 0 - return ( - (h = n = (h - 32) | 0), - (a = -1), - jI(n, E, i) || - ((a = Qg(A, I, g, B, Q, C, n)), fI(n, 32)), - (h = (n + 32) | 0), - a - ) - } - function hI(A, I, g, B, Q, C, E, i) { - var n, - a = 0 - return ( - (h = n = (h - 32) | 0), - (a = -1), - jI(n, E, i) || - ((a = Cg(A, I, g, B, Q, C, n)), fI(n, 32)), - (h = (n + 32) | 0), - a - ) - } - function DI(A, I) { - var g, B, Q - _(A, I, (g = (I + 120) | 0)), - _((A + 40) | 0, (B = (I + 40) | 0), (Q = (I + 80) | 0)), - _((A + 80) | 0, Q, g), - _((A + 120) | 0, I, B) - } - function uI(A, I, g, B, Q, C, E) { - return (!B & (g >>> 0 >= 16)) | B - ? hI( - A, - (I + 16) | 0, - I, - (g - 16) | 0, - (B - (g >>> 0 < 16)) | 0, - Q, - C, - E - ) - : -1 - } - function pI(A, I) { - for ( - var g = 0, B = 0; - (C[0 | (B = (A + g) | 0)] = n[0 | B] ^ n[(I + g) | 0]), - 8 != (0 | (g = (g + 1) | 0)); - - ); - } - function lI(A, I, g) { - var B, Q - ;(h = B = ((Q = h) - 384) & -64), - qI(B, 0, 0, 24), - sg(B, I, 32, 0), - sg(B, g, 32, 0), - TI(B, A, 24), - (h = Q) - } - function FI(A, I) { - var g - sA(A, (g = (I + 40) | 0), I), - yA((A + 40) | 0, g, I), - SA((A + 80) | 0, (I + 80) | 0), - _((A + 120) | 0, (I + 120) | 0, 2224) - } - function GI(A, I, g, B, Q, C, E) { - return ((I - 1) >>> 0 > 63) | (E >>> 0 > 64) - ? -1 - : (function (A, I, g, B, Q, C, E) { - var i, - n = 0 - if ( - ((i = n = h), - (h = n = (n - 384) & -64), - !( - !A | - (((B - 1) & 255) >>> 0 >= 64) | - (Q | C ? !I : 0) | - (E >>> 0 >= 65) | - (E ? !g : 0) - )) - ) - return ( - E ? RA(n, B, g, E) : gI(n, B), - QA(n, I, Q, C), - M(n, A, B), - (h = i), - 0 - ) - OI(), e() - })(A, g, C, 255 & I, B, Q, 255 & E) - } - function kI(A, I, g, B, Q, C, E) { - return ( - (!B & (g >>> 0 >= 4294967280)) | B && (OI(), e()), - wI((A + 16) | 0, A, I, g, B, Q, C, E) - ) - } - function _I(A, I) { - var g - _(A, I, (g = (I + 120) | 0)), - _((A + 40) | 0, (I + 40) | 0, (I = (I + 80) | 0)), - _((A + 80) | 0, I, g) - } - function HI(A) { - var I - return ( - (I = n[0 | A] | (n[(A + 1) | 0] << 8)), - (A = n[(A + 2) | 0]), - (p = (A >>> 16) | 0), - I | (A << 16) - ) - } - function YI() { - var A, I - return ( - (h = A = (h - 16) | 0), - (C[(A + 15) | 0] = 0), - (I = 0 | f(1024, (A + 15) | 0, 0)), - (h = (A + 16) | 0), - 0 | I - ) - } - function bI(A, I, g, B, Q) { - var E - return ( - (h = E = (h - 416) | 0), - (function (A, I) { - var g, - B = 0, - Q = 0 - for ( - h = g = (h - 192) | 0, - MI(A), - EA((g - -64) | 0, 54, 128), - C[(g + 64) | 0] = 54 ^ n[0 | I], - B = 1; - (C[0 | (Q = (((g - -64) | 0) + B) | 0)] = - n[0 | Q] ^ n[(I + B) | 0]), - 32 != (0 | (B = (B + 1) | 0)); - - ); - for ( - V(A, (g - -64) | 0, 128, 0), - MI((A = (A + 208) | 0)), - EA((g - -64) | 0, 92, 128), - C[(g + 64) | 0] = 92 ^ n[0 | I], - B = 1; - (C[0 | (Q = (((g - -64) | 0) + B) | 0)] = - n[0 | Q] ^ n[(I + B) | 0]), - 32 != (0 | (B = (B + 1) | 0)); - - ); - V(A, (g - -64) | 0, 128, 0), - fI((g - -64) | 0, 128), - fI(g, 64), - (h = (g + 192) | 0) - })(E, Q), - V(E, I, g, B), - (function (A, I) { - var g, - B = 0 - ;(h = g = (h + -64) | 0), - (function (A, I) { - var g - ;(h = g = (h + -64) | 0), - UI(A, g), - V((A = (A + 208) | 0), g, 64, 0), - UI(A, I), - fI(g, 64), - (h = (g - -64) | 0) - })(A, g), - (B = i[(g + 28) >> 2]), - (A = i[(g + 24) >> 2]), - (C[(I + 24) | 0] = A), - (C[(I + 25) | 0] = A >>> 8), - (C[(I + 26) | 0] = A >>> 16), - (C[(I + 27) | 0] = A >>> 24), - (C[(I + 28) | 0] = B), - (C[(I + 29) | 0] = B >>> 8), - (C[(I + 30) | 0] = B >>> 16), - (C[(I + 31) | 0] = B >>> 24), - (B = i[(g + 20) >> 2]), - (A = i[(g + 16) >> 2]), - (C[(I + 16) | 0] = A), - (C[(I + 17) | 0] = A >>> 8), - (C[(I + 18) | 0] = A >>> 16), - (C[(I + 19) | 0] = A >>> 24), - (C[(I + 20) | 0] = B), - (C[(I + 21) | 0] = B >>> 8), - (C[(I + 22) | 0] = B >>> 16), - (C[(I + 23) | 0] = B >>> 24), - (B = i[(g + 12) >> 2]), - (A = i[(g + 8) >> 2]), - (C[(I + 8) | 0] = A), - (C[(I + 9) | 0] = A >>> 8), - (C[(I + 10) | 0] = A >>> 16), - (C[(I + 11) | 0] = A >>> 24), - (C[(I + 12) | 0] = B), - (C[(I + 13) | 0] = B >>> 8), - (C[(I + 14) | 0] = B >>> 16), - (C[(I + 15) | 0] = B >>> 24), - (B = i[(g + 4) >> 2]), - (A = i[g >> 2]), - (C[0 | I] = A), - (C[(I + 1) | 0] = A >>> 8), - (C[(I + 2) | 0] = A >>> 16), - (C[(I + 3) | 0] = A >>> 24), - (C[(I + 4) | 0] = B), - (C[(I + 5) | 0] = B >>> 8), - (C[(I + 6) | 0] = B >>> 16), - (C[(I + 7) | 0] = B >>> 24), - (h = (g - -64) | 0) - })(E, A), - (h = (E + 416) | 0), - 0 - ) - } - function mI(A, I, g, B) { - var Q - return ( - (h = Q = (h - 208) | 0), - MI(Q), - V(Q, I, g, B), - UI(Q, A), - (h = (Q + 208) | 0), - 0 - ) - } - function vI(A, I) { - var g = 0 - return ( - (((-1 >>> (g = 31 & I)) & A) << g) | - (((g = A) & (-1 << (A = (0 - I) & 31))) >>> A) - ) - } - function UI(A, I) { - var g - ;(h = g = (h - 704) | 0), - (function (A, I) { - var g, - B = 0 - ;(g = (i[(A + 72) >> 2] >>> 3) & 127) >>> 0 <= 111 - ? X((80 + ((A + g) | 0)) | 0, 35424, (112 - g) | 0) - : (X( - ((B = (A + 80) | 0) + g) | 0, - 35424, - (128 - g) | 0 - ), - F(A, B, I, (I + 640) | 0), - EA(B, 0, 112)), - oI((A + 192) | 0, (A - -64) | 0, 16), - F(A, (A + 80) | 0, I, (I + 640) | 0) - })(A, g), - oI(I, A, 64), - fI(g, 704), - fI(A, 208), - (h = (g + 704) | 0) - } - function SI(A, I, g, B, Q, C, E) { - ;(1 == (0 | B)) | (B >>> 0 > 1) && (OI(), e()), - Vg[i[8957]](A, I, g, B, Q, C, E) - } - function NI(A, I, g, B, Q, C) { - ;(1 == (0 | B)) | (B >>> 0 > 1) && (OI(), e()), - Vg[i[8956]](A, I, g, B, Q, 1, 0, C) - } - function MI(A) { - ;(i[(A + 64) >> 2] = 0), - (i[(A + 68) >> 2] = 0), - (i[(A + 72) >> 2] = 0), - (i[(A + 76) >> 2] = 0), - X(A, 34720, 64) - } - function dI(A, I, g) { - return ( - g >>> 0 >= 256 && (t(2016, 2036, 107, 2089), e()), - M(A, I, 255 & g) - ) - } - function PI() { - var A - ;(h = A = (h - 16) | 0), - (C[(A + 15) | 0] = 0), - f(1062, (A + 15) | 0, 0), - (h = (A + 16) | 0) - } - function RI(A) { - var I - return ( - (h = I = (h - 32) | 0), - BA(I, A), - (A = aI(I, 32)), - (h = (I + 32) | 0), - A - ) - } - function JI(A, I) { - var g - ;(h = g = (h - 128) | 0), - (function (A, I) { - SA(A, I), - SA((A + 40) | 0, (I + 40) | 0), - SA((A + 80) | 0, (I + 80) | 0) - })((g + 8) | 0, I), - AI(A, (g + 8) | 0), - (h = (g + 128) | 0) - } - function xI(A, I) { - ;(C[0 | A] = I), - (C[(A + 1) | 0] = I >>> 8), - (C[(A + 2) | 0] = I >>> 16), - (C[(A + 3) | 0] = I >>> 24) - } - function LI(A, I, g) { - eA(A, I, g), - eA((A + 40) | 0, (I + 40) | 0, g), - eA((A + 80) | 0, (I + 80) | 0, g) - } - function KI(A) { - var I - return ( - (h = I = (h - 32) | 0), - BA(I, A), - (h = (I + 32) | 0), - 1 & C[0 | I] - ) - } - function qI(A, I, g, B) { - return 0 | iI((A |= 0), (I |= 0), (g |= 0), (B |= 0)) - } - function XI(A) { - ;(C[(A + 32) | 0] = 1), - (C[(A + 33) | 0] = 0), - (C[(A + 34) | 0] = 0), - (C[(A + 35) | 0] = 0) - } - function VI(A) { - ;(i[A >> 2] = 0), - (i[(A + 4) >> 2] = 0), - (i[(A + 8) >> 2] = 0), - (i[(A + 12) >> 2] = 0) - } - function WI(A) { - ;(C[0 | A] = 0), - (C[(A + 1) | 0] = 0), - (C[(A + 2) | 0] = 0), - (C[(A + 3) | 0] = 0) - } - function TI(A, I, g) { - return 0 | dI((A |= 0), (I |= 0), (g |= 0)) - } - function jI(A, I, g) { - return ( - 0 | - (function (A, I, g) { - var B, - Q = 0 - return ( - (h = B = (h - 32) | 0), - (Q = -1), - $A(B, g, I) || (Q = K(A, 35552, B)), - (h = (B + 32) | 0), - Q - ) - })((A |= 0), (I |= 0), (g |= 0)) - ) - } - function ZI(A, I, g) { - return 0 | $A((A |= 0), (I |= 0), (g |= 0)) - } - function OI() { - var A - ;(A = i[9105]) && Vg[0 | A](), c(), e() - } - function zI(A) { - Ug(A), - wg((A + 40) | 0), - wg((A + 80) | 0), - Ug((A + 120) | 0) - } - function $I(A, I, g, B, Q, C) { - Vg[i[8953]](A, I, g, B, Q, 0, 0, C) - } - function Ag(A, I, g, B, Q, C) { - Vg[i[8953]](A, I, g, B, Q, 1, 0, C) - } - function Ig(A, I) { - return (A |= 0), cI((I |= 0), 32), 0 | cg(A, I) - } - function gg(A, I) { - return ( - (A = (function (A, I) { - var g = 0, - B = 0 - A: { - if ((B = 255 & I)) { - if (3 & A) - for (;;) { - if (!(g = n[0 | A]) | ((0 | g) == (255 & I))) - break A - if (!(3 & (A = (A + 1) | 0))) break - } - I: if ( - !( - (-1 ^ (g = i[A >> 2])) & - (g - 16843009) & - -2139062144 - ) - ) - for (B = r(B, 16843009); ; ) { - if ( - (-1 ^ (g ^= B)) & - (g - 16843009) & - -2139062144 - ) - break I - if ( - ((g = i[(A + 4) >> 2]), - (A = (A + 4) | 0), - (g - 16843009) & (-1 ^ g) & -2139062144) - ) - break - } - for ( - ; - (B = n[0 | (g = A)]) && - ((A = (g + 1) | 0), (0 | B) != (255 & I)); - - ); - return g - } - return (YA(A) + A) | 0 - } - return A - })(A, I)), - n[0 | A] == (255 & I) ? A : 0 - ) - } - function Bg(A, I, g, B, Q, C) { - return q(A, I, g, B, Q, C, 0), 0 - } - function Qg(A, I, g, B, Q, C, E) { - return nA(A, I, g, B, Q, C, E) - } - function Cg(A, I, g, B, Q, C, E) { - return rA(A, I, g, B, Q, C, E) - } - function Eg(A, I, g, B, Q, C, E) { - return GI(A, I, g, B, Q, C, E) - } - function ig(A, I) { - MI(A), I && V(A, 35728, 34, 0) - } - function ng(A, I, g, B, Q) { - return lA(A, I, g, B, Q, 0) - } - function ag(A, I) { - return 0 | cg((A |= 0), (I |= 0)) - } - function rg(A, I, g, B) { - Vg[i[8955]](A, I, 0, g, B) - } - function og(A, I, g) { - Vg[i[8954]](A, 64, 0, I, g) - } - function eg(A, I, g, B) { - return (function (A, I, g, B) { - var Q, - C, - E, - i, - n = 0, - a = 0 - return ( - (i = r((n = (g >>> 16) | 0), (a = (A >>> 16) | 0))), - (n = - ((65535 & - (a = - ((((E = r((Q = 65535 & g), (C = 65535 & A))) >>> - 16) | - 0) + - r(a, Q)) | - 0)) + - r(n, C)) | - 0), - (A = - (((r(I, g) + i) | 0) + - r(A, B) + - (a >>> 16) + - (n >>> 16)) | - 0), - (p = A), - (65535 & E) | (n << 16) - ) - })(A, I, g, B) - } - function tg(A, I) { - return (((255 & (A ^ I)) - 1) >>> 31) | 0 - } - function fg(A, I, g) { - !(function (A, I, g) { - var B, Q - ;(h = B = (h - 128) | 0), - wg(A), - wg((A + 40) | 0), - Ug((A + 80) | 0), - LI( - A, - I, - tg( - (g = - ((g - - (((0 - (Q = ((128 & g) >>> 7) | 0)) & g) << - 1)) << - 24) >> - 24), - 1 - ) - ), - LI(A, (I + 120) | 0, tg(g, 2)), - LI(A, (I + 240) | 0, tg(g, 3)), - LI(A, (I + 360) | 0, tg(g, 4)), - LI(A, (I + 480) | 0, tg(g, 5)), - LI(A, (I + 600) | 0, tg(g, 6)), - LI(A, (I + 720) | 0, tg(g, 7)), - LI(A, (I + 840) | 0, tg(g, 8)), - SA((B + 8) | 0, (A + 40) | 0), - SA((B + 48) | 0, A), - mA((B + 88) | 0, (A + 80) | 0), - LI(A, (B + 8) | 0, Q), - (h = (B + 128) | 0) - })(A, (r(I, 960) + 3488) | 0, g) - } - function cg(A, I) { - return 0 | Vg[i[8951]](A, I) - } - function yg(A, I, g, B) { - Vg[i[8948]](A, I, g, B) - } - function sg(A, I, g, B) { - return hg(A, I, g, B) - } - function wg(A) { - ;(i[A >> 2] = 1), EA((A + 4) | 0, 0, 36) - } - function hg(A, I, g, B) { - return QA(A, I, g, B) - } - function Dg(A, I, g) { - return (function (A, I, g) { - var B = 0, - Q = 0, - C = 0, - E = 0 - return ( - (B = 31 & (C = E = 63 & g)), - C >>> 0 >= 32 - ? (B = (-1 >>> B) | 0) - : ((Q = (-1 >>> B) | 0), - (B = (((1 << B) - 1) << (32 - B)) | (-1 >>> B))), - (C = B & A), - (B = I & Q), - (Q = 31 & E), - E >>> 0 >= 32 - ? ((B = C << Q), (E = 0)) - : ((B = - (((1 << Q) - 1) & (C >>> (32 - Q))) | (B << Q)), - (E = C << Q)), - (C = B), - (g = 31 & (B = Q = (0 - g) & 63)), - B >>> 0 >= 32 - ? ((B = -1 << g), (g = 0)) - : ((B = - (((1 << g) - 1) & (-1 >>> (32 - g))) | - (-1 << g)), - (g = -1 << g)), - (A &= g), - (B &= I), - (I = 31 & Q), - Q >>> 0 >= 32 - ? ((g = 0), (A = (B >>> I) | 0)) - : ((g = (B >>> I) | 0), - (A = - ((((1 << I) - 1) & B) << (32 - I)) | - (A >>> I))), - (p = g | C), - A | E - ) - })(A, I, g) - } - function ug(A, I, g) { - return (function (A, I, g) { - var B = 0, - Q = 0, - C = 0, - E = 0, - i = 0 - return ( - (B = 31 & (E = 63 & g)), - E >>> 0 >= 32 - ? ((Q = -1 << B), (i = 0)) - : ((Q = - (((1 << B) - 1) & (-1 >>> (32 - B))) | - (-1 << B)), - (i = -1 << B)), - (i &= A), - (B = I & Q), - (C = 31 & E), - E >>> 0 >= 32 - ? ((Q = 0), (E = (B >>> C) | 0)) - : ((Q = (B >>> C) | 0), - (E = - ((((1 << C) - 1) & B) << (32 - C)) | - (i >>> C))), - (i = Q), - (C = 31 & (B = (0 - g) & 63)), - B >>> 0 >= 32 - ? ((Q = 0), (g = (-1 >>> C) | 0)) - : ((Q = (-1 >>> C) | 0), - (g = (((1 << C) - 1) << (32 - C)) | (-1 >>> C))), - (A &= g), - (I &= Q), - (Q = 31 & B), - B >>> 0 >= 32 - ? ((g = A << Q), (A = 0)) - : ((g = - (((1 << Q) - 1) & (A >>> (32 - Q))) | (I << Q)), - (A <<= Q)), - (p = g | i), - A | E - ) - })(A, I, g) - } - function pg(A) { - 1 != (-7 & A) && (OI(), e()) - } - function lg(A, I) { - Vg[i[8947]](A, I) - } - function Fg(A, I) { - Vg[i[8949]](A, I) - } - function Gg(A, I) { - return jA(A, I, 32) - } - function kg(A, I) { - return jA(A, I, 16) - } - function _g(A, I, g, B) { - rg(A, I, g, B) - } - function Hg(A, I) { - return vI(A, I) - } - function Yg(A, I) { - X(A, I, 1024) - } - function bg(A) { - cI((A |= 0), 32) - } - function mg(A, I, g) { - !(function (A, I, g) { - var B, - Q, - C, - E, - i, - a, - r, - o, - e, - t, - f, - c, - y = 0, - s = 0, - w = 0, - h = 0, - D = 0, - u = 0, - p = 0, - l = 0, - F = 0, - G = 0, - k = 0, - _ = 0, - H = 0, - Y = 0, - b = 0, - m = 0, - v = 0, - U = 0, - S = 0, - N = 0, - M = 0 - for ( - B = - n[0 | g] | - (n[(g + 1) | 0] << 8) | - (n[(g + 2) | 0] << 16) | - (n[(g + 3) | 0] << 24), - Q = - n[(g + 4) | 0] | - (n[(g + 5) | 0] << 8) | - (n[(g + 6) | 0] << 16) | - (n[(g + 7) | 0] << 24), - C = - n[(g + 8) | 0] | - (n[(g + 9) | 0] << 8) | - (n[(g + 10) | 0] << 16) | - (n[(g + 11) | 0] << 24), - E = - n[(g + 12) | 0] | - (n[(g + 13) | 0] << 8) | - (n[(g + 14) | 0] << 16) | - (n[(g + 15) | 0] << 24), - i = - n[(g + 16) | 0] | - (n[(g + 17) | 0] << 8) | - (n[(g + 18) | 0] << 16) | - (n[(g + 19) | 0] << 24), - a = - n[(g + 20) | 0] | - (n[(g + 21) | 0] << 8) | - (n[(g + 22) | 0] << 16) | - (n[(g + 23) | 0] << 24), - r = - n[(g + 24) | 0] | - (n[(g + 25) | 0] << 8) | - (n[(g + 26) | 0] << 16) | - (n[(g + 27) | 0] << 24), - o = - n[(g + 28) | 0] | - (n[(g + 29) | 0] << 8) | - (n[(g + 30) | 0] << 16) | - (n[(g + 31) | 0] << 24), - g = 1634760805, - h = B, - D = Q, - b = C, - u = E, - H = 857760878, - p = e = - n[0 | I] | - (n[(I + 1) | 0] << 8) | - (n[(I + 2) | 0] << 16) | - (n[(I + 3) | 0] << 24), - l = t = - n[(I + 4) | 0] | - (n[(I + 5) | 0] << 8) | - (n[(I + 6) | 0] << 16) | - (n[(I + 7) | 0] << 24), - F = f = - n[(I + 8) | 0] | - (n[(I + 9) | 0] << 8) | - (n[(I + 10) | 0] << 16) | - (n[(I + 11) | 0] << 24), - _ = c = - n[(I + 12) | 0] | - (n[(I + 13) | 0] << 8) | - (n[(I + 14) | 0] << 16) | - (n[(I + 15) | 0] << 24), - I = 2036477234, - s = i, - G = 1797285236, - k = o, - w = r, - y = a; - (u = Hg((g + y) | 0, 7) ^ u), - (F = Hg((u + g) | 0, 9) ^ F), - (m = Hg((F + u) | 0, 13) ^ y), - (S = Hg((F + m) | 0, 18)), - (y = Hg((h + H) | 0, 7) ^ _), - (Y = Hg((y + H) | 0, 9) ^ w), - (h = Hg((y + Y) | 0, 13) ^ h), - (_ = Hg((Y + h) | 0, 18)), - (k = Hg((I + p) | 0, 7) ^ k), - (D = Hg((k + I) | 0, 9) ^ D), - (p = Hg((D + k) | 0, 13) ^ p), - (N = Hg((D + p) | 0, 18)), - (w = Hg((s + G) | 0, 7) ^ b), - (l = Hg((w + G) | 0, 9) ^ l), - (v = Hg((l + w) | 0, 13) ^ s), - (M = Hg((l + v) | 0, 18)), - (h = Hg(((g ^= S) + w) | 0, 7) ^ h), - (D = Hg((h + g) | 0, 9) ^ D), - (b = Hg((h + D) | 0, 13) ^ w), - (g = Hg((D + b) | 0, 18) ^ g), - (p = Hg(((s = H ^ _) + u) | 0, 7) ^ p), - (l = Hg((p + s) | 0, 9) ^ l), - (u = Hg((l + p) | 0, 13) ^ u), - (H = Hg((l + u) | 0, 18) ^ s), - (s = Hg(((I ^= N) + y) | 0, 7) ^ v), - (F = Hg((s + I) | 0, 9) ^ F), - (_ = Hg((F + s) | 0, 13) ^ y), - (I = Hg((F + _) | 0, 18) ^ I), - (y = Hg(((G ^= M) + k) | 0, 7) ^ m), - (w = Hg((y + G) | 0, 9) ^ Y), - (k = Hg((y + w) | 0, 13) ^ k), - (G = Hg((w + k) | 0, 18) ^ G), - (Y = U >>> 0 < 18), - (U = (U + 2) | 0), - Y; - - ); - xI(A, (g + 1634760805) | 0), - xI((A + 4) | 0, (h + B) | 0), - xI((A + 8) | 0, (D + Q) | 0), - xI((A + 12) | 0, (b + C) | 0), - xI((A + 16) | 0, (u + E) | 0), - xI((A + 20) | 0, (H + 857760878) | 0), - xI((A + 24) | 0, (p + e) | 0), - xI((A + 28) | 0, (l + t) | 0), - xI((A + 32) | 0, (F + f) | 0), - xI((A + 36) | 0, (_ + c) | 0), - xI((A + 40) | 0, (I + 2036477234) | 0), - xI((A + 44) | 0, (s + i) | 0), - xI((A + 48) | 0, (y + a) | 0), - xI((A + 52) | 0, (w + r) | 0), - xI((A + 56) | 0, (k + o) | 0), - xI((A + 60) | 0, (G + 1797285236) | 0) - })(A, I, g) - } - function vg(A) { - EA(A, 0, 1024) - } - function Ug(A) { - EA(A, 0, 40) - } - function Sg() { - return 16 - } - function Ng() { - return 32 - } - function Mg() { - return 24 - } - function dg() { - return -17 - } - function Pg() { - return 64 - } - function Rg() { - return 1 - } - function Jg() { - return 2 - } - function xg() { - return 8 - } - function Lg() { - return 0 - } - function Kg() { - return -1 - } - function qg() { - return 3 - } - Q( - (I = n), - 1024, - 'InsgcmV0dXJuIE1vZHVsZS5nZXRSYW5kb21WYWx1ZSgpOyB9IgB7IGlmIChNb2R1bGUuZ2V0UmFuZG9tVmFsdWUgPT09IHVuZGVmaW5lZCkgeyB0cnkgeyB2YXIgd2luZG93XyA9ICdvYmplY3QnID09PSB0eXBlb2Ygd2luZG93ID8gd2luZG93IDogc2VsZjsgdmFyIGNyeXB0b18gPSB0eXBlb2Ygd2luZG93Xy5jcnlwdG8gIT09ICd1bmRlZmluZWQnID8gd2luZG93Xy5jcnlwdG8gOiB3aW5kb3dfLm1zQ3J5cHRvOyB2YXIgcmFuZG9tVmFsdWVzU3RhbmRhcmQgPSBmdW5jdGlvbigpIHsgdmFyIGJ1ZiA9IG5ldyBVaW50MzJBcnJheSgxKTsgY3J5cHRvXy5nZXRSYW5kb21WYWx1ZXMoYnVmKTsgcmV0dXJuIGJ1ZlswXSA+Pj4gMDsgfTsgcmFuZG9tVmFsdWVzU3RhbmRhcmQoKTsgTW9kdWxlLmdldFJhbmRvbVZhbHVlID0gcmFuZG9tVmFsdWVzU3RhbmRhcmQ7IH0gY2F0Y2ggKGUpIHsgdHJ5IHsgdmFyIGNyeXB0byA9IHJlcXVpcmUoJ2NyeXB0bycpOyB2YXIgcmFuZG9tVmFsdWVOb2RlSlMgPSBmdW5jdGlvbigpIHsgdmFyIGJ1ZiA9IGNyeXB0b1sncmFuZG9tQnl0ZXMnXSg0KTsgcmV0dXJuIChidWZbMF0gPDwgMjQgfCBidWZbMV0gPDwgMTYgfCBidWZbMl0gPDwgOCB8IGJ1ZlszXSkgPj4+IDA7IH07IHJhbmRvbVZhbHVlTm9kZUpTKCk7IE1vZHVsZS5nZXRSYW5kb21WYWx1ZSA9IHJhbmRvbVZhbHVlTm9kZUpTOyB9IGNhdGNoIChlKSB7IHRocm93ICdObyBzZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgZm91bmQnOyB9IH0gfSB9AExpYnNvZGl1bURSR2J1Zl9sZW4gPD0gU0laRV9NQVgAcmFuZG9tYnl0ZXMvcmFuZG9tYnl0ZXMuYwByYW5kb21ieXRlcwBTLT5idWZsZW4gPD0gQkxBS0UyQl9CTE9DS0JZVEVTAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9ibGFrZTJiLXJlZi5jAGJsYWtlMmJfZmluYWwAAAAAAAAAAAjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FtvdXRsZW4gPD0gVUlOVDhfTUFYAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9nZW5lcmljaGFzaF9ibGFrZTJiLmMAY3J5cHRvX2dlbmVyaWNoYXNoX2JsYWtlMmJfZmluYWwAAAAAAAAAtnhZ/4Vy0wC9bhX/DwpqACnAAQCY6Hn/vDyg/5lxzv8At+L+tA1I/wAAAAAAAAAAsKAO/tPJhv+eGI8Af2k1AGAMvQCn1/v/n0yA/mpl4f8e/AQAkgyu' - ), - Q( - I, - 2224, - 'WfGy/grlpv973Sr+HhTUAFKAAwAw0fMAd3lA/zLjnP8AbsUBZxuQ' - ), - Q( - I, - 2272, - 'hTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/' - ), - Q(I, 3264, 'AQ=='), - Q( - I, - 3296, - 'JuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ=' - ), - Q( - I, - 3487, - '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' - ), - Q(I, 34460, 'AQ=='), - Q(I, 34496, 'AQ=='), - Q( - I, - 34528, - '4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////fw==' - ), - Q( - I, - 34720, - 'CMm882fmCWo7p8qEha5nuyv4lP5y82488TYdXzr1T6XRguatf1IOUR9sPiuMaAWba71B+6vZgx95IX4TGc3gWyKuKNeYL4pCzWXvI5FEN3EvO03sz/vAtbzbiYGl27XpOLVI81vCVjkZ0AW28RHxWZtPGa+kgj+SGIFt2tVeHKtCAgOjmKoH2L5vcEUBW4MSjLLkTr6FMSTitP/Vw30MVW+Je/J0Xb5ysZYWO/6x3oA1Esclpwbcm5Qmac908ZvB0krxnsFpm+TjJU84hke+77XVjIvGncEPZZysd8yhDCR1AitZbyzpLYPkpm6qhHRK1PtBvdypsFy1UxGD2oj5dqvfZu5SUT6YEDK0LW3GMag/IfuYyCcDsOQO777Hf1m/wo+oPfML4MYlpwqTR5Gn1W+CA+BRY8oGcG4OCmcpKRT8L9JGhQq3JybJJlw4IRsu7SrEWvxtLE3fs5WdEw04U95jr4tUcwplqLJ3PLsKanbmru1HLsnCgTs1ghSFLHKSZAPxTKHov6IBMEK8S2YaqJGX+NBwi0vCML5UBqNRbMcYUu/WGeiS0RCpZVUkBpnWKiBxV4U1DvS40bsycKBqEMjQ0rgWwaQZU6tBUQhsNx6Z647fTHdIJ6hIm+G1vLA0Y1rJxbMMHDnLikHjSqrYTnPjY3dPypxbo7iy1vNvLmj8su9d7oKPdGAvF0NvY6V4cqvwoRR4yITsOWQaCALHjCgeYyP6/76Q6b2C3utsUKQVecay96P5vitTcuPyeHHGnGEm6s4+J8oHwsAhx7iG0R7r4M3WfdrqeNFu7n9PffW6bxdyqmfwBqaYyKLFfWMKrg35vgSYPxEbRxwTNQtxG4R9BCP1d9sokyTHQHuryjK8vskVCr6ePEwNEJzEZx1DtkI+y77UxUwqfmX8nCl/Wez61jqrb8tfF1hHSowZRGyA' - ), - Q( - I, - 35568, - 'YjY0X3BvcyA8PSBiNjRfbGVuAHNvZGl1bS9jb2RlY3MuYwBzb2RpdW1fYmluMmJhc2U2NAAkYXJnb24yaWQAJGFyZ29uMmkAJHY9ACRtPQAsdD0ALHA9ACRhcmdvbjJpZCR2PQAkYXJnb24yaSR2PQAkYXJnb24yaWQkACRhcmdvbjJpJA==' - ), - Q( - I, - 35728, - 'U2lnRWQyNTUxOSBubyBFZDI1NTE5IGNvbGxpc2lvbnMBADEuMC4xOA==' - ), - Q( - I, - 35772, - 'UI5QAABAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAAN' - ) - var Xg, - Vg = - (((Xg = [ - null, - yI, - function (A, I, g, B, Q) { - var C - return ( - (A |= 0), - (h = C = (h - 16) | 0), - yI(C, (I |= 0), (g |= 0), (B |= 0), (Q |= 0)), - (A = kg(A, C)), - (h = (C + 16) | 0), - 0 | A - ) - }, - function (A, I) { - return IA((A |= 0), (I |= 0)), 0 - }, - function (A, I, g, B) { - return z((A |= 0), (I |= 0), (g |= 0), (B |= 0)), 0 - }, - function (A, I) { - return Z((A |= 0), (I |= 0)), 0 - }, - function (A, I, g) { - ;(A |= 0), (I |= 0) - var B, - Q = 0, - E = 0 - if ( - ((h = B = (h - 336) | 0), - (Q = -1), - !(function (A) { - var I, - g = 0, - B = 0, - Q = 0, - E = 0 - for ( - C[(11 + (I = (h - 16) | 0)) | 0] = 0, - C[(I + 12) | 0] = 0, - C[(I + 13) | 0] = 0, - C[(I + 14) | 0] = 0, - i[(I + 8) >> 2] = 0; - ; - - ) { - for ( - Q = n[(A + B) | 0], g = 0; - (C[0 | (E = (((I + 8) | 0) + g) | 0)] = - n[0 | E] | - (Q ^ - n[(((34464 + (g << 5)) | 0) + B) | 0])), - 7 != (0 | (g = (g + 1) | 0)); - - ); - if (31 == (0 | (B = (B + 1) | 0))) break - } - for ( - B = 127 & n[(A + 31) | 0], A = 0, g = 0; - (C[0 | (Q = (((I + 8) | 0) + g) | 0)] = - n[0 | Q] | (B ^ n[(34495 + (g << 5)) | 0])), - 7 != (0 | (g = (g + 1) | 0)); - - ); - for ( - g = 0; - (g = (n[(((I + 8) | 0) + A) | 0] - 1) | g), - 7 != (0 | (A = (A + 1) | 0)); - - ); - return (g >>> 8) & 1 - })((g |= 0))) - ) { - for ( - Q = 0; - (C[(A + Q) | 0] = n[(I + Q) | 0]), - 32 != (0 | (Q = (Q + 1) | 0)); - - ); - for ( - C[0 | A] = 248 & n[0 | A], - C[(A + 31) | 0] = (63 & n[(A + 31) | 0]) | 64, - d((B + 288) | 0, g), - wg((B + 240) | 0), - Ug((B + 192) | 0), - SA((B + 144) | 0, (B + 288) | 0), - wg((B + 96) | 0), - g = 254, - I = 0; - (Q = I), - (E = g), - AA( - (B + 240) | 0, - (B + 144) | 0, - (Q ^= I = - (n[(((g >>> 3) | 0) + A) | 0] >>> - (7 & g)) & - 1) - ), - AA((B + 192) | 0, (B + 96) | 0, Q), - (g = (g - 1) | 0), - yA((B + 48) | 0, (B + 144) | 0, (B + 96) | 0), - yA(B, (B + 240) | 0, (B + 192) | 0), - sA( - (B + 240) | 0, - (B + 240) | 0, - (B + 192) | 0 - ), - sA( - (B + 192) | 0, - (B + 144) | 0, - (B + 96) | 0 - ), - _((B + 96) | 0, (B + 48) | 0, (B + 240) | 0), - _((B + 192) | 0, (B + 192) | 0, B), - H((B + 48) | 0, B), - H(B, (B + 240) | 0), - sA( - (B + 144) | 0, - (B + 96) | 0, - (B + 192) | 0 - ), - yA( - (B + 192) | 0, - (B + 96) | 0, - (B + 192) | 0 - ), - _((B + 240) | 0, B, (B + 48) | 0), - yA(B, B, (B + 48) | 0), - H((B + 192) | 0, (B + 192) | 0), - P((B + 96) | 0, B), - H((B + 144) | 0, (B + 144) | 0), - sA((B + 48) | 0, (B + 48) | 0, (B + 96) | 0), - _((B + 96) | 0, (B + 288) | 0, (B + 192) | 0), - _((B + 192) | 0, B, (B + 48) | 0), - E; - - ); - AA((B + 240) | 0, (B + 144) | 0, I), - AA((B + 192) | 0, (B + 96) | 0, I), - j((B + 192) | 0, (B + 192) | 0), - _((B + 240) | 0, (B + 240) | 0, (B + 192) | 0), - BA(A, (B + 240) | 0), - (Q = 0) - } - return (h = (B + 336) | 0), 0 | Q - }, - function (A, I) { - ;(A |= 0), (I |= 0) - var g, - B = 0 - for ( - h = g = (h - 208) | 0; - (C[(A + B) | 0] = n[(I + B) | 0]), - 32 != (0 | (B = (B + 1) | 0)); - - ); - return ( - (C[0 | A] = 248 & n[0 | A]), - (C[(A + 31) | 0] = (63 & n[(A + 31) | 0]) | 64), - CA((g + 48) | 0, A), - (function (A, I, g) { - var B - ;(h = B = (h - 96) | 0), - sA((B + 48) | 0, g, I), - yA(B, g, I), - j(B, B), - _(A, (B + 48) | 0, B), - (h = (B + 96) | 0) - })(g, (g + 88) | 0, (g + 128) | 0), - BA(A, g), - (h = (g + 208) | 0), - 0 - ) - }, - function (A, I, g, B, Q) { - ;(A |= 0), (B |= 0), (Q |= 0) - var E, - a = 0 - if ( - ((h = E = (h - 112) | 0), (I |= 0) | (g |= 0)) - ) { - ;(a = - n[(Q + 28) | 0] | - (n[(Q + 29) | 0] << 8) | - (n[(Q + 30) | 0] << 16) | - (n[(Q + 31) | 0] << 24)), - (i[(E + 24) >> 2] = - n[(Q + 24) | 0] | - (n[(Q + 25) | 0] << 8) | - (n[(Q + 26) | 0] << 16) | - (n[(Q + 27) | 0] << 24)), - (i[(E + 28) >> 2] = a), - (a = - n[(Q + 20) | 0] | - (n[(Q + 21) | 0] << 8) | - (n[(Q + 22) | 0] << 16) | - (n[(Q + 23) | 0] << 24)), - (i[(E + 16) >> 2] = - n[(Q + 16) | 0] | - (n[(Q + 17) | 0] << 8) | - (n[(Q + 18) | 0] << 16) | - (n[(Q + 19) | 0] << 24)), - (i[(E + 20) >> 2] = a), - (a = - n[(Q + 4) | 0] | - (n[(Q + 5) | 0] << 8) | - (n[(Q + 6) | 0] << 16) | - (n[(Q + 7) | 0] << 24)), - (i[E >> 2] = - n[0 | Q] | - (n[(Q + 1) | 0] << 8) | - (n[(Q + 2) | 0] << 16) | - (n[(Q + 3) | 0] << 24)), - (i[(E + 4) >> 2] = a), - (a = - n[(Q + 12) | 0] | - (n[(Q + 13) | 0] << 8) | - (n[(Q + 14) | 0] << 16) | - (n[(Q + 15) | 0] << 24)), - (i[(E + 8) >> 2] = - n[(Q + 8) | 0] | - (n[(Q + 9) | 0] << 8) | - (n[(Q + 10) | 0] << 16) | - (n[(Q + 11) | 0] << 24)), - (i[(E + 12) >> 2] = a), - (Q = - n[0 | B] | - (n[(B + 1) | 0] << 8) | - (n[(B + 2) | 0] << 16) | - (n[(B + 3) | 0] << 24)), - (B = - n[(B + 4) | 0] | - (n[(B + 5) | 0] << 8) | - (n[(B + 6) | 0] << 16) | - (n[(B + 7) | 0] << 24)), - (i[(E + 104) >> 2] = 0), - (i[(E + 108) >> 2] = 0), - (i[(E + 96) >> 2] = Q), - (i[(E + 100) >> 2] = B) - A: { - if ((!g & (I >>> 0 >= 64)) | g) { - for (;;) { - for ( - mg(A, (E + 96) | 0, E), Q = 8, B = 1; - (B = - (n[0 | (a = (((E + 96) | 0) + Q) | 0)] + - B) | - 0), - (C[0 | a] = B), - (B = (B >>> 8) | 0), - 16 != (0 | (Q = (Q + 1) | 0)); - - ); - if ( - ((A = (A - -64) | 0), - (g = (g - 1) | 0), - !( - (!(g = - (I = (I + -64) | 0) >>> 0 < 4294967232 - ? (g + 1) | 0 - : g) & - (I >>> 0 > 63)) | - g - )) - ) - break - } - if (!(I | g)) break A - } - for ( - Q = 0, mg((E + 32) | 0, (E + 96) | 0, E); - (C[(A + Q) | 0] = - n[(((E + 32) | 0) + Q) | 0]), - (0 | I) != (0 | (Q = (Q + 1) | 0)); - - ); - } - fI((E + 32) | 0, 64), fI(E, 32) - } - return (h = (E + 112) | 0), 0 - }, - function (A, I, g, B, Q, E, a, r) { - ;(A |= 0), - (I |= 0), - (Q |= 0), - (E |= 0), - (a |= 0), - (r |= 0) - var o, - e = 0, - t = 0 - if ( - ((h = o = (h - 112) | 0), (g |= 0) | (B |= 0)) - ) { - for ( - e = - n[(r + 28) | 0] | - (n[(r + 29) | 0] << 8) | - (n[(r + 30) | 0] << 16) | - (n[(r + 31) | 0] << 24), - i[(o + 24) >> 2] = - n[(r + 24) | 0] | - (n[(r + 25) | 0] << 8) | - (n[(r + 26) | 0] << 16) | - (n[(r + 27) | 0] << 24), - i[(o + 28) >> 2] = e, - e = - n[(r + 20) | 0] | - (n[(r + 21) | 0] << 8) | - (n[(r + 22) | 0] << 16) | - (n[(r + 23) | 0] << 24), - i[(o + 16) >> 2] = - n[(r + 16) | 0] | - (n[(r + 17) | 0] << 8) | - (n[(r + 18) | 0] << 16) | - (n[(r + 19) | 0] << 24), - i[(o + 20) >> 2] = e, - e = - n[(r + 4) | 0] | - (n[(r + 5) | 0] << 8) | - (n[(r + 6) | 0] << 16) | - (n[(r + 7) | 0] << 24), - i[o >> 2] = - n[0 | r] | - (n[(r + 1) | 0] << 8) | - (n[(r + 2) | 0] << 16) | - (n[(r + 3) | 0] << 24), - i[(o + 4) >> 2] = e, - e = 8, - t = - n[(r + 12) | 0] | - (n[(r + 13) | 0] << 8) | - (n[(r + 14) | 0] << 16) | - (n[(r + 15) | 0] << 24), - i[(o + 8) >> 2] = - n[(r + 8) | 0] | - (n[(r + 9) | 0] << 8) | - (n[(r + 10) | 0] << 16) | - (n[(r + 11) | 0] << 24), - i[(o + 12) >> 2] = t, - r = - n[(Q + 4) | 0] | - (n[(Q + 5) | 0] << 8) | - (n[(Q + 6) | 0] << 16) | - (n[(Q + 7) | 0] << 24), - i[(o + 96) >> 2] = - n[0 | Q] | - (n[(Q + 1) | 0] << 8) | - (n[(Q + 2) | 0] << 16) | - (n[(Q + 3) | 0] << 24), - i[(o + 100) >> 2] = r; - (C[(((o + 96) | 0) + e) | 0] = E), - (E = ((255 & a) << 24) | (E >>> 8)), - (a = (a >>> 8) | 0), - 16 != (0 | (e = (e + 1) | 0)); - - ); - if ((!B & (g >>> 0 > 63)) | B) - for (;;) { - for ( - e = 0, mg((o + 32) | 0, (o + 96) | 0, o); - (C[(A + e) | 0] = - n[(((o + 32) | 0) + e) | 0] ^ - n[(I + e) | 0]), - (r = 1), - 64 != (0 | (e = (e + 1) | 0)); - - ); - for ( - e = 8; - (Q = - (n[0 | (E = (((o + 96) | 0) + e) | 0)] + - r) | - 0), - (C[0 | E] = Q), - (r = (Q >>> 8) | 0), - 16 != (0 | (e = (e + 1) | 0)); - - ); - if ( - ((I = (I - -64) | 0), - (A = (A - -64) | 0), - (B = (B - 1) | 0), - !( - (!(B = - (g = (g + -64) | 0) >>> 0 < 4294967232 - ? (B + 1) | 0 - : B) & - (g >>> 0 > 63)) | - B - )) - ) - break - } - if (g | B) - for ( - e = 0, mg((o + 32) | 0, (o + 96) | 0, o); - (C[(A + e) | 0] = - n[(((o + 32) | 0) + e) | 0] ^ - n[(I + e) | 0]), - (0 | g) != (0 | (e = (e + 1) | 0)); - - ); - fI((o + 32) | 0, 64), fI(o, 32) - } - return (h = (o + 112) | 0), 0 - }, - function (A, I, g, B, Q) { - var C - return ( - (A |= 0), - (B |= 0), - (h = C = (h + -64) | 0), - (I |= 0) | (g |= 0) && - (aA(C, (Q |= 0)), - UA(C, B, 0), - U(C, (A = EA(A, 0, I)), A, I, g), - fI(C, 64)), - (h = (C - -64) | 0), - 0 - ) - }, - function (A, I, g, B, Q) { - var C - return ( - (A |= 0), - (B |= 0), - (h = C = (h + -64) | 0), - (I |= 0) | (g |= 0) && - (aA(C, (Q |= 0)), - JA(C, B, 0), - U(C, (A = EA(A, 0, I)), A, I, g), - fI(C, 64)), - (h = (C - -64) | 0), - 0 - ) - }, - function (A, I, g, B, Q, C, E, i) { - var n - return ( - (A |= 0), - (I |= 0), - (Q |= 0), - (E |= 0), - (i |= 0), - (h = n = (h - 80) | 0), - (g |= 0) | (B |= 0) && - (xI((n + 8) | 0, (C |= 0)), - xI((n + 12) | 0, E), - aA((n + 16) | 0, i), - UA((n + 16) | 0, Q, (n + 8) | 0), - U((n + 16) | 0, I, A, g, B), - fI((n + 16) | 0, 64)), - (h = (n + 80) | 0), - 0 - ) - }, - function (A, I, g, B, Q, C, E) { - var i - return ( - (A |= 0), - (I |= 0), - (Q |= 0), - (E |= 0), - (h = i = (h - 80) | 0), - (g |= 0) | (B |= 0) && - (xI((i + 12) | 0, (C |= 0)), - aA((i + 16) | 0, E), - JA((i + 16) | 0, Q, (i + 12) | 0), - U((i + 16) | 0, I, A, g, B), - fI((i + 16) | 0, 64)), - (h = (i + 80) | 0), - 0 - ) - } - ]).grow = function (A) { - var I = this.length - return (this.length = this.length + A), I - }), - (Xg.set = function (A, I) { - this[A] = I - }), - (Xg.get = function (A) { - return this[A] - }), - Xg) - function Wg() { - return (B.byteLength / 65536) | 0 - } - return { - h: Vg, - i: function () {}, - j: function (A, I, g, B, Q, C, E, i, n, a, r, o) { - return ( - 0 | - PA( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0), - (i |= 0), - (n |= 0), - (r |= 0), - (o |= 0) - ) - ) - }, - k: function (A, I, g, B, Q, C, E, n, a, r, o) { - return ( - 0 | - (function (A, I, g, B, Q, C, E, n, a, r) { - if (!Q & (B >>> 0 < 4294967280)) - return ( - PA(A, (A + B) | 0, 0, g, B, Q, C, E, n, a, r), - I && - ((Q = - (A = (B + 16) | 0) >>> 0 < 16 - ? (Q + 1) | 0 - : Q), - (i[I >> 2] = A), - (i[(I + 4) >> 2] = Q)), - 0 - ) - OI(), e() - })( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0), - (n |= 0), - (r |= 0), - (o |= 0) - ) - ) - }, - l: function (A, I, g, B, Q, C, E, i, n, a, r, o) { - return ( - 0 | - _A( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0), - (i |= 0), - (n |= 0), - (r |= 0), - (o |= 0) - ) - ) - }, - m: function (A, I, g, B, Q, C, E, n, a, r, o) { - return ( - 0 | - (function (A, I, g, B, Q, C, E, n, a, r) { - if (!Q & (B >>> 0 < 4294967280)) - return ( - _A(A, (A + B) | 0, 0, g, B, Q, C, E, n, a, r), - I && - ((Q = - (A = (B + 16) | 0) >>> 0 < 16 - ? (Q + 1) | 0 - : Q), - (i[I >> 2] = A), - (i[(I + 4) >> 2] = Q)), - 0 - ) - OI(), e() - })( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0), - (n |= 0), - (r |= 0), - (o |= 0) - ) - ) - }, - n: function (A, I, g, B, Q, C, E, i, n, a, r) { - return ( - 0 | - HA( - (A |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0), - (i |= 0), - (n |= 0), - (a |= 0), - (r |= 0) - ) - ) - }, - o: function (A, I, g, B, Q, C, E, n, a, r, o) { - return ( - 0 | - (function (A, I, g, B, Q, C, E, n, a, r) { - var o = 0 - return ( - (o = -1), - (!Q & (B >>> 0 >= 16)) | Q && - (o = HA( - A, - g, - (B - 16) | 0, - (Q - (B >>> 0 < 16)) | 0, - (((g + B) | 0) - 16) | 0, - C, - E, - n, - a, - r - )), - I && - ((i[I >> 2] = o ? 0 : (B - 16) | 0), - (i[(I + 4) >> 2] = o - ? 0 - : (Q - (B >>> 0 < 16)) | 0)), - o - ) - })( - (A |= 0), - (I |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0), - (n |= 0), - (a |= 0), - (r |= 0), - (o |= 0) - ) - ) - }, - p: function (A, I, g, B, Q, C, E, i, n, a, r) { - return ( - 0 | - GA( - (A |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0), - (i |= 0), - (n |= 0), - (a |= 0), - (r |= 0) - ) - ) - }, - q: function (A, I, g, B, Q, C, E, n, a, r, o) { - return ( - 0 | - (function (A, I, g, B, Q, C, E, n, a, r) { - var o = 0 - return ( - (o = -1), - (!Q & (B >>> 0 >= 16)) | Q && - (o = GA( - A, - g, - (B - 16) | 0, - (Q - (B >>> 0 < 16)) | 0, - (((g + B) | 0) - 16) | 0, - C, - E, - n, - a, - r - )), - I && - ((i[I >> 2] = o ? 0 : (B - 16) | 0), - (i[(I + 4) >> 2] = o - ? 0 - : (Q - (B >>> 0 < 16)) | 0)), - o - ) - })( - (A |= 0), - (I |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0), - (n |= 0), - (a |= 0), - (r |= 0), - (o |= 0) - ) - ) - }, - r: Ng, - s: function () { - return 12 - }, - t: Lg, - u: Sg, - v: dg, - w: bg, - x: Ng, - y: xg, - z: Lg, - A: Sg, - B: dg, - C: bg, - D: function (A, I, g, B, Q, C, E, i, n, a, r, o) { - return ( - 0 | - NA( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0), - (i |= 0), - (n |= 0), - (r |= 0), - (o |= 0) - ) - ) - }, - E: function (A, I, g, B, Q, C, E, n, a, r, o) { - return ( - 0 | - (function (A, I, g, B, Q, C, E, n, a, r) { - if (!Q & (B >>> 0 < 4294967280)) - return ( - NA(A, (A + B) | 0, 0, g, B, Q, C, E, n, a, r), - I && - ((Q = - (A = (B + 16) | 0) >>> 0 < 16 - ? (Q + 1) | 0 - : Q), - (i[I >> 2] = A), - (i[(I + 4) >> 2] = Q)), - 0 - ) - OI(), e() - })( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0), - (n |= 0), - (r |= 0), - (o |= 0) - ) - ) - }, - F: function (A, I, g, B, Q, C, E, i, n, a, r) { - return ( - 0 | - MA( - (A |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0), - (i |= 0), - (n |= 0), - (a |= 0), - (r |= 0) - ) - ) - }, - G: function (A, I, g, B, Q, C, E, n, a, r, o) { - return ( - 0 | - (function (A, I, g, B, Q, C, E, n, a, r) { - var o = 0 - return ( - (o = -1), - (!Q & (B >>> 0 >= 16)) | Q && - (o = MA( - A, - g, - (B - 16) | 0, - (Q - (B >>> 0 < 16)) | 0, - (((g + B) | 0) - 16) | 0, - C, - E, - n, - a, - r - )), - I && - ((i[I >> 2] = o ? 0 : (B - 16) | 0), - (i[(I + 4) >> 2] = o - ? 0 - : (Q - (B >>> 0 < 16)) | 0)), - o - ) - })( - (A |= 0), - (I |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0), - (n |= 0), - (a |= 0), - (r |= 0), - (o |= 0) - ) - ) - }, - H: Ng, - I: Mg, - J: Lg, - K: Sg, - L: dg, - M: bg, - N: Ng, - O: Ng, - P: function (A, I, g, B, Q) { - return ( - 0 | - bI((A |= 0), (I |= 0), (g |= 0), (B |= 0), (Q |= 0)) - ) - }, - Q: function (A, I, g, B, Q) { - return ( - 0 | - (function (A, I, g, B, Q) { - var C - return ( - (h = C = (h - 32) | 0), - bI(C, I, g, B, Q), - (I = Gg(A, C)), - (g = zA(C, A, 32)), - (h = (C + 32) | 0), - g | ((0 | A) == (0 | C) ? -1 : I) - ) - })((A |= 0), (I |= 0), (g |= 0), (B |= 0), (Q |= 0)) - ) - }, - R: bg, - S: Ng, - T: Ng, - U: Ng, - V: Ng, - W: Mg, - X: Sg, - Y: dg, - Z: function (A, I, g) { - return ( - 0 | - (function (A, I, g) { - var B, - Q = 0 - return ( - (h = B = (h + -64) | 0), - mI(B, g, 32, 0), - (g = i[(B + 28) >> 2]), - (Q = i[(B + 24) >> 2]), - (C[(I + 24) | 0] = Q), - (C[(I + 25) | 0] = Q >>> 8), - (C[(I + 26) | 0] = Q >>> 16), - (C[(I + 27) | 0] = Q >>> 24), - (C[(I + 28) | 0] = g), - (C[(I + 29) | 0] = g >>> 8), - (C[(I + 30) | 0] = g >>> 16), - (C[(I + 31) | 0] = g >>> 24), - (g = i[(B + 20) >> 2]), - (Q = i[(B + 16) >> 2]), - (C[(I + 16) | 0] = Q), - (C[(I + 17) | 0] = Q >>> 8), - (C[(I + 18) | 0] = Q >>> 16), - (C[(I + 19) | 0] = Q >>> 24), - (C[(I + 20) | 0] = g), - (C[(I + 21) | 0] = g >>> 8), - (C[(I + 22) | 0] = g >>> 16), - (C[(I + 23) | 0] = g >>> 24), - (g = i[(B + 12) >> 2]), - (Q = i[(B + 8) >> 2]), - (C[(I + 8) | 0] = Q), - (C[(I + 9) | 0] = Q >>> 8), - (C[(I + 10) | 0] = Q >>> 16), - (C[(I + 11) | 0] = Q >>> 24), - (C[(I + 12) | 0] = g), - (C[(I + 13) | 0] = g >>> 8), - (C[(I + 14) | 0] = g >>> 16), - (C[(I + 15) | 0] = g >>> 24), - (g = i[(B + 4) >> 2]), - (Q = i[B >> 2]), - (C[0 | I] = Q), - (C[(I + 1) | 0] = Q >>> 8), - (C[(I + 2) | 0] = Q >>> 16), - (C[(I + 3) | 0] = Q >>> 24), - (C[(I + 4) | 0] = g), - (C[(I + 5) | 0] = g >>> 8), - (C[(I + 6) | 0] = g >>> 16), - (C[(I + 7) | 0] = g >>> 24), - fI(B, 64), - (A = cg(A, I)), - (h = (B - -64) | 0), - A - ) - })((A |= 0), (I |= 0), (g |= 0)) - ) - }, - _: Ig, - $: jI, - aa: function (A, I, g, B, Q, C, E) { - return ( - 0 | - Qg( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0) - ) - ) - }, - ba: function (A, I, g, B, Q, C, E, i) { - return ( - 0 | - wI( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0), - (i |= 0) - ) - ) - }, - ca: function (A, I, g, B, Q, C) { - return ( - 0 | - (function (A, I, g, B, Q, C) { - return ( - (!B & (g >>> 0 >= 4294967280)) | B && (OI(), e()), - Qg((A + 16) | 0, A, I, g, B, Q, C) - ) - })( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0) - ) - ) - }, - da: function (A, I, g, B, Q, C, E) { - return ( - 0 | - kI( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0) - ) - ) - }, - ea: function (A, I, g, B, Q, C, E) { - return ( - 0 | - Cg( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0) - ) - ) - }, - fa: function (A, I, g, B, Q, C, E, i) { - return ( - 0 | - hI( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0), - (i |= 0) - ) - ) - }, - ga: function (A, I, g, B, Q, C) { - return ( - 0 | - (function (A, I, g, B, Q, C) { - return (!B & (g >>> 0 >= 16)) | B - ? Cg( - A, - (I + 16) | 0, - I, - (g - 16) | 0, - (B - (g >>> 0 < 16)) | 0, - Q, - C - ) - : -1 - })( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0) - ) - ) - }, - ha: function (A, I, g, B, Q, C, E) { - return ( - 0 | - uI( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0) - ) - ) - }, - ia: function (A, I, g, B, Q) { - return ( - 0 | - (function (A, I, g, B, Q) { - var E, - n = 0 - return ( - (h = E = (h - 96) | 0), - (n = -1), - Ig((E + 32) | 0, E) || - (lI((E - -64) | 0, (E + 32) | 0, Q), - (n = kI( - (A + 32) | 0, - I, - g, - B, - (E - -64) | 0, - Q, - E - )), - (I = i[(E + 60) >> 2]), - (g = i[(E + 56) >> 2]), - (C[(A + 24) | 0] = g), - (C[(A + 25) | 0] = g >>> 8), - (C[(A + 26) | 0] = g >>> 16), - (C[(A + 27) | 0] = g >>> 24), - (C[(A + 28) | 0] = I), - (C[(A + 29) | 0] = I >>> 8), - (C[(A + 30) | 0] = I >>> 16), - (C[(A + 31) | 0] = I >>> 24), - (I = i[(E + 52) >> 2]), - (g = i[(E + 48) >> 2]), - (C[(A + 16) | 0] = g), - (C[(A + 17) | 0] = g >>> 8), - (C[(A + 18) | 0] = g >>> 16), - (C[(A + 19) | 0] = g >>> 24), - (C[(A + 20) | 0] = I), - (C[(A + 21) | 0] = I >>> 8), - (C[(A + 22) | 0] = I >>> 16), - (C[(A + 23) | 0] = I >>> 24), - (I = i[(E + 44) >> 2]), - (g = i[(E + 40) >> 2]), - (C[(A + 8) | 0] = g), - (C[(A + 9) | 0] = g >>> 8), - (C[(A + 10) | 0] = g >>> 16), - (C[(A + 11) | 0] = g >>> 24), - (C[(A + 12) | 0] = I), - (C[(A + 13) | 0] = I >>> 8), - (C[(A + 14) | 0] = I >>> 16), - (C[(A + 15) | 0] = I >>> 24), - (I = i[(E + 36) >> 2]), - (g = i[(E + 32) >> 2]), - (C[0 | A] = g), - (C[(A + 1) | 0] = g >>> 8), - (C[(A + 2) | 0] = g >>> 16), - (C[(A + 3) | 0] = g >>> 24), - (C[(A + 4) | 0] = I), - (C[(A + 5) | 0] = I >>> 8), - (C[(A + 6) | 0] = I >>> 16), - (C[(A + 7) | 0] = I >>> 24), - fI(E, 32), - fI((E + 32) | 0, 32), - fI((E - -64) | 0, 24)), - (h = (E + 96) | 0), - n - ) - })((A |= 0), (I |= 0), (g |= 0), (B |= 0), (Q |= 0)) - ) - }, - ja: function (A, I, g, B, Q, C) { - return ( - 0 | - (function (A, I, g, B, Q, C) { - var E, - i = 0 - return ( - (h = E = (h - 32) | 0), - (i = -1), - (!B & (g >>> 0 >= 48)) | B && - (lI(E, I, Q), - (i = uI( - A, - (I + 32) | 0, - (g - 32) | 0, - (B - (g >>> 0 < 32)) | 0, - E, - I, - C - ))), - (h = (E + 32) | 0), - i - ) - })( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0) - ) - ) - }, - ka: function () { - return 48 - }, - la: Sg, - ma: Pg, - na: Ng, - oa: Sg, - pa: Pg, - qa: Ng, - ra: function () { - return 384 - }, - sa: function (A, I, g, B, Q, C, E) { - return ( - 0 | - Eg( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0) - ) - ) - }, - ta: qI, - ua: function (A, I, g, B) { - return 0 | sg((A |= 0), (I |= 0), (g |= 0), (B |= 0)) - }, - va: TI, - wa: bg, - xa: Pg, - ya: function (A, I, g, B) { - return 0 | mI((A |= 0), (I |= 0), (g |= 0), (B |= 0)) - }, - za: Sg, - Aa: Pg, - Ba: xg, - Ca: Ng, - Da: function (A, I, g, B, Q, a) { - return ( - 0 | - (function (A, I, g, B, Q, a) { - var r, o - return ( - (h = r = (h - 32) | 0), - (o = - n[0 | Q] | - (n[(Q + 1) | 0] << 8) | - (n[(Q + 2) | 0] << 16) | - (n[(Q + 3) | 0] << 24)), - (Q = - n[(Q + 4) | 0] | - (n[(Q + 5) | 0] << 8) | - (n[(Q + 6) | 0] << 16) | - (n[(Q + 7) | 0] << 24)), - (i[(r + 24) >> 2] = 0), - (i[(r + 28) >> 2] = 0), - (i[(r + 16) >> 2] = o), - (i[(r + 20) >> 2] = Q), - tI(r, g, B), - (i[(r + 8) >> 2] = 0), - (i[(r + 12) >> 2] = 0), - (I - 16) >>> 0 >= 49 - ? ((i[8960] = 28), (A = -1)) - : ((g = (r + 16) | 0), - (A = - (I - 1) >>> 0 > 63 - ? -1 - : (function (A, I, g, B, Q) { - var a, - r = 0 - if ( - ((a = r = h), - (h = r = (r - 384) & -64), - !( - !I | - !A | - (((g - 1) & 255) >>> 0 >= 64) - )) - ) - return ( - (function (A, I, g, B, Q) { - var a - if ( - ((h = a = (h - 192) | 0), - !( - !g | - (((I - 1) & 255) >>> 0 >= - 64) - )) - ) - return ( - (E[(a + 130) >> 1] = 257), - (C[(a + 129) | 0] = 32), - (C[(a + 128) | 0] = I), - WI((a + 128) | 4), - tI((a + 128) | 8, 0, 0), - (i[(a + 152) >> 2] = 0), - (i[(a + 156) >> 2] = 0), - (i[(a + 144) >> 2] = 0), - (i[(a + 148) >> 2] = 0), - B - ? (function (A, I) { - var g, - B = 0 - ;(B = - n[(I + 4) | 0] | - (n[(I + 5) | 0] << - 8) | - (n[(I + 6) | 0] << - 16) | - (n[(I + 7) | 0] << - 24)), - (g = - n[0 | I] | - (n[(I + 1) | 0] << - 8) | - (n[(I + 2) | 0] << - 16) | - (n[(I + 3) | 0] << - 24)), - (C[(A + 32) | 0] = - g), - (C[(A + 33) | 0] = - g >>> 8), - (C[(A + 34) | 0] = - g >>> 16), - (C[(A + 35) | 0] = - g >>> 24), - (C[(A + 36) | 0] = - B), - (C[(A + 37) | 0] = - B >>> 8), - (C[(A + 38) | 0] = - B >>> 16), - (C[(A + 39) | 0] = - B >>> 24), - (B = - n[(I + 12) | 0] | - (n[ - (I + 13) | 0 - ] << - 8) | - (n[ - (I + 14) | 0 - ] << - 16) | - (n[ - (I + 15) | 0 - ] << - 24)), - (I = - n[(I + 8) | 0] | - (n[(I + 9) | 0] << - 8) | - (n[ - (I + 10) | 0 - ] << - 16) | - (n[ - (I + 11) | 0 - ] << - 24)), - (C[(A + 40) | 0] = - I), - (C[(A + 41) | 0] = - I >>> 8), - (C[(A + 42) | 0] = - I >>> 16), - (C[(A + 43) | 0] = - I >>> 24), - (C[(A + 44) | 0] = - B), - (C[(A + 45) | 0] = - B >>> 8), - (C[(A + 46) | 0] = - B >>> 16), - (C[(A + 47) | 0] = - B >>> 24) - })((a + 128) | 0, B) - : ((i[ - (a + 168) >> 2 - ] = 0), - (i[(a + 172) >> 2] = 0), - (i[(a + 160) >> 2] = 0), - (i[ - (a + 164) >> 2 - ] = 0)), - Q - ? (function (A, I) { - var g, - B = 0 - ;(B = - n[(I + 4) | 0] | - (n[(I + 5) | 0] << - 8) | - (n[(I + 6) | 0] << - 16) | - (n[(I + 7) | 0] << - 24)), - (g = - n[0 | I] | - (n[(I + 1) | 0] << - 8) | - (n[(I + 2) | 0] << - 16) | - (n[(I + 3) | 0] << - 24)), - (C[(A + 48) | 0] = - g), - (C[(A + 49) | 0] = - g >>> 8), - (C[(A + 50) | 0] = - g >>> 16), - (C[(A + 51) | 0] = - g >>> 24), - (C[(A + 52) | 0] = - B), - (C[(A + 53) | 0] = - B >>> 8), - (C[(A + 54) | 0] = - B >>> 16), - (C[(A + 55) | 0] = - B >>> 24), - (B = - n[(I + 12) | 0] | - (n[ - (I + 13) | 0 - ] << - 8) | - (n[ - (I + 14) | 0 - ] << - 16) | - (n[ - (I + 15) | 0 - ] << - 24)), - (I = - n[(I + 8) | 0] | - (n[(I + 9) | 0] << - 8) | - (n[ - (I + 10) | 0 - ] << - 16) | - (n[ - (I + 11) | 0 - ] << - 24)), - (C[(A + 56) | 0] = - I), - (C[(A + 57) | 0] = - I >>> 8), - (C[(A + 58) | 0] = - I >>> 16), - (C[(A + 59) | 0] = - I >>> 24), - (C[(A + 60) | 0] = - B), - (C[(A + 61) | 0] = - B >>> 8), - (C[(A + 62) | 0] = - B >>> 16), - (C[(A + 63) | 0] = - B >>> 24) - })((a + 128) | 0, Q) - : ((i[ - (a + 184) >> 2 - ] = 0), - (i[(a + 188) >> 2] = 0), - (i[(a + 176) >> 2] = 0), - (i[ - (a + 180) >> 2 - ] = 0)), - hA(A, (a + 128) | 0), - EA((a + 32) | 0, 0, 96), - QA( - (I = A), - (A = X(a, g, 32)), - 128, - 0 - ), - fI(A, 128), - void (h = (A + 192) | 0) - ) - OI(), e() - })(r, g, I, B, Q), - QA(r, 0, 0, 0), - M(r, A, g), - (h = a), - 0 - ) - OI(), e() - })(A, a, 255 & I, r, g))), - (h = (r + 32) | 0), - A - ) - })( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (a |= 0) - ) - ) - }, - Ea: bg, - Fa: function (A, I, g) { - return ( - (A |= 0), - Eg((I |= 0), 32, (g |= 0), 32, 0, 0, 0), - 0 | ag(A, I) - ) - }, - Ga: function (A, I) { - return (A |= 0), cI((I |= 0), 32), 0 | ag(A, I) - }, - Ha: function (A, I, g, B, Q) { - ;(I |= 0), (g |= 0), (Q |= 0) - var E, - i, - a = 0 - if ( - ((i = a = h), - (h = a = (a - 512) & -64), - (E = (A |= 0) || I)) - ) { - if (((A = -1), !ZI((a + 96) | 0, (B |= 0), Q))) { - for ( - I = I || E, - A = 0, - qI((a + 128) | 0, 0, 0, 64), - sg((a + 128) | 0, (a + 96) | 0, 32, 0), - fI((a + 96) | 0, 32), - sg((a + 128) | 0, g, 32, 0), - sg((a + 128) | 0, Q, 32, 0), - TI((a + 128) | 0, (a + 32) | 0, 64), - fI((a + 128) | 0, 384); - (g = (((a + 32) | 0) + A) | 0), - (C[(A + E) | 0] = n[0 | g]), - (C[(A + I) | 0] = n[(g + 32) | 0]), - 32 != (0 | (A = (A + 1) | 0)); - - ); - fI((a + 32) | 0, 64), (A = 0) - } - return (h = i), 0 | A - } - OI(), e() - }, - Ia: function (A, I, g, B, Q) { - ;(I |= 0), (g |= 0), (Q |= 0) - var E, - i, - a = 0 - if ( - ((i = a = h), - (h = a = (a - 512) & -64), - (E = (A |= 0) || I)) - ) { - if (((A = -1), !ZI((a + 96) | 0, (B |= 0), Q))) { - for ( - I = I || E, - A = 0, - qI((a + 128) | 0, 0, 0, 64), - sg((a + 128) | 0, (a + 96) | 0, 32, 0), - fI((a + 96) | 0, 32), - sg((a + 128) | 0, Q, 32, 0), - sg((a + 128) | 0, g, 32, 0), - TI((a + 128) | 0, (a + 32) | 0, 64), - fI((a + 128) | 0, 384); - (g = (((a + 32) | 0) + A) | 0), - (C[(A + I) | 0] = n[0 | g]), - (C[(A + E) | 0] = n[(g + 32) | 0]), - 32 != (0 | (A = (A + 1) | 0)); - - ); - fI((a + 32) | 0, 64), (A = 0) - } - return (h = i), 0 | A - } - OI(), e() - }, - Ja: Ng, - Ka: Ng, - La: Ng, - Ma: Ng, - Na: Rg, - Oa: Jg, - Pa: Jg, - Qa: Sg, - Ra: Kg, - Sa: Lg, - Ta: Kg, - Ua: Sg, - Va: function () { - return 128 - }, - Wa: function () { - return 35681 - }, - Xa: Rg, - Ya: Kg, - Za: function () { - return 8192 - }, - _a: function () { - return -2147483648 - }, - $a: Jg, - ab: function () { - return 67108864 - }, - bb: qg, - cb: function () { - return 268435456 - }, - db: function () { - return 4 - }, - eb: function () { - return 1073741824 - }, - fb: function (A, I, g, B, Q, C, E, n, a, r, o) { - return ( - 0 | - (function (A, I, g, B, Q, C, E, n, a, r, o) { - switch ((o - 1) | 0) { - case 0: - return (function ( - A, - I, - g, - B, - Q, - C, - E, - n, - a, - r - ) { - var o, e - ;(e = I), (o = EA(A, 0, I)), (A = 22) - A: if (!g) { - if (!(!g & (I >>> 0 < 16))) { - if (C | a | (r >>> 0 > 2147483648)) - break A - if ( - !( - (!a & (n >>> 0 < 3)) | - (r >>> 0 < 8192) - ) - ) { - if (((A = 28), (0 | B) == (0 | o))) - break A - return pA( - n, - (r >>> 10) | 0, - 1, - B, - Q, - E, - 16, - o, - e, - 0, - 0, - 1 - ) - ? -1 - : 0 - } - } - A = 28 - } - return (i[8960] = A), -1 - })(A, I, g, B, Q, C, E, n, a, r) - case 1: - return (function ( - A, - I, - g, - B, - Q, - C, - E, - n, - a, - r - ) { - var o, e - ;(e = I), (o = EA(A, 0, I)), (A = 22) - A: if (!g) { - if (!(!g & (I >>> 0 < 16))) { - if (C | a | (r >>> 0 > 2147483648)) - break A - if (!(!(n | a) | (r >>> 0 < 8192))) { - if (((A = 28), (0 | B) == (0 | o))) - break A - return pA( - n, - (r >>> 10) | 0, - 1, - B, - Q, - E, - 16, - o, - e, - 0, - 0, - 2 - ) - ? -1 - : 0 - } - } - A = 28 - } - return (i[8960] = A), -1 - })(A, I, g, B, Q, C, E, n, a, r) - } - return (i[8960] = 28), -1 - })( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0), - (n |= 0), - (a |= 0), - (r |= 0), - (o |= 0) - ) - ) - }, - gb: function (A, I, g, B, Q, C, E) { - return ( - 0 | - xA( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0) - ) - ) - }, - hb: function (A, I, g, B, Q, C, E, n) { - return ( - 0 | - (function (A, I, g, B, Q, C, E, n) { - switch ((n - 1) | 0) { - case 1: - return xA(A, I, g, B, Q, C, E) - default: - OI(), e() - case 0: - } - return (function (A, I, g, B, Q, C, E) { - var n - return ( - (h = n = (h - 16) | 0), - (A = EA(A, 0, 128)), - E >>> 0 < 2147483649 && !(B | C) - ? E >>> 0 > 8191 && - (!C & (Q >>> 0 >= 3)) | (0 != (0 | C)) - ? (cI(n, 16), - (A = pA( - Q, - (E >>> 10) | 0, - 1, - I, - g, - n, - 16, - 0, - 32, - A, - 128, - 1 - ) - ? -1 - : 0)) - : ((i[8960] = 28), (A = -1)) - : ((i[8960] = 22), (A = -1)), - (h = (n + 16) | 0), - A - ) - })(A, I, g, B, Q, C, E) - })( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0), - (E |= 0), - (n |= 0) - ) - ) - }, - ib: function (A, I, g, B) { - return ( - 0 | - (function (A, I, g, B) { - return XA(A, 35681, 10) - ? XA(A, 35692, 9) - ? ((i[8960] = 28), -1) - : (function (A, I, g, B) { - A: { - if ((1 == (0 | B)) | (B >>> 0 > 1)) - i[8960] = 22 - else { - if (!(A = fA(A, I, g, 1))) break A - ;-35 == (0 | A) && (i[8960] = 28) - } - A = -1 - } - return A - })(A, I, g, B) - : (function (A, I, g, B) { - A: { - if ((1 == (0 | B)) | (B >>> 0 > 1)) - i[8960] = 22 - else { - if (!(A = fA(A, I, g, 2))) break A - ;-35 == (0 | A) && (i[8960] = 28) - } - A = -1 - } - return A - })(A, I, g, B) - })((A |= 0), (I |= 0), (g |= 0), (B |= 0)) - ) - }, - jb: function (A, I, g, B) { - return ( - 0 | - (function (A, I, g, B) { - return XA(A, 35681, 10) - ? XA(A, 35692, 9) - ? ((i[8960] = 28), -1) - : DA(A, I, g, B, 1) - : DA(A, I, g, B, 2) - })((A |= 0), (I |= 0), (g |= 0), (B |= 0)) - ) - }, - kb: ag, - lb: ZI, - mb: Ng, - nb: Ng, - ob: Ng, - pb: Mg, - qb: Sg, - rb: dg, - sb: bg, - tb: Qg, - ub: function (A, I, g, B, Q, C) { - return ( - 0 | - (function (A, I, g, B, Q, C) { - return ( - (!B & (g >>> 0 >= 4294967280)) | B && (OI(), e()), - nA((A + 16) | 0, A, I, g, B, Q, C), - 0 - ) - })( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0) - ) - ) - }, - vb: Cg, - wb: function (A, I, g, B, Q, C) { - return ( - 0 | - (function (A, I, g, B, Q, C) { - return (!B & (g >>> 0 >= 16)) | B - ? rA( - A, - (I + 16) | 0, - I, - (g - 16) | 0, - (B - (g >>> 0 < 16)) | 0, - Q, - C - ) - : -1 - })( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0) - ) - ) - }, - xb: bg, - yb: function (A, I, g) { - return ( - (A |= 0), - (g |= 0), - cI((I |= 0), 24), - x(A, I, g), - XI(A), - (g = - n[(I + 16) | 0] | - (n[(I + 17) | 0] << 8) | - (n[(I + 18) | 0] << 16) | - (n[(I + 19) | 0] << 24)), - (I = - n[(I + 20) | 0] | - (n[(I + 21) | 0] << 8) | - (n[(I + 22) | 0] << 16) | - (n[(I + 23) | 0] << 24)), - (C[(A + 44) | 0] = 0), - (C[(A + 45) | 0] = 0), - (C[(A + 46) | 0] = 0), - (C[(A + 47) | 0] = 0), - (C[(A + 48) | 0] = 0), - (C[(A + 49) | 0] = 0), - (C[(A + 50) | 0] = 0), - (C[(A + 51) | 0] = 0), - (C[(A + 36) | 0] = g), - (C[(A + 37) | 0] = g >>> 8), - (C[(A + 38) | 0] = g >>> 16), - (C[(A + 39) | 0] = g >>> 24), - (C[(A + 40) | 0] = I), - (C[(A + 41) | 0] = I >>> 8), - (C[(A + 42) | 0] = I >>> 16), - (C[(A + 43) | 0] = I >>> 24), - 0 - ) - }, - zb: function (A, I, g) { - return ( - x((A |= 0), (I |= 0), (g |= 0)), - XI(A), - (g = - n[(I + 16) | 0] | - (n[(I + 17) | 0] << 8) | - (n[(I + 18) | 0] << 16) | - (n[(I + 19) | 0] << 24)), - (I = - n[(I + 20) | 0] | - (n[(I + 21) | 0] << 8) | - (n[(I + 22) | 0] << 16) | - (n[(I + 23) | 0] << 24)), - (C[(A + 44) | 0] = 0), - (C[(A + 45) | 0] = 0), - (C[(A + 46) | 0] = 0), - (C[(A + 47) | 0] = 0), - (C[(A + 48) | 0] = 0), - (C[(A + 49) | 0] = 0), - (C[(A + 50) | 0] = 0), - (C[(A + 51) | 0] = 0), - (C[(A + 36) | 0] = g), - (C[(A + 37) | 0] = g >>> 8), - (C[(A + 38) | 0] = g >>> 16), - (C[(A + 39) | 0] = g >>> 24), - (C[(A + 40) | 0] = I), - (C[(A + 41) | 0] = I >>> 8), - (C[(A + 42) | 0] = I >>> 16), - (C[(A + 43) | 0] = I >>> 24), - 0 - ) - }, - Ab: L, - Bb: function (A, I, g, B, Q, E, a, r, o, t) { - return ( - 0 | - (function (A, I, g, B, Q, E, a, r, o, t) { - var f, - c = 0 - if ( - ((h = f = (h - 336) | 0), - g && ((i[g >> 2] = 0), (i[(g + 4) >> 2] = 0)), - !E & (Q >>> 0 < 4294967279)) - ) - return ( - _g((f + 16) | 0, 64, (c = (A + 32) | 0), A), - lg((f + 80) | 0, (f + 16) | 0), - fI((f + 16) | 0, 64), - yg((f + 80) | 0, a, r, o), - yg((f + 80) | 0, 35712, (0 - r) & 15, 0), - EA((f + 16) | 0, 0, 64), - (C[(f + 16) | 0] = t), - BI((f + 16) | 0, (f + 16) | 0, 64, 0, c, 1, A), - yg((f + 80) | 0, (f + 16) | 0, 64, 0), - (C[0 | I] = n[(f + 16) | 0]), - BI((a = (I + 1) | 0), B, Q, E, c, 2, A), - yg((f + 80) | 0, a, Q, E), - yg((f + 80) | 0, 35712, 15 & Q, 0), - tI((f + 8) | 0, r, o), - yg((f + 80) | 0, (f + 8) | 0, 8, 0), - tI( - (f + 8) | 0, - (Q - -64) | 0, - (E - (((Q >>> 0 < 4294967232) - 1) | 0)) | 0 - ), - yg((f + 80) | 0, (f + 8) | 0, 8, 0), - Fg((f + 80) | 0, (I = (Q + a) | 0)), - fI((f + 80) | 0, 256), - pI((A + 36) | 0, I), - sI(c), - (2 & t || aI(c, 4)) && L(A), - g && - ((E = - (A = (Q + 17) | 0) >>> 0 < 17 - ? (E + 1) | 0 - : E), - (i[g >> 2] = A), - (i[(g + 4) >> 2] = E)), - (h = (f + 336) | 0), - 0 - ) - OI(), e() - })( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (E |= 0), - (a |= 0), - (r |= 0), - (o |= 0), - (t |= 0) - ) - ) - }, - Cb: function (A, I, g, B, Q, E, a, r, o, t) { - return ( - 0 | - (function (A, I, g, B, Q, E, a, r, o, t) { - var f, - c = 0, - y = 0, - s = 0, - w = 0, - D = 0 - ;(h = f = (h - 352) | 0), - g && ((i[g >> 2] = 0), (i[(g + 4) >> 2] = 0)), - B && (C[0 | B] = 255), - (w = -1) - A: { - if (!(!a & (E >>> 0 < 17))) { - if ( - (!(c = (a - (E >>> 0 < 17)) | 0) & - ((y = (E - 17) | 0) >>> 0 >= 4294967279)) | - c - ) - break A - _g((f + 32) | 0, 64, (s = (A + 32) | 0), A), - lg((f + 96) | 0, (f + 32) | 0), - fI((f + 32) | 0, 64), - yg((f + 96) | 0, r, o, t), - yg((f + 96) | 0, 35712, (0 - o) & 15, 0), - EA((f + 32) | 0, 0, 64), - (C[(f + 32) | 0] = n[0 | Q]), - BI( - (f + 32) | 0, - (f + 32) | 0, - 64, - 0, - s, - 1, - A - ), - (D = n[(f + 32) | 0]), - (C[(f + 32) | 0] = n[0 | Q]), - yg((f + 96) | 0, (f + 32) | 0, 64, 0), - yg((f + 96) | 0, (r = (Q + 1) | 0), y, c), - yg((f + 96) | 0, 35712, (E - 1) & 15, 0), - tI((f + 24) | 0, o, t), - yg((f + 96) | 0, (f + 24) | 0, 8, 0), - tI( - (f + 24) | 0, - (Q = (E + 47) | 0), - (a = Q >>> 0 < 47 ? (a + 1) | 0 : a) - ), - yg((f + 96) | 0, (f + 24) | 0, 8, 0), - Fg((f + 96) | 0, f), - fI((f + 96) | 0, 256), - zA(f, (r + y) | 0, 16) - ? fI(f, 16) - : (BI(I, r, y, c, s, 2, A), - pI((A + 36) | 0, f), - sI(s), - (2 & D || aI(s, 4)) && L(A), - g && - ((i[g >> 2] = y), - (i[(g + 4) >> 2] = c)), - (w = 0), - B && (C[0 | B] = D)) - } - return (h = (f + 352) | 0), w - } - OI(), e() - })( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (E |= 0), - (a |= 0), - (r |= 0), - (o |= 0), - (t |= 0) - ) - ) - }, - Db: function () { - return 52 - }, - Eb: function () { - return 17 - }, - Fb: Mg, - Gb: Ng, - Hb: function () { - return -18 - }, - Ib: Lg, - Jb: Rg, - Kb: Jg, - Lb: qg, - Mb: xg, - Nb: Sg, - Ob: function (A, I, g, B, Q) { - return ( - 0 | - (function (A, I, g, B) { - var Q = 0, - C = 0, - E = 0, - i = 0, - a = 0, - r = 0, - o = 0, - e = 0, - t = 0, - f = 0, - c = 0, - y = 0, - s = 0, - w = 0, - h = 0, - D = 0 - if ( - ((Q = - 1886610805 ^ - (E = - n[0 | B] | - (n[(B + 1) | 0] << 8) | - (n[(B + 2) | 0] << 16) | - (n[(B + 3) | 0] << 24))), - (i = - 1936682341 ^ - (C = - n[(B + 4) | 0] | - (n[(B + 5) | 0] << 8) | - (n[(B + 6) | 0] << 16) | - (n[(B + 7) | 0] << 24))), - (a = 1852142177 ^ E), - (o = 1819895653 ^ C), - (E = - 1852075885 ^ - (t = - n[(B + 8) | 0] | - (n[(B + 9) | 0] << 8) | - (n[(B + 10) | 0] << 16) | - (n[(B + 11) | 0] << 24))), - (C = - 1685025377 ^ - (B = - n[(B + 12) | 0] | - (n[(B + 13) | 0] << 8) | - (n[(B + 14) | 0] << 16) | - (n[(B + 15) | 0] << 24))), - (t ^= 2037671283), - (r = 1952801890 ^ B), - (0 | (B = (((I + g) | 0) - (y = 7 & g)) | 0)) != - (0 | I)) - ) { - for ( - ; - (e = - n[0 | I] | - (n[(I + 1) | 0] << 8) | - (n[(I + 2) | 0] << 16) | - (n[(I + 3) | 0] << 24)), - (f = - n[(I + 4) | 0] | - (n[(I + 5) | 0] << 8) | - (n[(I + 6) | 0] << 16) | - (n[(I + 7) | 0] << 24)), - (c = Dg(E, C, 13)), - (s = p), - (w = (1 + (C = (C + i) | 0)) | 0), - (i = C), - (h = Dg( - (C = (Q + E) | 0), - (i = C >>> 0 < Q >>> 0 ? w : i), - 32 - )), - (w = p), - (r = Q = r ^ f), - (E = Dg((t ^= e), Q, 16)), - (Q = (a + t) | 0), - (a = (o + r) | 0), - (t = o = - (a = Q >>> 0 < t >>> 0 ? (a + 1) | 0 : a) ^ - p), - (o = Dg((E ^= Q), o, 21)), - (r = p), - (c = Dg((C ^= c), (i ^= s), 17)), - (D = p), - (i = (a + i) | 0), - (a = Q), - (i = Dg( - (Q = (Q + C) | 0), - (C = a >>> 0 > Q >>> 0 ? (i + 1) | 0 : i), - 32 - )), - (a = p), - (s = Dg((c ^= Q), (C ^= D), 13)), - (D = p), - (w = (1 + (Q = (t + w) | 0)) | 0), - (t = Q), - (E = - (Q = (E + h) | 0) >>> 0 < E >>> 0 ? w : t), - (c = t = (Q + c) | 0), - (C = (E + C) | 0), - (C = Dg( - t, - (h = Q >>> 0 > t >>> 0 ? (C + 1) | 0 : C), - 32 - )), - (t = p), - (o = Dg((Q ^= o), (E ^= r), 16)), - (E = (a + E) | 0), - (E = - (Q = (Q + i) | 0) >>> 0 < i >>> 0 - ? (E + 1) | 0 - : E), - (i = (C + (a = Q ^ o)) | 0), - (C = ((r = t) + (t = E ^ p)) | 0), - (t = Dg(a, t, 21) ^ i), - (r = - (w = i >>> 0 < a >>> 0 ? (C + 1) | 0 : C) ^ - p), - (a = C = h ^ D), - (C = Dg((o = c ^ s), C, 17)), - (E = (E + a) | 0), - (o = - (a = (Q + o) | 0) >>> 0 < Q >>> 0 - ? (E + 1) | 0 - : E), - (E = C ^ a), - (C = o ^ p), - (Q = i ^ e), - (i = f ^ w), - (a = Dg(a, o, 32)), - (o = p), - (0 | B) != (0 | (I = (I + 8) | 0)); - - ); - I = B - } - switch (((B = g << 24), (g = 0), (y - 1) | 0)) { - case 6: - B |= n[(I + 6) | 0] << 16 - case 5: - B |= n[(I + 5) | 0] << 8 - case 4: - B |= n[(I + 4) | 0] - case 3: - ;(e = ((g = n[(I + 3) | 0]) >>> 8) | 0), - (g <<= 24), - (B |= e) - case 2: - ;(g |= (e = n[(I + 2) | 0]) << 16), - (B |= f = (e >>> 16) | 0) - case 1: - ;(g |= (e = n[(I + 1) | 0]) << 8), - (B |= f = (e >>> 24) | 0) - case 0: - g = n[0 | I] | g - } - return ( - (e = Dg(E, C, 13)), - (f = p), - (I = (C + i) | 0), - (y = Dg( - (E = (Q + E) | 0), - (C = E >>> 0 < Q >>> 0 ? (I + 1) | 0 : I), - 32 - )), - (c = p), - (i = Q = B ^ r), - (Q = Dg((I = g ^ t), Q, 16)), - (i = (i + o) | 0), - (o = a = - (i = - (r = I) >>> 0 > (I = (I + a) | 0) >>> 0 - ? (i + 1) | 0 - : i) ^ p), - (a = Dg((Q ^= I), a, 21)), - (t = p), - (e = Dg((E ^= e), (C ^= f), 17)), - (f = p), - (C = (i + C) | 0), - (r = I), - (C = Dg( - (I = (I + E) | 0), - (E = r >>> 0 > I >>> 0 ? (C + 1) | 0 : C), - 32 - )), - (i = p), - (e = Dg((r = I ^ e), (E ^= f), 13)), - (f = p), - (s = (1 + (I = (o + c) | 0)) | 0), - (o = I), - (E = - ((Q = - (I = (Q + y) | 0) >>> 0 < Q >>> 0 ? s : o) + - E) | - 0), - (E = Dg( - (r = o = (I + r) | 0), - (o = I >>> 0 > o >>> 0 ? (E + 1) | 0 : E), - 32 - )), - (y = p), - (a = Dg((I ^= a), (Q ^= t), 16)), - (Q = (i + Q) | 0), - (Q = - (I = (I + C) | 0) >>> 0 < C >>> 0 - ? (Q + 1) | 0 - : Q), - (C = I ^ a), - (a = i = Q ^ p), - (i = Dg(C, i, 21)), - (t = p), - (f = o ^= f), - (o = Dg((r ^= e), o, 17)), - (e = p), - (Q = (Q + f) | 0), - (s = I), - (r = Dg( - (I = (I + r) | 0), - (Q = s >>> 0 > I >>> 0 ? (Q + 1) | 0 : Q), - 32 - )), - (f = p), - (e = Dg((I ^= o), (o = Q ^ e), 13)), - (c = p), - (s = I), - (a = (1 + (I = (a + y) | 0)) | 0), - (Q = I), - (B = - (o + - (B ^ - (Q = - (I = (E + C) | 0) >>> 0 < E >>> 0 - ? a - : Q))) | - 0), - (g = Dg( - (C = E = (s + (g ^= I)) | 0), - (E = g >>> 0 > E >>> 0 ? (B + 1) | 0 : B), - 32 - )), - (a = p), - (i = Dg((I ^= i), (B = Q ^ t), 16)), - (B = (B + f) | 0), - (B = - (Q = I) >>> 0 > (I = (I + (255 ^ r)) | 0) >>> 0 - ? (B + 1) | 0 - : B), - (Q = I ^ i), - (o = i = B ^ p), - (i = Dg(Q, i, 21)), - (t = p), - (r = E ^= c), - (E = Dg((C ^= e), E, 17)), - (e = p), - (B = (B + r) | 0), - (r = I), - (C = Dg( - (I = (I + C) | 0), - (B = r >>> 0 > I >>> 0 ? (B + 1) | 0 : B), - 32 - )), - (r = p), - (f = Dg((E ^= I), (e ^= B), 13)), - (y = p), - (o = (1 + (I = (a + o) | 0)) | 0), - (B = I), - (Q = - ((B = - (I = (g + Q) | 0) >>> 0 < g >>> 0 ? o : B) + - e) | - 0), - (a = Q = - I >>> 0 > (g = (I + E) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (Q = Dg(g, Q, 32)), - (o = p), - (i = Dg((I ^= i), (B ^= t), 16)), - (B = (B + r) | 0), - (r = I), - (E = (I = (I + C) | 0) ^ i), - (i = C = - (B = r >>> 0 > I >>> 0 ? (B + 1) | 0 : B) ^ p), - (C = Dg(E, C, 21)), - (t = p), - (r = a ^= y), - (a = Dg((g ^= f), a, 17)), - (e = p), - (B = (B + r) | 0), - (r = I), - (r = Dg( - (I = (I + g) | 0), - (g = r >>> 0 > I >>> 0 ? (B + 1) | 0 : B), - 32 - )), - (f = p), - (y = Dg((a ^= I), (e ^= g), 13)), - (c = p), - (B = (1 + (I = (i + o) | 0)) | 0), - (g = I), - (Q = - ((B = - (I = (Q + E) | 0) >>> 0 < Q >>> 0 ? B : g) + - e) | - 0), - (i = Q = - I >>> 0 > (g = (I + a) | 0) >>> 0 - ? (Q + 1) | 0 - : Q), - (Q = Dg(g, Q, 32)), - (a = p), - (C = Dg((I ^= C), (B ^= t), 16)), - (B = (B + f) | 0), - (o = I), - (E = (I = (I + r) | 0) ^ C), - (o = C = - (B = o >>> 0 > I >>> 0 ? (B + 1) | 0 : B) ^ p), - (C = Dg(E, C, 21)), - (t = p), - (r = i ^= c), - (i = Dg((g ^= y), i, 17)), - (e = p), - (B = (B + r) | 0), - (r = I), - (B = Dg( - (I = (I + g) | 0), - (g = r >>> 0 > I >>> 0 ? (B + 1) | 0 : B), - 32 - )), - (r = p), - (e = g ^= e), - (f = Dg((i ^= I), g, 13)), - (y = p), - (o = (1 + (I = (a + o) | 0)) | 0), - (g = I), - (a = E = - t ^ - (Q = - (I = (Q + E) | 0) >>> 0 < Q >>> 0 ? o : g)), - (E = Dg((g = I ^ C), E, 16)), - (C = (a + r) | 0), - (r = g), - (E = Dg( - (g = (g + B) | 0) ^ E, - (B = r >>> 0 > g >>> 0 ? (C + 1) | 0 : C) ^ p, - 21 - )), - (C = p), - (Q = (Q + e) | 0), - (o = - (1 + - (B = - (B + - (Q = - ((r = I) >>> 0 > (I = (I + i) | 0) >>> 0 - ? (Q + 1) | 0 - : Q) ^ y)) | - 0)) | - 0), - (r = B), - (g = - (I = (g + (B = I ^ f)) | 0) >>> 0 < g >>> 0 - ? o - : r), - (B = Dg(B, Q, 17) ^ I ^ E), - (Q = p ^ g ^ C), - tI(A, Dg(I, g, 32) ^ B, p ^ Q), - 0 - ) - })((A |= 0), (I |= 0), (g |= 0), (Q |= 0)) - ) - }, - Pb: function (A) { - cI((A |= 0), 16) - }, - Qb: function () { - return 208 - }, - Rb: Pg, - Sb: Ng, - Tb: Ng, - Ub: Pg, - Vb: function () { - return -65 - }, - Wb: function (A, I, g) { - return 0 | N((A |= 0), (I |= 0), (g |= 0)) - }, - Xb: function (A, I) { - return ( - 0 | - (function (A, I) { - var g - return ( - (h = g = (h - 32) | 0), - cI(g, 32), - N(A, I, g), - fI(g, 32), - (h = (g + 32) | 0), - 0 - ) - })((A |= 0), (I |= 0)) - ) - }, - Yb: function (A, I, g, B, Q, C) { - return ( - 0 | - (function (A, I, g, B, Q, C) { - var E, n - return ( - (h = E = (h - 16) | 0), - (n = g), - (g = B), - Bg( - A, - (E + 8) | 0, - gA((A - -64) | 0, n, B), - B, - Q, - C - ), - (64 != i[(E + 8) >> 2]) | i[(E + 12) >> 2] - ? (I && - ((i[I >> 2] = 0), (i[(I + 4) >> 2] = 0)), - EA(A, 0, (g - -64) | 0), - (A = -1)) - : ((A = 0), - I && - ((i[I >> 2] = B - -64), - (i[(I + 4) >> 2] = - Q - (((B >>> 0 < 4294967232) - 1) | 0)))), - (h = (E + 16) | 0), - A - ) - })( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0) - ) - ) - }, - Zb: function (A, I, g, B, Q, C) { - return ( - 0 | - (function (A, I, g, B, Q, C) { - var E = 0 - A: { - I: { - if ( - !( - !Q & (B >>> 0 < 64) || - ((Q = (Q - 1) | 0), - (!(Q = - (B = (B + -64) | 0) >>> 0 < 4294967232 - ? (Q + 1) | 0 - : Q) & - (B >>> 0 > 4294967231)) | - Q) - ) - ) { - if (!ng(g, (E = (g - -64) | 0), B, Q, C)) - break I - A && EA(A, 0, B) - } - if (((g = -1), !I)) break A - return ( - (i[I >> 2] = 0), (i[(I + 4) >> 2] = 0), -1 - ) - } - I && ((i[I >> 2] = B), (i[(I + 4) >> 2] = Q)), - (g = 0), - A && gA(A, E, B) - } - return g - })( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0) - ) - ) - }, - _b: function (A, I, g, B, Q, C) { - return ( - 0 | - Bg( - (A |= 0), - (I |= 0), - (g |= 0), - (B |= 0), - (Q |= 0), - (C |= 0) - ) - ) - }, - $b: function (A, I, g, B, Q) { - return ( - 0 | - ng((A |= 0), (I |= 0), (g |= 0), (B |= 0), (Q |= 0)) - ) - }, - ac: function (A) { - return MI((A |= 0)), 0 - }, - bc: function (A, I, g, B) { - return 0 | V((A |= 0), (I |= 0), (g |= 0), (B |= 0)) - }, - cc: function (A, I, g, B) { - return ( - 0 | - (function (A, I, g, B) { - var Q - return ( - (h = Q = (h + -64) | 0), - UI(A, Q), - (A = q(I, g, Q, 64, 0, B, 1)), - (h = (Q - -64) | 0), - A - ) - })((A |= 0), (I |= 0), (g |= 0), (B |= 0)) - ) - }, - dc: function (A, I, g) { - return ( - 0 | - (function (A, I, g) { - var B - return ( - (h = B = (h + -64) | 0), - UI(A, B), - (A = lA(I, B, 64, 0, g, 1)), - (h = (B - -64) | 0), - A - ) - })((A |= 0), (I |= 0), (g |= 0)) - ) - }, - ec: function (A, I) { - A |= 0 - var g, - B = 0 - return ( - (h = g = (h - 256) | 0), - (B = -1), - wA((I |= 0)) || - cA((g + 96) | 0, I) || - ((function (A) { - var I - return ( - (h = I = (h - 160) | 0), - (function (A, I) { - var g, - B = 0 - for ( - h = g = (h - 1760) | 0, - FI((g + 480) | 0, I), - JI((g + 320) | 0, I), - DI(g, (g + 320) | 0), - VA((g + 320) | 0, g, (g + 480) | 0), - DI((g + 160) | 0, (g + 320) | 0), - FI((I = (g + 640) | 0), (g + 160) | 0), - VA((g + 320) | 0, g, I), - DI((g + 160) | 0, (g + 320) | 0), - FI((I = (g + 800) | 0), (g + 160) | 0), - VA((g + 320) | 0, g, I), - DI((g + 160) | 0, (g + 320) | 0), - FI((I = (g + 960) | 0), (g + 160) | 0), - VA((g + 320) | 0, g, I), - DI((g + 160) | 0, (g + 320) | 0), - FI((I = (g + 1120) | 0), (g + 160) | 0), - VA((g + 320) | 0, g, I), - DI((g + 160) | 0, (g + 320) | 0), - FI((I = (g + 1280) | 0), (g + 160) | 0), - VA((g + 320) | 0, g, I), - DI((g + 160) | 0, (g + 320) | 0), - FI((I = (g + 1440) | 0), (g + 160) | 0), - VA((g + 320) | 0, g, I), - DI((g + 160) | 0, (g + 320) | 0), - FI((g + 1600) | 0, (g + 160) | 0), - zI(A), - I = 252; - JI((g + 320) | 0, A), - (B = I), - (0 | (I = C[(I + 34208) | 0])) >= 1 - ? (DI((g + 160) | 0, (g + 320) | 0), - VA( - (g + 320) | 0, - (g + 160) | 0, - (((g + 480) | 0) + - r(((254 & I) >>> 1) | 0, 160)) | - 0 - )) - : (0 | I) > -1 || - (DI((g + 160) | 0, (g + 320) | 0), - WA( - (g + 320) | 0, - (g + 160) | 0, - (((g + 480) | 0) + - r( - (((0 - I) & 254) >>> 1) | 0, - 160 - )) | - 0 - )), - DI(A, (g + 320) | 0), - (I = (B - 1) | 0), - B; - - ); - h = (g + 1760) | 0 - })(I, A), - (A = RI(I)), - (h = (I + 160) | 0), - A - ) - })((g + 96) | 0) && - (wg(g), - yA(g, g, (I = (g + 136) | 0)), - wg((g + 48) | 0), - sA((g + 48) | 0, (g + 48) | 0, I), - j(g, g), - _((g + 48) | 0, (g + 48) | 0, g), - BA(A, (g + 48) | 0), - (B = 0))), - (h = (g + 256) | 0), - 0 | B - ) - }, - fc: function (A, I) { - A |= 0 - var g, - B = 0 - return ( - (h = g = (h + -64) | 0), - mI(g, (I |= 0), 32, 0), - (C[0 | g] = 248 & n[0 | g]), - (C[(g + 31) | 0] = (63 & n[(g + 31) | 0]) | 64), - (I = i[(g + 20) >> 2]), - (B = i[(g + 16) >> 2]), - (C[(A + 16) | 0] = B), - (C[(A + 17) | 0] = B >>> 8), - (C[(A + 18) | 0] = B >>> 16), - (C[(A + 19) | 0] = B >>> 24), - (C[(A + 20) | 0] = I), - (C[(A + 21) | 0] = I >>> 8), - (C[(A + 22) | 0] = I >>> 16), - (C[(A + 23) | 0] = I >>> 24), - (I = i[(g + 12) >> 2]), - (B = i[(g + 8) >> 2]), - (C[(A + 8) | 0] = B), - (C[(A + 9) | 0] = B >>> 8), - (C[(A + 10) | 0] = B >>> 16), - (C[(A + 11) | 0] = B >>> 24), - (C[(A + 12) | 0] = I), - (C[(A + 13) | 0] = I >>> 8), - (C[(A + 14) | 0] = I >>> 16), - (C[(A + 15) | 0] = I >>> 24), - (I = i[(g + 4) >> 2]), - (B = i[g >> 2]), - (C[0 | A] = B), - (C[(A + 1) | 0] = B >>> 8), - (C[(A + 2) | 0] = B >>> 16), - (C[(A + 3) | 0] = B >>> 24), - (C[(A + 4) | 0] = I), - (C[(A + 5) | 0] = I >>> 8), - (C[(A + 6) | 0] = I >>> 16), - (C[(A + 7) | 0] = I >>> 24), - (I = i[(g + 28) >> 2]), - (B = i[(g + 24) >> 2]), - (C[(A + 24) | 0] = B), - (C[(A + 25) | 0] = B >>> 8), - (C[(A + 26) | 0] = B >>> 16), - (C[(A + 27) | 0] = B >>> 24), - (C[(A + 28) | 0] = I), - (C[(A + 29) | 0] = I >>> 8), - (C[(A + 30) | 0] = I >>> 16), - (C[(A + 31) | 0] = I >>> 24), - fI(g, 64), - (h = (g - -64) | 0), - 0 - ) - }, - gc: YI, - hc: PI, - ic: function (A) { - var I = 0, - g = 0 - if ((A |= 0) >>> 0 >= 2) { - for ( - g = ((0 - A) >>> 0) % (A >>> 0) | 0; - (I = YI()) >>> 0 < g >>> 0; - - ); - A = (I >>> 0) % (A >>> 0) | 0 - } else A = 0 - return 0 | A - }, - jc: cI, - kc: function (A, I, g) { - _g((A |= 0), (I |= 0), 1784, (g |= 0)) - }, - lc: Ng, - mc: function () { - var A = 0, - I = 0 - return ( - (A = i[9097]) && - (A = i[(A + 20) >> 2]) && - (I = 0 | Vg[0 | A]()), - 0 | I - ) - }, - nc: function (A, I, g) { - !(function (A, I, g) { - ;(1 == (0 | g)) | (g >>> 0 > 1) && - (t(1796, 1816, 197, 1842), e()), - cI(A, I) - })((A |= 0), (I |= 0), (g |= 0)) - }, - oc: function (A, I, g, B) { - ;(A |= 0), (g |= 0) - var Q = 0, - E = 0, - i = 0 - if ( - !( - ((B |= 0) >>> 0 > 2147483646) | - ((B << 1) >>> 0 >= (I |= 0) >>> 0) - ) - ) { - if (((I = 0), B)) { - for ( - ; - (Q = I << 1), - (E = ((i = n[(I + g) | 0]) >>> 4) | 0), - (C[(Q + A) | 0] = - 87 + ((E + (((E + 65526) >>> 8) & 217)) | 0)), - (E = ((1 | Q) + A) | 0), - (Q = 15 & i), - (C[0 | E] = - (22272 + - (((Q << 8) + ((Q + 65526) & 55552)) | - 0)) >>> - 8), - (0 | B) != (0 | (I = (I + 1) | 0)); - - ); - I = B << 1 - } else I = 0 - return (C[(I + A) | 0] = 0), 0 | A - } - OI(), e() - }, - pc: function (A, I, g, B, Q, E, a) { - ;(A |= 0), - (I |= 0), - (g |= 0), - (Q |= 0), - (E |= 0), - (a |= 0) - var r = 0, - o = 0, - e = 0, - t = 0, - f = 0, - c = 0, - y = 0, - s = 0, - w = 0, - h = 0, - D = 0 - A: if ((B |= 0)) { - I: { - g: { - B: for (;;) { - for (o = r; ; ) { - Q: { - if ( - !( - 255 & - ((w = - (((65526 + - (y = - ((223 & (c = n[(g + o) | 0])) - - 55) & - 255)) ^ - (y + 65520)) >>> - 8) | - 0) | - (e = - ((65526 + (h = 48 ^ c)) >>> 8) | 0)) - ) - ) { - if (((e = 1), !Q | (255 & f))) break g - if (gg(Q, c)) break Q - r = o - break A - } - if (I >>> 0 <= t >>> 0) { - ;(i[8960] = 68), (e = 0) - break g - } - if ( - ((r = (y & w) | (e & h)), - 255 & f - ? ((C[(A + t) | 0] = r | D), - (t = (t + 1) | 0)) - : (D = r << 4), - (f ^= -1), - (e = 1), - (r = (o + 1) | 0) >>> 0 < B >>> 0) - ) - continue B - break I - } - if ( - ((f = 0), - !((o = (o + 1) | 0) >>> 0 < B >>> 0)) - ) - break - } - break - } - r = (A = (r + 1) | 0) >>> 0 < B >>> 0 ? B : A - break A - } - r = o - } - 255 & f - ? ((i[8960] = 28), - (s = -1), - (r = (r - 1) | 0), - (t = 0)) - : e || ((t = 0), (s = -1)) - } - return ( - a - ? (i[a >> 2] = g + r) - : (0 | B) != (0 | r) && ((i[8960] = 28), (s = -1)), - E && (i[E >> 2] = t), - 0 | s - ) - }, - qc: function (A, I) { - var g - return ( - (A |= 0), - pg((I |= 0)), - (A = (r((g = ((A >>> 0) / 3) | 0), -3) + A) | 0), - (r( - (4 - ((3 - A) & (0 - ((I >>> 1) & 1)))) | 0, - 1 & (A | (A >>> 1)) - ) + - ((g << 2) | 1)) | - 0 - ) - }, - rc: O, - sc: W, - tc: function () { - var A = 0 - return ( - i[9104] - ? (A = 1) - : ((i[9086] = 0), - (function () { - var A - ;(h = A = (h - 16) | 0), - VI(A), - i[A >> 2] && (VI(A), EA(36348, 0, 40)), - (h = (A + 16) | 0) - })(), - (i[9085] = 1), - PI(), - (function () { - var A = 0 - ;(0 | (A = 0 | y(30))) >= 1 - ? (i[8944] = A) - : (A = i[8944]), - A >>> 0 <= 15 && (OI(), e()), - cI(36400, 16) - })(), - (i[9104] = 1), - (A = 0)), - 0 | A - ) - }, - uc: function (A, I, g, B, Q) { - ;(A |= 0), (I |= 0), (g |= 0), (Q |= 0) - var E, - a = 0, - r = 0, - o = 0 - h = E = (h - 16) | 0 - A: { - if ((B |= 0)) { - if ( - ((o = -1), - (a = - ((a = (B - 1) | 0) - - (r = - a & B - ? (g >>> 0) % (B >>> 0) | 0 - : g & a)) | - 0) >>> - 0 >= - (-1 ^ g) >>> 0) - ) - break A - if (!((g = (g + a) | 0) >>> 0 >= Q >>> 0)) - for ( - A && (i[A >> 2] = g + 1), - A = (I + g) | 0, - o = 0, - C[(E + 15) | 0] = 0, - I = B >>> 0 > 1 ? B : 1, - B = 0; - (Q = g = (A - B) | 0), - (r = n[0 | g] & n[(E + 15) | 0]), - (g = (((B ^ a) - 1) >>> 24) | 0), - (C[0 | Q] = r | (128 & g)), - (C[(E + 15) | 0] = g | n[(E + 15) | 0]), - (0 | I) != (0 | (B = (B + 1) | 0)); - - ); - } else o = -1 - return (h = (E + 16) | 0), 0 | o - } - OI(), e() - }, - vc: function (A, I, g, B) { - ;(A |= 0), (I |= 0), (g |= 0), (B |= 0) - var Q, - C = 0, - E = 0, - a = 0, - r = 0, - o = 0 - if ( - ((i[(12 + (Q = (h - 16) | 0)) >> 2] = 0), - (B - 1) >>> 0 < g >>> 0) - ) { - for ( - o = ((C = (g - 1) | 0) + I) | 0, g = 0, I = 0; - (r = - ((((128 ^ (E = n[(o - g) | 0])) - 1) & - (i[(Q + 12) >> 2] - 1) & - (a - 1)) >>> - 8) & - 1), - (i[(Q + 12) >> 2] = - i[(Q + 12) >> 2] | ((0 - r) & g)), - (I |= r), - (a |= E), - (0 | B) != (0 | (g = (g + 1) | 0)); - - ); - ;(i[A >> 2] = C - i[(Q + 12) >> 2]), (A = (I - 1) | 0) - } else A = -1 - return 0 | A - }, - wc: function () { - return 35762 - }, - xc: function () { - return 10 - }, - yc: qg, - zc: Rg, - Ac: function () { - return 35840 - }, - Bc: k, - Cc: m - } - })(A) - ) - })(vA) - }, - instantiate: function (A, I) { - return { - then: function (I) { - var g = new u.Module(A) - I({ instance: new u.Instance(g) }) - } - } - }, - RuntimeError: Error - } - function p(A, I, g, B) { - switch ( - ('*' === (g = g || 'i8').charAt(g.length - 1) && (g = 'i32'), g) - ) { - case 'i1': - case 'i8': - _[A >> 0] = I - break - case 'i16': - Y[A >> 1] = I - break - case 'i32': - b[A >> 2] = I - break - case 'i64': - ;(nA = [ - I >>> 0, - ((iA = I), - +Math.abs(iA) >= 1 - ? iA > 0 - ? (0 | - Math.min(+Math.floor(iA / 4294967296), 4294967295)) >>> - 0 - : ~~+Math.ceil((iA - +(~~iA >>> 0)) / 4294967296) >>> 0 - : 0) - ]), - (b[A >> 2] = nA[0]), - (b[(A + 4) >> 2] = nA[1]) - break - case 'float': - m[A >> 2] = I - break - case 'double': - v[A >> 3] = I - break - default: - IA('invalid type for setValue: ' + g) - } - } - function l(A, I, g) { - switch ( - ('*' === (I = I || 'i8').charAt(I.length - 1) && (I = 'i32'), I) - ) { - case 'i1': - case 'i8': - return _[A >> 0] - case 'i16': - return Y[A >> 1] - case 'i32': - case 'i64': - return b[A >> 2] - case 'float': - return m[A >> 2] - case 'double': - return v[A >> 3] - default: - IA('invalid type for getValue: ' + I) - } - return null - } - ;(w = []), 'object' != typeof u && IA('no native wasm support detected') - var F = !1 - function G(A, I) { - A || IA('Assertion failed: ' + I) - } - var k, - _, - H, - Y, - b, - m, - v, - U = - 'undefined' != typeof TextDecoder ? new TextDecoder('utf8') : void 0 - function S(A, I, g) { - for (var B = I + g, Q = I; A[Q] && !(Q >= B); ) ++Q - if (Q - I > 16 && A.subarray && U) return U.decode(A.subarray(I, Q)) - for (var C = ''; I < Q; ) { - var E = A[I++] - if (128 & E) { - var i = 63 & A[I++] - if (192 != (224 & E)) { - var n = 63 & A[I++] - if ( - (E = - 224 == (240 & E) - ? ((15 & E) << 12) | (i << 6) | n - : ((7 & E) << 18) | - (i << 12) | - (n << 6) | - (63 & A[I++])) < 65536 - ) - C += String.fromCharCode(E) - else { - var a = E - 65536 - C += String.fromCharCode( - 55296 | (a >> 10), - 56320 | (1023 & a) - ) - } - } else C += String.fromCharCode(((31 & E) << 6) | i) - } else C += String.fromCharCode(E) - } - return C - } - function N(A, I) { - return A ? S(H, A, I) : '' - } - function M(A, I) { - return A % I > 0 && (A += I - (A % I)), A - } - function d(A) { - ;(k = A), - (Q.HEAP8 = _ = new Int8Array(A)), - (Q.HEAP16 = Y = new Int16Array(A)), - (Q.HEAP32 = b = new Int32Array(A)), - (Q.HEAPU8 = H = new Uint8Array(A)), - (Q.HEAPU16 = new Uint16Array(A)), - (Q.HEAPU32 = new Uint32Array(A)), - (Q.HEAPF32 = m = new Float32Array(A)), - (Q.HEAPF64 = v = new Float64Array(A)) - } - var P, - R = Q.INITIAL_MEMORY || 16777216 - ;(D = Q.wasmMemory - ? Q.wasmMemory - : new u.Memory({ initial: R / 65536, maximum: 32768 })) && - (k = D.buffer), - (R = k.byteLength), - d(k) - var J = [], - x = [], - L = [], - K = [] - function q() { - if (Q.preRun) - for ( - 'function' == typeof Q.preRun && (Q.preRun = [Q.preRun]); - Q.preRun.length; - - ) - T(Q.preRun.shift()) - fA(J) - } - function X() { - fA(x) - } - function V() { - fA(L) - } - function W() { - if (Q.postRun) - for ( - 'function' == typeof Q.postRun && (Q.postRun = [Q.postRun]); - Q.postRun.length; - - ) - j(Q.postRun.shift()) - fA(K) - } - function T(A) { - J.unshift(A) - } - function j(A) { - K.unshift(A) - } - x.push({ - func: function () { - UA() - } - }) - var Z = 0, - O = null, - z = null - function $(A) { - Z++, Q.monitorRunDependencies && Q.monitorRunDependencies(Z) - } - function AA(A) { - if ( - (Z--, - Q.monitorRunDependencies && Q.monitorRunDependencies(Z), - 0 == Z && (null !== O && (clearInterval(O), (O = null)), z)) - ) { - var I = z - ;(z = null), I() - } - } - function IA(A) { - throw ( - (Q.onAbort && Q.onAbort(A), - h((A += '')), - (F = !0), - (A = 'abort(' + A + '). Build with -s ASSERTIONS=1 for more info.'), - new u.RuntimeError(A)) - ) - } - function gA(A, I) { - return String.prototype.startsWith - ? A.startsWith(I) - : 0 === A.indexOf(I) - } - ;(Q.preloadedImages = {}), (Q.preloadedAudios = {}) - var BA = 'data:application/octet-stream;base64,' - function QA(A) { - return gA(A, BA) - } - var CA = 'file://' - function EA(A) { - return gA(A, CA) - } - var iA, - nA, - aA = '<<< WASM_BINARY_FILE >>>' - function rA(A) { - try { - if (A == aA && w) return new Uint8Array(w) - var I = bA(A) - if (I) return I - if (t) return t(A) - throw 'both async and sync fetching of the wasm failed' - } catch (A) { - IA(A) - } - } - function oA() { - if (!w && (i || n)) { - if ('function' == typeof fetch && !EA(aA)) - return fetch(aA, { credentials: 'same-origin' }) - .then(function (A) { - if (!A.ok) - throw "failed to load wasm binary file at '" + aA + "'" - return A.arrayBuffer() - }) - .catch(function () { - return rA(aA) - }) - if (e) - return new Promise(function (A, I) { - e( - aA, - function (I) { - A(new Uint8Array(I)) - }, - I - ) - }) - } - return Promise.resolve().then(function () { - return rA(aA) - }) - } - function eA() { - var A = { a: vA } - function I(A, I) { - var g = A.exports - ;(Q.asm = g), (P = Q.asm.h), AA() - } - function g(A) { - I(A.instance) - } - function B(I) { - return oA() - .then(function (I) { - return u.instantiate(I, A) - }) - .then(I, function (A) { - h('failed to asynchronously prepare wasm: ' + A), IA(A) - }) - } - if (($(), Q.instantiateWasm)) - try { - return Q.instantiateWasm(A, I) - } catch (A) { - return ( - h('Module.instantiateWasm callback failed with error: ' + A), !1 - ) - } - return ( - w || - 'function' != typeof u.instantiateStreaming || - QA(aA) || - EA(aA) || - 'function' != typeof fetch - ? B(g) - : fetch(aA, { credentials: 'same-origin' }).then(function (I) { - return u.instantiateStreaming(I, A).then(g, function (A) { - return ( - h('wasm streaming compile failed: ' + A), - h('falling back to ArrayBuffer instantiation'), - B(g) - ) - }) - }), - {} - ) - } - QA(aA) || (aA = s(aA)) - var tA = { - 1024: function () { - return Q.getRandomValue() - }, - 1062: function () { - if (void 0 === Q.getRandomValue) - try { - var A = 'object' == typeof window ? window : self, - I = void 0 !== A.crypto ? A.crypto : A.msCrypto, - g = function () { - var A = new Uint32Array(1) - return I.getRandomValues(A), A[0] >>> 0 - } - g(), (Q.getRandomValue = g) - } catch (A) { - try { - var B = require('crypto'), - C = function () { - var A = B.randomBytes(4) - return ( - ((A[0] << 24) | (A[1] << 16) | (A[2] << 8) | A[3]) >>> 0 - ) - } - C(), (Q.getRandomValue = C) - } catch (A) { - throw 'No secure random number generator found' - } - } - } - } - function fA(A) { - for (; A.length > 0; ) { - var I = A.shift() - if ('function' != typeof I) { - var g = I.func - 'number' == typeof g - ? void 0 === I.arg - ? P.get(g)() - : P.get(g)(I.arg) - : g(void 0 === I.arg ? null : I.arg) - } else I(Q) - } - } - function cA(A, I, g, B) { - IA( - 'Assertion failed: ' + - N(A) + - ', at: ' + - [I ? N(I) : 'unknown filename', g, B ? N(B) : 'unknown function'] - ) - } - function yA() { - IA() - } - function sA(A, I, g) { - var B = GA(I, g) - return tA[A].apply(null, B) - } - function wA(A, I, g) { - H.copyWithin(A, I, I + g) - } - function hA() { - return H.length - } - function DA(A) { - try { - return D.grow((A - k.byteLength + 65535) >>> 16), d(D.buffer), 1 - } catch (A) {} - } - function uA(A) { - A >>>= 0 - var I = hA(), - g = 2147483648 - if (A > g) return !1 - for (var B = 1; B <= 4; B *= 2) { - var Q = I * (1 + 0.2 / B) - if ( - ((Q = Math.min(Q, A + 100663296)), - DA(Math.min(g, M(Math.max(16777216, A, Q), 65536)))) - ) - return !0 - } - return !1 - } - function pA(A) { - return (b[SA() >> 2] = A), A - } - function lA(A) { - switch (A) { - case 30: - return 16384 - case 85: - return 131072 - case 132: - case 133: - case 12: - case 137: - case 138: - case 15: - case 235: - case 16: - case 17: - case 18: - case 19: - case 20: - case 149: - case 13: - case 10: - case 236: - case 153: - case 9: - case 21: - case 22: - case 159: - case 154: - case 14: - case 77: - case 78: - case 139: - case 82: - case 68: - case 67: - case 164: - case 11: - case 29: - case 47: - case 48: - case 95: - case 52: - case 51: - case 46: - return 200809 - case 27: - case 246: - case 127: - case 128: - case 23: - case 24: - case 160: - case 161: - case 181: - case 182: - case 242: - case 183: - case 184: - case 243: - case 244: - case 245: - case 165: - case 178: - case 179: - case 49: - case 50: - case 168: - case 169: - case 175: - case 170: - case 171: - case 172: - case 97: - case 76: - case 32: - case 173: - case 35: - case 80: - case 81: - case 79: - return -1 - case 176: - case 177: - case 7: - case 155: - case 8: - case 157: - case 125: - case 126: - case 92: - case 93: - case 129: - case 130: - case 131: - case 94: - case 91: - return 1 - case 74: - case 60: - case 69: - case 70: - case 4: - return 1024 - case 31: - case 42: - case 72: - return 32 - case 87: - case 26: - case 33: - return 2147483647 - case 34: - case 1: - return 47839 - case 38: - case 36: - return 99 - case 43: - case 37: - return 2048 - case 0: - return 2097152 - case 3: - return 65536 - case 28: - return 32768 - case 44: - return 32767 - case 75: - return 16384 - case 39: - return 1e3 - case 89: - return 700 - case 71: - return 256 - case 40: - return 255 - case 2: - return 100 - case 180: - return 64 - case 25: - return 20 - case 5: - return 16 - case 6: - return 6 - case 73: - return 4 - case 84: - return ( - ('object' == typeof navigator && - navigator.hardwareConcurrency) || - 1 - ) - } - return pA(28), -1 - } - var FA = [] - function GA(A, I) { - var g - for (FA.length = 0, I >>= 2; (g = H[A++]); ) { - var B = g < 105 - B && 1 & I && I++, FA.push(B ? v[I++ >> 1] : b[I]), ++I - } - return FA - } - var kA = !1 - function _A(A) { - for (var I = [], g = 0; g < A.length; g++) { - var B = A[g] - B > 255 && - (kA && - G( - !1, - 'Character code ' + - B + - ' (' + - String.fromCharCode(B) + - ') at offset ' + - g + - ' not in 0x00-0xFF.' - ), - (B &= 255)), - I.push(String.fromCharCode(B)) - } - return I.join('') - } - var HA = - 'function' == typeof atob - ? atob - : function (A) { - var I, - g, - B, - Q, - C, - E, - i = - 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', - n = '', - a = 0 - A = A.replace(/[^A-Za-z0-9\+\/\=]/g, '') - do { - ;(I = - (i.indexOf(A.charAt(a++)) << 2) | - ((Q = i.indexOf(A.charAt(a++))) >> 4)), - (g = - ((15 & Q) << 4) | ((C = i.indexOf(A.charAt(a++))) >> 2)), - (B = ((3 & C) << 6) | (E = i.indexOf(A.charAt(a++)))), - (n += String.fromCharCode(I)), - 64 !== C && (n += String.fromCharCode(g)), - 64 !== E && (n += String.fromCharCode(B)) - } while (a < A.length) - return n - } - function YA(A) { - if ('boolean' == typeof a && a) { - var I - try { - I = Buffer.from(A, 'base64') - } catch (g) { - I = new Buffer(A, 'base64') - } - return new Uint8Array(I.buffer, I.byteOffset, I.byteLength) - } - try { - for ( - var g = HA(A), B = new Uint8Array(g.length), Q = 0; - Q < g.length; - ++Q - ) - B[Q] = g.charCodeAt(Q) - return B - } catch (A) { - throw new Error('Converting base64 string to bytes failed.') - } - } - function bA(A) { - if (QA(A)) return YA(A.slice(BA.length)) - } - var mA, - vA = { b: cA, d: yA, c: sA, f: wA, g: uA, a: D, e: lA }, - UA = - (eA(), - (Q.___wasm_call_ctors = function () { - return (UA = Q.___wasm_call_ctors = Q.asm.i).apply( - null, - arguments - ) - })), - SA = - ((Q._crypto_aead_chacha20poly1305_encrypt_detached = function () { - return (Q._crypto_aead_chacha20poly1305_encrypt_detached = - Q.asm.j).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_encrypt = function () { - return (Q._crypto_aead_chacha20poly1305_encrypt = Q.asm.k).apply( - null, - arguments - ) - }), - (Q._crypto_aead_chacha20poly1305_ietf_encrypt_detached = - function () { - return (Q._crypto_aead_chacha20poly1305_ietf_encrypt_detached = - Q.asm.l).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_ietf_encrypt = function () { - return (Q._crypto_aead_chacha20poly1305_ietf_encrypt = - Q.asm.m).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_decrypt_detached = function () { - return (Q._crypto_aead_chacha20poly1305_decrypt_detached = - Q.asm.n).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_decrypt = function () { - return (Q._crypto_aead_chacha20poly1305_decrypt = Q.asm.o).apply( - null, - arguments - ) - }), - (Q._crypto_aead_chacha20poly1305_ietf_decrypt_detached = - function () { - return (Q._crypto_aead_chacha20poly1305_ietf_decrypt_detached = - Q.asm.p).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_ietf_decrypt = function () { - return (Q._crypto_aead_chacha20poly1305_ietf_decrypt = - Q.asm.q).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_ietf_keybytes = function () { - return (Q._crypto_aead_chacha20poly1305_ietf_keybytes = - Q.asm.r).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_ietf_npubbytes = function () { - return (Q._crypto_aead_chacha20poly1305_ietf_npubbytes = - Q.asm.s).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_ietf_nsecbytes = function () { - return (Q._crypto_aead_chacha20poly1305_ietf_nsecbytes = - Q.asm.t).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_ietf_abytes = function () { - return (Q._crypto_aead_chacha20poly1305_ietf_abytes = - Q.asm.u).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_ietf_messagebytes_max = - function () { - return (Q._crypto_aead_chacha20poly1305_ietf_messagebytes_max = - Q.asm.v).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_ietf_keygen = function () { - return (Q._crypto_aead_chacha20poly1305_ietf_keygen = - Q.asm.w).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_keybytes = function () { - return (Q._crypto_aead_chacha20poly1305_keybytes = Q.asm.x).apply( - null, - arguments - ) - }), - (Q._crypto_aead_chacha20poly1305_npubbytes = function () { - return (Q._crypto_aead_chacha20poly1305_npubbytes = - Q.asm.y).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_nsecbytes = function () { - return (Q._crypto_aead_chacha20poly1305_nsecbytes = - Q.asm.z).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_abytes = function () { - return (Q._crypto_aead_chacha20poly1305_abytes = Q.asm.A).apply( - null, - arguments - ) - }), - (Q._crypto_aead_chacha20poly1305_messagebytes_max = function () { - return (Q._crypto_aead_chacha20poly1305_messagebytes_max = - Q.asm.B).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_keygen = function () { - return (Q._crypto_aead_chacha20poly1305_keygen = Q.asm.C).apply( - null, - arguments - ) - }), - (Q._crypto_aead_xchacha20poly1305_ietf_encrypt_detached = - function () { - return (Q._crypto_aead_xchacha20poly1305_ietf_encrypt_detached = - Q.asm.D).apply(null, arguments) - }), - (Q._crypto_aead_xchacha20poly1305_ietf_encrypt = function () { - return (Q._crypto_aead_xchacha20poly1305_ietf_encrypt = - Q.asm.E).apply(null, arguments) - }), - (Q._crypto_aead_xchacha20poly1305_ietf_decrypt_detached = - function () { - return (Q._crypto_aead_xchacha20poly1305_ietf_decrypt_detached = - Q.asm.F).apply(null, arguments) - }), - (Q._crypto_aead_xchacha20poly1305_ietf_decrypt = function () { - return (Q._crypto_aead_xchacha20poly1305_ietf_decrypt = - Q.asm.G).apply(null, arguments) - }), - (Q._crypto_aead_xchacha20poly1305_ietf_keybytes = function () { - return (Q._crypto_aead_xchacha20poly1305_ietf_keybytes = - Q.asm.H).apply(null, arguments) - }), - (Q._crypto_aead_xchacha20poly1305_ietf_npubbytes = function () { - return (Q._crypto_aead_xchacha20poly1305_ietf_npubbytes = - Q.asm.I).apply(null, arguments) - }), - (Q._crypto_aead_xchacha20poly1305_ietf_nsecbytes = function () { - return (Q._crypto_aead_xchacha20poly1305_ietf_nsecbytes = - Q.asm.J).apply(null, arguments) - }), - (Q._crypto_aead_xchacha20poly1305_ietf_abytes = function () { - return (Q._crypto_aead_xchacha20poly1305_ietf_abytes = - Q.asm.K).apply(null, arguments) - }), - (Q._crypto_aead_xchacha20poly1305_ietf_messagebytes_max = - function () { - return (Q._crypto_aead_xchacha20poly1305_ietf_messagebytes_max = - Q.asm.L).apply(null, arguments) - }), - (Q._crypto_aead_xchacha20poly1305_ietf_keygen = function () { - return (Q._crypto_aead_xchacha20poly1305_ietf_keygen = - Q.asm.M).apply(null, arguments) - }), - (Q._crypto_auth_bytes = function () { - return (Q._crypto_auth_bytes = Q.asm.N).apply(null, arguments) - }), - (Q._crypto_auth_keybytes = function () { - return (Q._crypto_auth_keybytes = Q.asm.O).apply(null, arguments) - }), - (Q._crypto_auth = function () { - return (Q._crypto_auth = Q.asm.P).apply(null, arguments) - }), - (Q._crypto_auth_verify = function () { - return (Q._crypto_auth_verify = Q.asm.Q).apply(null, arguments) - }), - (Q._crypto_auth_keygen = function () { - return (Q._crypto_auth_keygen = Q.asm.R).apply(null, arguments) - }), - (Q._crypto_box_seedbytes = function () { - return (Q._crypto_box_seedbytes = Q.asm.S).apply(null, arguments) - }), - (Q._crypto_box_publickeybytes = function () { - return (Q._crypto_box_publickeybytes = Q.asm.T).apply( - null, - arguments - ) - }), - (Q._crypto_box_secretkeybytes = function () { - return (Q._crypto_box_secretkeybytes = Q.asm.U).apply( - null, - arguments - ) - }), - (Q._crypto_box_beforenmbytes = function () { - return (Q._crypto_box_beforenmbytes = Q.asm.V).apply( - null, - arguments - ) - }), - (Q._crypto_box_noncebytes = function () { - return (Q._crypto_box_noncebytes = Q.asm.W).apply(null, arguments) - }), - (Q._crypto_box_macbytes = function () { - return (Q._crypto_box_macbytes = Q.asm.X).apply(null, arguments) - }), - (Q._crypto_box_messagebytes_max = function () { - return (Q._crypto_box_messagebytes_max = Q.asm.Y).apply( - null, - arguments - ) - }), - (Q._crypto_box_seed_keypair = function () { - return (Q._crypto_box_seed_keypair = Q.asm.Z).apply( - null, - arguments - ) - }), - (Q._crypto_box_keypair = function () { - return (Q._crypto_box_keypair = Q.asm._).apply(null, arguments) - }), - (Q._crypto_box_beforenm = function () { - return (Q._crypto_box_beforenm = Q.asm.$).apply(null, arguments) - }), - (Q._crypto_box_detached_afternm = function () { - return (Q._crypto_box_detached_afternm = Q.asm.aa).apply( - null, - arguments - ) - }), - (Q._crypto_box_detached = function () { - return (Q._crypto_box_detached = Q.asm.ba).apply(null, arguments) - }), - (Q._crypto_box_easy_afternm = function () { - return (Q._crypto_box_easy_afternm = Q.asm.ca).apply( - null, - arguments - ) - }), - (Q._crypto_box_easy = function () { - return (Q._crypto_box_easy = Q.asm.da).apply(null, arguments) - }), - (Q._crypto_box_open_detached_afternm = function () { - return (Q._crypto_box_open_detached_afternm = Q.asm.ea).apply( - null, - arguments - ) - }), - (Q._crypto_box_open_detached = function () { - return (Q._crypto_box_open_detached = Q.asm.fa).apply( - null, - arguments - ) - }), - (Q._crypto_box_open_easy_afternm = function () { - return (Q._crypto_box_open_easy_afternm = Q.asm.ga).apply( - null, - arguments - ) - }), - (Q._crypto_box_open_easy = function () { - return (Q._crypto_box_open_easy = Q.asm.ha).apply(null, arguments) - }), - (Q._crypto_box_seal = function () { - return (Q._crypto_box_seal = Q.asm.ia).apply(null, arguments) - }), - (Q._crypto_box_seal_open = function () { - return (Q._crypto_box_seal_open = Q.asm.ja).apply(null, arguments) - }), - (Q._crypto_box_sealbytes = function () { - return (Q._crypto_box_sealbytes = Q.asm.ka).apply(null, arguments) - }), - (Q._crypto_generichash_bytes_min = function () { - return (Q._crypto_generichash_bytes_min = Q.asm.la).apply( - null, - arguments - ) - }), - (Q._crypto_generichash_bytes_max = function () { - return (Q._crypto_generichash_bytes_max = Q.asm.ma).apply( - null, - arguments - ) - }), - (Q._crypto_generichash_bytes = function () { - return (Q._crypto_generichash_bytes = Q.asm.na).apply( - null, - arguments - ) - }), - (Q._crypto_generichash_keybytes_min = function () { - return (Q._crypto_generichash_keybytes_min = Q.asm.oa).apply( - null, - arguments - ) - }), - (Q._crypto_generichash_keybytes_max = function () { - return (Q._crypto_generichash_keybytes_max = Q.asm.pa).apply( - null, - arguments - ) - }), - (Q._crypto_generichash_keybytes = function () { - return (Q._crypto_generichash_keybytes = Q.asm.qa).apply( - null, - arguments - ) - }), - (Q._crypto_generichash_statebytes = function () { - return (Q._crypto_generichash_statebytes = Q.asm.ra).apply( - null, - arguments - ) - }), - (Q._crypto_generichash = function () { - return (Q._crypto_generichash = Q.asm.sa).apply(null, arguments) - }), - (Q._crypto_generichash_init = function () { - return (Q._crypto_generichash_init = Q.asm.ta).apply( - null, - arguments - ) - }), - (Q._crypto_generichash_update = function () { - return (Q._crypto_generichash_update = Q.asm.ua).apply( - null, - arguments - ) - }), - (Q._crypto_generichash_final = function () { - return (Q._crypto_generichash_final = Q.asm.va).apply( - null, - arguments - ) - }), - (Q._crypto_generichash_keygen = function () { - return (Q._crypto_generichash_keygen = Q.asm.wa).apply( - null, - arguments - ) - }), - (Q._crypto_hash_bytes = function () { - return (Q._crypto_hash_bytes = Q.asm.xa).apply(null, arguments) - }), - (Q._crypto_hash = function () { - return (Q._crypto_hash = Q.asm.ya).apply(null, arguments) - }), - (Q._crypto_kdf_bytes_min = function () { - return (Q._crypto_kdf_bytes_min = Q.asm.za).apply(null, arguments) - }), - (Q._crypto_kdf_bytes_max = function () { - return (Q._crypto_kdf_bytes_max = Q.asm.Aa).apply(null, arguments) - }), - (Q._crypto_kdf_contextbytes = function () { - return (Q._crypto_kdf_contextbytes = Q.asm.Ba).apply( - null, - arguments - ) - }), - (Q._crypto_kdf_keybytes = function () { - return (Q._crypto_kdf_keybytes = Q.asm.Ca).apply(null, arguments) - }), - (Q._crypto_kdf_derive_from_key = function () { - return (Q._crypto_kdf_derive_from_key = Q.asm.Da).apply( - null, - arguments - ) - }), - (Q._crypto_kdf_keygen = function () { - return (Q._crypto_kdf_keygen = Q.asm.Ea).apply(null, arguments) - }), - (Q._crypto_kx_seed_keypair = function () { - return (Q._crypto_kx_seed_keypair = Q.asm.Fa).apply( - null, - arguments - ) - }), - (Q._crypto_kx_keypair = function () { - return (Q._crypto_kx_keypair = Q.asm.Ga).apply(null, arguments) - }), - (Q._crypto_kx_client_session_keys = function () { - return (Q._crypto_kx_client_session_keys = Q.asm.Ha).apply( - null, - arguments - ) - }), - (Q._crypto_kx_server_session_keys = function () { - return (Q._crypto_kx_server_session_keys = Q.asm.Ia).apply( - null, - arguments - ) - }), - (Q._crypto_kx_publickeybytes = function () { - return (Q._crypto_kx_publickeybytes = Q.asm.Ja).apply( - null, - arguments - ) - }), - (Q._crypto_kx_secretkeybytes = function () { - return (Q._crypto_kx_secretkeybytes = Q.asm.Ka).apply( - null, - arguments - ) - }), - (Q._crypto_kx_seedbytes = function () { - return (Q._crypto_kx_seedbytes = Q.asm.La).apply(null, arguments) - }), - (Q._crypto_kx_sessionkeybytes = function () { - return (Q._crypto_kx_sessionkeybytes = Q.asm.Ma).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_alg_argon2i13 = function () { - return (Q._crypto_pwhash_alg_argon2i13 = Q.asm.Na).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_alg_argon2id13 = function () { - return (Q._crypto_pwhash_alg_argon2id13 = Q.asm.Oa).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_alg_default = function () { - return (Q._crypto_pwhash_alg_default = Q.asm.Pa).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_bytes_min = function () { - return (Q._crypto_pwhash_bytes_min = Q.asm.Qa).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_bytes_max = function () { - return (Q._crypto_pwhash_bytes_max = Q.asm.Ra).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_passwd_min = function () { - return (Q._crypto_pwhash_passwd_min = Q.asm.Sa).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_passwd_max = function () { - return (Q._crypto_pwhash_passwd_max = Q.asm.Ta).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_saltbytes = function () { - return (Q._crypto_pwhash_saltbytes = Q.asm.Ua).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_strbytes = function () { - return (Q._crypto_pwhash_strbytes = Q.asm.Va).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_strprefix = function () { - return (Q._crypto_pwhash_strprefix = Q.asm.Wa).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_opslimit_min = function () { - return (Q._crypto_pwhash_opslimit_min = Q.asm.Xa).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_opslimit_max = function () { - return (Q._crypto_pwhash_opslimit_max = Q.asm.Ya).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_memlimit_min = function () { - return (Q._crypto_pwhash_memlimit_min = Q.asm.Za).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_memlimit_max = function () { - return (Q._crypto_pwhash_memlimit_max = Q.asm._a).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_opslimit_interactive = function () { - return (Q._crypto_pwhash_opslimit_interactive = Q.asm.$a).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_memlimit_interactive = function () { - return (Q._crypto_pwhash_memlimit_interactive = Q.asm.ab).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_opslimit_moderate = function () { - return (Q._crypto_pwhash_opslimit_moderate = Q.asm.bb).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_memlimit_moderate = function () { - return (Q._crypto_pwhash_memlimit_moderate = Q.asm.cb).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_opslimit_sensitive = function () { - return (Q._crypto_pwhash_opslimit_sensitive = Q.asm.db).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_memlimit_sensitive = function () { - return (Q._crypto_pwhash_memlimit_sensitive = Q.asm.eb).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash = function () { - return (Q._crypto_pwhash = Q.asm.fb).apply(null, arguments) - }), - (Q._crypto_pwhash_str = function () { - return (Q._crypto_pwhash_str = Q.asm.gb).apply(null, arguments) - }), - (Q._crypto_pwhash_str_alg = function () { - return (Q._crypto_pwhash_str_alg = Q.asm.hb).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_str_verify = function () { - return (Q._crypto_pwhash_str_verify = Q.asm.ib).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_str_needs_rehash = function () { - return (Q._crypto_pwhash_str_needs_rehash = Q.asm.jb).apply( - null, - arguments - ) - }), - (Q._crypto_scalarmult_base = function () { - return (Q._crypto_scalarmult_base = Q.asm.kb).apply( - null, - arguments - ) - }), - (Q._crypto_scalarmult = function () { - return (Q._crypto_scalarmult = Q.asm.lb).apply(null, arguments) - }), - (Q._crypto_scalarmult_bytes = function () { - return (Q._crypto_scalarmult_bytes = Q.asm.mb).apply( - null, - arguments - ) - }), - (Q._crypto_scalarmult_scalarbytes = function () { - return (Q._crypto_scalarmult_scalarbytes = Q.asm.nb).apply( - null, - arguments - ) - }), - (Q._crypto_secretbox_keybytes = function () { - return (Q._crypto_secretbox_keybytes = Q.asm.ob).apply( - null, - arguments - ) - }), - (Q._crypto_secretbox_noncebytes = function () { - return (Q._crypto_secretbox_noncebytes = Q.asm.pb).apply( - null, - arguments - ) - }), - (Q._crypto_secretbox_macbytes = function () { - return (Q._crypto_secretbox_macbytes = Q.asm.qb).apply( - null, - arguments - ) - }), - (Q._crypto_secretbox_messagebytes_max = function () { - return (Q._crypto_secretbox_messagebytes_max = Q.asm.rb).apply( - null, - arguments - ) - }), - (Q._crypto_secretbox_keygen = function () { - return (Q._crypto_secretbox_keygen = Q.asm.sb).apply( - null, - arguments - ) - }), - (Q._crypto_secretbox_detached = function () { - return (Q._crypto_secretbox_detached = Q.asm.tb).apply( - null, - arguments - ) - }), - (Q._crypto_secretbox_easy = function () { - return (Q._crypto_secretbox_easy = Q.asm.ub).apply( - null, - arguments - ) - }), - (Q._crypto_secretbox_open_detached = function () { - return (Q._crypto_secretbox_open_detached = Q.asm.vb).apply( - null, - arguments - ) - }), - (Q._crypto_secretbox_open_easy = function () { - return (Q._crypto_secretbox_open_easy = Q.asm.wb).apply( - null, - arguments - ) - }), - (Q._crypto_secretstream_xchacha20poly1305_keygen = function () { - return (Q._crypto_secretstream_xchacha20poly1305_keygen = - Q.asm.xb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_init_push = function () { - return (Q._crypto_secretstream_xchacha20poly1305_init_push = - Q.asm.yb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_init_pull = function () { - return (Q._crypto_secretstream_xchacha20poly1305_init_pull = - Q.asm.zb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_rekey = function () { - return (Q._crypto_secretstream_xchacha20poly1305_rekey = - Q.asm.Ab).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_push = function () { - return (Q._crypto_secretstream_xchacha20poly1305_push = - Q.asm.Bb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_pull = function () { - return (Q._crypto_secretstream_xchacha20poly1305_pull = - Q.asm.Cb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_statebytes = function () { - return (Q._crypto_secretstream_xchacha20poly1305_statebytes = - Q.asm.Db).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_abytes = function () { - return (Q._crypto_secretstream_xchacha20poly1305_abytes = - Q.asm.Eb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_headerbytes = - function () { - return (Q._crypto_secretstream_xchacha20poly1305_headerbytes = - Q.asm.Fb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_keybytes = function () { - return (Q._crypto_secretstream_xchacha20poly1305_keybytes = - Q.asm.Gb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_messagebytes_max = - function () { - return (Q._crypto_secretstream_xchacha20poly1305_messagebytes_max = - Q.asm.Hb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_tag_message = - function () { - return (Q._crypto_secretstream_xchacha20poly1305_tag_message = - Q.asm.Ib).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_tag_push = function () { - return (Q._crypto_secretstream_xchacha20poly1305_tag_push = - Q.asm.Jb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_tag_rekey = function () { - return (Q._crypto_secretstream_xchacha20poly1305_tag_rekey = - Q.asm.Kb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_tag_final = function () { - return (Q._crypto_secretstream_xchacha20poly1305_tag_final = - Q.asm.Lb).apply(null, arguments) - }), - (Q._crypto_shorthash_bytes = function () { - return (Q._crypto_shorthash_bytes = Q.asm.Mb).apply( - null, - arguments - ) - }), - (Q._crypto_shorthash_keybytes = function () { - return (Q._crypto_shorthash_keybytes = Q.asm.Nb).apply( - null, - arguments - ) - }), - (Q._crypto_shorthash = function () { - return (Q._crypto_shorthash = Q.asm.Ob).apply(null, arguments) - }), - (Q._crypto_shorthash_keygen = function () { - return (Q._crypto_shorthash_keygen = Q.asm.Pb).apply( - null, - arguments - ) - }), - (Q._crypto_sign_statebytes = function () { - return (Q._crypto_sign_statebytes = Q.asm.Qb).apply( - null, - arguments - ) - }), - (Q._crypto_sign_bytes = function () { - return (Q._crypto_sign_bytes = Q.asm.Rb).apply(null, arguments) - }), - (Q._crypto_sign_seedbytes = function () { - return (Q._crypto_sign_seedbytes = Q.asm.Sb).apply( - null, - arguments - ) - }), - (Q._crypto_sign_publickeybytes = function () { - return (Q._crypto_sign_publickeybytes = Q.asm.Tb).apply( - null, - arguments - ) - }), - (Q._crypto_sign_secretkeybytes = function () { - return (Q._crypto_sign_secretkeybytes = Q.asm.Ub).apply( - null, - arguments - ) - }), - (Q._crypto_sign_messagebytes_max = function () { - return (Q._crypto_sign_messagebytes_max = Q.asm.Vb).apply( - null, - arguments - ) - }), - (Q._crypto_sign_seed_keypair = function () { - return (Q._crypto_sign_seed_keypair = Q.asm.Wb).apply( - null, - arguments - ) - }), - (Q._crypto_sign_keypair = function () { - return (Q._crypto_sign_keypair = Q.asm.Xb).apply(null, arguments) - }), - (Q._crypto_sign = function () { - return (Q._crypto_sign = Q.asm.Yb).apply(null, arguments) - }), - (Q._crypto_sign_open = function () { - return (Q._crypto_sign_open = Q.asm.Zb).apply(null, arguments) - }), - (Q._crypto_sign_detached = function () { - return (Q._crypto_sign_detached = Q.asm._b).apply(null, arguments) - }), - (Q._crypto_sign_verify_detached = function () { - return (Q._crypto_sign_verify_detached = Q.asm.$b).apply( - null, - arguments - ) - }), - (Q._crypto_sign_init = function () { - return (Q._crypto_sign_init = Q.asm.ac).apply(null, arguments) - }), - (Q._crypto_sign_update = function () { - return (Q._crypto_sign_update = Q.asm.bc).apply(null, arguments) - }), - (Q._crypto_sign_final_create = function () { - return (Q._crypto_sign_final_create = Q.asm.cc).apply( - null, - arguments - ) - }), - (Q._crypto_sign_final_verify = function () { - return (Q._crypto_sign_final_verify = Q.asm.dc).apply( - null, - arguments - ) - }), - (Q._crypto_sign_ed25519_pk_to_curve25519 = function () { - return (Q._crypto_sign_ed25519_pk_to_curve25519 = Q.asm.ec).apply( - null, - arguments - ) - }), - (Q._crypto_sign_ed25519_sk_to_curve25519 = function () { - return (Q._crypto_sign_ed25519_sk_to_curve25519 = Q.asm.fc).apply( - null, - arguments - ) - }), - (Q._randombytes_random = function () { - return (Q._randombytes_random = Q.asm.gc).apply(null, arguments) - }), - (Q._randombytes_stir = function () { - return (Q._randombytes_stir = Q.asm.hc).apply(null, arguments) - }), - (Q._randombytes_uniform = function () { - return (Q._randombytes_uniform = Q.asm.ic).apply(null, arguments) - }), - (Q._randombytes_buf = function () { - return (Q._randombytes_buf = Q.asm.jc).apply(null, arguments) - }), - (Q._randombytes_buf_deterministic = function () { - return (Q._randombytes_buf_deterministic = Q.asm.kc).apply( - null, - arguments - ) - }), - (Q._randombytes_seedbytes = function () { - return (Q._randombytes_seedbytes = Q.asm.lc).apply( - null, - arguments - ) - }), - (Q._randombytes_close = function () { - return (Q._randombytes_close = Q.asm.mc).apply(null, arguments) - }), - (Q._randombytes = function () { - return (Q._randombytes = Q.asm.nc).apply(null, arguments) - }), - (Q._sodium_bin2hex = function () { - return (Q._sodium_bin2hex = Q.asm.oc).apply(null, arguments) - }), - (Q._sodium_hex2bin = function () { - return (Q._sodium_hex2bin = Q.asm.pc).apply(null, arguments) - }), - (Q._sodium_base64_encoded_len = function () { - return (Q._sodium_base64_encoded_len = Q.asm.qc).apply( - null, - arguments - ) - }), - (Q._sodium_bin2base64 = function () { - return (Q._sodium_bin2base64 = Q.asm.rc).apply(null, arguments) - }), - (Q._sodium_base642bin = function () { - return (Q._sodium_base642bin = Q.asm.sc).apply(null, arguments) - }), - (Q._sodium_init = function () { - return (Q._sodium_init = Q.asm.tc).apply(null, arguments) - }), - (Q._sodium_pad = function () { - return (Q._sodium_pad = Q.asm.uc).apply(null, arguments) - }), - (Q._sodium_unpad = function () { - return (Q._sodium_unpad = Q.asm.vc).apply(null, arguments) - }), - (Q._sodium_version_string = function () { - return (Q._sodium_version_string = Q.asm.wc).apply( - null, - arguments - ) - }), - (Q._sodium_library_version_major = function () { - return (Q._sodium_library_version_major = Q.asm.xc).apply( - null, - arguments - ) - }), - (Q._sodium_library_version_minor = function () { - return (Q._sodium_library_version_minor = Q.asm.yc).apply( - null, - arguments - ) - }), - (Q._sodium_library_minimal = function () { - return (Q._sodium_library_minimal = Q.asm.zc).apply( - null, - arguments - ) - }), - (Q.___errno_location = function () { - return (SA = Q.___errno_location = Q.asm.Ac).apply( - null, - arguments - ) - })) - function NA(A) { - function I() { - mA || - ((mA = !0), - (Q.calledRun = !0), - F || - (X(), - V(), - Q.onRuntimeInitialized && Q.onRuntimeInitialized(), - W())) - } - ;(A = A || E), - Z > 0 || - (q(), - Z > 0 || - (Q.setStatus - ? (Q.setStatus('Running...'), - setTimeout(function () { - setTimeout(function () { - Q.setStatus('') - }, 1), - I() - }, 1)) - : I())) - } - if ( - ((Q._malloc = function () { - return (Q._malloc = Q.asm.Bc).apply(null, arguments) - }), - (Q._free = function () { - return (Q._free = Q.asm.Cc).apply(null, arguments) - }), - (Q.setValue = p), - (Q.getValue = l), - (Q.UTF8ToString = N), - (z = function A() { - mA || NA(), mA || (z = A) - }), - (Q.run = NA), - Q.preInit) - ) - for ( - 'function' == typeof Q.preInit && (Q.preInit = [Q.preInit]); - Q.preInit.length > 0; - - ) - Q.preInit.pop()() - NA() - }) - }) - var g, - Q = void 0 !== Q ? Q : {}, - C = {} - for (g in Q) Q.hasOwnProperty(g) && (C[g] = Q[g]) - var E = [], - i = !1, - n = !1, - a = !1, - r = !1 - ;(i = 'object' == typeof window), - (n = 'function' == typeof importScripts), - (a = - 'object' == typeof process && - 'object' == typeof process.versions && - 'string' == typeof process.versions.node), - (r = !i && !a && !n) - var o, - e, - t, - f, - c, - y = '' - function s(A) { - return Q.locateFile ? Q.locateFile(A, y) : y + A - } - a - ? ((y = n ? require('path').dirname(y) + '/' : __dirname + '/'), - (o = function (A, I) { - var g = HA(A) - return g - ? I - ? g - : g.toString() - : (f || (f = require('fs')), - c || (c = require('path')), - (A = c.normalize(A)), - f.readFileSync(A, I ? null : 'utf8')) - }), - (t = function (A) { - var I = o(A, !0) - return I.buffer || (I = new Uint8Array(I)), F(I.buffer), I - }), - process.argv.length > 1 && process.argv[1].replace(/\\/g, '/'), - (E = process.argv.slice(2)), - 'undefined' != typeof module && (module.exports = Q), - (Q.inspect = function () { - return '[Emscripten Module object]' - })) - : r - ? ('undefined' != typeof read && - (o = function (A) { - var I = HA(A) - return I ? GA(I) : read(A) - }), - (t = function (A) { - var I - return (I = HA(A)) - ? I - : 'function' == typeof readbuffer - ? new Uint8Array(readbuffer(A)) - : (F('object' == typeof (I = read(A, 'binary'))), I) - }), - 'undefined' != typeof scriptArgs - ? (E = scriptArgs) - : void 0 !== arguments && (E = arguments), - 'undefined' != typeof print && - ('undefined' == typeof console && (console = {}), - (console.log = print), - (console.warn = console.error = - 'undefined' != typeof printErr ? printErr : print))) - : (i || n) && - (n - ? (y = self.location.href) - : 'undefined' != typeof document && - document.currentScript && - (y = document.currentScript.src), - (y = 0 !== y.indexOf('blob:') ? y.substr(0, y.lastIndexOf('/') + 1) : ''), - (o = function (A) { - try { - var I = new XMLHttpRequest() - return I.open('GET', A, !1), I.send(null), I.responseText - } catch (I) { - var g = HA(A) - if (g) return GA(g) - throw I - } - }), - n && - (t = function (A) { - try { - var I = new XMLHttpRequest() - return ( - I.open('GET', A, !1), - (I.responseType = 'arraybuffer'), - I.send(null), - new Uint8Array(I.response) - ) - } catch (I) { - var g = HA(A) - if (g) return g - throw I - } - }), - (e = function (A, I, g) { - var B = new XMLHttpRequest() - B.open('GET', A, !0), - (B.responseType = 'arraybuffer'), - (B.onload = function () { - if (200 == B.status || (0 == B.status && B.response)) I(B.response) - else { - var Q = HA(A) - Q ? I(Q.buffer) : g() - } - }), - (B.onerror = g), - B.send(null) - })), - Q.print - var w, - h, - D = Q.printErr || void 0 - for (g in C) C.hasOwnProperty(g) && (Q[g] = C[g]) - function u(A, I, g, B) { - switch (('*' === (g = g || 'i8').charAt(g.length - 1) && (g = 'i32'), g)) { - case 'i1': - case 'i8': - k[A >> 0] = I - break - case 'i16': - H[A >> 1] = I - break - case 'i32': - Y[A >> 2] = I - break - case 'i64': - ;(EA = [ - I >>> 0, - ((CA = I), - +Math.abs(CA) >= 1 - ? CA > 0 - ? (0 | Math.min(+Math.floor(CA / 4294967296), 4294967295)) >>> 0 - : ~~+Math.ceil((CA - +(~~CA >>> 0)) / 4294967296) >>> 0 - : 0) - ]), - (Y[A >> 2] = EA[0]), - (Y[(A + 4) >> 2] = EA[1]) - break - case 'float': - b[A >> 2] = I - break - case 'double': - m[A >> 3] = I - break - default: - $('invalid type for setValue: ' + g) - } - } - function p(A, I, g) { - switch (('*' === (I = I || 'i8').charAt(I.length - 1) && (I = 'i32'), I)) { - case 'i1': - case 'i8': - return k[A >> 0] - case 'i16': - return H[A >> 1] - case 'i32': - case 'i64': - return Y[A >> 2] - case 'float': - return b[A >> 2] - case 'double': - return m[A >> 3] - default: - $('invalid type for getValue: ' + I) - } - return null - } - ;(C = null), - Q.arguments && (E = Q.arguments), - Q.thisProgram && Q.thisProgram, - Q.quit && Q.quit, - Q.wasmBinary && (w = Q.wasmBinary), - Q.noExitRuntime && Q.noExitRuntime, - 'object' != typeof WebAssembly && $('no native wasm support detected') - var l = !1 - function F(A, I) { - A || $('Assertion failed: ' + I) - } - var G, - k, - _, - H, - Y, - b, - m, - v = 'undefined' != typeof TextDecoder ? new TextDecoder('utf8') : void 0 - function U(A, I, g) { - for (var B = I + g, Q = I; A[Q] && !(Q >= B); ) ++Q - if (Q - I > 16 && A.subarray && v) return v.decode(A.subarray(I, Q)) - for (var C = ''; I < Q; ) { - var E = A[I++] - if (128 & E) { - var i = 63 & A[I++] - if (192 != (224 & E)) { - var n = 63 & A[I++] - if ( - (E = - 224 == (240 & E) - ? ((15 & E) << 12) | (i << 6) | n - : ((7 & E) << 18) | (i << 12) | (n << 6) | (63 & A[I++])) < - 65536 - ) - C += String.fromCharCode(E) - else { - var a = E - 65536 - C += String.fromCharCode(55296 | (a >> 10), 56320 | (1023 & a)) - } - } else C += String.fromCharCode(((31 & E) << 6) | i) - } else C += String.fromCharCode(E) - } - return C - } - function S(A, I) { - return A ? U(_, A, I) : '' - } - function N(A, I) { - return A % I > 0 && (A += I - (A % I)), A - } - function M(A) { - ;(G = A), - (Q.HEAP8 = k = new Int8Array(A)), - (Q.HEAP16 = H = new Int16Array(A)), - (Q.HEAP32 = Y = new Int32Array(A)), - (Q.HEAPU8 = _ = new Uint8Array(A)), - (Q.HEAPU16 = new Uint16Array(A)), - (Q.HEAPU32 = new Uint32Array(A)), - (Q.HEAPF32 = b = new Float32Array(A)), - (Q.HEAPF64 = m = new Float64Array(A)) - } - Q.INITIAL_MEMORY - var d, - P = [], - R = [], - J = [], - x = [] - function L() { - if (Q.preRun) - for ( - 'function' == typeof Q.preRun && (Q.preRun = [Q.preRun]); - Q.preRun.length; - - ) - V(Q.preRun.shift()) - eA(P) - } - function K() { - eA(R) - } - function q() { - eA(J) - } - function X() { - if (Q.postRun) - for ( - 'function' == typeof Q.postRun && (Q.postRun = [Q.postRun]); - Q.postRun.length; - - ) - W(Q.postRun.shift()) - eA(x) - } - function V(A) { - P.unshift(A) - } - function W(A) { - x.unshift(A) - } - R.push({ - func: function () { - mA() - } - }) - var T = 0, - j = null, - Z = null - function O(A) { - T++, Q.monitorRunDependencies && Q.monitorRunDependencies(T) - } - function z(A) { - if ( - (T--, - Q.monitorRunDependencies && Q.monitorRunDependencies(T), - 0 == T && (null !== j && (clearInterval(j), (j = null)), Z)) - ) { - var I = Z - ;(Z = null), I() - } - } - function $(A) { - throw ( - (Q.onAbort && Q.onAbort(A), - D((A += '')), - (l = !0), - (A = 'abort(' + A + '). Build with -s ASSERTIONS=1 for more info.'), - new WebAssembly.RuntimeError(A)) - ) - } - function AA(A, I) { - return String.prototype.startsWith ? A.startsWith(I) : 0 === A.indexOf(I) - } - ;(Q.preloadedImages = {}), (Q.preloadedAudios = {}) - var IA = 'data:application/octet-stream;base64,' - function gA(A) { - return AA(A, IA) - } - var BA = 'file://' - function QA(A) { - return AA(A, BA) - } - var CA, - EA, - iA = - 'data:application/octet-stream;base64,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CiASfnwgCSALfnwiEUKAgIAQfCIUQhqHfCIiQoCAgAh8IiNCGYd8IhkgGUKAgIAQfCIZQoCAgOAPg30+AgggACASIBh+IA0gDn58IAkgEH58IAwgHH58IAsgF358IBNCGod8IhMgE0KAgIAIfCITQoCAgPAPg30+AhwgACAMIBp+IAkgFX58IBAgFn58IAogD358IAsgDX58IBlCGod8IgogCkKAgIAIfCIKQoCAgPAPg30+AgwgACAQIBJ+IA0gDX58IA4gD358IAkgG358IAwgF358IAsgA6wiDX58IBNCGYd8IgsgC0KAgIAQfCILQoCAgOAPg30+AiAgACAgICFCgICA8A+DfSAeIB9CgICAYIN9IApCGYd8IgpCgICAEHwiD0IaiHw+AhQgACAKIA9CgICA4A+DfT4CECAAIA4gEH4gGCAdfnwgEiAcfnwgCSAXfnwgDCANfnwgC0Iah3wiCSAJQoCAgAh8IglCgICA8A+DfT4CJCAAICIgI0KAgIDwD4N9IBEgFEKAgIBgg30gCUIZh0ITfnwiCUKAgIAQfCIMQhqIfD4CBCAAIAkgDEKAgIDgD4N9PgIACxAAIAAzAAAgADEAAkIQhoQL8wICAn8BfgJAIAJFDQAgACACaiIDQQFrIAE6AAAgACABOgAAIAJBA0kNACADQQJrIAE6AAAgACABOgABIANBA2sgAToAACAAIAE6AAIgAkEHSQ0AIANBBGsgAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBBGsgATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQQhrIAE2AgAgAkEMayABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkEQayABNgIAIAJBFGsgATYCACACQRhrIAE2AgAgAkEcayABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkEgayICQR9LDQALCyAACwkAIAAgATcAAAuCBAEDfyACQYAETwRAIAAgASACEAQaIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAkEBSARAIAAhAgwBCyAAQQNxRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADTw0BIAJBA3ENAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvsAQESfyACKAIEIQMgASgCBCEEIAIoAgghBSABKAIIIQYgAigCDCEHIAEoAgwhCCACKAIQIQkgASgCECEKIAIoAhQhCyABKAIUIQwgAigCGCENIAEoAhghDiACKAIcIQ8gASgCHCEQIAIoAiAhESABKAIgIRIgAigCJCETIAEoAiQhFCAAIAIoAgAgASgCAGo2AgAgACATIBRqNgIkIAAgESASajYCICAAIA8gEGo2AhwgACANIA5qNgIYIAAgCyAMajYCFCAAIAkgCmo2AhAgACAHIAhqNgIMIAAgBSAGajYCCCAAIAMgBGo2AgQLGAEBf0HEnAIoAgAiAARAIAARDgALEAIAC0ABA38gACABIAFB+ABqIgIQCyAAQShqIAFBKGoiAyABQdAAaiIEEAsgAEHQAGogBCACEAsgAEH4AGogASADEAsL7AEBEn8gAigCBCEDIAEoAgQhBCACKAIIIQUgASgCCCEGIAIoAgwhByABKAIMIQggAigCECEJIAEoAhAhCiACKAIUIQsgASgCFCEMIAIoAhghDSABKAIYIQ4gAigCHCEPIAEoAhwhECACKAIgIREgASgCICESIAIoAiQhEyABKAIkIRQgACABKAIAIAIoAgBrNgIAIAAgFCATazYCJCAAIBIgEWs2AiAgACAQIA9rNgIcIAAgDiANazYCGCAAIAwgC2s2AhQgACAKIAlrNgIQIAAgCCAHazYCDCAAIAYgBWs2AgggACAEIANrNgIECwQAQSALCgAgACABIAIQMguCDQEHfwJAIABFDQAgAEEIayIDIABBBGsoAgAiAUF4cSIAaiEFAkAgAUEBcQ0AIAFBA3FFDQEgAyADKAIAIgJrIgNBlJgCKAIAIgRJDQEgACACaiEAIANBmJgCKAIARwRAIAJB/wFNBEAgAygCCCIEIAJBA3YiAkEDdEGsmAJqRxogBCADKAIMIgFGBEBBhJgCQYSYAigCAEF+IAJ3cTYCAAwDCyAEIAE2AgwgASAENgIIDAILIAMoAhghBgJAIAMgAygCDCIBRwRAIAMoAggiAiAETwRAIAIoAgwaCyACIAE2AgwgASACNgIIDAELAkAgA0EUaiICKAIAIgQNACADQRBqIgIoAgAiBA0AQQAhAQwBCwNAIAIhByAEIgFBFGoiAigCACIEDQAgAUEQaiECIAEoAhAiBA0ACyAHQQA2AgALIAZFDQECQCADIAMoAhwiAkECdEG0mgJqIgQoAgBGBEAgBCABNgIAIAENAUGImAJBiJgCKAIAQX4gAndxNgIADAMLIAZBEEEUIAYoAhAgA0YbaiABNgIAIAFFDQILIAEgBjYCGCADKAIQIgIEQCABIAI2AhAgAiABNgIYCyADKAIUIgJFDQEgASACNgIUIAIgATYCGAwBCyAFKAIEIgFBA3FBA0cNAEGMmAIgADYCACAFIAFBfnE2AgQgAyAAQQFyNgIEIAAgA2ogADYCAA8LIAMgBU8NACAFKAIEIgFBAXFFDQACQCABQQJxRQRAIAVBnJgCKAIARgRAQZyYAiADNgIAQZCYAkGQmAIoAgAgAGoiADYCACADIABBAXI2AgQgA0GYmAIoAgBHDQNBjJgCQQA2AgBBmJgCQQA2AgAPCyAFQZiYAigCAEYEQEGYmAIgAzYCAEGMmAJBjJgCKAIAIABqIgA2AgAgAyAAQQFyNgIEIAAgA2ogADYCAA8LIAFBeHEgAGohAAJAIAFB/wFNBEAgBSgCDCECIAUoAggiBCABQQN2IgFBA3RBrJgCaiIHRwRAQZSYAigCABoLIAIgBEYEQEGEmAJBhJgCKAIAQX4gAXdxNgIADAILIAIgB0cEQEGUmAIoAgAaCyAEIAI2AgwgAiAENgIIDAELIAUoAhghBgJAIAUgBSgCDCIBRwRAIAUoAggiAkGUmAIoAgBPBEAgAigCDBoLIAIgATYCDCABIAI2AggMAQsCQCAFQRRqIgIoAgAiBA0AIAVBEGoiAigCACIEDQBBACEBDAELA0AgAiEHIAQiAUEUaiICKAIAIgQNACABQRBqIQIgASgCECIEDQALIAdBADYCAAsgBkUNAAJAIAUgBSgCHCICQQJ0QbSaAmoiBCgCAEYEQCAEIAE2AgAgAQ0BQYiYAkGImAIoAgBBfiACd3E2AgAMAgsgBkEQQRQgBigCECAFRhtqIAE2AgAgAUUNAQsgASAGNgIYIAUoAhAiAgRAIAEgAjYCECACIAE2AhgLIAUoAhQiAkUNACABIAI2AhQgAiABNgIYCyADIABBAXI2AgQgACADaiAANgIAIANBmJgCKAIARw0BQYyYAiAANgIADwsgBSABQX5xNgIEIAMgAEEBcjYCBCAAIANqIAA2AgALIABB/wFNBEAgAEEDdiIBQQN0QayYAmohAAJ/QYSYAigCACICQQEgAXQiAXFFBEBBhJgCIAEgAnI2AgAgAAwBCyAAKAIICyECIAAgAzYCCCACIAM2AgwgAyAANgIMIAMgAjYCCA8LQR8hAiADQgA3AhAgAEH///8HTQRAIABBCHYiASABQYD+P2pBEHZBCHEiAXQiAiACQYDgH2pBEHZBBHEiAnQiBCAEQYCAD2pBEHZBAnEiBHRBD3YgASACciAEcmsiAUEBdCAAIAFBFWp2QQFxckEcaiECCyADIAI2AhwgAkECdEG0mgJqIQECQAJAAkBBiJgCKAIAIgRBASACdCIHcUUEQEGImAIgBCAHcjYCACABIAM2AgAgAyABNgIYDAELIABBAEEZIAJBAXZrIAJBH0YbdCECIAEoAgAhAQNAIAEiBCgCBEF4cSAARg0CIAJBHXYhASACQQF0IQIgBCABQQRxaiIHQRBqKAIAIgENAAsgByADNgIQIAMgBDYCGAsgAyADNgIMIAMgAzYCCAwBCyAEKAIIIgAgAzYCDCAEIAM2AgggA0EANgIYIAMgBDYCDCADIAA2AggLQaSYAkGkmAIoAgBBAWsiAEF/IAAbNgIACwuVAQEEfyMAQTBrIgUkACAAIAFBKGoiAyABEBMgAEEoaiIEIAMgARAWIABB0ABqIgMgACACEAsgBCAEIAJBKGoQCyAAQfgAaiIGIAJB+ABqIAFB+ABqEAsgACABQdAAaiACQdAAahALIAUgACAAEBMgACADIAQQFiAEIAMgBBATIAMgBSAGEBMgBiAFIAYQFiAFQTBqJAALOwEBfyAAIAFBKGoiAiABEBMgAEEoaiACIAEQFiAAQdAAaiABQdAAahAsIABB+ABqIAFB+ABqQbAREAsLyAICAn8DfiMAQcAFayIDJAACQCACUA0AIAAgACkDSCIFIAJCA4Z8IgY3A0ggAEFAayIEIAQpAwAgBSAGVq18IAJCPYh8NwMAIAJCgAEgBUIDiEL/AIMiB30iBloEQEIAIQUDQCAAIAUgB3ynaiABIAWnai0AADoAUCAFQgF8IgUgBlINAAsgACAAQdAAaiADIANBgAVqIgQQSCABIAanaiEBIAIgBn0iAkL/AFYEQANAIAAgASADIAQQSCABQYABaiEBIAJCgAF9IgJC/wBWDQALCyACUEUEQEIAIQUDQCAAIAWnIgRqIAEgBGotAAA6AFAgBUIBfCIFIAJSDQALCyADQcAFEAkMAQsgAkIBIAJCAVYbIQJCACEFA0AgACAFIAd8p2ogASAFp2otAAA6AFAgBUIBfCIFIAJSDQALCyADQcAFaiQAQQALFQAgAEEBNgIAIABBBGpBAEEkEBAaCwQAQRALIgEBfyABBEADQCAAIAJqEHM6AAAgAkEBaiICIAFHDQALCwvHLgEMfyMAQRBrIgwkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAQfQBTQRAQYSYAigCACIFQRAgAEELakF4cSAAQQtJGyIIQQN2IgJ2IgFBA3EEQCABQX9zQQFxIAJqIgNBA3QiAUG0mAJqKAIAIgRBCGohAAJAIAQoAggiAiABQayYAmoiAUYEQEGEmAIgBUF+IAN3cTYCAAwBC0GUmAIoAgAaIAIgATYCDCABIAI2AggLIAQgA0EDdCIBQQNyNgIEIAEgBGoiASABKAIEQQFyNgIEDA0LIAhBjJgCKAIAIgpNDQEgAQRAAkBBAiACdCIAQQAgAGtyIAEgAnRxIgBBACAAa3FBAWsiACAAQQx2QRBxIgJ2IgFBBXZBCHEiACACciABIAB2IgFBAnZBBHEiAHIgASAAdiIBQQF2QQJxIgByIAEgAHYiAUEBdkEBcSIAciABIAB2aiIDQQN0IgBBtJgCaigCACIEKAIIIgEgAEGsmAJqIgBGBEBBhJgCIAVBfiADd3EiBTYCAAwBC0GUmAIoAgAaIAEgADYCDCAAIAE2AggLIARBCGohACAEIAhBA3I2AgQgBCAIaiICIANBA3QiASAIayIDQQFyNgIEIAEgBGogAzYCACAKBEAgCkEDdiIBQQN0QayYAmohB0GYmAIoAgAhBAJ/IAVBASABdCIBcUUEQEGEmAIgASAFcjYCACAHDAELIAcoAggLIQEgByAENgIIIAEgBDYCDCAEIAc2AgwgBCABNgIIC0GYmAIgAjYCAEGMmAIgAzYCAAwNC0GImAIoAgAiBkUNASAGQQAgBmtxQQFrIgAgAEEMdkEQcSICdiIBQQV2QQhxIgAgAnIgASAAdiIBQQJ2QQRxIgByIAEgAHYiAUEBdkECcSIAciABIAB2IgFBAXZBAXEiAHIgASAAdmpBAnRBtJoCaigCACIBKAIEQXhxIAhrIQQgASECA0ACQCACKAIQIgBFBEAgAigCFCIARQ0BCyAAKAIEQXhxIAhrIgIgBCACIARJIgIbIQQgACABIAIbIQEgACECDAELCyABIAhqIgkgAU0NAiABKAIYIQsgASABKAIMIgNHBEAgASgCCCIAQZSYAigCAE8EQCAAKAIMGgsgACADNgIMIAMgADYCCAwMCyABQRRqIgIoAgAiAEUEQCABKAIQIgBFDQQgAUEQaiECCwNAIAIhByAAIgNBFGoiAigCACIADQAgA0EQaiECIAMoAhAiAA0ACyAHQQA2AgAMCwtBfyEIIABBv39LDQAgAEELaiIAQXhxIQhBiJgCKAIAIglFDQBBHyEFQQAgCGshBAJAAkACQAJ/IAhB////B00EQCAAQQh2IgAgAEGA/j9qQRB2QQhxIgJ0IgAgAEGA4B9qQRB2QQRxIgF0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAEgAnIgAHJrIgBBAXQgCCAAQRVqdkEBcXJBHGohBQsgBUECdEG0mgJqKAIAIgJFCwRAQQAhAAwBC0EAIQAgCEEAQRkgBUEBdmsgBUEfRht0IQEDQAJAIAIoAgRBeHEgCGsiByAETw0AIAIhAyAHIgQNAEEAIQQgAiEADAMLIAAgAigCFCIHIAcgAiABQR12QQRxaigCECICRhsgACAHGyEAIAFBAXQhASACDQALCyAAIANyRQRAQQIgBXQiAEEAIABrciAJcSIARQ0DIABBACAAa3FBAWsiACAAQQx2QRBxIgJ2IgFBBXZBCHEiACACciABIAB2IgFBAnZBBHEiAHIgASAAdiIBQQF2QQJxIgByIAEgAHYiAUEBdkEBcSIAciABIAB2akECdEG0mgJqKAIAIQALIABFDQELA0AgACgCBEF4cSAIayIBIARJIQIgASAEIAIbIQQgACADIAIbIQMgACgCECIBBH8gAQUgACgCFAsiAA0ACwsgA0UNACAEQYyYAigCACAIa08NACADIAhqIgYgA00NASADKAIYIQUgAyADKAIMIgFHBEAgAygCCCIAQZSYAigCAE8EQCAAKAIMGgsgACABNgIMIAEgADYCCAwKCyADQRRqIgIoAgAiAEUEQCADKAIQIgBFDQQgA0EQaiECCwNAIAIhByAAIgFBFGoiAigCACIADQAgAUEQaiECIAEoAhAiAA0ACyAHQQA2AgAMCQsgCEGMmAIoAgAiAk0EQEGYmAIoAgAhAwJAIAIgCGsiAUEQTwRAQYyYAiABNgIAQZiYAiADIAhqIgA2AgAgACABQQFyNgIEIAIgA2ogATYCACADIAhBA3I2AgQMAQtBmJgCQQA2AgBBjJgCQQA2AgAgAyACQQNyNgIEIAIgA2oiACAAKAIEQQFyNgIECyADQQhqIQAMCwsgCEGQmAIoAgAiBkkEQEGQmAIgBiAIayIBNgIAQZyYAkGcmAIoAgAiAiAIaiIANgIAIAAgAUEBcjYCBCACIAhBA3I2AgQgAkEIaiEADAsLQQAhACAIQS9qIgkCf0HcmwIoAgAEQEHkmwIoAgAMAQtB6JsCQn83AgBB4JsCQoCggICAgAQ3AgBB3JsCIAxBDGpBcHFB2KrVqgVzNgIAQfCbAkEANgIAQcCbAkEANgIAQYAgCyIBaiIFQQAgAWsiB3EiAiAITQ0KQbybAigCACIEBEBBtJsCKAIAIgMgAmoiASADTSABIARLcg0LC0HAmwItAABBBHENBQJAAkBBnJgCKAIAIgMEQEHEmwIhAANAIAMgACgCACIBTwRAIAEgACgCBGogA0sNAwsgACgCCCIADQALC0EAECsiAUF/Rg0GIAIhBUHgmwIoAgAiA0EBayIAIAFxBEAgAiABayAAIAFqQQAgA2txaiEFCyAFIAhNIAVB/v///wdLcg0GQbybAigCACIEBEBBtJsCKAIAIgMgBWoiACADTSAAIARLcg0HCyAFECsiACABRw0BDAgLIAUgBmsgB3EiBUH+////B0sNBSAFECsiASAAKAIAIAAoAgRqRg0EIAEhAAsgAEF/RiAIQTBqIAVNckUEQEHkmwIoAgAiASAJIAVrakEAIAFrcSIBQf7///8HSwRAIAAhAQwICyABECtBf0cEQCABIAVqIQUgACEBDAgLQQAgBWsQKxoMBQsgACIBQX9HDQYMBAsAC0EAIQMMBwtBACEBDAULIAFBf0cNAgtBwJsCQcCbAigCAEEEcjYCAAsgAkH+////B0sNASACECsiAUEAECsiAE8gAUF/RnIgAEF/RnINASAAIAFrIgUgCEEoak0NAQtBtJsCQbSbAigCACAFaiIANgIAQbibAigCACAASQRAQbibAiAANgIACwJAAkACQEGcmAIoAgAiBwRAQcSbAiEAA0AgASAAKAIAIgMgACgCBCICakYNAiAAKAIIIgANAAsMAgtBlJgCKAIAIgBBACAAIAFNG0UEQEGUmAIgATYCAAtBACEAQcibAiAFNgIAQcSbAiABNgIAQaSYAkF/NgIAQaiYAkHcmwIoAgA2AgBB0JsCQQA2AgADQCAAQQN0IgNBtJgCaiADQayYAmoiAjYCACADQbiYAmogAjYCACAAQQFqIgBBIEcNAAtBkJgCIAVBKGsiA0F4IAFrQQdxQQAgAUEIakEHcRsiAGsiAjYCAEGcmAIgACABaiIANgIAIAAgAkEBcjYCBCABIANqQSg2AgRBoJgCQeybAigCADYCAAwCCyAALQAMQQhxIAEgB01yIAMgB0tyDQAgACACIAVqNgIEQZyYAiAHQXggB2tBB3FBACAHQQhqQQdxGyIAaiICNgIAQZCYAkGQmAIoAgAgBWoiASAAayIANgIAIAIgAEEBcjYCBCABIAdqQSg2AgRBoJgCQeybAigCADYCAAwBC0GUmAIoAgAiAyABSwRAQZSYAiABNgIAIAEhAwsgASAFaiECQcSbAiEAAkACQAJAAkACQAJAA0AgAiAAKAIARwRAIAAoAggiAA0BDAILCyAALQAMQQhxRQ0BC0HEmwIhAANAIAcgACgCACICTwRAIAIgACgCBGoiBCAHSw0DCyAAKAIIIQAMAAsACyAAIAE2AgAgACAAKAIEIAVqNgIEIAFBeCABa0EHcUEAIAFBCGpBB3EbaiIJIAhBA3I2AgQgAkF4IAJrQQdxQQAgAkEIakEHcRtqIgUgCWsgCGshAiAIIAlqIQYgBSAHRgRAQZyYAiAGNgIAQZCYAkGQmAIoAgAgAmoiADYCACAGIABBAXI2AgQMAwsgBUGYmAIoAgBGBEBBmJgCIAY2AgBBjJgCQYyYAigCACACaiIANgIAIAYgAEEBcjYCBCAAIAZqIAA2AgAMAwsgBSgCBCIAQQNxQQFGBEAgAEF4cSEHAkAgAEH/AU0EQCAFKAIIIgMgAEEDdiIAQQN0QayYAmpHGiADIAUoAgwiAUYEQEGEmAJBhJgCKAIAQX4gAHdxNgIADAILIAMgATYCDCABIAM2AggMAQsgBSgCGCEIAkAgBSAFKAIMIgFHBEAgBSgCCCIAIANPBEAgACgCDBoLIAAgATYCDCABIAA2AggMAQsCQCAFQRRqIgAoAgAiBA0AIAVBEGoiACgCACIEDQBBACEBDAELA0AgACEDIAQiAUEUaiIAKAIAIgQNACABQRBqIQAgASgCECIEDQALIANBADYCAAsgCEUNAAJAIAUgBSgCHCIDQQJ0QbSaAmoiACgCAEYEQCAAIAE2AgAgAQ0BQYiYAkGImAIoAgBBfiADd3E2AgAMAgsgCEEQQRQgCCgCECAFRhtqIAE2AgAgAUUNAQsgASAINgIYIAUoAhAiAARAIAEgADYCECAAIAE2AhgLIAUoAhQiAEUNACABIAA2AhQgACABNgIYCyAFIAdqIQUgAiAHaiECCyAFIAUoAgRBfnE2AgQgBiACQQFyNgIEIAIgBmogAjYCACACQf8BTQRAIAJBA3YiAEEDdEGsmAJqIQICf0GEmAIoAgAiAUEBIAB0IgBxRQRAQYSYAiAAIAFyNgIAIAIMAQsgAigCCAshACACIAY2AgggACAGNgIMIAYgAjYCDCAGIAA2AggMAwtBHyEAIAJB////B00EQCACQQh2IgAgAEGA/j9qQRB2QQhxIgN0IgAgAEGA4B9qQRB2QQRxIgF0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAEgA3IgAHJrIgBBAXQgAiAAQRVqdkEBcXJBHGohAAsgBiAANgIcIAZCADcCECAAQQJ0QbSaAmohBAJAQYiYAigCACIDQQEgAHQiAXFFBEBBiJgCIAEgA3I2AgAgBCAGNgIAIAYgBDYCGAwBCyACQQBBGSAAQQF2ayAAQR9GG3QhACAEKAIAIQEDQCABIgMoAgRBeHEgAkYNAyAAQR12IQEgAEEBdCEAIAMgAUEEcWoiBCgCECIBDQALIAQgBjYCECAGIAM2AhgLIAYgBjYCDCAGIAY2AggMAgtBkJgCIAVBKGsiA0F4IAFrQQdxQQAgAUEIakEHcRsiAGsiAjYCAEGcmAIgACABaiIANgIAIAAgAkEBcjYCBCABIANqQSg2AgRBoJgCQeybAigCADYCACAHIARBJyAEa0EHcUEAIARBJ2tBB3EbakEvayIAIAAgB0EQakkbIgJBGzYCBCACQcybAikCADcCECACQcSbAikCADcCCEHMmwIgAkEIajYCAEHImwIgBTYCAEHEmwIgATYCAEHQmwJBADYCACACQRhqIQADQCAAQQc2AgQgAEEIaiEBIABBBGohACABIARJDQALIAIgB0YNAyACIAIoAgRBfnE2AgQgByACIAdrIgRBAXI2AgQgAiAENgIAIARB/wFNBEAgBEEDdiIAQQN0QayYAmohAgJ/QYSYAigCACIBQQEgAHQiAHFFBEBBhJgCIAAgAXI2AgAgAgwBCyACKAIICyEAIAIgBzYCCCAAIAc2AgwgByACNgIMIAcgADYCCAwEC0EfIQAgB0IANwIQIARB////B00EQCAEQQh2IgAgAEGA/j9qQRB2QQhxIgJ0IgAgAEGA4B9qQRB2QQRxIgF0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAEgAnIgAHJrIgBBAXQgBCAAQRVqdkEBcXJBHGohAAsgByAANgIcIABBAnRBtJoCaiEDAkBBiJgCKAIAIgJBASAAdCIBcUUEQEGImAIgASACcjYCACADIAc2AgAgByADNgIYDAELIARBAEEZIABBAXZrIABBH0YbdCEAIAMoAgAhAQNAIAEiAigCBEF4cSAERg0EIABBHXYhASAAQQF0IQAgAiABQQRxaiIDKAIQIgENAAsgAyAHNgIQIAcgAjYCGAsgByAHNgIMIAcgBzYCCAwDCyADKAIIIgAgBjYCDCADIAY2AgggBkEANgIYIAYgAzYCDCAGIAA2AggLIAlBCGohAAwFCyACKAIIIgAgBzYCDCACIAc2AgggB0EANgIYIAcgAjYCDCAHIAA2AggLQZCYAigCACIAIAhNDQBBkJgCIAAgCGsiATYCAEGcmAJBnJgCKAIAIgIgCGoiADYCACAAIAFBAXI2AgQgAiAIQQNyNgIEIAJBCGohAAwDC0GAmAJBMDYCAEEAIQAMAgsCQCAFRQ0AAkAgAygCHCICQQJ0QbSaAmoiACgCACADRgRAIAAgATYCACABDQFBiJgCIAlBfiACd3EiCTYCAAwCCyAFQRBBFCAFKAIQIANGG2ogATYCACABRQ0BCyABIAU2AhggAygCECIABEAgASAANgIQIAAgATYCGAsgAygCFCIARQ0AIAEgADYCFCAAIAE2AhgLAkAgBEEPTQRAIAMgBCAIaiIAQQNyNgIEIAAgA2oiACAAKAIEQQFyNgIEDAELIAMgCEEDcjYCBCAGIARBAXI2AgQgBCAGaiAENgIAIARB/wFNBEAgBEEDdiIAQQN0QayYAmohAgJ/QYSYAigCACIBQQEgAHQiAHFFBEBBhJgCIAAgAXI2AgAgAgwBCyACKAIICyEAIAIgBjYCCCAAIAY2AgwgBiACNgIMIAYgADYCCAwBC0EfIQAgBEH///8HTQRAIARBCHYiACAAQYD+P2pBEHZBCHEiAnQiACAAQYDgH2pBEHZBBHEiAXQiACAAQYCAD2pBEHZBAnEiAHRBD3YgASACciAAcmsiAEEBdCAEIABBFWp2QQFxckEcaiEACyAGIAA2AhwgBkIANwIQIABBAnRBtJoCaiECAkACQCAJQQEgAHQiAXFFBEBBiJgCIAEgCXI2AgAgAiAGNgIAIAYgAjYCGAwBCyAEQQBBGSAAQQF2ayAAQR9GG3QhACACKAIAIQgDQCAIIgEoAgRBeHEgBEYNAiAAQR12IQIgAEEBdCEAIAEgAkEEcWoiAigCECIIDQALIAIgBjYCECAGIAE2AhgLIAYgBjYCDCAGIAY2AggMAQsgASgCCCIAIAY2AgwgASAGNgIIIAZBADYCGCAGIAE2AgwgBiAANgIICyADQQhqIQAMAQsCQCALRQ0AAkAgASgCHCICQQJ0QbSaAmoiACgCACABRgRAIAAgAzYCACADDQFBiJgCIAZBfiACd3E2AgAMAgsgC0EQQRQgCygCECABRhtqIAM2AgAgA0UNAQsgAyALNgIYIAEoAhAiAARAIAMgADYCECAAIAM2AhgLIAEoAhQiAEUNACADIAA2AhQgACADNgIYCwJAIARBD00EQCABIAQgCGoiAEEDcjYCBCAAIAFqIgAgACgCBEEBcjYCBAwBCyABIAhBA3I2AgQgCSAEQQFyNgIEIAQgCWogBDYCACAKBEAgCkEDdiIAQQN0QayYAmohA0GYmAIoAgAhAgJ/QQEgAHQiACAFcUUEQEGEmAIgACAFcjYCACADDAELIAMoAggLIQAgAyACNgIIIAAgAjYCDCACIAM2AgwgAiAANgIIC0GYmAIgCTYCAEGMmAIgBDYCAAsgAUEIaiEACyAMQRBqJAAgAAuQAQEDfyAAIQECQAJAIABBA3FFDQAgAC0AAEUEQEEADwsDQCABQQFqIgFBA3FFDQEgAS0AAA0ACwwBCwNAIAEiAkEEaiEBIAIoAgAiA0F/cyADQYGChAhrcUGAgYKEeHFFDQALIANB/wFxRQRAIAIgAGsPCwNAIAItAAEhAyACQQFqIgEhAiADDQALCyABIABrC2UBA38gAkUEQEEADwsCQCAALQAAIgNFDQADQAJAIAMgAS0AACIFRw0AIAJBAWsiAkUgBUVyDQAgAUEBaiEBIAAtAAEhAyAAQQFqIQAgAw0BDAILCyADIQQLIARB/wFxIAEtAABrCxEAIAAgAUHUlwIoAgARAgAaCxEAIAAgAUHMlwIoAgARAgAaCwoAIAAgASACEBgLKAAgACABIAIQUSAAQShqIAFBKGogAhBRIABB0ABqIAFB0ABqIAIQUQs1AQF/IwBBwAVrIgIkACAAIAIQxwIgASAAQcAAEJsBIAJBwAUQCSAAQdABEAkgAkHABWokAAsIACAAQSAQHwsRACAAIAFzQf8BcUEBa0EfdgsMACAAIAFBgAgQEhoLVQECf0G8lwIoAgAiASAAQQNqQXxxIgJqIQACQCACQQFOQQAgACABTRsNAD8AQRB0IABJBEAgABAFRQ0BC0G8lwIgADYCACABDwtBgJgCQTA2AgBBfwtGAQR+IAEpAgghAiABKQIQIQMgASkCGCEEIAEpAgAhBSAAIAEpAiA3AiAgACAENwIYIAAgAzcCECAAIAI3AgggACAFNwIAC7cDAQJ/IwBBMGsiAyQAIAMgARCzASAAIAMoAgAiAToAACAAIAFBEHY6AAIgACABQQh2OgABIAAgAygCBCICQQ52OgAFIAAgAkEGdjoABCAAIAJBAnQgAUEYdnI6AAMgACADKAIIIgFBDXY6AAggACABQQV2OgAHIAAgAUEDdCACQRZ2cjoABiAAIAMoAgwiAkELdjoACyAAIAJBA3Y6AAogACACQQV0IAFBFXZyOgAJIAAgAygCECIBQRJ2OgAPIAAgAUEKdjoADiAAIAFBAnY6AA0gACABQQZ0IAJBE3ZyOgAMIAAgAygCFCIBOgAQIAAgAUEQdjoAEiAAIAFBCHY6ABEgACADKAIYIgJBD3Y6ABUgACACQQd2OgAUIAAgAkEBdCABQRh2cjoAEyAAIAMoAhwiAUENdjoAGCAAIAFBBXY6ABcgACABQQN0IAJBF3ZyOgAWIAAgAygCICICQQx2OgAbIAAgAkEEdjoAGiAAIAJBBHQgAUEVdnI6ABkgACADKAIkIgFBEnY6AB8gACABQQp2OgAeIAAgAUECdjoAHSAAIAFBBnQgAkEUdnI6ABwgA0EwaiQACzEBA38DQCAAIAJBA3QiA2oiBCAEKQMAIAEgA2opAwCFNwMAIAJBAWoiAkGAAUcNAAsLBQBBwAALKQAgBK1CgICAgBAgAkI/fEIGiH1WBEAQFAALIAAgASACIAMgBCAFEG8LBABBAAu4AQIFfwF+AkAgAlANACAAQeABaiEHIABB4ABqIQUgACgA4AIhAwNAIAAgA2pB4ABqIQZBgAIgA2siBK0iCCACWgRAIAYgASACpyIBEBIaIAAgACgA4AIgAWo2AOACDAILIAYgASAEEBIaIAAgACgA4AIgBGo2AOACIABCgAEQWSAAIAUQXiAFIAdBgAEQEhogACAAKADgAkGAAWsiAzYA4AIgASAEaiEBIAIgCH0iAkIAUg0ACwtBAAvjAQECfyMAQUBqIgwkAAJAIAgQICINRQRAQWohAgwBCyAMQgA3AyAgDEIANwMYIAwgBjYCFCAMIAU2AhAgDCAENgIMIAwgAzYCCCAMIAg2AgQgDCANNgIAIAxBADYCOCAMIAI2AjQgDCACNgIwIAwgATYCLCAMIAA2AigCQCAMIAsQpQIiAgRAIA0gCBAJDAELAkAgCUUgCkVyDQAgCSAKIAwgCxCmAkUNACANIAgQCSAJIAoQCUFhIQIMAQsgBwRAIAcgDSAIEBIaCyANIAgQCUEAIQILIA0QGQsgDEFAayQAIAILKwEBfyMAQdABayIDJAAgAxA1IAMgASACEBwaIAMgABAnIANB0AFqJABBAAscACAAQgA3A0AgAEIANwNIIABBoI8CQcAAEBIaCwQAQW8LGwAgAUKAgICAEFoEQBAUAAsgACABIAIgAxBwCwsAIABBAEEoEBAaC28BBX8jAEEwayIDJAAgACABEA4gAEHQAGoiAiABQShqIgYQDiAAQfgAaiIFIAFB0ABqEOcCIABBKGoiBCABIAYQEyADIAQQDiAEIAIgABATIAIgAiAAEBYgACADIAQQFiAFIAUgAhAWIANBMGokAAuxBAEBfyMAQcABayICJAAgAkGQAWogARAOIAJB4ABqIAJBkAFqEA4gAkHgAGogAkHgAGoQDiACQeAAaiABIAJB4ABqEAsgAkGQAWogAkGQAWogAkHgAGoQCyACQTBqIAJBkAFqEA4gAkHgAGogAkHgAGogAkEwahALIAJBMGogAkHgAGoQDkEBIQEDQCACQTBqIAJBMGoQDiABQQFqIgFBBUcNAAsgAkHgAGogAkEwaiACQeAAahALIAJBMGogAkHgAGoQDkEBIQEDQCACQTBqIAJBMGoQDiABQQFqIgFBCkcNAAsgAkEwaiACQTBqIAJB4ABqEAsgAiACQTBqEA5BASEBA0AgAiACEA4gAUEBaiIBQRRHDQALIAJBMGogAiACQTBqEAtBASEBA0AgAkEwaiACQTBqEA4gAUEBaiIBQQtHDQALIAJB4ABqIAJBMGogAkHgAGoQCyACQTBqIAJB4ABqEA5BASEBA0AgAkEwaiACQTBqEA4gAUEBaiIBQTJHDQALIAJBMGogAkEwaiACQeAAahALIAIgAkEwahAOQQEhAQNAIAIgAhAOIAFBAWoiAUHkAEcNAAsgAkEwaiACIAJBMGoQC0EBIQEDQCACQTBqIAJBMGoQDiABQQFqIgFBM0cNAAsgAkHgAGogAkEwaiACQeAAahALQQEhAQNAIAJB4ABqIAJB4ABqEA4gAUEBaiIBQQZHDQALIAAgAkHgAGogAkGQAWoQCyACQcABaiQACwsAIAAgAUEQEIEBCwwAIABBAEGACBAQGgsxACACQYACTwRAQQAiAEHgD2ogAEH0D2pB6wAgAEGpEGoQAAALIAAgASACQf8BcRBYC1UBAX9BfyEEAkAgAkHAAEsgA0EBa0E/S3INAAJAIAFBACACG0UEQCAAIANB/wFxEIUBRQ0BDAILIAAgA0H/AXEgASACQf8BcRCEAQ0BC0EAIQQLIAQLBABBAgsEAEEBC2YBBX8jAEEQayIDJABBCiECA0ACQCACIgRBAWsiAiADQQZqaiIFIAEgAUEKbiIGQQpsa0EwcjoAACABQQpJDQAgBiEBIAINAQsLIAAgBUELIARrIgAQEiAAakEAOgAAIANBEGokAAuNAQEGfwJAIAAtAAAiBkEwa0H/AXFBCUsNACAGIQMgACECA0AgAiEHIARBmbPmzAFLDQEgA0H/AXFBMGsiAiAEQQpsIgNBf3NLDQEgAiADaiEEIAdBAWoiAi0AACIDQTBrQf8BcUEKSQ0ACyAAIAJGIAAgB0dBACAGQTBGG3INACABIAQ2AgAgAiEFCyAFCxoAIAAgARCuAiIAQQAgAC0AACABQf8BcUYbCwoAIAAgASACED0LaQEBfyMAQRBrIgMgADYCDCADIAE2AghBACEBIANBADoAByACBEADQCADIAMtAAcgAygCCCABai0AACADKAIMIAFqLQAAc3I6AAcgAUEBaiIBIAJHDQALCyADLQAHQQFrQQh2QQFxQQFrCwwAIAAgASACIAMQPgvpAgEBfwJAIAAgAUYNACABIABrIAJrQQAgAkEBdGtNBEAgACABIAIQEg8LIAAgAXNBA3EhAwJAAkAgACABSQRAIAMEQCAAIQMMAwsgAEEDcUUEQCAAIQMMAgsgACEDA0AgAkUNBCADIAEtAAA6AAAgAUEBaiEBIAJBAWshAiADQQFqIgNBA3ENAAsMAQsCQCADDQAgACACakEDcQRAA0AgAkUNBSAAIAJBAWsiAmoiAyABIAJqLQAAOgAAIANBA3ENAAsLIAJBA00NAANAIAAgAkEEayICaiABIAJqKAIANgIAIAJBA0sNAAsLIAJFDQIDQCAAIAJBAWsiAmogASACai0AADoAACACDQALDAILIAJBA00NAANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIAJBBGsiAkEDSw0ACwsgAkUNAANAIAMgAS0AADoAACADQQFqIQMgAUEBaiEBIAJBAWsiAg0ACwsgAAvMFwITfwl+IAIgARDIAiADIABBwAAQEiEBIAIpAwAhGkEAIQMDQCABIBogASkDICIdQQ4QBiAdQRIQBoUgHUEpEAaFfEHgjwIiBCADQQN0IhJqKQMAfCAdIAEpAzAiGSABKQMoIhyFgyAZhXwgASkDOHwiGiABKQMYfCIeNwMYIAEgASkDACIbQRwQBiAbQSIQBoUgG0EnEAaFIBp8IAEpAxAiFyABKQMIIhiEIBuDIBcgGIOEfCIaNwM4IAEgFyAZIBwgHiAcIB2Fg4V8IB5BDhAGIB5BEhAGhSAeQSkQBoV8IAIgA0EBckEDdCIFaiIMKQMAfCAEIAVqKQMAfCIZfCIXNwMQIAEgGSAaIBggG4SDIBggG4OEfCAaQRwQBiAaQSIQBoUgGkEnEAaFfCIZNwMwIAEgGCAcIB0gFyAdIB6Fg4V8IBdBDhAGIBdBEhAGhSAXQSkQBoV8IAIgA0ECckEDdCIFaiITKQMAfCAEIAVqKQMAfCIffCIcNwMIIAEgHyAZIBogG4SDIBogG4OEfCAZQRwQBiAZQSIQBoUgGUEnEAaFfCIYNwMoIAEgGyAdIBwgFyAehYMgHoV8IBxBDhAGIBxBEhAGhSAcQSkQBoV8IAIgA0EDckEDdCIGaiIFKQMAfCAEIAZqKQMAfCIffCIdNwMAIAEgHyAYIBkgGoSDIBkgGoOEfCAYQRwQBiAYQSIQBoUgGEEnEAaFfCIbNwMgIAEgGiAdIBcgHIWDIBeFIB58IB1BDhAGIB1BEhAGhSAdQSkQBoV8IAIgA0EEckEDdCIGaiIUKQMAfCAEIAZqKQMAfCIafCIeNwM4IAEgGiAbIBggGYSDIBggGYOEfCAbQRwQBiAbQSIQBoUgG0EnEAaFfCIaNwMYIAEgGSAeIBwgHYWDIByFIBd8IB5BDhAGIB5BEhAGhSAeQSkQBoV8IAIgA0EFckEDdCIHaiIGKQMAfCAEIAdqKQMAfCIZfCIXNwMwIAEgGSAaIBggG4SDIBggG4OEfCAaQRwQBiAaQSIQBoUgGkEnEAaFfCIZNwMQIAEgGCAXIB0gHoWDIB2FIBx8IBdBDhAGIBdBEhAGhSAXQSkQBoV8IAIgA0EGckEDdCIHaiIVKQMAfCAEIAdqKQMAfCIYfCIcNwMoIAEgGCAZIBogG4SDIBogG4OEfCAZQRwQBiAZQSIQBoUgGUEnEAaFfCIYNwMIIAEgGyAcIBcgHoWDIB6FIB18IBxBDhAGIBxBEhAGhSAcQSkQBoV8IAIgA0EHckEDdCIIaiIHKQMAfCAEIAhqKQMAfCIbfCIdNwMgIAEgGyAYIBkgGoSDIBkgGoOEfCAYQRwQBiAYQSIQBoUgGEEnEAaFfCIbNwMAIAEgGiAdIBcgHIWDIBeFIB58IB1BDhAGIB1BEhAGhSAdQSkQBoV8IAIgA0EIckEDdCIIaiIPKQMAfCAEIAhqKQMAfCIafCIeNwMYIAEgGiAbIBggGYSDIBggGYOEfCAbQRwQBiAbQSIQBoUgG0EnEAaFfCIaNwM4IAEgGSAeIBwgHYWDIByFIBd8IB5BDhAGIB5BEhAGhSAeQSkQBoV8IAIgA0EJckEDdCIJaiIIKQMAfCAEIAlqKQMAfCIZfCIXNwMQIAEgGSAaIBggG4SDIBggG4OEfCAaQRwQBiAaQSIQBoUgGkEnEAaFfCIZNwMwIAEgGCAXIB0gHoWDIB2FIBx8IBdBDhAGIBdBEhAGhSAXQSkQBoV8IAIgA0EKckEDdCIJaiIQKQMAfCAEIAlqKQMAfCIYfCIcNwMIIAEgGCAZIBogG4SDIBogG4OEfCAZQRwQBiAZQSIQBoUgGUEnEAaFfCIYNwMoIAEgGyAcIBcgHoWDIB6FIB18IBxBDhAGIBxBEhAGhSAcQSkQBoV8IAIgA0ELckEDdCIKaiIJKQMAfCAEIApqKQMAfCIbfCIdNwMAIAEgGyAYIBkgGoSDIBkgGoOEfCAYQRwQBiAYQSIQBoUgGEEnEAaFfCIbNwMgIAEgGiAdIBcgHIWDIBeFIB58IB1BDhAGIB1BEhAGhSAdQSkQBoV8IAIgA0EMckEDdCIKaiIRKQMAfCAEIApqKQMAfCIafCIeNwM4IAEgGiAbIBggGYSDIBggGYOEfCAbQRwQBiAbQSIQBoUgG0EnEAaFfCIaNwMYIAEgGSAeIBwgHYWDIByFIBd8IB5BDhAGIB5BEhAGhSAeQSkQBoV8IAIgA0ENckEDdCILaiIKKQMAfCAEIAtqKQMAfCIZfCIXNwMwIAEgGSAaIBggG4SDIBggG4OEfCAaQRwQBiAaQSIQBoUgGkEnEAaFfCIZNwMQIAEgFyAdIB6FgyAdhSAcfCAXQQ4QBiAXQRIQBoUgF0EpEAaFfCACIANBDnJBA3QiC2oiDikDAHwgBCALaikDAHwiHCAYfCIYNwMoIAEgHCAZIBogG4SDIBogG4OEfCAZQRwQBiAZQSIQBoUgGUEnEAaFfCIcNwMIIAEgGCAXIB6FgyAehSAdfCAYQQ4QBiAYQRIQBoUgGEEpEAaFfCACIANBD3JBA3QiFmoiCykDAHwgBCAWaikDAHwiGCAbfDcDICABIBggHCAZIBqEgyAZIBqDhHwgHEEcEAYgHEEiEAaFIBxBJxAGhXw3AwAgA0HAAEYEQANAIAAgDUEDdCICaiIDIAMpAwAgASACaikDAHw3AwAgDUEBaiINQQhHDQALBSACIANBEGoiA0EDdGogDikDACIeQgaIIB5BExAGhSAeQT0QBoUgCCkDACIZfCACIBJqKQMAfCAMKQMAIhpCB4ggGkEBEAaFIBpBCBAGhXwiGDcDACAMIBogDCkDSHwgCykDACIaQgaIIBpBExAGhSAaQT0QBoV8IAwpAwgiG0IHiCAbQQEQBoUgG0EIEAaFfCIXNwOAASATIBsgGEETEAYgGEIGiIUgGEE9EAaFIAkpAwAiGHx8IAUpAwAiG0IHiCAbQQEQBoUgG0EIEAaFfCIcNwOAASAFIBsgBSkDSHwgF0ETEAYgF0IGiIUgF0E9EAaFfCAFKQMIIhdCB4ggF0EBEAaFIBdBCBAGhXwiHTcDgAEgFCAXIBxBExAGIBxCBoiFIBxBPRAGhSAKKQMAIht8fCAGKQMAIhdCB4ggF0EBEAaFIBdBCBAGhXwiHDcDgAEgBiAXIAYpA0h8IB1BExAGIB1CBoiFIB1BPRAGhXwgBikDCCIXQgeIIBdBARAGhSAXQQgQBoV8Ih03A4ABIBUgFyAaIBxBExAGIBxCBoiFIBxBPRAGhXx8IAcpAwAiF0IHiCAXQQEQBoUgF0EIEAaFfCIcNwOAASAHIBcgBykDSHwgHUETEAYgHUIGiIUgHUE9EAaFfCAHKQMIIhdCB4ggF0EBEAaFIBdBCBAGhXwiHTcDgAEgDyAXIBxBExAGIBxCBoiFIBxBPRAGhSAPKQNIfHwgGUEBEAYgGUIHiIUgGUEIEAaFfCIXNwOAASAIIBkgCCkDSHwgHUETEAYgHUIGiIUgHUE9EAaFfCAIKQMIIhlCB4ggGUEBEAaFIBlBCBAGhXwiHDcDgAEgECAZIBdBExAGIBdCBoiFIBdBPRAGhSAQKQNIfHwgGEEBEAYgGEIHiIUgGEEIEAaFfCIZNwOAASAJIBggCSkDSHwgHEETEAYgHEIGiIUgHEE9EAaFfCAJKQMIIhhCB4ggGEEBEAaFIBhBCBAGhXwiFzcDgAEgESAYIBlBExAGIBlCBoiFIBlBPRAGhSARKQNIfHwgG0EBEAYgG0IHiIUgG0EIEAaFfCIZNwOAASAKIBsgCikDSHwgF0ETEAYgF0IGiIUgF0E9EAaFfCAKKQMIIhhCB4ggGEEBEAaFIBhBCBAGhXwiGDcDgAEgDiAeIA4pA0h8IBlBExAGIBlCBoiFIBlBPRAGhXwgGkEBEAYgGkIHiIUgGkEIEAaFfDcDgAEgCyAaIAspA0h8IBhBExAGIBhCBoiFIBhBPRAGhXwgCykDCCIaQgeIIBpBARAGhSAaQQgQBoV8NwOAAQwBCwsLBABBGAusBQESf0Gy2ojLByEDQe7IgZkDIQxB5fDBiwYhDUH0yoHZBiEEIAIoAAAhBiACKAAEIQcgAigACCEFIAIoAAwhCCACKAAQIQogAigAFCELIAIoABghDyACKAAcIREgASgAACECIAEoAAQhDiABKAAIIQkgASgADCEBA0AgBiAKIAIgBiANaiINc0EQEAgiEGoiCnNBDBAIIQIgAiAKIBAgAiANaiINc0EIEAgiEGoiCnNBBxAIIQYgByAOIAcgDGoiDHNBEBAIIg4gC2oiC3NBDBAIIQIgAiAOIAIgDGoiDHNBCBAIIg4gC2oiC3NBBxAIIQIgBSAJIAMgBWoiB3NBEBAIIgkgD2oiD3NBDBAIIQMgAyAJIAMgB2oiEnNBCBAIIgkgD2oiB3NBBxAIIQMgCCABIAQgCGoiBHNBEBAIIgUgEWoiD3NBDBAIIQEgASAFIAEgBGoiE3NBCBAIIgUgD2oiCHNBBxAIIQQgAiAHIAUgAiANaiIBc0EQEAgiBWoiB3NBDBAIIQIgAiAHIAUgASACaiINc0EIEAgiAWoiD3NBBxAIIQcgAyAIIBAgAyAMaiICc0EQEAgiBWoiCHNBDBAIIQMgAyAIIAUgAiADaiIMc0EIEAgiAmoiEXNBBxAIIQUgBCAOIAQgEmoiA3NBEBAIIgggCmoiCnNBDBAIIQQgBCAKIAggAyAEaiIDc0EIEAgiDmoiCnNBBxAIIQggBiAJIAYgE2oiBHNBEBAIIgkgC2oiC3NBDBAIIQYgBiAJIAQgBmoiBHNBCBAIIgkgC2oiC3NBBxAIIQYgFEEBaiIUQQpHDQALIAAgDRAKIABBBGogDBAKIABBCGogAxAKIABBDGogBBAKIABBEGogAhAKIABBFGogDhAKIABBGGogCRAKIABBHGogARAKC9QJATF/IwBBQGoiHSQAIAAoAjwhHiAAKAI4IR8gACgCNCETIAAoAjAhECAAKAIsISAgACgCKCEhIAAoAiQhIiAAKAIgISMgACgCHCEkIAAoAhghJSAAKAIUISYgACgCECEnIAAoAgwhKCAAKAIIISkgACgCBCEqIAAoAgAhKwNAAkAgA0I/VgRAIAIhBAwBC0EAIQUgHUEAQcAAEBAiGCEEIANQRQRAA0AgBSAYaiABIAVqLQAAOgAAIAMgBUEBaiIFrVYNAAsLIAQhASACIRgLQRQhFSArIQ0gKiEUICkhESAoIQ4gJyEFICYhCSAlIQIgJCEPICMhCyAiIQogISEZIB4hEiAfIQcgEyEIIBAhBiAgIQwDQCAFIAsgBSANaiINIAZzQRAQCCIFaiIGc0EMEAghCyALIAUgCyANaiINc0EIEAgiGiAGaiIbc0EHEAghFiAKIAkgFGoiCyAIc0EQEAgiCGoiBiAJc0EMEAghCiAKIAggCiALaiIUc0EIEAgiCyAGaiIcc0EHEAghCSACIAcgAiARaiIHc0EQEAgiCCAZaiIGc0EMEAghAiACIAggAiAHaiIKc0EIEAgiBSAGaiIHc0EHEAghFyAMIA4gD2oiBiASc0EQEAgiAmoiDCAPc0EMEAghEiASIAwgAiAGIBJqIg5zQQgQCCICaiIIc0EHEAghESAJIAIgCSANaiIGc0EQEAgiDCAHaiICc0EMEAghByAHIAwgBiAHaiINc0EIEAgiEiACaiIZc0EHEAghCSAXIBogFCAXaiIGc0EQEAgiDCAIaiICc0EMEAghCCAIIAwgBiAIaiIUc0EIEAgiBiACaiIMc0EHEAghAiARIAsgCiARaiIKc0EQEAgiCCAbaiIHc0EMEAghDyAPIAcgCCAKIA9qIhFzQQgQCCIIaiILc0EHEAghDyAWIAUgDiAWaiIOc0EQEAgiByAcaiIKc0EMEAghBSAFIAogByAFIA5qIg5zQQgQCCIHaiIKc0EHEAghBSAVQQJrIhUNAAsgASgABCEsIAEoAAghLSABKAAMIS4gASgAECEvIAEoABQhMCABKAAYITEgASgAHCEyIAEoACAhMyABKAAkITQgASgAKCEVIAEoACwhFiABKAAwIRcgASgANCEaIAEoADghGyABKAA8IRwgBCABKAAAIA0gK2pzEAogBEEEaiAsIBQgKmpzEAogBEEIaiAtIBEgKWpzEAogBEEMaiAuIA4gKGpzEAogBEEQaiAvIAUgJ2pzEAogBEEUaiAwIAkgJmpzEAogBEEYaiAxIAIgJWpzEAogBEEcaiAyIA8gJGpzEAogBEEgaiAzIAsgI2pzEAogBEEkaiA0IAogImpzEAogBEEoaiAVIBkgIWpzEAogBEEsaiAWIAwgIGpzEAogBEEwaiAXIAYgEGpzEAogBEE0aiAaIAggE2pzEAogBEE4aiAbIAcgH2pzEAogBEE8aiAcIBIgHmpzEAogEyAQIBBBAWoiEEtqIRMgA0LAAFgEQAJAIANCP1YNACADpyIBRQ0AQQAhCQNAIAkgGGogBCAJai0AADoAACAJQQFqIgkgAUcNAAsLIAAgEzYCNCAAIBA2AjAgHUFAayQABSABQUBrIQEgBEFAayECIANCQHwhAwwBCwsLcQAgAELl8MGL5o2ZkDM3AgAgAEKy2ojLx66ZkOsANwIIIAAgASgAADYCECAAIAEoAAQ2AhQgACABKAAINgIYIAAgASgADDYCHCAAIAEoABA2AiAgACABKAAUNgIkIAAgASgAGDYCKCAAIAEoABw2AiwLCwAgACABIAIQ2wILqQMBFX8gASgCBCELIAAoAgQhDCABKAIIIQ0gACgCCCEOIAEoAgwhDyAAKAIMIQMgASgCECEQIAAoAhAhBCABKAIUIREgACgCFCEFIAEoAhghEiAAKAIYIQYgASgCHCETIAAoAhwhByABKAIgIRQgACgCICEIIAEoAiQhFSAAKAIkIQkgAEEAIAJrIgIgASgCACIWIAAoAgAiCnNxIhcgCnM2AgAgACAJIAkgFXMgAnEiCnM2AiQgACAIIAggFHMgAnEiCXM2AiAgACAHIAcgE3MgAnEiCHM2AhwgACAGIAYgEnMgAnEiB3M2AhggACAFIAUgEXMgAnEiBnM2AhQgACAEIAQgEHMgAnEiBXM2AhAgACADIAMgD3MgAnEiBHM2AgwgACAOIA0gDnMgAnEiA3M2AgggACAMIAsgDHMgAnEiAHM2AgQgASAKIBVzNgIkIAEgCSAUczYCICABIAggE3M2AhwgASAHIBJzNgIYIAEgBiARczYCFCABIAUgEHM2AhAgASAEIA9zNgIMIAEgAyANczYCCCABIAAgC3M2AgQgASAWIBdzNgIACykBAX8jAEGAAWsiAiQAIAJBCGogARDoAiAAIAJBCGoQOSACQYABaiQACzIBAX8gACABIAFB+ABqIgIQCyAAQShqIAFBKGogAUHQAGoiARALIABB0ABqIAEgAhALC68CARN/IAEoAgQhDCAAKAIEIQMgASgCCCENIAAoAgghBCABKAIMIQ4gACgCDCEFIAEoAhAhDyAAKAIQIQYgASgCFCEQIAAoAhQhByABKAIYIREgACgCGCEIIAEoAhwhEiAAKAIcIQkgASgCICETIAAoAiAhCiABKAIkIRQgACgCJCELIABBACACayICIAAoAgAiFSABKAIAc3EgFXM2AgAgACALIAsgFHMgAnFzNgIkIAAgCiAKIBNzIAJxczYCICAAIAkgCSAScyACcXM2AhwgACAIIAggEXMgAnFzNgIYIAAgByAHIBBzIAJxczYCFCAAIAYgBiAPcyACcXM2AhAgACAFIAUgDnMgAnFzNgIMIAAgBCAEIA1zIAJxczYCCCAAIAMgAyAMcyACcXM2AgQLJAEBfyMAQSBrIgEkACABIAAQLSABQSAQZSEAIAFBIGokACAAC6YEAgp/Dn4gACgCJCEEIAAoAiAhBSAAKAIcIQYgACgCGCEHIAAoAhQhAyACQhBaBEAgAC0AUEVBGHQhCCAAKAIEIglBBWytIRkgACgCCCIKQQVsrSEXIAAoAgwiC0EFbK0hFSAAKAIQIgxBBWytIRMgDK0hGiALrSEYIAqtIRYgCa0hFCAANQIAIRIDQCABKAADQQJ2Qf///x9xIAdqrSINIBh+IAEoAABB////H3EgA2qtIg4gGn58IAEoAAZBBHZB////H3EgBmqtIg8gFn58IAEoAAlBBnYgBWqtIhAgFH58IAQgCGogASgADEEIdmqtIhEgEn58IA0gFn4gDiAYfnwgDyAUfnwgECASfnwgESATfnwgDSAUfiAOIBZ+fCAPIBJ+fCAQIBN+fCARIBV+fCANIBJ+IA4gFH58IA8gE358IBAgFX58IBEgF358IA0gE34gDiASfnwgDyAVfnwgECAXfnwgESAZfnwiDUIaiEL/////D4N8Ig5CGohC/////w+DfCIPQhqIQv////8Pg3wiEEIaiEL/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aiAFIAYQDCAJQQhqIAYQESAJQdAAaiAJQQhqQggQDCAAIAMgBCAHIAgQogEgCUHQAGogACAEEAwgCUEIaiAEEBEgCUHQAGogCUEIakIIEAwgCUHQAGogARAjIAlB0ABqQYACEAkgAgRAIAJCEDcDAAsgCUHQAmokAEEACygAIAJCgICAgBBaBEAQFAALIAAgASACIANCASAEQfCXAigCABEVABoLFgAgAELAACABIAJB6JcCKAIAEREAGgsyACAAIAIEfyACKAAABUEACzYCMCAAIAEoAAA2AjQgACABKAAENgI4IAAgASgACDYCPAs9ACAAAn8gAgRAIAAgAigAADYCMCACKAAEDAELIABBADYCMEEACzYCNCAAIAEoAAA2AjggACABKAAENgI8CxkAIAAgASACIANCASAEQeSXAigCABEVABoLKAEBfyMAQRBrIgAkACAAQQA6AA9BpgggAEEPakEAEAEaIABBEGokAAtqAQN/IwBBEGsiAyQAIANBADoAD0F/IQUgACABIAJB2JcCKAIAEQMARQRAA0AgAyAAIARqLQAAIAMtAA9yOgAPIARBAWoiBEEgRw0AC0EAIAMtAA9BAWtBCHZBAXFrIQULIANBEGokACAFCxMAIAAgAUHAB2xBoBtqIAIQ5gILEAAgAEIANwIAIABCADcCCAsdACAAEDggAEEoahAdIABB0ABqEB0gAEH4AGoQOAuAAgEIfwNAIAAgAmogASACQQN2ai0AACACQQdxdkEBcToAACACQQFqIgJBgAJHDQALA0AgBCIBQQFqIQQCQCAAIAFqIgYtAABFDQAgBCECQQEhBSABQf4BSw0AA0ACQCAAIAJqIgMsAAAiB0UNACAHIAV0IgcgBiwAACIIaiIJQQ9MBEAgBiAJOgAAIANBADoAAAwBCyAIIAdrIgNBcUgNAiAGIAM6AAADQCAAIAJqIgMtAABFBEAgA0EBOgAADAILIANBADoAACACQf8BSSEDIAJBAWohAiADDQALCyAFQQVLDQEgBUEBaiIFIAFqIgJBgAJJDQALCyAEQYACRw0ACwuVAQEEfyMAQTBrIgUkACAAIAFBKGoiAyABEBMgAEEoaiIEIAMgARAWIABB0ABqIgMgACACQShqEAsgBCAEIAIQCyAAQfgAaiIGIAJB+ABqIAFB+ABqEAsgACABQdAAaiACQdAA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CSACQYAIaiQAC/ADAQJ/IwAiAyEEIANBwANrQUBxIgMkACAARSABRXJFBEAgA0FAa0EAQQBBwAAQPhogA0E8aiABKAIwEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIEEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIsEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIoEAogA0FAayADQTxqQgQQGBogA0E8akETEAogA0FAayADQTxqQgQQGBogA0E8aiACEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIMEAogA0FAayADQTxqQgQQGBoCQCABKAIIIgJFDQAgA0FAayACIAE1AgwQGBogAS0AOEEBcUUNACABKAIIIAEoAgwQCSABQQA2AgwLIANBPGogASgCFBAKIANBQGsgA0E8akIEEBgaIAEoAhAiAgRAIANBQGsgAiABNQIUEBgaCyADQTxqIAEoAhwQCiADQUBrIANBPGpCBBAYGgJAIAEoAhgiAkUNACADQUBrIAIgATUCHBAYGiABLQA4QQJxRQ0AIAEoAhggASgCHBAJIAFBADYCHAsgA0E8aiABKAIkEAogA0FAayADQTxqQgQQGBogASgCICICBEAgA0FAayACIAE1AiQQGBoLIANBQGsgAEHAABA9GgsgBCQAC68BAQN/IwBBEGsiAiQAQWohAwJAIABFIAFFcg0AIAFBCnQiBCABbkGACEcNACAAQQwQICIBNgIAIAFFDQAgAUIANwIAQYCYAiACQQxqIAQQsgEiATYCAAJAAkAgAQRAIAJBADYCDAwBCyACKAIMIgENAQsgACgCABAZIABBADYCAAwBCyAAKAIAIAE2AgAgACgCACABNgIEIAAoAgAgBDYCCEEAIQMLIAJBEGokACADC4cBAQJ/IwBB0ABrIgMkAEFnIQICQCAARSABRXINACAAIAAoAhRBA3QQICICNgIEIAJFBEBBaiECDAELIAAgACgCEBC8ASICBEAgACABKAI4EIMBDAELIAMgASAAKAIkELsBIANBQGtBCBAJIAMgABC6ASADQcgAEAlBACECCyADQdAAaiQAIAILkwEBBH8jAEEgayICJAACQCAARQ0AIAAoAhxFDQAgAiABNgIQQQEhBANAIAIgAzoAGEEAIQFBACEFIAQEQANAIAJBADYCHCACIAIpAxg3AwggAiABNgIUIAIgAikDEDcDACAAIAIQxQEgAUEBaiIBIAAoAhwiBUkNAAsLIAUhBCADQQFqIgNBBEcNAAsLIAJBIGokAAs5AAJAIAFFDQAgACgCACIBBEAgASgCBCAAKAIQQQp0EAkLIAAoAgQiAUUNACABIAAoAhRBA3QQCQsLKAECfwNAIAAgAkEDdCIDaiABIANqKQMAEBEgAkEBaiICQYABRw0ACwu8AQEDfyMAQYAQayICJAAgAEUgAUVyRQRAIAJBgAhqIAEoAgAoAgQgASgCGEEKdGpBgAhrECogASgCHEECTwRAQQEhAwNAIAJBgAhqIAEoAgAoAgQgASgCGCIEIAMgBGxqQQp0akGACGsQLiADQQFqIgMgASgCHEkNAAsLIAIgAkGACGoQwAEgACgCACAAKAIEIAJBgAgQViACQYAIakGACBAJIAJBgAgQCSABIAAoAjgQgwELIAJBgBBqJAALjQ0CEX8QfiMAQYAQayIDJAAgA0GACGogARAqIANBgAhqIAAQLiADIANBgAhqECpBACEBA0AgA0GACGogBEEHdCIAQcAAcmoiBSkDACADQYAIaiAAQeAAcmoiBikDACADQYAIaiAAaiIHKQMAIANBgAhqIABBIHJqIggpAwAiGBAHIhSFQSAQBiIVEAciFiAYhUEYEAYhGCAYIBYgFSAUIBgQByIXhUEQEAYiGhAHIiGFQT8QBiEYIANBgAhqIABByAByaiIJKQMAIANBgAhqIABB6AByaiIKKQMAIANBgAhqIABBCHJqIgspAwAgA0GACGogAEEocmoiDCkDACIUEAciFYVBIBAGIhYQByIbIBSFQRgQBiEUIBQgGyAWIBUgFBAHIhuFQRAQBiIiEAciI4VBPxAGIRQgA0GACGogAEHQAHJqIg0pAwAgA0GACGogAEHwAHJqIg4pAwAgA0GACGogAEEQcmoiDykDACADQYAIaiAAQTByaiIQKQMAIhUQByIWhUEgEAYiHBAHIh0gFYVBGBAGIRUgFSAdIBwgFiAVEAciHYVBEBAGIhwQByIehUE/EAYhFSADQYAIaiAAQdgAcmoiESkDACADQYAIaiAAQfgAcmoiEikDACADQYAIaiAAQRhyaiITKQMAIANBgAhqIABBOHJqIgApAwAiFhAHIh+FQSAQBiIZEAciICAWhUEYEAYhFiAWICAgGSAfIBYQByIfhUEQEAYiGRAHIiCFQT8QBiEWIAcgFyAUEAciFyAUIB4gFyAZhUEgEAYiFxAHIh6FQRgQBiIUEAciGTcDACASIBcgGYVBEBAGIhc3AwAgDSAeIBcQByIXNwMAIAwgFCAXhUE/EAY3AwAgCyAbIBUQByIUIBUgICAUIBqFQSAQBiIUEAciF4VBGBAGIhUQByIaNwMAIAYgFCAahUEQEAYiFDcDACARIBcgFBAHIhQ3AwAgECAUIBWFQT8QBjcDACAPIB0gFhAHIhQgFiAhIBQgIoVBIBAGIhQQByIVhUEYEAYiFhAHIhc3AwAgCiAUIBeFQRAQBiIUNwMAIAUgFSAUEAciFDcDACAAIBQgFoVBPxAGNwMAIBMgHyAYEAciFCAYICMgFCAchUEgEAYiFBAHIhWFQRgQBiIYEAciFjcDACAOIBQgFoVBEBAGIhQ3AwAgCSAVIBQQByIUNwMAIAggFCAYhUE/EAY3AwAgBEEBaiIEQQhHDQALA0AgAUEEdCIEIANBgAhqaiIAIgVBgARqKQMAIAApA4AGIAApAwAgACkDgAIiGBAHIhSFQSAQBiIVEAciFiAYhUEYEAYhGCAYIBYgFSAUIBgQByIXhUEQEAYiGhAHIiGFQT8QBiEYIAApA4gEIAApA4gGIANBgAhqIARBCHJqIgQpAwAgACkDiAIiFBAHIhWFQSAQBiIWEAciGyAUhUEYEAYhFCAUIBsgFiAVIBQQByIbhUEQEAYiIhAHIiOFQT8QBiEUIAApA4AFIAApA4AHIAApA4ABIAApA4ADIhUQByIWhUEgEAYiHBAHIh0gFYVBGBAGIRUgFSAdIBwgFiAVEAciHYVBEBAGIhwQByIehUE/EAYhFSAAKQOIBSAAKQOIByAAKQOIASAAKQOIAyIWEAciH4VBIBAGIhkQByIgIBaFQRgQBiEWIBYgICAZIB8gFhAHIh+FQRAQBiIZEAciIIVBPxAGIRYgACAXIBQQByIXIBQgHiAXIBmFQSAQBiIXEAciHoVBGBAGIhQQByIZNwMAIAAgFyAZhUEQEAYiFzcDiAcgACAeIBcQByIXNwOABSAAIBQgF4VBPxAGNwOIAiAEIBsgFRAHIhQgFSAgIBQgGoVBIBAGIhQQByIXhUEYEAYiFRAHIho3AwAgACAUIBqFQRAQBiIUNwOABiAAIBcgFBAHIhQ3A4gFIAAgFCAVhUE/EAY3A4ADIAAgHSAWEAciFCAWICEgFCAihUEgEAYiFBAHIhWFQRgQBiIWEAciFzcDgAEgACAUIBeFQRAQBiIUNwOIBiAFIBUgFBAHIhQ3A4AEIAAgFCAWhUE/EAY3A4gDIAAgHyAYEAciFCAYICMgFCAchUEgEAYiFBAHIhWFQRgQBiIYEAciFjcDiAEgACAUIBaFQRAQBiIUNwOAByAAIBUgFBAHIhQ3A4gEIAAgFCAYhUE/EAY3A4ACIAFBAWoiAUEIRw0ACyACIAMQKiACIANBgAhqEC4gA0GAEGokAAvMAQICfwF+An4gASgCAEUEQCABLQAIIgRFBEAgASgCDEEBayEDQgAMAgsgACgCFCAEbCEEIAEoAgwhASADBEAgASAEakEBayEDQgAMAgsgBCABRWshA0IADAELIAAoAhQhBCAAKAIYIQUCfyADBEAgASgCDCAFIARBf3NqagwBCyAFIARrIAEoAgxFawshA0IAIAEtAAgiAUEDRg0AGiAEIAFBAWpsrQshBiAGIANBAWutfCADrSACrSIGIAZ+QiCIfkIgiH0gADUCGIKnC/MBAQJ/IwBBgCBrIgMkACADQYAYahA8IANBgBBqEDwCQCAARSABRXINACADIAE1AgA3A4AQIAMgATUCBDcDiBAgAyABMQAINwOQECADIAA1AhA3A5gQIAMgADUCCDcDoBAgAyAANQIkNwOoECAAKAIURQ0AQQAhAQNAIAFB/wBxIgRFBEAgAyADKQOwEEIBfDcDsBAgAxA8IANBgAhqEDwgA0GAGGogA0GAEGogAxBVIANBgBhqIAMgA0GACGoQVQsgAiABQQN0aiADQYAIaiAEQQN0aikDADcDACABQQFqIgEgACgCFEkNAAsLIANBgCBqJAALjgMCC38CfgJAIABFDQACfwJAIAAoAiRBAkcNACABKAIAIgJFBEAgAS0ACEECSQ0BCyAAKAIEIQlBAQwBCyAAIAEgACgCBCIJEMQBIAEoAgAhAkEACyEKIAIgAS0ACCIDckVBAXQiBiAAKAIUIgJPDQBBfyAAKAIYIgRBAWsgBiAEIAEoAgRsaiACIANsaiICIARwGyACaiEDA0AgAkEBayADIAIgBHBBAUYbIQMCfyAKRQRAIAAoAgAhByAJIAZBA3RqDAELIAAoAgAiBygCBCADQQp0agsiBSgCBCEIIAUoAgAhCyAAKAIcIQwgASAGNgIMIAcoAgQiBSAEIAggDHCtIg0gDSABNQIEIg0gAS0ACBsgASgCACIIGyIOp2xBCnRqIAAgASALIA0gDlEQwwFBCnRqIQQgBSADQQp0aiEHIAUgAkEKdGohBQJAIAgEQCAHIAQgBRBVDAELIAcgBCAFEMIBCyAGQQFqIgYgACgCFE8NASACQQFqIQIgA0EBaiEDIAAoAhghBAwACwALC1kBAn8jACIFIQYgBUGAA2tBQHEiBSQAIAFFIABFIAJBAWtB/wFxQcAAT3JyRQRAIAUgAiABIAMgBBDIASAFQQBCABAyGiAFIAAgAhBYGiAGJABBAA8LEBQAC4ABAQJ/IwAiBiEHIAZBgANrQUBxIgYkACAARSADQQFrQf8BcUHAAE9yQQAgAUUgBFAbciAFQcEATyACRUEAIAUbcnJFBEACQCAFBEAgBiADIAIgBRCEARoMAQsgBiADEIUBGgsgBiABIAQQMhogBiAAIAMQWBogByQAQQAPCxAUAAvqAQEBfyMAQcABayIFJAAgAkUgAUEBa0H/AXFBwABPckUEQCAFQYECOwGCASAFQSA6AIEBIAUgAToAgAEgBUGAAWpBBHIQWiAFQYABakEIckIAEBEgBUIANwOYASAFQgA3A5ABAkAgAwRAIAVBgAFqIAMQ4AEMAQsgBUIANwOoASAFQgA3A6ABCwJAIAQEQCAFQYABaiAEENUBDAELIAVCADcDuAEgBUIANwOwAQsgACAFQYABahBbIAVBIGpBAEHgABAQGiAAIAUgAkEgEBIiAEKAARAyGiAAQYABEAkgAEHAAWokAA8LEBQACxEAIAAgAa0gAq1CIIaEEL0CCxIAIAAgASACrSADrUIghoQQHAsVACAAIAEgAq0gA61CIIaEIAQQhgELFwAgACABIAIgA60gBK1CIIaEIAUQiAELFwAgACABIAIgA60gBK1CIIaEIAUQhAILFwAgACABIAIgA60gBK1CIIaEIAUQhQILFQAgACABIAKtIAOtQiCGhCAEEIoCCyUAIAAgASACIAMgBCAFrSAGrUIghoQgByAIrSAJrUIghoQQjgILJQAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCRCPAgsXACAAIAEgAq0gA61CIIaEIAQgBRC6AgsYACAAIAEgAiADrSAErUIghoQgBSAGEGoLFwAgACABIAKtIAOtQiCGhCAEIAUQuwILFgAgACABKQAANwAwIAAgASkACDcAOAsYACAAIAEgAiADrSAErUIghoQgBSAGEGsLEwAgACABrSACrUIghoQgAxCSAgsTACAAIAEgAq0gA61CIIaEEJMCCyEAIAAgASACrSADrUIghoQgBK0gBa1CIIaEIAYgBxCUAgsfACAAIAEgAq0gA61CIIaEIAStIAWtQiCGhCAGEIwBCy0AIAAgAa0gAq1CIIaEIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAkgChCVAgsXACAAIAEgAq0gA61CIIaEIAQgBRCzAgsSACAAIAEgAq0gA61CIIaEEDQLEgAgACABIAKtIAOtQiCGhBAlCxkAIAAgASACIAOtIAStQiCGhCAFIAYQlAELFgAgACABKQAANwAgIAAgASkACDcAKAsXACAAIAEgAq0gA61CIIaEIAQgBRC1AgsVACAAIAEgAq0gA61CIIaEIAQQtgILGQAgACABIAKtIAOtQiCGhCAEIAUgBhCVAQsXACAAIAEgAq0gA61CIIaEIAQgBRC4AgsbACAAIAEgAiADrSAErUIghoQgBSAGIAcQlgELGAAgACABIAIgA60gBK1CIIaEIAUgBhBoCxkAIAAgASACrSADrUIghoQgBCAFIAYQlwELFwAgACABIAKtIAOtQiCGhCAEIAUQuQILGwAgACABIAIgA60gBK1CIIaEIAUgBiAHEJgBCxgAIAAgASACIAOtIAStQiCGhCAFIAYQaQsVACAAIAEgAq0gA61CIIaEIAQQwAILFQAgACABIAKtIAOtQiCGhCAEEJoBCyUAIAAgASADIAStIAWtQiCGhCAGIAetIAitQiCGhCAJIAoQyQILJQAgACACIAOtIAStQiCGhCAFIAYgB60gCK1CIIaEIAkgChCcAQslACAAIAEgAiADrSAErUIghoQgBSAGrSAHrUIghoQgCSAKEMsCCycAIAAgASACIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAogCxCdAQslACAAIAEgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCSAKEM8CCyUAIAAgAiADrSAErUIghoQgBSAGIAetIAitQiCGhCAJIAoQngELJQAgACABIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAkgChDQAgslACAAIAIgA60gBK1CIIaEIAUgBiAHrSAIrUIghoQgCSAKEJ8BCyUAIAAgASACIAOtIAStQiCGhCAFIAatIAetQiCGhCAJIAoQ0QILJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEKABCyUAIAAgASACIAOtIAStQiCGhCAFIAatIAetQiCGhCAJIAoQ0gILJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEKEBCwQAQQoLBgBBspcCCwsAIAAgASACEIICCw0AIAAgASACIAMQgwILCAAgABA1QQALCQAgACABEIgCCwsAIAAgASACEIoBCwUAQb9/CwUAQdABCywBAX8jAEFAaiIDJAAgACADECcgASADQsAAIAJBARCHASEAIANBQGskACAACy4BAX8jAEFAaiIEJAAgACAEECcgASACIARCwAAgA0EBEIkBIQAgBEFAayQAIAALewEBfwJAAkACQCADQsAAVA0AIANCQHwiA0K/////D1YNACACIAJBQGsiBSADIAQQhgFFDQEgAEUNACAAQQAgA6cQEBoLQX8hAiABRQ0BIAFCADcDAEF/DwsgAQRAIAEgAzcDAAtBACECIABFDQAgACAFIAOnEEcaCyACC3MBAX8jAEEQayIFJAAgACAFQQhqIABBQGsgAiADpyICEEcgAyAEEIgBGgJAIAUpAwhCwABSBEAgAQRAIAFCADcDAAsgAEEAIAJBQGsQEBpBfyEADAELQQAhACABRQ0AIAEgA0JAfTcDAAsgBUEQaiQAIAALbQEBfyMAQUBqIgIkACACIAFCIBA0GiACIAItAABB+AFxOgAAIAIgAi0AH0E/cUHAAHI6AB8gACACKQMQNwAQIAAgAikDCDcACCAAIAIpAwA3AAAgACACKQMYNwAYIAJBwAAQCSACQUBrJABBAAuGAQECfyMAQYACayICJABBfyEDAkAgARB1DQAgAkHgAGogARCuAQ0AIAJB4ABqEOUCRQ0AIAIQHSACIAIgAkGIAWoiARAWIAJBMGoQHSACQTBqIAJBMGogARATIAIgAhA6IAJBMGogAkEwaiACEAsgACACQTBqEC1BACEDCyACQYACaiQAIAMLLAEBfyMAQSBrIgIkACACQSAQHyAAIAEg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ASACQhB9IAMgBBBqBSAFCwslACACQvD///8PWgRAEBQACyAAQRBqIAAgASACIAMgBBBrGkEACwsAIAAgASACEL8CCy8AIAFCgICAgBBaBEBBACIAQYQOaiAAQZgOakHFASAAQbIOahAAAAsgACABpxAfCzMBAn8jAEEgayIDJABBfyEEIAMgAiABEKgBRQRAIABB4JUCIAMQbSEECyADQSBqJAAgBAtWAQF/IwBBQGoiAyQAIAMgAkIgEDQaIAEgAykDGDcAGCABIAMpAxA3ABAgASADKQMINwAIIAEgAykDADcAACADQcAAEAkgACABEHIhACADQUBrJAAgAAtAAQF/IwBBIGsiBCQAIAQgASACIAMQmgEaIAAgBBCAASEBIAQgAEEgEEUhAyAEQSBqJAAgA0F/IAEgACAERhtyC0MBAX8jAEFAaiICJAAgACACEMICIAEgAikDGDcAGCABIAIpAxA3ABAgASACKQMINwAIIAEgAikDADcAACACQUBrJAALNwEBfyMAQUBqIgIkACAAIAIQJyAAQdABaiIAIAJCwAAQHBogACABECcgAkHAABAJIAJBQGskAAvhAQEDfyMAQcABayICJAAgABA1IAJBQGtBNkGAARAQGiACIAEtAABBNnM6AEBBASEDA0AgAkFAayADaiIEIAQtAAAgASADai0AAHM6AAAgA0EBaiIDQSBHDQALIAAgAkFAa0KAARAcGiAAQdABaiIAEDUgAkFAa0HcAEGAARAQGiACIAEtAABB3ABzOgBAQQEhAwNAIAJBQGsgA2oiBCAELQAAIAEgA2otAABzOgAAIANBAWoiA0EgRw0ACyAAIAJBQGtCgAEQHBogAkFAa0GAARAJIAJBwAAQCSACQcABaiQAC2YBAX4gACkAACIBQjiGIAFCKIZCgICAgICAwP8Ag4QgAUIYhkKAgICAgOA/gyABQgiGQoCAgIDwH4OEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhAsmAQJ/AkBBpJwCKAIAIgBFDQAgACgCFCIARQ0AIAARAQAhAQsgAQtkACAAIAFCKIZCgICAgICAwP8AgyABQjiGhCABQhiGQoCAgICA4D+DIAFCCIZCgICAgPAfg4SEIAFCCIhCgICA+A+DIAFCGIhCgID8B4OEIAFCKIhCgP4D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BiADakENEAggDXMiDSAGakESEAggBXMhBSAaQRJJIRAgGkECaiEaIBANAAsgACACQeXwwYsGahAKIABBBGogByASahAKIABBCGogCCATahAKIABBDGogESAUahAKIABBEGogCSAVahAKIABBFGogDkHuyIGZA2oQCiAAQRhqIAogG2oQCiAAQRxqIAsgHGoQCiAAQSBqIAwgHWoQCiAAQSRqIA8gHmoQCiAAQShqIAFBstqIywdqEAogAEEsaiAEIBZqEAogAEEwaiADIBdqEAogAEE0aiAGIBhqEAogAEE4aiANIBlqEAogAEE8aiAFQfTKgdkGahAKCzoBAX8jAEHgAGsiAyQAIANBMGogAiABEBMgAyACIAEQFiADIAMQOiAAIANBMGogAxALIANB4ABqJAALdgECfyMAQdABayICJAADQCAAIANqIAEgA2otAAA6AAAgA0EBaiIDQSBHDQALIAAgAC0AAEH4AXE6AAAgACAALQAfQT9xQcAAcjoAHyACQTBqIAAQdiACIAJB2ABqIAJBgAFqENwCIAAgAhAtIAJB0AFqJABBAAu9AwEMfiABNAIEIQIgATQCCCEDIAE0AgwhBCABNAIQIQUgATQCFCEGIAE0AhghByABNAIAIQsgACABNAIkQsK2B34iCCAIQoCAgAh8IghCgICA8A+DfSABNAIgQsK2B34gATQCHELCtgd+IglCgICACHwiCkIZh3wiDEKAgIAQfCINQhqIfD4CJCAAIAwgDUKAgIDgD4N9PgIgIAAgCSAKQoCAgPAPg30gB0LCtgd+IAZCwrYHfiIGQoCAgAh8IgdCGYd8IglCgICAEHwiCkIaiHw+AhwgACAJIApCgICA4A+DfT4CGCAAIAYgB0KAgIDwD4N9IAVCwrYHfiAEQsK2B34iBEKAgIAIfCIFQhmHfCIGQoCAgBB8IgdCGoh8PgIUIAAgBiAHQoCAgOAPg30+AhAgACAEIAVCgICA8A+DfSADQsK2B34gAkLCtgd+IgJCgICACHwiA0IZh3wiBEKAgIAQfCIFQhqIfD4CDCAAIAQgBUKAgIDgD4N9PgIIIAAgAiADQoCAgPAPg30gCEIZh0ITfiALQsK2B358IgJCgICAEHwiA0IaiHw+AgQgACACIANCgICA4A+DfT4CAAvcAQEFfyMAQRBrIgNBADYACyADQQA2AggDQCAAIAJqLQAAIQRBACEBA0AgA0EIaiABaiIFIAUtAAAgAUEFdEGgjQJqIAJqLQAAIARzcjoAACABQQFqIgFBB0cNAAsgAkEBaiICQR9HDQALIAAtAB9B/wBxIQJBACEAQQAhAQNAIANBCGogAWoiBCAELQAAIAIgAUEFdEG/jQJqLQAAc3I6AAAgAUEBaiIBQQdHDQALQQAhAQNAIANBCGogAGotAABBAWsgAXIhASAAQQFqIgBBB0cNAAsgAUEIdkEBcQvcBAEDfyMAQdACayIDJABBfyEEIAIQ3wJFBEBBACEEA0AgACAEaiABIARqLQAAOgAAIARBAWoiBEEgRw0ACyAAIAAtAABB+AFxOgAAIAAgAC0AH0E/cUHAAHI6AB8gA0GgAmogAhB7IANB8AFqEB0gA0HAAWoQOCADQZABaiADQaACahAsIANB4ABqEB1B/gEhAkEAIQQDQCADQfABaiADQZABaiAAIAIiBUEDdmotAAAgAkEHcXZBAXEiASAEcyIEEE4gA0HAAWogA0HgAGogBBBOIAJBAWshAiADQTBqIANBkAFqIANB4ABqEBYgAyADQfABaiADQcABahAWIANB8AFqIANB8AFqIANBwAFqEBMgA0HAAWogA0GQAWogA0HgAGoQEyADQeAAaiADQTBqIANB8AFqEAsgA0HAAWogA0HAAWogAxALIANBMGogAxAOIAMgA0HwAWoQDiADQZABaiADQeAAaiADQcABahATIANBwAFqIANB4ABqIANBwAFqEBYgA0HwAWogAyADQTBqEAsgAyADIANBMGoQFiADQcABaiADQcABahAOIANB4ABqIAMQ3gIgA0GQAWogA0GQAWoQDiADQTBqIANBMGogA0HgAGoQEyADQeAAaiADQaACaiADQcABahALIANBwAFqIAMgA0EwahALIAEhBCAFDQALIANB8AFqIANBkAFqIAEQTiADQcABaiADQeAAaiABEE4gA0HAAWogA0HAAWoQOiADQfABaiADQfABaiADQcABahALIAAgA0HwAWoQLUEAIQQLIANB0AJqJAAgBAtUAQV/QSAhAUEBIQIDQCAAIAFBAWsiAWotAAAiBCABQYAbai0AACIFa0EIdSACcSADQf8BcXIhAyAEIAVzQf//A2pBCHYgAnEhAiABDQALIANBAEcL6B4BOn4gARAPIRIg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CiAAIAtC////AIMgBEIVh3wiBkIKiDwAESAAIAZCAog8ABAgACAEQv///wCDIgdCAYYgBUIUiIQ8AA0gACAMQv///wCDIAZCFYd8IgRCDYg8ABQgACAEQgWIPAATIAAgBkL///8AgyIFQgaGIAdCD4iEPAAPIAAgDkL///8AgyAEQhWHfCIGPAAVIAAgBEIDhiAFQhKIhDwAEiAAIAZCCIg8ABYgACAPQv///wCDIAZCFYd8IgRCC4g8ABkgACAEQgOIPAAYIAAgEEL///8AgyAEQhWHfCIFQgaIPAAbIAAgBkIQiEIfgyAEQv///wCDIgRCBYaEPAAXIAAgDUL///8AgyAFQhWHfCIGQhGIPAAfIAAgBkIJiDwAHiAAIAZCAYg8AB0gACAFQv///wCDIgVCAoYgBEITiIQ8ABogACAGQgeGIAVCDoiEPAAcC1IBA38gAC0AH0F/c0H/AHEhAUEeIQIDQCABIAAgAmotAABBf3NyIQEgAkEBayIDIQIgAw0ACyABQf8BcUEBa0HsASAALQAAa3FBCHZBf3NBAXELjAQBAn8jAEHgDWsiAiQAIAJB4ANqIAEQGyACQcACaiABEE8gAiACQcACahAVIAJBwAJqIAIgAkHgA2oQGiACQaABaiACQcACahAVIAJBgAVqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBoAZqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBwAdqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJB4AhqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBgApqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBoAtqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBwAxqIAJBoAFqEBsgABCrAUH8ASEBA0AgAkHAAmogABBPAkAgASIDQaCLAmosAAAiAUEBTgRAIAJBoAFqIAJBwAJqEBUgAkHAAmogAkGgAWogAkHgA2ogAUH+AXFBAXZBoAFsahAaDAELIAFBf0oNACACQaABaiACQcACahAVIAJBwAJqIAJBoAFqIAJB4ANqQQAgAWtB/gFx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/////////3/t////////////////////////////////////////f+7///////////////////////////////////////9/7dP1XBpjEljWnPei3vneFABBnxsL/PABEIU7jAG98ST/+CXDAWDcNwC3TD7/w0I9ADJMpAHhpEz/TD2j/3U+HwBRkUD/dkEOAKJz1v8Gii4AfOb0/wqKjwA0GsIAuPRMAIGPKQG+9BP/e6p6/2KBRAB51ZMAVmUe/6FnmwCMWUP/7+W+AUMLtQDG8In+7kW8/+pxPP8l/zn/RbK2/oDQswB2Gn3+AwfW//EyTf9Vy8X/04f6/xkwZP+71bT+EVhpAFPRngEFc2IABK48/qs3bv/ZtRH/FLyqAJKcZv5X1q7/cnqbAeksqgB/CO8B1uzqAK8F2wAxaj3/BkLQ/wJqbv9R6hP/12vA/0OX7gATKmz/5VVxATJEh/8RagkAMmcB/1ABqAEjmB7/EKi5AThZ6P9l0vwAKfpHAMyqT/8OLu//UE3vAL3WS/8RjfkAJlBM/75VdQBW5KoAnNjQAcPPpP+WQkz/r+EQ/41QYgFM2/IAxqJyAC7amACbK/H+m6Bo/7IJ/P5kbtQADgWnAOnvo/8cl50BZZIK//6eRv5H+eQAWB4yAEQ6oP+/GGgBgUKB/8AyVf8Is4r/JvrJAHNQoACD5nEAfViTAFpExwD9TJ4AHP92AHH6/gBCSy4A5torAOV4ugGURCsAiHzuAbtrxf9UNfb/M3T+/zO7pQACEa8AQlSgAfc6HgAjQTX+Rey/AC2G9QGje90AIG4U/zQXpQC61kcA6bBgAPLvNgE5WYoAUwBU/4igZABcjnj+aHy+ALWxPv/6KVUAmIIqAWD89gCXlz/+74U+ACA4nAAtp73/joWzAYNW0wC7s5b++qoO/0RxFf/eujv/QgfxAUUGSABWnGz+N6dZAG002/4NsBf/xCxq/++VR/+kjH3/n60BADMp5wCRPiEAim9dAblTRQCQcy4AYZcQ/xjkGgAx2eIAcUvq/sGZDP+2MGD/Dg0aAIDD+f5FwTsAhCVR/n1qPADW8KkBpONCANKjTgAlNJcAY00aAO6c1f/VwNEBSS5UABRBKQE2zk8AyYOS/qpvGP+xITL+qybL/073dADR3ZkAhYCyATosGQDJJzsBvRP8ADHl0gF1u3UAtbO4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ANW7ff/oLjz/vnQq/peyE/8zPu3+zOzBAMLoPACsIp3/vRC4/mcDX/+N6ST+KRkL/xXDpgB29S0AQ9WV/58MEv+7pOMBoBkFAAxOwwErxeEAMI4p/sSbPP/fxxIBkYicAPx1qf6R4u4A7xdrAG21vP/mcDH+Sart/+e34/9Q3BQAwmt/AX/NZQAuNMUB0qsk/1gDWv84l40AYLv//ypOyAD+RkYB9H2oAMxEigF810YAZkLI/hE05AB13I/+y/h7ADgSrv+6l6T/M+jQAaDkK//5HRkBRL4/AA0AAAAA/wAAAAD1AAAAAAAA+wAAAAAAAP0AAAAA8wAAAAAHAAAAAAADAAAAAPMAAAAABQAAAAAAAAAACwAAAAAACwAAAADzAAAAAAAA/QAAAAAA/wAAAAADAAAAAPUAAAAAAAAADwAAAAAA/wAAAAD/AAAAAAcAAAAABQBBnI0CCwEBAEHAjQILAQEAQeCNAgugAeDrenw7QbiuFlbj+vGfxGraCY3rnDKx/YZiBRZfSbgAX5yVvKNQjCSx0LFVnIPvWwREXMRYHI6G2CJO3dCfEVfs////////////////////////////////////////f+3///////////////////////////////////////9/7v///////////////////////////////////////38AQaCPAgvBBQjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FsirijXmC+KQs1l7yORRDdxLztN7M/7wLW824mBpdu16Ti1SPNbwlY5GdAFtvER8VmbTxmvpII/khiBbdrVXhyrQgIDo5iqB9i+b3BFAVuDEoyy5E6+hTEk4rT/1cN9DFVviXvydF2+crGWFjv+sd6ANRLHJacG3JuUJmnPdPGbwdJK8Z7BaZvk4yVPOIZHvu+11YyLxp3BD2WcrHfMoQwkdQIrWW8s6S2D5KZuqoR0StT7Qb3cqbBctVMRg9qI+Xar32buUlE+mBAytC1txjGoPyH7mMgnA7DkDu++x39Zv8KPqD3zC+DGJacKk0eRp9VvggPgUWPKBnBuDgpnKSkU/C/SRoUKtycmySZcOCEbLu0qxFr8bSxN37OVnRMNOFPeY6+LVHMKZaiydzy7Cmp25q7tRy7JwoE7NYIUhSxykmQD8Uyh6L+iATBCvEtmGqiRl/jQcItLwjC+VAajUWzHGFLv1hnoktEQqWVVJAaZ1iogcVeFNQ70uNG7MnCgahDI0NK4FsGkGVOrQVEIbDcemeuO30x3SCeoSJvhtbywNGNaycWzDBw5y4pB40qq2E5z42N3T8qcW6O4stbzby5o/LLvXe6Cj3RgLxdDb2OleHKr8KEUeMiE7DlkGggCx4woHmMj+v++kOm9gt7rbFCkFXnGsvej+b4rU3Lj8nhxxpxhJurOPifKB8LAIce4htEe6+DN1n3a6njRbu5/T331um8Xcqpn8AammMiixX1jCq4N+b4EmD8RG0ccEzULcRuEfQQj9XfbKJMkx0B7q8oyvL7JFQq+njxMDRCcxGcdQ7ZCPsu+1MVMKn5l/Jwpf1ns+tY6q2/LXxdYR0qMGURsgABB8JUCC4UBYjY0X3BvcyA8PSBiNjRfbGVuAHNvZGl1bS9jb2RlY3MuYwBzb2RpdW1fYmluMmJhc2U2NAAkYXJnb24yaWQAJGFyZ29uMmkAJHY9ACRtPQAsdD0ALHA9ACRhcmdvbjJpZCR2PQAkYXJnb24yaSR2PQAkYXJnb24yaWQkACRhcmdvbjJpJABBkJcCCyhTaWdFZDI1NTE5IG5vIEVkMjU1MTkgY29sbGlzaW9ucwEAMS4wLjE4AEG8lwILOVCOUAAAQAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQ==' - function nA(A) { - try { - if (A == iA && w) return new Uint8Array(w) - var I = HA(A) - if (I) return I - if (t) return t(A) - throw 'both async and sync fetching of the wasm failed' - } catch (A) { - $(A) - } - } - function aA() { - if (!w && (i || n)) { - if ('function' == typeof fetch && !QA(iA)) - return fetch(iA, { credentials: 'same-origin' }) - .then(function (A) { - if (!A.ok) throw "failed to load wasm binary file at '" + iA + "'" - return A.arrayBuffer() - }) - .catch(function () { - return nA(iA) - }) - if (e) - return new Promise(function (A, I) { - e( - iA, - function (I) { - A(new Uint8Array(I)) - }, - I - ) - }) - } - return Promise.resolve().then(function () { - return nA(iA) - }) - } - function rA() { - var A = { a: bA } - function I(A, I) { - var g = A.exports - ;(Q.asm = g), M((h = Q.asm.g).buffer), (d = Q.asm.h), z() - } - function g(A) { - I(A.instance) - } - function B(I) { - return aA() - .then(function (I) { - return WebAssembly.instantiate(I, A) - }) - .then(I, function (A) { - D('failed to asynchronously prepare wasm: ' + A), $(A) - }) - } - if ((O(), Q.instantiateWasm)) - try { - return Q.instantiateWasm(A, I) - } catch (A) { - return D('Module.instantiateWasm callback failed with error: ' + A), !1 - } - return ( - w || - 'function' != typeof WebAssembly.instantiateStreaming || - gA(iA) || - QA(iA) || - 'function' != typeof fetch - ? B(g) - : fetch(iA, { credentials: 'same-origin' }).then(function (I) { - return WebAssembly.instantiateStreaming(I, A).then(g, function (A) { - return ( - D('wasm streaming compile failed: ' + A), - D('falling back to ArrayBuffer instantiation'), - B(g) - ) - }) - }), - {} - ) - } - gA(iA) || (iA = s(iA)) - var oA = { - 1024: function () { - return Q.getRandomValue() - }, - 1062: function () { - if (void 0 === Q.getRandomValue) - try { - var A = 'object' == typeof window ? window : self, - I = void 0 !== A.crypto ? A.crypto : A.msCrypto, - g = function () { - var A = new Uint32Array(1) - return I.getRandomValues(A), A[0] >>> 0 - } - g(), (Q.getRandomValue = g) - } catch (A) { - try { - var B = require('crypto'), - C = function () { - var A = B.randomBytes(4) - return ((A[0] << 24) | (A[1] << 16) | (A[2] << 8) | A[3]) >>> 0 - } - C(), (Q.getRandomValue = C) - } catch (A) { - throw 'No secure random number generator found' - } - } - } - } - function eA(A) { - for (; A.length > 0; ) { - var I = A.shift() - if ('function' != typeof I) { - var g = I.func - 'number' == typeof g - ? void 0 === I.arg - ? d.get(g)() - : d.get(g)(I.arg) - : g(void 0 === I.arg ? null : I.arg) - } else I(Q) - } - } - function tA(A, I, g, B) { - $( - 'Assertion failed: ' + - S(A) + - ', at: ' + - [I ? S(I) : 'unknown filename', g, B ? S(B) : 'unknown function'] - ) - } - function fA() { - $() - } - function cA(A, I, g) { - var B = lA(I, g) - return oA[A].apply(null, B) - } - function yA(A, I, g) { - _.copyWithin(A, I, I + g) - } - function sA() { - return _.length - } - function wA(A) { - try { - return h.grow((A - G.byteLength + 65535) >>> 16), M(h.buffer), 1 - } catch (A) {} - } - function hA(A) { - A >>>= 0 - var I = sA(), - g = 2147483648 - if (A > g) return !1 - for (var B = 1; B <= 4; B *= 2) { - var Q = I * (1 + 0.2 / B) - if ( - ((Q = Math.min(Q, A + 100663296)), - wA(Math.min(g, N(Math.max(16777216, A, Q), 65536)))) - ) - return !0 - } - return !1 - } - function DA(A) { - return (Y[vA() >> 2] = A), A - } - function uA(A) { - switch (A) { - case 30: - return 16384 - case 85: - return 131072 - case 132: - case 133: - case 12: - case 137: - case 138: - case 15: - case 235: - case 16: - case 17: - case 18: - case 19: - case 20: - case 149: - case 13: - case 10: - case 236: - case 153: - case 9: - case 21: - case 22: - case 159: - case 154: - case 14: - case 77: - case 78: - case 139: - case 82: - case 68: - case 67: - case 164: - case 11: - case 29: - case 47: - case 48: - case 95: - case 52: - case 51: - case 46: - return 200809 - case 27: - case 246: - case 127: - case 128: - case 23: - case 24: - case 160: - case 161: - case 181: - case 182: - case 242: - case 183: - case 184: - case 243: - case 244: - case 245: - case 165: - case 178: - case 179: - case 49: - case 50: - case 168: - case 169: - case 175: - case 170: - case 171: - case 172: - case 97: - case 76: - case 32: - case 173: - case 35: - case 80: - case 81: - case 79: - return -1 - case 176: - case 177: - case 7: - case 155: - case 8: - case 157: - case 125: - case 126: - case 92: - case 93: - case 129: - case 130: - case 131: - case 94: - case 91: - return 1 - case 74: - case 60: - case 69: - case 70: - case 4: - return 1024 - case 31: - case 42: - case 72: - return 32 - case 87: - case 26: - case 33: - return 2147483647 - case 34: - case 1: - return 47839 - case 38: - case 36: - return 99 - case 43: - case 37: - return 2048 - case 0: - return 2097152 - case 3: - return 65536 - case 28: - return 32768 - case 44: - return 32767 - case 75: - return 16384 - case 39: - return 1e3 - case 89: - return 700 - case 71: - return 256 - case 40: - return 255 - case 2: - return 100 - case 180: - return 64 - case 25: - return 20 - case 5: - return 16 - case 6: - return 6 - case 73: - return 4 - case 84: - return ( - ('object' == typeof navigator && navigator.hardwareConcurrency) || 1 - ) - } - return DA(28), -1 - } - var pA = [] - function lA(A, I) { - var g - for (pA.length = 0, I >>= 2; (g = _[A++]); ) { - var B = g < 105 - B && 1 & I && I++, pA.push(B ? m[I++ >> 1] : Y[I]), ++I - } - return pA - } - var FA = !1 - function GA(A) { - for (var I = [], g = 0; g < A.length; g++) { - var B = A[g] - B > 255 && - (FA && - F( - !1, - 'Character code ' + - B + - ' (' + - String.fromCharCode(B) + - ') at offset ' + - g + - ' not in 0x00-0xFF.' - ), - (B &= 255)), - I.push(String.fromCharCode(B)) - } - return I.join('') - } - var kA = - 'function' == typeof atob - ? atob - : function (A) { - var I, - g, - B, - Q, - C, - E, - i = - 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', - n = '', - a = 0 - A = A.replace(/[^A-Za-z0-9\+\/\=]/g, '') - do { - ;(I = - (i.indexOf(A.charAt(a++)) << 2) | - ((Q = i.indexOf(A.charAt(a++))) >> 4)), - (g = ((15 & Q) << 4) | ((C = i.indexOf(A.charAt(a++))) >> 2)), - (B = ((3 & C) << 6) | (E = i.indexOf(A.charAt(a++)))), - (n += String.fromCharCode(I)), - 64 !== C && (n += String.fromCharCode(g)), - 64 !== E && (n += String.fromCharCode(B)) - } while (a < A.length) - return n - } - function _A(A) { - if ('boolean' == typeof a && a) { - var I - try { - I = Buffer.from(A, 'base64') - } catch (g) { - I = new Buffer(A, 'base64') - } - return new Uint8Array(I.buffer, I.byteOffset, I.byteLength) - } - try { - for ( - var g = kA(A), B = new Uint8Array(g.length), Q = 0; - Q < g.length; - ++Q - ) - B[Q] = g.charCodeAt(Q) - return B - } catch (A) { - throw new Error('Converting base64 string to bytes failed.') - } - } - function HA(A) { - if (gA(A)) return _A(A.slice(IA.length)) - } - var YA, - bA = { a: tA, c: fA, b: cA, e: yA, f: hA, d: uA }, - mA = - (rA(), - (Q.___wasm_call_ctors = function () { - return (mA = Q.___wasm_call_ctors = Q.asm.i).apply(null, arguments) - })), - vA = - ((Q._crypto_aead_chacha20poly1305_encrypt_detached = function () { - return (Q._crypto_aead_chacha20poly1305_encrypt_detached = - Q.asm.j).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_encrypt = function () { - return (Q._crypto_aead_chacha20poly1305_encrypt = Q.asm.k).apply( - null, - arguments - ) - }), - (Q._crypto_aead_chacha20poly1305_ietf_encrypt_detached = function () { - return (Q._crypto_aead_chacha20poly1305_ietf_encrypt_detached = - Q.asm.l).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_ietf_encrypt = function () { - return (Q._crypto_aead_chacha20poly1305_ietf_encrypt = Q.asm.m).apply( - null, - arguments - ) - }), - (Q._crypto_aead_chacha20poly1305_decrypt_detached = function () { - return (Q._crypto_aead_chacha20poly1305_decrypt_detached = - Q.asm.n).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_decrypt = function () { - return (Q._crypto_aead_chacha20poly1305_decrypt = Q.asm.o).apply( - null, - arguments - ) - }), - (Q._crypto_aead_chacha20poly1305_ietf_decrypt_detached = function () { - return (Q._crypto_aead_chacha20poly1305_ietf_decrypt_detached = - Q.asm.p).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_ietf_decrypt = function () { - return (Q._crypto_aead_chacha20poly1305_ietf_decrypt = Q.asm.q).apply( - null, - arguments - ) - }), - (Q._crypto_aead_chacha20poly1305_ietf_keybytes = function () { - return (Q._crypto_aead_chacha20poly1305_ietf_keybytes = Q.asm.r).apply( - null, - arguments - ) - }), - (Q._crypto_aead_chacha20poly1305_ietf_npubbytes = function () { - return (Q._crypto_aead_chacha20poly1305_ietf_npubbytes = Q.asm.s).apply( - null, - arguments - ) - }), - (Q._crypto_aead_chacha20poly1305_ietf_nsecbytes = function () { - return (Q._crypto_aead_chacha20poly1305_ietf_nsecbytes = Q.asm.t).apply( - null, - arguments - ) - }), - (Q._crypto_aead_chacha20poly1305_ietf_abytes = function () { - return (Q._crypto_aead_chacha20poly1305_ietf_abytes = Q.asm.u).apply( - null, - arguments - ) - }), - (Q._crypto_aead_chacha20poly1305_ietf_messagebytes_max = function () { - return (Q._crypto_aead_chacha20poly1305_ietf_messagebytes_max = - Q.asm.v).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_ietf_keygen = function () { - return (Q._crypto_aead_chacha20poly1305_ietf_keygen = Q.asm.w).apply( - null, - arguments - ) - }), - (Q._crypto_aead_chacha20poly1305_keybytes = function () { - return (Q._crypto_aead_chacha20poly1305_keybytes = Q.asm.x).apply( - null, - arguments - ) - }), - (Q._crypto_aead_chacha20poly1305_npubbytes = function () { - return (Q._crypto_aead_chacha20poly1305_npubbytes = Q.asm.y).apply( - null, - arguments - ) - }), - (Q._crypto_aead_chacha20poly1305_nsecbytes = function () { - return (Q._crypto_aead_chacha20poly1305_nsecbytes = Q.asm.z).apply( - null, - arguments - ) - }), - (Q._crypto_aead_chacha20poly1305_abytes = function () { - return (Q._crypto_aead_chacha20poly1305_abytes = Q.asm.A).apply( - null, - arguments - ) - }), - (Q._crypto_aead_chacha20poly1305_messagebytes_max = function () { - return (Q._crypto_aead_chacha20poly1305_messagebytes_max = - Q.asm.B).apply(null, arguments) - }), - (Q._crypto_aead_chacha20poly1305_keygen = function () { - return (Q._crypto_aead_chacha20poly1305_keygen = Q.asm.C).apply( - null, - arguments - ) - }), - (Q._crypto_aead_xchacha20poly1305_ietf_encrypt_detached = function () { - return (Q._crypto_aead_xchacha20poly1305_ietf_encrypt_detached = - Q.asm.D).apply(null, arguments) - }), - (Q._crypto_aead_xchacha20poly1305_ietf_encrypt = function () { - return (Q._crypto_aead_xchacha20poly1305_ietf_encrypt = Q.asm.E).apply( - null, - arguments - ) - }), - (Q._crypto_aead_xchacha20poly1305_ietf_decrypt_detached = function () { - return (Q._crypto_aead_xchacha20poly1305_ietf_decrypt_detached = - Q.asm.F).apply(null, arguments) - }), - (Q._crypto_aead_xchacha20poly1305_ietf_decrypt = function () { - return (Q._crypto_aead_xchacha20poly1305_ietf_decrypt = Q.asm.G).apply( - null, - arguments - ) - }), - (Q._crypto_aead_xchacha20poly1305_ietf_keybytes = function () { - return (Q._crypto_aead_xchacha20poly1305_ietf_keybytes = Q.asm.H).apply( - null, - arguments - ) - }), - (Q._crypto_aead_xchacha20poly1305_ietf_npubbytes = function () { - return (Q._crypto_aead_xchacha20poly1305_ietf_npubbytes = - Q.asm.I).apply(null, arguments) - }), - (Q._crypto_aead_xchacha20poly1305_ietf_nsecbytes = function () { - return (Q._crypto_aead_xchacha20poly1305_ietf_nsecbytes = - Q.asm.J).apply(null, arguments) - }), - (Q._crypto_aead_xchacha20poly1305_ietf_abytes = function () { - return (Q._crypto_aead_xchacha20poly1305_ietf_abytes = Q.asm.K).apply( - null, - arguments - ) - }), - (Q._crypto_aead_xchacha20poly1305_ietf_messagebytes_max = function () { - return (Q._crypto_aead_xchacha20poly1305_ietf_messagebytes_max = - Q.asm.L).apply(null, arguments) - }), - (Q._crypto_aead_xchacha20poly1305_ietf_keygen = function () { - return (Q._crypto_aead_xchacha20poly1305_ietf_keygen = Q.asm.M).apply( - null, - arguments - ) - }), - (Q._crypto_auth_bytes = function () { - return (Q._crypto_auth_bytes = Q.asm.N).apply(null, arguments) - }), - (Q._crypto_auth_keybytes = function () { - return (Q._crypto_auth_keybytes = Q.asm.O).apply(null, arguments) - }), - (Q._crypto_auth = function () { - return (Q._crypto_auth = Q.asm.P).apply(null, arguments) - }), - (Q._crypto_auth_verify = function () { - return (Q._crypto_auth_verify = Q.asm.Q).apply(null, arguments) - }), - (Q._crypto_auth_keygen = function () { - return (Q._crypto_auth_keygen = Q.asm.R).apply(null, arguments) - }), - (Q._crypto_box_seedbytes = function () { - return (Q._crypto_box_seedbytes = Q.asm.S).apply(null, arguments) - }), - (Q._crypto_box_publickeybytes = function () { - return (Q._crypto_box_publickeybytes = Q.asm.T).apply(null, arguments) - }), - (Q._crypto_box_secretkeybytes = function () { - return (Q._crypto_box_secretkeybytes = Q.asm.U).apply(null, arguments) - }), - (Q._crypto_box_beforenmbytes = function () { - return (Q._crypto_box_beforenmbytes = Q.asm.V).apply(null, arguments) - }), - (Q._crypto_box_noncebytes = function () { - return (Q._crypto_box_noncebytes = Q.asm.W).apply(null, arguments) - }), - (Q._crypto_box_macbytes = function () { - return (Q._crypto_box_macbytes = Q.asm.X).apply(null, arguments) - }), - (Q._crypto_box_messagebytes_max = function () { - return (Q._crypto_box_messagebytes_max = Q.asm.Y).apply(null, arguments) - }), - (Q._crypto_box_seed_keypair = function () { - return (Q._crypto_box_seed_keypair = Q.asm.Z).apply(null, arguments) - }), - (Q._crypto_box_keypair = function () { - return (Q._crypto_box_keypair = Q.asm._).apply(null, arguments) - }), - (Q._crypto_box_beforenm = function () { - return (Q._crypto_box_beforenm = Q.asm.$).apply(null, arguments) - }), - (Q._crypto_box_detached_afternm = function () { - return (Q._crypto_box_detached_afternm = Q.asm.aa).apply( - null, - arguments - ) - }), - (Q._crypto_box_detached = function () { - return (Q._crypto_box_detached = Q.asm.ba).apply(null, arguments) - }), - (Q._crypto_box_easy_afternm = function () { - return (Q._crypto_box_easy_afternm = Q.asm.ca).apply(null, arguments) - }), - (Q._crypto_box_easy = function () { - return (Q._crypto_box_easy = Q.asm.da).apply(null, arguments) - }), - (Q._crypto_box_open_detached_afternm = function () { - return (Q._crypto_box_open_detached_afternm = Q.asm.ea).apply( - null, - arguments - ) - }), - (Q._crypto_box_open_detached = function () { - return (Q._crypto_box_open_detached = Q.asm.fa).apply(null, arguments) - }), - (Q._crypto_box_open_easy_afternm = function () { - return (Q._crypto_box_open_easy_afternm = Q.asm.ga).apply( - null, - arguments - ) - }), - (Q._crypto_box_open_easy = function () { - return (Q._crypto_box_open_easy = Q.asm.ha).apply(null, arguments) - }), - (Q._crypto_box_seal = function () { - return (Q._crypto_box_seal = Q.asm.ia).apply(null, arguments) - }), - (Q._crypto_box_seal_open = function () { - return (Q._crypto_box_seal_open = Q.asm.ja).apply(null, arguments) - }), - (Q._crypto_box_sealbytes = function () { - return (Q._crypto_box_sealbytes = Q.asm.ka).apply(null, arguments) - }), - (Q._crypto_generichash_bytes_min = function () { - return (Q._crypto_generichash_bytes_min = Q.asm.la).apply( - null, - arguments - ) - }), - (Q._crypto_generichash_bytes_max = function () { - return (Q._crypto_generichash_bytes_max = Q.asm.ma).apply( - null, - arguments - ) - }), - (Q._crypto_generichash_bytes = function () { - return (Q._crypto_generichash_bytes = Q.asm.na).apply(null, arguments) - }), - (Q._crypto_generichash_keybytes_min = function () { - return (Q._crypto_generichash_keybytes_min = Q.asm.oa).apply( - null, - arguments - ) - }), - (Q._crypto_generichash_keybytes_max = function () { - return (Q._crypto_generichash_keybytes_max = Q.asm.pa).apply( - null, - arguments - ) - }), - (Q._crypto_generichash_keybytes = function () { - return (Q._crypto_generichash_keybytes = Q.asm.qa).apply( - null, - arguments - ) - }), - (Q._crypto_generichash_statebytes = function () { - return (Q._crypto_generichash_statebytes = Q.asm.ra).apply( - null, - arguments - ) - }), - (Q._crypto_generichash = function () { - return (Q._crypto_generichash = Q.asm.sa).apply(null, arguments) - }), - (Q._crypto_generichash_init = function () { - return (Q._crypto_generichash_init = Q.asm.ta).apply(null, arguments) - }), - (Q._crypto_generichash_update = function () { - return (Q._crypto_generichash_update = Q.asm.ua).apply(null, arguments) - }), - (Q._crypto_generichash_final = function () { - return (Q._crypto_generichash_final = Q.asm.va).apply(null, arguments) - }), - (Q._crypto_generichash_keygen = function () { - return (Q._crypto_generichash_keygen = Q.asm.wa).apply(null, arguments) - }), - (Q._crypto_hash_bytes = function () { - return (Q._crypto_hash_bytes = Q.asm.xa).apply(null, arguments) - }), - (Q._crypto_hash = function () { - return (Q._crypto_hash = Q.asm.ya).apply(null, arguments) - }), - (Q._crypto_kdf_bytes_min = function () { - return (Q._crypto_kdf_bytes_min = Q.asm.za).apply(null, arguments) - }), - (Q._crypto_kdf_bytes_max = function () { - return (Q._crypto_kdf_bytes_max = Q.asm.Aa).apply(null, arguments) - }), - (Q._crypto_kdf_contextbytes = function () { - return (Q._crypto_kdf_contextbytes = Q.asm.Ba).apply(null, arguments) - }), - (Q._crypto_kdf_keybytes = function () { - return (Q._crypto_kdf_keybytes = Q.asm.Ca).apply(null, arguments) - }), - (Q._crypto_kdf_derive_from_key = function () { - return (Q._crypto_kdf_derive_from_key = Q.asm.Da).apply(null, arguments) - }), - (Q._crypto_kdf_keygen = function () { - return (Q._crypto_kdf_keygen = Q.asm.Ea).apply(null, arguments) - }), - (Q._crypto_kx_seed_keypair = function () { - return (Q._crypto_kx_seed_keypair = Q.asm.Fa).apply(null, arguments) - }), - (Q._crypto_kx_keypair = function () { - return (Q._crypto_kx_keypair = Q.asm.Ga).apply(null, arguments) - }), - (Q._crypto_kx_client_session_keys = function () { - return (Q._crypto_kx_client_session_keys = Q.asm.Ha).apply( - null, - arguments - ) - }), - (Q._crypto_kx_server_session_keys = function () { - return (Q._crypto_kx_server_session_keys = Q.asm.Ia).apply( - null, - arguments - ) - }), - (Q._crypto_kx_publickeybytes = function () { - return (Q._crypto_kx_publickeybytes = Q.asm.Ja).apply(null, arguments) - }), - (Q._crypto_kx_secretkeybytes = function () { - return (Q._crypto_kx_secretkeybytes = Q.asm.Ka).apply(null, arguments) - }), - (Q._crypto_kx_seedbytes = function () { - return (Q._crypto_kx_seedbytes = Q.asm.La).apply(null, arguments) - }), - (Q._crypto_kx_sessionkeybytes = function () { - return (Q._crypto_kx_sessionkeybytes = Q.asm.Ma).apply(null, arguments) - }), - (Q._crypto_pwhash_alg_argon2i13 = function () { - return (Q._crypto_pwhash_alg_argon2i13 = Q.asm.Na).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_alg_argon2id13 = function () { - return (Q._crypto_pwhash_alg_argon2id13 = Q.asm.Oa).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_alg_default = function () { - return (Q._crypto_pwhash_alg_default = Q.asm.Pa).apply(null, arguments) - }), - (Q._crypto_pwhash_bytes_min = function () { - return (Q._crypto_pwhash_bytes_min = Q.asm.Qa).apply(null, arguments) - }), - (Q._crypto_pwhash_bytes_max = function () { - return (Q._crypto_pwhash_bytes_max = Q.asm.Ra).apply(null, arguments) - }), - (Q._crypto_pwhash_passwd_min = function () { - return (Q._crypto_pwhash_passwd_min = Q.asm.Sa).apply(null, arguments) - }), - (Q._crypto_pwhash_passwd_max = function () { - return (Q._crypto_pwhash_passwd_max = Q.asm.Ta).apply(null, arguments) - }), - (Q._crypto_pwhash_saltbytes = function () { - return (Q._crypto_pwhash_saltbytes = Q.asm.Ua).apply(null, arguments) - }), - (Q._crypto_pwhash_strbytes = function () { - return (Q._crypto_pwhash_strbytes = Q.asm.Va).apply(null, arguments) - }), - (Q._crypto_pwhash_strprefix = function () { - return (Q._crypto_pwhash_strprefix = Q.asm.Wa).apply(null, arguments) - }), - (Q._crypto_pwhash_opslimit_min = function () { - return (Q._crypto_pwhash_opslimit_min = Q.asm.Xa).apply(null, arguments) - }), - (Q._crypto_pwhash_opslimit_max = function () { - return (Q._crypto_pwhash_opslimit_max = Q.asm.Ya).apply(null, arguments) - }), - (Q._crypto_pwhash_memlimit_min = function () { - return (Q._crypto_pwhash_memlimit_min = Q.asm.Za).apply(null, arguments) - }), - (Q._crypto_pwhash_memlimit_max = function () { - return (Q._crypto_pwhash_memlimit_max = Q.asm._a).apply(null, arguments) - }), - (Q._crypto_pwhash_opslimit_interactive = function () { - return (Q._crypto_pwhash_opslimit_interactive = Q.asm.$a).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_memlimit_interactive = function () { - return (Q._crypto_pwhash_memlimit_interactive = Q.asm.ab).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_opslimit_moderate = function () { - return (Q._crypto_pwhash_opslimit_moderate = Q.asm.bb).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_memlimit_moderate = function () { - return (Q._crypto_pwhash_memlimit_moderate = Q.asm.cb).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_opslimit_sensitive = function () { - return (Q._crypto_pwhash_opslimit_sensitive = Q.asm.db).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash_memlimit_sensitive = function () { - return (Q._crypto_pwhash_memlimit_sensitive = Q.asm.eb).apply( - null, - arguments - ) - }), - (Q._crypto_pwhash = function () { - return (Q._crypto_pwhash = Q.asm.fb).apply(null, arguments) - }), - (Q._crypto_pwhash_str = function () { - return (Q._crypto_pwhash_str = Q.asm.gb).apply(null, arguments) - }), - (Q._crypto_pwhash_str_alg = function () { - return (Q._crypto_pwhash_str_alg = Q.asm.hb).apply(null, arguments) - }), - (Q._crypto_pwhash_str_verify = function () { - return (Q._crypto_pwhash_str_verify = Q.asm.ib).apply(null, arguments) - }), - (Q._crypto_pwhash_str_needs_rehash = function () { - return (Q._crypto_pwhash_str_needs_rehash = Q.asm.jb).apply( - null, - arguments - ) - }), - (Q._crypto_scalarmult_base = function () { - return (Q._crypto_scalarmult_base = Q.asm.kb).apply(null, arguments) - }), - (Q._crypto_scalarmult = function () { - return (Q._crypto_scalarmult = Q.asm.lb).apply(null, arguments) - }), - (Q._crypto_scalarmult_bytes = function () { - return (Q._crypto_scalarmult_bytes = Q.asm.mb).apply(null, arguments) - }), - (Q._crypto_scalarmult_scalarbytes = function () { - return (Q._crypto_scalarmult_scalarbytes = Q.asm.nb).apply( - null, - arguments - ) - }), - (Q._crypto_secretbox_keybytes = function () { - return (Q._crypto_secretbox_keybytes = Q.asm.ob).apply(null, arguments) - }), - (Q._crypto_secretbox_noncebytes = function () { - return (Q._crypto_secretbox_noncebytes = Q.asm.pb).apply( - null, - arguments - ) - }), - (Q._crypto_secretbox_macbytes = function () { - return (Q._crypto_secretbox_macbytes = Q.asm.qb).apply(null, arguments) - }), - (Q._crypto_secretbox_messagebytes_max = function () { - return (Q._crypto_secretbox_messagebytes_max = Q.asm.rb).apply( - null, - arguments - ) - }), - (Q._crypto_secretbox_keygen = function () { - return (Q._crypto_secretbox_keygen = Q.asm.sb).apply(null, arguments) - }), - (Q._crypto_secretbox_detached = function () { - return (Q._crypto_secretbox_detached = Q.asm.tb).apply(null, arguments) - }), - (Q._crypto_secretbox_easy = function () { - return (Q._crypto_secretbox_easy = Q.asm.ub).apply(null, arguments) - }), - (Q._crypto_secretbox_open_detached = function () { - return (Q._crypto_secretbox_open_detached = Q.asm.vb).apply( - null, - arguments - ) - }), - (Q._crypto_secretbox_open_easy = function () { - return (Q._crypto_secretbox_open_easy = Q.asm.wb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_keygen = function () { - return (Q._crypto_secretstream_xchacha20poly1305_keygen = - Q.asm.xb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_init_push = function () { - return (Q._crypto_secretstream_xchacha20poly1305_init_push = - Q.asm.yb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_init_pull = function () { - return (Q._crypto_secretstream_xchacha20poly1305_init_pull = - Q.asm.zb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_rekey = function () { - return (Q._crypto_secretstream_xchacha20poly1305_rekey = - Q.asm.Ab).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_push = function () { - return (Q._crypto_secretstream_xchacha20poly1305_push = Q.asm.Bb).apply( - null, - arguments - ) - }), - (Q._crypto_secretstream_xchacha20poly1305_pull = function () { - return (Q._crypto_secretstream_xchacha20poly1305_pull = Q.asm.Cb).apply( - null, - arguments - ) - }), - (Q._crypto_secretstream_xchacha20poly1305_statebytes = function () { - return (Q._crypto_secretstream_xchacha20poly1305_statebytes = - Q.asm.Db).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_abytes = function () { - return (Q._crypto_secretstream_xchacha20poly1305_abytes = - Q.asm.Eb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_headerbytes = function () { - return (Q._crypto_secretstream_xchacha20poly1305_headerbytes = - Q.asm.Fb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_keybytes = function () { - return (Q._crypto_secretstream_xchacha20poly1305_keybytes = - Q.asm.Gb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_messagebytes_max = function () { - return (Q._crypto_secretstream_xchacha20poly1305_messagebytes_max = - Q.asm.Hb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_tag_message = function () { - return (Q._crypto_secretstream_xchacha20poly1305_tag_message = - Q.asm.Ib).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_tag_push = function () { - return (Q._crypto_secretstream_xchacha20poly1305_tag_push = - Q.asm.Jb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_tag_rekey = function () { - return (Q._crypto_secretstream_xchacha20poly1305_tag_rekey = - Q.asm.Kb).apply(null, arguments) - }), - (Q._crypto_secretstream_xchacha20poly1305_tag_final = function () { - return (Q._crypto_secretstream_xchacha20poly1305_tag_final = - Q.asm.Lb).apply(null, arguments) - }), - (Q._crypto_shorthash_bytes = function () { - return (Q._crypto_shorthash_bytes = Q.asm.Mb).apply(null, arguments) - }), - (Q._crypto_shorthash_keybytes = function () { - return (Q._crypto_shorthash_keybytes = Q.asm.Nb).apply(null, arguments) - }), - (Q._crypto_shorthash = function () { - return (Q._crypto_shorthash = Q.asm.Ob).apply(null, arguments) - }), - (Q._crypto_shorthash_keygen = function () { - return (Q._crypto_shorthash_keygen = Q.asm.Pb).apply(null, arguments) - }), - (Q._crypto_sign_statebytes = function () { - return (Q._crypto_sign_statebytes = Q.asm.Qb).apply(null, arguments) - }), - (Q._crypto_sign_bytes = function () { - return (Q._crypto_sign_bytes = Q.asm.Rb).apply(null, arguments) - }), - (Q._crypto_sign_seedbytes = function () { - return (Q._crypto_sign_seedbytes = Q.asm.Sb).apply(null, arguments) - }), - (Q._crypto_sign_publickeybytes = function () { - return (Q._crypto_sign_publickeybytes = Q.asm.Tb).apply(null, arguments) - }), - (Q._crypto_sign_secretkeybytes = function () { - return (Q._crypto_sign_secretkeybytes = Q.asm.Ub).apply(null, arguments) - }), - (Q._crypto_sign_messagebytes_max = function () { - return (Q._crypto_sign_messagebytes_max = Q.asm.Vb).apply( - null, - arguments - ) - }), - (Q._crypto_sign_seed_keypair = function () { - return (Q._crypto_sign_seed_keypair = Q.asm.Wb).apply(null, arguments) - }), - (Q._crypto_sign_keypair = function () { - return (Q._crypto_sign_keypair = Q.asm.Xb).apply(null, arguments) - }), - (Q._crypto_sign = function () { - return (Q._crypto_sign = Q.asm.Yb).apply(null, arguments) - }), - (Q._crypto_sign_open = function () { - return (Q._crypto_sign_open = Q.asm.Zb).apply(null, arguments) - }), - (Q._crypto_sign_detached = function () { - return (Q._crypto_sign_detached = Q.asm._b).apply(null, arguments) - }), - (Q._crypto_sign_verify_detached = function () { - return (Q._crypto_sign_verify_detached = Q.asm.$b).apply( - null, - arguments - ) - }), - (Q._crypto_sign_init = function () { - return (Q._crypto_sign_init = Q.asm.ac).apply(null, arguments) - }), - (Q._crypto_sign_update = function () { - return (Q._crypto_sign_update = Q.asm.bc).apply(null, arguments) - }), - (Q._crypto_sign_final_create = function () { - return (Q._crypto_sign_final_create = Q.asm.cc).apply(null, arguments) - }), - (Q._crypto_sign_final_verify = function () { - return (Q._crypto_sign_final_verify = Q.asm.dc).apply(null, arguments) - }), - (Q._crypto_sign_ed25519_pk_to_curve25519 = function () { - return (Q._crypto_sign_ed25519_pk_to_curve25519 = Q.asm.ec).apply( - null, - arguments - ) - }), - (Q._crypto_sign_ed25519_sk_to_curve25519 = function () { - return (Q._crypto_sign_ed25519_sk_to_curve25519 = Q.asm.fc).apply( - null, - arguments - ) - }), - (Q._randombytes_random = function () { - return (Q._randombytes_random = Q.asm.gc).apply(null, arguments) - }), - (Q._randombytes_stir = function () { - return (Q._randombytes_stir = Q.asm.hc).apply(null, arguments) - }), - (Q._randombytes_uniform = function () { - return (Q._randombytes_uniform = Q.asm.ic).apply(null, arguments) - }), - (Q._randombytes_buf = function () { - return (Q._randombytes_buf = Q.asm.jc).apply(null, arguments) - }), - (Q._randombytes_buf_deterministic = function () { - return (Q._randombytes_buf_deterministic = Q.asm.kc).apply( - null, - arguments - ) - }), - (Q._randombytes_seedbytes = function () { - return (Q._randombytes_seedbytes = Q.asm.lc).apply(null, arguments) - }), - (Q._randombytes_close = function () { - return (Q._randombytes_close = Q.asm.mc).apply(null, arguments) - }), - (Q._randombytes = function () { - return (Q._randombytes = Q.asm.nc).apply(null, arguments) - }), - (Q._sodium_bin2hex = function () { - return (Q._sodium_bin2hex = Q.asm.oc).apply(null, arguments) - }), - (Q._sodium_hex2bin = function () { - return (Q._sodium_hex2bin = Q.asm.pc).apply(null, arguments) - }), - (Q._sodium_base64_encoded_len = function () { - return (Q._sodium_base64_encoded_len = Q.asm.qc).apply(null, arguments) - }), - (Q._sodium_bin2base64 = function () { - return (Q._sodium_bin2base64 = Q.asm.rc).apply(null, arguments) - }), - (Q._sodium_base642bin = function () { - return (Q._sodium_base642bin = Q.asm.sc).apply(null, arguments) - }), - (Q._sodium_init = function () { - return (Q._sodium_init = Q.asm.tc).apply(null, arguments) - }), - (Q._sodium_pad = function () { - return (Q._sodium_pad = Q.asm.uc).apply(null, arguments) - }), - (Q._sodium_unpad = function () { - return (Q._sodium_unpad = Q.asm.vc).apply(null, arguments) - }), - (Q._sodium_version_string = function () { - return (Q._sodium_version_string = Q.asm.wc).apply(null, arguments) - }), - (Q._sodium_library_version_major = function () { - return (Q._sodium_library_version_major = Q.asm.xc).apply( - null, - arguments - ) - }), - (Q._sodium_library_version_minor = function () { - return (Q._sodium_library_version_minor = Q.asm.yc).apply( - null, - arguments - ) - }), - (Q._sodium_library_minimal = function () { - return (Q._sodium_library_minimal = Q.asm.zc).apply(null, arguments) - }), - (Q.___errno_location = function () { - return (vA = Q.___errno_location = Q.asm.Ac).apply(null, arguments) - })) - function UA(A) { - function I() { - YA || - ((YA = !0), - (Q.calledRun = !0), - l || - (K(), q(), Q.onRuntimeInitialized && Q.onRuntimeInitialized(), X())) - } - ;(A = A || E), - T > 0 || - (L(), - T > 0 || - (Q.setStatus - ? (Q.setStatus('Running...'), - setTimeout(function () { - setTimeout(function () { - Q.setStatus('') - }, 1), - I() - }, 1)) - : I())) - } - if ( - ((Q._malloc = function () { - return (Q._malloc = Q.asm.Bc).apply(null, arguments) - }), - (Q._free = function () { - return (Q._free = Q.asm.Cc).apply(null, arguments) - }), - (Q.setValue = u), - (Q.getValue = p), - (Q.UTF8ToString = S), - (Z = function A() { - YA || UA(), YA || (Z = A) - }), - (Q.run = UA), - Q.preInit) - ) - for ( - 'function' == typeof Q.preInit && (Q.preInit = [Q.preInit]); - Q.preInit.length > 0; - - ) - Q.preInit.pop()() - UA() - }).catch(function () { - return B.useBackupModule() - })), - I - ) - } - 'function' == typeof define && define.amd - ? define(['exports'], I) - : 'object' == typeof exports && 'string' != typeof exports.nodeName - ? I(exports) - : (A.libsodium = I(A.libsodium_mod || (A.commonJsStrict = {}))) - })(this) - }.call(this)) - }.call( - this, - require('_process'), - typeof global !== 'undefined' - ? global - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : {}, - require('buffer').Buffer, - arguments[3], - arguments[4], - arguments[5], - arguments[6], - '/node_modules/libsodium/dist/modules' - )) - }, - { _process: 171, buffer: 93, crypto: 105, fs: 49, path: 165 } - ], - 155: [ - function (require, module, exports) { - 'use strict' - var inherits = require('inherits') - var HashBase = require('hash-base') - var Buffer = require('safe-buffer').Buffer - var ARRAY16 = new Array(16) - function MD5() { - HashBase.call(this, 64) - this._a = 1732584193 - this._b = 4023233417 - this._c = 2562383102 - this._d = 271733878 - } - inherits(MD5, HashBase) - MD5.prototype._update = function () { - var M = ARRAY16 - for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4) - var a = this._a - var b = this._b - var c = this._c - var d = this._d - a = fnF(a, b, c, d, M[0], 3614090360, 7) - d = fnF(d, a, b, c, M[1], 3905402710, 12) - c = fnF(c, d, a, b, M[2], 606105819, 17) - b = fnF(b, c, d, a, M[3], 3250441966, 22) - a = fnF(a, b, c, d, M[4], 4118548399, 7) - d = fnF(d, a, b, c, M[5], 1200080426, 12) - c = fnF(c, d, a, b, M[6], 2821735955, 17) - b = fnF(b, c, d, a, M[7], 4249261313, 22) - a = fnF(a, b, c, d, M[8], 1770035416, 7) - d = fnF(d, a, b, c, M[9], 2336552879, 12) - c = fnF(c, d, a, b, M[10], 4294925233, 17) - b = fnF(b, c, d, a, M[11], 2304563134, 22) - a = fnF(a, b, c, d, M[12], 1804603682, 7) - d = fnF(d, a, b, c, M[13], 4254626195, 12) - c = fnF(c, d, a, b, M[14], 2792965006, 17) - b = fnF(b, c, d, a, M[15], 1236535329, 22) - a = fnG(a, b, c, d, M[1], 4129170786, 5) - d = fnG(d, a, b, c, M[6], 3225465664, 9) - c = fnG(c, d, a, b, M[11], 643717713, 14) - b = fnG(b, c, d, a, M[0], 3921069994, 20) - a = fnG(a, b, c, d, M[5], 3593408605, 5) - d = fnG(d, a, b, c, M[10], 38016083, 9) - c = fnG(c, d, a, b, M[15], 3634488961, 14) - b = fnG(b, c, d, a, M[4], 3889429448, 20) - a = fnG(a, b, c, d, M[9], 568446438, 5) - d = fnG(d, a, b, c, M[14], 3275163606, 9) - c = fnG(c, d, a, b, M[3], 4107603335, 14) - b = fnG(b, c, d, a, M[8], 1163531501, 20) - a = fnG(a, b, c, d, M[13], 2850285829, 5) - d = fnG(d, a, b, c, M[2], 4243563512, 9) - c = fnG(c, d, a, b, M[7], 1735328473, 14) - b = fnG(b, c, d, a, M[12], 2368359562, 20) - a = fnH(a, b, c, d, M[5], 4294588738, 4) - d = fnH(d, a, b, c, M[8], 2272392833, 11) - c = fnH(c, d, a, b, M[11], 1839030562, 16) - b = fnH(b, c, d, a, M[14], 4259657740, 23) - a = fnH(a, b, c, d, M[1], 2763975236, 4) - d = fnH(d, a, b, c, M[4], 1272893353, 11) - c = fnH(c, d, a, b, M[7], 4139469664, 16) - b = fnH(b, c, d, a, M[10], 3200236656, 23) - a = fnH(a, b, c, d, M[13], 681279174, 4) - d = fnH(d, a, b, c, M[0], 3936430074, 11) - c = fnH(c, d, a, b, M[3], 3572445317, 16) - b = fnH(b, c, d, a, M[6], 76029189, 23) - a = fnH(a, b, c, d, M[9], 3654602809, 4) - d = fnH(d, a, b, c, M[12], 3873151461, 11) - c = fnH(c, d, a, b, M[15], 530742520, 16) - b = fnH(b, c, d, a, M[2], 3299628645, 23) - a = fnI(a, b, c, d, M[0], 4096336452, 6) - d = fnI(d, a, b, c, M[7], 1126891415, 10) - c = fnI(c, d, a, b, M[14], 2878612391, 15) - b = fnI(b, c, d, a, M[5], 4237533241, 21) - a = fnI(a, b, c, d, M[12], 1700485571, 6) - d = fnI(d, a, b, c, M[3], 2399980690, 10) - c = fnI(c, d, a, b, M[10], 4293915773, 15) - b = fnI(b, c, d, a, M[1], 2240044497, 21) - a = fnI(a, b, c, d, M[8], 1873313359, 6) - d = fnI(d, a, b, c, M[15], 4264355552, 10) - c = fnI(c, d, a, b, M[6], 2734768916, 15) - b = fnI(b, c, d, a, M[13], 1309151649, 21) - a = fnI(a, b, c, d, M[4], 4149444226, 6) - d = fnI(d, a, b, c, M[11], 3174756917, 10) - c = fnI(c, d, a, b, M[2], 718787259, 15) - b = fnI(b, c, d, a, M[9], 3951481745, 21) - this._a = (this._a + a) | 0 - this._b = (this._b + b) | 0 - this._c = (this._c + c) | 0 - this._d = (this._d + d) | 0 - } - MD5.prototype._digest = function () { - this._block[this._blockOffset++] = 128 - if (this._blockOffset > 56) { - this._block.fill(0, this._blockOffset, 64) - this._update() - this._blockOffset = 0 - } - this._block.fill(0, this._blockOffset, 56) - this._block.writeUInt32LE(this._length[0], 56) - this._block.writeUInt32LE(this._length[1], 60) - this._update() - var buffer = Buffer.allocUnsafe(16) - buffer.writeInt32LE(this._a, 0) - buffer.writeInt32LE(this._b, 4) - buffer.writeInt32LE(this._c, 8) - buffer.writeInt32LE(this._d, 12) - return buffer - } - function rotl(x, n) { - return (x << n) | (x >>> (32 - n)) - } - function fnF(a, b, c, d, m, k, s) { - return (rotl((a + ((b & c) | (~b & d)) + m + k) | 0, s) + b) | 0 - } - function fnG(a, b, c, d, m, k, s) { - return (rotl((a + ((b & d) | (c & ~d)) + m + k) | 0, s) + b) | 0 - } - function fnH(a, b, c, d, m, k, s) { - return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0 - } - function fnI(a, b, c, d, m, k, s) { - return (rotl((a + (c ^ (b | ~d)) + m + k) | 0, s) + b) | 0 - } - module.exports = MD5 - }, - { 'hash-base': 136, inherits: 151, 'safe-buffer': 183 } - ], - 156: [ - function (require, module, exports) { - var bn = require('bn.js') - var brorand = require('brorand') - function MillerRabin(rand) { - this.rand = rand || new brorand.Rand() - } - module.exports = MillerRabin - MillerRabin.create = function create(rand) { - return new MillerRabin(rand) - } - MillerRabin.prototype._randbelow = function _randbelow(n) { - var len = n.bitLength() - var min_bytes = Math.ceil(len / 8) - do { - var a = new bn(this.rand.generate(min_bytes)) - } while (a.cmp(n) >= 0) - return a - } - MillerRabin.prototype._randrange = function _randrange(start, stop) { - var size = stop.sub(start) - return start.add(this._randbelow(size)) - } - MillerRabin.prototype.test = function test(n, k, cb) { - var len = n.bitLength() - var red = bn.mont(n) - var rone = new bn(1).toRed(red) - if (!k) k = Math.max(1, (len / 48) | 0) - var n1 = n.subn(1) - for (var s = 0; !n1.testn(s); s++) {} - var d = n.shrn(s) - var rn1 = n1.toRed(red) - var prime = true - for (; k > 0; k--) { - var a = this._randrange(new bn(2), n1) - if (cb) cb(a) - var x = a.toRed(red).redPow(d) - if (x.cmp(rone) === 0 || x.cmp(rn1) === 0) continue - for (var i = 1; i < s; i++) { - x = x.redSqr() - if (x.cmp(rone) === 0) return false - if (x.cmp(rn1) === 0) break - } - if (i === s) return false - } - return prime - } - MillerRabin.prototype.getDivisor = function getDivisor(n, k) { - var len = n.bitLength() - var red = bn.mont(n) - var rone = new bn(1).toRed(red) - if (!k) k = Math.max(1, (len / 48) | 0) - var n1 = n.subn(1) - for (var s = 0; !n1.testn(s); s++) {} - var d = n.shrn(s) - var rn1 = n1.toRed(red) - for (; k > 0; k--) { - var a = this._randrange(new bn(2), n1) - var g = n.gcd(a) - if (g.cmpn(1) !== 0) return g - var x = a.toRed(red).redPow(d) - if (x.cmp(rone) === 0 || x.cmp(rn1) === 0) continue - for (var i = 1; i < s; i++) { - x = x.redSqr() - if (x.cmp(rone) === 0) return x.fromRed().subn(1).gcd(n) - if (x.cmp(rn1) === 0) break - } - if (i === s) { - x = x.redSqr() - return x.fromRed().subn(1).gcd(n) - } - } - return false - } - }, - { 'bn.js': 157, brorand: 48 } - ], - 157: [ - function (require, module, exports) { - arguments[4][15][0].apply(exports, arguments) - }, - { buffer: 49, dup: 15 } - ], - 158: [ - function (require, module, exports) { - module.exports = assert - function assert(val, msg) { - if (!val) throw new Error(msg || 'Assertion failed') - } - assert.equal = function assertEqual(l, r, msg) { - if (l != r) throw new Error(msg || 'Assertion failed: ' + l + ' != ' + r) - } - }, - {} - ], - 159: [ - function (require, module, exports) { - 'use strict' - var utils = exports - function toArray(msg, enc) { - if (Array.isArray(msg)) return msg.slice() - if (!msg) return [] - var res = [] - if (typeof msg !== 'string') { - for (var i = 0; i < msg.length; i++) res[i] = msg[i] | 0 - return res - } - if (enc === 'hex') { - msg = msg.replace(/[^a-z0-9]+/gi, '') - if (msg.length % 2 !== 0) msg = '0' + msg - for (var i = 0; i < msg.length; i += 2) res.push(parseInt(msg[i] + msg[i + 1], 16)) - } else { - for (var i = 0; i < msg.length; i++) { - var c = msg.charCodeAt(i) - var hi = c >> 8 - var lo = c & 255 - if (hi) res.push(hi, lo) - else res.push(lo) - } - } - return res - } - utils.toArray = toArray - function zero2(word) { - if (word.length === 1) return '0' + word - else return word - } - utils.zero2 = zero2 - function toHex(msg) { - var res = '' - for (var i = 0; i < msg.length; i++) res += zero2(msg[i].toString(16)) - return res - } - utils.toHex = toHex - utils.encode = function encode(arr, enc) { - if (enc === 'hex') return toHex(arr) - else return arr - } - }, - {} - ], - 160: [ - function (require, module, exports) { - module.exports = { - '2.16.840.1.101.3.4.1.1': 'aes-128-ecb', - '2.16.840.1.101.3.4.1.2': 'aes-128-cbc', - '2.16.840.1.101.3.4.1.3': 'aes-128-ofb', - '2.16.840.1.101.3.4.1.4': 'aes-128-cfb', - '2.16.840.1.101.3.4.1.21': 'aes-192-ecb', - '2.16.840.1.101.3.4.1.22': 'aes-192-cbc', - '2.16.840.1.101.3.4.1.23': 'aes-192-ofb', - '2.16.840.1.101.3.4.1.24': 'aes-192-cfb', - '2.16.840.1.101.3.4.1.41': 'aes-256-ecb', - '2.16.840.1.101.3.4.1.42': 'aes-256-cbc', - '2.16.840.1.101.3.4.1.43': 'aes-256-ofb', - '2.16.840.1.101.3.4.1.44': 'aes-256-cfb' - } - }, - {} - ], - 161: [ - function (require, module, exports) { - 'use strict' - var asn1 = require('asn1.js') - exports.certificate = require('./certificate') - var RSAPrivateKey = asn1.define('RSAPrivateKey', function () { - this.seq().obj( - this.key('version').int(), - this.key('modulus').int(), - this.key('publicExponent').int(), - this.key('privateExponent').int(), - this.key('prime1').int(), - this.key('prime2').int(), - this.key('exponent1').int(), - this.key('exponent2').int(), - this.key('coefficient').int() - ) - }) - exports.RSAPrivateKey = RSAPrivateKey - var RSAPublicKey = asn1.define('RSAPublicKey', function () { - this.seq().obj(this.key('modulus').int(), this.key('publicExponent').int()) - }) - exports.RSAPublicKey = RSAPublicKey - var PublicKey = asn1.define('SubjectPublicKeyInfo', function () { - this.seq().obj( - this.key('algorithm').use(AlgorithmIdentifier), - this.key('subjectPublicKey').bitstr() - ) - }) - exports.PublicKey = PublicKey - var AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () { - this.seq().obj( - this.key('algorithm').objid(), - this.key('none').null_().optional(), - this.key('curve').objid().optional(), - this.key('params') - .seq() - .obj(this.key('p').int(), this.key('q').int(), this.key('g').int()) - .optional() - ) - }) - var PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () { - this.seq().obj( - this.key('version').int(), - this.key('algorithm').use(AlgorithmIdentifier), - this.key('subjectPrivateKey').octstr() - ) - }) - exports.PrivateKey = PrivateKeyInfo - var EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () { - this.seq().obj( - this.key('algorithm') - .seq() - .obj( - this.key('id').objid(), - this.key('decrypt') - .seq() - .obj( - this.key('kde') - .seq() - .obj( - this.key('id').objid(), - this.key('kdeparams') - .seq() - .obj(this.key('salt').octstr(), this.key('iters').int()) - ), - this.key('cipher') - .seq() - .obj(this.key('algo').objid(), this.key('iv').octstr()) - ) - ), - this.key('subjectPrivateKey').octstr() - ) - }) - exports.EncryptedPrivateKey = EncryptedPrivateKeyInfo - var DSAPrivateKey = asn1.define('DSAPrivateKey', function () { - this.seq().obj( - this.key('version').int(), - this.key('p').int(), - this.key('q').int(), - this.key('g').int(), - this.key('pub_key').int(), - this.key('priv_key').int() - ) - }) - exports.DSAPrivateKey = DSAPrivateKey - exports.DSAparam = asn1.define('DSAparam', function () { - this.int() - }) - var ECPrivateKey = asn1.define('ECPrivateKey', function () { - this.seq().obj( - this.key('version').int(), - this.key('privateKey').octstr(), - this.key('parameters').optional().explicit(0).use(ECParameters), - this.key('publicKey').optional().explicit(1).bitstr() - ) - }) - exports.ECPrivateKey = ECPrivateKey - var ECParameters = asn1.define('ECParameters', function () { - this.choice({ namedCurve: this.objid() }) - }) - exports.signature = asn1.define('signature', function () { - this.seq().obj(this.key('r').int(), this.key('s').int()) - }) - }, - { './certificate': 162, 'asn1.js': 1 } - ], - 162: [ - function (require, module, exports) { - 'use strict' - var asn = require('asn1.js') - var Time = asn.define('Time', function () { - this.choice({ utcTime: this.utctime(), generalTime: this.gentime() }) - }) - var AttributeTypeValue = asn.define('AttributeTypeValue', function () { - this.seq().obj(this.key('type').objid(), this.key('value').any()) - }) - var AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () { - this.seq().obj( - this.key('algorithm').objid(), - this.key('parameters').optional(), - this.key('curve').objid().optional() - ) - }) - var SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () { - this.seq().obj( - this.key('algorithm').use(AlgorithmIdentifier), - this.key('subjectPublicKey').bitstr() - ) - }) - var RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () { - this.setof(AttributeTypeValue) - }) - var RDNSequence = asn.define('RDNSequence', function () { - this.seqof(RelativeDistinguishedName) - }) - var Name = asn.define('Name', function () { - this.choice({ rdnSequence: this.use(RDNSequence) }) - }) - var Validity = asn.define('Validity', function () { - this.seq().obj(this.key('notBefore').use(Time), this.key('notAfter').use(Time)) - }) - var Extension = asn.define('Extension', function () { - this.seq().obj( - this.key('extnID').objid(), - this.key('critical').bool().def(false), - this.key('extnValue').octstr() - ) - }) - var TBSCertificate = asn.define('TBSCertificate', function () { - this.seq().obj( - this.key('version').explicit(0).int().optional(), - this.key('serialNumber').int(), - this.key('signature').use(AlgorithmIdentifier), - this.key('issuer').use(Name), - this.key('validity').use(Validity), - this.key('subject').use(Name), - this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo), - this.key('issuerUniqueID').implicit(1).bitstr().optional(), - this.key('subjectUniqueID').implicit(2).bitstr().optional(), - this.key('extensions').explicit(3).seqof(Extension).optional() - ) - }) - var X509Certificate = asn.define('X509Certificate', function () { - this.seq().obj( - this.key('tbsCertificate').use(TBSCertificate), - this.key('signatureAlgorithm').use(AlgorithmIdentifier), - this.key('signatureValue').bitstr() - ) - }) - module.exports = X509Certificate - }, - { 'asn1.js': 1 } - ], - 163: [ - function (require, module, exports) { - var findProc = - /Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r\+\/\=]+)[\n\r]+/m - var startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m - var fullRegex = - /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r\+\/\=]+)-----END \1-----$/m - var evp = require('evp_bytestokey') - var ciphers = require('browserify-aes') - var Buffer = require('safe-buffer').Buffer - module.exports = function (okey, password) { - var key = okey.toString() - var match = key.match(findProc) - var decrypted - if (!match) { - var match2 = key.match(fullRegex) - decrypted = new Buffer(match2[2].replace(/[\r\n]/g, ''), 'base64') - } else { - var suite = 'aes' + match[1] - var iv = Buffer.from(match[2], 'hex') - var cipherText = Buffer.from(match[3].replace(/[\r\n]/g, ''), 'base64') - var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key - var out = [] - var cipher = ciphers.createDecipheriv(suite, cipherKey, iv) - out.push(cipher.update(cipherText)) - out.push(cipher.final()) - decrypted = Buffer.concat(out) - } - var tag = key.match(startRegex)[1] - return { tag: tag, data: decrypted } - } - }, - { 'browserify-aes': 52, evp_bytestokey: 135, 'safe-buffer': 183 } - ], - 164: [ - function (require, module, exports) { - var asn1 = require('./asn1') - var aesid = require('./aesid.json') - var fixProc = require('./fixProc') - var ciphers = require('browserify-aes') - var compat = require('pbkdf2') - var Buffer = require('safe-buffer').Buffer - module.exports = parseKeys - function parseKeys(buffer) { - var password - if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) { - password = buffer.passphrase - buffer = buffer.key - } - if (typeof buffer === 'string') { - buffer = Buffer.from(buffer) - } - var stripped = fixProc(buffer, password) - var type = stripped.tag - var data = stripped.data - var subtype, ndata - switch (type) { - case 'CERTIFICATE': - ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo - case 'PUBLIC KEY': - if (!ndata) { - ndata = asn1.PublicKey.decode(data, 'der') - } - subtype = ndata.algorithm.algorithm.join('.') - switch (subtype) { - case '1.2.840.113549.1.1.1': - return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der') - case '1.2.840.10045.2.1': - ndata.subjectPrivateKey = ndata.subjectPublicKey - return { type: 'ec', data: ndata } - case '1.2.840.10040.4.1': - ndata.algorithm.params.pub_key = asn1.DSAparam.decode( - ndata.subjectPublicKey.data, - 'der' - ) - return { type: 'dsa', data: ndata.algorithm.params } - default: - throw new Error('unknown key id ' + subtype) - } - throw new Error('unknown key type ' + type) - case 'ENCRYPTED PRIVATE KEY': - data = asn1.EncryptedPrivateKey.decode(data, 'der') - data = decrypt(data, password) - case 'PRIVATE KEY': - ndata = asn1.PrivateKey.decode(data, 'der') - subtype = ndata.algorithm.algorithm.join('.') - switch (subtype) { - case '1.2.840.113549.1.1.1': - return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der') - case '1.2.840.10045.2.1': - return { - curve: ndata.algorithm.curve, - privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der') - .privateKey - } - case '1.2.840.10040.4.1': - ndata.algorithm.params.priv_key = asn1.DSAparam.decode( - ndata.subjectPrivateKey, - 'der' - ) - return { type: 'dsa', params: ndata.algorithm.params } - default: - throw new Error('unknown key id ' + subtype) - } - throw new Error('unknown key type ' + type) - case 'RSA PUBLIC KEY': - return asn1.RSAPublicKey.decode(data, 'der') - case 'RSA PRIVATE KEY': - return asn1.RSAPrivateKey.decode(data, 'der') - case 'DSA PRIVATE KEY': - return { type: 'dsa', params: asn1.DSAPrivateKey.decode(data, 'der') } - case 'EC PRIVATE KEY': - data = asn1.ECPrivateKey.decode(data, 'der') - return { curve: data.parameters.value, privateKey: data.privateKey } - default: - throw new Error('unknown key type ' + type) - } - } - parseKeys.signature = asn1.signature - function decrypt(data, password) { - var salt = data.algorithm.decrypt.kde.kdeparams.salt - var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10) - var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')] - var iv = data.algorithm.decrypt.cipher.iv - var cipherText = data.subjectPrivateKey - var keylen = parseInt(algo.split('-')[1], 10) / 8 - var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1') - var cipher = ciphers.createDecipheriv(algo, key, iv) - var out = [] - out.push(cipher.update(cipherText)) - out.push(cipher.final()) - return Buffer.concat(out) - } - }, - { - './aesid.json': 160, - './asn1': 161, - './fixProc': 163, - 'browserify-aes': 52, - pbkdf2: 166, - 'safe-buffer': 183 - } - ], - 165: [ - function (require, module, exports) { - ;(function (process) { - ;(function () { - 'use strict' - function assertPath(path) { - if (typeof path !== 'string') { - throw new TypeError('Path must be a string. Received ' + JSON.stringify(path)) - } - } - function normalizeStringPosix(path, allowAboveRoot) { - var res = '' - var lastSegmentLength = 0 - var lastSlash = -1 - var dots = 0 - var code - for (var i = 0; i <= path.length; ++i) { - if (i < path.length) code = path.charCodeAt(i) - else if (code === 47) break - else code = 47 - if (code === 47) { - if (lastSlash === i - 1 || dots === 1) { - } else if (lastSlash !== i - 1 && dots === 2) { - if ( - res.length < 2 || - lastSegmentLength !== 2 || - res.charCodeAt(res.length - 1) !== 46 || - res.charCodeAt(res.length - 2) !== 46 - ) { - if (res.length > 2) { - var lastSlashIndex = res.lastIndexOf('/') - if (lastSlashIndex !== res.length - 1) { - if (lastSlashIndex === -1) { - res = '' - lastSegmentLength = 0 - } else { - res = res.slice(0, lastSlashIndex) - lastSegmentLength = res.length - 1 - res.lastIndexOf('/') - } - lastSlash = i - dots = 0 - continue - } - } else if (res.length === 2 || res.length === 1) { - res = '' - lastSegmentLength = 0 - lastSlash = i - dots = 0 - continue - } - } - if (allowAboveRoot) { - if (res.length > 0) res += '/..' - else res = '..' - lastSegmentLength = 2 - } - } else { - if (res.length > 0) res += '/' + path.slice(lastSlash + 1, i) - else res = path.slice(lastSlash + 1, i) - lastSegmentLength = i - lastSlash - 1 - } - lastSlash = i - dots = 0 - } else if (code === 46 && dots !== -1) { - ++dots - } else { - dots = -1 - } - } - return res - } - function _format(sep, pathObject) { - var dir = pathObject.dir || pathObject.root - var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '') - if (!dir) { - return base - } - if (dir === pathObject.root) { - return dir + base - } - return dir + sep + base - } - var posix = { - resolve: function resolve() { - var resolvedPath = '' - var resolvedAbsolute = false - var cwd - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path - if (i >= 0) path = arguments[i] - else { - if (cwd === undefined) cwd = process.cwd() - path = cwd - } - assertPath(path) - if (path.length === 0) { - continue - } - resolvedPath = path + '/' + resolvedPath - resolvedAbsolute = path.charCodeAt(0) === 47 - } - resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute) - if (resolvedAbsolute) { - if (resolvedPath.length > 0) return '/' + resolvedPath - else return '/' - } else if (resolvedPath.length > 0) { - return resolvedPath - } else { - return '.' - } - }, - normalize: function normalize(path) { - assertPath(path) - if (path.length === 0) return '.' - var isAbsolute = path.charCodeAt(0) === 47 - var trailingSeparator = path.charCodeAt(path.length - 1) === 47 - path = normalizeStringPosix(path, !isAbsolute) - if (path.length === 0 && !isAbsolute) path = '.' - if (path.length > 0 && trailingSeparator) path += '/' - if (isAbsolute) return '/' + path - return path - }, - isAbsolute: function isAbsolute(path) { - assertPath(path) - return path.length > 0 && path.charCodeAt(0) === 47 - }, - join: function join() { - if (arguments.length === 0) return '.' - var joined - for (var i = 0; i < arguments.length; ++i) { - var arg = arguments[i] - assertPath(arg) - if (arg.length > 0) { - if (joined === undefined) joined = arg - else joined += '/' + arg - } - } - if (joined === undefined) return '.' - return posix.normalize(joined) - }, - relative: function relative(from, to) { - assertPath(from) - assertPath(to) - if (from === to) return '' - from = posix.resolve(from) - to = posix.resolve(to) - if (from === to) return '' - var fromStart = 1 - for (; fromStart < from.length; ++fromStart) { - if (from.charCodeAt(fromStart) !== 47) break - } - var fromEnd = from.length - var fromLen = fromEnd - fromStart - var toStart = 1 - for (; toStart < to.length; ++toStart) { - if (to.charCodeAt(toStart) !== 47) break - } - var toEnd = to.length - var toLen = toEnd - toStart - var length = fromLen < toLen ? fromLen : toLen - var lastCommonSep = -1 - var i = 0 - for (; i <= length; ++i) { - if (i === length) { - if (toLen > length) { - if (to.charCodeAt(toStart + i) === 47) { - return to.slice(toStart + i + 1) - } else if (i === 0) { - return to.slice(toStart + i) - } - } else if (fromLen > length) { - if (from.charCodeAt(fromStart + i) === 47) { - lastCommonSep = i - } else if (i === 0) { - lastCommonSep = 0 - } - } - break - } - var fromCode = from.charCodeAt(fromStart + i) - var toCode = to.charCodeAt(toStart + i) - if (fromCode !== toCode) break - else if (fromCode === 47) lastCommonSep = i - } - var out = '' - for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { - if (i === fromEnd || from.charCodeAt(i) === 47) { - if (out.length === 0) out += '..' - else out += '/..' - } - } - if (out.length > 0) return out + to.slice(toStart + lastCommonSep) - else { - toStart += lastCommonSep - if (to.charCodeAt(toStart) === 47) ++toStart - return to.slice(toStart) - } - }, - _makeLong: function _makeLong(path) { - return path - }, - dirname: function dirname(path) { - assertPath(path) - if (path.length === 0) return '.' - var code = path.charCodeAt(0) - var hasRoot = code === 47 - var end = -1 - var matchedSlash = true - for (var i = path.length - 1; i >= 1; --i) { - code = path.charCodeAt(i) - if (code === 47) { - if (!matchedSlash) { - end = i - break - } - } else { - matchedSlash = false - } - } - if (end === -1) return hasRoot ? '/' : '.' - if (hasRoot && end === 1) return '//' - return path.slice(0, end) - }, - basename: function basename(path, ext) { - if (ext !== undefined && typeof ext !== 'string') - throw new TypeError('"ext" argument must be a string') - assertPath(path) - var start = 0 - var end = -1 - var matchedSlash = true - var i - if (ext !== undefined && ext.length > 0 && ext.length <= path.length) { - if (ext.length === path.length && ext === path) return '' - var extIdx = ext.length - 1 - var firstNonSlashEnd = -1 - for (i = path.length - 1; i >= 0; --i) { - var code = path.charCodeAt(i) - if (code === 47) { - if (!matchedSlash) { - start = i + 1 - break - } - } else { - if (firstNonSlashEnd === -1) { - matchedSlash = false - firstNonSlashEnd = i + 1 - } - if (extIdx >= 0) { - if (code === ext.charCodeAt(extIdx)) { - if (--extIdx === -1) { - end = i - } - } else { - extIdx = -1 - end = firstNonSlashEnd - } - } - } - } - if (start === end) end = firstNonSlashEnd - else if (end === -1) end = path.length - return path.slice(start, end) - } else { - for (i = path.length - 1; i >= 0; --i) { - if (path.charCodeAt(i) === 47) { - if (!matchedSlash) { - start = i + 1 - break - } - } else if (end === -1) { - matchedSlash = false - end = i + 1 - } - } - if (end === -1) return '' - return path.slice(start, end) - } - }, - extname: function extname(path) { - assertPath(path) - var startDot = -1 - var startPart = 0 - var end = -1 - var matchedSlash = true - var preDotState = 0 - for (var i = path.length - 1; i >= 0; --i) { - var code = path.charCodeAt(i) - if (code === 47) { - if (!matchedSlash) { - startPart = i + 1 - break - } - continue - } - if (end === -1) { - matchedSlash = false - end = i + 1 - } - if (code === 46) { - if (startDot === -1) startDot = i - else if (preDotState !== 1) preDotState = 1 - } else if (startDot !== -1) { - preDotState = -1 - } - } - if ( - startDot === -1 || - end === -1 || - preDotState === 0 || - (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) - ) { - return '' - } - return path.slice(startDot, end) - }, - format: function format(pathObject) { - if (pathObject === null || typeof pathObject !== 'object') { - throw new TypeError( - 'The "pathObject" argument must be of type Object. Received type ' + - typeof pathObject - ) - } - return _format('/', pathObject) - }, - parse: function parse(path) { - assertPath(path) - var ret = { root: '', dir: '', base: '', ext: '', name: '' } - if (path.length === 0) return ret - var code = path.charCodeAt(0) - var isAbsolute = code === 47 - var start - if (isAbsolute) { - ret.root = '/' - start = 1 - } else { - start = 0 - } - var startDot = -1 - var startPart = 0 - var end = -1 - var matchedSlash = true - var i = path.length - 1 - var preDotState = 0 - for (; i >= start; --i) { - code = path.charCodeAt(i) - if (code === 47) { - if (!matchedSlash) { - startPart = i + 1 - break - } - continue - } - if (end === -1) { - matchedSlash = false - end = i + 1 - } - if (code === 46) { - if (startDot === -1) startDot = i - else if (preDotState !== 1) preDotState = 1 - } else if (startDot !== -1) { - preDotState = -1 - } - } - if ( - startDot === -1 || - end === -1 || - preDotState === 0 || - (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) - ) { - if (end !== -1) { - if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end) - else ret.base = ret.name = path.slice(startPart, end) - } - } else { - if (startPart === 0 && isAbsolute) { - ret.name = path.slice(1, startDot) - ret.base = path.slice(1, end) - } else { - ret.name = path.slice(startPart, startDot) - ret.base = path.slice(startPart, end) - } - ret.ext = path.slice(startDot, end) - } - if (startPart > 0) ret.dir = path.slice(0, startPart - 1) - else if (isAbsolute) ret.dir = '/' - return ret - }, - sep: '/', - delimiter: ':', - win32: null, - posix: null - } - posix.posix = posix - module.exports = posix - }.call(this)) - }.call(this, require('_process'))) - }, - { _process: 171 } - ], - 166: [ - function (require, module, exports) { - exports.pbkdf2 = require('./lib/async') - exports.pbkdf2Sync = require('./lib/sync') - }, - { './lib/async': 167, './lib/sync': 170 } - ], - 167: [ - function (require, module, exports) { - ;(function (process, global) { - ;(function () { - var checkParameters = require('./precondition') - var defaultEncoding = require('./default-encoding') - var sync = require('./sync') - var Buffer = require('safe-buffer').Buffer - var ZERO_BUF - var subtle = global.crypto && global.crypto.subtle - var toBrowser = { - sha: 'SHA-1', - 'sha-1': 'SHA-1', - sha1: 'SHA-1', - sha256: 'SHA-256', - 'sha-256': 'SHA-256', - sha384: 'SHA-384', - 'sha-384': 'SHA-384', - 'sha-512': 'SHA-512', - sha512: 'SHA-512' - } - var checks = [] - function checkNative(algo) { - if (global.process && !global.process.browser) { - return Promise.resolve(false) - } - if (!subtle || !subtle.importKey || !subtle.deriveBits) { - return Promise.resolve(false) - } - if (checks[algo] !== undefined) { - return checks[algo] - } - ZERO_BUF = ZERO_BUF || Buffer.alloc(8) - var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo) - .then(function () { - return true - }) - .catch(function () { - return false - }) - checks[algo] = prom - return prom - } - function browserPbkdf2(password, salt, iterations, length, algo) { - return subtle - .importKey('raw', password, { name: 'PBKDF2' }, false, ['deriveBits']) - .then(function (key) { - return subtle.deriveBits( - { name: 'PBKDF2', salt: salt, iterations: iterations, hash: { name: algo } }, - key, - length << 3 - ) - }) - .then(function (res) { - return Buffer.from(res) - }) - } - function resolvePromise(promise, callback) { - promise.then( - function (out) { - process.nextTick(function () { - callback(null, out) - }) - }, - function (e) { - process.nextTick(function () { - callback(e) - }) - } - ) - } - module.exports = function (password, salt, iterations, keylen, digest, callback) { - if (typeof digest === 'function') { - callback = digest - digest = undefined - } - digest = digest || 'sha1' - var algo = toBrowser[digest.toLowerCase()] - if (!algo || typeof global.Promise !== 'function') { - return process.nextTick(function () { - var out - try { - out = sync(password, salt, iterations, keylen, digest) - } catch (e) { - return callback(e) - } - callback(null, out) - }) - } - checkParameters(password, salt, iterations, keylen) - if (typeof callback !== 'function') - throw new Error('No callback provided to pbkdf2') - if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding) - if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding) - resolvePromise( - checkNative(algo).then(function (resp) { - if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo) - return sync(password, salt, iterations, keylen, digest) - }), - callback - ) - } - }.call(this)) - }.call( - this, - require('_process'), - typeof global !== 'undefined' - ? global - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : {} - )) - }, - { - './default-encoding': 168, - './precondition': 169, - './sync': 170, - _process: 171, - 'safe-buffer': 183 - } - ], - 168: [ - function (require, module, exports) { - ;(function (process) { - ;(function () { - var defaultEncoding - if (process.browser) { - defaultEncoding = 'utf-8' - } else { - var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10) - defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary' - } - module.exports = defaultEncoding - }.call(this)) - }.call(this, require('_process'))) - }, - { _process: 171 } - ], - 169: [ - function (require, module, exports) { - ;(function (Buffer) { - ;(function () { - var MAX_ALLOC = Math.pow(2, 30) - 1 - function checkBuffer(buf, name) { - if (typeof buf !== 'string' && !Buffer.isBuffer(buf)) { - throw new TypeError(name + ' must be a buffer or string') - } - } - module.exports = function (password, salt, iterations, keylen) { - checkBuffer(password, 'Password') - checkBuffer(salt, 'Salt') - if (typeof iterations !== 'number') { - throw new TypeError('Iterations not a number') - } - if (iterations < 0) { - throw new TypeError('Bad iterations') - } - if (typeof keylen !== 'number') { - throw new TypeError('Key length not a number') - } - if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { - throw new TypeError('Bad key length') - } - } - }.call(this)) - }.call(this, { - isBuffer: require('../../insert-module-globals/node_modules/is-buffer/index.js') - })) - }, - { '../../insert-module-globals/node_modules/is-buffer/index.js': 152 } - ], - 170: [ - function (require, module, exports) { - var md5 = require('create-hash/md5') - var RIPEMD160 = require('ripemd160') - var sha = require('sha.js') - var checkParameters = require('./precondition') - var defaultEncoding = require('./default-encoding') - var Buffer = require('safe-buffer').Buffer - var ZEROS = Buffer.alloc(128) - var sizes = { - md5: 16, - sha1: 20, - sha224: 28, - sha256: 32, - sha384: 48, - sha512: 64, - rmd160: 20, - ripemd160: 20 - } - function Hmac(alg, key, saltLen) { - var hash = getDigest(alg) - var blocksize = alg === 'sha512' || alg === 'sha384' ? 128 : 64 - if (key.length > blocksize) { - key = hash(key) - } else if (key.length < blocksize) { - key = Buffer.concat([key, ZEROS], blocksize) - } - var ipad = Buffer.allocUnsafe(blocksize + sizes[alg]) - var opad = Buffer.allocUnsafe(blocksize + sizes[alg]) - for (var i = 0; i < blocksize; i++) { - ipad[i] = key[i] ^ 54 - opad[i] = key[i] ^ 92 - } - var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4) - ipad.copy(ipad1, 0, 0, blocksize) - this.ipad1 = ipad1 - this.ipad2 = ipad - this.opad = opad - this.alg = alg - this.blocksize = blocksize - this.hash = hash - this.size = sizes[alg] - } - Hmac.prototype.run = function (data, ipad) { - data.copy(ipad, this.blocksize) - var h = this.hash(ipad) - h.copy(this.opad, this.blocksize) - return this.hash(this.opad) - } - function getDigest(alg) { - function shaFunc(data) { - return sha(alg).update(data).digest() - } - function rmd160Func(data) { - return new RIPEMD160().update(data).digest() - } - if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func - if (alg === 'md5') return md5 - return shaFunc - } - function pbkdf2(password, salt, iterations, keylen, digest) { - checkParameters(password, salt, iterations, keylen) - if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding) - if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding) - digest = digest || 'sha1' - var hmac = new Hmac(digest, password, salt.length) - var DK = Buffer.allocUnsafe(keylen) - var block1 = Buffer.allocUnsafe(salt.length + 4) - salt.copy(block1, 0, 0, salt.length) - var destPos = 0 - var hLen = sizes[digest] - var l = Math.ceil(keylen / hLen) - for (var i = 1; i <= l; i++) { - block1.writeUInt32BE(i, salt.length) - var T = hmac.run(block1, hmac.ipad1) - var U = T - for (var j = 1; j < iterations; j++) { - U = hmac.run(U, hmac.ipad2) - for (var k = 0; k < hLen; k++) T[k] ^= U[k] - } - T.copy(DK, destPos) - destPos += hLen - } - return DK - } - module.exports = pbkdf2 - }, - { - './default-encoding': 168, - './precondition': 169, - 'create-hash/md5': 102, - ripemd160: 182, - 'safe-buffer': 183, - 'sha.js': 185 - } - ], - 171: [ - function (require, module, exports) { - var process = (module.exports = {}) - var cachedSetTimeout - var cachedClearTimeout - function defaultSetTimout() { - throw new Error('setTimeout has not been defined') - } - function defaultClearTimeout() { - throw new Error('clearTimeout has not been defined') - } - ;(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout - } else { - cachedSetTimeout = defaultSetTimout - } - } catch (e) { - cachedSetTimeout = defaultSetTimout - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout - } else { - cachedClearTimeout = defaultClearTimeout - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout - } - })() - function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - return setTimeout(fun, 0) - } - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout - return setTimeout(fun, 0) - } - try { - return cachedSetTimeout(fun, 0) - } catch (e) { - try { - return cachedSetTimeout.call(null, fun, 0) - } catch (e) { - return cachedSetTimeout.call(this, fun, 0) - } - } - } - function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - return clearTimeout(marker) - } - if ( - (cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && - clearTimeout - ) { - cachedClearTimeout = clearTimeout - return clearTimeout(marker) - } - try { - return cachedClearTimeout(marker) - } catch (e) { - try { - return cachedClearTimeout.call(null, marker) - } catch (e) { - return cachedClearTimeout.call(this, marker) - } - } - } - var queue = [] - var draining = false - var currentQueue - var queueIndex = -1 - function cleanUpNextTick() { - if (!draining || !currentQueue) { - return - } - draining = false - if (currentQueue.length) { - queue = currentQueue.concat(queue) - } else { - queueIndex = -1 - } - if (queue.length) { - drainQueue() - } - } - function drainQueue() { - if (draining) { - return - } - var timeout = runTimeout(cleanUpNextTick) - draining = true - var len = queue.length - while (len) { - currentQueue = queue - queue = [] - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run() - } - } - queueIndex = -1 - len = queue.length - } - currentQueue = null - draining = false - runClearTimeout(timeout) - } - process.nextTick = function (fun) { - var args = new Array(arguments.length - 1) - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i] - } - } - queue.push(new Item(fun, args)) - if (queue.length === 1 && !draining) { - runTimeout(drainQueue) - } - } - function Item(fun, array) { - this.fun = fun - this.array = array - } - Item.prototype.run = function () { - this.fun.apply(null, this.array) - } - process.title = 'browser' - process.browser = true - process.env = {} - process.argv = [] - process.version = '' - process.versions = {} - function noop() {} - process.on = noop - process.addListener = noop - process.once = noop - process.off = noop - process.removeListener = noop - process.removeAllListeners = noop - process.emit = noop - process.prependListener = noop - process.prependOnceListener = noop - process.listeners = function (name) { - return [] - } - process.binding = function (name) { - throw new Error('process.binding is not supported') - } - process.cwd = function () { - return '/' - } - process.chdir = function (dir) { - throw new Error('process.chdir is not supported') - } - process.umask = function () { - return 0 - } - }, - {} - ], - 172: [ - function (require, module, exports) { - exports.publicEncrypt = require('./publicEncrypt') - exports.privateDecrypt = require('./privateDecrypt') - exports.privateEncrypt = function privateEncrypt(key, buf) { - return exports.publicEncrypt(key, buf, true) - } - exports.publicDecrypt = function publicDecrypt(key, buf) { - return exports.privateDecrypt(key, buf, true) - } - }, - { './privateDecrypt': 175, './publicEncrypt': 176 } - ], - 173: [ - function (require, module, exports) { - var createHash = require('create-hash') - var Buffer = require('safe-buffer').Buffer - module.exports = function (seed, len) { - var t = Buffer.alloc(0) - var i = 0 - var c - while (t.length < len) { - c = i2ops(i++) - t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()]) - } - return t.slice(0, len) - } - function i2ops(c) { - var out = Buffer.allocUnsafe(4) - out.writeUInt32BE(c, 0) - return out - } - }, - { 'create-hash': 101, 'safe-buffer': 183 } - ], - 174: [ - function (require, module, exports) { - arguments[4][15][0].apply(exports, arguments) - }, - { buffer: 49, dup: 15 } - ], - 175: [ - function (require, module, exports) { - var parseKeys = require('parse-asn1') - var mgf = require('./mgf') - var xor = require('./xor') - var BN = require('bn.js') - var crt = require('browserify-rsa') - var createHash = require('create-hash') - var withPublic = require('./withPublic') - var Buffer = require('safe-buffer').Buffer - module.exports = function privateDecrypt(privateKey, enc, reverse) { - var padding - if (privateKey.padding) { - padding = privateKey.padding - } else if (reverse) { - padding = 1 - } else { - padding = 4 - } - var key = parseKeys(privateKey) - var k = key.modulus.byteLength() - if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) { - throw new Error('decryption error') - } - var msg - if (reverse) { - msg = withPublic(new BN(enc), key) - } else { - msg = crt(enc, key) - } - var zBuffer = Buffer.alloc(k - msg.length) - msg = Buffer.concat([zBuffer, msg], k) - if (padding === 4) { - return oaep(key, msg) - } else if (padding === 1) { - return pkcs1(key, msg, reverse) - } else if (padding === 3) { - return msg - } else { - throw new Error('unknown padding') - } - } - function oaep(key, msg) { - var k = key.modulus.byteLength() - var iHash = createHash('sha1').update(Buffer.alloc(0)).digest() - var hLen = iHash.length - if (msg[0] !== 0) { - throw new Error('decryption error') - } - var maskedSeed = msg.slice(1, hLen + 1) - var maskedDb = msg.slice(hLen + 1) - var seed = xor(maskedSeed, mgf(maskedDb, hLen)) - var db = xor(maskedDb, mgf(seed, k - hLen - 1)) - if (compare(iHash, db.slice(0, hLen))) { - throw new Error('decryption error') - } - var i = hLen - while (db[i] === 0) { - i++ - } - if (db[i++] !== 1) { - throw new Error('decryption error') - } - return db.slice(i) - } - function pkcs1(key, msg, reverse) { - var p1 = msg.slice(0, 2) - var i = 2 - var status = 0 - while (msg[i++] !== 0) { - if (i >= msg.length) { - status++ - break - } - } - var ps = msg.slice(2, i - 1) - if ( - (p1.toString('hex') !== '0002' && !reverse) || - (p1.toString('hex') !== '0001' && reverse) - ) { - status++ - } - if (ps.length < 8) { - status++ - } - if (status) { - throw new Error('decryption error') - } - return msg.slice(i) - } - function compare(a, b) { - a = Buffer.from(a) - b = Buffer.from(b) - var dif = 0 - var len = a.length - if (a.length !== b.length) { - dif++ - len = Math.min(a.length, b.length) - } - var i = -1 - while (++i < len) { - dif += a[i] ^ b[i] - } - return dif - } - }, - { - './mgf': 173, - './withPublic': 177, - './xor': 178, - 'bn.js': 174, - 'browserify-rsa': 70, - 'create-hash': 101, - 'parse-asn1': 164, - 'safe-buffer': 183 - } - ], - 176: [ - function (require, module, exports) { - var parseKeys = require('parse-asn1') - var randomBytes = require('randombytes') - var createHash = require('create-hash') - var mgf = require('./mgf') - var xor = require('./xor') - var BN = require('bn.js') - var withPublic = require('./withPublic') - var crt = require('browserify-rsa') - var Buffer = require('safe-buffer').Buffer - module.exports = function publicEncrypt(publicKey, msg, reverse) { - var padding - if (publicKey.padding) { - padding = publicKey.padding - } else if (reverse) { - padding = 1 - } else { - padding = 4 - } - var key = parseKeys(publicKey) - var paddedMsg - if (padding === 4) { - paddedMsg = oaep(key, msg) - } else if (padding === 1) { - paddedMsg = pkcs1(key, msg, reverse) - } else if (padding === 3) { - paddedMsg = new BN(msg) - if (paddedMsg.cmp(key.modulus) >= 0) { - throw new Error('data too long for modulus') - } - } else { - throw new Error('unknown padding') - } - if (reverse) { - return crt(paddedMsg, key) - } else { - return withPublic(paddedMsg, key) - } - } - function oaep(key, msg) { - var k = key.modulus.byteLength() - var mLen = msg.length - var iHash = createHash('sha1').update(Buffer.alloc(0)).digest() - var hLen = iHash.length - var hLen2 = 2 * hLen - if (mLen > k - hLen2 - 2) { - throw new Error('message too long') - } - var ps = Buffer.alloc(k - mLen - hLen2 - 2) - var dblen = k - hLen - 1 - var seed = randomBytes(hLen) - var maskedDb = xor( - Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), - mgf(seed, dblen) - ) - var maskedSeed = xor(seed, mgf(maskedDb, hLen)) - return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k)) - } - function pkcs1(key, msg, reverse) { - var mLen = msg.length - var k = key.modulus.byteLength() - if (mLen > k - 11) { - throw new Error('message too long') - } - var ps - if (reverse) { - ps = Buffer.alloc(k - mLen - 3, 255) - } else { - ps = nonZero(k - mLen - 3) - } - return new BN( - Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k) - ) - } - function nonZero(len) { - var out = Buffer.allocUnsafe(len) - var i = 0 - var cache = randomBytes(len * 2) - var cur = 0 - var num - while (i < len) { - if (cur === cache.length) { - cache = randomBytes(len * 2) - cur = 0 - } - num = cache[cur++] - if (num) { - out[i++] = num - } - } - return out - } - }, - { - './mgf': 173, - './withPublic': 177, - './xor': 178, - 'bn.js': 174, - 'browserify-rsa': 70, - 'create-hash': 101, - 'parse-asn1': 164, - randombytes: 180, - 'safe-buffer': 183 - } - ], - 177: [ - function (require, module, exports) { - var BN = require('bn.js') - var Buffer = require('safe-buffer').Buffer - function withPublic(paddedMsg, key) { - return Buffer.from( - paddedMsg - .toRed(BN.mont(key.modulus)) - .redPow(new BN(key.publicExponent)) - .fromRed() - .toArray() - ) - } - module.exports = withPublic - }, - { 'bn.js': 174, 'safe-buffer': 183 } - ], - 178: [ - function (require, module, exports) { - module.exports = function xor(a, b) { - var len = a.length - var i = -1 - while (++i < len) { - a[i] ^= b[i] - } - return a - } - }, - {} - ], - 179: [ - function (require, module, exports) { - var qrcode = (function () { - var qrcode = function (typeNumber, errorCorrectionLevel) { - var PAD0 = 236 - var PAD1 = 17 - var _typeNumber = typeNumber - var _errorCorrectionLevel = QRErrorCorrectionLevel[errorCorrectionLevel] - var _modules = null - var _moduleCount = 0 - var _dataCache = null - var _dataList = [] - var _this = {} - var makeImpl = function (test, maskPattern) { - _moduleCount = _typeNumber * 4 + 17 - _modules = (function (moduleCount) { - var modules = new Array(moduleCount) - for (var row = 0; row < moduleCount; row += 1) { - modules[row] = new Array(moduleCount) - for (var col = 0; col < moduleCount; col += 1) { - modules[row][col] = null - } - } - return modules - })(_moduleCount) - setupPositionProbePattern(0, 0) - setupPositionProbePattern(_moduleCount - 7, 0) - setupPositionProbePattern(0, _moduleCount - 7) - setupPositionAdjustPattern() - setupTimingPattern() - setupTypeInfo(test, maskPattern) - if (_typeNumber >= 7) { - setupTypeNumber(test) - } - if (_dataCache == null) { - _dataCache = createData(_typeNumber, _errorCorrectionLevel, _dataList) - } - mapData(_dataCache, maskPattern) - } - var setupPositionProbePattern = function (row, col) { - for (var r = -1; r <= 7; r += 1) { - if (row + r <= -1 || _moduleCount <= row + r) continue - for (var c = -1; c <= 7; c += 1) { - if (col + c <= -1 || _moduleCount <= col + c) continue - if ( - (0 <= r && r <= 6 && (c == 0 || c == 6)) || - (0 <= c && c <= 6 && (r == 0 || r == 6)) || - (2 <= r && r <= 4 && 2 <= c && c <= 4) - ) { - _modules[row + r][col + c] = true - } else { - _modules[row + r][col + c] = false - } - } - } - } - var getBestMaskPattern = function () { - var minLostPoint = 0 - var pattern = 0 - for (var i = 0; i < 8; i += 1) { - makeImpl(true, i) - var lostPoint = QRUtil.getLostPoint(_this) - if (i == 0 || minLostPoint > lostPoint) { - minLostPoint = lostPoint - pattern = i - } - } - return pattern - } - var setupTimingPattern = function () { - for (var r = 8; r < _moduleCount - 8; r += 1) { - if (_modules[r][6] != null) { - continue - } - _modules[r][6] = r % 2 == 0 - } - for (var c = 8; c < _moduleCount - 8; c += 1) { - if (_modules[6][c] != null) { - continue - } - _modules[6][c] = c % 2 == 0 - } - } - var setupPositionAdjustPattern = function () { - var pos = QRUtil.getPatternPosition(_typeNumber) - for (var i = 0; i < pos.length; i += 1) { - for (var j = 0; j < pos.length; j += 1) { - var row = pos[i] - var col = pos[j] - if (_modules[row][col] != null) { - continue - } - for (var r = -2; r <= 2; r += 1) { - for (var c = -2; c <= 2; c += 1) { - if (r == -2 || r == 2 || c == -2 || c == 2 || (r == 0 && c == 0)) { - _modules[row + r][col + c] = true - } else { - _modules[row + r][col + c] = false - } - } - } - } - } - } - var setupTypeNumber = function (test) { - var bits = QRUtil.getBCHTypeNumber(_typeNumber) - for (var i = 0; i < 18; i += 1) { - var mod = !test && ((bits >> i) & 1) == 1 - _modules[Math.floor(i / 3)][(i % 3) + _moduleCount - 8 - 3] = mod - } - for (var i = 0; i < 18; i += 1) { - var mod = !test && ((bits >> i) & 1) == 1 - _modules[(i % 3) + _moduleCount - 8 - 3][Math.floor(i / 3)] = mod - } - } - var setupTypeInfo = function (test, maskPattern) { - var data = (_errorCorrectionLevel << 3) | maskPattern - var bits = QRUtil.getBCHTypeInfo(data) - for (var i = 0; i < 15; i += 1) { - var mod = !test && ((bits >> i) & 1) == 1 - if (i < 6) { - _modules[i][8] = mod - } else if (i < 8) { - _modules[i + 1][8] = mod - } else { - _modules[_moduleCount - 15 + i][8] = mod - } - } - for (var i = 0; i < 15; i += 1) { - var mod = !test && ((bits >> i) & 1) == 1 - if (i < 8) { - _modules[8][_moduleCount - i - 1] = mod - } else if (i < 9) { - _modules[8][15 - i - 1 + 1] = mod - } else { - _modules[8][15 - i - 1] = mod - } - } - _modules[_moduleCount - 8][8] = !test - } - var mapData = function (data, maskPattern) { - var inc = -1 - var row = _moduleCount - 1 - var bitIndex = 7 - var byteIndex = 0 - var maskFunc = QRUtil.getMaskFunction(maskPattern) - for (var col = _moduleCount - 1; col > 0; col -= 2) { - if (col == 6) col -= 1 - while (true) { - for (var c = 0; c < 2; c += 1) { - if (_modules[row][col - c] == null) { - var dark = false - if (byteIndex < data.length) { - dark = ((data[byteIndex] >>> bitIndex) & 1) == 1 - } - var mask = maskFunc(row, col - c) - if (mask) { - dark = !dark - } - _modules[row][col - c] = dark - bitIndex -= 1 - if (bitIndex == -1) { - byteIndex += 1 - bitIndex = 7 - } - } - } - row += inc - if (row < 0 || _moduleCount <= row) { - row -= inc - inc = -inc - break - } - } - } - } - var createBytes = function (buffer, rsBlocks) { - var offset = 0 - var maxDcCount = 0 - var maxEcCount = 0 - var dcdata = new Array(rsBlocks.length) - var ecdata = new Array(rsBlocks.length) - for (var r = 0; r < rsBlocks.length; r += 1) { - var dcCount = rsBlocks[r].dataCount - var ecCount = rsBlocks[r].totalCount - dcCount - maxDcCount = Math.max(maxDcCount, dcCount) - maxEcCount = Math.max(maxEcCount, ecCount) - dcdata[r] = new Array(dcCount) - for (var i = 0; i < dcdata[r].length; i += 1) { - dcdata[r][i] = 255 & buffer.getBuffer()[i + offset] - } - offset += dcCount - var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount) - var rawPoly = qrPolynomial(dcdata[r], rsPoly.getLength() - 1) - var modPoly = rawPoly.mod(rsPoly) - ecdata[r] = new Array(rsPoly.getLength() - 1) - for (var i = 0; i < ecdata[r].length; i += 1) { - var modIndex = i + modPoly.getLength() - ecdata[r].length - ecdata[r][i] = modIndex >= 0 ? modPoly.getAt(modIndex) : 0 - } - } - var totalCodeCount = 0 - for (var i = 0; i < rsBlocks.length; i += 1) { - totalCodeCount += rsBlocks[i].totalCount - } - var data = new Array(totalCodeCount) - var index = 0 - for (var i = 0; i < maxDcCount; i += 1) { - for (var r = 0; r < rsBlocks.length; r += 1) { - if (i < dcdata[r].length) { - data[index] = dcdata[r][i] - index += 1 - } - } - } - for (var i = 0; i < maxEcCount; i += 1) { - for (var r = 0; r < rsBlocks.length; r += 1) { - if (i < ecdata[r].length) { - data[index] = ecdata[r][i] - index += 1 - } - } - } - return data - } - var createData = function (typeNumber, errorCorrectionLevel, dataList) { - var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectionLevel) - var buffer = qrBitBuffer() - for (var i = 0; i < dataList.length; i += 1) { - var data = dataList[i] - buffer.put(data.getMode(), 4) - buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber)) - data.write(buffer) - } - var totalDataCount = 0 - for (var i = 0; i < rsBlocks.length; i += 1) { - totalDataCount += rsBlocks[i].dataCount - } - if (buffer.getLengthInBits() > totalDataCount * 8) { - throw ( - 'code length overflow. (' + - buffer.getLengthInBits() + - '>' + - totalDataCount * 8 + - ')' - ) - } - if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) { - buffer.put(0, 4) - } - while (buffer.getLengthInBits() % 8 != 0) { - buffer.putBit(false) - } - while (true) { - if (buffer.getLengthInBits() >= totalDataCount * 8) { - break - } - buffer.put(PAD0, 8) - if (buffer.getLengthInBits() >= totalDataCount * 8) { - break - } - buffer.put(PAD1, 8) - } - return createBytes(buffer, rsBlocks) - } - _this.addData = function (data, mode) { - mode = mode || 'Byte' - var newData = null - switch (mode) { - case 'Numeric': - newData = qrNumber(data) - break - case 'Alphanumeric': - newData = qrAlphaNum(data) - break - case 'Byte': - newData = qr8BitByte(data) - break - case 'Kanji': - newData = qrKanji(data) - break - default: - throw 'mode:' + mode - } - _dataList.push(newData) - _dataCache = null - } - _this.isDark = function (row, col) { - if (row < 0 || _moduleCount <= row || col < 0 || _moduleCount <= col) { - throw row + ',' + col - } - return _modules[row][col] - } - _this.getModuleCount = function () { - return _moduleCount - } - _this.make = function () { - if (_typeNumber < 1) { - var typeNumber = 1 - for (; typeNumber < 40; typeNumber++) { - var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, _errorCorrectionLevel) - var buffer = qrBitBuffer() - for (var i = 0; i < _dataList.length; i++) { - var data = _dataList[i] - buffer.put(data.getMode(), 4) - buffer.put( - data.getLength(), - QRUtil.getLengthInBits(data.getMode(), typeNumber) - ) - data.write(buffer) - } - var totalDataCount = 0 - for (var i = 0; i < rsBlocks.length; i++) { - totalDataCount += rsBlocks[i].dataCount - } - if (buffer.getLengthInBits() <= totalDataCount * 8) { - break - } - } - _typeNumber = typeNumber - } - makeImpl(false, getBestMaskPattern()) - } - _this.createTableTag = function (cellSize, margin) { - cellSize = cellSize || 2 - margin = typeof margin == 'undefined' ? cellSize * 4 : margin - var qrHtml = '' - qrHtml += '' - qrHtml += '' - for (var r = 0; r < _this.getModuleCount(); r += 1) { - qrHtml += '' - for (var c = 0; c < _this.getModuleCount(); c += 1) { - qrHtml += '' - } - qrHtml += '' - qrHtml += '
' - } - qrHtml += '
' - return qrHtml - } - _this.createSvgTag = function (cellSize, margin, alt, title) { - var opts = {} - if (typeof arguments[0] == 'object') { - opts = arguments[0] - cellSize = opts.cellSize - margin = opts.margin - alt = opts.alt - title = opts.title - } - cellSize = cellSize || 2 - margin = typeof margin == 'undefined' ? cellSize * 4 : margin - alt = typeof alt === 'string' ? { text: alt } : alt || {} - alt.text = alt.text || null - alt.id = alt.text ? alt.id || 'qrcode-description' : null - title = typeof title === 'string' ? { text: title } : title || {} - title.text = title.text || null - title.id = title.text ? title.id || 'qrcode-title' : null - var size = _this.getModuleCount() * cellSize + margin * 2 - var c, - mc, - r, - mr, - qrSvg = '', - rect - rect = - 'l' + cellSize + ',0 0,' + cellSize + ' -' + cellSize + ',0 0,-' + cellSize + 'z ' - qrSvg += '' + escapeXml(title.text) + '' - : '' - qrSvg += alt.text - ? '' + - escapeXml(alt.text) + - '' - : '' - qrSvg += '' - qrSvg += '' - qrSvg += '' - return qrSvg - } - _this.createDataURL = function (cellSize, margin) { - cellSize = cellSize || 2 - margin = typeof margin == 'undefined' ? cellSize * 4 : margin - var size = _this.getModuleCount() * cellSize + margin * 2 - var min = margin - var max = size - margin - return createDataURL(size, size, function (x, y) { - if (min <= x && x < max && min <= y && y < max) { - var c = Math.floor((x - min) / cellSize) - var r = Math.floor((y - min) / cellSize) - return _this.isDark(r, c) ? 0 : 1 - } else { - return 1 - } - }) - } - _this.createImgTag = function (cellSize, margin, alt) { - cellSize = cellSize || 2 - margin = typeof margin == 'undefined' ? cellSize * 4 : margin - var size = _this.getModuleCount() * cellSize + margin * 2 - var img = '' - img += '': - escaped += '>' - break - case '&': - escaped += '&' - break - case '"': - escaped += '"' - break - default: - escaped += c - break - } - } - return escaped - } - var _createHalfASCII = function (margin) { - var cellSize = 1 - margin = typeof margin == 'undefined' ? cellSize * 2 : margin - var size = _this.getModuleCount() * cellSize + margin * 2 - var min = margin - var max = size - margin - var y, x, r1, r2, p - var blocks = { '██': '█', '█ ': '▀', ' █': '▄', ' ': ' ' } - var blocksLastLineNoMargin = { '██': '▀', '█ ': '▀', ' █': ' ', ' ': ' ' } - var ascii = '' - for (y = 0; y < size; y += 2) { - r1 = Math.floor((y - min) / cellSize) - r2 = Math.floor((y + 1 - min) / cellSize) - for (x = 0; x < size; x += 1) { - p = '█' - if ( - min <= x && - x < max && - min <= y && - y < max && - _this.isDark(r1, Math.floor((x - min) / cellSize)) - ) { - p = ' ' - } - if ( - min <= x && - x < max && - min <= y + 1 && - y + 1 < max && - _this.isDark(r2, Math.floor((x - min) / cellSize)) - ) { - p += ' ' - } else { - p += '█' - } - ascii += margin < 1 && y + 1 >= max ? blocksLastLineNoMargin[p] : blocks[p] - } - ascii += '\n' - } - if (size % 2 && margin > 0) { - return ascii.substring(0, ascii.length - size - 1) + Array(size + 1).join('▀') - } - return ascii.substring(0, ascii.length - 1) - } - _this.createASCII = function (cellSize, margin) { - cellSize = cellSize || 1 - if (cellSize < 2) { - return _createHalfASCII(margin) - } - cellSize -= 1 - margin = typeof margin == 'undefined' ? cellSize * 2 : margin - var size = _this.getModuleCount() * cellSize + margin * 2 - var min = margin - var max = size - margin - var y, x, r, p - var white = Array(cellSize + 1).join('██') - var black = Array(cellSize + 1).join(' ') - var ascii = '' - var line = '' - for (y = 0; y < size; y += 1) { - r = Math.floor((y - min) / cellSize) - line = '' - for (x = 0; x < size; x += 1) { - p = 1 - if ( - min <= x && - x < max && - min <= y && - y < max && - _this.isDark(r, Math.floor((x - min) / cellSize)) - ) { - p = 0 - } - line += p ? white : black - } - for (r = 0; r < cellSize; r += 1) { - ascii += line + '\n' - } - } - return ascii.substring(0, ascii.length - 1) - } - _this.renderTo2dContext = function (context, cellSize) { - cellSize = cellSize || 2 - var length = _this.getModuleCount() - for (var row = 0; row < length; row++) { - for (var col = 0; col < length; col++) { - context.fillStyle = _this.isDark(row, col) ? 'black' : 'white' - context.fillRect(row * cellSize, col * cellSize, cellSize, cellSize) - } - } - } - return _this - } - qrcode.stringToBytesFuncs = { - default: function (s) { - var bytes = [] - for (var i = 0; i < s.length; i += 1) { - var c = s.charCodeAt(i) - bytes.push(c & 255) - } - return bytes - } - } - qrcode.stringToBytes = qrcode.stringToBytesFuncs['default'] - qrcode.createStringToBytes = function (unicodeData, numChars) { - var unicodeMap = (function () { - var bin = base64DecodeInputStream(unicodeData) - var read = function () { - var b = bin.read() - if (b == -1) throw 'eof' - return b - } - var count = 0 - var unicodeMap = {} - while (true) { - var b0 = bin.read() - if (b0 == -1) break - var b1 = read() - var b2 = read() - var b3 = read() - var k = String.fromCharCode((b0 << 8) | b1) - var v = (b2 << 8) | b3 - unicodeMap[k] = v - count += 1 - } - if (count != numChars) { - throw count + ' != ' + numChars - } - return unicodeMap - })() - var unknownChar = '?'.charCodeAt(0) - return function (s) { - var bytes = [] - for (var i = 0; i < s.length; i += 1) { - var c = s.charCodeAt(i) - if (c < 128) { - bytes.push(c) - } else { - var b = unicodeMap[s.charAt(i)] - if (typeof b == 'number') { - if ((b & 255) == b) { - bytes.push(b) - } else { - bytes.push(b >>> 8) - bytes.push(b & 255) - } - } else { - bytes.push(unknownChar) - } - } - } - return bytes - } - } - var QRMode = { - MODE_NUMBER: 1 << 0, - MODE_ALPHA_NUM: 1 << 1, - MODE_8BIT_BYTE: 1 << 2, - MODE_KANJI: 1 << 3 - } - var QRErrorCorrectionLevel = { L: 1, M: 0, Q: 3, H: 2 } - var QRMaskPattern = { - PATTERN000: 0, - PATTERN001: 1, - PATTERN010: 2, - PATTERN011: 3, - PATTERN100: 4, - PATTERN101: 5, - PATTERN110: 6, - PATTERN111: 7 - } - var QRUtil = (function () { - var PATTERN_POSITION_TABLE = [ - [], - [6, 18], - [6, 22], - [6, 26], - [6, 30], - [6, 34], - [6, 22, 38], - [6, 24, 42], - [6, 26, 46], - [6, 28, 50], - [6, 30, 54], - [6, 32, 58], - [6, 34, 62], - [6, 26, 46, 66], - [6, 26, 48, 70], - [6, 26, 50, 74], - [6, 30, 54, 78], - [6, 30, 56, 82], - [6, 30, 58, 86], - [6, 34, 62, 90], - [6, 28, 50, 72, 94], - [6, 26, 50, 74, 98], - [6, 30, 54, 78, 102], - [6, 28, 54, 80, 106], - [6, 32, 58, 84, 110], - [6, 30, 58, 86, 114], - [6, 34, 62, 90, 118], - [6, 26, 50, 74, 98, 122], - [6, 30, 54, 78, 102, 126], - [6, 26, 52, 78, 104, 130], - [6, 30, 56, 82, 108, 134], - [6, 34, 60, 86, 112, 138], - [6, 30, 58, 86, 114, 142], - [6, 34, 62, 90, 118, 146], - [6, 30, 54, 78, 102, 126, 150], - [6, 24, 50, 76, 102, 128, 154], - [6, 28, 54, 80, 106, 132, 158], - [6, 32, 58, 84, 110, 136, 162], - [6, 26, 54, 82, 110, 138, 166], - [6, 30, 58, 86, 114, 142, 170] - ] - var G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0) - var G18 = - (1 << 12) | - (1 << 11) | - (1 << 10) | - (1 << 9) | - (1 << 8) | - (1 << 5) | - (1 << 2) | - (1 << 0) - var G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1) - var _this = {} - var getBCHDigit = function (data) { - var digit = 0 - while (data != 0) { - digit += 1 - data >>>= 1 - } - return digit - } - _this.getBCHTypeInfo = function (data) { - var d = data << 10 - while (getBCHDigit(d) - getBCHDigit(G15) >= 0) { - d ^= G15 << (getBCHDigit(d) - getBCHDigit(G15)) - } - return ((data << 10) | d) ^ G15_MASK - } - _this.getBCHTypeNumber = function (data) { - var d = data << 12 - while (getBCHDigit(d) - getBCHDigit(G18) >= 0) { - d ^= G18 << (getBCHDigit(d) - getBCHDigit(G18)) - } - return (data << 12) | d - } - _this.getPatternPosition = function (typeNumber) { - return PATTERN_POSITION_TABLE[typeNumber - 1] - } - _this.getMaskFunction = function (maskPattern) { - switch (maskPattern) { - case QRMaskPattern.PATTERN000: - return function (i, j) { - return (i + j) % 2 == 0 - } - case QRMaskPattern.PATTERN001: - return function (i, j) { - return i % 2 == 0 - } - case QRMaskPattern.PATTERN010: - return function (i, j) { - return j % 3 == 0 - } - case QRMaskPattern.PATTERN011: - return function (i, j) { - return (i + j) % 3 == 0 - } - case QRMaskPattern.PATTERN100: - return function (i, j) { - return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0 - } - case QRMaskPattern.PATTERN101: - return function (i, j) { - return ((i * j) % 2) + ((i * j) % 3) == 0 - } - case QRMaskPattern.PATTERN110: - return function (i, j) { - return (((i * j) % 2) + ((i * j) % 3)) % 2 == 0 - } - case QRMaskPattern.PATTERN111: - return function (i, j) { - return (((i * j) % 3) + ((i + j) % 2)) % 2 == 0 - } - default: - throw 'bad maskPattern:' + maskPattern - } - } - _this.getErrorCorrectPolynomial = function (errorCorrectLength) { - var a = qrPolynomial([1], 0) - for (var i = 0; i < errorCorrectLength; i += 1) { - a = a.multiply(qrPolynomial([1, QRMath.gexp(i)], 0)) - } - return a - } - _this.getLengthInBits = function (mode, type) { - if (1 <= type && type < 10) { - switch (mode) { - case QRMode.MODE_NUMBER: - return 10 - case QRMode.MODE_ALPHA_NUM: - return 9 - case QRMode.MODE_8BIT_BYTE: - return 8 - case QRMode.MODE_KANJI: - return 8 - default: - throw 'mode:' + mode - } - } else if (type < 27) { - switch (mode) { - case QRMode.MODE_NUMBER: - return 12 - case QRMode.MODE_ALPHA_NUM: - return 11 - case QRMode.MODE_8BIT_BYTE: - return 16 - case QRMode.MODE_KANJI: - return 10 - default: - throw 'mode:' + mode - } - } else if (type < 41) { - switch (mode) { - case QRMode.MODE_NUMBER: - return 14 - case QRMode.MODE_ALPHA_NUM: - return 13 - case QRMode.MODE_8BIT_BYTE: - return 16 - case QRMode.MODE_KANJI: - return 12 - default: - throw 'mode:' + mode - } - } else { - throw 'type:' + type - } - } - _this.getLostPoint = function (qrcode) { - var moduleCount = qrcode.getModuleCount() - var lostPoint = 0 - for (var row = 0; row < moduleCount; row += 1) { - for (var col = 0; col < moduleCount; col += 1) { - var sameCount = 0 - var dark = qrcode.isDark(row, col) - for (var r = -1; r <= 1; r += 1) { - if (row + r < 0 || moduleCount <= row + r) { - continue - } - for (var c = -1; c <= 1; c += 1) { - if (col + c < 0 || moduleCount <= col + c) { - continue - } - if (r == 0 && c == 0) { - continue - } - if (dark == qrcode.isDark(row + r, col + c)) { - sameCount += 1 - } - } - } - if (sameCount > 5) { - lostPoint += 3 + sameCount - 5 - } - } - } - for (var row = 0; row < moduleCount - 1; row += 1) { - for (var col = 0; col < moduleCount - 1; col += 1) { - var count = 0 - if (qrcode.isDark(row, col)) count += 1 - if (qrcode.isDark(row + 1, col)) count += 1 - if (qrcode.isDark(row, col + 1)) count += 1 - if (qrcode.isDark(row + 1, col + 1)) count += 1 - if (count == 0 || count == 4) { - lostPoint += 3 - } - } - } - for (var row = 0; row < moduleCount; row += 1) { - for (var col = 0; col < moduleCount - 6; col += 1) { - if ( - qrcode.isDark(row, col) && - !qrcode.isDark(row, col + 1) && - qrcode.isDark(row, col + 2) && - qrcode.isDark(row, col + 3) && - qrcode.isDark(row, col + 4) && - !qrcode.isDark(row, col + 5) && - qrcode.isDark(row, col + 6) - ) { - lostPoint += 40 - } - } - } - for (var col = 0; col < moduleCount; col += 1) { - for (var row = 0; row < moduleCount - 6; row += 1) { - if ( - qrcode.isDark(row, col) && - !qrcode.isDark(row + 1, col) && - qrcode.isDark(row + 2, col) && - qrcode.isDark(row + 3, col) && - qrcode.isDark(row + 4, col) && - !qrcode.isDark(row + 5, col) && - qrcode.isDark(row + 6, col) - ) { - lostPoint += 40 - } - } - } - var darkCount = 0 - for (var col = 0; col < moduleCount; col += 1) { - for (var row = 0; row < moduleCount; row += 1) { - if (qrcode.isDark(row, col)) { - darkCount += 1 - } - } - } - var ratio = Math.abs((100 * darkCount) / moduleCount / moduleCount - 50) / 5 - lostPoint += ratio * 10 - return lostPoint - } - return _this - })() - var QRMath = (function () { - var EXP_TABLE = new Array(256) - var LOG_TABLE = new Array(256) - for (var i = 0; i < 8; i += 1) { - EXP_TABLE[i] = 1 << i - } - for (var i = 8; i < 256; i += 1) { - EXP_TABLE[i] = - EXP_TABLE[i - 4] ^ EXP_TABLE[i - 5] ^ EXP_TABLE[i - 6] ^ EXP_TABLE[i - 8] - } - for (var i = 0; i < 255; i += 1) { - LOG_TABLE[EXP_TABLE[i]] = i - } - var _this = {} - _this.glog = function (n) { - if (n < 1) { - throw 'glog(' + n + ')' - } - return LOG_TABLE[n] - } - _this.gexp = function (n) { - while (n < 0) { - n += 255 - } - while (n >= 256) { - n -= 255 - } - return EXP_TABLE[n] - } - return _this - })() - function qrPolynomial(num, shift) { - if (typeof num.length == 'undefined') { - throw num.length + '/' + shift - } - var _num = (function () { - var offset = 0 - while (offset < num.length && num[offset] == 0) { - offset += 1 - } - var _num = new Array(num.length - offset + shift) - for (var i = 0; i < num.length - offset; i += 1) { - _num[i] = num[i + offset] - } - return _num - })() - var _this = {} - _this.getAt = function (index) { - return _num[index] - } - _this.getLength = function () { - return _num.length - } - _this.multiply = function (e) { - var num = new Array(_this.getLength() + e.getLength() - 1) - for (var i = 0; i < _this.getLength(); i += 1) { - for (var j = 0; j < e.getLength(); j += 1) { - num[i + j] ^= QRMath.gexp(QRMath.glog(_this.getAt(i)) + QRMath.glog(e.getAt(j))) - } - } - return qrPolynomial(num, 0) - } - _this.mod = function (e) { - if (_this.getLength() - e.getLength() < 0) { - return _this - } - var ratio = QRMath.glog(_this.getAt(0)) - QRMath.glog(e.getAt(0)) - var num = new Array(_this.getLength()) - for (var i = 0; i < _this.getLength(); i += 1) { - num[i] = _this.getAt(i) - } - for (var i = 0; i < e.getLength(); i += 1) { - num[i] ^= QRMath.gexp(QRMath.glog(e.getAt(i)) + ratio) - } - return qrPolynomial(num, 0).mod(e) - } - return _this - } - var QRRSBlock = (function () { - var RS_BLOCK_TABLE = [ - [1, 26, 19], - [1, 26, 16], - [1, 26, 13], - [1, 26, 9], - [1, 44, 34], - [1, 44, 28], - [1, 44, 22], - [1, 44, 16], - [1, 70, 55], - [1, 70, 44], - [2, 35, 17], - [2, 35, 13], - [1, 100, 80], - [2, 50, 32], - [2, 50, 24], - [4, 25, 9], - [1, 134, 108], - [2, 67, 43], - [2, 33, 15, 2, 34, 16], - [2, 33, 11, 2, 34, 12], - [2, 86, 68], - [4, 43, 27], - [4, 43, 19], - [4, 43, 15], - [2, 98, 78], - [4, 49, 31], - [2, 32, 14, 4, 33, 15], - [4, 39, 13, 1, 40, 14], - [2, 121, 97], - [2, 60, 38, 2, 61, 39], - [4, 40, 18, 2, 41, 19], - [4, 40, 14, 2, 41, 15], - [2, 146, 116], - [3, 58, 36, 2, 59, 37], - [4, 36, 16, 4, 37, 17], - [4, 36, 12, 4, 37, 13], - [2, 86, 68, 2, 87, 69], - [4, 69, 43, 1, 70, 44], - [6, 43, 19, 2, 44, 20], - [6, 43, 15, 2, 44, 16], - [4, 101, 81], - [1, 80, 50, 4, 81, 51], - [4, 50, 22, 4, 51, 23], - [3, 36, 12, 8, 37, 13], - [2, 116, 92, 2, 117, 93], - [6, 58, 36, 2, 59, 37], - [4, 46, 20, 6, 47, 21], - [7, 42, 14, 4, 43, 15], - [4, 133, 107], - [8, 59, 37, 1, 60, 38], - [8, 44, 20, 4, 45, 21], - [12, 33, 11, 4, 34, 12], - [3, 145, 115, 1, 146, 116], - [4, 64, 40, 5, 65, 41], - [11, 36, 16, 5, 37, 17], - [11, 36, 12, 5, 37, 13], - [5, 109, 87, 1, 110, 88], - [5, 65, 41, 5, 66, 42], - [5, 54, 24, 7, 55, 25], - [11, 36, 12, 7, 37, 13], - [5, 122, 98, 1, 123, 99], - [7, 73, 45, 3, 74, 46], - [15, 43, 19, 2, 44, 20], - [3, 45, 15, 13, 46, 16], - [1, 135, 107, 5, 136, 108], - [10, 74, 46, 1, 75, 47], - [1, 50, 22, 15, 51, 23], - [2, 42, 14, 17, 43, 15], - [5, 150, 120, 1, 151, 121], - [9, 69, 43, 4, 70, 44], - [17, 50, 22, 1, 51, 23], - [2, 42, 14, 19, 43, 15], - [3, 141, 113, 4, 142, 114], - [3, 70, 44, 11, 71, 45], - [17, 47, 21, 4, 48, 22], - [9, 39, 13, 16, 40, 14], - [3, 135, 107, 5, 136, 108], - [3, 67, 41, 13, 68, 42], - [15, 54, 24, 5, 55, 25], - [15, 43, 15, 10, 44, 16], - [4, 144, 116, 4, 145, 117], - [17, 68, 42], - [17, 50, 22, 6, 51, 23], - [19, 46, 16, 6, 47, 17], - [2, 139, 111, 7, 140, 112], - [17, 74, 46], - [7, 54, 24, 16, 55, 25], - [34, 37, 13], - [4, 151, 121, 5, 152, 122], - [4, 75, 47, 14, 76, 48], - [11, 54, 24, 14, 55, 25], - [16, 45, 15, 14, 46, 16], - [6, 147, 117, 4, 148, 118], - [6, 73, 45, 14, 74, 46], - [11, 54, 24, 16, 55, 25], - [30, 46, 16, 2, 47, 17], - [8, 132, 106, 4, 133, 107], - [8, 75, 47, 13, 76, 48], - [7, 54, 24, 22, 55, 25], - [22, 45, 15, 13, 46, 16], - [10, 142, 114, 2, 143, 115], - [19, 74, 46, 4, 75, 47], - [28, 50, 22, 6, 51, 23], - [33, 46, 16, 4, 47, 17], - [8, 152, 122, 4, 153, 123], - [22, 73, 45, 3, 74, 46], - [8, 53, 23, 26, 54, 24], - [12, 45, 15, 28, 46, 16], - [3, 147, 117, 10, 148, 118], - [3, 73, 45, 23, 74, 46], - [4, 54, 24, 31, 55, 25], - [11, 45, 15, 31, 46, 16], - [7, 146, 116, 7, 147, 117], - [21, 73, 45, 7, 74, 46], - [1, 53, 23, 37, 54, 24], - [19, 45, 15, 26, 46, 16], - [5, 145, 115, 10, 146, 116], - [19, 75, 47, 10, 76, 48], - [15, 54, 24, 25, 55, 25], - [23, 45, 15, 25, 46, 16], - [13, 145, 115, 3, 146, 116], - [2, 74, 46, 29, 75, 47], - [42, 54, 24, 1, 55, 25], - [23, 45, 15, 28, 46, 16], - [17, 145, 115], - [10, 74, 46, 23, 75, 47], - [10, 54, 24, 35, 55, 25], - [19, 45, 15, 35, 46, 16], - [17, 145, 115, 1, 146, 116], - [14, 74, 46, 21, 75, 47], - [29, 54, 24, 19, 55, 25], - [11, 45, 15, 46, 46, 16], - [13, 145, 115, 6, 146, 116], - [14, 74, 46, 23, 75, 47], - [44, 54, 24, 7, 55, 25], - [59, 46, 16, 1, 47, 17], - [12, 151, 121, 7, 152, 122], - [12, 75, 47, 26, 76, 48], - [39, 54, 24, 14, 55, 25], - [22, 45, 15, 41, 46, 16], - [6, 151, 121, 14, 152, 122], - [6, 75, 47, 34, 76, 48], - [46, 54, 24, 10, 55, 25], - [2, 45, 15, 64, 46, 16], - [17, 152, 122, 4, 153, 123], - [29, 74, 46, 14, 75, 47], - [49, 54, 24, 10, 55, 25], - [24, 45, 15, 46, 46, 16], - [4, 152, 122, 18, 153, 123], - [13, 74, 46, 32, 75, 47], - [48, 54, 24, 14, 55, 25], - [42, 45, 15, 32, 46, 16], - [20, 147, 117, 4, 148, 118], - [40, 75, 47, 7, 76, 48], - [43, 54, 24, 22, 55, 25], - [10, 45, 15, 67, 46, 16], - [19, 148, 118, 6, 149, 119], - [18, 75, 47, 31, 76, 48], - [34, 54, 24, 34, 55, 25], - [20, 45, 15, 61, 46, 16] - ] - var qrRSBlock = function (totalCount, dataCount) { - var _this = {} - _this.totalCount = totalCount - _this.dataCount = dataCount - return _this - } - var _this = {} - var getRsBlockTable = function (typeNumber, errorCorrectionLevel) { - switch (errorCorrectionLevel) { - case QRErrorCorrectionLevel.L: - return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0] - case QRErrorCorrectionLevel.M: - return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1] - case QRErrorCorrectionLevel.Q: - return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2] - case QRErrorCorrectionLevel.H: - return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3] - default: - return undefined - } - } - _this.getRSBlocks = function (typeNumber, errorCorrectionLevel) { - var rsBlock = getRsBlockTable(typeNumber, errorCorrectionLevel) - if (typeof rsBlock == 'undefined') { - throw ( - 'bad rs block @ typeNumber:' + - typeNumber + - '/errorCorrectionLevel:' + - errorCorrectionLevel - ) - } - var length = rsBlock.length / 3 - var list = [] - for (var i = 0; i < length; i += 1) { - var count = rsBlock[i * 3 + 0] - var totalCount = rsBlock[i * 3 + 1] - var dataCount = rsBlock[i * 3 + 2] - for (var j = 0; j < count; j += 1) { - list.push(qrRSBlock(totalCount, dataCount)) - } - } - return list - } - return _this - })() - var qrBitBuffer = function () { - var _buffer = [] - var _length = 0 - var _this = {} - _this.getBuffer = function () { - return _buffer - } - _this.getAt = function (index) { - var bufIndex = Math.floor(index / 8) - return ((_buffer[bufIndex] >>> (7 - (index % 8))) & 1) == 1 - } - _this.put = function (num, length) { - for (var i = 0; i < length; i += 1) { - _this.putBit(((num >>> (length - i - 1)) & 1) == 1) - } - } - _this.getLengthInBits = function () { - return _length - } - _this.putBit = function (bit) { - var bufIndex = Math.floor(_length / 8) - if (_buffer.length <= bufIndex) { - _buffer.push(0) - } - if (bit) { - _buffer[bufIndex] |= 128 >>> _length % 8 - } - _length += 1 - } - return _this - } - var qrNumber = function (data) { - var _mode = QRMode.MODE_NUMBER - var _data = data - var _this = {} - _this.getMode = function () { - return _mode - } - _this.getLength = function (buffer) { - return _data.length - } - _this.write = function (buffer) { - var data = _data - var i = 0 - while (i + 2 < data.length) { - buffer.put(strToNum(data.substring(i, i + 3)), 10) - i += 3 - } - if (i < data.length) { - if (data.length - i == 1) { - buffer.put(strToNum(data.substring(i, i + 1)), 4) - } else if (data.length - i == 2) { - buffer.put(strToNum(data.substring(i, i + 2)), 7) - } - } - } - var strToNum = function (s) { - var num = 0 - for (var i = 0; i < s.length; i += 1) { - num = num * 10 + chatToNum(s.charAt(i)) - } - return num - } - var chatToNum = function (c) { - if ('0' <= c && c <= '9') { - return c.charCodeAt(0) - '0'.charCodeAt(0) - } - throw 'illegal char :' + c - } - return _this - } - var qrAlphaNum = function (data) { - var _mode = QRMode.MODE_ALPHA_NUM - var _data = data - var _this = {} - _this.getMode = function () { - return _mode - } - _this.getLength = function (buffer) { - return _data.length - } - _this.write = function (buffer) { - var s = _data - var i = 0 - while (i + 1 < s.length) { - buffer.put(getCode(s.charAt(i)) * 45 + getCode(s.charAt(i + 1)), 11) - i += 2 - } - if (i < s.length) { - buffer.put(getCode(s.charAt(i)), 6) - } - } - var getCode = function (c) { - if ('0' <= c && c <= '9') { - return c.charCodeAt(0) - '0'.charCodeAt(0) - } else if ('A' <= c && c <= 'Z') { - return c.charCodeAt(0) - 'A'.charCodeAt(0) + 10 - } else { - switch (c) { - case ' ': - return 36 - case '$': - return 37 - case '%': - return 38 - case '*': - return 39 - case '+': - return 40 - case '-': - return 41 - case '.': - return 42 - case '/': - return 43 - case ':': - return 44 - default: - throw 'illegal char :' + c - } - } - } - return _this - } - var qr8BitByte = function (data) { - var _mode = QRMode.MODE_8BIT_BYTE - var _data = data - var _bytes = qrcode.stringToBytes(data) - var _this = {} - _this.getMode = function () { - return _mode - } - _this.getLength = function (buffer) { - return _bytes.length - } - _this.write = function (buffer) { - for (var i = 0; i < _bytes.length; i += 1) { - buffer.put(_bytes[i], 8) - } - } - return _this - } - var qrKanji = function (data) { - var _mode = QRMode.MODE_KANJI - var _data = data - var stringToBytes = qrcode.stringToBytesFuncs['SJIS'] - if (!stringToBytes) { - throw 'sjis not supported.' - } - !(function (c, code) { - var test = stringToBytes(c) - if (test.length != 2 || ((test[0] << 8) | test[1]) != code) { - throw 'sjis not supported.' - } - })('友', 38726) - var _bytes = stringToBytes(data) - var _this = {} - _this.getMode = function () { - return _mode - } - _this.getLength = function (buffer) { - return ~~(_bytes.length / 2) - } - _this.write = function (buffer) { - var data = _bytes - var i = 0 - while (i + 1 < data.length) { - var c = ((255 & data[i]) << 8) | (255 & data[i + 1]) - if (33088 <= c && c <= 40956) { - c -= 33088 - } else if (57408 <= c && c <= 60351) { - c -= 49472 - } else { - throw 'illegal char at ' + (i + 1) + '/' + c - } - c = ((c >>> 8) & 255) * 192 + (c & 255) - buffer.put(c, 13) - i += 2 - } - if (i < data.length) { - throw 'illegal char at ' + (i + 1) - } - } - return _this - } - var byteArrayOutputStream = function () { - var _bytes = [] - var _this = {} - _this.writeByte = function (b) { - _bytes.push(b & 255) - } - _this.writeShort = function (i) { - _this.writeByte(i) - _this.writeByte(i >>> 8) - } - _this.writeBytes = function (b, off, len) { - off = off || 0 - len = len || b.length - for (var i = 0; i < len; i += 1) { - _this.writeByte(b[i + off]) - } - } - _this.writeString = function (s) { - for (var i = 0; i < s.length; i += 1) { - _this.writeByte(s.charCodeAt(i)) - } - } - _this.toByteArray = function () { - return _bytes - } - _this.toString = function () { - var s = '' - s += '[' - for (var i = 0; i < _bytes.length; i += 1) { - if (i > 0) { - s += ',' - } - s += _bytes[i] - } - s += ']' - return s - } - return _this - } - var base64EncodeOutputStream = function () { - var _buffer = 0 - var _buflen = 0 - var _length = 0 - var _base64 = '' - var _this = {} - var writeEncoded = function (b) { - _base64 += String.fromCharCode(encode(b & 63)) - } - var encode = function (n) { - if (n < 0) { - } else if (n < 26) { - return 65 + n - } else if (n < 52) { - return 97 + (n - 26) - } else if (n < 62) { - return 48 + (n - 52) - } else if (n == 62) { - return 43 - } else if (n == 63) { - return 47 - } - throw 'n:' + n - } - _this.writeByte = function (n) { - _buffer = (_buffer << 8) | (n & 255) - _buflen += 8 - _length += 1 - while (_buflen >= 6) { - writeEncoded(_buffer >>> (_buflen - 6)) - _buflen -= 6 - } - } - _this.flush = function () { - if (_buflen > 0) { - writeEncoded(_buffer << (6 - _buflen)) - _buffer = 0 - _buflen = 0 - } - if (_length % 3 != 0) { - var padlen = 3 - (_length % 3) - for (var i = 0; i < padlen; i += 1) { - _base64 += '=' - } - } - } - _this.toString = function () { - return _base64 - } - return _this - } - var base64DecodeInputStream = function (str) { - var _str = str - var _pos = 0 - var _buffer = 0 - var _buflen = 0 - var _this = {} - _this.read = function () { - while (_buflen < 8) { - if (_pos >= _str.length) { - if (_buflen == 0) { - return -1 - } - throw 'unexpected end of file./' + _buflen - } - var c = _str.charAt(_pos) - _pos += 1 - if (c == '=') { - _buflen = 0 - return -1 - } else if (c.match(/^\s$/)) { - continue - } - _buffer = (_buffer << 6) | decode(c.charCodeAt(0)) - _buflen += 6 - } - var n = (_buffer >>> (_buflen - 8)) & 255 - _buflen -= 8 - return n - } - var decode = function (c) { - if (65 <= c && c <= 90) { - return c - 65 - } else if (97 <= c && c <= 122) { - return c - 97 + 26 - } else if (48 <= c && c <= 57) { - return c - 48 + 52 - } else if (c == 43) { - return 62 - } else if (c == 47) { - return 63 - } else { - throw 'c:' + c - } - } - return _this - } - var gifImage = function (width, height) { - var _width = width - var _height = height - var _data = new Array(width * height) - var _this = {} - _this.setPixel = function (x, y, pixel) { - _data[y * _width + x] = pixel - } - _this.write = function (out) { - out.writeString('GIF87a') - out.writeShort(_width) - out.writeShort(_height) - out.writeByte(128) - out.writeByte(0) - out.writeByte(0) - out.writeByte(0) - out.writeByte(0) - out.writeByte(0) - out.writeByte(255) - out.writeByte(255) - out.writeByte(255) - out.writeString(',') - out.writeShort(0) - out.writeShort(0) - out.writeShort(_width) - out.writeShort(_height) - out.writeByte(0) - var lzwMinCodeSize = 2 - var raster = getLZWRaster(lzwMinCodeSize) - out.writeByte(lzwMinCodeSize) - var offset = 0 - while (raster.length - offset > 255) { - out.writeByte(255) - out.writeBytes(raster, offset, 255) - offset += 255 - } - out.writeByte(raster.length - offset) - out.writeBytes(raster, offset, raster.length - offset) - out.writeByte(0) - out.writeString(';') - } - var bitOutputStream = function (out) { - var _out = out - var _bitLength = 0 - var _bitBuffer = 0 - var _this = {} - _this.write = function (data, length) { - if (data >>> length != 0) { - throw 'length over' - } - while (_bitLength + length >= 8) { - _out.writeByte(255 & ((data << _bitLength) | _bitBuffer)) - length -= 8 - _bitLength - data >>>= 8 - _bitLength - _bitBuffer = 0 - _bitLength = 0 - } - _bitBuffer = (data << _bitLength) | _bitBuffer - _bitLength = _bitLength + length - } - _this.flush = function () { - if (_bitLength > 0) { - _out.writeByte(_bitBuffer) - } - } - return _this - } - var getLZWRaster = function (lzwMinCodeSize) { - var clearCode = 1 << lzwMinCodeSize - var endCode = (1 << lzwMinCodeSize) + 1 - var bitLength = lzwMinCodeSize + 1 - var table = lzwTable() - for (var i = 0; i < clearCode; i += 1) { - table.add(String.fromCharCode(i)) - } - table.add(String.fromCharCode(clearCode)) - table.add(String.fromCharCode(endCode)) - var byteOut = byteArrayOutputStream() - var bitOut = bitOutputStream(byteOut) - bitOut.write(clearCode, bitLength) - var dataIndex = 0 - var s = String.fromCharCode(_data[dataIndex]) - dataIndex += 1 - while (dataIndex < _data.length) { - var c = String.fromCharCode(_data[dataIndex]) - dataIndex += 1 - if (table.contains(s + c)) { - s = s + c - } else { - bitOut.write(table.indexOf(s), bitLength) - if (table.size() < 4095) { - if (table.size() == 1 << bitLength) { - bitLength += 1 - } - table.add(s + c) - } - s = c - } - } - bitOut.write(table.indexOf(s), bitLength) - bitOut.write(endCode, bitLength) - bitOut.flush() - return byteOut.toByteArray() - } - var lzwTable = function () { - var _map = {} - var _size = 0 - var _this = {} - _this.add = function (key) { - if (_this.contains(key)) { - throw 'dup key:' + key - } - _map[key] = _size - _size += 1 - } - _this.size = function () { - return _size - } - _this.indexOf = function (key) { - return _map[key] - } - _this.contains = function (key) { - return typeof _map[key] != 'undefined' - } - return _this - } - return _this - } - var createDataURL = function (width, height, getPixel) { - var gif = gifImage(width, height) - for (var y = 0; y < height; y += 1) { - for (var x = 0; x < width; x += 1) { - gif.setPixel(x, y, getPixel(x, y)) - } - } - var b = byteArrayOutputStream() - gif.write(b) - var base64 = base64EncodeOutputStream() - var bytes = b.toByteArray() - for (var i = 0; i < bytes.length; i += 1) { - base64.writeByte(bytes[i]) - } - base64.flush() - return 'data:image/gif;base64,' + base64 - } - return qrcode - })() - !(function () { - qrcode.stringToBytesFuncs['UTF-8'] = function (s) { - function toUTF8Array(str) { - var utf8 = [] - for (var i = 0; i < str.length; i++) { - var charcode = str.charCodeAt(i) - if (charcode < 128) utf8.push(charcode) - else if (charcode < 2048) { - utf8.push(192 | (charcode >> 6), 128 | (charcode & 63)) - } else if (charcode < 55296 || charcode >= 57344) { - utf8.push( - 224 | (charcode >> 12), - 128 | ((charcode >> 6) & 63), - 128 | (charcode & 63) - ) - } else { - i++ - charcode = 65536 + (((charcode & 1023) << 10) | (str.charCodeAt(i) & 1023)) - utf8.push( - 240 | (charcode >> 18), - 128 | ((charcode >> 12) & 63), - 128 | ((charcode >> 6) & 63), - 128 | (charcode & 63) - ) - } - } - return utf8 - } - return toUTF8Array(s) - } - })() - ;(function (factory) { - if (typeof define === 'function' && define.amd) { - define([], factory) - } else if (typeof exports === 'object') { - module.exports = factory() - } - })(function () { - return qrcode - }) - }, - {} - ], - 180: [ - function (require, module, exports) { - ;(function (process, global) { - ;(function () { - 'use strict' - var MAX_BYTES = 65536 - var MAX_UINT32 = 4294967295 - function oldBrowser() { - throw new Error( - 'Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11' - ) - } - var Buffer = require('safe-buffer').Buffer - var crypto = global.crypto || global.msCrypto - if (crypto && crypto.getRandomValues) { - module.exports = randomBytes - } else { - module.exports = oldBrowser - } - function randomBytes(size, cb) { - if (size > MAX_UINT32) throw new RangeError('requested too many random bytes') - var bytes = Buffer.allocUnsafe(size) - if (size > 0) { - if (size > MAX_BYTES) { - for (var generated = 0; generated < size; generated += MAX_BYTES) { - crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES)) - } - } else { - crypto.getRandomValues(bytes) - } - } - if (typeof cb === 'function') { - return process.nextTick(function () { - cb(null, bytes) - }) - } - return bytes - } - }.call(this)) - }.call( - this, - require('_process'), - typeof global !== 'undefined' - ? global - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : {} - )) - }, - { _process: 171, 'safe-buffer': 183 } - ], - 181: [ - function (require, module, exports) { - ;(function (process, global) { - ;(function () { - 'use strict' - function oldBrowser() { - throw new Error( - 'secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11' - ) - } - var safeBuffer = require('safe-buffer') - var randombytes = require('randombytes') - var Buffer = safeBuffer.Buffer - var kBufferMaxLength = safeBuffer.kMaxLength - var crypto = global.crypto || global.msCrypto - var kMaxUint32 = Math.pow(2, 32) - 1 - function assertOffset(offset, length) { - if (typeof offset !== 'number' || offset !== offset) { - throw new TypeError('offset must be a number') - } - if (offset > kMaxUint32 || offset < 0) { - throw new TypeError('offset must be a uint32') - } - if (offset > kBufferMaxLength || offset > length) { - throw new RangeError('offset out of range') - } - } - function assertSize(size, offset, length) { - if (typeof size !== 'number' || size !== size) { - throw new TypeError('size must be a number') - } - if (size > kMaxUint32 || size < 0) { - throw new TypeError('size must be a uint32') - } - if (size + offset > length || size > kBufferMaxLength) { - throw new RangeError('buffer too small') - } - } - if ((crypto && crypto.getRandomValues) || !process.browser) { - exports.randomFill = randomFill - exports.randomFillSync = randomFillSync - } else { - exports.randomFill = oldBrowser - exports.randomFillSync = oldBrowser - } - function randomFill(buf, offset, size, cb) { - if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) { - throw new TypeError('"buf" argument must be a Buffer or Uint8Array') - } - if (typeof offset === 'function') { - cb = offset - offset = 0 - size = buf.length - } else if (typeof size === 'function') { - cb = size - size = buf.length - offset - } else if (typeof cb !== 'function') { - throw new TypeError('"cb" argument must be a function') - } - assertOffset(offset, buf.length) - assertSize(size, offset, buf.length) - return actualFill(buf, offset, size, cb) - } - function actualFill(buf, offset, size, cb) { - if (process.browser) { - var ourBuf = buf.buffer - var uint = new Uint8Array(ourBuf, offset, size) - crypto.getRandomValues(uint) - if (cb) { - process.nextTick(function () { - cb(null, buf) - }) - return - } - return buf - } - if (cb) { - randombytes(size, function (err, bytes) { - if (err) { - return cb(err) - } - bytes.copy(buf, offset) - cb(null, buf) - }) - return - } - var bytes = randombytes(size) - bytes.copy(buf, offset) - return buf - } - function randomFillSync(buf, offset, size) { - if (typeof offset === 'undefined') { - offset = 0 - } - if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) { - throw new TypeError('"buf" argument must be a Buffer or Uint8Array') - } - assertOffset(offset, buf.length) - if (size === undefined) size = buf.length - offset - assertSize(size, offset, buf.length) - return actualFill(buf, offset, size) - } - }.call(this)) - }.call( - this, - require('_process'), - typeof global !== 'undefined' - ? global - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : {} - )) - }, - { _process: 171, randombytes: 180, 'safe-buffer': 183 } - ], - 182: [ - function (require, module, exports) { - 'use strict' - var Buffer = require('buffer').Buffer - var inherits = require('inherits') - var HashBase = require('hash-base') - var ARRAY16 = new Array(16) - var zl = [ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, - 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, - 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, - 15, 13 - ] - var zr = [ - 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, - 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, - 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, - 11 - ] - var sl = [ - 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, - 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, - 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, - 13, 14, 11, 8, 5, 6 - ] - var sr = [ - 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, - 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, - 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, - 15, 13, 11, 11 - ] - var hl = [0, 1518500249, 1859775393, 2400959708, 2840853838] - var hr = [1352829926, 1548603684, 1836072691, 2053994217, 0] - function RIPEMD160() { - HashBase.call(this, 64) - this._a = 1732584193 - this._b = 4023233417 - this._c = 2562383102 - this._d = 271733878 - this._e = 3285377520 - } - inherits(RIPEMD160, HashBase) - RIPEMD160.prototype._update = function () { - var words = ARRAY16 - for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4) - var al = this._a | 0 - var bl = this._b | 0 - var cl = this._c | 0 - var dl = this._d | 0 - var el = this._e | 0 - var ar = this._a | 0 - var br = this._b | 0 - var cr = this._c | 0 - var dr = this._d | 0 - var er = this._e | 0 - for (var i = 0; i < 80; i += 1) { - var tl - var tr - if (i < 16) { - tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i]) - tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i]) - } else if (i < 32) { - tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i]) - tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i]) - } else if (i < 48) { - tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i]) - tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i]) - } else if (i < 64) { - tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i]) - tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i]) - } else { - tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i]) - tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i]) - } - al = el - el = dl - dl = rotl(cl, 10) - cl = bl - bl = tl - ar = er - er = dr - dr = rotl(cr, 10) - cr = br - br = tr - } - var t = (this._b + cl + dr) | 0 - this._b = (this._c + dl + er) | 0 - this._c = (this._d + el + ar) | 0 - this._d = (this._e + al + br) | 0 - this._e = (this._a + bl + cr) | 0 - this._a = t - } - RIPEMD160.prototype._digest = function () { - this._block[this._blockOffset++] = 128 - if (this._blockOffset > 56) { - this._block.fill(0, this._blockOffset, 64) - this._update() - this._blockOffset = 0 - } - this._block.fill(0, this._blockOffset, 56) - this._block.writeUInt32LE(this._length[0], 56) - this._block.writeUInt32LE(this._length[1], 60) - this._update() - var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20) - buffer.writeInt32LE(this._a, 0) - buffer.writeInt32LE(this._b, 4) - buffer.writeInt32LE(this._c, 8) - buffer.writeInt32LE(this._d, 12) - buffer.writeInt32LE(this._e, 16) - return buffer - } - function rotl(x, n) { - return (x << n) | (x >>> (32 - n)) - } - function fn1(a, b, c, d, e, m, k, s) { - return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0 - } - function fn2(a, b, c, d, e, m, k, s) { - return (rotl((a + ((b & c) | (~b & d)) + m + k) | 0, s) + e) | 0 - } - function fn3(a, b, c, d, e, m, k, s) { - return (rotl((a + ((b | ~c) ^ d) + m + k) | 0, s) + e) | 0 - } - function fn4(a, b, c, d, e, m, k, s) { - return (rotl((a + ((b & d) | (c & ~d)) + m + k) | 0, s) + e) | 0 - } - function fn5(a, b, c, d, e, m, k, s) { - return (rotl((a + (b ^ (c | ~d)) + m + k) | 0, s) + e) | 0 - } - module.exports = RIPEMD160 - }, - { buffer: 93, 'hash-base': 136, inherits: 151 } - ], - 183: [ - function (require, module, exports) { - var buffer = require('buffer') - var Buffer = buffer.Buffer - function copyProps(src, dst) { - for (var key in src) { - dst[key] = src[key] - } - } - if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { - module.exports = buffer - } else { - copyProps(buffer, exports) - exports.Buffer = SafeBuffer - } - function SafeBuffer(arg, encodingOrOffset, length) { - return Buffer(arg, encodingOrOffset, length) - } - SafeBuffer.prototype = Object.create(Buffer.prototype) - copyProps(Buffer, SafeBuffer) - SafeBuffer.from = function (arg, encodingOrOffset, length) { - if (typeof arg === 'number') { - throw new TypeError('Argument must not be a number') - } - return Buffer(arg, encodingOrOffset, length) - } - SafeBuffer.alloc = function (size, fill, encoding) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - var buf = Buffer(size) - if (fill !== undefined) { - if (typeof encoding === 'string') { - buf.fill(fill, encoding) - } else { - buf.fill(fill) - } - } else { - buf.fill(0) - } - return buf - } - SafeBuffer.allocUnsafe = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - return Buffer(size) - } - SafeBuffer.allocUnsafeSlow = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - return buffer.SlowBuffer(size) - } - }, - { buffer: 93 } - ], - 184: [ - function (require, module, exports) { - var Buffer = require('safe-buffer').Buffer - function Hash(blockSize, finalSize) { - this._block = Buffer.alloc(blockSize) - this._finalSize = finalSize - this._blockSize = blockSize - this._len = 0 - } - Hash.prototype.update = function (data, enc) { - if (typeof data === 'string') { - enc = enc || 'utf8' - data = Buffer.from(data, enc) - } - var block = this._block - var blockSize = this._blockSize - var length = data.length - var accum = this._len - for (var offset = 0; offset < length; ) { - var assigned = accum % blockSize - var remainder = Math.min(length - offset, blockSize - assigned) - for (var i = 0; i < remainder; i++) { - block[assigned + i] = data[offset + i] - } - accum += remainder - offset += remainder - if (accum % blockSize === 0) { - this._update(block) - } - } - this._len += length - return this - } - Hash.prototype.digest = function (enc) { - var rem = this._len % this._blockSize - this._block[rem] = 128 - this._block.fill(0, rem + 1) - if (rem >= this._finalSize) { - this._update(this._block) - this._block.fill(0) - } - var bits = this._len * 8 - if (bits <= 4294967295) { - this._block.writeUInt32BE(bits, this._blockSize - 4) - } else { - var lowBits = (bits & 4294967295) >>> 0 - var highBits = (bits - lowBits) / 4294967296 - this._block.writeUInt32BE(highBits, this._blockSize - 8) - this._block.writeUInt32BE(lowBits, this._blockSize - 4) - } - this._update(this._block) - var hash = this._hash() - return enc ? hash.toString(enc) : hash - } - Hash.prototype._update = function () { - throw new Error('_update must be implemented by subclass') - } - module.exports = Hash - }, - { 'safe-buffer': 183 } - ], - 185: [ - function (require, module, exports) { - var exports = (module.exports = function SHA(algorithm) { - algorithm = algorithm.toLowerCase() - var Algorithm = exports[algorithm] - if (!Algorithm) - throw new Error(algorithm + ' is not supported (we accept pull requests)') - return new Algorithm() - }) - exports.sha = require('./sha') - exports.sha1 = require('./sha1') - exports.sha224 = require('./sha224') - exports.sha256 = require('./sha256') - exports.sha384 = require('./sha384') - exports.sha512 = require('./sha512') - }, - { - './sha': 186, - './sha1': 187, - './sha224': 188, - './sha256': 189, - './sha384': 190, - './sha512': 191 - } - ], - 186: [ - function (require, module, exports) { - var inherits = require('inherits') - var Hash = require('./hash') - var Buffer = require('safe-buffer').Buffer - var K = [1518500249, 1859775393, 2400959708 | 0, 3395469782 | 0] - var W = new Array(80) - function Sha() { - this.init() - this._w = W - Hash.call(this, 64, 56) - } - inherits(Sha, Hash) - Sha.prototype.init = function () { - this._a = 1732584193 - this._b = 4023233417 - this._c = 2562383102 - this._d = 271733878 - this._e = 3285377520 - return this - } - function rotl5(num) { - return (num << 5) | (num >>> 27) - } - function rotl30(num) { - return (num << 30) | (num >>> 2) - } - function ft(s, b, c, d) { - if (s === 0) return (b & c) | (~b & d) - if (s === 2) return (b & c) | (b & d) | (c & d) - return b ^ c ^ d - } - Sha.prototype._update = function (M) { - var W = this._w - var a = this._a | 0 - var b = this._b | 0 - var c = this._c | 0 - var d = this._d | 0 - var e = this._e | 0 - for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4) - for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16] - for (var j = 0; j < 80; ++j) { - var s = ~~(j / 20) - var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0 - e = d - d = c - c = rotl30(b) - b = a - a = t - } - this._a = (a + this._a) | 0 - this._b = (b + this._b) | 0 - this._c = (c + this._c) | 0 - this._d = (d + this._d) | 0 - this._e = (e + this._e) | 0 - } - Sha.prototype._hash = function () { - var H = Buffer.allocUnsafe(20) - H.writeInt32BE(this._a | 0, 0) - H.writeInt32BE(this._b | 0, 4) - H.writeInt32BE(this._c | 0, 8) - H.writeInt32BE(this._d | 0, 12) - H.writeInt32BE(this._e | 0, 16) - return H - } - module.exports = Sha - }, - { './hash': 184, inherits: 151, 'safe-buffer': 183 } - ], - 187: [ - function (require, module, exports) { - var inherits = require('inherits') - var Hash = require('./hash') - var Buffer = require('safe-buffer').Buffer - var K = [1518500249, 1859775393, 2400959708 | 0, 3395469782 | 0] - var W = new Array(80) - function Sha1() { - this.init() - this._w = W - Hash.call(this, 64, 56) - } - inherits(Sha1, Hash) - Sha1.prototype.init = function () { - this._a = 1732584193 - this._b = 4023233417 - this._c = 2562383102 - this._d = 271733878 - this._e = 3285377520 - return this - } - function rotl1(num) { - return (num << 1) | (num >>> 31) - } - function rotl5(num) { - return (num << 5) | (num >>> 27) - } - function rotl30(num) { - return (num << 30) | (num >>> 2) - } - function ft(s, b, c, d) { - if (s === 0) return (b & c) | (~b & d) - if (s === 2) return (b & c) | (b & d) | (c & d) - return b ^ c ^ d - } - Sha1.prototype._update = function (M) { - var W = this._w - var a = this._a | 0 - var b = this._b | 0 - var c = this._c | 0 - var d = this._d | 0 - var e = this._e | 0 - for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4) - for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]) - for (var j = 0; j < 80; ++j) { - var s = ~~(j / 20) - var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0 - e = d - d = c - c = rotl30(b) - b = a - a = t - } - this._a = (a + this._a) | 0 - this._b = (b + this._b) | 0 - this._c = (c + this._c) | 0 - this._d = (d + this._d) | 0 - this._e = (e + this._e) | 0 - } - Sha1.prototype._hash = function () { - var H = Buffer.allocUnsafe(20) - H.writeInt32BE(this._a | 0, 0) - H.writeInt32BE(this._b | 0, 4) - H.writeInt32BE(this._c | 0, 8) - H.writeInt32BE(this._d | 0, 12) - H.writeInt32BE(this._e | 0, 16) - return H - } - module.exports = Sha1 - }, - { './hash': 184, inherits: 151, 'safe-buffer': 183 } - ], - 188: [ - function (require, module, exports) { - var inherits = require('inherits') - var Sha256 = require('./sha256') - var Hash = require('./hash') - var Buffer = require('safe-buffer').Buffer - var W = new Array(64) - function Sha224() { - this.init() - this._w = W - Hash.call(this, 64, 56) - } - inherits(Sha224, Sha256) - Sha224.prototype.init = function () { - this._a = 3238371032 - this._b = 914150663 - this._c = 812702999 - this._d = 4144912697 - this._e = 4290775857 - this._f = 1750603025 - this._g = 1694076839 - this._h = 3204075428 - return this - } - Sha224.prototype._hash = function () { - var H = Buffer.allocUnsafe(28) - H.writeInt32BE(this._a, 0) - H.writeInt32BE(this._b, 4) - H.writeInt32BE(this._c, 8) - H.writeInt32BE(this._d, 12) - H.writeInt32BE(this._e, 16) - H.writeInt32BE(this._f, 20) - H.writeInt32BE(this._g, 24) - return H - } - module.exports = Sha224 - }, - { './hash': 184, './sha256': 189, inherits: 151, 'safe-buffer': 183 } - ], - 189: [ - function (require, module, exports) { - var inherits = require('inherits') - var Hash = require('./hash') - var Buffer = require('safe-buffer').Buffer - var K = [ - 1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, - 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, - 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, - 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, - 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, - 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, - 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, - 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, - 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, - 3329325298 - ] - var W = new Array(64) - function Sha256() { - this.init() - this._w = W - Hash.call(this, 64, 56) - } - inherits(Sha256, Hash) - Sha256.prototype.init = function () { - this._a = 1779033703 - this._b = 3144134277 - this._c = 1013904242 - this._d = 2773480762 - this._e = 1359893119 - this._f = 2600822924 - this._g = 528734635 - this._h = 1541459225 - return this - } - function ch(x, y, z) { - return z ^ (x & (y ^ z)) - } - function maj(x, y, z) { - return (x & y) | (z & (x | y)) - } - function sigma0(x) { - return ((x >>> 2) | (x << 30)) ^ ((x >>> 13) | (x << 19)) ^ ((x >>> 22) | (x << 10)) - } - function sigma1(x) { - return ((x >>> 6) | (x << 26)) ^ ((x >>> 11) | (x << 21)) ^ ((x >>> 25) | (x << 7)) - } - function gamma0(x) { - return ((x >>> 7) | (x << 25)) ^ ((x >>> 18) | (x << 14)) ^ (x >>> 3) - } - function gamma1(x) { - return ((x >>> 17) | (x << 15)) ^ ((x >>> 19) | (x << 13)) ^ (x >>> 10) - } - Sha256.prototype._update = function (M) { - var W = this._w - var a = this._a | 0 - var b = this._b | 0 - var c = this._c | 0 - var d = this._d | 0 - var e = this._e | 0 - var f = this._f | 0 - var g = this._g | 0 - var h = this._h | 0 - for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4) - for (; i < 64; ++i) - W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0 - for (var j = 0; j < 64; ++j) { - var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0 - var T2 = (sigma0(a) + maj(a, b, c)) | 0 - h = g - g = f - f = e - e = (d + T1) | 0 - d = c - c = b - b = a - a = (T1 + T2) | 0 - } - this._a = (a + this._a) | 0 - this._b = (b + this._b) | 0 - this._c = (c + this._c) | 0 - this._d = (d + this._d) | 0 - this._e = (e + this._e) | 0 - this._f = (f + this._f) | 0 - this._g = (g + this._g) | 0 - this._h = (h + this._h) | 0 - } - Sha256.prototype._hash = function () { - var H = Buffer.allocUnsafe(32) - H.writeInt32BE(this._a, 0) - H.writeInt32BE(this._b, 4) - H.writeInt32BE(this._c, 8) - H.writeInt32BE(this._d, 12) - H.writeInt32BE(this._e, 16) - H.writeInt32BE(this._f, 20) - H.writeInt32BE(this._g, 24) - H.writeInt32BE(this._h, 28) - return H - } - module.exports = Sha256 - }, - { './hash': 184, inherits: 151, 'safe-buffer': 183 } - ], - 190: [ - function (require, module, exports) { - var inherits = require('inherits') - var SHA512 = require('./sha512') - var Hash = require('./hash') - var Buffer = require('safe-buffer').Buffer - var W = new Array(160) - function Sha384() { - this.init() - this._w = W - Hash.call(this, 128, 112) - } - inherits(Sha384, SHA512) - Sha384.prototype.init = function () { - this._ah = 3418070365 - this._bh = 1654270250 - this._ch = 2438529370 - this._dh = 355462360 - this._eh = 1731405415 - this._fh = 2394180231 - this._gh = 3675008525 - this._hh = 1203062813 - this._al = 3238371032 - this._bl = 914150663 - this._cl = 812702999 - this._dl = 4144912697 - this._el = 4290775857 - this._fl = 1750603025 - this._gl = 1694076839 - this._hl = 3204075428 - return this - } - Sha384.prototype._hash = function () { - var H = Buffer.allocUnsafe(48) - function writeInt64BE(h, l, offset) { - H.writeInt32BE(h, offset) - H.writeInt32BE(l, offset + 4) - } - writeInt64BE(this._ah, this._al, 0) - writeInt64BE(this._bh, this._bl, 8) - writeInt64BE(this._ch, this._cl, 16) - writeInt64BE(this._dh, this._dl, 24) - writeInt64BE(this._eh, this._el, 32) - writeInt64BE(this._fh, this._fl, 40) - return H - } - module.exports = Sha384 - }, - { './hash': 184, './sha512': 191, inherits: 151, 'safe-buffer': 183 } - ], - 191: [ - function (require, module, exports) { - var inherits = require('inherits') - var Hash = require('./hash') - var Buffer = require('safe-buffer').Buffer - var K = [ - 1116352408, 3609767458, 1899447441, 602891725, 3049323471, 3964484399, 3921009573, - 2173295548, 961987163, 4081628472, 1508970993, 3053834265, 2453635748, 2937671579, - 2870763221, 3664609560, 3624381080, 2734883394, 310598401, 1164996542, 607225278, - 1323610764, 1426881987, 3590304994, 1925078388, 4068182383, 2162078206, 991336113, - 2614888103, 633803317, 3248222580, 3479774868, 3835390401, 2666613458, 4022224774, - 944711139, 264347078, 2341262773, 604807628, 2007800933, 770255983, 1495990901, - 1249150122, 1856431235, 1555081692, 3175218132, 1996064986, 2198950837, 2554220882, - 3999719339, 2821834349, 766784016, 2952996808, 2566594879, 3210313671, 3203337956, - 3336571891, 1034457026, 3584528711, 2466948901, 113926993, 3758326383, 338241895, - 168717936, 666307205, 1188179964, 773529912, 1546045734, 1294757372, 1522805485, - 1396182291, 2643833823, 1695183700, 2343527390, 1986661051, 1014477480, 2177026350, - 1206759142, 2456956037, 344077627, 2730485921, 1290863460, 2820302411, 3158454273, - 3259730800, 3505952657, 3345764771, 106217008, 3516065817, 3606008344, 3600352804, - 1432725776, 4094571909, 1467031594, 275423344, 851169720, 430227734, 3100823752, - 506948616, 1363258195, 659060556, 3750685593, 883997877, 3785050280, 958139571, - 3318307427, 1322822218, 3812723403, 1537002063, 2003034995, 1747873779, 3602036899, - 1955562222, 1575990012, 2024104815, 1125592928, 2227730452, 2716904306, 2361852424, - 442776044, 2428436474, 593698344, 2756734187, 3733110249, 3204031479, 2999351573, - 3329325298, 3815920427, 3391569614, 3928383900, 3515267271, 566280711, 3940187606, - 3454069534, 4118630271, 4000239992, 116418474, 1914138554, 174292421, 2731055270, - 289380356, 3203993006, 460393269, 320620315, 685471733, 587496836, 852142971, - 1086792851, 1017036298, 365543100, 1126000580, 2618297676, 1288033470, 3409855158, - 1501505948, 4234509866, 1607167915, 987167468, 1816402316, 1246189591 - ] - var W = new Array(160) - function Sha512() { - this.init() - this._w = W - Hash.call(this, 128, 112) - } - inherits(Sha512, Hash) - Sha512.prototype.init = function () { - this._ah = 1779033703 - this._bh = 3144134277 - this._ch = 1013904242 - this._dh = 2773480762 - this._eh = 1359893119 - this._fh = 2600822924 - this._gh = 528734635 - this._hh = 1541459225 - this._al = 4089235720 - this._bl = 2227873595 - this._cl = 4271175723 - this._dl = 1595750129 - this._el = 2917565137 - this._fl = 725511199 - this._gl = 4215389547 - this._hl = 327033209 - return this - } - function Ch(x, y, z) { - return z ^ (x & (y ^ z)) - } - function maj(x, y, z) { - return (x & y) | (z & (x | y)) - } - function sigma0(x, xl) { - return ((x >>> 28) | (xl << 4)) ^ ((xl >>> 2) | (x << 30)) ^ ((xl >>> 7) | (x << 25)) - } - function sigma1(x, xl) { - return ((x >>> 14) | (xl << 18)) ^ ((x >>> 18) | (xl << 14)) ^ ((xl >>> 9) | (x << 23)) - } - function Gamma0(x, xl) { - return ((x >>> 1) | (xl << 31)) ^ ((x >>> 8) | (xl << 24)) ^ (x >>> 7) - } - function Gamma0l(x, xl) { - return ((x >>> 1) | (xl << 31)) ^ ((x >>> 8) | (xl << 24)) ^ ((x >>> 7) | (xl << 25)) - } - function Gamma1(x, xl) { - return ((x >>> 19) | (xl << 13)) ^ ((xl >>> 29) | (x << 3)) ^ (x >>> 6) - } - function Gamma1l(x, xl) { - return ((x >>> 19) | (xl << 13)) ^ ((xl >>> 29) | (x << 3)) ^ ((x >>> 6) | (xl << 26)) - } - function getCarry(a, b) { - return a >>> 0 < b >>> 0 ? 1 : 0 - } - Sha512.prototype._update = function (M) { - var W = this._w - var ah = this._ah | 0 - var bh = this._bh | 0 - var ch = this._ch | 0 - var dh = this._dh | 0 - var eh = this._eh | 0 - var fh = this._fh | 0 - var gh = this._gh | 0 - var hh = this._hh | 0 - var al = this._al | 0 - var bl = this._bl | 0 - var cl = this._cl | 0 - var dl = this._dl | 0 - var el = this._el | 0 - var fl = this._fl | 0 - var gl = this._gl | 0 - var hl = this._hl | 0 - for (var i = 0; i < 32; i += 2) { - W[i] = M.readInt32BE(i * 4) - W[i + 1] = M.readInt32BE(i * 4 + 4) - } - for (; i < 160; i += 2) { - var xh = W[i - 15 * 2] - var xl = W[i - 15 * 2 + 1] - var gamma0 = Gamma0(xh, xl) - var gamma0l = Gamma0l(xl, xh) - xh = W[i - 2 * 2] - xl = W[i - 2 * 2 + 1] - var gamma1 = Gamma1(xh, xl) - var gamma1l = Gamma1l(xl, xh) - var Wi7h = W[i - 7 * 2] - var Wi7l = W[i - 7 * 2 + 1] - var Wi16h = W[i - 16 * 2] - var Wi16l = W[i - 16 * 2 + 1] - var Wil = (gamma0l + Wi7l) | 0 - var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0 - Wil = (Wil + gamma1l) | 0 - Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0 - Wil = (Wil + Wi16l) | 0 - Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0 - W[i] = Wih - W[i + 1] = Wil - } - for (var j = 0; j < 160; j += 2) { - Wih = W[j] - Wil = W[j + 1] - var majh = maj(ah, bh, ch) - var majl = maj(al, bl, cl) - var sigma0h = sigma0(ah, al) - var sigma0l = sigma0(al, ah) - var sigma1h = sigma1(eh, el) - var sigma1l = sigma1(el, eh) - var Kih = K[j] - var Kil = K[j + 1] - var chh = Ch(eh, fh, gh) - var chl = Ch(el, fl, gl) - var t1l = (hl + sigma1l) | 0 - var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0 - t1l = (t1l + chl) | 0 - t1h = (t1h + chh + getCarry(t1l, chl)) | 0 - t1l = (t1l + Kil) | 0 - t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0 - t1l = (t1l + Wil) | 0 - t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0 - var t2l = (sigma0l + majl) | 0 - var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0 - hh = gh - hl = gl - gh = fh - gl = fl - fh = eh - fl = el - el = (dl + t1l) | 0 - eh = (dh + t1h + getCarry(el, dl)) | 0 - dh = ch - dl = cl - ch = bh - cl = bl - bh = ah - bl = al - al = (t1l + t2l) | 0 - ah = (t1h + t2h + getCarry(al, t1l)) | 0 - } - this._al = (this._al + al) | 0 - this._bl = (this._bl + bl) | 0 - this._cl = (this._cl + cl) | 0 - this._dl = (this._dl + dl) | 0 - this._el = (this._el + el) | 0 - this._fl = (this._fl + fl) | 0 - this._gl = (this._gl + gl) | 0 - this._hl = (this._hl + hl) | 0 - this._ah = (this._ah + ah + getCarry(this._al, al)) | 0 - this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0 - this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0 - this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0 - this._eh = (this._eh + eh + getCarry(this._el, el)) | 0 - this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0 - this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0 - this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0 - } - Sha512.prototype._hash = function () { - var H = Buffer.allocUnsafe(64) - function writeInt64BE(h, l, offset) { - H.writeInt32BE(h, offset) - H.writeInt32BE(l, offset + 4) - } - writeInt64BE(this._ah, this._al, 0) - writeInt64BE(this._bh, this._bl, 8) - writeInt64BE(this._ch, this._cl, 16) - writeInt64BE(this._dh, this._dl, 24) - writeInt64BE(this._eh, this._el, 32) - writeInt64BE(this._fh, this._fl, 40) - writeInt64BE(this._gh, this._gl, 48) - writeInt64BE(this._hh, this._hl, 56) - return H - } - module.exports = Sha512 - }, - { './hash': 184, inherits: 151, 'safe-buffer': 183 } - ], - 192: [ - function (require, module, exports) { - module.exports = Stream - var EE = require('events').EventEmitter - var inherits = require('inherits') - inherits(Stream, EE) - Stream.Readable = require('readable-stream/lib/_stream_readable.js') - Stream.Writable = require('readable-stream/lib/_stream_writable.js') - Stream.Duplex = require('readable-stream/lib/_stream_duplex.js') - Stream.Transform = require('readable-stream/lib/_stream_transform.js') - Stream.PassThrough = require('readable-stream/lib/_stream_passthrough.js') - Stream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js') - Stream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js') - Stream.Stream = Stream - function Stream() { - EE.call(this) - } - Stream.prototype.pipe = function (dest, options) { - var source = this - function ondata(chunk) { - if (dest.writable) { - if (false === dest.write(chunk) && source.pause) { - source.pause() - } - } - } - source.on('data', ondata) - function ondrain() { - if (source.readable && source.resume) { - source.resume() - } - } - dest.on('drain', ondrain) - if (!dest._isStdio && (!options || options.end !== false)) { - source.on('end', onend) - source.on('close', onclose) - } - var didOnEnd = false - function onend() { - if (didOnEnd) return - didOnEnd = true - dest.end() - } - function onclose() { - if (didOnEnd) return - didOnEnd = true - if (typeof dest.destroy === 'function') dest.destroy() - } - function onerror(er) { - cleanup() - if (EE.listenerCount(this, 'error') === 0) { - throw er - } - } - source.on('error', onerror) - dest.on('error', onerror) - function cleanup() { - source.removeListener('data', ondata) - dest.removeListener('drain', ondrain) - source.removeListener('end', onend) - source.removeListener('close', onclose) - source.removeListener('error', onerror) - dest.removeListener('error', onerror) - source.removeListener('end', cleanup) - source.removeListener('close', cleanup) - dest.removeListener('close', cleanup) - } - source.on('end', cleanup) - source.on('close', cleanup) - dest.on('close', cleanup) - dest.emit('pipe', source) - return dest - } - }, - { - events: 134, - inherits: 151, - 'readable-stream/lib/_stream_duplex.js': 194, - 'readable-stream/lib/_stream_passthrough.js': 195, - 'readable-stream/lib/_stream_readable.js': 196, - 'readable-stream/lib/_stream_transform.js': 197, - 'readable-stream/lib/_stream_writable.js': 198, - 'readable-stream/lib/internal/streams/end-of-stream.js': 202, - 'readable-stream/lib/internal/streams/pipeline.js': 204 - } - ], - 193: [ - function (require, module, exports) { - arguments[4][78][0].apply(exports, arguments) - }, - { dup: 78 } - ], - 194: [ - function (require, module, exports) { - arguments[4][79][0].apply(exports, arguments) - }, - { - './_stream_readable': 196, - './_stream_writable': 198, - _process: 171, - dup: 79, - inherits: 151 - } - ], - 195: [ - function (require, module, exports) { - arguments[4][80][0].apply(exports, arguments) - }, - { './_stream_transform': 197, dup: 80, inherits: 151 } - ], - 196: [ - function (require, module, exports) { - arguments[4][81][0].apply(exports, arguments) - }, - { - '../errors': 193, - './_stream_duplex': 194, - './internal/streams/async_iterator': 199, - './internal/streams/buffer_list': 200, - './internal/streams/destroy': 201, - './internal/streams/from': 203, - './internal/streams/state': 205, - './internal/streams/stream': 206, - _process: 171, - buffer: 93, - dup: 81, - events: 134, - inherits: 151, - 'string_decoder/': 207, - util: 49 - } - ], - 197: [ - function (require, module, exports) { - arguments[4][82][0].apply(exports, arguments) - }, - { '../errors': 193, './_stream_duplex': 194, dup: 82, inherits: 151 } - ], - 198: [ - function (require, module, exports) { - arguments[4][83][0].apply(exports, arguments) - }, - { - '../errors': 193, - './_stream_duplex': 194, - './internal/streams/destroy': 201, - './internal/streams/state': 205, - './internal/streams/stream': 206, - _process: 171, - buffer: 93, - dup: 83, - inherits: 151, - 'util-deprecate': 209 - } - ], - 199: [ - function (require, module, exports) { - arguments[4][84][0].apply(exports, arguments) - }, - { './end-of-stream': 202, _process: 171, dup: 84 } - ], - 200: [ - function (require, module, exports) { - arguments[4][85][0].apply(exports, arguments) - }, - { buffer: 93, dup: 85, util: 49 } - ], - 201: [ - function (require, module, exports) { - arguments[4][86][0].apply(exports, arguments) - }, - { _process: 171, dup: 86 } - ], - 202: [ - function (require, module, exports) { - arguments[4][87][0].apply(exports, arguments) - }, - { '../../../errors': 193, dup: 87 } - ], - 203: [ - function (require, module, exports) { - arguments[4][88][0].apply(exports, arguments) - }, - { dup: 88 } - ], - 204: [ - function (require, module, exports) { - arguments[4][89][0].apply(exports, arguments) - }, - { '../../../errors': 193, './end-of-stream': 202, dup: 89 } - ], - 205: [ - function (require, module, exports) { - arguments[4][90][0].apply(exports, arguments) - }, - { '../../../errors': 193, dup: 90 } - ], - 206: [ - function (require, module, exports) { - arguments[4][91][0].apply(exports, arguments) - }, - { dup: 91, events: 134 } - ], - 207: [ - function (require, module, exports) { - 'use strict' - var Buffer = require('safe-buffer').Buffer - var isEncoding = - Buffer.isEncoding || - function (encoding) { - encoding = '' + encoding - switch (encoding && encoding.toLowerCase()) { - case 'hex': - case 'utf8': - case 'utf-8': - case 'ascii': - case 'binary': - case 'base64': - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - case 'raw': - return true - default: - return false - } - } - function _normalizeEncoding(enc) { - if (!enc) return 'utf8' - var retried - while (true) { - switch (enc) { - case 'utf8': - case 'utf-8': - return 'utf8' - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return 'utf16le' - case 'latin1': - case 'binary': - return 'latin1' - case 'base64': - case 'ascii': - case 'hex': - return enc - default: - if (retried) return - enc = ('' + enc).toLowerCase() - retried = true - } - } - } - function normalizeEncoding(enc) { - var nenc = _normalizeEncoding(enc) - if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) - throw new Error('Unknown encoding: ' + enc) - return nenc || enc - } - exports.StringDecoder = StringDecoder - function StringDecoder(encoding) { - this.encoding = normalizeEncoding(encoding) - var nb - switch (this.encoding) { - case 'utf16le': - this.text = utf16Text - this.end = utf16End - nb = 4 - break - case 'utf8': - this.fillLast = utf8FillLast - nb = 4 - break - case 'base64': - this.text = base64Text - this.end = base64End - nb = 3 - break - default: - this.write = simpleWrite - this.end = simpleEnd - return - } - this.lastNeed = 0 - this.lastTotal = 0 - this.lastChar = Buffer.allocUnsafe(nb) - } - StringDecoder.prototype.write = function (buf) { - if (buf.length === 0) return '' - var r - var i - if (this.lastNeed) { - r = this.fillLast(buf) - if (r === undefined) return '' - i = this.lastNeed - this.lastNeed = 0 - } else { - i = 0 - } - if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i) - return r || '' - } - StringDecoder.prototype.end = utf8End - StringDecoder.prototype.text = utf8Text - StringDecoder.prototype.fillLast = function (buf) { - if (this.lastNeed <= buf.length) { - buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed) - return this.lastChar.toString(this.encoding, 0, this.lastTotal) - } - buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length) - this.lastNeed -= buf.length - } - function utf8CheckByte(byte) { - if (byte <= 127) return 0 - else if (byte >> 5 === 6) return 2 - else if (byte >> 4 === 14) return 3 - else if (byte >> 3 === 30) return 4 - return byte >> 6 === 2 ? -1 : -2 - } - function utf8CheckIncomplete(self, buf, i) { - var j = buf.length - 1 - if (j < i) return 0 - var nb = utf8CheckByte(buf[j]) - if (nb >= 0) { - if (nb > 0) self.lastNeed = nb - 1 - return nb - } - if (--j < i || nb === -2) return 0 - nb = utf8CheckByte(buf[j]) - if (nb >= 0) { - if (nb > 0) self.lastNeed = nb - 2 - return nb - } - if (--j < i || nb === -2) return 0 - nb = utf8CheckByte(buf[j]) - if (nb >= 0) { - if (nb > 0) { - if (nb === 2) nb = 0 - else self.lastNeed = nb - 3 - } - return nb - } - return 0 - } - function utf8CheckExtraBytes(self, buf, p) { - if ((buf[0] & 192) !== 128) { - self.lastNeed = 0 - return '�' - } - if (self.lastNeed > 1 && buf.length > 1) { - if ((buf[1] & 192) !== 128) { - self.lastNeed = 1 - return '�' - } - if (self.lastNeed > 2 && buf.length > 2) { - if ((buf[2] & 192) !== 128) { - self.lastNeed = 2 - return '�' - } - } - } - } - function utf8FillLast(buf) { - var p = this.lastTotal - this.lastNeed - var r = utf8CheckExtraBytes(this, buf, p) - if (r !== undefined) return r - if (this.lastNeed <= buf.length) { - buf.copy(this.lastChar, p, 0, this.lastNeed) - return this.lastChar.toString(this.encoding, 0, this.lastTotal) - } - buf.copy(this.lastChar, p, 0, buf.length) - this.lastNeed -= buf.length - } - function utf8Text(buf, i) { - var total = utf8CheckIncomplete(this, buf, i) - if (!this.lastNeed) return buf.toString('utf8', i) - this.lastTotal = total - var end = buf.length - (total - this.lastNeed) - buf.copy(this.lastChar, 0, end) - return buf.toString('utf8', i, end) - } - function utf8End(buf) { - var r = buf && buf.length ? this.write(buf) : '' - if (this.lastNeed) return r + '�' - return r - } - function utf16Text(buf, i) { - if ((buf.length - i) % 2 === 0) { - var r = buf.toString('utf16le', i) - if (r) { - var c = r.charCodeAt(r.length - 1) - if (c >= 55296 && c <= 56319) { - this.lastNeed = 2 - this.lastTotal = 4 - this.lastChar[0] = buf[buf.length - 2] - this.lastChar[1] = buf[buf.length - 1] - return r.slice(0, -1) - } - } - return r - } - this.lastNeed = 1 - this.lastTotal = 2 - this.lastChar[0] = buf[buf.length - 1] - return buf.toString('utf16le', i, buf.length - 1) - } - function utf16End(buf) { - var r = buf && buf.length ? this.write(buf) : '' - if (this.lastNeed) { - var end = this.lastTotal - this.lastNeed - return r + this.lastChar.toString('utf16le', 0, end) - } - return r - } - function base64Text(buf, i) { - var n = (buf.length - i) % 3 - if (n === 0) return buf.toString('base64', i) - this.lastNeed = 3 - n - this.lastTotal = 3 - if (n === 1) { - this.lastChar[0] = buf[buf.length - 1] - } else { - this.lastChar[0] = buf[buf.length - 2] - this.lastChar[1] = buf[buf.length - 1] - } - return buf.toString('base64', i, buf.length - n) - } - function base64End(buf) { - var r = buf && buf.length ? this.write(buf) : '' - if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed) - return r - } - function simpleWrite(buf) { - return buf.toString(this.encoding) - } - function simpleEnd(buf) { - return buf && buf.length ? this.write(buf) : '' - } - }, - { 'safe-buffer': 208 } - ], - 208: [ - function (require, module, exports) { - var buffer = require('buffer') - var Buffer = buffer.Buffer - function copyProps(src, dst) { - for (var key in src) { - dst[key] = src[key] - } - } - if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { - module.exports = buffer - } else { - copyProps(buffer, exports) - exports.Buffer = SafeBuffer - } - function SafeBuffer(arg, encodingOrOffset, length) { - return Buffer(arg, encodingOrOffset, length) - } - copyProps(Buffer, SafeBuffer) - SafeBuffer.from = function (arg, encodingOrOffset, length) { - if (typeof arg === 'number') { - throw new TypeError('Argument must not be a number') - } - return Buffer(arg, encodingOrOffset, length) - } - SafeBuffer.alloc = function (size, fill, encoding) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - var buf = Buffer(size) - if (fill !== undefined) { - if (typeof encoding === 'string') { - buf.fill(fill, encoding) - } else { - buf.fill(fill) - } - } else { - buf.fill(0) - } - return buf - } - SafeBuffer.allocUnsafe = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - return Buffer(size) - } - SafeBuffer.allocUnsafeSlow = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - return buffer.SlowBuffer(size) - } - }, - { buffer: 93 } - ], - 209: [ - function (require, module, exports) { - ;(function (global) { - ;(function () { - module.exports = deprecate - function deprecate(fn, msg) { - if (config('noDeprecation')) { - return fn - } - var warned = false - function deprecated() { - if (!warned) { - if (config('throwDeprecation')) { - throw new Error(msg) - } else if (config('traceDeprecation')) { - console.trace(msg) - } else { - console.warn(msg) - } - warned = true - } - return fn.apply(this, arguments) - } - return deprecated - } - function config(name) { - try { - if (!global.localStorage) return false - } catch (_) { - return false - } - var val = global.localStorage[name] - if (null == val) return false - return String(val).toLowerCase() === 'true' - } - }.call(this)) - }.call( - this, - typeof global !== 'undefined' - ? global - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : {} - )) - }, - {} - ], - 210: [ - function (require, module, exports) { - var indexOf = function (xs, item) { - if (xs.indexOf) return xs.indexOf(item) - else - for (var i = 0; i < xs.length; i++) { - if (xs[i] === item) return i - } - return -1 - } - var Object_keys = function (obj) { - if (Object.keys) return Object.keys(obj) - else { - var res = [] - for (var key in obj) res.push(key) - return res - } - } - var forEach = function (xs, fn) { - if (xs.forEach) return xs.forEach(fn) - else - for (var i = 0; i < xs.length; i++) { - fn(xs[i], i, xs) - } - } - var defineProp = (function () { - try { - Object.defineProperty({}, '_', {}) - return function (obj, name, value) { - Object.defineProperty(obj, name, { - writable: true, - enumerable: false, - configurable: true, - value: value - }) - } - } catch (e) { - return function (obj, name, value) { - obj[name] = value - } - } - })() - var globals = [ - 'Array', - 'Boolean', - 'Date', - 'Error', - 'EvalError', - 'Function', - 'Infinity', - 'JSON', - 'Math', - 'NaN', - 'Number', - 'Object', - 'RangeError', - 'ReferenceError', - 'RegExp', - 'String', - 'SyntaxError', - 'TypeError', - 'URIError', - 'decodeURI', - 'decodeURIComponent', - 'encodeURI', - 'encodeURIComponent', - 'escape', - 'eval', - 'isFinite', - 'isNaN', - 'parseFloat', - 'parseInt', - 'undefined', - 'unescape' - ] - function Context() {} - Context.prototype = {} - var Script = (exports.Script = function NodeScript(code) { - if (!(this instanceof Script)) return new Script(code) - this.code = code - }) - Script.prototype.runInContext = function (context) { - if (!(context instanceof Context)) { - throw new TypeError("needs a 'context' argument.") - } - var iframe = document.createElement('iframe') - if (!iframe.style) iframe.style = {} - iframe.style.display = 'none' - document.body.appendChild(iframe) - var win = iframe.contentWindow - var wEval = win.eval, - wExecScript = win.execScript - if (!wEval && wExecScript) { - wExecScript.call(win, 'null') - wEval = win.eval - } - forEach(Object_keys(context), function (key) { - win[key] = context[key] - }) - forEach(globals, function (key) { - if (context[key]) { - win[key] = context[key] - } - }) - var winKeys = Object_keys(win) - var res = wEval.call(win, this.code) - forEach(Object_keys(win), function (key) { - if (key in context || indexOf(winKeys, key) === -1) { - context[key] = win[key] - } - }) - forEach(globals, function (key) { - if (!(key in context)) { - defineProp(context, key, win[key]) - } - }) - document.body.removeChild(iframe) - return res - } - Script.prototype.runInThisContext = function () { - return eval(this.code) - } - Script.prototype.runInNewContext = function (context) { - var ctx = Script.createContext(context) - var res = this.runInContext(ctx) - if (context) { - forEach(Object_keys(ctx), function (key) { - context[key] = ctx[key] - }) - } - return res - } - forEach(Object_keys(Script.prototype), function (name) { - exports[name] = Script[name] = function (code) { - var s = Script(code) - return s[name].apply(s, [].slice.call(arguments, 1)) - } - }) - exports.isContext = function (context) { - return context instanceof Context - } - exports.createScript = function (code) { - return exports.Script(code) - } - exports.createContext = Script.createContext = function (context) { - var copy = new Context() - if (typeof context === 'object') { - forEach(Object_keys(context), function (key) { - copy[key] = context[key] - }) - } - return copy - } - }, - {} - ], - 211: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.clearMockWindowState = exports.windowRef = void 0 - var cbs = [ - function (_) { - return undefined - } - ] - var windowRef = { - postMessage: function (message, _target) { - console.log('GOT MOCK POST MESSAGE', message) - cbs.forEach(function (callbackElement) { - callbackElement({ data: message }) - }) - }, - addEventListener: function (_name, eventCallback) { - cbs.push(eventCallback) - }, - removeEventListener: function (_name, eventCallback) { - cbs.splice( - cbs.indexOf(function (element) { - return element === eventCallback - }), - 1 - ) - }, - location: { origin: '*' } - } - exports.windowRef = windowRef - try { - if (typeof window !== 'undefined') { - exports.windowRef = windowRef = window - } - } catch (windowError) { - console.log('not defined: ' + windowError) - } - var clearMockWindowState = function () { - cbs.length = 0 - } - exports.clearMockWindowState = clearMockWindowState - }, - {} - ], - 212: [ - function (require, module, exports) { - ;(function (Buffer) { - ;(function () { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.Serializer = void 0 - var bs58check = require('bs58check') - var Serializer = (function () { - function Serializer() {} - Serializer.prototype.serialize = function (message) { - return __awaiter(this, void 0, void 0, function () { - var str - return __generator(this, function (_a) { - str = JSON.stringify(message) - return [2, bs58check.encode(Buffer.from(str))] - }) - }) - } - Serializer.prototype.deserialize = function (encoded) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - if (typeof encoded !== 'string') { - throw new Error('Encoded payload needs to be a string') - } - return [2, JSON.parse(bs58check.decode(encoded).toString())] - }) - }) - } - return Serializer - })() - exports.Serializer = Serializer - }.call(this)) - }.call(this, require('buffer').Buffer)) - }, - { bs58check: 96, buffer: 93 } - ], - 213: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.BeaconClient = void 0 - var beacon_utils_1 = require('@airgap/beacon-utils') - var beacon_utils_2 = require('@airgap/beacon-utils') - var beacon_types_1 = require('@airgap/beacon-types') - var constants_1 = require('../../constants') - var MockWindow_1 = require('../../MockWindow') - var BeaconClient = (function () { - function BeaconClient(config) { - this._beaconId = new beacon_utils_1.ExposedPromise() - this._keyPair = new beacon_utils_1.ExposedPromise() - if (!config.name) { - throw new Error('Name not set') - } - if (!config.storage) { - throw new Error('Storage not set') - } - this.name = config.name - this.iconUrl = config.iconUrl - this.appUrl = config.appUrl - this.storage = config.storage - if (MockWindow_1.windowRef.beaconCreatedClientInstance) { - console.warn( - '[BEACON] It looks like you created multiple Beacon SDK Client instances. This can lead to problems. Only create one instance and re-use it everywhere.' - ) - } else { - MockWindow_1.windowRef.beaconCreatedClientInstance = true - } - this.initSDK().catch(console.error) - } - Object.defineProperty(BeaconClient.prototype, 'beaconId', { - get: function () { - return this._beaconId.promise - }, - enumerable: false, - configurable: true - }) - Object.defineProperty(BeaconClient.prototype, 'keyPair', { - get: function () { - return this._keyPair.promise - }, - enumerable: false, - configurable: true - }) - BeaconClient.prototype.destroy = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.removeBeaconEntriesFromStorage()] - case 1: - _a.sent() - MockWindow_1.windowRef.beaconCreatedClientInstance = false - return [2] - } - }) - }) - } - BeaconClient.prototype.initSDK = function () { - return __awaiter(this, void 0, void 0, function () { - var _this = this - return __generator(this, function (_a) { - this.storage - .set(beacon_types_1.StorageKey.BEACON_SDK_VERSION, constants_1.SDK_VERSION) - .catch(console.error) - this.loadOrCreateBeaconSecret().catch(console.error) - return [ - 2, - this.keyPair.then(function (keyPair) { - _this._beaconId.resolve((0, beacon_utils_2.toHex)(keyPair.publicKey)) - }) - ] - }) - }) - } - BeaconClient.prototype.removeBeaconEntriesFromStorage = function () { - return __awaiter(this, void 0, void 0, function () { - var allKeys - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - allKeys = Object.values(beacon_types_1.StorageKey) - return [ - 4, - Promise.all( - allKeys.map(function (key) { - return _this.storage.delete(key) - }) - ) - ] - case 1: - _a.sent() - return [2] - } - }) - }) - } - BeaconClient.prototype.loadOrCreateBeaconSecret = function () { - return __awaiter(this, void 0, void 0, function () { - var storageValue, _a, _b, key, _c, _d - return __generator(this, function (_e) { - switch (_e.label) { - case 0: - return [4, this.storage.get(beacon_types_1.StorageKey.BEACON_SDK_SECRET_SEED)] - case 1: - storageValue = _e.sent() - if (!(storageValue && typeof storageValue === 'string')) return [3, 3] - _b = (_a = this._keyPair).resolve - return [4, (0, beacon_utils_2.getKeypairFromSeed)(storageValue)] - case 2: - _b.apply(_a, [_e.sent()]) - return [3, 7] - case 3: - return [4, (0, beacon_utils_2.generateGUID)()] - case 4: - key = _e.sent() - return [ - 4, - this.storage.set(beacon_types_1.StorageKey.BEACON_SDK_SECRET_SEED, key) - ] - case 5: - _e.sent() - _d = (_c = this._keyPair).resolve - return [4, (0, beacon_utils_2.getKeypairFromSeed)(key)] - case 6: - _d.apply(_c, [_e.sent()]) - _e.label = 7 - case 7: - return [2] - } - }) - }) - } - return BeaconClient - })() - exports.BeaconClient = BeaconClient - }, - { - '../../MockWindow': 211, - '../../constants': 215, - '@airgap/beacon-types': 287, - '@airgap/beacon-utils': 302 - } - ], - 214: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.Client = void 0 - var beacon_utils_1 = require('@airgap/beacon-utils') - var beacon_types_1 = require('@airgap/beacon-types') - var __1 = require('../..') - var BeaconClient_1 = require('../beacon-client/BeaconClient') - var AccountManager_1 = require('../../managers/AccountManager') - var constants_1 = require('../../constants') - var get_sender_id_1 = require('../../utils/get-sender-id') - var Logger_1 = require('../../utils/Logger') - var logger = new Logger_1.Logger('Client') - var Client = (function (_super) { - __extends(Client, _super) - function Client(config) { - var _a - var _this = _super.call(this, config) || this - _this.rateLimit = 2 - _this.rateLimitWindowInSeconds = 5 - _this.requestCounter = [] - _this._transport = new beacon_utils_1.ExposedPromise() - _this.accountManager = new AccountManager_1.AccountManager(config.storage) - _this.matrixNodes = (_a = config.matrixNodes) !== null && _a !== void 0 ? _a : [] - _this.handleResponse = function (message, connectionInfo) { - throw new Error( - 'not overwritten' + - JSON.stringify(message) + - ' - ' + - JSON.stringify(connectionInfo) - ) - } - return _this - } - Object.defineProperty(Client.prototype, 'transport', { - get: function () { - return this._transport.promise - }, - enumerable: false, - configurable: true - }) - Object.defineProperty(Client.prototype, 'connectionStatus', { - get: function () { - var _a, _b - return (_b = - (_a = this._transport.promiseResult) === null || _a === void 0 - ? void 0 - : _a.connectionStatus) !== null && _b !== void 0 - ? _b - : beacon_types_1.TransportStatus.NOT_CONNECTED - }, - enumerable: false, - configurable: true - }) - Object.defineProperty(Client.prototype, 'ready', { - get: function () { - return this.transport.then(function () { - return undefined - }) - }, - enumerable: false, - configurable: true - }) - Client.prototype.getAccounts = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.accountManager.getAccounts()] - }) - }) - } - Client.prototype.getAccount = function (accountIdentifier) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.accountManager.getAccount(accountIdentifier)] - }) - }) - } - Client.prototype.removeAccount = function (accountIdentifier) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.accountManager.removeAccount(accountIdentifier)] - }) - }) - } - Client.prototype.removeAllAccounts = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.accountManager.removeAllAccounts()] - }) - }) - } - Client.prototype.addRequestAndCheckIfRateLimited = function () { - return __awaiter(this, void 0, void 0, function () { - var now - var _this = this - return __generator(this, function (_a) { - now = new Date().getTime() - this.requestCounter = this.requestCounter.filter(function (date) { - return date + _this.rateLimitWindowInSeconds * 1e3 > now - }) - this.requestCounter.push(now) - return [2, this.requestCounter.length > this.rateLimit] - }) - }) - } - Client.prototype.init = function (transport) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if ( - !(this._transport.status === beacon_utils_1.ExposedPromiseStatus.RESOLVED) - ) - return [3, 2] - return [4, this.transport] - case 1: - return [2, _a.sent().type] - case 2: - return [4, this.setTransport(transport)] - case 3: - _a.sent() - return [2, transport.type] - } - }) - }) - } - Client.prototype.getOwnAppMetadata = function () { - return __awaiter(this, void 0, void 0, function () { - var _a - var _b - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = {} - _a = get_sender_id_1.getSenderId - return [4, this.beaconId] - case 1: - return [4, _a.apply(void 0, [_c.sent()])] - case 2: - return [ - 2, - ((_b.senderId = _c.sent()), - (_b.name = this.name), - (_b.icon = this.iconUrl), - _b) - ] - } - }) - }) - } - Client.prototype.getPeers = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.transport] - case 1: - return [2, _a.sent().getPeers()] - } - }) - }) - } - Client.prototype.addPeer = function (peer) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.transport] - case 1: - return [2, _a.sent().addPeer(peer)] - } - }) - }) - } - Client.prototype.destroy = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if ( - !(this._transport.status === beacon_utils_1.ExposedPromiseStatus.RESOLVED) - ) - return [3, 3] - return [4, this.transport] - case 1: - return [4, _a.sent().disconnect()] - case 2: - _a.sent() - _a.label = 3 - case 3: - return [4, _super.prototype.destroy.call(this)] - case 4: - _a.sent() - return [2] - } - }) - }) - } - Client.prototype.setTransport = function (transport) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - if (transport) { - if (this._transport.isSettled()) { - this._transport = beacon_utils_1.ExposedPromise.resolve(transport) - } else { - this._transport.resolve(transport) - } - } else { - if (this._transport.isSettled()) { - this._transport = new beacon_utils_1.ExposedPromise() - } - } - return [2] - }) - }) - } - Client.prototype.addListener = function (transport) { - return __awaiter(this, void 0, void 0, function () { - var _this = this - return __generator(this, function (_a) { - transport - .addListener(function (message, connectionInfo) { - return __awaiter(_this, void 0, void 0, function () { - var deserializedMessage - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(typeof message === 'string')) return [3, 2] - return [4, new __1.Serializer().deserialize(message)] - case 1: - deserializedMessage = _a.sent() - this.handleResponse(deserializedMessage, connectionInfo) - _a.label = 2 - case 2: - return [2] - } - }) - }) - }) - .catch(function (error) { - return logger.error('addListener', error) - }) - return [2] - }) - }) - } - Client.prototype.sendDisconnectToPeer = function (peer, transport) { - return __awaiter(this, void 0, void 0, function () { - var request, _a, payload, selectedTransport, _b - var _c - return __generator(this, function (_d) { - switch (_d.label) { - case 0: - _c = {} - return [4, (0, beacon_utils_1.generateGUID)()] - case 1: - ;(_c.id = _d.sent()), (_c.version = constants_1.BEACON_VERSION) - _a = get_sender_id_1.getSenderId - return [4, this.beaconId] - case 2: - return [4, _a.apply(void 0, [_d.sent()])] - case 3: - request = - ((_c.senderId = _d.sent()), - (_c.type = beacon_types_1.BeaconMessageType.Disconnect), - _c) - return [4, new __1.Serializer().serialize(request)] - case 4: - payload = _d.sent() - if (!(transport !== null && transport !== void 0)) return [3, 5] - _b = transport - return [3, 7] - case 5: - return [4, this.transport] - case 6: - _b = _d.sent() - _d.label = 7 - case 7: - selectedTransport = _b - return [4, selectedTransport.send(payload, peer)] - case 8: - _d.sent() - return [2] - } - }) - }) - } - return Client - })(BeaconClient_1.BeaconClient) - exports.Client = Client - }, - { - '../..': 229, - '../../constants': 215, - '../../managers/AccountManager': 232, - '../../utils/Logger': 244, - '../../utils/get-sender-id': 247, - '../beacon-client/BeaconClient': 213, - '@airgap/beacon-types': 287, - '@airgap/beacon-utils': 302 - } - ], - 215: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.BEACON_VERSION = exports.SDK_VERSION = void 0 - exports.SDK_VERSION = '2.4.0-beta.0' - exports.BEACON_VERSION = '2' - }, - {} - ], - 216: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.getDebugEnabled = exports.setDebugEnabled = void 0 - var MockWindow_1 = require('./MockWindow') - var debug = MockWindow_1.windowRef.beaconSdkDebugEnabled ? true : false - if (debug) { - console.log( - '[BEACON]: Debug mode is ON (turned on either by the developer or a browser extension)' - ) - } - var setDebugEnabled = function (enabled) { - debug = enabled - } - exports.setDebugEnabled = setDebugEnabled - var getDebugEnabled = function () { - return debug - } - exports.getDebugEnabled = getDebugEnabled - }, - { './MockWindow': 211 } - ], - 217: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - Object.defineProperty(exports, '__esModule', { value: true }) - exports.AbortedBeaconError = void 0 - var __1 = require('..') - var beacon_types_1 = require('@airgap/beacon-types') - var AbortedBeaconError = (function (_super) { - __extends(AbortedBeaconError, _super) - function AbortedBeaconError() { - var _this = - _super.call( - this, - beacon_types_1.BeaconErrorType.ABORTED_ERROR, - 'The action was aborted by the user.' - ) || this - _this.name = 'UnknownBeaconError' - _this.title = 'Aborted' - return _this - } - return AbortedBeaconError - })(__1.BeaconError) - exports.AbortedBeaconError = AbortedBeaconError - }, - { '..': 229, '@airgap/beacon-types': 287 } - ], - 218: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.BeaconError = void 0 - var assert_never_1 = require('../utils/assert-never') - var __1 = require('..') - var beacon_types_1 = require('@airgap/beacon-types') - var BeaconError = (function () { - function BeaconError(errorType, message) { - this.name = 'BeaconError' - this.title = 'Error' - this.message = '[' + errorType + ']:' + message - this.description = message - } - Object.defineProperty(BeaconError.prototype, 'fullDescription', { - get: function () { - return this.description - }, - enumerable: false, - configurable: true - }) - BeaconError.getError = function (errorType, errorData) { - switch (errorType) { - case beacon_types_1.BeaconErrorType.BROADCAST_ERROR: - return new __1.BroadcastBeaconError() - case beacon_types_1.BeaconErrorType.NETWORK_NOT_SUPPORTED: - return new __1.NetworkNotSupportedBeaconError() - case beacon_types_1.BeaconErrorType.NO_ADDRESS_ERROR: - return new __1.NoAddressBeaconError() - case beacon_types_1.BeaconErrorType.NO_PRIVATE_KEY_FOUND_ERROR: - return new __1.NoPrivateKeyBeaconError() - case beacon_types_1.BeaconErrorType.NOT_GRANTED_ERROR: - return new __1.NotGrantedBeaconError() - case beacon_types_1.BeaconErrorType.PARAMETERS_INVALID_ERROR: - return new __1.ParametersInvalidBeaconError() - case beacon_types_1.BeaconErrorType.TOO_MANY_OPERATIONS: - return new __1.TooManyOperationsBeaconError() - case beacon_types_1.BeaconErrorType.TRANSACTION_INVALID_ERROR: - return new __1.TransactionInvalidBeaconError(errorData) - case beacon_types_1.BeaconErrorType.SIGNATURE_TYPE_NOT_SUPPORTED: - return new __1.SignatureTypeNotSupportedBeaconError() - case beacon_types_1.BeaconErrorType.ABORTED_ERROR: - return new __1.AbortedBeaconError() - case beacon_types_1.BeaconErrorType.UNKNOWN_ERROR: - return new __1.UnknownBeaconError() - default: - ;(0, assert_never_1.assertNever)(errorType) - } - } - return BeaconError - })() - exports.BeaconError = BeaconError - }, - { '..': 229, '../utils/assert-never': 245, '@airgap/beacon-types': 287 } - ], - 219: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - Object.defineProperty(exports, '__esModule', { value: true }) - exports.BroadcastBeaconError = void 0 - var __1 = require('..') - var beacon_types_1 = require('@airgap/beacon-types') - var BroadcastBeaconError = (function (_super) { - __extends(BroadcastBeaconError, _super) - function BroadcastBeaconError() { - var _this = - _super.call( - this, - beacon_types_1.BeaconErrorType.BROADCAST_ERROR, - 'The transaction could not be broadcast to the network. Please try again.' - ) || this - _this.name = 'BroadcastBeaconError' - _this.title = 'Broadcast Error' - return _this - } - return BroadcastBeaconError - })(__1.BeaconError) - exports.BroadcastBeaconError = BroadcastBeaconError - }, - { '..': 229, '@airgap/beacon-types': 287 } - ], - 220: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - Object.defineProperty(exports, '__esModule', { value: true }) - exports.NetworkNotSupportedBeaconError = void 0 - var __1 = require('..') - var beacon_types_1 = require('@airgap/beacon-types') - var NetworkNotSupportedBeaconError = (function (_super) { - __extends(NetworkNotSupportedBeaconError, _super) - function NetworkNotSupportedBeaconError() { - var _this = - _super.call( - this, - beacon_types_1.BeaconErrorType.NETWORK_NOT_SUPPORTED, - 'The wallet does not support this network. Please select another one.' - ) || this - _this.name = 'NetworkNotSupportedBeaconError' - _this.title = 'Network Error' - return _this - } - return NetworkNotSupportedBeaconError - })(__1.BeaconError) - exports.NetworkNotSupportedBeaconError = NetworkNotSupportedBeaconError - }, - { '..': 229, '@airgap/beacon-types': 287 } - ], - 221: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - Object.defineProperty(exports, '__esModule', { value: true }) - exports.NoAddressBeaconError = void 0 - var __1 = require('..') - var beacon_types_1 = require('@airgap/beacon-types') - var NoAddressBeaconError = (function (_super) { - __extends(NoAddressBeaconError, _super) - function NoAddressBeaconError() { - var _this = - _super.call( - this, - beacon_types_1.BeaconErrorType.NO_ADDRESS_ERROR, - 'The wallet does not have an account set up. Please make sure to set up your wallet and try again.' - ) || this - _this.name = 'NoAddressBeaconError' - _this.title = 'No Address' - return _this - } - return NoAddressBeaconError - })(__1.BeaconError) - exports.NoAddressBeaconError = NoAddressBeaconError - }, - { '..': 229, '@airgap/beacon-types': 287 } - ], - 222: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - Object.defineProperty(exports, '__esModule', { value: true }) - exports.NoPrivateKeyBeaconError = void 0 - var __1 = require('..') - var beacon_types_1 = require('@airgap/beacon-types') - var NoPrivateKeyBeaconError = (function (_super) { - __extends(NoPrivateKeyBeaconError, _super) - function NoPrivateKeyBeaconError() { - var _this = - _super.call( - this, - beacon_types_1.BeaconErrorType.NO_PRIVATE_KEY_FOUND_ERROR, - 'The account you are trying to interact with is not available. Please make sure to add the account to your wallet and try again.' - ) || this - _this.name = 'NoPrivateKeyBeaconError' - _this.title = 'Account Not Found' - return _this - } - return NoPrivateKeyBeaconError - })(__1.BeaconError) - exports.NoPrivateKeyBeaconError = NoPrivateKeyBeaconError - }, - { '..': 229, '@airgap/beacon-types': 287 } - ], - 223: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - Object.defineProperty(exports, '__esModule', { value: true }) - exports.NotGrantedBeaconError = void 0 - var __1 = require('..') - var beacon_types_1 = require('@airgap/beacon-types') - var NotGrantedBeaconError = (function (_super) { - __extends(NotGrantedBeaconError, _super) - function NotGrantedBeaconError() { - var _this = - _super.call( - this, - beacon_types_1.BeaconErrorType.NOT_GRANTED_ERROR, - 'You do not have the necessary permissions to perform this action. Please initiate another permission request and give the necessary permissions.' - ) || this - _this.name = 'NotGrantedBeaconError' - _this.title = 'Permission Not Granted' - return _this - } - return NotGrantedBeaconError - })(__1.BeaconError) - exports.NotGrantedBeaconError = NotGrantedBeaconError - }, - { '..': 229, '@airgap/beacon-types': 287 } - ], - 224: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - Object.defineProperty(exports, '__esModule', { value: true }) - exports.ParametersInvalidBeaconError = void 0 - var __1 = require('..') - var beacon_types_1 = require('@airgap/beacon-types') - var ParametersInvalidBeaconError = (function (_super) { - __extends(ParametersInvalidBeaconError, _super) - function ParametersInvalidBeaconError() { - var _this = - _super.call( - this, - beacon_types_1.BeaconErrorType.PARAMETERS_INVALID_ERROR, - 'Some of the parameters you provided are invalid and the request could not be completed. Please check your inputs and try again.' - ) || this - _this.name = 'ParametersInvalidBeaconError' - _this.title = 'Parameters Invalid' - return _this - } - return ParametersInvalidBeaconError - })(__1.BeaconError) - exports.ParametersInvalidBeaconError = ParametersInvalidBeaconError - }, - { '..': 229, '@airgap/beacon-types': 287 } - ], - 225: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - Object.defineProperty(exports, '__esModule', { value: true }) - exports.SignatureTypeNotSupportedBeaconError = void 0 - var __1 = require('..') - var beacon_types_1 = require('@airgap/beacon-types') - var SignatureTypeNotSupportedBeaconError = (function (_super) { - __extends(SignatureTypeNotSupportedBeaconError, _super) - function SignatureTypeNotSupportedBeaconError() { - var _this = - _super.call( - this, - beacon_types_1.BeaconErrorType.SIGNATURE_TYPE_NOT_SUPPORTED, - 'The wallet is not able to sign payloads of this type.' - ) || this - _this.name = 'SignatureTypeNotSupportedBeaconError' - _this.title = 'Signature Type Not Supported' - return _this - } - return SignatureTypeNotSupportedBeaconError - })(__1.BeaconError) - exports.SignatureTypeNotSupportedBeaconError = SignatureTypeNotSupportedBeaconError - }, - { '..': 229, '@airgap/beacon-types': 287 } - ], - 226: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - Object.defineProperty(exports, '__esModule', { value: true }) - exports.TooManyOperationsBeaconError = void 0 - var __1 = require('..') - var beacon_types_1 = require('@airgap/beacon-types') - var TooManyOperationsBeaconError = (function (_super) { - __extends(TooManyOperationsBeaconError, _super) - function TooManyOperationsBeaconError() { - var _this = - _super.call( - this, - beacon_types_1.BeaconErrorType.TOO_MANY_OPERATIONS, - 'The request contains too many transactions. Please include fewer operations and try again.' - ) || this - _this.name = 'TooManyOperationsBeaconError' - _this.title = 'Too Many Operations' - return _this - } - return TooManyOperationsBeaconError - })(__1.BeaconError) - exports.TooManyOperationsBeaconError = TooManyOperationsBeaconError - }, - { '..': 229, '@airgap/beacon-types': 287 } - ], - 227: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - Object.defineProperty(exports, '__esModule', { value: true }) - exports.TransactionInvalidBeaconError = void 0 - var __1 = require('..') - var beacon_types_1 = require('@airgap/beacon-types') - var TransactionInvalidBeaconError = (function (_super) { - __extends(TransactionInvalidBeaconError, _super) - function TransactionInvalidBeaconError(data) { - var _this = - _super.call( - this, - beacon_types_1.BeaconErrorType.TRANSACTION_INVALID_ERROR, - 'The transaction is invalid and the node did not accept it.' - ) || this - _this.data = data - _this.name = 'TransactionInvalidBeaconError' - _this.title = 'Transaction Invalid' - _this.data = data - return _this - } - Object.defineProperty(TransactionInvalidBeaconError.prototype, 'fullDescription', { - get: function () { - return ( - this.description + - '
' +
-                  JSON.stringify(this.data, undefined, 2) +
-                  '
' - ) - }, - enumerable: false, - configurable: true - }) - return TransactionInvalidBeaconError - })(__1.BeaconError) - exports.TransactionInvalidBeaconError = TransactionInvalidBeaconError - }, - { '..': 229, '@airgap/beacon-types': 287 } - ], - 228: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - Object.defineProperty(exports, '__esModule', { value: true }) - exports.UnknownBeaconError = void 0 - var __1 = require('..') - var beacon_types_1 = require('@airgap/beacon-types') - var UnknownBeaconError = (function (_super) { - __extends(UnknownBeaconError, _super) - function UnknownBeaconError() { - var _this = - _super.call( - this, - beacon_types_1.BeaconErrorType.UNKNOWN_ERROR, - 'An unknown error occured. Please try again or report it to a developer.' - ) || this - _this.name = 'UnknownBeaconError' - _this.title = 'Error' - return _this - } - return UnknownBeaconError - })(__1.BeaconError) - exports.UnknownBeaconError = UnknownBeaconError - }, - { '..': 229, '@airgap/beacon-types': 287 } - ], - 229: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.getDebugEnabled = - exports.setDebugEnabled = - exports.Logger = - exports.OutgoingResponseInterceptor = - exports.IncomingRequestInterceptor = - exports.Serializer = - exports.windowRef = - exports.getAccountIdentifier = - exports.getSenderId = - exports.BEACON_VERSION = - exports.SDK_VERSION = - exports.PermissionManager = - exports.AppMetadataManager = - exports.AccountManager = - exports.PeerManager = - exports.getStorage = - exports.LocalStorage = - exports.ChromeStorage = - exports.CommunicationClient = - exports.MessageBasedClient = - exports.Transport = - exports.UnknownBeaconError = - exports.SignatureTypeNotSupportedBeaconError = - exports.TransactionInvalidBeaconError = - exports.TooManyOperationsBeaconError = - exports.ParametersInvalidBeaconError = - exports.NotGrantedBeaconError = - exports.NoPrivateKeyBeaconError = - exports.NoAddressBeaconError = - exports.NetworkNotSupportedBeaconError = - exports.BroadcastBeaconError = - exports.AbortedBeaconError = - exports.BeaconError = - exports.Client = - exports.BeaconClient = - void 0 - var Client_1 = require('./clients/client/Client') - Object.defineProperty(exports, 'Client', { - enumerable: true, - get: function () { - return Client_1.Client - } - }) - var BeaconError_1 = require('./errors/BeaconError') - Object.defineProperty(exports, 'BeaconError', { - enumerable: true, - get: function () { - return BeaconError_1.BeaconError - } - }) - var BroadcastBeaconError_1 = require('./errors/BroadcastBeaconError') - Object.defineProperty(exports, 'BroadcastBeaconError', { - enumerable: true, - get: function () { - return BroadcastBeaconError_1.BroadcastBeaconError - } - }) - var NetworkNotSupportedBeaconError_1 = require('./errors/NetworkNotSupportedBeaconError') - Object.defineProperty(exports, 'NetworkNotSupportedBeaconError', { - enumerable: true, - get: function () { - return NetworkNotSupportedBeaconError_1.NetworkNotSupportedBeaconError - } - }) - var NoAddressBeaconError_1 = require('./errors/NoAddressBeaconError') - Object.defineProperty(exports, 'NoAddressBeaconError', { - enumerable: true, - get: function () { - return NoAddressBeaconError_1.NoAddressBeaconError - } - }) - var NoPrivateKeyBeaconError_1 = require('./errors/NoPrivateKeyBeaconError') - Object.defineProperty(exports, 'NoPrivateKeyBeaconError', { - enumerable: true, - get: function () { - return NoPrivateKeyBeaconError_1.NoPrivateKeyBeaconError - } - }) - var NotGrantedBeaconError_1 = require('./errors/NotGrantedBeaconError') - Object.defineProperty(exports, 'NotGrantedBeaconError', { - enumerable: true, - get: function () { - return NotGrantedBeaconError_1.NotGrantedBeaconError - } - }) - var ParametersInvalidBeaconError_1 = require('./errors/ParametersInvalidBeaconError') - Object.defineProperty(exports, 'ParametersInvalidBeaconError', { - enumerable: true, - get: function () { - return ParametersInvalidBeaconError_1.ParametersInvalidBeaconError - } - }) - var TooManyOperationsBeaconError_1 = require('./errors/TooManyOperationsBeaconError') - Object.defineProperty(exports, 'TooManyOperationsBeaconError', { - enumerable: true, - get: function () { - return TooManyOperationsBeaconError_1.TooManyOperationsBeaconError - } - }) - var TransactionInvalidBeaconError_1 = require('./errors/TransactionInvalidBeaconError') - Object.defineProperty(exports, 'TransactionInvalidBeaconError', { - enumerable: true, - get: function () { - return TransactionInvalidBeaconError_1.TransactionInvalidBeaconError - } - }) - var UnknownBeaconError_1 = require('./errors/UnknownBeaconError') - Object.defineProperty(exports, 'UnknownBeaconError', { - enumerable: true, - get: function () { - return UnknownBeaconError_1.UnknownBeaconError - } - }) - var Transport_1 = require('./transports/Transport') - Object.defineProperty(exports, 'Transport', { - enumerable: true, - get: function () { - return Transport_1.Transport - } - }) - var ChromeStorage_1 = require('./storage/ChromeStorage') - Object.defineProperty(exports, 'ChromeStorage', { - enumerable: true, - get: function () { - return ChromeStorage_1.ChromeStorage - } - }) - var LocalStorage_1 = require('./storage/LocalStorage') - Object.defineProperty(exports, 'LocalStorage', { - enumerable: true, - get: function () { - return LocalStorage_1.LocalStorage - } - }) - var getStorage_1 = require('./storage/getStorage') - Object.defineProperty(exports, 'getStorage', { - enumerable: true, - get: function () { - return getStorage_1.getStorage - } - }) - var Serializer_1 = require('./Serializer') - Object.defineProperty(exports, 'Serializer', { - enumerable: true, - get: function () { - return Serializer_1.Serializer - } - }) - var constants_1 = require('./constants') - Object.defineProperty(exports, 'SDK_VERSION', { - enumerable: true, - get: function () { - return constants_1.SDK_VERSION - } - }) - Object.defineProperty(exports, 'BEACON_VERSION', { - enumerable: true, - get: function () { - return constants_1.BEACON_VERSION - } - }) - var AccountManager_1 = require('./managers/AccountManager') - Object.defineProperty(exports, 'AccountManager', { - enumerable: true, - get: function () { - return AccountManager_1.AccountManager - } - }) - var AppMetadataManager_1 = require('./managers/AppMetadataManager') - Object.defineProperty(exports, 'AppMetadataManager', { - enumerable: true, - get: function () { - return AppMetadataManager_1.AppMetadataManager - } - }) - var PermissionManager_1 = require('./managers/PermissionManager') - Object.defineProperty(exports, 'PermissionManager', { - enumerable: true, - get: function () { - return PermissionManager_1.PermissionManager - } - }) - var BeaconClient_1 = require('./clients/beacon-client/BeaconClient') - Object.defineProperty(exports, 'BeaconClient', { - enumerable: true, - get: function () { - return BeaconClient_1.BeaconClient - } - }) - var get_account_identifier_1 = require('./utils/get-account-identifier') - Object.defineProperty(exports, 'getAccountIdentifier', { - enumerable: true, - get: function () { - return get_account_identifier_1.getAccountIdentifier - } - }) - var AbortedBeaconError_1 = require('./errors/AbortedBeaconError') - Object.defineProperty(exports, 'AbortedBeaconError', { - enumerable: true, - get: function () { - return AbortedBeaconError_1.AbortedBeaconError - } - }) - var get_sender_id_1 = require('./utils/get-sender-id') - Object.defineProperty(exports, 'getSenderId', { - enumerable: true, - get: function () { - return get_sender_id_1.getSenderId - } - }) - var PeerManager_1 = require('./managers/PeerManager') - Object.defineProperty(exports, 'PeerManager', { - enumerable: true, - get: function () { - return PeerManager_1.PeerManager - } - }) - var MessageBasedClient_1 = require('./transports/clients/MessageBasedClient') - Object.defineProperty(exports, 'MessageBasedClient', { - enumerable: true, - get: function () { - return MessageBasedClient_1.MessageBasedClient - } - }) - var debug_1 = require('./debug') - Object.defineProperty(exports, 'setDebugEnabled', { - enumerable: true, - get: function () { - return debug_1.setDebugEnabled - } - }) - Object.defineProperty(exports, 'getDebugEnabled', { - enumerable: true, - get: function () { - return debug_1.getDebugEnabled - } - }) - var SignatureTypeNotSupportedBeaconError_1 = require('./errors/SignatureTypeNotSupportedBeaconError') - Object.defineProperty(exports, 'SignatureTypeNotSupportedBeaconError', { - enumerable: true, - get: function () { - return SignatureTypeNotSupportedBeaconError_1.SignatureTypeNotSupportedBeaconError - } - }) - var Logger_1 = require('./utils/Logger') - Object.defineProperty(exports, 'Logger', { - enumerable: true, - get: function () { - return Logger_1.Logger - } - }) - var IncomingRequestInterceptor_1 = require('./interceptors/IncomingRequestInterceptor') - Object.defineProperty(exports, 'IncomingRequestInterceptor', { - enumerable: true, - get: function () { - return IncomingRequestInterceptor_1.IncomingRequestInterceptor - } - }) - var OutgoingResponseInterceptor_1 = require('./interceptors/OutgoingResponseInterceptor') - Object.defineProperty(exports, 'OutgoingResponseInterceptor', { - enumerable: true, - get: function () { - return OutgoingResponseInterceptor_1.OutgoingResponseInterceptor - } - }) - var MockWindow_1 = require('./MockWindow') - Object.defineProperty(exports, 'windowRef', { - enumerable: true, - get: function () { - return MockWindow_1.windowRef - } - }) - var CommunicationClient_1 = require('./transports/clients/CommunicationClient') - Object.defineProperty(exports, 'CommunicationClient', { - enumerable: true, - get: function () { - return CommunicationClient_1.CommunicationClient - } - }) - }, - { - './MockWindow': 211, - './Serializer': 212, - './clients/beacon-client/BeaconClient': 213, - './clients/client/Client': 214, - './constants': 215, - './debug': 216, - './errors/AbortedBeaconError': 217, - './errors/BeaconError': 218, - './errors/BroadcastBeaconError': 219, - './errors/NetworkNotSupportedBeaconError': 220, - './errors/NoAddressBeaconError': 221, - './errors/NoPrivateKeyBeaconError': 222, - './errors/NotGrantedBeaconError': 223, - './errors/ParametersInvalidBeaconError': 224, - './errors/SignatureTypeNotSupportedBeaconError': 225, - './errors/TooManyOperationsBeaconError': 226, - './errors/TransactionInvalidBeaconError': 227, - './errors/UnknownBeaconError': 228, - './interceptors/IncomingRequestInterceptor': 230, - './interceptors/OutgoingResponseInterceptor': 231, - './managers/AccountManager': 232, - './managers/AppMetadataManager': 233, - './managers/PeerManager': 234, - './managers/PermissionManager': 235, - './storage/ChromeStorage': 238, - './storage/LocalStorage': 239, - './storage/getStorage': 240, - './transports/Transport': 241, - './transports/clients/CommunicationClient': 242, - './transports/clients/MessageBasedClient': 243, - './utils/Logger': 244, - './utils/get-account-identifier': 246, - './utils/get-sender-id': 247 - } - ], - 230: [ - function (require, module, exports) { - 'use strict' - var __assign = - (this && this.__assign) || - function () { - __assign = - Object.assign || - function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i] - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p] - } - return t - } - return __assign.apply(this, arguments) - } - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.IncomingRequestInterceptor = void 0 - var assert_never_1 = require('../utils/assert-never') - var beacon_types_1 = require('@airgap/beacon-types') - var Logger_1 = require('../utils/Logger') - var logger = new Logger_1.Logger('IncomingRequestInterceptor') - var IncomingRequestInterceptor = (function () { - function IncomingRequestInterceptor() {} - IncomingRequestInterceptor.intercept = function (config) { - return __awaiter(this, void 0, void 0, function () { - var message, - connectionInfo, - appMetadataManager, - interceptorCallback, - _a, - request, - appMetadata, - request, - appMetadata, - request, - appMetadata, - request - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - ;(message = config.message), - (connectionInfo = config.connectionInfo), - (appMetadataManager = config.appMetadataManager), - (interceptorCallback = config.interceptorCallback) - if (message.beaconId && !message.senderId) { - message.senderId = message.beaconId - delete message.beaconId - } - _a = message.type - switch (_a) { - case beacon_types_1.BeaconMessageType.PermissionRequest: - return [3, 1] - case beacon_types_1.BeaconMessageType.OperationRequest: - return [3, 3] - case beacon_types_1.BeaconMessageType.SignPayloadRequest: - return [3, 5] - case beacon_types_1.BeaconMessageType.BroadcastRequest: - return [3, 7] - } - return [3, 9] - case 1: - if (message.appMetadata.beaconId && !message.appMetadata.senderId) { - message.appMetadata.senderId = message.appMetadata.beaconId - delete message.appMetadata.beaconId - } - return [4, appMetadataManager.addAppMetadata(message.appMetadata)] - case 2: - _b.sent() - request = message - interceptorCallback(request, connectionInfo) - return [3, 10] - case 3: - return [ - 4, - IncomingRequestInterceptor.getAppMetadata( - appMetadataManager, - message.senderId - ) - ] - case 4: - appMetadata = _b.sent() - request = __assign({ appMetadata: appMetadata }, message) - interceptorCallback(request, connectionInfo) - return [3, 10] - case 5: - return [ - 4, - IncomingRequestInterceptor.getAppMetadata( - appMetadataManager, - message.senderId - ) - ] - case 6: - appMetadata = _b.sent() - request = __assign({ appMetadata: appMetadata }, message) - interceptorCallback(request, connectionInfo) - return [3, 10] - case 7: - return [ - 4, - IncomingRequestInterceptor.getAppMetadata( - appMetadataManager, - message.senderId - ) - ] - case 8: - appMetadata = _b.sent() - request = __assign({ appMetadata: appMetadata }, message) - interceptorCallback(request, connectionInfo) - return [3, 10] - case 9: - logger.log('intercept', 'Message not handled') - ;(0, assert_never_1.assertNever)(message) - _b.label = 10 - case 10: - return [2] - } - }) - }) - } - IncomingRequestInterceptor.getAppMetadata = function (appMetadataManager, senderId) { - return __awaiter(this, void 0, void 0, function () { - var appMetadata - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, appMetadataManager.getAppMetadata(senderId)] - case 1: - appMetadata = _a.sent() - if (!appMetadata) { - throw new Error('AppMetadata not found') - } - return [2, appMetadata] - } - }) - }) - } - return IncomingRequestInterceptor - })() - exports.IncomingRequestInterceptor = IncomingRequestInterceptor - }, - { '../utils/Logger': 244, '../utils/assert-never': 245, '@airgap/beacon-types': 287 } - ], - 231: [ - function (require, module, exports) { - 'use strict' - var __assign = - (this && this.__assign) || - function () { - __assign = - Object.assign || - function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i] - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p] - } - return t - } - return __assign.apply(this, arguments) - } - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.OutgoingResponseInterceptor = void 0 - var assert_never_1 = require('../utils/assert-never') - var beacon_types_1 = require('@airgap/beacon-types') - var constants_1 = require('../constants') - var beacon_utils_1 = require('@airgap/beacon-utils') - var get_account_identifier_1 = require('../utils/get-account-identifier') - var Logger_1 = require('../utils/Logger') - var logger = new Logger_1.Logger('OutgoingResponseInterceptor') - var OutgoingResponseInterceptor = (function () { - function OutgoingResponseInterceptor() {} - OutgoingResponseInterceptor.intercept = function (config) { - return __awaiter(this, void 0, void 0, function () { - var senderId, - request, - message, - ownAppMetadata, - permissionManager, - appMetadataManager, - interceptorCallback, - interceptorCallbackWrapper, - _a, - response, - errorData, - response, - response, - publicKey, - address, - appMetadata, - permission, - response, - response, - response - var _b - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - ;(senderId = config.senderId), - (request = config.request), - (message = config.message), - (ownAppMetadata = config.ownAppMetadata), - (permissionManager = config.permissionManager), - (appMetadataManager = config.appMetadataManager), - (interceptorCallback = config.interceptorCallback) - interceptorCallbackWrapper = function (msg) { - var untypedMessage = msg - untypedMessage.beaconId = msg.senderId - interceptorCallback(msg) - } - _a = message.type - switch (_a) { - case beacon_types_1.BeaconMessageType.Error: - return [3, 1] - case beacon_types_1.BeaconMessageType.Acknowledge: - return [3, 2] - case beacon_types_1.BeaconMessageType.PermissionResponse: - return [3, 3] - case beacon_types_1.BeaconMessageType.OperationResponse: - return [3, 7] - case beacon_types_1.BeaconMessageType.SignPayloadResponse: - return [3, 8] - case beacon_types_1.BeaconMessageType.BroadcastResponse: - return [3, 9] - } - return [3, 10] - case 1: - { - response = { - type: message.type, - version: constants_1.BEACON_VERSION, - senderId: senderId, - id: message.id, - errorType: message.errorType - } - if ( - message.errorType === - beacon_types_1.BeaconErrorType.TRANSACTION_INVALID_ERROR && - message.errorData - ) { - errorData = message.errorData - if ( - Array.isArray(errorData) && - errorData.every(function (item) { - return Boolean(item.kind) && Boolean(item.id) - }) - ) { - response.errorData = message.errorData - } else { - logger.warn( - 'ErrorData provided is not in correct format. It needs to be an array of RPC errors. It will not be included in the message sent to the dApp' - ) - } - } - interceptorCallbackWrapper(response) - return [3, 11] - } - _c.label = 2 - case 2: - { - response = { - type: message.type, - version: constants_1.BEACON_VERSION, - senderId: senderId, - id: message.id - } - interceptorCallbackWrapper(response) - return [3, 11] - } - _c.label = 3 - case 3: - response = __assign( - { - senderId: senderId, - version: constants_1.BEACON_VERSION, - appMetadata: ownAppMetadata - }, - message - ) - publicKey = response.publicKey || response.pubkey || response.pubKey - return [4, (0, beacon_utils_1.getAddressFromPublicKey)(publicKey)] - case 4: - address = _c.sent() - return [4, appMetadataManager.getAppMetadata(request.senderId)] - case 5: - appMetadata = _c.sent() - if (!appMetadata) { - throw new Error('AppMetadata not found') - } - _b = {} - return [ - 4, - (0, get_account_identifier_1.getAccountIdentifier)( - address, - response.network - ) - ] - case 6: - permission = - ((_b.accountIdentifier = _c.sent()), - (_b.senderId = request.senderId), - (_b.appMetadata = appMetadata), - (_b.website = ''), - (_b.address = address), - (_b.publicKey = publicKey), - (_b.network = response.network), - (_b.scopes = response.scopes), - (_b.connectedAt = new Date().getTime()), - _b) - permissionManager.addPermission(permission).catch(console.error) - interceptorCallbackWrapper(response) - return [3, 11] - case 7: - { - response = __assign( - { senderId: senderId, version: constants_1.BEACON_VERSION }, - message - ) - interceptorCallbackWrapper(response) - } - return [3, 11] - case 8: - { - response = __assign( - { senderId: senderId, version: constants_1.BEACON_VERSION }, - message - ) - interceptorCallbackWrapper(response) - } - return [3, 11] - case 9: - { - response = __assign( - { senderId: senderId, version: constants_1.BEACON_VERSION }, - message - ) - interceptorCallbackWrapper(response) - } - return [3, 11] - case 10: - logger.log('intercept', 'Message not handled') - ;(0, assert_never_1.assertNever)(message) - _c.label = 11 - case 11: - return [2] - } - }) - }) - } - return OutgoingResponseInterceptor - })() - exports.OutgoingResponseInterceptor = OutgoingResponseInterceptor - }, - { - '../constants': 215, - '../utils/Logger': 244, - '../utils/assert-never': 245, - '../utils/get-account-identifier': 246, - '@airgap/beacon-types': 287, - '@airgap/beacon-utils': 302 - } - ], - 232: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.AccountManager = void 0 - var beacon_types_1 = require('@airgap/beacon-types') - var StorageManager_1 = require('./StorageManager') - var PermissionValidator_1 = require('./PermissionValidator') - var AccountManager = (function () { - function AccountManager(storage) { - this.storageManager = new StorageManager_1.StorageManager( - storage, - beacon_types_1.StorageKey.ACCOUNTS - ) - } - AccountManager.prototype.getAccounts = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.storageManager.getAll()] - }) - }) - } - AccountManager.prototype.getAccount = function (accountIdentifier) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - this.storageManager.getOne(function (account) { - return account.accountIdentifier === accountIdentifier - }) - ] - }) - }) - } - AccountManager.prototype.addAccount = function (accountInfo) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - this.storageManager.addOne(accountInfo, function (account) { - return account.accountIdentifier === accountInfo.accountIdentifier - }) - ] - }) - }) - } - AccountManager.prototype.removeAccount = function (accountIdentifier) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - this.storageManager.remove(function (account) { - return account.accountIdentifier === accountIdentifier - }) - ] - }) - }) - } - AccountManager.prototype.removeAccounts = function (accountIdentifiers) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - this.storageManager.remove(function (account) { - return accountIdentifiers.includes(account.accountIdentifier) - }) - ] - }) - }) - } - AccountManager.prototype.removeAllAccounts = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.storageManager.removeAll()] - }) - }) - } - AccountManager.prototype.hasPermission = function (message) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - PermissionValidator_1.PermissionValidator.hasPermission( - message, - this.getAccount.bind(this), - this.getAccounts.bind(this) - ) - ] - }) - }) - } - return AccountManager - })() - exports.AccountManager = AccountManager - }, - { './PermissionValidator': 236, './StorageManager': 237, '@airgap/beacon-types': 287 } - ], - 233: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.AppMetadataManager = void 0 - var beacon_types_1 = require('@airgap/beacon-types') - var StorageManager_1 = require('./StorageManager') - var AppMetadataManager = (function () { - function AppMetadataManager(storage) { - this.storageManager = new StorageManager_1.StorageManager( - storage, - beacon_types_1.StorageKey.APP_METADATA_LIST - ) - } - AppMetadataManager.prototype.getAppMetadataList = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.storageManager.getAll()] - }) - }) - } - AppMetadataManager.prototype.getAppMetadata = function (senderId) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - this.storageManager.getOne(function (appMetadata) { - return appMetadata.senderId === senderId - }) - ] - }) - }) - } - AppMetadataManager.prototype.addAppMetadata = function (appMetadata) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - this.storageManager.addOne(appMetadata, function (appMetadataElement) { - return appMetadataElement.senderId === appMetadata.senderId - }) - ] - }) - }) - } - AppMetadataManager.prototype.removeAppMetadata = function (senderId) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - this.storageManager.remove(function (appMetadata) { - return appMetadata.senderId === senderId - }) - ] - }) - }) - } - AppMetadataManager.prototype.removeAppMetadatas = function (senderIds) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - this.storageManager.remove(function (appMetadata) { - return senderIds.includes(appMetadata.senderId) - }) - ] - }) - }) - } - AppMetadataManager.prototype.removeAllAppMetadata = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.storageManager.removeAll()] - }) - }) - } - return AppMetadataManager - })() - exports.AppMetadataManager = AppMetadataManager - }, - { './StorageManager': 237, '@airgap/beacon-types': 287 } - ], - 234: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.PeerManager = void 0 - var StorageManager_1 = require('./StorageManager') - var PeerManager = (function () { - function PeerManager(storage, key) { - this.storageManager = new StorageManager_1.StorageManager(storage, key) - } - PeerManager.prototype.hasPeer = function (publicKey) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.getPeer(publicKey)] - case 1: - return [2, _a.sent() ? true : false] - } - }) - }) - } - PeerManager.prototype.getPeers = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.storageManager.getAll()] - }) - }) - } - PeerManager.prototype.getPeer = function (publicKey) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - this.storageManager.getOne(function (peer) { - return peer.publicKey === publicKey - }) - ] - }) - }) - } - PeerManager.prototype.addPeer = function (peerInfo) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - this.storageManager.addOne(peerInfo, function (peer) { - return peer.publicKey === peerInfo.publicKey - }) - ] - }) - }) - } - PeerManager.prototype.removePeer = function (publicKey) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - this.storageManager.remove(function (peer) { - return peer.publicKey === publicKey - }) - ] - }) - }) - } - PeerManager.prototype.removePeers = function (publicKeys) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - this.storageManager.remove(function (peer) { - return publicKeys.includes(peer.publicKey) - }) - ] - }) - }) - } - PeerManager.prototype.removeAllPeers = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.storageManager.removeAll()] - }) - }) - } - return PeerManager - })() - exports.PeerManager = PeerManager - }, - { './StorageManager': 237 } - ], - 235: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.PermissionManager = void 0 - var beacon_types_1 = require('@airgap/beacon-types') - var StorageManager_1 = require('./StorageManager') - var PermissionValidator_1 = require('./PermissionValidator') - var PermissionManager = (function () { - function PermissionManager(storage) { - this.storageManager = new StorageManager_1.StorageManager( - storage, - beacon_types_1.StorageKey.PERMISSION_LIST - ) - } - PermissionManager.prototype.getPermissions = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.storageManager.getAll()] - }) - }) - } - PermissionManager.prototype.getPermission = function (accountIdentifier) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - this.storageManager.getOne(function (permission) { - return permission.accountIdentifier === accountIdentifier - }) - ] - }) - }) - } - PermissionManager.prototype.addPermission = function (permissionInfo) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - this.storageManager.addOne(permissionInfo, function (permission) { - return permission.accountIdentifier === permissionInfo.accountIdentifier - }) - ] - }) - }) - } - PermissionManager.prototype.removePermission = function (accountIdentifier) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - this.storageManager.remove(function (permissionInfo) { - return permissionInfo.accountIdentifier === accountIdentifier - }) - ] - }) - }) - } - PermissionManager.prototype.removePermissions = function (accountIdentifiers) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - this.storageManager.remove(function (permission) { - return accountIdentifiers.includes(permission.accountIdentifier) - }) - ] - }) - }) - } - PermissionManager.prototype.removeAllPermissions = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.storageManager.removeAll()] - }) - }) - } - PermissionManager.prototype.hasPermission = function (message) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - PermissionValidator_1.PermissionValidator.hasPermission( - message, - this.getPermission.bind(this), - this.getPermissions.bind(this) - ) - ] - }) - }) - } - return PermissionManager - })() - exports.PermissionManager = PermissionManager - }, - { './PermissionValidator': 236, './StorageManager': 237, '@airgap/beacon-types': 287 } - ], - 236: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.PermissionValidator = void 0 - var beacon_types_1 = require('@airgap/beacon-types') - var get_account_identifier_1 = require('../utils/get-account-identifier') - var PermissionValidator = (function () { - function PermissionValidator() {} - PermissionValidator.hasPermission = function (message, getOne, getAll) { - return __awaiter(this, void 0, void 0, function () { - var _a, accountIdentifier, permission, permissions, filteredPermissions - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = message.type - switch (_a) { - case beacon_types_1.BeaconMessageType.PermissionRequest: - return [3, 1] - case beacon_types_1.BeaconMessageType.BroadcastRequest: - return [3, 1] - case beacon_types_1.BeaconMessageType.OperationRequest: - return [3, 2] - case beacon_types_1.BeaconMessageType.SignPayloadRequest: - return [3, 5] - } - return [3, 7] - case 1: - { - return [2, true] - } - _b.label = 2 - case 2: - return [ - 4, - (0, get_account_identifier_1.getAccountIdentifier)( - message.sourceAddress, - message.network - ) - ] - case 3: - accountIdentifier = _b.sent() - return [4, getOne(accountIdentifier)] - case 4: - permission = _b.sent() - if (!permission) { - return [2, false] - } - return [ - 2, - permission.scopes.includes(beacon_types_1.PermissionScope.OPERATION_REQUEST) - ] - case 5: - return [4, getAll()] - case 6: - permissions = _b.sent() - filteredPermissions = permissions.filter(function (permission) { - return permission.address === message.sourceAddress - }) - if (filteredPermissions.length === 0) { - return [2, false] - } - return [ - 2, - filteredPermissions.some(function (permission) { - return permission.scopes.includes(beacon_types_1.PermissionScope.SIGN) - }) - ] - case 7: - throw new Error('Message not handled') - } - }) - }) - } - return PermissionValidator - })() - exports.PermissionValidator = PermissionValidator - }, - { '../utils/get-account-identifier': 246, '@airgap/beacon-types': 287 } - ], - 237: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.StorageManager = void 0 - function fixArrayType(array) { - return array - } - var StorageManager = (function () { - function StorageManager(storage, storageKey) { - this.storage = storage - this.storageKey = storageKey - } - StorageManager.prototype.getAll = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.storage.get(this.storageKey)] - }) - }) - } - StorageManager.prototype.getOne = function (predicate) { - return __awaiter(this, void 0, void 0, function () { - var entities - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.storage.get(this.storageKey)] - case 1: - entities = _a.sent() - return [2, fixArrayType(entities).find(predicate)] - } - }) - }) - } - StorageManager.prototype.addOne = function (element, predicate, overwrite) { - if (overwrite === void 0) { - overwrite = true - } - return __awaiter(this, void 0, void 0, function () { - var entities, i - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.storage.get(this.storageKey)] - case 1: - entities = _a.sent() - if (!fixArrayType(entities).some(predicate)) { - fixArrayType(entities).push(element) - } else if (overwrite) { - for (i = 0; i < entities.length; i++) { - if (predicate(fixArrayType(entities)[i])) { - entities[i] = element - } - } - } - return [2, this.storage.set(this.storageKey, entities)] - } - }) - }) - } - StorageManager.prototype.remove = function (predicate) { - return __awaiter(this, void 0, void 0, function () { - var entities, filteredEntities - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.storage.get(this.storageKey)] - case 1: - entities = _a.sent() - filteredEntities = fixArrayType(entities).filter(function (entity) { - return !predicate(entity) - }) - return [2, this.storage.set(this.storageKey, filteredEntities)] - } - }) - }) - } - StorageManager.prototype.removeAll = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.storage.delete(this.storageKey)] - }) - }) - } - return StorageManager - })() - exports.StorageManager = StorageManager - }, - {} - ], - 238: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.ChromeStorage = void 0 - var beacon_types_1 = require('@airgap/beacon-types') - var ChromeStorage = (function () { - function ChromeStorage() {} - ChromeStorage.isSupported = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - typeof window !== 'undefined' && - typeof chrome !== 'undefined' && - Boolean(chrome) && - Boolean(chrome.runtime) && - Boolean(chrome.runtime.id) - ] - }) - }) - } - ChromeStorage.prototype.get = function (key) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - new Promise(function (resolve) { - chrome.storage.local.get(null, function (storageContent) { - if (storageContent[key]) { - resolve(storageContent[key]) - } else { - if (typeof beacon_types_1.defaultValues[key] === 'object') { - resolve(JSON.parse(JSON.stringify(beacon_types_1.defaultValues[key]))) - } else { - resolve(beacon_types_1.defaultValues[key]) - } - } - }) - }) - ] - }) - }) - } - ChromeStorage.prototype.set = function (key, value) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - new Promise(function (resolve) { - var _a - chrome.storage.local.set(((_a = {}), (_a[key] = value), _a), function () { - resolve() - }) - }) - ] - }) - }) - } - ChromeStorage.prototype.delete = function (key) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - new Promise(function (resolve) { - var _a - chrome.storage.local.set(((_a = {}), (_a[key] = undefined), _a), function () { - resolve() - }) - }) - ] - }) - }) - } - return ChromeStorage - })() - exports.ChromeStorage = ChromeStorage - }, - { '@airgap/beacon-types': 287 } - ], - 239: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.LocalStorage = void 0 - var beacon_types_1 = require('@airgap/beacon-types') - var LocalStorage = (function () { - function LocalStorage(prefix) { - this.prefix = prefix - } - LocalStorage.isSupported = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - Promise.resolve( - Boolean(typeof window !== 'undefined') && Boolean(window.localStorage) - ) - ] - }) - }) - } - LocalStorage.prototype.get = function (key) { - return __awaiter(this, void 0, void 0, function () { - var value - return __generator(this, function (_a) { - value = localStorage.getItem(this.getPrefixedKey(key)) - if (!value) { - if (typeof beacon_types_1.defaultValues[key] === 'object') { - return [2, JSON.parse(JSON.stringify(beacon_types_1.defaultValues[key]))] - } else { - return [2, beacon_types_1.defaultValues[key]] - } - } else { - try { - return [2, JSON.parse(value)] - } catch (jsonParseError) { - return [2, value] - } - } - return [2] - }) - }) - } - LocalStorage.prototype.set = function (key, value) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - if (typeof value === 'string') { - return [2, localStorage.setItem(this.getPrefixedKey(key), value)] - } else { - return [ - 2, - localStorage.setItem(this.getPrefixedKey(key), JSON.stringify(value)) - ] - } - return [2] - }) - }) - } - LocalStorage.prototype.delete = function (key) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, Promise.resolve(localStorage.removeItem(this.getPrefixedKey(key)))] - }) - }) - } - LocalStorage.prototype.getPrefixedKey = function (key) { - return this.prefix ? this.prefix + '-' + key : key - } - return LocalStorage - })() - exports.LocalStorage = LocalStorage - }, - { '@airgap/beacon-types': 287 } - ], - 240: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.getStorage = void 0 - var Logger_1 = require('../utils/Logger') - var __1 = require('..') - var logger = new Logger_1.Logger('STORAGE') - var getStorage = function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, __1.ChromeStorage.isSupported()] - case 1: - if (!_a.sent()) return [3, 2] - logger.log('getStorage', 'USING CHROME STORAGE') - return [2, new __1.ChromeStorage()] - case 2: - return [4, __1.LocalStorage.isSupported()] - case 3: - if (_a.sent()) { - logger.log('getStorage', 'USING LOCAL STORAGE') - return [2, new __1.LocalStorage()] - } else { - throw new Error('no storage type supported') - } - _a.label = 4 - case 4: - return [2] - } - }) - }) - } - exports.getStorage = getStorage - }, - { '..': 229, '../utils/Logger': 244 } - ], - 241: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.Transport = void 0 - var Logger_1 = require('../utils/Logger') - var beacon_types_1 = require('@airgap/beacon-types') - var logger = new Logger_1.Logger('Transport') - var Transport = (function () { - function Transport(name, client, peerManager) { - this.type = beacon_types_1.TransportType.POST_MESSAGE - this._isConnected = beacon_types_1.TransportStatus.NOT_CONNECTED - this.listeners = [] - this.name = name - this.client = client - this.peerManager = peerManager - } - Object.defineProperty(Transport.prototype, 'connectionStatus', { - get: function () { - return this._isConnected - }, - enumerable: false, - configurable: true - }) - Transport.isAvailable = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, Promise.resolve(false)] - }) - }) - } - Transport.prototype.connect = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - logger.log('connect') - this._isConnected = beacon_types_1.TransportStatus.CONNECTED - return [2] - }) - }) - } - Transport.prototype.disconnect = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - logger.log('disconnect') - this._isConnected = beacon_types_1.TransportStatus.NOT_CONNECTED - return [2] - }) - }) - } - Transport.prototype.send = function (message, peer) { - return __awaiter(this, void 0, void 0, function () { - var knownPeers, promises - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!peer) return [3, 1] - return [2, this.client.sendMessage(message, peer)] - case 1: - return [4, this.getPeers()] - case 2: - knownPeers = _a.sent() - promises = knownPeers.map(function (peerEl) { - return _this.client.sendMessage(message, peerEl) - }) - return [4, Promise.all(promises)] - case 3: - return [2, _a.sent()[0]] - } - }) - }) - } - Transport.prototype.addListener = function (listener) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - logger.debug('addListener', listener) - this.listeners.push(listener) - return [2] - }) - }) - } - Transport.prototype.removeListener = function (listener) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - logger.log('removeListener') - this.listeners = this.listeners.filter(function (element) { - return element !== listener - }) - return [2] - }) - }) - } - Transport.prototype.getPeers = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.peerManager.getPeers()] - }) - }) - } - Transport.prototype.addPeer = function (newPeer, _sendPairingResponse) { - if (_sendPairingResponse === void 0) { - _sendPairingResponse = true - } - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - logger.log('addPeer', 'adding peer', newPeer) - return [4, this.peerManager.addPeer(newPeer)] - case 1: - _a.sent() - return [4, this.listen(newPeer.publicKey)] - case 2: - _a.sent() - return [2] - } - }) - }) - } - Transport.prototype.removePeer = function (peerToBeRemoved) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - logger.log('removePeer', 'removing peer', peerToBeRemoved) - return [4, this.peerManager.removePeer(peerToBeRemoved.publicKey)] - case 1: - _a.sent() - if (!this.client) return [3, 3] - return [ - 4, - this.client.unsubscribeFromEncryptedMessage(peerToBeRemoved.publicKey) - ] - case 2: - _a.sent() - _a.label = 3 - case 3: - return [2] - } - }) - }) - } - Transport.prototype.removeAllPeers = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - logger.log('removeAllPeers') - return [4, this.peerManager.removeAllPeers()] - case 1: - _a.sent() - if (!this.client) return [3, 3] - return [4, this.client.unsubscribeFromEncryptedMessages()] - case 2: - _a.sent() - _a.label = 3 - case 3: - return [2] - } - }) - }) - } - Transport.prototype.notifyListeners = function (message, connectionInfo) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - if (this.listeners.length === 0) { - logger.warn('notifyListeners', '0 listeners notified!', this) - } else { - logger.log( - 'notifyListeners', - 'Notifying ' + this.listeners.length + ' listeners', - this - ) - } - this.listeners.forEach(function (listener) { - listener(message, connectionInfo) - }) - return [2] - }) - }) - } - return Transport - })() - exports.Transport = Transport - }, - { '../utils/Logger': 244, '@airgap/beacon-types': 287 } - ], - 242: [ - function (require, module, exports) { - ;(function (Buffer) { - ;(function () { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.CommunicationClient = void 0 - var libsodium_wrappers_1 = require('libsodium-wrappers') - var beacon_utils_1 = require('@airgap/beacon-utils') - var CommunicationClient = (function () { - function CommunicationClient(keyPair) { - this.keyPair = keyPair - } - CommunicationClient.prototype.getPublicKey = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, (0, beacon_utils_1.toHex)(this.keyPair.publicKey)] - }) - }) - } - CommunicationClient.prototype.getPublicKeyHash = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, (0, beacon_utils_1.getHexHash)(this.keyPair.publicKey)] - }) - }) - } - CommunicationClient.prototype.createCryptoBox = function ( - otherPublicKey, - selfPrivateKey - ) { - return __awaiter(this, void 0, void 0, function () { - var kxSelfPrivateKey, kxSelfPublicKey, kxOtherPublicKey - return __generator(this, function (_a) { - kxSelfPrivateKey = (0, - libsodium_wrappers_1.crypto_sign_ed25519_sk_to_curve25519)( - Buffer.from(selfPrivateKey) - ) - kxSelfPublicKey = (0, - libsodium_wrappers_1.crypto_sign_ed25519_pk_to_curve25519)( - Buffer.from(selfPrivateKey).slice(32, 64) - ) - kxOtherPublicKey = (0, - libsodium_wrappers_1.crypto_sign_ed25519_pk_to_curve25519)( - Buffer.from(otherPublicKey, 'hex') - ) - return [ - 2, - [ - Buffer.from(kxSelfPublicKey), - Buffer.from(kxSelfPrivateKey), - Buffer.from(kxOtherPublicKey) - ] - ] - }) - }) - } - CommunicationClient.prototype.createCryptoBoxServer = function ( - otherPublicKey, - selfPrivateKey - ) { - return __awaiter(this, void 0, void 0, function () { - var keys - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.createCryptoBox(otherPublicKey, selfPrivateKey)] - case 1: - keys = _a.sent() - return [ - 2, - libsodium_wrappers_1.crypto_kx_server_session_keys.apply(void 0, keys) - ] - } - }) - }) - } - CommunicationClient.prototype.createCryptoBoxClient = function ( - otherPublicKey, - selfPrivateKey - ) { - return __awaiter(this, void 0, void 0, function () { - var keys - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.createCryptoBox(otherPublicKey, selfPrivateKey)] - case 1: - keys = _a.sent() - return [ - 2, - libsodium_wrappers_1.crypto_kx_client_session_keys.apply(void 0, keys) - ] - } - }) - }) - } - CommunicationClient.prototype.encryptMessageAsymmetric = function ( - recipientPublicKey, - message - ) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - (0, beacon_utils_1.sealCryptobox)( - message, - Buffer.from(recipientPublicKey, 'hex') - ) - ] - }) - }) - } - return CommunicationClient - })() - exports.CommunicationClient = CommunicationClient - }.call(this)) - }.call(this, require('buffer').Buffer)) - }, - { '@airgap/beacon-utils': 302, buffer: 93, 'libsodium-wrappers': 153 } - ], - 243: [ - function (require, module, exports) { - ;(function (Buffer) { - ;(function () { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.MessageBasedClient = void 0 - var libsodium_wrappers_1 = require('libsodium-wrappers') - var constants_1 = require('../../constants') - var beacon_utils_1 = require('@airgap/beacon-utils') - var CommunicationClient_1 = require('./CommunicationClient') - var MessageBasedClient = (function (_super) { - __extends(MessageBasedClient, _super) - function MessageBasedClient(name, keyPair) { - var _this = _super.call(this, keyPair) || this - _this.name = name - _this.init().catch(console.error) - return _this - } - MessageBasedClient.prototype.start = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, libsodium_wrappers_1.ready] - case 1: - _a.sent() - return [2] - } - }) - }) - } - MessageBasedClient.prototype.getPairingRequestInfo = function () { - return __awaiter(this, void 0, void 0, function () { - var _a - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = {} - return [4, (0, beacon_utils_1.generateGUID)()] - case 1: - ;(_a.id = _b.sent()), - (_a.type = 'postmessage-pairing-request'), - (_a.name = this.name), - (_a.version = constants_1.BEACON_VERSION) - return [4, this.getPublicKey()] - case 2: - return [2, ((_a.publicKey = _b.sent()), _a)] - } - }) - }) - } - MessageBasedClient.prototype.getPairingResponseInfo = function (request) { - return __awaiter(this, void 0, void 0, function () { - var _a - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = { - id: request.id, - type: 'postmessage-pairing-response', - name: this.name, - version: constants_1.BEACON_VERSION - } - return [4, this.getPublicKey()] - case 1: - return [2, ((_a.publicKey = _b.sent()), _a)] - } - }) - }) - } - MessageBasedClient.prototype.unsubscribeFromEncryptedMessage = function ( - senderPublicKey - ) { - return __awaiter(this, void 0, void 0, function () { - var listener - return __generator(this, function (_a) { - listener = this.activeListeners.get(senderPublicKey) - if (!listener) { - return [2] - } - this.activeListeners.delete(senderPublicKey) - return [2] - }) - }) - } - MessageBasedClient.prototype.unsubscribeFromEncryptedMessages = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - this.activeListeners.clear() - return [2] - }) - }) - } - MessageBasedClient.prototype.decryptMessage = function (senderPublicKey, payload) { - return __awaiter(this, void 0, void 0, function () { - var sharedRx, hexPayload, decryptionError_1 - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [ - 4, - this.createCryptoBoxServer(senderPublicKey, this.keyPair.privateKey) - ] - case 1: - sharedRx = _a.sent().sharedRx - hexPayload = Buffer.from(payload, 'hex') - if ( - !( - hexPayload.length >= - libsodium_wrappers_1.crypto_secretbox_NONCEBYTES + - libsodium_wrappers_1.crypto_secretbox_MACBYTES - ) - ) - return [3, 5] - _a.label = 2 - case 2: - _a.trys.push([2, 4, , 5]) - return [ - 4, - (0, beacon_utils_1.decryptCryptoboxPayload)(hexPayload, sharedRx) - ] - case 3: - return [2, _a.sent()] - case 4: - decryptionError_1 = _a.sent() - return [3, 5] - case 5: - throw new Error('Could not decrypt message') - } - }) - }) - } - MessageBasedClient.prototype.encryptMessage = function ( - recipientPublicKey, - message - ) { - return __awaiter(this, void 0, void 0, function () { - var sharedTx - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [ - 4, - this.createCryptoBoxClient(recipientPublicKey, this.keyPair.privateKey) - ] - case 1: - sharedTx = _a.sent().sharedTx - return [2, (0, beacon_utils_1.encryptCryptoboxPayload)(message, sharedTx)] - } - }) - }) - } - return MessageBasedClient - })(CommunicationClient_1.CommunicationClient) - exports.MessageBasedClient = MessageBasedClient - }.call(this)) - }.call(this, require('buffer').Buffer)) - }, - { - '../../constants': 215, - './CommunicationClient': 242, - '@airgap/beacon-utils': 302, - buffer: 93, - 'libsodium-wrappers': 153 - } - ], - 244: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.Logger = void 0 - var debug_1 = require('../debug') - var Logger = (function () { - function Logger(service) { - this.name = service - } - Logger.prototype.debug = function (method) { - var args = [] - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i] - } - this._log('debug', method, args) - } - Logger.prototype.log = function (method) { - var args = [] - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i] - } - this._log('log', method, args) - } - Logger.prototype.warn = function (method) { - var args = [] - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i] - } - this._log('warn', method, args) - } - Logger.prototype.error = function (method) { - var args = [] - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i] - } - this._log('error', method, args) - } - Logger.prototype._log = function (type, method, args) { - if (args === void 0) { - args = [] - } - if (!(0, debug_1.getDebugEnabled)()) { - return - } - var groupText = - '[BEACON] ' + new Date().toISOString() + ' [' + this.name + '](' + method + ')' - var data = args - if (args[0] && typeof args[0] === 'string') { - groupText += ' ' + args[0] - data = args.slice(1) - } - switch (type) { - case 'error': - console.group(groupText) - console.error.apply(console, data) - break - case 'warn': - console.group(groupText) - console.warn.apply(console, data) - break - case 'debug': - console.groupCollapsed(groupText) - console.debug.apply(console, data) - break - default: - console.group(groupText) - console.log.apply(console, data) - } - console.groupEnd() - } - return Logger - })() - exports.Logger = Logger - }, - { '../debug': 216 } - ], - 245: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.assertNever = void 0 - function assertNever(empty) { - return empty - } - exports.assertNever = assertNever - }, - {} - ], - 246: [ - function (require, module, exports) { - ;(function (Buffer) { - ;(function () { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.getAccountIdentifier = void 0 - var libsodium_wrappers_1 = require('libsodium-wrappers') - var bs58check = require('bs58check') - var getAccountIdentifier = function (address, network) { - return __awaiter(void 0, void 0, void 0, function () { - var data, buffer - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - data = [address, network.type] - if (network.name) { - data.push('name:' + network.name) - } - if (network.rpcUrl) { - data.push('rpc:' + network.rpcUrl) - } - return [4, libsodium_wrappers_1.ready] - case 1: - _a.sent() - buffer = Buffer.from( - (0, libsodium_wrappers_1.crypto_generichash)(10, data.join('-')) - ) - return [2, bs58check.encode(buffer)] - } - }) - }) - } - exports.getAccountIdentifier = getAccountIdentifier - }.call(this)) - }.call(this, require('buffer').Buffer)) - }, - { bs58check: 96, buffer: 93, 'libsodium-wrappers': 153 } - ], - 247: [ - function (require, module, exports) { - ;(function (Buffer) { - ;(function () { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.getSenderId = void 0 - var libsodium_wrappers_1 = require('libsodium-wrappers') - var bs58check = require('bs58check') - var getSenderId = function (publicKey) { - return __awaiter(void 0, void 0, void 0, function () { - var buffer - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, libsodium_wrappers_1.ready] - case 1: - _a.sent() - buffer = Buffer.from( - (0, libsodium_wrappers_1.crypto_generichash)( - 5, - Buffer.from(publicKey, 'hex') - ) - ) - return [2, bs58check.encode(buffer)] - } - }) - }) - } - exports.getSenderId = getSenderId - }.call(this)) - }.call(this, require('buffer').Buffer)) - }, - { bs58check: 96, buffer: 93, 'libsodium-wrappers': 153 } - ], - 248: [ - function (require, module, exports) { - 'use strict' - var _a - Object.defineProperty(exports, '__esModule', { value: true }) - exports.messageEvents = void 0 - var events_1 = require('./events') - var beacon_types_1 = require('@airgap/beacon-types') - exports.messageEvents = - ((_a = {}), - (_a[beacon_types_1.BeaconMessageType.PermissionRequest] = { - sent: events_1.BeaconEvent.PERMISSION_REQUEST_SENT, - success: events_1.BeaconEvent.PERMISSION_REQUEST_SUCCESS, - error: events_1.BeaconEvent.PERMISSION_REQUEST_ERROR - }), - (_a[beacon_types_1.BeaconMessageType.PermissionResponse] = { - sent: events_1.BeaconEvent.UNKNOWN, - success: events_1.BeaconEvent.UNKNOWN, - error: events_1.BeaconEvent.UNKNOWN - }), - (_a[beacon_types_1.BeaconMessageType.OperationRequest] = { - sent: events_1.BeaconEvent.OPERATION_REQUEST_SENT, - success: events_1.BeaconEvent.OPERATION_REQUEST_SUCCESS, - error: events_1.BeaconEvent.OPERATION_REQUEST_ERROR - }), - (_a[beacon_types_1.BeaconMessageType.OperationResponse] = { - sent: events_1.BeaconEvent.UNKNOWN, - success: events_1.BeaconEvent.UNKNOWN, - error: events_1.BeaconEvent.UNKNOWN - }), - (_a[beacon_types_1.BeaconMessageType.SignPayloadRequest] = { - sent: events_1.BeaconEvent.SIGN_REQUEST_SENT, - success: events_1.BeaconEvent.SIGN_REQUEST_SUCCESS, - error: events_1.BeaconEvent.SIGN_REQUEST_ERROR - }), - (_a[beacon_types_1.BeaconMessageType.SignPayloadResponse] = { - sent: events_1.BeaconEvent.UNKNOWN, - success: events_1.BeaconEvent.UNKNOWN, - error: events_1.BeaconEvent.UNKNOWN - }), - (_a[beacon_types_1.BeaconMessageType.BroadcastRequest] = { - sent: events_1.BeaconEvent.BROADCAST_REQUEST_SENT, - success: events_1.BeaconEvent.BROADCAST_REQUEST_SUCCESS, - error: events_1.BeaconEvent.BROADCAST_REQUEST_ERROR - }), - (_a[beacon_types_1.BeaconMessageType.BroadcastResponse] = { - sent: events_1.BeaconEvent.UNKNOWN, - success: events_1.BeaconEvent.UNKNOWN, - error: events_1.BeaconEvent.UNKNOWN - }), - (_a[beacon_types_1.BeaconMessageType.Acknowledge] = { - sent: events_1.BeaconEvent.UNKNOWN, - success: events_1.BeaconEvent.UNKNOWN, - error: events_1.BeaconEvent.UNKNOWN - }), - (_a[beacon_types_1.BeaconMessageType.Disconnect] = { - sent: events_1.BeaconEvent.UNKNOWN, - success: events_1.BeaconEvent.UNKNOWN, - error: events_1.BeaconEvent.UNKNOWN - }), - (_a[beacon_types_1.BeaconMessageType.Error] = { - sent: events_1.BeaconEvent.UNKNOWN, - success: events_1.BeaconEvent.UNKNOWN, - error: events_1.BeaconEvent.UNKNOWN - }), - _a) - }, - { './events': 251, '@airgap/beacon-types': 287 } - ], - 249: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.getColorMode = exports.setColorMode = void 0 - var beacon_types_1 = require('@airgap/beacon-types') - var colorMode = beacon_types_1.ColorMode.LIGHT - var setColorMode = function (mode) { - colorMode = mode - } - exports.setColorMode = setColorMode - var getColorMode = function () { - return colorMode - } - exports.getColorMode = getColorMode - }, - { '@airgap/beacon-types': 287 } - ], - 250: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - var __assign = - (this && this.__assign) || - function () { - __assign = - Object.assign || - function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i] - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p] - } - return t - } - return __assign.apply(this, arguments) - } - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - var __spreadArray = - (this && this.__spreadArray) || - function (to, from, pack) { - if (pack || arguments.length === 2) - for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i) - ar[i] = from[i] - } - } - return to.concat(ar || Array.prototype.slice.call(from)) - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.DAppClient = void 0 - var events_1 = require('../events') - var beacon_types_1 = require('@airgap/beacon-types') - var beacon_core_1 = require('@airgap/beacon-core') - var beacon_utils_1 = require('@airgap/beacon-utils') - var beacon_message_events_1 = require('../beacon-message-events') - var tezblock_blockexplorer_1 = require('../utils/tezblock-blockexplorer') - var colorMode_1 = require('../colorMode') - var wallet_lists_1 = require('../ui/alert/wallet-lists') - var beacon_dapp_1 = require('@airgap/beacon-dapp') - var DappPostMessageTransport_1 = require('../transports/DappPostMessageTransport') - var DappP2PTransport_1 = require('../transports/DappP2PTransport') - var beacon_transport_postmessage_1 = require('@airgap/beacon-transport-postmessage') - var Toast_1 = require('../ui/toast/Toast') - var logger = new beacon_core_1.Logger('DAppClient') - var DAppClient = (function (_super) { - __extends(DAppClient, _super) - function DAppClient(config) { - var _a, _b, _c, _d - var _this = - _super.call( - this, - __assign( - { - storage: - config && config.storage ? config.storage : new beacon_core_1.LocalStorage() - }, - config - ) - ) || this - _this.events = new beacon_dapp_1.BeaconEventHandler() - _this.openRequests = new Map() - _this._activeAccount = new beacon_utils_1.ExposedPromise() - _this._activePeer = new beacon_utils_1.ExposedPromise() - _this.events = new beacon_dapp_1.BeaconEventHandler( - config.eventHandlers, - (_a = config.disableDefaultEvents) !== null && _a !== void 0 ? _a : false - ) - _this.blockExplorer = - (_b = config.blockExplorer) !== null && _b !== void 0 - ? _b - : new tezblock_blockexplorer_1.TezblockBlockExplorer() - _this.preferredNetwork = - (_c = config.preferredNetwork) !== null && _c !== void 0 - ? _c - : beacon_types_1.NetworkType.MAINNET - ;(0, colorMode_1.setColorMode)( - (_d = config.colorMode) !== null && _d !== void 0 - ? _d - : beacon_types_1.ColorMode.LIGHT - ) - _this.disclaimerText = config.disclaimerText - _this.appMetadataManager = new beacon_core_1.AppMetadataManager(_this.storage) - _this.activeAccountLoaded = _this.storage - .get(beacon_types_1.StorageKey.ACTIVE_ACCOUNT) - .then(function (activeAccountIdentifier) { - return __awaiter(_this, void 0, void 0, function () { - var _a - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!activeAccountIdentifier) return [3, 3] - _a = this.setActiveAccount - return [4, this.accountManager.getAccount(activeAccountIdentifier)] - case 1: - return [4, _a.apply(this, [_b.sent()])] - case 2: - _b.sent() - return [3, 5] - case 3: - return [4, this.setActiveAccount(undefined)] - case 4: - _b.sent() - _b.label = 5 - case 5: - return [2] - } - }) - }) - }) - .catch(function (storageError) { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.setActiveAccount(undefined)] - case 1: - _a.sent() - console.error(storageError) - return [2] - } - }) - }) - }) - _this.handleResponse = function (message, connectionInfo) { - return __awaiter(_this, void 0, void 0, function () { - var openRequest, _a, _b, _c, relevantTransport, _d, _e, peers, peer - var _f - var _g - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - openRequest = this.openRequests.get(message.id) - logger.log('handleResponse', 'Received message', message, connectionInfo) - if ( - !( - openRequest && - message.type === beacon_types_1.BeaconMessageType.Acknowledge - ) - ) - return [3, 2] - logger.log('acknowledge message received for ' + message.id) - console.timeLog(message.id, 'acknowledge') - _b = (_a = this.events).emit - _c = [events_1.BeaconEvent.ACKNOWLEDGE_RECEIVED] - _f = { message: message, extraInfo: {} } - return [4, this.getWalletInfo()] - case 1: - _b.apply(_a, _c.concat([((_f.walletInfo = _h.sent()), _f)])).catch( - console.error - ) - return [3, 18] - case 2: - if (!openRequest) return [3, 5] - if ( - !( - message.type === beacon_types_1.BeaconMessageType.PermissionResponse && - message.appMetadata - ) - ) - return [3, 4] - return [4, this.appMetadataManager.addAppMetadata(message.appMetadata)] - case 3: - _h.sent() - _h.label = 4 - case 4: - console.timeLog(message.id, 'response') - console.timeEnd(message.id) - if ( - message.type === beacon_types_1.BeaconMessageType.Error || - message.errorType - ) { - openRequest.reject(message) - } else { - openRequest.resolve({ message: message, connectionInfo: connectionInfo }) - } - this.openRequests.delete(message.id) - return [3, 18] - case 5: - if (!(message.type === beacon_types_1.BeaconMessageType.Disconnect)) - return [3, 17] - if (!(connectionInfo.origin === beacon_types_1.Origin.P2P)) return [3, 6] - _d = this.p2pTransport - return [3, 10] - case 6: - if (!((_g = this.postMessageTransport) !== null && _g !== void 0)) - return [3, 7] - _e = _g - return [3, 9] - case 7: - return [4, this.transport] - case 8: - _e = _h.sent() - _h.label = 9 - case 9: - _d = _e - _h.label = 10 - case 10: - relevantTransport = _d - if (!relevantTransport) return [3, 16] - return [4, relevantTransport.getPeers()] - case 11: - peers = _h.sent() - peer = peers.find(function (peerEl) { - return peerEl.senderId === message.senderId - }) - if (!peer) return [3, 15] - return [4, relevantTransport.removePeer(peer)] - case 12: - _h.sent() - return [4, this.removeAccountsForPeers([peer])] - case 13: - _h.sent() - return [4, this.events.emit(events_1.BeaconEvent.CHANNEL_CLOSED)] - case 14: - _h.sent() - return [3, 16] - case 15: - logger.error( - 'handleDisconnect', - 'cannot find peer for sender ID', - message.senderId - ) - _h.label = 16 - case 16: - return [3, 18] - case 17: - logger.error('handleResponse', 'no request found for id ', message.id) - _h.label = 18 - case 18: - return [2] - } - }) - }) - } - return _this - } - DAppClient.prototype.initInternalTransports = function () { - return __awaiter(this, void 0, void 0, function () { - var keyPair - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.keyPair] - case 1: - keyPair = _a.sent() - if (this.postMessageTransport || this.p2pTransport) { - return [2] - } - this.postMessageTransport = - new DappPostMessageTransport_1.DappPostMessageTransport( - this.name, - keyPair, - this.storage - ) - return [4, this.addListener(this.postMessageTransport)] - case 2: - _a.sent() - this.p2pTransport = new DappP2PTransport_1.DappP2PTransport( - this.name, - keyPair, - this.storage, - this.matrixNodes, - this.iconUrl, - this.appUrl - ) - return [4, this.addListener(this.p2pTransport)] - case 3: - _a.sent() - return [2] - } - }) - }) - } - DAppClient.prototype.init = function (transport) { - return __awaiter(this, void 0, void 0, function () { - var _a - var _this = this - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - if (this._initPromise) { - return [2, this._initPromise] - } - _b.label = 1 - case 1: - _b.trys.push([1, 3, , 4]) - return [4, this.activeAccountLoaded] - case 2: - _b.sent() - return [3, 4] - case 3: - _a = _b.sent() - return [3, 4] - case 4: - this._initPromise = new Promise(function (resolve) { - return __awaiter(_this, void 0, void 0, function () { - var _a, - _b, - _c, - _d, - _e, - activeAccount, - stopListening_1, - origin_1, - _f, - _g, - p2pTransport_1, - postMessageTransport_1 - var _this = this - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - if (!transport) return [3, 3] - return [4, this.addListener(transport)] - case 1: - _h.sent() - _a = resolve - return [4, _super.prototype.init.call(this, transport)] - case 2: - _a.apply(void 0, [_h.sent()]) - return [3, 16] - case 3: - if (!this._transport.isSettled()) return [3, 8] - return [4, this.transport] - case 4: - return [4, _h.sent().connect()] - case 5: - _h.sent() - _b = resolve - _d = (_c = _super.prototype.init).call - _e = [this] - return [4, this.transport] - case 6: - return [4, _d.apply(_c, _e.concat([_h.sent()]))] - case 7: - _b.apply(void 0, [_h.sent()]) - return [3, 16] - case 8: - return [4, this.getActiveAccount()] - case 9: - activeAccount = _h.sent() - stopListening_1 = function () { - if (_this.postMessageTransport) { - _this.postMessageTransport - .stopListeningForNewPeers() - .catch(console.error) - } - if (_this.p2pTransport) { - _this.p2pTransport - .stopListeningForNewPeers() - .catch(console.error) - } - } - return [4, this.initInternalTransports()] - case 10: - _h.sent() - if (!this.postMessageTransport || !this.p2pTransport) { - return [2] - } - this.postMessageTransport.connect().then().catch(console.error) - if (!(activeAccount && activeAccount.origin)) return [3, 15] - origin_1 = activeAccount.origin.type - if (!(origin_1 === beacon_types_1.Origin.EXTENSION)) return [3, 12] - _f = resolve - return [ - 4, - _super.prototype.init.call(this, this.postMessageTransport) - ] - case 11: - _f.apply(void 0, [_h.sent()]) - return [3, 14] - case 12: - if (!(origin_1 === beacon_types_1.Origin.P2P)) return [3, 14] - _g = resolve - return [4, _super.prototype.init.call(this, this.p2pTransport)] - case 13: - _g.apply(void 0, [_h.sent()]) - _h.label = 14 - case 14: - return [3, 16] - case 15: - p2pTransport_1 = this.p2pTransport - postMessageTransport_1 = this.postMessageTransport - postMessageTransport_1 - .listenForNewPeer(function (peer) { - logger.log('init', 'postmessage transport peer connected', peer) - _this.events - .emit(events_1.BeaconEvent.PAIR_SUCCESS, peer) - .catch(function (emitError) { - return console.warn(emitError) - }) - _this.setActivePeer(peer).catch(console.error) - _this - .setTransport(_this.postMessageTransport) - .catch(console.error) - stopListening_1() - resolve(beacon_types_1.TransportType.POST_MESSAGE) - }) - .catch(console.error) - p2pTransport_1 - .listenForNewPeer(function (peer) { - logger.log('init', 'p2p transport peer connected', peer) - _this.events - .emit(events_1.BeaconEvent.PAIR_SUCCESS, peer) - .catch(function (emitError) { - return console.warn(emitError) - }) - _this.setActivePeer(peer).catch(console.error) - _this.setTransport(_this.p2pTransport).catch(console.error) - stopListening_1() - resolve(beacon_types_1.TransportType.P2P) - }) - .catch(console.error) - beacon_transport_postmessage_1.PostMessageTransport.getAvailableExtensions() - .then(function () { - return __awaiter(_this, void 0, void 0, function () { - var _this = this - return __generator(this, function (_a) { - this.events - .emit(events_1.BeaconEvent.PAIR_INIT, { - p2pPeerInfo: function () { - p2pTransport_1.connect().then().catch(console.error) - return p2pTransport_1.getPairingRequestInfo() - }, - postmessagePeerInfo: function () { - return postMessageTransport_1.getPairingRequestInfo() - }, - preferredNetwork: this.preferredNetwork, - abortedHandler: function () { - _this._initPromise = undefined - }, - disclaimerText: this.disclaimerText - }) - .catch(function (emitError) { - return console.warn(emitError) - }) - return [2] - }) - }) - }) - .catch(function (error) { - _this._initPromise = undefined - console.error(error) - }) - _h.label = 16 - case 16: - return [2] - } - }) - }) - }) - return [2, this._initPromise] - } - }) - }) - } - DAppClient.prototype.getActiveAccount = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this._activeAccount.promise] - }) - }) - } - DAppClient.prototype.setActiveAccount = function (account) { - return __awaiter(this, void 0, void 0, function () { - var origin_2, peer - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (this._activeAccount.isSettled()) { - this._activeAccount = beacon_utils_1.ExposedPromise.resolve(account) - } else { - this._activeAccount.resolve(account) - } - if (!account) return [3, 8] - origin_2 = account.origin.type - return [4, this.initInternalTransports()] - case 1: - _a.sent() - if (!(origin_2 === beacon_types_1.Origin.EXTENSION)) return [3, 3] - return [4, this.setTransport(this.postMessageTransport)] - case 2: - _a.sent() - return [3, 5] - case 3: - if (!(origin_2 === beacon_types_1.Origin.P2P)) return [3, 5] - return [4, this.setTransport(this.p2pTransport)] - case 4: - _a.sent() - _a.label = 5 - case 5: - return [4, this.getPeer(account)] - case 6: - peer = _a.sent() - return [4, this.setActivePeer(peer)] - case 7: - _a.sent() - return [3, 11] - case 8: - return [4, this.setActivePeer(undefined)] - case 9: - _a.sent() - return [4, this.setTransport(undefined)] - case 10: - _a.sent() - _a.label = 11 - case 11: - return [ - 4, - this.storage.set( - beacon_types_1.StorageKey.ACTIVE_ACCOUNT, - account ? account.accountIdentifier : undefined - ) - ] - case 12: - _a.sent() - return [4, this.events.emit(events_1.BeaconEvent.ACTIVE_ACCOUNT_SET, account)] - case 13: - _a.sent() - return [2] - } - }) - }) - } - DAppClient.prototype.clearActiveAccount = function () { - return this.setActiveAccount() - } - DAppClient.prototype.setColorMode = function (colorMode) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, (0, colorMode_1.setColorMode)(colorMode)] - }) - }) - } - DAppClient.prototype.getColorMode = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, (0, colorMode_1.getColorMode)()] - }) - }) - } - DAppClient.prototype.getAppMetadata = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.getOwnAppMetadata()] - }) - }) - } - DAppClient.prototype.showPrepare = function () { - return __awaiter(this, void 0, void 0, function () { - var walletInfo - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [ - 4, - (function () { - return __awaiter(_this, void 0, void 0, function () { - var _a - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - _b.trys.push([0, 2, , 3]) - return [4, this.getWalletInfo()] - case 1: - return [2, _b.sent()] - case 2: - _a = _b.sent() - return [2, undefined] - case 3: - return [2] - } - }) - }) - })() - ] - case 1: - walletInfo = _a.sent() - return [ - 4, - this.events.emit(events_1.BeaconEvent.SHOW_PREPARE, { - walletInfo: walletInfo - }) - ] - case 2: - _a.sent() - return [2] - } - }) - }) - } - DAppClient.prototype.hideUI = function (elements) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.events.emit(events_1.BeaconEvent.HIDE_UI, elements)] - case 1: - _a.sent() - return [2] - } - }) - }) - } - DAppClient.prototype.removeAccount = function (accountIdentifier) { - return __awaiter(this, void 0, void 0, function () { - var removeAccountResult, activeAccount - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - removeAccountResult = _super.prototype.removeAccount.call( - this, - accountIdentifier - ) - return [4, this.getActiveAccount()] - case 1: - activeAccount = _a.sent() - if (!(activeAccount && activeAccount.accountIdentifier === accountIdentifier)) - return [3, 3] - return [4, this.setActiveAccount(undefined)] - case 2: - _a.sent() - _a.label = 3 - case 3: - return [2, removeAccountResult] - } - }) - }) - } - DAppClient.prototype.removeAllAccounts = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, _super.prototype.removeAllAccounts.call(this)] - case 1: - _a.sent() - return [4, this.setActiveAccount(undefined)] - case 2: - _a.sent() - return [2] - } - }) - }) - } - DAppClient.prototype.removePeer = function (peer, sendDisconnectToPeer) { - if (sendDisconnectToPeer === void 0) { - sendDisconnectToPeer = false - } - return __awaiter(this, void 0, void 0, function () { - var transport, removePeerResult - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.transport] - case 1: - transport = _a.sent() - removePeerResult = transport.removePeer(peer) - return [4, this.removeAccountsForPeers([peer])] - case 2: - _a.sent() - if (!sendDisconnectToPeer) return [3, 4] - return [4, this.sendDisconnectToPeer(peer, transport)] - case 3: - _a.sent() - _a.label = 4 - case 4: - return [2, removePeerResult] - } - }) - }) - } - DAppClient.prototype.removeAllPeers = function (sendDisconnectToPeers) { - if (sendDisconnectToPeers === void 0) { - sendDisconnectToPeers = false - } - return __awaiter(this, void 0, void 0, function () { - var transport, peers, removePeerResult, disconnectPromises - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.transport] - case 1: - transport = _a.sent() - return [4, transport.getPeers()] - case 2: - peers = _a.sent() - removePeerResult = transport.removeAllPeers() - return [4, this.removeAccountsForPeers(peers)] - case 3: - _a.sent() - if (!sendDisconnectToPeers) return [3, 5] - disconnectPromises = peers.map(function (peer) { - return _this.sendDisconnectToPeer(peer, transport) - }) - return [4, Promise.all(disconnectPromises)] - case 4: - _a.sent() - _a.label = 5 - case 5: - return [2, removePeerResult] - } - }) - }) - } - DAppClient.prototype.subscribeToEvent = function (internalEvent, eventCallback) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.events.on(internalEvent, eventCallback)] - case 1: - _a.sent() - return [2] - } - }) - }) - } - DAppClient.prototype.checkPermissions = function (type) { - return __awaiter(this, void 0, void 0, function () { - var activeAccount, permissions - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (type === beacon_types_1.BeaconMessageType.PermissionRequest) { - return [2, true] - } - return [4, this.getActiveAccount()] - case 1: - activeAccount = _a.sent() - if (!!activeAccount) return [3, 3] - return [4, this.sendInternalError('No active account set!')] - case 2: - throw _a.sent() - case 3: - permissions = activeAccount.scopes - switch (type) { - case beacon_types_1.BeaconMessageType.OperationRequest: - return [ - 2, - permissions.includes(beacon_types_1.PermissionScope.OPERATION_REQUEST) - ] - case beacon_types_1.BeaconMessageType.SignPayloadRequest: - return [2, permissions.includes(beacon_types_1.PermissionScope.SIGN)] - case beacon_types_1.BeaconMessageType.BroadcastRequest: - return [2, true] - default: - return [2, false] - } - return [2] - } - }) - }) - } - DAppClient.prototype.requestPermissions = function (input) { - return __awaiter(this, void 0, void 0, function () { - var request, - _a, - message, - connectionInfo, - publicKey, - address, - accountInfo, - output, - _b, - _c - var _d, _e, _f - var _this = this - return __generator(this, function (_g) { - switch (_g.label) { - case 0: - _d = {} - return [4, this.getOwnAppMetadata()] - case 1: - request = - ((_d.appMetadata = _g.sent()), - (_d.type = beacon_types_1.BeaconMessageType.PermissionRequest), - (_d.network = - input && input.network - ? input.network - : { type: beacon_types_1.NetworkType.MAINNET }), - (_d.scopes = - input && input.scopes - ? input.scopes - : [ - beacon_types_1.PermissionScope.OPERATION_REQUEST, - beacon_types_1.PermissionScope.SIGN - ]), - _d) - return [ - 4, - this.makeRequest(request).catch(function (requestError) { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.handleRequestError(request, requestError)] - case 1: - throw _a.sent() - } - }) - }) - }) - ] - case 2: - ;(_a = _g.sent()), - (message = _a.message), - (connectionInfo = _a.connectionInfo) - publicKey = message.publicKey || message.pubkey || message.pubKey - return [4, (0, beacon_utils_1.getAddressFromPublicKey)(publicKey)] - case 3: - address = _g.sent() - _e = {} - return [4, (0, beacon_core_1.getAccountIdentifier)(address, message.network)] - case 4: - accountInfo = - ((_e.accountIdentifier = _g.sent()), - (_e.senderId = message.senderId), - (_e.origin = { type: connectionInfo.origin, id: connectionInfo.id }), - (_e.address = address), - (_e.publicKey = publicKey), - (_e.network = message.network), - (_e.scopes = message.scopes), - (_e.threshold = message.threshold), - (_e.connectedAt = new Date().getTime()), - _e) - return [4, this.accountManager.addAccount(accountInfo)] - case 5: - _g.sent() - return [4, this.setActiveAccount(accountInfo)] - case 6: - _g.sent() - output = __assign(__assign({}, message), { - address: address, - accountInfo: accountInfo - }) - _b = this.notifySuccess - _c = [request] - _f = { - account: accountInfo, - output: output, - blockExplorer: this.blockExplorer, - connectionContext: connectionInfo - } - return [4, this.getWalletInfo()] - case 7: - return [4, _b.apply(this, _c.concat([((_f.walletInfo = _g.sent()), _f)]))] - case 8: - _g.sent() - return [2, output] - } - }) - }) - } - DAppClient.prototype.requestSignPayload = function (input) { - return __awaiter(this, void 0, void 0, function () { - var activeAccount, - payload, - signingType, - request, - _a, - message, - connectionInfo, - _b, - _c - var _d - var _this = this - return __generator(this, function (_e) { - switch (_e.label) { - case 0: - if (!!input.payload) return [3, 2] - return [4, this.sendInternalError('Payload must be provided')] - case 1: - throw _e.sent() - case 2: - return [4, this.getActiveAccount()] - case 3: - activeAccount = _e.sent() - if (!!activeAccount) return [3, 5] - return [4, this.sendInternalError('No active account!')] - case 4: - throw _e.sent() - case 5: - payload = input.payload - if (typeof payload !== 'string') { - throw new Error('Payload must be a string') - } - signingType = (function () { - switch (input.signingType) { - case beacon_types_1.SigningType.OPERATION: - if (!payload.startsWith('03')) { - throw new Error( - 'When using signing type "OPERATION", the payload must start with prefix "03"' - ) - } - return beacon_types_1.SigningType.OPERATION - case beacon_types_1.SigningType.MICHELINE: - if (!payload.startsWith('05')) { - throw new Error( - 'When using signing type "MICHELINE", the payload must start with prefix "05"' - ) - } - return beacon_types_1.SigningType.MICHELINE - case beacon_types_1.SigningType.RAW: - default: - return beacon_types_1.SigningType.RAW - } - })() - request = { - type: beacon_types_1.BeaconMessageType.SignPayloadRequest, - signingType: signingType, - payload: payload, - sourceAddress: input.sourceAddress || activeAccount.address - } - return [ - 4, - this.makeRequest(request).catch(function (requestError) { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.handleRequestError(request, requestError)] - case 1: - throw _a.sent() - } - }) - }) - }) - ] - case 6: - ;(_a = _e.sent()), - (message = _a.message), - (connectionInfo = _a.connectionInfo) - _b = this.notifySuccess - _c = [request] - _d = { - account: activeAccount, - output: message, - connectionContext: connectionInfo - } - return [4, this.getWalletInfo()] - case 7: - return [4, _b.apply(this, _c.concat([((_d.walletInfo = _e.sent()), _d)]))] - case 8: - _e.sent() - return [2, message] - } - }) - }) - } - DAppClient.prototype.requestOperation = function (input) { - return __awaiter(this, void 0, void 0, function () { - var activeAccount, request, _a, message, connectionInfo, _b, _c - var _d - var _this = this - return __generator(this, function (_e) { - switch (_e.label) { - case 0: - if (!!input.operationDetails) return [3, 2] - return [4, this.sendInternalError('Operation details must be provided')] - case 1: - throw _e.sent() - case 2: - return [4, this.getActiveAccount()] - case 3: - activeAccount = _e.sent() - if (!!activeAccount) return [3, 5] - return [4, this.sendInternalError('No active account!')] - case 4: - throw _e.sent() - case 5: - request = { - type: beacon_types_1.BeaconMessageType.OperationRequest, - network: activeAccount.network || { - type: beacon_types_1.NetworkType.MAINNET - }, - operationDetails: input.operationDetails, - sourceAddress: activeAccount.address || '' - } - return [ - 4, - this.makeRequest(request).catch(function (requestError) { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.handleRequestError(request, requestError)] - case 1: - throw _a.sent() - } - }) - }) - }) - ] - case 6: - ;(_a = _e.sent()), - (message = _a.message), - (connectionInfo = _a.connectionInfo) - _b = this.notifySuccess - _c = [request] - _d = { - account: activeAccount, - output: message, - blockExplorer: this.blockExplorer, - connectionContext: connectionInfo - } - return [4, this.getWalletInfo()] - case 7: - return [4, _b.apply(this, _c.concat([((_d.walletInfo = _e.sent()), _d)]))] - case 8: - _e.sent() - return [2, message] - } - }) - }) - } - DAppClient.prototype.requestBroadcast = function (input) { - return __awaiter(this, void 0, void 0, function () { - var network, request, _a, message, connectionInfo, _b, _c - var _d - var _this = this - return __generator(this, function (_e) { - switch (_e.label) { - case 0: - if (!!input.signedTransaction) return [3, 2] - return [4, this.sendInternalError('Signed transaction must be provided')] - case 1: - throw _e.sent() - case 2: - network = input.network || { type: beacon_types_1.NetworkType.MAINNET } - request = { - type: beacon_types_1.BeaconMessageType.BroadcastRequest, - network: network, - signedTransaction: input.signedTransaction - } - return [ - 4, - this.makeRequest(request).catch(function (requestError) { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.handleRequestError(request, requestError)] - case 1: - throw _a.sent() - } - }) - }) - }) - ] - case 3: - ;(_a = _e.sent()), - (message = _a.message), - (connectionInfo = _a.connectionInfo) - _b = this.notifySuccess - _c = [request] - _d = { - network: network, - output: message, - blockExplorer: this.blockExplorer, - connectionContext: connectionInfo - } - return [4, this.getWalletInfo()] - case 4: - return [4, _b.apply(this, _c.concat([((_d.walletInfo = _e.sent()), _d)]))] - case 5: - _e.sent() - return [2, message] - } - }) - }) - } - DAppClient.prototype.setActivePeer = function (peer) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (this._activePeer.isSettled()) { - this._activePeer = beacon_utils_1.ExposedPromise.resolve(peer) - } else { - this._activePeer.resolve(peer) - } - if (!peer) return [3, 5] - return [4, this.initInternalTransports()] - case 1: - _a.sent() - if (!(peer.type === 'postmessage-pairing-response')) return [3, 3] - return [4, this.setTransport(this.postMessageTransport)] - case 2: - _a.sent() - return [3, 5] - case 3: - if (!(peer.type === 'p2p-pairing-response')) return [3, 5] - return [4, this.setTransport(this.p2pTransport)] - case 4: - _a.sent() - _a.label = 5 - case 5: - return [2] - } - }) - }) - } - DAppClient.prototype.setTransport = function (transport) { - return __awaiter(this, void 0, void 0, function () { - var result - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!transport) { - this._initPromise = undefined - } - result = _super.prototype.setTransport.call(this, transport) - return [ - 4, - this.events.emit(events_1.BeaconEvent.ACTIVE_TRANSPORT_SET, transport) - ] - case 1: - _a.sent() - return [2, result] - } - }) - }) - } - DAppClient.prototype.sendInternalError = function (errorMessage) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [ - 4, - this.events.emit(events_1.BeaconEvent.INTERNAL_ERROR, { - text: errorMessage - }) - ] - case 1: - _a.sent() - throw new Error(errorMessage) - } - }) - }) - } - DAppClient.prototype.removeAccountsForPeers = function (peersToRemove) { - return __awaiter(this, void 0, void 0, function () { - var accounts, - peerIdsToRemove, - accountsToRemove, - accountIdentifiersToRemove, - activeAccount - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.accountManager.getAccounts()] - case 1: - accounts = _a.sent() - peerIdsToRemove = peersToRemove.map(function (peer) { - return peer.senderId - }) - accountsToRemove = accounts.filter(function (account) { - return peerIdsToRemove.includes(account.senderId) - }) - accountIdentifiersToRemove = accountsToRemove.map(function (accountInfo) { - return accountInfo.accountIdentifier - }) - return [4, this.accountManager.removeAccounts(accountIdentifiersToRemove)] - case 2: - _a.sent() - return [4, this.getActiveAccount()] - case 3: - activeAccount = _a.sent() - if (!activeAccount) return [3, 5] - if (!accountIdentifiersToRemove.includes(activeAccount.accountIdentifier)) - return [3, 5] - return [4, this.setActiveAccount(undefined)] - case 4: - _a.sent() - _a.label = 5 - case 5: - return [2] - } - }) - }) - } - DAppClient.prototype.handleRequestError = function (request, beaconError) { - return __awaiter(this, void 0, void 0, function () { - var buttons, actionCallback, peer, activeAccount, _a, _b, _c, _d - var _e - var _this = this - return __generator(this, function (_f) { - switch (_f.label) { - case 0: - logger.error('handleRequestError', 'error response', beaconError) - if (!beaconError.errorType) return [3, 9] - buttons = [] - if ( - beaconError.errorType === - beacon_types_1.BeaconErrorType.NO_PRIVATE_KEY_FOUND_ERROR - ) { - actionCallback = function () { - return __awaiter(_this, void 0, void 0, function () { - var operationRequest, accountInfo, accountIdentifier - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - operationRequest = request - if (!(operationRequest.sourceAddress && operationRequest.network)) - return [3, 4] - return [ - 4, - (0, beacon_core_1.getAccountIdentifier)( - operationRequest.sourceAddress, - operationRequest.network - ) - ] - case 1: - accountIdentifier = _a.sent() - return [4, this.getAccount(accountIdentifier)] - case 2: - accountInfo = _a.sent() - if (!accountInfo) return [3, 4] - return [4, this.removeAccount(accountInfo.accountIdentifier)] - case 3: - _a.sent() - _a.label = 4 - case 4: - return [2] - } - }) - }) - } - buttons.push({ text: 'Remove account', actionCallback: actionCallback }) - } - return [4, this.getPeer()] - case 1: - peer = _f.sent() - return [4, this.getActiveAccount()] - case 2: - activeAccount = _f.sent() - _a = request.type === beacon_types_1.BeaconMessageType.PermissionRequest - if (!_a) return [3, 4] - return [4, this.getActiveAccount()] - case 3: - _a = _f.sent() === undefined - _f.label = 4 - case 4: - if (!_a) return [3, 7] - this._initPromise = undefined - this.postMessageTransport = undefined - this.p2pTransport = undefined - return [4, this.setTransport()] - case 5: - _f.sent() - return [4, this.setActivePeer()] - case 6: - _f.sent() - _f.label = 7 - case 7: - _c = (_b = this.events).emit - _d = [beacon_message_events_1.messageEvents[request.type].error] - _e = { errorResponse: beaconError } - return [4, this.getWalletInfo(peer, activeAccount)] - case 8: - _c.apply(_b, _d.concat([((_e.walletInfo = _f.sent()), _e), buttons])).catch( - function (emitError) { - return logger.error('handleRequestError', emitError) - } - ) - throw beacon_core_1.BeaconError.getError( - beaconError.errorType, - beaconError.errorData - ) - case 9: - throw beaconError - } - }) - }) - } - DAppClient.prototype.notifySuccess = function (request, response) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - this.events - .emit(beacon_message_events_1.messageEvents[request.type].success, response) - .catch(function (emitError) { - return console.warn(emitError) - }) - return [2] - }) - }) - } - DAppClient.prototype.getWalletInfo = function (peer, account) { - var _a, _b - return __awaiter(this, void 0, void 0, function () { - var selectedAccount, - _c, - selectedPeer, - _d, - walletInfo, - typedPeer, - lowerCaseCompare, - selectedApp, - type, - deeplink - return __generator(this, function (_e) { - switch (_e.label) { - case 0: - if (!account) return [3, 1] - _c = account - return [3, 3] - case 1: - return [4, this.getActiveAccount()] - case 2: - _c = _e.sent() - _e.label = 3 - case 3: - selectedAccount = _c - if (!peer) return [3, 4] - _d = peer - return [3, 6] - case 4: - return [4, this.getPeer(selectedAccount)] - case 5: - _d = _e.sent() - _e.label = 6 - case 6: - selectedPeer = _d - if (!selectedAccount) return [3, 8] - return [4, this.appMetadataManager.getAppMetadata(selectedAccount.senderId)] - case 7: - walletInfo = _e.sent() - _e.label = 8 - case 8: - typedPeer = selectedPeer - if (!walletInfo) { - walletInfo = { name: typedPeer.name, icon: typedPeer.icon } - } - lowerCaseCompare = function (str1, str2) { - if (str1 && str2) { - return str1.toLowerCase() === str2.toLowerCase() - } - return false - } - if ( - wallet_lists_1.iOSList.find(function (app) { - return lowerCaseCompare( - app.name, - walletInfo === null || walletInfo === void 0 ? void 0 : walletInfo.name - ) - }) - ) { - selectedApp = wallet_lists_1.iOSList.find(function (app) { - return lowerCaseCompare( - app.name, - walletInfo === null || walletInfo === void 0 ? void 0 : walletInfo.name - ) - }) - type = 'mobile' - } else if ( - wallet_lists_1.webList.find(function (app) { - return lowerCaseCompare( - app.name, - walletInfo === null || walletInfo === void 0 ? void 0 : walletInfo.name - ) - }) - ) { - selectedApp = wallet_lists_1.webList.find(function (app) { - return lowerCaseCompare( - app.name, - walletInfo === null || walletInfo === void 0 ? void 0 : walletInfo.name - ) - }) - type = 'web' - } else if ( - wallet_lists_1.desktopList.find(function (app) { - return lowerCaseCompare( - app.name, - walletInfo === null || walletInfo === void 0 ? void 0 : walletInfo.name - ) - }) - ) { - selectedApp = wallet_lists_1.desktopList.find(function (app) { - return lowerCaseCompare( - app.name, - walletInfo === null || walletInfo === void 0 ? void 0 : walletInfo.name - ) - }) - type = 'desktop' - } else if ( - wallet_lists_1.extensionList.find(function (app) { - return lowerCaseCompare( - app.name, - walletInfo === null || walletInfo === void 0 ? void 0 : walletInfo.name - ) - }) - ) { - selectedApp = wallet_lists_1.extensionList.find(function (app) { - return lowerCaseCompare( - app.name, - walletInfo === null || walletInfo === void 0 ? void 0 : walletInfo.name - ) - }) - type = 'extension' - } - if (selectedApp) { - deeplink = void 0 - if (selectedApp.hasOwnProperty('links')) { - deeplink = - selectedApp.links[ - (_a = - selectedAccount === null || selectedAccount === void 0 - ? void 0 - : selectedAccount.network.type) !== null && _a !== void 0 - ? _a - : this.preferredNetwork - ] - } else if (selectedApp.hasOwnProperty('deepLink')) { - deeplink = selectedApp.deepLink - } - return [ - 2, - { - name: walletInfo.name, - icon: - (_b = walletInfo.icon) !== null && _b !== void 0 - ? _b - : selectedApp.logo, - deeplink: deeplink, - type: type - } - ] - } - return [2, walletInfo] - } - }) - }) - } - DAppClient.prototype.getPeer = function (account) { - var _a, _b, _c, _d - return __awaiter(this, void 0, void 0, function () { - var peer, postMessagePeers, p2pPeers, peers - return __generator(this, function (_e) { - switch (_e.label) { - case 0: - if (!account) return [3, 3] - logger.log('getPeer', 'We have an account', account) - return [ - 4, - (_a = this.postMessageTransport) === null || _a === void 0 - ? void 0 - : _a.getPeers() - ] - case 1: - postMessagePeers = (_b = _e.sent()) !== null && _b !== void 0 ? _b : [] - return [ - 4, - (_c = this.p2pTransport) === null || _c === void 0 ? void 0 : _c.getPeers() - ] - case 2: - p2pPeers = (_d = _e.sent()) !== null && _d !== void 0 ? _d : [] - peers = __spreadArray( - __spreadArray([], postMessagePeers, true), - p2pPeers, - true - ) - logger.log('getPeer', 'Found peers', peers, account) - peer = peers.find(function (peerEl) { - return peerEl.senderId === account.senderId - }) - if (!peer) { - peer = peers.find(function (peerEl) { - return peerEl.extensionId === account.origin.id - }) - } - return [3, 5] - case 3: - return [4, this._activePeer.promise] - case 4: - peer = _e.sent() - logger.log('getPeer', 'Active peer', peer) - _e.label = 5 - case 5: - if (!peer) { - throw new Error('No matching peer found.') - } - return [2, peer] - } - }) - }) - } - DAppClient.prototype.makeRequest = function (requestInput) { - var _a - return __awaiter(this, void 0, void 0, function () { - var messageId, request, _b, exposed, payload, account, peer, walletInfo, sendError_1 - var _c - var _this = this - return __generator(this, function (_d) { - switch (_d.label) { - case 0: - return [4, (0, beacon_utils_1.generateGUID)()] - case 1: - messageId = _d.sent() - console.time(messageId) - logger.log('makeRequest', 'starting') - return [4, this.init()] - case 2: - _d.sent() - console.timeLog(messageId, 'init done') - logger.log('makeRequest', 'after init') - return [4, this.addRequestAndCheckIfRateLimited()] - case 3: - if (_d.sent()) { - this.events - .emit(events_1.BeaconEvent.LOCAL_RATE_LIMIT_REACHED) - .catch(function (emitError) { - return console.warn(emitError) - }) - throw new Error('rate limit reached') - } - return [4, this.checkPermissions(requestInput.type)] - case 4: - if (!_d.sent()) { - this.events - .emit(events_1.BeaconEvent.NO_PERMISSIONS) - .catch(function (emitError) { - return console.warn(emitError) - }) - throw new Error('No permissions to send this request to wallet!') - } - if (!!this.beaconId) return [3, 6] - return [4, this.sendInternalError('BeaconID not defined')] - case 5: - throw _d.sent() - case 6: - _c = { id: messageId, version: beacon_core_1.BEACON_VERSION } - _b = beacon_core_1.getSenderId - return [4, this.beaconId] - case 7: - return [4, _b.apply(void 0, [_d.sent()])] - case 8: - request = __assign.apply(void 0, [ - ((_c.senderId = _d.sent()), _c), - requestInput - ]) - exposed = new beacon_utils_1.ExposedPromise() - this.addOpenRequest(request.id, exposed) - return [4, new beacon_core_1.Serializer().serialize(request)] - case 9: - payload = _d.sent() - return [4, this.getActiveAccount()] - case 10: - account = _d.sent() - return [4, this.getPeer(account)] - case 11: - peer = _d.sent() - return [4, this.getWalletInfo(peer, account)] - case 12: - walletInfo = _d.sent() - logger.log('makeRequest', 'sending message', request) - console.timeLog(messageId, 'sending') - _d.label = 13 - case 13: - _d.trys.push([13, 16, , 17]) - return [4, this.transport] - case 14: - return [4, _d.sent().send(payload, peer)] - case 15: - _d.sent() - return [3, 17] - case 16: - sendError_1 = _d.sent() - this.events.emit(events_1.BeaconEvent.INTERNAL_ERROR, { - text: 'Unable to send message. If this problem persists, please reset the connection and pair your wallet again.', - buttons: [ - { - text: 'Reset Connection', - actionCallback: function () { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, (0, Toast_1.closeToast)()] - case 1: - _a.sent() - this.disconnect() - return [2] - } - }) - }) - } - } - ] - }) - console.timeLog(messageId, 'send error') - throw sendError_1 - case 17: - console.timeLog(messageId, 'sent') - this.events - .emit(beacon_message_events_1.messageEvents[requestInput.type].sent, { - walletInfo: __assign(__assign({}, walletInfo), { - name: (_a = walletInfo.name) !== null && _a !== void 0 ? _a : 'Wallet' - }), - extraInfo: { - resetCallback: function () { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - this.disconnect() - return [2] - }) - }) - } - } - }) - .catch(function (emitError) { - return console.warn(emitError) - }) - return [2, exposed.promise] - } - }) - }) - } - DAppClient.prototype.disconnect = function () { - return __awaiter(this, void 0, void 0, function () { - var _a, _b, _c - return __generator(this, function (_d) { - switch (_d.label) { - case 0: - this.postMessageTransport = undefined - this.p2pTransport = undefined - _b = (_a = Promise).all - _c = [this.clearActiveAccount()] - return [4, this.transport] - case 1: - return [4, _b.apply(_a, [_c.concat([_d.sent().disconnect()])])] - case 2: - _d.sent() - return [2] - } - }) - }) - } - DAppClient.prototype.addOpenRequest = function (id, promise) { - logger.log( - 'addOpenRequest', - this.name, - 'adding request ' + id + ' and waiting for answer' - ) - this.openRequests.set(id, promise) - } - return DAppClient - })(beacon_core_1.Client) - exports.DAppClient = DAppClient - }, - { - '../beacon-message-events': 248, - '../colorMode': 249, - '../events': 251, - '../transports/DappP2PTransport': 253, - '../transports/DappPostMessageTransport': 254, - '../ui/alert/wallet-lists': 259, - '../ui/toast/Toast': 260, - '../utils/tezblock-blockexplorer': 268, - '@airgap/beacon-core': 229, - '@airgap/beacon-dapp': 252, - '@airgap/beacon-transport-postmessage': 286, - '@airgap/beacon-types': 287, - '@airgap/beacon-utils': 302 - } - ], - 251: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - var __spreadArray = - (this && this.__spreadArray) || - function (to, from, pack) { - if (pack || arguments.length === 2) - for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i) - ar[i] = from[i] - } - } - return to.concat(ar || Array.prototype.slice.call(from)) - } - var _a - Object.defineProperty(exports, '__esModule', { value: true }) - exports.BeaconEventHandler = exports.defaultEventCallbacks = exports.BeaconEvent = void 0 - var beacon_dapp_1 = require('@airgap/beacon-dapp') - var beacon_types_1 = require('@airgap/beacon-types') - var beacon_core_1 = require('@airgap/beacon-core') - var shorten_string_1 = require('./utils/shorten-string') - var platform_1 = require('./utils/platform') - var logger = new beacon_core_1.Logger('BeaconEvents') - var SUCCESS_TIMER = 5 * 1e3 - var SVG_EXTERNAL = - '' - var BeaconEvent - ;(function (BeaconEvent) { - BeaconEvent['PERMISSION_REQUEST_SENT'] = 'PERMISSION_REQUEST_SENT' - BeaconEvent['PERMISSION_REQUEST_SUCCESS'] = 'PERMISSION_REQUEST_SUCCESS' - BeaconEvent['PERMISSION_REQUEST_ERROR'] = 'PERMISSION_REQUEST_ERROR' - BeaconEvent['OPERATION_REQUEST_SENT'] = 'OPERATION_REQUEST_SENT' - BeaconEvent['OPERATION_REQUEST_SUCCESS'] = 'OPERATION_REQUEST_SUCCESS' - BeaconEvent['OPERATION_REQUEST_ERROR'] = 'OPERATION_REQUEST_ERROR' - BeaconEvent['SIGN_REQUEST_SENT'] = 'SIGN_REQUEST_SENT' - BeaconEvent['SIGN_REQUEST_SUCCESS'] = 'SIGN_REQUEST_SUCCESS' - BeaconEvent['SIGN_REQUEST_ERROR'] = 'SIGN_REQUEST_ERROR' - BeaconEvent['BROADCAST_REQUEST_SENT'] = 'BROADCAST_REQUEST_SENT' - BeaconEvent['BROADCAST_REQUEST_SUCCESS'] = 'BROADCAST_REQUEST_SUCCESS' - BeaconEvent['BROADCAST_REQUEST_ERROR'] = 'BROADCAST_REQUEST_ERROR' - BeaconEvent['ACKNOWLEDGE_RECEIVED'] = 'ACKNOWLEDGE_RECEIVED' - BeaconEvent['LOCAL_RATE_LIMIT_REACHED'] = 'LOCAL_RATE_LIMIT_REACHED' - BeaconEvent['NO_PERMISSIONS'] = 'NO_PERMISSIONS' - BeaconEvent['ACTIVE_ACCOUNT_SET'] = 'ACTIVE_ACCOUNT_SET' - BeaconEvent['ACTIVE_TRANSPORT_SET'] = 'ACTIVE_TRANSPORT_SET' - BeaconEvent['SHOW_PREPARE'] = 'SHOW_PREPARE' - BeaconEvent['HIDE_UI'] = 'HIDE_UI' - BeaconEvent['PAIR_INIT'] = 'PAIR_INIT' - BeaconEvent['PAIR_SUCCESS'] = 'PAIR_SUCCESS' - BeaconEvent['CHANNEL_CLOSED'] = 'CHANNEL_CLOSED' - BeaconEvent['INTERNAL_ERROR'] = 'INTERNAL_ERROR' - BeaconEvent['UNKNOWN'] = 'UNKNOWN' - })((BeaconEvent = exports.BeaconEvent || (exports.BeaconEvent = {}))) - var showSentToast = function (data) { - return __awaiter(void 0, void 0, void 0, function () { - var openWalletAction, actions, link_1 - return __generator(this, function (_a) { - actions = [] - if (data.walletInfo.deeplink) { - if ( - data.walletInfo.type === 'web' || - (data.walletInfo.type === 'mobile' && (0, platform_1.isMobile)(window)) || - (data.walletInfo.type === 'desktop' && !(0, platform_1.isMobile)(window)) - ) { - link_1 = data.walletInfo.deeplink - openWalletAction = function () { - return __awaiter(void 0, void 0, void 0, function () { - var a - return __generator(this, function (_a) { - a = document.createElement('a') - a.setAttribute('href', link_1) - a.setAttribute('target', '_blank') - a.dispatchEvent( - new MouseEvent('click', { - view: window, - bubbles: true, - cancelable: true - }) - ) - return [2] - }) - }) - } - } - } - actions.push({ - text: 'No answer from your wallet received yet. Please make sure the wallet is open.' - }) - actions.push({ - text: 'Did you make a mistake?', - actionText: 'Cancel Request', - actionCallback: function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, (0, beacon_dapp_1.closeToast)()] - case 1: - _a.sent() - return [2] - } - }) - }) - } - }) - actions.push({ - text: 'Wallet not receiving request?', - actionText: 'Reset Connection', - actionCallback: function () { - return __awaiter(void 0, void 0, void 0, function () { - var resetCallback - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, (0, beacon_dapp_1.closeToast)()] - case 1: - _a.sent() - resetCallback = data.extraInfo.resetCallback - if (!resetCallback) return [3, 3] - logger.log('showSentToast', 'resetCallback invoked') - return [4, resetCallback()] - case 2: - _a.sent() - _a.label = 3 - case 3: - return [2] - } - }) - }) - } - }) - ;(0, beacon_dapp_1.openToast)({ - body: 'Request sent to {{wallet}}', - walletInfo: data.walletInfo, - state: 'loading', - actions: actions, - openWalletAction: openWalletAction - }).catch(function (toastError) { - return console.error(toastError) - }) - return [2] - }) - }) - } - var showAcknowledgedToast = function (data) { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - ;(0, beacon_dapp_1.openToast)({ - body: 'Awaiting confirmation in {{wallet}}', - state: 'acknowledge', - walletInfo: data.walletInfo - }).catch(function (toastError) { - return console.error(toastError) - }) - return [2] - }) - }) - } - var showPrepare = function (data) { - return __awaiter(void 0, void 0, void 0, function () { - var text - return __generator(this, function (_a) { - text = data.walletInfo - ? 'Preparing Request for {{wallet}}...' - : 'Preparing Request...' - ;(0, beacon_dapp_1.openToast)({ - body: '' + text + '', - state: 'prepare', - walletInfo: data.walletInfo - }).catch(function (toastError) { - return console.error(toastError) - }) - return [2] - }) - }) - } - var hideUI = function (elements) { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - if (elements) { - if (elements.includes('alert')) { - ;(0, beacon_dapp_1.closeAlerts)() - } - if (elements.includes('toast')) { - ;(0, beacon_dapp_1.closeToast)() - } - } else { - ;(0, beacon_dapp_1.closeToast)() - } - return [2] - }) - }) - } - var showNoPermissionAlert = function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [ - 4, - (0, beacon_dapp_1.openAlert)({ - title: 'No Permission', - body: 'Please allow the wallet to handle this type of request.' - }) - ] - case 1: - _a.sent() - return [2] - } - }) - }) - } - var showErrorToast = function (response, buttons) { - return __awaiter(void 0, void 0, void 0, function () { - var error, actions - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - error = response.errorResponse.errorType - ? beacon_core_1.BeaconError.getError( - response.errorResponse.errorType, - response.errorResponse.errorData - ) - : new beacon_core_1.UnknownBeaconError() - actions = [ - { text: '' + error.title + '' }, - { text: error.description } - ] - if ( - response.errorResponse.errorType === - beacon_types_1.BeaconErrorType.TRANSACTION_INVALID_ERROR && - response.errorResponse.errorData - ) { - actions.push({ - text: '', - actionText: 'Show Details', - actionCallback: function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, (0, beacon_dapp_1.closeToast)()] - case 1: - _a.sent() - return [ - 4, - (0, beacon_dapp_1.openAlert)({ - title: error.title, - body: error.fullDescription, - buttons: buttons - }) - ] - case 2: - _a.sent() - return [2] - } - }) - }) - } - }) - } - return [ - 4, - (0, beacon_dapp_1.openToast)({ - body: '{{wallet}} has returned an error', - timer: - response.errorResponse.errorType === - beacon_types_1.BeaconErrorType.ABORTED_ERROR - ? SUCCESS_TIMER - : undefined, - state: 'finished', - walletInfo: response.walletInfo, - actions: actions - }) - ] - case 1: - _a.sent() - return [2] - } - }) - }) - } - var showRateLimitReached = function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - ;(0, beacon_dapp_1.openAlert)({ - title: 'Error', - body: 'Rate limit reached. Please slow down', - buttons: [{ text: 'Done', style: 'outline' }], - timer: 3e3 - }).catch(function (toastError) { - return console.error(toastError) - }) - return [2] - }) - }) - } - var showExtensionConnectedAlert = function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, (0, beacon_dapp_1.closeAlerts)()] - case 1: - _a.sent() - return [2] - } - }) - }) - } - var showChannelClosedAlert = function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [ - 4, - (0, beacon_dapp_1.openAlert)({ - title: 'Channel closed', - body: 'Your peer has closed the connection.', - buttons: [{ text: 'Done', style: 'outline' }], - timer: 1500 - }) - ] - case 1: - _a.sent() - return [2] - } - }) - }) - } - var showInternalErrorAlert = function (data) { - return __awaiter(void 0, void 0, void 0, function () { - var buttons, alertConfig - var _a - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - buttons = __spreadArray( - [], - (_a = data.buttons) !== null && _a !== void 0 ? _a : [], - true - ) - buttons.push({ text: 'Done', style: 'outline' }) - alertConfig = { title: 'Internal Error', body: data.text, buttons: buttons } - return [4, (0, beacon_dapp_1.openAlert)(alertConfig)] - case 1: - _b.sent() - return [2] - } - }) - }) - } - var showPairAlert = function (data) { - return __awaiter(void 0, void 0, void 0, function () { - var alertConfig - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - alertConfig = { - title: 'Choose your preferred wallet', - body: '

', - pairingPayload: { - p2pSyncCode: data.p2pPeerInfo, - postmessageSyncCode: data.postmessagePeerInfo, - preferredNetwork: data.preferredNetwork - }, - closeButtonCallback: data.abortedHandler, - disclaimerText: data.disclaimerText - } - return [4, (0, beacon_dapp_1.openAlert)(alertConfig)] - case 1: - _a.sent() - return [2] - } - }) - }) - } - var showPermissionSuccessAlert = function (data) { - return __awaiter(void 0, void 0, void 0, function () { - var output - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - output = data.output - return [ - 4, - (0, beacon_dapp_1.openToast)({ - body: '{{wallet}} has granted permission', - timer: SUCCESS_TIMER, - walletInfo: data.walletInfo, - state: 'finished', - actions: [ - { - text: 'Address', - actionText: - '' + - (0, shorten_string_1.shortenString)(output.address) + - '' - }, - { text: 'Network', actionText: '' + output.network.type }, - { text: 'Permissions', actionText: output.scopes.join(', ') } - ] - }) - ] - case 1: - _a.sent() - return [2] - } - }) - }) - } - var showOperationSuccessAlert = function (data) { - return __awaiter(void 0, void 0, void 0, function () { - var account, output, blockExplorer - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - ;(account = data.account), - (output = data.output), - (blockExplorer = data.blockExplorer) - return [ - 4, - (0, beacon_dapp_1.openToast)({ - body: '{{wallet}} successfully submitted operation', - timer: SUCCESS_TIMER, - state: 'finished', - walletInfo: data.walletInfo, - actions: [ - { - text: - '' + - (0, shorten_string_1.shortenString)(output.transactionHash) + - '', - actionText: 'Open Blockexplorer ' + SVG_EXTERNAL, - actionCallback: function () { - return __awaiter(void 0, void 0, void 0, function () { - var link - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [ - 4, - blockExplorer.getTransactionLink( - output.transactionHash, - account.network - ) - ] - case 1: - link = _a.sent() - window.open(link, '_blank') - return [4, (0, beacon_dapp_1.closeToast)()] - case 2: - _a.sent() - return [2] - } - }) - }) - } - } - ] - }) - ] - case 1: - _a.sent() - return [2] - } - }) - }) - } - var showSignSuccessAlert = function (data) { - return __awaiter(void 0, void 0, void 0, function () { - var output - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - output = data.output - return [ - 4, - (0, beacon_dapp_1.openToast)({ - body: '{{wallet}} successfully signed payload', - timer: SUCCESS_TIMER, - state: 'finished', - walletInfo: data.walletInfo, - actions: [ - { - text: - 'Signature: ' + - (0, shorten_string_1.shortenString)(output.signature) + - '', - actionText: 'Copy to clipboard', - actionCallback: function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - navigator.clipboard.writeText(output.signature).then( - function () { - logger.log( - 'showSignSuccessAlert', - 'Copying to clipboard was successful!' - ) - }, - function (err) { - logger.error( - 'showSignSuccessAlert', - 'Could not copy text to clipboard: ', - err - ) - } - ) - return [4, (0, beacon_dapp_1.closeToast)()] - case 1: - _a.sent() - return [2] - } - }) - }) - } - } - ] - }) - ] - case 1: - _a.sent() - return [2] - } - }) - }) - } - var showBroadcastSuccessAlert = function (data) { - return __awaiter(void 0, void 0, void 0, function () { - var network, output, blockExplorer - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - ;(network = data.network), - (output = data.output), - (blockExplorer = data.blockExplorer) - return [ - 4, - (0, beacon_dapp_1.openToast)({ - body: '{{wallet}} successfully injected operation', - timer: SUCCESS_TIMER, - state: 'finished', - walletInfo: data.walletInfo, - actions: [ - { - text: - '' + - (0, shorten_string_1.shortenString)(output.transactionHash) + - '', - actionText: 'Open Blockexplorer ' + SVG_EXTERNAL, - actionCallback: function () { - return __awaiter(void 0, void 0, void 0, function () { - var link - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [ - 4, - blockExplorer.getTransactionLink( - output.transactionHash, - network - ) - ] - case 1: - link = _a.sent() - window.open(link, '_blank') - return [4, (0, beacon_dapp_1.closeToast)()] - case 2: - _a.sent() - return [2] - } - }) - }) - } - } - ] - }) - ] - case 1: - _a.sent() - return [2] - } - }) - }) - } - var emptyHandler = function () { - return function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2] - }) - }) - } - } - exports.defaultEventCallbacks = - ((_a = {}), - (_a[BeaconEvent.PERMISSION_REQUEST_SENT] = showSentToast), - (_a[BeaconEvent.PERMISSION_REQUEST_SUCCESS] = showPermissionSuccessAlert), - (_a[BeaconEvent.PERMISSION_REQUEST_ERROR] = showErrorToast), - (_a[BeaconEvent.OPERATION_REQUEST_SENT] = showSentToast), - (_a[BeaconEvent.OPERATION_REQUEST_SUCCESS] = showOperationSuccessAlert), - (_a[BeaconEvent.OPERATION_REQUEST_ERROR] = showErrorToast), - (_a[BeaconEvent.SIGN_REQUEST_SENT] = showSentToast), - (_a[BeaconEvent.SIGN_REQUEST_SUCCESS] = showSignSuccessAlert), - (_a[BeaconEvent.SIGN_REQUEST_ERROR] = showErrorToast), - (_a[BeaconEvent.BROADCAST_REQUEST_SENT] = showSentToast), - (_a[BeaconEvent.BROADCAST_REQUEST_SUCCESS] = showBroadcastSuccessAlert), - (_a[BeaconEvent.BROADCAST_REQUEST_ERROR] = showErrorToast), - (_a[BeaconEvent.ACKNOWLEDGE_RECEIVED] = showAcknowledgedToast), - (_a[BeaconEvent.LOCAL_RATE_LIMIT_REACHED] = showRateLimitReached), - (_a[BeaconEvent.NO_PERMISSIONS] = showNoPermissionAlert), - (_a[BeaconEvent.ACTIVE_ACCOUNT_SET] = emptyHandler()), - (_a[BeaconEvent.ACTIVE_TRANSPORT_SET] = emptyHandler()), - (_a[BeaconEvent.SHOW_PREPARE] = showPrepare), - (_a[BeaconEvent.HIDE_UI] = hideUI), - (_a[BeaconEvent.PAIR_INIT] = showPairAlert), - (_a[BeaconEvent.PAIR_SUCCESS] = showExtensionConnectedAlert), - (_a[BeaconEvent.CHANNEL_CLOSED] = showChannelClosedAlert), - (_a[BeaconEvent.INTERNAL_ERROR] = showInternalErrorAlert), - (_a[BeaconEvent.UNKNOWN] = emptyHandler()), - _a) - var BeaconEventHandler = (function () { - function BeaconEventHandler(eventsToOverride, overrideAll) { - var _a - if (eventsToOverride === void 0) { - eventsToOverride = {} - } - this.callbackMap = - ((_a = {}), - (_a[BeaconEvent.PERMISSION_REQUEST_SENT] = [ - exports.defaultEventCallbacks.PERMISSION_REQUEST_SENT - ]), - (_a[BeaconEvent.PERMISSION_REQUEST_SUCCESS] = [ - exports.defaultEventCallbacks.PERMISSION_REQUEST_SUCCESS - ]), - (_a[BeaconEvent.PERMISSION_REQUEST_ERROR] = [ - exports.defaultEventCallbacks.PERMISSION_REQUEST_ERROR - ]), - (_a[BeaconEvent.OPERATION_REQUEST_SENT] = [ - exports.defaultEventCallbacks.OPERATION_REQUEST_SENT - ]), - (_a[BeaconEvent.OPERATION_REQUEST_SUCCESS] = [ - exports.defaultEventCallbacks.OPERATION_REQUEST_SUCCESS - ]), - (_a[BeaconEvent.OPERATION_REQUEST_ERROR] = [ - exports.defaultEventCallbacks.OPERATION_REQUEST_ERROR - ]), - (_a[BeaconEvent.SIGN_REQUEST_SENT] = [ - exports.defaultEventCallbacks.SIGN_REQUEST_SENT - ]), - (_a[BeaconEvent.SIGN_REQUEST_SUCCESS] = [ - exports.defaultEventCallbacks.SIGN_REQUEST_SUCCESS - ]), - (_a[BeaconEvent.SIGN_REQUEST_ERROR] = [ - exports.defaultEventCallbacks.SIGN_REQUEST_ERROR - ]), - (_a[BeaconEvent.BROADCAST_REQUEST_SENT] = [ - exports.defaultEventCallbacks.BROADCAST_REQUEST_SENT - ]), - (_a[BeaconEvent.BROADCAST_REQUEST_SUCCESS] = [ - exports.defaultEventCallbacks.BROADCAST_REQUEST_SUCCESS - ]), - (_a[BeaconEvent.BROADCAST_REQUEST_ERROR] = [ - exports.defaultEventCallbacks.BROADCAST_REQUEST_ERROR - ]), - (_a[BeaconEvent.ACKNOWLEDGE_RECEIVED] = [ - exports.defaultEventCallbacks.ACKNOWLEDGE_RECEIVED - ]), - (_a[BeaconEvent.LOCAL_RATE_LIMIT_REACHED] = [ - exports.defaultEventCallbacks.LOCAL_RATE_LIMIT_REACHED - ]), - (_a[BeaconEvent.NO_PERMISSIONS] = [exports.defaultEventCallbacks.NO_PERMISSIONS]), - (_a[BeaconEvent.ACTIVE_ACCOUNT_SET] = [ - exports.defaultEventCallbacks.ACTIVE_ACCOUNT_SET - ]), - (_a[BeaconEvent.ACTIVE_TRANSPORT_SET] = [ - exports.defaultEventCallbacks.ACTIVE_TRANSPORT_SET - ]), - (_a[BeaconEvent.SHOW_PREPARE] = [exports.defaultEventCallbacks.SHOW_PREPARE]), - (_a[BeaconEvent.HIDE_UI] = [exports.defaultEventCallbacks.HIDE_UI]), - (_a[BeaconEvent.PAIR_INIT] = [exports.defaultEventCallbacks.PAIR_INIT]), - (_a[BeaconEvent.PAIR_SUCCESS] = [exports.defaultEventCallbacks.PAIR_SUCCESS]), - (_a[BeaconEvent.CHANNEL_CLOSED] = [exports.defaultEventCallbacks.CHANNEL_CLOSED]), - (_a[BeaconEvent.INTERNAL_ERROR] = [exports.defaultEventCallbacks.INTERNAL_ERROR]), - (_a[BeaconEvent.UNKNOWN] = [exports.defaultEventCallbacks.UNKNOWN]), - _a) - if (overrideAll) { - this.setAllHandlers() - } - this.overrideDefaults(eventsToOverride) - } - BeaconEventHandler.prototype.on = function (event, eventCallback) { - return __awaiter(this, void 0, void 0, function () { - var listeners - return __generator(this, function (_a) { - listeners = this.callbackMap[event] || [] - listeners.push(eventCallback) - this.callbackMap[event] = listeners - return [2] - }) - }) - } - BeaconEventHandler.prototype.emit = function (event, data, eventCallback) { - return __awaiter(this, void 0, void 0, function () { - var listeners - var _this = this - return __generator(this, function (_a) { - listeners = this.callbackMap[event] - if (listeners && listeners.length > 0) { - listeners.forEach(function (listener) { - return __awaiter(_this, void 0, void 0, function () { - var listenerError_1 - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]) - return [4, listener(data, eventCallback)] - case 1: - _a.sent() - return [3, 3] - case 2: - listenerError_1 = _a.sent() - logger.error('error handling event ' + event, listenerError_1) - return [3, 3] - case 3: - return [2] - } - }) - }) - }) - } - return [2] - }) - }) - } - BeaconEventHandler.prototype.overrideDefaults = function (eventsToOverride) { - var _this = this - Object.keys(eventsToOverride).forEach(function (untypedEvent) { - var eventType = untypedEvent - var event = eventsToOverride[eventType] - if (event) { - _this.callbackMap[eventType] = [event.handler] - } - }) - } - BeaconEventHandler.prototype.setAllHandlers = function (handler) { - var _this = this - Object.keys(this.callbackMap).forEach(function (untypedEvent) { - var eventType = untypedEvent - _this.callbackMap[eventType] = [] - if (handler) { - _this.callbackMap[eventType].push(handler) - } else { - _this.callbackMap[eventType].push(function () { - var data = [] - for (var _i = 0; _i < arguments.length; _i++) { - data[_i] = arguments[_i] - } - logger.log.apply(logger, __spreadArray([untypedEvent], data, false)) - }) - } - }) - } - return BeaconEventHandler - })() - exports.BeaconEventHandler = BeaconEventHandler - }, - { - './utils/platform': 264, - './utils/shorten-string': 267, - '@airgap/beacon-core': 229, - '@airgap/beacon-dapp': 252, - '@airgap/beacon-types': 287 - } - ], - 252: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.openToast = - exports.closeToast = - exports.closeAlerts = - exports.openAlert = - exports.TezblockBlockExplorer = - exports.BlockExplorer = - exports.defaultEventCallbacks = - exports.BeaconEventHandler = - exports.BeaconEvent = - exports.Pairing = - exports.DAppClient = - void 0 - var DAppClient_1 = require('./dapp-client/DAppClient') - Object.defineProperty(exports, 'DAppClient', { - enumerable: true, - get: function () { - return DAppClient_1.DAppClient - } - }) - var events_1 = require('./events') - Object.defineProperty(exports, 'BeaconEvent', { - enumerable: true, - get: function () { - return events_1.BeaconEvent - } - }) - Object.defineProperty(exports, 'BeaconEventHandler', { - enumerable: true, - get: function () { - return events_1.BeaconEventHandler - } - }) - Object.defineProperty(exports, 'defaultEventCallbacks', { - enumerable: true, - get: function () { - return events_1.defaultEventCallbacks - } - }) - var Pairing_1 = require('./ui/alert/Pairing') - Object.defineProperty(exports, 'Pairing', { - enumerable: true, - get: function () { - return Pairing_1.Pairing - } - }) - var block_explorer_1 = require('./utils/block-explorer') - Object.defineProperty(exports, 'BlockExplorer', { - enumerable: true, - get: function () { - return block_explorer_1.BlockExplorer - } - }) - var tezblock_blockexplorer_1 = require('./utils/tezblock-blockexplorer') - Object.defineProperty(exports, 'TezblockBlockExplorer', { - enumerable: true, - get: function () { - return tezblock_blockexplorer_1.TezblockBlockExplorer - } - }) - var Alert_1 = require('./ui/alert/Alert') - Object.defineProperty(exports, 'openAlert', { - enumerable: true, - get: function () { - return Alert_1.openAlert - } - }) - Object.defineProperty(exports, 'closeAlerts', { - enumerable: true, - get: function () { - return Alert_1.closeAlerts - } - }) - var Toast_1 = require('./ui/toast/Toast') - Object.defineProperty(exports, 'closeToast', { - enumerable: true, - get: function () { - return Toast_1.closeToast - } - }) - Object.defineProperty(exports, 'openToast', { - enumerable: true, - get: function () { - return Toast_1.openToast - } - }) - }, - { - './dapp-client/DAppClient': 250, - './events': 251, - './ui/alert/Alert': 255, - './ui/alert/Pairing': 256, - './ui/toast/Toast': 260, - './utils/block-explorer': 262, - './utils/tezblock-blockexplorer': 268 - } - ], - 253: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.DappP2PTransport = void 0 - var beacon_types_1 = require('@airgap/beacon-types') - var beacon_core_1 = require('@airgap/beacon-core') - var beacon_transport_matrix_1 = require('@airgap/beacon-transport-matrix') - var logger = new beacon_core_1.Logger('DappP2PTransport') - var DappP2PTransport = (function (_super) { - __extends(DappP2PTransport, _super) - function DappP2PTransport(name, keyPair, storage, matrixNodes, iconUrl, appUrl) { - return ( - _super.call( - this, - name, - keyPair, - storage, - matrixNodes, - beacon_types_1.StorageKey.TRANSPORT_P2P_PEERS_DAPP, - iconUrl, - appUrl - ) || this - ) - } - DappP2PTransport.prototype.startOpenChannelListener = function () { - return __awaiter(this, void 0, void 0, function () { - var _this = this - return __generator(this, function (_a) { - return [ - 2, - this.client.listenForChannelOpening(function (peer) { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - logger.log('listenForNewPeer', 'new publicKey', peer.publicKey) - return [4, this.addPeer(peer)] - case 1: - _a.sent() - this._isConnected = beacon_types_1.TransportStatus.CONNECTED - if (this.newPeerListener) { - this.newPeerListener(peer) - this.newPeerListener = undefined - } - return [2] - } - }) - }) - }) - ] - }) - }) - } - DappP2PTransport.prototype.listenForNewPeer = function (newPeerListener) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - logger.log('listenForNewPeer') - this.newPeerListener = newPeerListener - return [2] - }) - }) - } - DappP2PTransport.prototype.stopListeningForNewPeers = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - logger.log('stopListeningForNewPeers') - this.newPeerListener = undefined - return [2] - }) - }) - } - return DappP2PTransport - })(beacon_transport_matrix_1.P2PTransport) - exports.DappP2PTransport = DappP2PTransport - }, - { - '@airgap/beacon-core': 229, - '@airgap/beacon-transport-matrix': 272, - '@airgap/beacon-types': 287 - } - ], - 254: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.DappPostMessageTransport = void 0 - var beacon_types_1 = require('@airgap/beacon-types') - var beacon_core_1 = require('@airgap/beacon-core') - var beacon_transport_postmessage_1 = require('@airgap/beacon-transport-postmessage') - var logger = new beacon_core_1.Logger('DappPostMessageTransport') - var DappPostMessageTransport = (function (_super) { - __extends(DappPostMessageTransport, _super) - function DappPostMessageTransport(name, keyPair, storage) { - return ( - _super.call( - this, - name, - keyPair, - storage, - beacon_types_1.StorageKey.TRANSPORT_POSTMESSAGE_PEERS_DAPP - ) || this - ) - } - DappPostMessageTransport.prototype.startOpenChannelListener = function () { - return __awaiter(this, void 0, void 0, function () { - var _this = this - return __generator(this, function (_a) { - return [ - 2, - this.client.listenForChannelOpening(function (peer) { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - logger.log('connect', 'received PostMessagePairingResponse', peer) - return [4, this.addPeer(peer)] - case 1: - _a.sent() - this._isConnected = beacon_types_1.TransportStatus.CONNECTED - if (this.newPeerListener) { - this.newPeerListener(peer) - this.newPeerListener = undefined - } - return [2] - } - }) - }) - }) - ] - }) - }) - } - DappPostMessageTransport.prototype.listenForNewPeer = function (newPeerListener) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - logger.log('listenForNewPeer') - this.newPeerListener = newPeerListener - return [2] - }) - }) - } - DappPostMessageTransport.prototype.stopListeningForNewPeers = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - logger.log('stopListeningForNewPeers') - this.newPeerListener = undefined - return [2] - }) - }) - } - return DappPostMessageTransport - })(beacon_transport_postmessage_1.PostMessageTransport) - exports.DappPostMessageTransport = DappPostMessageTransport - }, - { - '@airgap/beacon-core': 229, - '@airgap/beacon-transport-postmessage': 286, - '@airgap/beacon-types': 287 - } - ], - 255: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - var __spreadArray = - (this && this.__spreadArray) || - function (to, from, pack) { - if (pack || arguments.length === 2) - for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i) - ar[i] = from[i] - } - } - return to.concat(ar || Array.prototype.slice.call(from)) - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.openAlert = exports.closeAlerts = exports.closeAlert = void 0 - var colorMode_1 = require('../../colorMode') - var beacon_core_1 = require('@airgap/beacon-core') - var beacon_utils_1 = require('@airgap/beacon-utils') - var replace_in_template_1 = require('../../utils/replace-in-template') - var alert_templates_1 = require('./alert-templates') - var PairingAlert_1 = require('./PairingAlert') - var lastFocusedElement - var document - if (typeof window !== 'undefined' && typeof window.document !== 'undefined') { - document = window.document - } - var timeout = {} - var addQR = function (dataString) { - if (typeof dataString === 'string') { - return ( - '
' + - dataString - ) - } - return '' - } - var formatAlert = function (id, body, title, buttons, hasPairingPayload) { - var callToAction = title - var buttonsHtml = buttons.map(function (button, index) { - return ( - '' - ) - }) - var allStyles = alert_templates_1.alertTemplates.default.css - if (hasPairingPayload) { - allStyles += alert_templates_1.alertTemplates.pair.css - } - var alertContainer = alert_templates_1.alertTemplates.container - alertContainer = (0, replace_in_template_1.replaceInTemplate)( - alertContainer, - 'main', - hasPairingPayload - ? alert_templates_1.alertTemplates.pair.html - : alert_templates_1.alertTemplates.default.html - ) - alertContainer = (0, replace_in_template_1.replaceInTemplate)( - alertContainer, - 'callToAction', - callToAction - ) - alertContainer = (0, replace_in_template_1.replaceInTemplate)( - alertContainer, - 'buttons', - buttonsHtml.join(' ') - ) - alertContainer = (0, replace_in_template_1.replaceInTemplate)( - alertContainer, - 'body', - body - ) - alertContainer = (0, replace_in_template_1.replaceInTemplate)(alertContainer, 'id', id) - if (alertContainer.indexOf('{{') >= 0) { - var start = alertContainer.indexOf('{{') - var end = alertContainer.indexOf('}}') - console.error( - 'Not all placeholders replaced!', - alertContainer.substr(start, end - start) - ) - throw new Error('Not all placeholders replaced!') - } - return { style: allStyles, html: alertContainer } - } - var closeAlert = function (id) { - beacon_core_1.windowRef.postMessage('closeAlert-' + id) - return new Promise(function (resolve) { - var _a - var wrapper = document.getElementById('beacon-alert-wrapper-' + id) - if (!wrapper) { - return resolve() - } - var elm = - (_a = wrapper.shadowRoot) === null || _a === void 0 - ? void 0 - : _a.getElementById('beacon-alert-modal-' + id) - if (elm) { - var animationDuration = 300 - var localTimeout = timeout[id] - if (localTimeout) { - clearTimeout(localTimeout) - timeout[id] = undefined - } - elm.className = elm.className.replace('fadeIn', 'fadeOut') - window.setTimeout(function () { - var parent = wrapper.parentNode - if (parent) { - parent.removeChild(wrapper) - } - if (lastFocusedElement) { - lastFocusedElement.focus() - } - resolve() - }, animationDuration) - } else { - resolve() - } - }) - } - exports.closeAlert = closeAlert - var closeAlerts = function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - new Promise(function (resolve) { - return __awaiter(void 0, void 0, void 0, function () { - var openAlertElements, alertIds_1 - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - openAlertElements = document.querySelectorAll( - '[id^="beacon-alert-wrapper-"]' - ) - if (!(openAlertElements.length > 0)) return [3, 2] - alertIds_1 = [] - openAlertElements.forEach(function (element) { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - alertIds_1.push(element.id.split('-')[3]) - return [2] - }) - }) - }) - return [4, Promise.all(alertIds_1.map(closeAlert))] - case 1: - _a.sent() - resolve() - return [3, 3] - case 2: - resolve() - _a.label = 3 - case 3: - return [2] - } - }) - }) - }) - ] - }) - }) - } - exports.closeAlerts = closeAlerts - var openAlert = function (alertConfig) { - return __awaiter(void 0, void 0, void 0, function () { - var body, - title, - timer, - pairingPayload, - disclaimer, - closeButtonCallback, - id, - shadowRootEl, - shadowRoot, - wrapper, - buttons, - formattedBody, - _a, - style, - html, - styleEl, - closeButton, - closeButtonClick, - disclaimerContainer, - colorMode, - elm, - modal - var _b, _c - return __generator(this, function (_d) { - switch (_d.label) { - case 0: - body = alertConfig.body - title = alertConfig.title - timer = alertConfig.timer - pairingPayload = alertConfig.pairingPayload - disclaimer = alertConfig.disclaimerText - closeButtonCallback = alertConfig.closeButtonCallback - return [4, closeAlerts()] - case 1: - _d.sent() - return [4, (0, beacon_utils_1.generateGUID)()] - case 2: - id = _d.sent().split('-').join('') - shadowRootEl = document.createElement('div') - shadowRootEl.setAttribute('id', 'beacon-alert-wrapper-' + id) - shadowRoot = shadowRootEl.attachShadow({ mode: 'open' }) - wrapper = document.createElement('div') - wrapper.setAttribute('tabindex', '0') - shadowRoot.appendChild(wrapper) - buttons = __spreadArray( - [], - (_c = - (_b = alertConfig.buttons) === null || _b === void 0 - ? void 0 - : _b.map(function (button) { - var _a, _b - return { - text: button.text, - actionCallback: - (_a = button.actionCallback) !== null && _a !== void 0 - ? _a - : function () { - return Promise.resolve() - }, - style: - (_b = button.style) !== null && _b !== void 0 ? _b : 'outline' - } - })) !== null && _c !== void 0 - ? _c - : [], - true - ) - formattedBody = pairingPayload - ? addQR(body) - : body !== null && body !== void 0 - ? body - : '' - ;(_a = formatAlert( - id, - formattedBody, - title, - buttons, - !!(pairingPayload === null || pairingPayload === void 0 - ? void 0 - : pairingPayload.p2pSyncCode) - )), - (style = _a.style), - (html = _a.html) - wrapper.innerHTML = html - styleEl = document.createElement('style') - styleEl.textContent = style - shadowRoot.appendChild(styleEl) - if (timer) { - timeout[id] = window.setTimeout(function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, closeAlert(id)] - case 1: - _a.sent() - return [2] - } - }) - }) - }, timer) - } - document.body.prepend(shadowRootEl) - closeButton = shadowRoot.getElementById('beacon-alert-' + id + '-close') - closeButtonClick = function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (closeButtonCallback) { - closeButtonCallback() - } - return [4, closeAlert(id)] - case 1: - _a.sent() - return [2] - } - }) - }) - } - if (disclaimer) { - disclaimerContainer = shadowRoot.getElementById('beacon--disclaimer') - if (disclaimerContainer) { - disclaimerContainer.innerHTML = disclaimer - } - } - colorMode = (0, colorMode_1.getColorMode)() - elm = shadowRoot.getElementById('beacon-alert-modal-' + id) - if (elm) { - elm.classList.add('theme__' + colorMode) - elm.addEventListener('click', closeButtonClick) - } - modal = shadowRoot.querySelectorAll('.beacon-modal__wrapper') - if (modal.length > 0) { - modal[0].addEventListener('click', function (event) { - event.stopPropagation() - }) - } - lastFocusedElement = document.activeElement - wrapper.focus() - buttons.forEach(function (button, index) { - var buttonElement = shadowRoot.getElementById( - 'beacon-alert-' + id + '-' + index - ) - if (buttonElement) { - buttonElement.addEventListener('click', function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, closeAlert(id)] - case 1: - _a.sent() - if (!button.actionCallback) return [3, 3] - return [4, button.actionCallback()] - case 2: - _a.sent() - _a.label = 3 - case 3: - return [2] - } - }) - }) - }) - } - }) - if (closeButton) { - closeButton.addEventListener('click', function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, closeButtonClick()] - case 1: - _a.sent() - return [2] - } - }) - }) - }) - } - window.addEventListener('keydown', function (event) { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(event.key === 'Escape')) return [3, 2] - return [4, closeButtonClick()] - case 1: - _a.sent() - _a.label = 2 - case 2: - return [2] - } - }) - }) - }) - if (!pairingPayload) return [3, 4] - return [ - 4, - (0, PairingAlert_1.preparePairingAlert)(id, shadowRoot, pairingPayload) - ] - case 3: - _d.sent() - _d.label = 4 - case 4: - return [2, id] - } - }) - }) - } - exports.openAlert = openAlert - }, - { - '../../colorMode': 249, - '../../utils/replace-in-template': 266, - './PairingAlert': 257, - './alert-templates': 258, - '@airgap/beacon-core': 229, - '@airgap/beacon-utils': 302 - } - ], - 256: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - var __spreadArray = - (this && this.__spreadArray) || - function (to, from, pack) { - if (pack || arguments.length === 2) - for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i) - ar[i] = from[i] - } - } - return to.concat(ar || Array.prototype.slice.call(from)) - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.Pairing = exports.WalletType = exports.Platform = void 0 - var beacon_core_1 = require('@airgap/beacon-core') - var beacon_types_1 = require('@airgap/beacon-types') - var beacon_core_2 = require('@airgap/beacon-core') - var get_tzip10_link_1 = require('../../utils/get-tzip10-link') - var platform_1 = require('../../utils/platform') - var beacon_transport_postmessage_1 = require('@airgap/beacon-transport-postmessage') - var wallet_lists_1 = require('./wallet-lists') - var serializer = new beacon_core_1.Serializer() - var defaultExtensions = [ - 'ookjlbkiijinhpmnjffcofjonbfbgaoc', - 'gpfndedineagiepkpinficbcbbgjoenn' - ] - var Platform - ;(function (Platform) { - Platform[(Platform['DESKTOP'] = 0)] = 'DESKTOP' - Platform[(Platform['IOS'] = 1)] = 'IOS' - Platform[(Platform['ANDROID'] = 2)] = 'ANDROID' - })((Platform = exports.Platform || (exports.Platform = {}))) - var WalletType - ;(function (WalletType) { - WalletType['IOS'] = 'ios' - WalletType['ANDROID'] = 'android' - WalletType['EXTENSION'] = 'extension' - WalletType['DESKTOP'] = 'desktop' - WalletType['WEB'] = 'web' - })((WalletType = exports.WalletType || (exports.WalletType = {}))) - var Pairing = (function () { - function Pairing() {} - Pairing.getPlatfrom = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - (0, platform_1.isAndroid)(window) - ? Platform.ANDROID - : (0, platform_1.isIOS)(window) - ? Platform.IOS - : Platform.DESKTOP - ] - }) - }) - } - Pairing.getPairingInfo = function ( - pairingPayload, - statusUpdateHandler, - mobileWalletHandler, - platform - ) { - return __awaiter(this, void 0, void 0, function () { - var activePlatform, _a, pairingCode, postmessageSyncCode, preferredNetwork - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!(platform !== null && platform !== void 0)) return [3, 1] - _a = platform - return [3, 3] - case 1: - return [4, Pairing.getPlatfrom()] - case 2: - _a = _b.sent() - _b.label = 3 - case 3: - activePlatform = _a - pairingCode = pairingPayload.p2pSyncCode - postmessageSyncCode = pairingPayload.postmessageSyncCode - preferredNetwork = pairingPayload.preferredNetwork - switch (activePlatform) { - case Platform.DESKTOP: - return [ - 2, - Pairing.getDesktopPairingAlert( - pairingCode, - statusUpdateHandler, - postmessageSyncCode, - mobileWalletHandler, - preferredNetwork - ) - ] - case Platform.IOS: - return [ - 2, - Pairing.getIOSPairingAlert( - pairingCode, - statusUpdateHandler, - preferredNetwork - ) - ] - case Platform.ANDROID: - return [ - 2, - Pairing.getAndroidPairingAlert( - pairingCode, - statusUpdateHandler, - preferredNetwork - ) - ] - default: - throw new Error('platform unknown') - } - return [2] - } - }) - }) - } - Pairing.getDesktopPairingAlert = function ( - pairingCode, - statusUpdateHandler, - postmessageSyncCode, - mobileWalletHandler, - network - ) { - return __awaiter(this, void 0, void 0, function () { - var availableExtensions, _a, _b - var _c, _d - return __generator(this, function (_e) { - switch (_e.label) { - case 0: - return [ - 4, - beacon_transport_postmessage_1.PostMessageTransport.getAvailableExtensions() - ] - case 1: - availableExtensions = _e.sent() - availableExtensions.forEach(function (ext) { - var index = defaultExtensions.indexOf(ext.id) - if (index >= 0) { - defaultExtensions.splice(index, 1) - } - }) - _c = {} - _a = [ - { - title: 'Browser Extensions', - type: WalletType.EXTENSION, - wallets: __spreadArray( - __spreadArray( - [], - availableExtensions.map(function (app) { - var _a, _b, _c, _d, _e - var ext = wallet_lists_1.extensionList.find(function (extEl) { - return extEl.id === app.id - }) - return { - key: - (_a = ext === null || ext === void 0 ? void 0 : ext.key) !== - null && _a !== void 0 - ? _a - : app.id, - name: - (_b = app.name) !== null && _b !== void 0 - ? _b - : ext === null || ext === void 0 - ? void 0 - : ext.name, - logo: - (_c = app.iconUrl) !== null && _c !== void 0 - ? _c - : ext === null || ext === void 0 - ? void 0 - : ext.logo, - shortName: - (_d = app.shortName) !== null && _d !== void 0 - ? _d - : ext === null || ext === void 0 - ? void 0 - : ext.shortName, - color: - (_e = app.color) !== null && _e !== void 0 - ? _e - : ext === null || ext === void 0 - ? void 0 - : ext.color, - enabled: true, - clicked: false, - clickHandler: function () { - return __awaiter(this, void 0, void 0, function () { - var postmessageCode, _a, _b, message - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - if (this.clicked) { - return [2] - } - this.clicked = true - if (!postmessageSyncCode) return [3, 3] - _b = (_a = serializer).serialize - return [4, postmessageSyncCode()] - case 1: - return [4, _b.apply(_a, [_c.sent()])] - case 2: - postmessageCode = _c.sent() - message = { - target: - beacon_types_1.ExtensionMessageTarget.EXTENSION, - payload: postmessageCode, - targetId: app.id - } - beacon_core_2.windowRef.postMessage( - message, - beacon_core_2.windowRef.location.origin - ) - _c.label = 3 - case 3: - statusUpdateHandler(WalletType.EXTENSION, this) - return [2] - } - }) - }) - } - } - }), - true - ), - wallet_lists_1.extensionList - .filter(function (app) { - return defaultExtensions.some(function (extId) { - return extId === app.id - }) - }) - .map(function (app) { - return { - key: app.key, - name: app.name, - shortName: app.shortName, - color: app.color, - logo: app.logo, - enabled: false, - clickHandler: function () {} - } - }), - true - ).sort(function (a, b) { - return a.key.localeCompare(b.key) - }) - } - ] - _d = { title: 'Desktop & Web Wallets', type: WalletType.DESKTOP } - _b = [ - __spreadArray( - [], - wallet_lists_1.desktopList.map(function (app) { - return { - key: app.key, - name: app.name, - shortName: app.shortName, - color: app.color, - logo: app.logo, - enabled: true, - clicked: false, - clickHandler: function () { - return __awaiter(this, void 0, void 0, function () { - var code, _a, _b, link - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - if (this.clicked) { - return [2] - } - this.clicked = true - _b = (_a = serializer).serialize - return [4, pairingCode()] - case 1: - return [4, _b.apply(_a, [_c.sent()])] - case 2: - code = _c.sent() - link = (0, get_tzip10_link_1.getTzip10Link)( - app.deepLink, - code - ) - window.open(link, '_blank') - statusUpdateHandler(WalletType.DESKTOP, this, true) - return [2] - } - }) - }) - } - } - }), - true - ) - ] - return [4, Pairing.getWebList(pairingCode, statusUpdateHandler, network)] - case 2: - return [ - 2, - ((_c.walletLists = _a.concat([ - ((_d.wallets = __spreadArray - .apply(void 0, _b.concat([_e.sent(), true])) - .sort(function (a, b) { - return a.key.localeCompare(b.key) - })), - _d), - { - title: 'Mobile Wallets', - type: WalletType.IOS, - wallets: __spreadArray( - [], - wallet_lists_1.iOSList.map(function (app) { - return { - key: app.key, - name: app.name, - shortName: app.shortName, - color: app.color, - logo: app.logo, - enabled: true, - clicked: false, - clickHandler: function () { - return __awaiter(this, void 0, void 0, function () { - var code, _a, _b - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - if (this.clicked) { - return [2] - } - this.clicked = true - _b = (_a = serializer).serialize - return [4, pairingCode()] - case 1: - return [4, _b.apply(_a, [_c.sent()])] - case 2: - code = _c.sent() - mobileWalletHandler(code) - statusUpdateHandler(WalletType.IOS, this, true) - return [2] - } - }) - }) - } - } - }), - true - ).sort(function (a, b) { - return a.key.localeCompare(b.key) - }) - } - ])), - (_c.buttons = []), - _c) - ] - } - }) - }) - } - Pairing.getIOSPairingAlert = function (pairingCode, statusUpdateHandler, network) { - return __awaiter(this, void 0, void 0, function () { - var _a, _b - var _c, _d - return __generator(this, function (_e) { - switch (_e.label) { - case 0: - _c = {} - _a = [ - { - title: 'Mobile Wallets', - type: WalletType.IOS, - wallets: wallet_lists_1.iOSList - .map(function (app) { - return { - key: app.key, - name: app.name, - shortName: app.shortName, - color: app.color, - logo: app.logo, - enabled: true, - clicked: false, - clickHandler: function () { - var _a - return __awaiter(this, void 0, void 0, function () { - var code, _b, _c, link, a - return __generator(this, function (_d) { - switch (_d.label) { - case 0: - if (this.clicked) { - return [2] - } - this.clicked = true - _c = (_b = serializer).serialize - return [4, pairingCode()] - case 1: - return [4, _c.apply(_b, [_d.sent()])] - case 2: - code = _d.sent() - link = (0, get_tzip10_link_1.getTzip10Link)( - (_a = app.deepLink) !== null && _a !== void 0 - ? _a - : app.universalLink, - code - ) - a = document.createElement('a') - a.setAttribute('href', link) - a.dispatchEvent( - new MouseEvent('click', { - view: window, - bubbles: true, - cancelable: true - }) - ) - statusUpdateHandler(WalletType.IOS, this, true) - return [2] - } - }) - }) - } - } - }) - .sort(function (a, b) { - return a.key.localeCompare(b.key) - }) - } - ] - _d = { title: 'Web Wallets', type: WalletType.WEB } - _b = [[]] - return [4, Pairing.getWebList(pairingCode, statusUpdateHandler, network)] - case 1: - return [ - 2, - ((_c.walletLists = _a.concat([ - ((_d.wallets = __spreadArray - .apply(void 0, _b.concat([_e.sent(), true])) - .sort(function (a, b) { - return a.key.localeCompare(b.key) - })), - _d) - ])), - (_c.buttons = []), - _c) - ] - } - }) - }) - } - Pairing.getAndroidPairingAlert = function (pairingCode, statusUpdateHandler, network) { - return __awaiter(this, void 0, void 0, function () { - var _a - var _b, _c - var _this = this - return __generator(this, function (_d) { - switch (_d.label) { - case 0: - _b = {} - _c = { title: 'Web Wallets', type: WalletType.WEB } - _a = [[]] - return [4, Pairing.getWebList(pairingCode, statusUpdateHandler, network)] - case 1: - return [ - 2, - ((_b.walletLists = [ - ((_c.wallets = __spreadArray - .apply(void 0, _a.concat([_d.sent(), true])) - .sort(function (a, b) { - return a.key.localeCompare(b.key) - })), - _c) - ]), - (_b.buttons = [ - { - title: 'Mobile Wallets', - text: 'Connect Wallet', - clickHandler: function () { - return __awaiter(_this, void 0, void 0, function () { - var code, _a, _b, qrLink - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - _b = (_a = serializer).serialize - return [4, pairingCode()] - case 1: - return [4, _b.apply(_a, [_c.sent()])] - case 2: - code = _c.sent() - qrLink = (0, get_tzip10_link_1.getTzip10Link)( - 'tezos://', - code - ) - window.open(qrLink, '_blank') - statusUpdateHandler(WalletType.ANDROID) - return [2] - } - }) - }) - } - } - ]), - _b) - ] - } - }) - }) - } - Pairing.getWebList = function (pairingCode, statusUpdateHandler, network) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - wallet_lists_1.webList - .map(function (app) { - return { - key: app.key, - name: app.name, - shortName: app.shortName, - color: app.color, - logo: app.logo, - enabled: true, - clicked: false, - clickHandler: function () { - var _this = this - if (this.clicked) { - return - } - this.clicked = true - var newTab = window.open('', '_blank') - pairingCode() - .then(function (code) { - return serializer.serialize(code) - }) - .then(function (code) { - var _a - var link = (0, get_tzip10_link_1.getTzip10Link)( - (_a = app.links[network]) !== null && _a !== void 0 - ? _a - : app.links[beacon_types_1.NetworkType.MAINNET], - code - ) - if (newTab) { - newTab.location.href = link - } else { - window.open(link, '_blank') - } - statusUpdateHandler(WalletType.WEB, _this, true) - }) - .catch(function (error) { - console.error(error) - }) - } - } - }) - .sort(function (a, b) { - return a.key.localeCompare(b.key) - }) - ] - }) - }) - } - return Pairing - })() - exports.Pairing = Pairing - }, - { - '../../utils/get-tzip10-link': 263, - '../../utils/platform': 264, - './wallet-lists': 259, - '@airgap/beacon-core': 229, - '@airgap/beacon-transport-postmessage': 286, - '@airgap/beacon-types': 287 - } - ], - 257: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.preparePairingAlert = void 0 - var beacon_core_1 = require('@airgap/beacon-core') - var beacon_utils_1 = require('@airgap/beacon-utils') - var platform_1 = require('../../utils/platform') - var qr_1 = require('../../utils/qr') - var get_tzip10_link_1 = require('../../utils/get-tzip10-link') - var Alert_1 = require('./Alert') - var Pairing_1 = require('./Pairing') - var logger = new beacon_core_1.Logger('Alert') - var serializer = new beacon_core_1.Serializer() - var preparePairingAlert = function (id, shadowRoot, pairingPayload) { - return __awaiter(void 0, void 0, void 0, function () { - var getInfo, - info, - container, - buttonListWrapper, - showWallet, - listContainer, - showWalletLists, - messageFn, - closeFn, - qr, - copyButton, - titleEl, - platform, - mainText, - walletList, - switchButton, - clipboardFn, - qrShown, - showPlatform, - showQr, - switchPlatform, - platformSwitch - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - getInfo = function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - Pairing_1.Pairing.getPairingInfo( - pairingPayload, - function (_walletType, _wallet, keepOpen) { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (keepOpen) { - return [2] - } - return [4, (0, Alert_1.closeAlerts)()] - case 1: - _a.sent() - return [2] - } - }) - }) - }, - function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switchPlatform() - return [2] - }) - }) - } - ) - ] - }) - }) - } - return [4, getInfo()] - case 1: - info = _a.sent() - container = shadowRoot.getElementById('pairing-container') - if (!container) { - throw new Error('container not found') - } - buttonListWrapper = document.createElement('span') - container.appendChild(buttonListWrapper) - info.buttons.forEach(function (button) { - return __awaiter(void 0, void 0, void 0, function () { - var randomId, x, el, buttonEl - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, (0, beacon_utils_1.generateGUID)()] - case 1: - randomId = _a.sent() - x = - '\n
' + - button.title + - '
\n\t\t\n\t\t ' - el = document.createElement('a') - el.id = 'button_' + randomId - el.innerHTML = x - buttonListWrapper.appendChild(el) - buttonEl = shadowRoot.getElementById(el.id) - if (buttonEl) { - buttonEl.addEventListener('click', function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - button.clickHandler() - return [2] - }) - }) - }) - } - return [2] - } - }) - }) - }) - showWallet = function (listEl, type, wallet) { - var altTag = 'Open in ' + wallet.name - var walletKey = wallet.key - var x = - '\n \n
' + - wallet.name + - '\n ' + - (wallet.enabled ? '' : '

Not installed

') + - '\n
\n ' + - (wallet.logo - ? '
\n \n
' - : '') + - '\n
\n ' - var el = document.createElement('span') - el.innerHTML = x - listEl.appendChild(el) - var walletEl = shadowRoot.getElementById('wallet_' + walletKey) - var completeHandler = function (event) { - return __awaiter(void 0, void 0, void 0, function () { - var modalEl - return __generator(this, function (_a) { - if (event && event.key !== 'Enter') { - return [2] - } - wallet.clickHandler() - modalEl = shadowRoot.getElementById('beacon-modal__content') - if ( - modalEl && - type !== Pairing_1.WalletType.EXTENSION && - type !== Pairing_1.WalletType.IOS - ) { - modalEl.innerHTML = - (wallet.logo - ? '

Establishing Connection..

\n
\n
\n \n
' + - wallet.name + - '
\n
' - : '') + '\n ' - } - return [2] - }) - }) - } - if (walletEl) { - walletEl.addEventListener('click', function () { - return completeHandler() - }) - walletEl.addEventListener('keydown', completeHandler) - } - } - listContainer = document.createElement('span') - container.appendChild(listContainer) - showWalletLists = function (walletLists) { - listContainer.innerHTML = '' - walletLists.forEach(function (list) { - var listWrapperEl = document.createElement('div') - listWrapperEl.classList.add('beacon-list__wrapper') - listContainer.appendChild(listWrapperEl) - var listTitleEl = document.createElement('div') - listTitleEl.classList.add('beacon-list__title') - listTitleEl.innerHTML = list.title - listWrapperEl.appendChild(listTitleEl) - var listEl = document.createElement('span') - listWrapperEl.appendChild(listEl) - list.wallets.forEach(function (wallet) { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - showWallet(listEl, list.type, wallet) - return [2] - }) - }) - }) - }) - } - showWalletLists(info.walletLists) - messageFn = function (event) { - return __awaiter(void 0, void 0, void 0, function () { - var newInfo - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(event.data === 'extensionsUpdated')) return [3, 2] - return [4, getInfo()] - case 1: - newInfo = _a.sent() - showWalletLists(newInfo.walletLists) - _a.label = 2 - case 2: - return [2] - } - }) - }) - } - closeFn = function (event) { - if (event.data === 'closeAlert-' + id) { - beacon_core_1.windowRef.removeEventListener('message', messageFn) - beacon_core_1.windowRef.removeEventListener('message', closeFn) - } - } - beacon_core_1.windowRef.addEventListener('message', messageFn) - beacon_core_1.windowRef.addEventListener('message', closeFn) - qr = shadowRoot.getElementById('beacon--qr__container') - copyButton = shadowRoot.getElementById('beacon--qr__copy') - titleEl = shadowRoot.getElementById('beacon-title') - platform = (0, platform_1.isAndroid)(window) - ? 'android' - : (0, platform_1.isIOS)(window) - ? 'ios' - : 'desktop' - mainText = shadowRoot.getElementById('beacon-main-text') - walletList = shadowRoot.getElementById('pairing-container') - switchButton = shadowRoot.getElementById('beacon--switch__container') - clipboardFn = function () { - return __awaiter(void 0, void 0, void 0, function () { - var code, _a, _b, _c - return __generator(this, function (_d) { - switch (_d.label) { - case 0: - if (!pairingPayload) return [3, 3] - _c = (_b = serializer).serialize - return [4, pairingPayload.p2pSyncCode()] - case 1: - return [4, _c.apply(_b, [_d.sent()])] - case 2: - _a = _d.sent() - return [3, 4] - case 3: - _a = '' - _d.label = 4 - case 4: - code = _a - navigator.clipboard.writeText(code).then( - function () { - if (copyButton) { - copyButton.innerText = 'Copied' - } - logger.log('Copying to clipboard was successful!') - }, - function (err) { - logger.error('Could not copy text to clipboard: ', err) - } - ) - return [2] - } - }) - }) - } - qrShown = false - showPlatform = function (type) { - return __awaiter(void 0, void 0, void 0, function () { - var platformSwitch, _a, code, _b, _c, uri, qrSVG, qrString - return __generator(this, function (_d) { - switch (_d.label) { - case 0: - platformSwitch = shadowRoot.getElementById('beacon-switch') - if (platformSwitch) { - platformSwitch.innerHTML = - type === 'none' - ? 'Pair wallet on same device' - : 'Pair wallet on another device' - } - if ( - !( - mainText && - walletList && - switchButton && - copyButton && - qr && - titleEl - ) - ) - return [3, 8] - mainText.style.display = 'none' - titleEl.style.textAlign = 'center' - walletList.style.display = 'none' - switchButton.style.display = 'initial' - _a = type - switch (_a) { - case 'ios': - return [3, 1] - case 'android': - return [3, 2] - case 'desktop': - return [3, 3] - } - return [3, 4] - case 1: - walletList.style.display = 'initial' - return [3, 8] - case 2: - walletList.style.display = 'initial' - return [3, 8] - case 3: - walletList.style.display = 'initial' - titleEl.style.textAlign = 'left' - mainText.style.display = 'none' - switchButton.style.display = 'initial' - return [3, 8] - case 4: - if (!!qrShown) return [3, 7] - qrShown = true - _c = (_b = serializer).serialize - return [4, pairingPayload.p2pSyncCode()] - case 5: - return [4, _c.apply(_b, [_d.sent()])] - case 6: - code = _d.sent() - uri = (0, get_tzip10_link_1.getTzip10Link)('tezos://', code) - qrSVG = (0, qr_1.getQrData)(uri, 'svg') - qrString = qrSVG.replace('\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

\n {{callToAction}}\n

\n\n {{main}}\n\n
\n {{buttons}}\n
\n
\n
\n
\n
\n\n', - default: { - html: '
\n {{body}}\n
\n', - css: ':host {\n --animation-duration: 300ms;\n all: initial;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n.animated {\n animation-duration: var(--animation-duration);\n animation-fill-mode: both;\n}\n\n.fadeIn {\n animation-name: fadeIn;\n}\n\n.fadeOut {\n animation-name: fadeOut;\n}\n\n.beacon-modal__wrapper {\n position: relative;\n top: 0;\n display: inline-block;\n z-index: 2147483000;\n max-width: 500px;\n width: 80%;\n padding: 24px;\n}\n\n@media (min-height: 700px) {\n .beacon-modal__wrapper {\n top: 50%;\n transform: translateY(-50%);\n }\n}\n\n.theme__light .beacon-modal__base,\n.theme__light .beacon-modal__close__wrapper {\n background: #fff;\n}\n\n.theme__dark .beacon-modal__base,\n.theme__dark .beacon-modal__close__wrapper {\n background: #27334c;\n}\n\n.beacon-modal__base,\n.beacon-modal__close__wrapper {\n box-shadow: 0 12px 24px 0 rgba(0, 0, 0, 0.1);\n}\n\n.beacon-modal__base {\n margin: 0 auto;\n border-radius: 32px;\n overflow: hidden;\n}\n\n.beacon-modal__header {\n padding: 16px 0;\n width: 100%;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n}\n\n.beacon-modal__headerLogo {\n width: 100%;\n max-width: 320px;\n margin: 20px auto;\n height: 100%;\n}\n\na,\nbutton {\n cursor: pointer;\n}\n\n.beacon-modal__close__wrapper {\n position: absolute;\n top: 44px;\n right: 24px;\n z-index: 10000;\n cursor: pointer;\n border-radius: 100%;\n}\n\n.beacon-modal__close__icon {\n width: 16px;\n height: 16px;\n position: relative;\n top: 0;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n transform: rotate(45deg);\n margin: 8px;\n}\n\n.beacon-modal__close__line1 {\n position: absolute;\n width: 90%;\n}\n\n.beacon-modal__close__line2 {\n position: absolute;\n width: 90%;\n transform: rotate(90deg);\n}\n\n.theme__light .beacon-modal__close__line2,\n.theme__light .beacon-modal__close__line1 {\n border: 1px solid #000;\n}\n\n.theme__dark .beacon-modal__close__line2,\n.theme__dark .beacon-modal__close__line1 {\n border: 1px solid #fff;\n}\n\n.beacon-alert__base {\n position: fixed;\n overflow-y: scroll;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 2147482999;\n background-color: rgb(17 17 17 / 0.84);\n text-align: center;\n -ms-overflow-style: none;\n scrollbar-width: none;\n font-family: Roboto, Helvetica, sans-serif;\n}\n\n.beacon-alert__base::-webkit-scrollbar {\n display: none;\n}\n\n.beacon-alert__title {\n text-align: center;\n}\n\n.beacon-alert__text,\n.beacon-alert__title {\n margin: 0 auto;\n padding: 0 0 24px;\n}\n\n.margin__bottom {\n margin-bottom: 16px;\n}\n\n.beacon-alert__title {\n font-size: 18px;\n}\n\n.theme__light .beacon-alert__title {\n color: #3b3d40;\n}\n\n.theme__dark .beacon-alert__title,\n.theme__dark .beacon-alert__text {\n color: #7c99d6;\n}\n\n.beacon-alert__text {\n color: #000;\n font-size: 14px;\n}\n\n.beacon-modal__button,\n.beacon-modal__button--outline {\n height: 36px;\n font-size: 14px;\n letter-spacing: 0.84px;\n margin-bottom: 4px;\n margin-inline-end: 2px;\n margin-inline-start: 2px;\n margin-left: 2px;\n margin-right: 2px;\n margin-top: 4px;\n padding-inline-end: 15.4px;\n padding-inline-start: 15.4px;\n padding-left: 15.4px;\n padding-right: 15.4px;\n overflow-wrap: break-word;\n pointer-events: auto;\n text-align: center;\n border-radius: 4px;\n border: 2px solid #3880ff;\n}\n\n.beacon-modal__button {\n background: #3880ff;\n color: #fff;\n}\n\n.beacon-modal__button--outline {\n background: #fff;\n color: #444444;\n border: 1px solid #444444;\n}\n\n.beacon-alert__image {\n width: 200px;\n height: 200px;\n box-sizing: border-box;\n box-shadow: 0 10px 20px 0 rgba(17, 17, 17, 0.12);\n border: 1px solid rgba(17, 17, 17, 0.04);\n border-radius: 16px;\n}\n.connect__btn {\n margin: 24px 0;\n width: 100%;\n}\n\n#beacon-modal__content {\n padding: 24px;\n}\n\n#beacon-switch {\n margin-top: 24px;\n}\n\n#beacon-title {\n margin: 0 0 24px;\n}\n\na {\n text-decoration: none;\n}\n\npre {\n white-space: pre-wrap; /* css-3 */\n white-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n white-space: -pre-wrap; /* Opera 4-6 */\n white-space: -o-pre-wrap; /* Opera 7 */\n word-wrap: break-word; /* Internet Explorer 5.5+ */\n padding: 16px;\n background: #ececec;\n line-height: 1.25rem;\n}\n' - }, - pair: { - html: '\n\n
\n

\n Scan QR code with a Beacon-compatible wallet.\n Learn more\n

\n {{body}}\n
\n\n
\n \n
\n\n
\n', - css: "#beacon-main-text {\n display: initial;\n}\n.beacon-selection__container {\n padding: 16px 16px 0;\n}\n.beacon-selection__list {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n text-decoration: none;\n padding-bottom: 12px;\n align-items: center;\n}\n.beacon-list__title {\n text-align: left;\n font-size: 12px;\n}\n.beacon-list__wrapper:nth-child(-n + 3) {\n padding: 0 0 1rem;\n}\n.theme__light .beacon-list__title {\n color: #7c828b;\n}\n.theme__dark .beacon-list__title,\n.theme__dark #beacon--disclaimer {\n color: #7c99d6;\n}\n\n.beacon-selection__name {\n font-size: 1rem;\n font-weight: 600;\n text-align: left;\n}\n.theme__light .beacon-selection__name,\n.theme__light .beacon--selection__name__lg {\n color: #3b3d40;\n}\n.theme__dark .beacon-selection__name,\n.theme__dark .beacon--selection__name__lg {\n color: #6183ff;\n}\n.beacon-selection__img {\n width: 48px;\n height: 48px;\n box-shadow: 0 4px 12px 0 rgba(17, 17, 17, 0.24);\n border-radius: 16px;\n background-color: #fff;\n}\n.beacon--selection__name__lg {\n font-size: 1.5rem;\n font-weight: 600;\n text-align: center;\n padding: 1rem 0;\n}\n.beacon--selected__container {\n padding: 2rem 0 0;\n}\n#beacon--qr__copy__container {\n height: 0;\n}\n#beacon--qr__copy {\n display: none;\n position: relative;\n top: -190px;\n left: 138px;\n margin: 0;\n}\n#beacon--qr__container {\n margin-left: auto;\n margin-right: auto;\n}\n#beacon--qr__container:hover #beacon--qr__copy {\n display: block;\n}\n.disabled {\n cursor: initial;\n}\n.disabled span,\n.disabled img {\n opacity: 0.48;\n}\n.disabled p {\n text-align: left;\n margin: 0;\n font-size: 10px;\n font-weight: 300;\n}\n.disabled img {\n -webkit-filter: grayscale(100%);\n -moz-filter: grayscale(100%);\n -ms-filter: grayscale(100%);\n -o-filter: grayscale(100%);\n filter: grayscale(100%);\n filter: gray;\n}\n\n#beacon--disclaimer {\n text-align: left;\n padding-top: 24px;\n font-size: 0.875rem;\n}\n.progress-line,\n.progress-line:before {\n height: 3px;\n width: -webkit-fill-available;\n margin-left: -24px;\n margin-right: -24px;\n}\n.progress-line {\n background-color: #a7c4f7;\n display: -webkit-flex;\n display: flex;\n}\n.progress-line:before {\n background-color: #3880ff;\n content: '';\n -webkit-animation: running-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n animation: running-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n}\n@-webkit-keyframes running-progress {\n 0% {\n margin-left: 0px;\n margin-right: 100%;\n }\n 50% {\n margin-left: 25%;\n margin-right: 0%;\n }\n 100% {\n margin-left: 100%;\n margin-right: 0;\n }\n}\n@keyframes running-progress {\n 0% {\n margin-left: 0px;\n margin-right: 100%;\n }\n 50% {\n margin-left: 25%;\n margin-right: 0%;\n }\n 100% {\n margin-left: 100%;\n margin-right: 0;\n }\n}\n" - } - } - }, - {} - ], - 259: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.iOSList = exports.webList = exports.desktopList = exports.extensionList = void 0 - exports.extensionList = [ - { - key: 'spire_chrome', - id: 'gpfndedineagiepkpinficbcbbgjoenn', - name: 'Spire', - shortName: 'Spire', - color: '', - logo: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAIIElEQVR4Ae3Ba5BeZWEA4Oc9u9kkJGHZkIQkLhQziQmVBpJwOTDg7saKEIQwnYq2/WWnUjuxHTOOgbYq77ZqSVGrtZliae2P/gE74zQIodoZEmwrR6pQlTYJ0DWNuWAChBBIyN7exsGZL2e/3Xy3Xf3RPI+zzvr/LfgFyGMKCMPHX/JT7eec75RUxJD8nAVTKI/JKe1YjquxEsuwCHOPH/phm9ER5yy8fAQv4yCeww/wHezGcBGDqRJMgTymaejD+3AjFhvHC09+SRodtijfaAIH8CgexI4ihiGTLJhEeUzn4Q58CG9Vw7MP/po0OmL5b2xVhx/hPny5iOGoSRJMgjymmfgwNmGeOowOnfD0F5eQRq36yIBs2ix1OoR7saWI4YQWBS3IYwrowxasMLGEo3gK/4UfDXz9d+ce+t79HydZsPp3PrPk1vtfxBK8HatxLoKJ7cQGbC9i0KygSXlM0/EpbESbagl78QAewneLGAZVbMTnvWkT7vUzeUwduBK34b24CEG1YXwOdxcxnNSEoAl5TAvwAPpUS3gS9+CRIoYh43sYN3vTNtxsHHlMHViHu3AVgmqP4f1FDIc1KGhQHtMSPIIVqu3GXXioiGHUxGZhAAu86UUswTETyGPKsB6bsUy1nXhPEcOABgQNyGNagn/BEmXD+BI+WcTwmtquxJPKrsUTashjmo0/we+jXdkA3lXEMKBOQZ3ymBbgcaxQdgQfKGLYqn6bsFnZH+HP1CmP6TZ8BV3KdqKniOGwOrSpQx7TdGzFFcr24sYihsc15hNYqmwU/6BO+3b07+rujd/EOnSqmI813b3xwX07+kfUkKkhjyngU+hVthfvLmL4vsbMwRrVrkCnBhQxPI0b8GNla9Gfx6SWTG192KjsCG4tYtilcZdinmpdWKlBRQy7sB5HlH0UfWrInEEe00xsQZuKYXygiOH7mvOrJtarCUUMT+O3MayiHVvymGY6g8yZfRgrlP1lEcNWzesxsT5NKmL4J2xRdgk2OIPMBPKYunCnst24W/POxWoTW43zNO8TeF7Zx/KYOk0gM7EP4nwVCXcVMbymeavQZWKdWKVJRQzHsAlJxQLcYQKZceQxTcPvKfs2HtKatWrr1ZqteFLZh/KY2o0jM761uFhFwr1FDKNa06O2Pi0oYhjFPUgqlqDXODJj5DE55XZl/4ttWtOFy9V2OeZqzTbsVXa7cWSqteNGZQ8UMQxpzRXoVNscrNGCIoZB/KOydXlMbcbIVFuOxSoSvq51PerXo3VbkVS8BcuNkal2jbKj+K7WBPSq31oErfkPvKrsamNkql2q7HtFDINaMxeXqd9KnK8FRQwn8bSylcbIVFum7L+17irMVr9ZuFLrnlG21BiZ0+QxBSxWNqB1PRrXq3V7lC3OYwpOkykL6FJ2WGsCejVuLYLWHFI2F8FpMtVmKntda+Zjpca9HfO1ZlBZZozM1LsaMzVuJq42xTLVTiibpTU9mterNR3KRo2RKUs4omy+5mVYq3l9yDRvgbKXkZwmc5oihoQDypZo3gW4RPMuwQWad7GyA0UMyWky1Z5T9sual2OG5s1ArnmXKnveGJlqzyhbk8fUoTl9WterCXlM07FK2Q+Mkan2hLJOXKFxbejVuj60adyVOFfZd4yRqbYbB1QE3KJxC7Fc65ZjocatR1CxH7uNkak2jH9W9v48pmkacy06tK4D12pAHlMH3qtsWxHDiDEyYxQxOOWryn4J6zTmnSZPn8bcjIuUfdU4MuN7DHtUBHwsjylTnzZcb/L0oE0d8pgy3ImgYgA7jCMzjiKGIfy1smtxq/osxttMnrdhsfqsx1XK7itiGDaOzMTux0sqAu7JY5qttneg3eRpx3VqyGOagz9HUHEIf2MCmQkUMRzBZmXL0a+2PpNvrdr+FEuV3VvEcNQEMmf2V9il7A/ymNabWDuuM/muR7sJ5DHdhg3KdmKLM8icQRHDCWzAiIp2/H0e02XGdyGWmnxL0W0ceUyr8BW0qxjGhiKGE84gU9t2/IWyLjyUx7RCtR60mXxtuM4YeUwrsBVdyj6H7WrI1FDEkPBxbFd2Eb6Rx3SZsl5T551Ok8e0Ct/Ehcoew91FDGppU4d9O/pHunvjo7gF81R04n3dvXH3vh39uzANmzHX1JiN+zCax3QbvoYLlO3Ee4oYXlWHNnXat6P/9e7e+ChuQZeKmfj17t7YdeTZh38ydOzgnQimxnmzFq/52pqPHrgTn8UsZQO4qYhhvzq1acC+Hf1Hunvjw3g35qnIcI00+puvPPvIDFMnXNjX/1uzFq3pQaZsJ24qYhjQgEyDihgG0IPtxji299/mmGKv7nl8jmqPoaeIYUCDMk0oYjiEm/BZjDgljQw6tvffTbVjP/62NDLoZ4axGeuKGA5rQqZJRQwnsQk3YNcbL/+Pk6/sMdVOvrLHyVf2OGUnbsBdRQwnNSmYBHlMM/d/69Mb9//rZzaNDh3vNIWy9hlHu3s+uXnx9X/4hSKGE1oUTKKLb/ri/ENP/d2GwVf33zF84qVFJlH7jK4XOjq7vyylLccPPXPYJAmmwII1H+x44+Xn140Onbj9jRd33zj8xpEuTWibcd6R6Z0XfaN9ZteDM+Yu23boqb8dNMmCKfSWd/yx0eGT04ZeO3j56wefytPwyV8ZOv7israO2RekkcFFieCUQAptHQdHBl/7ybRz5j0X2qf/cNai1cW02Qv/M2ufMbT/W582VYJfgEXXfCQMHXshS2nET4XQZtqchaMHn/hCctZZZ/08/R8wPGmSSU1PIgAAAABJRU5ErkJggg==', - link: 'https://spirewallet.com/' - }, - { - key: 'temple_chrome', - id: 'ookjlbkiijinhpmnjffcofjonbfbgaoc', - name: 'Temple Wallet', - shortName: 'Temple', - color: '', - logo: 'data:image/png;base64,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', - link: 'https://templewallet.com/' - } - ] - exports.desktopList = [ - { - key: 'galleon_desktop', - name: 'Galleon', - shortName: 'Galleon', - color: '', - logo: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAN6ElEQVR4Ad3BC3SW9X3A8e/v/7yX3IAQCLdwhyCKGlARRBRorbdZaWu1lx27Xlydp+txW1vtXLs2nh0723o6e13VdhU7dahzFdGCchOEAAICohAScg/kfnnzXvI+z/P/7U0lPVlGIIE31O3zEYaZqoI2OerlTLfqzzJGJnmJ7rxAOJiFVZP0bTJkJKJOoEGUanGkFMdvhxGICMNNSDNVhY62IBnBpSpcD+5SVRagZINyRiIKUilGSnDZJMZ5lYycWhFhOAhpoloBfv6Vat0vqdXbUB1DOohYEXbiOE+JJJ/GjO0QEdJFOEdquyQRdz8WDsj9av1FDCeRTjHBXx1vbPnhpIJd9SJ3cK6Es6SqqI0tU899BOtfzvkkEhcn9KgY7yFxciOcA+EsWK87Dxv7kfr2TkD4UxFTK478tQRG/U5EOBvCEKgqfjK2QrR7FaqT+YAQE3wiltR7c0aMijFEDoOkWoF6oW/gJ54EcvkgUXtZKCC3fLf4W+uKH3yonSFwGAS11vG73V9i7TcBwweR6gTr+5/+bvHfbC5+8JF6BsnhDDQRDagXexrkc3zACeSgwU8X33//tuLvPVzNIDichlrfqO3+jar/Gf7vCKsjnywu/vbrxQ8+VM8ZOAxAVfGT7Q+j/j0MM5vsRpwAaRS2vr+y+MFvvVD84PfaOQ3DAGyy689F9RsMIzfSRndLA1UvPkW6CYy3rn0x2R3P4jQMp6Be9wVY95cMM7ezDT/RRe3a1cSO15B26hcFSD6qqgzE0I/aSMB6sadAszlPrO9R/uSPGQ5qvbvUi6xkAIZ+1NevonYh51nr/t207HmT4aC+9zP14yM4BUMf6sfHqe99hz+R8qd+hnoeaadaoL77gOpq+jOcpKokE7EHUB3FeeDFuvBiXfQVb6in9vfPMxzUevdGI9dNoh/DSWqTEwKOfJnzpOLZx/DicfqrfvEp3K5O0k41MyvD+bqq0pehl9/1V6hmch50lr1L/WsvcSpeLErVC79hOKj1v4StG0UfhhS10YBauYvzQK1P6eM/BFUGUv/6SySajpN2qiPVjvgsfRhS1Pc+jGoB50Ht2tVEq49xOup5VD73a4aD+v6dqkovo6rg2ds4DxJNJ6h6/jcMRuO214nVVZN2yiKiHZM5ydDUKCp6M+fB0V//CD/ZzWCoKlX/+STpp0aN3sRJhrwRc1AKGGZNJZtofXsnQ9G0YyPxEzWknWNWqCo9jNrkYlCGkxfrouzJnzBUqkrNmv8g3VTtYminhwEpYphVPPsYyfZWzkbD1nW4kQ7SS6fjB3JJMVh7AcOo8+gh6l9fw9myrsuJTWtJK1VRnzmkGIWpDBP1fUof/yGoci6Ob3wZVEknC1NJMaDjGSY1Lz9DtKaCcxVvqKf93X2kk7H+eFIMMJJhEG+oo+qFVaTL8U1rSSdfdQQpBtUQw+DoE49g3STp0rxrK148Sro4jgmRYgBLmjW88Xva3tlLOlk3SVPJJtJGxJJiEBMjjdxIO+VP/Zzh0LjtddLFT7oxUgxoK2lUvupnuF2dDIf29/aT7GglHZxQqJUUA1LHIFlrUQbWdmA3Ddte438TQAABBBAQ+hAGRZWW3dtIB1XqSQkI5phil3AG1lruL/457ZEY//T3dzE+P4/+wmPGMf87P+Z/EFKEPxAQThIwoRA9ir79I1BlMMKjx3LuBEHKSQlgvEP4nFYy6fL14l+wbssuetz02fv4yuc/zp133EAoGKCXk5FFtPYYg9Xd2kCPcN54BkVh5OyLOGdCVIKRSlICSOgtSDKQxuZ27v2HR9l76Ci9ovEE3//FM6x6fh1f/PTNfPKjy8jOyiQ0egxNJZtpKtnCcJj9hXsxwSBDYa3ltS17eOfdMv72nk9hjCFlHzLBJyUgSd2pjrioBuln85v7eOCfH6elrZNTOdHUykM/+S3/8thzXL98ITcsX8hVf/lNUEvTzq2k0+zP30vB9R9nMKxV9h8qY/2W3bz82nYaW9rpUd/QwsP/eA/BYHibiNAjQDQRkVGh7ar+Mk5qaGrl+z99hpc37GAwYt3d/Ne6bfxu3TYcY5hXOJWrE1nMz4iRDi9E80luOMYFFauZUjCO/DG55ORk4WDw1CcSidLY0k5VbQOHj1ax/1AZXfEE/b28sYSW9ghfu/v29ZwkpNhE+9+p+o80NrXx62de4ZkXXyfhuvQwIiiKtSACRgQFVJXTcUS5e0wr8zPjnItn23PZGMmhPxFSBFRRhkJa4k2HJ9ZVH3NJCZCy6ulnV+8+WPf998pqnDmzp3PNVQvooVZRAd9TMsLg++C6EAg6gI+Ig7VKIGA4VlVHWUUNyvt8FX7Zksfn89qYGkpyNkrcsTiXXc0NpIhQXllLWUUNiKBKijJUin2+rvqYy0kBepi5tT4n1o8ckXPTpq07sYAqgyICapUZUydx3bLFiCrGMRyrqqO0vIpfteQhDJ1y0pad/IEqs2ZM5vrlV4EqIhBLJDlaXkV9YzOO46CqnEnCDf4bfQgnTbtk5U3BUPIV0kGVGVMLuGDWNKwq8USCnXvfIel6pI0qmeEQhbOmM3H8GHzf8j5FRFCrBEMhPN9HfZduV/HV7nzj1R2LKys300s4KTD/MpnmjNsryHzOgghY35I/ZjSTC8YzJncUoVCIZLKb7KxsFl5xCQcOHKa5rR0siAHHOPjWJxwOknQ9GpvbqKiqIxKNImI4WyKCquK7HggEwyFCJkA4y3xiz8YXX6QPoY+pl3/01hDe7xgEVSU/L5eLLyok6Bh6iDE0t7RRU3eC5tZOPM8lEAzSQ1XpTwQEwfU8Ao7D+Pw8ZkwrYGRODmotCBw6coza442ICOfG7Kn0Wei9vVbpI0AfsUT1S8HgxI3iyIc4BccYFi6Yx6gR2YDQ3NLG9p37SHo+p+IEAqgqA1EFRXEcBwVONLVyoqmVXgJ87o5b6IrGiMYSHK2opryiBkQYIk3GE1/z3t2g9CP0M6Xo2gvDgex9QJgeqswtnMGMKZPwrWXX3ndoj3QhAoKgpKiipN81VxbR1NbJ4aMVqCqFM6cyZ8YURAxbS/bSGY0xGKr+qvLwlL9gx6/oT+jv9tuZVRa7LxDg4aWLFpCdmUEymcQ4BmsVARQLOCjvM6KoVUSEHj5wtKySmvoGEGGoFLhpxVW8d7SSqtrj9DU2L5eii+bQnXQZNSKbg++VU11/nIEI1HZ1ZRcdP/J8K6cgnMLd93zFXLH42nVHSyuv64onKK+qpbyiBjEGVeVMHCMUzpzOtMnjQZWE67HzrYMkkknOJOA4rLxxGZve3ENrewd9BRyHlTcu5/mXNyACqHLpRYVcueASXt24jboTTfTj+9Z+pGLfuk0MQBjAvKU35yei/i4xZjrnKBwKseSKS8nMCHO4rJJj1XWcSu7IHK67djFr1m2h23XpS4DbbrmONes20+169LrmyiKq6hoZm5dLwYSxbN25j/bOLnq4ycR9Eqn4QWVlJQMRTmPCrI9cnJMbeAMYTTqoMrdwJrOnFVBaUU3psWp6zZ09nakFE1i/pYT+FFh54wq2vLmTjkiMXpdfOpdorJvDZRX0EOCaxZeRGQ6xedvbj3eM9b5c+8oaTsfhNLrajjVOnFH4hu9zBxAmRQRUwXoWtRaL4DgGYRBEaG5tp7SimrGjc7l64Xyam9tZumgB8XiCHXsO0J8RuO3mFWx+8y06IlF6zb+oEAEOHi6nr6ra4zQ2Na1+4tEHvvjIfd9QzkAYhE996atXjcoZvTZgzGirihEwThAERC1J1wUMxoAxhtb2CAcOHSHpeigDK5iQzyf+7MOsWr2GjkiU/jJCIT56wzJe3bCNrlicXpfOLSQUNLx18Aj9+RL87fjM6BdKtm7wGARhkBbfcvvFTfWda0TMdE5DVckbNZKii+cQCgYQMZRVVFNWWYuI0CM7K4PlS66gsamV3fsPAUJ/UyaO4/KiC1mzfiu+tfS6/JILAGXPwVL6s+r+oK3KfrOtZaNlkIQhmHHhsnwysp52DNcxWKoUzpzKzOlTCAUcfN+SSCTZsmMPvlr6U4VrFy3A8z127DlIX1cvLKKto4t3S8vpJxpL2rtDGa3/Xrl7N0MhDFHBkmtNOJH5dSPmQSDMIMyYMomL5syksyvKm7vexqpyKuPGjmbpwgVs27WPxpY2eglw04eXcuhIOVW1x+lL0d3GDd159MBLRzgLwtm4/XYmVMcvzEqYn5qA+yFOIRQMsGRhEVkZGVTU1PFeaQWIcCrhYJAVS6+kIxJh++4DiPBHeaNGsGLpItZv3k4kGuOPNNDRnbTFMXPiJy0H9nicJeEc5M6YQzB/zq0jfa9YkPkoFM0rZNL4fJKux/bd+4l3dzOQjFCIa6+6DBQ273iLpOvxR6osvryIzIwQm7a/RR/xOP5j3SbwUPPuVxo5R0IaBJYslWmJSTd+8uZFX92xd//19Q1NDgNRZea0ycydPZ3uZJI3Svbheh59TRw3lsWXXULJ3gMcb2zhfVLneYEnWqIj/jWyIHmC554jHYR0Gnkr4yc0TM4MmDska9StjsoSgaAIzJs7m4IJ+QhCeVUtpeVVIEJf2VkZLF+ykKamVnbtP0RKXbdNvOIkEi90BXI2NB98zSPNhGGSPXEiubnTRnzuMx9bNH3yxCtWPbN2XkNL50zEFACjQTMBA7jhcCiy8sblDR0dsepX168/4pnAft/rLIn62aXthzcr/1/kXng15OQzadZCcifPkbyCQpORP5fr77qLd8rKgHmcb/8N3VaULP16cD8AAAAASUVORK5CYII=', - deepLink: 'galleon://' - }, - { - key: 'umami_desktop', - name: 'Umami', - shortName: 'Umami', - color: '', - logo: 'data:image/png;base64,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', - deepLink: 'umami://' - } - ] - exports.webList = [ - { - key: 'kukai_web', - name: 'Kukai Wallet', - shortName: 'Kukai', - color: '', - logo: 'data:image/png;base64,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', - links: { - mainnet: 'https://wallet.kukai.app', - delphinet: 'https://testnet.kukai.app', - edonet: 'https://edonet.kukai.app', - florencenet: 'https://florencenet.kukai.app', - granadanet: 'https://granadanet.kukai.app', - hangzhounet: 'https://hangzhounet.kukai.app' - } - } - ] - exports.iOSList = [ - { - key: 'airgap_ios', - name: 'AirGap Wallet', - shortName: 'AirGap', - color: 'rgb(4, 235, 204)', - logo: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAALT0lEQVR4AeXBCXiU9Z3A8e/vfd+5kskBARYIkAsCSIRyRe5AKbhQ8CqWemGpVnF1qVKPrdoSrSiW6qq0lhZXu7UrskVQSq0VpAIGwxGgHAE5RBMIgUAyk8xkMjOZ+e/zZh9cauXNTMjx7MPnI0qpRkC4PCkDEEDj8hTVuMxpXOY02om3xsfix1/jlumP4qmu48saAiHumv1TFj/2Kp7qOtqLQRsLhxp549U/8x8vvY2vth7TkUNljBwziAsdO3KCnUWl7Cwq5U+rP+KO+ddx8x3TsNtttCWDNhKNRPnjW5tZ9twqTp88xxcUIMKXiQZKKUQEf12AlxatYOVr73PPgzcyY9Z4NE2jLeiFhYULAaGVNDZGWLdqM4/8y0usXbkJf12A84J9u1Je+M/MnjSCPrqdC3Xt1okrhmRz5FA5NWdrMfnrAnz4l538Ze3HJKUkkNOvF5qm0YqUQSs5frSCdX/YxDsrN1F91ssXFARzu1L5/dFUT87FyoRvDGP85KGsX1fM8hfXcPRgGSLC58dO8eP5L/PiohVc952JzLxxAr0zu9MaDFpIKcXBfcfZvH4XG9/bzpHSMkSELyjwj8rgzK0j8YzNBEVMRISpM0czZcYoPtq4h9d/vY4dRQcQEc6eruGVF9ew/IXVDLwyi0nTRjLhG8Ppf0UGCC1iEKNoNMqxwyfYs/0TSj4uZXvRAWrO1SIimEQEUyTZSc2MQZyd9TUCmZ1AAYq4iQjjJw9l/OShfHr4BKt+/wHvrt5CrcePiHBo/2cc2v8ZL//sv+nSLZWR4/IYPmogw/IHkNm3JyJCLAya8Unp57z09Bvs3naIQH0QEeE8EcEUdTuondiXmin98Y7JQmlCE8VXqo1GiEd2bi8efvJ2Fvz4Vor+uof164rZtL4Ef10AEeFclZf31hTx3poilFIkJrkYmj+Aex+ezYC8TKwYWAjUB5k3+ym8NT5MIkITpQjmdKVubBbe8dnUDeuNEmK2xF9JgT2JBNGIh2HTKZg6nIKpw4k0RigpPsiWD3ax9cO/8enhk4gIIkK9r4GijXv4W8lh3i1eijspgYsxsFBSXIq3xocp3D0ZX34GvhG9qR2VQaiLG5SiJf4a9pF5di/9dCeCYBLAEP5BZzGY60pjhiOVC+mGTv64PPLH5fHDhXCmsprizfvYufUAO7aWcrriHD5vPTu3ljLx6hFcjIGFqsoazit7Yhq1I3rzBaW4FFXRCFVRP7FYHfSwPLkPd7q6cjHdunfmmm8XcM23C9j5cSl33fhTTGcqa7CiYcHr8XFeJMVJRyr0nSJWKalulKJJrdeHFQ0Lfl8DTaKKcKcEOtKpaJhGFLHo3CWZaDSKyVdbjxUNC746PyZRikiKk46Ub0vAQIhFUkoiIjTx+xuwomGhIRDCpOwGEYdBR+mmGSxLyiBWdrsNh9OOKRgIYcXAQsAfxKQS7CACKOI1yeZmiiOZJNFpic6aznR7KqmaTjwS3S481XUE6huwYmAhEGjA1JhoB6WIR4JovJmSxUxHKh0h0e3CU11HQ0MIKxoWQsFGTMppgFLE49dJfZjpSKWj2OwGpnAwjBUNC4H6BkzKaQNFzHJ0O7e40uhIDocdUyAQxIqGBb+/AVPEZSMeo2xuhI6V6HZiqvc3YEXDQjAQwhR12vj/xuGyYwo2hLGiYaEhEMQUddmIR3HYh6JjOZ0OTIH6IFY0LAQCQUxRp0E8jkVC/FfgHB0pIdGJKRBowIqGhXCoEZOyG8Tr7roy3gnW0FHsdgNTONSIFQMLkcYoJmVoxKteRbnO8ykFNjdTHckki855OvBdVxdcotFWdEPHFI1EsWJgQSmFKaoLLbUp7GNT2MeFbnd25p6EbrQlTdcwKYUlDQsiNNGiitY00HDR1qLRKCYRLGlY0G06JglFaE1/CnqI0rYawxFMuk3HioEFl8tBqCGMVh+iNW0J+7nec5Q7XF1wi8bFuEVnmC0BAyFefl8AU0KCEysGFpJT3XhrfOjeBlrb2qCXtUEvzemr23krNYfBRgLx8Hp8mJJTErGiYaFzWjIme5UPhA5xNBLiW55jNKKIR1VlDaa0rilY0bDQPb0LJvsJD4LQUY5GQuwO1xMrpRQV5VWYuqd3wYqGhcycHjQJNeIo99CRFLE7WX6GQH0DpozsHljRsNA/L5MmIiTuq6CjZOt2htkSiNW+kqNomoYpd1AGVjQsfG1Ef5RSmJJ2lNERsjQ7q1NyMBBitWPrAUxKKYaMyMWKgYXUzknkXpHBkYNlJG8+iqirUUJcrrYnMceZRrKmc56GIPwfAYR/lCQ6I+2J2BBiFY0qNm/YhanfwD506pyMFYNmFEwdzpGDZeg1AZI/Po53TBaxusOVxvLkTIT2U7xlL+fOeBGBgqnDaY5GM6bfMA6lFKZuK3aBEBMBFrnTEdrXG6/8GRFQSjH9hnE0R6MZmTk9GTF2ECZ30XHce08RC7do/JNmoz3tLTlM0cY9mEaMHURW33SaoxGDO+dfj1IKBHr9fCOxqFNRDjU20G4UPPfE64gISinu+sENxEIjBleNy2NUwWBMrv2n6LLuALG4p/Zz/CpKe/jjqs3s23UU0+iJgxk5dhCxMIjRQ0/MYfaUR4g0Run5/Id4x+cQTnFi5cOwj4Fn9/MtZydSRScWugiDDRffdKSgI8TCU13H80++jkk3NB4snEOsDGKU3a8Xc+6ZyWtL30H3Buiz6H2OLbkWlMJKeTTMC/VniFe+4eLdTrmkaQbNWfSjV/DW+DDddvcMsvv1IlYacZj3wCyy+/fClLzhMF3X7KWtbG8McG9tGc1Zs2IjG9Ztw5TVL515P5xFPDTiYLMbLH55PnaHDQTSn91A4qEztJXVwRrqVZSLKd37Kc8+/ltEBJvD4JmX/xW73UY8NOLUt39vHnv2TpRSSChC9v1vYT/toy2EUdSpCF+lsuIc989dQigYRinFj57+HrkDM4iXRgvMnDWB2+bNwGRU+ek3byW26npaW2/NTjfNxpdVn/Uy76anOHvag+mmO6dx3exJtIRGCz3w+C1MuXYUJntZDbnfW4HjVB2tRYBnk9IR/l5FeRVzry+k7Fglpq9PH8mDC+fQUhotJCI8/eJ9TJgyDJO9vIb+t/2O5F0niJ0CFKAAhQAacKXhZFVKNjc507jQjq0HuHXGY5Qfr8Q0umAwz/xyPpomtJTBJdANneeWL+DR+b9g/dpi9JoAOXe9SdXtV1ExbyxRm8ZXydBsrEjNZoiRgPC/BLCJAILO3wuFwvzq53/gd8vWoaIKU8HVw/nZsvux2QwuhcEl0g2dxb+cT1bfdJb/+2qUUnT97TZSNnzCyYe+jmd8DijFhZ5ypzPa5iYWWz7YzZKF/8mJz07TRGDuvddw78PfQdOES2XQCkSEeQtmkT92ED954FdUlFVhP+Eha/5q/CN6c+q+8dQN6QmKJr10O83Zt/sIv1i8ku0f7UdEMHVPT6Pw+Xnkj82jteiFhYULAaEV9OjVlRtunkxjJMKB3ceIKoX9VC2d395L8p4Kwj2SCaan8l1nGpm6g69SUnyQpx55haVPr6CivAoRQdc1bvn+NJb8ZgGZOT1pRcqglTlddn7w6M1cf9Mknn/y92x6vwQRIXH75+Rs+4zAlT2xLVsAmUlc6PSpczx89wvsLTmCiCAiKKUYN3koC35yK1l902kLBm2kT1YPXnjtIXZvP8TSZ95k9/ZDiAiu/adwVHghsxcXqjx5jn27jiIiKKUYPDyX+/5tNiPHDKItGbSxofkDeHVNIds+2s+rS9/G6/HRf1AmX9ZvQG/652XidruYe9+1jJk4hPZg0E6uGpfHVePyuJgEt4sV7z1De9O4zGlc5gxAAVEuT+p/ABopEAN9AKm/AAAAAElFTkSuQmCC', - universalLink: 'https://wallet.airgap.it', - deepLink: 'airgap-wallet://' - } - ] - }, - {} - ], - 260: [ - function (require, module, exports) { - 'use strict' - var __assign = - (this && this.__assign) || - function () { - __assign = - Object.assign || - function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i] - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p] - } - return t - } - return __assign.apply(this, arguments) - } - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.openToast = exports.closeToast = void 0 - var colorMode_1 = require('../../colorMode') - var replace_in_template_1 = require('../../utils/replace-in-template') - var beacon_utils_1 = require('@airgap/beacon-utils') - var toast_templates_1 = require('./toast-templates') - var document - if (typeof window !== 'undefined' && typeof window.document !== 'undefined') { - document = window.document - } - var EXPAND_AFTER = 5 * 1e3 - var timeout - var expandTimeout - var globalToastConfig - var createActionItem = function (toastAction) { - return __awaiter(void 0, void 0, void 0, function () { - var text, actionText, actionCallback, id, wrapper - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - ;(text = toastAction.text), - (actionText = toastAction.actionText), - (actionCallback = toastAction.actionCallback) - return [4, (0, beacon_utils_1.generateGUID)()] - case 1: - id = _a.sent() - wrapper = document.createElement('div') - wrapper.classList.add('beacon-toast__action__item') - if (actionCallback) { - wrapper.innerHTML = text.length > 0 ? '

' + text + '

' : '' - wrapper.innerHTML += '

' + actionText + '

' - } else if (actionText) { - wrapper.innerHTML = - text.length > 0 - ? '

' + text + '

' - : '' - wrapper.innerHTML += '

' + actionText + '

' - } else { - wrapper.innerHTML = '

' + text + '

' - } - if (actionCallback) { - wrapper.addEventListener('click', actionCallback) - } - return [2, wrapper] - } - }) - }) - } - var removeAllChildNodes = function (parent) { - while (parent.firstChild) { - parent.removeChild(parent.firstChild) - } - } - var formatToastText = function (html) { - var _a, _b - var walletIcon = - (_a = - globalToastConfig === null || globalToastConfig === void 0 - ? void 0 - : globalToastConfig.walletInfo) === null || _a === void 0 - ? void 0 - : _a.icon - var walletName = - (_b = - globalToastConfig === null || globalToastConfig === void 0 - ? void 0 - : globalToastConfig.walletInfo) === null || _b === void 0 - ? void 0 - : _b.name - var wallet = '' - if (walletIcon) { - wallet += - '' - } - if (walletName) { - wallet += '' + walletName + '' - } else { - wallet += 'Wallet' - } - return (0, replace_in_template_1.replaceInTemplate)(html, 'wallet', wallet) - } - var getToastHTML = function (config) { - var text = config.body - var html = (0, replace_in_template_1.replaceInTemplate)( - toast_templates_1.toastTemplates.default.html, - 'text', - text - ) - html = formatToastText(html) - return { style: toast_templates_1.toastTemplates.default.css, html: html } - } - var closeToast = function () { - return new Promise(function (resolve) { - var _a - globalToastConfig = undefined - var wrapper = document.getElementById('beacon-toast-wrapper') - if (!wrapper) { - return resolve() - } - var elm = - (_a = wrapper.shadowRoot) === null || _a === void 0 - ? void 0 - : _a.getElementById('beacon-toast') - if (elm) { - var animationDuration = 300 - if (timeout) { - clearTimeout(timeout) - timeout = undefined - } - elm.className = elm.className.replace('fadeIn', 'fadeOut') - window.setTimeout(function () { - var parent = wrapper.parentNode - if (parent) { - parent.removeChild(wrapper) - } - resolve() - }, animationDuration) - } else { - resolve() - } - }) - } - exports.closeToast = closeToast - var registerClick = function (shadowRoot, id, callback) { - var button = shadowRoot.getElementById(id) - if (button) { - button.addEventListener('click', function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, callback(button)] - case 1: - _a.sent() - return [2] - } - }) - }) - }) - } - return button - } - var showElement = function (shadowRoot, id) { - var el = shadowRoot.getElementById(id) - if (el) { - el.classList.remove('hide') - el.classList.add('show') - } - } - var hideElement = function (shadowRoot, id) { - var el = shadowRoot.getElementById(id) - if (el) { - el.classList.add('hide') - el.classList.remove('show') - } - } - var hideLoader = function (shadowRoot) { - hideElement(shadowRoot, 'beacon-toast-loader') - showElement(shadowRoot, 'beacon-toast-loader-placeholder') - } - var showExpand = function (shadowRoot) { - showElement(shadowRoot, 'beacon-toast-button-expand') - hideElement(shadowRoot, 'beacon-toast-button-close') - } - var showClose = function (shadowRoot) { - showElement(shadowRoot, 'beacon-toast-button-close') - hideElement(shadowRoot, 'beacon-toast-button-expand') - } - var collapseList = function (shadowRoot) { - var expandButton = shadowRoot.getElementById('beacon-toast-button-expand') - var list = shadowRoot.getElementById('beacon-toast-list') - if (expandButton && list) { - expandButton.classList.remove('beacon-toast__upside_down') - list.classList.add('hide') - list.classList.remove('show') - } - } - var expandList = function (shadowRoot) { - var expandButton = shadowRoot.getElementById('beacon-toast-button-expand') - var list = shadowRoot.getElementById('beacon-toast-list') - if (expandButton && list) { - expandButton.classList.add('beacon-toast__upside_down') - list.classList.remove('hide') - list.classList.add('show') - } - } - var expandOrCollapseList = function (shadowRoot) { - var expandButton = shadowRoot.getElementById('beacon-toast-button-expand') - var list = shadowRoot.getElementById('beacon-toast-list') - if (expandButton && list) { - if (expandButton.classList.contains('beacon-toast__upside_down')) { - collapseList(shadowRoot) - } else { - expandList(shadowRoot) - } - } - } - var addActionsToToast = function (shadowRoot, toastConfig, list) { - return __awaiter(void 0, void 0, void 0, function () { - var actions, actionPromises, actionItems, poweredByBeacon - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - actions = toastConfig.actions - if (!(actions && actions.length > 0)) return [3, 2] - actionPromises = actions.map(function (action) { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, createActionItem(action)] - }) - }) - }) - return [4, Promise.all(actionPromises)] - case 1: - actionItems = _a.sent() - actionItems.forEach(function (item) { - return list.appendChild(item) - }) - poweredByBeacon = document.createElement('small') - poweredByBeacon.classList.add('beacon-toast__powered') - poweredByBeacon.innerHTML = - toast_templates_1.toastTemplates.default.poweredByBeacon - list.appendChild(poweredByBeacon) - showExpand(shadowRoot) - return [3, 3] - case 2: - showClose(shadowRoot) - collapseList(shadowRoot) - _a.label = 3 - case 3: - return [2] - } - }) - }) - } - var createNewToast = function (toastConfig) { - return __awaiter(void 0, void 0, void 0, function () { - var timer, - shadowRootEl, - shadowRoot, - wrapper, - _a, - style, - html, - styleEl, - colorMode, - elm, - list, - openWalletButtonEl, - closeButton - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - globalToastConfig = toastConfig - timer = toastConfig.timer - shadowRootEl = document.createElement('div') - shadowRootEl.setAttribute('id', 'beacon-toast-wrapper') - shadowRoot = shadowRootEl.attachShadow({ mode: 'open' }) - wrapper = document.createElement('div') - ;(_a = getToastHTML(toastConfig)), (style = _a.style), (html = _a.html) - wrapper.innerHTML = html - styleEl = document.createElement('style') - styleEl.textContent = style - shadowRoot.appendChild(wrapper) - shadowRoot.appendChild(styleEl) - if (timer) { - timeout = window.setTimeout(function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, closeToast()] - case 1: - _a.sent() - return [2] - } - }) - }) - }, timer) - } - document.body.prepend(shadowRootEl) - colorMode = (0, colorMode_1.getColorMode)() - elm = shadowRoot.getElementById('beacon-toast') - if (elm) { - elm.classList.add('theme__' + colorMode) - } - list = shadowRoot.getElementById('beacon-toast-list') - if (!list) return [3, 2] - return [4, addActionsToToast(shadowRoot, toastConfig, list)] - case 1: - _b.sent() - _b.label = 2 - case 2: - openWalletButtonEl = shadowRoot.getElementById('beacon-open-wallet') - if (openWalletButtonEl) { - if (toastConfig.openWalletAction) { - openWalletButtonEl.addEventListener('click', function () { - if (toastConfig.openWalletAction) { - toastConfig.openWalletAction() - } - }) - } else { - openWalletButtonEl.classList.add('hide') - } - } - if (globalToastConfig.state === 'loading') { - expandTimeout = window.setTimeout(function () { - return __awaiter(void 0, void 0, void 0, function () { - var expandButton - return __generator(this, function (_a) { - expandButton = shadowRoot.getElementById('beacon-toast-button-expand') - if ( - expandButton && - !expandButton.classList.contains('beacon-toast__upside_down') - ) { - expandOrCollapseList(shadowRoot) - } - return [2] - }) - }) - }, EXPAND_AFTER) - } - registerClick(shadowRoot, 'beacon-toast-button-done', function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, closeToast()] - case 1: - _a.sent() - return [2] - } - }) - }) - }) - closeButton = registerClick( - shadowRoot, - 'beacon-toast-button-close', - function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, closeToast()] - case 1: - _a.sent() - return [2] - } - }) - }) - } - ) - if (closeButton && globalToastConfig.state === 'loading') { - closeButton.classList.add('hide') - } - registerClick(shadowRoot, 'beacon-toast-button-expand', function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - expandOrCollapseList(shadowRoot) - return [2] - }) - }) - }) - return [2] - } - }) - }) - } - var updateToast = function (toastConfig) { - return __awaiter(void 0, void 0, void 0, function () { - var timer, wrapper, shadowRoot, list, toastTextEl, openWalletButtonEl, doneButton - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - globalToastConfig = __assign(__assign({}, globalToastConfig), toastConfig) - timer = toastConfig.timer - wrapper = document.getElementById('beacon-toast-wrapper') - if (!wrapper) { - return [2] - } - shadowRoot = wrapper.shadowRoot - if (!shadowRoot) { - return [2] - } - list = shadowRoot.getElementById('beacon-toast-list') - if (!list) return [3, 2] - removeAllChildNodes(list) - return [4, addActionsToToast(shadowRoot, toastConfig, list)] - case 1: - _a.sent() - _a.label = 2 - case 2: - if (globalToastConfig.state === 'loading') { - expandTimeout = window.setTimeout(function () { - return __awaiter(void 0, void 0, void 0, function () { - var expandButton - return __generator(this, function (_a) { - expandButton = shadowRoot.getElementById('beacon-toast-button-expand') - if ( - expandButton && - !expandButton.classList.contains('beacon-toast__upside_down') - ) { - expandOrCollapseList(shadowRoot) - } - return [2] - }) - }) - }, EXPAND_AFTER) - } - toastTextEl = shadowRoot.getElementById('beacon-text-content') - if (toastTextEl) { - toastTextEl.innerHTML = formatToastText(toastConfig.body) - } - openWalletButtonEl = shadowRoot.getElementById('beacon-open-wallet') - if (openWalletButtonEl) { - if (toastConfig.openWalletAction) { - openWalletButtonEl.classList.remove('hide') - openWalletButtonEl.addEventListener('click', function () { - if (toastConfig.openWalletAction) { - toastConfig.openWalletAction() - } - }) - } else { - openWalletButtonEl.classList.add('hide') - } - } - if (timer) { - timeout = window.setTimeout(function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, closeToast()] - case 1: - _a.sent() - return [2] - } - }) - }) - }, timer) - } - doneButton = shadowRoot.getElementById('beacon-toast-button-done') - if (doneButton) { - doneButton.addEventListener('click', function () { - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, closeToast()] - case 1: - _a.sent() - return [2] - } - }) - }) - }) - } - return [2] - } - }) - }) - } - var openToast = function (toastConfig) { - return __awaiter(void 0, void 0, void 0, function () { - var wrapper, shadowRoot - var _a - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - if (expandTimeout) { - clearTimeout(expandTimeout) - } - wrapper = document.getElementById('beacon-toast-wrapper') - if (!wrapper) return [3, 6] - if (!toastConfig.forceNew) return [3, 3] - return [4, closeToast()] - case 1: - _b.sent() - return [4, createNewToast(toastConfig)] - case 2: - _b.sent() - return [3, 5] - case 3: - return [4, updateToast(toastConfig)] - case 4: - _b.sent() - _b.label = 5 - case 5: - return [3, 8] - case 6: - return [4, createNewToast(toastConfig)] - case 7: - _b.sent() - _b.label = 8 - case 8: - if (globalToastConfig && globalToastConfig.state === 'finished') { - shadowRoot = - (_a = document.getElementById('beacon-toast-wrapper')) === null || - _a === void 0 - ? void 0 - : _a.shadowRoot - if (shadowRoot) { - hideLoader(shadowRoot) - showClose(shadowRoot) - expandList(shadowRoot) - } - } - return [2] - } - }) - }) - } - exports.openToast = openToast - }, - { - '../../colorMode': 249, - '../../utils/replace-in-template': 266, - './toast-templates': 261, - '@airgap/beacon-utils': 302 - } - ], - 261: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.toastTemplates = void 0 - exports.toastTemplates = { - default: { - html: '
\n
\n \n

{{text}}

\n \n Open\n \n
\n\n
\n
\n
\n
\n
\n', - css: ":host {\n --animation-duration: 300ms;\n all: initial;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n.animated {\n animation-duration: var(--animation-duration);\n animation-fill-mode: both;\n}\n\n.fadeIn {\n animation-name: fadeIn;\n}\n\n.fadeOut {\n animation-name: fadeOut;\n}\n\n.beacon-toast__base {\n position: fixed;\n top: 16px;\n right: 16px;\n z-index: 2147483000;\n margin: 0 auto;\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 12px 24px 0 rgba(0, 0, 0, 0.1);\n flex-direction: column;\n}\n@media (max-width: 576px) {\n .beacon-toast__base {\n top: 8px;\n right: 8px;\n left: 8px;\n }\n .beacon-toast__wallet__outer {\n flex-wrap: wrap;\n }\n .beacon-toast__wallet__link {\n display: flex;\n margin-left: 12px !important;\n }\n}\n\n.theme__light.beacon-toast__base {\n background: #fff;\n}\n\n.theme__dark.beacon-toast__base {\n background: #27334c;\n}\n\n.theme__dark p {\n color: #6183ff;\n}\n\na {\n text-decoration: none;\n color: #3880ff;\n}\n\na svg {\n width: 12px;\n margin-left: 2px;\n}\n\na:visited {\n color: #3880ff;\n}\n\nhr {\n height: 1px;\n color: rgba(0, 0, 0, 0.12);\n background-color: rgba(0, 0, 0, 0.12);\n border: none;\n width: 100%;\n margin: 0;\n display: none;\n}\n\n.show {\n display: block !important;\n}\n\n.hide {\n display: none !important;\n}\n\n#beacon-toast-list {\n display: none;\n}\n\n.beacon-toast__upside_down {\n transform: rotate(180deg);\n}\n\n.beacon-toast__content {\n justify-content: space-between;\n min-height: 56px;\n height: 0;\n}\n\n.beacon-toast__action__item,\n.beacon-toast__powered a,\n.beacon-toast__wallet__container,\n#beacon-text,\n.beacon-toast__action__item p,\n.beacon-toast__wallet__outer {\n align-items: center;\n}\n\n.beacon-toast__content,\n.beacon-toast__base,\n.beacon-toast__action__item,\n.beacon-toast__powered a,\n#beacon-text,\n.beacon-toast__wallet__container,\n.beacon-toast__wallet__outer {\n display: flex;\n}\n\n.beacon-toast__content,\n.beacon-toast__action__item,\n.beacon-toast__powered a {\n padding: 0 16px;\n font-family: Roboto, Helvetica, sans-serif;\n}\n\n#beacon-text strong {\n display: contents;\n}\n.beacon-toast__wallet__link {\n margin-left: 8px;\n}\n.beacon-toast__wallet__link svg {\n margin-left: 4px;\n}\n.beacon-toast__powered a {\n margin: 4px 0 12px;\n font-size: 12px;\n opacity: 0.64;\n}\n\n.beacon-toast__powered svg {\n width: 20px;\n height: 20px;\n margin: 0 2px 0 4px;\n}\n\n.beacon-toast__action__item {\n font-size: 14px;\n max-width: 40ch;\n}\n\n.beacon-toast__action__item p {\n margin-right: 8px;\n}\n\n.beacon-toast__action__item__subtitle,\n.beacon-toast__powered a {\n min-width: 88px;\n color: rgba(0, 0, 0, 0.54);\n}\n\n.theme__dark .beacon-toast__powered a {\n color: #7c99d6;\n}\n\n.beacon-toast__content__img {\n width: 24px;\n height: 24px;\n margin-right: 4px;\n image-rendering: -moz-crisp-edges; /* Firefox */\n image-rendering: -o-crisp-edges; /* Opera */\n image-rendering: -webkit-optimize-contrast; /* Webkit (non-standard naming) */\n image-rendering: crisp-edges;\n -ms-interpolation-mode: nearest-neighbor; /* IE (non-standard property) */\n}\n\n.beacon-toast__more {\n width: 14px;\n transition: transform 0.5s;\n}\n\na,\n.beacon-toast__more {\n cursor: pointer;\n}\n\na:hover {\n opacity: 0.64;\n}\n\n.theme__dark .beacon-toast__more {\n color: #7c99d6;\n}\n\n.beacon-toast__more--action {\n margin: 8px 0;\n}\n\n#beacon-text {\n padding-right: 24px;\n}\n\n#beacon-text-content {\n display: flex;\n align-items: center;\n}\n\n.progress-line,\n.progress-line:before {\n height: 3px;\n width: 100%;\n margin: 0;\n}\n.progress-line {\n background-color: #a7c4f7;\n display: -webkit-flex;\n display: flex;\n}\n.progress-line:before {\n background-color: #3880ff;\n content: '';\n -webkit-animation: running-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n animation: running-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n}\n@-webkit-keyframes running-progress {\n 0% {\n margin-left: 0px;\n margin-right: 100%;\n }\n 50% {\n margin-left: 25%;\n margin-right: 0%;\n }\n 100% {\n margin-left: 100%;\n margin-right: 0;\n }\n}\n@keyframes running-progress {\n 0% {\n margin-left: 0px;\n margin-right: 100%;\n }\n 50% {\n margin-left: 25%;\n margin-right: 0%;\n }\n 100% {\n margin-left: 100%;\n margin-right: 0;\n }\n}\n", - poweredByBeacon: - '\n powered by\n \n beacon_logo\n \n \n \n \n Beacon\n\n' - } - } - }, - {} - ], - 262: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.BlockExplorer = void 0 - var BlockExplorer = (function () { - function BlockExplorer(rpcUrls) { - this.rpcUrls = rpcUrls - } - BlockExplorer.prototype.getLinkForNetwork = function (network) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.rpcUrls[network.type]] - }) - }) - } - return BlockExplorer - })() - exports.BlockExplorer = BlockExplorer - }, - {} - ], - 263: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.getTzip10Link = void 0 - var getTzip10Link = function (url, payload) { - return url + '?type=tzip10&data=' + payload - } - exports.getTzip10Link = getTzip10Link - }, - {} - ], - 264: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.isDesktop = - exports.isAndroid = - exports.isIOS = - exports.isMobile = - exports.testUserAgent = - void 0 - var testUserAgent = function (win, expr) { - return expr.test(win.navigator.userAgent) - } - exports.testUserAgent = testUserAgent - var matchMedia = function (win, query) { - return win.matchMedia(query).matches - } - var isMobile = function (win) { - return matchMedia(win, '(any-pointer:coarse)') - } - exports.isMobile = isMobile - var isIpad = function (win) { - if ((0, exports.testUserAgent)(win, /iPad/i)) { - return true - } - if ((0, exports.testUserAgent)(win, /Macintosh/i) && (0, exports.isMobile)(win)) { - return true - } - return false - } - var isIOS = function (win) { - return (0, exports.testUserAgent)(win, /iPhone|iPod/i) || isIpad(win) - } - exports.isIOS = isIOS - var isAndroid = function (win) { - return (0, exports.testUserAgent)(win, /android|sink/i) - } - exports.isAndroid = isAndroid - var isDesktop = function (win) { - return !(0, exports.isMobile)(win) - } - exports.isDesktop = isDesktop - }, - {} - ], - 265: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.getQrData = void 0 - var qrcode = require('qrcode-generator') - var beacon_core_1 = require('@airgap/beacon-core') - var logger = new beacon_core_1.Logger('QR') - var getQrData = function (payload, type) { - var typeNumber = 0 - var errorCorrectionLevel = 'L' - var qr = qrcode(typeNumber, errorCorrectionLevel) - if (payload.length > 500) { - logger.warn( - 'getQrData', - 'The size of the payload in the QR code is quite long and some devices might not be able to scan it anymore. To reduce the QR size, try using a shorter "name", "appUrl" and "iconUrl"' - ) - } - try { - qr.addData(payload) - qr.make() - if (type === 'svg') { - return qr.createSvgTag() - } else if (type === 'ascii') { - var length_1 = qr.getModuleCount() - var black = ' ' - var white = ' ' - var whiteLine = new Array(length_1 + 3).join(white) - var blackLine = new Array(length_1 + 3).join(black) - var ascii = '' - ascii += blackLine + '\n' - ascii += whiteLine + '\n' - for (var x = 0; x < length_1; x++) { - ascii += white - for (var y = 0; y < length_1; y++) { - ascii += qr.isDark(x, y) ? black : white - } - ascii += white + '\n' - } - ascii += whiteLine - ascii += blackLine - return ascii - } else { - return qr.createDataURL() - } - } catch (qrError) { - console.error('error', qrError) - throw qrError - } - } - exports.getQrData = getQrData - }, - { '@airgap/beacon-core': 229, 'qrcode-generator': 179 } - ], - 266: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.replaceInTemplate = void 0 - var replaceInTemplate = function (text, placeholder, value) { - return text.split('{{' + placeholder + '}}').join(value) - } - exports.replaceInTemplate = replaceInTemplate - }, - {} - ], - 267: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.shortenString = void 0 - var shortenString = function (text) { - if (text.length >= 12) { - return text.substr(0, 5) + '...' + text.substr(-5) - } - return text - } - exports.shortenString = shortenString - }, - {} - ], - 268: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.TezblockBlockExplorer = void 0 - var beacon_types_1 = require('@airgap/beacon-types') - var block_explorer_1 = require('./block-explorer') - var TezblockBlockExplorer = (function (_super) { - __extends(TezblockBlockExplorer, _super) - function TezblockBlockExplorer(rpcUrls) { - var _a - if (rpcUrls === void 0) { - rpcUrls = - ((_a = {}), - (_a[beacon_types_1.NetworkType.MAINNET] = 'https://tezblock.io'), - (_a[beacon_types_1.NetworkType.DELPHINET] = 'https://delphinet.tezblock.io'), - (_a[beacon_types_1.NetworkType.EDONET] = 'https://edonet.tezblock.io'), - (_a[beacon_types_1.NetworkType.FLORENCENET] = 'https://florencenet.tezblock.io'), - (_a[beacon_types_1.NetworkType.GRANADANET] = 'https://granadanet.tezblock.io'), - (_a[beacon_types_1.NetworkType.HANGZHOUNET] = 'https://hangzhounet.tezblock.io'), - (_a[beacon_types_1.NetworkType.CUSTOM] = 'https://granadanet.tezblock.io'), - _a) - } - var _this = _super.call(this, rpcUrls) || this - _this.rpcUrls = rpcUrls - return _this - } - TezblockBlockExplorer.prototype.getAddressLink = function (address, network) { - return __awaiter(this, void 0, void 0, function () { - var blockExplorer - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.getLinkForNetwork(network)] - case 1: - blockExplorer = _a.sent() - return [2, blockExplorer + '/account/' + address] - } - }) - }) - } - TezblockBlockExplorer.prototype.getTransactionLink = function (transactionId, network) { - return __awaiter(this, void 0, void 0, function () { - var blockExplorer - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.getLinkForNetwork(network)] - case 1: - blockExplorer = _a.sent() - return [2, blockExplorer + '/transaction/' + transactionId] - } - }) - }) - } - return TezblockBlockExplorer - })(block_explorer_1.BlockExplorer) - exports.TezblockBlockExplorer = TezblockBlockExplorer - }, - { './block-explorer': 262, '@airgap/beacon-types': 287 } - ], - 269: [ - function (require, module, exports) { - 'use strict' - var __createBinding = - (this && this.__createBinding) || - (Object.create - ? function (o, m, k, k2) { - if (k2 === undefined) k2 = k - Object.defineProperty(o, k2, { - enumerable: true, - get: function () { - return m[k] - } - }) - } - : function (o, m, k, k2) { - if (k2 === undefined) k2 = k - o[k2] = m[k] - }) - var __exportStar = - (this && this.__exportStar) || - function (m, exports) { - for (var p in m) - if (p !== 'default' && !Object.prototype.hasOwnProperty.call(exports, p)) - __createBinding(exports, m, p) - } - Object.defineProperty(exports, '__esModule', { value: true }) - __exportStar(require('@airgap/beacon-core'), exports) - __exportStar(require('@airgap/beacon-dapp'), exports) - __exportStar(require('@airgap/beacon-transport-matrix'), exports) - __exportStar(require('@airgap/beacon-transport-postmessage'), exports) - __exportStar(require('@airgap/beacon-types'), exports) - __exportStar(require('@airgap/beacon-utils'), exports) - __exportStar(require('@airgap/beacon-wallet'), exports) - }, - { - '@airgap/beacon-core': 229, - '@airgap/beacon-dapp': 252, - '@airgap/beacon-transport-matrix': 272, - '@airgap/beacon-transport-postmessage': 286, - '@airgap/beacon-types': 287, - '@airgap/beacon-utils': 302, - '@airgap/beacon-wallet': 308 - } - ], - 270: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.P2PTransport = void 0 - var beacon_core_1 = require('@airgap/beacon-core') - var beacon_types_1 = require('@airgap/beacon-types') - var beacon_transport_matrix_1 = require('@airgap/beacon-transport-matrix') - var logger = new beacon_core_1.Logger('P2PTransport') - var P2PTransport = (function (_super) { - __extends(P2PTransport, _super) - function P2PTransport( - name, - keyPair, - storage, - matrixNodes, - storageKey, - iconUrl, - appUrl - ) { - var _this = - _super.call( - this, - name, - new beacon_transport_matrix_1.P2PCommunicationClient( - name, - keyPair, - 1, - storage, - matrixNodes, - iconUrl, - appUrl - ), - new beacon_core_1.PeerManager(storage, storageKey) - ) || this - _this.type = beacon_types_1.TransportType.P2P - return _this - } - P2PTransport.isAvailable = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, Promise.resolve(true)] - }) - }) - } - P2PTransport.prototype.connect = function () { - return __awaiter(this, void 0, void 0, function () { - var knownPeers, connectionPromises - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (this._isConnected !== beacon_types_1.TransportStatus.NOT_CONNECTED) { - return [2] - } - logger.log('connect') - this._isConnected = beacon_types_1.TransportStatus.CONNECTING - return [4, this.client.start()] - case 1: - _a.sent() - return [4, this.getPeers()] - case 2: - knownPeers = _a.sent() - if (knownPeers.length > 0) { - logger.log('connect', 'connecting to ' + knownPeers.length + ' peers') - connectionPromises = knownPeers.map(function (peer) { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.listen(peer.publicKey)] - }) - }) - }) - Promise.all(connectionPromises).catch(function (error) { - return logger.error('connect', error) - }) - } - return [4, this.startOpenChannelListener()] - case 3: - _a.sent() - return [2, _super.prototype.connect.call(this)] - } - }) - }) - } - P2PTransport.prototype.disconnect = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.client.stop()] - case 1: - _a.sent() - return [2, _super.prototype.disconnect.call(this)] - } - }) - }) - } - P2PTransport.prototype.startOpenChannelListener = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2] - }) - }) - } - P2PTransport.prototype.getPairingRequestInfo = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.client.getPairingRequestInfo()] - }) - }) - } - P2PTransport.prototype.listen = function (publicKey) { - return __awaiter(this, void 0, void 0, function () { - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [ - 4, - this.client - .listenForEncryptedMessage(publicKey, function (message) { - var connectionContext = { - origin: beacon_types_1.Origin.P2P, - id: publicKey - } - _this - .notifyListeners(message, connectionContext) - .catch(function (error) { - throw error - }) - }) - .catch(function (error) { - throw error - }) - ] - case 1: - _a.sent() - return [2] - } - }) - }) - } - return P2PTransport - })(beacon_core_1.Transport) - exports.P2PTransport = P2PTransport - }, - { - '@airgap/beacon-core': 229, - '@airgap/beacon-transport-matrix': 272, - '@airgap/beacon-types': 287 - } - ], - 271: [ - function (require, module, exports) { - ;(function (Buffer) { - ;(function () { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - var __assign = - (this && this.__assign) || - function () { - __assign = - Object.assign || - function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i] - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p] - } - return t - } - return __assign.apply(this, arguments) - } - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.P2PCommunicationClient = - exports.deterministicShuffle = - exports.publicKeyToNumber = - exports.KNOWN_RELAY_SERVERS = - void 0 - var libsodium_wrappers_1 = require('libsodium-wrappers') - var axios_1 = require('axios') - var beacon_utils_1 = require('@airgap/beacon-utils') - var MatrixClient_1 = require('../matrix-client/MatrixClient') - var MatrixClientEvent_1 = require('../matrix-client/models/MatrixClientEvent') - var MatrixMessage_1 = require('../matrix-client/models/MatrixMessage') - var beacon_types_1 = require('@airgap/beacon-types') - var beacon_core_1 = require('@airgap/beacon-core') - var beacon_utils_2 = require('@airgap/beacon-utils') - var logger = new beacon_core_1.Logger('P2PCommunicationClient') - exports.KNOWN_RELAY_SERVERS = [ - 'beacon-node-1.sky.papers.tech', - 'beacon-node-0.papers.tech:8448', - 'beacon-node-2.sky.papers.tech' - ] - var publicKeyToNumber = function (arr, mod) { - var sum = 0 - for (var i = 0; i < arr.length; i++) { - sum += arr[i] + i - } - return Math.floor(sum % mod) - } - exports.publicKeyToNumber = publicKeyToNumber - var deterministicShuffle = function (arr, keypair) { - var arrCopy = JSON.parse(JSON.stringify(arr)) - var newArr = [] - while (arrCopy.length > 0) { - var position = (0, exports.publicKeyToNumber)(keypair.publicKey, arrCopy.length) - newArr.push.apply(newArr, arrCopy.splice(position, 1)) - } - return newArr - } - exports.deterministicShuffle = deterministicShuffle - var P2PCommunicationClient = (function (_super) { - __extends(P2PCommunicationClient, _super) - function P2PCommunicationClient( - name, - keyPair, - replicationCount, - storage, - matrixNodes, - iconUrl, - appUrl - ) { - var _this = _super.call(this, keyPair) || this - _this.name = name - _this.replicationCount = replicationCount - _this.storage = storage - _this.iconUrl = iconUrl - _this.appUrl = appUrl - _this.client = new beacon_utils_2.ExposedPromise() - _this.activeListeners = new Map() - _this.ignoredRooms = [] - _this.loginCounter = 0 - logger.log('constructor', 'P2PCommunicationClient created') - var nodes = matrixNodes.length > 0 ? matrixNodes : exports.KNOWN_RELAY_SERVERS - _this.ENABLED_RELAY_SERVERS = (0, exports.deterministicShuffle)(nodes, keyPair) - return _this - } - P2PCommunicationClient.prototype.getPairingRequestInfo = function () { - return __awaiter(this, void 0, void 0, function () { - var info - var _a - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = {} - return [4, (0, beacon_utils_2.generateGUID)()] - case 1: - ;(_a.id = _b.sent()), - (_a.type = 'p2p-pairing-request'), - (_a.name = this.name), - (_a.version = beacon_core_1.BEACON_VERSION) - return [4, this.getPublicKey()] - case 2: - _a.publicKey = _b.sent() - return [4, this.getRelayServer()] - case 3: - info = ((_a.relayServer = _b.sent()), _a) - if (this.iconUrl) { - info.icon = this.iconUrl - } - if (this.appUrl) { - info.appUrl = this.appUrl - } - return [2, info] - } - }) - }) - } - P2PCommunicationClient.prototype.getPairingResponseInfo = function (request) { - return __awaiter(this, void 0, void 0, function () { - var info - var _a - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = { - id: request.id, - type: 'p2p-pairing-response', - name: this.name, - version: beacon_core_1.BEACON_VERSION - } - return [4, this.getPublicKey()] - case 1: - _a.publicKey = _b.sent() - return [4, this.getRelayServer()] - case 2: - info = ((_a.relayServer = _b.sent()), _a) - if (this.iconUrl) { - info.icon = this.iconUrl - } - if (this.appUrl) { - info.appUrl = this.appUrl - } - return [2, info] - } - }) - }) - } - P2PCommunicationClient.prototype.getRelayServer = function () { - return __awaiter(this, void 0, void 0, function () { - var node, startIndex, offset, serverIndex, server, relayError_1 - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (this.relayServer) { - return [2, this.relayServer.promise] - } else { - this.relayServer = new beacon_utils_2.ExposedPromise() - } - return [ - 4, - this.storage.get(beacon_types_1.StorageKey.MATRIX_SELECTED_NODE) - ] - case 1: - node = _a.sent() - if (node && node.length > 0) { - this.relayServer.resolve(node) - return [2, node] - } - startIndex = (0, exports.publicKeyToNumber)( - this.keyPair.publicKey, - this.ENABLED_RELAY_SERVERS.length - ) - offset = 0 - _a.label = 2 - case 2: - if (!(offset < this.ENABLED_RELAY_SERVERS.length)) return [3, 7] - serverIndex = (startIndex + offset) % this.ENABLED_RELAY_SERVERS.length - server = this.ENABLED_RELAY_SERVERS[serverIndex] - _a.label = 3 - case 3: - _a.trys.push([3, 5, , 6]) - return [ - 4, - axios_1.default.get('https://' + server + '/_matrix/client/versions') - ] - case 4: - _a.sent() - this.storage - .set(beacon_types_1.StorageKey.MATRIX_SELECTED_NODE, server) - .catch(function (error) { - return logger.log(error) - }) - this.relayServer.resolve(server) - return [2, server] - case 5: - relayError_1 = _a.sent() - logger.log('Ignoring server "' + server + '", trying another one...') - offset++ - return [3, 6] - case 6: - return [3, 2] - case 7: - this.relayServer.reject('No matrix server reachable!') - throw new Error('No matrix server reachable!') - } - }) - }) - } - P2PCommunicationClient.prototype.tryJoinRooms = function (roomId, retry) { - if (retry === void 0) { - retry = 1 - } - return __awaiter(this, void 0, void 0, function () { - var error_1 - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 3, , 4]) - return [4, this.client.promise] - case 1: - return [4, _a.sent().joinRooms(roomId)] - case 2: - _a.sent() - return [3, 4] - case 3: - error_1 = _a.sent() - if (retry <= 10 && error_1.errcode === 'M_FORBIDDEN') { - logger.log('Retrying to join...', error_1) - setTimeout(function () { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.tryJoinRooms(roomId, retry + 1)] - case 1: - _a.sent() - return [2] - } - }) - }) - }, 200) - } else { - logger.log('Failed to join after ' + retry + ' tries.', error_1) - } - return [3, 4] - case 4: - return [2] - } - }) - }) - } - P2PCommunicationClient.prototype.start = function () { - return __awaiter(this, void 0, void 0, function () { - var loginRawDigest, - rawSignature, - relayServer, - client, - _a, - _b, - _c, - _d, - _e, - _f, - error_2 - var _g - var _this = this - return __generator(this, function (_h) { - switch (_h.label) { - case 0: - logger.log('start', 'starting client') - return [4, libsodium_wrappers_1.ready] - case 1: - _h.sent() - loginRawDigest = (0, libsodium_wrappers_1.crypto_generichash)( - 32, - (0, libsodium_wrappers_1.from_string)( - 'login:' + Math.floor(Date.now() / 1e3 / (5 * 60)) - ) - ) - rawSignature = (0, libsodium_wrappers_1.crypto_sign_detached)( - loginRawDigest, - this.keyPair.privateKey - ) - logger.log('start', 'connecting to server') - return [4, this.getRelayServer()] - case 2: - relayServer = _h.sent() - client = MatrixClient_1.MatrixClient.create({ - baseUrl: 'https://' + relayServer, - storage: this.storage - }) - this.initialListener = function (event) { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - if ( - this.initialEvent && - this.initialEvent.timestamp && - event && - event.timestamp - ) { - if (this.initialEvent.timestamp < event.timestamp) { - this.initialEvent = event - } - } else { - this.initialEvent = event - } - return [2] - }) - }) - } - client.subscribe( - MatrixClientEvent_1.MatrixClientEventType.MESSAGE, - this.initialListener - ) - client.subscribe( - MatrixClientEvent_1.MatrixClientEventType.INVITE, - function (event) { - return __awaiter(_this, void 0, void 0, function () { - var member - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (event.content.members.length === 1) { - member = event.content.members[0] - } - return [4, this.tryJoinRooms(event.content.roomId)] - case 1: - _a.sent() - if (!member) return [3, 4] - return [4, this.updateRelayServer(member)] - case 2: - _a.sent() - return [4, this.updatePeerRoom(member, event.content.roomId)] - case 3: - _a.sent() - _a.label = 4 - case 4: - return [2] - } - }) - }) - } - ) - _b = (_a = logger).log - _c = ['start', 'login'] - return [4, this.getPublicKeyHash()] - case 3: - _b.apply(_a, _c.concat([_h.sent(), 'on', relayServer])) - _h.label = 4 - case 4: - _h.trys.push([4, 8, , 10]) - _e = (_d = client).start - _g = {} - return [4, this.getPublicKeyHash()] - case 5: - _g.id = _h.sent() - _f = 'ed:' + (0, beacon_utils_1.toHex)(rawSignature) + ':' - return [4, this.getPublicKey()] - case 6: - return [ - 4, - _e.apply(_d, [ - ((_g.password = _f + _h.sent()), - (_g.deviceId = (0, beacon_utils_1.toHex)(this.keyPair.publicKey)), - _g) - ]) - ] - case 7: - _h.sent() - return [3, 10] - case 8: - error_2 = _h.sent() - console.log('ERROR, RETRYING') - return [4, this.reset()] - case 9: - _h.sent() - console.log('TRYING AGAIN') - if (this.loginCounter <= this.ENABLED_RELAY_SERVERS.length) { - this.loginCounter++ - this.start() - return [2] - } else { - throw new Error('Too many login attempts. Try again later.') - } - return [3, 10] - case 10: - console.log('client is ready') - this.client.resolve(client) - return [2] - } - }) - }) - } - P2PCommunicationClient.prototype.stop = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!this.client.isResolved()) return [3, 3] - return [4, this.client.promise] - case 1: - return [ - 4, - _a - .sent() - .stop() - .catch(function (error) { - return logger.error(error) - }) - ] - case 2: - _a.sent() - _a.label = 3 - case 3: - return [4, this.reset()] - case 4: - _a.sent() - return [2] - } - }) - }) - } - P2PCommunicationClient.prototype.reset = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [ - 4, - this.storage - .delete(beacon_types_1.StorageKey.MATRIX_PEER_ROOM_IDS) - .catch(function (error) { - return logger.log(error) - }) - ] - case 1: - _a.sent() - return [ - 4, - this.storage - .delete(beacon_types_1.StorageKey.MATRIX_PRESERVED_STATE) - .catch(function (error) { - return logger.log(error) - }) - ] - case 2: - _a.sent() - return [ - 4, - this.storage - .delete(beacon_types_1.StorageKey.MATRIX_SELECTED_NODE) - .catch(function (error) { - return logger.log(error) - }) - ] - case 3: - _a.sent() - this.relayServer = undefined - this.client = new beacon_utils_2.ExposedPromise() - this.initialEvent = undefined - this.initialListener = undefined - return [2] - } - }) - }) - } - P2PCommunicationClient.prototype.listenForEncryptedMessage = function ( - senderPublicKey, - messageCallback - ) { - return __awaiter(this, void 0, void 0, function () { - var sharedRx, callbackFunction, lastEvent, initialListener - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (this.activeListeners.has(senderPublicKey)) { - return [2] - } - return [ - 4, - this.createCryptoBoxServer(senderPublicKey, this.keyPair.privateKey) - ] - case 1: - sharedRx = _a.sent().sharedRx - callbackFunction = function (event) { - return __awaiter(_this, void 0, void 0, function () { - var _a, payload, decryptedMessage, decryptionError_1 - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = this.isTextMessage(event.content) - if (!_a) return [3, 2] - return [4, this.isSender(event, senderPublicKey)] - case 1: - _a = _b.sent() - _b.label = 2 - case 2: - if (!_a) return [3, 8] - payload = void 0 - return [4, this.updateRelayServer(event.content.message.sender)] - case 3: - _b.sent() - return [ - 4, - this.updatePeerRoom( - event.content.message.sender, - event.content.roomId - ) - ] - case 4: - _b.sent() - try { - payload = Buffer.from(event.content.message.content, 'hex') - } catch (_c) {} - if ( - !( - payload && - payload.length >= - libsodium_wrappers_1.crypto_secretbox_NONCEBYTES + - libsodium_wrappers_1.crypto_secretbox_MACBYTES - ) - ) - return [3, 8] - _b.label = 5 - case 5: - _b.trys.push([5, 7, , 8]) - return [ - 4, - (0, beacon_utils_1.decryptCryptoboxPayload)(payload, sharedRx) - ] - case 6: - decryptedMessage = _b.sent() - messageCallback(decryptedMessage) - return [3, 8] - case 7: - decryptionError_1 = _b.sent() - return [3, 8] - case 8: - return [2] - } - }) - }) - } - this.activeListeners.set(senderPublicKey, callbackFunction) - return [4, this.client.promise] - case 2: - _a.sent().subscribe( - MatrixClientEvent_1.MatrixClientEventType.MESSAGE, - callbackFunction - ) - lastEvent = this.initialEvent - if ( - !( - lastEvent && - lastEvent.timestamp && - new Date().getTime() - lastEvent.timestamp < 5 * 60 * 1e3 - ) - ) - return [3, 4] - logger.log('listenForEncryptedMessage', 'Handling previous event') - return [4, callbackFunction(lastEvent)] - case 3: - _a.sent() - return [3, 5] - case 4: - logger.log('listenForEncryptedMessage', 'No previous event found') - _a.label = 5 - case 5: - initialListener = this.initialListener - if (!initialListener) return [3, 7] - return [4, this.client.promise] - case 6: - _a.sent().unsubscribe( - MatrixClientEvent_1.MatrixClientEventType.MESSAGE, - initialListener - ) - _a.label = 7 - case 7: - this.initialListener = undefined - this.initialEvent = undefined - return [2] - } - }) - }) - } - P2PCommunicationClient.prototype.unsubscribeFromEncryptedMessage = function ( - senderPublicKey - ) { - return __awaiter(this, void 0, void 0, function () { - var listener - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - listener = this.activeListeners.get(senderPublicKey) - if (!listener) { - return [2] - } - return [4, this.client.promise] - case 1: - _a.sent().unsubscribe( - MatrixClientEvent_1.MatrixClientEventType.MESSAGE, - listener - ) - this.activeListeners.delete(senderPublicKey) - return [2] - } - }) - }) - } - P2PCommunicationClient.prototype.unsubscribeFromEncryptedMessages = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.client.promise] - case 1: - _a.sent().unsubscribeAll( - MatrixClientEvent_1.MatrixClientEventType.MESSAGE - ) - this.activeListeners.clear() - return [2] - } - }) - }) - } - P2PCommunicationClient.prototype.sendMessage = function (message, peer) { - return __awaiter(this, void 0, void 0, function () { - var sharedTx, recipientHash, recipient, roomId, encryptedMessage - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [ - 4, - this.createCryptoBoxClient(peer.publicKey, this.keyPair.privateKey) - ] - case 1: - sharedTx = _a.sent().sharedTx - return [ - 4, - (0, beacon_utils_1.getHexHash)(Buffer.from(peer.publicKey, 'hex')) - ] - case 2: - recipientHash = _a.sent() - recipient = (0, beacon_utils_1.recipientString)( - recipientHash, - peer.relayServer - ) - return [4, this.getRelevantRoom(recipient)] - case 3: - roomId = _a.sent() - return [4, this.waitForJoin(roomId)] - case 4: - _a.sent() - return [4, (0, beacon_utils_1.encryptCryptoboxPayload)(message, sharedTx)] - case 5: - encryptedMessage = _a.sent() - return [4, this.client.promise] - case 6: - _a.sent() - .sendTextMessage(roomId, encryptedMessage) - .catch(function (error) { - return __awaiter(_this, void 0, void 0, function () { - var newRoomId - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(error.errcode === 'M_FORBIDDEN')) return [3, 4] - logger.log('sendMessage', 'M_FORBIDDEN', error) - return [4, this.deleteRoomIdFromRooms(roomId)] - case 1: - _a.sent() - return [4, this.getRelevantRoom(recipient)] - case 2: - newRoomId = _a.sent() - return [4, this.client.promise] - case 3: - _a.sent() - .sendTextMessage(newRoomId, encryptedMessage) - .catch(function (error2) { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - logger.log('sendMessage', 'inner error', error2) - return [2] - }) - }) - }) - return [3, 5] - case 4: - logger.log('sendMessage', 'not forbidden', error) - _a.label = 5 - case 5: - return [2] - } - }) - }) - }) - return [2] - } - }) - }) - } - P2PCommunicationClient.prototype.updatePeerRoom = function (sender, roomId) { - return __awaiter(this, void 0, void 0, function () { - var split, roomIds, room - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - split = sender.split(':') - if (split.length < 2 || !split[0].startsWith('@')) { - throw new Error('Invalid sender') - } - return [ - 4, - this.storage.get(beacon_types_1.StorageKey.MATRIX_PEER_ROOM_IDS) - ] - case 1: - roomIds = _a.sent() - room = roomIds[sender] - if (room && room[1]) { - this.ignoredRooms.push(room[1]) - } - roomIds[sender] = roomId - return [ - 4, - this.storage.set( - beacon_types_1.StorageKey.MATRIX_PEER_ROOM_IDS, - roomIds - ) - ] - case 2: - _a.sent() - return [2] - } - }) - }) - } - P2PCommunicationClient.prototype.deleteRoomIdFromRooms = function (roomId) { - return __awaiter(this, void 0, void 0, function () { - var roomIds, newRoomIds - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [ - 4, - this.storage.get(beacon_types_1.StorageKey.MATRIX_PEER_ROOM_IDS) - ] - case 1: - roomIds = _a.sent() - newRoomIds = Object.entries(roomIds) - .filter(function (entry) { - return entry[1] !== roomId - }) - .reduce(function (pv, cv) { - var _a - return __assign( - __assign({}, pv), - ((_a = {}), (_a[cv[0]] = cv[1]), _a) - ) - }, {}) - return [ - 4, - this.storage.set( - beacon_types_1.StorageKey.MATRIX_PEER_ROOM_IDS, - newRoomIds - ) - ] - case 2: - _a.sent() - this.ignoredRooms.push(roomId) - return [2] - } - }) - }) - } - P2PCommunicationClient.prototype.listenForChannelOpening = function ( - messageCallback - ) { - return __awaiter(this, void 0, void 0, function () { - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.client.promise] - case 1: - _a.sent().subscribe( - MatrixClientEvent_1.MatrixClientEventType.MESSAGE, - function (event) { - return __awaiter(_this, void 0, void 0, function () { - var _a, - splits, - payload, - pairingResponse, - _b, - _c, - _d, - _e, - decryptionError_2 - var _f - return __generator(this, function (_g) { - switch (_g.label) { - case 0: - _a = this.isTextMessage(event.content) - if (!_a) return [3, 2] - return [4, this.isChannelOpenMessage(event.content)] - case 1: - _a = _g.sent() - _g.label = 2 - case 2: - if (!_a) return [3, 9] - logger.log( - 'listenForChannelOpening', - 'channel opening', - JSON.stringify(event) - ) - return [ - 4, - this.updateRelayServer(event.content.message.sender) - ] - case 3: - _g.sent() - return [ - 4, - this.updatePeerRoom( - event.content.message.sender, - event.content.roomId - ) - ] - case 4: - _g.sent() - splits = event.content.message.content.split(':') - payload = Buffer.from(splits[splits.length - 1], 'hex') - if ( - !( - payload.length >= - libsodium_wrappers_1.crypto_secretbox_NONCEBYTES + - libsodium_wrappers_1.crypto_secretbox_MACBYTES - ) - ) - return [3, 9] - _g.label = 5 - case 5: - _g.trys.push([5, 8, , 9]) - _c = (_b = JSON).parse - return [ - 4, - (0, beacon_utils_1.openCryptobox)( - payload, - this.keyPair.publicKey, - this.keyPair.privateKey - ) - ] - case 6: - pairingResponse = _c.apply(_b, [_g.sent()]) - _d = messageCallback - _e = [__assign({}, pairingResponse)] - _f = {} - return [ - 4, - (0, beacon_core_1.getSenderId)(pairingResponse.publicKey) - ] - case 7: - _d.apply(void 0, [ - __assign.apply( - void 0, - _e.concat([((_f.senderId = _g.sent()), _f)]) - ) - ]) - return [3, 9] - case 8: - decryptionError_2 = _g.sent() - return [3, 9] - case 9: - return [2] - } - }) - }) - } - ) - return [2] - } - }) - }) - } - P2PCommunicationClient.prototype.waitForJoin = function (roomId, retry) { - if (retry === void 0) { - retry = 0 - } - return __awaiter(this, void 0, void 0, function () { - var room - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.client.promise] - case 1: - return [4, _a.sent().getRoomById(roomId)] - case 2: - room = _a.sent() - logger.log( - 'waitForJoin', - 'Currently ' + room.members.length + ' members, we need at least 2' - ) - if (room.members.length >= 2 || room.members.length === 0) { - return [2] - } else { - if (retry <= 200) { - logger.log('Waiting for join... Try: ' + retry) - return [ - 2, - new Promise(function (resolve) { - setTimeout(function () { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - resolve(this.waitForJoin(roomId, retry + 1)) - return [2] - }) - }) - }, 100 * (retry > 50 ? 10 : 1)) - }) - ] - } else { - throw new Error('No one joined after ' + retry + ' tries.') - } - } - return [2] - } - }) - }) - } - P2PCommunicationClient.prototype.sendPairingResponse = function (pairingRequest) { - return __awaiter(this, void 0, void 0, function () { - var recipientHash, recipient, roomId, message, _a, _b, _c, encryptedMessage, msg - var _this = this - return __generator(this, function (_d) { - switch (_d.label) { - case 0: - logger.log('sendPairingResponse') - return [ - 4, - (0, beacon_utils_1.getHexHash)( - Buffer.from(pairingRequest.publicKey, 'hex') - ) - ] - case 1: - recipientHash = _d.sent() - recipient = (0, beacon_utils_1.recipientString)( - recipientHash, - pairingRequest.relayServer - ) - return [4, this.client.promise] - case 2: - return [4, _d.sent().createTrustedPrivateRoom(recipient)] - case 3: - roomId = _d.sent() - return [4, this.updatePeerRoom(recipient, roomId)] - case 4: - _d.sent() - return [4, this.waitForJoin(roomId)] - case 5: - _d.sent() - if (!(typeof pairingRequest.version === 'undefined')) return [3, 7] - return [4, this.getPublicKey()] - case 6: - _a = _d.sent() - return [3, 9] - case 7: - _c = (_b = JSON).stringify - return [4, this.getPairingResponseInfo(pairingRequest)] - case 8: - _a = _c.apply(_b, [_d.sent()]) - _d.label = 9 - case 9: - message = _a - return [ - 4, - this.encryptMessageAsymmetric(pairingRequest.publicKey, message) - ] - case 10: - encryptedMessage = _d.sent() - msg = ['@channel-open', recipient, encryptedMessage].join(':') - return [4, this.client.promise] - case 11: - _d.sent() - .sendTextMessage(roomId, msg) - .catch(function (error) { - return __awaiter(_this, void 0, void 0, function () { - var newRoomId - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(error.errcode === 'M_FORBIDDEN')) return [3, 4] - logger.log('sendMessage', 'M_FORBIDDEN', error) - return [4, this.deleteRoomIdFromRooms(roomId)] - case 1: - _a.sent() - return [4, this.getRelevantRoom(recipient)] - case 2: - newRoomId = _a.sent() - return [4, this.client.promise] - case 3: - _a.sent() - .sendTextMessage(newRoomId, msg) - .catch(function (error2) { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - logger.log('sendMessage', 'inner error', error2) - return [2] - }) - }) - }) - return [3, 5] - case 4: - logger.log('sendMessage', 'not forbidden', error) - _a.label = 5 - case 5: - return [2] - } - }) - }) - }) - return [2] - } - }) - }) - } - P2PCommunicationClient.prototype.isTextMessage = function (content) { - return content.message.type === MatrixMessage_1.MatrixMessageType.TEXT - } - P2PCommunicationClient.prototype.updateRelayServer = function (sender) { - return __awaiter(this, void 0, void 0, function () { - var split, senderHash, relayServer, manager, peers, promiseArray - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - split = sender.split(':') - if (split.length < 2 || !split[0].startsWith('@')) { - throw new Error('Invalid sender') - } - senderHash = split.shift() - relayServer = split.join(':') - manager = localStorage.getItem('beacon:communication-peers-dapp') - ? new beacon_core_1.PeerManager( - this.storage, - beacon_types_1.StorageKey.TRANSPORT_P2P_PEERS_DAPP - ) - : new beacon_core_1.PeerManager( - this.storage, - beacon_types_1.StorageKey.TRANSPORT_P2P_PEERS_WALLET - ) - return [4, manager.getPeers()] - case 1: - peers = _a.sent() - promiseArray = peers.map(function (peer) { - return __awaiter(_this, void 0, void 0, function () { - var hash, _a - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = '@' - return [ - 4, - (0, beacon_utils_1.getHexHash)( - Buffer.from(peer.publicKey, 'hex') - ) - ] - case 1: - hash = _a + _b.sent() - if (!(hash === senderHash)) return [3, 3] - if (!(peer.relayServer !== relayServer)) return [3, 3] - peer.relayServer = relayServer - return [4, manager.addPeer(peer)] - case 2: - _b.sent() - _b.label = 3 - case 3: - return [2] - } - }) - }) - }) - return [4, Promise.all(promiseArray)] - case 2: - _a.sent() - return [2] - } - }) - }) - } - P2PCommunicationClient.prototype.isChannelOpenMessage = function (content) { - return __awaiter(this, void 0, void 0, function () { - var _a, _b, _c, _d, _e, _f - return __generator(this, function (_g) { - switch (_g.label) { - case 0: - _b = (_a = content.message.content).startsWith - _c = '@channel-open:@' - _d = beacon_utils_1.getHexHash - _f = (_e = Buffer).from - return [4, this.getPublicKey()] - case 1: - return [4, _d.apply(void 0, [_f.apply(_e, [_g.sent(), 'hex'])])] - case 2: - return [2, _b.apply(_a, [_c + _g.sent()])] - } - }) - }) - } - P2PCommunicationClient.prototype.isSender = function (event, senderPublicKey) { - return __awaiter(this, void 0, void 0, function () { - var _a, _b, _c - return __generator(this, function (_d) { - switch (_d.label) { - case 0: - _b = (_a = event.content.message.sender).startsWith - _c = '@' - return [ - 4, - (0, beacon_utils_1.getHexHash)(Buffer.from(senderPublicKey, 'hex')) - ] - case 1: - return [2, _b.apply(_a, [_c + _d.sent()])] - } - }) - }) - } - P2PCommunicationClient.prototype.getRelevantRoom = function (recipient) { - return __awaiter(this, void 0, void 0, function () { - var roomIds, roomId, room - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [ - 4, - this.storage.get(beacon_types_1.StorageKey.MATRIX_PEER_ROOM_IDS) - ] - case 1: - roomIds = _a.sent() - roomId = roomIds[recipient] - if (!!roomId) return [3, 4] - logger.log( - 'getRelevantRoom', - 'No room found for peer ' + recipient + ', checking joined ones.' - ) - return [4, this.getRelevantJoinedRoom(recipient)] - case 2: - room = _a.sent() - roomId = room.id - roomIds[recipient] = room.id - return [ - 4, - this.storage.set( - beacon_types_1.StorageKey.MATRIX_PEER_ROOM_IDS, - roomIds - ) - ] - case 3: - _a.sent() - _a.label = 4 - case 4: - logger.log('getRelevantRoom', 'Using room ' + roomId) - return [2, roomId] - } - }) - }) - } - P2PCommunicationClient.prototype.getRelevantJoinedRoom = function (recipient) { - return __awaiter(this, void 0, void 0, function () { - var joinedRooms, relevantRooms, room, roomId - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.client.promise] - case 1: - return [4, _a.sent().joinedRooms] - case 2: - joinedRooms = _a.sent() - logger.log('checking joined rooms', joinedRooms, recipient) - relevantRooms = joinedRooms - .filter(function (roomElement) { - return !_this.ignoredRooms.some(function (id) { - return roomElement.id === id - }) - }) - .filter(function (roomElement) { - return roomElement.members.some(function (member) { - return member === recipient - }) - }) - if (!(relevantRooms.length === 0 || this.ignoredRooms.length > 0)) - return [3, 8] - logger.log( - 'getRelevantJoinedRoom', - 'no relevant rooms found, creating new one' - ) - return [4, this.client.promise] - case 3: - return [4, _a.sent().createTrustedPrivateRoom(recipient)] - case 4: - roomId = _a.sent() - return [4, this.client.promise] - case 5: - return [4, _a.sent().getRoomById(roomId)] - case 6: - room = _a.sent() - logger.log( - 'getRelevantJoinedRoom', - 'waiting for other party to join room: ' + room.id - ) - return [4, this.waitForJoin(roomId)] - case 7: - _a.sent() - logger.log( - 'getRelevantJoinedRoom', - 'new room created and peer invited: ' + room.id - ) - return [3, 9] - case 8: - room = relevantRooms[0] - logger.log( - 'getRelevantJoinedRoom', - 'channel already open, reusing room ' + room.id - ) - _a.label = 9 - case 9: - return [2, room] - } - }) - }) - } - return P2PCommunicationClient - })(beacon_core_1.CommunicationClient) - exports.P2PCommunicationClient = P2PCommunicationClient - }.call(this)) - }.call(this, require('buffer').Buffer)) - }, - { - '../matrix-client/MatrixClient': 273, - '../matrix-client/models/MatrixClientEvent': 277, - '../matrix-client/models/MatrixMessage': 278, - '@airgap/beacon-core': 229, - '@airgap/beacon-types': 287, - '@airgap/beacon-utils': 302, - axios: 16, - buffer: 93, - 'libsodium-wrappers': 153 - } - ], - 272: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.P2PTransport = exports.P2PCommunicationClient = void 0 - var P2PCommunicationClient_1 = require('./communication-client/P2PCommunicationClient') - Object.defineProperty(exports, 'P2PCommunicationClient', { - enumerable: true, - get: function () { - return P2PCommunicationClient_1.P2PCommunicationClient - } - }) - var P2PTransport_1 = require('./P2PTransport') - Object.defineProperty(exports, 'P2PTransport', { - enumerable: true, - get: function () { - return P2PTransport_1.P2PTransport - } - }) - }, - { './P2PTransport': 270, './communication-client/P2PCommunicationClient': 271 } - ], - 273: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.MatrixClient = void 0 - var beacon_core_1 = require('@airgap/beacon-core') - var beacon_utils_1 = require('@airgap/beacon-utils') - var MatrixClientStore_1 = require('./MatrixClientStore') - var MatrixHttpClient_1 = require('./MatrixHttpClient') - var MatrixRoom_1 = require('./models/MatrixRoom') - var MatrixRoomService_1 = require('./services/MatrixRoomService') - var MatrixUserService_1 = require('./services/MatrixUserService') - var MatrixEventService_1 = require('./services/MatrixEventService') - var MatrixClientEventEmitter_1 = require('./MatrixClientEventEmitter') - var logger = new beacon_core_1.Logger('MatrixClient') - var IMMEDIATE_POLLING_RETRIES = 3 - var RETRY_INTERVAL = 5e3 - var MatrixClient = (function () { - function MatrixClient( - store, - eventEmitter, - userService, - roomService, - eventService, - httpClient - ) { - var _this = this - this.store = store - this.eventEmitter = eventEmitter - this.userService = userService - this.roomService = roomService - this.eventService = eventService - this.httpClient = httpClient - this.isActive = true - this._isReady = new beacon_utils_1.ExposedPromise() - this.store.onStateChanged(function (oldState, newState, stateChange) { - _this.eventEmitter.onStateChanged(oldState, newState, stateChange) - }, 'rooms') - } - MatrixClient.create = function (config) { - var store = new MatrixClientStore_1.MatrixClientStore(config.storage) - var eventEmitter = new MatrixClientEventEmitter_1.MatrixClientEventEmitter() - var httpClient = new MatrixHttpClient_1.MatrixHttpClient(config.baseUrl) - var accountService = new MatrixUserService_1.MatrixUserService(httpClient) - var roomService = new MatrixRoomService_1.MatrixRoomService(httpClient) - var eventService = new MatrixEventService_1.MatrixEventService(httpClient) - return new MatrixClient( - store, - eventEmitter, - accountService, - roomService, - eventService, - httpClient - ) - } - Object.defineProperty(MatrixClient.prototype, 'joinedRooms', { - get: function () { - var _this = this - return new Promise(function (resolve) { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.isConnected()] - case 1: - _a.sent() - resolve( - Object.values(this.store.get('rooms')).filter(function (room) { - return room.status === MatrixRoom_1.MatrixRoomStatus.JOINED - }) - ) - return [2] - } - }) - }) - }) - }, - enumerable: false, - configurable: true - }) - Object.defineProperty(MatrixClient.prototype, 'invitedRooms', { - get: function () { - var _this = this - return new Promise(function (resolve) { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.isConnected()] - case 1: - _a.sent() - resolve( - Object.values(this.store.get('rooms')).filter(function (room) { - return room.status === MatrixRoom_1.MatrixRoomStatus.INVITED - }) - ) - return [2] - } - }) - }) - }) - }, - enumerable: false, - configurable: true - }) - Object.defineProperty(MatrixClient.prototype, 'leftRooms', { - get: function () { - var _this = this - return new Promise(function (resolve) { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.isConnected()] - case 1: - _a.sent() - resolve( - Object.values(this.store.get('rooms')).filter(function (room) { - return room.status === MatrixRoom_1.MatrixRoomStatus.LEFT - }) - ) - return [2] - } - }) - }) - }) - }, - enumerable: false, - configurable: true - }) - MatrixClient.prototype.start = function (user) { - return __awaiter(this, void 0, void 0, function () { - var response, initialPollingResult - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.userService.login(user.id, user.password, user.deviceId)] - case 1: - response = _a.sent() - return [4, this.store.update({ accessToken: response.access_token })] - case 2: - _a.sent() - initialPollingResult = new Promise(function (resolve, reject) { - return __awaiter(_this, void 0, void 0, function () { - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [ - 4, - this.poll( - 0, - function (pollingResponse) { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!this.store.get('isRunning')) { - resolve() - } - return [ - 4, - this.store.update({ - isRunning: true, - syncToken: pollingResponse.next_batch, - pollingTimeout: 3e4, - pollingRetries: 0, - rooms: MatrixRoom_1.MatrixRoom.fromSync( - pollingResponse.rooms - ) - }) - ] - case 1: - _a.sent() - return [2] - } - }) - }) - }, - function (error) { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!this.store.get('isRunning')) { - reject(error) - } - return [ - 4, - this.store.update({ - isRunning: false, - pollingRetries: - this.store.get('pollingRetries') + 1 - }) - ] - case 1: - _a.sent() - return [2] - } - }) - }) - } - ) - ] - case 1: - _a.sent() - return [2] - } - }) - }) - }) - initialPollingResult - .then(function () { - _this._isReady.resolve() - }) - .catch(console.error) - return [2, initialPollingResult] - } - }) - }) - } - MatrixClient.prototype.isConnected = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this._isReady.promise] - }) - }) - } - MatrixClient.prototype.stop = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - logger.log('MATRIX CLIENT STOPPED') - this.isActive = false - this._isReady = new beacon_utils_1.ExposedPromise() - return [2, this.httpClient.cancelAllRequests()] - }) - }) - } - MatrixClient.prototype.subscribe = function (event, listener) { - this.eventEmitter.on(event, listener) - } - MatrixClient.prototype.unsubscribe = function (event, listener) { - if (listener) { - this.eventEmitter.removeListener(event, listener) - } - } - MatrixClient.prototype.unsubscribeAll = function (event) { - this.eventEmitter.removeAllListeners(event) - } - MatrixClient.prototype.getRoomById = function (id) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.isConnected()] - case 1: - _a.sent() - return [2, this.store.getRoom(id)] - } - }) - }) - } - MatrixClient.prototype.createTrustedPrivateRoom = function () { - var members = [] - for (var _i = 0; _i < arguments.length; _i++) { - members[_i] = arguments[_i] - } - return __awaiter(this, void 0, void 0, function () { - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.isConnected()] - case 1: - _a.sent() - return [ - 2, - this.requiresAuthorization('createRoom', function (accessToken) { - return __awaiter(_this, void 0, void 0, function () { - var response - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [ - 4, - this.roomService.createRoom(accessToken, { - room_version: '5', - invite: members, - preset: 'public_chat', - is_direct: true - }) - ] - case 1: - response = _a.sent() - return [2, response.room_id] - } - }) - }) - }) - ] - } - }) - }) - } - MatrixClient.prototype.inviteToRooms = function (user) { - var roomsOrIds = [] - for (var _i = 1; _i < arguments.length; _i++) { - roomsOrIds[_i - 1] = arguments[_i] - } - return __awaiter(this, void 0, void 0, function () { - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.isConnected()] - case 1: - _a.sent() - return [ - 4, - this.requiresAuthorization('invite', function (accessToken) { - return Promise.all( - roomsOrIds.map(function (roomOrId) { - var room = _this.store.getRoom(roomOrId) - _this.roomService - .inviteToRoom(accessToken, user, room) - .catch(function (error) { - return logger.warn('inviteToRooms', error) - }) - }) - ) - }) - ] - case 2: - _a.sent() - return [2] - } - }) - }) - } - MatrixClient.prototype.joinRooms = function () { - var roomsOrIds = [] - for (var _i = 0; _i < arguments.length; _i++) { - roomsOrIds[_i] = arguments[_i] - } - return __awaiter(this, void 0, void 0, function () { - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.isConnected()] - case 1: - _a.sent() - return [ - 4, - this.requiresAuthorization('join', function (accessToken) { - return Promise.all( - roomsOrIds.map(function (roomOrId) { - var room = _this.store.getRoom(roomOrId) - return _this.roomService.joinRoom(accessToken, room) - }) - ) - }) - ] - case 2: - _a.sent() - return [2] - } - }) - }) - } - MatrixClient.prototype.sendTextMessage = function (roomId, message) { - return __awaiter(this, void 0, void 0, function () { - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.isConnected()] - case 1: - _a.sent() - return [ - 4, - this.requiresAuthorization('send', function (accessToken) { - return __awaiter(_this, void 0, void 0, function () { - var txnId - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.createTxnId()] - case 1: - txnId = _a.sent() - return [ - 2, - this.eventService.sendMessage( - accessToken, - roomId, - { msgtype: 'm.text', body: message }, - txnId - ) - ] - } - }) - }) - }) - ] - case 2: - _a.sent() - return [2] - } - }) - }) - } - MatrixClient.prototype.poll = function (interval, onSyncSuccess, onSyncError) { - return __awaiter(this, void 0, void 0, function () { - var store, sync, pollSync - var _this = this - return __generator(this, function (_a) { - store = this.store - sync = this.sync.bind(this) - pollSync = function (resolve, reject) { - return __awaiter(_this, void 0, void 0, function () { - var syncingRetries, response, error_1 - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - syncingRetries = 0 - _a.label = 1 - case 1: - _a.trys.push([1, 3, 4, 5]) - return [4, sync()] - case 2: - response = _a.sent() - onSyncSuccess(response) - return [3, 5] - case 3: - error_1 = _a.sent() - onSyncError(error_1) - syncingRetries = store.get('pollingRetries') - if (this.isActive) { - logger.log('Retry syncing... ' + syncingRetries + ' retries so far') - } - return [3, 5] - case 4: - if (this.isActive) { - setTimeout( - function () { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, pollSync(resolve, reject)] - case 1: - _a.sent() - return [2] - } - }) - }) - }, - syncingRetries > IMMEDIATE_POLLING_RETRIES - ? RETRY_INTERVAL + interval - : interval - ) - } else { - reject(new Error('Syncing stopped manually.')) - } - return [7] - case 5: - return [2] - } - }) - }) - } - return [2, new Promise(pollSync)] - }) - }) - } - MatrixClient.prototype.sync = function () { - return __awaiter(this, void 0, void 0, function () { - var _this = this - return __generator(this, function (_a) { - return [ - 2, - this.requiresAuthorization('sync', function (accessToken) { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - this.eventService.sync(accessToken, { - pollingTimeout: this.store.get('pollingTimeout'), - syncToken: this.store.get('syncToken') - }) - ] - }) - }) - }) - ] - }) - }) - } - MatrixClient.prototype.requiresAuthorization = function (name, action) { - return __awaiter(this, void 0, void 0, function () { - var storedToken - return __generator(this, function (_a) { - storedToken = this.store.get('accessToken') - if (!storedToken) { - return [ - 2, - Promise.reject( - name + ' requires authorization but no access token has been provided.' - ) - ] - } - return [2, action(storedToken)] - }) - }) - } - MatrixClient.prototype.createTxnId = function () { - return __awaiter(this, void 0, void 0, function () { - var timestamp, counter - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - timestamp = new Date().getTime() - counter = this.store.get('txnNo') - return [4, this.store.update({ txnNo: counter + 1 })] - case 1: - _a.sent() - return [2, 'm' + timestamp + '.' + counter] - } - }) - }) - } - return MatrixClient - })() - exports.MatrixClient = MatrixClient - }, - { - './MatrixClientEventEmitter': 274, - './MatrixClientStore': 275, - './MatrixHttpClient': 276, - './models/MatrixRoom': 279, - './services/MatrixEventService': 280, - './services/MatrixRoomService': 281, - './services/MatrixUserService': 282, - '@airgap/beacon-core': 229, - '@airgap/beacon-utils': 302 - } - ], - 274: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - Object.defineProperty(exports, '__esModule', { value: true }) - exports.MatrixClientEventEmitter = void 0 - var events_1 = require('events') - var beacon_utils_1 = require('@airgap/beacon-utils') - var MatrixRoom_1 = require('./models/MatrixRoom') - var MatrixClientEvent_1 = require('./models/MatrixClientEvent') - var MatrixClientEventEmitter = (function (_super) { - __extends(MatrixClientEventEmitter, _super) - function MatrixClientEventEmitter() { - var _this = (_super !== null && _super.apply(this, arguments)) || this - _this.eventEmitProviders = new Map([ - [ - MatrixClientEvent_1.MatrixClientEventType.INVITE, - function () { - return [_this.isInvite, _this.emitInvite.bind(_this)] - } - ], - [ - MatrixClientEvent_1.MatrixClientEventType.MESSAGE, - function () { - return [_this.isMessage, _this.emitMessage.bind(_this)] - } - ] - ]) - return _this - } - MatrixClientEventEmitter.prototype.onStateChanged = function ( - _oldState, - _newState, - stateChange - ) { - for ( - var _i = 0, - _a = (0, beacon_utils_1.keys)(MatrixClientEvent_1.MatrixClientEventType); - _i < _a.length; - _i++ - ) { - var event_1 = _a[_i] - this.emitIfEvent(MatrixClientEvent_1.MatrixClientEventType[event_1], stateChange) - } - } - MatrixClientEventEmitter.prototype.emitIfEvent = function (eventType, object) { - var provider = this.eventEmitProviders.get(eventType) - if (provider) { - var _a = provider(), - predicate = _a[0], - emitter = _a[1] - if (predicate(object)) { - emitter(eventType, object) - } - } - } - MatrixClientEventEmitter.prototype.emitClientEvent = function ( - eventType, - content, - timestamp - ) { - this.emit(eventType, { type: eventType, content: content, timestamp: timestamp }) - } - MatrixClientEventEmitter.prototype.isInvite = function (stateChange) { - return stateChange.rooms - ? stateChange.rooms.some(function (room) { - return room.status === MatrixRoom_1.MatrixRoomStatus.INVITED - }) - : false - } - MatrixClientEventEmitter.prototype.emitInvite = function (eventType, stateChange) { - var _this = this - stateChange.rooms - .filter(function (room) { - return room.status === MatrixRoom_1.MatrixRoomStatus.INVITED - }) - .map(function (room) { - return [room.id, room.members] - }) - .forEach(function (_a) { - var id = _a[0], - members = _a[1] - _this.emitClientEvent(eventType, { roomId: id, members: members }) - }) - } - MatrixClientEventEmitter.prototype.isMessage = function (stateChange) { - return stateChange.rooms - ? stateChange.rooms.some(function (room) { - return room.messages.length > 0 - }) - : false - } - MatrixClientEventEmitter.prototype.emitMessage = function (eventType, stateChange) { - var _this = this - stateChange.rooms - .filter(function (room) { - return room.messages.length > 0 - }) - .map(function (room) { - return room.messages.map(function (message) { - return [room.id, message, message.timestamp] - }) - }) - .reduce(function (flatten, toFlatten) { - return flatten.concat(toFlatten) - }, []) - .forEach(function (_a) { - var roomId = _a[0], - message = _a[1], - timestamp = _a[2] - _this.emitClientEvent(eventType, { roomId: roomId, message: message }, timestamp) - }) - } - return MatrixClientEventEmitter - })(events_1.EventEmitter) - exports.MatrixClientEventEmitter = MatrixClientEventEmitter - }, - { - './models/MatrixClientEvent': 277, - './models/MatrixRoom': 279, - '@airgap/beacon-utils': 302, - events: 134 - } - ], - 275: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.MatrixClientStore = void 0 - var beacon_utils_1 = require('@airgap/beacon-utils') - var MatrixRoom_1 = require('./models/MatrixRoom') - var beacon_types_1 = require('@airgap/beacon-types') - var PRESERVED_FIELDS = ['syncToken', 'rooms'] - var MatrixClientStore = (function () { - function MatrixClientStore(storage) { - var _this = this - this.storage = storage - this.state = { - isRunning: false, - userId: undefined, - deviceId: undefined, - txnNo: 0, - accessToken: undefined, - syncToken: undefined, - pollingTimeout: undefined, - pollingRetries: 0, - rooms: {} - } - this.onStateChangedListeners = new Map() - this.waitReadyPromise = new Promise(function (resolve, reject) { - return __awaiter(_this, void 0, void 0, function () { - var error_1 - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]) - return [4, this.initFromStorage()] - case 1: - _a.sent() - resolve() - return [3, 3] - case 2: - error_1 = _a.sent() - reject(error_1) - return [3, 3] - case 3: - return [2] - } - }) - }) - }) - } - MatrixClientStore.prototype.get = function (key) { - return this.state[key] - } - MatrixClientStore.prototype.getRoom = function (roomOrId) { - var room = MatrixRoom_1.MatrixRoom.from( - roomOrId, - MatrixRoom_1.MatrixRoomStatus.UNKNOWN - ) - return this.state.rooms[room.id] || room - } - MatrixClientStore.prototype.update = function (stateUpdate) { - return __awaiter(this, void 0, void 0, function () { - var oldState - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.waitReady()] - case 1: - _a.sent() - oldState = Object.assign({}, this.state) - this.setState(stateUpdate) - this.updateStorage(stateUpdate) - this.notifyListeners(oldState, this.state, stateUpdate) - return [2] - } - }) - }) - } - MatrixClientStore.prototype.onStateChanged = function (listener) { - var _this = this - var subscribed = [] - for (var _i = 1; _i < arguments.length; _i++) { - subscribed[_i - 1] = arguments[_i] - } - if (subscribed.length > 0) { - subscribed.forEach(function (key) { - _this.onStateChangedListeners.set(key, listener) - }) - } else { - this.onStateChangedListeners.set('all', listener) - } - } - MatrixClientStore.prototype.waitReady = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.waitReadyPromise] - }) - }) - } - MatrixClientStore.prototype.initFromStorage = function () { - return __awaiter(this, void 0, void 0, function () { - var preserved - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.storage.get(beacon_types_1.StorageKey.MATRIX_PRESERVED_STATE)] - case 1: - preserved = _a.sent() - this.setState(preserved) - return [2] - } - }) - }) - } - MatrixClientStore.prototype.prepareData = function (toStore) { - var requiresPreparation = ['rooms'] - var toStoreCopy = requiresPreparation.some(function (key) { - return toStore[key] !== undefined - }) - ? JSON.parse(JSON.stringify(toStore)) - : toStore - Object.values(toStoreCopy.rooms || {}).forEach(function (room) { - room.messages = [] - }) - return toStoreCopy - } - MatrixClientStore.prototype.updateStorage = function (stateUpdate) { - var _this = this - var updatedCachedFields = Object.entries(stateUpdate).filter(function (_a) { - var key = _a[0], - value = _a[1] - return PRESERVED_FIELDS.includes(key) && Boolean(value) - }) - if (updatedCachedFields.length > 0) { - var filteredState_1 = {} - PRESERVED_FIELDS.forEach(function (key) { - filteredState_1[key] = _this.state[key] - }) - this.storage.set( - beacon_types_1.StorageKey.MATRIX_PRESERVED_STATE, - this.prepareData(filteredState_1) - ) - } - } - MatrixClientStore.prototype.setState = function (partialState) { - this.state = { - isRunning: partialState.isRunning || this.state.isRunning, - userId: partialState.userId || this.state.userId, - deviceId: partialState.deviceId || this.state.deviceId, - txnNo: partialState.txnNo || this.state.txnNo, - accessToken: partialState.accessToken || this.state.accessToken, - syncToken: partialState.syncToken || this.state.syncToken, - pollingTimeout: partialState.pollingTimeout || this.state.pollingTimeout, - pollingRetries: partialState.pollingRetries || this.state.pollingRetries, - rooms: this.mergeRooms(this.state.rooms, partialState.rooms) - } - } - MatrixClientStore.prototype.mergeRooms = function (oldRooms, _newRooms) { - if (!_newRooms) { - return oldRooms - } - var newRooms = Array.isArray(_newRooms) ? _newRooms : Object.values(_newRooms) - var merged = Object.assign({}, oldRooms) - newRooms.forEach(function (newRoom) { - merged[newRoom.id] = MatrixRoom_1.MatrixRoom.merge(newRoom, oldRooms[newRoom.id]) - }) - return merged - } - MatrixClientStore.prototype.notifyListeners = function ( - oldState, - newState, - stateChange - ) { - var _this = this - var listenForAll = this.onStateChangedListeners.get('all') - if (listenForAll) { - listenForAll(oldState, newState, stateChange) - } - ;(0, beacon_utils_1.keys)(stateChange) - .filter(function (key) { - return stateChange[key] !== undefined - }) - .forEach(function (key) { - var listener = _this.onStateChangedListeners.get(key) - if (listener) { - listener(oldState, newState, stateChange) - } - }) - } - return MatrixClientStore - })() - exports.MatrixClientStore = MatrixClientStore - }, - { './models/MatrixRoom': 279, '@airgap/beacon-types': 287, '@airgap/beacon-utils': 302 } - ], - 276: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - var __spreadArray = - (this && this.__spreadArray) || - function (to, from, pack) { - if (pack || arguments.length === 2) - for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i) - ar[i] = from[i] - } - } - return to.concat(ar || Array.prototype.slice.call(from)) - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.MatrixHttpClient = void 0 - var axios_1 = require('axios') - var beacon_utils_1 = require('@airgap/beacon-utils') - var CLIENT_API_R0 = '/_matrix/client/r0' - var MatrixHttpClient = (function () { - function MatrixHttpClient(baseUrl) { - this.baseUrl = baseUrl - this.cancelTokenSource = axios_1.default.CancelToken.source() - } - MatrixHttpClient.prototype.get = function (endpoint, params, options) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.send('GET', endpoint, options, params)] - }) - }) - } - MatrixHttpClient.prototype.post = function (endpoint, body, options, params) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.send('POST', endpoint, options, params, body)] - }) - }) - } - MatrixHttpClient.prototype.put = function (endpoint, body, options, params) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.send('PUT', endpoint, options, params, body)] - }) - }) - } - MatrixHttpClient.prototype.cancelAllRequests = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.cancelTokenSource.cancel('Manually cancelled')] - }) - }) - } - MatrixHttpClient.prototype.send = function ( - method, - endpoint, - config, - requestParams, - data - ) { - return __awaiter(this, void 0, void 0, function () { - var headers, params, response, axiosError_1 - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - headers = config ? this.getHeaders(config) : undefined - params = requestParams ? this.getParams(requestParams) : undefined - _a.label = 1 - case 1: - _a.trys.push([1, 3, , 4]) - return [ - 4, - axios_1.default.request({ - method: method, - url: endpoint, - baseURL: this.apiUrl(CLIENT_API_R0), - headers: headers, - data: data, - params: params, - cancelToken: this.cancelTokenSource.token - }) - ] - case 2: - response = _a.sent() - return [3, 4] - case 3: - axiosError_1 = _a.sent() - throw axiosError_1.response.data - case 4: - return [2, response.data] - } - }) - }) - } - MatrixHttpClient.prototype.getHeaders = function (options) { - var headers = {} - var entries = [] - if (options.accessToken) { - entries.push(['Authorization', 'Bearer ' + options.accessToken]) - } - if (entries.length === 0) { - return undefined - } - for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) { - var _a = entries_1[_i], - key = _a[0], - value = _a[1] - headers[key] = value - } - return headers - } - MatrixHttpClient.prototype.getParams = function (_params) { - if (!_params) { - return undefined - } - var params = Object.assign(_params, {}) - ;(0, beacon_utils_1.keys)(params).forEach(function (key) { - return params[key] === undefined && delete params[key] - }) - return params - } - MatrixHttpClient.prototype.apiUrl = function () { - var parts = [] - for (var _i = 0; _i < arguments.length; _i++) { - parts[_i] = arguments[_i] - } - var apiBase = this.baseUrl.endsWith('/') - ? this.baseUrl.substr(0, this.baseUrl.length - 1) - : this.baseUrl - var apiParts = parts.map(function (path) { - return path.startsWith('/') ? path.substr(1) : path - }) - return __spreadArray([apiBase], apiParts, true).join('/') - } - return MatrixHttpClient - })() - exports.MatrixHttpClient = MatrixHttpClient - }, - { '@airgap/beacon-utils': 302, axios: 16 } - ], - 277: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.MatrixClientEventType = void 0 - var MatrixClientEventType - ;(function (MatrixClientEventType) { - MatrixClientEventType['INVITE'] = 'invite' - MatrixClientEventType['MESSAGE'] = 'message' - })( - (MatrixClientEventType = - exports.MatrixClientEventType || (exports.MatrixClientEventType = {})) - ) - }, - {} - ], - 278: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.MatrixMessage = exports.MatrixMessageType = void 0 - var events_1 = require('../utils/events') - var MatrixMessageType - ;(function (MatrixMessageType) { - MatrixMessageType['TEXT'] = 'm.text' - })((MatrixMessageType = exports.MatrixMessageType || (exports.MatrixMessageType = {}))) - var MatrixMessage = (function () { - function MatrixMessage(type, sender, content, timestamp) { - this.type = type - this.sender = sender - this.content = content - this.timestamp = timestamp - } - MatrixMessage.from = function (event) { - if ((0, events_1.isTextMessageEvent)(event)) { - return new MatrixMessage( - event.content.msgtype, - event.sender, - event.content.body, - event.origin_server_ts - ) - } - return undefined - } - return MatrixMessage - })() - exports.MatrixMessage = MatrixMessage - }, - { '../utils/events': 283 } - ], - 279: [ - function (require, module, exports) { - 'use strict' - var __spreadArray = - (this && this.__spreadArray) || - function (to, from, pack) { - if (pack || arguments.length === 2) - for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i) - ar[i] = from[i] - } - } - return to.concat(ar || Array.prototype.slice.call(from)) - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.MatrixRoom = exports.MatrixRoomStatus = void 0 - var events_1 = require('../utils/events') - var MatrixMessage_1 = require('./MatrixMessage') - var MatrixRoomStatus - ;(function (MatrixRoomStatus) { - MatrixRoomStatus[(MatrixRoomStatus['UNKNOWN'] = 0)] = 'UNKNOWN' - MatrixRoomStatus[(MatrixRoomStatus['JOINED'] = 1)] = 'JOINED' - MatrixRoomStatus[(MatrixRoomStatus['INVITED'] = 2)] = 'INVITED' - MatrixRoomStatus[(MatrixRoomStatus['LEFT'] = 3)] = 'LEFT' - })((MatrixRoomStatus = exports.MatrixRoomStatus || (exports.MatrixRoomStatus = {}))) - var MatrixRoom = (function () { - function MatrixRoom(id, status, members, messages) { - if (status === void 0) { - status = MatrixRoomStatus.UNKNOWN - } - if (members === void 0) { - members = [] - } - if (messages === void 0) { - messages = [] - } - this.id = id - this.status = status - this.members = members - this.messages = messages - } - MatrixRoom.fromSync = function (roomSync) { - function create(rooms, creator) { - return Object.entries(rooms).map(function (_a) { - var id = _a[0], - room = _a[1] - return creator(id, room) - }) - } - return __spreadArray( - __spreadArray( - __spreadArray([], create(roomSync.join, MatrixRoom.fromJoined), true), - create(roomSync.invite, MatrixRoom.fromInvited), - true - ), - create(roomSync.leave, MatrixRoom.fromLeft), - true - ) - } - MatrixRoom.from = function (roomOrId, status) { - return typeof roomOrId === 'string' - ? new MatrixRoom(roomOrId, status || MatrixRoomStatus.UNKNOWN) - : status !== undefined - ? new MatrixRoom(roomOrId.id, status, roomOrId.members, roomOrId.messages) - : roomOrId - } - MatrixRoom.merge = function (newState, previousState) { - if (!previousState || previousState.id !== newState.id) { - return MatrixRoom.from(newState) - } - return new MatrixRoom( - newState.id, - newState.status, - __spreadArray( - __spreadArray([], previousState.members, true), - newState.members, - true - ).filter(function (member, index, array) { - return array.indexOf(member) === index - }), - __spreadArray( - __spreadArray([], previousState.messages, true), - newState.messages, - true - ) - ) - } - MatrixRoom.fromJoined = function (id, joined) { - var events = __spreadArray( - __spreadArray([], joined.state.events, true), - joined.timeline.events, - true - ) - var members = MatrixRoom.getMembersFromEvents(events) - var messages = MatrixRoom.getMessagesFromEvents(events) - return new MatrixRoom(id, MatrixRoomStatus.JOINED, members, messages) - } - MatrixRoom.fromInvited = function (id, invited) { - var members = MatrixRoom.getMembersFromEvents(invited.invite_state.events) - return new MatrixRoom(id, MatrixRoomStatus.INVITED, members) - } - MatrixRoom.fromLeft = function (id, left) { - var events = __spreadArray( - __spreadArray([], left.state.events, true), - left.timeline.events, - true - ) - var members = MatrixRoom.getMembersFromEvents(events) - var messages = MatrixRoom.getMessagesFromEvents(events) - return new MatrixRoom(id, MatrixRoomStatus.LEFT, members, messages) - } - MatrixRoom.getMembersFromEvents = function (events) { - return MatrixRoom.getUniqueEvents( - events.filter(function (event) { - return (0, events_1.isCreateEvent)(event) || (0, events_1.isJoinEvent)(event) - }) - ) - .map(function (event) { - return event.sender - }) - .filter(function (member, index, array) { - return array.indexOf(member) === index - }) - } - MatrixRoom.getMessagesFromEvents = function (events) { - return MatrixRoom.getUniqueEvents(events.filter(events_1.isMessageEvent)) - .map(function (event) { - return MatrixMessage_1.MatrixMessage.from(event) - }) - .filter(Boolean) - } - MatrixRoom.getUniqueEvents = function (events) { - var eventIds = {} - var uniqueEvents = [] - events.forEach(function (event, index) { - var eventId = event.event_id - if (eventId === undefined || !(eventId in eventIds)) { - if (eventId !== undefined) { - eventIds[eventId] = index - } - uniqueEvents.push(event) - } - }) - return uniqueEvents - } - return MatrixRoom - })() - exports.MatrixRoom = MatrixRoom - }, - { '../utils/events': 283, './MatrixMessage': 278 } - ], - 280: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.MatrixEventService = void 0 - var MatrixEventService = (function () { - function MatrixEventService(httpClient) { - this.httpClient = httpClient - this.cachedPromises = new Map() - } - MatrixEventService.prototype.sync = function (accessToken, options) { - return __awaiter(this, void 0, void 0, function () { - var _this = this - return __generator(this, function (_a) { - return [ - 2, - this.withCache('sync', function () { - return _this.httpClient.get( - '/sync', - { - timeout: options ? options.pollingTimeout : undefined, - since: options ? options.syncToken : undefined - }, - { accessToken: accessToken } - ) - }) - ] - }) - }) - } - MatrixEventService.prototype.sendMessage = function ( - accessToken, - roomId, - content, - txnId - ) { - return __awaiter(this, void 0, void 0, function () { - var _this = this - return __generator(this, function (_a) { - return [ - 2, - new Promise(function (resolve, reject) { - return _this.scheduleEvent({ - accessToken: accessToken, - roomId: roomId, - type: 'm.room.message', - content: content, - txnId: txnId, - onSuccess: resolve, - onError: reject - }) - }) - ] - }) - }) - } - MatrixEventService.prototype.scheduleEvent = function (event) { - this.sendEvent(event) - } - MatrixEventService.prototype.sendEvent = function (scheduledEvent) { - return __awaiter(this, void 0, void 0, function () { - var roomId, type, txnId, content, accessToken, response, error_1 - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - ;(roomId = scheduledEvent.roomId), - (type = scheduledEvent.type), - (txnId = scheduledEvent.txnId), - (content = scheduledEvent.content), - (accessToken = scheduledEvent.accessToken) - _a.label = 1 - case 1: - _a.trys.push([1, 3, , 4]) - return [ - 4, - this.httpClient.put( - '/rooms/' + - encodeURIComponent(roomId) + - '/send/' + - type + - '/' + - encodeURIComponent(txnId), - content, - { accessToken: accessToken } - ) - ] - case 2: - response = _a.sent() - scheduledEvent.onSuccess(response) - return [3, 4] - case 3: - error_1 = _a.sent() - scheduledEvent.onError(error_1) - return [3, 4] - case 4: - return [2] - } - }) - }) - } - MatrixEventService.prototype.withCache = function (key, promiseProvider) { - var _this = this - var promise = this.cachedPromises.get(key) - if (!promise) { - promise = promiseProvider().finally(function () { - _this.cachedPromises.delete(key) - }) - this.cachedPromises.set(key, promise) - } - return promise - } - return MatrixEventService - })() - exports.MatrixEventService = MatrixEventService - }, - {} - ], - 281: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.MatrixRoomService = void 0 - var MatrixRoom_1 = require('../models/MatrixRoom') - var MatrixRoomService = (function () { - function MatrixRoomService(httpClient) { - this.httpClient = httpClient - } - MatrixRoomService.prototype.createRoom = function (accessToken, config) { - if (config === void 0) { - config = {} - } - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - this.httpClient.post('/createRoom', config, { accessToken: accessToken }) - ] - }) - }) - } - MatrixRoomService.prototype.inviteToRoom = function (accessToken, user, room) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - if ( - room.status !== MatrixRoom_1.MatrixRoomStatus.JOINED && - room.status !== MatrixRoom_1.MatrixRoomStatus.UNKNOWN - ) { - return [2, Promise.reject('User is not a member of room ' + room.id + '.')] - } - return [ - 2, - this.httpClient.post( - '/rooms/' + encodeURIComponent(room.id) + '/invite', - { user_id: user }, - { accessToken: accessToken } - ) - ] - }) - }) - } - MatrixRoomService.prototype.joinRoom = function (accessToken, room) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - if (room.status === MatrixRoom_1.MatrixRoomStatus.JOINED) { - return [2, Promise.resolve({ room_id: room.id })] - } - return [ - 2, - this.httpClient.post( - '/rooms/' + encodeURIComponent(room.id) + '/join', - {}, - { accessToken: accessToken } - ) - ] - }) - }) - } - MatrixRoomService.prototype.getJoinedRooms = function (accessToken) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - this.httpClient.get('/joined_rooms', undefined, { accessToken: accessToken }) - ] - }) - }) - } - return MatrixRoomService - })() - exports.MatrixRoomService = MatrixRoomService - }, - { '../models/MatrixRoom': 279 } - ], - 282: [ - function (require, module, exports) { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.MatrixUserService = void 0 - var MatrixUserService = (function () { - function MatrixUserService(httpClient) { - this.httpClient = httpClient - } - MatrixUserService.prototype.login = function (user, password, deviceId) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - this.httpClient.post('/login', { - type: 'm.login.password', - identifier: { type: 'm.id.user', user: user }, - password: password, - device_id: deviceId - }) - ] - }) - }) - } - return MatrixUserService - })() - exports.MatrixUserService = MatrixUserService - }, - {} - ], - 283: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.isTextMessageEvent = - exports.isMessageEvent = - exports.isJoinEvent = - exports.isCreateEvent = - void 0 - var MatrixMessage_1 = require('../models/MatrixMessage') - var isCreateEvent = function (event) { - return ( - event.type === 'm.room.create' && - event.content instanceof Object && - 'creator' in event.content - ) - } - exports.isCreateEvent = isCreateEvent - var isJoinEvent = function (event) { - return ( - event.type === 'm.room.member' && - event.content instanceof Object && - 'membership' in event.content && - event.content['membership'] === 'join' - ) - } - exports.isJoinEvent = isJoinEvent - var isMessageEvent = function (event) { - return event.type === 'm.room.message' - } - exports.isMessageEvent = isMessageEvent - var isTextMessageEvent = function (event) { - return ( - (0, exports.isMessageEvent)(event) && - event.content instanceof Object && - 'msgtype' in event.content && - event.content['msgtype'] === MatrixMessage_1.MatrixMessageType.TEXT - ) - } - exports.isTextMessageEvent = isTextMessageEvent - }, - { '../models/MatrixMessage': 278 } - ], - 284: [ - function (require, module, exports) { - ;(function (Buffer) { - ;(function () { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - var __assign = - (this && this.__assign) || - function () { - __assign = - Object.assign || - function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i] - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p] - } - return t - } - return __assign.apply(this, arguments) - } - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.PostMessageClient = void 0 - var libsodium_wrappers_1 = require('libsodium-wrappers') - var beacon_core_1 = require('@airgap/beacon-core') - var beacon_utils_1 = require('@airgap/beacon-utils') - var beacon_types_1 = require('@airgap/beacon-types') - var PostMessageClient = (function (_super) { - __extends(PostMessageClient, _super) - function PostMessageClient() { - var _this = (_super !== null && _super.apply(this, arguments)) || this - _this.activeListeners = new Map() - return _this - } - PostMessageClient.prototype.init = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - this.subscribeToMessages().catch(console.error) - return [2] - }) - }) - } - PostMessageClient.prototype.listenForEncryptedMessage = function ( - senderPublicKey, - messageCallback - ) { - return __awaiter(this, void 0, void 0, function () { - var callbackFunction - var _this = this - return __generator(this, function (_a) { - if (this.activeListeners.has(senderPublicKey)) { - return [2] - } - callbackFunction = function (message, context) { - return __awaiter(_this, void 0, void 0, function () { - var decryptedMessage, decryptionError_1 - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]) - return [ - 4, - this.decryptMessage(senderPublicKey, message.encryptedPayload) - ] - case 1: - decryptedMessage = _a.sent() - messageCallback(decryptedMessage, context) - return [3, 3] - case 2: - decryptionError_1 = _a.sent() - return [3, 3] - case 3: - return [2] - } - }) - }) - } - this.activeListeners.set(senderPublicKey, callbackFunction) - return [2] - }) - }) - } - PostMessageClient.prototype.sendMessage = function (message, peer) { - var _a - return __awaiter(this, void 0, void 0, function () { - var payload, targetId, msg - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - return [4, this.encryptMessage(peer.publicKey, message)] - case 1: - payload = _b.sent() - targetId = (_a = peer) === null || _a === void 0 ? void 0 : _a.extensionId - msg = { - target: beacon_types_1.ExtensionMessageTarget.EXTENSION, - encryptedPayload: payload, - targetId: targetId - } - beacon_core_1.windowRef.postMessage( - msg, - beacon_core_1.windowRef.location.origin - ) - return [2] - } - }) - }) - } - PostMessageClient.prototype.listenForChannelOpening = function (messageCallback) { - return __awaiter(this, void 0, void 0, function () { - var fn - var _this = this - return __generator(this, function (_a) { - fn = function (event) { - return __awaiter(_this, void 0, void 0, function () { - var data, _a, payload, pairingResponse, _b, _c, _d, _e, decryptionError_2 - var _f - var _g, _h - return __generator(this, function (_j) { - switch (_j.label) { - case 0: - data = - (_g = - event === null || event === void 0 ? void 0 : event.data) === - null || _g === void 0 - ? void 0 - : _g.message - _a = - data && data.target === beacon_types_1.ExtensionMessageTarget.PAGE - if (!_a) return [3, 2] - return [4, this.isChannelOpenMessage(data)] - case 1: - _a = _j.sent() - _j.label = 2 - case 2: - if (!_a) return [3, 7] - payload = Buffer.from(data.payload, 'hex') - if ( - !( - payload.length >= - libsodium_wrappers_1.crypto_secretbox_NONCEBYTES + - libsodium_wrappers_1.crypto_secretbox_MACBYTES - ) - ) - return [3, 7] - _j.label = 3 - case 3: - _j.trys.push([3, 6, , 7]) - _c = (_b = JSON).parse - return [ - 4, - (0, beacon_utils_1.openCryptobox)( - payload, - this.keyPair.publicKey, - this.keyPair.privateKey - ) - ] - case 4: - pairingResponse = _c.apply(_b, [_j.sent()]) - _d = messageCallback - _e = [__assign({}, pairingResponse)] - _f = {} - return [ - 4, - (0, beacon_core_1.getSenderId)(pairingResponse.publicKey) - ] - case 5: - _d.apply(void 0, [ - __assign.apply( - void 0, - _e.concat([ - ((_f.senderId = _j.sent()), - (_f.extensionId = - (_h = - event === null || event === void 0 - ? void 0 - : event.data) === null || _h === void 0 - ? void 0 - : _h.sender.id), - _f) - ]) - ) - ]) - return [3, 7] - case 6: - decryptionError_2 = _j.sent() - return [3, 7] - case 7: - return [2] - } - }) - }) - } - beacon_core_1.windowRef.addEventListener('message', fn) - return [2] - }) - }) - } - PostMessageClient.prototype.sendPairingRequest = function (id) { - return __awaiter(this, void 0, void 0, function () { - var message, _a, _b - var _c - return __generator(this, function (_d) { - switch (_d.label) { - case 0: - _c = { target: beacon_types_1.ExtensionMessageTarget.EXTENSION } - _b = (_a = new beacon_core_1.Serializer()).serialize - return [4, this.getPairingRequestInfo()] - case 1: - return [4, _b.apply(_a, [_d.sent()])] - case 2: - message = ((_c.payload = _d.sent()), (_c.targetId = id), _c) - beacon_core_1.windowRef.postMessage( - message, - beacon_core_1.windowRef.location.origin - ) - return [2] - } - }) - }) - } - PostMessageClient.prototype.isChannelOpenMessage = function (message) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, typeof message === 'object' && message.hasOwnProperty('payload')] - }) - }) - } - PostMessageClient.prototype.subscribeToMessages = function () { - return __awaiter(this, void 0, void 0, function () { - var _this = this - return __generator(this, function (_a) { - beacon_core_1.windowRef.addEventListener('message', function (message) { - if (typeof message === 'object' && message) { - var data_1 = message.data - if ( - data_1.message && - data_1.message.target === beacon_types_1.ExtensionMessageTarget.PAGE - ) { - _this.activeListeners.forEach(function (listener) { - listener(data_1.message, { - origin: beacon_types_1.Origin.EXTENSION, - id: data_1.sender.id || '' - }) - }) - } - } - }) - return [2] - }) - }) - } - return PostMessageClient - })(beacon_core_1.MessageBasedClient) - exports.PostMessageClient = PostMessageClient - }.call(this)) - }.call(this, require('buffer').Buffer)) - }, - { - '@airgap/beacon-core': 229, - '@airgap/beacon-types': 287, - '@airgap/beacon-utils': 302, - buffer: 93, - 'libsodium-wrappers': 153 - } - ], - 285: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.PostMessageTransport = void 0 - var beacon_types_1 = require('@airgap/beacon-types') - var beacon_core_1 = require('@airgap/beacon-core') - var PostMessageClient_1 = require('./PostMessageClient') - var logger = new beacon_core_1.Logger('PostMessageTransport') - var listeningForExtensions = false - var extensionsPromise - var extensions - var addExtension = function (extension) { - if (!extensions) { - extensions = [] - } - if ( - !extensions.some(function (ext) { - return ext.id === extension.id - }) - ) { - extensions.push(extension) - beacon_core_1.windowRef.postMessage( - 'extensionsUpdated', - beacon_core_1.windowRef.location.origin - ) - } - } - var PostMessageTransport = (function (_super) { - __extends(PostMessageTransport, _super) - function PostMessageTransport(name, keyPair, storage, storageKey) { - var _this = - _super.call( - this, - name, - new PostMessageClient_1.PostMessageClient(name, keyPair), - new beacon_core_1.PeerManager(storage, storageKey) - ) || this - _this.type = beacon_types_1.TransportType.POST_MESSAGE - return _this - } - PostMessageTransport.isAvailable = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [ - 2, - new Promise(function (resolve) { - var fn = function (event) { - var data = event.data - if (data && data.payload === 'pong') { - resolve(true) - beacon_core_1.windowRef.removeEventListener('message', fn) - } - } - beacon_core_1.windowRef.addEventListener('message', fn) - var message = { - target: beacon_types_1.ExtensionMessageTarget.EXTENSION, - payload: 'ping' - } - beacon_core_1.windowRef.postMessage( - message, - beacon_core_1.windowRef.location.origin - ) - }) - ] - }) - }) - } - PostMessageTransport.getAvailableExtensions = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - if (extensionsPromise) { - return [2, extensionsPromise] - } - if (extensions) { - return [2, extensions] - } - extensions = [] - extensionsPromise = new Promise(function (resolve) { - PostMessageTransport.listenForExtensions() - setTimeout(function () { - resolve(extensions !== null && extensions !== void 0 ? extensions : []) - }, 1e3) - }).finally(function () { - extensionsPromise = undefined - }) - return [2, extensionsPromise] - }) - }) - } - PostMessageTransport.listenForExtensions = function () { - if (listeningForExtensions) { - return - } - var fn = function (event) { - var data = event.data - var sender = data.sender - if (data && data.payload === 'pong' && sender) { - logger.log( - 'getAvailableExtensions', - 'extension "' + sender.name + '" is available', - sender - ) - addExtension(sender) - } - } - beacon_core_1.windowRef.addEventListener('message', fn) - var message = { - target: beacon_types_1.ExtensionMessageTarget.EXTENSION, - payload: 'ping' - } - beacon_core_1.windowRef.postMessage(message, beacon_core_1.windowRef.location.origin) - listeningForExtensions = true - } - PostMessageTransport.prototype.connect = function () { - return __awaiter(this, void 0, void 0, function () { - var knownPeers, connectionPromises - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - logger.log('connect') - if (this._isConnected !== beacon_types_1.TransportStatus.NOT_CONNECTED) { - return [2] - } - this._isConnected = beacon_types_1.TransportStatus.CONNECTING - return [4, this.getPeers()] - case 1: - knownPeers = _a.sent() - if (knownPeers.length > 0) { - logger.log('connect', 'connecting to ' + knownPeers.length + ' peers') - connectionPromises = knownPeers.map(function (peer) { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.listen(peer.publicKey)] - }) - }) - }) - Promise.all(connectionPromises).catch(function (error) { - return logger.error('connect', error) - }) - } - return [4, this.startOpenChannelListener()] - case 2: - _a.sent() - return [4, _super.prototype.connect.call(this)] - case 3: - _a.sent() - return [2] - } - }) - }) - } - PostMessageTransport.prototype.startOpenChannelListener = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2] - }) - }) - } - PostMessageTransport.prototype.getPairingRequestInfo = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.client.getPairingRequestInfo()] - }) - }) - } - PostMessageTransport.prototype.listen = function (publicKey) { - return __awaiter(this, void 0, void 0, function () { - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - logger.log('listen', publicKey) - return [ - 4, - this.client - .listenForEncryptedMessage(publicKey, function (message, context) { - var connectionContext = { - origin: beacon_types_1.Origin.EXTENSION, - id: context.id - } - _this - .notifyListeners(message, connectionContext) - .catch(function (error) { - throw error - }) - }) - .catch(function (error) { - throw error - }) - ] - case 1: - _a.sent() - return [2] - } - }) - }) - } - return PostMessageTransport - })(beacon_core_1.Transport) - exports.PostMessageTransport = PostMessageTransport - }, - { './PostMessageClient': 284, '@airgap/beacon-core': 229, '@airgap/beacon-types': 287 } - ], - 286: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.PostMessageTransport = void 0 - var PostMessageTransport_1 = require('./PostMessageTransport') - Object.defineProperty(exports, 'PostMessageTransport', { - enumerable: true, - get: function () { - return PostMessageTransport_1.PostMessageTransport - } - }) - }, - { './PostMessageTransport': 285 } - ], - 287: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.ColorMode = - exports.defaultValues = - exports.StorageKey = - exports.Storage = - exports.TransportType = - exports.TransportStatus = - exports.BeaconErrorType = - exports.ExtensionMessageTarget = - exports.SigningType = - exports.Origin = - exports.PermissionScope = - exports.BeaconMessageType = - exports.NetworkType = - exports.TezosOperationType = - void 0 - var BeaconMessageType_1 = require('./types/beacon/BeaconMessageType') - Object.defineProperty(exports, 'BeaconMessageType', { - enumerable: true, - get: function () { - return BeaconMessageType_1.BeaconMessageType - } - }) - var PermissionScope_1 = require('./types/beacon/PermissionScope') - Object.defineProperty(exports, 'PermissionScope', { - enumerable: true, - get: function () { - return PermissionScope_1.PermissionScope - } - }) - var NetworkType_1 = require('./types/beacon/NetworkType') - Object.defineProperty(exports, 'NetworkType', { - enumerable: true, - get: function () { - return NetworkType_1.NetworkType - } - }) - var OperationTypes_1 = require('./types/tezos/OperationTypes') - Object.defineProperty(exports, 'TezosOperationType', { - enumerable: true, - get: function () { - return OperationTypes_1.TezosOperationType - } - }) - var Origin_1 = require('./types/Origin') - Object.defineProperty(exports, 'Origin', { - enumerable: true, - get: function () { - return Origin_1.Origin - } - }) - var ExtensionMessageTarget_1 = require('./types/ExtensionMessageTarget') - Object.defineProperty(exports, 'ExtensionMessageTarget', { - enumerable: true, - get: function () { - return ExtensionMessageTarget_1.ExtensionMessageTarget - } - }) - var BeaconErrorType_1 = require('./types/BeaconErrorType') - Object.defineProperty(exports, 'BeaconErrorType', { - enumerable: true, - get: function () { - return BeaconErrorType_1.BeaconErrorType - } - }) - var TransportStatus_1 = require('./types/transport/TransportStatus') - Object.defineProperty(exports, 'TransportStatus', { - enumerable: true, - get: function () { - return TransportStatus_1.TransportStatus - } - }) - var TransportType_1 = require('./types/transport/TransportType') - Object.defineProperty(exports, 'TransportType', { - enumerable: true, - get: function () { - return TransportType_1.TransportType - } - }) - var Storage_1 = require('./types/storage/Storage') - Object.defineProperty(exports, 'Storage', { - enumerable: true, - get: function () { - return Storage_1.Storage - } - }) - var StorageKey_1 = require('./types/storage/StorageKey') - Object.defineProperty(exports, 'StorageKey', { - enumerable: true, - get: function () { - return StorageKey_1.StorageKey - } - }) - var StorageKeyReturnDefaults_1 = require('./types/storage/StorageKeyReturnDefaults') - Object.defineProperty(exports, 'defaultValues', { - enumerable: true, - get: function () { - return StorageKeyReturnDefaults_1.defaultValues - } - }) - var SigningType_1 = require('./types/beacon/SigningType') - Object.defineProperty(exports, 'SigningType', { - enumerable: true, - get: function () { - return SigningType_1.SigningType - } - }) - var ColorMode_1 = require('./types/ColorMode') - Object.defineProperty(exports, 'ColorMode', { - enumerable: true, - get: function () { - return ColorMode_1.ColorMode - } - }) - }, - { - './types/BeaconErrorType': 288, - './types/ColorMode': 289, - './types/ExtensionMessageTarget': 290, - './types/Origin': 291, - './types/beacon/BeaconMessageType': 292, - './types/beacon/NetworkType': 293, - './types/beacon/PermissionScope': 294, - './types/beacon/SigningType': 295, - './types/storage/Storage': 296, - './types/storage/StorageKey': 297, - './types/storage/StorageKeyReturnDefaults': 298, - './types/tezos/OperationTypes': 299, - './types/transport/TransportStatus': 300, - './types/transport/TransportType': 301 - } - ], - 288: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.BeaconErrorType = void 0 - var BeaconErrorType - ;(function (BeaconErrorType) { - BeaconErrorType['BROADCAST_ERROR'] = 'BROADCAST_ERROR' - BeaconErrorType['NETWORK_NOT_SUPPORTED'] = 'NETWORK_NOT_SUPPORTED' - BeaconErrorType['NO_ADDRESS_ERROR'] = 'NO_ADDRESS_ERROR' - BeaconErrorType['NO_PRIVATE_KEY_FOUND_ERROR'] = 'NO_PRIVATE_KEY_FOUND_ERROR' - BeaconErrorType['NOT_GRANTED_ERROR'] = 'NOT_GRANTED_ERROR' - BeaconErrorType['PARAMETERS_INVALID_ERROR'] = 'PARAMETERS_INVALID_ERROR' - BeaconErrorType['TOO_MANY_OPERATIONS'] = 'TOO_MANY_OPERATIONS' - BeaconErrorType['TRANSACTION_INVALID_ERROR'] = 'TRANSACTION_INVALID_ERROR' - BeaconErrorType['SIGNATURE_TYPE_NOT_SUPPORTED'] = 'SIGNATURE_TYPE_NOT_SUPPORTED' - BeaconErrorType['ABORTED_ERROR'] = 'ABORTED_ERROR' - BeaconErrorType['UNKNOWN_ERROR'] = 'UNKNOWN_ERROR' - })((BeaconErrorType = exports.BeaconErrorType || (exports.BeaconErrorType = {}))) - }, - {} - ], - 289: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.ColorMode = void 0 - var ColorMode - ;(function (ColorMode) { - ColorMode['LIGHT'] = 'light' - ColorMode['DARK'] = 'dark' - })((ColorMode = exports.ColorMode || (exports.ColorMode = {}))) - }, - {} - ], - 290: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.ExtensionMessageTarget = void 0 - var ExtensionMessageTarget - ;(function (ExtensionMessageTarget) { - ExtensionMessageTarget['BACKGROUND'] = 'toBackground' - ExtensionMessageTarget['PAGE'] = 'toPage' - ExtensionMessageTarget['EXTENSION'] = 'toExtension' - })( - (ExtensionMessageTarget = - exports.ExtensionMessageTarget || (exports.ExtensionMessageTarget = {})) - ) - }, - {} - ], - 291: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.Origin = void 0 - var Origin - ;(function (Origin) { - Origin['WEBSITE'] = 'website' - Origin['EXTENSION'] = 'extension' - Origin['P2P'] = 'p2p' - })((Origin = exports.Origin || (exports.Origin = {}))) - }, - {} - ], - 292: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.BeaconMessageType = void 0 - var BeaconMessageType - ;(function (BeaconMessageType) { - BeaconMessageType['PermissionRequest'] = 'permission_request' - BeaconMessageType['SignPayloadRequest'] = 'sign_payload_request' - BeaconMessageType['OperationRequest'] = 'operation_request' - BeaconMessageType['BroadcastRequest'] = 'broadcast_request' - BeaconMessageType['PermissionResponse'] = 'permission_response' - BeaconMessageType['SignPayloadResponse'] = 'sign_payload_response' - BeaconMessageType['OperationResponse'] = 'operation_response' - BeaconMessageType['BroadcastResponse'] = 'broadcast_response' - BeaconMessageType['Acknowledge'] = 'acknowledge' - BeaconMessageType['Disconnect'] = 'disconnect' - BeaconMessageType['Error'] = 'error' - })((BeaconMessageType = exports.BeaconMessageType || (exports.BeaconMessageType = {}))) - }, - {} - ], - 293: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.NetworkType = void 0 - var NetworkType - ;(function (NetworkType) { - NetworkType['MAINNET'] = 'mainnet' - NetworkType['DELPHINET'] = 'delphinet' - NetworkType['EDONET'] = 'edonet' - NetworkType['FLORENCENET'] = 'florencenet' - NetworkType['GRANADANET'] = 'granadanet' - NetworkType['HANGZHOUNET'] = 'hangzhounet' - NetworkType['CUSTOM'] = 'custom' - })((NetworkType = exports.NetworkType || (exports.NetworkType = {}))) - }, - {} - ], - 294: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.PermissionScope = void 0 - var PermissionScope - ;(function (PermissionScope) { - PermissionScope['SIGN'] = 'sign' - PermissionScope['OPERATION_REQUEST'] = 'operation_request' - PermissionScope['ENCRYPT'] = 'encrypt' - PermissionScope['THRESHOLD'] = 'threshold' - })((PermissionScope = exports.PermissionScope || (exports.PermissionScope = {}))) - }, - {} - ], - 295: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.SigningType = void 0 - var SigningType - ;(function (SigningType) { - SigningType['RAW'] = 'raw' - SigningType['OPERATION'] = 'operation' - SigningType['MICHELINE'] = 'micheline' - })((SigningType = exports.SigningType || (exports.SigningType = {}))) - }, - {} - ], - 296: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.Storage = void 0 - var Storage = (function () { - function Storage() {} - Storage.isSupported = function () { - return Promise.resolve(false) - } - return Storage - })() - exports.Storage = Storage - }, - {} - ], - 297: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.StorageKey = void 0 - var StorageKey - ;(function (StorageKey) { - StorageKey['TRANSPORT_P2P_PEERS_DAPP'] = 'beacon:communication-peers-dapp' - StorageKey['TRANSPORT_P2P_PEERS_WALLET'] = 'beacon:communication-peers-wallet' - StorageKey['TRANSPORT_POSTMESSAGE_PEERS_DAPP'] = 'beacon:postmessage-peers-dapp' - StorageKey['TRANSPORT_POSTMESSAGE_PEERS_WALLET'] = 'beacon:postmessage-peers-wallet' - StorageKey['ACCOUNTS'] = 'beacon:accounts' - StorageKey['ACTIVE_ACCOUNT'] = 'beacon:active-account' - StorageKey['BEACON_SDK_SECRET_SEED'] = 'beacon:sdk-secret-seed' - StorageKey['APP_METADATA_LIST'] = 'beacon:app-metadata-list' - StorageKey['PERMISSION_LIST'] = 'beacon:permissions' - StorageKey['BEACON_SDK_VERSION'] = 'beacon:sdk_version' - StorageKey['MATRIX_PRESERVED_STATE'] = 'beacon:sdk-matrix-preserved-state' - StorageKey['MATRIX_PEER_ROOM_IDS'] = 'beacon:matrix-peer-rooms' - StorageKey['MATRIX_SELECTED_NODE'] = 'beacon:matrix-selected-node' - StorageKey['MULTI_NODE_SETUP_DONE'] = 'beacon:multi-node-setup' - })((StorageKey = exports.StorageKey || (exports.StorageKey = {}))) - }, - {} - ], - 298: [ - function (require, module, exports) { - 'use strict' - var _a - Object.defineProperty(exports, '__esModule', { value: true }) - exports.defaultValues = void 0 - var __1 = require('../..') - exports.defaultValues = - ((_a = {}), - (_a[__1.StorageKey.TRANSPORT_P2P_PEERS_DAPP] = []), - (_a[__1.StorageKey.TRANSPORT_P2P_PEERS_WALLET] = []), - (_a[__1.StorageKey.TRANSPORT_POSTMESSAGE_PEERS_DAPP] = []), - (_a[__1.StorageKey.TRANSPORT_POSTMESSAGE_PEERS_WALLET] = []), - (_a[__1.StorageKey.ACCOUNTS] = []), - (_a[__1.StorageKey.ACTIVE_ACCOUNT] = undefined), - (_a[__1.StorageKey.BEACON_SDK_SECRET_SEED] = undefined), - (_a[__1.StorageKey.APP_METADATA_LIST] = []), - (_a[__1.StorageKey.PERMISSION_LIST] = []), - (_a[__1.StorageKey.BEACON_SDK_VERSION] = undefined), - (_a[__1.StorageKey.MATRIX_PRESERVED_STATE] = {}), - (_a[__1.StorageKey.MATRIX_PEER_ROOM_IDS] = {}), - (_a[__1.StorageKey.MATRIX_SELECTED_NODE] = undefined), - (_a[__1.StorageKey.MULTI_NODE_SETUP_DONE] = undefined), - _a) - }, - { '../..': 287 } - ], - 299: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.TezosOperationType = void 0 - var TezosOperationType - ;(function (TezosOperationType) { - TezosOperationType['ENDORSEMENT'] = 'endorsement' - TezosOperationType['SEED_NONCE_REVELATION'] = 'seed_nonce_revelation' - TezosOperationType['DOUBLE_ENDORSEMENT_EVIDENCE'] = 'double_endorsement_evidence' - TezosOperationType['DOUBLE_BAKING_EVIDENCE'] = 'double_baking_evidence' - TezosOperationType['ACTIVATE_ACCOUNT'] = 'activate_account' - TezosOperationType['PROPOSALS'] = 'proposals' - TezosOperationType['BALLOT'] = 'ballot' - TezosOperationType['REVEAL'] = 'reveal' - TezosOperationType['TRANSACTION'] = 'transaction' - TezosOperationType['ORIGINATION'] = 'origination' - TezosOperationType['DELEGATION'] = 'delegation' - })((TezosOperationType = exports.TezosOperationType || (exports.TezosOperationType = {}))) - }, - {} - ], - 300: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.TransportStatus = void 0 - var TransportStatus - ;(function (TransportStatus) { - TransportStatus['NOT_CONNECTED'] = 'NOT_CONNECTED' - TransportStatus['CONNECTING'] = 'CONNECTING' - TransportStatus['CONNECTED'] = 'CONNECTED' - })((TransportStatus = exports.TransportStatus || (exports.TransportStatus = {}))) - }, - {} - ], - 301: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.TransportType = void 0 - var TransportType - ;(function (TransportType) { - TransportType['CHROME_MESSAGE'] = 'chrome_message' - TransportType['POST_MESSAGE'] = 'post_message' - TransportType['LEDGER'] = 'ledger' - TransportType['P2P'] = 'p2p' - })((TransportType = exports.TransportType || (exports.TransportType = {}))) - }, - {} - ], - 302: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.generateGUID = - exports.recipientString = - exports.openCryptobox = - exports.sealCryptobox = - exports.getHexHash = - exports.encryptCryptoboxPayload = - exports.decryptCryptoboxPayload = - exports.getAddressFromPublicKey = - exports.toHex = - exports.getKeypairFromSeed = - exports.ExposedPromiseStatus = - exports.ExposedPromise = - exports.keys = - void 0 - var keys_1 = require('./utils/keys') - Object.defineProperty(exports, 'keys', { - enumerable: true, - get: function () { - return keys_1.keys - } - }) - var exposed_promise_1 = require('./utils/exposed-promise') - Object.defineProperty(exports, 'ExposedPromise', { - enumerable: true, - get: function () { - return exposed_promise_1.ExposedPromise - } - }) - Object.defineProperty(exports, 'ExposedPromiseStatus', { - enumerable: true, - get: function () { - return exposed_promise_1.ExposedPromiseStatus - } - }) - var crypto_1 = require('./utils/crypto') - Object.defineProperty(exports, 'getKeypairFromSeed', { - enumerable: true, - get: function () { - return crypto_1.getKeypairFromSeed - } - }) - Object.defineProperty(exports, 'toHex', { - enumerable: true, - get: function () { - return crypto_1.toHex - } - }) - Object.defineProperty(exports, 'getAddressFromPublicKey', { - enumerable: true, - get: function () { - return crypto_1.getAddressFromPublicKey - } - }) - Object.defineProperty(exports, 'decryptCryptoboxPayload', { - enumerable: true, - get: function () { - return crypto_1.decryptCryptoboxPayload - } - }) - Object.defineProperty(exports, 'encryptCryptoboxPayload', { - enumerable: true, - get: function () { - return crypto_1.encryptCryptoboxPayload - } - }) - Object.defineProperty(exports, 'getHexHash', { - enumerable: true, - get: function () { - return crypto_1.getHexHash - } - }) - Object.defineProperty(exports, 'sealCryptobox', { - enumerable: true, - get: function () { - return crypto_1.sealCryptobox - } - }) - Object.defineProperty(exports, 'openCryptobox', { - enumerable: true, - get: function () { - return crypto_1.openCryptobox - } - }) - Object.defineProperty(exports, 'recipientString', { - enumerable: true, - get: function () { - return crypto_1.recipientString - } - }) - var generate_uuid_1 = require('./utils/generate-uuid') - Object.defineProperty(exports, 'generateGUID', { - enumerable: true, - get: function () { - return generate_uuid_1.generateGUID - } - }) - }, - { - './utils/crypto': 303, - './utils/exposed-promise': 304, - './utils/generate-uuid': 305, - './utils/keys': 306 - } - ], - 303: [ - function (require, module, exports) { - ;(function (Buffer) { - ;(function () { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.recipientString = - exports.getAddressFromPublicKey = - exports.openCryptobox = - exports.sealCryptobox = - exports.decryptCryptoboxPayload = - exports.encryptCryptoboxPayload = - exports.getKeypairFromSeed = - exports.getHexHash = - exports.toHex = - void 0 - var bs58check = require('bs58check') - var libsodium_wrappers_1 = require('libsodium-wrappers') - function toHex(value) { - return Buffer.from(value).toString('hex') - } - exports.toHex = toHex - function getHexHash(key) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, libsodium_wrappers_1.ready] - case 1: - _a.sent() - return [2, toHex((0, libsodium_wrappers_1.crypto_generichash)(32, key))] - } - }) - }) - } - exports.getHexHash = getHexHash - function getKeypairFromSeed(seed) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, libsodium_wrappers_1.ready] - case 1: - _a.sent() - return [ - 2, - (0, libsodium_wrappers_1.crypto_sign_seed_keypair)( - (0, libsodium_wrappers_1.crypto_generichash)( - 32, - (0, libsodium_wrappers_1.from_string)(seed) - ) - ) - ] - } - }) - }) - } - exports.getKeypairFromSeed = getKeypairFromSeed - function encryptCryptoboxPayload(message, sharedKey) { - return __awaiter(this, void 0, void 0, function () { - var nonce, combinedPayload - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, libsodium_wrappers_1.ready] - case 1: - _a.sent() - nonce = Buffer.from( - (0, libsodium_wrappers_1.randombytes_buf)( - libsodium_wrappers_1.crypto_secretbox_NONCEBYTES - ) - ) - combinedPayload = Buffer.concat([ - nonce, - Buffer.from( - (0, libsodium_wrappers_1.crypto_secretbox_easy)( - Buffer.from(message, 'utf8'), - nonce, - sharedKey - ) - ) - ]) - return [2, toHex(combinedPayload)] - } - }) - }) - } - exports.encryptCryptoboxPayload = encryptCryptoboxPayload - function decryptCryptoboxPayload(payload, sharedKey) { - return __awaiter(this, void 0, void 0, function () { - var nonce, ciphertext - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, libsodium_wrappers_1.ready] - case 1: - _a.sent() - nonce = payload.slice(0, libsodium_wrappers_1.crypto_secretbox_NONCEBYTES) - ciphertext = payload.slice(libsodium_wrappers_1.crypto_secretbox_NONCEBYTES) - return [ - 2, - Buffer.from( - (0, libsodium_wrappers_1.crypto_secretbox_open_easy)( - ciphertext, - nonce, - sharedKey - ) - ).toString('utf8') - ] - } - }) - }) - } - exports.decryptCryptoboxPayload = decryptCryptoboxPayload - function sealCryptobox(payload, publicKey) { - return __awaiter(this, void 0, void 0, function () { - var kxSelfPublicKey, encryptedMessage - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, libsodium_wrappers_1.ready] - case 1: - _a.sent() - kxSelfPublicKey = (0, - libsodium_wrappers_1.crypto_sign_ed25519_pk_to_curve25519)( - Buffer.from(publicKey) - ) - encryptedMessage = (0, libsodium_wrappers_1.crypto_box_seal)( - payload, - kxSelfPublicKey - ) - return [2, toHex(encryptedMessage)] - } - }) - }) - } - exports.sealCryptobox = sealCryptobox - function openCryptobox(encryptedPayload, publicKey, privateKey) { - return __awaiter(this, void 0, void 0, function () { - var kxSelfPrivateKey, kxSelfPublicKey, decryptedMessage - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, libsodium_wrappers_1.ready] - case 1: - _a.sent() - kxSelfPrivateKey = (0, - libsodium_wrappers_1.crypto_sign_ed25519_sk_to_curve25519)( - Buffer.from(privateKey) - ) - kxSelfPublicKey = (0, - libsodium_wrappers_1.crypto_sign_ed25519_pk_to_curve25519)( - Buffer.from(publicKey) - ) - decryptedMessage = (0, libsodium_wrappers_1.crypto_box_seal_open)( - encryptedPayload, - kxSelfPublicKey, - kxSelfPrivateKey - ) - return [2, Buffer.from(decryptedMessage).toString()] - } - }) - }) - } - exports.openCryptobox = openCryptobox - function getAddressFromPublicKey(publicKey) { - return __awaiter(this, void 0, void 0, function () { - var prefixes, - prefix, - plainPublicKey, - entries, - index, - _a, - key, - value, - decoded, - payload - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - return [4, libsodium_wrappers_1.ready] - case 1: - _b.sent() - prefixes = { - edpk: { length: 54, prefix: Buffer.from(new Uint8Array([6, 161, 159])) }, - sppk: { length: 55, prefix: Buffer.from(new Uint8Array([6, 161, 161])) }, - p2pk: { length: 55, prefix: Buffer.from(new Uint8Array([6, 161, 164])) } - } - if (publicKey.length === 64) { - prefix = prefixes.edpk.prefix - plainPublicKey = publicKey - } else { - entries = Object.entries(prefixes) - for (index = 0; index < entries.length; index++) { - ;(_a = entries[index]), (key = _a[0]), (value = _a[1]) - if (publicKey.startsWith(key) && publicKey.length === value.length) { - prefix = value.prefix - decoded = bs58check.decode(publicKey) - plainPublicKey = decoded - .slice(key.length, decoded.length) - .toString('hex') - break - } - } - } - if (!prefix || !plainPublicKey) { - throw new Error('invalid publicKey: ' + publicKey) - } - payload = (0, libsodium_wrappers_1.crypto_generichash)( - 20, - Buffer.from(plainPublicKey, 'hex') - ) - return [2, bs58check.encode(Buffer.concat([prefix, Buffer.from(payload)]))] - } - }) - }) - } - exports.getAddressFromPublicKey = getAddressFromPublicKey - function recipientString(recipientHash, relayServer) { - return '@' + recipientHash + ':' + relayServer - } - exports.recipientString = recipientString - }.call(this)) - }.call(this, require('buffer').Buffer)) - }, - { bs58check: 96, buffer: 93, 'libsodium-wrappers': 153 } - ], - 304: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.ExposedPromise = exports.ExposedPromiseStatus = void 0 - var ExposedPromiseStatus - ;(function (ExposedPromiseStatus) { - ExposedPromiseStatus['PENDING'] = 'pending' - ExposedPromiseStatus['RESOLVED'] = 'resolved' - ExposedPromiseStatus['REJECTED'] = 'rejected' - })( - (ExposedPromiseStatus = - exports.ExposedPromiseStatus || (exports.ExposedPromiseStatus = {})) - ) - var notInitialized = function () { - throw new Error('ExposedPromise not initialized yet.') - } - var ExposedPromise = (function () { - function ExposedPromise() { - var _this = this - this._resolve = notInitialized - this._reject = notInitialized - this._status = ExposedPromiseStatus.PENDING - this._promise = new Promise(function (innerResolve, innerReject) { - _this._resolve = function (value) { - if (_this.isSettled()) { - return - } - _this._promiseResult = value - innerResolve(value) - _this._status = ExposedPromiseStatus.RESOLVED - return - } - _this._reject = function (reason) { - if (_this.isSettled()) { - return - } - _this._promiseError = reason - innerReject(reason) - _this._status = ExposedPromiseStatus.REJECTED - return - } - }) - } - Object.defineProperty(ExposedPromise.prototype, 'promise', { - get: function () { - return this._promise - }, - enumerable: false, - configurable: true - }) - Object.defineProperty(ExposedPromise.prototype, 'resolve', { - get: function () { - return this._resolve - }, - enumerable: false, - configurable: true - }) - Object.defineProperty(ExposedPromise.prototype, 'reject', { - get: function () { - return this._reject - }, - enumerable: false, - configurable: true - }) - Object.defineProperty(ExposedPromise.prototype, 'status', { - get: function () { - return this._status - }, - enumerable: false, - configurable: true - }) - Object.defineProperty(ExposedPromise.prototype, 'promiseResult', { - get: function () { - return this._promiseResult - }, - enumerable: false, - configurable: true - }) - Object.defineProperty(ExposedPromise.prototype, 'promiseError', { - get: function () { - return this._promiseError - }, - enumerable: false, - configurable: true - }) - ExposedPromise.resolve = function (value) { - var promise = new ExposedPromise() - promise.resolve(value) - return promise - } - ExposedPromise.reject = function (reason) { - var promise = new ExposedPromise() - promise.reject(reason) - return promise - } - ExposedPromise.prototype.isPending = function () { - return this.status === ExposedPromiseStatus.PENDING - } - ExposedPromise.prototype.isResolved = function () { - return this.status === ExposedPromiseStatus.RESOLVED - } - ExposedPromise.prototype.isRejected = function () { - return this.status === ExposedPromiseStatus.REJECTED - } - ExposedPromise.prototype.isSettled = function () { - return this.isResolved() || this.isRejected() - } - return ExposedPromise - })() - exports.ExposedPromise = ExposedPromise - }, - {} - ], - 305: [ - function (require, module, exports) { - ;(function (Buffer) { - ;(function () { - 'use strict' - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.generateGUID = void 0 - var libsodium_wrappers_1 = require('libsodium-wrappers') - function generateGUID() { - return __awaiter(this, void 0, void 0, function () { - var buf - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, libsodium_wrappers_1.ready] - case 1: - _a.sent() - buf = (0, libsodium_wrappers_1.randombytes_buf)(16) - return [ - 2, - [ - buf.slice(0, 4), - buf.slice(4, 6), - buf.slice(6, 8), - buf.slice(8, 10), - buf.slice(10, 16) - ] - .map(function (subbuf) { - return Buffer.from(subbuf).toString('hex') - }) - .join('-') - ] - } - }) - }) - } - exports.generateGUID = generateGUID - }.call(this)) - }.call(this, require('buffer').Buffer)) - }, - { buffer: 93, 'libsodium-wrappers': 153 } - ], - 306: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.keys = void 0 - function keys(obj) { - return Object.keys(obj) - } - exports.keys = keys - }, - {} - ], - 307: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - var __assign = - (this && this.__assign) || - function () { - __assign = - Object.assign || - function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i] - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p] - } - return t - } - return __assign.apply(this, arguments) - } - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.WalletClient = void 0 - var beacon_core_1 = require('@airgap/beacon-core') - var beacon_utils_1 = require('@airgap/beacon-utils') - var beacon_types_1 = require('@airgap/beacon-types') - var WalletP2PTransport_1 = require('../transports/WalletP2PTransport') - var logger = new beacon_core_1.Logger('WalletClient') - var WalletClient = (function (_super) { - __extends(WalletClient, _super) - function WalletClient(config) { - var _this = - _super.call( - this, - __assign( - { - storage: - config && config.storage ? config.storage : new beacon_core_1.LocalStorage() - }, - config - ) - ) || this - _this._isConnected = new beacon_utils_1.ExposedPromise() - _this.pendingRequests = [] - _this.permissionManager = new beacon_core_1.PermissionManager(_this.storage) - _this.appMetadataManager = new beacon_core_1.AppMetadataManager(_this.storage) - return _this - } - Object.defineProperty(WalletClient.prototype, 'isConnected', { - get: function () { - return this._isConnected.promise - }, - enumerable: false, - configurable: true - }) - WalletClient.prototype.init = function () { - return __awaiter(this, void 0, void 0, function () { - var keyPair, p2pTransport - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.keyPair] - case 1: - keyPair = _a.sent() - p2pTransport = new WalletP2PTransport_1.WalletP2PTransport( - this.name, - keyPair, - this.storage, - this.matrixNodes, - this.iconUrl, - this.appUrl - ) - return [2, _super.prototype.init.call(this, p2pTransport)] - } - }) - }) - } - WalletClient.prototype.connect = function (newMessageCallback) { - return __awaiter(this, void 0, void 0, function () { - var _this = this - return __generator(this, function (_a) { - this.handleResponse = function (message, connectionContext) { - return __awaiter(_this, void 0, void 0, function () { - var transport, peers, peer - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(message.type === beacon_types_1.BeaconMessageType.Disconnect)) - return [3, 5] - return [4, this.transport] - case 1: - transport = _a.sent() - return [4, transport.getPeers()] - case 2: - peers = _a.sent() - peer = peers.find(function (peerEl) { - return peerEl.senderId === message.senderId - }) - if (!peer) return [3, 4] - return [4, this.removePeer(peer)] - case 3: - _a.sent() - _a.label = 4 - case 4: - return [2] - case 5: - if ( - !!this.pendingRequests.some(function (request) { - return request[0].id === message.id - }) - ) - return [3, 9] - this.pendingRequests.push([message, connectionContext]) - if (!(message.version !== '1')) return [3, 7] - return [4, this.sendAcknowledgeResponse(message, connectionContext)] - case 6: - _a.sent() - _a.label = 7 - case 7: - return [ - 4, - beacon_core_1.IncomingRequestInterceptor.intercept({ - message: message, - connectionInfo: connectionContext, - appMetadataManager: this.appMetadataManager, - interceptorCallback: newMessageCallback - }) - ] - case 8: - _a.sent() - _a.label = 9 - case 9: - return [2] - } - }) - }) - } - return [2, this._connect()] - }) - }) - } - WalletClient.prototype._connect = function () { - return __awaiter(this, void 0, void 0, function () { - var transport - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.transport] - case 1: - transport = _a.sent() - if ( - !( - transport.connectionStatus === - beacon_types_1.TransportStatus.NOT_CONNECTED - ) - ) - return [3, 3] - return [4, transport.connect()] - case 2: - _a.sent() - transport - .addListener(function (message, connectionInfo) { - return __awaiter(_this, void 0, void 0, function () { - var deserializedMessage - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(typeof message === 'string')) return [3, 2] - return [4, new beacon_core_1.Serializer().deserialize(message)] - case 1: - deserializedMessage = _a.sent() - this.handleResponse(deserializedMessage, connectionInfo) - _a.label = 2 - case 2: - return [2] - } - }) - }) - }) - .catch(function (error) { - return logger.log('_connect', error) - }) - this._isConnected.resolve(true) - return [3, 3] - case 3: - return [2] - } - }) - }) - } - WalletClient.prototype.respond = function (message) { - return __awaiter(this, void 0, void 0, function () { - var request, _a, _b, _c - var _d - var _this = this - return __generator(this, function (_e) { - switch (_e.label) { - case 0: - request = this.pendingRequests.find(function (pendingRequest) { - return pendingRequest[0].id === message.id - }) - if (!request) { - throw new Error('No matching request found!') - } - this.pendingRequests = this.pendingRequests.filter(function (pendingRequest) { - return pendingRequest[0].id !== message.id - }) - _b = (_a = beacon_core_1.OutgoingResponseInterceptor).intercept - _d = {} - _c = beacon_core_1.getSenderId - return [4, this.beaconId] - case 1: - return [4, _c.apply(void 0, [_e.sent()])] - case 2: - ;(_d.senderId = _e.sent()), (_d.request = request[0]), (_d.message = message) - return [4, this.getOwnAppMetadata()] - case 3: - return [ - 4, - _b.apply(_a, [ - ((_d.ownAppMetadata = _e.sent()), - (_d.permissionManager = this.permissionManager), - (_d.appMetadataManager = this.appMetadataManager), - (_d.interceptorCallback = function (response) { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.respondToMessage(response, request[1])] - case 1: - _a.sent() - return [2] - } - }) - }) - }), - _d) - ]) - ] - case 4: - _e.sent() - return [2] - } - }) - }) - } - WalletClient.prototype.getAppMetadataList = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.appMetadataManager.getAppMetadataList()] - }) - }) - } - WalletClient.prototype.getAppMetadata = function (senderId) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.appMetadataManager.getAppMetadata(senderId)] - }) - }) - } - WalletClient.prototype.removeAppMetadata = function (senderId) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.appMetadataManager.removeAppMetadata(senderId)] - }) - }) - } - WalletClient.prototype.removeAllAppMetadata = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.appMetadataManager.removeAllAppMetadata()] - }) - }) - } - WalletClient.prototype.getPermissions = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.permissionManager.getPermissions()] - }) - }) - } - WalletClient.prototype.getPermission = function (accountIdentifier) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.permissionManager.getPermission(accountIdentifier)] - }) - }) - } - WalletClient.prototype.removePermission = function (accountIdentifier) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.permissionManager.removePermission(accountIdentifier)] - }) - }) - } - WalletClient.prototype.removeAllPermissions = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2, this.permissionManager.removeAllPermissions()] - }) - }) - } - WalletClient.prototype.addPeer = function (peer, sendPairingResponse) { - if (sendPairingResponse === void 0) { - sendPairingResponse = true - } - return __awaiter(this, void 0, void 0, function () { - var extendedPeer, _a - var _b - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - _a = [__assign({}, peer)] - _b = {} - return [4, (0, beacon_core_1.getSenderId)(peer.publicKey)] - case 1: - extendedPeer = __assign.apply( - void 0, - _a.concat([((_b.senderId = _c.sent()), _b)]) - ) - return [4, this.transport] - case 2: - return [2, _c.sent().addPeer(extendedPeer, sendPairingResponse)] - } - }) - }) - } - WalletClient.prototype.removePeer = function (peer, sendDisconnectToPeer) { - if (sendDisconnectToPeer === void 0) { - sendDisconnectToPeer = false - } - return __awaiter(this, void 0, void 0, function () { - var removePeerResult - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.transport] - case 1: - removePeerResult = _a.sent().removePeer(peer) - return [4, this.removePermissionsForPeers([peer])] - case 2: - _a.sent() - if (!sendDisconnectToPeer) return [3, 4] - return [4, this.sendDisconnectToPeer(peer)] - case 3: - _a.sent() - _a.label = 4 - case 4: - return [2, removePeerResult] - } - }) - }) - } - WalletClient.prototype.removeAllPeers = function (sendDisconnectToPeers) { - if (sendDisconnectToPeers === void 0) { - sendDisconnectToPeers = false - } - return __awaiter(this, void 0, void 0, function () { - var peers, removePeerResult, disconnectPromises - var _this = this - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.transport] - case 1: - return [4, _a.sent().getPeers()] - case 2: - peers = _a.sent() - return [4, this.transport] - case 3: - removePeerResult = _a.sent().removeAllPeers() - return [4, this.removePermissionsForPeers(peers)] - case 4: - _a.sent() - if (!sendDisconnectToPeers) return [3, 6] - disconnectPromises = peers.map(function (peer) { - return _this.sendDisconnectToPeer(peer) - }) - return [4, Promise.all(disconnectPromises)] - case 5: - _a.sent() - _a.label = 6 - case 6: - return [2, removePeerResult] - } - }) - }) - } - WalletClient.prototype.removePermissionsForPeers = function (peersToRemove) { - return __awaiter(this, void 0, void 0, function () { - var permissions, peerIdsToRemove, permissionsToRemove, permissionIdentifiersToRemove - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.permissionManager.getPermissions()] - case 1: - permissions = _a.sent() - peerIdsToRemove = peersToRemove.map(function (peer) { - return peer.senderId - }) - permissionsToRemove = permissions.filter(function (permission) { - return peerIdsToRemove.includes(permission.appMetadata.senderId) - }) - permissionIdentifiersToRemove = permissionsToRemove.map(function ( - permissionInfo - ) { - return permissionInfo.accountIdentifier - }) - return [ - 4, - this.permissionManager.removePermissions(permissionIdentifiersToRemove) - ] - case 2: - _a.sent() - return [2] - } - }) - }) - } - WalletClient.prototype.sendAcknowledgeResponse = function (request, connectionContext) { - return __awaiter(this, void 0, void 0, function () { - var acknowledgeResponse, _a, _b, _c - var _d - var _this = this - return __generator(this, function (_e) { - switch (_e.label) { - case 0: - acknowledgeResponse = { - id: request.id, - type: beacon_types_1.BeaconMessageType.Acknowledge - } - _b = (_a = beacon_core_1.OutgoingResponseInterceptor).intercept - _d = {} - _c = beacon_core_1.getSenderId - return [4, this.beaconId] - case 1: - return [4, _c.apply(void 0, [_e.sent()])] - case 2: - ;(_d.senderId = _e.sent()), - (_d.request = request), - (_d.message = acknowledgeResponse) - return [4, this.getOwnAppMetadata()] - case 3: - return [ - 4, - _b.apply(_a, [ - ((_d.ownAppMetadata = _e.sent()), - (_d.permissionManager = this.permissionManager), - (_d.appMetadataManager = this.appMetadataManager), - (_d.interceptorCallback = function (response) { - return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, this.respondToMessage(response, connectionContext)] - case 1: - _a.sent() - return [2] - } - }) - }) - }), - _d) - ]) - ] - case 4: - _e.sent() - return [2] - } - }) - }) - } - WalletClient.prototype.respondToMessage = function (response, connectionContext) { - return __awaiter(this, void 0, void 0, function () { - var serializedMessage, peerInfos, peer - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, new beacon_core_1.Serializer().serialize(response)] - case 1: - serializedMessage = _a.sent() - if (!connectionContext) return [3, 5] - return [4, this.getPeers()] - case 2: - peerInfos = _a.sent() - peer = peerInfos.find(function (peerInfo) { - return peerInfo.publicKey === connectionContext.id - }) - return [4, this.transport] - case 3: - return [4, _a.sent().send(serializedMessage, peer)] - case 4: - _a.sent() - return [3, 8] - case 5: - return [4, this.transport] - case 6: - return [4, _a.sent().send(serializedMessage)] - case 7: - _a.sent() - _a.label = 8 - case 8: - return [2] - } - }) - }) - } - return WalletClient - })(beacon_core_1.Client) - exports.WalletClient = WalletClient - }, - { - '../transports/WalletP2PTransport': 309, - '@airgap/beacon-core': 229, - '@airgap/beacon-types': 287, - '@airgap/beacon-utils': 302 - } - ], - 308: [ - function (require, module, exports) { - 'use strict' - Object.defineProperty(exports, '__esModule', { value: true }) - exports.WalletClient = void 0 - var WalletClient_1 = require('./client/WalletClient') - Object.defineProperty(exports, 'WalletClient', { - enumerable: true, - get: function () { - return WalletClient_1.WalletClient - } - }) - }, - { './client/WalletClient': 307 } - ], - 309: [ - function (require, module, exports) { - 'use strict' - var __extends = - (this && this.__extends) || - (function () { - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p] - } - return extendStatics(d, b) - } - return function (d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError( - 'Class extends value ' + String(b) + ' is not a constructor or null' - ) - extendStatics(d, b) - function __() { - this.constructor = d - } - d.prototype = - b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()) - } - })() - var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value) - }) - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)) - } catch (e) { - reject(e) - } - } - function rejected(value) { - try { - step(generator['throw'](value)) - } catch (e) { - reject(e) - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected) - } - step((generator = generator.apply(thisArg, _arguments || [])).next()) - }) - } - var __generator = - (this && this.__generator) || - function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1] - return t[1] - }, - trys: [], - ops: [] - }, - f, - y, - t, - g - return ( - (g = { next: verb(0), throw: verb(1), return: verb(2) }), - typeof Symbol === 'function' && - (g[Symbol.iterator] = function () { - return this - }), - g - ) - function verb(n) { - return function (v) { - return step([n, v]) - } - } - function step(op) { - if (f) throw new TypeError('Generator is already executing.') - while (_) - try { - if ( - ((f = 1), - y && - (t = - op[0] & 2 - ? y['return'] - : op[0] - ? y['throw'] || ((t = y['return']) && t.call(y), 0) - : y.next) && - !(t = t.call(y, op[1])).done) - ) - return t - if (((y = 0), t)) op = [op[0] & 2, t.value] - switch (op[0]) { - case 0: - case 1: - t = op - break - case 4: - _.label++ - return { value: op[1], done: false } - case 5: - _.label++ - y = op[1] - op = [0] - continue - case 7: - op = _.ops.pop() - _.trys.pop() - continue - default: - if ( - !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && - (op[0] === 6 || op[0] === 2) - ) { - _ = 0 - continue - } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { - _.label = op[1] - break - } - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1] - t = op - break - } - if (t && _.label < t[2]) { - _.label = t[2] - _.ops.push(op) - break - } - if (t[2]) _.ops.pop() - _.trys.pop() - continue - } - op = body.call(thisArg, _) - } catch (e) { - op = [6, e] - y = 0 - } finally { - f = t = 0 - } - if (op[0] & 5) throw op[1] - return { value: op[0] ? op[1] : void 0, done: true } - } - } - Object.defineProperty(exports, '__esModule', { value: true }) - exports.WalletP2PTransport = void 0 - var beacon_types_1 = require('@airgap/beacon-types') - var beacon_transport_matrix_1 = require('@airgap/beacon-transport-matrix') - var WalletP2PTransport = (function (_super) { - __extends(WalletP2PTransport, _super) - function WalletP2PTransport(name, keyPair, storage, matrixNodes, iconUrl, appUrl) { - return ( - _super.call( - this, - name, - keyPair, - storage, - matrixNodes, - beacon_types_1.StorageKey.TRANSPORT_P2P_PEERS_WALLET, - iconUrl, - appUrl - ) || this - ) - } - WalletP2PTransport.prototype.addPeer = function (newPeer, sendPairingResponse) { - if (sendPairingResponse === void 0) { - sendPairingResponse = true - } - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - return [4, _super.prototype.addPeer.call(this, newPeer)] - case 1: - _a.sent() - if (!sendPairingResponse) return [3, 3] - return [4, this.client.sendPairingResponse(newPeer)] - case 2: - _a.sent() - _a.label = 3 - case 3: - return [2] - } - }) - }) - } - return WalletP2PTransport - })(beacon_transport_matrix_1.P2PTransport) - exports.WalletP2PTransport = WalletP2PTransport - }, - { '@airgap/beacon-transport-matrix': 272, '@airgap/beacon-types': 287 } - ] - }, - {}, - [269] - )(269) -}) From 2c3c94c9271ef36f56e04db37f29f6770abd4d65 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 15 Nov 2021 18:11:59 +0100 Subject: [PATCH 076/130] chore(release): v2.4.0-beta.2 --- lerna.json | 2 +- .../beacon-blockchain-kusama/package.json | 2 +- packages/beacon-blockchain-tezos/package.json | 2 +- packages/beacon-core/package.json | 6 ++--- packages/beacon-core/src/constants.ts | 2 +- packages/beacon-dapp/package.json | 8 +++---- packages/beacon-sdk/package.json | 22 +++++++++---------- packages/beacon-transport-matrix/package.json | 6 ++--- .../beacon-transport-postmessage/package.json | 8 +++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 2 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 +++---- 13 files changed, 36 insertions(+), 36 deletions(-) diff --git a/lerna.json b/lerna.json index e510cc653..734da36a3 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "2.4.0-beta.1" + "version": "2.4.0-beta.2" } diff --git a/packages/beacon-blockchain-kusama/package.json b/packages/beacon-blockchain-kusama/package.json index cb0f0c8ad..0d3b51cba 100644 --- a/packages/beacon-blockchain-kusama/package.json +++ b/packages/beacon-blockchain-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-kusama", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-blockchain-tezos/package.json b/packages/beacon-blockchain-tezos/package.json index 6fcda7596..e5d0dd1e6 100644 --- a/packages/beacon-blockchain-tezos/package.json +++ b/packages/beacon-blockchain-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-tezos", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 2d977f90f..9958f4743 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^2.4.0-beta.1", - "@airgap/beacon-utils": "^2.4.0-beta.1", + "@airgap/beacon-types": "^2.4.0-beta.2", + "@airgap/beacon-utils": "^2.4.0-beta.2", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-core/src/constants.ts b/packages/beacon-core/src/constants.ts index 30f9ebe87..32117af4a 100644 --- a/packages/beacon-core/src/constants.ts +++ b/packages/beacon-core/src/constants.ts @@ -1,2 +1,2 @@ -export const SDK_VERSION: string = '2.4.0-beta.1' +export const SDK_VERSION: string = '2.4.0-beta.2' export const BEACON_VERSION: string = '2' diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 18ee838be..6eb0ef10e 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,9 +35,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.1", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.1", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.1", + "@airgap/beacon-core": "^2.4.0-beta.2", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.2", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.2", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-sdk/package.json b/packages/beacon-sdk/package.json index a1c191b0f..09d3fd3a9 100644 --- a/packages/beacon-sdk/package.json +++ b/packages/beacon-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-sdk", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,15 +35,15 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-blockchain-kusama": "^2.4.0-beta.1", - "@airgap/beacon-blockchain-tezos": "^2.4.0-beta.1", - "@airgap/beacon-core": "^2.4.0-beta.1", - "@airgap/beacon-dapp": "^2.4.0-beta.1", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.1", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.1", - "@airgap/beacon-types": "^2.4.0-beta.1", - "@airgap/beacon-ui": "^2.4.0-beta.1", - "@airgap/beacon-utils": "^2.4.0-beta.1", - "@airgap/beacon-wallet": "^2.4.0-beta.1" + "@airgap/beacon-blockchain-kusama": "^2.4.0-beta.2", + "@airgap/beacon-blockchain-tezos": "^2.4.0-beta.2", + "@airgap/beacon-core": "^2.4.0-beta.2", + "@airgap/beacon-dapp": "^2.4.0-beta.2", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.2", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.2", + "@airgap/beacon-types": "^2.4.0-beta.2", + "@airgap/beacon-ui": "^2.4.0-beta.2", + "@airgap/beacon-utils": "^2.4.0-beta.2", + "@airgap/beacon-wallet": "^2.4.0-beta.2" } } diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index dded5e03f..89be420d5 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.1", - "@airgap/beacon-utils": "^2.4.0-beta.1", + "@airgap/beacon-core": "^2.4.0-beta.2", + "@airgap/beacon-utils": "^2.4.0-beta.2", "axios": "0.24.0" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index a05c34a47..a92c6705c 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.1", - "@airgap/beacon-types": "^2.4.0-beta.1", - "@airgap/beacon-utils": "^2.4.0-beta.1", + "@airgap/beacon-core": "^2.4.0-beta.2", + "@airgap/beacon-types": "^2.4.0-beta.2", + "@airgap/beacon-utils": "^2.4.0-beta.2", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 2f68e2348..02a66408d 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index 504996995..074a97784 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 889b80886..62d69ca35 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 435baf24e..26978d623 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,8 +35,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.1", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.1", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.1" + "@airgap/beacon-core": "^2.4.0-beta.2", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.2", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.2" } } From b9f08ea566efa73a6c8e986fe2265911f7091ab2 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 1 Dec 2021 10:33:21 +0100 Subject: [PATCH 077/130] fix(test): add helpers --- package-lock.json | 72 ++--- .../__tests__/_helpers/_setup.spec.ts | 248 ++++++++++++++++++ 2 files changed, 284 insertions(+), 36 deletions(-) create mode 100644 packages/beacon-transport-matrix/__tests__/_helpers/_setup.spec.ts diff --git a/package-lock.json b/package-lock.json index 0aa6ef960..6459dd77c 100755 --- a/package-lock.json +++ b/package-lock.json @@ -15556,21 +15556,21 @@ }, "packages/beacon-blockchain-kusama": { "name": "@airgap/beacon-blockchain-kusama", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "license": "ISC" }, "packages/beacon-blockchain-tezos": { "name": "@airgap/beacon-blockchain-tezos", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "license": "ISC" }, "packages/beacon-core": { "name": "@airgap/beacon-core", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^2.4.0-beta.1", - "@airgap/beacon-utils": "^2.4.0-beta.1", + "@airgap/beacon-types": "^2.4.0-beta.2", + "@airgap/beacon-utils": "^2.4.0-beta.2", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15578,40 +15578,40 @@ }, "packages/beacon-dapp": { "name": "@airgap/beacon-dapp", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.1", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.1", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.1", + "@airgap/beacon-core": "^2.4.0-beta.2", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.2", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.2", "qrcode-generator": "1.4.4" } }, "packages/beacon-transport-matrix": { "name": "@airgap/beacon-transport-matrix", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.1", - "@airgap/beacon-utils": "^2.4.0-beta.1", + "@airgap/beacon-core": "^2.4.0-beta.2", + "@airgap/beacon-utils": "^2.4.0-beta.2", "axios": "0.24.0" } }, "packages/beacon-transport-postmessage": { "name": "@airgap/beacon-transport-postmessage", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.1", - "@airgap/beacon-types": "^2.4.0-beta.1", - "@airgap/beacon-utils": "^2.4.0-beta.1", + "@airgap/beacon-core": "^2.4.0-beta.2", + "@airgap/beacon-types": "^2.4.0-beta.2", + "@airgap/beacon-utils": "^2.4.0-beta.2", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } }, "packages/beacon-types": { "name": "@airgap/beacon-types", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "license": "ISC", "dependencies": { "@types/chrome": "0.0.163" @@ -15619,12 +15619,12 @@ }, "packages/beacon-ui": { "name": "@airgap/beacon-ui", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "license": "ISC" }, "packages/beacon-utils": { "name": "@airgap/beacon-utils", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "license": "ISC", "dependencies": { "@types/libsodium-wrappers": "0.7.9", @@ -15634,12 +15634,12 @@ }, "packages/beacon-wallet": { "name": "@airgap/beacon-wallet", - "version": "2.4.0-beta.1", + "version": "2.4.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.1", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.1", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.1" + "@airgap/beacon-core": "^2.4.0-beta.2", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.2", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.2" } } }, @@ -15653,8 +15653,8 @@ "@airgap/beacon-core": { "version": "file:packages/beacon-core", "requires": { - "@airgap/beacon-types": "^2.4.0-beta.1", - "@airgap/beacon-utils": "^2.4.0-beta.1", + "@airgap/beacon-types": "^2.4.0-beta.2", + "@airgap/beacon-utils": "^2.4.0-beta.2", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15663,26 +15663,26 @@ "@airgap/beacon-dapp": { "version": "file:packages/beacon-dapp", "requires": { - "@airgap/beacon-core": "^2.4.0-beta.1", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.1", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.1", + "@airgap/beacon-core": "^2.4.0-beta.2", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.2", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.2", "qrcode-generator": "1.4.4" } }, "@airgap/beacon-transport-matrix": { "version": "file:packages/beacon-transport-matrix", "requires": { - "@airgap/beacon-core": "^2.4.0-beta.1", - "@airgap/beacon-utils": "^2.4.0-beta.1", + "@airgap/beacon-core": "^2.4.0-beta.2", + "@airgap/beacon-utils": "^2.4.0-beta.2", "axios": "0.24.0" } }, "@airgap/beacon-transport-postmessage": { "version": "file:packages/beacon-transport-postmessage", "requires": { - "@airgap/beacon-core": "^2.4.0-beta.1", - "@airgap/beacon-types": "^2.4.0-beta.1", - "@airgap/beacon-utils": "^2.4.0-beta.1", + "@airgap/beacon-core": "^2.4.0-beta.2", + "@airgap/beacon-types": "^2.4.0-beta.2", + "@airgap/beacon-utils": "^2.4.0-beta.2", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } @@ -15707,9 +15707,9 @@ "@airgap/beacon-wallet": { "version": "file:packages/beacon-wallet", "requires": { - "@airgap/beacon-core": "^2.4.0-beta.1", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.1", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.1" + "@airgap/beacon-core": "^2.4.0-beta.2", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.2", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.2" } }, "@babel/code-frame": { diff --git a/packages/beacon-transport-matrix/__tests__/_helpers/_setup.spec.ts b/packages/beacon-transport-matrix/__tests__/_helpers/_setup.spec.ts new file mode 100644 index 000000000..bf1cd2c04 --- /dev/null +++ b/packages/beacon-transport-matrix/__tests__/_helpers/_setup.spec.ts @@ -0,0 +1,248 @@ +import { MockLocalStorage } from '../../../../test/test-utils/MockLocalStorage' +;(global as any).localStorage = new MockLocalStorage() + +import Axios from 'axios' +const MockAdapter = require('axios-mock-adapter') + +beforeEach(() => { + ;(global as any).localStorage.clear() +}) + +/** + * Create a JSDOM instance to support localStorage and other DOM methods + */ +const { JSDOM } = require('jsdom') +const dom = new JSDOM('', { + url: 'http://localhost/' +}) + +;(global as any).window = dom.window +;(global as any).document = dom.window.document + +// This sets the mock adapter on the default instance +const mock = new MockAdapter(Axios) + +const getVersionReply = () => { + return { + versions: ['r0.0.1', 'r0.1.0', 'r0.2.0', 'r0.3.0', 'r0.4.0', 'r0.5.0'], + unstable_features: { + 'm.lazy_load_members': true, + 'm.id_access_token': true, + 'm.require_identity_server': false, + 'm.separate_add_and_bind': true + } + } +} + +const getLogin = (hostname: string) => { + console.log('GET LOGIN') + return { + user_id: `@xxx:${hostname}`, + access_token: 'ACCESS_TOKEN', + home_server: hostname, + device_id: 'xxx' + } +} + +const getSync = () => { + return { + account_data: { + events: [ + { + type: 'm.push_rules', + content: { + global: { + underride: [ + { + conditions: [{ kind: 'event_match', key: 'type', pattern: 'm.call.invite' }], + actions: [ + 'notify', + { set_tweak: 'sound', value: 'ring' }, + { set_tweak: 'highlight', value: false } + ], + rule_id: '.m.rule.call', + default: true, + enabled: true + }, + { + conditions: [ + { kind: 'room_member_count', is: '2' }, + { kind: 'event_match', key: 'type', pattern: 'm.room.message' } + ], + actions: [ + 'notify', + { set_tweak: 'sound', value: 'default' }, + { set_tweak: 'highlight', value: false } + ], + rule_id: '.m.rule.room_one_to_one', + default: true, + enabled: true + }, + { + conditions: [ + { kind: 'room_member_count', is: '2' }, + { kind: 'event_match', key: 'type', pattern: 'm.room.encrypted' } + ], + actions: [ + 'notify', + { set_tweak: 'sound', value: 'default' }, + { set_tweak: 'highlight', value: false } + ], + rule_id: '.m.rule.encrypted_room_one_to_one', + default: true, + enabled: true + }, + { + conditions: [{ kind: 'event_match', key: 'type', pattern: 'm.room.message' }], + actions: ['notify', { set_tweak: 'highlight', value: false }], + rule_id: '.m.rule.message', + default: true, + enabled: true + }, + { + conditions: [{ kind: 'event_match', key: 'type', pattern: 'm.room.encrypted' }], + actions: ['notify', { set_tweak: 'highlight', value: false }], + rule_id: '.m.rule.encrypted', + default: true, + enabled: true + } + ], + sender: [], + room: [], + content: [ + { + actions: [ + 'notify', + { set_tweak: 'sound', value: 'default' }, + { set_tweak: 'highlight' } + ], + pattern: '632392b258880b3a108035a4c847127544112102c5a0ffb07d459788f6f4be0e', + rule_id: '.m.rule.contains_user_name', + default: true, + enabled: true + } + ], + override: [ + { + conditions: [], + actions: ['dont_notify'], + rule_id: '.m.rule.master', + default: true, + enabled: false + }, + { + conditions: [ + { kind: 'event_match', key: 'content.msgtype', pattern: 'm.notice' } + ], + actions: ['dont_notify'], + rule_id: '.m.rule.suppress_notices', + default: true, + enabled: true + }, + { + conditions: [ + { kind: 'event_match', key: 'type', pattern: 'm.room.member' }, + { kind: 'event_match', key: 'content.membership', pattern: 'invite' }, + { + kind: 'event_match', + key: 'state_key', + pattern: + '@632392b258880b3a108035a4c847127544112102c5a0ffb07d459788f6f4be0e:beacon-node-0.papers.tech:8448' + } + ], + actions: [ + 'notify', + { set_tweak: 'sound', value: 'default' }, + { set_tweak: 'highlight', value: false } + ], + rule_id: '.m.rule.invite_for_me', + default: true, + enabled: true + }, + { + conditions: [{ kind: 'event_match', key: 'type', pattern: 'm.room.member' }], + actions: ['dont_notify'], + rule_id: '.m.rule.member_event', + default: true, + enabled: true + }, + { + conditions: [{ kind: 'contains_display_name' }], + actions: [ + 'notify', + { set_tweak: 'sound', value: 'default' }, + { set_tweak: 'highlight' } + ], + rule_id: '.m.rule.contains_display_name', + default: true, + enabled: true + }, + { + conditions: [ + { kind: 'event_match', key: 'content.body', pattern: '@room' }, + { kind: 'sender_notification_permission', key: 'room' } + ], + actions: ['notify', { set_tweak: 'highlight', value: true }], + rule_id: '.m.rule.roomnotif', + default: true, + enabled: true + }, + { + conditions: [ + { kind: 'event_match', key: 'type', pattern: 'm.room.tombstone' }, + { kind: 'event_match', key: 'state_key', pattern: '' } + ], + actions: ['notify', { set_tweak: 'highlight', value: true }], + rule_id: '.m.rule.tombstone', + default: true, + enabled: true + }, + { + conditions: [{ kind: 'event_match', key: 'type', pattern: 'm.reaction' }], + actions: ['dont_notify'], + rule_id: '.m.rule.reaction', + default: true, + enabled: true + } + ] + }, + device: {} + } + } + ] + }, + to_device: { events: [] }, + device_lists: { changed: [], left: [] }, + presence: { events: [] }, + rooms: { join: {}, invite: {}, leave: {} }, + groups: { join: {}, invite: {}, leave: {} }, + device_one_time_keys_count: {}, + next_batch: 's949223_5360456_0_1_1_1_1_68957_1' + } +} + +mock + .onGet('https://beacon-node-1.sky.papers.tech/_matrix/client/versions') + .reply(200, getVersionReply()) + .onGet('https://beacon-node-2.sky.papers.tech/_matrix/client/versions') + .reply(200, getVersionReply()) + .onGet('https://beacon-node-0.papers.tech:8448/_matrix/client/versions') + .reply(200, getVersionReply()) + .onPost('https://beacon-node-1.sky.papers.tech/_matrix/client/r0/login') + .reply(200, getLogin('beacon-node-1.sky.papers.tech')) + .onPost('https://beacon-node-2.sky.papers.tech/_matrix/client/r0/login') + .reply(200, getLogin('beacon-node-2.sky.papers.tech')) + .onPost('https://beacon-node-0.papers.tech:8448/_matrix/client/r0/login') + .reply(200, getLogin('beacon-node-0.papers.tech:8448')) + .onGet('https://beacon-node-1.sky.papers.tech/_matrix/client/r0/sync') + .reply(200, getSync()) + .onGet('https://beacon-node-2.sky.papers.tech/_matrix/client/r0/sync') + .reply(200, getSync()) + .onGet('https://beacon-node-0.papers.tech:8448/_matrix/client/r0/sync') + .reply(200, getSync()) + .onAny() + .reply((config: any) => { + console.log('UNMOCKED URL, RETURNING ERROR 500', `${config.baseURL}${config.url}`) + + return [500, {}] + }) From c44a9cc4bc4bbead205d9576510e4119344e9994 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 1 Dec 2021 10:53:27 +0100 Subject: [PATCH 078/130] feat(export): export types --- packages/beacon-dapp/src/index.ts | 6 ++++++ packages/beacon-wallet/src/index.ts | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/packages/beacon-dapp/src/index.ts b/packages/beacon-dapp/src/index.ts index d570246ba..7f4603f7a 100644 --- a/packages/beacon-dapp/src/index.ts +++ b/packages/beacon-dapp/src/index.ts @@ -1,3 +1,9 @@ +export * from '@airgap/beacon-core' +export * from '@airgap/beacon-transport-matrix' +export * from '@airgap/beacon-transport-postmessage' +export * from '@airgap/beacon-types' +export * from '@airgap/beacon-utils' + import { DAppClient } from './dapp-client/DAppClient' import { DAppClientOptions } from './dapp-client/DAppClientOptions' import { BeaconEvent, BeaconEventHandler, defaultEventCallbacks } from './events' diff --git a/packages/beacon-wallet/src/index.ts b/packages/beacon-wallet/src/index.ts index 57f869600..7e52986b7 100644 --- a/packages/beacon-wallet/src/index.ts +++ b/packages/beacon-wallet/src/index.ts @@ -1,3 +1,8 @@ +export * from '@airgap/beacon-core' +export * from '@airgap/beacon-transport-matrix' +export * from '@airgap/beacon-types' +export * from '@airgap/beacon-utils' + import { WalletClient } from './client/WalletClient' import { WalletClientOptions } from './client/WalletClientOptions' From a602de32fae76d1d3e9d0fcfa711017c5d9173c5 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 1 Dec 2021 11:00:20 +0100 Subject: [PATCH 079/130] chore(release): v2.4.0-beta.3 --- lerna.json | 2 +- .../beacon-blockchain-kusama/package.json | 2 +- packages/beacon-blockchain-tezos/package.json | 2 +- packages/beacon-core/package.json | 6 ++--- packages/beacon-core/src/constants.ts | 2 +- packages/beacon-dapp/package.json | 8 +++---- packages/beacon-sdk/package.json | 22 +++++++++---------- packages/beacon-transport-matrix/package.json | 6 ++--- .../beacon-transport-postmessage/package.json | 8 +++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 2 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 +++---- 13 files changed, 36 insertions(+), 36 deletions(-) diff --git a/lerna.json b/lerna.json index 734da36a3..115bbec9a 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "2.4.0-beta.2" + "version": "2.4.0-beta.3" } diff --git a/packages/beacon-blockchain-kusama/package.json b/packages/beacon-blockchain-kusama/package.json index 0d3b51cba..a5ffeab58 100644 --- a/packages/beacon-blockchain-kusama/package.json +++ b/packages/beacon-blockchain-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-kusama", - "version": "2.4.0-beta.2", + "version": "2.4.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-blockchain-tezos/package.json b/packages/beacon-blockchain-tezos/package.json index e5d0dd1e6..cf93d0fbe 100644 --- a/packages/beacon-blockchain-tezos/package.json +++ b/packages/beacon-blockchain-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-tezos", - "version": "2.4.0-beta.2", + "version": "2.4.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 9958f4743..911c291ba 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "2.4.0-beta.2", + "version": "2.4.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^2.4.0-beta.2", - "@airgap/beacon-utils": "^2.4.0-beta.2", + "@airgap/beacon-types": "^2.4.0-beta.3", + "@airgap/beacon-utils": "^2.4.0-beta.3", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-core/src/constants.ts b/packages/beacon-core/src/constants.ts index 32117af4a..00ee6a1a9 100644 --- a/packages/beacon-core/src/constants.ts +++ b/packages/beacon-core/src/constants.ts @@ -1,2 +1,2 @@ -export const SDK_VERSION: string = '2.4.0-beta.2' +export const SDK_VERSION: string = '2.4.0-beta.3' export const BEACON_VERSION: string = '2' diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 6eb0ef10e..a3df74b8a 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "2.4.0-beta.2", + "version": "2.4.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,9 +35,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.2", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.2", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.2", + "@airgap/beacon-core": "^2.4.0-beta.3", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.3", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.3", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-sdk/package.json b/packages/beacon-sdk/package.json index 09d3fd3a9..b4c43835b 100644 --- a/packages/beacon-sdk/package.json +++ b/packages/beacon-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-sdk", - "version": "2.4.0-beta.2", + "version": "2.4.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,15 +35,15 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-blockchain-kusama": "^2.4.0-beta.2", - "@airgap/beacon-blockchain-tezos": "^2.4.0-beta.2", - "@airgap/beacon-core": "^2.4.0-beta.2", - "@airgap/beacon-dapp": "^2.4.0-beta.2", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.2", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.2", - "@airgap/beacon-types": "^2.4.0-beta.2", - "@airgap/beacon-ui": "^2.4.0-beta.2", - "@airgap/beacon-utils": "^2.4.0-beta.2", - "@airgap/beacon-wallet": "^2.4.0-beta.2" + "@airgap/beacon-blockchain-kusama": "^2.4.0-beta.3", + "@airgap/beacon-blockchain-tezos": "^2.4.0-beta.3", + "@airgap/beacon-core": "^2.4.0-beta.3", + "@airgap/beacon-dapp": "^2.4.0-beta.3", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.3", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.3", + "@airgap/beacon-types": "^2.4.0-beta.3", + "@airgap/beacon-ui": "^2.4.0-beta.3", + "@airgap/beacon-utils": "^2.4.0-beta.3", + "@airgap/beacon-wallet": "^2.4.0-beta.3" } } diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index 89be420d5..538071c36 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "2.4.0-beta.2", + "version": "2.4.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.2", - "@airgap/beacon-utils": "^2.4.0-beta.2", + "@airgap/beacon-core": "^2.4.0-beta.3", + "@airgap/beacon-utils": "^2.4.0-beta.3", "axios": "0.24.0" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index a92c6705c..3ca8033f4 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "2.4.0-beta.2", + "version": "2.4.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.2", - "@airgap/beacon-types": "^2.4.0-beta.2", - "@airgap/beacon-utils": "^2.4.0-beta.2", + "@airgap/beacon-core": "^2.4.0-beta.3", + "@airgap/beacon-types": "^2.4.0-beta.3", + "@airgap/beacon-utils": "^2.4.0-beta.3", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 02a66408d..8b6e3b57e 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "2.4.0-beta.2", + "version": "2.4.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index 074a97784..6d2d0673e 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "2.4.0-beta.2", + "version": "2.4.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 62d69ca35..9585fc343 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "2.4.0-beta.2", + "version": "2.4.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 26978d623..3abf45175 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "2.4.0-beta.2", + "version": "2.4.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,8 +35,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.2", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.2", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.2" + "@airgap/beacon-core": "^2.4.0-beta.3", + "@airgap/beacon-transport-matrix": "^2.4.0-beta.3", + "@airgap/beacon-transport-postmessage": "^2.4.0-beta.3" } } From dd769fe4205d3c630588ef14a322ecc598d46939 Mon Sep 17 00:00:00 2001 From: Jay Date: Thu, 23 Dec 2021 12:33:00 +0530 Subject: [PATCH 080/130] added naan wallet support --- assets/logos/ios-naan.png | Bin 0 -> 174029 bytes scripts/generate-wallet-list.ts | 9 +++++++++ 2 files changed, 9 insertions(+) create mode 100644 assets/logos/ios-naan.png diff --git a/assets/logos/ios-naan.png b/assets/logos/ios-naan.png new file mode 100644 index 0000000000000000000000000000000000000000..da3e8ce53bee2ebf02452a172849e4528ac99930 GIT binary patch literal 174029 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�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 O0000 Date: Thu, 23 Dec 2021 15:38:37 +0530 Subject: [PATCH 081/130] Update generate-wallet-list.ts --- scripts/generate-wallet-list.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/generate-wallet-list.ts b/scripts/generate-wallet-list.ts index 5a33d9fbe..866f1c234 100644 --- a/scripts/generate-wallet-list.ts +++ b/scripts/generate-wallet-list.ts @@ -80,7 +80,7 @@ export const iosList: App[] = [ }, { key: 'naan_ios', - name: 'Naan - A Tasty Tezos Wallet', + name: 'Naan Wallet', shortName: 'Naan', color: 'rgb(129, 100, 100)', logo: 'ios-naan.png', From eb4eef5c8a1b3110a79b803bbf6a26ea5efbc16e Mon Sep 17 00:00:00 2001 From: thuyentruong Date: Fri, 24 Dec 2021 15:53:37 +0700 Subject: [PATCH 082/130] feat(wallet): added autonomy wallet support --- assets/logos/ios-autonomy.png | Bin 0 -> 23079 bytes scripts/generate-wallet-list.ts | 9 +++++++++ 2 files changed, 9 insertions(+) create mode 100644 assets/logos/ios-autonomy.png diff --git a/assets/logos/ios-autonomy.png b/assets/logos/ios-autonomy.png new file mode 100644 index 0000000000000000000000000000000000000000..ae8c1ae2ab84ee343c82cb9954c283a592c6f79e GIT binary patch literal 23079 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 CWgwgY literal 0 HcmV?d00001 diff --git a/scripts/generate-wallet-list.ts b/scripts/generate-wallet-list.ts index afe0d51bb..8a459c6fa 100644 --- a/scripts/generate-wallet-list.ts +++ b/scripts/generate-wallet-list.ts @@ -77,6 +77,15 @@ export const iosList: App[] = [ logo: 'ios-airgap.png', universalLink: 'https://wallet.airgap.it', deepLink: 'airgap-wallet://' + }, + { + key: 'autonomy-app', + name: 'Autonomy', + shortName: 'Autonomy', + color: '', + logo: 'ios-autonomy.png', + universalLink: 'https://au.bitmark.com/apps/tezos', + deepLink: 'autonomy-tezos://' } // { // name: 'Galleon', From b2e1bbe1649779cb4fdef212d6d117e8b67b0349 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Tue, 4 Jan 2022 11:21:09 +0100 Subject: [PATCH 083/130] feat(kusama): message proposals --- examples/dapp.html | 33 ++- examples/wallet.html | 2 +- package-lock.json | 74 +++--- .../src/messages/operation-request.ts | 75 ++++++ .../src/messages/operation-resonse.ts | 0 .../src/messages/permission-request.ts | 1 + .../src/messages/permission-response.ts | 0 .../src/messages/sign-request.ts | 0 .../src/messages/sign-response.ts | 0 .../src/util/is-kusama-message.ts | 3 + .../__tests__/post-message-transport.spec.ts | 2 +- .../beacon-dapp/src/dapp-client/DAppClient.ts | 240 +++++++++++++++++- .../src/dapp-client/beacon-messages-new.ts | 227 +++++++++++++++++ packages/beacon-dapp/src/index.ts | 3 + packages/beacon-types/src/index.ts | 3 + .../src/types/beaconV3/PermissionRequest.ts | 6 + 16 files changed, 619 insertions(+), 50 deletions(-) create mode 100644 packages/beacon-blockchain-kusama/src/messages/operation-request.ts create mode 100644 packages/beacon-blockchain-kusama/src/messages/operation-resonse.ts create mode 100644 packages/beacon-blockchain-kusama/src/messages/permission-request.ts create mode 100644 packages/beacon-blockchain-kusama/src/messages/permission-response.ts create mode 100644 packages/beacon-blockchain-kusama/src/messages/sign-request.ts create mode 100644 packages/beacon-blockchain-kusama/src/messages/sign-response.ts create mode 100644 packages/beacon-blockchain-kusama/src/util/is-kusama-message.ts create mode 100644 packages/beacon-dapp/src/dapp-client/beacon-messages-new.ts create mode 100644 packages/beacon-types/src/types/beaconV3/PermissionRequest.ts diff --git a/examples/dapp.html b/examples/dapp.html index ffc195746..010654a78 100644 --- a/examples/dapp.html +++ b/examples/dapp.html @@ -104,7 +104,7 @@



-

End of page

+

End of page

+ + + + + + + + Beacon Example +

+ + Active account: + + + + +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ --- +

+ +

+ --- +

+ +

+ --- +

+ +

+ +

+ +

+ --- +

+ Reproducing bugs: +

+ +

+ +

+ --- +

+ +

+ --- +

+ + Color Mode: + + +

+ +

+ +

+ --- +

+ +

+ + +

+ --- +

+ +

+

End of page

+ + + + diff --git a/examples/dapp.html b/examples/dapp.html index 57143724b..2ee738c8f 100644 --- a/examples/dapp.html +++ b/examples/dapp.html @@ -171,36 +171,18 @@ // Initiate a permission request const requestPermission = (callback) => { - const substrateBlockchain = new beacon.SubstrateBlockchain() - client.addBlockchain(substrateBlockchain) client - .permissionRequest({ - blockchainIdentifier: 'substrate', - type: 'permission_request', - blockchainData: { - appMetadata: { - name: 'Test dApp' - }, - scopes: [0], - networks: [{ genesisHash: 'xxx' }] + .requestPermissions(/*{ network: { type: beacon.NetworkType.DELPHINET } }*/) + .then((permissions) => { + console.log('permissions', permissions) + if (callback) { + callback(permissions) } + updateActiveAccount() }) - .then((res) => { - console.log('res', res) + .catch((error) => { + console.log('error during permission request', error) }) - - // client - // .requestPermissions(/*{ network: { type: beacon.NetworkType.DELPHINET } }*/) - // .then((permissions) => { - // console.log('permissions', permissions) - // if (callback) { - // callback(permissions) - // } - // updateActiveAccount() - // }) - // .catch((error) => { - // console.log('error during permission request', error) - // }) } // Add event listener to the button diff --git a/examples/wallet-v3.html b/examples/wallet-v3.html new file mode 100644 index 000000000..4bb15857b --- /dev/null +++ b/examples/wallet-v3.html @@ -0,0 +1,190 @@ + + + + + + + Beacon Example Wallet + + + + + + + + + + Beacon Example Wallet +

+
+

+ +

+ --- +

+ +

+ --- +

+ + +

+ Test input: + + + + diff --git a/examples/wallet.html b/examples/wallet.html index 4bb15857b..c5c83794f 100644 --- a/examples/wallet.html +++ b/examples/wallet.html @@ -39,7 +39,7 @@ // Initiate DAppClient const client = new beacon.WalletClient({ name: 'Example Wallet' // Name of the DApp - // matrixNodes: ['beacon-dendrite-node-1.crystal.papers.tech'] + // matrixNodes: ['matrix.papers.tech'] // matrixNodes: ['beacon-node-0.papers.tech:8448'] // matrixNodes: ['beacon.tztip.me'] }) @@ -84,83 +84,35 @@ setStatus('Handling request...') console.log('message', message) - - if (message.version === '3') { - // Example: Handle PermissionRequest. A wallet should handle all request types - if (message.message.type === beacon.BeaconMessageType.PermissionRequest) { - if (message.message.blockchainIdentifier !== 'substrate') { - throw new Error('Only KSM supported') - } - console.log('SUBSTRATE MESSAGE') - // Show a UI to the user where he can confirm sharing an account with the DApp - - const response = { - id: message.id, - type: beacon.BeaconMessageType.PermissionResponse, - blockchainData: { - appMetadata: { name: 'Example Wallet' }, - scopes: [0], - accounts: [ - { - network: { genesisHash: 'xxx' }, - addressPrefix: 0, - publicKey: - '3b92229274683b338cf8b040cf91ac0f8e19e410f06eda5537ef077e718e0024' - // should we add a curve type here? - } - ] - } - } - - // Let's wait a little to make it more natural (to test the UI on the dApp side) - await new Promise((resolve) => setTimeout(resolve, 1000)) - - // Send response back to DApp - client.respond(response) - } else { - console.error('Only permission requests are supported in this demo') - console.error('Received: ', message) - - const response = { - type: beacon.BeaconMessageType.Error, - id: message.id, - errorType: beacon.BeaconErrorType.ABORTED_ERROR - } - client.respond(response) + // Example: Handle PermissionRequest. A wallet should handle all request types + if (message.type === beacon.BeaconMessageType.PermissionRequest) { + // Show a UI to the user where he can confirm sharing an account with the DApp + + const response = { + type: beacon.BeaconMessageType.PermissionResponse, + network: message.network, // Use the same network that the user requested + scopes: [beacon.PermissionScope.OPERATION_REQUEST, beacon.PermissionScope.ENCRYPT], // Ignore the scopes that have been requested and instead give only operation permissions + id: message.id, + publicKey: '3b92229274683b338cf8b040cf91ac0f8e19e410f06eda5537ef077e718e0024' } + + // Let's wait a little to make it more natural (to test the UI on the dApp side) + await new Promise((resolve) => setTimeout(resolve, 1000)) + + // Send response back to DApp + client.respond(response) } else { - // Example: Handle PermissionRequest. A wallet should handle all request types - if (message.type === beacon.BeaconMessageType.PermissionRequest) { - // Show a UI to the user where he can confirm sharing an account with the DApp - - const response = { - type: beacon.BeaconMessageType.PermissionResponse, - network: message.network, // Use the same network that the user requested - scopes: [ - beacon.PermissionScope.OPERATION_REQUEST, - beacon.PermissionScope.ENCRYPT - ], // Ignore the scopes that have been requested and instead give only operation permissions - id: message.id, - publicKey: '3b92229274683b338cf8b040cf91ac0f8e19e410f06eda5537ef077e718e0024' - } - - // Let's wait a little to make it more natural (to test the UI on the dApp side) - await new Promise((resolve) => setTimeout(resolve, 1000)) - - // Send response back to DApp - client.respond(response) - } else { - console.error('Only permission requests are supported in this demo') - console.error('Received: ', message) - - const response = { - type: beacon.BeaconMessageType.Error, - id: message.id, - errorType: beacon.BeaconErrorType.ABORTED_ERROR - } - client.respond(response) + console.error('Only permission requests are supported in this demo') + console.error('Received: ', message) + + const response = { + type: beacon.BeaconMessageType.Error, + id: message.id, + errorType: beacon.BeaconErrorType.ABORTED_ERROR } + client.respond(response) } + setStatus('') }) .catch((error) => console.error('connect error', error)) diff --git a/package-lock.json b/package-lock.json index 180fd6f59..726e81968 100755 --- a/package-lock.json +++ b/package-lock.json @@ -15556,21 +15556,29 @@ }, "packages/beacon-blockchain-kusama": { "name": "@airgap/beacon-blockchain-kusama", - "version": "2.4.0-beta.3", - "license": "ISC" + "version": "2.5.0-beta.0", + "license": "ISC", + "dependencies": { + "@airgap/beacon-types": "^2.5.0-beta.0", + "@airgap/beacon-ui": "^2.5.0-beta.0" + } }, "packages/beacon-blockchain-tezos": { "name": "@airgap/beacon-blockchain-tezos", - "version": "2.4.0-beta.3", - "license": "ISC" + "version": "2.5.0-beta.0", + "license": "ISC", + "dependencies": { + "@airgap/beacon-types": "^2.5.0-beta.0", + "@airgap/beacon-ui": "^2.5.0-beta.0" + } }, "packages/beacon-core": { "name": "@airgap/beacon-core", - "version": "2.4.0-beta.3", + "version": "2.5.0-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^2.4.0-beta.3", - "@airgap/beacon-utils": "^2.4.0-beta.3", + "@airgap/beacon-types": "^2.5.0-beta.0", + "@airgap/beacon-utils": "^2.5.0-beta.0", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15578,40 +15586,41 @@ }, "packages/beacon-dapp": { "name": "@airgap/beacon-dapp", - "version": "2.4.0-beta.3", + "version": "2.5.0-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.3", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.3", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.3", + "@airgap/beacon-core": "^2.5.0-beta.0", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.0", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.0", + "@airgap/beacon-ui": "^2.5.0-beta.0", "qrcode-generator": "1.4.4" } }, "packages/beacon-transport-matrix": { "name": "@airgap/beacon-transport-matrix", - "version": "2.4.0-beta.3", + "version": "2.5.0-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.3", - "@airgap/beacon-utils": "^2.4.0-beta.3", + "@airgap/beacon-core": "^2.5.0-beta.0", + "@airgap/beacon-utils": "^2.5.0-beta.0", "axios": "0.24.0" } }, "packages/beacon-transport-postmessage": { "name": "@airgap/beacon-transport-postmessage", - "version": "2.4.0-beta.3", + "version": "2.5.0-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.3", - "@airgap/beacon-types": "^2.4.0-beta.3", - "@airgap/beacon-utils": "^2.4.0-beta.3", + "@airgap/beacon-core": "^2.5.0-beta.0", + "@airgap/beacon-types": "^2.5.0-beta.0", + "@airgap/beacon-utils": "^2.5.0-beta.0", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } }, "packages/beacon-types": { "name": "@airgap/beacon-types", - "version": "2.4.0-beta.3", + "version": "2.5.0-beta.0", "license": "ISC", "dependencies": { "@types/chrome": "0.0.163" @@ -15619,12 +15628,18 @@ }, "packages/beacon-ui": { "name": "@airgap/beacon-ui", - "version": "2.4.0-beta.3", - "license": "ISC" + "version": "2.5.0-beta.0", + "license": "ISC", + "dependencies": { + "@airgap/beacon-core": "^2.5.0-beta.0", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.0", + "@airgap/beacon-types": "^2.5.0-beta.0", + "@airgap/beacon-utils": "^2.5.0-beta.0" + } }, "packages/beacon-utils": { "name": "@airgap/beacon-utils", - "version": "2.4.0-beta.3", + "version": "2.5.0-beta.0", "license": "ISC", "dependencies": { "@types/libsodium-wrappers": "0.7.9", @@ -15634,27 +15649,35 @@ }, "packages/beacon-wallet": { "name": "@airgap/beacon-wallet", - "version": "2.4.0-beta.3", + "version": "2.5.0-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.4.0-beta.3", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.3", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.3" + "@airgap/beacon-core": "^2.5.0-beta.0", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.0", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.0" } } }, "dependencies": { "@airgap/beacon-blockchain-kusama": { - "version": "file:packages/beacon-blockchain-kusama" + "version": "file:packages/beacon-blockchain-kusama", + "requires": { + "@airgap/beacon-types": "^2.5.0-beta.0", + "@airgap/beacon-ui": "^2.5.0-beta.0" + } }, "@airgap/beacon-blockchain-tezos": { - "version": "file:packages/beacon-blockchain-tezos" + "version": "file:packages/beacon-blockchain-tezos", + "requires": { + "@airgap/beacon-types": "^2.5.0-beta.0", + "@airgap/beacon-ui": "^2.5.0-beta.0" + } }, "@airgap/beacon-core": { "version": "file:packages/beacon-core", "requires": { - "@airgap/beacon-types": "^2.4.0-beta.3", - "@airgap/beacon-utils": "^2.4.0-beta.3", + "@airgap/beacon-types": "^2.5.0-beta.0", + "@airgap/beacon-utils": "^2.5.0-beta.0", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15663,26 +15686,27 @@ "@airgap/beacon-dapp": { "version": "file:packages/beacon-dapp", "requires": { - "@airgap/beacon-core": "^2.4.0-beta.3", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.3", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.3", + "@airgap/beacon-core": "^2.5.0-beta.0", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.0", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.0", + "@airgap/beacon-ui": "^2.5.0-beta.0", "qrcode-generator": "1.4.4" } }, "@airgap/beacon-transport-matrix": { "version": "file:packages/beacon-transport-matrix", "requires": { - "@airgap/beacon-core": "^2.4.0-beta.3", - "@airgap/beacon-utils": "^2.4.0-beta.3", + "@airgap/beacon-core": "^2.5.0-beta.0", + "@airgap/beacon-utils": "^2.5.0-beta.0", "axios": "0.24.0" } }, "@airgap/beacon-transport-postmessage": { "version": "file:packages/beacon-transport-postmessage", "requires": { - "@airgap/beacon-core": "^2.4.0-beta.3", - "@airgap/beacon-types": "^2.4.0-beta.3", - "@airgap/beacon-utils": "^2.4.0-beta.3", + "@airgap/beacon-core": "^2.5.0-beta.0", + "@airgap/beacon-types": "^2.5.0-beta.0", + "@airgap/beacon-utils": "^2.5.0-beta.0", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } @@ -15694,7 +15718,13 @@ } }, "@airgap/beacon-ui": { - "version": "file:packages/beacon-ui" + "version": "file:packages/beacon-ui", + "requires": { + "@airgap/beacon-core": "^2.5.0-beta.0", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.0", + "@airgap/beacon-types": "^2.5.0-beta.0", + "@airgap/beacon-utils": "^2.5.0-beta.0" + } }, "@airgap/beacon-utils": { "version": "file:packages/beacon-utils", @@ -15707,9 +15737,9 @@ "@airgap/beacon-wallet": { "version": "file:packages/beacon-wallet", "requires": { - "@airgap/beacon-core": "^2.4.0-beta.3", - "@airgap/beacon-transport-matrix": "^2.4.0-beta.3", - "@airgap/beacon-transport-postmessage": "^2.4.0-beta.3" + "@airgap/beacon-core": "^2.5.0-beta.0", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.0", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.0" } }, "@babel/code-frame": { @@ -28215,4 +28245,4 @@ "dev": true } } -} \ No newline at end of file +} diff --git a/packages/beacon-blockchain-kusama/src/index.ts b/packages/beacon-blockchain-kusama/src/index.ts index e69de29bb..436442888 100644 --- a/packages/beacon-blockchain-kusama/src/index.ts +++ b/packages/beacon-blockchain-kusama/src/index.ts @@ -0,0 +1 @@ +export { SubstrateBlockchain } from './blockchain' diff --git a/packages/beacon-blockchain-tezos/src/index.ts b/packages/beacon-blockchain-tezos/src/index.ts index e69de29bb..f77270b98 100644 --- a/packages/beacon-blockchain-tezos/src/index.ts +++ b/packages/beacon-blockchain-tezos/src/index.ts @@ -0,0 +1 @@ +export { TezosBlockchain } from './blockchain' diff --git a/packages/beacon-dapp/src/dapp-client/DAppClient.ts b/packages/beacon-dapp/src/dapp-client/DAppClient.ts index 793ee059e..e67ac44b2 100644 --- a/packages/beacon-dapp/src/dapp-client/DAppClient.ts +++ b/packages/beacon-dapp/src/dapp-client/DAppClient.ts @@ -171,13 +171,16 @@ export class DAppClient extends Client { logger.log('handleResponse', 'Received message', message, connectionInfo) - if (openRequest && message.type === BeaconMessageType.Acknowledge) { + if ( + (openRequest && message.type === BeaconMessageType.Acknowledge) || + (message as any).message.type === BeaconMessageType.Acknowledge // TODO: TYPE + ) { logger.log(`acknowledge message received for ${message.id}`) console.timeLog(message.id, 'acknowledge') this.events .emit(BeaconEvent.ACKNOWLEDGE_RECEIVED, { - message, + message: (message as any).message ?? message, // TODO: Types extraInfo: {}, walletInfo: await this.getWalletInfo() }) @@ -198,7 +201,10 @@ export class DAppClient extends Client { } this.openRequests.delete(message.id) } else { - if (message.type === BeaconMessageType.Disconnect) { + if ( + message.type === BeaconMessageType.Disconnect || + (message as any).message.type === BeaconMessageType.Disconnect // TODO: TYPE + ) { const relevantTransport = connectionInfo.origin === Origin.P2P ? this.p2pTransport @@ -572,12 +578,13 @@ export class DAppClient extends Client { throw new Error(`Blockchain "${input.blockchainIdentifier}" not supported by dAppClient`) } + const metadata = await this.getOwnAppMetadata() const request: PermissionRequestV3 = { ...input, type: BeaconMessageType.PermissionRequest, blockchainData: { ...input.blockchainData, - appMetadata: await this.getOwnAppMetadata() + appMetadata: { ...metadata, senderID: metadata.senderId } as any // TODO: REMOVE } } @@ -598,7 +605,7 @@ export class DAppClient extends Client { // const accountInfo: AccountInfo = { const accountInfo: any = { accountIdentifier: response.message.accountId, - senderId: response.senderId, + senderId: response.senderID, // TODO: RENAME origin: { type: connectionInfo.origin, id: connectionInfo.id @@ -1362,11 +1369,11 @@ export class DAppClient extends Client { throw await this.sendInternalError('BeaconID not defined') } - const request: BeaconMessageWrapper = { + const request: BeaconMessageWrapper = { id: messageId, version: '3', // TODO: BEACON_VERSION, - senderId: await getSenderId(await this.beaconId), - message: requestInput as any // TODO: REMOVE ANY + senderID: await getSenderId(await this.beaconId), + message: requestInput } const exposed = new ExposedPromise< diff --git a/packages/beacon-sdk/package.json b/packages/beacon-sdk/package.json index 73ddd25ca..7b5764648 100644 --- a/packages/beacon-sdk/package.json +++ b/packages/beacon-sdk/package.json @@ -46,4 +46,4 @@ "@airgap/beacon-utils": "^2.5.0-beta.0", "@airgap/beacon-wallet": "^2.5.0-beta.0" } -} +} \ No newline at end of file diff --git a/packages/beacon-sdk/src/index.ts b/packages/beacon-sdk/src/index.ts index 4255991e7..1ea0ab4cd 100644 --- a/packages/beacon-sdk/src/index.ts +++ b/packages/beacon-sdk/src/index.ts @@ -1,5 +1,5 @@ -// export * from '@airgap/beacon-blockchain-kusama' -// export * from '@airgap/beacon-blockchain-tezos' +export * from '@airgap/beacon-blockchain-kusama' +export * from '@airgap/beacon-blockchain-tezos' export * from '@airgap/beacon-core' export * from '@airgap/beacon-dapp' export * from '@airgap/beacon-transport-matrix' diff --git a/packages/beacon-types/src/types/beaconV3/PermissionRequest.ts b/packages/beacon-types/src/types/beaconV3/PermissionRequest.ts index 21c049776..38a570d5c 100644 --- a/packages/beacon-types/src/types/beaconV3/PermissionRequest.ts +++ b/packages/beacon-types/src/types/beaconV3/PermissionRequest.ts @@ -26,7 +26,7 @@ export interface Blockchain { export interface BeaconMessageWrapper { id: string // ID of the message. The same ID is used in the request and response version: string - senderId: string // ID of the sender. This is used to identify the + senderID: string // ID of the sender. This is used to identify the // TODO: Rename to senderId message: T } From 07d789456aaf496717a8db8b31b4eb227c43d2fd Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Tue, 8 Feb 2022 15:54:42 +0100 Subject: [PATCH 097/130] fix(): remove unused import --- packages/beacon-dapp/src/dapp-client/DAppClient.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/beacon-dapp/src/dapp-client/DAppClient.ts b/packages/beacon-dapp/src/dapp-client/DAppClient.ts index e67ac44b2..c065c2cc9 100644 --- a/packages/beacon-dapp/src/dapp-client/DAppClient.ts +++ b/packages/beacon-dapp/src/dapp-client/DAppClient.ts @@ -44,7 +44,6 @@ import { ColorMode, IgnoredRequestInputProperties, WalletInfo, - BeaconBaseMessage, BeaconMessageWrapper, Blockchain, BlockchainMessage, From 941133233ab0a3b3b6f733323563a0d3b9c4e73e Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Tue, 8 Feb 2022 17:04:25 +0100 Subject: [PATCH 098/130] fix(): rename senderId --- packages/beacon-dapp/src/dapp-client/DAppClient.ts | 7 +++---- .../beacon-types/src/types/beaconV3/PermissionRequest.ts | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/beacon-dapp/src/dapp-client/DAppClient.ts b/packages/beacon-dapp/src/dapp-client/DAppClient.ts index c065c2cc9..da5023457 100644 --- a/packages/beacon-dapp/src/dapp-client/DAppClient.ts +++ b/packages/beacon-dapp/src/dapp-client/DAppClient.ts @@ -577,13 +577,12 @@ export class DAppClient extends Client { throw new Error(`Blockchain "${input.blockchainIdentifier}" not supported by dAppClient`) } - const metadata = await this.getOwnAppMetadata() const request: PermissionRequestV3 = { ...input, type: BeaconMessageType.PermissionRequest, blockchainData: { ...input.blockchainData, - appMetadata: { ...metadata, senderID: metadata.senderId } as any // TODO: REMOVE + appMetadata: await this.getOwnAppMetadata() } } @@ -604,7 +603,7 @@ export class DAppClient extends Client { // const accountInfo: AccountInfo = { const accountInfo: any = { accountIdentifier: response.message.accountId, - senderId: response.senderID, // TODO: RENAME + senderId: response.senderId, origin: { type: connectionInfo.origin, id: connectionInfo.id @@ -1371,7 +1370,7 @@ export class DAppClient extends Client { const request: BeaconMessageWrapper = { id: messageId, version: '3', // TODO: BEACON_VERSION, - senderID: await getSenderId(await this.beaconId), + senderId: await getSenderId(await this.beaconId), message: requestInput } diff --git a/packages/beacon-types/src/types/beaconV3/PermissionRequest.ts b/packages/beacon-types/src/types/beaconV3/PermissionRequest.ts index 38a570d5c..21c049776 100644 --- a/packages/beacon-types/src/types/beaconV3/PermissionRequest.ts +++ b/packages/beacon-types/src/types/beaconV3/PermissionRequest.ts @@ -26,7 +26,7 @@ export interface Blockchain { export interface BeaconMessageWrapper { id: string // ID of the message. The same ID is used in the request and response version: string - senderID: string // ID of the sender. This is used to identify the // TODO: Rename to senderId + senderId: string // ID of the sender. This is used to identify the message: T } From 0d0ba0aa9cbf8b081fd9258c91884cca8be53770 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 14 Feb 2022 17:03:14 +0100 Subject: [PATCH 099/130] feat(): handle permission response --- examples/dapp-v3.html | 47 +++++++++++------ .../src/blockchain.ts | 4 +- .../src/messages/operation-request.ts | 51 ++++++++++--------- .../beacon-blockchain-kusama/src/types.ts | 6 +-- .../beacon-blockchain-tezos/src/blockchain.ts | 4 +- packages/beacon-core/src/constants.ts | 2 +- .../beacon-dapp/src/dapp-client/DAppClient.ts | 36 +++++++++---- .../src/types/beaconV3/PermissionRequest.ts | 8 +-- 8 files changed, 97 insertions(+), 61 deletions(-) diff --git a/examples/dapp-v3.html b/examples/dapp-v3.html index d6e739e32..3ed315a1e 100644 --- a/examples/dapp-v3.html +++ b/examples/dapp-v3.html @@ -118,17 +118,20 @@ // matrixNodes: ['beacon.tztip.me'] }) + const substrateBlockchain = new beacon.SubstrateBlockchain() + client.addBlockchain(substrateBlockchain) + // Display the active account in the UI const updateActiveAccount = () => { client.getActiveAccount().then((activeAccount) => { if (activeAccount) { document.getElementById('activeAccount').innerHTML = activeAccount.address - document.getElementById('activeAccountNetwork').innerHTML = activeAccount.network.type - document.getElementById('activeAccountTransport').innerHTML = activeAccount.origin.type + // document.getElementById('activeAccountNetwork').innerHTML = activeAccount.network.type + // document.getElementById('activeAccountTransport').innerHTML = activeAccount.origin.type } else { document.getElementById('activeAccount').innerHTML = '' - document.getElementById('activeAccountNetwork').innerHTML = '' - document.getElementById('activeAccountTransport').innerHTML = '' + // document.getElementById('activeAccountNetwork').innerHTML = '' + // document.getElementById('activeAccountTransport').innerHTML = '' } }) } @@ -157,22 +160,30 @@ // Initiate a delegate operation const sendToSelf = () => { return client.getActiveAccount().then((activeAccount) => { - return client.requestOperation({ - operationDetails: [ - { - kind: beacon.TezosOperationType.TRANSACTION, - destination: activeAccount?.address ?? '', - amount: '1' + client + .request({ + blockchainIdentifier: 'substrate', + type: 'blockchain_request', + blockchainData: { + type: 'transfer_request', + scope: 'transfer', + sourceAddress: activeAccount.address, + amount: '1', + recipient: activeAccount.address, + network: { + genesisHash: 'xxx' + }, + mode: 'return' } - ] - }) + }) + .then((response) => { + console.log('response', response) + }) }) } // Initiate a permission request const requestPermission = (callback) => { - const substrateBlockchain = new beacon.SubstrateBlockchain() - client.addBlockchain(substrateBlockchain) client .permissionRequest({ blockchainIdentifier: 'substrate', @@ -185,8 +196,12 @@ networks: [{ genesisHash: 'xxx' }] } }) - .then((res) => { - console.log('res', res) + .then((permissions) => { + console.log('permissions', permissions) + if (callback) { + callback(permissions) + } + updateActiveAccount() }) // client diff --git a/packages/beacon-blockchain-kusama/src/blockchain.ts b/packages/beacon-blockchain-kusama/src/blockchain.ts index b923e303e..51c273904 100644 --- a/packages/beacon-blockchain-kusama/src/blockchain.ts +++ b/packages/beacon-blockchain-kusama/src/blockchain.ts @@ -19,8 +19,8 @@ export class SubstrateBlockchain implements Blockchain { async getAddressFromPermissionResponse( permissionResponse: SubstratePermissionResponse - ): Promise { + ): Promise { // TODO: Handle multiple accounts - return `${permissionResponse.payload.accounts[0].publicKey}` + return permissionResponse.blockchainData.accounts.map((account) => `${account.publicKey}`) } } diff --git a/packages/beacon-blockchain-kusama/src/messages/operation-request.ts b/packages/beacon-blockchain-kusama/src/messages/operation-request.ts index cddc3ca2b..523f44b4c 100644 --- a/packages/beacon-blockchain-kusama/src/messages/operation-request.ts +++ b/packages/beacon-blockchain-kusama/src/messages/operation-request.ts @@ -1,4 +1,4 @@ -import { PermissionResponseV3 } from '@airgap/beacon-types' +import { AppMetadata, BlockchainMessage, PermissionResponseV3 } from '@airgap/beacon-types' export interface NewPermissionRequest { blockchainIdentifier: T @@ -11,8 +11,8 @@ export enum SubstratePermissionScope { 'transfer' } -export interface SubstratePermissionRequest extends NewPermissionRequest<'ksm'> { - payload: { +export interface SubstratePermissionRequest extends NewPermissionRequest<'substrate'> { + blockchainData: { scopes?: string[] // enum network?: { genesisHash: string // Wallet shows only those accounts @@ -21,7 +21,8 @@ export interface SubstratePermissionRequest extends NewPermissionRequest<'ksm'> } } export interface SubstratePermissionResponse extends PermissionResponseV3<'substrate'> { - payload: { + blockchainData: { + appMetadata: AppMetadata scopes: string[] // enum accounts: { network: { @@ -36,16 +37,18 @@ export interface SubstratePermissionResponse extends PermissionResponseV3<'subst } } -export interface SubstrateTransferReq { - scope: SubstratePermissionScope.transfer - sourceAddress: string - amount: string - recipient: string - network: { - genesisHash: string - rpc?: string +export interface SubstrateTransferReq extends BlockchainMessage<'substrate'> { + blockchainData: { + scope: SubstratePermissionScope.transfer + sourceAddress: string + amount: string + recipient: string + network: { + genesisHash: string + rpc?: string + } + mode: 'broadcast' | 'broadcast-and-return' | 'return' // TODO: Wording } - mode: 'broadcast' | 'broadcast-and-return' | 'return' // TODO: Wording } export type SubstrateTransferResponse = | { @@ -59,17 +62,19 @@ export type SubstrateTransferResponse = payload: string } -export interface SubstrateSignRequest { - scope: SubstratePermissionScope.signString | SubstratePermissionScope.signRaw - address: string // Used to match account - // Is the Wallet allowed to alter this request (eg. tip?). If yes, payload needs to be sent back - metadata: { - genesisHash: string // Do we need this? - runtimeVersion: string // Wallet should check if it's the latest version - transactionVersion: string +export interface SubstrateSignRequest extends BlockchainMessage<'substrate'> { + blockchainData: { + scope: SubstratePermissionScope.signString | SubstratePermissionScope.signRaw + address: string // Used to match account + // Is the Wallet allowed to alter this request (eg. tip?). If yes, payload needs to be sent back + metadata: { + genesisHash: string // Do we need this? + runtimeVersion: string // Wallet should check if it's the latest version + transactionVersion: string + } + payload: string // SCALE encoded payload + mode: 'broadcast' | 'broadcast-and-return' | 'return' // TODO: Wording } - payload: string // SCALE encoded payload - mode: 'broadcast' | 'broadcast-and-return' | 'return' // TODO: Wording } export interface SubstrateSignResponse { signature: string diff --git a/packages/beacon-blockchain-kusama/src/types.ts b/packages/beacon-blockchain-kusama/src/types.ts index 2bbf6f564..c5f32f6f4 100644 --- a/packages/beacon-blockchain-kusama/src/types.ts +++ b/packages/beacon-blockchain-kusama/src/types.ts @@ -13,9 +13,9 @@ export interface SubstrateNetwork { // Those are example permissions export enum SubstratePermissionScope { - TRANSFER = 0, - SIGN_RAW = 1, - SIGN_STRING = 2 + TRANSFER = 'transfer', + SIGN_RAW = 'sign_raw', + SIGN_STRING = 'sign_string' } export interface SubstratePermissionRequest extends PermissionRequestV3<'substrate'> { diff --git a/packages/beacon-blockchain-tezos/src/blockchain.ts b/packages/beacon-blockchain-tezos/src/blockchain.ts index 0c09a44c0..8aa116e46 100644 --- a/packages/beacon-blockchain-tezos/src/blockchain.ts +++ b/packages/beacon-blockchain-tezos/src/blockchain.ts @@ -22,7 +22,7 @@ export class TezosBlockchain implements Blockchain { async getAddressFromPermissionResponse( _permissionResponse: PermissionResponseV3<'tezos'> - ): Promise { - return '' // getAddressFromPublicKey(permissionResponse.publicKey) + ): Promise { + return [''] // getAddressFromPublicKey(permissionResponse.publicKey) } } diff --git a/packages/beacon-core/src/constants.ts b/packages/beacon-core/src/constants.ts index d9297b9ef..beb3eae55 100644 --- a/packages/beacon-core/src/constants.ts +++ b/packages/beacon-core/src/constants.ts @@ -1,2 +1,2 @@ export const SDK_VERSION: string = '2.5.0-beta.0' -export const BEACON_VERSION: string = '2' +export const BEACON_VERSION: string = '3' diff --git a/packages/beacon-dapp/src/dapp-client/DAppClient.ts b/packages/beacon-dapp/src/dapp-client/DAppClient.ts index da5023457..cbe6ee5aa 100644 --- a/packages/beacon-dapp/src/dapp-client/DAppClient.ts +++ b/packages/beacon-dapp/src/dapp-client/DAppClient.ts @@ -598,17 +598,19 @@ export class DAppClient extends Client { console.log('RESPONSE V3', response, connectionInfo) - const address = await blockchain.getAddressFromPermissionResponse(response.message) + const addresses = await blockchain.getAddressFromPermissionResponse(response.message) // const accountInfo: AccountInfo = { const accountInfo: any = { - accountIdentifier: response.message.accountId, + accountIdentifier: Array.isArray(response.message.accountId) + ? response.message.accountId[0] + : response.message.accountId, senderId: response.senderId, origin: { type: connectionInfo.origin, id: connectionInfo.id }, - address, + address: addresses[0], // Store all addresses publicKey: '', scopes: response.message.blockchainData.scopes as any, connectedAt: new Date().getTime(), @@ -627,11 +629,24 @@ export class DAppClient extends Client { walletInfo: await this.getWalletInfo() }) + await this.notifySuccess(request as any, { + account: accountInfo, + output: { + address: addresses[0], + network: { type: NetworkType.MAINNET }, + scopes: [PermissionScope.OPERATION_REQUEST] + } as any, + blockExplorer: this.blockExplorer, + connectionContext: connectionInfo, + walletInfo: await this.getWalletInfo() + }) + // return output return response.message } public async request(input: BlockchainRequestV3): Promise> { + console.log('REQUEST', input) const blockchain = this.blockchains.get(input.blockchainIdentifier) if (!blockchain) { throw new Error(`Blockchain "${blockchain}" not supported by dAppClient`) @@ -653,7 +668,8 @@ export class DAppClient extends Client { const { message: response, connectionInfo } = await this.makeRequestV3< BlockchainRequestV3, BeaconMessageWrapper> - >(request).catch(async (_requestError: ErrorResponse) => { + >(request).catch(async (requestError: ErrorResponse) => { + console.error(requestError) throw new Error('TODO') // throw await this.handleRequestError(request, requestError) }) @@ -1265,7 +1281,7 @@ export class DAppClient extends Client { const request: Optional & Pick = { id: messageId, - version: BEACON_VERSION, + version: '2', // This is the old version senderId: await getSenderId(await this.beaconId), ...requestInput } @@ -1357,11 +1373,11 @@ export class DAppClient extends Client { throw new Error('rate limit reached') } - if (!(await this.checkPermissions(requestInput.type as BeaconMessageType))) { - this.events.emit(BeaconEvent.NO_PERMISSIONS).catch((emitError) => console.warn(emitError)) + // if (!(await this.checkPermissions(requestInput.type as BeaconMessageType))) { + // this.events.emit(BeaconEvent.NO_PERMISSIONS).catch((emitError) => console.warn(emitError)) - throw new Error('No permissions to send this request to wallet!') - } + // throw new Error('No permissions to send this request to wallet!') + // } if (!this.beaconId) { throw await this.sendInternalError('BeaconID not defined') @@ -1369,7 +1385,7 @@ export class DAppClient extends Client { const request: BeaconMessageWrapper = { id: messageId, - version: '3', // TODO: BEACON_VERSION, + version: BEACON_VERSION, senderId: await getSenderId(await this.beaconId), message: requestInput } diff --git a/packages/beacon-types/src/types/beaconV3/PermissionRequest.ts b/packages/beacon-types/src/types/beaconV3/PermissionRequest.ts index 21c049776..6270b6564 100644 --- a/packages/beacon-types/src/types/beaconV3/PermissionRequest.ts +++ b/packages/beacon-types/src/types/beaconV3/PermissionRequest.ts @@ -20,7 +20,7 @@ export interface Blockchain { validateRequest(input: BlockchainMessage): Promise handleResponse(input: ResponseInput): Promise - getAddressFromPermissionResponse(permissionResponse: PermissionResponseV3): Promise + getAddressFromPermissionResponse(permissionResponse: PermissionResponseV3): Promise } export interface BeaconMessageWrapper { @@ -45,7 +45,7 @@ export interface PermissionRequestV3 extends Blockcha type: BeaconMessageType.PermissionRequest blockchainData: { appMetadata: AppMetadata // Some additional information about the DApp - scopes: number[] + scopes: string[] } } export interface PermissionResponseV3 extends BlockchainMessage { @@ -54,7 +54,7 @@ export interface PermissionResponseV3 extends Blockch accountId: string blockchainData: { appMetadata: AppMetadata // Some additional information about the Wallet - scopes: number[] // Permissions that have been granted for this specific address / account + scopes: string[] // Permissions that have been granted for this specific address / account } } @@ -64,7 +64,7 @@ export interface BlockchainRequestV3 extends Blockcha accountId: string blockchainData: { type: string - scope: number + scope: string } } From be8af39aab62f0c47061d0239f9716771a95541e Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 14 Feb 2022 17:04:02 +0100 Subject: [PATCH 100/130] chore(releas): v2.5.0-beta.1 --- lerna.json | 6 ++--- .../beacon-blockchain-kusama/package.json | 8 +++---- packages/beacon-blockchain-tezos/package.json | 8 +++---- packages/beacon-core/package.json | 6 ++--- packages/beacon-core/src/constants.ts | 2 +- packages/beacon-dapp/package.json | 10 ++++---- packages/beacon-sdk/package.json | 24 +++++++++---------- packages/beacon-transport-matrix/package.json | 6 ++--- .../beacon-transport-postmessage/package.json | 8 +++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 12 +++++----- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 +++---- 13 files changed, 50 insertions(+), 52 deletions(-) diff --git a/lerna.json b/lerna.json index f78a936e9..e7a836389 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,4 @@ { - "packages": [ - "packages/*" - ], - "version": "2.5.0-beta.0" + "packages": ["packages/*"], + "version": "2.5.0-beta.1" } diff --git a/packages/beacon-blockchain-kusama/package.json b/packages/beacon-blockchain-kusama/package.json index 6c6afed70..5c4b3eced 100644 --- a/packages/beacon-blockchain-kusama/package.json +++ b/packages/beacon-blockchain-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-kusama", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,7 +34,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.0", - "@airgap/beacon-ui": "^2.5.0-beta.0" + "@airgap/beacon-types": "^2.5.0-beta.1", + "@airgap/beacon-ui": "^2.5.0-beta.1" } -} \ No newline at end of file +} diff --git a/packages/beacon-blockchain-tezos/package.json b/packages/beacon-blockchain-tezos/package.json index 8f327c69e..ce9dd9cb6 100644 --- a/packages/beacon-blockchain-tezos/package.json +++ b/packages/beacon-blockchain-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-tezos", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,7 +34,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.0", - "@airgap/beacon-ui": "^2.5.0-beta.0" + "@airgap/beacon-types": "^2.5.0-beta.1", + "@airgap/beacon-ui": "^2.5.0-beta.1" } -} \ No newline at end of file +} diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index da32f1bff..962562965 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.0", - "@airgap/beacon-utils": "^2.5.0-beta.0", + "@airgap/beacon-types": "^2.5.0-beta.1", + "@airgap/beacon-utils": "^2.5.0-beta.1", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-core/src/constants.ts b/packages/beacon-core/src/constants.ts index beb3eae55..af6a54965 100644 --- a/packages/beacon-core/src/constants.ts +++ b/packages/beacon-core/src/constants.ts @@ -1,2 +1,2 @@ -export const SDK_VERSION: string = '2.5.0-beta.0' +export const SDK_VERSION: string = '2.5.0-beta.1' export const BEACON_VERSION: string = '3' diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 7230206a1..d5ab12a81 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,10 +35,10 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.0", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.0", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.0", - "@airgap/beacon-ui": "^2.5.0-beta.0", + "@airgap/beacon-core": "^2.5.0-beta.1", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.1", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.1", + "@airgap/beacon-ui": "^2.5.0-beta.1", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-sdk/package.json b/packages/beacon-sdk/package.json index 7b5764648..8a29b16a2 100644 --- a/packages/beacon-sdk/package.json +++ b/packages/beacon-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-sdk", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,15 +35,15 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-blockchain-kusama": "^2.5.0-beta.0", - "@airgap/beacon-blockchain-tezos": "^2.5.0-beta.0", - "@airgap/beacon-core": "^2.5.0-beta.0", - "@airgap/beacon-dapp": "^2.5.0-beta.0", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.0", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.0", - "@airgap/beacon-types": "^2.5.0-beta.0", - "@airgap/beacon-ui": "^2.5.0-beta.0", - "@airgap/beacon-utils": "^2.5.0-beta.0", - "@airgap/beacon-wallet": "^2.5.0-beta.0" + "@airgap/beacon-blockchain-kusama": "^2.5.0-beta.1", + "@airgap/beacon-blockchain-tezos": "^2.5.0-beta.1", + "@airgap/beacon-core": "^2.5.0-beta.1", + "@airgap/beacon-dapp": "^2.5.0-beta.1", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.1", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.1", + "@airgap/beacon-types": "^2.5.0-beta.1", + "@airgap/beacon-ui": "^2.5.0-beta.1", + "@airgap/beacon-utils": "^2.5.0-beta.1", + "@airgap/beacon-wallet": "^2.5.0-beta.1" } -} \ No newline at end of file +} diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index 28c931af7..d4844e6be 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.0", - "@airgap/beacon-utils": "^2.5.0-beta.0", + "@airgap/beacon-core": "^2.5.0-beta.1", + "@airgap/beacon-utils": "^2.5.0-beta.1", "axios": "0.24.0" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 950be5aaa..eab545602 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.0", - "@airgap/beacon-types": "^2.5.0-beta.0", - "@airgap/beacon-utils": "^2.5.0-beta.0", + "@airgap/beacon-core": "^2.5.0-beta.1", + "@airgap/beacon-types": "^2.5.0-beta.1", + "@airgap/beacon-utils": "^2.5.0-beta.1", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 710f975c1..ec92d105b 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index 8fb8318ba..cd59fee71 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.0", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.0", - "@airgap/beacon-types": "^2.5.0-beta.0", - "@airgap/beacon-utils": "^2.5.0-beta.0" + "@airgap/beacon-core": "^2.5.0-beta.1", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.1", + "@airgap/beacon-types": "^2.5.0-beta.1", + "@airgap/beacon-utils": "^2.5.0-beta.1" } -} \ No newline at end of file +} diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index d45dac4e3..3eb70ab3d 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index ba44f834f..32029e2cb 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,8 +35,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.0", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.0", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.0" + "@airgap/beacon-core": "^2.5.0-beta.1", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.1", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.1" } } From 90ec6fb9f85a2c2dc7927f86929e8d3ee527e6ba Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 28 Feb 2022 15:11:31 +0100 Subject: [PATCH 101/130] fix(): permission scope --- .../src/messages/operation-request.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/beacon-blockchain-kusama/src/messages/operation-request.ts b/packages/beacon-blockchain-kusama/src/messages/operation-request.ts index 523f44b4c..b3dff7bef 100644 --- a/packages/beacon-blockchain-kusama/src/messages/operation-request.ts +++ b/packages/beacon-blockchain-kusama/src/messages/operation-request.ts @@ -6,8 +6,7 @@ export interface NewPermissionRequest { // Those are example permissions export enum SubstratePermissionScope { - 'signRaw', - 'signString', + 'sign_raw', 'transfer' } @@ -64,7 +63,7 @@ export type SubstrateTransferResponse = export interface SubstrateSignRequest extends BlockchainMessage<'substrate'> { blockchainData: { - scope: SubstratePermissionScope.signString | SubstratePermissionScope.signRaw + scope: SubstratePermissionScope.sign_raw address: string // Used to match account // Is the Wallet allowed to alter this request (eg. tip?). If yes, payload needs to be sent back metadata: { From 955da5558d2b7cd0fe893b4c88f7152526bc85c4 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Thu, 3 Mar 2022 11:24:17 +0100 Subject: [PATCH 102/130] feat(): remove unused config file --- tsconfig-browserify.json | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 tsconfig-browserify.json diff --git a/tsconfig-browserify.json b/tsconfig-browserify.json deleted file mode 100644 index c3ccf82a8..000000000 --- a/tsconfig-browserify.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "./tsconfig-cjs.json", - "compilerOptions": { - "outDir": "./dist/browserify" - } -} From 2787cbb3b53a8af3e5b40705c91332159317afa5 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Thu, 3 Mar 2022 11:29:30 +0100 Subject: [PATCH 103/130] feat(): add new message --- .../src/messages/operation-request.ts | 94 ++++++++++++++++++- 1 file changed, 91 insertions(+), 3 deletions(-) diff --git a/packages/beacon-blockchain-kusama/src/messages/operation-request.ts b/packages/beacon-blockchain-kusama/src/messages/operation-request.ts index b3dff7bef..ba7e6c00a 100644 --- a/packages/beacon-blockchain-kusama/src/messages/operation-request.ts +++ b/packages/beacon-blockchain-kusama/src/messages/operation-request.ts @@ -6,8 +6,9 @@ export interface NewPermissionRequest { // Those are example permissions export enum SubstratePermissionScope { - 'sign_raw', - 'transfer' + 'transfer', + 'sign_payload', + 'sign_raw' } export interface SubstratePermissionRequest extends NewPermissionRequest<'substrate'> { @@ -36,7 +37,7 @@ export interface SubstratePermissionResponse extends PermissionResponseV3<'subst } } -export interface SubstrateTransferReq extends BlockchainMessage<'substrate'> { +export interface SubstrateTransferRequest extends BlockchainMessage<'substrate'> { blockchainData: { scope: SubstratePermissionScope.transfer sourceAddress: string @@ -55,9 +56,96 @@ export type SubstrateTransferResponse = } | { transactionHash: string + signature: string payload: string } | { + signature: string + payload: string + } + +export interface SubstrateSignPayloadRequest extends BlockchainMessage<'substrate'> { + blockchainData: { + scope: SubstratePermissionScope.sign_payload + mode: 'broadcast' | 'broadcast-and-return' | 'return' // TODO: Wording + + // This type is the same as the "SignerPayloadJSON" of polkadot.js https://github.com/polkadot-js/api/blob/f169ca08a80ea9c3865dc545e03e921c50f0d284/packages/types/src/types/extrinsic.ts#L32 + data: { + scope: SubstratePermissionScope.sign_payload + + /** + * @description The ss-58 encoded address + */ + address: string + + /** + * @description The checkpoint hash of the block, in hex + */ + blockHash: string + + /** + * @description The checkpoint block number, in hex + */ + blockNumber: string + + /** + * @description The era for this transaction, in hex + */ + era: string + + /** + * @description The genesis hash of the chain, in hex + */ + genesisHash: string + + /** + * @description The encoded method (with arguments) in hex + */ + method: string + + /** + * @description The nonce for this transaction, in hex + */ + nonce: string + + /** + * @description The current spec version for the runtime + */ + specVersion: string + + /** + * @description The tip for this transaction, in hex + */ + tip: string + + /** + * @description The current transaction version for the runtime + */ + transactionVersion: string + + /** + * @description The applicable signed extensions for this runtime + */ + signedExtensions: string[] + + /** + * @description The version of the extrinsic we are dealing with + */ + version: number + } + } +} +export type SubstrateSignPayloadResponse = + | { + transactionHash: string + } + | { + transactionHash: string + signature: string + payload: string + } + | { + signature: string payload: string } From fd8a226bbafe745b58b94f9bb6c45e3fca2b2cb1 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 9 Mar 2022 15:07:48 +0100 Subject: [PATCH 104/130] feat(): update messages --- .../src/messages/operation-request.ts | 58 ++++++++++--------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/packages/beacon-blockchain-kusama/src/messages/operation-request.ts b/packages/beacon-blockchain-kusama/src/messages/operation-request.ts index ba7e6c00a..3e16d12cb 100644 --- a/packages/beacon-blockchain-kusama/src/messages/operation-request.ts +++ b/packages/beacon-blockchain-kusama/src/messages/operation-request.ts @@ -7,8 +7,8 @@ export interface NewPermissionRequest { // Those are example permissions export enum SubstratePermissionScope { 'transfer', - 'sign_payload', - 'sign_raw' + 'sign_payload_json', + 'sign_payload_raw' } export interface SubstratePermissionRequest extends NewPermissionRequest<'substrate'> { @@ -29,10 +29,8 @@ export interface SubstratePermissionResponse extends PermissionResponseV3<'subst genesisHash: string rpc?: string } - addressPrefix: number publicKey: string - // Replace with address? - // Prefer address, but ask if we can verify signatures with addresses with other curves + address: string }[] } } @@ -47,7 +45,7 @@ export interface SubstrateTransferRequest extends BlockchainMessage<'substrate'> genesisHash: string rpc?: string } - mode: 'broadcast' | 'broadcast-and-return' | 'return' // TODO: Wording + mode: 'submit' | 'submit-and-return' | 'return' // TODO: Wording } } export type SubstrateTransferResponse = @@ -57,22 +55,20 @@ export type SubstrateTransferResponse = | { transactionHash: string signature: string - payload: string + payload?: string } | { signature: string - payload: string + payload?: string } export interface SubstrateSignPayloadRequest extends BlockchainMessage<'substrate'> { blockchainData: { - scope: SubstratePermissionScope.sign_payload - mode: 'broadcast' | 'broadcast-and-return' | 'return' // TODO: Wording + scope: SubstratePermissionScope.sign_payload_json + mode: 'submit' | 'submit-and-return' | 'return' // TODO: Wording // This type is the same as the "SignerPayloadJSON" of polkadot.js https://github.com/polkadot-js/api/blob/f169ca08a80ea9c3865dc545e03e921c50f0d284/packages/types/src/types/extrinsic.ts#L32 data: { - scope: SubstratePermissionScope.sign_payload - /** * @description The ss-58 encoded address */ @@ -142,28 +138,36 @@ export type SubstrateSignPayloadResponse = | { transactionHash: string signature: string - payload: string + payload?: string } | { signature: string - payload: string + payload?: string } export interface SubstrateSignRequest extends BlockchainMessage<'substrate'> { blockchainData: { - scope: SubstratePermissionScope.sign_raw - address: string // Used to match account - // Is the Wallet allowed to alter this request (eg. tip?). If yes, payload needs to be sent back - metadata: { - genesisHash: string // Do we need this? - runtimeVersion: string // Wallet should check if it's the latest version - transactionVersion: string + scope: SubstratePermissionScope.sign_payload_raw + + payload: { + isMutable: boolean + type: 'bytes' | 'payload' + data: string } - payload: string // SCALE encoded payload - mode: 'broadcast' | 'broadcast-and-return' | 'return' // TODO: Wording + + mode: 'submit' | 'submit-and-return' | 'return' // TODO: Wording } } -export interface SubstrateSignResponse { - signature: string - payload?: string -} +export type SubstrateSignResponse = + | { + transactionHash: string + } + | { + transactionHash: string + signature: string + payload?: string + } + | { + signature: string + payload?: string + } From 9928ab14964a893d3dab89c474244641fb7011ac Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 9 Mar 2022 18:17:13 +0100 Subject: [PATCH 105/130] feat(): unify messages --- .../src/messages/operation-request.ts | 166 ++++++++---------- 1 file changed, 75 insertions(+), 91 deletions(-) diff --git a/packages/beacon-blockchain-kusama/src/messages/operation-request.ts b/packages/beacon-blockchain-kusama/src/messages/operation-request.ts index 3e16d12cb..2d95b0dc5 100644 --- a/packages/beacon-blockchain-kusama/src/messages/operation-request.ts +++ b/packages/beacon-blockchain-kusama/src/messages/operation-request.ts @@ -4,13 +4,17 @@ export interface NewPermissionRequest { blockchainIdentifier: T } -// Those are example permissions export enum SubstratePermissionScope { 'transfer', 'sign_payload_json', 'sign_payload_raw' } +export enum SubstrateMessageType { + 'transfer_request', + 'sign_payload_request' +} + export interface SubstratePermissionRequest extends NewPermissionRequest<'substrate'> { blockchainData: { scopes?: string[] // enum @@ -38,6 +42,7 @@ export interface SubstratePermissionResponse extends PermissionResponseV3<'subst export interface SubstrateTransferRequest extends BlockchainMessage<'substrate'> { blockchainData: { scope: SubstratePermissionScope.transfer + type: SubstrateMessageType.transfer_request sourceAddress: string amount: string recipient: string @@ -64,71 +69,77 @@ export type SubstrateTransferResponse = export interface SubstrateSignPayloadRequest extends BlockchainMessage<'substrate'> { blockchainData: { - scope: SubstratePermissionScope.sign_payload_json - mode: 'submit' | 'submit-and-return' | 'return' // TODO: Wording + type: SubstrateMessageType.sign_payload_request + scope: SubstratePermissionScope.sign_payload_json | SubstratePermissionScope.sign_payload_json // This type is the same as the "SignerPayloadJSON" of polkadot.js https://github.com/polkadot-js/api/blob/f169ca08a80ea9c3865dc545e03e921c50f0d284/packages/types/src/types/extrinsic.ts#L32 - data: { - /** - * @description The ss-58 encoded address - */ - address: string - - /** - * @description The checkpoint hash of the block, in hex - */ - blockHash: string - - /** - * @description The checkpoint block number, in hex - */ - blockNumber: string - - /** - * @description The era for this transaction, in hex - */ - era: string - - /** - * @description The genesis hash of the chain, in hex - */ - genesisHash: string - - /** - * @description The encoded method (with arguments) in hex - */ - method: string - - /** - * @description The nonce for this transaction, in hex - */ - nonce: string - - /** - * @description The current spec version for the runtime - */ - specVersion: string - - /** - * @description The tip for this transaction, in hex - */ - tip: string - - /** - * @description The current transaction version for the runtime - */ - transactionVersion: string - - /** - * @description The applicable signed extensions for this runtime - */ - signedExtensions: string[] - - /** - * @description The version of the extrinsic we are dealing with - */ - version: number - } + payload: + | { + type: 'json' + + /** + * @description The checkpoint hash of the block, in hex + */ + blockHash: string + + /** + * @description The checkpoint block number, in hex + */ + blockNumber: string + + /** + * @description The era for this transaction, in hex + */ + era: string + + /** + * @description The genesis hash of the chain, in hex + */ + genesisHash: string + + /** + * @description The encoded method (with arguments) in hex + */ + method: string + + /** + * @description The nonce for this transaction, in hex + */ + nonce: string + + /** + * @description The current spec version for the runtime + */ + specVersion: string + + /** + * @description The tip for this transaction, in hex + */ + tip: string + + /** + * @description The current transaction version for the runtime + */ + transactionVersion: string + + /** + * @description The applicable signed extensions for this runtime + */ + signedExtensions: string[] + + /** + * @description The version of the extrinsic we are dealing with + */ + version: number + } + | { + type: 'raw' + isMutable: boolean + dataType: 'bytes' | 'payload' + data: string + } + + mode: 'submit' | 'submit-and-return' | 'return' } } export type SubstrateSignPayloadResponse = @@ -144,30 +155,3 @@ export type SubstrateSignPayloadResponse = signature: string payload?: string } - -export interface SubstrateSignRequest extends BlockchainMessage<'substrate'> { - blockchainData: { - scope: SubstratePermissionScope.sign_payload_raw - - payload: { - isMutable: boolean - type: 'bytes' | 'payload' - data: string - } - - mode: 'submit' | 'submit-and-return' | 'return' // TODO: Wording - } -} -export type SubstrateSignResponse = - | { - transactionHash: string - } - | { - transactionHash: string - signature: string - payload?: string - } - | { - signature: string - payload?: string - } From 3067231481ed494f34a47587156c268a0a24c0bb Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Thu, 10 Mar 2022 09:56:48 +0100 Subject: [PATCH 106/130] chore(release): v2.5.0-beta.2 --- lerna.json | 2 +- .../beacon-blockchain-kusama/package.json | 6 ++--- .../src/messages/operation-request.ts | 2 +- packages/beacon-blockchain-tezos/package.json | 6 ++--- packages/beacon-core/package.json | 6 ++--- packages/beacon-core/src/constants.ts | 2 +- packages/beacon-dapp/package.json | 10 ++++----- packages/beacon-sdk/package.json | 22 +++++++++---------- packages/beacon-transport-matrix/package.json | 6 ++--- .../beacon-transport-postmessage/package.json | 8 +++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 10 ++++----- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 +++---- 14 files changed, 46 insertions(+), 46 deletions(-) diff --git a/lerna.json b/lerna.json index e7a836389..9c2a5e75c 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "2.5.0-beta.1" + "version": "2.5.0-beta.2" } diff --git a/packages/beacon-blockchain-kusama/package.json b/packages/beacon-blockchain-kusama/package.json index 5c4b3eced..b007956c4 100644 --- a/packages/beacon-blockchain-kusama/package.json +++ b/packages/beacon-blockchain-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-kusama", - "version": "2.5.0-beta.1", + "version": "2.5.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,7 +34,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.1", - "@airgap/beacon-ui": "^2.5.0-beta.1" + "@airgap/beacon-types": "^2.5.0-beta.2", + "@airgap/beacon-ui": "^2.5.0-beta.2" } } diff --git a/packages/beacon-blockchain-kusama/src/messages/operation-request.ts b/packages/beacon-blockchain-kusama/src/messages/operation-request.ts index 2d95b0dc5..c3ccf62f5 100644 --- a/packages/beacon-blockchain-kusama/src/messages/operation-request.ts +++ b/packages/beacon-blockchain-kusama/src/messages/operation-request.ts @@ -41,8 +41,8 @@ export interface SubstratePermissionResponse extends PermissionResponseV3<'subst export interface SubstrateTransferRequest extends BlockchainMessage<'substrate'> { blockchainData: { - scope: SubstratePermissionScope.transfer type: SubstrateMessageType.transfer_request + scope: SubstratePermissionScope.transfer sourceAddress: string amount: string recipient: string diff --git a/packages/beacon-blockchain-tezos/package.json b/packages/beacon-blockchain-tezos/package.json index ce9dd9cb6..015778a5d 100644 --- a/packages/beacon-blockchain-tezos/package.json +++ b/packages/beacon-blockchain-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-tezos", - "version": "2.5.0-beta.1", + "version": "2.5.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,7 +34,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.1", - "@airgap/beacon-ui": "^2.5.0-beta.1" + "@airgap/beacon-types": "^2.5.0-beta.2", + "@airgap/beacon-ui": "^2.5.0-beta.2" } } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 962562965..d70b66ef8 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "2.5.0-beta.1", + "version": "2.5.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.1", - "@airgap/beacon-utils": "^2.5.0-beta.1", + "@airgap/beacon-types": "^2.5.0-beta.2", + "@airgap/beacon-utils": "^2.5.0-beta.2", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-core/src/constants.ts b/packages/beacon-core/src/constants.ts index af6a54965..77ca73b9c 100644 --- a/packages/beacon-core/src/constants.ts +++ b/packages/beacon-core/src/constants.ts @@ -1,2 +1,2 @@ -export const SDK_VERSION: string = '2.5.0-beta.1' +export const SDK_VERSION: string = '2.5.0-beta.2' export const BEACON_VERSION: string = '3' diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index d5ab12a81..07fc70724 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "2.5.0-beta.1", + "version": "2.5.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,10 +35,10 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.1", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.1", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.1", - "@airgap/beacon-ui": "^2.5.0-beta.1", + "@airgap/beacon-core": "^2.5.0-beta.2", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.2", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.2", + "@airgap/beacon-ui": "^2.5.0-beta.2", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-sdk/package.json b/packages/beacon-sdk/package.json index 8a29b16a2..3dcb62dae 100644 --- a/packages/beacon-sdk/package.json +++ b/packages/beacon-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-sdk", - "version": "2.5.0-beta.1", + "version": "2.5.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,15 +35,15 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-blockchain-kusama": "^2.5.0-beta.1", - "@airgap/beacon-blockchain-tezos": "^2.5.0-beta.1", - "@airgap/beacon-core": "^2.5.0-beta.1", - "@airgap/beacon-dapp": "^2.5.0-beta.1", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.1", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.1", - "@airgap/beacon-types": "^2.5.0-beta.1", - "@airgap/beacon-ui": "^2.5.0-beta.1", - "@airgap/beacon-utils": "^2.5.0-beta.1", - "@airgap/beacon-wallet": "^2.5.0-beta.1" + "@airgap/beacon-blockchain-kusama": "^2.5.0-beta.2", + "@airgap/beacon-blockchain-tezos": "^2.5.0-beta.2", + "@airgap/beacon-core": "^2.5.0-beta.2", + "@airgap/beacon-dapp": "^2.5.0-beta.2", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.2", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.2", + "@airgap/beacon-types": "^2.5.0-beta.2", + "@airgap/beacon-ui": "^2.5.0-beta.2", + "@airgap/beacon-utils": "^2.5.0-beta.2", + "@airgap/beacon-wallet": "^2.5.0-beta.2" } } diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index d4844e6be..3c92749bc 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "2.5.0-beta.1", + "version": "2.5.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.1", - "@airgap/beacon-utils": "^2.5.0-beta.1", + "@airgap/beacon-core": "^2.5.0-beta.2", + "@airgap/beacon-utils": "^2.5.0-beta.2", "axios": "0.24.0" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index eab545602..0c8a51ae2 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "2.5.0-beta.1", + "version": "2.5.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.1", - "@airgap/beacon-types": "^2.5.0-beta.1", - "@airgap/beacon-utils": "^2.5.0-beta.1", + "@airgap/beacon-core": "^2.5.0-beta.2", + "@airgap/beacon-types": "^2.5.0-beta.2", + "@airgap/beacon-utils": "^2.5.0-beta.2", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index ec92d105b..4f1f63009 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "2.5.0-beta.1", + "version": "2.5.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index cd59fee71..7397a1dfc 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "2.5.0-beta.1", + "version": "2.5.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.1", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.1", - "@airgap/beacon-types": "^2.5.0-beta.1", - "@airgap/beacon-utils": "^2.5.0-beta.1" + "@airgap/beacon-core": "^2.5.0-beta.2", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.2", + "@airgap/beacon-types": "^2.5.0-beta.2", + "@airgap/beacon-utils": "^2.5.0-beta.2" } } diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 3eb70ab3d..83645de90 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "2.5.0-beta.1", + "version": "2.5.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 32029e2cb..a179a57dd 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "2.5.0-beta.1", + "version": "2.5.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,8 +35,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.1", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.1", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.1" + "@airgap/beacon-core": "^2.5.0-beta.2", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.2", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.2" } } From 84a2156c535e800aa2088bd1e74dced8e9c96a36 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Thu, 10 Mar 2022 17:15:03 +0100 Subject: [PATCH 107/130] chore(release): v2.5.0-beta.3 --- lerna.json | 2 +- package-lock.json | 108 +++++++++--------- .../beacon-blockchain-kusama/package.json | 6 +- .../src/blockchain.ts | 2 +- packages/beacon-blockchain-tezos/package.json | 6 +- packages/beacon-core/package.json | 6 +- packages/beacon-core/src/constants.ts | 2 +- packages/beacon-dapp/package.json | 10 +- packages/beacon-sdk/package.json | 22 ++-- packages/beacon-transport-matrix/package.json | 6 +- .../beacon-transport-postmessage/package.json | 8 +- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 10 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 +- 15 files changed, 100 insertions(+), 100 deletions(-) diff --git a/lerna.json b/lerna.json index 9c2a5e75c..8c0c0575c 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "2.5.0-beta.2" + "version": "2.5.0-beta.3" } diff --git a/package-lock.json b/package-lock.json index 726e81968..6975b6fbd 100755 --- a/package-lock.json +++ b/package-lock.json @@ -15556,29 +15556,29 @@ }, "packages/beacon-blockchain-kusama": { "name": "@airgap/beacon-blockchain-kusama", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.0", - "@airgap/beacon-ui": "^2.5.0-beta.0" + "@airgap/beacon-types": "^2.5.0-beta.2", + "@airgap/beacon-ui": "^2.5.0-beta.2" } }, "packages/beacon-blockchain-tezos": { "name": "@airgap/beacon-blockchain-tezos", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.0", - "@airgap/beacon-ui": "^2.5.0-beta.0" + "@airgap/beacon-types": "^2.5.0-beta.2", + "@airgap/beacon-ui": "^2.5.0-beta.2" } }, "packages/beacon-core": { "name": "@airgap/beacon-core", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.0", - "@airgap/beacon-utils": "^2.5.0-beta.0", + "@airgap/beacon-types": "^2.5.0-beta.2", + "@airgap/beacon-utils": "^2.5.0-beta.2", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15586,41 +15586,41 @@ }, "packages/beacon-dapp": { "name": "@airgap/beacon-dapp", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.0", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.0", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.0", - "@airgap/beacon-ui": "^2.5.0-beta.0", + "@airgap/beacon-core": "^2.5.0-beta.2", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.2", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.2", + "@airgap/beacon-ui": "^2.5.0-beta.2", "qrcode-generator": "1.4.4" } }, "packages/beacon-transport-matrix": { "name": "@airgap/beacon-transport-matrix", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.0", - "@airgap/beacon-utils": "^2.5.0-beta.0", + "@airgap/beacon-core": "^2.5.0-beta.2", + "@airgap/beacon-utils": "^2.5.0-beta.2", "axios": "0.24.0" } }, "packages/beacon-transport-postmessage": { "name": "@airgap/beacon-transport-postmessage", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.0", - "@airgap/beacon-types": "^2.5.0-beta.0", - "@airgap/beacon-utils": "^2.5.0-beta.0", + "@airgap/beacon-core": "^2.5.0-beta.2", + "@airgap/beacon-types": "^2.5.0-beta.2", + "@airgap/beacon-utils": "^2.5.0-beta.2", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } }, "packages/beacon-types": { "name": "@airgap/beacon-types", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.2", "license": "ISC", "dependencies": { "@types/chrome": "0.0.163" @@ -15628,18 +15628,18 @@ }, "packages/beacon-ui": { "name": "@airgap/beacon-ui", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.0", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.0", - "@airgap/beacon-types": "^2.5.0-beta.0", - "@airgap/beacon-utils": "^2.5.0-beta.0" + "@airgap/beacon-core": "^2.5.0-beta.2", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.2", + "@airgap/beacon-types": "^2.5.0-beta.2", + "@airgap/beacon-utils": "^2.5.0-beta.2" } }, "packages/beacon-utils": { "name": "@airgap/beacon-utils", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.2", "license": "ISC", "dependencies": { "@types/libsodium-wrappers": "0.7.9", @@ -15649,12 +15649,12 @@ }, "packages/beacon-wallet": { "name": "@airgap/beacon-wallet", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.0", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.0", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.0" + "@airgap/beacon-core": "^2.5.0-beta.2", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.2", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.2" } } }, @@ -15662,22 +15662,22 @@ "@airgap/beacon-blockchain-kusama": { "version": "file:packages/beacon-blockchain-kusama", "requires": { - "@airgap/beacon-types": "^2.5.0-beta.0", - "@airgap/beacon-ui": "^2.5.0-beta.0" + "@airgap/beacon-types": "^2.5.0-beta.2", + "@airgap/beacon-ui": "^2.5.0-beta.2" } }, "@airgap/beacon-blockchain-tezos": { "version": "file:packages/beacon-blockchain-tezos", "requires": { - "@airgap/beacon-types": "^2.5.0-beta.0", - "@airgap/beacon-ui": "^2.5.0-beta.0" + "@airgap/beacon-types": "^2.5.0-beta.2", + "@airgap/beacon-ui": "^2.5.0-beta.2" } }, "@airgap/beacon-core": { "version": "file:packages/beacon-core", "requires": { - "@airgap/beacon-types": "^2.5.0-beta.0", - "@airgap/beacon-utils": "^2.5.0-beta.0", + "@airgap/beacon-types": "^2.5.0-beta.2", + "@airgap/beacon-utils": "^2.5.0-beta.2", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15686,27 +15686,27 @@ "@airgap/beacon-dapp": { "version": "file:packages/beacon-dapp", "requires": { - "@airgap/beacon-core": "^2.5.0-beta.0", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.0", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.0", - "@airgap/beacon-ui": "^2.5.0-beta.0", + "@airgap/beacon-core": "^2.5.0-beta.2", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.2", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.2", + "@airgap/beacon-ui": "^2.5.0-beta.2", "qrcode-generator": "1.4.4" } }, "@airgap/beacon-transport-matrix": { "version": "file:packages/beacon-transport-matrix", "requires": { - "@airgap/beacon-core": "^2.5.0-beta.0", - "@airgap/beacon-utils": "^2.5.0-beta.0", + "@airgap/beacon-core": "^2.5.0-beta.2", + "@airgap/beacon-utils": "^2.5.0-beta.2", "axios": "0.24.0" } }, "@airgap/beacon-transport-postmessage": { "version": "file:packages/beacon-transport-postmessage", "requires": { - "@airgap/beacon-core": "^2.5.0-beta.0", - "@airgap/beacon-types": "^2.5.0-beta.0", - "@airgap/beacon-utils": "^2.5.0-beta.0", + "@airgap/beacon-core": "^2.5.0-beta.2", + "@airgap/beacon-types": "^2.5.0-beta.2", + "@airgap/beacon-utils": "^2.5.0-beta.2", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } @@ -15720,10 +15720,10 @@ "@airgap/beacon-ui": { "version": "file:packages/beacon-ui", "requires": { - "@airgap/beacon-core": "^2.5.0-beta.0", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.0", - "@airgap/beacon-types": "^2.5.0-beta.0", - "@airgap/beacon-utils": "^2.5.0-beta.0" + "@airgap/beacon-core": "^2.5.0-beta.2", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.2", + "@airgap/beacon-types": "^2.5.0-beta.2", + "@airgap/beacon-utils": "^2.5.0-beta.2" } }, "@airgap/beacon-utils": { @@ -15737,9 +15737,9 @@ "@airgap/beacon-wallet": { "version": "file:packages/beacon-wallet", "requires": { - "@airgap/beacon-core": "^2.5.0-beta.0", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.0", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.0" + "@airgap/beacon-core": "^2.5.0-beta.2", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.2", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.2" } }, "@babel/code-frame": { diff --git a/packages/beacon-blockchain-kusama/package.json b/packages/beacon-blockchain-kusama/package.json index b007956c4..f4c93f5ae 100644 --- a/packages/beacon-blockchain-kusama/package.json +++ b/packages/beacon-blockchain-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-kusama", - "version": "2.5.0-beta.2", + "version": "2.5.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,7 +34,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.2", - "@airgap/beacon-ui": "^2.5.0-beta.2" + "@airgap/beacon-types": "^2.5.0-beta.3", + "@airgap/beacon-ui": "^2.5.0-beta.3" } } diff --git a/packages/beacon-blockchain-kusama/src/blockchain.ts b/packages/beacon-blockchain-kusama/src/blockchain.ts index 51c273904..6e7e15d7a 100644 --- a/packages/beacon-blockchain-kusama/src/blockchain.ts +++ b/packages/beacon-blockchain-kusama/src/blockchain.ts @@ -21,6 +21,6 @@ export class SubstrateBlockchain implements Blockchain { permissionResponse: SubstratePermissionResponse ): Promise { // TODO: Handle multiple accounts - return permissionResponse.blockchainData.accounts.map((account) => `${account.publicKey}`) + return permissionResponse.blockchainData.accounts.map((account) => `${account.address}`) } } diff --git a/packages/beacon-blockchain-tezos/package.json b/packages/beacon-blockchain-tezos/package.json index 015778a5d..4249d2236 100644 --- a/packages/beacon-blockchain-tezos/package.json +++ b/packages/beacon-blockchain-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-tezos", - "version": "2.5.0-beta.2", + "version": "2.5.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,7 +34,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.2", - "@airgap/beacon-ui": "^2.5.0-beta.2" + "@airgap/beacon-types": "^2.5.0-beta.3", + "@airgap/beacon-ui": "^2.5.0-beta.3" } } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index d70b66ef8..5429db78a 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "2.5.0-beta.2", + "version": "2.5.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.2", - "@airgap/beacon-utils": "^2.5.0-beta.2", + "@airgap/beacon-types": "^2.5.0-beta.3", + "@airgap/beacon-utils": "^2.5.0-beta.3", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-core/src/constants.ts b/packages/beacon-core/src/constants.ts index 77ca73b9c..5f6bf1581 100644 --- a/packages/beacon-core/src/constants.ts +++ b/packages/beacon-core/src/constants.ts @@ -1,2 +1,2 @@ -export const SDK_VERSION: string = '2.5.0-beta.2' +export const SDK_VERSION: string = '2.5.0-beta.3' export const BEACON_VERSION: string = '3' diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 07fc70724..b3eb1e4d1 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "2.5.0-beta.2", + "version": "2.5.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,10 +35,10 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.2", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.2", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.2", - "@airgap/beacon-ui": "^2.5.0-beta.2", + "@airgap/beacon-core": "^2.5.0-beta.3", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.3", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.3", + "@airgap/beacon-ui": "^2.5.0-beta.3", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-sdk/package.json b/packages/beacon-sdk/package.json index 3dcb62dae..8e3f453bd 100644 --- a/packages/beacon-sdk/package.json +++ b/packages/beacon-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-sdk", - "version": "2.5.0-beta.2", + "version": "2.5.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,15 +35,15 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-blockchain-kusama": "^2.5.0-beta.2", - "@airgap/beacon-blockchain-tezos": "^2.5.0-beta.2", - "@airgap/beacon-core": "^2.5.0-beta.2", - "@airgap/beacon-dapp": "^2.5.0-beta.2", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.2", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.2", - "@airgap/beacon-types": "^2.5.0-beta.2", - "@airgap/beacon-ui": "^2.5.0-beta.2", - "@airgap/beacon-utils": "^2.5.0-beta.2", - "@airgap/beacon-wallet": "^2.5.0-beta.2" + "@airgap/beacon-blockchain-kusama": "^2.5.0-beta.3", + "@airgap/beacon-blockchain-tezos": "^2.5.0-beta.3", + "@airgap/beacon-core": "^2.5.0-beta.3", + "@airgap/beacon-dapp": "^2.5.0-beta.3", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.3", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.3", + "@airgap/beacon-types": "^2.5.0-beta.3", + "@airgap/beacon-ui": "^2.5.0-beta.3", + "@airgap/beacon-utils": "^2.5.0-beta.3", + "@airgap/beacon-wallet": "^2.5.0-beta.3" } } diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index 3c92749bc..fc3c68123 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "2.5.0-beta.2", + "version": "2.5.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.2", - "@airgap/beacon-utils": "^2.5.0-beta.2", + "@airgap/beacon-core": "^2.5.0-beta.3", + "@airgap/beacon-utils": "^2.5.0-beta.3", "axios": "0.24.0" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 0c8a51ae2..3e79d83ae 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "2.5.0-beta.2", + "version": "2.5.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.2", - "@airgap/beacon-types": "^2.5.0-beta.2", - "@airgap/beacon-utils": "^2.5.0-beta.2", + "@airgap/beacon-core": "^2.5.0-beta.3", + "@airgap/beacon-types": "^2.5.0-beta.3", + "@airgap/beacon-utils": "^2.5.0-beta.3", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 4f1f63009..736710b9e 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "2.5.0-beta.2", + "version": "2.5.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index 7397a1dfc..9ce0c1415 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "2.5.0-beta.2", + "version": "2.5.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.2", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.2", - "@airgap/beacon-types": "^2.5.0-beta.2", - "@airgap/beacon-utils": "^2.5.0-beta.2" + "@airgap/beacon-core": "^2.5.0-beta.3", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.3", + "@airgap/beacon-types": "^2.5.0-beta.3", + "@airgap/beacon-utils": "^2.5.0-beta.3" } } diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 83645de90..3ca71cda3 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "2.5.0-beta.2", + "version": "2.5.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index a179a57dd..26a9c3dda 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "2.5.0-beta.2", + "version": "2.5.0-beta.3", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,8 +35,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.2", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.2", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.2" + "@airgap/beacon-core": "^2.5.0-beta.3", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.3", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.3" } } From ad803eb6dcdad7bbdfbadedb4ea342c657ed0cd5 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Fri, 11 Mar 2022 09:54:51 +0100 Subject: [PATCH 108/130] feat(): add account id to account object --- .../src/blockchain.ts | 13 +- .../src/messages/operation-request.ts | 157 -------------- .../beacon-blockchain-kusama/src/types.ts | 196 ++++++++++++------ .../beacon-blockchain-tezos/src/blockchain.ts | 6 +- .../beacon-dapp/src/dapp-client/DAppClient.ts | 14 +- .../src/types/beaconV3/PermissionRequest.ts | 5 +- 6 files changed, 153 insertions(+), 238 deletions(-) diff --git a/packages/beacon-blockchain-kusama/src/blockchain.ts b/packages/beacon-blockchain-kusama/src/blockchain.ts index 6e7e15d7a..e7ee25532 100644 --- a/packages/beacon-blockchain-kusama/src/blockchain.ts +++ b/packages/beacon-blockchain-kusama/src/blockchain.ts @@ -1,5 +1,5 @@ import { Blockchain, BlockchainMessage, ResponseInput } from '@airgap/beacon-types' -import { SubstratePermissionResponse } from './messages/operation-request' +import { SubstratePermissionResponse } from './types' export class SubstrateBlockchain implements Blockchain { public readonly identifier: string = 'substrate' @@ -17,10 +17,13 @@ export class SubstrateBlockchain implements Blockchain { } } - async getAddressFromPermissionResponse( + async getAccountInfosFromPermissionResponse( permissionResponse: SubstratePermissionResponse - ): Promise { - // TODO: Handle multiple accounts - return permissionResponse.blockchainData.accounts.map((account) => `${account.address}`) + ): Promise<{ accountId: string; address: string; publicKey: string }[]> { + return permissionResponse.blockchainData.accounts.map((account) => ({ + accountId: account.accountId, + address: account.address, + publicKey: account.publicKey + })) } } diff --git a/packages/beacon-blockchain-kusama/src/messages/operation-request.ts b/packages/beacon-blockchain-kusama/src/messages/operation-request.ts index c3ccf62f5..e69de29bb 100644 --- a/packages/beacon-blockchain-kusama/src/messages/operation-request.ts +++ b/packages/beacon-blockchain-kusama/src/messages/operation-request.ts @@ -1,157 +0,0 @@ -import { AppMetadata, BlockchainMessage, PermissionResponseV3 } from '@airgap/beacon-types' - -export interface NewPermissionRequest { - blockchainIdentifier: T -} - -export enum SubstratePermissionScope { - 'transfer', - 'sign_payload_json', - 'sign_payload_raw' -} - -export enum SubstrateMessageType { - 'transfer_request', - 'sign_payload_request' -} - -export interface SubstratePermissionRequest extends NewPermissionRequest<'substrate'> { - blockchainData: { - scopes?: string[] // enum - network?: { - genesisHash: string // Wallet shows only those accounts - rpc?: string // For development nodes? - }[] // Array to "whitelist" certain networks? (optional) - } -} -export interface SubstratePermissionResponse extends PermissionResponseV3<'substrate'> { - blockchainData: { - appMetadata: AppMetadata - scopes: string[] // enum - accounts: { - network: { - genesisHash: string - rpc?: string - } - publicKey: string - address: string - }[] - } -} - -export interface SubstrateTransferRequest extends BlockchainMessage<'substrate'> { - blockchainData: { - type: SubstrateMessageType.transfer_request - scope: SubstratePermissionScope.transfer - sourceAddress: string - amount: string - recipient: string - network: { - genesisHash: string - rpc?: string - } - mode: 'submit' | 'submit-and-return' | 'return' // TODO: Wording - } -} -export type SubstrateTransferResponse = - | { - transactionHash: string - } - | { - transactionHash: string - signature: string - payload?: string - } - | { - signature: string - payload?: string - } - -export interface SubstrateSignPayloadRequest extends BlockchainMessage<'substrate'> { - blockchainData: { - type: SubstrateMessageType.sign_payload_request - scope: SubstratePermissionScope.sign_payload_json | SubstratePermissionScope.sign_payload_json - - // This type is the same as the "SignerPayloadJSON" of polkadot.js https://github.com/polkadot-js/api/blob/f169ca08a80ea9c3865dc545e03e921c50f0d284/packages/types/src/types/extrinsic.ts#L32 - payload: - | { - type: 'json' - - /** - * @description The checkpoint hash of the block, in hex - */ - blockHash: string - - /** - * @description The checkpoint block number, in hex - */ - blockNumber: string - - /** - * @description The era for this transaction, in hex - */ - era: string - - /** - * @description The genesis hash of the chain, in hex - */ - genesisHash: string - - /** - * @description The encoded method (with arguments) in hex - */ - method: string - - /** - * @description The nonce for this transaction, in hex - */ - nonce: string - - /** - * @description The current spec version for the runtime - */ - specVersion: string - - /** - * @description The tip for this transaction, in hex - */ - tip: string - - /** - * @description The current transaction version for the runtime - */ - transactionVersion: string - - /** - * @description The applicable signed extensions for this runtime - */ - signedExtensions: string[] - - /** - * @description The version of the extrinsic we are dealing with - */ - version: number - } - | { - type: 'raw' - isMutable: boolean - dataType: 'bytes' | 'payload' - data: string - } - - mode: 'submit' | 'submit-and-return' | 'return' - } -} -export type SubstrateSignPayloadResponse = - | { - transactionHash: string - } - | { - transactionHash: string - signature: string - payload?: string - } - | { - signature: string - payload?: string - } diff --git a/packages/beacon-blockchain-kusama/src/types.ts b/packages/beacon-blockchain-kusama/src/types.ts index c5f32f6f4..5df62f806 100644 --- a/packages/beacon-blockchain-kusama/src/types.ts +++ b/packages/beacon-blockchain-kusama/src/types.ts @@ -1,90 +1,158 @@ -import { - AppMetadata, - BlockchainRequestV3, - BlockchainResponseV3, - PermissionRequestV3, - PermissionResponseV3 -} from '@airgap/beacon-types' - -export interface SubstrateNetwork { - genesisHash: string // Wallet shows only those accounts - rpc?: string // For development nodes? +import { AppMetadata, BlockchainMessage, PermissionResponseV3 } from '@airgap/beacon-types' + +export interface NewPermissionRequest { + blockchainIdentifier: T } -// Those are example permissions export enum SubstratePermissionScope { - TRANSFER = 'transfer', - SIGN_RAW = 'sign_raw', - SIGN_STRING = 'sign_string' + 'transfer', + 'sign_payload_json', + 'sign_payload_raw' +} + +export enum SubstrateMessageType { + 'transfer_request', + 'sign_payload_request' } -export interface SubstratePermissionRequest extends PermissionRequestV3<'substrate'> { +export interface SubstratePermissionRequest extends NewPermissionRequest<'substrate'> { blockchainData: { - appMetadata: AppMetadata - scopes: SubstratePermissionScope[] - networks?: SubstrateNetwork[] // Array to "whitelist" certain networks + scopes?: string[] // enum + network?: { + genesisHash: string // Wallet shows only those accounts + rpc?: string // For development nodes? + }[] // Array to "whitelist" certain networks? (optional) } } export interface SubstratePermissionResponse extends PermissionResponseV3<'substrate'> { blockchainData: { appMetadata: AppMetadata - scopes: SubstratePermissionScope[] + scopes: string[] // enum accounts: { - network: SubstrateNetwork - addressPrefix: number + accountId: string + network: { + genesisHash: string + rpc?: string + } publicKey: string - // should we add a curve type here? + address: string }[] } } -export interface SubstrateTransferRequest extends BlockchainRequestV3<'substrate'> { +export interface SubstrateTransferRequest extends BlockchainMessage<'substrate'> { blockchainData: { - type: '' - scope: SubstratePermissionScope.TRANSFER + type: SubstrateMessageType.transfer_request + scope: SubstratePermissionScope.transfer sourceAddress: string amount: string recipient: string - network: SubstrateNetwork - mode: 'broadcast' | 'broadcast-and-return' | 'return' // TODO: Wording + network: { + genesisHash: string + rpc?: string + } + mode: 'submit' | 'submit-and-return' | 'return' // TODO: Wording } } -export interface SubstrateTransferResponse extends BlockchainResponseV3<'substrate'> { - blockchainData: - | { - transactionHash: string - } - | { - transactionHash: string - payload: string - } - | { - payload: string - } -} +export type SubstrateTransferResponse = + | { + transactionHash: string + } + | { + transactionHash: string + signature: string + payload?: string + } + | { + signature: string + payload?: string + } -export interface SubstrateSignRequest extends BlockchainRequestV3<'substrate'> { - scope: SubstratePermissionScope.SIGN_STRING | SubstratePermissionScope.SIGN_RAW - // Is the Wallet allowed to alter this request (eg. tip?). If yes, payload needs to be sent back - network: SubstrateNetwork - runtimeSpec: { - runtimeVersion: string // Wallet should check if it's the latest version - transactionVersion: string - } - payload: string // SCALE encoded payload - mode: 'broadcast' | 'broadcast-and-return' | 'return' // TODO: Wording -} +export interface SubstrateSignPayloadRequest extends BlockchainMessage<'substrate'> { + blockchainData: { + type: SubstrateMessageType.sign_payload_request + scope: SubstratePermissionScope.sign_payload_json | SubstratePermissionScope.sign_payload_json -export interface SubstrateSignResponse extends BlockchainResponseV3<'substrate'> { - blockchainData: - | { - signature: string - } - | { - signature: string - payload: string - } - | { - payload: string - } + // This type is the same as the "SignerPayloadJSON" of polkadot.js https://github.com/polkadot-js/api/blob/f169ca08a80ea9c3865dc545e03e921c50f0d284/packages/types/src/types/extrinsic.ts#L32 + payload: + | { + type: 'json' + + /** + * @description The checkpoint hash of the block, in hex + */ + blockHash: string + + /** + * @description The checkpoint block number, in hex + */ + blockNumber: string + + /** + * @description The era for this transaction, in hex + */ + era: string + + /** + * @description The genesis hash of the chain, in hex + */ + genesisHash: string + + /** + * @description The encoded method (with arguments) in hex + */ + method: string + + /** + * @description The nonce for this transaction, in hex + */ + nonce: string + + /** + * @description The current spec version for the runtime + */ + specVersion: string + + /** + * @description The tip for this transaction, in hex + */ + tip: string + + /** + * @description The current transaction version for the runtime + */ + transactionVersion: string + + /** + * @description The applicable signed extensions for this runtime + */ + signedExtensions: string[] + + /** + * @description The version of the extrinsic we are dealing with + */ + version: number + } + | { + type: 'raw' + isMutable: boolean + dataType: 'bytes' | 'payload' + data: string + } + + mode: 'submit' | 'submit-and-return' | 'return' + } } +export type SubstrateSignPayloadResponse = + | { + transactionHash: string + } + | { + transactionHash: string + signature: string + payload?: string + } + | { + signature: string + payload?: string + } diff --git a/packages/beacon-blockchain-tezos/src/blockchain.ts b/packages/beacon-blockchain-tezos/src/blockchain.ts index 8aa116e46..5900dec07 100644 --- a/packages/beacon-blockchain-tezos/src/blockchain.ts +++ b/packages/beacon-blockchain-tezos/src/blockchain.ts @@ -20,9 +20,9 @@ export class TezosBlockchain implements Blockchain { } } - async getAddressFromPermissionResponse( + async getAccountInfosFromPermissionResponse( _permissionResponse: PermissionResponseV3<'tezos'> - ): Promise { - return [''] // getAddressFromPublicKey(permissionResponse.publicKey) + ): Promise<{ accountId: string; address: string; publicKey: string }[]> { + return [{ accountId: '', address: '', publicKey: '' }] } } diff --git a/packages/beacon-dapp/src/dapp-client/DAppClient.ts b/packages/beacon-dapp/src/dapp-client/DAppClient.ts index cbe6ee5aa..8c7cf30b3 100644 --- a/packages/beacon-dapp/src/dapp-client/DAppClient.ts +++ b/packages/beacon-dapp/src/dapp-client/DAppClient.ts @@ -598,20 +598,20 @@ export class DAppClient extends Client { console.log('RESPONSE V3', response, connectionInfo) - const addresses = await blockchain.getAddressFromPermissionResponse(response.message) + const partialAccountInfos = await blockchain.getAccountInfosFromPermissionResponse( + response.message + ) // const accountInfo: AccountInfo = { const accountInfo: any = { - accountIdentifier: Array.isArray(response.message.accountId) - ? response.message.accountId[0] - : response.message.accountId, + accountIdentifier: partialAccountInfos[0].accountId, senderId: response.senderId, origin: { type: connectionInfo.origin, id: connectionInfo.id }, - address: addresses[0], // Store all addresses - publicKey: '', + address: partialAccountInfos[0].address, // Store all addresses + publicKey: partialAccountInfos[0].publicKey, scopes: response.message.blockchainData.scopes as any, connectedAt: new Date().getTime(), chainData: response.message.blockchainData @@ -632,7 +632,7 @@ export class DAppClient extends Client { await this.notifySuccess(request as any, { account: accountInfo, output: { - address: addresses[0], + address: partialAccountInfos[0].address, network: { type: NetworkType.MAINNET }, scopes: [PermissionScope.OPERATION_REQUEST] } as any, diff --git a/packages/beacon-types/src/types/beaconV3/PermissionRequest.ts b/packages/beacon-types/src/types/beaconV3/PermissionRequest.ts index 6270b6564..abc5c936f 100644 --- a/packages/beacon-types/src/types/beaconV3/PermissionRequest.ts +++ b/packages/beacon-types/src/types/beaconV3/PermissionRequest.ts @@ -20,7 +20,9 @@ export interface Blockchain { validateRequest(input: BlockchainMessage): Promise handleResponse(input: ResponseInput): Promise - getAddressFromPermissionResponse(permissionResponse: PermissionResponseV3): Promise + getAccountInfosFromPermissionResponse( + permissionResponse: PermissionResponseV3 + ): Promise<{ accountId: string; address: string; publicKey: string }[]> } export interface BeaconMessageWrapper { @@ -51,7 +53,6 @@ export interface PermissionRequestV3 extends Blockcha export interface PermissionResponseV3 extends BlockchainMessage { blockchainIdentifier: T type: BeaconMessageType.PermissionResponse - accountId: string blockchainData: { appMetadata: AppMetadata // Some additional information about the Wallet scopes: string[] // Permissions that have been granted for this specific address / account From 90acde43c43ea6bab8ea06ff7b282124b35585c9 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Fri, 11 Mar 2022 09:55:34 +0100 Subject: [PATCH 109/130] chore(release): v2.5.0-beta.4 --- lerna.json | 2 +- .../beacon-blockchain-kusama/package.json | 6 ++--- packages/beacon-blockchain-tezos/package.json | 6 ++--- packages/beacon-core/package.json | 6 ++--- packages/beacon-core/src/constants.ts | 2 +- packages/beacon-dapp/package.json | 10 ++++----- packages/beacon-sdk/package.json | 22 +++++++++---------- packages/beacon-transport-matrix/package.json | 6 ++--- .../beacon-transport-postmessage/package.json | 8 +++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 10 ++++----- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 +++---- 13 files changed, 45 insertions(+), 45 deletions(-) diff --git a/lerna.json b/lerna.json index 8c0c0575c..ddf8b7896 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "2.5.0-beta.3" + "version": "2.5.0-beta.4" } diff --git a/packages/beacon-blockchain-kusama/package.json b/packages/beacon-blockchain-kusama/package.json index f4c93f5ae..2feab5b9e 100644 --- a/packages/beacon-blockchain-kusama/package.json +++ b/packages/beacon-blockchain-kusama/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-kusama", - "version": "2.5.0-beta.3", + "version": "2.5.0-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,7 +34,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.3", - "@airgap/beacon-ui": "^2.5.0-beta.3" + "@airgap/beacon-types": "^2.5.0-beta.4", + "@airgap/beacon-ui": "^2.5.0-beta.4" } } diff --git a/packages/beacon-blockchain-tezos/package.json b/packages/beacon-blockchain-tezos/package.json index 4249d2236..d53d3a2b6 100644 --- a/packages/beacon-blockchain-tezos/package.json +++ b/packages/beacon-blockchain-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-tezos", - "version": "2.5.0-beta.3", + "version": "2.5.0-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,7 +34,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.3", - "@airgap/beacon-ui": "^2.5.0-beta.3" + "@airgap/beacon-types": "^2.5.0-beta.4", + "@airgap/beacon-ui": "^2.5.0-beta.4" } } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 5429db78a..79ef0ae55 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "2.5.0-beta.3", + "version": "2.5.0-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.3", - "@airgap/beacon-utils": "^2.5.0-beta.3", + "@airgap/beacon-types": "^2.5.0-beta.4", + "@airgap/beacon-utils": "^2.5.0-beta.4", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-core/src/constants.ts b/packages/beacon-core/src/constants.ts index 5f6bf1581..85af0c3e3 100644 --- a/packages/beacon-core/src/constants.ts +++ b/packages/beacon-core/src/constants.ts @@ -1,2 +1,2 @@ -export const SDK_VERSION: string = '2.5.0-beta.3' +export const SDK_VERSION: string = '2.5.0-beta.4' export const BEACON_VERSION: string = '3' diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index b3eb1e4d1..d76b20223 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "2.5.0-beta.3", + "version": "2.5.0-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,10 +35,10 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.3", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.3", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.3", - "@airgap/beacon-ui": "^2.5.0-beta.3", + "@airgap/beacon-core": "^2.5.0-beta.4", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.4", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.4", + "@airgap/beacon-ui": "^2.5.0-beta.4", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-sdk/package.json b/packages/beacon-sdk/package.json index 8e3f453bd..21cc26431 100644 --- a/packages/beacon-sdk/package.json +++ b/packages/beacon-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-sdk", - "version": "2.5.0-beta.3", + "version": "2.5.0-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,15 +35,15 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-blockchain-kusama": "^2.5.0-beta.3", - "@airgap/beacon-blockchain-tezos": "^2.5.0-beta.3", - "@airgap/beacon-core": "^2.5.0-beta.3", - "@airgap/beacon-dapp": "^2.5.0-beta.3", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.3", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.3", - "@airgap/beacon-types": "^2.5.0-beta.3", - "@airgap/beacon-ui": "^2.5.0-beta.3", - "@airgap/beacon-utils": "^2.5.0-beta.3", - "@airgap/beacon-wallet": "^2.5.0-beta.3" + "@airgap/beacon-blockchain-kusama": "^2.5.0-beta.4", + "@airgap/beacon-blockchain-tezos": "^2.5.0-beta.4", + "@airgap/beacon-core": "^2.5.0-beta.4", + "@airgap/beacon-dapp": "^2.5.0-beta.4", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.4", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.4", + "@airgap/beacon-types": "^2.5.0-beta.4", + "@airgap/beacon-ui": "^2.5.0-beta.4", + "@airgap/beacon-utils": "^2.5.0-beta.4", + "@airgap/beacon-wallet": "^2.5.0-beta.4" } } diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index fc3c68123..cf3f48f4b 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "2.5.0-beta.3", + "version": "2.5.0-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.3", - "@airgap/beacon-utils": "^2.5.0-beta.3", + "@airgap/beacon-core": "^2.5.0-beta.4", + "@airgap/beacon-utils": "^2.5.0-beta.4", "axios": "0.24.0" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 3e79d83ae..d3b381202 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "2.5.0-beta.3", + "version": "2.5.0-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.3", - "@airgap/beacon-types": "^2.5.0-beta.3", - "@airgap/beacon-utils": "^2.5.0-beta.3", + "@airgap/beacon-core": "^2.5.0-beta.4", + "@airgap/beacon-types": "^2.5.0-beta.4", + "@airgap/beacon-utils": "^2.5.0-beta.4", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 736710b9e..b070b49ed 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "2.5.0-beta.3", + "version": "2.5.0-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index 9ce0c1415..09ad20346 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "2.5.0-beta.3", + "version": "2.5.0-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.3", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.3", - "@airgap/beacon-types": "^2.5.0-beta.3", - "@airgap/beacon-utils": "^2.5.0-beta.3" + "@airgap/beacon-core": "^2.5.0-beta.4", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.4", + "@airgap/beacon-types": "^2.5.0-beta.4", + "@airgap/beacon-utils": "^2.5.0-beta.4" } } diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 3ca71cda3..ef854ab46 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "2.5.0-beta.3", + "version": "2.5.0-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 26a9c3dda..eb91337cd 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "2.5.0-beta.3", + "version": "2.5.0-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,8 +35,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.3", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.3", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.3" + "@airgap/beacon-core": "^2.5.0-beta.4", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.4", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.4" } } From 98e15288d4662896e4d3a8160539869dcb5035ff Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Tue, 15 Mar 2022 14:59:32 +0100 Subject: [PATCH 110/130] feat(): merge master --- packages/beacon-dapp/src/ui/alert/Pairing.ts | 14 +++++++------- .../src/utils/tezblock-blockexplorer.ts | 4 ++-- .../beacon-types/src/types/beacon/NetworkType.ts | 2 +- scripts/generate-wallet-list.ts | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/beacon-dapp/src/ui/alert/Pairing.ts b/packages/beacon-dapp/src/ui/alert/Pairing.ts index 921a662b3..27f7bc667 100644 --- a/packages/beacon-dapp/src/ui/alert/Pairing.ts +++ b/packages/beacon-dapp/src/ui/alert/Pairing.ts @@ -54,7 +54,7 @@ export interface WebApp extends AppBase { [NetworkType.FLORENCENET]?: string [NetworkType.GRANADANET]?: string [NetworkType.HANGZHOUNET]?: string - [NetworkType.IDIAZABALNET]?: string + [NetworkType.ITHACANET]?: string [NetworkType.CUSTOM]?: string } } @@ -317,9 +317,9 @@ export class Pairing { { title: 'Web Wallets', type: WalletType.WEB, - wallets: [...(await Pairing.getWebList(pairingCode, statusUpdateHandler, network))].sort( - (a, b) => a.key.localeCompare(b.key) - ) + wallets: [ + ...(await Pairing.getWebList(pairingCode, statusUpdateHandler, network)) + ].sort((a, b) => a.key.localeCompare(b.key)) } ], buttons: [] @@ -336,9 +336,9 @@ export class Pairing { { title: 'Web Wallets', type: WalletType.WEB, - wallets: [...(await Pairing.getWebList(pairingCode, statusUpdateHandler, network))].sort( - (a, b) => a.key.localeCompare(b.key) - ) + wallets: [ + ...(await Pairing.getWebList(pairingCode, statusUpdateHandler, network)) + ].sort((a, b) => a.key.localeCompare(b.key)) } ], buttons: [ diff --git a/packages/beacon-dapp/src/utils/tezblock-blockexplorer.ts b/packages/beacon-dapp/src/utils/tezblock-blockexplorer.ts index 818929e02..fd6f71aea 100644 --- a/packages/beacon-dapp/src/utils/tezblock-blockexplorer.ts +++ b/packages/beacon-dapp/src/utils/tezblock-blockexplorer.ts @@ -10,8 +10,8 @@ export class TezblockBlockExplorer extends BlockExplorer { [NetworkType.FLORENCENET]: 'https://florencenet.tezblock.io', [NetworkType.GRANADANET]: 'https://granadanet.tezblock.io', [NetworkType.HANGZHOUNET]: 'https://hangzhounet.tezblock.io', - [NetworkType.IDIAZABALNET]: 'https://idiazabalnet.tezblock.io', - [NetworkType.CUSTOM]: 'https://granadanet.tezblock.io' + [NetworkType.ITHACANET]: 'https://ithacanet.tezblock.io', + [NetworkType.CUSTOM]: 'https://ithacanet.tezblock.io' } ) { super(rpcUrls) diff --git a/packages/beacon-types/src/types/beacon/NetworkType.ts b/packages/beacon-types/src/types/beacon/NetworkType.ts index 03eae9ca2..3af1c86da 100644 --- a/packages/beacon-types/src/types/beacon/NetworkType.ts +++ b/packages/beacon-types/src/types/beacon/NetworkType.ts @@ -5,6 +5,6 @@ export enum NetworkType { FLORENCENET = 'florencenet', GRANADANET = 'granadanet', HANGZHOUNET = 'hangzhounet', - IDIAZABALNET = 'idiazabalnet', + ITHACANET = 'ithacanet', CUSTOM = 'custom' } diff --git a/scripts/generate-wallet-list.ts b/scripts/generate-wallet-list.ts index c9d79a150..979fb45ce 100644 --- a/scripts/generate-wallet-list.ts +++ b/scripts/generate-wallet-list.ts @@ -44,7 +44,7 @@ export const webList: WebApp[] = [ [NetworkType.FLORENCENET]: 'https://florencenet.kukai.app', [NetworkType.GRANADANET]: 'https://granadanet.kukai.app', [NetworkType.HANGZHOUNET]: 'https://hangzhounet.kukai.app', - [NetworkType.IDIAZABALNET]: 'https://idiazabalnet.kukai.app' + [NetworkType.ITHACANET]: 'https://ithacanet.kukai.app' } } ] From 93c4c1aa69bc7d411dc90a19bfba9adb90bec5ce Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Tue, 15 Mar 2022 17:23:54 +0100 Subject: [PATCH 111/130] fix(): tezos network --- scripts/blockchains/tezos.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/blockchains/tezos.ts b/scripts/blockchains/tezos.ts index 392434258..76d4a7952 100644 --- a/scripts/blockchains/tezos.ts +++ b/scripts/blockchains/tezos.ts @@ -13,7 +13,7 @@ export enum NetworkType { FLORENCENET = 'florencenet', GRANADANET = 'granadanet', HANGZHOUNET = 'hangzhounet', - IDIAZABALNET = 'idiazabalnet', + ITHACANET = 'ithacanet', CUSTOM = 'custom' } @@ -52,7 +52,7 @@ export const tezosWebList: WebApp[] = [ [NetworkType.FLORENCENET]: 'https://florencenet.kukai.app', [NetworkType.GRANADANET]: 'https://granadanet.kukai.app', [NetworkType.HANGZHOUNET]: 'https://hangzhounet.kukai.app', - [NetworkType.IDIAZABALNET]: 'https://idiazabalnet.kukai.app' + [NetworkType.ITHACANET]: 'https://ithacanet.kukai.app' } } ] From 4738c581baa2a6ba98cc9ec5a2ae5e382f10507e Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Tue, 15 Mar 2022 17:30:52 +0100 Subject: [PATCH 112/130] feat(): rename kusama to substrate --- .gitignore | 6 +- package-lock.json | 122 +++++++++--------- package.json | 2 +- .../README.md | 4 +- .../beacon-protocol-substrate.spec.ts | 2 +- .../package.json | 2 +- .../src/blockchain.ts | 0 .../src/index.ts | 0 .../src/messages/operation-request.ts | 0 .../src/messages/operation-resonse.ts | 0 .../src/messages/permission-request.ts | 0 .../src/messages/permission-response.ts | 0 .../src/messages/sign-request.ts | 0 .../src/messages/sign-response.ts | 0 .../src/types.ts | 0 .../src/util/is-kusama-message.ts | 0 .../tsconfig-cjs.json | 0 .../tsconfig.json | 2 +- packages/beacon-sdk/package.json | 2 +- packages/beacon-sdk/src/index.ts | 2 +- scripts/generate-wallet-list.ts | 2 +- tsconfig.json | 6 +- 22 files changed, 76 insertions(+), 76 deletions(-) rename packages/{beacon-blockchain-kusama => beacon-blockchain-substrate}/README.md (71%) rename packages/{beacon-blockchain-kusama => beacon-blockchain-substrate}/__tests__/beacon-protocol-substrate.spec.ts (59%) rename packages/{beacon-blockchain-kusama => beacon-blockchain-substrate}/package.json (95%) rename packages/{beacon-blockchain-kusama => beacon-blockchain-substrate}/src/blockchain.ts (100%) rename packages/{beacon-blockchain-kusama => beacon-blockchain-substrate}/src/index.ts (100%) rename packages/{beacon-blockchain-kusama => beacon-blockchain-substrate}/src/messages/operation-request.ts (100%) rename packages/{beacon-blockchain-kusama => beacon-blockchain-substrate}/src/messages/operation-resonse.ts (100%) rename packages/{beacon-blockchain-kusama => beacon-blockchain-substrate}/src/messages/permission-request.ts (100%) rename packages/{beacon-blockchain-kusama => beacon-blockchain-substrate}/src/messages/permission-response.ts (100%) rename packages/{beacon-blockchain-kusama => beacon-blockchain-substrate}/src/messages/sign-request.ts (100%) rename packages/{beacon-blockchain-kusama => beacon-blockchain-substrate}/src/messages/sign-response.ts (100%) rename packages/{beacon-blockchain-kusama => beacon-blockchain-substrate}/src/types.ts (100%) rename packages/{beacon-blockchain-kusama => beacon-blockchain-substrate}/src/util/is-kusama-message.ts (100%) rename packages/{beacon-blockchain-kusama => beacon-blockchain-substrate}/tsconfig-cjs.json (100%) rename packages/{beacon-blockchain-kusama => beacon-blockchain-substrate}/tsconfig.json (74%) diff --git a/.gitignore b/.gitignore index c91243392..68231c55b 100644 --- a/.gitignore +++ b/.gitignore @@ -79,9 +79,9 @@ docs packages/beacon-blockchain-tezos/src/ui/alert/alert-templates.ts packages/beacon-blockchain-tezos/src/ui/alert/wallet-lists.ts packages/beacon-blockchain-tezos/src/ui/toast/toast-templates.ts -packages/beacon-blockchain-kusama/src/ui/alert/alert-templates.ts -packages/beacon-blockchain-kusama/src/ui/alert/wallet-lists.ts -packages/beacon-blockchain-kusama/src/ui/toast/toast-templates.ts +packages/beacon-blockchain-substrate/src/ui/alert/alert-templates.ts +packages/beacon-blockchain-substrate/src/ui/alert/wallet-lists.ts +packages/beacon-blockchain-substrate/src/ui/toast/toast-templates.ts packages/beacon-ui/src/ui/alert/alert-templates.ts packages/beacon-ui/src/ui/alert/wallet-lists.ts packages/beacon-ui/src/ui/toast/toast-templates.ts \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 6975b6fbd..c91c6f027 100755 --- a/package-lock.json +++ b/package-lock.json @@ -7,7 +7,7 @@ "name": "@airgap/beacon-sdk", "license": "MIT", "dependencies": { - "@airgap/beacon-blockchain-kusama": "file:packages/beacon-blockchain-kusama", + "@airgap/beacon-blockchain-substrate": "file:packages/beacon-blockchain-substrate", "@airgap/beacon-blockchain-tezos": "file:packages/beacon-blockchain-tezos", "@airgap/beacon-core": "file:packages/beacon-core", "@airgap/beacon-dapp": "file:packages/beacon-dapp", @@ -58,8 +58,8 @@ "uglify-js": "3.14.3" } }, - "node_modules/@airgap/beacon-blockchain-kusama": { - "resolved": "packages/beacon-blockchain-kusama", + "node_modules/@airgap/beacon-blockchain-substrate": { + "resolved": "packages/beacon-blockchain-substrate", "link": true }, "node_modules/@airgap/beacon-blockchain-tezos": { @@ -15554,31 +15554,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/beacon-blockchain-kusama": { - "name": "@airgap/beacon-blockchain-kusama", - "version": "2.5.0-beta.2", + "packages/beacon-blockchain-substrate": { + "name": "@airgap/beacon-blockchain-substrate", + "version": "2.5.0-beta.4", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.2", - "@airgap/beacon-ui": "^2.5.0-beta.2" + "@airgap/beacon-types": "^2.5.0-beta.4", + "@airgap/beacon-ui": "^2.5.0-beta.4" } }, "packages/beacon-blockchain-tezos": { "name": "@airgap/beacon-blockchain-tezos", - "version": "2.5.0-beta.2", + "version": "2.5.0-beta.4", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.2", - "@airgap/beacon-ui": "^2.5.0-beta.2" + "@airgap/beacon-types": "^2.5.0-beta.4", + "@airgap/beacon-ui": "^2.5.0-beta.4" } }, "packages/beacon-core": { "name": "@airgap/beacon-core", - "version": "2.5.0-beta.2", + "version": "2.5.0-beta.4", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.2", - "@airgap/beacon-utils": "^2.5.0-beta.2", + "@airgap/beacon-types": "^2.5.0-beta.4", + "@airgap/beacon-utils": "^2.5.0-beta.4", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15586,41 +15586,41 @@ }, "packages/beacon-dapp": { "name": "@airgap/beacon-dapp", - "version": "2.5.0-beta.2", + "version": "2.5.0-beta.4", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.2", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.2", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.2", - "@airgap/beacon-ui": "^2.5.0-beta.2", + "@airgap/beacon-core": "^2.5.0-beta.4", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.4", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.4", + "@airgap/beacon-ui": "^2.5.0-beta.4", "qrcode-generator": "1.4.4" } }, "packages/beacon-transport-matrix": { "name": "@airgap/beacon-transport-matrix", - "version": "2.5.0-beta.2", + "version": "2.5.0-beta.4", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.2", - "@airgap/beacon-utils": "^2.5.0-beta.2", + "@airgap/beacon-core": "^2.5.0-beta.4", + "@airgap/beacon-utils": "^2.5.0-beta.4", "axios": "0.24.0" } }, "packages/beacon-transport-postmessage": { "name": "@airgap/beacon-transport-postmessage", - "version": "2.5.0-beta.2", + "version": "2.5.0-beta.4", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.2", - "@airgap/beacon-types": "^2.5.0-beta.2", - "@airgap/beacon-utils": "^2.5.0-beta.2", + "@airgap/beacon-core": "^2.5.0-beta.4", + "@airgap/beacon-types": "^2.5.0-beta.4", + "@airgap/beacon-utils": "^2.5.0-beta.4", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } }, "packages/beacon-types": { "name": "@airgap/beacon-types", - "version": "2.5.0-beta.2", + "version": "2.5.0-beta.4", "license": "ISC", "dependencies": { "@types/chrome": "0.0.163" @@ -15628,18 +15628,18 @@ }, "packages/beacon-ui": { "name": "@airgap/beacon-ui", - "version": "2.5.0-beta.2", + "version": "2.5.0-beta.4", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.2", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.2", - "@airgap/beacon-types": "^2.5.0-beta.2", - "@airgap/beacon-utils": "^2.5.0-beta.2" + "@airgap/beacon-core": "^2.5.0-beta.4", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.4", + "@airgap/beacon-types": "^2.5.0-beta.4", + "@airgap/beacon-utils": "^2.5.0-beta.4" } }, "packages/beacon-utils": { "name": "@airgap/beacon-utils", - "version": "2.5.0-beta.2", + "version": "2.5.0-beta.4", "license": "ISC", "dependencies": { "@types/libsodium-wrappers": "0.7.9", @@ -15649,35 +15649,35 @@ }, "packages/beacon-wallet": { "name": "@airgap/beacon-wallet", - "version": "2.5.0-beta.2", + "version": "2.5.0-beta.4", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.2", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.2", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.2" + "@airgap/beacon-core": "^2.5.0-beta.4", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.4", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.4" } } }, "dependencies": { - "@airgap/beacon-blockchain-kusama": { - "version": "file:packages/beacon-blockchain-kusama", + "@airgap/beacon-blockchain-substrate": { + "version": "file:packages/beacon-blockchain-substrate", "requires": { - "@airgap/beacon-types": "^2.5.0-beta.2", - "@airgap/beacon-ui": "^2.5.0-beta.2" + "@airgap/beacon-types": "^2.5.0-beta.4", + "@airgap/beacon-ui": "^2.5.0-beta.4" } }, "@airgap/beacon-blockchain-tezos": { "version": "file:packages/beacon-blockchain-tezos", "requires": { - "@airgap/beacon-types": "^2.5.0-beta.2", - "@airgap/beacon-ui": "^2.5.0-beta.2" + "@airgap/beacon-types": "^2.5.0-beta.4", + "@airgap/beacon-ui": "^2.5.0-beta.4" } }, "@airgap/beacon-core": { "version": "file:packages/beacon-core", "requires": { - "@airgap/beacon-types": "^2.5.0-beta.2", - "@airgap/beacon-utils": "^2.5.0-beta.2", + "@airgap/beacon-types": "^2.5.0-beta.4", + "@airgap/beacon-utils": "^2.5.0-beta.4", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15686,27 +15686,27 @@ "@airgap/beacon-dapp": { "version": "file:packages/beacon-dapp", "requires": { - "@airgap/beacon-core": "^2.5.0-beta.2", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.2", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.2", - "@airgap/beacon-ui": "^2.5.0-beta.2", + "@airgap/beacon-core": "^2.5.0-beta.4", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.4", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.4", + "@airgap/beacon-ui": "^2.5.0-beta.4", "qrcode-generator": "1.4.4" } }, "@airgap/beacon-transport-matrix": { "version": "file:packages/beacon-transport-matrix", "requires": { - "@airgap/beacon-core": "^2.5.0-beta.2", - "@airgap/beacon-utils": "^2.5.0-beta.2", + "@airgap/beacon-core": "^2.5.0-beta.4", + "@airgap/beacon-utils": "^2.5.0-beta.4", "axios": "0.24.0" } }, "@airgap/beacon-transport-postmessage": { "version": "file:packages/beacon-transport-postmessage", "requires": { - "@airgap/beacon-core": "^2.5.0-beta.2", - "@airgap/beacon-types": "^2.5.0-beta.2", - "@airgap/beacon-utils": "^2.5.0-beta.2", + "@airgap/beacon-core": "^2.5.0-beta.4", + "@airgap/beacon-types": "^2.5.0-beta.4", + "@airgap/beacon-utils": "^2.5.0-beta.4", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } @@ -15720,10 +15720,10 @@ "@airgap/beacon-ui": { "version": "file:packages/beacon-ui", "requires": { - "@airgap/beacon-core": "^2.5.0-beta.2", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.2", - "@airgap/beacon-types": "^2.5.0-beta.2", - "@airgap/beacon-utils": "^2.5.0-beta.2" + "@airgap/beacon-core": "^2.5.0-beta.4", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.4", + "@airgap/beacon-types": "^2.5.0-beta.4", + "@airgap/beacon-utils": "^2.5.0-beta.4" } }, "@airgap/beacon-utils": { @@ -15737,9 +15737,9 @@ "@airgap/beacon-wallet": { "version": "file:packages/beacon-wallet", "requires": { - "@airgap/beacon-core": "^2.5.0-beta.2", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.2", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.2" + "@airgap/beacon-core": "^2.5.0-beta.4", + "@airgap/beacon-transport-matrix": "^2.5.0-beta.4", + "@airgap/beacon-transport-postmessage": "^2.5.0-beta.4" } }, "@babel/code-frame": { diff --git a/package.json b/package.json index 1e64fbb50..a9998755a 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ }, "author": "Papers GmbH (https://papers.ch)", "dependencies": { - "@airgap/beacon-blockchain-kusama": "file:packages/beacon-blockchain-kusama", + "@airgap/beacon-blockchain-substrate": "file:packages/beacon-blockchain-substrate", "@airgap/beacon-blockchain-tezos": "file:packages/beacon-blockchain-tezos", "@airgap/beacon-core": "file:packages/beacon-core", "@airgap/beacon-dapp": "file:packages/beacon-dapp", diff --git a/packages/beacon-blockchain-kusama/README.md b/packages/beacon-blockchain-substrate/README.md similarity index 71% rename from packages/beacon-blockchain-kusama/README.md rename to packages/beacon-blockchain-substrate/README.md index c655d41e4..7cee592f3 100644 --- a/packages/beacon-blockchain-kusama/README.md +++ b/packages/beacon-blockchain-substrate/README.md @@ -1,11 +1,11 @@ -# `@airgap/beacon-blockchain-kusama` +# `@airgap/beacon-blockchain-substrate` > TODO: description ## Usage ``` -const beaconProtocolkusama = require('@airgap/beacon-blockchain-kusama'); +const beaconProtocolkusama = require('@airgap/beacon-blockchain-substrate'); // TODO: DEMONSTRATE API ``` diff --git a/packages/beacon-blockchain-kusama/__tests__/beacon-protocol-substrate.spec.ts b/packages/beacon-blockchain-substrate/__tests__/beacon-protocol-substrate.spec.ts similarity index 59% rename from packages/beacon-blockchain-kusama/__tests__/beacon-protocol-substrate.spec.ts rename to packages/beacon-blockchain-substrate/__tests__/beacon-protocol-substrate.spec.ts index 292b49f0a..516b77288 100644 --- a/packages/beacon-blockchain-kusama/__tests__/beacon-protocol-substrate.spec.ts +++ b/packages/beacon-blockchain-substrate/__tests__/beacon-protocol-substrate.spec.ts @@ -2,6 +2,6 @@ const beaconProtocolkusama = require('..') -describe('@airgap/beacon-blockchain-kusama', () => { +describe('@airgap/beacon-blockchain-substrate', () => { it('needs tests') }) diff --git a/packages/beacon-blockchain-kusama/package.json b/packages/beacon-blockchain-substrate/package.json similarity index 95% rename from packages/beacon-blockchain-kusama/package.json rename to packages/beacon-blockchain-substrate/package.json index 2feab5b9e..1bf534615 100644 --- a/packages/beacon-blockchain-kusama/package.json +++ b/packages/beacon-blockchain-substrate/package.json @@ -1,5 +1,5 @@ { - "name": "@airgap/beacon-blockchain-kusama", + "name": "@airgap/beacon-blockchain-substrate", "version": "2.5.0-beta.4", "description": "> TODO: description", "author": "Andreas Gassmann ", diff --git a/packages/beacon-blockchain-kusama/src/blockchain.ts b/packages/beacon-blockchain-substrate/src/blockchain.ts similarity index 100% rename from packages/beacon-blockchain-kusama/src/blockchain.ts rename to packages/beacon-blockchain-substrate/src/blockchain.ts diff --git a/packages/beacon-blockchain-kusama/src/index.ts b/packages/beacon-blockchain-substrate/src/index.ts similarity index 100% rename from packages/beacon-blockchain-kusama/src/index.ts rename to packages/beacon-blockchain-substrate/src/index.ts diff --git a/packages/beacon-blockchain-kusama/src/messages/operation-request.ts b/packages/beacon-blockchain-substrate/src/messages/operation-request.ts similarity index 100% rename from packages/beacon-blockchain-kusama/src/messages/operation-request.ts rename to packages/beacon-blockchain-substrate/src/messages/operation-request.ts diff --git a/packages/beacon-blockchain-kusama/src/messages/operation-resonse.ts b/packages/beacon-blockchain-substrate/src/messages/operation-resonse.ts similarity index 100% rename from packages/beacon-blockchain-kusama/src/messages/operation-resonse.ts rename to packages/beacon-blockchain-substrate/src/messages/operation-resonse.ts diff --git a/packages/beacon-blockchain-kusama/src/messages/permission-request.ts b/packages/beacon-blockchain-substrate/src/messages/permission-request.ts similarity index 100% rename from packages/beacon-blockchain-kusama/src/messages/permission-request.ts rename to packages/beacon-blockchain-substrate/src/messages/permission-request.ts diff --git a/packages/beacon-blockchain-kusama/src/messages/permission-response.ts b/packages/beacon-blockchain-substrate/src/messages/permission-response.ts similarity index 100% rename from packages/beacon-blockchain-kusama/src/messages/permission-response.ts rename to packages/beacon-blockchain-substrate/src/messages/permission-response.ts diff --git a/packages/beacon-blockchain-kusama/src/messages/sign-request.ts b/packages/beacon-blockchain-substrate/src/messages/sign-request.ts similarity index 100% rename from packages/beacon-blockchain-kusama/src/messages/sign-request.ts rename to packages/beacon-blockchain-substrate/src/messages/sign-request.ts diff --git a/packages/beacon-blockchain-kusama/src/messages/sign-response.ts b/packages/beacon-blockchain-substrate/src/messages/sign-response.ts similarity index 100% rename from packages/beacon-blockchain-kusama/src/messages/sign-response.ts rename to packages/beacon-blockchain-substrate/src/messages/sign-response.ts diff --git a/packages/beacon-blockchain-kusama/src/types.ts b/packages/beacon-blockchain-substrate/src/types.ts similarity index 100% rename from packages/beacon-blockchain-kusama/src/types.ts rename to packages/beacon-blockchain-substrate/src/types.ts diff --git a/packages/beacon-blockchain-kusama/src/util/is-kusama-message.ts b/packages/beacon-blockchain-substrate/src/util/is-kusama-message.ts similarity index 100% rename from packages/beacon-blockchain-kusama/src/util/is-kusama-message.ts rename to packages/beacon-blockchain-substrate/src/util/is-kusama-message.ts diff --git a/packages/beacon-blockchain-kusama/tsconfig-cjs.json b/packages/beacon-blockchain-substrate/tsconfig-cjs.json similarity index 100% rename from packages/beacon-blockchain-kusama/tsconfig-cjs.json rename to packages/beacon-blockchain-substrate/tsconfig-cjs.json diff --git a/packages/beacon-blockchain-kusama/tsconfig.json b/packages/beacon-blockchain-substrate/tsconfig.json similarity index 74% rename from packages/beacon-blockchain-kusama/tsconfig.json rename to packages/beacon-blockchain-substrate/tsconfig.json index 31b17af52..cd5d9a233 100644 --- a/packages/beacon-blockchain-kusama/tsconfig.json +++ b/packages/beacon-blockchain-substrate/tsconfig.json @@ -4,7 +4,7 @@ "outDir": "./dist/esm", "baseUrl": ".", "paths": { - "@airgap/beacon-blockchain-kusama": ["./src"] + "@airgap/beacon-blockchain-substrate": ["./src"] } }, "include": ["./src"] diff --git a/packages/beacon-sdk/package.json b/packages/beacon-sdk/package.json index 21cc26431..6acfa1877 100644 --- a/packages/beacon-sdk/package.json +++ b/packages/beacon-sdk/package.json @@ -35,7 +35,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-blockchain-kusama": "^2.5.0-beta.4", + "@airgap/beacon-blockchain-substrate": "^2.5.0-beta.4", "@airgap/beacon-blockchain-tezos": "^2.5.0-beta.4", "@airgap/beacon-core": "^2.5.0-beta.4", "@airgap/beacon-dapp": "^2.5.0-beta.4", diff --git a/packages/beacon-sdk/src/index.ts b/packages/beacon-sdk/src/index.ts index 1ea0ab4cd..1cdb99e33 100644 --- a/packages/beacon-sdk/src/index.ts +++ b/packages/beacon-sdk/src/index.ts @@ -1,4 +1,4 @@ -export * from '@airgap/beacon-blockchain-kusama' +export * from '@airgap/beacon-blockchain-substrate' export * from '@airgap/beacon-blockchain-tezos' export * from '@airgap/beacon-core' export * from '@airgap/beacon-dapp' diff --git a/scripts/generate-wallet-list.ts b/scripts/generate-wallet-list.ts index 2ca4c7c51..ebaea0a41 100644 --- a/scripts/generate-wallet-list.ts +++ b/scripts/generate-wallet-list.ts @@ -185,7 +185,7 @@ generateForBlockchains( ) generateForBlockchains( - 'beacon-blockchain-kusama', + 'beacon-blockchain-substrate', substrateExtensionList, substrateDesktopList, substrateWebList, diff --git a/tsconfig.json b/tsconfig.json index 262d7a1ff..2a3ace0f7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -27,9 +27,9 @@ "paths": { "beacon-core": ["packages/beacon-core/lib/beacon-core", "packages/beacon-core/lib"], "beacon-dapp": ["packages/beacon-dapp/lib/beacon-dapp", "packages/beacon-dapp/lib"], - "beacon-blockchain-kusama": [ - "packages/beacon-blockchain-kusama/lib/beacon-blockchain-kusama", - "packages/beacon-blockchain-kusama/lib" + "beacon-blockchain-substrate": [ + "packages/beacon-blockchain-substrate/lib/beacon-blockchain-substrate", + "packages/beacon-blockchain-substrate/lib" ], "beacon-blockchain-tezos": [ "packages/beacon-blockchain-tezos/lib/beacon-blockchain-tezos", From 0f88f3133222a5caf7474247613297e72aeb01e8 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 23 Mar 2022 10:16:53 -0300 Subject: [PATCH 113/130] fix(): substrate types --- .../beacon-blockchain-substrate/README.md | 2 +- .../beacon-protocol-substrate.spec.ts | 2 +- .../beacon-blockchain-substrate/src/types.ts | 26 ++++++++++++------- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/packages/beacon-blockchain-substrate/README.md b/packages/beacon-blockchain-substrate/README.md index 7cee592f3..e750f875f 100644 --- a/packages/beacon-blockchain-substrate/README.md +++ b/packages/beacon-blockchain-substrate/README.md @@ -5,7 +5,7 @@ ## Usage ``` -const beaconProtocolkusama = require('@airgap/beacon-blockchain-substrate'); +const beaconProtocolSubstrate = require('@airgap/beacon-blockchain-substrate'); // TODO: DEMONSTRATE API ``` diff --git a/packages/beacon-blockchain-substrate/__tests__/beacon-protocol-substrate.spec.ts b/packages/beacon-blockchain-substrate/__tests__/beacon-protocol-substrate.spec.ts index 516b77288..112fc5f12 100644 --- a/packages/beacon-blockchain-substrate/__tests__/beacon-protocol-substrate.spec.ts +++ b/packages/beacon-blockchain-substrate/__tests__/beacon-protocol-substrate.spec.ts @@ -1,6 +1,6 @@ 'use strict' -const beaconProtocolkusama = require('..') +const beaconProtocolSubstrate = require('..') describe('@airgap/beacon-blockchain-substrate', () => { it('needs tests') diff --git a/packages/beacon-blockchain-substrate/src/types.ts b/packages/beacon-blockchain-substrate/src/types.ts index 5df62f806..5dbe8cd44 100644 --- a/packages/beacon-blockchain-substrate/src/types.ts +++ b/packages/beacon-blockchain-substrate/src/types.ts @@ -1,23 +1,29 @@ -import { AppMetadata, BlockchainMessage, PermissionResponseV3 } from '@airgap/beacon-types' +import { + AppMetadata, + BlockchainMessage, + PermissionRequestV3, + PermissionResponseV3 +} from '@airgap/beacon-types' export interface NewPermissionRequest { blockchainIdentifier: T } export enum SubstratePermissionScope { - 'transfer', - 'sign_payload_json', - 'sign_payload_raw' + 'transfer' = 'transfer', + 'sign_payload_json' = 'sign_payload_json', + 'sign_payload_raw' = 'sign_payload_raw' } export enum SubstrateMessageType { - 'transfer_request', - 'sign_payload_request' + 'transfer_request' = 'transfer_request', + 'sign_payload_request' = 'sign_payload_request' } -export interface SubstratePermissionRequest extends NewPermissionRequest<'substrate'> { +export interface SubstratePermissionRequest extends PermissionRequestV3<'substrate'> { blockchainData: { - scopes?: string[] // enum + scopes: SubstratePermissionScope[] // enum + appMetadata: AppMetadata network?: { genesisHash: string // Wallet shows only those accounts rpc?: string // For development nodes? @@ -27,10 +33,10 @@ export interface SubstratePermissionRequest extends NewPermissionRequest<'substr export interface SubstratePermissionResponse extends PermissionResponseV3<'substrate'> { blockchainData: { appMetadata: AppMetadata - scopes: string[] // enum + scopes: SubstratePermissionScope[] // enum accounts: { accountId: string - network: { + network?: { genesisHash: string rpc?: string } From 3afdbfd5967f75516411779b2240a9dfb842c807 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 23 Mar 2022 14:18:15 -0300 Subject: [PATCH 114/130] feat(): substrate types organisation --- .../src/blockchain.ts | 2 +- .../beacon-blockchain-substrate/src/index.ts | 8 + .../src/messages/operation-request.ts | 0 .../src/messages/operation-resonse.ts | 0 .../src/messages/permission-request.ts | 1 - .../src/messages/permission-response.ts | 0 .../src/messages/sign-request.ts | 0 .../src/messages/sign-response.ts | 0 .../beacon-blockchain-substrate/src/types.ts | 164 ------------------ .../src/types/message-type.ts | 4 + .../src/types/messages/permission-request.ts | 13 ++ .../src/types/messages/permission-response.ts | 18 ++ .../types/messages/sign-payload-request.ts | 79 +++++++++ .../types/messages/sign-payload-response.ts | 13 ++ .../src/types/messages/transfer-request.ts | 18 ++ .../src/types/messages/transfer-response.ts | 13 ++ .../src/types/permission-scope.ts | 5 + 17 files changed, 172 insertions(+), 166 deletions(-) delete mode 100644 packages/beacon-blockchain-substrate/src/messages/operation-request.ts delete mode 100644 packages/beacon-blockchain-substrate/src/messages/operation-resonse.ts delete mode 100644 packages/beacon-blockchain-substrate/src/messages/permission-request.ts delete mode 100644 packages/beacon-blockchain-substrate/src/messages/permission-response.ts delete mode 100644 packages/beacon-blockchain-substrate/src/messages/sign-request.ts delete mode 100644 packages/beacon-blockchain-substrate/src/messages/sign-response.ts delete mode 100644 packages/beacon-blockchain-substrate/src/types.ts create mode 100644 packages/beacon-blockchain-substrate/src/types/message-type.ts create mode 100644 packages/beacon-blockchain-substrate/src/types/messages/permission-request.ts create mode 100644 packages/beacon-blockchain-substrate/src/types/messages/permission-response.ts create mode 100644 packages/beacon-blockchain-substrate/src/types/messages/sign-payload-request.ts create mode 100644 packages/beacon-blockchain-substrate/src/types/messages/sign-payload-response.ts create mode 100644 packages/beacon-blockchain-substrate/src/types/messages/transfer-request.ts create mode 100644 packages/beacon-blockchain-substrate/src/types/messages/transfer-response.ts create mode 100644 packages/beacon-blockchain-substrate/src/types/permission-scope.ts diff --git a/packages/beacon-blockchain-substrate/src/blockchain.ts b/packages/beacon-blockchain-substrate/src/blockchain.ts index e7ee25532..f11b059e2 100644 --- a/packages/beacon-blockchain-substrate/src/blockchain.ts +++ b/packages/beacon-blockchain-substrate/src/blockchain.ts @@ -1,5 +1,5 @@ import { Blockchain, BlockchainMessage, ResponseInput } from '@airgap/beacon-types' -import { SubstratePermissionResponse } from './types' +import { SubstratePermissionResponse } from './types/messages/permission-response' export class SubstrateBlockchain implements Blockchain { public readonly identifier: string = 'substrate' diff --git a/packages/beacon-blockchain-substrate/src/index.ts b/packages/beacon-blockchain-substrate/src/index.ts index 436442888..12da1cca4 100644 --- a/packages/beacon-blockchain-substrate/src/index.ts +++ b/packages/beacon-blockchain-substrate/src/index.ts @@ -1 +1,9 @@ export { SubstrateBlockchain } from './blockchain' +export * from './types/message-type' +export * from './types/permission-scope' +export * from './types/messages/permission-request' +export * from './types/messages/permission-response' +export * from './types/messages/sign-payload-request' +export * from './types/messages/sign-payload-response' +export * from './types/messages/transfer-request' +export * from './types/messages/transfer-response' diff --git a/packages/beacon-blockchain-substrate/src/messages/operation-request.ts b/packages/beacon-blockchain-substrate/src/messages/operation-request.ts deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/beacon-blockchain-substrate/src/messages/operation-resonse.ts b/packages/beacon-blockchain-substrate/src/messages/operation-resonse.ts deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/beacon-blockchain-substrate/src/messages/permission-request.ts b/packages/beacon-blockchain-substrate/src/messages/permission-request.ts deleted file mode 100644 index b4f4bbae2..000000000 --- a/packages/beacon-blockchain-substrate/src/messages/permission-request.ts +++ /dev/null @@ -1 +0,0 @@ -// This should be the same for all protocols diff --git a/packages/beacon-blockchain-substrate/src/messages/permission-response.ts b/packages/beacon-blockchain-substrate/src/messages/permission-response.ts deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/beacon-blockchain-substrate/src/messages/sign-request.ts b/packages/beacon-blockchain-substrate/src/messages/sign-request.ts deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/beacon-blockchain-substrate/src/messages/sign-response.ts b/packages/beacon-blockchain-substrate/src/messages/sign-response.ts deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/beacon-blockchain-substrate/src/types.ts b/packages/beacon-blockchain-substrate/src/types.ts deleted file mode 100644 index 5dbe8cd44..000000000 --- a/packages/beacon-blockchain-substrate/src/types.ts +++ /dev/null @@ -1,164 +0,0 @@ -import { - AppMetadata, - BlockchainMessage, - PermissionRequestV3, - PermissionResponseV3 -} from '@airgap/beacon-types' - -export interface NewPermissionRequest { - blockchainIdentifier: T -} - -export enum SubstratePermissionScope { - 'transfer' = 'transfer', - 'sign_payload_json' = 'sign_payload_json', - 'sign_payload_raw' = 'sign_payload_raw' -} - -export enum SubstrateMessageType { - 'transfer_request' = 'transfer_request', - 'sign_payload_request' = 'sign_payload_request' -} - -export interface SubstratePermissionRequest extends PermissionRequestV3<'substrate'> { - blockchainData: { - scopes: SubstratePermissionScope[] // enum - appMetadata: AppMetadata - network?: { - genesisHash: string // Wallet shows only those accounts - rpc?: string // For development nodes? - }[] // Array to "whitelist" certain networks? (optional) - } -} -export interface SubstratePermissionResponse extends PermissionResponseV3<'substrate'> { - blockchainData: { - appMetadata: AppMetadata - scopes: SubstratePermissionScope[] // enum - accounts: { - accountId: string - network?: { - genesisHash: string - rpc?: string - } - publicKey: string - address: string - }[] - } -} - -export interface SubstrateTransferRequest extends BlockchainMessage<'substrate'> { - blockchainData: { - type: SubstrateMessageType.transfer_request - scope: SubstratePermissionScope.transfer - sourceAddress: string - amount: string - recipient: string - network: { - genesisHash: string - rpc?: string - } - mode: 'submit' | 'submit-and-return' | 'return' // TODO: Wording - } -} -export type SubstrateTransferResponse = - | { - transactionHash: string - } - | { - transactionHash: string - signature: string - payload?: string - } - | { - signature: string - payload?: string - } - -export interface SubstrateSignPayloadRequest extends BlockchainMessage<'substrate'> { - blockchainData: { - type: SubstrateMessageType.sign_payload_request - scope: SubstratePermissionScope.sign_payload_json | SubstratePermissionScope.sign_payload_json - - // This type is the same as the "SignerPayloadJSON" of polkadot.js https://github.com/polkadot-js/api/blob/f169ca08a80ea9c3865dc545e03e921c50f0d284/packages/types/src/types/extrinsic.ts#L32 - payload: - | { - type: 'json' - - /** - * @description The checkpoint hash of the block, in hex - */ - blockHash: string - - /** - * @description The checkpoint block number, in hex - */ - blockNumber: string - - /** - * @description The era for this transaction, in hex - */ - era: string - - /** - * @description The genesis hash of the chain, in hex - */ - genesisHash: string - - /** - * @description The encoded method (with arguments) in hex - */ - method: string - - /** - * @description The nonce for this transaction, in hex - */ - nonce: string - - /** - * @description The current spec version for the runtime - */ - specVersion: string - - /** - * @description The tip for this transaction, in hex - */ - tip: string - - /** - * @description The current transaction version for the runtime - */ - transactionVersion: string - - /** - * @description The applicable signed extensions for this runtime - */ - signedExtensions: string[] - - /** - * @description The version of the extrinsic we are dealing with - */ - version: number - } - | { - type: 'raw' - isMutable: boolean - dataType: 'bytes' | 'payload' - data: string - } - - mode: 'submit' | 'submit-and-return' | 'return' - } -} -export type SubstrateSignPayloadResponse = - | { - transactionHash: string - } - | { - transactionHash: string - signature: string - payload?: string - } - | { - signature: string - payload?: string - } diff --git a/packages/beacon-blockchain-substrate/src/types/message-type.ts b/packages/beacon-blockchain-substrate/src/types/message-type.ts new file mode 100644 index 000000000..8147d2a37 --- /dev/null +++ b/packages/beacon-blockchain-substrate/src/types/message-type.ts @@ -0,0 +1,4 @@ +export enum SubstrateMessageType { + 'transfer_request' = 'transfer_request', + 'sign_payload_request' = 'sign_payload_request' +} diff --git a/packages/beacon-blockchain-substrate/src/types/messages/permission-request.ts b/packages/beacon-blockchain-substrate/src/types/messages/permission-request.ts new file mode 100644 index 000000000..aa84b1463 --- /dev/null +++ b/packages/beacon-blockchain-substrate/src/types/messages/permission-request.ts @@ -0,0 +1,13 @@ +import { AppMetadata, PermissionRequestV3 } from '@airgap/beacon-types' +import { SubstratePermissionScope } from '../permission-scope' + +export interface SubstratePermissionRequest extends PermissionRequestV3<'substrate'> { + blockchainData: { + scopes: SubstratePermissionScope[] // enum + appMetadata: AppMetadata + network?: { + genesisHash: string // Wallet shows only those accounts + rpc?: string // For development nodes? + }[] // Array to "whitelist" certain networks? (optional) + } +} diff --git a/packages/beacon-blockchain-substrate/src/types/messages/permission-response.ts b/packages/beacon-blockchain-substrate/src/types/messages/permission-response.ts new file mode 100644 index 000000000..e049212cf --- /dev/null +++ b/packages/beacon-blockchain-substrate/src/types/messages/permission-response.ts @@ -0,0 +1,18 @@ +import { AppMetadata, PermissionResponseV3 } from '@airgap/beacon-types' +import { SubstratePermissionScope } from '../permission-scope' + +export interface SubstratePermissionResponse extends PermissionResponseV3<'substrate'> { + blockchainData: { + appMetadata: AppMetadata + scopes: SubstratePermissionScope[] // enum + accounts: { + accountId: string + network?: { + genesisHash: string + rpc?: string + } + publicKey: string + address: string + }[] + } +} diff --git a/packages/beacon-blockchain-substrate/src/types/messages/sign-payload-request.ts b/packages/beacon-blockchain-substrate/src/types/messages/sign-payload-request.ts new file mode 100644 index 000000000..bdda2ad95 --- /dev/null +++ b/packages/beacon-blockchain-substrate/src/types/messages/sign-payload-request.ts @@ -0,0 +1,79 @@ +import { BlockchainMessage } from '@airgap/beacon-types' +import { SubstrateMessageType } from '../message-type' +import { SubstratePermissionScope } from '../permission-scope' + +export interface SubstrateSignPayloadRequest extends BlockchainMessage<'substrate'> { + blockchainData: { + type: SubstrateMessageType.sign_payload_request + scope: SubstratePermissionScope.sign_payload_json | SubstratePermissionScope.sign_payload_json + + // This type is the same as the "SignerPayloadJSON" of polkadot.js https://github.com/polkadot-js/api/blob/f169ca08a80ea9c3865dc545e03e921c50f0d284/packages/types/src/types/extrinsic.ts#L32 + payload: + | { + type: 'json' + + /** + * @description The checkpoint hash of the block, in hex + */ + blockHash: string + + /** + * @description The checkpoint block number, in hex + */ + blockNumber: string + + /** + * @description The era for this transaction, in hex + */ + era: string + + /** + * @description The genesis hash of the chain, in hex + */ + genesisHash: string + + /** + * @description The encoded method (with arguments) in hex + */ + method: string + + /** + * @description The nonce for this transaction, in hex + */ + nonce: string + + /** + * @description The current spec version for the runtime + */ + specVersion: string + + /** + * @description The tip for this transaction, in hex + */ + tip: string + + /** + * @description The current transaction version for the runtime + */ + transactionVersion: string + + /** + * @description The applicable signed extensions for this runtime + */ + signedExtensions: string[] + + /** + * @description The version of the extrinsic we are dealing with + */ + version: number + } + | { + type: 'raw' + isMutable: boolean + dataType: 'bytes' | 'payload' + data: string + } + + mode: 'submit' | 'submit-and-return' | 'return' + } +} diff --git a/packages/beacon-blockchain-substrate/src/types/messages/sign-payload-response.ts b/packages/beacon-blockchain-substrate/src/types/messages/sign-payload-response.ts new file mode 100644 index 000000000..5c6dabd77 --- /dev/null +++ b/packages/beacon-blockchain-substrate/src/types/messages/sign-payload-response.ts @@ -0,0 +1,13 @@ +export type SubstrateSignPayloadResponse = + | { + transactionHash: string + } + | { + transactionHash: string + signature: string + payload?: string + } + | { + signature: string + payload?: string + } diff --git a/packages/beacon-blockchain-substrate/src/types/messages/transfer-request.ts b/packages/beacon-blockchain-substrate/src/types/messages/transfer-request.ts new file mode 100644 index 000000000..5cb3e68bc --- /dev/null +++ b/packages/beacon-blockchain-substrate/src/types/messages/transfer-request.ts @@ -0,0 +1,18 @@ +import { BlockchainMessage } from '@airgap/beacon-types' +import { SubstrateMessageType } from '../message-type' +import { SubstratePermissionScope } from '../permission-scope' + +export interface SubstrateTransferRequest extends BlockchainMessage<'substrate'> { + blockchainData: { + type: SubstrateMessageType.transfer_request + scope: SubstratePermissionScope.transfer + sourceAddress: string + amount: string + recipient: string + network: { + genesisHash: string + rpc?: string + } + mode: 'submit' | 'submit-and-return' | 'return' // TODO: Wording + } +} diff --git a/packages/beacon-blockchain-substrate/src/types/messages/transfer-response.ts b/packages/beacon-blockchain-substrate/src/types/messages/transfer-response.ts new file mode 100644 index 000000000..d6229e201 --- /dev/null +++ b/packages/beacon-blockchain-substrate/src/types/messages/transfer-response.ts @@ -0,0 +1,13 @@ +export type SubstrateTransferResponse = + | { + transactionHash: string + } + | { + transactionHash: string + signature: string + payload?: string + } + | { + signature: string + payload?: string + } diff --git a/packages/beacon-blockchain-substrate/src/types/permission-scope.ts b/packages/beacon-blockchain-substrate/src/types/permission-scope.ts new file mode 100644 index 000000000..987286023 --- /dev/null +++ b/packages/beacon-blockchain-substrate/src/types/permission-scope.ts @@ -0,0 +1,5 @@ +export enum SubstratePermissionScope { + 'transfer' = 'transfer', + 'sign_payload_json' = 'sign_payload_json', + 'sign_payload_raw' = 'sign_payload_raw' +} From 2815ea6f88432d4ba1c3178855f8469f6dd37432 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Sun, 3 Apr 2022 19:58:59 -0300 Subject: [PATCH 115/130] feat(): handle v3 messages in DAppClient --- .../beacon-core/src/clients/client/Client.ts | 10 +- .../beacon-dapp/src/dapp-client/DAppClient.ts | 186 +++++++++++++----- .../beacon-wallet/src/client/WalletClient.ts | 66 ++++--- .../OutgoingResponseInterceptor.ts | 5 +- 4 files changed, 183 insertions(+), 84 deletions(-) diff --git a/packages/beacon-core/src/clients/client/Client.ts b/packages/beacon-core/src/clients/client/Client.ts index 415b0a1d2..7567a0e87 100644 --- a/packages/beacon-core/src/clients/client/Client.ts +++ b/packages/beacon-core/src/clients/client/Client.ts @@ -9,7 +9,8 @@ import { BeaconMessageType, DisconnectMessage, AppMetadata, - BeaconRequestMessage + BeaconRequestMessage, + BeaconMessageWrapper } from '@airgap/beacon-types' import { Serializer, Transport } from '../..' import { BeaconClient } from '../beacon-client/BeaconClient' @@ -31,7 +32,7 @@ export abstract class Client extends BeaconClient { protected readonly accountManager: AccountManager protected handleResponse: ( - _event: BeaconRequestMessage, + _event: BeaconRequestMessage | BeaconMessageWrapper, connectionInfo: ConnectionContext ) => void @@ -76,7 +77,10 @@ export abstract class Client extends BeaconClient { this.accountManager = new AccountManager(config.storage) this.matrixNodes = config.matrixNodes ?? [] - this.handleResponse = (message: BeaconBaseMessage, connectionInfo: ConnectionContext): void => { + this.handleResponse = ( + message: BeaconBaseMessage | BeaconMessageWrapper, + connectionInfo: ConnectionContext + ): void => { throw new Error( `not overwritten${JSON.stringify(message)} - ${JSON.stringify(connectionInfo)}` ) diff --git a/packages/beacon-dapp/src/dapp-client/DAppClient.ts b/packages/beacon-dapp/src/dapp-client/DAppClient.ts index 8c7cf30b3..c82430a13 100644 --- a/packages/beacon-dapp/src/dapp-client/DAppClient.ts +++ b/packages/beacon-dapp/src/dapp-client/DAppClient.ts @@ -50,7 +50,10 @@ import { BlockchainRequestV3, BlockchainResponseV3, PermissionRequestV3, - PermissionResponseV3 + PermissionResponseV3, + BeaconBaseMessage, + AcknowledgeResponse + // PermissionRequestV3 // RequestEncryptPayloadInput, // EncryptPayloadResponseOutput, @@ -110,7 +113,13 @@ export class DAppClient extends Client { */ private readonly openRequests = new Map< string, - ExposedPromise<{ message: BeaconMessage; connectionInfo: ConnectionContext }, ErrorResponse> + ExposedPromise< + { + message: BeaconMessage | BeaconMessageWrapper + connectionInfo: ConnectionContext + }, + ErrorResponse + > >() /** @@ -163,68 +172,128 @@ export class DAppClient extends Client { }) this.handleResponse = async ( - message: BeaconMessage, + message: BeaconMessage | BeaconMessageWrapper, connectionInfo: ConnectionContext ): Promise => { const openRequest = this.openRequests.get(message.id) logger.log('handleResponse', 'Received message', message, connectionInfo) - if ( - (openRequest && message.type === BeaconMessageType.Acknowledge) || - (message as any).message.type === BeaconMessageType.Acknowledge // TODO: TYPE - ) { - logger.log(`acknowledge message received for ${message.id}`) - console.timeLog(message.id, 'acknowledge') - - this.events - .emit(BeaconEvent.ACKNOWLEDGE_RECEIVED, { - message: (message as any).message ?? message, // TODO: Types - extraInfo: {}, - walletInfo: await this.getWalletInfo() - }) - .catch(console.error) - } else if (openRequest) { - if (message.type === BeaconMessageType.PermissionResponse && message.appMetadata) { - await this.appMetadataManager.addAppMetadata(message.appMetadata) - } + if (message.version === '3') { + const typedMessage = message as BeaconMessageWrapper - console.timeLog(message.id, 'response') - console.timeEnd(message.id) + if (openRequest && typedMessage.message.type === BeaconMessageType.Acknowledge) { + logger.log(`acknowledge message received for ${message.id}`) + console.timeLog(message.id, 'acknowledge') - if (message.type === BeaconMessageType.Error || (message as any).errorType) { - // TODO: Remove "any" once we remove support for v1 wallets - openRequest.reject(message as any) + this.events + .emit(BeaconEvent.ACKNOWLEDGE_RECEIVED, { + message: typedMessage.message as AcknowledgeResponse, + extraInfo: {}, + walletInfo: await this.getWalletInfo() + }) + .catch(console.error) + } else if (openRequest) { + const appMetadata: AppMetadata | undefined = ( + typedMessage.message as unknown /* Why is this unkown cast needed? */ as PermissionResponseV3 + ).blockchainData.appMetadata + if (typedMessage.message.type === BeaconMessageType.PermissionResponse && appMetadata) { + await this.appMetadataManager.addAppMetadata(appMetadata) + } + + console.timeLog(typedMessage.id, 'response') + console.timeEnd(typedMessage.id) + + if (typedMessage.message.type === BeaconMessageType.Error) { + openRequest.reject(typedMessage.message as ErrorResponse) + } else { + openRequest.resolve({ message, connectionInfo }) + } + this.openRequests.delete(typedMessage.id) } else { - openRequest.resolve({ message, connectionInfo }) + if (typedMessage.message.type === BeaconMessageType.Disconnect) { + const relevantTransport = + connectionInfo.origin === Origin.P2P + ? this.p2pTransport + : this.postMessageTransport ?? (await this.transport) + + if (relevantTransport) { + // TODO: Handle removing it from the right transport (if it was received from the non-active transport) + const peers: ExtendedPeerInfo[] = await relevantTransport.getPeers() + const peer: ExtendedPeerInfo | undefined = peers.find( + (peerEl) => peerEl.senderId === message.senderId + ) + if (peer) { + await relevantTransport.removePeer(peer as any) + await this.removeAccountsForPeers([peer]) + await this.events.emit(BeaconEvent.CHANNEL_CLOSED) + } else { + logger.error('handleDisconnect', 'cannot find peer for sender ID', message.senderId) + } + } + } else { + logger.error('handleResponse', 'no request found for id ', message.id) + } } - this.openRequests.delete(message.id) } else { - if ( - message.type === BeaconMessageType.Disconnect || - (message as any).message.type === BeaconMessageType.Disconnect // TODO: TYPE - ) { - const relevantTransport = - connectionInfo.origin === Origin.P2P - ? this.p2pTransport - : this.postMessageTransport ?? (await this.transport) - - if (relevantTransport) { - // TODO: Handle removing it from the right transport (if it was received from the non-active transport) - const peers: ExtendedPeerInfo[] = await relevantTransport.getPeers() - const peer: ExtendedPeerInfo | undefined = peers.find( - (peerEl) => peerEl.senderId === message.senderId - ) - if (peer) { - await relevantTransport.removePeer(peer as any) - await this.removeAccountsForPeers([peer]) - await this.events.emit(BeaconEvent.CHANNEL_CLOSED) - } else { - logger.error('handleDisconnect', 'cannot find peer for sender ID', message.senderId) - } + const typedMessage = message as BeaconMessage + + if (openRequest && typedMessage.type === BeaconMessageType.Acknowledge) { + logger.log(`acknowledge message received for ${message.id}`) + console.timeLog(message.id, 'acknowledge') + + this.events + .emit(BeaconEvent.ACKNOWLEDGE_RECEIVED, { + message: typedMessage, + extraInfo: {}, + walletInfo: await this.getWalletInfo() + }) + .catch(console.error) + } else if (openRequest) { + if ( + typedMessage.type === BeaconMessageType.PermissionResponse && + typedMessage.appMetadata + ) { + await this.appMetadataManager.addAppMetadata(typedMessage.appMetadata) + } + + console.timeLog(typedMessage.id, 'response') + console.timeEnd(typedMessage.id) + + if (typedMessage.type === BeaconMessageType.Error || (message as any).errorType) { + // TODO: Remove "any" once we remove support for v1 wallets + openRequest.reject(typedMessage as any) + } else { + openRequest.resolve({ message, connectionInfo }) } + this.openRequests.delete(typedMessage.id) } else { - logger.error('handleResponse', 'no request found for id ', message.id) + if ( + typedMessage.type === BeaconMessageType.Disconnect || + (message as any).typedMessage.type === BeaconMessageType.Disconnect // TODO: TYPE + ) { + const relevantTransport = + connectionInfo.origin === Origin.P2P + ? this.p2pTransport + : this.postMessageTransport ?? (await this.transport) + + if (relevantTransport) { + // TODO: Handle removing it from the right transport (if it was received from the non-active transport) + const peers: ExtendedPeerInfo[] = await relevantTransport.getPeers() + const peer: ExtendedPeerInfo | undefined = peers.find( + (peerEl) => peerEl.senderId === message.senderId + ) + if (peer) { + await relevantTransport.removePeer(peer as any) + await this.removeAccountsForPeers([peer]) + await this.events.emit(BeaconEvent.CHANNEL_CLOSED) + } else { + logger.error('handleDisconnect', 'cannot find peer for sender ID', message.senderId) + } + } + } else { + logger.error('handleResponse', 'no request found for id ', message.id) + } } } } @@ -1287,7 +1356,10 @@ export class DAppClient extends Client { } const exposed = new ExposedPromise< - { message: BeaconMessage; connectionInfo: ConnectionContext }, + { + message: BeaconMessage | BeaconMessageWrapper + connectionInfo: ConnectionContext + }, ErrorResponse >() @@ -1391,7 +1463,10 @@ export class DAppClient extends Client { } const exposed = new ExposedPromise< - { message: BeaconMessage; connectionInfo: ConnectionContext }, + { + message: BeaconMessage | BeaconMessageWrapper + connectionInfo: ConnectionContext + }, ErrorResponse >() @@ -1462,7 +1537,10 @@ export class DAppClient extends Client { private addOpenRequest( id: string, promise: ExposedPromise< - { message: BeaconMessage; connectionInfo: ConnectionContext }, + { + message: BeaconMessage | BeaconMessageWrapper + connectionInfo: ConnectionContext + }, ErrorResponse > ): void { diff --git a/packages/beacon-wallet/src/client/WalletClient.ts b/packages/beacon-wallet/src/client/WalletClient.ts index e918eaf9c..b91272a79 100644 --- a/packages/beacon-wallet/src/client/WalletClient.ts +++ b/packages/beacon-wallet/src/client/WalletClient.ts @@ -25,7 +25,9 @@ import { AppMetadata, PermissionInfo, TransportStatus, - BeaconMessage + BeaconMessage, + BeaconMessageWrapper, + BeaconBaseMessage } from '@airgap/beacon-types' import { WalletClientOptions } from './WalletClientOptions' import { WalletP2PTransport } from '../transports/WalletP2PTransport' @@ -96,36 +98,38 @@ export class WalletClient extends Client { ) => void ): Promise { this.handleResponse = async ( - message: BeaconRequestMessage | DisconnectMessage, + message: BeaconRequestMessage | BeaconMessageWrapper | DisconnectMessage, connectionContext: ConnectionContext ): Promise => { - if (message.type === BeaconMessageType.Disconnect) { - const transport = await this.transport - const peers: ExtendedPeerInfo[] = await transport.getPeers() - const peer: ExtendedPeerInfo | undefined = peers.find( - (peerEl) => peerEl.senderId === message.senderId - ) - - if (peer) { - await this.removePeer(peer as any) - } + if (message.version === '3') { + const typedMessage = message as BeaconMessageWrapper - return - } + if (typedMessage.message.type === BeaconMessageType.Disconnect) { + return this.disconnect(typedMessage.senderId) + } - if (!this.pendingRequests.some((request) => request[0].id === message.id)) { - this.pendingRequests.push([message, connectionContext]) + await this.sendAcknowledgeResponse(typedMessage, connectionContext) + } else { + const typedMessage = message as BeaconRequestMessage | DisconnectMessage - if (message.version !== '1') { - await this.sendAcknowledgeResponse(message, connectionContext) + if (typedMessage.type === BeaconMessageType.Disconnect) { + return this.disconnect(typedMessage.senderId) } - await IncomingRequestInterceptor.intercept({ - message, - connectionInfo: connectionContext, - appMetadataManager: this.appMetadataManager, - interceptorCallback: newMessageCallback - }) + if (!this.pendingRequests.some((request) => request[0].id === message.id)) { + this.pendingRequests.push([typedMessage, connectionContext]) + + if (typedMessage.version !== '1') { + await this.sendAcknowledgeResponse(typedMessage, connectionContext) + } + + await IncomingRequestInterceptor.intercept({ + message: typedMessage, + connectionInfo: connectionContext, + appMetadataManager: this.appMetadataManager, + interceptorCallback: newMessageCallback + }) + } } } @@ -283,7 +287,7 @@ export class WalletClient extends Client { * @param message The message that was received */ private async sendAcknowledgeResponse( - request: BeaconRequestMessage, + request: BeaconRequestMessage | BeaconMessageWrapper, connectionContext: ConnectionContext ): Promise { // Acknowledge the message @@ -323,4 +327,16 @@ export class WalletClient extends Client { await (await this.transport).send(serializedMessage) } } + + private async disconnect(senderId: string) { + const transport = await this.transport + const peers: ExtendedPeerInfo[] = await transport.getPeers() + const peer: ExtendedPeerInfo | undefined = peers.find((peerEl) => peerEl.senderId === senderId) + + if (peer) { + await this.removePeer(peer as any) + } + + return + } } diff --git a/packages/beacon-wallet/src/interceptors/OutgoingResponseInterceptor.ts b/packages/beacon-wallet/src/interceptors/OutgoingResponseInterceptor.ts index bb0c576ab..67db5fdfe 100644 --- a/packages/beacon-wallet/src/interceptors/OutgoingResponseInterceptor.ts +++ b/packages/beacon-wallet/src/interceptors/OutgoingResponseInterceptor.ts @@ -21,14 +21,15 @@ import { BeaconErrorType, BeaconMessageWrapper, BlockchainResponseV3, - PermissionResponseV3 + PermissionResponseV3, + BeaconBaseMessage // EncryptPayloadResponse } from '@airgap/beacon-types' import { getAddressFromPublicKey } from '@airgap/beacon-utils' interface OutgoingResponseInterceptorOptions { senderId: string - request: BeaconRequestMessage + request: BeaconRequestMessage | BeaconMessageWrapper message: BeaconResponseInputMessage ownAppMetadata: AppMetadata permissionManager: PermissionManager From 0a1949a6815a77139737bed0dcac4da81dfd2b41 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Sun, 3 Apr 2022 23:53:56 -0300 Subject: [PATCH 116/130] feat(): add message type to wallet client handler --- .../beacon-wallet/src/client/WalletClient.ts | 18 ++++++++++-- .../IncomingRequestInterceptor.ts | 28 +++++++++++-------- 2 files changed, 33 insertions(+), 13 deletions(-) diff --git a/packages/beacon-wallet/src/client/WalletClient.ts b/packages/beacon-wallet/src/client/WalletClient.ts index b91272a79..31aadb6dd 100644 --- a/packages/beacon-wallet/src/client/WalletClient.ts +++ b/packages/beacon-wallet/src/client/WalletClient.ts @@ -59,7 +59,10 @@ export class WalletClient extends Client { /** * This array stores pending requests, meaning requests we received and have not yet handled / sent a response. */ - private pendingRequests: [BeaconRequestMessage, ConnectionContext][] = [] + private pendingRequests: [ + BeaconRequestMessage | BeaconMessageWrapper, + ConnectionContext + ][] = [] constructor(config: WalletClientOptions) { super({ @@ -108,7 +111,18 @@ export class WalletClient extends Client { return this.disconnect(typedMessage.senderId) } - await this.sendAcknowledgeResponse(typedMessage, connectionContext) + if (!this.pendingRequests.some((request) => request[0].id === message.id)) { + this.pendingRequests.push([typedMessage, connectionContext]) + + await this.sendAcknowledgeResponse(typedMessage, connectionContext) + + await IncomingRequestInterceptor.intercept({ + message: typedMessage, + connectionInfo: connectionContext, + appMetadataManager: this.appMetadataManager, + interceptorCallback: newMessageCallback + }) + } } else { const typedMessage = message as BeaconRequestMessage | DisconnectMessage diff --git a/packages/beacon-wallet/src/interceptors/IncomingRequestInterceptor.ts b/packages/beacon-wallet/src/interceptors/IncomingRequestInterceptor.ts index c2e5cce2a..09906c468 100644 --- a/packages/beacon-wallet/src/interceptors/IncomingRequestInterceptor.ts +++ b/packages/beacon-wallet/src/interceptors/IncomingRequestInterceptor.ts @@ -10,7 +10,8 @@ import { BeaconRequestMessage, BeaconMessageWrapper, BlockchainRequestV3, - PermissionRequestV3 + PermissionRequestV3, + BeaconBaseMessage // EncryptPayloadRequestOutput } from '@airgap/beacon-types' import { AppMetadataManager, Logger } from '@airgap/beacon-core' @@ -18,12 +19,19 @@ import { AppMetadataManager, Logger } from '@airgap/beacon-core' const logger = new Logger('IncomingRequestInterceptor') interface IncomingRequestInterceptorOptions { - message: BeaconRequestMessage + message: BeaconRequestMessage | BeaconMessageWrapper connectionInfo: ConnectionContext appMetadataManager: AppMetadataManager interceptorCallback(message: BeaconRequestOutputMessage, connectionInfo: ConnectionContext): void } +interface IncomingRequestInterceptorOptionsV2 extends IncomingRequestInterceptorOptions { + message: BeaconRequestMessage +} + +interface IncomingRequestInterceptorOptionsV3 extends IncomingRequestInterceptorOptions { + message: BeaconMessageWrapper +} /** * @internalapi * @@ -39,9 +47,9 @@ export class IncomingRequestInterceptor { console.log('INTERCEPTING REQUEST', config.message) if (config.message.version === '2') { - IncomingRequestInterceptor.handleV2Message(config) + IncomingRequestInterceptor.handleV2Message(config as IncomingRequestInterceptorOptionsV2) } else if (config.message.version === '3') { - IncomingRequestInterceptor.handleV3Message(config) + IncomingRequestInterceptor.handleV3Message(config as IncomingRequestInterceptorOptionsV3) } } @@ -57,13 +65,13 @@ export class IncomingRequestInterceptor { return appMetadata } - private static async handleV2Message(config: IncomingRequestInterceptorOptions) { + private static async handleV2Message(config: IncomingRequestInterceptorOptionsV2) { const { message, connectionInfo, appMetadataManager, interceptorCallback - }: IncomingRequestInterceptorOptions = config + }: IncomingRequestInterceptorOptionsV2 = config switch (message.type) { case BeaconMessageType.PermissionRequest: @@ -140,23 +148,21 @@ export class IncomingRequestInterceptor { } } - private static async handleV3Message(config: IncomingRequestInterceptorOptions) { + private static async handleV3Message(config: IncomingRequestInterceptorOptionsV3) { const { message: msg, connectionInfo, appMetadataManager, interceptorCallback - }: IncomingRequestInterceptorOptions = config + }: IncomingRequestInterceptorOptionsV3 = config const wrappedMessage: | BeaconMessageWrapper> - | BeaconMessageWrapper> = msg as any + | BeaconMessageWrapper> = msg as any /* TODO: Remove any */ const v3Message: PermissionRequestV3 | BlockchainRequestV3 = wrappedMessage.message - console.log('LOGGING V3', v3Message, connectionInfo, appMetadataManager) - switch (v3Message.type) { case BeaconMessageType.PermissionRequest: { From 5f70acb4583bcec5d83ad7561b649f2da30e1a5f Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 4 Apr 2022 07:56:46 -0300 Subject: [PATCH 117/130] feat(): make UI dynamic dependent on the blockchain --- .../src/blockchain.ts | 25 ++++- .../beacon-blockchain-tezos/src/blockchain.ts | 21 +++- .../beacon-dapp/src/dapp-client/DAppClient.ts | 104 ++++++++++------- packages/beacon-types/src/index.ts | 2 + .../src/types/beaconV3/PermissionRequest.ts | 13 ++- packages/beacon-types/src/types/ui.ts | 36 ++++++ packages/beacon-ui/src/index.ts | 14 ++- packages/beacon-ui/src/ui/alert/Pairing.ts | 106 +++++++++--------- scripts/blockchains/substrate.ts | 2 +- scripts/blockchains/tezos.ts | 9 +- scripts/generate-wallet-list.ts | 12 +- 11 files changed, 232 insertions(+), 112 deletions(-) create mode 100644 packages/beacon-types/src/types/ui.ts diff --git a/packages/beacon-blockchain-substrate/src/blockchain.ts b/packages/beacon-blockchain-substrate/src/blockchain.ts index f11b059e2..357e7364d 100644 --- a/packages/beacon-blockchain-substrate/src/blockchain.ts +++ b/packages/beacon-blockchain-substrate/src/blockchain.ts @@ -1,5 +1,14 @@ -import { Blockchain, BlockchainMessage, ResponseInput } from '@airgap/beacon-types' +import { + Blockchain, + BlockchainMessage, + ResponseInput, + ExtensionApp, + DesktopApp, + WebApp, + App +} from '@airgap/beacon-types' import { SubstratePermissionResponse } from './types/messages/permission-response' +import { extensionList, desktopList, webList, iOSList } from './ui/alert/wallet-lists' export class SubstrateBlockchain implements Blockchain { public readonly identifier: string = 'substrate' @@ -17,6 +26,20 @@ export class SubstrateBlockchain implements Blockchain { } } + async getWalletLists(): Promise<{ + extensionList: ExtensionApp[] + desktopList: DesktopApp[] + webList: WebApp[] + iOSList: App[] + }> { + return { + extensionList: extensionList, + desktopList: desktopList, + webList: webList, + iOSList: iOSList + } + } + async getAccountInfosFromPermissionResponse( permissionResponse: SubstratePermissionResponse ): Promise<{ accountId: string; address: string; publicKey: string }[]> { diff --git a/packages/beacon-blockchain-tezos/src/blockchain.ts b/packages/beacon-blockchain-tezos/src/blockchain.ts index 5900dec07..202ec52a7 100644 --- a/packages/beacon-blockchain-tezos/src/blockchain.ts +++ b/packages/beacon-blockchain-tezos/src/blockchain.ts @@ -2,8 +2,13 @@ import { Blockchain, BlockchainMessage, PermissionResponseV3, - ResponseInput + ResponseInput, + App, + DesktopApp, + ExtensionApp, + WebApp } from '@airgap/beacon-types' +import { desktopList, extensionList, iOSList, webList } from './ui/alert/wallet-lists' export class TezosBlockchain implements Blockchain { public readonly identifier: string = 'xtz' @@ -20,6 +25,20 @@ export class TezosBlockchain implements Blockchain { } } + async getWalletLists(): Promise<{ + extensionList: ExtensionApp[] + desktopList: DesktopApp[] + webList: WebApp[] + iOSList: App[] + }> { + return { + extensionList: extensionList, + desktopList: desktopList, + webList: webList, + iOSList: iOSList + } + } + async getAccountInfosFromPermissionResponse( _permissionResponse: PermissionResponseV3<'tezos'> ): Promise<{ accountId: string; address: string; publicKey: string }[]> { diff --git a/packages/beacon-dapp/src/dapp-client/DAppClient.ts b/packages/beacon-dapp/src/dapp-client/DAppClient.ts index c82430a13..f9ac94bf3 100644 --- a/packages/beacon-dapp/src/dapp-client/DAppClient.ts +++ b/packages/beacon-dapp/src/dapp-client/DAppClient.ts @@ -52,8 +52,11 @@ import { PermissionRequestV3, PermissionResponseV3, BeaconBaseMessage, - AcknowledgeResponse - + AcknowledgeResponse, + App, + DesktopApp, + ExtensionApp, + WebApp // PermissionRequestV3 // RequestEncryptPayloadInput, // EncryptPayloadResponseOutput, @@ -83,7 +86,18 @@ import { BeaconEventHandler } from '@airgap/beacon-dapp' import { DappPostMessageTransport } from '../transports/DappPostMessageTransport' import { DappP2PTransport } from '../transports/DappP2PTransport' import { PostMessageTransport } from '@airgap/beacon-transport-postmessage' -import { getColorMode, setColorMode } from '@airgap/beacon-ui' +import { + getColorMode, + setColorMode, + setDesktopList, + setExtensionList, + setWebList, + setiOSList, + getDesktopList, + getExtensionList, + getWebList, + getiOSList +} from '@airgap/beacon-ui' const logger = new Logger('DAppClient') @@ -630,6 +644,12 @@ export class DAppClient extends Client { addBlockchain(chain: Blockchain) { this.blockchains.set(chain.identifier, chain) + chain.getWalletLists().then((walletLists) => { + setDesktopList(walletLists.desktopList) + setExtensionList(walletLists.extensionList) + setWebList(walletLists.webList) + setiOSList(walletLists.iOSList) + }) } removeBlockchain(chainIdentifier: string) { @@ -1233,48 +1253,48 @@ export class DAppClient extends Client { } } - // const lowerCaseCompare = (str1?: string, str2?: string): boolean => { - // if (str1 && str2) { - // return str1.toLowerCase() === str2.toLowerCase() - // } + const lowerCaseCompare = (str1?: string, str2?: string): boolean => { + if (str1 && str2) { + return str1.toLowerCase() === str2.toLowerCase() + } - // return false - // } + return false + } - // let selectedApp: WebApp | App | DesktopApp | ExtensionApp | undefined - // let type: 'extension' | 'mobile' | 'web' | 'desktop' | undefined - // // TODO: Remove once all wallets send the icon? - // if (iOSList.find((app) => lowerCaseCompare(app.name, walletInfo?.name))) { - // selectedApp = iOSList.find((app) => lowerCaseCompare(app.name, walletInfo?.name)) - // type = 'mobile' - // } else if (webList.find((app) => lowerCaseCompare(app.name, walletInfo?.name))) { - // selectedApp = webList.find((app) => lowerCaseCompare(app.name, walletInfo?.name)) - // type = 'web' - // } else if (desktopList.find((app) => lowerCaseCompare(app.name, walletInfo?.name))) { - // selectedApp = desktopList.find((app) => lowerCaseCompare(app.name, walletInfo?.name)) - // type = 'desktop' - // } else if (extensionList.find((app) => lowerCaseCompare(app.name, walletInfo?.name))) { - // selectedApp = extensionList.find((app) => lowerCaseCompare(app.name, walletInfo?.name)) - // type = 'extension' - // } + let selectedApp: WebApp | App | DesktopApp | ExtensionApp | undefined + let type: 'extension' | 'mobile' | 'web' | 'desktop' | undefined + // TODO: Remove once all wallets send the icon? + if (getiOSList().find((app) => lowerCaseCompare(app.name, walletInfo?.name))) { + selectedApp = getiOSList().find((app) => lowerCaseCompare(app.name, walletInfo?.name)) + type = 'mobile' + } else if (getWebList().find((app) => lowerCaseCompare(app.name, walletInfo?.name))) { + selectedApp = getWebList().find((app) => lowerCaseCompare(app.name, walletInfo?.name)) + type = 'web' + } else if (getDesktopList().find((app) => lowerCaseCompare(app.name, walletInfo?.name))) { + selectedApp = getDesktopList().find((app) => lowerCaseCompare(app.name, walletInfo?.name)) + type = 'desktop' + } else if (getExtensionList().find((app) => lowerCaseCompare(app.name, walletInfo?.name))) { + selectedApp = getExtensionList().find((app) => lowerCaseCompare(app.name, walletInfo?.name)) + type = 'extension' + } - // if (selectedApp) { - // let deeplink: string | undefined - // if (selectedApp.hasOwnProperty('links')) { - // deeplink = (selectedApp as WebApp).links[ - // selectedAccount?.network.type ?? this.preferredNetwork - // ] - // } else if (selectedApp.hasOwnProperty('deepLink')) { - // deeplink = (selectedApp as App).deepLink - // } - - // return { - // name: walletInfo.name, - // icon: walletInfo.icon ?? selectedApp.logo, - // deeplink, - // type - // } - // } + if (selectedApp) { + let deeplink: string | undefined + if (selectedApp.hasOwnProperty('links')) { + deeplink = (selectedApp as WebApp).links[ + selectedAccount?.network.type ?? this.preferredNetwork + ] + } else if (selectedApp.hasOwnProperty('deepLink')) { + deeplink = (selectedApp as App).deepLink + } + + return { + name: walletInfo.name, + icon: walletInfo.icon ?? selectedApp.logo, + deeplink, + type + } + } return walletInfo } diff --git a/packages/beacon-types/src/index.ts b/packages/beacon-types/src/index.ts index f5373363a..b657679e9 100644 --- a/packages/beacon-types/src/index.ts +++ b/packages/beacon-types/src/index.ts @@ -120,6 +120,8 @@ import { WalletInfo } from './types/WalletInfo' export * from './types/beaconV3/PermissionRequest' +export * from './types/ui' + // Tezos export { TezosBaseOperation, diff --git a/packages/beacon-types/src/types/beaconV3/PermissionRequest.ts b/packages/beacon-types/src/types/beaconV3/PermissionRequest.ts index abc5c936f..7732fd431 100644 --- a/packages/beacon-types/src/types/beaconV3/PermissionRequest.ts +++ b/packages/beacon-types/src/types/beaconV3/PermissionRequest.ts @@ -3,7 +3,11 @@ import { AppMetadata, BeaconMessageType, ConnectionContext, - WalletInfo + WalletInfo, + ExtensionApp, + DesktopApp, + WebApp, + App } from '@airgap/beacon-types' export interface ResponseInput { @@ -20,6 +24,13 @@ export interface Blockchain { validateRequest(input: BlockchainMessage): Promise handleResponse(input: ResponseInput): Promise + getWalletLists(): Promise<{ + extensionList: ExtensionApp[] + desktopList: DesktopApp[] + webList: WebApp[] + iOSList: App[] + }> + getAccountInfosFromPermissionResponse( permissionResponse: PermissionResponseV3 ): Promise<{ accountId: string; address: string; publicKey: string }[]> diff --git a/packages/beacon-types/src/types/ui.ts b/packages/beacon-types/src/types/ui.ts new file mode 100644 index 000000000..b63c1a243 --- /dev/null +++ b/packages/beacon-types/src/types/ui.ts @@ -0,0 +1,36 @@ +import { NetworkType } from './beacon/NetworkType' + +export interface AppBase { + key: string + name: string + shortName: string + color: string + logo: string +} + +export interface ExtensionApp extends AppBase { + id: string + link: string +} + +export interface WebApp extends AppBase { + links: { + [NetworkType.MAINNET]: string + [NetworkType.DELPHINET]?: string + [NetworkType.EDONET]?: string + [NetworkType.FLORENCENET]?: string + [NetworkType.GRANADANET]?: string + [NetworkType.HANGZHOUNET]?: string + [NetworkType.ITHACANET]?: string + [NetworkType.CUSTOM]?: string + } +} + +export interface DesktopApp extends AppBase { + deepLink: string +} + +export interface App extends AppBase { + universalLink: string + deepLink?: string +} diff --git a/packages/beacon-ui/src/index.ts b/packages/beacon-ui/src/index.ts index ec0e3f694..c81f0fa61 100644 --- a/packages/beacon-ui/src/index.ts +++ b/packages/beacon-ui/src/index.ts @@ -2,10 +2,18 @@ export { openAlert, AlertButton, AlertConfig, closeAlerts } from './ui/alert/Ale export { closeToast, openToast, ToastAction } from './ui/toast/Toast' -export { App, DesktopApp, ExtensionApp, WebApp } from './ui/alert/Pairing' - export { isMobile } from './utils/platform' -export { Pairing } from './ui/alert/Pairing' +export { + Pairing, + setDesktopList, + setExtensionList, + setWebList, + setiOSList, + getDesktopList, + getExtensionList, + getWebList, + getiOSList +} from './ui/alert/Pairing' export { getColorMode, setColorMode } from './utils/colorMode' diff --git a/packages/beacon-ui/src/ui/alert/Pairing.ts b/packages/beacon-ui/src/ui/alert/Pairing.ts index 629f52f51..fddca7f31 100644 --- a/packages/beacon-ui/src/ui/alert/Pairing.ts +++ b/packages/beacon-ui/src/ui/alert/Pairing.ts @@ -11,6 +11,47 @@ import { getTzip10Link } from '../../utils/get-tzip10-link' import { isAndroid, isIOS } from '../../utils/platform' import { PostMessageTransport } from '@airgap/beacon-transport-postmessage' import { desktopList, extensionList, iOSList, webList } from './wallet-lists' +import { DesktopApp, App, ExtensionApp, WebApp } from '@airgap/beacon-types' + +/** + * Initialize with tezos wallets for backwards compatibility + */ +let localDesktopList: DesktopApp[] = desktopList +let localExtensionList: ExtensionApp[] = extensionList +let localWebList: WebApp[] = webList +let localiOSList: App[] = iOSList + +export const getDesktopList = (): DesktopApp[] => { + return localDesktopList +} + +export const setDesktopList = (desktopList: DesktopApp[]): void => { + localDesktopList = desktopList +} + +export const getExtensionList = (): ExtensionApp[] => { + return localExtensionList +} + +export const setExtensionList = (extensionList: ExtensionApp[]): void => { + localExtensionList = extensionList +} + +export const getWebList = (): WebApp[] => { + return localWebList +} + +export const setWebList = (webList: WebApp[]): void => { + localWebList = webList +} + +export const getiOSList = (): App[] => { + return localiOSList +} + +export const setiOSList = (iosList: App[]): void => { + localiOSList = iosList +} const serializer = new Serializer() @@ -33,41 +74,6 @@ export enum WalletType { WEB = 'web' } -export interface AppBase { - key: string - name: string - shortName: string - color: string - logo: string -} - -export interface ExtensionApp extends AppBase { - id: string - link: string -} - -export interface WebApp extends AppBase { - links: { - [NetworkType.MAINNET]: string - [NetworkType.DELPHINET]?: string - [NetworkType.EDONET]?: string - [NetworkType.FLORENCENET]?: string - [NetworkType.GRANADANET]?: string - [NetworkType.HANGZHOUNET]?: string - [NetworkType.ITHACANET]?: string - [NetworkType.CUSTOM]?: string - } -} - -export interface DesktopApp extends AppBase { - deepLink: string -} - -export interface App extends AppBase { - universalLink: string - deepLink?: string -} - export interface PairingAlertWallet { key: string name: string @@ -163,13 +169,13 @@ export class Pairing { const walletLists: PairingAlertList[] = [] - if (extensionList.length > 0) { + if (getExtensionList().length > 0) { walletLists.push({ title: 'Browser Extensions', type: WalletType.EXTENSION, wallets: [ ...availableExtensions.map((app) => { - const ext = extensionList.find((extEl) => extEl.id === app.id) + const ext = getExtensionList().find((extEl) => extEl.id === app.id) return { key: ext?.key ?? app.id, @@ -200,7 +206,7 @@ export class Pairing { } } }), - ...extensionList + ...getExtensionList() .filter((app) => defaultExtensions.some((extId) => extId === app.id)) .map((app) => ({ key: app.key, @@ -216,12 +222,12 @@ export class Pairing { ].sort((a, b) => a.key.localeCompare(b.key)) }) } - if (desktopList.length > 0) { + if (getDesktopList().length > 0) { walletLists.push({ title: 'Desktop & Web Wallets', type: WalletType.DESKTOP, wallets: [ - ...desktopList.map((app) => ({ + ...getDesktopList().map((app) => ({ key: app.key, name: app.name, shortName: app.shortName, @@ -246,12 +252,12 @@ export class Pairing { ].sort((a, b) => a.key.localeCompare(b.key)) }) } - if (iOSList.length > 0) { + if (getiOSList().length > 0) { walletLists.push({ title: 'Mobile Wallets', type: WalletType.IOS, wallets: [ - ...iOSList.map((app) => ({ + ...getiOSList().map((app) => ({ key: app.key, name: app.name, shortName: app.shortName, @@ -291,7 +297,7 @@ export class Pairing { { title: 'Mobile Wallets', type: WalletType.IOS, - wallets: iOSList + wallets: getiOSList() .map((app) => ({ key: app.key, name: app.name, @@ -325,9 +331,9 @@ export class Pairing { { title: 'Web Wallets', type: WalletType.WEB, - wallets: [ - ...(await Pairing.getWebList(pairingCode, statusUpdateHandler, network)) - ].sort((a, b) => a.key.localeCompare(b.key)) + wallets: [...(await Pairing.getWebList(pairingCode, statusUpdateHandler, network))].sort( + (a, b) => a.key.localeCompare(b.key) + ) } ], buttons: [] @@ -344,9 +350,9 @@ export class Pairing { { title: 'Web Wallets', type: WalletType.WEB, - wallets: [ - ...(await Pairing.getWebList(pairingCode, statusUpdateHandler, network)) - ].sort((a, b) => a.key.localeCompare(b.key)) + wallets: [...(await Pairing.getWebList(pairingCode, statusUpdateHandler, network))].sort( + (a, b) => a.key.localeCompare(b.key) + ) } ], buttons: [ @@ -369,7 +375,7 @@ export class Pairing { statusUpdateHandler: StatusUpdateHandler, network: NetworkType ): Promise { - return webList + return getWebList() .map((app) => ({ key: app.key, name: app.name, diff --git a/scripts/blockchains/substrate.ts b/scripts/blockchains/substrate.ts index 746ed2427..99710eba0 100644 --- a/scripts/blockchains/substrate.ts +++ b/scripts/blockchains/substrate.ts @@ -1,4 +1,4 @@ -import { App, DesktopApp, ExtensionApp, WebApp } from 'packages/beacon-ui/src/ui/alert/Pairing' +import { App, DesktopApp, ExtensionApp, WebApp } from 'packages/beacon-types/src/types/ui' export const substrateExtensionList: ExtensionApp[] = [] diff --git a/scripts/blockchains/tezos.ts b/scripts/blockchains/tezos.ts index 76d4a7952..29c59d950 100644 --- a/scripts/blockchains/tezos.ts +++ b/scripts/blockchains/tezos.ts @@ -1,10 +1,5 @@ -import { - App, - DesktopApp, - ExtensionApp, - WebApp -} from '../../packages/beacon-ui/src/ui/alert/Pairing' - +import { App, DesktopApp, ExtensionApp, WebApp } from 'packages/beacon-types/src/types/ui' +// import { NetworkType } from 'packages/beacon-types/src/types' // TODO: Temporary build fix export enum NetworkType { MAINNET = 'mainnet', diff --git a/scripts/generate-wallet-list.ts b/scripts/generate-wallet-list.ts index ebaea0a41..954727856 100644 --- a/scripts/generate-wallet-list.ts +++ b/scripts/generate-wallet-list.ts @@ -6,7 +6,7 @@ import { App, AppBase, DesktopApp -} from '../packages/beacon-ui/src/ui/alert/Pairing' +} from '../packages/beacon-types/src/types/ui' import { substrateExtensionList, @@ -81,7 +81,7 @@ const generateForBlockchains = ( const webListWithInlinedLogo = await convert(webList) const iosListWithInlinedLogo = await convert(iosList) - let out = `import { App, DesktopApp, ExtensionApp, WebApp } from '@airgap/beacon-ui'` + let out = `import { App, DesktopApp, ExtensionApp, WebApp } from '@airgap/beacon-types'` out += ` ` @@ -195,8 +195,8 @@ generateForBlockchains( // TODO: This is necessary for backwards compatibility, but has to be removed before a release generateForBlockchains( 'beacon-ui', - substrateExtensionList, - substrateDesktopList, - substrateWebList, - substrateIosList + tezosExtensionList, + tezosDesktopList, + tezosWebList, + tezosIosList ) From c8bdf9a6913d610efb82f747edf8e819cec0da80 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 4 Apr 2022 10:39:18 -0300 Subject: [PATCH 118/130] feat(): add gitkeep --- packages/beacon-blockchain-substrate/src/ui/alert/.gitkeep | 0 packages/beacon-blockchain-tezos/src/ui/alert/.gitkeep | 0 scripts/generate-wallet-list.ts | 1 - 3 files changed, 1 deletion(-) create mode 100644 packages/beacon-blockchain-substrate/src/ui/alert/.gitkeep create mode 100644 packages/beacon-blockchain-tezos/src/ui/alert/.gitkeep diff --git a/packages/beacon-blockchain-substrate/src/ui/alert/.gitkeep b/packages/beacon-blockchain-substrate/src/ui/alert/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/packages/beacon-blockchain-tezos/src/ui/alert/.gitkeep b/packages/beacon-blockchain-tezos/src/ui/alert/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/scripts/generate-wallet-list.ts b/scripts/generate-wallet-list.ts index 954727856..17d99de4a 100644 --- a/scripts/generate-wallet-list.ts +++ b/scripts/generate-wallet-list.ts @@ -192,7 +192,6 @@ generateForBlockchains( substrateIosList ) -// TODO: This is necessary for backwards compatibility, but has to be removed before a release generateForBlockchains( 'beacon-ui', tezosExtensionList, From ffcd36eac1b9d227c31820d2d1ebdc53eedcee9e Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 4 Apr 2022 11:18:07 -0300 Subject: [PATCH 119/130] chore(release): v3.0.0-beta.0 --- lerna.json | 2 +- package-lock.json | 108 +++++++++--------- .../beacon-blockchain-substrate/package.json | 6 +- packages/beacon-blockchain-tezos/package.json | 6 +- packages/beacon-core/package.json | 6 +- packages/beacon-core/src/constants.ts | 2 +- packages/beacon-dapp/package.json | 10 +- packages/beacon-sdk/package.json | 22 ++-- packages/beacon-transport-matrix/package.json | 6 +- .../beacon-transport-postmessage/package.json | 8 +- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 10 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 +- 14 files changed, 99 insertions(+), 99 deletions(-) diff --git a/lerna.json b/lerna.json index ddf8b7896..df7665c16 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "2.5.0-beta.4" + "version": "3.0.0-beta.0" } diff --git a/package-lock.json b/package-lock.json index c91c6f027..2348543cc 100755 --- a/package-lock.json +++ b/package-lock.json @@ -15556,29 +15556,29 @@ }, "packages/beacon-blockchain-substrate": { "name": "@airgap/beacon-blockchain-substrate", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.4", - "@airgap/beacon-ui": "^2.5.0-beta.4" + "@airgap/beacon-types": "^3.0.0-beta.0", + "@airgap/beacon-ui": "^3.0.0-beta.0" } }, "packages/beacon-blockchain-tezos": { "name": "@airgap/beacon-blockchain-tezos", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.4", - "@airgap/beacon-ui": "^2.5.0-beta.4" + "@airgap/beacon-types": "^3.0.0-beta.0", + "@airgap/beacon-ui": "^3.0.0-beta.0" } }, "packages/beacon-core": { "name": "@airgap/beacon-core", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.4", - "@airgap/beacon-utils": "^2.5.0-beta.4", + "@airgap/beacon-types": "^3.0.0-beta.0", + "@airgap/beacon-utils": "^3.0.0-beta.0", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15586,41 +15586,41 @@ }, "packages/beacon-dapp": { "name": "@airgap/beacon-dapp", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.4", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.4", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.4", - "@airgap/beacon-ui": "^2.5.0-beta.4", + "@airgap/beacon-core": "^3.0.0-beta.0", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.0", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.0", + "@airgap/beacon-ui": "^3.0.0-beta.0", "qrcode-generator": "1.4.4" } }, "packages/beacon-transport-matrix": { "name": "@airgap/beacon-transport-matrix", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.4", - "@airgap/beacon-utils": "^2.5.0-beta.4", + "@airgap/beacon-core": "^3.0.0-beta.0", + "@airgap/beacon-utils": "^3.0.0-beta.0", "axios": "0.24.0" } }, "packages/beacon-transport-postmessage": { "name": "@airgap/beacon-transport-postmessage", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.4", - "@airgap/beacon-types": "^2.5.0-beta.4", - "@airgap/beacon-utils": "^2.5.0-beta.4", + "@airgap/beacon-core": "^3.0.0-beta.0", + "@airgap/beacon-types": "^3.0.0-beta.0", + "@airgap/beacon-utils": "^3.0.0-beta.0", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } }, "packages/beacon-types": { "name": "@airgap/beacon-types", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "license": "ISC", "dependencies": { "@types/chrome": "0.0.163" @@ -15628,18 +15628,18 @@ }, "packages/beacon-ui": { "name": "@airgap/beacon-ui", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.4", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.4", - "@airgap/beacon-types": "^2.5.0-beta.4", - "@airgap/beacon-utils": "^2.5.0-beta.4" + "@airgap/beacon-core": "^3.0.0-beta.0", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.0", + "@airgap/beacon-types": "^3.0.0-beta.0", + "@airgap/beacon-utils": "^3.0.0-beta.0" } }, "packages/beacon-utils": { "name": "@airgap/beacon-utils", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "license": "ISC", "dependencies": { "@types/libsodium-wrappers": "0.7.9", @@ -15649,12 +15649,12 @@ }, "packages/beacon-wallet": { "name": "@airgap/beacon-wallet", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.4", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.4", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.4" + "@airgap/beacon-core": "^3.0.0-beta.0", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.0", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.0" } } }, @@ -15662,22 +15662,22 @@ "@airgap/beacon-blockchain-substrate": { "version": "file:packages/beacon-blockchain-substrate", "requires": { - "@airgap/beacon-types": "^2.5.0-beta.4", - "@airgap/beacon-ui": "^2.5.0-beta.4" + "@airgap/beacon-types": "^3.0.0-beta.0", + "@airgap/beacon-ui": "^3.0.0-beta.0" } }, "@airgap/beacon-blockchain-tezos": { "version": "file:packages/beacon-blockchain-tezos", "requires": { - "@airgap/beacon-types": "^2.5.0-beta.4", - "@airgap/beacon-ui": "^2.5.0-beta.4" + "@airgap/beacon-types": "^3.0.0-beta.0", + "@airgap/beacon-ui": "^3.0.0-beta.0" } }, "@airgap/beacon-core": { "version": "file:packages/beacon-core", "requires": { - "@airgap/beacon-types": "^2.5.0-beta.4", - "@airgap/beacon-utils": "^2.5.0-beta.4", + "@airgap/beacon-types": "^3.0.0-beta.0", + "@airgap/beacon-utils": "^3.0.0-beta.0", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15686,27 +15686,27 @@ "@airgap/beacon-dapp": { "version": "file:packages/beacon-dapp", "requires": { - "@airgap/beacon-core": "^2.5.0-beta.4", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.4", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.4", - "@airgap/beacon-ui": "^2.5.0-beta.4", + "@airgap/beacon-core": "^3.0.0-beta.0", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.0", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.0", + "@airgap/beacon-ui": "^3.0.0-beta.0", "qrcode-generator": "1.4.4" } }, "@airgap/beacon-transport-matrix": { "version": "file:packages/beacon-transport-matrix", "requires": { - "@airgap/beacon-core": "^2.5.0-beta.4", - "@airgap/beacon-utils": "^2.5.0-beta.4", + "@airgap/beacon-core": "^3.0.0-beta.0", + "@airgap/beacon-utils": "^3.0.0-beta.0", "axios": "0.24.0" } }, "@airgap/beacon-transport-postmessage": { "version": "file:packages/beacon-transport-postmessage", "requires": { - "@airgap/beacon-core": "^2.5.0-beta.4", - "@airgap/beacon-types": "^2.5.0-beta.4", - "@airgap/beacon-utils": "^2.5.0-beta.4", + "@airgap/beacon-core": "^3.0.0-beta.0", + "@airgap/beacon-types": "^3.0.0-beta.0", + "@airgap/beacon-utils": "^3.0.0-beta.0", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } @@ -15720,10 +15720,10 @@ "@airgap/beacon-ui": { "version": "file:packages/beacon-ui", "requires": { - "@airgap/beacon-core": "^2.5.0-beta.4", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.4", - "@airgap/beacon-types": "^2.5.0-beta.4", - "@airgap/beacon-utils": "^2.5.0-beta.4" + "@airgap/beacon-core": "^3.0.0-beta.0", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.0", + "@airgap/beacon-types": "^3.0.0-beta.0", + "@airgap/beacon-utils": "^3.0.0-beta.0" } }, "@airgap/beacon-utils": { @@ -15737,9 +15737,9 @@ "@airgap/beacon-wallet": { "version": "file:packages/beacon-wallet", "requires": { - "@airgap/beacon-core": "^2.5.0-beta.4", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.4", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.4" + "@airgap/beacon-core": "^3.0.0-beta.0", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.0", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.0" } }, "@babel/code-frame": { diff --git a/packages/beacon-blockchain-substrate/package.json b/packages/beacon-blockchain-substrate/package.json index 1bf534615..d5001b28b 100644 --- a/packages/beacon-blockchain-substrate/package.json +++ b/packages/beacon-blockchain-substrate/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-substrate", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,7 +34,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.4", - "@airgap/beacon-ui": "^2.5.0-beta.4" + "@airgap/beacon-types": "^3.0.0-beta.0", + "@airgap/beacon-ui": "^3.0.0-beta.0" } } diff --git a/packages/beacon-blockchain-tezos/package.json b/packages/beacon-blockchain-tezos/package.json index d53d3a2b6..e64f5335f 100644 --- a/packages/beacon-blockchain-tezos/package.json +++ b/packages/beacon-blockchain-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-tezos", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,7 +34,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.4", - "@airgap/beacon-ui": "^2.5.0-beta.4" + "@airgap/beacon-types": "^3.0.0-beta.0", + "@airgap/beacon-ui": "^3.0.0-beta.0" } } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 79ef0ae55..cead5f251 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^2.5.0-beta.4", - "@airgap/beacon-utils": "^2.5.0-beta.4", + "@airgap/beacon-types": "^3.0.0-beta.0", + "@airgap/beacon-utils": "^3.0.0-beta.0", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-core/src/constants.ts b/packages/beacon-core/src/constants.ts index 85af0c3e3..92c5d5877 100644 --- a/packages/beacon-core/src/constants.ts +++ b/packages/beacon-core/src/constants.ts @@ -1,2 +1,2 @@ -export const SDK_VERSION: string = '2.5.0-beta.4' +export const SDK_VERSION: string = '3.0.0-beta.0' export const BEACON_VERSION: string = '3' diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index d76b20223..a1fbab3b5 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,10 +35,10 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.4", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.4", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.4", - "@airgap/beacon-ui": "^2.5.0-beta.4", + "@airgap/beacon-core": "^3.0.0-beta.0", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.0", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.0", + "@airgap/beacon-ui": "^3.0.0-beta.0", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-sdk/package.json b/packages/beacon-sdk/package.json index 6acfa1877..c19fa8980 100644 --- a/packages/beacon-sdk/package.json +++ b/packages/beacon-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-sdk", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,15 +35,15 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-blockchain-substrate": "^2.5.0-beta.4", - "@airgap/beacon-blockchain-tezos": "^2.5.0-beta.4", - "@airgap/beacon-core": "^2.5.0-beta.4", - "@airgap/beacon-dapp": "^2.5.0-beta.4", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.4", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.4", - "@airgap/beacon-types": "^2.5.0-beta.4", - "@airgap/beacon-ui": "^2.5.0-beta.4", - "@airgap/beacon-utils": "^2.5.0-beta.4", - "@airgap/beacon-wallet": "^2.5.0-beta.4" + "@airgap/beacon-blockchain-substrate": "^3.0.0-beta.0", + "@airgap/beacon-blockchain-tezos": "^3.0.0-beta.0", + "@airgap/beacon-core": "^3.0.0-beta.0", + "@airgap/beacon-dapp": "^3.0.0-beta.0", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.0", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.0", + "@airgap/beacon-types": "^3.0.0-beta.0", + "@airgap/beacon-ui": "^3.0.0-beta.0", + "@airgap/beacon-utils": "^3.0.0-beta.0", + "@airgap/beacon-wallet": "^3.0.0-beta.0" } } diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index cf3f48f4b..c6ec3896c 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.4", - "@airgap/beacon-utils": "^2.5.0-beta.4", + "@airgap/beacon-core": "^3.0.0-beta.0", + "@airgap/beacon-utils": "^3.0.0-beta.0", "axios": "0.24.0" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index d3b381202..62679dd36 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.4", - "@airgap/beacon-types": "^2.5.0-beta.4", - "@airgap/beacon-utils": "^2.5.0-beta.4", + "@airgap/beacon-core": "^3.0.0-beta.0", + "@airgap/beacon-types": "^3.0.0-beta.0", + "@airgap/beacon-utils": "^3.0.0-beta.0", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index b070b49ed..6cc57d171 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index 09ad20346..d5495eee5 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.4", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.4", - "@airgap/beacon-types": "^2.5.0-beta.4", - "@airgap/beacon-utils": "^2.5.0-beta.4" + "@airgap/beacon-core": "^3.0.0-beta.0", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.0", + "@airgap/beacon-types": "^3.0.0-beta.0", + "@airgap/beacon-utils": "^3.0.0-beta.0" } } diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index ef854ab46..5695c454e 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index eb91337cd..b21e57ded 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "2.5.0-beta.4", + "version": "3.0.0-beta.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,8 +35,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^2.5.0-beta.4", - "@airgap/beacon-transport-matrix": "^2.5.0-beta.4", - "@airgap/beacon-transport-postmessage": "^2.5.0-beta.4" + "@airgap/beacon-core": "^3.0.0-beta.0", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.0", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.0" } } From 0fbccb9cbc6030fe312ba21d81124df8e48b2128 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 11 Apr 2022 12:40:38 -0300 Subject: [PATCH 120/130] Merge UI fix --- .gitlab-ci.yml | 5 +- .gitlab/issue_templates/Bug.md | 47 ++- .gitlab/issue_templates/Epic.md | 25 ++ .gitlab/issue_templates/Feature.md | 37 +- .gitlab/issue_templates/Task.md | 33 ++ assets/alert/alert-container.html | 65 ---- assets/alert/alert-default.html | 3 - assets/alert/alert-pair.html | 15 - assets/toast/powered-by-beacon.html | 26 -- assets/toast/toast.html | 63 ---- examples/dapp.html | 54 ++- examples/wallet.html | 2 +- .../beacon-core/src/errors/BeaconError.ts | 4 +- .../errors/TransactionInvalidBeaconError.ts | 8 +- packages/beacon-dapp/src/events.ts | 50 +-- .../P2PCommunicationClient.ts | 2 +- .../src/PostMessageClient.ts | 13 + .../src/PostMessageTransport.ts | 5 + packages/beacon-ui/src/ui/alert/Alert.ts | 88 +++-- .../beacon-ui/src/ui/alert/PairingAlert.ts | 151 +++++--- packages/beacon-ui/src/ui/toast/Toast.ts | 113 ++++-- packages/beacon-ui/src/utils/html-elements.ts | 118 ++++++ packages/beacon-ui/src/utils/templates.ts | 351 ++++++++++++++++++ scripts/generate-wallet-list.ts | 19 +- 24 files changed, 935 insertions(+), 362 deletions(-) create mode 100644 .gitlab/issue_templates/Epic.md create mode 100644 .gitlab/issue_templates/Task.md delete mode 100644 assets/alert/alert-container.html delete mode 100644 assets/alert/alert-default.html delete mode 100644 assets/alert/alert-pair.html delete mode 100644 assets/toast/powered-by-beacon.html delete mode 100644 assets/toast/toast.html create mode 100644 packages/beacon-ui/src/utils/html-elements.ts create mode 100644 packages/beacon-ui/src/utils/templates.ts diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f2482bdae..827783c43 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -75,8 +75,9 @@ publish_beta: publish: stage: publish - only: - - master + # TODO: Enable again + # only: + # - master when: manual script: - docker run --env NPM_AUTH_TOKEN --name unit-$CI_COMMIT_SHA $GOOGLE_TAG ./npm-ci-publish.sh diff --git a/.gitlab/issue_templates/Bug.md b/.gitlab/issue_templates/Bug.md index 40839c44a..3ec9c9a33 100644 --- a/.gitlab/issue_templates/Bug.md +++ b/.gitlab/issue_templates/Bug.md @@ -1,33 +1,46 @@ -### Summary +## Summary -(Summarize the bug encountered concisely) + -### Steps to reproduce +## Steps to reproduce -(How one can reproduce the issue - this is very important) + -### What is the current _bug_ behavior? +## What is the current _bug_ behavior? -(What actually happens) + -### What is the expected _correct_ behavior? +## What is the expected _correct_ behavior? -(What you should see instead) + -### Relevant logs and/or screenshots +## Relevant logs, screenshots and/or links -(Paste any relevant logs - please use code blocks (```) to format console output, -logs, and code as it's tough to read otherwise.) + -### Possible fixes +## Possible fixes / approach -(If you can, link to the line of code that might be responsible for the problem) + + +## Additional information + + + +--- + + + +/estimate + + + +/label ~"type::bug" ~"proj::airgap" ~"proj::beacon" diff --git a/.gitlab/issue_templates/Epic.md b/.gitlab/issue_templates/Epic.md new file mode 100644 index 000000000..c4ef831bc --- /dev/null +++ b/.gitlab/issue_templates/Epic.md @@ -0,0 +1,25 @@ + + +## Summary + + + +## Which issues need to be completed + + + + + + + +/label ~2141 ~"proj::airgap" ~"proj::beacon" diff --git a/.gitlab/issue_templates/Feature.md b/.gitlab/issue_templates/Feature.md index a36500158..c5852d45a 100644 --- a/.gitlab/issue_templates/Feature.md +++ b/.gitlab/issue_templates/Feature.md @@ -1,24 +1,37 @@ -### Summary +## Summary -(Summarize the feature concisely) + -### What is the expected behavior? +## What is the expected behavior? -(Describe what the user should see) + -### Relevant mockups or screenshots +## Relevant Mockups, Screenshots and/or links -(Paste or link any relevant mockups or screenshot that describe the feature.) + -### Possible approach +## Possible fixes / approach -(Outline a possible approach for this feature, ex. make an example how the code could look like) + + +## Additional information + + + + + + + +/estimate + + + +/label ~"type::feature" ~"proj::airgap" ~"proj::beacon" diff --git a/.gitlab/issue_templates/Task.md b/.gitlab/issue_templates/Task.md new file mode 100644 index 000000000..1715b8f73 --- /dev/null +++ b/.gitlab/issue_templates/Task.md @@ -0,0 +1,33 @@ + + +## Summary + + + +## What steps need to be done? + + + +## Relevant Mockups, Screenshots and/or links + + + +## Additional information + + + + + + + +/estimate + + + +/label ~"type::task" ~"proj::airgap" ~"proj::beacon" diff --git a/assets/alert/alert-container.html b/assets/alert/alert-container.html deleted file mode 100644 index 60edc235a..000000000 --- a/assets/alert/alert-container.html +++ /dev/null @@ -1,65 +0,0 @@ -
-
-
- - - - - - - - - -
-
-
-
-
-
-
-
-
-
-

- {{callToAction}} -

- - {{main}} - -
- {{buttons}} -
-
-
-
-
-
diff --git a/assets/alert/alert-default.html b/assets/alert/alert-default.html deleted file mode 100644 index 9443580ff..000000000 --- a/assets/alert/alert-default.html +++ /dev/null @@ -1,3 +0,0 @@ -
- {{body}} -
diff --git a/assets/alert/alert-pair.html b/assets/alert/alert-pair.html deleted file mode 100644 index ec1cf126c..000000000 --- a/assets/alert/alert-pair.html +++ /dev/null @@ -1,15 +0,0 @@ - - -
-

- Scan QR code with a Beacon-compatible wallet. - Learn more -

- {{body}} -
- -
- -
- -
diff --git a/assets/toast/powered-by-beacon.html b/assets/toast/powered-by-beacon.html deleted file mode 100644 index 066cd39c2..000000000 --- a/assets/toast/powered-by-beacon.html +++ /dev/null @@ -1,26 +0,0 @@ - - powered by - - beacon_logo - - - - - Beacon - diff --git a/assets/toast/toast.html b/assets/toast/toast.html deleted file mode 100644 index e38c0c2ff..000000000 --- a/assets/toast/toast.html +++ /dev/null @@ -1,63 +0,0 @@ -
-
- -

{{text}}

- - Open - - -
- - - -
-
-
-
-
diff --git a/examples/dapp.html b/examples/dapp.html index 2ee738c8f..111d55400 100644 --- a/examples/dapp.html +++ b/examples/dapp.html @@ -48,6 +48,8 @@



+ +



@@ -122,13 +124,13 @@ const updateActiveAccount = () => { client.getActiveAccount().then((activeAccount) => { if (activeAccount) { - document.getElementById('activeAccount').innerHTML = activeAccount.address - document.getElementById('activeAccountNetwork').innerHTML = activeAccount.network.type - document.getElementById('activeAccountTransport').innerHTML = activeAccount.origin.type + document.getElementById('activeAccount').innerText = activeAccount.address + document.getElementById('activeAccountNetwork').innerText = activeAccount.network.type + document.getElementById('activeAccountTransport').innerText = activeAccount.origin.type } else { - document.getElementById('activeAccount').innerHTML = '' - document.getElementById('activeAccountNetwork').innerHTML = '' - document.getElementById('activeAccountTransport').innerHTML = '' + document.getElementById('activeAccount').innerText = '' + document.getElementById('activeAccountNetwork').innerText = '' + document.getElementById('activeAccountTransport').innerText = '' } }) } @@ -137,7 +139,7 @@ // Display the active account in the UI const updateColorMode = () => { client.getColorMode().then((colorMode) => { - document.getElementById('activeColorMode').innerHTML = colorMode + document.getElementById('activeColorMode').innerText = colorMode }) } updateColorMode() @@ -169,6 +171,38 @@ }) } + // send contract call + const sendContractCall = () => { + return client.getActiveAccount().then(async (activeAccount) => { + const TZ_BUTTON_COLORS_CONTRACT = 'KT1RPW5kTX6WFxg8JK34rGEU24gqEEudyfvz' + const tokenId = '925' + + // Setting the color of TzButton is only possible if you are currently the leader and own a color + // So this call will likely fail + try { + const result = await client.requestOperation({ + operationDetails: [ + { + kind: beacon.TezosOperationType.TRANSACTION, + amount: '0', + destination: TZ_BUTTON_COLORS_CONTRACT, + parameters: { + entrypoint: 'set_color', + value: { + int: tokenId + } + } + } + ] + }) + + console.log(result) + } catch (error) { + console.log(`The contract call failed and the following error was returned:`, error) + } + }) + } + // Initiate a permission request const requestPermission = (callback) => { client @@ -185,7 +219,6 @@ }) } - // Add event listener to the button document.getElementById('connect').addEventListener('click', () => { // Check if we have an active account client.getActiveAccount().then((activeAccount) => { @@ -202,6 +235,11 @@ }) }) + // Add event listener to the button + document.getElementById('sendContractCall').addEventListener('click', () => { + sendContractCall() + }) + // Add event listener to the button document.getElementById('requestPermission').addEventListener('click', () => { requestPermission() diff --git a/examples/wallet.html b/examples/wallet.html index c5c83794f..953705f4c 100644 --- a/examples/wallet.html +++ b/examples/wallet.html @@ -45,7 +45,7 @@ }) const setStatus = (status) => { - document.getElementById('status').innerHTML = status ? 'Status: ' + status : status + document.getElementById('status').innerText = status ? 'Status: ' + status : status } // Add event listener to the button diff --git a/packages/beacon-core/src/errors/BeaconError.ts b/packages/beacon-core/src/errors/BeaconError.ts index 331d85f33..63cffaff3 100644 --- a/packages/beacon-core/src/errors/BeaconError.ts +++ b/packages/beacon-core/src/errors/BeaconError.ts @@ -25,8 +25,8 @@ export abstract class BeaconError implements Error { public title: string = 'Error' // Visible in the UI public description: string // Visible in the UI - public get fullDescription(): string { - return this.description + public get fullDescription(): { description: string; data?: string } { + return { description: this.description } } constructor(errorType: BeaconErrorType, message: string) { diff --git a/packages/beacon-core/src/errors/TransactionInvalidBeaconError.ts b/packages/beacon-core/src/errors/TransactionInvalidBeaconError.ts index e5efa3931..59004c7cb 100644 --- a/packages/beacon-core/src/errors/TransactionInvalidBeaconError.ts +++ b/packages/beacon-core/src/errors/TransactionInvalidBeaconError.ts @@ -8,12 +8,8 @@ export class TransactionInvalidBeaconError extends BeaconError { public name: string = 'TransactionInvalidBeaconError' public title: string = 'Transaction Invalid' - public get fullDescription(): string { - return `${this.description}
${JSON.stringify(
-      this.data,
-      undefined,
-      2
-    )}
` + public get fullDescription(): { description: string; data?: string } { + return { description: this.description, data: JSON.stringify(this.data, undefined, 2) } } constructor(public readonly data: unknown) { diff --git a/packages/beacon-dapp/src/events.ts b/packages/beacon-dapp/src/events.ts index a06c57389..cb79b29c0 100644 --- a/packages/beacon-dapp/src/events.ts +++ b/packages/beacon-dapp/src/events.ts @@ -41,8 +41,6 @@ const logger = new Logger('BeaconEvents') const SUCCESS_TIMER: number = 5 * 1000 -const SVG_EXTERNAL: string = `` - /** * The different events that can be emitted by the beacon-sdk */ @@ -186,7 +184,8 @@ const showSentToast = async (data: RequestSentInfo): Promise => { } } actions.push({ - text: `No answer from your wallet received yet. Please make sure the wallet is open.` + text: `No answer from your wallet received yet. Please make sure the wallet is open.`, + isBold: true }) actions.push({ text: 'Did you make a mistake?', @@ -210,7 +209,7 @@ const showSentToast = async (data: RequestSentInfo): Promise => { }) openToast({ - body: `Request sent to {{wallet}}`, + body: `Request sent to\u00A0 {{wallet}}`, walletInfo: data.walletInfo, state: 'loading', actions, @@ -224,16 +223,18 @@ const showAcknowledgedToast = async (data: { walletInfo: WalletInfo }): Promise => { openToast({ - body: 'Awaiting confirmation in {{wallet}}', + body: 'Awaiting confirmation in\u00A0 {{wallet}}', state: 'acknowledge', walletInfo: data.walletInfo }).catch((toastError) => console.error(toastError)) } const showPrepare = async (data: { walletInfo?: WalletInfo }): Promise => { - const text = data.walletInfo ? `Preparing Request for {{wallet}}...` : 'Preparing Request...' + const text = data.walletInfo + ? `Preparing Request for\u00A0 {{wallet}}...` + : 'Preparing Request...' openToast({ - body: `${text}`, + body: text, state: 'prepare', walletInfo: data.walletInfo }).catch((toastError) => console.error(toastError)) @@ -277,7 +278,8 @@ const showErrorToast = async ( const actions: ToastAction[] = [ { - text: `${error.title}` + text: error.title, + isBold: true }, { text: error.description @@ -296,7 +298,8 @@ const showErrorToast = async ( await openAlert({ title: error.title, // eslint-disable-next-line @typescript-eslint/unbound-method - body: error.fullDescription, + body: error.fullDescription.description, + data: error.fullDescription.data, buttons }) } @@ -304,7 +307,7 @@ const showErrorToast = async ( } await openToast({ - body: `{{wallet}} has returned an error`, + body: `{{wallet}}\u00A0 has returned an error`, timer: response.errorResponse.errorType === BeaconErrorType.ABORTED_ERROR ? SUCCESS_TIMER @@ -393,14 +396,15 @@ const showPermissionSuccessAlert = async ( const { output } = data await openToast({ - body: `{{wallet}} has granted permission`, + body: `{{wallet}}\u00A0 has granted permission`, timer: SUCCESS_TIMER, walletInfo: data.walletInfo, state: 'finished', actions: [ { text: 'Address', - actionText: `${shortenString(output.address)}` + actionText: shortenString(output.address), + isBold: true }, { text: 'Network', @@ -425,14 +429,16 @@ const showOperationSuccessAlert = async ( const { account, output, blockExplorer } = data await openToast({ - body: `{{wallet}} successfully submitted operation`, + body: `{{wallet}}\u00A0 successfully submitted operation`, timer: SUCCESS_TIMER, state: 'finished', walletInfo: data.walletInfo, actions: [ { - text: `${shortenString(output.transactionHash)}`, - actionText: `Open Blockexplorer ${SVG_EXTERNAL}`, + text: shortenString(output.transactionHash), + isBold: true, + actionText: `Open Blockexplorer`, + actionLogo: 'external', actionCallback: async (): Promise => { const link: string = await blockExplorer.getTransactionLink( output.transactionHash, @@ -456,13 +462,13 @@ const showSignSuccessAlert = async ( ): Promise => { const output = data.output await openToast({ - body: `{{wallet}} successfully signed payload`, + body: `{{wallet}}\u00A0 successfully signed payload`, timer: SUCCESS_TIMER, state: 'finished', walletInfo: data.walletInfo, actions: [ { - text: `Signature: ${shortenString(output.signature)}`, + text: `Signature: ${shortenString(output.signature)}`, actionText: 'Copy to clipboard', actionCallback: async (): Promise => { navigator.clipboard.writeText(output.signature).then( @@ -491,7 +497,7 @@ const showSignSuccessAlert = async ( // ): Promise => { // const output = data.output // await openToast({ -// body: `{{wallet}} successfully ${ +// body: `{{wallet}}\u00A0 successfully ${ // data.output.cryptoOperation === EncryptionOperation.ENCRYPT ? 'encrypted' : 'decrypted' // } payload`, // timer: SUCCESS_TIMER, @@ -528,14 +534,16 @@ const showBroadcastSuccessAlert = async ( const { network, output, blockExplorer } = data await openToast({ - body: `{{wallet}} successfully injected operation`, + body: `{{wallet}}\u00A0 successfully injected operation`, timer: SUCCESS_TIMER, state: 'finished', walletInfo: data.walletInfo, actions: [ { - text: `${shortenString(output.transactionHash)}`, - actionText: `Open Blockexplorer ${SVG_EXTERNAL}`, + text: shortenString(output.transactionHash), + isBold: true, + actionText: `Open Blockexplorer`, + actionLogo: 'external', actionCallback: async (): Promise => { const link: string = await blockExplorer.getTransactionLink( output.transactionHash, diff --git a/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts b/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts index 294e1098f..4b0b9667f 100644 --- a/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts +++ b/packages/beacon-transport-matrix/src/communication-client/P2PCommunicationClient.ts @@ -50,7 +50,7 @@ export const KNOWN_RELAY_SERVERS = [ 'beacon-node-1.hope-2.papers.tech', 'beacon-node-1.hope-3.papers.tech', 'beacon-node-1.hope-4.papers.tech', - 'beacon-node-0.papers.tech:8448' + 'beacon-node-1.hope-5.papers.tech' ] /** diff --git a/packages/beacon-transport-postmessage/src/PostMessageClient.ts b/packages/beacon-transport-postmessage/src/PostMessageClient.ts index 452f41eed..0ad6ced68 100644 --- a/packages/beacon-transport-postmessage/src/PostMessageClient.ts +++ b/packages/beacon-transport-postmessage/src/PostMessageClient.ts @@ -81,6 +81,11 @@ export class PostMessageClient extends MessageBasedClient { ): Promise { // eslint-disable-next-line @typescript-eslint/no-explicit-any const fn = async (event: any): Promise => { + if (event.source !== windowRef || event.origin !== windowRef.location.origin) { + // TODO: Add to error handler: console.debug('[Beacon]: Event received from untrusted origin') + return + } + const data = event?.data?.message as ExtensionMessage if ( @@ -127,6 +132,14 @@ export class PostMessageClient extends MessageBasedClient { private async subscribeToMessages(): Promise { windowRef.addEventListener('message', (message) => { + if ( + (message as any).source !== windowRef || + (message as any).origin !== windowRef.location.origin + ) { + // TODO: Add to error handler: console.debug('[Beacon]: Event received from untrusted origin') + return + } + if (typeof message === 'object' && message) { // eslint-disable-next-line @typescript-eslint/no-explicit-any const data: { diff --git a/packages/beacon-transport-postmessage/src/PostMessageTransport.ts b/packages/beacon-transport-postmessage/src/PostMessageTransport.ts index d05057ee6..5503e49c4 100644 --- a/packages/beacon-transport-postmessage/src/PostMessageTransport.ts +++ b/packages/beacon-transport-postmessage/src/PostMessageTransport.ts @@ -102,6 +102,11 @@ export class PostMessageTransport< // eslint-disable-next-line @typescript-eslint/no-explicit-any const fn = (event: any): void => { + if (event.source !== windowRef || event.origin !== windowRef.location.origin) { + // TODO: Add to error handler: console.debug('[Beacon]: Event received from untrusted origin') + return + } + const data = event.data as ExtensionMessage< string, { id: string; name: string; iconURL: string } diff --git a/packages/beacon-ui/src/ui/alert/Alert.ts b/packages/beacon-ui/src/ui/alert/Alert.ts index f7d63533c..47d98fce7 100644 --- a/packages/beacon-ui/src/ui/alert/Alert.ts +++ b/packages/beacon-ui/src/ui/alert/Alert.ts @@ -3,10 +3,11 @@ import { NetworkType, P2PPairingRequest, PostMessagePairingRequest } from '@airgap/beacon-types' import { windowRef } from '@airgap/beacon-core' import { generateGUID } from '@airgap/beacon-utils' -import { replaceInTemplate } from '../../utils/replace-in-template' import { alertTemplates } from './alert-templates' import { preparePairingAlert } from './PairingAlert' import { getColorMode } from '../../utils/colorMode' +import { createSanitizedElement } from '../../utils/html-elements' +import { constructDefaultAlert, constructPairAlert } from '../../utils/templates' export interface AlertButton { text: string @@ -17,6 +18,7 @@ export interface AlertButton { export interface AlertConfig { title: string body?: string + data?: string timer?: number buttons?: AlertButton[] pairingPayload?: { @@ -37,30 +39,51 @@ if (typeof window !== 'undefined' && typeof window.document !== 'undefined') { const timeout: Record = {} -const addQR = (dataString?: string): string => { +const addQR = (dataString?: string): HTMLElement => { if (typeof dataString === 'string') { - return `
${dataString}` + return createSanitizedElement( + 'div', + [], + [['id', 'beacon--qr__container']], + [ + createSanitizedElement( + 'div', + [], + [['id', 'beacon--qr__copy__container']], + [ + createSanitizedElement( + 'button', + ['beacon-modal__button--outline'], + [['id', 'beacon--qr__copy']], + 'Copy' + ) + ] + ) + ] + ) } - return '' + return createSanitizedElement('span', [], [], '') } const formatAlert = ( id: string, - body: string, + body: HTMLElement, title: string, buttons: AlertButton[], hasPairingPayload?: boolean ): { style: string - html: string + html: HTMLElement } => { const callToAction: string = title - const buttonsHtml = buttons.map( - (button, index: number) => - `` + const buttonsHtml = buttons.map((button, index: number) => + createSanitizedElement( + 'button', + [`beacon-modal__button${button.style === 'outline' ? '--outline' : ''}`], + [['id', `beacon-alert-${id}-${index}`]], + button.text + ) ) let allStyles = alertTemplates.default.css @@ -69,30 +92,15 @@ const formatAlert = ( allStyles += alertTemplates.pair.css } - let alertContainer = alertTemplates.container + const callToActionEl = createSanitizedElement('span', [], [], callToAction) - alertContainer = replaceInTemplate( - alertContainer, - 'main', - hasPairingPayload ? alertTemplates.pair.html : alertTemplates.default.html - ) - - alertContainer = replaceInTemplate(alertContainer, 'callToAction', callToAction) - alertContainer = replaceInTemplate(alertContainer, 'buttons', buttonsHtml.join(' ')) - - alertContainer = replaceInTemplate(alertContainer, 'body', body) - alertContainer = replaceInTemplate(alertContainer, 'id', id) - - if (alertContainer.indexOf('{{') >= 0) { - const start = alertContainer.indexOf('{{') - const end = alertContainer.indexOf('}}') - console.error('Not all placeholders replaced!', alertContainer.substr(start, end - start)) - throw new Error('Not all placeholders replaced!') - } + const alertEl = hasPairingPayload + ? constructPairAlert(id, [callToActionEl], buttonsHtml, [body]) + : constructDefaultAlert(id, [callToActionEl], buttonsHtml, [body]) return { style: allStyles, - html: alertContainer + html: alertEl } } @@ -164,6 +172,7 @@ const closeAlerts = async (): Promise => // eslint-disable-next-line complexity const openAlert = async (alertConfig: AlertConfig): Promise => { const body = alertConfig.body + const data = alertConfig.data const title = alertConfig.title const timer = alertConfig.timer const pairingPayload = alertConfig.pairingPayload @@ -193,7 +202,18 @@ const openAlert = async (alertConfig: AlertConfig): Promise => { })) ?? []) ] - const formattedBody = pairingPayload ? addQR(body) : body ?? '' + let formattedBody = pairingPayload + ? addQR(body) + : createSanitizedElement('span', [], [], body ?? '') + + if (data) { + formattedBody = createSanitizedElement( + 'span', + [], + [], + [formattedBody, createSanitizedElement('pre', [], [['style', 'text-align: left']], data)] + ) + } const { style, html } = formatAlert( id, @@ -202,7 +222,7 @@ const openAlert = async (alertConfig: AlertConfig): Promise => { buttons, !!pairingPayload?.p2pSyncCode ) - wrapper.innerHTML = html + wrapper.appendChild(html) const styleEl = document.createElement('style') @@ -229,7 +249,7 @@ const openAlert = async (alertConfig: AlertConfig): Promise => { if (disclaimer) { const disclaimerContainer = shadowRoot.getElementById(`beacon--disclaimer`) if (disclaimerContainer) { - disclaimerContainer.innerHTML = disclaimer + disclaimerContainer.innerText = disclaimer } } diff --git a/packages/beacon-ui/src/ui/alert/PairingAlert.ts b/packages/beacon-ui/src/ui/alert/PairingAlert.ts index 9601a2cc8..8618b9da0 100644 --- a/packages/beacon-ui/src/ui/alert/PairingAlert.ts +++ b/packages/beacon-ui/src/ui/alert/PairingAlert.ts @@ -12,6 +12,12 @@ import { PairingAlertWallet, WalletType } from './Pairing' +import { + createSanitizedElement, + createSVGElement, + createSVGPathElement, + removeAllChildren +} from '../../utils/html-elements' const logger = new Logger('Alert') @@ -54,21 +60,26 @@ export const preparePairingAlert = async ( info.buttons.forEach(async (button) => { const randomId = await generateGUID() - const x = ` -
${button.title}
- - ` + const titleEl = createSanitizedElement('div', ['beacon-list__title'], [], button.title) + const buttonEl = createSanitizedElement( + 'button', + ['beacon-modal__button connect__btn'], + [], + button.text + ) + + const linkEl = document.createElement('a') + linkEl.id = `button_${randomId}` - const el = document.createElement('a') - el.id = `button_${randomId}` - el.innerHTML = x + linkEl.appendChild(titleEl) + linkEl.appendChild(buttonEl) - buttonListWrapper.appendChild(el) + buttonListWrapper.appendChild(linkEl) - const buttonEl = shadowRoot.getElementById(el.id) + const shadowButtonEl = shadowRoot.getElementById(linkEl.id) - if (buttonEl) { - buttonEl.addEventListener('click', async () => { + if (shadowButtonEl) { + shadowButtonEl.addEventListener('click', async () => { button.clickHandler() }) } @@ -77,24 +88,61 @@ export const preparePairingAlert = async ( const showWallet = (listEl: HTMLElement, type: WalletType, wallet: PairingAlertWallet) => { const altTag = `Open in ${wallet.name}` const walletKey = wallet.key - const x = ` - -
${wallet.name} - ${wallet.enabled ? '' : '

Not installed

'} -
- ${ - wallet.logo - ? `
- -
` - : '' - } -
- ` + + const logoEl = wallet.logo + ? createSanitizedElement( + 'div', + [], + [], + [createSanitizedElement('img', ['beacon-selection__img'], [['src', wallet.logo]], '')] + ) + : createSVGElement( + ['beacon-selection__img', 'svg-inline--fa', 'fa-wallet', 'fa-w-16'], + [ + ['aria-hidden', 'true'], + ['focusable', 'false'], + ['data-prefix', 'fas'], + ['data-icon', 'wallet'], + ['role', 'img'], + ['xmlns', 'http://www.w3.org/2000/svg'], + ['viewBox', '0 0 512 512'], + ['style', 'enable-background:new 0 0 512 512;'], + ['xml:space', 'preserve'] + ], + [ + createSVGPathElement([ + [ + 'd', + 'M376.2,181H152.9c-5.2,0-9.4-4.2-9.4-9.4s4.2-9.4,9.4-9.4h225c5.2,0,9.4-4.2,9.4-9.4c0-15.5-12.6-28.1-28.1-28.1H143.5c-20.7,0-37.5,16.8-37.5,37.5v187.5c0,20.7,16.8,37.5,37.5,37.5h232.7c16.4,0,29.8-12.6,29.8-28.1v-150C406,193.6,392.7,181,376.2,181z M349.8,302.9c-10.4,0-18.8-8.4-18.8-18.8s8.4-18.8,18.8-18.8s18.8,8.4,18.8,18.8S360.1,302.9,349.8,302.9z' + ] + ]) + ] + ) + + const nameEl = createSanitizedElement( + 'div', + ['beacon-selection__name'], + [], + [ + createSanitizedElement('span', [], [], wallet.name), + wallet.enabled ? undefined : createSanitizedElement('p', [], [], 'Not installed') + ] + ) + + const linkEl = createSanitizedElement( + 'a', + ['beacon-selection__list', wallet.enabled ? '' : 'disabled'], + [ + ['tabindex', '0'], + ['id', `wallet_${walletKey}`], + ['alt', altTag], + ['target', '_blank'] + ], + [nameEl, logoEl] + ) const el = document.createElement('span') - el.innerHTML = x + el.appendChild(linkEl) listEl.appendChild(el) @@ -108,17 +156,33 @@ export const preparePairingAlert = async ( wallet.clickHandler() const modalEl: HTMLElement | null = shadowRoot.getElementById('beacon-modal__content') if (modalEl && type !== WalletType.EXTENSION && type !== WalletType.IOS) { - modalEl.innerHTML = `${ - wallet.logo - ? `

Establishing Connection..

-
-
- -
${wallet.name}
-
` - : '' - } - ` + removeAllChildren(modalEl) + modalEl.appendChild( + createSanitizedElement('p', ['beacon-alert__title'], [], 'Establishing Connection..') + ) + modalEl.appendChild( + createSanitizedElement('div', ['progress-line'], [['id', 'beacon-toast-loader']], '') + ) + modalEl.appendChild( + createSanitizedElement( + 'div', + ['beacon--selected__container'], + [], + [ + ...(wallet.logo + ? [ + createSanitizedElement( + 'img', + ['beacon-selection__img'], + [['src', wallet.logo]], + '' + ), + createSanitizedElement('img', ['beacon--selection__name__lg'], [], wallet.name) + ] + : []) + ] + ) + ) } } @@ -131,17 +195,16 @@ export const preparePairingAlert = async ( const listContainer = document.createElement('span') container.appendChild(listContainer) const showWalletLists = (walletLists: PairingAlertList[]): void => { - listContainer.innerHTML = '' + removeAllChildren(listContainer) walletLists.forEach((list) => { const listWrapperEl = document.createElement('div') listWrapperEl.classList.add('beacon-list__wrapper') listContainer.appendChild(listWrapperEl) - const listTitleEl = document.createElement('div') - listTitleEl.classList.add('beacon-list__title') - listTitleEl.innerHTML = list.title - listWrapperEl.appendChild(listTitleEl) + listWrapperEl.appendChild( + createSanitizedElement('div', ['beacon-list__title'], [], list.title) + ) const listEl = document.createElement('span') listWrapperEl.appendChild(listEl) @@ -209,7 +272,7 @@ export const preparePairingAlert = async ( const showPlatform = async (type: 'ios' | 'android' | 'desktop' | 'none'): Promise => { const platformSwitch: HTMLElement | null = shadowRoot.getElementById(`beacon-switch`) if (platformSwitch) { - platformSwitch.innerHTML = + platformSwitch.innerText = type === 'none' ? 'Pair wallet on same device' : 'Pair wallet on another device' } diff --git a/packages/beacon-ui/src/ui/toast/Toast.ts b/packages/beacon-ui/src/ui/toast/Toast.ts index 3425ab17f..514ed2a7c 100644 --- a/packages/beacon-ui/src/ui/toast/Toast.ts +++ b/packages/beacon-ui/src/ui/toast/Toast.ts @@ -1,12 +1,15 @@ -import { replaceInTemplate } from '../../utils/replace-in-template' import { generateGUID } from '@airgap/beacon-utils' +import { WalletInfo } from '@airgap/beacon-types' import { toastTemplates } from './toast-templates' import { getColorMode } from '../../utils/colorMode' -import { WalletInfo } from '@airgap/beacon-types' +import { createIconSVGExternal, createSanitizedElement } from '../../utils/html-elements' +import { constructPoweredByBeacon, constructToastContainer } from '../../utils/templates' export interface ToastAction { text: string + isBold?: boolean actionText?: string + actionLogo?: 'external' actionCallback?(): Promise } @@ -32,21 +35,50 @@ let expandTimeout: number | undefined let globalToastConfig: ToastConfig | undefined const createActionItem = async (toastAction: ToastAction): Promise => { - const { text, actionText, actionCallback } = toastAction + const { text, isBold, actionText, actionLogo, actionCallback } = toastAction const id = await generateGUID() const wrapper = document.createElement('div') wrapper.classList.add('beacon-toast__action__item') + removeAllChildNodes(wrapper) + + const wrapBold = (element: string | HTMLElement[]) => { + return createSanitizedElement('strong', [], [], element) + } + if (actionCallback) { - wrapper.innerHTML = text.length > 0 ? `

${text}

` : `` - wrapper.innerHTML += `

${actionText}

` + if (text.length > 0) { + wrapper.appendChild(createSanitizedElement('p', [], [], text)) + } + const textEl = createSanitizedElement( + 'span', + [], + [], + [ + createSanitizedElement('span', [], [], actionText), + actionLogo && actionLogo === 'external' ? createIconSVGExternal() : undefined + ] + ) + wrapper.appendChild( + createSanitizedElement( + 'p', + [], + [], + [createSanitizedElement('a', [], [['id', id]], [isBold ? wrapBold([textEl]) : textEl])] + ) + ) } else if (actionText) { - wrapper.innerHTML = - text.length > 0 ? `

${text}

` : `` - wrapper.innerHTML += `

${actionText}

` + if (text.length > 0) { + wrapper.appendChild( + createSanitizedElement('p', ['beacon-toast__action__item__subtitle'], [], text) + ) + } + const textEl = createSanitizedElement('span', [], [], actionText) + wrapper.appendChild(createSanitizedElement('p', [], [], [isBold ? wrapBold([textEl]) : textEl])) } else { - wrapper.innerHTML = `

${text}

` + const textEl = createSanitizedElement('p', [], [], text) + wrapper.appendChild(isBold ? wrapBold([textEl]) : textEl) } if (actionCallback) { @@ -62,37 +94,62 @@ const removeAllChildNodes = (parent: HTMLElement): void => { } } -const formatToastText = (html: string): string => { +const formatToastText = (html: string): HTMLElement[] => { const walletIcon = globalToastConfig?.walletInfo?.icon const walletName = globalToastConfig?.walletInfo?.name - let wallet = '' + let walletEl: HTMLElement | undefined + + const walletNameEl = createSanitizedElement('strong', [], [], walletName ?? 'Wallet') + if (walletIcon) { - wallet += `` - } - if (walletName) { - wallet += `${walletName}` + walletEl = createSanitizedElement( + 'span', + ['beacon-toast__wallet__container'], + [], + [ + createSanitizedElement('img', ['beacon-toast__content__img'], [['src', walletIcon]], ''), + walletNameEl + ] + ) } else { - wallet += `Wallet` + walletEl = walletNameEl } - return replaceInTemplate(html, 'wallet', wallet) + const splits = html.split(`{{wallet}}`) + + if (splits.length === 1) { + return [createSanitizedElement('span', [], [], html)] + } else { + const out: HTMLElement[] = [] + for (let x = 0; x < splits.length; x++) { + out.push(createSanitizedElement('span', [], [], splits[x])) + if (x < splits.length - 1) { + out.push(walletEl) + } + } + + return out + } } const getToastHTML = ( config: ToastConfig ): { style: string - html: string + html: HTMLElement } => { const text = config.body - let html = replaceInTemplate(toastTemplates.default.html, 'text', text) - html = formatToastText(html) + const elements = formatToastText(text) + + const outerEl = createSanitizedElement('span', ['beacon-toast__wallet__outer'], [], elements) + + const toastContainerEl = constructToastContainer([outerEl]) return { style: toastTemplates.default.css, - html + html: toastContainerEl } } @@ -235,7 +292,7 @@ const addActionsToToast = async ( const poweredByBeacon = document.createElement('small') poweredByBeacon.classList.add('beacon-toast__powered') - poweredByBeacon.innerHTML = toastTemplates.default.poweredByBeacon + poweredByBeacon.appendChild(constructPoweredByBeacon()) list.appendChild(poweredByBeacon) showExpand(shadowRoot) @@ -255,7 +312,7 @@ const createNewToast = async (toastConfig: ToastConfig): Promise => { const wrapper = document.createElement('div') const { style, html } = getToastHTML(toastConfig) - wrapper.innerHTML = html + wrapper.appendChild(html) const styleEl = document.createElement('style') @@ -353,7 +410,15 @@ const updateToast = async (toastConfig: ToastConfig): Promise => { const toastTextEl = shadowRoot.getElementById('beacon-text-content') if (toastTextEl) { - toastTextEl.innerHTML = formatToastText(toastConfig.body) + removeAllChildNodes(toastTextEl) + toastTextEl.appendChild( + createSanitizedElement( + 'span', + ['beacon-toast__wallet__outer'], + [], + formatToastText(toastConfig.body) + ) + ) } const openWalletButtonEl = shadowRoot.getElementById('beacon-open-wallet') diff --git a/packages/beacon-ui/src/utils/html-elements.ts b/packages/beacon-ui/src/utils/html-elements.ts new file mode 100644 index 000000000..a4cb0bbe7 --- /dev/null +++ b/packages/beacon-ui/src/utils/html-elements.ts @@ -0,0 +1,118 @@ +export const createSanitizedElement = ( + type: string, + classes: string[], + attributes: [string, string][], + element: string | (HTMLElement | Text | SVGSVGElement | undefined)[] | undefined +): HTMLElement => { + const el = document.createElement(type) + + if (classes.length > 0) { + // Filter empty classnames and add all classes to element + el.classList.add(...classes.filter((clazz) => !!clazz).map((clazz) => sanitizeText(clazz))) + } + + // Add all attributes to element + attributes.forEach((attribute) => { + el.setAttribute(sanitizeText(attribute[0]), sanitizeText(attribute[1])) + }) + + if (typeof element === 'object' && Array.isArray(element)) { + // If we get a list of elements, add all of them as children + element + .filter((childEl): childEl is HTMLElement => !!childEl) + .forEach((childEl) => { + el.appendChild(childEl) + }) + } else if (typeof element === 'string') { + // Use `innerText` to assign text to prevent malicious code from being rendered + el.innerText = element + } else { + // NOOP + } + + return el +} + +export const createSVGElement = ( + classes: string[], + attributes: [string, string][], + element: (SVGPathElement | SVGGElement | HTMLElement)[] +): SVGSVGElement => { + const el = document.createElementNS('http://www.w3.org/2000/svg', 'svg') + + if (classes.length > 0) { + el.classList.add(...classes.filter((clazz) => !!clazz)) + } + + attributes.forEach((attribute) => { + el.setAttribute(sanitizeText(attribute[0]), sanitizeText(attribute[1])) + }) + + if (typeof element === 'object' && Array.isArray(element)) { + element + .filter((childEl): childEl is SVGPathElement => !!childEl) + .forEach((childEl) => { + el.appendChild(childEl) + }) + } else { + // NOOP + } + + return el +} + +export const createSVGPathElement = (attributes: [string, string][]): SVGPathElement => { + const el = document.createElementNS('http://www.w3.org/2000/svg', 'path') + + attributes.forEach((attribute) => { + el.setAttribute(sanitizeText(attribute[0]), sanitizeText(attribute[1])) + }) + + return el +} + +export const createSVGGElement = (element: SVGPathElement[]): SVGGElement => { + const el = document.createElementNS('http://www.w3.org/2000/svg', 'g') + + element + .filter((childEl): childEl is SVGPathElement => !!childEl) + .forEach((childEl) => { + el.appendChild(childEl) + }) + + return el +} + +export const createIconSVGExternal = () => { + return createSVGElement( + ['svg-inline--fa', 'fa-external-link-alt', 'fa-w-16'], + [ + ['aria-hidden', 'true'], + ['focusable', 'false'], + ['data-prefix', 'fas'], + ['data-icon', 'external-link-alt'], + ['role', 'img'], + ['xmlns', 'http://www.w3.org/2000/svg'], + ['viewBox', '0 0 512 512'] + ], + [ + createSVGPathElement([ + ['fill', 'currentColor'], + [ + 'd', + 'M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z' + ] + ]) + ] + ) +} + +export const sanitizeText = (text: string): string => { + const div = document.createElement('div') + div.innerText = text + return div.innerHTML +} + +export const removeAllChildren = (el: HTMLElement): void => { + el.innerHTML = '' +} diff --git a/packages/beacon-ui/src/utils/templates.ts b/packages/beacon-ui/src/utils/templates.ts new file mode 100644 index 000000000..e4fc6603a --- /dev/null +++ b/packages/beacon-ui/src/utils/templates.ts @@ -0,0 +1,351 @@ +import { + createSanitizedElement, + createSVGElement, + createSVGGElement, + createSVGPathElement +} from './html-elements' + +export const constructToastContainer = (elements: HTMLElement[]): HTMLElement => { + return createSanitizedElement( + 'div', + ['beacon-toast__base', 'animated', 'fadeIn'], + [['id', 'beacon-toast']], + [ + createSanitizedElement( + 'div', + ['beacon-toast__content'], + [], + [ + createSanitizedElement( + 'span', + [], + [['id', 'beacon-text']], + [ + createSanitizedElement('p', [], [['id', 'beacon-text-content']], elements), + createSanitizedElement( + 'a', + ['beacon-toast__wallet__link'], + [['id', 'beacon-open-wallet']], + [ + createSanitizedElement('span', [], [], 'Open'), + createSVGElement( + ['svg-inline--fa', 'fa-external-link-alt', 'fa-w-16'], + [ + ['aria-hidden', 'true'], + ['focusable', 'false'], + ['data-prefix', 'fas'], + ['data-icon', 'external-link-alt'], + + ['role', 'img'], + ['xmlns', 'http://www.w3.org/2000/svg'], + ['viewBox', '0 0 512 512'] + ], + [ + createSVGPathElement([ + ['fill', 'currentColor'], + [ + 'd', + 'M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z' + ] + ]) + ] + ) + ] + ) + ] + ), + createSVGElement( + ['beacon-toast__more', 'svg-inline--fa', 'fa-angle-down', 'fa-w-10'], + [ + ['id', 'beacon-toast-button-expand'], + ['aria-hidden', 'true'], + ['focusable', 'false'], + ['data-prefix', 'fas'], + ['data-icon', 'angle-down'], + + ['role', 'img'], + ['xmlns', 'http://www.w3.org/2000/svg'], + ['viewBox', '0 0 320 512'] + ], + [ + createSVGPathElement([ + ['fill', 'currentColor'], + [ + 'd', + 'M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z' + ] + ]) + ] + ), + createSVGElement( + ['beacon-toast__more', 'svg-inline--fa', 'fa-times', 'fa-w-10'], + [ + ['id', 'beacon-toast-button-close'], + ['aria-hidden', 'true'], + ['focusable', 'false'], + ['data-prefix', 'fal'], + ['data-icon', 'times'], + ['role', 'img'], + ['xmlns', 'http://www.w3.org/2000/svg'], + ['viewBox', '0 0 320 512'] + ], + [ + createSVGPathElement([ + ['fill', 'currentColor'], + [ + 'd', + 'M193.94 256L296.5 153.44l21.15-21.15c3.12-3.12 3.12-8.19 0-11.31l-22.63-22.63c-3.12-3.12-8.19-3.12-11.31 0L160 222.06 36.29 98.34c-3.12-3.12-8.19-3.12-11.31 0L2.34 120.97c-3.12 3.12-3.12 8.19 0 11.31L126.06 256 2.34 379.71c-3.12 3.12-3.12 8.19 0 11.31l22.63 22.63c3.12 3.12 8.19 3.12 11.31 0L160 289.94 262.56 392.5l21.15 21.15c3.12 3.12 8.19 3.12 11.31 0l22.63-22.63c3.12-3.12 3.12-8.19 0-11.31L193.94 256z' + ] + ]) + ] + ) + ] + ), + createSanitizedElement('div', ['progress-line'], [['id', 'beacon-toast-loader']], ''), + createSanitizedElement('hr', ['hide'], [['id', 'beacon-toast-loader-placeholder']], ''), + createSanitizedElement( + 'div', + ['beacon-toast__more--action'], + [['id', 'beacon-toast-list']], + '' + ) + ] + ) +} + +export const constructPoweredByBeacon = (): HTMLElement => { + return createSanitizedElement( + 'a', + [], + [ + ['href', 'https://walletbeacon.io'], + ['target', '_blank'] + ], + [ + document.createTextNode('powered by'), + createSVGElement( + [], + [ + ['id', 'f63e95a9-fd19-4487-bc1a-09eb2f066704'], + ['data-name', 'Guides'], + ['xmlns', 'http://www.w3.org/2000/svg'], + ['width', '65'], + ['height', '65'], + ['viewBox', '0 0 65 65'] + ], + [ + createSanitizedElement('title', [], [], 'beacon_logo'), + createSVGPathElement([ + ['fill', 'currentColor'], + [ + 'd', + 'M59.66,29.52v1.06c0,.37-.18,9.07-4.11,15.88S44.16,57.75,43.84,57.93l-.91.54-1.61-.93-9.19-5.3a14.68,14.68,0,0,1-1.63-1.06h0a14.09,14.09,0,0,1-1.29-1,17.63,17.63,0,0,1-2.56-2.7,18.58,18.58,0,0,1-2.56-4.51,21.53,21.53,0,0,1-1.5-9,6.21,6.21,0,0,1,2.93-.73c.25,0,.49,0,.74,0a18.29,18.29,0,0,0,1,7.93,15.06,15.06,0,0,0,6.67,8l8.93,5.16c.2-.13.43-.3.68-.48,2.26-1.6,6.42-4.92,8.86-9.13C55.12,39.94,55.8,34,56,31.57l-3.79-2.19a23,23,0,0,0,.6-3.83Z' + ] + ]), + createSVGPathElement([ + ['fill', 'currentColor'], + [ + 'd', + 'M49.22,11.43V23.89c0,.65,0,1.3-.1,1.94v0c-.06.55-.13,1.1-.24,1.63A18,18,0,0,1,47.82,31a19.11,19.11,0,0,1-2.62,4.49,21.37,21.37,0,0,1-7.07,5.8,6.08,6.08,0,0,1-2.42-2.84A18.1,18.1,0,0,0,42,33.7h0a15.12,15.12,0,0,0,3.58-9.81V13.6c-.21-.11-.47-.21-.74-.35-2.52-1.16-7.47-3.1-12.36-3.1-5.42,0-11,2.4-13.08,3.45V18a22.54,22.54,0,0,0-3.63,1.38V11.43l.92-.52c.33-.18,8-4.38,15.79-4.38s15.48,4.2,15.8,4.38Z' + ] + ]), + createSVGPathElement([ + ['fill', 'currentColor'], + [ + 'd', + 'M18,26.4,9,31.55q0,.35.06.78a31.63,31.63,0,0,0,3.49,12.28c2.71,4.71,7.55,8.3,9.53,9.64l3.79-2.19a23.33,23.33,0,0,0,3,2.44l-6.88,4-.92-.54c-.31-.18-7.75-4.69-11.68-11.5S5.36,30.92,5.35,30.56V29.49L7,28.55l9.17-5.29c.57-.32,1.14-.61,1.72-.87a13.46,13.46,0,0,1,1.55-.61A17.52,17.52,0,0,1,23,20.91a19.2,19.2,0,0,1,5.19,0,21.49,21.49,0,0,1,8.55,3.24,6.29,6.29,0,0,1-1.25,3.51,17.9,17.9,0,0,0-7.3-3.06A15.14,15.14,0,0,0,18,26.4Z' + ] + ]) + ] + ), + document.createTextNode('Beacon') + ] + ) +} + +export const constructAlertContainer = ( + id: string, + callToAction: HTMLElement[], + buttons: HTMLElement[], + main: HTMLElement[] +): HTMLElement => { + return createSanitizedElement( + 'div', + ['beacon-alert__base', 'animated', 'fadeIn'], + [['id', `beacon-alert-modal-${id}`]], + [ + createSanitizedElement( + 'div', + ['beacon-modal__wrapper'], + [], + [ + createSanitizedElement( + 'div', + ['beacon-modal__header'], + [], + [ + createSVGElement( + [], + [ + ['xmlns', 'http://www.w3.org/2000/svg'], + ['id', 'Guides'], + ['x', '0'], + ['y', '0'], + ['version', '1.1'], + ['viewBox', '0 0 179.2 43'], + ['xml:space', 'preserve'], + ['width', '140'], + ['height', '40'] + ], + [ + createSanitizedElement( + 'style', + [], + [], + `.st0 { + fill: #3880ff; + } + .st1 { + fill: #fff; + }` + ), + createSVGPathElement([ + [ + 'd', + 'M45 19v.9c0 .3-.2 7.5-3.4 13.2-3.3 5.6-9.4 9.3-9.7 9.5l-.8.4-1.3-.8-7.6-4.4c-.5-.3-.9-.6-1.4-.9-.4-.3-.7-.5-1.1-.8-.8-.7-1.5-1.4-2.1-2.2-.9-1.1-1.6-2.4-2.1-3.7-.9-2.3-1.3-4.8-1.2-7.5.8-.4 1.6-.6 2.4-.6h.6c-.2 2.4.1 4.6.8 6.6 1 2.8 2.9 5.1 5.5 6.6l7.4 4.3c.2-.1.4-.2.6-.4 1.9-1.3 5.3-4.1 7.3-7.6 2.2-3.9 2.8-8.9 3-10.8L38.8 19c.3-1 .4-2.1.5-3.2L45 19z' + ], + ['class', 'st0'] + ]), + createSVGPathElement([ + [ + 'd', + 'M36.3 4.1v10.3c0 .5 0 1.1-.1 1.6s-.1.9-.2 1.3c-.2 1-.5 2-.9 3-.5 1.3-1.3 2.6-2.2 3.7-1.5 1.9-3.5 3.6-5.9 4.8-.9-.6-1.6-1.3-2-2.4 2.1-1 3.9-2.3 5.2-4 1.9-2.3 3-5.1 3-8.1V5.9l-.6-.3c-2-1-6.1-2.6-10.1-2.6-4.5 0-9.1 2-10.9 2.9v3.6c-1 .3-2 .7-3 1.1V4.1l.8-.4C9.7 3.5 16 0 22.5 0s12.8 3.5 13.1 3.6l.7.5z' + ], + ['class', 'st0'] + ]), + createSVGPathElement([ + [ + 'd', + 'M10.5 16.5l-7.4 4.3v.7c.2 2.1.9 6.5 2.9 10 2.2 3.9 6.2 6.9 7.9 8l3.1-1.8c.8.7 1.6 1.4 2.5 2L13.8 43l-.8-.5c-.3-.2-6.4-3.9-9.7-9.5C.1 27.4 0 20.2 0 19.9V19l1.3-.8L9 13.9c.5-.3.9-.5 1.4-.7.4-.2.8-.4 1.3-.5 1-.4 2-.6 3-.7 1.4-.2 2.9-.2 4.3 0 2.4.3 4.8 1.2 7.1 2.7 0 1-.4 2-1 2.9-1.9-1.3-4-2.2-6-2.5-3.1-.6-6-.1-8.6 1.4z' + ], + ['class', 'st0'] + ]), + createSVGGElement([ + createSVGPathElement([ + [ + 'd', + 'M73.9 23c.9 1 1.3 2.3 1.3 3.7 0 1.9-.6 3.4-1.9 4.5-1.3 1.1-3.1 1.7-5.5 1.7h-8.6v-23h8.4c2.3 0 4.1.5 5.3 1.5 1.2 1 1.8 2.4 1.8 4.2 0 1.5-.4 2.7-1.2 3.6-.8.9-1.8 1.5-3.1 1.8 1.5.3 2.6 1 3.5 2zm-11.7-3h5c1.5 0 2.6-.3 3.4-1 .8-.7 1.2-1.6 1.2-2.8 0-1.2-.4-2.1-1.1-2.8-.8-.7-1.9-1-3.5-1h-4.8V20zm8.7 9.4c.9-.7 1.3-1.7 1.3-3s-.4-2.3-1.3-3c-.9-.7-2.1-1.1-3.7-1.1h-5v8.2h5c1.6-.1 2.8-.4 3.7-1.1zM95.3 24.6H81c.1 2.1.6 3.6 1.7 4.6s2.4 1.5 4 1.5c1.4 0 2.6-.4 3.6-1.1 1-.7 1.6-1.7 1.8-2.9h3.2c-.2 1.2-.7 2.4-1.5 3.3-.8 1-1.7 1.7-2.9 2.3-1.2.5-2.6.8-4.1.8-1.7 0-3.2-.4-4.6-1.1-1.3-.7-2.4-1.8-3.1-3.2-.8-1.4-1.1-3-1.1-4.9 0-1.9.4-3.5 1.1-4.9.8-1.4 1.8-2.5 3.1-3.2 1.3-.7 2.9-1.1 4.6-1.1 1.7 0 3.3.4 4.6 1.1 1.3.7 2.3 1.7 3 3 .7 1.2 1 2.6 1 4.1.1.7 0 1.2-.1 1.7zm-3.5-4.8c-.5-.9-1.2-1.6-2.1-2-.9-.4-1.8-.7-2.8-.7-1.6 0-3 .5-4.1 1.5-1.1 1-1.7 2.5-1.8 4.5h11.5c0-1.3-.2-2.4-.7-3.3zM111.2 16c1.2.9 2.1 2 2.5 3.5V15h3v18h-3v-4.6c-.5 1.5-1.3 2.6-2.5 3.5-1.2.9-2.7 1.3-4.4 1.3-1.6 0-3-.4-4.3-1.1-1.2-.7-2.2-1.8-2.9-3.2-.7-1.4-1.1-3-1.1-4.9 0-1.9.4-3.5 1.1-4.9.7-1.4 1.7-2.5 2.9-3.2 1.2-.7 2.7-1.1 4.3-1.1 1.7-.1 3.1.4 4.4 1.2zm-8 3.1c-1.1 1.2-1.7 2.8-1.7 4.8 0 2.1.5 3.7 1.7 4.8 1.1 1.2 2.6 1.8 4.4 1.8 1.2 0 2.2-.3 3.2-.8.9-.5 1.7-1.3 2.2-2.3.5-1 .8-2.1.8-3.5 0-1.3-.3-2.5-.8-3.5s-1.2-1.8-2.2-2.3c-.9-.5-2-.8-3.2-.8-1.9.1-3.3.7-4.4 1.8zM135 16.6c1.5 1.2 2.4 2.9 2.8 4.9h-3.1c-.2-1.3-.8-2.3-1.8-3-1-.7-2.2-1.1-3.6-1.1-1 0-2 .2-2.9.7-.9.5-1.6 1.2-2.1 2.2-.5 1-.8 2.2-.8 3.7s.3 2.7.8 3.7 1.2 1.7 2.1 2.2c.9.5 1.8.7 2.9.7 1.4 0 2.6-.4 3.6-1.1 1-.7 1.6-1.8 1.8-3h3.1c-.3 2.1-1.3 3.7-2.8 4.9-1.5 1.2-3.4 1.8-5.7 1.8-1.7 0-3.2-.4-4.6-1.1-1.3-.7-2.4-1.8-3.1-3.2-.8-1.4-1.1-3-1.1-4.9 0-1.9.4-3.5 1.1-4.9.8-1.4 1.8-2.5 3.1-3.2 1.3-.7 2.9-1.1 4.6-1.1 2.3-.1 4.2.6 5.7 1.8zM154.5 15.9c1.4.7 2.4 1.8 3.2 3.2.8 1.4 1.2 3 1.2 4.9 0 1.9-.4 3.5-1.2 4.9-.8 1.4-1.8 2.4-3.2 3.2-1.4.7-2.9 1.1-4.6 1.1-1.7 0-3.3-.4-4.6-1.1-1.4-.7-2.4-1.8-3.2-3.2-.8-1.4-1.2-3-1.2-4.9 0-1.9.4-3.5 1.2-4.9.8-1.4 1.9-2.5 3.2-3.2 1.4-.7 2.9-1.1 4.6-1.1 1.7-.1 3.2.3 4.6 1.1zm-7.6 2.2c-.9.5-1.6 1.2-2.2 2.2-.6 1-.8 2.2-.8 3.7 0 1.4.3 2.7.8 3.6.6 1 1.3 1.7 2.2 2.2.9.5 1.9.7 3 .7s2.1-.2 3-.7c.9-.5 1.6-1.2 2.2-2.2.6-1 .8-2.2.8-3.6 0-1.5-.3-2.7-.8-3.7-.6-1-1.3-1.7-2.2-2.2-.9-.5-1.9-.7-3-.7s-2.1.2-3 .7zM177.3 16.7c1.3 1.3 1.9 3.3 1.9 5.8v10.4h-3V22.8c0-1.8-.5-3.2-1.4-4.1-.9-1-2.2-1.4-3.7-1.4-1.6 0-2.9.5-3.9 1.6s-1.5 2.6-1.5 4.6V33h-3V15h3v4.3c.5-1.5 1.3-2.6 2.4-3.4 1.2-.8 2.5-1.2 4-1.2 2.2 0 3.9.6 5.2 2z' + ], + ['class', 'st1'] + ]) + ]) + ] + ), + createSanitizedElement( + 'div', + ['beacon-modal__close__wrapper'], + [['id', `beacon-alert-${id}-close`]], + [ + createSanitizedElement( + 'div', + ['beacon-modal__close__icon'], + [], + [ + createSanitizedElement('div', ['beacon-modal__close__line1'], [], []), + createSanitizedElement('div', ['beacon-modal__close__line2'], [], []) + ] + ) + ] + ) + ] + ), + createSanitizedElement( + 'div', + ['beacon-modal__base'], + [], + [ + createSanitizedElement( + 'div', + [], + [['id', 'beacon-modal__content']], + [ + createSanitizedElement( + 'div', + [], + [], + [ + createSanitizedElement('p', ['beacon-alert__title'], [], callToAction), + ...main, + createSanitizedElement('div', ['beacon-action__container'], [], buttons) + ] + ) + ] + ) + ] + ) + ] + ) + ] + ) +} + +export const constructDefaultAlert = ( + id: string, + callToAction: HTMLElement[], + buttons: HTMLElement[], + main: HTMLElement[] +): HTMLElement => { + return constructAlertContainer(id, callToAction, buttons, [ + createSanitizedElement('div', ['beacon-alert__text'], [['id', 'beacon-main-text']], main) + ]) +} + +export const constructPairAlert = ( + id: string, + callToAction: HTMLElement[], + buttons: HTMLElement[], + main: HTMLElement[] +): HTMLElement => { + return constructAlertContainer(id, callToAction, buttons, [ + createSanitizedElement('span', [], [['id', 'pairing-container']], ''), + createSanitizedElement( + 'div', + ['beacon-alert__text'], + [['id', 'beacon-main-text']], + [ + createSanitizedElement( + 'p', + ['beacon-list__title'], + [['id', 'beacon-title']], + [ + document.createTextNode('Scan QR code with a Beacon-compatible wallet.\u00A0'), + createSanitizedElement( + 'a', + [], + [ + ['href', 'https://docs.walletbeacon.io/supported-wallets'], + ['target', '_blank'] + ], + 'Learn more' + ), + ...main + ] + ) + ] + ), + createSanitizedElement( + 'div', + [], + [['id', 'beacon--switch__container']], + [ + createSanitizedElement( + 'button', + ['beacon-modal__button--outline'], + [['id', 'beacon-switch']], + '' + ) + ] + ), + createSanitizedElement('div', [], [['id', 'beacon--disclaimer']], '') + ]) +} diff --git a/scripts/generate-wallet-list.ts b/scripts/generate-wallet-list.ts index 17d99de4a..8c9cfd603 100644 --- a/scripts/generate-wallet-list.ts +++ b/scripts/generate-wallet-list.ts @@ -120,22 +120,12 @@ const generateForBlockchains = ( const css = (await readFile(path.join(ALERT_SRC_DIR, 'alert.css'))).toString('utf-8') const pairCss = (await readFile(path.join(ALERT_SRC_DIR, 'alert-pair.css'))).toString('utf-8') - let containerHtml = (await readFile(path.join(ALERT_SRC_DIR, 'alert-container.html'))).toString( - 'utf-8' - ) - let pairHtml = (await readFile(path.join(ALERT_SRC_DIR, 'alert-pair.html'))).toString('utf-8') - let defaultHtml = (await readFile(path.join(ALERT_SRC_DIR, 'alert-default.html'))).toString( - 'utf-8' - ) const x = { - container: containerHtml, default: { - html: defaultHtml, css: css }, pair: { - html: pairHtml, css: pairCss } } @@ -152,16 +142,9 @@ const generateForBlockchains = ( const css = (await readFile(path.join(TOAST_SRC_DIR, 'toast.css'))).toString('utf-8') - let html = (await readFile(path.join(TOAST_SRC_DIR, 'toast.html'))).toString('utf-8') - let poweredByBeacon = ( - await readFile(path.join(TOAST_SRC_DIR, 'powered-by-beacon.html')) - ).toString('utf-8') - const x = { default: { - html: html, - css: css, - poweredByBeacon + css: css } } From d92c0d0a3393b7c76d41288ffb5ad9165aaa9ae7 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 11 Apr 2022 12:46:39 -0300 Subject: [PATCH 121/130] feat(): disable prod deploy from non-master branch --- .gitlab-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 827783c43..380222799 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -75,9 +75,9 @@ publish_beta: publish: stage: publish - # TODO: Enable again - # only: - # - master + TODO: Enable again + only: + - master when: manual script: - docker run --env NPM_AUTH_TOKEN --name unit-$CI_COMMIT_SHA $GOOGLE_TAG ./npm-ci-publish.sh From 987785f40dff106a50324afa15917b1709cc9325 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 11 Apr 2022 12:46:53 -0300 Subject: [PATCH 122/130] fix(): remove comment --- .gitlab-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 380222799..f2482bdae 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -75,7 +75,6 @@ publish_beta: publish: stage: publish - TODO: Enable again only: - master when: manual From 08dd30117218782c0c9a70151ec2b3be185e6cc8 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Mon, 11 Apr 2022 12:48:57 -0300 Subject: [PATCH 123/130] chore(): release v3.0.0-beta.1 --- lerna.json | 2 +- .../beacon-blockchain-substrate/package.json | 6 ++--- packages/beacon-blockchain-tezos/package.json | 6 ++--- packages/beacon-core/package.json | 6 ++--- packages/beacon-core/src/constants.ts | 2 +- packages/beacon-dapp/package.json | 10 ++++----- packages/beacon-sdk/package.json | 22 +++++++++---------- packages/beacon-transport-matrix/package.json | 6 ++--- .../beacon-transport-postmessage/package.json | 8 +++---- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 10 ++++----- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 +++---- 13 files changed, 45 insertions(+), 45 deletions(-) diff --git a/lerna.json b/lerna.json index df7665c16..839e975a9 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "3.0.0-beta.0" + "version": "3.0.0-beta.1" } diff --git a/packages/beacon-blockchain-substrate/package.json b/packages/beacon-blockchain-substrate/package.json index d5001b28b..25b4e829b 100644 --- a/packages/beacon-blockchain-substrate/package.json +++ b/packages/beacon-blockchain-substrate/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-substrate", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,7 +34,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^3.0.0-beta.0", - "@airgap/beacon-ui": "^3.0.0-beta.0" + "@airgap/beacon-types": "^3.0.0-beta.1", + "@airgap/beacon-ui": "^3.0.0-beta.1" } } diff --git a/packages/beacon-blockchain-tezos/package.json b/packages/beacon-blockchain-tezos/package.json index e64f5335f..5a51aff3d 100644 --- a/packages/beacon-blockchain-tezos/package.json +++ b/packages/beacon-blockchain-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-tezos", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,7 +34,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^3.0.0-beta.0", - "@airgap/beacon-ui": "^3.0.0-beta.0" + "@airgap/beacon-types": "^3.0.0-beta.1", + "@airgap/beacon-ui": "^3.0.0-beta.1" } } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index cead5f251..c529bf24c 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^3.0.0-beta.0", - "@airgap/beacon-utils": "^3.0.0-beta.0", + "@airgap/beacon-types": "^3.0.0-beta.1", + "@airgap/beacon-utils": "^3.0.0-beta.1", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-core/src/constants.ts b/packages/beacon-core/src/constants.ts index 92c5d5877..b7c36a81d 100644 --- a/packages/beacon-core/src/constants.ts +++ b/packages/beacon-core/src/constants.ts @@ -1,2 +1,2 @@ -export const SDK_VERSION: string = '3.0.0-beta.0' +export const SDK_VERSION: string = '3.0.0-beta.1' export const BEACON_VERSION: string = '3' diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index a1fbab3b5..8393f1835 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,10 +35,10 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.0", - "@airgap/beacon-transport-matrix": "^3.0.0-beta.0", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.0", - "@airgap/beacon-ui": "^3.0.0-beta.0", + "@airgap/beacon-core": "^3.0.0-beta.1", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.1", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.1", + "@airgap/beacon-ui": "^3.0.0-beta.1", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-sdk/package.json b/packages/beacon-sdk/package.json index c19fa8980..96faf120d 100644 --- a/packages/beacon-sdk/package.json +++ b/packages/beacon-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-sdk", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,15 +35,15 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-blockchain-substrate": "^3.0.0-beta.0", - "@airgap/beacon-blockchain-tezos": "^3.0.0-beta.0", - "@airgap/beacon-core": "^3.0.0-beta.0", - "@airgap/beacon-dapp": "^3.0.0-beta.0", - "@airgap/beacon-transport-matrix": "^3.0.0-beta.0", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.0", - "@airgap/beacon-types": "^3.0.0-beta.0", - "@airgap/beacon-ui": "^3.0.0-beta.0", - "@airgap/beacon-utils": "^3.0.0-beta.0", - "@airgap/beacon-wallet": "^3.0.0-beta.0" + "@airgap/beacon-blockchain-substrate": "^3.0.0-beta.1", + "@airgap/beacon-blockchain-tezos": "^3.0.0-beta.1", + "@airgap/beacon-core": "^3.0.0-beta.1", + "@airgap/beacon-dapp": "^3.0.0-beta.1", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.1", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.1", + "@airgap/beacon-types": "^3.0.0-beta.1", + "@airgap/beacon-ui": "^3.0.0-beta.1", + "@airgap/beacon-utils": "^3.0.0-beta.1", + "@airgap/beacon-wallet": "^3.0.0-beta.1" } } diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index c6ec3896c..cb1cdf744 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.0", - "@airgap/beacon-utils": "^3.0.0-beta.0", + "@airgap/beacon-core": "^3.0.0-beta.1", + "@airgap/beacon-utils": "^3.0.0-beta.1", "axios": "0.24.0" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 62679dd36..147c99c96 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.0", - "@airgap/beacon-types": "^3.0.0-beta.0", - "@airgap/beacon-utils": "^3.0.0-beta.0", + "@airgap/beacon-core": "^3.0.0-beta.1", + "@airgap/beacon-types": "^3.0.0-beta.1", + "@airgap/beacon-utils": "^3.0.0-beta.1", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 6cc57d171..3217ba08b 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index d5495eee5..d20e8c5f9 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.0", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.0", - "@airgap/beacon-types": "^3.0.0-beta.0", - "@airgap/beacon-utils": "^3.0.0-beta.0" + "@airgap/beacon-core": "^3.0.0-beta.1", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.1", + "@airgap/beacon-types": "^3.0.0-beta.1", + "@airgap/beacon-utils": "^3.0.0-beta.1" } } diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 5695c454e..92f06b6d2 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index b21e57ded..ce711c123 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,8 +35,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.0", - "@airgap/beacon-transport-matrix": "^3.0.0-beta.0", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.0" + "@airgap/beacon-core": "^3.0.0-beta.1", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.1", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.1" } } From 594f21ca83e3e39097194855de7ab355478af821 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 13 Apr 2022 12:04:05 -0300 Subject: [PATCH 124/130] feat(): merge master to develop --- .gitlab-ci.yml | 5 +- .../beacon-types/src/utils/html-elements.ts | 118 ++++++ packages/beacon-types/src/utils/templates.ts | 351 ++++++++++++++++++ .../beacon-ui/src/ui/alert/PairingAlert.ts | 2 +- 4 files changed, 473 insertions(+), 3 deletions(-) create mode 100644 packages/beacon-types/src/utils/html-elements.ts create mode 100644 packages/beacon-types/src/utils/templates.ts diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f2482bdae..827783c43 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -75,8 +75,9 @@ publish_beta: publish: stage: publish - only: - - master + # TODO: Enable again + # only: + # - master when: manual script: - docker run --env NPM_AUTH_TOKEN --name unit-$CI_COMMIT_SHA $GOOGLE_TAG ./npm-ci-publish.sh diff --git a/packages/beacon-types/src/utils/html-elements.ts b/packages/beacon-types/src/utils/html-elements.ts new file mode 100644 index 000000000..a4cb0bbe7 --- /dev/null +++ b/packages/beacon-types/src/utils/html-elements.ts @@ -0,0 +1,118 @@ +export const createSanitizedElement = ( + type: string, + classes: string[], + attributes: [string, string][], + element: string | (HTMLElement | Text | SVGSVGElement | undefined)[] | undefined +): HTMLElement => { + const el = document.createElement(type) + + if (classes.length > 0) { + // Filter empty classnames and add all classes to element + el.classList.add(...classes.filter((clazz) => !!clazz).map((clazz) => sanitizeText(clazz))) + } + + // Add all attributes to element + attributes.forEach((attribute) => { + el.setAttribute(sanitizeText(attribute[0]), sanitizeText(attribute[1])) + }) + + if (typeof element === 'object' && Array.isArray(element)) { + // If we get a list of elements, add all of them as children + element + .filter((childEl): childEl is HTMLElement => !!childEl) + .forEach((childEl) => { + el.appendChild(childEl) + }) + } else if (typeof element === 'string') { + // Use `innerText` to assign text to prevent malicious code from being rendered + el.innerText = element + } else { + // NOOP + } + + return el +} + +export const createSVGElement = ( + classes: string[], + attributes: [string, string][], + element: (SVGPathElement | SVGGElement | HTMLElement)[] +): SVGSVGElement => { + const el = document.createElementNS('http://www.w3.org/2000/svg', 'svg') + + if (classes.length > 0) { + el.classList.add(...classes.filter((clazz) => !!clazz)) + } + + attributes.forEach((attribute) => { + el.setAttribute(sanitizeText(attribute[0]), sanitizeText(attribute[1])) + }) + + if (typeof element === 'object' && Array.isArray(element)) { + element + .filter((childEl): childEl is SVGPathElement => !!childEl) + .forEach((childEl) => { + el.appendChild(childEl) + }) + } else { + // NOOP + } + + return el +} + +export const createSVGPathElement = (attributes: [string, string][]): SVGPathElement => { + const el = document.createElementNS('http://www.w3.org/2000/svg', 'path') + + attributes.forEach((attribute) => { + el.setAttribute(sanitizeText(attribute[0]), sanitizeText(attribute[1])) + }) + + return el +} + +export const createSVGGElement = (element: SVGPathElement[]): SVGGElement => { + const el = document.createElementNS('http://www.w3.org/2000/svg', 'g') + + element + .filter((childEl): childEl is SVGPathElement => !!childEl) + .forEach((childEl) => { + el.appendChild(childEl) + }) + + return el +} + +export const createIconSVGExternal = () => { + return createSVGElement( + ['svg-inline--fa', 'fa-external-link-alt', 'fa-w-16'], + [ + ['aria-hidden', 'true'], + ['focusable', 'false'], + ['data-prefix', 'fas'], + ['data-icon', 'external-link-alt'], + ['role', 'img'], + ['xmlns', 'http://www.w3.org/2000/svg'], + ['viewBox', '0 0 512 512'] + ], + [ + createSVGPathElement([ + ['fill', 'currentColor'], + [ + 'd', + 'M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z' + ] + ]) + ] + ) +} + +export const sanitizeText = (text: string): string => { + const div = document.createElement('div') + div.innerText = text + return div.innerHTML +} + +export const removeAllChildren = (el: HTMLElement): void => { + el.innerHTML = '' +} diff --git a/packages/beacon-types/src/utils/templates.ts b/packages/beacon-types/src/utils/templates.ts new file mode 100644 index 000000000..e4fc6603a --- /dev/null +++ b/packages/beacon-types/src/utils/templates.ts @@ -0,0 +1,351 @@ +import { + createSanitizedElement, + createSVGElement, + createSVGGElement, + createSVGPathElement +} from './html-elements' + +export const constructToastContainer = (elements: HTMLElement[]): HTMLElement => { + return createSanitizedElement( + 'div', + ['beacon-toast__base', 'animated', 'fadeIn'], + [['id', 'beacon-toast']], + [ + createSanitizedElement( + 'div', + ['beacon-toast__content'], + [], + [ + createSanitizedElement( + 'span', + [], + [['id', 'beacon-text']], + [ + createSanitizedElement('p', [], [['id', 'beacon-text-content']], elements), + createSanitizedElement( + 'a', + ['beacon-toast__wallet__link'], + [['id', 'beacon-open-wallet']], + [ + createSanitizedElement('span', [], [], 'Open'), + createSVGElement( + ['svg-inline--fa', 'fa-external-link-alt', 'fa-w-16'], + [ + ['aria-hidden', 'true'], + ['focusable', 'false'], + ['data-prefix', 'fas'], + ['data-icon', 'external-link-alt'], + + ['role', 'img'], + ['xmlns', 'http://www.w3.org/2000/svg'], + ['viewBox', '0 0 512 512'] + ], + [ + createSVGPathElement([ + ['fill', 'currentColor'], + [ + 'd', + 'M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z' + ] + ]) + ] + ) + ] + ) + ] + ), + createSVGElement( + ['beacon-toast__more', 'svg-inline--fa', 'fa-angle-down', 'fa-w-10'], + [ + ['id', 'beacon-toast-button-expand'], + ['aria-hidden', 'true'], + ['focusable', 'false'], + ['data-prefix', 'fas'], + ['data-icon', 'angle-down'], + + ['role', 'img'], + ['xmlns', 'http://www.w3.org/2000/svg'], + ['viewBox', '0 0 320 512'] + ], + [ + createSVGPathElement([ + ['fill', 'currentColor'], + [ + 'd', + 'M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z' + ] + ]) + ] + ), + createSVGElement( + ['beacon-toast__more', 'svg-inline--fa', 'fa-times', 'fa-w-10'], + [ + ['id', 'beacon-toast-button-close'], + ['aria-hidden', 'true'], + ['focusable', 'false'], + ['data-prefix', 'fal'], + ['data-icon', 'times'], + ['role', 'img'], + ['xmlns', 'http://www.w3.org/2000/svg'], + ['viewBox', '0 0 320 512'] + ], + [ + createSVGPathElement([ + ['fill', 'currentColor'], + [ + 'd', + 'M193.94 256L296.5 153.44l21.15-21.15c3.12-3.12 3.12-8.19 0-11.31l-22.63-22.63c-3.12-3.12-8.19-3.12-11.31 0L160 222.06 36.29 98.34c-3.12-3.12-8.19-3.12-11.31 0L2.34 120.97c-3.12 3.12-3.12 8.19 0 11.31L126.06 256 2.34 379.71c-3.12 3.12-3.12 8.19 0 11.31l22.63 22.63c3.12 3.12 8.19 3.12 11.31 0L160 289.94 262.56 392.5l21.15 21.15c3.12 3.12 8.19 3.12 11.31 0l22.63-22.63c3.12-3.12 3.12-8.19 0-11.31L193.94 256z' + ] + ]) + ] + ) + ] + ), + createSanitizedElement('div', ['progress-line'], [['id', 'beacon-toast-loader']], ''), + createSanitizedElement('hr', ['hide'], [['id', 'beacon-toast-loader-placeholder']], ''), + createSanitizedElement( + 'div', + ['beacon-toast__more--action'], + [['id', 'beacon-toast-list']], + '' + ) + ] + ) +} + +export const constructPoweredByBeacon = (): HTMLElement => { + return createSanitizedElement( + 'a', + [], + [ + ['href', 'https://walletbeacon.io'], + ['target', '_blank'] + ], + [ + document.createTextNode('powered by'), + createSVGElement( + [], + [ + ['id', 'f63e95a9-fd19-4487-bc1a-09eb2f066704'], + ['data-name', 'Guides'], + ['xmlns', 'http://www.w3.org/2000/svg'], + ['width', '65'], + ['height', '65'], + ['viewBox', '0 0 65 65'] + ], + [ + createSanitizedElement('title', [], [], 'beacon_logo'), + createSVGPathElement([ + ['fill', 'currentColor'], + [ + 'd', + 'M59.66,29.52v1.06c0,.37-.18,9.07-4.11,15.88S44.16,57.75,43.84,57.93l-.91.54-1.61-.93-9.19-5.3a14.68,14.68,0,0,1-1.63-1.06h0a14.09,14.09,0,0,1-1.29-1,17.63,17.63,0,0,1-2.56-2.7,18.58,18.58,0,0,1-2.56-4.51,21.53,21.53,0,0,1-1.5-9,6.21,6.21,0,0,1,2.93-.73c.25,0,.49,0,.74,0a18.29,18.29,0,0,0,1,7.93,15.06,15.06,0,0,0,6.67,8l8.93,5.16c.2-.13.43-.3.68-.48,2.26-1.6,6.42-4.92,8.86-9.13C55.12,39.94,55.8,34,56,31.57l-3.79-2.19a23,23,0,0,0,.6-3.83Z' + ] + ]), + createSVGPathElement([ + ['fill', 'currentColor'], + [ + 'd', + 'M49.22,11.43V23.89c0,.65,0,1.3-.1,1.94v0c-.06.55-.13,1.1-.24,1.63A18,18,0,0,1,47.82,31a19.11,19.11,0,0,1-2.62,4.49,21.37,21.37,0,0,1-7.07,5.8,6.08,6.08,0,0,1-2.42-2.84A18.1,18.1,0,0,0,42,33.7h0a15.12,15.12,0,0,0,3.58-9.81V13.6c-.21-.11-.47-.21-.74-.35-2.52-1.16-7.47-3.1-12.36-3.1-5.42,0-11,2.4-13.08,3.45V18a22.54,22.54,0,0,0-3.63,1.38V11.43l.92-.52c.33-.18,8-4.38,15.79-4.38s15.48,4.2,15.8,4.38Z' + ] + ]), + createSVGPathElement([ + ['fill', 'currentColor'], + [ + 'd', + 'M18,26.4,9,31.55q0,.35.06.78a31.63,31.63,0,0,0,3.49,12.28c2.71,4.71,7.55,8.3,9.53,9.64l3.79-2.19a23.33,23.33,0,0,0,3,2.44l-6.88,4-.92-.54c-.31-.18-7.75-4.69-11.68-11.5S5.36,30.92,5.35,30.56V29.49L7,28.55l9.17-5.29c.57-.32,1.14-.61,1.72-.87a13.46,13.46,0,0,1,1.55-.61A17.52,17.52,0,0,1,23,20.91a19.2,19.2,0,0,1,5.19,0,21.49,21.49,0,0,1,8.55,3.24,6.29,6.29,0,0,1-1.25,3.51,17.9,17.9,0,0,0-7.3-3.06A15.14,15.14,0,0,0,18,26.4Z' + ] + ]) + ] + ), + document.createTextNode('Beacon') + ] + ) +} + +export const constructAlertContainer = ( + id: string, + callToAction: HTMLElement[], + buttons: HTMLElement[], + main: HTMLElement[] +): HTMLElement => { + return createSanitizedElement( + 'div', + ['beacon-alert__base', 'animated', 'fadeIn'], + [['id', `beacon-alert-modal-${id}`]], + [ + createSanitizedElement( + 'div', + ['beacon-modal__wrapper'], + [], + [ + createSanitizedElement( + 'div', + ['beacon-modal__header'], + [], + [ + createSVGElement( + [], + [ + ['xmlns', 'http://www.w3.org/2000/svg'], + ['id', 'Guides'], + ['x', '0'], + ['y', '0'], + ['version', '1.1'], + ['viewBox', '0 0 179.2 43'], + ['xml:space', 'preserve'], + ['width', '140'], + ['height', '40'] + ], + [ + createSanitizedElement( + 'style', + [], + [], + `.st0 { + fill: #3880ff; + } + .st1 { + fill: #fff; + }` + ), + createSVGPathElement([ + [ + 'd', + 'M45 19v.9c0 .3-.2 7.5-3.4 13.2-3.3 5.6-9.4 9.3-9.7 9.5l-.8.4-1.3-.8-7.6-4.4c-.5-.3-.9-.6-1.4-.9-.4-.3-.7-.5-1.1-.8-.8-.7-1.5-1.4-2.1-2.2-.9-1.1-1.6-2.4-2.1-3.7-.9-2.3-1.3-4.8-1.2-7.5.8-.4 1.6-.6 2.4-.6h.6c-.2 2.4.1 4.6.8 6.6 1 2.8 2.9 5.1 5.5 6.6l7.4 4.3c.2-.1.4-.2.6-.4 1.9-1.3 5.3-4.1 7.3-7.6 2.2-3.9 2.8-8.9 3-10.8L38.8 19c.3-1 .4-2.1.5-3.2L45 19z' + ], + ['class', 'st0'] + ]), + createSVGPathElement([ + [ + 'd', + 'M36.3 4.1v10.3c0 .5 0 1.1-.1 1.6s-.1.9-.2 1.3c-.2 1-.5 2-.9 3-.5 1.3-1.3 2.6-2.2 3.7-1.5 1.9-3.5 3.6-5.9 4.8-.9-.6-1.6-1.3-2-2.4 2.1-1 3.9-2.3 5.2-4 1.9-2.3 3-5.1 3-8.1V5.9l-.6-.3c-2-1-6.1-2.6-10.1-2.6-4.5 0-9.1 2-10.9 2.9v3.6c-1 .3-2 .7-3 1.1V4.1l.8-.4C9.7 3.5 16 0 22.5 0s12.8 3.5 13.1 3.6l.7.5z' + ], + ['class', 'st0'] + ]), + createSVGPathElement([ + [ + 'd', + 'M10.5 16.5l-7.4 4.3v.7c.2 2.1.9 6.5 2.9 10 2.2 3.9 6.2 6.9 7.9 8l3.1-1.8c.8.7 1.6 1.4 2.5 2L13.8 43l-.8-.5c-.3-.2-6.4-3.9-9.7-9.5C.1 27.4 0 20.2 0 19.9V19l1.3-.8L9 13.9c.5-.3.9-.5 1.4-.7.4-.2.8-.4 1.3-.5 1-.4 2-.6 3-.7 1.4-.2 2.9-.2 4.3 0 2.4.3 4.8 1.2 7.1 2.7 0 1-.4 2-1 2.9-1.9-1.3-4-2.2-6-2.5-3.1-.6-6-.1-8.6 1.4z' + ], + ['class', 'st0'] + ]), + createSVGGElement([ + createSVGPathElement([ + [ + 'd', + 'M73.9 23c.9 1 1.3 2.3 1.3 3.7 0 1.9-.6 3.4-1.9 4.5-1.3 1.1-3.1 1.7-5.5 1.7h-8.6v-23h8.4c2.3 0 4.1.5 5.3 1.5 1.2 1 1.8 2.4 1.8 4.2 0 1.5-.4 2.7-1.2 3.6-.8.9-1.8 1.5-3.1 1.8 1.5.3 2.6 1 3.5 2zm-11.7-3h5c1.5 0 2.6-.3 3.4-1 .8-.7 1.2-1.6 1.2-2.8 0-1.2-.4-2.1-1.1-2.8-.8-.7-1.9-1-3.5-1h-4.8V20zm8.7 9.4c.9-.7 1.3-1.7 1.3-3s-.4-2.3-1.3-3c-.9-.7-2.1-1.1-3.7-1.1h-5v8.2h5c1.6-.1 2.8-.4 3.7-1.1zM95.3 24.6H81c.1 2.1.6 3.6 1.7 4.6s2.4 1.5 4 1.5c1.4 0 2.6-.4 3.6-1.1 1-.7 1.6-1.7 1.8-2.9h3.2c-.2 1.2-.7 2.4-1.5 3.3-.8 1-1.7 1.7-2.9 2.3-1.2.5-2.6.8-4.1.8-1.7 0-3.2-.4-4.6-1.1-1.3-.7-2.4-1.8-3.1-3.2-.8-1.4-1.1-3-1.1-4.9 0-1.9.4-3.5 1.1-4.9.8-1.4 1.8-2.5 3.1-3.2 1.3-.7 2.9-1.1 4.6-1.1 1.7 0 3.3.4 4.6 1.1 1.3.7 2.3 1.7 3 3 .7 1.2 1 2.6 1 4.1.1.7 0 1.2-.1 1.7zm-3.5-4.8c-.5-.9-1.2-1.6-2.1-2-.9-.4-1.8-.7-2.8-.7-1.6 0-3 .5-4.1 1.5-1.1 1-1.7 2.5-1.8 4.5h11.5c0-1.3-.2-2.4-.7-3.3zM111.2 16c1.2.9 2.1 2 2.5 3.5V15h3v18h-3v-4.6c-.5 1.5-1.3 2.6-2.5 3.5-1.2.9-2.7 1.3-4.4 1.3-1.6 0-3-.4-4.3-1.1-1.2-.7-2.2-1.8-2.9-3.2-.7-1.4-1.1-3-1.1-4.9 0-1.9.4-3.5 1.1-4.9.7-1.4 1.7-2.5 2.9-3.2 1.2-.7 2.7-1.1 4.3-1.1 1.7-.1 3.1.4 4.4 1.2zm-8 3.1c-1.1 1.2-1.7 2.8-1.7 4.8 0 2.1.5 3.7 1.7 4.8 1.1 1.2 2.6 1.8 4.4 1.8 1.2 0 2.2-.3 3.2-.8.9-.5 1.7-1.3 2.2-2.3.5-1 .8-2.1.8-3.5 0-1.3-.3-2.5-.8-3.5s-1.2-1.8-2.2-2.3c-.9-.5-2-.8-3.2-.8-1.9.1-3.3.7-4.4 1.8zM135 16.6c1.5 1.2 2.4 2.9 2.8 4.9h-3.1c-.2-1.3-.8-2.3-1.8-3-1-.7-2.2-1.1-3.6-1.1-1 0-2 .2-2.9.7-.9.5-1.6 1.2-2.1 2.2-.5 1-.8 2.2-.8 3.7s.3 2.7.8 3.7 1.2 1.7 2.1 2.2c.9.5 1.8.7 2.9.7 1.4 0 2.6-.4 3.6-1.1 1-.7 1.6-1.8 1.8-3h3.1c-.3 2.1-1.3 3.7-2.8 4.9-1.5 1.2-3.4 1.8-5.7 1.8-1.7 0-3.2-.4-4.6-1.1-1.3-.7-2.4-1.8-3.1-3.2-.8-1.4-1.1-3-1.1-4.9 0-1.9.4-3.5 1.1-4.9.8-1.4 1.8-2.5 3.1-3.2 1.3-.7 2.9-1.1 4.6-1.1 2.3-.1 4.2.6 5.7 1.8zM154.5 15.9c1.4.7 2.4 1.8 3.2 3.2.8 1.4 1.2 3 1.2 4.9 0 1.9-.4 3.5-1.2 4.9-.8 1.4-1.8 2.4-3.2 3.2-1.4.7-2.9 1.1-4.6 1.1-1.7 0-3.3-.4-4.6-1.1-1.4-.7-2.4-1.8-3.2-3.2-.8-1.4-1.2-3-1.2-4.9 0-1.9.4-3.5 1.2-4.9.8-1.4 1.9-2.5 3.2-3.2 1.4-.7 2.9-1.1 4.6-1.1 1.7-.1 3.2.3 4.6 1.1zm-7.6 2.2c-.9.5-1.6 1.2-2.2 2.2-.6 1-.8 2.2-.8 3.7 0 1.4.3 2.7.8 3.6.6 1 1.3 1.7 2.2 2.2.9.5 1.9.7 3 .7s2.1-.2 3-.7c.9-.5 1.6-1.2 2.2-2.2.6-1 .8-2.2.8-3.6 0-1.5-.3-2.7-.8-3.7-.6-1-1.3-1.7-2.2-2.2-.9-.5-1.9-.7-3-.7s-2.1.2-3 .7zM177.3 16.7c1.3 1.3 1.9 3.3 1.9 5.8v10.4h-3V22.8c0-1.8-.5-3.2-1.4-4.1-.9-1-2.2-1.4-3.7-1.4-1.6 0-2.9.5-3.9 1.6s-1.5 2.6-1.5 4.6V33h-3V15h3v4.3c.5-1.5 1.3-2.6 2.4-3.4 1.2-.8 2.5-1.2 4-1.2 2.2 0 3.9.6 5.2 2z' + ], + ['class', 'st1'] + ]) + ]) + ] + ), + createSanitizedElement( + 'div', + ['beacon-modal__close__wrapper'], + [['id', `beacon-alert-${id}-close`]], + [ + createSanitizedElement( + 'div', + ['beacon-modal__close__icon'], + [], + [ + createSanitizedElement('div', ['beacon-modal__close__line1'], [], []), + createSanitizedElement('div', ['beacon-modal__close__line2'], [], []) + ] + ) + ] + ) + ] + ), + createSanitizedElement( + 'div', + ['beacon-modal__base'], + [], + [ + createSanitizedElement( + 'div', + [], + [['id', 'beacon-modal__content']], + [ + createSanitizedElement( + 'div', + [], + [], + [ + createSanitizedElement('p', ['beacon-alert__title'], [], callToAction), + ...main, + createSanitizedElement('div', ['beacon-action__container'], [], buttons) + ] + ) + ] + ) + ] + ) + ] + ) + ] + ) +} + +export const constructDefaultAlert = ( + id: string, + callToAction: HTMLElement[], + buttons: HTMLElement[], + main: HTMLElement[] +): HTMLElement => { + return constructAlertContainer(id, callToAction, buttons, [ + createSanitizedElement('div', ['beacon-alert__text'], [['id', 'beacon-main-text']], main) + ]) +} + +export const constructPairAlert = ( + id: string, + callToAction: HTMLElement[], + buttons: HTMLElement[], + main: HTMLElement[] +): HTMLElement => { + return constructAlertContainer(id, callToAction, buttons, [ + createSanitizedElement('span', [], [['id', 'pairing-container']], ''), + createSanitizedElement( + 'div', + ['beacon-alert__text'], + [['id', 'beacon-main-text']], + [ + createSanitizedElement( + 'p', + ['beacon-list__title'], + [['id', 'beacon-title']], + [ + document.createTextNode('Scan QR code with a Beacon-compatible wallet.\u00A0'), + createSanitizedElement( + 'a', + [], + [ + ['href', 'https://docs.walletbeacon.io/supported-wallets'], + ['target', '_blank'] + ], + 'Learn more' + ), + ...main + ] + ) + ] + ), + createSanitizedElement( + 'div', + [], + [['id', 'beacon--switch__container']], + [ + createSanitizedElement( + 'button', + ['beacon-modal__button--outline'], + [['id', 'beacon-switch']], + '' + ) + ] + ), + createSanitizedElement('div', [], [['id', 'beacon--disclaimer']], '') + ]) +} diff --git a/packages/beacon-ui/src/ui/alert/PairingAlert.ts b/packages/beacon-ui/src/ui/alert/PairingAlert.ts index 8618b9da0..89722c453 100644 --- a/packages/beacon-ui/src/ui/alert/PairingAlert.ts +++ b/packages/beacon-ui/src/ui/alert/PairingAlert.ts @@ -63,7 +63,7 @@ export const preparePairingAlert = async ( const titleEl = createSanitizedElement('div', ['beacon-list__title'], [], button.title) const buttonEl = createSanitizedElement( 'button', - ['beacon-modal__button connect__btn'], + ['beacon-modal__button', 'connect__btn'], [], button.text ) From 3b8acb473d5c0a17b9003b1c32baf444cf814ff4 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 13 Apr 2022 12:07:30 -0300 Subject: [PATCH 125/130] feat(): remove unused files --- .../beacon-types/src/utils/html-elements.ts | 118 ------ packages/beacon-types/src/utils/templates.ts | 351 ------------------ 2 files changed, 469 deletions(-) delete mode 100644 packages/beacon-types/src/utils/html-elements.ts delete mode 100644 packages/beacon-types/src/utils/templates.ts diff --git a/packages/beacon-types/src/utils/html-elements.ts b/packages/beacon-types/src/utils/html-elements.ts deleted file mode 100644 index a4cb0bbe7..000000000 --- a/packages/beacon-types/src/utils/html-elements.ts +++ /dev/null @@ -1,118 +0,0 @@ -export const createSanitizedElement = ( - type: string, - classes: string[], - attributes: [string, string][], - element: string | (HTMLElement | Text | SVGSVGElement | undefined)[] | undefined -): HTMLElement => { - const el = document.createElement(type) - - if (classes.length > 0) { - // Filter empty classnames and add all classes to element - el.classList.add(...classes.filter((clazz) => !!clazz).map((clazz) => sanitizeText(clazz))) - } - - // Add all attributes to element - attributes.forEach((attribute) => { - el.setAttribute(sanitizeText(attribute[0]), sanitizeText(attribute[1])) - }) - - if (typeof element === 'object' && Array.isArray(element)) { - // If we get a list of elements, add all of them as children - element - .filter((childEl): childEl is HTMLElement => !!childEl) - .forEach((childEl) => { - el.appendChild(childEl) - }) - } else if (typeof element === 'string') { - // Use `innerText` to assign text to prevent malicious code from being rendered - el.innerText = element - } else { - // NOOP - } - - return el -} - -export const createSVGElement = ( - classes: string[], - attributes: [string, string][], - element: (SVGPathElement | SVGGElement | HTMLElement)[] -): SVGSVGElement => { - const el = document.createElementNS('http://www.w3.org/2000/svg', 'svg') - - if (classes.length > 0) { - el.classList.add(...classes.filter((clazz) => !!clazz)) - } - - attributes.forEach((attribute) => { - el.setAttribute(sanitizeText(attribute[0]), sanitizeText(attribute[1])) - }) - - if (typeof element === 'object' && Array.isArray(element)) { - element - .filter((childEl): childEl is SVGPathElement => !!childEl) - .forEach((childEl) => { - el.appendChild(childEl) - }) - } else { - // NOOP - } - - return el -} - -export const createSVGPathElement = (attributes: [string, string][]): SVGPathElement => { - const el = document.createElementNS('http://www.w3.org/2000/svg', 'path') - - attributes.forEach((attribute) => { - el.setAttribute(sanitizeText(attribute[0]), sanitizeText(attribute[1])) - }) - - return el -} - -export const createSVGGElement = (element: SVGPathElement[]): SVGGElement => { - const el = document.createElementNS('http://www.w3.org/2000/svg', 'g') - - element - .filter((childEl): childEl is SVGPathElement => !!childEl) - .forEach((childEl) => { - el.appendChild(childEl) - }) - - return el -} - -export const createIconSVGExternal = () => { - return createSVGElement( - ['svg-inline--fa', 'fa-external-link-alt', 'fa-w-16'], - [ - ['aria-hidden', 'true'], - ['focusable', 'false'], - ['data-prefix', 'fas'], - ['data-icon', 'external-link-alt'], - ['role', 'img'], - ['xmlns', 'http://www.w3.org/2000/svg'], - ['viewBox', '0 0 512 512'] - ], - [ - createSVGPathElement([ - ['fill', 'currentColor'], - [ - 'd', - 'M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z' - ] - ]) - ] - ) -} - -export const sanitizeText = (text: string): string => { - const div = document.createElement('div') - div.innerText = text - return div.innerHTML -} - -export const removeAllChildren = (el: HTMLElement): void => { - el.innerHTML = '' -} diff --git a/packages/beacon-types/src/utils/templates.ts b/packages/beacon-types/src/utils/templates.ts deleted file mode 100644 index e4fc6603a..000000000 --- a/packages/beacon-types/src/utils/templates.ts +++ /dev/null @@ -1,351 +0,0 @@ -import { - createSanitizedElement, - createSVGElement, - createSVGGElement, - createSVGPathElement -} from './html-elements' - -export const constructToastContainer = (elements: HTMLElement[]): HTMLElement => { - return createSanitizedElement( - 'div', - ['beacon-toast__base', 'animated', 'fadeIn'], - [['id', 'beacon-toast']], - [ - createSanitizedElement( - 'div', - ['beacon-toast__content'], - [], - [ - createSanitizedElement( - 'span', - [], - [['id', 'beacon-text']], - [ - createSanitizedElement('p', [], [['id', 'beacon-text-content']], elements), - createSanitizedElement( - 'a', - ['beacon-toast__wallet__link'], - [['id', 'beacon-open-wallet']], - [ - createSanitizedElement('span', [], [], 'Open'), - createSVGElement( - ['svg-inline--fa', 'fa-external-link-alt', 'fa-w-16'], - [ - ['aria-hidden', 'true'], - ['focusable', 'false'], - ['data-prefix', 'fas'], - ['data-icon', 'external-link-alt'], - - ['role', 'img'], - ['xmlns', 'http://www.w3.org/2000/svg'], - ['viewBox', '0 0 512 512'] - ], - [ - createSVGPathElement([ - ['fill', 'currentColor'], - [ - 'd', - 'M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z' - ] - ]) - ] - ) - ] - ) - ] - ), - createSVGElement( - ['beacon-toast__more', 'svg-inline--fa', 'fa-angle-down', 'fa-w-10'], - [ - ['id', 'beacon-toast-button-expand'], - ['aria-hidden', 'true'], - ['focusable', 'false'], - ['data-prefix', 'fas'], - ['data-icon', 'angle-down'], - - ['role', 'img'], - ['xmlns', 'http://www.w3.org/2000/svg'], - ['viewBox', '0 0 320 512'] - ], - [ - createSVGPathElement([ - ['fill', 'currentColor'], - [ - 'd', - 'M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z' - ] - ]) - ] - ), - createSVGElement( - ['beacon-toast__more', 'svg-inline--fa', 'fa-times', 'fa-w-10'], - [ - ['id', 'beacon-toast-button-close'], - ['aria-hidden', 'true'], - ['focusable', 'false'], - ['data-prefix', 'fal'], - ['data-icon', 'times'], - ['role', 'img'], - ['xmlns', 'http://www.w3.org/2000/svg'], - ['viewBox', '0 0 320 512'] - ], - [ - createSVGPathElement([ - ['fill', 'currentColor'], - [ - 'd', - 'M193.94 256L296.5 153.44l21.15-21.15c3.12-3.12 3.12-8.19 0-11.31l-22.63-22.63c-3.12-3.12-8.19-3.12-11.31 0L160 222.06 36.29 98.34c-3.12-3.12-8.19-3.12-11.31 0L2.34 120.97c-3.12 3.12-3.12 8.19 0 11.31L126.06 256 2.34 379.71c-3.12 3.12-3.12 8.19 0 11.31l22.63 22.63c3.12 3.12 8.19 3.12 11.31 0L160 289.94 262.56 392.5l21.15 21.15c3.12 3.12 8.19 3.12 11.31 0l22.63-22.63c3.12-3.12 3.12-8.19 0-11.31L193.94 256z' - ] - ]) - ] - ) - ] - ), - createSanitizedElement('div', ['progress-line'], [['id', 'beacon-toast-loader']], ''), - createSanitizedElement('hr', ['hide'], [['id', 'beacon-toast-loader-placeholder']], ''), - createSanitizedElement( - 'div', - ['beacon-toast__more--action'], - [['id', 'beacon-toast-list']], - '' - ) - ] - ) -} - -export const constructPoweredByBeacon = (): HTMLElement => { - return createSanitizedElement( - 'a', - [], - [ - ['href', 'https://walletbeacon.io'], - ['target', '_blank'] - ], - [ - document.createTextNode('powered by'), - createSVGElement( - [], - [ - ['id', 'f63e95a9-fd19-4487-bc1a-09eb2f066704'], - ['data-name', 'Guides'], - ['xmlns', 'http://www.w3.org/2000/svg'], - ['width', '65'], - ['height', '65'], - ['viewBox', '0 0 65 65'] - ], - [ - createSanitizedElement('title', [], [], 'beacon_logo'), - createSVGPathElement([ - ['fill', 'currentColor'], - [ - 'd', - 'M59.66,29.52v1.06c0,.37-.18,9.07-4.11,15.88S44.16,57.75,43.84,57.93l-.91.54-1.61-.93-9.19-5.3a14.68,14.68,0,0,1-1.63-1.06h0a14.09,14.09,0,0,1-1.29-1,17.63,17.63,0,0,1-2.56-2.7,18.58,18.58,0,0,1-2.56-4.51,21.53,21.53,0,0,1-1.5-9,6.21,6.21,0,0,1,2.93-.73c.25,0,.49,0,.74,0a18.29,18.29,0,0,0,1,7.93,15.06,15.06,0,0,0,6.67,8l8.93,5.16c.2-.13.43-.3.68-.48,2.26-1.6,6.42-4.92,8.86-9.13C55.12,39.94,55.8,34,56,31.57l-3.79-2.19a23,23,0,0,0,.6-3.83Z' - ] - ]), - createSVGPathElement([ - ['fill', 'currentColor'], - [ - 'd', - 'M49.22,11.43V23.89c0,.65,0,1.3-.1,1.94v0c-.06.55-.13,1.1-.24,1.63A18,18,0,0,1,47.82,31a19.11,19.11,0,0,1-2.62,4.49,21.37,21.37,0,0,1-7.07,5.8,6.08,6.08,0,0,1-2.42-2.84A18.1,18.1,0,0,0,42,33.7h0a15.12,15.12,0,0,0,3.58-9.81V13.6c-.21-.11-.47-.21-.74-.35-2.52-1.16-7.47-3.1-12.36-3.1-5.42,0-11,2.4-13.08,3.45V18a22.54,22.54,0,0,0-3.63,1.38V11.43l.92-.52c.33-.18,8-4.38,15.79-4.38s15.48,4.2,15.8,4.38Z' - ] - ]), - createSVGPathElement([ - ['fill', 'currentColor'], - [ - 'd', - 'M18,26.4,9,31.55q0,.35.06.78a31.63,31.63,0,0,0,3.49,12.28c2.71,4.71,7.55,8.3,9.53,9.64l3.79-2.19a23.33,23.33,0,0,0,3,2.44l-6.88,4-.92-.54c-.31-.18-7.75-4.69-11.68-11.5S5.36,30.92,5.35,30.56V29.49L7,28.55l9.17-5.29c.57-.32,1.14-.61,1.72-.87a13.46,13.46,0,0,1,1.55-.61A17.52,17.52,0,0,1,23,20.91a19.2,19.2,0,0,1,5.19,0,21.49,21.49,0,0,1,8.55,3.24,6.29,6.29,0,0,1-1.25,3.51,17.9,17.9,0,0,0-7.3-3.06A15.14,15.14,0,0,0,18,26.4Z' - ] - ]) - ] - ), - document.createTextNode('Beacon') - ] - ) -} - -export const constructAlertContainer = ( - id: string, - callToAction: HTMLElement[], - buttons: HTMLElement[], - main: HTMLElement[] -): HTMLElement => { - return createSanitizedElement( - 'div', - ['beacon-alert__base', 'animated', 'fadeIn'], - [['id', `beacon-alert-modal-${id}`]], - [ - createSanitizedElement( - 'div', - ['beacon-modal__wrapper'], - [], - [ - createSanitizedElement( - 'div', - ['beacon-modal__header'], - [], - [ - createSVGElement( - [], - [ - ['xmlns', 'http://www.w3.org/2000/svg'], - ['id', 'Guides'], - ['x', '0'], - ['y', '0'], - ['version', '1.1'], - ['viewBox', '0 0 179.2 43'], - ['xml:space', 'preserve'], - ['width', '140'], - ['height', '40'] - ], - [ - createSanitizedElement( - 'style', - [], - [], - `.st0 { - fill: #3880ff; - } - .st1 { - fill: #fff; - }` - ), - createSVGPathElement([ - [ - 'd', - 'M45 19v.9c0 .3-.2 7.5-3.4 13.2-3.3 5.6-9.4 9.3-9.7 9.5l-.8.4-1.3-.8-7.6-4.4c-.5-.3-.9-.6-1.4-.9-.4-.3-.7-.5-1.1-.8-.8-.7-1.5-1.4-2.1-2.2-.9-1.1-1.6-2.4-2.1-3.7-.9-2.3-1.3-4.8-1.2-7.5.8-.4 1.6-.6 2.4-.6h.6c-.2 2.4.1 4.6.8 6.6 1 2.8 2.9 5.1 5.5 6.6l7.4 4.3c.2-.1.4-.2.6-.4 1.9-1.3 5.3-4.1 7.3-7.6 2.2-3.9 2.8-8.9 3-10.8L38.8 19c.3-1 .4-2.1.5-3.2L45 19z' - ], - ['class', 'st0'] - ]), - createSVGPathElement([ - [ - 'd', - 'M36.3 4.1v10.3c0 .5 0 1.1-.1 1.6s-.1.9-.2 1.3c-.2 1-.5 2-.9 3-.5 1.3-1.3 2.6-2.2 3.7-1.5 1.9-3.5 3.6-5.9 4.8-.9-.6-1.6-1.3-2-2.4 2.1-1 3.9-2.3 5.2-4 1.9-2.3 3-5.1 3-8.1V5.9l-.6-.3c-2-1-6.1-2.6-10.1-2.6-4.5 0-9.1 2-10.9 2.9v3.6c-1 .3-2 .7-3 1.1V4.1l.8-.4C9.7 3.5 16 0 22.5 0s12.8 3.5 13.1 3.6l.7.5z' - ], - ['class', 'st0'] - ]), - createSVGPathElement([ - [ - 'd', - 'M10.5 16.5l-7.4 4.3v.7c.2 2.1.9 6.5 2.9 10 2.2 3.9 6.2 6.9 7.9 8l3.1-1.8c.8.7 1.6 1.4 2.5 2L13.8 43l-.8-.5c-.3-.2-6.4-3.9-9.7-9.5C.1 27.4 0 20.2 0 19.9V19l1.3-.8L9 13.9c.5-.3.9-.5 1.4-.7.4-.2.8-.4 1.3-.5 1-.4 2-.6 3-.7 1.4-.2 2.9-.2 4.3 0 2.4.3 4.8 1.2 7.1 2.7 0 1-.4 2-1 2.9-1.9-1.3-4-2.2-6-2.5-3.1-.6-6-.1-8.6 1.4z' - ], - ['class', 'st0'] - ]), - createSVGGElement([ - createSVGPathElement([ - [ - 'd', - 'M73.9 23c.9 1 1.3 2.3 1.3 3.7 0 1.9-.6 3.4-1.9 4.5-1.3 1.1-3.1 1.7-5.5 1.7h-8.6v-23h8.4c2.3 0 4.1.5 5.3 1.5 1.2 1 1.8 2.4 1.8 4.2 0 1.5-.4 2.7-1.2 3.6-.8.9-1.8 1.5-3.1 1.8 1.5.3 2.6 1 3.5 2zm-11.7-3h5c1.5 0 2.6-.3 3.4-1 .8-.7 1.2-1.6 1.2-2.8 0-1.2-.4-2.1-1.1-2.8-.8-.7-1.9-1-3.5-1h-4.8V20zm8.7 9.4c.9-.7 1.3-1.7 1.3-3s-.4-2.3-1.3-3c-.9-.7-2.1-1.1-3.7-1.1h-5v8.2h5c1.6-.1 2.8-.4 3.7-1.1zM95.3 24.6H81c.1 2.1.6 3.6 1.7 4.6s2.4 1.5 4 1.5c1.4 0 2.6-.4 3.6-1.1 1-.7 1.6-1.7 1.8-2.9h3.2c-.2 1.2-.7 2.4-1.5 3.3-.8 1-1.7 1.7-2.9 2.3-1.2.5-2.6.8-4.1.8-1.7 0-3.2-.4-4.6-1.1-1.3-.7-2.4-1.8-3.1-3.2-.8-1.4-1.1-3-1.1-4.9 0-1.9.4-3.5 1.1-4.9.8-1.4 1.8-2.5 3.1-3.2 1.3-.7 2.9-1.1 4.6-1.1 1.7 0 3.3.4 4.6 1.1 1.3.7 2.3 1.7 3 3 .7 1.2 1 2.6 1 4.1.1.7 0 1.2-.1 1.7zm-3.5-4.8c-.5-.9-1.2-1.6-2.1-2-.9-.4-1.8-.7-2.8-.7-1.6 0-3 .5-4.1 1.5-1.1 1-1.7 2.5-1.8 4.5h11.5c0-1.3-.2-2.4-.7-3.3zM111.2 16c1.2.9 2.1 2 2.5 3.5V15h3v18h-3v-4.6c-.5 1.5-1.3 2.6-2.5 3.5-1.2.9-2.7 1.3-4.4 1.3-1.6 0-3-.4-4.3-1.1-1.2-.7-2.2-1.8-2.9-3.2-.7-1.4-1.1-3-1.1-4.9 0-1.9.4-3.5 1.1-4.9.7-1.4 1.7-2.5 2.9-3.2 1.2-.7 2.7-1.1 4.3-1.1 1.7-.1 3.1.4 4.4 1.2zm-8 3.1c-1.1 1.2-1.7 2.8-1.7 4.8 0 2.1.5 3.7 1.7 4.8 1.1 1.2 2.6 1.8 4.4 1.8 1.2 0 2.2-.3 3.2-.8.9-.5 1.7-1.3 2.2-2.3.5-1 .8-2.1.8-3.5 0-1.3-.3-2.5-.8-3.5s-1.2-1.8-2.2-2.3c-.9-.5-2-.8-3.2-.8-1.9.1-3.3.7-4.4 1.8zM135 16.6c1.5 1.2 2.4 2.9 2.8 4.9h-3.1c-.2-1.3-.8-2.3-1.8-3-1-.7-2.2-1.1-3.6-1.1-1 0-2 .2-2.9.7-.9.5-1.6 1.2-2.1 2.2-.5 1-.8 2.2-.8 3.7s.3 2.7.8 3.7 1.2 1.7 2.1 2.2c.9.5 1.8.7 2.9.7 1.4 0 2.6-.4 3.6-1.1 1-.7 1.6-1.8 1.8-3h3.1c-.3 2.1-1.3 3.7-2.8 4.9-1.5 1.2-3.4 1.8-5.7 1.8-1.7 0-3.2-.4-4.6-1.1-1.3-.7-2.4-1.8-3.1-3.2-.8-1.4-1.1-3-1.1-4.9 0-1.9.4-3.5 1.1-4.9.8-1.4 1.8-2.5 3.1-3.2 1.3-.7 2.9-1.1 4.6-1.1 2.3-.1 4.2.6 5.7 1.8zM154.5 15.9c1.4.7 2.4 1.8 3.2 3.2.8 1.4 1.2 3 1.2 4.9 0 1.9-.4 3.5-1.2 4.9-.8 1.4-1.8 2.4-3.2 3.2-1.4.7-2.9 1.1-4.6 1.1-1.7 0-3.3-.4-4.6-1.1-1.4-.7-2.4-1.8-3.2-3.2-.8-1.4-1.2-3-1.2-4.9 0-1.9.4-3.5 1.2-4.9.8-1.4 1.9-2.5 3.2-3.2 1.4-.7 2.9-1.1 4.6-1.1 1.7-.1 3.2.3 4.6 1.1zm-7.6 2.2c-.9.5-1.6 1.2-2.2 2.2-.6 1-.8 2.2-.8 3.7 0 1.4.3 2.7.8 3.6.6 1 1.3 1.7 2.2 2.2.9.5 1.9.7 3 .7s2.1-.2 3-.7c.9-.5 1.6-1.2 2.2-2.2.6-1 .8-2.2.8-3.6 0-1.5-.3-2.7-.8-3.7-.6-1-1.3-1.7-2.2-2.2-.9-.5-1.9-.7-3-.7s-2.1.2-3 .7zM177.3 16.7c1.3 1.3 1.9 3.3 1.9 5.8v10.4h-3V22.8c0-1.8-.5-3.2-1.4-4.1-.9-1-2.2-1.4-3.7-1.4-1.6 0-2.9.5-3.9 1.6s-1.5 2.6-1.5 4.6V33h-3V15h3v4.3c.5-1.5 1.3-2.6 2.4-3.4 1.2-.8 2.5-1.2 4-1.2 2.2 0 3.9.6 5.2 2z' - ], - ['class', 'st1'] - ]) - ]) - ] - ), - createSanitizedElement( - 'div', - ['beacon-modal__close__wrapper'], - [['id', `beacon-alert-${id}-close`]], - [ - createSanitizedElement( - 'div', - ['beacon-modal__close__icon'], - [], - [ - createSanitizedElement('div', ['beacon-modal__close__line1'], [], []), - createSanitizedElement('div', ['beacon-modal__close__line2'], [], []) - ] - ) - ] - ) - ] - ), - createSanitizedElement( - 'div', - ['beacon-modal__base'], - [], - [ - createSanitizedElement( - 'div', - [], - [['id', 'beacon-modal__content']], - [ - createSanitizedElement( - 'div', - [], - [], - [ - createSanitizedElement('p', ['beacon-alert__title'], [], callToAction), - ...main, - createSanitizedElement('div', ['beacon-action__container'], [], buttons) - ] - ) - ] - ) - ] - ) - ] - ) - ] - ) -} - -export const constructDefaultAlert = ( - id: string, - callToAction: HTMLElement[], - buttons: HTMLElement[], - main: HTMLElement[] -): HTMLElement => { - return constructAlertContainer(id, callToAction, buttons, [ - createSanitizedElement('div', ['beacon-alert__text'], [['id', 'beacon-main-text']], main) - ]) -} - -export const constructPairAlert = ( - id: string, - callToAction: HTMLElement[], - buttons: HTMLElement[], - main: HTMLElement[] -): HTMLElement => { - return constructAlertContainer(id, callToAction, buttons, [ - createSanitizedElement('span', [], [['id', 'pairing-container']], ''), - createSanitizedElement( - 'div', - ['beacon-alert__text'], - [['id', 'beacon-main-text']], - [ - createSanitizedElement( - 'p', - ['beacon-list__title'], - [['id', 'beacon-title']], - [ - document.createTextNode('Scan QR code with a Beacon-compatible wallet.\u00A0'), - createSanitizedElement( - 'a', - [], - [ - ['href', 'https://docs.walletbeacon.io/supported-wallets'], - ['target', '_blank'] - ], - 'Learn more' - ), - ...main - ] - ) - ] - ), - createSanitizedElement( - 'div', - [], - [['id', 'beacon--switch__container']], - [ - createSanitizedElement( - 'button', - ['beacon-modal__button--outline'], - [['id', 'beacon-switch']], - '' - ) - ] - ), - createSanitizedElement('div', [], [['id', 'beacon--disclaimer']], '') - ]) -} From 50820970fd0eacd4fdadd820192d3c5506fb4754 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 13 Apr 2022 12:11:33 -0300 Subject: [PATCH 126/130] fix(): uncomment CI filter --- .gitlab-ci.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 827783c43..f2482bdae 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -75,9 +75,8 @@ publish_beta: publish: stage: publish - # TODO: Enable again - # only: - # - master + only: + - master when: manual script: - docker run --env NPM_AUTH_TOKEN --name unit-$CI_COMMIT_SHA $GOOGLE_TAG ./npm-ci-publish.sh From ea40e1ea40b5170228d6255eb8c79d24d14acb91 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 13 Apr 2022 12:58:50 -0300 Subject: [PATCH 127/130] chore(release): v3.0.0-beta.2 --- lerna.json | 2 +- package-lock.json | 108 +++++++++--------- .../beacon-blockchain-substrate/package.json | 6 +- packages/beacon-blockchain-tezos/package.json | 6 +- packages/beacon-core/package.json | 6 +- packages/beacon-core/src/constants.ts | 2 +- packages/beacon-dapp/package.json | 10 +- packages/beacon-sdk/package.json | 22 ++-- packages/beacon-transport-matrix/package.json | 6 +- .../beacon-transport-postmessage/package.json | 8 +- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 10 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 +- 14 files changed, 99 insertions(+), 99 deletions(-) diff --git a/lerna.json b/lerna.json index 839e975a9..c09627af4 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "3.0.0-beta.1" + "version": "3.0.0-beta.2" } diff --git a/package-lock.json b/package-lock.json index 2348543cc..6d884d01f 100755 --- a/package-lock.json +++ b/package-lock.json @@ -15556,29 +15556,29 @@ }, "packages/beacon-blockchain-substrate": { "name": "@airgap/beacon-blockchain-substrate", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^3.0.0-beta.0", - "@airgap/beacon-ui": "^3.0.0-beta.0" + "@airgap/beacon-types": "^3.0.0-beta.1", + "@airgap/beacon-ui": "^3.0.0-beta.1" } }, "packages/beacon-blockchain-tezos": { "name": "@airgap/beacon-blockchain-tezos", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^3.0.0-beta.0", - "@airgap/beacon-ui": "^3.0.0-beta.0" + "@airgap/beacon-types": "^3.0.0-beta.1", + "@airgap/beacon-ui": "^3.0.0-beta.1" } }, "packages/beacon-core": { "name": "@airgap/beacon-core", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^3.0.0-beta.0", - "@airgap/beacon-utils": "^3.0.0-beta.0", + "@airgap/beacon-types": "^3.0.0-beta.1", + "@airgap/beacon-utils": "^3.0.0-beta.1", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15586,41 +15586,41 @@ }, "packages/beacon-dapp": { "name": "@airgap/beacon-dapp", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.0", - "@airgap/beacon-transport-matrix": "^3.0.0-beta.0", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.0", - "@airgap/beacon-ui": "^3.0.0-beta.0", + "@airgap/beacon-core": "^3.0.0-beta.1", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.1", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.1", + "@airgap/beacon-ui": "^3.0.0-beta.1", "qrcode-generator": "1.4.4" } }, "packages/beacon-transport-matrix": { "name": "@airgap/beacon-transport-matrix", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.0", - "@airgap/beacon-utils": "^3.0.0-beta.0", + "@airgap/beacon-core": "^3.0.0-beta.1", + "@airgap/beacon-utils": "^3.0.0-beta.1", "axios": "0.24.0" } }, "packages/beacon-transport-postmessage": { "name": "@airgap/beacon-transport-postmessage", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.0", - "@airgap/beacon-types": "^3.0.0-beta.0", - "@airgap/beacon-utils": "^3.0.0-beta.0", + "@airgap/beacon-core": "^3.0.0-beta.1", + "@airgap/beacon-types": "^3.0.0-beta.1", + "@airgap/beacon-utils": "^3.0.0-beta.1", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } }, "packages/beacon-types": { "name": "@airgap/beacon-types", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "license": "ISC", "dependencies": { "@types/chrome": "0.0.163" @@ -15628,18 +15628,18 @@ }, "packages/beacon-ui": { "name": "@airgap/beacon-ui", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.0", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.0", - "@airgap/beacon-types": "^3.0.0-beta.0", - "@airgap/beacon-utils": "^3.0.0-beta.0" + "@airgap/beacon-core": "^3.0.0-beta.1", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.1", + "@airgap/beacon-types": "^3.0.0-beta.1", + "@airgap/beacon-utils": "^3.0.0-beta.1" } }, "packages/beacon-utils": { "name": "@airgap/beacon-utils", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "license": "ISC", "dependencies": { "@types/libsodium-wrappers": "0.7.9", @@ -15649,12 +15649,12 @@ }, "packages/beacon-wallet": { "name": "@airgap/beacon-wallet", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.0", - "@airgap/beacon-transport-matrix": "^3.0.0-beta.0", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.0" + "@airgap/beacon-core": "^3.0.0-beta.1", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.1", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.1" } } }, @@ -15662,22 +15662,22 @@ "@airgap/beacon-blockchain-substrate": { "version": "file:packages/beacon-blockchain-substrate", "requires": { - "@airgap/beacon-types": "^3.0.0-beta.0", - "@airgap/beacon-ui": "^3.0.0-beta.0" + "@airgap/beacon-types": "^3.0.0-beta.1", + "@airgap/beacon-ui": "^3.0.0-beta.1" } }, "@airgap/beacon-blockchain-tezos": { "version": "file:packages/beacon-blockchain-tezos", "requires": { - "@airgap/beacon-types": "^3.0.0-beta.0", - "@airgap/beacon-ui": "^3.0.0-beta.0" + "@airgap/beacon-types": "^3.0.0-beta.1", + "@airgap/beacon-ui": "^3.0.0-beta.1" } }, "@airgap/beacon-core": { "version": "file:packages/beacon-core", "requires": { - "@airgap/beacon-types": "^3.0.0-beta.0", - "@airgap/beacon-utils": "^3.0.0-beta.0", + "@airgap/beacon-types": "^3.0.0-beta.1", + "@airgap/beacon-utils": "^3.0.0-beta.1", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15686,27 +15686,27 @@ "@airgap/beacon-dapp": { "version": "file:packages/beacon-dapp", "requires": { - "@airgap/beacon-core": "^3.0.0-beta.0", - "@airgap/beacon-transport-matrix": "^3.0.0-beta.0", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.0", - "@airgap/beacon-ui": "^3.0.0-beta.0", + "@airgap/beacon-core": "^3.0.0-beta.1", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.1", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.1", + "@airgap/beacon-ui": "^3.0.0-beta.1", "qrcode-generator": "1.4.4" } }, "@airgap/beacon-transport-matrix": { "version": "file:packages/beacon-transport-matrix", "requires": { - "@airgap/beacon-core": "^3.0.0-beta.0", - "@airgap/beacon-utils": "^3.0.0-beta.0", + "@airgap/beacon-core": "^3.0.0-beta.1", + "@airgap/beacon-utils": "^3.0.0-beta.1", "axios": "0.24.0" } }, "@airgap/beacon-transport-postmessage": { "version": "file:packages/beacon-transport-postmessage", "requires": { - "@airgap/beacon-core": "^3.0.0-beta.0", - "@airgap/beacon-types": "^3.0.0-beta.0", - "@airgap/beacon-utils": "^3.0.0-beta.0", + "@airgap/beacon-core": "^3.0.0-beta.1", + "@airgap/beacon-types": "^3.0.0-beta.1", + "@airgap/beacon-utils": "^3.0.0-beta.1", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } @@ -15720,10 +15720,10 @@ "@airgap/beacon-ui": { "version": "file:packages/beacon-ui", "requires": { - "@airgap/beacon-core": "^3.0.0-beta.0", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.0", - "@airgap/beacon-types": "^3.0.0-beta.0", - "@airgap/beacon-utils": "^3.0.0-beta.0" + "@airgap/beacon-core": "^3.0.0-beta.1", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.1", + "@airgap/beacon-types": "^3.0.0-beta.1", + "@airgap/beacon-utils": "^3.0.0-beta.1" } }, "@airgap/beacon-utils": { @@ -15737,9 +15737,9 @@ "@airgap/beacon-wallet": { "version": "file:packages/beacon-wallet", "requires": { - "@airgap/beacon-core": "^3.0.0-beta.0", - "@airgap/beacon-transport-matrix": "^3.0.0-beta.0", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.0" + "@airgap/beacon-core": "^3.0.0-beta.1", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.1", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.1" } }, "@babel/code-frame": { diff --git a/packages/beacon-blockchain-substrate/package.json b/packages/beacon-blockchain-substrate/package.json index 25b4e829b..29c9d609f 100644 --- a/packages/beacon-blockchain-substrate/package.json +++ b/packages/beacon-blockchain-substrate/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-substrate", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,7 +34,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^3.0.0-beta.1", - "@airgap/beacon-ui": "^3.0.0-beta.1" + "@airgap/beacon-types": "^3.0.0-beta.2", + "@airgap/beacon-ui": "^3.0.0-beta.2" } } diff --git a/packages/beacon-blockchain-tezos/package.json b/packages/beacon-blockchain-tezos/package.json index 5a51aff3d..20c18f902 100644 --- a/packages/beacon-blockchain-tezos/package.json +++ b/packages/beacon-blockchain-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-tezos", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,7 +34,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^3.0.0-beta.1", - "@airgap/beacon-ui": "^3.0.0-beta.1" + "@airgap/beacon-types": "^3.0.0-beta.2", + "@airgap/beacon-ui": "^3.0.0-beta.2" } } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index c529bf24c..2adcb253b 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^3.0.0-beta.1", - "@airgap/beacon-utils": "^3.0.0-beta.1", + "@airgap/beacon-types": "^3.0.0-beta.2", + "@airgap/beacon-utils": "^3.0.0-beta.2", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-core/src/constants.ts b/packages/beacon-core/src/constants.ts index b7c36a81d..fdb6c192f 100644 --- a/packages/beacon-core/src/constants.ts +++ b/packages/beacon-core/src/constants.ts @@ -1,2 +1,2 @@ -export const SDK_VERSION: string = '3.0.0-beta.1' +export const SDK_VERSION: string = '3.0.0-beta.2' export const BEACON_VERSION: string = '3' diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 8393f1835..49d7cc007 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,10 +35,10 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.1", - "@airgap/beacon-transport-matrix": "^3.0.0-beta.1", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.1", - "@airgap/beacon-ui": "^3.0.0-beta.1", + "@airgap/beacon-core": "^3.0.0-beta.2", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.2", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.2", + "@airgap/beacon-ui": "^3.0.0-beta.2", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-sdk/package.json b/packages/beacon-sdk/package.json index 96faf120d..4434c26b0 100644 --- a/packages/beacon-sdk/package.json +++ b/packages/beacon-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-sdk", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,15 +35,15 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-blockchain-substrate": "^3.0.0-beta.1", - "@airgap/beacon-blockchain-tezos": "^3.0.0-beta.1", - "@airgap/beacon-core": "^3.0.0-beta.1", - "@airgap/beacon-dapp": "^3.0.0-beta.1", - "@airgap/beacon-transport-matrix": "^3.0.0-beta.1", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.1", - "@airgap/beacon-types": "^3.0.0-beta.1", - "@airgap/beacon-ui": "^3.0.0-beta.1", - "@airgap/beacon-utils": "^3.0.0-beta.1", - "@airgap/beacon-wallet": "^3.0.0-beta.1" + "@airgap/beacon-blockchain-substrate": "^3.0.0-beta.2", + "@airgap/beacon-blockchain-tezos": "^3.0.0-beta.2", + "@airgap/beacon-core": "^3.0.0-beta.2", + "@airgap/beacon-dapp": "^3.0.0-beta.2", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.2", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.2", + "@airgap/beacon-types": "^3.0.0-beta.2", + "@airgap/beacon-ui": "^3.0.0-beta.2", + "@airgap/beacon-utils": "^3.0.0-beta.2", + "@airgap/beacon-wallet": "^3.0.0-beta.2" } } diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index cb1cdf744..4e90a725f 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.1", - "@airgap/beacon-utils": "^3.0.0-beta.1", + "@airgap/beacon-core": "^3.0.0-beta.2", + "@airgap/beacon-utils": "^3.0.0-beta.2", "axios": "0.24.0" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 147c99c96..0a7e1740d 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.1", - "@airgap/beacon-types": "^3.0.0-beta.1", - "@airgap/beacon-utils": "^3.0.0-beta.1", + "@airgap/beacon-core": "^3.0.0-beta.2", + "@airgap/beacon-types": "^3.0.0-beta.2", + "@airgap/beacon-utils": "^3.0.0-beta.2", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 3217ba08b..932e522e1 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index d20e8c5f9..b9f6b171d 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.1", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.1", - "@airgap/beacon-types": "^3.0.0-beta.1", - "@airgap/beacon-utils": "^3.0.0-beta.1" + "@airgap/beacon-core": "^3.0.0-beta.2", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.2", + "@airgap/beacon-types": "^3.0.0-beta.2", + "@airgap/beacon-utils": "^3.0.0-beta.2" } } diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 92f06b6d2..0da92c734 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index ce711c123..54cf3f809 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,8 +35,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.1", - "@airgap/beacon-transport-matrix": "^3.0.0-beta.1", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.1" + "@airgap/beacon-core": "^3.0.0-beta.2", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.2", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.2" } } From ca28ed25de196f0e57d5e521d17500ebbc80f844 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 20 Apr 2022 15:04:14 -0300 Subject: [PATCH 128/130] chore(release): v3.0.0 --- lerna.json | 2 +- package-lock.json | 108 +++++++++--------- .../beacon-blockchain-substrate/package.json | 6 +- packages/beacon-blockchain-tezos/package.json | 6 +- packages/beacon-core/package.json | 6 +- packages/beacon-core/src/constants.ts | 2 +- packages/beacon-dapp/package.json | 10 +- packages/beacon-sdk/package.json | 22 ++-- packages/beacon-transport-matrix/package.json | 6 +- .../beacon-transport-postmessage/package.json | 8 +- packages/beacon-types/package.json | 2 +- packages/beacon-ui/package.json | 10 +- packages/beacon-utils/package.json | 2 +- packages/beacon-wallet/package.json | 8 +- 14 files changed, 99 insertions(+), 99 deletions(-) diff --git a/lerna.json b/lerna.json index c09627af4..5c3f6a345 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "packages": ["packages/*"], - "version": "3.0.0-beta.2" + "version": "3.0.0" } diff --git a/package-lock.json b/package-lock.json index 6d884d01f..e11206b28 100755 --- a/package-lock.json +++ b/package-lock.json @@ -15556,29 +15556,29 @@ }, "packages/beacon-blockchain-substrate": { "name": "@airgap/beacon-blockchain-substrate", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^3.0.0-beta.1", - "@airgap/beacon-ui": "^3.0.0-beta.1" + "@airgap/beacon-types": "^3.0.0-beta.2", + "@airgap/beacon-ui": "^3.0.0-beta.2" } }, "packages/beacon-blockchain-tezos": { "name": "@airgap/beacon-blockchain-tezos", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^3.0.0-beta.1", - "@airgap/beacon-ui": "^3.0.0-beta.1" + "@airgap/beacon-types": "^3.0.0-beta.2", + "@airgap/beacon-ui": "^3.0.0-beta.2" } }, "packages/beacon-core": { "name": "@airgap/beacon-core", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-types": "^3.0.0-beta.1", - "@airgap/beacon-utils": "^3.0.0-beta.1", + "@airgap/beacon-types": "^3.0.0-beta.2", + "@airgap/beacon-utils": "^3.0.0-beta.2", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15586,41 +15586,41 @@ }, "packages/beacon-dapp": { "name": "@airgap/beacon-dapp", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.1", - "@airgap/beacon-transport-matrix": "^3.0.0-beta.1", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.1", - "@airgap/beacon-ui": "^3.0.0-beta.1", + "@airgap/beacon-core": "^3.0.0-beta.2", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.2", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.2", + "@airgap/beacon-ui": "^3.0.0-beta.2", "qrcode-generator": "1.4.4" } }, "packages/beacon-transport-matrix": { "name": "@airgap/beacon-transport-matrix", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.1", - "@airgap/beacon-utils": "^3.0.0-beta.1", + "@airgap/beacon-core": "^3.0.0-beta.2", + "@airgap/beacon-utils": "^3.0.0-beta.2", "axios": "0.24.0" } }, "packages/beacon-transport-postmessage": { "name": "@airgap/beacon-transport-postmessage", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.1", - "@airgap/beacon-types": "^3.0.0-beta.1", - "@airgap/beacon-utils": "^3.0.0-beta.1", + "@airgap/beacon-core": "^3.0.0-beta.2", + "@airgap/beacon-types": "^3.0.0-beta.2", + "@airgap/beacon-utils": "^3.0.0-beta.2", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } }, "packages/beacon-types": { "name": "@airgap/beacon-types", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "license": "ISC", "dependencies": { "@types/chrome": "0.0.163" @@ -15628,18 +15628,18 @@ }, "packages/beacon-ui": { "name": "@airgap/beacon-ui", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.1", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.1", - "@airgap/beacon-types": "^3.0.0-beta.1", - "@airgap/beacon-utils": "^3.0.0-beta.1" + "@airgap/beacon-core": "^3.0.0-beta.2", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.2", + "@airgap/beacon-types": "^3.0.0-beta.2", + "@airgap/beacon-utils": "^3.0.0-beta.2" } }, "packages/beacon-utils": { "name": "@airgap/beacon-utils", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "license": "ISC", "dependencies": { "@types/libsodium-wrappers": "0.7.9", @@ -15649,12 +15649,12 @@ }, "packages/beacon-wallet": { "name": "@airgap/beacon-wallet", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "license": "ISC", "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.1", - "@airgap/beacon-transport-matrix": "^3.0.0-beta.1", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.1" + "@airgap/beacon-core": "^3.0.0-beta.2", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.2", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.2" } } }, @@ -15662,22 +15662,22 @@ "@airgap/beacon-blockchain-substrate": { "version": "file:packages/beacon-blockchain-substrate", "requires": { - "@airgap/beacon-types": "^3.0.0-beta.1", - "@airgap/beacon-ui": "^3.0.0-beta.1" + "@airgap/beacon-types": "^3.0.0-beta.2", + "@airgap/beacon-ui": "^3.0.0-beta.2" } }, "@airgap/beacon-blockchain-tezos": { "version": "file:packages/beacon-blockchain-tezos", "requires": { - "@airgap/beacon-types": "^3.0.0-beta.1", - "@airgap/beacon-ui": "^3.0.0-beta.1" + "@airgap/beacon-types": "^3.0.0-beta.2", + "@airgap/beacon-ui": "^3.0.0-beta.2" } }, "@airgap/beacon-core": { "version": "file:packages/beacon-core", "requires": { - "@airgap/beacon-types": "^3.0.0-beta.1", - "@airgap/beacon-utils": "^3.0.0-beta.1", + "@airgap/beacon-types": "^3.0.0-beta.2", + "@airgap/beacon-utils": "^3.0.0-beta.2", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" @@ -15686,27 +15686,27 @@ "@airgap/beacon-dapp": { "version": "file:packages/beacon-dapp", "requires": { - "@airgap/beacon-core": "^3.0.0-beta.1", - "@airgap/beacon-transport-matrix": "^3.0.0-beta.1", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.1", - "@airgap/beacon-ui": "^3.0.0-beta.1", + "@airgap/beacon-core": "^3.0.0-beta.2", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.2", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.2", + "@airgap/beacon-ui": "^3.0.0-beta.2", "qrcode-generator": "1.4.4" } }, "@airgap/beacon-transport-matrix": { "version": "file:packages/beacon-transport-matrix", "requires": { - "@airgap/beacon-core": "^3.0.0-beta.1", - "@airgap/beacon-utils": "^3.0.0-beta.1", + "@airgap/beacon-core": "^3.0.0-beta.2", + "@airgap/beacon-utils": "^3.0.0-beta.2", "axios": "0.24.0" } }, "@airgap/beacon-transport-postmessage": { "version": "file:packages/beacon-transport-postmessage", "requires": { - "@airgap/beacon-core": "^3.0.0-beta.1", - "@airgap/beacon-types": "^3.0.0-beta.1", - "@airgap/beacon-utils": "^3.0.0-beta.1", + "@airgap/beacon-core": "^3.0.0-beta.2", + "@airgap/beacon-types": "^3.0.0-beta.2", + "@airgap/beacon-utils": "^3.0.0-beta.2", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } @@ -15720,10 +15720,10 @@ "@airgap/beacon-ui": { "version": "file:packages/beacon-ui", "requires": { - "@airgap/beacon-core": "^3.0.0-beta.1", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.1", - "@airgap/beacon-types": "^3.0.0-beta.1", - "@airgap/beacon-utils": "^3.0.0-beta.1" + "@airgap/beacon-core": "^3.0.0-beta.2", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.2", + "@airgap/beacon-types": "^3.0.0-beta.2", + "@airgap/beacon-utils": "^3.0.0-beta.2" } }, "@airgap/beacon-utils": { @@ -15737,9 +15737,9 @@ "@airgap/beacon-wallet": { "version": "file:packages/beacon-wallet", "requires": { - "@airgap/beacon-core": "^3.0.0-beta.1", - "@airgap/beacon-transport-matrix": "^3.0.0-beta.1", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.1" + "@airgap/beacon-core": "^3.0.0-beta.2", + "@airgap/beacon-transport-matrix": "^3.0.0-beta.2", + "@airgap/beacon-transport-postmessage": "^3.0.0-beta.2" } }, "@babel/code-frame": { diff --git a/packages/beacon-blockchain-substrate/package.json b/packages/beacon-blockchain-substrate/package.json index 29c9d609f..6ec3420cb 100644 --- a/packages/beacon-blockchain-substrate/package.json +++ b/packages/beacon-blockchain-substrate/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-substrate", - "version": "3.0.0-beta.2", + "version": "3.0.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,7 +34,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^3.0.0-beta.2", - "@airgap/beacon-ui": "^3.0.0-beta.2" + "@airgap/beacon-types": "^3.0.0", + "@airgap/beacon-ui": "^3.0.0" } } diff --git a/packages/beacon-blockchain-tezos/package.json b/packages/beacon-blockchain-tezos/package.json index 20c18f902..4c182c17c 100644 --- a/packages/beacon-blockchain-tezos/package.json +++ b/packages/beacon-blockchain-tezos/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-blockchain-tezos", - "version": "3.0.0-beta.2", + "version": "3.0.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,7 +34,7 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^3.0.0-beta.2", - "@airgap/beacon-ui": "^3.0.0-beta.2" + "@airgap/beacon-types": "^3.0.0", + "@airgap/beacon-ui": "^3.0.0" } } diff --git a/packages/beacon-core/package.json b/packages/beacon-core/package.json index 2adcb253b..133747199 100644 --- a/packages/beacon-core/package.json +++ b/packages/beacon-core/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-core", - "version": "3.0.0-beta.2", + "version": "3.0.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-types": "^3.0.0-beta.2", - "@airgap/beacon-utils": "^3.0.0-beta.2", + "@airgap/beacon-types": "^3.0.0", + "@airgap/beacon-utils": "^3.0.0", "@types/libsodium-wrappers": "0.7.9", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.9" diff --git a/packages/beacon-core/src/constants.ts b/packages/beacon-core/src/constants.ts index fdb6c192f..3c6d2e6c3 100644 --- a/packages/beacon-core/src/constants.ts +++ b/packages/beacon-core/src/constants.ts @@ -1,2 +1,2 @@ -export const SDK_VERSION: string = '3.0.0-beta.2' +export const SDK_VERSION: string = '3.0.0' export const BEACON_VERSION: string = '3' diff --git a/packages/beacon-dapp/package.json b/packages/beacon-dapp/package.json index 49d7cc007..08d3fd0f7 100644 --- a/packages/beacon-dapp/package.json +++ b/packages/beacon-dapp/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-dapp", - "version": "3.0.0-beta.2", + "version": "3.0.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,10 +35,10 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.2", - "@airgap/beacon-transport-matrix": "^3.0.0-beta.2", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.2", - "@airgap/beacon-ui": "^3.0.0-beta.2", + "@airgap/beacon-core": "^3.0.0", + "@airgap/beacon-transport-matrix": "^3.0.0", + "@airgap/beacon-transport-postmessage": "^3.0.0", + "@airgap/beacon-ui": "^3.0.0", "qrcode-generator": "1.4.4" } } diff --git a/packages/beacon-sdk/package.json b/packages/beacon-sdk/package.json index 4434c26b0..4c51c6425 100644 --- a/packages/beacon-sdk/package.json +++ b/packages/beacon-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-sdk", - "version": "3.0.0-beta.2", + "version": "3.0.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,15 +35,15 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-blockchain-substrate": "^3.0.0-beta.2", - "@airgap/beacon-blockchain-tezos": "^3.0.0-beta.2", - "@airgap/beacon-core": "^3.0.0-beta.2", - "@airgap/beacon-dapp": "^3.0.0-beta.2", - "@airgap/beacon-transport-matrix": "^3.0.0-beta.2", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.2", - "@airgap/beacon-types": "^3.0.0-beta.2", - "@airgap/beacon-ui": "^3.0.0-beta.2", - "@airgap/beacon-utils": "^3.0.0-beta.2", - "@airgap/beacon-wallet": "^3.0.0-beta.2" + "@airgap/beacon-blockchain-substrate": "^3.0.0", + "@airgap/beacon-blockchain-tezos": "^3.0.0", + "@airgap/beacon-core": "^3.0.0", + "@airgap/beacon-dapp": "^3.0.0", + "@airgap/beacon-transport-matrix": "^3.0.0", + "@airgap/beacon-transport-postmessage": "^3.0.0", + "@airgap/beacon-types": "^3.0.0", + "@airgap/beacon-ui": "^3.0.0", + "@airgap/beacon-utils": "^3.0.0", + "@airgap/beacon-wallet": "^3.0.0" } } diff --git a/packages/beacon-transport-matrix/package.json b/packages/beacon-transport-matrix/package.json index 4e90a725f..27115096a 100644 --- a/packages/beacon-transport-matrix/package.json +++ b/packages/beacon-transport-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-matrix", - "version": "3.0.0-beta.2", + "version": "3.0.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,8 +34,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.2", - "@airgap/beacon-utils": "^3.0.0-beta.2", + "@airgap/beacon-core": "^3.0.0", + "@airgap/beacon-utils": "^3.0.0", "axios": "0.24.0" } } diff --git a/packages/beacon-transport-postmessage/package.json b/packages/beacon-transport-postmessage/package.json index 0a7e1740d..2108e73bd 100644 --- a/packages/beacon-transport-postmessage/package.json +++ b/packages/beacon-transport-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-transport-postmessage", - "version": "3.0.0-beta.2", + "version": "3.0.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.2", - "@airgap/beacon-types": "^3.0.0-beta.2", - "@airgap/beacon-utils": "^3.0.0-beta.2", + "@airgap/beacon-core": "^3.0.0", + "@airgap/beacon-types": "^3.0.0", + "@airgap/beacon-utils": "^3.0.0", "@types/libsodium-wrappers": "0.7.9", "libsodium-wrappers": "0.7.9" } diff --git a/packages/beacon-types/package.json b/packages/beacon-types/package.json index 932e522e1..5bc501b25 100644 --- a/packages/beacon-types/package.json +++ b/packages/beacon-types/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-types", - "version": "3.0.0-beta.2", + "version": "3.0.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-ui/package.json b/packages/beacon-ui/package.json index b9f6b171d..070f3fee9 100644 --- a/packages/beacon-ui/package.json +++ b/packages/beacon-ui/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-ui", - "version": "3.0.0-beta.2", + "version": "3.0.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -34,9 +34,9 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.2", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.2", - "@airgap/beacon-types": "^3.0.0-beta.2", - "@airgap/beacon-utils": "^3.0.0-beta.2" + "@airgap/beacon-core": "^3.0.0", + "@airgap/beacon-transport-postmessage": "^3.0.0", + "@airgap/beacon-types": "^3.0.0", + "@airgap/beacon-utils": "^3.0.0" } } diff --git a/packages/beacon-utils/package.json b/packages/beacon-utils/package.json index 0da92c734..aeea4a83b 100644 --- a/packages/beacon-utils/package.json +++ b/packages/beacon-utils/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-utils", - "version": "3.0.0-beta.2", + "version": "3.0.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", diff --git a/packages/beacon-wallet/package.json b/packages/beacon-wallet/package.json index 54cf3f809..ce86ad122 100644 --- a/packages/beacon-wallet/package.json +++ b/packages/beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@airgap/beacon-wallet", - "version": "3.0.0-beta.2", + "version": "3.0.0", "description": "> TODO: description", "author": "Andreas Gassmann ", "homepage": "https://walletbeacon.io", @@ -35,8 +35,8 @@ "url": "https://github.com/airgap-it/beacon-sdk/issues" }, "dependencies": { - "@airgap/beacon-core": "^3.0.0-beta.2", - "@airgap/beacon-transport-matrix": "^3.0.0-beta.2", - "@airgap/beacon-transport-postmessage": "^3.0.0-beta.2" + "@airgap/beacon-core": "^3.0.0", + "@airgap/beacon-transport-matrix": "^3.0.0", + "@airgap/beacon-transport-postmessage": "^3.0.0" } } From 2aabe5e51244283277ff8dfcf675d83dee0187a6 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Wed, 20 Apr 2022 15:22:29 -0300 Subject: [PATCH 129/130] feat(): merge master From 6161b3d9e9aa519cc3fec57bad2e657674ba6307 Mon Sep 17 00:00:00 2001 From: Andreas Gassmann Date: Thu, 21 Apr 2022 11:49:20 -0300 Subject: [PATCH 130/130] feat(): add jakartanet --- packages/beacon-dapp/src/utils/tezblock-blockexplorer.ts | 3 ++- packages/beacon-types/src/types/beacon/NetworkType.ts | 1 + packages/beacon-types/src/types/ui.ts | 1 + scripts/blockchains/tezos.ts | 4 +++- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/beacon-dapp/src/utils/tezblock-blockexplorer.ts b/packages/beacon-dapp/src/utils/tezblock-blockexplorer.ts index fd6f71aea..7826d0cfe 100644 --- a/packages/beacon-dapp/src/utils/tezblock-blockexplorer.ts +++ b/packages/beacon-dapp/src/utils/tezblock-blockexplorer.ts @@ -11,7 +11,8 @@ export class TezblockBlockExplorer extends BlockExplorer { [NetworkType.GRANADANET]: 'https://granadanet.tezblock.io', [NetworkType.HANGZHOUNET]: 'https://hangzhounet.tezblock.io', [NetworkType.ITHACANET]: 'https://ithacanet.tezblock.io', - [NetworkType.CUSTOM]: 'https://ithacanet.tezblock.io' + [NetworkType.JAKARTANET]: 'https://jakartanet.tezblock.io', + [NetworkType.CUSTOM]: 'https://jakartanet.tezblock.io' } ) { super(rpcUrls) diff --git a/packages/beacon-types/src/types/beacon/NetworkType.ts b/packages/beacon-types/src/types/beacon/NetworkType.ts index 3af1c86da..a63f3e9bd 100644 --- a/packages/beacon-types/src/types/beacon/NetworkType.ts +++ b/packages/beacon-types/src/types/beacon/NetworkType.ts @@ -6,5 +6,6 @@ export enum NetworkType { GRANADANET = 'granadanet', HANGZHOUNET = 'hangzhounet', ITHACANET = 'ithacanet', + JAKARTANET = 'jakartanet', CUSTOM = 'custom' } diff --git a/packages/beacon-types/src/types/ui.ts b/packages/beacon-types/src/types/ui.ts index b63c1a243..27d6df37b 100644 --- a/packages/beacon-types/src/types/ui.ts +++ b/packages/beacon-types/src/types/ui.ts @@ -22,6 +22,7 @@ export interface WebApp extends AppBase { [NetworkType.GRANADANET]?: string [NetworkType.HANGZHOUNET]?: string [NetworkType.ITHACANET]?: string + [NetworkType.JAKARTANET]?: string [NetworkType.CUSTOM]?: string } } diff --git a/scripts/blockchains/tezos.ts b/scripts/blockchains/tezos.ts index 29c59d950..830d8facd 100644 --- a/scripts/blockchains/tezos.ts +++ b/scripts/blockchains/tezos.ts @@ -9,6 +9,7 @@ export enum NetworkType { GRANADANET = 'granadanet', HANGZHOUNET = 'hangzhounet', ITHACANET = 'ithacanet', + JAKARTANET = 'jakartanet', CUSTOM = 'custom' } @@ -47,7 +48,8 @@ export const tezosWebList: WebApp[] = [ [NetworkType.FLORENCENET]: 'https://florencenet.kukai.app', [NetworkType.GRANADANET]: 'https://granadanet.kukai.app', [NetworkType.HANGZHOUNET]: 'https://hangzhounet.kukai.app', - [NetworkType.ITHACANET]: 'https://ithacanet.kukai.app' + [NetworkType.ITHACANET]: 'https://ithacanet.kukai.app', + [NetworkType.JAKARTANET]: 'https://jakartanet.kukai.app' } } ]