obsidian-typings 2.6.1 → 2.7.0
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/dist/implementations.cjs +21 -22
- package/dist/implementations.d.ts +32 -33
- package/dist/types.d.ts +802 -803
- package/package.json +1 -1
package/dist/implementations.cjs
CHANGED
|
@@ -198,7 +198,6 @@ var InternalPluginName = {
|
|
|
198
198
|
Bookmarks: "bookmarks",
|
|
199
199
|
/**
|
|
200
200
|
* Plugin name in UI: Web viewer
|
|
201
|
-
* @remark Currently disabled
|
|
202
201
|
*/
|
|
203
202
|
Browser: "browser",
|
|
204
203
|
/**
|
|
@@ -329,26 +328,6 @@ var ViewType = {
|
|
|
329
328
|
Video: "video"
|
|
330
329
|
};
|
|
331
330
|
|
|
332
|
-
// src/obsidian/implementations/TypeGuards/isReferenceCache.ts
|
|
333
|
-
function isReferenceCache(reference) {
|
|
334
|
-
return !!reference.position;
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
// src/obsidian/implementations/TypeGuards/isEmbedCache.ts
|
|
338
|
-
function isEmbedCache(reference) {
|
|
339
|
-
return isReferenceCache(reference) && reference.original[0] === "!";
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
// src/obsidian/implementations/TypeGuards/isFrontmatterLinkCache.ts
|
|
343
|
-
function isFrontmatterLinkCache(reference) {
|
|
344
|
-
return !!reference.key;
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
// src/obsidian/implementations/TypeGuards/isLinkCache.ts
|
|
348
|
-
function isLinkCache(reference) {
|
|
349
|
-
return isReferenceCache(reference) && reference.original[0] !== "!";
|
|
350
|
-
}
|
|
351
|
-
|
|
352
331
|
// src/obsidian/implementations/Constructors/getInternalPluginConstructor.ts
|
|
353
332
|
function getInternalPluginConstructor(app) {
|
|
354
333
|
const anyPlugin = Object.values(app.internalPlugins.plugins)[0];
|
|
@@ -369,6 +348,26 @@ function getAppConstructor() {
|
|
|
369
348
|
return import_obsidian3.App;
|
|
370
349
|
}
|
|
371
350
|
|
|
351
|
+
// src/obsidian/implementations/TypeGuards/isReferenceCache.ts
|
|
352
|
+
function isReferenceCache(reference) {
|
|
353
|
+
return !!reference.position;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
// src/obsidian/implementations/TypeGuards/isEmbedCache.ts
|
|
357
|
+
function isEmbedCache(reference) {
|
|
358
|
+
return isReferenceCache(reference) && reference.original[0] === "!";
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
// src/obsidian/implementations/TypeGuards/isFrontmatterLinkCache.ts
|
|
362
|
+
function isFrontmatterLinkCache(reference) {
|
|
363
|
+
return !!reference.key;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
// src/obsidian/implementations/TypeGuards/isLinkCache.ts
|
|
367
|
+
function isLinkCache(reference) {
|
|
368
|
+
return isReferenceCache(reference) && reference.original[0] !== "!";
|
|
369
|
+
}
|
|
370
|
+
|
|
372
371
|
// src/obsidian/implementations/Constructors/Views/getViewConstructorByViewType.ts
|
|
373
372
|
function getViewConstructorByViewType(app, viewType) {
|
|
374
373
|
const leaf = app.workspace.createLeafInTabGroup();
|
|
@@ -493,4 +492,4 @@ function getMarkdownViewConstructor(app) {
|
|
|
493
492
|
function getAllPropertiesViewConstructor(app) {
|
|
494
493
|
return getViewConstructorByViewType(app, ViewType.AllProperties);
|
|
495
494
|
}
|
|
496
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9pbmRleC50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9nZXRURm9sZGVyQ29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9VdGlscy9QYXRoVXRpbHMudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9GdW5jdGlvbnMvY3JlYXRlVEZvbGRlckluc3RhbmNlLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL2dldFRGaWxlQ29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9GdW5jdGlvbnMvY3JlYXRlVEZpbGVJbnN0YW5jZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NsYXNzZXMvQ3VzdG9tQXJyYXlEaWN0SW1wbC50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0YW50cy9GaWxlRXh0ZW5zaW9uLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RhbnRzL0ludGVybmFsUGx1Z2luTmFtZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0YW50cy9WaWV3VHlwZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL1R5cGVHdWFyZHMvaXNSZWZlcmVuY2VDYWNoZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL1R5cGVHdWFyZHMvaXNFbWJlZENhY2hlLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvVHlwZUd1YXJkcy9pc0Zyb250bWF0dGVyTGlua0NhY2hlLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvVHlwZUd1YXJkcy9pc0xpbmtDYWNoZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9nZXRJbnRlcm5hbFBsdWdpbkNvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL2dldEludGVybmFsUGx1Z2luc0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL2dldEFwcENvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0T3V0bGluZVZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRCcm93c2VyVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldFJlbGVhc2VOb3Rlc1ZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRQZGZWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0U3luY1ZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRPdXRnb2luZ0xpbmtWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0Q2FudmFzVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldFRhZ1ZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRBdWRpb1ZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRMb2NhbEdyYXBoVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldEJhY2tsaW5rVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldEZpbGVFeHBsb3JlclZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRTZWFyY2hWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0VmlkZW9WaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0SW1hZ2VWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0QnJvd3Nlckhpc3RvcnlWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0RW1wdHlWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0R3JhcGhWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0RmlsZVByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0Qm9va21hcmtzVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldE1hcmtkb3duVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldEFsbFByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBmcm9tICcuL0Z1bmN0aW9ucy9jcmVhdGVURm9sZGVySW5zdGFuY2UuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9GdW5jdGlvbnMvY3JlYXRlVEZpbGVJbnN0YW5jZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NsYXNzZXMvQ3VzdG9tQXJyYXlEaWN0SW1wbC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0YW50cy9GaWxlRXh0ZW5zaW9uLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RhbnRzL1ZpZXdUeXBlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RhbnRzL0ludGVybmFsUGx1Z2luTmFtZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL1R5cGVHdWFyZHMvaXNFbWJlZENhY2hlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vVHlwZUd1YXJkcy9pc0Zyb250bWF0dGVyTGlua0NhY2hlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vVHlwZUd1YXJkcy9pc1JlZmVyZW5jZUNhY2hlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vVHlwZUd1YXJkcy9pc0xpbmtDYWNoZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL1V0aWxzL1BhdGhVdGlscy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9nZXRJbnRlcm5hbFBsdWdpbkNvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL2dldEludGVybmFsUGx1Z2luc0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL2dldFRGb2xkZXJDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9nZXRBcHBDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9nZXRURmlsZUNvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldE91dGxpbmVWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0QnJvd3NlclZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRSZWxlYXNlTm90ZXNWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0UGRmVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0U3luY1ZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRPdXRnb2luZ0xpbmtWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0Q2FudmFzVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldFRhZ1ZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRBdWRpb1ZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRMb2NhbEdyYXBoVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldEJhY2tsaW5rVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldEZpbGVFeHBsb3JlclZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRTZWFyY2hWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0VmlkZW9WaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0SW1hZ2VWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0QnJvd3Nlckhpc3RvcnlWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0RW1wdHlWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0R3JhcGhWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0RmlsZVByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0Qm9va21hcmtzVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldE1hcmtkb3duVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldEFsbFByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IuanMnO1xuaW1wb3J0ICcuLi8uLi9pbmRleC5qcyc7XG4iLCAiaW1wb3J0IHtcbiAgICBURm9sZGVyXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVEZvbGRlckNvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9URm9sZGVyQ29uc3RydWN0b3IudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgVEZvbGRlciBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgVEZvbGRlciBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRGb2xkZXJDb25zdHJ1Y3RvcigpOiBURm9sZGVyQ29uc3RydWN0b3Ige1xuICAgIHJldHVybiBURm9sZGVyIGFzIFRGb2xkZXJDb25zdHJ1Y3Rvcjtcbn1cbiIsICIvKipcbiAqIEdldCB0aGUgcGFyZW50IGZvbGRlciBwYXRoIG9mIGEgZ2l2ZW4gcGF0aC5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIGdldCB0aGUgcGFyZW50IGZvbGRlciBwYXRoIG9mLlxuICogQHJldHVybnMgVGhlIHBhcmVudCBmb2xkZXIgcGF0aC5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcmVudEZvbGRlclBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXC8/W15cXC9dKiQvLCAnJykgfHwgJy8nO1xufVxuIiwgImltcG9ydCB7XG4gICAgdHlwZSBBcHAsXG4gICAgVEZvbGRlclxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgeyBnZXRURm9sZGVyQ29uc3RydWN0b3IgfSBmcm9tICcuLi9Db25zdHJ1Y3RvcnMvZ2V0VEZvbGRlckNvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IHBhcmVudEZvbGRlclBhdGggfSBmcm9tICcuLi9VdGlscy9QYXRoVXRpbHMuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW5kIHByb3Blcmx5IGluaXRpYWxpemVzIHRoZSBpbnN0YW5jZSBvZiBURm9sZGVyIGV2ZW4gdGhlIHVuZGVybHlpbmcgZm9sZGVyIGRvZXMgbm90IGV4aXN0LlxuICogVGhpcyBkb2Vzbid0IGNyZWF0ZSB0aGUgbWlzc2luZyBmb2xkZXIgb24gdGhlIGZpbGUgc3lzdGVtLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVEZvbGRlckluc3RhbmNlKGFwcDogQXBwLCBwYXRoOiBzdHJpbmcpOiBURm9sZGVyIHtcbiAgICBsZXQgZm9sZGVyID0gYXBwLnZhdWx0LmdldEZvbGRlckJ5UGF0aChwYXRoKTtcbiAgICBpZiAoZm9sZGVyKSB7XG4gICAgICAgIHJldHVybiBmb2xkZXI7XG4gICAgfVxuXG4gICAgZm9sZGVyID0gbmV3IChnZXRURm9sZGVyQ29uc3RydWN0b3IoKSkoYXBwLnZhdWx0LCBwYXRoKTtcbiAgICBmb2xkZXIucGFyZW50ID0gY3JlYXRlVEZvbGRlckluc3RhbmNlKGFwcCwgcGFyZW50Rm9sZGVyUGF0aChwYXRoKSk7XG4gICAgZm9sZGVyLmRlbGV0ZWQgPSB0cnVlO1xuICAgIHJldHVybiBmb2xkZXI7XG59XG4iLCAiaW1wb3J0IHtcbiAgICBURmlsZVxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFRGaWxlQ29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1RGaWxlQ29uc3RydWN0b3IudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgVEZpbGUgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIFRGaWxlIGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VEZpbGVDb25zdHJ1Y3RvcigpOiBURmlsZUNvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gVEZpbGUgYXMgVEZpbGVDb25zdHJ1Y3Rvcjtcbn1cbiIsICJpbXBvcnQge1xuICAgIHR5cGUgQXBwLFxuICAgIFRGaWxlXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7IGdldFRGaWxlQ29uc3RydWN0b3IgfSBmcm9tICcuLi9Db25zdHJ1Y3RvcnMvZ2V0VEZpbGVDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBwYXJlbnRGb2xkZXJQYXRoIH0gZnJvbSAnLi4vVXRpbHMvUGF0aFV0aWxzLmpzJztcbmltcG9ydCB7IGNyZWF0ZVRGb2xkZXJJbnN0YW5jZSB9IGZyb20gJy4vY3JlYXRlVEZvbGRlckluc3RhbmNlLnRzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuZCBwcm9wZXJseSBpbml0aWFsaXplcyB0aGUgaW5zdGFuY2Ugb2YgVEZpbGUgZXZlbiB0aGUgdW5kZXJseWluZyBmaWxlIGRvZXMgbm90IGV4aXN0LlxuICogVGhpcyBkb2Vzbid0IGNyZWF0ZSB0aGUgbWlzc2luZyBmaWxlIG9uIHRoZSBmaWxlIHN5c3RlbS5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRGaWxlSW5zdGFuY2UoYXBwOiBBcHAsIHBhdGg6IHN0cmluZyk6IFRGaWxlIHtcbiAgICBsZXQgZmlsZSA9IGFwcC52YXVsdC5nZXRGaWxlQnlQYXRoKHBhdGgpO1xuICAgIGlmIChmaWxlKSB7XG4gICAgICAgIHJldHVybiBmaWxlO1xuICAgIH1cblxuICAgIGZpbGUgPSBuZXcgKGdldFRGaWxlQ29uc3RydWN0b3IoKSkoYXBwLnZhdWx0LCBwYXRoKTtcbiAgICBmaWxlLnBhcmVudCA9IGNyZWF0ZVRGb2xkZXJJbnN0YW5jZShhcHAsIHBhcmVudEZvbGRlclBhdGgocGF0aCkpO1xuICAgIGZpbGUuZGVsZXRlZCA9IHRydWU7XG4gICAgcmV0dXJuIGZpbGU7XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBDdXN0b21BcnJheURpY3QgfSBmcm9tICcuLi8uLi9pbnRlcm5hbHMvQ3VzdG9tQXJyYXlEaWN0LmpzJztcblxuLyoqIEBwdWJsaWMgKi9cbmV4cG9ydCBjbGFzcyBDdXN0b21BcnJheURpY3RJbXBsPFQ+IGltcGxlbWVudHMgQ3VzdG9tQXJyYXlEaWN0PFQ+IHtcbiAgICBwdWJsaWMgZGF0YTogTWFwPHN0cmluZywgVFtdPiA9IG5ldyBNYXAoKTtcblxuICAgIHB1YmxpYyBhZGQoa2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIGxldCB2YWx1ZXMgPSB0aGlzLmdldChrZXkpO1xuICAgICAgICBpZiAoIXZhbHVlcykge1xuICAgICAgICAgICAgdmFsdWVzID0gW107XG4gICAgICAgICAgICB0aGlzLmRhdGEuc2V0KGtleSwgdmFsdWVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdmFsdWVzLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWVzLnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZShrZXk6IHN0cmluZywgdmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKCF2YWx1ZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZXMucmVtb3ZlKHZhbHVlKTtcblxuICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5jbGVhcihrZXkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldChrZXk6IHN0cmluZyk6IFRbXSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmdldChrZXkpIHx8IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGtleXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmRhdGEua2V5cygpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXIoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhLmRlbGV0ZShrZXkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhckFsbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnRhaW5zKGtleTogc3RyaW5nLCB2YWx1ZTogVCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmdldChrZXkpPy5jb250YWlucyh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvdW50KCk6IG51bWJlciB7XG4gICAgICAgIGxldCBhbnMgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmtleXMoKSkge1xuICAgICAgICAgICAgYW5zICs9IHRoaXMuZ2V0KGtleSk/Lmxlbmd0aCA/PyAwO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFucztcbiAgICB9XG59XG4iLCAiLyoqIEBwdWJsaWMgKi9cbmV4cG9ydCBjb25zdCBGaWxlRXh0ZW5zaW9uID0ge1xuICAgIF8zZ3A6ICczZ3AnLFxuICAgIGF2aWY6ICdhdmlmJyxcbiAgICBibXA6ICdibXAnLFxuICAgIGNhbnZhczogJ2NhbnZhcycsXG4gICAgZmxhYzogJ2ZsYWMnLFxuICAgIGdpZjogJ2dpZicsXG4gICAganBlZzogJ2pwZWcnLFxuICAgIGpwZzogJ2pwZycsXG4gICAgbTRhOiAnbTRhJyxcbiAgICBtZDogJ21kJyxcbiAgICBta3Y6ICdta3YnLFxuICAgIG1vdjogJ21vdicsXG4gICAgbXAzOiAnbXAzJyxcbiAgICBtcDQ6ICdtcDQnLFxuICAgIG9nYTogJ29nYScsXG4gICAgb2dnOiAnb2dnJyxcbiAgICBvZ3Y6ICdvZ3YnLFxuICAgIG9wdXM6ICdvcHVzJyxcbiAgICBwZGY6ICdwZGYnLFxuICAgIHBuZzogJ3BuZycsXG4gICAgc3ZnOiAnc3ZnJyxcbiAgICB3YXY6ICd3YXYnLFxuICAgIHdlYm06ICd3ZWJtJyxcbiAgICB3ZWJwOiAnd2VicCdcbn0gYXMgY29uc3Q7XG4iLCAiLyoqIEBwdWJsaWMgKi9cbmV4cG9ydCBjb25zdCBJbnRlcm5hbFBsdWdpbk5hbWUgPSB7XG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IEF1ZGlvIHJlY29yZGVyXG4gICAgICovXG4gICAgQXVkaW9SZWNvcmRlcjogJ2F1ZGlvLXJlY29yZGVyJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogQmFja2xpbmtzXG4gICAgICovXG4gICAgQmFja2xpbms6ICdiYWNrbGluaycsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IEJvb2ttYXJrc1xuICAgICAqL1xuICAgIEJvb2ttYXJrczogJ2Jvb2ttYXJrcycsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IFdlYiB2aWV3ZXJcbiAgICAgKiBAcmVtYXJrIEN1cnJlbnRseSBkaXNhYmxlZFxuICAgICAqL1xuICAgIEJyb3dzZXI6ICdicm93c2VyJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogQ2FudmFzXG4gICAgICovXG4gICAgQ2FudmFzOiAnY2FudmFzJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogQ29tbWFuZCBwYWxldHRlXG4gICAgICovXG4gICAgQ29tbWFuZFBhbGV0dGU6ICdjb21tYW5kLXBhbGV0dGUnLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiBEYWlseSBub3Rlc1xuICAgICAqL1xuICAgIERhaWx5Tm90ZXM6ICdkYWlseS1ub3RlcycsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IChoaWRkZW4pXG4gICAgICovXG4gICAgRWRpdG9yU3RhdHVzOiAnZWRpdG9yLXN0YXR1cycsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IEZpbGVzXG4gICAgICovXG4gICAgRmlsZUV4cGxvcmVyOiAnZmlsZS1leHBsb3JlcicsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IEZpbGUgcmVjb3ZlcnlcbiAgICAgKi9cbiAgICBGaWxlUmVjb3Zlcnk6ICdmaWxlLXJlY292ZXJ5JyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogU2VhcmNoXG4gICAgICovXG4gICAgR2xvYmFsU2VhcmNoOiAnZ2xvYmFsLXNlYXJjaCcsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IEdyYXBoIHZpZXdcbiAgICAgKi9cbiAgICBHcmFwaDogJ2dyYXBoJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogRm9ybWF0IGNvbnZlcnRlclxuICAgICAqL1xuICAgIE1hcmtkb3duSW1wb3J0ZXI6ICdtYXJrZG93bi1pbXBvcnRlcicsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IE5vdGUgY29tcG9zZXJcbiAgICAgKi9cbiAgICBOb3RlQ29tcG9zZXI6ICdub3RlLWNvbXBvc2VyJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogT3V0Z29pbmcgbGlua3NcbiAgICAgKi9cbiAgICBPdXRnb2luZ0xpbms6ICdvdXRnb2luZy1saW5rJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogT3V0bGluZVxuICAgICAqL1xuICAgIE91dGxpbmU6ICdvdXRsaW5lJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogUGFnZSBwcmV2aWV3XG4gICAgICovXG4gICAgUGFnZVByZXZpZXc6ICdwYWdlLXByZXZpZXcnLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiBQcm9wZXJ0aWVzIHZpZXdcbiAgICAgKi9cbiAgICBQcm9wZXJ0aWVzOiAncHJvcGVydGllcycsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IFB1Ymxpc2hcbiAgICAgKi9cbiAgICBQdWJsaXNoOiAncHVibGlzaCcsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IFJhbmRvbSBub3RlXG4gICAgICovXG4gICAgUmFuZG9tTm90ZTogJ3JhbmRvbS1ub3RlJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogU2xhc2ggY29tbWFuZHNcbiAgICAgKi9cbiAgICBTbGFzaENvbW1hbmQ6ICdzbGFzaC1jb21tYW5kJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogU2xpZGVzXG4gICAgICovXG4gICAgU2xpZGVzOiAnc2xpZGVzJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogUXVpY2sgU3dpdGNoZXJcbiAgICAgKi9cbiAgICBTd2l0Y2hlcjogJ3N3aXRjaGVyJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogU3luY1xuICAgICAqL1xuICAgIFN5bmM6ICdzeW5jJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogVGFncyB2aWV3XG4gICAgICovXG4gICAgVGFnUGFuZTogJ3RhZy1wYW5lJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogVGVtcGxhdGVzXG4gICAgICovXG4gICAgVGVtcGxhdGVzOiAndGVtcGxhdGVzJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogV29yZCBjb3VudFxuICAgICAqL1xuICAgIFdvcmRDb3VudDogJ3dvcmQtY291bnQnLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiBXb3Jrc3BhY2VzXG4gICAgICovXG4gICAgV29ya3NwYWNlczogJ3dvcmtzcGFjZXMnLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiBVbmlxdWUgbm90ZSBjcmVhdG9yXG4gICAgICovXG4gICAgWmtQcmVmaXhlcjogJ3prLXByZWZpeGVyJ1xufSBhcyBjb25zdDtcbiIsICJpbXBvcnQgeyBJbnRlcm5hbFBsdWdpbk5hbWUgfSBmcm9tICcuL0ludGVybmFsUGx1Z2luTmFtZS5qcyc7XG5cbi8qKiBAcHVibGljICovXG5leHBvcnQgY29uc3QgVmlld1R5cGUgPSB7XG4gICAgQWxsUHJvcGVydGllczogJ2FsbC1wcm9wZXJ0aWVzJyxcbiAgICBBdWRpbzogJ2F1ZGlvJyxcbiAgICBCYWNrbGluazogSW50ZXJuYWxQbHVnaW5OYW1lLkJhY2tsaW5rLFxuICAgIEJvb2ttYXJrczogSW50ZXJuYWxQbHVnaW5OYW1lLkJvb2ttYXJrcyxcbiAgICBCcm93c2VyOiAnYnJvd3NlcicsXG4gICAgQnJvd3Nlckhpc3Rvcnk6ICdicm93c2VyLWhpc3RvcnknLFxuICAgIENhbnZhczogSW50ZXJuYWxQbHVnaW5OYW1lLkNhbnZhcyxcbiAgICBFbXB0eTogJ2VtcHR5JyxcbiAgICBGaWxlRXhwbG9yZXI6IEludGVybmFsUGx1Z2luTmFtZS5GaWxlRXhwbG9yZXIsXG4gICAgRmlsZVByb3BlcnRpZXM6ICdmaWxlLXByb3BlcnRpZXMnLFxuICAgIEdyYXBoOiBJbnRlcm5hbFBsdWdpbk5hbWUuR3JhcGgsXG4gICAgSW1hZ2U6ICdpbWFnZScsXG4gICAgTG9jYWxHcmFwaDogJ2xvY2FsZ3JhcGgnLFxuICAgIE1hcmtkb3duOiAnbWFya2Rvd24nLFxuICAgIE91dGdvaW5nTGluazogSW50ZXJuYWxQbHVnaW5OYW1lLk91dGdvaW5nTGluayxcbiAgICBPdXRsaW5lOiBJbnRlcm5hbFBsdWdpbk5hbWUuT3V0bGluZSxcbiAgICBQZGY6ICdwZGYnLFxuICAgIFJlbGVhc2VOb3RlczogJ3JlbGVhc2Utbm90ZXMnLFxuICAgIFNlYXJjaDogJ3NlYXJjaCcsXG4gICAgU3luYzogJ3N5bmMnLFxuICAgIFRhZzogJ3RhZycsXG4gICAgVmlkZW86ICd2aWRlbydcbn0gYXMgY29uc3Q7XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIFJlZmVyZW5jZSxcbiAgICBSZWZlcmVuY2VDYWNoZVxufSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIHJlZmVyZW5jZSBpcyBhIHJlZmVyZW5jZSBjYWNoZS5cbiAqXG4gKiBAcGFyYW0gcmVmZXJlbmNlIC0gVGhlIHJlZmVyZW5jZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHJlZmVyZW5jZSBpcyBhIHJlZmVyZW5jZSBjYWNoZS5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmVmZXJlbmNlQ2FjaGUocmVmZXJlbmNlOiBSZWZlcmVuY2UpOiByZWZlcmVuY2UgaXMgUmVmZXJlbmNlQ2FjaGUge1xuICAgIHJldHVybiAhIShyZWZlcmVuY2UgYXMgUGFydGlhbDxSZWZlcmVuY2VDYWNoZT4pLnBvc2l0aW9uO1xufVxuIiwgImltcG9ydCB0eXBlIHtcbiAgICBFbWJlZENhY2hlLFxuICAgIFJlZmVyZW5jZVxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgeyBpc1JlZmVyZW5jZUNhY2hlIH0gZnJvbSAnLi9pc1JlZmVyZW5jZUNhY2hlLnRzJztcblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgcmVmZXJlbmNlIGlzIGFuIGVtYmVkIGNhY2hlLlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2UgLSBUaGUgcmVmZXJlbmNlIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgcmVmZXJlbmNlIGlzIGFuIGVtYmVkIGNhY2hlLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFbWJlZENhY2hlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIEVtYmVkQ2FjaGUge1xuICAgIHJldHVybiBpc1JlZmVyZW5jZUNhY2hlKHJlZmVyZW5jZSkgJiYgcmVmZXJlbmNlLm9yaWdpbmFsWzBdID09PSAnISc7XG59XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIEZyb250bWF0dGVyTGlua0NhY2hlLFxuICAgIFJlZmVyZW5jZVxufSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIHJlZmVyZW5jZSBpcyBhIGZyb250bWF0dGVyIGxpbmsgY2FjaGUuXG4gKlxuICogQHBhcmFtIHJlZmVyZW5jZSAtIFRoZSByZWZlcmVuY2UgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSByZWZlcmVuY2UgaXMgYSBmcm9udG1hdHRlciBsaW5rIGNhY2hlLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGcm9udG1hdHRlckxpbmtDYWNoZShyZWZlcmVuY2U6IFJlZmVyZW5jZSk6IHJlZmVyZW5jZSBpcyBGcm9udG1hdHRlckxpbmtDYWNoZSB7XG4gICAgcmV0dXJuICEhKHJlZmVyZW5jZSBhcyBQYXJ0aWFsPEZyb250bWF0dGVyTGlua0NhY2hlPikua2V5O1xufVxuIiwgImltcG9ydCB0eXBlIHtcbiAgICBMaW5rQ2FjaGUsXG4gICAgUmVmZXJlbmNlXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7IGlzUmVmZXJlbmNlQ2FjaGUgfSBmcm9tICcuL2lzUmVmZXJlbmNlQ2FjaGUudHMnO1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSByZWZlcmVuY2UgaXMgYSBsaW5rIGNhY2hlLlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2UgLSBUaGUgcmVmZXJlbmNlIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgcmVmZXJlbmNlIGlzIGEgbGluayBjYWNoZS5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTGlua0NhY2hlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIExpbmtDYWNoZSB7XG4gICAgcmV0dXJuIGlzUmVmZXJlbmNlQ2FjaGUocmVmZXJlbmNlKSAmJiByZWZlcmVuY2Uub3JpZ2luYWxbMF0gIT09ICchJztcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxQbHVnaW5Db25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvSW50ZXJuYWxQbHVnaW5Db25zdHJ1Y3Rvci50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBJbnRlcm5hbFBsdWdpbiBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcCBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIFRoZSBJbnRlcm5hbFBsdWdpbiBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsUGx1Z2luQ29uc3RydWN0b3I8SW5zdGFuY2U+KGFwcDogQXBwKTogSW50ZXJuYWxQbHVnaW5Db25zdHJ1Y3RvcjxJbnN0YW5jZT4ge1xuICAgIGNvbnN0IGFueVBsdWdpbiA9IE9iamVjdC52YWx1ZXMoYXBwLmludGVybmFsUGx1Z2lucy5wbHVnaW5zKVswXTtcbiAgICBpZiAoIWFueVBsdWdpbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGludGVybmFsIHBsdWdpbiBmb3VuZCcpO1xuICAgIH1cbiAgICByZXR1cm4gYW55UGx1Z2luLmNvbnN0cnVjdG9yIGFzIEludGVybmFsUGx1Z2luQ29uc3RydWN0b3I8SW5zdGFuY2U+O1xufVxuIiwgImltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbFBsdWdpbnNDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvSW50ZXJuYWxQbHVnaW5zQ29uc3RydWN0b3IudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgSW50ZXJuYWxQbHVnaW5zIGNvbnN0cnVjdG9yLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwIGluc3RhbmNlLlxuICogQHJldHVybnMgVGhlIEludGVybmFsUGx1Z2lucyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsUGx1Z2luc0NvbnN0cnVjdG9yKGFwcDogQXBwKTogSW50ZXJuYWxQbHVnaW5zQ29uc3RydWN0b3Ige1xuICAgIHJldHVybiBhcHAuaW50ZXJuYWxQbHVnaW5zLmNvbnN0cnVjdG9yIGFzIEludGVybmFsUGx1Z2luc0NvbnN0cnVjdG9yO1xufVxuIiwgImltcG9ydCB7XG4gICAgQXBwXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgQXBwQ29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL0FwcENvbnN0cnVjdG9yLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIEFwcCBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgQXBwIGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXBwQ29uc3RydWN0b3IoKTogQXBwQ29uc3RydWN0b3Ige1xuICAgIHJldHVybiBBcHAgYXMgQXBwQ29uc3RydWN0b3I7XG59XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIEFwcCxcbiAgICBDb25zdHJ1Y3RvcixcbiAgICBWaWV3XG59IGZyb20gJ29ic2lkaWFuJztcblxuLyoqXG4gKiBHZXQgdGhlIHZpZXcgY29uc3RydWN0b3IgYnkgdmlldyB0eXBlLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwLlxuICogQHBhcmFtIHZpZXdUeXBlIC0gVGhlIHZpZXcgdHlwZS5cbiAqIEByZXR1cm5zIFRoZSB2aWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZTxUVmlldyBleHRlbmRzIFZpZXcgPSBWaWV3PihcbiAgICBhcHA6IEFwcCxcbiAgICB2aWV3VHlwZTogc3RyaW5nXG4pOiBDb25zdHJ1Y3RvcjxUVmlldz4ge1xuICAgIGNvbnN0IGxlYWYgPSBhcHAud29ya3NwYWNlLmNyZWF0ZUxlYWZJblRhYkdyb3VwKCk7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgdmlld0NyZWF0b3IgPSBhcHAudmlld1JlZ2lzdHJ5LmdldFZpZXdDcmVhdG9yQnlUeXBlKHZpZXdUeXBlKTtcbiAgICAgICAgaWYgKCF2aWV3Q3JlYXRvcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdWaWV3IGNyZWF0b3Igbm90IGZvdW5kJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmlldyA9IHZpZXdDcmVhdG9yKGxlYWYpO1xuICAgICAgICByZXR1cm4gdmlldy5jb25zdHJ1Y3RvciBhcyBDb25zdHJ1Y3RvcjxUVmlldz47XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgICAgbGVhZi5kZXRhY2goKTtcbiAgICB9XG59XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIEFwcFxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IE91dGxpbmVWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL091dGxpbmVWaWV3Q29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBPdXRsaW5lVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgT3V0bGluZVZpZXcgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRPdXRsaW5lVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogT3V0bGluZVZpZXdDb25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5PdXRsaW5lKSBhcyBPdXRsaW5lVmlld0NvbnN0cnVjdG9yO1xufVxuIiwgImltcG9ydCB0eXBlIHtcbiAgICBBcHBcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBCcm93c2VyVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9Ccm93c2VyVmlld0NvbnN0cnVjdG9yLmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgQnJvd3NlclZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIEJyb3dzZXJWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QnJvd3NlclZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IEJyb3dzZXJWaWV3Q29uc3RydWN0b3Ige1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuQnJvd3NlcikgYXMgQnJvd3NlclZpZXdDb25zdHJ1Y3Rvcjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgUmVsZWFzZU5vdGVzVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9WaWV3cy9SZWxlYXNlTm90ZXNWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgUmVsZWFzZU5vdGVzVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgUmVsZWFzZU5vdGVzVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlbGVhc2VOb3Rlc1ZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPFJlbGVhc2VOb3Rlc1ZpZXc+IHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLlJlbGVhc2VOb3RlcykgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8UmVsZWFzZU5vdGVzVmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IFBkZlZpZXcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvVmlld3MvUGRmVmlldy5qcyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIFBkZlZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIFBkZlZpZXcgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQZGZWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxQZGZWaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5QZGYpIGFzIFR5cGVkVmlld0NvbnN0cnVjdG9yPFBkZlZpZXc+O1xufVxuIiwgImltcG9ydCB0eXBlIHtcbiAgICBBcHBcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBTeW5jVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9TeW5jVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgU3luY1ZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIFN5bmNWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3luY1ZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFN5bmNWaWV3Q29uc3RydWN0b3Ige1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuU3luYykgYXMgU3luY1ZpZXdDb25zdHJ1Y3Rvcjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgT3V0Z29pbmdMaW5rVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9JbnRlcm5hbFBsdWdpbnMvT3V0Z29pbmdMaW5rL091dGdvaW5nTGlua1ZpZXcuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBPdXRnb2luZ0xpbmtWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBPdXRnb2luZ0xpbmtWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3V0Z29pbmdMaW5rVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogVHlwZWRWaWV3Q29uc3RydWN0b3I8T3V0Z29pbmdMaW5rVmlldz4ge1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuT3V0Z29pbmdMaW5rKSBhcyBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxPdXRnb2luZ0xpbmtWaWV3Pjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7XG4gICAgQXBwXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgQ2FudmFzVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9DYW52YXNWaWV3Q29uc3RydWN0b3IuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBDYW52YXNWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBDYW52YXNWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2FudmFzVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogQ2FudmFzVmlld0NvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLkNhbnZhcykgYXMgQ2FudmFzVmlld0NvbnN0cnVjdG9yO1xufVxuIiwgImltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBUeXBlZFZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvVHlwZWRWaWV3Q29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHR5cGUgeyBUYWdWaWV3IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL1ZpZXdzL1RhZ1ZpZXcuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBUYWdWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBUYWdWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGFnVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogVHlwZWRWaWV3Q29uc3RydWN0b3I8VGFnVmlldz4ge1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuVGFnKSBhcyBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxUYWdWaWV3Pjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgQXVkaW9WaWV3IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL1ZpZXdzL0F1ZGlvVmlldy5qcyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIEF1ZGlvVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgQXVkaW9WaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXVkaW9WaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxBdWRpb1ZpZXc+IHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLkF1ZGlvKSBhcyBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxBdWRpb1ZpZXc+O1xufVxuIiwgImltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBUeXBlZFZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvVHlwZWRWaWV3Q29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHR5cGUgeyBMb2NhbEdyYXBoVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9JbnRlcm5hbFBsdWdpbnMvR3JhcGgvTG9jYWxHcmFwaFZpZXcuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBMb2NhbEdyYXBoVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgTG9jYWxHcmFwaFZpZXcgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbEdyYXBoVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogVHlwZWRWaWV3Q29uc3RydWN0b3I8TG9jYWxHcmFwaFZpZXc+IHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLkxvY2FsR3JhcGgpIGFzIFR5cGVkVmlld0NvbnN0cnVjdG9yPExvY2FsR3JhcGhWaWV3Pjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgQmFja2xpbmtWaWV3IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0ludGVybmFsUGx1Z2lucy9CYWNrbGluay9CYWNrbGlua1ZpZXcuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBCYWNrbGlua1ZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIEJhY2tsaW5rVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJhY2tsaW5rVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogVHlwZWRWaWV3Q29uc3RydWN0b3I8QmFja2xpbmtWaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5CYWNrbGluaykgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8QmFja2xpbmtWaWV3Pjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgRmlsZUV4cGxvcmVyVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9JbnRlcm5hbFBsdWdpbnMvRmlsZUV4cGxvcmVyL0ZpbGVFeHBsb3JlclZpZXcuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBGaWxlRXhwbG9yZXJWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBGaWxlRXhwbG9yZXJWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZUV4cGxvcmVyVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogVHlwZWRWaWV3Q29uc3RydWN0b3I8RmlsZUV4cGxvcmVyVmlldz4ge1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuRmlsZUV4cGxvcmVyKSBhcyBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxGaWxlRXhwbG9yZXJWaWV3Pjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgU2VhcmNoVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9JbnRlcm5hbFBsdWdpbnMvR2xvYmFsU2VhcmNoL1NlYXJjaFZpZXcuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBTZWFyY2hWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBTZWFyY2hWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VhcmNoVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogVHlwZWRWaWV3Q29uc3RydWN0b3I8U2VhcmNoVmlldz4ge1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuU2VhcmNoKSBhcyBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxTZWFyY2hWaWV3Pjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgVmlkZW9WaWV3IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL1ZpZXdzL1ZpZGVvVmlldy5qcyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIFZpZGVvVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgVmlkZW9WaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmlkZW9WaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxWaWRlb1ZpZXc+IHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLlZpZGVvKSBhcyBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxWaWRlb1ZpZXc+O1xufVxuIiwgImltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBUeXBlZFZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvVHlwZWRWaWV3Q29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHR5cGUgeyBJbWFnZVZpZXcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvVmlld3MvSW1hZ2VWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgSW1hZ2VWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBJbWFnZVZpZXcgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbWFnZVZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPEltYWdlVmlldz4ge1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuSW1hZ2UpIGFzIFR5cGVkVmlld0NvbnN0cnVjdG9yPEltYWdlVmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIEFwcFxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7XG4gICAgQnJvd3Nlckhpc3RvcnlWaWV3Q29uc3RydWN0b3Jcbn0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9Ccm93c2VySGlzdG9yeVZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIEJyb3dzZXJIaXN0b3J5VmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgQnJvd3Nlckhpc3RvcnlWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QnJvd3Nlckhpc3RvcnlWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBCcm93c2VySGlzdG9yeVZpZXdDb25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5Ccm93c2VySGlzdG9yeSkgYXMgQnJvd3Nlckhpc3RvcnlWaWV3Q29uc3RydWN0b3I7XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IEVtcHR5VmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9WaWV3cy9FbXB0eVZpZXcuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBFbXB0eVZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIEVtcHR5VmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVtcHR5Vmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogVHlwZWRWaWV3Q29uc3RydWN0b3I8RW1wdHlWaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5FbXB0eSkgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8RW1wdHlWaWV3Pjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgR3JhcGhWaWV3IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0ludGVybmFsUGx1Z2lucy9HcmFwaC9HcmFwaFZpZXcuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBHcmFwaFZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIEdyYXBoVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEdyYXBoVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogVHlwZWRWaWV3Q29uc3RydWN0b3I8R3JhcGhWaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5HcmFwaCkgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8R3JhcGhWaWV3Pjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7XG4gICAgQXBwXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHtcbiAgICBGaWxlUHJvcGVydGllc1ZpZXdDb25zdHJ1Y3RvclxufSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL0ZpbGVQcm9wZXJ0aWVzVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgRmlsZVByb3BlcnRpZXNWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBGaWxlUHJvcGVydGllc1ZpZXcgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlUHJvcGVydGllc1ZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IEZpbGVQcm9wZXJ0aWVzVmlld0NvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLkZpbGVQcm9wZXJ0aWVzKSBhcyBGaWxlUHJvcGVydGllc1ZpZXdDb25zdHJ1Y3Rvcjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7XG4gICAgQXBwXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgQm9va21hcmtzVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9Cb29rbWFya3NWaWV3Q29uc3RydWN0b3IuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBCb29rbWFya3NWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBCb29rbWFya3NWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Qm9va21hcmtzVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogQm9va21hcmtzVmlld0NvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLkJvb2ttYXJrcykgYXMgQm9va21hcmtzVmlld0NvbnN0cnVjdG9yO1xufVxuIiwgImltcG9ydCB0eXBlIHtcbiAgICBBcHAsXG4gICAgTWFya2Rvd25WaWV3XG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgTWFya2Rvd25WaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBNYXJrZG93blZpZXcgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYXJrZG93blZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPE1hcmtkb3duVmlldz4ge1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuTWFya2Rvd24pIGFzIFR5cGVkVmlld0NvbnN0cnVjdG9yPE1hcmtkb3duVmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IEFsbFByb3BlcnRpZXNWaWV3IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0ludGVybmFsUGx1Z2lucy9Qcm9wZXJ0aWVzL0FsbFByb3BlcnRpZXNWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgQWxsUHJvcGVydGllc1ZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIEFsbFByb3BlcnRpZXNWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsUHJvcGVydGllc1ZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPEFsbFByb3BlcnRpZXNWaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5BbGxQcm9wZXJ0aWVzKSBhcyBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxBbGxQcm9wZXJ0aWVzVmlldz47XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7O0FDQUEsc0JBRU87QUFTQSxTQUFTLHdCQUE0QztBQUN4RCxTQUFPO0FBQ1g7OztBQ05PLFNBQVMsaUJBQWlCLE1BQXNCO0FBQ25ELFNBQU8sS0FBSyxRQUFRLGNBQWMsRUFBRSxLQUFLO0FBQzdDOzs7QUNHTyxTQUFTLHNCQUFzQixLQUFVLE1BQXVCO0FBQ25FLE1BQUksU0FBUyxJQUFJLE1BQU0sZ0JBQWdCLElBQUk7QUFDM0MsTUFBSSxRQUFRO0FBQ1IsV0FBTztBQUFBLEVBQ1g7QUFFQSxXQUFTLEtBQUssc0JBQXNCLEdBQUcsSUFBSSxPQUFPLElBQUk7QUFDdEQsU0FBTyxTQUFTLHNCQUFzQixLQUFLLGlCQUFpQixJQUFJLENBQUM7QUFDakUsU0FBTyxVQUFVO0FBQ2pCLFNBQU87QUFDWDs7O0FDdEJBLElB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
|
|
495
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9pbmRleC50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9nZXRURm9sZGVyQ29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9VdGlscy9QYXRoVXRpbHMudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9GdW5jdGlvbnMvY3JlYXRlVEZvbGRlckluc3RhbmNlLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL2dldFRGaWxlQ29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9GdW5jdGlvbnMvY3JlYXRlVEZpbGVJbnN0YW5jZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NsYXNzZXMvQ3VzdG9tQXJyYXlEaWN0SW1wbC50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0YW50cy9GaWxlRXh0ZW5zaW9uLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RhbnRzL0ludGVybmFsUGx1Z2luTmFtZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0YW50cy9WaWV3VHlwZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9nZXRJbnRlcm5hbFBsdWdpbkNvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL2dldEludGVybmFsUGx1Z2luc0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL2dldEFwcENvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvVHlwZUd1YXJkcy9pc1JlZmVyZW5jZUNhY2hlLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvVHlwZUd1YXJkcy9pc0VtYmVkQ2FjaGUudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9UeXBlR3VhcmRzL2lzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9UeXBlR3VhcmRzL2lzTGlua0NhY2hlLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0T3V0bGluZVZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRCcm93c2VyVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldFJlbGVhc2VOb3Rlc1ZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRQZGZWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0U3luY1ZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRPdXRnb2luZ0xpbmtWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0Q2FudmFzVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldFRhZ1ZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRBdWRpb1ZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRMb2NhbEdyYXBoVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldEJhY2tsaW5rVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldEZpbGVFeHBsb3JlclZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRTZWFyY2hWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0VmlkZW9WaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0SW1hZ2VWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0QnJvd3Nlckhpc3RvcnlWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0RW1wdHlWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0R3JhcGhWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0RmlsZVByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0Qm9va21hcmtzVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldE1hcmtkb3duVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldEFsbFByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBmcm9tICcuL0Z1bmN0aW9ucy9jcmVhdGVURm9sZGVySW5zdGFuY2UuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9GdW5jdGlvbnMvY3JlYXRlVEZpbGVJbnN0YW5jZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NsYXNzZXMvQ3VzdG9tQXJyYXlEaWN0SW1wbC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0YW50cy9GaWxlRXh0ZW5zaW9uLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RhbnRzL1ZpZXdUeXBlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RhbnRzL0ludGVybmFsUGx1Z2luTmFtZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL1V0aWxzL1BhdGhVdGlscy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9nZXRJbnRlcm5hbFBsdWdpbkNvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL2dldEludGVybmFsUGx1Z2luc0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL2dldFRGb2xkZXJDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9nZXRBcHBDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9nZXRURmlsZUNvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vVHlwZUd1YXJkcy9pc0VtYmVkQ2FjaGUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9UeXBlR3VhcmRzL2lzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9UeXBlR3VhcmRzL2lzUmVmZXJlbmNlQ2FjaGUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9UeXBlR3VhcmRzL2lzTGlua0NhY2hlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldE91dGxpbmVWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0QnJvd3NlclZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRSZWxlYXNlTm90ZXNWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0UGRmVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0U3luY1ZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRPdXRnb2luZ0xpbmtWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0Q2FudmFzVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldFRhZ1ZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRBdWRpb1ZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRMb2NhbEdyYXBoVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldEJhY2tsaW5rVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldEZpbGVFeHBsb3JlclZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRTZWFyY2hWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0VmlkZW9WaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0SW1hZ2VWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0QnJvd3Nlckhpc3RvcnlWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0RW1wdHlWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0R3JhcGhWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0RmlsZVByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0Qm9va21hcmtzVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldE1hcmtkb3duVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldEFsbFByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IuanMnO1xuaW1wb3J0ICcuLi8uLi9pbmRleC5qcyc7XG4iLCAiaW1wb3J0IHtcbiAgICBURm9sZGVyXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVEZvbGRlckNvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9URm9sZGVyQ29uc3RydWN0b3IudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgVEZvbGRlciBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgVEZvbGRlciBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRGb2xkZXJDb25zdHJ1Y3RvcigpOiBURm9sZGVyQ29uc3RydWN0b3Ige1xuICAgIHJldHVybiBURm9sZGVyIGFzIFRGb2xkZXJDb25zdHJ1Y3Rvcjtcbn1cbiIsICIvKipcbiAqIEdldCB0aGUgcGFyZW50IGZvbGRlciBwYXRoIG9mIGEgZ2l2ZW4gcGF0aC5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIGdldCB0aGUgcGFyZW50IGZvbGRlciBwYXRoIG9mLlxuICogQHJldHVybnMgVGhlIHBhcmVudCBmb2xkZXIgcGF0aC5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcmVudEZvbGRlclBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXC8/W15cXC9dKiQvLCAnJykgfHwgJy8nO1xufVxuIiwgImltcG9ydCB7XG4gICAgdHlwZSBBcHAsXG4gICAgVEZvbGRlclxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgeyBnZXRURm9sZGVyQ29uc3RydWN0b3IgfSBmcm9tICcuLi9Db25zdHJ1Y3RvcnMvZ2V0VEZvbGRlckNvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IHBhcmVudEZvbGRlclBhdGggfSBmcm9tICcuLi9VdGlscy9QYXRoVXRpbHMuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW5kIHByb3Blcmx5IGluaXRpYWxpemVzIHRoZSBpbnN0YW5jZSBvZiBURm9sZGVyIGV2ZW4gdGhlIHVuZGVybHlpbmcgZm9sZGVyIGRvZXMgbm90IGV4aXN0LlxuICogVGhpcyBkb2Vzbid0IGNyZWF0ZSB0aGUgbWlzc2luZyBmb2xkZXIgb24gdGhlIGZpbGUgc3lzdGVtLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVEZvbGRlckluc3RhbmNlKGFwcDogQXBwLCBwYXRoOiBzdHJpbmcpOiBURm9sZGVyIHtcbiAgICBsZXQgZm9sZGVyID0gYXBwLnZhdWx0LmdldEZvbGRlckJ5UGF0aChwYXRoKTtcbiAgICBpZiAoZm9sZGVyKSB7XG4gICAgICAgIHJldHVybiBmb2xkZXI7XG4gICAgfVxuXG4gICAgZm9sZGVyID0gbmV3IChnZXRURm9sZGVyQ29uc3RydWN0b3IoKSkoYXBwLnZhdWx0LCBwYXRoKTtcbiAgICBmb2xkZXIucGFyZW50ID0gY3JlYXRlVEZvbGRlckluc3RhbmNlKGFwcCwgcGFyZW50Rm9sZGVyUGF0aChwYXRoKSk7XG4gICAgZm9sZGVyLmRlbGV0ZWQgPSB0cnVlO1xuICAgIHJldHVybiBmb2xkZXI7XG59XG4iLCAiaW1wb3J0IHtcbiAgICBURmlsZVxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFRGaWxlQ29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1RGaWxlQ29uc3RydWN0b3IudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgVEZpbGUgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIFRGaWxlIGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VEZpbGVDb25zdHJ1Y3RvcigpOiBURmlsZUNvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gVEZpbGUgYXMgVEZpbGVDb25zdHJ1Y3Rvcjtcbn1cbiIsICJpbXBvcnQge1xuICAgIHR5cGUgQXBwLFxuICAgIFRGaWxlXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7IGdldFRGaWxlQ29uc3RydWN0b3IgfSBmcm9tICcuLi9Db25zdHJ1Y3RvcnMvZ2V0VEZpbGVDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBwYXJlbnRGb2xkZXJQYXRoIH0gZnJvbSAnLi4vVXRpbHMvUGF0aFV0aWxzLmpzJztcbmltcG9ydCB7IGNyZWF0ZVRGb2xkZXJJbnN0YW5jZSB9IGZyb20gJy4vY3JlYXRlVEZvbGRlckluc3RhbmNlLnRzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuZCBwcm9wZXJseSBpbml0aWFsaXplcyB0aGUgaW5zdGFuY2Ugb2YgVEZpbGUgZXZlbiB0aGUgdW5kZXJseWluZyBmaWxlIGRvZXMgbm90IGV4aXN0LlxuICogVGhpcyBkb2Vzbid0IGNyZWF0ZSB0aGUgbWlzc2luZyBmaWxlIG9uIHRoZSBmaWxlIHN5c3RlbS5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRGaWxlSW5zdGFuY2UoYXBwOiBBcHAsIHBhdGg6IHN0cmluZyk6IFRGaWxlIHtcbiAgICBsZXQgZmlsZSA9IGFwcC52YXVsdC5nZXRGaWxlQnlQYXRoKHBhdGgpO1xuICAgIGlmIChmaWxlKSB7XG4gICAgICAgIHJldHVybiBmaWxlO1xuICAgIH1cblxuICAgIGZpbGUgPSBuZXcgKGdldFRGaWxlQ29uc3RydWN0b3IoKSkoYXBwLnZhdWx0LCBwYXRoKTtcbiAgICBmaWxlLnBhcmVudCA9IGNyZWF0ZVRGb2xkZXJJbnN0YW5jZShhcHAsIHBhcmVudEZvbGRlclBhdGgocGF0aCkpO1xuICAgIGZpbGUuZGVsZXRlZCA9IHRydWU7XG4gICAgcmV0dXJuIGZpbGU7XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBDdXN0b21BcnJheURpY3QgfSBmcm9tICcuLi8uLi9pbnRlcm5hbHMvQ3VzdG9tQXJyYXlEaWN0LmpzJztcblxuLyoqIEBwdWJsaWMgKi9cbmV4cG9ydCBjbGFzcyBDdXN0b21BcnJheURpY3RJbXBsPFQ+IGltcGxlbWVudHMgQ3VzdG9tQXJyYXlEaWN0PFQ+IHtcbiAgICBwdWJsaWMgZGF0YTogTWFwPHN0cmluZywgVFtdPiA9IG5ldyBNYXAoKTtcblxuICAgIHB1YmxpYyBhZGQoa2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIGxldCB2YWx1ZXMgPSB0aGlzLmdldChrZXkpO1xuICAgICAgICBpZiAoIXZhbHVlcykge1xuICAgICAgICAgICAgdmFsdWVzID0gW107XG4gICAgICAgICAgICB0aGlzLmRhdGEuc2V0KGtleSwgdmFsdWVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdmFsdWVzLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWVzLnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZShrZXk6IHN0cmluZywgdmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKCF2YWx1ZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZXMucmVtb3ZlKHZhbHVlKTtcblxuICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5jbGVhcihrZXkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldChrZXk6IHN0cmluZyk6IFRbXSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmdldChrZXkpIHx8IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGtleXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmRhdGEua2V5cygpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXIoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhLmRlbGV0ZShrZXkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhckFsbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnRhaW5zKGtleTogc3RyaW5nLCB2YWx1ZTogVCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmdldChrZXkpPy5jb250YWlucyh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvdW50KCk6IG51bWJlciB7XG4gICAgICAgIGxldCBhbnMgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmtleXMoKSkge1xuICAgICAgICAgICAgYW5zICs9IHRoaXMuZ2V0KGtleSk/Lmxlbmd0aCA/PyAwO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFucztcbiAgICB9XG59XG4iLCAiLyoqIEBwdWJsaWMgKi9cbmV4cG9ydCBjb25zdCBGaWxlRXh0ZW5zaW9uID0ge1xuICAgIF8zZ3A6ICczZ3AnLFxuICAgIGF2aWY6ICdhdmlmJyxcbiAgICBibXA6ICdibXAnLFxuICAgIGNhbnZhczogJ2NhbnZhcycsXG4gICAgZmxhYzogJ2ZsYWMnLFxuICAgIGdpZjogJ2dpZicsXG4gICAganBlZzogJ2pwZWcnLFxuICAgIGpwZzogJ2pwZycsXG4gICAgbTRhOiAnbTRhJyxcbiAgICBtZDogJ21kJyxcbiAgICBta3Y6ICdta3YnLFxuICAgIG1vdjogJ21vdicsXG4gICAgbXAzOiAnbXAzJyxcbiAgICBtcDQ6ICdtcDQnLFxuICAgIG9nYTogJ29nYScsXG4gICAgb2dnOiAnb2dnJyxcbiAgICBvZ3Y6ICdvZ3YnLFxuICAgIG9wdXM6ICdvcHVzJyxcbiAgICBwZGY6ICdwZGYnLFxuICAgIHBuZzogJ3BuZycsXG4gICAgc3ZnOiAnc3ZnJyxcbiAgICB3YXY6ICd3YXYnLFxuICAgIHdlYm06ICd3ZWJtJyxcbiAgICB3ZWJwOiAnd2VicCdcbn0gYXMgY29uc3Q7XG4iLCAiLyoqIEBwdWJsaWMgKi9cbmV4cG9ydCBjb25zdCBJbnRlcm5hbFBsdWdpbk5hbWUgPSB7XG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IEF1ZGlvIHJlY29yZGVyXG4gICAgICovXG4gICAgQXVkaW9SZWNvcmRlcjogJ2F1ZGlvLXJlY29yZGVyJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogQmFja2xpbmtzXG4gICAgICovXG4gICAgQmFja2xpbms6ICdiYWNrbGluaycsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IEJvb2ttYXJrc1xuICAgICAqL1xuICAgIEJvb2ttYXJrczogJ2Jvb2ttYXJrcycsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IFdlYiB2aWV3ZXJcbiAgICAgKi9cbiAgICBCcm93c2VyOiAnYnJvd3NlcicsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IENhbnZhc1xuICAgICAqL1xuICAgIENhbnZhczogJ2NhbnZhcycsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IENvbW1hbmQgcGFsZXR0ZVxuICAgICAqL1xuICAgIENvbW1hbmRQYWxldHRlOiAnY29tbWFuZC1wYWxldHRlJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogRGFpbHkgbm90ZXNcbiAgICAgKi9cbiAgICBEYWlseU5vdGVzOiAnZGFpbHktbm90ZXMnLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiAoaGlkZGVuKVxuICAgICAqL1xuICAgIEVkaXRvclN0YXR1czogJ2VkaXRvci1zdGF0dXMnLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiBGaWxlc1xuICAgICAqL1xuICAgIEZpbGVFeHBsb3JlcjogJ2ZpbGUtZXhwbG9yZXInLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiBGaWxlIHJlY292ZXJ5XG4gICAgICovXG4gICAgRmlsZVJlY292ZXJ5OiAnZmlsZS1yZWNvdmVyeScsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IFNlYXJjaFxuICAgICAqL1xuICAgIEdsb2JhbFNlYXJjaDogJ2dsb2JhbC1zZWFyY2gnLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiBHcmFwaCB2aWV3XG4gICAgICovXG4gICAgR3JhcGg6ICdncmFwaCcsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IEZvcm1hdCBjb252ZXJ0ZXJcbiAgICAgKi9cbiAgICBNYXJrZG93bkltcG9ydGVyOiAnbWFya2Rvd24taW1wb3J0ZXInLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiBOb3RlIGNvbXBvc2VyXG4gICAgICovXG4gICAgTm90ZUNvbXBvc2VyOiAnbm90ZS1jb21wb3NlcicsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IE91dGdvaW5nIGxpbmtzXG4gICAgICovXG4gICAgT3V0Z29pbmdMaW5rOiAnb3V0Z29pbmctbGluaycsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IE91dGxpbmVcbiAgICAgKi9cbiAgICBPdXRsaW5lOiAnb3V0bGluZScsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IFBhZ2UgcHJldmlld1xuICAgICAqL1xuICAgIFBhZ2VQcmV2aWV3OiAncGFnZS1wcmV2aWV3JyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogUHJvcGVydGllcyB2aWV3XG4gICAgICovXG4gICAgUHJvcGVydGllczogJ3Byb3BlcnRpZXMnLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiBQdWJsaXNoXG4gICAgICovXG4gICAgUHVibGlzaDogJ3B1Ymxpc2gnLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiBSYW5kb20gbm90ZVxuICAgICAqL1xuICAgIFJhbmRvbU5vdGU6ICdyYW5kb20tbm90ZScsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IFNsYXNoIGNvbW1hbmRzXG4gICAgICovXG4gICAgU2xhc2hDb21tYW5kOiAnc2xhc2gtY29tbWFuZCcsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IFNsaWRlc1xuICAgICAqL1xuICAgIFNsaWRlczogJ3NsaWRlcycsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IFF1aWNrIFN3aXRjaGVyXG4gICAgICovXG4gICAgU3dpdGNoZXI6ICdzd2l0Y2hlcicsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IFN5bmNcbiAgICAgKi9cbiAgICBTeW5jOiAnc3luYycsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IFRhZ3Mgdmlld1xuICAgICAqL1xuICAgIFRhZ1BhbmU6ICd0YWctcGFuZScsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IFRlbXBsYXRlc1xuICAgICAqL1xuICAgIFRlbXBsYXRlczogJ3RlbXBsYXRlcycsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IFdvcmQgY291bnRcbiAgICAgKi9cbiAgICBXb3JkQ291bnQ6ICd3b3JkLWNvdW50JyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogV29ya3NwYWNlc1xuICAgICAqL1xuICAgIFdvcmtzcGFjZXM6ICd3b3Jrc3BhY2VzJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogVW5pcXVlIG5vdGUgY3JlYXRvclxuICAgICAqL1xuICAgIFprUHJlZml4ZXI6ICd6ay1wcmVmaXhlcidcbn0gYXMgY29uc3Q7XG4iLCAiaW1wb3J0IHsgSW50ZXJuYWxQbHVnaW5OYW1lIH0gZnJvbSAnLi9JbnRlcm5hbFBsdWdpbk5hbWUuanMnO1xuXG4vKiogQHB1YmxpYyAqL1xuZXhwb3J0IGNvbnN0IFZpZXdUeXBlID0ge1xuICAgIEFsbFByb3BlcnRpZXM6ICdhbGwtcHJvcGVydGllcycsXG4gICAgQXVkaW86ICdhdWRpbycsXG4gICAgQmFja2xpbms6IEludGVybmFsUGx1Z2luTmFtZS5CYWNrbGluayxcbiAgICBCb29rbWFya3M6IEludGVybmFsUGx1Z2luTmFtZS5Cb29rbWFya3MsXG4gICAgQnJvd3NlcjogJ2Jyb3dzZXInLFxuICAgIEJyb3dzZXJIaXN0b3J5OiAnYnJvd3Nlci1oaXN0b3J5JyxcbiAgICBDYW52YXM6IEludGVybmFsUGx1Z2luTmFtZS5DYW52YXMsXG4gICAgRW1wdHk6ICdlbXB0eScsXG4gICAgRmlsZUV4cGxvcmVyOiBJbnRlcm5hbFBsdWdpbk5hbWUuRmlsZUV4cGxvcmVyLFxuICAgIEZpbGVQcm9wZXJ0aWVzOiAnZmlsZS1wcm9wZXJ0aWVzJyxcbiAgICBHcmFwaDogSW50ZXJuYWxQbHVnaW5OYW1lLkdyYXBoLFxuICAgIEltYWdlOiAnaW1hZ2UnLFxuICAgIExvY2FsR3JhcGg6ICdsb2NhbGdyYXBoJyxcbiAgICBNYXJrZG93bjogJ21hcmtkb3duJyxcbiAgICBPdXRnb2luZ0xpbms6IEludGVybmFsUGx1Z2luTmFtZS5PdXRnb2luZ0xpbmssXG4gICAgT3V0bGluZTogSW50ZXJuYWxQbHVnaW5OYW1lLk91dGxpbmUsXG4gICAgUGRmOiAncGRmJyxcbiAgICBSZWxlYXNlTm90ZXM6ICdyZWxlYXNlLW5vdGVzJyxcbiAgICBTZWFyY2g6ICdzZWFyY2gnLFxuICAgIFN5bmM6ICdzeW5jJyxcbiAgICBUYWc6ICd0YWcnLFxuICAgIFZpZGVvOiAndmlkZW8nXG59IGFzIGNvbnN0O1xuIiwgImltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbFBsdWdpbkNvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9JbnRlcm5hbFBsdWdpbkNvbnN0cnVjdG9yLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIEludGVybmFsUGx1Z2luIGNvbnN0cnVjdG9yLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwIGluc3RhbmNlLlxuICogQHJldHVybnMgVGhlIEludGVybmFsUGx1Z2luIGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxQbHVnaW5Db25zdHJ1Y3RvcjxJbnN0YW5jZT4oYXBwOiBBcHApOiBJbnRlcm5hbFBsdWdpbkNvbnN0cnVjdG9yPEluc3RhbmNlPiB7XG4gICAgY29uc3QgYW55UGx1Z2luID0gT2JqZWN0LnZhbHVlcyhhcHAuaW50ZXJuYWxQbHVnaW5zLnBsdWdpbnMpWzBdO1xuICAgIGlmICghYW55UGx1Z2luKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gaW50ZXJuYWwgcGx1Z2luIGZvdW5kJyk7XG4gICAgfVxuICAgIHJldHVybiBhbnlQbHVnaW4uY29uc3RydWN0b3IgYXMgSW50ZXJuYWxQbHVnaW5Db25zdHJ1Y3RvcjxJbnN0YW5jZT47XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IEludGVybmFsUGx1Z2luc0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9JbnRlcm5hbFBsdWdpbnNDb25zdHJ1Y3Rvci50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBJbnRlcm5hbFBsdWdpbnMgY29uc3RydWN0b3IuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHAgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBUaGUgSW50ZXJuYWxQbHVnaW5zIGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxQbHVnaW5zQ29uc3RydWN0b3IoYXBwOiBBcHApOiBJbnRlcm5hbFBsdWdpbnNDb25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIGFwcC5pbnRlcm5hbFBsdWdpbnMuY29uc3RydWN0b3IgYXMgSW50ZXJuYWxQbHVnaW5zQ29uc3RydWN0b3I7XG59XG4iLCAiaW1wb3J0IHtcbiAgICBBcHBcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBBcHBDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvQXBwQ29uc3RydWN0b3IudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgQXBwIGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBBcHAgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBcHBDb25zdHJ1Y3RvcigpOiBBcHBDb25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIEFwcCBhcyBBcHBDb25zdHJ1Y3Rvcjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7XG4gICAgUmVmZXJlbmNlLFxuICAgIFJlZmVyZW5jZUNhY2hlXG59IGZyb20gJ29ic2lkaWFuJztcblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgcmVmZXJlbmNlIGlzIGEgcmVmZXJlbmNlIGNhY2hlLlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2UgLSBUaGUgcmVmZXJlbmNlIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgcmVmZXJlbmNlIGlzIGEgcmVmZXJlbmNlIGNhY2hlLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNSZWZlcmVuY2VDYWNoZShyZWZlcmVuY2U6IFJlZmVyZW5jZSk6IHJlZmVyZW5jZSBpcyBSZWZlcmVuY2VDYWNoZSB7XG4gICAgcmV0dXJuICEhKHJlZmVyZW5jZSBhcyBQYXJ0aWFsPFJlZmVyZW5jZUNhY2hlPikucG9zaXRpb247XG59XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIEVtYmVkQ2FjaGUsXG4gICAgUmVmZXJlbmNlXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7IGlzUmVmZXJlbmNlQ2FjaGUgfSBmcm9tICcuL2lzUmVmZXJlbmNlQ2FjaGUudHMnO1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSByZWZlcmVuY2UgaXMgYW4gZW1iZWQgY2FjaGUuXG4gKlxuICogQHBhcmFtIHJlZmVyZW5jZSAtIFRoZSByZWZlcmVuY2UgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSByZWZlcmVuY2UgaXMgYW4gZW1iZWQgY2FjaGUuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0VtYmVkQ2FjaGUocmVmZXJlbmNlOiBSZWZlcmVuY2UpOiByZWZlcmVuY2UgaXMgRW1iZWRDYWNoZSB7XG4gICAgcmV0dXJuIGlzUmVmZXJlbmNlQ2FjaGUocmVmZXJlbmNlKSAmJiByZWZlcmVuY2Uub3JpZ2luYWxbMF0gPT09ICchJztcbn1cbiIsICJpbXBvcnQgdHlwZSB7XG4gICAgRnJvbnRtYXR0ZXJMaW5rQ2FjaGUsXG4gICAgUmVmZXJlbmNlXG59IGZyb20gJ29ic2lkaWFuJztcblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgcmVmZXJlbmNlIGlzIGEgZnJvbnRtYXR0ZXIgbGluayBjYWNoZS5cbiAqXG4gKiBAcGFyYW0gcmVmZXJlbmNlIC0gVGhlIHJlZmVyZW5jZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHJlZmVyZW5jZSBpcyBhIGZyb250bWF0dGVyIGxpbmsgY2FjaGUuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Zyb250bWF0dGVyTGlua0NhY2hlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIEZyb250bWF0dGVyTGlua0NhY2hlIHtcbiAgICByZXR1cm4gISEocmVmZXJlbmNlIGFzIFBhcnRpYWw8RnJvbnRtYXR0ZXJMaW5rQ2FjaGU+KS5rZXk7XG59XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIExpbmtDYWNoZSxcbiAgICBSZWZlcmVuY2Vcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHsgaXNSZWZlcmVuY2VDYWNoZSB9IGZyb20gJy4vaXNSZWZlcmVuY2VDYWNoZS50cyc7XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIHJlZmVyZW5jZSBpcyBhIGxpbmsgY2FjaGUuXG4gKlxuICogQHBhcmFtIHJlZmVyZW5jZSAtIFRoZSByZWZlcmVuY2UgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSByZWZlcmVuY2UgaXMgYSBsaW5rIGNhY2hlLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNMaW5rQ2FjaGUocmVmZXJlbmNlOiBSZWZlcmVuY2UpOiByZWZlcmVuY2UgaXMgTGlua0NhY2hlIHtcbiAgICByZXR1cm4gaXNSZWZlcmVuY2VDYWNoZShyZWZlcmVuY2UpICYmIHJlZmVyZW5jZS5vcmlnaW5hbFswXSAhPT0gJyEnO1xufVxuIiwgImltcG9ydCB0eXBlIHtcbiAgICBBcHAsXG4gICAgQ29uc3RydWN0b3IsXG4gICAgVmlld1xufSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogR2V0IHRoZSB2aWV3IGNvbnN0cnVjdG9yIGJ5IHZpZXcgdHlwZS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcC5cbiAqIEBwYXJhbSB2aWV3VHlwZSAtIFRoZSB2aWV3IHR5cGUuXG4gKiBAcmV0dXJucyBUaGUgdmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGU8VFZpZXcgZXh0ZW5kcyBWaWV3ID0gVmlldz4oXG4gICAgYXBwOiBBcHAsXG4gICAgdmlld1R5cGU6IHN0cmluZ1xuKTogQ29uc3RydWN0b3I8VFZpZXc+IHtcbiAgICBjb25zdCBsZWFmID0gYXBwLndvcmtzcGFjZS5jcmVhdGVMZWFmSW5UYWJHcm91cCgpO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHZpZXdDcmVhdG9yID0gYXBwLnZpZXdSZWdpc3RyeS5nZXRWaWV3Q3JlYXRvckJ5VHlwZSh2aWV3VHlwZSk7XG4gICAgICAgIGlmICghdmlld0NyZWF0b3IpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVmlldyBjcmVhdG9yIG5vdCBmb3VuZCcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZpZXcgPSB2aWV3Q3JlYXRvcihsZWFmKTtcbiAgICAgICAgcmV0dXJuIHZpZXcuY29uc3RydWN0b3IgYXMgQ29uc3RydWN0b3I8VFZpZXc+O1xuICAgIH0gZmluYWxseSB7XG4gICAgICAgIGxlYWYuZGV0YWNoKCk7XG4gICAgfVxufVxuIiwgImltcG9ydCB0eXBlIHtcbiAgICBBcHBcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBPdXRsaW5lVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9PdXRsaW5lVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgT3V0bGluZVZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIE91dGxpbmVWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3V0bGluZVZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IE91dGxpbmVWaWV3Q29uc3RydWN0b3Ige1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuT3V0bGluZSkgYXMgT3V0bGluZVZpZXdDb25zdHJ1Y3Rvcjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7XG4gICAgQXBwXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgQnJvd3NlclZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvQnJvd3NlclZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIEJyb3dzZXJWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBCcm93c2VyVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJyb3dzZXJWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBCcm93c2VyVmlld0NvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLkJyb3dzZXIpIGFzIEJyb3dzZXJWaWV3Q29uc3RydWN0b3I7XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IFJlbGVhc2VOb3Rlc1ZpZXcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvVmlld3MvUmVsZWFzZU5vdGVzVmlldy5qcyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIFJlbGVhc2VOb3Rlc1ZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIFJlbGVhc2VOb3Rlc1ZpZXcgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWxlYXNlTm90ZXNWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxSZWxlYXNlTm90ZXNWaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5SZWxlYXNlTm90ZXMpIGFzIFR5cGVkVmlld0NvbnN0cnVjdG9yPFJlbGVhc2VOb3Rlc1ZpZXc+O1xufVxuIiwgImltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBUeXBlZFZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvVHlwZWRWaWV3Q29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHR5cGUgeyBQZGZWaWV3IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL1ZpZXdzL1BkZlZpZXcuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBQZGZWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBQZGZWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGRmVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogVHlwZWRWaWV3Q29uc3RydWN0b3I8UGRmVmlldz4ge1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuUGRmKSBhcyBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxQZGZWaWV3Pjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7XG4gICAgQXBwXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgU3luY1ZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvU3luY1ZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIFN5bmNWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBTeW5jVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN5bmNWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBTeW5jVmlld0NvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLlN5bmMpIGFzIFN5bmNWaWV3Q29uc3RydWN0b3I7XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IE91dGdvaW5nTGlua1ZpZXcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvSW50ZXJuYWxQbHVnaW5zL091dGdvaW5nTGluay9PdXRnb2luZ0xpbmtWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgT3V0Z29pbmdMaW5rVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgT3V0Z29pbmdMaW5rVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE91dGdvaW5nTGlua1ZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPE91dGdvaW5nTGlua1ZpZXc+IHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLk91dGdvaW5nTGluaykgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8T3V0Z29pbmdMaW5rVmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIEFwcFxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IENhbnZhc1ZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvQ2FudmFzVmlld0NvbnN0cnVjdG9yLmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgQ2FudmFzVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgQ2FudmFzVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENhbnZhc1ZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IENhbnZhc1ZpZXdDb25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5DYW52YXMpIGFzIENhbnZhc1ZpZXdDb25zdHJ1Y3Rvcjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgVGFnVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9WaWV3cy9UYWdWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgVGFnVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgVGFnVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRhZ1ZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPFRhZ1ZpZXc+IHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLlRhZykgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8VGFnVmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IEF1ZGlvVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9WaWV3cy9BdWRpb1ZpZXcuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBBdWRpb1ZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIEF1ZGlvVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEF1ZGlvVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogVHlwZWRWaWV3Q29uc3RydWN0b3I8QXVkaW9WaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5BdWRpbykgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8QXVkaW9WaWV3Pjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgTG9jYWxHcmFwaFZpZXcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvSW50ZXJuYWxQbHVnaW5zL0dyYXBoL0xvY2FsR3JhcGhWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgTG9jYWxHcmFwaFZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIExvY2FsR3JhcGhWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxHcmFwaFZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPExvY2FsR3JhcGhWaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5Mb2NhbEdyYXBoKSBhcyBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxMb2NhbEdyYXBoVmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IEJhY2tsaW5rVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9JbnRlcm5hbFBsdWdpbnMvQmFja2xpbmsvQmFja2xpbmtWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgQmFja2xpbmtWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBCYWNrbGlua1ZpZXcgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRCYWNrbGlua1ZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPEJhY2tsaW5rVmlldz4ge1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuQmFja2xpbmspIGFzIFR5cGVkVmlld0NvbnN0cnVjdG9yPEJhY2tsaW5rVmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IEZpbGVFeHBsb3JlclZpZXcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvSW50ZXJuYWxQbHVnaW5zL0ZpbGVFeHBsb3Jlci9GaWxlRXhwbG9yZXJWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgRmlsZUV4cGxvcmVyVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgRmlsZUV4cGxvcmVyVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVFeHBsb3JlclZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPEZpbGVFeHBsb3JlclZpZXc+IHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLkZpbGVFeHBsb3JlcikgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8RmlsZUV4cGxvcmVyVmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IFNlYXJjaFZpZXcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvSW50ZXJuYWxQbHVnaW5zL0dsb2JhbFNlYXJjaC9TZWFyY2hWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgU2VhcmNoVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgU2VhcmNoVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNlYXJjaFZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPFNlYXJjaFZpZXc+IHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLlNlYXJjaCkgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8U2VhcmNoVmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IFZpZGVvVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9WaWV3cy9WaWRlb1ZpZXcuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBWaWRlb1ZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIFZpZGVvVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZpZGVvVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogVHlwZWRWaWV3Q29uc3RydWN0b3I8VmlkZW9WaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5WaWRlbykgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8VmlkZW9WaWV3Pjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgSW1hZ2VWaWV3IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL1ZpZXdzL0ltYWdlVmlldy5qcyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIEltYWdlVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgSW1hZ2VWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW1hZ2VWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxJbWFnZVZpZXc+IHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLkltYWdlKSBhcyBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxJbWFnZVZpZXc+O1xufVxuIiwgImltcG9ydCB0eXBlIHtcbiAgICBBcHBcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUge1xuICAgIEJyb3dzZXJIaXN0b3J5Vmlld0NvbnN0cnVjdG9yXG59IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvQnJvd3Nlckhpc3RvcnlWaWV3Q29uc3RydWN0b3IuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBCcm93c2VySGlzdG9yeVZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIEJyb3dzZXJIaXN0b3J5VmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJyb3dzZXJIaXN0b3J5Vmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogQnJvd3Nlckhpc3RvcnlWaWV3Q29uc3RydWN0b3Ige1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuQnJvd3Nlckhpc3RvcnkpIGFzIEJyb3dzZXJIaXN0b3J5Vmlld0NvbnN0cnVjdG9yO1xufVxuIiwgImltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBUeXBlZFZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvVHlwZWRWaWV3Q29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHR5cGUgeyBFbXB0eVZpZXcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvVmlld3MvRW1wdHlWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgRW1wdHlWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBFbXB0eVZpZXcgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbXB0eVZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPEVtcHR5Vmlldz4ge1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuRW1wdHkpIGFzIFR5cGVkVmlld0NvbnN0cnVjdG9yPEVtcHR5Vmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IEdyYXBoVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9JbnRlcm5hbFBsdWdpbnMvR3JhcGgvR3JhcGhWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgR3JhcGhWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBHcmFwaFZpZXcgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRHcmFwaFZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPEdyYXBoVmlldz4ge1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuR3JhcGgpIGFzIFR5cGVkVmlld0NvbnN0cnVjdG9yPEdyYXBoVmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIEFwcFxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7XG4gICAgRmlsZVByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3Jcbn0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9GaWxlUHJvcGVydGllc1ZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIEZpbGVQcm9wZXJ0aWVzVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgRmlsZVByb3BlcnRpZXNWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZVByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBGaWxlUHJvcGVydGllc1ZpZXdDb25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5GaWxlUHJvcGVydGllcykgYXMgRmlsZVByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3I7XG59XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIEFwcFxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IEJvb2ttYXJrc1ZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvQm9va21hcmtzVmlld0NvbnN0cnVjdG9yLmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgQm9va21hcmtzVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgQm9va21hcmtzVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJvb2ttYXJrc1ZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IEJvb2ttYXJrc1ZpZXdDb25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5Cb29rbWFya3MpIGFzIEJvb2ttYXJrc1ZpZXdDb25zdHJ1Y3Rvcjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7XG4gICAgQXBwLFxuICAgIE1hcmtkb3duVmlld1xufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIE1hcmtkb3duVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgTWFya2Rvd25WaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWFya2Rvd25WaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxNYXJrZG93blZpZXc+IHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLk1hcmtkb3duKSBhcyBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxNYXJrZG93blZpZXc+O1xufVxuIiwgImltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBUeXBlZFZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvVHlwZWRWaWV3Q29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHR5cGUgeyBBbGxQcm9wZXJ0aWVzVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9JbnRlcm5hbFBsdWdpbnMvUHJvcGVydGllcy9BbGxQcm9wZXJ0aWVzVmlldy5qcyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIEFsbFByb3BlcnRpZXNWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBBbGxQcm9wZXJ0aWVzVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbFByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxBbGxQcm9wZXJ0aWVzVmlldz4ge1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuQWxsUHJvcGVydGllcykgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8QWxsUHJvcGVydGllc1ZpZXc+O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7OztBQ0FBLHNCQUVPO0FBU0EsU0FBUyx3QkFBNEM7QUFDeEQsU0FBTztBQUNYOzs7QUNOTyxTQUFTLGlCQUFpQixNQUFzQjtBQUNuRCxTQUFPLEtBQUssUUFBUSxjQUFjLEVBQUUsS0FBSztBQUM3Qzs7O0FDR08sU0FBUyxzQkFBc0IsS0FBVSxNQUF1QjtBQUNuRSxNQUFJLFNBQVMsSUFBSSxNQUFNLGdCQUFnQixJQUFJO0FBQzNDLE1BQUksUUFBUTtBQUNSLFdBQU87QUFBQSxFQUNYO0FBRUEsV0FBUyxLQUFLLHNCQUFzQixHQUFHLElBQUksT0FBTyxJQUFJO0FBQ3RELFNBQU8sU0FBUyxzQkFBc0IsS0FBSyxpQkFBaUIsSUFBSSxDQUFDO0FBQ2pFLFNBQU8sVUFBVTtBQUNqQixTQUFPO0FBQ1g7OztBQ3RCQSxJQUFBQSxtQkFFTztBQVNBLFNBQVMsc0JBQXdDO0FBQ3BELFNB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QUFPLDZCQUE2QixLQUFLLFNBQVMsS0FBSztBQUMzRDs7O0FDRk8sU0FBUyx3QkFBd0IsS0FBMkM7QUFDL0UsU0FBTyw2QkFBNkIsS0FBSyxTQUFTLEtBQUs7QUFDM0Q7OztBQ0NPLFNBQVMsaUNBQWlDLEtBQXlDO0FBQ3RGLFNBQU8sNkJBQTZCLEtBQUssU0FBUyxjQUFjO0FBQ3BFOzs7QUNMTyxTQUFTLHdCQUF3QixLQUEyQztBQUMvRSxTQUFPLDZCQUE2QixLQUFLLFNBQVMsS0FBSztBQUMzRDs7O0FDRk8sU0FBUyx3QkFBd0IsS0FBMkM7QUFDL0UsU0FBTyw2QkFBNkIsS0FBSyxTQUFTLEtBQUs7QUFDM0Q7OztBQ0NPLFNBQVMsaUNBQWlDLEtBQXlDO0FBQ3RGLFNBQU8sNkJBQTZCLEtBQUssU0FBUyxjQUFjO0FBQ3BFOzs7QUNKTyxTQUFTLDRCQUE0QixLQUFvQztBQUM1RSxTQUFPLDZCQUE2QixLQUFLLFNBQVMsU0FBUztBQUMvRDs7O0FDRE8sU0FBUywyQkFBMkIsS0FBOEM7QUFDckYsU0FBTyw2QkFBNkIsS0FBSyxTQUFTLFFBQVE7QUFDOUQ7OztBQ0pPLFNBQVMsZ0NBQWdDLEtBQW1EO0FBQy9GLFNBQU8sNkJBQTZCLEtBQUssU0FBUyxhQUFhO0FBQ25FOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfb2JzaWRpYW4iLCAiaW1wb3J0X29ic2lkaWFuIl0KfQo=
|
|
@@ -111,7 +111,6 @@ export declare const InternalPluginName: {
|
|
|
111
111
|
readonly Bookmarks: "bookmarks";
|
|
112
112
|
/**
|
|
113
113
|
* Plugin name in UI: Web viewer
|
|
114
|
-
* @remark Currently disabled
|
|
115
114
|
*/
|
|
116
115
|
readonly Browser: "browser";
|
|
117
116
|
/**
|
|
@@ -215,38 +214,6 @@ export declare const InternalPluginName: {
|
|
|
215
214
|
*/
|
|
216
215
|
readonly ZkPrefixer: "zk-prefixer";
|
|
217
216
|
};
|
|
218
|
-
/**
|
|
219
|
-
* Check if the reference is an embed cache.
|
|
220
|
-
*
|
|
221
|
-
* @param reference - The reference to check.
|
|
222
|
-
* @returns Whether the reference is an embed cache.
|
|
223
|
-
* @public
|
|
224
|
-
*/
|
|
225
|
-
export declare function isEmbedCache(reference: Reference): reference is EmbedCache;
|
|
226
|
-
/**
|
|
227
|
-
* Check if the reference is a frontmatter link cache.
|
|
228
|
-
*
|
|
229
|
-
* @param reference - The reference to check.
|
|
230
|
-
* @returns Whether the reference is a frontmatter link cache.
|
|
231
|
-
* @public
|
|
232
|
-
*/
|
|
233
|
-
export declare function isFrontmatterLinkCache(reference: Reference): reference is FrontmatterLinkCache;
|
|
234
|
-
/**
|
|
235
|
-
* Check if the reference is a reference cache.
|
|
236
|
-
*
|
|
237
|
-
* @param reference - The reference to check.
|
|
238
|
-
* @returns Whether the reference is a reference cache.
|
|
239
|
-
* @public
|
|
240
|
-
*/
|
|
241
|
-
export declare function isReferenceCache(reference: Reference): reference is ReferenceCache;
|
|
242
|
-
/**
|
|
243
|
-
* Check if the reference is a link cache.
|
|
244
|
-
*
|
|
245
|
-
* @param reference - The reference to check.
|
|
246
|
-
* @returns Whether the reference is a link cache.
|
|
247
|
-
* @public
|
|
248
|
-
*/
|
|
249
|
-
export declare function isLinkCache(reference: Reference): reference is LinkCache;
|
|
250
217
|
/**
|
|
251
218
|
* Get the parent folder path of a given path.
|
|
252
219
|
*
|
|
@@ -1043,6 +1010,38 @@ export type TFileConstructor = new (vault: Vault, path: string) => TFile;
|
|
|
1043
1010
|
* @public
|
|
1044
1011
|
*/
|
|
1045
1012
|
export declare function getTFileConstructor(): TFileConstructor;
|
|
1013
|
+
/**
|
|
1014
|
+
* Check if the reference is an embed cache.
|
|
1015
|
+
*
|
|
1016
|
+
* @param reference - The reference to check.
|
|
1017
|
+
* @returns Whether the reference is an embed cache.
|
|
1018
|
+
* @public
|
|
1019
|
+
*/
|
|
1020
|
+
export declare function isEmbedCache(reference: Reference): reference is EmbedCache;
|
|
1021
|
+
/**
|
|
1022
|
+
* Check if the reference is a frontmatter link cache.
|
|
1023
|
+
*
|
|
1024
|
+
* @param reference - The reference to check.
|
|
1025
|
+
* @returns Whether the reference is a frontmatter link cache.
|
|
1026
|
+
* @public
|
|
1027
|
+
*/
|
|
1028
|
+
export declare function isFrontmatterLinkCache(reference: Reference): reference is FrontmatterLinkCache;
|
|
1029
|
+
/**
|
|
1030
|
+
* Check if the reference is a reference cache.
|
|
1031
|
+
*
|
|
1032
|
+
* @param reference - The reference to check.
|
|
1033
|
+
* @returns Whether the reference is a reference cache.
|
|
1034
|
+
* @public
|
|
1035
|
+
*/
|
|
1036
|
+
export declare function isReferenceCache(reference: Reference): reference is ReferenceCache;
|
|
1037
|
+
/**
|
|
1038
|
+
* Check if the reference is a link cache.
|
|
1039
|
+
*
|
|
1040
|
+
* @param reference - The reference to check.
|
|
1041
|
+
* @returns Whether the reference is a link cache.
|
|
1042
|
+
* @public
|
|
1043
|
+
*/
|
|
1044
|
+
export declare function isLinkCache(reference: Reference): reference is LinkCache;
|
|
1046
1045
|
/** @todo Documentation incomplete */
|
|
1047
1046
|
/** @public */
|
|
1048
1047
|
export interface OutlineView extends InfoFileView {
|