@verified-network/verified-custody 0.1.8 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +6 -2
- package/dist/assets/icon128.png +0 -0
- package/dist/assets/icon16.png +0 -0
- package/dist/assets/icon32.png +0 -0
- package/dist/assets/icon48.png +0 -0
- package/dist/autoreload-bg.1777342b.js +0 -392
- package/dist/autoreload.af9e0afa.js +0 -393
- package/dist/manifest.json +0 -39
- package/dist/src/scripts/background.js +0 -866
- package/dist/src/scripts/content.js +0 -22029
- package/dist/src/static/options.b1269179.js +0 -22033
- package/dist/src/static/options.html +0 -9
- package/dist/src/static/popup.e3c8c7b7.js +0 -22043
- package/dist/src/static/popup.html +0 -9
- package/dist/webext-prod/assets/icon128.png +0 -0
- package/dist/webext-prod/assets/icon16.png +0 -0
- package/dist/webext-prod/assets/icon32.png +0 -0
- package/dist/webext-prod/assets/icon48.png +0 -0
- package/dist/webext-prod/manifest.json +0 -36
- package/dist/webext-prod/src/scripts/background.js +0 -2
- package/dist/webext-prod/src/scripts/background.js.map +0 -1
- package/dist/webext-prod/src/scripts/content.js +0 -35
- package/dist/webext-prod/src/scripts/content.js.map +0 -1
- package/dist/webext-prod/src/static/options.a111dcd9.js +0 -2
- package/dist/webext-prod/src/static/options.a111dcd9.js.map +0 -1
- package/dist/webext-prod/src/static/options.html +0 -1
- package/dist/webext-prod/src/static/popup.70071e3e.js +0 -35
- package/dist/webext-prod/src/static/popup.70071e3e.js.map +0 -1
- package/dist/webext-prod/src/static/popup.cc04f56e.js +0 -2
- package/dist/webext-prod/src/static/popup.cc04f56e.js.map +0 -1
- package/dist/webext-prod/src/static/popup.e8a65b8a.js +0 -35
- package/dist/webext-prod/src/static/popup.e8a65b8a.js.map +0 -1
- package/dist/webext-prod/src/static/popup.html +0 -1
package/package.json
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@verified-network/verified-custody",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"description": "React submodule for Custody of digital assets",
|
|
5
5
|
"main": "dist/main.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
8
8
|
"build": "webpack"
|
|
9
9
|
},
|
|
10
|
-
"files": [
|
|
10
|
+
"files": [
|
|
11
|
+
"dist"
|
|
12
|
+
],
|
|
11
13
|
"keywords": [],
|
|
12
14
|
"author": "",
|
|
13
15
|
"license": "MIT",
|
|
@@ -15,6 +17,8 @@
|
|
|
15
17
|
"@babel/core": "^7.24.5",
|
|
16
18
|
"@babel/preset-env": "^7.24.5",
|
|
17
19
|
"@babel/preset-react": "^7.24.1",
|
|
20
|
+
"@types/webextension-polyfill": "^0.12.3",
|
|
21
|
+
"webextension-polyfill": "^0.12.0",
|
|
18
22
|
"webpack": "^5.90.3",
|
|
19
23
|
"webpack-cli": "^5.1.4"
|
|
20
24
|
},
|
package/dist/assets/icon128.png
DELETED
|
Binary file
|
package/dist/assets/icon16.png
DELETED
|
Binary file
|
package/dist/assets/icon32.png
DELETED
|
Binary file
|
package/dist/assets/icon48.png
DELETED
|
Binary file
|
|
@@ -1,392 +0,0 @@
|
|
|
1
|
-
// modules are defined as an array
|
|
2
|
-
// [ module function, map of requires ]
|
|
3
|
-
//
|
|
4
|
-
// map of requires is short require name -> numeric require
|
|
5
|
-
//
|
|
6
|
-
// anything defined in a previous bundle is accessed via the
|
|
7
|
-
// orig method which is the require for previous bundles
|
|
8
|
-
|
|
9
|
-
(function(modules, entry, mainEntry, parcelRequireName, globalName) {
|
|
10
|
-
/* eslint-disable no-undef */
|
|
11
|
-
var globalObject =
|
|
12
|
-
typeof globalThis !== 'undefined'
|
|
13
|
-
? globalThis
|
|
14
|
-
: typeof self !== 'undefined'
|
|
15
|
-
? self
|
|
16
|
-
: typeof window !== 'undefined'
|
|
17
|
-
? window
|
|
18
|
-
: typeof global !== 'undefined'
|
|
19
|
-
? global
|
|
20
|
-
: {};
|
|
21
|
-
/* eslint-enable no-undef */
|
|
22
|
-
|
|
23
|
-
// Save the require from previous bundle to this closure if any
|
|
24
|
-
var previousRequire =
|
|
25
|
-
typeof globalObject[parcelRequireName] === 'function' &&
|
|
26
|
-
globalObject[parcelRequireName];
|
|
27
|
-
|
|
28
|
-
var cache = previousRequire.cache || {};
|
|
29
|
-
// Do not use `require` to prevent Webpack from trying to bundle this call
|
|
30
|
-
var nodeRequire =
|
|
31
|
-
typeof module !== 'undefined' &&
|
|
32
|
-
typeof module.require === 'function' &&
|
|
33
|
-
module.require.bind(module);
|
|
34
|
-
|
|
35
|
-
function newRequire(name, jumped) {
|
|
36
|
-
if (!cache[name]) {
|
|
37
|
-
if (!modules[name]) {
|
|
38
|
-
// if we cannot find the module within our internal map or
|
|
39
|
-
// cache jump to the current global require ie. the last bundle
|
|
40
|
-
// that was added to the page.
|
|
41
|
-
var currentRequire =
|
|
42
|
-
typeof globalObject[parcelRequireName] === 'function' &&
|
|
43
|
-
globalObject[parcelRequireName];
|
|
44
|
-
if (!jumped && currentRequire) {
|
|
45
|
-
return currentRequire(name, true);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// If there are other bundles on this page the require from the
|
|
49
|
-
// previous one is saved to 'previousRequire'. Repeat this as
|
|
50
|
-
// many times as there are bundles until the module is found or
|
|
51
|
-
// we exhaust the require chain.
|
|
52
|
-
if (previousRequire) {
|
|
53
|
-
return previousRequire(name, true);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// Try the node require function if it exists.
|
|
57
|
-
if (nodeRequire && typeof name === 'string') {
|
|
58
|
-
return nodeRequire(name);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
var err = new Error("Cannot find module '" + name + "'");
|
|
62
|
-
err.code = 'MODULE_NOT_FOUND';
|
|
63
|
-
throw err;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
localRequire.resolve = resolve;
|
|
67
|
-
localRequire.cache = {};
|
|
68
|
-
|
|
69
|
-
var module = (cache[name] = new newRequire.Module(name));
|
|
70
|
-
|
|
71
|
-
modules[name][0].call(
|
|
72
|
-
module.exports,
|
|
73
|
-
localRequire,
|
|
74
|
-
module,
|
|
75
|
-
module.exports,
|
|
76
|
-
this,
|
|
77
|
-
);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
return cache[name].exports;
|
|
81
|
-
|
|
82
|
-
function localRequire(x) {
|
|
83
|
-
return newRequire(localRequire.resolve(x));
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
function resolve(x) {
|
|
87
|
-
return modules[name][1][x] || x;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
function Module(moduleName) {
|
|
92
|
-
this.id = moduleName;
|
|
93
|
-
this.bundle = newRequire;
|
|
94
|
-
this.exports = {};
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
newRequire.isParcelRequire = true;
|
|
98
|
-
newRequire.Module = Module;
|
|
99
|
-
newRequire.modules = modules;
|
|
100
|
-
newRequire.cache = cache;
|
|
101
|
-
newRequire.parent = previousRequire;
|
|
102
|
-
newRequire.register = function(id, exports) {
|
|
103
|
-
modules[id] = [
|
|
104
|
-
function(require, module) {
|
|
105
|
-
module.exports = exports;
|
|
106
|
-
},
|
|
107
|
-
{},
|
|
108
|
-
];
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
Object.defineProperty(newRequire, 'root', {
|
|
112
|
-
get: function() {
|
|
113
|
-
return globalObject[parcelRequireName];
|
|
114
|
-
},
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
globalObject[parcelRequireName] = newRequire;
|
|
118
|
-
|
|
119
|
-
for (var i = 0; i < entry.length; i++) {
|
|
120
|
-
newRequire(entry[i]);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
if (mainEntry) {
|
|
124
|
-
// Expose entry point to Node, AMD or browser globals
|
|
125
|
-
// Based on https://github.com/ForbesLindesay/umd/blob/master/template.js
|
|
126
|
-
var mainExports = newRequire(mainEntry);
|
|
127
|
-
|
|
128
|
-
// CommonJS
|
|
129
|
-
if (typeof exports === 'object' && typeof module !== 'undefined') {
|
|
130
|
-
module.exports = mainExports;
|
|
131
|
-
|
|
132
|
-
// RequireJS
|
|
133
|
-
} else if (typeof define === 'function' && define.amd) {
|
|
134
|
-
define(function() {
|
|
135
|
-
return mainExports;
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
// <script>
|
|
139
|
-
} else if (globalName) {
|
|
140
|
-
this[globalName] = mainExports;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
})({"2LQkc":[function(require,module,exports) {
|
|
144
|
-
var HMR_HOST = "localhost";
|
|
145
|
-
var HMR_PORT = null;
|
|
146
|
-
var HMR_SECURE = false;
|
|
147
|
-
var HMR_ENV_HASH = "d751713988987e9331980363e24189ce";
|
|
148
|
-
module.bundle.HMR_BUNDLE_ID = "fea19916c1436d4f3e8a348b1777342b"; // @flow
|
|
149
|
-
/* global HMR_HOST, HMR_PORT, HMR_ENV_HASH, HMR_SECURE */ /*::
|
|
150
|
-
import type {
|
|
151
|
-
HMRAsset,
|
|
152
|
-
HMRMessage,
|
|
153
|
-
} from '@parcel/reporter-dev-server/src/HMRServer.js';
|
|
154
|
-
interface ParcelRequire {
|
|
155
|
-
(string): mixed;
|
|
156
|
-
cache: {|[string]: ParcelModule|};
|
|
157
|
-
hotData: mixed;
|
|
158
|
-
Module: any;
|
|
159
|
-
parent: ?ParcelRequire;
|
|
160
|
-
isParcelRequire: true;
|
|
161
|
-
modules: {|[string]: [Function, {|[string]: string|}]|};
|
|
162
|
-
HMR_BUNDLE_ID: string;
|
|
163
|
-
root: ParcelRequire;
|
|
164
|
-
}
|
|
165
|
-
interface ParcelModule {
|
|
166
|
-
hot: {|
|
|
167
|
-
data: mixed,
|
|
168
|
-
accept(cb: (Function) => void): void,
|
|
169
|
-
dispose(cb: (mixed) => void): void,
|
|
170
|
-
// accept(deps: Array<string> | string, cb: (Function) => void): void,
|
|
171
|
-
// decline(): void,
|
|
172
|
-
_acceptCallbacks: Array<(Function) => void>,
|
|
173
|
-
_disposeCallbacks: Array<(mixed) => void>,
|
|
174
|
-
|};
|
|
175
|
-
}
|
|
176
|
-
declare var module: {bundle: ParcelRequire, ...};
|
|
177
|
-
declare var HMR_HOST: string;
|
|
178
|
-
declare var HMR_PORT: string;
|
|
179
|
-
declare var HMR_ENV_HASH: string;
|
|
180
|
-
declare var HMR_SECURE: boolean;
|
|
181
|
-
*/ var OVERLAY_ID = '__parcel__error__overlay__';
|
|
182
|
-
var OldModule = module.bundle.Module;
|
|
183
|
-
function Module(moduleName) {
|
|
184
|
-
OldModule.call(this, moduleName);
|
|
185
|
-
this.hot = {
|
|
186
|
-
data: module.bundle.hotData,
|
|
187
|
-
_acceptCallbacks: [],
|
|
188
|
-
_disposeCallbacks: [],
|
|
189
|
-
accept: function(fn) {
|
|
190
|
-
this._acceptCallbacks.push(fn || function() {
|
|
191
|
-
});
|
|
192
|
-
},
|
|
193
|
-
dispose: function(fn) {
|
|
194
|
-
this._disposeCallbacks.push(fn);
|
|
195
|
-
}
|
|
196
|
-
};
|
|
197
|
-
module.bundle.hotData = undefined;
|
|
198
|
-
}
|
|
199
|
-
module.bundle.Module = Module;
|
|
200
|
-
var checkedAssets/*: {|[string]: boolean|} */ , acceptedAssets/*: {|[string]: boolean|} */ , assetsToAccept/*: Array<[ParcelRequire, string]> */ ;
|
|
201
|
-
function getHostname() {
|
|
202
|
-
return HMR_HOST || (location.protocol.indexOf('http') === 0 ? location.hostname : 'localhost');
|
|
203
|
-
}
|
|
204
|
-
function getPort() {
|
|
205
|
-
return HMR_PORT || location.port;
|
|
206
|
-
}
|
|
207
|
-
// eslint-disable-next-line no-redeclare
|
|
208
|
-
var parent = module.bundle.parent;
|
|
209
|
-
if ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {
|
|
210
|
-
var hostname = getHostname();
|
|
211
|
-
var port = getPort();
|
|
212
|
-
var protocol = HMR_SECURE || location.protocol == 'https:' && !/localhost|127.0.0.1|0.0.0.0/.test(hostname) ? 'wss' : 'ws';
|
|
213
|
-
var ws = new WebSocket(protocol + '://' + hostname + (port ? ':' + port : '') + '/');
|
|
214
|
-
// $FlowFixMe
|
|
215
|
-
ws.onmessage = function(event/*: {data: string, ...} */ ) {
|
|
216
|
-
checkedAssets = {
|
|
217
|
-
};
|
|
218
|
-
acceptedAssets = {
|
|
219
|
-
};
|
|
220
|
-
assetsToAccept = [];
|
|
221
|
-
var data = JSON.parse(event.data);
|
|
222
|
-
if (data.type === 'update') {
|
|
223
|
-
// Remove error overlay if there is one
|
|
224
|
-
removeErrorOverlay();
|
|
225
|
-
let assets = data.assets.filter((asset)=>asset.envHash === HMR_ENV_HASH
|
|
226
|
-
);
|
|
227
|
-
// Handle HMR Update
|
|
228
|
-
var handled = false;
|
|
229
|
-
assets.forEach((asset)=>{
|
|
230
|
-
var didAccept = asset.type === 'css' || asset.type === 'js' && hmrAcceptCheck(module.bundle.root, asset.id, asset.depsByBundle);
|
|
231
|
-
if (didAccept) handled = true;
|
|
232
|
-
});
|
|
233
|
-
if (handled) {
|
|
234
|
-
console.clear();
|
|
235
|
-
assets.forEach(function(asset) {
|
|
236
|
-
hmrApply(module.bundle.root, asset);
|
|
237
|
-
});
|
|
238
|
-
for(var i = 0; i < assetsToAccept.length; i++){
|
|
239
|
-
var id = assetsToAccept[i][1];
|
|
240
|
-
if (!acceptedAssets[id]) hmrAcceptRun(assetsToAccept[i][0], id);
|
|
241
|
-
}
|
|
242
|
-
} else window.location.reload();
|
|
243
|
-
}
|
|
244
|
-
if (data.type === 'error') {
|
|
245
|
-
// Log parcel errors to console
|
|
246
|
-
for (let ansiDiagnostic of data.diagnostics.ansi){
|
|
247
|
-
let stack = ansiDiagnostic.codeframe ? ansiDiagnostic.codeframe : ansiDiagnostic.stack;
|
|
248
|
-
console.error('🚨 [parcel]: ' + ansiDiagnostic.message + '\n' + stack + '\n\n' + ansiDiagnostic.hints.join('\n'));
|
|
249
|
-
}
|
|
250
|
-
// Render the fancy html overlay
|
|
251
|
-
removeErrorOverlay();
|
|
252
|
-
var overlay = createErrorOverlay(data.diagnostics.html);
|
|
253
|
-
// $FlowFixMe
|
|
254
|
-
document.body.appendChild(overlay);
|
|
255
|
-
}
|
|
256
|
-
};
|
|
257
|
-
ws.onerror = function(e) {
|
|
258
|
-
console.error(e.message);
|
|
259
|
-
};
|
|
260
|
-
ws.onclose = function(e) {
|
|
261
|
-
console.warn('[parcel] 🚨 Connection to the HMR server was lost');
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
function removeErrorOverlay() {
|
|
265
|
-
var overlay = document.getElementById(OVERLAY_ID);
|
|
266
|
-
if (overlay) {
|
|
267
|
-
overlay.remove();
|
|
268
|
-
console.log('[parcel] ✨ Error resolved');
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
function createErrorOverlay(diagnostics) {
|
|
272
|
-
var overlay = document.createElement('div');
|
|
273
|
-
overlay.id = OVERLAY_ID;
|
|
274
|
-
let errorHTML = '<div style="background: black; opacity: 0.85; font-size: 16px; color: white; position: fixed; height: 100%; width: 100%; top: 0px; left: 0px; padding: 30px; font-family: Menlo, Consolas, monospace; z-index: 9999;">';
|
|
275
|
-
for (let diagnostic of diagnostics){
|
|
276
|
-
let stack = diagnostic.codeframe ? diagnostic.codeframe : diagnostic.stack;
|
|
277
|
-
errorHTML += `\n <div>\n <div style="font-size: 18px; font-weight: bold; margin-top: 20px;">\n 🚨 ${diagnostic.message}\n </div>\n <pre>\n ${stack}\n </pre>\n <div>\n ${diagnostic.hints.map((hint)=>'<div>' + hint + '</div>'
|
|
278
|
-
).join('')}\n </div>\n </div>\n `;
|
|
279
|
-
}
|
|
280
|
-
errorHTML += '</div>';
|
|
281
|
-
overlay.innerHTML = errorHTML;
|
|
282
|
-
return overlay;
|
|
283
|
-
}
|
|
284
|
-
function getParents(bundle, id) /*: Array<[ParcelRequire, string]> */ {
|
|
285
|
-
var modules = bundle.modules;
|
|
286
|
-
if (!modules) return [];
|
|
287
|
-
var parents = [];
|
|
288
|
-
var k, d, dep;
|
|
289
|
-
for(k in modules)for(d in modules[k][1]){
|
|
290
|
-
dep = modules[k][1][d];
|
|
291
|
-
if (dep === id || Array.isArray(dep) && dep[dep.length - 1] === id) parents.push([
|
|
292
|
-
bundle,
|
|
293
|
-
k
|
|
294
|
-
]);
|
|
295
|
-
}
|
|
296
|
-
if (bundle.parent) parents = parents.concat(getParents(bundle.parent, id));
|
|
297
|
-
return parents;
|
|
298
|
-
}
|
|
299
|
-
function updateLink(link) {
|
|
300
|
-
var newLink = link.cloneNode();
|
|
301
|
-
newLink.onload = function() {
|
|
302
|
-
if (link.parentNode !== null) // $FlowFixMe
|
|
303
|
-
link.parentNode.removeChild(link);
|
|
304
|
-
};
|
|
305
|
-
newLink.setAttribute('href', // $FlowFixMe
|
|
306
|
-
link.getAttribute('href').split('?')[0] + '?' + Date.now());
|
|
307
|
-
// $FlowFixMe
|
|
308
|
-
link.parentNode.insertBefore(newLink, link.nextSibling);
|
|
309
|
-
}
|
|
310
|
-
var cssTimeout = null;
|
|
311
|
-
function reloadCSS() {
|
|
312
|
-
if (cssTimeout) return;
|
|
313
|
-
cssTimeout = setTimeout(function() {
|
|
314
|
-
var links = document.querySelectorAll('link[rel="stylesheet"]');
|
|
315
|
-
for(var i = 0; i < links.length; i++){
|
|
316
|
-
// $FlowFixMe[incompatible-type]
|
|
317
|
-
var href = links[i].getAttribute('href');
|
|
318
|
-
var hostname = getHostname();
|
|
319
|
-
var servedFromHMRServer = hostname === 'localhost' ? new RegExp('^(https?:\\/\\/(0.0.0.0|127.0.0.1)|localhost):' + getPort()).test(href) : href.indexOf(hostname + ':' + getPort());
|
|
320
|
-
var absolute = /^https?:\/\//i.test(href) && href.indexOf(window.location.origin) !== 0 && !servedFromHMRServer;
|
|
321
|
-
if (!absolute) updateLink(links[i]);
|
|
322
|
-
}
|
|
323
|
-
cssTimeout = null;
|
|
324
|
-
}, 50);
|
|
325
|
-
}
|
|
326
|
-
function hmrApply(bundle/*: ParcelRequire */ , asset/*: HMRAsset */ ) {
|
|
327
|
-
var modules = bundle.modules;
|
|
328
|
-
if (!modules) return;
|
|
329
|
-
if (asset.type === 'css') {
|
|
330
|
-
reloadCSS();
|
|
331
|
-
return;
|
|
332
|
-
}
|
|
333
|
-
let deps = asset.depsByBundle[bundle.HMR_BUNDLE_ID];
|
|
334
|
-
if (deps) {
|
|
335
|
-
var fn = new Function('require', 'module', 'exports', asset.output);
|
|
336
|
-
modules[asset.id] = [
|
|
337
|
-
fn,
|
|
338
|
-
deps
|
|
339
|
-
];
|
|
340
|
-
} else if (bundle.parent) hmrApply(bundle.parent, asset);
|
|
341
|
-
}
|
|
342
|
-
function hmrAcceptCheck(bundle/*: ParcelRequire */ , id/*: string */ , depsByBundle/*: ?{ [string]: { [string]: string } }*/ ) {
|
|
343
|
-
var modules = bundle.modules;
|
|
344
|
-
if (!modules) return;
|
|
345
|
-
if (depsByBundle && !depsByBundle[bundle.HMR_BUNDLE_ID]) {
|
|
346
|
-
// If we reached the root bundle without finding where the asset should go,
|
|
347
|
-
// there's nothing to do. Mark as "accepted" so we don't reload the page.
|
|
348
|
-
if (!bundle.parent) return true;
|
|
349
|
-
return hmrAcceptCheck(bundle.parent, id, depsByBundle);
|
|
350
|
-
}
|
|
351
|
-
if (checkedAssets[id]) return;
|
|
352
|
-
checkedAssets[id] = true;
|
|
353
|
-
var cached = bundle.cache[id];
|
|
354
|
-
assetsToAccept.push([
|
|
355
|
-
bundle,
|
|
356
|
-
id
|
|
357
|
-
]);
|
|
358
|
-
if (cached && cached.hot && cached.hot._acceptCallbacks.length) return true;
|
|
359
|
-
return getParents(module.bundle.root, id).some(function(v) {
|
|
360
|
-
return hmrAcceptCheck(v[0], v[1], null);
|
|
361
|
-
});
|
|
362
|
-
}
|
|
363
|
-
function hmrAcceptRun(bundle/*: ParcelRequire */ , id/*: string */ ) {
|
|
364
|
-
var cached = bundle.cache[id];
|
|
365
|
-
bundle.hotData = {
|
|
366
|
-
};
|
|
367
|
-
if (cached && cached.hot) cached.hot.data = bundle.hotData;
|
|
368
|
-
if (cached && cached.hot && cached.hot._disposeCallbacks.length) cached.hot._disposeCallbacks.forEach(function(cb) {
|
|
369
|
-
cb(bundle.hotData);
|
|
370
|
-
});
|
|
371
|
-
delete bundle.cache[id];
|
|
372
|
-
bundle(id);
|
|
373
|
-
cached = bundle.cache[id];
|
|
374
|
-
if (cached && cached.hot && cached.hot._acceptCallbacks.length) cached.hot._acceptCallbacks.forEach(function(cb) {
|
|
375
|
-
var assetsToAlsoAccept = cb(function() {
|
|
376
|
-
return getParents(module.bundle.root, id);
|
|
377
|
-
});
|
|
378
|
-
if (assetsToAlsoAccept && assetsToAccept.length) assetsToAccept.push.apply(assetsToAccept, assetsToAlsoAccept);
|
|
379
|
-
});
|
|
380
|
-
acceptedAssets[id] = true;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
},{}],"2F2EN":[function(require,module,exports) {
|
|
384
|
-
"use strict";
|
|
385
|
-
/* global window */ var env = window.chrome || window.browser;
|
|
386
|
-
env.runtime.onMessage.addListener(function(msg) {
|
|
387
|
-
if (msg.__parcel_hmr_reload__) env.runtime.reload();
|
|
388
|
-
});
|
|
389
|
-
|
|
390
|
-
},{}]},["2LQkc","2F2EN"], "2F2EN", "parcelRequire5c9f")
|
|
391
|
-
|
|
392
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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R0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUM1RCxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sVUFBVSxFQUFFO1lBQ3pDLGtCQUFrQixHQUFHLEVBQUU7bUJBQ2xCLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFOztZQUV0QyxrQkFBa0IsSUFBSSxjQUFjLENBQUMsTUFBTSxFQUM3QyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsa0JBQWtCOztJQUlsRSxjQUFjLENBQUMsRUFBRSxJQUFJLElBQUk7Ozs7Q0M3VzNCLFVBQVk7QUFFWixFQUFBLGVBQUEsRUFBbUIsS0FDZixHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsT0FBTztBQUN6QyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLFVBQVcsR0FBRztRQUN6QyxHQUFHLENBQUMscUJBQXFCLEVBQzNCLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL0BwYXJjZWwvY29uZmlnLXdlYmV4dGVuc2lvbi9ub2RlX21vZHVsZXMvQHBhcmNlbC9ydW50aW1lLWJyb3dzZXItaG1yL2xpYi9ydW50aW1lLTE3NjhkMmNiZTEzOTE0NGY1MzNjZGRiMzlmZmJmMjk4LmpzIiwibm9kZV9tb2R1bGVzL0BwYXJjZWwvdHJhbnNmb3JtZXItd2ViZXh0ZW5zaW9uL2xpYi9ydW50aW1lL2F1dG9yZWxvYWQtYmcuanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIEhNUl9IT1NUID0gXCJsb2NhbGhvc3RcIjt2YXIgSE1SX1BPUlQgPSBudWxsO3ZhciBITVJfU0VDVVJFID0gZmFsc2U7dmFyIEhNUl9FTlZfSEFTSCA9IFwiZDc1MTcxMzk4ODk4N2U5MzMxOTgwMzYzZTI0MTg5Y2VcIjttb2R1bGUuYnVuZGxlLkhNUl9CVU5ETEVfSUQgPSBcImZlYTE5OTE2YzE0MzZkNGYzZThhMzQ4YjE3NzczNDJiXCI7Ly8gQGZsb3dcbi8qIGdsb2JhbCBITVJfSE9TVCwgSE1SX1BPUlQsIEhNUl9FTlZfSEFTSCwgSE1SX1NFQ1VSRSAqL1xuXG4vKjo6XG5pbXBvcnQgdHlwZSB7XG4gIEhNUkFzc2V0LFxuICBITVJNZXNzYWdlLFxufSBmcm9tICdAcGFyY2VsL3JlcG9ydGVyLWRldi1zZXJ2ZXIvc3JjL0hNUlNlcnZlci5qcyc7XG5pbnRlcmZhY2UgUGFyY2VsUmVxdWlyZSB7XG4gIChzdHJpbmcpOiBtaXhlZDtcbiAgY2FjaGU6IHt8W3N0cmluZ106IFBhcmNlbE1vZHVsZXx9O1xuICBob3REYXRhOiBtaXhlZDtcbiAgTW9kdWxlOiBhbnk7XG4gIHBhcmVudDogP1BhcmNlbFJlcXVpcmU7XG4gIGlzUGFyY2VsUmVxdWlyZTogdHJ1ZTtcbiAgbW9kdWxlczoge3xbc3RyaW5nXTogW0Z1bmN0aW9uLCB7fFtzdHJpbmddOiBzdHJpbmd8fV18fTtcbiAgSE1SX0JVTkRMRV9JRDogc3RyaW5nO1xuICByb290OiBQYXJjZWxSZXF1aXJlO1xufVxuaW50ZXJmYWNlIFBhcmNlbE1vZHVsZSB7XG4gIGhvdDoge3xcbiAgICBkYXRhOiBtaXhlZCxcbiAgICBhY2NlcHQoY2I6IChGdW5jdGlvbikgPT4gdm9pZCk6IHZvaWQsXG4gICAgZGlzcG9zZShjYjogKG1peGVkKSA9PiB2b2lkKTogdm9pZCxcbiAgICAvLyBhY2NlcHQoZGVwczogQXJyYXk8c3RyaW5nPiB8IHN0cmluZywgY2I6IChGdW5jdGlvbikgPT4gdm9pZCk6IHZvaWQsXG4gICAgLy8gZGVjbGluZSgpOiB2b2lkLFxuICAgIF9hY2NlcHRDYWxsYmFja3M6IEFycmF5PChGdW5jdGlvbikgPT4gdm9pZD4sXG4gICAgX2Rpc3Bvc2VDYWxsYmFja3M6IEFycmF5PChtaXhlZCkgPT4gdm9pZD4sXG4gIHx9O1xufVxuZGVjbGFyZSB2YXIgbW9kdWxlOiB7YnVuZGxlOiBQYXJjZWxSZXF1aXJlLCAuLi59O1xuZGVjbGFyZSB2YXIgSE1SX0hPU1Q6IHN0cmluZztcbmRlY2xhcmUgdmFyIEhNUl9QT1JUOiBzdHJpbmc7XG5kZWNsYXJlIHZhciBITVJfRU5WX0hBU0g6IHN0cmluZztcbmRlY2xhcmUgdmFyIEhNUl9TRUNVUkU6IGJvb2xlYW47XG4qL1xuXG52YXIgT1ZFUkxBWV9JRCA9ICdfX3BhcmNlbF9fZXJyb3JfX292ZXJsYXlfXyc7XG5cbnZhciBPbGRNb2R1bGUgPSBtb2R1bGUuYnVuZGxlLk1vZHVsZTtcblxuZnVuY3Rpb24gTW9kdWxlKG1vZHVsZU5hbWUpIHtcbiAgT2xkTW9kdWxlLmNhbGwodGhpcywgbW9kdWxlTmFtZSk7XG4gIHRoaXMuaG90ID0ge1xuICAgIGRhdGE6IG1vZHVsZS5idW5kbGUuaG90RGF0YSxcbiAgICBfYWNjZXB0Q2FsbGJhY2tzOiBbXSxcbiAgICBfZGlzcG9zZUNhbGxiYWNrczogW10sXG4gICAgYWNjZXB0OiBmdW5jdGlvbihmbikge1xuICAgICAgdGhpcy5fYWNjZXB0Q2FsbGJhY2tzLnB1c2goZm4gfHwgZnVuY3Rpb24oKSB7fSk7XG4gICAgfSxcbiAgICBkaXNwb3NlOiBmdW5jdGlvbihmbikge1xuICAgICAgdGhpcy5fZGlzcG9zZUNhbGxiYWNrcy5wdXNoKGZuKTtcbiAgICB9LFxuICB9O1xuICBtb2R1bGUuYnVuZGxlLmhvdERhdGEgPSB1bmRlZmluZWQ7XG59XG5tb2R1bGUuYnVuZGxlLk1vZHVsZSA9IE1vZHVsZTtcblxudmFyIGNoZWNrZWRBc3NldHMgLyo6IHt8W3N0cmluZ106IGJvb2xlYW58fSAqLyxcbiAgYWNjZXB0ZWRBc3NldHMgLyo6IHt8W3N0cmluZ106IGJvb2xlYW58fSAqLyxcbiAgYXNzZXRzVG9BY2NlcHQgLyo6IEFycmF5PFtQYXJjZWxSZXF1aXJlLCBzdHJpbmddPiAqLztcblxuZnVuY3Rpb24gZ2V0SG9zdG5hbWUoKSB7XG4gIHJldHVybiAoXG4gICAgSE1SX0hPU1QgfHxcbiAgICAobG9jYXRpb24ucHJvdG9jb2wuaW5kZXhPZignaHR0cCcpID09PSAwID8gbG9jYXRpb24uaG9zdG5hbWUgOiAnbG9jYWxob3N0JylcbiAgKTtcbn1cblxuZnVuY3Rpb24gZ2V0UG9ydCgpIHtcbiAgcmV0dXJuIEhNUl9QT1JUIHx8IGxvY2F0aW9uLnBvcnQ7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZWRlY2xhcmVcbnZhciBwYXJlbnQgPSBtb2R1bGUuYnVuZGxlLnBhcmVudDtcbmlmICgoIXBhcmVudCB8fCAhcGFyZW50LmlzUGFyY2VsUmVxdWlyZSkgJiYgdHlwZW9mIFdlYlNvY2tldCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgdmFyIGhvc3RuYW1lID0gZ2V0SG9zdG5hbWUoKTtcbiAgdmFyIHBvcnQgPSBnZXRQb3J0KCk7XG4gIHZhciBwcm90b2NvbCA9XG4gICAgSE1SX1NFQ1VSRSB8fFxuICAgIChsb2NhdGlvbi5wcm90b2NvbCA9PSAnaHR0cHM6JyAmJlxuICAgICAgIS9sb2NhbGhvc3R8MTI3LjAuMC4xfDAuMC4wLjAvLnRlc3QoaG9zdG5hbWUpKVxuICAgICAgPyAnd3NzJ1xuICAgICAgOiAnd3MnO1xuICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KFxuICAgIHByb3RvY29sICsgJzovLycgKyBob3N0bmFtZSArIChwb3J0ID8gJzonICsgcG9ydCA6ICcnKSArICcvJyxcbiAgKTtcbiAgLy8gJEZsb3dGaXhNZVxuICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCAvKjoge2RhdGE6IHN0cmluZywgLi4ufSAqLykge1xuICAgIGNoZWNrZWRBc3NldHMgPSAoe30gLyo6IHt8W3N0cmluZ106IGJvb2xlYW58fSAqLyk7XG4gICAgYWNjZXB0ZWRBc3NldHMgPSAoe30gLyo6IHt8W3N0cmluZ106IGJvb2xlYW58fSAqLyk7XG4gICAgYXNzZXRzVG9BY2NlcHQgPSBbXTtcblxuICAgIHZhciBkYXRhIC8qOiBITVJNZXNzYWdlICovID0gSlNPTi5wYXJzZShldmVudC5kYXRhKTtcblxuICAgIGlmIChkYXRhLnR5cGUgPT09ICd1cGRhdGUnKSB7XG4gICAgICAvLyBSZW1vdmUgZXJyb3Igb3ZlcmxheSBpZiB0aGVyZSBpcyBvbmVcbiAgICAgIHJlbW92ZUVycm9yT3ZlcmxheSgpO1xuXG4gICAgICBsZXQgYXNzZXRzID0gZGF0YS5hc3NldHMuZmlsdGVyKGFzc2V0ID0+IGFzc2V0LmVudkhhc2ggPT09IEhNUl9FTlZfSEFTSCk7XG5cbiAgICAgIC8vIEhhbmRsZSBITVIgVXBkYXRlXG4gICAgICB2YXIgaGFuZGxlZCA9IGZhbHNlO1xuICAgICAgYXNzZXRzLmZvckVhY2goYXNzZXQgPT4ge1xuICAgICAgICB2YXIgZGlkQWNjZXB0ID1cbiAgICAgICAgICBhc3NldC50eXBlID09PSAnY3NzJyB8fFxuICAgICAgICAgIChhc3NldC50eXBlID09PSAnanMnICYmXG4gICAgICAgICAgICBobXJBY2NlcHRDaGVjayhtb2R1bGUuYnVuZGxlLnJvb3QsIGFzc2V0LmlkLCBhc3NldC5kZXBzQnlCdW5kbGUpKTtcbiAgICAgICAgaWYgKGRpZEFjY2VwdCkge1xuICAgICAgICAgIGhhbmRsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKGhhbmRsZWQpIHtcbiAgICAgICAgY29uc29sZS5jbGVhcigpO1xuXG4gICAgICAgIGFzc2V0cy5mb3JFYWNoKGZ1bmN0aW9uKGFzc2V0KSB7XG4gICAgICAgICAgaG1yQXBwbHkobW9kdWxlLmJ1bmRsZS5yb290LCBhc3NldCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXNzZXRzVG9BY2NlcHQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB2YXIgaWQgPSBhc3NldHNUb0FjY2VwdFtpXVsxXTtcbiAgICAgICAgICBpZiAoIWFjY2VwdGVkQXNzZXRzW2lkXSkge1xuICAgICAgICAgICAgaG1yQWNjZXB0UnVuKGFzc2V0c1RvQWNjZXB0W2ldWzBdLCBpZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRhdGEudHlwZSA9PT0gJ2Vycm9yJykge1xuICAgICAgLy8gTG9nIHBhcmNlbCBlcnJvcnMgdG8gY29uc29sZVxuICAgICAgZm9yIChsZXQgYW5zaURpYWdub3N0aWMgb2YgZGF0YS5kaWFnbm9zdGljcy5hbnNpKSB7XG4gICAgICAgIGxldCBzdGFjayA9IGFuc2lEaWFnbm9zdGljLmNvZGVmcmFtZVxuICAgICAgICAgID8gYW5zaURpYWdub3N0aWMuY29kZWZyYW1lXG4gICAgICAgICAgOiBhbnNpRGlhZ25vc3RpYy5zdGFjaztcblxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICfwn5qoIFtwYXJjZWxdOiAnICtcbiAgICAgICAgICAgIGFuc2lEaWFnbm9zdGljLm1lc3NhZ2UgK1xuICAgICAgICAgICAgJ1xcbicgK1xuICAgICAgICAgICAgc3RhY2sgK1xuICAgICAgICAgICAgJ1xcblxcbicgK1xuICAgICAgICAgICAgYW5zaURpYWdub3N0aWMuaGludHMuam9pbignXFxuJyksXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlbmRlciB0aGUgZmFuY3kgaHRtbCBvdmVybGF5XG4gICAgICByZW1vdmVFcnJvck92ZXJsYXkoKTtcbiAgICAgIHZhciBvdmVybGF5ID0gY3JlYXRlRXJyb3JPdmVybGF5KGRhdGEuZGlhZ25vc3RpY3MuaHRtbCk7XG4gICAgICAvLyAkRmxvd0ZpeE1lXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG92ZXJsYXkpO1xuICAgIH1cbiAgfTtcbiAgd3Mub25lcnJvciA9IGZ1bmN0aW9uKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKGUubWVzc2FnZSk7XG4gIH07XG4gIHdzLm9uY2xvc2UgPSBmdW5jdGlvbihlKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52LlBBUkNFTF9CVUlMRF9FTlYgIT09ICd0ZXN0Jykge1xuICAgICAgY29uc29sZS53YXJuKCdbcGFyY2VsXSDwn5qoIENvbm5lY3Rpb24gdG8gdGhlIEhNUiBzZXJ2ZXIgd2FzIGxvc3QnKTtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUVycm9yT3ZlcmxheSgpIHtcbiAgdmFyIG92ZXJsYXkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChPVkVSTEFZX0lEKTtcbiAgaWYgKG92ZXJsYXkpIHtcbiAgICBvdmVybGF5LnJlbW92ZSgpO1xuICAgIGNvbnNvbGUubG9nKCdbcGFyY2VsXSDinKggRXJyb3IgcmVzb2x2ZWQnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVFcnJvck92ZXJsYXkoZGlhZ25vc3RpY3MpIHtcbiAgdmFyIG92ZXJsYXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgb3ZlcmxheS5pZCA9IE9WRVJMQVlfSUQ7XG5cbiAgbGV0IGVycm9ySFRNTCA9XG4gICAgJzxkaXYgc3R5bGU9XCJiYWNrZ3JvdW5kOiBibGFjazsgb3BhY2l0eTogMC44NTsgZm9udC1zaXplOiAxNnB4OyBjb2xvcjogd2hpdGU7IHBvc2l0aW9uOiBmaXhlZDsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgdG9wOiAwcHg7IGxlZnQ6IDBweDsgcGFkZGluZzogMzBweDsgZm9udC1mYW1pbHk6IE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlOyB6LWluZGV4OiA5OTk5O1wiPic7XG5cbiAgZm9yIChsZXQgZGlhZ25vc3RpYyBvZiBkaWFnbm9zdGljcykge1xuICAgIGxldCBzdGFjayA9IGRpYWdub3N0aWMuY29kZWZyYW1lID8gZGlhZ25vc3RpYy5jb2RlZnJhbWUgOiBkaWFnbm9zdGljLnN0YWNrO1xuXG4gICAgZXJyb3JIVE1MICs9IGBcbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJmb250LXNpemU6IDE4cHg7IGZvbnQtd2VpZ2h0OiBib2xkOyBtYXJnaW4tdG9wOiAyMHB4O1wiPlxuICAgICAgICAgIPCfmqggJHtkaWFnbm9zdGljLm1lc3NhZ2V9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8cHJlPlxuICAgICAgICAgICR7c3RhY2t9XG4gICAgICAgIDwvcHJlPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICR7ZGlhZ25vc3RpYy5oaW50cy5tYXAoaGludCA9PiAnPGRpdj4nICsgaGludCArICc8L2Rpdj4nKS5qb2luKCcnKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgZXJyb3JIVE1MICs9ICc8L2Rpdj4nO1xuXG4gIG92ZXJsYXkuaW5uZXJIVE1MID0gZXJyb3JIVE1MO1xuXG4gIHJldHVybiBvdmVybGF5O1xufVxuXG5mdW5jdGlvbiBnZXRQYXJlbnRzKGJ1bmRsZSwgaWQpIC8qOiBBcnJheTxbUGFyY2VsUmVxdWlyZSwgc3RyaW5nXT4gKi8ge1xuICB2YXIgbW9kdWxlcyA9IGJ1bmRsZS5tb2R1bGVzO1xuICBpZiAoIW1vZHVsZXMpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICB2YXIgcGFyZW50cyA9IFtdO1xuICB2YXIgaywgZCwgZGVwO1xuXG4gIGZvciAoayBpbiBtb2R1bGVzKSB7XG4gICAgZm9yIChkIGluIG1vZHVsZXNba11bMV0pIHtcbiAgICAgIGRlcCA9IG1vZHVsZXNba11bMV1bZF07XG5cbiAgICAgIGlmIChkZXAgPT09IGlkIHx8IChBcnJheS5pc0FycmF5KGRlcCkgJiYgZGVwW2RlcC5sZW5ndGggLSAxXSA9PT0gaWQpKSB7XG4gICAgICAgIHBhcmVudHMucHVzaChbYnVuZGxlLCBrXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKGJ1bmRsZS5wYXJlbnQpIHtcbiAgICBwYXJlbnRzID0gcGFyZW50cy5jb25jYXQoZ2V0UGFyZW50cyhidW5kbGUucGFyZW50LCBpZCkpO1xuICB9XG5cbiAgcmV0dXJuIHBhcmVudHM7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUxpbmsobGluaykge1xuICB2YXIgbmV3TGluayA9IGxpbmsuY2xvbmVOb2RlKCk7XG4gIG5ld0xpbmsub25sb2FkID0gZnVuY3Rpb24oKSB7XG4gICAgaWYgKGxpbmsucGFyZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgICAgLy8gJEZsb3dGaXhNZVxuICAgICAgbGluay5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGxpbmspO1xuICAgIH1cbiAgfTtcbiAgbmV3TGluay5zZXRBdHRyaWJ1dGUoXG4gICAgJ2hyZWYnLFxuICAgIC8vICRGbG93Rml4TWVcbiAgICBsaW5rLmdldEF0dHJpYnV0ZSgnaHJlZicpLnNwbGl0KCc/JylbMF0gKyAnPycgKyBEYXRlLm5vdygpLFxuICApO1xuICAvLyAkRmxvd0ZpeE1lXG4gIGxpbmsucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobmV3TGluaywgbGluay5uZXh0U2libGluZyk7XG59XG5cbnZhciBjc3NUaW1lb3V0ID0gbnVsbDtcbmZ1bmN0aW9uIHJlbG9hZENTUygpIHtcbiAgaWYgKGNzc1RpbWVvdXQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjc3NUaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICB2YXIgbGlua3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaW5rW3JlbD1cInN0eWxlc2hlZXRcIl0nKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS10eXBlXVxuICAgICAgdmFyIGhyZWYgLyo6IHN0cmluZyAqLyA9IGxpbmtzW2ldLmdldEF0dHJpYnV0ZSgnaHJlZicpO1xuICAgICAgdmFyIGhvc3RuYW1lID0gZ2V0SG9zdG5hbWUoKTtcbiAgICAgIHZhciBzZXJ2ZWRGcm9tSE1SU2VydmVyID1cbiAgICAgICAgaG9zdG5hbWUgPT09ICdsb2NhbGhvc3QnXG4gICAgICAgICAgPyBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgICAnXihodHRwcz86XFxcXC9cXFxcLygwLjAuMC4wfDEyNy4wLjAuMSl8bG9jYWxob3N0KTonICsgZ2V0UG9ydCgpLFxuICAgICAgICAgICAgKS50ZXN0KGhyZWYpXG4gICAgICAgICAgOiBocmVmLmluZGV4T2YoaG9zdG5hbWUgKyAnOicgKyBnZXRQb3J0KCkpO1xuICAgICAgdmFyIGFic29sdXRlID1cbiAgICAgICAgL15odHRwcz86XFwvXFwvL2kudGVzdChocmVmKSAmJlxuICAgICAgICBocmVmLmluZGV4T2Yod2luZG93LmxvY2F0aW9uLm9yaWdpbikgIT09IDAgJiZcbiAgICAgICAgIXNlcnZlZEZyb21ITVJTZXJ2ZXI7XG4gICAgICBpZiAoIWFic29sdXRlKSB7XG4gICAgICAgIHVwZGF0ZUxpbmsobGlua3NbaV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNzc1RpbWVvdXQgPSBudWxsO1xuICB9LCA1MCk7XG59XG5cbmZ1bmN0aW9uIGhtckFwcGx5KGJ1bmRsZSAvKjogUGFyY2VsUmVxdWlyZSAqLywgYXNzZXQgLyo6ICBITVJBc3NldCAqLykge1xuICB2YXIgbW9kdWxlcyA9IGJ1bmRsZS5tb2R1bGVzO1xuICBpZiAoIW1vZHVsZXMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoYXNzZXQudHlwZSA9PT0gJ2NzcycpIHtcbiAgICByZWxvYWRDU1MoKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBsZXQgZGVwcyA9IGFzc2V0LmRlcHNCeUJ1bmRsZVtidW5kbGUuSE1SX0JVTkRMRV9JRF07XG4gIGlmIChkZXBzKSB7XG4gICAgdmFyIGZuID0gbmV3IEZ1bmN0aW9uKCdyZXF1aXJlJywgJ21vZHVsZScsICdleHBvcnRzJywgYXNzZXQub3V0cHV0KTtcbiAgICBtb2R1bGVzW2Fzc2V0LmlkXSA9IFtmbiwgZGVwc107XG4gIH0gZWxzZSBpZiAoYnVuZGxlLnBhcmVudCkge1xuICAgIGhtckFwcGx5KGJ1bmRsZS5wYXJlbnQsIGFzc2V0KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBobXJBY2NlcHRDaGVjayhcbiAgYnVuZGxlIC8qOiBQYXJjZWxSZXF1aXJlICovLFxuICBpZCAvKjogc3RyaW5nICovLFxuICBkZXBzQnlCdW5kbGUgLyo6ID97IFtzdHJpbmddOiB7IFtzdHJpbmddOiBzdHJpbmcgfSB9Ki8sXG4pIHtcbiAgdmFyIG1vZHVsZXMgPSBidW5kbGUubW9kdWxlcztcbiAgaWYgKCFtb2R1bGVzKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGRlcHNCeUJ1bmRsZSAmJiAhZGVwc0J5QnVuZGxlW2J1bmRsZS5ITVJfQlVORExFX0lEXSkge1xuICAgIC8vIElmIHdlIHJlYWNoZWQgdGhlIHJvb3QgYnVuZGxlIHdpdGhvdXQgZmluZGluZyB3aGVyZSB0aGUgYXNzZXQgc2hvdWxkIGdvLFxuICAgIC8vIHRoZXJlJ3Mgbm90aGluZyB0byBkby4gTWFyayBhcyBcImFjY2VwdGVkXCIgc28gd2UgZG9uJ3QgcmVsb2FkIHRoZSBwYWdlLlxuICAgIGlmICghYnVuZGxlLnBhcmVudCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhtckFjY2VwdENoZWNrKGJ1bmRsZS5wYXJlbnQsIGlkLCBkZXBzQnlCdW5kbGUpO1xuICB9XG5cbiAgaWYgKGNoZWNrZWRBc3NldHNbaWRdKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY2hlY2tlZEFzc2V0c1tpZF0gPSB0cnVlO1xuXG4gIHZhciBjYWNoZWQgPSBidW5kbGUuY2FjaGVbaWRdO1xuXG4gIGFzc2V0c1RvQWNjZXB0LnB1c2goW2J1bmRsZSwgaWRdKTtcblxuICBpZiAoY2FjaGVkICYmIGNhY2hlZC5ob3QgJiYgY2FjaGVkLmhvdC5fYWNjZXB0Q2FsbGJhY2tzLmxlbmd0aCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGdldFBhcmVudHMobW9kdWxlLmJ1bmRsZS5yb290LCBpZCkuc29tZShmdW5jdGlvbih2KSB7XG4gICAgcmV0dXJuIGhtckFjY2VwdENoZWNrKHZbMF0sIHZbMV0sIG51bGwpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaG1yQWNjZXB0UnVuKGJ1bmRsZSAvKjogUGFyY2VsUmVxdWlyZSAqLywgaWQgLyo6IHN0cmluZyAqLykge1xuICB2YXIgY2FjaGVkID0gYnVuZGxlLmNhY2hlW2lkXTtcbiAgYnVuZGxlLmhvdERhdGEgPSB7fTtcbiAgaWYgKGNhY2hlZCAmJiBjYWNoZWQuaG90KSB7XG4gICAgY2FjaGVkLmhvdC5kYXRhID0gYnVuZGxlLmhvdERhdGE7XG4gIH1cblxuICBpZiAoY2FjaGVkICYmIGNhY2hlZC5ob3QgJiYgY2FjaGVkLmhvdC5fZGlzcG9zZUNhbGxiYWNrcy5sZW5ndGgpIHtcbiAgICBjYWNoZWQuaG90Ll9kaXNwb3NlQ2FsbGJhY2tzLmZvckVhY2goZnVuY3Rpb24oY2IpIHtcbiAgICAgIGNiKGJ1bmRsZS5ob3REYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIGRlbGV0ZSBidW5kbGUuY2FjaGVbaWRdO1xuICBidW5kbGUoaWQpO1xuXG4gIGNhY2hlZCA9IGJ1bmRsZS5jYWNoZVtpZF07XG4gIGlmIChjYWNoZWQgJiYgY2FjaGVkLmhvdCAmJiBjYWNoZWQuaG90Ll9hY2NlcHRDYWxsYmFja3MubGVuZ3RoKSB7XG4gICAgY2FjaGVkLmhvdC5fYWNjZXB0Q2FsbGJhY2tzLmZvckVhY2goZnVuY3Rpb24oY2IpIHtcbiAgICAgIHZhciBhc3NldHNUb0Fsc29BY2NlcHQgPSBjYihmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFBhcmVudHMobW9kdWxlLmJ1bmRsZS5yb290LCBpZCk7XG4gICAgICB9KTtcbiAgICAgIGlmIChhc3NldHNUb0Fsc29BY2NlcHQgJiYgYXNzZXRzVG9BY2NlcHQubGVuZ3RoKSB7XG4gICAgICAgIGFzc2V0c1RvQWNjZXB0LnB1c2guYXBwbHkoYXNzZXRzVG9BY2NlcHQsIGFzc2V0c1RvQWxzb0FjY2VwdCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgYWNjZXB0ZWRBc3NldHNbaWRdID0gdHJ1ZTtcbn1cbiIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBnbG9iYWwgd2luZG93ICovXG52YXIgZW52ID0gd2luZG93LmNocm9tZSB8fCB3aW5kb3cuYnJvd3NlcjtcbmVudi5ydW50aW1lLm9uTWVzc2FnZS5hZGRMaXN0ZW5lcihmdW5jdGlvbiAobXNnKSB7XG4gIGlmIChtc2cuX19wYXJjZWxfaG1yX3JlbG9hZF9fKSB7XG4gICAgZW52LnJ1bnRpbWUucmVsb2FkKCk7XG4gIH1cbn0pOyJdLCJuYW1lcyI6W10sInZlcnNpb24iOjMsImZpbGUiOiJhdXRvcmVsb2FkLWJnLkhBU0hfUkVGX2ZlYTE5OTE2YzE0MzZkNGYzZThhMzQ4YjE3NzczNDJiLmpzLm1hcCJ9
|