945 lines
1.0 MiB

"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
exports.id = "vendor-chunks/@libp2p";
exports.ids = ["vendor-chunks/@libp2p"];
exports.modules = {
/***/ "(ssr)/./node_modules/@libp2p/bootstrap/dist/src/index.js":
/*!**********************************************************!*\
!*** ./node_modules/@libp2p/bootstrap/dist/src/index.js ***!
\**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ bootstrap: () => (/* binding */ bootstrap)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/event-target.js\");\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/peer-discovery/index.js\");\n/* harmony import */ var _libp2p_peer_id__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @libp2p/peer-id */ \"(ssr)/./node_modules/@libp2p/peer-id/dist/src/index.js\");\n/* harmony import */ var _multiformats_mafmt__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @multiformats/mafmt */ \"(ssr)/./node_modules/@multiformats/mafmt/dist/src/index.js\");\n/* harmony import */ var _multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @multiformats/multiaddr */ \"(ssr)/./node_modules/@multiformats/multiaddr/dist/src/index.js\");\n/**\n * @packageDocumentation\n *\n * The configured bootstrap peers will be discovered after the configured timeout. This will ensure there are some peers in the peer store for the node to use to discover other peers.\n *\n * They will be tagged with a tag with the name `'bootstrap'` tag, the value `50` and it will expire after two minutes which means the nodes connections may be closed if the maximum number of connections is reached.\n *\n * Clients that need constant connections to bootstrap nodes (e.g. browsers) can set the TTL to `Infinity`.\n *\n * @example Configuring a list of bootstrap nodes\n *\n * ```TypeScript\n * import { createLibp2p } from 'libp2p'\n * import { bootstrap } from '@libp2p/bootstrap'\n *\n * const libp2p = await createLibp2p({\n * peerDiscovery: [\n * bootstrap({\n * list: [\n * // a list of bootstrap peer multiaddrs to connect to on node startup\n * '/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ',\n * '/dnsaddr/bootstrap.libp2p.io/ipfs/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN',\n * '/dnsaddr/bootstrap.libp2p.io/ipfs/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa'\n * ]\n * })\n * ]\n * })\n *\n * libp2p.addEventListener('peer:discovery', (evt) => {\n * console.log('found peer: ', evt.detail.toString())\n * })\n * ```\n */ \n\n\n\nconst DEFAULT_BOOTSTRAP_TAG_NAME = \"bootstrap\";\nconst DEFAULT_BOOTSTRAP_TAG_VALUE = 50;\nconst DEFAULT_BOOTSTRAP_TAG_TTL = 120000;\nconst DEFAULT_BOOTSTRAP_DISCOVERY_TIMEOUT = 1000;\nlet prop;\n/**\n * Emits 'peer' events on a regular interval for each peer in the provided list.\n */ class Bootstrap extends _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__.TypedEventEmitter {\n static{\n prop = Symbol.toStringTag;\n }\n static{\n this.tag = \"bootstrap\";\n }\n constructor(components, options = {\n list: []\n }){\n if (options.list == null || options.list.length === 0) {\n throw new Error(\"Bootstrap requires a list of peer addresses\");\n }\n super();\n this[_libp2p_interface__WEBPACK_IMPORTED_MODULE_3__.peerDiscoverySymbol] = this;\n this[prop] = \"@libp2p/bootstrap\";\n this.components = components;\n this.log = components.logger.forComponent(\"libp2p:bootstrap\");\n this.timeout = options.timeout ?? DEFAULT_BOOTSTRAP_DISCOVERY_TIMEOUT;\n this.list = [];\n for (const candidate of options.list){\n if (!_multiformats_mafmt__WEBPACK_IMPORTED_MODULE_0__.P2P.matches(candidate)) {\n this.log.error(\"Invalid multiaddr\");\n continue;\n }\n const ma = (0,_multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_1__.multiaddr)(candidate);\n const peerIdStr = ma.getPeerId();\n if (peerIdStr == null) {\n this.log.error(\"Invalid bootstrap multiaddr without peer id\");\n continue;\n }\n const peerData = {\n id: (0,_libp2p_peer_id__WEBPACK_IMPORTED_MODULE_4__.peerIdFromString)(peerIdStr),\n multiaddrs: [\n ma\n ]\n };\n this.list.push(peerData);\n }\n this._init = options;\n }\n isStarted() {\n return Boolean(this.timer);\n }\n /**\n * Start emitting events\n */ start() {\n if (this.isStarted()) {\n return;\n }\n this.log(\"Starting bootstrap node discovery, discovering peers after %s ms\", this.timeout);\n this.timer = setTimeout(()=>{\n void this._discoverBootstrapPeers().catch((err)=>{\n this.log.error(err);\n });\n }, this.timeout);\n }\n /**\n * Emit each address in the list as a PeerInfo\n */ async _discoverBootstrapPeers() {\n if (this.timer == null) {\n return;\n }\n for (const peerData of this.list){\n await this.components.peerStore.merge(peerData.id, {\n tags: {\n [this._init.tagName ?? DEFAULT_BOOTSTRAP_TAG_NAME]: {\n value: this._init.tagValue ?? DEFAULT_BOOTSTRAP_TAG_VALUE,\n ttl: this._init.tagTTL ?? DEFAULT_BOOTSTRAP_TAG_TTL\n }\n }\n });\n // check we are still running\n if (this.timer == null) {\n return;\n }\n this.safeDispatchEvent(\"peer\", {\n detail: peerData\n });\n }\n }\n /**\n * Stop emitting events\n */ stop() {\n if (this.timer != null) {\n clearTimeout(this.timer);\n }\n this.timer = undefined;\n }\n}\nfunction bootstrap(init) {\n return (components)=>new Bootstrap(components, init);\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9ib290c3RyYXAvZGlzdC9zcmMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBZ0NDLEdBQzBFO0FBQ3hCO0FBQ1Q7QUFDVTtBQUNwRCxNQUFNSyw2QkFBNkI7QUFDbkMsTUFBTUMsOEJBQThCO0FBQ3BDLE1BQU1DLDRCQUE0QjtBQUNsQyxNQUFNQyxzQ0FBc0M7O0FBQzVDOztDQUVDLEdBQ0QsTUFBTUMsa0JBQWtCVCxnRUFBaUJBOztlQXFDcENVLE9BQU9DLFdBQVc7OzthQXBDWkMsTUFBTTs7SUFPYkMsWUFBWUMsVUFBVSxFQUFFQyxVQUFVO1FBQUVDLE1BQU0sRUFBRTtJQUFDLENBQUMsQ0FBRTtRQUM1QyxJQUFJRCxRQUFRQyxJQUFJLElBQUksUUFBUUQsUUFBUUMsSUFBSSxDQUFDQyxNQUFNLEtBQUssR0FBRztZQUNuRCxNQUFNLElBQUlDLE1BQU07UUFDcEI7UUFDQSxLQUFLO1lBd0JULENBQUNqQixrRUFBbUJBLENBQUMsR0FBRyxJQUFJO1lBQzVCLE1BQW9CLEdBQUc7UUF4Qm5CLElBQUksQ0FBQ2EsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNLLEdBQUcsR0FBR0wsV0FBV00sTUFBTSxDQUFDQyxZQUFZLENBQUM7UUFDMUMsSUFBSSxDQUFDQyxPQUFPLEdBQUdQLFFBQVFPLE9BQU8sSUFBSWQ7UUFDbEMsSUFBSSxDQUFDUSxJQUFJLEdBQUcsRUFBRTtRQUNkLEtBQUssTUFBTU8sYUFBYVIsUUFBUUMsSUFBSSxDQUFFO1lBQ2xDLElBQUksQ0FBQ2Isb0RBQUdBLENBQUNxQixPQUFPLENBQUNELFlBQVk7Z0JBQ3pCLElBQUksQ0FBQ0osR0FBRyxDQUFDTSxLQUFLLENBQUM7Z0JBQ2Y7WUFDSjtZQUNBLE1BQU1DLEtBQUt0QixrRUFBU0EsQ0FBQ21CO1lBQ3JCLE1BQU1JLFlBQVlELEdBQUdFLFNBQVM7WUFDOUIsSUFBSUQsYUFBYSxNQUFNO2dCQUNuQixJQUFJLENBQUNSLEdBQUcsQ0FBQ00sS0FBSyxDQUFDO2dCQUNmO1lBQ0o7WUFDQSxNQUFNSSxXQUFXO2dCQUNiQyxJQUFJNUIsaUVBQWdCQSxDQUFDeUI7Z0JBQ3JCSSxZQUFZO29CQUFDTDtpQkFBRztZQUNwQjtZQUNBLElBQUksQ0FBQ1YsSUFBSSxDQUFDZ0IsSUFBSSxDQUFDSDtRQUNuQjtRQUNBLElBQUksQ0FBQ0ksS0FBSyxHQUFHbEI7SUFDakI7SUFHQW1CLFlBQVk7UUFDUixPQUFPQyxRQUFRLElBQUksQ0FBQ0MsS0FBSztJQUM3QjtJQUNBOztLQUVDLEdBQ0RDLFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQ0gsU0FBUyxJQUFJO1lBQ2xCO1FBQ0o7UUFDQSxJQUFJLENBQUNmLEdBQUcsQ0FBQyxvRUFBb0UsSUFBSSxDQUFDRyxPQUFPO1FBQ3pGLElBQUksQ0FBQ2MsS0FBSyxHQUFHRSxXQUFXO1lBQ3BCLEtBQUssSUFBSSxDQUFDQyx1QkFBdUIsR0FDNUJDLEtBQUssQ0FBQ0MsQ0FBQUE7Z0JBQ1AsSUFBSSxDQUFDdEIsR0FBRyxDQUFDTSxLQUFLLENBQUNnQjtZQUNuQjtRQUNKLEdBQUcsSUFBSSxDQUFDbkIsT0FBTztJQUNuQjtJQUNBOztLQUVDLEdBQ0QsTUFBTWlCLDBCQUEwQjtRQUM1QixJQUFJLElBQUksQ0FBQ0gsS0FBSyxJQUFJLE1BQU07WUFDcEI7UUFDSjtRQUNBLEtBQUssTUFBTVAsWUFBWSxJQUFJLENBQUNiLElBQUksQ0FBRTtZQUM5QixNQUFNLElBQUksQ0FBQ0YsVUFBVSxDQUFDNEIsU0FBUyxDQUFDQyxLQUFLLENBQUNkLFNBQVNDLEVBQUUsRUFBRTtnQkFDL0NjLE1BQU07b0JBQ0YsQ0FBQyxJQUFJLENBQUNYLEtBQUssQ0FBQ1ksT0FBTyxJQUFJeEMsMkJBQTJCLEVBQUU7d0JBQ2hEeUMsT0FBTyxJQUFJLENBQUNiLEtBQUssQ0FBQ2MsUUFBUSxJQUFJekM7d0JBQzlCMEMsS0FBSyxJQUFJLENBQUNmLEtBQUssQ0FBQ2dCLE1BQU0sSUFBSTFDO29CQUM5QjtnQkFDSjtZQUNKO1lBQ0EsNkJBQTZCO1lBQzdCLElBQUksSUFBSSxDQUFDNkIsS0FBSyxJQUFJLE1BQU07Z0JBQ3BCO1lBQ0o7WUFDQSxJQUFJLENBQUNjLGlCQUFpQixDQUFDLFFBQVE7Z0JBQUVDLFFBQVF0QjtZQUFTO1FBQ3REO0lBQ0o7SUFDQTs7S0FFQyxHQUNEdUIsT0FBTztRQUNILElBQUksSUFBSSxDQUFDaEIsS0FBSyxJQUFJLE1BQU07WUFDcEJpQixhQUFhLElBQUksQ0FBQ2pCLEtBQUs7UUFDM0I7UUFDQSxJQUFJLENBQUNBLEtBQUssR0FBR2tCO0lBQ2pCO0FBQ0o7QUFDTyxTQUFTQyxVQUFVQyxJQUFJO0lBQzFCLE9BQU8sQ0FBQzFDLGFBQWUsSUFBSUwsVUFBVUssWUFBWTBDO0FBQ3JELEVBQ0EsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9ib290c3RyYXAvZGlzdC9zcmMvaW5kZXguanM/NDE2NCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFRoZSBjb25maWd1cmVkIGJvb3RzdHJhcCBwZWVycyB3aWxsIGJlIGRpc2NvdmVyZWQgYWZ0ZXIgdGhlIGNvbmZpZ3VyZWQgdGltZW91dC4gVGhpcyB3aWxsIGVuc3VyZSB0aGVyZSBhcmUgc29tZSBwZWVycyBpbiB0aGUgcGVlciBzdG9yZSBmb3IgdGhlIG5vZGUgdG8gdXNlIHRvIGRpc2NvdmVyIG90aGVyIHBlZXJzLlxuICpcbiAqIFRoZXkgd2lsbCBiZSB0YWdnZWQgd2l0aCBhIHRhZyB3aXRoIHRoZSBuYW1lIGAnYm9vdHN0cmFwJ2AgdGFnLCB0aGUgdmFsdWUgYDUwYCBhbmQgaXQgd2lsbCBleHBpcmUgYWZ0ZXIgdHdvIG1pbnV0ZXMgd2hpY2ggbWVhbnMgdGhlIG5vZGVzIGNvbm5lY3Rpb25zIG1heSBiZSBjbG9zZWQgaWYgdGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbm5lY3Rpb25zIGlzIHJlYWNoZWQuXG4gKlxuICogQ2xpZW50cyB0aGF0IG5lZWQgY29uc3RhbnQgY29ubmVjdGlvbnMgdG8gYm9vdHN0cmFwIG5vZGVzIChlLmcuIGJyb3dzZXJzKSBjYW4gc2V0IHRoZSBUVEwgdG8gYEluZmluaXR5YC5cbiAqXG4gKiBAZXhhbXBsZSBDb25maWd1cmluZyBhIGxpc3Qgb2YgYm9vdHN0cmFwIG5vZGVzXG4gKlxuICogYGBgVHlwZVNjcmlwdFxuICogaW1wb3J0IHsgY3JlYXRlTGlicDJwIH0gZnJvbSAnbGlicDJwJ1xuICogaW1wb3J0IHsgYm9vdHN0cmFwIH0gZnJvbSAnQGxpYnAycC9ib290c3RyYXAnXG4gKlxuICogY29uc3QgbGlicDJwID0gYXdhaXQgY3JlYXRlTGlicDJwKHtcbiAqICAgcGVlckRpc2NvdmVyeTogW1xuICogICAgIGJvb3RzdHJhcCh7XG4gKiAgICAgICBsaXN0OiBbXG4gKiAgICAgICAgIC8vIGEgbGlzdCBvZiBib290c3RyYXAgcGVlciBtdWx0aWFkZHJzIHRvIGNvbm5lY3QgdG8gb24gbm9kZSBzdGFydHVwXG4gKiAgICAgICAgICcvaXA0LzEwNC4xMzEuMTMxLjgyL3RjcC80MDAxL2lwZnMvUW1hQ3BETUd2VjJCR0hlWUVSVUVuUlFBd2UzTjhTemJVdGZzbXZzcVFMdXZ1SicsXG4gKiAgICAgICAgICcvZG5zYWRkci9ib290c3RyYXAubGlicDJwLmlvL2lwZnMvUW1Obm9vRHU3YmZqUEZvVFpZeE1OTFdVUUp5clZ3dGJaZzVnQk1qVGV6R0FKTicsXG4gKiAgICAgICAgICcvZG5zYWRkci9ib290c3RyYXAubGlicDJwLmlvL2lwZnMvUW1RQ1UyRWNNcUFxUVBSMmk5YkNoRHRHTkpjaFRicTVUYlhKSjE2dTE5dUxUYSdcbiAqICAgICAgIF1cbiAqICAgICB9KVxuICogICBdXG4gKiB9KVxuICpcbiAqIGxpYnAycC5hZGRFdmVudExpc3RlbmVyKCdwZWVyOmRpc2NvdmVyeScsIChldnQpID0+IHtcbiAqICAgY29uc29sZS5sb2coJ2ZvdW5kIHBlZXI6ICcsIGV2dC5kZXRhaWwudG9TdHJpbmcoKSlcbiAqIH0pXG4gKiBgYGBcbiAqL1xuaW1wb3J0IHsgVHlwZWRFdmVudEVtaXR0ZXIsIHBlZXJEaXNjb3ZlcnlTeW1ib2wgfSBmcm9tICdAbGlicDJwL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBwZWVySWRGcm9tU3RyaW5nIH0gZnJvbSAnQGxpYnAycC9wZWVyLWlkJztcbmltcG9ydCB7IFAyUCB9IGZyb20gJ0BtdWx0aWZvcm1hdHMvbWFmbXQnO1xuaW1wb3J0IHsgbXVsdGlhZGRyIH0gZnJvbSAnQG11bHRpZm9ybWF0cy9tdWx0aWFkZHInO1xuY29uc3QgREVGQVVMVF9CT09UU1RSQVBfVEFHX05BTUUgPSAnYm9vdHN0cmFwJztcbmNvbnN0IERFRkFVTFRfQk9PVFNUUkFQX1RBR19WQUxVRSA9IDUwO1xuY29uc3QgREVGQVVMVF9CT09UU1RSQVBfVEFHX1RUTCA9IDEyMDAwMDtcbmNvbnN0IERFRkFVTFRfQk9PVFNUUkFQX0RJU0NPVkVSWV9USU1FT1VUID0gMTAwMDtcbi8qKlxuICogRW1pdHMgJ3BlZXInIGV2ZW50cyBvbiBhIHJlZ3VsYXIgaW50ZXJ2YWwgZm9yIGVhY2ggcGVlciBpbiB0aGUgcHJvdmlkZWQgbGlzdC5cbiAqL1xuY2xhc3MgQm9vdHN0cmFwIGV4dGVuZHMgVHlwZWRFdmVudEVtaXR0ZXIge1xuICAgIHN0YXRpYyB0YWcgPSAnYm9vdHN0cmFwJztcbiAgICBsb2c7XG4gICAgdGltZXI7XG4gICAgbGlzdDtcbiAgICB0aW1lb3V0O1xuICAgIGNvbXBvbmVudHM7XG4gICAgX2luaXQ7XG4gICAgY29uc3RydWN0b3IoY29tcG9uZW50cywgb3B0aW9ucyA9IHsgbGlzdDogW10gfSkge1xuICAgICAgICBpZiAob3B0aW9ucy5saXN0ID09IG51bGwgfHwgb3B0aW9ucy5saXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdCb290c3RyYXAgcmVxdWlyZXMgYSBsaXN0IG9mIHBlZXIgYWRkcmVzc2VzJyk7XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRzID0gY29tcG9uZW50cztcbiAgICAgICAgdGhpcy5sb2cgPSBjb21wb25lbnRzLmxvZ2dlci5mb3JDb21wb25lbnQoJ2xpYnAycDpib290c3RyYXAnKTtcbiAgICAgICAgdGhpcy50aW1lb3V0ID0gb3B0aW9ucy50aW1lb3V0ID8/IERFRkFVTFRfQk9PVFNUUkFQX0RJU0NPVkVSWV9USU1FT1VUO1xuICAgICAgICB0aGlzLmxpc3QgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2Ygb3B0aW9ucy5saXN0KSB7XG4gICAgICAgICAgICBpZiAoIVAyUC5tYXRjaGVzKGNhbmRpZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZy5lcnJvcignSW52YWxpZCBtdWx0aWFkZHInKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG1hID0gbXVsdGlhZGRyKGNhbmRpZGF0ZSk7XG4gICAgICAgICAgICBjb25zdCBwZWVySWRTdHIgPSBtYS5nZXRQZWVySWQoKTtcbiAgICAgICAgICAgIGlmIChwZWVySWRTdHIgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nLmVycm9yKCdJbnZhbGlkIGJvb3RzdHJhcCBtdWx0aWFkZHIgd2l0aG91dCBwZWVyIGlkJyk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwZWVyRGF0YSA9IHtcbiAgICAgICAgICAgICAgICBpZDogcGVlcklkRnJvbVN0cmluZyhwZWVySWRTdHIpLFxuICAgICAgICAgICAgICAgIG11bHRpYWRkcnM6IFttYV1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLmxpc3QucHVzaChwZWVyRGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faW5pdCA9IG9wdGlvbnM7XG4gICAgfVxuICAgIFtwZWVyRGlzY292ZXJ5U3ltYm9sXSA9IHRoaXM7XG4gICAgW1N5bWJvbC50b1N0cmluZ1RhZ10gPSAnQGxpYnAycC9ib290c3RyYXAnO1xuICAgIGlzU3RhcnRlZCgpIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGhpcy50aW1lcik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFN0YXJ0IGVtaXR0aW5nIGV2ZW50c1xuICAgICAqL1xuICAgIHN0YXJ0KCkge1xuICAgICAgICBpZiAodGhpcy5pc1N0YXJ0ZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9nKCdTdGFydGluZyBib290c3RyYXAgbm9kZSBkaXNjb3ZlcnksIGRpc2NvdmVyaW5nIHBlZXJzIGFmdGVyICVzIG1zJywgdGhpcy50aW1lb3V0KTtcbiAgICAgICAgdGhpcy50aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdm9pZCB0aGlzLl9kaXNjb3ZlckJvb3RzdHJhcFBlZXJzKClcbiAgICAgICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZy5lcnJvcihlcnIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIHRoaXMudGltZW91dCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEVtaXQgZWFjaCBhZGRyZXNzIGluIHRoZSBsaXN0IGFzIGEgUGVlckluZm9cbiAgICAgKi9cbiAgICBhc3luYyBfZGlzY292ZXJCb290c3RyYXBQZWVycygpIHtcbiAgICAgICAgaWYgKHRoaXMudGltZXIgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgcGVlckRhdGEgb2YgdGhpcy5saXN0KSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNvbXBvbmVudHMucGVlclN0b3JlLm1lcmdlKHBlZXJEYXRhLmlkLCB7XG4gICAgICAgICAgICAgICAgdGFnczoge1xuICAgICAgICAgICAgICAgICAgICBbdGhpcy5faW5pdC50YWdOYW1lID8/IERFRkFVTFRfQk9PVFNUUkFQX1RBR19OQU1FXToge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuX2luaXQudGFnVmFsdWUgPz8gREVGQVVMVF9CT09UU1RSQVBfVEFHX1ZBTFVFLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHRsOiB0aGlzLl9pbml0LnRhZ1RUTCA/PyBERUZBVUxUX0JPT1RTVFJBUF9UQUdfVFRMXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIGNoZWNrIHdlIGFyZSBzdGlsbCBydW5uaW5nXG4gICAgICAgICAgICBpZiAodGhpcy50aW1lciA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zYWZlRGlzcGF0Y2hFdmVudCgncGVlcicsIHsgZGV0YWlsOiBwZWVyRGF0YSB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBTdG9wIGVtaXR0aW5nIGV2ZW50c1xuICAgICAqL1xuICAgIHN0b3AoKSB7XG4gICAgICAgIGlmICh0aGlzLnRpbWVyICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRpbWVyID0gdW5kZWZpbmVkO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBib290c3RyYXAoaW5pdCkge1xuICAgIHJldHVybiAoY29tcG9uZW50cykgPT4gbmV3IEJvb3RzdHJhcChjb21wb25lbnRzLCBpbml0KTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6WyJUeXBlZEV2ZW50RW1pdHRlciIsInBlZXJEaXNjb3ZlcnlTeW1ib2wiLCJwZWVySWRGcm9tU3RyaW5nIiwiUDJQIiwibXVsdGlhZGRyIiwiREVGQVVMVF9CT09UU1RSQVBfVEFHX05BTUUiLCJERUZBVUxUX0JPT1RTVFJBUF9UQUdfVkFMVUUiLCJERUZBVUxUX0JPT1RTVFJBUF9UQUdfVFRMIiwiREVGQVVMVF9CT09UU1RSQVBfRElTQ09WRVJZX1RJTUVPVVQiLCJCb290c3RyYXAiLCJTeW1ib2wiLCJ0b1N0cmluZ1RhZyIsInRhZyIsImNvbnN0cnVjdG9yIiwiY29tcG9uZW50cyIsIm9wdGlvbnMiLCJsaXN0IiwibGVuZ3RoIiwiRXJyb3IiLCJsb2ciLCJsb2dnZXIiLCJmb3JDb21wb25lbnQiLCJ0aW1lb3V0IiwiY2FuZGlkYXRlIiwibWF0Y2hlcyIsImVycm9yIiwibWEiLCJwZWVySWRTdHIiLCJnZXRQZWVySWQiLCJwZWVyRGF0YSIsImlkIiwibXVsdGlhZGRycyIsInB1c2giLCJfaW5pdCIsImlzU3RhcnRlZCIsIkJvb2xlYW4iLCJ0aW1lciIsInN0YXJ0Iiwic2V0VGltZW91dCIsIl9kaXNjb3ZlckJvb3RzdHJhcFBlZXJzIiwiY2F0Y2giLCJlcnIiLCJwZWVyU3RvcmUiLCJtZXJnZSIsInRhZ3MiLCJ0YWdOYW1lIiwidmFsdWUiLCJ0YWdWYWx1ZSIsInR0bCIsInRhZ1RUTCIsInNhZmVEaXNwYXRjaEV2ZW50IiwiZGV0YWlsIiwic3RvcCIsImNsZWFyVGltZW91dCIsInVuZGVmaW5lZCIsImJvb3RzdHJhcCIsImluaXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/bootstrap/dist/src/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/crypto/dist/src/ciphers/aes-gcm.js":
/*!*****************************************************************!*\
!*** ./node_modules/@libp2p/crypto/dist/src/ciphers/aes-gcm.js ***!
\*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ create: () => (/* binding */ create)\n/* harmony export */ });\n/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! crypto */ \"crypto\");\n/* harmony import */ var uint8arrays_concat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uint8arrays/concat */ \"(ssr)/./node_modules/uint8arrays/dist/src/concat.node.js\");\n/* harmony import */ var uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uint8arrays/from-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/from-string.node.js\");\n\n\n\n// Based off of code from https://github.com/luke-park/SecureCompatibleEncryptionExamples\nfunction create(opts) {\n const algorithm = opts?.algorithm ?? \"aes-128-gcm\";\n const keyLength = opts?.keyLength ?? 16;\n const nonceLength = opts?.nonceLength ?? 12;\n const digest = opts?.digest ?? \"sha256\";\n const saltLength = opts?.saltLength ?? 16;\n const iterations = opts?.iterations ?? 32767;\n const algorithmTagLength = opts?.algorithmTagLength ?? 16;\n function encryptWithKey(data, key) {\n const nonce = crypto__WEBPACK_IMPORTED_MODULE_0__.randomBytes(nonceLength);\n // Create the cipher instance.\n const cipher = crypto__WEBPACK_IMPORTED_MODULE_0__.createCipheriv(algorithm, key, nonce);\n // Encrypt and prepend nonce.\n const ciphertext = (0,uint8arrays_concat__WEBPACK_IMPORTED_MODULE_1__.concat)([\n cipher.update(data),\n cipher.final()\n ]);\n // @ts-expect-error getAuthTag is not a function\n return (0,uint8arrays_concat__WEBPACK_IMPORTED_MODULE_1__.concat)([\n nonce,\n ciphertext,\n cipher.getAuthTag()\n ]);\n }\n /**\n * Uses the provided password to derive a pbkdf2 key. The key\n * will then be used to encrypt the data.\n */ async function encrypt(data, password) {\n // Generate a 128-bit salt using a CSPRNG.\n const salt = crypto__WEBPACK_IMPORTED_MODULE_0__.randomBytes(saltLength);\n if (typeof password === \"string\") {\n password = (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_2__.fromString)(password);\n }\n // Derive a key using PBKDF2.\n const key = crypto__WEBPACK_IMPORTED_MODULE_0__.pbkdf2Sync(password, salt, iterations, keyLength, digest);\n // Encrypt and prepend salt.\n return (0,uint8arrays_concat__WEBPACK_IMPORTED_MODULE_1__.concat)([\n salt,\n encryptWithKey(Uint8Array.from(data), key)\n ]);\n }\n /**\n * Decrypts the given cipher text with the provided key. The `key` should\n * be a cryptographically safe key and not a plaintext password. To use\n * a plaintext password, use `decrypt`. The options used to create\n * this decryption cipher must be the same as those used to create\n * the encryption cipher.\n */ function decryptWithKey(ciphertextAndNonce, key) {\n // Create Uint8Arrays of nonce, ciphertext and tag.\n const nonce = ciphertextAndNonce.subarray(0, nonceLength);\n const ciphertext = ciphertextAndNonce.subarray(nonceLength, ciphertextAndNonce.length - algorithmTagLength);\n const tag = ciphertextAndNonce.subarray(ciphertext.length + nonceLength);\n // Create the cipher instance.\n const cipher = crypto__WEBPACK_IMPORTED_MODULE_0__.createDecipheriv(algorithm, key, nonce);\n // Decrypt and return result.\n // @ts-expect-error getAuthTag is not a function\n cipher.setAuthTag(tag);\n return (0,uint8arrays_concat__WEBPACK_IMPORTED_MODULE_1__.concat)([\n cipher.update(ciphertext),\n cipher.final()\n ]);\n }\n /**\n * Uses the provided password to derive a pbkdf2 key. The key\n * will then be used to decrypt the data. The options used to create\n * this decryption cipher must be the same as those used to create\n * the encryption cipher.\n *\n * @param {Uint8Array} data - The data to decrypt\n * @param {string|Uint8Array} password - A plain password\n */ async function decrypt(data, password) {\n // Create Uint8Arrays of salt and ciphertextAndNonce.\n const salt = data.subarray(0, saltLength);\n const ciphertextAndNonce = data.subarray(saltLength);\n if (typeof password === \"string\") {\n password = (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_2__.fromString)(password);\n }\n // Derive the key using PBKDF2.\n const key = crypto__WEBPACK_IMPORTED_MODULE_0__.pbkdf2Sync(password, salt, iterations, keyLength, digest);\n // Decrypt and return result.\n return decryptWithKey(ciphertextAndNonce, key);\n }\n const cipher = {\n encrypt,\n decrypt\n };\n return cipher;\n} //# sourceMappingURL=aes-gcm.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMvY2lwaGVycy9hZXMtZ2NtLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBNEI7QUFDb0M7QUFDYTtBQUM3RSx5RkFBeUY7QUFDbEYsU0FBU0ssT0FBT0MsSUFBSTtJQUN2QixNQUFNQyxZQUFZRCxNQUFNQyxhQUFhO0lBQ3JDLE1BQU1DLFlBQVlGLE1BQU1FLGFBQWE7SUFDckMsTUFBTUMsY0FBY0gsTUFBTUcsZUFBZTtJQUN6QyxNQUFNQyxTQUFTSixNQUFNSSxVQUFVO0lBQy9CLE1BQU1DLGFBQWFMLE1BQU1LLGNBQWM7SUFDdkMsTUFBTUMsYUFBYU4sTUFBTU0sY0FBYztJQUN2QyxNQUFNQyxxQkFBcUJQLE1BQU1PLHNCQUFzQjtJQUN2RCxTQUFTQyxlQUFlQyxJQUFJLEVBQUVDLEdBQUc7UUFDN0IsTUFBTUMsUUFBUWpCLCtDQUFrQixDQUFDUztRQUNqQyw4QkFBOEI7UUFDOUIsTUFBTVUsU0FBU25CLGtEQUFxQixDQUFDTyxXQUFXUyxLQUFLQztRQUNyRCw2QkFBNkI7UUFDN0IsTUFBTUksYUFBYW5CLDBEQUFnQkEsQ0FBQztZQUFDaUIsT0FBT0csTUFBTSxDQUFDUDtZQUFPSSxPQUFPSSxLQUFLO1NBQUc7UUFDekUsZ0RBQWdEO1FBQ2hELE9BQU9yQiwwREFBZ0JBLENBQUM7WUFBQ2U7WUFBT0k7WUFBWUYsT0FBT0ssVUFBVTtTQUFHO0lBQ3BFO0lBQ0E7OztLQUdDLEdBQ0QsZUFBZUMsUUFBUVYsSUFBSSxFQUFFVyxRQUFRO1FBQ2pDLDBDQUEwQztRQUMxQyxNQUFNQyxPQUFPM0IsK0NBQWtCLENBQUNXO1FBQ2hDLElBQUksT0FBT2UsYUFBYSxVQUFVO1lBQzlCQSxXQUFXdEIsbUVBQW9CQSxDQUFDc0I7UUFDcEM7UUFDQSw2QkFBNkI7UUFDN0IsTUFBTVYsTUFBTWhCLDhDQUFpQixDQUFDMEIsVUFBVUMsTUFBTWYsWUFBWUosV0FBV0U7UUFDckUsNEJBQTRCO1FBQzVCLE9BQU9SLDBEQUFnQkEsQ0FBQztZQUFDeUI7WUFBTWIsZUFBZWUsV0FBV0MsSUFBSSxDQUFDZixPQUFPQztTQUFLO0lBQzlFO0lBQ0E7Ozs7OztLQU1DLEdBQ0QsU0FBU2UsZUFBZUMsa0JBQWtCLEVBQUVoQixHQUFHO1FBQzNDLG1EQUFtRDtRQUNuRCxNQUFNQyxRQUFRZSxtQkFBbUJDLFFBQVEsQ0FBQyxHQUFHeEI7UUFDN0MsTUFBTVksYUFBYVcsbUJBQW1CQyxRQUFRLENBQUN4QixhQUFhdUIsbUJBQW1CRSxNQUFNLEdBQUdyQjtRQUN4RixNQUFNc0IsTUFBTUgsbUJBQW1CQyxRQUFRLENBQUNaLFdBQVdhLE1BQU0sR0FBR3pCO1FBQzVELDhCQUE4QjtRQUM5QixNQUFNVSxTQUFTbkIsb0RBQXVCLENBQUNPLFdBQVdTLEtBQUtDO1FBQ3ZELDZCQUE2QjtRQUM3QixnREFBZ0Q7UUFDaERFLE9BQU9rQixVQUFVLENBQUNGO1FBQ2xCLE9BQU9qQywwREFBZ0JBLENBQUM7WUFBQ2lCLE9BQU9HLE1BQU0sQ0FBQ0Q7WUFBYUYsT0FBT0ksS0FBSztTQUFHO0lBQ3ZFO0lBQ0E7Ozs7Ozs7O0tBUUMsR0FDRCxlQUFlZSxRQUFRdkIsSUFBSSxFQUFFVyxRQUFRO1FBQ2pDLHFEQUFxRDtRQUNyRCxNQUFNQyxPQUFPWixLQUFLa0IsUUFBUSxDQUFDLEdBQUd0QjtRQUM5QixNQUFNcUIscUJBQXFCakIsS0FBS2tCLFFBQVEsQ0FBQ3RCO1FBQ3pDLElBQUksT0FBT2UsYUFBYSxVQUFVO1lBQzlCQSxXQUFXdEIsbUVBQW9CQSxDQUFDc0I7UUFDcEM7UUFDQSwrQkFBK0I7UUFDL0IsTUFBTVYsTUFBTWhCLDhDQUFpQixDQUFDMEIsVUFBVUMsTUFBTWYsWUFBWUosV0FBV0U7UUFDckUsNkJBQTZCO1FBQzdCLE9BQU9xQixlQUFlQyxvQkFBb0JoQjtJQUM5QztJQUNBLE1BQU1HLFNBQVM7UUFDWE07UUFDQWE7SUFDSjtJQUNBLE9BQU9uQjtBQUNYLEVBQ0EsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMvY2lwaGVycy9hZXMtZ2NtLmpzP2QyOTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyeXB0byBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgY29uY2F0IGFzIHVpbnQ4QXJyYXlDb25jYXQgfSBmcm9tICd1aW50OGFycmF5cy9jb25jYXQnO1xuaW1wb3J0IHsgZnJvbVN0cmluZyBhcyB1aW50OEFycmF5RnJvbVN0cmluZyB9IGZyb20gJ3VpbnQ4YXJyYXlzL2Zyb20tc3RyaW5nJztcbi8vIEJhc2VkIG9mZiBvZiBjb2RlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2x1a2UtcGFyay9TZWN1cmVDb21wYXRpYmxlRW5jcnlwdGlvbkV4YW1wbGVzXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKG9wdHMpIHtcbiAgICBjb25zdCBhbGdvcml0aG0gPSBvcHRzPy5hbGdvcml0aG0gPz8gJ2Flcy0xMjgtZ2NtJztcbiAgICBjb25zdCBrZXlMZW5ndGggPSBvcHRzPy5rZXlMZW5ndGggPz8gMTY7XG4gICAgY29uc3Qgbm9uY2VMZW5ndGggPSBvcHRzPy5ub25jZUxlbmd0aCA/PyAxMjtcbiAgICBjb25zdCBkaWdlc3QgPSBvcHRzPy5kaWdlc3QgPz8gJ3NoYTI1Nic7XG4gICAgY29uc3Qgc2FsdExlbmd0aCA9IG9wdHM/LnNhbHRMZW5ndGggPz8gMTY7XG4gICAgY29uc3QgaXRlcmF0aW9ucyA9IG9wdHM/Lml0ZXJhdGlvbnMgPz8gMzI3Njc7XG4gICAgY29uc3QgYWxnb3JpdGhtVGFnTGVuZ3RoID0gb3B0cz8uYWxnb3JpdGhtVGFnTGVuZ3RoID8/IDE2O1xuICAgIGZ1bmN0aW9uIGVuY3J5cHRXaXRoS2V5KGRhdGEsIGtleSkge1xuICAgICAgICBjb25zdCBub25jZSA9IGNyeXB0by5yYW5kb21CeXRlcyhub25jZUxlbmd0aCk7XG4gICAgICAgIC8vIENyZWF0ZSB0aGUgY2lwaGVyIGluc3RhbmNlLlxuICAgICAgICBjb25zdCBjaXBoZXIgPSBjcnlwdG8uY3JlYXRlQ2lwaGVyaXYoYWxnb3JpdGhtLCBrZXksIG5vbmNlKTtcbiAgICAgICAgLy8gRW5jcnlwdCBhbmQgcHJlcGVuZCBub25jZS5cbiAgICAgICAgY29uc3QgY2lwaGVydGV4dCA9IHVpbnQ4QXJyYXlDb25jYXQoW2NpcGhlci51cGRhdGUoZGF0YSksIGNpcGhlci5maW5hbCgpXSk7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgZ2V0QXV0aFRhZyBpcyBub3QgYSBmdW5jdGlvblxuICAgICAgICByZXR1cm4gdWludDhBcnJheUNvbmNhdChbbm9uY2UsIGNpcGhlcnRleHQsIGNpcGhlci5nZXRBdXRoVGFnKCldKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVXNlcyB0aGUgcHJvdmlkZWQgcGFzc3dvcmQgdG8gZGVyaXZlIGEgcGJrZGYyIGtleS4gVGhlIGtleVxuICAgICAqIHdpbGwgdGhlbiBiZSB1c2VkIHRvIGVuY3J5cHQgdGhlIGRhdGEuXG4gICAgICovXG4gICAgYXN5bmMgZnVuY3Rpb24gZW5jcnlwdChkYXRhLCBwYXNzd29yZCkge1xuICAgICAgICAvLyBHZW5lcmF0ZSBhIDEyOC1iaXQgc2FsdCB1c2luZyBhIENTUFJORy5cbiAgICAgICAgY29uc3Qgc2FsdCA9IGNyeXB0by5yYW5kb21CeXRlcyhzYWx0TGVuZ3RoKTtcbiAgICAgICAgaWYgKHR5cGVvZiBwYXNzd29yZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHBhc3N3b3JkID0gdWludDhBcnJheUZyb21TdHJpbmcocGFzc3dvcmQpO1xuICAgICAgICB9XG4gICAgICAgIC8vIERlcml2ZSBhIGtleSB1c2luZyBQQktERjIuXG4gICAgICAgIGNvbnN0IGtleSA9IGNyeXB0by5wYmtkZjJTeW5jKHBhc3N3b3JkLCBzYWx0LCBpdGVyYXRpb25zLCBrZXlMZW5ndGgsIGRpZ2VzdCk7XG4gICAgICAgIC8vIEVuY3J5cHQgYW5kIHByZXBlbmQgc2FsdC5cbiAgICAgICAgcmV0dXJuIHVpbnQ4QXJyYXlDb25jYXQoW3NhbHQsIGVuY3J5cHRXaXRoS2V5KFVpbnQ4QXJyYXkuZnJvbShkYXRhKSwga2V5KV0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZWNyeXB0cyB0aGUgZ2l2ZW4gY2lwaGVyIHRleHQgd2l0aCB0aGUgcHJvdmlkZWQga2V5LiBUaGUgYGtleWAgc2hvdWxkXG4gICAgICogYmUgYSBjcnlwdG9ncmFwaGljYWxseSBzYWZlIGtleSBhbmQgbm90IGEgcGxhaW50ZXh0IHBhc3N3b3JkLiBUbyB1c2VcbiAgICAgKiBhIHBsYWludGV4dCBwYXNzd29yZCwgdXNlIGBkZWNyeXB0YC4gVGhlIG9wdGlvbnMgdXNlZCB0byBjcmVhdGVcbiAgICAgKiB0aGlzIGRlY3J5cHRpb24gY2lwaGVyIG11c3QgYmUgdGhlIHNhbWUgYXMgdGhvc2UgdXNlZCB0byBjcmVhdGVcbiAgICAgKiB0aGUgZW5jcnlwdGlvbiBjaXBoZXIuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZGVjcnlwdFdpdGhLZXkoY2lwaGVydGV4dEFuZE5vbmNlLCBrZXkpIHtcbiAgICAgICAgLy8gQ3JlYXRlIFVpbnQ4QXJyYXlzIG9mIG5vbmNlLCBjaXBoZXJ0ZXh0IGFuZCB0YWcuXG4gICAgICAgIGNvbnN0IG5vbmNlID0gY2lwaGVydGV4dEFuZE5vbmNlLnN1YmFycmF5KDAsIG5vbmNlTGVuZ3RoKTtcbiAgICAgICAgY29uc3QgY2lwaGVydGV4dCA9IGNpcGhlcnRleHRBbmROb25jZS5zdWJhcnJheShub25jZUxlbmd0aCwgY2lwaGVydGV4dEFuZE5vbmNlLmxlbmd0aCAtIGFsZ29yaXRobVRhZ0xlbmd0aCk7XG4gICAgICAgIGNvbnN0IHRhZyA9IGNpcGhlcnRleHRBbmROb25jZS5zdWJhcnJheShjaXBoZXJ0ZXh0Lmxlbmd0aCArIG5vbmNlTGVuZ3RoKTtcbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBjaXBoZXIgaW5zdGFuY2UuXG4gICAgICAgIGNvbnN0IGNpcGhlciA9IGNyeXB0by5jcmVhdGVEZWNpcGhlcml2KGFsZ29yaXRobSwga2V5LCBub25jZSk7XG4gICAgICAgIC8vIERlY3J5cHQgYW5kIHJldHVybiByZXN1bHQuXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgZ2V0QXV0aFRhZyBpcyBub3QgYSBmdW5jdGlvblxuICAgICAgICBjaXBoZXIuc2V0QXV0aFRhZyh0YWcpO1xuICAgICAgICByZXR1cm4gdWludDhBcnJheUNvbmNhdChbY2lwaGVyLnVwZGF0ZShjaXBoZXJ0ZXh0KSwgY2lwaGVyLmZpbmFsKCldKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVXNlcyB0aGUgcHJvdmlkZWQgcGFzc3dvcmQgdG8gZGVyaXZlIGEgcGJrZGYyIGtleS4gVGhlIGtleVxuICAgICAqIHdpbGwgdGhlbiBiZSB1c2VkIHRvIGRlY3J5cHQgdGhlIGRhdGEuIFRoZSBvcHRpb25zIHVzZWQgdG8gY3JlYXRlXG4gICAgICogdGhpcyBkZWNyeXB0aW9uIGNpcGhlciBtdXN0IGJlIHRoZSBzYW1lIGFzIHRob3NlIHVzZWQgdG8gY3JlYXRlXG4gICAgICogdGhlIGVuY3J5cHRpb24gY2lwaGVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtVaW50OEFycmF5fSBkYXRhIC0gVGhlIGRhdGEgdG8gZGVjcnlwdFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfFVpbnQ4QXJyYXl9IHBhc3N3b3JkIC0gQSBwbGFpbiBwYXNzd29yZFxuICAgICAqL1xuICAgIGFzeW5jIGZ1bmN0aW9uIGRlY3J5cHQoZGF0YSwgcGFzc3dvcmQpIHtcbiAgICAgICAgLy8gQ3JlYXRlIFVpbnQ4QXJyYXlzIG9mIHNhbHQgYW5kIGNpcGhlcnRleHRBbmROb25jZS5cbiAgICAgICAgY29uc3Qgc2FsdCA9IGRhdGEuc3ViYXJyYXkoMCwgc2FsdExlbmd0aCk7XG4gICAgICAgIGNvbnN0IGNpcGhlcnRleHRBbmROb25jZSA9IGRhdGEuc3ViYXJyYXkoc2FsdExlbmd0aCk7XG4gICAgICAgIGlmICh0eXBlb2YgcGFzc3dvcmQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBwYXNzd29yZCA9IHVpbnQ4QXJyYXlGcm9tU3RyaW5nKHBhc3N3b3JkKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBEZXJpdmUgdGhlIGtleSB1c2luZyBQQktERjIuXG4gICAgICAgIGNvbnN0IGtleSA9IGNyeXB0by5wYmtkZjJTeW5jKHBhc3N3b3JkLCBzYWx0LCBpdGVyYXRpb25zLCBrZXlMZW5ndGgsIGRpZ2VzdCk7XG4gICAgICAgIC8vIERlY3J5cHQgYW5kIHJldHVybiByZXN1bHQuXG4gICAgICAgIHJldHVybiBkZWNyeXB0V2l0aEtleShjaXBoZXJ0ZXh0QW5kTm9uY2UsIGtleSk7XG4gICAgfVxuICAgIGNvbnN0IGNpcGhlciA9IHtcbiAgICAgICAgZW5jcnlwdCxcbiAgICAgICAgZGVjcnlwdFxuICAgIH07XG4gICAgcmV0dXJuIGNpcGhlcjtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFlcy1nY20uanMubWFwIl0sIm5hbWVzIjpbImNyeXB0byIsImNvbmNhdCIsInVpbnQ4QXJyYXlDb25jYXQiLCJmcm9tU3RyaW5nIiwidWludDhBcnJheUZyb21TdHJpbmciLCJjcmVhdGUiLCJvcHRzIiwiYWxnb3JpdGhtIiwia2V5TGVuZ3RoIiwibm9uY2VMZW5ndGgiLCJkaWdlc3QiLCJzYWx0TGVuZ3RoIiwiaXRlcmF0aW9ucyIsImFsZ29yaXRobVRhZ0xlbmd0aCIsImVuY3J5cHRXaXRoS2V5IiwiZGF0YSIsImtleSIsIm5vbmNlIiwicmFuZG9tQnl0ZXMiLCJjaXBoZXIiLCJjcmVhdGVDaXBoZXJpdiIsImNpcGhlcnRleHQiLCJ1cGRhdGUiLCJmaW5hbCIsImdldEF1dGhUYWciLCJlbmNyeXB0IiwicGFzc3dvcmQiLCJzYWx0IiwicGJrZGYyU3luYyIsIlVpbnQ4QXJyYXkiLCJmcm9tIiwiZGVjcnlwdFdpdGhLZXkiLCJjaXBoZXJ0ZXh0QW5kTm9uY2UiLCJzdWJhcnJheSIsImxlbmd0aCIsInRhZyIsImNyZWF0ZURlY2lwaGVyaXYiLCJzZXRBdXRoVGFnIiwiZGVjcnlwdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/crypto/dist/src/ciphers/aes-gcm.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/crypto/dist/src/hmac/index.js":
/*!************************************************************!*\
!*** ./node_modules/@libp2p/crypto/dist/src/hmac/index.js ***!
\************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ create: () => (/* binding */ create)\n/* harmony export */ });\n/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! crypto */ \"crypto\");\n/* harmony import */ var _lengths_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lengths.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/hmac/lengths.js\");\n/**\n * @packageDocumentation\n *\n * Exposes an interface to the Keyed-Hash Message Authentication Code (HMAC) as defined in U.S. Federal Information Processing Standards Publication 198. An HMAC is a cryptographic hash that uses a key to sign a message. The receiver verifies the hash by recomputing it using the same key.\n *\n * @example\n *\n * ```TypeScript\n * import { create } from '@libp2p/hmac'\n *\n * const hash = 'SHA1' // 'SHA256' || 'SHA512'\n * const hmac = await crypto.hmac.create(hash, uint8ArrayFromString('secret'))\n * const sig = await hmac.digest(uint8ArrayFromString('hello world'))\n * console.log(sig)\n * ```\n */ \n\nasync function create(hash, secret) {\n const res = {\n async digest (data) {\n const hmac = crypto__WEBPACK_IMPORTED_MODULE_0__.createHmac(hash.toLowerCase(), secret);\n hmac.update(data);\n return hmac.digest();\n },\n length: _lengths_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"][hash]\n };\n return res;\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMvaG1hYy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0NBZUMsR0FDMkI7QUFDTztBQUM1QixlQUFlRSxPQUFPQyxJQUFJLEVBQUVDLE1BQU07SUFDckMsTUFBTUMsTUFBTTtRQUNSLE1BQU1DLFFBQU9DLElBQUk7WUFDYixNQUFNQyxPQUFPUiw4Q0FBaUIsQ0FBQ0csS0FBS08sV0FBVyxJQUFJTjtZQUNuREksS0FBS0csTUFBTSxDQUFDSjtZQUNaLE9BQU9DLEtBQUtGLE1BQU07UUFDdEI7UUFDQU0sUUFBUVgsbURBQU8sQ0FBQ0UsS0FBSztJQUN6QjtJQUNBLE9BQU9FO0FBQ1gsRUFDQSxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL2NyeXB0by9kaXN0L3NyYy9obWFjL2luZGV4LmpzP2Y5ZmYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBFeHBvc2VzIGFuIGludGVyZmFjZSB0byB0aGUgS2V5ZWQtSGFzaCBNZXNzYWdlIEF1dGhlbnRpY2F0aW9uIENvZGUgKEhNQUMpIGFzIGRlZmluZWQgaW4gVS5TLiBGZWRlcmFsIEluZm9ybWF0aW9uIFByb2Nlc3NpbmcgU3RhbmRhcmRzIFB1YmxpY2F0aW9uIDE5OC4gQW4gSE1BQyBpcyBhIGNyeXB0b2dyYXBoaWMgaGFzaCB0aGF0IHVzZXMgYSBrZXkgdG8gc2lnbiBhIG1lc3NhZ2UuIFRoZSByZWNlaXZlciB2ZXJpZmllcyB0aGUgaGFzaCBieSByZWNvbXB1dGluZyBpdCB1c2luZyB0aGUgc2FtZSBrZXkuXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBUeXBlU2NyaXB0XG4gKiBpbXBvcnQgeyBjcmVhdGUgfSBmcm9tICdAbGlicDJwL2htYWMnXG4gKlxuICogY29uc3QgaGFzaCA9ICdTSEExJyAvLyAnU0hBMjU2JyB8fCAnU0hBNTEyJ1xuICogY29uc3QgaG1hYyA9IGF3YWl0IGNyeXB0by5obWFjLmNyZWF0ZShoYXNoLCB1aW50OEFycmF5RnJvbVN0cmluZygnc2VjcmV0JykpXG4gKiBjb25zdCBzaWcgPSBhd2FpdCBobWFjLmRpZ2VzdCh1aW50OEFycmF5RnJvbVN0cmluZygnaGVsbG8gd29ybGQnKSlcbiAqIGNvbnNvbGUubG9nKHNpZylcbiAqIGBgYFxuICovXG5pbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgbGVuZ3RocyBmcm9tICcuL2xlbmd0aHMuanMnO1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZShoYXNoLCBzZWNyZXQpIHtcbiAgICBjb25zdCByZXMgPSB7XG4gICAgICAgIGFzeW5jIGRpZ2VzdChkYXRhKSB7XG4gICAgICAgICAgICBjb25zdCBobWFjID0gY3J5cHRvLmNyZWF0ZUhtYWMoaGFzaC50b0xvd2VyQ2FzZSgpLCBzZWNyZXQpO1xuICAgICAgICAgICAgaG1hYy51cGRhdGUoZGF0YSk7XG4gICAgICAgICAgICByZXR1cm4gaG1hYy5kaWdlc3QoKTtcbiAgICAgICAgfSxcbiAgICAgICAgbGVuZ3RoOiBsZW5ndGhzW2hhc2hdXG4gICAgfTtcbiAgICByZXR1cm4gcmVzO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbImNyeXB0byIsImxlbmd0aHMiLCJjcmVhdGUiLCJoYXNoIiwic2VjcmV0IiwicmVzIiwiZGlnZXN0IiwiZGF0YSIsImhtYWMiLCJjcmVhdGVIbWFjIiwidG9Mb3dlckNhc2UiLCJ1cGRhdGUiLCJsZW5ndGgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/crypto/dist/src/hmac/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/crypto/dist/src/hmac/lengths.js":
/*!**************************************************************!*\
!*** ./node_modules/@libp2p/crypto/dist/src/hmac/lengths.js ***!
\**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n SHA1: 20,\n SHA256: 32,\n SHA512: 64\n}); //# sourceMappingURL=lengths.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMvaG1hYy9sZW5ndGhzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZTtJQUNYQSxNQUFNO0lBQ05DLFFBQVE7SUFDUkMsUUFBUTtBQUNaLENBQUMsRUFBQyxDQUNGLG1DQUFtQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvY3J5cHRvL2Rpc3Qvc3JjL2htYWMvbGVuZ3Rocy5qcz83NzQ5Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcbiAgICBTSEExOiAyMCxcbiAgICBTSEEyNTY6IDMyLFxuICAgIFNIQTUxMjogNjRcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1sZW5ndGhzLmpzLm1hcCJdLCJuYW1lcyI6WyJTSEExIiwiU0hBMjU2IiwiU0hBNTEyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/crypto/dist/src/hmac/lengths.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/ecdh.js":
/*!***********************************************************!*\
!*** ./node_modules/@libp2p/crypto/dist/src/keys/ecdh.js ***!
\***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ generateEphmeralKeyPair: () => (/* binding */ generateEphmeralKeyPair)\n/* harmony export */ });\n/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! crypto */ \"crypto\");\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n\n\nconst curves = {\n \"P-256\": \"prime256v1\",\n \"P-384\": \"secp384r1\",\n \"P-521\": \"secp521r1\"\n};\nconst curveTypes = Object.keys(curves);\nconst names = curveTypes.join(\" / \");\n/**\n * Generates an ephemeral public key and returns a function that will compute the shared secret key.\n *\n * Focuses only on ECDH now, but can be made more general in the future.\n */ async function generateEphmeralKeyPair(curve) {\n if (curve !== \"P-256\" && curve !== \"P-384\" && curve !== \"P-521\") {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__.CodeError(`Unknown curve: ${curve}. Must be ${names}`, \"ERR_INVALID_CURVE\");\n }\n const ecdh = crypto__WEBPACK_IMPORTED_MODULE_0__.createECDH(curves[curve]);\n ecdh.generateKeys();\n return {\n key: ecdh.getPublicKey(),\n async genSharedKey (theirPub, forcePrivate) {\n if (forcePrivate != null) {\n ecdh.setPrivateKey(forcePrivate.private);\n }\n return ecdh.computeSecret(theirPub);\n }\n };\n} //# sourceMappingURL=ecdh.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMva2V5cy9lY2RoLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE0QjtBQUNrQjtBQUM5QyxNQUFNRSxTQUFTO0lBQ1gsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0FBQ2I7QUFDQSxNQUFNQyxhQUFhQyxPQUFPQyxJQUFJLENBQUNIO0FBQy9CLE1BQU1JLFFBQVFILFdBQVdJLElBQUksQ0FBQztBQUM5Qjs7OztDQUlDLEdBQ00sZUFBZUMsd0JBQXdCQyxLQUFLO0lBQy9DLElBQUlBLFVBQVUsV0FBV0EsVUFBVSxXQUFXQSxVQUFVLFNBQVM7UUFDN0QsTUFBTSxJQUFJUix3REFBU0EsQ0FBQyxDQUFDLGVBQWUsRUFBRVEsTUFBTSxVQUFVLEVBQUVILE1BQU0sQ0FBQyxFQUFFO0lBQ3JFO0lBQ0EsTUFBTUksT0FBT1YsOENBQWlCLENBQUNFLE1BQU0sQ0FBQ08sTUFBTTtJQUM1Q0MsS0FBS0UsWUFBWTtJQUNqQixPQUFPO1FBQ0hDLEtBQUtILEtBQUtJLFlBQVk7UUFDdEIsTUFBTUMsY0FBYUMsUUFBUSxFQUFFQyxZQUFZO1lBQ3JDLElBQUlBLGdCQUFnQixNQUFNO2dCQUN0QlAsS0FBS1EsYUFBYSxDQUFDRCxhQUFhRSxPQUFPO1lBQzNDO1lBQ0EsT0FBT1QsS0FBS1UsYUFBYSxDQUFDSjtRQUM5QjtJQUNKO0FBQ0osRUFDQSxnQ0FBZ0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL2NyeXB0by9kaXN0L3NyYy9rZXlzL2VjZGguanM/OGQyNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBDb2RlRXJyb3IgfSBmcm9tICdAbGlicDJwL2ludGVyZmFjZSc7XG5jb25zdCBjdXJ2ZXMgPSB7XG4gICAgJ1AtMjU2JzogJ3ByaW1lMjU2djEnLFxuICAgICdQLTM4NCc6ICdzZWNwMzg0cjEnLFxuICAgICdQLTUyMSc6ICdzZWNwNTIxcjEnXG59O1xuY29uc3QgY3VydmVUeXBlcyA9IE9iamVjdC5rZXlzKGN1cnZlcyk7XG5jb25zdCBuYW1lcyA9IGN1cnZlVHlwZXMuam9pbignIC8gJyk7XG4vKipcbiAqIEdlbmVyYXRlcyBhbiBlcGhlbWVyYWwgcHVibGljIGtleSBhbmQgcmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBjb21wdXRlIHRoZSBzaGFyZWQgc2VjcmV0IGtleS5cbiAqXG4gKiBGb2N1c2VzIG9ubHkgb24gRUNESCBub3csIGJ1dCBjYW4gYmUgbWFkZSBtb3JlIGdlbmVyYWwgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlRXBobWVyYWxLZXlQYWlyKGN1cnZlKSB7XG4gICAgaWYgKGN1cnZlICE9PSAnUC0yNTYnICYmIGN1cnZlICE9PSAnUC0zODQnICYmIGN1cnZlICE9PSAnUC01MjEnKSB7XG4gICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoYFVua25vd24gY3VydmU6ICR7Y3VydmV9LiBNdXN0IGJlICR7bmFtZXN9YCwgJ0VSUl9JTlZBTElEX0NVUlZFJyk7XG4gICAgfVxuICAgIGNvbnN0IGVjZGggPSBjcnlwdG8uY3JlYXRlRUNESChjdXJ2ZXNbY3VydmVdKTtcbiAgICBlY2RoLmdlbmVyYXRlS2V5cygpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGtleTogZWNkaC5nZXRQdWJsaWNLZXkoKSxcbiAgICAgICAgYXN5bmMgZ2VuU2hhcmVkS2V5KHRoZWlyUHViLCBmb3JjZVByaXZhdGUpIHtcbiAgICAgICAgICAgIGlmIChmb3JjZVByaXZhdGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGVjZGguc2V0UHJpdmF0ZUtleShmb3JjZVByaXZhdGUucHJpdmF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZWNkaC5jb21wdXRlU2VjcmV0KHRoZWlyUHViKTtcbiAgICAgICAgfVxuICAgIH07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1lY2RoLmpzLm1hcCJdLCJuYW1lcyI6WyJjcnlwdG8iLCJDb2RlRXJyb3IiLCJjdXJ2ZXMiLCJjdXJ2ZVR5cGVzIiwiT2JqZWN0Iiwia2V5cyIsIm5hbWVzIiwiam9pbiIsImdlbmVyYXRlRXBobWVyYWxLZXlQYWlyIiwiY3VydmUiLCJlY2RoIiwiY3JlYXRlRUNESCIsImdlbmVyYXRlS2V5cyIsImtleSIsImdldFB1YmxpY0tleSIsImdlblNoYXJlZEtleSIsInRoZWlyUHViIiwiZm9yY2VQcml2YXRlIiwic2V0UHJpdmF0ZUtleSIsInByaXZhdGUiLCJjb21wdXRlU2VjcmV0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/ecdh.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/ed25519-class.js":
/*!********************************************************************!*\
!*** ./node_modules/@libp2p/crypto/dist/src/keys/ed25519-class.js ***!
\********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Ed25519PrivateKey: () => (/* binding */ Ed25519PrivateKey),\n/* harmony export */ Ed25519PublicKey: () => (/* binding */ Ed25519PublicKey),\n/* harmony export */ generateKeyPair: () => (/* binding */ generateKeyPair),\n/* harmony export */ generateKeyPairFromSeed: () => (/* binding */ generateKeyPairFromSeed),\n/* harmony export */ unmarshalEd25519PrivateKey: () => (/* binding */ unmarshalEd25519PrivateKey),\n/* harmony export */ unmarshalEd25519PublicKey: () => (/* binding */ unmarshalEd25519PublicKey)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var multiformats_bases_base58__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! multiformats/bases/base58 */ \"(ssr)/./node_modules/multiformats/dist/src/bases/base58.js\");\n/* harmony import */ var multiformats_hashes_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! multiformats/hashes/identity */ \"(ssr)/./node_modules/multiformats/dist/src/hashes/identity.js\");\n/* harmony import */ var multiformats_hashes_sha2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! multiformats/hashes/sha2 */ \"(ssr)/./node_modules/multiformats/dist/src/hashes/sha2.js\");\n/* harmony import */ var uint8arrays_equals__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! uint8arrays/equals */ \"(ssr)/./node_modules/uint8arrays/dist/src/equals.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../util.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/util.js\");\n/* harmony import */ var _ed25519_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ed25519.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/ed25519.js\");\n/* harmony import */ var _exporter_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./exporter.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/exporter.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./keys.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/keys.js\");\n\n\n\n\n\n\n\n\n\nclass Ed25519PublicKey {\n constructor(key){\n this._key = ensureKey(key, _ed25519_js__WEBPACK_IMPORTED_MODULE_4__.publicKeyLength);\n }\n verify(data, sig) {\n return _ed25519_js__WEBPACK_IMPORTED_MODULE_4__.hashAndVerify(this._key, sig, data);\n }\n marshal() {\n return this._key;\n }\n get bytes() {\n return _keys_js__WEBPACK_IMPORTED_MODULE_5__.PublicKey.encode({\n Type: _keys_js__WEBPACK_IMPORTED_MODULE_5__.KeyType.Ed25519,\n Data: this.marshal()\n }).subarray();\n }\n equals(key) {\n return (0,uint8arrays_equals__WEBPACK_IMPORTED_MODULE_3__.equals)(this.bytes, key.bytes);\n }\n hash() {\n const p = multiformats_hashes_sha2__WEBPACK_IMPORTED_MODULE_2__.sha256.digest(this.bytes);\n if ((0,_util_js__WEBPACK_IMPORTED_MODULE_6__.isPromise)(p)) {\n return p.then(({ bytes })=>bytes);\n }\n return p.bytes;\n }\n}\nclass Ed25519PrivateKey {\n // key - 64 byte Uint8Array containing private key\n // publicKey - 32 byte Uint8Array containing public key\n constructor(key, publicKey){\n this._key = ensureKey(key, _ed25519_js__WEBPACK_IMPORTED_MODULE_4__.privateKeyLength);\n this._publicKey = ensureKey(publicKey, _ed25519_js__WEBPACK_IMPORTED_MODULE_4__.publicKeyLength);\n }\n sign(message) {\n return _ed25519_js__WEBPACK_IMPORTED_MODULE_4__.hashAndSign(this._key, message);\n }\n get public() {\n return new Ed25519PublicKey(this._publicKey);\n }\n marshal() {\n return this._key;\n }\n get bytes() {\n return _keys_js__WEBPACK_IMPORTED_MODULE_5__.PrivateKey.encode({\n Type: _keys_js__WEBPACK_IMPORTED_MODULE_5__.KeyType.Ed25519,\n Data: this.marshal()\n }).subarray();\n }\n equals(key) {\n return (0,uint8arrays_equals__WEBPACK_IMPORTED_MODULE_3__.equals)(this.bytes, key.bytes);\n }\n async hash() {\n const p = multiformats_hashes_sha2__WEBPACK_IMPORTED_MODULE_2__.sha256.digest(this.bytes);\n let bytes;\n if ((0,_util_js__WEBPACK_IMPORTED_MODULE_6__.isPromise)(p)) {\n ({ bytes } = await p);\n } else {\n bytes = p.bytes;\n }\n return bytes;\n }\n /**\n * Gets the ID of the key.\n *\n * The key id is the base58 encoding of the identity multihash containing its public key.\n * The public key is a protobuf encoding containing a type and the DER encoding\n * of the PKCS SubjectPublicKeyInfo.\n *\n * @returns {Promise<string>}\n */ async id() {\n const encoding = multiformats_hashes_identity__WEBPACK_IMPORTED_MODULE_1__.identity.digest(this.public.bytes);\n return multiformats_bases_base58__WEBPACK_IMPORTED_MODULE_0__.base58btc.encode(encoding.bytes).substring(1);\n }\n /**\n * Exports the key into a password protected `format`\n */ async export(password, format = \"libp2p-key\") {\n if (format === \"libp2p-key\") {\n return (0,_exporter_js__WEBPACK_IMPORTED_MODULE_7__.exporter)(this.bytes, password);\n } else {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_8__.CodeError(`export format '${format}' is not supported`, \"ERR_INVALID_EXPORT_FORMAT\");\n }\n }\n}\nfunction unmarshalEd25519PrivateKey(bytes) {\n // Try the old, redundant public key version\n if (bytes.length > _ed25519_js__WEBPACK_IMPORTED_MODULE_4__.privateKeyLength) {\n bytes = ensureKey(bytes, _ed25519_js__WEBPACK_IMPORTED_MODULE_4__.privateKeyLength + _ed25519_js__WEBPACK_IMPORTED_MODULE_4__.publicKeyLength);\n const privateKeyBytes = bytes.subarray(0, _ed25519_js__WEBPACK_IMPORTED_MODULE_4__.privateKeyLength);\n const publicKeyBytes = bytes.subarray(_ed25519_js__WEBPACK_IMPORTED_MODULE_4__.privateKeyLength, bytes.length);\n return new Ed25519PrivateKey(privateKeyBytes, publicKeyBytes);\n }\n bytes = ensureKey(bytes, _ed25519_js__WEBPACK_IMPORTED_MODULE_4__.privateKeyLength);\n const privateKeyBytes = bytes.subarray(0, _ed25519_js__WEBPACK_IMPORTED_MODULE_4__.privateKeyLength);\n const publicKeyBytes = bytes.subarray(_ed25519_js__WEBPACK_IMPORTED_MODULE_4__.publicKeyLength);\n return new Ed25519PrivateKey(privateKeyBytes, publicKeyBytes);\n}\nfunction unmarshalEd25519PublicKey(bytes) {\n bytes = ensureKey(bytes, _ed25519_js__WEBPACK_IMPORTED_MODULE_4__.publicKeyLength);\n return new Ed25519PublicKey(bytes);\n}\nasync function generateKeyPair() {\n const { privateKey, publicKey } = _ed25519_js__WEBPACK_IMPORTED_MODULE_4__.generateKey();\n return new Ed25519PrivateKey(privateKey, publicKey);\n}\nasync function generateKeyPairFromSeed(seed) {\n const { privateKey, publicKey } = _ed25519_js__WEBPACK_IMPORTED_MODULE_4__.generateKeyFromSeed(seed);\n return new Ed25519PrivateKey(privateKey, publicKey);\n}\nfunction ensureKey(key, length) {\n key = Uint8Array.from(key ?? []);\n if (key.length !== length) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_8__.CodeError(`Key must be a Uint8Array of length ${length}, got ${key.length}`, \"ERR_INVALID_KEY_TYPE\");\n }\n return key;\n} //# sourceMappingURL=ed25519-class.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMva2V5cy9lZDI1NTE5LWNsYXNzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUE4QztBQUNRO0FBQ0U7QUFDTjtBQUNjO0FBQ3pCO0FBQ0E7QUFDRTtBQUNSO0FBQzFCLE1BQU1VO0lBRVRDLFlBQVlDLEdBQUcsQ0FBRTtRQUNiLElBQUksQ0FBQ0MsSUFBSSxHQUFHQyxVQUFVRixLQUFLTCx3REFBc0I7SUFDckQ7SUFDQVMsT0FBT0MsSUFBSSxFQUFFQyxHQUFHLEVBQUU7UUFDZCxPQUFPWCxzREFBb0IsQ0FBQyxJQUFJLENBQUNNLElBQUksRUFBRUssS0FBS0Q7SUFDaEQ7SUFDQUcsVUFBVTtRQUNOLE9BQU8sSUFBSSxDQUFDUCxJQUFJO0lBQ3BCO0lBQ0EsSUFBSVEsUUFBUTtRQUNSLE9BQU9aLCtDQUFhLENBQUNjLE1BQU0sQ0FBQztZQUN4QkMsTUFBTWYsNkNBQVcsQ0FBQ2lCLE9BQU87WUFDekJDLE1BQU0sSUFBSSxDQUFDUCxPQUFPO1FBQ3RCLEdBQUdRLFFBQVE7SUFDZjtJQUNBeEIsT0FBT1EsR0FBRyxFQUFFO1FBQ1IsT0FBT1AsMERBQWdCQSxDQUFDLElBQUksQ0FBQ2dCLEtBQUssRUFBRVQsSUFBSVMsS0FBSztJQUNqRDtJQUNBUSxPQUFPO1FBQ0gsTUFBTUMsSUFBSTNCLDREQUFNQSxDQUFDNEIsTUFBTSxDQUFDLElBQUksQ0FBQ1YsS0FBSztRQUNsQyxJQUFJZixtREFBU0EsQ0FBQ3dCLElBQUk7WUFDZCxPQUFPQSxFQUFFRSxJQUFJLENBQUMsQ0FBQyxFQUFFWCxLQUFLLEVBQUUsR0FBS0E7UUFDakM7UUFDQSxPQUFPUyxFQUFFVCxLQUFLO0lBQ2xCO0FBQ0o7QUFDTyxNQUFNWTtJQUdULHdEQUF3RDtJQUN4RCx1REFBdUQ7SUFDdkR0QixZQUFZQyxHQUFHLEVBQUVzQixTQUFTLENBQUU7UUFDeEIsSUFBSSxDQUFDckIsSUFBSSxHQUFHQyxVQUFV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REFBMEIsQ0FBQ2tEO0lBQzdELE9BQU8sSUFBSXhCLGtCQUFrQnFCLFlBQVlwQjtBQUM3QztBQUNBLFNBQVNwQixVQUFVRixHQUFHLEVBQUVxQyxNQUFNO0lBQzFCckMsTUFBTStDLFdBQVdDLElBQUksQ0FBQ2hELE9BQU8sRUFBRTtJQUMvQixJQUFJQSxJQUFJcUMsTUFBTSxLQUFLQSxRQUFRO1FBQ3ZCLE1BQU0sSUFBSWpELHdEQUFTQSxDQUFDLENBQUMsbUNBQW1DLEVBQUVpRCxPQUFPLE1BQU0sRUFBRXJDLElBQUlxQyxNQUFNLENBQUMsQ0FBQyxFQUFFO0lBQzNGO0lBQ0EsT0FBT3JDO0FBQ1gsRUFDQSx5Q0FBeUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL2NyeXB0by9kaXN0L3NyYy9rZXlzL2VkMjU1MTktY2xhc3MuanM/NjU4MyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2RlRXJyb3IgfSBmcm9tICdAbGlicDJwL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBiYXNlNThidGMgfSBmcm9tICdtdWx0aWZvcm1hdHMvYmFzZXMvYmFzZTU4JztcbmltcG9ydCB7IGlkZW50aXR5IH0gZnJvbSAnbXVsdGlmb3JtYXRzL2hhc2hlcy9pZGVudGl0eSc7XG5pbXBvcnQgeyBzaGEyNTYgfSBmcm9tICdtdWx0aWZvcm1hdHMvaGFzaGVzL3NoYTInO1xuaW1wb3J0IHsgZXF1YWxzIGFzIHVpbnQ4QXJyYXlFcXVhbHMgfSBmcm9tICd1aW50OGFycmF5cy9lcXVhbHMnO1xuaW1wb3J0IHsgaXNQcm9taXNlIH0gZnJvbSAnLi4vdXRpbC5qcyc7XG5pbXBvcnQgKiBhcyBjcnlwdG8gZnJvbSAnLi9lZDI1NTE5LmpzJztcbmltcG9ydCB7IGV4cG9ydGVyIH0gZnJvbSAnLi9leHBvcnRlci5qcyc7XG5pbXBvcnQgKiBhcyBwYm0gZnJvbSAnLi9rZXlzLmpzJztcbmV4cG9ydCBjbGFzcyBFZDI1NTE5UHVibGljS2V5IHtcbiAgICBfa2V5O1xuICAgIGNvbnN0cnVjdG9yKGtleSkge1xuICAgICAgICB0aGlzLl9rZXkgPSBlbnN1cmVLZXkoa2V5LCBjcnlwdG8ucHVibGljS2V5TGVuZ3RoKTtcbiAgICB9XG4gICAgdmVyaWZ5KGRhdGEsIHNpZykge1xuICAgICAgICByZXR1cm4gY3J5cHRvLmhhc2hBbmRWZXJpZnkodGhpcy5fa2V5LCBzaWcsIGRhdGEpO1xuICAgIH1cbiAgICBtYXJzaGFsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fa2V5O1xuICAgIH1cbiAgICBnZXQgYnl0ZXMoKSB7XG4gICAgICAgIHJldHVybiBwYm0uUHVibGljS2V5LmVuY29kZSh7XG4gICAgICAgICAgICBUeXBlOiBwYm0uS2V5VHlwZS5FZDI1NTE5LFxuICAgICAgICAgICAgRGF0YTogdGhpcy5tYXJzaGFsKClcbiAgICAgICAgfSkuc3ViYXJyYXkoKTtcbiAgICB9XG4gICAgZXF1YWxzKGtleSkge1xuICAgICAgICByZXR1cm4gdWludDhBcnJheUVxdWFscyh0aGlzLmJ5dGVzLCBrZXkuYnl0ZXMpO1xuICAgIH1cbiAgICBoYXNoKCkge1xuICAgICAgICBjb25zdCBwID0gc2hhMjU2LmRpZ2VzdCh0aGlzLmJ5dGVzKTtcbiAgICAgICAgaWYgKGlzUHJvbWlzZShwKSkge1xuICAgICAgICAgICAgcmV0dXJuIHAudGhlbigoeyBieXRlcyB9KSA9PiBieXRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHAuYnl0ZXM7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEVkMjU1MTlQcml2YXRlS2V5IHtcbiAgICBfa2V5O1xuICAgIF9wdWJsaWNLZXk7XG4gICAgLy8ga2V5ICAgICAgIC0gNjQgYnl0ZSBVaW50OEFycmF5IGNvbnRhaW5pbmcgcHJpdmF0ZSBrZXlcbiAgICAvLyBwdWJsaWNLZXkgLSAzMiBieXRlIFVpbnQ4QXJyYXkgY29udGFpbmluZyBwdWJsaWMga2V5XG4gICAgY29uc3RydWN0b3Ioa2V5LCBwdWJsaWNLZXkpIHtcbiAgICAgICAgdGhpcy5fa2V5ID0gZW5zdXJlS2V5KGtleSwgY3J5cHRvLnByaXZhdGVLZXlMZW5ndGgpO1xuICAgICAgICB0aGlzLl9wdWJsaWNLZXkgPSBlbnN1cmVLZXkocHVibGljS2V5LCBjcnlwdG8ucHVibGljS2V5TGVuZ3RoKTtcbiAgICB9XG4gICAgc2lnbihtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiBjcnlwdG8uaGFzaEFuZFNpZ24odGhpcy5fa2V5LCBtZXNzYWdlKTtcbiAgICB9XG4gICAgZ2V0IHB1YmxpYygpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBFZDI1NTE5UHVibGljS2V5KHRoaXMuX3B1YmxpY0tleSk7XG4gICAgfVxuICAgIG1hcnNoYWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9rZXk7XG4gICAgfVxuICAgIGdldCBieXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHBibS5Qcml2YXRlS2V5LmVuY29kZSh7XG4gICAgICAgICAgICBUeXBlOiBwYm0uS2V5VHlwZS5FZDI1NTE5LFxuICAgICAgICAgICAgRGF0YTogdGhpcy5tYXJzaGFsKClcbiAgICAgICAgfSkuc3ViYXJyYXkoKTtcbiAgICB9XG4gICAgZXF1YWxzKGtleSkge1xuICAgICAgICByZXR1cm4gdWludDhBcnJheUVxdWFscyh0aGlzLmJ5dGVzLCBrZXkuYnl0ZXMpO1xuICAgIH1cbiAgICBhc3luYyBoYXNoKCkge1xuICAgICAgICBjb25zdCBwID0gc2hhMjU2LmRpZ2VzdCh0aGlzLmJ5dGVzKTtcbiAgICAgICAgbGV0IGJ5dGVzO1xuICAgICAgICBpZiAoaXNQcm9taXNlKHApKSB7XG4gICAgICAgICAgICAoeyBieXRlcyB9ID0gYXdhaXQgcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBieXRlcyA9IHAuYnl0ZXM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJ5dGVzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBJRCBvZiB0aGUga2V5LlxuICAgICAqXG4gICAgICogVGhlIGtleSBpZCBpcyB0aGUgYmFzZTU4IGVuY29kaW5nIG9mIHRoZSBpZGVudGl0eSBtdWx0aWhhc2ggY29udGFpbmluZyBpdHMgcHVibGljIGtleS5cbiAgICAgKiBUaGUgcHVibGljIGtleSBpcyBhIHByb3RvYnVmIGVuY29kaW5nIGNvbnRhaW5pbmcgYSB0eXBlIGFuZCB0aGUgREVSIGVuY29kaW5nXG4gICAgICogb2YgdGhlIFBLQ1MgU3ViamVjdFB1YmxpY0tleUluZm8uXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc+fVxuICAgICAqL1xuICAgIGFzeW5jIGlkKCkge1xuICAgICAgICBjb25zdCBlbmNvZGluZyA9IGlkZW50aXR5LmRpZ2VzdCh0aGlzLnB1YmxpYy5ieXRlcyk7XG4gICAgICAgIHJldHVybiBiYXNlNThidGMuZW5jb2RlKGVuY29kaW5nLmJ5dGVzKS5zdWJzdHJpbmcoMSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEV4cG9ydHMgdGhlIGtleSBpbnRvIGEgcGFzc3dvcmQgcHJvdGVjdGVkIGBmb3JtYXRgXG4gICAgICovXG4gICAgYXN5bmMgZXhwb3J0KHBhc3N3b3JkLCBmb3JtYXQgPSAnbGlicDJwLWtleScpIHtcbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2xpYnAycC1rZXknKSB7XG4gICAgICAgICAgICByZXR1cm4gZXhwb3J0ZXIodGhpcy5ieXRlcywgcGFzc3dvcmQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcihgZXhwb3J0IGZvcm1hdCAnJHtmb3JtYXR9JyBpcyBub3Qgc3VwcG9ydGVkYCwgJ0VSUl9JTlZBTElEX0VYUE9SVF9GT1JNQVQnKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiB1bm1hcnNoYWxFZDI1NTE5UHJpdmF0ZUtleShieXRlcykge1xuICAgIC8vIFRyeSB0aGUgb2xkLCByZWR1bmRhbnQgcHVibGljIGtleSB2ZXJzaW9uXG4gICAgaWYgKGJ5dGVzLmxlbmd0aCA+IGNyeXB0by5wcml2YXRlS2V5TGVuZ3RoKSB7XG4gICAgICAgIGJ5dGVzID0gZW5zdXJlS2V5KGJ5dGVzLCBjcnlwdG8ucHJpdmF0ZUtleUxlbmd0aCArIGNyeXB0by5wdWJsaWNLZXlMZW5ndGgpO1xuICAgICAgICBjb25zdCBwcml2YXRlS2V5Qnl0ZXMgPSBieXRlcy5zdWJhcnJheSgwLCBjcnlwdG8ucHJpdmF0ZUtleUxlbmd0aCk7XG4gICAgICAgIGNvbnN0IHB1YmxpY0tleUJ5dGVzID0gYnl0ZXMuc3ViYXJyYXkoY3J5cHRvLnByaXZhdGVLZXlMZW5ndGgsIGJ5dGVzLmxlbmd0aCk7XG4gICAgICAgIHJldHVybiBuZXcgRWQyNTUxOVByaXZhdGVLZXkocHJpdmF0ZUtleUJ5dGVzLCBwdWJsaWNLZXlCeXRlcyk7XG4gICAgfVxuICAgIGJ5dGVzID0gZW5zdXJlS2V5KGJ5dGVzLCBjcnlwdG8ucHJpdmF0ZUtleUxlbmd0aCk7XG4gICAgY29uc3QgcHJpdmF0ZUtleUJ5dGVzID0gYnl0ZXMuc3ViYXJyYXkoMCwgY3J5cHRvLnByaXZhdGVLZXlMZW5ndGgpO1xuICAgIGNvbnN0IHB1YmxpY0tleUJ5dGVzID0gYnl0ZXMuc3ViYXJyYXkoY3J5cHRvLnB1YmxpY0tleUxlbmd0aCk7XG4gICAgcmV0dXJuIG5ldyBFZDI1NTE5UHJpdmF0ZUtleShwcml2YXRlS2V5Qnl0ZXMsIHB1YmxpY0tleUJ5dGVzKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB1bm1hcnNoYWxFZDI1NTE5UHVibGljS2V5KGJ5dGVzKSB7XG4gICAgYnl0ZXMgPSBlbnN1cmVLZXkoYnl0ZXMsIGNyeXB0by5wdWJsaWNLZXlMZW5ndGgpO1xuICAgIHJldHVybiBuZXcgRWQyNTUxOVB1YmxpY0tleShieXRlcyk7XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyKCkge1xuICAgIGNvbnN0IHsgcHJpdmF0ZUtleSwgcHVibGljS2V5IH0gPSBjcnlwdG8uZ2VuZXJhdGVLZXkoKTtcbiAgICByZXR1cm4gbmV3IEVkMjU1MTlQcml2YXRlS2V5KHByaXZhdGVLZXksIHB1YmxpY0tleSk7XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyRnJvbVNlZWQoc2VlZCkge1xuICAgIGNvbnN0IHsgcHJpdmF0ZUtleSwgcHVibGljS2V5IH0gPSBjcnlwdG8uZ2VuZXJhdGVLZXlGcm9tU2VlZChzZWVkKTtcbiAgICByZXR1cm4gbmV3IEVkMjU1MTlQcml2YXRlS2V5KHByaXZhdGVLZXksIHB1YmxpY0tleSk7XG59XG5mdW5jdGlvbiBlbnN1cmVLZXkoa2V5LCBsZW5ndGgpIHtcbiAgICBrZXkgPSBVaW50OEFycmF5LmZyb20oa2V5ID8/IFtdKTtcbiAgICBpZiAoa2V5Lmxlbmd0aCAhPT0gbGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoYEtleSBtdXN0IGJlIGEgVWludDhBcnJheSBvZiBsZW5ndGggJHtsZW5ndGh9LCBnb3QgJHtrZXkubGVuZ3RofWAsICdFUlJfSU5WQUxJRF9LRVlfVFlQRScpO1xuICAgIH1cbiAgICByZXR1cm4ga2V5O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZWQyNTUxOS1jbGFzcy5qcy5tYXAiXSwibmFtZXMiOlsiQ29kZUVycm9yIiwiYmFzZTU4YnRjIiwiaWRlbnRpdHkiLCJzaGEyNTYiLCJlcXVhbHMiLCJ1aW50OEFycmF5RXF1YWxzIiwiaXNQcm9taXNlIiwiY3J5cHRvIiwiZXhwb3J0ZXIiLCJwYm0iLCJFZDI1NTE5UHVibGljS2V5IiwiY29uc3RydWN0b3IiLCJrZXkiLCJfa2V5IiwiZW5zdXJlS2V5IiwicHVibGljS2V5TGVuZ3RoIiwidmVyaWZ5IiwiZGF0YSIsInNpZyIsImhhc2hBbmRWZXJpZnkiLCJtYXJzaGFsIiwiYnl0ZXMiLCJQdWJsaWNLZXkiLCJlbmNvZGUiLCJUeXBlIiwiS2V5VHlwZSIsIkVkMjU1MTkiLCJEYXRhIiwic3ViYXJyYXkiLCJoYXNoIiwicCIsImRpZ2VzdCIsInRoZW4iLCJFZDI1NTE5UHJpdmF0ZUtleSIsInB1YmxpY0tleSIsInByaXZhdGVLZXlMZW5ndGgiLCJfcHVibGljS2V5Iiwic2lnbiIsIm1lc3NhZ2UiLCJoYXNoQW5kU2lnbiIsInB1YmxpYyIsIlByaXZhdGVLZXkiLCJpZCIsImVuY29kaW5nIiwic3Vic3RyaW5nIiwiZXhwb3J0IiwicGFzc3dvcmQiLCJmb3JtYXQiLCJ1bm1hcnNoYWxFZDI1NTE5UHJpdmF0ZUtleSIsImxlbmd0aCIsInByaXZhdGVLZXlCeXRlcyIsInB1YmxpY0tleUJ5dGVzIiwidW5tYXJzaGFsRWQyNTUxOVB1YmxpY0tleSIsImdlbmVyYXRlS2V5UGFpciIsInByaXZhdGVLZXkiLCJnZW5lcmF0ZUtleSIsImdlbmVyYXRlS2V5UGFpckZyb21TZWVkIiwic2VlZCIsImdlbmVyYXRlS2V5RnJvbVNlZWQiLCJVaW50OEFycmF5IiwiZnJvbSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/ed25519-class.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/ed25519.js":
/*!**************************************************************!*\
!*** ./node_modules/@libp2p/crypto/dist/src/keys/ed25519.js ***!
\**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ generateKey: () => (/* binding */ generateKey),\n/* harmony export */ generateKeyFromSeed: () => (/* binding */ generateKeyFromSeed),\n/* harmony export */ hashAndSign: () => (/* binding */ hashAndSign),\n/* harmony export */ hashAndVerify: () => (/* binding */ hashAndVerify),\n/* harmony export */ privateKeyLength: () => (/* binding */ PRIVATE_KEY_BYTE_LENGTH),\n/* harmony export */ publicKeyLength: () => (/* binding */ PUBLIC_KEY_BYTE_LENGTH)\n/* harmony export */ });\n/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! crypto */ \"crypto\");\n/* harmony import */ var uint8arrays_concat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uint8arrays/concat */ \"(ssr)/./node_modules/uint8arrays/dist/src/concat.node.js\");\n/* harmony import */ var uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uint8arrays/from-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/from-string.node.js\");\n/* harmony import */ var uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! uint8arrays/to-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/to-string.node.js\");\n\n\n\n\nconst keypair = crypto__WEBPACK_IMPORTED_MODULE_0__.generateKeyPairSync;\nconst PUBLIC_KEY_BYTE_LENGTH = 32;\nconst PRIVATE_KEY_BYTE_LENGTH = 64; // private key is actually 32 bytes but for historical reasons we concat private and public keys\nconst KEYS_BYTE_LENGTH = 32;\nconst SIGNATURE_BYTE_LENGTH = 64;\n\n\nfunction derivePublicKey(privateKey) {\n const keyObject = crypto__WEBPACK_IMPORTED_MODULE_0__.createPrivateKey({\n format: \"jwk\",\n key: {\n crv: \"Ed25519\",\n x: \"\",\n d: (0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_3__.toString)(privateKey, \"base64url\"),\n kty: \"OKP\"\n }\n });\n const jwk = keyObject.export({\n format: \"jwk\"\n });\n if (jwk.x == null || jwk.x === \"\") {\n throw new Error(\"Could not export JWK public key\");\n }\n return (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_2__.fromString)(jwk.x, \"base64url\");\n}\nfunction generateKey() {\n const key = keypair(\"ed25519\", {\n publicKeyEncoding: {\n type: \"spki\",\n format: \"jwk\"\n },\n privateKeyEncoding: {\n type: \"pkcs8\",\n format: \"jwk\"\n }\n });\n // @ts-expect-error node types are missing jwk as a format\n const privateKeyRaw = (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_2__.fromString)(key.privateKey.d, \"base64url\");\n // @ts-expect-error node types are missing jwk as a format\n const publicKeyRaw = (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_2__.fromString)(key.privateKey.x, \"base64url\");\n return {\n privateKey: (0,uint8arrays_concat__WEBPACK_IMPORTED_MODULE_1__.concat)([\n privateKeyRaw,\n publicKeyRaw\n ], privateKeyRaw.byteLength + publicKeyRaw.byteLength),\n publicKey: publicKeyRaw\n };\n}\n/**\n * Generate keypair from a 32 byte uint8array\n */ function generateKeyFromSeed(seed) {\n if (seed.length !== KEYS_BYTE_LENGTH) {\n throw new TypeError('\"seed\" must be 32 bytes in length.');\n } else if (!(seed instanceof Uint8Array)) {\n throw new TypeError('\"seed\" must be a node.js Buffer, or Uint8Array.');\n }\n // based on node forges algorithm, the seed is used directly as private key\n const publicKeyRaw = derivePublicKey(seed);\n return {\n privateKey: (0,uint8arrays_concat__WEBPACK_IMPORTED_MODULE_1__.concat)([\n seed,\n publicKeyRaw\n ], seed.byteLength + publicKeyRaw.byteLength),\n publicKey: publicKeyRaw\n };\n}\nfunction hashAndSign(key, msg) {\n if (!(key instanceof Uint8Array)) {\n throw new TypeError('\"key\" must be a node.js Buffer, or Uint8Array.');\n }\n let privateKey;\n let publicKey;\n if (key.byteLength === PRIVATE_KEY_BYTE_LENGTH) {\n privateKey = key.subarray(0, 32);\n publicKey = key.subarray(32);\n } else if (key.byteLength === KEYS_BYTE_LENGTH) {\n privateKey = key.subarray(0, 32);\n publicKey = derivePublicKey(privateKey);\n } else {\n throw new TypeError('\"key\" must be 64 or 32 bytes in length.');\n }\n const obj = crypto__WEBPACK_IMPORTED_MODULE_0__.createPrivateKey({\n format: \"jwk\",\n key: {\n crv: \"Ed25519\",\n d: (0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_3__.toString)(privateKey, \"base64url\"),\n x: (0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_3__.toString)(publicKey, \"base64url\"),\n kty: \"OKP\"\n }\n });\n return crypto__WEBPACK_IMPORTED_MODULE_0__.sign(null, msg instanceof Uint8Array ? msg : msg.subarray(), obj);\n}\nfunction hashAndVerify(key, sig, msg) {\n if (key.byteLength !== PUBLIC_KEY_BYTE_LENGTH) {\n throw new TypeError('\"key\" must be 32 bytes in length.');\n } else if (!(key instanceof Uint8Array)) {\n throw new TypeError('\"key\" must be a node.js Buffer, or Uint8Array.');\n }\n if (sig.byteLength !== SIGNATURE_BYTE_LENGTH) {\n throw new TypeError('\"sig\" must be 64 bytes in length.');\n } else if (!(sig instanceof Uint8Array)) {\n throw new TypeError('\"sig\" must be a node.js Buffer, or Uint8Array.');\n }\n const obj = crypto__WEBPACK_IMPORTED_MODULE_0__.createPublicKey({\n format: \"jwk\",\n key: {\n crv: \"Ed25519\",\n x: (0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_3__.toString)(key, \"base64url\"),\n kty: \"OKP\"\n }\n });\n return crypto__WEBPACK_IMPORTED_MODULE_0__.verify(null, msg instanceof Uint8Array ? msg : msg.subarray(), obj, sig);\n} //# sourceMappingURL=ed25519.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMva2V5cy9lZDI1NTE5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBNEI7QUFDb0M7QUFDYTtBQUNOO0FBQ3ZFLE1BQU1PLFVBQVVQLHVEQUEwQjtBQUMxQyxNQUFNUyx5QkFBeUI7QUFDL0IsTUFBTUMsMEJBQTBCLElBQUksZ0dBQWdHO0FBQ3BJLE1BQU1DLG1CQUFtQjtBQUN6QixNQUFNQyx3QkFBd0I7QUFDdUI7QUFDRTtBQUN2RCxTQUFTRyxnQkFBZ0JDLFVBQVU7SUFDL0IsTUFBTUMsWUFBWWpCLG9EQUF1QixDQUFDO1FBQ3RDbUIsUUFBUTtRQUNSQyxLQUFLO1lBQ0RDLEtBQUs7WUFDTEMsR0FBRztZQUNIQyxHQUFHakIsK0RBQWtCQSxDQUFDVSxZQUFZO1lBQ2xDUSxLQUFLO1FBQ1Q7SUFDSjtJQUNBLE1BQU1DLE1BQU1SLFVBQVVTLE1BQU0sQ0FBQztRQUN6QlAsUUFBUTtJQUNaO0lBQ0EsSUFBSU0sSUFBSUgsQ0FBQyxJQUFJLFFBQVFHLElBQUlILENBQUMsS0FBSyxJQUFJO1FBQy9CLE1BQU0sSUFBSUssTUFBTTtJQUNwQjtJQUNBLE9BQU92QixtRUFBb0JBLENBQUNxQixJQUFJSCxDQUFDLEVBQUU7QUFDdkM7QUFDTyxTQUFTTTtJQUNaLE1BQU1SLE1BQU1iLFFBQVEsV0FBVztRQUMzQnNCLG1CQUFtQjtZQUFFQyxNQUFNO1lBQVFYLFFBQVE7UUFBTTtRQUNqRFksb0JBQW9CO1lBQUVELE1BQU07WUFBU1gsUUFBUTtRQUFNO0lBQ3ZEO0lBQ0EsMERBQTBEO0lBQzFELE1BQU1hLGdCQUFnQjVCLG1FQUFvQkEsQ0FBQ2dCLElBQUlKLFVBQVUsQ0FBQ08sQ0FBQyxFQUFFO0lBQzdELDBEQUEwRDtJQUMxRCxNQUFNVSxlQUFlN0IsbUVBQW9CQSxDQUFDZ0IsSUFBSUosVUFBVSxDQUFDTSxDQUFDLEVBQUU7SUFDNUQsT0FBTztRQUNITixZQUFZZCwwREFBZ0JBLENBQUM7WUFBQzhCO1lBQWVDO1NBQWEsRUFBRUQsY0FBY0UsVUFBVSxHQUFHRCxhQUFhQyxVQUFVO1FBQzlHQyxXQUFXRjtJQUNmO0FBQ0o7QUFDQTs7Q0FFQyxHQUNNLFNBQVNHLG9CQUFvQkMsSUFBSTtJQUNwQyxJQUFJQSxLQUFLQyxNQUFNLEtBQUszQixrQkFBa0I7UUFDbEMsTUFBTSxJQUFJNEIsVUFBVTtJQUN4QixPQUNLLElBQUksQ0FBRUYsQ0FBQUEsZ0JBQWdCRyxVQUFTLEdBQUk7UUFDcEMsTUFBTSxJQUFJRCxVQUFVO0lBQ3hCO0lBQ0EsMkVBQTJFO0lBQzNFLE1BQU1OLGVBQWVsQixnQkFBZ0JzQjtJQUNyQyxPQUFPO1FBQ0hyQixZQUFZZCwwREFBZ0JBLENBQUM7WUFBQ21DO1lBQU1KO1NBQWEsRUFBRUksS0FBS0gsVUFBVSxHQUFHRCxhQUFhQyxVQUFVO1FBQzVGQyxXQUFXRjtJQUNmO0FBQ0o7QUFDTyxTQUFTUSxZQUFZckIsR0FBRyxFQUFFc0IsR0FBRztJQUNoQyxJQUFJLENBQUV0QixDQUFBQSxlQUFlb0IsVUFBUyxHQUFJO1FBQzlCLE1BQU0sSUFBSUQsVUFBVTtJQUN4QjtJQUNBLElBQUl2QjtJQUNKLElBQUltQjtJQUNKLElBQUlmLElBQUljLFVBQVUsS0FBS3hCLHlCQUF5QjtRQUM1Q00sYUFBYUksSUFBSXVCLFFBQVEsQ0FBQyxHQUFHO1FBQzdCUixZQUFZZixJQUFJdUIsUUFBUSxDQUFDO0lBQzdCLE9BQ0ssSUFBSXZCLElBQUljLFVBQVUsS0FBS3ZCLGtCQUFrQjtRQUMxQ0ssYUFBYUksSUFBSXVCLFFBQVEsQ0FBQyxHQUFHO1FBQzdCUixZQUFZcEIsZ0JBQWdCQztJQUNoQyxPQUNLO1FBQ0QsTUFBTSxJQUFJdUIsVUFBVTtJQUN4QjtJQUNBLE1BQU1LLE1BQU01QyxvREFBdUIsQ0FBQztRQUNoQ21CLFFBQVE7UUFDUkMsS0FBSztZQUNEQyxLQUFLO1lBQ0xFLEdBQUdqQiwrREFBa0JBLENBQUNVLFlBQVk7WUFDbENNLEdBQUdoQiwrREFBa0JBLENBQUM2QixXQUFXO1lBQ2pDWCxLQUFLO1FBQ1Q7SUFDSjtJQUNBLE9BQU94Qix3Q0FBVyxDQUFDLE1BQU0wQyxlQUFlRixhQUFhRSxNQUFNQSxJQUFJQyxRQUFRLElBQUlDO0FBQy9FO0FBQ08sU0FBU0UsY0FBYzFCLEdBQUcsRUFBRTJCLEdBQUcsRUFBRUwsR0FBRztJQUN2QyxJQUFJdEIsSUFBSWMsVUFBVSxLQUFLekIsd0JBQXdCO1FBQzNDLE1BQU0sSUFBSThCLFVBQVU7SUFDeEIsT0FDSyxJQUFJLENBQUVuQixDQUFBQSxlQUFlb0IsVUFBUyxHQUFJO1FBQ25DLE1BQU0sSUFBSUQsVUFBVTtJQUN4QjtJQUNBLElBQUlRLElBQUliLFVBQVUsS0FBS3RCLHVCQUF1QjtRQUMxQyxNQUFNLElBQUkyQixVQUFVO0lBQ3hCLE9BQ0ssSUFBSSxDQUFFUSxDQUFBQSxlQUFlUCxVQUFTLEdBQUk7UUFDbkMsTUFBTSxJQUFJRCxVQUFVO0lBQ3hCO0lBQ0EsTUFBTUssTUFBTTVDLG1EQUFzQixDQUFDO1FBQy9CbUIsUUFBUTtRQUNSQyxLQUFLO1lBQ0RDLEtBQUs7WUFDTEMsR0FBR2hCLCtEQUFrQkEsQ0FBQ2MsS0FBSztZQUMzQkksS0FBSztRQUNUO0lBQ0o7SUFDQSxPQUFPeEIsMENBQWEsQ0FBQyxNQUFNMEMsZUFBZUYsYUFBYUUsTUFBTUEsSUFBSUMsUUFBUSxJQUFJQyxLQUFLRztBQUN0RixFQUNBLG1DQUFtQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvY3J5cHRvL2Rpc3Qvc3JjL2tleXMvZWQyNTUxOS5qcz8zZjJkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcnlwdG8gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IGNvbmNhdCBhcyB1aW50OGFycmF5Q29uY2F0IH0gZnJvbSAndWludDhhcnJheXMvY29uY2F0JztcbmltcG9ydCB7IGZyb21TdHJpbmcgYXMgdWludDhhcnJheUZyb21TdHJpbmcgfSBmcm9tICd1aW50OGFycmF5cy9mcm9tLXN0cmluZyc7XG5pbXBvcnQgeyB0b1N0cmluZyBhcyB1aW50OGFycmF5VG9TdHJpbmcgfSBmcm9tICd1aW50OGFycmF5cy90by1zdHJpbmcnO1xuY29uc3Qga2V5cGFpciA9IGNyeXB0by5nZW5lcmF0ZUtleVBhaXJTeW5jO1xuY29uc3QgUFVCTElDX0tFWV9CWVRFX0xFTkdUSCA9IDMyO1xuY29uc3QgUFJJVkFURV9LRVlfQllURV9MRU5HVEggPSA2NDsgLy8gcHJpdmF0ZSBrZXkgaXMgYWN0dWFsbHkgMzIgYnl0ZXMgYnV0IGZvciBoaXN0b3JpY2FsIHJlYXNvbnMgd2UgY29uY2F0IHByaXZhdGUgYW5kIHB1YmxpYyBrZXlzXG5jb25zdCBLRVlTX0JZVEVfTEVOR1RIID0gMzI7XG5jb25zdCBTSUdOQVRVUkVfQllURV9MRU5HVEggPSA2NDtcbmV4cG9ydCB7IFBVQkxJQ19LRVlfQllURV9MRU5HVEggYXMgcHVibGljS2V5TGVuZ3RoIH07XG5leHBvcnQgeyBQUklWQVRFX0tFWV9CWVRFX0xFTkdUSCBhcyBwcml2YXRlS2V5TGVuZ3RoIH07XG5mdW5jdGlvbiBkZXJpdmVQdWJsaWNLZXkocHJpdmF0ZUtleSkge1xuICAgIGNvbnN0IGtleU9iamVjdCA9IGNyeXB0by5jcmVhdGVQcml2YXRlS2V5KHtcbiAgICAgICAgZm9ybWF0OiAnandrJyxcbiAgICAgICAga2V5OiB7XG4gICAgICAgICAgICBjcnY6ICdFZDI1NTE5JyxcbiAgICAgICAgICAgIHg6ICcnLFxuICAgICAgICAgICAgZDogdWludDhhcnJheVRvU3RyaW5nKHByaXZhdGVLZXksICdiYXNlNjR1cmwnKSxcbiAgICAgICAgICAgIGt0eTogJ09LUCdcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGp3ayA9IGtleU9iamVjdC5leHBvcnQoe1xuICAgICAgICBmb3JtYXQ6ICdqd2snXG4gICAgfSk7XG4gICAgaWYgKGp3ay54ID09IG51bGwgfHwgandrLnggPT09ICcnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGV4cG9ydCBKV0sgcHVibGljIGtleScpO1xuICAgIH1cbiAgICByZXR1cm4gdWludDhhcnJheUZyb21TdHJpbmcoandrLngsICdiYXNlNjR1cmwnKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUtleSgpIHtcbiAgICBjb25zdCBrZXkgPSBrZXlwYWlyKCdlZDI1NTE5Jywge1xuICAgICAgICBwdWJsaWNLZXlFbmNvZGluZzogeyB0eXBlOiAnc3BraScsIGZvcm1hdDogJ2p3aycgfSxcbiAgICAgICAgcHJpdmF0ZUtleUVuY29kaW5nOiB7IHR5cGU6ICdwa2NzOCcsIGZvcm1hdDogJ2p3aycgfVxuICAgIH0pO1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3Igbm9kZSB0eXBlcyBhcmUgbWlzc2luZyBqd2sgYXMgYSBmb3JtYXRcbiAgICBjb25zdCBwcml2YXRlS2V5UmF3ID0gdWludDhhcnJheUZyb21TdHJpbmcoa2V5LnByaXZhdGVLZXkuZCwgJ2Jhc2U2NHVybCcpO1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3Igbm9kZSB0eXBlcyBhcmUgbWlzc2luZyBqd2sgYXMgYSBmb3JtYXRcbiAgICBjb25zdCBwdWJsaWNLZXlSYXcgPSB1aW50OGFycmF5RnJvbVN0cmluZyhrZXkucHJpdmF0ZUtleS54LCAnYmFzZTY0dXJsJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJpdmF0ZUtleTogdWludDhhcnJheUNvbmNhdChbcHJpdmF0ZUtleVJhdywgcHVibGljS2V5UmF3XSwgcHJpdmF0ZUtleVJhdy5ieXRlTGVuZ3RoICsgcHVibGljS2V5UmF3LmJ5dGVMZW5ndGgpLFxuICAgICAgICBwdWJsaWNLZXk6IHB1YmxpY0tleVJhd1xuICAgIH07XG59XG4vKipcbiAqIEdlbmVyYXRlIGtleXBhaXIgZnJvbSBhIDMyIGJ5dGUgdWludDhhcnJheVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVLZXlGcm9tU2VlZChzZWVkKSB7XG4gICAgaWYgKHNlZWQubGVuZ3RoICE9PSBLRVlTX0JZVEVfTEVOR1RIKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wic2VlZFwiIG11c3QgYmUgMzIgYnl0ZXMgaW4gbGVuZ3RoLicpO1xuICAgIH1cbiAgICBlbHNlIGlmICghKHNlZWQgaW5zdGFuY2VvZiBVaW50OEFycmF5KSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcInNlZWRcIiBtdXN0IGJlIGEgbm9kZS5qcyBCdWZmZXIsIG9yIFVpbnQ4QXJyYXkuJyk7XG4gICAgfVxuICAgIC8vIGJhc2VkIG9uIG5vZGUgZm9yZ2VzIGFsZ29yaXRobSwgdGhlIHNlZWQgaXMgdXNlZCBkaXJlY3RseSBhcyBwcml2YXRlIGtleVxuICAgIGNvbnN0IHB1YmxpY0tleVJhdyA9IGRlcml2ZVB1YmxpY0tleShzZWVkKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBwcml2YXRlS2V5OiB1aW50OGFycmF5Q29uY2F0KFtzZWVkLCBwdWJsaWNLZXlSYXddLCBzZWVkLmJ5dGVMZW5ndGggKyBwdWJsaWNLZXlSYXcuYnl0ZUxlbmd0aCksXG4gICAgICAgIHB1YmxpY0tleTogcHVibGljS2V5UmF3XG4gICAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBoYXNoQW5kU2lnbihrZXksIG1zZykge1xuICAgIGlmICghKGtleSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wia2V5XCIgbXVzdCBiZSBhIG5vZGUuanMgQnVmZmVyLCBvciBVaW50OEFycmF5LicpO1xuICAgIH1cbiAgICBsZXQgcHJpdmF0ZUtleTtcbiAgICBsZXQgcHVibGljS2V5O1xuICAgIGlmIChrZXkuYnl0ZUxlbmd0aCA9PT0gUFJJVkFURV9LRVlfQllURV9MRU5HVEgpIHtcbiAgICAgICAgcHJpdmF0ZUtleSA9IGtleS5zdWJhcnJheSgwLCAzMik7XG4gICAgICAgIHB1YmxpY0tleSA9IGtleS5zdWJhcnJheSgzMik7XG4gICAgfVxuICAgIGVsc2UgaWYgKGtleS5ieXRlTGVuZ3RoID09PSBLRVlTX0JZVEVfTEVOR1RIKSB7XG4gICAgICAgIHByaXZhdGVLZXkgPSBrZXkuc3ViYXJyYXkoMCwgMzIpO1xuICAgICAgICBwdWJsaWNLZXkgPSBkZXJpdmVQdWJsaWNLZXkocHJpdmF0ZUtleSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImtleVwiIG11c3QgYmUgNjQgb3IgMzIgYnl0ZXMgaW4gbGVuZ3RoLicpO1xuICAgIH1cbiAgICBjb25zdCBvYmogPSBjcnlwdG8uY3JlYXRlUHJpdmF0ZUtleSh7XG4gICAgICAgIGZvcm1hdDogJ2p3aycsXG4gICAgICAgIGtleToge1xuICAgICAgICAgICAgY3J2OiAnRWQyNTUxOScsXG4gICAgICAgICAgICBkOiB1aW50OGFycmF5VG9TdHJpbmcocHJpdmF0ZUtleSwgJ2Jhc2U2NHVybCcpLFxuICAgICAgICAgICAgeDogdWludDhhcnJheVRvU3RyaW5nKHB1YmxpY0tleSwgJ2Jhc2U2NHVybCcpLFxuICAgICAgICAgICAga3R5OiAnT0tQJ1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNyeXB0by5zaWduKG51bGwsIG1zZyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkgPyBtc2cgOiBtc2cuc3ViYXJyYXkoKSwgb2JqKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBoYXNoQW5kVmVyaWZ5KGtleSwgc2lnLCBtc2cpIHtcbiAgICBpZiAoa2V5LmJ5dGVMZW5ndGggIT09IFBVQkxJQ19LRVlfQllURV9MRU5HVEgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJrZXlcIiBtdXN0IGJlIDMyIGJ5dGVzIGluIGxlbmd0aC4nKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIShrZXkgaW5zdGFuY2VvZiBVaW50OEFycmF5KSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImtleVwiIG11c3QgYmUgYSBub2RlLmpzIEJ1ZmZlciwgb3IgVWludDhBcnJheS4nKTtcbiAgICB9XG4gICAgaWYgKHNpZy5ieXRlTGVuZ3RoICE9PSBTSUdOQVRVUkVfQllURV9MRU5HVEgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJzaWdcIiBtdXN0IGJlIDY0IGJ5dGVzIGluIGxlbmd0aC4nKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIShzaWcgaW5zdGFuY2VvZiBVaW50OEFycmF5KSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcInNpZ1wiIG11c3QgYmUgYSBub2RlLmpzIEJ1ZmZlciwgb3IgVWludDhBcnJheS4nKTtcbiAgICB9XG4gICAgY29uc3Qgb2JqID0gY3J5cHRvLmNyZWF0ZVB1YmxpY0tleSh7XG4gICAgICAgIGZvcm1hdDogJ2p3aycsXG4gICAgICAgIGtleToge1xuICAgICAgICAgICAgY3J2OiAnRWQyNTUxOScsXG4gICAgICAgICAgICB4OiB1aW50OGFycmF5VG9TdHJpbmcoa2V5LCAnYmFzZTY0dXJsJyksXG4gICAgICAgICAgICBrdHk6ICdPS1AnXG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY3J5cHRvLnZlcmlmeShudWxsLCBtc2cgaW5zdGFuY2VvZiBVaW50OEFycmF5ID8gbXNnIDogbXNnLnN1YmFycmF5KCksIG9iaiwgc2lnKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVkMjU1MTkuanMubWFwIl0sIm5hbWVzIjpbImNyeXB0byIsImNvbmNhdCIsInVpbnQ4YXJyYXlDb25jYXQiLCJmcm9tU3RyaW5nIiwidWludDhhcnJheUZyb21TdHJpbmciLCJ0b1N0cmluZyIsInVpbnQ4YXJyYXlUb1N0cmluZyIsImtleXBhaXIiLCJnZW5lcmF0ZUtleVBhaXJTeW5jIiwiUFVCTElDX0tFWV9CWVRFX0xFTkdUSCIsIlBSSVZBVEVfS0VZX0JZVEVfTEVOR1RIIiwiS0VZU19CWVRFX0xFTkdUSCIsIlNJR05BVFVSRV9CWVRFX0xFTkdUSCIsInB1YmxpY0tleUxlbmd0aCIsInByaXZhdGVLZXlMZW5ndGgiLCJkZXJpdmVQdWJsaWNLZXkiLCJwcml2YXRlS2V5Iiwia2V5T2JqZWN0IiwiY3JlYXRlUHJpdmF0ZUtleSIsImZvcm1hdCIsImtleSIsImNydiIsIngiLCJkIiwia3R5IiwiandrIiwiZXhwb3J0IiwiRXJyb3IiLCJnZW5lcmF0ZUtleSIsInB1YmxpY0tleUVuY29kaW5nIiwidHlwZSIsInByaXZhdGVLZXlFbmNvZGluZyIsInByaXZhdGVLZXlSYXciLCJwdWJsaWNLZXlSYXciLCJieXRlTGVuZ3RoIiwicHVibGljS2V5IiwiZ2VuZXJhdGVLZXlGcm9tU2VlZCIsInNlZWQiLCJsZW5ndGgiLCJUeXBlRXJyb3IiLCJVaW50OEFycmF5IiwiaGFzaEFuZFNpZ24iLCJtc2ciLCJzdWJhcnJheSIsIm9iaiIsInNpZ24iLCJoYXNoQW5kVmVyaWZ5Iiwic2lnIiwiY3JlYXRlUHVibGljS2V5IiwidmVyaWZ5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/ed25519.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/ephemeral-keys.js":
/*!*********************************************************************!*\
!*** ./node_modules/@libp2p/crypto/dist/src/keys/ephemeral-keys.js ***!
\*********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ecdh_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ecdh.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/ecdh.js\");\n\n/**\n * Generates an ephemeral public key and returns a function that will compute\n * the shared secret key.\n *\n * Focuses only on ECDH now, but can be made more general in the future.\n */ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_ecdh_js__WEBPACK_IMPORTED_MODULE_0__.generateEphmeralKeyPair); //# sourceMappingURL=ephemeral-keys.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMva2V5cy9lcGhlbWVyYWwta2V5cy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFvRDtBQUNwRDs7Ozs7Q0FLQyxHQUNELGlFQUFlQSw2REFBdUJBLEVBQUMsQ0FDdkMsMENBQTBDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMva2V5cy9lcGhlbWVyYWwta2V5cy5qcz9lYWIwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdlbmVyYXRlRXBobWVyYWxLZXlQYWlyIH0gZnJvbSAnLi9lY2RoLmpzJztcbi8qKlxuICogR2VuZXJhdGVzIGFuIGVwaGVtZXJhbCBwdWJsaWMga2V5IGFuZCByZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCB3aWxsIGNvbXB1dGVcbiAqIHRoZSBzaGFyZWQgc2VjcmV0IGtleS5cbiAqXG4gKiBGb2N1c2VzIG9ubHkgb24gRUNESCBub3csIGJ1dCBjYW4gYmUgbWFkZSBtb3JlIGdlbmVyYWwgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZ2VuZXJhdGVFcGhtZXJhbEtleVBhaXI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1lcGhlbWVyYWwta2V5cy5qcy5tYXAiXSwibmFtZXMiOlsiZ2VuZXJhdGVFcGhtZXJhbEtleVBhaXIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/ephemeral-keys.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/exporter.js":
/*!***************************************************************!*\
!*** ./node_modules/@libp2p/crypto/dist/src/keys/exporter.js ***!
\***************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ exporter: () => (/* binding */ exporter)\n/* harmony export */ });\n/* harmony import */ var multiformats_bases_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! multiformats/bases/base64 */ \"(ssr)/./node_modules/multiformats/dist/src/bases/base64.js\");\n/* harmony import */ var _ciphers_aes_gcm_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ciphers/aes-gcm.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/ciphers/aes-gcm.js\");\n\n\n/**\n * Exports the given PrivateKey as a base64 encoded string.\n * The PrivateKey is encrypted via a password derived PBKDF2 key\n * leveraging the aes-gcm cipher algorithm.\n */ async function exporter(privateKey, password) {\n const cipher = _ciphers_aes_gcm_js__WEBPACK_IMPORTED_MODULE_1__.create();\n const encryptedKey = await cipher.encrypt(privateKey, password);\n return multiformats_bases_base64__WEBPACK_IMPORTED_MODULE_0__.base64.encode(encryptedKey);\n} //# sourceMappingURL=exporter.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMva2V5cy9leHBvcnRlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBbUQ7QUFDRjtBQUNqRDs7OztDQUlDLEdBQ00sZUFBZUUsU0FBU0MsVUFBVSxFQUFFQyxRQUFRO0lBQy9DLE1BQU1DLFNBQVNKLHVEQUFjO0lBQzdCLE1BQU1NLGVBQWUsTUFBTUYsT0FBT0csT0FBTyxDQUFDTCxZQUFZQztJQUN0RCxPQUFPSiw2REFBTUEsQ0FBQ1MsTUFBTSxDQUFDRjtBQUN6QixFQUNBLG9DQUFvQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvY3J5cHRvL2Rpc3Qvc3JjL2tleXMvZXhwb3J0ZXIuanM/MDBiNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBiYXNlNjQgfSBmcm9tICdtdWx0aWZvcm1hdHMvYmFzZXMvYmFzZTY0JztcbmltcG9ydCAqIGFzIGNpcGhlcnMgZnJvbSAnLi4vY2lwaGVycy9hZXMtZ2NtLmpzJztcbi8qKlxuICogRXhwb3J0cyB0aGUgZ2l2ZW4gUHJpdmF0ZUtleSBhcyBhIGJhc2U2NCBlbmNvZGVkIHN0cmluZy5cbiAqIFRoZSBQcml2YXRlS2V5IGlzIGVuY3J5cHRlZCB2aWEgYSBwYXNzd29yZCBkZXJpdmVkIFBCS0RGMiBrZXlcbiAqIGxldmVyYWdpbmcgdGhlIGFlcy1nY20gY2lwaGVyIGFsZ29yaXRobS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4cG9ydGVyKHByaXZhdGVLZXksIHBhc3N3b3JkKSB7XG4gICAgY29uc3QgY2lwaGVyID0gY2lwaGVycy5jcmVhdGUoKTtcbiAgICBjb25zdCBlbmNyeXB0ZWRLZXkgPSBhd2FpdCBjaXBoZXIuZW5jcnlwdChwcml2YXRlS2V5LCBwYXNzd29yZCk7XG4gICAgcmV0dXJuIGJhc2U2NC5lbmNvZGUoZW5jcnlwdGVkS2V5KTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWV4cG9ydGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJiYXNlNjQiLCJjaXBoZXJzIiwiZXhwb3J0ZXIiLCJwcml2YXRlS2V5IiwicGFzc3dvcmQiLCJjaXBoZXIiLCJjcmVhdGUiLCJlbmNyeXB0ZWRLZXkiLCJlbmNyeXB0IiwiZW5jb2RlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/exporter.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/importer.js":
/*!***************************************************************!*\
!*** ./node_modules/@libp2p/crypto/dist/src/keys/importer.js ***!
\***************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ importer: () => (/* binding */ importer)\n/* harmony export */ });\n/* harmony import */ var multiformats_bases_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! multiformats/bases/base64 */ \"(ssr)/./node_modules/multiformats/dist/src/bases/base64.js\");\n/* harmony import */ var _ciphers_aes_gcm_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ciphers/aes-gcm.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/ciphers/aes-gcm.js\");\n\n\n/**\n * Attempts to decrypt a base64 encoded PrivateKey string\n * with the given password. The privateKey must have been exported\n * using the same password and underlying cipher (aes-gcm)\n */ async function importer(privateKey, password) {\n const encryptedKey = multiformats_bases_base64__WEBPACK_IMPORTED_MODULE_0__.base64.decode(privateKey);\n const cipher = _ciphers_aes_gcm_js__WEBPACK_IMPORTED_MODULE_1__.create();\n return cipher.decrypt(encryptedKey, password);\n} //# sourceMappingURL=importer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMva2V5cy9pbXBvcnRlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBbUQ7QUFDRjtBQUNqRDs7OztDQUlDLEdBQ00sZUFBZUUsU0FBU0MsVUFBVSxFQUFFQyxRQUFRO0lBQy9DLE1BQU1DLGVBQWVMLDZEQUFNQSxDQUFDTSxNQUFNLENBQUNIO0lBQ25DLE1BQU1JLFNBQVNOLHVEQUFjO0lBQzdCLE9BQU9NLE9BQU9FLE9BQU8sQ0FBQ0osY0FBY0Q7QUFDeEMsRUFDQSxvQ0FBb0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL2NyeXB0by9kaXN0L3NyYy9rZXlzL2ltcG9ydGVyLmpzPzdlZmIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmFzZTY0IH0gZnJvbSAnbXVsdGlmb3JtYXRzL2Jhc2VzL2Jhc2U2NCc7XG5pbXBvcnQgKiBhcyBjaXBoZXJzIGZyb20gJy4uL2NpcGhlcnMvYWVzLWdjbS5qcyc7XG4vKipcbiAqIEF0dGVtcHRzIHRvIGRlY3J5cHQgYSBiYXNlNjQgZW5jb2RlZCBQcml2YXRlS2V5IHN0cmluZ1xuICogd2l0aCB0aGUgZ2l2ZW4gcGFzc3dvcmQuIFRoZSBwcml2YXRlS2V5IG11c3QgaGF2ZSBiZWVuIGV4cG9ydGVkXG4gKiB1c2luZyB0aGUgc2FtZSBwYXNzd29yZCBhbmQgdW5kZXJseWluZyBjaXBoZXIgKGFlcy1nY20pXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbXBvcnRlcihwcml2YXRlS2V5LCBwYXNzd29yZCkge1xuICAgIGNvbnN0IGVuY3J5cHRlZEtleSA9IGJhc2U2NC5kZWNvZGUocHJpdmF0ZUtleSk7XG4gICAgY29uc3QgY2lwaGVyID0gY2lwaGVycy5jcmVhdGUoKTtcbiAgICByZXR1cm4gY2lwaGVyLmRlY3J5cHQoZW5jcnlwdGVkS2V5LCBwYXNzd29yZCk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbXBvcnRlci5qcy5tYXAiXSwibmFtZXMiOlsiYmFzZTY0IiwiY2lwaGVycyIsImltcG9ydGVyIiwicHJpdmF0ZUtleSIsInBhc3N3b3JkIiwiZW5jcnlwdGVkS2V5IiwiZGVjb2RlIiwiY2lwaGVyIiwiY3JlYXRlIiwiZGVjcnlwdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/importer.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/index.js":
/*!************************************************************!*\
!*** ./node_modules/@libp2p/crypto/dist/src/keys/index.js ***!
\************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Ed25519PrivateKey: () => (/* reexport safe */ _ed25519_class_js__WEBPACK_IMPORTED_MODULE_4__.Ed25519PrivateKey),\n/* harmony export */ Ed25519PublicKey: () => (/* reexport safe */ _ed25519_class_js__WEBPACK_IMPORTED_MODULE_4__.Ed25519PublicKey),\n/* harmony export */ MAX_RSA_KEY_SIZE: () => (/* reexport safe */ _rsa_class_js__WEBPACK_IMPORTED_MODULE_3__.MAX_RSA_KEY_SIZE),\n/* harmony export */ RsaPrivateKey: () => (/* reexport safe */ _rsa_class_js__WEBPACK_IMPORTED_MODULE_3__.RsaPrivateKey),\n/* harmony export */ RsaPublicKey: () => (/* reexport safe */ _rsa_class_js__WEBPACK_IMPORTED_MODULE_3__.RsaPublicKey),\n/* harmony export */ Secp256k1PrivateKey: () => (/* reexport safe */ _secp256k1_class_js__WEBPACK_IMPORTED_MODULE_5__.Secp256k1PrivateKey),\n/* harmony export */ Secp256k1PublicKey: () => (/* reexport safe */ _secp256k1_class_js__WEBPACK_IMPORTED_MODULE_5__.Secp256k1PublicKey),\n/* harmony export */ generateEphemeralKeyPair: () => (/* reexport safe */ _ephemeral_keys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ generateKeyPair: () => (/* binding */ generateKeyPair),\n/* harmony export */ generateKeyPairFromSeed: () => (/* binding */ generateKeyPairFromSeed),\n/* harmony export */ importKey: () => (/* binding */ importKey),\n/* harmony export */ keyStretcher: () => (/* reexport safe */ _key_stretcher_js__WEBPACK_IMPORTED_MODULE_0__.keyStretcher),\n/* harmony export */ keysPBM: () => (/* reexport module object */ _keys_js__WEBPACK_IMPORTED_MODULE_2__),\n/* harmony export */ marshalPrivateKey: () => (/* binding */ marshalPrivateKey),\n/* harmony export */ marshalPublicKey: () => (/* binding */ marshalPublicKey),\n/* harmony export */ supportedKeys: () => (/* binding */ supportedKeys),\n/* harmony export */ unmarshalPrivateKey: () => (/* binding */ unmarshalPrivateKey),\n/* harmony export */ unmarshalPublicKey: () => (/* binding */ unmarshalPublicKey)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var _ed25519_class_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ed25519-class.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/ed25519-class.js\");\n/* harmony import */ var _ephemeral_keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ephemeral-keys.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/ephemeral-keys.js\");\n/* harmony import */ var _importer_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./importer.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/importer.js\");\n/* harmony import */ var _key_stretcher_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./key-stretcher.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/key-stretcher.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keys.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/keys.js\");\n/* harmony import */ var _rsa_class_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rsa-class.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/rsa-class.js\");\n/* harmony import */ var _rsa_utils_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./rsa-utils.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/rsa-utils.js\");\n/* harmony import */ var _secp256k1_class_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./secp256k1-class.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/secp256k1-class.js\");\n/**\n * @packageDocumentation\n *\n * **Supported Key Types**\n *\n * The {@link generateKeyPair}, {@link marshalPublicKey}, and {@link marshalPrivateKey} functions accept a string `type` argument.\n *\n * Currently the `'RSA'`, `'ed25519'`, and `secp256k1` types are supported, although ed25519 and secp256k1 keys support only signing and verification of messages.\n *\n * For encryption / decryption support, RSA keys should be used.\n */ \n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst supportedKeys = {\n rsa: _rsa_class_js__WEBPACK_IMPORTED_MODULE_3__,\n ed25519: _ed25519_class_js__WEBPACK_IMPORTED_MODULE_4__,\n secp256k1: _secp256k1_class_js__WEBPACK_IMPORTED_MODULE_5__\n};\nfunction unsupportedKey(type) {\n const supported = Object.keys(supportedKeys).join(\" / \");\n return new _libp2p_interface__WEBPACK_IMPORTED_MODULE_6__.CodeError(`invalid or unsupported key type ${type}. Must be ${supported}`, \"ERR_UNSUPPORTED_KEY_TYPE\");\n}\nfunction typeToKey(type) {\n type = type.toLowerCase();\n if (type === \"rsa\" || type === \"ed25519\" || type === \"secp256k1\") {\n return supportedKeys[type];\n }\n throw unsupportedKey(type);\n}\n/**\n * Generates a keypair of the given type and bitsize\n *\n * @param type\n * @param bits - Minimum of 1024\n */ async function generateKeyPair(type, bits) {\n return typeToKey(type).generateKeyPair(bits ?? 2048);\n}\n/**\n * Generates a keypair of the given type and bitsize.\n *\n * Seed is a 32 byte uint8array\n */ async function generateKeyPairFromSeed(type, seed, bits) {\n if (type.toLowerCase() !== \"ed25519\") {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_6__.CodeError(\"Seed key derivation is unimplemented for RSA or secp256k1\", \"ERR_UNSUPPORTED_KEY_DERIVATION_TYPE\");\n }\n return _ed25519_class_js__WEBPACK_IMPORTED_MODULE_4__.generateKeyPairFromSeed(seed);\n}\n/**\n * Converts a protobuf serialized public key into its representative object\n */ function unmarshalPublicKey(buf) {\n const decoded = _keys_js__WEBPACK_IMPORTED_MODULE_2__.PublicKey.decode(buf);\n const data = decoded.Data ?? new Uint8Array();\n switch(decoded.Type){\n case _keys_js__WEBPACK_IMPORTED_MODULE_2__.KeyType.RSA:\n return supportedKeys.rsa.unmarshalRsaPublicKey(data);\n case _keys_js__WEBPACK_IMPORTED_MODULE_2__.KeyType.Ed25519:\n return supportedKeys.ed25519.unmarshalEd25519PublicKey(data);\n case _keys_js__WEBPACK_IMPORTED_MODULE_2__.KeyType.Secp256k1:\n return supportedKeys.secp256k1.unmarshalSecp256k1PublicKey(data);\n default:\n throw unsupportedKey(decoded.Type ?? \"unknown\");\n }\n}\n/**\n * Converts a public key object into a protobuf serialized public key\n */ function marshalPublicKey(key, type) {\n type = (type ?? \"rsa\").toLowerCase();\n typeToKey(type); // check type\n return key.bytes;\n}\n/**\n * Converts a protobuf serialized private key into its representative object\n */ async function unmarshalPrivateKey(buf) {\n const decoded = _keys_js__WEBPACK_IMPORTED_MODULE_2__.PrivateKey.decode(buf);\n const data = decoded.Data ?? new Uint8Array();\n switch(decoded.Type){\n case _keys_js__WEBPACK_IMPORTED_MODULE_2__.KeyType.RSA:\n return supportedKeys.rsa.unmarshalRsaPrivateKey(data);\n case _keys_js__WEBPACK_IMPORTED_MODULE_2__.KeyType.Ed25519:\n return supportedKeys.ed25519.unmarshalEd25519PrivateKey(data);\n case _keys_js__WEBPACK_IMPORTED_MODULE_2__.KeyType.Secp256k1:\n return supportedKeys.secp256k1.unmarshalSecp256k1PrivateKey(data);\n default:\n throw unsupportedKey(decoded.Type ?? \"RSA\");\n }\n}\n/**\n * Converts a private key object into a protobuf serialized private key\n */ function marshalPrivateKey(key, type) {\n type = (type ?? \"rsa\").toLowerCase();\n typeToKey(type); // check type\n return key.bytes;\n}\n/**\n * Converts an exported private key into its representative object.\n *\n * Supported formats are 'pem' (RSA only) and 'libp2p-key'.\n */ async function importKey(encryptedKey, password) {\n try {\n const key = await (0,_importer_js__WEBPACK_IMPORTED_MODULE_7__.importer)(encryptedKey, password);\n return await unmarshalPrivateKey(key);\n } catch (_) {\n // Ignore and try the old pem decrypt\n }\n if (!encryptedKey.includes(\"BEGIN\")) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_6__.CodeError(\"Encrypted key was not a libp2p-key or a PEM file\", \"ERR_INVALID_IMPORT_FORMAT\");\n }\n return (0,_rsa_utils_js__WEBPACK_IMPORTED_MODULE_8__.importFromPem)(encryptedKey, password);\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMva2V5cy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7OztDQVVDLEdBQzZDO0FBQ0E7QUFDYTtBQUNsQjtBQUNTO0FBQ2I7QUFDQztBQUNTO0FBQ0c7QUFDMUI7QUFDWTtBQUNqQjtBQUM0RDtBQUNOO0FBQ007QUFDeEUsTUFBTWdCLGdCQUFnQjtJQUN6QkMsS0FBS1gsMENBQUdBO0lBQ1JZLFNBQVNqQiw4Q0FBT0E7SUFDaEJrQixXQUFXWCxnREFBU0E7QUFDeEIsRUFBRTtBQUNGLFNBQVNZLGVBQWVDLElBQUk7SUFDeEIsTUFBTUMsWUFBWUMsT0FBT0MsSUFBSSxDQUFDUixlQUFlUyxJQUFJLENBQUM7SUFDbEQsT0FBTyxJQUFJekIsd0RBQVNBLENBQUMsQ0FBQyxnQ0FBZ0MsRUFBRXFCLEtBQUssVUFBVSxFQUFFQyxVQUFVLENBQUMsRUFBRTtBQUMxRjtBQUNBLFNBQVNJLFVBQVVMLElBQUk7SUFDbkJBLE9BQU9BLEtBQUtNLFdBQVc7SUFDdkIsSUFBSU4sU0FBUyxTQUFTQSxTQUFTLGFBQWFBLFNBQVMsYUFBYTtRQUM5RCxPQUFPTCxhQUFhLENBQUNLLEtBQUs7SUFDOUI7SUFDQSxNQUFNRCxlQUFlQztBQUN6QjtBQUNBOzs7OztDQUtDLEdBQ00sZUFBZU8sZ0JBQWdCUCxJQUFJLEVBQUVRLElBQUk7SUFDNUMsT0FBT0gsVUFBVUwsTUFBTU8sZUFBZSxDQUFDQyxRQUFRO0FBQ25EO0FBQ0E7Ozs7Q0FJQyxHQUNNLGVBQWVDLHdCQUF3QlQsSUFBSSxFQUFFVSxJQUFJLEVBQUVGLElBQUk7SUFDMUQsSUFBSVIsS0FBS00sV0FBVyxPQUFPLFdBQVc7UUFDbEMsTUFBTSxJQUFJM0Isd0RBQVNBLENBQUMsNkRBQTZEO0lBQ3JGO0lBQ0EsT0FBT0Msc0VBQStCLENBQUM4QjtBQUMzQztBQUNBOztDQUVDLEdBQ00sU0FBU0MsbUJBQW1CQyxHQUFHO0lBQ2xDLE1BQU1DLFVBQVU3QiwrQ0FBaUIsQ0FBQytCLE1BQU0sQ0FBQ0g7SUFDekMsTUFBTUksT0FBT0gsUUFBUUksSUFBSSxJQUFJLElBQUlDO0lBQ2pDLE9BQVFMLFFBQVFNLElBQUk7UUFDaEIsS0FBS25DLDZDQUFlLENBQUNDLEdBQUc7WUFDcEIsT0FBT1UsY0FBY0MsR0FBRyxDQUFDeUIscUJBQXFCLENBQUNMO1FBQ25ELEtBQUtoQyw2Q0FBZSxDQUFDSixPQUFPO1lBQ3hCLE9BQU9lLGNBQWNFLE9BQU8sQ0FBQ3lCLHlCQUF5QixDQUFDTjtRQUMzRCxLQUFLaEMsNkNBQWUsQ0FBQ0csU0FBUztZQUMxQixPQUFPUSxjQUFjRyxTQUFTLENBQUN5QiwyQkFBMkIsQ0FBQ1A7UUFDL0Q7WUFDSSxNQUFNakIsZUFBZWMsUUFBUU0sSUFBSSxJQUFJO0lBQzdDO0FBQ0o7QUFDQTs7Q0FFQyxHQUNNLFNBQVNLLGlCQUFpQkMsR0FBRyxFQUFFekIsSUFBSTtJQUN0Q0EsT0FBTyxDQUFDQSxRQUFRLEtBQUksRUFBR00sV0FBVztJQUNsQ0QsVUFBVUwsT0FBTyxhQUFhO0lBQzlCLE9BQU95QixJQUFJQyxLQUFLO0FBQ3BCO0FBQ0E7O0NBRUMsR0FDTSxlQUFlQyxvQkFBb0JmLEdBQUc7SUFDekMsTUFBTUMsVUFBVTdCLGdEQUFrQixDQUFDK0IsTUFBTSxDQUFDSDtJQUMxQyxNQUFNSSxPQUFPSCxRQUFRSSxJQUFJLElBQUksSUFBSUM7SUFDakMsT0FBUUwsUUFBUU0sSUFBSTtRQUNoQixLQUFLbkMsNkNBQWUsQ0FBQ0MsR0FBRztZQUNwQixPQUFPVSxjQUFjQyxHQUFHLENBQUNpQyxzQkFBc0IsQ0FBQ2I7UUFDcEQsS0FBS2hDLDZDQUFlLENBQUNKLE9BQU87WUFDeEIsT0FBT2UsY0FBY0UsT0FBTyxDQUFDaUMsMEJBQTBCLENBQUNkO1FBQzVELEtBQUtoQyw2Q0FBZSxDQUFDRyxTQUFTO1lBQzFCLE9BQU9RLGNBQWNHLFNBQVMsQ0FBQ2lDLDRCQUE0QixDQUFDZjtRQUNoRTtZQUNJLE1BQU1qQixlQUFlYyxRQUFRTSxJQUFJLElBQUk7SUFDN0M7QUFDSjtBQUNBOztDQUVDLEdBQ00sU0FBU2Esa0JBQWtCUCxHQUFHLEVBQUV6QixJQUFJO0lBQ3ZDQSxPQUFPLENBQUNBLFFBQVEsS0FBSSxFQUFHTSxXQUFXO0lBQ2xDRCxVQUFVTCxPQUFPLGFBQWE7SUFDOUIsT0FBT3lCLElBQUlDLEtBQUs7QUFDcEI7QUFDQTs7OztDQUlDLEdBQ00sZUFBZU8sVUFBVUMsWUFBWSxFQUFFQyxRQUFRO0lBQ2xELElBQUk7UUFDQSxNQUFNVixNQUFNLE1BQU0zQyxzREFBUUEsQ0FBQ29ELGNBQWNDO1FBQ3pDLE9BQU8sTUFBTVIsb0JBQW9CRjtJQUNyQyxFQUNBLE9BQU9XLEdBQUc7SUFDTixxQ0FBcUM7SUFDekM7SUFDQSxJQUFJLENBQUNGLGFBQWFHLFFBQVEsQ0FBQyxVQUFVO1FBQ2pDLE1BQU0sSUFBSTFELHdEQUFTQSxDQUFDLG9EQUFvRDtJQUM1RTtJQUNBLE9BQU9PLDREQUFhQSxDQUFDZ0QsY0FBY0M7QUFDdkMsRUFDQSxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL2NyeXB0by9kaXN0L3NyYy9rZXlzL2luZGV4LmpzPzU2ODYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiAqKlN1cHBvcnRlZCBLZXkgVHlwZXMqKlxuICpcbiAqIFRoZSB7QGxpbmsgZ2VuZXJhdGVLZXlQYWlyfSwge0BsaW5rIG1hcnNoYWxQdWJsaWNLZXl9LCBhbmQge0BsaW5rIG1hcnNoYWxQcml2YXRlS2V5fSBmdW5jdGlvbnMgYWNjZXB0IGEgc3RyaW5nIGB0eXBlYCBhcmd1bWVudC5cbiAqXG4gKiBDdXJyZW50bHkgdGhlIGAnUlNBJ2AsIGAnZWQyNTUxOSdgLCBhbmQgYHNlY3AyNTZrMWAgdHlwZXMgYXJlIHN1cHBvcnRlZCwgYWx0aG91Z2ggZWQyNTUxOSBhbmQgc2VjcDI1NmsxIGtleXMgc3VwcG9ydCBvbmx5IHNpZ25pbmcgYW5kIHZlcmlmaWNhdGlvbiBvZiBtZXNzYWdlcy5cbiAqXG4gKiBGb3IgZW5jcnlwdGlvbiAvIGRlY3J5cHRpb24gc3VwcG9ydCwgUlNBIGtleXMgc2hvdWxkIGJlIHVzZWQuXG4gKi9cbmltcG9ydCB7IENvZGVFcnJvciB9IGZyb20gJ0BsaWJwMnAvaW50ZXJmYWNlJztcbmltcG9ydCAqIGFzIEVkMjU1MTkgZnJvbSAnLi9lZDI1NTE5LWNsYXNzLmpzJztcbmltcG9ydCBnZW5lcmF0ZUVwaGVtZXJhbEtleVBhaXIgZnJvbSAnLi9lcGhlbWVyYWwta2V5cy5qcyc7XG5pbXBvcnQgeyBpbXBvcnRlciB9IGZyb20gJy4vaW1wb3J0ZXIuanMnO1xuaW1wb3J0IHsga2V5U3RyZXRjaGVyIH0gZnJvbSAnLi9rZXktc3RyZXRjaGVyLmpzJztcbmltcG9ydCAqIGFzIGtleXNQQk0gZnJvbSAnLi9rZXlzLmpzJztcbmltcG9ydCAqIGFzIFJTQSBmcm9tICcuL3JzYS1jbGFzcy5qcyc7XG5pbXBvcnQgeyBpbXBvcnRGcm9tUGVtIH0gZnJvbSAnLi9yc2EtdXRpbHMuanMnO1xuaW1wb3J0ICogYXMgU2VjcDI1NmsxIGZyb20gJy4vc2VjcDI1NmsxLWNsYXNzLmpzJztcbmV4cG9ydCB7IGtleVN0cmV0Y2hlciB9O1xuZXhwb3J0IHsgZ2VuZXJhdGVFcGhlbWVyYWxLZXlQYWlyIH07XG5leHBvcnQgeyBrZXlzUEJNIH07XG5leHBvcnQgeyBSc2FQcml2YXRlS2V5LCBSc2FQdWJsaWNLZXksIE1BWF9SU0FfS0VZX1NJWkUgfSBmcm9tICcuL3JzYS1jbGFzcy5qcyc7XG5leHBvcnQgeyBFZDI1NTE5UHJpdmF0ZUtleSwgRWQyNTUxOVB1YmxpY0tleSB9IGZyb20gJy4vZWQyNTUxOS1jbGFzcy5qcyc7XG5leHBvcnQgeyBTZWNwMjU2azFQcml2YXRlS2V5LCBTZWNwMjU2azFQdWJsaWNLZXkgfSBmcm9tICcuL3NlY3AyNTZrMS1jbGFzcy5qcyc7XG5leHBvcnQgY29uc3Qgc3VwcG9ydGVkS2V5cyA9IHtcbiAgICByc2E6IFJTQSxcbiAgICBlZDI1NTE5OiBFZDI1NTE5LFxuICAgIHNlY3AyNTZrMTogU2VjcDI1NmsxXG59O1xuZnVuY3Rpb24gdW5zdXBwb3J0ZWRLZXkodHlwZSkge1xuICAgIGNvbnN0IHN1cHBvcnRlZCA9IE9iamVjdC5rZXlzKHN1cHBvcnRlZEtleXMpLmpvaW4oJyAvICcpO1xuICAgIHJldHVybiBuZXcgQ29kZUVycm9yKGBpbnZhbGlkIG9yIHVuc3VwcG9ydGVkIGtleSB0eXBlICR7dHlwZX0uIE11c3QgYmUgJHtzdXBwb3J0ZWR9YCwgJ0VSUl9VTlNVUFBPUlRFRF9LRVlfVFlQRScpO1xufVxuZnVuY3Rpb24gdHlwZVRvS2V5KHR5cGUpIHtcbiAgICB0eXBlID0gdHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmICh0eXBlID09PSAncnNhJyB8fCB0eXBlID09PSAnZWQyNTUxOScgfHwgdHlwZSA9PT0gJ3NlY3AyNTZrMScpIHtcbiAgICAgICAgcmV0dXJuIHN1cHBvcnRlZEtleXNbdHlwZV07XG4gICAgfVxuICAgIHRocm93IHVuc3VwcG9ydGVkS2V5KHR5cGUpO1xufVxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBrZXlwYWlyIG9mIHRoZSBnaXZlbiB0eXBlIGFuZCBiaXRzaXplXG4gKlxuICogQHBhcmFtIHR5cGVcbiAqIEBwYXJhbSBiaXRzIC0gIE1pbmltdW0gb2YgMTAyNFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyKHR5cGUsIGJpdHMpIHtcbiAgICByZXR1cm4gdHlwZVRvS2V5KHR5cGUpLmdlbmVyYXRlS2V5UGFpcihiaXRzID8/IDIwNDgpO1xufVxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBrZXlwYWlyIG9mIHRoZSBnaXZlbiB0eXBlIGFuZCBiaXRzaXplLlxuICpcbiAqIFNlZWQgaXMgYSAzMiBieXRlIHVpbnQ4YXJyYXlcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlS2V5UGFpckZyb21TZWVkKHR5cGUsIHNlZWQsIGJpdHMpIHtcbiAgICBpZiAodHlwZS50b0xvd2VyQ2FzZSgpICE9PSAnZWQyNTUxOScpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcignU2VlZCBrZXkgZGVyaXZhdGlvbiBpcyB1bmltcGxlbWVudGVkIGZvciBSU0Egb3Igc2VjcDI1NmsxJywgJ0VSUl9VTlNVUFBPUlRFRF9LRVlfREVSSVZBVElPTl9UWVBFJyk7XG4gICAgfVxuICAgIHJldHVybiBFZDI1NTE5LmdlbmVyYXRlS2V5UGFpckZyb21TZWVkKHNlZWQpO1xufVxuLyoqXG4gKiBDb252ZXJ0cyBhIHByb3RvYnVmIHNlcmlhbGl6ZWQgcHVibGljIGtleSBpbnRvIGl0cyByZXByZXNlbnRhdGl2ZSBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVubWFyc2hhbFB1YmxpY0tleShidWYpIHtcbiAgICBjb25zdCBkZWNvZGVkID0ga2V5c1BCTS5QdWJsaWNLZXkuZGVjb2RlKGJ1Zik7XG4gICAgY29uc3QgZGF0YSA9IGRlY29kZWQuRGF0YSA/PyBuZXcgVWludDhBcnJheSgpO1xuICAgIHN3aXRjaCAoZGVjb2RlZC5UeXBlKSB7XG4gICAgICAgIGNhc2Uga2V5c1BCTS5LZXlUeXBlLlJTQTpcbiAgICAgICAgICAgIHJldHVybiBzdXBwb3J0ZWRLZXlzLnJzYS51bm1hcnNoYWxSc2FQdWJsaWNLZXkoZGF0YSk7XG4gICAgICAgIGNhc2Uga2V5c1BCTS5LZXlUeXBlLkVkMjU1MTk6XG4gICAgICAgICAgICByZXR1cm4gc3VwcG9ydGVkS2V5cy5lZDI1NTE5LnVubWFyc2hhbEVkMjU1MTlQdWJsaWNLZXkoZGF0YSk7XG4gICAgICAgIGNhc2Uga2V5c1BCTS5LZXlUeXBlLlNlY3AyNTZrMTpcbiAgICAgICAgICAgIHJldHVybiBzdXBwb3J0ZWRLZXlzLnNlY3AyNTZrMS51bm1hcnNoYWxTZWNwMjU2azFQdWJsaWNLZXkoZGF0YSk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyB1bnN1cHBvcnRlZEtleShkZWNvZGVkLlR5cGUgPz8gJ3Vua25vd24nKTtcbiAgICB9XG59XG4vKipcbiAqIENvbnZlcnRzIGEgcHVibGljIGtleSBvYmplY3QgaW50byBhIHByb3RvYnVmIHNlcmlhbGl6ZWQgcHVibGljIGtleVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFyc2hhbFB1YmxpY0tleShrZXksIHR5cGUpIHtcbiAgICB0eXBlID0gKHR5cGUgPz8gJ3JzYScpLnRvTG93ZXJDYXNlKCk7XG4gICAgdHlwZVRvS2V5KHR5cGUpOyAvLyBjaGVjayB0eXBlXG4gICAgcmV0dXJuIGtleS5ieXRlcztcbn1cbi8qKlxuICogQ29udmVydHMgYSBwcm90b2J1ZiBzZXJpYWxpemVkIHByaXZhdGUga2V5IGludG8gaXRzIHJlcHJlc2VudGF0aXZlIG9iamVjdFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdW5tYXJzaGFsUHJpdmF0ZUtleShidWYpIHtcbiAgICBjb25zdCBkZWNvZGVkID0ga2V5c1BCTS5Qcml2YXRlS2V5LmRlY29kZShidWYpO1xuICAgIGNvbnN0IGRhdGEgPSBkZWNvZGVkLkRhdGEgPz8gbmV3IFVpbnQ4QXJyYXkoKTtcbiAgICBzd2l0Y2ggKGRlY29kZWQuVHlwZSkge1xuICAgICAgICBjYXNlIGtleXNQQk0uS2V5VHlwZS5SU0E6XG4gICAgICAgICAgICByZXR1cm4gc3VwcG9ydGVkS2V5cy5yc2EudW5tYXJzaGFsUnNhUHJpdmF0ZUtleShkYXRhKTtcbiAgICAgICAgY2FzZSBrZXlzUEJNLktleVR5cGUuRWQyNTUxOTpcbiAgICAgICAgICAgIHJldHVybiBzdXBwb3J0ZWRLZXlzLmVkMjU1MTkudW5tYXJzaGFsRWQyNTUxOVByaXZhdGVLZXkoZGF0YSk7XG4gICAgICAgIGNhc2Uga2V5c1BCTS5LZXlUeXBlLlNlY3AyNTZrMTpcbiAgICAgICAgICAgIHJldHVybiBzdXBwb3J0ZWRLZXlzLnNlY3AyNTZrMS51bm1hcnNoYWxTZWNwMjU2azFQcml2YXRlS2V5KGRhdGEpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgdW5zdXBwb3J0ZWRLZXkoZGVjb2RlZC5UeXBlID8/ICdSU0EnKTtcbiAgICB9XG59XG4vKipcbiAqIENvbnZlcnRzIGEgcHJpdmF0ZSBrZXkgb2JqZWN0IGludG8gYSBwcm90b2J1ZiBzZXJpYWxpemVkIHByaXZhdGUga2V5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXJzaGFsUHJpdmF0ZUtleShrZXksIHR5cGUpIHtcbiAgICB0eXBlID0gKHR5cGUgPz8gJ3JzYScpLnRvTG93ZXJDYXNlKCk7XG4gICAgdHlwZVRvS2V5KHR5cGUpOyAvLyBjaGVjayB0eXBlXG4gICAgcmV0dXJuIGtleS5ieXRlcztcbn1cbi8qKlxuICogQ29udmVydHMgYW4gZXhwb3J0ZWQgcHJpdmF0ZSBrZXkgaW50byBpdHMgcmVwcmVzZW50YXRpdmUgb2JqZWN0LlxuICpcbiAqIFN1cHBvcnRlZCBmb3JtYXRzIGFyZSAncGVtJyAoUlNBIG9ubHkpIGFuZCAnbGlicDJwLWtleScuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbXBvcnRLZXkoZW5jcnlwdGVkS2V5LCBwYXNzd29yZCkge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGF3YWl0IGltcG9ydGVyKGVuY3J5cHRlZEtleSwgcGFzc3dvcmQpO1xuICAgICAgICByZXR1cm4gYXdhaXQgdW5tYXJzaGFsUHJpdmF0ZUtleShrZXkpO1xuICAgIH1cbiAgICBjYXRjaCAoXykge1xuICAgICAgICAvLyBJZ25vcmUgYW5kIHRyeSB0aGUgb2xkIHBlbSBkZWNyeXB0XG4gICAgfVxuICAgIGlmICghZW5jcnlwdGVkS2V5LmluY2x1ZGVzKCdCRUdJTicpKSB7XG4gICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoJ0VuY3J5cHRlZCBrZXkgd2FzIG5vdCBhIGxpYnAycC1rZXkgb3IgYSBQRU0gZmlsZScsICdFUlJfSU5WQUxJRF9JTVBPUlRfRk9STUFUJyk7XG4gICAgfVxuICAgIHJldHVybiBpbXBvcnRGcm9tUGVtKGVuY3J5cHRlZEtleSwgcGFzc3dvcmQpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbIkNvZGVFcnJvciIsIkVkMjU1MTkiLCJnZW5lcmF0ZUVwaGVtZXJhbEtleVBhaXIiLCJpbXBvcnRlciIsImtleVN0cmV0Y2hlciIsImtleXNQQk0iLCJSU0EiLCJpbXBvcnRGcm9tUGVtIiwiU2VjcDI1NmsxIiwiUnNhUHJpdmF0ZUtleSIsIlJzYVB1YmxpY0tleSIsIk1BWF9SU0FfS0VZX1NJWkUiLCJFZDI1NTE5UHJpdmF0ZUtleSIsIkVkMjU1MTlQdWJsaWNLZXkiLCJTZWNwMjU2azFQcml2YXRlS2V5IiwiU2VjcDI1NmsxUHVibGljS2V5Iiwic3VwcG9ydGVkS2V5cyIsInJzYSIsImVkMjU1MTkiLCJzZWNwMjU2azEiLCJ1bnN1cHBvcnRlZEtleSIsInR5cGUiLCJzdXBwb3J0ZWQiLCJPYmplY3QiLCJrZXlzIiwiam9pbiIsInR5cGVUb0tleSIsInRvTG93ZXJDYXNlIiwiZ2VuZXJhdGVLZXlQYWlyIiwiYml0cyIsImdlbmVyYXRlS2V5UGFpckZyb21TZWVkIiwic2VlZCIsInVubWFyc2hhbFB1YmxpY0tleSIsImJ1ZiIsImRlY29kZWQiLCJQdWJsaWNLZXkiLCJkZWNvZGUiLCJkYXRhIiwiRGF0YSIsIlVpbnQ4QXJyYXkiLCJUeXBlIiwiS2V5VHlwZSIsInVubWFyc2hhbFJzYVB1YmxpY0tleSIsInVubWFyc2hhbEVkMjU1MTlQdWJsaWNLZXkiLCJ1bm1hcnNoYWxTZWNwMjU2azFQdWJsaWNLZXkiLCJtYXJzaGFsUHVibGljS2V5Iiwia2V5IiwiYnl0ZXMiLCJ1bm1hcnNoYWxQcml2YXRlS2V5IiwiUHJpdmF0ZUtleSIsInVubWFyc2hhbFJzYVByaXZhdGVLZXkiLCJ1bm1hcnNoYWxFZDI1NTE5UHJpdmF0ZUtleSIsInVubWFyc2hhbFNlY3AyNTZrMVByaXZhdGVLZXkiLCJtYXJzaGFsUHJpdmF0ZUtleSIsImltcG9ydEtleSIsImVuY3J5cHRlZEtleSIsInBhc3N3b3JkIiwiXyIsImluY2x1ZGVzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/key-stretcher.js":
/*!********************************************************************!*\
!*** ./node_modules/@libp2p/crypto/dist/src/keys/key-stretcher.js ***!
\********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ keyStretcher: () => (/* binding */ keyStretcher)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var uint8arrays_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uint8arrays/concat */ \"(ssr)/./node_modules/uint8arrays/dist/src/concat.node.js\");\n/* harmony import */ var uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uint8arrays/from-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/from-string.node.js\");\n/* harmony import */ var _hmac_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../hmac/index.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/hmac/index.js\");\n\n\n\n\nconst cipherMap = {\n \"AES-128\": {\n ivSize: 16,\n keySize: 16\n },\n \"AES-256\": {\n ivSize: 16,\n keySize: 32\n },\n Blowfish: {\n ivSize: 8,\n keySize: 32\n }\n};\n/**\n * Generates a set of keys for each party by stretching the shared key.\n * (myIV, theirIV, myCipherKey, theirCipherKey, myMACKey, theirMACKey)\n */ async function keyStretcher(cipherType, hash, secret) {\n const cipher = cipherMap[cipherType];\n if (cipher == null) {\n const allowed = Object.keys(cipherMap).join(\" / \");\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__.CodeError(`unknown cipher type '${cipherType}'. Must be ${allowed}`, \"ERR_INVALID_CIPHER_TYPE\");\n }\n if (hash == null) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__.CodeError(\"missing hash type\", \"ERR_MISSING_HASH_TYPE\");\n }\n const cipherKeySize = cipher.keySize;\n const ivSize = cipher.ivSize;\n const hmacKeySize = 20;\n const seed = (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__.fromString)(\"key expansion\");\n const resultLength = 2 * (ivSize + cipherKeySize + hmacKeySize);\n const m = await _hmac_index_js__WEBPACK_IMPORTED_MODULE_3__.create(hash, secret);\n let a = await m.digest(seed);\n const result = [];\n let j = 0;\n while(j < resultLength){\n const b = await m.digest((0,uint8arrays_concat__WEBPACK_IMPORTED_MODULE_0__.concat)([\n a,\n seed\n ]));\n let todo = b.length;\n if (j + todo > resultLength) {\n todo = resultLength - j;\n }\n result.push(b);\n j += todo;\n a = await m.digest(a);\n }\n const half = resultLength / 2;\n const resultBuffer = (0,uint8arrays_concat__WEBPACK_IMPORTED_MODULE_0__.concat)(result);\n const r1 = resultBuffer.subarray(0, half);\n const r2 = resultBuffer.subarray(half, resultLength);\n const createKey = (res)=>({\n iv: res.subarray(0, ivSize),\n cipherKey: res.subarray(ivSize, ivSize + cipherKeySize),\n macKey: res.subarray(ivSize + cipherKeySize)\n });\n return {\n k1: createKey(r1),\n k2: createKey(r2)\n };\n} //# sourceMappingURL=key-stretcher.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMva2V5cy9rZXktc3RyZXRjaGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQThDO0FBQ2tCO0FBQ2E7QUFDcEM7QUFDekMsTUFBTU0sWUFBWTtJQUNkLFdBQVc7UUFDUEMsUUFBUTtRQUNSQyxTQUFTO0lBQ2I7SUFDQSxXQUFXO1FBQ1BELFFBQVE7UUFDUkMsU0FBUztJQUNiO0lBQ0FDLFVBQVU7UUFDTkYsUUFBUTtRQUNSQyxTQUFTO0lBQ2I7QUFDSjtBQUNBOzs7Q0FHQyxHQUNNLGVBQWVFLGFBQWFDLFVBQVUsRUFBRUMsSUFBSSxFQUFFQyxNQUFNO0lBQ3ZELE1BQU1DLFNBQVNSLFNBQVMsQ0FBQ0ssV0FBVztJQUNwQyxJQUFJRyxVQUFVLE1BQU07UUFDaEIsTUFBTUMsVUFBVUMsT0FBT0MsSUFBSSxDQUFDWCxXQUFXWSxJQUFJLENBQUM7UUFDNUMsTUFBTSxJQUFJbEIsd0RBQVNBLENBQUMsQ0FBQyxxQkFBcUIsRUFBRVcsV0FBVyxXQUFXLEVBQUVJLFFBQVEsQ0FBQyxFQUFFO0lBQ25GO0lBQ0EsSUFBSUgsUUFBUSxNQUFNO1FBQ2QsTUFBTSxJQUFJWix3REFBU0EsQ0FBQyxxQkFBcUI7SUFDN0M7SUFDQSxNQUFNbUIsZ0JBQWdCTCxPQUFPTixPQUFPO0lBQ3BDLE1BQU1ELFNBQVNPLE9BQU9QLE1BQU07SUFDNUIsTUFBTWEsY0FBYztJQUNwQixNQUFNQyxPQUFPakIsbUVBQW9CQSxDQUFDO0lBQ2xDLE1BQU1rQixlQUFlLElBQUtmLENBQUFBLFNBQVNZLGdCQUFnQkMsV0FBVTtJQUM3RCxNQUFNRyxJQUFJLE1BQU1sQixrREFBVyxDQUFDTyxNQUFNQztJQUNsQyxJQUFJWSxJQUFJLE1BQU1GLEVBQUVHLE1BQU0sQ0FBQ0w7SUFDdkIsTUFBTU0sU0FBUyxFQUFFO0lBQ2pCLElBQUlDLElBQUk7SUFDUixNQUFPQSxJQUFJTixhQUFjO1FBQ3JCLE1BQU1PLElBQUksTUFBTU4sRUFBRUcsTUFBTSxDQUFDeEIsMERBQWdCQSxDQUFDO1lBQUN1QjtZQUFHSjtTQUFLO1FBQ25ELElBQUlTLE9BQU9ELEVBQUVFLE1BQU07UUFDbkIsSUFBSUgsSUFBSUUsT0FBT1IsY0FBYztZQUN6QlEsT0FBT1IsZUFBZU07UUFDMUI7UUFDQUQsT0FBT0ssSUFBSSxDQUFDSDtRQUNaRCxLQUFLRTtRQUNMTCxJQUFJLE1BQU1GLEVBQUVHLE1BQU0sQ0FBQ0Q7SUFDdkI7SUFDQSxNQUFNUSxPQUFPWCxlQUFlO0lBQzVCLE1BQU1ZLGVBQWVoQywwREFBZ0JBLENBQUN5QjtJQUN0QyxNQUFNUSxLQUFLRCxhQUFhRSxRQUFRLENBQUMsR0FBR0g7SUFDcEMsTUFBTUksS0FBS0gsYUFBYUUsUUFBUSxDQUFDSCxNQUFNWDtJQUN2QyxNQUFNZ0IsWUFBWSxDQUFDQyxNQUFTO1lBQ3hCQyxJQUFJRCxJQUFJSCxRQUFRLENBQUMsR0FBRzdCO1lBQ3BCa0MsV0FBV0YsSUFBSUgsUUFBUSxDQUFDN0IsUUFBUUEsU0FBU1k7WUFDekN1QixRQUFRSCxJQUFJSCxRQUFRLENBQUM3QixTQUFTWTtRQUNsQztJQUNBLE9BQU87UUFDSHdCLElBQUlMLFVBQVVIO1FBQ2RTLElBQUlOLFVBQVVEO0lBQ2xCO0FBQ0osRUFDQSx5Q0FBeUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL2NyeXB0by9kaXN0L3NyYy9rZXlzL2tleS1zdHJldGNoZXIuanM/ZTFjZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2RlRXJyb3IgfSBmcm9tICdAbGlicDJwL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBjb25jYXQgYXMgdWludDhBcnJheUNvbmNhdCB9IGZyb20gJ3VpbnQ4YXJyYXlzL2NvbmNhdCc7XG5pbXBvcnQgeyBmcm9tU3RyaW5nIGFzIHVpbnQ4QXJyYXlGcm9tU3RyaW5nIH0gZnJvbSAndWludDhhcnJheXMvZnJvbS1zdHJpbmcnO1xuaW1wb3J0ICogYXMgaG1hYyBmcm9tICcuLi9obWFjL2luZGV4LmpzJztcbmNvbnN0IGNpcGhlck1hcCA9IHtcbiAgICAnQUVTLTEyOCc6IHtcbiAgICAgICAgaXZTaXplOiAxNixcbiAgICAgICAga2V5U2l6ZTogMTZcbiAgICB9LFxuICAgICdBRVMtMjU2Jzoge1xuICAgICAgICBpdlNpemU6IDE2LFxuICAgICAgICBrZXlTaXplOiAzMlxuICAgIH0sXG4gICAgQmxvd2Zpc2g6IHtcbiAgICAgICAgaXZTaXplOiA4LFxuICAgICAgICBrZXlTaXplOiAzMlxuICAgIH1cbn07XG4vKipcbiAqIEdlbmVyYXRlcyBhIHNldCBvZiBrZXlzIGZvciBlYWNoIHBhcnR5IGJ5IHN0cmV0Y2hpbmcgdGhlIHNoYXJlZCBrZXkuXG4gKiAobXlJViwgdGhlaXJJViwgbXlDaXBoZXJLZXksIHRoZWlyQ2lwaGVyS2V5LCBteU1BQ0tleSwgdGhlaXJNQUNLZXkpXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBrZXlTdHJldGNoZXIoY2lwaGVyVHlwZSwgaGFzaCwgc2VjcmV0KSB7XG4gICAgY29uc3QgY2lwaGVyID0gY2lwaGVyTWFwW2NpcGhlclR5cGVdO1xuICAgIGlmIChjaXBoZXIgPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBhbGxvd2VkID0gT2JqZWN0LmtleXMoY2lwaGVyTWFwKS5qb2luKCcgLyAnKTtcbiAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcihgdW5rbm93biBjaXBoZXIgdHlwZSAnJHtjaXBoZXJUeXBlfScuIE11c3QgYmUgJHthbGxvd2VkfWAsICdFUlJfSU5WQUxJRF9DSVBIRVJfVFlQRScpO1xuICAgIH1cbiAgICBpZiAoaGFzaCA9PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoJ21pc3NpbmcgaGFzaCB0eXBlJywgJ0VSUl9NSVNTSU5HX0hBU0hfVFlQRScpO1xuICAgIH1cbiAgICBjb25zdCBjaXBoZXJLZXlTaXplID0gY2lwaGVyLmtleVNpemU7XG4gICAgY29uc3QgaXZTaXplID0gY2lwaGVyLml2U2l6ZTtcbiAgICBjb25zdCBobWFjS2V5U2l6ZSA9IDIwO1xuICAgIGNvbnN0IHNlZWQgPSB1aW50OEFycmF5RnJvbVN0cmluZygna2V5IGV4cGFuc2lvbicpO1xuICAgIGNvbnN0IHJlc3VsdExlbmd0aCA9IDIgKiAoaXZTaXplICsgY2lwaGVyS2V5U2l6ZSArIGhtYWNLZXlTaXplKTtcbiAgICBjb25zdCBtID0gYXdhaXQgaG1hYy5jcmVhdGUoaGFzaCwgc2VjcmV0KTtcbiAgICBsZXQgYSA9IGF3YWl0IG0uZGlnZXN0KHNlZWQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGxldCBqID0gMDtcbiAgICB3aGlsZSAoaiA8IHJlc3VsdExlbmd0aCkge1xuICAgICAgICBjb25zdCBiID0gYXdhaXQgbS5kaWdlc3QodWludDhBcnJheUNvbmNhdChbYSwgc2VlZF0pKTtcbiAgICAgICAgbGV0IHRvZG8gPSBiLmxlbmd0aDtcbiAgICAgICAgaWYgKGogKyB0b2RvID4gcmVzdWx0TGVuZ3RoKSB7XG4gICAgICAgICAgICB0b2RvID0gcmVzdWx0TGVuZ3RoIC0gajtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucHVzaChiKTtcbiAgICAgICAgaiArPSB0b2RvO1xuICAgICAgICBhID0gYXdhaXQgbS5kaWdlc3QoYSk7XG4gICAgfVxuICAgIGNvbnN0IGhhbGYgPSByZXN1bHRMZW5ndGggLyAyO1xuICAgIGNvbnN0IHJlc3VsdEJ1ZmZlciA9IHVpbnQ4QXJyYXlDb25jYXQocmVzdWx0KTtcbiAgICBjb25zdCByMSA9IHJlc3VsdEJ1ZmZlci5zdWJhcnJheSgwLCBoYWxmKTtcbiAgICBjb25zdCByMiA9IHJlc3VsdEJ1ZmZlci5zdWJhcnJheShoYWxmLCByZXN1bHRMZW5ndGgpO1xuICAgIGNvbnN0IGNyZWF0ZUtleSA9IChyZXMpID0+ICh7XG4gICAgICAgIGl2OiByZXMuc3ViYXJyYXkoMCwgaXZTaXplKSxcbiAgICAgICAgY2lwaGVyS2V5OiByZXMuc3ViYXJyYXkoaXZTaXplLCBpdlNpemUgKyBjaXBoZXJLZXlTaXplKSxcbiAgICAgICAgbWFjS2V5OiByZXMuc3ViYXJyYXkoaXZTaXplICsgY2lwaGVyS2V5U2l6ZSlcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBrMTogY3JlYXRlS2V5KHIxKSxcbiAgICAgICAgazI6IGNyZWF0ZUtleShyMilcbiAgICB9O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9a2V5LXN0cmV0Y2hlci5qcy5tYXAiXSwibmFtZXMiOlsiQ29kZUVycm9yIiwiY29uY2F0IiwidWludDhBcnJheUNvbmNhdCIsImZyb21TdHJpbmciLCJ1aW50OEFycmF5RnJvbVN0cmluZyIsImhtYWMiLCJjaXBoZXJNYXAiLCJpdlNpemUiLCJrZXlTaXplIiwiQmxvd2Zpc2giLCJrZXlTdHJldGNoZXIiLCJjaXBoZXJUeXBlIiwiaGFzaCIsInNlY3JldCIsImNpcGhlciIsImFsbG93ZWQiLCJPYmplY3QiLCJrZXlzIiwiam9pbiIsImNpcGhlcktleVNpemUiLCJobWFjS2V5U2l6ZSIsInNlZWQiLCJyZXN1bHRMZW5ndGgiLCJtIiwiY3JlYXRlIiwiYSIsImRpZ2VzdCIsInJlc3VsdCIsImoiLCJiIiwidG9kbyIsImxlbmd0aCIsInB1c2giLCJoYWxmIiwicmVzdWx0QnVmZmVyIiwicjEiLCJzdWJhcnJheSIsInIyIiwiY3JlYXRlS2V5IiwicmVzIiwiaXYiLCJjaXBoZXJLZXkiLCJtYWNLZXkiLCJrMSIsImsyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/key-stretcher.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/keys.js":
/*!***********************************************************!*\
!*** ./node_modules/@libp2p/crypto/dist/src/keys/keys.js ***!
\***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ KeyType: () => (/* binding */ KeyType),\n/* harmony export */ PrivateKey: () => (/* binding */ PrivateKey),\n/* harmony export */ PublicKey: () => (/* binding */ PublicKey)\n/* harmony export */ });\n/* harmony import */ var protons_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! protons-runtime */ \"(ssr)/./node_modules/protons-runtime/dist/src/index.js\");\n/* eslint-disable import/export */ /* eslint-disable complexity */ /* eslint-disable @typescript-eslint/no-namespace */ /* eslint-disable @typescript-eslint/no-unnecessary-boolean-literal-compare */ /* eslint-disable @typescript-eslint/no-empty-interface */ \nvar KeyType;\n(function(KeyType) {\n KeyType[\"RSA\"] = \"RSA\";\n KeyType[\"Ed25519\"] = \"Ed25519\";\n KeyType[\"Secp256k1\"] = \"Secp256k1\";\n})(KeyType || (KeyType = {}));\nvar __KeyTypeValues;\n(function(__KeyTypeValues) {\n __KeyTypeValues[__KeyTypeValues[\"RSA\"] = 0] = \"RSA\";\n __KeyTypeValues[__KeyTypeValues[\"Ed25519\"] = 1] = \"Ed25519\";\n __KeyTypeValues[__KeyTypeValues[\"Secp256k1\"] = 2] = \"Secp256k1\";\n})(__KeyTypeValues || (__KeyTypeValues = {}));\n(function(KeyType) {\n KeyType.codec = ()=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.enumeration)(__KeyTypeValues);\n };\n})(KeyType || (KeyType = {}));\nvar PublicKey;\n(function(PublicKey) {\n let _codec;\n PublicKey.codec = ()=>{\n if (_codec == null) {\n _codec = (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.message)((obj, w, opts = {})=>{\n if (opts.lengthDelimited !== false) {\n w.fork();\n }\n if (obj.Type != null) {\n w.uint32(8);\n KeyType.codec().encode(obj.Type, w);\n }\n if (obj.Data != null) {\n w.uint32(18);\n w.bytes(obj.Data);\n }\n if (opts.lengthDelimited !== false) {\n w.ldelim();\n }\n }, (reader, length)=>{\n const obj = {};\n const end = length == null ? reader.len : reader.pos + length;\n while(reader.pos < end){\n const tag = reader.uint32();\n switch(tag >>> 3){\n case 1:\n obj.Type = KeyType.codec().decode(reader);\n break;\n case 2:\n obj.Data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return obj;\n });\n }\n return _codec;\n };\n PublicKey.encode = (obj)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.encodeMessage)(obj, PublicKey.codec());\n };\n PublicKey.decode = (buf)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.decodeMessage)(buf, PublicKey.codec());\n };\n})(PublicKey || (PublicKey = {}));\nvar PrivateKey;\n(function(PrivateKey) {\n let _codec;\n PrivateKey.codec = ()=>{\n if (_codec == null) {\n _codec = (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.message)((obj, w, opts = {})=>{\n if (opts.lengthDelimited !== false) {\n w.fork();\n }\n if (obj.Type != null) {\n w.uint32(8);\n KeyType.codec().encode(obj.Type, w);\n }\n if (obj.Data != null) {\n w.uint32(18);\n w.bytes(obj.Data);\n }\n if (opts.lengthDelimited !== false) {\n w.ldelim();\n }\n }, (reader, length)=>{\n const obj = {};\n const end = length == null ? reader.len : reader.pos + length;\n while(reader.pos < end){\n const tag = reader.uint32();\n switch(tag >>> 3){\n case 1:\n obj.Type = KeyType.codec().decode(reader);\n break;\n case 2:\n obj.Data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return obj;\n });\n }\n return _codec;\n };\n PrivateKey.encode = (obj)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.encodeMessage)(obj, PrivateKey.codec());\n };\n PrivateKey.decode = (buf)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.decodeMessage)(buf, PrivateKey.codec());\n };\n})(PrivateKey || (PrivateKey = {})); //# sourceMappingURL=keys.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMva2V5cy9rZXlzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxnQ0FBZ0MsR0FDaEMsNkJBQTZCLEdBQzdCLGtEQUFrRCxHQUNsRCw0RUFBNEUsR0FDNUUsd0RBQXdELEdBQzZCO0FBQzlFLElBQUlJLFFBQVE7QUFDbEIsVUFBVUEsT0FBTztJQUNkQSxPQUFPLENBQUMsTUFBTSxHQUFHO0lBQ2pCQSxPQUFPLENBQUMsVUFBVSxHQUFHO0lBQ3JCQSxPQUFPLENBQUMsWUFBWSxHQUFHO0FBQzNCLEdBQUdBLFdBQVlBLENBQUFBLFVBQVUsQ0FBQztBQUMxQixJQUFJQztBQUNILFVBQVVBLGVBQWU7SUFDdEJBLGVBQWUsQ0FBQ0EsZUFBZSxDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUc7SUFDOUNBLGVBQWUsQ0FBQ0EsZUFBZSxDQUFDLFVBQVUsR0FBRyxFQUFFLEdBQUc7SUFDbERBLGVBQWUsQ0FBQ0EsZUFBZSxDQUFDLFlBQVksR0FBRyxFQUFFLEdBQUc7QUFDeEQsR0FBR0EsbUJBQW9CQSxDQUFBQSxrQkFBa0IsQ0FBQztBQUN6QyxVQUFVRCxPQUFPO0lBQ2RBLFFBQVFFLEtBQUssR0FBRztRQUNaLE9BQU9OLDREQUFXQSxDQUFDSztJQUN2QjtBQUNKLEdBQUdELFdBQVlBLENBQUFBLFVBQVUsQ0FBQztBQUNuQixJQUFJRyxVQUFVO0FBQ3BCLFVBQVVBLFNBQVM7SUFDaEIsSUFBSUM7SUFDSkQsVUFBVUQsS0FBSyxHQUFHO1FBQ2QsSUFBSUUsVUFBVSxNQUFNO1lBQ2hCQSxTQUFTTCx3REFBT0EsQ0FBQyxDQUFDTSxLQUFLQyxHQUFHQyxPQUFPLENBQUMsQ0FBQztnQkFDL0IsSUFBSUEsS0FBS0MsZUFBZSxLQUFLLE9BQU87b0JBQ2hDRixFQUFFRyxJQUFJO2dCQUNWO2dCQUNBLElBQUlKLElBQUlLLElBQUksSUFBSSxNQUFNO29CQUNsQkosRUFBRUssTUFBTSxDQUFDO29CQUNUWCxR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QUNFO1FBQ2pCLE9BQU8xQiw4REFBYUEsQ0FBQzBCLEtBQUtDLFdBQVd2QixLQUFLO0lBQzlDO0FBQ0osR0FBR3VCLGNBQWVBLENBQUFBLGFBQWEsQ0FBQyxLQUNoQyxnQ0FBZ0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL2NyeXB0by9kaXN0L3NyYy9rZXlzL2tleXMuanM/Mjc4MyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvZXhwb3J0ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktYm9vbGVhbi1saXRlcmFsLWNvbXBhcmUgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2UgKi9cbmltcG9ydCB7IGVudW1lcmF0aW9uLCBlbmNvZGVNZXNzYWdlLCBkZWNvZGVNZXNzYWdlLCBtZXNzYWdlIH0gZnJvbSAncHJvdG9ucy1ydW50aW1lJztcbmV4cG9ydCB2YXIgS2V5VHlwZTtcbihmdW5jdGlvbiAoS2V5VHlwZSkge1xuICAgIEtleVR5cGVbXCJSU0FcIl0gPSBcIlJTQVwiO1xuICAgIEtleVR5cGVbXCJFZDI1NTE5XCJdID0gXCJFZDI1NTE5XCI7XG4gICAgS2V5VHlwZVtcIlNlY3AyNTZrMVwiXSA9IFwiU2VjcDI1NmsxXCI7XG59KShLZXlUeXBlIHx8IChLZXlUeXBlID0ge30pKTtcbnZhciBfX0tleVR5cGVWYWx1ZXM7XG4oZnVuY3Rpb24gKF9fS2V5VHlwZVZhbHVlcykge1xuICAgIF9fS2V5VHlwZVZhbHVlc1tfX0tleVR5cGVWYWx1ZXNbXCJSU0FcIl0gPSAwXSA9IFwiUlNBXCI7XG4gICAgX19LZXlUeXBlVmFsdWVzW19fS2V5VHlwZVZhbHVlc1tcIkVkMjU1MTlcIl0gPSAxXSA9IFwiRWQyNTUxOVwiO1xuICAgIF9fS2V5VHlwZVZhbHVlc1tfX0tleVR5cGVWYWx1ZXNbXCJTZWNwMjU2azFcIl0gPSAyXSA9IFwiU2VjcDI1NmsxXCI7XG59KShfX0tleVR5cGVWYWx1ZXMgfHwgKF9fS2V5VHlwZVZhbHVlcyA9IHt9KSk7XG4oZnVuY3Rpb24gKEtleVR5cGUpIHtcbiAgICBLZXlUeXBlLmNvZGVjID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gZW51bWVyYXRpb24oX19LZXlUeXBlVmFsdWVzKTtcbiAgICB9O1xufSkoS2V5VHlwZSB8fCAoS2V5VHlwZSA9IHt9KSk7XG5leHBvcnQgdmFyIFB1YmxpY0tleTtcbihmdW5jdGlvbiAoUHVibGljS2V5KSB7XG4gICAgbGV0IF9jb2RlYztcbiAgICBQdWJsaWNLZXkuY29kZWMgPSAoKSA9PiB7XG4gICAgICAgIGlmIChfY29kZWMgPT0gbnVsbCkge1xuICAgICAgICAgICAgX2NvZGVjID0gbWVzc2FnZSgob2JqLCB3LCBvcHRzID0ge30pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAob3B0cy5sZW5ndGhEZWxpbWl0ZWQgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHcuZm9yaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAob2JqLlR5cGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB3LnVpbnQzMig4KTtcbiAgICAgICAgICAgICAgICAgICAgS2V5VHlwZS5jb2RlYygpLmVuY29kZShvYmouVHlwZSwgdyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChvYmouRGF0YSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHcudWludDMyKDE4KTtcbiAgICAgICAgICAgICAgICAgICAgdy5ieXRlcyhvYmouRGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChvcHRzLmxlbmd0aERlbGltaXRlZCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdy5sZGVsaW0oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAocmVhZGVyLCBsZW5ndGgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvYmogPSB7fTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmQgPSBsZW5ndGggPT0gbnVsbCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgICAgICAgICAgICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmouVHlwZSA9IEtleVR5cGUuY29kZWMoKS5kZWNvZGUocmVhZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmouRGF0YSA9IHJlYWRlci5ieXRlcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfY29kZWM7XG4gICAgfTtcbiAgICBQdWJsaWNLZXkuZW5jb2RlID0gKG9iaikgPT4ge1xuICAgICAgICByZXR1cm4gZW5jb2RlTWVzc2FnZShvYmosIFB1YmxpY0tleS5jb2RlYygpKTtcbiAgICB9O1xuICAgIFB1YmxpY0tleS5kZWNvZGUgPSAoYnVmKSA9PiB7XG4gICAgICAgIHJldHVybiBkZWNvZGVNZXNzYWdlKGJ1ZiwgUHVibGljS2V5LmNvZGVjKCkpO1xuICAgIH07XG59KShQdWJsaWNLZXkgfHwgKFB1YmxpY0tleSA9IHt9KSk7XG5leHBvcnQgdmFyIFByaXZhdGVLZXk7XG4oZnVuY3Rpb24gKFByaXZhdGVLZXkpIHtcbiAgICBsZXQgX2NvZGVjO1xuICAgIFByaXZhdGVLZXkuY29kZWMgPSAoKSA9PiB7XG4gICAgICAgIGlmIChfY29kZWMgPT0gbnVsbCkge1xuICAgICAgICAgICAgX2NvZGVjID0gbWVzc2FnZSgob2JqLCB3LCBvcHRzID0ge30pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAob3B0cy5sZW5ndGhEZWxpbWl0ZWQgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHcuZm9yaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAob2JqLlR5cGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB3LnVpbnQzMig4KTtcbiAgICAgICAgICAgICAgICAgICAgS2V5VHlwZS5jb2RlYygpLmVuY29kZShvYmouVHlwZSwgdyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChvYmouRGF0YSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHcudWludDMyKDE4KTtcbiAgICAgICAgICAgICAgICAgICAgdy5ieXRlcyhvYmouRGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChvcHRzLmxlbmd0aERlbGltaXRlZCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdy5sZGVsaW0oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAocmVhZGVyLCBsZW5ndGgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvYmogPSB7fTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmQgPSBsZW5ndGggPT0gbnVsbCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgICAgICAgICAgICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmouVHlwZSA9IEtleVR5cGUuY29kZWMoKS5kZWNvZGUocmVhZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmouRGF0YSA9IHJlYWRlci5ieXRlcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfY29kZWM7XG4gICAgfTtcbiAgICBQcml2YXRlS2V5LmVuY29kZSA9IChvYmopID0+IHtcbiAgICAgICAgcmV0dXJuIGVuY29kZU1lc3NhZ2Uob2JqLCBQcml2YXRlS2V5LmNvZGVjKCkpO1xuICAgIH07XG4gICAgUHJpdmF0ZUtleS5kZWNvZGUgPSAoYnVmKSA9PiB7XG4gICAgICAgIHJldHVybiBkZWNvZGVNZXNzYWdlKGJ1ZiwgUHJpdmF0ZUtleS5jb2RlYygpKTtcbiAgICB9O1xufSkoUHJpdmF0ZUtleSB8fCAoUHJpdmF0ZUtleSA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1rZXlzLmpzLm1hcCJdLCJuYW1lcyI6WyJlbnVtZXJhdGlvbiIsImVuY29kZU1lc3NhZ2UiLCJkZWNvZGVNZXNzYWdlIiwibWVzc2FnZSIsIktleVR5cGUiLCJfX0tleVR5cGVWYWx1ZXMiLCJjb2RlYyIsIlB1YmxpY0tleSIsIl9jb2RlYyIsIm9iaiIsInciLCJvcHRzIiwibGVuZ3RoRGVsaW1pdGVkIiwiZm9yayIsIlR5cGUiLCJ1aW50MzIiLCJlbmNvZGUiLCJEYXRhIiwiYnl0ZXMiLCJsZGVsaW0iLCJyZWFkZXIiLCJsZW5ndGgiLCJlbmQiLCJsZW4iLCJwb3MiLCJ0YWciLCJkZWNvZGUiLCJza2lwVHlwZSIsImJ1ZiIsIlByaXZhdGVLZXkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/keys.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/rsa-class.js":
/*!****************************************************************!*\
!*** ./node_modules/@libp2p/crypto/dist/src/keys/rsa-class.js ***!
\****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MAX_RSA_KEY_SIZE: () => (/* binding */ MAX_RSA_KEY_SIZE),\n/* harmony export */ RsaPrivateKey: () => (/* binding */ RsaPrivateKey),\n/* harmony export */ RsaPublicKey: () => (/* binding */ RsaPublicKey),\n/* harmony export */ fromJwk: () => (/* binding */ fromJwk),\n/* harmony export */ generateKeyPair: () => (/* binding */ generateKeyPair),\n/* harmony export */ unmarshalRsaPrivateKey: () => (/* binding */ unmarshalRsaPrivateKey),\n/* harmony export */ unmarshalRsaPublicKey: () => (/* binding */ unmarshalRsaPublicKey)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var multiformats_hashes_sha2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! multiformats/hashes/sha2 */ \"(ssr)/./node_modules/multiformats/dist/src/hashes/sha2.js\");\n/* harmony import */ var uint8arrays_equals__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uint8arrays/equals */ \"(ssr)/./node_modules/uint8arrays/dist/src/equals.js\");\n/* harmony import */ var uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uint8arrays/to-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/to-string.node.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../util.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/util.js\");\n/* harmony import */ var _exporter_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./exporter.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/exporter.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./keys.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/keys.js\");\n/* harmony import */ var _rsa_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rsa.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/rsa.js\");\n/* harmony import */ var _rsa_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./rsa.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/rsa-utils.js\");\n/* harmony import */ var _rsa_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./rsa.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/random-bytes.js\");\n\n\n\n\n\n\n\n\nconst MAX_RSA_KEY_SIZE = 8192;\nclass RsaPublicKey {\n constructor(key){\n this._key = key;\n }\n verify(data, sig) {\n return _rsa_js__WEBPACK_IMPORTED_MODULE_3__.hashAndVerify(this._key, sig, data);\n }\n marshal() {\n return _rsa_js__WEBPACK_IMPORTED_MODULE_4__.jwkToPkix(this._key);\n }\n get bytes() {\n return _keys_js__WEBPACK_IMPORTED_MODULE_5__.PublicKey.encode({\n Type: _keys_js__WEBPACK_IMPORTED_MODULE_5__.KeyType.RSA,\n Data: this.marshal()\n }).subarray();\n }\n equals(key) {\n return (0,uint8arrays_equals__WEBPACK_IMPORTED_MODULE_1__.equals)(this.bytes, key.bytes);\n }\n hash() {\n const p = multiformats_hashes_sha2__WEBPACK_IMPORTED_MODULE_0__.sha256.digest(this.bytes);\n if ((0,_util_js__WEBPACK_IMPORTED_MODULE_6__.isPromise)(p)) {\n return p.then(({ bytes })=>bytes);\n }\n return p.bytes;\n }\n}\nclass RsaPrivateKey {\n constructor(key, publicKey){\n this._key = key;\n this._publicKey = publicKey;\n }\n genSecret() {\n return _rsa_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"](16);\n }\n sign(message) {\n return _rsa_js__WEBPACK_IMPORTED_MODULE_3__.hashAndSign(this._key, message);\n }\n get public() {\n if (this._publicKey == null) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_8__.CodeError(\"public key not provided\", \"ERR_PUBKEY_NOT_PROVIDED\");\n }\n return new RsaPublicKey(this._publicKey);\n }\n marshal() {\n return _rsa_js__WEBPACK_IMPORTED_MODULE_4__.jwkToPkcs1(this._key);\n }\n get bytes() {\n return _keys_js__WEBPACK_IMPORTED_MODULE_5__.PrivateKey.encode({\n Type: _keys_js__WEBPACK_IMPORTED_MODULE_5__.KeyType.RSA,\n Data: this.marshal()\n }).subarray();\n }\n equals(key) {\n return (0,uint8arrays_equals__WEBPACK_IMPORTED_MODULE_1__.equals)(this.bytes, key.bytes);\n }\n hash() {\n const p = multiformats_hashes_sha2__WEBPACK_IMPORTED_MODULE_0__.sha256.digest(this.bytes);\n if ((0,_util_js__WEBPACK_IMPORTED_MODULE_6__.isPromise)(p)) {\n return p.then(({ bytes })=>bytes);\n }\n return p.bytes;\n }\n /**\n * Gets the ID of the key.\n *\n * The key id is the base58 encoding of the SHA-256 multihash of its public key.\n * The public key is a protobuf encoding containing a type and the DER encoding\n * of the PKCS SubjectPublicKeyInfo.\n */ async id() {\n const hash = await this.public.hash();\n return (0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__.toString)(hash, \"base58btc\");\n }\n /**\n * Exports the key as libp2p-key - a aes-gcm encrypted value with the key\n * derived from the password.\n *\n * To export it as a password protected PEM file, please use the `exportPEM`\n * function from `@libp2p/rsa`.\n */ async export(password, format = \"pkcs-8\") {\n if (format === \"pkcs-8\") {\n return _rsa_js__WEBPACK_IMPORTED_MODULE_4__.exportToPem(this, password);\n } else if (format === \"libp2p-key\") {\n return (0,_exporter_js__WEBPACK_IMPORTED_MODULE_9__.exporter)(this.bytes, password);\n } else {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_8__.CodeError(`export format '${format}' is not supported`, \"ERR_INVALID_EXPORT_FORMAT\");\n }\n }\n}\nasync function unmarshalRsaPrivateKey(bytes) {\n const jwk = _rsa_js__WEBPACK_IMPORTED_MODULE_4__.pkcs1ToJwk(bytes);\n if (_rsa_js__WEBPACK_IMPORTED_MODULE_3__.keySize(jwk) > MAX_RSA_KEY_SIZE) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_8__.CodeError(\"key size is too large\", \"ERR_KEY_SIZE_TOO_LARGE\");\n }\n const keys = await _rsa_js__WEBPACK_IMPORTED_MODULE_3__.unmarshalPrivateKey(jwk);\n return new RsaPrivateKey(keys.privateKey, keys.publicKey);\n}\nfunction unmarshalRsaPublicKey(bytes) {\n const jwk = _rsa_js__WEBPACK_IMPORTED_MODULE_4__.pkixToJwk(bytes);\n if (_rsa_js__WEBPACK_IMPORTED_MODULE_3__.keySize(jwk) > MAX_RSA_KEY_SIZE) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_8__.CodeError(\"key size is too large\", \"ERR_KEY_SIZE_TOO_LARGE\");\n }\n return new RsaPublicKey(jwk);\n}\nasync function fromJwk(jwk) {\n if (_rsa_js__WEBPACK_IMPORTED_MODULE_3__.keySize(jwk) > MAX_RSA_KEY_SIZE) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_8__.CodeError(\"key size is too large\", \"ERR_KEY_SIZE_TOO_LARGE\");\n }\n const keys = await _rsa_js__WEBPACK_IMPORTED_MODULE_3__.unmarshalPrivateKey(jwk);\n return new RsaPrivateKey(keys.privateKey, keys.publicKey);\n}\nasync function generateKeyPair(bits) {\n if (bits > MAX_RSA_KEY_SIZE) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_8__.CodeError(\"key size is too large\", \"ERR_KEY_SIZE_TOO_LARGE\");\n }\n const keys = await _rsa_js__WEBPACK_IMPORTED_MODULE_3__.generateKey(bits);\n return new RsaPrivateKey(keys.privateKey, keys.publicKey);\n} //# sourceMappingURL=rsa-class.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMva2V5cy9yc2EtY2xhc3MuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBOEM7QUFDSTtBQUNjO0FBQ087QUFDaEM7QUFDRTtBQUNSO0FBQ0U7QUFDNUIsTUFBTVUsbUJBQW1CLEtBQUs7QUFDOUIsTUFBTUM7SUFFVEMsWUFBWUMsR0FBRyxDQUFFO1FBQ2IsSUFBSSxDQUFDQyxJQUFJLEdBQUdEO0lBQ2hCO0lBQ0FFLE9BQU9DLElBQUksRUFBRUMsR0FBRyxFQUFFO1FBQ2QsT0FBT1Isa0RBQW9CLENBQUMsSUFBSSxDQUFDSyxJQUFJLEVBQUVHLEtBQUtEO0lBQ2hEO0lBQ0FHLFVBQVU7UUFDTixPQUFPViw4Q0FBc0IsQ0FBQyxJQUFJLENBQUNLLElBQUk7SUFDM0M7SUFDQSxJQUFJUSxRQUFRO1FBQ1IsT0FBT2QsK0NBQWEsQ0FBQ2dCLE1BQU0sQ0FBQztZQUN4QkMsTUFBTWpCLDZDQUFXLENBQUNtQixHQUFHO1lBQ3JCQyxNQUFNLElBQUksQ0FBQ1QsT0FBTztRQUN0QixHQUFHVSxRQUFRO0lBQ2Y7SUFDQTNCLE9BQU9XLEdBQUcsRUFBRTtRQUNSLE9BQU9WLDBEQUFnQkEsQ0FBQyxJQUFJLENBQUNtQixLQUFLLEVBQUVULElBQUlTLEtBQUs7SUFDakQ7SUFDQVEsT0FBTztRQUNILE1BQU1DLElBQUk5Qiw0REFBTUEsQ0FBQytCLE1BQU0sQ0FBQyxJQUFJLENBQUNWLEtBQUs7UUFDbEMsSUFBSWhCLG1EQUFTQSxDQUFDeUIsSUFBSTtZQUNkLE9BQU9BLEVBQUVFLElBQUksQ0FBQyxDQUFDLEVBQUVYLEtBQUssRUFBRSxHQUFLQTtRQUNqQztRQUNBLE9BQU9TLEVBQUVULEtBQUs7SUFDbEI7QUFDSjtBQUNPLE1BQU1ZO0lBR1R0QixZQUFZQyxHQUFHLEVBQUVzQixTQUFTLENBQUU7UUFDeEIsSUFBSSxDQUFDckIsSUFBSSxHQUFHRDtRQUNaLElBQUksQ0FBQ3VCLFVBQVUsR0FBR0Q7SUFDdEI7SUFDQUUsWUFBWTtRQUNSLE9BQU81QiwrQ0FBc0IsQ0FBQztJQUNsQztJQUNBOEIsS0FBS0MsT0FBTyxFQUFFO1FBQ1YsT0FBTy9CLGdEQUFrQixDQUFDLElBQUksQ0FBQ0ssSUFBSSxFQUFFMEI7SUFDekM7SUFDQSxJQUFJRSxTQUFTO1FBQ1QsSUFBSSxJQUFJLENBQUNOLFVBQVUsSUFBSSxNQUFNO1lBQ3pCLE1BQU0sSUFBSXBDLHdEQUFTQSxDQUFDLDJCQUEyQjtRQUNuRDtRQUNBLE9BQU8sSUFBSVcsYUFBYSxJQUFJLENBQUN5QixVQUFVO0lBQzNDO0lBQ0FqQixVQUFVO1FBQ04sT0FBT1YsK0NBQXVCLENBQUMsSUFBSSxDQUFDSyxJQUFJO0lBQzVDO0lBQ0EsSUFBSVEsUUFBUTtRQUNSLE9BQU9kLGdEQUFjLENBQUNnQixNQUFNLENBQUM7WUFDekJDLE1BQU1qQiw2Q0FBVyxDQUFDbUIsR0FBRztZQUNyQkMsTUFBTSxJQUFJLENBQUNULE9BQU87UUFDdEIsR0FBR1UsUUFBUTtJQUNmO0lBQ0EzQixPQUFPVyxHQUFHLEVBQUU7UUFDUixPQUFPViwwREFBZ0JBLENBQUMsSUFBSSxDQUFDbUIsS0FBSyxFQUFFVCxJQUFJUyxLQUFLO0lBQ2pEO0lBQ0FRLE9BQU87UUFDSCxNQUFNQyxJQUFJOUIsNERBQU1BLENBQUMrQixNQUFNLENBQUMsSUFBSSxDQUFDVixLQUFLO1FBQ2xDLElBQUloQixtREFBU0EsQ0FBQ3lCLElBQUk7WUFDZCxPQUFPQSxFQUFFRSxJQUFJLENBQUMsQ0FBQyxFQUFFWCxLQUFLLEVBQUUsR0FBS0E7UUFDakM7UUFDQSxPQUFPUyxFQUFFVCxLQUFLO0lBQ2xCO0lBQ0E7Ozs7OztLQU1DLEdBQ0QsTUFBTXVCLEtBQUs7UUFDUCxNQUFNZixPQUFPLE1BQU0sSUFBSSxDQUFDWSxNQUFNLENBQUNaLElBQUk7UUFDbkMsT0FBT3pCLCtEQUFrQkEsQ0FBQ3lCLE1BQU07SUFDcEM7SUFDQTs7Ozs7O0tBTUMsR0FDRCxNQUFNZ0IsT0FBT0MsUUFBUSxFQUFFQyxTQUFTLFFBQVEsRUFBRTtRQUN0QyxJQUFJQSxXQUFXLFVBQVU7WUFDckIsT0FBT3ZDLGdEQUF3QixDQUFDLElBQUksRUFBRXNDO1FBQzFDLE9BQ0ssSUFBSUMsV0FBVyxjQUFjO1lBQzlCLE9BQU96QyxzREFBUUEsQ0FBQyxJQUFJLENBQUNlLEtBQUssRUFBRXlCO1FBQ2hDLE9BQ0s7WUFDRCxNQUFNLElBQUkvQyx3REFBU0EsQ0FBQyxDQUFDLGVBQWUsRUFBRWdELE9BQU8sa0JBQWtCLENBQUMsRUFBRTtRQUN0RTtJQUNKO0FBQ0o7QUFDTyxlQUFlRSx1QkFBdUI1QixLQUFLO0lBQzlDLE1BQU02QixNQUFNMUMsK0NBQXVCLENBQUNhO0lBQ3BDLElBQUliLDRDQUFjLENBQUMwQyxPQUFPekMsa0JBQWtCO1FBQ3hDLE1BQU0sSUFBSVYsd0RBQVNBLENBQUMseUJBQXlCO0lBQ2pEO0lBQ0EsTUFBTXNELE9BQU8sTUFBTTdDLHdEQUEwQixDQUFDMEM7SUFDOUMsT0FBTyxJQUFJakIsY0FBY29CLEtBQUtFLFVBQVUsRUFBRUYsS0FBS25CLFNBQVM7QUFDNUQ7QUFDTyxTQUFTc0Isc0JBQXNCbkMsS0FBSztJQUN2QyxNQUFNNkIsTUFBTTFDLDhDQUFzQixDQUFDYTtJQUNuQyxJQUFJYiw0Q0FBYyxDQUFDMEMsT0FBT3pDLGtCQUFrQjtRQUN4QyxNQUFNLElBQUlWLHdEQUFTQSxDQUFDLHlCQUF5QjtJQUNqRDtJQUNBLE9BQU8sSUFBSVcsYUFBYXdDO0FBQzVCO0FBQ08sZUFBZVEsUUFBUVIsR0FBRztJQUM3QixJQUFJMUMsNENBQWMsQ0FBQzBDLE9BQU96QyxrQkFBa0I7UUFDeEMsTUFBTSxJQUFJVix3REFBU0EsQ0FBQyx5QkFBeUI7SUFDakQ7SUFDQSxNQUFNc0QsT0FBTyxNQUFNN0Msd0RBQTBCLENBQUMwQztJQUM5QyxPQUFPLElBQUlqQixjQUFjb0IsS0FBS0UsVUFBVSxFQUFFRixLQUFLbkIsU0FBUztBQUM1RDtBQUNPLGVBQWV5QixnQkFBZ0JDLElBQUk7SUFDdEMsSUFBSUEsT0FBT25ELGtCQUFrQjtRQUN6QixNQUFNLElBQUlWLHdEQUFTQSxDQUFDLHlCQUF5QjtJQUNqRDtJQUNBLE1BQU1zRCxPQUFPLE1BQU03QyxnREFBa0IsQ0FBQ29EO0lBQ3RDLE9BQU8sSUFBSTNCLGNBQWNvQixLQUFLRSxVQUFVLEVBQUVGLEtBQUtuQixTQUFTO0FBQzVELEVBQ0EscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMva2V5cy9yc2EtY2xhc3MuanM/NGQyZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2RlRXJyb3IgfSBmcm9tICdAbGlicDJwL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBzaGEyNTYgfSBmcm9tICdtdWx0aWZvcm1hdHMvaGFzaGVzL3NoYTInO1xuaW1wb3J0IHsgZXF1YWxzIGFzIHVpbnQ4QXJyYXlFcXVhbHMgfSBmcm9tICd1aW50OGFycmF5cy9lcXVhbHMnO1xuaW1wb3J0IHsgdG9TdHJpbmcgYXMgdWludDhBcnJheVRvU3RyaW5nIH0gZnJvbSAndWludDhhcnJheXMvdG8tc3RyaW5nJztcbmltcG9ydCB7IGlzUHJvbWlzZSB9IGZyb20gJy4uL3V0aWwuanMnO1xuaW1wb3J0IHsgZXhwb3J0ZXIgfSBmcm9tICcuL2V4cG9ydGVyLmpzJztcbmltcG9ydCAqIGFzIHBibSBmcm9tICcuL2tleXMuanMnO1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJy4vcnNhLmpzJztcbmV4cG9ydCBjb25zdCBNQVhfUlNBX0tFWV9TSVpFID0gODE5MjtcbmV4cG9ydCBjbGFzcyBSc2FQdWJsaWNLZXkge1xuICAgIF9rZXk7XG4gICAgY29uc3RydWN0b3Ioa2V5KSB7XG4gICAgICAgIHRoaXMuX2tleSA9IGtleTtcbiAgICB9XG4gICAgdmVyaWZ5KGRhdGEsIHNpZykge1xuICAgICAgICByZXR1cm4gY3J5cHRvLmhhc2hBbmRWZXJpZnkodGhpcy5fa2V5LCBzaWcsIGRhdGEpO1xuICAgIH1cbiAgICBtYXJzaGFsKCkge1xuICAgICAgICByZXR1cm4gY3J5cHRvLnV0aWxzLmp3a1RvUGtpeCh0aGlzLl9rZXkpO1xuICAgIH1cbiAgICBnZXQgYnl0ZXMoKSB7XG4gICAgICAgIHJldHVybiBwYm0uUHVibGljS2V5LmVuY29kZSh7XG4gICAgICAgICAgICBUeXBlOiBwYm0uS2V5VHlwZS5SU0EsXG4gICAgICAgICAgICBEYXRhOiB0aGlzLm1hcnNoYWwoKVxuICAgICAgICB9KS5zdWJhcnJheSgpO1xuICAgIH1cbiAgICBlcXVhbHMoa2V5KSB7XG4gICAgICAgIHJldHVybiB1aW50OEFycmF5RXF1YWxzKHRoaXMuYnl0ZXMsIGtleS5ieXRlcyk7XG4gICAgfVxuICAgIGhhc2goKSB7XG4gICAgICAgIGNvbnN0IHAgPSBzaGEyNTYuZGlnZXN0KHRoaXMuYnl0ZXMpO1xuICAgICAgICBpZiAoaXNQcm9taXNlKHApKSB7XG4gICAgICAgICAgICByZXR1cm4gcC50aGVuKCh7IGJ5dGVzIH0pID0+IGJ5dGVzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcC5ieXRlcztcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUnNhUHJpdmF0ZUtleSB7XG4gICAgX2tleTtcbiAgICBfcHVibGljS2V5O1xuICAgIGNvbnN0cnVjdG9yKGtleSwgcHVibGljS2V5KSB7XG4gICAgICAgIHRoaXMuX2tleSA9IGtleTtcbiAgICAgICAgdGhpcy5fcHVibGljS2V5ID0gcHVibGljS2V5O1xuICAgIH1cbiAgICBnZW5TZWNyZXQoKSB7XG4gICAgICAgIHJldHVybiBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKDE2KTtcbiAgICB9XG4gICAgc2lnbihtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiBjcnlwdG8uaGFzaEFuZFNpZ24odGhpcy5fa2V5LCBtZXNzYWdlKTtcbiAgICB9XG4gICAgZ2V0IHB1YmxpYygpIHtcbiAgICAgICAgaWYgKHRoaXMuX3B1YmxpY0tleSA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29kZUVycm9yKCdwdWJsaWMga2V5IG5vdCBwcm92aWRlZCcsICdFUlJfUFVCS0VZX05PVF9QUk9WSURFRCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgUnNhUHVibGljS2V5KHRoaXMuX3B1YmxpY0tleSk7XG4gICAgfVxuICAgIG1hcnNoYWwoKSB7XG4gICAgICAgIHJldHVybiBjcnlwdG8udXRpbHMuandrVG9Qa2NzMSh0aGlzLl9rZXkpO1xuICAgIH1cbiAgICBnZXQgYnl0ZXMoKSB7XG4gICAgICAgIHJldHVybiBwYm0uUHJpdmF0ZUtleS5lbmNvZGUoe1xuICAgICAgICAgICAgVHlwZTogcGJtLktleVR5cGUuUlNBLFxuICAgICAgICAgICAgRGF0YTogdGhpcy5tYXJzaGFsKClcbiAgICAgICAgfSkuc3ViYXJyYXkoKTtcbiAgICB9XG4gICAgZXF1YWxzKGtleSkge1xuICAgICAgICByZXR1cm4gdWludDhBcnJheUVxdWFscyh0aGlzLmJ5dGVzLCBrZXkuYnl0ZXMpO1xuICAgIH1cbiAgICBoYXNoKCkge1xuICAgICAgICBjb25zdCBwID0gc2hhMjU2LmRpZ2VzdCh0aGlzLmJ5dGVzKTtcbiAgICAgICAgaWYgKGlzUHJvbWlzZShwKSkge1xuICAgICAgICAgICAgcmV0dXJuIHAudGhlbigoeyBieXRlcyB9KSA9PiBieXRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHAuYnl0ZXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIElEIG9mIHRoZSBrZXkuXG4gICAgICpcbiAgICAgKiBUaGUga2V5IGlkIGlzIHRoZSBiYXNlNTggZW5jb2Rpbmcgb2YgdGhlIFNIQS0yNTYgbXVsdGloYXNoIG9mIGl0cyBwdWJsaWMga2V5LlxuICAgICAqIFRoZSBwdWJsaWMga2V5IGlzIGEgcHJvdG9idWYgZW5jb2RpbmcgY29udGFpbmluZyBhIHR5cGUgYW5kIHRoZSBERVIgZW5jb2RpbmdcbiAgICAgKiBvZiB0aGUgUEtDUyBTdWJqZWN0UHVibGljS2V5SW5mby5cbiAgICAgKi9cbiAgICBhc3luYyBpZCgpIHtcbiAgICAgICAgY29uc3QgaGFzaCA9IGF3YWl0IHRoaXMucHVibGljLmhhc2goKTtcbiAgICAgICAgcmV0dXJuIHVpbnQ4QXJyYXlUb1N0cmluZyhoYXNoLCAnYmFzZTU4YnRjJyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEV4cG9ydHMgdGhlIGtleSBhcyBsaWJwMnAta2V5IC0gYSBhZXMtZ2NtIGVuY3J5cHRlZCB2YWx1ZSB3aXRoIHRoZSBrZXlcbiAgICAgKiBkZXJpdmVkIGZyb20gdGhlIHBhc3N3b3JkLlxuICAgICAqXG4gICAgICogVG8gZXhwb3J0IGl0IGFzIGEgcGFzc3dvcmQgcHJvdGVjdGVkIFBFTSBmaWxlLCBwbGVhc2UgdXNlIHRoZSBgZXhwb3J0UEVNYFxuICAgICAqIGZ1bmN0aW9uIGZyb20gYEBsaWJwMnAvcnNhYC5cbiAgICAgKi9cbiAgICBhc3luYyBleHBvcnQocGFzc3dvcmQsIGZvcm1hdCA9ICdwa2NzLTgnKSB7XG4gICAgICAgIGlmIChmb3JtYXQgPT09ICdwa2NzLTgnKSB7XG4gICAgICAgICAgICByZXR1cm4gY3J5cHRvLnV0aWxzLmV4cG9ydFRvUGVtKHRoaXMsIHBhc3N3b3JkKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChmb3JtYXQgPT09ICdsaWJwMnAta2V5Jykge1xuICAgICAgICAgICAgcmV0dXJuIGV4cG9ydGVyKHRoaXMuYnl0ZXMsIHBhc3N3b3JkKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoYGV4cG9ydCBmb3JtYXQgJyR7Zm9ybWF0fScgaXMgbm90IHN1cHBvcnRlZGAsICdFUlJfSU5WQUxJRF9FWFBPUlRfRk9STUFUJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdW5tYXJzaGFsUnNhUHJpdmF0ZUtleShieXRlcykge1xuICAgIGNvbnN0IGp3ayA9IGNyeXB0by51dGlscy5wa2NzMVRvSndrKGJ5dGVzKTtcbiAgICBpZiAoY3J5cHRvLmtleVNpemUoandrKSA+IE1BWF9SU0FfS0VZX1NJWkUpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcigna2V5IHNpemUgaXMgdG9vIGxhcmdlJywgJ0VSUl9LRVlfU0laRV9UT09fTEFSR0UnKTtcbiAgICB9XG4gICAgY29uc3Qga2V5cyA9IGF3YWl0IGNyeXB0by51bm1hcnNoYWxQcml2YXRlS2V5KGp3ayk7XG4gICAgcmV0dXJuIG5ldyBSc2FQcml2YXRlS2V5KGtleXMucHJpdmF0ZUtleSwga2V5cy5wdWJsaWNLZXkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHVubWFyc2hhbFJzYVB1YmxpY0tleShieXRlcykge1xuICAgIGNvbnN0IGp3ayA9IGNyeXB0by51dGlscy5wa2l4VG9Kd2soYnl0ZXMpO1xuICAgIGlmIChjcnlwdG8ua2V5U2l6ZShqd2spID4gTUFYX1JTQV9LRVlfU0laRSkge1xuICAgICAgICB0aHJvdyBuZXcgQ29kZUVycm9yKCdrZXkgc2l6ZSBpcyB0b28gbGFyZ2UnLCAnRVJSX0tFWV9TSVpFX1RPT19MQVJHRScpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFJzYVB1YmxpY0tleShqd2spO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZyb21Kd2soandrKSB7XG4gICAgaWYgKGNyeXB0by5rZXlTaXplKGp3aykgPiBNQVhfUlNBX0tFWV9TSVpFKSB7XG4gICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoJ2tleSBzaXplIGlzIHRvbyBsYXJnZScsICdFUlJfS0VZX1NJWkVfVE9PX0xBUkdFJyk7XG4gICAgfVxuICAgIGNvbnN0IGtleXMgPSBhd2FpdCBjcnlwdG8udW5tYXJzaGFsUHJpdmF0ZUtleShqd2spO1xuICAgIHJldHVybiBuZXcgUnNhUHJpdmF0ZUtleShrZXlzLnByaXZhdGVLZXksIGtleXMucHVibGljS2V5KTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZUtleVBhaXIoYml0cykge1xuICAgIGlmIChiaXRzID4gTUFYX1JTQV9LRVlfU0laRSkge1xuICAgICAgICB0aHJvdyBuZXcgQ29kZUVycm9yKCdrZXkgc2l6ZSBpcyB0b28gbGFyZ2UnLCAnRVJSX0tFWV9TSVpFX1RPT19MQVJHRScpO1xuICAgIH1cbiAgICBjb25zdCBrZXlzID0gYXdhaXQgY3J5cHRvLmdlbmVyYXRlS2V5KGJpdHMpO1xuICAgIHJldHVybiBuZXcgUnNhUHJpdmF0ZUtleShrZXlzLnByaXZhdGVLZXksIGtleXMucHVibGljS2V5KTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJzYS1jbGFzcy5qcy5tYXAiXSwibmFtZXMiOlsiQ29kZUVycm9yIiwic2hhMjU2IiwiZXF1YWxzIiwidWludDhBcnJheUVxdWFscyIsInRvU3RyaW5nIiwidWludDhBcnJheVRvU3RyaW5nIiwiaXNQcm9taXNlIiwiZXhwb3J0ZXIiLCJwYm0iLCJjcnlwdG8iLCJNQVhfUlNBX0tFWV9TSVpFIiwiUnNhUHVibGljS2V5IiwiY29uc3RydWN0b3IiLCJrZXkiLCJfa2V5IiwidmVyaWZ5IiwiZGF0YSIsInNpZyIsImhhc2hBbmRWZXJpZnkiLCJtYXJzaGFsIiwidXRpbHMiLCJqd2tUb1BraXgiLCJieXRlcyIsIlB1YmxpY0tleSIsImVuY29kZSIsIlR5cGUiLCJLZXlUeXBlIiwiUlNBIiwiRGF0YSIsInN1YmFycmF5IiwiaGFzaCIsInAiLCJkaWdlc3QiLCJ0aGVuIiwiUnNhUHJpdmF0ZUtleSIsInB1YmxpY0tleSIsIl9wdWJsaWNLZXkiLCJnZW5TZWNyZXQiLCJnZXRSYW5kb21WYWx1ZXMiLCJzaWduIiwibWVzc2FnZSIsImhhc2hBbmRTaWduIiwicHVibGljIiwiandrVG9Qa2NzMSIsIlByaXZhdGVLZXkiLCJpZCIsImV4cG9ydCIsInBhc3N3b3JkIiwiZm9ybWF0IiwiZXhwb3J0VG9QZW0iLCJ1bm1hcnNoYWxSc2FQcml2YXRlS2V5IiwiandrIiwicGtjczFUb0p3ayIsImtleVNpemUiLCJrZXlzIiwidW5tYXJzaGFsUHJpdmF0ZUtleSIsInByaXZhdGVLZXkiLCJ1bm1hcnNoYWxSc2FQdWJsaWNLZXkiLCJwa2l4VG9Kd2siLCJmcm9tSndrIiwiZ2VuZXJhdGVLZXlQYWlyIiwiYml0cyIsImdlbmVyYXRlS2V5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/rsa-class.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/rsa-utils.js":
/*!****************************************************************!*\
!*** ./node_modules/@libp2p/crypto/dist/src/keys/rsa-utils.js ***!
\****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ exportToPem: () => (/* binding */ exportToPem),\n/* harmony export */ importFromPem: () => (/* binding */ importFromPem),\n/* harmony export */ jwkToPkcs1: () => (/* binding */ jwkToPkcs1),\n/* harmony export */ jwkToPkix: () => (/* binding */ jwkToPkix),\n/* harmony export */ pkcs1ToJwk: () => (/* binding */ pkcs1ToJwk),\n/* harmony export */ pkixToJwk: () => (/* binding */ pkixToJwk)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var _noble_hashes_pbkdf2__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @noble/hashes/pbkdf2 */ \"(ssr)/./node_modules/@noble/hashes/esm/pbkdf2.js\");\n/* harmony import */ var _noble_hashes_sha512__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @noble/hashes/sha512 */ \"(ssr)/./node_modules/@noble/hashes/esm/sha512.js\");\n/* harmony import */ var asn1js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! asn1js */ \"(ssr)/./node_modules/asn1js/build/index.es.js\");\n/* harmony import */ var uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uint8arrays/from-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/from-string.node.js\");\n/* harmony import */ var uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uint8arrays/to-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/to-string.node.js\");\n/* harmony import */ var _random_bytes_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../random-bytes.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/random-bytes.js\");\n/* harmony import */ var _webcrypto_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../webcrypto.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/webcrypto.js\");\n/* harmony import */ var _rsa_class_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./rsa-class.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/rsa-class.js\");\n\n\n\n\n\n\n\n\n\n/**\n * Convert a PKCS#1 in ASN1 DER format to a JWK key\n */ function pkcs1ToJwk(bytes) {\n const { result } = asn1js__WEBPACK_IMPORTED_MODULE_0__.fromBER(bytes);\n // @ts-expect-error this looks fragile but DER is a canonical format so we are\n // safe to have deeply property chains like this\n const values = result.valueBlock.value;\n const key = {\n n: (0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__.toString)(bnToBuf(values[1].toBigInt()), \"base64url\"),\n e: (0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__.toString)(bnToBuf(values[2].toBigInt()), \"base64url\"),\n d: (0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__.toString)(bnToBuf(values[3].toBigInt()), \"base64url\"),\n p: (0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__.toString)(bnToBuf(values[4].toBigInt()), \"base64url\"),\n q: (0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__.toString)(bnToBuf(values[5].toBigInt()), \"base64url\"),\n dp: (0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__.toString)(bnToBuf(values[6].toBigInt()), \"base64url\"),\n dq: (0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__.toString)(bnToBuf(values[7].toBigInt()), \"base64url\"),\n qi: (0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__.toString)(bnToBuf(values[8].toBigInt()), \"base64url\"),\n kty: \"RSA\",\n alg: \"RS256\"\n };\n return key;\n}\n/**\n * Convert a JWK key into PKCS#1 in ASN1 DER format\n */ function jwkToPkcs1(jwk) {\n if (jwk.n == null || jwk.e == null || jwk.d == null || jwk.p == null || jwk.q == null || jwk.dp == null || jwk.dq == null || jwk.qi == null) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_3__.CodeError(\"JWK was missing components\", \"ERR_INVALID_PARAMETERS\");\n }\n const root = new asn1js__WEBPACK_IMPORTED_MODULE_0__.Sequence({\n value: [\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.Integer({\n value: 0\n }),\n asn1js__WEBPACK_IMPORTED_MODULE_0__.Integer.fromBigInt(bufToBn((0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__.fromString)(jwk.n, \"base64url\"))),\n asn1js__WEBPACK_IMPORTED_MODULE_0__.Integer.fromBigInt(bufToBn((0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__.fromString)(jwk.e, \"base64url\"))),\n asn1js__WEBPACK_IMPORTED_MODULE_0__.Integer.fromBigInt(bufToBn((0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__.fromString)(jwk.d, \"base64url\"))),\n asn1js__WEBPACK_IMPORTED_MODULE_0__.Integer.fromBigInt(bufToBn((0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__.fromString)(jwk.p, \"base64url\"))),\n asn1js__WEBPACK_IMPORTED_MODULE_0__.Integer.fromBigInt(bufToBn((0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__.fromString)(jwk.q, \"base64url\"))),\n asn1js__WEBPACK_IMPORTED_MODULE_0__.Integer.fromBigInt(bufToBn((0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__.fromString)(jwk.dp, \"base64url\"))),\n asn1js__WEBPACK_IMPORTED_MODULE_0__.Integer.fromBigInt(bufToBn((0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__.fromString)(jwk.dq, \"base64url\"))),\n asn1js__WEBPACK_IMPORTED_MODULE_0__.Integer.fromBigInt(bufToBn((0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__.fromString)(jwk.qi, \"base64url\")))\n ]\n });\n const der = root.toBER();\n return new Uint8Array(der, 0, der.byteLength);\n}\n/**\n * Convert a PKCIX in ASN1 DER format to a JWK key\n */ function pkixToJwk(bytes) {\n const { result } = asn1js__WEBPACK_IMPORTED_MODULE_0__.fromBER(bytes);\n // @ts-expect-error this looks fragile but DER is a canonical format so we are\n // safe to have deeply property chains like this\n const values = result.valueBlock.value[1].valueBlock.value[0].valueBlock.value;\n return {\n kty: \"RSA\",\n n: (0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__.toString)(bnToBuf(values[0].toBigInt()), \"base64url\"),\n e: (0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__.toString)(bnToBuf(values[1].toBigInt()), \"base64url\")\n };\n}\n/**\n * Convert a JWK key to PKCIX in ASN1 DER format\n */ function jwkToPkix(jwk) {\n if (jwk.n == null || jwk.e == null) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_3__.CodeError(\"JWK was missing components\", \"ERR_INVALID_PARAMETERS\");\n }\n const root = new asn1js__WEBPACK_IMPORTED_MODULE_0__.Sequence({\n value: [\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.Sequence({\n value: [\n // rsaEncryption\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.ObjectIdentifier({\n value: \"1.2.840.113549.1.1.1\"\n }),\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.Null()\n ]\n }),\n // this appears to be a bug in asn1js.js - this should really be a Sequence\n // and not a BitString but it generates the same bytes as node-forge so 🤷‍♂️\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.BitString({\n valueHex: new asn1js__WEBPACK_IMPORTED_MODULE_0__.Sequence({\n value: [\n asn1js__WEBPACK_IMPORTED_MODULE_0__.Integer.fromBigInt(bufToBn((0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__.fromString)(jwk.n, \"base64url\"))),\n asn1js__WEBPACK_IMPORTED_MODULE_0__.Integer.fromBigInt(bufToBn((0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__.fromString)(jwk.e, \"base64url\")))\n ]\n }).toBER()\n })\n ]\n });\n const der = root.toBER();\n return new Uint8Array(der, 0, der.byteLength);\n}\nfunction bnToBuf(bn) {\n let hex = bn.toString(16);\n if (hex.length % 2 > 0) {\n hex = `0${hex}`;\n }\n const len = hex.length / 2;\n const u8 = new Uint8Array(len);\n let i = 0;\n let j = 0;\n while(i < len){\n u8[i] = parseInt(hex.slice(j, j + 2), 16);\n i += 1;\n j += 2;\n }\n return u8;\n}\nfunction bufToBn(u8) {\n const hex = [];\n u8.forEach(function(i) {\n let h = i.toString(16);\n if (h.length % 2 > 0) {\n h = `0${h}`;\n }\n hex.push(h);\n });\n return BigInt(\"0x\" + hex.join(\"\"));\n}\nconst SALT_LENGTH = 16;\nconst KEY_SIZE = 32;\nconst ITERATIONS = 10000;\nasync function exportToPem(privateKey, password) {\n const crypto = _webcrypto_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].get();\n // PrivateKeyInfo\n const keyWrapper = new asn1js__WEBPACK_IMPORTED_MODULE_0__.Sequence({\n value: [\n // version (0)\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.Integer({\n value: 0\n }),\n // privateKeyAlgorithm\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.Sequence({\n value: [\n // rsaEncryption OID\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.ObjectIdentifier({\n value: \"1.2.840.113549.1.1.1\"\n }),\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.Null()\n ]\n }),\n // PrivateKey\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.OctetString({\n valueHex: privateKey.marshal()\n })\n ]\n });\n const keyBuf = keyWrapper.toBER();\n const keyArr = new Uint8Array(keyBuf, 0, keyBuf.byteLength);\n const salt = (0,_random_bytes_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(SALT_LENGTH);\n const encryptionKey = await (0,_noble_hashes_pbkdf2__WEBPACK_IMPORTED_MODULE_6__.pbkdf2Async)(_noble_hashes_sha512__WEBPACK_IMPORTED_MODULE_7__.sha512, password, salt, {\n c: ITERATIONS,\n dkLen: KEY_SIZE\n });\n const iv = (0,_random_bytes_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(16);\n const cryptoKey = await crypto.subtle.importKey(\"raw\", encryptionKey, \"AES-CBC\", false, [\n \"encrypt\"\n ]);\n const encrypted = await crypto.subtle.encrypt({\n name: \"AES-CBC\",\n iv\n }, cryptoKey, keyArr);\n const pbkdf2Params = new asn1js__WEBPACK_IMPORTED_MODULE_0__.Sequence({\n value: [\n // salt\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.OctetString({\n valueHex: salt\n }),\n // iteration count\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.Integer({\n value: ITERATIONS\n }),\n // key length\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.Integer({\n value: KEY_SIZE\n }),\n // AlgorithmIdentifier\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.Sequence({\n value: [\n // hmacWithSHA512\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.ObjectIdentifier({\n value: \"1.2.840.113549.2.11\"\n }),\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.Null()\n ]\n })\n ]\n });\n const encryptionAlgorithm = new asn1js__WEBPACK_IMPORTED_MODULE_0__.Sequence({\n value: [\n // pkcs5PBES2\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.ObjectIdentifier({\n value: \"1.2.840.113549.1.5.13\"\n }),\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.Sequence({\n value: [\n // keyDerivationFunc\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.Sequence({\n value: [\n // pkcs5PBKDF2\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.ObjectIdentifier({\n value: \"1.2.840.113549.1.5.12\"\n }),\n // PBKDF2-params\n pbkdf2Params\n ]\n }),\n // encryptionScheme\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.Sequence({\n value: [\n // aes256-CBC\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.ObjectIdentifier({\n value: \"2.16.840.1.101.3.4.1.42\"\n }),\n // iv\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.OctetString({\n valueHex: iv\n })\n ]\n })\n ]\n })\n ]\n });\n const finalWrapper = new asn1js__WEBPACK_IMPORTED_MODULE_0__.Sequence({\n value: [\n encryptionAlgorithm,\n new asn1js__WEBPACK_IMPORTED_MODULE_0__.OctetString({\n valueHex: encrypted\n })\n ]\n });\n const finalWrapperBuf = finalWrapper.toBER();\n const finalWrapperArr = new Uint8Array(finalWrapperBuf, 0, finalWrapperBuf.byteLength);\n return [\n \"-----BEGIN ENCRYPTED PRIVATE KEY-----\",\n ...(0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__.toString)(finalWrapperArr, \"base64pad\").split(/(.{64})/).filter(Boolean),\n \"-----END ENCRYPTED PRIVATE KEY-----\"\n ].join(\"\\n\");\n}\nasync function importFromPem(pem, password) {\n const crypto = _webcrypto_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].get();\n let plaintext;\n if (pem.includes(\"-----BEGIN ENCRYPTED PRIVATE KEY-----\")) {\n const key = (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__.fromString)(pem.replace(\"-----BEGIN ENCRYPTED PRIVATE KEY-----\", \"\").replace(\"-----END ENCRYPTED PRIVATE KEY-----\", \"\").replace(/\\n/g, \"\").trim(), \"base64pad\");\n const { result } = asn1js__WEBPACK_IMPORTED_MODULE_0__.fromBER(key);\n const { iv, salt, iterations, keySize, cipherText } = findEncryptedPEMData(result);\n const encryptionKey = await (0,_noble_hashes_pbkdf2__WEBPACK_IMPORTED_MODULE_6__.pbkdf2Async)(_noble_hashes_sha512__WEBPACK_IMPORTED_MODULE_7__.sha512, password, salt, {\n c: iterations,\n dkLen: keySize\n });\n const cryptoKey = await crypto.subtle.importKey(\"raw\", encryptionKey, \"AES-CBC\", false, [\n \"decrypt\"\n ]);\n const decrypted = toUint8Array(await crypto.subtle.decrypt({\n name: \"AES-CBC\",\n iv\n }, cryptoKey, cipherText));\n const { result: decryptedResult } = asn1js__WEBPACK_IMPORTED_MODULE_0__.fromBER(decrypted);\n plaintext = findPEMData(decryptedResult);\n } else if (pem.includes(\"-----BEGIN PRIVATE KEY-----\")) {\n const key = (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__.fromString)(pem.replace(\"-----BEGIN PRIVATE KEY-----\", \"\").replace(\"-----END PRIVATE KEY-----\", \"\").replace(/\\n/g, \"\").trim(), \"base64pad\");\n const { result } = asn1js__WEBPACK_IMPORTED_MODULE_0__.fromBER(key);\n plaintext = findPEMData(result);\n } else {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_3__.CodeError(\"Could not parse private key from PEM data\", \"ERR_INVALID_PARAMETERS\");\n }\n return (0,_rsa_class_js__WEBPACK_IMPORTED_MODULE_8__.unmarshalRsaPrivateKey)(plaintext);\n}\nfunction findEncryptedPEMData(root) {\n const encryptionAlgorithm = root.valueBlock.value[0];\n const scheme = encryptionAlgorithm.valueBlock.value[0].toString();\n if (scheme !== \"OBJECT IDENTIFIER : 1.2.840.113549.1.5.13\") {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_3__.CodeError(\"Only pkcs5PBES2 encrypted private keys are supported\", \"ERR_INVALID_PARAMS\");\n }\n const keyDerivationFunc = encryptionAlgorithm.valueBlock.value[1].valueBlock.value[0];\n const keyDerivationFuncName = keyDerivationFunc.valueBlock.value[0].toString();\n if (keyDerivationFuncName !== \"OBJECT IDENTIFIER : 1.2.840.113549.1.5.12\") {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_3__.CodeError(\"Only pkcs5PBKDF2 key derivation functions are supported\", \"ERR_INVALID_PARAMS\");\n }\n const pbkdf2Params = keyDerivationFunc.valueBlock.value[1];\n const salt = toUint8Array(pbkdf2Params.valueBlock.value[0].getValue());\n let iterations = ITERATIONS;\n let keySize = KEY_SIZE;\n if (pbkdf2Params.valueBlock.value.length === 3) {\n iterations = Number(pbkdf2Params.valueBlock.value[1].toBigInt());\n keySize = Number(pbkdf2Params.valueBlock.value[2].toBigInt());\n } else if (pbkdf2Params.valueBlock.value.length === 2) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_3__.CodeError(\"Could not derive key size and iterations from PEM file - please use @libp2p/rsa to re-import your key\", \"ERR_INVALID_PARAMS\");\n }\n const encryptionScheme = encryptionAlgorithm.valueBlock.value[1].valueBlock.value[1];\n const encryptionSchemeName = encryptionScheme.valueBlock.value[0].toString();\n if (encryptionSchemeName === \"OBJECT IDENTIFIER : 1.2.840.113549.3.7\") {\n // des-EDE3-CBC\n } else if (encryptionSchemeName === \"OBJECT IDENTIFIER : 1.3.14.3.2.7\") {\n // des-CBC\n } else if (encryptionSchemeName === \"OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.2\") {\n // aes128-CBC\n } else if (encryptionSchemeName === \"OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.22\") {\n // aes192-CBC\n } else if (encryptionSchemeName === \"OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.42\") {\n // aes256-CBC\n } else {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_3__.CodeError(\"Only AES-CBC encryption schemes are supported\", \"ERR_INVALID_PARAMS\");\n }\n const iv = toUint8Array(encryptionScheme.valueBlock.value[1].getValue());\n return {\n cipherText: toUint8Array(root.valueBlock.value[1].getValue()),\n salt,\n iterations,\n keySize,\n iv\n };\n}\nfunction findPEMData(seq) {\n return toUint8Array(seq.valueBlock.value[2].getValue());\n}\nfunction toUint8Array(buf) {\n return new Uint8Array(buf, 0, buf.byteLength);\n} //# sourceMappingURL=rsa-utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMva2V5cy9yc2EtdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQThDO0FBQ0s7QUFDTDtBQUNiO0FBQzRDO0FBQ047QUFDMUI7QUFDTDtBQUNnQjtBQUN4RDs7Q0FFQyxHQUNNLFNBQVNXLFdBQVdDLEtBQUs7SUFDNUIsTUFBTSxFQUFFQyxNQUFNLEVBQUUsR0FBR1YsMkNBQWMsQ0FBQ1M7SUFDbEMsOEVBQThFO0lBQzlFLGdEQUFnRDtJQUNoRCxNQUFNRyxTQUFTRixPQUFPRyxVQUFVLENBQUNDLEtBQUs7SUFDdEMsTUFBTUMsTUFBTTtRQUNSQyxHQUFHWiwrREFBa0JBLENBQUNhLFFBQVFMLE1BQU0sQ0FBQyxFQUFFLENBQUNNLFFBQVEsS0FBSztRQUNyREMsR0FBR2YsK0RBQWtCQSxDQUFDYSxRQUFRTCxNQUFNLENBQUMsRUFBRSxDQUFDTSxRQUFRLEtBQUs7UUFDckRFLEdBQUdoQiwrREFBa0JBLENBQUNhLFFBQVFMLE1BQU0sQ0FBQyxFQUFFLENBQUNNLFFBQVEsS0FBSztRQUNyREcsR0FBR2pCLCtEQUFrQkEsQ0FBQ2EsUUFBUUwsTUFBTSxDQUFDLEVBQUUsQ0FBQ00sUUFBUSxLQUFLO1FBQ3JESSxHQUFHbEIsK0RBQWtCQSxDQUFDYSxRQUFRTCxNQUFNLENBQUMsRUFBRSxDQUFDTSxRQUFRLEtBQUs7UUFDckRLLElBQUluQiwrREFBa0JBLENBQUNhLFFBQVFMLE1BQU0sQ0FBQyxFQUFFLENBQUNNLFFBQVEsS0FBSztRQUN0RE0sSUFBSXBCLCtEQUFrQkEsQ0FBQ2EsUUFBUUwsTUFBTSxDQUFDLEVBQUUsQ0FBQ00sUUFBUSxLQUFLO1FBQ3RETyxJQUFJckIsK0RBQWtCQSxDQUFDYSxRQUFRTCxNQUFNLENBQUMsRUFBRSxDQUFDTSxRQUFRLEtBQUs7UUFDdERRLEtBQUs7UUFDTEMsS0FBSztJQUNUO0lBQ0EsT0FBT1o7QUFDWDtBQUNBOztDQUVDLEdB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LFVBQVUsQ0FBQ0MsS0FBSyxDQUFDLEVBQUUsQ0FBQytGLFFBQVE7QUFDeEQ7QUFDQSxTQUFTUCxhQUFhWSxHQUFHO0lBQ3JCLE9BQU8sSUFBSTdFLFdBQVc2RSxLQUFLLEdBQUdBLElBQUk1RSxVQUFVO0FBQ2hELEVBQ0EscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMva2V5cy9yc2EtdXRpbHMuanM/MDVhYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2RlRXJyb3IgfSBmcm9tICdAbGlicDJwL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBwYmtkZjJBc3luYyB9IGZyb20gJ0Bub2JsZS9oYXNoZXMvcGJrZGYyJztcbmltcG9ydCB7IHNoYTUxMiB9IGZyb20gJ0Bub2JsZS9oYXNoZXMvc2hhNTEyJztcbmltcG9ydCAqIGFzIGFzbjFqcyBmcm9tICdhc24xanMnO1xuaW1wb3J0IHsgZnJvbVN0cmluZyBhcyB1aW50OEFycmF5RnJvbVN0cmluZyB9IGZyb20gJ3VpbnQ4YXJyYXlzL2Zyb20tc3RyaW5nJztcbmltcG9ydCB7IHRvU3RyaW5nIGFzIHVpbnQ4QXJyYXlUb1N0cmluZyB9IGZyb20gJ3VpbnQ4YXJyYXlzL3RvLXN0cmluZyc7XG5pbXBvcnQgcmFuZG9tQnl0ZXMgZnJvbSAnLi4vcmFuZG9tLWJ5dGVzLmpzJztcbmltcG9ydCB3ZWJjcnlwdG8gZnJvbSAnLi4vd2ViY3J5cHRvLmpzJztcbmltcG9ydCB7IHVubWFyc2hhbFJzYVByaXZhdGVLZXkgfSBmcm9tICcuL3JzYS1jbGFzcy5qcyc7XG4vKipcbiAqIENvbnZlcnQgYSBQS0NTIzEgaW4gQVNOMSBERVIgZm9ybWF0IHRvIGEgSldLIGtleVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGtjczFUb0p3ayhieXRlcykge1xuICAgIGNvbnN0IHsgcmVzdWx0IH0gPSBhc24xanMuZnJvbUJFUihieXRlcyk7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciB0aGlzIGxvb2tzIGZyYWdpbGUgYnV0IERFUiBpcyBhIGNhbm9uaWNhbCBmb3JtYXQgc28gd2UgYXJlXG4gICAgLy8gc2FmZSB0byBoYXZlIGRlZXBseSBwcm9wZXJ0eSBjaGFpbnMgbGlrZSB0aGlzXG4gICAgY29uc3QgdmFsdWVzID0gcmVzdWx0LnZhbHVlQmxvY2sudmFsdWU7XG4gICAgY29uc3Qga2V5ID0ge1xuICAgICAgICBuOiB1aW50OEFycmF5VG9TdHJpbmcoYm5Ub0J1Zih2YWx1ZXNbMV0udG9CaWdJbnQoKSksICdiYXNlNjR1cmwnKSxcbiAgICAgICAgZTogdWludDhBcnJheVRvU3RyaW5nKGJuVG9CdWYodmFsdWVzWzJdLnRvQmlnSW50KCkpLCAnYmFzZTY0dXJsJyksXG4gICAgICAgIGQ6IHVpbnQ4QXJyYXlUb1N0cmluZyhiblRvQnVmKHZhbHVlc1szXS50b0JpZ0ludCgpKSwgJ2Jhc2U2NHVybCcpLFxuICAgICAgICBwOiB1aW50OEFycmF5VG9TdHJpbmcoYm5Ub0J1Zih2YWx1ZXNbNF0udG9CaWdJbnQoKSksICdiYXNlNjR1cmwnKSxcbiAgICAgICAgcTogdWludDhBcnJheVRvU3RyaW5nKGJuVG9CdWYodmFsdWVzWzVdLnRvQmlnSW50KCkpLCAnYmFzZTY0dXJsJyksXG4gICAgICAgIGRwOiB1aW50OEFycmF5VG9TdHJpbmcoYm5Ub0J1Zih2YWx1ZXNbNl0udG9CaWdJbnQoKSksICdiYXNlNjR1cmwnKSxcbiAgICAgICAgZHE6IHVpbnQ4QXJyYXlUb1N0cmluZyhiblRvQnVmKHZhbHVlc1s3XS50b0JpZ0ludCgpKSwgJ2Jhc2U2NHVybCcpLFxuICAgICAgICBxaTogdWludDhBcnJheVRvU3RyaW5nKGJuVG9CdWYodmFsdWVzWzhdLnRvQmlnSW50KCkpLCAnYmFzZTY0dXJsJyksXG4gICAgICAgIGt0eTogJ1JTQScsXG4gICAgICAgIGFsZzogJ1JTMjU2J1xuICAgIH07XG4gICAgcmV0dXJuIGtleTtcbn1cbi8qKlxuICogQ29udmVydCBhIEpXSyBrZXkgaW50byBQS0NTIzEgaW4gQVNOMSBERVIgZm9ybWF0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBqd2tUb1BrY3MxKGp3aykge1xuICAgIGlmIChqd2subiA9PSBudWxsIHx8IGp3ay5lID09IG51bGwgfHwgandrLmQgPT0gbnVsbCB8fCBqd2sucCA9PSBudWxsIHx8IGp3ay5xID09IG51bGwgfHwgandrLmRwID09IG51bGwgfHwgandrLmRxID09IG51bGwgfHwgandrLnFpID09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcignSldLIHdhcyBtaXNzaW5nIGNvbXBvbmVudHMnLCAnRVJSX0lOVkFMSURfUEFSQU1FVEVSUycpO1xuICAgIH1cbiAgICBjb25zdCByb290ID0gbmV3IGFzbjFqcy5TZXF1ZW5jZSh7XG4gICAgICAgIHZhbHVlOiBbXG4gICAgICAgICAgICBuZXcgYXNuMWpzLkludGVnZXIoeyB2YWx1ZTogMCB9KSxcbiAgICAgICAgICAgIGFzbjFqcy5JbnRlZ2VyLmZyb21CaWdJbnQoYnVmVG9Cbih1aW50OEFycmF5RnJvbVN0cmluZyhqd2subiwgJ2Jhc2U2NHVybCcpKSksXG4gICAgICAgICAgICBhc24xanMuSW50ZWdlci5mcm9tQmlnSW50KGJ1ZlRvQm4odWludDhBcnJheUZyb21TdHJpbmcoandrLmUsICdiYXNlNjR1cmwnKSkpLFxuICAgICAgICAgICAgYXNuMWpzLkludGVnZXIuZnJvbUJpZ0ludChidWZUb0JuKHVpbnQ4QXJyYXlGcm9tU3RyaW5nKGp3ay5kLCAnYmFzZTY0dXJsJykpKSxcbiAgICAgICAgICAgIGFzbjFqcy5JbnRlZ2VyLmZyb21CaWdJbnQoYnVmVG9Cbih1aW50OEFycmF5RnJvbVN0cmluZyhqd2sucCwgJ2Jhc2U2NHVybCcpKSksXG4gICAgICAgICAgICBhc24xanMuSW50ZWdlci5mcm9tQmlnSW50KGJ1ZlRvQm4odWludDhBcnJheUZyb21TdHJpbmcoandrLnEsICdiYXNlNjR1cmwnKSkpLFxuICAgICAgICAgICAgYXNuMWpzLkludGVnZXIuZnJvbUJpZ0ludChidWZUb0JuKHVpbnQ4QXJyYXlGcm9tU3RyaW5nKGp3ay5kcCwgJ2Jhc2U2NHVybCcpKSksXG4gICAgICAgICAgICBhc24xanMuSW50ZWdlci5mcm9tQmlnSW50KGJ1ZlRvQm4odWludDhBcnJheUZyb21TdHJpbmcoandrLmRxLCAnYmFzZTY0dXJsJykpKSxcbiAgICAgICAgICAgIGFzbjFqcy5JbnRlZ2VyLmZyb21CaWdJbnQoYnVmVG9Cbih1aW50OEFycmF5RnJvbVN0cmluZyhqd2sucWksICdiYXNlNjR1cmwnKSkpXG4gICAgICAgIF1cbiAgICB9KTtcbiAgICBjb25zdCBkZXIgPSByb290LnRvQkVSKCk7XG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGRlciwgMCwgZGVyLmJ5dGVMZW5ndGgpO1xufVxuLyoqXG4gKiBDb252ZXJ0IGEgUEtDSVggaW4gQVNOMSBERVIgZm9ybWF0IHRvIGEgSldLIGtleVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGtpeFRvSndrKGJ5dGVzKSB7XG4gICAgY29uc3QgeyByZXN1bHQgfSA9IGFzbjFqcy5mcm9tQkVSKGJ5dGVzKTtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHRoaXMgbG9va3MgZnJhZ2lsZSBidXQgREVSIGlzIGEgY2Fub25pY2FsIGZvcm1hdCBzbyB3ZSBhcmVcbiAgICAvLyBzYWZlIHRvIGhhdmUgZGVlcGx5IHByb3BlcnR5IGNoYWlucyBsaWtlIHRoaXNcbiAgICBjb25zdCB2YWx1ZXMgPSByZXN1bHQudmFsdWVCbG9jay52YWx1ZVsxXS52YWx1ZUJsb2NrLnZhbHVlWzBdLnZhbHVlQmxvY2sudmFsdWU7XG4gICAgcmV0dXJuIHtcbiAgICAgICAga3R5OiAnUlNBJyxcbiAgICAgICAgbjogdWludDhBcnJheVRvU3RyaW5nKGJuVG9CdWYodmFsdWVzWzBdLnRvQmlnSW50KCkpLCAnYmFzZTY0dXJsJyksXG4gICAgICAgIGU6IHVpbnQ4QXJyYXlUb1N0cmluZyhiblRvQnVmKHZhbHVlc1sxXS50b0JpZ0ludCgpKSwgJ2Jhc2U2NHVybCcpXG4gICAgfTtcbn1cbi8qKlxuICogQ29udmVydCBhIEpXSyBrZXkgdG8gUEtDSVggaW4gQVNOMSBERVIgZm9ybWF0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBqd2tUb1BraXgoandrKSB7XG4gICAgaWYgKGp3ay5uID09IG51bGwgfHwgandrLmUgPT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgQ29kZUVycm9yKCdKV0sgd2FzIG1pc3NpbmcgY29tcG9uZW50cycsICdFUlJfSU5WQUxJRF9QQVJBTUVURVJTJyk7XG4gICAgfVxuICAgIGNvbnN0IHJvb3QgPSBuZXcgYXNuMWpzLlNlcXVlbmNlKHtcbiAgICAgICAgdmFsdWU6IFtcbiAgICAgICAgICAgIG5ldyBhc24xanMuU2VxdWVuY2Uoe1xuICAgICAgICAgICAgICAgIHZhbHVlOiBbXG4gICAgICAgICAgICAgICAgICAgIC8vIHJzYUVuY3J5cHRpb25cbiAgICAgICAgICAgICAgICAgICAgbmV3IGFzbjFqcy5PYmplY3RJZGVudGlmaWVyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnMS4yLjg0MC4xMTM1NDkuMS4xLjEnXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBuZXcgYXNuMWpzLk51bGwoKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgLy8gdGhpcyBhcHBlYXJzIHRvIGJlIGEgYnVnIGluIGFzbjFqcy5qcyAtIHRoaXMgc2hvdWxkIHJlYWxseSBiZSBhIFNlcXVlbmNlXG4gICAgICAgICAgICAvLyBhbmQgbm90IGEgQml0U3RyaW5nIGJ1dCBpdCBnZW5lcmF0ZXMgdGhlIHNhbWUgYnl0ZXMgYXMgbm9kZS1mb3JnZSBzbyDwn6S34oCN4pmC77iPXG4gICAgICAgICAgICBuZXcgYXNuMWpzLkJpdFN0cmluZyh7XG4gICAgICAgICAgICAgICAgdmFsdWVIZXg6IG5ldyBhc24xanMuU2VxdWVuY2Uoe1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogW1xuICAgICAgICAgICAgICAgICAgICAgICAgYXNuMWpzLkludGVnZXIuZnJvbUJpZ0ludChidWZUb0JuKHVpbnQ4QXJyYXlGcm9tU3RyaW5nKGp3ay5uLCAnYmFzZTY0dXJsJykpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFzbjFqcy5JbnRlZ2VyLmZyb21CaWdJbnQoYnVmVG9Cbih1aW50OEFycmF5RnJvbVN0cmluZyhqd2suZSwgJ2Jhc2U2NHVybCcpKSlcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH0pLnRvQkVSKClcbiAgICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICB9KTtcbiAgICBjb25zdCBkZXIgPSByb290LnRvQkVSKCk7XG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGRlciwgMCwgZGVyLmJ5dGVMZW5ndGgpO1xufVxuZnVuY3Rpb24gYm5Ub0J1Zihibikge1xuICAgIGxldCBoZXggPSBibi50b1N0cmluZygxNik7XG4gICAgaWYgKGhleC5sZW5ndGggJSAyID4gMCkge1xuICAgICAgICBoZXggPSBgMCR7aGV4fWA7XG4gICAgfVxuICAgIGNvbnN0IGxlbiA9IGhleC5sZW5ndGggLyAyO1xuICAgIGNvbnN0IHU4ID0gbmV3IFVpbnQ4QXJyYXkobGVuKTtcbiAgICBsZXQgaSA9IDA7XG4gICAgbGV0IGogPSAwO1xuICAgIHdoaWxlIChpIDwgbGVuKSB7XG4gICAgICAgIHU4W2ldID0gcGFyc2VJbnQoaGV4LnNsaWNlKGosIGogKyAyKSwgMTYpO1xuICAgICAgICBpICs9IDE7XG4gICAgICAgIGogKz0gMjtcbiAgICB9XG4gICAgcmV0dXJuIHU4O1xufVxuZnVuY3Rpb24gYnVmVG9Cbih1OCkge1xuICAgIGNvbnN0IGhleCA9IFtdO1xuICAgIHU4LmZvckVhY2goZnVuY3Rpb24gKGkpIHtcbiAgICAgICAgbGV0IGggPSBpLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgaWYgKGgubGVuZ3RoICUgMiA+IDApIHtcbiAgICAgICAgICAgIGggPSBgMCR7aH1gO1xuICAgICAgICB9XG4gICAgICAgIGhleC5wdXNoKGgpO1xuICAgIH0pO1xuICAgIHJldHVybiBCaWdJbnQoJzB4JyArIGhleC5qb2luKCcnKSk7XG59XG5jb25zdCBTQUxUX0xFTkdUSCA9IDE2O1xuY29uc3QgS0VZX1NJWkUgPSAzMjtcbmNvbnN0IElURVJBVElPTlMgPSAxMDAwMDtcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleHBvcnRUb1BlbShwcml2YXRlS2V5LCBwYXNzd29yZCkge1xuICAgIGNvbnN0IGNyeXB0byA9IHdlYmNyeXB0by5nZXQoKTtcbiAgICAvLyBQcml2YXRlS2V5SW5mb1xuICAgIGNvbnN0IGtleVdyYXBwZXIgPSBuZXcgYXNuMWpzLlNlcXVlbmNlKHtcbiAgICAgICAgdmFsdWU6IFtcbiAgICAgICAgICAgIC8vIHZlcnNpb24gKDApXG4gICAgICAgICAgICBuZXcgYXNuMWpzLkludGVnZXIoeyB2YWx1ZTogMCB9KSxcbiAgICAgICAgICAgIC8vIHByaXZhdGVLZXlBbGdvcml0aG1cbiAgICAgICAgICAgIG5ldyBhc24xanMuU2VxdWVuY2Uoe1xuICAgICAgICAgICAgICAgIHZhbHVlOiBbXG4gICAgICAgICAgICAgICAgICAgIC8vIHJzYUVuY3J5cHRpb24gT0lEXG4gICAgICAgICAgICAgICAgICAgIG5ldyBhc24xanMuT2JqZWN0SWRlbnRpZmllcih7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJzEuMi44NDAuMTEzNTQ5LjEuMS4xJ1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgbmV3IGFzbjFqcy5OdWxsKClcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIC8vIFByaXZhdGVLZXlcbiAgICAgICAgICAgIG5ldyBhc24xanMuT2N0ZXRTdHJpbmcoe1xuICAgICAgICAgICAgICAgIHZhbHVlSGV4OiBwcml2YXRlS2V5Lm1hcnNoYWwoKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgXVxuICAgIH0pO1xuICAgIGNvbnN0IGtleUJ1ZiA9IGtleVdyYXBwZXIudG9CRVIoKTtcbiAgICBjb25zdCBrZXlBcnIgPSBuZXcgVWludDhBcnJheShrZXlCdWYsIDAsIGtleUJ1Zi5ieXRlTGVuZ3RoKTtcbiAgICBjb25zdCBzYWx0ID0gcmFuZG9tQnl0ZXMoU0FMVF9MRU5HVEgpO1xuICAgIGNvbnN0IGVuY3J5cHRpb25LZXkgPSBhd2FpdCBwYmtkZjJBc3luYyhzaGE1MTIsIHBhc3N3b3JkLCBzYWx0LCB7XG4gICAgICAgIGM6IElURVJBVElPTlMsXG4gICAgICAgIGRrTGVuOiBLRVlfU0laRVxuICAgIH0pO1xuICAgIGNvbnN0IGl2ID0gcmFuZG9tQnl0ZXMoMTYpO1xuICAgIGNvbnN0IGNyeXB0b0tleSA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCdyYXcnLCBlbmNyeXB0aW9uS2V5LCAnQUVTLUNCQycsIGZhbHNlLCBbJ2VuY3J5cHQnXSk7XG4gICAgY29uc3QgZW5jcnlwdGVkID0gYXdhaXQgY3J5cHRvLnN1YnRsZS5lbmNyeXB0KHtcbiAgICAgICAgbmFtZTogJ0FFUy1DQkMnLFxuICAgICAgICBpdlxuICAgIH0sIGNyeXB0b0tleSwga2V5QXJyKTtcbiAgICBjb25zdCBwYmtkZjJQYXJhbXMgPSBuZXcgYXNuMWpzLlNlcXVlbmNlKHtcbiAgICAgICAgdmFsdWU6IFtcbiAgICAgICAgICAgIC8vIHNhbHRcbiAgICAgICAgICAgIG5ldyBhc24xanMuT2N0ZXRTdHJpbmcoeyB2YWx1ZUhleDogc2FsdCB9KSxcbiAgICAgICAgICAgIC8vIGl0ZXJhdGlvbiBjb3VudFxuICAgICAgICAgICAgbmV3IGFzbjFqcy5JbnRlZ2VyKHsgdmFsdWU6IElURVJBVElPTlMgfSksXG4gICAgICAgICAgICAvLyBrZXkgbGVuZ3RoXG4gICAgICAgICAgICBuZXcgYXNuMWpzLkludGVnZXIoeyB2YWx1ZTogS0VZX1NJWkUgfSksXG4gICAgICAgICAgICAvLyBBbGdvcml0aG1JZGVudGlmaWVyXG4gICAgICAgICAgICBuZXcgYXNuMWpzLlNlcXVlbmNlKHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogW1xuICAgICAgICAgICAgICAgICAgICAvLyBobWFjV2l0aFNIQTUxMlxuICAgICAgICAgICAgICAgICAgICBuZXcgYXNuMWpzLk9iamVjdElkZW50aWZpZXIoeyB2YWx1ZTogJzEuMi44NDAuMTEzNTQ5LjIuMTEnIH0pLFxuICAgICAgICAgICAgICAgICAgICBuZXcgYXNuMWpzLk51bGwoKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICB9KTtcbiAgICBjb25zdCBlbmNyeXB0aW9uQWxnb3JpdGhtID0gbmV3IGFzbjFqcy5TZXF1ZW5jZSh7XG4gICAgICAgIHZhbHVlOiBbXG4gICAgICAgICAgICAvLyBwa2NzNVBCRVMyXG4gICAgICAgICAgICBuZXcgYXNuMWpzLk9iamVjdElkZW50aWZpZXIoe1xuICAgICAgICAgICAgICAgIHZhbHVlOiAnMS4yLjg0MC4xMTM1NDkuMS41LjEzJ1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgYXNuMWpzLlNlcXVlbmNlKHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogW1xuICAgICAgICAgICAgICAgICAgICAvLyBrZXlEZXJpdmF0aW9uRnVuY1xuICAgICAgICAgICAgICAgICAgICBuZXcgYXNuMWpzLlNlcXVlbmNlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGtjczVQQktERjJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgYXNuMWpzLk9iamVjdElkZW50aWZpZXIoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJzEuMi44NDAuMTEzNTQ5LjEuNS4xMidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQQktERjItcGFyYW1zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGJrZGYyUGFyYW1zXG4gICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAvLyBlbmNyeXB0aW9uU2NoZW1lXG4gICAgICAgICAgICAgICAgICAgIG5ldyBhc24xanMuU2VxdWVuY2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZXMyNTYtQ0JDXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGFzbjFqcy5PYmplY3RJZGVudGlmaWVyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICcyLjE2Ljg0MC4xLjEwMS4zLjQuMS40MidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBhc24xanMuT2N0ZXRTdHJpbmcoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUhleDogaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICB9KTtcbiAgICBjb25zdCBmaW5hbFdyYXBwZXIgPSBuZXcgYXNuMWpzLlNlcXVlbmNlKHtcbiAgICAgICAgdmFsdWU6IFtcbiAgICAgICAgICAgIGVuY3J5cHRpb25BbGdvcml0aG0sXG4gICAgICAgICAgICBuZXcgYXNuMWpzLk9jdGV0U3RyaW5nKHsgdmFsdWVIZXg6IGVuY3J5cHRlZCB9KVxuICAgICAgICBdXG4gICAgfSk7XG4gICAgY29uc3QgZmluYWxXcmFwcGVyQnVmID0gZmluYWxXcmFwcGVyLnRvQkVSKCk7XG4gICAgY29uc3QgZmluYWxXcmFwcGVyQXJyID0gbmV3IFVpbnQ4QXJyYXkoZmluYWxXcmFwcGVyQnVmLCAwLCBmaW5hbFdyYXBwZXJCdWYuYnl0ZUxlbmd0aCk7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgJy0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0nLFxuICAgICAgICAuLi51aW50OEFycmF5VG9TdHJpbmcoZmluYWxXcmFwcGVyQXJyLCAnYmFzZTY0cGFkJykuc3BsaXQoLyguezY0fSkvKS5maWx0ZXIoQm9vbGVhbiksXG4gICAgICAgICctLS0tLUVORCBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLSdcbiAgICBdLmpvaW4oJ1xcbicpO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGltcG9ydEZyb21QZW0ocGVtLCBwYXNzd29yZCkge1xuICAgIGNvbnN0IGNyeXB0byA9IHdlYmNyeXB0by5nZXQoKTtcbiAgICBsZXQgcGxhaW50ZXh0O1xuICAgIGlmIChwZW0uaW5jbHVkZXMoJy0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0nKSkge1xuICAgICAgICBjb25zdCBrZXkgPSB1aW50OEFycmF5RnJvbVN0cmluZyhwZW1cbiAgICAgICAgICAgIC5yZXBsYWNlKCctLS0tLUJFR0lOIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tJywgJycpXG4gICAgICAgICAgICAucmVwbGFjZSgnLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0nLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXG4vZywgJycpXG4gICAgICAgICAgICAudHJpbSgpLCAnYmFzZTY0cGFkJyk7XG4gICAgICAgIGNvbnN0IHsgcmVzdWx0IH0gPSBhc24xanMuZnJvbUJFUihrZXkpO1xuICAgICAgICBjb25zdCB7IGl2LCBzYWx0LCBpdGVyYXRpb25zLCBrZXlTaXplLCBjaXBoZXJUZXh0IH0gPSBmaW5kRW5jcnlwdGVkUEVNRGF0YShyZXN1bHQpO1xuICAgICAgICBjb25zdCBlbmNyeXB0aW9uS2V5ID0gYXdhaXQgcGJrZGYyQXN5bmMoc2hhNTEyLCBwYXNzd29yZCwgc2FsdCwge1xuICAgICAgICAgICAgYzogaXRlcmF0aW9ucyxcbiAgICAgICAgICAgIGRrTGVuOiBrZXlTaXplXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBjcnlwdG9LZXkgPSBhd2FpdCBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgncmF3JywgZW5jcnlwdGlvbktleSwgJ0FFUy1DQkMnLCBmYWxzZSwgWydkZWNyeXB0J10pO1xuICAgICAgICBjb25zdCBkZWNyeXB0ZWQgPSB0b1VpbnQ4QXJyYXkoYXdhaXQgY3J5cHRvLnN1YnRsZS5kZWNyeXB0KHtcbiAgICAgICAgICAgIG5hbWU6ICdBRVMtQ0JDJyxcbiAgICAgICAgICAgIGl2XG4gICAgICAgIH0sIGNyeXB0b0tleSwgY2lwaGVyVGV4dCkpO1xuICAgICAgICBjb25zdCB7IHJlc3VsdDogZGVjcnlwdGVkUmVzdWx0IH0gPSBhc24xanMuZnJvbUJFUihkZWNyeXB0ZWQpO1xuICAgICAgICBwbGFpbnRleHQgPSBmaW5kUEVNRGF0YShkZWNyeXB0ZWRSZXN1bHQpO1xuICAgIH1cbiAgICBlbHNlIGlmIChwZW0uaW5jbHVkZXMoJy0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLScpKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IHVpbnQ4QXJyYXlGcm9tU3RyaW5nKHBlbVxuICAgICAgICAgICAgLnJlcGxhY2UoJy0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLScsICcnKVxuICAgICAgICAgICAgLnJlcGxhY2UoJy0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0nLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXG4vZywgJycpXG4gICAgICAgICAgICAudHJpbSgpLCAnYmFzZTY0cGFkJyk7XG4gICAgICAgIGNvbnN0IHsgcmVzdWx0IH0gPSBhc24xanMuZnJvbUJFUihrZXkpO1xuICAgICAgICBwbGFpbnRleHQgPSBmaW5kUEVNRGF0YShyZXN1bHQpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcignQ291bGQgbm90IHBhcnNlIHByaXZhdGUga2V5IGZyb20gUEVNIGRhdGEnLCAnRVJSX0lOVkFMSURfUEFSQU1FVEVSUycpO1xuICAgIH1cbiAgICByZXR1cm4gdW5tYXJzaGFsUnNhUHJpdmF0ZUtleShwbGFpbnRleHQpO1xufVxuZnVuY3Rpb24gZmluZEVuY3J5cHRlZFBFTURhdGEocm9vdCkge1xuICAgIGNvbnN0IGVuY3J5cHRpb25BbGdvcml0aG0gPSByb290LnZhbHVlQmxvY2sudmFsdWVbMF07XG4gICAgY29uc3Qgc2NoZW1lID0gZW5jcnlwdGlvbkFsZ29yaXRobS52YWx1ZUJsb2NrLnZhbHVlWzBdLnRvU3RyaW5nKCk7XG4gICAgaWYgKHNjaGVtZSAhPT0gJ09CSkVDVCBJREVOVElGSUVSIDogMS4yLjg0MC4xMTM1NDkuMS41LjEzJykge1xuICAgICAgICB0aHJvdyBuZXcgQ29kZUVycm9yKCdPbmx5IHBrY3M1UEJFUzIgZW5jcnlwdGVkIHByaXZhdGUga2V5cyBhcmUgc3VwcG9ydGVkJywgJ0VSUl9JTlZBTElEX1BBUkFNUycpO1xuICAgIH1cbiAgICBjb25zdCBrZXlEZXJpdmF0aW9uRnVuYyA9IGVuY3J5cHRpb25BbGdvcml0aG0udmFsdWVCbG9jay52YWx1ZVsxXS52YWx1ZUJsb2NrLnZhbHVlWzBdO1xuICAgIGNvbnN0IGtleURlcml2YXRpb25GdW5jTmFtZSA9IGtleURlcml2YXRpb25GdW5jLnZhbHVlQmxvY2sudmFsdWVbMF0udG9TdHJpbmcoKTtcbiAgICBpZiAoa2V5RGVyaXZhdGlvbkZ1bmNOYW1lICE9PSAnT0JKRUNUIElERU5USUZJRVIgOiAxLjIuODQwLjExMzU0OS4xLjUuMTInKSB7XG4gICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoJ09ubHkgcGtjczVQQktERjIga2V5IGRlcml2YXRpb24gZnVuY3Rpb25zIGFyZSBzdXBwb3J0ZWQnLCAnRVJSX0lOVkFMSURfUEFSQU1TJyk7XG4gICAgfVxuICAgIGNvbnN0IHBia2RmMlBhcmFtcyA9IGtleURlcml2YXRpb25GdW5jLnZhbHVlQmxvY2sudmFsdWVbMV07XG4gICAgY29uc3Qgc2FsdCA9IHRvVWludDhBcnJheShwYmtkZjJQYXJhbXMudmFsdWVCbG9jay52YWx1ZVswXS5nZXRWYWx1ZSgpKTtcbiAgICBsZXQgaXRlcmF0aW9ucyA9IElURVJBVElPTlM7XG4gICAgbGV0IGtleVNpemUgPSBLRVlfU0laRTtcbiAgICBpZiAocGJrZGYyUGFyYW1zLnZhbHVlQmxvY2sudmFsdWUubGVuZ3RoID09PSAzKSB7XG4gICAgICAgIGl0ZXJhdGlvbnMgPSBOdW1iZXIocGJrZGYyUGFyYW1zLnZhbHVlQmxvY2sudmFsdWVbMV0udG9CaWdJbnQoKSk7XG4gICAgICAgIGtleVNpemUgPSBOdW1iZXIoKHBia2RmMlBhcmFtcy52YWx1ZUJsb2NrLnZhbHVlWzJdKS50b0JpZ0ludCgpKTtcbiAgICB9XG4gICAgZWxzZSBpZiAocGJrZGYyUGFyYW1zLnZhbHVlQmxvY2sudmFsdWUubGVuZ3RoID09PSAyKSB7XG4gICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoJ0NvdWxkIG5vdCBkZXJpdmUga2V5IHNpemUgYW5kIGl0ZXJhdGlvbnMgZnJvbSBQRU0gZmlsZSAtIHBsZWFzZSB1c2UgQGxpYnAycC9yc2EgdG8gcmUtaW1wb3J0IHlvdXIga2V5JywgJ0VSUl9JTlZBTElEX1BBUkFNUycpO1xuICAgIH1cbiAgICBjb25zdCBlbmNyeXB0aW9uU2NoZW1lID0gZW5jcnlwdGlvbkFsZ29yaXRobS52YWx1ZUJsb2NrLnZhbHVlWzFdLnZhbHVlQmxvY2sudmFsdWVbMV07XG4gICAgY29uc3QgZW5jcnlwdGlvblNjaGVtZU5hbWUgPSBlbmNyeXB0aW9uU2NoZW1lLnZhbHVlQmxvY2sudmFsdWVbMF0udG9TdHJpbmcoKTtcbiAgICBpZiAoZW5jcnlwdGlvblNjaGVtZU5hbWUgPT09ICdPQkpFQ1QgSURFTlRJRklFUiA6IDEuMi44NDAuMTEzNTQ5LjMuNycpIHtcbiAgICAgICAgLy8gZGVzLUVERTMtQ0JDXG4gICAgfVxuICAgIGVsc2UgaWYgKGVuY3J5cHRpb25TY2hlbWVOYW1lID09PSAnT0JKRUNUIElERU5USUZJRVIgOiAxLjMuMTQuMy4yLjcnKSB7XG4gICAgICAgIC8vIGRlcy1DQkNcbiAgICB9XG4gICAgZWxzZSBpZiAoZW5jcnlwdGlvblNjaGVtZU5hbWUgPT09ICdPQkpFQ1QgSURFTlRJRklFUiA6IDIuMTYuODQwLjEuMTAxLjMuNC4xLjInKSB7XG4gICAgICAgIC8vIGFlczEyOC1DQkNcbiAgICB9XG4gICAgZWxzZSBpZiAoZW5jcnlwdGlvblNjaGVtZU5hbWUgPT09ICdPQkpFQ1QgSURFTlRJRklFUiA6IDIuMTYuODQwLjEuMTAxLjMuNC4xLjIyJykge1xuICAgICAgICAvLyBhZXMxOTItQ0JDXG4gICAgfVxuICAgIGVsc2UgaWYgKGVuY3J5cHRpb25TY2hlbWVOYW1lID09PSAnT0JKRUNUIElERU5USUZJRVIgOiAyLjE2Ljg0MC4xLjEwMS4zLjQuMS40MicpIHtcbiAgICAgICAgLy8gYWVzMjU2LUNCQ1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcignT25seSBBRVMtQ0JDIGVuY3J5cHRpb24gc2NoZW1lcyBhcmUgc3VwcG9ydGVkJywgJ0VSUl9JTlZBTElEX1BBUkFNUycpO1xuICAgIH1cbiAgICBjb25zdCBpdiA9IHRvVWludDhBcnJheShlbmNyeXB0aW9uU2NoZW1lLnZhbHVlQmxvY2sudmFsdWVbMV0uZ2V0VmFsdWUoKSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY2lwaGVyVGV4dDogdG9VaW50OEFycmF5KHJvb3QudmFsdWVCbG9jay52YWx1ZVsxXS5nZXRWYWx1ZSgpKSxcbiAgICAgICAgc2FsdCxcbiAgICAgICAgaXRlcmF0aW9ucyxcbiAgICAgICAga2V5U2l6ZSxcbiAgICAgICAgaXZcbiAgICB9O1xufVxuZnVuY3Rpb24gZmluZFBFTURhdGEoc2VxKSB7XG4gICAgcmV0dXJuIHRvVWludDhBcnJheShzZXEudmFsdWVCbG9jay52YWx1ZVsyXS5nZXRWYWx1ZSgpKTtcbn1cbmZ1bmN0aW9uIHRvVWludDhBcnJheShidWYpIHtcbiAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYnVmLCAwLCBidWYuYnl0ZUxlbmd0aCk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yc2EtdXRpbHMuanMubWFwIl0sIm5hbWVzIjpbIkNvZGVFcnJvciIsInBia2RmMkFzeW5jIiwic2hhNTEyIiwiYXNuMWpzIiwiZnJvbVN0cmluZyIsInVpbnQ4QXJyYXlGcm9tU3RyaW5nIiwidG9TdHJpbmciLCJ1aW50OEFycmF5VG9TdHJpbmciLCJyYW5kb21CeXRlcyIsIndlYmNyeXB0byIsInVubWFyc2hhbFJzYVByaXZhdGVLZXkiLCJwa2NzMVRvSndrIiwiYnl0ZXMiLCJyZXN1bHQiLCJmcm9tQkVSIiwidmFsdWVzIiwidmFsdWVCbG9jayIsInZhbHVlIiwia2V5IiwibiIsImJuVG9CdWYiLCJ0b0JpZ0ludCIsImUiLCJkIiwicCIsInEiLCJkcCIsImRxIiwicWkiLCJrdHkiLCJhbGciLCJqd2tUb1BrY3MxIiwiandrIiwicm9vdCIsIlNlcXVlbmNlIiwiSW50ZWdlciIsImZyb21CaWdJbnQiLCJidWZUb0JuIiwiZGVyIiwidG9CRVIiLCJVaW50OEFycmF5IiwiYnl0ZUxlbmd0aCIsInBraXhUb0p3ayIsImp3a1RvUGtpeCIsIk9iamVjdElkZW50aWZpZXIiLCJOdWxsIiwiQml0U3RyaW5nIiwidmFsdWVIZXgiLCJibiIsImhleCIsImxlbmd0aCIsImxlbiIsInU4IiwiaSIsImoiLCJwYXJzZUludCIsInNsaWNlIiwiZm9yRWFjaCIsImgiLCJwdXNoIiwiQmlnSW50Iiwiam9pbiIsIlNBTFRfTEVOR1RIIiwiS0VZX1NJWkUiLCJJVEVSQVRJT05TIiwiZXhwb3J0VG9QZW0iLCJwcml2YXRlS2V5IiwicGFzc3dvcmQiLCJjcnlwdG8iLCJnZXQiLCJrZXlXcmFwcGVyIiwiT2N0ZXRTdHJpbmciLCJtYXJzaGFsIiwia2V5QnVmIiwia2V5QXJyIiwic2FsdCIsImVuY3J5cHRpb25LZXkiLCJjIiwiZGtMZW4iLCJpdiIsImNyeXB0b0tleSIsInN1YnRsZSIsImltcG9ydEtleSIsImVuY3J5cHRlZCIsImVuY3J5cHQiLCJuYW1lIiwicGJrZGYyUGFyYW1zIiwiZW5jcnlwdGlvbkFsZ29yaXRobSIsImZpbmFsV3JhcHBlciIsImZpbmFsV3JhcHBlckJ1ZiIsImZpbmFsV3JhcHBlckFyciIsInNwbGl0IiwiZmlsdGVyIiwiQm9vbGVhbiIsImltcG9ydEZyb21QZW0iLCJwZW0iLCJwbGFpbnRleHQiLCJpbmNsdWRlcyIsInJlcGxhY2UiLCJ0cmltIiwiaXRlcmF0aW9ucyIsImtleVNpemUiLCJjaXBoZXJUZXh0IiwiZmluZEVuY3J5cHRlZFBFTURhdGEiLCJkZWNyeXB0ZWQiLCJ0b1VpbnQ4QXJyYXkiLCJkZWNyeXB0IiwiZGVjcnlwdGVkUmVzdWx0IiwiZmluZFBFTURhdGEiLCJzY2hlbWUiLCJrZXlEZXJpdmF0aW9uRnVuYyIsImtleURlcml2YXRpb25GdW5jTmFtZSIsImdldFZhbHVlIiwiTnVtYmVyIiwiZW5jcnlwdGlvblNjaGVtZSIsImVuY3J5cHRpb25TY2hlbWVOYW1lIiwic2VxIiwiYnVmIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/rsa-utils.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/rsa.js":
/*!**********************************************************!*\
!*** ./node_modules/@libp2p/crypto/dist/src/keys/rsa.js ***!
\**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ generateKey: () => (/* binding */ generateKey),\n/* harmony export */ getRandomValues: () => (/* reexport safe */ _random_bytes_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]),\n/* harmony export */ hashAndSign: () => (/* binding */ hashAndSign),\n/* harmony export */ hashAndVerify: () => (/* binding */ hashAndVerify),\n/* harmony export */ keySize: () => (/* binding */ keySize),\n/* harmony export */ unmarshalPrivateKey: () => (/* binding */ unmarshalPrivateKey),\n/* harmony export */ utils: () => (/* reexport module object */ _rsa_utils_js__WEBPACK_IMPORTED_MODULE_3__)\n/* harmony export */ });\n/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! crypto */ \"crypto\");\n/* harmony import */ var util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! util */ \"util\");\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uint8arrays/from-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/from-string.node.js\");\n/* harmony import */ var _random_bytes_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../random-bytes.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/random-bytes.js\");\n/* harmony import */ var _rsa_utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rsa-utils.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/rsa-utils.js\");\n\n\n\n\n\n\nconst keypair = (0,util__WEBPACK_IMPORTED_MODULE_1__.promisify)(crypto__WEBPACK_IMPORTED_MODULE_0__.generateKeyPair);\n\nasync function generateKey(bits) {\n // @ts-expect-error node types are missing jwk as a format\n const key = await keypair(\"rsa\", {\n modulusLength: bits,\n publicKeyEncoding: {\n type: \"pkcs1\",\n format: \"jwk\"\n },\n privateKeyEncoding: {\n type: \"pkcs1\",\n format: \"jwk\"\n }\n });\n return {\n // @ts-expect-error node types are missing jwk as a format\n privateKey: key.privateKey,\n // @ts-expect-error node types are missing jwk as a format\n publicKey: key.publicKey\n };\n}\n// Takes a jwk key\nasync function unmarshalPrivateKey(key) {\n if (key == null) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_4__.CodeError(\"Missing key parameter\", \"ERR_MISSING_KEY\");\n }\n return {\n privateKey: key,\n publicKey: {\n kty: key.kty,\n n: key.n,\n e: key.e\n }\n };\n}\n\nasync function hashAndSign(key, msg) {\n const hash = crypto__WEBPACK_IMPORTED_MODULE_0__.createSign(\"RSA-SHA256\");\n if (msg instanceof Uint8Array) {\n hash.update(msg);\n } else {\n for (const buf of msg){\n hash.update(buf);\n }\n }\n // @ts-expect-error node types are missing jwk as a format\n return hash.sign({\n format: \"jwk\",\n key\n });\n}\nasync function hashAndVerify(key, sig, msg) {\n const hash = crypto__WEBPACK_IMPORTED_MODULE_0__.createVerify(\"RSA-SHA256\");\n if (msg instanceof Uint8Array) {\n hash.update(msg);\n } else {\n for (const buf of msg){\n hash.update(buf);\n }\n }\n // @ts-expect-error node types are missing jwk as a format\n return hash.verify({\n format: \"jwk\",\n key\n }, sig);\n}\nfunction keySize(jwk) {\n if (jwk.kty !== \"RSA\") {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_4__.CodeError(\"invalid key type\", \"ERR_INVALID_KEY_TYPE\");\n } else if (jwk.n == null) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_4__.CodeError(\"invalid key modulus\", \"ERR_INVALID_KEY_MODULUS\");\n }\n const modulus = (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_2__.fromString)(jwk.n, \"base64url\");\n return modulus.length * 8;\n} //# sourceMappingURL=rsa.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMva2V5cy9yc2EuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUE0QjtBQUNLO0FBQ2E7QUFDK0I7QUFDaEM7QUFDTDtBQUN4QyxNQUFNTyxVQUFVTiwrQ0FBU0EsQ0FBQ0QsbURBQXNCO0FBQy9CO0FBQ1YsZUFBZVMsWUFBWUMsSUFBSTtJQUNsQywwREFBMEQ7SUFDMUQsTUFBTUMsTUFBTSxNQUFNSixRQUFRLE9BQU87UUFDN0JLLGVBQWVGO1FBQ2ZHLG1CQUFtQjtZQUFFQyxNQUFNO1lBQVNDLFFBQVE7UUFBTTtRQUNsREMsb0JBQW9CO1lBQUVGLE1BQU07WUFBU0MsUUFBUTtRQUFNO0lBQ3ZEO0lBQ0EsT0FBTztRQUNILDBEQUEwRDtRQUMxREUsWUFBWU4sSUFBSU0sVUFBVTtRQUMxQiwwREFBMEQ7UUFDMURDLFdBQVdQLElBQUlPLFNBQVM7SUFDNUI7QUFDSjtBQUNBLGtCQUFrQjtBQUNYLGVBQWVDLG9CQUFvQlIsR0FBRztJQUN6QyxJQUFJQSxPQUFPLE1BQU07UUFDYixNQUFNLElBQUlULHdEQUFTQSxDQUFDLHlCQUF5QjtJQUNqRDtJQUNBLE9BQU87UUFDSGUsWUFBWU47UUFDWk8sV0FBVztZQUNQRSxLQUFLVCxJQUFJUyxHQUFHO1lBQ1pDLEdBQUdWLElBQUlVLENBQUM7WUFDUkMsR0FBR1gsSUFBSVcsQ0FBQztRQUNaO0lBQ0o7QUFDSjtBQUMwQztBQUNuQyxlQUFlRSxZQUFZYixHQUFHLEVBQUVjLEdBQUc7SUFDdEMsTUFBTUMsT0FBTzFCLDhDQUFpQixDQUFDO0lBQy9CLElBQUl5QixlQUFlRyxZQUFZO1FBQzNCRixLQUFLRyxNQUFNLENBQUNKO0lBQ2hCLE9BQ0s7UUFDRCxLQUFLLE1BQU1LLE9BQU9MLElBQUs7WUFDbkJDLEtBQUtHLE1BQU0sQ0FBQ0M7UUFDaEI7SUFDSjtJQUNBLDBEQUEwRDtJQUMxRCxPQUFPSixLQUFLSyxJQUFJLENBQUM7UUFBRWhCLFFBQVE7UUFBT0o7SUFBSTtBQUMxQztBQUNPLGVBQWVxQixjQUFjckIsR0FBRyxFQUFFc0IsR0FBRyxFQUFFUixHQUFHO0lBQzdDLE1BQU1DLE9BQU8xQixnREFBbUIsQ0FBQztJQUNqQyxJQUFJeUIsZUFBZUcsWUFBWTtRQUMzQkYsS0FBS0csTUFBTSxDQUFDSjtJQUNoQixPQUNLO1FBQ0QsS0FBSyxNQUFNSyxPQUFPTCxJQUFLO1lBQ25CQyxLQUFLRyxNQUFNLENBQUNDO1FBQ2hCO0lBQ0o7SUFDQSwwREFBMEQ7SUFDMUQsT0FBT0osS0FBS1MsTUFBTSxDQUFDO1FBQUVwQixRQUFRO1FBQU9KO0lBQUksR0FBR3NCO0FBQy9DO0FBQ08sU0FBU0csUUFBUUMsR0FBRztJQUN2QixJQUFJQSxJQUFJakIsR0FBRyxLQUFLLE9BQU87UUFDbkIsTUFBTSxJQUFJbEIsd0RBQVNBLENBQUMsb0JBQW9CO0lBQzVDLE9BQ0ssSUFBSW1DLElBQUloQixDQUFDLElBQUksTUFBTTtRQUNwQixNQUFNLElBQUluQix3REFBU0EsQ0FBQyx1QkFBdUI7SUFDL0M7SUFDQSxNQUFNb0MsVUFBVWxDLG1FQUFvQkEsQ0FBQ2lDLElBQUloQixDQUFDLEVBQUU7SUFDNUMsT0FBT2lCLFFBQVFDLE1BQU0sR0FBRztBQUM1QixFQUNBLCtCQUErQiIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvY3J5cHRvL2Rpc3Qvc3JjL2tleXMvcnNhLmpzP2MxYTUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyeXB0byBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgeyBDb2RlRXJyb3IgfSBmcm9tICdAbGlicDJwL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBmcm9tU3RyaW5nIGFzIHVpbnQ4QXJyYXlGcm9tU3RyaW5nIH0gZnJvbSAndWludDhhcnJheXMvZnJvbS1zdHJpbmcnO1xuaW1wb3J0IHJhbmRvbUJ5dGVzIGZyb20gJy4uL3JhbmRvbS1ieXRlcy5qcyc7XG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tICcuL3JzYS11dGlscy5qcyc7XG5jb25zdCBrZXlwYWlyID0gcHJvbWlzaWZ5KGNyeXB0by5nZW5lcmF0ZUtleVBhaXIpO1xuZXhwb3J0IHsgdXRpbHMgfTtcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZUtleShiaXRzKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBub2RlIHR5cGVzIGFyZSBtaXNzaW5nIGp3ayBhcyBhIGZvcm1hdFxuICAgIGNvbnN0IGtleSA9IGF3YWl0IGtleXBhaXIoJ3JzYScsIHtcbiAgICAgICAgbW9kdWx1c0xlbmd0aDogYml0cyxcbiAgICAgICAgcHVibGljS2V5RW5jb2Rpbmc6IHsgdHlwZTogJ3BrY3MxJywgZm9ybWF0OiAnandrJyB9LFxuICAgICAgICBwcml2YXRlS2V5RW5jb2Rpbmc6IHsgdHlwZTogJ3BrY3MxJywgZm9ybWF0OiAnandrJyB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBub2RlIHR5cGVzIGFyZSBtaXNzaW5nIGp3ayBhcyBhIGZvcm1hdFxuICAgICAgICBwcml2YXRlS2V5OiBrZXkucHJpdmF0ZUtleSxcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBub2RlIHR5cGVzIGFyZSBtaXNzaW5nIGp3ayBhcyBhIGZvcm1hdFxuICAgICAgICBwdWJsaWNLZXk6IGtleS5wdWJsaWNLZXlcbiAgICB9O1xufVxuLy8gVGFrZXMgYSBqd2sga2V5XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdW5tYXJzaGFsUHJpdmF0ZUtleShrZXkpIHtcbiAgICBpZiAoa2V5ID09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcignTWlzc2luZyBrZXkgcGFyYW1ldGVyJywgJ0VSUl9NSVNTSU5HX0tFWScpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBwcml2YXRlS2V5OiBrZXksXG4gICAgICAgIHB1YmxpY0tleToge1xuICAgICAgICAgICAga3R5OiBrZXkua3R5LFxuICAgICAgICAgICAgbjoga2V5Lm4sXG4gICAgICAgICAgICBlOiBrZXkuZVxuICAgICAgICB9XG4gICAgfTtcbn1cbmV4cG9ydCB7IHJhbmRvbUJ5dGVzIGFzIGdldFJhbmRvbVZhbHVlcyB9O1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhc2hBbmRTaWduKGtleSwgbXNnKSB7XG4gICAgY29uc3QgaGFzaCA9IGNyeXB0by5jcmVhdGVTaWduKCdSU0EtU0hBMjU2Jyk7XG4gICAgaWYgKG1zZyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICAgICAgaGFzaC51cGRhdGUobXNnKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGZvciAoY29uc3QgYnVmIG9mIG1zZykge1xuICAgICAgICAgICAgaGFzaC51cGRhdGUoYnVmKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIG5vZGUgdHlwZXMgYXJlIG1pc3NpbmcgandrIGFzIGEgZm9ybWF0XG4gICAgcmV0dXJuIGhhc2guc2lnbih7IGZvcm1hdDogJ2p3aycsIGtleSB9KTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYXNoQW5kVmVyaWZ5KGtleSwgc2lnLCBtc2cpIHtcbiAgICBjb25zdCBoYXNoID0gY3J5cHRvLmNyZWF0ZVZlcmlmeSgnUlNBLVNIQTI1NicpO1xuICAgIGlmIChtc2cgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgIGhhc2gudXBkYXRlKG1zZyk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBmb3IgKGNvbnN0IGJ1ZiBvZiBtc2cpIHtcbiAgICAgICAgICAgIGhhc2gudXBkYXRlKGJ1Zik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBub2RlIHR5cGVzIGFyZSBtaXNzaW5nIGp3ayBhcyBhIGZvcm1hdFxuICAgIHJldHVybiBoYXNoLnZlcmlmeSh7IGZvcm1hdDogJ2p3aycsIGtleSB9LCBzaWcpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGtleVNpemUoandrKSB7XG4gICAgaWYgKGp3ay5rdHkgIT09ICdSU0EnKSB7XG4gICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoJ2ludmFsaWQga2V5IHR5cGUnLCAnRVJSX0lOVkFMSURfS0VZX1RZUEUnKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoandrLm4gPT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgQ29kZUVycm9yKCdpbnZhbGlkIGtleSBtb2R1bHVzJywgJ0VSUl9JTlZBTElEX0tFWV9NT0RVTFVTJyk7XG4gICAgfVxuICAgIGNvbnN0IG1vZHVsdXMgPSB1aW50OEFycmF5RnJvbVN0cmluZyhqd2subiwgJ2Jhc2U2NHVybCcpO1xuICAgIHJldHVybiBtb2R1bHVzLmxlbmd0aCAqIDg7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yc2EuanMubWFwIl0sIm5hbWVzIjpbImNyeXB0byIsInByb21pc2lmeSIsIkNvZGVFcnJvciIsImZyb21TdHJpbmciLCJ1aW50OEFycmF5RnJvbVN0cmluZyIsInJhbmRvbUJ5dGVzIiwidXRpbHMiLCJrZXlwYWlyIiwiZ2VuZXJhdGVLZXlQYWlyIiwiZ2VuZXJhdGVLZXkiLCJiaXRzIiwia2V5IiwibW9kdWx1c0xlbmd0aCIsInB1YmxpY0tleUVuY29kaW5nIiwidHlwZSIsImZvcm1hdCIsInByaXZhdGVLZXlFbmNvZGluZyIsInByaXZhdGVLZXkiLCJwdWJsaWNLZXkiLCJ1bm1hcnNoYWxQcml2YXRlS2V5Iiwia3R5IiwibiIsImUiLCJnZXRSYW5kb21WYWx1ZXMiLCJoYXNoQW5kU2lnbiIsIm1zZyIsImhhc2giLCJjcmVhdGVTaWduIiwiVWludDhBcnJheSIsInVwZGF0ZSIsImJ1ZiIsInNpZ24iLCJoYXNoQW5kVmVyaWZ5Iiwic2lnIiwiY3JlYXRlVmVyaWZ5IiwidmVyaWZ5Iiwia2V5U2l6ZSIsImp3ayIsIm1vZHVsdXMiLCJsZW5ndGgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/rsa.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/secp256k1-class.js":
/*!**********************************************************************!*\
!*** ./node_modules/@libp2p/crypto/dist/src/keys/secp256k1-class.js ***!
\**********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Secp256k1PrivateKey: () => (/* binding */ Secp256k1PrivateKey),\n/* harmony export */ Secp256k1PublicKey: () => (/* binding */ Secp256k1PublicKey),\n/* harmony export */ generateKeyPair: () => (/* binding */ generateKeyPair),\n/* harmony export */ unmarshalSecp256k1PrivateKey: () => (/* binding */ unmarshalSecp256k1PrivateKey),\n/* harmony export */ unmarshalSecp256k1PublicKey: () => (/* binding */ unmarshalSecp256k1PublicKey)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var multiformats_hashes_sha2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! multiformats/hashes/sha2 */ \"(ssr)/./node_modules/multiformats/dist/src/hashes/sha2.js\");\n/* harmony import */ var uint8arrays_equals__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uint8arrays/equals */ \"(ssr)/./node_modules/uint8arrays/dist/src/equals.js\");\n/* harmony import */ var uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uint8arrays/to-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/to-string.node.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/util.js\");\n/* harmony import */ var _exporter_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./exporter.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/exporter.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./keys.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/keys.js\");\n/* harmony import */ var _secp256k1_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./secp256k1.js */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/secp256k1.js\");\n\n\n\n\n\n\n\n\nclass Secp256k1PublicKey {\n constructor(key){\n _secp256k1_js__WEBPACK_IMPORTED_MODULE_3__.validatePublicKey(key);\n this._key = key;\n }\n verify(data, sig) {\n return _secp256k1_js__WEBPACK_IMPORTED_MODULE_3__.hashAndVerify(this._key, sig, data);\n }\n marshal() {\n return _secp256k1_js__WEBPACK_IMPORTED_MODULE_3__.compressPublicKey(this._key);\n }\n get bytes() {\n return _keys_js__WEBPACK_IMPORTED_MODULE_4__.PublicKey.encode({\n Type: _keys_js__WEBPACK_IMPORTED_MODULE_4__.KeyType.Secp256k1,\n Data: this.marshal()\n }).subarray();\n }\n equals(key) {\n return (0,uint8arrays_equals__WEBPACK_IMPORTED_MODULE_1__.equals)(this.bytes, key.bytes);\n }\n async hash() {\n const p = multiformats_hashes_sha2__WEBPACK_IMPORTED_MODULE_0__.sha256.digest(this.bytes);\n let bytes;\n if ((0,_util_js__WEBPACK_IMPORTED_MODULE_5__.isPromise)(p)) {\n ({ bytes } = await p);\n } else {\n bytes = p.bytes;\n }\n return bytes;\n }\n}\nclass Secp256k1PrivateKey {\n constructor(key, publicKey){\n this._key = key;\n this._publicKey = publicKey ?? _secp256k1_js__WEBPACK_IMPORTED_MODULE_3__.computePublicKey(key);\n _secp256k1_js__WEBPACK_IMPORTED_MODULE_3__.validatePrivateKey(this._key);\n _secp256k1_js__WEBPACK_IMPORTED_MODULE_3__.validatePublicKey(this._publicKey);\n }\n sign(message) {\n return _secp256k1_js__WEBPACK_IMPORTED_MODULE_3__.hashAndSign(this._key, message);\n }\n get public() {\n return new Secp256k1PublicKey(this._publicKey);\n }\n marshal() {\n return this._key;\n }\n get bytes() {\n return _keys_js__WEBPACK_IMPORTED_MODULE_4__.PrivateKey.encode({\n Type: _keys_js__WEBPACK_IMPORTED_MODULE_4__.KeyType.Secp256k1,\n Data: this.marshal()\n }).subarray();\n }\n equals(key) {\n return (0,uint8arrays_equals__WEBPACK_IMPORTED_MODULE_1__.equals)(this.bytes, key.bytes);\n }\n hash() {\n const p = multiformats_hashes_sha2__WEBPACK_IMPORTED_MODULE_0__.sha256.digest(this.bytes);\n if ((0,_util_js__WEBPACK_IMPORTED_MODULE_5__.isPromise)(p)) {\n return p.then(({ bytes })=>bytes);\n }\n return p.bytes;\n }\n /**\n * Gets the ID of the key.\n *\n * The key id is the base58 encoding of the SHA-256 multihash of its public key.\n * The public key is a protobuf encoding containing a type and the DER encoding\n * of the PKCS SubjectPublicKeyInfo.\n */ async id() {\n const hash = await this.public.hash();\n return (0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__.toString)(hash, \"base58btc\");\n }\n /**\n * Exports the key into a password protected `format`\n */ async export(password, format = \"libp2p-key\") {\n if (format === \"libp2p-key\") {\n return (0,_exporter_js__WEBPACK_IMPORTED_MODULE_6__.exporter)(this.bytes, password);\n } else {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_7__.CodeError(`export format '${format}' is not supported`, \"ERR_INVALID_EXPORT_FORMAT\");\n }\n }\n}\nfunction unmarshalSecp256k1PrivateKey(bytes) {\n return new Secp256k1PrivateKey(bytes);\n}\nfunction unmarshalSecp256k1PublicKey(bytes) {\n return new Secp256k1PublicKey(bytes);\n}\nasync function generateKeyPair() {\n const privateKeyBytes = _secp256k1_js__WEBPACK_IMPORTED_MODULE_3__.generateKey();\n return new Secp256k1PrivateKey(privateKeyBytes);\n} //# sourceMappingURL=secp256k1-class.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMva2V5cy9zZWNwMjU2azEtY2xhc3MuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUE4QztBQUNJO0FBQ2M7QUFDTztBQUNoQztBQUNFO0FBQ0M7QUFDRDtBQUNsQyxNQUFNVTtJQUVUQyxZQUFZQyxHQUFHLENBQUU7UUFDYkgsNERBQXdCLENBQUNHO1FBQ3pCLElBQUksQ0FBQ0UsSUFBSSxHQUFHRjtJQUNoQjtJQUNBRyxPQUFPQyxJQUFJLEVBQUVDLEdBQUcsRUFBRTtRQUNkLE9BQU9SLHdEQUFvQixDQUFDLElBQUksQ0FBQ0ssSUFBSSxFQUFFRyxLQUFLRDtJQUNoRDtJQUNBRyxVQUFVO1FBQ04sT0FBT1YsNERBQXdCLENBQUMsSUFBSSxDQUFDSyxJQUFJO0lBQzdDO0lBQ0EsSUFBSU8sUUFBUTtRQUNSLE9BQU9iLCtDQUFzQixDQUFDZSxNQUFNLENBQUM7WUFDakNDLE1BQU1oQiw2Q0FBb0IsQ0FBQ2tCLFNBQVM7WUFDcENDLE1BQU0sSUFBSSxDQUFDUixPQUFPO1FBQ3RCLEdBQUdTLFFBQVE7SUFDZjtJQUNBMUIsT0FBT1UsR0FBRyxFQUFFO1FBQ1IsT0FBT1QsMERBQWdCQSxDQUFDLElBQUksQ0FBQ2tCLEtBQUssRUFBRVQsSUFBSVMsS0FBSztJQUNqRDtJQUNBLE1BQU1RLE9BQU87UUFDVCxNQUFNQyxJQUFJN0IsNERBQU1BLENBQUM4QixNQUFNLENBQUMsSUFBSSxDQUFDVixLQUFLO1FBQ2xDLElBQUlBO1FBQ0osSUFBSWYsbURBQVNBLENBQUN3QixJQUFJO1lBQ2IsR0FBRVQsS0FBSyxFQUFFLEdBQUcsTUFBTVMsQ0FBQUE7UUFDdkIsT0FDSztZQUNEVCxRQUFRUyxFQUFFVCxLQUFLO1FBQ25CO1FBQ0EsT0FBT0E7SUFDWDtBQUNKO0FBQ08sTUFBTVc7SUFHVHJCLFlBQVlDLEdBQUcsRUFBRXFCLFNBQVMsQ0FBRTtRQUN4QixJQUFJLENBQUNuQixJQUFJLEdBQUdGO1FBQ1osSUFBSSxDQUFDc0IsVUFBVSxHQUFHRCxhQUFheEIsMkRBQXVCLENBQUNHO1FBQ3ZESCw2REFBeUIsQ0FBQyxJQUFJLENBQUNLLElBQUk7UUFDbkNMLDREQUF3QixDQUFDLElBQUksQ0FBQ3lCLFVBQVU7SUFDNUM7SUFDQUcsS0FBS0MsT0FBTyxFQUFFO1FBQ1YsT0FBTzdCLHNEQUFrQixDQUFDLElBQUksQ0FBQ0ssSUFBSSxFQUFFd0I7SUFDekM7SUFDQSxJQUFJRSxTQUFTO1FBQ1QsT0FBTyxJQUFJOUIsbUJBQW1CLElBQUksQ0FBQ3dCLFVBQVU7SUFDakQ7SUFDQWYsVUFBVTtRQUNOLE9BQU8sSUFBSSxDQUFDTCxJQUFJO0lBQ3BCO0lBQ0EsSUFBSU8sUUFBUTtRQUNSLE9BQU9iLGdEQUF1QixDQUFDZSxNQUFNLENBQUM7WUFDbENDLE1BQU1oQiw2Q0FBb0IsQ0FBQ2tCLFNBQVM7WUFDcENDLE1BQU0sSUFBSSxDQUFDUixPQUFPO1FBQ3RCLEdBQUdTLFFBQVE7SUFDZjtJQUNBMUIsT0FBT1UsR0FBRyxFQUFFO1FBQ1IsT0FBT1QsMERBQWdCQSxDQUFDLElBQUksQ0FBQ2tCLEtBQUssRUFBRVQsSUFBSVMsS0FBSztJQUNqRDtJQUNBUSxPQUFPO1FBQ0gsTUFBTUMsSUFBSTdCLDREQUFNQSxDQUFDOEIsTUFBTSxDQUFDLElBQUksQ0FBQ1YsS0FBSztRQUNsQyxJQUFJZixtREFBU0EsQ0FBQ3dCLElBQUk7WUFDZCxPQUFPQSxFQUFFWSxJQUFJLENBQUMsQ0FBQyxFQUFFckIsS0FBSyxFQUFFLEdBQUtBO1FBQ2pDO1FBQ0EsT0FBT1MsRUFBRVQsS0FBSztJQUNsQjtJQUNBOzs7Ozs7S0FNQyxHQUNELE1BQU1zQixLQUFLO1FBQ1AsTUFBTWQsT0FBTyxNQUFNLElBQUksQ0FBQ1csTUFBTSxDQUFDWCxJQUFJO1FBQ25DLE9BQU94QiwrREFBa0JBLENBQUN3QixNQUFNO0lBQ3BDO0lBQ0E7O0tBRUMsR0FDRCxNQUFNZSxPQUFPQyxRQUFRLEVBQUVDLFNBQVMsWUFBWSxFQUFFO1FBQzFDLElBQUlBLFdBQVcsY0FBYztZQUN6QixPQUFPdkMsc0RBQVFBLENBQUMsSUFBSSxDQUFDYyxLQUFLLEVBQUV3QjtRQUNoQyxPQUNLO1lBQ0QsTUFBTSxJQUFJN0Msd0RBQVNBLENBQUMsQ0FBQyxlQUFlLEVBQUU4QyxPQUFPLGtCQUFrQixDQUFDLEVBQUU7UUFDdEU7SUFDSjtBQUNKO0FBQ08sU0FBU0MsNkJBQTZCMUIsS0FBSztJQUM5QyxPQUFPLElBQUlXLG9CQUFvQlg7QUFDbkM7QUFDTyxTQUFTMkIsNEJBQTRCM0IsS0FBSztJQUM3QyxPQUFPLElBQUlYLG1CQUFtQlc7QUFDbEM7QUFDTyxlQUFlNEI7SUFDbEIsTUFBTUMsa0JBQWtCekMsc0RBQWtCO0lBQzFDLE9BQU8sSUFBSXVCLG9CQUFvQmtCO0FBQ25DLEVBQ0EsMkNBQTJDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMva2V5cy9zZWNwMjU2azEtY2xhc3MuanM/NDhhOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2RlRXJyb3IgfSBmcm9tICdAbGlicDJwL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBzaGEyNTYgfSBmcm9tICdtdWx0aWZvcm1hdHMvaGFzaGVzL3NoYTInO1xuaW1wb3J0IHsgZXF1YWxzIGFzIHVpbnQ4QXJyYXlFcXVhbHMgfSBmcm9tICd1aW50OGFycmF5cy9lcXVhbHMnO1xuaW1wb3J0IHsgdG9TdHJpbmcgYXMgdWludDhBcnJheVRvU3RyaW5nIH0gZnJvbSAndWludDhhcnJheXMvdG8tc3RyaW5nJztcbmltcG9ydCB7IGlzUHJvbWlzZSB9IGZyb20gJy4uL3V0aWwuanMnO1xuaW1wb3J0IHsgZXhwb3J0ZXIgfSBmcm9tICcuL2V4cG9ydGVyLmpzJztcbmltcG9ydCAqIGFzIGtleXNQcm90b2J1ZiBmcm9tICcuL2tleXMuanMnO1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJy4vc2VjcDI1NmsxLmpzJztcbmV4cG9ydCBjbGFzcyBTZWNwMjU2azFQdWJsaWNLZXkge1xuICAgIF9rZXk7XG4gICAgY29uc3RydWN0b3Ioa2V5KSB7XG4gICAgICAgIGNyeXB0by52YWxpZGF0ZVB1YmxpY0tleShrZXkpO1xuICAgICAgICB0aGlzLl9rZXkgPSBrZXk7XG4gICAgfVxuICAgIHZlcmlmeShkYXRhLCBzaWcpIHtcbiAgICAgICAgcmV0dXJuIGNyeXB0by5oYXNoQW5kVmVyaWZ5KHRoaXMuX2tleSwgc2lnLCBkYXRhKTtcbiAgICB9XG4gICAgbWFyc2hhbCgpIHtcbiAgICAgICAgcmV0dXJuIGNyeXB0by5jb21wcmVzc1B1YmxpY0tleSh0aGlzLl9rZXkpO1xuICAgIH1cbiAgICBnZXQgYnl0ZXMoKSB7XG4gICAgICAgIHJldHVybiBrZXlzUHJvdG9idWYuUHVibGljS2V5LmVuY29kZSh7XG4gICAgICAgICAgICBUeXBlOiBrZXlzUHJvdG9idWYuS2V5VHlwZS5TZWNwMjU2azEsXG4gICAgICAgICAgICBEYXRhOiB0aGlzLm1hcnNoYWwoKVxuICAgICAgICB9KS5zdWJhcnJheSgpO1xuICAgIH1cbiAgICBlcXVhbHMoa2V5KSB7XG4gICAgICAgIHJldHVybiB1aW50OEFycmF5RXF1YWxzKHRoaXMuYnl0ZXMsIGtleS5ieXRlcyk7XG4gICAgfVxuICAgIGFzeW5jIGhhc2goKSB7XG4gICAgICAgIGNvbnN0IHAgPSBzaGEyNTYuZGlnZXN0KHRoaXMuYnl0ZXMpO1xuICAgICAgICBsZXQgYnl0ZXM7XG4gICAgICAgIGlmIChpc1Byb21pc2UocCkpIHtcbiAgICAgICAgICAgICh7IGJ5dGVzIH0gPSBhd2FpdCBwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGJ5dGVzID0gcC5ieXRlcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYnl0ZXM7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFNlY3AyNTZrMVByaXZhdGVLZXkge1xuICAgIF9rZXk7XG4gICAgX3B1YmxpY0tleTtcbiAgICBjb25zdHJ1Y3RvcihrZXksIHB1YmxpY0tleSkge1xuICAgICAgICB0aGlzLl9rZXkgPSBrZXk7XG4gICAgICAgIHRoaXMuX3B1YmxpY0tleSA9IHB1YmxpY0tleSA/PyBjcnlwdG8uY29tcHV0ZVB1YmxpY0tleShrZXkpO1xuICAgICAgICBjcnlwdG8udmFsaWRhdGVQcml2YXRlS2V5KHRoaXMuX2tleSk7XG4gICAgICAgIGNyeXB0by52YWxpZGF0ZVB1YmxpY0tleSh0aGlzLl9wdWJsaWNLZXkpO1xuICAgIH1cbiAgICBzaWduKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIGNyeXB0by5oYXNoQW5kU2lnbih0aGlzLl9rZXksIG1lc3NhZ2UpO1xuICAgIH1cbiAgICBnZXQgcHVibGljKCkge1xuICAgICAgICByZXR1cm4gbmV3IFNlY3AyNTZrMVB1YmxpY0tleSh0aGlzLl9wdWJsaWNLZXkpO1xuICAgIH1cbiAgICBtYXJzaGFsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fa2V5O1xuICAgIH1cbiAgICBnZXQgYnl0ZXMoKSB7XG4gICAgICAgIHJldHVybiBrZXlzUHJvdG9idWYuUHJpdmF0ZUtleS5lbmNvZGUoe1xuICAgICAgICAgICAgVHlwZToga2V5c1Byb3RvYnVmLktleVR5cGUuU2VjcDI1NmsxLFxuICAgICAgICAgICAgRGF0YTogdGhpcy5tYXJzaGFsKClcbiAgICAgICAgfSkuc3ViYXJyYXkoKTtcbiAgICB9XG4gICAgZXF1YWxzKGtleSkge1xuICAgICAgICByZXR1cm4gdWludDhBcnJheUVxdWFscyh0aGlzLmJ5dGVzLCBrZXkuYnl0ZXMpO1xuICAgIH1cbiAgICBoYXNoKCkge1xuICAgICAgICBjb25zdCBwID0gc2hhMjU2LmRpZ2VzdCh0aGlzLmJ5dGVzKTtcbiAgICAgICAgaWYgKGlzUHJvbWlzZShwKSkge1xuICAgICAgICAgICAgcmV0dXJuIHAudGhlbigoeyBieXRlcyB9KSA9PiBieXRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHAuYnl0ZXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIElEIG9mIHRoZSBrZXkuXG4gICAgICpcbiAgICAgKiBUaGUga2V5IGlkIGlzIHRoZSBiYXNlNTggZW5jb2Rpbmcgb2YgdGhlIFNIQS0yNTYgbXVsdGloYXNoIG9mIGl0cyBwdWJsaWMga2V5LlxuICAgICAqIFRoZSBwdWJsaWMga2V5IGlzIGEgcHJvdG9idWYgZW5jb2RpbmcgY29udGFpbmluZyBhIHR5cGUgYW5kIHRoZSBERVIgZW5jb2RpbmdcbiAgICAgKiBvZiB0aGUgUEtDUyBTdWJqZWN0UHVibGljS2V5SW5mby5cbiAgICAgKi9cbiAgICBhc3luYyBpZCgpIHtcbiAgICAgICAgY29uc3QgaGFzaCA9IGF3YWl0IHRoaXMucHVibGljLmhhc2goKTtcbiAgICAgICAgcmV0dXJuIHVpbnQ4QXJyYXlUb1N0cmluZyhoYXNoLCAnYmFzZTU4YnRjJyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEV4cG9ydHMgdGhlIGtleSBpbnRvIGEgcGFzc3dvcmQgcHJvdGVjdGVkIGBmb3JtYXRgXG4gICAgICovXG4gICAgYXN5bmMgZXhwb3J0KHBhc3N3b3JkLCBmb3JtYXQgPSAnbGlicDJwLWtleScpIHtcbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2xpYnAycC1rZXknKSB7XG4gICAgICAgICAgICByZXR1cm4gZXhwb3J0ZXIodGhpcy5ieXRlcywgcGFzc3dvcmQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcihgZXhwb3J0IGZvcm1hdCAnJHtmb3JtYXR9JyBpcyBub3Qgc3VwcG9ydGVkYCwgJ0VSUl9JTlZBTElEX0VYUE9SVF9GT1JNQVQnKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiB1bm1hcnNoYWxTZWNwMjU2azFQcml2YXRlS2V5KGJ5dGVzKSB7XG4gICAgcmV0dXJuIG5ldyBTZWNwMjU2azFQcml2YXRlS2V5KGJ5dGVzKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB1bm1hcnNoYWxTZWNwMjU2azFQdWJsaWNLZXkoYnl0ZXMpIHtcbiAgICByZXR1cm4gbmV3IFNlY3AyNTZrMVB1YmxpY0tleShieXRlcyk7XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVLZXlQYWlyKCkge1xuICAgIGNvbnN0IHByaXZhdGVLZXlCeXRlcyA9IGNyeXB0by5nZW5lcmF0ZUtleSgpO1xuICAgIHJldHVybiBuZXcgU2VjcDI1NmsxUHJpdmF0ZUtleShwcml2YXRlS2V5Qnl0ZXMpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VjcDI1NmsxLWNsYXNzLmpzLm1hcCJdLCJuYW1lcyI6WyJDb2RlRXJyb3IiLCJzaGEyNTYiLCJlcXVhbHMiLCJ1aW50OEFycmF5RXF1YWxzIiwidG9TdHJpbmciLCJ1aW50OEFycmF5VG9TdHJpbmciLCJpc1Byb21pc2UiLCJleHBvcnRlciIsImtleXNQcm90b2J1ZiIsImNyeXB0byIsIlNlY3AyNTZrMVB1YmxpY0tleSIsImNvbnN0cnVjdG9yIiwia2V5IiwidmFsaWRhdGVQdWJsaWNLZXkiLCJfa2V5IiwidmVyaWZ5IiwiZGF0YSIsInNpZyIsImhhc2hBbmRWZXJpZnkiLCJtYXJzaGFsIiwiY29tcHJlc3NQdWJsaWNLZXkiLCJieXRlcyIsIlB1YmxpY0tleSIsImVuY29kZSIsIlR5cGUiLCJLZXlUeXBlIiwiU2VjcDI1NmsxIiwiRGF0YSIsInN1YmFycmF5IiwiaGFzaCIsInAiLCJkaWdlc3QiLCJTZWNwMjU2azFQcml2YXRlS2V5IiwicHVibGljS2V5IiwiX3B1YmxpY0tleSIsImNvbXB1dGVQdWJsaWNLZXkiLCJ2YWxpZGF0ZVByaXZhdGVLZXkiLCJzaWduIiwibWVzc2FnZSIsImhhc2hBbmRTaWduIiwicHVibGljIiwiUHJpdmF0ZUtleSIsInRoZW4iLCJpZCIsImV4cG9ydCIsInBhc3N3b3JkIiwiZm9ybWF0IiwidW5tYXJzaGFsU2VjcDI1NmsxUHJpdmF0ZUtleSIsInVubWFyc2hhbFNlY3AyNTZrMVB1YmxpY0tleSIsImdlbmVyYXRlS2V5UGFpciIsInByaXZhdGVLZXlCeXRlcyIsImdlbmVyYXRlS2V5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/secp256k1-class.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/secp256k1.js":
/*!****************************************************************!*\
!*** ./node_modules/@libp2p/crypto/dist/src/keys/secp256k1.js ***!
\****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ compressPublicKey: () => (/* binding */ compressPublicKey),\n/* harmony export */ computePublicKey: () => (/* binding */ computePublicKey),\n/* harmony export */ decompressPublicKey: () => (/* binding */ decompressPublicKey),\n/* harmony export */ generateKey: () => (/* binding */ generateKey),\n/* harmony export */ hashAndSign: () => (/* binding */ hashAndSign),\n/* harmony export */ hashAndVerify: () => (/* binding */ hashAndVerify),\n/* harmony export */ privateKeyLength: () => (/* binding */ PRIVATE_KEY_BYTE_LENGTH),\n/* harmony export */ validatePrivateKey: () => (/* binding */ validatePrivateKey),\n/* harmony export */ validatePublicKey: () => (/* binding */ validatePublicKey)\n/* harmony export */ });\n/* harmony import */ var node_crypto__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! node:crypto */ \"node:crypto\");\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var _noble_curves_secp256k1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @noble/curves/secp256k1 */ \"(ssr)/./node_modules/@noble/curves/esm/secp256k1.js\");\n\n\n\nconst PRIVATE_KEY_BYTE_LENGTH = 32;\n\nfunction generateKey() {\n return _noble_curves_secp256k1__WEBPACK_IMPORTED_MODULE_1__.secp256k1.utils.randomPrivateKey();\n}\n/**\n * Hash and sign message with private key\n */ function hashAndSign(key, msg) {\n const hash = node_crypto__WEBPACK_IMPORTED_MODULE_0__.createHash(\"sha256\");\n if (msg instanceof Uint8Array) {\n hash.update(msg);\n } else {\n for (const buf of msg){\n hash.update(buf);\n }\n }\n const digest = hash.digest();\n try {\n const signature = _noble_curves_secp256k1__WEBPACK_IMPORTED_MODULE_1__.secp256k1.sign(digest, key);\n return signature.toDERRawBytes();\n } catch (err) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__.CodeError(String(err), \"ERR_INVALID_INPUT\");\n }\n}\n/**\n * Hash message and verify signature with public key\n */ function hashAndVerify(key, sig, msg) {\n const hash = node_crypto__WEBPACK_IMPORTED_MODULE_0__.createHash(\"sha256\");\n if (msg instanceof Uint8Array) {\n hash.update(msg);\n } else {\n for (const buf of msg){\n hash.update(buf);\n }\n }\n const digest = hash.digest();\n try {\n return _noble_curves_secp256k1__WEBPACK_IMPORTED_MODULE_1__.secp256k1.verify(sig, digest, key);\n } catch (err) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__.CodeError(String(err), \"ERR_INVALID_INPUT\");\n }\n}\nfunction compressPublicKey(key) {\n const point = _noble_curves_secp256k1__WEBPACK_IMPORTED_MODULE_1__.secp256k1.ProjectivePoint.fromHex(key).toRawBytes(true);\n return point;\n}\nfunction decompressPublicKey(key) {\n const point = _noble_curves_secp256k1__WEBPACK_IMPORTED_MODULE_1__.secp256k1.ProjectivePoint.fromHex(key).toRawBytes(false);\n return point;\n}\nfunction validatePrivateKey(key) {\n try {\n _noble_curves_secp256k1__WEBPACK_IMPORTED_MODULE_1__.secp256k1.getPublicKey(key, true);\n } catch (err) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__.CodeError(String(err), \"ERR_INVALID_PRIVATE_KEY\");\n }\n}\nfunction validatePublicKey(key) {\n try {\n _noble_curves_secp256k1__WEBPACK_IMPORTED_MODULE_1__.secp256k1.ProjectivePoint.fromHex(key);\n } catch (err) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__.CodeError(String(err), \"ERR_INVALID_PUBLIC_KEY\");\n }\n}\nfunction computePublicKey(privateKey) {\n try {\n return _noble_curves_secp256k1__WEBPACK_IMPORTED_MODULE_1__.secp256k1.getPublicKey(privateKey, true);\n } catch (err) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__.CodeError(String(err), \"ERR_INVALID_PRIVATE_KEY\");\n }\n} //# sourceMappingURL=secp256k1.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMva2V5cy9zZWNwMjU2azEuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQWlDO0FBQ2E7QUFDYztBQUM1RCxNQUFNSSwwQkFBMEI7QUFDdUI7QUFDaEQsU0FBU0U7SUFDWixPQUFPSCw4REFBSUEsQ0FBQ0ksS0FBSyxDQUFDQyxnQkFBZ0I7QUFDdEM7QUFDQTs7Q0FFQyxHQUNNLFNBQVNDLFlBQVlDLEdBQUcsRUFBRUMsR0FBRztJQUNoQyxNQUFNQyxPQUFPWixtREFBaUIsQ0FBQztJQUMvQixJQUFJVyxlQUFlRyxZQUFZO1FBQzNCRixLQUFLRyxNQUFNLENBQUNKO0lBQ2hCLE9BQ0s7UUFDRCxLQUFLLE1BQU1LLE9BQU9MLElBQUs7WUFDbkJDLEtBQUtHLE1BQU0sQ0FBQ0M7UUFDaEI7SUFDSjtJQUNBLE1BQU1DLFNBQVNMLEtBQUtLLE1BQU07SUFDMUIsSUFBSTtRQUNBLE1BQU1DLFlBQVlmLDhEQUFJQSxDQUFDZ0IsSUFBSSxDQUFDRixRQUFRUDtRQUNwQyxPQUFPUSxVQUFVRSxhQUFhO0lBQ2xDLEVBQ0EsT0FBT0MsS0FBSztRQUNSLE1BQU0sSUFBSXBCLHdEQUFTQSxDQUFDcUIsT0FBT0QsTUFBTTtJQUNyQztBQUNKO0FBQ0E7O0NBRUMsR0FDTSxTQUFTRSxjQUFjYixHQUFHLEVBQUVjLEdBQUcsRUFBRWIsR0FBRztJQUN2QyxNQUFNQyxPQUFPWixtREFBaUIsQ0FBQztJQUMvQixJQUFJVyxlQUFlRyxZQUFZO1FBQzNCRixLQUFLRyxNQUFNLENBQUNKO0lBQ2hCLE9BQ0s7UUFDRCxLQUFLLE1BQU1LLE9BQU9MLElBQUs7WUFDbkJDLEtBQUtHLE1BQU0sQ0FBQ0M7UUFDaEI7SUFDSjtJQUNBLE1BQU1DLFNBQVNMLEtBQUtLLE1BQU07SUFDMUIsSUFBSTtRQUNBLE9BQU9kLDhEQUFJQSxDQUFDc0IsTUFBTSxDQUFDRCxLQUFLUCxRQUFRUDtJQUNwQyxFQUNBLE9BQU9XLEtBQUs7UUFDUixNQUFNLElBQUlwQix3REFBU0EsQ0FBQ3FCLE9BQU9ELE1BQU07SUFDckM7QUFDSjtBQUNPLFNBQVNLLGtCQUFrQmhCLEdBQUc7SUFDakMsTUFBTWlCLFFBQVF4Qiw4REFBSUEsQ0FBQ3lCLGVBQWUsQ0FBQ0MsT0FBTyxDQUFDbkIsS0FBS29CLFVBQVUsQ0FBQztJQUMzRCxPQUFPSDtBQUNYO0FBQ08sU0FBU0ksb0JBQW9CckIsR0FBRztJQUNuQyxNQUFNaUIsUUFBUXhCLDhEQUFJQSxDQUFDeUIsZUFBZSxDQUFDQyxPQUFPLENBQUNuQixLQUFLb0IsVUFBVSxDQUFDO0lBQzNELE9BQU9IO0FBQ1g7QUFDTyxTQUFTSyxtQkFBbUJ0QixHQUFHO0lBQ2xDLElBQUk7UUFDQVAsOERBQUlBLENBQUM4QixZQUFZLENBQUN2QixLQUFLO0lBQzNCLEVBQ0EsT0FBT1csS0FBSztRQUNSLE1BQU0sSUFBSXBCLHdEQUFTQSxDQUFDcUIsT0FBT0QsTUFBTTtJQUNyQztBQUNKO0FBQ08sU0FBU2Esa0JBQWtCeEIsR0FBRztJQUNqQyxJQUFJO1FBQ0FQLDhEQUFJQSxDQUFDeUIsZUFBZSxDQUFDQyxPQUFPLENBQUNuQjtJQUNqQyxFQUNBLE9BQU9XLEtBQUs7UUFDUixNQUFNLElBQUlwQix3REFBU0EsQ0FBQ3FCLE9BQU9ELE1BQU07SUFDckM7QUFDSjtBQUNPLFNBQVNjLGlCQUFpQkMsVUFBVTtJQUN2QyxJQUFJO1FBQ0EsT0FBT2pDLDhEQUFJQSxDQUFDOEIsWUFBWSxDQUFDRyxZQUFZO0lBQ3pDLEVBQ0EsT0FBT2YsS0FBSztRQUNSLE1BQU0sSUFBSXBCLHdEQUFTQSxDQUFDcUIsT0FBT0QsTUFBTTtJQUNyQztBQUNKLEVBQ0EscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMva2V5cy9zZWNwMjU2azEuanM/MDJiYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3J5cHRvIGZyb20gJ25vZGU6Y3J5cHRvJztcbmltcG9ydCB7IENvZGVFcnJvciB9IGZyb20gJ0BsaWJwMnAvaW50ZXJmYWNlJztcbmltcG9ydCB7IHNlY3AyNTZrMSBhcyBzZWNwIH0gZnJvbSAnQG5vYmxlL2N1cnZlcy9zZWNwMjU2azEnO1xuY29uc3QgUFJJVkFURV9LRVlfQllURV9MRU5HVEggPSAzMjtcbmV4cG9ydCB7IFBSSVZBVEVfS0VZX0JZVEVfTEVOR1RIIGFzIHByaXZhdGVLZXlMZW5ndGggfTtcbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUtleSgpIHtcbiAgICByZXR1cm4gc2VjcC51dGlscy5yYW5kb21Qcml2YXRlS2V5KCk7XG59XG4vKipcbiAqIEhhc2ggYW5kIHNpZ24gbWVzc2FnZSB3aXRoIHByaXZhdGUga2V5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNoQW5kU2lnbihrZXksIG1zZykge1xuICAgIGNvbnN0IGhhc2ggPSBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjU2Jyk7XG4gICAgaWYgKG1zZyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICAgICAgaGFzaC51cGRhdGUobXNnKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGZvciAoY29uc3QgYnVmIG9mIG1zZykge1xuICAgICAgICAgICAgaGFzaC51cGRhdGUoYnVmKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBkaWdlc3QgPSBoYXNoLmRpZ2VzdCgpO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHNpZ25hdHVyZSA9IHNlY3Auc2lnbihkaWdlc3QsIGtleSk7XG4gICAgICAgIHJldHVybiBzaWduYXR1cmUudG9ERVJSYXdCeXRlcygpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoU3RyaW5nKGVyciksICdFUlJfSU5WQUxJRF9JTlBVVCcpO1xuICAgIH1cbn1cbi8qKlxuICogSGFzaCBtZXNzYWdlIGFuZCB2ZXJpZnkgc2lnbmF0dXJlIHdpdGggcHVibGljIGtleVxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzaEFuZFZlcmlmeShrZXksIHNpZywgbXNnKSB7XG4gICAgY29uc3QgaGFzaCA9IGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKTtcbiAgICBpZiAobXNnIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuICAgICAgICBoYXNoLnVwZGF0ZShtc2cpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCBidWYgb2YgbXNnKSB7XG4gICAgICAgICAgICBoYXNoLnVwZGF0ZShidWYpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGRpZ2VzdCA9IGhhc2guZGlnZXN0KCk7XG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHNlY3AudmVyaWZ5KHNpZywgZGlnZXN0LCBrZXkpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoU3RyaW5nKGVyciksICdFUlJfSU5WQUxJRF9JTlBVVCcpO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBjb21wcmVzc1B1YmxpY0tleShrZXkpIHtcbiAgICBjb25zdCBwb2ludCA9IHNlY3AuUHJvamVjdGl2ZVBvaW50LmZyb21IZXgoa2V5KS50b1Jhd0J5dGVzKHRydWUpO1xuICAgIHJldHVybiBwb2ludDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBkZWNvbXByZXNzUHVibGljS2V5KGtleSkge1xuICAgIGNvbnN0IHBvaW50ID0gc2VjcC5Qcm9qZWN0aXZlUG9pbnQuZnJvbUhleChrZXkpLnRvUmF3Qnl0ZXMoZmFsc2UpO1xuICAgIHJldHVybiBwb2ludDtcbn1cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVByaXZhdGVLZXkoa2V5KSB7XG4gICAgdHJ5IHtcbiAgICAgICAgc2VjcC5nZXRQdWJsaWNLZXkoa2V5LCB0cnVlKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgICB0aHJvdyBuZXcgQ29kZUVycm9yKFN0cmluZyhlcnIpLCAnRVJSX0lOVkFMSURfUFJJVkFURV9LRVknKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVQdWJsaWNLZXkoa2V5KSB7XG4gICAgdHJ5IHtcbiAgICAgICAgc2VjcC5Qcm9qZWN0aXZlUG9pbnQuZnJvbUhleChrZXkpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoU3RyaW5nKGVyciksICdFUlJfSU5WQUxJRF9QVUJMSUNfS0VZJyk7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVQdWJsaWNLZXkocHJpdmF0ZUtleSkge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBzZWNwLmdldFB1YmxpY0tleShwcml2YXRlS2V5LCB0cnVlKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgICB0aHJvdyBuZXcgQ29kZUVycm9yKFN0cmluZyhlcnIpLCAnRVJSX0lOVkFMSURfUFJJVkFURV9LRVknKTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZWNwMjU2azEuanMubWFwIl0sIm5hbWVzIjpbImNyeXB0byIsIkNvZGVFcnJvciIsInNlY3AyNTZrMSIsInNlY3AiLCJQUklWQVRFX0tFWV9CWVRFX0xFTkdUSCIsInByaXZhdGVLZXlMZW5ndGgiLCJnZW5lcmF0ZUtleSIsInV0aWxzIiwicmFuZG9tUHJpdmF0ZUtleSIsImhhc2hBbmRTaWduIiwia2V5IiwibXNnIiwiaGFzaCIsImNyZWF0ZUhhc2giLCJVaW50OEFycmF5IiwidXBkYXRlIiwiYnVmIiwiZGlnZXN0Iiwic2lnbmF0dXJlIiwic2lnbiIsInRvREVSUmF3Qnl0ZXMiLCJlcnIiLCJTdHJpbmciLCJoYXNoQW5kVmVyaWZ5Iiwic2lnIiwidmVyaWZ5IiwiY29tcHJlc3NQdWJsaWNLZXkiLCJwb2ludCIsIlByb2plY3RpdmVQb2ludCIsImZyb21IZXgiLCJ0b1Jhd0J5dGVzIiwiZGVjb21wcmVzc1B1YmxpY0tleSIsInZhbGlkYXRlUHJpdmF0ZUtleSIsImdldFB1YmxpY0tleSIsInZhbGlkYXRlUHVibGljS2V5IiwiY29tcHV0ZVB1YmxpY0tleSIsInByaXZhdGVLZXkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/secp256k1.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/crypto/dist/src/random-bytes.js":
/*!**************************************************************!*\
!*** ./node_modules/@libp2p/crypto/dist/src/random-bytes.js ***!
\**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ randomBytes)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var _noble_hashes_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @noble/hashes/utils */ \"(ssr)/./node_modules/@noble/hashes/esm/utils.js\");\n\n\n/**\n * Generates a Uint8Array with length `number` populated by random bytes\n */ function randomBytes(length) {\n if (isNaN(length) || length <= 0) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_0__.CodeError(\"random bytes length must be a Number bigger than 0\", \"ERR_INVALID_LENGTH\");\n }\n return (0,_noble_hashes_utils__WEBPACK_IMPORTED_MODULE_1__.randomBytes)(length);\n} //# sourceMappingURL=random-bytes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMvcmFuZG9tLWJ5dGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE4QztBQUNhO0FBQzNEOztDQUVDLEdBQ2MsU0FBU0MsWUFBWUUsTUFBTTtJQUN0QyxJQUFJQyxNQUFNRCxXQUFXQSxVQUFVLEdBQUc7UUFDOUIsTUFBTSxJQUFJSCx3REFBU0EsQ0FBQyxzREFBc0Q7SUFDOUU7SUFDQSxPQUFPRSxnRUFBS0EsQ0FBQ0M7QUFDakIsRUFDQSx3Q0FBd0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL2NyeXB0by9kaXN0L3NyYy9yYW5kb20tYnl0ZXMuanM/MDc2NyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2RlRXJyb3IgfSBmcm9tICdAbGlicDJwL2ludGVyZmFjZSc7XG5pbXBvcnQgeyByYW5kb21CeXRlcyBhcyByYW5kQiB9IGZyb20gJ0Bub2JsZS9oYXNoZXMvdXRpbHMnO1xuLyoqXG4gKiBHZW5lcmF0ZXMgYSBVaW50OEFycmF5IHdpdGggbGVuZ3RoIGBudW1iZXJgIHBvcHVsYXRlZCBieSByYW5kb20gYnl0ZXNcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmFuZG9tQnl0ZXMobGVuZ3RoKSB7XG4gICAgaWYgKGlzTmFOKGxlbmd0aCkgfHwgbGVuZ3RoIDw9IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcigncmFuZG9tIGJ5dGVzIGxlbmd0aCBtdXN0IGJlIGEgTnVtYmVyIGJpZ2dlciB0aGFuIDAnLCAnRVJSX0lOVkFMSURfTEVOR1RIJyk7XG4gICAgfVxuICAgIHJldHVybiByYW5kQihsZW5ndGgpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmFuZG9tLWJ5dGVzLmpzLm1hcCJdLCJuYW1lcyI6WyJDb2RlRXJyb3IiLCJyYW5kb21CeXRlcyIsInJhbmRCIiwibGVuZ3RoIiwiaXNOYU4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/crypto/dist/src/random-bytes.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/crypto/dist/src/util.js":
/*!******************************************************!*\
!*** ./node_modules/@libp2p/crypto/dist/src/util.js ***!
\******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ base64urlToBuffer: () => (/* binding */ base64urlToBuffer),\n/* harmony export */ isPromise: () => (/* binding */ isPromise)\n/* harmony export */ });\n/* harmony import */ var uint8arrays_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uint8arrays/concat */ \"(ssr)/./node_modules/uint8arrays/dist/src/concat.node.js\");\n/* harmony import */ var uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uint8arrays/from-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/from-string.node.js\");\n\n\nfunction base64urlToBuffer(str, len) {\n let buf = (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__.fromString)(str, \"base64urlpad\");\n if (len != null) {\n if (buf.length > len) throw new Error(\"byte array longer than desired length\");\n buf = (0,uint8arrays_concat__WEBPACK_IMPORTED_MODULE_0__.concat)([\n new Uint8Array(len - buf.length),\n buf\n ]);\n }\n return buf;\n}\nfunction isPromise(thing) {\n if (thing == null) {\n return false;\n }\n return typeof thing.then === \"function\" && typeof thing.catch === \"function\" && typeof thing.finally === \"function\";\n} //# sourceMappingURL=util.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMvdXRpbC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQWdFO0FBQ2E7QUFDdEUsU0FBU0ksa0JBQWtCQyxHQUFHLEVBQUVDLEdBQUc7SUFDdEMsSUFBSUMsTUFBTUosbUVBQW9CQSxDQUFDRSxLQUFLO0lBQ3BDLElBQUlDLE9BQU8sTUFBTTtRQUNiLElBQUlDLElBQUlDLE1BQU0sR0FBR0YsS0FDYixNQUFNLElBQUlHLE1BQU07UUFDcEJGLE1BQU1OLDBEQUFnQkEsQ0FBQztZQUFDLElBQUlTLFdBQVdKLE1BQU1DLElBQUlDLE1BQU07WUFBR0Q7U0FBSTtJQUNsRTtJQUNBLE9BQU9BO0FBQ1g7QUFDTyxTQUFTSSxVQUFVQyxLQUFLO0lBQzNCLElBQUlBLFNBQVMsTUFBTTtRQUNmLE9BQU87SUFDWDtJQUNBLE9BQU8sT0FBT0EsTUFBTUMsSUFBSSxLQUFLLGNBQ3pCLE9BQU9ELE1BQU1FLEtBQUssS0FBSyxjQUN2QixPQUFPRixNQUFNRyxPQUFPLEtBQUs7QUFDakMsRUFDQSxnQ0FBZ0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL2NyeXB0by9kaXN0L3NyYy91dGlsLmpzPzVjZmMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29uY2F0IGFzIHVpbnQ4QXJyYXlDb25jYXQgfSBmcm9tICd1aW50OGFycmF5cy9jb25jYXQnO1xuaW1wb3J0IHsgZnJvbVN0cmluZyBhcyB1aW50OEFycmF5RnJvbVN0cmluZyB9IGZyb20gJ3VpbnQ4YXJyYXlzL2Zyb20tc3RyaW5nJztcbmV4cG9ydCBmdW5jdGlvbiBiYXNlNjR1cmxUb0J1ZmZlcihzdHIsIGxlbikge1xuICAgIGxldCBidWYgPSB1aW50OEFycmF5RnJvbVN0cmluZyhzdHIsICdiYXNlNjR1cmxwYWQnKTtcbiAgICBpZiAobGVuICE9IG51bGwpIHtcbiAgICAgICAgaWYgKGJ1Zi5sZW5ndGggPiBsZW4pXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2J5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgnKTtcbiAgICAgICAgYnVmID0gdWludDhBcnJheUNvbmNhdChbbmV3IFVpbnQ4QXJyYXkobGVuIC0gYnVmLmxlbmd0aCksIGJ1Zl0pO1xuICAgIH1cbiAgICByZXR1cm4gYnVmO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvbWlzZSh0aGluZykge1xuICAgIGlmICh0aGluZyA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHR5cGVvZiB0aGluZy50aGVuID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAgIHR5cGVvZiB0aGluZy5jYXRjaCA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICB0eXBlb2YgdGhpbmcuZmluYWxseSA9PT0gJ2Z1bmN0aW9uJztcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWwuanMubWFwIl0sIm5hbWVzIjpbImNvbmNhdCIsInVpbnQ4QXJyYXlDb25jYXQiLCJmcm9tU3RyaW5nIiwidWludDhBcnJheUZyb21TdHJpbmciLCJiYXNlNjR1cmxUb0J1ZmZlciIsInN0ciIsImxlbiIsImJ1ZiIsImxlbmd0aCIsIkVycm9yIiwiVWludDhBcnJheSIsImlzUHJvbWlzZSIsInRoaW5nIiwidGhlbiIsImNhdGNoIiwiZmluYWxseSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/crypto/dist/src/util.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/crypto/dist/src/webcrypto.js":
/*!***********************************************************!*\
!*** ./node_modules/@libp2p/crypto/dist/src/webcrypto.js ***!
\***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! crypto */ \"crypto\");\n/* eslint-env browser */ \n// globalThis `SubtleCrypto` shipped in node.js 19.x, Electron currently uses\n// v18.x so this override file is necessary until Electron updates\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n get (win = globalThis) {\n return crypto__WEBPACK_IMPORTED_MODULE_0__.webcrypto;\n }\n}); //# sourceMappingURL=webcrypto.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9jcnlwdG8vZGlzdC9zcmMvd2ViY3J5cHRvLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0JBQXNCLEdBQ2E7QUFDbkMsNkVBQTZFO0FBQzdFLGtFQUFrRTtBQUNsRSxpRUFBZTtJQUNYQyxLQUFJQyxNQUFNQyxVQUFVO1FBQ2hCLE9BQU9ILDZDQUFTQTtJQUNwQjtBQUNKLENBQUMsRUFBQyxDQUNGLHFDQUFxQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvY3J5cHRvL2Rpc3Qvc3JjL3dlYmNyeXB0by5qcz80MTdiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1lbnYgYnJvd3NlciAqL1xuaW1wb3J0IHsgd2ViY3J5cHRvIH0gZnJvbSAnY3J5cHRvJztcbi8vIGdsb2JhbFRoaXMgYFN1YnRsZUNyeXB0b2Agc2hpcHBlZCBpbiBub2RlLmpzIDE5LngsIEVsZWN0cm9uIGN1cnJlbnRseSB1c2VzXG4vLyB2MTgueCBzbyB0aGlzIG92ZXJyaWRlIGZpbGUgaXMgbmVjZXNzYXJ5IHVudGlsIEVsZWN0cm9uIHVwZGF0ZXNcbmV4cG9ydCBkZWZhdWx0IHtcbiAgICBnZXQod2luID0gZ2xvYmFsVGhpcykge1xuICAgICAgICByZXR1cm4gd2ViY3J5cHRvO1xuICAgIH1cbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD13ZWJjcnlwdG8uanMubWFwIl0sIm5hbWVzIjpbIndlYmNyeXB0byIsImdldCIsIndpbiIsImdsb2JhbFRoaXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/crypto/dist/src/webcrypto.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/identify/dist/src/consts.js":
/*!**********************************************************!*\
!*** ./node_modules/@libp2p/identify/dist/src/consts.js ***!
\**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ IDENTIFY_PROTOCOL_VERSION: () => (/* binding */ IDENTIFY_PROTOCOL_VERSION),\n/* harmony export */ MULTICODEC_IDENTIFY: () => (/* binding */ MULTICODEC_IDENTIFY),\n/* harmony export */ MULTICODEC_IDENTIFY_PROTOCOL_NAME: () => (/* binding */ MULTICODEC_IDENTIFY_PROTOCOL_NAME),\n/* harmony export */ MULTICODEC_IDENTIFY_PROTOCOL_VERSION: () => (/* binding */ MULTICODEC_IDENTIFY_PROTOCOL_VERSION),\n/* harmony export */ MULTICODEC_IDENTIFY_PUSH: () => (/* binding */ MULTICODEC_IDENTIFY_PUSH),\n/* harmony export */ MULTICODEC_IDENTIFY_PUSH_PROTOCOL_NAME: () => (/* binding */ MULTICODEC_IDENTIFY_PUSH_PROTOCOL_NAME),\n/* harmony export */ MULTICODEC_IDENTIFY_PUSH_PROTOCOL_VERSION: () => (/* binding */ MULTICODEC_IDENTIFY_PUSH_PROTOCOL_VERSION),\n/* harmony export */ PROTOCOL_VERSION: () => (/* binding */ PROTOCOL_VERSION)\n/* harmony export */ });\nconst PROTOCOL_VERSION = \"ipfs/0.1.0\"; // deprecated\nconst MULTICODEC_IDENTIFY = \"/ipfs/id/1.0.0\"; // deprecated\nconst MULTICODEC_IDENTIFY_PUSH = \"/ipfs/id/push/1.0.0\"; // deprecated\nconst IDENTIFY_PROTOCOL_VERSION = \"0.1.0\";\nconst MULTICODEC_IDENTIFY_PROTOCOL_NAME = \"id\";\nconst MULTICODEC_IDENTIFY_PUSH_PROTOCOL_NAME = \"id/push\";\nconst MULTICODEC_IDENTIFY_PROTOCOL_VERSION = \"1.0.0\";\nconst MULTICODEC_IDENTIFY_PUSH_PROTOCOL_VERSION = \"1.0.0\"; //# sourceMappingURL=consts.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9pZGVudGlmeS9kaXN0L3NyYy9jb25zdHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBTyxNQUFNQSxtQkFBbUIsYUFBYSxDQUFDLGFBQWE7QUFDcEQsTUFBTUMsc0JBQXNCLGlCQUFpQixDQUFDLGFBQWE7QUFDM0QsTUFBTUMsMkJBQTJCLHNCQUFzQixDQUFDLGFBQWE7QUFDckUsTUFBTUMsNEJBQTRCLFFBQVE7QUFDMUMsTUFBTUMsb0NBQW9DLEtBQUs7QUFDL0MsTUFBTUMseUNBQXlDLFVBQVU7QUFDekQsTUFBTUMsdUNBQXVDLFFBQVE7QUFDckQsTUFBTUMsNENBQTRDLFFBQVEsQ0FDakUsa0NBQWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9pZGVudGlmeS9kaXN0L3NyYy9jb25zdHMuanM/MWIwNiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgUFJPVE9DT0xfVkVSU0lPTiA9ICdpcGZzLzAuMS4wJzsgLy8gZGVwcmVjYXRlZFxuZXhwb3J0IGNvbnN0IE1VTFRJQ09ERUNfSURFTlRJRlkgPSAnL2lwZnMvaWQvMS4wLjAnOyAvLyBkZXByZWNhdGVkXG5leHBvcnQgY29uc3QgTVVMVElDT0RFQ19JREVOVElGWV9QVVNIID0gJy9pcGZzL2lkL3B1c2gvMS4wLjAnOyAvLyBkZXByZWNhdGVkXG5leHBvcnQgY29uc3QgSURFTlRJRllfUFJPVE9DT0xfVkVSU0lPTiA9ICcwLjEuMCc7XG5leHBvcnQgY29uc3QgTVVMVElDT0RFQ19JREVOVElGWV9QUk9UT0NPTF9OQU1FID0gJ2lkJztcbmV4cG9ydCBjb25zdCBNVUxUSUNPREVDX0lERU5USUZZX1BVU0hfUFJPVE9DT0xfTkFNRSA9ICdpZC9wdXNoJztcbmV4cG9ydCBjb25zdCBNVUxUSUNPREVDX0lERU5USUZZX1BST1RPQ09MX1ZFUlNJT04gPSAnMS4wLjAnO1xuZXhwb3J0IGNvbnN0IE1VTFRJQ09ERUNfSURFTlRJRllfUFVTSF9QUk9UT0NPTF9WRVJTSU9OID0gJzEuMC4wJztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnN0cy5qcy5tYXAiXSwibmFtZXMiOlsiUFJPVE9DT0xfVkVSU0lPTiIsIk1VTFRJQ09ERUNfSURFTlRJRlkiLCJNVUxUSUNPREVDX0lERU5USUZZX1BVU0giLCJJREVOVElGWV9QUk9UT0NPTF9WRVJTSU9OIiwiTVVMVElDT0RFQ19JREVOVElGWV9QUk9UT0NPTF9OQU1FIiwiTVVMVElDT0RFQ19JREVOVElGWV9QVVNIX1BST1RPQ09MX05BTUUiLCJNVUxUSUNPREVDX0lERU5USUZZX1BST1RPQ09MX1ZFUlNJT04iLCJNVUxUSUNPREVDX0lERU5USUZZX1BVU0hfUFJPVE9DT0xfVkVSU0lPTiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/identify/dist/src/consts.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/identify/dist/src/identify.js":
/*!************************************************************!*\
!*** ./node_modules/@libp2p/identify/dist/src/identify.js ***!
\************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Identify: () => (/* binding */ Identify)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/events.js\");\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var _libp2p_peer_id__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @libp2p/peer-id */ \"(ssr)/./node_modules/@libp2p/peer-id/dist/src/index.js\");\n/* harmony import */ var _libp2p_peer_record__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @libp2p/peer-record */ \"(ssr)/./node_modules/@libp2p/peer-record/dist/src/peer-record/index.js\");\n/* harmony import */ var _libp2p_peer_record__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @libp2p/peer-record */ \"(ssr)/./node_modules/@libp2p/peer-record/dist/src/envelope/index.js\");\n/* harmony import */ var _multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @multiformats/multiaddr */ \"(ssr)/./node_modules/@multiformats/multiaddr/dist/src/index.js\");\n/* harmony import */ var _multiformats_multiaddr_matcher__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @multiformats/multiaddr-matcher */ \"(ssr)/./node_modules/@multiformats/multiaddr-matcher/dist/src/index.js\");\n/* harmony import */ var it_protobuf_stream__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! it-protobuf-stream */ \"(ssr)/./node_modules/it-protobuf-stream/dist/src/index.js\");\n/* harmony import */ var uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! uint8arrays/from-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/from-string.node.js\");\n/* harmony import */ var uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! uint8arrays/to-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/to-string.node.js\");\n/* harmony import */ var wherearewe__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! wherearewe */ \"(ssr)/./node_modules/wherearewe/src/index.js\");\n/* harmony import */ var _consts_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./consts.js */ \"(ssr)/./node_modules/@libp2p/identify/dist/src/consts.js\");\n/* harmony import */ var _pb_message_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./pb/message.js */ \"(ssr)/./node_modules/@libp2p/identify/dist/src/pb/message.js\");\n/* eslint-disable complexity */ \n\n\n\n\n\n\n\n\n\n\n// https://github.com/libp2p/go-libp2p/blob/8d2e54e1637041d5cf4fac1e531287560bd1f4ac/p2p/protocol/identify/id.go#L52\nconst MAX_IDENTIFY_MESSAGE_SIZE = 1024 * 8;\nconst defaultValues = {\n protocolPrefix: \"ipfs\",\n // https://github.com/libp2p/go-libp2p/blob/8d2e54e1637041d5cf4fac1e531287560bd1f4ac/p2p/protocol/identify/id.go#L48\n timeout: 60000,\n maxInboundStreams: 1,\n maxOutboundStreams: 1,\n maxPushIncomingStreams: 1,\n maxPushOutgoingStreams: 1,\n maxObservedAddresses: 10,\n maxIdentifyMessageSize: 8192,\n runOnConnectionOpen: true,\n runOnTransientConnection: true\n};\nclass Identify {\n constructor(components, init = {}){\n this.started = false;\n this.peerId = components.peerId;\n this.peerStore = components.peerStore;\n this.registrar = components.registrar;\n this.addressManager = components.addressManager;\n this.connectionManager = components.connectionManager;\n this.events = components.events;\n this.log = components.logger.forComponent(\"libp2p:identify\");\n this.identifyProtocolStr = `/${init.protocolPrefix ?? defaultValues.protocolPrefix}/${_consts_js__WEBPACK_IMPORTED_MODULE_6__.MULTICODEC_IDENTIFY_PROTOCOL_NAME}/${_consts_js__WEBPACK_IMPORTED_MODULE_6__.MULTICODEC_IDENTIFY_PROTOCOL_VERSION}`;\n this.identifyPushProtocolStr = `/${init.protocolPrefix ?? defaultValues.protocolPrefix}/${_consts_js__WEBPACK_IMPORTED_MODULE_6__.MULTICODEC_IDENTIFY_PUSH_PROTOCOL_NAME}/${_consts_js__WEBPACK_IMPORTED_MODULE_6__.MULTICODEC_IDENTIFY_PUSH_PROTOCOL_VERSION}`;\n this.timeout = init.timeout ?? defaultValues.timeout;\n this.maxInboundStreams = init.maxInboundStreams ?? defaultValues.maxInboundStreams;\n this.maxOutboundStreams = init.maxOutboundStreams ?? defaultValues.maxOutboundStreams;\n this.maxPushIncomingStreams = init.maxPushIncomingStreams ?? defaultValues.maxPushIncomingStreams;\n this.maxPushOutgoingStreams = init.maxPushOutgoingStreams ?? defaultValues.maxPushOutgoingStreams;\n this.maxIdentifyMessageSize = init.maxIdentifyMessageSize ?? defaultValues.maxIdentifyMessageSize;\n this.maxObservedAddresses = init.maxObservedAddresses ?? defaultValues.maxObservedAddresses;\n this.runOnTransientConnection = init.runOnTransientConnection ?? defaultValues.runOnTransientConnection;\n // Store self host metadata\n this.host = {\n protocolVersion: `${init.protocolPrefix ?? defaultValues.protocolPrefix}/${_consts_js__WEBPACK_IMPORTED_MODULE_6__.IDENTIFY_PROTOCOL_VERSION}`,\n agentVersion: init.agentVersion ?? `${components.nodeInfo.name}/${components.nodeInfo.version}`\n };\n if (init.runOnConnectionOpen ?? defaultValues.runOnConnectionOpen) {\n // When a new connection happens, trigger identify\n components.events.addEventListener(\"connection:open\", (evt)=>{\n const connection = evt.detail;\n this.identify(connection).catch((err)=>{\n this.log.error(\"error during identify trigged by connection:open\", err);\n });\n });\n }\n // When self peer record changes, trigger identify-push\n components.events.addEventListener(\"self:peer:update\", (evt)=>{\n void this.push().catch((err)=>{\n this.log.error(err);\n });\n });\n // Append user agent version to default AGENT_VERSION depending on the environment\n if (this.host.agentVersion === `${components.nodeInfo.name}/${components.nodeInfo.version}`) {\n if (wherearewe__WEBPACK_IMPORTED_MODULE_5__.isNode || wherearewe__WEBPACK_IMPORTED_MODULE_5__.isElectronMain) {\n this.host.agentVersion += ` UserAgent=${globalThis.process.version}`;\n } else if (wherearewe__WEBPACK_IMPORTED_MODULE_5__.isBrowser || wherearewe__WEBPACK_IMPORTED_MODULE_5__.isWebWorker || wherearewe__WEBPACK_IMPORTED_MODULE_5__.isElectronRenderer || wherearewe__WEBPACK_IMPORTED_MODULE_5__.isReactNative) {\n this.host.agentVersion += ` UserAgent=${globalThis.navigator.userAgent}`;\n }\n }\n }\n isStarted() {\n return this.started;\n }\n async start() {\n if (this.started) {\n return;\n }\n await this.peerStore.merge(this.peerId, {\n metadata: {\n AgentVersion: (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_3__.fromString)(this.host.agentVersion),\n ProtocolVersion: (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_3__.fromString)(this.host.protocolVersion)\n }\n });\n await this.registrar.handle(this.identifyProtocolStr, (data)=>{\n void this._handleIdentify(data).catch((err)=>{\n this.log.error(err);\n });\n }, {\n maxInboundStreams: this.maxInboundStreams,\n maxOutboundStreams: this.maxOutboundStreams,\n runOnTransientConnection: this.runOnTransientConnection\n });\n await this.registrar.handle(this.identifyPushProtocolStr, (data)=>{\n void this._handlePush(data).catch((err)=>{\n this.log.error(err);\n });\n }, {\n maxInboundStreams: this.maxPushIncomingStreams,\n maxOutboundStreams: this.maxPushOutgoingStreams,\n runOnTransientConnection: this.runOnTransientConnection\n });\n this.started = true;\n }\n async stop() {\n await this.registrar.unhandle(this.identifyProtocolStr);\n await this.registrar.unhandle(this.identifyPushProtocolStr);\n this.started = false;\n }\n /**\n * Send an Identify Push update to the list of connections\n */ async pushToConnections(connections) {\n const listenAddresses = this.addressManager.getAddresses().map((ma)=>ma.decapsulateCode((0,_multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_0__.protocols)(\"p2p\").code));\n const peerRecord = new _libp2p_peer_record__WEBPACK_IMPORTED_MODULE_7__.PeerRecord({\n peerId: this.peerId,\n multiaddrs: listenAddresses\n });\n const signedPeerRecord = await _libp2p_peer_record__WEBPACK_IMPORTED_MODULE_8__.RecordEnvelope.seal(peerRecord, this.peerId);\n const supportedProtocols = this.registrar.getProtocols();\n const peer = await this.peerStore.get(this.peerId);\n const agentVersion = (0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_4__.toString)(peer.metadata.get(\"AgentVersion\") ?? (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_3__.fromString)(this.host.agentVersion));\n const protocolVersion = (0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_4__.toString)(peer.metadata.get(\"ProtocolVersion\") ?? (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_3__.fromString)(this.host.protocolVersion));\n const pushes = connections.map(async (connection)=>{\n let stream;\n const signal = AbortSignal.timeout(this.timeout);\n (0,_libp2p_interface__WEBPACK_IMPORTED_MODULE_9__.setMaxListeners)(Infinity, signal);\n try {\n stream = await connection.newStream(this.identifyPushProtocolStr, {\n signal,\n runOnTransientConnection: this.runOnTransientConnection\n });\n const pb = (0,it_protobuf_stream__WEBPACK_IMPORTED_MODULE_2__.pbStream)(stream, {\n maxDataLength: this.maxIdentifyMessageSize ?? MAX_IDENTIFY_MESSAGE_SIZE\n }).pb(_pb_message_js__WEBPACK_IMPORTED_MODULE_10__.Identify);\n await pb.write({\n listenAddrs: listenAddresses.map((ma)=>ma.bytes),\n signedPeerRecord: signedPeerRecord.marshal(),\n protocols: supportedProtocols,\n agentVersion,\n protocolVersion\n }, {\n signal\n });\n await stream.close({\n signal\n });\n } catch (err) {\n // Just log errors\n this.log.error(\"could not push identify update to peer\", err);\n stream?.abort(err);\n }\n });\n await Promise.all(pushes);\n }\n /**\n * Calls `push` on all peer connections\n */ async push() {\n // Do not try to push if we are not running\n if (!this.isStarted()) {\n return;\n }\n const connections = [];\n await Promise.all(this.connectionManager.getConnections().map(async (conn)=>{\n try {\n const peer = await this.peerStore.get(conn.remotePeer);\n if (!peer.protocols.includes(this.identifyPushProtocolStr)) {\n return;\n }\n connections.push(conn);\n } catch (err) {\n if (err.code !== _libp2p_interface__WEBPACK_IMPORTED_MODULE_11__.ERR_NOT_FOUND) {\n throw err;\n }\n }\n }));\n await this.pushToConnections(connections);\n }\n async _identify(connection, options = {}) {\n let stream;\n if (options.signal == null) {\n const signal = AbortSignal.timeout(this.timeout);\n (0,_libp2p_interface__WEBPACK_IMPORTED_MODULE_9__.setMaxListeners)(Infinity, signal);\n options = {\n ...options,\n signal\n };\n }\n try {\n stream = await connection.newStream(this.identifyProtocolStr, {\n ...options,\n runOnTransientConnection: this.runOnTransientConnection\n });\n const pb = (0,it_protobuf_stream__WEBPACK_IMPORTED_MODULE_2__.pbStream)(stream, {\n maxDataLength: this.maxIdentifyMessageSize ?? MAX_IDENTIFY_MESSAGE_SIZE\n }).pb(_pb_message_js__WEBPACK_IMPORTED_MODULE_10__.Identify);\n const message = await pb.read(options);\n await stream.close(options);\n return message;\n } catch (err) {\n this.log.error(\"error while reading identify message\", err);\n stream?.abort(err);\n throw err;\n }\n }\n async identify(connection, options = {}) {\n const message = await this._identify(connection, options);\n const { publicKey, protocols, observedAddr } = message;\n if (publicKey == null) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_11__.CodeError(\"public key was missing from identify message\", \"ERR_MISSING_PUBLIC_KEY\");\n }\n const id = await (0,_libp2p_peer_id__WEBPACK_IMPORTED_MODULE_12__.peerIdFromKeys)(publicKey);\n if (!connection.remotePeer.equals(id)) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_11__.CodeError(\"identified peer does not match the expected peer\", \"ERR_INVALID_PEER\");\n }\n if (this.peerId.equals(id)) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_11__.CodeError(\"identified peer is our own peer id?\", \"ERR_INVALID_PEER\");\n }\n // Get the observedAddr if there is one\n const cleanObservedAddr = getCleanMultiaddr(observedAddr);\n this.log(\"identify completed for peer %p and protocols %o\", id, protocols);\n this.log(\"our observed address is %a\", cleanObservedAddr);\n if (cleanObservedAddr != null && this.addressManager.getObservedAddrs().length < (this.maxObservedAddresses ?? Infinity)) {\n this.log(\"storing our observed address %a\", cleanObservedAddr);\n this.addressManager.addObservedAddr(cleanObservedAddr);\n }\n return this.#consumeIdentifyMessage(connection, message);\n }\n /**\n * Sends the `Identify` response with the Signed Peer Record\n * to the requesting peer over the given `connection`\n */ async _handleIdentify(data) {\n const { connection, stream } = data;\n const signal = AbortSignal.timeout(this.timeout);\n (0,_libp2p_interface__WEBPACK_IMPORTED_MODULE_9__.setMaxListeners)(Infinity, signal);\n try {\n const publicKey = this.peerId.publicKey ?? new Uint8Array(0);\n const peerData = await this.peerStore.get(this.peerId);\n const multiaddrs = this.addressManager.getAddresses().map((ma)=>ma.decapsulateCode((0,_multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_0__.protocols)(\"p2p\").code));\n let signedPeerRecord = peerData.peerRecordEnvelope;\n if (multiaddrs.length > 0 && signedPeerRecord == null) {\n const peerRecord = new _libp2p_peer_record__WEBPACK_IMPORTED_MODULE_7__.PeerRecord({\n peerId: this.peerId,\n multiaddrs\n });\n const envelope = await _libp2p_peer_record__WEBPACK_IMPORTED_MODULE_8__.RecordEnvelope.seal(peerRecord, this.peerId);\n signedPeerRecord = envelope.marshal().subarray();\n }\n let observedAddr = connection.remoteAddr.bytes;\n if (!_multiformats_multiaddr_matcher__WEBPACK_IMPORTED_MODULE_1__.IP_OR_DOMAIN.matches(connection.remoteAddr)) {\n observedAddr = undefined;\n }\n const pb = (0,it_protobuf_stream__WEBPACK_IMPORTED_MODULE_2__.pbStream)(stream).pb(_pb_message_js__WEBPACK_IMPORTED_MODULE_10__.Identify);\n await pb.write({\n protocolVersion: this.host.protocolVersion,\n agentVersion: this.host.agentVersion,\n publicKey,\n listenAddrs: multiaddrs.map((addr)=>addr.bytes),\n signedPeerRecord,\n observedAddr,\n protocols: peerData.protocols\n }, {\n signal\n });\n await stream.close({\n signal\n });\n } catch (err) {\n this.log.error(\"could not respond to identify request\", err);\n stream.abort(err);\n }\n }\n /**\n * Reads the Identify Push message from the given `connection`\n */ async _handlePush(data) {\n const { connection, stream } = data;\n try {\n if (this.peerId.equals(connection.remotePeer)) {\n throw new Error(\"received push from ourselves?\");\n }\n const options = {\n signal: AbortSignal.timeout(this.timeout)\n };\n const pb = (0,it_protobuf_stream__WEBPACK_IMPORTED_MODULE_2__.pbStream)(stream, {\n maxDataLength: this.maxIdentifyMessageSize ?? MAX_IDENTIFY_MESSAGE_SIZE\n }).pb(_pb_message_js__WEBPACK_IMPORTED_MODULE_10__.Identify);\n const message = await pb.read(options);\n await stream.close(options);\n await this.#consumeIdentifyMessage(connection, message);\n } catch (err) {\n this.log.error(\"received invalid message\", err);\n stream.abort(err);\n return;\n }\n this.log(\"handled push from %p\", connection.remotePeer);\n }\n async #consumeIdentifyMessage(connection, message) {\n this.log(\"received identify from %p\", connection.remotePeer);\n if (message == null) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_11__.CodeError(\"message was null or undefined\", \"ERR_INVALID_MESSAGE\");\n }\n const peer = {};\n if (message.listenAddrs.length > 0) {\n peer.addresses = message.listenAddrs.map((buf)=>({\n isCertified: false,\n multiaddr: (0,_multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_0__.multiaddr)(buf)\n }));\n }\n if (message.protocols.length > 0) {\n peer.protocols = message.protocols;\n }\n if (message.publicKey != null) {\n peer.publicKey = message.publicKey;\n const peerId = await (0,_libp2p_peer_id__WEBPACK_IMPORTED_MODULE_12__.peerIdFromKeys)(message.publicKey);\n if (!peerId.equals(connection.remotePeer)) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_11__.CodeError(\"public key did not match remote PeerId\", \"ERR_INVALID_PUBLIC_KEY\");\n }\n }\n let output;\n // if the peer record has been sent, prefer the addresses in the record as they are signed by the remote peer\n if (message.signedPeerRecord != null) {\n this.log(\"received signedPeerRecord from %p\", connection.remotePeer);\n let peerRecordEnvelope = message.signedPeerRecord;\n const envelope = await _libp2p_peer_record__WEBPACK_IMPORTED_MODULE_8__.RecordEnvelope.openAndCertify(peerRecordEnvelope, _libp2p_peer_record__WEBPACK_IMPORTED_MODULE_7__.PeerRecord.DOMAIN);\n let peerRecord = _libp2p_peer_record__WEBPACK_IMPORTED_MODULE_7__.PeerRecord.createFromProtobuf(envelope.payload);\n // Verify peerId\n if (!peerRecord.peerId.equals(envelope.peerId)) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_11__.CodeError(\"signing key does not match PeerId in the PeerRecord\", \"ERR_INVALID_SIGNING_KEY\");\n }\n // Make sure remote peer is the one sending the record\n if (!connection.remotePeer.equals(peerRecord.peerId)) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_11__.CodeError(\"signing key does not match remote PeerId\", \"ERR_INVALID_PEER_RECORD_KEY\");\n }\n let existingPeer;\n try {\n existingPeer = await this.peerStore.get(peerRecord.peerId);\n } catch (err) {\n if (err.code !== \"ERR_NOT_FOUND\") {\n throw err;\n }\n }\n if (existingPeer != null) {\n // don't lose any existing metadata\n peer.metadata = existingPeer.metadata;\n // if we have previously received a signed record for this peer, compare it to the incoming one\n if (existingPeer.peerRecordEnvelope != null) {\n const storedEnvelope = await _libp2p_peer_record__WEBPACK_IMPORTED_MODULE_8__.RecordEnvelope.createFromProtobuf(existingPeer.peerRecordEnvelope);\n const storedRecord = _libp2p_peer_record__WEBPACK_IMPORTED_MODULE_7__.PeerRecord.createFromProtobuf(storedEnvelope.payload);\n // ensure seq is greater than, or equal to, the last received\n if (storedRecord.seqNumber >= peerRecord.seqNumber) {\n this.log(\"sequence number was lower or equal to existing sequence number - stored: %d received: %d\", storedRecord.seqNumber, peerRecord.seqNumber);\n peerRecord = storedRecord;\n peerRecordEnvelope = existingPeer.peerRecordEnvelope;\n }\n }\n }\n // store the signed record for next time\n peer.peerRecordEnvelope = peerRecordEnvelope;\n // override the stored addresses with the signed multiaddrs\n peer.addresses = peerRecord.multiaddrs.map((multiaddr)=>({\n isCertified: true,\n multiaddr\n }));\n output = {\n seq: peerRecord.seqNumber,\n addresses: peerRecord.multiaddrs\n };\n } else {\n this.log(\"%p did not send a signed peer record\", connection.remotePeer);\n }\n this.log(\"patching %p with\", connection.remotePeer, peer);\n await this.peerStore.patch(connection.remotePeer, peer);\n if (message.agentVersion != null || message.protocolVersion != null) {\n const metadata = {};\n if (message.agentVersion != null) {\n metadata.AgentVersion = (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_3__.fromString)(message.agentVersion);\n }\n if (message.protocolVersion != null) {\n metadata.ProtocolVersion = (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_3__.fromString)(message.protocolVersion);\n }\n this.log(\"merging %p metadata\", connection.remotePeer, metadata);\n await this.peerStore.merge(connection.remotePeer, {\n metadata\n });\n }\n const result = {\n peerId: connection.remotePeer,\n protocolVersion: message.protocolVersion,\n agentVersion: message.agentVersion,\n publicKey: message.publicKey,\n listenAddrs: message.listenAddrs.map((buf)=>(0,_multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_0__.multiaddr)(buf)),\n observedAddr: message.observedAddr == null ? undefined : (0,_multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_0__.multiaddr)(message.observedAddr),\n protocols: message.protocols,\n signedPeerRecord: output,\n connection\n };\n this.events.safeDispatchEvent(\"peer:identify\", {\n detail: result\n });\n return result;\n }\n}\n/**\n * Takes the `addr` and converts it to a Multiaddr if possible\n */ function getCleanMultiaddr(addr) {\n if (addr != null && addr.length > 0) {\n try {\n return (0,_multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_0__.multiaddr)(addr);\n } catch {}\n }\n} //# sourceMappingURL=identify.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9pZGVudGlmeS9kaXN0L3NyYy9pZGVudGlmeS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZCQUE2QixHQUNpRDtBQUM3QjtBQUNnQjtBQUNGO0FBQ0E7QUFDakI7QUFDK0I7QUFDTjtBQUN3QztBQUNxRztBQUN0SjtBQUM5RCxvSEFBb0g7QUFDcEgsTUFBTTJCLDRCQUE0QixPQUFPO0FBQ3pDLE1BQU1DLGdCQUFnQjtJQUNsQkMsZ0JBQWdCO0lBQ2hCLG9IQUFvSDtJQUNwSEMsU0FBUztJQUNUQyxtQkFBbUI7SUFDbkJDLG9CQUFvQjtJQUNwQkMsd0JBQXdCO0lBQ3hCQyx3QkFBd0I7SUFDeEJDLHNCQUFzQjtJQUN0QkMsd0JBQXdCO0lBQ3hCQyxxQkFBcUI7SUFDckJDLDBCQUEwQjtBQUM5QjtBQUNPLE1BQU1iO0lBb0JUYyxZQUFZQyxVQUFVLEVBQUVDLE9BQU8sQ0FBQyxDQUFDLENBQUU7UUFDL0IsSUFBSSxDQUFDQyxPQUFPLEdBQUc7UUFDZixJQUFJLENBQUNDLE1BQU0sR0FBR0gsV0FBV0csTUFBTTtRQUMvQixJQUFJLENBQUNDLFNBQVMsR0FBR0osV0FBV0ksU0FBUztRQUNyQyxJQUFJLENBQUNDLFNBQVMsR0FBR0wsV0FBV0ssU0FBUztRQUNyQyxJQUFJLENBQUNDLGNBQWMsR0FBR04sV0FBV00sY0FBYztRQUMvQyxJQUFJLENBQUNDLGlCQUFpQixHQUFHUCxXQUFXTyxpQkFBaUI7UUFDckQsSUFBSSxDQUFDQyxNQUFNLEdBQUdSLFdBQVdRLE1BQU07UUFDL0IsSUFBSSxDQUFDQyxHQUFHLEdBQUdULFdBQVdVLE1BQU0sQ0FBQ0MsWUFBWSxDQUFDO1FBQzFDLElBQUksQ0FBQ0MsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLEVBQUVYLEtBQUtaLGNBQWMsSUFBSUQsY0FBY0MsY0FBYyxDQUFDLENBQUMsRUFBRVIseUVBQWlDQSxDQUFDLENBQUMsRUFBRUUsNEVBQW9DQSxDQUFDLENB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SCxRQUFRbUIsV0FBV3lELFVBQVU7WUFDN0JoRSxpQkFBaUJvRSxRQUFRcEUsZUFBZTtZQUN4Q0MsY0FBY21FLFFBQVFuRSxZQUFZO1lBQ2xDcUUsV0FBV0YsUUFBUUUsU0FBUztZQUM1QmYsYUFBYWEsUUFBUWIsV0FBVyxDQUFDckIsR0FBRyxDQUFDeUQsQ0FBQUEsTUFBTzVJLGtFQUFTQSxDQUFDNEk7WUFDdERwQixjQUFjSCxRQUFRRyxZQUFZLElBQUksT0FBT2dCLFlBQVl4SSxrRUFBU0EsQ0FBQ3FILFFBQVFHLFlBQVk7WUFDdkZ2SCxXQUFXb0gsUUFBUXBILFNBQVM7WUFDNUJ3RixrQkFBa0JxRDtZQUNsQnRGO1FBQ0o7UUFDQSxJQUFJLENBQUNkLE1BQU0sQ0FBQ2dILGlCQUFpQixDQUFDLGlCQUFpQjtZQUFFakcsUUFBUWdHO1FBQU87UUFDaEUsT0FBT0E7SUFDWDtBQUNKO0FBQ0E7O0NBRUMsR0FDRCxTQUFTN0Isa0JBQWtCYSxJQUFJO0lBQzNCLElBQUlBLFFBQVEsUUFBUUEsS0FBS1gsTUFBTSxHQUFHLEdBQUc7UUFDakMsSUFBSTtZQUNBLE9BQU85SCxrRUFBU0EsQ0FBQ3lJO1FBQ3JCLEVBQ0EsT0FBTSxDQUNOO0lBQ0o7QUFDSixFQUNBLG9DQUFvQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvaWRlbnRpZnkvZGlzdC9zcmMvaWRlbnRpZnkuanM/MTI3OCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG5pbXBvcnQgeyBDb2RlRXJyb3IsIEVSUl9OT1RfRk9VTkQsIHNldE1heExpc3RlbmVycyB9IGZyb20gJ0BsaWJwMnAvaW50ZXJmYWNlJztcbmltcG9ydCB7IHBlZXJJZEZyb21LZXlzIH0gZnJvbSAnQGxpYnAycC9wZWVyLWlkJztcbmltcG9ydCB7IFJlY29yZEVudmVsb3BlLCBQZWVyUmVjb3JkIH0gZnJvbSAnQGxpYnAycC9wZWVyLXJlY29yZCc7XG5pbXBvcnQgeyBtdWx0aWFkZHIsIHByb3RvY29scyB9IGZyb20gJ0BtdWx0aWZvcm1hdHMvbXVsdGlhZGRyJztcbmltcG9ydCB7IElQX09SX0RPTUFJTiB9IGZyb20gJ0BtdWx0aWZvcm1hdHMvbXVsdGlhZGRyLW1hdGNoZXInO1xuaW1wb3J0IHsgcGJTdHJlYW0gfSBmcm9tICdpdC1wcm90b2J1Zi1zdHJlYW0nO1xuaW1wb3J0IHsgZnJvbVN0cmluZyBhcyB1aW50OEFycmF5RnJvbVN0cmluZyB9IGZyb20gJ3VpbnQ4YXJyYXlzL2Zyb20tc3RyaW5nJztcbmltcG9ydCB7IHRvU3RyaW5nIGFzIHVpbnQ4QXJyYXlUb1N0cmluZyB9IGZyb20gJ3VpbnQ4YXJyYXlzL3RvLXN0cmluZyc7XG5pbXBvcnQgeyBpc05vZGUsIGlzQnJvd3NlciwgaXNXZWJXb3JrZXIsIGlzRWxlY3Ryb25NYWluLCBpc0VsZWN0cm9uUmVuZGVyZXIsIGlzUmVhY3ROYXRpdmUgfSBmcm9tICd3aGVyZWFyZXdlJztcbmltcG9ydCB7IElERU5USUZZX1BST1RPQ09MX1ZFUlNJT04sIE1VTFRJQ09ERUNfSURFTlRJRllfUFJPVE9DT0xfTkFNRSwgTVVMVElDT0RFQ19JREVOVElGWV9QVVNIX1BST1RPQ09MX05BTUUsIE1VTFRJQ09ERUNfSURFTlRJRllfUFJPVE9DT0xfVkVSU0lPTiwgTVVMVElDT0RFQ19JREVOVElGWV9QVVNIX1BST1RPQ09MX1ZFUlNJT04gfSBmcm9tICcuL2NvbnN0cy5qcyc7XG5pbXBvcnQgeyBJZGVudGlmeSBhcyBJZGVudGlmeU1lc3NhZ2UgfSBmcm9tICcuL3BiL21lc3NhZ2UuanMnO1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL2xpYnAycC9nby1saWJwMnAvYmxvYi84ZDJlNTRlMTYzNzA0MWQ1Y2Y0ZmFjMWU1MzEyODc1NjBiZDFmNGFjL3AycC9wcm90b2NvbC9pZGVudGlmeS9pZC5nbyNMNTJcbmNvbnN0IE1BWF9JREVOVElGWV9NRVNTQUdFX1NJWkUgPSAxMDI0ICogODtcbmNvbnN0IGRlZmF1bHRWYWx1ZXMgPSB7XG4gICAgcHJvdG9jb2xQcmVmaXg6ICdpcGZzJyxcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbGlicDJwL2dvLWxpYnAycC9ibG9iLzhkMmU1NGUxNjM3MDQxZDVjZjRmYWMxZTUzMTI4NzU2MGJkMWY0YWMvcDJwL3Byb3RvY29sL2lkZW50aWZ5L2lkLmdvI0w0OFxuICAgIHRpbWVvdXQ6IDYwMDAwLFxuICAgIG1heEluYm91bmRTdHJlYW1zOiAxLFxuICAgIG1heE91dGJvdW5kU3RyZWFtczogMSxcbiAgICBtYXhQdXNoSW5jb21pbmdTdHJlYW1zOiAxLFxuICAgIG1heFB1c2hPdXRnb2luZ1N0cmVhbXM6IDEsXG4gICAgbWF4T2JzZXJ2ZWRBZGRyZXNzZXM6IDEwLFxuICAgIG1heElkZW50aWZ5TWVzc2FnZVNpemU6IDgxOTIsXG4gICAgcnVuT25Db25uZWN0aW9uT3BlbjogdHJ1ZSxcbiAgICBydW5PblRyYW5zaWVudENvbm5lY3Rpb246IHRydWVcbn07XG5leHBvcnQgY2xhc3MgSWRlbnRpZnkge1xuICAgIGlkZW50aWZ5UHJvdG9jb2xTdHI7XG4gICAgaWRlbnRpZnlQdXNoUHJvdG9jb2xTdHI7XG4gICAgaG9zdDtcbiAgICBzdGFydGVkO1xuICAgIHRpbWVvdXQ7XG4gICAgcGVlcklkO1xuICAgIHBlZXJTdG9yZTtcbiAgICByZWdpc3RyYXI7XG4gICAgY29ubmVjdGlvbk1hbmFnZXI7XG4gICAgYWRkcmVzc01hbmFnZXI7XG4gICAgbWF4SW5ib3VuZFN0cmVhbXM7XG4gICAgbWF4T3V0Ym91bmRTdHJlYW1zO1xuICAgIG1heFB1c2hJbmNvbWluZ1N0cmVhbXM7XG4gICAgbWF4UHVzaE91dGdvaW5nU3RyZWFtcztcbiAgICBtYXhJZGVudGlmeU1lc3NhZ2VTaXplO1xuICAgIG1heE9ic2VydmVkQWRkcmVzc2VzO1xuICAgIGV2ZW50cztcbiAgICBydW5PblRyYW5zaWVudENvbm5lY3Rpb247XG4gICAgbG9nO1xuICAgIGNvbnN0cnVjdG9yKGNvbXBvbmVudHMsIGluaXQgPSB7fSkge1xuICAgICAgICB0aGlzLnN0YXJ0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5wZWVySWQgPSBjb21wb25lbnRzLnBlZXJJZDtcbiAgICAgICAgdGhpcy5wZWVyU3RvcmUgPSBjb21wb25lbnRzLnBlZXJTdG9yZTtcbiAgICAgICAgdGhpcy5yZWdpc3RyYXIgPSBjb21wb25lbnRzLnJlZ2lzdHJhcjtcbiAgICAgICAgdGhpcy5hZGRyZXNzTWFuYWdlciA9IGNvbXBvbmVudHMuYWRkcmVzc01hbmFnZXI7XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbk1hbmFnZXIgPSBjb21wb25lbnRzLmNvbm5lY3Rpb25NYW5hZ2VyO1xuICAgICAgICB0aGlzLmV2ZW50cyA9IGNvbXBvbmVudHMuZXZlbnRzO1xuICAgICAgICB0aGlzLmxvZyA9IGNvbXBvbmVudHMubG9nZ2VyLmZvckNvbXBvbmVudCgnbGlicDJwOmlkZW50aWZ5Jyk7XG4gICAgICAgIHRoaXMuaWRlbnRpZnlQcm90b2NvbFN0ciA9IGAvJHtpbml0LnByb3RvY29sUHJlZml4ID8/IGRlZmF1bHRWYWx1ZXMucHJvdG9jb2xQcmVmaXh9LyR7TVVMVElDT0RFQ19JREVOVElGWV9QUk9UT0NPTF9OQU1FfS8ke01VTFRJQ09ERUNfSURFTlRJRllfUFJPVE9DT0xfVkVSU0lPTn1gO1xuICAgICAgICB0aGlzLmlkZW50aWZ5UHVzaFByb3RvY29sU3RyID0gYC8ke2luaXQucHJvdG9jb2xQcmVmaXggPz8gZGVmYXVsdFZhbHVlcy5wcm90b2NvbFByZWZpeH0vJHtNVUxUSUNPREVDX0lERU5USUZZX1BVU0hfUFJPVE9DT0xfTkFNRX0vJHtNVUxUSUNPREVDX0lERU5USUZZX1BVU0hfUFJPVE9DT0xfVkVSU0lPTn1gO1xuICAgICAgICB0aGlzLnRpbWVvdXQgPSBpbml0LnRpbWVvdXQgPz8gZGVmYXVsdFZhbHVlcy50aW1lb3V0O1xuICAgICAgICB0aGlzLm1heEluYm91bmRTdHJlYW1zID0gaW5pdC5tYXhJbmJvdW5kU3RyZWFtcyA/PyBkZWZhdWx0VmFsdWVzLm1heEluYm91bmRTdHJlYW1zO1xuICAgICAgICB0aGlzLm1heE91dGJvdW5kU3RyZWFtcyA9IGluaXQubWF4T3V0Ym91bmRTdHJlYW1zID8/IGRlZmF1bHRWYWx1ZXMubWF4T3V0Ym91bmRTdHJlYW1zO1xuICAgICAgICB0aGlzLm1heFB1c2hJbmNvbWluZ1N0cmVhbXMgPSBpbml0Lm1heFB1c2hJbmNvbWluZ1N0cmVhbXMgPz8gZGVmYXVsdFZhbHVlcy5tYXhQdXNoSW5jb21pbmdTdHJlYW1zO1xuICAgICAgICB0aGlzLm1heFB1c2hPdXRnb2luZ1N0cmVhbXMgPSBpbml0Lm1heFB1c2hPdXRnb2luZ1N0cmVhbXMgPz8gZGVmYXVsdFZhbHVlcy5tYXhQdXNoT3V0Z29pbmdTdHJlYW1zO1xuICAgICAgICB0aGlzLm1heElkZW50aWZ5TWVzc2FnZVNpemUgPSBpbml0Lm1heElkZW50aWZ5TWVzc2FnZVNpemUgPz8gZGVmYXVsdFZhbHVlcy5tYXhJZGVudGlmeU1lc3NhZ2VTaXplO1xuICAgICAgICB0aGlzLm1heE9ic2VydmVkQWRkcmVzc2VzID0gaW5pdC5tYXhPYnNlcnZlZEFkZHJlc3NlcyA/PyBkZWZhdWx0VmFsdWVzLm1heE9ic2VydmVkQWRkcmVzc2VzO1xuICAgICAgICB0aGlzLnJ1bk9uVHJhbnNpZW50Q29ubmVjdGlvbiA9IGluaXQucnVuT25UcmFuc2llbnRDb25uZWN0aW9uID8/IGRlZmF1bHRWYWx1ZXMucnVuT25UcmFuc2llbnRDb25uZWN0aW9uO1xuICAgICAgICAvLyBTdG9yZSBzZWxmIGhvc3QgbWV0YWRhdGFcbiAgICAgICAgdGhpcy5ob3N0ID0ge1xuICAgICAgICAgICAgcHJvdG9jb2xWZXJzaW9uOiBgJHtpbml0LnByb3RvY29sUHJlZml4ID8/IGRlZmF1bHRWYWx1ZXMucHJvdG9jb2xQcmVmaXh9LyR7SURFTlRJRllfUFJPVE9DT0xfVkVSU0lPTn1gLFxuICAgICAgICAgICAgYWdlbnRWZXJzaW9uOiBpbml0LmFnZW50VmVyc2lvbiA/PyBgJHtjb21wb25lbnRzLm5vZGVJbmZvLm5hbWV9LyR7Y29tcG9uZW50cy5ub2RlSW5mby52ZXJzaW9ufWBcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGluaXQucnVuT25Db25uZWN0aW9uT3BlbiA/PyBkZWZhdWx0VmFsdWVzLnJ1bk9uQ29ubmVjdGlvbk9wZW4pIHtcbiAgICAgICAgICAgIC8vIFdoZW4gYSBuZXcgY29ubmVjdGlvbiBoYXBwZW5zLCB0cmlnZ2VyIGlkZW50aWZ5XG4gICAgICAgICAgICBjb21wb25lbnRzLmV2ZW50cy5hZGRFdmVudExpc3RlbmVyKCdjb25uZWN0aW9uOm9wZW4nLCAoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29ubmVjdGlvbiA9IGV2dC5kZXRhaWw7XG4gICAgICAgICAgICAgICAgdGhpcy5pZGVudGlmeShjb25uZWN0aW9uKS5jYXRjaChlcnIgPT4geyB0aGlzLmxvZy5lcnJvcignZXJyb3IgZHVyaW5nIGlkZW50aWZ5IHRyaWdnZWQgYnkgY29ubmVjdGlvbjpvcGVuJywgZXJyKTsgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBXaGVuIHNlbGYgcGVlciByZWNvcmQgY2hhbmdlcywgdHJpZ2dlciBpZGVudGlmeS1wdXNoXG4gICAgICAgIGNvbXBvbmVudHMuZXZlbnRzLmFkZEV2ZW50TGlzdGVuZXIoJ3NlbGY6cGVlcjp1cGRhdGUnLCAoZXZ0KSA9PiB7XG4gICAgICAgICAgICB2b2lkIHRoaXMucHVzaCgpLmNhdGNoKGVyciA9PiB7IHRoaXMubG9nLmVycm9yKGVycik7IH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gQXBwZW5kIHVzZXIgYWdlbnQgdmVyc2lvbiB0byBkZWZhdWx0IEFHRU5UX1ZFUlNJT04gZGVwZW5kaW5nIG9uIHRoZSBlbnZpcm9ubWVudFxuICAgICAgICBpZiAodGhpcy5ob3N0LmFnZW50VmVyc2lvbiA9PT0gYCR7Y29tcG9uZW50cy5ub2RlSW5mby5uYW1lfS8ke2NvbXBvbmVudHMubm9kZUluZm8udmVyc2lvbn1gKSB7XG4gICAgICAgICAgICBpZiAoaXNOb2RlIHx8IGlzRWxlY3Ryb25NYWluKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0LmFnZW50VmVyc2lvbiArPSBgIFVzZXJBZ2VudD0ke2dsb2JhbFRoaXMucHJvY2Vzcy52ZXJzaW9ufWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChpc0Jyb3dzZXIgfHwgaXNXZWJXb3JrZXIgfHwgaXNFbGVjdHJvblJlbmRlcmVyIHx8IGlzUmVhY3ROYXRpdmUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhvc3QuYWdlbnRWZXJzaW9uICs9IGAgVXNlckFnZW50PSR7Z2xvYmFsVGhpcy5uYXZpZ2F0b3IudXNlckFnZW50fWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgaXNTdGFydGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGFydGVkO1xuICAgIH1cbiAgICBhc3luYyBzdGFydCgpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhcnRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMucGVlclN0b3JlLm1lcmdlKHRoaXMucGVlcklkLCB7XG4gICAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgICAgIEFnZW50VmVyc2lvbjogdWludDhBcnJheUZyb21TdHJpbmcodGhpcy5ob3N0LmFnZW50VmVyc2lvbiksXG4gICAgICAgICAgICAgICAgUHJvdG9jb2xWZXJzaW9uOiB1aW50OEFycmF5RnJvbVN0cmluZyh0aGlzLmhvc3QucHJvdG9jb2xWZXJzaW9uKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgdGhpcy5yZWdpc3RyYXIuaGFuZGxlKHRoaXMuaWRlbnRpZnlQcm90b2NvbFN0ciwgKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHZvaWQgdGhpcy5faGFuZGxlSWRlbnRpZnkoZGF0YSkuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZy5lcnJvcihlcnIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIG1heEluYm91bmRTdHJlYW1zOiB0aGlzLm1heEluYm91bmRTdHJlYW1zLFxuICAgICAgICAgICAgbWF4T3V0Ym91bmRTdHJlYW1zOiB0aGlzLm1heE91dGJvdW5kU3RyZWFtcyxcbiAgICAgICAgICAgIHJ1bk9uVHJhbnNpZW50Q29ubmVjdGlvbjogdGhpcy5ydW5PblRyYW5zaWVudENvbm5lY3Rpb25cbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IHRoaXMucmVnaXN0cmFyLmhhbmRsZSh0aGlzLmlkZW50aWZ5UHVzaFByb3RvY29sU3RyLCAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgdm9pZCB0aGlzLl9oYW5kbGVQdXNoKGRhdGEpLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2cuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICBtYXhJbmJvdW5kU3RyZWFtczogdGhpcy5tYXhQdXNoSW5jb21pbmdTdHJlYW1zLFxuICAgICAgICAgICAgbWF4T3V0Ym91bmRTdHJlYW1zOiB0aGlzLm1heFB1c2hPdXRnb2luZ1N0cmVhbXMsXG4gICAgICAgICAgICBydW5PblRyYW5zaWVudENvbm5lY3Rpb246IHRoaXMucnVuT25UcmFuc2llbnRDb25uZWN0aW9uXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN0YXJ0ZWQgPSB0cnVlO1xuICAgIH1cbiAgICBhc3luYyBzdG9wKCkge1xuICAgICAgICBhd2FpdCB0aGlzLnJlZ2lzdHJhci51bmhhbmRsZSh0aGlzLmlkZW50aWZ5UHJvdG9jb2xTdHIpO1xuICAgICAgICBhd2FpdCB0aGlzLnJlZ2lzdHJhci51bmhhbmRsZSh0aGlzLmlkZW50aWZ5UHVzaFByb3RvY29sU3RyKTtcbiAgICAgICAgdGhpcy5zdGFydGVkID0gZmFsc2U7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNlbmQgYW4gSWRlbnRpZnkgUHVzaCB1cGRhdGUgdG8gdGhlIGxpc3Qgb2YgY29ubmVjdGlvbnNcbiAgICAgKi9cbiAgICBhc3luYyBwdXNoVG9Db25uZWN0aW9ucyhjb25uZWN0aW9ucykge1xuICAgICAgICBjb25zdCBsaXN0ZW5BZGRyZXNzZXMgPSB0aGlzLmFkZHJlc3NNYW5hZ2VyLmdldEFkZHJlc3NlcygpLm1hcChtYSA9PiBtYS5kZWNhcHN1bGF0ZUNvZGUocHJvdG9jb2xzKCdwMnAnKS5jb2RlKSk7XG4gICAgICAgIGNvbnN0IHBlZXJSZWNvcmQgPSBuZXcgUGVlclJlY29yZCh7XG4gICAgICAgICAgICBwZWVySWQ6IHRoaXMucGVlcklkLFxuICAgICAgICAgICAgbXVsdGlhZGRyczogbGlzdGVuQWRkcmVzc2VzXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzaWduZWRQZWVyUmVjb3JkID0gYXdhaXQgUmVjb3JkRW52ZWxvcGUuc2VhbChwZWVyUmVjb3JkLCB0aGlzLnBlZXJJZCk7XG4gICAgICAgIGNvbnN0IHN1cHBvcnRlZFByb3RvY29scyA9IHRoaXMucmVnaXN0cmFyLmdldFByb3RvY29scygpO1xuICAgICAgICBjb25zdCBwZWVyID0gYXdhaXQgdGhpcy5wZWVyU3RvcmUuZ2V0KHRoaXMucGVlcklkKTtcbiAgICAgICAgY29uc3QgYWdlbnRWZXJzaW9uID0gdWludDhBcnJheVRvU3RyaW5nKHBlZXIubWV0YWRhdGEuZ2V0KCdBZ2VudFZlcnNpb24nKSA/PyB1aW50OEFycmF5RnJvbVN0cmluZyh0aGlzLmhvc3QuYWdlbnRWZXJzaW9uKSk7XG4gICAgICAgIGNvbnN0IHByb3RvY29sVmVyc2lvbiA9IHVpbnQ4QXJyYXlUb1N0cmluZyhwZWVyLm1ldGFkYXRhLmdldCgnUHJvdG9jb2xWZXJzaW9uJykgPz8gdWludDhBcnJheUZyb21TdHJpbmcodGhpcy5ob3N0LnByb3RvY29sVmVyc2lvbikpO1xuICAgICAgICBjb25zdCBwdXNoZXMgPSBjb25uZWN0aW9ucy5tYXAoYXN5bmMgKGNvbm5lY3Rpb24pID0+IHtcbiAgICAgICAgICAgIGxldCBzdHJlYW07XG4gICAgICAgICAgICBjb25zdCBzaWduYWwgPSBBYm9ydFNpZ25hbC50aW1lb3V0KHRoaXMudGltZW91dCk7XG4gICAgICAgICAgICBzZXRNYXhMaXN0ZW5lcnMoSW5maW5pdHksIHNpZ25hbCk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHN0cmVhbSA9IGF3YWl0IGNvbm5lY3Rpb24ubmV3U3RyZWFtKHRoaXMuaWRlbnRpZnlQdXNoUHJvdG9jb2xTdHIsIHtcbiAgICAgICAgICAgICAgICAgICAgc2lnbmFsLFxuICAgICAgICAgICAgICAgICAgICBydW5PblRyYW5zaWVudENvbm5lY3Rpb246IHRoaXMucnVuT25UcmFuc2llbnRDb25uZWN0aW9uXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGIgPSBwYlN0cmVhbShzdHJlYW0sIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4RGF0YUxlbmd0aDogdGhpcy5tYXhJZGVudGlmeU1lc3NhZ2VTaXplID8/IE1BWF9JREVOVElGWV9NRVNTQUdFX1NJWkVcbiAgICAgICAgICAgICAgICB9KS5wYihJZGVudGlmeU1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHBiLndyaXRlKHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdGVuQWRkcnM6IGxpc3RlbkFkZHJlc3Nlcy5tYXAobWEgPT4gbWEuYnl0ZXMpLFxuICAgICAgICAgICAgICAgICAgICBzaWduZWRQZWVyUmVjb3JkOiBzaWduZWRQZWVyUmVjb3JkLm1hcnNoYWwoKSxcbiAgICAgICAgICAgICAgICAgICAgcHJvdG9jb2xzOiBzdXBwb3J0ZWRQcm90b2NvbHMsXG4gICAgICAgICAgICAgICAgICAgIGFnZW50VmVyc2lvbixcbiAgICAgICAgICAgICAgICAgICAgcHJvdG9jb2xWZXJzaW9uXG4gICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICBzaWduYWxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBhd2FpdCBzdHJlYW0uY2xvc2Uoe1xuICAgICAgICAgICAgICAgICAgICBzaWduYWxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAvLyBKdXN0IGxvZyBlcnJvcnNcbiAgICAgICAgICAgICAgICB0aGlzLmxvZy5lcnJvcignY291bGQgbm90IHB1c2ggaWRlbnRpZnkgdXBkYXRlIHRvIHBlZXInLCBlcnIpO1xuICAgICAgICAgICAgICAgIHN0cmVhbT8uYWJvcnQoZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHB1c2hlcyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxzIGBwdXNoYCBvbiBhbGwgcGVlciBjb25uZWN0aW9uc1xuICAgICAqL1xuICAgIGFzeW5jIHB1c2goKSB7XG4gICAgICAgIC8vIERvIG5vdCB0cnkgdG8gcHVzaCBpZiB3ZSBhcmUgbm90IHJ1bm5pbmdcbiAgICAgICAgaWYgKCF0aGlzLmlzU3RhcnRlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29ubmVjdGlvbnMgPSBbXTtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5jb25uZWN0aW9uTWFuYWdlci5nZXRDb25uZWN0aW9ucygpLm1hcChhc3luYyAoY29ubikgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwZWVyID0gYXdhaXQgdGhpcy5wZWVyU3RvcmUuZ2V0KGNvbm4ucmVtb3RlUGVlcik7XG4gICAgICAgICAgICAgICAgaWYgKCFwZWVyLnByb3RvY29scy5pbmNsdWRlcyh0aGlzLmlkZW50aWZ5UHVzaFByb3RvY29sU3RyKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25zLnB1c2goY29ubik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9PSBFUlJfTk9UX0ZPVU5EKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pKTtcbiAgICAgICAgYXdhaXQgdGhpcy5wdXNoVG9Db25uZWN0aW9ucyhjb25uZWN0aW9ucyk7XG4gICAgfVxuICAgIGFzeW5jIF9pZGVudGlmeShjb25uZWN0aW9uLCBvcHRpb25zID0ge30pIHtcbiAgICAgICAgbGV0IHN0cmVhbTtcbiAgICAgICAgaWYgKG9wdGlvbnMuc2lnbmFsID09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IHNpZ25hbCA9IEFib3J0U2lnbmFsLnRpbWVvdXQodGhpcy50aW1lb3V0KTtcbiAgICAgICAgICAgIHNldE1heExpc3RlbmVycyhJbmZpbml0eSwgc2lnbmFsKTtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgICAgICBzaWduYWxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHN0cmVhbSA9IGF3YWl0IGNvbm5lY3Rpb24ubmV3U3RyZWFtKHRoaXMuaWRlbnRpZnlQcm90b2NvbFN0ciwge1xuICAgICAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgcnVuT25UcmFuc2llbnRDb25uZWN0aW9uOiB0aGlzLnJ1bk9uVHJhbnNpZW50Q29ubmVjdGlvblxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBwYiA9IHBiU3RyZWFtKHN0cmVhbSwge1xuICAgICAgICAgICAgICAgIG1heERhdGFMZW5ndGg6IHRoaXMubWF4SWRlbnRpZnlNZXNzYWdlU2l6ZSA/PyBNQVhfSURFTlRJRllfTUVTU0FHRV9TSVpFXG4gICAgICAgICAgICB9KS5wYihJZGVudGlmeU1lc3NhZ2UpO1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IHBiLnJlYWQob3B0aW9ucyk7XG4gICAgICAgICAgICBhd2FpdCBzdHJlYW0uY2xvc2Uob3B0aW9ucyk7XG4gICAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICB0aGlzLmxvZy5lcnJvcignZXJyb3Igd2hpbGUgcmVhZGluZyBpZGVudGlmeSBtZXNzYWdlJywgZXJyKTtcbiAgICAgICAgICAgIHN0cmVhbT8uYWJvcnQoZXJyKTtcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBpZGVudGlmeShjb25uZWN0aW9uLCBvcHRpb25zID0ge30pIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IHRoaXMuX2lkZW50aWZ5KGNvbm5lY3Rpb24sIG9wdGlvbnMpO1xuICAgICAgICBjb25zdCB7IHB1YmxpY0tleSwgcHJvdG9jb2xzLCBvYnNlcnZlZEFkZHIgfSA9IG1lc3NhZ2U7XG4gICAgICAgIGlmIChwdWJsaWNLZXkgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcigncHVibGljIGtleSB3YXMgbWlzc2luZyBmcm9tIGlkZW50aWZ5IG1lc3NhZ2UnLCAnRVJSX01JU1NJTkdfUFVCTElDX0tFWScpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlkID0gYXdhaXQgcGVlcklkRnJvbUtleXMocHVibGljS2V5KTtcbiAgICAgICAgaWYgKCFjb25uZWN0aW9uLnJlbW90ZVBlZXIuZXF1YWxzKGlkKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcignaWRlbnRpZmllZCBwZWVyIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwZWVyJywgJ0VSUl9JTlZBTElEX1BFRVInKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wZWVySWQuZXF1YWxzKGlkKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcignaWRlbnRpZmllZCBwZWVyIGlzIG91ciBvd24gcGVlciBpZD8nLCAnRVJSX0lOVkFMSURfUEVFUicpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEdldCB0aGUgb2JzZXJ2ZWRBZGRyIGlmIHRoZXJlIGlzIG9uZVxuICAgICAgICBjb25zdCBjbGVhbk9ic2VydmVkQWRkciA9IGdldENsZWFuTXVsdGlhZGRyKG9ic2VydmVkQWRkcik7XG4gICAgICAgIHRoaXMubG9nKCdpZGVudGlmeSBjb21wbGV0ZWQgZm9yIHBlZXIgJXAgYW5kIHByb3RvY29scyAlbycsIGlkLCBwcm90b2NvbHMpO1xuICAgICAgICB0aGlzLmxvZygnb3VyIG9ic2VydmVkIGFkZHJlc3MgaXMgJWEnLCBjbGVhbk9ic2VydmVkQWRkcik7XG4gICAgICAgIGlmIChjbGVhbk9ic2VydmVkQWRkciAhPSBudWxsICYmXG4gICAgICAgICAgICB0aGlzLmFkZHJlc3NNYW5hZ2VyLmdldE9ic2VydmVkQWRkcnMoKS5sZW5ndGggPCAodGhpcy5tYXhPYnNlcnZlZEFkZHJlc3NlcyA/PyBJbmZpbml0eSkpIHtcbiAgICAgICAgICAgIHRoaXMubG9nKCdzdG9yaW5nIG91ciBvYnNlcnZlZCBhZGRyZXNzICVhJywgY2xlYW5PYnNlcnZlZEFkZHIpO1xuICAgICAgICAgICAgdGhpcy5hZGRyZXNzTWFuYWdlci5hZGRPYnNlcnZlZEFkZHIoY2xlYW5PYnNlcnZlZEFkZHIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLiNjb25zdW1lSWRlbnRpZnlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2UpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZW5kcyB0aGUgYElkZW50aWZ5YCByZXNwb25zZSB3aXRoIHRoZSBTaWduZWQgUGVlciBSZWNvcmRcbiAgICAgKiB0byB0aGUgcmVxdWVzdGluZyBwZWVyIG92ZXIgdGhlIGdpdmVuIGBjb25uZWN0aW9uYFxuICAgICAqL1xuICAgIGFzeW5jIF9oYW5kbGVJZGVudGlmeShkYXRhKSB7XG4gICAgICAgIGNvbnN0IHsgY29ubmVjdGlvbiwgc3RyZWFtIH0gPSBkYXRhO1xuICAgICAgICBjb25zdCBzaWduYWwgPSBBYm9ydFNpZ25hbC50aW1lb3V0KHRoaXMudGltZW91dCk7XG4gICAgICAgIHNldE1heExpc3RlbmVycyhJbmZpbml0eSwgc2lnbmFsKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHB1YmxpY0tleSA9IHRoaXMucGVlcklkLnB1YmxpY0tleSA/PyBuZXcgVWludDhBcnJheSgwKTtcbiAgICAgICAgICAgIGNvbnN0IHBlZXJEYXRhID0gYXdhaXQgdGhpcy5wZWVyU3RvcmUuZ2V0KHRoaXMucGVlcklkKTtcbiAgICAgICAgICAgIGNvbnN0IG11bHRpYWRkcnMgPSB0aGlzLmFkZHJlc3NNYW5hZ2VyLmdldEFkZHJlc3NlcygpLm1hcChtYSA9PiBtYS5kZWNhcHN1bGF0ZUNvZGUocHJvdG9jb2xzKCdwMnAnKS5jb2RlKSk7XG4gICAgICAgICAgICBsZXQgc2lnbmVkUGVlclJlY29yZCA9IHBlZXJEYXRhLnBlZXJSZWNvcmRFbnZlbG9wZTtcbiAgICAgICAgICAgIGlmIChtdWx0aWFkZHJzLmxlbmd0aCA+IDAgJiYgc2lnbmVkUGVlclJlY29yZCA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGVlclJlY29yZCA9IG5ldyBQZWVyUmVjb3JkKHtcbiAgICAgICAgICAgICAgICAgICAgcGVlcklkOiB0aGlzLnBlZXJJZCxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGlhZGRyc1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVudmVsb3BlID0gYXdhaXQgUmVjb3JkRW52ZWxvcGUuc2VhbChwZWVyUmVjb3JkLCB0aGlzLnBlZXJJZCk7XG4gICAgICAgICAgICAgICAgc2lnbmVkUGVlclJlY29yZCA9IGVudmVsb3BlLm1hcnNoYWwoKS5zdWJhcnJheSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IG9ic2VydmVkQWRkciA9IGNvbm5lY3Rpb24ucmVtb3RlQWRkci5ieXRlcztcbiAgICAgICAgICAgIGlmICghSVBfT1JfRE9NQUlOLm1hdGNoZXMoY29ubmVjdGlvbi5yZW1vdGVBZGRyKSkge1xuICAgICAgICAgICAgICAgIG9ic2VydmVkQWRkciA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBiID0gcGJTdHJlYW0oc3RyZWFtKS5wYihJZGVudGlmeU1lc3NhZ2UpO1xuICAgICAgICAgICAgYXdhaXQgcGIud3JpdGUoe1xuICAgICAgICAgICAgICAgIHByb3RvY29sVmVyc2lvbjogdGhpcy5ob3N0LnByb3RvY29sVmVyc2lvbixcbiAgICAgICAgICAgICAgICBhZ2VudFZlcnNpb246IHRoaXMuaG9zdC5hZ2VudFZlcnNpb24sXG4gICAgICAgICAgICAgICAgcHVibGljS2V5LFxuICAgICAgICAgICAgICAgIGxpc3RlbkFkZHJzOiBtdWx0aWFkZHJzLm1hcChhZGRyID0+IGFkZHIuYnl0ZXMpLFxuICAgICAgICAgICAgICAgIHNpZ25lZFBlZXJSZWNvcmQsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZWRBZGRyLFxuICAgICAgICAgICAgICAgIHByb3RvY29sczogcGVlckRhdGEucHJvdG9jb2xzXG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgc2lnbmFsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGF3YWl0IHN0cmVhbS5jbG9zZSh7XG4gICAgICAgICAgICAgICAgc2lnbmFsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICB0aGlzLmxvZy5lcnJvcignY291bGQgbm90IHJlc3BvbmQgdG8gaWRlbnRpZnkgcmVxdWVzdCcsIGVycik7XG4gICAgICAgICAgICBzdHJlYW0uYWJvcnQoZXJyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZWFkcyB0aGUgSWRlbnRpZnkgUHVzaCBtZXNzYWdlIGZyb20gdGhlIGdpdmVuIGBjb25uZWN0aW9uYFxuICAgICAqL1xuICAgIGFzeW5jIF9oYW5kbGVQdXNoKGRhdGEpIHtcbiAgICAgICAgY29uc3QgeyBjb25uZWN0aW9uLCBzdHJlYW0gfSA9IGRhdGE7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wZWVySWQuZXF1YWxzKGNvbm5lY3Rpb24ucmVtb3RlUGVlcikpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlY2VpdmVkIHB1c2ggZnJvbSBvdXJzZWx2ZXM/Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIHNpZ25hbDogQWJvcnRTaWduYWwudGltZW91dCh0aGlzLnRpbWVvdXQpXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgcGIgPSBwYlN0cmVhbShzdHJlYW0sIHtcbiAgICAgICAgICAgICAgICBtYXhEYXRhTGVuZ3RoOiB0aGlzLm1heElkZW50aWZ5TWVzc2FnZVNpemUgPz8gTUFYX0lERU5USUZZX01FU1NBR0VfU0laRVxuICAgICAgICAgICAgfSkucGIoSWRlbnRpZnlNZXNzYWdlKTtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBwYi5yZWFkKG9wdGlvbnMpO1xuICAgICAgICAgICAgYXdhaXQgc3RyZWFtLmNsb3NlKG9wdGlvbnMpO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy4jY29uc3VtZUlkZW50aWZ5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICB0aGlzLmxvZy5lcnJvcigncmVjZWl2ZWQgaW52YWxpZCBtZXNzYWdlJywgZXJyKTtcbiAgICAgICAgICAgIHN0cmVhbS5hYm9ydChlcnIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9nKCdoYW5kbGVkIHB1c2ggZnJvbSAlcCcsIGNvbm5lY3Rpb24ucmVtb3RlUGVlcik7XG4gICAgfVxuICAgIGFzeW5jICNjb25zdW1lSWRlbnRpZnlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2UpIHtcbiAgICAgICAgdGhpcy5sb2coJ3JlY2VpdmVkIGlkZW50aWZ5IGZyb20gJXAnLCBjb25uZWN0aW9uLnJlbW90ZVBlZXIpO1xuICAgICAgICBpZiAobWVzc2FnZSA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29kZUVycm9yKCdtZXNzYWdlIHdhcyBudWxsIG9yIHVuZGVmaW5lZCcsICdFUlJfSU5WQUxJRF9NRVNTQUdFJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGVlciA9IHt9O1xuICAgICAgICBpZiAobWVzc2FnZS5saXN0ZW5BZGRycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBwZWVyLmFkZHJlc3NlcyA9IG1lc3NhZ2UubGlzdGVuQWRkcnMubWFwKGJ1ZiA9PiAoe1xuICAgICAgICAgICAgICAgIGlzQ2VydGlmaWVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBtdWx0aWFkZHI6IG11bHRpYWRkcihidWYpXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1lc3NhZ2UucHJvdG9jb2xzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHBlZXIucHJvdG9jb2xzID0gbWVzc2FnZS5wcm90b2NvbHM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1lc3NhZ2UucHVibGljS2V5ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHBlZXIucHVibGljS2V5ID0gbWVzc2FnZS5wdWJsaWNLZXk7XG4gICAgICAgICAgICBjb25zdCBwZWVySWQgPSBhd2FpdCBwZWVySWRGcm9tS2V5cyhtZXNzYWdlLnB1YmxpY0tleSk7XG4gICAgICAgICAgICBpZiAoIXBlZXJJZC5lcXVhbHMoY29ubmVjdGlvbi5yZW1vdGVQZWVyKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoJ3B1YmxpYyBrZXkgZGlkIG5vdCBtYXRjaCByZW1vdGUgUGVlcklkJywgJ0VSUl9JTlZBTElEX1BVQkxJQ19LRVknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsZXQgb3V0cHV0O1xuICAgICAgICAvLyBpZiB0aGUgcGVlciByZWNvcmQgaGFzIGJlZW4gc2VudCwgcHJlZmVyIHRoZSBhZGRyZXNzZXMgaW4gdGhlIHJlY29yZCBhcyB0aGV5IGFyZSBzaWduZWQgYnkgdGhlIHJlbW90ZSBwZWVyXG4gICAgICAgIGlmIChtZXNzYWdlLnNpZ25lZFBlZXJSZWNvcmQgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5sb2coJ3JlY2VpdmVkIHNpZ25lZFBlZXJSZWNvcmQgZnJvbSAlcCcsIGNvbm5lY3Rpb24ucmVtb3RlUGVlcik7XG4gICAgICAgICAgICBsZXQgcGVlclJlY29yZEVudmVsb3BlID0gbWVzc2FnZS5zaWduZWRQZWVyUmVjb3JkO1xuICAgICAgICAgICAgY29uc3QgZW52ZWxvcGUgPSBhd2FpdCBSZWNvcmRFbnZlbG9wZS5vcGVuQW5kQ2VydGlmeShwZWVyUmVjb3JkRW52ZWxvcGUsIFBlZXJSZWNvcmQuRE9NQUlOKTtcbiAgICAgICAgICAgIGxldCBwZWVyUmVjb3JkID0gUGVlclJlY29yZC5jcmVhdGVGcm9tUHJvdG9idWYoZW52ZWxvcGUucGF5bG9hZCk7XG4gICAgICAgICAgICAvLyBWZXJpZnkgcGVlcklkXG4gICAgICAgICAgICBpZiAoIXBlZXJSZWNvcmQucGVlcklkLmVxdWFscyhlbnZlbG9wZS5wZWVySWQpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcignc2lnbmluZyBrZXkgZG9lcyBub3QgbWF0Y2ggUGVlcklkIGluIHRoZSBQZWVyUmVjb3JkJywgJ0VSUl9JTlZBTElEX1NJR05JTkdfS0VZJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBNYWtlIHN1cmUgcmVtb3RlIHBlZXIgaXMgdGhlIG9uZSBzZW5kaW5nIHRoZSByZWNvcmRcbiAgICAgICAgICAgIGlmICghY29ubmVjdGlvbi5yZW1vdGVQZWVyLmVxdWFscyhwZWVyUmVjb3JkLnBlZXJJZCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ29kZUVycm9yKCdzaWduaW5nIGtleSBkb2VzIG5vdCBtYXRjaCByZW1vdGUgUGVlcklkJywgJ0VSUl9JTlZBTElEX1BFRVJfUkVDT1JEX0tFWScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGV4aXN0aW5nUGVlcjtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgZXhpc3RpbmdQZWVyID0gYXdhaXQgdGhpcy5wZWVyU3RvcmUuZ2V0KHBlZXJSZWNvcmQucGVlcklkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT09ICdFUlJfTk9UX0ZPVU5EJykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGV4aXN0aW5nUGVlciAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLy8gZG9uJ3QgbG9zZSBhbnkgZXhpc3RpbmcgbWV0YWRhdGFcbiAgICAgICAgICAgICAgICBwZWVyLm1ldGFkYXRhID0gZXhpc3RpbmdQZWVyLm1ldGFkYXRhO1xuICAgICAgICAgICAgICAgIC8vIGlmIHdlIGhhdmUgcHJldmlvdXNseSByZWNlaXZlZCBhIHNpZ25lZCByZWNvcmQgZm9yIHRoaXMgcGVlciwgY29tcGFyZSBpdCB0byB0aGUgaW5jb21pbmcgb25lXG4gICAgICAgICAgICAgICAgaWYgKGV4aXN0aW5nUGVlci5wZWVyUmVjb3JkRW52ZWxvcGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdG9yZWRFbnZlbG9wZSA9IGF3YWl0IFJlY29yZEVudmVsb3BlLmNyZWF0ZUZyb21Qcm90b2J1ZihleGlzdGluZ1BlZXIucGVlclJlY29yZEVudmVsb3BlKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RvcmVkUmVjb3JkID0gUGVlclJlY29yZC5jcmVhdGVGcm9tUHJvdG9idWYoc3RvcmVkRW52ZWxvcGUucGF5bG9hZCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVuc3VyZSBzZXEgaXMgZ3JlYXRlciB0aGFuLCBvciBlcXVhbCB0bywgdGhlIGxhc3QgcmVjZWl2ZWRcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0b3JlZFJlY29yZC5zZXFOdW1iZXIgPj0gcGVlclJlY29yZC5zZXFOdW1iZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9nKCdzZXF1ZW5jZSBudW1iZXIgd2FzIGxvd2VyIG9yIGVxdWFsIHRvIGV4aXN0aW5nIHNlcXVlbmNlIG51bWJlciAtIHN0b3JlZDogJWQgcmVjZWl2ZWQ6ICVkJywgc3RvcmVkUmVjb3JkLnNlcU51bWJlciwgcGVlclJlY29yZC5zZXFOdW1iZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVlclJlY29yZCA9IHN0b3JlZFJlY29yZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlZXJSZWNvcmRFbnZlbG9wZSA9IGV4aXN0aW5nUGVlci5wZWVyUmVjb3JkRW52ZWxvcGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBzdG9yZSB0aGUgc2lnbmVkIHJlY29yZCBmb3IgbmV4dCB0aW1lXG4gICAgICAgICAgICBwZWVyLnBlZXJSZWNvcmRFbnZlbG9wZSA9IHBlZXJSZWNvcmRFbnZlbG9wZTtcbiAgICAgICAgICAgIC8vIG92ZXJyaWRlIHRoZSBzdG9yZWQgYWRkcmVzc2VzIHdpdGggdGhlIHNpZ25lZCBtdWx0aWFkZHJzXG4gICAgICAgICAgICBwZWVyLmFkZHJlc3NlcyA9IHBlZXJSZWNvcmQubXVsdGlhZGRycy5tYXAobXVsdGlhZGRyID0+ICh7XG4gICAgICAgICAgICAgICAgaXNDZXJ0aWZpZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgbXVsdGlhZGRyXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBvdXRwdXQgPSB7XG4gICAgICAgICAgICAgICAgc2VxOiBwZWVyUmVjb3JkLnNlcU51bWJlcixcbiAgICAgICAgICAgICAgICBhZGRyZXNzZXM6IHBlZXJSZWNvcmQubXVsdGlhZGRyc1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubG9nKCclcCBkaWQgbm90IHNlbmQgYSBzaWduZWQgcGVlciByZWNvcmQnLCBjb25uZWN0aW9uLnJlbW90ZVBlZXIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9nKCdwYXRjaGluZyAlcCB3aXRoJywgY29ubmVjdGlvbi5yZW1vdGVQZWVyLCBwZWVyKTtcbiAgICAgICAgYXdhaXQgdGhpcy5wZWVyU3RvcmUucGF0Y2goY29ubmVjdGlvbi5yZW1vdGVQZWVyLCBwZWVyKTtcbiAgICAgICAgaWYgKG1lc3NhZ2UuYWdlbnRWZXJzaW9uICE9IG51bGwgfHwgbWVzc2FnZS5wcm90b2NvbFZlcnNpb24gIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgbWV0YWRhdGEgPSB7fTtcbiAgICAgICAgICAgIGlmIChtZXNzYWdlLmFnZW50VmVyc2lvbiAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgbWV0YWRhdGEuQWdlbnRWZXJzaW9uID0gdWludDhBcnJheUZyb21TdHJpbmcobWVzc2FnZS5hZ2VudFZlcnNpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lc3NhZ2UucHJvdG9jb2xWZXJzaW9uICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBtZXRhZGF0YS5Qcm90b2NvbFZlcnNpb24gPSB1aW50OEFycmF5RnJvbVN0cmluZyhtZXNzYWdlLnByb3RvY29sVmVyc2lvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmxvZygnbWVyZ2luZyAlcCBtZXRhZGF0YScsIGNvbm5lY3Rpb24ucmVtb3RlUGVlciwgbWV0YWRhdGEpO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5wZWVyU3RvcmUubWVyZ2UoY29ubmVjdGlvbi5yZW1vdGVQZWVyLCB7XG4gICAgICAgICAgICAgICAgbWV0YWRhdGFcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBlZXJJZDogY29ubmVjdGlvbi5yZW1vdGVQZWVyLFxuICAgICAgICAgICAgcHJvdG9jb2xWZXJzaW9uOiBtZXNzYWdlLnByb3RvY29sVmVyc2lvbixcbiAgICAgICAgICAgIGFnZW50VmVyc2lvbjogbWVzc2FnZS5hZ2VudFZlcnNpb24sXG4gICAgICAgICAgICBwdWJsaWNLZXk6IG1lc3NhZ2UucHVibGljS2V5LFxuICAgICAgICAgICAgbGlzdGVuQWRkcnM6IG1lc3NhZ2UubGlzdGVuQWRkcnMubWFwKGJ1ZiA9PiBtdWx0aWFkZHIoYnVmKSksXG4gICAgICAgICAgICBvYnNlcnZlZEFkZHI6IG1lc3NhZ2Uub2JzZXJ2ZWRBZGRyID09IG51bGwgPyB1bmRlZmluZWQgOiBtdWx0aWFkZHIobWVzc2FnZS5vYnNlcnZlZEFkZHIpLFxuICAgICAgICAgICAgcHJvdG9jb2xzOiBtZXNzYWdlLnByb3RvY29scyxcbiAgICAgICAgICAgIHNpZ25lZFBlZXJSZWNvcmQ6IG91dHB1dCxcbiAgICAgICAgICAgIGNvbm5lY3Rpb25cbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5ldmVudHMuc2FmZURpc3BhdGNoRXZlbnQoJ3BlZXI6aWRlbnRpZnknLCB7IGRldGFpbDogcmVzdWx0IH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbn1cbi8qKlxuICogVGFrZXMgdGhlIGBhZGRyYCBhbmQgY29udmVydHMgaXQgdG8gYSBNdWx0aWFkZHIgaWYgcG9zc2libGVcbiAqL1xuZnVuY3Rpb24gZ2V0Q2xlYW5NdWx0aWFkZHIoYWRkcikge1xuICAgIGlmIChhZGRyICE9IG51bGwgJiYgYWRkci5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gbXVsdGlhZGRyKGFkZHIpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIHtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlkZW50aWZ5LmpzLm1hcCJdLCJuYW1lcyI6WyJDb2RlRXJyb3IiLCJFUlJfTk9UX0ZPVU5EIiwic2V0TWF4TGlzdGVuZXJzIiwicGVlcklkRnJvbUtleXMiLCJSZWNvcmRFbnZlbG9wZSIsIlBlZXJSZWNvcmQiLCJtdWx0aWFkZHIiLCJwcm90b2NvbHMiLCJJUF9PUl9ET01BSU4iLCJwYlN0cmVhbSIsImZyb21TdHJpbmciLCJ1aW50OEFycmF5RnJvbVN0cmluZyIsInRvU3RyaW5nIiwidWludDhBcnJheVRvU3RyaW5nIiwiaXNOb2RlIiwiaXNCcm93c2VyIiwiaXNXZWJXb3JrZXIiLCJpc0VsZWN0cm9uTWFpbiIsImlzRWxlY3Ryb25SZW5kZXJlciIsImlzUmVhY3ROYXRpdmUiLCJJREVOVElGWV9QUk9UT0NPTF9WRVJTSU9OIiwiTVVMVElDT0RFQ19JREVOVElGWV9QUk9UT0NPTF9OQU1FIiwiTVVMVElDT0RFQ19JREVOVElGWV9QVVNIX1BST1RPQ09MX05BTUUiLCJNVUxUSUNPREVDX0lERU5USUZZX1BST1RPQ09MX1ZFUlNJT04iLCJNVUxUSUNPREVDX0lERU5USUZZX1BVU0hfUFJPVE9DT0xfVkVSU0lPTiIsIklkZW50aWZ5IiwiSWRlbnRpZnlNZXNzYWdlIiwiTUFYX0lERU5USUZZX01FU1NBR0VfU0laRSIsImRlZmF1bHRWYWx1ZXMiLCJwcm90b2NvbFByZWZpeCIsInRpbWVvdXQiLCJtYXhJbmJvdW5kU3RyZWFtcyIsIm1heE91dGJvdW5kU3RyZWFtcyIsIm1heFB1c2hJbmNvbWluZ1N0cmVhbXMiLCJtYXhQdXNoT3V0Z29pbmdTdHJlYW1zIiwibWF4T2JzZXJ2ZWRBZGRyZXNzZXMiLCJtYXhJZGVudGlmeU1lc3NhZ2VTaXplIiwicnVuT25Db25uZWN0aW9uT3BlbiIsInJ1bk9uVHJhbnNpZW50Q29ubmVjdGlvbiIsImNvbnN0cnVjdG9yIiwiY29tcG9uZW50cyIsImluaXQiLCJzdGFydGVkIiwicGVlcklkIiwicGVlclN0b3JlIiwicmVnaXN0cmFyIiwiYWRkcmVzc01hbmFnZXIiLCJjb25uZWN0aW9uTWFuYWdlciIsImV2ZW50cyIsImxvZyIsImxvZ2dlciIsImZvckNvbXBvbmVudCIsImlkZW50aWZ5UHJvdG9jb2xTdHIiLCJpZGVudGlmeVB1c2hQcm90b2NvbFN0ciIsImhvc3QiLCJwcm90b2NvbFZlcnNpb24iLCJhZ2VudFZlcnNpb24iLCJub2RlSW5mbyIsIm5hbWUiLCJ2ZXJzaW9uIiwiYWRkRXZlbnRMaXN0ZW5lciIsImV2dCIsImNvbm5lY3Rpb24iLCJkZXRhaWwiLCJpZGVudGlmeSIsImNhdGNoIiwiZXJyIiwiZXJyb3IiLCJwdXNoIiwiZ2xvYmFsVGhpcyIsInByb2Nlc3MiLCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiLCJpc1N0YXJ0ZWQiLCJzdGFydCIsIm1lcmdlIiwibWV0YWRhdGEiLCJBZ2VudFZlcnNpb24iLCJQcm90b2NvbFZlcnNpb24iLCJoYW5kbGUiLCJkYXRhIiwiX2hhbmRsZUlkZW50aWZ5IiwiX2hhbmRsZVB1c2giLCJzdG9wIiwidW5oYW5kbGUiLCJwdXNoVG9Db25uZWN0aW9ucyIsImNvbm5lY3Rpb25zIiwibGlzdGVuQWRkcmVzc2VzIiwiZ2V0QWRkcmVzc2VzIiwibWFwIiwibWEiLCJkZWNhcHN1bGF0ZUNvZGUiLCJjb2RlIiwicGVlclJlY29yZCIsIm11bHRpYWRkcnMiLCJzaWduZWRQZWVyUmVjb3JkIiwic2VhbCIsInN1cHBvcnRlZFByb3RvY29scyIsImdldFByb3RvY29scyIsInBlZXIiLCJnZXQiLCJwdXNoZXMiLCJzdHJlYW0iLCJzaWduYWwiLCJBYm9ydFNpZ25hbCIsIkluZmluaXR5IiwibmV3U3RyZWFtIiwicGIiLCJtYXhEYXRhTGVuZ3RoIiwid3JpdGUiLCJsaXN0ZW5BZGRycyIsImJ5dGVzIiwibWFyc2hhbCIsImNsb3NlIiwiYWJvcnQiLCJQcm9taXNlIiwiYWxsIiwiZ2V0Q29ubmVjdGlvbnMiLCJjb25uIiwicmVtb3RlUGVlciIsImluY2x1ZGVzIiwiX2lkZW50aWZ5Iiwib3B0aW9ucyIsIm1lc3NhZ2UiLCJyZWFkIiwicHVibGljS2V5Iiwib2JzZXJ2ZWRBZGRyIiwiaWQiLCJlcXVhbHMiLCJjbGVhbk9ic2VydmVkQWRkciIsImdldENsZWFuTXVsdGlhZGRyIiwiZ2V0T2JzZXJ2ZWRBZGRycyIsImxlbmd0aCIsImFkZE9ic2VydmVkQWRkciIsImNvbnN1bWVJZGVudGlmeU1lc3NhZ2UiLCJVaW50OEFycmF5IiwicGVlckRhdGEiLCJwZWVyUmVjb3JkRW52ZWxvcGUiLCJlbnZlbG9wZSIsInN1YmFycmF5IiwicmVtb3RlQWRkciIsIm1hdGNoZXMiLCJ1bmRlZmluZWQiLCJhZGRyIiwiRXJyb3IiLCJhZGRyZXNzZXMiLCJidWYiLCJpc0NlcnRpZmllZCIsIm91dHB1dCIsIm9wZW5BbmRDZXJ0aWZ5IiwiRE9NQUlOIiwiY3JlYXRlRnJvbVByb3RvYnVmIiwicGF5bG9hZCIsImV4aXN0aW5nUGVlciIsInN0b3JlZEVudmVsb3BlIiwic3RvcmVkUmVjb3JkIiwic2VxTnVtYmVyIiwic2VxIiwicGF0Y2giLCJyZXN1bHQiLCJzYWZlRGlzcGF0Y2hFdmVudCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/identify/dist/src/identify.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/identify/dist/src/index.js":
/*!*********************************************************!*\
!*** ./node_modules/@libp2p/identify/dist/src/index.js ***!
\*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ identify: () => (/* binding */ identify),\n/* harmony export */ multicodecs: () => (/* binding */ multicodecs)\n/* harmony export */ });\n/* harmony import */ var _consts_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./consts.js */ \"(ssr)/./node_modules/@libp2p/identify/dist/src/consts.js\");\n/* harmony import */ var _identify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./identify.js */ \"(ssr)/./node_modules/@libp2p/identify/dist/src/identify.js\");\n/**\n * @packageDocumentation\n *\n * Use the `identify` function to add support for the [Identify protocol](https://github.com/libp2p/specs/blob/master/identify/README.md) to libp2p.\n *\n * @example\n *\n * ```typescript\n * import { createLibp2p } from 'libp2p'\n * import { identify } from '@libp2p/identify'\n *\n * const node = await createLibp2p({\n * // ...other options\n * services: {\n * identify: identify()\n * }\n * })\n * ```\n */ \n\n/**\n * The protocols the Identify service supports\n */ const multicodecs = {\n IDENTIFY: _consts_js__WEBPACK_IMPORTED_MODULE_0__.MULTICODEC_IDENTIFY,\n IDENTIFY_PUSH: _consts_js__WEBPACK_IMPORTED_MODULE_0__.MULTICODEC_IDENTIFY_PUSH\n};\nfunction identify(init = {}) {\n return (components)=>new _identify_js__WEBPACK_IMPORTED_MODULE_1__.Identify(components, init);\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9pZGVudGlmeS9kaXN0L3NyYy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQWtCQyxHQUMyRTtBQUNsQjtBQUMxRDs7Q0FFQyxHQUNNLE1BQU1JLGNBQWM7SUFDdkJDLFVBQVVMLDJEQUFtQkE7SUFDN0JNLGVBQWVMLGdFQUF3QkE7QUFDM0MsRUFBRTtBQUNLLFNBQVNNLFNBQVNDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLE9BQU8sQ0FBQ0MsYUFBZSxJQUFJTixrREFBYUEsQ0FBQ00sWUFBWUQ7QUFDekQsRUFDQSxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL2lkZW50aWZ5L2Rpc3Qvc3JjL2luZGV4LmpzPzJhYjkiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBVc2UgdGhlIGBpZGVudGlmeWAgZnVuY3Rpb24gdG8gYWRkIHN1cHBvcnQgZm9yIHRoZSBbSWRlbnRpZnkgcHJvdG9jb2xdKGh0dHBzOi8vZ2l0aHViLmNvbS9saWJwMnAvc3BlY3MvYmxvYi9tYXN0ZXIvaWRlbnRpZnkvUkVBRE1FLm1kKSB0byBsaWJwMnAuXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBjcmVhdGVMaWJwMnAgfSBmcm9tICdsaWJwMnAnXG4gKiBpbXBvcnQgeyBpZGVudGlmeSB9IGZyb20gJ0BsaWJwMnAvaWRlbnRpZnknXG4gKlxuICogY29uc3Qgbm9kZSA9IGF3YWl0IGNyZWF0ZUxpYnAycCh7XG4gKiAgIC8vIC4uLm90aGVyIG9wdGlvbnNcbiAqICAgc2VydmljZXM6IHtcbiAqICAgICBpZGVudGlmeTogaWRlbnRpZnkoKVxuICogICB9XG4gKiB9KVxuICogYGBgXG4gKi9cbmltcG9ydCB7IE1VTFRJQ09ERUNfSURFTlRJRlksIE1VTFRJQ09ERUNfSURFTlRJRllfUFVTSCB9IGZyb20gJy4vY29uc3RzLmpzJztcbmltcG9ydCB7IElkZW50aWZ5IGFzIElkZW50aWZ5Q2xhc3MgfSBmcm9tICcuL2lkZW50aWZ5LmpzJztcbi8qKlxuICogVGhlIHByb3RvY29scyB0aGUgSWRlbnRpZnkgc2VydmljZSBzdXBwb3J0c1xuICovXG5leHBvcnQgY29uc3QgbXVsdGljb2RlY3MgPSB7XG4gICAgSURFTlRJRlk6IE1VTFRJQ09ERUNfSURFTlRJRlksXG4gICAgSURFTlRJRllfUFVTSDogTVVMVElDT0RFQ19JREVOVElGWV9QVVNIXG59O1xuZXhwb3J0IGZ1bmN0aW9uIGlkZW50aWZ5KGluaXQgPSB7fSkge1xuICAgIHJldHVybiAoY29tcG9uZW50cykgPT4gbmV3IElkZW50aWZ5Q2xhc3MoY29tcG9uZW50cywgaW5pdCk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOlsiTVVMVElDT0RFQ19JREVOVElGWSIsIk1VTFRJQ09ERUNfSURFTlRJRllfUFVTSCIsIklkZW50aWZ5IiwiSWRlbnRpZnlDbGFzcyIsIm11bHRpY29kZWNzIiwiSURFTlRJRlkiLCJJREVOVElGWV9QVVNIIiwiaWRlbnRpZnkiLCJpbml0IiwiY29tcG9uZW50cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/identify/dist/src/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/identify/dist/src/pb/message.js":
/*!**************************************************************!*\
!*** ./node_modules/@libp2p/identify/dist/src/pb/message.js ***!
\**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Identify: () => (/* binding */ Identify)\n/* harmony export */ });\n/* harmony import */ var protons_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! protons-runtime */ \"(ssr)/./node_modules/protons-runtime/dist/src/index.js\");\n/* eslint-disable import/export */ /* eslint-disable complexity */ /* eslint-disable @typescript-eslint/no-namespace */ /* eslint-disable @typescript-eslint/no-unnecessary-boolean-literal-compare */ /* eslint-disable @typescript-eslint/no-empty-interface */ \nvar Identify;\n(function(Identify) {\n let _codec;\n Identify.codec = ()=>{\n if (_codec == null) {\n _codec = (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.message)((obj, w, opts = {})=>{\n if (opts.lengthDelimited !== false) {\n w.fork();\n }\n if (obj.protocolVersion != null) {\n w.uint32(42);\n w.string(obj.protocolVersion);\n }\n if (obj.agentVersion != null) {\n w.uint32(50);\n w.string(obj.agentVersion);\n }\n if (obj.publicKey != null) {\n w.uint32(10);\n w.bytes(obj.publicKey);\n }\n if (obj.listenAddrs != null) {\n for (const value of obj.listenAddrs){\n w.uint32(18);\n w.bytes(value);\n }\n }\n if (obj.observedAddr != null) {\n w.uint32(34);\n w.bytes(obj.observedAddr);\n }\n if (obj.protocols != null) {\n for (const value of obj.protocols){\n w.uint32(26);\n w.string(value);\n }\n }\n if (obj.signedPeerRecord != null) {\n w.uint32(66);\n w.bytes(obj.signedPeerRecord);\n }\n if (opts.lengthDelimited !== false) {\n w.ldelim();\n }\n }, (reader, length)=>{\n const obj = {\n listenAddrs: [],\n protocols: []\n };\n const end = length == null ? reader.len : reader.pos + length;\n while(reader.pos < end){\n const tag = reader.uint32();\n switch(tag >>> 3){\n case 5:\n obj.protocolVersion = reader.string();\n break;\n case 6:\n obj.agentVersion = reader.string();\n break;\n case 1:\n obj.publicKey = reader.bytes();\n break;\n case 2:\n obj.listenAddrs.push(reader.bytes());\n break;\n case 4:\n obj.observedAddr = reader.bytes();\n break;\n case 3:\n obj.protocols.push(reader.string());\n break;\n case 8:\n obj.signedPeerRecord = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return obj;\n });\n }\n return _codec;\n };\n Identify.encode = (obj)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.encodeMessage)(obj, Identify.codec());\n };\n Identify.decode = (buf)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.decodeMessage)(buf, Identify.codec());\n };\n})(Identify || (Identify = {})); //# sourceMappingURL=message.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9pZGVudGlmeS9kaXN0L3NyYy9wYi9tZXNzYWdlLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0NBQWdDLEdBQ2hDLDZCQUE2QixHQUM3QixrREFBa0QsR0FDbEQsNEVBQTRFLEdBQzVFLHdEQUF3RCxHQUNnQjtBQUNqRSxJQUFJRyxTQUFTO0FBQ25CLFVBQVVBLFFBQVE7SUFDZixJQUFJQztJQUNKRCxTQUFTRSxLQUFLLEdBQUc7UUFDYixJQUFJRCxVQUFVLE1BQU07WUFDaEJBLFNBQVNGLHdEQUFPQSxDQUFDLENBQUNJLEtBQUtDLEdBQUdDLE9BQU8sQ0FBQyxDQUFDO2dCQUMvQixJQUFJQSxLQUFLQyxlQUFlLEtBQUssT0FBTztvQkFDaENGLEVBQUVHLElBQUk7Z0JBQ1Y7Z0JBQ0EsSUFBSUosSUFBSUssZUFBZSxJQUFJLE1BQU07b0JBQzdCSixFQUFFSyxNQUFNLENBQUM7b0JBQ1RMLEVBQUVNLE1BQU0sQ0FBQ1AsSUFBSUssZUFBZTtnQkFDaEM7Z0JBQ0EsSUFBSUwsSUFBSVEsWUFBWSxJQUFJLE1BQU07b0JBQzFCUCxFQUFFSyxNQUFNLENBQUM7b0JBQ1RMLEVBQUVNLE1BQU0sQ0FBQ1AsSUFBSVEsWUFBWTtnQkFDN0I7Z0JBQ0EsSUFBSVIsSUFBSVMsU0FBUyxJQUFJLE1BQU07b0JBQ3ZCUixFQUFFSyxNQUFNLENBQUM7b0JBQ1RMLEVBQUVTLEtBQUssQ0FBQ1YsSUFBSVMsU0FBUztnQkFDekI7Z0JBQ0EsSUFBSVQsSUFBSVcsV0FBVyxJQUFJLE1BQU07b0JBQ3pCLEtBQUssTUFBTUMsU0FBU1osSUFBSVcsV0FBVyxDQUFFO3dCQUNqQ1YsRUFBRUssTUFBTSxDQUFDO3dCQUNUTCxFQUFFUyxLQUFLLENBQUNFO29CQUNaO2dCQUNKO2dCQUNBLElBQUlaLElBQUlhLFlBQVksSUFBSSxNQUFNO29CQUMxQlosRUFBRUssTUFBTSxDQUFDO29CQUNUTCxFQUFFUyxLQUFLLENBQUNWLElBQUlhLFlBQVk7Z0JBQzVCO2dCQUNBLElBQUliLElBQUljLFNBQVMsSUFBSSxNQUFNO29CQUN2QixLQUFLLE1BQU1GLFNBQVNaLElBQUljLFNBQVMsQ0FBRTt3QkFDL0JiLEVBQUVLLE1BQU0sQ0FBQzt3QkFDVEwsRUFBRU0sTUFBTSxDQUFDSztvQkFDYjtnQkFDSjtnQkFDQSxJQUFJWixJQUFJZSxnQkFBZ0IsSUFBSSxNQUFNO29CQUM5QmQsRUFBRUssTUFBTSxDQUFDO29CQUNUTCxFQUFFUyxLQUFLLENBQUNWLElBQUllLGdCQUFnQjtnQkFDaEM7Z0JBQ0EsSUFBSWIsS0FBS0MsZUFBZSxLQUFLLE9BQU87b0JBQ2hDRixFQUFFZSxNQUFNO2dCQUNaO1lBQ0osR0FBRyxDQUFDQyxRQUFRQztnQkFDUixNQUFNbEIsTUFBTTtvQkFDUlcsYUFBYSxFQUFFO29CQUNmRyxXQUFXLEVBQUU7Z0JBQ2pCO2dCQUNBLE1BQU1LLE1BQU1ELFVBQVUsT0FBT0QsT0FBT0csR0FBRyxHQUFHSCxPQUFPSSxHQUFHLEdBQUdIO2dCQUN2RCxNQUFPRCxPQUFPSSxHQUFHLEdBQUdGLElBQUs7b0JBQ3JCLE1BQU1HLE1BQU1MLE9BQU9YLE1BQU07b0JBQ3pCLE9BQVFnQixRQUFRO3dCQUNaLEtBQUs7NEJBQ0R0QixJQUFJSyxlQUFlLEdBQUdZLE9BQU9WLE1BQU07NEJBQ25DO3dCQUNKLEtBQUs7NEJBQ0RQLElBQUlRLFlBQVksR0FBR1MsT0FBT1YsTUFBTTs0QkFDaEM7d0JBQ0osS0FBSzs0QkFDRFAsSUFBSVMsU0FBUyxHQUFHUSxPQUFPUCxLQUFLOzRCQUM1Qjt3QkFDSixLQUFLOzRCQUNEVixJQUFJVyxXQUFXLENBQUNZLElBQUksQ0FBQ04sT0FBT1AsS0FBSzs0QkFDakM7d0JBQ0osS0FBSzs0QkFDRFYsSUFBSWEsWUFBWSxHQUFHSSxPQUFPUCxLQUFLOzRCQUMvQjt3QkFDSixLQUFLOzRCQUNEVixJQUFJYyxTQUFTLENBQUNTLElBQUksQ0FBQ04sT0FBT1YsTUFBTTs0QkFDaEM7d0JBQ0osS0FBSzs0QkFDRFAsSUFBSWUsZ0JBQWdCLEdBQUdFLE9BQU9QLEtBQUs7NEJBQ25DO3dCQUNKOzRCQUNJTyxPQUFPTyxRQUFRLENBQUNGLE1BQU07NEJBQ3RCO29CQUNSO2dCQUNKO2dCQUNBLE9BQU90QjtZQUNYO1FBQ0o7UUFDQSxPQUFPRjtJQUNYO0lBQ0FELFNBQVM0QixNQUFNLEdBQUcsQ0FBQ3pCO1FBQ2YsT0FBT04sOERBQWFBLENBQUNNLEtBQUtILFNBQVNFLEtBQUs7SUFDNUM7SUFDQUYsU0FBUzZCLE1BQU0sR0FBRyxDQUFDQztRQUNmLE9BQU9oQyw4REFBYUEsQ0FBQ2dDLEtBQUs5QixTQUFTRSxLQUFLO0lBQzVDO0FBQ0osR0FBR0YsWUFBYUEsQ0FBQUEsV0FBVyxDQUFDLEtBQzVCLG1DQUFtQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvaWRlbnRpZnkvZGlzdC9zcmMvcGIvbWVzc2FnZS5qcz82MGFlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9leHBvcnQgKi9cbi8qIGVzbGludC1kaXNhYmxlIGNvbXBsZXhpdHkgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1uYW1lc3BhY2UgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1ib29sZWFuLWxpdGVyYWwtY29tcGFyZSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZSAqL1xuaW1wb3J0IHsgZW5jb2RlTWVzc2FnZSwgZGVjb2RlTWVzc2FnZSwgbWVzc2FnZSB9IGZyb20gJ3Byb3RvbnMtcnVudGltZSc7XG5leHBvcnQgdmFyIElkZW50aWZ5O1xuKGZ1bmN0aW9uIChJZGVudGlmeSkge1xuICAgIGxldCBfY29kZWM7XG4gICAgSWRlbnRpZnkuY29kZWMgPSAoKSA9PiB7XG4gICAgICAgIGlmIChfY29kZWMgPT0gbnVsbCkge1xuICAgICAgICAgICAgX2NvZGVjID0gbWVzc2FnZSgob2JqLCB3LCBvcHRzID0ge30pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAob3B0cy5sZW5ndGhEZWxpbWl0ZWQgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHcuZm9yaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAob2JqLnByb3RvY29sVmVyc2lvbiAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHcudWludDMyKDQyKTtcbiAgICAgICAgICAgICAgICAgICAgdy5zdHJpbmcob2JqLnByb3RvY29sVmVyc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChvYmouYWdlbnRWZXJzaW9uICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdy51aW50MzIoNTApO1xuICAgICAgICAgICAgICAgICAgICB3LnN0cmluZyhvYmouYWdlbnRWZXJzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG9iai5wdWJsaWNLZXkgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB3LnVpbnQzMigxMCk7XG4gICAgICAgICAgICAgICAgICAgIHcuYnl0ZXMob2JqLnB1YmxpY0tleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChvYmoubGlzdGVuQWRkcnMgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIG9iai5saXN0ZW5BZGRycykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdy51aW50MzIoMTgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdy5ieXRlcyh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG9iai5vYnNlcnZlZEFkZHIgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB3LnVpbnQzMigzNCk7XG4gICAgICAgICAgICAgICAgICAgIHcuYnl0ZXMob2JqLm9ic2VydmVkQWRkcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChvYmoucHJvdG9jb2xzICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBvYmoucHJvdG9jb2xzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3LnVpbnQzMigyNik7XG4gICAgICAgICAgICAgICAgICAgICAgICB3LnN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG9iai5zaWduZWRQZWVyUmVjb3JkICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdy51aW50MzIoNjYpO1xuICAgICAgICAgICAgICAgICAgICB3LmJ5dGVzKG9iai5zaWduZWRQZWVyUmVjb3JkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG9wdHMubGVuZ3RoRGVsaW1pdGVkICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICB3LmxkZWxpbSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIChyZWFkZXIsIGxlbmd0aCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9iaiA9IHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdGVuQWRkcnM6IFtdLFxuICAgICAgICAgICAgICAgICAgICBwcm90b2NvbHM6IFtdXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmQgPSBsZW5ndGggPT0gbnVsbCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgICAgICAgICAgICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmoucHJvdG9jb2xWZXJzaW9uID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iai5hZ2VudFZlcnNpb24gPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqLnB1YmxpY0tleSA9IHJlYWRlci5ieXRlcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iai5saXN0ZW5BZGRycy5wdXNoKHJlYWRlci5ieXRlcygpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmoub2JzZXJ2ZWRBZGRyID0gcmVhZGVyLmJ5dGVzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqLnByb3RvY29scy5wdXNoKHJlYWRlci5zdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqLnNpZ25lZFBlZXJSZWNvcmQgPSByZWFkZXIuYnl0ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLnNraXBUeXBlKHRhZyAmIDcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvYmo7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX2NvZGVjO1xuICAgIH07XG4gICAgSWRlbnRpZnkuZW5jb2RlID0gKG9iaikgPT4ge1xuICAgICAgICByZXR1cm4gZW5jb2RlTWVzc2FnZShvYmosIElkZW50aWZ5LmNvZGVjKCkpO1xuICAgIH07XG4gICAgSWRlbnRpZnkuZGVjb2RlID0gKGJ1ZikgPT4ge1xuICAgICAgICByZXR1cm4gZGVjb2RlTWVzc2FnZShidWYsIElkZW50aWZ5LmNvZGVjKCkpO1xuICAgIH07XG59KShJZGVudGlmeSB8fCAoSWRlbnRpZnkgPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWVzc2FnZS5qcy5tYXAiXSwibmFtZXMiOlsiZW5jb2RlTWVzc2FnZSIsImRlY29kZU1lc3NhZ2UiLCJtZXNzYWdlIiwiSWRlbnRpZnkiLCJfY29kZWMiLCJjb2RlYyIsIm9iaiIsInciLCJvcHRzIiwibGVuZ3RoRGVsaW1pdGVkIiwiZm9yayIsInByb3RvY29sVmVyc2lvbiIsInVpbnQzMiIsInN0cmluZyIsImFnZW50VmVyc2lvbiIsInB1YmxpY0tleSIsImJ5dGVzIiwibGlzdGVuQWRkcnMiLCJ2YWx1ZSIsIm9ic2VydmVkQWRkciIsInByb3RvY29scyIsInNpZ25lZFBlZXJSZWNvcmQiLCJsZGVsaW0iLCJyZWFkZXIiLCJsZW5ndGgiLCJlbmQiLCJsZW4iLCJwb3MiLCJ0YWciLCJwdXNoIiwic2tpcFR5cGUiLCJlbmNvZGUiLCJkZWNvZGUiLCJidWYiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/identify/dist/src/pb/message.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/interface/dist/src/connection/index.js":
/*!*********************************************************************!*\
!*** ./node_modules/@libp2p/interface/dist/src/connection/index.js ***!
\*********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ connectionSymbol: () => (/* binding */ connectionSymbol),\n/* harmony export */ isConnection: () => (/* binding */ isConnection)\n/* harmony export */ });\nconst connectionSymbol = Symbol.for(\"@libp2p/connection\");\nfunction isConnection(other) {\n return other != null && Boolean(other[connectionSymbol]);\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9pbnRlcmZhY2UvZGlzdC9zcmMvY29ubmVjdGlvbi9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFPLE1BQU1BLG1CQUFtQkMsT0FBT0MsR0FBRyxDQUFDLHNCQUFzQjtBQUMxRCxTQUFTQyxhQUFhQyxLQUFLO0lBQzlCLE9BQU9BLFNBQVMsUUFBUUMsUUFBUUQsS0FBSyxDQUFDSixpQkFBaUI7QUFDM0QsRUFDQSxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL2ludGVyZmFjZS9kaXN0L3NyYy9jb25uZWN0aW9uL2luZGV4LmpzPzJjMzciXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGNvbm5lY3Rpb25TeW1ib2wgPSBTeW1ib2wuZm9yKCdAbGlicDJwL2Nvbm5lY3Rpb24nKTtcbmV4cG9ydCBmdW5jdGlvbiBpc0Nvbm5lY3Rpb24ob3RoZXIpIHtcbiAgICByZXR1cm4gb3RoZXIgIT0gbnVsbCAmJiBCb29sZWFuKG90aGVyW2Nvbm5lY3Rpb25TeW1ib2xdKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6WyJjb25uZWN0aW9uU3ltYm9sIiwiU3ltYm9sIiwiZm9yIiwiaXNDb25uZWN0aW9uIiwib3RoZXIiLCJCb29sZWFuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/interface/dist/src/connection/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/interface/dist/src/content-routing/index.js":
/*!**************************************************************************!*\
!*** ./node_modules/@libp2p/interface/dist/src/content-routing/index.js ***!
\**************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ contentRoutingSymbol: () => (/* binding */ contentRoutingSymbol)\n/* harmony export */ });\n/**\n * Any object that implements this Symbol as a property should return a\n * ContentRouting instance as the property value, similar to how\n * `Symbol.Iterable` can be used to return an `Iterable` from an `Iterator`.\n *\n * @example\n *\n * ```TypeScript\n * import { contentRoutingSymbol, ContentRouting } from '@libp2p/content-routing'\n *\n * class MyContentRouter implements ContentRouting {\n * get [contentRoutingSymbol] () {\n * return this\n * }\n *\n * // ...other methods\n * }\n * ```\n */ const contentRoutingSymbol = Symbol.for(\"@libp2p/content-routing\"); //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9pbnRlcmZhY2UvZGlzdC9zcmMvY29udGVudC1yb3V0aW5nL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBa0JDLEdBQ00sTUFBTUEsdUJBQXVCQyxPQUFPQyxHQUFHLENBQUMsMkJBQTJCLENBQzFFLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvaW50ZXJmYWNlL2Rpc3Qvc3JjL2NvbnRlbnQtcm91dGluZy9pbmRleC5qcz9hNzRlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQW55IG9iamVjdCB0aGF0IGltcGxlbWVudHMgdGhpcyBTeW1ib2wgYXMgYSBwcm9wZXJ0eSBzaG91bGQgcmV0dXJuIGFcbiAqIENvbnRlbnRSb3V0aW5nIGluc3RhbmNlIGFzIHRoZSBwcm9wZXJ0eSB2YWx1ZSwgc2ltaWxhciB0byBob3dcbiAqIGBTeW1ib2wuSXRlcmFibGVgIGNhbiBiZSB1c2VkIHRvIHJldHVybiBhbiBgSXRlcmFibGVgIGZyb20gYW4gYEl0ZXJhdG9yYC5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYFR5cGVTY3JpcHRcbiAqIGltcG9ydCB7IGNvbnRlbnRSb3V0aW5nU3ltYm9sLCBDb250ZW50Um91dGluZyB9IGZyb20gJ0BsaWJwMnAvY29udGVudC1yb3V0aW5nJ1xuICpcbiAqIGNsYXNzIE15Q29udGVudFJvdXRlciBpbXBsZW1lbnRzIENvbnRlbnRSb3V0aW5nIHtcbiAqICAgZ2V0IFtjb250ZW50Um91dGluZ1N5bWJvbF0gKCkge1xuICogICAgIHJldHVybiB0aGlzXG4gKiAgIH1cbiAqXG4gKiAgIC8vIC4uLm90aGVyIG1ldGhvZHNcbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgY29udGVudFJvdXRpbmdTeW1ib2wgPSBTeW1ib2wuZm9yKCdAbGlicDJwL2NvbnRlbnQtcm91dGluZycpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbImNvbnRlbnRSb3V0aW5nU3ltYm9sIiwiU3ltYm9sIiwiZm9yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/interface/dist/src/content-routing/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js":
/*!***********************************************************!*\
!*** ./node_modules/@libp2p/interface/dist/src/errors.js ***!
\***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbortError: () => (/* binding */ AbortError),\n/* harmony export */ AggregateCodeError: () => (/* binding */ AggregateCodeError),\n/* harmony export */ CodeError: () => (/* binding */ CodeError),\n/* harmony export */ ERR_INVALID_MESSAGE: () => (/* binding */ ERR_INVALID_MESSAGE),\n/* harmony export */ ERR_INVALID_PARAMETERS: () => (/* binding */ ERR_INVALID_PARAMETERS),\n/* harmony export */ ERR_NOT_FOUND: () => (/* binding */ ERR_NOT_FOUND),\n/* harmony export */ ERR_TIMEOUT: () => (/* binding */ ERR_TIMEOUT),\n/* harmony export */ InvalidCryptoExchangeError: () => (/* binding */ InvalidCryptoExchangeError),\n/* harmony export */ InvalidCryptoTransmissionError: () => (/* binding */ InvalidCryptoTransmissionError),\n/* harmony export */ UnexpectedPeerError: () => (/* binding */ UnexpectedPeerError)\n/* harmony export */ });\n/**\n * When this error is thrown it means an operation was aborted,\n * usually in response to the `abort` event being emitted by an\n * AbortSignal.\n */ class AbortError extends Error {\n constructor(message = \"The operation was aborted\"){\n super(message);\n this.name = \"AbortError\";\n this.code = AbortError.code;\n this.type = AbortError.type;\n }\n static{\n this.code = \"ABORT_ERR\";\n }\n static{\n this.type = \"aborted\";\n }\n}\nclass CodeError extends Error {\n constructor(message, code, props){\n super(message);\n this.code = code;\n this.name = props?.name ?? \"CodeError\";\n this.props = props ?? {}; // eslint-disable-line @typescript-eslint/consistent-type-assertions\n }\n}\nclass AggregateCodeError extends AggregateError {\n constructor(errors, message, code, props){\n super(errors, message);\n this.code = code;\n this.name = props?.name ?? \"AggregateCodeError\";\n this.props = props ?? {}; // eslint-disable-line @typescript-eslint/consistent-type-assertions\n }\n}\nclass UnexpectedPeerError extends Error {\n constructor(message = \"Unexpected Peer\"){\n super(message);\n this.name = \"UnexpectedPeerError\";\n this.code = UnexpectedPeerError.code;\n }\n static{\n this.code = \"ERR_UNEXPECTED_PEER\";\n }\n}\nclass InvalidCryptoExchangeError extends Error {\n constructor(message = \"Invalid crypto exchange\"){\n super(message);\n this.name = \"InvalidCryptoExchangeError\";\n this.code = InvalidCryptoExchangeError.code;\n }\n static{\n this.code = \"ERR_INVALID_CRYPTO_EXCHANGE\";\n }\n}\nclass InvalidCryptoTransmissionError extends Error {\n constructor(message = \"Invalid crypto transmission\"){\n super(message);\n this.name = \"InvalidCryptoTransmissionError\";\n this.code = InvalidCryptoTransmissionError.code;\n }\n static{\n this.code = \"ERR_INVALID_CRYPTO_TRANSMISSION\";\n }\n}\n// Error codes\nconst ERR_TIMEOUT = \"ERR_TIMEOUT\";\nconst ERR_INVALID_PARAMETERS = \"ERR_INVALID_PARAMETERS\";\nconst ERR_NOT_FOUND = \"ERR_NOT_FOUND\";\nconst ERR_INVALID_MESSAGE = \"ERR_INVALID_MESSAGE\"; //# sourceMappingURL=errors.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9pbnRlcmZhY2UvZGlzdC9zcmMvZXJyb3JzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7OztDQUlDLEdBQ00sTUFBTUEsbUJBQW1CQztJQUc1QkMsWUFBWUMsVUFBVSwyQkFBMkIsQ0FBRTtRQUMvQyxLQUFLLENBQUNBO1FBQ04sSUFBSSxDQUFDQyxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0wsV0FBV0ssSUFBSTtRQUMzQixJQUFJLENBQUNDLElBQUksR0FBR04sV0FBV00sSUFBSTtJQUMvQjs7YUFDT0QsT0FBTzs7O2FBQ1BDLE9BQU87O0FBQ2xCO0FBQ08sTUFBTUMsa0JBQWtCTjtJQUczQkMsWUFBWUMsT0FBTyxFQUFFRSxJQUFJLEVBQUVHLEtBQUssQ0FBRTtRQUM5QixLQUFLLENBQUNMO1FBQ04sSUFBSSxDQUFDRSxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDRCxJQUFJLEdBQUdJLE9BQU9KLFFBQVE7UUFDM0IsSUFBSSxDQUFDSSxLQUFLLEdBQUdBLFNBQVMsQ0FBQyxHQUFHLG9FQUFvRTtJQUNsRztBQUNKO0FBQ08sTUFBTUMsMkJBQTJCQztJQUdwQ1IsWUFBWVMsTUFBTSxFQUFFUixPQUFPLEVBQUVFLElBQUksRUFBRUcsS0FBSyxDQUFFO1FBQ3RDLEtBQUssQ0FBQ0csUUFBUVI7UUFDZCxJQUFJLENBQUNFLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNELElBQUksR0FBR0ksT0FBT0osUUFBUTtRQUMzQixJQUFJLENBQUNJLEtBQUssR0FBR0EsU0FBUyxDQUFDLEdBQUcsb0VBQW9FO0lBQ2xHO0FBQ0o7QUFDTyxNQUFNSSw0QkFBNEJYO0lBRXJDQyxZQUFZQyxVQUFVLGlCQUFpQixDQUFFO1FBQ3JDLEtBQUssQ0FBQ0E7UUFDTixJQUFJLENBQUNDLElBQUksR0FBRztRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHTyxvQkFBb0JQLElBQUk7SUFDeEM7O2FBQ09BLE9BQU87O0FBQ2xCO0FBQ08sTUFBTVEsbUNBQW1DWjtJQUU1Q0MsWUFBWUMsVUFBVSx5QkFBeUIsQ0FBRTtRQUM3QyxLQUFLLENBQUNBO1FBQ04sSUFBSSxDQUFDQyxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR1EsMkJBQTJCUixJQUFJO0lBQy9DOzthQUNPQSxPQUFPOztBQUNsQjtBQUNPLE1BQU1TLHVDQUF1Q2I7SUFFaERDLFlBQVlDLFVBQVUsNkJBQTZCLENBQUU7UUFDakQsS0FBSyxDQUFDQTtRQUNOLElBQUksQ0FBQ0MsSUFBSSxHQUFHO1FBQ1osSUFBSSxDQUFDQyxJQUFJLEdBQUdTLCtCQUErQlQsSUFBSTtJQUNuRDs7YUFDT0EsT0FBTzs7QUFDbEI7QUFDQSxjQUFjO0FBQ1AsTUFBTVUsY0FBYyxjQUFjO0FBQ2xDLE1BQU1DLHlCQUF5Qix5QkFBeUI7QUFDeEQsTUFBTUMsZ0JBQWdCLGdCQUFnQjtBQUN0QyxNQUFNQyxzQkFBc0Isc0JBQXNCLENBQ3pELGtDQUFrQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvaW50ZXJmYWNlL2Rpc3Qvc3JjL2Vycm9ycy5qcz9jMmRjIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogV2hlbiB0aGlzIGVycm9yIGlzIHRocm93biBpdCBtZWFucyBhbiBvcGVyYXRpb24gd2FzIGFib3J0ZWQsXG4gKiB1c3VhbGx5IGluIHJlc3BvbnNlIHRvIHRoZSBgYWJvcnRgIGV2ZW50IGJlaW5nIGVtaXR0ZWQgYnkgYW5cbiAqIEFib3J0U2lnbmFsLlxuICovXG5leHBvcnQgY2xhc3MgQWJvcnRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb2RlO1xuICAgIHR5cGU7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZSA9ICdUaGUgb3BlcmF0aW9uIHdhcyBhYm9ydGVkJykge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5uYW1lID0gJ0Fib3J0RXJyb3InO1xuICAgICAgICB0aGlzLmNvZGUgPSBBYm9ydEVycm9yLmNvZGU7XG4gICAgICAgIHRoaXMudHlwZSA9IEFib3J0RXJyb3IudHlwZTtcbiAgICB9XG4gICAgc3RhdGljIGNvZGUgPSAnQUJPUlRfRVJSJztcbiAgICBzdGF0aWMgdHlwZSA9ICdhYm9ydGVkJztcbn1cbmV4cG9ydCBjbGFzcyBDb2RlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29kZTtcbiAgICBwcm9wcztcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBjb2RlLCBwcm9wcykge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5jb2RlID0gY29kZTtcbiAgICAgICAgdGhpcy5uYW1lID0gcHJvcHM/Lm5hbWUgPz8gJ0NvZGVFcnJvcic7XG4gICAgICAgIHRoaXMucHJvcHMgPSBwcm9wcyA/PyB7fTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvY29uc2lzdGVudC10eXBlLWFzc2VydGlvbnNcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgQWdncmVnYXRlQ29kZUVycm9yIGV4dGVuZHMgQWdncmVnYXRlRXJyb3Ige1xuICAgIGNvZGU7XG4gICAgcHJvcHM7XG4gICAgY29uc3RydWN0b3IoZXJyb3JzLCBtZXNzYWdlLCBjb2RlLCBwcm9wcykge1xuICAgICAgICBzdXBlcihlcnJvcnMsIG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLmNvZGUgPSBjb2RlO1xuICAgICAgICB0aGlzLm5hbWUgPSBwcm9wcz8ubmFtZSA/PyAnQWdncmVnYXRlQ29kZUVycm9yJztcbiAgICAgICAgdGhpcy5wcm9wcyA9IHByb3BzID8/IHt9OyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtYXNzZXJ0aW9uc1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBVbmV4cGVjdGVkUGVlckVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvZGU7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZSA9ICdVbmV4cGVjdGVkIFBlZXInKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLm5hbWUgPSAnVW5leHBlY3RlZFBlZXJFcnJvcic7XG4gICAgICAgIHRoaXMuY29kZSA9IFVuZXhwZWN0ZWRQZWVyRXJyb3IuY29kZTtcbiAgICB9XG4gICAgc3RhdGljIGNvZGUgPSAnRVJSX1VORVhQRUNURURfUEVFUic7XG59XG5leHBvcnQgY2xhc3MgSW52YWxpZENyeXB0b0V4Y2hhbmdlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29kZTtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlID0gJ0ludmFsaWQgY3J5cHRvIGV4Y2hhbmdlJykge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5uYW1lID0gJ0ludmFsaWRDcnlwdG9FeGNoYW5nZUVycm9yJztcbiAgICAgICAgdGhpcy5jb2RlID0gSW52YWxpZENyeXB0b0V4Y2hhbmdlRXJyb3IuY29kZTtcbiAgICB9XG4gICAgc3RhdGljIGNvZGUgPSAnRVJSX0lOVkFMSURfQ1JZUFRPX0VYQ0hBTkdFJztcbn1cbmV4cG9ydCBjbGFzcyBJbnZhbGlkQ3J5cHRvVHJhbnNtaXNzaW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29kZTtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlID0gJ0ludmFsaWQgY3J5cHRvIHRyYW5zbWlzc2lvbicpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgIHRoaXMubmFtZSA9ICdJbnZhbGlkQ3J5cHRvVHJhbnNtaXNzaW9uRXJyb3InO1xuICAgICAgICB0aGlzLmNvZGUgPSBJbnZhbGlkQ3J5cHRvVHJhbnNtaXNzaW9uRXJyb3IuY29kZTtcbiAgICB9XG4gICAgc3RhdGljIGNvZGUgPSAnRVJSX0lOVkFMSURfQ1JZUFRPX1RSQU5TTUlTU0lPTic7XG59XG4vLyBFcnJvciBjb2Rlc1xuZXhwb3J0IGNvbnN0IEVSUl9USU1FT1VUID0gJ0VSUl9USU1FT1VUJztcbmV4cG9ydCBjb25zdCBFUlJfSU5WQUxJRF9QQVJBTUVURVJTID0gJ0VSUl9JTlZBTElEX1BBUkFNRVRFUlMnO1xuZXhwb3J0IGNvbnN0IEVSUl9OT1RfRk9VTkQgPSAnRVJSX05PVF9GT1VORCc7XG5leHBvcnQgY29uc3QgRVJSX0lOVkFMSURfTUVTU0FHRSA9ICdFUlJfSU5WQUxJRF9NRVNTQUdFJztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVycm9ycy5qcy5tYXAiXSwibmFtZXMiOlsiQWJvcnRFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJtZXNzYWdlIiwibmFtZSIsImNvZGUiLCJ0eXBlIiwiQ29kZUVycm9yIiwicHJvcHMiLCJBZ2dyZWdhdGVDb2RlRXJyb3IiLCJBZ2dyZWdhdGVFcnJvciIsImVycm9ycyIsIlVuZXhwZWN0ZWRQZWVyRXJyb3IiLCJJbnZhbGlkQ3J5cHRvRXhjaGFuZ2VFcnJvciIsIkludmFsaWRDcnlwdG9UcmFuc21pc3Npb25FcnJvciIsIkVSUl9USU1FT1VUIiwiRVJSX0lOVkFMSURfUEFSQU1FVEVSUyIsIkVSUl9OT1RfRk9VTkQiLCJFUlJfSU5WQUxJRF9NRVNTQUdFIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/interface/dist/src/event-target.js":
/*!*****************************************************************!*\
!*** ./node_modules/@libp2p/interface/dist/src/event-target.js ***!
\*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CustomEvent: () => (/* binding */ CustomEvent),\n/* harmony export */ TypedEventEmitter: () => (/* binding */ TypedEventEmitter)\n/* harmony export */ });\n/* harmony import */ var _events_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./events.js */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/events.js\");\n\n/**\n * An implementation of a typed event target\n * etc\n */ class TypedEventEmitter extends EventTarget {\n #listeners;\n constructor(){\n super();\n this.#listeners = new Map();\n // silence MaxListenersExceededWarning warning on Node.js, this is a red\n // herring almost all of the time\n (0,_events_js__WEBPACK_IMPORTED_MODULE_0__.setMaxListeners)(Infinity, this);\n }\n listenerCount(type) {\n const listeners = this.#listeners.get(type);\n if (listeners == null) {\n return 0;\n }\n return listeners.length;\n }\n addEventListener(type, listener, options) {\n super.addEventListener(type, listener, options);\n let list = this.#listeners.get(type);\n if (list == null) {\n list = [];\n this.#listeners.set(type, list);\n }\n list.push({\n callback: listener,\n once: (options !== true && options !== false && options?.once) ?? false\n });\n }\n removeEventListener(type, listener, options) {\n super.removeEventListener(type.toString(), listener ?? null, options);\n let list = this.#listeners.get(type);\n if (list == null) {\n return;\n }\n list = list.filter(({ callback })=>callback !== listener);\n this.#listeners.set(type, list);\n }\n dispatchEvent(event) {\n const result = super.dispatchEvent(event);\n let list = this.#listeners.get(event.type);\n if (list == null) {\n return result;\n }\n list = list.filter(({ once })=>!once);\n this.#listeners.set(event.type, list);\n return result;\n }\n safeDispatchEvent(type, detail = {}) {\n return this.dispatchEvent(new CustomEvent(type, detail));\n }\n}\n/**\n * CustomEvent is a standard event but it's not supported by node.\n *\n * Remove this when https://github.com/nodejs/node/issues/40678 is closed.\n *\n * Ref: https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent\n */ class CustomEventPolyfill extends Event {\n constructor(message, data){\n super(message, data);\n // @ts-expect-error could be undefined\n this.detail = data?.detail;\n }\n}\nconst CustomEvent = globalThis.CustomEvent ?? CustomEventPolyfill; //# sourceMappingURL=event-target.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9pbnRlcmZhY2UvZGlzdC9zcmMvZXZlbnQtdGFyZ2V0LmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE4QztBQUM5Qzs7O0NBR0MsR0FDTSxNQUFNQywwQkFBMEJDO0lBQ25DLENBQUNDLFNBQVMsQ0FBYTtJQUN2QkMsYUFBYztRQUNWLEtBQUs7YUFGVCxDQUFDRCxTQUFTLEdBQUcsSUFBSUU7UUFHYix3RUFBd0U7UUFDeEUsaUNBQWlDO1FBQ2pDTCwyREFBZUEsQ0FBQ00sVUFBVSxJQUFJO0lBQ2xDO0lBQ0FDLGNBQWNDLElBQUksRUFBRTtRQUNoQixNQUFNTCxZQUFZLElBQUksQ0FBQyxDQUFDQSxTQUFTLENBQUNNLEdBQUcsQ0FBQ0Q7UUFDdEMsSUFBSUwsYUFBYSxNQUFNO1lBQ25CLE9BQU87UUFDWDtRQUNBLE9BQU9BLFVBQVVPLE1BQU07SUFDM0I7SUFDQUMsaUJBQWlCSCxJQUFJLEVBQUVJLFFBQVEsRUFBRUMsT0FBTyxFQUFFO1FBQ3RDLEtBQUssQ0FBQ0YsaUJBQWlCSCxNQUFNSSxVQUFVQztRQUN2QyxJQUFJQyxPQUFPLElBQUksQ0FBQyxDQUFDWCxTQUFTLENBQUNNLEdBQUcsQ0FBQ0Q7UUFDL0IsSUFBSU0sUUFBUSxNQUFNO1lBQ2RBLE9BQU8sRUFBRTtZQUNULElBQUksQ0FBQyxDQUFDWCxTQUFTLENBQUNZLEdBQUcsQ0FBQ1AsTUFBTU07UUFDOUI7UUFDQUEsS0FBS0UsSUFBSSxDQUFDO1lBQ05DLFVBQVVMO1lBQ1ZNLE1BQU0sQ0FBQ0wsWUFBWSxRQUFRQSxZQUFZLFNBQVNBLFNBQVNLLElBQUcsS0FBTTtRQUN0RTtJQUNKO0lBQ0FDLG9CQUFvQlgsSUFBSSxFQUFFSSxRQUFRLEVBQUVDLE9BQU8sRUFBRTtRQUN6QyxLQUFLLENBQUNNLG9CQUFvQlgsS0FBS1ksUUFBUSxJQUFJUixZQUFZLE1BQU1DO1FBQzdELElBQUlDLE9BQU8sSUFBSSxDQUFDLENBQUNYLFNBQVMsQ0FBQ00sR0FBRyxDQUFDRDtRQUMvQixJQUFJTSxRQUFRLE1BQU07WUFDZDtRQUNKO1FBQ0FBLE9BQU9BLEtBQUtPLE1BQU0sQ0FBQyxDQUFDLEVBQUVKLFFBQVEsRUFBRSxHQUFLQSxhQUFhTDtRQUNsRCxJQUFJLENBQUMsQ0FBQ1QsU0FBUyxDQUFDWSxHQUFHLENBQUNQLE1BQU1NO0lBQzlCO0lBQ0FRLGNBQWNDLEtBQUssRUFBRTtRQUNqQixNQUFNQyxTQUFTLEtBQUssQ0FBQ0YsY0FBY0M7UUFDbkMsSUFBSVQsT0FBTyxJQUFJLENBQUMsQ0FBQ1gsU0FBUyxDQUFDTSxHQUFHLENBQUNjLE1BQU1mLElBQUk7UUFDekMsSUFBSU0sUUFBUSxNQUFNO1lBQ2QsT0FBT1U7UUFDWDtRQUNBVixPQUFPQSxLQUFLTyxNQUFNLENBQUMsQ0FBQyxFQUFFSCxJQUFJLEVBQUUsR0FBSyxDQUFDQTtRQUNsQyxJQUFJLENBQUMsQ0FBQ2YsU0FBUyxDQUFDWSxHQUFHLENBQUNRLE1BQU1mLElBQUksRUFBRU07UUFDaEMsT0FBT1U7SUFDWDtJQUNBQyxrQkFBa0JqQixJQUFJLEVBQUVrQixTQUFTLENBQUMsQ0FBQyxFQUFFO1FBQ2pDLE9BQU8sSUFBSSxDQUFDSixhQUFhLENBQUMsSUFBSUssWUFBWW5CLE1BQU1rQjtJQUNwRDtBQUNKO0FBQ0E7Ozs7OztDQU1DLEdBQ0QsTUFBTUUsNEJBQTRCQztJQUc5QnpCLFlBQVkwQixPQUFPLEVBQUVDLElBQUksQ0FBRTtRQUN2QixLQUFLLENBQUNELFNBQVNDO1FBQ2Ysc0NBQXNDO1FBQ3RDLElBQUksQ0FBQ0wsTUFBTSxHQUFHSyxNQUFNTDtJQUN4QjtBQUNKO0FBQ08sTUFBTUMsY0FBY0ssV0FBV0wsV0FBVyxJQUFJQyxvQkFBb0IsQ0FDekUsd0NBQXdDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9pbnRlcmZhY2UvZGlzdC9zcmMvZXZlbnQtdGFyZ2V0LmpzP2U2N2IiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2V0TWF4TGlzdGVuZXJzIH0gZnJvbSAnLi9ldmVudHMuanMnO1xuLyoqXG4gKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiBhIHR5cGVkIGV2ZW50IHRhcmdldFxuICogZXRjXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlZEV2ZW50RW1pdHRlciBleHRlbmRzIEV2ZW50VGFyZ2V0IHtcbiAgICAjbGlzdGVuZXJzID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICAvLyBzaWxlbmNlIE1heExpc3RlbmVyc0V4Y2VlZGVkV2FybmluZyB3YXJuaW5nIG9uIE5vZGUuanMsIHRoaXMgaXMgYSByZWRcbiAgICAgICAgLy8gaGVycmluZyBhbG1vc3QgYWxsIG9mIHRoZSB0aW1lXG4gICAgICAgIHNldE1heExpc3RlbmVycyhJbmZpbml0eSwgdGhpcyk7XG4gICAgfVxuICAgIGxpc3RlbmVyQ291bnQodHlwZSkge1xuICAgICAgICBjb25zdCBsaXN0ZW5lcnMgPSB0aGlzLiNsaXN0ZW5lcnMuZ2V0KHR5cGUpO1xuICAgICAgICBpZiAobGlzdGVuZXJzID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsaXN0ZW5lcnMubGVuZ3RoO1xuICAgIH1cbiAgICBhZGRFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyLCBvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyLmFkZEV2ZW50TGlzdGVuZXIodHlwZSwgbGlzdGVuZXIsIG9wdGlvbnMpO1xuICAgICAgICBsZXQgbGlzdCA9IHRoaXMuI2xpc3RlbmVycy5nZXQodHlwZSk7XG4gICAgICAgIGlmIChsaXN0ID09IG51bGwpIHtcbiAgICAgICAgICAgIGxpc3QgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuI2xpc3RlbmVycy5zZXQodHlwZSwgbGlzdCk7XG4gICAgICAgIH1cbiAgICAgICAgbGlzdC5wdXNoKHtcbiAgICAgICAgICAgIGNhbGxiYWNrOiBsaXN0ZW5lcixcbiAgICAgICAgICAgIG9uY2U6IChvcHRpb25zICE9PSB0cnVlICYmIG9wdGlvbnMgIT09IGZhbHNlICYmIG9wdGlvbnM/Lm9uY2UpID8/IGZhbHNlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyLCBvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZS50b1N0cmluZygpLCBsaXN0ZW5lciA/PyBudWxsLCBvcHRpb25zKTtcbiAgICAgICAgbGV0IGxpc3QgPSB0aGlzLiNsaXN0ZW5lcnMuZ2V0KHR5cGUpO1xuICAgICAgICBpZiAobGlzdCA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGlzdCA9IGxpc3QuZmlsdGVyKCh7IGNhbGxiYWNrIH0pID0+IGNhbGxiYWNrICE9PSBsaXN0ZW5lcik7XG4gICAgICAgIHRoaXMuI2xpc3RlbmVycy5zZXQodHlwZSwgbGlzdCk7XG4gICAgfVxuICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gc3VwZXIuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gICAgICAgIGxldCBsaXN0ID0gdGhpcy4jbGlzdGVuZXJzLmdldChldmVudC50eXBlKTtcbiAgICAgICAgaWYgKGxpc3QgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICBsaXN0ID0gbGlzdC5maWx0ZXIoKHsgb25jZSB9KSA9PiAhb25jZSk7XG4gICAgICAgIHRoaXMuI2xpc3RlbmVycy5zZXQoZXZlbnQudHlwZSwgbGlzdCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIHNhZmVEaXNwYXRjaEV2ZW50KHR5cGUsIGRldGFpbCA9IHt9KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KHR5cGUsIGRldGFpbCkpO1xuICAgIH1cbn1cbi8qKlxuICogQ3VzdG9tRXZlbnQgaXMgYSBzdGFuZGFyZCBldmVudCBidXQgaXQncyBub3Qgc3VwcG9ydGVkIGJ5IG5vZGUuXG4gKlxuICogUmVtb3ZlIHRoaXMgd2hlbiBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvaXNzdWVzLzQwNjc4IGlzIGNsb3NlZC5cbiAqXG4gKiBSZWY6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9DdXN0b21FdmVudFxuICovXG5jbGFzcyBDdXN0b21FdmVudFBvbHlmaWxsIGV4dGVuZHMgRXZlbnQge1xuICAgIC8qKiBSZXR1cm5zIGFueSBjdXN0b20gZGF0YSBldmVudCB3YXMgY3JlYXRlZCB3aXRoLiBUeXBpY2FsbHkgdXNlZCBmb3Igc3ludGhldGljIGV2ZW50cy4gKi9cbiAgICBkZXRhaWw7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZSwgZGF0YSkge1xuICAgICAgICBzdXBlcihtZXNzYWdlLCBkYXRhKTtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBjb3VsZCBiZSB1bmRlZmluZWRcbiAgICAgICAgdGhpcy5kZXRhaWwgPSBkYXRhPy5kZXRhaWw7XG4gICAgfVxufVxuZXhwb3J0IGNvbnN0IEN1c3RvbUV2ZW50ID0gZ2xvYmFsVGhpcy5DdXN0b21FdmVudCA/PyBDdXN0b21FdmVudFBvbHlmaWxsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXZlbnQtdGFyZ2V0LmpzLm1hcCJdLCJuYW1lcyI6WyJzZXRNYXhMaXN0ZW5lcnMiLCJUeXBlZEV2ZW50RW1pdHRlciIsIkV2ZW50VGFyZ2V0IiwibGlzdGVuZXJzIiwiY29uc3RydWN0b3IiLCJNYXAiLCJJbmZpbml0eSIsImxpc3RlbmVyQ291bnQiLCJ0eXBlIiwiZ2V0IiwibGVuZ3RoIiwiYWRkRXZlbnRMaXN0ZW5lciIsImxpc3RlbmVyIiwib3B0aW9ucyIsImxpc3QiLCJzZXQiLCJwdXNoIiwiY2FsbGJhY2siLCJvbmNlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInRvU3RyaW5nIiwiZmlsdGVyIiwiZGlzcGF0Y2hFdmVudCIsImV2ZW50IiwicmVzdWx0Iiwic2FmZURpc3BhdGNoRXZlbnQiLCJkZXRhaWwiLCJDdXN0b21FdmVudCIsIkN1c3RvbUV2ZW50UG9seWZpbGwiLCJFdmVudCIsIm1lc3NhZ2UiLCJkYXRhIiwiZ2xvYmFsVGhpcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/interface/dist/src/event-target.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/interface/dist/src/events.js":
/*!***********************************************************!*\
!*** ./node_modules/@libp2p/interface/dist/src/events.js ***!
\***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setMaxListeners: () => (/* binding */ setMaxListeners)\n/* harmony export */ });\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! events */ \"events\");\n\n// create a setMaxListeners that doesn't break browser usage\nconst setMaxListeners = (n, ...eventTargets)=>{\n try {\n (0,events__WEBPACK_IMPORTED_MODULE_0__.setMaxListeners)(n, ...eventTargets);\n } catch {\n // swallow error, gulp\n }\n}; //# sourceMappingURL=events.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9pbnRlcmZhY2UvZGlzdC9zcmMvZXZlbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWdFO0FBQ2hFLDREQUE0RDtBQUNyRCxNQUFNQSxrQkFBa0IsQ0FBQ0UsR0FBRyxHQUFHQztJQUNsQyxJQUFJO1FBQ0FGLHVEQUFtQkEsQ0FBQ0MsTUFBTUM7SUFDOUIsRUFDQSxPQUFNO0lBQ0Ysc0JBQXNCO0lBQzFCO0FBQ0osRUFBRSxDQUNGLGtDQUFrQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvaW50ZXJmYWNlL2Rpc3Qvc3JjL2V2ZW50cy5qcz8wNmE0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNldE1heExpc3RlbmVycyBhcyBub2RlU2V0TWF4TGlzdGVuZXJzIH0gZnJvbSAnZXZlbnRzJztcbi8vIGNyZWF0ZSBhIHNldE1heExpc3RlbmVycyB0aGF0IGRvZXNuJ3QgYnJlYWsgYnJvd3NlciB1c2FnZVxuZXhwb3J0IGNvbnN0IHNldE1heExpc3RlbmVycyA9IChuLCAuLi5ldmVudFRhcmdldHMpID0+IHtcbiAgICB0cnkge1xuICAgICAgICBub2RlU2V0TWF4TGlzdGVuZXJzKG4sIC4uLmV2ZW50VGFyZ2V0cyk7XG4gICAgfVxuICAgIGNhdGNoIHtcbiAgICAgICAgLy8gc3dhbGxvdyBlcnJvciwgZ3VscFxuICAgIH1cbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ldmVudHMuanMubWFwIl0sIm5hbWVzIjpbInNldE1heExpc3RlbmVycyIsIm5vZGVTZXRNYXhMaXN0ZW5lcnMiLCJuIiwiZXZlbnRUYXJnZXRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/interface/dist/src/events.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/interface/dist/src/peer-discovery/index.js":
/*!*************************************************************************!*\
!*** ./node_modules/@libp2p/interface/dist/src/peer-discovery/index.js ***!
\*************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ peerDiscoverySymbol: () => (/* binding */ peerDiscoverySymbol)\n/* harmony export */ });\n/**\n * Any object that implements this Symbol as a property should return a\n * PeerDiscovery instance as the property value, similar to how\n * `Symbol.Iterable` can be used to return an `Iterable` from an `Iterator`.\n *\n * @example\n *\n * ```TypeScript\n * import { peerDiscovery, PeerDiscovery } from '@libp2p/peer-discovery'\n *\n * class MyPeerDiscoverer implements PeerDiscovery {\n * get [peerDiscovery] () {\n * return this\n * }\n *\n * // ...other methods\n * }\n * ```\n */ const peerDiscoverySymbol = Symbol.for(\"@libp2p/peer-discovery\"); //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9pbnRlcmZhY2UvZGlzdC9zcmMvcGVlci1kaXNjb3ZlcnkvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FrQkMsR0FDTSxNQUFNQSxzQkFBc0JDLE9BQU9DLEdBQUcsQ0FBQywwQkFBMEIsQ0FDeEUsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9pbnRlcmZhY2UvZGlzdC9zcmMvcGVlci1kaXNjb3ZlcnkvaW5kZXguanM/YmY1NiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFueSBvYmplY3QgdGhhdCBpbXBsZW1lbnRzIHRoaXMgU3ltYm9sIGFzIGEgcHJvcGVydHkgc2hvdWxkIHJldHVybiBhXG4gKiBQZWVyRGlzY292ZXJ5IGluc3RhbmNlIGFzIHRoZSBwcm9wZXJ0eSB2YWx1ZSwgc2ltaWxhciB0byBob3dcbiAqIGBTeW1ib2wuSXRlcmFibGVgIGNhbiBiZSB1c2VkIHRvIHJldHVybiBhbiBgSXRlcmFibGVgIGZyb20gYW4gYEl0ZXJhdG9yYC5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYFR5cGVTY3JpcHRcbiAqIGltcG9ydCB7IHBlZXJEaXNjb3ZlcnksIFBlZXJEaXNjb3ZlcnkgfSBmcm9tICdAbGlicDJwL3BlZXItZGlzY292ZXJ5J1xuICpcbiAqIGNsYXNzIE15UGVlckRpc2NvdmVyZXIgaW1wbGVtZW50cyBQZWVyRGlzY292ZXJ5IHtcbiAqICAgZ2V0IFtwZWVyRGlzY292ZXJ5XSAoKSB7XG4gKiAgICAgcmV0dXJuIHRoaXNcbiAqICAgfVxuICpcbiAqICAgLy8gLi4ub3RoZXIgbWV0aG9kc1xuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBwZWVyRGlzY292ZXJ5U3ltYm9sID0gU3ltYm9sLmZvcignQGxpYnAycC9wZWVyLWRpc2NvdmVyeScpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbInBlZXJEaXNjb3ZlcnlTeW1ib2wiLCJTeW1ib2wiLCJmb3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/interface/dist/src/peer-discovery/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/interface/dist/src/peer-id/index.js":
/*!******************************************************************!*\
!*** ./node_modules/@libp2p/interface/dist/src/peer-id/index.js ***!
\******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isPeerId: () => (/* binding */ isPeerId),\n/* harmony export */ peerIdSymbol: () => (/* binding */ peerIdSymbol)\n/* harmony export */ });\nconst peerIdSymbol = Symbol.for(\"@libp2p/peer-id\");\nfunction isPeerId(other) {\n return other != null && Boolean(other[peerIdSymbol]);\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9pbnRlcmZhY2UvZGlzdC9zcmMvcGVlci1pZC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFPLE1BQU1BLGVBQWVDLE9BQU9DLEdBQUcsQ0FBQyxtQkFBbUI7QUFDbkQsU0FBU0MsU0FBU0MsS0FBSztJQUMxQixPQUFPQSxTQUFTLFFBQVFDLFFBQVFELEtBQUssQ0FBQ0osYUFBYTtBQUN2RCxFQUNBLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvaW50ZXJmYWNlL2Rpc3Qvc3JjL3BlZXItaWQvaW5kZXguanM/ZGZkMSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgcGVlcklkU3ltYm9sID0gU3ltYm9sLmZvcignQGxpYnAycC9wZWVyLWlkJyk7XG5leHBvcnQgZnVuY3Rpb24gaXNQZWVySWQob3RoZXIpIHtcbiAgICByZXR1cm4gb3RoZXIgIT0gbnVsbCAmJiBCb29sZWFuKG90aGVyW3BlZXJJZFN5bWJvbF0pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbInBlZXJJZFN5bWJvbCIsIlN5bWJvbCIsImZvciIsImlzUGVlcklkIiwib3RoZXIiLCJCb29sZWFuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/interface/dist/src/peer-id/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/interface/dist/src/peer-routing/index.js":
/*!***********************************************************************!*\
!*** ./node_modules/@libp2p/interface/dist/src/peer-routing/index.js ***!
\***********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ peerRoutingSymbol: () => (/* binding */ peerRoutingSymbol)\n/* harmony export */ });\n/**\n * Any object that implements this Symbol as a property should return a\n * PeerRouting instance as the property value, similar to how\n * `Symbol.Iterable` can be used to return an `Iterable` from an `Iterator`.\n *\n * @example\n *\n * ```TypeScript\n * import { peerRouting, PeerRouting } from '@libp2p/peer-routing'\n *\n * class MyPeerRouter implements PeerRouting {\n * get [peerRouting] () {\n * return this\n * }\n *\n * // ...other methods\n * }\n * ```\n */ const peerRoutingSymbol = Symbol.for(\"@libp2p/peer-routing\"); //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9pbnRlcmZhY2UvZGlzdC9zcmMvcGVlci1yb3V0aW5nL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBa0JDLEdBQ00sTUFBTUEsb0JBQW9CQyxPQUFPQyxHQUFHLENBQUMsd0JBQXdCLENBQ3BFLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvaW50ZXJmYWNlL2Rpc3Qvc3JjL3BlZXItcm91dGluZy9pbmRleC5qcz9hZWJkIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQW55IG9iamVjdCB0aGF0IGltcGxlbWVudHMgdGhpcyBTeW1ib2wgYXMgYSBwcm9wZXJ0eSBzaG91bGQgcmV0dXJuIGFcbiAqIFBlZXJSb3V0aW5nIGluc3RhbmNlIGFzIHRoZSBwcm9wZXJ0eSB2YWx1ZSwgc2ltaWxhciB0byBob3dcbiAqIGBTeW1ib2wuSXRlcmFibGVgIGNhbiBiZSB1c2VkIHRvIHJldHVybiBhbiBgSXRlcmFibGVgIGZyb20gYW4gYEl0ZXJhdG9yYC5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYFR5cGVTY3JpcHRcbiAqIGltcG9ydCB7IHBlZXJSb3V0aW5nLCBQZWVyUm91dGluZyB9IGZyb20gJ0BsaWJwMnAvcGVlci1yb3V0aW5nJ1xuICpcbiAqIGNsYXNzIE15UGVlclJvdXRlciBpbXBsZW1lbnRzIFBlZXJSb3V0aW5nIHtcbiAqICAgZ2V0IFtwZWVyUm91dGluZ10gKCkge1xuICogICAgIHJldHVybiB0aGlzXG4gKiAgIH1cbiAqXG4gKiAgIC8vIC4uLm90aGVyIG1ldGhvZHNcbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgcGVlclJvdXRpbmdTeW1ib2wgPSBTeW1ib2wuZm9yKCdAbGlicDJwL3BlZXItcm91dGluZycpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbInBlZXJSb3V0aW5nU3ltYm9sIiwiU3ltYm9sIiwiZm9yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/interface/dist/src/peer-routing/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/interface/dist/src/peer-store/tags.js":
/*!********************************************************************!*\
!*** ./node_modules/@libp2p/interface/dist/src/peer-store/tags.js ***!
\********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ KEEP_ALIVE: () => (/* binding */ KEEP_ALIVE)\n/* harmony export */ });\nconst KEEP_ALIVE = \"keep-alive\"; //# sourceMappingURL=tags.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9pbnRlcmZhY2UvZGlzdC9zcmMvcGVlci1zdG9yZS90YWdzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxNQUFNQSxhQUFhLGFBQWEsQ0FDdkMsZ0NBQWdDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9pbnRlcmZhY2UvZGlzdC9zcmMvcGVlci1zdG9yZS90YWdzLmpzP2Y5ZWMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEtFRVBfQUxJVkUgPSAna2VlcC1hbGl2ZSc7XG4vLyMgc291cmNlTWFwcGluZ1VSTD10YWdzLmpzLm1hcCJdLCJuYW1lcyI6WyJLRUVQX0FMSVZFIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/interface/dist/src/peer-store/tags.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/interface/dist/src/pubsub/index.js":
/*!*****************************************************************!*\
!*** ./node_modules/@libp2p/interface/dist/src/pubsub/index.js ***!
\*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ StrictNoSign: () => (/* binding */ StrictNoSign),\n/* harmony export */ StrictSign: () => (/* binding */ StrictSign),\n/* harmony export */ TopicValidatorResult: () => (/* binding */ TopicValidatorResult)\n/* harmony export */ });\n/**\n * On the producing side:\n * * Build messages with the signature, key (from may be enough for certain inlineable public key types), from and seqno fields.\n *\n * On the consuming side:\n * * Enforce the fields to be present, reject otherwise.\n * * Propagate only if the fields are valid and signature can be verified, reject otherwise.\n */ const StrictSign = \"StrictSign\";\n/**\n * On the producing side:\n * * Build messages without the signature, key, from and seqno fields.\n * * The corresponding protobuf key-value pairs are absent from the marshalled message, not just empty.\n *\n * On the consuming side:\n * * Enforce the fields to be absent, reject otherwise.\n * * Propagate only if the fields are absent, reject otherwise.\n * * A message_id function will not be able to use the above fields, and should instead rely on the data field. A commonplace strategy is to calculate a hash.\n */ const StrictNoSign = \"StrictNoSign\";\nvar TopicValidatorResult;\n(function(TopicValidatorResult) {\n /**\n * The message is considered valid, and it should be delivered and forwarded to the network\n */ TopicValidatorResult[\"Accept\"] = \"accept\";\n /**\n * The message is neither delivered nor forwarded to the network\n */ TopicValidatorResult[\"Ignore\"] = \"ignore\";\n /**\n * The message is considered invalid, and it should be rejected\n */ TopicValidatorResult[\"Reject\"] = \"reject\";\n})(TopicValidatorResult || (TopicValidatorResult = {})); //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9pbnRlcmZhY2UvZGlzdC9zcmMvcHVic3ViL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7Ozs7O0NBT0MsR0FDTSxNQUFNQSxhQUFhLGFBQWE7QUFDdkM7Ozs7Ozs7OztDQVNDLEdBQ00sTUFBTUMsZUFBZSxlQUFlO0FBQ3BDLElBQUlDLHFCQUFxQjtBQUMvQixVQUFVQSxvQkFBb0I7SUFDM0I7O0tBRUMsR0FDREEsb0JBQW9CLENBQUMsU0FBUyxHQUFHO0lBQ2pDOztLQUVDLEdBQ0RBLG9CQUFvQixDQUFDLFNBQVMsR0FBRztJQUNqQzs7S0FFQyxHQUNEQSxvQkFBb0IsQ0FBQyxTQUFTLEdBQUc7QUFDckMsR0FBR0Esd0JBQXlCQSxDQUFBQSx1QkFBdUIsQ0FBQyxLQUNwRCxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL2ludGVyZmFjZS9kaXN0L3NyYy9wdWJzdWIvaW5kZXguanM/NzU1NiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE9uIHRoZSBwcm9kdWNpbmcgc2lkZTpcbiAqICogQnVpbGQgbWVzc2FnZXMgd2l0aCB0aGUgc2lnbmF0dXJlLCBrZXkgKGZyb20gbWF5IGJlIGVub3VnaCBmb3IgY2VydGFpbiBpbmxpbmVhYmxlIHB1YmxpYyBrZXkgdHlwZXMpLCBmcm9tIGFuZCBzZXFubyBmaWVsZHMuXG4gKlxuICogT24gdGhlIGNvbnN1bWluZyBzaWRlOlxuICogKiBFbmZvcmNlIHRoZSBmaWVsZHMgdG8gYmUgcHJlc2VudCwgcmVqZWN0IG90aGVyd2lzZS5cbiAqICogUHJvcGFnYXRlIG9ubHkgaWYgdGhlIGZpZWxkcyBhcmUgdmFsaWQgYW5kIHNpZ25hdHVyZSBjYW4gYmUgdmVyaWZpZWQsIHJlamVjdCBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBjb25zdCBTdHJpY3RTaWduID0gJ1N0cmljdFNpZ24nO1xuLyoqXG4gKiBPbiB0aGUgcHJvZHVjaW5nIHNpZGU6XG4gKiAqIEJ1aWxkIG1lc3NhZ2VzIHdpdGhvdXQgdGhlIHNpZ25hdHVyZSwga2V5LCBmcm9tIGFuZCBzZXFubyBmaWVsZHMuXG4gKiAqIFRoZSBjb3JyZXNwb25kaW5nIHByb3RvYnVmIGtleS12YWx1ZSBwYWlycyBhcmUgYWJzZW50IGZyb20gdGhlIG1hcnNoYWxsZWQgbWVzc2FnZSwgbm90IGp1c3QgZW1wdHkuXG4gKlxuICogT24gdGhlIGNvbnN1bWluZyBzaWRlOlxuICogKiBFbmZvcmNlIHRoZSBmaWVsZHMgdG8gYmUgYWJzZW50LCByZWplY3Qgb3RoZXJ3aXNlLlxuICogKiBQcm9wYWdhdGUgb25seSBpZiB0aGUgZmllbGRzIGFyZSBhYnNlbnQsIHJlamVjdCBvdGhlcndpc2UuXG4gKiAqIEEgbWVzc2FnZV9pZCBmdW5jdGlvbiB3aWxsIG5vdCBiZSBhYmxlIHRvIHVzZSB0aGUgYWJvdmUgZmllbGRzLCBhbmQgc2hvdWxkIGluc3RlYWQgcmVseSBvbiB0aGUgZGF0YSBmaWVsZC4gQSBjb21tb25wbGFjZSBzdHJhdGVneSBpcyB0byBjYWxjdWxhdGUgYSBoYXNoLlxuICovXG5leHBvcnQgY29uc3QgU3RyaWN0Tm9TaWduID0gJ1N0cmljdE5vU2lnbic7XG5leHBvcnQgdmFyIFRvcGljVmFsaWRhdG9yUmVzdWx0O1xuKGZ1bmN0aW9uIChUb3BpY1ZhbGlkYXRvclJlc3VsdCkge1xuICAgIC8qKlxuICAgICAqIFRoZSBtZXNzYWdlIGlzIGNvbnNpZGVyZWQgdmFsaWQsIGFuZCBpdCBzaG91bGQgYmUgZGVsaXZlcmVkIGFuZCBmb3J3YXJkZWQgdG8gdGhlIG5ldHdvcmtcbiAgICAgKi9cbiAgICBUb3BpY1ZhbGlkYXRvclJlc3VsdFtcIkFjY2VwdFwiXSA9IFwiYWNjZXB0XCI7XG4gICAgLyoqXG4gICAgICogVGhlIG1lc3NhZ2UgaXMgbmVpdGhlciBkZWxpdmVyZWQgbm9yIGZvcndhcmRlZCB0byB0aGUgbmV0d29ya1xuICAgICAqL1xuICAgIFRvcGljVmFsaWRhdG9yUmVzdWx0W1wiSWdub3JlXCJdID0gXCJpZ25vcmVcIjtcbiAgICAvKipcbiAgICAgKiBUaGUgbWVzc2FnZSBpcyBjb25zaWRlcmVkIGludmFsaWQsIGFuZCBpdCBzaG91bGQgYmUgcmVqZWN0ZWRcbiAgICAgKi9cbiAgICBUb3BpY1ZhbGlkYXRvclJlc3VsdFtcIlJlamVjdFwiXSA9IFwicmVqZWN0XCI7XG59KShUb3BpY1ZhbGlkYXRvclJlc3VsdCB8fCAoVG9waWNWYWxpZGF0b3JSZXN1bHQgPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbIlN0cmljdFNpZ24iLCJTdHJpY3ROb1NpZ24iLCJUb3BpY1ZhbGlkYXRvclJlc3VsdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/interface/dist/src/pubsub/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/interface/dist/src/startable.js":
/*!**************************************************************!*\
!*** ./node_modules/@libp2p/interface/dist/src/startable.js ***!
\**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isStartable: () => (/* binding */ isStartable),\n/* harmony export */ start: () => (/* binding */ start),\n/* harmony export */ stop: () => (/* binding */ stop)\n/* harmony export */ });\nfunction isStartable(obj) {\n return obj != null && typeof obj.start === \"function\" && typeof obj.stop === \"function\";\n}\nasync function start(...objs) {\n const startables = [];\n for (const obj of objs){\n if (isStartable(obj)) {\n startables.push(obj);\n }\n }\n await Promise.all(startables.map(async (s)=>{\n if (s.beforeStart != null) {\n await s.beforeStart();\n }\n }));\n await Promise.all(startables.map(async (s)=>{\n await s.start();\n }));\n await Promise.all(startables.map(async (s)=>{\n if (s.afterStart != null) {\n await s.afterStart();\n }\n }));\n}\nasync function stop(...objs) {\n const startables = [];\n for (const obj of objs){\n if (isStartable(obj)) {\n startables.push(obj);\n }\n }\n await Promise.all(startables.map(async (s)=>{\n if (s.beforeStop != null) {\n await s.beforeStop();\n }\n }));\n await Promise.all(startables.map(async (s)=>{\n await s.stop();\n }));\n await Promise.all(startables.map(async (s)=>{\n if (s.afterStop != null) {\n await s.afterStop();\n }\n }));\n} //# sourceMappingURL=startable.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9pbnRlcmZhY2UvZGlzdC9zcmMvc3RhcnRhYmxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLFNBQVNBLFlBQVlDLEdBQUc7SUFDM0IsT0FBT0EsT0FBTyxRQUFRLE9BQU9BLElBQUlDLEtBQUssS0FBSyxjQUFjLE9BQU9ELElBQUlFLElBQUksS0FBSztBQUNqRjtBQUNPLGVBQWVELE1BQU0sR0FBR0UsSUFBSTtJQUMvQixNQUFNQyxhQUFhLEVBQUU7SUFDckIsS0FBSyxNQUFNSixPQUFPRyxLQUFNO1FBQ3BCLElBQUlKLFlBQVlDLE1BQU07WUFDbEJJLFdBQVdDLElBQUksQ0FBQ0w7UUFDcEI7SUFDSjtJQUNBLE1BQU1NLFFBQVFDLEdBQUcsQ0FBQ0gsV0FBV0ksR0FBRyxDQUFDLE9BQU9DO1FBQ3BDLElBQUlBLEVBQUVDLFdBQVcsSUFBSSxNQUFNO1lBQ3ZCLE1BQU1ELEVBQUVDLFdBQVc7UUFDdkI7SUFDSjtJQUNBLE1BQU1KLFFBQVFDLEdBQUcsQ0FBQ0gsV0FBV0ksR0FBRyxDQUFDLE9BQU9DO1FBQ3BDLE1BQU1BLEVBQUVSLEtBQUs7SUFDakI7SUFDQSxNQUFNSyxRQUFRQyxHQUFHLENBQUNILFdBQVdJLEdBQUcsQ0FBQyxPQUFPQztRQUNwQyxJQUFJQSxFQUFFRSxVQUFVLElBQUksTUFBTTtZQUN0QixNQUFNRixFQUFFRSxVQUFVO1FBQ3RCO0lBQ0o7QUFDSjtBQUNPLGVBQWVULEtBQUssR0FBR0MsSUFBSTtJQUM5QixNQUFNQyxhQUFhLEVBQUU7SUFDckIsS0FBSyxNQUFNSixPQUFPRyxLQUFNO1FBQ3BCLElBQUlKLFlBQVlDLE1BQU07WUFDbEJJLFdBQVdDLElBQUksQ0FBQ0w7UUFDcEI7SUFDSjtJQUNBLE1BQU1NLFFBQVFDLEdBQUcsQ0FBQ0gsV0FBV0ksR0FBRyxDQUFDLE9BQU9DO1FBQ3BDLElBQUlBLEVBQUVHLFVBQVUsSUFBSSxNQUFNO1lBQ3RCLE1BQU1ILEVBQUVHLFVBQVU7UUFDdEI7SUFDSjtJQUNBLE1BQU1OLFFBQVFDLEdBQUcsQ0FBQ0gsV0FBV0ksR0FBRyxDQUFDLE9BQU9DO1FBQ3BDLE1BQU1BLEVBQUVQLElBQUk7SUFDaEI7SUFDQSxNQUFNSSxRQUFRQyxHQUFHLENBQUNILFdBQVdJLEdBQUcsQ0FBQyxPQUFPQztRQUNwQyxJQUFJQSxFQUFFSSxTQUFTLElBQUksTUFBTTtZQUNyQixNQUFNSixFQUFFSSxTQUFTO1FBQ3JCO0lBQ0o7QUFDSixFQUNBLHFDQUFxQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvaW50ZXJmYWNlL2Rpc3Qvc3JjL3N0YXJ0YWJsZS5qcz9lMzVmIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc1N0YXJ0YWJsZShvYmopIHtcbiAgICByZXR1cm4gb2JqICE9IG51bGwgJiYgdHlwZW9mIG9iai5zdGFydCA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2Ygb2JqLnN0b3AgPT09ICdmdW5jdGlvbic7XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3RhcnQoLi4ub2Jqcykge1xuICAgIGNvbnN0IHN0YXJ0YWJsZXMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IG9iaiBvZiBvYmpzKSB7XG4gICAgICAgIGlmIChpc1N0YXJ0YWJsZShvYmopKSB7XG4gICAgICAgICAgICBzdGFydGFibGVzLnB1c2gob2JqKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhd2FpdCBQcm9taXNlLmFsbChzdGFydGFibGVzLm1hcChhc3luYyAocykgPT4ge1xuICAgICAgICBpZiAocy5iZWZvcmVTdGFydCAhPSBudWxsKSB7XG4gICAgICAgICAgICBhd2FpdCBzLmJlZm9yZVN0YXJ0KCk7XG4gICAgICAgIH1cbiAgICB9KSk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoc3RhcnRhYmxlcy5tYXAoYXN5bmMgKHMpID0+IHtcbiAgICAgICAgYXdhaXQgcy5zdGFydCgpO1xuICAgIH0pKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChzdGFydGFibGVzLm1hcChhc3luYyAocykgPT4ge1xuICAgICAgICBpZiAocy5hZnRlclN0YXJ0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGF3YWl0IHMuYWZ0ZXJTdGFydCgpO1xuICAgICAgICB9XG4gICAgfSkpO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0b3AoLi4ub2Jqcykge1xuICAgIGNvbnN0IHN0YXJ0YWJsZXMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IG9iaiBvZiBvYmpzKSB7XG4gICAgICAgIGlmIChpc1N0YXJ0YWJsZShvYmopKSB7XG4gICAgICAgICAgICBzdGFydGFibGVzLnB1c2gob2JqKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhd2FpdCBQcm9taXNlLmFsbChzdGFydGFibGVzLm1hcChhc3luYyAocykgPT4ge1xuICAgICAgICBpZiAocy5iZWZvcmVTdG9wICE9IG51bGwpIHtcbiAgICAgICAgICAgIGF3YWl0IHMuYmVmb3JlU3RvcCgpO1xuICAgICAgICB9XG4gICAgfSkpO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKHN0YXJ0YWJsZXMubWFwKGFzeW5jIChzKSA9PiB7XG4gICAgICAgIGF3YWl0IHMuc3RvcCgpO1xuICAgIH0pKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChzdGFydGFibGVzLm1hcChhc3luYyAocykgPT4ge1xuICAgICAgICBpZiAocy5hZnRlclN0b3AgIT0gbnVsbCkge1xuICAgICAgICAgICAgYXdhaXQgcy5hZnRlclN0b3AoKTtcbiAgICAgICAgfVxuICAgIH0pKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0YXJ0YWJsZS5qcy5tYXAiXSwibmFtZXMiOlsiaXNTdGFydGFibGUiLCJvYmoiLCJzdGFydCIsInN0b3AiLCJvYmpzIiwic3RhcnRhYmxlcyIsInB1c2giLCJQcm9taXNlIiwiYWxsIiwibWFwIiwicyIsImJlZm9yZVN0YXJ0IiwiYWZ0ZXJTdGFydCIsImJlZm9yZVN0b3AiLCJhZnRlclN0b3AiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/interface/dist/src/startable.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/interface/dist/src/transport/index.js":
/*!********************************************************************!*\
!*** ./node_modules/@libp2p/interface/dist/src/transport/index.js ***!
\********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FaultTolerance: () => (/* binding */ FaultTolerance),\n/* harmony export */ isTransport: () => (/* binding */ isTransport),\n/* harmony export */ transportSymbol: () => (/* binding */ transportSymbol)\n/* harmony export */ });\nconst transportSymbol = Symbol.for(\"@libp2p/transport\");\nfunction isTransport(other) {\n return other != null && Boolean(other[transportSymbol]);\n}\n/**\n * Enum Transport Manager Fault Tolerance values\n */ var FaultTolerance;\n(function(FaultTolerance) {\n /**\n * should be used for failing in any listen circumstance\n */ FaultTolerance[FaultTolerance[\"FATAL_ALL\"] = 0] = \"FATAL_ALL\";\n /**\n * should be used for not failing when not listening\n */ FaultTolerance[FaultTolerance[\"NO_FATAL\"] = 1] = \"NO_FATAL\";\n})(FaultTolerance || (FaultTolerance = {})); //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9pbnRlcmZhY2UvZGlzdC9zcmMvdHJhbnNwb3J0L2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLE1BQU1BLGtCQUFrQkMsT0FBT0MsR0FBRyxDQUFDLHFCQUFxQjtBQUN4RCxTQUFTQyxZQUFZQyxLQUFLO0lBQzdCLE9BQU9BLFNBQVMsUUFBUUMsUUFBUUQsS0FBSyxDQUFDSixnQkFBZ0I7QUFDMUQ7QUFDQTs7Q0FFQyxHQUNNLElBQUlNLGVBQWU7QUFDekIsVUFBVUEsY0FBYztJQUNyQjs7S0FFQyxHQUNEQSxjQUFjLENBQUNBLGNBQWMsQ0FBQyxZQUFZLEdBQUcsRUFBRSxHQUFHO0lBQ2xEOztLQUVDLEdBQ0RBLGNBQWMsQ0FBQ0EsY0FBYyxDQUFDLFdBQVcsR0FBRyxFQUFFLEdBQUc7QUFDckQsR0FBR0Esa0JBQW1CQSxDQUFBQSxpQkFBaUIsQ0FBQyxLQUN4QyxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL2ludGVyZmFjZS9kaXN0L3NyYy90cmFuc3BvcnQvaW5kZXguanM/NGNiNSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdHJhbnNwb3J0U3ltYm9sID0gU3ltYm9sLmZvcignQGxpYnAycC90cmFuc3BvcnQnKTtcbmV4cG9ydCBmdW5jdGlvbiBpc1RyYW5zcG9ydChvdGhlcikge1xuICAgIHJldHVybiBvdGhlciAhPSBudWxsICYmIEJvb2xlYW4ob3RoZXJbdHJhbnNwb3J0U3ltYm9sXSk7XG59XG4vKipcbiAqIEVudW0gVHJhbnNwb3J0IE1hbmFnZXIgRmF1bHQgVG9sZXJhbmNlIHZhbHVlc1xuICovXG5leHBvcnQgdmFyIEZhdWx0VG9sZXJhbmNlO1xuKGZ1bmN0aW9uIChGYXVsdFRvbGVyYW5jZSkge1xuICAgIC8qKlxuICAgICAqIHNob3VsZCBiZSB1c2VkIGZvciBmYWlsaW5nIGluIGFueSBsaXN0ZW4gY2lyY3Vtc3RhbmNlXG4gICAgICovXG4gICAgRmF1bHRUb2xlcmFuY2VbRmF1bHRUb2xlcmFuY2VbXCJGQVRBTF9BTExcIl0gPSAwXSA9IFwiRkFUQUxfQUxMXCI7XG4gICAgLyoqXG4gICAgICogc2hvdWxkIGJlIHVzZWQgZm9yIG5vdCBmYWlsaW5nIHdoZW4gbm90IGxpc3RlbmluZ1xuICAgICAqL1xuICAgIEZhdWx0VG9sZXJhbmNlW0ZhdWx0VG9sZXJhbmNlW1wiTk9fRkFUQUxcIl0gPSAxXSA9IFwiTk9fRkFUQUxcIjtcbn0pKEZhdWx0VG9sZXJhbmNlIHx8IChGYXVsdFRvbGVyYW5jZSA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOlsidHJhbnNwb3J0U3ltYm9sIiwiU3ltYm9sIiwiZm9yIiwiaXNUcmFuc3BvcnQiLCJvdGhlciIsIkJvb2xlYW4iLCJGYXVsdFRvbGVyYW5jZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/interface/dist/src/transport/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/logger/dist/src/index.js":
/*!*******************************************************!*\
!*** ./node_modules/@libp2p/logger/dist/src/index.js ***!
\*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ defaultLogger: () => (/* binding */ defaultLogger),\n/* harmony export */ disable: () => (/* binding */ disable),\n/* harmony export */ enable: () => (/* binding */ enable),\n/* harmony export */ enabled: () => (/* binding */ enabled),\n/* harmony export */ logger: () => (/* binding */ logger),\n/* harmony export */ peerLogger: () => (/* binding */ peerLogger),\n/* harmony export */ prefixLogger: () => (/* binding */ prefixLogger)\n/* harmony export */ });\n/* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! debug */ \"(ssr)/./node_modules/debug/src/index.js\");\n/* harmony import */ var multiformats_bases_base32__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! multiformats/bases/base32 */ \"(ssr)/./node_modules/multiformats/dist/src/bases/base32.js\");\n/* harmony import */ var multiformats_bases_base58__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! multiformats/bases/base58 */ \"(ssr)/./node_modules/multiformats/dist/src/bases/base58.js\");\n/* harmony import */ var multiformats_bases_base64__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! multiformats/bases/base64 */ \"(ssr)/./node_modules/multiformats/dist/src/bases/base64.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils.js */ \"(ssr)/./node_modules/@libp2p/logger/dist/src/utils.js\");\n/**\n * @packageDocumentation\n *\n * A logger for libp2p based on the venerable [debug](https://www.npmjs.com/package/debug) module.\n *\n * @example\n *\n * ```TypeScript\n * import { logger } from '@libp2p/logger'\n *\n * const log = logger('libp2p:my:component:name')\n *\n * try {\n * // an operation\n * log('something happened: %s', 'it was ok')\n * } catch (err) {\n * log.error('something bad happened: %o', err)\n * }\n *\n * log('with this peer: %p', {})\n * log('and this base58btc: %b', Uint8Array.from([0, 1, 2, 3]))\n * log('and this base32: %t', Uint8Array.from([4, 5, 6, 7]))\n * ```\n *\n * ```console\n * $ DEBUG=libp2p:* node index.js\n * something happened: it was ok\n * something bad happened: <stack trace>\n * with this peer: 12D3Foo\n * with this base58btc: Qmfoo\n * with this base32: bafyfoo\n * ```\n */ \n\n\n\n\n// Add a formatter for converting to a base58 string\ndebug__WEBPACK_IMPORTED_MODULE_0__.formatters.b = (v)=>{\n return v == null ? \"undefined\" : multiformats_bases_base58__WEBPACK_IMPORTED_MODULE_2__.base58btc.baseEncode(v);\n};\n// Add a formatter for converting to a base32 string\ndebug__WEBPACK_IMPORTED_MODULE_0__.formatters.t = (v)=>{\n return v == null ? \"undefined\" : multiformats_bases_base32__WEBPACK_IMPORTED_MODULE_1__.base32.baseEncode(v);\n};\n// Add a formatter for converting to a base64 string\ndebug__WEBPACK_IMPORTED_MODULE_0__.formatters.m = (v)=>{\n return v == null ? \"undefined\" : multiformats_bases_base64__WEBPACK_IMPORTED_MODULE_3__.base64.baseEncode(v);\n};\n// Add a formatter for stringifying peer ids\ndebug__WEBPACK_IMPORTED_MODULE_0__.formatters.p = (v)=>{\n return v == null ? \"undefined\" : v.toString();\n};\n// Add a formatter for stringifying CIDs\ndebug__WEBPACK_IMPORTED_MODULE_0__.formatters.c = (v)=>{\n return v == null ? \"undefined\" : v.toString();\n};\n// Add a formatter for stringifying Datastore keys\ndebug__WEBPACK_IMPORTED_MODULE_0__.formatters.k = (v)=>{\n return v == null ? \"undefined\" : v.toString();\n};\n// Add a formatter for stringifying Multiaddrs\ndebug__WEBPACK_IMPORTED_MODULE_0__.formatters.a = (v)=>{\n return v == null ? \"undefined\" : v.toString();\n};\nfunction createDisabledLogger(namespace) {\n const logger = ()=>{};\n logger.enabled = false;\n logger.color = \"\";\n logger.diff = 0;\n logger.log = ()=>{};\n logger.namespace = namespace;\n logger.destroy = ()=>true;\n logger.extend = ()=>logger;\n return logger;\n}\n/**\n * Create a component logger that will prefix any log messages with a truncated\n * peer id.\n *\n * @example\n *\n * ```TypeScript\n * import { peerLogger } from '@libp2p/logger'\n * import { peerIdFromString } from '@libp2p/peer-id'\n *\n * const peerId = peerIdFromString('12D3FooBar')\n * const logger = peerLogger(peerId)\n *\n * const log = logger.forComponent('my-component')\n * log.info('hello world')\n * // logs \"12…oBar:my-component hello world\"\n * ```\n */ function peerLogger(peerId, options = {}) {\n return prefixLogger((0,_utils_js__WEBPACK_IMPORTED_MODULE_4__.truncatePeerId)(peerId, options));\n}\n/**\n * Create a component logger that will prefix any log messages with the passed\n * string.\n *\n * @example\n *\n * ```TypeScript\n * import { prefixLogger } from '@libp2p/logger'\n *\n * const logger = prefixLogger('my-node')\n *\n * const log = logger.forComponent('my-component')\n * log.info('hello world')\n * // logs \"my-node:my-component hello world\"\n * ```\n */ function prefixLogger(prefix) {\n return {\n forComponent (name) {\n return logger(`${prefix}:${name}`);\n }\n };\n}\n/**\n * Create a component logger\n *\n * @example\n *\n * ```TypeScript\n * import { defaultLogger } from '@libp2p/logger'\n * import { peerIdFromString } from '@libp2p/peer-id'\n *\n * const logger = defaultLogger()\n *\n * const log = logger.forComponent('my-component')\n * log.info('hello world')\n * // logs \"my-component hello world\"\n * ```\n */ function defaultLogger() {\n return {\n forComponent (name) {\n return logger(name);\n }\n };\n}\n/**\n * Creates a logger for the passed component name.\n *\n * @example\n *\n * ```TypeScript\n * import { logger } from '@libp2p/logger'\n *\n * const log = logger('my-component')\n * log.info('hello world')\n * // logs \"my-component hello world\"\n * ```\n */ function logger(name) {\n // trace logging is a no-op by default\n let trace = createDisabledLogger(`${name}:trace`);\n // look at all the debug names and see if trace logging has explicitly been enabled\n if (debug__WEBPACK_IMPORTED_MODULE_0__.enabled(`${name}:trace`) && debug__WEBPACK_IMPORTED_MODULE_0__.names.map((r)=>r.toString()).find((n)=>n.includes(\":trace\")) != null) {\n trace = debug__WEBPACK_IMPORTED_MODULE_0__(`${name}:trace`);\n }\n return Object.assign(debug__WEBPACK_IMPORTED_MODULE_0__(name), {\n error: debug__WEBPACK_IMPORTED_MODULE_0__(`${name}:error`),\n trace\n });\n}\nfunction disable() {\n debug__WEBPACK_IMPORTED_MODULE_0__.disable();\n}\nfunction enable(namespaces) {\n debug__WEBPACK_IMPORTED_MODULE_0__.enable(namespaces);\n}\nfunction enabled(namespaces) {\n return debug__WEBPACK_IMPORTED_MODULE_0__.enabled(namespaces);\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9sb2dnZXIvZGlzdC9zcmMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBZ0NDLEdBQ3lCO0FBQ3lCO0FBQ0c7QUFDSDtBQUNQO0FBQzVDLG9EQUFvRDtBQUNwREEsNkNBQWdCLENBQUNNLENBQUMsR0FBRyxDQUFDQztJQUNsQixPQUFPQSxLQUFLLE9BQU8sY0FBY0wsZ0VBQVNBLENBQUNNLFVBQVUsQ0FBQ0Q7QUFDMUQ7QUFDQSxvREFBb0Q7QUFDcERQLDZDQUFnQixDQUFDUyxDQUFDLEdBQUcsQ0FBQ0Y7SUFDbEIsT0FBT0EsS0FBSyxPQUFPLGNBQWNOLDZEQUFNQSxDQUFDTyxVQUFVLENBQUNEO0FBQ3ZEO0FBQ0Esb0RBQW9EO0FBQ3BEUCw2Q0FBZ0IsQ0FBQ1UsQ0FBQyxHQUFHLENBQUNIO0lBQ2xCLE9BQU9BLEtBQUssT0FBTyxjQUFjSiw2REFBTUEsQ0FBQ0ssVUFBVSxDQUFDRDtBQUN2RDtBQUNBLDRDQUE0QztBQUM1Q1AsNkNBQWdCLENBQUNXLENBQUMsR0FBRyxDQUFDSjtJQUNsQixPQUFPQSxLQUFLLE9BQU8sY0FBY0EsRUFBRUssUUFBUTtBQUMvQztBQUNBLHdDQUF3QztBQUN4Q1osNkNBQWdCLENBQUNhLENBQUMsR0FBRyxDQUFDTjtJQUNsQixPQUFPQSxLQUFLLE9BQU8sY0FBY0EsRUFBRUssUUFBUTtBQUMvQztBQUNBLGtEQUFrRDtBQUNsRFosNkNBQWdCLENBQUNjLENBQUMsR0FBRyxDQUFDUDtJQUNsQixPQUFPQSxLQUFLLE9BQU8sY0FBY0EsRUFBRUssUUFBUTtBQUMvQztBQUNBLDhDQUE4QztBQUM5Q1osNkNBQWdCLENBQUNlLENBQUMsR0FBRyxDQUFDUjtJQUNsQixPQUFPQSxLQUFLLE9BQU8sY0FBY0EsRUFBRUssUUFBUTtBQUMvQztBQUNBLFNBQVNJLHFCQUFxQkMsU0FBUztJQUNuQyxNQUFNQyxTQUFTLEtBQVE7SUFDdkJBLE9BQU9DLE9BQU8sR0FBRztJQUNqQkQsT0FBT0UsS0FBSyxHQUFHO0lBQ2ZGLE9BQU9HLElBQUksR0FBRztJQUNkSCxPQUFPSSxHQUFHLEdBQUcsS0FBUTtJQUNyQkosT0FBT0QsU0FBUyxHQUFHQTtJQUNuQkMsT0FBT0ssT0FBTyxHQUFHLElBQU07SUFDdkJMLE9BQU9NLE1BQU0sR0FBRyxJQUFNTjtJQUN0QixPQUFPQTtBQUNYO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUJDLEdBQ00sU0FBU08sV0FBV0MsTUFBTSxFQUFFQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxPQUFPQyxhQUFheEIseURBQWNBLENBQUNzQixRQUFRQztBQUMvQztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Q0FlQyxHQUNNLFNBQVNDLGFBQWFDLE1BQU07SUFDL0IsT0FBTztRQUNIQyxjQUFhQyxJQUFJO1lBQ2IsT0FBT2IsT0FBTyxDQUFDLEVBQUVXLE9BQU8sQ0FBQyxFQUFFRSxLQUFLLENBQUM7UUFDckM7SUFDSjtBQUNKO0FBQ0E7Ozs7Ozs7Ozs7Ozs7OztDQWVDLEdBQ00sU0FBU0M7SUFDWixPQUFPO1FBQ0hGLGNBQWFDLElBQUk7WUFDYixPQUFPYixPQUFPYTtRQUNsQjtJQUNKO0FBQ0o7QUFDQTs7Ozs7Ozs7Ozs7O0NBWUMsR0FDTSxTQUFTYixPQUFPYSxJQUFJO0lBQ3ZCLHNDQUFzQztJQUN0QyxJQUFJRSxRQUFRakIscUJBQXFCLENBQUMsRUFBRWUsS0FBSyxNQUFNLENBQUM7SUFDaEQsbUZBQW1GO0lBQ25GLElBQUkvQiwwQ0FBYSxDQUFDLENBQUMsRUFBRStCLEtBQUssTUFBTSxDQUFDLEtBQUsvQix3Q0FBVyxDQUFDbUMsR0FBRyxDQUFDQyxDQUFBQSxJQUFLQSxFQUFFeEIsUUFBUSxJQUFJeUIsSUFBSSxDQUFDQyxDQUFBQSxJQUFLQSxFQUFFQyxRQUFRLENBQUMsY0FBYyxNQUFNO1FBQzlHTixRQUFRakMsa0NBQUtBLENBQUMsQ0FBQyxFQUFFK0IsS0FBSyxNQUFNLENBQUM7SUFDakM7SUFDQSxPQUFPUyxPQUFPQyxNQUFNLENBQUN6QyxrQ0FBS0EsQ0FBQytCLE9BQU87UUFDOUJXLE9BQU8xQyxrQ0FBS0EsQ0FBQyxDQUFDLEVBQUUrQixLQUFLLE1BQU0sQ0FBQztRQUM1QkU7SUFDSjtBQUNKO0FBQ08sU0FBU1U7SUFDWjNDLDBDQUFhO0FBQ2pCO0FBQ08sU0FBUzRDLE9BQU9DLFVBQVU7SUFDN0I3Qyx5Q0FBWSxDQUFDNkM7QUFDakI7QUFDTyxTQUFTMUIsUUFBUTBCLFVBQVU7SUFDOUIsT0FBTzdDLDBDQUFhLENBQUM2QztBQUN6QixFQUNBLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvbG9nZ2VyL2Rpc3Qvc3JjL2luZGV4LmpzPzY5NmUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBBIGxvZ2dlciBmb3IgbGlicDJwIGJhc2VkIG9uIHRoZSB2ZW5lcmFibGUgW2RlYnVnXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9kZWJ1ZykgbW9kdWxlLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBgVHlwZVNjcmlwdFxuICogaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnQGxpYnAycC9sb2dnZXInXG4gKlxuICogY29uc3QgbG9nID0gbG9nZ2VyKCdsaWJwMnA6bXk6Y29tcG9uZW50Om5hbWUnKVxuICpcbiAqIHRyeSB7XG4gKiAgIC8vIGFuIG9wZXJhdGlvblxuICogICBsb2coJ3NvbWV0aGluZyBoYXBwZW5lZDogJXMnLCAnaXQgd2FzIG9rJylcbiAqIH0gY2F0Y2ggKGVycikge1xuICogICBsb2cuZXJyb3IoJ3NvbWV0aGluZyBiYWQgaGFwcGVuZWQ6ICVvJywgZXJyKVxuICogfVxuICpcbiAqIGxvZygnd2l0aCB0aGlzIHBlZXI6ICVwJywge30pXG4gKiBsb2coJ2FuZCB0aGlzIGJhc2U1OGJ0YzogJWInLCBVaW50OEFycmF5LmZyb20oWzAsIDEsIDIsIDNdKSlcbiAqIGxvZygnYW5kIHRoaXMgYmFzZTMyOiAldCcsIFVpbnQ4QXJyYXkuZnJvbShbNCwgNSwgNiwgN10pKVxuICogYGBgXG4gKlxuICogYGBgY29uc29sZVxuICogJCBERUJVRz1saWJwMnA6KiBub2RlIGluZGV4LmpzXG4gKiBzb21ldGhpbmcgaGFwcGVuZWQ6IGl0IHdhcyBva1xuICogc29tZXRoaW5nIGJhZCBoYXBwZW5lZDogPHN0YWNrIHRyYWNlPlxuICogd2l0aCB0aGlzIHBlZXI6IDEyRDNGb29cbiAqIHdpdGggdGhpcyBiYXNlNThidGM6IFFtZm9vXG4gKiB3aXRoIHRoaXMgYmFzZTMyOiBiYWZ5Zm9vXG4gKiBgYGBcbiAqL1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB7IGJhc2UzMiB9IGZyb20gJ211bHRpZm9ybWF0cy9iYXNlcy9iYXNlMzInO1xuaW1wb3J0IHsgYmFzZTU4YnRjIH0gZnJvbSAnbXVsdGlmb3JtYXRzL2Jhc2VzL2Jhc2U1OCc7XG5pbXBvcnQgeyBiYXNlNjQgfSBmcm9tICdtdWx0aWZvcm1hdHMvYmFzZXMvYmFzZTY0JztcbmltcG9ydCB7IHRydW5jYXRlUGVlcklkIH0gZnJvbSAnLi91dGlscy5qcyc7XG4vLyBBZGQgYSBmb3JtYXR0ZXIgZm9yIGNvbnZlcnRpbmcgdG8gYSBiYXNlNTggc3RyaW5nXG5kZWJ1Zy5mb3JtYXR0ZXJzLmIgPSAodikgPT4ge1xuICAgIHJldHVybiB2ID09IG51bGwgPyAndW5kZWZpbmVkJyA6IGJhc2U1OGJ0Yy5iYXNlRW5jb2RlKHYpO1xufTtcbi8vIEFkZCBhIGZvcm1hdHRlciBmb3IgY29udmVydGluZyB0byBhIGJhc2UzMiBzdHJpbmdcbmRlYnVnLmZvcm1hdHRlcnMudCA9ICh2KSA9PiB7XG4gICAgcmV0dXJuIHYgPT0gbnVsbCA/ICd1bmRlZmluZWQnIDogYmFzZTMyLmJhc2VFbmNvZGUodik7XG59O1xuLy8gQWRkIGEgZm9ybWF0dGVyIGZvciBjb252ZXJ0aW5nIHRvIGEgYmFzZTY0IHN0cmluZ1xuZGVidWcuZm9ybWF0dGVycy5tID0gKHYpID0+IHtcbiAgICByZXR1cm4gdiA9PSBudWxsID8gJ3VuZGVmaW5lZCcgOiBiYXNlNjQuYmFzZUVuY29kZSh2KTtcbn07XG4vLyBBZGQgYSBmb3JtYXR0ZXIgZm9yIHN0cmluZ2lmeWluZyBwZWVyIGlkc1xuZGVidWcuZm9ybWF0dGVycy5wID0gKHYpID0+IHtcbiAgICByZXR1cm4gdiA9PSBudWxsID8gJ3VuZGVmaW5lZCcgOiB2LnRvU3RyaW5nKCk7XG59O1xuLy8gQWRkIGEgZm9ybWF0dGVyIGZvciBzdHJpbmdpZnlpbmcgQ0lEc1xuZGVidWcuZm9ybWF0dGVycy5jID0gKHYpID0+IHtcbiAgICByZXR1cm4gdiA9PSBudWxsID8gJ3VuZGVmaW5lZCcgOiB2LnRvU3RyaW5nKCk7XG59O1xuLy8gQWRkIGEgZm9ybWF0dGVyIGZvciBzdHJpbmdpZnlpbmcgRGF0YXN0b3JlIGtleXNcbmRlYnVnLmZvcm1hdHRlcnMuayA9ICh2KSA9PiB7XG4gICAgcmV0dXJuIHYgPT0gbnVsbCA/ICd1bmRlZmluZWQnIDogdi50b1N0cmluZygpO1xufTtcbi8vIEFkZCBhIGZvcm1hdHRlciBmb3Igc3RyaW5naWZ5aW5nIE11bHRpYWRkcnNcbmRlYnVnLmZvcm1hdHRlcnMuYSA9ICh2KSA9PiB7XG4gICAgcmV0dXJuIHYgPT0gbnVsbCA/ICd1bmRlZmluZWQnIDogdi50b1N0cmluZygpO1xufTtcbmZ1bmN0aW9uIGNyZWF0ZURpc2FibGVkTG9nZ2VyKG5hbWVzcGFjZSkge1xuICAgIGNvbnN0IGxvZ2dlciA9ICgpID0+IHsgfTtcbiAgICBsb2dnZXIuZW5hYmxlZCA9IGZhbHNlO1xuICAgIGxvZ2dlci5jb2xvciA9ICcnO1xuICAgIGxvZ2dlci5kaWZmID0gMDtcbiAgICBsb2dnZXIubG9nID0gKCkgPT4geyB9O1xuICAgIGxvZ2dlci5uYW1lc3BhY2UgPSBuYW1lc3BhY2U7XG4gICAgbG9nZ2VyLmRlc3Ryb3kgPSAoKSA9PiB0cnVlO1xuICAgIGxvZ2dlci5leHRlbmQgPSAoKSA9PiBsb2dnZXI7XG4gICAgcmV0dXJuIGxvZ2dlcjtcbn1cbi8qKlxuICogQ3JlYXRlIGEgY29tcG9uZW50IGxvZ2dlciB0aGF0IHdpbGwgcHJlZml4IGFueSBsb2cgbWVzc2FnZXMgd2l0aCBhIHRydW5jYXRlZFxuICogcGVlciBpZC5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYFR5cGVTY3JpcHRcbiAqIGltcG9ydCB7IHBlZXJMb2dnZXIgfSBmcm9tICdAbGlicDJwL2xvZ2dlcidcbiAqIGltcG9ydCB7IHBlZXJJZEZyb21TdHJpbmcgfSBmcm9tICdAbGlicDJwL3BlZXItaWQnXG4gKlxuICogY29uc3QgcGVlcklkID0gcGVlcklkRnJvbVN0cmluZygnMTJEM0Zvb0JhcicpXG4gKiBjb25zdCBsb2dnZXIgPSBwZWVyTG9nZ2VyKHBlZXJJZClcbiAqXG4gKiBjb25zdCBsb2cgPSBsb2dnZXIuZm9yQ29tcG9uZW50KCdteS1jb21wb25lbnQnKVxuICogbG9nLmluZm8oJ2hlbGxvIHdvcmxkJylcbiAqIC8vIGxvZ3MgXCIxMuKApm9CYXI6bXktY29tcG9uZW50IGhlbGxvIHdvcmxkXCJcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGVlckxvZ2dlcihwZWVySWQsIG9wdGlvbnMgPSB7fSkge1xuICAgIHJldHVybiBwcmVmaXhMb2dnZXIodHJ1bmNhdGVQZWVySWQocGVlcklkLCBvcHRpb25zKSk7XG59XG4vKipcbiAqIENyZWF0ZSBhIGNvbXBvbmVudCBsb2dnZXIgdGhhdCB3aWxsIHByZWZpeCBhbnkgbG9nIG1lc3NhZ2VzIHdpdGggdGhlIHBhc3NlZFxuICogc3RyaW5nLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBgVHlwZVNjcmlwdFxuICogaW1wb3J0IHsgcHJlZml4TG9nZ2VyIH0gZnJvbSAnQGxpYnAycC9sb2dnZXInXG4gKlxuICogY29uc3QgbG9nZ2VyID0gcHJlZml4TG9nZ2VyKCdteS1ub2RlJylcbiAqXG4gKiBjb25zdCBsb2cgPSBsb2dnZXIuZm9yQ29tcG9uZW50KCdteS1jb21wb25lbnQnKVxuICogbG9nLmluZm8oJ2hlbGxvIHdvcmxkJylcbiAqIC8vIGxvZ3MgXCJteS1ub2RlOm15LWNvbXBvbmVudCBoZWxsbyB3b3JsZFwiXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZWZpeExvZ2dlcihwcmVmaXgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBmb3JDb21wb25lbnQobmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIGxvZ2dlcihgJHtwcmVmaXh9OiR7bmFtZX1gKTtcbiAgICAgICAgfVxuICAgIH07XG59XG4vKipcbiAqIENyZWF0ZSBhIGNvbXBvbmVudCBsb2dnZXJcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYFR5cGVTY3JpcHRcbiAqIGltcG9ydCB7IGRlZmF1bHRMb2dnZXIgfSBmcm9tICdAbGlicDJwL2xvZ2dlcidcbiAqIGltcG9ydCB7IHBlZXJJZEZyb21TdHJpbmcgfSBmcm9tICdAbGlicDJwL3BlZXItaWQnXG4gKlxuICogY29uc3QgbG9nZ2VyID0gZGVmYXVsdExvZ2dlcigpXG4gKlxuICogY29uc3QgbG9nID0gbG9nZ2VyLmZvckNvbXBvbmVudCgnbXktY29tcG9uZW50JylcbiAqIGxvZy5pbmZvKCdoZWxsbyB3b3JsZCcpXG4gKiAvLyBsb2dzIFwibXktY29tcG9uZW50IGhlbGxvIHdvcmxkXCJcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdExvZ2dlcigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBmb3JDb21wb25lbnQobmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIGxvZ2dlcihuYW1lKTtcbiAgICAgICAgfVxuICAgIH07XG59XG4vKipcbiAqIENyZWF0ZXMgYSBsb2dnZXIgZm9yIHRoZSBwYXNzZWQgY29tcG9uZW50IG5hbWUuXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBUeXBlU2NyaXB0XG4gKiBpbXBvcnQgeyBsb2dnZXIgfSBmcm9tICdAbGlicDJwL2xvZ2dlcidcbiAqXG4gKiBjb25zdCBsb2cgPSBsb2dnZXIoJ215LWNvbXBvbmVudCcpXG4gKiBsb2cuaW5mbygnaGVsbG8gd29ybGQnKVxuICogLy8gbG9ncyBcIm15LWNvbXBvbmVudCBoZWxsbyB3b3JsZFwiXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvZ2dlcihuYW1lKSB7XG4gICAgLy8gdHJhY2UgbG9nZ2luZyBpcyBhIG5vLW9wIGJ5IGRlZmF1bHRcbiAgICBsZXQgdHJhY2UgPSBjcmVhdGVEaXNhYmxlZExvZ2dlcihgJHtuYW1lfTp0cmFjZWApO1xuICAgIC8vIGxvb2sgYXQgYWxsIHRoZSBkZWJ1ZyBuYW1lcyBhbmQgc2VlIGlmIHRyYWNlIGxvZ2dpbmcgaGFzIGV4cGxpY2l0bHkgYmVlbiBlbmFibGVkXG4gICAgaWYgKGRlYnVnLmVuYWJsZWQoYCR7bmFtZX06dHJhY2VgKSAmJiBkZWJ1Zy5uYW1lcy5tYXAociA9PiByLnRvU3RyaW5nKCkpLmZpbmQobiA9PiBuLmluY2x1ZGVzKCc6dHJhY2UnKSkgIT0gbnVsbCkge1xuICAgICAgICB0cmFjZSA9IGRlYnVnKGAke25hbWV9OnRyYWNlYCk7XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGRlYnVnKG5hbWUpLCB7XG4gICAgICAgIGVycm9yOiBkZWJ1ZyhgJHtuYW1lfTplcnJvcmApLFxuICAgICAgICB0cmFjZVxuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGRpc2FibGUoKSB7XG4gICAgZGVidWcuZGlzYWJsZSgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGVuYWJsZShuYW1lc3BhY2VzKSB7XG4gICAgZGVidWcuZW5hYmxlKG5hbWVzcGFjZXMpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGVuYWJsZWQobmFtZXNwYWNlcykge1xuICAgIHJldHVybiBkZWJ1Zy5lbmFibGVkKG5hbWVzcGFjZXMpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbImRlYnVnIiwiYmFzZTMyIiwiYmFzZTU4YnRjIiwiYmFzZTY0IiwidHJ1bmNhdGVQZWVySWQiLCJmb3JtYXR0ZXJzIiwiYiIsInYiLCJiYXNlRW5jb2RlIiwidCIsIm0iLCJwIiwidG9TdHJpbmciLCJjIiwiayIsImEiLCJjcmVhdGVEaXNhYmxlZExvZ2dlciIsIm5hbWVzcGFjZSIsImxvZ2dlciIsImVuYWJsZWQiLCJjb2xvciIsImRpZmYiLCJsb2ciLCJkZXN0cm95IiwiZXh0ZW5kIiwicGVlckxvZ2dlciIsInBlZXJJZCIsIm9wdGlvbnMiLCJwcmVmaXhMb2dnZXIiLCJwcmVmaXgiLCJmb3JDb21wb25lbnQiLCJuYW1lIiwiZGVmYXVsdExvZ2dlciIsInRyYWNlIiwibmFtZXMiLCJtYXAiLCJyIiwiZmluZCIsIm4iLCJpbmNsdWRlcyIsIk9iamVjdCIsImFzc2lnbiIsImVycm9yIiwiZGlzYWJsZSIsImVuYWJsZSIsIm5hbWVzcGFjZXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/logger/dist/src/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/logger/dist/src/utils.js":
/*!*******************************************************!*\
!*** ./node_modules/@libp2p/logger/dist/src/utils.js ***!
\*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ truncatePeerId: () => (/* binding */ truncatePeerId)\n/* harmony export */ });\nfunction truncatePeerId(peerId, options = {}) {\n const prefixLength = options.prefixLength ?? 2;\n const suffixLength = options.suffixLength ?? 4;\n const peerIdString = peerId.toString();\n return `${peerIdString.substring(0, prefixLength)}…${peerIdString.substring(peerIdString.length, peerIdString.length - suffixLength)}`;\n} //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9sb2dnZXIvZGlzdC9zcmMvdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPLFNBQVNBLGVBQWVDLE1BQU0sRUFBRUMsVUFBVSxDQUFDLENBQUM7SUFDL0MsTUFBTUMsZUFBZUQsUUFBUUMsWUFBWSxJQUFJO0lBQzdDLE1BQU1DLGVBQWVGLFFBQVFFLFlBQVksSUFBSTtJQUM3QyxNQUFNQyxlQUFlSixPQUFPSyxRQUFRO0lBQ3BDLE9BQU8sQ0FBQyxFQUFFRCxhQUFhRSxTQUFTLENBQUMsR0FBR0osY0FBYyxDQUFDLEVBQUVFLGFBQWFFLFNBQVMsQ0FBQ0YsYUFBYUcsTUFBTSxFQUFFSCxhQUFhRyxNQUFNLEdBQUdKLGNBQWMsQ0FBQztBQUMxSSxFQUNBLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvbG9nZ2VyL2Rpc3Qvc3JjL3V0aWxzLmpzP2E0OWYiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHRydW5jYXRlUGVlcklkKHBlZXJJZCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgcHJlZml4TGVuZ3RoID0gb3B0aW9ucy5wcmVmaXhMZW5ndGggPz8gMjtcbiAgICBjb25zdCBzdWZmaXhMZW5ndGggPSBvcHRpb25zLnN1ZmZpeExlbmd0aCA/PyA0O1xuICAgIGNvbnN0IHBlZXJJZFN0cmluZyA9IHBlZXJJZC50b1N0cmluZygpO1xuICAgIHJldHVybiBgJHtwZWVySWRTdHJpbmcuc3Vic3RyaW5nKDAsIHByZWZpeExlbmd0aCl94oCmJHtwZWVySWRTdHJpbmcuc3Vic3RyaW5nKHBlZXJJZFN0cmluZy5sZW5ndGgsIHBlZXJJZFN0cmluZy5sZW5ndGggLSBzdWZmaXhMZW5ndGgpfWA7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5qcy5tYXAiXSwibmFtZXMiOlsidHJ1bmNhdGVQZWVySWQiLCJwZWVySWQiLCJvcHRpb25zIiwicHJlZml4TGVuZ3RoIiwic3VmZml4TGVuZ3RoIiwicGVlcklkU3RyaW5nIiwidG9TdHJpbmciLCJzdWJzdHJpbmciLCJsZW5ndGgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/logger/dist/src/utils.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/mplex/dist/src/decode.js":
/*!*******************************************************!*\
!*** ./node_modules/@libp2p/mplex/dist/src/decode.js ***!
\*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Decoder: () => (/* binding */ Decoder),\n/* harmony export */ MAX_MSG_QUEUE_SIZE: () => (/* binding */ MAX_MSG_QUEUE_SIZE),\n/* harmony export */ MAX_MSG_SIZE: () => (/* binding */ MAX_MSG_SIZE)\n/* harmony export */ });\n/* harmony import */ var uint8arraylist__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uint8arraylist */ \"(ssr)/./node_modules/uint8arraylist/dist/src/index.js\");\n/* harmony import */ var _message_types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./message-types.js */ \"(ssr)/./node_modules/@libp2p/mplex/dist/src/message-types.js\");\n\n\nconst MAX_MSG_SIZE = 1 << 20; // 1MB\nconst MAX_MSG_QUEUE_SIZE = 4 << 20; // 4MB\nclass Decoder {\n constructor(maxMessageSize = MAX_MSG_SIZE, maxUnprocessedMessageQueueSize = MAX_MSG_QUEUE_SIZE){\n this._buffer = new uint8arraylist__WEBPACK_IMPORTED_MODULE_0__.Uint8ArrayList();\n this._headerInfo = null;\n this._maxMessageSize = maxMessageSize;\n this._maxUnprocessedMessageQueueSize = maxUnprocessedMessageQueueSize;\n }\n write(chunk) {\n if (chunk == null || chunk.length === 0) {\n return [];\n }\n this._buffer.append(chunk);\n if (this._buffer.byteLength > this._maxUnprocessedMessageQueueSize) {\n throw Object.assign(new Error(\"unprocessed message queue size too large!\"), {\n code: \"ERR_MSG_QUEUE_TOO_BIG\"\n });\n }\n const msgs = [];\n while(this._buffer.length !== 0){\n if (this._headerInfo == null) {\n try {\n this._headerInfo = this._decodeHeader(this._buffer);\n } catch (err) {\n if (err.code === \"ERR_MSG_TOO_BIG\") {\n throw err;\n }\n break; // We haven't received enough data yet\n }\n }\n const { id, type, length, offset } = this._headerInfo;\n const bufferedDataLength = this._buffer.length - offset;\n if (bufferedDataLength < length) {\n break; // not enough data yet\n }\n const msg = {\n id,\n type\n };\n if (type === _message_types_js__WEBPACK_IMPORTED_MODULE_1__.MessageTypes.NEW_STREAM || type === _message_types_js__WEBPACK_IMPORTED_MODULE_1__.MessageTypes.MESSAGE_INITIATOR || type === _message_types_js__WEBPACK_IMPORTED_MODULE_1__.MessageTypes.MESSAGE_RECEIVER) {\n msg.data = this._buffer.sublist(offset, offset + length);\n }\n msgs.push(msg);\n this._buffer.consume(offset + length);\n this._headerInfo = null;\n }\n return msgs;\n }\n /**\n * Attempts to decode the message header from the buffer\n */ _decodeHeader(data) {\n const { value: h, offset } = readVarInt(data);\n const { value: length, offset: end } = readVarInt(data, offset);\n const type = h & 7;\n // @ts-expect-error h is a number not a CODE\n if (_message_types_js__WEBPACK_IMPORTED_MODULE_1__.MessageTypeNames[type] == null) {\n throw new Error(`Invalid type received: ${type}`);\n }\n // test message type varint + data length\n if (length > this._maxMessageSize) {\n throw Object.assign(new Error(\"message size too large!\"), {\n code: \"ERR_MSG_TOO_BIG\"\n });\n }\n // @ts-expect-error h is a number not a CODE\n return {\n id: h >> 3,\n type,\n offset: offset + end,\n length\n };\n }\n}\nconst MSB = 0x80;\nconst REST = 0x7F;\nfunction readVarInt(buf, offset = 0) {\n let res = 0;\n let shift = 0;\n let counter = offset;\n let b;\n const l = buf.length;\n do {\n if (counter >= l || shift > 49) {\n offset = 0;\n throw new RangeError(\"Could not decode varint\");\n }\n b = buf.get(counter++);\n res += shift < 28 ? (b & REST) << shift : (b & REST) * Math.pow(2, shift);\n shift += 7;\n }while (b >= MSB);\n offset = counter - offset;\n return {\n value: res,\n offset\n };\n} //# sourceMappingURL=decode.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9tcGxleC9kaXN0L3NyYy9kZWNvZGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBZ0Q7QUFDb0I7QUFDN0QsTUFBTUcsZUFBZSxLQUFLLEdBQUcsQ0FBQyxNQUFNO0FBQ3BDLE1BQU1DLHFCQUFxQixLQUFLLEdBQUcsQ0FBQyxNQUFNO0FBQzFDLE1BQU1DO0lBS1RDLFlBQVlDLGlCQUFpQkosWUFBWSxFQUFFSyxpQ0FBaUNKLGtCQUFrQixDQUFFO1FBQzVGLElBQUksQ0FBQ0ssT0FBTyxHQUFHLElBQUlULDBEQUFjQTtRQUNqQyxJQUFJLENBQUNVLFdBQVcsR0FBRztRQUNuQixJQUFJLENBQUNDLGVBQWUsR0FBR0o7UUFDdkIsSUFBSSxDQUFDSywrQkFBK0IsR0FBR0o7SUFDM0M7SUFDQUssTUFBTUMsS0FBSyxFQUFFO1FBQ1QsSUFBSUEsU0FBUyxRQUFRQSxNQUFNQyxNQUFNLEtBQUssR0FBRztZQUNyQyxPQUFPLEVBQUU7UUFDYjtRQUNBLElBQUksQ0FBQ04sT0FBTyxDQUFDTyxNQUFNLENBQUNGO1FBQ3BCLElBQUksSUFBSSxDQUFDTCxPQUFPLENBQUNRLFVBQVUsR0FBRyxJQUFJLENBQUNMLCtCQUErQixFQUFFO1lBQ2hFLE1BQU1NLE9BQU9DLE1BQU0sQ0FBQyxJQUFJQyxNQUFNLDhDQUE4QztnQkFBRUMsTUFBTTtZQUF3QjtRQUNoSDtRQUNBLE1BQU1DLE9BQU8sRUFBRTtRQUNmLE1BQU8sSUFBSSxDQUFDYixPQUFPLENBQUNNLE1BQU0sS0FBSyxFQUFHO1lBQzlCLElBQUksSUFBSSxDQUFDTCxXQUFXLElBQUksTUFBTTtnQkFDMUIsSUFBSTtvQkFDQSxJQUFJLENBQUNBLFdBQVcsR0FBRyxJQUFJLENBQUNhLGFBQWEsQ0FBQyxJQUFJLENBQUNkLE9BQU87Z0JBQ3RELEVBQ0EsT0FBT2UsS0FBSztvQkFDUixJQUFJQSxJQUFJSCxJQUFJLEtBQUssbUJBQW1CO3dCQUNoQyxNQUFNRztvQkFDVjtvQkFDQSxPQUFPLHNDQUFzQztnQkFDakQ7WUFDSjtZQUNBLE1BQU0sRUFBRUMsRUFBRSxFQUFFQyxJQUFJLEVBQUVYLE1BQU0sRUFBRVksTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDakIsV0FBVztZQUNyRCxNQUFNa0IscUJBQXFCLElBQUksQ0FBQ25CLE9BQU8sQ0FBQ00sTUFBTSxHQUFHWTtZQUNqRCxJQUFJQyxxQkFBcUJiLFFBQVE7Z0JBQzdCLE9BQU8sc0JBQXNCO1lBQ2pDO1lBQ0EsTUFBTWMsTUFBTTtnQkFDUko7Z0JBQ0FDO1lBQ0o7WUFDQSxJQUFJQSxTQUFTeEIsMkRBQVlBLENBQUM0QixVQUFVLElBQUlKLFNBQVN4QiwyREFBWUEsQ0FBQzZCLGlCQUFpQixJQUFJTCxTQUFTeEIsMkRBQVlBLENBQUM4QixnQkFBZ0IsRUFBRTtnQkFDdkhILElBQUlJLElBQUksR0FBRyxJQUFJLENBQUN4QixPQUFPLENBQUN5QixPQUFPLENBQUNQLFFBQVFBLFNBQVNaO1lBQ3JEO1lBQ0FPLEtBQUthLElBQUksQ0FBQ047WUFDVixJQUFJLENBQUNwQixPQUFPLENBQUMyQixPQUFPLENBQUNULFNBQVNaO1lBQzlCLElBQUksQ0FBQ0wsV0FBVyxHQUFHO1FBQ3ZCO1FBQ0EsT0FBT1k7SUFDWDtJQUNBOztLQUVDLEdBQ0RDLGNBQWNVLElBQUksRUFBRTtRQUNoQixNQUFNLEVBQUVJLE9BQU9DLENBQUMsRUFBRVgsTUFBTSxFQUFFLEdBQUdZLFdBQVdOO1FBQ3hDLE1BQU0sRUFBRUksT0FBT3RCLE1BQU0sRUFBRVksUUFBUWEsR0FBRyxFQUFFLEdBQUdELFdBQVdOLE1BQU1OO1FBQ3hELE1BQU1ELE9BQU9ZLElBQUk7UUFDakIsNENBQTRDO1FBQzVDLElBQUlyQywrREFBZ0IsQ0FBQ3lCLEtBQUssSUFBSSxNQUFNO1lBQ2hDLE1BQU0sSUFBSU4sTUFBTSxDQUFDLHVCQUF1QixFQUFFTSxLQUFLLENBQUM7UUFDcEQ7UUFDQSx5Q0FBeUM7UUFDekMsSUFBSVgsU0FBUyxJQUFJLENBQUNKLGVBQWUsRUFBRTtZQUMvQixNQUFNTyxPQUFPQyxNQUFNLENBQUMsSUFBSUMsTUFBTSw0QkFBNEI7Z0JBQUVDLE1BQU07WUFBa0I7UUFDeEY7UUFDQSw0Q0FBNEM7UUFDNUMsT0FBTztZQUFFSSxJQUFJYSxLQUFLO1lBQUdaO1lBQU1DLFFBQVFBLFNBQVNhO1lBQUt6QjtRQUFPO0lBQzVEO0FBQ0o7QUFDQSxNQUFNMEIsTUFBTTtBQUNaLE1BQU1DLE9BQU87QUFDYixTQUFTSCxXQUFXSSxHQUFHLEVBQUVoQixTQUFTLENBQUM7SUFDL0IsSUFBSWlCLE1BQU07SUFDVixJQUFJQyxRQUFRO0lBQ1osSUFBSUMsVUFBVW5CO0lBQ2QsSUFBSW9CO0lBQ0osTUFBTUMsSUFBSUwsSUFBSTVCLE1BQU07SUFDcEIsR0FBRztRQUNDLElBQUkrQixXQUFXRSxLQUFLSCxRQUFRLElBQUk7WUFDNUJsQixTQUFTO1lBQ1QsTUFBTSxJQUFJc0IsV0FBVztRQUN6QjtRQUNBRixJQUFJSixJQUFJTyxHQUFHLENBQUNKO1FBQ1pGLE9BQU9DLFFBQVEsS0FDVCxDQUFDRSxJQUFJTCxJQUFHLEtBQU1HLFFBQ2QsQ0FBQ0UsSUFBSUwsSUFBRyxJQUFLUyxLQUFLQyxHQUFHLENBQUMsR0FBR1A7UUFDL0JBLFNBQVM7SUFDYixRQUFTRSxLQUFLTixLQUFLO0lBQ25CZCxTQUFTbUIsVUFBVW5CO0lBQ25CLE9BQU87UUFDSFUsT0FBT087UUFDUGpCO0lBQ0o7QUFDSixFQUNBLGtDQUFrQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvbXBsZXgvZGlzdC9zcmMvZGVjb2RlLmpzPzM1ZDYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVWludDhBcnJheUxpc3QgfSBmcm9tICd1aW50OGFycmF5bGlzdCc7XG5pbXBvcnQgeyBNZXNzYWdlVHlwZU5hbWVzLCBNZXNzYWdlVHlwZXMgfSBmcm9tICcuL21lc3NhZ2UtdHlwZXMuanMnO1xuZXhwb3J0IGNvbnN0IE1BWF9NU0dfU0laRSA9IDEgPDwgMjA7IC8vIDFNQlxuZXhwb3J0IGNvbnN0IE1BWF9NU0dfUVVFVUVfU0laRSA9IDQgPDwgMjA7IC8vIDRNQlxuZXhwb3J0IGNsYXNzIERlY29kZXIge1xuICAgIF9idWZmZXI7XG4gICAgX2hlYWRlckluZm87XG4gICAgX21heE1lc3NhZ2VTaXplO1xuICAgIF9tYXhVbnByb2Nlc3NlZE1lc3NhZ2VRdWV1ZVNpemU7XG4gICAgY29uc3RydWN0b3IobWF4TWVzc2FnZVNpemUgPSBNQVhfTVNHX1NJWkUsIG1heFVucHJvY2Vzc2VkTWVzc2FnZVF1ZXVlU2l6ZSA9IE1BWF9NU0dfUVVFVUVfU0laRSkge1xuICAgICAgICB0aGlzLl9idWZmZXIgPSBuZXcgVWludDhBcnJheUxpc3QoKTtcbiAgICAgICAgdGhpcy5faGVhZGVySW5mbyA9IG51bGw7XG4gICAgICAgIHRoaXMuX21heE1lc3NhZ2VTaXplID0gbWF4TWVzc2FnZVNpemU7XG4gICAgICAgIHRoaXMuX21heFVucHJvY2Vzc2VkTWVzc2FnZVF1ZXVlU2l6ZSA9IG1heFVucHJvY2Vzc2VkTWVzc2FnZVF1ZXVlU2l6ZTtcbiAgICB9XG4gICAgd3JpdGUoY2h1bmspIHtcbiAgICAgICAgaWYgKGNodW5rID09IG51bGwgfHwgY2h1bmsubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYnVmZmVyLmFwcGVuZChjaHVuayk7XG4gICAgICAgIGlmICh0aGlzLl9idWZmZXIuYnl0ZUxlbmd0aCA+IHRoaXMuX21heFVucHJvY2Vzc2VkTWVzc2FnZVF1ZXVlU2l6ZSkge1xuICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoJ3VucHJvY2Vzc2VkIG1lc3NhZ2UgcXVldWUgc2l6ZSB0b28gbGFyZ2UhJyksIHsgY29kZTogJ0VSUl9NU0dfUVVFVUVfVE9PX0JJRycgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbXNncyA9IFtdO1xuICAgICAgICB3aGlsZSAodGhpcy5fYnVmZmVyLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2hlYWRlckluZm8gPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2hlYWRlckluZm8gPSB0aGlzLl9kZWNvZGVIZWFkZXIodGhpcy5fYnVmZmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgPT09ICdFUlJfTVNHX1RPT19CSUcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7IC8vIFdlIGhhdmVuJ3QgcmVjZWl2ZWQgZW5vdWdoIGRhdGEgeWV0XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBpZCwgdHlwZSwgbGVuZ3RoLCBvZmZzZXQgfSA9IHRoaXMuX2hlYWRlckluZm87XG4gICAgICAgICAgICBjb25zdCBidWZmZXJlZERhdGFMZW5ndGggPSB0aGlzLl9idWZmZXIubGVuZ3RoIC0gb2Zmc2V0O1xuICAgICAgICAgICAgaWYgKGJ1ZmZlcmVkRGF0YUxlbmd0aCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBub3QgZW5vdWdoIGRhdGEgeWV0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBtc2cgPSB7XG4gICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgdHlwZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh0eXBlID09PSBNZXNzYWdlVHlwZXMuTkVXX1NUUkVBTSB8fCB0eXBlID09PSBNZXNzYWdlVHlwZXMuTUVTU0FHRV9JTklUSUFUT1IgfHwgdHlwZSA9PT0gTWVzc2FnZVR5cGVzLk1FU1NBR0VfUkVDRUlWRVIpIHtcbiAgICAgICAgICAgICAgICBtc2cuZGF0YSA9IHRoaXMuX2J1ZmZlci5zdWJsaXN0KG9mZnNldCwgb2Zmc2V0ICsgbGVuZ3RoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1zZ3MucHVzaChtc2cpO1xuICAgICAgICAgICAgdGhpcy5fYnVmZmVyLmNvbnN1bWUob2Zmc2V0ICsgbGVuZ3RoKTtcbiAgICAgICAgICAgIHRoaXMuX2hlYWRlckluZm8gPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtc2dzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBdHRlbXB0cyB0byBkZWNvZGUgdGhlIG1lc3NhZ2UgaGVhZGVyIGZyb20gdGhlIGJ1ZmZlclxuICAgICAqL1xuICAgIF9kZWNvZGVIZWFkZXIoZGF0YSkge1xuICAgICAgICBjb25zdCB7IHZhbHVlOiBoLCBvZmZzZXQgfSA9IHJlYWRWYXJJbnQoZGF0YSk7XG4gICAgICAgIGNvbnN0IHsgdmFsdWU6IGxlbmd0aCwgb2Zmc2V0OiBlbmQgfSA9IHJlYWRWYXJJbnQoZGF0YSwgb2Zmc2V0KTtcbiAgICAgICAgY29uc3QgdHlwZSA9IGggJiA3O1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGggaXMgYSBudW1iZXIgbm90IGEgQ09ERVxuICAgICAgICBpZiAoTWVzc2FnZVR5cGVOYW1lc1t0eXBlXSA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdHlwZSByZWNlaXZlZDogJHt0eXBlfWApO1xuICAgICAgICB9XG4gICAgICAgIC8vIHRlc3QgbWVzc2FnZSB0eXBlIHZhcmludCArIGRhdGEgbGVuZ3RoXG4gICAgICAgIGlmIChsZW5ndGggPiB0aGlzLl9tYXhNZXNzYWdlU2l6ZSkge1xuICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoJ21lc3NhZ2Ugc2l6ZSB0b28gbGFyZ2UhJyksIHsgY29kZTogJ0VSUl9NU0dfVE9PX0JJRycgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBoIGlzIGEgbnVtYmVyIG5vdCBhIENPREVcbiAgICAgICAgcmV0dXJuIHsgaWQ6IGggPj4gMywgdHlwZSwgb2Zmc2V0OiBvZmZzZXQgKyBlbmQsIGxlbmd0aCB9O1xuICAgIH1cbn1cbmNvbnN0IE1TQiA9IDB4ODA7XG5jb25zdCBSRVNUID0gMHg3RjtcbmZ1bmN0aW9uIHJlYWRWYXJJbnQoYnVmLCBvZmZzZXQgPSAwKSB7XG4gICAgbGV0IHJlcyA9IDA7XG4gICAgbGV0IHNoaWZ0ID0gMDtcbiAgICBsZXQgY291bnRlciA9IG9mZnNldDtcbiAgICBsZXQgYjtcbiAgICBjb25zdCBsID0gYnVmLmxlbmd0aDtcbiAgICBkbyB7XG4gICAgICAgIGlmIChjb3VudGVyID49IGwgfHwgc2hpZnQgPiA0OSkge1xuICAgICAgICAgICAgb2Zmc2V0ID0gMDtcbiAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdDb3VsZCBub3QgZGVjb2RlIHZhcmludCcpO1xuICAgICAgICB9XG4gICAgICAgIGIgPSBidWYuZ2V0KGNvdW50ZXIrKyk7XG4gICAgICAgIHJlcyArPSBzaGlmdCA8IDI4XG4gICAgICAgICAgICA/IChiICYgUkVTVCkgPDwgc2hpZnRcbiAgICAgICAgICAgIDogKGIgJiBSRVNUKSAqIE1hdGgucG93KDIsIHNoaWZ0KTtcbiAgICAgICAgc2hpZnQgKz0gNztcbiAgICB9IHdoaWxlIChiID49IE1TQik7XG4gICAgb2Zmc2V0ID0gY291bnRlciAtIG9mZnNldDtcbiAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZTogcmVzLFxuICAgICAgICBvZmZzZXRcbiAgICB9O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVjb2RlLmpzLm1hcCJdLCJuYW1lcyI6WyJVaW50OEFycmF5TGlzdCIsIk1lc3NhZ2VUeXBlTmFtZXMiLCJNZXNzYWdlVHlwZXMiLCJNQVhfTVNHX1NJWkUiLCJNQVhfTVNHX1FVRVVFX1NJWkUiLCJEZWNvZGVyIiwiY29uc3RydWN0b3IiLCJtYXhNZXNzYWdlU2l6ZSIsIm1heFVucHJvY2Vzc2VkTWVzc2FnZVF1ZXVlU2l6ZSIsIl9idWZmZXIiLCJfaGVhZGVySW5mbyIsIl9tYXhNZXNzYWdlU2l6ZSIsIl9tYXhVbnByb2Nlc3NlZE1lc3NhZ2VRdWV1ZVNpemUiLCJ3cml0ZSIsImNodW5rIiwibGVuZ3RoIiwiYXBwZW5kIiwiYnl0ZUxlbmd0aCIsIk9iamVjdCIsImFzc2lnbiIsIkVycm9yIiwiY29kZSIsIm1zZ3MiLCJfZGVjb2RlSGVhZGVyIiwiZXJyIiwiaWQiLCJ0eXBlIiwib2Zmc2V0IiwiYnVmZmVyZWREYXRhTGVuZ3RoIiwibXNnIiwiTkVXX1NUUkVBTSIsIk1FU1NBR0VfSU5JVElBVE9SIiwiTUVTU0FHRV9SRUNFSVZFUiIsImRhdGEiLCJzdWJsaXN0IiwicHVzaCIsImNvbnN1bWUiLCJ2YWx1ZSIsImgiLCJyZWFkVmFySW50IiwiZW5kIiwiTVNCIiwiUkVTVCIsImJ1ZiIsInJlcyIsInNoaWZ0IiwiY291bnRlciIsImIiLCJsIiwiUmFuZ2VFcnJvciIsImdldCIsIk1hdGgiLCJwb3ciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/mplex/dist/src/decode.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/mplex/dist/src/encode.js":
/*!*******************************************************!*\
!*** ./node_modules/@libp2p/mplex/dist/src/encode.js ***!
\*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ encode: () => (/* binding */ encode)\n/* harmony export */ });\n/* harmony import */ var uint8_varint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uint8-varint */ \"(ssr)/./node_modules/uint8-varint/dist/src/index.js\");\n/* harmony import */ var uint8arraylist__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uint8arraylist */ \"(ssr)/./node_modules/uint8arraylist/dist/src/index.js\");\n/* harmony import */ var uint8arrays_alloc__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uint8arrays/alloc */ \"(ssr)/./node_modules/uint8arrays/dist/src/alloc.node.js\");\n/* harmony import */ var _message_types_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./message-types.js */ \"(ssr)/./node_modules/@libp2p/mplex/dist/src/message-types.js\");\n\n\n\n\nconst POOL_SIZE = 10 * 1024;\nclass Encoder {\n constructor(){\n this._pool = (0,uint8arrays_alloc__WEBPACK_IMPORTED_MODULE_2__.allocUnsafe)(POOL_SIZE);\n this._poolOffset = 0;\n }\n /**\n * Encodes the given message and adds it to the passed list\n */ write(msg, list) {\n const pool = this._pool;\n let offset = this._poolOffset;\n uint8_varint__WEBPACK_IMPORTED_MODULE_0__.encode(msg.id << 3 | msg.type, pool, offset);\n offset += uint8_varint__WEBPACK_IMPORTED_MODULE_0__.encodingLength(msg.id << 3 | msg.type);\n if ((msg.type === _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypes.NEW_STREAM || msg.type === _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypes.MESSAGE_INITIATOR || msg.type === _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypes.MESSAGE_RECEIVER) && msg.data != null) {\n uint8_varint__WEBPACK_IMPORTED_MODULE_0__.encode(msg.data.length, pool, offset);\n offset += uint8_varint__WEBPACK_IMPORTED_MODULE_0__.encodingLength(msg.data.length);\n } else {\n uint8_varint__WEBPACK_IMPORTED_MODULE_0__.encode(0, pool, offset);\n offset += uint8_varint__WEBPACK_IMPORTED_MODULE_0__.encodingLength(0);\n }\n const header = pool.subarray(this._poolOffset, offset);\n if (POOL_SIZE - offset < 100) {\n this._pool = (0,uint8arrays_alloc__WEBPACK_IMPORTED_MODULE_2__.allocUnsafe)(POOL_SIZE);\n this._poolOffset = 0;\n } else {\n this._poolOffset = offset;\n }\n list.append(header);\n if ((msg.type === _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypes.NEW_STREAM || msg.type === _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypes.MESSAGE_INITIATOR || msg.type === _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypes.MESSAGE_RECEIVER) && msg.data != null) {\n list.append(msg.data);\n }\n }\n}\nconst encoder = new Encoder();\n/**\n * Encode and yield one or more messages\n */ async function* encode(source) {\n for await (const message of source){\n const list = new uint8arraylist__WEBPACK_IMPORTED_MODULE_1__.Uint8ArrayList();\n encoder.write(message, list);\n yield list;\n }\n} //# sourceMappingURL=encode.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9tcGxleC9kaXN0L3NyYy9lbmNvZGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBdUM7QUFDUztBQUNBO0FBQ0U7QUFDbEQsTUFBTUksWUFBWSxLQUFLO0FBQ3ZCLE1BQU1DO0lBR0ZDLGFBQWM7UUFDVixJQUFJLENBQUNDLEtBQUssR0FBR0wsOERBQVdBLENBQUNFO1FBQ3pCLElBQUksQ0FBQ0ksV0FBVyxHQUFHO0lBQ3ZCO0lBQ0E7O0tBRUMsR0FDREMsTUFBTUMsR0FBRyxFQUFFQyxJQUFJLEVBQUU7UUFDYixNQUFNQyxPQUFPLElBQUksQ0FBQ0wsS0FBSztRQUN2QixJQUFJTSxTQUFTLElBQUksQ0FBQ0wsV0FBVztRQUM3QlIsZ0RBQWEsQ0FBQ1UsSUFBSUssRUFBRSxJQUFJLElBQUlMLElBQUlNLElBQUksRUFBRUosTUFBTUM7UUFDNUNBLFVBQVViLHdEQUFxQixDQUFDVSxJQUFJSyxFQUFFLElBQUksSUFBSUwsSUFBSU0sSUFBSTtRQUN0RCxJQUFJLENBQUNOLElBQUlNLElBQUksS0FBS2IsMkRBQVlBLENBQUNlLFVBQVUsSUFBSVIsSUFBSU0sSUFBSSxLQUFLYiwyREFBWUEsQ0FBQ2dCLGlCQUFpQixJQUFJVCxJQUFJTSxJQUFJLEtBQUtiLDJEQUFZQSxDQUFDaUIsZ0JBQWdCLEtBQUtWLElBQUlXLElBQUksSUFBSSxNQUFNO1lBQ3pKckIsZ0RBQWEsQ0FBQ1UsSUFBSVcsSUFBSSxDQUFDQyxNQUFNLEVBQUVWLE1BQU1DO1lBQ3JDQSxVQUFVYix3REFBcUIsQ0FBQ1UsSUFBSVcsSUFBSSxDQUFDQyxNQUFNO1FBQ25ELE9BQ0s7WUFDRHRCLGdEQUFhLENBQUMsR0FBR1ksTUFBTUM7WUFDdkJBLFVBQVViLHdEQUFxQixDQUFDO1FBQ3BDO1FBQ0EsTUFBTXVCLFNBQVNYLEtBQUtZLFFBQVEsQ0FBQyxJQUFJLENBQUNoQixXQUFXLEVBQUVLO1FBQy9DLElBQUlULFlBQVlTLFNBQVMsS0FBSztZQUMxQixJQUFJLENBQUNOLEtBQUssR0FBR0wsOERBQVdBLENBQUNFO1lBQ3pCLElBQUksQ0FBQ0ksV0FBVyxHQUFHO1FBQ3ZCLE9BQ0s7WUFDRCxJQUFJLENBQUNBLFdBQVcsR0FBR0s7UUFDdkI7UUFDQUYsS0FBS2MsTUFBTSxDQUFDRjtRQUNaLElBQUksQ0FBQ2IsSUFBSU0sSUFBSSxLQUFLYiwyREFBWUEsQ0FBQ2UsVUFBVSxJQUFJUixJQUFJTSxJQUFJLEtBQUtiLDJEQUFZQSxDQUFDZ0IsaUJBQWlCLElBQUlULElBQUlNLElBQUksS0FBS2IsMkRBQVlBLENBQUNpQixnQkFBZ0IsS0FBS1YsSUFBSVcsSUFBSSxJQUFJLE1BQU07WUFDekpWLEtBQUtjLE1BQU0sQ0FBQ2YsSUFBSVcsSUFBSTtRQUN4QjtJQUNKO0FBQ0o7QUFDQSxNQUFNSyxVQUFVLElBQUlyQjtBQUNwQjs7Q0FFQyxHQUNNLGdCQUFnQlMsT0FBT2EsTUFBTTtJQUNoQyxXQUFXLE1BQU1DLFdBQVdELE9BQVE7UUFDaEMsTUFBTWhCLE9BQU8sSUFBSVYsMERBQWNBO1FBQy9CeUIsUUFBUWpCLEtBQUssQ0FBQ21CLFNBQVNqQjtRQUN2QixNQUFNQTtJQUNWO0FBQ0osRUFDQSxrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL21wbGV4L2Rpc3Qvc3JjL2VuY29kZS5qcz8xZjg2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHZhcmludCBmcm9tICd1aW50OC12YXJpbnQnO1xuaW1wb3J0IHsgVWludDhBcnJheUxpc3QgfSBmcm9tICd1aW50OGFycmF5bGlzdCc7XG5pbXBvcnQgeyBhbGxvY1Vuc2FmZSB9IGZyb20gJ3VpbnQ4YXJyYXlzL2FsbG9jJztcbmltcG9ydCB7IE1lc3NhZ2VUeXBlcyB9IGZyb20gJy4vbWVzc2FnZS10eXBlcy5qcyc7XG5jb25zdCBQT09MX1NJWkUgPSAxMCAqIDEwMjQ7XG5jbGFzcyBFbmNvZGVyIHtcbiAgICBfcG9vbDtcbiAgICBfcG9vbE9mZnNldDtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5fcG9vbCA9IGFsbG9jVW5zYWZlKFBPT0xfU0laRSk7XG4gICAgICAgIHRoaXMuX3Bvb2xPZmZzZXQgPSAwO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBFbmNvZGVzIHRoZSBnaXZlbiBtZXNzYWdlIGFuZCBhZGRzIGl0IHRvIHRoZSBwYXNzZWQgbGlzdFxuICAgICAqL1xuICAgIHdyaXRlKG1zZywgbGlzdCkge1xuICAgICAgICBjb25zdCBwb29sID0gdGhpcy5fcG9vbDtcbiAgICAgICAgbGV0IG9mZnNldCA9IHRoaXMuX3Bvb2xPZmZzZXQ7XG4gICAgICAgIHZhcmludC5lbmNvZGUobXNnLmlkIDw8IDMgfCBtc2cudHlwZSwgcG9vbCwgb2Zmc2V0KTtcbiAgICAgICAgb2Zmc2V0ICs9IHZhcmludC5lbmNvZGluZ0xlbmd0aChtc2cuaWQgPDwgMyB8IG1zZy50eXBlKTtcbiAgICAgICAgaWYgKChtc2cudHlwZSA9PT0gTWVzc2FnZVR5cGVzLk5FV19TVFJFQU0gfHwgbXNnLnR5cGUgPT09IE1lc3NhZ2VUeXBlcy5NRVNTQUdFX0lOSVRJQVRPUiB8fCBtc2cudHlwZSA9PT0gTWVzc2FnZVR5cGVzLk1FU1NBR0VfUkVDRUlWRVIpICYmIG1zZy5kYXRhICE9IG51bGwpIHtcbiAgICAgICAgICAgIHZhcmludC5lbmNvZGUobXNnLmRhdGEubGVuZ3RoLCBwb29sLCBvZmZzZXQpO1xuICAgICAgICAgICAgb2Zmc2V0ICs9IHZhcmludC5lbmNvZGluZ0xlbmd0aChtc2cuZGF0YS5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdmFyaW50LmVuY29kZSgwLCBwb29sLCBvZmZzZXQpO1xuICAgICAgICAgICAgb2Zmc2V0ICs9IHZhcmludC5lbmNvZGluZ0xlbmd0aCgwKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBoZWFkZXIgPSBwb29sLnN1YmFycmF5KHRoaXMuX3Bvb2xPZmZzZXQsIG9mZnNldCk7XG4gICAgICAgIGlmIChQT09MX1NJWkUgLSBvZmZzZXQgPCAxMDApIHtcbiAgICAgICAgICAgIHRoaXMuX3Bvb2wgPSBhbGxvY1Vuc2FmZShQT09MX1NJWkUpO1xuICAgICAgICAgICAgdGhpcy5fcG9vbE9mZnNldCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9wb29sT2Zmc2V0ID0gb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgIGxpc3QuYXBwZW5kKGhlYWRlcik7XG4gICAgICAgIGlmICgobXNnLnR5cGUgPT09IE1lc3NhZ2VUeXBlcy5ORVdfU1RSRUFNIHx8IG1zZy50eXBlID09PSBNZXNzYWdlVHlwZXMuTUVTU0FHRV9JTklUSUFUT1IgfHwgbXNnLnR5cGUgPT09IE1lc3NhZ2VUeXBlcy5NRVNTQUdFX1JFQ0VJVkVSKSAmJiBtc2cuZGF0YSAhPSBudWxsKSB7XG4gICAgICAgICAgICBsaXN0LmFwcGVuZChtc2cuZGF0YSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5jb25zdCBlbmNvZGVyID0gbmV3IEVuY29kZXIoKTtcbi8qKlxuICogRW5jb2RlIGFuZCB5aWVsZCBvbmUgb3IgbW9yZSBtZXNzYWdlc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24qIGVuY29kZShzb3VyY2UpIHtcbiAgICBmb3IgYXdhaXQgKGNvbnN0IG1lc3NhZ2Ugb2Ygc291cmNlKSB7XG4gICAgICAgIGNvbnN0IGxpc3QgPSBuZXcgVWludDhBcnJheUxpc3QoKTtcbiAgICAgICAgZW5jb2Rlci53cml0ZShtZXNzYWdlLCBsaXN0KTtcbiAgICAgICAgeWllbGQgbGlzdDtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1lbmNvZGUuanMubWFwIl0sIm5hbWVzIjpbInZhcmludCIsIlVpbnQ4QXJyYXlMaXN0IiwiYWxsb2NVbnNhZmUiLCJNZXNzYWdlVHlwZXMiLCJQT09MX1NJWkUiLCJFbmNvZGVyIiwiY29uc3RydWN0b3IiLCJfcG9vbCIsIl9wb29sT2Zmc2V0Iiwid3JpdGUiLCJtc2ciLCJsaXN0IiwicG9vbCIsIm9mZnNldCIsImVuY29kZSIsImlkIiwidHlwZSIsImVuY29kaW5nTGVuZ3RoIiwiTkVXX1NUUkVBTSIsIk1FU1NBR0VfSU5JVElBVE9SIiwiTUVTU0FHRV9SRUNFSVZFUiIsImRhdGEiLCJsZW5ndGgiLCJoZWFkZXIiLCJzdWJhcnJheSIsImFwcGVuZCIsImVuY29kZXIiLCJzb3VyY2UiLCJtZXNzYWdlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/mplex/dist/src/encode.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/mplex/dist/src/index.js":
/*!******************************************************!*\
!*** ./node_modules/@libp2p/mplex/dist/src/index.js ***!
\******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mplex: () => (/* binding */ mplex)\n/* harmony export */ });\n/* harmony import */ var _mplex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mplex.js */ \"(ssr)/./node_modules/@libp2p/mplex/dist/src/mplex.js\");\n/**\n * @packageDocumentation\n *\n * This is a [simple stream multiplexer(https://docs.libp2p.io/concepts/multiplex/mplex/) that has been deprecated.\n *\n * Please use [@chainsafe/libp2p-yamux](https://www.npmjs.com/package/@chainsafe/libp2p-yamux) instead.\n *\n * @example\n *\n * ```TypeScript\n * import { mplex } from '@libp2p/mplex'\n * import { pipe } from 'it-pipe'\n *\n * const factory = mplex()\n *\n * const muxer = factory.createStreamMuxer(components, {\n * onStream: stream => { // Receive a duplex stream from the remote\n * // ...receive data from the remote and optionally send data back\n * },\n * onStreamEnd: stream => {\n * // ...handle any tracking you may need of stream closures\n * }\n * })\n *\n * pipe(conn, muxer, conn) // conn is duplex connection to another peer\n *\n * const stream = muxer.newStream() // Create a new duplex stream to the remote\n *\n * // Use the duplex stream to send some data to the remote...\n * pipe([1, 2, 3], stream)\n * ```\n */ \nclass Mplex {\n constructor(components, init = {}){\n this.protocol = \"/mplex/6.7.0\";\n this.components = components;\n this._init = init;\n }\n createStreamMuxer(init = {}) {\n return new _mplex_js__WEBPACK_IMPORTED_MODULE_0__.MplexStreamMuxer(this.components, {\n ...init,\n ...this._init\n });\n }\n}\nfunction mplex(init = {}) {\n return (components)=>new Mplex(components, init);\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9tcGxleC9kaXN0L3NyYy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBK0JDLEdBQzZDO0FBQzlDLE1BQU1DO0lBSUZDLFlBQVlDLFVBQVUsRUFBRUMsT0FBTyxDQUFDLENBQUMsQ0FBRTthQUhuQ0MsV0FBVztRQUlQLElBQUksQ0FBQ0YsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNHLEtBQUssR0FBR0Y7SUFDakI7SUFDQUcsa0JBQWtCSCxPQUFPLENBQUMsQ0FBQyxFQUFFO1FBQ3pCLE9BQU8sSUFBSUosdURBQWdCQSxDQUFDLElBQUksQ0FBQ0csVUFBVSxFQUFFO1lBQ3pDLEdBQUdDLElBQUk7WUFDUCxHQUFHLElBQUksQ0FBQ0UsS0FBSztRQUNqQjtJQUNKO0FBQ0o7QUFDTyxTQUFTRSxNQUFNSixPQUFPLENBQUMsQ0FBQztJQUMzQixPQUFPLENBQUNELGFBQWUsSUFBSUYsTUFBTUUsWUFBWUM7QUFDakQsRUFDQSxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL21wbGV4L2Rpc3Qvc3JjL2luZGV4LmpzPzAyNjEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBUaGlzIGlzIGEgW3NpbXBsZSBzdHJlYW0gbXVsdGlwbGV4ZXIoaHR0cHM6Ly9kb2NzLmxpYnAycC5pby9jb25jZXB0cy9tdWx0aXBsZXgvbXBsZXgvKSB0aGF0IGhhcyBiZWVuIGRlcHJlY2F0ZWQuXG4gKlxuICogUGxlYXNlIHVzZSBbQGNoYWluc2FmZS9saWJwMnAteWFtdXhdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0BjaGFpbnNhZmUvbGlicDJwLXlhbXV4KSBpbnN0ZWFkLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBgVHlwZVNjcmlwdFxuICogaW1wb3J0IHsgbXBsZXggfSBmcm9tICdAbGlicDJwL21wbGV4J1xuICogaW1wb3J0IHsgcGlwZSB9IGZyb20gJ2l0LXBpcGUnXG4gKlxuICogY29uc3QgZmFjdG9yeSA9IG1wbGV4KClcbiAqXG4gKiBjb25zdCBtdXhlciA9IGZhY3RvcnkuY3JlYXRlU3RyZWFtTXV4ZXIoY29tcG9uZW50cywge1xuICogICBvblN0cmVhbTogc3RyZWFtID0+IHsgLy8gUmVjZWl2ZSBhIGR1cGxleCBzdHJlYW0gZnJvbSB0aGUgcmVtb3RlXG4gKiAgICAgLy8gLi4ucmVjZWl2ZSBkYXRhIGZyb20gdGhlIHJlbW90ZSBhbmQgb3B0aW9uYWxseSBzZW5kIGRhdGEgYmFja1xuICogICB9LFxuICogICBvblN0cmVhbUVuZDogc3RyZWFtID0+IHtcbiAqICAgICAvLyAuLi5oYW5kbGUgYW55IHRyYWNraW5nIHlvdSBtYXkgbmVlZCBvZiBzdHJlYW0gY2xvc3VyZXNcbiAqICAgfVxuICogfSlcbiAqXG4gKiBwaXBlKGNvbm4sIG11eGVyLCBjb25uKSAvLyBjb25uIGlzIGR1cGxleCBjb25uZWN0aW9uIHRvIGFub3RoZXIgcGVlclxuICpcbiAqIGNvbnN0IHN0cmVhbSA9IG11eGVyLm5ld1N0cmVhbSgpIC8vIENyZWF0ZSBhIG5ldyBkdXBsZXggc3RyZWFtIHRvIHRoZSByZW1vdGVcbiAqXG4gKiAvLyBVc2UgdGhlIGR1cGxleCBzdHJlYW0gdG8gc2VuZCBzb21lIGRhdGEgdG8gdGhlIHJlbW90ZS4uLlxuICogcGlwZShbMSwgMiwgM10sIHN0cmVhbSlcbiAqIGBgYFxuICovXG5pbXBvcnQgeyBNcGxleFN0cmVhbU11eGVyIH0gZnJvbSAnLi9tcGxleC5qcyc7XG5jbGFzcyBNcGxleCB7XG4gICAgcHJvdG9jb2wgPSAnL21wbGV4LzYuNy4wJztcbiAgICBfaW5pdDtcbiAgICBjb21wb25lbnRzO1xuICAgIGNvbnN0cnVjdG9yKGNvbXBvbmVudHMsIGluaXQgPSB7fSkge1xuICAgICAgICB0aGlzLmNvbXBvbmVudHMgPSBjb21wb25lbnRzO1xuICAgICAgICB0aGlzLl9pbml0ID0gaW5pdDtcbiAgICB9XG4gICAgY3JlYXRlU3RyZWFtTXV4ZXIoaW5pdCA9IHt9KSB7XG4gICAgICAgIHJldHVybiBuZXcgTXBsZXhTdHJlYW1NdXhlcih0aGlzLmNvbXBvbmVudHMsIHtcbiAgICAgICAgICAgIC4uLmluaXQsXG4gICAgICAgICAgICAuLi50aGlzLl9pbml0XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBtcGxleChpbml0ID0ge30pIHtcbiAgICByZXR1cm4gKGNvbXBvbmVudHMpID0+IG5ldyBNcGxleChjb21wb25lbnRzLCBpbml0KTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6WyJNcGxleFN0cmVhbU11eGVyIiwiTXBsZXgiLCJjb25zdHJ1Y3RvciIsImNvbXBvbmVudHMiLCJpbml0IiwicHJvdG9jb2wiLCJfaW5pdCIsImNyZWF0ZVN0cmVhbU11eGVyIiwibXBsZXgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/mplex/dist/src/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/mplex/dist/src/message-types.js":
/*!**************************************************************!*\
!*** ./node_modules/@libp2p/mplex/dist/src/message-types.js ***!
\**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ InitiatorMessageTypes: () => (/* binding */ InitiatorMessageTypes),\n/* harmony export */ MessageTypeNames: () => (/* binding */ MessageTypeNames),\n/* harmony export */ MessageTypes: () => (/* binding */ MessageTypes),\n/* harmony export */ ReceiverMessageTypes: () => (/* binding */ ReceiverMessageTypes)\n/* harmony export */ });\nvar MessageTypes;\n(function(MessageTypes) {\n MessageTypes[MessageTypes[\"NEW_STREAM\"] = 0] = \"NEW_STREAM\";\n MessageTypes[MessageTypes[\"MESSAGE_RECEIVER\"] = 1] = \"MESSAGE_RECEIVER\";\n MessageTypes[MessageTypes[\"MESSAGE_INITIATOR\"] = 2] = \"MESSAGE_INITIATOR\";\n MessageTypes[MessageTypes[\"CLOSE_RECEIVER\"] = 3] = \"CLOSE_RECEIVER\";\n MessageTypes[MessageTypes[\"CLOSE_INITIATOR\"] = 4] = \"CLOSE_INITIATOR\";\n MessageTypes[MessageTypes[\"RESET_RECEIVER\"] = 5] = \"RESET_RECEIVER\";\n MessageTypes[MessageTypes[\"RESET_INITIATOR\"] = 6] = \"RESET_INITIATOR\";\n})(MessageTypes || (MessageTypes = {}));\nconst MessageTypeNames = Object.freeze({\n 0: \"NEW_STREAM\",\n 1: \"MESSAGE_RECEIVER\",\n 2: \"MESSAGE_INITIATOR\",\n 3: \"CLOSE_RECEIVER\",\n 4: \"CLOSE_INITIATOR\",\n 5: \"RESET_RECEIVER\",\n 6: \"RESET_INITIATOR\"\n});\nconst InitiatorMessageTypes = Object.freeze({\n NEW_STREAM: MessageTypes.NEW_STREAM,\n MESSAGE: MessageTypes.MESSAGE_INITIATOR,\n CLOSE: MessageTypes.CLOSE_INITIATOR,\n RESET: MessageTypes.RESET_INITIATOR\n});\nconst ReceiverMessageTypes = Object.freeze({\n MESSAGE: MessageTypes.MESSAGE_RECEIVER,\n CLOSE: MessageTypes.CLOSE_RECEIVER,\n RESET: MessageTypes.RESET_RECEIVER\n}); //# sourceMappingURL=message-types.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9tcGxleC9kaXN0L3NyYy9tZXNzYWdlLXR5cGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBTyxJQUFJQSxhQUFhO0FBQ3ZCLFVBQVVBLFlBQVk7SUFDbkJBLFlBQVksQ0FBQ0EsWUFBWSxDQUFDLGFBQWEsR0FBRyxFQUFFLEdBQUc7SUFDL0NBLFlBQVksQ0FBQ0EsWUFBWSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsR0FBRztJQUNyREEsWUFBWSxDQUFDQSxZQUFZLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxHQUFHO0lBQ3REQSxZQUFZLENBQUNBLFlBQVksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLEdBQUc7SUFDbkRBLFlBQVksQ0FBQ0EsWUFBWSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsR0FBRztJQUNwREEsWUFBWSxDQUFDQSxZQUFZLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxHQUFHO0lBQ25EQSxZQUFZLENBQUNBLFlBQVksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLEdBQUc7QUFDeEQsR0FBR0EsZ0JBQWlCQSxDQUFBQSxlQUFlLENBQUM7QUFDN0IsTUFBTUMsbUJBQW1CQyxPQUFPQyxNQUFNLENBQUM7SUFDMUMsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztBQUNQLEdBQUc7QUFDSSxNQUFNQyx3QkFBd0JGLE9BQU9DLE1BQU0sQ0FBQztJQUMvQ0UsWUFBWUwsYUFBYUssVUFBVTtJQUNuQ0MsU0FBU04sYUFBYU8saUJBQWlCO0lBQ3ZDQyxPQUFPUixhQUFhUyxlQUFlO0lBQ25DQyxPQUFPVixhQUFhVyxlQUFlO0FBQ3ZDLEdBQUc7QUFDSSxNQUFNQyx1QkFBdUJWLE9BQU9DLE1BQU0sQ0FBQztJQUM5Q0csU0FBU04sYUFBYWEsZ0JBQWdCO0lBQ3RDTCxPQUFPUixhQUFhYyxjQUFjO0lBQ2xDSixPQUFPVixhQUFhZSxjQUFjO0FBQ3RDLEdBQUcsQ0FDSCx5Q0FBeUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL21wbGV4L2Rpc3Qvc3JjL21lc3NhZ2UtdHlwZXMuanM/ODIyNyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdmFyIE1lc3NhZ2VUeXBlcztcbihmdW5jdGlvbiAoTWVzc2FnZVR5cGVzKSB7XG4gICAgTWVzc2FnZVR5cGVzW01lc3NhZ2VUeXBlc1tcIk5FV19TVFJFQU1cIl0gPSAwXSA9IFwiTkVXX1NUUkVBTVwiO1xuICAgIE1lc3NhZ2VUeXBlc1tNZXNzYWdlVHlwZXNbXCJNRVNTQUdFX1JFQ0VJVkVSXCJdID0gMV0gPSBcIk1FU1NBR0VfUkVDRUlWRVJcIjtcbiAgICBNZXNzYWdlVHlwZXNbTWVzc2FnZVR5cGVzW1wiTUVTU0FHRV9JTklUSUFUT1JcIl0gPSAyXSA9IFwiTUVTU0FHRV9JTklUSUFUT1JcIjtcbiAgICBNZXNzYWdlVHlwZXNbTWVzc2FnZVR5cGVzW1wiQ0xPU0VfUkVDRUlWRVJcIl0gPSAzXSA9IFwiQ0xPU0VfUkVDRUlWRVJcIjtcbiAgICBNZXNzYWdlVHlwZXNbTWVzc2FnZVR5cGVzW1wiQ0xPU0VfSU5JVElBVE9SXCJdID0gNF0gPSBcIkNMT1NFX0lOSVRJQVRPUlwiO1xuICAgIE1lc3NhZ2VUeXBlc1tNZXNzYWdlVHlwZXNbXCJSRVNFVF9SRUNFSVZFUlwiXSA9IDVdID0gXCJSRVNFVF9SRUNFSVZFUlwiO1xuICAgIE1lc3NhZ2VUeXBlc1tNZXNzYWdlVHlwZXNbXCJSRVNFVF9JTklUSUFUT1JcIl0gPSA2XSA9IFwiUkVTRVRfSU5JVElBVE9SXCI7XG59KShNZXNzYWdlVHlwZXMgfHwgKE1lc3NhZ2VUeXBlcyA9IHt9KSk7XG5leHBvcnQgY29uc3QgTWVzc2FnZVR5cGVOYW1lcyA9IE9iamVjdC5mcmVlemUoe1xuICAgIDA6ICdORVdfU1RSRUFNJyxcbiAgICAxOiAnTUVTU0FHRV9SRUNFSVZFUicsXG4gICAgMjogJ01FU1NBR0VfSU5JVElBVE9SJyxcbiAgICAzOiAnQ0xPU0VfUkVDRUlWRVInLFxuICAgIDQ6ICdDTE9TRV9JTklUSUFUT1InLFxuICAgIDU6ICdSRVNFVF9SRUNFSVZFUicsXG4gICAgNjogJ1JFU0VUX0lOSVRJQVRPUidcbn0pO1xuZXhwb3J0IGNvbnN0IEluaXRpYXRvck1lc3NhZ2VUeXBlcyA9IE9iamVjdC5mcmVlemUoe1xuICAgIE5FV19TVFJFQU06IE1lc3NhZ2VUeXBlcy5ORVdfU1RSRUFNLFxuICAgIE1FU1NBR0U6IE1lc3NhZ2VUeXBlcy5NRVNTQUdFX0lOSVRJQVRPUixcbiAgICBDTE9TRTogTWVzc2FnZVR5cGVzLkNMT1NFX0lOSVRJQVRPUixcbiAgICBSRVNFVDogTWVzc2FnZVR5cGVzLlJFU0VUX0lOSVRJQVRPUlxufSk7XG5leHBvcnQgY29uc3QgUmVjZWl2ZXJNZXNzYWdlVHlwZXMgPSBPYmplY3QuZnJlZXplKHtcbiAgICBNRVNTQUdFOiBNZXNzYWdlVHlwZXMuTUVTU0FHRV9SRUNFSVZFUixcbiAgICBDTE9TRTogTWVzc2FnZVR5cGVzLkNMT1NFX1JFQ0VJVkVSLFxuICAgIFJFU0VUOiBNZXNzYWdlVHlwZXMuUkVTRVRfUkVDRUlWRVJcbn0pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWVzc2FnZS10eXBlcy5qcy5tYXAiXSwibmFtZXMiOlsiTWVzc2FnZVR5cGVzIiwiTWVzc2FnZVR5cGVOYW1lcyIsIk9iamVjdCIsImZyZWV6ZSIsIkluaXRpYXRvck1lc3NhZ2VUeXBlcyIsIk5FV19TVFJFQU0iLCJNRVNTQUdFIiwiTUVTU0FHRV9JTklUSUFUT1IiLCJDTE9TRSIsIkNMT1NFX0lOSVRJQVRPUiIsIlJFU0VUIiwiUkVTRVRfSU5JVElBVE9SIiwiUmVjZWl2ZXJNZXNzYWdlVHlwZXMiLCJNRVNTQUdFX1JFQ0VJVkVSIiwiQ0xPU0VfUkVDRUlWRVIiLCJSRVNFVF9SRUNFSVZFUiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/mplex/dist/src/message-types.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/mplex/dist/src/mplex.js":
/*!******************************************************!*\
!*** ./node_modules/@libp2p/mplex/dist/src/mplex.js ***!
\******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MplexStreamMuxer: () => (/* binding */ MplexStreamMuxer)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var _libp2p_utils_close_source__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @libp2p/utils/close-source */ \"(ssr)/./node_modules/@libp2p/utils/dist/src/close-source.js\");\n/* harmony import */ var _libp2p_utils_rate_limiter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @libp2p/utils/rate-limiter */ \"(ssr)/./node_modules/@libp2p/utils/dist/src/rate-limiter.js\");\n/* harmony import */ var it_pipe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! it-pipe */ \"(ssr)/./node_modules/it-pipe/dist/src/index.js\");\n/* harmony import */ var it_pushable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! it-pushable */ \"(ssr)/./node_modules/it-pushable/dist/src/index.js\");\n/* harmony import */ var uint8arrays__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uint8arrays */ \"(ssr)/./node_modules/uint8arrays/dist/src/index.js\");\n/* harmony import */ var _decode_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./decode.js */ \"(ssr)/./node_modules/@libp2p/mplex/dist/src/decode.js\");\n/* harmony import */ var _encode_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./encode.js */ \"(ssr)/./node_modules/@libp2p/mplex/dist/src/encode.js\");\n/* harmony import */ var _message_types_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./message-types.js */ \"(ssr)/./node_modules/@libp2p/mplex/dist/src/message-types.js\");\n/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./stream.js */ \"(ssr)/./node_modules/@libp2p/mplex/dist/src/stream.js\");\n\n\n\n\n\n\n\n\n\n\nconst MAX_STREAMS_INBOUND_STREAMS_PER_CONNECTION = 1024;\nconst MAX_STREAMS_OUTBOUND_STREAMS_PER_CONNECTION = 1024;\nconst MAX_STREAM_BUFFER_SIZE = 1024 * 1024 * 4; // 4MB\nconst DISCONNECT_THRESHOLD = 5;\nconst CLOSE_TIMEOUT = 500;\nfunction printMessage(msg) {\n const output = {\n ...msg,\n type: `${_message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypeNames[msg.type]} (${msg.type})`\n };\n if (msg.type === _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypes.NEW_STREAM) {\n output.data = (0,uint8arrays__WEBPACK_IMPORTED_MODULE_2__.toString)(msg.data instanceof Uint8Array ? msg.data : msg.data.subarray());\n }\n if (msg.type === _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypes.MESSAGE_INITIATOR || msg.type === _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypes.MESSAGE_RECEIVER) {\n output.data = (0,uint8arrays__WEBPACK_IMPORTED_MODULE_2__.toString)(msg.data instanceof Uint8Array ? msg.data : msg.data.subarray(), \"base16\");\n }\n return output;\n}\nclass MplexStreamMuxer {\n constructor(components, init){\n this.protocol = \"/mplex/6.7.0\";\n init = init ?? {};\n this.log = components.logger.forComponent(\"libp2p:mplex\");\n this.logger = components.logger;\n this._streamId = 0;\n this._streams = {\n /**\n * Stream to ids map\n */ initiators: new Map(),\n /**\n * Stream to ids map\n */ receivers: new Map()\n };\n this._init = init;\n this.closeTimeout = init.closeTimeout ?? CLOSE_TIMEOUT;\n /**\n * An iterable sink\n */ this.sink = this._createSink();\n /**\n * An iterable source\n */ this._source = (0,it_pushable__WEBPACK_IMPORTED_MODULE_1__.pushable)({\n objectMode: true,\n onEnd: ()=>{\n // the source has ended, we can't write any more messages to gracefully\n // close streams so all we can do is destroy them\n for (const stream of this._streams.initiators.values()){\n stream.destroy();\n }\n for (const stream of this._streams.receivers.values()){\n stream.destroy();\n }\n }\n });\n this.source = (0,it_pipe__WEBPACK_IMPORTED_MODULE_0__.pipe)(this._source, (source)=>(0,_encode_js__WEBPACK_IMPORTED_MODULE_4__.encode)(source));\n /**\n * Close controller\n */ this.closeController = new AbortController();\n this.rateLimiter = new _libp2p_utils_rate_limiter__WEBPACK_IMPORTED_MODULE_5__.RateLimiter({\n points: init.disconnectThreshold ?? DISCONNECT_THRESHOLD,\n duration: 1\n });\n }\n /**\n * Returns a Map of streams and their ids\n */ get streams() {\n // Inbound and Outbound streams may have the same ids, so we need to make those unique\n const streams = [];\n for (const stream of this._streams.initiators.values()){\n streams.push(stream);\n }\n for (const stream of this._streams.receivers.values()){\n streams.push(stream);\n }\n return streams;\n }\n /**\n * Initiate a new stream with the given name. If no name is\n * provided, the id of the stream will be used.\n */ newStream(name) {\n if (this.closeController.signal.aborted) {\n throw new Error(\"Muxer already closed\");\n }\n const id = this._streamId++;\n name = name == null ? id.toString() : name.toString();\n const registry = this._streams.initiators;\n return this._newStream({\n id,\n name,\n type: \"initiator\",\n registry\n });\n }\n /**\n * Close or abort all tracked streams and stop the muxer\n */ async close(options) {\n if (this.closeController.signal.aborted) {\n return;\n }\n const signal = options?.signal ?? AbortSignal.timeout(this.closeTimeout);\n try {\n // try to gracefully close all streams\n await Promise.all(this.streams.map(async (s)=>s.close({\n signal\n })));\n this._source.end();\n // try to gracefully close the muxer\n await this._source.onEmpty({\n signal\n });\n this.closeController.abort();\n } catch (err) {\n this.abort(err);\n }\n }\n abort(err) {\n if (this.closeController.signal.aborted) {\n return;\n }\n this.streams.forEach((s)=>{\n s.abort(err);\n });\n this.closeController.abort(err);\n }\n /**\n * Called whenever an inbound stream is created\n */ _newReceiverStream(options) {\n const { id, name } = options;\n const registry = this._streams.receivers;\n return this._newStream({\n id,\n name,\n type: \"receiver\",\n registry\n });\n }\n _newStream(options) {\n const { id, name, type, registry } = options;\n this.log(\"new %s stream %s\", type, id);\n if (type === \"initiator\" && this._streams.initiators.size === (this._init.maxOutboundStreams ?? MAX_STREAMS_OUTBOUND_STREAMS_PER_CONNECTION)) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_6__.CodeError(\"Too many outbound streams open\", \"ERR_TOO_MANY_OUTBOUND_STREAMS\");\n }\n if (registry.has(id)) {\n throw new Error(`${type} stream ${id} already exists!`);\n }\n const send = async (msg)=>{\n if (this.log.enabled) {\n this.log.trace(\"%s stream %s send\", type, id, printMessage(msg));\n }\n this._source.push(msg);\n };\n const onEnd = ()=>{\n this.log(\"%s stream with id %s and protocol %s ended\", type, id, stream.protocol);\n registry.delete(id);\n if (this._init.onStreamEnd != null) {\n this._init.onStreamEnd(stream);\n }\n };\n const stream = (0,_stream_js__WEBPACK_IMPORTED_MODULE_7__.createStream)({\n id,\n name,\n send,\n type,\n onEnd,\n maxMsgSize: this._init.maxMsgSize,\n logger: this.logger\n });\n registry.set(id, stream);\n return stream;\n }\n /**\n * Creates a sink with an abortable source. Incoming messages will\n * also have their size restricted. All messages will be varint decoded.\n */ _createSink() {\n const sink = async (source)=>{\n const abortListener = ()=>{\n (0,_libp2p_utils_close_source__WEBPACK_IMPORTED_MODULE_8__.closeSource)(source, this.log);\n };\n this.closeController.signal.addEventListener(\"abort\", abortListener);\n try {\n const decoder = new _decode_js__WEBPACK_IMPORTED_MODULE_9__.Decoder(this._init.maxMsgSize, this._init.maxUnprocessedMessageQueueSize);\n for await (const chunk of source){\n for (const msg of decoder.write(chunk)){\n await this._handleIncoming(msg);\n }\n }\n this._source.end();\n } catch (err) {\n this.log(\"error in sink\", err);\n this._source.end(err); // End the source with an error\n } finally{\n this.closeController.signal.removeEventListener(\"abort\", abortListener);\n }\n };\n return sink;\n }\n async _handleIncoming(message) {\n const { id, type } = message;\n if (this.log.enabled) {\n this.log.trace(\"incoming message\", printMessage(message));\n }\n // Create a new stream?\n if (message.type === _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypes.NEW_STREAM) {\n if (this._streams.receivers.size === (this._init.maxInboundStreams ?? MAX_STREAMS_INBOUND_STREAMS_PER_CONNECTION)) {\n this.log(\"too many inbound streams open\");\n // not going to allow this stream, send the reset message manually\n // instead of setting it up just to tear it down\n this._source.push({\n id,\n type: _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypes.RESET_RECEIVER\n });\n // if we've hit our stream limit, and the remote keeps trying to open\n // more new streams, if they are doing this very quickly maybe they\n // are attacking us and we should close the connection\n try {\n await this.rateLimiter.consume(\"new-stream\", 1);\n } catch {\n this.log(\"rate limit hit when opening too many new streams over the inbound stream limit - closing remote connection\");\n // since there's no backpressure in mplex, the only thing we can really do to protect ourselves is close the connection\n this.abort(new Error(\"Too many open streams\"));\n return;\n }\n return;\n }\n const stream = this._newReceiverStream({\n id,\n name: (0,uint8arrays__WEBPACK_IMPORTED_MODULE_2__.toString)(message.data instanceof Uint8Array ? message.data : message.data.subarray())\n });\n if (this._init.onIncomingStream != null) {\n this._init.onIncomingStream(stream);\n }\n return;\n }\n const list = (type & 1) === 1 ? this._streams.initiators : this._streams.receivers;\n const stream = list.get(id);\n if (stream == null) {\n this.log(\"missing stream %s for message type %s\", id, _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypeNames[type]);\n // if the remote keeps sending us messages for streams that have been\n // closed or were never opened they may be attacking us so if they do\n // this very quickly all we can do is close the connection\n try {\n await this.rateLimiter.consume(\"missing-stream\", 1);\n } catch {\n this.log(\"rate limit hit when receiving messages for streams that do not exist - closing remote connection\");\n // since there's no backpressure in mplex, the only thing we can really do to protect ourselves is close the connection\n this.abort(new Error(\"Too many messages for missing streams\"));\n return;\n }\n return;\n }\n const maxBufferSize = this._init.maxStreamBufferSize ?? MAX_STREAM_BUFFER_SIZE;\n try {\n switch(type){\n case _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypes.MESSAGE_INITIATOR:\n case _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypes.MESSAGE_RECEIVER:\n if (stream.sourceReadableLength() > maxBufferSize) {\n // Stream buffer has got too large, reset the stream\n this._source.push({\n id: message.id,\n type: type === _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypes.MESSAGE_INITIATOR ? _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypes.RESET_RECEIVER : _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypes.RESET_INITIATOR\n });\n // Inform the stream consumer they are not fast enough\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_6__.CodeError(\"Input buffer full - increase Mplex maxBufferSize to accommodate slow consumers\", \"ERR_STREAM_INPUT_BUFFER_FULL\");\n }\n // We got data from the remote, push it into our local stream\n stream.sourcePush(message.data);\n break;\n case _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypes.CLOSE_INITIATOR:\n case _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypes.CLOSE_RECEIVER:\n // The remote has stopped writing, so we can stop reading\n stream.remoteCloseWrite();\n break;\n case _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypes.RESET_INITIATOR:\n case _message_types_js__WEBPACK_IMPORTED_MODULE_3__.MessageTypes.RESET_RECEIVER:\n // The remote has errored, stop reading and writing to the stream immediately\n stream.reset();\n break;\n default:\n this.log(\"unknown message type %s\", type);\n }\n } catch (err) {\n this.log.error(\"error while processing message\", err);\n stream.abort(err);\n }\n }\n} //# sourceMappingURL=mplex.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9tcGxleC9kaXN0L3NyYy9tcGxleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUE4QztBQUNXO0FBQ0E7QUFDMUI7QUFDUTtBQUNzQjtBQUN2QjtBQUNEO0FBQytCO0FBQ3pCO0FBQzNDLE1BQU1ZLDZDQUE2QztBQUNuRCxNQUFNQyw4Q0FBOEM7QUFDcEQsTUFBTUMseUJBQXlCLE9BQU8sT0FBTyxHQUFHLE1BQU07QUFDdEQsTUFBTUMsdUJBQXVCO0FBQzdCLE1BQU1DLGdCQUFnQjtBQUN0QixTQUFTQyxhQUFhQyxHQUFHO0lBQ3JCLE1BQU1DLFNBQVM7UUFDWCxHQUFHRCxHQUFHO1FBQ05FLE1BQU0sQ0FBQyxFQUFFViwrREFBZ0IsQ0FBQ1EsSUFBSUUsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFRixJQUFJRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3ZEO0lBQ0EsSUFBSUYsSUFBSUUsSUFBSSxLQUFLWCwyREFBWUEsQ0FBQ1ksVUFBVSxFQUFFO1FBQ3RDRixPQUFPRyxJQUFJLEdBQUdoQixxREFBa0JBLENBQUNZLElBQUlJLElBQUksWUFBWUMsYUFBYUwsSUFBSUksSUFBSSxHQUFHSixJQUFJSSxJQUFJLENBQUNFLFFBQVE7SUFDbEc7SUFDQSxJQUFJTixJQUFJRSxJQUFJLEtBQUtYLDJEQUFZQSxDQUFDZ0IsaUJBQWlCLElBQUlQLElBQUlFLElBQUksS0FBS1gsMkRBQVlBLENBQUNpQixnQkFBZ0IsRUFBRTtRQUMzRlAsT0FBT0csSUFBSSxHQUFHaEIscURBQWtCQSxDQUFDWSxJQUFJSSxJQUFJLFlBQVlDLGFBQWFMLElBQUlJLElBQUksR0FBR0osSUFBSUksSUFBSSxDQUFDRSxRQUFRLElBQUk7SUFDdEc7SUFDQSxPQUFPTDtBQUNYO0FBQ08sTUFBTVE7SUFhVEMsWUFBWUMsVUFBVSxFQUFFQyxJQUFJLENBQUU7YUFaOUJDLFdBQVc7UUFhUEQsT0FBT0EsUUFBUSxDQUFDO1FBQ2hCLElBQUks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IjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL21wbGV4L2Rpc3Qvc3JjL21wbGV4LmpzPzk3ODciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29kZUVycm9yIH0gZnJvbSAnQGxpYnAycC9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgY2xvc2VTb3VyY2UgfSBmcm9tICdAbGlicDJwL3V0aWxzL2Nsb3NlLXNvdXJjZSc7XG5pbXBvcnQgeyBSYXRlTGltaXRlciB9IGZyb20gJ0BsaWJwMnAvdXRpbHMvcmF0ZS1saW1pdGVyJztcbmltcG9ydCB7IHBpcGUgfSBmcm9tICdpdC1waXBlJztcbmltcG9ydCB7IHB1c2hhYmxlIH0gZnJvbSAnaXQtcHVzaGFibGUnO1xuaW1wb3J0IHsgdG9TdHJpbmcgYXMgdWludDhBcnJheVRvU3RyaW5nIH0gZnJvbSAndWludDhhcnJheXMnO1xuaW1wb3J0IHsgRGVjb2RlciB9IGZyb20gJy4vZGVjb2RlLmpzJztcbmltcG9ydCB7IGVuY29kZSB9IGZyb20gJy4vZW5jb2RlLmpzJztcbmltcG9ydCB7IE1lc3NhZ2VUeXBlcywgTWVzc2FnZVR5cGVOYW1lcyB9IGZyb20gJy4vbWVzc2FnZS10eXBlcy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVTdHJlYW0gfSBmcm9tICcuL3N0cmVhbS5qcyc7XG5jb25zdCBNQVhfU1RSRUFNU19JTkJPVU5EX1NUUkVBTVNfUEVSX0NPTk5FQ1RJT04gPSAxMDI0O1xuY29uc3QgTUFYX1NUUkVBTVNfT1VUQk9VTkRfU1RSRUFNU19QRVJfQ09OTkVDVElPTiA9IDEwMjQ7XG5jb25zdCBNQVhfU1RSRUFNX0JVRkZFUl9TSVpFID0gMTAyNCAqIDEwMjQgKiA0OyAvLyA0TUJcbmNvbnN0IERJU0NPTk5FQ1RfVEhSRVNIT0xEID0gNTtcbmNvbnN0IENMT1NFX1RJTUVPVVQgPSA1MDA7XG5mdW5jdGlvbiBwcmludE1lc3NhZ2UobXNnKSB7XG4gICAgY29uc3Qgb3V0cHV0ID0ge1xuICAgICAgICAuLi5tc2csXG4gICAgICAgIHR5cGU6IGAke01lc3NhZ2VUeXBlTmFtZXNbbXNnLnR5cGVdfSAoJHttc2cudHlwZX0pYFxuICAgIH07XG4gICAgaWYgKG1zZy50eXBlID09PSBNZXNzYWdlVHlwZXMuTkVXX1NUUkVBTSkge1xuICAgICAgICBvdXRwdXQuZGF0YSA9IHVpbnQ4QXJyYXlUb1N0cmluZyhtc2cuZGF0YSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkgPyBtc2cuZGF0YSA6IG1zZy5kYXRhLnN1YmFycmF5KCkpO1xuICAgIH1cbiAgICBpZiAobXNnLnR5cGUgPT09IE1lc3NhZ2VUeXBlcy5NRVNTQUdFX0lOSVRJQVRPUiB8fCBtc2cudHlwZSA9PT0gTWVzc2FnZVR5cGVzLk1FU1NBR0VfUkVDRUlWRVIpIHtcbiAgICAgICAgb3V0cHV0LmRhdGEgPSB1aW50OEFycmF5VG9TdHJpbmcobXNnLmRhdGEgaW5zdGFuY2VvZiBVaW50OEFycmF5ID8gbXNnLmRhdGEgOiBtc2cuZGF0YS5zdWJhcnJheSgpLCAnYmFzZTE2Jyk7XG4gICAgfVxuICAgIHJldHVybiBvdXRwdXQ7XG59XG5leHBvcnQgY2xhc3MgTXBsZXhTdHJlYW1NdXhlciB7XG4gICAgcHJvdG9jb2wgPSAnL21wbGV4LzYuNy4wJztcbiAgICBzaW5rO1xuICAgIHNvdXJjZTtcbiAgICBsb2c7XG4gICAgX3N0cmVhbUlkO1xuICAgIF9zdHJlYW1zO1xuICAgIF9pbml0O1xuICAgIF9zb3VyY2U7XG4gICAgY2xvc2VDb250cm9sbGVyO1xuICAgIHJhdGVMaW1pdGVyO1xuICAgIGNsb3NlVGltZW91dDtcbiAgICBsb2dnZXI7XG4gICAgY29uc3RydWN0b3IoY29tcG9uZW50cywgaW5pdCkge1xuICAgICAgICBpbml0ID0gaW5pdCA/PyB7fTtcbiAgICAgICAgdGhpcy5sb2cgPSBjb21wb25lbnRzLmxvZ2dlci5mb3JDb21wb25lbnQoJ2xpYnAycDptcGxleCcpO1xuICAgICAgICB0aGlzLmxvZ2dlciA9IGNvbXBvbmVudHMubG9nZ2VyO1xuICAgICAgICB0aGlzLl9zdHJlYW1JZCA9IDA7XG4gICAgICAgIHRoaXMuX3N0cmVhbXMgPSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFN0cmVhbSB0byBpZHMgbWFwXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGluaXRpYXRvcnM6IG5ldyBNYXAoKSxcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogU3RyZWFtIHRvIGlkcyBtYXBcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgcmVjZWl2ZXJzOiBuZXcgTWFwKClcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5faW5pdCA9IGluaXQ7XG4gICAgICAgIHRoaXMuY2xvc2VUaW1lb3V0ID0gaW5pdC5jbG9zZVRpbWVvdXQgPz8gQ0xPU0VfVElNRU9VVDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFuIGl0ZXJhYmxlIHNpbmtcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuc2luayA9IHRoaXMuX2NyZWF0ZVNpbmsoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFuIGl0ZXJhYmxlIHNvdXJjZVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5fc291cmNlID0gcHVzaGFibGUoe1xuICAgICAgICAgICAgb2JqZWN0TW9kZTogdHJ1ZSxcbiAgICAgICAgICAgIG9uRW5kOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gdGhlIHNvdXJjZSBoYXMgZW5kZWQsIHdlIGNhbid0IHdyaXRlIGFueSBtb3JlIG1lc3NhZ2VzIHRvIGdyYWNlZnVsbHlcbiAgICAgICAgICAgICAgICAvLyBjbG9zZSBzdHJlYW1zIHNvIGFsbCB3ZSBjYW4gZG8gaXMgZGVzdHJveSB0aGVtXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBzdHJlYW0gb2YgdGhpcy5fc3RyZWFtcy5pbml0aWF0b3JzLnZhbHVlcygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0cmVhbS5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc3RyZWFtIG9mIHRoaXMuX3N0cmVhbXMucmVjZWl2ZXJzLnZhbHVlcygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0cmVhbS5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zb3VyY2UgPSBwaXBlKHRoaXMuX3NvdXJjZSwgc291cmNlID0+IGVuY29kZShzb3VyY2UpKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIENsb3NlIGNvbnRyb2xsZXJcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY2xvc2VDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICAgICB0aGlzLnJhdGVMaW1pdGVyID0gbmV3IFJhdGVMaW1pdGVyKHtcbiAgICAgICAgICAgIHBvaW50czogaW5pdC5kaXNjb25uZWN0VGhyZXNob2xkID8/IERJU0NPTk5FQ1RfVEhSRVNIT0xELFxuICAgICAgICAgICAgZHVyYXRpb246IDFcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBNYXAgb2Ygc3RyZWFtcyBhbmQgdGhlaXIgaWRzXG4gICAgICovXG4gICAgZ2V0IHN0cmVhbXMoKSB7XG4gICAgICAgIC8vIEluYm91bmQgYW5kIE91dGJvdW5kIHN0cmVhbXMgbWF5IGhhdmUgdGhlIHNhbWUgaWRzLCBzbyB3ZSBuZWVkIHRvIG1ha2UgdGhvc2UgdW5pcXVlXG4gICAgICAgIGNvbnN0IHN0cmVhbXMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBzdHJlYW0gb2YgdGhpcy5fc3RyZWFtcy5pbml0aWF0b3JzLnZhbHVlcygpKSB7XG4gICAgICAgICAgICBzdHJlYW1zLnB1c2goc3RyZWFtKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IHN0cmVhbSBvZiB0aGlzLl9zdHJlYW1zLnJlY2VpdmVycy52YWx1ZXMoKSkge1xuICAgICAgICAgICAgc3RyZWFtcy5wdXNoKHN0cmVhbSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cmVhbXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEluaXRpYXRlIGEgbmV3IHN0cmVhbSB3aXRoIHRoZSBnaXZlbiBuYW1lLiBJZiBubyBuYW1lIGlzXG4gICAgICogcHJvdmlkZWQsIHRoZSBpZCBvZiB0aGUgc3RyZWFtIHdpbGwgYmUgdXNlZC5cbiAgICAgKi9cbiAgICBuZXdTdHJlYW0obmFtZSkge1xuICAgICAgICBpZiAodGhpcy5jbG9zZUNvbnRyb2xsZXIuc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTXV4ZXIgYWxyZWFkeSBjbG9zZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpZCA9IHRoaXMuX3N0cmVhbUlkKys7XG4gICAgICAgIG5hbWUgPSBuYW1lID09IG51bGwgPyBpZC50b1N0cmluZygpIDogbmFtZS50b1N0cmluZygpO1xuICAgICAgICBjb25zdCByZWdpc3RyeSA9IHRoaXMuX3N0cmVhbXMuaW5pdGlhdG9ycztcbiAgICAgICAgcmV0dXJuIHRoaXMuX25ld1N0cmVhbSh7IGlkLCBuYW1lLCB0eXBlOiAnaW5pdGlhdG9yJywgcmVnaXN0cnkgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENsb3NlIG9yIGFib3J0IGFsbCB0cmFja2VkIHN0cmVhbXMgYW5kIHN0b3AgdGhlIG11eGVyXG4gICAgICovXG4gICAgYXN5bmMgY2xvc2Uob3B0aW9ucykge1xuICAgICAgICBpZiAodGhpcy5jbG9zZUNvbnRyb2xsZXIuc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzaWduYWwgPSBvcHRpb25zPy5zaWduYWwgPz8gQWJvcnRTaWduYWwudGltZW91dCh0aGlzLmNsb3NlVGltZW91dCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyB0cnkgdG8gZ3JhY2VmdWxseSBjbG9zZSBhbGwgc3RyZWFtc1xuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5zdHJlYW1zLm1hcChhc3luYyAocykgPT4gcy5jbG9zZSh7XG4gICAgICAgICAgICAgICAgc2lnbmFsXG4gICAgICAgICAgICB9KSkpO1xuICAgICAgICAgICAgdGhpcy5fc291cmNlLmVuZCgpO1xuICAgICAgICAgICAgLy8gdHJ5IHRvIGdyYWNlZnVsbHkgY2xvc2UgdGhlIG11eGVyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9zb3VyY2Uub25FbXB0eSh7XG4gICAgICAgICAgICAgICAgc2lnbmFsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VDb250cm9sbGVyLmFib3J0KCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhpcy5hYm9ydChlcnIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFib3J0KGVycikge1xuICAgICAgICBpZiAodGhpcy5jbG9zZUNvbnRyb2xsZXIuc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0cmVhbXMuZm9yRWFjaChzID0+IHsgcy5hYm9ydChlcnIpOyB9KTtcbiAgICAgICAgdGhpcy5jbG9zZUNvbnRyb2xsZXIuYWJvcnQoZXJyKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW5ldmVyIGFuIGluYm91bmQgc3RyZWFtIGlzIGNyZWF0ZWRcbiAgICAgKi9cbiAgICBfbmV3UmVjZWl2ZXJTdHJlYW0ob3B0aW9ucykge1xuICAgICAgICBjb25zdCB7IGlkLCBuYW1lIH0gPSBvcHRpb25zO1xuICAgICAgICBjb25zdCByZWdpc3RyeSA9IHRoaXMuX3N0cmVhbXMucmVjZWl2ZXJzO1xuICAgICAgICByZXR1cm4gdGhpcy5fbmV3U3RyZWFtKHsgaWQsIG5hbWUsIHR5cGU6ICdyZWNlaXZlcicsIHJlZ2lzdHJ5IH0pO1xuICAgIH1cbiAgICBfbmV3U3RyZWFtKG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgeyBpZCwgbmFtZSwgdHlwZSwgcmVnaXN0cnkgfSA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMubG9nKCduZXcgJXMgc3RyZWFtICVzJywgdHlwZSwgaWQpO1xuICAgICAgICBpZiAodHlwZSA9PT0gJ2luaXRpYXRvcicgJiYgdGhpcy5fc3RyZWFtcy5pbml0aWF0b3JzLnNpemUgPT09ICh0aGlzLl9pbml0Lm1heE91dGJvdW5kU3RyZWFtcyA/PyBNQVhfU1RSRUFNU19PVVRCT1VORF9TVFJFQU1TX1BFUl9DT05ORUNUSU9OKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcignVG9vIG1hbnkgb3V0Ym91bmQgc3RyZWFtcyBvcGVuJywgJ0VSUl9UT09fTUFOWV9PVVRCT1VORF9TVFJFQU1TJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlZ2lzdHJ5LmhhcyhpZCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0eXBlfSBzdHJlYW0gJHtpZH0gYWxyZWFkeSBleGlzdHMhYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VuZCA9IGFzeW5jIChtc2cpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmxvZy5lbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2cudHJhY2UoJyVzIHN0cmVhbSAlcyBzZW5kJywgdHlwZSwgaWQsIHByaW50TWVzc2FnZShtc2cpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3NvdXJjZS5wdXNoKG1zZyk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9uRW5kID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2coJyVzIHN0cmVhbSB3aXRoIGlkICVzIGFuZCBwcm90b2NvbCAlcyBlbmRlZCcsIHR5cGUsIGlkLCBzdHJlYW0ucHJvdG9jb2wpO1xuICAgICAgICAgICAgcmVnaXN0cnkuZGVsZXRlKGlkKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9pbml0Lm9uU3RyZWFtRW5kICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbml0Lm9uU3RyZWFtRW5kKHN0cmVhbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHN0cmVhbSA9IGNyZWF0ZVN0cmVhbSh7IGlkLCBuYW1lLCBzZW5kLCB0eXBlLCBvbkVuZCwgbWF4TXNnU2l6ZTogdGhpcy5faW5pdC5tYXhNc2dTaXplLCBsb2dnZXI6IHRoaXMubG9nZ2VyIH0pO1xuICAgICAgICByZWdpc3RyeS5zZXQoaWQsIHN0cmVhbSk7XG4gICAgICAgIHJldHVybiBzdHJlYW07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzaW5rIHdpdGggYW4gYWJvcnRhYmxlIHNvdXJjZS4gSW5jb21pbmcgbWVzc2FnZXMgd2lsbFxuICAgICAqIGFsc28gaGF2ZSB0aGVpciBzaXplIHJlc3RyaWN0ZWQuIEFsbCBtZXNzYWdlcyB3aWxsIGJlIHZhcmludCBkZWNvZGVkLlxuICAgICAqL1xuICAgIF9jcmVhdGVTaW5rKCkge1xuICAgICAgICBjb25zdCBzaW5rID0gYXN5bmMgKHNvdXJjZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWJvcnRMaXN0ZW5lciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjbG9zZVNvdXJjZShzb3VyY2UsIHRoaXMubG9nKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLmNsb3NlQ29udHJvbGxlci5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBhYm9ydExpc3RlbmVyKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVjb2RlciA9IG5ldyBEZWNvZGVyKHRoaXMuX2luaXQubWF4TXNnU2l6ZSwgdGhpcy5faW5pdC5tYXhVbnByb2Nlc3NlZE1lc3NhZ2VRdWV1ZVNpemUpO1xuICAgICAgICAgICAgICAgIGZvciBhd2FpdCAoY29uc3QgY2h1bmsgb2Ygc291cmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbXNnIG9mIGRlY29kZXIud3JpdGUoY2h1bmspKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9oYW5kbGVJbmNvbWluZyhtc2cpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX3NvdXJjZS5lbmQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZygnZXJyb3IgaW4gc2luaycsIGVycik7XG4gICAgICAgICAgICAgICAgdGhpcy5fc291cmNlLmVuZChlcnIpOyAvLyBFbmQgdGhlIHNvdXJjZSB3aXRoIGFuIGVycm9yXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQ29udHJvbGxlci5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBhYm9ydExpc3RlbmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHNpbms7XG4gICAgfVxuICAgIGFzeW5jIF9oYW5kbGVJbmNvbWluZyhtZXNzYWdlKSB7XG4gICAgICAgIGNvbnN0IHsgaWQsIHR5cGUgfSA9IG1lc3NhZ2U7XG4gICAgICAgIGlmICh0aGlzLmxvZy5lbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmxvZy50cmFjZSgnaW5jb21pbmcgbWVzc2FnZScsIHByaW50TWVzc2FnZShtZXNzYWdlKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHN0cmVhbT9cbiAgICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gTWVzc2FnZVR5cGVzLk5FV19TVFJFQU0pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9zdHJlYW1zLnJlY2VpdmVycy5zaXplID09PSAodGhpcy5faW5pdC5tYXhJbmJvdW5kU3RyZWFtcyA/PyBNQVhfU1RSRUFNU19JTkJPVU5EX1NUUkVBTVNfUEVSX0NPTk5FQ1RJT04pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2coJ3RvbyBtYW55IGluYm91bmQgc3RyZWFtcyBvcGVuJyk7XG4gICAgICAgICAgICAgICAgLy8gbm90IGdvaW5nIHRvIGFsbG93IHRoaXMgc3RyZWFtLCBzZW5kIHRoZSByZXNldCBtZXNzYWdlIG1hbnVhbGx5XG4gICAgICAgICAgICAgICAgLy8gaW5zdGVhZCBvZiBzZXR0aW5nIGl0IHVwIGp1c3QgdG8gdGVhciBpdCBkb3duXG4gICAgICAgICAgICAgICAgdGhpcy5fc291cmNlLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogTWVzc2FnZVR5cGVzLlJFU0VUX1JFQ0VJVkVSXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gaWYgd2UndmUgaGl0IG91ciBzdHJlYW0gbGltaXQsIGFuZCB0aGUgcmVtb3RlIGtlZXBzIHRyeWluZyB0byBvcGVuXG4gICAgICAgICAgICAgICAgLy8gbW9yZSBuZXcgc3RyZWFtcywgaWYgdGhleSBhcmUgZG9pbmcgdGhpcyB2ZXJ5IHF1aWNrbHkgbWF5YmUgdGhleVxuICAgICAgICAgICAgICAgIC8vIGFyZSBhdHRhY2tpbmcgdXMgYW5kIHdlIHNob3VsZCBjbG9zZSB0aGUgY29ubmVjdGlvblxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucmF0ZUxpbWl0ZXIuY29uc3VtZSgnbmV3LXN0cmVhbScsIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9nKCdyYXRlIGxpbWl0IGhpdCB3aGVuIG9wZW5pbmcgdG9vIG1hbnkgbmV3IHN0cmVhbXMgb3ZlciB0aGUgaW5ib3VuZCBzdHJlYW0gbGltaXQgLSBjbG9zaW5nIHJlbW90ZSBjb25uZWN0aW9uJyk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHNpbmNlIHRoZXJlJ3Mgbm8gYmFja3ByZXNzdXJlIGluIG1wbGV4LCB0aGUgb25seSB0aGluZyB3ZSBjYW4gcmVhbGx5IGRvIHRvIHByb3RlY3Qgb3Vyc2VsdmVzIGlzIGNsb3NlIHRoZSBjb25uZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWJvcnQobmV3IEVycm9yKCdUb28gbWFueSBvcGVuIHN0cmVhbXMnKSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc3RyZWFtID0gdGhpcy5fbmV3UmVjZWl2ZXJTdHJlYW0oeyBpZCwgbmFtZTogdWludDhBcnJheVRvU3RyaW5nKG1lc3NhZ2UuZGF0YSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkgPyBtZXNzYWdlLmRhdGEgOiBtZXNzYWdlLmRhdGEuc3ViYXJyYXkoKSkgfSk7XG4gICAgICAgICAgICBpZiAodGhpcy5faW5pdC5vbkluY29taW5nU3RyZWFtICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbml0Lm9uSW5jb21pbmdTdHJlYW0oc3RyZWFtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsaXN0ID0gKHR5cGUgJiAxKSA9PT0gMSA/IHRoaXMuX3N0cmVhbXMuaW5pdGlhdG9ycyA6IHRoaXMuX3N0cmVhbXMucmVjZWl2ZXJzO1xuICAgICAgICBjb25zdCBzdHJlYW0gPSBsaXN0LmdldChpZCk7XG4gICAgICAgIGlmIChzdHJlYW0gPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5sb2coJ21pc3Npbmcgc3RyZWFtICVzIGZvciBtZXNzYWdlIHR5cGUgJXMnLCBpZCwgTWVzc2FnZVR5cGVOYW1lc1t0eXBlXSk7XG4gICAgICAgICAgICAvLyBpZiB0aGUgcmVtb3RlIGtlZXBzIHNlbmRpbmcgdXMgbWVzc2FnZXMgZm9yIHN0cmVhbXMgdGhhdCBoYXZlIGJlZW5cbiAgICAgICAgICAgIC8vIGNsb3NlZCBvciB3ZXJlIG5ldmVyIG9wZW5lZCB0aGV5IG1heSBiZSBhdHRhY2tpbmcgdXMgc28gaWYgdGhleSBkb1xuICAgICAgICAgICAgLy8gdGhpcyB2ZXJ5IHF1aWNrbHkgYWxsIHdlIGNhbiBkbyBpcyBjbG9zZSB0aGUgY29ubmVjdGlvblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnJhdGVMaW1pdGVyLmNvbnN1bWUoJ21pc3Npbmctc3RyZWFtJywgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2coJ3JhdGUgbGltaXQgaGl0IHdoZW4gcmVjZWl2aW5nIG1lc3NhZ2VzIGZvciBzdHJlYW1zIHRoYXQgZG8gbm90IGV4aXN0IC0gY2xvc2luZyByZW1vdGUgY29ubmVjdGlvbicpO1xuICAgICAgICAgICAgICAgIC8vIHNpbmNlIHRoZXJlJ3Mgbm8gYmFja3ByZXNzdXJlIGluIG1wbGV4LCB0aGUgb25seSB0aGluZyB3ZSBjYW4gcmVhbGx5IGRvIHRvIHByb3RlY3Qgb3Vyc2VsdmVzIGlzIGNsb3NlIHRoZSBjb25uZWN0aW9uXG4gICAgICAgICAgICAgICAgdGhpcy5hYm9ydChuZXcgRXJyb3IoJ1RvbyBtYW55IG1lc3NhZ2VzIGZvciBtaXNzaW5nIHN0cmVhbXMnKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1heEJ1ZmZlclNpemUgPSB0aGlzLl9pbml0Lm1heFN0cmVhbUJ1ZmZlclNpemUgPz8gTUFYX1NUUkVBTV9CVUZGRVJfU0laRTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgTWVzc2FnZVR5cGVzLk1FU1NBR0VfSU5JVElBVE9SOlxuICAgICAgICAgICAgICAgIGNhc2UgTWVzc2FnZVR5cGVzLk1FU1NBR0VfUkVDRUlWRVI6XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdHJlYW0uc291cmNlUmVhZGFibGVMZW5ndGgoKSA+IG1heEJ1ZmZlclNpemUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN0cmVhbSBidWZmZXIgaGFzIGdvdCB0b28gbGFyZ2UsIHJlc2V0IHRoZSBzdHJlYW1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NvdXJjZS5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogbWVzc2FnZS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB0eXBlID09PSBNZXNzYWdlVHlwZXMuTUVTU0FHRV9JTklUSUFUT1IgPyBNZXNzYWdlVHlwZXMuUkVTRVRfUkVDRUlWRVIgOiBNZXNzYWdlVHlwZXMuUkVTRVRfSU5JVElBVE9SXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluZm9ybSB0aGUgc3RyZWFtIGNvbnN1bWVyIHRoZXkgYXJlIG5vdCBmYXN0IGVub3VnaFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcignSW5wdXQgYnVmZmVyIGZ1bGwgLSBpbmNyZWFzZSBNcGxleCBtYXhCdWZmZXJTaXplIHRvIGFjY29tbW9kYXRlIHNsb3cgY29uc3VtZXJzJywgJ0VSUl9TVFJFQU1fSU5QVVRfQlVGRkVSX0ZVTEwnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBXZSBnb3QgZGF0YSBmcm9tIHRoZSByZW1vdGUsIHB1c2ggaXQgaW50byBvdXIgbG9jYWwgc3RyZWFtXG4gICAgICAgICAgICAgICAgICAgIHN0cmVhbS5zb3VyY2VQdXNoKG1lc3NhZ2UuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgTWVzc2FnZVR5cGVzLkNMT1NFX0lOSVRJQVRPUjpcbiAgICAgICAgICAgICAgICBjYXNlIE1lc3NhZ2VUeXBlcy5DTE9TRV9SRUNFSVZFUjpcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHJlbW90ZSBoYXMgc3RvcHBlZCB3cml0aW5nLCBzbyB3ZSBjYW4gc3RvcCByZWFkaW5nXG4gICAgICAgICAgICAgICAgICAgIHN0cmVhbS5yZW1vdGVDbG9zZVdyaXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgTWVzc2FnZVR5cGVzLlJFU0VUX0lOSVRJQVRPUjpcbiAgICAgICAgICAgICAgICBjYXNlIE1lc3NhZ2VUeXBlcy5SRVNFVF9SRUNFSVZFUjpcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHJlbW90ZSBoYXMgZXJyb3JlZCwgc3RvcCByZWFkaW5nIGFuZCB3cml0aW5nIHRvIHRoZSBzdHJlYW0gaW1tZWRpYXRlbHlcbiAgICAgICAgICAgICAgICAgICAgc3RyZWFtLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9nKCd1bmtub3duIG1lc3NhZ2UgdHlwZSAlcycsIHR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHRoaXMubG9nLmVycm9yKCdlcnJvciB3aGlsZSBwcm9jZXNzaW5nIG1lc3NhZ2UnLCBlcnIpO1xuICAgICAgICAgICAgc3RyZWFtLmFib3J0KGVycik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tcGxleC5qcy5tYXAiXSwibmFtZXMiOlsiQ29kZUVycm9yIiwiY2xvc2VTb3VyY2UiLCJSYXRlTGltaXRlciIsInBpcGUiLCJwdXNoYWJsZSIsInRvU3RyaW5nIiwidWludDhBcnJheVRvU3RyaW5nIiwiRGVjb2RlciIsImVuY29kZSIsIk1lc3NhZ2VUeXBlcyIsIk1lc3NhZ2VUeXBlTmFtZXMiLCJjcmVhdGVTdHJlYW0iLCJNQVhfU1RSRUFNU19JTkJPVU5EX1NUUkVBTVNfUEVSX0NPTk5FQ1RJT04iLCJNQVhfU1RSRUFNU19PVVRCT1VORF9TVFJFQU1TX1BFUl9DT05ORUNUSU9OIiwiTUFYX1NUUkVBTV9CVUZGRVJfU0laRSIsIkRJU0NPTk5FQ1RfVEhSRVNIT0xEIiwiQ0xPU0VfVElNRU9VVCIsInByaW50TWVzc2FnZSIsIm1zZyIsIm91dHB1dCIsInR5cGUiLCJORVdfU1RSRUFNIiwiZGF0YSIsIlVpbnQ4QXJyYXkiLCJzdWJhcnJheSIsIk1FU1NBR0VfSU5JVElBVE9SIiwiTUVTU0FHRV9SRUNFSVZFUiIsIk1wbGV4U3RyZWFtTXV4ZXIiLCJjb25zdHJ1Y3RvciIsImNvbXBvbmVudHMiLCJpbml0IiwicHJvdG9jb2wiLCJsb2ciLCJsb2dnZXIiLCJmb3JDb21wb25lbnQiLCJfc3RyZWFtSWQiLCJfc3RyZWFtcyIsImluaXRpYXRvcnMiLCJNYXAiLCJyZWNlaXZlcnMiLCJfaW5pdCIsImNsb3NlVGltZW91dCIsInNpbmsiLCJfY3JlYXRlU2luayIsIl9zb3VyY2UiLCJvYmplY3RNb2RlIiwib25FbmQiLCJzdHJlYW0iLCJ2YWx1ZXMiLCJkZXN0cm95Iiwic291cmNlIiwiY2xvc2VDb250cm9sbGVyIiwiQWJvcnRDb250cm9sbGVyIiwicmF0ZUxpbWl0ZXIiLCJwb2ludHMiLCJkaXNjb25uZWN0VGhyZXNob2xkIiwiZHVyYXRpb24iLCJzdHJlYW1zIiwicHVzaCIsIm5ld1N0cmVhbSIsIm5hbWUiLCJzaWduYWwiLCJhYm9ydGVkIiwiRXJyb3IiLCJpZCIsInJlZ2lzdHJ5IiwiX25ld1N0cmVhbSIsImNsb3NlIiwib3B0aW9ucyIsIkFib3J0U2lnbmFsIiwidGltZW91dCIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJzIiwiZW5kIiwib25FbXB0eSIsImFib3J0IiwiZXJyIiwiZm9yRWFjaCIsIl9uZXdSZWNlaXZlclN0cmVhbSIsInNpemUiLCJtYXhPdXRib3VuZFN0cmVhbXMiLCJoYXMiLCJzZW5kIiwiZW5hYmxlZCIsInRyYWNlIiwiZGVsZXRlIiwib25TdHJlYW1FbmQiLCJtYXhNc2dTaXplIiwic2V0IiwiYWJvcnRMaXN0ZW5lciIsImFkZEV2ZW50TGlzdGVuZXIiLCJkZWNvZGVyIiwibWF4VW5wcm9jZXNzZWRNZXNzYWdlUXVldWVTaXplIiwiY2h1bmsiLCJ3cml0ZSIsIl9oYW5kbGVJbmNvbWluZyIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJtZXNzYWdlIiwibWF4SW5ib3VuZFN0cmVhbXMiLCJSRVNFVF9SRUNFSVZFUiIsImNvbnN1bWUiLCJvbkluY29taW5nU3RyZWFtIiwibGlzdCIsImdldCIsIm1heEJ1ZmZlclNpemUiLCJtYXhTdHJlYW1CdWZmZXJTaXplIiwic291cmNlUmVhZGFibGVMZW5ndGgiLCJSRVNFVF9JTklUSUFUT1IiLCJzb3VyY2VQdXNoIiwiQ0xPU0VfSU5JVElBVE9SIiwiQ0xPU0VfUkVDRUlWRVIiLCJyZW1vdGVDbG9zZVdyaXRlIiwicmVzZXQiLCJlcnJvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/mplex/dist/src/mplex.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/mplex/dist/src/stream.js":
/*!*******************************************************!*\
!*** ./node_modules/@libp2p/mplex/dist/src/stream.js ***!
\*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MplexStream: () => (/* binding */ MplexStream),\n/* harmony export */ createStream: () => (/* binding */ createStream)\n/* harmony export */ });\n/* harmony import */ var _libp2p_utils_abstract_stream__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @libp2p/utils/abstract-stream */ \"(ssr)/./node_modules/@libp2p/utils/dist/src/abstract-stream.js\");\n/* harmony import */ var uint8arraylist__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uint8arraylist */ \"(ssr)/./node_modules/uint8arraylist/dist/src/index.js\");\n/* harmony import */ var uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uint8arrays/from-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/from-string.node.js\");\n/* harmony import */ var _decode_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./decode.js */ \"(ssr)/./node_modules/@libp2p/mplex/dist/src/decode.js\");\n/* harmony import */ var _message_types_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./message-types.js */ \"(ssr)/./node_modules/@libp2p/mplex/dist/src/message-types.js\");\n\n\n\n\n\nclass MplexStream extends _libp2p_utils_abstract_stream__WEBPACK_IMPORTED_MODULE_2__.AbstractStream {\n constructor(init){\n super(init);\n this.types = init.direction === \"outbound\" ? _message_types_js__WEBPACK_IMPORTED_MODULE_3__.InitiatorMessageTypes : _message_types_js__WEBPACK_IMPORTED_MODULE_3__.ReceiverMessageTypes;\n this.send = init.send;\n this.name = init.name;\n this.streamId = init.streamId;\n this.maxDataSize = init.maxDataSize;\n }\n async sendNewStream() {\n await this.send({\n id: this.streamId,\n type: _message_types_js__WEBPACK_IMPORTED_MODULE_3__.InitiatorMessageTypes.NEW_STREAM,\n data: new uint8arraylist__WEBPACK_IMPORTED_MODULE_0__.Uint8ArrayList((0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__.fromString)(this.name))\n });\n }\n async sendData(data) {\n data = data.sublist();\n while(data.byteLength > 0){\n const toSend = Math.min(data.byteLength, this.maxDataSize);\n await this.send({\n id: this.streamId,\n type: this.types.MESSAGE,\n data: data.sublist(0, toSend)\n });\n data.consume(toSend);\n }\n }\n async sendReset() {\n await this.send({\n id: this.streamId,\n type: this.types.RESET\n });\n }\n async sendCloseWrite() {\n await this.send({\n id: this.streamId,\n type: this.types.CLOSE\n });\n }\n async sendCloseRead() {\n // mplex does not support close read, only close write\n }\n}\nfunction createStream(options) {\n const { id, name, send, onEnd, type = \"initiator\", maxMsgSize = _decode_js__WEBPACK_IMPORTED_MODULE_4__.MAX_MSG_SIZE } = options;\n return new MplexStream({\n id: type === \"initiator\" ? `i${id}` : `r${id}`,\n streamId: id,\n name: `${name == null ? id : name}`,\n direction: type === \"initiator\" ? \"outbound\" : \"inbound\",\n maxDataSize: maxMsgSize,\n onEnd,\n send,\n log: options.logger.forComponent(`libp2p:mplex:stream:${type}:${id}`)\n });\n} //# sourceMappingURL=stream.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9tcGxleC9kaXN0L3NyYy9zdHJlYW0uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUErRDtBQUNmO0FBQzZCO0FBQ2xDO0FBQ3NDO0FBQzFFLE1BQU1PLG9CQUFvQlAseUVBQWNBO0lBTTNDUSxZQUFZQyxJQUFJLENBQUU7UUFDZCxLQUFLLENBQUNBO1FBQ04sSUFBSSxDQUFDQyxLQUFLLEdBQUdELEtBQUtFLFNBQVMsS0FBSyxhQUFhTixvRUFBcUJBLEdBQUdDLG1FQUFvQkE7UUFDekYsSUFBSSxDQUFDTSxJQUFJLEdBQUdILEtBQUtHLElBQUk7UUFDckIsSUFBSSxDQUFDQyxJQUFJLEdBQUdKLEtBQUtJLElBQUk7UUFDckIsSUFBSSxDQUFDQyxRQUFRLEdBQUdMLEtBQUtLLFFBQVE7UUFDN0IsSUFBSSxDQUFDQyxXQUFXLEdBQUdOLEtBQUtNLFdBQVc7SUFDdkM7SUFDQSxNQUFNQyxnQkFBZ0I7UUFDbEIsTUFBTSxJQUFJLENBQUNKLElBQUksQ0FBQztZQUFFSyxJQUFJLElBQUksQ0FBQ0gsUUFBUTtZQUFFSSxNQUFNYixvRUFBcUJBLENBQUNjLFVBQVU7WUFBRUMsTUFBTSxJQUFJbkIsMERBQWNBLENBQUNFLG1FQUFvQkEsQ0FBQyxJQUFJLENBQUNVLElBQUk7UUFBRztJQUMzSTtJQUNBLE1BQU1RLFNBQVNELElBQUksRUFBRTtRQUNqQkEsT0FBT0EsS0FBS0UsT0FBTztRQUNuQixNQUFPRixLQUFLRyxVQUFVLEdBQUcsRUFBRztZQUN4QixNQUFNQyxTQUFTQyxLQUFLQyxHQUFHLENBQUNOLEtBQUtHLFVBQVUsRUFBRSxJQUFJLENBQUNSLFdBQVc7WUFDekQsTUFBTSxJQUFJLENBQUNILElBQUksQ0FBQztnQkFDWkssSUFBSSxJQUFJLENBQUNILFFBQVE7Z0JBQ2pCSSxNQUFNLElBQUksQ0FBQ1IsS0FBSyxDQUFDaUIsT0FBTztnQkFDeEJQLE1BQU1BLEtBQUtFLE9BQU8sQ0FBQyxHQUFHRTtZQUMxQjtZQUNBSixLQUFLUSxPQUFPLENBQUNKO1FBQ2pCO0lBQ0o7SUFDQSxNQUFNSyxZQUFZO1FBQ2QsTUFBTSxJQUFJLENBQUNqQixJQUFJLENBQUM7WUFBRUssSUFBSSxJQUFJLENBQUNILFFBQVE7WUFBRUksTUFBTSxJQUFJLENBQUNSLEtBQUssQ0FBQ29CLEtBQUs7UUFBQztJQUNoRTtJQUNBLE1BQU1DLGlCQUFpQjtRQUNuQixNQUFNLElBQUksQ0FBQ25CLElBQUksQ0FBQztZQUFFSyxJQUFJLElBQUksQ0FBQ0gsUUFBUTtZQUFFSSxNQUFNLElBQUksQ0FBQ1IsS0FBSyxDQUFDc0IsS0FBSztRQUFDO0lBQ2hFO0lBQ0EsTUFBTUMsZ0JBQWdCO0lBQ2xCLHNEQUFzRDtJQUMxRDtBQUNKO0FBQ08sU0FBU0MsYUFBYUMsT0FBTztJQUNoQyxNQUFNLEVBQUVsQixFQUFFLEVBQUVKLElBQUksRUFBRUQsSUFBSSxFQUFFd0IsS0FBSyxFQUFFbEIsT0FBTyxXQUFXLEVBQUVtQixhQUFhakMsb0RBQVksRUFBRSxHQUFHK0I7SUFDakYsT0FBTyxJQUFJNUIsWUFBWTtRQUNuQlUsSUFBSUMsU0FBUyxjQUFlLENBQUMsQ0FBQyxFQUFFRCxHQUFHLENBQUMsR0FBSSxDQUFDLENBQUMsRUFBRUEsR0FBRyxDQUFDO1FBQ2hESCxVQUFVRztRQUNWSixNQUFNLENBQUMsRUFBRUEsUUFBUSxPQUFPSSxLQUFLSixLQUFLLENBQUM7UUFDbkNGLFdBQVdPLFNBQVMsY0FBYyxhQUFhO1FBQy9DSCxhQUFhc0I7UUFDYkQ7UUFDQXhCO1FBQ0EwQixLQUFLSCxRQUFRSSxNQUFNLENBQUNDLFlBQVksQ0FBQyxDQUFDLG9CQUFvQixFQUFFdEIsS0FBSyxDQUFDLEVBQUVELEdBQUcsQ0FBQztJQUN4RTtBQUNKLEVBQ0Esa0NBQWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9tcGxleC9kaXN0L3NyYy9zdHJlYW0uanM/OGY4MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdFN0cmVhbSB9IGZyb20gJ0BsaWJwMnAvdXRpbHMvYWJzdHJhY3Qtc3RyZWFtJztcbmltcG9ydCB7IFVpbnQ4QXJyYXlMaXN0IH0gZnJvbSAndWludDhhcnJheWxpc3QnO1xuaW1wb3J0IHsgZnJvbVN0cmluZyBhcyB1aW50OEFycmF5RnJvbVN0cmluZyB9IGZyb20gJ3VpbnQ4YXJyYXlzL2Zyb20tc3RyaW5nJztcbmltcG9ydCB7IE1BWF9NU0dfU0laRSB9IGZyb20gJy4vZGVjb2RlLmpzJztcbmltcG9ydCB7IEluaXRpYXRvck1lc3NhZ2VUeXBlcywgUmVjZWl2ZXJNZXNzYWdlVHlwZXMgfSBmcm9tICcuL21lc3NhZ2UtdHlwZXMuanMnO1xuZXhwb3J0IGNsYXNzIE1wbGV4U3RyZWFtIGV4dGVuZHMgQWJzdHJhY3RTdHJlYW0ge1xuICAgIG5hbWU7XG4gICAgc3RyZWFtSWQ7XG4gICAgc2VuZDtcbiAgICB0eXBlcztcbiAgICBtYXhEYXRhU2l6ZTtcbiAgICBjb25zdHJ1Y3Rvcihpbml0KSB7XG4gICAgICAgIHN1cGVyKGluaXQpO1xuICAgICAgICB0aGlzLnR5cGVzID0gaW5pdC5kaXJlY3Rpb24gPT09ICdvdXRib3VuZCcgPyBJbml0aWF0b3JNZXNzYWdlVHlwZXMgOiBSZWNlaXZlck1lc3NhZ2VUeXBlcztcbiAgICAgICAgdGhpcy5zZW5kID0gaW5pdC5zZW5kO1xuICAgICAgICB0aGlzLm5hbWUgPSBpbml0Lm5hbWU7XG4gICAgICAgIHRoaXMuc3RyZWFtSWQgPSBpbml0LnN0cmVhbUlkO1xuICAgICAgICB0aGlzLm1heERhdGFTaXplID0gaW5pdC5tYXhEYXRhU2l6ZTtcbiAgICB9XG4gICAgYXN5bmMgc2VuZE5ld1N0cmVhbSgpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5zZW5kKHsgaWQ6IHRoaXMuc3RyZWFtSWQsIHR5cGU6IEluaXRpYXRvck1lc3NhZ2VUeXBlcy5ORVdfU1RSRUFNLCBkYXRhOiBuZXcgVWludDhBcnJheUxpc3QodWludDhBcnJheUZyb21TdHJpbmcodGhpcy5uYW1lKSkgfSk7XG4gICAgfVxuICAgIGFzeW5jIHNlbmREYXRhKGRhdGEpIHtcbiAgICAgICAgZGF0YSA9IGRhdGEuc3VibGlzdCgpO1xuICAgICAgICB3aGlsZSAoZGF0YS5ieXRlTGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgdG9TZW5kID0gTWF0aC5taW4oZGF0YS5ieXRlTGVuZ3RoLCB0aGlzLm1heERhdGFTaXplKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2VuZCh7XG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMuc3RyZWFtSWQsXG4gICAgICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlcy5NRVNTQUdFLFxuICAgICAgICAgICAgICAgIGRhdGE6IGRhdGEuc3VibGlzdCgwLCB0b1NlbmQpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGRhdGEuY29uc3VtZSh0b1NlbmQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIHNlbmRSZXNldCgpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5zZW5kKHsgaWQ6IHRoaXMuc3RyZWFtSWQsIHR5cGU6IHRoaXMudHlwZXMuUkVTRVQgfSk7XG4gICAgfVxuICAgIGFzeW5jIHNlbmRDbG9zZVdyaXRlKCkge1xuICAgICAgICBhd2FpdCB0aGlzLnNlbmQoeyBpZDogdGhpcy5zdHJlYW1JZCwgdHlwZTogdGhpcy50eXBlcy5DTE9TRSB9KTtcbiAgICB9XG4gICAgYXN5bmMgc2VuZENsb3NlUmVhZCgpIHtcbiAgICAgICAgLy8gbXBsZXggZG9lcyBub3Qgc3VwcG9ydCBjbG9zZSByZWFkLCBvbmx5IGNsb3NlIHdyaXRlXG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN0cmVhbShvcHRpb25zKSB7XG4gICAgY29uc3QgeyBpZCwgbmFtZSwgc2VuZCwgb25FbmQsIHR5cGUgPSAnaW5pdGlhdG9yJywgbWF4TXNnU2l6ZSA9IE1BWF9NU0dfU0laRSB9ID0gb3B0aW9ucztcbiAgICByZXR1cm4gbmV3IE1wbGV4U3RyZWFtKHtcbiAgICAgICAgaWQ6IHR5cGUgPT09ICdpbml0aWF0b3InID8gKGBpJHtpZH1gKSA6IGByJHtpZH1gLFxuICAgICAgICBzdHJlYW1JZDogaWQsXG4gICAgICAgIG5hbWU6IGAke25hbWUgPT0gbnVsbCA/IGlkIDogbmFtZX1gLFxuICAgICAgICBkaXJlY3Rpb246IHR5cGUgPT09ICdpbml0aWF0b3InID8gJ291dGJvdW5kJyA6ICdpbmJvdW5kJyxcbiAgICAgICAgbWF4RGF0YVNpemU6IG1heE1zZ1NpemUsXG4gICAgICAgIG9uRW5kLFxuICAgICAgICBzZW5kLFxuICAgICAgICBsb2c6IG9wdGlvbnMubG9nZ2VyLmZvckNvbXBvbmVudChgbGlicDJwOm1wbGV4OnN0cmVhbToke3R5cGV9OiR7aWR9YClcbiAgICB9KTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0cmVhbS5qcy5tYXAiXSwibmFtZXMiOlsiQWJzdHJhY3RTdHJlYW0iLCJVaW50OEFycmF5TGlzdCIsImZyb21TdHJpbmciLCJ1aW50OEFycmF5RnJvbVN0cmluZyIsIk1BWF9NU0dfU0laRSIsIkluaXRpYXRvck1lc3NhZ2VUeXBlcyIsIlJlY2VpdmVyTWVzc2FnZVR5cGVzIiwiTXBsZXhTdHJlYW0iLCJjb25zdHJ1Y3RvciIsImluaXQiLCJ0eXBlcyIsImRpcmVjdGlvbiIsInNlbmQiLCJuYW1lIiwic3RyZWFtSWQiLCJtYXhEYXRhU2l6ZSIsInNlbmROZXdTdHJlYW0iLCJpZCIsInR5cGUiLCJORVdfU1RSRUFNIiwiZGF0YSIsInNlbmREYXRhIiwic3VibGlzdCIsImJ5dGVMZW5ndGgiLCJ0b1NlbmQiLCJNYXRoIiwibWluIiwiTUVTU0FHRSIsImNvbnN1bWUiLCJzZW5kUmVzZXQiLCJSRVNFVCIsInNlbmRDbG9zZVdyaXRlIiwiQ0xPU0UiLCJzZW5kQ2xvc2VSZWFkIiwiY3JlYXRlU3RyZWFtIiwib3B0aW9ucyIsIm9uRW5kIiwibWF4TXNnU2l6ZSIsImxvZyIsImxvZ2dlciIsImZvckNvbXBvbmVudCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/mplex/dist/src/stream.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/multistream-select/dist/src/constants.js":
/*!***********************************************************************!*\
!*** ./node_modules/@libp2p/multistream-select/dist/src/constants.js ***!
\***********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MAX_PROTOCOL_LENGTH: () => (/* binding */ MAX_PROTOCOL_LENGTH),\n/* harmony export */ PROTOCOL_ID: () => (/* binding */ PROTOCOL_ID)\n/* harmony export */ });\nconst PROTOCOL_ID = \"/multistream/1.0.0\";\n// Conforming to go-libp2p\n// See https://github.com/multiformats/go-multistream/blob/master/multistream.go#L297\nconst MAX_PROTOCOL_LENGTH = 1024; //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9tdWx0aXN0cmVhbS1zZWxlY3QvZGlzdC9zcmMvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQU8sTUFBTUEsY0FBYyxxQkFBcUI7QUFDaEQsMEJBQTBCO0FBQzFCLHFGQUFxRjtBQUM5RSxNQUFNQyxzQkFBc0IsS0FBSyxDQUN4QyxxQ0FBcUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL211bHRpc3RyZWFtLXNlbGVjdC9kaXN0L3NyYy9jb25zdGFudHMuanM/ZDQ5MyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgUFJPVE9DT0xfSUQgPSAnL211bHRpc3RyZWFtLzEuMC4wJztcbi8vIENvbmZvcm1pbmcgdG8gZ28tbGlicDJwXG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL211bHRpZm9ybWF0cy9nby1tdWx0aXN0cmVhbS9ibG9iL21hc3Rlci9tdWx0aXN0cmVhbS5nbyNMMjk3XG5leHBvcnQgY29uc3QgTUFYX1BST1RPQ09MX0xFTkdUSCA9IDEwMjQ7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbIlBST1RPQ09MX0lEIiwiTUFYX1BST1RPQ09MX0xFTkdUSCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/multistream-select/dist/src/constants.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/multistream-select/dist/src/handle.js":
/*!********************************************************************!*\
!*** ./node_modules/@libp2p/multistream-select/dist/src/handle.js ***!
\********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ handle: () => (/* binding */ handle)\n/* harmony export */ });\n/* harmony import */ var it_length_prefixed__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! it-length-prefixed */ \"(ssr)/./node_modules/it-length-prefixed/dist/src/index.js\");\n/* harmony import */ var it_length_prefixed_stream__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! it-length-prefixed-stream */ \"(ssr)/./node_modules/it-length-prefixed-stream/dist/src/index.js\");\n/* harmony import */ var uint8arraylist__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uint8arraylist */ \"(ssr)/./node_modules/uint8arraylist/dist/src/index.js\");\n/* harmony import */ var uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! uint8arrays/from-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/from-string.node.js\");\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants.js */ \"(ssr)/./node_modules/@libp2p/multistream-select/dist/src/constants.js\");\n/* harmony import */ var _multistream_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./multistream.js */ \"(ssr)/./node_modules/@libp2p/multistream-select/dist/src/multistream.js\");\n\n\n\n\n\n\n/**\n * Handle multistream protocol selections for the given list of protocols.\n *\n * Note that after a protocol is handled `listener` can no longer be used.\n *\n * @param stream - A duplex iterable stream to listen on\n * @param protocols - A list of protocols (or single protocol) that this listener is able to speak.\n * @param options - an options object containing an AbortSignal and an optional boolean `writeBytes` - if this is true, `Uint8Array`s will be written into `duplex`, otherwise `Uint8ArrayList`s will\n * @returns A stream for the selected protocol and the protocol that was selected from the list of protocols provided to `select`\n * @example\n *\n * ```TypeScript\n * import { pipe } from 'it-pipe'\n * import * as mss from '@libp2p/multistream-select'\n * import { Mplex } from '@libp2p/mplex'\n *\n * const muxer = new Mplex({\n * async onStream (muxedStream) {\n * // mss.handle(handledProtocols)\n * // Returns selected stream and protocol\n * const { stream, protocol } = await mss.handle(muxedStream, [\n * '/ipfs-dht/1.0.0',\n * '/ipfs-bitswap/1.0.0'\n * ])\n *\n * // Typically here we'd call the handler function that was registered in\n * // libp2p for the given protocol:\n * // e.g. handlers[protocol].handler(stream)\n * //\n * // If protocol was /ipfs-dht/1.0.0 it might do something like this:\n * // try {\n * // await pipe(\n * // dhtStream,\n * // source => (async function * () {\n * // for await (const chunk of source)\n * // // Incoming DHT data -> process and yield to respond\n * // })(),\n * // dhtStream\n * // )\n * // } catch (err) {\n * // // Error in stream\n * // }\n * }\n * })\n * ```\n */ async function handle(stream, protocols, options) {\n protocols = Array.isArray(protocols) ? protocols : [\n protocols\n ];\n options.log.trace(\"handle: available protocols %s\", protocols);\n const lp = (0,it_length_prefixed_stream__WEBPACK_IMPORTED_MODULE_1__.lpStream)(stream, {\n ...options,\n maxDataLength: _constants_js__WEBPACK_IMPORTED_MODULE_4__.MAX_PROTOCOL_LENGTH,\n maxLengthLength: 2 // 2 bytes is enough to length-prefix MAX_PROTOCOL_LENGTH\n });\n while(true){\n options.log.trace(\"handle: reading incoming string\");\n const protocol = await _multistream_js__WEBPACK_IMPORTED_MODULE_5__.readString(lp, options);\n options.log.trace('handle: read \"%s\"', protocol);\n if (protocol === _constants_js__WEBPACK_IMPORTED_MODULE_4__.PROTOCOL_ID) {\n options.log.trace('handle: respond with \"%s\" for \"%s\"', _constants_js__WEBPACK_IMPORTED_MODULE_4__.PROTOCOL_ID, protocol);\n await _multistream_js__WEBPACK_IMPORTED_MODULE_5__.write(lp, (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_3__.fromString)(`${_constants_js__WEBPACK_IMPORTED_MODULE_4__.PROTOCOL_ID}\\n`), options);\n options.log.trace('handle: responded with \"%s\" for \"%s\"', _constants_js__WEBPACK_IMPORTED_MODULE_4__.PROTOCOL_ID, protocol);\n continue;\n }\n if (protocols.includes(protocol)) {\n options.log.trace('handle: respond with \"%s\" for \"%s\"', protocol, protocol);\n await _multistream_js__WEBPACK_IMPORTED_MODULE_5__.write(lp, (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_3__.fromString)(`${protocol}\\n`), options);\n options.log.trace('handle: responded with \"%s\" for \"%s\"', protocol, protocol);\n return {\n stream: lp.unwrap(),\n protocol\n };\n }\n if (protocol === \"ls\") {\n // <varint-msg-len><varint-proto-name-len><proto-name>\\n<varint-proto-name-len><proto-name>\\n\\n\n const protos = new uint8arraylist__WEBPACK_IMPORTED_MODULE_2__.Uint8ArrayList(...protocols.map((p)=>it_length_prefixed__WEBPACK_IMPORTED_MODULE_0__.encode.single((0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_3__.fromString)(`${p}\\n`))), (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_3__.fromString)(\"\\n\"));\n options.log.trace('handle: respond with \"%s\" for %s', protocols, protocol);\n await _multistream_js__WEBPACK_IMPORTED_MODULE_5__.write(lp, protos, options);\n options.log.trace('handle: responded with \"%s\" for %s', protocols, protocol);\n continue;\n }\n options.log('handle: respond with \"na\" for \"%s\"', protocol);\n await _multistream_js__WEBPACK_IMPORTED_MODULE_5__.write(lp, (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_3__.fromString)(\"na\\n\"), options);\n options.log('handle: responded with \"na\" for \"%s\"', protocol);\n }\n} //# sourceMappingURL=handle.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9tdWx0aXN0cmVhbS1zZWxlY3QvZGlzdC9zcmMvaGFuZGxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBNEM7QUFDUztBQUNMO0FBQzZCO0FBQ1g7QUFDbEI7QUFDaEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTZDQyxHQUNNLGVBQWVRLE9BQU9DLE1BQU0sRUFBRUMsU0FBUyxFQUFFQyxPQUFPO0lBQ25ERCxZQUFZRSxNQUFNQyxPQUFPLENBQUNILGFBQWFBLFlBQVk7UUFBQ0E7S0FBVTtJQUM5REMsUUFBUUcsR0FBRyxDQUFDQyxLQUFLLENBQUMsa0NBQWtDTDtJQUNwRCxNQUFNTSxLQUFLZixtRUFBUUEsQ0FBQ1EsUUFBUTtRQUN4QixHQUFHRSxPQUFPO1FBQ1ZNLGVBQWVaLDhEQUFtQkE7UUFDbENhLGlCQUFpQixFQUFFLHlEQUF5RDtJQUNoRjtJQUNBLE1BQU8sS0FBTTtRQUNUUCxRQUFRRyxHQUFHLENBQUNDLEtBQUssQ0FBQztRQUNsQixNQUFNSSxXQUFXLE1BQU1aLHVEQUFzQixDQUFDUyxJQUFJTDtRQUNsREEsUUFBUUcsR0FBRyxDQUFDQyxLQUFLLENBQUMscUJBQXFCSTtRQUN2QyxJQUFJQSxhQUFhYixzREFBV0EsRUFBRTtZQUMxQkssUUFBUUcsR0FBRyxDQUFDQyxLQUFLLENBQUMsc0NBQXNDVCxzREFBV0EsRUFBRWE7WUFDckUsTUFBTVosa0RBQWlCLENBQUNTLElBQUlaLG1FQUFvQkEsQ0FBQyxDQUFDLEVBQUVFLHNEQUFXQSxDQUFDLEVBQUUsQ0FBQyxHQUFHSztZQUN0RUEsUUFBUUcsR0FBRyxDQUFDQyxLQUFLLENBQUMsd0NBQXdDVCxzREFBV0EsRUFBRWE7WUFDdkU7UUFDSjtRQUNBLElBQUlULFVBQVVZLFFBQVEsQ0FBQ0gsV0FBVztZQUM5QlIsUUFBUUcsR0FBRyxDQUFDQyxLQUFLLENBQUMsc0NBQXNDSSxVQUFVQTtZQUNsRSxNQUFNWixrREFBaUIsQ0FBQ1MsSUFBSVosbUVBQW9CQSxDQUFDLENBQUMsRUFBRWUsU0FBUyxFQUFFLENBQUMsR0FBR1I7WUFDbkVBLFFBQVFHLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDLHdDQUF3Q0ksVUFBVUE7WUFDcEUsT0FBTztnQkFBRVYsUUFBUU8sR0FBR08sTUFBTTtnQkFBSUo7WUFBUztRQUMzQztRQUNBLElBQUlBLGFBQWEsTUFBTTtZQUNuQiwrRkFBK0Y7WUFDL0YsTUFBTUssU0FBUyxJQUFJdEIsMERBQWNBLElBQUlRLFVBQVVlLEdBQUcsQ0FBQ0MsQ0FBQUEsSUFBSzFCLHNEQUFNQSxDQUFDMkIsTUFBTSxDQUFDdkIsbUVBQW9CQSxDQUFDLENBQUMsRUFBRXNCLEVBQUUsRUFBRSxDQUFDLEtBQUt0QixtRUFBb0JBLENBQUM7WUFDN0hPLFFBQVFHLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDLG9DQUFvQ0wsV0FBV1M7WUFDakUsTUFBTVosa0RBQWlCLENBQUNTLElBQUlRLFFBQVFiO1lBQ3BDQSxRQUFRRyxHQUFHLENBQUNDLEtBQUssQ0FBQyxzQ0FBc0NMLFdBQVdTO1lBQ25FO1FBQ0o7UUFDQVIsUUFBUUcsR0FBRyxDQUFDLHNDQUFzQ0s7UUFDbEQsTUFBTVosa0RBQWlCLENBQUNTLElBQUlaLG1FQUFvQkEsQ0FBQyxTQUFTTztRQUMxREEsUUFBUUcsR0FBRyxDQUFDLHdDQUF3Q0s7SUFDeEQ7QUFDSixFQUNBLGtDQUFrQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvbXVsdGlzdHJlYW0tc2VsZWN0L2Rpc3Qvc3JjL2hhbmRsZS5qcz9jMzAyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVuY29kZSB9IGZyb20gJ2l0LWxlbmd0aC1wcmVmaXhlZCc7XG5pbXBvcnQgeyBscFN0cmVhbSB9IGZyb20gJ2l0LWxlbmd0aC1wcmVmaXhlZC1zdHJlYW0nO1xuaW1wb3J0IHsgVWludDhBcnJheUxpc3QgfSBmcm9tICd1aW50OGFycmF5bGlzdCc7XG5pbXBvcnQgeyBmcm9tU3RyaW5nIGFzIHVpbnQ4QXJyYXlGcm9tU3RyaW5nIH0gZnJvbSAndWludDhhcnJheXMvZnJvbS1zdHJpbmcnO1xuaW1wb3J0IHsgTUFYX1BST1RPQ09MX0xFTkdUSCwgUFJPVE9DT0xfSUQgfSBmcm9tICcuL2NvbnN0YW50cy5qcyc7XG5pbXBvcnQgKiBhcyBtdWx0aXN0cmVhbSBmcm9tICcuL211bHRpc3RyZWFtLmpzJztcbi8qKlxuICogSGFuZGxlIG11bHRpc3RyZWFtIHByb3RvY29sIHNlbGVjdGlvbnMgZm9yIHRoZSBnaXZlbiBsaXN0IG9mIHByb3RvY29scy5cbiAqXG4gKiBOb3RlIHRoYXQgYWZ0ZXIgYSBwcm90b2NvbCBpcyBoYW5kbGVkIGBsaXN0ZW5lcmAgY2FuIG5vIGxvbmdlciBiZSB1c2VkLlxuICpcbiAqIEBwYXJhbSBzdHJlYW0gLSBBIGR1cGxleCBpdGVyYWJsZSBzdHJlYW0gdG8gbGlzdGVuIG9uXG4gKiBAcGFyYW0gcHJvdG9jb2xzIC0gQSBsaXN0IG9mIHByb3RvY29scyAob3Igc2luZ2xlIHByb3RvY29sKSB0aGF0IHRoaXMgbGlzdGVuZXIgaXMgYWJsZSB0byBzcGVhay5cbiAqIEBwYXJhbSBvcHRpb25zIC0gYW4gb3B0aW9ucyBvYmplY3QgY29udGFpbmluZyBhbiBBYm9ydFNpZ25hbCBhbmQgYW4gb3B0aW9uYWwgYm9vbGVhbiBgd3JpdGVCeXRlc2AgLSBpZiB0aGlzIGlzIHRydWUsIGBVaW50OEFycmF5YHMgd2lsbCBiZSB3cml0dGVuIGludG8gYGR1cGxleGAsIG90aGVyd2lzZSBgVWludDhBcnJheUxpc3RgcyB3aWxsXG4gKiBAcmV0dXJucyBBIHN0cmVhbSBmb3IgdGhlIHNlbGVjdGVkIHByb3RvY29sIGFuZCB0aGUgcHJvdG9jb2wgdGhhdCB3YXMgc2VsZWN0ZWQgZnJvbSB0aGUgbGlzdCBvZiBwcm90b2NvbHMgcHJvdmlkZWQgdG8gYHNlbGVjdGBcbiAqIEBleGFtcGxlXG4gKlxuICogYGBgVHlwZVNjcmlwdFxuICogaW1wb3J0IHsgcGlwZSB9IGZyb20gJ2l0LXBpcGUnXG4gKiBpbXBvcnQgKiBhcyBtc3MgZnJvbSAnQGxpYnAycC9tdWx0aXN0cmVhbS1zZWxlY3QnXG4gKiBpbXBvcnQgeyBNcGxleCB9IGZyb20gJ0BsaWJwMnAvbXBsZXgnXG4gKlxuICogY29uc3QgbXV4ZXIgPSBuZXcgTXBsZXgoe1xuICogICBhc3luYyBvblN0cmVhbSAobXV4ZWRTdHJlYW0pIHtcbiAqICAgLy8gbXNzLmhhbmRsZShoYW5kbGVkUHJvdG9jb2xzKVxuICogICAvLyBSZXR1cm5zIHNlbGVjdGVkIHN0cmVhbSBhbmQgcHJvdG9jb2xcbiAqICAgY29uc3QgeyBzdHJlYW0sIHByb3RvY29sIH0gPSBhd2FpdCBtc3MuaGFuZGxlKG11eGVkU3RyZWFtLCBbXG4gKiAgICAgJy9pcGZzLWRodC8xLjAuMCcsXG4gKiAgICAgJy9pcGZzLWJpdHN3YXAvMS4wLjAnXG4gKiAgIF0pXG4gKlxuICogICAvLyBUeXBpY2FsbHkgaGVyZSB3ZSdkIGNhbGwgdGhlIGhhbmRsZXIgZnVuY3Rpb24gdGhhdCB3YXMgcmVnaXN0ZXJlZCBpblxuICogICAvLyBsaWJwMnAgZm9yIHRoZSBnaXZlbiBwcm90b2NvbDpcbiAqICAgLy8gZS5nLiBoYW5kbGVyc1twcm90b2NvbF0uaGFuZGxlcihzdHJlYW0pXG4gKiAgIC8vXG4gKiAgIC8vIElmIHByb3RvY29sIHdhcyAvaXBmcy1kaHQvMS4wLjAgaXQgbWlnaHQgZG8gc29tZXRoaW5nIGxpa2UgdGhpczpcbiAqICAgLy8gdHJ5IHtcbiAqICAgLy8gICBhd2FpdCBwaXBlKFxuICogICAvLyAgICAgZGh0U3RyZWFtLFxuICogICAvLyAgICAgc291cmNlID0+IChhc3luYyBmdW5jdGlvbiAqICgpIHtcbiAqICAgLy8gICAgICAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiBzb3VyY2UpXG4gKiAgIC8vICAgICAgICAgLy8gSW5jb21pbmcgREhUIGRhdGEgLT4gcHJvY2VzcyBhbmQgeWllbGQgdG8gcmVzcG9uZFxuICogICAvLyAgICAgfSkoKSxcbiAqICAgLy8gICAgIGRodFN0cmVhbVxuICogICAvLyAgIClcbiAqICAgLy8gfSBjYXRjaCAoZXJyKSB7XG4gKiAgIC8vICAgLy8gRXJyb3IgaW4gc3RyZWFtXG4gKiAgIC8vIH1cbiAqICAgfVxuICogfSlcbiAqIGBgYFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFuZGxlKHN0cmVhbSwgcHJvdG9jb2xzLCBvcHRpb25zKSB7XG4gICAgcHJvdG9jb2xzID0gQXJyYXkuaXNBcnJheShwcm90b2NvbHMpID8gcHJvdG9jb2xzIDogW3Byb3RvY29sc107XG4gICAgb3B0aW9ucy5sb2cudHJhY2UoJ2hhbmRsZTogYXZhaWxhYmxlIHByb3RvY29scyAlcycsIHByb3RvY29scyk7XG4gICAgY29uc3QgbHAgPSBscFN0cmVhbShzdHJlYW0sIHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgbWF4RGF0YUxlbmd0aDogTUFYX1BST1RPQ09MX0xFTkdUSCxcbiAgICAgICAgbWF4TGVuZ3RoTGVuZ3RoOiAyIC8vIDIgYnl0ZXMgaXMgZW5vdWdoIHRvIGxlbmd0aC1wcmVmaXggTUFYX1BST1RPQ09MX0xFTkdUSFxuICAgIH0pO1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIG9wdGlvbnMubG9nLnRyYWNlKCdoYW5kbGU6IHJlYWRpbmcgaW5jb21pbmcgc3RyaW5nJyk7XG4gICAgICAgIGNvbnN0IHByb3RvY29sID0gYXdhaXQgbXVsdGlzdHJlYW0ucmVhZFN0cmluZyhscCwgb3B0aW9ucyk7XG4gICAgICAgIG9wdGlvbnMubG9nLnRyYWNlKCdoYW5kbGU6IHJlYWQgXCIlc1wiJywgcHJvdG9jb2wpO1xuICAgICAgICBpZiAocHJvdG9jb2wgPT09IFBST1RPQ09MX0lEKSB7XG4gICAgICAgICAgICBvcHRpb25zLmxvZy50cmFjZSgnaGFuZGxlOiByZXNwb25kIHdpdGggXCIlc1wiIGZvciBcIiVzXCInLCBQUk9UT0NPTF9JRCwgcHJvdG9jb2wpO1xuICAgICAgICAgICAgYXdhaXQgbXVsdGlzdHJlYW0ud3JpdGUobHAsIHVpbnQ4QXJyYXlGcm9tU3RyaW5nKGAke1BST1RPQ09MX0lEfVxcbmApLCBvcHRpb25zKTtcbiAgICAgICAgICAgIG9wdGlvbnMubG9nLnRyYWNlKCdoYW5kbGU6IHJlc3BvbmRlZCB3aXRoIFwiJXNcIiBmb3IgXCIlc1wiJywgUFJPVE9DT0xfSUQsIHByb3RvY29sKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm90b2NvbHMuaW5jbHVkZXMocHJvdG9jb2wpKSB7XG4gICAgICAgICAgICBvcHRpb25zLmxvZy50cmFjZSgnaGFuZGxlOiByZXNwb25kIHdpdGggXCIlc1wiIGZvciBcIiVzXCInLCBwcm90b2NvbCwgcHJvdG9jb2wpO1xuICAgICAgICAgICAgYXdhaXQgbXVsdGlzdHJlYW0ud3JpdGUobHAsIHVpbnQ4QXJyYXlGcm9tU3RyaW5nKGAke3Byb3RvY29sfVxcbmApLCBvcHRpb25zKTtcbiAgICAgICAgICAgIG9wdGlvbnMubG9nLnRyYWNlKCdoYW5kbGU6IHJlc3BvbmRlZCB3aXRoIFwiJXNcIiBmb3IgXCIlc1wiJywgcHJvdG9jb2wsIHByb3RvY29sKTtcbiAgICAgICAgICAgIHJldHVybiB7IHN0cmVhbTogbHAudW53cmFwKCksIHByb3RvY29sIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb3RvY29sID09PSAnbHMnKSB7XG4gICAgICAgICAgICAvLyA8dmFyaW50LW1zZy1sZW4+PHZhcmludC1wcm90by1uYW1lLWxlbj48cHJvdG8tbmFtZT5cXG48dmFyaW50LXByb3RvLW5hbWUtbGVuPjxwcm90by1uYW1lPlxcblxcblxuICAgICAgICAgICAgY29uc3QgcHJvdG9zID0gbmV3IFVpbnQ4QXJyYXlMaXN0KC4uLnByb3RvY29scy5tYXAocCA9PiBlbmNvZGUuc2luZ2xlKHVpbnQ4QXJyYXlGcm9tU3RyaW5nKGAke3B9XFxuYCkpKSwgdWludDhBcnJheUZyb21TdHJpbmcoJ1xcbicpKTtcbiAgICAgICAgICAgIG9wdGlvbnMubG9nLnRyYWNlKCdoYW5kbGU6IHJlc3BvbmQgd2l0aCBcIiVzXCIgZm9yICVzJywgcHJvdG9jb2xzLCBwcm90b2NvbCk7XG4gICAgICAgICAgICBhd2FpdCBtdWx0aXN0cmVhbS53cml0ZShscCwgcHJvdG9zLCBvcHRpb25zKTtcbiAgICAgICAgICAgIG9wdGlvbnMubG9nLnRyYWNlKCdoYW5kbGU6IHJlc3BvbmRlZCB3aXRoIFwiJXNcIiBmb3IgJXMnLCBwcm90b2NvbHMsIHByb3RvY29sKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIG9wdGlvbnMubG9nKCdoYW5kbGU6IHJlc3BvbmQgd2l0aCBcIm5hXCIgZm9yIFwiJXNcIicsIHByb3RvY29sKTtcbiAgICAgICAgYXdhaXQgbXVsdGlzdHJlYW0ud3JpdGUobHAsIHVpbnQ4QXJyYXlGcm9tU3RyaW5nKCduYVxcbicpLCBvcHRpb25zKTtcbiAgICAgICAgb3B0aW9ucy5sb2coJ2hhbmRsZTogcmVzcG9uZGVkIHdpdGggXCJuYVwiIGZvciBcIiVzXCInLCBwcm90b2NvbCk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGFuZGxlLmpzLm1hcCJdLCJuYW1lcyI6WyJlbmNvZGUiLCJscFN0cmVhbSIsIlVpbnQ4QXJyYXlMaXN0IiwiZnJvbVN0cmluZyIsInVpbnQ4QXJyYXlGcm9tU3RyaW5nIiwiTUFYX1BST1RPQ09MX0xFTkdUSCIsIlBST1RPQ09MX0lEIiwibXVsdGlzdHJlYW0iLCJoYW5kbGUiLCJzdHJlYW0iLCJwcm90b2NvbHMiLCJvcHRpb25zIiwiQXJyYXkiLCJpc0FycmF5IiwibG9nIiwidHJhY2UiLCJscCIsIm1heERhdGFMZW5ndGgiLCJtYXhMZW5ndGhMZW5ndGgiLCJwcm90b2NvbCIsInJlYWRTdHJpbmciLCJ3cml0ZSIsImluY2x1ZGVzIiwidW53cmFwIiwicHJvdG9zIiwibWFwIiwicCIsInNpbmdsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/multistream-select/dist/src/handle.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/multistream-select/dist/src/multistream.js":
/*!*************************************************************************!*\
!*** ./node_modules/@libp2p/multistream-select/dist/src/multistream.js ***!
\*************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ read: () => (/* binding */ read),\n/* harmony export */ readString: () => (/* binding */ readString),\n/* harmony export */ write: () => (/* binding */ write),\n/* harmony export */ writeAll: () => (/* binding */ writeAll)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var uint8arraylist__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uint8arraylist */ \"(ssr)/./node_modules/uint8arraylist/dist/src/index.js\");\n/* harmony import */ var uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uint8arrays/from-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/from-string.node.js\");\n/* harmony import */ var uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uint8arrays/to-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/to-string.node.js\");\n\n\n\n\nconst NewLine = (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__.fromString)(\"\\n\");\n/**\n * `write` encodes and writes a single buffer\n */ async function write(writer, buffer, options) {\n await writer.write(buffer, options);\n}\n/**\n * `writeAll` behaves like `write`, except it encodes an array of items as a single write\n */ async function writeAll(writer, buffers, options) {\n await writer.writeV(buffers, options);\n}\n/**\n * Read a length-prefixed buffer from the passed stream, stripping the final newline character\n */ async function read(reader, options) {\n const buf = await reader.read(options);\n if (buf.byteLength === 0 || buf.get(buf.byteLength - 1) !== NewLine[0]) {\n options.log.error(\"Invalid mss message - missing newline\", buf);\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_3__.CodeError(\"missing newline\", \"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE\");\n }\n return buf.sublist(0, -1); // Remove newline\n}\n/**\n * Read a length-prefixed string from the passed stream, stripping the final newline character\n */ async function readString(reader, options) {\n const buf = await read(reader, options);\n return (0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__.toString)(buf.subarray());\n} //# sourceMappingURL=multistream.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9tdWx0aXN0cmVhbS1zZWxlY3QvZGlzdC9zcmMvbXVsdGlzdHJlYW0uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBOEM7QUFDZDtBQUM2QztBQUNOO0FBQ3ZFLE1BQU1LLFVBQVVILG1FQUFvQkEsQ0FBQztBQUNyQzs7Q0FFQyxHQUNNLGVBQWVJLE1BQU1DLE1BQU0sRUFBRUMsTUFBTSxFQUFFQyxPQUFPO0lBQy9DLE1BQU1GLE9BQU9ELEtBQUssQ0FBQ0UsUUFBUUM7QUFDL0I7QUFDQTs7Q0FFQyxHQUNNLGVBQWVDLFNBQVNILE1BQU0sRUFBRUksT0FBTyxFQUFFRixPQUFPO0lBQ25ELE1BQU1GLE9BQU9LLE1BQU0sQ0FBQ0QsU0FBU0Y7QUFDakM7QUFDQTs7Q0FFQyxHQUNNLGVBQWVJLEtBQUtDLE1BQU0sRUFBRUwsT0FBTztJQUN0QyxNQUFNTSxNQUFNLE1BQU1ELE9BQU9ELElBQUksQ0FBQ0o7SUFDOUIsSUFBSU0sSUFBSUMsVUFBVSxLQUFLLEtBQUtELElBQUlFLEdBQUcsQ0FBQ0YsSUFBSUMsVUFBVSxHQUFHLE9BQU9YLE9BQU8sQ0FBQyxFQUFFLEVBQUU7UUFDcEVJLFFBQVFTLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDLHlDQUF5Q0o7UUFDM0QsTUFBTSxJQUFJZix3REFBU0EsQ0FBQyxtQkFBbUI7SUFDM0M7SUFDQSxPQUFPZSxJQUFJSyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksaUJBQWlCO0FBQ2hEO0FBQ0E7O0NBRUMsR0FDTSxlQUFlQyxXQUFXUCxNQUFNLEVBQUVMLE9BQU87SUFDNUMsTUFBTU0sTUFBTSxNQUFNRixLQUFLQyxRQUFRTDtJQUMvQixPQUFPTCwrREFBa0JBLENBQUNXLElBQUlPLFFBQVE7QUFDMUMsRUFDQSx1Q0FBdUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL211bHRpc3RyZWFtLXNlbGVjdC9kaXN0L3NyYy9tdWx0aXN0cmVhbS5qcz85Yzg2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZGVFcnJvciB9IGZyb20gJ0BsaWJwMnAvaW50ZXJmYWNlJztcbmltcG9ydCB7fSBmcm9tICd1aW50OGFycmF5bGlzdCc7XG5pbXBvcnQgeyBmcm9tU3RyaW5nIGFzIHVpbnQ4QXJyYXlGcm9tU3RyaW5nIH0gZnJvbSAndWludDhhcnJheXMvZnJvbS1zdHJpbmcnO1xuaW1wb3J0IHsgdG9TdHJpbmcgYXMgdWludDhBcnJheVRvU3RyaW5nIH0gZnJvbSAndWludDhhcnJheXMvdG8tc3RyaW5nJztcbmNvbnN0IE5ld0xpbmUgPSB1aW50OEFycmF5RnJvbVN0cmluZygnXFxuJyk7XG4vKipcbiAqIGB3cml0ZWAgZW5jb2RlcyBhbmQgd3JpdGVzIGEgc2luZ2xlIGJ1ZmZlclxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGUod3JpdGVyLCBidWZmZXIsIG9wdGlvbnMpIHtcbiAgICBhd2FpdCB3cml0ZXIud3JpdGUoYnVmZmVyLCBvcHRpb25zKTtcbn1cbi8qKlxuICogYHdyaXRlQWxsYCBiZWhhdmVzIGxpa2UgYHdyaXRlYCwgZXhjZXB0IGl0IGVuY29kZXMgYW4gYXJyYXkgb2YgaXRlbXMgYXMgYSBzaW5nbGUgd3JpdGVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlQWxsKHdyaXRlciwgYnVmZmVycywgb3B0aW9ucykge1xuICAgIGF3YWl0IHdyaXRlci53cml0ZVYoYnVmZmVycywgb3B0aW9ucyk7XG59XG4vKipcbiAqIFJlYWQgYSBsZW5ndGgtcHJlZml4ZWQgYnVmZmVyIGZyb20gdGhlIHBhc3NlZCBzdHJlYW0sIHN0cmlwcGluZyB0aGUgZmluYWwgbmV3bGluZSBjaGFyYWN0ZXJcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWQocmVhZGVyLCBvcHRpb25zKSB7XG4gICAgY29uc3QgYnVmID0gYXdhaXQgcmVhZGVyLnJlYWQob3B0aW9ucyk7XG4gICAgaWYgKGJ1Zi5ieXRlTGVuZ3RoID09PSAwIHx8IGJ1Zi5nZXQoYnVmLmJ5dGVMZW5ndGggLSAxKSAhPT0gTmV3TGluZVswXSkge1xuICAgICAgICBvcHRpb25zLmxvZy5lcnJvcignSW52YWxpZCBtc3MgbWVzc2FnZSAtIG1pc3NpbmcgbmV3bGluZScsIGJ1Zik7XG4gICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoJ21pc3NpbmcgbmV3bGluZScsICdFUlJfSU5WQUxJRF9NVUxUSVNUUkVBTV9TRUxFQ1RfTUVTU0FHRScpO1xuICAgIH1cbiAgICByZXR1cm4gYnVmLnN1Ymxpc3QoMCwgLTEpOyAvLyBSZW1vdmUgbmV3bGluZVxufVxuLyoqXG4gKiBSZWFkIGEgbGVuZ3RoLXByZWZpeGVkIHN0cmluZyBmcm9tIHRoZSBwYXNzZWQgc3RyZWFtLCBzdHJpcHBpbmcgdGhlIGZpbmFsIG5ld2xpbmUgY2hhcmFjdGVyXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkU3RyaW5nKHJlYWRlciwgb3B0aW9ucykge1xuICAgIGNvbnN0IGJ1ZiA9IGF3YWl0IHJlYWQocmVhZGVyLCBvcHRpb25zKTtcbiAgICByZXR1cm4gdWludDhBcnJheVRvU3RyaW5nKGJ1Zi5zdWJhcnJheSgpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW11bHRpc3RyZWFtLmpzLm1hcCJdLCJuYW1lcyI6WyJDb2RlRXJyb3IiLCJmcm9tU3RyaW5nIiwidWludDhBcnJheUZyb21TdHJpbmciLCJ0b1N0cmluZyIsInVpbnQ4QXJyYXlUb1N0cmluZyIsIk5ld0xpbmUiLCJ3cml0ZSIsIndyaXRlciIsImJ1ZmZlciIsIm9wdGlvbnMiLCJ3cml0ZUFsbCIsImJ1ZmZlcnMiLCJ3cml0ZVYiLCJyZWFkIiwicmVhZGVyIiwiYnVmIiwiYnl0ZUxlbmd0aCIsImdldCIsImxvZyIsImVycm9yIiwic3VibGlzdCIsInJlYWRTdHJpbmciLCJzdWJhcnJheSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/multistream-select/dist/src/multistream.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/multistream-select/dist/src/select.js":
/*!********************************************************************!*\
!*** ./node_modules/@libp2p/multistream-select/dist/src/select.js ***!
\********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ select: () => (/* binding */ select)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var it_length_prefixed_stream__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! it-length-prefixed-stream */ \"(ssr)/./node_modules/it-length-prefixed-stream/dist/src/index.js\");\n/* harmony import */ var p_defer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! p-defer */ \"(ssr)/./node_modules/p-defer/index.js\");\n/* harmony import */ var race_signal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! race-signal */ \"(ssr)/./node_modules/race-signal/dist/src/index.js\");\n/* harmony import */ var uint8_varint__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uint8-varint */ \"(ssr)/./node_modules/uint8-varint/dist/src/index.js\");\n/* harmony import */ var uint8arraylist__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! uint8arraylist */ \"(ssr)/./node_modules/uint8arraylist/dist/src/index.js\");\n/* harmony import */ var uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! uint8arrays/from-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/from-string.node.js\");\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./index.js */ \"(ssr)/./node_modules/@libp2p/multistream-select/dist/src/constants.js\");\n/* harmony import */ var _multistream_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./multistream.js */ \"(ssr)/./node_modules/@libp2p/multistream-select/dist/src/multistream.js\");\n\n\n\n\n\n\n\n\n\n\n/**\n * Negotiate a protocol to use from a list of protocols.\n *\n * @param stream - A duplex iterable stream to dial on\n * @param protocols - A list of protocols (or single protocol) to negotiate with. Protocols are attempted in order until a match is made.\n * @param options - An options object containing an AbortSignal and an optional boolean `writeBytes` - if this is true, `Uint8Array`s will be written into `duplex`, otherwise `Uint8ArrayList`s will\n * @returns A stream for the selected protocol and the protocol that was selected from the list of protocols provided to `select`.\n * @example\n *\n * ```TypeScript\n * import { pipe } from 'it-pipe'\n * import * as mss from '@libp2p/multistream-select'\n * import { Mplex } from '@libp2p/mplex'\n *\n * const muxer = new Mplex()\n * const muxedStream = muxer.newStream()\n *\n * // mss.select(protocol(s))\n * // Select from one of the passed protocols (in priority order)\n * // Returns selected stream and protocol\n * const { stream: dhtStream, protocol } = await mss.select(muxedStream, [\n * // This might just be different versions of DHT, but could be different impls\n * '/ipfs-dht/2.0.0', // Most of the time this will probably just be one item.\n * '/ipfs-dht/1.0.0'\n * ])\n *\n * // Typically this stream will be passed back to the caller of libp2p.dialProtocol\n * //\n * // ...it might then do something like this:\n * // try {\n * // await pipe(\n * // [uint8ArrayFromString('Some DHT data')]\n * // dhtStream,\n * // async source => {\n * // for await (const chunk of source)\n * // // DHT response data\n * // }\n * // )\n * // } catch (err) {\n * // // Error in stream\n * // }\n * ```\n */ async function select(stream, protocols, options) {\n protocols = Array.isArray(protocols) ? [\n ...protocols\n ] : [\n protocols\n ];\n if (protocols.length === 1 && options.negotiateFully === false) {\n return optimisticSelect(stream, protocols[0], options);\n }\n const lp = (0,it_length_prefixed_stream__WEBPACK_IMPORTED_MODULE_0__.lpStream)(stream, {\n ...options,\n maxDataLength: _constants_js__WEBPACK_IMPORTED_MODULE_5__.MAX_PROTOCOL_LENGTH\n });\n const protocol = protocols.shift();\n if (protocol == null) {\n throw new Error(\"At least one protocol must be specified\");\n }\n options.log.trace('select: write [\"%s\", \"%s\"]', _constants_js__WEBPACK_IMPORTED_MODULE_5__.PROTOCOL_ID, protocol);\n const p1 = (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_4__.fromString)(`${_constants_js__WEBPACK_IMPORTED_MODULE_5__.PROTOCOL_ID}\\n`);\n const p2 = (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_4__.fromString)(`${protocol}\\n`);\n await _multistream_js__WEBPACK_IMPORTED_MODULE_6__.writeAll(lp, [\n p1,\n p2\n ], options);\n options.log.trace(\"select: reading multistream-select header\");\n let response = await _multistream_js__WEBPACK_IMPORTED_MODULE_6__.readString(lp, options);\n options.log.trace('select: read \"%s\"', response);\n // Read the protocol response if we got the protocolId in return\n if (response === _constants_js__WEBPACK_IMPORTED_MODULE_5__.PROTOCOL_ID) {\n options.log.trace(\"select: reading protocol response\");\n response = await _multistream_js__WEBPACK_IMPORTED_MODULE_6__.readString(lp, options);\n options.log.trace('select: read \"%s\"', response);\n }\n // We're done\n if (response === protocol) {\n return {\n stream: lp.unwrap(),\n protocol\n };\n }\n // We haven't gotten a valid ack, try the other protocols\n for (const protocol of protocols){\n options.log.trace('select: write \"%s\"', protocol);\n await _multistream_js__WEBPACK_IMPORTED_MODULE_6__.write(lp, (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_4__.fromString)(`${protocol}\\n`), options);\n options.log.trace(\"select: reading protocol response\");\n const response = await _multistream_js__WEBPACK_IMPORTED_MODULE_6__.readString(lp, options);\n options.log.trace('select: read \"%s\" for \"%s\"', response, protocol);\n if (response === protocol) {\n return {\n stream: lp.unwrap(),\n protocol\n };\n }\n }\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_7__.CodeError(\"protocol selection failed\", \"ERR_UNSUPPORTED_PROTOCOL\");\n}\n/**\n * Optimistically negotiates a protocol.\n *\n * It *does not* block writes waiting for the other end to respond. Instead, it\n * simply assumes the negotiation went successfully and starts writing data.\n *\n * Use when it is known that the receiver supports the desired protocol.\n */ function optimisticSelect(stream, protocol, options) {\n const originalSink = stream.sink.bind(stream);\n const originalSource = stream.source;\n let negotiated = false;\n let negotiating = false;\n const doneNegotiating = (0,p_defer__WEBPACK_IMPORTED_MODULE_8__[\"default\"])();\n let sentProtocol = false;\n let sendingProtocol = false;\n const doneSendingProtocol = (0,p_defer__WEBPACK_IMPORTED_MODULE_8__[\"default\"])();\n let readProtocol = false;\n let readingProtocol = false;\n const doneReadingProtocol = (0,p_defer__WEBPACK_IMPORTED_MODULE_8__[\"default\"])();\n const lp = (0,it_length_prefixed_stream__WEBPACK_IMPORTED_MODULE_0__.lpStream)({\n sink: originalSink,\n source: originalSource\n }, {\n ...options,\n maxDataLength: _constants_js__WEBPACK_IMPORTED_MODULE_5__.MAX_PROTOCOL_LENGTH\n });\n stream.sink = async (source)=>{\n const { sink } = lp.unwrap();\n await sink(async function*() {\n let sentData = false;\n for await (const buf of source){\n // started reading before the source yielded, wait for protocol send\n if (sendingProtocol) {\n await doneSendingProtocol.promise;\n }\n // writing before reading, send the protocol and the first chunk of data\n if (!sentProtocol) {\n sendingProtocol = true;\n options.log.trace('optimistic: write [\"%s\", \"%s\", data(%d)] in sink', _constants_js__WEBPACK_IMPORTED_MODULE_5__.PROTOCOL_ID, protocol, buf.byteLength);\n const protocolString = `${protocol}\\n`;\n // send protocols in first chunk of data written to transport\n yield new uint8arraylist__WEBPACK_IMPORTED_MODULE_3__.Uint8ArrayList(Uint8Array.from([\n 19\n ]), (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_4__.fromString)(`${_constants_js__WEBPACK_IMPORTED_MODULE_5__.PROTOCOL_ID}\\n`), uint8_varint__WEBPACK_IMPORTED_MODULE_2__.encode(protocolString.length), (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_4__.fromString)(protocolString), buf).subarray();\n options.log.trace('optimistic: wrote [\"%s\", \"%s\", data(%d)] in sink', _constants_js__WEBPACK_IMPORTED_MODULE_5__.PROTOCOL_ID, protocol, buf.byteLength);\n sentProtocol = true;\n sendingProtocol = false;\n doneSendingProtocol.resolve();\n // read the negotiation response but don't block more sending\n negotiate().catch((err)=>{\n options.log.error(\"could not finish optimistic protocol negotiation of %s\", protocol, err);\n });\n } else {\n yield buf;\n }\n sentData = true;\n }\n // special case - the source passed to the sink has ended but we didn't\n // negotiated the protocol yet so do it now\n if (!sentData) {\n await negotiate();\n }\n }());\n };\n async function negotiate() {\n if (negotiating) {\n options.log.trace(\"optimistic: already negotiating %s stream\", protocol);\n await doneNegotiating.promise;\n return;\n }\n negotiating = true;\n try {\n // we haven't sent the protocol yet, send it now\n if (!sentProtocol) {\n options.log.trace(\"optimistic: doing send protocol for %s stream\", protocol);\n await doSendProtocol();\n }\n // if we haven't read the protocol response yet, do it now\n if (!readProtocol) {\n options.log.trace(\"optimistic: doing read protocol for %s stream\", protocol);\n await doReadProtocol();\n }\n } finally{\n negotiating = false;\n negotiated = true;\n doneNegotiating.resolve();\n }\n }\n async function doSendProtocol() {\n if (sendingProtocol) {\n await doneSendingProtocol.promise;\n return;\n }\n sendingProtocol = true;\n try {\n options.log.trace('optimistic: write [\"%s\", \"%s\", data] in source', _constants_js__WEBPACK_IMPORTED_MODULE_5__.PROTOCOL_ID, protocol);\n await lp.writeV([\n (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_4__.fromString)(`${_constants_js__WEBPACK_IMPORTED_MODULE_5__.PROTOCOL_ID}\\n`),\n (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_4__.fromString)(`${protocol}\\n`)\n ]);\n options.log.trace('optimistic: wrote [\"%s\", \"%s\", data] in source', _constants_js__WEBPACK_IMPORTED_MODULE_5__.PROTOCOL_ID, protocol);\n } finally{\n sentProtocol = true;\n sendingProtocol = false;\n doneSendingProtocol.resolve();\n }\n }\n async function doReadProtocol() {\n if (readingProtocol) {\n await doneReadingProtocol.promise;\n return;\n }\n readingProtocol = true;\n try {\n options.log.trace(\"optimistic: reading multistream select header\");\n let response = await _multistream_js__WEBPACK_IMPORTED_MODULE_6__.readString(lp, options);\n options.log.trace('optimistic: read multistream select header \"%s\"', response);\n if (response === _constants_js__WEBPACK_IMPORTED_MODULE_5__.PROTOCOL_ID) {\n response = await _multistream_js__WEBPACK_IMPORTED_MODULE_6__.readString(lp, options);\n }\n options.log.trace('optimistic: read protocol \"%s\", expecting \"%s\"', response, protocol);\n if (response !== protocol) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_7__.CodeError(\"protocol selection failed\", \"ERR_UNSUPPORTED_PROTOCOL\");\n }\n } finally{\n readProtocol = true;\n readingProtocol = false;\n doneReadingProtocol.resolve();\n }\n }\n stream.source = async function*() {\n // make sure we've done protocol negotiation before we read stream data\n await negotiate();\n options.log.trace('optimistic: reading data from \"%s\" stream', protocol);\n yield* lp.unwrap().source;\n }();\n if (stream.closeRead != null) {\n const originalCloseRead = stream.closeRead.bind(stream);\n stream.closeRead = async (opts)=>{\n // we need to read & write to negotiate the protocol so ensure we've done\n // this before closing the readable end of the stream\n if (!negotiated) {\n await negotiate().catch((err)=>{\n options.log.error(\"could not negotiate protocol before close read\", err);\n });\n }\n // protocol has been negotiated, ok to close the readable end\n await originalCloseRead(opts);\n };\n }\n if (stream.closeWrite != null) {\n const originalCloseWrite = stream.closeWrite.bind(stream);\n stream.closeWrite = async (opts)=>{\n // we need to read & write to negotiate the protocol so ensure we've done\n // this before closing the writable end of the stream\n if (!negotiated) {\n await negotiate().catch((err)=>{\n options.log.error(\"could not negotiate protocol before close write\", err);\n });\n }\n // protocol has been negotiated, ok to close the writable end\n await originalCloseWrite(opts);\n };\n }\n if (stream.close != null) {\n const originalClose = stream.close.bind(stream);\n stream.close = async (opts)=>{\n // if we are in the process of negotiation, let it finish before closing\n // because we may have unsent early data\n const tasks = [];\n if (sendingProtocol) {\n tasks.push(doneSendingProtocol.promise);\n }\n if (readingProtocol) {\n tasks.push(doneReadingProtocol.promise);\n }\n if (tasks.length > 0) {\n // let the in-flight protocol negotiation finish gracefully\n await (0,race_signal__WEBPACK_IMPORTED_MODULE_1__.raceSignal)(Promise.all(tasks), opts?.signal);\n } else {\n // no protocol negotiation attempt has occurred so don't start one\n negotiated = true;\n negotiating = false;\n doneNegotiating.resolve();\n }\n // protocol has been negotiated, ok to close the writable end\n await originalClose(opts);\n };\n }\n return {\n stream,\n protocol\n };\n} //# sourceMappingURL=select.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9tdWx0aXN0cmVhbS1zZWxlY3QvZGlzdC9zcmMvc2VsZWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBOEM7QUFDTztBQUN4QjtBQUNZO0FBQ0Y7QUFDUztBQUM2QjtBQUN4QjtBQUNMO0FBQ1A7QUFDekM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTBDQyxHQUNNLGVBQWVXLE9BQU9DLE1BQU0sRUFBRUMsU0FBUyxFQUFFQyxPQUFPO0lBQ25ERCxZQUFZRSxNQUFNQyxPQUFPLENBQUNILGFBQWE7V0FBSUE7S0FBVSxHQUFHO1FBQUNBO0tBQVU7SUFDbkUsSUFBSUEsVUFBVUksTUFBTSxLQUFLLEtBQUtILFFBQVFJLGNBQWMsS0FBSyxPQUFPO1FBQzVELE9BQU9DLGlCQUFpQlAsUUFBUUMsU0FBUyxDQUFDLEVBQUUsRUFBRUM7SUFDbEQ7SUFDQSxNQUFNTSxLQUFLbkIsbUVBQVFBLENBQUNXLFFBQVE7UUFDeEIsR0FBR0UsT0FBTztRQUNWTyxlQUFlYiw4REFBbUJBO0lBQ3RDO0lBQ0EsTUFBTWMsV0FBV1QsVUFBVVUsS0FBSztJQUNoQyxJQUFJRCxZQUFZLE1BQU07UUFDbEIsTUFBTSxJQUFJRSxNQUFNO0lBQ3BCO0lBQ0FWLFFBQVFXLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDLDhCQUE4QmhCLHNEQUFXQSxFQUFFWTtJQUM3RCxNQUFNSyxLQUFLcEIsbUVBQW9CQSxDQUFDLENBQUMsRUFBRUcsc0RBQVdBLENBQUMsRUFBRSxDQUFDO0lBQ2xELE1BQU1rQixLQUFLckIsbUVBQW9CQSxDQUFDLENBQUMsRUFBRWUsU0FBUyxFQUFFLENBQUM7SUFDL0MsTUFBTWIscURBQW9CLENBQUNXLElBQUk7UUFBQ087UUFBSUM7S0FBRyxFQUFFZDtJQUN6Q0EsUUFBUVcsR0FBRyxDQUFDQyxLQUFLLENBQUM7SUFDbEIsSUFBSUksV0FBVyxNQUFNckIsdURBQXNCLENBQUNXLElBQUlO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QWM7Z0JBQ2RDLGdCQUFnQmdCLE9BQU87WUFDM0I7WUFDQSw2REFBNkQ7WUFDN0QsTUFBTWMsY0FBY0o7UUFDeEI7SUFDSjtJQUNBLE9BQU87UUFDSHZEO1FBQ0FVO0lBQ0o7QUFDSixFQUNBLGtDQUFrQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvbXVsdGlzdHJlYW0tc2VsZWN0L2Rpc3Qvc3JjL3NlbGVjdC5qcz8wMTU1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZGVFcnJvciB9IGZyb20gJ0BsaWJwMnAvaW50ZXJmYWNlJztcbmltcG9ydCB7IGxwU3RyZWFtIH0gZnJvbSAnaXQtbGVuZ3RoLXByZWZpeGVkLXN0cmVhbSc7XG5pbXBvcnQgcERlZmVyIGZyb20gJ3AtZGVmZXInO1xuaW1wb3J0IHsgcmFjZVNpZ25hbCB9IGZyb20gJ3JhY2Utc2lnbmFsJztcbmltcG9ydCAqIGFzIHZhcmludCBmcm9tICd1aW50OC12YXJpbnQnO1xuaW1wb3J0IHsgVWludDhBcnJheUxpc3QgfSBmcm9tICd1aW50OGFycmF5bGlzdCc7XG5pbXBvcnQgeyBmcm9tU3RyaW5nIGFzIHVpbnQ4QXJyYXlGcm9tU3RyaW5nIH0gZnJvbSAndWludDhhcnJheXMvZnJvbS1zdHJpbmcnO1xuaW1wb3J0IHsgTUFYX1BST1RPQ09MX0xFTkdUSCB9IGZyb20gJy4vY29uc3RhbnRzLmpzJztcbmltcG9ydCAqIGFzIG11bHRpc3RyZWFtIGZyb20gJy4vbXVsdGlzdHJlYW0uanMnO1xuaW1wb3J0IHsgUFJPVE9DT0xfSUQgfSBmcm9tICcuL2luZGV4LmpzJztcbi8qKlxuICogTmVnb3RpYXRlIGEgcHJvdG9jb2wgdG8gdXNlIGZyb20gYSBsaXN0IG9mIHByb3RvY29scy5cbiAqXG4gKiBAcGFyYW0gc3RyZWFtIC0gQSBkdXBsZXggaXRlcmFibGUgc3RyZWFtIHRvIGRpYWwgb25cbiAqIEBwYXJhbSBwcm90b2NvbHMgLSBBIGxpc3Qgb2YgcHJvdG9jb2xzIChvciBzaW5nbGUgcHJvdG9jb2wpIHRvIG5lZ290aWF0ZSB3aXRoLiBQcm90b2NvbHMgYXJlIGF0dGVtcHRlZCBpbiBvcmRlciB1bnRpbCBhIG1hdGNoIGlzIG1hZGUuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9wdGlvbnMgb2JqZWN0IGNvbnRhaW5pbmcgYW4gQWJvcnRTaWduYWwgYW5kIGFuIG9wdGlvbmFsIGJvb2xlYW4gYHdyaXRlQnl0ZXNgIC0gaWYgdGhpcyBpcyB0cnVlLCBgVWludDhBcnJheWBzIHdpbGwgYmUgd3JpdHRlbiBpbnRvIGBkdXBsZXhgLCBvdGhlcndpc2UgYFVpbnQ4QXJyYXlMaXN0YHMgd2lsbFxuICogQHJldHVybnMgQSBzdHJlYW0gZm9yIHRoZSBzZWxlY3RlZCBwcm90b2NvbCBhbmQgdGhlIHByb3RvY29sIHRoYXQgd2FzIHNlbGVjdGVkIGZyb20gdGhlIGxpc3Qgb2YgcHJvdG9jb2xzIHByb3ZpZGVkIHRvIGBzZWxlY3RgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBUeXBlU2NyaXB0XG4gKiBpbXBvcnQgeyBwaXBlIH0gZnJvbSAnaXQtcGlwZSdcbiAqIGltcG9ydCAqIGFzIG1zcyBmcm9tICdAbGlicDJwL211bHRpc3RyZWFtLXNlbGVjdCdcbiAqIGltcG9ydCB7IE1wbGV4IH0gZnJvbSAnQGxpYnAycC9tcGxleCdcbiAqXG4gKiBjb25zdCBtdXhlciA9IG5ldyBNcGxleCgpXG4gKiBjb25zdCBtdXhlZFN0cmVhbSA9IG11eGVyLm5ld1N0cmVhbSgpXG4gKlxuICogLy8gbXNzLnNlbGVjdChwcm90b2NvbChzKSlcbiAqIC8vIFNlbGVjdCBmcm9tIG9uZSBvZiB0aGUgcGFzc2VkIHByb3RvY29scyAoaW4gcHJpb3JpdHkgb3JkZXIpXG4gKiAvLyBSZXR1cm5zIHNlbGVjdGVkIHN0cmVhbSBhbmQgcHJvdG9jb2xcbiAqIGNvbnN0IHsgc3RyZWFtOiBkaHRTdHJlYW0sIHByb3RvY29sIH0gPSBhd2FpdCBtc3Muc2VsZWN0KG11eGVkU3RyZWFtLCBbXG4gKiAgIC8vIFRoaXMgbWlnaHQganVzdCBiZSBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgREhULCBidXQgY291bGQgYmUgZGlmZmVyZW50IGltcGxzXG4gKiAgICcvaXBmcy1kaHQvMi4wLjAnLCAvLyBNb3N0IG9mIHRoZSB0aW1lIHRoaXMgd2lsbCBwcm9iYWJseSBqdXN0IGJlIG9uZSBpdGVtLlxuICogICAnL2lwZnMtZGh0LzEuMC4wJ1xuICogXSlcbiAqXG4gKiAvLyBUeXBpY2FsbHkgdGhpcyBzdHJlYW0gd2lsbCBiZSBwYXNzZWQgYmFjayB0byB0aGUgY2FsbGVyIG9mIGxpYnAycC5kaWFsUHJvdG9jb2xcbiAqIC8vXG4gKiAvLyAuLi5pdCBtaWdodCB0aGVuIGRvIHNvbWV0aGluZyBsaWtlIHRoaXM6XG4gKiAvLyB0cnkge1xuICogLy8gICBhd2FpdCBwaXBlKFxuICogLy8gICAgIFt1aW50OEFycmF5RnJvbVN0cmluZygnU29tZSBESFQgZGF0YScpXVxuICogLy8gICAgIGRodFN0cmVhbSxcbiAqIC8vICAgICBhc3luYyBzb3VyY2UgPT4ge1xuICogLy8gICAgICAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiBzb3VyY2UpXG4gKiAvLyAgICAgICAgIC8vIERIVCByZXNwb25zZSBkYXRhXG4gKiAvLyAgICAgfVxuICogLy8gICApXG4gKiAvLyB9IGNhdGNoIChlcnIpIHtcbiAqIC8vICAgLy8gRXJyb3IgaW4gc3RyZWFtXG4gKiAvLyB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbGVjdChzdHJlYW0sIHByb3RvY29scywgb3B0aW9ucykge1xuICAgIHByb3RvY29scyA9IEFycmF5LmlzQXJyYXkocHJvdG9jb2xzKSA/IFsuLi5wcm90b2NvbHNdIDogW3Byb3RvY29sc107XG4gICAgaWYgKHByb3RvY29scy5sZW5ndGggPT09IDEgJiYgb3B0aW9ucy5uZWdvdGlhdGVGdWxseSA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIG9wdGltaXN0aWNTZWxlY3Qoc3RyZWFtLCBwcm90b2NvbHNbMF0sIG9wdGlvbnMpO1xuICAgIH1cbiAgICBjb25zdCBscCA9IGxwU3RyZWFtKHN0cmVhbSwge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBtYXhEYXRhTGVuZ3RoOiBNQVhfUFJPVE9DT0xfTEVOR1RIXG4gICAgfSk7XG4gICAgY29uc3QgcHJvdG9jb2wgPSBwcm90b2NvbHMuc2hpZnQoKTtcbiAgICBpZiAocHJvdG9jb2wgPT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0IGxlYXN0IG9uZSBwcm90b2NvbCBtdXN0IGJlIHNwZWNpZmllZCcpO1xuICAgIH1cbiAgICBvcHRpb25zLmxvZy50cmFjZSgnc2VsZWN0OiB3cml0ZSBbXCIlc1wiLCBcIiVzXCJdJywgUFJPVE9DT0xfSUQsIHByb3RvY29sKTtcbiAgICBjb25zdCBwMSA9IHVpbnQ4QXJyYXlGcm9tU3RyaW5nKGAke1BST1RPQ09MX0lEfVxcbmApO1xuICAgIGNvbnN0IHAyID0gdWludDhBcnJheUZyb21TdHJpbmcoYCR7cHJvdG9jb2x9XFxuYCk7XG4gICAgYXdhaXQgbXVsdGlzdHJlYW0ud3JpdGVBbGwobHAsIFtwMSwgcDJdLCBvcHRpb25zKTtcbiAgICBvcHRpb25zLmxvZy50cmFjZSgnc2VsZWN0OiByZWFkaW5nIG11bHRpc3RyZWFtLXNlbGVjdCBoZWFkZXInKTtcbiAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBtdWx0aXN0cmVhbS5yZWFkU3RyaW5nKGxwLCBvcHRpb25zKTtcbiAgICBvcHRpb25zLmxvZy50cmFjZSgnc2VsZWN0OiByZWFkIFwiJXNcIicsIHJlc3BvbnNlKTtcbiAgICAvLyBSZWFkIHRoZSBwcm90b2NvbCByZXNwb25zZSBpZiB3ZSBnb3QgdGhlIHByb3RvY29sSWQgaW4gcmV0dXJuXG4gICAgaWYgKHJlc3BvbnNlID09PSBQUk9UT0NPTF9JRCkge1xuICAgICAgICBvcHRpb25zLmxvZy50cmFjZSgnc2VsZWN0OiByZWFkaW5nIHByb3RvY29sIHJlc3BvbnNlJyk7XG4gICAgICAgIHJlc3BvbnNlID0gYXdhaXQgbXVsdGlzdHJlYW0ucmVhZFN0cmluZyhscCwgb3B0aW9ucyk7XG4gICAgICAgIG9wdGlvbnMubG9nLnRyYWNlKCdzZWxlY3Q6IHJlYWQgXCIlc1wiJywgcmVzcG9uc2UpO1xuICAgIH1cbiAgICAvLyBXZSdyZSBkb25lXG4gICAgaWYgKHJlc3BvbnNlID09PSBwcm90b2NvbCkge1xuICAgICAgICByZXR1cm4geyBzdHJlYW06IGxwLnVud3JhcCgpLCBwcm90b2NvbCB9O1xuICAgIH1cbiAgICAvLyBXZSBoYXZlbid0IGdvdHRlbiBhIHZhbGlkIGFjaywgdHJ5IHRoZSBvdGhlciBwcm90b2NvbHNcbiAgICBmb3IgKGNvbnN0IHByb3RvY29sIG9mIHByb3RvY29scykge1xuICAgICAgICBvcHRpb25zLmxvZy50cmFjZSgnc2VsZWN0OiB3cml0ZSBcIiVzXCInLCBwcm90b2NvbCk7XG4gICAgICAgIGF3YWl0IG11bHRpc3RyZWFtLndyaXRlKGxwLCB1aW50OEFycmF5RnJvbVN0cmluZyhgJHtwcm90b2NvbH1cXG5gKSwgb3B0aW9ucyk7XG4gICAgICAgIG9wdGlvbnMubG9nLnRyYWNlKCdzZWxlY3Q6IHJlYWRpbmcgcHJvdG9jb2wgcmVzcG9uc2UnKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBtdWx0aXN0cmVhbS5yZWFkU3RyaW5nKGxwLCBvcHRpb25zKTtcbiAgICAgICAgb3B0aW9ucy5sb2cudHJhY2UoJ3NlbGVjdDogcmVhZCBcIiVzXCIgZm9yIFwiJXNcIicsIHJlc3BvbnNlLCBwcm90b2NvbCk7XG4gICAgICAgIGlmIChyZXNwb25zZSA9PT0gcHJvdG9jb2wpIHtcbiAgICAgICAgICAgIHJldHVybiB7IHN0cmVhbTogbHAudW53cmFwKCksIHByb3RvY29sIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IENvZGVFcnJvcigncHJvdG9jb2wgc2VsZWN0aW9uIGZhaWxlZCcsICdFUlJfVU5TVVBQT1JURURfUFJPVE9DT0wnKTtcbn1cbi8qKlxuICogT3B0aW1pc3RpY2FsbHkgbmVnb3RpYXRlcyBhIHByb3RvY29sLlxuICpcbiAqIEl0ICpkb2VzIG5vdCogYmxvY2sgd3JpdGVzIHdhaXRpbmcgZm9yIHRoZSBvdGhlciBlbmQgdG8gcmVzcG9uZC4gSW5zdGVhZCwgaXRcbiAqIHNpbXBseSBhc3N1bWVzIHRoZSBuZWdvdGlhdGlvbiB3ZW50IHN1Y2Nlc3NmdWxseSBhbmQgc3RhcnRzIHdyaXRpbmcgZGF0YS5cbiAqXG4gKiBVc2Ugd2hlbiBpdCBpcyBrbm93biB0aGF0IHRoZSByZWNlaXZlciBzdXBwb3J0cyB0aGUgZGVzaXJlZCBwcm90b2NvbC5cbiAqL1xuZnVuY3Rpb24gb3B0aW1pc3RpY1NlbGVjdChzdHJlYW0sIHByb3RvY29sLCBvcHRpb25zKSB7XG4gICAgY29uc3Qgb3JpZ2luYWxTaW5rID0gc3RyZWFtLnNpbmsuYmluZChzdHJlYW0pO1xuICAgIGNvbnN0IG9yaWdpbmFsU291cmNlID0gc3RyZWFtLnNvdXJjZTtcbiAgICBsZXQgbmVnb3RpYXRlZCA9IGZhbHNlO1xuICAgIGxldCBuZWdvdGlhdGluZyA9IGZhbHNlO1xuICAgIGNvbnN0IGRvbmVOZWdvdGlhdGluZyA9IHBEZWZlcigpO1xuICAgIGxldCBzZW50UHJvdG9jb2wgPSBmYWxzZTtcbiAgICBsZXQgc2VuZGluZ1Byb3RvY29sID0gZmFsc2U7XG4gICAgY29uc3QgZG9uZVNlbmRpbmdQcm90b2NvbCA9IHBEZWZlcigpO1xuICAgIGxldCByZWFkUHJvdG9jb2wgPSBmYWxzZTtcbiAgICBsZXQgcmVhZGluZ1Byb3RvY29sID0gZmFsc2U7XG4gICAgY29uc3QgZG9uZVJlYWRpbmdQcm90b2NvbCA9IHBEZWZlcigpO1xuICAgIGNvbnN0IGxwID0gbHBTdHJlYW0oe1xuICAgICAgICBzaW5rOiBvcmlnaW5hbFNpbmssXG4gICAgICAgIHNvdXJjZTogb3JpZ2luYWxTb3VyY2VcbiAgICB9LCB7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIG1heERhdGFMZW5ndGg6IE1BWF9QUk9UT0NPTF9MRU5HVEhcbiAgICB9KTtcbiAgICBzdHJlYW0uc2luayA9IGFzeW5jIChzb3VyY2UpID0+IHtcbiAgICAgICAgY29uc3QgeyBzaW5rIH0gPSBscC51bndyYXAoKTtcbiAgICAgICAgYXdhaXQgc2luayhhc3luYyBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgbGV0IHNlbnREYXRhID0gZmFsc2U7XG4gICAgICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IGJ1ZiBvZiBzb3VyY2UpIHtcbiAgICAgICAgICAgICAgICAvLyBzdGFydGVkIHJlYWRpbmcgYmVmb3JlIHRoZSBzb3VyY2UgeWllbGRlZCwgd2FpdCBmb3IgcHJvdG9jb2wgc2VuZFxuICAgICAgICAgICAgICAgIGlmIChzZW5kaW5nUHJvdG9jb2wpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgZG9uZVNlbmRpbmdQcm90b2NvbC5wcm9taXNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyB3cml0aW5nIGJlZm9yZSByZWFkaW5nLCBzZW5kIHRoZSBwcm90b2NvbCBhbmQgdGhlIGZpcnN0IGNodW5rIG9mIGRhdGFcbiAgICAgICAgICAgICAgICBpZiAoIXNlbnRQcm90b2NvbCkge1xuICAgICAgICAgICAgICAgICAgICBzZW5kaW5nUHJvdG9jb2wgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmxvZy50cmFjZSgnb3B0aW1pc3RpYzogd3JpdGUgW1wiJXNcIiwgXCIlc1wiLCBkYXRhKCVkKV0gaW4gc2luaycsIFBST1RPQ09MX0lELCBwcm90b2NvbCwgYnVmLmJ5dGVMZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm90b2NvbFN0cmluZyA9IGAke3Byb3RvY29sfVxcbmA7XG4gICAgICAgICAgICAgICAgICAgIC8vIHNlbmQgcHJvdG9jb2xzIGluIGZpcnN0IGNodW5rIG9mIGRhdGEgd3JpdHRlbiB0byB0cmFuc3BvcnRcbiAgICAgICAgICAgICAgICAgICAgeWllbGQgbmV3IFVpbnQ4QXJyYXlMaXN0KFVpbnQ4QXJyYXkuZnJvbShbMTldKSwgLy8gbGVuZ3RoIG9mIFBST1RPQ09MX0lEIHBsdXMgbmV3bGluZVxuICAgICAgICAgICAgICAgICAgICB1aW50OEFycmF5RnJvbVN0cmluZyhgJHtQUk9UT0NPTF9JRH1cXG5gKSwgdmFyaW50LmVuY29kZShwcm90b2NvbFN0cmluZy5sZW5ndGgpLCB1aW50OEFycmF5RnJvbVN0cmluZyhwcm90b2NvbFN0cmluZyksIGJ1Zikuc3ViYXJyYXkoKTtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5sb2cudHJhY2UoJ29wdGltaXN0aWM6IHdyb3RlIFtcIiVzXCIsIFwiJXNcIiwgZGF0YSglZCldIGluIHNpbmsnLCBQUk9UT0NPTF9JRCwgcHJvdG9jb2wsIGJ1Zi5ieXRlTGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgc2VudFByb3RvY29sID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgc2VuZGluZ1Byb3RvY29sID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGRvbmVTZW5kaW5nUHJvdG9jb2wucmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgICAgICAvLyByZWFkIHRoZSBuZWdvdGlhdGlvbiByZXNwb25zZSBidXQgZG9uJ3QgYmxvY2sgbW9yZSBzZW5kaW5nXG4gICAgICAgICAgICAgICAgICAgIG5lZ290aWF0ZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMubG9nLmVycm9yKCdjb3VsZCBub3QgZmluaXNoIG9wdGltaXN0aWMgcHJvdG9jb2wgbmVnb3RpYXRpb24gb2YgJXMnLCBwcm90b2NvbCwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB5aWVsZCBidWY7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNlbnREYXRhID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZSAtIHRoZSBzb3VyY2UgcGFzc2VkIHRvIHRoZSBzaW5rIGhhcyBlbmRlZCBidXQgd2UgZGlkbid0XG4gICAgICAgICAgICAvLyBuZWdvdGlhdGVkIHRoZSBwcm90b2NvbCB5ZXQgc28gZG8gaXQgbm93XG4gICAgICAgICAgICBpZiAoIXNlbnREYXRhKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgbmVnb3RpYXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0oKSk7XG4gICAgfTtcbiAgICBhc3luYyBmdW5jdGlvbiBuZWdvdGlhdGUoKSB7XG4gICAgICAgIGlmIChuZWdvdGlhdGluZykge1xuICAgICAgICAgICAgb3B0aW9ucy5sb2cudHJhY2UoJ29wdGltaXN0aWM6IGFscmVhZHkgbmVnb3RpYXRpbmcgJXMgc3RyZWFtJywgcHJvdG9jb2wpO1xuICAgICAgICAgICAgYXdhaXQgZG9uZU5lZ290aWF0aW5nLnByb21pc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbmVnb3RpYXRpbmcgPSB0cnVlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gd2UgaGF2ZW4ndCBzZW50IHRoZSBwcm90b2NvbCB5ZXQsIHNlbmQgaXQgbm93XG4gICAgICAgICAgICBpZiAoIXNlbnRQcm90b2NvbCkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubG9nLnRyYWNlKCdvcHRpbWlzdGljOiBkb2luZyBzZW5kIHByb3RvY29sIGZvciAlcyBzdHJlYW0nLCBwcm90b2NvbCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgZG9TZW5kUHJvdG9jb2woKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGlmIHdlIGhhdmVuJ3QgcmVhZCB0aGUgcHJvdG9jb2wgcmVzcG9uc2UgeWV0LCBkbyBpdCBub3dcbiAgICAgICAgICAgIGlmICghcmVhZFByb3RvY29sKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5sb2cudHJhY2UoJ29wdGltaXN0aWM6IGRvaW5nIHJlYWQgcHJvdG9jb2wgZm9yICVzIHN0cmVhbScsIHByb3RvY29sKTtcbiAgICAgICAgICAgICAgICBhd2FpdCBkb1JlYWRQcm90b2NvbCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgbmVnb3RpYXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIG5lZ290aWF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgZG9uZU5lZ290aWF0aW5nLnJlc29sdmUoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBmdW5jdGlvbiBkb1NlbmRQcm90b2NvbCgpIHtcbiAgICAgICAgaWYgKHNlbmRpbmdQcm90b2NvbCkge1xuICAgICAgICAgICAgYXdhaXQgZG9uZVNlbmRpbmdQcm90b2NvbC5wcm9taXNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNlbmRpbmdQcm90b2NvbCA9IHRydWU7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBvcHRpb25zLmxvZy50cmFjZSgnb3B0aW1pc3RpYzogd3JpdGUgW1wiJXNcIiwgXCIlc1wiLCBkYXRhXSBpbiBzb3VyY2UnLCBQUk9UT0NPTF9JRCwgcHJvdG9jb2wpO1xuICAgICAgICAgICAgYXdhaXQgbHAud3JpdGVWKFtcbiAgICAgICAgICAgICAgICB1aW50OEFycmF5RnJvbVN0cmluZyhgJHtQUk9UT0NPTF9JRH1cXG5gKSxcbiAgICAgICAgICAgICAgICB1aW50OEFycmF5RnJvbVN0cmluZyhgJHtwcm90b2NvbH1cXG5gKVxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICBvcHRpb25zLmxvZy50cmFjZSgnb3B0aW1pc3RpYzogd3JvdGUgW1wiJXNcIiwgXCIlc1wiLCBkYXRhXSBpbiBzb3VyY2UnLCBQUk9UT0NPTF9JRCwgcHJvdG9jb2wpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgc2VudFByb3RvY29sID0gdHJ1ZTtcbiAgICAgICAgICAgIHNlbmRpbmdQcm90b2NvbCA9IGZhbHNlO1xuICAgICAgICAgICAgZG9uZVNlbmRpbmdQcm90b2NvbC5yZXNvbHZlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgZnVuY3Rpb24gZG9SZWFkUHJvdG9jb2woKSB7XG4gICAgICAgIGlmIChyZWFkaW5nUHJvdG9jb2wpIHtcbiAgICAgICAgICAgIGF3YWl0IGRvbmVSZWFkaW5nUHJvdG9jb2wucHJvbWlzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZWFkaW5nUHJvdG9jb2wgPSB0cnVlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgb3B0aW9ucy5sb2cudHJhY2UoJ29wdGltaXN0aWM6IHJlYWRpbmcgbXVsdGlzdHJlYW0gc2VsZWN0IGhlYWRlcicpO1xuICAgICAgICAgICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgbXVsdGlzdHJlYW0ucmVhZFN0cmluZyhscCwgb3B0aW9ucyk7XG4gICAgICAgICAgICBvcHRpb25zLmxvZy50cmFjZSgnb3B0aW1pc3RpYzogcmVhZCBtdWx0aXN0cmVhbSBzZWxlY3QgaGVhZGVyIFwiJXNcIicsIHJlc3BvbnNlKTtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZSA9PT0gUFJPVE9DT0xfSUQpIHtcbiAgICAgICAgICAgICAgICByZXNwb25zZSA9IGF3YWl0IG11bHRpc3RyZWFtLnJlYWRTdHJpbmcobHAsIG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3B0aW9ucy5sb2cudHJhY2UoJ29wdGltaXN0aWM6IHJlYWQgcHJvdG9jb2wgXCIlc1wiLCBleHBlY3RpbmcgXCIlc1wiJywgcmVzcG9uc2UsIHByb3RvY29sKTtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZSAhPT0gcHJvdG9jb2wpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ29kZUVycm9yKCdwcm90b2NvbCBzZWxlY3Rpb24gZmFpbGVkJywgJ0VSUl9VTlNVUFBPUlRFRF9QUk9UT0NPTCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgcmVhZFByb3RvY29sID0gdHJ1ZTtcbiAgICAgICAgICAgIHJlYWRpbmdQcm90b2NvbCA9IGZhbHNlO1xuICAgICAgICAgICAgZG9uZVJlYWRpbmdQcm90b2NvbC5yZXNvbHZlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RyZWFtLnNvdXJjZSA9IChhc3luYyBmdW5jdGlvbiogKCkge1xuICAgICAgICAvLyBtYWtlIHN1cmUgd2UndmUgZG9uZSBwcm90b2NvbCBuZWdvdGlhdGlvbiBiZWZvcmUgd2UgcmVhZCBzdHJlYW0gZGF0YVxuICAgICAgICBhd2FpdCBuZWdvdGlhdGUoKTtcbiAgICAgICAgb3B0aW9ucy5sb2cudHJhY2UoJ29wdGltaXN0aWM6IHJlYWRpbmcgZGF0YSBmcm9tIFwiJXNcIiBzdHJlYW0nLCBwcm90b2NvbCk7XG4gICAgICAgIHlpZWxkKiBscC51bndyYXAoKS5zb3VyY2U7XG4gICAgfSkoKTtcbiAgICBpZiAoc3RyZWFtLmNsb3NlUmVhZCAhPSBudWxsKSB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsQ2xvc2VSZWFkID0gc3RyZWFtLmNsb3NlUmVhZC5iaW5kKHN0cmVhbSk7XG4gICAgICAgIHN0cmVhbS5jbG9zZVJlYWQgPSBhc3luYyAob3B0cykgPT4ge1xuICAgICAgICAgICAgLy8gd2UgbmVlZCB0byByZWFkICYgd3JpdGUgdG8gbmVnb3RpYXRlIHRoZSBwcm90b2NvbCBzbyBlbnN1cmUgd2UndmUgZG9uZVxuICAgICAgICAgICAgLy8gdGhpcyBiZWZvcmUgY2xvc2luZyB0aGUgcmVhZGFibGUgZW5kIG9mIHRoZSBzdHJlYW1cbiAgICAgICAgICAgIGlmICghbmVnb3RpYXRlZCkge1xuICAgICAgICAgICAgICAgIGF3YWl0IG5lZ290aWF0ZSgpLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMubG9nLmVycm9yKCdjb3VsZCBub3QgbmVnb3RpYXRlIHByb3RvY29sIGJlZm9yZSBjbG9zZSByZWFkJywgZXJyKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHByb3RvY29sIGhhcyBiZWVuIG5lZ290aWF0ZWQsIG9rIHRvIGNsb3NlIHRoZSByZWFkYWJsZSBlbmRcbiAgICAgICAgICAgIGF3YWl0IG9yaWdpbmFsQ2xvc2VSZWFkKG9wdHMpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBpZiAoc3RyZWFtLmNsb3NlV3JpdGUgIT0gbnVsbCkge1xuICAgICAgICBjb25zdCBvcmlnaW5hbENsb3NlV3JpdGUgPSBzdHJlYW0uY2xvc2VXcml0ZS5iaW5kKHN0cmVhbSk7XG4gICAgICAgIHN0cmVhbS5jbG9zZVdyaXRlID0gYXN5bmMgKG9wdHMpID0+IHtcbiAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gcmVhZCAmIHdyaXRlIHRvIG5lZ290aWF0ZSB0aGUgcHJvdG9jb2wgc28gZW5zdXJlIHdlJ3ZlIGRvbmVcbiAgICAgICAgICAgIC8vIHRoaXMgYmVmb3JlIGNsb3NpbmcgdGhlIHdyaXRhYmxlIGVuZCBvZiB0aGUgc3RyZWFtXG4gICAgICAgICAgICBpZiAoIW5lZ290aWF0ZWQpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBuZWdvdGlhdGUoKS5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmxvZy5lcnJvcignY291bGQgbm90IG5lZ290aWF0ZSBwcm90b2NvbCBiZWZvcmUgY2xvc2Ugd3JpdGUnLCBlcnIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gcHJvdG9jb2wgaGFzIGJlZW4gbmVnb3RpYXRlZCwgb2sgdG8gY2xvc2UgdGhlIHdyaXRhYmxlIGVuZFxuICAgICAgICAgICAgYXdhaXQgb3JpZ2luYWxDbG9zZVdyaXRlKG9wdHMpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBpZiAoc3RyZWFtLmNsb3NlICE9IG51bGwpIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxDbG9zZSA9IHN0cmVhbS5jbG9zZS5iaW5kKHN0cmVhbSk7XG4gICAgICAgIHN0cmVhbS5jbG9zZSA9IGFzeW5jIChvcHRzKSA9PiB7XG4gICAgICAgICAgICAvLyBpZiB3ZSBhcmUgaW4gdGhlIHByb2Nlc3Mgb2YgbmVnb3RpYXRpb24sIGxldCBpdCBmaW5pc2ggYmVmb3JlIGNsb3NpbmdcbiAgICAgICAgICAgIC8vIGJlY2F1c2Ugd2UgbWF5IGhhdmUgdW5zZW50IGVhcmx5IGRhdGFcbiAgICAgICAgICAgIGNvbnN0IHRhc2tzID0gW107XG4gICAgICAgICAgICBpZiAoc2VuZGluZ1Byb3RvY29sKSB7XG4gICAgICAgICAgICAgICAgdGFza3MucHVzaChkb25lU2VuZGluZ1Byb3RvY29sLnByb21pc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlYWRpbmdQcm90b2NvbCkge1xuICAgICAgICAgICAgICAgIHRhc2tzLnB1c2goZG9uZVJlYWRpbmdQcm90b2NvbC5wcm9taXNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0YXNrcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgLy8gbGV0IHRoZSBpbi1mbGlnaHQgcHJvdG9jb2wgbmVnb3RpYXRpb24gZmluaXNoIGdyYWNlZnVsbHlcbiAgICAgICAgICAgICAgICBhd2FpdCByYWNlU2lnbmFsKFByb21pc2UuYWxsKHRhc2tzKSwgb3B0cz8uc2lnbmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIG5vIHByb3RvY29sIG5lZ290aWF0aW9uIGF0dGVtcHQgaGFzIG9jY3VycmVkIHNvIGRvbid0IHN0YXJ0IG9uZVxuICAgICAgICAgICAgICAgIG5lZ290aWF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIG5lZ290aWF0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZG9uZU5lZ290aWF0aW5nLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHByb3RvY29sIGhhcyBiZWVuIG5lZ290aWF0ZWQsIG9rIHRvIGNsb3NlIHRoZSB3cml0YWJsZSBlbmRcbiAgICAgICAgICAgIGF3YWl0IG9yaWdpbmFsQ2xvc2Uob3B0cyk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHN0cmVhbSxcbiAgICAgICAgcHJvdG9jb2xcbiAgICB9O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VsZWN0LmpzLm1hcCJdLCJuYW1lcyI6WyJDb2RlRXJyb3IiLCJscFN0cmVhbSIsInBEZWZlciIsInJhY2VTaWduYWwiLCJ2YXJpbnQiLCJVaW50OEFycmF5TGlzdCIsImZyb21TdHJpbmciLCJ1aW50OEFycmF5RnJvbVN0cmluZyIsIk1BWF9QUk9UT0NPTF9MRU5HVEgiLCJtdWx0aXN0cmVhbSIsIlBST1RPQ09MX0lEIiwic2VsZWN0Iiwic3RyZWFtIiwicHJvdG9jb2xzIiwib3B0aW9ucyIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsIm5lZ290aWF0ZUZ1bGx5Iiwib3B0aW1pc3RpY1NlbGVjdCIsImxwIiwibWF4RGF0YUxlbmd0aCIsInByb3RvY29sIiwic2hpZnQiLCJFcnJvciIsImxvZyIsInRyYWNlIiwicDEiLCJwMiIsIndyaXRlQWxsIiwicmVzcG9uc2UiLCJyZWFkU3RyaW5nIiwidW53cmFwIiwid3JpdGUiLCJvcmlnaW5hbFNpbmsiLCJzaW5rIiwiYmluZCIsIm9yaWdpbmFsU291cmNlIiwic291cmNlIiwibmVnb3RpYXRlZCIsIm5lZ290aWF0aW5nIiwiZG9uZU5lZ290aWF0aW5nIiwic2VudFByb3RvY29sIiwic2VuZGluZ1Byb3RvY29sIiwiZG9uZVNlbmRpbmdQcm90b2NvbCIsInJlYWRQcm90b2NvbCIsInJlYWRpbmdQcm90b2NvbCIsImRvbmVSZWFkaW5nUHJvdG9jb2wiLCJzZW50RGF0YSIsImJ1ZiIsInByb21pc2UiLCJieXRlTGVuZ3RoIiwicHJvdG9jb2xTdHJpbmciLCJVaW50OEFycmF5IiwiZnJvbSIsImVuY29kZSIsInN1YmFycmF5IiwicmVzb2x2ZSIsIm5lZ290aWF0ZSIsImNhdGNoIiwiZXJyIiwiZXJyb3IiLCJkb1NlbmRQcm90b2NvbCIsImRvUmVhZFByb3RvY29sIiwid3JpdGVWIiwiY2xvc2VSZWFkIiwib3JpZ2luYWxDbG9zZVJlYWQiLCJvcHRzIiwiY2xvc2VXcml0ZSIsIm9yaWdpbmFsQ2xvc2VXcml0ZSIsImNsb3NlIiwib3JpZ2luYWxDbG9zZSIsInRhc2tzIiwicHVzaCIsIlByb21pc2UiLCJhbGwiLCJzaWduYWwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/multistream-select/dist/src/select.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/peer-collections/dist/src/map.js":
/*!***************************************************************!*\
!*** ./node_modules/@libp2p/peer-collections/dist/src/map.js ***!
\***************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PeerMap: () => (/* binding */ PeerMap),\n/* harmony export */ peerMap: () => (/* binding */ peerMap)\n/* harmony export */ });\n/* harmony import */ var _libp2p_peer_id__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @libp2p/peer-id */ \"(ssr)/./node_modules/@libp2p/peer-id/dist/src/index.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util.js */ \"(ssr)/./node_modules/@libp2p/peer-collections/dist/src/util.js\");\n\n\n/**\n * We can't use PeerIds as map keys because map keys are\n * compared using same-value-zero equality, so this is just\n * a map that stringifies the PeerIds before storing them.\n *\n * PeerIds cache stringified versions of themselves so this\n * should be a cheap operation.\n *\n * @example\n *\n * ```TypeScript\n * import { peerMap } from '@libp2p/peer-collections'\n *\n * const map = peerMap<string>()\n * map.set(peerId, 'value')\n * ```\n */ class PeerMap {\n constructor(map){\n this.map = new Map();\n if (map != null) {\n for (const [key, value] of map.entries()){\n this.map.set(key.toString(), value);\n }\n }\n }\n [Symbol.iterator]() {\n return this.entries();\n }\n clear() {\n this.map.clear();\n }\n delete(peer) {\n return this.map.delete(peer.toString());\n }\n entries() {\n return (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.mapIterable)(this.map.entries(), (val)=>{\n return [\n (0,_libp2p_peer_id__WEBPACK_IMPORTED_MODULE_1__.peerIdFromString)(val[0]),\n val[1]\n ];\n });\n }\n forEach(fn) {\n this.map.forEach((value, key)=>{\n fn(value, (0,_libp2p_peer_id__WEBPACK_IMPORTED_MODULE_1__.peerIdFromString)(key), this);\n });\n }\n get(peer) {\n return this.map.get(peer.toString());\n }\n has(peer) {\n return this.map.has(peer.toString());\n }\n set(peer, value) {\n this.map.set(peer.toString(), value);\n }\n keys() {\n return (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.mapIterable)(this.map.keys(), (val)=>{\n return (0,_libp2p_peer_id__WEBPACK_IMPORTED_MODULE_1__.peerIdFromString)(val);\n });\n }\n values() {\n return this.map.values();\n }\n get size() {\n return this.map.size;\n }\n}\nfunction peerMap() {\n return new PeerMap();\n} //# sourceMappingURL=map.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLWNvbGxlY3Rpb25zL2Rpc3Qvc3JjL21hcC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQW1EO0FBQ1g7QUFDeEM7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FnQkMsR0FDTSxNQUFNRTtJQUVUQyxZQUFZQyxHQUFHLENBQUU7UUFDYixJQUFJLENBQUNBLEdBQUcsR0FBRyxJQUFJQztRQUNmLElBQUlELE9BQU8sTUFBTTtZQUNiLEtBQUssTUFBTSxDQUFDRSxLQUFLQyxNQUFNLElBQUlILElBQUlJLE9BQU8sR0FBSTtnQkFDdEMsSUFBSSxDQUFDSixHQUFHLENBQUNLLEdBQUcsQ0FBQ0gsSUFBSUksUUFBUSxJQUFJSDtZQUNqQztRQUNKO0lBQ0o7SUFDQSxDQUFDSSxPQUFPQyxRQUFRLENBQUMsR0FBRztRQUNoQixPQUFPLElBQUksQ0FBQ0osT0FBTztJQUN2QjtJQUNBSyxRQUFRO1FBQ0osSUFBSSxDQUFDVCxHQUFHLENBQUNTLEtBQUs7SUFDbEI7SUFDQUMsT0FBT0MsSUFBSSxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUNYLEdBQUcsQ0FBQ1UsTUFBTSxDQUFDQyxLQUFLTCxRQUFRO0lBQ3hDO0lBQ0FGLFVBQVU7UUFDTixPQUFPUCxxREFBV0EsQ0FBQyxJQUFJLENBQUNHLEdBQUcsQ0FBQ0ksT0FBTyxJQUFJLENBQUNRO1lBQ3BDLE9BQU87Z0JBQUNoQixpRUFBZ0JBLENBQUNnQixHQUFHLENBQUMsRUFBRTtnQkFBR0EsR0FBRyxDQUFDLEVBQUU7YUFBQztRQUM3QztJQUNKO0lBQ0FDLFFBQVFDLEVBQUUsRUFBRTtRQUNSLElBQUksQ0FBQ2QsR0FBRyxDQUFDYSxPQUFPLENBQUMsQ0FBQ1YsT0FBT0Q7WUFDckJZLEdBQUdYLE9BQU9QLGlFQUFnQkEsQ0FBQ00sTUFBTSxJQUFJO1FBQ3pDO0lBQ0o7SUFDQWEsSUFBSUosSUFBSSxFQUFFO1FBQ04sT0FBTyxJQUFJLENBQUNYLEdBQUcsQ0FBQ2UsR0FBRyxDQUFDSixLQUFLTCxRQUFRO0lBQ3JDO0lBQ0FVLElBQUlMLElBQUksRUFBRTtRQUNOLE9BQU8sSUFBSSxDQUFDWCxHQUFHLENBQUNnQixHQUFHLENBQUNMLEtBQUtMLFFBQVE7SUFDckM7SUFDQUQsSUFBSU0sSUFBSSxFQUFFUixLQUFLLEVBQUU7UUFDYixJQUFJLENBQUNILEdBQUcsQ0FBQ0ssR0FBRyxDQUFDTSxLQUFLTCxRQUFRLElBQUlIO0lBQ2xDO0lBQ0FjLE9BQU87UUFDSCxPQUFPcEIscURBQVdBLENBQUMsSUFBSSxDQUFDRyxHQUFHLENBQUNpQixJQUFJLElBQUksQ0FBQ0w7WUFDakMsT0FBT2hCLGlFQUFnQkEsQ0FBQ2dCO1FBQzVCO0lBQ0o7SUFDQU0sU0FBUztRQUNMLE9BQU8sSUFBSSxDQUFDbEIsR0FBRyxDQUFDa0IsTUFBTTtJQUMxQjtJQUNBLElBQUlDLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQ25CLEdBQUcsQ0FBQ21CLElBQUk7SUFDeEI7QUFDSjtBQUNPLFNBQVNDO0lBQ1osT0FBTyxJQUFJdEI7QUFDZixFQUNBLCtCQUErQiIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvcGVlci1jb2xsZWN0aW9ucy9kaXN0L3NyYy9tYXAuanM/MWNkNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwZWVySWRGcm9tU3RyaW5nIH0gZnJvbSAnQGxpYnAycC9wZWVyLWlkJztcbmltcG9ydCB7IG1hcEl0ZXJhYmxlIH0gZnJvbSAnLi91dGlsLmpzJztcbi8qKlxuICogV2UgY2FuJ3QgdXNlIFBlZXJJZHMgYXMgbWFwIGtleXMgYmVjYXVzZSBtYXAga2V5cyBhcmVcbiAqIGNvbXBhcmVkIHVzaW5nIHNhbWUtdmFsdWUtemVybyBlcXVhbGl0eSwgc28gdGhpcyBpcyBqdXN0XG4gKiBhIG1hcCB0aGF0IHN0cmluZ2lmaWVzIHRoZSBQZWVySWRzIGJlZm9yZSBzdG9yaW5nIHRoZW0uXG4gKlxuICogUGVlcklkcyBjYWNoZSBzdHJpbmdpZmllZCB2ZXJzaW9ucyBvZiB0aGVtc2VsdmVzIHNvIHRoaXNcbiAqIHNob3VsZCBiZSBhIGNoZWFwIG9wZXJhdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYFR5cGVTY3JpcHRcbiAqIGltcG9ydCB7IHBlZXJNYXAgfSBmcm9tICdAbGlicDJwL3BlZXItY29sbGVjdGlvbnMnXG4gKlxuICogY29uc3QgbWFwID0gcGVlck1hcDxzdHJpbmc+KClcbiAqIG1hcC5zZXQocGVlcklkLCAndmFsdWUnKVxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBQZWVyTWFwIHtcbiAgICBtYXA7XG4gICAgY29uc3RydWN0b3IobWFwKSB7XG4gICAgICAgIHRoaXMubWFwID0gbmV3IE1hcCgpO1xuICAgICAgICBpZiAobWFwICE9IG51bGwpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIG1hcC5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1hcC5zZXQoa2V5LnRvU3RyaW5nKCksIHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50cmllcygpO1xuICAgIH1cbiAgICBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5tYXAuY2xlYXIoKTtcbiAgICB9XG4gICAgZGVsZXRlKHBlZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwLmRlbGV0ZShwZWVyLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgICBlbnRyaWVzKCkge1xuICAgICAgICByZXR1cm4gbWFwSXRlcmFibGUodGhpcy5tYXAuZW50cmllcygpLCAodmFsKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gW3BlZXJJZEZyb21TdHJpbmcodmFsWzBdKSwgdmFsWzFdXTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZvckVhY2goZm4pIHtcbiAgICAgICAgdGhpcy5tYXAuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICAgICAgZm4odmFsdWUsIHBlZXJJZEZyb21TdHJpbmcoa2V5KSwgdGhpcyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXQocGVlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXAuZ2V0KHBlZXIudG9TdHJpbmcoKSk7XG4gICAgfVxuICAgIGhhcyhwZWVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcC5oYXMocGVlci50b1N0cmluZygpKTtcbiAgICB9XG4gICAgc2V0KHBlZXIsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMubWFwLnNldChwZWVyLnRvU3RyaW5nKCksIHZhbHVlKTtcbiAgICB9XG4gICAga2V5cygpIHtcbiAgICAgICAgcmV0dXJuIG1hcEl0ZXJhYmxlKHRoaXMubWFwLmtleXMoKSwgKHZhbCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHBlZXJJZEZyb21TdHJpbmcodmFsKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHZhbHVlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwLnZhbHVlcygpO1xuICAgIH1cbiAgICBnZXQgc2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwLnNpemU7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIHBlZXJNYXAoKSB7XG4gICAgcmV0dXJuIG5ldyBQZWVyTWFwKCk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tYXAuanMubWFwIl0sIm5hbWVzIjpbInBlZXJJZEZyb21TdHJpbmciLCJtYXBJdGVyYWJsZSIsIlBlZXJNYXAiLCJjb25zdHJ1Y3RvciIsIm1hcCIsIk1hcCIsImtleSIsInZhbHVlIiwiZW50cmllcyIsInNldCIsInRvU3RyaW5nIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjbGVhciIsImRlbGV0ZSIsInBlZXIiLCJ2YWwiLCJmb3JFYWNoIiwiZm4iLCJnZXQiLCJoYXMiLCJrZXlzIiwidmFsdWVzIiwic2l6ZSIsInBlZXJNYXAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/peer-collections/dist/src/map.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/peer-collections/dist/src/set.js":
/*!***************************************************************!*\
!*** ./node_modules/@libp2p/peer-collections/dist/src/set.js ***!
\***************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PeerSet: () => (/* binding */ PeerSet),\n/* harmony export */ peerSet: () => (/* binding */ peerSet)\n/* harmony export */ });\n/* harmony import */ var _libp2p_peer_id__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @libp2p/peer-id */ \"(ssr)/./node_modules/@libp2p/peer-id/dist/src/index.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util.js */ \"(ssr)/./node_modules/@libp2p/peer-collections/dist/src/util.js\");\n\n\n/**\n * We can't use PeerIds as set entries because set entries are\n * compared using same-value-zero equality, so this is just\n * a map that stringifies the PeerIds before storing them.\n *\n * PeerIds cache stringified versions of themselves so this\n * should be a cheap operation.\n *\n * @example\n *\n * ```TypeScript\n * import { peerSet } from '@libp2p/peer-collections'\n *\n * const set = peerSet()\n * set.add(peerId)\n * ```\n */ class PeerSet {\n constructor(set){\n this.set = new Set();\n if (set != null) {\n for (const key of set){\n this.set.add(key.toString());\n }\n }\n }\n get size() {\n return this.set.size;\n }\n [Symbol.iterator]() {\n return this.values();\n }\n add(peer) {\n this.set.add(peer.toString());\n }\n clear() {\n this.set.clear();\n }\n delete(peer) {\n this.set.delete(peer.toString());\n }\n entries() {\n return (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.mapIterable)(this.set.entries(), (val)=>{\n const peerId = (0,_libp2p_peer_id__WEBPACK_IMPORTED_MODULE_1__.peerIdFromString)(val[0]);\n return [\n peerId,\n peerId\n ];\n });\n }\n forEach(predicate) {\n this.set.forEach((str)=>{\n const id = (0,_libp2p_peer_id__WEBPACK_IMPORTED_MODULE_1__.peerIdFromString)(str);\n predicate(id, id, this);\n });\n }\n has(peer) {\n return this.set.has(peer.toString());\n }\n values() {\n return (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.mapIterable)(this.set.values(), (val)=>{\n return (0,_libp2p_peer_id__WEBPACK_IMPORTED_MODULE_1__.peerIdFromString)(val);\n });\n }\n intersection(other) {\n const output = new PeerSet();\n for (const peerId of other){\n if (this.has(peerId)) {\n output.add(peerId);\n }\n }\n return output;\n }\n difference(other) {\n const output = new PeerSet();\n for (const peerId of this){\n if (!other.has(peerId)) {\n output.add(peerId);\n }\n }\n return output;\n }\n union(other) {\n const output = new PeerSet();\n for (const peerId of other){\n output.add(peerId);\n }\n for (const peerId of this){\n output.add(peerId);\n }\n return output;\n }\n}\nfunction peerSet() {\n return new PeerSet();\n} //# sourceMappingURL=set.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLWNvbGxlY3Rpb25zL2Rpc3Qvc3JjL3NldC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQW1EO0FBQ1g7QUFDeEM7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FnQkMsR0FDTSxNQUFNRTtJQUVUQyxZQUFZQyxHQUFHLENBQUU7UUFDYixJQUFJLENBQUNBLEdBQUcsR0FBRyxJQUFJQztRQUNmLElBQUlELE9BQU8sTUFBTTtZQUNiLEtBQUssTUFBTUUsT0FBT0YsSUFBSztnQkFDbkIsSUFBSSxDQUFDQSxHQUFHLENBQUNHLEdBQUcsQ0FBQ0QsSUFBSUUsUUFBUTtZQUM3QjtRQUNKO0lBQ0o7SUFDQSxJQUFJQyxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUNMLEdBQUcsQ0FBQ0ssSUFBSTtJQUN4QjtJQUNBLENBQUNDLE9BQU9DLFFBQVEsQ0FBQyxHQUFHO1FBQ2hCLE9BQU8sSUFBSSxDQUFDQyxNQUFNO0lBQ3RCO0lBQ0FMLElBQUlNLElBQUksRUFBRTtRQUNOLElBQUksQ0FBQ1QsR0FBRyxDQUFDRyxHQUFHLENBQUNNLEtBQUtMLFFBQVE7SUFDOUI7SUFDQU0sUUFBUTtRQUNKLElBQUksQ0FBQ1YsR0FBRyxDQUFDVSxLQUFLO0lBQ2xCO0lBQ0FDLE9BQU9GLElBQUksRUFBRTtRQUNULElBQUksQ0FBQ1QsR0FBRyxDQUFDVyxNQUFNLENBQUNGLEtBQUtMLFFBQVE7SUFDakM7SUFDQVEsVUFBVTtRQUNOLE9BQU9mLHFEQUFXQSxDQUFDLElBQUksQ0FBQ0csR0FBRyxDQUFDWSxPQUFPLElBQUksQ0FBQ0M7WUFDcEMsTUFBTUMsU0FBU2xCLGlFQUFnQkEsQ0FBQ2lCLEdBQUcsQ0FBQyxFQUFFO1lBQ3RDLE9BQU87Z0JBQUNDO2dCQUFRQTthQUFPO1FBQzNCO0lBQ0o7SUFDQUMsUUFBUUMsU0FBUyxFQUFFO1FBQ2YsSUFBSSxDQUFDaEIsR0FBRyxDQUFDZSxPQUFPLENBQUMsQ0FBQ0U7WUFDZCxNQUFNQyxLQUFLdEIsaUVBQWdCQSxDQUFDcUI7WUFDNUJELFVBQVVFLElBQUlBLElBQUksSUFBSTtRQUMxQjtJQUNKO0lBQ0FDLElBQUlWLElBQUksRUFBRTtRQUNOLE9BQU8sSUFBSSxDQUFDVCxHQUFHLENBQUNtQixHQUFHLENBQUNWLEtBQUtMLFFBQVE7SUFDckM7SUFDQUksU0FBUztRQUNMLE9BQU9YLHFEQUFXQSxDQUFDLElBQUksQ0FBQ0csR0FBRyxDQUFDUSxNQUFNLElBQUksQ0FBQ0s7WUFDbkMsT0FBT2pCLGlFQUFnQkEsQ0FBQ2lCO1FBQzVCO0lBQ0o7SUFDQU8sYUFBYUMsS0FBSyxFQUFFO1FBQ2hCLE1BQU1DLFNBQVMsSUFBSXhCO1FBQ25CLEtBQUssTUFBTWdCLFVBQVVPLE1BQU87WUFDeEIsSUFBSSxJQUFJLENBQUNGLEdBQUcsQ0FBQ0wsU0FBUztnQkFDbEJRLE9BQU9uQixHQUFHLENBQUNXO1lBQ2Y7UUFDSjtRQUNBLE9BQU9RO0lBQ1g7SUFDQUMsV0FBV0YsS0FBSyxFQUFFO1FBQ2QsTUFBTUMsU0FBUyxJQUFJeEI7UUFDbkIsS0FBSyxNQUFNZ0IsVUFBVSxJQUFJLENBQUU7WUFDdkIsSUFBSSxDQUFDTyxNQUFNRixHQUFHLENBQUNMLFNBQVM7Z0JBQ3BCUSxPQUFPbkIsR0FBRyxDQUFDVztZQUNmO1FBQ0o7UUFDQSxPQUFPUTtJQUNYO0lBQ0FFLE1BQU1ILEtBQUssRUFBRTtRQUNULE1BQU1DLFNBQVMsSUFBSXhCO1FBQ25CLEtBQUssTUFBTWdCLFVBQVVPLE1BQU87WUFDeEJDLE9BQU9uQixHQUFHLENBQUNXO1FBQ2Y7UUFDQSxLQUFLLE1BQU1BLFVBQVUsSUFBSSxDQUFFO1lBQ3ZCUSxPQUFPbkIsR0FBRyxDQUFDVztRQUNmO1FBQ0EsT0FBT1E7SUFDWDtBQUNKO0FBQ08sU0FBU0c7SUFDWixPQUFPLElBQUkzQjtBQUNmLEVBQ0EsK0JBQStCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLWNvbGxlY3Rpb25zL2Rpc3Qvc3JjL3NldC5qcz80ODgwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBlZXJJZEZyb21TdHJpbmcgfSBmcm9tICdAbGlicDJwL3BlZXItaWQnO1xuaW1wb3J0IHsgbWFwSXRlcmFibGUgfSBmcm9tICcuL3V0aWwuanMnO1xuLyoqXG4gKiBXZSBjYW4ndCB1c2UgUGVlcklkcyBhcyBzZXQgZW50cmllcyBiZWNhdXNlIHNldCBlbnRyaWVzIGFyZVxuICogY29tcGFyZWQgdXNpbmcgc2FtZS12YWx1ZS16ZXJvIGVxdWFsaXR5LCBzbyB0aGlzIGlzIGp1c3RcbiAqIGEgbWFwIHRoYXQgc3RyaW5naWZpZXMgdGhlIFBlZXJJZHMgYmVmb3JlIHN0b3JpbmcgdGhlbS5cbiAqXG4gKiBQZWVySWRzIGNhY2hlIHN0cmluZ2lmaWVkIHZlcnNpb25zIG9mIHRoZW1zZWx2ZXMgc28gdGhpc1xuICogc2hvdWxkIGJlIGEgY2hlYXAgb3BlcmF0aW9uLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBgVHlwZVNjcmlwdFxuICogaW1wb3J0IHsgcGVlclNldCB9IGZyb20gJ0BsaWJwMnAvcGVlci1jb2xsZWN0aW9ucydcbiAqXG4gKiBjb25zdCBzZXQgPSBwZWVyU2V0KClcbiAqIHNldC5hZGQocGVlcklkKVxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBQZWVyU2V0IHtcbiAgICBzZXQ7XG4gICAgY29uc3RydWN0b3Ioc2V0KSB7XG4gICAgICAgIHRoaXMuc2V0ID0gbmV3IFNldCgpO1xuICAgICAgICBpZiAoc2V0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIHNldCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0LmFkZChrZXkudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHNpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldC5zaXplO1xuICAgIH1cbiAgICBbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVzKCk7XG4gICAgfVxuICAgIGFkZChwZWVyKSB7XG4gICAgICAgIHRoaXMuc2V0LmFkZChwZWVyLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgICBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5zZXQuY2xlYXIoKTtcbiAgICB9XG4gICAgZGVsZXRlKHBlZXIpIHtcbiAgICAgICAgdGhpcy5zZXQuZGVsZXRlKHBlZXIudG9TdHJpbmcoKSk7XG4gICAgfVxuICAgIGVudHJpZXMoKSB7XG4gICAgICAgIHJldHVybiBtYXBJdGVyYWJsZSh0aGlzLnNldC5lbnRyaWVzKCksICh2YWwpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBlZXJJZCA9IHBlZXJJZEZyb21TdHJpbmcodmFsWzBdKTtcbiAgICAgICAgICAgIHJldHVybiBbcGVlcklkLCBwZWVySWRdO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZm9yRWFjaChwcmVkaWNhdGUpIHtcbiAgICAgICAgdGhpcy5zZXQuZm9yRWFjaCgoc3RyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpZCA9IHBlZXJJZEZyb21TdHJpbmcoc3RyKTtcbiAgICAgICAgICAgIHByZWRpY2F0ZShpZCwgaWQsIHRoaXMpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgaGFzKHBlZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0LmhhcyhwZWVyLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgICB2YWx1ZXMoKSB7XG4gICAgICAgIHJldHVybiBtYXBJdGVyYWJsZSh0aGlzLnNldC52YWx1ZXMoKSwgKHZhbCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHBlZXJJZEZyb21TdHJpbmcodmFsKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGludGVyc2VjdGlvbihvdGhlcikge1xuICAgICAgICBjb25zdCBvdXRwdXQgPSBuZXcgUGVlclNldCgpO1xuICAgICAgICBmb3IgKGNvbnN0IHBlZXJJZCBvZiBvdGhlcikge1xuICAgICAgICAgICAgaWYgKHRoaXMuaGFzKHBlZXJJZCkpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXQuYWRkKHBlZXJJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9XG4gICAgZGlmZmVyZW5jZShvdGhlcikge1xuICAgICAgICBjb25zdCBvdXRwdXQgPSBuZXcgUGVlclNldCgpO1xuICAgICAgICBmb3IgKGNvbnN0IHBlZXJJZCBvZiB0aGlzKSB7XG4gICAgICAgICAgICBpZiAoIW90aGVyLmhhcyhwZWVySWQpKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0LmFkZChwZWVySWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfVxuICAgIHVuaW9uKG90aGVyKSB7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IG5ldyBQZWVyU2V0KCk7XG4gICAgICAgIGZvciAoY29uc3QgcGVlcklkIG9mIG90aGVyKSB7XG4gICAgICAgICAgICBvdXRwdXQuYWRkKHBlZXJJZCk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBwZWVySWQgb2YgdGhpcykge1xuICAgICAgICAgICAgb3V0cHV0LmFkZChwZWVySWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIHBlZXJTZXQoKSB7XG4gICAgcmV0dXJuIG5ldyBQZWVyU2V0KCk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZXQuanMubWFwIl0sIm5hbWVzIjpbInBlZXJJZEZyb21TdHJpbmciLCJtYXBJdGVyYWJsZSIsIlBlZXJTZXQiLCJjb25zdHJ1Y3RvciIsInNldCIsIlNldCIsImtleSIsImFkZCIsInRvU3RyaW5nIiwic2l6ZSIsIlN5bWJvbCIsIml0ZXJhdG9yIiwidmFsdWVzIiwicGVlciIsImNsZWFyIiwiZGVsZXRlIiwiZW50cmllcyIsInZhbCIsInBlZXJJZCIsImZvckVhY2giLCJwcmVkaWNhdGUiLCJzdHIiLCJpZCIsImhhcyIsImludGVyc2VjdGlvbiIsIm90aGVyIiwib3V0cHV0IiwiZGlmZmVyZW5jZSIsInVuaW9uIiwicGVlclNldCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/peer-collections/dist/src/set.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/peer-collections/dist/src/util.js":
/*!****************************************************************!*\
!*** ./node_modules/@libp2p/peer-collections/dist/src/util.js ***!
\****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mapIterable: () => (/* binding */ mapIterable)\n/* harmony export */ });\n/**\n * Calls the passed map function on every entry of the passed iterable iterator\n */ function mapIterable(iter, map) {\n const iterator = {\n [Symbol.iterator]: ()=>{\n return iterator;\n },\n next: ()=>{\n const next = iter.next();\n const val = next.value;\n if (next.done === true || val == null) {\n const result = {\n done: true,\n value: undefined\n };\n return result;\n }\n return {\n done: false,\n value: map(val)\n };\n }\n };\n return iterator;\n} //# sourceMappingURL=util.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLWNvbGxlY3Rpb25zL2Rpc3Qvc3JjL3V0aWwuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztDQUVDLEdBQ00sU0FBU0EsWUFBWUMsSUFBSSxFQUFFQyxHQUFHO0lBQ2pDLE1BQU1DLFdBQVc7UUFDYixDQUFDQyxPQUFPRCxRQUFRLENBQUMsRUFBRTtZQUNmLE9BQU9BO1FBQ1g7UUFDQUUsTUFBTTtZQUNGLE1BQU1BLE9BQU9KLEtBQUtJLElBQUk7WUFDdEIsTUFBTUMsTUFBTUQsS0FBS0UsS0FBSztZQUN0QixJQUFJRixLQUFLRyxJQUFJLEtBQUssUUFBUUYsT0FBTyxNQUFNO2dCQUNuQyxNQUFNRyxTQUFTO29CQUNYRCxNQUFNO29CQUNORCxPQUFPRztnQkFDWDtnQkFDQSxPQUFPRDtZQUNYO1lBQ0EsT0FBTztnQkFDSEQsTUFBTTtnQkFDTkQsT0FBT0wsSUFBSUk7WUFDZjtRQUNKO0lBQ0o7SUFDQSxPQUFPSDtBQUNYLEVBQ0EsZ0NBQWdDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLWNvbGxlY3Rpb25zL2Rpc3Qvc3JjL3V0aWwuanM/ZmEyMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENhbGxzIHRoZSBwYXNzZWQgbWFwIGZ1bmN0aW9uIG9uIGV2ZXJ5IGVudHJ5IG9mIHRoZSBwYXNzZWQgaXRlcmFibGUgaXRlcmF0b3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcEl0ZXJhYmxlKGl0ZXIsIG1hcCkge1xuICAgIGNvbnN0IGl0ZXJhdG9yID0ge1xuICAgICAgICBbU3ltYm9sLml0ZXJhdG9yXTogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yO1xuICAgICAgICB9LFxuICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gaXRlci5uZXh0KCk7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSBuZXh0LnZhbHVlO1xuICAgICAgICAgICAgaWYgKG5leHQuZG9uZSA9PT0gdHJ1ZSB8fCB2YWwgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgZG9uZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZG9uZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgdmFsdWU6IG1hcCh2YWwpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gaXRlcmF0b3I7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlsLmpzLm1hcCJdLCJuYW1lcyI6WyJtYXBJdGVyYWJsZSIsIml0ZXIiLCJtYXAiLCJpdGVyYXRvciIsIlN5bWJvbCIsIm5leHQiLCJ2YWwiLCJ2YWx1ZSIsImRvbmUiLCJyZXN1bHQiLCJ1bmRlZmluZWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/peer-collections/dist/src/util.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/peer-id-factory/dist/src/index.js":
/*!****************************************************************!*\
!*** ./node_modules/@libp2p/peer-id-factory/dist/src/index.js ***!
\****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createEd25519PeerId: () => (/* binding */ createEd25519PeerId),\n/* harmony export */ createFromJSON: () => (/* binding */ createFromJSON),\n/* harmony export */ createFromPrivKey: () => (/* binding */ createFromPrivKey),\n/* harmony export */ createFromProtobuf: () => (/* binding */ createFromProtobuf),\n/* harmony export */ createFromPubKey: () => (/* binding */ createFromPubKey),\n/* harmony export */ createRSAPeerId: () => (/* binding */ createRSAPeerId),\n/* harmony export */ createSecp256k1PeerId: () => (/* binding */ createSecp256k1PeerId),\n/* harmony export */ exportToProtobuf: () => (/* binding */ exportToProtobuf)\n/* harmony export */ });\n/* harmony import */ var _libp2p_crypto_keys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @libp2p/crypto/keys */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/index.js\");\n/* harmony import */ var _libp2p_peer_id__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @libp2p/peer-id */ \"(ssr)/./node_modules/@libp2p/peer-id/dist/src/index.js\");\n/* harmony import */ var uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uint8arrays/from-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/from-string.node.js\");\n/* harmony import */ var _proto_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./proto.js */ \"(ssr)/./node_modules/@libp2p/peer-id-factory/dist/src/proto.js\");\n/**\n * @packageDocumentation\n *\n * Generate, import, and export PeerIDs.\n *\n * A Peer ID is the SHA-256 [multihash](https://github.com/multiformats/multihash) of a public key.\n *\n * The public key is a base64 encoded string of a protobuf containing an RSA DER buffer. This uses a node buffer to pass the base64 encoded public key protobuf to the multihash for ID generation.\n *\n * @example\n *\n * ```TypeScript\n * import { createEd25519PeerId } from '@libp2p/peer-id-factory'\n *\n * const peerId = await createEd25519PeerId()\n * console.log(peerId.toString())\n * ```\n *\n * ```bash\n * 12D3KooWRm8J3iL796zPFi2EtGGtUJn58AG67gcqzMFHZnnsTzqD\n * ```\n */ \n\n\n\nconst createEd25519PeerId = async ()=>{\n const key = await (0,_libp2p_crypto_keys__WEBPACK_IMPORTED_MODULE_1__.generateKeyPair)(\"Ed25519\");\n const id = await createFromPrivKey(key);\n if (id.type === \"Ed25519\") {\n return id;\n }\n throw new Error(`Generated unexpected PeerId type \"${id.type}\"`);\n};\nconst createSecp256k1PeerId = async ()=>{\n const key = await (0,_libp2p_crypto_keys__WEBPACK_IMPORTED_MODULE_1__.generateKeyPair)(\"secp256k1\");\n const id = await createFromPrivKey(key);\n if (id.type === \"secp256k1\") {\n return id;\n }\n throw new Error(`Generated unexpected PeerId type \"${id.type}\"`);\n};\nconst createRSAPeerId = async (opts)=>{\n const key = await (0,_libp2p_crypto_keys__WEBPACK_IMPORTED_MODULE_1__.generateKeyPair)(\"RSA\", opts?.bits ?? 2048);\n const id = await createFromPrivKey(key);\n if (id.type === \"RSA\") {\n return id;\n }\n throw new Error(`Generated unexpected PeerId type \"${id.type}\"`);\n};\nasync function createFromPubKey(publicKey) {\n return (0,_libp2p_peer_id__WEBPACK_IMPORTED_MODULE_2__.peerIdFromKeys)((0,_libp2p_crypto_keys__WEBPACK_IMPORTED_MODULE_1__.marshalPublicKey)(publicKey));\n}\nasync function createFromPrivKey(privateKey) {\n return (0,_libp2p_peer_id__WEBPACK_IMPORTED_MODULE_2__.peerIdFromKeys)((0,_libp2p_crypto_keys__WEBPACK_IMPORTED_MODULE_1__.marshalPublicKey)(privateKey.public), (0,_libp2p_crypto_keys__WEBPACK_IMPORTED_MODULE_1__.marshalPrivateKey)(privateKey));\n}\nfunction exportToProtobuf(peerId, excludePrivateKey) {\n return _proto_js__WEBPACK_IMPORTED_MODULE_3__.PeerIdProto.encode({\n id: peerId.multihash.bytes,\n pubKey: peerId.publicKey,\n privKey: excludePrivateKey === true || peerId.privateKey == null ? undefined : peerId.privateKey\n });\n}\nasync function createFromProtobuf(buf) {\n const { id, privKey, pubKey } = _proto_js__WEBPACK_IMPORTED_MODULE_3__.PeerIdProto.decode(buf);\n return createFromParts(id ?? new Uint8Array(0), privKey, pubKey);\n}\nasync function createFromJSON(obj) {\n return createFromParts((0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_0__.fromString)(obj.id, \"base58btc\"), obj.privKey != null ? (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_0__.fromString)(obj.privKey, \"base64pad\") : undefined, obj.pubKey != null ? (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_0__.fromString)(obj.pubKey, \"base64pad\") : undefined);\n}\nasync function createFromParts(multihash, privKey, pubKey) {\n if (privKey != null) {\n const key = await (0,_libp2p_crypto_keys__WEBPACK_IMPORTED_MODULE_1__.unmarshalPrivateKey)(privKey);\n return createFromPrivKey(key);\n } else if (pubKey != null) {\n const key = (0,_libp2p_crypto_keys__WEBPACK_IMPORTED_MODULE_1__.unmarshalPublicKey)(pubKey);\n return createFromPubKey(key);\n }\n return (0,_libp2p_peer_id__WEBPACK_IMPORTED_MODULE_2__.peerIdFromBytes)(multihash);\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLWlkLWZhY3RvcnkvZGlzdC9zcmMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXFCQyxHQUNtSTtBQUNsRTtBQUNXO0FBQ3BDO0FBQ2xDLE1BQU1VLHNCQUFzQjtJQUMvQixNQUFNQyxNQUFNLE1BQU1YLG9FQUFlQSxDQUFDO0lBQ2xDLE1BQU1ZLEtBQUssTUFBTUMsa0JBQWtCRjtJQUNuQyxJQUFJQyxHQUFHRSxJQUFJLEtBQUssV0FBVztRQUN2QixPQUFPRjtJQUNYO0lBQ0EsTUFBTSxJQUFJRyxNQUFNLENBQUMsa0NBQWtDLEVBQUVILEdBQUdFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDbkUsRUFBRTtBQUNLLE1BQU1FLHdCQUF3QjtJQUNqQyxNQUFNTCxNQUFNLE1BQU1YLG9FQUFlQSxDQUFDO0lBQ2xDLE1BQU1ZLEtBQUssTUFBTUMsa0JBQWtCRjtJQUNuQyxJQUFJQyxHQUFHRSxJQUFJLEtBQUssYUFBYTtRQUN6QixPQUFPRjtJQUNYO0lBQ0EsTUFBTSxJQUFJRyxNQUFNLENBQUMsa0NBQWtDLEVBQUVILEdBQUdFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDbkUsRUFBRTtBQUNLLE1BQU1HLGtCQUFrQixPQUFPQztJQUNsQyxNQUFNUCxNQUFNLE1BQU1YLG9FQUFlQSxDQUFDLE9BQU9rQixNQUFNQyxRQUFRO0lBQ3ZELE1BQU1QLEtBQUssTUFBTUMsa0JBQWtCRjtJQUNuQyxJQUFJQyxHQUFHRSxJQUFJLEtBQUssT0FBTztRQUNuQixPQUFPRjtJQUNYO0lBQ0EsTUFBTSxJQUFJRyxNQUFNLENBQUMsa0NBQWtDLEVBQUVILEdBQUdFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDbkUsRUFBRTtBQUNLLGVBQWVNLGlCQUFpQkMsU0FBUztJQUM1QyxPQUFPaEIsK0RBQWNBLENBQUNGLHFFQUFnQkEsQ0FBQ2tCO0FBQzNDO0FBQ08sZUFBZVIsa0JBQWtCUyxVQUFVO0lBQzlDLE9BQU9qQiwrREFBY0EsQ0FBQ0YscUVBQWdCQSxDQUFDbUIsV0FBV0MsTUFBTSxHQUFHdEIsc0VBQWlCQSxDQUFDcUI7QUFDakY7QUFDTyxTQUFTRSxpQkFBaUJDLE1BQU0sRUFBRUMsaUJBQWlCO0lBQ3RELE9BQU9qQixrREFBV0EsQ0FBQ2tCLE1BQU0sQ0FBQztRQUN0QmYsSUFBSWEsT0FBT0csU0FBUyxDQUFDQyxLQUFLO1FBQzFCQyxRQUFRTCxPQUFPSixTQUFTO1FBQ3hCVSxTQUFTTCxzQkFBc0IsUUFBUUQsT0FBT0gsVUFBVSxJQUFJLE9BQU9VLFlBQVlQLE9BQU9ILFVBQVU7SUFDcEc7QUFDSjtBQUNPLGVBQWVXLG1CQUFtQkMsR0FBRztJQUN4QyxNQUFNLEVBQUV0QixFQUFFLEVBQUVtQixPQUFPLEVBQUVELE1BQU0sRUFBRSxHQUFHckIsa0RBQVdBLENBQUMwQixNQUFNLENBQUNEO0lBQ25ELE9BQU9FLGdCQUFnQnhCLE1BQU0sSUFBSXlCLFdBQVcsSUFBSU4sU0FBU0Q7QUFDN0Q7QUFDTyxlQUFlUSxlQUFlQyxHQUFHO0lBQ3BDLE9BQU9ILGdCQUFnQjVCLG1FQUFvQkEsQ0FBQytCLElBQUkzQixFQUFFLEVBQUUsY0FBYzJCLElBQUlSLE9BQU8sSUFBSSxPQUFPdkIsbUVBQW9CQSxDQUFDK0IsSUFBSVIsT0FBTyxFQUFFLGVBQWVDLFdBQVdPLElBQUlULE1BQU0sSUFBSSxPQUFPdEIsbUVBQW9CQSxDQUFDK0IsSUFBSVQsTUFBTSxFQUFFLGVBQWVFO0FBQzdOO0FBQ0EsZUFBZUksZ0JBQWdCUixTQUFTLEVBQUVHLE9BQU8sRUFBRUQsTUFBTTtJQUNyRCxJQUFJQyxXQUFXLE1BQU07UUFDakIsTUFBTXBCLE1BQU0sTUFBTVQsd0VBQW1CQSxDQUFDNkI7UUFDdEMsT0FBT2xCLGtCQUFrQkY7SUFDN0IsT0FDSyxJQUFJbUIsVUFBVSxNQUFNO1FBQ3JCLE1BQU1uQixNQUFNUCx1RUFBa0JBLENBQUMwQjtRQUMvQixPQUFPVixpQkFBaUJUO0lBQzVCO0lBQ0EsT0FBT0wsZ0VBQWVBLENBQUNzQjtBQUMzQixFQUNBLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvcGVlci1pZC1mYWN0b3J5L2Rpc3Qvc3JjL2luZGV4LmpzP2IzNTgiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBHZW5lcmF0ZSwgaW1wb3J0LCBhbmQgZXhwb3J0IFBlZXJJRHMuXG4gKlxuICogQSBQZWVyIElEIGlzIHRoZSBTSEEtMjU2IFttdWx0aWhhc2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9tdWx0aWZvcm1hdHMvbXVsdGloYXNoKSBvZiBhIHB1YmxpYyBrZXkuXG4gKlxuICogVGhlIHB1YmxpYyBrZXkgaXMgYSBiYXNlNjQgZW5jb2RlZCBzdHJpbmcgb2YgYSBwcm90b2J1ZiBjb250YWluaW5nIGFuIFJTQSBERVIgYnVmZmVyLiBUaGlzIHVzZXMgYSBub2RlIGJ1ZmZlciB0byBwYXNzIHRoZSBiYXNlNjQgZW5jb2RlZCBwdWJsaWMga2V5IHByb3RvYnVmIHRvIHRoZSBtdWx0aWhhc2ggZm9yIElEIGdlbmVyYXRpb24uXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBUeXBlU2NyaXB0XG4gKiBpbXBvcnQgeyBjcmVhdGVFZDI1NTE5UGVlcklkIH0gZnJvbSAnQGxpYnAycC9wZWVyLWlkLWZhY3RvcnknXG4gKlxuICogY29uc3QgcGVlcklkID0gYXdhaXQgY3JlYXRlRWQyNTUxOVBlZXJJZCgpXG4gKiBjb25zb2xlLmxvZyhwZWVySWQudG9TdHJpbmcoKSlcbiAqIGBgYFxuICpcbiAqIGBgYGJhc2hcbiAqIDEyRDNLb29XUm04SjNpTDc5NnpQRmkyRXRHR3RVSm41OEFHNjdnY3F6TUZIWm5uc1R6cURcbiAqIGBgYFxuICovXG5pbXBvcnQgeyBnZW5lcmF0ZUtleVBhaXIsIG1hcnNoYWxQcml2YXRlS2V5LCB1bm1hcnNoYWxQcml2YXRlS2V5LCBtYXJzaGFsUHVibGljS2V5LCB1bm1hcnNoYWxQdWJsaWNLZXkgfSBmcm9tICdAbGlicDJwL2NyeXB0by9rZXlzJztcbmltcG9ydCB7IHBlZXJJZEZyb21LZXlzLCBwZWVySWRGcm9tQnl0ZXMgfSBmcm9tICdAbGlicDJwL3BlZXItaWQnO1xuaW1wb3J0IHsgZnJvbVN0cmluZyBhcyB1aW50OEFycmF5RnJvbVN0cmluZyB9IGZyb20gJ3VpbnQ4YXJyYXlzL2Zyb20tc3RyaW5nJztcbmltcG9ydCB7IFBlZXJJZFByb3RvIH0gZnJvbSAnLi9wcm90by5qcyc7XG5leHBvcnQgY29uc3QgY3JlYXRlRWQyNTUxOVBlZXJJZCA9IGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBrZXkgPSBhd2FpdCBnZW5lcmF0ZUtleVBhaXIoJ0VkMjU1MTknKTtcbiAgICBjb25zdCBpZCA9IGF3YWl0IGNyZWF0ZUZyb21Qcml2S2V5KGtleSk7XG4gICAgaWYgKGlkLnR5cGUgPT09ICdFZDI1NTE5Jykge1xuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgR2VuZXJhdGVkIHVuZXhwZWN0ZWQgUGVlcklkIHR5cGUgXCIke2lkLnR5cGV9XCJgKTtcbn07XG5leHBvcnQgY29uc3QgY3JlYXRlU2VjcDI1NmsxUGVlcklkID0gYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGtleSA9IGF3YWl0IGdlbmVyYXRlS2V5UGFpcignc2VjcDI1NmsxJyk7XG4gICAgY29uc3QgaWQgPSBhd2FpdCBjcmVhdGVGcm9tUHJpdktleShrZXkpO1xuICAgIGlmIChpZC50eXBlID09PSAnc2VjcDI1NmsxJykge1xuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgR2VuZXJhdGVkIHVuZXhwZWN0ZWQgUGVlcklkIHR5cGUgXCIke2lkLnR5cGV9XCJgKTtcbn07XG5leHBvcnQgY29uc3QgY3JlYXRlUlNBUGVlcklkID0gYXN5bmMgKG9wdHMpID0+IHtcbiAgICBjb25zdCBrZXkgPSBhd2FpdCBnZW5lcmF0ZUtleVBhaXIoJ1JTQScsIG9wdHM/LmJpdHMgPz8gMjA0OCk7XG4gICAgY29uc3QgaWQgPSBhd2FpdCBjcmVhdGVGcm9tUHJpdktleShrZXkpO1xuICAgIGlmIChpZC50eXBlID09PSAnUlNBJykge1xuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgR2VuZXJhdGVkIHVuZXhwZWN0ZWQgUGVlcklkIHR5cGUgXCIke2lkLnR5cGV9XCJgKTtcbn07XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlRnJvbVB1YktleShwdWJsaWNLZXkpIHtcbiAgICByZXR1cm4gcGVlcklkRnJvbUtleXMobWFyc2hhbFB1YmxpY0tleShwdWJsaWNLZXkpKTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVGcm9tUHJpdktleShwcml2YXRlS2V5KSB7XG4gICAgcmV0dXJuIHBlZXJJZEZyb21LZXlzKG1hcnNoYWxQdWJsaWNLZXkocHJpdmF0ZUtleS5wdWJsaWMpLCBtYXJzaGFsUHJpdmF0ZUtleShwcml2YXRlS2V5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZXhwb3J0VG9Qcm90b2J1ZihwZWVySWQsIGV4Y2x1ZGVQcml2YXRlS2V5KSB7XG4gICAgcmV0dXJuIFBlZXJJZFByb3RvLmVuY29kZSh7XG4gICAgICAgIGlkOiBwZWVySWQubXVsdGloYXNoLmJ5dGVzLFxuICAgICAgICBwdWJLZXk6IHBlZXJJZC5wdWJsaWNLZXksXG4gICAgICAgIHByaXZLZXk6IGV4Y2x1ZGVQcml2YXRlS2V5ID09PSB0cnVlIHx8IHBlZXJJZC5wcml2YXRlS2V5ID09IG51bGwgPyB1bmRlZmluZWQgOiBwZWVySWQucHJpdmF0ZUtleVxuICAgIH0pO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUZyb21Qcm90b2J1ZihidWYpIHtcbiAgICBjb25zdCB7IGlkLCBwcml2S2V5LCBwdWJLZXkgfSA9IFBlZXJJZFByb3RvLmRlY29kZShidWYpO1xuICAgIHJldHVybiBjcmVhdGVGcm9tUGFydHMoaWQgPz8gbmV3IFVpbnQ4QXJyYXkoMCksIHByaXZLZXksIHB1YktleSk7XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlRnJvbUpTT04ob2JqKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUZyb21QYXJ0cyh1aW50OEFycmF5RnJvbVN0cmluZyhvYmouaWQsICdiYXNlNThidGMnKSwgb2JqLnByaXZLZXkgIT0gbnVsbCA/IHVpbnQ4QXJyYXlGcm9tU3RyaW5nKG9iai5wcml2S2V5LCAnYmFzZTY0cGFkJykgOiB1bmRlZmluZWQsIG9iai5wdWJLZXkgIT0gbnVsbCA/IHVpbnQ4QXJyYXlGcm9tU3RyaW5nKG9iai5wdWJLZXksICdiYXNlNjRwYWQnKSA6IHVuZGVmaW5lZCk7XG59XG5hc3luYyBmdW5jdGlvbiBjcmVhdGVGcm9tUGFydHMobXVsdGloYXNoLCBwcml2S2V5LCBwdWJLZXkpIHtcbiAgICBpZiAocHJpdktleSAhPSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGF3YWl0IHVubWFyc2hhbFByaXZhdGVLZXkocHJpdktleSk7XG4gICAgICAgIHJldHVybiBjcmVhdGVGcm9tUHJpdktleShrZXkpO1xuICAgIH1cbiAgICBlbHNlIGlmIChwdWJLZXkgIT0gbnVsbCkge1xuICAgICAgICBjb25zdCBrZXkgPSB1bm1hcnNoYWxQdWJsaWNLZXkocHViS2V5KTtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUZyb21QdWJLZXkoa2V5KTtcbiAgICB9XG4gICAgcmV0dXJuIHBlZXJJZEZyb21CeXRlcyhtdWx0aWhhc2gpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbImdlbmVyYXRlS2V5UGFpciIsIm1hcnNoYWxQcml2YXRlS2V5IiwidW5tYXJzaGFsUHJpdmF0ZUtleSIsIm1hcnNoYWxQdWJsaWNLZXkiLCJ1bm1hcnNoYWxQdWJsaWNLZXkiLCJwZWVySWRGcm9tS2V5cyIsInBlZXJJZEZyb21CeXRlcyIsImZyb21TdHJpbmciLCJ1aW50OEFycmF5RnJvbVN0cmluZyIsIlBlZXJJZFByb3RvIiwiY3JlYXRlRWQyNTUxOVBlZXJJZCIsImtleSIsImlkIiwiY3JlYXRlRnJvbVByaXZLZXkiLCJ0eXBlIiwiRXJyb3IiLCJjcmVhdGVTZWNwMjU2azFQZWVySWQiLCJjcmVhdGVSU0FQZWVySWQiLCJvcHRzIiwiYml0cyIsImNyZWF0ZUZyb21QdWJLZXkiLCJwdWJsaWNLZXkiLCJwcml2YXRlS2V5IiwicHVibGljIiwiZXhwb3J0VG9Qcm90b2J1ZiIsInBlZXJJZCIsImV4Y2x1ZGVQcml2YXRlS2V5IiwiZW5jb2RlIiwibXVsdGloYXNoIiwiYnl0ZXMiLCJwdWJLZXkiLCJwcml2S2V5IiwidW5kZWZpbmVkIiwiY3JlYXRlRnJvbVByb3RvYnVmIiwiYnVmIiwiZGVjb2RlIiwiY3JlYXRlRnJvbVBhcnRzIiwiVWludDhBcnJheSIsImNyZWF0ZUZyb21KU09OIiwib2JqIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/peer-id-factory/dist/src/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/peer-id-factory/dist/src/proto.js":
/*!****************************************************************!*\
!*** ./node_modules/@libp2p/peer-id-factory/dist/src/proto.js ***!
\****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PeerIdProto: () => (/* binding */ PeerIdProto)\n/* harmony export */ });\n/* harmony import */ var protons_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! protons-runtime */ \"(ssr)/./node_modules/protons-runtime/dist/src/index.js\");\n/* eslint-disable import/export */ /* eslint-disable complexity */ /* eslint-disable @typescript-eslint/no-namespace */ /* eslint-disable @typescript-eslint/no-unnecessary-boolean-literal-compare */ /* eslint-disable @typescript-eslint/no-empty-interface */ \nvar PeerIdProto;\n(function(PeerIdProto) {\n let _codec;\n PeerIdProto.codec = ()=>{\n if (_codec == null) {\n _codec = (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.message)((obj, w, opts = {})=>{\n if (opts.lengthDelimited !== false) {\n w.fork();\n }\n if (obj.id != null) {\n w.uint32(10);\n w.bytes(obj.id);\n }\n if (obj.pubKey != null) {\n w.uint32(18);\n w.bytes(obj.pubKey);\n }\n if (obj.privKey != null) {\n w.uint32(26);\n w.bytes(obj.privKey);\n }\n if (opts.lengthDelimited !== false) {\n w.ldelim();\n }\n }, (reader, length)=>{\n const obj = {};\n const end = length == null ? reader.len : reader.pos + length;\n while(reader.pos < end){\n const tag = reader.uint32();\n switch(tag >>> 3){\n case 1:\n obj.id = reader.bytes();\n break;\n case 2:\n obj.pubKey = reader.bytes();\n break;\n case 3:\n obj.privKey = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return obj;\n });\n }\n return _codec;\n };\n PeerIdProto.encode = (obj)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.encodeMessage)(obj, PeerIdProto.codec());\n };\n PeerIdProto.decode = (buf)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.decodeMessage)(buf, PeerIdProto.codec());\n };\n})(PeerIdProto || (PeerIdProto = {})); //# sourceMappingURL=proto.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLWlkLWZhY3RvcnkvZGlzdC9zcmMvcHJvdG8uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnQ0FBZ0MsR0FDaEMsNkJBQTZCLEdBQzdCLGtEQUFrRCxHQUNsRCw0RUFBNEUsR0FDNUUsd0RBQXdELEdBQ2dCO0FBQ2pFLElBQUlHLFlBQVk7QUFDdEIsVUFBVUEsV0FBVztJQUNsQixJQUFJQztJQUNKRCxZQUFZRSxLQUFLLEdBQUc7UUFDaEIsSUFBSUQsVUFBVSxNQUFNO1lBQ2hCQSxTQUFTRix3REFBT0EsQ0FBQyxDQUFDSSxLQUFLQyxHQUFHQyxPQUFPLENBQUMsQ0FBQztnQkFDL0IsSUFBSUEsS0FBS0MsZUFBZSxLQUFLLE9BQU87b0JBQ2hDRixFQUFFRyxJQUFJO2dCQUNWO2dCQUNBLElBQUlKLElBQUlLLEVBQUUsSUFBSSxNQUFNO29CQUNoQkosRUFBRUssTUFBTSxDQUFDO29CQUNUTCxFQUFFTSxLQUFLLENBQUNQLElBQUlLLEVBQUU7Z0JBQ2xCO2dCQUNBLElBQUlMLElBQUlRLE1BQU0sSUFBSSxNQUFNO29CQUNwQlAsRUFBRUssTUFBTSxDQUFDO29CQUNUTCxFQUFFTSxLQUFLLENBQUNQLElBQUlRLE1BQU07Z0JBQ3RCO2dCQUNBLElBQUlSLElBQUlTLE9BQU8sSUFBSSxNQUFNO29CQUNyQlIsRUFBRUssTUFBTSxDQUFDO29CQUNUTCxFQUFFTSxLQUFLLENBQUNQLElBQUlTLE9BQU87Z0JBQ3ZCO2dCQUNBLElBQUlQLEtBQUtDLGVBQWUsS0FBSyxPQUFPO29CQUNoQ0YsRUFBRVMsTUFBTTtnQkFDWjtZQUNKLEdBQUcsQ0FBQ0MsUUFBUUM7Z0JBQ1IsTUFBTVosTUFBTSxDQUFDO2dCQUNiLE1BQU1hLE1BQU1ELFVBQVUsT0FBT0QsT0FBT0csR0FBRyxHQUFHSCxPQUFPSSxHQUFHLEdBQUdIO2dCQUN2RCxNQUFPRCxPQUFPSSxHQUFHLEdBQUdGLElBQUs7b0JBQ3JCLE1BQU1HLE1BQU1MLE9BQU9MLE1BQU07b0JBQ3pCLE9BQVFVLFFBQVE7d0JBQ1osS0FBSzs0QkFDRGhCLElBQUlLLEVBQUUsR0FBR00sT0FBT0osS0FBSzs0QkFDckI7d0JBQ0osS0FBSzs0QkFDRFAsSUFBSVEsTUFBTSxHQUFHRyxPQUFPSixLQUFLOzRCQUN6Qjt3QkFDSixLQUFLOzRCQUNEUCxJQUFJUyxPQUFPLEdBQUdFLE9BQU9KLEtBQUs7NEJBQzFCO3dCQUNKOzRCQUNJSSxPQUFPTSxRQUFRLENBQUNELE1BQU07NEJBQ3RCO29CQUNSO2dCQUNKO2dCQUNBLE9BQU9oQjtZQUNYO1FBQ0o7UUFDQSxPQUFPRjtJQUNYO0lBQ0FELFlBQVlxQixNQUFNLEdBQUcsQ0FBQ2xCO1FBQ2xCLE9BQU9OLDhEQUFhQSxDQUFDTSxLQUFLSCxZQUFZRSxLQUFLO0lBQy9DO0lBQ0FGLFlBQVlzQixNQUFNLEdBQUcsQ0FBQ0M7UUFDbEIsT0FBT3pCLDhEQUFhQSxDQUFDeUIsS0FBS3ZCLFlBQVlFLEtBQUs7SUFDL0M7QUFDSixHQUFHRixlQUFnQkEsQ0FBQUEsY0FBYyxDQUFDLEtBQ2xDLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvcGVlci1pZC1mYWN0b3J5L2Rpc3Qvc3JjL3Byb3RvLmpzPzA5NDgiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L2V4cG9ydCAqL1xuLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWJvb2xlYW4tbGl0ZXJhbC1jb21wYXJlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlICovXG5pbXBvcnQgeyBlbmNvZGVNZXNzYWdlLCBkZWNvZGVNZXNzYWdlLCBtZXNzYWdlIH0gZnJvbSAncHJvdG9ucy1ydW50aW1lJztcbmV4cG9ydCB2YXIgUGVlcklkUHJvdG87XG4oZnVuY3Rpb24gKFBlZXJJZFByb3RvKSB7XG4gICAgbGV0IF9jb2RlYztcbiAgICBQZWVySWRQcm90by5jb2RlYyA9ICgpID0+IHtcbiAgICAgICAgaWYgKF9jb2RlYyA9PSBudWxsKSB7XG4gICAgICAgICAgICBfY29kZWMgPSBtZXNzYWdlKChvYmosIHcsIG9wdHMgPSB7fSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChvcHRzLmxlbmd0aERlbGltaXRlZCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdy5mb3JrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChvYmouaWQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB3LnVpbnQzMigxMCk7XG4gICAgICAgICAgICAgICAgICAgIHcuYnl0ZXMob2JqLmlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG9iai5wdWJLZXkgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB3LnVpbnQzMigxOCk7XG4gICAgICAgICAgICAgICAgICAgIHcuYnl0ZXMob2JqLnB1YktleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChvYmoucHJpdktleSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHcudWludDMyKDI2KTtcbiAgICAgICAgICAgICAgICAgICAgdy5ieXRlcyhvYmoucHJpdktleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChvcHRzLmxlbmd0aERlbGltaXRlZCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdy5sZGVsaW0oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAocmVhZGVyLCBsZW5ndGgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvYmogPSB7fTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmQgPSBsZW5ndGggPT0gbnVsbCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgICAgICAgICAgICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmouaWQgPSByZWFkZXIuYnl0ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmoucHViS2V5ID0gcmVhZGVyLmJ5dGVzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqLnByaXZLZXkgPSByZWFkZXIuYnl0ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLnNraXBUeXBlKHRhZyAmIDcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvYmo7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX2NvZGVjO1xuICAgIH07XG4gICAgUGVlcklkUHJvdG8uZW5jb2RlID0gKG9iaikgPT4ge1xuICAgICAgICByZXR1cm4gZW5jb2RlTWVzc2FnZShvYmosIFBlZXJJZFByb3RvLmNvZGVjKCkpO1xuICAgIH07XG4gICAgUGVlcklkUHJvdG8uZGVjb2RlID0gKGJ1ZikgPT4ge1xuICAgICAgICByZXR1cm4gZGVjb2RlTWVzc2FnZShidWYsIFBlZXJJZFByb3RvLmNvZGVjKCkpO1xuICAgIH07XG59KShQZWVySWRQcm90byB8fCAoUGVlcklkUHJvdG8gPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJvdG8uanMubWFwIl0sIm5hbWVzIjpbImVuY29kZU1lc3NhZ2UiLCJkZWNvZGVNZXNzYWdlIiwibWVzc2FnZSIsIlBlZXJJZFByb3RvIiwiX2NvZGVjIiwiY29kZWMiLCJvYmoiLCJ3Iiwib3B0cyIsImxlbmd0aERlbGltaXRlZCIsImZvcmsiLCJpZCIsInVpbnQzMiIsImJ5dGVzIiwicHViS2V5IiwicHJpdktleSIsImxkZWxpbSIsInJlYWRlciIsImxlbmd0aCIsImVuZCIsImxlbiIsInBvcyIsInRhZyIsInNraXBUeXBlIiwiZW5jb2RlIiwiZGVjb2RlIiwiYnVmIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/peer-id-factory/dist/src/proto.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/peer-id/dist/src/index.js":
/*!********************************************************!*\
!*** ./node_modules/@libp2p/peer-id/dist/src/index.js ***!
\********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createPeerId: () => (/* binding */ createPeerId),\n/* harmony export */ peerIdFromBytes: () => (/* binding */ peerIdFromBytes),\n/* harmony export */ peerIdFromCID: () => (/* binding */ peerIdFromCID),\n/* harmony export */ peerIdFromKeys: () => (/* binding */ peerIdFromKeys),\n/* harmony export */ peerIdFromPeerId: () => (/* binding */ peerIdFromPeerId),\n/* harmony export */ peerIdFromString: () => (/* binding */ peerIdFromString)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/peer-id/index.js\");\n/* harmony import */ var multiformats_bases_base58__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! multiformats/bases/base58 */ \"(ssr)/./node_modules/multiformats/dist/src/bases/base58.js\");\n/* harmony import */ var multiformats_basics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! multiformats/basics */ \"(ssr)/./node_modules/multiformats/dist/src/basics.js\");\n/* harmony import */ var multiformats_cid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! multiformats/cid */ \"(ssr)/./node_modules/multiformats/dist/src/cid.js\");\n/* harmony import */ var multiformats_hashes_digest__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! multiformats/hashes/digest */ \"(ssr)/./node_modules/multiformats/dist/src/hashes/digest.js\");\n/* harmony import */ var multiformats_hashes_identity__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! multiformats/hashes/identity */ \"(ssr)/./node_modules/multiformats/dist/src/hashes/identity.js\");\n/* harmony import */ var multiformats_hashes_sha2__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! multiformats/hashes/sha2 */ \"(ssr)/./node_modules/multiformats/dist/src/hashes/sha2.js\");\n/* harmony import */ var uint8arrays_equals__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! uint8arrays/equals */ \"(ssr)/./node_modules/uint8arrays/dist/src/equals.js\");\n/**\n * @packageDocumentation\n *\n * An implementation of a peer id\n *\n * @example\n *\n * ```TypeScript\n * import { peerIdFromString } from '@libp2p/peer-id'\n * const peer = peerIdFromString('k51qzi5uqu5dkwkqm42v9j9kqcam2jiuvloi16g72i4i4amoo2m8u3ol3mqu6s')\n *\n * console.log(peer.toCID()) // CID(bafzaa...)\n * console.log(peer.toString()) // \"12D3K...\"\n * ```\n */ \n\n\n\n\n\n\n\n\nconst inspect = Symbol.for(\"nodejs.util.inspect.custom\");\nconst baseDecoder = Object.values(multiformats_basics__WEBPACK_IMPORTED_MODULE_1__.bases).map((codec)=>codec.decoder)// @ts-expect-error https://github.com/multiformats/js-multiformats/issues/141\n.reduce((acc, curr)=>acc.or(curr), multiformats_basics__WEBPACK_IMPORTED_MODULE_1__.bases.identity.decoder);\n// these values are from https://github.com/multiformats/multicodec/blob/master/table.csv\nconst LIBP2P_KEY_CODE = 0x72;\nconst MARSHALLED_ED225519_PUBLIC_KEY_LENGTH = 36;\nconst MARSHALLED_SECP256K1_PUBLIC_KEY_LENGTH = 37;\nclass PeerIdImpl {\n constructor(init){\n this[_libp2p_interface__WEBPACK_IMPORTED_MODULE_7__.peerIdSymbol] = true;\n this.type = init.type;\n this.multihash = init.multihash;\n this.privateKey = init.privateKey;\n // mark string cache as non-enumerable\n Object.defineProperty(this, \"string\", {\n enumerable: false,\n writable: true\n });\n }\n get [Symbol.toStringTag]() {\n return `PeerId(${this.toString()})`;\n }\n toString() {\n if (this.string == null) {\n this.string = multiformats_bases_base58__WEBPACK_IMPORTED_MODULE_0__.base58btc.encode(this.multihash.bytes).slice(1);\n }\n return this.string;\n }\n // return self-describing String representation\n // in default format from RFC 0001: https://github.com/libp2p/specs/pull/209\n toCID() {\n return multiformats_cid__WEBPACK_IMPORTED_MODULE_2__.CID.createV1(LIBP2P_KEY_CODE, this.multihash);\n }\n toBytes() {\n return this.multihash.bytes;\n }\n /**\n * Returns Multiaddr as a JSON string\n */ toJSON() {\n return this.toString();\n }\n /**\n * Checks the equality of `this` peer against a given PeerId\n */ equals(id) {\n if (id == null) {\n return false;\n }\n if (id instanceof Uint8Array) {\n return (0,uint8arrays_equals__WEBPACK_IMPORTED_MODULE_6__.equals)(this.multihash.bytes, id);\n } else if (typeof id === \"string\") {\n return peerIdFromString(id).equals(this);\n } else if (id?.multihash?.bytes != null) {\n return (0,uint8arrays_equals__WEBPACK_IMPORTED_MODULE_6__.equals)(this.multihash.bytes, id.multihash.bytes);\n } else {\n throw new Error(\"not valid Id\");\n }\n }\n /**\n * Returns PeerId as a human-readable string\n * https://nodejs.org/api/util.html#utilinspectcustom\n *\n * @example\n * ```TypeScript\n * import { peerIdFromString } from '@libp2p/peer-id'\n *\n * console.info(peerIdFromString('QmFoo'))\n * // 'PeerId(QmFoo)'\n * ```\n */ [inspect]() {\n return `PeerId(${this.toString()})`;\n }\n}\nclass RSAPeerIdImpl extends PeerIdImpl {\n constructor(init){\n super({\n ...init,\n type: \"RSA\"\n });\n this.type = \"RSA\";\n this.publicKey = init.publicKey;\n }\n}\nclass Ed25519PeerIdImpl extends PeerIdImpl {\n constructor(init){\n super({\n ...init,\n type: \"Ed25519\"\n });\n this.type = \"Ed25519\";\n this.publicKey = init.multihash.digest;\n }\n}\nclass Secp256k1PeerIdImpl extends PeerIdImpl {\n constructor(init){\n super({\n ...init,\n type: \"secp256k1\"\n });\n this.type = \"secp256k1\";\n this.publicKey = init.multihash.digest;\n }\n}\nfunction createPeerId(init) {\n if (init.type === \"RSA\") {\n return new RSAPeerIdImpl(init);\n }\n if (init.type === \"Ed25519\") {\n return new Ed25519PeerIdImpl(init);\n }\n if (init.type === \"secp256k1\") {\n return new Secp256k1PeerIdImpl(init);\n }\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_8__.CodeError('Type must be \"RSA\", \"Ed25519\" or \"secp256k1\"', \"ERR_INVALID_PARAMETERS\");\n}\nfunction peerIdFromPeerId(other) {\n if (other.type === \"RSA\") {\n return new RSAPeerIdImpl(other);\n }\n if (other.type === \"Ed25519\") {\n return new Ed25519PeerIdImpl(other);\n }\n if (other.type === \"secp256k1\") {\n return new Secp256k1PeerIdImpl(other);\n }\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_8__.CodeError(\"Not a PeerId\", \"ERR_INVALID_PARAMETERS\");\n}\nfunction peerIdFromString(str, decoder) {\n decoder = decoder ?? baseDecoder;\n if (str.charAt(0) === \"1\" || str.charAt(0) === \"Q\") {\n // identity hash ed25519/secp256k1 key or sha2-256 hash of\n // rsa public key - base58btc encoded either way\n const multihash = multiformats_hashes_digest__WEBPACK_IMPORTED_MODULE_3__.decode(multiformats_bases_base58__WEBPACK_IMPORTED_MODULE_0__.base58btc.decode(`z${str}`));\n if (str.startsWith(\"12D\")) {\n return new Ed25519PeerIdImpl({\n multihash\n });\n } else if (str.startsWith(\"16U\")) {\n return new Secp256k1PeerIdImpl({\n multihash\n });\n } else {\n return new RSAPeerIdImpl({\n multihash\n });\n }\n }\n return peerIdFromBytes(baseDecoder.decode(str));\n}\nfunction peerIdFromBytes(buf) {\n try {\n const multihash = multiformats_hashes_digest__WEBPACK_IMPORTED_MODULE_3__.decode(buf);\n if (multihash.code === multiformats_hashes_identity__WEBPACK_IMPORTED_MODULE_4__.identity.code) {\n if (multihash.digest.length === MARSHALLED_ED225519_PUBLIC_KEY_LENGTH) {\n return new Ed25519PeerIdImpl({\n multihash\n });\n } else if (multihash.digest.length === MARSHALLED_SECP256K1_PUBLIC_KEY_LENGTH) {\n return new Secp256k1PeerIdImpl({\n multihash\n });\n }\n }\n if (multihash.code === multiformats_hashes_sha2__WEBPACK_IMPORTED_MODULE_5__.sha256.code) {\n return new RSAPeerIdImpl({\n multihash\n });\n }\n } catch {\n return peerIdFromCID(multiformats_cid__WEBPACK_IMPORTED_MODULE_2__.CID.decode(buf));\n }\n throw new Error(\"Supplied PeerID CID is invalid\");\n}\nfunction peerIdFromCID(cid) {\n if (cid == null || cid.multihash == null || cid.version == null || cid.version === 1 && cid.code !== LIBP2P_KEY_CODE) {\n throw new Error(\"Supplied PeerID CID is invalid\");\n }\n const multihash = cid.multihash;\n if (multihash.code === multiformats_hashes_sha2__WEBPACK_IMPORTED_MODULE_5__.sha256.code) {\n return new RSAPeerIdImpl({\n multihash: cid.multihash\n });\n } else if (multihash.code === multiformats_hashes_identity__WEBPACK_IMPORTED_MODULE_4__.identity.code) {\n if (multihash.digest.length === MARSHALLED_ED225519_PUBLIC_KEY_LENGTH) {\n return new Ed25519PeerIdImpl({\n multihash: cid.multihash\n });\n } else if (multihash.digest.length === MARSHALLED_SECP256K1_PUBLIC_KEY_LENGTH) {\n return new Secp256k1PeerIdImpl({\n multihash: cid.multihash\n });\n }\n }\n throw new Error(\"Supplied PeerID CID is invalid\");\n}\n/**\n * @param publicKey - A marshalled public key\n * @param privateKey - A marshalled private key\n */ async function peerIdFromKeys(publicKey, privateKey) {\n if (publicKey.length === MARSHALLED_ED225519_PUBLIC_KEY_LENGTH) {\n return new Ed25519PeerIdImpl({\n multihash: multiformats_hashes_digest__WEBPACK_IMPORTED_MODULE_3__.create(multiformats_hashes_identity__WEBPACK_IMPORTED_MODULE_4__.identity.code, publicKey),\n privateKey\n });\n }\n if (publicKey.length === MARSHALLED_SECP256K1_PUBLIC_KEY_LENGTH) {\n return new Secp256k1PeerIdImpl({\n multihash: multiformats_hashes_digest__WEBPACK_IMPORTED_MODULE_3__.create(multiformats_hashes_identity__WEBPACK_IMPORTED_MODULE_4__.identity.code, publicKey),\n privateKey\n });\n }\n return new RSAPeerIdImpl({\n multihash: await multiformats_hashes_sha2__WEBPACK_IMPORTED_MODULE_5__.sha256.digest(publicKey),\n publicKey,\n privateKey\n });\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLWlkL2Rpc3Qvc3JjL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7Ozs7Ozs7Ozs7OztDQWNDLEdBQzZDO0FBQ0c7QUFDSztBQUNWO0FBQ0w7QUFDYztBQUNHO0FBQ047QUFDYztBQUNoRSxNQUFNVSxVQUFVQyxPQUFPQyxHQUFHLENBQUM7QUFDM0IsTUFBTUMsY0FBY0MsT0FDZkMsTUFBTSxDQUFDWixzREFBS0EsRUFDWmEsR0FBRyxDQUFDQyxDQUFBQSxRQUFTQSxNQUFNQyxPQUFPLENBQzNCLDhFQUE4RTtDQUM3RUMsTUFBTSxDQUFDLENBQUNDLEtBQUtDLE9BQVNELElBQUlFLEVBQUUsQ0FBQ0QsT0FBT2xCLHNEQUFLQSxDQUFDRyxRQUFRLENBQUNZLE9BQU87QUFDL0QseUZBQXlGO0FBQ3pGLE1BQU1LLGtCQUFrQjtBQUN4QixNQUFNQyx3Q0FBd0M7QUFDOUMsTUFBTUMseUNBQXlDO0FBQy9DLE1BQU1DO0lBTUZDLFlBQVlDLElBQUksQ0FBRTtZQWFsQixDQUFDM0IsMkRBQVlBLENBQUMsR0FBRztRQVpiLElBQUksQ0FBQzRCLElBQUksR0FBR0QsS0FBS0MsSUFBSTtRQUNyQixJQUFJLENBQUNDLFNBQVMsR0FBR0YsS0FBS0UsU0FBUztRQUMvQixJQUFJLENBQUNDLFVBQVUsR0FBR0gsS0FBS0csVUFBVTtRQUNqQyxzQ0FBc0M7UUFDdENqQixPQUFPa0IsY0FBYyxDQUFDLElBQUksRUFBRSxVQUFVO1lBQ2xDQyxZQUFZO1lBQ1pDLFVBQVU7UUFDZDtJQUNKO0lBQ0EsSUFBSSxDQUFDdkIsT0FBT3dCLFdBQVcsQ0FBQyxHQUFHO1FBQ3ZCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDO0lBRUFBLFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQ0MsTUFBTSxJQUFJLE1BQU07WUFDckIsSUFBSSxDQUFDQSxNQUFN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WUFBWW5CO1FBQVc7SUFDbEc7SUFDQSxJQUFJbUIsVUFBVWMsTUFBTSxLQUFLdkMsd0NBQXdDO1FBQzdELE9BQU8sSUFBSTRCLG9CQUFvQjtZQUFFdkIsV0FBV3pCLDhEQUFhLENBQUNDLGtFQUFRQSxDQUFDeUQsSUFBSSxFQUFFYjtZQUFZbkI7UUFBVztJQUNwRztJQUNBLE9BQU8sSUFBSWtCLGNBQWM7UUFBRW5CLFdBQVcsTUFBTXZCLDREQUFNQSxDQUFDNkMsTUFBTSxDQUFDRjtRQUFZQTtRQUFXbkI7SUFBVztBQUNoRyxFQUNBLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvcGVlci1pZC9kaXN0L3NyYy9pbmRleC5qcz80OTIxIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogQW4gaW1wbGVtZW50YXRpb24gb2YgYSBwZWVyIGlkXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBUeXBlU2NyaXB0XG4gKiBpbXBvcnQgeyBwZWVySWRGcm9tU3RyaW5nIH0gZnJvbSAnQGxpYnAycC9wZWVyLWlkJ1xuICogY29uc3QgcGVlciA9IHBlZXJJZEZyb21TdHJpbmcoJ2s1MXF6aTV1cXU1ZGt3a3FtNDJ2OWo5a3FjYW0yaml1dmxvaTE2ZzcyaTRpNGFtb28ybTh1M29sM21xdTZzJylcbiAqXG4gKiBjb25zb2xlLmxvZyhwZWVyLnRvQ0lEKCkpIC8vIENJRChiYWZ6YWEuLi4pXG4gKiBjb25zb2xlLmxvZyhwZWVyLnRvU3RyaW5nKCkpIC8vIFwiMTJEM0suLi5cIlxuICogYGBgXG4gKi9cbmltcG9ydCB7IENvZGVFcnJvciB9IGZyb20gJ0BsaWJwMnAvaW50ZXJmYWNlJztcbmltcG9ydCB7IHBlZXJJZFN5bWJvbCB9IGZyb20gJ0BsaWJwMnAvaW50ZXJmYWNlJztcbmltcG9ydCB7IGJhc2U1OGJ0YyB9IGZyb20gJ211bHRpZm9ybWF0cy9iYXNlcy9iYXNlNTgnO1xuaW1wb3J0IHsgYmFzZXMgfSBmcm9tICdtdWx0aWZvcm1hdHMvYmFzaWNzJztcbmltcG9ydCB7IENJRCB9IGZyb20gJ211bHRpZm9ybWF0cy9jaWQnO1xuaW1wb3J0ICogYXMgRGlnZXN0IGZyb20gJ211bHRpZm9ybWF0cy9oYXNoZXMvZGlnZXN0JztcbmltcG9ydCB7IGlkZW50aXR5IH0gZnJvbSAnbXVsdGlmb3JtYXRzL2hhc2hlcy9pZGVudGl0eSc7XG5pbXBvcnQgeyBzaGEyNTYgfSBmcm9tICdtdWx0aWZvcm1hdHMvaGFzaGVzL3NoYTInO1xuaW1wb3J0IHsgZXF1YWxzIGFzIHVpbnQ4QXJyYXlFcXVhbHMgfSBmcm9tICd1aW50OGFycmF5cy9lcXVhbHMnO1xuY29uc3QgaW5zcGVjdCA9IFN5bWJvbC5mb3IoJ25vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tJyk7XG5jb25zdCBiYXNlRGVjb2RlciA9IE9iamVjdFxuICAgIC52YWx1ZXMoYmFzZXMpXG4gICAgLm1hcChjb2RlYyA9PiBjb2RlYy5kZWNvZGVyKVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgaHR0cHM6Ly9naXRodWIuY29tL211bHRpZm9ybWF0cy9qcy1tdWx0aWZvcm1hdHMvaXNzdWVzLzE0MVxuICAgIC5yZWR1Y2UoKGFjYywgY3VycikgPT4gYWNjLm9yKGN1cnIpLCBiYXNlcy5pZGVudGl0eS5kZWNvZGVyKTtcbi8vIHRoZXNlIHZhbHVlcyBhcmUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbXVsdGlmb3JtYXRzL211bHRpY29kZWMvYmxvYi9tYXN0ZXIvdGFibGUuY3N2XG5jb25zdCBMSUJQMlBfS0VZX0NPREUgPSAweDcyO1xuY29uc3QgTUFSU0hBTExFRF9FRDIyNTUxOV9QVUJMSUNfS0VZX0xFTkdUSCA9IDM2O1xuY29uc3QgTUFSU0hBTExFRF9TRUNQMjU2SzFfUFVCTElDX0tFWV9MRU5HVEggPSAzNztcbmNsYXNzIFBlZXJJZEltcGwge1xuICAgIHR5cGU7XG4gICAgbXVsdGloYXNoO1xuICAgIHByaXZhdGVLZXk7XG4gICAgcHVibGljS2V5O1xuICAgIHN0cmluZztcbiAgICBjb25zdHJ1Y3Rvcihpbml0KSB7XG4gICAgICAgIHRoaXMudHlwZSA9IGluaXQudHlwZTtcbiAgICAgICAgdGhpcy5tdWx0aWhhc2ggPSBpbml0Lm11bHRpaGFzaDtcbiAgICAgICAgdGhpcy5wcml2YXRlS2V5ID0gaW5pdC5wcml2YXRlS2V5O1xuICAgICAgICAvLyBtYXJrIHN0cmluZyBjYWNoZSBhcyBub24tZW51bWVyYWJsZVxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ3N0cmluZycsIHtcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldCBbU3ltYm9sLnRvU3RyaW5nVGFnXSgpIHtcbiAgICAgICAgcmV0dXJuIGBQZWVySWQoJHt0aGlzLnRvU3RyaW5nKCl9KWA7XG4gICAgfVxuICAgIFtwZWVySWRTeW1ib2xdID0gdHJ1ZTtcbiAgICB0b1N0cmluZygpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RyaW5nID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc3RyaW5nID0gYmFzZTU4YnRjLmVuY29kZSh0aGlzLm11bHRpaGFzaC5ieXRlcykuc2xpY2UoMSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICAgIH1cbiAgICAvLyByZXR1cm4gc2VsZi1kZXNjcmliaW5nIFN0cmluZyByZXByZXNlbnRhdGlvblxuICAgIC8vIGluIGRlZmF1bHQgZm9ybWF0IGZyb20gUkZDIDAwMDE6IGh0dHBzOi8vZ2l0aHViLmNvbS9saWJwMnAvc3BlY3MvcHVsbC8yMDlcbiAgICB0b0NJRCgpIHtcbiAgICAgICAgcmV0dXJuIENJRC5jcmVhdGVWMShMSUJQMlBfS0VZX0NPREUsIHRoaXMubXVsdGloYXNoKTtcbiAgICB9XG4gICAgdG9CeXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubXVsdGloYXNoLmJ5dGVzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIE11bHRpYWRkciBhcyBhIEpTT04gc3RyaW5nXG4gICAgICovXG4gICAgdG9KU09OKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50b1N0cmluZygpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDaGVja3MgdGhlIGVxdWFsaXR5IG9mIGB0aGlzYCBwZWVyIGFnYWluc3QgYSBnaXZlbiBQZWVySWRcbiAgICAgKi9cbiAgICBlcXVhbHMoaWQpIHtcbiAgICAgICAgaWYgKGlkID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaWQgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgICAgICByZXR1cm4gdWludDhBcnJheUVxdWFscyh0aGlzLm11bHRpaGFzaC5ieXRlcywgaWQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBpZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBwZWVySWRGcm9tU3RyaW5nKGlkKS5lcXVhbHModGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaWQ/Lm11bHRpaGFzaD8uYnl0ZXMgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHVpbnQ4QXJyYXlFcXVhbHModGhpcy5tdWx0aWhhc2guYnl0ZXMsIGlkLm11bHRpaGFzaC5ieXRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCB2YWxpZCBJZCcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgUGVlcklkIGFzIGEgaHVtYW4tcmVhZGFibGUgc3RyaW5nXG4gICAgICogaHR0cHM6Ly9ub2RlanMub3JnL2FwaS91dGlsLmh0bWwjdXRpbGluc3BlY3RjdXN0b21cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgVHlwZVNjcmlwdFxuICAgICAqIGltcG9ydCB7IHBlZXJJZEZyb21TdHJpbmcgfSBmcm9tICdAbGlicDJwL3BlZXItaWQnXG4gICAgICpcbiAgICAgKiBjb25zb2xlLmluZm8ocGVlcklkRnJvbVN0cmluZygnUW1Gb28nKSlcbiAgICAgKiAvLyAnUGVlcklkKFFtRm9vKSdcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBbaW5zcGVjdF0oKSB7XG4gICAgICAgIHJldHVybiBgUGVlcklkKCR7dGhpcy50b1N0cmluZygpfSlgO1xuICAgIH1cbn1cbmNsYXNzIFJTQVBlZXJJZEltcGwgZXh0ZW5kcyBQZWVySWRJbXBsIHtcbiAgICB0eXBlID0gJ1JTQSc7XG4gICAgcHVibGljS2V5O1xuICAgIGNvbnN0cnVjdG9yKGluaXQpIHtcbiAgICAgICAgc3VwZXIoeyAuLi5pbml0LCB0eXBlOiAnUlNBJyB9KTtcbiAgICAgICAgdGhpcy5wdWJsaWNLZXkgPSBpbml0LnB1YmxpY0tleTtcbiAgICB9XG59XG5jbGFzcyBFZDI1NTE5UGVlcklkSW1wbCBleHRlbmRzIFBlZXJJZEltcGwge1xuICAgIHR5cGUgPSAnRWQyNTUxOSc7XG4gICAgcHVibGljS2V5O1xuICAgIGNvbnN0cnVjdG9yKGluaXQpIHtcbiAgICAgICAgc3VwZXIoeyAuLi5pbml0LCB0eXBlOiAnRWQyNTUxOScgfSk7XG4gICAgICAgIHRoaXMucHVibGljS2V5ID0gaW5pdC5tdWx0aWhhc2guZGlnZXN0O1xuICAgIH1cbn1cbmNsYXNzIFNlY3AyNTZrMVBlZXJJZEltcGwgZXh0ZW5kcyBQZWVySWRJbXBsIHtcbiAgICB0eXBlID0gJ3NlY3AyNTZrMSc7XG4gICAgcHVibGljS2V5O1xuICAgIGNvbnN0cnVjdG9yKGluaXQpIHtcbiAgICAgICAgc3VwZXIoeyAuLi5pbml0LCB0eXBlOiAnc2VjcDI1NmsxJyB9KTtcbiAgICAgICAgdGhpcy5wdWJsaWNLZXkgPSBpbml0Lm11bHRpaGFzaC5kaWdlc3Q7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBlZXJJZChpbml0KSB7XG4gICAgaWYgKGluaXQudHlwZSA9PT0gJ1JTQScpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBSU0FQZWVySWRJbXBsKGluaXQpO1xuICAgIH1cbiAgICBpZiAoaW5pdC50eXBlID09PSAnRWQyNTUxOScpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBFZDI1NTE5UGVlcklkSW1wbChpbml0KTtcbiAgICB9XG4gICAgaWYgKGluaXQudHlwZSA9PT0gJ3NlY3AyNTZrMScpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBTZWNwMjU2azFQZWVySWRJbXBsKGluaXQpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgQ29kZUVycm9yKCdUeXBlIG11c3QgYmUgXCJSU0FcIiwgXCJFZDI1NTE5XCIgb3IgXCJzZWNwMjU2azFcIicsICdFUlJfSU5WQUxJRF9QQVJBTUVURVJTJyk7XG59XG5leHBvcnQgZnVuY3Rpb24gcGVlcklkRnJvbVBlZXJJZChvdGhlcikge1xuICAgIGlmIChvdGhlci50eXBlID09PSAnUlNBJykge1xuICAgICAgICByZXR1cm4gbmV3IFJTQVBlZXJJZEltcGwob3RoZXIpO1xuICAgIH1cbiAgICBpZiAob3RoZXIudHlwZSA9PT0gJ0VkMjU1MTknKSB7XG4gICAgICAgIHJldHVybiBuZXcgRWQyNTUxOVBlZXJJZEltcGwob3RoZXIpO1xuICAgIH1cbiAgICBpZiAob3RoZXIudHlwZSA9PT0gJ3NlY3AyNTZrMScpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBTZWNwMjU2azFQZWVySWRJbXBsKG90aGVyKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IENvZGVFcnJvcignTm90IGEgUGVlcklkJywgJ0VSUl9JTlZBTElEX1BBUkFNRVRFUlMnKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBwZWVySWRGcm9tU3RyaW5nKHN0ciwgZGVjb2Rlcikge1xuICAgIGRlY29kZXIgPSBkZWNvZGVyID8/IGJhc2VEZWNvZGVyO1xuICAgIGlmIChzdHIuY2hhckF0KDApID09PSAnMScgfHwgc3RyLmNoYXJBdCgwKSA9PT0gJ1EnKSB7XG4gICAgICAgIC8vIGlkZW50aXR5IGhhc2ggZWQyNTUxOS9zZWNwMjU2azEga2V5IG9yIHNoYTItMjU2IGhhc2ggb2ZcbiAgICAgICAgLy8gcnNhIHB1YmxpYyBrZXkgLSBiYXNlNThidGMgZW5jb2RlZCBlaXRoZXIgd2F5XG4gICAgICAgIGNvbnN0IG11bHRpaGFzaCA9IERpZ2VzdC5kZWNvZGUoYmFzZTU4YnRjLmRlY29kZShgeiR7c3RyfWApKTtcbiAgICAgICAgaWYgKHN0ci5zdGFydHNXaXRoKCcxMkQnKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBFZDI1NTE5UGVlcklkSW1wbCh7IG11bHRpaGFzaCB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChzdHIuc3RhcnRzV2l0aCgnMTZVJykpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2VjcDI1NmsxUGVlcklkSW1wbCh7IG11bHRpaGFzaCB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUlNBUGVlcklkSW1wbCh7IG11bHRpaGFzaCB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcGVlcklkRnJvbUJ5dGVzKGJhc2VEZWNvZGVyLmRlY29kZShzdHIpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBwZWVySWRGcm9tQnl0ZXMoYnVmKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgbXVsdGloYXNoID0gRGlnZXN0LmRlY29kZShidWYpO1xuICAgICAgICBpZiAobXVsdGloYXNoLmNvZGUgPT09IGlkZW50aXR5LmNvZGUpIHtcbiAgICAgICAgICAgIGlmIChtdWx0aWhhc2guZGlnZXN0Lmxlbmd0aCA9PT0gTUFSU0hBTExFRF9FRDIyNTUxOV9QVUJMSUNfS0VZX0xFTkdUSCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRWQyNTUxOVBlZXJJZEltcGwoeyBtdWx0aWhhc2ggfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChtdWx0aWhhc2guZGlnZXN0Lmxlbmd0aCA9PT0gTUFSU0hBTExFRF9TRUNQMjU2SzFfUFVCTElDX0tFWV9MRU5HVEgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFNlY3AyNTZrMVBlZXJJZEltcGwoeyBtdWx0aWhhc2ggfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG11bHRpaGFzaC5jb2RlID09PSBzaGEyNTYuY29kZSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBSU0FQZWVySWRJbXBsKHsgbXVsdGloYXNoIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIHBlZXJJZEZyb21DSUQoQ0lELmRlY29kZShidWYpKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTdXBwbGllZCBQZWVySUQgQ0lEIGlzIGludmFsaWQnKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBwZWVySWRGcm9tQ0lEKGNpZCkge1xuICAgIGlmIChjaWQgPT0gbnVsbCB8fCBjaWQubXVsdGloYXNoID09IG51bGwgfHwgY2lkLnZlcnNpb24gPT0gbnVsbCB8fCAoY2lkLnZlcnNpb24gPT09IDEgJiYgY2lkLmNvZGUgIT09IExJQlAyUF9LRVlfQ09ERSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdXBwbGllZCBQZWVySUQgQ0lEIGlzIGludmFsaWQnKTtcbiAgICB9XG4gICAgY29uc3QgbXVsdGloYXNoID0gY2lkLm11bHRpaGFzaDtcbiAgICBpZiAobXVsdGloYXNoLmNvZGUgPT09IHNoYTI1Ni5jb2RlKSB7XG4gICAgICAgIHJldHVybiBuZXcgUlNBUGVlcklkSW1wbCh7IG11bHRpaGFzaDogY2lkLm11bHRpaGFzaCB9KTtcbiAgICB9XG4gICAgZWxzZSBpZiAobXVsdGloYXNoLmNvZGUgPT09IGlkZW50aXR5LmNvZGUpIHtcbiAgICAgICAgaWYgKG11bHRpaGFzaC5kaWdlc3QubGVuZ3RoID09PSBNQVJTSEFMTEVEX0VEMjI1NTE5X1BVQkxJQ19LRVlfTEVOR1RIKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEVkMjU1MTlQZWVySWRJbXBsKHsgbXVsdGloYXNoOiBjaWQubXVsdGloYXNoIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG11bHRpaGFzaC5kaWdlc3QubGVuZ3RoID09PSBNQVJTSEFMTEVEX1NFQ1AyNTZLMV9QVUJMSUNfS0VZX0xFTkdUSCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTZWNwMjU2azFQZWVySWRJbXBsKHsgbXVsdGloYXNoOiBjaWQubXVsdGloYXNoIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcignU3VwcGxpZWQgUGVlcklEIENJRCBpcyBpbnZhbGlkJyk7XG59XG4vKipcbiAqIEBwYXJhbSBwdWJsaWNLZXkgLSBBIG1hcnNoYWxsZWQgcHVibGljIGtleVxuICogQHBhcmFtIHByaXZhdGVLZXkgLSBBIG1hcnNoYWxsZWQgcHJpdmF0ZSBrZXlcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBlZXJJZEZyb21LZXlzKHB1YmxpY0tleSwgcHJpdmF0ZUtleSkge1xuICAgIGlmIChwdWJsaWNLZXkubGVuZ3RoID09PSBNQVJTSEFMTEVEX0VEMjI1NTE5X1BVQkxJQ19LRVlfTEVOR1RIKSB7XG4gICAgICAgIHJldHVybiBuZXcgRWQyNTUxOVBlZXJJZEltcGwoeyBtdWx0aWhhc2g6IERpZ2VzdC5jcmVhdGUoaWRlbnRpdHkuY29kZSwgcHVibGljS2V5KSwgcHJpdmF0ZUtleSB9KTtcbiAgICB9XG4gICAgaWYgKHB1YmxpY0tleS5sZW5ndGggPT09IE1BUlNIQUxMRURfU0VDUDI1NksxX1BVQkxJQ19LRVlfTEVOR1RIKSB7XG4gICAgICAgIHJldHVybiBuZXcgU2VjcDI1NmsxUGVlcklkSW1wbCh7IG11bHRpaGFzaDogRGlnZXN0LmNyZWF0ZShpZGVudGl0eS5jb2RlLCBwdWJsaWNLZXkpLCBwcml2YXRlS2V5IH0pO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFJTQVBlZXJJZEltcGwoeyBtdWx0aWhhc2g6IGF3YWl0IHNoYTI1Ni5kaWdlc3QocHVibGljS2V5KSwgcHVibGljS2V5LCBwcml2YXRlS2V5IH0pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbIkNvZGVFcnJvciIsInBlZXJJZFN5bWJvbCIsImJhc2U1OGJ0YyIsImJhc2VzIiwiQ0lEIiwiRGlnZXN0IiwiaWRlbnRpdHkiLCJzaGEyNTYiLCJlcXVhbHMiLCJ1aW50OEFycmF5RXF1YWxzIiwiaW5zcGVjdCIsIlN5bWJvbCIsImZvciIsImJhc2VEZWNvZGVyIiwiT2JqZWN0IiwidmFsdWVzIiwibWFwIiwiY29kZWMiLCJkZWNvZGVyIiwicmVkdWNlIiwiYWNjIiwiY3VyciIsIm9yIiwiTElCUDJQX0tFWV9DT0RFIiwiTUFSU0hBTExFRF9FRDIyNTUxOV9QVUJMSUNfS0VZX0xFTkdUSCIsIk1BUlNIQUxMRURfU0VDUDI1NksxX1BVQkxJQ19LRVlfTEVOR1RIIiwiUGVlcklkSW1wbCIsImNvbnN0cnVjdG9yIiwiaW5pdCIsInR5cGUiLCJtdWx0aWhhc2giLCJwcml2YXRlS2V5IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJ0b1N0cmluZ1RhZyIsInRvU3RyaW5nIiwic3RyaW5nIiwiZW5jb2RlIiwiYnl0ZXMiLCJzbGljZSIsInRvQ0lEIiwiY3JlYXRlVjEiLCJ0b0J5dGVzIiwidG9KU09OIiwiaWQiLCJVaW50OEFycmF5IiwicGVlcklkRnJvbVN0cmluZyIsIkVycm9yIiwiUlNBUGVlcklkSW1wbCIsInB1YmxpY0tleSIsIkVkMjU1MTlQZWVySWRJbXBsIiwiZGlnZXN0IiwiU2VjcDI1NmsxUGVlcklkSW1wbCIsImNyZWF0ZVBlZXJJZCIsInBlZXJJZEZyb21QZWVySWQiLCJvdGhlciIsInN0ciIsImNoYXJBdCIsImRlY29kZSIsInN0YXJ0c1dpdGgiLCJwZWVySWRGcm9tQnl0ZXMiLCJidWYiLCJjb2RlIiwibGVuZ3RoIiwicGVlcklkRnJvbUNJRCIsImNpZCIsInZlcnNpb24iLCJwZWVySWRGcm9tS2V5cyIsImNyZWF0ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/peer-id/dist/src/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/peer-record/dist/src/envelope/envelope.js":
/*!************************************************************************!*\
!*** ./node_modules/@libp2p/peer-record/dist/src/envelope/envelope.js ***!
\************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Envelope: () => (/* binding */ Envelope)\n/* harmony export */ });\n/* harmony import */ var protons_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! protons-runtime */ \"(ssr)/./node_modules/protons-runtime/dist/src/index.js\");\n/* eslint-disable import/export */ /* eslint-disable complexity */ /* eslint-disable @typescript-eslint/no-namespace */ /* eslint-disable @typescript-eslint/no-unnecessary-boolean-literal-compare */ /* eslint-disable @typescript-eslint/no-empty-interface */ \nvar Envelope;\n(function(Envelope) {\n let _codec;\n Envelope.codec = ()=>{\n if (_codec == null) {\n _codec = (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.message)((obj, w, opts = {})=>{\n if (opts.lengthDelimited !== false) {\n w.fork();\n }\n if (obj.publicKey != null && obj.publicKey.byteLength > 0) {\n w.uint32(10);\n w.bytes(obj.publicKey);\n }\n if (obj.payloadType != null && obj.payloadType.byteLength > 0) {\n w.uint32(18);\n w.bytes(obj.payloadType);\n }\n if (obj.payload != null && obj.payload.byteLength > 0) {\n w.uint32(26);\n w.bytes(obj.payload);\n }\n if (obj.signature != null && obj.signature.byteLength > 0) {\n w.uint32(42);\n w.bytes(obj.signature);\n }\n if (opts.lengthDelimited !== false) {\n w.ldelim();\n }\n }, (reader, length)=>{\n const obj = {\n publicKey: new Uint8Array(0),\n payloadType: new Uint8Array(0),\n payload: new Uint8Array(0),\n signature: new Uint8Array(0)\n };\n const end = length == null ? reader.len : reader.pos + length;\n while(reader.pos < end){\n const tag = reader.uint32();\n switch(tag >>> 3){\n case 1:\n obj.publicKey = reader.bytes();\n break;\n case 2:\n obj.payloadType = reader.bytes();\n break;\n case 3:\n obj.payload = reader.bytes();\n break;\n case 5:\n obj.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return obj;\n });\n }\n return _codec;\n };\n Envelope.encode = (obj)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.encodeMessage)(obj, Envelope.codec());\n };\n Envelope.decode = (buf)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.decodeMessage)(buf, Envelope.codec());\n };\n})(Envelope || (Envelope = {})); //# sourceMappingURL=envelope.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLXJlY29yZC9kaXN0L3NyYy9lbnZlbG9wZS9lbnZlbG9wZS5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdDQUFnQyxHQUNoQyw2QkFBNkIsR0FDN0Isa0RBQWtELEdBQ2xELDRFQUE0RSxHQUM1RSx3REFBd0QsR0FDZ0I7QUFDakUsSUFBSUcsU0FBUztBQUNuQixVQUFVQSxRQUFRO0lBQ2YsSUFBSUM7SUFDSkQsU0FBU0UsS0FBSyxHQUFHO1FBQ2IsSUFBSUQsVUFBVSxNQUFNO1lBQ2hCQSxTQUFTRix3REFBT0EsQ0FBQyxDQUFDSSxLQUFLQyxHQUFHQyxPQUFPLENBQUMsQ0FBQztnQkFDL0IsSUFBSUEsS0FBS0MsZUFBZSxLQUFLLE9BQU87b0JBQ2hDRixFQUFFRyxJQUFJO2dCQUNWO2dCQUNBLElBQUtKLElBQUlLLFNBQVMsSUFBSSxRQUFRTCxJQUFJSyxTQUFTLENBQUNDLFVBQVUsR0FBRyxHQUFJO29CQUN6REwsRUFBRU0sTUFBTSxDQUFDO29CQUNUTixFQUFFTyxLQUFLLENBQUNSLElBQUlLLFNBQVM7Z0JBQ3pCO2dCQUNBLElBQUtMLElBQUlTLFdBQVcsSUFBSSxRQUFRVCxJQUFJUyxXQUFXLENBQUNILFVBQVUsR0FBRyxHQUFJO29CQUM3REwsRUFBRU0sTUFBTSxDQUFDO29CQUNUTixFQUFFTyxLQUFLLENBQUNSLElBQUlTLFdBQVc7Z0JBQzNCO2dCQUNBLElBQUtULElBQUlVLE9BQU8sSUFBSSxRQUFRVixJQUFJVSxPQUFPLENBQUNKLFVBQVUsR0FBRyxHQUFJO29CQUNyREwsRUFBRU0sTUFBTSxDQUFDO29CQUNUTixFQUFFTyxLQUFLLENBQUNSLElBQUlVLE9BQU87Z0JBQ3ZCO2dCQUNBLElBQUtWLElBQUlXLFNBQVMsSUFBSSxRQUFRWCxJQUFJVyxTQUFTLENBQUNMLFVBQVUsR0FBRyxHQUFJO29CQUN6REwsRUFBRU0sTUFBTSxDQUFDO29CQUNUTixFQUFFTyxLQUFLLENBQUNSLElBQUlXLFNBQVM7Z0JBQ3pCO2dCQUNBLElBQUlULEtBQUtDLGVBQWUsS0FBSyxPQUFPO29CQUNoQ0YsRUFBRVcsTUFBTTtnQkFDWjtZQUNKLEdBQUcsQ0FBQ0MsUUFBUUM7Z0JBQ1IsTUFBTWQsTUFBTTtvQkFDUkssV0FBVyxJQUFJVSxXQUFXO29CQUMxQk4sYUFBYSxJQUFJTSxXQUFXO29CQUM1QkwsU0FBUyxJQUFJSyxXQUFXO29CQUN4QkosV0FBVyxJQUFJSSxXQUFXO2dCQUM5QjtnQkFDQSxNQUFNQyxNQUFNRixVQUFVLE9BQU9ELE9BQU9JLEdBQUcsR0FBR0osT0FBT0ssR0FBRyxHQUFHSjtnQkFDdkQsTUFBT0QsT0FBT0ssR0FBRyxHQUFHRixJQUFLO29CQUNyQixNQUFNRyxNQUFNTixPQUFPTixNQUFNO29CQUN6QixPQUFRWSxRQUFRO3dCQUNaLEtBQUs7NEJBQ0RuQixJQUFJSyxTQUFTLEdBQUdRLE9BQU9MLEtBQUs7NEJBQzVCO3dCQUNKLEtBQUs7NEJBQ0RSLElBQUlTLFdBQVcsR0FBR0ksT0FBT0wsS0FBSzs0QkFDOUI7d0JBQ0osS0FBSzs0QkFDRFIsSUFBSVUsT0FBTyxHQUFHRyxPQUFPTCxLQUFLOzRCQUMxQjt3QkFDSixLQUFLOzRCQUNEUixJQUFJVyxTQUFTLEdBQUdFLE9BQU9MLEtBQUs7NEJBQzVCO3dCQUNKOzRCQUNJSyxPQUFPTyxRQUFRLENBQUNELE1BQU07NEJBQ3RCO29CQUNSO2dCQUNKO2dCQUNBLE9BQU9uQjtZQUNYO1FBQ0o7UUFDQSxPQUFPRjtJQUNYO0lBQ0FELFNBQVN3QixNQUFNLEdBQUcsQ0FBQ3JCO1FBQ2YsT0FBT04sOERBQWFBLENBQUNNLEtBQUtILFNBQVNFLEtBQUs7SUFDNUM7SUFDQUYsU0FBU3lCLE1BQU0sR0FBRyxDQUFDQztRQUNmLE9BQU81Qiw4REFBYUEsQ0FBQzRCLEtBQUsxQixTQUFTRSxLQUFLO0lBQzVDO0FBQ0osR0FBR0YsWUFBYUEsQ0FBQUEsV0FBVyxDQUFDLEtBQzVCLG9DQUFvQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvcGVlci1yZWNvcmQvZGlzdC9zcmMvZW52ZWxvcGUvZW52ZWxvcGUuanM/NWI0ZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvZXhwb3J0ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktYm9vbGVhbi1saXRlcmFsLWNvbXBhcmUgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2UgKi9cbmltcG9ydCB7IGVuY29kZU1lc3NhZ2UsIGRlY29kZU1lc3NhZ2UsIG1lc3NhZ2UgfSBmcm9tICdwcm90b25zLXJ1bnRpbWUnO1xuZXhwb3J0IHZhciBFbnZlbG9wZTtcbihmdW5jdGlvbiAoRW52ZWxvcGUpIHtcbiAgICBsZXQgX2NvZGVjO1xuICAgIEVudmVsb3BlLmNvZGVjID0gKCkgPT4ge1xuICAgICAgICBpZiAoX2NvZGVjID09IG51bGwpIHtcbiAgICAgICAgICAgIF9jb2RlYyA9IG1lc3NhZ2UoKG9iaiwgdywgb3B0cyA9IHt9KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG9wdHMubGVuZ3RoRGVsaW1pdGVkICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICB3LmZvcmsoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKChvYmoucHVibGljS2V5ICE9IG51bGwgJiYgb2JqLnB1YmxpY0tleS5ieXRlTGVuZ3RoID4gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdy51aW50MzIoMTApO1xuICAgICAgICAgICAgICAgICAgICB3LmJ5dGVzKG9iai5wdWJsaWNLZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoKG9iai5wYXlsb2FkVHlwZSAhPSBudWxsICYmIG9iai5wYXlsb2FkVHlwZS5ieXRlTGVuZ3RoID4gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdy51aW50MzIoMTgpO1xuICAgICAgICAgICAgICAgICAgICB3LmJ5dGVzKG9iai5wYXlsb2FkVHlwZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICgob2JqLnBheWxvYWQgIT0gbnVsbCAmJiBvYmoucGF5bG9hZC5ieXRlTGVuZ3RoID4gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdy51aW50MzIoMjYpO1xuICAgICAgICAgICAgICAgICAgICB3LmJ5dGVzKG9iai5wYXlsb2FkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKChvYmouc2lnbmF0dXJlICE9IG51bGwgJiYgb2JqLnNpZ25hdHVyZS5ieXRlTGVuZ3RoID4gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdy51aW50MzIoNDIpO1xuICAgICAgICAgICAgICAgICAgICB3LmJ5dGVzKG9iai5zaWduYXR1cmUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAob3B0cy5sZW5ndGhEZWxpbWl0ZWQgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHcubGRlbGltKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgKHJlYWRlciwgbGVuZ3RoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb2JqID0ge1xuICAgICAgICAgICAgICAgICAgICBwdWJsaWNLZXk6IG5ldyBVaW50OEFycmF5KDApLFxuICAgICAgICAgICAgICAgICAgICBwYXlsb2FkVHlwZTogbmV3IFVpbnQ4QXJyYXkoMCksXG4gICAgICAgICAgICAgICAgICAgIHBheWxvYWQ6IG5ldyBVaW50OEFycmF5KDApLFxuICAgICAgICAgICAgICAgICAgICBzaWduYXR1cmU6IG5ldyBVaW50OEFycmF5KDApXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmQgPSBsZW5ndGggPT0gbnVsbCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgICAgICAgICAgICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmoucHVibGljS2V5ID0gcmVhZGVyLmJ5dGVzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqLnBheWxvYWRUeXBlID0gcmVhZGVyLmJ5dGVzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqLnBheWxvYWQgPSByZWFkZXIuYnl0ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmouc2lnbmF0dXJlID0gcmVhZGVyLmJ5dGVzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9jb2RlYztcbiAgICB9O1xuICAgIEVudmVsb3BlLmVuY29kZSA9IChvYmopID0+IHtcbiAgICAgICAgcmV0dXJuIGVuY29kZU1lc3NhZ2Uob2JqLCBFbnZlbG9wZS5jb2RlYygpKTtcbiAgICB9O1xuICAgIEVudmVsb3BlLmRlY29kZSA9IChidWYpID0+IHtcbiAgICAgICAgcmV0dXJuIGRlY29kZU1lc3NhZ2UoYnVmLCBFbnZlbG9wZS5jb2RlYygpKTtcbiAgICB9O1xufSkoRW52ZWxvcGUgfHwgKEVudmVsb3BlID0ge30pKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVudmVsb3BlLmpzLm1hcCJdLCJuYW1lcyI6WyJlbmNvZGVNZXNzYWdlIiwiZGVjb2RlTWVzc2FnZSIsIm1lc3NhZ2UiLCJFbnZlbG9wZSIsIl9jb2RlYyIsImNvZGVjIiwib2JqIiwidyIsIm9wdHMiLCJsZW5ndGhEZWxpbWl0ZWQiLCJmb3JrIiwicHVibGljS2V5IiwiYnl0ZUxlbmd0aCIsInVpbnQzMiIsImJ5dGVzIiwicGF5bG9hZFR5cGUiLCJwYXlsb2FkIiwic2lnbmF0dXJlIiwibGRlbGltIiwicmVhZGVyIiwibGVuZ3RoIiwiVWludDhBcnJheSIsImVuZCIsImxlbiIsInBvcyIsInRhZyIsInNraXBUeXBlIiwiZW5jb2RlIiwiZGVjb2RlIiwiYnVmIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/peer-record/dist/src/envelope/envelope.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/peer-record/dist/src/envelope/index.js":
/*!*********************************************************************!*\
!*** ./node_modules/@libp2p/peer-record/dist/src/envelope/index.js ***!
\*********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RecordEnvelope: () => (/* binding */ RecordEnvelope)\n/* harmony export */ });\n/* harmony import */ var _libp2p_crypto_keys__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @libp2p/crypto/keys */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/keys/index.js\");\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var _libp2p_peer_id__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @libp2p/peer-id */ \"(ssr)/./node_modules/@libp2p/peer-id/dist/src/index.js\");\n/* harmony import */ var uint8_varint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uint8-varint */ \"(ssr)/./node_modules/uint8-varint/dist/src/index.js\");\n/* harmony import */ var uint8arraylist__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uint8arraylist */ \"(ssr)/./node_modules/uint8arraylist/dist/src/index.js\");\n/* harmony import */ var uint8arrays_equals__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uint8arrays/equals */ \"(ssr)/./node_modules/uint8arrays/dist/src/equals.js\");\n/* harmony import */ var uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! uint8arrays/from-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/from-string.node.js\");\n/* harmony import */ var _errors_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../errors.js */ \"(ssr)/./node_modules/@libp2p/peer-record/dist/src/errors.js\");\n/* harmony import */ var _envelope_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./envelope.js */ \"(ssr)/./node_modules/@libp2p/peer-record/dist/src/envelope/envelope.js\");\n\n\n\n\n\n\n\n\n\nclass RecordEnvelope {\n static{\n /**\n * Unmarshal a serialized Envelope protobuf message\n */ this.createFromProtobuf = async (data)=>{\n const envelopeData = _envelope_js__WEBPACK_IMPORTED_MODULE_4__.Envelope.decode(data);\n const peerId = await (0,_libp2p_peer_id__WEBPACK_IMPORTED_MODULE_5__.peerIdFromKeys)(envelopeData.publicKey);\n return new RecordEnvelope({\n peerId,\n payloadType: envelopeData.payloadType,\n payload: envelopeData.payload,\n signature: envelopeData.signature\n });\n };\n }\n static{\n /**\n * Seal marshals the given Record, places the marshaled bytes inside an Envelope\n * and signs it with the given peerId's private key\n */ this.seal = async (record, peerId)=>{\n if (peerId.privateKey == null) {\n throw new Error(\"Missing private key\");\n }\n const domain = record.domain;\n const payloadType = record.codec;\n const payload = record.marshal();\n const signData = formatSignaturePayload(domain, payloadType, payload);\n const key = await (0,_libp2p_crypto_keys__WEBPACK_IMPORTED_MODULE_6__.unmarshalPrivateKey)(peerId.privateKey);\n const signature = await key.sign(signData.subarray());\n return new RecordEnvelope({\n peerId,\n payloadType,\n payload,\n signature\n });\n };\n }\n static{\n /**\n * Open and certify a given marshalled envelope.\n * Data is unmarshalled and the signature validated for the given domain.\n */ this.openAndCertify = async (data, domain)=>{\n const envelope = await RecordEnvelope.createFromProtobuf(data);\n const valid = await envelope.validate(domain);\n if (!valid) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_7__.CodeError(\"envelope signature is not valid for the given domain\", _errors_js__WEBPACK_IMPORTED_MODULE_8__.codes.ERR_SIGNATURE_NOT_VALID);\n }\n return envelope;\n };\n }\n /**\n * The Envelope is responsible for keeping an arbitrary signed record\n * by a libp2p peer.\n */ constructor(init){\n const { peerId, payloadType, payload, signature } = init;\n this.peerId = peerId;\n this.payloadType = payloadType;\n this.payload = payload;\n this.signature = signature;\n }\n /**\n * Marshal the envelope content\n */ marshal() {\n if (this.peerId.publicKey == null) {\n throw new Error(\"Missing public key\");\n }\n if (this.marshaled == null) {\n this.marshaled = _envelope_js__WEBPACK_IMPORTED_MODULE_4__.Envelope.encode({\n publicKey: this.peerId.publicKey,\n payloadType: this.payloadType,\n payload: this.payload.subarray(),\n signature: this.signature\n });\n }\n return this.marshaled;\n }\n /**\n * Verifies if the other Envelope is identical to this one\n */ equals(other) {\n return (0,uint8arrays_equals__WEBPACK_IMPORTED_MODULE_2__.equals)(this.marshal(), other.marshal());\n }\n /**\n * Validate envelope data signature for the given domain\n */ async validate(domain) {\n const signData = formatSignaturePayload(domain, this.payloadType, this.payload);\n if (this.peerId.publicKey == null) {\n throw new Error(\"Missing public key\");\n }\n const key = (0,_libp2p_crypto_keys__WEBPACK_IMPORTED_MODULE_6__.unmarshalPublicKey)(this.peerId.publicKey);\n return key.verify(signData.subarray(), this.signature);\n }\n}\n/**\n * Helper function that prepares a Uint8Array to sign or verify a signature\n */ const formatSignaturePayload = (domain, payloadType, payload)=>{\n // When signing, a peer will prepare a Uint8Array by concatenating the following:\n // - The length of the domain separation string string in bytes\n // - The domain separation string, encoded as UTF-8\n // - The length of the payload_type field in bytes\n // - The value of the payload_type field\n // - The length of the payload field in bytes\n // - The value of the payload field\n const domainUint8Array = (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_3__.fromString)(domain);\n const domainLength = uint8_varint__WEBPACK_IMPORTED_MODULE_0__.encode(domainUint8Array.byteLength);\n const payloadTypeLength = uint8_varint__WEBPACK_IMPORTED_MODULE_0__.encode(payloadType.length);\n const payloadLength = uint8_varint__WEBPACK_IMPORTED_MODULE_0__.encode(payload.length);\n return new uint8arraylist__WEBPACK_IMPORTED_MODULE_1__.Uint8ArrayList(domainLength, domainUint8Array, payloadTypeLength, payloadType, payloadLength, payload);\n}; //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLXJlY29yZC9kaXN0L3NyYy9lbnZlbG9wZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQThFO0FBQ2hDO0FBQ0c7QUFDVjtBQUNTO0FBQ2dCO0FBQ2M7QUFDekM7QUFDZ0I7QUFDOUMsTUFBTWE7O1FBQ1Q7O0tBRUMsUUFDTUMscUJBQXFCLE9BQU9DO1lBQy9CLE1BQU1DLGVBQWVKLGtEQUFRQSxDQUFDSyxNQUFNLENBQUNGO1lBQ3JDLE1BQU1HLFNBQVMsTUFBTWYsK0RBQWNBLENBQUNhLGFBQWFHLFNBQVM7WUFDMUQsT0FBTyxJQUFJTixlQUFlO2dCQUN0Qks7Z0JBQ0FFLGFBQWFKLGFBQWFJLFdBQVc7Z0JBQ3JDQyxTQUFTTCxhQUFhSyxPQUFPO2dCQUM3QkMsV0FBV04sYUFBYU0sU0FBUztZQUNyQztRQUNKOzs7UUFDQTs7O0tBR0MsUUFDTUMsT0FBTyxPQUFPQyxRQUFRTjtZQUN6QixJQUFJQSxPQUFPTyxVQUFVLElBQUksTUFBTTtnQkFDM0IsTUFBTSxJQUFJQyxNQUFNO1lBQ3BCO1lBQ0EsTUFBTUMsU0FBU0gsT0FBT0csTUFBTTtZQUM1QixNQUFNUCxjQUFjSSxPQUFPSSxLQUFLO1lBQ2hDLE1BQU1QLFVBQVVHLE9BQU9LLE9BQU87WUFDOUIsTUFBTUMsV0FBV0MsdUJBQXVCSixRQUFRUCxhQUFhQztZQUM3RCxNQUFNVyxNQUFNLE1BQU1oQyx3RUFBbUJBLENBQUNrQixPQUFPTyxVQUFVO1lBQ3ZELE1BQU1ILFlBQVksTUFBTVUsSUFBSUMsSUFBSSxDQUFDSCxTQUFTSSxRQUFRO1lBQ2xELE9BQU8sSUFBSXJCLGVBQWU7Z0JBQ3RCSztnQkFDQUU7Z0JBQ0FDO2dCQUNBQztZQUNKO1FBQ0o7OztRQUNBOzs7S0FHQyxRQUNNYSxpQkFBaUIsT0FBT3BCLE1BQU1ZO1lBQ2pDLE1BQU1TLFdBQVcsTUFBTXZCLGVBQWVDLGtCQUFrQixDQUFDQztZQUN6RCxNQUFNc0IsUUFBUSxNQUFNRCxTQUFTRSxRQUFRLENBQUNYO1lBQ3RDLElBQUksQ0FBQ1UsT0FBTztnQkFDUixNQUFNLElBQUluQyx3REFBU0EsQ0FBQyx3REFBd0RRLDZDQUFLQSxDQUFDNkIsdUJBQXVCO1lBQzdHO1lBQ0EsT0FBT0g7UUFDWDs7SUFNQTs7O0tBR0MsR0FDREksWUFBWUMsSUFBSSxDQUFFO1FBQ2QsTUFBTSxFQUFFdkIsTUFBTSxFQUFFRSxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsU0FBUyxFQUFFLEdBQUdtQjtRQUNwRCxJQUFJLENBQUN2QixNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDRSxXQUFXLEdBQUdBO1FBQ25CLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtJQUNyQjtJQUNBOztLQUVDLEdBQ0RPLFVBQVU7UUFDTixJQUFJLElBQUksQ0FBQ1gsTUFBTSxDQUFDQyxTQUFTLElBQUksTUFBTTtZQUMvQixNQUFNLElBQUlPLE1BQU07UUFDcEI7UUFDQSxJQUFJLElBQUksQ0FBQ2dCLFNBQVMsSUFBSSxNQUFNO1lBQ3hCLElBQUksQ0FBQ0EsU0FBUyxHQUFHOUIsa0RBQVFBLENBQUMrQixNQUFNLENBQUM7Z0JBQzdCeEIsV0FBVyxJQUFJLENBQUNELE1BQU0sQ0FBQ0MsU0FBUztnQkFDaENDLGFBQWEsSUFBSSxDQUFDQSxXQUFXO2dCQUM3QkMsU0FBUyxJQUFJLENBQUNBLE9BQU8sQ0FBQ2EsUUFBUTtnQkFDOUJaLFdBQVcsSUFBSSxDQUFDQSxTQUFTO1lBQzdCO1FBQ0o7UUFDQSxPQUFPLElBQUksQ0FBQ29CLFNBQVM7SUFDekI7SUFDQTs7S0FFQyxHQUNEcEMsT0FBT3NDLEtBQUssRUFBRTtRQUNWLE9BQU9yQywwREFBZ0JBLENBQUMsSUFBSSxDQUFDc0IsT0FBTyxJQUFJZSxNQUFNZixPQUFPO0lBQ3pEO0lBQ0E7O0tBRUMsR0FDRCxNQUFNUyxTQUFTWCxNQUFNLEVBQUU7UUFDbkIsTUFBTUcsV0FBV0MsdUJBQXVCSixRQUFRLElBQUksQ0FBQ1AsV0FBVyxFQUFFLElBQUksQ0FBQ0MsT0FBTztRQUM5RSxJQUFJLElBQUksQ0FBQ0gsTUFBTSxDQUFDQyxTQUFTLElBQUksTUFBTTtZQUMvQixNQUFNLElBQUlPLE1BQU07UUFDcEI7UUFDQSxNQUFNTSxNQUFNL0IsdUVBQWtCQSxDQUFDLElBQUksQ0FBQ2lCLE1BQU0sQ0FBQ0MsU0FBUztRQUNwRCxPQUFPYSxJQUFJYSxNQUFNLENBQUNmLFNBQVNJLFFBQVEsSUFBSSxJQUFJLENBQUNaLFNBQVM7SUFDekQ7QUFDSjtBQUNBOztDQUVDLEdBQ0QsTUFBTVMseUJBQXlCLENBQUNKLFFBQVFQLGFBQWFDO0lBQ2pELGlGQUFpRjtJQUNqRiwrREFBK0Q7SUFDL0QsbURBQW1EO0lBQ25ELGtEQUFrRDtJQUNsRCx3Q0FBd0M7SUFDeEMsNkNBQTZDO0lBQzdDLG1DQUFtQztJQUNuQyxNQUFNeUIsbUJBQW1CckMsbUVBQXFCQSxDQUFDa0I7SUFDL0MsTUFBTW9CLGVBQWUzQyxnREFBYSxDQUFDMEMsaUJBQWlCRSxVQUFVO0lBQzlELE1BQU1DLG9CQUFvQjdDLGdEQUFhLENBQUNnQixZQUFZOEIsTUFBTTtJQUMxRCxNQUFNQyxnQkFBZ0IvQyxnREFBYSxDQUFDaUIsUUFBUTZCLE1BQU07SUFDbEQsT0FBTyxJQUFJN0MsMERBQWNBLENBQUMwQyxjQUFjRCxrQkFBa0JHLG1CQUFtQjdCLGFBQWErQixlQUFlOUI7QUFDN0csR0FDQSxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL3BlZXItcmVjb3JkL2Rpc3Qvc3JjL2VudmVsb3BlL2luZGV4LmpzP2FkYzMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdW5tYXJzaGFsUHJpdmF0ZUtleSwgdW5tYXJzaGFsUHVibGljS2V5IH0gZnJvbSAnQGxpYnAycC9jcnlwdG8va2V5cyc7XG5pbXBvcnQgeyBDb2RlRXJyb3IgfSBmcm9tICdAbGlicDJwL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBwZWVySWRGcm9tS2V5cyB9IGZyb20gJ0BsaWJwMnAvcGVlci1pZCc7XG5pbXBvcnQgKiBhcyB2YXJpbnQgZnJvbSAndWludDgtdmFyaW50JztcbmltcG9ydCB7IFVpbnQ4QXJyYXlMaXN0IH0gZnJvbSAndWludDhhcnJheWxpc3QnO1xuaW1wb3J0IHsgZXF1YWxzIGFzIHVpbnQ4QXJyYXlFcXVhbHMgfSBmcm9tICd1aW50OGFycmF5cy9lcXVhbHMnO1xuaW1wb3J0IHsgZnJvbVN0cmluZyBhcyB1aW50OGFycmF5c0Zyb21TdHJpbmcgfSBmcm9tICd1aW50OGFycmF5cy9mcm9tLXN0cmluZyc7XG5pbXBvcnQgeyBjb2RlcyB9IGZyb20gJy4uL2Vycm9ycy5qcyc7XG5pbXBvcnQgeyBFbnZlbG9wZSBhcyBQcm90b2J1ZiB9IGZyb20gJy4vZW52ZWxvcGUuanMnO1xuZXhwb3J0IGNsYXNzIFJlY29yZEVudmVsb3BlIHtcbiAgICAvKipcbiAgICAgKiBVbm1hcnNoYWwgYSBzZXJpYWxpemVkIEVudmVsb3BlIHByb3RvYnVmIG1lc3NhZ2VcbiAgICAgKi9cbiAgICBzdGF0aWMgY3JlYXRlRnJvbVByb3RvYnVmID0gYXN5bmMgKGRhdGEpID0+IHtcbiAgICAgICAgY29uc3QgZW52ZWxvcGVEYXRhID0gUHJvdG9idWYuZGVjb2RlKGRhdGEpO1xuICAgICAgICBjb25zdCBwZWVySWQgPSBhd2FpdCBwZWVySWRGcm9tS2V5cyhlbnZlbG9wZURhdGEucHVibGljS2V5KTtcbiAgICAgICAgcmV0dXJuIG5ldyBSZWNvcmRFbnZlbG9wZSh7XG4gICAgICAgICAgICBwZWVySWQsXG4gICAgICAgICAgICBwYXlsb2FkVHlwZTogZW52ZWxvcGVEYXRhLnBheWxvYWRUeXBlLFxuICAgICAgICAgICAgcGF5bG9hZDogZW52ZWxvcGVEYXRhLnBheWxvYWQsXG4gICAgICAgICAgICBzaWduYXR1cmU6IGVudmVsb3BlRGF0YS5zaWduYXR1cmVcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBTZWFsIG1hcnNoYWxzIHRoZSBnaXZlbiBSZWNvcmQsIHBsYWNlcyB0aGUgbWFyc2hhbGVkIGJ5dGVzIGluc2lkZSBhbiBFbnZlbG9wZVxuICAgICAqIGFuZCBzaWducyBpdCB3aXRoIHRoZSBnaXZlbiBwZWVySWQncyBwcml2YXRlIGtleVxuICAgICAqL1xuICAgIHN0YXRpYyBzZWFsID0gYXN5bmMgKHJlY29yZCwgcGVlcklkKSA9PiB7XG4gICAgICAgIGlmIChwZWVySWQucHJpdmF0ZUtleSA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkb21haW4gPSByZWNvcmQuZG9tYWluO1xuICAgICAgICBjb25zdCBwYXlsb2FkVHlwZSA9IHJlY29yZC5jb2RlYztcbiAgICAgICAgY29uc3QgcGF5bG9hZCA9IHJlY29yZC5tYXJzaGFsKCk7XG4gICAgICAgIGNvbnN0IHNpZ25EYXRhID0gZm9ybWF0U2lnbmF0dXJlUGF5bG9hZChkb21haW4sIHBheWxvYWRUeXBlLCBwYXlsb2FkKTtcbiAgICAgICAgY29uc3Qga2V5ID0gYXdhaXQgdW5tYXJzaGFsUHJpdmF0ZUtleShwZWVySWQucHJpdmF0ZUtleSk7XG4gICAgICAgIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IGtleS5zaWduKHNpZ25EYXRhLnN1YmFycmF5KCkpO1xuICAgICAgICByZXR1cm4gbmV3IFJlY29yZEVudmVsb3BlKHtcbiAgICAgICAgICAgIHBlZXJJZCxcbiAgICAgICAgICAgIHBheWxvYWRUeXBlLFxuICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgIHNpZ25hdHVyZVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIE9wZW4gYW5kIGNlcnRpZnkgYSBnaXZlbiBtYXJzaGFsbGVkIGVudmVsb3BlLlxuICAgICAqIERhdGEgaXMgdW5tYXJzaGFsbGVkIGFuZCB0aGUgc2lnbmF0dXJlIHZhbGlkYXRlZCBmb3IgdGhlIGdpdmVuIGRvbWFpbi5cbiAgICAgKi9cbiAgICBzdGF0aWMgb3BlbkFuZENlcnRpZnkgPSBhc3luYyAoZGF0YSwgZG9tYWluKSA9PiB7XG4gICAgICAgIGNvbnN0IGVudmVsb3BlID0gYXdhaXQgUmVjb3JkRW52ZWxvcGUuY3JlYXRlRnJvbVByb3RvYnVmKGRhdGEpO1xuICAgICAgICBjb25zdCB2YWxpZCA9IGF3YWl0IGVudmVsb3BlLnZhbGlkYXRlKGRvbWFpbik7XG4gICAgICAgIGlmICghdmFsaWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoJ2VudmVsb3BlIHNpZ25hdHVyZSBpcyBub3QgdmFsaWQgZm9yIHRoZSBnaXZlbiBkb21haW4nLCBjb2Rlcy5FUlJfU0lHTkFUVVJFX05PVF9WQUxJRCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVudmVsb3BlO1xuICAgIH07XG4gICAgcGVlcklkO1xuICAgIHBheWxvYWRUeXBlO1xuICAgIHBheWxvYWQ7XG4gICAgc2lnbmF0dXJlO1xuICAgIG1hcnNoYWxlZDtcbiAgICAvKipcbiAgICAgKiBUaGUgRW52ZWxvcGUgaXMgcmVzcG9uc2libGUgZm9yIGtlZXBpbmcgYW4gYXJiaXRyYXJ5IHNpZ25lZCByZWNvcmRcbiAgICAgKiBieSBhIGxpYnAycCBwZWVyLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGluaXQpIHtcbiAgICAgICAgY29uc3QgeyBwZWVySWQsIHBheWxvYWRUeXBlLCBwYXlsb2FkLCBzaWduYXR1cmUgfSA9IGluaXQ7XG4gICAgICAgIHRoaXMucGVlcklkID0gcGVlcklkO1xuICAgICAgICB0aGlzLnBheWxvYWRUeXBlID0gcGF5bG9hZFR5cGU7XG4gICAgICAgIHRoaXMucGF5bG9hZCA9IHBheWxvYWQ7XG4gICAgICAgIHRoaXMuc2lnbmF0dXJlID0gc2lnbmF0dXJlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNYXJzaGFsIHRoZSBlbnZlbG9wZSBjb250ZW50XG4gICAgICovXG4gICAgbWFyc2hhbCgpIHtcbiAgICAgICAgaWYgKHRoaXMucGVlcklkLnB1YmxpY0tleSA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgcHVibGljIGtleScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1hcnNoYWxlZCA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLm1hcnNoYWxlZCA9IFByb3RvYnVmLmVuY29kZSh7XG4gICAgICAgICAgICAgICAgcHVibGljS2V5OiB0aGlzLnBlZXJJZC5wdWJsaWNLZXksXG4gICAgICAgICAgICAgICAgcGF5bG9hZFR5cGU6IHRoaXMucGF5bG9hZFR5cGUsXG4gICAgICAgICAgICAgICAgcGF5bG9hZDogdGhpcy5wYXlsb2FkLnN1YmFycmF5KCksXG4gICAgICAgICAgICAgICAgc2lnbmF0dXJlOiB0aGlzLnNpZ25hdHVyZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubWFyc2hhbGVkO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBWZXJpZmllcyBpZiB0aGUgb3RoZXIgRW52ZWxvcGUgaXMgaWRlbnRpY2FsIHRvIHRoaXMgb25lXG4gICAgICovXG4gICAgZXF1YWxzKG90aGVyKSB7XG4gICAgICAgIHJldHVybiB1aW50OEFycmF5RXF1YWxzKHRoaXMubWFyc2hhbCgpLCBvdGhlci5tYXJzaGFsKCkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0ZSBlbnZlbG9wZSBkYXRhIHNpZ25hdHVyZSBmb3IgdGhlIGdpdmVuIGRvbWFpblxuICAgICAqL1xuICAgIGFzeW5jIHZhbGlkYXRlKGRvbWFpbikge1xuICAgICAgICBjb25zdCBzaWduRGF0YSA9IGZvcm1hdFNpZ25hdHVyZVBheWxvYWQoZG9tYWluLCB0aGlzLnBheWxvYWRUeXBlLCB0aGlzLnBheWxvYWQpO1xuICAgICAgICBpZiAodGhpcy5wZWVySWQucHVibGljS2V5ID09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBwdWJsaWMga2V5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qga2V5ID0gdW5tYXJzaGFsUHVibGljS2V5KHRoaXMucGVlcklkLnB1YmxpY0tleSk7XG4gICAgICAgIHJldHVybiBrZXkudmVyaWZ5KHNpZ25EYXRhLnN1YmFycmF5KCksIHRoaXMuc2lnbmF0dXJlKTtcbiAgICB9XG59XG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0aGF0IHByZXBhcmVzIGEgVWludDhBcnJheSB0byBzaWduIG9yIHZlcmlmeSBhIHNpZ25hdHVyZVxuICovXG5jb25zdCBmb3JtYXRTaWduYXR1cmVQYXlsb2FkID0gKGRvbWFpbiwgcGF5bG9hZFR5cGUsIHBheWxvYWQpID0+IHtcbiAgICAvLyBXaGVuIHNpZ25pbmcsIGEgcGVlciB3aWxsIHByZXBhcmUgYSBVaW50OEFycmF5IGJ5IGNvbmNhdGVuYXRpbmcgdGhlIGZvbGxvd2luZzpcbiAgICAvLyAtIFRoZSBsZW5ndGggb2YgdGhlIGRvbWFpbiBzZXBhcmF0aW9uIHN0cmluZyBzdHJpbmcgaW4gYnl0ZXNcbiAgICAvLyAtIFRoZSBkb21haW4gc2VwYXJhdGlvbiBzdHJpbmcsIGVuY29kZWQgYXMgVVRGLThcbiAgICAvLyAtIFRoZSBsZW5ndGggb2YgdGhlIHBheWxvYWRfdHlwZSBmaWVsZCBpbiBieXRlc1xuICAgIC8vIC0gVGhlIHZhbHVlIG9mIHRoZSBwYXlsb2FkX3R5cGUgZmllbGRcbiAgICAvLyAtIFRoZSBsZW5ndGggb2YgdGhlIHBheWxvYWQgZmllbGQgaW4gYnl0ZXNcbiAgICAvLyAtIFRoZSB2YWx1ZSBvZiB0aGUgcGF5bG9hZCBmaWVsZFxuICAgIGNvbnN0IGRvbWFpblVpbnQ4QXJyYXkgPSB1aW50OGFycmF5c0Zyb21TdHJpbmcoZG9tYWluKTtcbiAgICBjb25zdCBkb21haW5MZW5ndGggPSB2YXJpbnQuZW5jb2RlKGRvbWFpblVpbnQ4QXJyYXkuYnl0ZUxlbmd0aCk7XG4gICAgY29uc3QgcGF5bG9hZFR5cGVMZW5ndGggPSB2YXJpbnQuZW5jb2RlKHBheWxvYWRUeXBlLmxlbmd0aCk7XG4gICAgY29uc3QgcGF5bG9hZExlbmd0aCA9IHZhcmludC5lbmNvZGUocGF5bG9hZC5sZW5ndGgpO1xuICAgIHJldHVybiBuZXcgVWludDhBcnJheUxpc3QoZG9tYWluTGVuZ3RoLCBkb21haW5VaW50OEFycmF5LCBwYXlsb2FkVHlwZUxlbmd0aCwgcGF5bG9hZFR5cGUsIHBheWxvYWRMZW5ndGgsIHBheWxvYWQpO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6WyJ1bm1hcnNoYWxQcml2YXRlS2V5IiwidW5tYXJzaGFsUHVibGljS2V5IiwiQ29kZUVycm9yIiwicGVlcklkRnJvbUtleXMiLCJ2YXJpbnQiLCJVaW50OEFycmF5TGlzdCIsImVxdWFscyIsInVpbnQ4QXJyYXlFcXVhbHMiLCJmcm9tU3RyaW5nIiwidWludDhhcnJheXNGcm9tU3RyaW5nIiwiY29kZXMiLCJFbnZlbG9wZSIsIlByb3RvYnVmIiwiUmVjb3JkRW52ZWxvcGUiLCJjcmVhdGVGcm9tUHJvdG9idWYiLCJkYXRhIiwiZW52ZWxvcGVEYXRhIiwiZGVjb2RlIiwicGVlcklkIiwicHVibGljS2V5IiwicGF5bG9hZFR5cGUiLCJwYXlsb2FkIiwic2lnbmF0dXJlIiwic2VhbCIsInJlY29yZCIsInByaXZhdGVLZXkiLCJFcnJvciIsImRvbWFpbiIsImNvZGVjIiwibWFyc2hhbCIsInNpZ25EYXRhIiwiZm9ybWF0U2lnbmF0dXJlUGF5bG9hZCIsImtleSIsInNpZ24iLCJzdWJhcnJheSIsIm9wZW5BbmRDZXJ0aWZ5IiwiZW52ZWxvcGUiLCJ2YWxpZCIsInZhbGlkYXRlIiwiRVJSX1NJR05BVFVSRV9OT1RfVkFMSUQiLCJjb25zdHJ1Y3RvciIsImluaXQiLCJtYXJzaGFsZWQiLCJlbmNvZGUiLCJvdGhlciIsInZlcmlmeSIsImRvbWFpblVpbnQ4QXJyYXkiLCJkb21haW5MZW5ndGgiLCJieXRlTGVuZ3RoIiwicGF5bG9hZFR5cGVMZW5ndGgiLCJsZW5ndGgiLCJwYXlsb2FkTGVuZ3RoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/peer-record/dist/src/envelope/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/peer-record/dist/src/errors.js":
/*!*************************************************************!*\
!*** ./node_modules/@libp2p/peer-record/dist/src/errors.js ***!
\*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ codes: () => (/* binding */ codes)\n/* harmony export */ });\nconst codes = {\n ERR_SIGNATURE_NOT_VALID: \"ERR_SIGNATURE_NOT_VALID\"\n}; //# sourceMappingURL=errors.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLXJlY29yZC9kaXN0L3NyYy9lcnJvcnMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPLE1BQU1BLFFBQVE7SUFDakJDLHlCQUF5QjtBQUM3QixFQUFFLENBQ0Ysa0NBQWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLXJlY29yZC9kaXN0L3NyYy9lcnJvcnMuanM/ZmNlNyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgY29kZXMgPSB7XG4gICAgRVJSX1NJR05BVFVSRV9OT1RfVkFMSUQ6ICdFUlJfU0lHTkFUVVJFX05PVF9WQUxJRCdcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1lcnJvcnMuanMubWFwIl0sIm5hbWVzIjpbImNvZGVzIiwiRVJSX1NJR05BVFVSRV9OT1RfVkFMSUQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/peer-record/dist/src/errors.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/peer-record/dist/src/peer-record/consts.js":
/*!*************************************************************************!*\
!*** ./node_modules/@libp2p/peer-record/dist/src/peer-record/consts.js ***!
\*************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ENVELOPE_DOMAIN_PEER_RECORD: () => (/* binding */ ENVELOPE_DOMAIN_PEER_RECORD),\n/* harmony export */ ENVELOPE_PAYLOAD_TYPE_PEER_RECORD: () => (/* binding */ ENVELOPE_PAYLOAD_TYPE_PEER_RECORD)\n/* harmony export */ });\n// The domain string used for peer records contained in a Envelope.\nconst ENVELOPE_DOMAIN_PEER_RECORD = \"libp2p-peer-record\";\n// The type hint used to identify peer records in a Envelope.\n// Defined in https://github.com/multiformats/multicodec/blob/master/table.csv\n// with name \"libp2p-peer-record\"\nconst ENVELOPE_PAYLOAD_TYPE_PEER_RECORD = Uint8Array.from([\n 3,\n 1\n]); //# sourceMappingURL=consts.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLXJlY29yZC9kaXN0L3NyYy9wZWVyLXJlY29yZC9jb25zdHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtRUFBbUU7QUFDNUQsTUFBTUEsOEJBQThCLHFCQUFxQjtBQUNoRSw2REFBNkQ7QUFDN0QsOEVBQThFO0FBQzlFLGlDQUFpQztBQUMxQixNQUFNQyxvQ0FBb0NDLFdBQVdDLElBQUksQ0FBQztJQUFDO0lBQUc7Q0FBRSxFQUFFLENBQ3pFLGtDQUFrQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvcGVlci1yZWNvcmQvZGlzdC9zcmMvcGVlci1yZWNvcmQvY29uc3RzLmpzPzQ3NTgiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhlIGRvbWFpbiBzdHJpbmcgdXNlZCBmb3IgcGVlciByZWNvcmRzIGNvbnRhaW5lZCBpbiBhIEVudmVsb3BlLlxuZXhwb3J0IGNvbnN0IEVOVkVMT1BFX0RPTUFJTl9QRUVSX1JFQ09SRCA9ICdsaWJwMnAtcGVlci1yZWNvcmQnO1xuLy8gVGhlIHR5cGUgaGludCB1c2VkIHRvIGlkZW50aWZ5IHBlZXIgcmVjb3JkcyBpbiBhIEVudmVsb3BlLlxuLy8gRGVmaW5lZCBpbiBodHRwczovL2dpdGh1Yi5jb20vbXVsdGlmb3JtYXRzL211bHRpY29kZWMvYmxvYi9tYXN0ZXIvdGFibGUuY3N2XG4vLyB3aXRoIG5hbWUgXCJsaWJwMnAtcGVlci1yZWNvcmRcIlxuZXhwb3J0IGNvbnN0IEVOVkVMT1BFX1BBWUxPQURfVFlQRV9QRUVSX1JFQ09SRCA9IFVpbnQ4QXJyYXkuZnJvbShbMywgMV0pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RzLmpzLm1hcCJdLCJuYW1lcyI6WyJFTlZFTE9QRV9ET01BSU5fUEVFUl9SRUNPUkQiLCJFTlZFTE9QRV9QQVlMT0FEX1RZUEVfUEVFUl9SRUNPUkQiLCJVaW50OEFycmF5IiwiZnJvbSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/peer-record/dist/src/peer-record/consts.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/peer-record/dist/src/peer-record/index.js":
/*!************************************************************************!*\
!*** ./node_modules/@libp2p/peer-record/dist/src/peer-record/index.js ***!
\************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PeerRecord: () => (/* binding */ PeerRecord)\n/* harmony export */ });\n/* harmony import */ var _libp2p_peer_id__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @libp2p/peer-id */ \"(ssr)/./node_modules/@libp2p/peer-id/dist/src/index.js\");\n/* harmony import */ var _libp2p_utils_array_equals__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @libp2p/utils/array-equals */ \"(ssr)/./node_modules/@libp2p/utils/dist/src/array-equals.js\");\n/* harmony import */ var _multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @multiformats/multiaddr */ \"(ssr)/./node_modules/@multiformats/multiaddr/dist/src/index.js\");\n/* harmony import */ var _consts_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./consts.js */ \"(ssr)/./node_modules/@libp2p/peer-record/dist/src/peer-record/consts.js\");\n/* harmony import */ var _peer_record_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./peer-record.js */ \"(ssr)/./node_modules/@libp2p/peer-record/dist/src/peer-record/peer-record.js\");\n\n\n\n\n\n/**\n * The PeerRecord is used for distributing peer routing records across the network.\n * It contains the peer's reachable listen addresses.\n */ class PeerRecord {\n static{\n /**\n * Unmarshal Peer Record Protobuf\n */ this.createFromProtobuf = (buf)=>{\n const peerRecord = _peer_record_js__WEBPACK_IMPORTED_MODULE_1__.PeerRecord.decode(buf);\n const peerId = (0,_libp2p_peer_id__WEBPACK_IMPORTED_MODULE_2__.peerIdFromBytes)(peerRecord.peerId);\n const multiaddrs = (peerRecord.addresses ?? []).map((a)=>(0,_multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_0__.multiaddr)(a.multiaddr));\n const seqNumber = peerRecord.seq;\n return new PeerRecord({\n peerId,\n multiaddrs,\n seqNumber\n });\n };\n }\n static{\n this.DOMAIN = _consts_js__WEBPACK_IMPORTED_MODULE_3__.ENVELOPE_DOMAIN_PEER_RECORD;\n }\n static{\n this.CODEC = _consts_js__WEBPACK_IMPORTED_MODULE_3__.ENVELOPE_PAYLOAD_TYPE_PEER_RECORD;\n }\n constructor(init){\n this.domain = PeerRecord.DOMAIN;\n this.codec = PeerRecord.CODEC;\n const { peerId, multiaddrs, seqNumber } = init;\n this.peerId = peerId;\n this.multiaddrs = multiaddrs ?? [];\n this.seqNumber = seqNumber ?? BigInt(Date.now());\n }\n /**\n * Marshal a record to be used in an envelope\n */ marshal() {\n if (this.marshaled == null) {\n this.marshaled = _peer_record_js__WEBPACK_IMPORTED_MODULE_1__.PeerRecord.encode({\n peerId: this.peerId.toBytes(),\n seq: BigInt(this.seqNumber),\n addresses: this.multiaddrs.map((m)=>({\n multiaddr: m.bytes\n }))\n });\n }\n return this.marshaled;\n }\n /**\n * Returns true if `this` record equals the `other`\n */ equals(other) {\n if (!(other instanceof PeerRecord)) {\n return false;\n }\n // Validate PeerId\n if (!this.peerId.equals(other.peerId)) {\n return false;\n }\n // Validate seqNumber\n if (this.seqNumber !== other.seqNumber) {\n return false;\n }\n // Validate multiaddrs\n if (!(0,_libp2p_utils_array_equals__WEBPACK_IMPORTED_MODULE_4__.arrayEquals)(this.multiaddrs, other.multiaddrs)) {\n return false;\n }\n return true;\n }\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLXJlY29yZC9kaXN0L3NyYy9wZWVyLXJlY29yZC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBa0Q7QUFDTztBQUNMO0FBQ3lDO0FBQ25DO0FBQzFEOzs7Q0FHQyxHQUNNLE1BQU1LOztRQUNUOztLQUVDLFFBQ01FLHFCQUFxQixDQUFDQztZQUN6QixNQUFNQyxhQUFhSCx1REFBUUEsQ0FBQ0ksTUFBTSxDQUFDRjtZQUNuQyxNQUFNRyxTQUFTWCxnRUFBZUEsQ0FBQ1MsV0FBV0UsTUFBTTtZQUNoRCxNQUFNQyxhQUFhLENBQUNILFdBQVdJLFNBQVMsSUFBSSxFQUFFLEVBQUVDLEdBQUcsQ0FBQyxDQUFDQyxJQUFNYixrRUFBU0EsQ0FBQ2EsRUFBRWIsU0FBUztZQUNoRixNQUFNYyxZQUFZUCxXQUFXUSxHQUFHO1lBQ2hDLE9BQU8sSUFBSVosV0FBVztnQkFBRU07Z0JBQVFDO2dCQUFZSTtZQUFVO1FBQzFEOzs7YUFDT0UsU0FBU2YsbUVBQTJCQTs7O2FBQ3BDZ0IsUUFBUWYseUVBQWlDQTs7SUFPaERnQixZQUFZQyxJQUFJLENBQUU7YUFIbEJDLFNBQVNqQixXQUFXYSxNQUFNO2FBQzFCSyxRQUFRbEIsV0FBV2MsS0FBSztRQUdwQixNQUFNLEVBQUVSLE1BQU0sRUFBRUMsVUFBVSxFQUFFSSxTQUFTLEVBQUUsR0FBR0s7UUFDMUMsSUFBSSxDQUFDVixNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxVQUFVLEdBQUdBLGNBQWMsRUFBRTtRQUNsQyxJQUFJLENBQUNJLFNBQVMsR0FBR0EsYUFBYVEsT0FBT0MsS0FBS0MsR0FBRztJQUNqRDtJQUNBOztLQUVDLEdBQ0RDLFVBQVU7UUFDTixJQUFJLElBQUksQ0FBQ0MsU0FBUyxJQUFJLE1BQU07WUFDeEIsSUFBSSxDQUFDQSxTQUFTLEdBQUd0Qix1REFBUUEsQ0FBQ3VCLE1BQU0sQ0FBQztnQkFDN0JsQixRQUFRLElBQUksQ0FBQ0EsTUFBTSxDQUFDbUIsT0FBTztnQkFDM0JiLEtBQUtPLE9BQU8sSUFBSSxDQUFDUixTQUFTO2dCQUMxQkgsV0FBVyxJQUFJLENBQUNELFVBQVUsQ0FBQ0UsR0FBRyxDQUFDLENBQUNpQixJQUFPO3dCQUNuQzdCLFdBQVc2QixFQUFFQyxLQUFLO29CQUN0QjtZQUNKO1FBQ0o7UUFDQSxPQUFPLElBQUksQ0FBQ0osU0FBUztJQUN6QjtJQUNBOztLQUVDLEdBQ0RLLE9BQU9DLEtBQUssRUFBRTtRQUNWLElBQUksQ0FBRUEsQ0FBQUEsaUJBQWlCN0IsVUFBUyxHQUFJO1lBQ2hDLE9BQU87UUFDWDtRQUNBLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDTSxNQUFNLENBQUNzQixNQUFNLENBQUNDLE1BQU12QixNQUFNLEdBQUc7WUFDbkMsT0FBTztRQUNYO1FBQ0EscUJBQXFCO1FBQ3JCLElBQUksSUFBSSxDQUFDSyxTQUFTLEtBQUtrQixNQUFNbEIsU0FBUyxFQUFFO1lBQ3BDLE9BQU87UUFDWDtRQUNBLHNCQUFzQjtRQUN0QixJQUFJLENBQUNmLHVFQUFXQSxDQUFDLElBQUksQ0FBQ1csVUFBVSxFQUFFc0IsTUFBTXRCLFVBQVUsR0FBRztZQUNqRCxPQUFPO1FBQ1g7UUFDQSxPQUFPO0lBQ1g7QUFDSixFQUNBLGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvcGVlci1yZWNvcmQvZGlzdC9zcmMvcGVlci1yZWNvcmQvaW5kZXguanM/ODU3MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwZWVySWRGcm9tQnl0ZXMgfSBmcm9tICdAbGlicDJwL3BlZXItaWQnO1xuaW1wb3J0IHsgYXJyYXlFcXVhbHMgfSBmcm9tICdAbGlicDJwL3V0aWxzL2FycmF5LWVxdWFscyc7XG5pbXBvcnQgeyBtdWx0aWFkZHIgfSBmcm9tICdAbXVsdGlmb3JtYXRzL211bHRpYWRkcic7XG5pbXBvcnQgeyBFTlZFTE9QRV9ET01BSU5fUEVFUl9SRUNPUkQsIEVOVkVMT1BFX1BBWUxPQURfVFlQRV9QRUVSX1JFQ09SRCB9IGZyb20gJy4vY29uc3RzLmpzJztcbmltcG9ydCB7IFBlZXJSZWNvcmQgYXMgUHJvdG9idWYgfSBmcm9tICcuL3BlZXItcmVjb3JkLmpzJztcbi8qKlxuICogVGhlIFBlZXJSZWNvcmQgaXMgdXNlZCBmb3IgZGlzdHJpYnV0aW5nIHBlZXIgcm91dGluZyByZWNvcmRzIGFjcm9zcyB0aGUgbmV0d29yay5cbiAqIEl0IGNvbnRhaW5zIHRoZSBwZWVyJ3MgcmVhY2hhYmxlIGxpc3RlbiBhZGRyZXNzZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBQZWVyUmVjb3JkIHtcbiAgICAvKipcbiAgICAgKiBVbm1hcnNoYWwgUGVlciBSZWNvcmQgUHJvdG9idWZcbiAgICAgKi9cbiAgICBzdGF0aWMgY3JlYXRlRnJvbVByb3RvYnVmID0gKGJ1ZikgPT4ge1xuICAgICAgICBjb25zdCBwZWVyUmVjb3JkID0gUHJvdG9idWYuZGVjb2RlKGJ1Zik7XG4gICAgICAgIGNvbnN0IHBlZXJJZCA9IHBlZXJJZEZyb21CeXRlcyhwZWVyUmVjb3JkLnBlZXJJZCk7XG4gICAgICAgIGNvbnN0IG11bHRpYWRkcnMgPSAocGVlclJlY29yZC5hZGRyZXNzZXMgPz8gW10pLm1hcCgoYSkgPT4gbXVsdGlhZGRyKGEubXVsdGlhZGRyKSk7XG4gICAgICAgIGNvbnN0IHNlcU51bWJlciA9IHBlZXJSZWNvcmQuc2VxO1xuICAgICAgICByZXR1cm4gbmV3IFBlZXJSZWNvcmQoeyBwZWVySWQsIG11bHRpYWRkcnMsIHNlcU51bWJlciB9KTtcbiAgICB9O1xuICAgIHN0YXRpYyBET01BSU4gPSBFTlZFTE9QRV9ET01BSU5fUEVFUl9SRUNPUkQ7XG4gICAgc3RhdGljIENPREVDID0gRU5WRUxPUEVfUEFZTE9BRF9UWVBFX1BFRVJfUkVDT1JEO1xuICAgIHBlZXJJZDtcbiAgICBtdWx0aWFkZHJzO1xuICAgIHNlcU51bWJlcjtcbiAgICBkb21haW4gPSBQZWVyUmVjb3JkLkRPTUFJTjtcbiAgICBjb2RlYyA9IFBlZXJSZWNvcmQuQ09ERUM7XG4gICAgbWFyc2hhbGVkO1xuICAgIGNvbnN0cnVjdG9yKGluaXQpIHtcbiAgICAgICAgY29uc3QgeyBwZWVySWQsIG11bHRpYWRkcnMsIHNlcU51bWJlciB9ID0gaW5pdDtcbiAgICAgICAgdGhpcy5wZWVySWQgPSBwZWVySWQ7XG4gICAgICAgIHRoaXMubXVsdGlhZGRycyA9IG11bHRpYWRkcnMgPz8gW107XG4gICAgICAgIHRoaXMuc2VxTnVtYmVyID0gc2VxTnVtYmVyID8/IEJpZ0ludChEYXRlLm5vdygpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWFyc2hhbCBhIHJlY29yZCB0byBiZSB1c2VkIGluIGFuIGVudmVsb3BlXG4gICAgICovXG4gICAgbWFyc2hhbCgpIHtcbiAgICAgICAgaWYgKHRoaXMubWFyc2hhbGVkID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMubWFyc2hhbGVkID0gUHJvdG9idWYuZW5jb2RlKHtcbiAgICAgICAgICAgICAgICBwZWVySWQ6IHRoaXMucGVlcklkLnRvQnl0ZXMoKSxcbiAgICAgICAgICAgICAgICBzZXE6IEJpZ0ludCh0aGlzLnNlcU51bWJlciksXG4gICAgICAgICAgICAgICAgYWRkcmVzc2VzOiB0aGlzLm11bHRpYWRkcnMubWFwKChtKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBtdWx0aWFkZHI6IG0uYnl0ZXNcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLm1hcnNoYWxlZDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIGB0aGlzYCByZWNvcmQgZXF1YWxzIHRoZSBgb3RoZXJgXG4gICAgICovXG4gICAgZXF1YWxzKG90aGVyKSB7XG4gICAgICAgIGlmICghKG90aGVyIGluc3RhbmNlb2YgUGVlclJlY29yZCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBWYWxpZGF0ZSBQZWVySWRcbiAgICAgICAgaWYgKCF0aGlzLnBlZXJJZC5lcXVhbHMob3RoZXIucGVlcklkKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIFZhbGlkYXRlIHNlcU51bWJlclxuICAgICAgICBpZiAodGhpcy5zZXFOdW1iZXIgIT09IG90aGVyLnNlcU51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIFZhbGlkYXRlIG11bHRpYWRkcnNcbiAgICAgICAgaWYgKCFhcnJheUVxdWFscyh0aGlzLm11bHRpYWRkcnMsIG90aGVyLm11bHRpYWRkcnMpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbInBlZXJJZEZyb21CeXRlcyIsImFycmF5RXF1YWxzIiwibXVsdGlhZGRyIiwiRU5WRUxPUEVfRE9NQUlOX1BFRVJfUkVDT1JEIiwiRU5WRUxPUEVfUEFZTE9BRF9UWVBFX1BFRVJfUkVDT1JEIiwiUGVlclJlY29yZCIsIlByb3RvYnVmIiwiY3JlYXRlRnJvbVByb3RvYnVmIiwiYnVmIiwicGVlclJlY29yZCIsImRlY29kZSIsInBlZXJJZCIsIm11bHRpYWRkcnMiLCJhZGRyZXNzZXMiLCJtYXAiLCJhIiwic2VxTnVtYmVyIiwic2VxIiwiRE9NQUlOIiwiQ09ERUMiLCJjb25zdHJ1Y3RvciIsImluaXQiLCJkb21haW4iLCJjb2RlYyIsIkJpZ0ludCIsIkRhdGUiLCJub3ciLCJtYXJzaGFsIiwibWFyc2hhbGVkIiwiZW5jb2RlIiwidG9CeXRlcyIsIm0iLCJieXRlcyIsImVxdWFscyIsIm90aGVyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/peer-record/dist/src/peer-record/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/peer-record/dist/src/peer-record/peer-record.js":
/*!******************************************************************************!*\
!*** ./node_modules/@libp2p/peer-record/dist/src/peer-record/peer-record.js ***!
\******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PeerRecord: () => (/* binding */ PeerRecord)\n/* harmony export */ });\n/* harmony import */ var protons_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! protons-runtime */ \"(ssr)/./node_modules/protons-runtime/dist/src/index.js\");\n/* eslint-disable import/export */ /* eslint-disable complexity */ /* eslint-disable @typescript-eslint/no-namespace */ /* eslint-disable @typescript-eslint/no-unnecessary-boolean-literal-compare */ /* eslint-disable @typescript-eslint/no-empty-interface */ \nvar PeerRecord;\n(function(PeerRecord) {\n let AddressInfo;\n (function(AddressInfo) {\n let _codec;\n AddressInfo.codec = ()=>{\n if (_codec == null) {\n _codec = (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.message)((obj, w, opts = {})=>{\n if (opts.lengthDelimited !== false) {\n w.fork();\n }\n if (obj.multiaddr != null && obj.multiaddr.byteLength > 0) {\n w.uint32(10);\n w.bytes(obj.multiaddr);\n }\n if (opts.lengthDelimited !== false) {\n w.ldelim();\n }\n }, (reader, length)=>{\n const obj = {\n multiaddr: new Uint8Array(0)\n };\n const end = length == null ? reader.len : reader.pos + length;\n while(reader.pos < end){\n const tag = reader.uint32();\n switch(tag >>> 3){\n case 1:\n obj.multiaddr = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return obj;\n });\n }\n return _codec;\n };\n AddressInfo.encode = (obj)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.encodeMessage)(obj, AddressInfo.codec());\n };\n AddressInfo.decode = (buf)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.decodeMessage)(buf, AddressInfo.codec());\n };\n })(AddressInfo = PeerRecord.AddressInfo || (PeerRecord.AddressInfo = {}));\n let _codec;\n PeerRecord.codec = ()=>{\n if (_codec == null) {\n _codec = (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.message)((obj, w, opts = {})=>{\n if (opts.lengthDelimited !== false) {\n w.fork();\n }\n if (obj.peerId != null && obj.peerId.byteLength > 0) {\n w.uint32(10);\n w.bytes(obj.peerId);\n }\n if (obj.seq != null && obj.seq !== 0n) {\n w.uint32(16);\n w.uint64(obj.seq);\n }\n if (obj.addresses != null) {\n for (const value of obj.addresses){\n w.uint32(26);\n PeerRecord.AddressInfo.codec().encode(value, w);\n }\n }\n if (opts.lengthDelimited !== false) {\n w.ldelim();\n }\n }, (reader, length)=>{\n const obj = {\n peerId: new Uint8Array(0),\n seq: 0n,\n addresses: []\n };\n const end = length == null ? reader.len : reader.pos + length;\n while(reader.pos < end){\n const tag = reader.uint32();\n switch(tag >>> 3){\n case 1:\n obj.peerId = reader.bytes();\n break;\n case 2:\n obj.seq = reader.uint64();\n break;\n case 3:\n obj.addresses.push(PeerRecord.AddressInfo.codec().decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return obj;\n });\n }\n return _codec;\n };\n PeerRecord.encode = (obj)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.encodeMessage)(obj, PeerRecord.codec());\n };\n PeerRecord.decode = (buf)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.decodeMessage)(buf, PeerRecord.codec());\n };\n})(PeerRecord || (PeerRecord = {})); //# sourceMappingURL=peer-record.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLXJlY29yZC9kaXN0L3NyYy9wZWVyLXJlY29yZC9wZWVyLXJlY29yZC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdDQUFnQyxHQUNoQyw2QkFBNkIsR0FDN0Isa0RBQWtELEdBQ2xELDRFQUE0RSxHQUM1RSx3REFBd0QsR0FDZ0I7QUFDakUsSUFBSUcsV0FBVztBQUNyQixVQUFVQSxVQUFVO0lBQ2pCLElBQUlDO0lBQ0gsVUFBVUEsV0FBVztRQUNsQixJQUFJQztRQUNKRCxZQUFZRSxLQUFLLEdBQUc7WUFDaEIsSUFBSUQsVUFBVSxNQUFNO2dCQUNoQkEsU0FBU0gsd0RBQU9BLENBQUMsQ0FBQ0ssS0FBS0MsR0FBR0MsT0FBTyxDQUFDLENBQUM7b0JBQy9CLElBQUlBLEtBQUtDLGVBQWUsS0FBSyxPQUFPO3dCQUNoQ0YsRUFBRUcsSUFBSTtvQkFDVjtvQkFDQSxJQUFLSixJQUFJSyxTQUFTLElBQUksUUFBUUwsSUFBSUssU0FBUyxDQUFDQyxVQUFVLEdBQUcsR0FBSTt3QkFDekRMLEVBQUVNLE1BQU0sQ0FBQzt3QkFDVE4sRUFBRU8sS0FBSyxDQUFDUixJQUFJSyxTQUFTO29CQUN6QjtvQkFDQSxJQUFJSCxLQUFLQyxlQUFlLEtBQUssT0FBTzt3QkFDaENGLEVBQUVRLE1BQU07b0JBQ1o7Z0JBQ0osR0FBRyxDQUFDQyxRQUFRQztvQkFDUixNQUFNWCxNQUFNO3dCQUNSSyxXQUFXLElBQUlPLFdBQVc7b0JBQzlCO29CQUNBLE1BQU1DLE1BQU1GLFVBQVUsT0FBT0QsT0FBT0ksR0FBRyxHQUFHSixPQUFPSyxHQUFHLEdBQUdKO29CQUN2RCxNQUFPRCxPQUFPSyxHQUFHLEdBQUdGLElBQUs7d0JBQ3JCLE1BQU1HLE1BQU1OLE9BQU9ILE1BQU07d0JBQ3pCLE9BQVFTLFFBQVE7NEJBQ1osS0FBSztnQ0FDRGhCLElBQUlLLFNBQVMsR0FBR0ssT0FBT0YsS0FBSztnQ0FDNUI7NEJBQ0o7Z0NBQ0lFLE9BQU9P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b3JkL2Rpc3Qvc3JjL3BlZXItcmVjb3JkL3BlZXItcmVjb3JkLmpzPzk1MTkiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L2V4cG9ydCAqL1xuLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWJvb2xlYW4tbGl0ZXJhbC1jb21wYXJlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlICovXG5pbXBvcnQgeyBlbmNvZGVNZXNzYWdlLCBkZWNvZGVNZXNzYWdlLCBtZXNzYWdlIH0gZnJvbSAncHJvdG9ucy1ydW50aW1lJztcbmV4cG9ydCB2YXIgUGVlclJlY29yZDtcbihmdW5jdGlvbiAoUGVlclJlY29yZCkge1xuICAgIGxldCBBZGRyZXNzSW5mbztcbiAgICAoZnVuY3Rpb24gKEFkZHJlc3NJbmZvKSB7XG4gICAgICAgIGxldCBfY29kZWM7XG4gICAgICAgIEFkZHJlc3NJbmZvLmNvZGVjID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKF9jb2RlYyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgX2NvZGVjID0gbWVzc2FnZSgob2JqLCB3LCBvcHRzID0ge30pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdHMubGVuZ3RoRGVsaW1pdGVkICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdy5mb3JrKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKChvYmoubXVsdGlhZGRyICE9IG51bGwgJiYgb2JqLm11bHRpYWRkci5ieXRlTGVuZ3RoID4gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHcudWludDMyKDEwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHcuYnl0ZXMob2JqLm11bHRpYWRkcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdHMubGVuZ3RoRGVsaW1pdGVkICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdy5sZGVsaW0oKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIChyZWFkZXIsIGxlbmd0aCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvYmogPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtdWx0aWFkZHI6IG5ldyBVaW50OEFycmF5KDApXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IGxlbmd0aCA9PSBudWxsID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqLm11bHRpYWRkciA9IHJlYWRlci5ieXRlcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvYmo7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX2NvZGVjO1xuICAgICAgICB9O1xuICAgICAgICBBZGRyZXNzSW5mby5lbmNvZGUgPSAob2JqKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZW5jb2RlTWVzc2FnZShvYmosIEFkZHJlc3NJbmZvLmNvZGVjKCkpO1xuICAgICAgICB9O1xuICAgICAgICBBZGRyZXNzSW5mby5kZWNvZGUgPSAoYnVmKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZGVjb2RlTWVzc2FnZShidWYsIEFkZHJlc3NJbmZvLmNvZGVjKCkpO1xuICAgICAgICB9O1xuICAgIH0pKEFkZHJlc3NJbmZvID0gUGVlclJlY29yZC5BZGRyZXNzSW5mbyB8fCAoUGVlclJlY29yZC5BZGRyZXNzSW5mbyA9IHt9KSk7XG4gICAgbGV0IF9jb2RlYztcbiAgICBQZWVyUmVjb3JkLmNvZGVjID0gKCkgPT4ge1xuICAgICAgICBpZiAoX2NvZGVjID09IG51bGwpIHtcbiAgICAgICAgICAgIF9jb2RlYyA9IG1lc3NhZ2UoKG9iaiwgdywgb3B0cyA9IHt9KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG9wdHMubGVuZ3RoRGVsaW1pdGVkICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICB3LmZvcmsoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKChvYmoucGVlcklkICE9IG51bGwgJiYgb2JqLnBlZXJJZC5ieXRlTGVuZ3RoID4gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdy51aW50MzIoMTApO1xuICAgICAgICAgICAgICAgICAgICB3LmJ5dGVzKG9iai5wZWVySWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoKG9iai5zZXEgIT0gbnVsbCAmJiBvYmouc2VxICE9PSAwbikpIHtcbiAgICAgICAgICAgICAgICAgICAgdy51aW50MzIoMTYpO1xuICAgICAgICAgICAgICAgICAgICB3LnVpbnQ2NChvYmouc2VxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG9iai5hZGRyZXNzZXMgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIG9iai5hZGRyZXNzZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHcudWludDMyKDI2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFBlZXJSZWNvcmQuQWRkcmVzc0luZm8uY29kZWMoKS5lbmNvZGUodmFsdWUsIHcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChvcHRzLmxlbmd0aERlbGltaXRlZCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdy5sZGVsaW0oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAocmVhZGVyLCBsZW5ndGgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvYmogPSB7XG4gICAgICAgICAgICAgICAgICAgIHBlZXJJZDogbmV3IFVpbnQ4QXJyYXkoMCksXG4gICAgICAgICAgICAgICAgICAgIHNlcTogMG4sXG4gICAgICAgICAgICAgICAgICAgIGFkZHJlc3NlczogW11cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IGxlbmd0aCA9PSBudWxsID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgICAgICAgICAgICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iai5wZWVySWQgPSByZWFkZXIuYnl0ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmouc2VxID0gcmVhZGVyLnVpbnQ2NCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iai5hZGRyZXNzZXMucHVzaChQZWVyUmVjb3JkLkFkZHJlc3NJbmZvLmNvZGVjKCkuZGVjb2RlKHJlYWRlciwgcmVhZGVyLnVpbnQzMigpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9jb2RlYztcbiAgICB9O1xuICAgIFBlZXJSZWNvcmQuZW5jb2RlID0gKG9iaikgPT4ge1xuICAgICAgICByZXR1cm4gZW5jb2RlTWVzc2FnZShvYmosIFBlZXJSZWNvcmQuY29kZWMoKSk7XG4gICAgfTtcbiAgICBQZWVyUmVjb3JkLmRlY29kZSA9IChidWYpID0+IHtcbiAgICAgICAgcmV0dXJuIGRlY29kZU1lc3NhZ2UoYnVmLCBQZWVyUmVjb3JkLmNvZGVjKCkpO1xuICAgIH07XG59KShQZWVyUmVjb3JkIHx8IChQZWVyUmVjb3JkID0ge30pKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBlZXItcmVjb3JkLmpzLm1hcCJdLCJuYW1lcyI6WyJlbmNvZGVNZXNzYWdlIiwiZGVjb2RlTWVzc2FnZSIsIm1lc3NhZ2UiLCJQZWVyUmVjb3JkIiwiQWRkcmVzc0luZm8iLCJfY29kZWMiLCJjb2RlYyIsIm9iaiIsInciLCJvcHRzIiwibGVuZ3RoRGVsaW1pdGVkIiwiZm9yayIsIm11bHRpYWRkciIsImJ5dGVMZW5ndGgiLCJ1aW50MzIiLCJieXRlcyIsImxkZWxpbSIsInJlYWRlciIsImxlbmd0aCIsIlVpbnQ4QXJyYXkiLCJlbmQiLCJsZW4iLCJwb3MiLCJ0YWciLCJza2lwVHlwZSIsImVuY29kZSIsImRlY29kZSIsImJ1ZiIsInBlZXJJZCIsInNlcSIsInVpbnQ2NCIsImFkZHJlc3NlcyIsInZhbHVlIiwicHVzaCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/peer-record/dist/src/peer-record/peer-record.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/peer-store/dist/src/errors.js":
/*!************************************************************!*\
!*** ./node_modules/@libp2p/peer-store/dist/src/errors.js ***!
\************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ codes: () => (/* binding */ codes)\n/* harmony export */ });\nconst codes = {\n ERR_INVALID_PARAMETERS: \"ERR_INVALID_PARAMETERS\"\n}; //# sourceMappingURL=errors.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLXN0b3JlL2Rpc3Qvc3JjL2Vycm9ycy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQU8sTUFBTUEsUUFBUTtJQUNqQkMsd0JBQXdCO0FBQzVCLEVBQUUsQ0FDRixrQ0FBa0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL3BlZXItc3RvcmUvZGlzdC9zcmMvZXJyb3JzLmpzP2QwNTgiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGNvZGVzID0ge1xuICAgIEVSUl9JTlZBTElEX1BBUkFNRVRFUlM6ICdFUlJfSU5WQUxJRF9QQVJBTUVURVJTJ1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVycm9ycy5qcy5tYXAiXSwibmFtZXMiOlsiY29kZXMiLCJFUlJfSU5WQUxJRF9QQVJBTUVURVJTIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/peer-store/dist/src/errors.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/peer-store/dist/src/index.js":
/*!***********************************************************!*\
!*** ./node_modules/@libp2p/peer-store/dist/src/index.js ***!
\***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PersistentPeerStore: () => (/* binding */ PersistentPeerStore)\n/* harmony export */ });\n/* harmony import */ var _libp2p_peer_record__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @libp2p/peer-record */ \"(ssr)/./node_modules/@libp2p/peer-record/dist/src/envelope/index.js\");\n/* harmony import */ var _libp2p_peer_record__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @libp2p/peer-record */ \"(ssr)/./node_modules/@libp2p/peer-record/dist/src/peer-record/index.js\");\n/* harmony import */ var it_all__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! it-all */ \"(ssr)/./node_modules/it-all/dist/src/index.js\");\n/* harmony import */ var _store_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./store.js */ \"(ssr)/./node_modules/@libp2p/peer-store/dist/src/store.js\");\n/**\n * @packageDocumentation\n *\n * The peer store is where libp2p stores data about the peers it has encountered on the network.\n */ \n\n\n/**\n * An implementation of PeerStore that stores data in a Datastore\n */ class PersistentPeerStore {\n constructor(components, init = {}){\n this.log = components.logger.forComponent(\"libp2p:peer-store\");\n this.events = components.events;\n this.peerId = components.peerId;\n this.store = new _store_js__WEBPACK_IMPORTED_MODULE_1__.PersistentStore(components, init);\n }\n async forEach(fn, query) {\n this.log.trace(\"forEach await read lock\");\n const release = await this.store.lock.readLock();\n this.log.trace(\"forEach got read lock\");\n try {\n for await (const peer of this.store.all(query)){\n fn(peer);\n }\n } finally{\n this.log.trace(\"forEach release read lock\");\n release();\n }\n }\n async all(query) {\n this.log.trace(\"all await read lock\");\n const release = await this.store.lock.readLock();\n this.log.trace(\"all got read lock\");\n try {\n return await (0,it_all__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this.store.all(query));\n } finally{\n this.log.trace(\"all release read lock\");\n release();\n }\n }\n async delete(peerId) {\n this.log.trace(\"delete await write lock\");\n const release = await this.store.lock.writeLock();\n this.log.trace(\"delete got write lock\");\n try {\n await this.store.delete(peerId);\n } finally{\n this.log.trace(\"delete release write lock\");\n release();\n }\n }\n async has(peerId) {\n this.log.trace(\"has await read lock\");\n const release = await this.store.lock.readLock();\n this.log.trace(\"has got read lock\");\n try {\n return await this.store.has(peerId);\n } finally{\n this.log.trace(\"has release read lock\");\n release();\n }\n }\n async get(peerId) {\n this.log.trace(\"get await read lock\");\n const release = await this.store.lock.readLock();\n this.log.trace(\"get got read lock\");\n try {\n return await this.store.load(peerId);\n } finally{\n this.log.trace(\"get release read lock\");\n release();\n }\n }\n async save(id, data) {\n this.log.trace(\"save await write lock\");\n const release = await this.store.lock.writeLock();\n this.log.trace(\"save got write lock\");\n try {\n const result = await this.store.save(id, data);\n this.#emitIfUpdated(id, result);\n return result.peer;\n } finally{\n this.log.trace(\"save release write lock\");\n release();\n }\n }\n async patch(id, data) {\n this.log.trace(\"patch await write lock\");\n const release = await this.store.lock.writeLock();\n this.log.trace(\"patch got write lock\");\n try {\n const result = await this.store.patch(id, data);\n this.#emitIfUpdated(id, result);\n return result.peer;\n } finally{\n this.log.trace(\"patch release write lock\");\n release();\n }\n }\n async merge(id, data) {\n this.log.trace(\"merge await write lock\");\n const release = await this.store.lock.writeLock();\n this.log.trace(\"merge got write lock\");\n try {\n const result = await this.store.merge(id, data);\n this.#emitIfUpdated(id, result);\n return result.peer;\n } finally{\n this.log.trace(\"merge release write lock\");\n release();\n }\n }\n async consumePeerRecord(buf, expectedPeer) {\n const envelope = await _libp2p_peer_record__WEBPACK_IMPORTED_MODULE_2__.RecordEnvelope.openAndCertify(buf, _libp2p_peer_record__WEBPACK_IMPORTED_MODULE_3__.PeerRecord.DOMAIN);\n if (expectedPeer?.equals(envelope.peerId) === false) {\n this.log(\"envelope peer id was not the expected peer id - expected: %p received: %p\", expectedPeer, envelope.peerId);\n return false;\n }\n const peerRecord = _libp2p_peer_record__WEBPACK_IMPORTED_MODULE_3__.PeerRecord.createFromProtobuf(envelope.payload);\n let peer;\n try {\n peer = await this.get(envelope.peerId);\n } catch (err) {\n if (err.code !== \"ERR_NOT_FOUND\") {\n throw err;\n }\n }\n // ensure seq is greater than, or equal to, the last received\n if (peer?.peerRecordEnvelope != null) {\n const storedEnvelope = await _libp2p_peer_record__WEBPACK_IMPORTED_MODULE_2__.RecordEnvelope.createFromProtobuf(peer.peerRecordEnvelope);\n const storedRecord = _libp2p_peer_record__WEBPACK_IMPORTED_MODULE_3__.PeerRecord.createFromProtobuf(storedEnvelope.payload);\n if (storedRecord.seqNumber >= peerRecord.seqNumber) {\n this.log(\"sequence number was lower or equal to existing sequence number - stored: %d received: %d\", storedRecord.seqNumber, peerRecord.seqNumber);\n return false;\n }\n }\n await this.patch(peerRecord.peerId, {\n peerRecordEnvelope: buf,\n addresses: peerRecord.multiaddrs.map((multiaddr)=>({\n isCertified: true,\n multiaddr\n }))\n });\n return true;\n }\n #emitIfUpdated(id, result) {\n if (!result.updated) {\n return;\n }\n if (this.peerId.equals(id)) {\n this.events.safeDispatchEvent(\"self:peer:update\", {\n detail: result\n });\n } else {\n this.events.safeDispatchEvent(\"peer:update\", {\n detail: result\n });\n }\n }\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLXN0b3JlL2Rpc3Qvc3JjL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7Q0FJQyxHQUNnRTtBQUN4QztBQUNvQjtBQUM3Qzs7Q0FFQyxHQUNNLE1BQU1JO0lBS1RDLFlBQVlDLFVBQVUsRUFBRUMsT0FBTyxDQUFDLENBQUMsQ0FBRTtRQUMvQixJQUFJLENBQUNDLEdBQUcsR0FBR0YsV0FBV0csTUFBTSxDQUFDQyxZQUFZLENBQUM7UUFDMUMsSUFBSSxDQUFDQyxNQUFNLEdBQUdMLFdBQVdLLE1BQU07UUFDL0IsSUFBSSxDQUFDQyxNQUFNLEdBQUdOLFdBQVdNLE1BQU07UUFDL0IsSUFBSSxDQUFDQyxLQUFLLEdBQUcsSUFBSVYsc0RBQWVBLENBQUNHLFlBQVlDO0lBQ2pEO0lBQ0EsTUFBTU8sUUFBUUMsRUFBRSxFQUFFQyxLQUFLLEVBQUU7UUFDckIsSUFBSSxDQUFDUixHQUFHLENBQUNTLEtBQUssQ0FBQztRQUNmLE1BQU1DLFVBQVUsTUFBTSxJQUFJLENBQUNMLEtBQUssQ0FBQ00sSUFBSSxDQUFDQyxRQUFRO1FBQzlDLElBQUksQ0FBQ1osR0FBRyxDQUFDUyxLQUFLLENBQUM7UUFDZixJQUFJO1lBQ0EsV0FBVyxNQUFNSSxRQUFRLElBQUksQ0FBQ1IsS0FBSyxDQUFDWCxHQUFHLENBQUNjLE9BQVE7Z0JBQzVDRCxHQUFHTTtZQUNQO1FBQ0osU0FDUTtZQUNKLElBQUksQ0FBQ2IsR0FBRyxDQUFDUyxLQUFLLENBQUM7WUFDZkM7UUFDSjtJQUNKO0lBQ0EsTUFBTWhCLElBQUljLEtBQUssRUFBRTtRQUNiLElBQUksQ0FBQ1IsR0FBRyxDQUFDUyxLQUFLLENBQUM7UUFDZixNQUFNQyxVQUFVLE1BQU0sSUFBSSxDQUFDTCxLQUFLLENBQUNNLElBQUksQ0FBQ0MsUUFBUTtRQUM5QyxJQUFJLENBQUNaLEdBQUcsQ0FBQ1MsS0FBSyxDQUFDO1FBQ2YsSUFBSTtZQUNBLE9BQU8sTUFBTWYs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QVMsSUFBSVIsV0FBV1EsU0FBUyxFQUFFO2dCQUNoRCxJQUFJLENBQUN6QyxHQUFHLENBQUMsNEZBQTRGd0MsYUFBYUMsU0FBUyxFQUFFUixXQUFXUSxTQUFTO2dCQUNqSixPQUFPO1lBQ1g7UUFDSjtRQUNBLE1BQU0sSUFBSSxDQUFDakIsS0FBSyxDQUFDUyxXQUFXN0IsTUFBTSxFQUFFO1lBQ2hDa0Msb0JBQW9CWDtZQUNwQmUsV0FBV1QsV0FBV1UsVUFBVSxDQUFDQyxHQUFHLENBQUNDLENBQUFBLFlBQWM7b0JBQy9DQyxhQUFhO29CQUNiRDtnQkFDSjtRQUNKO1FBQ0EsT0FBTztJQUNYO0lBQ0EsQ0FBQ3RCLGFBQWEsQ0FBQ0gsRUFBRSxFQUFFRSxNQUFNO1FBQ3JCLElBQUksQ0FBQ0EsT0FBT3lCLE9BQU8sRUFBRTtZQUNqQjtRQUNKO1FBQ0EsSUFBSSxJQUFJLENBQUMzQyxNQUFNLENBQUM0QixNQUFNLENBQUNaLEtBQUs7WUFDeEIsSUFBSSxDQUFDakIsTUFBTSxDQUFDNkMsaUJBQWlCLENBQUMsb0JBQW9CO2dCQUFFQyxRQUFRM0I7WUFBTztRQUN2RSxPQUNLO1lBQ0QsSUFBSSxDQUFDbkIsTUFBTSxDQUFDNkMsaUJBQWlCLENBQUMsZUFBZTtnQkFBRUMsUUFBUTNCO1lBQU87UUFDbEU7SUFDSjtBQUNKLEVBQ0EsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLXN0b3JlL2Rpc3Qvc3JjL2luZGV4LmpzPzExNmEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBUaGUgcGVlciBzdG9yZSBpcyB3aGVyZSBsaWJwMnAgc3RvcmVzIGRhdGEgYWJvdXQgdGhlIHBlZXJzIGl0IGhhcyBlbmNvdW50ZXJlZCBvbiB0aGUgbmV0d29yay5cbiAqL1xuaW1wb3J0IHsgUmVjb3JkRW52ZWxvcGUsIFBlZXJSZWNvcmQgfSBmcm9tICdAbGlicDJwL3BlZXItcmVjb3JkJztcbmltcG9ydCBhbGwgZnJvbSAnaXQtYWxsJztcbmltcG9ydCB7IFBlcnNpc3RlbnRTdG9yZSB9IGZyb20gJy4vc3RvcmUuanMnO1xuLyoqXG4gKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiBQZWVyU3RvcmUgdGhhdCBzdG9yZXMgZGF0YSBpbiBhIERhdGFzdG9yZVxuICovXG5leHBvcnQgY2xhc3MgUGVyc2lzdGVudFBlZXJTdG9yZSB7XG4gICAgc3RvcmU7XG4gICAgZXZlbnRzO1xuICAgIHBlZXJJZDtcbiAgICBsb2c7XG4gICAgY29uc3RydWN0b3IoY29tcG9uZW50cywgaW5pdCA9IHt9KSB7XG4gICAgICAgIHRoaXMubG9nID0gY29tcG9uZW50cy5sb2dnZXIuZm9yQ29tcG9uZW50KCdsaWJwMnA6cGVlci1zdG9yZScpO1xuICAgICAgICB0aGlzLmV2ZW50cyA9IGNvbXBvbmVudHMuZXZlbnRzO1xuICAgICAgICB0aGlzLnBlZXJJZCA9IGNvbXBvbmVudHMucGVlcklkO1xuICAgICAgICB0aGlzLnN0b3JlID0gbmV3IFBlcnNpc3RlbnRTdG9yZShjb21wb25lbnRzLCBpbml0KTtcbiAgICB9XG4gICAgYXN5bmMgZm9yRWFjaChmbiwgcXVlcnkpIHtcbiAgICAgICAgdGhpcy5sb2cudHJhY2UoJ2ZvckVhY2ggYXdhaXQgcmVhZCBsb2NrJyk7XG4gICAgICAgIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCB0aGlzLnN0b3JlLmxvY2sucmVhZExvY2soKTtcbiAgICAgICAgdGhpcy5sb2cudHJhY2UoJ2ZvckVhY2ggZ290IHJlYWQgbG9jaycpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZm9yIGF3YWl0IChjb25zdCBwZWVyIG9mIHRoaXMuc3RvcmUuYWxsKHF1ZXJ5KSkge1xuICAgICAgICAgICAgICAgIGZuKHBlZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5sb2cudHJhY2UoJ2ZvckVhY2ggcmVsZWFzZSByZWFkIGxvY2snKTtcbiAgICAgICAgICAgIHJlbGVhc2UoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBhbGwocXVlcnkpIHtcbiAgICAgICAgdGhpcy5sb2cudHJhY2UoJ2FsbCBhd2FpdCByZWFkIGxvY2snKTtcbiAgICAgICAgY29uc3QgcmVsZWFzZSA9IGF3YWl0IHRoaXMuc3RvcmUubG9jay5yZWFkTG9jaygpO1xuICAgICAgICB0aGlzLmxvZy50cmFjZSgnYWxsIGdvdCByZWFkIGxvY2snKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBhbGwodGhpcy5zdG9yZS5hbGwocXVlcnkpKTtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMubG9nLnRyYWNlKCdhbGwgcmVsZWFzZSByZWFkIGxvY2snKTtcbiAgICAgICAgICAgIHJlbGVhc2UoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBkZWxldGUocGVlcklkKSB7XG4gICAgICAgIHRoaXMubG9nLnRyYWNlKCdkZWxldGUgYXdhaXQgd3JpdGUgbG9jaycpO1xuICAgICAgICBjb25zdCByZWxlYXNlID0gYXdhaXQgdGhpcy5zdG9yZS5sb2NrLndyaXRlTG9jaygpO1xuICAgICAgICB0aGlzLmxvZy50cmFjZSgnZGVsZXRlIGdvdCB3cml0ZSBsb2NrJyk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnN0b3JlLmRlbGV0ZShwZWVySWQpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5sb2cudHJhY2UoJ2RlbGV0ZSByZWxlYXNlIHdyaXRlIGxvY2snKTtcbiAgICAgICAgICAgIHJlbGVhc2UoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBoYXMocGVlcklkKSB7XG4gICAgICAgIHRoaXMubG9nLnRyYWNlKCdoYXMgYXdhaXQgcmVhZCBsb2NrJyk7XG4gICAgICAgIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCB0aGlzLnN0b3JlLmxvY2sucmVhZExvY2soKTtcbiAgICAgICAgdGhpcy5sb2cudHJhY2UoJ2hhcyBnb3QgcmVhZCBsb2NrJyk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5zdG9yZS5oYXMocGVlcklkKTtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMubG9nLnRyYWNlKCdoYXMgcmVsZWFzZSByZWFkIGxvY2snKTtcbiAgICAgICAgICAgIHJlbGVhc2UoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBnZXQocGVlcklkKSB7XG4gICAgICAgIHRoaXMubG9nLnRyYWNlKCdnZXQgYXdhaXQgcmVhZCBsb2NrJyk7XG4gICAgICAgIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCB0aGlzLnN0b3JlLmxvY2sucmVhZExvY2soKTtcbiAgICAgICAgdGhpcy5sb2cudHJhY2UoJ2dldCBnb3QgcmVhZCBsb2NrJyk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5zdG9yZS5sb2FkKHBlZXJJZCk7XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLmxvZy50cmFjZSgnZ2V0IHJlbGVhc2UgcmVhZCBsb2NrJyk7XG4gICAgICAgICAgICByZWxlYXNlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgc2F2ZShpZCwgZGF0YSkge1xuICAgICAgICB0aGlzLmxvZy50cmFjZSgnc2F2ZSBhd2FpdCB3cml0ZSBsb2NrJyk7XG4gICAgICAgIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCB0aGlzLnN0b3JlLmxvY2sud3JpdGVMb2NrKCk7XG4gICAgICAgIHRoaXMubG9nLnRyYWNlKCdzYXZlIGdvdCB3cml0ZSBsb2NrJyk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnN0b3JlLnNhdmUoaWQsIGRhdGEpO1xuICAgICAgICAgICAgdGhpcy4jZW1pdElmVXBkYXRlZChpZCwgcmVzdWx0KTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQucGVlcjtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMubG9nLnRyYWNlKCdzYXZlIHJlbGVhc2Ugd3JpdGUgbG9jaycpO1xuICAgICAgICAgICAgcmVsZWFzZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIHBhdGNoKGlkLCBkYXRhKSB7XG4gICAgICAgIHRoaXMubG9nLnRyYWNlKCdwYXRjaCBhd2FpdCB3cml0ZSBsb2NrJyk7XG4gICAgICAgIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCB0aGlzLnN0b3JlLmxvY2sud3JpdGVMb2NrKCk7XG4gICAgICAgIHRoaXMubG9nLnRyYWNlKCdwYXRjaCBnb3Qgd3JpdGUgbG9jaycpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zdG9yZS5wYXRjaChpZCwgZGF0YSk7XG4gICAgICAgICAgICB0aGlzLiNlbWl0SWZVcGRhdGVkKGlkLCByZXN1bHQpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5wZWVyO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5sb2cudHJhY2UoJ3BhdGNoIHJlbGVhc2Ugd3JpdGUgbG9jaycpO1xuICAgICAgICAgICAgcmVsZWFzZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIG1lcmdlKGlkLCBkYXRhKSB7XG4gICAgICAgIHRoaXMubG9nLnRyYWNlKCdtZXJnZSBhd2FpdCB3cml0ZSBsb2NrJyk7XG4gICAgICAgIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCB0aGlzLnN0b3JlLmxvY2sud3JpdGVMb2NrKCk7XG4gICAgICAgIHRoaXMubG9nLnRyYWNlKCdtZXJnZSBnb3Qgd3JpdGUgbG9jaycpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zdG9yZS5tZXJnZShpZCwgZGF0YSk7XG4gICAgICAgICAgICB0aGlzLiNlbWl0SWZVcGRhdGVkKGlkLCByZXN1bHQpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5wZWVyO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5sb2cudHJhY2UoJ21lcmdlIHJlbGVhc2Ugd3JpdGUgbG9jaycpO1xuICAgICAgICAgICAgcmVsZWFzZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGNvbnN1bWVQZWVyUmVjb3JkKGJ1ZiwgZXhwZWN0ZWRQZWVyKSB7XG4gICAgICAgIGNvbnN0IGVudmVsb3BlID0gYXdhaXQgUmVjb3JkRW52ZWxvcGUub3BlbkFuZENlcnRpZnkoYnVmLCBQZWVyUmVjb3JkLkRPTUFJTik7XG4gICAgICAgIGlmIChleHBlY3RlZFBlZXI/LmVxdWFscyhlbnZlbG9wZS5wZWVySWQpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgdGhpcy5sb2coJ2VudmVsb3BlIHBlZXIgaWQgd2FzIG5vdCB0aGUgZXhwZWN0ZWQgcGVlciBpZCAtIGV4cGVjdGVkOiAlcCByZWNlaXZlZDogJXAnLCBleHBlY3RlZFBlZXIsIGVudmVsb3BlLnBlZXJJZCk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGVlclJlY29yZCA9IFBlZXJSZWNvcmQuY3JlYXRlRnJvbVByb3RvYnVmKGVudmVsb3BlLnBheWxvYWQpO1xuICAgICAgICBsZXQgcGVlcjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBlZXIgPSBhd2FpdCB0aGlzLmdldChlbnZlbG9wZS5wZWVySWQpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPT0gJ0VSUl9OT1RfRk9VTkQnKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIGVuc3VyZSBzZXEgaXMgZ3JlYXRlciB0aGFuLCBvciBlcXVhbCB0bywgdGhlIGxhc3QgcmVjZWl2ZWRcbiAgICAgICAgaWYgKHBlZXI/LnBlZXJSZWNvcmRFbnZlbG9wZSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBzdG9yZWRFbnZlbG9wZSA9IGF3YWl0IFJlY29yZEVudmVsb3BlLmNyZWF0ZUZyb21Qcm90b2J1ZihwZWVyLnBlZXJSZWNvcmRFbnZlbG9wZSk7XG4gICAgICAgICAgICBjb25zdCBzdG9yZWRSZWNvcmQgPSBQZWVyUmVjb3JkLmNyZWF0ZUZyb21Qcm90b2J1ZihzdG9yZWRFbnZlbG9wZS5wYXlsb2FkKTtcbiAgICAgICAgICAgIGlmIChzdG9yZWRSZWNvcmQuc2VxTnVtYmVyID49IHBlZXJSZWNvcmQuc2VxTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2coJ3NlcXVlbmNlIG51bWJlciB3YXMgbG93ZXIgb3IgZXF1YWwgdG8gZXhpc3Rpbmcgc2VxdWVuY2UgbnVtYmVyIC0gc3RvcmVkOiAlZCByZWNlaXZlZDogJWQnLCBzdG9yZWRSZWNvcmQuc2VxTnVtYmVyLCBwZWVyUmVjb3JkLnNlcU51bWJlcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMucGF0Y2gocGVlclJlY29yZC5wZWVySWQsIHtcbiAgICAgICAgICAgIHBlZXJSZWNvcmRFbnZlbG9wZTogYnVmLFxuICAgICAgICAgICAgYWRkcmVzc2VzOiBwZWVyUmVjb3JkLm11bHRpYWRkcnMubWFwKG11bHRpYWRkciA9PiAoe1xuICAgICAgICAgICAgICAgIGlzQ2VydGlmaWVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIG11bHRpYWRkclxuICAgICAgICAgICAgfSkpXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgI2VtaXRJZlVwZGF0ZWQoaWQsIHJlc3VsdCkge1xuICAgICAgICBpZiAoIXJlc3VsdC51cGRhdGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucGVlcklkLmVxdWFscyhpZCkpIHtcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzLnNhZmVEaXNwYXRjaEV2ZW50KCdzZWxmOnBlZXI6dXBkYXRlJywgeyBkZXRhaWw6IHJlc3VsdCB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzLnNhZmVEaXNwYXRjaEV2ZW50KCdwZWVyOnVwZGF0ZScsIHsgZGV0YWlsOiByZXN1bHQgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOlsiUmVjb3JkRW52ZWxvcGUiLCJQZWVyUmVjb3JkIiwiYWxsIiwiUGVyc2lzdGVudFN0b3JlIiwiUGVyc2lzdGVudFBlZXJTdG9yZSIsImNvbnN0cnVjdG9yIiwiY29tcG9uZW50cyIsImluaXQiLCJsb2ciLCJsb2dnZXIiLCJmb3JDb21wb25lbnQiLCJldmVudHMiLCJwZWVySWQiLCJzdG9yZSIsImZvckVhY2giLCJmbiIsInF1ZXJ5IiwidHJhY2UiLCJyZWxlYXNlIiwibG9jayIsInJlYWRMb2NrIiwicGVlciIsImRlbGV0ZSIsIndyaXRlTG9jayIsImhhcyIsImdldCIsImxvYWQiLCJzYXZlIiwiaWQiLCJkYXRhIiwicmVzdWx0IiwiZW1pdElmVXBkYXRlZCIsInBhdGNoIiwibWVyZ2UiLCJjb25zdW1lUGVlclJlY29yZCIsImJ1ZiIsImV4cGVjdGVkUGVlciIsImVudmVsb3BlIiwib3BlbkFuZENlcnRpZnkiLCJET01BSU4iLCJlcXVhbHMiLCJwZWVyUmVjb3JkIiwiY3JlYXRlRnJvbVByb3RvYnVmIiwicGF5bG9hZCIsImVyciIsImNvZGUiLCJwZWVyUmVjb3JkRW52ZWxvcGUiLCJzdG9yZWRFbnZlbG9wZSIsInN0b3JlZFJlY29yZCIsInNlcU51bWJlciIsImFkZHJlc3NlcyIsIm11bHRpYWRkcnMiLCJtYXAiLCJtdWx0aWFkZHIiLCJpc0NlcnRpZmllZCIsInVwZGF0ZWQiLCJzYWZlRGlzcGF0Y2hFdmVudCIsImRldGFpbCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/peer-store/dist/src/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/peer-store/dist/src/pb/peer.js":
/*!*************************************************************!*\
!*** ./node_modules/@libp2p/peer-store/dist/src/pb/peer.js ***!
\*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Address: () => (/* binding */ Address),\n/* harmony export */ Peer: () => (/* binding */ Peer),\n/* harmony export */ Tag: () => (/* binding */ Tag)\n/* harmony export */ });\n/* harmony import */ var protons_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! protons-runtime */ \"(ssr)/./node_modules/protons-runtime/dist/src/index.js\");\n/* eslint-disable import/export */ /* eslint-disable complexity */ /* eslint-disable @typescript-eslint/no-namespace */ /* eslint-disable @typescript-eslint/no-unnecessary-boolean-literal-compare */ /* eslint-disable @typescript-eslint/no-empty-interface */ \nvar Peer;\n(function(Peer) {\n let Peer$metadataEntry;\n (function(Peer$metadataEntry) {\n let _codec;\n Peer$metadataEntry.codec = ()=>{\n if (_codec == null) {\n _codec = (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.message)((obj, w, opts = {})=>{\n if (opts.lengthDelimited !== false) {\n w.fork();\n }\n if (obj.key != null && obj.key !== \"\") {\n w.uint32(10);\n w.string(obj.key);\n }\n if (obj.value != null && obj.value.byteLength > 0) {\n w.uint32(18);\n w.bytes(obj.value);\n }\n if (opts.lengthDelimited !== false) {\n w.ldelim();\n }\n }, (reader, length)=>{\n const obj = {\n key: \"\",\n value: new Uint8Array(0)\n };\n const end = length == null ? reader.len : reader.pos + length;\n while(reader.pos < end){\n const tag = reader.uint32();\n switch(tag >>> 3){\n case 1:\n obj.key = reader.string();\n break;\n case 2:\n obj.value = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return obj;\n });\n }\n return _codec;\n };\n Peer$metadataEntry.encode = (obj)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.encodeMessage)(obj, Peer$metadataEntry.codec());\n };\n Peer$metadataEntry.decode = (buf)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.decodeMessage)(buf, Peer$metadataEntry.codec());\n };\n })(Peer$metadataEntry = Peer.Peer$metadataEntry || (Peer.Peer$metadataEntry = {}));\n let Peer$tagsEntry;\n (function(Peer$tagsEntry) {\n let _codec;\n Peer$tagsEntry.codec = ()=>{\n if (_codec == null) {\n _codec = (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.message)((obj, w, opts = {})=>{\n if (opts.lengthDelimited !== false) {\n w.fork();\n }\n if (obj.key != null && obj.key !== \"\") {\n w.uint32(10);\n w.string(obj.key);\n }\n if (obj.value != null) {\n w.uint32(18);\n Tag.codec().encode(obj.value, w);\n }\n if (opts.lengthDelimited !== false) {\n w.ldelim();\n }\n }, (reader, length)=>{\n const obj = {\n key: \"\"\n };\n const end = length == null ? reader.len : reader.pos + length;\n while(reader.pos < end){\n const tag = reader.uint32();\n switch(tag >>> 3){\n case 1:\n obj.key = reader.string();\n break;\n case 2:\n obj.value = Tag.codec().decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return obj;\n });\n }\n return _codec;\n };\n Peer$tagsEntry.encode = (obj)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.encodeMessage)(obj, Peer$tagsEntry.codec());\n };\n Peer$tagsEntry.decode = (buf)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.decodeMessage)(buf, Peer$tagsEntry.codec());\n };\n })(Peer$tagsEntry = Peer.Peer$tagsEntry || (Peer.Peer$tagsEntry = {}));\n let _codec;\n Peer.codec = ()=>{\n if (_codec == null) {\n _codec = (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.message)((obj, w, opts = {})=>{\n if (opts.lengthDelimited !== false) {\n w.fork();\n }\n if (obj.addresses != null) {\n for (const value of obj.addresses){\n w.uint32(10);\n Address.codec().encode(value, w);\n }\n }\n if (obj.protocols != null) {\n for (const value of obj.protocols){\n w.uint32(18);\n w.string(value);\n }\n }\n if (obj.publicKey != null) {\n w.uint32(34);\n w.bytes(obj.publicKey);\n }\n if (obj.peerRecordEnvelope != null) {\n w.uint32(42);\n w.bytes(obj.peerRecordEnvelope);\n }\n if (obj.metadata != null && obj.metadata.size !== 0) {\n for (const [key, value] of obj.metadata.entries()){\n w.uint32(50);\n Peer.Peer$metadataEntry.codec().encode({\n key,\n value\n }, w);\n }\n }\n if (obj.tags != null && obj.tags.size !== 0) {\n for (const [key, value] of obj.tags.entries()){\n w.uint32(58);\n Peer.Peer$tagsEntry.codec().encode({\n key,\n value\n }, w);\n }\n }\n if (opts.lengthDelimited !== false) {\n w.ldelim();\n }\n }, (reader, length)=>{\n const obj = {\n addresses: [],\n protocols: [],\n metadata: new Map(),\n tags: new Map()\n };\n const end = length == null ? reader.len : reader.pos + length;\n while(reader.pos < end){\n const tag = reader.uint32();\n switch(tag >>> 3){\n case 1:\n obj.addresses.push(Address.codec().decode(reader, reader.uint32()));\n break;\n case 2:\n obj.protocols.push(reader.string());\n break;\n case 4:\n obj.publicKey = reader.bytes();\n break;\n case 5:\n obj.peerRecordEnvelope = reader.bytes();\n break;\n case 6:\n {\n const entry = Peer.Peer$metadataEntry.codec().decode(reader, reader.uint32());\n obj.metadata.set(entry.key, entry.value);\n break;\n }\n case 7:\n {\n const entry = Peer.Peer$tagsEntry.codec().decode(reader, reader.uint32());\n obj.tags.set(entry.key, entry.value);\n break;\n }\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return obj;\n });\n }\n return _codec;\n };\n Peer.encode = (obj)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.encodeMessage)(obj, Peer.codec());\n };\n Peer.decode = (buf)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.decodeMessage)(buf, Peer.codec());\n };\n})(Peer || (Peer = {}));\nvar Address;\n(function(Address) {\n let _codec;\n Address.codec = ()=>{\n if (_codec == null) {\n _codec = (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.message)((obj, w, opts = {})=>{\n if (opts.lengthDelimited !== false) {\n w.fork();\n }\n if (obj.multiaddr != null && obj.multiaddr.byteLength > 0) {\n w.uint32(10);\n w.bytes(obj.multiaddr);\n }\n if (obj.isCertified != null) {\n w.uint32(16);\n w.bool(obj.isCertified);\n }\n if (opts.lengthDelimited !== false) {\n w.ldelim();\n }\n }, (reader, length)=>{\n const obj = {\n multiaddr: new Uint8Array(0)\n };\n const end = length == null ? reader.len : reader.pos + length;\n while(reader.pos < end){\n const tag = reader.uint32();\n switch(tag >>> 3){\n case 1:\n obj.multiaddr = reader.bytes();\n break;\n case 2:\n obj.isCertified = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return obj;\n });\n }\n return _codec;\n };\n Address.encode = (obj)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.encodeMessage)(obj, Address.codec());\n };\n Address.decode = (buf)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.decodeMessage)(buf, Address.codec());\n };\n})(Address || (Address = {}));\nvar Tag;\n(function(Tag) {\n let _codec;\n Tag.codec = ()=>{\n if (_codec == null) {\n _codec = (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.message)((obj, w, opts = {})=>{\n if (opts.lengthDelimited !== false) {\n w.fork();\n }\n if (obj.value != null && obj.value !== 0) {\n w.uint32(8);\n w.uint32(obj.value);\n }\n if (obj.expiry != null) {\n w.uint32(16);\n w.uint64(obj.expiry);\n }\n if (opts.lengthDelimited !== false) {\n w.ldelim();\n }\n }, (reader, length)=>{\n const obj = {\n value: 0\n };\n const end = length == null ? reader.len : reader.pos + length;\n while(reader.pos < end){\n const tag = reader.uint32();\n switch(tag >>> 3){\n case 1:\n obj.value = reader.uint32();\n break;\n case 2:\n obj.expiry = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return obj;\n });\n }\n return _codec;\n };\n Tag.encode = (obj)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.encodeMessage)(obj, Tag.codec());\n };\n Tag.decode = (buf)=>{\n return (0,protons_runtime__WEBPACK_IMPORTED_MODULE_0__.decodeMessage)(buf, Tag.codec());\n };\n})(Tag || (Tag = {})); //# sourceMappingURL=peer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLXN0b3JlL2Rpc3Qvc3JjL3BiL3BlZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLGdDQUFnQyxHQUNoQyw2QkFBNkIsR0FDN0Isa0RBQWtELEdBQ2xELDRFQUE0RSxHQUM1RSx3REFBd0QsR0FDZ0I7QUFDakUsSUFBSUcsS0FBSztBQUNmLFVBQVVBLElBQUk7SUFDWCxJQUFJQztJQUNILFVBQVVBLGtCQUFrQjtRQUN6QixJQUFJQztRQUNKRCxtQkFBbUJFLEtBQUssR0FBRztZQUN2QixJQUFJRCxVQUFVLE1BQU07Z0JBQ2hCQSxTQUFTSCx3REFBT0EsQ0FBQyxDQUFDSyxLQUFLQyxHQUFHQyxPQUFPLENBQUMsQ0FBQztvQkFDL0IsSUFBSUEsS0FBS0MsZUFBZSxLQUFLLE9BQU87d0JBQ2hDRixFQUFFRyxJQUFJO29CQUNWO29CQUNBLElBQUtKLElBQUlLLEdBQUcsSUFBSSxRQUFRTCxJQUFJSyxHQUFHLEtBQUssSUFBSzt3QkFDckNKLEVBQUVLLE1BQU0sQ0FBQzt3QkFDVEwsRUFBRU0sTUFBTSxDQUFDUCxJQUFJSyxHQUFHO29CQUNwQjtvQkFDQSxJQUFLTCxJQUFJUSxLQUFLLElBQUksUUFBUVIsSUFBSVEsS0FBSyxDQUFDQyxVQUFVLEdBQUcsR0FBSTt3QkFDakRSLEVBQUVLLE1BQU0sQ0FBQzt3QkFDVEwsRUFBRVMsS0FBSyxDQUFDVixJQUFJUSxLQUFLO29CQUNyQjtvQkFDQSxJQUFJTixLQUFLQyxlQUFlLEtBQUssT0FBTzt3QkFDaENGLEVBQUVVLE1BQU07b0JBQ1o7Z0JBQ0osR0FBRyxDQUFDQyxRQUFRQztvQkFDUixNQUFNYixNQUFNO3dCQUNSSyxLQUFLO3dCQUNMRyxPQUFPLElBQUlNLFdBQVc7b0JBQzFCO29CQUNBLE1BQU1DLE1BQU1GLFVBQVUsT0FBT0QsT0FBT0ksR0FBRyxHQUFHSixPQUFPSyxHQUFHLEdBQUdKO29CQUN2RCxNQUFPRCxPQUFPSyxHQUFHLEdBQUdGLElBQUs7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InNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvcGVlci1zdG9yZS9kaXN0L3NyYy9wYi9wZWVyLmpzPzY1ZTQiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L2V4cG9ydCAqL1xuLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWJvb2xlYW4tbGl0ZXJhbC1jb21wYXJlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlICovXG5pbXBvcnQgeyBlbmNvZGVNZXNzYWdlLCBkZWNvZGVNZXNzYWdlLCBtZXNzYWdlIH0gZnJvbSAncHJvdG9ucy1ydW50aW1lJztcbmV4cG9ydCB2YXIgUGVlcjtcbihmdW5jdGlvbiAoUGVlcikge1xuICAgIGxldCBQZWVyJG1ldGFkYXRhRW50cnk7XG4gICAgKGZ1bmN0aW9uIChQZWVyJG1ldGFkYXRhRW50cnkpIHtcbiAgICAgICAgbGV0IF9jb2RlYztcbiAgICAgICAgUGVlciRtZXRhZGF0YUVudHJ5LmNvZGVjID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKF9jb2RlYyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgX2NvZGVjID0gbWVzc2FnZSgob2JqLCB3LCBvcHRzID0ge30pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdHMubGVuZ3RoRGVsaW1pdGVkICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdy5mb3JrKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKChvYmoua2V5ICE9IG51bGwgJiYgb2JqLmtleSAhPT0gJycpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3LnVpbnQzMigxMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB3LnN0cmluZyhvYmoua2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoKG9iai52YWx1ZSAhPSBudWxsICYmIG9iai52YWx1ZS5ieXRlTGVuZ3RoID4gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHcudWludDMyKDE4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHcuYnl0ZXMob2JqLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3B0cy5sZW5ndGhEZWxpbWl0ZWQgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3LmxkZWxpbSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgKHJlYWRlciwgbGVuZ3RoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9iaiA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbmV3IFVpbnQ4QXJyYXkoMClcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kID0gbGVuZ3RoID09IG51bGwgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmoua2V5ID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iai52YWx1ZSA9IHJlYWRlci5ieXRlcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvYmo7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX2NvZGVjO1xuICAgICAgICB9O1xuICAgICAgICBQZWVyJG1ldGFkYXRhRW50cnkuZW5jb2RlID0gKG9iaikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGVuY29kZU1lc3NhZ2Uob2JqLCBQZWVyJG1ldGFkYXRhRW50cnkuY29kZWMoKSk7XG4gICAgICAgIH07XG4gICAgICAgIFBlZXIkbWV0YWRhdGFFbnRyeS5kZWNvZGUgPSAoYnVmKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZGVjb2RlTWVzc2FnZShidWYsIFBlZXIkbWV0YWRhdGFFbnRyeS5jb2RlYygpKTtcbiAgICAgICAgfTtcbiAgICB9KShQZWVyJG1ldGFkYXRhRW50cnkgPSBQZWVyLlBlZXIkbWV0YWRhdGFFbnRyeSB8fCAoUGVlci5QZWVyJG1ldGFkYXRhRW50cnkgPSB7fSkpO1xuICAgIGxldCBQZWVyJHRhZ3NFbnRyeTtcbiAgICAoZnVuY3Rpb24gKFBlZXIkdGFnc0VudHJ5KSB7XG4gICAgICAgIGxldCBfY29kZWM7XG4gICAgICAgIFBlZXIkdGFnc0VudHJ5LmNvZGVjID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKF9jb2RlYyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgX2NvZGVjID0gbWVzc2FnZSgob2JqLCB3LCBvcHRzID0ge30pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdHMubGVuZ3RoRGVsaW1pdGVkICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdy5mb3JrKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKChvYmoua2V5ICE9IG51bGwgJiYgb2JqLmtleSAhPT0gJycpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3LnVpbnQzMigxMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB3LnN0cmluZyhvYmoua2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob2JqLnZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHcudWludDMyKDE4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFRhZy5jb2RlYygpLmVuY29kZShvYmoudmFsdWUsIHcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHRzLmxlbmd0aERlbGltaXRlZCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHcubGRlbGltKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCAocmVhZGVyLCBsZW5ndGgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2JqID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAnJ1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmQgPSBsZW5ndGggPT0gbnVsbCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICB3aGlsZSAocmVhZGVyLnBvcyA8IGVuZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iai5rZXkgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqLnZhbHVlID0gVGFnLmNvZGVjKCkuZGVjb2RlKHJlYWRlciwgcmVhZGVyLnVpbnQzMigpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLnNraXBUeXBlKHRhZyAmIDcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9jb2RlYztcbiAgICAgICAgfTtcbiAgICAgICAgUGVlciR0YWdzRW50cnkuZW5jb2RlID0gKG9iaikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGVuY29kZU1lc3NhZ2Uob2JqLCBQZWVyJHRhZ3NFbnRyeS5jb2RlYygpKTtcbiAgICAgICAgfTtcbiAgICAgICAgUGVlciR0YWdzRW50cnkuZGVjb2RlID0gKGJ1ZikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGRlY29kZU1lc3NhZ2UoYnVmLCBQZWVyJHRhZ3NFbnRyeS5jb2RlYygpKTtcbiAgICAgICAgfTtcbiAgICB9KShQZWVyJHRhZ3NFbnRyeSA9IFBlZXIuUGVlciR0YWdzRW50cnkgfHwgKFBlZXIuUGVlciR0YWdzRW50cnkgPSB7fSkpO1xuICAgIGxldCBfY29kZWM7XG4gICAgUGVlci5jb2RlYyA9ICgpID0+IHtcbiAgICAgICAgaWYgKF9jb2RlYyA9PSBudWxsKSB7XG4gICAgICAgICAgICBfY29kZWMgPSBtZXNzYWdlKChvYmosIHcsIG9wdHMgPSB7fSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChvcHRzLmxlbmd0aERlbGltaXRlZCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdy5mb3JrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChvYmouYWRkcmVzc2VzICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBvYmouYWRkcmVzc2VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3LnVpbnQzMigxMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzLmNvZGVjKCkuZW5jb2RlKHZhbHVlLCB3KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAob2JqLnByb3RvY29scyAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdmFsdWUgb2Ygb2JqLnByb3RvY29scykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdy51aW50MzIoMTgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdy5zdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChvYmoucHVibGljS2V5ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdy51aW50MzIoMzQpO1xuICAgICAgICAgICAgICAgICAgICB3LmJ5dGVzKG9iai5wdWJsaWNLZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAob2JqLnBlZXJSZWNvcmRFbnZlbG9wZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHcudWludDMyKDQyKTtcbiAgICAgICAgICAgICAgICAgICAgdy5ieXRlcyhvYmoucGVlclJlY29yZEVudmVsb3BlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG9iai5tZXRhZGF0YSAhPSBudWxsICYmIG9iai5tZXRhZGF0YS5zaXplICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIG9iai5tZXRhZGF0YS5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHcudWludDMyKDUwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFBlZXIuUGVlciRtZXRhZGF0YUVudHJ5LmNvZGVjKCkuZW5jb2RlKHsga2V5LCB2YWx1ZSB9LCB3KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAob2JqLnRhZ3MgIT0gbnVsbCAmJiBvYmoudGFncy5zaXplICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIG9iai50YWdzLmVudHJpZXMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdy51aW50MzIoNTgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgUGVlci5QZWVyJHRhZ3NFbnRyeS5jb2RlYygpLmVuY29kZSh7IGtleSwgdmFsdWUgfSwgdyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG9wdHMubGVuZ3RoRGVsaW1pdGVkICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICB3LmxkZWxpbSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIChyZWFkZXIsIGxlbmd0aCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9iaiA9IHtcbiAgICAgICAgICAgICAgICAgICAgYWRkcmVzc2VzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgcHJvdG9jb2xzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IG5ldyBNYXAoKSxcbiAgICAgICAgICAgICAgICAgICAgdGFnczogbmV3IE1hcCgpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmQgPSBsZW5ndGggPT0gbnVsbCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgICAgICAgICAgICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmouYWRkcmVzc2VzLnB1c2goQWRkcmVzcy5jb2RlYygpLmRlY29kZShyZWFkZXIsIHJlYWRlci51aW50MzIoKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iai5wcm90b2NvbHMucHVzaChyZWFkZXIuc3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iai5wdWJsaWNLZXkgPSByZWFkZXIuYnl0ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmoucGVlclJlY29yZEVudmVsb3BlID0gcmVhZGVyLmJ5dGVzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDY6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IFBlZXIuUGVlciRtZXRhZGF0YUVudHJ5LmNvZGVjKCkuZGVjb2RlKHJlYWRlciwgcmVhZGVyLnVpbnQzMigpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmoubWV0YWRhdGEuc2V0KGVudHJ5LmtleSwgZW50cnkudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA3OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSBQZWVyLlBlZXIkdGFnc0VudHJ5LmNvZGVjKCkuZGVjb2RlKHJlYWRlciwgcmVhZGVyLnVpbnQzMigpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmoudGFncy5zZXQoZW50cnkua2V5LCBlbnRyeS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9jb2RlYztcbiAgICB9O1xuICAgIFBlZXIuZW5jb2RlID0gKG9iaikgPT4ge1xuICAgICAgICByZXR1cm4gZW5jb2RlTWVzc2FnZShvYmosIFBlZXIuY29kZWMoKSk7XG4gICAgfTtcbiAgICBQZWVyLmRlY29kZSA9IChidWYpID0+IHtcbiAgICAgICAgcmV0dXJuIGRlY29kZU1lc3NhZ2UoYnVmLCBQZWVyLmNvZGVjKCkpO1xuICAgIH07XG59KShQZWVyIHx8IChQZWVyID0ge30pKTtcbmV4cG9ydCB2YXIgQWRkcmVzcztcbihmdW5jdGlvbiAoQWRkcmVzcykge1xuICAgIGxldCBfY29kZWM7XG4gICAgQWRkcmVzcy5jb2RlYyA9ICgpID0+IHtcbiAgICAgICAgaWYgKF9jb2RlYyA9PSBudWxsKSB7XG4gICAgICAgICAgICBfY29kZWMgPSBtZXNzYWdlKChvYmosIHcsIG9wdHMgPSB7fSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChvcHRzLmxlbmd0aERlbGltaXRlZCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdy5mb3JrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICgob2JqLm11bHRpYWRkciAhPSBudWxsICYmIG9iai5tdWx0aWFkZHIuYnl0ZUxlbmd0aCA+IDApKSB7XG4gICAgICAgICAgICAgICAgICAgIHcudWludDMyKDEwKTtcbiAgICAgICAgICAgICAgICAgICAgdy5ieXRlcyhvYmoubXVsdGlhZGRyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG9iai5pc0NlcnRpZmllZCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHcudWludDMyKDE2KTtcbiAgICAgICAgICAgICAgICAgICAgdy5ib29sKG9iai5pc0NlcnRpZmllZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChvcHRzLmxlbmd0aERlbGltaXRlZCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdy5sZGVsaW0oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAocmVhZGVyLCBsZW5ndGgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvYmogPSB7XG4gICAgICAgICAgICAgICAgICAgIG11bHRpYWRkcjogbmV3IFVpbnQ4QXJyYXkoMClcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IGxlbmd0aCA9PSBudWxsID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgICAgICAgICAgICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iai5tdWx0aWFkZHIgPSByZWFkZXIuYnl0ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmouaXNDZXJ0aWZpZWQgPSByZWFkZXIuYm9vbCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfY29kZWM7XG4gICAgfTtcbiAgICBBZGRyZXNzLmVuY29kZSA9IChvYmopID0+IHtcbiAgICAgICAgcmV0dXJuIGVuY29kZU1lc3NhZ2Uob2JqLCBBZGRyZXNzLmNvZGVjKCkpO1xuICAgIH07XG4gICAgQWRkcmVzcy5kZWNvZGUgPSAoYnVmKSA9PiB7XG4gICAgICAgIHJldHVybiBkZWNvZGVNZXNzYWdlKGJ1ZiwgQWRkcmVzcy5jb2RlYygpKTtcbiAgICB9O1xufSkoQWRkcmVzcyB8fCAoQWRkcmVzcyA9IHt9KSk7XG5leHBvcnQgdmFyIFRhZztcbihmdW5jdGlvbiAoVGFnKSB7XG4gICAgbGV0IF9jb2RlYztcbiAgICBUYWcuY29kZWMgPSAoKSA9PiB7XG4gICAgICAgIGlmIChfY29kZWMgPT0gbnVsbCkge1xuICAgICAgICAgICAgX2NvZGVjID0gbWVzc2FnZSgob2JqLCB3LCBvcHRzID0ge30pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAob3B0cy5sZW5ndGhEZWxpbWl0ZWQgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHcuZm9yaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoKG9iai52YWx1ZSAhPSBudWxsICYmIG9iai52YWx1ZSAhPT0gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdy51aW50MzIoOCk7XG4gICAgICAgICAgICAgICAgICAgIHcudWludDMyKG9iai52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChvYmouZXhwaXJ5ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdy51aW50MzIoMTYpO1xuICAgICAgICAgICAgICAgICAgICB3LnVpbnQ2NChvYmouZXhwaXJ5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG9wdHMubGVuZ3RoRGVsaW1pdGVkICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICB3LmxkZWxpbSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIChyZWFkZXIsIGxlbmd0aCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9iaiA9IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IDBcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IGxlbmd0aCA9PSBudWxsID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgICAgICAgICAgICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iai52YWx1ZSA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmouZXhwaXJ5ID0gcmVhZGVyLnVpbnQ2NCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfY29kZWM7XG4gICAgfTtcbiAgICBUYWcuZW5jb2RlID0gKG9iaikgPT4ge1xuICAgICAgICByZXR1cm4gZW5jb2RlTWVzc2FnZShvYmosIFRhZy5jb2RlYygpKTtcbiAgICB9O1xuICAgIFRhZy5kZWNvZGUgPSAoYnVmKSA9PiB7XG4gICAgICAgIHJldHVybiBkZWNvZGVNZXNzYWdlKGJ1ZiwgVGFnLmNvZGVjKCkpO1xuICAgIH07XG59KShUYWcgfHwgKFRhZyA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1wZWVyLmpzLm1hcCJdLCJuYW1lcyI6WyJlbmNvZGVNZXNzYWdlIiwiZGVjb2RlTWVzc2FnZSIsIm1lc3NhZ2UiLCJQZWVyIiwiUGVlciRtZXRhZGF0YUVudHJ5IiwiX2NvZGVjIiwiY29kZWMiLCJvYmoiLCJ3Iiwib3B0cyIsImxlbmd0aERlbGltaXRlZCIsImZvcmsiLCJrZXkiLCJ1aW50MzIiLCJzdHJpbmciLCJ2YWx1ZSIsImJ5dGVMZW5ndGgiLCJieXRlcyIsImxkZWxpbSIsInJlYWRlciIsImxlbmd0aCIsIlVpbnQ4QXJyYXkiLCJlbmQiLCJsZW4iLCJwb3MiLCJ0YWciLCJza2lwVHlwZSIsImVuY29kZSIsImRlY29kZSIsImJ1ZiIsIlBlZXIkdGFnc0VudHJ5IiwiVGFnIiwiYWRkcmVzc2VzIiwiQWRkcmVzcyIsInByb3RvY29scyIsInB1YmxpY0tleSIsInBlZXJSZWNvcmRFbnZlbG9wZSIsIm1ldGFkYXRhIiwic2l6ZSIsImVudHJpZXMiLCJ0YWdzIiwiTWFwIiwicHVzaCIsImVudHJ5Iiwic2V0IiwibXVsdGlhZGRyIiwiaXNDZXJ0aWZpZWQiLCJib29sIiwiZXhwaXJ5IiwidWludDY0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/peer-store/dist/src/pb/peer.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/peer-store/dist/src/store.js":
/*!***********************************************************!*\
!*** ./node_modules/@libp2p/peer-store/dist/src/store.js ***!
\***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PersistentStore: () => (/* binding */ PersistentStore)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var _libp2p_peer_collections__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @libp2p/peer-collections */ \"(ssr)/./node_modules/@libp2p/peer-collections/dist/src/map.js\");\n/* harmony import */ var _libp2p_peer_id__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @libp2p/peer-id */ \"(ssr)/./node_modules/@libp2p/peer-id/dist/src/index.js\");\n/* harmony import */ var mortice__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mortice */ \"(ssr)/./node_modules/mortice/dist/src/index.js\");\n/* harmony import */ var multiformats_bases_base32__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! multiformats/bases/base32 */ \"(ssr)/./node_modules/multiformats/dist/src/bases/base32.js\");\n/* harmony import */ var uint8arrays_equals__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uint8arrays/equals */ \"(ssr)/./node_modules/uint8arrays/dist/src/equals.js\");\n/* harmony import */ var _errors_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./errors.js */ \"(ssr)/./node_modules/@libp2p/peer-store/dist/src/errors.js\");\n/* harmony import */ var _pb_peer_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./pb/peer.js */ \"(ssr)/./node_modules/@libp2p/peer-store/dist/src/pb/peer.js\");\n/* harmony import */ var _utils_bytes_to_peer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/bytes-to-peer.js */ \"(ssr)/./node_modules/@libp2p/peer-store/dist/src/utils/bytes-to-peer.js\");\n/* harmony import */ var _utils_peer_id_to_datastore_key_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/peer-id-to-datastore-key.js */ \"(ssr)/./node_modules/@libp2p/peer-store/dist/src/utils/peer-id-to-datastore-key.js\");\n/* harmony import */ var _utils_to_peer_pb_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/to-peer-pb.js */ \"(ssr)/./node_modules/@libp2p/peer-store/dist/src/utils/to-peer-pb.js\");\n\n\n\n\n\n\n\n\n\n\n\nfunction decodePeer(key, value, cache) {\n // /peers/${peer-id-as-libp2p-key-cid-string-in-base-32}\n const base32Str = key.toString().split(\"/\")[2];\n const buf = multiformats_bases_base32__WEBPACK_IMPORTED_MODULE_1__.base32.decode(base32Str);\n const peerId = (0,_libp2p_peer_id__WEBPACK_IMPORTED_MODULE_3__.peerIdFromBytes)(buf);\n const cached = cache.get(peerId);\n if (cached != null) {\n return cached;\n }\n const peer = (0,_utils_bytes_to_peer_js__WEBPACK_IMPORTED_MODULE_4__.bytesToPeer)(peerId, value);\n cache.set(peerId, peer);\n return peer;\n}\nfunction mapQuery(query, cache) {\n if (query == null) {\n return {};\n }\n return {\n prefix: _utils_peer_id_to_datastore_key_js__WEBPACK_IMPORTED_MODULE_5__.NAMESPACE_COMMON,\n filters: (query.filters ?? []).map((fn)=>({ key, value })=>{\n return fn(decodePeer(key, value, cache));\n }),\n orders: (query.orders ?? []).map((fn)=>(a, b)=>{\n return fn(decodePeer(a.key, a.value, cache), decodePeer(b.key, b.value, cache));\n })\n };\n}\nclass PersistentStore {\n constructor(components, init = {}){\n this.peerId = components.peerId;\n this.datastore = components.datastore;\n this.addressFilter = init.addressFilter;\n this.lock = (0,mortice__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n name: \"peer-store\",\n singleProcess: true\n });\n }\n async has(peerId) {\n return this.datastore.has((0,_utils_peer_id_to_datastore_key_js__WEBPACK_IMPORTED_MODULE_5__.peerIdToDatastoreKey)(peerId));\n }\n async delete(peerId) {\n if (this.peerId.equals(peerId)) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_6__.CodeError(\"Cannot delete self peer\", _errors_js__WEBPACK_IMPORTED_MODULE_7__.codes.ERR_INVALID_PARAMETERS);\n }\n await this.datastore.delete((0,_utils_peer_id_to_datastore_key_js__WEBPACK_IMPORTED_MODULE_5__.peerIdToDatastoreKey)(peerId));\n }\n async load(peerId) {\n const buf = await this.datastore.get((0,_utils_peer_id_to_datastore_key_js__WEBPACK_IMPORTED_MODULE_5__.peerIdToDatastoreKey)(peerId));\n return (0,_utils_bytes_to_peer_js__WEBPACK_IMPORTED_MODULE_4__.bytesToPeer)(peerId, buf);\n }\n async save(peerId, data) {\n const { existingBuf, existingPeer } = await this.#findExistingPeer(peerId);\n const peerPb = await (0,_utils_to_peer_pb_js__WEBPACK_IMPORTED_MODULE_8__.toPeerPB)(peerId, data, \"patch\", {\n addressFilter: this.addressFilter\n });\n return this.#saveIfDifferent(peerId, peerPb, existingBuf, existingPeer);\n }\n async patch(peerId, data) {\n const { existingBuf, existingPeer } = await this.#findExistingPeer(peerId);\n const peerPb = await (0,_utils_to_peer_pb_js__WEBPACK_IMPORTED_MODULE_8__.toPeerPB)(peerId, data, \"patch\", {\n addressFilter: this.addressFilter,\n existingPeer\n });\n return this.#saveIfDifferent(peerId, peerPb, existingBuf, existingPeer);\n }\n async merge(peerId, data) {\n const { existingBuf, existingPeer } = await this.#findExistingPeer(peerId);\n const peerPb = await (0,_utils_to_peer_pb_js__WEBPACK_IMPORTED_MODULE_8__.toPeerPB)(peerId, data, \"merge\", {\n addressFilter: this.addressFilter,\n existingPeer\n });\n return this.#saveIfDifferent(peerId, peerPb, existingBuf, existingPeer);\n }\n async *all(query) {\n const peerCache = new _libp2p_peer_collections__WEBPACK_IMPORTED_MODULE_9__.PeerMap();\n for await (const { key, value } of this.datastore.query(mapQuery(query ?? {}, peerCache))){\n const peer = decodePeer(key, value, peerCache);\n if (peer.id.equals(this.peerId)) {\n continue;\n }\n yield peer;\n }\n }\n async #findExistingPeer(peerId) {\n try {\n const existingBuf = await this.datastore.get((0,_utils_peer_id_to_datastore_key_js__WEBPACK_IMPORTED_MODULE_5__.peerIdToDatastoreKey)(peerId));\n const existingPeer = (0,_utils_bytes_to_peer_js__WEBPACK_IMPORTED_MODULE_4__.bytesToPeer)(peerId, existingBuf);\n return {\n existingBuf,\n existingPeer\n };\n } catch (err) {\n if (err.code !== \"ERR_NOT_FOUND\") {\n throw err;\n }\n }\n return {};\n }\n async #saveIfDifferent(peerId, peer, existingBuf, existingPeer) {\n const buf = _pb_peer_js__WEBPACK_IMPORTED_MODULE_10__.Peer.encode(peer);\n if (existingBuf != null && (0,uint8arrays_equals__WEBPACK_IMPORTED_MODULE_2__.equals)(buf, existingBuf)) {\n return {\n peer: (0,_utils_bytes_to_peer_js__WEBPACK_IMPORTED_MODULE_4__.bytesToPeer)(peerId, buf),\n previous: existingPeer,\n updated: false\n };\n }\n await this.datastore.put((0,_utils_peer_id_to_datastore_key_js__WEBPACK_IMPORTED_MODULE_5__.peerIdToDatastoreKey)(peerId), buf);\n return {\n peer: (0,_utils_bytes_to_peer_js__WEBPACK_IMPORTED_MODULE_4__.bytesToPeer)(peerId, buf),\n previous: existingPeer,\n updated: true\n };\n }\n} //# sourceMappingURL=store.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLXN0b3JlL2Rpc3Qvc3JjL3N0b3JlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUE4QztBQUNLO0FBQ0Q7QUFDaEI7QUFDaUI7QUFDYTtBQUM1QjtBQUNVO0FBQ1M7QUFDc0M7QUFDNUM7QUFDakQsU0FBU2MsV0FBV0MsR0FBRyxFQUFFQyxLQUFLLEVBQUVDLEtBQUs7SUFDakMsd0RBQXdEO0lBQ3hELE1BQU1DLFlBQVlILElBQUlJLFFBQVEsR0FBR0MsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO0lBQzlDLE1BQU1DLE1BQU1qQiw2REFBTUEsQ0FBQ2tCLE1BQU0sQ0FBQ0o7SUFDMUIsTUFBTUssU0FBU3JCLGdFQUFlQSxDQUFDbUI7SUFDL0IsTUFBTUcsU0FBU1AsTUFBTVEsR0FBRyxDQUFDRjtJQUN6QixJQUFJQyxVQUFVLE1BQU07UUFDaEIsT0FBT0E7SUFDWDtJQUNBLE1BQU1FLE9BQU9oQixvRUFBV0EsQ0FBQ2EsUUFBUVA7SUFDakNDLE1BQU1VLEdBQUcsQ0FBQ0osUUFBUUc7SUFDbEIsT0FBT0E7QUFDWDtBQUNBLFNBQVNFLFNBQVNDLEtBQUssRUFBRVosS0FBSztJQUMxQixJQUFJWSxTQUFTLE1BQU07UUFDZixPQUFPLENBQUM7SUFDWjtJQUNBLE9BQU87UUFDSEMsUUFBUW5CLGdGQUFnQkE7UUFDeEJvQixTQUFTLENBQUNGLE1BQU1FLE9BQU8sSUFBSSxFQUFFLEVBQUVDLEdBQUcsQ0FBQ0MsQ0FBQUEsS0FBTSxDQUFDLEVBQUVsQixHQUFHLEVBQUVDLEtBQUssRUFBRTtnQkFDcEQsT0FBT2lCLEdBQUduQixXQUFXQyxLQUFLQyxPQUFPQztZQUNyQztRQUNBaUIsUUFBUSxDQUFDTCxNQUFNSyxNQUFNLElBQUksRUFBRSxFQUFFRixHQUFHLENBQUNDLENBQUFBLEtBQU0sQ0FBQ0UsR0FBR0M7Z0JBQ3ZDLE9BQU9ILEdBQUduQixXQUFXcUIsRUFBRXBCLEdBQUcsRUFBRW9CLEVB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QztZQUNwQyxJQUFJbEMsS0FBS21DLEVBQUUsQ0FBQ3hELE1BQU0sQ0FBQyxJQUFJLENBQUNrQixNQUFNLEdBQUc7Z0JBRTdCO1lBQ0o7WUFDQSxNQUFNRztRQUNWO0lBQ0o7SUFDQSxNQUFNLENBQUM0QixnQkFBZ0IsQ0FBQy9CLE1BQU07UUFDMUIsSUFBSTtZQUNBLE1BQU02QixjQUFjLE1BQU0sSUFBSSxDQUFDWCxTQUFTLENBQUNoQixHQUFHLENBQUNiLHdGQUFvQkEsQ0FBQ1c7WUFDbEUsTUFBTThCLGVBQWUzQyxvRUFBV0EsQ0FBQ2EsUUFBUTZCO1lBQ3pDLE9BQU87Z0JBQ0hBO2dCQUNBQztZQUNKO1FBQ0osRUFDQSxPQUFPUyxLQUFLO1lBQ1IsSUFBSUEsSUFBSUMsSUFBSSxLQUFLLGlCQUFpQjtnQkFDOUIsTUFBTUQ7WUFDVjtRQUNKO1FBQ0EsT0FBTyxDQUFDO0lBQ1o7SUFDQSxNQUFNLENBQUNOLGVBQWUsQ0FBQ2pDLE1BQU0sRUFBRUcsSUFBSSxFQUFFMEIsV0FBVyxFQUFFQyxZQUFZO1FBQzFELE1BQU1oQyxNQUFNWiw4Q0FBTUEsQ0FBQ3VELE1BQU0sQ0FBQ3RDO1FBQzFCLElBQUkwQixlQUFlLFFBQVE5QywwREFBZ0JBLENBQUNlLEtBQUsrQixjQUFjO1lBQzNELE9BQU87Z0JBQ0gxQixNQUFNaEIsb0VBQVdBLENBQUNhLFFBQVFGO2dCQUMxQjRDLFVBQVVaO2dCQUNWYSxTQUFTO1lBQ2I7UUFDSjtRQUNBLE1BQU0sSUFBSSxDQUFDekIsU0FBUyxDQUFDMEIsR0FBRyxDQUFDdkQsd0ZBQW9CQSxDQUFDVyxTQUFTRjtRQUN2RCxPQUFPO1lBQ0hLLE1BQU1oQixvRUFBV0EsQ0FBQ2EsUUFBUUY7WUFDMUI0QyxVQUFVWjtZQUNWYSxTQUFTO1FBQ2I7SUFDSjtBQUNKLEVBQ0EsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLXN0b3JlL2Rpc3Qvc3JjL3N0b3JlLmpzPzI5M2UiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29kZUVycm9yIH0gZnJvbSAnQGxpYnAycC9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGVlck1hcCB9IGZyb20gJ0BsaWJwMnAvcGVlci1jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBwZWVySWRGcm9tQnl0ZXMgfSBmcm9tICdAbGlicDJwL3BlZXItaWQnO1xuaW1wb3J0IG1vcnRpY2UsIHt9IGZyb20gJ21vcnRpY2UnO1xuaW1wb3J0IHsgYmFzZTMyIH0gZnJvbSAnbXVsdGlmb3JtYXRzL2Jhc2VzL2Jhc2UzMic7XG5pbXBvcnQgeyBlcXVhbHMgYXMgdWludDhBcnJheUVxdWFscyB9IGZyb20gJ3VpbnQ4YXJyYXlzL2VxdWFscyc7XG5pbXBvcnQgeyBjb2RlcyB9IGZyb20gJy4vZXJyb3JzLmpzJztcbmltcG9ydCB7IFBlZXIgYXMgUGVlclBCIH0gZnJvbSAnLi9wYi9wZWVyLmpzJztcbmltcG9ydCB7IGJ5dGVzVG9QZWVyIH0gZnJvbSAnLi91dGlscy9ieXRlcy10by1wZWVyLmpzJztcbmltcG9ydCB7IE5BTUVTUEFDRV9DT01NT04sIHBlZXJJZFRvRGF0YXN0b3JlS2V5IH0gZnJvbSAnLi91dGlscy9wZWVyLWlkLXRvLWRhdGFzdG9yZS1rZXkuanMnO1xuaW1wb3J0IHsgdG9QZWVyUEIgfSBmcm9tICcuL3V0aWxzL3RvLXBlZXItcGIuanMnO1xuZnVuY3Rpb24gZGVjb2RlUGVlcihrZXksIHZhbHVlLCBjYWNoZSkge1xuICAgIC8vIC9wZWVycy8ke3BlZXItaWQtYXMtbGlicDJwLWtleS1jaWQtc3RyaW5nLWluLWJhc2UtMzJ9XG4gICAgY29uc3QgYmFzZTMyU3RyID0ga2V5LnRvU3RyaW5nKCkuc3BsaXQoJy8nKVsyXTtcbiAgICBjb25zdCBidWYgPSBiYXNlMzIuZGVjb2RlKGJhc2UzMlN0cik7XG4gICAgY29uc3QgcGVlcklkID0gcGVlcklkRnJvbUJ5dGVzKGJ1Zik7XG4gICAgY29uc3QgY2FjaGVkID0gY2FjaGUuZ2V0KHBlZXJJZCk7XG4gICAgaWYgKGNhY2hlZCAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWQ7XG4gICAgfVxuICAgIGNvbnN0IHBlZXIgPSBieXRlc1RvUGVlcihwZWVySWQsIHZhbHVlKTtcbiAgICBjYWNoZS5zZXQocGVlcklkLCBwZWVyKTtcbiAgICByZXR1cm4gcGVlcjtcbn1cbmZ1bmN0aW9uIG1hcFF1ZXJ5KHF1ZXJ5LCBjYWNoZSkge1xuICAgIGlmIChxdWVyeSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJlZml4OiBOQU1FU1BBQ0VfQ09NTU9OLFxuICAgICAgICBmaWx0ZXJzOiAocXVlcnkuZmlsdGVycyA/PyBbXSkubWFwKGZuID0+ICh7IGtleSwgdmFsdWUgfSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGZuKGRlY29kZVBlZXIoa2V5LCB2YWx1ZSwgY2FjaGUpKTtcbiAgICAgICAgfSksXG4gICAgICAgIG9yZGVyczogKHF1ZXJ5Lm9yZGVycyA/PyBbXSkubWFwKGZuID0+IChhLCBiKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZm4oZGVjb2RlUGVlcihhLmtleSwgYS52YWx1ZSwgY2FjaGUpLCBkZWNvZGVQZWVyKGIua2V5LCBiLnZhbHVlLCBjYWNoZSkpO1xuICAgICAgICB9KVxuICAgIH07XG59XG5leHBvcnQgY2xhc3MgUGVyc2lzdGVudFN0b3JlIHtcbiAgICBwZWVySWQ7XG4gICAgZGF0YXN0b3JlO1xuICAgIGxvY2s7XG4gICAgYWRkcmVzc0ZpbHRlcjtcbiAgICBjb25zdHJ1Y3Rvcihjb21wb25lbnRzLCBpbml0ID0ge30pIHtcbiAgICAgICAgdGhpcy5wZWVySWQgPSBjb21wb25lbnRzLnBlZXJJZDtcbiAgICAgICAgdGhpcy5kYXRhc3RvcmUgPSBjb21wb25lbnRzLmRhdGFzdG9yZTtcbiAgICAgICAgdGhpcy5hZGRyZXNzRmlsdGVyID0gaW5pdC5hZGRyZXNzRmlsdGVyO1xuICAgICAgICB0aGlzLmxvY2sgPSBtb3J0aWNlKHtcbiAgICAgICAgICAgIG5hbWU6ICdwZWVyLXN0b3JlJyxcbiAgICAgICAgICAgIHNpbmdsZVByb2Nlc3M6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIGhhcyhwZWVySWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YXN0b3JlLmhhcyhwZWVySWRUb0RhdGFzdG9yZUtleShwZWVySWQpKTtcbiAgICB9XG4gICAgYXN5bmMgZGVsZXRlKHBlZXJJZCkge1xuICAgICAgICBpZiAodGhpcy5wZWVySWQuZXF1YWxzKHBlZXJJZCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoJ0Nhbm5vdCBkZWxldGUgc2VsZiBwZWVyJywgY29kZXMuRVJSX0lOVkFMSURfUEFSQU1FVEVSUyk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy5kYXRhc3RvcmUuZGVsZXRlKHBlZXJJZFRvRGF0YXN0b3JlS2V5KHBlZXJJZCkpO1xuICAgIH1cbiAgICBhc3luYyBsb2FkKHBlZXJJZCkge1xuICAgICAgICBjb25zdCBidWYgPSBhd2FpdCB0aGlzLmRhdGFzdG9yZS5nZXQocGVlcklkVG9EYXRhc3RvcmVLZXkocGVlcklkKSk7XG4gICAgICAgIHJldHVybiBieXRlc1RvUGVlcihwZWVySWQsIGJ1Zik7XG4gICAgfVxuICAgIGFzeW5jIHNhdmUocGVlcklkLCBkYXRhKSB7XG4gICAgICAgIGNvbnN0IHsgZXhpc3RpbmdCdWYsIGV4aXN0aW5nUGVlciB9ID0gYXdhaXQgdGhpcy4jZmluZEV4aXN0aW5nUGVlcihwZWVySWQpO1xuICAgICAgICBjb25zdCBwZWVyUGIgPSBhd2FpdCB0b1BlZXJQQihwZWVySWQsIGRhdGEsICdwYXRjaCcsIHtcbiAgICAgICAgICAgIGFkZHJlc3NGaWx0ZXI6IHRoaXMuYWRkcmVzc0ZpbHRlclxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuI3NhdmVJZkRpZmZlcmVudChwZWVySWQsIHBlZXJQYiwgZXhpc3RpbmdCdWYsIGV4aXN0aW5nUGVlcik7XG4gICAgfVxuICAgIGFzeW5jIHBhdGNoKHBlZXJJZCwgZGF0YSkge1xuICAgICAgICBjb25zdCB7IGV4aXN0aW5nQnVmLCBleGlzdGluZ1BlZXIgfSA9IGF3YWl0IHRoaXMuI2ZpbmRFeGlzdGluZ1BlZXIocGVlcklkKTtcbiAgICAgICAgY29uc3QgcGVlclBiID0gYXdhaXQgdG9QZWVyUEIocGVlcklkLCBkYXRhLCAncGF0Y2gnLCB7XG4gICAgICAgICAgICBhZGRyZXNzRmlsdGVyOiB0aGlzLmFkZHJlc3NGaWx0ZXIsXG4gICAgICAgICAgICBleGlzdGluZ1BlZXJcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLiNzYXZlSWZEaWZmZXJlbnQocGVlcklkLCBwZWVyUGIsIGV4aXN0aW5nQnVmLCBleGlzdGluZ1BlZXIpO1xuICAgIH1cbiAgICBhc3luYyBtZXJnZShwZWVySWQsIGRhdGEpIHtcbiAgICAgICAgY29uc3QgeyBleGlzdGluZ0J1ZiwgZXhpc3RpbmdQZWVyIH0gPSBhd2FpdCB0aGlzLiNmaW5kRXhpc3RpbmdQZWVyKHBlZXJJZCk7XG4gICAgICAgIGNvbnN0IHBlZXJQYiA9IGF3YWl0IHRvUGVlclBCKHBlZXJJZCwgZGF0YSwgJ21lcmdlJywge1xuICAgICAgICAgICAgYWRkcmVzc0ZpbHRlcjogdGhpcy5hZGRyZXNzRmlsdGVyLFxuICAgICAgICAgICAgZXhpc3RpbmdQZWVyXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy4jc2F2ZUlmRGlmZmVyZW50KHBlZXJJZCwgcGVlclBiLCBleGlzdGluZ0J1ZiwgZXhpc3RpbmdQZWVyKTtcbiAgICB9XG4gICAgYXN5bmMgKmFsbChxdWVyeSkge1xuICAgICAgICBjb25zdCBwZWVyQ2FjaGUgPSBuZXcgUGVlck1hcCgpO1xuICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IHsga2V5LCB2YWx1ZSB9IG9mIHRoaXMuZGF0YXN0b3JlLnF1ZXJ5KG1hcFF1ZXJ5KHF1ZXJ5ID8/IHt9LCBwZWVyQ2FjaGUpKSkge1xuICAgICAgICAgICAgY29uc3QgcGVlciA9IGRlY29kZVBlZXIoa2V5LCB2YWx1ZSwgcGVlckNhY2hlKTtcbiAgICAgICAgICAgIGlmIChwZWVyLmlkLmVxdWFscyh0aGlzLnBlZXJJZCkpIHtcbiAgICAgICAgICAgICAgICAvLyBTa2lwIHNlbGYgcGVlciBpZiBwcmVzZW50XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB5aWVsZCBwZWVyO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jICNmaW5kRXhpc3RpbmdQZWVyKHBlZXJJZCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdCdWYgPSBhd2FpdCB0aGlzLmRhdGFzdG9yZS5nZXQocGVlcklkVG9EYXRhc3RvcmVLZXkocGVlcklkKSk7XG4gICAgICAgICAgICBjb25zdCBleGlzdGluZ1BlZXIgPSBieXRlc1RvUGVlcihwZWVySWQsIGV4aXN0aW5nQnVmKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZXhpc3RpbmdCdWYsXG4gICAgICAgICAgICAgICAgZXhpc3RpbmdQZWVyXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPT0gJ0VSUl9OT1RfRk9VTkQnKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgYXN5bmMgI3NhdmVJZkRpZmZlcmVudChwZWVySWQsIHBlZXIsIGV4aXN0aW5nQnVmLCBleGlzdGluZ1BlZXIpIHtcbiAgICAgICAgY29uc3QgYnVmID0gUGVlclBCLmVuY29kZShwZWVyKTtcbiAgICAgICAgaWYgKGV4aXN0aW5nQnVmICE9IG51bGwgJiYgdWludDhBcnJheUVxdWFscyhidWYsIGV4aXN0aW5nQnVmKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBwZWVyOiBieXRlc1RvUGVlcihwZWVySWQsIGJ1ZiksXG4gICAgICAgICAgICAgICAgcHJldmlvdXM6IGV4aXN0aW5nUGVlcixcbiAgICAgICAgICAgICAgICB1cGRhdGVkOiBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCB0aGlzLmRhdGFzdG9yZS5wdXQocGVlcklkVG9EYXRhc3RvcmVLZXkocGVlcklkKSwgYnVmKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBlZXI6IGJ5dGVzVG9QZWVyKHBlZXJJZCwgYnVmKSxcbiAgICAgICAgICAgIHByZXZpb3VzOiBleGlzdGluZ1BlZXIsXG4gICAgICAgICAgICB1cGRhdGVkOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RvcmUuanMubWFwIl0sIm5hbWVzIjpbIkNvZGVFcnJvciIsIlBlZXJNYXAiLCJwZWVySWRGcm9tQnl0ZXMiLCJtb3J0aWNlIiwiYmFzZTMyIiwiZXF1YWxzIiwidWludDhBcnJheUVxdWFscyIsImNvZGVzIiwiUGVlciIsIlBlZXJQQiIsImJ5dGVzVG9QZWVyIiwiTkFNRVNQQUNFX0NPTU1PTiIsInBlZXJJZFRvRGF0YXN0b3JlS2V5IiwidG9QZWVyUEIiLCJkZWNvZGVQZWVyIiwia2V5IiwidmFsdWUiLCJjYWNoZSIsImJhc2UzMlN0ciIsInRvU3RyaW5nIiwic3BsaXQiLCJidWYiLCJkZWNvZGUiLCJwZWVySWQiLCJjYWNoZWQiLCJnZXQiLCJwZWVyIiwic2V0IiwibWFwUXVlcnkiLCJxdWVyeSIsInByZWZpeCIsImZpbHRlcnMiLCJtYXAiLCJmbiIsIm9yZGVycyIsImEiLCJiIiwiUGVyc2lzdGVudFN0b3JlIiwiY29uc3RydWN0b3IiLCJjb21wb25lbnRzIiwiaW5pdCIsImRhdGFzdG9yZSIsImFkZHJlc3NGaWx0ZXIiLCJsb2NrIiwibmFtZSIsInNpbmdsZVByb2Nlc3MiLCJoYXMiLCJkZWxldGUiLCJFUlJfSU5WQUxJRF9QQVJBTUVURVJTIiwibG9hZCIsInNhdmUiLCJkYXRhIiwiZXhpc3RpbmdCdWYiLCJleGlzdGluZ1BlZXIiLCJmaW5kRXhpc3RpbmdQZWVyIiwicGVlclBiIiwic2F2ZUlmRGlmZmVyZW50IiwicGF0Y2giLCJtZXJnZSIsImFsbCIsInBlZXJDYWNoZSIsImlkIiwiZXJyIiwiY29kZSIsImVuY29kZSIsInByZXZpb3VzIiwidXBkYXRlZCIsInB1dCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/peer-store/dist/src/store.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/peer-store/dist/src/utils/bytes-to-peer.js":
/*!*************************************************************************!*\
!*** ./node_modules/@libp2p/peer-store/dist/src/utils/bytes-to-peer.js ***!
\*************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ bytesToPeer: () => (/* binding */ bytesToPeer)\n/* harmony export */ });\n/* harmony import */ var _libp2p_peer_id__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @libp2p/peer-id */ \"(ssr)/./node_modules/@libp2p/peer-id/dist/src/index.js\");\n/* harmony import */ var _multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @multiformats/multiaddr */ \"(ssr)/./node_modules/@multiformats/multiaddr/dist/src/index.js\");\n/* harmony import */ var _pb_peer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../pb/peer.js */ \"(ssr)/./node_modules/@libp2p/peer-store/dist/src/pb/peer.js\");\n\n\n\nfunction bytesToPeer(peerId, buf) {\n const peer = _pb_peer_js__WEBPACK_IMPORTED_MODULE_1__.Peer.decode(buf);\n if (peer.publicKey != null && peerId.publicKey == null) {\n peerId = (0,_libp2p_peer_id__WEBPACK_IMPORTED_MODULE_2__.peerIdFromPeerId)({\n ...peerId,\n publicKey: peerId.publicKey\n });\n }\n const tags = new Map();\n // remove any expired tags\n const now = BigInt(Date.now());\n for (const [key, tag] of peer.tags.entries()){\n if (tag.expiry != null && tag.expiry < now) {\n continue;\n }\n tags.set(key, tag);\n }\n return {\n ...peer,\n id: peerId,\n addresses: peer.addresses.map(({ multiaddr: ma, isCertified })=>{\n return {\n multiaddr: (0,_multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_0__.multiaddr)(ma),\n isCertified: isCertified ?? false\n };\n }),\n metadata: peer.metadata,\n peerRecordEnvelope: peer.peerRecordEnvelope ?? undefined,\n tags\n };\n} //# sourceMappingURL=bytes-to-peer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLXN0b3JlL2Rpc3Qvc3JjL3V0aWxzL2J5dGVzLXRvLXBlZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFtRDtBQUNDO0FBQ0w7QUFDeEMsU0FBU0ksWUFBWUMsTUFBTSxFQUFFQyxHQUFHO0lBQ25DLE1BQU1DLE9BQU9KLDZDQUFNQSxDQUFDSyxNQUFNLENBQUNGO0lBQzNCLElBQUlDLEtBQUtFLFNBQVMsSUFBSSxRQUFRSixPQUFPSSxTQUFTLElBQUksTUFBTTtRQUNwREosU0FBU0wsaUVBQWdCQSxDQUFDO1lBQ3RCLEdBQUdLLE1BQU07WUFDVEksV0FBV0osT0FBT0ksU0FBUztRQUMvQjtJQUNKO0lBQ0EsTUFBTUMsT0FBTyxJQUFJQztJQUNqQiwwQkFBMEI7SUFDMUIsTUFBTUMsTUFBTUMsT0FBT0MsS0FBS0YsR0FBRztJQUMzQixLQUFLLE1BQU0sQ0FBQ0csS0FBS0MsSUFBSSxJQUFJVCxLQUFLRyxJQUFJLENBQUNPLE9BQU8sR0FBSTtRQUMxQyxJQUFJRCxJQUFJRSxNQUFNLElBQUksUUFBUUYsSUFBSUUsTUFBTSxHQUFHTixLQUFLO1lBQ3hDO1FBQ0o7UUFDQUYsS0FBS1MsR0FBRyxDQUFDSixLQUFLQztJQUNsQjtJQUNBLE9BQU87UUFDSCxHQUFHVCxJQUFJO1FBQ1BhLElBQUlmO1FBQ0pnQixXQUFXZCxLQUFLYyxTQUFTLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEVBQUVyQixXQUFXc0IsRUFBRSxFQUFFQyxXQUFXLEVBQUU7WUFDekQsT0FBTztnQkFDSHZCLFdBQVdBLGtFQUFTQSxDQUFDc0I7Z0JBQ3JCQyxhQUFhQSxlQUFlO1lBQ2hDO1FBQ0o7UUFDQUMsVUFBVWxCLEtBQUtrQixRQUFRO1FBQ3ZCQyxvQkFBb0JuQixLQUFLbUIsa0JBQWtCLElBQUlDO1FBQy9DakI7SUFDSjtBQUNKLEVBQ0EseUNBQXlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLXN0b3JlL2Rpc3Qvc3JjL3V0aWxzL2J5dGVzLXRvLXBlZXIuanM/ZThmNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwZWVySWRGcm9tUGVlcklkIH0gZnJvbSAnQGxpYnAycC9wZWVyLWlkJztcbmltcG9ydCB7IG11bHRpYWRkciB9IGZyb20gJ0BtdWx0aWZvcm1hdHMvbXVsdGlhZGRyJztcbmltcG9ydCB7IFBlZXIgYXMgUGVlclBCIH0gZnJvbSAnLi4vcGIvcGVlci5qcyc7XG5leHBvcnQgZnVuY3Rpb24gYnl0ZXNUb1BlZXIocGVlcklkLCBidWYpIHtcbiAgICBjb25zdCBwZWVyID0gUGVlclBCLmRlY29kZShidWYpO1xuICAgIGlmIChwZWVyLnB1YmxpY0tleSAhPSBudWxsICYmIHBlZXJJZC5wdWJsaWNLZXkgPT0gbnVsbCkge1xuICAgICAgICBwZWVySWQgPSBwZWVySWRGcm9tUGVlcklkKHtcbiAgICAgICAgICAgIC4uLnBlZXJJZCxcbiAgICAgICAgICAgIHB1YmxpY0tleTogcGVlcklkLnB1YmxpY0tleVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGFncyA9IG5ldyBNYXAoKTtcbiAgICAvLyByZW1vdmUgYW55IGV4cGlyZWQgdGFnc1xuICAgIGNvbnN0IG5vdyA9IEJpZ0ludChEYXRlLm5vdygpKTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHRhZ10gb2YgcGVlci50YWdzLmVudHJpZXMoKSkge1xuICAgICAgICBpZiAodGFnLmV4cGlyeSAhPSBudWxsICYmIHRhZy5leHBpcnkgPCBub3cpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHRhZ3Muc2V0KGtleSwgdGFnKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucGVlcixcbiAgICAgICAgaWQ6IHBlZXJJZCxcbiAgICAgICAgYWRkcmVzc2VzOiBwZWVyLmFkZHJlc3Nlcy5tYXAoKHsgbXVsdGlhZGRyOiBtYSwgaXNDZXJ0aWZpZWQgfSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBtdWx0aWFkZHI6IG11bHRpYWRkcihtYSksXG4gICAgICAgICAgICAgICAgaXNDZXJ0aWZpZWQ6IGlzQ2VydGlmaWVkID8/IGZhbHNlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KSxcbiAgICAgICAgbWV0YWRhdGE6IHBlZXIubWV0YWRhdGEsXG4gICAgICAgIHBlZXJSZWNvcmRFbnZlbG9wZTogcGVlci5wZWVyUmVjb3JkRW52ZWxvcGUgPz8gdW5kZWZpbmVkLFxuICAgICAgICB0YWdzXG4gICAgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJ5dGVzLXRvLXBlZXIuanMubWFwIl0sIm5hbWVzIjpbInBlZXJJZEZyb21QZWVySWQiLCJtdWx0aWFkZHIiLCJQZWVyIiwiUGVlclBCIiwiYnl0ZXNUb1BlZXIiLCJwZWVySWQiLCJidWYiLCJwZWVyIiwiZGVjb2RlIiwicHVibGljS2V5IiwidGFncyIsIk1hcCIsIm5vdyIsIkJpZ0ludCIsIkRhdGUiLCJrZXkiLCJ0YWciLCJlbnRyaWVzIiwiZXhwaXJ5Iiwic2V0IiwiaWQiLCJhZGRyZXNzZXMiLCJtYXAiLCJtYSIsImlzQ2VydGlmaWVkIiwibWV0YWRhdGEiLCJwZWVyUmVjb3JkRW52ZWxvcGUiLCJ1bmRlZmluZWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/peer-store/dist/src/utils/bytes-to-peer.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/peer-store/dist/src/utils/dedupe-addresses.js":
/*!****************************************************************************!*\
!*** ./node_modules/@libp2p/peer-store/dist/src/utils/dedupe-addresses.js ***!
\****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ dedupeFilterAndSortAddresses: () => (/* binding */ dedupeFilterAndSortAddresses)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var _multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @multiformats/multiaddr */ \"(ssr)/./node_modules/@multiformats/multiaddr/dist/src/index.js\");\n/* harmony import */ var _errors_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../errors.js */ \"(ssr)/./node_modules/@libp2p/peer-store/dist/src/errors.js\");\n\n\n\nasync function dedupeFilterAndSortAddresses(peerId, filter, addresses) {\n const addressMap = new Map();\n for (const addr of addresses){\n if (addr == null) {\n continue;\n }\n if (addr.multiaddr instanceof Uint8Array) {\n addr.multiaddr = (0,_multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_0__.multiaddr)(addr.multiaddr);\n }\n if (!(0,_multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_0__.isMultiaddr)(addr.multiaddr)) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__.CodeError(\"Multiaddr was invalid\", _errors_js__WEBPACK_IMPORTED_MODULE_2__.codes.ERR_INVALID_PARAMETERS);\n }\n if (!await filter(peerId, addr.multiaddr)) {\n continue;\n }\n const isCertified = addr.isCertified ?? false;\n const maStr = addr.multiaddr.toString();\n const existingAddr = addressMap.get(maStr);\n if (existingAddr != null) {\n addr.isCertified = existingAddr.isCertified || isCertified;\n } else {\n addressMap.set(maStr, {\n multiaddr: addr.multiaddr,\n isCertified\n });\n }\n }\n return [\n ...addressMap.values()\n ].sort((a, b)=>{\n return a.multiaddr.toString().localeCompare(b.multiaddr.toString());\n }).map(({ isCertified, multiaddr })=>({\n isCertified,\n multiaddr: multiaddr.bytes\n }));\n} //# sourceMappingURL=dedupe-addresses.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLXN0b3JlL2Rpc3Qvc3JjL3V0aWxzL2RlZHVwZS1hZGRyZXNzZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUE4QztBQUNtQjtBQUM1QjtBQUM5QixlQUFlSSw2QkFBNkJDLE1BQU0sRUFBRUMsTUFBTSxFQUFFQyxTQUFTO0lBQ3hFLE1BQU1DLGFBQWEsSUFBSUM7SUFDdkIsS0FBSyxNQUFNQyxRQUFRSCxVQUFXO1FBQzFCLElBQUlHLFFBQVEsTUFBTTtZQUNkO1FBQ0o7UUFDQSxJQUFJQSxLQUFLUixTQUFTLFlBQVlTLFlBQVk7WUFDdENELEtBQUtSLFNBQVMsR0FBR0Esa0VBQVNBLENBQUNRLEtBQUtSLFNBQVM7UUFDN0M7UUFDQSxJQUFJLENBQUNELG9FQUFXQSxDQUFDUyxLQUFLUixTQUFTLEdBQUc7WUFDOUIsTUFBTSxJQUFJRix3REFBU0EsQ0FBQyx5QkFBeUJHLDZDQUFLQSxDQUFDUyxzQkFBc0I7UUFDN0U7UUFDQSxJQUFJLENBQUUsTUFBTU4sT0FBT0QsUUFBUUssS0FBS1IsU0FBUyxHQUFJO1lBQ3pDO1FBQ0o7UUFDQSxNQUFNVyxjQUFjSCxLQUFLRyxXQUFXLElBQUk7UUFDeEMsTUFBTUMsUUFBUUosS0FBS1IsU0FBUyxDQUFDYSxRQUFRO1FBQ3JDLE1BQU1DLGVBQWVSLFdBQVdTLEdBQUcsQ0FBQ0g7UUFDcEMsSUFBSUUsZ0JBQWdCLE1BQU07WUFDdEJOLEtBQUtHLFdBQVcsR0FBR0csYUFBYUgsV0FBVyxJQUFJQTtRQUNuRCxPQUNLO1lBQ0RMLFdBQVdVLEdBQUcsQ0FBQ0osT0FBTztnQkFDbEJaLFdBQVdRLEtBQUtSLFNBQVM7Z0JBQ3pCVztZQUNKO1FBQ0o7SUFDSjtJQUNBLE9BQU87V0FBSUwsV0FBV1csTUFBTTtLQUFHLENBQzFCQyxJQUFJLENBQUMsQ0FBQ0MsR0FBR0M7UUFDVixPQUFPRCxFQUFFbkIsU0FBUyxDQUFDYSxRQUFRLEdBQUdRLGFBQWEsQ0FBQ0QsRUFBRXBCLFNBQVMsQ0FBQ2EsUUFBUTtJQUNwRSxHQUNLUyxHQUFHLENBQUMsQ0FBQyxFQUFFWCxXQUFXLEVBQUVYLFNBQVMsRUFBRSxHQUFNO1lBQ3RDVztZQUNBWCxXQUFXQSxVQUFVdUIsS0FBSztRQUM5QjtBQUNKLEVBQ0EsNENBQTRDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLXN0b3JlL2Rpc3Qvc3JjL3V0aWxzL2RlZHVwZS1hZGRyZXNzZXMuanM/NjdjNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2RlRXJyb3IgfSBmcm9tICdAbGlicDJwL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBpc011bHRpYWRkciwgbXVsdGlhZGRyIH0gZnJvbSAnQG11bHRpZm9ybWF0cy9tdWx0aWFkZHInO1xuaW1wb3J0IHsgY29kZXMgfSBmcm9tICcuLi9lcnJvcnMuanMnO1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlZHVwZUZpbHRlckFuZFNvcnRBZGRyZXNzZXMocGVlcklkLCBmaWx0ZXIsIGFkZHJlc3Nlcykge1xuICAgIGNvbnN0IGFkZHJlc3NNYXAgPSBuZXcgTWFwKCk7XG4gICAgZm9yIChjb25zdCBhZGRyIG9mIGFkZHJlc3Nlcykge1xuICAgICAgICBpZiAoYWRkciA9PSBudWxsKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWRkci5tdWx0aWFkZHIgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgICAgICBhZGRyLm11bHRpYWRkciA9IG11bHRpYWRkcihhZGRyLm11bHRpYWRkcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc011bHRpYWRkcihhZGRyLm11bHRpYWRkcikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoJ011bHRpYWRkciB3YXMgaW52YWxpZCcsIGNvZGVzLkVSUl9JTlZBTElEX1BBUkFNRVRFUlMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghKGF3YWl0IGZpbHRlcihwZWVySWQsIGFkZHIubXVsdGlhZGRyKSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzQ2VydGlmaWVkID0gYWRkci5pc0NlcnRpZmllZCA/PyBmYWxzZTtcbiAgICAgICAgY29uc3QgbWFTdHIgPSBhZGRyLm11bHRpYWRkci50b1N0cmluZygpO1xuICAgICAgICBjb25zdCBleGlzdGluZ0FkZHIgPSBhZGRyZXNzTWFwLmdldChtYVN0cik7XG4gICAgICAgIGlmIChleGlzdGluZ0FkZHIgIT0gbnVsbCkge1xuICAgICAgICAgICAgYWRkci5pc0NlcnRpZmllZCA9IGV4aXN0aW5nQWRkci5pc0NlcnRpZmllZCB8fCBpc0NlcnRpZmllZDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGFkZHJlc3NNYXAuc2V0KG1hU3RyLCB7XG4gICAgICAgICAgICAgICAgbXVsdGlhZGRyOiBhZGRyLm11bHRpYWRkcixcbiAgICAgICAgICAgICAgICBpc0NlcnRpZmllZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFsuLi5hZGRyZXNzTWFwLnZhbHVlcygpXVxuICAgICAgICAuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICByZXR1cm4gYS5tdWx0aWFkZHIudG9TdHJpbmcoKS5sb2NhbGVDb21wYXJlKGIubXVsdGlhZGRyLnRvU3RyaW5nKCkpO1xuICAgIH0pXG4gICAgICAgIC5tYXAoKHsgaXNDZXJ0aWZpZWQsIG11bHRpYWRkciB9KSA9PiAoe1xuICAgICAgICBpc0NlcnRpZmllZCxcbiAgICAgICAgbXVsdGlhZGRyOiBtdWx0aWFkZHIuYnl0ZXNcbiAgICB9KSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWR1cGUtYWRkcmVzc2VzLmpzLm1hcCJdLCJuYW1lcyI6WyJDb2RlRXJyb3IiLCJpc011bHRpYWRkciIsIm11bHRpYWRkciIsImNvZGVzIiwiZGVkdXBlRmlsdGVyQW5kU29ydEFkZHJlc3NlcyIsInBlZXJJZCIsImZpbHRlciIsImFkZHJlc3NlcyIsImFkZHJlc3NNYXAiLCJNYXAiLCJhZGRyIiwiVWludDhBcnJheSIsIkVSUl9JTlZBTElEX1BBUkFNRVRFUlMiLCJpc0NlcnRpZmllZCIsIm1hU3RyIiwidG9TdHJpbmciLCJleGlzdGluZ0FkZHIiLCJnZXQiLCJzZXQiLCJ2YWx1ZXMiLCJzb3J0IiwiYSIsImIiLCJsb2NhbGVDb21wYXJlIiwibWFwIiwiYnl0ZXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/peer-store/dist/src/utils/dedupe-addresses.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/peer-store/dist/src/utils/peer-id-to-datastore-key.js":
/*!************************************************************************************!*\
!*** ./node_modules/@libp2p/peer-store/dist/src/utils/peer-id-to-datastore-key.js ***!
\************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NAMESPACE_COMMON: () => (/* binding */ NAMESPACE_COMMON),\n/* harmony export */ peerIdToDatastoreKey: () => (/* binding */ peerIdToDatastoreKey)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/peer-id/index.js\");\n/* harmony import */ var interface_datastore_key__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! interface-datastore/key */ \"(ssr)/./node_modules/interface-datastore/dist/src/key.js\");\n/* harmony import */ var _errors_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../errors.js */ \"(ssr)/./node_modules/@libp2p/peer-store/dist/src/errors.js\");\n\n\n\n\nconst NAMESPACE_COMMON = \"/peers/\";\nfunction peerIdToDatastoreKey(peerId) {\n if (!(0,_libp2p_interface__WEBPACK_IMPORTED_MODULE_1__.isPeerId)(peerId) || peerId.type == null) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__.CodeError(\"Invalid PeerId\", _errors_js__WEBPACK_IMPORTED_MODULE_3__.codes.ERR_INVALID_PARAMETERS);\n }\n const b32key = peerId.toCID().toString();\n return new interface_datastore_key__WEBPACK_IMPORTED_MODULE_0__.Key(`${NAMESPACE_COMMON}${b32key}`);\n} //# sourceMappingURL=peer-id-to-datastore-key.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLXN0b3JlL2Rpc3Qvc3JjL3V0aWxzL3BlZXItaWQtdG8tZGF0YXN0b3JlLWtleS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBOEM7QUFDRDtBQUNDO0FBQ1Q7QUFDOUIsTUFBTUksbUJBQW1CLFVBQVU7QUFDbkMsU0FBU0MscUJBQXFCQyxNQUFNO0lBQ3ZDLElBQUksQ0FBQ0wsMkRBQVFBLENBQUNLLFdBQVdBLE9BQU9DLElBQUksSUFBSSxNQUFNO1FBQzFDLE1BQU0sSUFBSVAsd0RBQVNBLENBQUMsa0JBQWtCRyw2Q0FBS0EsQ0FBQ0ssc0JBQXNCO0lBQ3RFO0lBQ0EsTUFBTUMsU0FBU0gsT0FBT0ksS0FBSyxHQUFHQyxRQUFRO0lBQ3RDLE9BQU8sSUFBSVQsd0RBQUdBLENBQUMsQ0FBQyxFQUFFRSxpQkFBaUIsRUFBRUssT0FBTyxDQUFDO0FBQ2pELEVBQ0Esb0RBQW9EIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLXN0b3JlL2Rpc3Qvc3JjL3V0aWxzL3BlZXItaWQtdG8tZGF0YXN0b3JlLWtleS5qcz9mMjI3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZGVFcnJvciB9IGZyb20gJ0BsaWJwMnAvaW50ZXJmYWNlJztcbmltcG9ydCB7IGlzUGVlcklkIH0gZnJvbSAnQGxpYnAycC9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgS2V5IH0gZnJvbSAnaW50ZXJmYWNlLWRhdGFzdG9yZS9rZXknO1xuaW1wb3J0IHsgY29kZXMgfSBmcm9tICcuLi9lcnJvcnMuanMnO1xuZXhwb3J0IGNvbnN0IE5BTUVTUEFDRV9DT01NT04gPSAnL3BlZXJzLyc7XG5leHBvcnQgZnVuY3Rpb24gcGVlcklkVG9EYXRhc3RvcmVLZXkocGVlcklkKSB7XG4gICAgaWYgKCFpc1BlZXJJZChwZWVySWQpIHx8IHBlZXJJZC50eXBlID09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcignSW52YWxpZCBQZWVySWQnLCBjb2Rlcy5FUlJfSU5WQUxJRF9QQVJBTUVURVJTKTtcbiAgICB9XG4gICAgY29uc3QgYjMya2V5ID0gcGVlcklkLnRvQ0lEKCkudG9TdHJpbmcoKTtcbiAgICByZXR1cm4gbmV3IEtleShgJHtOQU1FU1BBQ0VfQ09NTU9OfSR7YjMya2V5fWApO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGVlci1pZC10by1kYXRhc3RvcmUta2V5LmpzLm1hcCJdLCJuYW1lcyI6WyJDb2RlRXJyb3IiLCJpc1BlZXJJZCIsIktleSIsImNvZGVzIiwiTkFNRVNQQUNFX0NPTU1PTiIsInBlZXJJZFRvRGF0YXN0b3JlS2V5IiwicGVlcklkIiwidHlwZSIsIkVSUl9JTlZBTElEX1BBUkFNRVRFUlMiLCJiMzJrZXkiLCJ0b0NJRCIsInRvU3RyaW5nIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/peer-store/dist/src/utils/peer-id-to-datastore-key.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/peer-store/dist/src/utils/to-peer-pb.js":
/*!**********************************************************************!*\
!*** ./node_modules/@libp2p/peer-store/dist/src/utils/to-peer-pb.js ***!
\**********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ toPeerPB: () => (/* binding */ toPeerPB)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var uint8arrays_equals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! uint8arrays/equals */ \"(ssr)/./node_modules/uint8arrays/dist/src/equals.js\");\n/* harmony import */ var _errors_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../errors.js */ \"(ssr)/./node_modules/@libp2p/peer-store/dist/src/errors.js\");\n/* harmony import */ var _dedupe_addresses_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dedupe-addresses.js */ \"(ssr)/./node_modules/@libp2p/peer-store/dist/src/utils/dedupe-addresses.js\");\n\n\n\n\nasync function toPeerPB(peerId, data, strategy, options) {\n if (data == null) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__.CodeError(\"Invalid PeerData\", _errors_js__WEBPACK_IMPORTED_MODULE_2__.codes.ERR_INVALID_PARAMETERS);\n }\n if (data.publicKey != null && peerId.publicKey != null && !(0,uint8arrays_equals__WEBPACK_IMPORTED_MODULE_0__.equals)(data.publicKey, peerId.publicKey)) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__.CodeError(\"publicKey bytes do not match peer id publicKey bytes\", _errors_js__WEBPACK_IMPORTED_MODULE_2__.codes.ERR_INVALID_PARAMETERS);\n }\n const existingPeer = options.existingPeer;\n if (existingPeer != null && !peerId.equals(existingPeer.id)) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__.CodeError(\"peer id did not match existing peer id\", _errors_js__WEBPACK_IMPORTED_MODULE_2__.codes.ERR_INVALID_PARAMETERS);\n }\n let addresses = existingPeer?.addresses ?? [];\n let protocols = new Set(existingPeer?.protocols ?? []);\n let metadata = existingPeer?.metadata ?? new Map();\n let tags = existingPeer?.tags ?? new Map();\n let peerRecordEnvelope = existingPeer?.peerRecordEnvelope;\n // when patching, we replace the original fields with passed values\n if (strategy === \"patch\") {\n if (data.multiaddrs != null || data.addresses != null) {\n addresses = [];\n if (data.multiaddrs != null) {\n addresses.push(...data.multiaddrs.map((multiaddr)=>({\n isCertified: false,\n multiaddr\n })));\n }\n if (data.addresses != null) {\n addresses.push(...data.addresses);\n }\n }\n if (data.protocols != null) {\n protocols = new Set(data.protocols);\n }\n if (data.metadata != null) {\n const metadataEntries = data.metadata instanceof Map ? [\n ...data.metadata.entries()\n ] : Object.entries(data.metadata);\n metadata = createSortedMap(metadataEntries, {\n validate: validateMetadata\n });\n }\n if (data.tags != null) {\n const tagsEntries = data.tags instanceof Map ? [\n ...data.tags.entries()\n ] : Object.entries(data.tags);\n tags = createSortedMap(tagsEntries, {\n validate: validateTag,\n map: mapTag\n });\n }\n if (data.peerRecordEnvelope != null) {\n peerRecordEnvelope = data.peerRecordEnvelope;\n }\n }\n // when merging, we join the original fields with passed values\n if (strategy === \"merge\") {\n if (data.multiaddrs != null) {\n addresses.push(...data.multiaddrs.map((multiaddr)=>({\n isCertified: false,\n multiaddr\n })));\n }\n if (data.addresses != null) {\n addresses.push(...data.addresses);\n }\n if (data.protocols != null) {\n protocols = new Set([\n ...protocols,\n ...data.protocols\n ]);\n }\n if (data.metadata != null) {\n const metadataEntries = data.metadata instanceof Map ? [\n ...data.metadata.entries()\n ] : Object.entries(data.metadata);\n for (const [key, value] of metadataEntries){\n if (value == null) {\n metadata.delete(key);\n } else {\n metadata.set(key, value);\n }\n }\n metadata = createSortedMap([\n ...metadata.entries()\n ], {\n validate: validateMetadata\n });\n }\n if (data.tags != null) {\n const tagsEntries = data.tags instanceof Map ? [\n ...data.tags.entries()\n ] : Object.entries(data.tags);\n const mergedTags = new Map(tags);\n for (const [key, value] of tagsEntries){\n if (value == null) {\n mergedTags.delete(key);\n } else {\n mergedTags.set(key, value);\n }\n }\n tags = createSortedMap([\n ...mergedTags.entries()\n ], {\n validate: validateTag,\n map: mapTag\n });\n }\n if (data.peerRecordEnvelope != null) {\n peerRecordEnvelope = data.peerRecordEnvelope;\n }\n }\n const output = {\n addresses: await (0,_dedupe_addresses_js__WEBPACK_IMPORTED_MODULE_3__.dedupeFilterAndSortAddresses)(peerId, options.addressFilter ?? (async ()=>true), addresses),\n protocols: [\n ...protocols.values()\n ].sort((a, b)=>{\n return a.localeCompare(b);\n }),\n metadata,\n tags,\n publicKey: existingPeer?.id.publicKey ?? data.publicKey ?? peerId.publicKey,\n peerRecordEnvelope\n };\n // Ed25519 and secp256k1 have their public key embedded in them so no need to duplicate it\n if (peerId.type !== \"RSA\") {\n delete output.publicKey;\n }\n return output;\n}\n/**\n * In JS maps are ordered by insertion order so create a new map with the\n * keys inserted in alphabetical order.\n */ function createSortedMap(entries, options) {\n const output = new Map();\n for (const [key, value] of entries){\n if (value == null) {\n continue;\n }\n options.validate(key, value);\n }\n for (const [key, value] of entries.sort(([a], [b])=>{\n return a.localeCompare(b);\n })){\n if (value != null) {\n output.set(key, options.map?.(key, value) ?? value);\n }\n }\n return output;\n}\nfunction validateMetadata(key, value) {\n if (typeof key !== \"string\") {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__.CodeError(\"Metadata key must be a string\", _errors_js__WEBPACK_IMPORTED_MODULE_2__.codes.ERR_INVALID_PARAMETERS);\n }\n if (!(value instanceof Uint8Array)) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__.CodeError(\"Metadata value must be a Uint8Array\", _errors_js__WEBPACK_IMPORTED_MODULE_2__.codes.ERR_INVALID_PARAMETERS);\n }\n}\nfunction validateTag(key, tag) {\n if (typeof key !== \"string\") {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__.CodeError(\"Tag name must be a string\", _errors_js__WEBPACK_IMPORTED_MODULE_2__.codes.ERR_INVALID_PARAMETERS);\n }\n if (tag.value != null) {\n if (parseInt(`${tag.value}`, 10) !== tag.value) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__.CodeError(\"Tag value must be an integer\", _errors_js__WEBPACK_IMPORTED_MODULE_2__.codes.ERR_INVALID_PARAMETERS);\n }\n if (tag.value < 0 || tag.value > 100) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__.CodeError(\"Tag value must be between 0-100\", _errors_js__WEBPACK_IMPORTED_MODULE_2__.codes.ERR_INVALID_PARAMETERS);\n }\n }\n if (tag.ttl != null) {\n if (parseInt(`${tag.ttl}`, 10) !== tag.ttl) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__.CodeError(\"Tag ttl must be an integer\", _errors_js__WEBPACK_IMPORTED_MODULE_2__.codes.ERR_INVALID_PARAMETERS);\n }\n if (tag.ttl < 0) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__.CodeError(\"Tag ttl must be between greater than 0\", _errors_js__WEBPACK_IMPORTED_MODULE_2__.codes.ERR_INVALID_PARAMETERS);\n }\n }\n}\nfunction mapTag(key, tag) {\n let expiry;\n if (tag.expiry != null) {\n expiry = tag.expiry;\n }\n if (tag.ttl != null) {\n expiry = BigInt(Date.now() + Number(tag.ttl));\n }\n return {\n value: tag.value ?? 0,\n expiry\n };\n} //# sourceMappingURL=to-peer-pb.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wZWVyLXN0b3JlL2Rpc3Qvc3JjL3V0aWxzL3RvLXBlZXItcGIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBOEM7QUFDa0I7QUFDM0I7QUFDZ0M7QUFDOUQsZUFBZUssU0FBU0MsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFFBQVEsRUFBRUMsT0FBTztJQUMxRCxJQUFJRixRQUFRLE1BQU07UUFDZCxNQUFNLElBQUlQLHdEQUFTQSxDQUFDLG9CQUFvQkcsNkNBQUtBLENBQUNPLHNCQUFzQjtJQUN4RTtJQUNBLElBQUlILEtBQUtJLFNBQVMsSUFBSSxRQUFRTCxPQUFPSyxTQUFTLElBQUksUUFBUSxDQUFDVCwwREFBZ0JBLENBQUNLLEtBQUtJLFNBQVMsRUFBRUwsT0FBT0ssU0FBUyxHQUFHO1FBQzNHLE1BQU0sSUFBSVgsd0RBQVNBLENBQUMsd0RBQXdERyw2Q0FBS0EsQ0FBQ08sc0JBQXNCO0lBQzVHO0lBQ0EsTUFBTUUsZUFBZUgsUUFBUUcsWUFBWTtJQUN6QyxJQUFJQSxnQkFBZ0IsUUFBUSxDQUFDTixPQUFPTCxNQUFNLENBQUNXLGFBQWFDLEVBQUUsR0FBRztRQUN6RCxNQUFNLElBQUliLHdEQUFTQSxDQUFDLDBDQUEwQ0csNkNBQUtBLENBQUNPLHNCQUFzQjtJQUM5RjtJQUNBLElBQUlJLFlBQVlGLGNBQWNFLGFBQWEsRUFBRTtJQUM3QyxJQUFJQyxZQUFZLElBQUlDLElBQUlKLGNBQWNHLGFBQWEsRUFBRTtJQUNyRCxJQUFJRSxXQUFXTCxjQUFjSyxZQUFZLElBQUlDO0lBQzdDLElBQUlDLE9BQU9QLGNBQWNPLFFBQVEsSUFBSUQ7SUFDckMsSUFBSUUscUJBQXFCUixjQUFjUTtJQUN2QyxtRUFBbUU7SUFDbkUsSUFBSVosYUFBYSxTQUFTO1FBQ3RCLElBQUlELEtBQUtjLFVBQVUsSUFBSSxRQUFRZCxLQUFLTyxTQUFTLElBQUksTUFBTTtZQUNuREEsWUFBWSxFQUFFO1lBQ2QsSUFBSVAsS0FBS2MsVUFB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LENBQUNPLHNCQUFzQjtRQUM5RjtJQUNKO0FBQ0o7QUFDQSxTQUFTd0IsT0FBT0MsR0FBRyxFQUFFYyxHQUFHO0lBQ3BCLElBQUlHO0lBQ0osSUFBSUgsSUFBSUcsTUFBTSxJQUFJLE1BQU07UUFDcEJBLFNBQVNILElBQUlHLE1BQU07SUFDdkI7SUFDQSxJQUFJSCxJQUFJRSxHQUFHLElBQUksTUFBTTtRQUNqQkMsU0FBU0MsT0FBT0MsS0FBS0MsR0FBRyxLQUFLQyxPQUFPUCxJQUFJRSxHQUFHO0lBQy9DO0lBQ0EsT0FBTztRQUNIZixPQUFPYSxJQUFJYixLQUFLLElBQUk7UUFDcEJnQjtJQUNKO0FBQ0osRUFDQSxzQ0FBc0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL3BlZXItc3RvcmUvZGlzdC9zcmMvdXRpbHMvdG8tcGVlci1wYi5qcz80OGY5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZGVFcnJvciB9IGZyb20gJ0BsaWJwMnAvaW50ZXJmYWNlJztcbmltcG9ydCB7IGVxdWFscyBhcyB1aW50OGFycmF5RXF1YWxzIH0gZnJvbSAndWludDhhcnJheXMvZXF1YWxzJztcbmltcG9ydCB7IGNvZGVzIH0gZnJvbSAnLi4vZXJyb3JzLmpzJztcbmltcG9ydCB7IGRlZHVwZUZpbHRlckFuZFNvcnRBZGRyZXNzZXMgfSBmcm9tICcuL2RlZHVwZS1hZGRyZXNzZXMuanMnO1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRvUGVlclBCKHBlZXJJZCwgZGF0YSwgc3RyYXRlZ3ksIG9wdGlvbnMpIHtcbiAgICBpZiAoZGF0YSA9PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoJ0ludmFsaWQgUGVlckRhdGEnLCBjb2Rlcy5FUlJfSU5WQUxJRF9QQVJBTUVURVJTKTtcbiAgICB9XG4gICAgaWYgKGRhdGEucHVibGljS2V5ICE9IG51bGwgJiYgcGVlcklkLnB1YmxpY0tleSAhPSBudWxsICYmICF1aW50OGFycmF5RXF1YWxzKGRhdGEucHVibGljS2V5LCBwZWVySWQucHVibGljS2V5KSkge1xuICAgICAgICB0aHJvdyBuZXcgQ29kZUVycm9yKCdwdWJsaWNLZXkgYnl0ZXMgZG8gbm90IG1hdGNoIHBlZXIgaWQgcHVibGljS2V5IGJ5dGVzJywgY29kZXMuRVJSX0lOVkFMSURfUEFSQU1FVEVSUyk7XG4gICAgfVxuICAgIGNvbnN0IGV4aXN0aW5nUGVlciA9IG9wdGlvbnMuZXhpc3RpbmdQZWVyO1xuICAgIGlmIChleGlzdGluZ1BlZXIgIT0gbnVsbCAmJiAhcGVlcklkLmVxdWFscyhleGlzdGluZ1BlZXIuaWQpKSB7XG4gICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoJ3BlZXIgaWQgZGlkIG5vdCBtYXRjaCBleGlzdGluZyBwZWVyIGlkJywgY29kZXMuRVJSX0lOVkFMSURfUEFSQU1FVEVSUyk7XG4gICAgfVxuICAgIGxldCBhZGRyZXNzZXMgPSBleGlzdGluZ1BlZXI/LmFkZHJlc3NlcyA/PyBbXTtcbiAgICBsZXQgcHJvdG9jb2xzID0gbmV3IFNldChleGlzdGluZ1BlZXI/LnByb3RvY29scyA/PyBbXSk7XG4gICAgbGV0IG1ldGFkYXRhID0gZXhpc3RpbmdQZWVyPy5tZXRhZGF0YSA/PyBuZXcgTWFwKCk7XG4gICAgbGV0IHRhZ3MgPSBleGlzdGluZ1BlZXI/LnRhZ3MgPz8gbmV3IE1hcCgpO1xuICAgIGxldCBwZWVyUmVjb3JkRW52ZWxvcGUgPSBleGlzdGluZ1BlZXI/LnBlZXJSZWNvcmRFbnZlbG9wZTtcbiAgICAvLyB3aGVuIHBhdGNoaW5nLCB3ZSByZXBsYWNlIHRoZSBvcmlnaW5hbCBmaWVsZHMgd2l0aCBwYXNzZWQgdmFsdWVzXG4gICAgaWYgKHN0cmF0ZWd5ID09PSAncGF0Y2gnKSB7XG4gICAgICAgIGlmIChkYXRhLm11bHRpYWRkcnMgIT0gbnVsbCB8fCBkYXRhLmFkZHJlc3NlcyAhPSBudWxsKSB7XG4gICAgICAgICAgICBhZGRyZXNzZXMgPSBbXTtcbiAgICAgICAgICAgIGlmIChkYXRhLm11bHRpYWRkcnMgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGFkZHJlc3Nlcy5wdXNoKC4uLmRhdGEubXVsdGlhZGRycy5tYXAobXVsdGlhZGRyID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGlzQ2VydGlmaWVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGlhZGRyXG4gICAgICAgICAgICAgICAgfSkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmFkZHJlc3NlcyAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgYWRkcmVzc2VzLnB1c2goLi4uZGF0YS5hZGRyZXNzZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnByb3RvY29scyAhPSBudWxsKSB7XG4gICAgICAgICAgICBwcm90b2NvbHMgPSBuZXcgU2V0KGRhdGEucHJvdG9jb2xzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5tZXRhZGF0YSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBtZXRhZGF0YUVudHJpZXMgPSBkYXRhLm1ldGFkYXRhIGluc3RhbmNlb2YgTWFwID8gWy4uLmRhdGEubWV0YWRhdGEuZW50cmllcygpXSA6IE9iamVjdC5lbnRyaWVzKGRhdGEubWV0YWRhdGEpO1xuICAgICAgICAgICAgbWV0YWRhdGEgPSBjcmVhdGVTb3J0ZWRNYXAobWV0YWRhdGFFbnRyaWVzLCB7XG4gICAgICAgICAgICAgICAgdmFsaWRhdGU6IHZhbGlkYXRlTWV0YWRhdGFcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnRhZ3MgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgdGFnc0VudHJpZXMgPSBkYXRhLnRhZ3MgaW5zdGFuY2VvZiBNYXAgPyBbLi4uZGF0YS50YWdzLmVudHJpZXMoKV0gOiBPYmplY3QuZW50cmllcyhkYXRhLnRhZ3MpO1xuICAgICAgICAgICAgdGFncyA9IGNyZWF0ZVNvcnRlZE1hcCh0YWdzRW50cmllcywge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiB2YWxpZGF0ZVRhZyxcbiAgICAgICAgICAgICAgICBtYXA6IG1hcFRhZ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEucGVlclJlY29yZEVudmVsb3BlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHBlZXJSZWNvcmRFbnZlbG9wZSA9IGRhdGEucGVlclJlY29yZEVudmVsb3BlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIHdoZW4gbWVyZ2luZywgd2Ugam9pbiB0aGUgb3JpZ2luYWwgZmllbGRzIHdpdGggcGFzc2VkIHZhbHVlc1xuICAgIGlmIChzdHJhdGVneSA9PT0gJ21lcmdlJykge1xuICAgICAgICBpZiAoZGF0YS5tdWx0aWFkZHJzICE9IG51bGwpIHtcbiAgICAgICAgICAgIGFkZHJlc3Nlcy5wdXNoKC4uLmRhdGEubXVsdGlhZGRycy5tYXAobXVsdGlhZGRyID0+ICh7XG4gICAgICAgICAgICAgICAgaXNDZXJ0aWZpZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG11bHRpYWRkclxuICAgICAgICAgICAgfSkpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5hZGRyZXNzZXMgIT0gbnVsbCkge1xuICAgICAgICAgICAgYWRkcmVzc2VzLnB1c2goLi4uZGF0YS5hZGRyZXNzZXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnByb3RvY29scyAhPSBudWxsKSB7XG4gICAgICAgICAgICBwcm90b2NvbHMgPSBuZXcgU2V0KFsuLi5wcm90b2NvbHMsIC4uLmRhdGEucHJvdG9jb2xzXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEubWV0YWRhdGEgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgbWV0YWRhdGFFbnRyaWVzID0gZGF0YS5tZXRhZGF0YSBpbnN0YW5jZW9mIE1hcCA/IFsuLi5kYXRhLm1ldGFkYXRhLmVudHJpZXMoKV0gOiBPYmplY3QuZW50cmllcyhkYXRhLm1ldGFkYXRhKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIG1ldGFkYXRhRW50cmllcykge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLmRlbGV0ZShrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1ldGFkYXRhID0gY3JlYXRlU29ydGVkTWFwKFsuLi5tZXRhZGF0YS5lbnRyaWVzKCldLCB7XG4gICAgICAgICAgICAgICAgdmFsaWRhdGU6IHZhbGlkYXRlTWV0YWRhdGFcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnRhZ3MgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgdGFnc0VudHJpZXMgPSBkYXRhLnRhZ3MgaW5zdGFuY2VvZiBNYXAgPyBbLi4uZGF0YS50YWdzLmVudHJpZXMoKV0gOiBPYmplY3QuZW50cmllcyhkYXRhLnRhZ3MpO1xuICAgICAgICAgICAgY29uc3QgbWVyZ2VkVGFncyA9IG5ldyBNYXAodGFncyk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiB0YWdzRW50cmllcykge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIG1lcmdlZFRhZ3MuZGVsZXRlKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBtZXJnZWRUYWdzLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0YWdzID0gY3JlYXRlU29ydGVkTWFwKFsuLi5tZXJnZWRUYWdzLmVudHJpZXMoKV0sIHtcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogdmFsaWRhdGVUYWcsXG4gICAgICAgICAgICAgICAgbWFwOiBtYXBUYWdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLnBlZXJSZWNvcmRFbnZlbG9wZSAhPSBudWxsKSB7XG4gICAgICAgICAgICBwZWVyUmVjb3JkRW52ZWxvcGUgPSBkYXRhLnBlZXJSZWNvcmRFbnZlbG9wZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBvdXRwdXQgPSB7XG4gICAgICAgIGFkZHJlc3NlczogYXdhaXQgZGVkdXBlRmlsdGVyQW5kU29ydEFkZHJlc3NlcyhwZWVySWQsIG9wdGlvbnMuYWRkcmVzc0ZpbHRlciA/PyAoYXN5bmMgKCkgPT4gdHJ1ZSksIGFkZHJlc3NlcyksXG4gICAgICAgIHByb3RvY29sczogWy4uLnByb3RvY29scy52YWx1ZXMoKV0uc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGEubG9jYWxlQ29tcGFyZShiKTtcbiAgICAgICAgfSksXG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgICB0YWdzLFxuICAgICAgICBwdWJsaWNLZXk6IGV4aXN0aW5nUGVlcj8uaWQucHVibGljS2V5ID8/IGRhdGEucHVibGljS2V5ID8/IHBlZXJJZC5wdWJsaWNLZXksXG4gICAgICAgIHBlZXJSZWNvcmRFbnZlbG9wZVxuICAgIH07XG4gICAgLy8gRWQyNTUxOSBhbmQgc2VjcDI1NmsxIGhhdmUgdGhlaXIgcHVibGljIGtleSBlbWJlZGRlZCBpbiB0aGVtIHNvIG5vIG5lZWQgdG8gZHVwbGljYXRlIGl0XG4gICAgaWYgKHBlZXJJZC50eXBlICE9PSAnUlNBJykge1xuICAgICAgICBkZWxldGUgb3V0cHV0LnB1YmxpY0tleTtcbiAgICB9XG4gICAgcmV0dXJuIG91dHB1dDtcbn1cbi8qKlxuICogSW4gSlMgbWFwcyBhcmUgb3JkZXJlZCBieSBpbnNlcnRpb24gb3JkZXIgc28gY3JlYXRlIGEgbmV3IG1hcCB3aXRoIHRoZVxuICoga2V5cyBpbnNlcnRlZCBpbiBhbHBoYWJldGljYWwgb3JkZXIuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVNvcnRlZE1hcChlbnRyaWVzLCBvcHRpb25zKSB7XG4gICAgY29uc3Qgb3V0cHV0ID0gbmV3IE1hcCgpO1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGVudHJpZXMpIHtcbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIG9wdGlvbnMudmFsaWRhdGUoa2V5LCB2YWx1ZSk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGVudHJpZXMuc29ydCgoW2FdLCBbYl0pID0+IHtcbiAgICAgICAgcmV0dXJuIGEubG9jYWxlQ29tcGFyZShiKTtcbiAgICB9KSkge1xuICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgb3V0cHV0LnNldChrZXksIG9wdGlvbnMubWFwPy4oa2V5LCB2YWx1ZSkgPz8gdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvdXRwdXQ7XG59XG5mdW5jdGlvbiB2YWxpZGF0ZU1ldGFkYXRhKGtleSwgdmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIGtleSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcignTWV0YWRhdGEga2V5IG11c3QgYmUgYSBzdHJpbmcnLCBjb2Rlcy5FUlJfSU5WQUxJRF9QQVJBTUVURVJTKTtcbiAgICB9XG4gICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSkge1xuICAgICAgICB0aHJvdyBuZXcgQ29kZUVycm9yKCdNZXRhZGF0YSB2YWx1ZSBtdXN0IGJlIGEgVWludDhBcnJheScsIGNvZGVzLkVSUl9JTlZBTElEX1BBUkFNRVRFUlMpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHZhbGlkYXRlVGFnKGtleSwgdGFnKSB7XG4gICAgaWYgKHR5cGVvZiBrZXkgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoJ1RhZyBuYW1lIG11c3QgYmUgYSBzdHJpbmcnLCBjb2Rlcy5FUlJfSU5WQUxJRF9QQVJBTUVURVJTKTtcbiAgICB9XG4gICAgaWYgKHRhZy52YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIGlmIChwYXJzZUludChgJHt0YWcudmFsdWV9YCwgMTApICE9PSB0YWcudmFsdWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoJ1RhZyB2YWx1ZSBtdXN0IGJlIGFuIGludGVnZXInLCBjb2Rlcy5FUlJfSU5WQUxJRF9QQVJBTUVURVJTKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGFnLnZhbHVlIDwgMCB8fCB0YWcudmFsdWUgPiAxMDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoJ1RhZyB2YWx1ZSBtdXN0IGJlIGJldHdlZW4gMC0xMDAnLCBjb2Rlcy5FUlJfSU5WQUxJRF9QQVJBTUVURVJTKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAodGFnLnR0bCAhPSBudWxsKSB7XG4gICAgICAgIGlmIChwYXJzZUludChgJHt0YWcudHRsfWAsIDEwKSAhPT0gdGFnLnR0bCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcignVGFnIHR0bCBtdXN0IGJlIGFuIGludGVnZXInLCBjb2Rlcy5FUlJfSU5WQUxJRF9QQVJBTUVURVJTKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGFnLnR0bCA8IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoJ1RhZyB0dGwgbXVzdCBiZSBiZXR3ZWVuIGdyZWF0ZXIgdGhhbiAwJywgY29kZXMuRVJSX0lOVkFMSURfUEFSQU1FVEVSUyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBtYXBUYWcoa2V5LCB0YWcpIHtcbiAgICBsZXQgZXhwaXJ5O1xuICAgIGlmICh0YWcuZXhwaXJ5ICE9IG51bGwpIHtcbiAgICAgICAgZXhwaXJ5ID0gdGFnLmV4cGlyeTtcbiAgICB9XG4gICAgaWYgKHRhZy50dGwgIT0gbnVsbCkge1xuICAgICAgICBleHBpcnkgPSBCaWdJbnQoRGF0ZS5ub3coKSArIE51bWJlcih0YWcudHRsKSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlOiB0YWcudmFsdWUgPz8gMCxcbiAgICAgICAgZXhwaXJ5XG4gICAgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRvLXBlZXItcGIuanMubWFwIl0sIm5hbWVzIjpbIkNvZGVFcnJvciIsImVxdWFscyIsInVpbnQ4YXJyYXlFcXVhbHMiLCJjb2RlcyIsImRlZHVwZUZpbHRlckFuZFNvcnRBZGRyZXNzZXMiLCJ0b1BlZXJQQiIsInBlZXJJZCIsImRhdGEiLCJzdHJhdGVneSIsIm9wdGlvbnMiLCJFUlJfSU5WQUxJRF9QQVJBTUVURVJTIiwicHVibGljS2V5IiwiZXhpc3RpbmdQZWVyIiwiaWQiLCJhZGRyZXNzZXMiLCJwcm90b2NvbHMiLCJTZXQiLCJtZXRhZGF0YSIsIk1hcCIsInRhZ3MiLCJwZWVyUmVjb3JkRW52ZWxvcGUiLCJtdWx0aWFkZHJzIiwicHVzaCIsIm1hcCIsIm11bHRpYWRkciIsImlzQ2VydGlmaWVkIiwibWV0YWRhdGFFbnRyaWVzIiwiZW50cmllcyIsIk9iamVjdCIsImNyZWF0ZVNvcnRlZE1hcCIsInZhbGlkYXRlIiwidmFsaWRhdGVNZXRhZGF0YSIsInRhZ3NFbnRyaWVzIiwidmFsaWRhdGVUYWciLCJtYXBUYWciLCJrZXkiLCJ2YWx1ZSIsImRlbGV0ZSIsInNldCIsIm1lcmdlZFRhZ3MiLCJvdXRwdXQiLCJhZGRyZXNzRmlsdGVyIiwidmFsdWVzIiwic29ydCIsImEiLCJiIiwibG9jYWxlQ29tcGFyZSIsInR5cGUiLCJVaW50OEFycmF5IiwidGFnIiwicGFyc2VJbnQiLCJ0dGwiLCJleHBpcnkiLCJCaWdJbnQiLCJEYXRlIiwibm93IiwiTnVtYmVyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/peer-store/dist/src/utils/to-peer-pb.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/ping/dist/src/constants.js":
/*!*********************************************************!*\
!*** ./node_modules/@libp2p/ping/dist/src/constants.js ***!
\*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ERR_WRONG_PING_ACK: () => (/* binding */ ERR_WRONG_PING_ACK),\n/* harmony export */ MAX_INBOUND_STREAMS: () => (/* binding */ MAX_INBOUND_STREAMS),\n/* harmony export */ MAX_OUTBOUND_STREAMS: () => (/* binding */ MAX_OUTBOUND_STREAMS),\n/* harmony export */ PING_LENGTH: () => (/* binding */ PING_LENGTH),\n/* harmony export */ PING_PROTOCOL: () => (/* binding */ PING_PROTOCOL),\n/* harmony export */ PROTOCOL_NAME: () => (/* binding */ PROTOCOL_NAME),\n/* harmony export */ PROTOCOL_PREFIX: () => (/* binding */ PROTOCOL_PREFIX),\n/* harmony export */ PROTOCOL_VERSION: () => (/* binding */ PROTOCOL_VERSION),\n/* harmony export */ TIMEOUT: () => (/* binding */ TIMEOUT)\n/* harmony export */ });\nconst PING_PROTOCOL = \"/ipfs/ping/1.0.0\";\nconst PING_LENGTH = 32;\nconst PROTOCOL_VERSION = \"1.0.0\";\nconst PROTOCOL_NAME = \"ping\";\nconst PROTOCOL_PREFIX = \"ipfs\";\nconst TIMEOUT = 10000;\n// See https://github.com/libp2p/specs/blob/d4b5fb0152a6bb86cfd9ea/ping/ping.md?plain=1#L38-L43\n// The dialing peer MUST NOT keep more than one outbound stream for the ping protocol per peer.\n// The listening peer SHOULD accept at most two streams per peer since cross-stream behavior is\n// non-linear and stream writes occur asynchronously. The listening peer may perceive the\n// dialing peer closing and opening the wrong streams (for instance, closing stream B and\n// opening stream A even though the dialing peer is opening stream B and closing stream A).\nconst MAX_INBOUND_STREAMS = 2;\nconst MAX_OUTBOUND_STREAMS = 1;\nconst ERR_WRONG_PING_ACK = \"ERR_WRONG_PING_ACK\"; //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9waW5nL2Rpc3Qvc3JjL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBTyxNQUFNQSxnQkFBZ0IsbUJBQW1CO0FBQ3pDLE1BQU1DLGNBQWMsR0FBRztBQUN2QixNQUFNQyxtQkFBbUIsUUFBUTtBQUNqQyxNQUFNQyxnQkFBZ0IsT0FBTztBQUM3QixNQUFNQyxrQkFBa0IsT0FBTztBQUMvQixNQUFNQyxVQUFVLE1BQU07QUFDN0IsK0ZBQStGO0FBQy9GLCtGQUErRjtBQUMvRiwrRkFBK0Y7QUFDL0YseUZBQXlGO0FBQ3pGLHlGQUF5RjtBQUN6RiwyRkFBMkY7QUFDcEYsTUFBTUMsc0JBQXNCLEVBQUU7QUFDOUIsTUFBTUMsdUJBQXVCLEVBQUU7QUFDL0IsTUFBTUMscUJBQXFCLHFCQUFxQixDQUN2RCxxQ0FBcUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL3BpbmcvZGlzdC9zcmMvY29uc3RhbnRzLmpzP2YyNjgiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFBJTkdfUFJPVE9DT0wgPSAnL2lwZnMvcGluZy8xLjAuMCc7XG5leHBvcnQgY29uc3QgUElOR19MRU5HVEggPSAzMjtcbmV4cG9ydCBjb25zdCBQUk9UT0NPTF9WRVJTSU9OID0gJzEuMC4wJztcbmV4cG9ydCBjb25zdCBQUk9UT0NPTF9OQU1FID0gJ3BpbmcnO1xuZXhwb3J0IGNvbnN0IFBST1RPQ09MX1BSRUZJWCA9ICdpcGZzJztcbmV4cG9ydCBjb25zdCBUSU1FT1VUID0gMTAwMDA7XG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2xpYnAycC9zcGVjcy9ibG9iL2Q0YjVmYjAxNTJhNmJiODZjZmQ5ZWEvcGluZy9waW5nLm1kP3BsYWluPTEjTDM4LUw0M1xuLy8gVGhlIGRpYWxpbmcgcGVlciBNVVNUIE5PVCBrZWVwIG1vcmUgdGhhbiBvbmUgb3V0Ym91bmQgc3RyZWFtIGZvciB0aGUgcGluZyBwcm90b2NvbCBwZXIgcGVlci5cbi8vIFRoZSBsaXN0ZW5pbmcgcGVlciBTSE9VTEQgYWNjZXB0IGF0IG1vc3QgdHdvIHN0cmVhbXMgcGVyIHBlZXIgc2luY2UgY3Jvc3Mtc3RyZWFtIGJlaGF2aW9yIGlzXG4vLyBub24tbGluZWFyIGFuZCBzdHJlYW0gd3JpdGVzIG9jY3VyIGFzeW5jaHJvbm91c2x5LiBUaGUgbGlzdGVuaW5nIHBlZXIgbWF5IHBlcmNlaXZlIHRoZVxuLy8gZGlhbGluZyBwZWVyIGNsb3NpbmcgYW5kIG9wZW5pbmcgdGhlIHdyb25nIHN0cmVhbXMgKGZvciBpbnN0YW5jZSwgY2xvc2luZyBzdHJlYW0gQiBhbmRcbi8vIG9wZW5pbmcgc3RyZWFtIEEgZXZlbiB0aG91Z2ggdGhlIGRpYWxpbmcgcGVlciBpcyBvcGVuaW5nIHN0cmVhbSBCIGFuZCBjbG9zaW5nIHN0cmVhbSBBKS5cbmV4cG9ydCBjb25zdCBNQVhfSU5CT1VORF9TVFJFQU1TID0gMjtcbmV4cG9ydCBjb25zdCBNQVhfT1VUQk9VTkRfU1RSRUFNUyA9IDE7XG5leHBvcnQgY29uc3QgRVJSX1dST05HX1BJTkdfQUNLID0gJ0VSUl9XUk9OR19QSU5HX0FDSyc7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbIlBJTkdfUFJPVE9DT0wiLCJQSU5HX0xFTkdUSCIsIlBST1RPQ09MX1ZFUlNJT04iLCJQUk9UT0NPTF9OQU1FIiwiUFJPVE9DT0xfUFJFRklYIiwiVElNRU9VVCIsIk1BWF9JTkJPVU5EX1NUUkVBTVMiLCJNQVhfT1VUQk9VTkRfU1RSRUFNUyIsIkVSUl9XUk9OR19QSU5HX0FDSyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/ping/dist/src/constants.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/ping/dist/src/index.js":
/*!*****************************************************!*\
!*** ./node_modules/@libp2p/ping/dist/src/index.js ***!
\*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PING_PROTOCOL: () => (/* reexport safe */ _constants_js__WEBPACK_IMPORTED_MODULE_1__.PING_PROTOCOL),\n/* harmony export */ ping: () => (/* binding */ ping)\n/* harmony export */ });\n/* harmony import */ var _ping_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ping.js */ \"(ssr)/./node_modules/@libp2p/ping/dist/src/ping.js\");\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants.js */ \"(ssr)/./node_modules/@libp2p/ping/dist/src/constants.js\");\n/**\n * @packageDocumentation\n *\n * The ping service implements the [libp2p ping spec](https://github.com/libp2p/specs/blob/master/ping/ping.md) allowing you to make a latency measurement to a remote peer.\n *\n * @example\n *\n * ```typescript\n * import { createLibp2p } from 'libp2p'\n * import { ping } from '@libp2p/ping'\n * import { multiaddr } from '@multiformats/multiaddr'\n *\n * const node = await createLibp2p({\n * services: {\n * ping: ping()\n * }\n * })\n *\n * const rtt = await node.services.ping.ping(multiaddr('/ip4/...'))\n *\n * console.info(rtt)\n * ```\n */ \nfunction ping(init = {}) {\n return (components)=>new _ping_js__WEBPACK_IMPORTED_MODULE_0__.PingService(components, init);\n}\n //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9waW5nL2Rpc3Qvc3JjL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNCQyxHQUMyRDtBQUNyRCxTQUFTRSxLQUFLQyxPQUFPLENBQUMsQ0FBQztJQUMxQixPQUFPLENBQUNDLGFBQWUsSUFBSUgsaURBQWdCQSxDQUFDRyxZQUFZRDtBQUM1RDtBQUMrQyxDQUMvQyxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL3BpbmcvZGlzdC9zcmMvaW5kZXguanM/MTgyOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFRoZSBwaW5nIHNlcnZpY2UgaW1wbGVtZW50cyB0aGUgW2xpYnAycCBwaW5nIHNwZWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9saWJwMnAvc3BlY3MvYmxvYi9tYXN0ZXIvcGluZy9waW5nLm1kKSBhbGxvd2luZyB5b3UgdG8gbWFrZSBhIGxhdGVuY3kgbWVhc3VyZW1lbnQgdG8gYSByZW1vdGUgcGVlci5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IGNyZWF0ZUxpYnAycCB9IGZyb20gJ2xpYnAycCdcbiAqIGltcG9ydCB7IHBpbmcgfSBmcm9tICdAbGlicDJwL3BpbmcnXG4gKiBpbXBvcnQgeyBtdWx0aWFkZHIgfSBmcm9tICdAbXVsdGlmb3JtYXRzL211bHRpYWRkcidcbiAqXG4gKiBjb25zdCBub2RlID0gYXdhaXQgY3JlYXRlTGlicDJwKHtcbiAqICAgc2VydmljZXM6IHtcbiAqICAgICBwaW5nOiBwaW5nKClcbiAqICAgfVxuICogfSlcbiAqXG4gKiBjb25zdCBydHQgPSBhd2FpdCBub2RlLnNlcnZpY2VzLnBpbmcucGluZyhtdWx0aWFkZHIoJy9pcDQvLi4uJykpXG4gKlxuICogY29uc29sZS5pbmZvKHJ0dClcbiAqIGBgYFxuICovXG5pbXBvcnQgeyBQaW5nU2VydmljZSBhcyBQaW5nU2VydmljZUNsYXNzIH0gZnJvbSAnLi9waW5nLmpzJztcbmV4cG9ydCBmdW5jdGlvbiBwaW5nKGluaXQgPSB7fSkge1xuICAgIHJldHVybiAoY29tcG9uZW50cykgPT4gbmV3IFBpbmdTZXJ2aWNlQ2xhc3MoY29tcG9uZW50cywgaW5pdCk7XG59XG5leHBvcnQgeyBQSU5HX1BST1RPQ09MIH0gZnJvbSAnLi9jb25zdGFudHMuanMnO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbIlBpbmdTZXJ2aWNlIiwiUGluZ1NlcnZpY2VDbGFzcyIsInBpbmciLCJpbml0IiwiY29tcG9uZW50cyIsIlBJTkdfUFJPVE9DT0wiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/ping/dist/src/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/ping/dist/src/ping.js":
/*!****************************************************!*\
!*** ./node_modules/@libp2p/ping/dist/src/ping.js ***!
\****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PingService: () => (/* binding */ PingService)\n/* harmony export */ });\n/* harmony import */ var _libp2p_crypto__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @libp2p/crypto */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/random-bytes.js\");\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var it_first__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! it-first */ \"(ssr)/./node_modules/it-first/dist/src/index.js\");\n/* harmony import */ var it_pipe__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! it-pipe */ \"(ssr)/./node_modules/it-pipe/dist/src/index.js\");\n/* harmony import */ var uint8arrays_equals__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uint8arrays/equals */ \"(ssr)/./node_modules/uint8arrays/dist/src/equals.js\");\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants.js */ \"(ssr)/./node_modules/@libp2p/ping/dist/src/constants.js\");\n\n\n\n\n\n\nclass PingService {\n constructor(components, init = {}){\n this.components = components;\n this.log = components.logger.forComponent(\"libp2p:ping\");\n this.started = false;\n this.protocol = `/${init.protocolPrefix ?? _constants_js__WEBPACK_IMPORTED_MODULE_3__.PROTOCOL_PREFIX}/${_constants_js__WEBPACK_IMPORTED_MODULE_3__.PROTOCOL_NAME}/${_constants_js__WEBPACK_IMPORTED_MODULE_3__.PROTOCOL_VERSION}`;\n this.timeout = init.timeout ?? _constants_js__WEBPACK_IMPORTED_MODULE_3__.TIMEOUT;\n this.maxInboundStreams = init.maxInboundStreams ?? _constants_js__WEBPACK_IMPORTED_MODULE_3__.MAX_INBOUND_STREAMS;\n this.maxOutboundStreams = init.maxOutboundStreams ?? _constants_js__WEBPACK_IMPORTED_MODULE_3__.MAX_OUTBOUND_STREAMS;\n this.runOnTransientConnection = init.runOnTransientConnection ?? true;\n this.handleMessage = this.handleMessage.bind(this);\n }\n async start() {\n await this.components.registrar.handle(this.protocol, this.handleMessage, {\n maxInboundStreams: this.maxInboundStreams,\n maxOutboundStreams: this.maxOutboundStreams,\n runOnTransientConnection: this.runOnTransientConnection\n });\n this.started = true;\n }\n async stop() {\n await this.components.registrar.unhandle(this.protocol);\n this.started = false;\n }\n isStarted() {\n return this.started;\n }\n /**\n * A handler to register with Libp2p to process ping messages\n */ handleMessage(data) {\n this.log(\"incoming ping from %p\", data.connection.remotePeer);\n const { stream } = data;\n const start = Date.now();\n void (0,it_pipe__WEBPACK_IMPORTED_MODULE_1__.pipe)(stream, stream).catch((err)=>{\n this.log.error(\"incoming ping from %p failed with error\", data.connection.remotePeer, err);\n }).finally(()=>{\n const ms = Date.now() - start;\n this.log(\"incoming ping from %p complete in %dms\", data.connection.remotePeer, ms);\n });\n }\n /**\n * Ping a given peer and wait for its response, getting the operation latency.\n */ async ping(peer, options = {}) {\n this.log(\"pinging %p\", peer);\n const start = Date.now();\n const data = (0,_libp2p_crypto__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(_constants_js__WEBPACK_IMPORTED_MODULE_3__.PING_LENGTH);\n const connection = await this.components.connectionManager.openConnection(peer, options);\n let stream;\n let onAbort = ()=>{};\n if (options.signal == null) {\n const signal = AbortSignal.timeout(this.timeout);\n options = {\n ...options,\n signal\n };\n }\n try {\n stream = await connection.newStream(this.protocol, {\n ...options,\n runOnTransientConnection: this.runOnTransientConnection\n });\n onAbort = ()=>{\n stream?.abort(new _libp2p_interface__WEBPACK_IMPORTED_MODULE_5__.CodeError(\"ping timeout\", _libp2p_interface__WEBPACK_IMPORTED_MODULE_5__.ERR_TIMEOUT));\n };\n // make stream abortable\n options.signal?.addEventListener(\"abort\", onAbort, {\n once: true\n });\n const result = await (0,it_pipe__WEBPACK_IMPORTED_MODULE_1__.pipe)([\n data\n ], stream, async (source)=>(0,it_first__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(source));\n const ms = Date.now() - start;\n if (result == null) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_5__.CodeError(`Did not receive a ping ack after ${ms}ms`, _constants_js__WEBPACK_IMPORTED_MODULE_3__.ERR_WRONG_PING_ACK);\n }\n if (!(0,uint8arrays_equals__WEBPACK_IMPORTED_MODULE_2__.equals)(data, result.subarray())) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_5__.CodeError(`Received wrong ping ack after ${ms}ms`, _constants_js__WEBPACK_IMPORTED_MODULE_3__.ERR_WRONG_PING_ACK);\n }\n this.log(\"ping %p complete in %dms\", connection.remotePeer, ms);\n return ms;\n } catch (err) {\n this.log.error(\"error while pinging %p\", connection.remotePeer, err);\n stream?.abort(err);\n throw err;\n } finally{\n options.signal?.removeEventListener(\"abort\", onAbort);\n if (stream != null) {\n await stream.close();\n }\n }\n }\n} //# sourceMappingURL=ping.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9waW5nL2Rpc3Qvc3JjL3BpbmcuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUE2QztBQUNjO0FBQzlCO0FBQ0U7QUFDaUM7QUFDdUc7QUFDaEssTUFBTWU7SUFTVEMsWUFBWUMsVUFBVSxFQUFFQyxPQUFPLENBQUMsQ0FBQyxDQUFFO1FBQy9CLElBQUksQ0FBQ0QsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNFLEdBQUcsR0FBR0YsV0FBV0csTUFBTSxDQUFDQyxZQUFZLENBQUM7UUFDMUMsSUFBSSxDQUFDQyxPQUFPLEdBQUc7UUFDZixJQUFJLENBQUNDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRUwsS0FBS00sY0FBYyxJQUFJakIsMERBQWVBLENBQUMsQ0FBQyxFQUFFQyx3REFBYUEsQ0FBQyxDQUFDLEVBQUVFLDJEQUFnQkEsQ0FBQyxDQUFDO1FBQ2pHLElBQUksQ0FBQ2UsT0FBTyxHQUFHUCxLQUFLTyxPQUFPLElBQUlkLGtEQUFPQTtRQUN0QyxJQUFJLENBQUNlLGlCQUFpQixHQUFHUixLQUFLUSxpQkFBaUIsSUFBSWQsOERBQW1CQTtRQUN0RSxJQUFJLENBQUNlLGtCQUFrQixHQUFHVCxLQUFLUyxrQkFBa0IsSUFBSWQsK0RBQW9CQTtRQUN6RSxJQUFJLENBQUNlLHdCQUF3QixHQUFHVixLQUFLVSx3QkFBd0IsSUFBSTtRQUNqRSxJQUFJLENBQUNDLGFBQWEsR0FBRyxJQUFJLENBQUNBLGFBQWEsQ0FBQ0MsSUFBSSxDQUFDLElBQUk7SUFDckQ7SUFDQSxNQUFNQyxRQUFRO1FBQ1YsTUFBTSxJQUFJLENBQUNkLFVBQVUsQ0FBQ2UsU0FBUyxDQUFDQyxNQUFNLENBQUMsSUFBSSxDQUFDVixRQUFRLEVBQUUsSUFBSSxDQUFDTSxhQUFhLEVBQUU7WUFDdEVILG1CQUFtQixJQUFJLENBQUNBLGlCQUFpQjtZQUN6Q0Msb0JBQW9CLElBQUksQ0FBQ0Esa0JBQWtCO1lBQzNDQywwQkFBMEIsSUFBSSxDQUFD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V0FBV0MsVUFBVSxFQUFFSztZQUNoRUosUUFBUWlCLE1BQU1iO1lBQ2QsTUFBTUE7UUFDVixTQUNRO1lBQ0pNLFFBQVFJLE1BQU0sRUFBRVMsb0JBQW9CLFNBQVNWO1lBQzdDLElBQUliLFVBQVUsTUFBTTtnQkFDaEIsTUFBTUEsT0FBT3dCLEtBQUs7WUFDdEI7UUFDSjtJQUNKO0FBQ0osRUFDQSxnQ0FBZ0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL3BpbmcvZGlzdC9zcmMvcGluZy5qcz8wZTIwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJhbmRvbUJ5dGVzIH0gZnJvbSAnQGxpYnAycC9jcnlwdG8nO1xuaW1wb3J0IHsgQ29kZUVycm9yLCBFUlJfVElNRU9VVCB9IGZyb20gJ0BsaWJwMnAvaW50ZXJmYWNlJztcbmltcG9ydCBmaXJzdCBmcm9tICdpdC1maXJzdCc7XG5pbXBvcnQgeyBwaXBlIH0gZnJvbSAnaXQtcGlwZSc7XG5pbXBvcnQgeyBlcXVhbHMgYXMgdWludDhBcnJheUVxdWFscyB9IGZyb20gJ3VpbnQ4YXJyYXlzL2VxdWFscyc7XG5pbXBvcnQgeyBQUk9UT0NPTF9QUkVGSVgsIFBST1RPQ09MX05BTUUsIFBJTkdfTEVOR1RILCBQUk9UT0NPTF9WRVJTSU9OLCBUSU1FT1VULCBNQVhfSU5CT1VORF9TVFJFQU1TLCBNQVhfT1VUQk9VTkRfU1RSRUFNUywgRVJSX1dST05HX1BJTkdfQUNLIH0gZnJvbSAnLi9jb25zdGFudHMuanMnO1xuZXhwb3J0IGNsYXNzIFBpbmdTZXJ2aWNlIHtcbiAgICBwcm90b2NvbDtcbiAgICBjb21wb25lbnRzO1xuICAgIHN0YXJ0ZWQ7XG4gICAgdGltZW91dDtcbiAgICBtYXhJbmJvdW5kU3RyZWFtcztcbiAgICBtYXhPdXRib3VuZFN0cmVhbXM7XG4gICAgcnVuT25UcmFuc2llbnRDb25uZWN0aW9uO1xuICAgIGxvZztcbiAgICBjb25zdHJ1Y3Rvcihjb21wb25lbnRzLCBpbml0ID0ge30pIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRzID0gY29tcG9uZW50cztcbiAgICAgICAgdGhpcy5sb2cgPSBjb21wb25lbnRzLmxvZ2dlci5mb3JDb21wb25lbnQoJ2xpYnAycDpwaW5nJyk7XG4gICAgICAgIHRoaXMuc3RhcnRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnByb3RvY29sID0gYC8ke2luaXQucHJvdG9jb2xQcmVmaXggPz8gUFJPVE9DT0xfUFJFRklYfS8ke1BST1RPQ09MX05BTUV9LyR7UFJPVE9DT0xfVkVSU0lPTn1gO1xuICAgICAgICB0aGlzLnRpbWVvdXQgPSBpbml0LnRpbWVvdXQgPz8gVElNRU9VVDtcbiAgICAgICAgdGhpcy5tYXhJbmJvdW5kU3RyZWFtcyA9IGluaXQubWF4SW5ib3VuZFN0cmVhbXMgPz8gTUFYX0lOQk9VTkRfU1RSRUFNUztcbiAgICAgICAgdGhpcy5tYXhPdXRib3VuZFN0cmVhbXMgPSBpbml0Lm1heE91dGJvdW5kU3RyZWFtcyA/PyBNQVhfT1VUQk9VTkRfU1RSRUFNUztcbiAgICAgICAgdGhpcy5ydW5PblRyYW5zaWVudENvbm5lY3Rpb24gPSBpbml0LnJ1bk9uVHJhbnNpZW50Q29ubmVjdGlvbiA/PyB0cnVlO1xuICAgICAgICB0aGlzLmhhbmRsZU1lc3NhZ2UgPSB0aGlzLmhhbmRsZU1lc3NhZ2UuYmluZCh0aGlzKTtcbiAgICB9XG4gICAgYXN5bmMgc3RhcnQoKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuY29tcG9uZW50cy5yZWdpc3RyYXIuaGFuZGxlKHRoaXMucHJvdG9jb2wsIHRoaXMuaGFuZGxlTWVzc2FnZSwge1xuICAgICAgICAgICAgbWF4SW5ib3VuZFN0cmVhbXM6IHRoaXMubWF4SW5ib3VuZFN0cmVhbXMsXG4gICAgICAgICAgICBtYXhPdXRib3VuZFN0cmVhbXM6IHRoaXMubWF4T3V0Ym91bmRTdHJlYW1zLFxuICAgICAgICAgICAgcnVuT25UcmFuc2llbnRDb25uZWN0aW9uOiB0aGlzLnJ1bk9uVHJhbnNpZW50Q29ubmVjdGlvblxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdGFydGVkID0gdHJ1ZTtcbiAgICB9XG4gICAgYXN5bmMgc3RvcCgpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5jb21wb25lbnRzLnJlZ2lzdHJhci51bmhhbmRsZSh0aGlzLnByb3RvY29sKTtcbiAgICAgICAgdGhpcy5zdGFydGVkID0gZmFsc2U7XG4gICAgfVxuICAgIGlzU3RhcnRlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRlZDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQSBoYW5kbGVyIHRvIHJlZ2lzdGVyIHdpdGggTGlicDJwIHRvIHByb2Nlc3MgcGluZyBtZXNzYWdlc1xuICAgICAqL1xuICAgIGhhbmRsZU1lc3NhZ2UoZGF0YSkge1xuICAgICAgICB0aGlzLmxvZygnaW5jb21pbmcgcGluZyBmcm9tICVwJywgZGF0YS5jb25uZWN0aW9uLnJlbW90ZVBlZXIpO1xuICAgICAgICBjb25zdCB7IHN0cmVhbSB9ID0gZGF0YTtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgICAgICB2b2lkIHBpcGUoc3RyZWFtLCBzdHJlYW0pXG4gICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9nLmVycm9yKCdpbmNvbWluZyBwaW5nIGZyb20gJXAgZmFpbGVkIHdpdGggZXJyb3InLCBkYXRhLmNvbm5lY3Rpb24ucmVtb3RlUGVlciwgZXJyKTtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1zID0gRGF0ZS5ub3coKSAtIHN0YXJ0O1xuICAgICAgICAgICAgdGhpcy5sb2coJ2luY29taW5nIHBpbmcgZnJvbSAlcCBjb21wbGV0ZSBpbiAlZG1zJywgZGF0YS5jb25uZWN0aW9uLnJlbW90ZVBlZXIsIG1zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFBpbmcgYSBnaXZlbiBwZWVyIGFuZCB3YWl0IGZvciBpdHMgcmVzcG9uc2UsIGdldHRpbmcgdGhlIG9wZXJhdGlvbiBsYXRlbmN5LlxuICAgICAqL1xuICAgIGFzeW5jIHBpbmcocGVlciwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHRoaXMubG9nKCdwaW5naW5nICVwJywgcGVlcik7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHJhbmRvbUJ5dGVzKFBJTkdfTEVOR1RIKTtcbiAgICAgICAgY29uc3QgY29ubmVjdGlvbiA9IGF3YWl0IHRoaXMuY29tcG9uZW50cy5jb25uZWN0aW9uTWFuYWdlci5vcGVuQ29ubmVjdGlvbihwZWVyLCBvcHRpb25zKTtcbiAgICAgICAgbGV0IHN0cmVhbTtcbiAgICAgICAgbGV0IG9uQWJvcnQgPSAoKSA9PiB7IH07XG4gICAgICAgIGlmIChvcHRpb25zLnNpZ25hbCA9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBzaWduYWwgPSBBYm9ydFNpZ25hbC50aW1lb3V0KHRoaXMudGltZW91dCk7XG4gICAgICAgICAgICBvcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgc2lnbmFsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBzdHJlYW0gPSBhd2FpdCBjb25uZWN0aW9uLm5ld1N0cmVhbSh0aGlzLnByb3RvY29sLCB7XG4gICAgICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgICAgICBydW5PblRyYW5zaWVudENvbm5lY3Rpb246IHRoaXMucnVuT25UcmFuc2llbnRDb25uZWN0aW9uXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG9uQWJvcnQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgc3RyZWFtPy5hYm9ydChuZXcgQ29kZUVycm9yKCdwaW5nIHRpbWVvdXQnLCBFUlJfVElNRU9VVCkpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vIG1ha2Ugc3RyZWFtIGFib3J0YWJsZVxuICAgICAgICAgICAgb3B0aW9ucy5zaWduYWw/LmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25BYm9ydCwgeyBvbmNlOiB0cnVlIH0pO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcGlwZShbZGF0YV0sIHN0cmVhbSwgYXN5bmMgKHNvdXJjZSkgPT4gZmlyc3Qoc291cmNlKSk7XG4gICAgICAgICAgICBjb25zdCBtcyA9IERhdGUubm93KCkgLSBzdGFydDtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoYERpZCBub3QgcmVjZWl2ZSBhIHBpbmcgYWNrIGFmdGVyICR7bXN9bXNgLCBFUlJfV1JPTkdfUElOR19BQ0spO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF1aW50OEFycmF5RXF1YWxzKGRhdGEsIHJlc3VsdC5zdWJhcnJheSgpKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoYFJlY2VpdmVkIHdyb25nIHBpbmcgYWNrIGFmdGVyICR7bXN9bXNgLCBFUlJfV1JPTkdfUElOR19BQ0spO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5sb2coJ3BpbmcgJXAgY29tcGxldGUgaW4gJWRtcycsIGNvbm5lY3Rpb24ucmVtb3RlUGVlciwgbXMpO1xuICAgICAgICAgICAgcmV0dXJuIG1zO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHRoaXMubG9nLmVycm9yKCdlcnJvciB3aGlsZSBwaW5naW5nICVwJywgY29ubmVjdGlvbi5yZW1vdGVQZWVyLCBlcnIpO1xuICAgICAgICAgICAgc3RyZWFtPy5hYm9ydChlcnIpO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgb3B0aW9ucy5zaWduYWw/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25BYm9ydCk7XG4gICAgICAgICAgICBpZiAoc3RyZWFtICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBzdHJlYW0uY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBpbmcuanMubWFwIl0sIm5hbWVzIjpbInJhbmRvbUJ5dGVzIiwiQ29kZUVycm9yIiwiRVJSX1RJTUVPVVQiLCJmaXJzdCIsInBpcGUiLCJlcXVhbHMiLCJ1aW50OEFycmF5RXF1YWxzIiwiUFJPVE9DT0xfUFJFRklYIiwiUFJPVE9DT0xfTkFNRSIsIlBJTkdfTEVOR1RIIiwiUFJPVE9DT0xfVkVSU0lPTiIsIlRJTUVPVVQiLCJNQVhfSU5CT1VORF9TVFJFQU1TIiwiTUFYX09VVEJPVU5EX1NUUkVBTVMiLCJFUlJfV1JPTkdfUElOR19BQ0siLCJQaW5nU2VydmljZSIsImNvbnN0cnVjdG9yIiwiY29tcG9uZW50cyIsImluaXQiLCJsb2ciLCJsb2dnZXIiLCJmb3JDb21wb25lbnQiLCJzdGFydGVkIiwicHJvdG9jb2wiLCJwcm90b2NvbFByZWZpeCIsInRpbWVvdXQiLCJtYXhJbmJvdW5kU3RyZWFtcyIsIm1heE91dGJvdW5kU3RyZWFtcyIsInJ1bk9uVHJhbnNpZW50Q29ubmVjdGlvbiIsImhhbmRsZU1lc3NhZ2UiLCJiaW5kIiwic3RhcnQiLCJyZWdpc3RyYXIiLCJoYW5kbGUiLCJzdG9wIiwidW5oYW5kbGUiLCJpc1N0YXJ0ZWQiLCJkYXRhIiwiY29ubmVjdGlvbiIsInJlbW90ZVBlZXIiLCJzdHJlYW0iLCJEYXRlIiwibm93IiwiY2F0Y2giLCJlcnIiLCJlcnJvciIsImZpbmFsbHkiLCJtcyIsInBpbmciLCJwZWVyIiwib3B0aW9ucyIsImNvbm5lY3Rpb25NYW5hZ2VyIiwib3BlbkNvbm5lY3Rpb24iLCJvbkFib3J0Iiwic2lnbmFsIiwiQWJvcnRTaWduYWwiLCJuZXdTdHJlYW0iLCJhYm9ydCIsImFkZEV2ZW50TGlzdGVuZXIiLCJvbmNlIiwicmVzdWx0Iiwic291cmNlIiwic3ViYXJyYXkiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY2xvc2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/ping/dist/src/ping.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/pubsub/dist/src/errors.js":
/*!********************************************************!*\
!*** ./node_modules/@libp2p/pubsub/dist/src/errors.js ***!
\********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ codes: () => (/* binding */ codes)\n/* harmony export */ });\nconst codes = {\n /**\n * Signature policy is invalid\n */ ERR_INVALID_SIGNATURE_POLICY: \"ERR_INVALID_SIGNATURE_POLICY\",\n /**\n * Signature policy is unhandled\n */ ERR_UNHANDLED_SIGNATURE_POLICY: \"ERR_UNHANDLED_SIGNATURE_POLICY\",\n // Strict signing codes\n /**\n * Message expected to have a `signature`, but doesn't\n */ ERR_MISSING_SIGNATURE: \"ERR_MISSING_SIGNATURE\",\n /**\n * Message expected to have a `seqno`, but doesn't\n */ ERR_MISSING_SEQNO: \"ERR_MISSING_SEQNO\",\n /**\n * Message expected to have a `key`, but doesn't\n */ ERR_MISSING_KEY: \"ERR_MISSING_KEY\",\n /**\n * Message `signature` is invalid\n */ ERR_INVALID_SIGNATURE: \"ERR_INVALID_SIGNATURE\",\n /**\n * Message expected to have a `from`, but doesn't\n */ ERR_MISSING_FROM: \"ERR_MISSING_FROM\",\n // Strict no-signing codes\n /**\n * Message expected to not have a `from`, but does\n */ ERR_UNEXPECTED_FROM: \"ERR_UNEXPECTED_FROM\",\n /**\n * Message expected to not have a `signature`, but does\n */ ERR_UNEXPECTED_SIGNATURE: \"ERR_UNEXPECTED_SIGNATURE\",\n /**\n * Message expected to not have a `key`, but does\n */ ERR_UNEXPECTED_KEY: \"ERR_UNEXPECTED_KEY\",\n /**\n * Message expected to not have a `seqno`, but does\n */ ERR_UNEXPECTED_SEQNO: \"ERR_UNEXPECTED_SEQNO\",\n /**\n * Message failed topic validator\n */ ERR_TOPIC_VALIDATOR_REJECT: \"ERR_TOPIC_VALIDATOR_REJECT\"\n}; //# sourceMappingURL=errors.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wdWJzdWIvZGlzdC9zcmMvZXJyb3JzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxNQUFNQSxRQUFRO0lBQ2pCOztLQUVDLEdBQ0RDLDhCQUE4QjtJQUM5Qjs7S0FFQyxHQUNEQyxnQ0FBZ0M7SUFDaEMsdUJBQXVCO0lBQ3ZCOztLQUVDLEdBQ0RDLHVCQUF1QjtJQUN2Qjs7S0FFQyxHQUNEQyxtQkFBbUI7SUFDbkI7O0tBRUMsR0FDREMsaUJBQWlCO0lBQ2pCOztLQUVDLEdBQ0RDLHVCQUF1QjtJQUN2Qjs7S0FFQyxHQUNEQyxrQkFBa0I7SUFDbEIsMEJBQTBCO0lBQzFCOztLQUVDLEdBQ0RDLHFCQUFxQjtJQUNyQjs7S0FFQyxHQUNEQywwQkFBMEI7SUFDMUI7O0tBRUMsR0FDREMsb0JBQW9CO0lBQ3BCOztLQUVDLEdBQ0RDLHNCQUFzQjtJQUN0Qjs7S0FFQyxHQUNEQyw0QkFBNEI7QUFDaEMsRUFBRSxDQUNGLGtDQUFrQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvcHVic3ViL2Rpc3Qvc3JjL2Vycm9ycy5qcz9hZmExIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBjb2RlcyA9IHtcbiAgICAvKipcbiAgICAgKiBTaWduYXR1cmUgcG9saWN5IGlzIGludmFsaWRcbiAgICAgKi9cbiAgICBFUlJfSU5WQUxJRF9TSUdOQVRVUkVfUE9MSUNZOiAnRVJSX0lOVkFMSURfU0lHTkFUVVJFX1BPTElDWScsXG4gICAgLyoqXG4gICAgICogU2lnbmF0dXJlIHBvbGljeSBpcyB1bmhhbmRsZWRcbiAgICAgKi9cbiAgICBFUlJfVU5IQU5ETEVEX1NJR05BVFVSRV9QT0xJQ1k6ICdFUlJfVU5IQU5ETEVEX1NJR05BVFVSRV9QT0xJQ1knLFxuICAgIC8vIFN0cmljdCBzaWduaW5nIGNvZGVzXG4gICAgLyoqXG4gICAgICogTWVzc2FnZSBleHBlY3RlZCB0byBoYXZlIGEgYHNpZ25hdHVyZWAsIGJ1dCBkb2Vzbid0XG4gICAgICovXG4gICAgRVJSX01JU1NJTkdfU0lHTkFUVVJFOiAnRVJSX01JU1NJTkdfU0lHTkFUVVJFJyxcbiAgICAvKipcbiAgICAgKiBNZXNzYWdlIGV4cGVjdGVkIHRvIGhhdmUgYSBgc2Vxbm9gLCBidXQgZG9lc24ndFxuICAgICAqL1xuICAgIEVSUl9NSVNTSU5HX1NFUU5POiAnRVJSX01JU1NJTkdfU0VRTk8nLFxuICAgIC8qKlxuICAgICAqIE1lc3NhZ2UgZXhwZWN0ZWQgdG8gaGF2ZSBhIGBrZXlgLCBidXQgZG9lc24ndFxuICAgICAqL1xuICAgIEVSUl9NSVNTSU5HX0tFWTogJ0VSUl9NSVNTSU5HX0tFWScsXG4gICAgLyoqXG4gICAgICogTWVzc2FnZSBgc2lnbmF0dXJlYCBpcyBpbnZhbGlkXG4gICAgICovXG4gICAgRVJSX0lOVkFMSURfU0lHTkFUVVJFOiAnRVJSX0lOVkFMSURfU0lHTkFUVVJFJyxcbiAgICAvKipcbiAgICAgKiBNZXNzYWdlIGV4cGVjdGVkIHRvIGhhdmUgYSBgZnJvbWAsIGJ1dCBkb2Vzbid0XG4gICAgICovXG4gICAgRVJSX01JU1NJTkdfRlJPTTogJ0VSUl9NSVNTSU5HX0ZST00nLFxuICAgIC8vIFN0cmljdCBuby1zaWduaW5nIGNvZGVzXG4gICAgLyoqXG4gICAgICogTWVzc2FnZSBleHBlY3RlZCB0byBub3QgaGF2ZSBhIGBmcm9tYCwgYnV0IGRvZXNcbiAgICAgKi9cbiAgICBFUlJfVU5FWFBFQ1RFRF9GUk9NOiAnRVJSX1VORVhQRUNURURfRlJPTScsXG4gICAgLyoqXG4gICAgICogTWVzc2FnZSBleHBlY3RlZCB0byBub3QgaGF2ZSBhIGBzaWduYXR1cmVgLCBidXQgZG9lc1xuICAgICAqL1xuICAgIEVSUl9VTkVYUEVDVEVEX1NJR05BVFVSRTogJ0VSUl9VTkVYUEVDVEVEX1NJR05BVFVSRScsXG4gICAgLyoqXG4gICAgICogTWVzc2FnZSBleHBlY3RlZCB0byBub3QgaGF2ZSBhIGBrZXlgLCBidXQgZG9lc1xuICAgICAqL1xuICAgIEVSUl9VTkVYUEVDVEVEX0tFWTogJ0VSUl9VTkVYUEVDVEVEX0tFWScsXG4gICAgLyoqXG4gICAgICogTWVzc2FnZSBleHBlY3RlZCB0byBub3QgaGF2ZSBhIGBzZXFub2AsIGJ1dCBkb2VzXG4gICAgICovXG4gICAgRVJSX1VORVhQRUNURURfU0VRTk86ICdFUlJfVU5FWFBFQ1RFRF9TRVFOTycsXG4gICAgLyoqXG4gICAgICogTWVzc2FnZSBmYWlsZWQgdG9waWMgdmFsaWRhdG9yXG4gICAgICovXG4gICAgRVJSX1RPUElDX1ZBTElEQVRPUl9SRUpFQ1Q6ICdFUlJfVE9QSUNfVkFMSURBVE9SX1JFSkVDVCdcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1lcnJvcnMuanMubWFwIl0sIm5hbWVzIjpbImNvZGVzIiwiRVJSX0lOVkFMSURfU0lHTkFUVVJFX1BPTElDWSIsIkVSUl9VTkhBTkRMRURfU0lHTkFUVVJFX1BPTElDWSIsIkVSUl9NSVNTSU5HX1NJR05BVFVSRSIsIkVSUl9NSVNTSU5HX1NFUU5PIiwiRVJSX01JU1NJTkdfS0VZIiwiRVJSX0lOVkFMSURfU0lHTkFUVVJFIiwiRVJSX01JU1NJTkdfRlJPTSIsIkVSUl9VTkVYUEVDVEVEX0ZST00iLCJFUlJfVU5FWFBFQ1RFRF9TSUdOQVRVUkUiLCJFUlJfVU5FWFBFQ1RFRF9LRVkiLCJFUlJfVU5FWFBFQ1RFRF9TRVFOTyIsIkVSUl9UT1BJQ19WQUxJREFUT1JfUkVKRUNUIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/pubsub/dist/src/errors.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/pubsub/dist/src/utils.js":
/*!*******************************************************!*\
!*** ./node_modules/@libp2p/pubsub/dist/src/utils.js ***!
\*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ anyMatch: () => (/* binding */ anyMatch),\n/* harmony export */ bigIntFromBytes: () => (/* binding */ bigIntFromBytes),\n/* harmony export */ bigIntToBytes: () => (/* binding */ bigIntToBytes),\n/* harmony export */ ensureArray: () => (/* binding */ ensureArray),\n/* harmony export */ msgId: () => (/* binding */ msgId),\n/* harmony export */ noSignMsgId: () => (/* binding */ noSignMsgId),\n/* harmony export */ randomSeqno: () => (/* binding */ randomSeqno),\n/* harmony export */ toMessage: () => (/* binding */ toMessage),\n/* harmony export */ toRpcMessage: () => (/* binding */ toRpcMessage)\n/* harmony export */ });\n/* harmony import */ var _libp2p_crypto__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @libp2p/crypto */ \"(ssr)/./node_modules/@libp2p/crypto/dist/src/random-bytes.js\");\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var _libp2p_peer_id__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @libp2p/peer-id */ \"(ssr)/./node_modules/@libp2p/peer-id/dist/src/index.js\");\n/* harmony import */ var multiformats_hashes_sha2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! multiformats/hashes/sha2 */ \"(ssr)/./node_modules/multiformats/dist/src/hashes/sha2.js\");\n/* harmony import */ var uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uint8arrays/from-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/from-string.node.js\");\n/* harmony import */ var uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uint8arrays/to-string */ \"(ssr)/./node_modules/uint8arrays/dist/src/to-string.node.js\");\n/* harmony import */ var _errors_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./errors.js */ \"(ssr)/./node_modules/@libp2p/pubsub/dist/src/errors.js\");\n\n\n\n\n\n\n\n/**\n * Generate a random sequence number\n */ function randomSeqno() {\n return BigInt(`0x${(0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__.toString)((0,_libp2p_crypto__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(8), \"base16\")}`);\n}\n/**\n * Generate a message id, based on the `key` and `seqno`\n */ const msgId = (key, seqno)=>{\n const seqnoBytes = (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__.fromString)(seqno.toString(16).padStart(16, \"0\"), \"base16\");\n const msgId = new Uint8Array(key.length + seqnoBytes.length);\n msgId.set(key, 0);\n msgId.set(seqnoBytes, key.length);\n return msgId;\n};\n/**\n * Generate a message id, based on message `data`\n */ const noSignMsgId = (data)=>{\n return multiformats_hashes_sha2__WEBPACK_IMPORTED_MODULE_0__.sha256.encode(data);\n};\n/**\n * Check if any member of the first set is also a member\n * of the second set\n */ const anyMatch = (a, b)=>{\n let bHas;\n if (Array.isArray(b)) {\n bHas = (val)=>b.includes(val);\n } else {\n bHas = (val)=>b.has(val);\n }\n for (const val of a){\n if (bHas(val)) {\n return true;\n }\n }\n return false;\n};\n/**\n * Make everything an array\n */ const ensureArray = function(maybeArray) {\n if (!Array.isArray(maybeArray)) {\n return [\n maybeArray\n ];\n }\n return maybeArray;\n};\nconst isSigned = async (message)=>{\n if (message.sequenceNumber == null || message.from == null || message.signature == null) {\n return false;\n }\n // if a public key is present in the `from` field, the message should be signed\n const fromID = (0,_libp2p_peer_id__WEBPACK_IMPORTED_MODULE_4__.peerIdFromBytes)(message.from);\n if (fromID.publicKey != null) {\n return true;\n }\n if (message.key != null) {\n const signingID = await (0,_libp2p_peer_id__WEBPACK_IMPORTED_MODULE_4__.peerIdFromKeys)(message.key);\n return signingID.equals(fromID);\n }\n return false;\n};\nconst toMessage = async (message)=>{\n if (message.from == null) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_5__.CodeError(\"RPC message was missing from\", _errors_js__WEBPACK_IMPORTED_MODULE_6__.codes.ERR_MISSING_FROM);\n }\n if (!await isSigned(message)) {\n return {\n type: \"unsigned\",\n topic: message.topic ?? \"\",\n data: message.data ?? new Uint8Array(0)\n };\n }\n const from = (0,_libp2p_peer_id__WEBPACK_IMPORTED_MODULE_4__.peerIdFromBytes)(message.from);\n const msg = {\n type: \"signed\",\n from: (0,_libp2p_peer_id__WEBPACK_IMPORTED_MODULE_4__.peerIdFromBytes)(message.from),\n topic: message.topic ?? \"\",\n sequenceNumber: bigIntFromBytes(message.sequenceNumber ?? new Uint8Array(0)),\n data: message.data ?? new Uint8Array(0),\n signature: message.signature ?? new Uint8Array(0),\n key: message.key ?? from.publicKey ?? new Uint8Array(0)\n };\n if (msg.key.length === 0) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_5__.CodeError(\"Signed RPC message was missing key\", _errors_js__WEBPACK_IMPORTED_MODULE_6__.codes.ERR_MISSING_KEY);\n }\n return msg;\n};\nconst toRpcMessage = (message)=>{\n if (message.type === \"signed\") {\n return {\n from: message.from.multihash.bytes,\n data: message.data,\n sequenceNumber: bigIntToBytes(message.sequenceNumber),\n topic: message.topic,\n signature: message.signature,\n key: message.key\n };\n }\n return {\n data: message.data,\n topic: message.topic\n };\n};\nconst bigIntToBytes = (num)=>{\n let str = num.toString(16);\n if (str.length % 2 !== 0) {\n str = `0${str}`;\n }\n return (0,uint8arrays_from_string__WEBPACK_IMPORTED_MODULE_1__.fromString)(str, \"base16\");\n};\nconst bigIntFromBytes = (num)=>{\n return BigInt(`0x${(0,uint8arrays_to_string__WEBPACK_IMPORTED_MODULE_2__.toString)(num, \"base16\")}`);\n}; //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wdWJzdWIvZGlzdC9zcmMvdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUE2QztBQUNDO0FBQ29CO0FBQ2hCO0FBQzJCO0FBQ047QUFDbkM7QUFDcEM7O0NBRUMsR0FDTSxTQUFTVTtJQUNaLE9BQU9DLE9BQU8sQ0FBQyxFQUFFLEVBQUVILCtEQUFrQkEsQ0FBQ1IsMERBQVdBLENBQUMsSUFBSSxVQUFVLENBQUM7QUFDckU7QUFDQTs7Q0FFQyxHQUNNLE1BQU1ZLFFBQVEsQ0FBQ0MsS0FBS0M7SUFDdkIsTUFBTUMsYUFBYVQsbUVBQW9CQSxDQUFDUSxNQUFNUCxRQUFRLENBQUMsSUFBSVMsUUFBUSxDQUFDLElBQUksTUFBTTtJQUM5RSxNQUFNSixRQUFRLElBQUlLLFdBQVdKLElBQUlLLE1BQU0sR0FBR0gsV0FBV0csTUFBTTtJQUMzRE4sTUFBTU8sR0FBRyxDQUFDTixLQUFLO0lBQ2ZELE1BQU1PLEdBQUcsQ0FBQ0osWUFBWUYsSUFBSUssTUFBTTtJQUNoQyxPQUFPTjtBQUNYLEVBQUU7QUFDRjs7Q0FFQyxHQUNNLE1BQU1RLGNBQWMsQ0FBQ0M7SUFDeEIsT0FBT2pCLDREQUFNQSxDQUFDa0IsTUFBTSxDQUFDRDtBQUN6QixFQUFFO0FBQ0Y7OztDQUdDLEdBQ00sTUFBTUUsV0FBVyxDQUFDQyxHQUFHQztJQUN4QixJQUFJQztJQUNKLElBQUlDLE1BQU1DLE9BQU8sQ0FBQ0gsSUFBSTtRQUNsQkMsT0FBTyxDQUFDRyxNQUFRSixFQUFFSyxRQUFRLENBQUNEO0lBQy9CLE9BQ0s7UUFDREgsT0FBTyxDQUFDRyxNQUFRSixFQUFFTSxHQUFHLENBQUNGO0lBQzFCO0lBQ0EsS0FBSyxNQUFNQSxPQUFPTCxFQUFHO1FBQ2pCLElBQUlFLEtBQUtHLE1BQU07WUFDWCxPQUFPO1FBQ1g7SUFDSjtJQUNBLE9BQU87QUFDWCxFQUFFO0FBQ0Y7O0NBRUMsR0FDTSxNQUFNRyxjQUFjLFNBQVVDLFVB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cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC9wdWJzdWIvZGlzdC9zcmMvdXRpbHMuanM/Y2ZlMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByYW5kb21CeXRlcyB9IGZyb20gJ0BsaWJwMnAvY3J5cHRvJztcbmltcG9ydCB7IENvZGVFcnJvciB9IGZyb20gJ0BsaWJwMnAvaW50ZXJmYWNlJztcbmltcG9ydCB7IHBlZXJJZEZyb21CeXRlcywgcGVlcklkRnJvbUtleXMgfSBmcm9tICdAbGlicDJwL3BlZXItaWQnO1xuaW1wb3J0IHsgc2hhMjU2IH0gZnJvbSAnbXVsdGlmb3JtYXRzL2hhc2hlcy9zaGEyJztcbmltcG9ydCB7IGZyb21TdHJpbmcgYXMgdWludDhBcnJheUZyb21TdHJpbmcgfSBmcm9tICd1aW50OGFycmF5cy9mcm9tLXN0cmluZyc7XG5pbXBvcnQgeyB0b1N0cmluZyBhcyB1aW50OEFycmF5VG9TdHJpbmcgfSBmcm9tICd1aW50OGFycmF5cy90by1zdHJpbmcnO1xuaW1wb3J0IHsgY29kZXMgfSBmcm9tICcuL2Vycm9ycy5qcyc7XG4vKipcbiAqIEdlbmVyYXRlIGEgcmFuZG9tIHNlcXVlbmNlIG51bWJlclxuICovXG5leHBvcnQgZnVuY3Rpb24gcmFuZG9tU2Vxbm8oKSB7XG4gICAgcmV0dXJuIEJpZ0ludChgMHgke3VpbnQ4QXJyYXlUb1N0cmluZyhyYW5kb21CeXRlcyg4KSwgJ2Jhc2UxNicpfWApO1xufVxuLyoqXG4gKiBHZW5lcmF0ZSBhIG1lc3NhZ2UgaWQsIGJhc2VkIG9uIHRoZSBga2V5YCBhbmQgYHNlcW5vYFxuICovXG5leHBvcnQgY29uc3QgbXNnSWQgPSAoa2V5LCBzZXFubykgPT4ge1xuICAgIGNvbnN0IHNlcW5vQnl0ZXMgPSB1aW50OEFycmF5RnJvbVN0cmluZyhzZXFuby50b1N0cmluZygxNikucGFkU3RhcnQoMTYsICcwJyksICdiYXNlMTYnKTtcbiAgICBjb25zdCBtc2dJZCA9IG5ldyBVaW50OEFycmF5KGtleS5sZW5ndGggKyBzZXFub0J5dGVzLmxlbmd0aCk7XG4gICAgbXNnSWQuc2V0KGtleSwgMCk7XG4gICAgbXNnSWQuc2V0KHNlcW5vQnl0ZXMsIGtleS5sZW5ndGgpO1xuICAgIHJldHVybiBtc2dJZDtcbn07XG4vKipcbiAqIEdlbmVyYXRlIGEgbWVzc2FnZSBpZCwgYmFzZWQgb24gbWVzc2FnZSBgZGF0YWBcbiAqL1xuZXhwb3J0IGNvbnN0IG5vU2lnbk1zZ0lkID0gKGRhdGEpID0+IHtcbiAgICByZXR1cm4gc2hhMjU2LmVuY29kZShkYXRhKTtcbn07XG4vKipcbiAqIENoZWNrIGlmIGFueSBtZW1iZXIgb2YgdGhlIGZpcnN0IHNldCBpcyBhbHNvIGEgbWVtYmVyXG4gKiBvZiB0aGUgc2Vjb25kIHNldFxuICovXG5leHBvcnQgY29uc3QgYW55TWF0Y2ggPSAoYSwgYikgPT4ge1xuICAgIGxldCBiSGFzO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGIpKSB7XG4gICAgICAgIGJIYXMgPSAodmFsKSA9PiBiLmluY2x1ZGVzKHZhbCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBiSGFzID0gKHZhbCkgPT4gYi5oYXModmFsKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCB2YWwgb2YgYSkge1xuICAgICAgICBpZiAoYkhhcyh2YWwpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuLyoqXG4gKiBNYWtlIGV2ZXJ5dGhpbmcgYW4gYXJyYXlcbiAqL1xuZXhwb3J0IGNvbnN0IGVuc3VyZUFycmF5ID0gZnVuY3Rpb24gKG1heWJlQXJyYXkpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobWF5YmVBcnJheSkpIHtcbiAgICAgICAgcmV0dXJuIFttYXliZUFycmF5XTtcbiAgICB9XG4gICAgcmV0dXJuIG1heWJlQXJyYXk7XG59O1xuY29uc3QgaXNTaWduZWQgPSBhc3luYyAobWVzc2FnZSkgPT4ge1xuICAgIGlmICgobWVzc2FnZS5zZXF1ZW5jZU51bWJlciA9PSBudWxsKSB8fCAobWVzc2FnZS5mcm9tID09IG51bGwpIHx8IChtZXNzYWdlLnNpZ25hdHVyZSA9PSBudWxsKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIGlmIGEgcHVibGljIGtleSBpcyBwcmVzZW50IGluIHRoZSBgZnJvbWAgZmllbGQsIHRoZSBtZXNzYWdlIHNob3VsZCBiZSBzaWduZWRcbiAgICBjb25zdCBmcm9tSUQgPSBwZWVySWRGcm9tQnl0ZXMobWVzc2FnZS5mcm9tKTtcbiAgICBpZiAoZnJvbUlELnB1YmxpY0tleSAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5rZXkgIT0gbnVsbCkge1xuICAgICAgICBjb25zdCBzaWduaW5nSUQgPSBhd2FpdCBwZWVySWRGcm9tS2V5cyhtZXNzYWdlLmtleSk7XG4gICAgICAgIHJldHVybiBzaWduaW5nSUQuZXF1YWxzKGZyb21JRCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG5leHBvcnQgY29uc3QgdG9NZXNzYWdlID0gYXN5bmMgKG1lc3NhZ2UpID0+IHtcbiAgICBpZiAobWVzc2FnZS5mcm9tID09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcignUlBDIG1lc3NhZ2Ugd2FzIG1pc3NpbmcgZnJvbScsIGNvZGVzLkVSUl9NSVNTSU5HX0ZST00pO1xuICAgIH1cbiAgICBpZiAoIWF3YWl0IGlzU2lnbmVkKG1lc3NhZ2UpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAndW5zaWduZWQnLFxuICAgICAgICAgICAgdG9waWM6IG1lc3NhZ2UudG9waWMgPz8gJycsXG4gICAgICAgICAgICBkYXRhOiBtZXNzYWdlLmRhdGEgPz8gbmV3IFVpbnQ4QXJyYXkoMClcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgZnJvbSA9IHBlZXJJZEZyb21CeXRlcyhtZXNzYWdlLmZyb20pO1xuICAgIGNvbnN0IG1zZyA9IHtcbiAgICAgICAgdHlwZTogJ3NpZ25lZCcsXG4gICAgICAgIGZyb206IHBlZXJJZEZyb21CeXRlcyhtZXNzYWdlLmZyb20pLFxuICAgICAgICB0b3BpYzogbWVzc2FnZS50b3BpYyA/PyAnJyxcbiAgICAgICAgc2VxdWVuY2VOdW1iZXI6IGJpZ0ludEZyb21CeXRlcyhtZXNzYWdlLnNlcXVlbmNlTnVtYmVyID8/IG5ldyBVaW50OEFycmF5KDApKSxcbiAgICAgICAgZGF0YTogbWVzc2FnZS5kYXRhID8/IG5ldyBVaW50OEFycmF5KDApLFxuICAgICAgICBzaWduYXR1cmU6IG1lc3NhZ2Uuc2lnbmF0dXJlID8/IG5ldyBVaW50OEFycmF5KDApLFxuICAgICAgICBrZXk6IG1lc3NhZ2Uua2V5ID8/IGZyb20ucHVibGljS2V5ID8/IG5ldyBVaW50OEFycmF5KDApXG4gICAgfTtcbiAgICBpZiAobXNnLmtleS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcignU2lnbmVkIFJQQyBtZXNzYWdlIHdhcyBtaXNzaW5nIGtleScsIGNvZGVzLkVSUl9NSVNTSU5HX0tFWSk7XG4gICAgfVxuICAgIHJldHVybiBtc2c7XG59O1xuZXhwb3J0IGNvbnN0IHRvUnBjTWVzc2FnZSA9IChtZXNzYWdlKSA9PiB7XG4gICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gJ3NpZ25lZCcpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZyb206IG1lc3NhZ2UuZnJvbS5tdWx0aWhhc2guYnl0ZXMsXG4gICAgICAgICAgICBkYXRhOiBtZXNzYWdlLmRhdGEsXG4gICAgICAgICAgICBzZXF1ZW5jZU51bWJlcjogYmlnSW50VG9CeXRlcyhtZXNzYWdlLnNlcXVlbmNlTnVtYmVyKSxcbiAgICAgICAgICAgIHRvcGljOiBtZXNzYWdlLnRvcGljLFxuICAgICAgICAgICAgc2lnbmF0dXJlOiBtZXNzYWdlLnNpZ25hdHVyZSxcbiAgICAgICAgICAgIGtleTogbWVzc2FnZS5rZXlcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZGF0YTogbWVzc2FnZS5kYXRhLFxuICAgICAgICB0b3BpYzogbWVzc2FnZS50b3BpY1xuICAgIH07XG59O1xuZXhwb3J0IGNvbnN0IGJpZ0ludFRvQnl0ZXMgPSAobnVtKSA9PiB7XG4gICAgbGV0IHN0ciA9IG51bS50b1N0cmluZygxNik7XG4gICAgaWYgKHN0ci5sZW5ndGggJSAyICE9PSAwKSB7XG4gICAgICAgIHN0ciA9IGAwJHtzdHJ9YDtcbiAgICB9XG4gICAgcmV0dXJuIHVpbnQ4QXJyYXlGcm9tU3RyaW5nKHN0ciwgJ2Jhc2UxNicpO1xufTtcbmV4cG9ydCBjb25zdCBiaWdJbnRGcm9tQnl0ZXMgPSAobnVtKSA9PiB7XG4gICAgcmV0dXJuIEJpZ0ludChgMHgke3VpbnQ4QXJyYXlUb1N0cmluZyhudW0sICdiYXNlMTYnKX1gKTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5qcy5tYXAiXSwibmFtZXMiOlsicmFuZG9tQnl0ZXMiLCJDb2RlRXJyb3IiLCJwZWVySWRGcm9tQnl0ZXMiLCJwZWVySWRGcm9tS2V5cyIsInNoYTI1NiIsImZyb21TdHJpbmciLCJ1aW50OEFycmF5RnJvbVN0cmluZyIsInRvU3RyaW5nIiwidWludDhBcnJheVRvU3RyaW5nIiwiY29kZXMiLCJyYW5kb21TZXFubyIsIkJpZ0ludCIsIm1zZ0lkIiwia2V5Iiwic2Vxbm8iLCJzZXFub0J5dGVzIiwicGFkU3RhcnQiLCJVaW50OEFycmF5IiwibGVuZ3RoIiwic2V0Iiwibm9TaWduTXNnSWQiLCJkYXRhIiwiZW5jb2RlIiwiYW55TWF0Y2giLCJhIiwiYiIsImJIYXMiLCJBcnJheSIsImlzQXJyYXkiLCJ2YWwiLCJpbmNsdWRlcyIsImhhcyIsImVuc3VyZUFycmF5IiwibWF5YmVBcnJheSIsImlzU2lnbmVkIiwibWVzc2FnZSIsInNlcXVlbmNlTnVtYmVyIiwiZnJvbSIsInNpZ25hdHVyZSIsImZyb21JRCIsInB1YmxpY0tleSIsInNpZ25pbmdJRCIsImVxdWFscyIsInRvTWVzc2FnZSIsIkVSUl9NSVNTSU5HX0ZST00iLCJ0eXBlIiwidG9waWMiLCJtc2ciLCJiaWdJbnRGcm9tQnl0ZXMiLCJFUlJfTUlTU0lOR19LRVkiLCJ0b1JwY01lc3NhZ2UiLCJtdWx0aWhhc2giLCJieXRlcyIsImJpZ0ludFRvQnl0ZXMiLCJudW0iLCJzdHIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/pubsub/dist/src/utils.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/utils/dist/src/abstract-stream.js":
/*!****************************************************************!*\
!*** ./node_modules/@libp2p/utils/dist/src/abstract-stream.js ***!
\****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbstractStream: () => (/* binding */ AbstractStream)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var it_pushable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! it-pushable */ \"(ssr)/./node_modules/it-pushable/dist/src/index.js\");\n/* harmony import */ var p_defer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! p-defer */ \"(ssr)/./node_modules/p-defer/index.js\");\n/* harmony import */ var race_signal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! race-signal */ \"(ssr)/./node_modules/race-signal/dist/src/index.js\");\n/* harmony import */ var uint8arraylist__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uint8arraylist */ \"(ssr)/./node_modules/uint8arraylist/dist/src/index.js\");\n/* harmony import */ var _close_source_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./close-source.js */ \"(ssr)/./node_modules/@libp2p/utils/dist/src/close-source.js\");\n\n\n\n\n\n\n\nconst ERR_STREAM_RESET = \"ERR_STREAM_RESET\";\nconst ERR_SINK_INVALID_STATE = \"ERR_SINK_INVALID_STATE\";\nconst DEFAULT_SEND_CLOSE_WRITE_TIMEOUT = 5000;\nfunction isPromise(thing) {\n if (thing == null) {\n return false;\n }\n return typeof thing.then === \"function\" && typeof thing.catch === \"function\" && typeof thing.finally === \"function\";\n}\nclass AbstractStream {\n constructor(init){\n this.sinkController = new AbortController();\n this.sinkEnd = (0,p_defer__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n this.closed = (0,p_defer__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n this.log = init.log;\n // stream status\n this.status = \"open\";\n this.readStatus = \"ready\";\n this.writeStatus = \"ready\";\n this.id = init.id;\n this.metadata = init.metadata ?? {};\n this.direction = init.direction;\n this.timeline = {\n open: Date.now()\n };\n this.sendCloseWriteTimeout = init.sendCloseWriteTimeout ?? DEFAULT_SEND_CLOSE_WRITE_TIMEOUT;\n this.onEnd = init.onEnd;\n this.onCloseRead = init?.onCloseRead;\n this.onCloseWrite = init?.onCloseWrite;\n this.onReset = init?.onReset;\n this.onAbort = init?.onAbort;\n this.source = this.streamSource = (0,it_pushable__WEBPACK_IMPORTED_MODULE_0__.pushable)({\n onEnd: (err)=>{\n if (err != null) {\n this.log.trace(\"source ended with error\", err);\n } else {\n this.log.trace(\"source ended\");\n }\n this.onSourceEnd(err);\n }\n });\n // necessary because the libp2p upgrader wraps the sink function\n this.sink = this.sink.bind(this);\n }\n async sink(source) {\n if (this.writeStatus !== \"ready\") {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_4__.CodeError(`writable end state is \"${this.writeStatus}\" not \"ready\"`, ERR_SINK_INVALID_STATE);\n }\n try {\n this.writeStatus = \"writing\";\n const options = {\n signal: this.sinkController.signal\n };\n if (this.direction === \"outbound\") {\n const res = this.sendNewStream(options);\n if (isPromise(res)) {\n await res;\n }\n }\n const abortListener = ()=>{\n (0,_close_source_js__WEBPACK_IMPORTED_MODULE_5__.closeSource)(source, this.log);\n };\n try {\n this.sinkController.signal.addEventListener(\"abort\", abortListener);\n this.log.trace(\"sink reading from source\");\n for await (let data of source){\n data = data instanceof Uint8Array ? new uint8arraylist__WEBPACK_IMPORTED_MODULE_2__.Uint8ArrayList(data) : data;\n const res = this.sendData(data, options);\n if (isPromise(res)) {\n this.sendingData = (0,p_defer__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n await res;\n this.sendingData.resolve();\n this.sendingData = undefined;\n }\n }\n } finally{\n this.sinkController.signal.removeEventListener(\"abort\", abortListener);\n }\n this.log.trace('sink finished reading from source, write status is \"%s\"', this.writeStatus);\n if (this.writeStatus === \"writing\") {\n this.writeStatus = \"closing\";\n this.log.trace(\"send close write to remote\");\n await this.sendCloseWrite({\n signal: AbortSignal.timeout(this.sendCloseWriteTimeout)\n });\n this.writeStatus = \"closed\";\n }\n this.onSinkEnd();\n } catch (err) {\n this.log.trace(\"sink ended with error, calling abort with error\", err);\n this.abort(err);\n throw err;\n } finally{\n this.log.trace(\"resolve sink end\");\n this.sinkEnd.resolve();\n }\n }\n onSourceEnd(err) {\n if (this.timeline.closeRead != null) {\n return;\n }\n this.timeline.closeRead = Date.now();\n this.readStatus = \"closed\";\n if (err != null && this.endErr == null) {\n this.endErr = err;\n }\n this.onCloseRead?.();\n if (this.timeline.closeWrite != null) {\n this.log.trace(\"source and sink ended\");\n this.timeline.close = Date.now();\n if (this.status !== \"aborted\" && this.status !== \"reset\") {\n this.status = \"closed\";\n }\n if (this.onEnd != null) {\n this.onEnd(this.endErr);\n }\n this.closed.resolve();\n } else {\n this.log.trace(\"source ended, waiting for sink to end\");\n }\n }\n onSinkEnd(err) {\n if (this.timeline.closeWrite != null) {\n return;\n }\n this.timeline.closeWrite = Date.now();\n this.writeStatus = \"closed\";\n if (err != null && this.endErr == null) {\n this.endErr = err;\n }\n this.onCloseWrite?.();\n if (this.timeline.closeRead != null) {\n this.log.trace(\"sink and source ended\");\n this.timeline.close = Date.now();\n if (this.status !== \"aborted\" && this.status !== \"reset\") {\n this.status = \"closed\";\n }\n if (this.onEnd != null) {\n this.onEnd(this.endErr);\n }\n this.closed.resolve();\n } else {\n this.log.trace(\"sink ended, waiting for source to end\");\n }\n }\n // Close for both Reading and Writing\n async close(options) {\n this.log.trace(\"closing gracefully\");\n this.status = \"closing\";\n // wait for read and write ends to close\n await (0,race_signal__WEBPACK_IMPORTED_MODULE_1__.raceSignal)(Promise.all([\n this.closeWrite(options),\n this.closeRead(options),\n this.closed.promise\n ]), options?.signal);\n this.status = \"closed\";\n this.log.trace(\"closed gracefully\");\n }\n async closeRead(options = {}) {\n if (this.readStatus === \"closing\" || this.readStatus === \"closed\") {\n return;\n }\n this.log.trace('closing readable end of stream with starting read status \"%s\"', this.readStatus);\n const readStatus = this.readStatus;\n this.readStatus = \"closing\";\n if (this.status !== \"reset\" && this.status !== \"aborted\" && this.timeline.closeRead == null) {\n this.log.trace(\"send close read to remote\");\n await this.sendCloseRead(options);\n }\n if (readStatus === \"ready\") {\n this.log.trace(\"ending internal source queue with %d queued bytes\", this.streamSource.readableLength);\n this.streamSource.end();\n }\n this.log.trace(\"closed readable end of stream\");\n }\n async closeWrite(options = {}) {\n if (this.writeStatus === \"closing\" || this.writeStatus === \"closed\") {\n return;\n }\n this.log.trace('closing writable end of stream with starting write status \"%s\"', this.writeStatus);\n if (this.writeStatus === \"ready\") {\n this.log.trace(\"sink was never sunk, sink an empty array\");\n await (0,race_signal__WEBPACK_IMPORTED_MODULE_1__.raceSignal)(this.sink([]), options.signal);\n }\n if (this.writeStatus === \"writing\") {\n // try to let sending outgoing data succeed\n if (this.sendingData != null) {\n await (0,race_signal__WEBPACK_IMPORTED_MODULE_1__.raceSignal)(this.sendingData.promise, options.signal);\n }\n // stop reading from the source passed to `.sink`\n this.log.trace(\"aborting source passed to .sink\");\n this.sinkController.abort();\n await (0,race_signal__WEBPACK_IMPORTED_MODULE_1__.raceSignal)(this.sinkEnd.promise, options.signal);\n }\n this.writeStatus = \"closed\";\n this.log.trace(\"closed writable end of stream\");\n }\n /**\n * Close immediately for reading and writing and send a reset message (local\n * error)\n */ abort(err) {\n if (this.status === \"closed\" || this.status === \"aborted\" || this.status === \"reset\") {\n return;\n }\n this.log(\"abort with error\", err);\n // try to send a reset message\n this.log(\"try to send reset to remote\");\n const res = this.sendReset();\n if (isPromise(res)) {\n res.catch((err)=>{\n this.log.error(\"error sending reset message\", err);\n });\n }\n this.status = \"aborted\";\n this.timeline.abort = Date.now();\n this._closeSinkAndSource(err);\n this.onAbort?.(err);\n }\n /**\n * Receive a reset message - close immediately for reading and writing (remote\n * error)\n */ reset() {\n if (this.status === \"closed\" || this.status === \"aborted\" || this.status === \"reset\") {\n return;\n }\n const err = new _libp2p_interface__WEBPACK_IMPORTED_MODULE_4__.CodeError(\"stream reset\", ERR_STREAM_RESET);\n this.status = \"reset\";\n this.timeline.reset = Date.now();\n this._closeSinkAndSource(err);\n this.onReset?.();\n }\n _closeSinkAndSource(err) {\n this._closeSink(err);\n this._closeSource(err);\n }\n _closeSink(err) {\n // if the sink function is running, cause it to end\n if (this.writeStatus === \"writing\") {\n this.log.trace(\"end sink source\");\n this.sinkController.abort();\n }\n this.onSinkEnd(err);\n }\n _closeSource(err) {\n // if the source is not ending, end it\n if (this.readStatus !== \"closing\" && this.readStatus !== \"closed\") {\n this.log.trace(\"ending source with %d bytes to be read by consumer\", this.streamSource.readableLength);\n this.readStatus = \"closing\";\n this.streamSource.end(err);\n }\n }\n /**\n * The remote closed for writing so we should expect to receive no more\n * messages\n */ remoteCloseWrite() {\n if (this.readStatus === \"closing\" || this.readStatus === \"closed\") {\n this.log(\"received remote close write but local source is already closed\");\n return;\n }\n this.log.trace(\"remote close write\");\n this._closeSource();\n }\n /**\n * The remote closed for reading so we should not send any more\n * messages\n */ remoteCloseRead() {\n if (this.writeStatus === \"closing\" || this.writeStatus === \"closed\") {\n this.log(\"received remote close read but local sink is already closed\");\n return;\n }\n this.log.trace(\"remote close read\");\n this._closeSink();\n }\n /**\n * The underlying muxer has closed, no more messages can be sent or will\n * be received, close immediately to free up resources\n */ destroy() {\n if (this.status === \"closed\" || this.status === \"aborted\" || this.status === \"reset\") {\n this.log(\"received destroy but we are already closed\");\n return;\n }\n this.log.trace(\"stream destroyed\");\n this._closeSinkAndSource();\n }\n /**\n * When an extending class reads data from it's implementation-specific source,\n * call this method to allow the stream consumer to read the data.\n */ sourcePush(data) {\n this.streamSource.push(data);\n }\n /**\n * Returns the amount of unread data - can be used to prevent large amounts of\n * data building up when the stream consumer is too slow.\n */ sourceReadableLength() {\n return this.streamSource.readableLength;\n }\n} //# sourceMappingURL=abstract-stream.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC91dGlscy9kaXN0L3NyYy9hYnN0cmFjdC1zdHJlYW0uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUE4QztBQUNQO0FBQ1A7QUFDSDtBQUNZO0FBQ087QUFDQTtBQUNoRCxNQUFNTyxtQkFBbUI7QUFDekIsTUFBTUMseUJBQXlCO0FBQy9CLE1BQU1DLG1DQUFtQztBQUN6QyxTQUFTQyxVQUFVQyxLQUFLO0lBQ3BCLElBQUlBLFNBQVMsTUFBTTtRQUNmLE9BQU87SUFDWDtJQUNBLE9BQU8sT0FBT0EsTUFBTUMsSUFBSSxLQUFLLGNBQ3pCLE9BQU9ELE1BQU1FLEtBQUssS0FBSyxjQUN2QixPQUFPRixNQUFNRyxPQUFPLEtBQUs7QUFDakM7QUFDTyxNQUFNQztJQXVCVEMsWUFBWUMsSUFBSSxDQUFFO1FBQ2QsSUFBSSxDQUFDQyxjQUFjLEdBQUcsSUFBSUM7UUFDMUIsSUFBSSxDQUFDQyxPQUFPLEdBQUdsQixtREFBS0E7UUFDcEIsSUFBSSxDQUFDbUIsTUFBTSxHQUFHbkIsbURBQUtBO1FBQ25CLElBQUksQ0FBQ29CLEdBQUcsR0FBR0wsS0FBS0ssR0FBRztRQUNuQixnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDQyxNQUFNLEdBQUc7UUFDZCxJQUFJLENBQUNDLFVBQVUsR0FBRztRQUNsQixJQUFJLENBQUNDLFdBQVcsR0FBRztRQUNuQixJQUFJLENBQUNDLEVBQUUsR0FBR1QsS0FBS1MsRUFBRTtRQUNqQixJQUFJLENBQUNDLFFBQVEsR0FBR1YsS0FBS1UsUUFBUSxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDQyxTQUFTLEdBQUdYLEtBQUtXLFNBQVM7UUFDL0IsSUFBSSxDQUFDQyxRQUFRLEdBQUc7WUFDWkMsTUFBTUMsS0FBS0MsR0FBRztRQUNsQjtRQUNBLElBQUksQ0FBQ0MscUJBQXFCLEdBQUdoQixLQUFLZ0IscUJBQXFCLElBQUl4QjtRQUMzRCxJQUFJLENBQUN5QixLQUFLLEdBQUdqQixLQUFLaUIsS0FB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SUFDSjtJQUNBOzs7S0FHQyxHQUNEdUMsbUJBQW1CO1FBQ2YsSUFBSSxJQUFJLENBQUN4RCxVQUFVLEtBQUssYUFBYSxJQUFJLENBQUNBLFVBQVUsS0FBSyxVQUFVO1lBQy9ELElBQUksQ0FBQ0YsR0FBRyxDQUFDO1lBQ1Q7UUFDSjtRQUNBLElBQUksQ0FBQ0EsR0FBRyxDQUFDb0IsS0FBSyxDQUFDO1FBQ2YsSUFBSSxDQUFDcUMsWUFBWTtJQUNyQjtJQUNBOzs7S0FHQyxHQUNERSxrQkFBa0I7UUFDZCxJQUFJLElBQUksQ0FBQ3hELFdBQVcsS0FBSyxhQUFhLElBQUksQ0FBQ0EsV0FBVyxLQUFLLFVBQVU7WUFDakUsSUFBSSxDQUFDSCxHQUFHLENBQUM7WUFDVDtRQUNKO1FBQ0EsSUFBSSxDQUFDQSxHQUFHLENBQUNvQixLQUFLLENBQUM7UUFDZixJQUFJLENBQUNvQyxVQUFVO0lBQ25CO0lBQ0E7OztLQUdDLEdBQ0RJLFVBQVU7UUFDTixJQUFJLElBQUksQ0FBQzNELE1BQU0sS0FBSyxZQUFZLElBQUksQ0FBQ0EsTUFBTSxLQUFLLGFBQWEsSUFBSSxDQUFDQSxNQUFNLEtBQUssU0FBUztZQUNsRixJQUFJLENBQUNELEdBQUcsQ0FBQztZQUNUO1FBQ0o7UUFDQSxJQUFJLENBQUNBLEdBQUcsQ0FBQ29CLEtBQUssQ0FBQztRQUNmLElBQUksQ0FBQ2tDLG1CQUFtQjtJQUM1QjtJQUNBOzs7S0FHQyxHQUNETyxXQUFXL0IsSUFBSSxFQUFFO1FBQ2IsSUFBSSxDQUFDWixZQUFZLENBQUM0QyxJQUFJLENBQUNoQztJQUMzQjtJQUNBOzs7S0FHQyxHQUNEaUMsdUJBQXVCO1FBQ25CLE9BQU8sSUFBSSxDQUFDN0MsWUFBWSxDQUFDZ0MsY0FBYztJQUMzQztBQUNKLEVBQ0EsMkNBQTJDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC91dGlscy9kaXN0L3NyYy9hYnN0cmFjdC1zdHJlYW0uanM/YzdlNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2RlRXJyb3IgfSBmcm9tICdAbGlicDJwL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBwdXNoYWJsZSB9IGZyb20gJ2l0LXB1c2hhYmxlJztcbmltcG9ydCBkZWZlciwge30gZnJvbSAncC1kZWZlcic7XG5pbXBvcnQgcERlZmVyIGZyb20gJ3AtZGVmZXInO1xuaW1wb3J0IHsgcmFjZVNpZ25hbCB9IGZyb20gJ3JhY2Utc2lnbmFsJztcbmltcG9ydCB7IFVpbnQ4QXJyYXlMaXN0IH0gZnJvbSAndWludDhhcnJheWxpc3QnO1xuaW1wb3J0IHsgY2xvc2VTb3VyY2UgfSBmcm9tICcuL2Nsb3NlLXNvdXJjZS5qcyc7XG5jb25zdCBFUlJfU1RSRUFNX1JFU0VUID0gJ0VSUl9TVFJFQU1fUkVTRVQnO1xuY29uc3QgRVJSX1NJTktfSU5WQUxJRF9TVEFURSA9ICdFUlJfU0lOS19JTlZBTElEX1NUQVRFJztcbmNvbnN0IERFRkFVTFRfU0VORF9DTE9TRV9XUklURV9USU1FT1VUID0gNTAwMDtcbmZ1bmN0aW9uIGlzUHJvbWlzZSh0aGluZykge1xuICAgIGlmICh0aGluZyA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHR5cGVvZiB0aGluZy50aGVuID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAgIHR5cGVvZiB0aGluZy5jYXRjaCA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICB0eXBlb2YgdGhpbmcuZmluYWxseSA9PT0gJ2Z1bmN0aW9uJztcbn1cbmV4cG9ydCBjbGFzcyBBYnN0cmFjdFN0cmVhbSB7XG4gICAgaWQ7XG4gICAgZGlyZWN0aW9uO1xuICAgIHRpbWVsaW5lO1xuICAgIHByb3RvY29sO1xuICAgIG1ldGFkYXRhO1xuICAgIHNvdXJjZTtcbiAgICBzdGF0dXM7XG4gICAgcmVhZFN0YXR1cztcbiAgICB3cml0ZVN0YXR1cztcbiAgICBsb2c7XG4gICAgc2lua0NvbnRyb2xsZXI7XG4gICAgc2lua0VuZDtcbiAgICBjbG9zZWQ7XG4gICAgZW5kRXJyO1xuICAgIHN0cmVhbVNvdXJjZTtcbiAgICBvbkVuZDtcbiAgICBvbkNsb3NlUmVhZDtcbiAgICBvbkNsb3NlV3JpdGU7XG4gICAgb25SZXNldDtcbiAgICBvbkFib3J0O1xuICAgIHNlbmRDbG9zZVdyaXRlVGltZW91dDtcbiAgICBzZW5kaW5nRGF0YTtcbiAgICBjb25zdHJ1Y3Rvcihpbml0KSB7XG4gICAgICAgIHRoaXMuc2lua0NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICAgIHRoaXMuc2lua0VuZCA9IGRlZmVyKCk7XG4gICAgICAgIHRoaXMuY2xvc2VkID0gZGVmZXIoKTtcbiAgICAgICAgdGhpcy5sb2cgPSBpbml0LmxvZztcbiAgICAgICAgLy8gc3RyZWFtIHN0YXR1c1xuICAgICAgICB0aGlzLnN0YXR1cyA9ICdvcGVuJztcbiAgICAgICAgdGhpcy5yZWFkU3RhdHVzID0gJ3JlYWR5JztcbiAgICAgICAgdGhpcy53cml0ZVN0YXR1cyA9ICdyZWFkeSc7XG4gICAgICAgIHRoaXMuaWQgPSBpbml0LmlkO1xuICAgICAgICB0aGlzLm1ldGFkYXRhID0gaW5pdC5tZXRhZGF0YSA/PyB7fTtcbiAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSBpbml0LmRpcmVjdGlvbjtcbiAgICAgICAgdGhpcy50aW1lbGluZSA9IHtcbiAgICAgICAgICAgIG9wZW46IERhdGUubm93KClcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zZW5kQ2xvc2VXcml0ZVRpbWVvdXQgPSBpbml0LnNlbmRDbG9zZVdyaXRlVGltZW91dCA/PyBERUZBVUxUX1NFTkRfQ0xPU0VfV1JJVEVfVElNRU9VVDtcbiAgICAgICAgdGhpcy5vbkVuZCA9IGluaXQub25FbmQ7XG4gICAgICAgIHRoaXMub25DbG9zZVJlYWQgPSBpbml0Py5vbkNsb3NlUmVhZDtcbiAgICAgICAgdGhpcy5vbkNsb3NlV3JpdGUgPSBpbml0Py5vbkNsb3NlV3JpdGU7XG4gICAgICAgIHRoaXMub25SZXNldCA9IGluaXQ/Lm9uUmVzZXQ7XG4gICAgICAgIHRoaXMub25BYm9ydCA9IGluaXQ/Lm9uQWJvcnQ7XG4gICAgICAgIHRoaXMuc291cmNlID0gdGhpcy5zdHJlYW1Tb3VyY2UgPSBwdXNoYWJsZSh7XG4gICAgICAgICAgICBvbkVuZDogKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZy50cmFjZSgnc291cmNlIGVuZGVkIHdpdGggZXJyb3InLCBlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2cudHJhY2UoJ3NvdXJjZSBlbmRlZCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLm9uU291cmNlRW5kKGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgbGlicDJwIHVwZ3JhZGVyIHdyYXBzIHRoZSBzaW5rIGZ1bmN0aW9uXG4gICAgICAgIHRoaXMuc2luayA9IHRoaXMuc2luay5iaW5kKHRoaXMpO1xuICAgIH1cbiAgICBhc3luYyBzaW5rKHNvdXJjZSkge1xuICAgICAgICBpZiAodGhpcy53cml0ZVN0YXR1cyAhPT0gJ3JlYWR5Jykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcihgd3JpdGFibGUgZW5kIHN0YXRlIGlzIFwiJHt0aGlzLndyaXRlU3RhdHVzfVwiIG5vdCBcInJlYWR5XCJgLCBFUlJfU0lOS19JTlZBTElEX1NUQVRFKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy53cml0ZVN0YXR1cyA9ICd3cml0aW5nJztcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgc2lnbmFsOiB0aGlzLnNpbmtDb250cm9sbGVyLnNpZ25hbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh0aGlzLmRpcmVjdGlvbiA9PT0gJ291dGJvdW5kJykgeyAvLyBJZiBpbml0aWF0b3IsIG9wZW4gYSBuZXcgc3RyZWFtXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0gdGhpcy5zZW5kTmV3U3RyZWFtKG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIGlmIChpc1Byb21pc2UocmVzKSkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCByZXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYWJvcnRMaXN0ZW5lciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjbG9zZVNvdXJjZShzb3VyY2UsIHRoaXMubG9nKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2lua0NvbnRyb2xsZXIuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgYWJvcnRMaXN0ZW5lcik7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2cudHJhY2UoJ3NpbmsgcmVhZGluZyBmcm9tIHNvdXJjZScpO1xuICAgICAgICAgICAgICAgIGZvciBhd2FpdCAobGV0IGRhdGEgb2Ygc291cmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhIGluc3RhbmNlb2YgVWludDhBcnJheSA/IG5ldyBVaW50OEFycmF5TGlzdChkYXRhKSA6IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IHRoaXMuc2VuZERhdGEoZGF0YSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1Byb21pc2UocmVzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW5kaW5nRGF0YSA9IHBEZWZlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgcmVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW5kaW5nRGF0YS5yZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbmRpbmdEYXRhID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaW5rQ29udHJvbGxlci5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBhYm9ydExpc3RlbmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubG9nLnRyYWNlKCdzaW5rIGZpbmlzaGVkIHJlYWRpbmcgZnJvbSBzb3VyY2UsIHdyaXRlIHN0YXR1cyBpcyBcIiVzXCInLCB0aGlzLndyaXRlU3RhdHVzKTtcbiAgICAgICAgICAgIGlmICh0aGlzLndyaXRlU3RhdHVzID09PSAnd3JpdGluZycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlU3RhdHVzID0gJ2Nsb3NpbmcnO1xuICAgICAgICAgICAgICAgIHRoaXMubG9nLnRyYWNlKCdzZW5kIGNsb3NlIHdyaXRlIHRvIHJlbW90ZScpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuc2VuZENsb3NlV3JpdGUoe1xuICAgICAgICAgICAgICAgICAgICBzaWduYWw6IEFib3J0U2lnbmFsLnRpbWVvdXQodGhpcy5zZW5kQ2xvc2VXcml0ZVRpbWVvdXQpXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVN0YXR1cyA9ICdjbG9zZWQnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5vblNpbmtFbmQoKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICB0aGlzLmxvZy50cmFjZSgnc2luayBlbmRlZCB3aXRoIGVycm9yLCBjYWxsaW5nIGFib3J0IHdpdGggZXJyb3InLCBlcnIpO1xuICAgICAgICAgICAgdGhpcy5hYm9ydChlcnIpO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5sb2cudHJhY2UoJ3Jlc29sdmUgc2luayBlbmQnKTtcbiAgICAgICAgICAgIHRoaXMuc2lua0VuZC5yZXNvbHZlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25Tb3VyY2VFbmQoZXJyKSB7XG4gICAgICAgIGlmICh0aGlzLnRpbWVsaW5lLmNsb3NlUmVhZCAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50aW1lbGluZS5jbG9zZVJlYWQgPSBEYXRlLm5vdygpO1xuICAgICAgICB0aGlzLnJlYWRTdGF0dXMgPSAnY2xvc2VkJztcbiAgICAgICAgaWYgKGVyciAhPSBudWxsICYmIHRoaXMuZW5kRXJyID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuZW5kRXJyID0gZXJyO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25DbG9zZVJlYWQ/LigpO1xuICAgICAgICBpZiAodGhpcy50aW1lbGluZS5jbG9zZVdyaXRlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMubG9nLnRyYWNlKCdzb3VyY2UgYW5kIHNpbmsgZW5kZWQnKTtcbiAgICAgICAgICAgIHRoaXMudGltZWxpbmUuY2xvc2UgPSBEYXRlLm5vdygpO1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdHVzICE9PSAnYWJvcnRlZCcgJiYgdGhpcy5zdGF0dXMgIT09ICdyZXNldCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXR1cyA9ICdjbG9zZWQnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMub25FbmQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMub25FbmQodGhpcy5lbmRFcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jbG9zZWQucmVzb2x2ZSgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5sb2cudHJhY2UoJ3NvdXJjZSBlbmRlZCwgd2FpdGluZyBmb3Igc2luayB0byBlbmQnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvblNpbmtFbmQoZXJyKSB7XG4gICAgICAgIGlmICh0aGlzLnRpbWVsaW5lLmNsb3NlV3JpdGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGltZWxpbmUuY2xvc2VXcml0ZSA9IERhdGUubm93KCk7XG4gICAgICAgIHRoaXMud3JpdGVTdGF0dXMgPSAnY2xvc2VkJztcbiAgICAgICAgaWYgKGVyciAhPSBudWxsICYmIHRoaXMuZW5kRXJyID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuZW5kRXJyID0gZXJyO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25DbG9zZVdyaXRlPy4oKTtcbiAgICAgICAgaWYgKHRoaXMudGltZWxpbmUuY2xvc2VSZWFkICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMubG9nLnRyYWNlKCdzaW5rIGFuZCBzb3VyY2UgZW5kZWQnKTtcbiAgICAgICAgICAgIHRoaXMudGltZWxpbmUuY2xvc2UgPSBEYXRlLm5vdygpO1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdHVzICE9PSAnYWJvcnRlZCcgJiYgdGhpcy5zdGF0dXMgIT09ICdyZXNldCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXR1cyA9ICdjbG9zZWQnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMub25FbmQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMub25FbmQodGhpcy5lbmRFcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jbG9zZWQucmVzb2x2ZSgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5sb2cudHJhY2UoJ3NpbmsgZW5kZWQsIHdhaXRpbmcgZm9yIHNvdXJjZSB0byBlbmQnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDbG9zZSBmb3IgYm90aCBSZWFkaW5nIGFuZCBXcml0aW5nXG4gICAgYXN5bmMgY2xvc2Uob3B0aW9ucykge1xuICAgICAgICB0aGlzLmxvZy50cmFjZSgnY2xvc2luZyBncmFjZWZ1bGx5Jyk7XG4gICAgICAgIHRoaXMuc3RhdHVzID0gJ2Nsb3NpbmcnO1xuICAgICAgICAvLyB3YWl0IGZvciByZWFkIGFuZCB3cml0ZSBlbmRzIHRvIGNsb3NlXG4gICAgICAgIGF3YWl0IHJhY2VTaWduYWwoUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgdGhpcy5jbG9zZVdyaXRlKG9wdGlvbnMpLFxuICAgICAgICAgICAgdGhpcy5jbG9zZVJlYWQob3B0aW9ucyksXG4gICAgICAgICAgICB0aGlzLmNsb3NlZC5wcm9taXNlXG4gICAgICAgIF0pLCBvcHRpb25zPy5zaWduYWwpO1xuICAgICAgICB0aGlzLnN0YXR1cyA9ICdjbG9zZWQnO1xuICAgICAgICB0aGlzLmxvZy50cmFjZSgnY2xvc2VkIGdyYWNlZnVsbHknKTtcbiAgICB9XG4gICAgYXN5bmMgY2xvc2VSZWFkKG9wdGlvbnMgPSB7fSkge1xuICAgICAgICBpZiAodGhpcy5yZWFkU3RhdHVzID09PSAnY2xvc2luZycgfHwgdGhpcy5yZWFkU3RhdHVzID09PSAnY2xvc2VkJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9nLnRyYWNlKCdjbG9zaW5nIHJlYWRhYmxlIGVuZCBvZiBzdHJlYW0gd2l0aCBzdGFydGluZyByZWFkIHN0YXR1cyBcIiVzXCInLCB0aGlzLnJlYWRTdGF0dXMpO1xuICAgICAgICBjb25zdCByZWFkU3RhdHVzID0gdGhpcy5yZWFkU3RhdHVzO1xuICAgICAgICB0aGlzLnJlYWRTdGF0dXMgPSAnY2xvc2luZyc7XG4gICAgICAgIGlmICh0aGlzLnN0YXR1cyAhPT0gJ3Jlc2V0JyAmJiB0aGlzLnN0YXR1cyAhPT0gJ2Fib3J0ZWQnICYmIHRoaXMudGltZWxpbmUuY2xvc2VSZWFkID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMubG9nLnRyYWNlKCdzZW5kIGNsb3NlIHJlYWQgdG8gcmVtb3RlJyk7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnNlbmRDbG9zZVJlYWQob3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlYWRTdGF0dXMgPT09ICdyZWFkeScpIHtcbiAgICAgICAgICAgIHRoaXMubG9nLnRyYWNlKCdlbmRpbmcgaW50ZXJuYWwgc291cmNlIHF1ZXVlIHdpdGggJWQgcXVldWVkIGJ5dGVzJywgdGhpcy5zdHJlYW1Tb3VyY2UucmVhZGFibGVMZW5ndGgpO1xuICAgICAgICAgICAgdGhpcy5zdHJlYW1Tb3VyY2UuZW5kKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2cudHJhY2UoJ2Nsb3NlZCByZWFkYWJsZSBlbmQgb2Ygc3RyZWFtJyk7XG4gICAgfVxuICAgIGFzeW5jIGNsb3NlV3JpdGUob3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGlmICh0aGlzLndyaXRlU3RhdHVzID09PSAnY2xvc2luZycgfHwgdGhpcy53cml0ZVN0YXR1cyA9PT0gJ2Nsb3NlZCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvZy50cmFjZSgnY2xvc2luZyB3cml0YWJsZSBlbmQgb2Ygc3RyZWFtIHdpdGggc3RhcnRpbmcgd3JpdGUgc3RhdHVzIFwiJXNcIicsIHRoaXMud3JpdGVTdGF0dXMpO1xuICAgICAgICBpZiAodGhpcy53cml0ZVN0YXR1cyA9PT0gJ3JlYWR5Jykge1xuICAgICAgICAgICAgdGhpcy5sb2cudHJhY2UoJ3Npbmsgd2FzIG5ldmVyIHN1bmssIHNpbmsgYW4gZW1wdHkgYXJyYXknKTtcbiAgICAgICAgICAgIGF3YWl0IHJhY2VTaWduYWwodGhpcy5zaW5rKFtdKSwgb3B0aW9ucy5zaWduYWwpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLndyaXRlU3RhdHVzID09PSAnd3JpdGluZycpIHtcbiAgICAgICAgICAgIC8vIHRyeSB0byBsZXQgc2VuZGluZyBvdXRnb2luZyBkYXRhIHN1Y2NlZWRcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbmRpbmdEYXRhICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCByYWNlU2lnbmFsKHRoaXMuc2VuZGluZ0RhdGEucHJvbWlzZSwgb3B0aW9ucy5zaWduYWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gc3RvcCByZWFkaW5nIGZyb20gdGhlIHNvdXJjZSBwYXNzZWQgdG8gYC5zaW5rYFxuICAgICAgICAgICAgdGhpcy5sb2cudHJhY2UoJ2Fib3J0aW5nIHNvdXJjZSBwYXNzZWQgdG8gLnNpbmsnKTtcbiAgICAgICAgICAgIHRoaXMuc2lua0NvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICAgICAgICAgIGF3YWl0IHJhY2VTaWduYWwodGhpcy5zaW5rRW5kLnByb21pc2UsIG9wdGlvbnMuc2lnbmFsKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLndyaXRlU3RhdHVzID0gJ2Nsb3NlZCc7XG4gICAgICAgIHRoaXMubG9nLnRyYWNlKCdjbG9zZWQgd3JpdGFibGUgZW5kIG9mIHN0cmVhbScpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDbG9zZSBpbW1lZGlhdGVseSBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyBhbmQgc2VuZCBhIHJlc2V0IG1lc3NhZ2UgKGxvY2FsXG4gICAgICogZXJyb3IpXG4gICAgICovXG4gICAgYWJvcnQoZXJyKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXR1cyA9PT0gJ2Nsb3NlZCcgfHwgdGhpcy5zdGF0dXMgPT09ICdhYm9ydGVkJyB8fCB0aGlzLnN0YXR1cyA9PT0gJ3Jlc2V0Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9nKCdhYm9ydCB3aXRoIGVycm9yJywgZXJyKTtcbiAgICAgICAgLy8gdHJ5IHRvIHNlbmQgYSByZXNldCBtZXNzYWdlXG4gICAgICAgIHRoaXMubG9nKCd0cnkgdG8gc2VuZCByZXNldCB0byByZW1vdGUnKTtcbiAgICAgICAgY29uc3QgcmVzID0gdGhpcy5zZW5kUmVzZXQoKTtcbiAgICAgICAgaWYgKGlzUHJvbWlzZShyZXMpKSB7XG4gICAgICAgICAgICByZXMuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nLmVycm9yKCdlcnJvciBzZW5kaW5nIHJlc2V0IG1lc3NhZ2UnLCBlcnIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGF0dXMgPSAnYWJvcnRlZCc7XG4gICAgICAgIHRoaXMudGltZWxpbmUuYWJvcnQgPSBEYXRlLm5vdygpO1xuICAgICAgICB0aGlzLl9jbG9zZVNpbmtBbmRTb3VyY2UoZXJyKTtcbiAgICAgICAgdGhpcy5vbkFib3J0Py4oZXJyKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVjZWl2ZSBhIHJlc2V0IG1lc3NhZ2UgLSBjbG9zZSBpbW1lZGlhdGVseSBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyAocmVtb3RlXG4gICAgICogZXJyb3IpXG4gICAgICovXG4gICAgcmVzZXQoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXR1cyA9PT0gJ2Nsb3NlZCcgfHwgdGhpcy5zdGF0dXMgPT09ICdhYm9ydGVkJyB8fCB0aGlzLnN0YXR1cyA9PT0gJ3Jlc2V0Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVyciA9IG5ldyBDb2RlRXJyb3IoJ3N0cmVhbSByZXNldCcsIEVSUl9TVFJFQU1fUkVTRVQpO1xuICAgICAgICB0aGlzLnN0YXR1cyA9ICdyZXNldCc7XG4gICAgICAgIHRoaXMudGltZWxpbmUucmVzZXQgPSBEYXRlLm5vdygpO1xuICAgICAgICB0aGlzLl9jbG9zZVNpbmtBbmRTb3VyY2UoZXJyKTtcbiAgICAgICAgdGhpcy5vblJlc2V0Py4oKTtcbiAgICB9XG4gICAgX2Nsb3NlU2lua0FuZFNvdXJjZShlcnIpIHtcbiAgICAgICAgdGhpcy5fY2xvc2VTaW5rKGVycik7XG4gICAgICAgIHRoaXMuX2Nsb3NlU291cmNlKGVycik7XG4gICAgfVxuICAgIF9jbG9zZVNpbmsoZXJyKSB7XG4gICAgICAgIC8vIGlmIHRoZSBzaW5rIGZ1bmN0aW9uIGlzIHJ1bm5pbmcsIGNhdXNlIGl0IHRvIGVuZFxuICAgICAgICBpZiAodGhpcy53cml0ZVN0YXR1cyA9PT0gJ3dyaXRpbmcnKSB7XG4gICAgICAgICAgICB0aGlzLmxvZy50cmFjZSgnZW5kIHNpbmsgc291cmNlJyk7XG4gICAgICAgICAgICB0aGlzLnNpbmtDb250cm9sbGVyLmFib3J0KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vblNpbmtFbmQoZXJyKTtcbiAgICB9XG4gICAgX2Nsb3NlU291cmNlKGVycikge1xuICAgICAgICAvLyBpZiB0aGUgc291cmNlIGlzIG5vdCBlbmRpbmcsIGVuZCBpdFxuICAgICAgICBpZiAodGhpcy5yZWFkU3RhdHVzICE9PSAnY2xvc2luZycgJiYgdGhpcy5yZWFkU3RhdHVzICE9PSAnY2xvc2VkJykge1xuICAgICAgICAgICAgdGhpcy5sb2cudHJhY2UoJ2VuZGluZyBzb3VyY2Ugd2l0aCAlZCBieXRlcyB0byBiZSByZWFkIGJ5IGNvbnN1bWVyJywgdGhpcy5zdHJlYW1Tb3VyY2UucmVhZGFibGVMZW5ndGgpO1xuICAgICAgICAgICAgdGhpcy5yZWFkU3RhdHVzID0gJ2Nsb3NpbmcnO1xuICAgICAgICAgICAgdGhpcy5zdHJlYW1Tb3VyY2UuZW5kKGVycik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogVGhlIHJlbW90ZSBjbG9zZWQgZm9yIHdyaXRpbmcgc28gd2Ugc2hvdWxkIGV4cGVjdCB0byByZWNlaXZlIG5vIG1vcmVcbiAgICAgKiBtZXNzYWdlc1xuICAgICAqL1xuICAgIHJlbW90ZUNsb3NlV3JpdGUoKSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRTdGF0dXMgPT09ICdjbG9zaW5nJyB8fCB0aGlzLnJlYWRTdGF0dXMgPT09ICdjbG9zZWQnKSB7XG4gICAgICAgICAgICB0aGlzLmxvZygncmVjZWl2ZWQgcmVtb3RlIGNsb3NlIHdyaXRlIGJ1dCBsb2NhbCBzb3VyY2UgaXMgYWxyZWFkeSBjbG9zZWQnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvZy50cmFjZSgncmVtb3RlIGNsb3NlIHdyaXRlJyk7XG4gICAgICAgIHRoaXMuX2Nsb3NlU291cmNlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRoZSByZW1vdGUgY2xvc2VkIGZvciByZWFkaW5nIHNvIHdlIHNob3VsZCBub3Qgc2VuZCBhbnkgbW9yZVxuICAgICAqIG1lc3NhZ2VzXG4gICAgICovXG4gICAgcmVtb3RlQ2xvc2VSZWFkKCkge1xuICAgICAgICBpZiAodGhpcy53cml0ZVN0YXR1cyA9PT0gJ2Nsb3NpbmcnIHx8IHRoaXMud3JpdGVTdGF0dXMgPT09ICdjbG9zZWQnKSB7XG4gICAgICAgICAgICB0aGlzLmxvZygncmVjZWl2ZWQgcmVtb3RlIGNsb3NlIHJlYWQgYnV0IGxvY2FsIHNpbmsgaXMgYWxyZWFkeSBjbG9zZWQnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvZy50cmFjZSgncmVtb3RlIGNsb3NlIHJlYWQnKTtcbiAgICAgICAgdGhpcy5fY2xvc2VTaW5rKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRoZSB1bmRlcmx5aW5nIG11eGVyIGhhcyBjbG9zZWQsIG5vIG1vcmUgbWVzc2FnZXMgY2FuIGJlIHNlbnQgb3Igd2lsbFxuICAgICAqIGJlIHJlY2VpdmVkLCBjbG9zZSBpbW1lZGlhdGVseSB0byBmcmVlIHVwIHJlc291cmNlc1xuICAgICAqL1xuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXR1cyA9PT0gJ2Nsb3NlZCcgfHwgdGhpcy5zdGF0dXMgPT09ICdhYm9ydGVkJyB8fCB0aGlzLnN0YXR1cyA9PT0gJ3Jlc2V0Jykge1xuICAgICAgICAgICAgdGhpcy5sb2coJ3JlY2VpdmVkIGRlc3Ryb3kgYnV0IHdlIGFyZSBhbHJlYWR5IGNsb3NlZCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9nLnRyYWNlKCdzdHJlYW0gZGVzdHJveWVkJyk7XG4gICAgICAgIHRoaXMuX2Nsb3NlU2lua0FuZFNvdXJjZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBXaGVuIGFuIGV4dGVuZGluZyBjbGFzcyByZWFkcyBkYXRhIGZyb20gaXQncyBpbXBsZW1lbnRhdGlvbi1zcGVjaWZpYyBzb3VyY2UsXG4gICAgICogY2FsbCB0aGlzIG1ldGhvZCB0byBhbGxvdyB0aGUgc3RyZWFtIGNvbnN1bWVyIHRvIHJlYWQgdGhlIGRhdGEuXG4gICAgICovXG4gICAgc291cmNlUHVzaChkYXRhKSB7XG4gICAgICAgIHRoaXMuc3RyZWFtU291cmNlLnB1c2goZGF0YSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGFtb3VudCBvZiB1bnJlYWQgZGF0YSAtIGNhbiBiZSB1c2VkIHRvIHByZXZlbnQgbGFyZ2UgYW1vdW50cyBvZlxuICAgICAqIGRhdGEgYnVpbGRpbmcgdXAgd2hlbiB0aGUgc3RyZWFtIGNvbnN1bWVyIGlzIHRvbyBzbG93LlxuICAgICAqL1xuICAgIHNvdXJjZVJlYWRhYmxlTGVuZ3RoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdHJlYW1Tb3VyY2UucmVhZGFibGVMZW5ndGg7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWJzdHJhY3Qtc3RyZWFtLmpzLm1hcCJdLCJuYW1lcyI6WyJDb2RlRXJyb3IiLCJwdXNoYWJsZSIsImRlZmVyIiwicERlZmVyIiwicmFjZVNpZ25hbCIsIlVpbnQ4QXJyYXlMaXN0IiwiY2xvc2VTb3VyY2UiLCJFUlJfU1RSRUFNX1JFU0VUIiwiRVJSX1NJTktfSU5WQUxJRF9TVEFURSIsIkRFRkFVTFRfU0VORF9DTE9TRV9XUklURV9USU1FT1VUIiwiaXNQcm9taXNlIiwidGhpbmciLCJ0aGVuIiwiY2F0Y2giLCJmaW5hbGx5IiwiQWJzdHJhY3RTdHJlYW0iLCJjb25zdHJ1Y3RvciIsImluaXQiLCJzaW5rQ29udHJvbGxlciIsIkFib3J0Q29udHJvbGxlciIsInNpbmtFbmQiLCJjbG9zZWQiLCJsb2ciLCJzdGF0dXMiLCJyZWFkU3RhdHVzIiwid3JpdGVTdGF0dXMiLCJpZCIsIm1ldGFkYXRhIiwiZGlyZWN0aW9uIiwidGltZWxpbmUiLCJvcGVuIiwiRGF0ZSIsIm5vdyIsInNlbmRDbG9zZVdyaXRlVGltZW91dCIsIm9uRW5kIiwib25DbG9zZVJlYWQiLCJvbkNsb3NlV3JpdGUiLCJvblJlc2V0Iiwib25BYm9ydCIsInNvdXJjZSIsInN0cmVhbVNvdXJjZSIsImVyciIsInRyYWNlIiwib25Tb3VyY2VFbmQiLCJzaW5rIiwiYmluZCIsIm9wdGlvbnMiLCJzaWduYWwiLCJyZXMiLCJzZW5kTmV3U3RyZWFtIiwiYWJvcnRMaXN0ZW5lciIsImFkZEV2ZW50TGlzdGVuZXIiLCJkYXRhIiwiVWludDhBcnJheSIsInNlbmREYXRhIiwic2VuZGluZ0RhdGEiLCJyZXNvbHZlIiwidW5kZWZpbmVkIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInNlbmRDbG9zZVdyaXRlIiwiQWJvcnRTaWduYWwiLCJ0aW1lb3V0Iiwib25TaW5rRW5kIiwiYWJvcnQiLCJjbG9zZVJlYWQiLCJlbmRFcnIiLCJjbG9zZVdyaXRlIiwiY2xvc2UiLCJQcm9taXNlIiwiYWxsIiwicHJvbWlzZSIsInNlbmRDbG9zZVJlYWQiLCJyZWFkYWJsZUxlbmd0aCIsImVuZCIsInNlbmRSZXNldCIsImVycm9yIiwiX2Nsb3NlU2lua0FuZFNvdXJjZSIsInJlc2V0IiwiX2Nsb3NlU2luayIsIl9jbG9zZVNvdXJjZSIsInJlbW90ZUNsb3NlV3JpdGUiLCJyZW1vdGVDbG9zZVJlYWQiLCJkZXN0cm95Iiwic291cmNlUHVzaCIsInB1c2giLCJzb3VyY2VSZWFkYWJsZUxlbmd0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/utils/dist/src/abstract-stream.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/utils/dist/src/address-sort.js":
/*!*************************************************************!*\
!*** ./node_modules/@libp2p/utils/dist/src/address-sort.js ***!
\*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ certifiedAddressesFirst: () => (/* binding */ certifiedAddressesFirst),\n/* harmony export */ circuitRelayAddressesLast: () => (/* binding */ circuitRelayAddressesLast),\n/* harmony export */ defaultAddressSort: () => (/* binding */ defaultAddressSort),\n/* harmony export */ publicAddressesFirst: () => (/* binding */ publicAddressesFirst)\n/* harmony export */ });\n/* harmony import */ var _multiformats_multiaddr_matcher__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @multiformats/multiaddr-matcher */ \"(ssr)/./node_modules/@multiformats/multiaddr-matcher/dist/src/index.js\");\n/* harmony import */ var _multiaddr_is_private_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./multiaddr/is-private.js */ \"(ssr)/./node_modules/@libp2p/utils/dist/src/multiaddr/is-private.js\");\n/**\n * @packageDocumentation\n *\n * Provides strategies to sort a list of multiaddrs.\n *\n * @example\n *\n * ```typescript\n * import { publicAddressesFirst } from '@libp2p/utils/address-sort'\n * import { multiaddr } from '@multformats/multiaddr'\n *\n *\n * const addresses = [\n * multiaddr('/ip4/127.0.0.1/tcp/9000'),\n * multiaddr('/ip4/82.41.53.1/tcp/9000')\n * ].sort(publicAddressesFirst)\n *\n * console.info(addresses)\n * // ['/ip4/82.41.53.1/tcp/9000', '/ip4/127.0.0.1/tcp/9000']\n * ```\n */ \n\n/**\n * Compare function for array.sort() that moves public addresses to the start\n * of the array.\n */ function publicAddressesFirst(a, b) {\n const isAPrivate = (0,_multiaddr_is_private_js__WEBPACK_IMPORTED_MODULE_1__.isPrivate)(a.multiaddr);\n const isBPrivate = (0,_multiaddr_is_private_js__WEBPACK_IMPORTED_MODULE_1__.isPrivate)(b.multiaddr);\n if (isAPrivate && !isBPrivate) {\n return 1;\n } else if (!isAPrivate && isBPrivate) {\n return -1;\n }\n return 0;\n}\n/**\n * Compare function for array.sort() that moves certified addresses to the start\n * of the array.\n */ function certifiedAddressesFirst(a, b) {\n if (a.isCertified && !b.isCertified) {\n return -1;\n } else if (!a.isCertified && b.isCertified) {\n return 1;\n }\n return 0;\n}\n/**\n * Compare function for array.sort() that moves circuit relay addresses to the\n * start of the array.\n */ function circuitRelayAddressesLast(a, b) {\n const isACircuit = _multiformats_multiaddr_matcher__WEBPACK_IMPORTED_MODULE_0__.Circuit.exactMatch(a.multiaddr);\n const isBCircuit = _multiformats_multiaddr_matcher__WEBPACK_IMPORTED_MODULE_0__.Circuit.exactMatch(b.multiaddr);\n if (isACircuit && !isBCircuit) {\n return 1;\n } else if (!isACircuit && isBCircuit) {\n return -1;\n }\n return 0;\n}\nfunction defaultAddressSort(a, b) {\n const publicResult = publicAddressesFirst(a, b);\n if (publicResult !== 0) {\n return publicResult;\n }\n const relayResult = circuitRelayAddressesLast(a, b);\n if (relayResult !== 0) {\n return relayResult;\n }\n const certifiedResult = certifiedAddressesFirst(a, b);\n return certifiedResult;\n} //# sourceMappingURL=address-sort.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC91dGlscy9kaXN0L3NyYy9hZGRyZXNzLXNvcnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBb0JDLEdBQ3lEO0FBQ0o7QUFDdEQ7OztDQUdDLEdBQ00sU0FBU0UscUJBQXFCQyxDQUFDLEVBQUVDLENBQUM7SUFDckMsTUFBTUMsYUFBYUosbUVBQVNBLENBQUNFLEVBQUVHLFNBQVM7SUFDeEMsTUFBTUMsYUFBYU4sbUVBQVNBLENBQUNHLEVBQUVFLFNBQVM7SUFDeEMsSUFBSUQsY0FBYyxDQUFDRSxZQUFZO1FBQzNCLE9BQU87SUFDWCxPQUNLLElBQUksQ0FBQ0YsY0FBY0UsWUFBWTtRQUNoQyxPQUFPLENBQUM7SUFDWjtJQUNBLE9BQU87QUFDWDtBQUNBOzs7Q0FHQyxHQUNNLFNBQVNDLHdCQUF3QkwsQ0FBQyxFQUFFQyxDQUFDO0lBQ3hDLElBQUlELEVBQUVNLFdBQVcsSUFBSSxDQUFDTCxFQUFFSyxXQUFXLEVBQUU7UUFDakMsT0FBTyxDQUFDO0lBQ1osT0FDSyxJQUFJLENBQUNOLEVBQUVNLFdBQVcsSUFBSUwsRUFBRUssV0FBVyxFQUFFO1FBQ3RDLE9BQU87SUFDWDtJQUNBLE9BQU87QUFDWDtBQUNBOzs7Q0FHQyxHQUNNLFNBQVNDLDBCQUEwQlAsQ0FBQyxFQUFFQyxDQUFDO0lBQzFDLE1BQU1PLGFBQWFYLG9FQUFPQSxDQUFDWSxVQUFVLENBQUNULEVBQUVHLFNBQVM7SUFDakQsTUFBTU8sYUFBYWIsb0VBQU9BLENBQUNZLFVBQVUsQ0FBQ1IsRUFBRUUsU0FBUztJQUNqRCxJQUFJSyxjQUFjLENBQUNFLFlBQVk7UUFDM0IsT0FBTztJQUNYLE9BQ0ssSUFBSSxDQUFDRixjQUFjRSxZQUFZO1FBQ2hDLE9BQU8sQ0FBQztJQUNaO0lBQ0EsT0FBTztBQUNYO0FBQ08sU0FBU0MsbUJBQW1CWCxDQUFDLEVBQUVDLENBQUM7SUFDbkMsTUFBTVcsZUFBZWIscUJBQXFCQyxHQUFHQztJQUM3QyxJQUFJVyxpQkFBaUIsR0FBRztRQUNwQixPQUFPQTtJQUNYO0lBQ0EsTUFBTUMsY0FBY04sMEJBQTBCUCxHQUFHQztJQUNqRCxJQUFJWSxnQkFBZ0IsR0FBRztRQUNuQixPQUFPQTtJQUNYO0lBQ0EsTUFBTUMsa0JBQWtCVCx3QkFBd0JMLEdBQUdDO0lBQ25ELE9BQU9hO0FBQ1gsRUFDQSx3Q0FBd0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL3V0aWxzL2Rpc3Qvc3JjL2FkZHJlc3Mtc29ydC5qcz83ZWMzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogUHJvdmlkZXMgc3RyYXRlZ2llcyB0byBzb3J0IGEgbGlzdCBvZiBtdWx0aWFkZHJzLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgcHVibGljQWRkcmVzc2VzRmlyc3QgfSBmcm9tICdAbGlicDJwL3V0aWxzL2FkZHJlc3Mtc29ydCdcbiAqIGltcG9ydCB7IG11bHRpYWRkciB9IGZyb20gJ0BtdWx0Zm9ybWF0cy9tdWx0aWFkZHInXG4gKlxuICpcbiAqIGNvbnN0IGFkZHJlc3NlcyA9IFtcbiAqICAgbXVsdGlhZGRyKCcvaXA0LzEyNy4wLjAuMS90Y3AvOTAwMCcpLFxuICogICBtdWx0aWFkZHIoJy9pcDQvODIuNDEuNTMuMS90Y3AvOTAwMCcpXG4gKiBdLnNvcnQocHVibGljQWRkcmVzc2VzRmlyc3QpXG4gKlxuICogY29uc29sZS5pbmZvKGFkZHJlc3NlcylcbiAqIC8vIFsnL2lwNC84Mi40MS41My4xL3RjcC85MDAwJywgJy9pcDQvMTI3LjAuMC4xL3RjcC85MDAwJ11cbiAqIGBgYFxuICovXG5pbXBvcnQgeyBDaXJjdWl0IH0gZnJvbSAnQG11bHRpZm9ybWF0cy9tdWx0aWFkZHItbWF0Y2hlcic7XG5pbXBvcnQgeyBpc1ByaXZhdGUgfSBmcm9tICcuL211bHRpYWRkci9pcy1wcml2YXRlLmpzJztcbi8qKlxuICogQ29tcGFyZSBmdW5jdGlvbiBmb3IgYXJyYXkuc29ydCgpIHRoYXQgbW92ZXMgcHVibGljIGFkZHJlc3NlcyB0byB0aGUgc3RhcnRcbiAqIG9mIHRoZSBhcnJheS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHB1YmxpY0FkZHJlc3Nlc0ZpcnN0KGEsIGIpIHtcbiAgICBjb25zdCBpc0FQcml2YXRlID0gaXNQcml2YXRlKGEubXVsdGlhZGRyKTtcbiAgICBjb25zdCBpc0JQcml2YXRlID0gaXNQcml2YXRlKGIubXVsdGlhZGRyKTtcbiAgICBpZiAoaXNBUHJpdmF0ZSAmJiAhaXNCUHJpdmF0ZSkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIWlzQVByaXZhdGUgJiYgaXNCUHJpdmF0ZSkge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgfVxuICAgIHJldHVybiAwO1xufVxuLyoqXG4gKiBDb21wYXJlIGZ1bmN0aW9uIGZvciBhcnJheS5zb3J0KCkgdGhhdCBtb3ZlcyBjZXJ0aWZpZWQgYWRkcmVzc2VzIHRvIHRoZSBzdGFydFxuICogb2YgdGhlIGFycmF5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2VydGlmaWVkQWRkcmVzc2VzRmlyc3QoYSwgYikge1xuICAgIGlmIChhLmlzQ2VydGlmaWVkICYmICFiLmlzQ2VydGlmaWVkKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIWEuaXNDZXJ0aWZpZWQgJiYgYi5pc0NlcnRpZmllZCkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgcmV0dXJuIDA7XG59XG4vKipcbiAqIENvbXBhcmUgZnVuY3Rpb24gZm9yIGFycmF5LnNvcnQoKSB0aGF0IG1vdmVzIGNpcmN1aXQgcmVsYXkgYWRkcmVzc2VzIHRvIHRoZVxuICogc3RhcnQgb2YgdGhlIGFycmF5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2lyY3VpdFJlbGF5QWRkcmVzc2VzTGFzdChhLCBiKSB7XG4gICAgY29uc3QgaXNBQ2lyY3VpdCA9IENpcmN1aXQuZXhhY3RNYXRjaChhLm11bHRpYWRkcik7XG4gICAgY29uc3QgaXNCQ2lyY3VpdCA9IENpcmN1aXQuZXhhY3RNYXRjaChiLm11bHRpYWRkcik7XG4gICAgaWYgKGlzQUNpcmN1aXQgJiYgIWlzQkNpcmN1aXQpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICAgIGVsc2UgaWYgKCFpc0FDaXJjdWl0ICYmIGlzQkNpcmN1aXQpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0QWRkcmVzc1NvcnQoYSwgYikge1xuICAgIGNvbnN0IHB1YmxpY1Jlc3VsdCA9IHB1YmxpY0FkZHJlc3Nlc0ZpcnN0KGEsIGIpO1xuICAgIGlmIChwdWJsaWNSZXN1bHQgIT09IDApIHtcbiAgICAgICAgcmV0dXJuIHB1YmxpY1Jlc3VsdDtcbiAgICB9XG4gICAgY29uc3QgcmVsYXlSZXN1bHQgPSBjaXJjdWl0UmVsYXlBZGRyZXNzZXNMYXN0KGEsIGIpO1xuICAgIGlmIChyZWxheVJlc3VsdCAhPT0gMCkge1xuICAgICAgICByZXR1cm4gcmVsYXlSZXN1bHQ7XG4gICAgfVxuICAgIGNvbnN0IGNlcnRpZmllZFJlc3VsdCA9IGNlcnRpZmllZEFkZHJlc3Nlc0ZpcnN0KGEsIGIpO1xuICAgIHJldHVybiBjZXJ0aWZpZWRSZXN1bHQ7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1hZGRyZXNzLXNvcnQuanMubWFwIl0sIm5hbWVzIjpbIkNpcmN1aXQiLCJpc1ByaXZhdGUiLCJwdWJsaWNBZGRyZXNzZXNGaXJzdCIsImEiLCJiIiwiaXNBUHJpdmF0ZSIsIm11bHRpYWRkciIsImlzQlByaXZhdGUiLCJjZXJ0aWZpZWRBZGRyZXNzZXNGaXJzdCIsImlzQ2VydGlmaWVkIiwiY2lyY3VpdFJlbGF5QWRkcmVzc2VzTGFzdCIsImlzQUNpcmN1aXQiLCJleGFjdE1hdGNoIiwiaXNCQ2lyY3VpdCIsImRlZmF1bHRBZGRyZXNzU29ydCIsInB1YmxpY1Jlc3VsdCIsInJlbGF5UmVzdWx0IiwiY2VydGlmaWVkUmVzdWx0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/utils/dist/src/address-sort.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/utils/dist/src/array-equals.js":
/*!*************************************************************!*\
!*** ./node_modules/@libp2p/utils/dist/src/array-equals.js ***!
\*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ arrayEquals: () => (/* binding */ arrayEquals)\n/* harmony export */ });\n/**\n * @packageDocumentation\n *\n * Provides strategies ensure arrays are equivalent.\n *\n * @example\n *\n * ```typescript\n * import { arrayEquals } from '@libp2p/utils/array-equals'\n * import { multiaddr } from '@multformats/multiaddr'\n *\n * const ma1 = multiaddr('/ip4/127.0.0.1/tcp/9000'),\n * const ma2 = multiaddr('/ip4/82.41.53.1/tcp/9000')\n *\n * console.info(arrayEquals([ma1], [ma1])) // true\n * console.info(arrayEquals([ma1], [ma2])) // false\n * ```\n */ /**\n * Verify if two arrays of non primitive types with the \"equals\" function are equal.\n * Compatible with multiaddr, peer-id and others.\n */ function arrayEquals(a, b) {\n const sort = (a, b)=>a.toString().localeCompare(b.toString());\n if (a.length !== b.length) {\n return false;\n }\n b.sort(sort);\n return a.sort(sort).every((item, index)=>b[index].equals(item));\n} //# sourceMappingURL=array-equals.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC91dGlscy9kaXN0L3NyYy9hcnJheS1lcXVhbHMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztDQWlCQyxHQUNEOzs7Q0FHQyxHQUNNLFNBQVNBLFlBQVlDLENBQUMsRUFBRUMsQ0FBQztJQUM1QixNQUFNQyxPQUFPLENBQUNGLEdBQUdDLElBQU1ELEVBQUVHLFFBQVEsR0FBR0MsYUFBYSxDQUFDSCxFQUFFRSxRQUFRO0lBQzVELElBQUlILEVBQUVLLE1BQU0sS0FBS0osRUFBRUksTUFBTSxFQUFFO1FBQ3ZCLE9BQU87SUFDWDtJQUNBSixFQUFFQyxJQUFJLENBQUNBO0lBQ1AsT0FBT0YsRUFBRUUsSUFBSSxDQUFDQSxNQUFNSSxLQUFLLENBQUMsQ0FBQ0MsTUFBTUMsUUFBVVAsQ0FBQyxDQUFDTyxNQUFNLENBQUNDLE1BQU0sQ0FBQ0Y7QUFDL0QsRUFDQSx3Q0FBd0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL3V0aWxzL2Rpc3Qvc3JjL2FycmF5LWVxdWFscy5qcz83OGZhIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogUHJvdmlkZXMgc3RyYXRlZ2llcyBlbnN1cmUgYXJyYXlzIGFyZSBlcXVpdmFsZW50LlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgYXJyYXlFcXVhbHMgfSBmcm9tICdAbGlicDJwL3V0aWxzL2FycmF5LWVxdWFscydcbiAqIGltcG9ydCB7IG11bHRpYWRkciB9IGZyb20gJ0BtdWx0Zm9ybWF0cy9tdWx0aWFkZHInXG4gKlxuICogY29uc3QgbWExID0gbXVsdGlhZGRyKCcvaXA0LzEyNy4wLjAuMS90Y3AvOTAwMCcpLFxuICogY29uc3QgbWEyID0gbXVsdGlhZGRyKCcvaXA0LzgyLjQxLjUzLjEvdGNwLzkwMDAnKVxuICpcbiAqIGNvbnNvbGUuaW5mbyhhcnJheUVxdWFscyhbbWExXSwgW21hMV0pKSAvLyB0cnVlXG4gKiBjb25zb2xlLmluZm8oYXJyYXlFcXVhbHMoW21hMV0sIFttYTJdKSkgLy8gZmFsc2VcbiAqIGBgYFxuICovXG4vKipcbiAqIFZlcmlmeSBpZiB0d28gYXJyYXlzIG9mIG5vbiBwcmltaXRpdmUgdHlwZXMgd2l0aCB0aGUgXCJlcXVhbHNcIiBmdW5jdGlvbiBhcmUgZXF1YWwuXG4gKiBDb21wYXRpYmxlIHdpdGggbXVsdGlhZGRyLCBwZWVyLWlkIGFuZCBvdGhlcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcnJheUVxdWFscyhhLCBiKSB7XG4gICAgY29uc3Qgc29ydCA9IChhLCBiKSA9PiBhLnRvU3RyaW5nKCkubG9jYWxlQ29tcGFyZShiLnRvU3RyaW5nKCkpO1xuICAgIGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBiLnNvcnQoc29ydCk7XG4gICAgcmV0dXJuIGEuc29ydChzb3J0KS5ldmVyeSgoaXRlbSwgaW5kZXgpID0+IGJbaW5kZXhdLmVxdWFscyhpdGVtKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcnJheS1lcXVhbHMuanMubWFwIl0sIm5hbWVzIjpbImFycmF5RXF1YWxzIiwiYSIsImIiLCJzb3J0IiwidG9TdHJpbmciLCJsb2NhbGVDb21wYXJlIiwibGVuZ3RoIiwiZXZlcnkiLCJpdGVtIiwiaW5kZXgiLCJlcXVhbHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/utils/dist/src/array-equals.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/utils/dist/src/close-source.js":
/*!*************************************************************!*\
!*** ./node_modules/@libp2p/utils/dist/src/close-source.js ***!
\*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ closeSource: () => (/* binding */ closeSource)\n/* harmony export */ });\n/* harmony import */ var get_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! get-iterator */ \"(ssr)/./node_modules/get-iterator/dist/src/index.js\");\n/* harmony import */ var _is_promise_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is-promise.js */ \"(ssr)/./node_modules/@libp2p/utils/dist/src/is-promise.js\");\n\n\nfunction closeSource(source, log) {\n const res = (0,get_iterator__WEBPACK_IMPORTED_MODULE_0__.getIterator)(source).return?.();\n if ((0,_is_promise_js__WEBPACK_IMPORTED_MODULE_1__.isPromise)(res)) {\n res.catch((err)=>{\n log.error(\"could not cause iterator to return\", err);\n });\n }\n} //# sourceMappingURL=close-source.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC91dGlscy9kaXN0L3NyYy9jbG9zZS1zb3VyY2UuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTJDO0FBQ0M7QUFDckMsU0FBU0UsWUFBWUMsTUFBTSxFQUFFQyxHQUFHO0lBQ25DLE1BQU1DLE1BQU1MLHlEQUFXQSxDQUFDRyxRQUFRRyxNQUFNO0lBQ3RDLElBQUlMLHlEQUFTQSxDQUFDSSxNQUFNO1FBQ2hCQSxJQUFJRSxLQUFLLENBQUNDLENBQUFBO1lBQ05KLElBQUlLLEtBQUssQ0FBQyxzQ0FBc0NEO1FBQ3BEO0lBQ0o7QUFDSixFQUNBLHdDQUF3QyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvdXRpbHMvZGlzdC9zcmMvY2xvc2Utc291cmNlLmpzP2IxYzciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0SXRlcmF0b3IgfSBmcm9tICdnZXQtaXRlcmF0b3InO1xuaW1wb3J0IHsgaXNQcm9taXNlIH0gZnJvbSAnLi9pcy1wcm9taXNlLmpzJztcbmV4cG9ydCBmdW5jdGlvbiBjbG9zZVNvdXJjZShzb3VyY2UsIGxvZykge1xuICAgIGNvbnN0IHJlcyA9IGdldEl0ZXJhdG9yKHNvdXJjZSkucmV0dXJuPy4oKTtcbiAgICBpZiAoaXNQcm9taXNlKHJlcykpIHtcbiAgICAgICAgcmVzLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoJ2NvdWxkIG5vdCBjYXVzZSBpdGVyYXRvciB0byByZXR1cm4nLCBlcnIpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jbG9zZS1zb3VyY2UuanMubWFwIl0sIm5hbWVzIjpbImdldEl0ZXJhdG9yIiwiaXNQcm9taXNlIiwiY2xvc2VTb3VyY2UiLCJzb3VyY2UiLCJsb2ciLCJyZXMiLCJyZXR1cm4iLCJjYXRjaCIsImVyciIsImVycm9yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/utils/dist/src/close-source.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/utils/dist/src/ip-port-to-multiaddr.js":
/*!*********************************************************************!*\
!*** ./node_modules/@libp2p/utils/dist/src/ip-port-to-multiaddr.js ***!
\*********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Errors: () => (/* binding */ Errors),\n/* harmony export */ ipPortToMultiaddr: () => (/* binding */ ipPortToMultiaddr)\n/* harmony export */ });\n/* harmony import */ var _chainsafe_is_ip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @chainsafe/is-ip */ \"(ssr)/./node_modules/@chainsafe/is-ip/lib/is-ip.node.js\");\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var _multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @multiformats/multiaddr */ \"(ssr)/./node_modules/@multiformats/multiaddr/dist/src/index.js\");\n\n\n\nconst Errors = {\n ERR_INVALID_IP_PARAMETER: \"ERR_INVALID_IP_PARAMETER\",\n ERR_INVALID_PORT_PARAMETER: \"ERR_INVALID_PORT_PARAMETER\",\n ERR_INVALID_IP: \"ERR_INVALID_IP\"\n};\n/**\n * Transform an IP, Port pair into a multiaddr\n */ function ipPortToMultiaddr(ip, port) {\n if (typeof ip !== \"string\") {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__.CodeError(`invalid ip provided: ${ip}`, Errors.ERR_INVALID_IP_PARAMETER); // eslint-disable-line @typescript-eslint/restrict-template-expressions\n }\n if (typeof port === \"string\") {\n port = parseInt(port);\n }\n if (isNaN(port)) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__.CodeError(`invalid port provided: ${port}`, Errors.ERR_INVALID_PORT_PARAMETER);\n }\n if ((0,_chainsafe_is_ip__WEBPACK_IMPORTED_MODULE_0__.isIPv4)(ip)) {\n return (0,_multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_1__.multiaddr)(`/ip4/${ip}/tcp/${port}`);\n }\n if ((0,_chainsafe_is_ip__WEBPACK_IMPORTED_MODULE_0__.isIPv6)(ip)) {\n return (0,_multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_1__.multiaddr)(`/ip6/${ip}/tcp/${port}`);\n }\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__.CodeError(`invalid ip:port for creating a multiaddr: ${ip}:${port}`, Errors.ERR_INVALID_IP);\n} //# sourceMappingURL=ip-port-to-multiaddr.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC91dGlscy9kaXN0L3NyYy9pcC1wb3J0LXRvLW11bHRpYWRkci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFrRDtBQUNKO0FBQ007QUFDN0MsTUFBTUksU0FBUztJQUNsQkMsMEJBQTBCO0lBQzFCQyw0QkFBNEI7SUFDNUJDLGdCQUFnQjtBQUNwQixFQUFFO0FBQ0Y7O0NBRUMsR0FDTSxTQUFTQyxrQkFBa0JDLEVBQUUsRUFBRUMsSUFBSTtJQUN0QyxJQUFJLE9BQU9ELE9BQU8sVUFBVTtRQUN4QixNQUFNLElBQUlQLHdEQUFTQSxDQUFDLENBQUMscUJBQXFCLEVBQUVPLEdBQUcsQ0FBQyxFQUFFTCxPQUFPQyx3QkFBd0IsR0FBRyx1RUFBdUU7SUFDL0o7SUFDQSxJQUFJLE9BQU9LLFNBQVMsVUFBVTtRQUMxQkEsT0FBT0MsU0FBU0Q7SUFDcEI7SUFDQSxJQUFJRSxNQUFNRixPQUFPO1FBQ2IsTUFBTSxJQUFJUix3REFBU0EsQ0FBQyxDQUFDLHVCQUF1QixFQUFFUSxLQUFLLENBQUMsRUFBRU4sT0FBT0UsMEJBQTBCO0lBQzNGO0lBQ0EsSUFBSU4sd0RBQU1BLENBQUNTLEtBQUs7UUFDWixPQUFPTixrRUFBU0EsQ0FBQyxDQUFDLEtBQUssRUFBRU0sR0FBRyxLQUFLLEVBQUVDLEtBQUssQ0FBQztJQUM3QztJQUNBLElBQUlULHdEQUFNQSxDQUFDUSxLQUFLO1FBQ1osT0FBT04sa0VBQVNBLENBQUMsQ0FBQyxLQUFLLEVBQUVNLEdBQUcsS0FBSyxFQUFFQyxLQUFLLENBQUM7SUFDN0M7SUFDQSxNQUFNLElBQUlSLHdEQUFTQSxDQUFDLENBQUMsMENBQTBDLEVBQUVPLEdBQUcsQ0FBQyxFQUFFQyxLQUFLLENBQUMsRUFBRU4sT0FBT0csY0FBYztBQUN4RyxFQUNBLGdEQUFnRCIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvdXRpbHMvZGlzdC9zcmMvaXAtcG9ydC10by1tdWx0aWFkZHIuanM/YjBkNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0lQdjQsIGlzSVB2NiB9IGZyb20gJ0BjaGFpbnNhZmUvaXMtaXAnO1xuaW1wb3J0IHsgQ29kZUVycm9yIH0gZnJvbSAnQGxpYnAycC9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgbXVsdGlhZGRyIH0gZnJvbSAnQG11bHRpZm9ybWF0cy9tdWx0aWFkZHInO1xuZXhwb3J0IGNvbnN0IEVycm9ycyA9IHtcbiAgICBFUlJfSU5WQUxJRF9JUF9QQVJBTUVURVI6ICdFUlJfSU5WQUxJRF9JUF9QQVJBTUVURVInLFxuICAgIEVSUl9JTlZBTElEX1BPUlRfUEFSQU1FVEVSOiAnRVJSX0lOVkFMSURfUE9SVF9QQVJBTUVURVInLFxuICAgIEVSUl9JTlZBTElEX0lQOiAnRVJSX0lOVkFMSURfSVAnXG59O1xuLyoqXG4gKiBUcmFuc2Zvcm0gYW4gSVAsIFBvcnQgcGFpciBpbnRvIGEgbXVsdGlhZGRyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpcFBvcnRUb011bHRpYWRkcihpcCwgcG9ydCkge1xuICAgIGlmICh0eXBlb2YgaXAgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRocm93IG5ldyBDb2RlRXJyb3IoYGludmFsaWQgaXAgcHJvdmlkZWQ6ICR7aXB9YCwgRXJyb3JzLkVSUl9JTlZBTElEX0lQX1BBUkFNRVRFUik7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3Jlc3RyaWN0LXRlbXBsYXRlLWV4cHJlc3Npb25zXG4gICAgfVxuICAgIGlmICh0eXBlb2YgcG9ydCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcG9ydCA9IHBhcnNlSW50KHBvcnQpO1xuICAgIH1cbiAgICBpZiAoaXNOYU4ocG9ydCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcihgaW52YWxpZCBwb3J0IHByb3ZpZGVkOiAke3BvcnR9YCwgRXJyb3JzLkVSUl9JTlZBTElEX1BPUlRfUEFSQU1FVEVSKTtcbiAgICB9XG4gICAgaWYgKGlzSVB2NChpcCkpIHtcbiAgICAgICAgcmV0dXJuIG11bHRpYWRkcihgL2lwNC8ke2lwfS90Y3AvJHtwb3J0fWApO1xuICAgIH1cbiAgICBpZiAoaXNJUHY2KGlwKSkge1xuICAgICAgICByZXR1cm4gbXVsdGlhZGRyKGAvaXA2LyR7aXB9L3RjcC8ke3BvcnR9YCk7XG4gICAgfVxuICAgIHRocm93IG5ldyBDb2RlRXJyb3IoYGludmFsaWQgaXA6cG9ydCBmb3IgY3JlYXRpbmcgYSBtdWx0aWFkZHI6ICR7aXB9OiR7cG9ydH1gLCBFcnJvcnMuRVJSX0lOVkFMSURfSVApO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXAtcG9ydC10by1tdWx0aWFkZHIuanMubWFwIl0sIm5hbWVzIjpbImlzSVB2NCIsImlzSVB2NiIsIkNvZGVFcnJvciIsIm11bHRpYWRkciIsIkVycm9ycyIsIkVSUl9JTlZBTElEX0lQX1BBUkFNRVRFUiIsIkVSUl9JTlZBTElEX1BPUlRfUEFSQU1FVEVSIiwiRVJSX0lOVkFMSURfSVAiLCJpcFBvcnRUb011bHRpYWRkciIsImlwIiwicG9ydCIsInBhcnNlSW50IiwiaXNOYU4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/utils/dist/src/ip-port-to-multiaddr.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/utils/dist/src/is-promise.js":
/*!***********************************************************!*\
!*** ./node_modules/@libp2p/utils/dist/src/is-promise.js ***!
\***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isPromise: () => (/* binding */ isPromise)\n/* harmony export */ });\nfunction isPromise(thing) {\n if (thing == null) {\n return false;\n }\n return typeof thing.then === \"function\" && typeof thing.catch === \"function\" && typeof thing.finally === \"function\";\n} //# sourceMappingURL=is-promise.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC91dGlscy9kaXN0L3NyYy9pcy1wcm9taXNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxTQUFTQSxVQUFVQyxLQUFLO0lBQzNCLElBQUlBLFNBQVMsTUFBTTtRQUNmLE9BQU87SUFDWDtJQUNBLE9BQU8sT0FBT0EsTUFBTUMsSUFBSSxLQUFLLGNBQ3pCLE9BQU9ELE1BQU1FLEtBQUssS0FBSyxjQUN2QixPQUFPRixNQUFNRyxPQUFPLEtBQUs7QUFDakMsRUFDQSxzQ0FBc0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL3V0aWxzL2Rpc3Qvc3JjL2lzLXByb21pc2UuanM/YzNjZiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNQcm9taXNlKHRoaW5nKSB7XG4gICAgaWYgKHRoaW5nID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHlwZW9mIHRoaW5nLnRoZW4gPT09ICdmdW5jdGlvbicgJiZcbiAgICAgICAgdHlwZW9mIHRoaW5nLmNhdGNoID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAgIHR5cGVvZiB0aGluZy5maW5hbGx5ID09PSAnZnVuY3Rpb24nO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtcHJvbWlzZS5qcy5tYXAiXSwibmFtZXMiOlsiaXNQcm9taXNlIiwidGhpbmciLCJ0aGVuIiwiY2F0Y2giLCJmaW5hbGx5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/utils/dist/src/is-promise.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/utils/dist/src/multiaddr/is-private.js":
/*!*********************************************************************!*\
!*** ./node_modules/@libp2p/utils/dist/src/multiaddr/is-private.js ***!
\*********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isPrivate: () => (/* binding */ isPrivate)\n/* harmony export */ });\n/* harmony import */ var _private_ip_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../private-ip.js */ \"(ssr)/./node_modules/@libp2p/utils/dist/src/private-ip.js\");\n\n/**\n * Check if a given multiaddr has a private address.\n */ function isPrivate(ma) {\n try {\n const { address } = ma.nodeAddress();\n return Boolean((0,_private_ip_js__WEBPACK_IMPORTED_MODULE_0__.isPrivateIp)(address));\n } catch {\n return true;\n }\n} //# sourceMappingURL=is-private.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC91dGlscy9kaXN0L3NyYy9tdWx0aWFkZHIvaXMtcHJpdmF0ZS5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUErQztBQUMvQzs7Q0FFQyxHQUNNLFNBQVNDLFVBQVVDLEVBQUU7SUFDeEIsSUFBSTtRQUNBLE1BQU0sRUFBRUMsT0FBTyxFQUFFLEdBQUdELEdBQUdFLFdBQVc7UUFDbEMsT0FBT0MsUUFBUUwsMkRBQVdBLENBQUNHO0lBQy9CLEVBQ0EsT0FBTTtRQUNGLE9BQU87SUFDWDtBQUNKLEVBQ0Esc0NBQXNDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC91dGlscy9kaXN0L3NyYy9tdWx0aWFkZHIvaXMtcHJpdmF0ZS5qcz80ZGM0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUHJpdmF0ZUlwIH0gZnJvbSAnLi4vcHJpdmF0ZS1pcC5qcyc7XG4vKipcbiAqIENoZWNrIGlmIGEgZ2l2ZW4gbXVsdGlhZGRyIGhhcyBhIHByaXZhdGUgYWRkcmVzcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUHJpdmF0ZShtYSkge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgYWRkcmVzcyB9ID0gbWEubm9kZUFkZHJlc3MoKTtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oaXNQcml2YXRlSXAoYWRkcmVzcykpO1xuICAgIH1cbiAgICBjYXRjaCB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLXByaXZhdGUuanMubWFwIl0sIm5hbWVzIjpbImlzUHJpdmF0ZUlwIiwiaXNQcml2YXRlIiwibWEiLCJhZGRyZXNzIiwibm9kZUFkZHJlc3MiLCJCb29sZWFuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/utils/dist/src/multiaddr/is-private.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/utils/dist/src/peer-queue.js":
/*!***********************************************************!*\
!*** ./node_modules/@libp2p/utils/dist/src/peer-queue.js ***!
\***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PeerQueue: () => (/* binding */ PeerQueue)\n/* harmony export */ });\n/* harmony import */ var _queue_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./queue/index.js */ \"(ssr)/./node_modules/@libp2p/utils/dist/src/queue/index.js\");\n/* eslint-disable @typescript-eslint/no-non-null-assertion */ \n/**\n * Extends Queue to add support for querying queued jobs by peer id\n */ class PeerQueue extends _queue_index_js__WEBPACK_IMPORTED_MODULE_0__.Queue {\n has(peerId) {\n return this.find(peerId) != null;\n }\n find(peerId) {\n return this.queue.find((job)=>{\n return peerId.equals(job.options.peerId);\n });\n }\n} //# sourceMappingURL=peer-queue.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC91dGlscy9kaXN0L3NyYy9wZWVyLXF1ZXVlLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkRBQTJELEdBQ2xCO0FBQ3pDOztDQUVDLEdBQ00sTUFBTUMsa0JBQWtCRCxrREFBS0E7SUFDaENFLElBQUlDLE1BQU0sRUFBRTtRQUNSLE9BQU8sSUFBSSxDQUFDQyxJQUFJLENBQUNELFdBQVc7SUFDaEM7SUFDQUMsS0FBS0QsTUFBTSxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUNFLEtBQUssQ0FBQ0QsSUFBSSxDQUFDRSxDQUFBQTtZQUNuQixPQUFPSCxPQUFPSSxNQUFNLENBQUNELElBQUlFLE9BQU8sQ0FBQ0wsTUFBTTtRQUMzQztJQUNKO0FBQ0osRUFDQSxzQ0FBc0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL3V0aWxzL2Rpc3Qvc3JjL3BlZXItcXVldWUuanM/OTQzMSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uICovXG5pbXBvcnQgeyBRdWV1ZSB9IGZyb20gJy4vcXVldWUvaW5kZXguanMnO1xuLyoqXG4gKiBFeHRlbmRzIFF1ZXVlIHRvIGFkZCBzdXBwb3J0IGZvciBxdWVyeWluZyBxdWV1ZWQgam9icyBieSBwZWVyIGlkXG4gKi9cbmV4cG9ydCBjbGFzcyBQZWVyUXVldWUgZXh0ZW5kcyBRdWV1ZSB7XG4gICAgaGFzKHBlZXJJZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kKHBlZXJJZCkgIT0gbnVsbDtcbiAgICB9XG4gICAgZmluZChwZWVySWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVldWUuZmluZChqb2IgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHBlZXJJZC5lcXVhbHMoam9iLm9wdGlvbnMucGVlcklkKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGVlci1xdWV1ZS5qcy5tYXAiXSwibmFtZXMiOlsiUXVldWUiLCJQZWVyUXVldWUiLCJoYXMiLCJwZWVySWQiLCJmaW5kIiwicXVldWUiLCJqb2IiLCJlcXVhbHMiLCJvcHRpb25zIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/utils/dist/src/peer-queue.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/utils/dist/src/private-ip.js":
/*!***********************************************************!*\
!*** ./node_modules/@libp2p/utils/dist/src/private-ip.js ***!
\***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isPrivateIp: () => (/* binding */ isPrivateIp)\n/* harmony export */ });\n/* harmony import */ var _chainsafe_is_ip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @chainsafe/is-ip */ \"(ssr)/./node_modules/@chainsafe/is-ip/lib/is-ip.node.js\");\n/* harmony import */ var netmask__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! netmask */ \"(ssr)/./node_modules/netmask/lib/netmask.js\");\n\n\nconst PRIVATE_IP_RANGES = [\n \"0.0.0.0/8\",\n \"10.0.0.0/8\",\n \"100.64.0.0/10\",\n \"127.0.0.0/8\",\n \"169.254.0.0/16\",\n \"172.16.0.0/12\",\n \"192.0.0.0/24\",\n \"192.0.0.0/29\",\n \"192.0.0.8/32\",\n \"192.0.0.9/32\",\n \"192.0.0.10/32\",\n \"192.0.0.170/32\",\n \"192.0.0.171/32\",\n \"192.0.2.0/24\",\n \"192.31.196.0/24\",\n \"192.52.193.0/24\",\n \"192.88.99.0/24\",\n \"192.168.0.0/16\",\n \"192.175.48.0/24\",\n \"198.18.0.0/15\",\n \"198.51.100.0/24\",\n \"203.0.113.0/24\",\n \"240.0.0.0/4\",\n \"255.255.255.255/32\"\n];\nconst NETMASK_RANGES = PRIVATE_IP_RANGES.map((ipRange)=>new netmask__WEBPACK_IMPORTED_MODULE_1__.Netmask(ipRange));\nfunction ipv4Check(ipAddr) {\n for (const r of NETMASK_RANGES){\n if (r.contains(ipAddr)) return true;\n }\n return false;\n}\nfunction ipv6Check(ipAddr) {\n return /^::$/.test(ipAddr) || /^::1$/.test(ipAddr) || /^::f{4}:([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})$/.test(ipAddr) || /^::f{4}:0.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})$/.test(ipAddr) || /^64:ff9b::([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})$/.test(ipAddr) || /^100::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(ipAddr) || /^2001::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(ipAddr) || /^2001:2[0-9a-fA-F]:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(ipAddr) || /^2001:db8:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(ipAddr) || /^2002:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(ipAddr) || /^f[c-d]([0-9a-fA-F]{2,2}):/i.test(ipAddr) || /^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(ipAddr) || /^ff([0-9a-fA-F]{2,2}):/i.test(ipAddr);\n}\nfunction isPrivateIp(ip) {\n if ((0,_chainsafe_is_ip__WEBPACK_IMPORTED_MODULE_0__.isIPv4)(ip)) return ipv4Check(ip);\n else if ((0,_chainsafe_is_ip__WEBPACK_IMPORTED_MODULE_0__.isIPv6)(ip)) return ipv6Check(ip);\n else return undefined;\n} //# sourceMappingURL=private-ip.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC91dGlscy9kaXN0L3NyYy9wcml2YXRlLWlwLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFrRDtBQUNoQjtBQUNsQyxNQUFNRyxvQkFBb0I7SUFDdEI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0g7QUFDRCxNQUFNQyxpQkFBaUJELGtCQUFrQkUsR0FBRyxDQUFDQyxDQUFBQSxVQUFXLElBQUlKLDRDQUFPQSxDQUFDSTtBQUNwRSxTQUFTQyxVQUFVQyxNQUFNO0lBQ3JCLEtBQUssTUFBTUMsS0FBS0wsZUFBZ0I7UUFDNUIsSUFBSUssRUFBRUMsUUFBUSxDQUFDRixTQUNYLE9BQU87SUFDZjtJQUNBLE9BQU87QUFDWDtBQUNBLFNBQVNHLFVBQVVILE1BQU07SUFDckIsT0FBTyxPQUFPSSxJQUFJLENBQUNKLFdBQ2YsUUFBUUksSUFBSSxDQUFDSixXQUNiLGtFQUFrRUksSUFBSSxDQUFDSixXQUN2RSxvRUFBb0VJLElBQUksQ0FBQ0osV0FDekUsb0VBQW9FSSxJQUFJLENBQUNKLFdBQ3pFLHdGQUF3RkksSUFBSSxDQUFDSixXQUM3RixpSUFBaUlJLElBQUksQ0FBQ0osV0FDdEksNklBQTZJSSxJQUFJLENBQUNKLFdBQ2xKLG9JQUFvSUksSUFBSSxDQUFDSixXQUN6SSxvSkFBb0pJLElBQUksQ0FBQ0osV0FDekosOEJBQThCSSxJQUFJLENBQUNKLFdBQ25DLDhCQUE4QkksSUFBSSxDQUFDSixXQUNuQywwQkFBMEJJLElBQUksQ0FBQ0o7QUFDdkM7QUFDTyxTQUFTSyxZQUFZQyxFQUFFO0lBQzFCLElBQUlkLHdEQUFNQSxDQUFDYyxLQUNQLE9BQU9QLFVBQVVPO1NBQ2hCLElBQUliLHdEQUFNQSxDQUFDYSxLQUNaLE9BQU9ILFVBQVVHO1NBRWpCLE9BQU9DO0FBQ2YsRUFDQSxzQ0FBc0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL3V0aWxzL2Rpc3Qvc3JjL3ByaXZhdGUtaXAuanM/NjAxYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0lQdjQsIGlzSVB2NiB9IGZyb20gJ0BjaGFpbnNhZmUvaXMtaXAnO1xuaW1wb3J0IHsgTmV0bWFzayB9IGZyb20gJ25ldG1hc2snO1xuY29uc3QgUFJJVkFURV9JUF9SQU5HRVMgPSBbXG4gICAgJzAuMC4wLjAvOCcsXG4gICAgJzEwLjAuMC4wLzgnLFxuICAgICcxMDAuNjQuMC4wLzEwJyxcbiAgICAnMTI3LjAuMC4wLzgnLFxuICAgICcxNjkuMjU0LjAuMC8xNicsXG4gICAgJzE3Mi4xNi4wLjAvMTInLFxuICAgICcxOTIuMC4wLjAvMjQnLFxuICAgICcxOTIuMC4wLjAvMjknLFxuICAgICcxOTIuMC4wLjgvMzInLFxuICAgICcxOTIuMC4wLjkvMzInLFxuICAgICcxOTIuMC4wLjEwLzMyJyxcbiAgICAnMTkyLjAuMC4xNzAvMzInLFxuICAgICcxOTIuMC4wLjE3MS8zMicsXG4gICAgJzE5Mi4wLjIuMC8yNCcsXG4gICAgJzE5Mi4zMS4xOTYuMC8yNCcsXG4gICAgJzE5Mi41Mi4xOTMuMC8yNCcsXG4gICAgJzE5Mi44OC45OS4wLzI0JyxcbiAgICAnMTkyLjE2OC4wLjAvMTYnLFxuICAgICcxOTIuMTc1LjQ4LjAvMjQnLFxuICAgICcxOTguMTguMC4wLzE1JyxcbiAgICAnMTk4LjUxLjEwMC4wLzI0JyxcbiAgICAnMjAzLjAuMTEzLjAvMjQnLFxuICAgICcyNDAuMC4wLjAvNCcsXG4gICAgJzI1NS4yNTUuMjU1LjI1NS8zMidcbl07XG5jb25zdCBORVRNQVNLX1JBTkdFUyA9IFBSSVZBVEVfSVBfUkFOR0VTLm1hcChpcFJhbmdlID0+IG5ldyBOZXRtYXNrKGlwUmFuZ2UpKTtcbmZ1bmN0aW9uIGlwdjRDaGVjayhpcEFkZHIpIHtcbiAgICBmb3IgKGNvbnN0IHIgb2YgTkVUTUFTS19SQU5HRVMpIHtcbiAgICAgICAgaWYgKHIuY29udGFpbnMoaXBBZGRyKSlcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBpcHY2Q2hlY2soaXBBZGRyKSB7XG4gICAgcmV0dXJuIC9eOjokLy50ZXN0KGlwQWRkcikgfHxcbiAgICAgICAgL146OjEkLy50ZXN0KGlwQWRkcikgfHxcbiAgICAgICAgL146OmZ7NH06KFswLTldezEsM30pXFwuKFswLTldezEsM30pXFwuKFswLTldezEsM30pXFwuKFswLTldezEsM30pJC8udGVzdChpcEFkZHIpIHx8XG4gICAgICAgIC9eOjpmezR9OjAuKFswLTldezEsM30pXFwuKFswLTldezEsM30pXFwuKFswLTldezEsM30pXFwuKFswLTldezEsM30pJC8udGVzdChpcEFkZHIpIHx8XG4gICAgICAgIC9eNjQ6ZmY5Yjo6KFswLTldezEsM30pXFwuKFswLTldezEsM30pXFwuKFswLTldezEsM30pXFwuKFswLTldezEsM30pJC8udGVzdChpcEFkZHIpIHx8XG4gICAgICAgIC9eMTAwOjooWzAtOWEtZkEtRl17MCw0fSk6PyhbMC05YS1mQS1GXXswLDR9KTo/KFswLTlhLWZBLUZdezAsNH0pOj8oWzAtOWEtZkEtRl17MCw0fSkkLy50ZXN0KGlwQWRkcikgfHxcbiAgICAgICAgL14yMDAxOjooWzAtOWEtZkEtRl17MCw0fSk6PyhbMC05YS1mQS1GXXswLDR9KTo/KFswLTlhLWZBLUZdezAsNH0pOj8oWzAtOWEtZkEtRl17MCw0fSk6PyhbMC05YS1mQS1GXXswLDR9KTo/KFswLTlhLWZBLUZdezAsNH0pJC8udGVzdChpcEFkZHIpIHx8XG4gICAgICAgIC9eMjAwMToyWzAtOWEtZkEtRl06KFswLTlhLWZBLUZdezAsNH0pOj8oWzAtOWEtZkEtRl17MCw0fSk6PyhbMC05YS1mQS1GXXswLDR9KTo/KFswLTlhLWZBLUZdezAsNH0pOj8oWzAtOWEtZkEtRl17MCw0fSk6PyhbMC05YS1mQS1GXXswLDR9KSQvLnRlc3QoaXBBZGRyKSB8fFxuICAgICAgICAvXjIwMDE6ZGI4OihbMC05YS1mQS1GXXswLDR9KTo/KFswLTlhLWZBLUZdezAsNH0pOj8oWzAtOWEtZkEtRl17MCw0fSk6PyhbMC05YS1mQS1GXXswLDR9KTo/KFswLTlhLWZBLUZdezAsNH0pOj8oWzAtOWEtZkEtRl17MCw0fSkkLy50ZXN0KGlwQWRkcikgfHxcbiAgICAgICAgL14yMDAyOihbMC05YS1mQS1GXXswLDR9KTo/KFswLTlhLWZBLUZdezAsNH0pOj8oWzAtOWEtZkEtRl17MCw0fSk6PyhbMC05YS1mQS1GXXswLDR9KTo/KFswLTlhLWZBLUZdezAsNH0pOj8oWzAtOWEtZkEtRl17MCw0fSk6PyhbMC05YS1mQS1GXXswLDR9KSQvLnRlc3QoaXBBZGRyKSB8fFxuICAgICAgICAvXmZbYy1kXShbMC05YS1mQS1GXXsyLDJ9KTovaS50ZXN0KGlwQWRkcikgfHxcbiAgICAgICAgL15mZVs4LTlhLWJBLUJdWzAtOWEtZkEtRl06L2kudGVzdChpcEFkZHIpIHx8XG4gICAgICAgIC9eZmYoWzAtOWEtZkEtRl17MiwyfSk6L2kudGVzdChpcEFkZHIpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJpdmF0ZUlwKGlwKSB7XG4gICAgaWYgKGlzSVB2NChpcCkpXG4gICAgICAgIHJldHVybiBpcHY0Q2hlY2soaXApO1xuICAgIGVsc2UgaWYgKGlzSVB2NihpcCkpXG4gICAgICAgIHJldHVybiBpcHY2Q2hlY2soaXApO1xuICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXByaXZhdGUtaXAuanMubWFwIl0sIm5hbWVzIjpbImlzSVB2NCIsImlzSVB2NiIsIk5ldG1hc2siLCJQUklWQVRFX0lQX1JBTkdFUyIsIk5FVE1BU0tfUkFOR0VTIiwibWFwIiwiaXBSYW5nZSIsImlwdjRDaGVjayIsImlwQWRkciIsInIiLCJjb250YWlucyIsImlwdjZDaGVjayIsInRlc3QiLCJpc1ByaXZhdGVJcCIsImlwIiwidW5kZWZpbmVkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/utils/dist/src/private-ip.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/utils/dist/src/queue/index.js":
/*!************************************************************!*\
!*** ./node_modules/@libp2p/utils/dist/src/queue/index.js ***!
\************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Queue: () => (/* binding */ Queue)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/event-target.js\");\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var it_pushable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! it-pushable */ \"(ssr)/./node_modules/it-pushable/dist/src/index.js\");\n/* harmony import */ var race_event__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! race-event */ \"(ssr)/./node_modules/race-event/dist/src/index.js\");\n/* harmony import */ var _job_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./job.js */ \"(ssr)/./node_modules/@libp2p/utils/dist/src/queue/job.js\");\n\n\n\n\n// Port of lower_bound from https://en.cppreference.com/w/cpp/algorithm/lower_bound\n// Used to compute insertion index to keep queue sorted after insertion\nfunction lowerBound(array, value, comparator) {\n let first = 0;\n let count = array.length;\n while(count > 0){\n const step = Math.trunc(count / 2);\n let it = first + step;\n if (comparator(array[it], value) <= 0) {\n first = ++it;\n count -= step + 1;\n } else {\n count = step;\n }\n }\n return first;\n}\n/**\n * Heavily influence by `p-queue` with the following differences:\n *\n * 1. Items remain at the head of the queue while they are running so `queue.size` includes `queue.pending` items - this is so interested parties can join the results of a queue item while it is running\n * 2. The options for a job are stored separately to the job in order for them to be modified while they are still in the queue\n */ class Queue extends _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__.TypedEventEmitter {\n constructor(init = {}){\n super();\n this.concurrency = init.concurrency ?? Number.POSITIVE_INFINITY;\n this.pending = 0;\n if (init.metricName != null) {\n init.metrics?.registerMetricGroup(init.metricName, {\n calculate: ()=>{\n return {\n size: this.queue.length,\n running: this.pending,\n queued: this.queue.length - this.pending\n };\n }\n });\n }\n this.queue = [];\n }\n tryToStartAnother() {\n if (this.size === 0) {\n // do this in the microtask queue so all job recipients receive the\n // result before the \"empty\" event fires\n queueMicrotask(()=>{\n this.safeDispatchEvent(\"empty\");\n });\n if (this.running === 0) {\n // do this in the microtask queue so all job recipients receive the\n // result before the \"idle\" event fires\n queueMicrotask(()=>{\n this.safeDispatchEvent(\"idle\");\n });\n }\n return false;\n }\n if (this.pending < this.concurrency) {\n let job;\n for (const j of this.queue){\n if (j.status === \"queued\") {\n job = j;\n break;\n }\n }\n if (job == null) {\n return false;\n }\n this.safeDispatchEvent(\"active\");\n this.pending++;\n job.run().finally(()=>{\n // remove the job from the queue\n for(let i = 0; i < this.queue.length; i++){\n if (this.queue[i] === job) {\n this.queue.splice(i, 1);\n break;\n }\n }\n this.pending--;\n this.tryToStartAnother();\n this.safeDispatchEvent(\"next\");\n });\n return true;\n }\n return false;\n }\n enqueue(job) {\n if (this.queue[this.size - 1]?.priority >= job.priority) {\n this.queue.push(job);\n return;\n }\n const index = lowerBound(this.queue, job, (a, b)=>b.priority - a.priority);\n this.queue.splice(index, 0, job);\n }\n /**\n * Adds a sync or async task to the queue. Always returns a promise.\n */ async add(fn, options) {\n options?.signal?.throwIfAborted();\n const job = new _job_js__WEBPACK_IMPORTED_MODULE_3__.Job(fn, options, options?.priority);\n const p = job.join(options).then((result)=>{\n this.safeDispatchEvent(\"completed\", {\n detail: result\n });\n this.safeDispatchEvent(\"success\", {\n detail: {\n job,\n result\n }\n });\n return result;\n }).catch((err)=>{\n if (job.status === \"queued\") {\n // job was aborted before it started - remove the job from the queue\n for(let i = 0; i < this.queue.length; i++){\n if (this.queue[i] === job) {\n this.queue.splice(i, 1);\n break;\n }\n }\n }\n this.safeDispatchEvent(\"error\", {\n detail: err\n });\n this.safeDispatchEvent(\"failure\", {\n detail: {\n job,\n error: err\n }\n });\n throw err;\n });\n this.enqueue(job);\n this.safeDispatchEvent(\"add\");\n this.tryToStartAnother();\n return p;\n }\n /**\n * Clear the queue\n */ clear() {\n this.queue.splice(0, this.queue.length);\n }\n /**\n * Abort all jobs in the queue and clear it\n */ abort() {\n this.queue.forEach((job)=>{\n job.abort(new _libp2p_interface__WEBPACK_IMPORTED_MODULE_4__.AbortError());\n });\n this.clear();\n }\n /**\n * Can be called multiple times. Useful if you for example add additional items at a later time.\n *\n * @returns A promise that settles when the queue becomes empty.\n */ async onEmpty(options) {\n // Instantly resolve if the queue is empty\n if (this.size === 0) {\n return;\n }\n await (0,race_event__WEBPACK_IMPORTED_MODULE_1__.raceEvent)(this, \"empty\", options?.signal);\n }\n /**\n * @returns A promise that settles when the queue size is less than the given\n * limit: `queue.size < limit`.\n *\n * If you want to avoid having the queue grow beyond a certain size you can\n * `await queue.onSizeLessThan()` before adding a new item.\n *\n * Note that this only limits the number of items waiting to start. There\n * could still be up to `concurrency` jobs already running that this call does\n * not include in its calculation.\n */ async onSizeLessThan(limit, options) {\n // Instantly resolve if the queue is empty.\n if (this.size < limit) {\n return;\n }\n await (0,race_event__WEBPACK_IMPORTED_MODULE_1__.raceEvent)(this, \"next\", options?.signal, {\n filter: ()=>this.size < limit\n });\n }\n /**\n * The difference with `.onEmpty` is that `.onIdle` guarantees that all work\n * from the queue has finished. `.onEmpty` merely signals that the queue is\n * empty, but it could mean that some promises haven't completed yet.\n *\n * @returns A promise that settles when the queue becomes empty, and all\n * promises have completed; `queue.size === 0 && queue.pending === 0`.\n */ async onIdle(options) {\n // Instantly resolve if none pending and if nothing else is queued\n if (this.pending === 0 && this.size === 0) {\n return;\n }\n await (0,race_event__WEBPACK_IMPORTED_MODULE_1__.raceEvent)(this, \"idle\", options?.signal);\n }\n /**\n * Size of the queue including running items\n */ get size() {\n return this.queue.length;\n }\n /**\n * The number of queued items waiting to run.\n */ get queued() {\n return this.queue.length - this.pending;\n }\n /**\n * The number of items currently running.\n */ get running() {\n return this.pending;\n }\n /**\n * Returns an async generator that makes it easy to iterate over the results\n * of jobs added to the queue.\n *\n * The generator will end when the queue becomes idle, that is there are no\n * jobs running and no jobs that have yet to run.\n *\n * If you need to keep the queue open indefinitely, consider using it-pushable\n * instead.\n */ async *toGenerator(options) {\n options?.signal?.throwIfAborted();\n const stream = (0,it_pushable__WEBPACK_IMPORTED_MODULE_0__.pushable)({\n objectMode: true\n });\n const cleanup = (err)=>{\n if (err != null) {\n this.abort();\n } else {\n this.clear();\n }\n stream.end(err);\n };\n const onQueueJobComplete = (evt)=>{\n if (evt.detail != null) {\n stream.push(evt.detail);\n }\n };\n const onQueueError = (evt)=>{\n cleanup(evt.detail);\n };\n const onQueueIdle = ()=>{\n cleanup();\n };\n // clear the queue and throw if the query is aborted\n const onSignalAbort = ()=>{\n cleanup(new _libp2p_interface__WEBPACK_IMPORTED_MODULE_4__.CodeError(\"Queue aborted\", \"ERR_QUEUE_ABORTED\"));\n };\n // add listeners\n this.addEventListener(\"completed\", onQueueJobComplete);\n this.addEventListener(\"error\", onQueueError);\n this.addEventListener(\"idle\", onQueueIdle);\n options?.signal?.addEventListener(\"abort\", onSignalAbort);\n try {\n yield* stream;\n } finally{\n // remove listeners\n this.removeEventListener(\"completed\", onQueueJobComplete);\n this.removeEventListener(\"error\", onQueueError);\n this.removeEventListener(\"idle\", onQueueIdle);\n options?.signal?.removeEventListener(\"abort\", onSignalAbort);\n // empty the queue for when the user has broken out of a loop early\n cleanup();\n }\n }\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC91dGlscy9kaXN0L3NyYy9xdWV1ZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBNkU7QUFDdEM7QUFDQTtBQUNSO0FBQy9CLG1GQUFtRjtBQUNuRix1RUFBdUU7QUFDdkUsU0FBU00sV0FBV0MsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLFVBQVU7SUFDeEMsSUFBSUMsUUFBUTtJQUNaLElBQUlDLFFBQVFKLE1BQU1LLE1BQU07SUFDeEIsTUFBT0QsUUFBUSxFQUFHO1FBQ2QsTUFBTUUsT0FBT0MsS0FBS0MsS0FBSyxDQUFDSixRQUFRO1FBQ2hDLElBQUlLLEtBQUtOLFFBQVFHO1FBQ2pCLElBQUlKLFdBQVdGLEtBQUssQ0FBQ1MsR0FBRyxFQUFFUixVQUFVLEdBQUc7WUFDbkNFLFFBQVEsRUFBRU07WUFDVkwsU0FBU0UsT0FBTztRQUNwQixPQUNLO1lBQ0RGLFFBQVFFO1FBQ1o7SUFDSjtJQUNBLE9BQU9IO0FBQ1g7QUFDQTs7Ozs7Q0FLQyxHQUNNLE1BQU1PLGNBQWNmLGdFQUFpQkE7SUFJeENnQixZQUFZQyxPQUFPLENBQUMsQ0FBQyxDQUFFO1FBQ25CLEtBQUs7UUFDTCxJQUFJLENBQUNDLFdBQVcsR0FBR0QsS0FBS0MsV0FBVyxJQUFJQyxPQUFPQyxpQkFBaUI7UUFDL0QsSUFBSSxDQUFDQyxPQUFPLEdBQUc7UUFDZixJQUFJSixLQUFLSyxVQUFVLElBQUksTUFBTTtZQUN6QkwsS0FBS00sT0FBTyxFQUFFQyxvQkFBb0JQLEtBQUtLLFVBQVUsRUFBRTtnQkFDL0NHLFdBQVc7b0JBQ1AsT0FBTzt3QkFDSEMsTUFBTSxJQUFJLENBQUNDLEtBQUssQ0FBQ2pCLE1BQU07d0JBQ3ZCa0IsU0FBUyxJQUFJLENBQUNQLE9BQU87d0JBQ3JCUSxRQUFRLElBQUksQ0FBQ0YsS0FBSyxDQUFDakIsTUFBTSxHQUFHLElBQUksQ0FBQ1csT0FBTztvQkFDNUM7Z0JBQ0o7WUFDSjtRQUNKO1FBQ0EsSUFBSSxDQUFD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LENBQUM4RSxnQkFBZ0IsQ0FBQyxhQUFhTDtRQUNuQyxJQUFJLENBQUNLLGdCQUFnQixDQUFDLFNBQVNIO1FBQy9CLElBQUksQ0FBQ0csZ0JBQWdCLENBQUMsUUFBUUY7UUFDOUIzQixTQUFTQyxRQUFRNEIsaUJBQWlCLFNBQVNEO1FBQzNDLElBQUk7WUFDQSxPQUFPUjtRQUNYLFNBQ1E7WUFDSixtQkFBbUI7WUFDbkIsSUFBSSxDQUFDVSxtQkFBbUIsQ0FBQyxhQUFhTjtZQUN0QyxJQUFJLENBQUNNLG1CQUFtQixDQUFDLFNBQVNKO1lBQ2xDLElBQUksQ0FBQ0ksbUJBQW1CLENBQUMsUUFBUUg7WUFDakMzQixTQUFTQyxRQUFRNkIsb0JBQW9CLFNBQVNGO1lBQzlDLG1FQUFtRTtZQUNuRU47UUFDSjtJQUNKO0FBQ0osRUFDQSxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL3V0aWxzL2Rpc3Qvc3JjL3F1ZXVlL2luZGV4LmpzPzNlZTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJvcnRFcnJvciwgQ29kZUVycm9yLCBUeXBlZEV2ZW50RW1pdHRlciB9IGZyb20gJ0BsaWJwMnAvaW50ZXJmYWNlJztcbmltcG9ydCB7IHB1c2hhYmxlIH0gZnJvbSAnaXQtcHVzaGFibGUnO1xuaW1wb3J0IHsgcmFjZUV2ZW50IH0gZnJvbSAncmFjZS1ldmVudCc7XG5pbXBvcnQgeyBKb2IgfSBmcm9tICcuL2pvYi5qcyc7XG4vLyBQb3J0IG9mIGxvd2VyX2JvdW5kIGZyb20gaHR0cHM6Ly9lbi5jcHByZWZlcmVuY2UuY29tL3cvY3BwL2FsZ29yaXRobS9sb3dlcl9ib3VuZFxuLy8gVXNlZCB0byBjb21wdXRlIGluc2VydGlvbiBpbmRleCB0byBrZWVwIHF1ZXVlIHNvcnRlZCBhZnRlciBpbnNlcnRpb25cbmZ1bmN0aW9uIGxvd2VyQm91bmQoYXJyYXksIHZhbHVlLCBjb21wYXJhdG9yKSB7XG4gICAgbGV0IGZpcnN0ID0gMDtcbiAgICBsZXQgY291bnQgPSBhcnJheS5sZW5ndGg7XG4gICAgd2hpbGUgKGNvdW50ID4gMCkge1xuICAgICAgICBjb25zdCBzdGVwID0gTWF0aC50cnVuYyhjb3VudCAvIDIpO1xuICAgICAgICBsZXQgaXQgPSBmaXJzdCArIHN0ZXA7XG4gICAgICAgIGlmIChjb21wYXJhdG9yKGFycmF5W2l0XSwgdmFsdWUpIDw9IDApIHtcbiAgICAgICAgICAgIGZpcnN0ID0gKytpdDtcbiAgICAgICAgICAgIGNvdW50IC09IHN0ZXAgKyAxO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY291bnQgPSBzdGVwO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmaXJzdDtcbn1cbi8qKlxuICogSGVhdmlseSBpbmZsdWVuY2UgYnkgYHAtcXVldWVgIHdpdGggdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlczpcbiAqXG4gKiAxLiBJdGVtcyByZW1haW4gYXQgdGhlIGhlYWQgb2YgdGhlIHF1ZXVlIHdoaWxlIHRoZXkgYXJlIHJ1bm5pbmcgc28gYHF1ZXVlLnNpemVgIGluY2x1ZGVzIGBxdWV1ZS5wZW5kaW5nYCBpdGVtcyAtIHRoaXMgaXMgc28gaW50ZXJlc3RlZCBwYXJ0aWVzIGNhbiBqb2luIHRoZSByZXN1bHRzIG9mIGEgcXVldWUgaXRlbSB3aGlsZSBpdCBpcyBydW5uaW5nXG4gKiAyLiBUaGUgb3B0aW9ucyBmb3IgYSBqb2IgYXJlIHN0b3JlZCBzZXBhcmF0ZWx5IHRvIHRoZSBqb2IgaW4gb3JkZXIgZm9yIHRoZW0gdG8gYmUgbW9kaWZpZWQgd2hpbGUgdGhleSBhcmUgc3RpbGwgaW4gdGhlIHF1ZXVlXG4gKi9cbmV4cG9ydCBjbGFzcyBRdWV1ZSBleHRlbmRzIFR5cGVkRXZlbnRFbWl0dGVyIHtcbiAgICBjb25jdXJyZW5jeTtcbiAgICBxdWV1ZTtcbiAgICBwZW5kaW5nO1xuICAgIGNvbnN0cnVjdG9yKGluaXQgPSB7fSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmNvbmN1cnJlbmN5ID0gaW5pdC5jb25jdXJyZW5jeSA/PyBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7XG4gICAgICAgIHRoaXMucGVuZGluZyA9IDA7XG4gICAgICAgIGlmIChpbml0Lm1ldHJpY05hbWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgaW5pdC5tZXRyaWNzPy5yZWdpc3Rlck1ldHJpY0dyb3VwKGluaXQubWV0cmljTmFtZSwge1xuICAgICAgICAgICAgICAgIGNhbGN1bGF0ZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogdGhpcy5xdWV1ZS5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBydW5uaW5nOiB0aGlzLnBlbmRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWV1ZWQ6IHRoaXMucXVldWUubGVuZ3RoIC0gdGhpcy5wZW5kaW5nXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5xdWV1ZSA9IFtdO1xuICAgIH1cbiAgICB0cnlUb1N0YXJ0QW5vdGhlcigpIHtcbiAgICAgICAgaWYgKHRoaXMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgICAgLy8gZG8gdGhpcyBpbiB0aGUgbWljcm90YXNrIHF1ZXVlIHNvIGFsbCBqb2IgcmVjaXBpZW50cyByZWNlaXZlIHRoZVxuICAgICAgICAgICAgLy8gcmVzdWx0IGJlZm9yZSB0aGUgXCJlbXB0eVwiIGV2ZW50IGZpcmVzXG4gICAgICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zYWZlRGlzcGF0Y2hFdmVudCgnZW1wdHknKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHRoaXMucnVubmluZyA9PT0gMCkge1xuICAgICAgICAgICAgICAgIC8vIGRvIHRoaXMgaW4gdGhlIG1pY3JvdGFzayBxdWV1ZSBzbyBhbGwgam9iIHJlY2lwaWVudHMgcmVjZWl2ZSB0aGVcbiAgICAgICAgICAgICAgICAvLyByZXN1bHQgYmVmb3JlIHRoZSBcImlkbGVcIiBldmVudCBmaXJlc1xuICAgICAgICAgICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zYWZlRGlzcGF0Y2hFdmVudCgnaWRsZScpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBlbmRpbmcgPCB0aGlzLmNvbmN1cnJlbmN5KSB7XG4gICAgICAgICAgICBsZXQgam9iO1xuICAgICAgICAgICAgZm9yIChjb25zdCBqIG9mIHRoaXMucXVldWUpIHtcbiAgICAgICAgICAgICAgICBpZiAoai5zdGF0dXMgPT09ICdxdWV1ZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGpvYiA9IGo7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChqb2IgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2FmZURpc3BhdGNoRXZlbnQoJ2FjdGl2ZScpO1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nKys7XG4gICAgICAgICAgICBqb2IucnVuKClcbiAgICAgICAgICAgICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gcmVtb3ZlIHRoZSBqb2IgZnJvbSB0aGUgcXVldWVcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucXVldWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucXVldWVbaV0gPT09IGpvYikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5xdWV1ZS5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmctLTtcbiAgICAgICAgICAgICAgICB0aGlzLnRyeVRvU3RhcnRBbm90aGVyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zYWZlRGlzcGF0Y2hFdmVudCgnbmV4dCcpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGVucXVldWUoam9iKSB7XG4gICAgICAgIGlmICh0aGlzLnF1ZXVlW3RoaXMuc2l6ZSAtIDFdPy5wcmlvcml0eSA+PSBqb2IucHJpb3JpdHkpIHtcbiAgICAgICAgICAgIHRoaXMucXVldWUucHVzaChqb2IpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4ID0gbG93ZXJCb3VuZCh0aGlzLnF1ZXVlLCBqb2IsIChhLCBiKSA9PiBiLnByaW9yaXR5IC0gYS5wcmlvcml0eSk7XG4gICAgICAgIHRoaXMucXVldWUuc3BsaWNlKGluZGV4LCAwLCBqb2IpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgc3luYyBvciBhc3luYyB0YXNrIHRvIHRoZSBxdWV1ZS4gQWx3YXlzIHJldHVybnMgYSBwcm9taXNlLlxuICAgICAqL1xuICAgIGFzeW5jIGFkZChmbiwgb3B0aW9ucykge1xuICAgICAgICBvcHRpb25zPy5zaWduYWw/LnRocm93SWZBYm9ydGVkKCk7XG4gICAgICAgIGNvbnN0IGpvYiA9IG5ldyBKb2IoZm4sIG9wdGlvbnMsIG9wdGlvbnM/LnByaW9yaXR5KTtcbiAgICAgICAgY29uc3QgcCA9IGpvYi5qb2luKG9wdGlvbnMpXG4gICAgICAgICAgICAudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICAgICAgdGhpcy5zYWZlRGlzcGF0Y2hFdmVudCgnY29tcGxldGVkJywgeyBkZXRhaWw6IHJlc3VsdCB9KTtcbiAgICAgICAgICAgIHRoaXMuc2FmZURpc3BhdGNoRXZlbnQoJ3N1Y2Nlc3MnLCB7IGRldGFpbDogeyBqb2IsIHJlc3VsdCB9IH0pO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgaWYgKGpvYi5zdGF0dXMgPT09ICdxdWV1ZWQnKSB7XG4gICAgICAgICAgICAgICAgLy8gam9iIHdhcyBhYm9ydGVkIGJlZm9yZSBpdCBzdGFydGVkIC0gcmVtb3ZlIHRoZSBqb2IgZnJvbSB0aGUgcXVldWVcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucXVldWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucXVldWVbaV0gPT09IGpvYikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5xdWV1ZS5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2FmZURpc3BhdGNoRXZlbnQoJ2Vycm9yJywgeyBkZXRhaWw6IGVyciB9KTtcbiAgICAgICAgICAgIHRoaXMuc2FmZURpc3BhdGNoRXZlbnQoJ2ZhaWx1cmUnLCB7IGRldGFpbDogeyBqb2IsIGVycm9yOiBlcnIgfSB9KTtcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZW5xdWV1ZShqb2IpO1xuICAgICAgICB0aGlzLnNhZmVEaXNwYXRjaEV2ZW50KCdhZGQnKTtcbiAgICAgICAgdGhpcy50cnlUb1N0YXJ0QW5vdGhlcigpO1xuICAgICAgICByZXR1cm4gcDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2xlYXIgdGhlIHF1ZXVlXG4gICAgICovXG4gICAgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMucXVldWUuc3BsaWNlKDAsIHRoaXMucXVldWUubGVuZ3RoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWJvcnQgYWxsIGpvYnMgaW4gdGhlIHF1ZXVlIGFuZCBjbGVhciBpdFxuICAgICAqL1xuICAgIGFib3J0KCkge1xuICAgICAgICB0aGlzLnF1ZXVlLmZvckVhY2goam9iID0+IHtcbiAgICAgICAgICAgIGpvYi5hYm9ydChuZXcgQWJvcnRFcnJvcigpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcy4gVXNlZnVsIGlmIHlvdSBmb3IgZXhhbXBsZSBhZGQgYWRkaXRpb25hbCBpdGVtcyBhdCBhIGxhdGVyIHRpbWUuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCBzZXR0bGVzIHdoZW4gdGhlIHF1ZXVlIGJlY29tZXMgZW1wdHkuXG4gICAgICovXG4gICAgYXN5bmMgb25FbXB0eShvcHRpb25zKSB7XG4gICAgICAgIC8vIEluc3RhbnRseSByZXNvbHZlIGlmIHRoZSBxdWV1ZSBpcyBlbXB0eVxuICAgICAgICBpZiAodGhpcy5zaXplID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgcmFjZUV2ZW50KHRoaXMsICdlbXB0eScsIG9wdGlvbnM/LnNpZ25hbCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHNldHRsZXMgd2hlbiB0aGUgcXVldWUgc2l6ZSBpcyBsZXNzIHRoYW4gdGhlIGdpdmVuXG4gICAgICogbGltaXQ6IGBxdWV1ZS5zaXplIDwgbGltaXRgLlxuICAgICAqXG4gICAgICogSWYgeW91IHdhbnQgdG8gYXZvaWQgaGF2aW5nIHRoZSBxdWV1ZSBncm93IGJleW9uZCBhIGNlcnRhaW4gc2l6ZSB5b3UgY2FuXG4gICAgICogYGF3YWl0IHF1ZXVlLm9uU2l6ZUxlc3NUaGFuKClgIGJlZm9yZSBhZGRpbmcgYSBuZXcgaXRlbS5cbiAgICAgKlxuICAgICAqIE5vdGUgdGhhdCB0aGlzIG9ubHkgbGltaXRzIHRoZSBudW1iZXIgb2YgaXRlbXMgd2FpdGluZyB0byBzdGFydC4gVGhlcmVcbiAgICAgKiBjb3VsZCBzdGlsbCBiZSB1cCB0byBgY29uY3VycmVuY3lgIGpvYnMgYWxyZWFkeSBydW5uaW5nIHRoYXQgdGhpcyBjYWxsIGRvZXNcbiAgICAgKiBub3QgaW5jbHVkZSBpbiBpdHMgY2FsY3VsYXRpb24uXG4gICAgICovXG4gICAgYXN5bmMgb25TaXplTGVzc1RoYW4obGltaXQsIG9wdGlvbnMpIHtcbiAgICAgICAgLy8gSW5zdGFudGx5IHJlc29sdmUgaWYgdGhlIHF1ZXVlIGlzIGVtcHR5LlxuICAgICAgICBpZiAodGhpcy5zaXplIDwgbGltaXQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCByYWNlRXZlbnQodGhpcywgJ25leHQnLCBvcHRpb25zPy5zaWduYWwsIHtcbiAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdGhpcy5zaXplIDwgbGltaXRcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRoZSBkaWZmZXJlbmNlIHdpdGggYC5vbkVtcHR5YCBpcyB0aGF0IGAub25JZGxlYCBndWFyYW50ZWVzIHRoYXQgYWxsIHdvcmtcbiAgICAgKiBmcm9tIHRoZSBxdWV1ZSBoYXMgZmluaXNoZWQuIGAub25FbXB0eWAgbWVyZWx5IHNpZ25hbHMgdGhhdCB0aGUgcXVldWUgaXNcbiAgICAgKiBlbXB0eSwgYnV0IGl0IGNvdWxkIG1lYW4gdGhhdCBzb21lIHByb21pc2VzIGhhdmVuJ3QgY29tcGxldGVkIHlldC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHNldHRsZXMgd2hlbiB0aGUgcXVldWUgYmVjb21lcyBlbXB0eSwgYW5kIGFsbFxuICAgICAqIHByb21pc2VzIGhhdmUgY29tcGxldGVkOyBgcXVldWUuc2l6ZSA9PT0gMCAmJiBxdWV1ZS5wZW5kaW5nID09PSAwYC5cbiAgICAgKi9cbiAgICBhc3luYyBvbklkbGUob3B0aW9ucykge1xuICAgICAgICAvLyBJbnN0YW50bHkgcmVzb2x2ZSBpZiBub25lIHBlbmRpbmcgYW5kIGlmIG5vdGhpbmcgZWxzZSBpcyBxdWV1ZWRcbiAgICAgICAgaWYgKHRoaXMucGVuZGluZyA9PT0gMCAmJiB0aGlzLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCByYWNlRXZlbnQodGhpcywgJ2lkbGUnLCBvcHRpb25zPy5zaWduYWwpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTaXplIG9mIHRoZSBxdWV1ZSBpbmNsdWRpbmcgcnVubmluZyBpdGVtc1xuICAgICAqL1xuICAgIGdldCBzaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5xdWV1ZS5sZW5ndGg7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRoZSBudW1iZXIgb2YgcXVldWVkIGl0ZW1zIHdhaXRpbmcgdG8gcnVuLlxuICAgICAqL1xuICAgIGdldCBxdWV1ZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXVlLmxlbmd0aCAtIHRoaXMucGVuZGluZztcbiAgICB9XG4gICAgLyoqXG4gICAgICogVGhlIG51bWJlciBvZiBpdGVtcyBjdXJyZW50bHkgcnVubmluZy5cbiAgICAgKi9cbiAgICBnZXQgcnVubmluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGVuZGluZztcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbiBhc3luYyBnZW5lcmF0b3IgdGhhdCBtYWtlcyBpdCBlYXN5IHRvIGl0ZXJhdGUgb3ZlciB0aGUgcmVzdWx0c1xuICAgICAqIG9mIGpvYnMgYWRkZWQgdG8gdGhlIHF1ZXVlLlxuICAgICAqXG4gICAgICogVGhlIGdlbmVyYXRvciB3aWxsIGVuZCB3aGVuIHRoZSBxdWV1ZSBiZWNvbWVzIGlkbGUsIHRoYXQgaXMgdGhlcmUgYXJlIG5vXG4gICAgICogam9icyBydW5uaW5nIGFuZCBubyBqb2JzIHRoYXQgaGF2ZSB5ZXQgdG8gcnVuLlxuICAgICAqXG4gICAgICogSWYgeW91IG5lZWQgdG8ga2VlcCB0aGUgcXVldWUgb3BlbiBpbmRlZmluaXRlbHksIGNvbnNpZGVyIHVzaW5nIGl0LXB1c2hhYmxlXG4gICAgICogaW5zdGVhZC5cbiAgICAgKi9cbiAgICBhc3luYyAqdG9HZW5lcmF0b3Iob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zPy5zaWduYWw/LnRocm93SWZBYm9ydGVkKCk7XG4gICAgICAgIGNvbnN0IHN0cmVhbSA9IHB1c2hhYmxlKHtcbiAgICAgICAgICAgIG9iamVjdE1vZGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGNsZWFudXAgPSAoZXJyKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFib3J0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdHJlYW0uZW5kKGVycik7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9uUXVldWVKb2JDb21wbGV0ZSA9IChldnQpID0+IHtcbiAgICAgICAgICAgIGlmIChldnQuZGV0YWlsICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzdHJlYW0ucHVzaChldnQuZGV0YWlsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb25RdWV1ZUVycm9yID0gKGV2dCkgPT4ge1xuICAgICAgICAgICAgY2xlYW51cChldnQuZGV0YWlsKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb25RdWV1ZUlkbGUgPSAoKSA9PiB7XG4gICAgICAgICAgICBjbGVhbnVwKCk7XG4gICAgICAgIH07XG4gICAgICAgIC8vIGNsZWFyIHRoZSBxdWV1ZSBhbmQgdGhyb3cgaWYgdGhlIHF1ZXJ5IGlzIGFib3J0ZWRcbiAgICAgICAgY29uc3Qgb25TaWduYWxBYm9ydCA9ICgpID0+IHtcbiAgICAgICAgICAgIGNsZWFudXAobmV3IENvZGVFcnJvcignUXVldWUgYWJvcnRlZCcsICdFUlJfUVVFVUVfQUJPUlRFRCcpKTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gYWRkIGxpc3RlbmVyc1xuICAgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2NvbXBsZXRlZCcsIG9uUXVldWVKb2JDb21wbGV0ZSk7XG4gICAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBvblF1ZXVlRXJyb3IpO1xuICAgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2lkbGUnLCBvblF1ZXVlSWRsZSk7XG4gICAgICAgIG9wdGlvbnM/LnNpZ25hbD8uYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvblNpZ25hbEFib3J0KTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHlpZWxkKiBzdHJlYW07XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAvLyByZW1vdmUgbGlzdGVuZXJzXG4gICAgICAgICAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NvbXBsZXRlZCcsIG9uUXVldWVKb2JDb21wbGV0ZSk7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgb25RdWV1ZUVycm9yKTtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcignaWRsZScsIG9uUXVldWVJZGxlKTtcbiAgICAgICAgICAgIG9wdGlvbnM/LnNpZ25hbD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvblNpZ25hbEFib3J0KTtcbiAgICAgICAgICAgIC8vIGVtcHR5IHRoZSBxdWV1ZSBmb3Igd2hlbiB0aGUgdXNlciBoYXMgYnJva2VuIG91dCBvZiBhIGxvb3AgZWFybHlcbiAgICAgICAgICAgIGNsZWFudXAoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6WyJBYm9ydEVycm9yIiwiQ29kZUVycm9yIiwiVHlwZWRFdmVudEVtaXR0ZXIiLCJwdXNoYWJsZSIsInJhY2VFdmVudCIsIkpvYiIsImxvd2VyQm91bmQiLCJhcnJheSIsInZhbHVlIiwiY29tcGFyYXRvciIsImZpcnN0IiwiY291bnQiLCJsZW5ndGgiLCJzdGVwIiwiTWF0aCIsInRydW5jIiwiaXQiLCJRdWV1ZSIsImNvbnN0cnVjdG9yIiwiaW5pdCIsImNvbmN1cnJlbmN5IiwiTnVtYmVyIiwiUE9TSVRJVkVfSU5GSU5JVFkiLCJwZW5kaW5nIiwibWV0cmljTmFtZSIsIm1ldHJpY3MiLCJyZWdpc3Rlck1ldHJpY0dyb3VwIiwiY2FsY3VsYXRlIiwic2l6ZSIsInF1ZXVlIiwicnVubmluZyIsInF1ZXVlZCIsInRyeVRvU3RhcnRBbm90aGVyIiwicXVldWVNaWNyb3Rhc2siLCJzYWZlRGlzcGF0Y2hFdmVudCIsImpvYiIsImoiLCJzdGF0dXMiLCJydW4iLCJmaW5hbGx5IiwiaSIsInNwbGljZSIsImVucXVldWUiLCJwcmlvcml0eSIsInB1c2giLCJpbmRleCIsImEiLCJiIiwiYWRkIiwiZm4iLCJvcHRpb25zIiwic2lnbmFsIiwidGhyb3dJZkFib3J0ZWQiLCJwIiwiam9pbiIsInRoZW4iLCJyZXN1bHQiLCJkZXRhaWwiLCJjYXRjaCIsImVyciIsImVycm9yIiwiY2xlYXIiLCJhYm9ydCIsImZvckVhY2giLCJvbkVtcHR5Iiwib25TaXplTGVzc1RoYW4iLCJsaW1pdCIsImZpbHRlciIsIm9uSWRsZSIsInRvR2VuZXJhdG9yIiwic3RyZWFtIiwib2JqZWN0TW9kZSIsImNsZWFudXAiLCJlbmQiLCJvblF1ZXVlSm9iQ29tcGxldGUiLCJldnQiLCJvblF1ZXVlRXJyb3IiLCJvblF1ZXVlSWRsZSIsIm9uU2lnbmFsQWJvcnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/utils/dist/src/queue/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/utils/dist/src/queue/job.js":
/*!**********************************************************!*\
!*** ./node_modules/@libp2p/utils/dist/src/queue/job.js ***!
\**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Job: () => (/* binding */ Job)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/events.js\");\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var race_signal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! race-signal */ \"(ssr)/./node_modules/race-signal/dist/src/index.js\");\n/* harmony import */ var _recipient_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./recipient.js */ \"(ssr)/./node_modules/@libp2p/utils/dist/src/queue/recipient.js\");\n\n\n\n/**\n * Returns a random string\n */ function randomId() {\n return `${parseInt(String(Math.random() * 1e9), 10).toString()}${Date.now()}`;\n}\nclass Job {\n constructor(fn, options, priority = 0){\n this.id = randomId();\n this.status = \"queued\";\n this.fn = fn;\n this.priority = priority;\n this.options = options;\n this.recipients = [];\n this.timeline = {\n created: Date.now()\n };\n this.controller = new AbortController();\n (0,_libp2p_interface__WEBPACK_IMPORTED_MODULE_1__.setMaxListeners)(Infinity, this.controller.signal);\n this.onAbort = this.onAbort.bind(this);\n }\n abort(err) {\n this.controller.abort(err);\n }\n onAbort() {\n const allAborted = this.recipients.reduce((acc, curr)=>{\n return acc && curr.signal?.aborted === true;\n }, true);\n // if all recipients have aborted the job, actually abort the job\n if (allAborted) {\n this.controller.abort(new _libp2p_interface__WEBPACK_IMPORTED_MODULE_2__.AbortError());\n this.cleanup();\n }\n }\n async join(options = {}) {\n const recipient = new _recipient_js__WEBPACK_IMPORTED_MODULE_3__.JobRecipient(new Error(\"where\").stack, options.signal);\n this.recipients.push(recipient);\n options.signal?.addEventListener(\"abort\", this.onAbort);\n return recipient.deferred.promise;\n }\n async run() {\n this.status = \"running\";\n this.timeline.started = Date.now();\n try {\n this.controller.signal.throwIfAborted();\n const result = await (0,race_signal__WEBPACK_IMPORTED_MODULE_0__.raceSignal)(this.fn({\n ...this.options ?? {},\n signal: this.controller.signal\n }), this.controller.signal);\n this.recipients.forEach((recipient)=>{\n recipient.deferred.resolve(result);\n });\n this.status = \"complete\";\n } catch (err) {\n this.recipients.forEach((recipient)=>{\n recipient.deferred.reject(err);\n });\n this.status = \"errored\";\n } finally{\n this.timeline.finished = Date.now();\n this.cleanup();\n }\n }\n cleanup() {\n this.recipients.forEach((recipient)=>{\n recipient.cleanup();\n recipient.signal?.removeEventListener(\"abort\", this.onAbort);\n });\n }\n} //# sourceMappingURL=job.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC91dGlscy9kaXN0L3NyYy9xdWV1ZS9qb2IuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBZ0U7QUFDdkI7QUFDSztBQUM5Qzs7Q0FFQyxHQUNELFNBQVNJO0lBQ0wsT0FBTyxDQUFDLEVBQUUsU0FBVUUsT0FBT0MsS0FBS0MsTUFBTSxLQUFLLE1BQU0sSUFBS0MsUUFBUSxHQUFHLEVBQUVDLEtBQUtDLEdBQUcsR0FBRyxDQUFDO0FBQ25GO0FBQ08sTUFBTUM7SUFTVEMsWUFBWUMsRUFBRSxFQUFFQyxPQUFPLEVBQUVDLFdBQVcsQ0FBQyxDQUFFO1FBQ25DLElBQUksQ0FBQ0MsRUFBRSxHQUFHYjtRQUNWLElBQUksQ0FBQ2MsTUFBTSxHQUFHO1FBQ2QsSUFBSSxDQUFDSixFQUFFLEdBQUdBO1FBQ1YsSUFBSSxDQUFDRSxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0QsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0ksVUFBVSxHQUFHLEVBQUU7UUFDcEIsSUFBSSxDQUFDQyxRQUFRLEdBQUc7WUFDWkMsU0FBU1gsS0FBS0MsR0FBRztRQUNyQjtRQUNBLElBQUksQ0FBQ1csVUFBVSxHQUFHLElBQUlDO1FBQ3RCdEIsa0VBQWVBLENBQUN1QixVQUFVLElBQUksQ0FBQ0YsVUFBVSxDQUFDRyxNQUFNO1FBQ2hELElBQUksQ0FBQ0MsT0FBTyxHQUFHLElBQUksQ0FBQ0EsT0FBTyxDQUFDQyxJQUFJLENBQUMsSUFBSTtJQUN6QztJQUNBQyxNQUFNQyxHQUFHLEVBQUU7UUFDUCxJQUFJLENBQUNQLFVBQVUsQ0FBQ00sS0FBSyxDQUFDQztJQUMxQjtJQUNBSCxVQUFVO1FBQ04sTUFBTUksYUFBYSxJQUFJLENBQUNYLFVBQVUsQ0FBQ1ksTUFBTSxDQUFDLENBQUNDLEtBQUtDO1lBQzVDLE9BQU9ELE9BQVFDLEtBQUtSLE1BQU0sRUFBRVMsWUFBWTtRQUM1QyxHQUFHO1FBQ0gsaUVBQWlFO1FBQ2pFLElBQUlKLFlBQVk7WUFDWixJQUFJLENBQUNSLFVBQVUsQ0FBQ00sS0FBSyxDQUFDLElBQUk1Qix5REFBVUE7WUFDcEMsSUFBSSxDQUFDbUMsT0FBTztRQUNoQjtJQUNKO0lBQ0EsTUFBTUMsS0FBS3JCLFVBQVUsQ0FBQyxDQUFDLEVBQUU7UUFDckIsTUFBTXNCLFlBQVksSUFBSWxDLHVEQUFZQSxDQUFDLElBQUttQyxNQUFNLFNBQVVDLEtBQUssRUFBRXhCLFFBQVFVLE1BQU07UUFDN0UsSUFBSSxDQUFDTixVQUFVLENBQUNxQixJQUFJLENBQUNIO1FBQ3JCdEIsUUFBUVUsTUFBTSxFQUFFZ0IsaUJBQWlCLFNBQVMsSUFBSSxDQUFDZixPQUFPO1FBQ3RELE9BQU9XLFVBQVVLLFFBQVEsQ0FBQ0MsT0FBTztJQUNyQztJQUNBLE1BQU1DLE1BQU07UUFDUixJQUFJLENBQUMxQixNQUFNLEdBQUc7UUFDZCxJQUFJLENBQUNFLFFBQVEsQ0FBQ3lCLE9BQU8sR0FBR25DLEtBQUtDLEdBQUc7UUFDaEMsSUFBSTtZQUNBLElBQUksQ0FBQ1csVUFBVSxDQUFDRyxNQUFNLENBQUNxQixjQUFjO1lBQ3JDLE1BQU1DLFNBQVMsTUFBTTdDLHVEQUFVQSxDQUFDLElBQUksQ0FBQ1ksRUFBRSxDQUFDO2dCQUNwQyxHQUFJLElBQUksQ0FBQ0MsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFDdEJVLFFBQVEsSUFBSSxDQUFDSCxVQUFVLENBQUNHLE1BQU07WUFDbEMsSUFBSSxJQUFJLENBQUNILFVBQVUsQ0FBQ0csTUFBTTtZQUMxQixJQUFJLENBQUNOLFVBQVUsQ0FBQzZCLE9BQU8sQ0FBQ1gsQ0FBQUE7Z0JBQ3BCQSxVQUFVSyxRQUFRLENBQUNPLE9BQU8sQ0FBQ0Y7WUFDL0I7WUFDQSxJQUFJLENBQUM3QixNQUFNLEdBQUc7UUFDbEIsRUFDQSxPQUFPVyxLQUFLO1lBQ1IsSUFBSSxDQUFDVixVQUFVLENBQUM2QixPQUFPLENBQUNYLENBQUFBO2dCQUNwQkEsVUFBVUssUUFBUSxDQUFDUSxNQUFNLENBQUNyQjtZQUM5QjtZQUNBLElBQUksQ0FBQ1gsTUFBTSxHQUFHO1FBQ2xCLFNBQ1E7WUFDSixJQUFJLENBQUNFLFFBQVEsQ0FBQytCLFFBQVEsR0FBR3pDLEtBQUtDLEdBQUc7WUFDakMsSUFBSSxDQUFDd0IsT0FBTztRQUNoQjtJQUNKO0lBQ0FBLFVBQVU7UUFDTixJQUFJLENBQUNoQixVQUFVLENBQUM2QixPQUFPLENBQUNYLENBQUFBO1lBQ3BCQSxVQUFVRixPQUFPO1lBQ2pCRSxVQUFVWixNQUFNLEVBQUUyQixvQkFBb0IsU0FBUyxJQUFJLENBQUMxQixPQUFPO1FBQy9EO0lBQ0o7QUFDSixFQUNBLCtCQUErQiIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsdXNoLW5vdGVzLy4vbm9kZV9tb2R1bGVzL0BsaWJwMnAvdXRpbHMvZGlzdC9zcmMvcXVldWUvam9iLmpzP2JmMjkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJvcnRFcnJvciwgc2V0TWF4TGlzdGVuZXJzIH0gZnJvbSAnQGxpYnAycC9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgcmFjZVNpZ25hbCB9IGZyb20gJ3JhY2Utc2lnbmFsJztcbmltcG9ydCB7IEpvYlJlY2lwaWVudCB9IGZyb20gJy4vcmVjaXBpZW50LmpzJztcbi8qKlxuICogUmV0dXJucyBhIHJhbmRvbSBzdHJpbmdcbiAqL1xuZnVuY3Rpb24gcmFuZG9tSWQoKSB7XG4gICAgcmV0dXJuIGAkeyhwYXJzZUludChTdHJpbmcoTWF0aC5yYW5kb20oKSAqIDFlOSksIDEwKSkudG9TdHJpbmcoKX0ke0RhdGUubm93KCl9YDtcbn1cbmV4cG9ydCBjbGFzcyBKb2Ige1xuICAgIGlkO1xuICAgIGZuO1xuICAgIG9wdGlvbnM7XG4gICAgcHJpb3JpdHk7XG4gICAgcmVjaXBpZW50cztcbiAgICBzdGF0dXM7XG4gICAgdGltZWxpbmU7XG4gICAgY29udHJvbGxlcjtcbiAgICBjb25zdHJ1Y3Rvcihmbiwgb3B0aW9ucywgcHJpb3JpdHkgPSAwKSB7XG4gICAgICAgIHRoaXMuaWQgPSByYW5kb21JZCgpO1xuICAgICAgICB0aGlzLnN0YXR1cyA9ICdxdWV1ZWQnO1xuICAgICAgICB0aGlzLmZuID0gZm47XG4gICAgICAgIHRoaXMucHJpb3JpdHkgPSBwcmlvcml0eTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5yZWNpcGllbnRzID0gW107XG4gICAgICAgIHRoaXMudGltZWxpbmUgPSB7XG4gICAgICAgICAgICBjcmVhdGVkOiBEYXRlLm5vdygpXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAgICAgc2V0TWF4TGlzdGVuZXJzKEluZmluaXR5LCB0aGlzLmNvbnRyb2xsZXIuc2lnbmFsKTtcbiAgICAgICAgdGhpcy5vbkFib3J0ID0gdGhpcy5vbkFib3J0LmJpbmQodGhpcyk7XG4gICAgfVxuICAgIGFib3J0KGVycikge1xuICAgICAgICB0aGlzLmNvbnRyb2xsZXIuYWJvcnQoZXJyKTtcbiAgICB9XG4gICAgb25BYm9ydCgpIHtcbiAgICAgICAgY29uc3QgYWxsQWJvcnRlZCA9IHRoaXMucmVjaXBpZW50cy5yZWR1Y2UoKGFjYywgY3VycikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGFjYyAmJiAoY3Vyci5zaWduYWw/LmFib3J0ZWQgPT09IHRydWUpO1xuICAgICAgICB9LCB0cnVlKTtcbiAgICAgICAgLy8gaWYgYWxsIHJlY2lwaWVudHMgaGF2ZSBhYm9ydGVkIHRoZSBqb2IsIGFjdHVhbGx5IGFib3J0IHRoZSBqb2JcbiAgICAgICAgaWYgKGFsbEFib3J0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlci5hYm9ydChuZXcgQWJvcnRFcnJvcigpKTtcbiAgICAgICAgICAgIHRoaXMuY2xlYW51cCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGpvaW4ob3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGNvbnN0IHJlY2lwaWVudCA9IG5ldyBKb2JSZWNpcGllbnQoKG5ldyBFcnJvcignd2hlcmUnKSkuc3RhY2ssIG9wdGlvbnMuc2lnbmFsKTtcbiAgICAgICAgdGhpcy5yZWNpcGllbnRzLnB1c2gocmVjaXBpZW50KTtcbiAgICAgICAgb3B0aW9ucy5zaWduYWw/LmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgdGhpcy5vbkFib3J0KTtcbiAgICAgICAgcmV0dXJuIHJlY2lwaWVudC5kZWZlcnJlZC5wcm9taXNlO1xuICAgIH1cbiAgICBhc3luYyBydW4oKSB7XG4gICAgICAgIHRoaXMuc3RhdHVzID0gJ3J1bm5pbmcnO1xuICAgICAgICB0aGlzLnRpbWVsaW5lLnN0YXJ0ZWQgPSBEYXRlLm5vdygpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyLnNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmFjZVNpZ25hbCh0aGlzLmZuKHtcbiAgICAgICAgICAgICAgICAuLi4odGhpcy5vcHRpb25zID8/IHt9KSxcbiAgICAgICAgICAgICAgICBzaWduYWw6IHRoaXMuY29udHJvbGxlci5zaWduYWxcbiAgICAgICAgICAgIH0pLCB0aGlzLmNvbnRyb2xsZXIuc2lnbmFsKTtcbiAgICAgICAgICAgIHRoaXMucmVjaXBpZW50cy5mb3JFYWNoKHJlY2lwaWVudCA9PiB7XG4gICAgICAgICAgICAgICAgcmVjaXBpZW50LmRlZmVycmVkLnJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSAnY29tcGxldGUnO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHRoaXMucmVjaXBpZW50cy5mb3JFYWNoKHJlY2lwaWVudCA9PiB7XG4gICAgICAgICAgICAgICAgcmVjaXBpZW50LmRlZmVycmVkLnJlamVjdChlcnIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9ICdlcnJvcmVkJztcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMudGltZWxpbmUuZmluaXNoZWQgPSBEYXRlLm5vdygpO1xuICAgICAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY2xlYW51cCgpIHtcbiAgICAgICAgdGhpcy5yZWNpcGllbnRzLmZvckVhY2gocmVjaXBpZW50ID0+IHtcbiAgICAgICAgICAgIHJlY2lwaWVudC5jbGVhbnVwKCk7XG4gICAgICAgICAgICByZWNpcGllbnQuc2lnbmFsPy5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm9ydCcsIHRoaXMub25BYm9ydCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWpvYi5qcy5tYXAiXSwibmFtZXMiOlsiQWJvcnRFcnJvciIsInNldE1heExpc3RlbmVycyIsInJhY2VTaWduYWwiLCJKb2JSZWNpcGllbnQiLCJyYW5kb21JZCIsInBhcnNlSW50IiwiU3RyaW5nIiwiTWF0aCIsInJhbmRvbSIsInRvU3RyaW5nIiwiRGF0ZSIsIm5vdyIsIkpvYiIsImNvbnN0cnVjdG9yIiwiZm4iLCJvcHRpb25zIiwicHJpb3JpdHkiLCJpZCIsInN0YXR1cyIsInJlY2lwaWVudHMiLCJ0aW1lbGluZSIsImNyZWF0ZWQiLCJjb250cm9sbGVyIiwiQWJvcnRDb250cm9sbGVyIiwiSW5maW5pdHkiLCJzaWduYWwiLCJvbkFib3J0IiwiYmluZCIsImFib3J0IiwiZXJyIiwiYWxsQWJvcnRlZCIsInJlZHVjZSIsImFjYyIsImN1cnIiLCJhYm9ydGVkIiwiY2xlYW51cCIsImpvaW4iLCJyZWNpcGllbnQiLCJFcnJvciIsInN0YWNrIiwicHVzaCIsImFkZEV2ZW50TGlzdGVuZXIiLCJkZWZlcnJlZCIsInByb21pc2UiLCJydW4iLCJzdGFydGVkIiwidGhyb3dJZkFib3J0ZWQiLCJyZXN1bHQiLCJmb3JFYWNoIiwicmVzb2x2ZSIsInJlamVjdCIsImZpbmlzaGVkIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/utils/dist/src/queue/job.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/utils/dist/src/queue/recipient.js":
/*!****************************************************************!*\
!*** ./node_modules/@libp2p/utils/dist/src/queue/recipient.js ***!
\****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ JobRecipient: () => (/* binding */ JobRecipient)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var p_defer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! p-defer */ \"(ssr)/./node_modules/p-defer/index.js\");\n\n\nclass JobRecipient {\n constructor(where, signal){\n this.signal = signal;\n this.deferred = (0,p_defer__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\n this.where = where;\n this.onAbort = this.onAbort.bind(this);\n this.signal?.addEventListener(\"abort\", this.onAbort);\n }\n onAbort() {\n this.deferred.reject(this.signal?.reason ?? new _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__.AbortError());\n }\n cleanup() {\n this.signal?.removeEventListener(\"abort\", this.onAbort);\n }\n} //# sourceMappingURL=recipient.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC91dGlscy9kaXN0L3NyYy9xdWV1ZS9yZWNpcGllbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQStDO0FBQ2xCO0FBQ3RCLE1BQU1FO0lBSVRDLFlBQVlDLEtBQUssRUFBRUMsTUFBTSxDQUFFO1FBQ3ZCLElBQUksQ0FBQ0EsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsUUFBUSxHQUFHTCxtREFBTUE7UUFDdEIsSUFBSSxDQUFDRyxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDRyxPQUFPLEdBQUcsSUFBSSxDQUFDQSxPQUFPLENBQUNDLElBQUksQ0FBQyxJQUFJO1FBQ3JDLElBQUksQ0FBQ0gsTUFBTSxFQUFFSSxpQkFBaUIsU0FBUyxJQUFJLENBQUNGLE9BQU87SUFDdkQ7SUFDQUEsVUFBVTtRQUNOLElBQUksQ0FBQ0QsUUFBUSxDQUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDTCxNQUFNLEVBQUVNLFVBQVUsSUFBSVgseURBQVVBO0lBQzlEO0lBQ0FZLFVBQVU7UUFDTixJQUFJLENBQUNQLE1BQU0sRUFBRVEsb0JBQW9CLFNBQVMsSUFBSSxDQUFDTixPQUFPO0lBQzFEO0FBQ0osRUFDQSxxQ0FBcUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL3V0aWxzL2Rpc3Qvc3JjL3F1ZXVlL3JlY2lwaWVudC5qcz83NjViIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFib3J0RXJyb3IgfSBmcm9tICdAbGlicDJwL2ludGVyZmFjZSc7XG5pbXBvcnQgcERlZmVyIGZyb20gJ3AtZGVmZXInO1xuZXhwb3J0IGNsYXNzIEpvYlJlY2lwaWVudCB7XG4gICAgZGVmZXJyZWQ7XG4gICAgc2lnbmFsO1xuICAgIHdoZXJlO1xuICAgIGNvbnN0cnVjdG9yKHdoZXJlLCBzaWduYWwpIHtcbiAgICAgICAgdGhpcy5zaWduYWwgPSBzaWduYWw7XG4gICAgICAgIHRoaXMuZGVmZXJyZWQgPSBwRGVmZXIoKTtcbiAgICAgICAgdGhpcy53aGVyZSA9IHdoZXJlO1xuICAgICAgICB0aGlzLm9uQWJvcnQgPSB0aGlzLm9uQWJvcnQuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5zaWduYWw/LmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgdGhpcy5vbkFib3J0KTtcbiAgICB9XG4gICAgb25BYm9ydCgpIHtcbiAgICAgICAgdGhpcy5kZWZlcnJlZC5yZWplY3QodGhpcy5zaWduYWw/LnJlYXNvbiA/PyBuZXcgQWJvcnRFcnJvcigpKTtcbiAgICB9XG4gICAgY2xlYW51cCgpIHtcbiAgICAgICAgdGhpcy5zaWduYWw/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgdGhpcy5vbkFib3J0KTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWNpcGllbnQuanMubWFwIl0sIm5hbWVzIjpbIkFib3J0RXJyb3IiLCJwRGVmZXIiLCJKb2JSZWNpcGllbnQiLCJjb25zdHJ1Y3RvciIsIndoZXJlIiwic2lnbmFsIiwiZGVmZXJyZWQiLCJvbkFib3J0IiwiYmluZCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZWplY3QiLCJyZWFzb24iLCJjbGVhbnVwIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/utils/dist/src/queue/recipient.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/utils/dist/src/rate-limiter.js":
/*!*************************************************************!*\
!*** ./node_modules/@libp2p/utils/dist/src/rate-limiter.js ***!
\*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RateLimiter: () => (/* binding */ RateLimiter)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var delay__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! delay */ \"(ssr)/./node_modules/delay/index.js\");\n\n\nclass RateLimiter {\n constructor(opts = {}){\n this.points = opts.points ?? 4;\n this.duration = opts.duration ?? 1;\n this.blockDuration = opts.blockDuration ?? 0;\n this.execEvenly = opts.execEvenly ?? false;\n this.execEvenlyMinDelayMs = opts.execEvenlyMinDelayMs ?? this.duration * 1000 / this.points;\n this.keyPrefix = opts.keyPrefix ?? \"rlflx\";\n this.memoryStorage = new MemoryStorage();\n }\n async consume(key, pointsToConsume = 1, options = {}) {\n const rlKey = this.getKey(key);\n const secDuration = this._getKeySecDuration(options);\n let res = this.memoryStorage.incrby(rlKey, pointsToConsume, secDuration);\n res.remainingPoints = Math.max(this.points - res.consumedPoints, 0);\n if (res.consumedPoints > this.points) {\n // Block only first time when consumed more than points\n if (this.blockDuration > 0 && res.consumedPoints <= this.points + pointsToConsume) {\n // Block key\n res = this.memoryStorage.set(rlKey, res.consumedPoints, this.blockDuration);\n }\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__.CodeError(\"Rate limit exceeded\", \"ERR_RATE_LIMIT_EXCEEDED\", res);\n } else if (this.execEvenly && res.msBeforeNext > 0 && !res.isFirstInDuration) {\n // Execute evenly\n let delayMs = Math.ceil(res.msBeforeNext / (res.remainingPoints + 2));\n if (delayMs < this.execEvenlyMinDelayMs) {\n delayMs = res.consumedPoints * this.execEvenlyMinDelayMs;\n }\n await (0,delay__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(delayMs);\n }\n return res;\n }\n penalty(key, points = 1, options = {}) {\n const rlKey = this.getKey(key);\n const secDuration = this._getKeySecDuration(options);\n const res = this.memoryStorage.incrby(rlKey, points, secDuration);\n res.remainingPoints = Math.max(this.points - res.consumedPoints, 0);\n return res;\n }\n reward(key, points = 1, options = {}) {\n const rlKey = this.getKey(key);\n const secDuration = this._getKeySecDuration(options);\n const res = this.memoryStorage.incrby(rlKey, -points, secDuration);\n res.remainingPoints = Math.max(this.points - res.consumedPoints, 0);\n return res;\n }\n /**\n * Block any key for secDuration seconds\n *\n * @param key\n * @param secDuration\n */ block(key, secDuration) {\n const msDuration = secDuration * 1000;\n const initPoints = this.points + 1;\n this.memoryStorage.set(this.getKey(key), initPoints, secDuration);\n return {\n remainingPoints: 0,\n msBeforeNext: msDuration === 0 ? -1 : msDuration,\n consumedPoints: initPoints,\n isFirstInDuration: false\n };\n }\n set(key, points, secDuration = 0) {\n const msDuration = (secDuration >= 0 ? secDuration : this.duration) * 1000;\n this.memoryStorage.set(this.getKey(key), points, secDuration);\n return {\n remainingPoints: 0,\n msBeforeNext: msDuration === 0 ? -1 : msDuration,\n consumedPoints: points,\n isFirstInDuration: false\n };\n }\n get(key) {\n const res = this.memoryStorage.get(this.getKey(key));\n if (res != null) {\n res.remainingPoints = Math.max(this.points - res.consumedPoints, 0);\n }\n return res;\n }\n delete(key) {\n this.memoryStorage.delete(this.getKey(key));\n }\n _getKeySecDuration(options) {\n if (options?.customDuration != null && options.customDuration >= 0) {\n return options.customDuration;\n }\n return this.duration;\n }\n getKey(key) {\n return this.keyPrefix.length > 0 ? `${this.keyPrefix}:${key}` : key;\n }\n parseKey(rlKey) {\n return rlKey.substring(this.keyPrefix.length);\n }\n}\nclass MemoryStorage {\n constructor(){\n this.storage = new Map();\n }\n incrby(key, value, durationSec) {\n const existing = this.storage.get(key);\n if (existing != null) {\n const msBeforeExpires = existing.expiresAt != null ? existing.expiresAt.getTime() - new Date().getTime() : -1;\n if (existing.expiresAt == null || msBeforeExpires > 0) {\n // Change value\n existing.value += value;\n return {\n remainingPoints: 0,\n msBeforeNext: msBeforeExpires,\n consumedPoints: existing.value,\n isFirstInDuration: false\n };\n }\n return this.set(key, value, durationSec);\n }\n return this.set(key, value, durationSec);\n }\n set(key, value, durationSec) {\n const durationMs = durationSec * 1000;\n const existing = this.storage.get(key);\n if (existing != null) {\n clearTimeout(existing.timeoutId);\n }\n const record = {\n value,\n expiresAt: durationMs > 0 ? new Date(Date.now() + durationMs) : undefined\n };\n this.storage.set(key, record);\n if (durationMs > 0) {\n record.timeoutId = setTimeout(()=>{\n this.storage.delete(key);\n }, durationMs);\n if (record.timeoutId.unref != null) {\n record.timeoutId.unref();\n }\n }\n return {\n remainingPoints: 0,\n msBeforeNext: durationMs === 0 ? -1 : durationMs,\n consumedPoints: record.value,\n isFirstInDuration: true\n };\n }\n get(key) {\n const existing = this.storage.get(key);\n if (existing != null) {\n const msBeforeExpires = existing.expiresAt != null ? existing.expiresAt.getTime() - new Date().getTime() : -1;\n return {\n remainingPoints: 0,\n msBeforeNext: msBeforeExpires,\n consumedPoints: existing.value,\n isFirstInDuration: false\n };\n }\n }\n delete(key) {\n const record = this.storage.get(key);\n if (record != null) {\n if (record.timeoutId != null) {\n clearTimeout(record.timeoutId);\n }\n this.storage.delete(key);\n return true;\n }\n return false;\n }\n} //# sourceMappingURL=rate-limiter.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC91dGlscy9kaXN0L3NyYy9yYXRlLWxpbWl0ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQThDO0FBQ3BCO0FBQ25CLE1BQU1FO0lBUVRDLFlBQVlDLE9BQU8sQ0FBQyxDQUFDLENBQUU7UUFDbkIsSUFBSSxDQUFDQyxNQUFNLEdBQUdELEtBQUtDLE1BQU0sSUFBSTtRQUM3QixJQUFJLENBQUNDLFFBQVEsR0FBR0YsS0FBS0UsUUFBUSxJQUFJO1FBQ2pDLElBQUksQ0FBQ0MsYUFBYSxHQUFHSCxLQUFLRyxhQUFhLElBQUk7UUFDM0MsSUFBSSxDQUFDQyxVQUFVLEdBQUdKLEtBQUtJLFVBQVUsSUFBSTtRQUNyQyxJQUFJLENBQUNDLG9CQUFvQixHQUFHTCxLQUFLSyxvQkFBb0IsSUFBSyxJQUFJLENBQUNILFFBQVEsR0FBRyxPQUFPLElBQUksQ0FBQ0QsTUFBTTtRQUM1RixJQUFJLENBQUNLLFNBQVMsR0FBR04sS0FBS00sU0FBUyxJQUFJO1FBQ25DLElBQUksQ0FBQ0MsYUFBYSxHQUFHLElBQUlDO0lBQzdCO0lBQ0EsTUFBTUMsUUFBUUMsR0FBRyxFQUFFQyxrQkFBa0IsQ0FBQyxFQUFFQyxVQUFVLENBQUMsQ0FBQyxFQUFFO1FBQ2xELE1BQU1DLFFBQVEsSUFBSSxDQUFDQyxNQUFNLENBQUNKO1FBQzFCLE1BQU1LLGNBQWMsSUFBSSxDQUFDQyxrQkFBa0IsQ0FBQ0o7UUFDNUMsSUFBSUssTUFBTSxJQUFJLENBQUNWLGFBQWEsQ0FBQ1csTUFBTSxDQUFDTCxPQUFPRixpQkFBaUJJO1FBQzVERSxJQUFJRSxlQUFlLEdBQUdDLEtBQUtDLEdBQUcsQ0FBQyxJQUFJLENBQUNwQixNQUFNLEdBQUdnQixJQUFJSyxjQUFjLEVBQUU7UUFDakUsSUFBSUwsSUFBSUssY0FBYyxHQUFHLElBQUksQ0FBQ3JCLE1BQU0sRUFBRTtZQUNsQyx1REFBdUQ7WUFDdkQsSUFBSSxJQUFJLENBQUNFLGFBQWEsR0FBRyxLQUFLYyxJQUFJ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bEMsSUFBSWlDLFlBQVksTUFBTTtZQUNsQixNQUFNQyxrQkFBa0JELFNBQVNFLFNBQVMsSUFBSSxPQUN4Q0YsU0FBU0UsU0FBUyxDQUFDQyxPQUFPLEtBQUssSUFBSUMsT0FBT0QsT0FBTyxLQUNqRCxDQUFDO1lBQ1AsT0FBTztnQkFDSDNCLGlCQUFpQjtnQkFDakJLLGNBQWNvQjtnQkFDZHRCLGdCQUFnQnFCLFNBQVNGLEtBQUs7Z0JBQzlCaEIsbUJBQW1CO1lBQ3ZCO1FBQ0o7SUFDSjtJQUNBUyxPQUFPeEIsR0FBRyxFQUFFO1FBQ1IsTUFBTXlDLFNBQVMsSUFBSSxDQUFDWixPQUFPLENBQUNOLEdBQUcsQ0FBQ3ZCO1FBQ2hDLElBQUl5QyxVQUFVLE1BQU07WUFDaEIsSUFBSUEsT0FBT0QsU0FBUyxJQUFJLE1BQU07Z0JBQzFCRCxhQUFhRSxPQUFPRCxTQUFTO1lBQ2pDO1lBQ0EsSUFBSSxDQUFDWCxPQUFPLENBQUNMLE1BQU0sQ0FBQ3hCO1lBQ3BCLE9BQU87UUFDWDtRQUNBLE9BQU87SUFDWDtBQUNKLEVBQ0Esd0NBQXdDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC91dGlscy9kaXN0L3NyYy9yYXRlLWxpbWl0ZXIuanM/YTA1MSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2RlRXJyb3IgfSBmcm9tICdAbGlicDJwL2ludGVyZmFjZSc7XG5pbXBvcnQgZGVsYXkgZnJvbSAnZGVsYXknO1xuZXhwb3J0IGNsYXNzIFJhdGVMaW1pdGVyIHtcbiAgICBtZW1vcnlTdG9yYWdlO1xuICAgIHBvaW50cztcbiAgICBkdXJhdGlvbjtcbiAgICBibG9ja0R1cmF0aW9uO1xuICAgIGV4ZWNFdmVubHk7XG4gICAgZXhlY0V2ZW5seU1pbkRlbGF5TXM7XG4gICAga2V5UHJlZml4O1xuICAgIGNvbnN0cnVjdG9yKG9wdHMgPSB7fSkge1xuICAgICAgICB0aGlzLnBvaW50cyA9IG9wdHMucG9pbnRzID8/IDQ7XG4gICAgICAgIHRoaXMuZHVyYXRpb24gPSBvcHRzLmR1cmF0aW9uID8/IDE7XG4gICAgICAgIHRoaXMuYmxvY2tEdXJhdGlvbiA9IG9wdHMuYmxvY2tEdXJhdGlvbiA/PyAwO1xuICAgICAgICB0aGlzLmV4ZWNFdmVubHkgPSBvcHRzLmV4ZWNFdmVubHkgPz8gZmFsc2U7XG4gICAgICAgIHRoaXMuZXhlY0V2ZW5seU1pbkRlbGF5TXMgPSBvcHRzLmV4ZWNFdmVubHlNaW5EZWxheU1zID8/ICh0aGlzLmR1cmF0aW9uICogMTAwMCAvIHRoaXMucG9pbnRzKTtcbiAgICAgICAgdGhpcy5rZXlQcmVmaXggPSBvcHRzLmtleVByZWZpeCA/PyAncmxmbHgnO1xuICAgICAgICB0aGlzLm1lbW9yeVN0b3JhZ2UgPSBuZXcgTWVtb3J5U3RvcmFnZSgpO1xuICAgIH1cbiAgICBhc3luYyBjb25zdW1lKGtleSwgcG9pbnRzVG9Db25zdW1lID0gMSwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGNvbnN0IHJsS2V5ID0gdGhpcy5nZXRLZXkoa2V5KTtcbiAgICAgICAgY29uc3Qgc2VjRHVyYXRpb24gPSB0aGlzLl9nZXRLZXlTZWNEdXJhdGlvbihvcHRpb25zKTtcbiAgICAgICAgbGV0IHJlcyA9IHRoaXMubWVtb3J5U3RvcmFnZS5pbmNyYnkocmxLZXksIHBvaW50c1RvQ29uc3VtZSwgc2VjRHVyYXRpb24pO1xuICAgICAgICByZXMucmVtYWluaW5nUG9pbnRzID0gTWF0aC5tYXgodGhpcy5wb2ludHMgLSByZXMuY29uc3VtZWRQb2ludHMsIDApO1xuICAgICAgICBpZiAocmVzLmNvbnN1bWVkUG9pbnRzID4gdGhpcy5wb2ludHMpIHtcbiAgICAgICAgICAgIC8vIEJsb2NrIG9ubHkgZmlyc3QgdGltZSB3aGVuIGNvbnN1bWVkIG1vcmUgdGhhbiBwb2ludHNcbiAgICAgICAgICAgIGlmICh0aGlzLmJsb2NrRHVyYXRpb24gPiAwICYmIHJlcy5jb25zdW1lZFBvaW50cyA8PSAodGhpcy5wb2ludHMgKyBwb2ludHNUb0NvbnN1bWUpKSB7XG4gICAgICAgICAgICAgICAgLy8gQmxvY2sga2V5XG4gICAgICAgICAgICAgICAgcmVzID0gdGhpcy5tZW1vcnlTdG9yYWdlLnNldChybEtleSwgcmVzLmNvbnN1bWVkUG9pbnRzLCB0aGlzLmJsb2NrRHVyYXRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IENvZGVFcnJvcignUmF0ZSBsaW1pdCBleGNlZWRlZCcsICdFUlJfUkFURV9MSU1JVF9FWENFRURFRCcsIHJlcyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5leGVjRXZlbmx5ICYmIHJlcy5tc0JlZm9yZU5leHQgPiAwICYmICFyZXMuaXNGaXJzdEluRHVyYXRpb24pIHtcbiAgICAgICAgICAgIC8vIEV4ZWN1dGUgZXZlbmx5XG4gICAgICAgICAgICBsZXQgZGVsYXlNcyA9IE1hdGguY2VpbChyZXMubXNCZWZvcmVOZXh0IC8gKHJlcy5yZW1haW5pbmdQb2ludHMgKyAyKSk7XG4gICAgICAgICAgICBpZiAoZGVsYXlNcyA8IHRoaXMuZXhlY0V2ZW5seU1pbkRlbGF5TXMpIHtcbiAgICAgICAgICAgICAgICBkZWxheU1zID0gcmVzLmNvbnN1bWVkUG9pbnRzICogdGhpcy5leGVjRXZlbmx5TWluRGVsYXlNcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF3YWl0IGRlbGF5KGRlbGF5TXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIHBlbmFsdHkoa2V5LCBwb2ludHMgPSAxLCBvcHRpb25zID0ge30pIHtcbiAgICAgICAgY29uc3QgcmxLZXkgPSB0aGlzLmdldEtleShrZXkpO1xuICAgICAgICBjb25zdCBzZWNEdXJhdGlvbiA9IHRoaXMuX2dldEtleVNlY0R1cmF0aW9uKG9wdGlvbnMpO1xuICAgICAgICBjb25zdCByZXMgPSB0aGlzLm1lbW9yeVN0b3JhZ2UuaW5jcmJ5KHJsS2V5LCBwb2ludHMsIHNlY0R1cmF0aW9uKTtcbiAgICAgICAgcmVzLnJlbWFpbmluZ1BvaW50cyA9IE1hdGgubWF4KHRoaXMucG9pbnRzIC0gcmVzLmNvbnN1bWVkUG9pbnRzLCAwKTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgcmV3YXJkKGtleSwgcG9pbnRzID0gMSwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGNvbnN0IHJsS2V5ID0gdGhpcy5nZXRLZXkoa2V5KTtcbiAgICAgICAgY29uc3Qgc2VjRHVyYXRpb24gPSB0aGlzLl9nZXRLZXlTZWNEdXJhdGlvbihvcHRpb25zKTtcbiAgICAgICAgY29uc3QgcmVzID0gdGhpcy5tZW1vcnlTdG9yYWdlLmluY3JieShybEtleSwgLXBvaW50cywgc2VjRHVyYXRpb24pO1xuICAgICAgICByZXMucmVtYWluaW5nUG9pbnRzID0gTWF0aC5tYXgodGhpcy5wb2ludHMgLSByZXMuY29uc3VtZWRQb2ludHMsIDApO1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBCbG9jayBhbnkga2V5IGZvciBzZWNEdXJhdGlvbiBzZWNvbmRzXG4gICAgICpcbiAgICAgKiBAcGFyYW0ga2V5XG4gICAgICogQHBhcmFtIHNlY0R1cmF0aW9uXG4gICAgICovXG4gICAgYmxvY2soa2V5LCBzZWNEdXJhdGlvbikge1xuICAgICAgICBjb25zdCBtc0R1cmF0aW9uID0gc2VjRHVyYXRpb24gKiAxMDAwO1xuICAgICAgICBjb25zdCBpbml0UG9pbnRzID0gdGhpcy5wb2ludHMgKyAxO1xuICAgICAgICB0aGlzLm1lbW9yeVN0b3JhZ2Uuc2V0KHRoaXMuZ2V0S2V5KGtleSksIGluaXRQb2ludHMsIHNlY0R1cmF0aW9uKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlbWFpbmluZ1BvaW50czogMCxcbiAgICAgICAgICAgIG1zQmVmb3JlTmV4dDogbXNEdXJhdGlvbiA9PT0gMCA/IC0xIDogbXNEdXJhdGlvbixcbiAgICAgICAgICAgIGNvbnN1bWVkUG9pbnRzOiBpbml0UG9pbnRzLFxuICAgICAgICAgICAgaXNGaXJzdEluRHVyYXRpb246IGZhbHNlXG4gICAgICAgIH07XG4gICAgfVxuICAgIHNldChrZXksIHBvaW50cywgc2VjRHVyYXRpb24gPSAwKSB7XG4gICAgICAgIGNvbnN0IG1zRHVyYXRpb24gPSAoc2VjRHVyYXRpb24gPj0gMCA/IHNlY0R1cmF0aW9uIDogdGhpcy5kdXJhdGlvbikgKiAxMDAwO1xuICAgICAgICB0aGlzLm1lbW9yeVN0b3JhZ2Uuc2V0KHRoaXMuZ2V0S2V5KGtleSksIHBvaW50cywgc2VjRHVyYXRpb24pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVtYWluaW5nUG9pbnRzOiAwLFxuICAgICAgICAgICAgbXNCZWZvcmVOZXh0OiBtc0R1cmF0aW9uID09PSAwID8gLTEgOiBtc0R1cmF0aW9uLFxuICAgICAgICAgICAgY29uc3VtZWRQb2ludHM6IHBvaW50cyxcbiAgICAgICAgICAgIGlzRmlyc3RJbkR1cmF0aW9uOiBmYWxzZVxuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXQoa2V5KSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IHRoaXMubWVtb3J5U3RvcmFnZS5nZXQodGhpcy5nZXRLZXkoa2V5KSk7XG4gICAgICAgIGlmIChyZXMgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmVzLnJlbWFpbmluZ1BvaW50cyA9IE1hdGgubWF4KHRoaXMucG9pbnRzIC0gcmVzLmNvbnN1bWVkUG9pbnRzLCAwKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICBkZWxldGUoa2V5KSB7XG4gICAgICAgIHRoaXMubWVtb3J5U3RvcmFnZS5kZWxldGUodGhpcy5nZXRLZXkoa2V5KSk7XG4gICAgfVxuICAgIF9nZXRLZXlTZWNEdXJhdGlvbihvcHRpb25zKSB7XG4gICAgICAgIGlmIChvcHRpb25zPy5jdXN0b21EdXJhdGlvbiAhPSBudWxsICYmIG9wdGlvbnMuY3VzdG9tRHVyYXRpb24gPj0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuY3VzdG9tRHVyYXRpb247XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZHVyYXRpb247XG4gICAgfVxuICAgIGdldEtleShrZXkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMua2V5UHJlZml4Lmxlbmd0aCA+IDAgPyBgJHt0aGlzLmtleVByZWZpeH06JHtrZXl9YCA6IGtleTtcbiAgICB9XG4gICAgcGFyc2VLZXkocmxLZXkpIHtcbiAgICAgICAgcmV0dXJuIHJsS2V5LnN1YnN0cmluZyh0aGlzLmtleVByZWZpeC5sZW5ndGgpO1xuICAgIH1cbn1cbmNsYXNzIE1lbW9yeVN0b3JhZ2Uge1xuICAgIHN0b3JhZ2U7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuc3RvcmFnZSA9IG5ldyBNYXAoKTtcbiAgICB9XG4gICAgaW5jcmJ5KGtleSwgdmFsdWUsIGR1cmF0aW9uU2VjKSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5zdG9yYWdlLmdldChrZXkpO1xuICAgICAgICBpZiAoZXhpc3RpbmcgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgbXNCZWZvcmVFeHBpcmVzID0gZXhpc3RpbmcuZXhwaXJlc0F0ICE9IG51bGxcbiAgICAgICAgICAgICAgICA/IGV4aXN0aW5nLmV4cGlyZXNBdC5nZXRUaW1lKCkgLSBuZXcgRGF0ZSgpLmdldFRpbWUoKVxuICAgICAgICAgICAgICAgIDogLTE7XG4gICAgICAgICAgICBpZiAoZXhpc3RpbmcuZXhwaXJlc0F0ID09IG51bGwgfHwgbXNCZWZvcmVFeHBpcmVzID4gMCkge1xuICAgICAgICAgICAgICAgIC8vIENoYW5nZSB2YWx1ZVxuICAgICAgICAgICAgICAgIGV4aXN0aW5nLnZhbHVlICs9IHZhbHVlO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZ1BvaW50czogMCxcbiAgICAgICAgICAgICAgICAgICAgbXNCZWZvcmVOZXh0OiBtc0JlZm9yZUV4cGlyZXMsXG4gICAgICAgICAgICAgICAgICAgIGNvbnN1bWVkUG9pbnRzOiBleGlzdGluZy52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgaXNGaXJzdEluRHVyYXRpb246IGZhbHNlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNldChrZXksIHZhbHVlLCBkdXJhdGlvblNlYyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0KGtleSwgdmFsdWUsIGR1cmF0aW9uU2VjKTtcbiAgICB9XG4gICAgc2V0KGtleSwgdmFsdWUsIGR1cmF0aW9uU2VjKSB7XG4gICAgICAgIGNvbnN0IGR1cmF0aW9uTXMgPSBkdXJhdGlvblNlYyAqIDEwMDA7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5zdG9yYWdlLmdldChrZXkpO1xuICAgICAgICBpZiAoZXhpc3RpbmcgIT0gbnVsbCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGV4aXN0aW5nLnRpbWVvdXRJZCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVjb3JkID0ge1xuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBleHBpcmVzQXQ6IGR1cmF0aW9uTXMgPiAwID8gbmV3IERhdGUoRGF0ZS5ub3coKSArIGR1cmF0aW9uTXMpIDogdW5kZWZpbmVkXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc3RvcmFnZS5zZXQoa2V5LCByZWNvcmQpO1xuICAgICAgICBpZiAoZHVyYXRpb25NcyA+IDApIHtcbiAgICAgICAgICAgIHJlY29yZC50aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JhZ2UuZGVsZXRlKGtleSk7XG4gICAgICAgICAgICB9LCBkdXJhdGlvbk1zKTtcbiAgICAgICAgICAgIGlmIChyZWNvcmQudGltZW91dElkLnVucmVmICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZWNvcmQudGltZW91dElkLnVucmVmKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlbWFpbmluZ1BvaW50czogMCxcbiAgICAgICAgICAgIG1zQmVmb3JlTmV4dDogZHVyYXRpb25NcyA9PT0gMCA/IC0xIDogZHVyYXRpb25NcyxcbiAgICAgICAgICAgIGNvbnN1bWVkUG9pbnRzOiByZWNvcmQudmFsdWUsXG4gICAgICAgICAgICBpc0ZpcnN0SW5EdXJhdGlvbjogdHJ1ZVxuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXQoa2V5KSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5zdG9yYWdlLmdldChrZXkpO1xuICAgICAgICBpZiAoZXhpc3RpbmcgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgbXNCZWZvcmVFeHBpcmVzID0gZXhpc3RpbmcuZXhwaXJlc0F0ICE9IG51bGxcbiAgICAgICAgICAgICAgICA/IGV4aXN0aW5nLmV4cGlyZXNBdC5nZXRUaW1lKCkgLSBuZXcgRGF0ZSgpLmdldFRpbWUoKVxuICAgICAgICAgICAgICAgIDogLTE7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlbWFpbmluZ1BvaW50czogMCxcbiAgICAgICAgICAgICAgICBtc0JlZm9yZU5leHQ6IG1zQmVmb3JlRXhwaXJlcyxcbiAgICAgICAgICAgICAgICBjb25zdW1lZFBvaW50czogZXhpc3RpbmcudmFsdWUsXG4gICAgICAgICAgICAgICAgaXNGaXJzdEluRHVyYXRpb246IGZhbHNlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIGRlbGV0ZShrZXkpIHtcbiAgICAgICAgY29uc3QgcmVjb3JkID0gdGhpcy5zdG9yYWdlLmdldChrZXkpO1xuICAgICAgICBpZiAocmVjb3JkICE9IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChyZWNvcmQudGltZW91dElkICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQocmVjb3JkLnRpbWVvdXRJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2UuZGVsZXRlKGtleSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmF0ZS1saW1pdGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJDb2RlRXJyb3IiLCJkZWxheSIsIlJhdGVMaW1pdGVyIiwiY29uc3RydWN0b3IiLCJvcHRzIiwicG9pbnRzIiwiZHVyYXRpb24iLCJibG9ja0R1cmF0aW9uIiwiZXhlY0V2ZW5seSIsImV4ZWNFdmVubHlNaW5EZWxheU1zIiwia2V5UHJlZml4IiwibWVtb3J5U3RvcmFnZSIsIk1lbW9yeVN0b3JhZ2UiLCJjb25zdW1lIiwia2V5IiwicG9pbnRzVG9Db25zdW1lIiwib3B0aW9ucyIsInJsS2V5IiwiZ2V0S2V5Iiwic2VjRHVyYXRpb24iLCJfZ2V0S2V5U2VjRHVyYXRpb24iLCJyZXMiLCJpbmNyYnkiLCJyZW1haW5pbmdQb2ludHMiLCJNYXRoIiwibWF4IiwiY29uc3VtZWRQb2ludHMiLCJzZXQiLCJtc0JlZm9yZU5leHQiLCJpc0ZpcnN0SW5EdXJhdGlvbiIsImRlbGF5TXMiLCJjZWlsIiwicGVuYWx0eSIsInJld2FyZCIsImJsb2NrIiwibXNEdXJhdGlvbiIsImluaXRQb2ludHMiLCJnZXQiLCJkZWxldGUiLCJjdXN0b21EdXJhdGlvbiIsImxlbmd0aCIsInBhcnNlS2V5Iiwic3Vic3RyaW5nIiwic3RvcmFnZSIsIk1hcCIsInZhbHVlIiwiZHVyYXRpb25TZWMiLCJleGlzdGluZyIsIm1zQmVmb3JlRXhwaXJlcyIsImV4cGlyZXNBdCIsImdldFRpbWUiLCJEYXRlIiwiZHVyYXRpb25NcyIsImNsZWFyVGltZW91dCIsInRpbWVvdXRJZCIsInJlY29yZCIsIm5vdyIsInVuZGVmaW5lZCIsInNldFRpbWVvdXQiLCJ1bnJlZiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/utils/dist/src/rate-limiter.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/utils/dist/src/tracked-map.js":
/*!************************************************************!*\
!*** ./node_modules/@libp2p/utils/dist/src/tracked-map.js ***!
\************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ trackedMap: () => (/* binding */ trackedMap)\n/* harmony export */ });\nclass TrackedMap extends Map {\n constructor(init){\n super();\n const { name, metrics } = init;\n this.metric = metrics.registerMetric(name);\n this.updateComponentMetric();\n }\n set(key, value) {\n super.set(key, value);\n this.updateComponentMetric();\n return this;\n }\n delete(key) {\n const deleted = super.delete(key);\n this.updateComponentMetric();\n return deleted;\n }\n clear() {\n super.clear();\n this.updateComponentMetric();\n }\n updateComponentMetric() {\n this.metric.update(this.size);\n }\n}\nfunction trackedMap(config) {\n const { name, metrics } = config;\n let map;\n if (metrics != null) {\n map = new TrackedMap({\n name,\n metrics\n });\n } else {\n map = new Map();\n }\n return map;\n} //# sourceMappingURL=tracked-map.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC91dGlscy9kaXN0L3NyYy90cmFja2VkLW1hcC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTUEsbUJBQW1CQztJQUVyQkMsWUFBWUMsSUFBSSxDQUFFO1FBQ2QsS0FBSztRQUNMLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEVBQUUsR0FBR0Y7UUFDMUIsSUFBSSxDQUFDRyxNQUFNLEdBQUdELFFBQVFFLGNBQWMsQ0FBQ0g7UUFDckMsSUFBSSxDQUFDSSxxQkFBcUI7SUFDOUI7SUFDQUMsSUFBSUMsR0FBRyxFQUFFQyxLQUFLLEVBQUU7UUFDWixLQUFLLENBQUNGLElBQUlDLEtBQUtDO1FBQ2YsSUFBSSxDQUFDSCxxQkFBcUI7UUFDMUIsT0FBTyxJQUFJO0lBQ2Y7SUFDQUksT0FBT0YsR0FBRyxFQUFFO1FBQ1IsTUFBTUcsVUFBVSxLQUFLLENBQUNELE9BQU9GO1FBQzdCLElBQUksQ0FBQ0YscUJBQXFCO1FBQzFCLE9BQU9LO0lBQ1g7SUFDQUMsUUFBUTtRQUNKLEtBQUssQ0FBQ0E7UUFDTixJQUFJLENBQUNOLHFCQUFxQjtJQUM5QjtJQUNBQSx3QkFBd0I7UUFDcEIsSUFBSSxDQUFDRixNQUFNLENBQUNTLE1BQU0sQ0FBQyxJQUFJLENBQUNDLElBQUk7SUFDaEM7QUFDSjtBQUNPLFNBQVNDLFdBQVdDLE1BQU07SUFDN0IsTUFBTSxFQUFFZCxJQUFJLEVBQUVDLE9BQU8sRUFBRSxHQUFHYTtJQUMxQixJQUFJQztJQUNKLElBQUlkLFdBQVcsTUFBTTtRQUNqQmMsTUFBTSxJQUFJbkIsV0FBVztZQUFFSTtZQUFNQztRQUFRO0lBQ3pDLE9BQ0s7UUFDRGMsTUFBTSxJQUFJbEI7SUFDZDtJQUNBLE9BQU9rQjtBQUNYLEVBQ0EsdUNBQXVDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC91dGlscy9kaXN0L3NyYy90cmFja2VkLW1hcC5qcz80NjE3Il0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIFRyYWNrZWRNYXAgZXh0ZW5kcyBNYXAge1xuICAgIG1ldHJpYztcbiAgICBjb25zdHJ1Y3Rvcihpbml0KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGNvbnN0IHsgbmFtZSwgbWV0cmljcyB9ID0gaW5pdDtcbiAgICAgICAgdGhpcy5tZXRyaWMgPSBtZXRyaWNzLnJlZ2lzdGVyTWV0cmljKG5hbWUpO1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudE1ldHJpYygpO1xuICAgIH1cbiAgICBzZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgICBzdXBlci5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlQ29tcG9uZW50TWV0cmljKCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBkZWxldGUoa2V5KSB7XG4gICAgICAgIGNvbnN0IGRlbGV0ZWQgPSBzdXBlci5kZWxldGUoa2V5KTtcbiAgICAgICAgdGhpcy51cGRhdGVDb21wb25lbnRNZXRyaWMoKTtcbiAgICAgICAgcmV0dXJuIGRlbGV0ZWQ7XG4gICAgfVxuICAgIGNsZWFyKCkge1xuICAgICAgICBzdXBlci5jbGVhcigpO1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudE1ldHJpYygpO1xuICAgIH1cbiAgICB1cGRhdGVDb21wb25lbnRNZXRyaWMoKSB7XG4gICAgICAgIHRoaXMubWV0cmljLnVwZGF0ZSh0aGlzLnNpemUpO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiB0cmFja2VkTWFwKGNvbmZpZykge1xuICAgIGNvbnN0IHsgbmFtZSwgbWV0cmljcyB9ID0gY29uZmlnO1xuICAgIGxldCBtYXA7XG4gICAgaWYgKG1ldHJpY3MgIT0gbnVsbCkge1xuICAgICAgICBtYXAgPSBuZXcgVHJhY2tlZE1hcCh7IG5hbWUsIG1ldHJpY3MgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBtYXAgPSBuZXcgTWFwKCk7XG4gICAgfVxuICAgIHJldHVybiBtYXA7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD10cmFja2VkLW1hcC5qcy5tYXAiXSwibmFtZXMiOlsiVHJhY2tlZE1hcCIsIk1hcCIsImNvbnN0cnVjdG9yIiwiaW5pdCIsIm5hbWUiLCJtZXRyaWNzIiwibWV0cmljIiwicmVnaXN0ZXJNZXRyaWMiLCJ1cGRhdGVDb21wb25lbnRNZXRyaWMiLCJzZXQiLCJrZXkiLCJ2YWx1ZSIsImRlbGV0ZSIsImRlbGV0ZWQiLCJjbGVhciIsInVwZGF0ZSIsInNpemUiLCJ0cmFja2VkTWFwIiwiY29uZmlnIiwibWFwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/utils/dist/src/tracked-map.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/websockets/dist/src/constants.js":
/*!***************************************************************!*\
!*** ./node_modules/@libp2p/websockets/dist/src/constants.js ***!
\***************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CLOSE_TIMEOUT: () => (/* binding */ CLOSE_TIMEOUT),\n/* harmony export */ CODE_CIRCUIT: () => (/* binding */ CODE_CIRCUIT),\n/* harmony export */ CODE_P2P: () => (/* binding */ CODE_P2P),\n/* harmony export */ CODE_TCP: () => (/* binding */ CODE_TCP),\n/* harmony export */ CODE_WS: () => (/* binding */ CODE_WS),\n/* harmony export */ CODE_WSS: () => (/* binding */ CODE_WSS)\n/* harmony export */ });\n// p2p multi-address code\nconst CODE_P2P = 421;\nconst CODE_CIRCUIT = 290;\nconst CODE_TCP = 6;\nconst CODE_WS = 477;\nconst CODE_WSS = 478;\n// Time to wait for a connection to close gracefully before destroying it manually\nconst CLOSE_TIMEOUT = 500; //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC93ZWJzb2NrZXRzL2Rpc3Qvc3JjL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSx5QkFBeUI7QUFDbEIsTUFBTUEsV0FBVyxJQUFJO0FBQ3JCLE1BQU1DLGVBQWUsSUFBSTtBQUN6QixNQUFNQyxXQUFXLEVBQUU7QUFDbkIsTUFBTUMsVUFBVSxJQUFJO0FBQ3BCLE1BQU1DLFdBQVcsSUFBSTtBQUM1QixrRkFBa0Y7QUFDM0UsTUFBTUMsZ0JBQWdCLElBQUksQ0FDakMscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC93ZWJzb2NrZXRzL2Rpc3Qvc3JjL2NvbnN0YW50cy5qcz8yMTVkIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHAycCBtdWx0aS1hZGRyZXNzIGNvZGVcbmV4cG9ydCBjb25zdCBDT0RFX1AyUCA9IDQyMTtcbmV4cG9ydCBjb25zdCBDT0RFX0NJUkNVSVQgPSAyOTA7XG5leHBvcnQgY29uc3QgQ09ERV9UQ1AgPSA2O1xuZXhwb3J0IGNvbnN0IENPREVfV1MgPSA0Nzc7XG5leHBvcnQgY29uc3QgQ09ERV9XU1MgPSA0Nzg7XG4vLyBUaW1lIHRvIHdhaXQgZm9yIGEgY29ubmVjdGlvbiB0byBjbG9zZSBncmFjZWZ1bGx5IGJlZm9yZSBkZXN0cm95aW5nIGl0IG1hbnVhbGx5XG5leHBvcnQgY29uc3QgQ0xPU0VfVElNRU9VVCA9IDUwMDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnN0YW50cy5qcy5tYXAiXSwibmFtZXMiOlsiQ09ERV9QMlAiLCJDT0RFX0NJUkNVSVQiLCJDT0RFX1RDUCIsIkNPREVfV1MiLCJDT0RFX1dTUyIsIkNMT1NFX1RJTUVPVVQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/websockets/dist/src/constants.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/websockets/dist/src/filters.js":
/*!*************************************************************!*\
!*** ./node_modules/@libp2p/websockets/dist/src/filters.js ***!
\*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ all: () => (/* binding */ all),\n/* harmony export */ dnsWsOrWss: () => (/* binding */ dnsWsOrWss),\n/* harmony export */ dnsWss: () => (/* binding */ dnsWss),\n/* harmony export */ wss: () => (/* binding */ wss)\n/* harmony export */ });\n/* harmony import */ var _multiformats_mafmt__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @multiformats/mafmt */ \"(ssr)/./node_modules/@multiformats/mafmt/dist/src/index.js\");\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants.js */ \"(ssr)/./node_modules/@libp2p/websockets/dist/src/constants.js\");\n\n\nfunction all(multiaddrs) {\n return multiaddrs.filter((ma)=>{\n if (ma.protoCodes().includes(_constants_js__WEBPACK_IMPORTED_MODULE_1__.CODE_CIRCUIT)) {\n return false;\n }\n const testMa = ma.decapsulateCode(_constants_js__WEBPACK_IMPORTED_MODULE_1__.CODE_P2P);\n return _multiformats_mafmt__WEBPACK_IMPORTED_MODULE_0__.WebSockets.matches(testMa) || _multiformats_mafmt__WEBPACK_IMPORTED_MODULE_0__.WebSocketsSecure.matches(testMa);\n });\n}\nfunction wss(multiaddrs) {\n return multiaddrs.filter((ma)=>{\n if (ma.protoCodes().includes(_constants_js__WEBPACK_IMPORTED_MODULE_1__.CODE_CIRCUIT)) {\n return false;\n }\n const testMa = ma.decapsulateCode(_constants_js__WEBPACK_IMPORTED_MODULE_1__.CODE_P2P);\n return _multiformats_mafmt__WEBPACK_IMPORTED_MODULE_0__.WebSocketsSecure.matches(testMa);\n });\n}\nfunction dnsWss(multiaddrs) {\n return multiaddrs.filter((ma)=>{\n if (ma.protoCodes().includes(_constants_js__WEBPACK_IMPORTED_MODULE_1__.CODE_CIRCUIT)) {\n return false;\n }\n const testMa = ma.decapsulateCode(_constants_js__WEBPACK_IMPORTED_MODULE_1__.CODE_P2P);\n return _multiformats_mafmt__WEBPACK_IMPORTED_MODULE_0__.WebSocketsSecure.matches(testMa) && _multiformats_mafmt__WEBPACK_IMPORTED_MODULE_0__.DNS.matches(testMa.decapsulateCode(_constants_js__WEBPACK_IMPORTED_MODULE_1__.CODE_TCP).decapsulateCode(_constants_js__WEBPACK_IMPORTED_MODULE_1__.CODE_WSS));\n });\n}\nfunction dnsWsOrWss(multiaddrs) {\n return multiaddrs.filter((ma)=>{\n if (ma.protoCodes().includes(_constants_js__WEBPACK_IMPORTED_MODULE_1__.CODE_CIRCUIT)) {\n return false;\n }\n const testMa = ma.decapsulateCode(_constants_js__WEBPACK_IMPORTED_MODULE_1__.CODE_P2P);\n // WS\n if (_multiformats_mafmt__WEBPACK_IMPORTED_MODULE_0__.WebSockets.matches(testMa)) {\n return _multiformats_mafmt__WEBPACK_IMPORTED_MODULE_0__.DNS.matches(testMa.decapsulateCode(_constants_js__WEBPACK_IMPORTED_MODULE_1__.CODE_TCP).decapsulateCode(_constants_js__WEBPACK_IMPORTED_MODULE_1__.CODE_WS));\n }\n // WSS\n return _multiformats_mafmt__WEBPACK_IMPORTED_MODULE_0__.WebSocketsSecure.matches(testMa) && _multiformats_mafmt__WEBPACK_IMPORTED_MODULE_0__.DNS.matches(testMa.decapsulateCode(_constants_js__WEBPACK_IMPORTED_MODULE_1__.CODE_TCP).decapsulateCode(_constants_js__WEBPACK_IMPORTED_MODULE_1__.CODE_WSS));\n });\n} //# sourceMappingURL=filters.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC93ZWJzb2NrZXRzL2Rpc3Qvc3JjL2ZpbHRlcnMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQTZDO0FBQ3dDO0FBQzlFLFNBQVNNLElBQUlDLFVBQVU7SUFDMUIsT0FBT0EsV0FBV0MsTUFBTSxDQUFDLENBQUNDO1FBQ3RCLElBQUlBLEdBQUdDLFVBQVUsR0FBR0MsUUFBUSxDQUFDVix1REFBWUEsR0FBRztZQUN4QyxPQUFPO1FBQ1g7UUFDQSxNQUFNVyxTQUFTSCxHQUFHSSxlQUFlLENBQUNYLG1EQUFRQTtRQUMxQyxPQUFPRiwyREFBZ0IsQ0FBQ2UsT0FBTyxDQUFDSCxXQUM1QlosaUVBQXNCLENBQUNlLE9BQU8sQ0FBQ0g7SUFDdkM7QUFDSjtBQUNPLFNBQVNLLElBQUlWLFVBQVU7SUFDMUIsT0FBT0EsV0FBV0MsTUFBTSxDQUFDLENBQUNDO1FBQ3RCLElBQUlBLEdBQUdDLFVBQVUsR0FBR0MsUUFBUSxDQUFDVix1REFBWUEsR0FBRztZQUN4QyxPQUFPO1FBQ1g7UUFDQSxNQUFNVyxTQUFTSCxHQUFHSSxlQUFlLENBQUNYLG1EQUFRQTtRQUMxQyxPQUFPRixpRUFBc0IsQ0FBQ2UsT0FBTyxDQUFDSDtJQUMxQztBQUNKO0FBQ08sU0FBU00sT0FBT1gsVUFBVTtJQUM3QixPQUFPQSxXQUFXQyxNQUFNLENBQUMsQ0FBQ0M7UUFDdEIsSUFBSUEsR0FBR0MsVUFBVSxHQUFHQyxRQUFRLENBQUNWLHVEQUFZQSxHQUFHO1lBQ3hDLE9BQU87UUFDWDtRQUNBLE1BQU1XLFNBQVNILEdBQUdJLGVBQWUsQ0FBQ1gsbURBQVFBO1FBQzFDLE9BQU9GLGlFQUFzQixDQUFDZSxPQUFPLENBQUNILFdBQ2xDWixvREFBUyxDQUFDZSxPQUFPLENBQUNILE9BQU9DLGVBQWUsQ0FBQ1YsbURBQVFBLEVBQUVVLGVBQWUsQ0FBQ1IsbURBQVFBO0lBQ25GO0FBQ0o7QUFDTyxTQUFTZSxXQUFXYixVQUFVO0lBQ2pDLE9BQU9BLFdBQVdDLE1BQU0sQ0FBQyxDQUFDQztRQUN0QixJQUFJQSxHQUFHQyxVQUFVLEdBQUdDLFFBQVEsQ0FBQ1YsdURBQVlBLEdBQUc7WUFDeEMsT0FBTztRQUNYO1FBQ0EsTUFBTVcsU0FBU0gsR0FBR0ksZUFBZSxDQUFDWCxtREFBUUE7UUFDMUMsS0FBSztRQUNMLElBQUlGLDJEQUFnQixDQUFDZSxPQUFPLENBQUNILFNBQVM7WUFDbEMsT0FBT1osb0RBQVMsQ0FBQ2UsT0FBTyxDQUFDSCxPQUFPQyxlQUFlLENBQUNWLG1EQUFRQSxFQUFFVSxlQUFlLENBQUNULGtEQUFPQTtRQUNyRjtRQUNBLE1BQU07UUFDTixPQUFPSixpRUFBc0IsQ0FBQ2UsT0FBTyxDQUFDSCxXQUNsQ1osb0RBQVMsQ0FBQ2UsT0FBTyxDQUFDSCxPQUFPQyxlQUFlLENBQUNWLG1EQUFRQSxFQUFFVSxlQUFlLENBQUNSLG1EQUFRQTtJQUNuRjtBQUNKLEVBQ0EsbUNBQW1DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC93ZWJzb2NrZXRzL2Rpc3Qvc3JjL2ZpbHRlcnMuanM/N2U1ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBtYWZtdCBmcm9tICdAbXVsdGlmb3JtYXRzL21hZm10JztcbmltcG9ydCB7IENPREVfQ0lSQ1VJVCwgQ09ERV9QMlAsIENPREVfVENQLCBDT0RFX1dTLCBDT0RFX1dTUyB9IGZyb20gJy4vY29uc3RhbnRzLmpzJztcbmV4cG9ydCBmdW5jdGlvbiBhbGwobXVsdGlhZGRycykge1xuICAgIHJldHVybiBtdWx0aWFkZHJzLmZpbHRlcigobWEpID0+IHtcbiAgICAgICAgaWYgKG1hLnByb3RvQ29kZXMoKS5pbmNsdWRlcyhDT0RFX0NJUkNVSVQpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGVzdE1hID0gbWEuZGVjYXBzdWxhdGVDb2RlKENPREVfUDJQKTtcbiAgICAgICAgcmV0dXJuIG1hZm10LldlYlNvY2tldHMubWF0Y2hlcyh0ZXN0TWEpIHx8XG4gICAgICAgICAgICBtYWZtdC5XZWJTb2NrZXRzU2VjdXJlLm1hdGNoZXModGVzdE1hKTtcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB3c3MobXVsdGlhZGRycykge1xuICAgIHJldHVybiBtdWx0aWFkZHJzLmZpbHRlcigobWEpID0+IHtcbiAgICAgICAgaWYgKG1hLnByb3RvQ29kZXMoKS5pbmNsdWRlcyhDT0RFX0NJUkNVSVQpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGVzdE1hID0gbWEuZGVjYXBzdWxhdGVDb2RlKENPREVfUDJQKTtcbiAgICAgICAgcmV0dXJuIG1hZm10LldlYlNvY2tldHNTZWN1cmUubWF0Y2hlcyh0ZXN0TWEpO1xuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGRuc1dzcyhtdWx0aWFkZHJzKSB7XG4gICAgcmV0dXJuIG11bHRpYWRkcnMuZmlsdGVyKChtYSkgPT4ge1xuICAgICAgICBpZiAobWEucHJvdG9Db2RlcygpLmluY2x1ZGVzKENPREVfQ0lSQ1VJVCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0ZXN0TWEgPSBtYS5kZWNhcHN1bGF0ZUNvZGUoQ09ERV9QMlApO1xuICAgICAgICByZXR1cm4gbWFmbXQuV2ViU29ja2V0c1NlY3VyZS5tYXRjaGVzKHRlc3RNYSkgJiZcbiAgICAgICAgICAgIG1hZm10LkROUy5tYXRjaGVzKHRlc3RNYS5kZWNhcHN1bGF0ZUNvZGUoQ09ERV9UQ1ApLmRlY2Fwc3VsYXRlQ29kZShDT0RFX1dTUykpO1xuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGRuc1dzT3JXc3MobXVsdGlhZGRycykge1xuICAgIHJldHVybiBtdWx0aWFkZHJzLmZpbHRlcigobWEpID0+IHtcbiAgICAgICAgaWYgKG1hLnByb3RvQ29kZXMoKS5pbmNsdWRlcyhDT0RFX0NJUkNVSVQpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGVzdE1hID0gbWEuZGVjYXBzdWxhdGVDb2RlKENPREVfUDJQKTtcbiAgICAgICAgLy8gV1NcbiAgICAgICAgaWYgKG1hZm10LldlYlNvY2tldHMubWF0Y2hlcyh0ZXN0TWEpKSB7XG4gICAgICAgICAgICByZXR1cm4gbWFmbXQuRE5TLm1hdGNoZXModGVzdE1hLmRlY2Fwc3VsYXRlQ29kZShDT0RFX1RDUCkuZGVjYXBzdWxhdGVDb2RlKENPREVfV1MpKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBXU1NcbiAgICAgICAgcmV0dXJuIG1hZm10LldlYlNvY2tldHNTZWN1cmUubWF0Y2hlcyh0ZXN0TWEpICYmXG4gICAgICAgICAgICBtYWZtdC5ETlMubWF0Y2hlcyh0ZXN0TWEuZGVjYXBzdWxhdGVDb2RlKENPREVfVENQKS5kZWNhcHN1bGF0ZUNvZGUoQ09ERV9XU1MpKTtcbiAgICB9KTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZpbHRlcnMuanMubWFwIl0sIm5hbWVzIjpbIm1hZm10IiwiQ09ERV9DSVJDVUlUIiwiQ09ERV9QMlAiLCJDT0RFX1RDUCIsIkNPREVfV1MiLCJDT0RFX1dTUyIsImFsbCIsIm11bHRpYWRkcnMiLCJmaWx0ZXIiLCJtYSIsInByb3RvQ29kZXMiLCJpbmNsdWRlcyIsInRlc3RNYSIsImRlY2Fwc3VsYXRlQ29kZSIsIldlYlNvY2tldHMiLCJtYXRjaGVzIiwiV2ViU29ja2V0c1NlY3VyZSIsIndzcyIsImRuc1dzcyIsIkROUyIsImRuc1dzT3JXc3MiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/websockets/dist/src/filters.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/websockets/dist/src/index.js":
/*!***********************************************************!*\
!*** ./node_modules/@libp2p/websockets/dist/src/index.js ***!
\***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ webSockets: () => (/* binding */ webSockets)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/transport/index.js\");\n/* harmony import */ var _multiformats_multiaddr_to_uri__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @multiformats/multiaddr-to-uri */ \"(ssr)/./node_modules/@multiformats/multiaddr-to-uri/dist/src/index.js\");\n/* harmony import */ var it_ws_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! it-ws/client */ \"(ssr)/./node_modules/it-ws/dist/src/client.js\");\n/* harmony import */ var p_defer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! p-defer */ \"(ssr)/./node_modules/p-defer/index.js\");\n/* harmony import */ var wherearewe__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! wherearewe */ \"(ssr)/./node_modules/wherearewe/src/index.js\");\n/* harmony import */ var _filters_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./filters.js */ \"(ssr)/./node_modules/@libp2p/websockets/dist/src/filters.js\");\n/* harmony import */ var _listener_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./listener.js */ \"(ssr)/./node_modules/@libp2p/websockets/dist/src/listener.js\");\n/* harmony import */ var _socket_to_conn_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./socket-to-conn.js */ \"(ssr)/./node_modules/@libp2p/websockets/dist/src/socket-to-conn.js\");\n/**\n * @packageDocumentation\n *\n * A [libp2p transport](https://docs.libp2p.io/concepts/transports/overview/) based on [WebSockets](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API).\n *\n * @example\n *\n * ```TypeScript\n * import { createLibp2p } from 'libp2p'\n * import { webSockets } from '@libp2p/websockets'\n * import { multiaddr } from '@multiformats/multiaddr'\n *\n * const node = await createLibp2p({\n * transports: [\n * webSockets()\n * ]\n * //... other config\n * })\n * await node.start()\n *\n * const ma = multiaddr('/ip4/127.0.0.1/tcp/9090/ws')\n * await node.dial(ma)\n * ```\n *\n * ## Filters\n *\n * When run in a browser by default this module will only connect to secure web socket addresses.\n *\n * To change this you should pass a filter to the factory function.\n *\n * You can create your own address filters for this transports, or rely in the filters [provided](./src/filters.js).\n *\n * The available filters are:\n *\n * - `filters.all`\n * - Returns all TCP and DNS based addresses, both with `ws` or `wss`.\n * - `filters.dnsWss`\n * - Returns all DNS based addresses with `wss`.\n * - `filters.dnsWsOrWss`\n * - Returns all DNS based addresses, both with `ws` or `wss`.\n *\n * @example Allow dialing insecure WebSockets\n *\n * ```TypeScript\n * import { createLibp2p } from 'libp2p'\n * import { webSockets } from '@libp2p/websockets'\n * import filters from '@libp2p/websockets/filters'\n *\n * const node = await createLibp2p({\n * transports: [\n * webSockets({\n * // connect to all sockets, even insecure ones\n * filter: filters.all\n * })\n * ]\n * })\n * ```\n */ \n\n\n\n\n\n\n\n\nlet prop;\nclass WebSockets {\n static{\n prop = Symbol.toStringTag;\n }\n constructor(components, init){\n this[prop] = \"@libp2p/websockets\";\n this[_libp2p_interface__WEBPACK_IMPORTED_MODULE_3__.transportSymbol] = true;\n this.log = components.logger.forComponent(\"libp2p:websockets\");\n this.logger = components.logger;\n this.init = init;\n }\n async dial(ma, options) {\n this.log(\"dialing %s\", ma);\n options = options ?? {};\n const socket = await this._connect(ma, options);\n const maConn = (0,_socket_to_conn_js__WEBPACK_IMPORTED_MODULE_4__.socketToMaConn)(socket, ma, {\n logger: this.logger\n });\n this.log(\"new outbound connection %s\", maConn.remoteAddr);\n const conn = await options.upgrader.upgradeOutbound(maConn);\n this.log(\"outbound connection %s upgraded\", maConn.remoteAddr);\n return conn;\n }\n async _connect(ma, options) {\n if (options?.signal?.aborted === true) {\n throw new _libp2p_interface__WEBPACK_IMPORTED_MODULE_5__.AbortError();\n }\n const cOpts = ma.toOptions();\n this.log(\"dialing %s:%s\", cOpts.host, cOpts.port);\n const errorPromise = (0,p_defer__WEBPACK_IMPORTED_MODULE_6__[\"default\"])();\n const rawSocket = (0,it_ws_client__WEBPACK_IMPORTED_MODULE_1__.connect)((0,_multiformats_multiaddr_to_uri__WEBPACK_IMPORTED_MODULE_0__.multiaddrToUri)(ma), this.init);\n rawSocket.socket.addEventListener(\"error\", ()=>{\n // the WebSocket.ErrorEvent type doesn't actually give us any useful\n // information about what happened\n // https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/error_event\n const err = new _libp2p_interface__WEBPACK_IMPORTED_MODULE_5__.CodeError(`Could not connect to ${ma.toString()}`, \"ERR_CONNECTION_FAILED\");\n this.log.error(\"connection error:\", err);\n errorPromise.reject(err);\n });\n if (options.signal == null) {\n await Promise.race([\n rawSocket.connected(),\n errorPromise.promise\n ]);\n this.log(\"connected %s\", ma);\n return rawSocket;\n }\n // Allow abort via signal during connect\n let onAbort;\n const abort = new Promise((resolve, reject)=>{\n onAbort = ()=>{\n reject(new _libp2p_interface__WEBPACK_IMPORTED_MODULE_5__.AbortError());\n rawSocket.close().catch((err)=>{\n this.log.error(\"error closing raw socket\", err);\n });\n };\n // Already aborted?\n if (options?.signal?.aborted === true) {\n onAbort();\n return;\n }\n options?.signal?.addEventListener(\"abort\", onAbort);\n });\n try {\n await Promise.race([\n abort,\n errorPromise.promise,\n rawSocket.connected()\n ]);\n } finally{\n if (onAbort != null) {\n options?.signal?.removeEventListener(\"abort\", onAbort);\n }\n }\n this.log(\"connected %s\", ma);\n return rawSocket;\n }\n /**\n * Creates a Websockets listener. The provided `handler` function will be called\n * anytime a new incoming Connection has been successfully upgraded via\n * `upgrader.upgradeInbound`\n */ createListener(options) {\n return (0,_listener_js__WEBPACK_IMPORTED_MODULE_7__.createListener)({\n logger: this.logger\n }, {\n ...this.init,\n ...options\n });\n }\n /**\n * Takes a list of `Multiaddr`s and returns only valid Websockets addresses.\n * By default, in a browser environment only DNS+WSS multiaddr is accepted,\n * while in a Node.js environment DNS+{WS, WSS} multiaddrs are accepted.\n */ filter(multiaddrs) {\n multiaddrs = Array.isArray(multiaddrs) ? multiaddrs : [\n multiaddrs\n ];\n if (this.init?.filter != null) {\n return this.init?.filter(multiaddrs);\n }\n // Browser\n if (wherearewe__WEBPACK_IMPORTED_MODULE_2__.isBrowser || wherearewe__WEBPACK_IMPORTED_MODULE_2__.isWebWorker) {\n return _filters_js__WEBPACK_IMPORTED_MODULE_8__.wss(multiaddrs);\n }\n return _filters_js__WEBPACK_IMPORTED_MODULE_8__.all(multiaddrs);\n }\n}\nfunction webSockets(init = {}) {\n return (components)=>{\n return new WebSockets(components, init);\n };\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC93ZWJzb2NrZXRzL2Rpc3Qvc3JjL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBeURDLEdBQ3lEO0FBQ047QUFDcUI7QUFDbEM7QUFDVjtBQUN1QjtBQUNaO0FBQ087QUFDTTs7QUFDckQsTUFBTVk7O2VBU0RDLE9BQU9DLFdBQVc7O0lBTG5CQyxZQUFZQyxVQUFVLEVBQUVDLElBQUksQ0FBRTtZQUs5QixNQUFvQixHQUFHO1lBQ3ZCLENBQUNmLDhEQUFlQSxDQUFDLEdBQUc7UUFMaEIsSUFBSSxDQUFDZ0IsR0FBRyxHQUFHRixXQUFXRyxNQUFNLENBQUNDLFlBQVksQ0FBQztRQUMxQyxJQUFJLENBQUNELE1BQU0sR0FBR0gsV0FBV0csTUFBTTtRQUMvQixJQUFJLENBQUNGLElBQUksR0FBR0E7SUFDaEI7SUFHQSxNQUFNSSxLQUFLQyxFQUFFLEVBQUVDLE9BQU8sRUFBRTtRQUNwQixJQUFJLENBQUNMLEdBQUcsQ0FBQyxjQUFjSTtRQUN2QkMsVUFBVUEsV0FBVyxDQUFDO1FBQ3RCLE1BQU1DLFNBQVMsTUFBTSxJQUFJLENBQUNDLFFBQVEsQ0FBQ0gsSUFBSUM7UUFDdkMsTUFBTUcsU0FBU2Ysa0VBQWNBLENBQUNhLFFBQVFGLElBQUk7WUFDdENILFFBQVEsSUFBSSxDQUFDQSxNQUFNO1FBQ3ZCO1FBQ0EsSUFBSSxDQUFDRCxHQUFHLENBQUMsOEJBQThCUSxPQUFPQyxVQUFVO1FBQ3hELE1BQU1DLE9BQU8sTUFBTUwsUUFBUU0sUUFBUSxDQUFDQyxlQUFlLENBQUNKO1FBQ3BELElBQUksQ0FBQ1IsR0FBRyxDQUFDLG1DQUFtQ1EsT0FBT0MsVUFBVTtRQUM3RCxPQUFPQztJQUNYO0lBQ0EsTUFBTUgsU0FBU0gsRUFBRSxFQUFFQyxPQUFPLEVBQUU7UUFDeEIsSUFBSUEsU0FBU1EsUUFBUUMsWUFBWSxNQUFNO1lBQ25DLE1BQU0sSUFBSWhDLHlEQUFVQTtRQUN4QjtRQUNBLE1BQU1pQyxRQUFRWCxHQUFHWSxTQUFTO1FBQzFCLElBQUksQ0FBQ2hCLEdBQUcsQ0FBQyxpQkFBaUJlLE1BQU1FLElBQUksRUFBRUYsTUFBTUcsSUFBSTtRQUNoRCxNQUFNQyxlQUFlL0IsbURBQU1BO1FBQzNCLE1BQU1nQyxZQUFZakMscURBQU9BLENBQUNELDhFQUFLQSxDQUFDa0IsS0FBSyxJQUFJLENBQUNMLElBQUk7UUFDOUNxQixVQUFVZCxNQUFNLENBQUNlLGdCQUFnQixDQUFDLFNBQVM7WUFDdkMsb0VBQW9FO1lBQ3BFLGtDQUFrQztZQUNsQyx5RUFBeUU7WUFDekUsTUFBTUMsTUFBTSxJQUFJdkMsd0RBQVNBLENBQUMsQ0FBQyxxQkFBcUIsRUFBRXFCLEdBQUdtQixRQUFRLEdBQUcsQ0FBQyxFQUFFO1lBQ25FLElBQUksQ0FBQ3ZCLEdBQUcsQ0FBQ3dCLEtBQUssQ0FBQyxxQkFBcUJGO1lBQ3BDSCxhQUFhTSxNQUFNLENBQUNIO1FBQ3hCO1FBQ0EsSUFBSWpCLFFBQVFRLE1BQU0sSUFBSSxNQUFNO1lBQ3hCLE1BQU1hLFFBQVFDLElBQUksQ0FBQztnQkFBQ1AsVUFBVVEsU0FBUztnQkFBSVQsYUFBYVUsT0FBTzthQUFDO1lBQ2hFLElBQUksQ0FBQzdCLEdBQUcsQ0FBQyxnQkFBZ0JJO1lBQ3pCLE9BQU9nQjtRQUNYO1FBQ0Esd0NBQXdDO1FBQ3hDLElBQUlVO1FBQ0osTUFBTUMsUUFBUSxJQUFJTCxRQUFRLENBQUNNLFNBQVNQO1lBQ2hDSyxVQUFVO2dCQUNOTCxPQUFPLElBQUkzQyx5REFBVUE7Z0JBQ3JCc0MsVUFBVWEsS0FBSyxHQUFHQyxLQUFLLENBQUNaLENBQUFBO29CQUNwQixJQUFJLENBQUN0QixHQUFHLENBQUN3QixLQUFLLENBQUMsNEJBQTRCRjtnQkFDL0M7WUFDSjtZQUNBLG1CQUFtQjtZQUNuQixJQUFJakIsU0FBU1EsUUFBUUMsWUFBWSxNQUFNO2dCQUNuQ2dCO2dCQUNBO1lBQ0o7WUFDQXpCLFNBQVNRLFFBQVFRLGlCQUFpQixTQUFTUztRQUMvQztRQUNBLElBQUk7WUFDQSxNQUFNSixRQUFRQyxJQUFJLENBQUM7Z0JBQUNJO2dCQUFPWixhQUFhVSxPQUFPO2dCQUFFVCxVQUFVUSxTQUFTO2FBQUc7UUFDM0UsU0FDUTtZQUNKLElBQUlFLFdBQVcsTUFBTTtnQkFDakJ6QixTQUFTUSxRQUFRc0Isb0JBQW9CLFNBQVNMO1lBQ2xEO1FBQ0o7UUFDQSxJQUFJLENBQUM5QixHQUFHLENBQUMsZ0JBQWdCSTtRQUN6QixPQUFPZ0I7SUFDWDtJQUNBOzs7O0tBSUMsR0FDRDVCLGVBQWVhLE9BQU8sRUFBRTtRQUNwQixPQUFPYiw0REFBY0EsQ0FBQztZQUNsQlMsUUFBUSxJQUFJLENBQUNBLE1BQU07UUFDdkIsR0FBRztZQUNDLEdBQUcsSUFBSSxDQUFDRixJQUFJO1lBQ1osR0FBR00sT0FBTztRQUNkO0lBQ0o7SUFDQTs7OztLQUlDLEdBQ0QrQixPQUFPQyxVQUFVLEVBQUU7UUFDZkEsYUFBYUMsTUFBTUMsT0FBTyxDQUFDRixjQUFjQSxhQUFhO1lBQUNBO1NBQVc7UUFDbEUsSUFBSSxJQUFJLENBQUN0QyxJQUFJLEVBQUVxQyxVQUFVLE1BQU07WUFDM0IsT0FBTyxJQUFJLENBQUNyQyxJQUFJLEVBQUVxQyxPQUFPQztRQUM3QjtRQUNBLFVBQVU7UUFDVixJQUFJaEQsaURBQVNBLElBQUlDLG1EQUFXQSxFQUFFO1lBQzFCLE9BQU9DLDRDQUFXLENBQUM4QztRQUN2QjtRQUNBLE9BQU85Qyw0Q0FBVyxDQUFDOEM7SUFDdkI7QUFDSjtBQUNPLFNBQVNLLFdBQVczQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxPQUFPLENBQUNEO1FBQ0osT0FBTyxJQUFJSixXQUFXSSxZQUFZQztJQUN0QztBQUNKLEVBQ0EsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC93ZWJzb2NrZXRzL2Rpc3Qvc3JjL2luZGV4LmpzPzE4NDMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBBIFtsaWJwMnAgdHJhbnNwb3J0XShodHRwczovL2RvY3MubGlicDJwLmlvL2NvbmNlcHRzL3RyYW5zcG9ydHMvb3ZlcnZpZXcvKSBiYXNlZCBvbiBbV2ViU29ja2V0c10oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1dlYlNvY2tldHNfQVBJKS5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYFR5cGVTY3JpcHRcbiAqIGltcG9ydCB7IGNyZWF0ZUxpYnAycCB9IGZyb20gJ2xpYnAycCdcbiAqIGltcG9ydCB7IHdlYlNvY2tldHMgfSBmcm9tICdAbGlicDJwL3dlYnNvY2tldHMnXG4gKiBpbXBvcnQgeyBtdWx0aWFkZHIgfSBmcm9tICdAbXVsdGlmb3JtYXRzL211bHRpYWRkcidcbiAqXG4gKiBjb25zdCBub2RlID0gYXdhaXQgY3JlYXRlTGlicDJwKHtcbiAqICAgdHJhbnNwb3J0czogW1xuICogICAgIHdlYlNvY2tldHMoKVxuICogICBdXG4gKiAvLy4uLiBvdGhlciBjb25maWdcbiAqIH0pXG4gKiBhd2FpdCBub2RlLnN0YXJ0KClcbiAqXG4gKiBjb25zdCBtYSA9IG11bHRpYWRkcignL2lwNC8xMjcuMC4wLjEvdGNwLzkwOTAvd3MnKVxuICogYXdhaXQgbm9kZS5kaWFsKG1hKVxuICogYGBgXG4gKlxuICogIyMgRmlsdGVyc1xuICpcbiAqIFdoZW4gcnVuIGluIGEgYnJvd3NlciBieSBkZWZhdWx0IHRoaXMgbW9kdWxlIHdpbGwgb25seSBjb25uZWN0IHRvIHNlY3VyZSB3ZWIgc29ja2V0IGFkZHJlc3Nlcy5cbiAqXG4gKiBUbyBjaGFuZ2UgdGhpcyB5b3Ugc2hvdWxkIHBhc3MgYSBmaWx0ZXIgdG8gdGhlIGZhY3RvcnkgZnVuY3Rpb24uXG4gKlxuICogWW91IGNhbiBjcmVhdGUgeW91ciBvd24gYWRkcmVzcyBmaWx0ZXJzIGZvciB0aGlzIHRyYW5zcG9ydHMsIG9yIHJlbHkgaW4gdGhlIGZpbHRlcnMgW3Byb3ZpZGVkXSguL3NyYy9maWx0ZXJzLmpzKS5cbiAqXG4gKiBUaGUgYXZhaWxhYmxlIGZpbHRlcnMgYXJlOlxuICpcbiAqIC0gYGZpbHRlcnMuYWxsYFxuICogICAtIFJldHVybnMgYWxsIFRDUCBhbmQgRE5TIGJhc2VkIGFkZHJlc3NlcywgYm90aCB3aXRoIGB3c2Agb3IgYHdzc2AuXG4gKiAtIGBmaWx0ZXJzLmRuc1dzc2BcbiAqICAgLSBSZXR1cm5zIGFsbCBETlMgYmFzZWQgYWRkcmVzc2VzIHdpdGggYHdzc2AuXG4gKiAtIGBmaWx0ZXJzLmRuc1dzT3JXc3NgXG4gKiAgIC0gUmV0dXJucyBhbGwgRE5TIGJhc2VkIGFkZHJlc3NlcywgYm90aCB3aXRoIGB3c2Agb3IgYHdzc2AuXG4gKlxuICogQGV4YW1wbGUgQWxsb3cgZGlhbGluZyBpbnNlY3VyZSBXZWJTb2NrZXRzXG4gKlxuICogYGBgVHlwZVNjcmlwdFxuICogaW1wb3J0IHsgY3JlYXRlTGlicDJwIH0gZnJvbSAnbGlicDJwJ1xuICogaW1wb3J0IHsgd2ViU29ja2V0cyB9IGZyb20gJ0BsaWJwMnAvd2Vic29ja2V0cydcbiAqIGltcG9ydCBmaWx0ZXJzIGZyb20gJ0BsaWJwMnAvd2Vic29ja2V0cy9maWx0ZXJzJ1xuICpcbiAqIGNvbnN0IG5vZGUgPSBhd2FpdCBjcmVhdGVMaWJwMnAoe1xuICogICB0cmFuc3BvcnRzOiBbXG4gKiAgICAgd2ViU29ja2V0cyh7XG4gKiAgICAgICAvLyBjb25uZWN0IHRvIGFsbCBzb2NrZXRzLCBldmVuIGluc2VjdXJlIG9uZXNcbiAqICAgICAgIGZpbHRlcjogZmlsdGVycy5hbGxcbiAqICAgICB9KVxuICogICBdXG4gKiB9KVxuICogYGBgXG4gKi9cbmltcG9ydCB7IEFib3J0RXJyb3IsIENvZGVFcnJvciB9IGZyb20gJ0BsaWJwMnAvaW50ZXJmYWNlJztcbmltcG9ydCB7IHRyYW5zcG9ydFN5bWJvbCB9IGZyb20gJ0BsaWJwMnAvaW50ZXJmYWNlJztcbmltcG9ydCB7IG11bHRpYWRkclRvVXJpIGFzIHRvVXJpIH0gZnJvbSAnQG11bHRpZm9ybWF0cy9tdWx0aWFkZHItdG8tdXJpJztcbmltcG9ydCB7IGNvbm5lY3QgfSBmcm9tICdpdC13cy9jbGllbnQnO1xuaW1wb3J0IHBEZWZlciBmcm9tICdwLWRlZmVyJztcbmltcG9ydCB7IGlzQnJvd3NlciwgaXNXZWJXb3JrZXIgfSBmcm9tICd3aGVyZWFyZXdlJztcbmltcG9ydCAqIGFzIGZpbHRlcnMgZnJvbSAnLi9maWx0ZXJzLmpzJztcbmltcG9ydCB7IGNyZWF0ZUxpc3RlbmVyIH0gZnJvbSAnLi9saXN0ZW5lci5qcyc7XG5pbXBvcnQgeyBzb2NrZXRUb01hQ29ubiB9IGZyb20gJy4vc29ja2V0LXRvLWNvbm4uanMnO1xuY2xhc3MgV2ViU29ja2V0cyB7XG4gICAgbG9nO1xuICAgIGluaXQ7XG4gICAgbG9nZ2VyO1xuICAgIGNvbnN0cnVjdG9yKGNvbXBvbmVudHMsIGluaXQpIHtcbiAgICAgICAgdGhpcy5sb2cgPSBjb21wb25lbnRzLmxvZ2dlci5mb3JDb21wb25lbnQoJ2xpYnAycDp3ZWJzb2NrZXRzJyk7XG4gICAgICAgIHRoaXMubG9nZ2VyID0gY29tcG9uZW50cy5sb2dnZXI7XG4gICAgICAgIHRoaXMuaW5pdCA9IGluaXQ7XG4gICAgfVxuICAgIFtTeW1ib2wudG9TdHJpbmdUYWddID0gJ0BsaWJwMnAvd2Vic29ja2V0cyc7XG4gICAgW3RyYW5zcG9ydFN5bWJvbF0gPSB0cnVlO1xuICAgIGFzeW5jIGRpYWwobWEsIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5sb2coJ2RpYWxpbmcgJXMnLCBtYSk7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zID8/IHt9O1xuICAgICAgICBjb25zdCBzb2NrZXQgPSBhd2FpdCB0aGlzLl9jb25uZWN0KG1hLCBvcHRpb25zKTtcbiAgICAgICAgY29uc3QgbWFDb25uID0gc29ja2V0VG9NYUNvbm4oc29ja2V0LCBtYSwge1xuICAgICAgICAgICAgbG9nZ2VyOiB0aGlzLmxvZ2dlclxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5sb2coJ25ldyBvdXRib3VuZCBjb25uZWN0aW9uICVzJywgbWFDb25uLnJlbW90ZUFkZHIpO1xuICAgICAgICBjb25zdCBjb25uID0gYXdhaXQgb3B0aW9ucy51cGdyYWRlci51cGdyYWRlT3V0Ym91bmQobWFDb25uKTtcbiAgICAgICAgdGhpcy5sb2coJ291dGJvdW5kIGNvbm5lY3Rpb24gJXMgdXBncmFkZWQnLCBtYUNvbm4ucmVtb3RlQWRkcik7XG4gICAgICAgIHJldHVybiBjb25uO1xuICAgIH1cbiAgICBhc3luYyBfY29ubmVjdChtYSwgb3B0aW9ucykge1xuICAgICAgICBpZiAob3B0aW9ucz8uc2lnbmFsPy5hYm9ydGVkID09PSB0cnVlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQWJvcnRFcnJvcigpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNPcHRzID0gbWEudG9PcHRpb25zKCk7XG4gICAgICAgIHRoaXMubG9nKCdkaWFsaW5nICVzOiVzJywgY09wdHMuaG9zdCwgY09wdHMucG9ydCk7XG4gICAgICAgIGNvbnN0IGVycm9yUHJvbWlzZSA9IHBEZWZlcigpO1xuICAgICAgICBjb25zdCByYXdTb2NrZXQgPSBjb25uZWN0KHRvVXJpKG1hKSwgdGhpcy5pbml0KTtcbiAgICAgICAgcmF3U29ja2V0LnNvY2tldC5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsICgpID0+IHtcbiAgICAgICAgICAgIC8vIHRoZSBXZWJTb2NrZXQuRXJyb3JFdmVudCB0eXBlIGRvZXNuJ3QgYWN0dWFsbHkgZ2l2ZSB1cyBhbnkgdXNlZnVsXG4gICAgICAgICAgICAvLyBpbmZvcm1hdGlvbiBhYm91dCB3aGF0IGhhcHBlbmVkXG4gICAgICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvV2ViU29ja2V0L2Vycm9yX2V2ZW50XG4gICAgICAgICAgICBjb25zdCBlcnIgPSBuZXcgQ29kZUVycm9yKGBDb3VsZCBub3QgY29ubmVjdCB0byAke21hLnRvU3RyaW5nKCl9YCwgJ0VSUl9DT05ORUNUSU9OX0ZBSUxFRCcpO1xuICAgICAgICAgICAgdGhpcy5sb2cuZXJyb3IoJ2Nvbm5lY3Rpb24gZXJyb3I6JywgZXJyKTtcbiAgICAgICAgICAgIGVycm9yUHJvbWlzZS5yZWplY3QoZXJyKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChvcHRpb25zLnNpZ25hbCA9PSBudWxsKSB7XG4gICAgICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2UoW3Jhd1NvY2tldC5jb25uZWN0ZWQoKSwgZXJyb3JQcm9taXNlLnByb21pc2VdKTtcbiAgICAgICAgICAgIHRoaXMubG9nKCdjb25uZWN0ZWQgJXMnLCBtYSk7XG4gICAgICAgICAgICByZXR1cm4gcmF3U29ja2V0O1xuICAgICAgICB9XG4gICAgICAgIC8vIEFsbG93IGFib3J0IHZpYSBzaWduYWwgZHVyaW5nIGNvbm5lY3RcbiAgICAgICAgbGV0IG9uQWJvcnQ7XG4gICAgICAgIGNvbnN0IGFib3J0ID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgb25BYm9ydCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZWplY3QobmV3IEFib3J0RXJyb3IoKSk7XG4gICAgICAgICAgICAgICAgcmF3U29ja2V0LmNsb3NlKCkuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2cuZXJyb3IoJ2Vycm9yIGNsb3NpbmcgcmF3IHNvY2tldCcsIGVycik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy8gQWxyZWFkeSBhYm9ydGVkP1xuICAgICAgICAgICAgaWYgKG9wdGlvbnM/LnNpZ25hbD8uYWJvcnRlZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIG9uQWJvcnQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zPy5zaWduYWw/LmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25BYm9ydCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5yYWNlKFthYm9ydCwgZXJyb3JQcm9taXNlLnByb21pc2UsIHJhd1NvY2tldC5jb25uZWN0ZWQoKV0pO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgaWYgKG9uQWJvcnQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnM/LnNpZ25hbD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvZygnY29ubmVjdGVkICVzJywgbWEpO1xuICAgICAgICByZXR1cm4gcmF3U29ja2V0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgV2Vic29ja2V0cyBsaXN0ZW5lci4gVGhlIHByb3ZpZGVkIGBoYW5kbGVyYCBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZFxuICAgICAqIGFueXRpbWUgYSBuZXcgaW5jb21pbmcgQ29ubmVjdGlvbiBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgdXBncmFkZWQgdmlhXG4gICAgICogYHVwZ3JhZGVyLnVwZ3JhZGVJbmJvdW5kYFxuICAgICAqL1xuICAgIGNyZWF0ZUxpc3RlbmVyKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUxpc3RlbmVyKHtcbiAgICAgICAgICAgIGxvZ2dlcjogdGhpcy5sb2dnZXJcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgLi4udGhpcy5pbml0LFxuICAgICAgICAgICAgLi4ub3B0aW9uc1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVGFrZXMgYSBsaXN0IG9mIGBNdWx0aWFkZHJgcyBhbmQgcmV0dXJucyBvbmx5IHZhbGlkIFdlYnNvY2tldHMgYWRkcmVzc2VzLlxuICAgICAqIEJ5IGRlZmF1bHQsIGluIGEgYnJvd3NlciBlbnZpcm9ubWVudCBvbmx5IEROUytXU1MgbXVsdGlhZGRyIGlzIGFjY2VwdGVkLFxuICAgICAqIHdoaWxlIGluIGEgTm9kZS5qcyBlbnZpcm9ubWVudCBETlMre1dTLCBXU1N9IG11bHRpYWRkcnMgYXJlIGFjY2VwdGVkLlxuICAgICAqL1xuICAgIGZpbHRlcihtdWx0aWFkZHJzKSB7XG4gICAgICAgIG11bHRpYWRkcnMgPSBBcnJheS5pc0FycmF5KG11bHRpYWRkcnMpID8gbXVsdGlhZGRycyA6IFttdWx0aWFkZHJzXTtcbiAgICAgICAgaWYgKHRoaXMuaW5pdD8uZmlsdGVyICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmluaXQ/LmZpbHRlcihtdWx0aWFkZHJzKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBCcm93c2VyXG4gICAgICAgIGlmIChpc0Jyb3dzZXIgfHwgaXNXZWJXb3JrZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXJzLndzcyhtdWx0aWFkZHJzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsdGVycy5hbGwobXVsdGlhZGRycyk7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIHdlYlNvY2tldHMoaW5pdCA9IHt9KSB7XG4gICAgcmV0dXJuIChjb21wb25lbnRzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgV2ViU29ja2V0cyhjb21wb25lbnRzLCBpbml0KTtcbiAgICB9O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbIkFib3J0RXJyb3IiLCJDb2RlRXJyb3IiLCJ0cmFuc3BvcnRTeW1ib2wiLCJtdWx0aWFkZHJUb1VyaSIsInRvVXJpIiwiY29ubmVjdCIsInBEZWZlciIsImlzQnJvd3NlciIsImlzV2ViV29ya2VyIiwiZmlsdGVycyIsImNyZWF0ZUxpc3RlbmVyIiwic29ja2V0VG9NYUNvbm4iLCJXZWJTb2NrZXRzIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJjb25zdHJ1Y3RvciIsImNvbXBvbmVudHMiLCJpbml0IiwibG9nIiwibG9nZ2VyIiwiZm9yQ29tcG9uZW50IiwiZGlhbCIsIm1hIiwib3B0aW9ucyIsInNvY2tldCIsIl9jb25uZWN0IiwibWFDb25uIiwicmVtb3RlQWRkciIsImNvbm4iLCJ1cGdyYWRlciIsInVwZ3JhZGVPdXRib3VuZCIsInNpZ25hbCIsImFib3J0ZWQiLCJjT3B0cyIsInRvT3B0aW9ucyIsImhvc3QiLCJwb3J0IiwiZXJyb3JQcm9taXNlIiwicmF3U29ja2V0IiwiYWRkRXZlbnRMaXN0ZW5lciIsImVyciIsInRvU3RyaW5nIiwiZXJyb3IiLCJyZWplY3QiLCJQcm9taXNlIiwicmFjZSIsImNvbm5lY3RlZCIsInByb21pc2UiLCJvbkFib3J0IiwiYWJvcnQiLCJyZXNvbHZlIiwiY2xvc2UiLCJjYXRjaCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJmaWx0ZXIiLCJtdWx0aWFkZHJzIiwiQXJyYXkiLCJpc0FycmF5Iiwid3NzIiwiYWxsIiwid2ViU29ja2V0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/websockets/dist/src/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/websockets/dist/src/listener.js":
/*!**************************************************************!*\
!*** ./node_modules/@libp2p/websockets/dist/src/listener.js ***!
\**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createListener: () => (/* binding */ createListener)\n/* harmony export */ });\n/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! os */ \"os\");\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/event-target.js\");\n/* harmony import */ var _libp2p_utils_ip_port_to_multiaddr__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @libp2p/utils/ip-port-to-multiaddr */ \"(ssr)/./node_modules/@libp2p/utils/dist/src/ip-port-to-multiaddr.js\");\n/* harmony import */ var _multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @multiformats/multiaddr */ \"(ssr)/./node_modules/@multiformats/multiaddr/dist/src/index.js\");\n/* harmony import */ var it_ws_server__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! it-ws/server */ \"(ssr)/./node_modules/it-ws/dist/src/server.js\");\n/* harmony import */ var _socket_to_conn_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./socket-to-conn.js */ \"(ssr)/./node_modules/@libp2p/websockets/dist/src/socket-to-conn.js\");\n\n\n\n\n\n\nclass WebSocketListener extends _libp2p_interface__WEBPACK_IMPORTED_MODULE_3__.TypedEventEmitter {\n constructor(components, init){\n super();\n this.log = components.logger.forComponent(\"libp2p:websockets:listener\");\n // Keep track of open connections to destroy when the listener is closed\n this.connections = new Set();\n const self = this; // eslint-disable-line @typescript-eslint/no-this-alias\n this.server = (0,it_ws_server__WEBPACK_IMPORTED_MODULE_2__.createServer)({\n ...init,\n onConnection: (stream)=>{\n const maConn = (0,_socket_to_conn_js__WEBPACK_IMPORTED_MODULE_4__.socketToMaConn)(stream, (0,_libp2p_utils_ip_port_to_multiaddr__WEBPACK_IMPORTED_MODULE_5__.ipPortToMultiaddr)(stream.remoteAddress ?? \"\", stream.remotePort ?? 0), {\n logger: components.logger\n });\n this.log(\"new inbound connection %s\", maConn.remoteAddr);\n this.connections.add(stream);\n stream.socket.on(\"close\", function() {\n self.connections.delete(stream);\n });\n try {\n void init.upgrader.upgradeInbound(maConn).then((conn)=>{\n this.log(\"inbound connection %s upgraded\", maConn.remoteAddr);\n if (init?.handler != null) {\n init?.handler(conn);\n }\n self.dispatchEvent(new _libp2p_interface__WEBPACK_IMPORTED_MODULE_3__.CustomEvent(\"connection\", {\n detail: conn\n }));\n }).catch(async (err)=>{\n this.log.error(\"inbound connection failed to upgrade\", err);\n await maConn.close().catch((err)=>{\n this.log.error(\"inbound connection failed to close after upgrade failed\", err);\n });\n });\n } catch (err) {\n this.log.error(\"inbound connection failed to upgrade\", err);\n maConn.close().catch((err)=>{\n this.log.error(\"inbound connection failed to close after upgrade failed\", err);\n });\n }\n }\n });\n this.server.on(\"listening\", ()=>{\n this.dispatchEvent(new _libp2p_interface__WEBPACK_IMPORTED_MODULE_3__.CustomEvent(\"listening\"));\n });\n this.server.on(\"error\", (err)=>{\n this.dispatchEvent(new _libp2p_interface__WEBPACK_IMPORTED_MODULE_3__.CustomEvent(\"error\", {\n detail: err\n }));\n });\n this.server.on(\"close\", ()=>{\n this.dispatchEvent(new _libp2p_interface__WEBPACK_IMPORTED_MODULE_3__.CustomEvent(\"close\"));\n });\n }\n async close() {\n await Promise.all(Array.from(this.connections).map(async (maConn)=>{\n await maConn.close();\n }));\n if (this.server.address() == null) {\n // not listening, close will throw an error\n return;\n }\n await this.server.close();\n }\n async listen(ma) {\n this.listeningMultiaddr = ma;\n await this.server.listen(ma.toOptions());\n }\n getAddrs() {\n const multiaddrs = [];\n const address = this.server.address();\n if (address == null) {\n throw new Error(\"Listener is not ready yet\");\n }\n if (typeof address === \"string\") {\n throw new Error(\"Wrong address type received - expected AddressInfo, got string - are you trying to listen on a unix socket?\");\n }\n if (this.listeningMultiaddr == null) {\n throw new Error(\"Listener is not ready yet\");\n }\n const ipfsId = this.listeningMultiaddr.getPeerId();\n const protos = this.listeningMultiaddr.protos();\n // Because TCP will only return the IPv6 version\n // we need to capture from the passed multiaddr\n if (protos.some((proto)=>proto.code === (0,_multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_1__.protocols)(\"ip4\").code)) {\n const wsProto = protos.some((proto)=>proto.code === (0,_multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_1__.protocols)(\"ws\").code) ? \"/ws\" : \"/wss\";\n let m = this.listeningMultiaddr.decapsulate(\"tcp\");\n m = m.encapsulate(`/tcp/${address.port}${wsProto}`);\n if (ipfsId != null) {\n m = m.encapsulate(`/p2p/${ipfsId}`);\n }\n if (m.toString().includes(\"0.0.0.0\")) {\n const netInterfaces = os__WEBPACK_IMPORTED_MODULE_0__.networkInterfaces();\n Object.values(netInterfaces).forEach((niInfos)=>{\n if (niInfos == null) {\n return;\n }\n niInfos.forEach((ni)=>{\n if (ni.family === \"IPv4\") {\n multiaddrs.push((0,_multiformats_multiaddr__WEBPACK_IMPORTED_MODULE_1__.multiaddr)(m.toString().replace(\"0.0.0.0\", ni.address)));\n }\n });\n });\n } else {\n multiaddrs.push(m);\n }\n }\n return multiaddrs;\n }\n}\nfunction createListener(components, init) {\n return new WebSocketListener(components, init);\n} //# sourceMappingURL=listener.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC93ZWJzb2NrZXRzL2Rpc3Qvc3JjL2xpc3RlbmVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBb0I7QUFDK0M7QUFDbUI7QUFDdkI7QUFDbkI7QUFDUztBQUNyRCxNQUFNUywwQkFBMEJSLGdFQUFpQkE7SUFLN0NTLFlBQVlDLFVBQVUsRUFBRUMsSUFBSSxDQUFFO1FBQzFCLEtBQUs7UUFDTCxJQUFJLENBQUNDLEdBQUcsR0FBR0YsV0FBV0csTUFBTSxDQUFDQyxZQUFZLENBQUM7UUFDMUMsd0VBQXdFO1FBQ3hFLElBQUksQ0FBQ0MsV0FBVyxHQUFHLElBQUlDO1FBQ3ZCLE1BQU1DLE9BQU8sSUFBSSxFQUFFLHVEQUF1RDtRQUMxRSxJQUFJLENBQUNDLE1BQU0sR0FBR1osMERBQVlBLENBQUM7WUFDdkIsR0FBR0ssSUFBSTtZQUNQUSxjQUFjLENBQUNDO2dCQUNYLE1BQU1DLFNBQVNkLGtFQUFjQSxDQUFDYSxRQUFRakIscUZBQVdBLENBQUNpQixPQUFPRSxhQUFhLElBQUksSUFBSUYsT0FBT0csVUFBVSxJQUFJLElBQUk7b0JBQ25HVixRQUFRSCxXQUFXRyxNQUFNO2dCQUM3QjtnQkFDQSxJQUFJLENBQUNELEdBQUcsQ0FBQyw2QkFBNkJTLE9BQU9HLFVBQVU7Z0JBQ3ZELElBQUksQ0FBQ1QsV0FBVyxDQUFDVSxHQUFHLENBQUNMO2dCQUNyQkEsT0FBT00sTUFBTSxDQUFDQyxFQUFFLENBQUMsU0FBUztvQkFDdEJWLEtBQUtGLFdBQVcsQ0FBQ2EsTUFBTSxDQUFDUjtnQkFDNUI7Z0JBQ0EsSUFBSTtvQkFDQSxLQUFLVCxLQUFLa0IsUUFBUSxDQUFDQyxjQUFjLENBQUNULFFBQzdCVSxJQUFJLENBQUMsQ0FBQ0M7d0JBQ1AsSUFBSSxDQUFDcEIsR0FBRyxDQUFDLGtDQUFrQ1MsT0FBT0csVUFBVTt3QkFDNUQsSUFBSWIsTUFBTXNCLFdBQVcsTUFBTTs0QkFDdkJ0QixNQUFNc0IsUUFBUUQ7d0JBQ2xCO3dC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UUFBUSxDQUFDO1lBQ2xELElBQUlOLFVBQVUsTUFBTTtnQkFDaEJPLElBQUlBLEVBQUVFLFdBQVcsQ0FBQyxDQUFDLEtBQUssRUFBRVQsT0FBTyxDQUFDO1lBQ3RDO1lBQ0EsSUFBSU8sRUFBRUksUUFBUSxHQUFHQyxRQUFRLENBQUMsWUFBWTtnQkFDbEMsTUFBTUMsZ0JBQWdCbkUsaURBQW9CO2dCQUMxQ3FFLE9BQU9DLE1BQU0sQ0FBQ0gsZUFBZUksT0FBTyxDQUFDQyxDQUFBQTtvQkFDakMsSUFBSUEsV0FBVyxNQUFNO3dCQUNqQjtvQkFDSjtvQkFDQUEsUUFBUUQsT0FBTyxDQUFDRSxDQUFBQTt3QkFDWixJQUFJQSxHQUFHQyxNQUFNLEtBQUssUUFBUTs0QkFDdEJ0QixXQUFXdUIsSUFBSSxDQUFDdEUsa0VBQVNBLENBQUN3RCxFQUFFSSxRQUFRLEdBQUdXLE9BQU8sQ0FBQyxXQUFXSCxHQUFHM0IsT0FBTzt3QkFDeEU7b0JBQ0o7Z0JBQ0o7WUFDSixPQUNLO2dCQUNETSxXQUFXdUIsSUFBSSxDQUFDZDtZQUNwQjtRQUNKO1FBQ0EsT0FBT1Q7SUFDWDtBQUNKO0FBQ08sU0FBU3lCLGVBQWVsRSxVQUFVLEVBQUVDLElBQUk7SUFDM0MsT0FBTyxJQUFJSCxrQkFBa0JFLFlBQVlDO0FBQzdDLEVBQ0Esb0NBQW9DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvQGxpYnAycC93ZWJzb2NrZXRzL2Rpc3Qvc3JjL2xpc3RlbmVyLmpzP2M1N2UiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCB7IFR5cGVkRXZlbnRFbWl0dGVyLCBDdXN0b21FdmVudCB9IGZyb20gJ0BsaWJwMnAvaW50ZXJmYWNlJztcbmltcG9ydCB7IGlwUG9ydFRvTXVsdGlhZGRyIGFzIHRvTXVsdGlhZGRyIH0gZnJvbSAnQGxpYnAycC91dGlscy9pcC1wb3J0LXRvLW11bHRpYWRkcic7XG5pbXBvcnQgeyBtdWx0aWFkZHIsIHByb3RvY29scyB9IGZyb20gJ0BtdWx0aWZvcm1hdHMvbXVsdGlhZGRyJztcbmltcG9ydCB7IGNyZWF0ZVNlcnZlciB9IGZyb20gJ2l0LXdzL3NlcnZlcic7XG5pbXBvcnQgeyBzb2NrZXRUb01hQ29ubiB9IGZyb20gJy4vc29ja2V0LXRvLWNvbm4uanMnO1xuY2xhc3MgV2ViU29ja2V0TGlzdGVuZXIgZXh0ZW5kcyBUeXBlZEV2ZW50RW1pdHRlciB7XG4gICAgY29ubmVjdGlvbnM7XG4gICAgbGlzdGVuaW5nTXVsdGlhZGRyO1xuICAgIHNlcnZlcjtcbiAgICBsb2c7XG4gICAgY29uc3RydWN0b3IoY29tcG9uZW50cywgaW5pdCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmxvZyA9IGNvbXBvbmVudHMubG9nZ2VyLmZvckNvbXBvbmVudCgnbGlicDJwOndlYnNvY2tldHM6bGlzdGVuZXInKTtcbiAgICAgICAgLy8gS2VlcCB0cmFjayBvZiBvcGVuIGNvbm5lY3Rpb25zIHRvIGRlc3Ryb3kgd2hlbiB0aGUgbGlzdGVuZXIgaXMgY2xvc2VkXG4gICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSBuZXcgU2V0KCk7XG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgICAgIHRoaXMuc2VydmVyID0gY3JlYXRlU2VydmVyKHtcbiAgICAgICAgICAgIC4uLmluaXQsXG4gICAgICAgICAgICBvbkNvbm5lY3Rpb246IChzdHJlYW0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYUNvbm4gPSBzb2NrZXRUb01hQ29ubihzdHJlYW0sIHRvTXVsdGlhZGRyKHN0cmVhbS5yZW1vdGVBZGRyZXNzID8/ICcnLCBzdHJlYW0ucmVtb3RlUG9ydCA/PyAwKSwge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXI6IGNvbXBvbmVudHMubG9nZ2VyXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2coJ25ldyBpbmJvdW5kIGNvbm5lY3Rpb24gJXMnLCBtYUNvbm4ucmVtb3RlQWRkcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucy5hZGQoc3RyZWFtKTtcbiAgICAgICAgICAgICAgICBzdHJlYW0uc29ja2V0Lm9uKCdjbG9zZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5jb25uZWN0aW9ucy5kZWxldGUoc3RyZWFtKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB2b2lkIGluaXQudXBncmFkZXIudXBncmFkZUluYm91bmQobWFDb25uKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGNvbm4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9nKCdpbmJvdW5kIGNvbm5lY3Rpb24gJXMgdXBncmFkZWQnLCBtYUNvbm4ucmVtb3RlQWRkcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5pdD8uaGFuZGxlciAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdD8uaGFuZGxlcihjb25uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2Nvbm5lY3Rpb24nLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiBjb25uXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goYXN5bmMgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2cuZXJyb3IoJ2luYm91bmQgY29ubmVjdGlvbiBmYWlsZWQgdG8gdXBncmFkZScsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBtYUNvbm4uY2xvc2UoKS5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9nLmVycm9yKCdpbmJvdW5kIGNvbm5lY3Rpb24gZmFpbGVkIHRvIGNsb3NlIGFmdGVyIHVwZ3JhZGUgZmFpbGVkJywgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZy5lcnJvcignaW5ib3VuZCBjb25uZWN0aW9uIGZhaWxlZCB0byB1cGdyYWRlJywgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgbWFDb25uLmNsb3NlKCkuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9nLmVycm9yKCdpbmJvdW5kIGNvbm5lY3Rpb24gZmFpbGVkIHRvIGNsb3NlIGFmdGVyIHVwZ3JhZGUgZmFpbGVkJywgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXJ2ZXIub24oJ2xpc3RlbmluZycsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2xpc3RlbmluZycpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2VydmVyLm9uKCdlcnJvcicsIChlcnIpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2Vycm9yJywge1xuICAgICAgICAgICAgICAgIGRldGFpbDogZXJyXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlcnZlci5vbignY2xvc2UnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdjbG9zZScpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIGNsb3NlKCkge1xuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChBcnJheS5mcm9tKHRoaXMuY29ubmVjdGlvbnMpLm1hcChhc3luYyAobWFDb25uKSA9PiB7IGF3YWl0IG1hQ29ubi5jbG9zZSgpOyB9KSk7XG4gICAgICAgIGlmICh0aGlzLnNlcnZlci5hZGRyZXNzKCkgPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gbm90IGxpc3RlbmluZywgY2xvc2Ugd2lsbCB0aHJvdyBhbiBlcnJvclxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmVyLmNsb3NlKCk7XG4gICAgfVxuICAgIGFzeW5jIGxpc3RlbihtYSkge1xuICAgICAgICB0aGlzLmxpc3RlbmluZ011bHRpYWRkciA9IG1hO1xuICAgICAgICBhd2FpdCB0aGlzLnNlcnZlci5saXN0ZW4obWEudG9PcHRpb25zKCkpO1xuICAgIH1cbiAgICBnZXRBZGRycygpIHtcbiAgICAgICAgY29uc3QgbXVsdGlhZGRycyA9IFtdO1xuICAgICAgICBjb25zdCBhZGRyZXNzID0gdGhpcy5zZXJ2ZXIuYWRkcmVzcygpO1xuICAgICAgICBpZiAoYWRkcmVzcyA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xpc3RlbmVyIGlzIG5vdCByZWFkeSB5ZXQnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGFkZHJlc3MgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1dyb25nIGFkZHJlc3MgdHlwZSByZWNlaXZlZCAtIGV4cGVjdGVkIEFkZHJlc3NJbmZvLCBnb3Qgc3RyaW5nIC0gYXJlIHlvdSB0cnlpbmcgdG8gbGlzdGVuIG9uIGEgdW5peCBzb2NrZXQ/Jyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubGlzdGVuaW5nTXVsdGlhZGRyID09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTGlzdGVuZXIgaXMgbm90IHJlYWR5IHlldCcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlwZnNJZCA9IHRoaXMubGlzdGVuaW5nTXVsdGlhZGRyLmdldFBlZXJJZCgpO1xuICAgICAgICBjb25zdCBwcm90b3MgPSB0aGlzLmxpc3RlbmluZ011bHRpYWRkci5wcm90b3MoKTtcbiAgICAgICAgLy8gQmVjYXVzZSBUQ1Agd2lsbCBvbmx5IHJldHVybiB0aGUgSVB2NiB2ZXJzaW9uXG4gICAgICAgIC8vIHdlIG5lZWQgdG8gY2FwdHVyZSBmcm9tIHRoZSBwYXNzZWQgbXVsdGlhZGRyXG4gICAgICAgIGlmIChwcm90b3Muc29tZShwcm90byA9PiBwcm90by5jb2RlID09PSBwcm90b2NvbHMoJ2lwNCcpLmNvZGUpKSB7XG4gICAgICAgICAgICBjb25zdCB3c1Byb3RvID0gcHJvdG9zLnNvbWUocHJvdG8gPT4gcHJvdG8uY29kZSA9PT0gcHJvdG9jb2xzKCd3cycpLmNvZGUpID8gJy93cycgOiAnL3dzcyc7XG4gICAgICAgICAgICBsZXQgbSA9IHRoaXMubGlzdGVuaW5nTXVsdGlhZGRyLmRlY2Fwc3VsYXRlKCd0Y3AnKTtcbiAgICAgICAgICAgIG0gPSBtLmVuY2Fwc3VsYXRlKGAvdGNwLyR7YWRkcmVzcy5wb3J0fSR7d3NQcm90b31gKTtcbiAgICAgICAgICAgIGlmIChpcGZzSWQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIG0gPSBtLmVuY2Fwc3VsYXRlKGAvcDJwLyR7aXBmc0lkfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG0udG9TdHJpbmcoKS5pbmNsdWRlcygnMC4wLjAuMCcpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV0SW50ZXJmYWNlcyA9IG9zLm5ldHdvcmtJbnRlcmZhY2VzKCk7XG4gICAgICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyhuZXRJbnRlcmZhY2VzKS5mb3JFYWNoKG5pSW5mb3MgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAobmlJbmZvcyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbmlJbmZvcy5mb3JFYWNoKG5pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuaS5mYW1pbHkgPT09ICdJUHY0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpYWRkcnMucHVzaChtdWx0aWFkZHIobS50b1N0cmluZygpLnJlcGxhY2UoJzAuMC4wLjAnLCBuaS5hZGRyZXNzKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG11bHRpYWRkcnMucHVzaChtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbXVsdGlhZGRycztcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTGlzdGVuZXIoY29tcG9uZW50cywgaW5pdCkge1xuICAgIHJldHVybiBuZXcgV2ViU29ja2V0TGlzdGVuZXIoY29tcG9uZW50cywgaW5pdCk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1saXN0ZW5lci5qcy5tYXAiXSwibmFtZXMiOlsib3MiLCJUeXBlZEV2ZW50RW1pdHRlciIsIkN1c3RvbUV2ZW50IiwiaXBQb3J0VG9NdWx0aWFkZHIiLCJ0b011bHRpYWRkciIsIm11bHRpYWRkciIsInByb3RvY29scyIsImNyZWF0ZVNlcnZlciIsInNvY2tldFRvTWFDb25uIiwiV2ViU29ja2V0TGlzdGVuZXIiLCJjb25zdHJ1Y3RvciIsImNvbXBvbmVudHMiLCJpbml0IiwibG9nIiwibG9nZ2VyIiwiZm9yQ29tcG9uZW50IiwiY29ubmVjdGlvbnMiLCJTZXQiLCJzZWxmIiwic2VydmVyIiwib25Db25uZWN0aW9uIiwic3RyZWFtIiwibWFDb25uIiwicmVtb3RlQWRkcmVzcyIsInJlbW90ZVBvcnQiLCJyZW1vdGVBZGRyIiwiYWRkIiwic29ja2V0Iiwib24iLCJkZWxldGUiLCJ1cGdyYWRlciIsInVwZ3JhZGVJbmJvdW5kIiwidGhlbiIsImNvbm4iLCJoYW5kbGVyIiwiZGlzcGF0Y2hFdmVudCIsImRldGFpbCIsImNhdGNoIiwiZXJyIiwiZXJyb3IiLCJjbG9zZSIsIlByb21pc2UiLCJhbGwiLCJBcnJheSIsImZyb20iLCJtYXAiLCJhZGRyZXNzIiwibGlzdGVuIiwibWEiLCJsaXN0ZW5pbmdNdWx0aWFkZHIiLCJ0b09wdGlvbnMiLCJnZXRBZGRycyIsIm11bHRpYWRkcnMiLCJFcnJvciIsImlwZnNJZCIsImdldFBlZXJJZCIsInByb3RvcyIsInNvbWUiLCJwcm90byIsImNvZGUiLCJ3c1Byb3RvIiwibSIsImRlY2Fwc3VsYXRlIiwiZW5jYXBzdWxhdGUiLCJwb3J0IiwidG9TdHJpbmciLCJpbmNsdWRlcyIsIm5ldEludGVyZmFjZXMiLCJuZXR3b3JrSW50ZXJmYWNlcyIsIk9iamVjdCIsInZhbHVlcyIsImZvckVhY2giLCJuaUluZm9zIiwibmkiLCJmYW1pbHkiLCJwdXNoIiwicmVwbGFjZSIsImNyZWF0ZUxpc3RlbmVyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/websockets/dist/src/listener.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/@libp2p/websockets/dist/src/socket-to-conn.js":
/*!********************************************************************!*\
!*** ./node_modules/@libp2p/websockets/dist/src/socket-to-conn.js ***!
\********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ socketToMaConn: () => (/* binding */ socketToMaConn)\n/* harmony export */ });\n/* harmony import */ var _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @libp2p/interface */ \"(ssr)/./node_modules/@libp2p/interface/dist/src/errors.js\");\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants.js */ \"(ssr)/./node_modules/@libp2p/websockets/dist/src/constants.js\");\n\n\n// Convert a stream into a MultiaddrConnection\n// https://github.com/libp2p/interface-transport#multiaddrconnection\nfunction socketToMaConn(stream, remoteAddr, options) {\n const log = options.logger.forComponent(\"libp2p:websockets:maconn\");\n const maConn = {\n log,\n async sink (source) {\n try {\n await stream.sink(async function*() {\n for await (const buf of source){\n if (buf instanceof Uint8Array) {\n yield buf;\n } else {\n yield buf.subarray();\n }\n }\n }());\n } catch (err) {\n if (err.type !== \"aborted\") {\n log.error(err);\n }\n }\n },\n source: stream.source,\n remoteAddr,\n timeline: {\n open: Date.now()\n },\n async close (options = {}) {\n const start = Date.now();\n if (options.signal == null) {\n const signal = AbortSignal.timeout(_constants_js__WEBPACK_IMPORTED_MODULE_0__.CLOSE_TIMEOUT);\n options = {\n ...options,\n signal\n };\n }\n const listener = ()=>{\n const { host, port } = maConn.remoteAddr.toOptions();\n log(\"timeout closing stream to %s:%s after %dms, destroying it manually\", host, port, Date.now() - start);\n this.abort(new _libp2p_interface__WEBPACK_IMPORTED_MODULE_1__.CodeError(\"Socket close timeout\", \"ERR_SOCKET_CLOSE_TIMEOUT\"));\n };\n options.signal?.addEventListener(\"abort\", listener);\n try {\n await stream.close();\n } catch (err) {\n log.error(\"error closing WebSocket gracefully\", err);\n this.abort(err);\n } finally{\n options.signal?.removeEventListener(\"abort\", listener);\n maConn.timeline.close = Date.now();\n }\n },\n abort (err) {\n const { host, port } = maConn.remoteAddr.toOptions();\n log(\"timeout closing stream to %s:%s due to error\", host, port, err);\n stream.destroy();\n maConn.timeline.close = Date.now();\n }\n };\n stream.socket.addEventListener(\"close\", ()=>{\n // In instances where `close` was not explicitly called,\n // such as an iterable stream ending, ensure we have set the close\n // timeline\n if (maConn.timeline.close == null) {\n maConn.timeline.close = Date.now();\n }\n }, {\n once: true\n });\n return maConn;\n} //# sourceMappingURL=socket-to-conn.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQGxpYnAycC93ZWJzb2NrZXRzL2Rpc3Qvc3JjL3NvY2tldC10by1jb25uLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE4QztBQUNDO0FBQy9DLDhDQUE4QztBQUM5QyxvRUFBb0U7QUFDN0QsU0FBU0UsZUFBZUMsTUFBTSxFQUFFQyxVQUFVLEVBQUVDLE9BQU87SUFDdEQsTUFBTUMsTUFBTUQsUUFBUUUsTUFBTSxDQUFDQyxZQUFZLENBQUM7SUFDeEMsTUFBTUMsU0FBUztRQUNYSDtRQUNBLE1BQU1JLE1BQUtDLE1BQU07WUFDYixJQUFJO2dCQUNBLE1BQU1SLE9BQU9PLElBQUksQ0FBQztvQkFDZCxXQUFXLE1BQU1FLE9BQU9ELE9BQVE7d0JBQzVCLElBQUlDLGVBQWVDLFlBQVk7NEJBQzNCLE1BQU1EO3dCQUNWLE9BQ0s7NEJBQ0QsTUFBTUEsSUFBSUUsUUFBUTt3QkFDdEI7b0JBQ0o7Z0JBQ0o7WUFDSixFQUNBLE9BQU9DLEtBQUs7Z0JBQ1IsSUFBSUEsSUFBSUMsSUFBSSxLQUFLLFdBQVc7b0JBQ3hCVixJQUFJVyxLQUFLLENBQUNGO2dCQUNkO1lBQ0o7UUFDSjtRQUNBSixRQUFRUixPQUFPUSxNQUFNO1FBQ3JCUDtRQUNBYyxVQUFVO1lBQUVDLE1BQU1DLEtBQUtDLEdBQUc7UUFBRztRQUM3QixNQUFNQyxPQUFNakIsVUFBVSxDQUFDLENBQUM7WUFDcEIsTUFBTWtCLFFBQVFILEtBQUtDLEdBQUc7WUFDdEIsSUFBSWhCLFFBQVFtQixNQUFNLElBQUksTUFBTTtnQkFDeEIsTUFBTUEsU0FBU0MsWUFBWUMsT0FBTyxDQUFDekIsd0RBQWFBO2dCQUNoREksVUFBVTtvQkFDTixHQUFHQSxPQUFPO29CQUNWbUI7Z0JBQ0o7WUFDSjtZQUNBLE1BQU1HLFdBQVc7Z0JBQ2IsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRSxHQUFHcEIsT0FBT0wsVUFBVSxDQUFDMEIsU0FBUztnQkFDbER4QixJQUFJLHNFQUFzRXNCLE1BQU1DLE1BQU1ULEtBQUtDLEdBQUcsS0FBS0U7Z0JBQ25HLElBQUksQ0FBQ1EsS0FBSyxDQUFDLElBQUkvQix3REFBU0EsQ0FBQyx3QkFBd0I7WUFDckQ7WUFDQUssUUFBUW1CLE1BQU0sRUFBRVEsaUJBQWlCLFNBQVNMO1lBQzFDLElBQUk7Z0JBQ0EsTUFBTXhCLE9BQU9tQixLQUFLO1lBQ3RCLEVBQ0EsT0FBT1AsS0FBSztnQkFDUlQsSUFBSVcsS0FBSyxDQUFDLHNDQUFzQ0Y7Z0JBQ2hELElBQUksQ0FBQ2dCLEtBQUssQ0FBQ2hCO1lBQ2YsU0FDUTtnQkFDSlYsUUFBUW1CLE1BQU0sRUFBRVMsb0JBQW9CLFNBQVNOO2dCQUM3Q2xCLE9BQU9TLFFBQVEsQ0FBQ0ksS0FBSyxHQUFHRixLQUFLQyxHQUFHO1lBQ3BDO1FBQ0o7UUFDQVUsT0FBTWhCLEdBQUc7WUFDTCxNQUFNLEVBQUVhLElBQUksRUFBRUMsSUFBSSxFQUFFLEdBQUdwQixPQUFPTCxVQUFVLENBQUMwQixTQUFTO1lBQ2xEeEIsSUFBSSxnREFBZ0RzQixNQUFNQyxNQUFNZDtZQUNoRVosT0FBTytCLE9BQU87WUFDZHpCLE9BQU9TLFFBQVEsQ0FBQ0ksS0FBSyxHQUFHRixLQUFLQyxHQUFHO1FBQ3BDO0lBQ0o7SUFDQWxCLE9BQU9nQyxNQUFNLENBQUNILGdCQUFnQixDQUFDLFNBQVM7UUFDcEMsd0RBQXdEO1FBQ3hELGtFQUFrRTtRQUNsRSxXQUFXO1FBQ1gsSUFBSXZCLE9BQU9TLFFBQVEsQ0FBQ0ksS0FBSyxJQUFJLE1BQU07WUFDL0JiLE9BQU9TLFFBQVEsQ0FBQ0ksS0FBSyxHQUFHRixLQUFLQyxHQUFHO1FBQ3BDO0lBQ0osR0FBRztRQUFFZSxNQUFNO0lBQUs7SUFDaEIsT0FBTzNCO0FBQ1gsRUFDQSwwQ0FBMEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9AbGlicDJwL3dlYnNvY2tldHMvZGlzdC9zcmMvc29ja2V0LXRvLWNvbm4uanM/NzE0NSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2RlRXJyb3IgfSBmcm9tICdAbGlicDJwL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBDTE9TRV9USU1FT1VUIH0gZnJvbSAnLi9jb25zdGFudHMuanMnO1xuLy8gQ29udmVydCBhIHN0cmVhbSBpbnRvIGEgTXVsdGlhZGRyQ29ubmVjdGlvblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2xpYnAycC9pbnRlcmZhY2UtdHJhbnNwb3J0I211bHRpYWRkcmNvbm5lY3Rpb25cbmV4cG9ydCBmdW5jdGlvbiBzb2NrZXRUb01hQ29ubihzdHJlYW0sIHJlbW90ZUFkZHIsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBsb2cgPSBvcHRpb25zLmxvZ2dlci5mb3JDb21wb25lbnQoJ2xpYnAycDp3ZWJzb2NrZXRzOm1hY29ubicpO1xuICAgIGNvbnN0IG1hQ29ubiA9IHtcbiAgICAgICAgbG9nLFxuICAgICAgICBhc3luYyBzaW5rKHNvdXJjZSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBhd2FpdCBzdHJlYW0uc2luaygoYXN5bmMgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIGF3YWl0IChjb25zdCBidWYgb2Ygc291cmNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnVmIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIGJ1Zi5zdWJhcnJheSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSkoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVyci50eXBlICE9PSAnYWJvcnRlZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBzb3VyY2U6IHN0cmVhbS5zb3VyY2UsXG4gICAgICAgIHJlbW90ZUFkZHIsXG4gICAgICAgIHRpbWVsaW5lOiB7IG9wZW46IERhdGUubm93KCkgfSxcbiAgICAgICAgYXN5bmMgY2xvc2Uob3B0aW9ucyA9IHt9KSB7XG4gICAgICAgICAgICBjb25zdCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5zaWduYWwgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNpZ25hbCA9IEFib3J0U2lnbmFsLnRpbWVvdXQoQ0xPU0VfVElNRU9VVCk7XG4gICAgICAgICAgICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgc2lnbmFsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVyID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgaG9zdCwgcG9ydCB9ID0gbWFDb25uLnJlbW90ZUFkZHIudG9PcHRpb25zKCk7XG4gICAgICAgICAgICAgICAgbG9nKCd0aW1lb3V0IGNsb3Npbmcgc3RyZWFtIHRvICVzOiVzIGFmdGVyICVkbXMsIGRlc3Ryb3lpbmcgaXQgbWFudWFsbHknLCBob3N0LCBwb3J0LCBEYXRlLm5vdygpIC0gc3RhcnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWJvcnQobmV3IENvZGVFcnJvcignU29ja2V0IGNsb3NlIHRpbWVvdXQnLCAnRVJSX1NPQ0tFVF9DTE9TRV9USU1FT1VUJykpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIG9wdGlvbnMuc2lnbmFsPy5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsIGxpc3RlbmVyKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgc3RyZWFtLmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKCdlcnJvciBjbG9zaW5nIFdlYlNvY2tldCBncmFjZWZ1bGx5JywgZXJyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFib3J0KGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLnNpZ25hbD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBsaXN0ZW5lcik7XG4gICAgICAgICAgICAgICAgbWFDb25uLnRpbWVsaW5lLmNsb3NlID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgYWJvcnQoZXJyKSB7XG4gICAgICAgICAgICBjb25zdCB7IGhvc3QsIHBvcnQgfSA9IG1hQ29ubi5yZW1vdGVBZGRyLnRvT3B0aW9ucygpO1xuICAgICAgICAgICAgbG9nKCd0aW1lb3V0IGNsb3Npbmcgc3RyZWFtIHRvICVzOiVzIGR1ZSB0byBlcnJvcicsIGhvc3QsIHBvcnQsIGVycik7XG4gICAgICAgICAgICBzdHJlYW0uZGVzdHJveSgpO1xuICAgICAgICAgICAgbWFDb25uLnRpbWVsaW5lLmNsb3NlID0gRGF0ZS5ub3coKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgc3RyZWFtLnNvY2tldC5hZGRFdmVudExpc3RlbmVyKCdjbG9zZScsICgpID0+IHtcbiAgICAgICAgLy8gSW4gaW5zdGFuY2VzIHdoZXJlIGBjbG9zZWAgd2FzIG5vdCBleHBsaWNpdGx5IGNhbGxlZCxcbiAgICAgICAgLy8gc3VjaCBhcyBhbiBpdGVyYWJsZSBzdHJlYW0gZW5kaW5nLCBlbnN1cmUgd2UgaGF2ZSBzZXQgdGhlIGNsb3NlXG4gICAgICAgIC8vIHRpbWVsaW5lXG4gICAgICAgIGlmIChtYUNvbm4udGltZWxpbmUuY2xvc2UgPT0gbnVsbCkge1xuICAgICAgICAgICAgbWFDb25uLnRpbWVsaW5lLmNsb3NlID0gRGF0ZS5ub3coKTtcbiAgICAgICAgfVxuICAgIH0sIHsgb25jZTogdHJ1ZSB9KTtcbiAgICByZXR1cm4gbWFDb25uO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c29ja2V0LXRvLWNvbm4uanMubWFwIl0sIm5hbWVzIjpbIkNvZGVFcnJvciIsIkNMT1NFX1RJTUVPVVQiLCJzb2NrZXRUb01hQ29ubiIsInN0cmVhbSIsInJlbW90ZUFkZHIiLCJvcHRpb25zIiwibG9nIiwibG9nZ2VyIiwiZm9yQ29tcG9uZW50IiwibWFDb25uIiwic2luayIsInNvdXJjZSIsImJ1ZiIsIlVpbnQ4QXJyYXkiLCJzdWJhcnJheSIsImVyciIsInR5cGUiLCJlcnJvciIsInRpbWVsaW5lIiwib3BlbiIsIkRhdGUiLCJub3ciLCJjbG9zZSIsInN0YXJ0Iiwic2lnbmFsIiwiQWJvcnRTaWduYWwiLCJ0aW1lb3V0IiwibGlzdGVuZXIiLCJob3N0IiwicG9ydCIsInRvT3B0aW9ucyIsImFib3J0IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJkZXN0cm95Iiwic29ja2V0Iiwib25jZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@libp2p/websockets/dist/src/socket-to-conn.js\n");
/***/ })
};
;