@alfresco/aca-content 4.4.0-6850445619 → 4.4.0-6862750100
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/assets/app.extensions.json +7 -7
- package/esm2020/folder-rules/folder-rules.rules.mjs +3 -3
- package/esm2020/folder-rules/rule-details/actions/rule-action.ui-component.mjs +1 -1
- package/esm2020/preview/lib/components/preview.component.mjs +2 -2
- package/esm2020/viewer/lib/components/viewer/viewer.component.mjs +2 -2
- package/fesm2015/alfresco-aca-content-folder-rules.mjs +2 -2
- package/fesm2015/alfresco-aca-content-folder-rules.mjs.map +1 -1
- package/fesm2015/alfresco-aca-content-preview.mjs +1 -1
- package/fesm2015/alfresco-aca-content-preview.mjs.map +1 -1
- package/fesm2015/alfresco-aca-content-viewer.mjs +1 -1
- package/fesm2015/alfresco-aca-content-viewer.mjs.map +1 -1
- package/fesm2020/alfresco-aca-content-folder-rules.mjs +2 -2
- package/fesm2020/alfresco-aca-content-folder-rules.mjs.map +1 -1
- package/fesm2020/alfresco-aca-content-preview.mjs +1 -1
- package/fesm2020/alfresco-aca-content-preview.mjs.map +1 -1
- package/fesm2020/alfresco-aca-content-viewer.mjs +1 -1
- package/fesm2020/alfresco-aca-content-viewer.mjs.map +1 -1
- package/folder-rules/rule-details/actions/rule-action.ui-component.d.ts +1 -2
- package/package.json +1 -1
|
@@ -1377,7 +1377,7 @@
|
|
|
1377
1377
|
{
|
|
1378
1378
|
"query": "-TYPE:'cm:thumbnail' AND -TYPE:'cm:failedThumbnail' AND -TYPE:'cm:rating'"
|
|
1379
1379
|
},
|
|
1380
|
-
{ "query": "-cm:creator:System
|
|
1380
|
+
{ "query": "-cm:creator:System" },
|
|
1381
1381
|
{
|
|
1382
1382
|
"query": "-TYPE:'st:site' AND -ASPECT:'st:siteContainer' AND -ASPECT:'sys:hidden'"
|
|
1383
1383
|
},
|
|
@@ -1386,7 +1386,7 @@
|
|
|
1386
1386
|
},
|
|
1387
1387
|
{ "query": "-TYPE:'fm:topic' AND -TYPE:'fm:post'" },
|
|
1388
1388
|
{ "query": "-TYPE:'lnk:link'" },
|
|
1389
|
-
{ "query": "-
|
|
1389
|
+
{ "query": "-PATH:'//cm:wiki/*'" }
|
|
1390
1390
|
],
|
|
1391
1391
|
"facetFields": {
|
|
1392
1392
|
"expanded": true,
|
|
@@ -1479,7 +1479,7 @@
|
|
|
1479
1479
|
"hideDefaultAction": true,
|
|
1480
1480
|
"allowOnlyPredefinedValues": false,
|
|
1481
1481
|
"field": "SITE",
|
|
1482
|
-
"autocompleteOptions": [ {"value": "_REPOSITORY_"} ]
|
|
1482
|
+
"autocompleteOptions": [ { "value": "_REPOSITORY_", "query": "PATH:'/app:company_home/\/*'" } ]
|
|
1483
1483
|
}
|
|
1484
1484
|
}
|
|
1485
1485
|
},
|
|
@@ -1568,7 +1568,7 @@
|
|
|
1568
1568
|
{
|
|
1569
1569
|
"query": "-TYPE:'cm:thumbnail' AND -TYPE:'cm:failedThumbnail' AND -TYPE:'cm:rating'"
|
|
1570
1570
|
},
|
|
1571
|
-
{ "query": "-cm:creator:System
|
|
1571
|
+
{ "query": "-cm:creator:System" },
|
|
1572
1572
|
{
|
|
1573
1573
|
"query": "-TYPE:'st:site' AND -ASPECT:'st:siteContainer' AND -ASPECT:'sys:hidden'"
|
|
1574
1574
|
},
|
|
@@ -1577,7 +1577,7 @@
|
|
|
1577
1577
|
},
|
|
1578
1578
|
{ "query": "-TYPE:'fm:topic' AND -TYPE:'fm:post'" },
|
|
1579
1579
|
{ "query": "-TYPE:'lnk:link'" },
|
|
1580
|
-
{ "query": "-
|
|
1580
|
+
{ "query": "-PATH:'//cm:wiki/*'" }
|
|
1581
1581
|
],
|
|
1582
1582
|
"facetFields": {
|
|
1583
1583
|
"expanded": true,
|
|
@@ -1724,7 +1724,7 @@
|
|
|
1724
1724
|
{
|
|
1725
1725
|
"query": "-TYPE:'cm:thumbnail' AND -TYPE:'cm:failedThumbnail' AND -TYPE:'cm:rating'"
|
|
1726
1726
|
},
|
|
1727
|
-
{ "query": "-cm:creator:System
|
|
1727
|
+
{ "query": "-cm:creator:System" },
|
|
1728
1728
|
{
|
|
1729
1729
|
"query": "-TYPE:'st:site' AND -ASPECT:'st:siteContainer' AND -ASPECT:'sys:hidden'"
|
|
1730
1730
|
},
|
|
@@ -1733,7 +1733,7 @@
|
|
|
1733
1733
|
},
|
|
1734
1734
|
{ "query": "-TYPE:'fm:topic' AND -TYPE:'fm:post'" },
|
|
1735
1735
|
{ "query": "-TYPE:'lnk:link'" },
|
|
1736
|
-
{ "query": "-
|
|
1736
|
+
{ "query": "-PATH:'//cm:wiki/*'" }
|
|
1737
1737
|
],
|
|
1738
1738
|
"facetFields": {
|
|
1739
1739
|
"expanded": true,
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
* You should have received a copy of the GNU Lesser General Public License
|
|
22
22
|
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
|
23
23
|
*/
|
|
24
|
-
import {
|
|
24
|
+
import { canEditFolder, hasFolderSelected, isNotFavorites, isSmartFolder } from '@alfresco/aca-shared/rules';
|
|
25
25
|
export const isFolderRulesEnabled = (context) => context.appConfig.get('plugins.folderRules', false);
|
|
26
|
-
export const isFolderRulesAllowed = (context) => isFolderRulesEnabled(context) && canEditFolder(context) && hasFolderSelected(context) && isNotFavorites(context);
|
|
26
|
+
export const isFolderRulesAllowed = (context) => isFolderRulesEnabled(context) && canEditFolder(context) && hasFolderSelected(context) && isNotFavorites(context) && !isSmartFolder(context);
|
|
27
27
|
export const canManageFolderRules = (context) => isFolderRulesAllowed(context);
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9sZGVyLXJ1bGVzLnJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvZm9sZGVyLXJ1bGVzL3NyYy9mb2xkZXItcnVsZXMucnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQWtCLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFN0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxPQUF1QixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBVSxxQkFBcUIsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUM5SCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE9BQXVCLEVBQUUsRUFBRSxDQUM5RCxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRTlJLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsT0FBdUIsRUFBVyxFQUFFLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQWNhUnVsZUNvbnRleHQsIGNhbkVkaXRGb2xkZXIsIGhhc0ZvbGRlclNlbGVjdGVkLCBpc05vdEZhdm9yaXRlcywgaXNTbWFydEZvbGRlciB9IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkL3J1bGVzJztcblxuZXhwb3J0IGNvbnN0IGlzRm9sZGVyUnVsZXNFbmFibGVkID0gKGNvbnRleHQ6IEFjYVJ1bGVDb250ZXh0KSA9PiBjb250ZXh0LmFwcENvbmZpZy5nZXQ8Ym9vbGVhbj4oJ3BsdWdpbnMuZm9sZGVyUnVsZXMnLCBmYWxzZSk7XG5leHBvcnQgY29uc3QgaXNGb2xkZXJSdWxlc0FsbG93ZWQgPSAoY29udGV4dDogQWNhUnVsZUNvbnRleHQpID0+XG4gIGlzRm9sZGVyUnVsZXNFbmFibGVkKGNvbnRleHQpICYmIGNhbkVkaXRGb2xkZXIoY29udGV4dCkgJiYgaGFzRm9sZGVyU2VsZWN0ZWQoY29udGV4dCkgJiYgaXNOb3RGYXZvcml0ZXMoY29udGV4dCkgJiYgIWlzU21hcnRGb2xkZXIoY29udGV4dCk7XG5cbmV4cG9ydCBjb25zdCBjYW5NYW5hZ2VGb2xkZXJSdWxlcyA9IChjb250ZXh0OiBBY2FSdWxlQ29udGV4dCk6IGJvb2xlYW4gPT4gaXNGb2xkZXJSdWxlc0FsbG93ZWQoY29udGV4dCk7XG4iXX0=
|
|
@@ -271,4 +271,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
271
271
|
}], parameterConstraints: [{
|
|
272
272
|
type: Input
|
|
273
273
|
}] } });
|
|
274
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1hY3Rpb24udWktY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvZm9sZGVyLXJ1bGVzL3NyYy9ydWxlLWRldGFpbHMvYWN0aW9ucy9ydWxlLWFjdGlvbi51aS1jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9mb2xkZXItcnVsZXMvc3JjL3J1bGUtZGV0YWlscy9hY3Rpb25zL3J1bGUtYWN0aW9uLnVpLWNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUErQyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SCxPQUFPLEVBQXdCLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbEksT0FBTyxFQUNMLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QsdUJBQXVCLEVBRXZCLHFCQUFxQixFQUNyQixxQkFBcUIsRUFFdEIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLDRCQUE0QixFQUFvQyxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1SCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FB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b0I7c0JBRHZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGlvbkRlZmluaXRpb25UcmFuc2Zvcm1lZCwgUnVsZUFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVsL3J1bGUtYWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IENhcmRWaWV3SXRlbSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZS9saWIvY2FyZC12aWV3L2ludGVyZmFjZXMvY2FyZC12aWV3LWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIENhcmRWaWV3Qm9vbEl0ZW1Nb2RlbCxcbiAgQ2FyZFZpZXdNb2R1bGUsXG4gIENhcmRWaWV3U2VsZWN0SXRlbU1vZGVsLFxuICBDYXJkVmlld1NlbGVjdEl0ZW1PcHRpb24sXG4gIENhcmRWaWV3VGV4dEl0ZW1Nb2RlbCxcbiAgQ2FyZFZpZXdVcGRhdGVTZXJ2aWNlLFxuICBVcGRhdGVOb3RpZmljYXRpb25cbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEFjdGlvblBhcmFtZXRlckRlZmluaXRpb24sIE5vZGUgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBY3Rpb25QYXJhbWV0ZXJDb25zdHJhaW50LCBDb25zdHJhaW50VmFsdWUgfSBmcm9tICcuLi8uLi9tb2RlbC9hY3Rpb24tcGFyYW1ldGVyLWNvbnN0cmFpbnQubW9kZWwnO1xuaW1wb3J0IHsgQ29udGVudE5vZGVTZWxlY3RvckNvbXBvbmVudCwgQ29udGVudE5vZGVTZWxlY3RvckNvbXBvbmVudERhdGEsIE5vZGVBY3Rpb24gfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTWF0Rm9ybUZpZWxkTW9kdWxlLCBNYXRTZWxlY3RNb2R1bGUsIENhcmRWaWV3TW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdhY2EtcnVsZS1hY3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcnVsZS1hY3Rpb24udWktY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ydWxlLWFjdGlvbi51aS1jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7IGNsYXNzOiAnYWNhLXJ1bGUtYWN0aW9uJyB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUnVsZUFjdGlvblVpQ29tcG9uZW50KVxuICAgIH0sXG4gICAgQ2FyZFZpZXdVcGRhdGVTZXJ2aWNlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUnVsZUFjdGlvblVpQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBub2RlSWQgPSAnJztcblxuICBASW5wdXQoKVxuICBhY3Rpb25EZWZpbml0aW9uczogQWN0aW9uRGVmaW5pdGlvblRyYW5zZm9ybWVkW107XG5cbiAgQElucHV0KClcbiAgcmVhZE9ubHkgPSBmYWxzZTtcblxuICBwcml2YXRlIF9wYXJhbWV0ZXJDb25zdHJhaW50cyA9IFtdO1xuICBASW5wdXQoKVxuICBnZXQgcGFyYW1ldGVyQ29uc3RyYWludHMoKTogQWN0aW9uUGFyYW1ldGVyQ29uc3RyYWludFtdIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyYW1ldGVyQ29uc3RyYWludHM7XG4gIH1cbiAgc2V0IHBhcmFtZXRlckNvbnN0cmFpbnRzKHZhbHVlKSB7XG4gICAgdGhpcy5fcGFyYW1ldGVyQ29uc3RyYWludHMgPSB2YWx1ZS5tYXAoKG9iaikgPT4gKHsgLi4ub2JqLCBjb25zdHJhaW50czogdGhpcy5wYXJzZUNvbnN0cmFpbnRzVG9TZWxlY3RPcHRpb25zKG9iai5jb25zdHJhaW50cykgfSkpO1xuICB9XG5cbiAgaXNGdWxsV2lkdGggPSBmYWxzZTtcblxuICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgYWN0aW9uRGVmaW5pdGlvbklkOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpXG4gIH0pO1xuXG4gIGNhcmRWaWV3SXRlbXM6IENhcmRWaWV3SXRlbVtdID0gW107XG4gIHBhcmFtZXRlcnM6IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9ID0ge307XG4gIHByaXZhdGUgb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgZ2V0IHNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbklkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2FjdGlvbkRlZmluaXRpb25JZCcpLnZhbHVlO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbigpOiBBY3Rpb25EZWZpbml0aW9uVHJhbnNmb3JtZWQge1xuICAgIHJldHVybiB0aGlzLmFjdGlvbkRlZmluaXRpb25zLmZpbmQoKGFjdGlvbkRlZmluaXRpb246IEFjdGlvbkRlZmluaXRpb25UcmFuc2Zvcm1lZCkgPT4gYWN0aW9uRGVmaW5pdGlvbi5pZCA9PT0gdGhpcy5zZWxlY3RlZEFjdGlvbkRlZmluaXRpb25JZCk7XG4gIH1cblxuICBnZXQgY2FyZFZpZXdTdHlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc0Z1bGxXaWR0aCA/IHsgd2lkdGg6ICcxMDAlJyB9IDoge307XG4gIH1cblxuICBvbkNoYW5nZTogKGFjdGlvbjogUnVsZUFjdGlvbikgPT4gdm9pZCA9ICgpID0+IHVuZGVmaW5lZDtcbiAgb25Ub3VjaDogKCkgPT4gdm9pZCA9ICgpID0+IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNhcmRWaWV3VXBkYXRlU2VydmljZTogQ2FyZFZpZXdVcGRhdGVTZXJ2aWNlLCBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLCBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICB3cml0ZVZhbHVlKGFjdGlvbjogUnVsZUFjdGlvbikge1xuICAgIHRoaXMuZm9ybS5zZXRWYWx1ZSh7XG4gICAgICBhY3Rpb25EZWZpbml0aW9uSWQ6IGFjdGlvbi5hY3Rpb25EZWZpbml0aW9uSWRcbiAgICB9KTtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSB7XG4gICAgICAuLi50aGlzLnBhcmFtZXRlcnMsXG4gICAgICAuLi5hY3Rpb24ucGFyYW1zXG4gICAgfTtcbiAgICB0aGlzLnNldENhcmRWaWV3UHJvcGVydGllcygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKGFjdGlvbjogUnVsZUFjdGlvbikgPT4gdm9pZCkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYWN0aW9uRGVmaW5pdGlvbnMgPSB0aGlzLmFjdGlvbkRlZmluaXRpb25zLnNvcnQoKGZpcnN0QWN0aW9uRGVmaW5pdGlvbiwgc2Vjb25kQWN0aW9uRGVmaW5pdGlvbikgPT5cbiAgICAgIGZpcnN0QWN0aW9uRGVmaW5pdGlvbi50aXRsZS5sb2NhbGVDb21wYXJlKHNlY29uZEFjdGlvbkRlZmluaXRpb24udGl0bGUpXG4gICAgKTtcblxuICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc2V0RGVmYXVsdFBhcmFtZXRlcnMoKTtcbiAgICAgIHRoaXMuc2V0Q2FyZFZpZXdQcm9wZXJ0aWVzKCk7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHtcbiAgICAgICAgYWN0aW9uRGVmaW5pdGlvbklkOiB0aGlzLnNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbklkLFxuICAgICAgICBwYXJhbXM6IHRoaXMucGFyYW1ldGVyc1xuICAgICAgfSk7XG4gICAgICB0aGlzLm9uVG91Y2goKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY2FyZFZpZXdVcGRhdGVTZXJ2aWNlLml0ZW1VcGRhdGVkJC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKS5zdWJzY3JpYmUoKHVwZGF0ZU5vdGlmaWNhdGlvbjogVXBkYXRlTm90aWZpY2F0aW9uKSA9PiB7XG4gICAgICB0aGlzLnBhcmFtZXRlcnMgPSB7XG4gICAgICAgIC4uLnRoaXMucGFyYW1ldGVycyxcbiAgICAgICAgLi4udXBkYXRlTm90aWZpY2F0aW9uLmNoYW5nZWRcbiAgICAgIH07XG4gICAgICB0aGlzLm9uQ2hhbmdlKHtcbiAgICAgICAgYWN0aW9uRGVmaW5pdGlvbklkOiB0aGlzLnNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbklkLFxuICAgICAgICBwYXJhbXM6IHRoaXMucGFyYW1ldGVyc1xuICAgICAgfSk7XG4gICAgICB0aGlzLm9uVG91Y2goKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCByZWFkT25seSA9IGNoYW5nZXNbJ3JlYWRPbmx5J10/LmN1cnJlbnRWYWx1ZTtcbiAgICBpZiAocmVhZE9ubHkgIT09IHVuZGVmaW5lZCAmJiByZWFkT25seSAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5yZWFkT25seSA9IHJlYWRPbmx5O1xuICAgICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKHJlYWRPbmx5KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgc2V0Q2FyZFZpZXdQcm9wZXJ0aWVzKCkge1xuICAgIHRoaXMuY2FyZFZpZXdJdGVtcyA9ICh0aGlzLnNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbj8ucGFyYW1ldGVyRGVmaW5pdGlvbnMgPz8gW10pLm1hcCgocGFyYW1EZWYpID0+IHtcbiAgICAgIHRoaXMuaXNGdWxsV2lkdGggPSBmYWxzZTtcbiAgICAgIGNvbnN0IGNvbnN0cmFpbnRzRm9yRHJvcGRvd25Cb3ggPSB0aGlzLl9wYXJhbWV0ZXJDb25zdHJhaW50cy5maW5kKChvYmopID0+IG9iai5uYW1lID09PSBwYXJhbURlZi5uYW1lKTtcbiAgICAgIGNvbnN0IGNhcmRWaWV3UHJvcGVydGllc01vZGVsID0ge1xuICAgICAgICBsYWJlbDogcGFyYW1EZWYuZGlzcGxheUxhYmVsICsgKHBhcmFtRGVmLm1hbmRhdG9yeSA/ICcgKicgOiAnJyksXG4gICAgICAgIGtleTogcGFyYW1EZWYubmFtZSxcbiAgICAgICAgZWRpdGFibGU6IHRydWUsXG4gICAgICAgIC4uLihwYXJhbURlZi5tYW5kYXRvcnlcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgdmFsaWRhdG9yczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5FUlJPUi5SRVFVSVJFRCcsXG4gICAgICAgICAgICAgICAgICBpc1ZhbGlkOiAodmFsdWU6IHVua25vd24pID0+ICEhdmFsdWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9KVxuICAgICAgfTtcbiAgICAgIHN3aXRjaCAocGFyYW1EZWYudHlwZSkge1xuICAgICAgICBjYXNlICdkOmJvb2xlYW4nOlxuICAgICAgICAgIHJldHVybiBuZXcgQ2FyZFZpZXdCb29sSXRlbU1vZGVsKHtcbiAgICAgICAgICAgIC4uLmNhcmRWaWV3UHJvcGVydGllc01vZGVsLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMucGFyYW1ldGVyc1twYXJhbURlZi5uYW1lXSA/PyBmYWxzZVxuICAgICAgICAgIH0pO1xuICAgICAgICBjYXNlICdkOm5vZGVyZWYnOlxuICAgICAgICAgIGlmICghY29uc3RyYWludHNGb3JEcm9wZG93bkJveCAmJiAhdGhpcy5yZWFkT25seSAmJiBwYXJhbURlZi5uYW1lICE9PSAnY2F0ZWdvcnktdmFsdWUnKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IENhcmRWaWV3VGV4dEl0ZW1Nb2RlbCh7XG4gICAgICAgICAgICAgIC4uLmNhcmRWaWV3UHJvcGVydGllc01vZGVsLFxuICAgICAgICAgICAgICBpY29uOiAnZm9sZGVyJyxcbiAgICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgICAgICAgIGNsaWNrYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgY2xpY2tDYWxsQmFjazogdGhpcy5vcGVuU2VsZWN0b3JEaWFsb2cuYmluZCh0aGlzLCBwYXJhbURlZi5uYW1lKSxcbiAgICAgICAgICAgICAgdmFsdWU6IHRoaXMucGFyYW1ldGVyc1twYXJhbURlZi5uYW1lXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAvLyAgZmFsbHMgdGhyb3VnaFxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGlmIChjb25zdHJhaW50c0ZvckRyb3Bkb3duQm94ICYmICF0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgICAgICB0aGlzLmlzRnVsbFdpZHRoID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ2FyZFZpZXdTZWxlY3RJdGVtTW9kZWwoe1xuICAgICAgICAgICAgICAuLi5jYXJkVmlld1Byb3BlcnRpZXNNb2RlbCxcbiAgICAgICAgICAgICAgdmFsdWU6ICh0aGlzLnBhcmFtZXRlcnNbcGFyYW1EZWYubmFtZV0gYXMgc3RyaW5nKSA/PyAnJyxcbiAgICAgICAgICAgICAgb3B0aW9ucyQ6IG9mKGNvbnN0cmFpbnRzRm9yRHJvcGRvd25Cb3guY29uc3RyYWludHMpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBDYXJkVmlld1RleHRJdGVtTW9kZWwoe1xuICAgICAgICAgICAgLi4uY2FyZFZpZXdQcm9wZXJ0aWVzTW9kZWwsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5wYXJhbWV0ZXJzW3BhcmFtRGVmLm5hbWVdID8/ICcnXG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5TZWxlY3RvckRpYWxvZyhwYXJhbURlZk5hbWUpIHtcbiAgICBjb25zdCBkYXRhOiBDb250ZW50Tm9kZVNlbGVjdG9yQ29tcG9uZW50RGF0YSA9IHtcbiAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5QTEFDRUhPTERFUi5DSE9PU0VfRk9MREVSJyksXG4gICAgICBhY3Rpb25OYW1lOiBOb2RlQWN0aW9uLkNIT09TRSxcbiAgICAgIGN1cnJlbnRGb2xkZXJJZDogdGhpcy5ub2RlSWQsXG4gICAgICBzZWxlY3Q6IG5ldyBTdWJqZWN0PE5vZGVbXT4oKVxuICAgIH07XG5cbiAgICB0aGlzLmRpYWxvZy5vcGVuKENvbnRlbnROb2RlU2VsZWN0b3JDb21wb25lbnQsIHtcbiAgICAgIGRhdGEsXG4gICAgICBwYW5lbENsYXNzOiAnYWRmLWNvbnRlbnQtbm9kZS1zZWxlY3Rvci1kaWFsb2cnLFxuICAgICAgd2lkdGg6ICc2MzBweCdcbiAgICB9KTtcblxuICAgIGRhdGEuc2VsZWN0LnN1YnNjcmliZShcbiAgICAgIChzZWxlY3Rpb25zOiBOb2RlW10pID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGlvbnNbMF0uaWQpIHtcbiAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoe1xuICAgICAgICAgICAgYWN0aW9uRGVmaW5pdGlvbklkOiB0aGlzLnNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbklkLFxuICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgIC4uLnRoaXMucGFyYW1ldGVycyxcbiAgICAgICAgICAgICAgW3BhcmFtRGVmTmFtZV06IHNlbGVjdGlvbnNbMF0uaWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHtcbiAgICAgICAgICAgIGFjdGlvbkRlZmluaXRpb25JZDogdGhpcy5zZWxlY3RlZEFjdGlvbkRlZmluaXRpb25JZCxcbiAgICAgICAgICAgIHBhcmFtczogdGhpcy5wYXJhbWV0ZXJzXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmRpYWxvZy5jbG9zZUFsbCgpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBzZXREZWZhdWx0UGFyYW1ldGVycygpIHtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSB7fTtcbiAgICAodGhpcy5zZWxlY3RlZEFjdGlvbkRlZmluaXRpb24/LnBhcmFtZXRlckRlZmluaXRpb25zID8/IFtdKS5mb3JFYWNoKChwYXJhbURlZjogQWN0aW9uUGFyYW1ldGVyRGVmaW5pdGlvbikgPT4ge1xuICAgICAgdGhpcy5wYXJhbWV0ZXJzW3BhcmFtRGVmLm5hbWVdID0gcGFyYW1EZWYudHlwZSA9PT0gJ2Q6Ym9vbGVhbicgPyBmYWxzZSA6ICcnO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMucmVhZE9ubHkgPSB0cnVlO1xuICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWFkT25seSA9IGZhbHNlO1xuICAgICAgdGhpcy5mb3JtLmVuYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VDb25zdHJhaW50c1RvU2VsZWN0T3B0aW9ucyhjb25zdHJhaW50czogQ29uc3RyYWludFZhbHVlW10pOiBDYXJkVmlld1NlbGVjdEl0ZW1PcHRpb248dW5rbm93bj5bXSB7XG4gICAgcmV0dXJuIGNvbnN0cmFpbnRzXG4gICAgICAuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICBpZiAoIWEubGFiZWwgJiYgYi5sYWJlbCkge1xuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYi5sYWJlbCAmJiBhLmxhYmVsKSB7XG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhLmxhYmVsPy5sb2NhbGVDb21wYXJlKGIubGFiZWwpID8/IC0xO1xuICAgICAgfSlcbiAgICAgIC5tYXAoKGNvbnN0cmFpbnQpID0+ICh7XG4gICAgICAgIGtleTogY29uc3RyYWludC52YWx1ZSxcbiAgICAgICAgbGFiZWw6IGNvbnN0cmFpbnQubGFiZWwgPyBgJHtjb25zdHJhaW50LmxhYmVsfSBbJHtjb25zdHJhaW50LnZhbHVlfV1gIDogY29uc3RyYWludC52YWx1ZVxuICAgICAgfSkpO1xuICB9XG59XG4iLCI8Zm9ybSBjbGFzcz1cImFjYS1ydWxlLWFjdGlvbl9fZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuXG4gIDxtYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LXNlbGVjdFxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWN0aW9uRGVmaW5pdGlvbklkXCJcbiAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cInJ1bGUtYWN0aW9uLXNlbGVjdFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLkFDVElPTl9TRUxFQ1RfUExBQ0VIT0xERVInIHwgdHJhbnNsYXRlXCI+XG4gICAgICA8bWF0LW9wdGlvblxuICAgICAgICAqbmdGb3I9XCJsZXQgYWN0aW9uRGVmaW5pdGlvbiBvZiBhY3Rpb25EZWZpbml0aW9uc1wiXG4gICAgICAgIFt2YWx1ZV09XCJhY3Rpb25EZWZpbml0aW9uLmlkXCI+XG4gICAgICAgIHt7IGFjdGlvbkRlZmluaXRpb24udGl0bGUgfX1cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICA8L21hdC1zZWxlY3Q+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPGFkZi1jYXJkLXZpZXdcbiAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJydWxlLWFjdGlvbi1jYXJkLXZpZXdcIlxuICAgIFtwcm9wZXJ0aWVzXT1cImNhcmRWaWV3SXRlbXNcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2FjYS1ydWxlLWFjdGlvbi1mdWxsLXdpZHRoJzogaXNGdWxsV2lkdGggfVwiXG4gICAgW2VkaXRhYmxlXT1cIiFyZWFkT25seVwiPlxuICA8L2FkZi1jYXJkLXZpZXc+XG5cbjwvZm9ybT5cbiJdfQ==
|
|
274
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1hY3Rpb24udWktY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvZm9sZGVyLXJ1bGVzL3NyYy9ydWxlLWRldGFpbHMvYWN0aW9ucy9ydWxlLWFjdGlvbi51aS1jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9mb2xkZXItcnVsZXMvc3JjL3J1bGUtZGV0YWlscy9hY3Rpb25zL3J1bGUtYWN0aW9uLnVpLWNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUErQyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SCxPQUFPLEVBQXdCLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEksT0FBTyxFQUNMLHFCQUFxQixFQUVyQixjQUFjLEVBQ2QsdUJBQXVCLEVBRXZCLHFCQUFxQixFQUNyQixxQkFBcUIsRUFFdEIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLDRCQUE0QixFQUFvQyxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1SCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FB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b0I7c0JBRHZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGlvbkRlZmluaXRpb25UcmFuc2Zvcm1lZCwgUnVsZUFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVsL3J1bGUtYWN0aW9uLm1vZGVsJztcbmltcG9ydCB7XG4gIENhcmRWaWV3Qm9vbEl0ZW1Nb2RlbCxcbiAgQ2FyZFZpZXdJdGVtLFxuICBDYXJkVmlld01vZHVsZSxcbiAgQ2FyZFZpZXdTZWxlY3RJdGVtTW9kZWwsXG4gIENhcmRWaWV3U2VsZWN0SXRlbU9wdGlvbixcbiAgQ2FyZFZpZXdUZXh0SXRlbU1vZGVsLFxuICBDYXJkVmlld1VwZGF0ZVNlcnZpY2UsXG4gIFVwZGF0ZU5vdGlmaWNhdGlvblxufSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgQWN0aW9uUGFyYW1ldGVyRGVmaW5pdGlvbiwgTm9kZSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFjdGlvblBhcmFtZXRlckNvbnN0cmFpbnQsIENvbnN0cmFpbnRWYWx1ZSB9IGZyb20gJy4uLy4uL21vZGVsL2FjdGlvbi1wYXJhbWV0ZXItY29uc3RyYWludC5tb2RlbCc7XG5pbXBvcnQgeyBDb250ZW50Tm9kZVNlbGVjdG9yQ29tcG9uZW50LCBDb250ZW50Tm9kZVNlbGVjdG9yQ29tcG9uZW50RGF0YSwgTm9kZUFjdGlvbiB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdFNlbGVjdE1vZHVsZSwgQ2FyZFZpZXdNb2R1bGVdLFxuICBzZWxlY3RvcjogJ2FjYS1ydWxlLWFjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ydWxlLWFjdGlvbi51aS1jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3J1bGUtYWN0aW9uLnVpLWNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgY2xhc3M6ICdhY2EtcnVsZS1hY3Rpb24nIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSdWxlQWN0aW9uVWlDb21wb25lbnQpXG4gICAgfSxcbiAgICBDYXJkVmlld1VwZGF0ZVNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBSdWxlQWN0aW9uVWlDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIG5vZGVJZCA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIGFjdGlvbkRlZmluaXRpb25zOiBBY3Rpb25EZWZpbml0aW9uVHJhbnNmb3JtZWRbXTtcblxuICBASW5wdXQoKVxuICByZWFkT25seSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX3BhcmFtZXRlckNvbnN0cmFpbnRzID0gW107XG4gIEBJbnB1dCgpXG4gIGdldCBwYXJhbWV0ZXJDb25zdHJhaW50cygpOiBBY3Rpb25QYXJhbWV0ZXJDb25zdHJhaW50W10ge1xuICAgIHJldHVybiB0aGlzLl9wYXJhbWV0ZXJDb25zdHJhaW50cztcbiAgfVxuICBzZXQgcGFyYW1ldGVyQ29uc3RyYWludHModmFsdWUpIHtcbiAgICB0aGlzLl9wYXJhbWV0ZXJDb25zdHJhaW50cyA9IHZhbHVlLm1hcCgob2JqKSA9PiAoeyAuLi5vYmosIGNvbnN0cmFpbnRzOiB0aGlzLnBhcnNlQ29uc3RyYWludHNUb1NlbGVjdE9wdGlvbnMob2JqLmNvbnN0cmFpbnRzKSB9KSk7XG4gIH1cblxuICBpc0Z1bGxXaWR0aCA9IGZhbHNlO1xuXG4gIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICBhY3Rpb25EZWZpbml0aW9uSWQ6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgfSk7XG5cbiAgY2FyZFZpZXdJdGVtczogQ2FyZFZpZXdJdGVtW10gPSBbXTtcbiAgcGFyYW1ldGVyczogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0gPSB7fTtcbiAgcHJpdmF0ZSBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBnZXQgc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnYWN0aW9uRGVmaW5pdGlvbklkJykudmFsdWU7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uKCk6IEFjdGlvbkRlZmluaXRpb25UcmFuc2Zvcm1lZCB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9uRGVmaW5pdGlvbnMuZmluZCgoYWN0aW9uRGVmaW5pdGlvbjogQWN0aW9uRGVmaW5pdGlvblRyYW5zZm9ybWVkKSA9PiBhY3Rpb25EZWZpbml0aW9uLmlkID09PSB0aGlzLnNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbklkKTtcbiAgfVxuXG4gIGdldCBjYXJkVmlld1N0eWxlKCkge1xuICAgIHJldHVybiB0aGlzLmlzRnVsbFdpZHRoID8geyB3aWR0aDogJzEwMCUnIH0gOiB7fTtcbiAgfVxuXG4gIG9uQ2hhbmdlOiAoYWN0aW9uOiBSdWxlQWN0aW9uKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuICBvblRvdWNoOiAoKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2FyZFZpZXdVcGRhdGVTZXJ2aWNlOiBDYXJkVmlld1VwZGF0ZVNlcnZpY2UsIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIHdyaXRlVmFsdWUoYWN0aW9uOiBSdWxlQWN0aW9uKSB7XG4gICAgdGhpcy5mb3JtLnNldFZhbHVlKHtcbiAgICAgIGFjdGlvbkRlZmluaXRpb25JZDogYWN0aW9uLmFjdGlvbkRlZmluaXRpb25JZFxuICAgIH0pO1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHtcbiAgICAgIC4uLnRoaXMucGFyYW1ldGVycyxcbiAgICAgIC4uLmFjdGlvbi5wYXJhbXNcbiAgICB9O1xuICAgIHRoaXMuc2V0Q2FyZFZpZXdQcm9wZXJ0aWVzKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoYWN0aW9uOiBSdWxlQWN0aW9uKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hY3Rpb25EZWZpbml0aW9ucyA9IHRoaXMuYWN0aW9uRGVmaW5pdGlvbnMuc29ydCgoZmlyc3RBY3Rpb25EZWZpbml0aW9uLCBzZWNvbmRBY3Rpb25EZWZpbml0aW9uKSA9PlxuICAgICAgZmlyc3RBY3Rpb25EZWZpbml0aW9uLnRpdGxlLmxvY2FsZUNvbXBhcmUoc2Vjb25kQWN0aW9uRGVmaW5pdGlvbi50aXRsZSlcbiAgICApO1xuXG4gICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zZXREZWZhdWx0UGFyYW1ldGVycygpO1xuICAgICAgdGhpcy5zZXRDYXJkVmlld1Byb3BlcnRpZXMoKTtcbiAgICAgIHRoaXMub25DaGFuZ2Uoe1xuICAgICAgICBhY3Rpb25EZWZpbml0aW9uSWQ6IHRoaXMuc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uSWQsXG4gICAgICAgIHBhcmFtczogdGhpcy5wYXJhbWV0ZXJzXG4gICAgICB9KTtcbiAgICAgIHRoaXMub25Ub3VjaCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jYXJkVmlld1VwZGF0ZVNlcnZpY2UuaXRlbVVwZGF0ZWQkLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZSgodXBkYXRlTm90aWZpY2F0aW9uOiBVcGRhdGVOb3RpZmljYXRpb24pID0+IHtcbiAgICAgIHRoaXMucGFyYW1ldGVycyA9IHtcbiAgICAgICAgLi4udGhpcy5wYXJhbWV0ZXJzLFxuICAgICAgICAuLi51cGRhdGVOb3RpZmljYXRpb24uY2hhbmdlZFxuICAgICAgfTtcbiAgICAgIHRoaXMub25DaGFuZ2Uoe1xuICAgICAgICBhY3Rpb25EZWZpbml0aW9uSWQ6IHRoaXMuc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uSWQsXG4gICAgICAgIHBhcmFtczogdGhpcy5wYXJhbWV0ZXJzXG4gICAgICB9KTtcbiAgICAgIHRoaXMub25Ub3VjaCgpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHJlYWRPbmx5ID0gY2hhbmdlc1sncmVhZE9ubHknXT8uY3VycmVudFZhbHVlO1xuICAgIGlmIChyZWFkT25seSAhPT0gdW5kZWZpbmVkICYmIHJlYWRPbmx5ICE9PSBudWxsKSB7XG4gICAgICB0aGlzLnJlYWRPbmx5ID0gcmVhZE9ubHk7XG4gICAgICB0aGlzLnNldERpc2FibGVkU3RhdGUocmVhZE9ubHkpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25EZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBzZXRDYXJkVmlld1Byb3BlcnRpZXMoKSB7XG4gICAgdGhpcy5jYXJkVmlld0l0ZW1zID0gKHRoaXMuc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uPy5wYXJhbWV0ZXJEZWZpbml0aW9ucyA/PyBbXSkubWFwKChwYXJhbURlZikgPT4ge1xuICAgICAgdGhpcy5pc0Z1bGxXaWR0aCA9IGZhbHNlO1xuICAgICAgY29uc3QgY29uc3RyYWludHNGb3JEcm9wZG93bkJveCA9IHRoaXMuX3BhcmFtZXRlckNvbnN0cmFpbnRzLmZpbmQoKG9iaikgPT4gb2JqLm5hbWUgPT09IHBhcmFtRGVmLm5hbWUpO1xuICAgICAgY29uc3QgY2FyZFZpZXdQcm9wZXJ0aWVzTW9kZWwgPSB7XG4gICAgICAgIGxhYmVsOiBwYXJhbURlZi5kaXNwbGF5TGFiZWwgKyAocGFyYW1EZWYubWFuZGF0b3J5ID8gJyAqJyA6ICcnKSxcbiAgICAgICAga2V5OiBwYXJhbURlZi5uYW1lLFxuICAgICAgICBlZGl0YWJsZTogdHJ1ZSxcbiAgICAgICAgLi4uKHBhcmFtRGVmLm1hbmRhdG9yeVxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICB2YWxpZGF0b3JzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLkVSUk9SLlJFUVVJUkVEJyxcbiAgICAgICAgICAgICAgICAgIGlzVmFsaWQ6ICh2YWx1ZTogdW5rbm93bikgPT4gISF2YWx1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pXG4gICAgICB9O1xuICAgICAgc3dpdGNoIChwYXJhbURlZi50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2Q6Ym9vbGVhbic6XG4gICAgICAgICAgcmV0dXJuIG5ldyBDYXJkVmlld0Jvb2xJdGVtTW9kZWwoe1xuICAgICAgICAgICAgLi4uY2FyZFZpZXdQcm9wZXJ0aWVzTW9kZWwsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5wYXJhbWV0ZXJzW3BhcmFtRGVmLm5hbWVdID8/IGZhbHNlXG4gICAgICAgICAgfSk7XG4gICAgICAgIGNhc2UgJ2Q6bm9kZXJlZic6XG4gICAgICAgICAgaWYgKCFjb25zdHJhaW50c0ZvckRyb3Bkb3duQm94ICYmICF0aGlzLnJlYWRPbmx5ICYmIHBhcmFtRGVmLm5hbWUgIT09ICdjYXRlZ29yeS12YWx1ZScpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ2FyZFZpZXdUZXh0SXRlbU1vZGVsKHtcbiAgICAgICAgICAgICAgLi4uY2FyZFZpZXdQcm9wZXJ0aWVzTW9kZWwsXG4gICAgICAgICAgICAgIGljb246ICdmb2xkZXInLFxuICAgICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgICAgICAgY2xpY2thYmxlOiB0cnVlLFxuICAgICAgICAgICAgICBjbGlja0NhbGxCYWNrOiB0aGlzLm9wZW5TZWxlY3RvckRpYWxvZy5iaW5kKHRoaXMsIHBhcmFtRGVmLm5hbWUpLFxuICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5wYXJhbWV0ZXJzW3BhcmFtRGVmLm5hbWVdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIC8vICBmYWxscyB0aHJvdWdoXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgaWYgKGNvbnN0cmFpbnRzRm9yRHJvcGRvd25Cb3ggJiYgIXRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICAgIHRoaXMuaXNGdWxsV2lkdGggPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBDYXJkVmlld1NlbGVjdEl0ZW1Nb2RlbCh7XG4gICAgICAgICAgICAgIC4uLmNhcmRWaWV3UHJvcGVydGllc01vZGVsLFxuICAgICAgICAgICAgICB2YWx1ZTogKHRoaXMucGFyYW1ldGVyc1twYXJhbURlZi5uYW1lXSBhcyBzdHJpbmcpID8/ICcnLFxuICAgICAgICAgICAgICBvcHRpb25zJDogb2YoY29uc3RyYWludHNGb3JEcm9wZG93bkJveC5jb25zdHJhaW50cylcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IENhcmRWaWV3VGV4dEl0ZW1Nb2RlbCh7XG4gICAgICAgICAgICAuLi5jYXJkVmlld1Byb3BlcnRpZXNNb2RlbCxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnBhcmFtZXRlcnNbcGFyYW1EZWYubmFtZV0gPz8gJydcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlblNlbGVjdG9yRGlhbG9nKHBhcmFtRGVmTmFtZSkge1xuICAgIGNvbnN0IGRhdGE6IENvbnRlbnROb2RlU2VsZWN0b3JDb21wb25lbnREYXRhID0ge1xuICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLlBMQUNFSE9MREVSLkNIT09TRV9GT0xERVInKSxcbiAgICAgIGFjdGlvbk5hbWU6IE5vZGVBY3Rpb24uQ0hPT1NFLFxuICAgICAgY3VycmVudEZvbGRlcklkOiB0aGlzLm5vZGVJZCxcbiAgICAgIHNlbGVjdDogbmV3IFN1YmplY3Q8Tm9kZVtdPigpXG4gICAgfTtcblxuICAgIHRoaXMuZGlhbG9nLm9wZW4oQ29udGVudE5vZGVTZWxlY3RvckNvbXBvbmVudCwge1xuICAgICAgZGF0YSxcbiAgICAgIHBhbmVsQ2xhc3M6ICdhZGYtY29udGVudC1ub2RlLXNlbGVjdG9yLWRpYWxvZycsXG4gICAgICB3aWR0aDogJzYzMHB4J1xuICAgIH0pO1xuXG4gICAgZGF0YS5zZWxlY3Quc3Vic2NyaWJlKFxuICAgICAgKHNlbGVjdGlvbnM6IE5vZGVbXSkgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0aW9uc1swXS5pZCkge1xuICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSh7XG4gICAgICAgICAgICBhY3Rpb25EZWZpbml0aW9uSWQ6IHRoaXMuc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uSWQsXG4gICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgLi4udGhpcy5wYXJhbWV0ZXJzLFxuICAgICAgICAgICAgICBbcGFyYW1EZWZOYW1lXTogc2VsZWN0aW9uc1swXS5pZFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMub25DaGFuZ2Uoe1xuICAgICAgICAgICAgYWN0aW9uRGVmaW5pdGlvbklkOiB0aGlzLnNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbklkLFxuICAgICAgICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtZXRlcnNcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLm9uVG91Y2goKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuZGlhbG9nLmNsb3NlQWxsKCk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHNldERlZmF1bHRQYXJhbWV0ZXJzKCkge1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHt9O1xuICAgICh0aGlzLnNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbj8ucGFyYW1ldGVyRGVmaW5pdGlvbnMgPz8gW10pLmZvckVhY2goKHBhcmFtRGVmOiBBY3Rpb25QYXJhbWV0ZXJEZWZpbml0aW9uKSA9PiB7XG4gICAgICB0aGlzLnBhcmFtZXRlcnNbcGFyYW1EZWYubmFtZV0gPSBwYXJhbURlZi50eXBlID09PSAnZDpib29sZWFuJyA/IGZhbHNlIDogJyc7XG4gICAgfSk7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5yZWFkT25seSA9IHRydWU7XG4gICAgICB0aGlzLmZvcm0uZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlYWRPbmx5ID0gZmFsc2U7XG4gICAgICB0aGlzLmZvcm0uZW5hYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUNvbnN0cmFpbnRzVG9TZWxlY3RPcHRpb25zKGNvbnN0cmFpbnRzOiBDb25zdHJhaW50VmFsdWVbXSk6IENhcmRWaWV3U2VsZWN0SXRlbU9wdGlvbjx1bmtub3duPltdIHtcbiAgICByZXR1cm4gY29uc3RyYWludHNcbiAgICAgIC5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgIGlmICghYS5sYWJlbCAmJiBiLmxhYmVsKSB7XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFiLmxhYmVsICYmIGEubGFiZWwpIHtcbiAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGEubGFiZWw/LmxvY2FsZUNvbXBhcmUoYi5sYWJlbCkgPz8gLTE7XG4gICAgICB9KVxuICAgICAgLm1hcCgoY29uc3RyYWludCkgPT4gKHtcbiAgICAgICAga2V5OiBjb25zdHJhaW50LnZhbHVlLFxuICAgICAgICBsYWJlbDogY29uc3RyYWludC5sYWJlbCA/IGAke2NvbnN0cmFpbnQubGFiZWx9IFske2NvbnN0cmFpbnQudmFsdWV9XWAgOiBjb25zdHJhaW50LnZhbHVlXG4gICAgICB9KSk7XG4gIH1cbn1cbiIsIjxmb3JtIGNsYXNzPVwiYWNhLXJ1bGUtYWN0aW9uX19mb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG5cbiAgPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtc2VsZWN0XG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJhY3Rpb25EZWZpbml0aW9uSWRcIlxuICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwicnVsZS1hY3Rpb24tc2VsZWN0XCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuQUNUSU9OX1NFTEVDVF9QTEFDRUhPTERFUicgfCB0cmFuc2xhdGVcIj5cbiAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBhY3Rpb25EZWZpbml0aW9uIG9mIGFjdGlvbkRlZmluaXRpb25zXCJcbiAgICAgICAgW3ZhbHVlXT1cImFjdGlvbkRlZmluaXRpb24uaWRcIj5cbiAgICAgICAge3sgYWN0aW9uRGVmaW5pdGlvbi50aXRsZSB9fVxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgIDwvbWF0LXNlbGVjdD5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8YWRmLWNhcmQtdmlld1xuICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cInJ1bGUtYWN0aW9uLWNhcmQtdmlld1wiXG4gICAgW3Byb3BlcnRpZXNdPVwiY2FyZFZpZXdJdGVtc1wiXG4gICAgW25nQ2xhc3NdPVwieyAnYWNhLXJ1bGUtYWN0aW9uLWZ1bGwtd2lkdGgnOiBpc0Z1bGxXaWR0aCB9XCJcbiAgICBbZWRpdGFibGVdPVwiIXJlYWRPbmx5XCI+XG4gIDwvYWRmLWNhcmQtdmlldz5cblxuPC9mb3JtPlxuIl19
|
|
@@ -62,7 +62,7 @@ export class PreviewComponent extends PageComponent {
|
|
|
62
62
|
this.simplestMode = false;
|
|
63
63
|
this.recentFileFilters = [
|
|
64
64
|
'TYPE:"content"',
|
|
65
|
-
'-
|
|
65
|
+
'-PATH:"//cm:wiki/*"',
|
|
66
66
|
'-TYPE:"app:filelink"',
|
|
67
67
|
'-TYPE:"fm:post"',
|
|
68
68
|
'-TYPE:"cm:thumbnail"',
|
|
@@ -391,4 +391,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
391
391
|
type: HostListener,
|
|
392
392
|
args: ['document:keydown', ['$event']]
|
|
393
393
|
}] } });
|
|
394
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9wcmV2aWV3L3NyYy9saWIvY29tcG9uZW50cy9wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3ByZXZpZXcvc3JjL2xpYi9jb21wb25lbnRzL3ByZXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFxQixpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUF3QyxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RyxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZGLE9BQU8sRUFBc0IsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRyxPQUFPLEVBQ0wsYUFBYSxFQUNiLGNBQWMsRUFDZCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLHdCQUF3QixFQUN4QixnQkFBZ0IsRUFDakIsTUFBTSxzQkFBc0IsQ0FBQztBQUc5QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVB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QUFFLENBQUMsQ0FBQztJQUNULENBQUM7SUFFTyxjQUFjLENBQUMsT0FBb0I7UUFDekMsSUFBSSxjQUFjLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUUzQyxPQUFPLGNBQWMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ2hFLGNBQWMsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDO1NBQy9DO1FBRUQsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDO0lBQzFCLENBQUM7SUFFTyxPQUFPLENBQUMsSUFBa0I7UUFDaEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQWlCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN6RyxDQUFDOzs2R0F4WlUsZ0JBQWdCO2lHQUFoQixnQkFBZ0IseU1DckQ3Qiw4dUNBa0NBLDhhRFlZLFlBQVksa1pBQUUsWUFBWSx3VEFBRSxvQkFBb0IsbWpCQUFFLG1CQUFtQix3RkFBRSx3QkFBd0IsbUdBQUUsZ0JBQWdCOzJGQU9oSCxnQkFBZ0I7a0JBVDVCLFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBRSx3QkFBd0IsRUFBRSxnQkFBZ0IsQ0FBQyxZQUNsSCxhQUFhLGlCQUdSLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFO2tSQWtKOUIsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDIzIEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIFZpZXdFbmNhcHN1bGF0aW9uLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFVybFRyZWUsIFVybFNlZ21lbnRHcm91cCwgVXJsU2VnbWVudCwgUFJJTUFSWV9PVVRMRVQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsIE9iamVjdFV0aWxzLCBWaWV3ZXJNb2R1bGUgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgQ2xvc2VQcmV2aWV3QWN0aW9uLCBWaWV3ZXJBY3Rpb25UeXBlcywgU2V0U2VsZWN0ZWROb2Rlc0FjdGlvbiB9IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkL3N0b3JlJztcbmltcG9ydCB7XG4gIFBhZ2VDb21wb25lbnQsXG4gIEFwcEhvb2tTZXJ2aWNlLFxuICBDb250ZW50QXBpU2VydmljZSxcbiAgSW5mb0RyYXdlckNvbXBvbmVudCxcbiAgVG9vbGJhck1lbnVJdGVtQ29tcG9uZW50LFxuICBUb29sYmFyQ29tcG9uZW50XG59IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkJztcbmltcG9ydCB7IENvbnRlbnRBY3Rpb25SZWYsIFZpZXdlckV4dGVuc2lvblJlZiB9IGZyb20gJ0BhbGZyZXNjby9hZGYtZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBTZWFyY2hSZXF1ZXN0IH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBmcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBY3Rpb25zLCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IEFsZnJlc2NvVmlld2VyTW9kdWxlLCBOb2Rlc0FwaVNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVmlld2VyTW9kdWxlLCBBbGZyZXNjb1ZpZXdlck1vZHVsZSwgSW5mb0RyYXdlckNvbXBvbmVudCwgVG9vbGJhck1lbnVJdGVtQ29tcG9uZW50LCBUb29sYmFyQ29tcG9uZW50XSxcbiAgc2VsZWN0b3I6ICdhcHAtcHJldmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcmV2aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJldmlldy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7IGNsYXNzOiAnYXBwLXByZXZpZXcnIH1cbn0pXG5leHBvcnQgY2xhc3MgUHJldmlld0NvbXBvbmVudCBleHRlbmRzIFBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByZXZpZXdMb2NhdGlvbjogc3RyaW5nID0gbnVsbDtcbiAgcm91dGVzU2tpcE5hdmlnYXRpb24gPSBbJ3NoYXJlZCcsICdyZWNlbnQtZmlsZXMnLCAnZmF2b3JpdGVzJ107XG4gIG5hdmlnYXRlU291cmNlOiBzdHJpbmcgPSBudWxsO1xuICBuYXZpZ2F0aW9uU291cmNlcyA9IFsnZmF2b3JpdGVzJywgJ2xpYnJhcmllcycsICdwZXJzb25hbC1maWxlcycsICdyZWNlbnQtZmlsZXMnLCAnc2hhcmVkJ107XG4gIGZvbGRlcklkOiBzdHJpbmcgPSBudWxsO1xuICBub2RlSWQ6IHN0cmluZyA9IG51bGw7XG4gIHByZXZpb3VzTm9kZUlkOiBzdHJpbmc7XG4gIG5leHROb2RlSWQ6IHN0cmluZztcbiAgbmF2aWdhdGVNdWx0aXBsZSA9IGZhbHNlO1xuICBvcGVuV2l0aDogQXJyYXk8Q29udGVudEFjdGlvblJlZj4gPSBbXTtcbiAgY29udGVudEV4dGVuc2lvbnM6IEFycmF5PFZpZXdlckV4dGVuc2lvblJlZj4gPSBbXTtcbiAgc2hvd1JpZ2h0U2lkZSA9IGZhbHNlO1xuICBuYXZpZ2F0ZUJhY2tBc0Nsb3NlID0gZmFsc2U7XG4gIHNpbXBsZXN0TW9kZSA9IGZhbHNlO1xuXG4gIHJlY2VudEZpbGVGaWx0ZXJzID0gW1xuICAgICdUWVBFOlwiY29udGVudFwiJyxcbiAgICAnLVBOQU1FOlwiMC93aWtpXCInLFxuICAgICctVFlQRTpcImFwcDpmaWxlbGlua1wiJyxcbiAgICAnLVRZUEU6XCJmbTpwb3N0XCInLFxuICAgICctVFlQRTpcImNtOnRodW1ibmFpbFwiJyxcbiAgICAnLVRZUEU6XCJjbTpmYWlsZWRUaHVtYm5haWxcIicsXG4gICAgJy1UWVBFOlwiY206cmF0aW5nXCInLFxuICAgICctVFlQRTpcImRsOmRhdGFMaXN0XCInLFxuICAgICctVFlQRTpcImRsOnRvZG9MaXN0XCInLFxuICAgICctVFlQRTpcImRsOmlzc3VlXCInLFxuICAgICctVFlQRTpcImRsOmNvbnRhY3RcIicsXG4gICAgJy1UWVBFOlwiZGw6ZXZlbnRBZ2VuZGFcIicsXG4gICAgJy1UWVBFOlwiZGw6ZXZlbnRcIicsXG4gICAgJy1UWVBFOlwiZGw6dGFza1wiJyxcbiAgICAnLVRZUEU6XCJkbDpzaW1wbGV0YXNrXCInLFxuICAgICctVFlQRTpcImRsOm1lZXRpbmdBZ2VuZGFcIicsXG4gICAgJy1UWVBFOlwiZGw6bG9jYXRpb25cIicsXG4gICAgJy1UWVBFOlwiZm06dG9waWNcIicsXG4gICAgJy1UWVBFOlwiZm06cG9zdFwiJyxcbiAgICAnLVRZUEU6XCJpYTpjYWxlbmRhckV2ZW50XCInLFxuICAgICctVFlQRTpcImxuazpsaW5rXCInXG4gIF07XG5cbiAgcHJpdmF0ZSBjb250YWluZXJzU2tpcE5hdmlnYXRpb24gPSBbJ2FkZi12aWV3ZXJfX3NpZGViYXInLCAnY2RrLW92ZXJsYXktY29udGFpbmVyJywgJ2FkZi1pbWFnZS12aWV3ZXInXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbnRlbnRBcGk6IENvbnRlbnRBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHJlZmVyZW5jZXM6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBub2Rlc0FwaVNlcnZpY2U6IE5vZGVzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxuICAgIHByaXZhdGUgYXBwSG9va1NlcnZpY2U6IEFwcEhvb2tTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgZnJvbSh0aGlzLmluZm9EcmF3ZXJPcGVuZWQkKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWwpID0+IHtcbiAgICAgICAgdGhpcy5zaG93UmlnaHRTaWRlID0gdmFsO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnByZXZpZXdMb2NhdGlvbiA9IHRoaXMucm91dGVyLnVybC5zdWJzdHIoMCwgdGhpcy5yb3V0ZXIudXJsLmluZGV4T2YoJy8nLCAxKSkucmVwbGFjZSgvXFwvL2csICcnKTtcblxuICAgIGNvbnN0IHJvdXRlRGF0YSA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YTtcbiAgICB0aGlzLm5hdmlnYXRlQmFja0FzQ2xvc2UgPSAhIXJvdXRlRGF0YS5uYXZpZ2F0ZUJhY2tBc0Nsb3NlO1xuICAgIHRoaXMuc2ltcGxlc3RNb2RlID0gISFyb3V0ZURhdGEuc2ltcGxlc3RNb2RlO1xuXG4gICAgaWYgKHJvdXRlRGF0YS5uYXZpZ2F0ZU11bHRpcGxlKSB7XG4gICAgICB0aGlzLm5hdmlnYXRlTXVsdGlwbGUgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChyb3V0ZURhdGEubmF2aWdhdGVTb3VyY2UpIHtcbiAgICAgIGNvbnN0IHNvdXJjZSA9IHJvdXRlRGF0YS5uYXZpZ2F0ZVNvdXJjZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKHRoaXMubmF2aWdhdGlvblNvdXJjZXMuaW5jbHVkZXMoc291cmNlKSkge1xuICAgICAgICB0aGlzLm5hdmlnYXRlU291cmNlID0gcm91dGVEYXRhLm5hdmlnYXRlU291cmNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XG4gICAgICB0aGlzLmZvbGRlcklkID0gcGFyYW1zLmZvbGRlcklkO1xuICAgICAgY29uc3QgaWQgPSBwYXJhbXMubm9kZUlkO1xuICAgICAgaWYgKGlkKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheU5vZGUoaWQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gdGhpcy5zdWJzY3JpcHRpb25zLmNvbmNhdChbXG4gICAgICB0aGlzLmFwcEhvb2tTZXJ2aWNlLm5vZGVzRGVsZXRlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5uYXZpZ2F0ZVRvRmlsZUxvY2F0aW9uKHRydWUpKSxcblxuICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLmZpbGVVcGxvYWREZWxldGVkLnN1YnNjcmliZSgoKSA9PiB0aGlzLm5hdmlnYXRlVG9GaWxlTG9jYXRpb24odHJ1ZSkpLFxuXG4gICAgICB0aGlzLnVwbG9hZFNlcnZpY2UuZmlsZVVwbG9hZENvbXBsZXRlLnBpcGUoZGVib3VuY2VUaW1lKDMwMCkpLnN1YnNjcmliZSgoZmlsZSkgPT4gdGhpcy5ub2Rlc0FwaVNlcnZpY2Uubm9kZVVwZGF0ZWQubmV4dChmaWxlLmRhdGEuZW50cnkpKSxcblxuICAgICAgdGhpcy5hY3Rpb25zJFxuICAgICAgICAucGlwZShcbiAgICAgICAgICBvZlR5cGU8Q2xvc2VQcmV2aWV3QWN0aW9uPihWaWV3ZXJBY3Rpb25UeXBlcy5DbG9zZVByZXZpZXcpLFxuICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLm5hdmlnYXRlVG9GaWxlTG9jYXRpb24odHJ1ZSkpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7fSlcbiAgICBdKTtcblxuICAgIHRoaXMuZXh0ZW5zaW9uc1xuICAgICAgLmdldE9wZW5XaXRoQWN0aW9ucygpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGFjdGlvbnMpID0+IHtcbiAgICAgICAgdGhpcy5vcGVuV2l0aCA9IGFjdGlvbnM7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIHBhcnRpY3VsYXIgbm9kZSBpbnRvIHRoZSBWaWV3ZXJcbiAgICpcbiAgICogQHBhcmFtIGlkIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgTm9kZSB0byBkaXNwbGF5XG4gICAqL1xuICBhc3luYyBkaXNwbGF5Tm9kZShpZDogc3RyaW5nKSB7XG4gICAgaWYgKGlkKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLm5vZGUgPSBhd2FpdCB0aGlzLmNvbnRlbnRBcGkuZ2V0Tm9kZUluZm8oaWQpLnRvUHJvbWlzZSgpO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTZXRTZWxlY3RlZE5vZGVzQWN0aW9uKFt7IGVudHJ5OiB0aGlzLm5vZGUgfV0pKTtcblxuICAgICAgICBpZiAodGhpcy5ub2RlPy5pc0ZpbGUpIHtcbiAgICAgICAgICBjb25zdCBuZWFyZXN0ID0gYXdhaXQgdGhpcy5nZXROZWFyZXN0Tm9kZXModGhpcy5ub2RlLmlkLCB0aGlzLm5vZGUucGFyZW50SWQpO1xuXG4gICAgICAgICAgdGhpcy5wcmV2aW91c05vZGVJZCA9IG5lYXJlc3QubGVmdDtcbiAgICAgICAgICB0aGlzLm5leHROb2RlSWQgPSBuZWFyZXN0LnJpZ2h0O1xuICAgICAgICAgIHRoaXMubm9kZUlkID0gdGhpcy5ub2RlLmlkO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5wcmV2aWV3TG9jYXRpb24sIGlkXSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKCFlcnIgfHwgZXJyLnN0YXR1cyAhPT0gNDAxKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMucHJldmlld0xvY2F0aW9uLCBpZF0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBrZXkgPSBldmVudC5rZXk7XG5cbiAgICBpZiAoa2V5ID09PSAnQXJyb3dSaWdodCcgfHwga2V5ID09PSAnQXJyb3dMZWZ0Jykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSB2aXNpYmlsaXR5IGNoYW5nZSBvZiB0aGUgVmlld2VyIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGlzVmlzaWJsZSBJbmRpY2F0b3Igd2hldGhlciBWaWV3ZXIgaXMgdmlzaWJsZSBvciBoaWRkZW4uXG4gICAqL1xuICBvblZpc2liaWxpdHlDaGFuZ2VkKGlzVmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IHNob3VsZE5hdmlnYXRlID0gIWlzVmlzaWJsZTtcbiAgICB0aGlzLm5hdmlnYXRlVG9GaWxlTG9jYXRpb24oc2hvdWxkTmF2aWdhdGUpO1xuICB9XG5cbiAgbmF2aWdhdGVUb0ZpbGVMb2NhdGlvbihzaG91bGROYXZpZ2F0ZTogYm9vbGVhbikge1xuICAgIGlmIChzaG91bGROYXZpZ2F0ZSkge1xuICAgICAgaWYgKHRoaXMubmF2aWdhdGVCYWNrQXNDbG9zZSkge1xuICAgICAgICB0aGlzLmxvY2F0aW9uLmJhY2soKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHNob3VsZFNraXBOYXZpZ2F0aW9uID0gdGhpcy5yb3V0ZXNTa2lwTmF2aWdhdGlvbi5pbmNsdWRlcyh0aGlzLnByZXZpZXdMb2NhdGlvbik7XG4gICAgICAgIGNvbnN0IHJvdXRlID0gdGhpcy5nZXROYXZpZ2F0aW9uQ29tbWFuZHModGhpcy5wcmV2aWV3TG9jYXRpb24pO1xuXG4gICAgICAgIGlmICghc2hvdWxkU2tpcE5hdmlnYXRpb24gJiYgdGhpcy5mb2xkZXJJZCkge1xuICAgICAgICAgIHJvdXRlLnB1c2godGhpcy5mb2xkZXJJZCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUocm91dGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBIYW5kbGVzIG5hdmlnYXRpb24gdG8gYSBwcmV2aW91cyBkb2N1bWVudCAqL1xuICBvbk5hdmlnYXRlQmVmb3JlKGV2ZW50OiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC50eXBlICE9PSAnY2xpY2snICYmIHRoaXMuc2hvdWxkTmF2aWdhdGUoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByZXZpb3VzTm9kZUlkKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZSh0aGlzLmdldFByZXZpZXdQYXRoKHRoaXMuZm9sZGVySWQsIHRoaXMucHJldmlvdXNOb2RlSWQpKTtcbiAgICB9XG4gIH1cblxuICAvKiogSGFuZGxlcyBuYXZpZ2F0aW9uIHRvIGEgbmV4dCBkb2N1bWVudCAqL1xuICBvbk5hdmlnYXRlTmV4dChldmVudDogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQudHlwZSAhPT0gJ2NsaWNrJyAmJiB0aGlzLnNob3VsZE5hdmlnYXRlKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5uZXh0Tm9kZUlkKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZSh0aGlzLmdldFByZXZpZXdQYXRoKHRoaXMuZm9sZGVySWQsIHRoaXMubmV4dE5vZGVJZCkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSBub2RlIHByZXZpZXcgcm91dGUgYmFzZWQgb24gZm9sZGVyIGFuZCBub2RlIElEcy5cbiAgICpcbiAgICogQHBhcmFtIGZvbGRlcklkIEZvbGRlciBJRFxuICAgKiBAcGFyYW0gbm9kZUlkIE5vZGUgSURcbiAgICovXG4gIGdldFByZXZpZXdQYXRoKGZvbGRlcklkOiBzdHJpbmcsIG5vZGVJZDogc3RyaW5nKTogYW55W10ge1xuICAgIGNvbnN0IHJvdXRlID0gW3RoaXMucHJldmlld0xvY2F0aW9uXTtcblxuICAgIGlmIChmb2xkZXJJZCkge1xuICAgICAgcm91dGUucHVzaChmb2xkZXJJZCk7XG4gICAgfVxuXG4gICAgaWYgKG5vZGVJZCkge1xuICAgICAgcm91dGUucHVzaCgncHJldmlldycsIG5vZGVJZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJvdXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBuZWFyZXN0IG5vZGUgaW5mb3JtYXRpb24gZm9yIHRoZSBnaXZlbiBub2RlIGFuZCBmb2xkZXIuXG4gICAqXG4gICAqIEBwYXJhbSBub2RlSWQgVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGRvY3VtZW50IG5vZGVcbiAgICogQHBhcmFtIGZvbGRlcklkIFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb250YWluaW5nIGZvbGRlciBub2RlLlxuICAgKi9cbiAgYXN5bmMgZ2V0TmVhcmVzdE5vZGVzKG5vZGVJZDogc3RyaW5nLCBmb2xkZXJJZDogc3RyaW5nKTogUHJvbWlzZTx7IGxlZnQ6IHN0cmluZzsgcmlnaHQ6IHN0cmluZyB9PiB7XG4gICAgY29uc3QgZW1wdHkgPSB7XG4gICAgICBsZWZ0OiBudWxsLFxuICAgICAgcmlnaHQ6IG51bGxcbiAgICB9O1xuXG4gICAgaWYgKG5vZGVJZCAmJiBmb2xkZXJJZCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgaWRzID0gYXdhaXQgdGhpcy5nZXRGaWxlSWRzKHRoaXMubmF2aWdhdGVTb3VyY2UsIGZvbGRlcklkKTtcbiAgICAgICAgY29uc3QgaWR4ID0gaWRzLmluZGV4T2Yobm9kZUlkKTtcblxuICAgICAgICBpZiAoaWR4ID49IDApIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGVmdDogaWRzW2lkeCAtIDFdIHx8IG51bGwsXG4gICAgICAgICAgICByaWdodDogaWRzW2lkeCArIDFdIHx8IG51bGxcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBlbXB0eTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiBlbXB0eTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGVtcHR5O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIG5vZGUgaWRlbnRpZmllcnMgZm9yIHRoZSBmb2xkZXIgYW5kIGRhdGEgc291cmNlLlxuICAgKlxuICAgKiBAcGFyYW0gc291cmNlIERhdGEgc291cmNlIG5hbWUuIEFsbG93ZWQgdmFsdWVzIGFyZTogcGVyc29uYWwtZmlsZXMsIGxpYnJhcmllcywgZmF2b3JpdGVzLCBzaGFyZWQsIHJlY2VudC1maWxlcy5cbiAgICogQHBhcmFtIGZvbGRlcklkIENvbnRhaW5pbmcgZm9sZGVyIG5vZGUgaWRlbnRpZmllciBmb3IgJ3BlcnNvbmFsLWZpbGVzJyBhbmQgJ2xpYnJhcmllcycgc291cmNlcy5cbiAgICovXG4gIGFzeW5jIGdldEZpbGVJZHMoc291cmNlOiBzdHJpbmcsIGZvbGRlcklkPzogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGlmICgoc291cmNlID09PSAncGVyc29uYWwtZmlsZXMnIHx8IHNvdXJjZSA9PT0gJ2xpYnJhcmllcycpICYmIGZvbGRlcklkKSB7XG4gICAgICBjb25zdCBzb3J0S2V5ID0gdGhpcy5wcmVmZXJlbmNlcy5nZXQoJ3BlcnNvbmFsLWZpbGVzLnNvcnRpbmcua2V5JykgfHwgJ21vZGlmaWVkQXQnO1xuICAgICAgY29uc3Qgc29ydERpcmVjdGlvbiA9IHRoaXMucHJlZmVyZW5jZXMuZ2V0KCdwZXJzb25hbC1maWxlcy5zb3J0aW5nLmRpcmVjdGlvbicpIHx8ICdkZXNjJztcbiAgICAgIGNvbnN0IG5vZGVzID0gYXdhaXQgdGhpcy5jb250ZW50QXBpXG4gICAgICAgIC5nZXROb2RlQ2hpbGRyZW4oZm9sZGVySWQsIHtcbiAgICAgICAgICAvLyBvcmRlckJ5OiBgJHtzb3J0S2V5fSAke3NvcnREaXJlY3Rpb259YCxcbiAgICAgICAgICBmaWVsZHM6IFsnaWQnLCB0aGlzLmdldFJvb3RGaWVsZChzb3J0S2V5KV0sXG4gICAgICAgICAgd2hlcmU6ICcoaXNGaWxlPXRydWUpJ1xuICAgICAgICB9KVxuICAgICAgICAudG9Qcm9taXNlKCk7XG5cbiAgICAgIGNvbnN0IGVudHJpZXMgPSBub2Rlcy5saXN0LmVudHJpZXMubWFwKChvYmopID0+IG9iai5lbnRyeSk7XG4gICAgICB0aGlzLnNvcnQoZW50cmllcywgc29ydEtleSwgc29ydERpcmVjdGlvbik7XG5cbiAgICAgIHJldHVybiBlbnRyaWVzLm1hcCgob2JqKSA9PiBvYmouaWQpO1xuICAgIH1cblxuICAgIGlmIChzb3VyY2UgPT09ICdmYXZvcml0ZXMnKSB7XG4gICAgICBjb25zdCBub2RlcyA9IGF3YWl0IHRoaXMuY29udGVudEFwaVxuICAgICAgICAuZ2V0RmF2b3JpdGVzKCctbWUtJywge1xuICAgICAgICAgIHdoZXJlOiAnKEVYSVNUUyh0YXJnZXQvZmlsZSkpJyxcbiAgICAgICAgICBmaWVsZHM6IFsndGFyZ2V0J11cbiAgICAgICAgfSlcbiAgICAgICAgLnRvUHJvbWlzZSgpO1xuXG4gICAgICBjb25zdCBzb3J0S2V5ID0gdGhpcy5wcmVmZXJlbmNlcy5nZXQoJ2Zhdm9yaXRlcy5zb3J0aW5nLmtleScpIHx8ICdtb2RpZmllZEF0JztcbiAgICAgIGNvbnN0IHNvcnREaXJlY3Rpb24gPSB0aGlzLnByZWZlcmVuY2VzLmdldCgnZmF2b3JpdGVzLnNvcnRpbmcuZGlyZWN0aW9uJykgfHwgJ2Rlc2MnO1xuICAgICAgY29uc3QgZmlsZXMgPSBub2Rlcy5saXN0LmVudHJpZXMubWFwKChvYmopID0+IG9iai5lbnRyeS50YXJnZXQuZmlsZSk7XG4gICAgICB0aGlzLnNvcnQoZmlsZXMsIHNvcnRLZXksIHNvcnREaXJlY3Rpb24pO1xuXG4gICAgICByZXR1cm4gZmlsZXMubWFwKChmKSA9PiBmLmlkKTtcbiAgICB9XG5cbiAgICBpZiAoc291cmNlID09PSAnc2hhcmVkJykge1xuICAgICAgY29uc3Qgc29ydGluZ0tleSA9IHRoaXMucHJlZmVyZW5jZXMuZ2V0KCdzaGFyZWQuc29ydGluZy5rZXknKSB8fCAnbW9kaWZpZWRBdCc7XG4gICAgICBjb25zdCBzb3J0aW5nRGlyZWN0aW9uID0gdGhpcy5wcmVmZXJlbmNlcy5nZXQoJ3NoYXJlZC5zb3J0aW5nLmRpcmVjdGlvbicpIHx8ICdkZXNjJztcblxuICAgICAgY29uc3Qgbm9kZXMgPSBhd2FpdCB0aGlzLmNvbnRlbnRBcGlcbiAgICAgICAgLmZpbmRTaGFyZWRMaW5rcyh7XG4gICAgICAgICAgZmllbGRzOiBbJ25vZGVJZCcsIHRoaXMuZ2V0Um9vdEZpZWxkKHNvcnRpbmdLZXkpXVxuICAgICAgICB9KVxuICAgICAgICAudG9Qcm9taXNlKCk7XG5cbiAgICAgIGNvbnN0IGVudHJpZXMgPSBub2Rlcy5saXN0LmVudHJpZXMubWFwKChvYmopID0+IG9iai5lbnRyeSk7XG4gICAgICB0aGlzLnNvcnQoZW50cmllcywgc29ydGluZ0tleSwgc29ydGluZ0RpcmVjdGlvbik7XG5cbiAgICAgIHJldHVybiBlbnRyaWVzLm1hcCgob2JqKSA9PiBvYmoubm9kZUlkKTtcbiAgICB9XG5cbiAgICBpZiAoc291cmNlID09PSAncmVjZW50LWZpbGVzJykge1xuICAgICAgY29uc3QgcGVyc29uID0gYXdhaXQgdGhpcy5jb250ZW50QXBpLmdldFBlcnNvbignLW1lLScpLnRvUHJvbWlzZSgpO1xuICAgICAgY29uc3QgdXNlcm5hbWUgPSBwZXJzb24uZW50cnkuaWQ7XG4gICAgICBjb25zdCBzb3J0aW5nS2V5ID0gdGhpcy5wcmVmZXJlbmNlcy5nZXQoJ3JlY2VudC1maWxlcy5zb3J0aW5nLmtleScpIHx8ICdtb2RpZmllZEF0JztcbiAgICAgIGNvbnN0IHNvcnRpbmdEaXJlY3Rpb24gPSB0aGlzLnByZWZlcmVuY2VzLmdldCgncmVjZW50LWZpbGVzLnNvcnRpbmcuZGlyZWN0aW9uJykgfHwgJ2Rlc2MnO1xuXG4gICAgICBjb25zdCBxdWVyeTogU2VhcmNoUmVxdWVzdCA9IHtcbiAgICAgICAgcXVlcnk6IHtcbiAgICAgICAgICBxdWVyeTogJyonLFxuICAgICAgICAgIGxhbmd1YWdlOiAnYWZ0cydcbiAgICAgICAgfSxcbiAgICAgICAgZmlsdGVyUXVlcmllczogW1xuICAgICAgICAgIHsgcXVlcnk6IGBjbTptb2RpZmllZDpbTk9XL0RBWS0zMERBWVMgVE8gTk9XL0RBWSsxREFZXWAgfSxcbiAgICAgICAgICB7IHF1ZXJ5OiBgY206bW9kaWZpZXI6JHt1c2VybmFtZX0gT1IgY206Y3JlYXRvcjoke3VzZXJuYW1lfWAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBxdWVyeTogdGhpcy5yZWNlbnRGaWxlRmlsdGVycy5qb2luKCcgQU5EICcpXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBmaWVsZHM6IFsnaWQnLCB0aGlzLmdldFJvb3RGaWVsZChzb3J0aW5nS2V5KV0sXG4gICAgICAgIGluY2x1ZGU6IFsncGF0aCcsICdwcm9wZXJ0aWVzJywgJ2FsbG93YWJsZU9wZXJhdGlvbnMnXSxcbiAgICAgICAgc29ydDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6ICdGSUVMRCcsXG4gICAgICAgICAgICBmaWVsZDogJ2NtOm1vZGlmaWVkJyxcbiAgICAgICAgICAgIGFzY2VuZGluZzogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH07XG4gICAgICBjb25zdCBub2RlcyA9IGF3YWl0IHRoaXMuY29udGVudEFwaS5zZWFyY2gocXVlcnkpLnRvUHJvbWlzZSgpO1xuXG4gICAgICBjb25zdCBlbnRyaWVzID0gbm9kZXMubGlzdC5lbnRyaWVzLm1hcCgob2JqKSA9PiBvYmouZW50cnkpO1xuICAgICAgdGhpcy5zb3J0KGVudHJpZXMsIHNvcnRpbmdLZXksIHNvcnRpbmdEaXJlY3Rpb24pO1xuXG4gICAgICByZXR1cm4gZW50cmllcy5tYXAoKG9iaikgPT4gb2JqLmlkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwcml2YXRlIHNvcnQoaXRlbXM6IGFueVtdLCBrZXk6IHN0cmluZywgZGlyZWN0aW9uOiBzdHJpbmcpIHtcbiAgICBjb25zdCBvcHRpb25zOiBJbnRsLkNvbGxhdG9yT3B0aW9ucyA9IHt9O1xuXG4gICAgaWYgKGtleS5pbmNsdWRlcygnc2l6ZUluQnl0ZXMnKSB8fCBrZXkgPT09ICduYW1lJykge1xuICAgICAgb3B0aW9ucy5udW1lcmljID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpdGVtcy5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xuICAgICAgbGV0IGxlZnQgPSBPYmplY3RVdGlscy5nZXRWYWx1ZShhLCBrZXkpID8/ICcnO1xuICAgICAgbGVmdCA9IGxlZnQgaW5zdGFuY2VvZiBEYXRlID8gbGVmdC52YWx1ZU9mKCkudG9TdHJpbmcoKSA6IGxlZnQudG9TdHJpbmcoKTtcblxuICAgICAgbGV0IHJpZ2h0ID0gT2JqZWN0VXRpbHMuZ2V0VmFsdWUoYiwga2V5KSA/PyAnJztcbiAgICAgIHJpZ2h0ID0gcmlnaHQgaW5zdGFuY2VvZiBEYXRlID8gcmlnaHQudmFsdWVPZigpLnRvU3RyaW5nKCkgOiByaWdodC50b1N0cmluZygpO1xuXG4gICAgICByZXR1cm4gZGlyZWN0aW9uID09PSAnYXNjJyA/IGxlZnQubG9jYWxlQ29tcGFyZShyaWdodCwgdW5kZWZpbmVkLCBvcHRpb25zKSA6IHJpZ2h0LmxvY2FsZUNvbXBhcmUobGVmdCwgdW5kZWZpbmVkLCBvcHRpb25zKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHJvb3QgZmllbGQgbmFtZSBmcm9tIHRoZSBwcm9wZXJ0eSBwYXRoLlxuICAgKiBFeGFtcGxlOiAncHJvcGVydHkxLnNvbWUuY2hpbGQucHJvcGVydHknID0+ICdwcm9wZXJ0eTEnXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIFByb3BlcnR5IHBhdGhcbiAgICovXG4gIGdldFJvb3RGaWVsZChwYXRoOiBzdHJpbmcpIHtcbiAgICBpZiAocGF0aCkge1xuICAgICAgcmV0dXJuIHBhdGguc3BsaXQoJy4nKVswXTtcbiAgICB9XG4gICAgcmV0dXJuIHBhdGg7XG4gIH1cblxuICBwcml2YXRlIGdldE5hdmlnYXRpb25Db21tYW5kcyh1cmw6IHN0cmluZyk6IGFueVtdIHtcbiAgICBjb25zdCB1cmxUcmVlOiBVcmxUcmVlID0gdGhpcy5yb3V0ZXIucGFyc2VVcmwodXJsKTtcbiAgICBjb25zdCB1cmxTZWdtZW50R3JvdXA6IFVybFNlZ21lbnRHcm91cCA9IHVybFRyZWUucm9vdC5jaGlsZHJlbltQUklNQVJZX09VVExFVF07XG5cbiAgICBpZiAoIXVybFNlZ21lbnRHcm91cCkge1xuICAgICAgcmV0dXJuIFt1cmxdO1xuICAgIH1cblxuICAgIGNvbnN0IHVybFNlZ21lbnRzOiBVcmxTZWdtZW50W10gPSB1cmxTZWdtZW50R3JvdXAuc2VnbWVudHM7XG5cbiAgICByZXR1cm4gdXJsU2VnbWVudHMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIGl0ZW0pIHtcbiAgICAgIGFjYy5wdXNoKGl0ZW0ucGF0aCwgaXRlbS5wYXJhbWV0ZXJzKTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGROYXZpZ2F0ZShlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGxldCBjdXJyZW50RWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcblxuICAgIHdoaWxlIChjdXJyZW50RWxlbWVudCAmJiAhdGhpcy5pc0NoaWxkKGN1cnJlbnRFbGVtZW50LmNsYXNzTGlzdCkpIHtcbiAgICAgIGN1cnJlbnRFbGVtZW50ID0gY3VycmVudEVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICB9XG5cbiAgICByZXR1cm4gISFjdXJyZW50RWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgaXNDaGlsZChsaXN0OiBET01Ub2tlbkxpc3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShsaXN0KS5zb21lKChjbGFzc05hbWU6IHN0cmluZykgPT4gdGhpcy5jb250YWluZXJzU2tpcE5hdmlnYXRpb24uaW5jbHVkZXMoY2xhc3NOYW1lKSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJub2RlSWRcIj5cbiAgPGFkZi1hbGZyZXNjby12aWV3ZXJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAncmlnaHRfc2lkZS0taGlkZSc6ICFzaG93UmlnaHRTaWRlXG4gICAgfVwiXG4gICAgW25vZGVJZF09XCJub2RlSWRcIlxuICAgIFthbGxvd05hdmlnYXRlXT1cIm5hdmlnYXRlTXVsdGlwbGVcIlxuICAgIFthbGxvd1JpZ2h0U2lkZWJhcl09XCJ0cnVlXCJcbiAgICBbYWxsb3dQcmludF09XCJmYWxzZVwiXG4gICAgW3Nob3dSaWdodFNpZGViYXJdPVwidHJ1ZVwiXG4gICAgW2FsbG93RG93bmxvYWRdPVwiZmFsc2VcIlxuICAgIFthbGxvd0Z1bGxTY3JlZW5dPVwiZmFsc2VcIlxuICAgIFtjYW5OYXZpZ2F0ZUJlZm9yZV09XCIhIXByZXZpb3VzTm9kZUlkXCJcbiAgICBbY2FuTmF2aWdhdGVOZXh0XT1cIiEhbmV4dE5vZGVJZFwiXG4gICAgW292ZXJsYXlNb2RlXT1cInRydWVcIlxuICAgIChzaG93Vmlld2VyQ2hhbmdlKT1cIm9uVmlzaWJpbGl0eUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgKG5hdmlnYXRlQmVmb3JlKT1cIm9uTmF2aWdhdGVCZWZvcmUoJGV2ZW50KVwiXG4gICAgKG5hdmlnYXRlTmV4dCk9XCJvbk5hdmlnYXRlTmV4dCgkZXZlbnQpXCJcbiAgPlxuICAgIDxhZGYtdmlld2VyLXNpZGViYXIgKm5nSWY9XCJpbmZvRHJhd2VyT3BlbmVkJCB8IGFzeW5jXCI+XG4gICAgICA8YWNhLWluZm8tZHJhd2VyIFtub2RlXT1cInNlbGVjdGlvbi5maWxlXCI+PC9hY2EtaW5mby1kcmF3ZXI+XG4gICAgPC9hZGYtdmlld2VyLXNpZGViYXI+XG5cbiAgICA8YWRmLXZpZXdlci1vcGVuLXdpdGggKm5nSWY9XCJvcGVuV2l0aC5sZW5ndGhcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBvcGVuV2l0aDsgdHJhY2tCeTogdHJhY2tCeUFjdGlvbklkXCI+XG4gICAgICAgIDxhcHAtdG9vbGJhci1tZW51LWl0ZW0gW2FjdGlvblJlZl09XCJhY3Rpb25cIj48L2FwcC10b29sYmFyLW1lbnUtaXRlbT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvYWRmLXZpZXdlci1vcGVuLXdpdGg+XG5cbiAgICA8YWRmLXZpZXdlci10b29sYmFyLWFjdGlvbnMgKm5nSWY9XCIhc2ltcGxlc3RNb2RlXCI+XG4gICAgICA8YWNhLXRvb2xiYXIgW2l0ZW1zXT1cInZpZXdlclRvb2xiYXJBY3Rpb25zXCI+PC9hY2EtdG9vbGJhcj5cbiAgICA8L2FkZi12aWV3ZXItdG9vbGJhci1hY3Rpb25zPlxuICA8L2FkZi1hbGZyZXNjby12aWV3ZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
394
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9wcmV2aWV3L3NyYy9saWIvY29tcG9uZW50cy9wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3ByZXZpZXcvc3JjL2xpYi9jb21wb25lbnRzL3ByZXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFxQixpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUF3QyxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RyxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZGLE9BQU8sRUFBc0IsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRyxPQUFPLEVBQ0wsYUFBYSxFQUNiLGNBQWMsRUFDZCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLHdCQUF3QixFQUN4QixnQkFBZ0IsRUFDakIsTUFBTSxzQkFBc0IsQ0FBQztBQUc5QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7QUFXdkYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGFBQWE7SUEwQ2pELFlBQ1UsVUFBNkIsRUFDN0IsV0FBbUMsRUFDbkMsS0FBcUIsRUFDckIsZUFBZ0MsRUFDaEMsUUFBaUIsRUFDakIsUUFBa0IsRUFDbEIsY0FBOEI7UUFFdEMsS0FBSyxFQUFFLENBQUM7UUFSQSxlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixnQkFBVyxHQUFYLFdBQVcsQ0FBd0I7UUFDbkMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFoRHhDLG9CQUFlLEdBQVcsSUFBSSxDQUFDO1FBQy9CLHlCQUFvQixHQUFHLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMvRCxtQkFBYyxHQUFXLElBQUksQ0FBQztRQUM5QixzQkFBaUIsR0FBRyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzNGLGFBQVEsR0FBVyxJQUFJLENBQUM7UUFDeEIsV0FBTSxHQUFXLElBQUksQ0FBQztRQUd0QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsYUFBUSxHQUE0QixFQUFFLENBQUM7UUFDdkMsc0JBQWlCLEdBQThCLEVBQUUsQ0FBQztRQUNsRCxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0Qix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFckIsc0JBQWlCLEdBQUc7WUFDbEIsZ0JBQWdCO1lBQ2hCLHFCQUFxQjtZQUNyQixzQkFBc0I7WUFDdEIsaUJBQWlCO1lBQ2pCLHNCQUFzQjtZQUN0Qiw0QkFBNEI7WUFDNUIsbUJBQW1CO1lBQ25CLHFCQUFxQjtZQUNyQixxQkFBcUI7WUFDckIsa0JBQWtCO1lBQ2xCLG9CQUFvQjtZQUNwQix3QkFBd0I7WUFDeEIsa0JBQWtCO1lBQ2xCLGlCQUFpQjtZQUNqQix1QkFBdUI7WUFDdkIsMEJBQTBCO1lBQzFCLHFCQUFxQjtZQUNyQixrQkFBa0I7WUFDbEIsaUJBQWlCO1lBQ2pCLDBCQUEwQjtZQUMxQixrQkFBa0I7U0FDbkIsQ0FBQztRQUVNLDZCQUF3QixHQUFHLENBQUMscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQVl4RyxDQUFDO0lBRUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO2FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2hDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXJHLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMzQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQztRQUMzRCxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBRTdDLElBQUksU0FBUyxDQUFDLGdCQUFnQixFQUFFO1lBQzlCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7U0FDOUI7UUFFRCxJQUFJLFNBQVMsQ0FBQyxjQUFjLEVBQUU7WUFDNUIsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0RCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDLGNBQWMsQ0FBQzthQUNoRDtTQUNGO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQ2hDLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDekIsSUFBSSxFQUFFLEVBQUU7Z0JBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUM3QyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBRW5GLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV2RixJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXpJLElBQUksQ0FBQyxRQUFRO2lCQUNWLElBQUksQ0FDSCxNQUFNLENBQXFCLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxFQUMxRCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQzdDO2lCQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7U0FDdkIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVU7YUFDWixrQkFBa0IsRUFBRTthQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1QsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFVO1FBQzFCLElBQUksRUFBRSxFQUFFO1lBQ04sSUFBSTtnQkFDRixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQzlELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksc0JBQXNCLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRXhFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7b0JBQ3JCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUU3RSxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztvQkFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDM0IsT0FBTztpQkFDUjtnQkFDRCxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3hEO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtvQkFDOUIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDeEQ7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUdELG1CQUFtQixDQUFDLEtBQW9CO1FBQ3RDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFFdEIsSUFBSSxHQUFHLEtBQUssWUFBWSxJQUFJLEdBQUcsS0FBSyxXQUFXLEVBQUU7WUFDL0MsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxtQkFBbUIsQ0FBQyxTQUFrQjtRQUNwQyxNQUFNLGNBQWMsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUNsQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELHNCQUFzQixDQUFDLGNBQXVCO1FBQzVDLElBQUksY0FBYyxFQUFFO1lBQ2xCLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3RCO2lCQUFNO2dCQUNMLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ3RGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBRS9ELElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO29CQUMxQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDM0I7Z0JBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDN0I7U0FDRjtJQUNILENBQUM7SUFFRCxnREFBZ0Q7SUFDaEQsZ0JBQWdCLENBQUMsS0FBaUM7UUFDaEQsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFxQixDQUFDLEVBQUU7WUFDOUUsT0FBTztTQUNSO1FBRUQsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztTQUMvRTtJQUNILENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsY0FBYyxDQUFDLEtBQWlDO1FBQzlDLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsTUFBcUIsQ0FBQyxFQUFFO1lBQzlFLE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDM0U7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjLENBQUMsUUFBZ0IsRUFBRSxNQUFjO1FBQzdDLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXJDLElBQUksUUFBUSxFQUFFO1lBQ1osS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN0QjtRQUVELElBQUksTUFBTSxFQUFFO1lBQ1YsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDL0I7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBYyxFQUFFLFFBQWdCO1FBQ3BELE1BQU0sS0FBSyxHQUFHO1lBQ1osSUFBSSxFQUFFLElBQUk7WUFDVixLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUM7UUFFRixJQUFJLE1BQU0sSUFBSSxRQUFRLEVBQUU7WUFDdEIsSUFBSTtnQkFDRixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDakUsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFaEMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFO29CQUNaLE9BQU87d0JBQ0wsSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSTt3QkFDMUIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSTtxQkFDNUIsQ0FBQztpQkFDSDtxQkFBTTtvQkFDTCxPQUFPLEtBQUssQ0FBQztpQkFDZDthQUNGO1lBQUMsTUFBTTtnQkFDTixPQUFPLEtBQUssQ0FBQzthQUNkO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQWMsRUFBRSxRQUFpQjtRQUNoRCxJQUFJLENBQUMsTUFBTSxLQUFLLGdCQUFnQixJQUFJLE1BQU0sS0FBSyxXQUFXLENBQUMsSUFBSSxRQUFRLEVBQUU7WUFDdkUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsSUFBSSxZQUFZLENBQUM7WUFDbkYsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsa0NBQWtDLENBQUMsSUFBSSxNQUFNLENBQUM7WUFDekYsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVTtpQkFDaEMsZUFBZSxDQUFDLFFBQVEsRUFBRTtnQkFDekIsMENBQTBDO2dCQUMxQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDMUMsS0FBSyxFQUFFLGVBQWU7YUFDdkIsQ0FBQztpQkFDRCxTQUFTLEVBQUUsQ0FBQztZQUVmLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztZQUUzQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNyQztRQUVELElBQUksTUFBTSxLQUFLLFdBQVcsRUFBRTtZQUMxQixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVO2lCQUNoQyxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUNwQixLQUFLLEVBQUUsdUJBQXVCO2dCQUM5QixNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7YUFDbkIsQ0FBQztpQkFDRCxTQUFTLEVBQUUsQ0FBQztZQUVmLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLElBQUksWUFBWSxDQUFDO1lBQzlFLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLElBQUksTUFBTSxDQUFDO1lBQ3BGLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBRXpDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQy9CO1FBRUQsSUFBSSxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ3ZCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLElBQUksWUFBWSxDQUFDO1lBQzlFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsSUFBSSxNQUFNLENBQUM7WUFFcEYsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVTtpQkFDaEMsZUFBZSxDQUFDO2dCQUNmLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2xELENBQUM7aUJBQ0QsU0FBUyxFQUFFLENBQUM7WUFFZixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUVqRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN6QztRQUVELElBQUksTUFBTSxLQUFLLGNBQWMsRUFBRTtZQUM3QixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25FLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLElBQUksWUFBWSxDQUFDO1lBQ3BGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxNQUFNLENBQUM7WUFFMUYsTUFBTSxLQUFLLEdBQWtCO2dCQUMzQixLQUFLLEVBQUU7b0JBQ0wsS0FBSyxFQUFFLEdBQUc7b0JBQ1YsUUFBUSxFQUFFLE1BQU07aUJBQ2pCO2dCQUNELGFBQWEsRUFBRTtvQkFDYixFQUFFLEtBQUssRUFBRSw4Q0FBOEMsRUFBRTtvQkFDekQsRUFBRSxLQUFLLEVBQUUsZUFBZSxRQUFRLGtCQUFrQixRQUFRLEVBQUUsRUFBRTtvQkFDOUQ7d0JBQ0UsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO3FCQUM1QztpQkFDRjtnQkFDRCxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDN0MsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxxQkFBcUIsQ0FBQztnQkFDdEQsSUFBSSxFQUFFO29CQUNKO3dCQUNFLElBQUksRUFBRSxPQUFPO3dCQUNiLEtBQUssRUFBRSxhQUFhO3dCQUNwQixTQUFTLEVBQUUsS0FBSztxQkFDakI7aUJBQ0Y7YUFDRixDQUFDO1lBQ0YsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUU5RCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUVqRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNyQztRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVPLElBQUksQ0FBQyxLQUFZLEVBQUUsR0FBVyxFQUFFLFNBQWlCO1FBQ3ZELE1BQU0sT0FBTyxHQUF5QixFQUFFLENBQUM7UUFFekMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsS0FBSyxNQUFNLEVBQUU7WUFDakQsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDeEI7UUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLENBQU0sRUFBRSxFQUFFO1lBQzVCLElBQUksSUFBSSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM5QyxJQUFJLEdBQUcsSUFBSSxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFMUUsSUFBSSxLQUFLLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQy9DLEtBQUssR0FBRyxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUU5RSxPQUFPLFNBQVMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzdILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFDLElBQVk7UUFDdkIsSUFBSSxJQUFJLEVBQUU7WUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDM0I7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxHQUFXO1FBQ3ZDLE1BQU0sT0FBTyxHQUFZLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sZUFBZSxHQUFvQixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUUvRSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNkO1FBRUQsTUFBTSxXQUFXLEdBQWlCLGVBQWUsQ0FBQyxRQUFRLENBQUM7UUFFM0QsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxFQUFFLElBQUk7WUFDM0MsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNyQyxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7SUFFTyxjQUFjLENBQUMsT0FBb0I7UUFDekMsSUFBSSxjQUFjLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUUzQyxPQUFPLGNBQWMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ2hFLGNBQWMsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDO1NBQy9DO1FBRUQsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDO0lBQzFCLENBQUM7SUFFTyxPQUFPLENBQUMsSUFBa0I7UUFDaEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQWlCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN6RyxDQUFDOzs2R0F4WlUsZ0JBQWdCO2lHQUFoQixnQkFBZ0IseU1DckQ3Qiw4dUNBa0NBLDhhRFlZLFlBQVksa1pBQUUsWUFBWSx3VEFBRSxvQkFBb0IsbWpCQUFFLG1CQUFtQix3RkFBRSx3QkFBd0IsbUdBQUUsZ0JBQWdCOzJGQU9oSCxnQkFBZ0I7a0JBVDVCLFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBRSx3QkFBd0IsRUFBRSxnQkFBZ0IsQ0FBQyxZQUNsSCxhQUFhLGlCQUdSLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFO2tSQWtKOUIsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDIzIEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIFZpZXdFbmNhcHN1bGF0aW9uLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFVybFRyZWUsIFVybFNlZ21lbnRHcm91cCwgVXJsU2VnbWVudCwgUFJJTUFSWV9PVVRMRVQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsIE9iamVjdFV0aWxzLCBWaWV3ZXJNb2R1bGUgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgQ2xvc2VQcmV2aWV3QWN0aW9uLCBWaWV3ZXJBY3Rpb25UeXBlcywgU2V0U2VsZWN0ZWROb2Rlc0FjdGlvbiB9IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkL3N0b3JlJztcbmltcG9ydCB7XG4gIFBhZ2VDb21wb25lbnQsXG4gIEFwcEhvb2tTZXJ2aWNlLFxuICBDb250ZW50QXBpU2VydmljZSxcbiAgSW5mb0RyYXdlckNvbXBvbmVudCxcbiAgVG9vbGJhck1lbnVJdGVtQ29tcG9uZW50LFxuICBUb29sYmFyQ29tcG9uZW50XG59IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkJztcbmltcG9ydCB7IENvbnRlbnRBY3Rpb25SZWYsIFZpZXdlckV4dGVuc2lvblJlZiB9IGZyb20gJ0BhbGZyZXNjby9hZGYtZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBTZWFyY2hSZXF1ZXN0IH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBmcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBY3Rpb25zLCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IEFsZnJlc2NvVmlld2VyTW9kdWxlLCBOb2Rlc0FwaVNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVmlld2VyTW9kdWxlLCBBbGZyZXNjb1ZpZXdlck1vZHVsZSwgSW5mb0RyYXdlckNvbXBvbmVudCwgVG9vbGJhck1lbnVJdGVtQ29tcG9uZW50LCBUb29sYmFyQ29tcG9uZW50XSxcbiAgc2VsZWN0b3I6ICdhcHAtcHJldmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcmV2aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJldmlldy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7IGNsYXNzOiAnYXBwLXByZXZpZXcnIH1cbn0pXG5leHBvcnQgY2xhc3MgUHJldmlld0NvbXBvbmVudCBleHRlbmRzIFBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByZXZpZXdMb2NhdGlvbjogc3RyaW5nID0gbnVsbDtcbiAgcm91dGVzU2tpcE5hdmlnYXRpb24gPSBbJ3NoYXJlZCcsICdyZWNlbnQtZmlsZXMnLCAnZmF2b3JpdGVzJ107XG4gIG5hdmlnYXRlU291cmNlOiBzdHJpbmcgPSBudWxsO1xuICBuYXZpZ2F0aW9uU291cmNlcyA9IFsnZmF2b3JpdGVzJywgJ2xpYnJhcmllcycsICdwZXJzb25hbC1maWxlcycsICdyZWNlbnQtZmlsZXMnLCAnc2hhcmVkJ107XG4gIGZvbGRlcklkOiBzdHJpbmcgPSBudWxsO1xuICBub2RlSWQ6IHN0cmluZyA9IG51bGw7XG4gIHByZXZpb3VzTm9kZUlkOiBzdHJpbmc7XG4gIG5leHROb2RlSWQ6IHN0cmluZztcbiAgbmF2aWdhdGVNdWx0aXBsZSA9IGZhbHNlO1xuICBvcGVuV2l0aDogQXJyYXk8Q29udGVudEFjdGlvblJlZj4gPSBbXTtcbiAgY29udGVudEV4dGVuc2lvbnM6IEFycmF5PFZpZXdlckV4dGVuc2lvblJlZj4gPSBbXTtcbiAgc2hvd1JpZ2h0U2lkZSA9IGZhbHNlO1xuICBuYXZpZ2F0ZUJhY2tBc0Nsb3NlID0gZmFsc2U7XG4gIHNpbXBsZXN0TW9kZSA9IGZhbHNlO1xuXG4gIHJlY2VudEZpbGVGaWx0ZXJzID0gW1xuICAgICdUWVBFOlwiY29udGVudFwiJyxcbiAgICAnLVBBVEg6XCIvL2NtOndpa2kvKlwiJyxcbiAgICAnLVRZUEU6XCJhcHA6ZmlsZWxpbmtcIicsXG4gICAgJy1UWVBFOlwiZm06cG9zdFwiJyxcbiAgICAnLVRZUEU6XCJjbTp0aHVtYm5haWxcIicsXG4gICAgJy1UWVBFOlwiY206ZmFpbGVkVGh1bWJuYWlsXCInLFxuICAgICctVFlQRTpcImNtOnJhdGluZ1wiJyxcbiAgICAnLVRZUEU6XCJkbDpkYXRhTGlzdFwiJyxcbiAgICAnLVRZUEU6XCJkbDp0b2RvTGlzdFwiJyxcbiAgICAnLVRZUEU6XCJkbDppc3N1ZVwiJyxcbiAgICAnLVRZUEU6XCJkbDpjb250YWN0XCInLFxuICAgICctVFlQRTpcImRsOmV2ZW50QWdlbmRhXCInLFxuICAgICctVFlQRTpcImRsOmV2ZW50XCInLFxuICAgICctVFlQRTpcImRsOnRhc2tcIicsXG4gICAgJy1UWVBFOlwiZGw6c2ltcGxldGFza1wiJyxcbiAgICAnLVRZUEU6XCJkbDptZWV0aW5nQWdlbmRhXCInLFxuICAgICctVFlQRTpcImRsOmxvY2F0aW9uXCInLFxuICAgICctVFlQRTpcImZtOnRvcGljXCInLFxuICAgICctVFlQRTpcImZtOnBvc3RcIicsXG4gICAgJy1UWVBFOlwiaWE6Y2FsZW5kYXJFdmVudFwiJyxcbiAgICAnLVRZUEU6XCJsbms6bGlua1wiJ1xuICBdO1xuXG4gIHByaXZhdGUgY29udGFpbmVyc1NraXBOYXZpZ2F0aW9uID0gWydhZGYtdmlld2VyX19zaWRlYmFyJywgJ2Nkay1vdmVybGF5LWNvbnRhaW5lcicsICdhZGYtaW1hZ2Utdmlld2VyJ107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb250ZW50QXBpOiBDb250ZW50QXBpU2VydmljZSxcbiAgICBwcml2YXRlIHByZWZlcmVuY2VzOiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgbm9kZXNBcGlTZXJ2aWNlOiBOb2Rlc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucyxcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICBwcml2YXRlIGFwcEhvb2tTZXJ2aWNlOiBBcHBIb29rU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIGZyb20odGhpcy5pbmZvRHJhd2VyT3BlbmVkJClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgodmFsKSA9PiB7XG4gICAgICAgIHRoaXMuc2hvd1JpZ2h0U2lkZSA9IHZhbDtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5wcmV2aWV3TG9jYXRpb24gPSB0aGlzLnJvdXRlci51cmwuc3Vic3RyKDAsIHRoaXMucm91dGVyLnVybC5pbmRleE9mKCcvJywgMSkpLnJlcGxhY2UoL1xcLy9nLCAnJyk7XG5cbiAgICBjb25zdCByb3V0ZURhdGEgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGE7XG4gICAgdGhpcy5uYXZpZ2F0ZUJhY2tBc0Nsb3NlID0gISFyb3V0ZURhdGEubmF2aWdhdGVCYWNrQXNDbG9zZTtcbiAgICB0aGlzLnNpbXBsZXN0TW9kZSA9ICEhcm91dGVEYXRhLnNpbXBsZXN0TW9kZTtcblxuICAgIGlmIChyb3V0ZURhdGEubmF2aWdhdGVNdWx0aXBsZSkge1xuICAgICAgdGhpcy5uYXZpZ2F0ZU11bHRpcGxlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAocm91dGVEYXRhLm5hdmlnYXRlU291cmNlKSB7XG4gICAgICBjb25zdCBzb3VyY2UgPSByb3V0ZURhdGEubmF2aWdhdGVTb3VyY2UudG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmICh0aGlzLm5hdmlnYXRpb25Tb3VyY2VzLmluY2x1ZGVzKHNvdXJjZSkpIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZVNvdXJjZSA9IHJvdXRlRGF0YS5uYXZpZ2F0ZVNvdXJjZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xuICAgICAgdGhpcy5mb2xkZXJJZCA9IHBhcmFtcy5mb2xkZXJJZDtcbiAgICAgIGNvbnN0IGlkID0gcGFyYW1zLm5vZGVJZDtcbiAgICAgIGlmIChpZCkge1xuICAgICAgICB0aGlzLmRpc3BsYXlOb2RlKGlkKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IHRoaXMuc3Vic2NyaXB0aW9ucy5jb25jYXQoW1xuICAgICAgdGhpcy5hcHBIb29rU2VydmljZS5ub2Rlc0RlbGV0ZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMubmF2aWdhdGVUb0ZpbGVMb2NhdGlvbih0cnVlKSksXG5cbiAgICAgIHRoaXMudXBsb2FkU2VydmljZS5maWxlVXBsb2FkRGVsZXRlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5uYXZpZ2F0ZVRvRmlsZUxvY2F0aW9uKHRydWUpKSxcblxuICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLmZpbGVVcGxvYWRDb21wbGV0ZS5waXBlKGRlYm91bmNlVGltZSgzMDApKS5zdWJzY3JpYmUoKGZpbGUpID0+IHRoaXMubm9kZXNBcGlTZXJ2aWNlLm5vZGVVcGRhdGVkLm5leHQoZmlsZS5kYXRhLmVudHJ5KSksXG5cbiAgICAgIHRoaXMuYWN0aW9ucyRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgb2ZUeXBlPENsb3NlUHJldmlld0FjdGlvbj4oVmlld2VyQWN0aW9uVHlwZXMuQ2xvc2VQcmV2aWV3KSxcbiAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5uYXZpZ2F0ZVRvRmlsZUxvY2F0aW9uKHRydWUpKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge30pXG4gICAgXSk7XG5cbiAgICB0aGlzLmV4dGVuc2lvbnNcbiAgICAgIC5nZXRPcGVuV2l0aEFjdGlvbnMoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChhY3Rpb25zKSA9PiB7XG4gICAgICAgIHRoaXMub3BlbldpdGggPSBhY3Rpb25zO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBwYXJ0aWN1bGFyIG5vZGUgaW50byB0aGUgVmlld2VyXG4gICAqXG4gICAqIEBwYXJhbSBpZCBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIE5vZGUgdG8gZGlzcGxheVxuICAgKi9cbiAgYXN5bmMgZGlzcGxheU5vZGUoaWQ6IHN0cmluZykge1xuICAgIGlmIChpZCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5ub2RlID0gYXdhaXQgdGhpcy5jb250ZW50QXBpLmdldE5vZGVJbmZvKGlkKS50b1Byb21pc2UoKTtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0U2VsZWN0ZWROb2Rlc0FjdGlvbihbeyBlbnRyeTogdGhpcy5ub2RlIH1dKSk7XG5cbiAgICAgICAgaWYgKHRoaXMubm9kZT8uaXNGaWxlKSB7XG4gICAgICAgICAgY29uc3QgbmVhcmVzdCA9IGF3YWl0IHRoaXMuZ2V0TmVhcmVzdE5vZGVzKHRoaXMubm9kZS5pZCwgdGhpcy5ub2RlLnBhcmVudElkKTtcblxuICAgICAgICAgIHRoaXMucHJldmlvdXNOb2RlSWQgPSBuZWFyZXN0LmxlZnQ7XG4gICAgICAgICAgdGhpcy5uZXh0Tm9kZUlkID0gbmVhcmVzdC5yaWdodDtcbiAgICAgICAgICB0aGlzLm5vZGVJZCA9IHRoaXMubm9kZS5pZDtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMucHJldmlld0xvY2F0aW9uLCBpZF0pO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmICghZXJyIHx8IGVyci5zdGF0dXMgIT09IDQwMSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLnByZXZpZXdMb2NhdGlvbiwgaWRdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3Qga2V5ID0gZXZlbnQua2V5O1xuXG4gICAgaWYgKGtleSA9PT0gJ0Fycm93UmlnaHQnIHx8IGtleSA9PT0gJ0Fycm93TGVmdCcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgdmlzaWJpbGl0eSBjaGFuZ2Ugb2YgdGhlIFZpZXdlciBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBpc1Zpc2libGUgSW5kaWNhdG9yIHdoZXRoZXIgVmlld2VyIGlzIHZpc2libGUgb3IgaGlkZGVuLlxuICAgKi9cbiAgb25WaXNpYmlsaXR5Q2hhbmdlZChpc1Zpc2libGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBzaG91bGROYXZpZ2F0ZSA9ICFpc1Zpc2libGU7XG4gICAgdGhpcy5uYXZpZ2F0ZVRvRmlsZUxvY2F0aW9uKHNob3VsZE5hdmlnYXRlKTtcbiAgfVxuXG4gIG5hdmlnYXRlVG9GaWxlTG9jYXRpb24oc2hvdWxkTmF2aWdhdGU6IGJvb2xlYW4pIHtcbiAgICBpZiAoc2hvdWxkTmF2aWdhdGUpIHtcbiAgICAgIGlmICh0aGlzLm5hdmlnYXRlQmFja0FzQ2xvc2UpIHtcbiAgICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzaG91bGRTa2lwTmF2aWdhdGlvbiA9IHRoaXMucm91dGVzU2tpcE5hdmlnYXRpb24uaW5jbHVkZXModGhpcy5wcmV2aWV3TG9jYXRpb24pO1xuICAgICAgICBjb25zdCByb3V0ZSA9IHRoaXMuZ2V0TmF2aWdhdGlvbkNvbW1hbmRzKHRoaXMucHJldmlld0xvY2F0aW9uKTtcblxuICAgICAgICBpZiAoIXNob3VsZFNraXBOYXZpZ2F0aW9uICYmIHRoaXMuZm9sZGVySWQpIHtcbiAgICAgICAgICByb3V0ZS5wdXNoKHRoaXMuZm9sZGVySWQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHJvdXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogSGFuZGxlcyBuYXZpZ2F0aW9uIHRvIGEgcHJldmlvdXMgZG9jdW1lbnQgKi9cbiAgb25OYXZpZ2F0ZUJlZm9yZShldmVudDogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQudHlwZSAhPT0gJ2NsaWNrJyAmJiB0aGlzLnNob3VsZE5hdmlnYXRlKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcmV2aW91c05vZGVJZCkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUodGhpcy5nZXRQcmV2aWV3UGF0aCh0aGlzLmZvbGRlcklkLCB0aGlzLnByZXZpb3VzTm9kZUlkKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEhhbmRsZXMgbmF2aWdhdGlvbiB0byBhIG5leHQgZG9jdW1lbnQgKi9cbiAgb25OYXZpZ2F0ZU5leHQoZXZlbnQ6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LnR5cGUgIT09ICdjbGljaycgJiYgdGhpcy5zaG91bGROYXZpZ2F0ZShldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubmV4dE5vZGVJZCkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUodGhpcy5nZXRQcmV2aWV3UGF0aCh0aGlzLmZvbGRlcklkLCB0aGlzLm5leHROb2RlSWQpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgbm9kZSBwcmV2aWV3IHJvdXRlIGJhc2VkIG9uIGZvbGRlciBhbmQgbm9kZSBJRHMuXG4gICAqXG4gICAqIEBwYXJhbSBmb2xkZXJJZCBGb2xkZXIgSURcbiAgICogQHBhcmFtIG5vZGVJZCBOb2RlIElEXG4gICAqL1xuICBnZXRQcmV2aWV3UGF0aChmb2xkZXJJZDogc3RyaW5nLCBub2RlSWQ6IHN0cmluZyk6IGFueVtdIHtcbiAgICBjb25zdCByb3V0ZSA9IFt0aGlzLnByZXZpZXdMb2NhdGlvbl07XG5cbiAgICBpZiAoZm9sZGVySWQpIHtcbiAgICAgIHJvdXRlLnB1c2goZm9sZGVySWQpO1xuICAgIH1cblxuICAgIGlmIChub2RlSWQpIHtcbiAgICAgIHJvdXRlLnB1c2goJ3ByZXZpZXcnLCBub2RlSWQpO1xuICAgIH1cblxuICAgIHJldHVybiByb3V0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgbmVhcmVzdCBub2RlIGluZm9ybWF0aW9uIGZvciB0aGUgZ2l2ZW4gbm9kZSBhbmQgZm9sZGVyLlxuICAgKlxuICAgKiBAcGFyYW0gbm9kZUlkIFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBkb2N1bWVudCBub2RlXG4gICAqIEBwYXJhbSBmb2xkZXJJZCBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29udGFpbmluZyBmb2xkZXIgbm9kZS5cbiAgICovXG4gIGFzeW5jIGdldE5lYXJlc3ROb2Rlcyhub2RlSWQ6IHN0cmluZywgZm9sZGVySWQ6IHN0cmluZyk6IFByb21pc2U8eyBsZWZ0OiBzdHJpbmc7IHJpZ2h0OiBzdHJpbmcgfT4ge1xuICAgIGNvbnN0IGVtcHR5ID0ge1xuICAgICAgbGVmdDogbnVsbCxcbiAgICAgIHJpZ2h0OiBudWxsXG4gICAgfTtcblxuICAgIGlmIChub2RlSWQgJiYgZm9sZGVySWQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGlkcyA9IGF3YWl0IHRoaXMuZ2V0RmlsZUlkcyh0aGlzLm5hdmlnYXRlU291cmNlLCBmb2xkZXJJZCk7XG4gICAgICAgIGNvbnN0IGlkeCA9IGlkcy5pbmRleE9mKG5vZGVJZCk7XG5cbiAgICAgICAgaWYgKGlkeCA+PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxlZnQ6IGlkc1tpZHggLSAxXSB8fCBudWxsLFxuICAgICAgICAgICAgcmlnaHQ6IGlkc1tpZHggKyAxXSB8fCBudWxsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gZW1wdHk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gZW1wdHk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBlbXB0eTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBub2RlIGlkZW50aWZpZXJzIGZvciB0aGUgZm9sZGVyIGFuZCBkYXRhIHNvdXJjZS5cbiAgICpcbiAgICogQHBhcmFtIHNvdXJjZSBEYXRhIHNvdXJjZSBuYW1lLiBBbGxvd2VkIHZhbHVlcyBhcmU6IHBlcnNvbmFsLWZpbGVzLCBsaWJyYXJpZXMsIGZhdm9yaXRlcywgc2hhcmVkLCByZWNlbnQtZmlsZXMuXG4gICAqIEBwYXJhbSBmb2xkZXJJZCBDb250YWluaW5nIGZvbGRlciBub2RlIGlkZW50aWZpZXIgZm9yICdwZXJzb25hbC1maWxlcycgYW5kICdsaWJyYXJpZXMnIHNvdXJjZXMuXG4gICAqL1xuICBhc3luYyBnZXRGaWxlSWRzKHNvdXJjZTogc3RyaW5nLCBmb2xkZXJJZD86IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBpZiAoKHNvdXJjZSA9PT0gJ3BlcnNvbmFsLWZpbGVzJyB8fCBzb3VyY2UgPT09ICdsaWJyYXJpZXMnKSAmJiBmb2xkZXJJZCkge1xuICAgICAgY29uc3Qgc29ydEtleSA9IHRoaXMucHJlZmVyZW5jZXMuZ2V0KCdwZXJzb25hbC1maWxlcy5zb3J0aW5nLmtleScpIHx8ICdtb2RpZmllZEF0JztcbiAgICAgIGNvbnN0IHNvcnREaXJlY3Rpb24gPSB0aGlzLnByZWZlcmVuY2VzLmdldCgncGVyc29uYWwtZmlsZXMuc29ydGluZy5kaXJlY3Rpb24nKSB8fCAnZGVzYyc7XG4gICAgICBjb25zdCBub2RlcyA9IGF3YWl0IHRoaXMuY29udGVudEFwaVxuICAgICAgICAuZ2V0Tm9kZUNoaWxkcmVuKGZvbGRlcklkLCB7XG4gICAgICAgICAgLy8gb3JkZXJCeTogYCR7c29ydEtleX0gJHtzb3J0RGlyZWN0aW9ufWAsXG4gICAgICAgICAgZmllbGRzOiBbJ2lkJywgdGhpcy5nZXRSb290RmllbGQoc29ydEtleSldLFxuICAgICAgICAgIHdoZXJlOiAnKGlzRmlsZT10cnVlKSdcbiAgICAgICAgfSlcbiAgICAgICAgLnRvUHJvbWlzZSgpO1xuXG4gICAgICBjb25zdCBlbnRyaWVzID0gbm9kZXMubGlzdC5lbnRyaWVzLm1hcCgob2JqKSA9PiBvYmouZW50cnkpO1xuICAgICAgdGhpcy5zb3J0KGVudHJpZXMsIHNvcnRLZXksIHNvcnREaXJlY3Rpb24pO1xuXG4gICAgICByZXR1cm4gZW50cmllcy5tYXAoKG9iaikgPT4gb2JqLmlkKTtcbiAgICB9XG5cbiAgICBpZiAoc291cmNlID09PSAnZmF2b3JpdGVzJykge1xuICAgICAgY29uc3Qgbm9kZXMgPSBhd2FpdCB0aGlzLmNvbnRlbnRBcGlcbiAgICAgICAgLmdldEZhdm9yaXRlcygnLW1lLScsIHtcbiAgICAgICAgICB3aGVyZTogJyhFWElTVFModGFyZ2V0L2ZpbGUpKScsXG4gICAgICAgICAgZmllbGRzOiBbJ3RhcmdldCddXG4gICAgICAgIH0pXG4gICAgICAgIC50b1Byb21pc2UoKTtcblxuICAgICAgY29uc3Qgc29ydEtleSA9IHRoaXMucHJlZmVyZW5jZXMuZ2V0KCdmYXZvcml0ZXMuc29ydGluZy5rZXknKSB8fCAnbW9kaWZpZWRBdCc7XG4gICAgICBjb25zdCBzb3J0RGlyZWN0aW9uID0gdGhpcy5wcmVmZXJlbmNlcy5nZXQoJ2Zhdm9yaXRlcy5zb3J0aW5nLmRpcmVjdGlvbicpIHx8ICdkZXNjJztcbiAgICAgIGNvbnN0IGZpbGVzID0gbm9kZXMubGlzdC5lbnRyaWVzLm1hcCgob2JqKSA9PiBvYmouZW50cnkudGFyZ2V0LmZpbGUpO1xuICAgICAgdGhpcy5zb3J0KGZpbGVzLCBzb3J0S2V5LCBzb3J0RGlyZWN0aW9uKTtcblxuICAgICAgcmV0dXJuIGZpbGVzLm1hcCgoZikgPT4gZi5pZCk7XG4gICAgfVxuXG4gICAgaWYgKHNvdXJjZSA9PT0gJ3NoYXJlZCcpIHtcbiAgICAgIGNvbnN0IHNvcnRpbmdLZXkgPSB0aGlzLnByZWZlcmVuY2VzLmdldCgnc2hhcmVkLnNvcnRpbmcua2V5JykgfHwgJ21vZGlmaWVkQXQnO1xuICAgICAgY29uc3Qgc29ydGluZ0RpcmVjdGlvbiA9IHRoaXMucHJlZmVyZW5jZXMuZ2V0KCdzaGFyZWQuc29ydGluZy5kaXJlY3Rpb24nKSB8fCAnZGVzYyc7XG5cbiAgICAgIGNvbnN0IG5vZGVzID0gYXdhaXQgdGhpcy5jb250ZW50QXBpXG4gICAgICAgIC5maW5kU2hhcmVkTGlua3Moe1xuICAgICAgICAgIGZpZWxkczogWydub2RlSWQnLCB0aGlzLmdldFJvb3RGaWVsZChzb3J0aW5nS2V5KV1cbiAgICAgICAgfSlcbiAgICAgICAgLnRvUHJvbWlzZSgpO1xuXG4gICAgICBjb25zdCBlbnRyaWVzID0gbm9kZXMubGlzdC5lbnRyaWVzLm1hcCgob2JqKSA9PiBvYmouZW50cnkpO1xuICAgICAgdGhpcy5zb3J0KGVudHJpZXMsIHNvcnRpbmdLZXksIHNvcnRpbmdEaXJlY3Rpb24pO1xuXG4gICAgICByZXR1cm4gZW50cmllcy5tYXAoKG9iaikgPT4gb2JqLm5vZGVJZCk7XG4gICAgfVxuXG4gICAgaWYgKHNvdXJjZSA9PT0gJ3JlY2VudC1maWxlcycpIHtcbiAgICAgIGNvbnN0IHBlcnNvbiA9IGF3YWl0IHRoaXMuY29udGVudEFwaS5nZXRQZXJzb24oJy1tZS0nKS50b1Byb21pc2UoKTtcbiAgICAgIGNvbnN0IHVzZXJuYW1lID0gcGVyc29uLmVudHJ5LmlkO1xuICAgICAgY29uc3Qgc29ydGluZ0tleSA9IHRoaXMucHJlZmVyZW5jZXMuZ2V0KCdyZWNlbnQtZmlsZXMuc29ydGluZy5rZXknKSB8fCAnbW9kaWZpZWRBdCc7XG4gICAgICBjb25zdCBzb3J0aW5nRGlyZWN0aW9uID0gdGhpcy5wcmVmZXJlbmNlcy5nZXQoJ3JlY2VudC1maWxlcy5zb3J0aW5nLmRpcmVjdGlvbicpIHx8ICdkZXNjJztcblxuICAgICAgY29uc3QgcXVlcnk6IFNlYXJjaFJlcXVlc3QgPSB7XG4gICAgICAgIHF1ZXJ5OiB7XG4gICAgICAgICAgcXVlcnk6ICcqJyxcbiAgICAgICAgICBsYW5ndWFnZTogJ2FmdHMnXG4gICAgICAgIH0sXG4gICAgICAgIGZpbHRlclF1ZXJpZXM6IFtcbiAgICAgICAgICB7IHF1ZXJ5OiBgY206bW9kaWZpZWQ6W05PVy9EQVktMzBEQVlTIFRPIE5PVy9EQVkrMURBWV1gIH0sXG4gICAgICAgICAgeyBxdWVyeTogYGNtOm1vZGlmaWVyOiR7dXNlcm5hbWV9IE9SIGNtOmNyZWF0b3I6JHt1c2VybmFtZX1gIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcXVlcnk6IHRoaXMucmVjZW50RmlsZUZpbHRlcnMuam9pbignIEFORCAnKVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgZmllbGRzOiBbJ2lkJywgdGhpcy5nZXRSb290RmllbGQoc29ydGluZ0tleSldLFxuICAgICAgICBpbmNsdWRlOiBbJ3BhdGgnLCAncHJvcGVydGllcycsICdhbGxvd2FibGVPcGVyYXRpb25zJ10sXG4gICAgICAgIHNvcnQ6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiAnRklFTEQnLFxuICAgICAgICAgICAgZmllbGQ6ICdjbTptb2RpZmllZCcsXG4gICAgICAgICAgICBhc2NlbmRpbmc6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9O1xuICAgICAgY29uc3Qgbm9kZXMgPSBhd2FpdCB0aGlzLmNvbnRlbnRBcGkuc2VhcmNoKHF1ZXJ5KS50b1Byb21pc2UoKTtcblxuICAgICAgY29uc3QgZW50cmllcyA9IG5vZGVzLmxpc3QuZW50cmllcy5tYXAoKG9iaikgPT4gb2JqLmVudHJ5KTtcbiAgICAgIHRoaXMuc29ydChlbnRyaWVzLCBzb3J0aW5nS2V5LCBzb3J0aW5nRGlyZWN0aW9uKTtcblxuICAgICAgcmV0dXJuIGVudHJpZXMubWFwKChvYmopID0+IG9iai5pZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBzb3J0KGl0ZW1zOiBhbnlbXSwga2V5OiBzdHJpbmcsIGRpcmVjdGlvbjogc3RyaW5nKSB7XG4gICAgY29uc3Qgb3B0aW9uczogSW50bC5Db2xsYXRvck9wdGlvbnMgPSB7fTtcblxuICAgIGlmIChrZXkuaW5jbHVkZXMoJ3NpemVJbkJ5dGVzJykgfHwga2V5ID09PSAnbmFtZScpIHtcbiAgICAgIG9wdGlvbnMubnVtZXJpYyA9IHRydWU7XG4gICAgfVxuXG4gICAgaXRlbXMuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcbiAgICAgIGxldCBsZWZ0ID0gT2JqZWN0VXRpbHMuZ2V0VmFsdWUoYSwga2V5KSA/PyAnJztcbiAgICAgIGxlZnQgPSBsZWZ0IGluc3RhbmNlb2YgRGF0ZSA/IGxlZnQudmFsdWVPZigpLnRvU3RyaW5nKCkgOiBsZWZ0LnRvU3RyaW5nKCk7XG5cbiAgICAgIGxldCByaWdodCA9IE9iamVjdFV0aWxzLmdldFZhbHVlKGIsIGtleSkgPz8gJyc7XG4gICAgICByaWdodCA9IHJpZ2h0IGluc3RhbmNlb2YgRGF0ZSA/IHJpZ2h0LnZhbHVlT2YoKS50b1N0cmluZygpIDogcmlnaHQudG9TdHJpbmcoKTtcblxuICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PT0gJ2FzYycgPyBsZWZ0LmxvY2FsZUNvbXBhcmUocmlnaHQsIHVuZGVmaW5lZCwgb3B0aW9ucykgOiByaWdodC5sb2NhbGVDb21wYXJlKGxlZnQsIHVuZGVmaW5lZCwgb3B0aW9ucyk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSByb290IGZpZWxkIG5hbWUgZnJvbSB0aGUgcHJvcGVydHkgcGF0aC5cbiAgICogRXhhbXBsZTogJ3Byb3BlcnR5MS5zb21lLmNoaWxkLnByb3BlcnR5JyA9PiAncHJvcGVydHkxJ1xuICAgKlxuICAgKiBAcGFyYW0gcGF0aCBQcm9wZXJ0eSBwYXRoXG4gICAqL1xuICBnZXRSb290RmllbGQocGF0aDogc3RyaW5nKSB7XG4gICAgaWYgKHBhdGgpIHtcbiAgICAgIHJldHVybiBwYXRoLnNwbGl0KCcuJylbMF07XG4gICAgfVxuICAgIHJldHVybiBwYXRoO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROYXZpZ2F0aW9uQ29tbWFuZHModXJsOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgY29uc3QgdXJsVHJlZTogVXJsVHJlZSA9IHRoaXMucm91dGVyLnBhcnNlVXJsKHVybCk7XG4gICAgY29uc3QgdXJsU2VnbWVudEdyb3VwOiBVcmxTZWdtZW50R3JvdXAgPSB1cmxUcmVlLnJvb3QuY2hpbGRyZW5bUFJJTUFSWV9PVVRMRVRdO1xuXG4gICAgaWYgKCF1cmxTZWdtZW50R3JvdXApIHtcbiAgICAgIHJldHVybiBbdXJsXTtcbiAgICB9XG5cbiAgICBjb25zdCB1cmxTZWdtZW50czogVXJsU2VnbWVudFtdID0gdXJsU2VnbWVudEdyb3VwLnNlZ21lbnRzO1xuXG4gICAgcmV0dXJuIHVybFNlZ21lbnRzLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBpdGVtKSB7XG4gICAgICBhY2MucHVzaChpdGVtLnBhdGgsIGl0ZW0ucGFyYW1ldGVycyk7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkTmF2aWdhdGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBsZXQgY3VycmVudEVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cbiAgICB3aGlsZSAoY3VycmVudEVsZW1lbnQgJiYgIXRoaXMuaXNDaGlsZChjdXJyZW50RWxlbWVudC5jbGFzc0xpc3QpKSB7XG4gICAgICBjdXJyZW50RWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhY3VycmVudEVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIGlzQ2hpbGQobGlzdDogRE9NVG9rZW5MaXN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20obGlzdCkuc29tZSgoY2xhc3NOYW1lOiBzdHJpbmcpID0+IHRoaXMuY29udGFpbmVyc1NraXBOYXZpZ2F0aW9uLmluY2x1ZGVzKGNsYXNzTmFtZSkpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibm9kZUlkXCI+XG4gIDxhZGYtYWxmcmVzY28tdmlld2VyXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3JpZ2h0X3NpZGUtLWhpZGUnOiAhc2hvd1JpZ2h0U2lkZVxuICAgIH1cIlxuICAgIFtub2RlSWRdPVwibm9kZUlkXCJcbiAgICBbYWxsb3dOYXZpZ2F0ZV09XCJuYXZpZ2F0ZU11bHRpcGxlXCJcbiAgICBbYWxsb3dSaWdodFNpZGViYXJdPVwidHJ1ZVwiXG4gICAgW2FsbG93UHJpbnRdPVwiZmFsc2VcIlxuICAgIFtzaG93UmlnaHRTaWRlYmFyXT1cInRydWVcIlxuICAgIFthbGxvd0Rvd25sb2FkXT1cImZhbHNlXCJcbiAgICBbYWxsb3dGdWxsU2NyZWVuXT1cImZhbHNlXCJcbiAgICBbY2FuTmF2aWdhdGVCZWZvcmVdPVwiISFwcmV2aW91c05vZGVJZFwiXG4gICAgW2Nhbk5hdmlnYXRlTmV4dF09XCIhIW5leHROb2RlSWRcIlxuICAgIFtvdmVybGF5TW9kZV09XCJ0cnVlXCJcbiAgICAoc2hvd1ZpZXdlckNoYW5nZSk9XCJvblZpc2liaWxpdHlDaGFuZ2VkKCRldmVudClcIlxuICAgIChuYXZpZ2F0ZUJlZm9yZSk9XCJvbk5hdmlnYXRlQmVmb3JlKCRldmVudClcIlxuICAgIChuYXZpZ2F0ZU5leHQpPVwib25OYXZpZ2F0ZU5leHQoJGV2ZW50KVwiXG4gID5cbiAgICA8YWRmLXZpZXdlci1zaWRlYmFyICpuZ0lmPVwiaW5mb0RyYXdlck9wZW5lZCQgfCBhc3luY1wiPlxuICAgICAgPGFjYS1pbmZvLWRyYXdlciBbbm9kZV09XCJzZWxlY3Rpb24uZmlsZVwiPjwvYWNhLWluZm8tZHJhd2VyPlxuICAgIDwvYWRmLXZpZXdlci1zaWRlYmFyPlxuXG4gICAgPGFkZi12aWV3ZXItb3Blbi13aXRoICpuZ0lmPVwib3BlbldpdGgubGVuZ3RoXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2Ygb3BlbldpdGg7IHRyYWNrQnk6IHRyYWNrQnlBY3Rpb25JZFwiPlxuICAgICAgICA8YXBwLXRvb2xiYXItbWVudS1pdGVtIFthY3Rpb25SZWZdPVwiYWN0aW9uXCI+PC9hcHAtdG9vbGJhci1tZW51LWl0ZW0+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2FkZi12aWV3ZXItb3Blbi13aXRoPlxuXG4gICAgPGFkZi12aWV3ZXItdG9vbGJhci1hY3Rpb25zICpuZ0lmPVwiIXNpbXBsZXN0TW9kZVwiPlxuICAgICAgPGFjYS10b29sYmFyIFtpdGVtc109XCJ2aWV3ZXJUb29sYmFyQWN0aW9uc1wiPjwvYWNhLXRvb2xiYXI+XG4gICAgPC9hZGYtdmlld2VyLXRvb2xiYXItYWN0aW9ucz5cbiAgPC9hZGYtYWxmcmVzY28tdmlld2VyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|