ngx-render-material-forms 1.7.0 → 1.7.1

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.
@@ -258,74 +258,25 @@ export class MaterialSelectComponent extends MaterialComponent {
258
258
  }
259
259
  }
260
260
  updateSecondDropdown(value) {
261
- const paramsData = JSON.parse(localStorage.getItem('cascadingDropdownsParamsone'));
262
- const vendorId = this.getValueByKey(paramsData, 'vendorId');
263
- const dealId = this.getValueByKey(paramsData, 'dealId');
264
- const isEdit = this.getValueByKey(paramsData, 'isEdit');
265
- let finalParams;
266
- this.instance?.parent?.components?.length && this.instance.parent.components.forEach(items => {
267
- if (this.checkVendorRefItems(items)) {
268
- const apiEndPoint = items?.component?.selectValues;
269
- if (apiEndPoint != '') {
270
- var parameters = [
271
- {
272
- "key": "userId",
273
- "value": JSON.parse(localStorage.getItem('currentUser')).UserId
274
- },
275
- {
276
- "key": "vendorId",
277
- "value": vendorId
278
- },
279
- {
280
- "key": "loginUserId",
281
- "value": JSON.parse(localStorage.getItem('currentUser')).UserId
282
- },
283
- {
284
- "key": "country",
285
- "value": typeof value === 'string' ? value.trim() : ''
286
- },
287
- {
288
- "key": "dataValue",
289
- "value": typeof value === 'string' ? value.trim() : ''
290
- },
291
- {
292
- "key": "dealId",
293
- "value": dealId
294
- },
295
- {
296
- "key": "isEdit",
297
- "value": isEdit
298
- },
299
- {
300
- "key": "referenceListName",
301
- "value": items?.component?.key
302
- },
303
- {
304
- "key": "referenceListFieldName",
305
- "value": this.instance?.component?.key
306
- }
307
- ];
308
- finalParams = parameters?.filter(f1 => items?.component?.data?.headers.some(f2 => f1.key === f2.key));
309
- if (Array.isArray(finalParams)) {
310
- const index = finalParams.findIndex(param => param.key === 'dataValue');
311
- if (index !== -1) {
312
- // If the object exists, update its value
313
- finalParams[index].value = value;
314
- }
315
- else {
316
- // If the object doesn't exist, add it to the array
317
- finalParams.push({ key: 'dataValue', value: value });
318
- }
319
- this.commonService.initializeApiPath(apiEndPoint, finalParams).subscribe(response => {
320
- if (response && response.code === 200) {
321
- this.secondDropdownItems = response.data;
322
- this.commonService.setDropdownItems(this.secondDropdownItems);
323
- }
324
- });
325
- }
326
- }
261
+ const apiEndPoint = 'ManageVendors/GetReferenceDataItemsByVendorIdAndDataValue';
262
+ let finalParams = JSON.parse(localStorage.getItem('cascadingDropdownsParams'));
263
+ if (Array.isArray(finalParams)) {
264
+ const index = finalParams.findIndex(param => param.key === 'dataValue');
265
+ if (index !== -1) {
266
+ // If the object exists, update its value
267
+ finalParams[index].value = value;
327
268
  }
328
- });
269
+ else {
270
+ // If the object doesn't exist, add it to the array
271
+ finalParams.push({ key: 'dataValue', value: value });
272
+ }
273
+ this.commonService.initializeApiPath(apiEndPoint, finalParams).subscribe(response => {
274
+ if (response && response.code === 200) {
275
+ this.secondDropdownItems = response.data;
276
+ this.commonService.setDropdownItems(this.secondDropdownItems);
277
+ }
278
+ });
279
+ }
329
280
  }
330
281
  ngAfterViewInit() {
331
282
  this.selectElem.openedChange.subscribe(async (isOpen) => {
@@ -581,4 +532,4 @@ SelectComponent.prototype.setItems = function (...args) {
581
532
  }
582
533
  };
583
534
  export { SelectComponent };
584
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUE0QyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakksT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxlQUFlLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFVLFNBQVMsRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBRTVGLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBMkV6QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsaUJBQWlCO0lBK0I1RCxZQUFtQixPQUFtQixFQUFTLEdBQXNCLEVBQVMsSUFBZ0IsRUFBUyxhQUE0QjtRQUNqSSxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBREgsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBMUI1SCxxQkFBZ0IsR0FBZ0IsSUFBSSxXQUFX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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0NUOzJGQStCVSx1QkFBdUI7a0JBekVuQyxTQUFTOytCQUNFLG1CQUFtQixZQUNuQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDVDtzTEFzQzJDLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFZCxVQUFVO3NCQUFyQyxTQUFTO3VCQUFDLGVBQWU7O0FBZ2Y1QixlQUFlLENBQUMsaUJBQWlCLEdBQUcsdUJBQXVCLENBQUM7QUFFNUQsc0ZBQXNGO0FBQ3RGLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO0FBQ3BELGVBQWUsQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLFVBQVUsR0FBRyxJQUFJO0lBQ3BELFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDN0IsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixFQUFFO1FBQ3pFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDakU7QUFDSCxDQUFDLENBQUM7QUFFRixPQUFPLEVBQUUsZUFBZSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxDb21wb25lbnQgfSBmcm9tICcuLi9NYXRlcmlhbENvbXBvbmVudCc7XHJcbmltcG9ydCBTZWxlY3RDb21wb25lbnQgZnJvbSAnZm9ybWlvanMvY29tcG9uZW50cy9zZWxlY3QvU2VsZWN0LmpzJztcclxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0ICogYXMgQ3J5cHRvSlMgZnJvbSAnY3J5cHRvLWpzJztcclxuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tICd1dGlsJztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtYXQtZm9ybWlvLWZvcm0tZmllbGQgW2luc3RhbmNlXT1cImluc3RhbmNlXCIgW2NvbXBvbmVudFRlbXBsYXRlXT1cImNvbXBvbmVudFRlbXBsYXRlXCI+PC9tYXQtZm9ybWlvLWZvcm0tZmllbGQ+XHJcbiAgICA8bmctdGVtcGxhdGUgI2NvbXBvbmVudFRlbXBsYXRlIGxldC1oYXNMYWJlbD5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmlsbD5cclxuXHJcbiAgICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cImhhc0xhYmVsXCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtbGFiZWw+XHJcblxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LnByZWZpeFwiIG1hdFByZWZpeD5cclxuICAgICAgICAgIHt7IGluc3RhbmNlLmNvbXBvbmVudC5wcmVmaXggfX0mbmJzcDtcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJpbnN0YW5jZS5jb21wb25lbnQubXVsdGlwbGVcIlxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImluc3RhbmNlLmNvbXBvbmVudC5wbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVPYmplY3RzXCJcclxuICAgICAgICAgICAgICAgICNwcm9kdWN0U2VsZWN0XHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uPlxyXG4gICAgICAgIDxuZ3gtbWF0LXNlbGVjdC1zZWFyY2ggW3NlYXJjaGluZ109XCJpbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnID8gc2VhcmNoaW5nIDogZmFsc2VcIiAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCIgcGxhY2Vob2xkZXJMYWJlbD1cIlR5cGUgdG8gc2VhcmNoXCIgW2Zvcm1Db250cm9sXT1cIndlYnNpdGVNdWx0aUZpbHRlckN0cmxcIj4gXHJcbiAgICAgICAgPG1hdC1pY29uIG5neE1hdFNlbGVjdFNlYXJjaENsZWFyIChjbGljayk9XCJjbGVhclByb2R1Y3RzKClcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9uZ3gtbWF0LXNlbGVjdC1zZWFyY2g+XHJcbiAgICAgIDwvbWF0LW9wdGlvbj5cclxuXHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zIHwgYXN5bmNcIiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCIgY2xhc3M9XCJ2aXJ0dWFsLWZ1bGwtdmlld1wiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJvcHRpb24ubGFiZWxcIj48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPiAgIFxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCIhZmlsdGVyZWRPcHRpb25zTGVuZ3RoXCIgZGlzYWJsZWQ+XHJcbiAgICAgICAgICAgIDxzcGFuPk5vdGhpbmcgd2FzIGZvdW5kPC9zcGFuPlxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuXHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpbnN0YW5jZS5jb21wb25lbnQuc3VmZml4XCIgbWF0U3VmZml4PlxyXG4gICAgICAgICAge3sgaW5zdGFuY2UuY29tcG9uZW50LnN1ZmZpeCB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0Vycm9yKClcIiA+e3sgZ2V0RXJyb3JNZXNzYWdlKCkgfX08L21hdC1lcnJvcj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgXHJcbiAgLmV4YW1wbGUtdmlld3BvcnQge1xyXG4gICAgaGVpZ2h0OiAyMDBweDtcclxuICB9XHJcbiAgXHJcbiAgLnByb2R1Y3QtcGlja2VyIHtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjsgLyogRGlzYWJsZSBob3Jpem9udGFsIHNjcm9sbGluZyAqL1xyXG4gIH1cclxuXHJcbiAgLnZpcnR1YWwtZnVsbC12aWV3IHtcclxuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNCAhaW1wb3J0YW50O1xyXG4gICAgdGV4dC1vdmVyZmxvdzogaW5pdGlhbCAhaW1wb3J0YW50O1xyXG4gICAgbWluLWhlaWdodDogNDhweCAhaW1wb3J0YW50O1xyXG4gICAgb3ZlcmZsb3c6IGluaXRpYWwgIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmctdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgOjpuZy1kZWVwIC5wcm9kdWN0LXBpY2tlciAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlciB7XHJcbiAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAudmlydHVhbC1mdWxsLXZpZXcgLm1hdC1wc2V1ZG8tY2hlY2tib3gge1xyXG4gICAgYWxpZ24tc2VsZjogdG9wICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgTWF0ZXJpYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgc2VsZWN0T3B0aW9uczogUHJvbWlzZTxhbnlbXT47XHJcbiAgZmlsdGVyZWRPcHRpb25zOiBQcm9taXNlPGFueVtdPjtcclxuICBmaWx0ZXJlZE9wdGlvbnNMZW5ndGg6IG51bWJlcjtcclxuICBzZWxlY3RPcHRpb25zUmVzb2x2ZTogYW55O1xyXG4gIHB1YmxpYyB3ZWJzaXRlTXVsdGlDdHJsOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIHB1YmxpYyB3ZWJzaXRlTXVsdGlGaWx0ZXJDdHJsOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIEBWaWV3Q2hpbGQoJ211bHRpU2VsZWN0JywgeyBzdGF0aWM6IHRydWUgfSkgbXVsdGlTZWxlY3Q6IE1hdFNlbGVjdDtcclxuICBwcm90ZWN0ZWQgX29uRGVzdHJveSA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgQFZpZXdDaGlsZCgncHJvZHVjdFNlbGVjdCcpIHNlbGVjdEVsZW06IE1hdFNlbGVjdDtcclxuICAvLyBWYXJpYWJsZXMgdG8gdHJhY2sgcGFnaW5hdGlvblxyXG4gIHBhZ2VOdW1iZXIgPSAxO1xyXG4gIHBhZ2VTaXplID0gMjA7XHJcbiAgdG90YWxQYWdlcyA9IDA7XHJcbiAgc2VhcmNoUXVlcnkgPSAnJztcclxuICBob2x5OiBhbnkgPSAnJztcclxuICBncmFpbDogYW55ID0gJyc7XHJcbiAgcHJvZHVjdHNsb2FkaW5nRmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzZWFyY2hpbmcgPSBmYWxzZTtcclxuICBwcm9kdWN0TGlzdDogYW55W10gPSBbXTtcclxuICBzZWxlY3RlZFZhbHVlOiBhbnkgPSAnJztcclxuICBzZWFyY2hJdGVtID0gXCJcIjtcclxuICAvLyBWYXJpYWJsZSB0byBob2xkIHRoZSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgcGFuZWwgZWxlbWVudFxyXG4gIHByaXZhdGUgY3VycmVudFBhbmVsRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcclxuICBvcGVuQ291bnRlcjogbnVtYmVyID0gMVxyXG4gIGZpcnN0RHJvcGRvd25JdGVtczogYW55ID0gW107XHJcbiAgc2Vjb25kRHJvcGRvd25JdGVtczogYW55ID0gW107XHJcbiAgc3RvcmVWYWx1ZTogYW55ID0gW11cclxuICBzdG9yZURlcGVuZGVudEl0ZW1zOiBhbnkgPSBbXTtcclxuICBleGVjdXRpb25GbGFnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBhcGlDb3VudGVyOiBudW1iZXIgPSAwO1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmLCBwdWJsaWMgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHVibGljIGh0dHA6IEh0dHBDbGllbnQsIHB1YmxpYyBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihlbGVtZW50LCByZWYpO1xyXG4gICAgdGhpcy5ob2x5ID0gQ3J5cHRvSlMuZW5jLkJhc2U2NC5wYXJzZSgnOEYvMitUMk5YcVVCUUVSUjEyUjRzdz09Jyk7XHJcbiAgICB0aGlzLmdyYWlsID0gQ3J5cHRvSlMuZW5jLkJhc2U2NC5wYXJzZSgneUUwQ2dRYll6SzV3cWVvS1RWemhPUT09Jyk7XHJcbiAgfVxyXG5cclxuICBvbklucHV0Q2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3ZlbmRvcnByb2R1Y3RpZCcgJiYgZXZlbnQudGFyZ2V0LnZhbHVlID09PSAnJykge1xyXG4gICAgICB0aGlzLm9uQ2xlYXJBbGwoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyUHJvZHVjdHMoKSB7XHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnKSB7XHJcbiAgICAgIHRoaXMub25DbGVhckFsbCgpO1xyXG4gICAgICB0aGlzLnNlYXJjaEl0ZW0gPSBcIlwiO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBzY3J1bWJsZShtc2cpIHtcclxuICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQobXNnKSkge1xyXG4gICAgICB2YXIgY29uY2VhbCA9IHRoaXMuZ2V0Y2FtcGFpZ24obXNnLCB0aGlzLmhvbHksIHRoaXMuZ3JhaWwpO1xyXG4gICAgICB2YXIgc2hhMjU2ID0gQ3J5cHRvSlMuSG1hY1NIQTI1NihDcnlwdG9KUy5lbmMuQmFzZTY0LnN0cmluZ2lmeSh0aGlzLmdyYWlsKSArIGNvbmNlYWwudG9TdHJpbmcoKSwgQ3J5cHRvSlMuZW5jLkJhc2U2NC5zdHJpbmdpZnkodGhpcy5ob2x5KSk7XHJcbiAgICAgIHZhciBoYXNoSW5CYXNlNjQgPSBDcnlwdG9KUy5lbmMuQmFzZTY0LnN0cmluZ2lmeShzaGEyNTYpO1xyXG4gICAgICBsZXQga2V5VmFsdWUgPSB7XHJcbiAgICAgICAgXCJ2YWx1ZVwiOiBjb25jZWFsLnRvU3RyaW5nKCksXHJcbiAgICAgICAgXCJtYWNcIjogaGFzaEluQmFzZTY0XHJcbiAgICAgIH07XHJcbiAgICAgIHZhciByZXN1bHQgPSBKU09OLnN0cmluZ2lmeShrZXlWYWx1ZSk7XHJcbiAgICAgIHZhciBqdW1ibGVkID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIENyeXB0b0pTLmVuYy5CYXNlNjQuc3RyaW5naWZ5KGp1bWJsZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Y2FtcGFpZ24oZGF0YTogYW55LCBob2x5OiBhbnksIGdyYWlsOiBhbnkpIHtcclxuICAgIHJldHVybiBDcnlwdG9KUy5BRVMuZW5jcnlwdChkYXRhLnRvU3RyaW5nKCksIGhvbHksXHJcbiAgICAgIHtcclxuICAgICAgICBibG9ja1NpemU6IDEyOCxcclxuICAgICAgICBpdjogZ3JhaWwsXHJcbiAgICAgICAgbW9kZTogQ3J5cHRvSlMubW9kZS5DQkMsXHJcbiAgICAgICAgcGFkZGluZzogQ3J5cHRvSlMucGFkLlBrY3M3XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIHJlZ2lzdGVyUGFuZWxTY3JvbGxFdmVudChzZWxlY3RFbGVtOiBNYXRTZWxlY3QpIHtcclxuICAgIGlmIChzZWxlY3RFbGVtICYmIHNlbGVjdEVsZW0/LnBhbmVsKSB7XHJcbiAgICAgIC8vIGNvbnN0IHBhbmVsRWxlbWVudCA9IHNlbGVjdEVsZW0ucGFuZWwubmF0aXZlRWxlbWVudDtcclxuICAgICAgdGhpcy5jdXJyZW50UGFuZWxFbGVtZW50ID0gc2VsZWN0RWxlbS5wYW5lbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYW5lbEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vblNjcm9sbC5iaW5kKHRoaXMpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2Nyb2xsKGV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnKSB7XHJcbiAgICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSBldmVudC50YXJnZXQ7XHJcbiAgICAgIGlmICghc2Nyb2xsRWxlbWVudCkgcmV0dXJuOyAvLyBFbnN1cmUgc2Nyb2xsRWxlbWVudCBpcyBub3QgdW5kZWZpbmVkXHJcbiAgICAgIGNvbnN0IHRyYWNrSGVpZ2h0ID0gc2Nyb2xsRWxlbWVudC5zY3JvbGxIZWlnaHQgLSBzY3JvbGxFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgICAgaWYgKGlzTmFOKHRyYWNrSGVpZ2h0KSB8fCB0cmFja0hlaWdodCA8PSAwKSByZXR1cm47IC8vIENoZWNrIGlmIHRyYWNrSGVpZ2h0IGlzIHZhbGlkXHJcbiAgICAgIGlmICh0aGlzLm9wZW5Db3VudGVyIDwgMikge1xyXG4gICAgICAgIGNvbnN0IHJldHJpZXZlZE9iamVjdCA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3N0b3JhZ2VPYmplY3QnKSk7XHJcbiAgICAgICAgdGhpcy50b3RhbFBhZ2VzID0gTnVtYmVyKHJldHJpZXZlZE9iamVjdD8udG90YWxQYWdlcyk7XHJcbiAgICAgICAgdGhpcy5wcm9kdWN0c2xvYWRpbmdGbGFnID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnByb2R1Y3RMaXN0ID0gcmV0cmlldmVkT2JqZWN0Py5kYXRhU291cmNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnByb2R1Y3RzbG9hZGluZ0ZsYWcgJiYgTWF0aC5mbG9vcihzY3JvbGxFbGVtZW50Py5zY3JvbGxUb3AgLyB0cmFja0hlaWdodCAqIDEwMCkgPiA1MCkge1xyXG4gICAgICAgIHRoaXMucHJvZHVjdHNsb2FkaW5nRmxhZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub3BlbkNvdW50ZXIgPSB0aGlzLm9wZW5Db3VudGVyICsgMTtcclxuICAgICAgICBpZiAodGhpcy5wYWdlTnVtYmVyIDwgdGhpcy50b3RhbFBhZ2VzKSB7XHJcbiAgICAgICAgICB0aGlzLnBhZ2VOdW1iZXIgPSB0aGlzLnBhZ2VOdW1iZXIgKyAxO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkRGF0YSh0aGlzLnBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUsIHRoaXMuc2VhcmNoUXVlcnkpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucHJvZHVjdHNsb2FkaW5nRmxhZyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGJ5IGtleSBmcm9tIHRoZSBhcnJheVxyXG4gIGdldFZhbHVlQnlLZXkoZGF0YSwga2V5KSB7XHJcbiAgICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIG51bGw7IC8vIFJldHVybiBudWxsIGlmIGRhdGEgaXMgZW1wdHkgb3IgdW5kZWZpbmVkXHJcbiAgICB9XHJcbiAgICBjb25zdCBpdGVtID0gZGF0YS5maW5kKGt2ID0+IGt2LmtleS50b0xvd2VyQ2FzZSgpID09PSBrZXkudG9Mb3dlckNhc2UoKSk7XHJcbiAgICByZXR1cm4gaXRlbSA/IGl0ZW0udmFsdWUgOiBudWxsO1xyXG4gIH1cclxuXHJcblxyXG4gIGxvYWREYXRhKHBhZ2VOdW1iZXIsIHBhZ2VTaXplLCBzZWFyY2hRdWVyeSkge1xyXG4gICAgY29uc3QgcGFyYW1zRGF0YSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Byb2R1Y3RQaWNrZXJQYXJhbXMnKSk7XHJcbiAgICBjb25zdCBpbmNsdWRlRGVzY3JpcHRpb24gPSB0aGlzLmdldFZhbHVlQnlLZXkocGFyYW1zRGF0YSwgJ2luY2x1ZGVEZXNjcmlwdGlvbicpO1xyXG4gICAgY29uc3QgdmVuZG9ySWQgPSB0aGlzLmdldFZhbHVlQnlLZXkocGFyYW1zRGF0YSwgJ3ZlbmRvcklkJyk7XHJcbiAgICBjb25zdCBvbmx5QWN0aXZlID0gdGhpcy5nZXRWYWx1ZUJ5S2V5KHBhcmFtc0RhdGEsICdvbmx5QWN0aXZlJyk7XHJcbiAgICB2YXIgY3VycmVudFVzZXIgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjdXJyZW50VXNlcicpKTtcclxuICAgIGxldCBoZWFkZXJzO1xyXG4gICAgaWYgKGN1cnJlbnRVc2VyICYmIGN1cnJlbnRVc2VyLlRva2VucyAmJiBjdXJyZW50VXNlci5Ub2tlbnMuQWNjZXNzVG9rZW4pIHtcclxuICAgICAgdmFyIGFjY2Vzc1Rva2VuID0gY3VycmVudFVzZXIuVG9rZW5zLkFjY2Vzc1Rva2VuO1xyXG4gICAgICBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAgICdBdXRob3JpemF0aW9uJzogJ0JlYXJlciAnICsgYWNjZXNzVG9rZW5cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdVc2VyIG5vdCBhdXRoZW50aWNhdGVkIG9yIHRva2VucyBtaXNzaW5nLicpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGVudmVuZG9ySWQgPSB0aGlzLnNjcnVtYmxlKHZlbmRvcklkKVxyXG4gICAgY29uc3QgZW5wYWdlTnVtYmVyID0gdGhpcy5zY3J1bWJsZShwYWdlTnVtYmVyKVxyXG4gICAgY29uc3QgZW5wYWdlU2l6ZSA9IHRoaXMuc2NydW1ibGUocGFnZVNpemUpO1xyXG4gICAgY29uc3QgZW5zZWFyY2hRdWVyeSA9IHRoaXMuc2NydW1ibGUoc2VhcmNoUXVlcnkpO1xyXG4gICAgbGV0IGVuYWN0aXZlID0gdGhpcy5zY3J1bWJsZShvbmx5QWN0aXZlKTtcclxuICAgIC8vQ2hlY2sgaWYgZW5hY3RpdmUgaXMgdW5kZWZpbmVkLCBudWxsLCBvciBibGFua1xyXG4gICAgaWYgKGVuYWN0aXZlID09PSB1bmRlZmluZWQgfHwgZW5hY3RpdmUgPT09IG51bGwgfHwgZW5hY3RpdmUgPT09ICcnKSB7XHJcbiAgICAgIGVuYWN0aXZlID0gdGhpcy5zY3J1bWJsZSh0cnVlKTsgLy8gU2V0IGRlZmF1bHQgdmFsdWUgdG8gdHJ1ZVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFNjcnVtYmxlIGFuZCBoYW5kbGUgdGhlIGluY2x1ZGVEZXNjcmlwdGlvbiBwYXJhbWV0ZXJcclxuICAgIGxldCBlbmRlc2NyaXB0aW9uID0gdGhpcy5zY3J1bWJsZShpbmNsdWRlRGVzY3JpcHRpb24pO1xyXG4gICAgaWYgKCFlbmRlc2NyaXB0aW9uKSB7XHJcbiAgICAgIGVuZGVzY3JpcHRpb24gPSB0aGlzLnNjcnVtYmxlKGZhbHNlKTsgIC8vIFNldCB0byAnZmFsc2UnIGlmIHVuZGVmaW5lZCwgbnVsbCwgb3IgYmxhbmtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBiYXNlVXJsTWFwcGluZyA9IHtcclxuICAgICAgJ2xvY2FsaG9zdCc6ICdodHRwOi8vbG9jYWxob3N0OjU4NTA0JyxcclxuICAgICAgJ2xpbmNvbG4udmFydG9waWEuY29tJzogJ2h0dHBzOi8vbGluY29sbi1hcGkudmFydG9waWEuY29tJyxcclxuICAgICAgJ3N0YWdlLnZhcnRvcGlhLmNvbSc6ICdodHRwczovL3N0YWdlLWFwaS52YXJ0b3BpYS5jb20nLFxyXG4gICAgICAnbXkudmFydG9waWEuY29tJzogJ2h0dHBzOi8vcmVhZ2FuLWFwaS52YXJ0b3BpYS5jb20nLFxyXG4gICAgICAnamFja3Nvbi52YXJ0b3BpYS5jb20nOiAnaHR0cHM6Ly9qYWNrc29uLWFwaS52YXJ0b3BpYS5jb20nXHJcbiAgICB9O1xyXG4gICAgLy8gR2V0IHRoZSBjdXJyZW50IGhvc3RuYW1lXHJcbiAgICBjb25zdCBob3N0bmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcclxuICAgIGNvbnN0IGJhc2VBcGlVcmwgPSBiYXNlVXJsTWFwcGluZ1tob3N0bmFtZV0gfHwgbnVsbDtcclxuICAgIGludGVyZmFjZSBWZW5kb3JQcm9kdWN0c1Jlc3BvbnNlIHtcclxuICAgICAgY29kZTogbnVtYmVyO1xyXG4gICAgICBkYXRhOiBhbnk7XHJcbiAgICAgIG1lc3NhZ2U6IHN0cmluZztcclxuICAgICAgc3RhdHVzQ29kZTogbnVtYmVyO1xyXG4gICAgfVxyXG4gICAgdGhpcy5odHRwLmdldDxWZW5kb3JQcm9kdWN0c1Jlc3BvbnNlPihgJHtiYXNlQXBpVXJsfS9hcGkvVmVuZG9yRm9ybUJ1aWxkZXIvR2V0VmVuZG9yUHJvZHVjdHM/dmVuZG9ySWQ9JHtlbnZlbmRvcklkfSZwYWdlTnVtYmVyPSR7ZW5wYWdlTnVtYmVyfSZwYWdlU2l6ZT0ke2VucGFnZVNpemV9JnNlYXJjaD0ke2Vuc2VhcmNoUXVlcnl9Jm9ubHlBY3RpdmU9JHtlbmFjdGl2ZX0maW5jbHVkZURlc2NyaXB0aW9uPSR7ZW5kZXNjcmlwdGlvbn1gLCB7IGhlYWRlcnMgfSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3ZlbmRvcnByb2R1Y3RpZCcpIHtcclxuICAgICAgICAgIHRoaXMudG90YWxQYWdlcyA9IHJlc3BvbnNlPy5kYXRhPy50b3RhbFBhZ2VzO1xyXG4gICAgICAgICAgY29uc3QgZGF0YSA9IHJlc3BvbnNlLmRhdGEuZGF0YVNvdXJjZTtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zTGVuZ3RoID0gZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgICBpZiAodGhpcy5wcm9kdWN0TGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGRhdGEubWFwKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiBpdGVtXHJcbiAgICAgICAgICAgIH0pLmZvckVhY2goaSA9PiB0aGlzLnByb2R1Y3RMaXN0LnB1c2goaSkpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RMaXN0ID0gZGF0YTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIFVwZGF0ZSBmaWx0ZXJlZE9wdGlvbnMgd2l0aCB0cmFuc2Zvcm1lZERhdGFcclxuICAgICAgICAgIHZhciBhbGxQcm9kdWN0TGlzdCA9IHRoaXMudHJhbnNmb3JtUmVzcG9uc2VEYXRhKHRoaXMucHJvZHVjdExpc3QpO1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBQcm9taXNlLnJlc29sdmUoYWxsUHJvZHVjdExpc3QpO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMucHJvZHVjdHNsb2FkaW5nRmxhZyA9IHRydWU7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZWxlID0gdGhpcy5zZWxlY3RFbGVtPy5wYW5lbD8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgICAgICAgaWYgKGVsZSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHRyYWNrSGVpZ2h0ID0gZWxlLnNjcm9sbEhlaWdodCAtIGVsZS5vZmZzZXRIZWlnaHRcclxuICAgICAgICAgICAgICBjb25zdCBtaWRkbGVQb3NpdGlvbiA9IHRyYWNrSGVpZ2h0IC8gMiAtIDUwO1xyXG4gICAgICAgICAgICAgIGVsZS5zY3JvbGxUbyh7IHRvcDogbWlkZGxlUG9zaXRpb24sIGJlaGF2aW9yOiAnYXV0bycgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1BhbmVsIGVsZW1lbnQgaXMgbm90IGF2YWlsYWJsZSB5ZXQuJyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB9LCAyNTApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gVXRpbGl0eSBmdW5jdGlvbiB0byB0cmFuc2Zvcm0gcmVzcG9uc2UgZGF0YVxyXG4gIHRyYW5zZm9ybVJlc3BvbnNlRGF0YShkYXRhOiBBcnJheTx7IHRleHQ6IGFueSwgdmFsdWU6IGFueSwgZGF0ZTogYW55IH0+IHwgbnVsbCB8IHVuZGVmaW5lZCk6IEFycmF5PHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IG51bWJlciwgZGF0ZTogc3RyaW5nIH0+IHtcclxuICAgIC8vIENoZWNrIGlmIGRhdGEgaXMgbm90IG51bGwsIHVuZGVmaW5lZCwgYW5kIGlzIGFuIGFycmF5IHdpdGggZWxlbWVudHNcclxuICAgIGlmIChkYXRhICYmIEFycmF5LmlzQXJyYXkoZGF0YSkgJiYgZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiBkYXRhLm1hcChpdGVtID0+ICh7XHJcbiAgICAgICAgbGFiZWw6IGl0ZW0udGV4dCxcclxuICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcclxuICAgICAgICBkYXRlOiBpdGVtLmRhdGVcclxuICAgICAgfSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gUmV0dXJuIGFuIGVtcHR5IGFycmF5IGlmIGRhdGEgaXMgbnVsbCwgdW5kZWZpbmVkLCBvciBlbXB0eVxyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGZpbHRlcldlYnNpdGVNdWx0aSgpIHtcclxuICAgIGlmICghdGhpcy5zZWxlY3RPcHRpb25zKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBzZWFyY2ggPSB0aGlzLndlYnNpdGVNdWx0aUZpbHRlckN0cmwudmFsdWU7XHJcbiAgICBzZWFyY2ggPSBzZWFyY2gudG9Mb3dlckNhc2UoKTtcclxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5zZWxlY3RPcHRpb25zLnRoZW4oKG9wdGlvbnMpID0+IHtcclxuICAgICAgY29uc3QgZmlsdGVyZWQgPSBvcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24ubGFiZWwucmVwbGFjZSgvPFxcLz9zcGFuW14+XSo+L2csIFwiXCIpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2gpICE9PSAtMSk7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zTGVuZ3RoID0gZmlsdGVyZWQubGVuZ3RoO1xyXG4gICAgICByZXR1cm4gZmlsdGVyZWQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX29uRGVzdHJveS5uZXh0KCcnKTtcclxuICAgIHRoaXMuX29uRGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFBhbmVsRWxlbWVudCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYW5lbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vblNjcm9sbC5iaW5kKHRoaXMpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKkVuZCovXHJcbiAgc2V0SW5zdGFuY2UoaW5zdGFuY2U6IGFueSkge1xyXG4gICAgc3VwZXIuc2V0SW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gICAgdGhpcy5pbnN0YW5jZS50cmlnZ2VyVXBkYXRlKCk7XHJcbiAgfVxyXG5cclxuICBvbkNsZWFyQWxsKCkge1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAndmVuZG9ycHJvZHVjdGlkJykge1xyXG4gICAgICB0aGlzLnBhZ2VOdW1iZXIgPSAxO1xyXG4gICAgICB0aGlzLnBhZ2VTaXplID0gMjA7XHJcbiAgICAgIHRoaXMuc2VhcmNoUXVlcnkgPSAnJztcclxuICAgICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5wcm9kdWN0TGlzdCA9IFtdO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSAnJztcclxuICAgICAgdGhpcy5sb2FkRGF0YSh0aGlzLnBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUsIHRoaXMuc2VhcmNoUXVlcnkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlU2Vjb25kRHJvcGRvd24odmFsdWU6IGFueSkge1xyXG4gICAgY29uc3QgcGFyYW1zRGF0YSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2Nhc2NhZGluZ0Ryb3Bkb3duc1BhcmFtc29uZScpKTtcclxuICAgIGNvbnN0IHZlbmRvcklkID0gdGhpcy5nZXRWYWx1ZUJ5S2V5KHBhcmFtc0RhdGEsICd2ZW5kb3JJZCcpO1xyXG4gICAgY29uc3QgZGVhbElkID0gdGhpcy5nZXRWYWx1ZUJ5S2V5KHBhcmFtc0RhdGEsICdkZWFsSWQnKTtcclxuICAgIGNvbnN0IGlzRWRpdCA9IHRoaXMuZ2V0VmFsdWVCeUtleShwYXJhbXNEYXRhLCAnaXNFZGl0Jyk7XHJcbiAgICBsZXQgZmluYWxQYXJhbXM7XHJcbiAgICB0aGlzLmluc3RhbmNlPy5wYXJlbnQ/LmNvbXBvbmVudHM/Lmxlbmd0aCAmJiB0aGlzLmluc3RhbmNlLnBhcmVudC5jb21wb25lbnRzLmZvckVhY2goaXRlbXMgPT4ge1xyXG4gICAgICBpZiAodGhpcy5jaGVja1ZlbmRvclJlZkl0ZW1zKGl0ZW1zKSkge1xyXG4gICAgICAgIGNvbnN0IGFwaUVuZFBvaW50ID0gaXRlbXM/LmNvbXBvbmVudD8uc2VsZWN0VmFsdWVzO1xyXG4gICAgICAgIGlmIChhcGlFbmRQb2ludCAhPSAnJykge1xyXG4gICAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcImtleVwiOiBcInVzZXJJZFwiLFxyXG4gICAgICAgICAgICAgIFwidmFsdWVcIjogSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3VycmVudFVzZXInKSkuVXNlcklkXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcImtleVwiOiBcInZlbmRvcklkXCIsXHJcbiAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB2ZW5kb3JJZFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJrZXlcIjogXCJsb2dpblVzZXJJZFwiLFxyXG4gICAgICAgICAgICAgIFwidmFsdWVcIjogSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3VycmVudFVzZXInKSkuVXNlcklkXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcImtleVwiOiBcImNvdW50cnlcIixcclxuICAgICAgICAgICAgICBcInZhbHVlXCI6IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZS50cmltKCkgOiAnJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJrZXlcIjogXCJkYXRhVmFsdWVcIixcclxuICAgICAgICAgICAgICBcInZhbHVlXCI6IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZS50cmltKCkgOiAnJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJrZXlcIjogXCJkZWFsSWRcIixcclxuICAgICAgICAgICAgICBcInZhbHVlXCI6IGRlYWxJZFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJrZXlcIjogXCJpc0VkaXRcIixcclxuICAgICAgICAgICAgICBcInZhbHVlXCI6IGlzRWRpdFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJrZXlcIjogXCJyZWZlcmVuY2VMaXN0TmFtZVwiLFxyXG4gICAgICAgICAgICAgIFwidmFsdWVcIjogaXRlbXM/LmNvbXBvbmVudD8ua2V5XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcImtleVwiOiBcInJlZmVyZW5jZUxpc3RGaWVsZE5hbWVcIixcclxuICAgICAgICAgICAgICBcInZhbHVlXCI6IHRoaXMuaW5zdGFuY2U/LmNvbXBvbmVudD8ua2V5XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIF1cclxuICAgICAgICAgIGZpbmFsUGFyYW1zID0gcGFyYW1ldGVycz8uZmlsdGVyKGYxID0+IGl0ZW1zPy5jb21wb25lbnQ/LmRhdGE/LmhlYWRlcnMuc29tZShmMiA9PiBmMS5rZXkgPT09IGYyLmtleSkpO1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmluYWxQYXJhbXMpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gZmluYWxQYXJhbXMuZmluZEluZGV4KHBhcmFtID0+IHBhcmFtLmtleSA9PT0gJ2RhdGFWYWx1ZScpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgLy8gSWYgdGhlIG9iamVjdCBleGlzdHMsIHVwZGF0ZSBpdHMgdmFsdWVcclxuICAgICAgICAgICAgICBmaW5hbFBhcmFtc1tpbmRleF0udmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAvLyBJZiB0aGUgb2JqZWN0IGRvZXNuJ3QgZXhpc3QsIGFkZCBpdCB0byB0aGUgYXJyYXlcclxuICAgICAgICAgICAgICBmaW5hbFBhcmFtcy5wdXNoKHsga2V5OiAnZGF0YVZhbHVlJywgdmFsdWU6IHZhbHVlIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZS5pbml0aWFsaXplQXBpUGF0aChhcGlFbmRQb2ludCwgZmluYWxQYXJhbXMpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWNvbmREcm9wZG93bkl0ZW1zID0gcmVzcG9uc2UuZGF0YTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZS5zZXREcm9wZG93bkl0ZW1zKHRoaXMuc2Vjb25kRHJvcGRvd25JdGVtcyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zZWxlY3RFbGVtLm9wZW5lZENoYW5nZS5zdWJzY3JpYmUoYXN5bmMgKGlzT3BlbjogYm9vbGVhbikgPT4ge1xyXG4gICAgICBsZXQgaSA9IDBcclxuICAgICAgaWYgKGlzT3Blbikge1xyXG4gICAgICAgIGNvbnN0IG5ld1Byb2R1Y3RQaWNrZXJGbGFnID0gdGhpcy5pbnN0YW5jZT8uY29tcG9uZW50Py5hdHRyaWJ1dGVzO1xyXG4gICAgICAgIGxldCBjaGVja0ludm9rZUZyb21MaWJyYXJ5ID0gdGhpcy5jb21tb25TZXJ2aWNlLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKG5ld1Byb2R1Y3RQaWNrZXJGbGFnLCBcImludm9rZUZyb21MaWJyYXJ5XCIpXHJcbiAgICAgICAgY29uc3QgZmlyc3RMZXZlbCA9ICh0aGlzLmdldFZlbmRvclJlZkxpc3QodGhpcy5pbnN0YW5jZSkgJiYgY2hlY2tJbnZva2VGcm9tTGlicmFyeSk7XHJcbiAgICAgICAgaWYgKGZpcnN0TGV2ZWwpIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0RWxlbS52YWx1ZUNoYW5nZS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlLnNldERyb3BEb3duRmxhZyh0cnVlKTtcclxuICAgICAgICAgICAgaWYgKGkgPT09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNlY29uZERyb3Bkb3duKHJlcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaSsrXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG5cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tWZW5kb3JSZWZJdGVtcyh0aGlzLmluc3RhbmNlKSAmJiBjaGVja0ludm9rZUZyb21MaWJyYXJ5KSB7XHJcbiAgICAgICAgICB0aGlzLnN0b3JlRGVwZW5kZW50SXRlbXMgPSBbXTtcclxuICAgICAgICAgIHRoaXMuc2Vjb25kRHJvcGRvd25JdGVtcyA9IHRoaXMuY29tbW9uU2VydmljZS5nZXREcm9wZG93bkl0ZW1zKCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5zZWNvbmREcm9wZG93bkl0ZW1zPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWNvbmREcm9wZG93bkl0ZW1zLmZvckVhY2goKHJlbmRlckVsZW1lbnQsIGluZGV4LCBhcnJheSkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuc3RvcmVEZXBlbmRlbnRJdGVtcy5wdXNoKHsgbGFiZWw6IHJlbmRlckVsZW1lbnRbJ3RleHQnXSwgdmFsdWU6IHRoaXMuY29tbW9uU2VydmljZS5vbmx5TnVtYmVycyhyZW5kZXJFbGVtZW50Wyd2YWx1ZSddKSA/IHJlbmRlckVsZW1lbnRbJ3ZhbHVlJ10gKyAnICcgOiByZW5kZXJFbGVtZW50Wyd2YWx1ZSddIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICghdGhpcy5jb21tb25TZXJ2aWNlLmdldERyb3BEb3duRmxhZygpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVEZXBlbmRlbnRJdGVtcyA9IHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmRhdGEudmFsdWVzO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBQcm9taXNlLnJlc29sdmUodGhpcy5zdG9yZURlcGVuZGVudEl0ZW1zKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0T3B0aW9ucyA9IFByb21pc2UucmVzb2x2ZSh0aGlzLnN0b3JlRGVwZW5kZW50SXRlbXMpO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RPcHRpb25zLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnNMZW5ndGggPSByZXN1bHQubGVuZ3RoXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3ZlbmRvcnByb2R1Y3RpZCcpIHtcclxuICAgICAgdGhpcy5zZWxlY3RFbGVtLm9wZW5lZENoYW5nZS5zdWJzY3JpYmUoKGlzT3BlbjogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChpc09wZW4pIHtcclxuICAgICAgICAgIHRoaXMucGFnZU51bWJlciA9IDE7XHJcbiAgICAgICAgICB0aGlzLnBhZ2VTaXplID0gMjA7XHJcbiAgICAgICAgICBpZiAodGhpcy5zZWFyY2hRdWVyeT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zZWFyY2hJdGVtPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy53ZWJzaXRlTXVsdGlGaWx0ZXJDdHJsLnNldFZhbHVlKHRoaXMuc2VhcmNoSXRlbSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyB0aGlzLnNlYXJjaFF1ZXJ5ID0gJyc7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgLy90aGlzLmxvYWREYXRhKHRoaXMucGFnZU51bWJlciwgdGhpcy5wYWdlU2l6ZSwgdGhpcy5zZWFyY2hRdWVyeSk7XHJcbiAgICAgICAgICB0aGlzLnJlZ2lzdGVyUGFuZWxTY3JvbGxFdmVudCh0aGlzLnNlbGVjdEVsZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVBhbmVsU2Nyb2xsRXZlbnQoKTtcclxuICAgICAgICAgIHRoaXMuc2VhcmNoaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAvLyB0aGlzLnNlbGVjdGVkVmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XHJcbiAgICAgICAgICAvLyBpZiAodGhpcy5zZWxlY3RlZFZhbHVlPy50b1N0cmluZygpLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAvLyAgIHRoaXMucHJvZHVjdExpc3QgPSBbXTtcclxuICAgICAgICAgIC8vICAgdGhpcy5wYWdlTnVtYmVyID0gMTtcclxuICAgICAgICAgIC8vICAgdGhpcy5wYWdlU2l6ZSA9IDIwO1xyXG4gICAgICAgICAgLy8gICB0aGlzLnNlYXJjaFF1ZXJ5ID0gJyc7XHJcbiAgICAgICAgICAvLyAgIHRoaXMubG9hZERhdGEodGhpcy5wYWdlTnVtYmVyLCB0aGlzLnBhZ2VTaXplLCB0aGlzLnNlYXJjaFF1ZXJ5KTtcclxuICAgICAgICAgIC8vIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlUGFuZWxTY3JvbGxFdmVudCgpIHtcclxuICAgIC8vIFJlbW92ZSB0aGUgc2Nyb2xsIGV2ZW50IGxpc3RlbmVyXHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGFuZWxFbGVtZW50KSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhbmVsRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uU2Nyb2xsLmJpbmQodGhpcykpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYW5lbEVsZW1lbnQgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8qbmV3IGxvZ2ljICovXHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnKSB7XHJcbiAgICAgIHRoaXMud2Vic2l0ZU11bHRpRmlsdGVyQ3RybC52YWx1ZUNoYW5nZXNcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIGRlYm91bmNlVGltZSgxMDAwKSwgLy8gVGltZSBpbiBtaWxsaXNlY29uZHMgYmV0d2VlbiBrZXkgZXZlbnRzXHJcbiAgICAgICAgICAvLyAgdGFwKCgpID0+IHRoaXMuc2VhcmNoaW5nID0gdHJ1ZSksXHJcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoc2VhcmNoUXVlcnkpID0+IHtcclxuICAgICAgICAgIGlmIChzZWFyY2hRdWVyeSAhPSAnJykge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5wYWdlTnVtYmVyID0gMTtcclxuICAgICAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IDIwO1xyXG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RMaXN0ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hRdWVyeSA9IHNlYXJjaFF1ZXJ5O1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaEl0ZW0gPSBzZWFyY2hRdWVyeVxyXG4gICAgICAgICAgICB0aGlzLmxvYWREYXRhKHRoaXMucGFnZU51bWJlciwgdGhpcy5wYWdlU2l6ZSwgc2VhcmNoUXVlcnkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy53ZWJzaXRlTXVsdGlGaWx0ZXJDdHJsLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZpbHRlcldlYnNpdGVNdWx0aSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLypFbmQgKi9cclxuICAgIHRoaXMuc2VsZWN0T3B0aW9ucyA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIHRoaXMuc2VsZWN0T3B0aW9uc1Jlc29sdmUgPSByZXNvbHZlO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlbGVjdE9wdGlvbnMudGhlbigob3B0aW9ucykgPT4ge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9uc0xlbmd0aCA9IG9wdGlvbnMubGVuZ3RoO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLnNlbGVjdE9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdGlvbkNoYW5nZShldmVudDogYW55LCBzdWJtaXREYXRhOiBhbnksIGF0dHJpYnV0ZXM6IGFueSkge1xyXG5cclxuICB9XHJcblxyXG4gIGNoZWNrVmVuZG9yUmVmSXRlbXMoaW5zdGFuY2UpIHtcclxuICAgIGNvbnN0IHNlbGVjdFZhbHVlcyA9IGluc3RhbmNlLmNvbXBvbmVudFsnc2VsZWN0VmFsdWVzJ107XHJcbiAgICBjb25zdCBkYXRhVXJsID0gaW5zdGFuY2UuY29tcG9uZW50WydkYXRhJ10/LnVybDtcclxuICAgIGNvbnN0IGlzU2VsZWN0VmFsdWVzVmFsaWQgPSBzZWxlY3RWYWx1ZXMgIT0gbnVsbCAmJiBzZWxlY3RWYWx1ZXMgIT09ICcnICYmIHNlbGVjdFZhbHVlcyAhPT0gdW5kZWZpbmVkO1xyXG4gICAgY29uc3QgaXNEYXRhVXJsSW52YWxpZCA9IGRhdGFVcmwgPT0gbnVsbCB8fCBkYXRhVXJsID09PSAnJyB8fCBkYXRhVXJsID09PSB1bmRlZmluZWQ7XHJcbiAgICByZXR1cm4gaXNTZWxlY3RWYWx1ZXNWYWxpZCAmJiBpc0RhdGFVcmxJbnZhbGlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmVuZG9yUmVmTGlzdChpbnN0YW5jZSkge1xyXG4gICAgY29uc3QgZGF0YVVybCA9IGluc3RhbmNlLmNvbXBvbmVudFsnZGF0YSddPy51cmw7XHJcbiAgICBjb25zdCBpc1NlbGVjdFZhbHVlc1ZhbGlkID0gZGF0YVVybCAhPSBudWxsICYmIGRhdGFVcmwgIT09ICcnICYmIGRhdGFVcmwgIT09IHVuZGVmaW5lZDtcclxuICAgIHJldHVybiBpc1NlbGVjdFZhbHVlc1ZhbGlkO1xyXG4gIH1cclxuXHJcbiAgaXNFcnJvcigpIHtcclxuICAgIGlmICh0aGlzLmluc3RhbmNlLmVycm9yKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbC5zZXRFcnJvcnModGhpcy5pbnN0YW5jZS5jb21wb25lbnQudmFsaWRhdGUpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRFcnJvck1lc3NhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZS5lcnJvciAmJiB0aGlzLmluc3RhbmNlLmVycm9yLm1lc3NhZ2VzKSB7XHJcbiAgICAgIGNvbnN0IHsgbWVzc2FnZXMgfSA9IHRoaXMuaW5zdGFuY2UuZXJyb3I7XHJcbiAgICAgIGlmIChtZXNzYWdlcy5sZW5ndGgpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IG1zZyBvZiBtZXNzYWdlcykge1xyXG4gICAgICAgICAgaWYgKG1zZy5jb250ZXh0KSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmluc3RhbmNlICYmIHRoaXMuaW5zdGFuY2UucGFyZW50ICYmIHRoaXMuaW5zdGFuY2UucGFyZW50Ll9kYXRhKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UucGFyZW50Ll9kYXRhLnN1Ym1pdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb250cm9sLm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5zdGFuY2UuZXJyb3IgPyB0aGlzLmluc3RhbmNlLmVycm9yLm1lc3NhZ2UgOiAnJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbXBhcmVPYmplY3RzKG8xOiBhbnksIG8yOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBfLmlzRXF1YWwobzEsIG8yKTtcclxuICB9XHJcbn1cclxuU2VsZWN0Q29tcG9uZW50Lk1hdGVyaWFsQ29tcG9uZW50ID0gTWF0ZXJpYWxTZWxlY3RDb21wb25lbnQ7XHJcblxyXG4vLyBNYWtlIHN1cmUgd2UgZGV0ZWN0IGNoYW5nZXMgd2hlbiBuZXcgaXRlbXMgbWFrZSB0aGVpciB3YXkgaW50byB0aGUgc2VsZWN0IGRyb3Bkb3duLlxyXG5jb25zdCBzZXRJdGVtcyA9IFNlbGVjdENvbXBvbmVudC5wcm90b3R5cGUuc2V0SXRlbXM7XHJcblNlbGVjdENvbXBvbmVudC5wcm90b3R5cGUuc2V0SXRlbXMgPSBmdW5jdGlvbiAoLi4uYXJncykge1xyXG4gIHNldEl0ZW1zLmNhbGwodGhpcywgLi4uYXJncyk7XHJcbiAgaWYgKHRoaXMubWF0ZXJpYWxDb21wb25lbnQgJiYgdGhpcy5tYXRlcmlhbENvbXBvbmVudC5zZWxlY3RPcHRpb25zUmVzb2x2ZSkge1xyXG4gICAgdGhpcy5tYXRlcmlhbENvbXBvbmVudC5zZWxlY3RPcHRpb25zUmVzb2x2ZSh0aGlzLnNlbGVjdE9wdGlvbnMpO1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCB7IFNlbGVjdENvbXBvbmVudCB9OyJdfQ==
535
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUE0QyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakksT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxlQUFlLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFVLFNBQVMsRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBRTVGLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBMkV6QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsaUJBQWlCO0lBK0I1RCxZQUFtQixPQUFtQixFQUFTLEdBQXNCLEVBQVMsSUFBZ0IsRUFBUyxhQUE0QjtRQUNqSSxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBREgsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBMUI1SCxxQkFBZ0IsR0FBZ0IsSUFBSSxXQUFX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QUUsZUFBZSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxDb21wb25lbnQgfSBmcm9tICcuLi9NYXRlcmlhbENvbXBvbmVudCc7XHJcbmltcG9ydCBTZWxlY3RDb21wb25lbnQgZnJvbSAnZm9ybWlvanMvY29tcG9uZW50cy9zZWxlY3QvU2VsZWN0LmpzJztcclxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0ICogYXMgQ3J5cHRvSlMgZnJvbSAnY3J5cHRvLWpzJztcclxuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tICd1dGlsJztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtYXQtZm9ybWlvLWZvcm0tZmllbGQgW2luc3RhbmNlXT1cImluc3RhbmNlXCIgW2NvbXBvbmVudFRlbXBsYXRlXT1cImNvbXBvbmVudFRlbXBsYXRlXCI+PC9tYXQtZm9ybWlvLWZvcm0tZmllbGQ+XHJcbiAgICA8bmctdGVtcGxhdGUgI2NvbXBvbmVudFRlbXBsYXRlIGxldC1oYXNMYWJlbD5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmlsbD5cclxuXHJcbiAgICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cImhhc0xhYmVsXCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtbGFiZWw+XHJcblxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LnByZWZpeFwiIG1hdFByZWZpeD5cclxuICAgICAgICAgIHt7IGluc3RhbmNlLmNvbXBvbmVudC5wcmVmaXggfX0mbmJzcDtcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJpbnN0YW5jZS5jb21wb25lbnQubXVsdGlwbGVcIlxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImluc3RhbmNlLmNvbXBvbmVudC5wbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVPYmplY3RzXCJcclxuICAgICAgICAgICAgICAgICNwcm9kdWN0U2VsZWN0XHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uPlxyXG4gICAgICAgIDxuZ3gtbWF0LXNlbGVjdC1zZWFyY2ggW3NlYXJjaGluZ109XCJpbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnID8gc2VhcmNoaW5nIDogZmFsc2VcIiAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCIgcGxhY2Vob2xkZXJMYWJlbD1cIlR5cGUgdG8gc2VhcmNoXCIgW2Zvcm1Db250cm9sXT1cIndlYnNpdGVNdWx0aUZpbHRlckN0cmxcIj4gXHJcbiAgICAgICAgPG1hdC1pY29uIG5neE1hdFNlbGVjdFNlYXJjaENsZWFyIChjbGljayk9XCJjbGVhclByb2R1Y3RzKClcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9uZ3gtbWF0LXNlbGVjdC1zZWFyY2g+XHJcbiAgICAgIDwvbWF0LW9wdGlvbj5cclxuXHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zIHwgYXN5bmNcIiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCIgY2xhc3M9XCJ2aXJ0dWFsLWZ1bGwtdmlld1wiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJvcHRpb24ubGFiZWxcIj48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPiAgIFxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCIhZmlsdGVyZWRPcHRpb25zTGVuZ3RoXCIgZGlzYWJsZWQ+XHJcbiAgICAgICAgICAgIDxzcGFuPk5vdGhpbmcgd2FzIGZvdW5kPC9zcGFuPlxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuXHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpbnN0YW5jZS5jb21wb25lbnQuc3VmZml4XCIgbWF0U3VmZml4PlxyXG4gICAgICAgICAge3sgaW5zdGFuY2UuY29tcG9uZW50LnN1ZmZpeCB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0Vycm9yKClcIiA+e3sgZ2V0RXJyb3JNZXNzYWdlKCkgfX08L21hdC1lcnJvcj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgXHJcbiAgLmV4YW1wbGUtdmlld3BvcnQge1xyXG4gICAgaGVpZ2h0OiAyMDBweDtcclxuICB9XHJcbiAgXHJcbiAgLnByb2R1Y3QtcGlja2VyIHtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjsgLyogRGlzYWJsZSBob3Jpem9udGFsIHNjcm9sbGluZyAqL1xyXG4gIH1cclxuXHJcbiAgLnZpcnR1YWwtZnVsbC12aWV3IHtcclxuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNCAhaW1wb3J0YW50O1xyXG4gICAgdGV4dC1vdmVyZmxvdzogaW5pdGlhbCAhaW1wb3J0YW50O1xyXG4gICAgbWluLWhlaWdodDogNDhweCAhaW1wb3J0YW50O1xyXG4gICAgb3ZlcmZsb3c6IGluaXRpYWwgIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmctdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgOjpuZy1kZWVwIC5wcm9kdWN0LXBpY2tlciAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlciB7XHJcbiAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAudmlydHVhbC1mdWxsLXZpZXcgLm1hdC1wc2V1ZG8tY2hlY2tib3gge1xyXG4gICAgYWxpZ24tc2VsZjogdG9wICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgTWF0ZXJpYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgc2VsZWN0T3B0aW9uczogUHJvbWlzZTxhbnlbXT47XHJcbiAgZmlsdGVyZWRPcHRpb25zOiBQcm9taXNlPGFueVtdPjtcclxuICBmaWx0ZXJlZE9wdGlvbnNMZW5ndGg6IG51bWJlcjtcclxuICBzZWxlY3RPcHRpb25zUmVzb2x2ZTogYW55O1xyXG4gIHB1YmxpYyB3ZWJzaXRlTXVsdGlDdHJsOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIHB1YmxpYyB3ZWJzaXRlTXVsdGlGaWx0ZXJDdHJsOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIEBWaWV3Q2hpbGQoJ211bHRpU2VsZWN0JywgeyBzdGF0aWM6IHRydWUgfSkgbXVsdGlTZWxlY3Q6IE1hdFNlbGVjdDtcclxuICBwcm90ZWN0ZWQgX29uRGVzdHJveSA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgQFZpZXdDaGlsZCgncHJvZHVjdFNlbGVjdCcpIHNlbGVjdEVsZW06IE1hdFNlbGVjdDtcclxuICAvLyBWYXJpYWJsZXMgdG8gdHJhY2sgcGFnaW5hdGlvblxyXG4gIHBhZ2VOdW1iZXIgPSAxO1xyXG4gIHBhZ2VTaXplID0gMjA7XHJcbiAgdG90YWxQYWdlcyA9IDA7XHJcbiAgc2VhcmNoUXVlcnkgPSAnJztcclxuICBob2x5OiBhbnkgPSAnJztcclxuICBncmFpbDogYW55ID0gJyc7XHJcbiAgcHJvZHVjdHNsb2FkaW5nRmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzZWFyY2hpbmcgPSBmYWxzZTtcclxuICBwcm9kdWN0TGlzdDogYW55W10gPSBbXTtcclxuICBzZWxlY3RlZFZhbHVlOiBhbnkgPSAnJztcclxuICBzZWFyY2hJdGVtID1cIlwiO1xyXG4gIC8vIFZhcmlhYmxlIHRvIGhvbGQgdGhlIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBwYW5lbCBlbGVtZW50XHJcbiAgcHJpdmF0ZSBjdXJyZW50UGFuZWxFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xyXG4gIG9wZW5Db3VudGVyOiBudW1iZXIgPSAxXHJcbiAgZmlyc3REcm9wZG93bkl0ZW1zOiBhbnkgPSBbXTtcclxuICBzZWNvbmREcm9wZG93bkl0ZW1zOiBhbnkgPSBbXTtcclxuICBzdG9yZVZhbHVlOiBhbnkgPSBbXVxyXG4gIHN0b3JlRGVwZW5kZW50SXRlbXM6IGFueSA9IFtdO1xyXG4gIGV4ZWN1dGlvbkZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIGFwaUNvdW50ZXI6IG51bWJlciA9IDA7XHJcbiAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHB1YmxpYyByZWY6IENoYW5nZURldGVjdG9yUmVmLCBwdWJsaWMgaHR0cDogSHR0cENsaWVudCwgcHVibGljIGNvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGVsZW1lbnQsIHJlZik7XHJcbiAgICB0aGlzLmhvbHkgPSBDcnlwdG9KUy5lbmMuQmFzZTY0LnBhcnNlKCc4Ri8yK1QyTlhxVUJRRVJSMTJSNHN3PT0nKTtcclxuICAgIHRoaXMuZ3JhaWwgPSBDcnlwdG9KUy5lbmMuQmFzZTY0LnBhcnNlKCd5RTBDZ1FiWXpLNXdxZW9LVFZ6aE9RPT0nKTtcclxuICB9XHJcblxyXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAndmVuZG9ycHJvZHVjdGlkJyAmJiBldmVudC50YXJnZXQudmFsdWUgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMub25DbGVhckFsbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJQcm9kdWN0cygpIHtcclxuICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3ZlbmRvcnByb2R1Y3RpZCcpIHtcclxuICAgICAgdGhpcy5vbkNsZWFyQWxsKCk7XHJcbiAgICAgIHRoaXMuc2VhcmNoSXRlbT1cIlwiO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBzY3J1bWJsZShtc2cpIHtcclxuICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQobXNnKSkge1xyXG4gICAgICB2YXIgY29uY2VhbCA9IHRoaXMuZ2V0Y2FtcGFpZ24obXNnLCB0aGlzLmhvbHksIHRoaXMuZ3JhaWwpO1xyXG4gICAgICB2YXIgc2hhMjU2ID0gQ3J5cHRvSlMuSG1hY1NIQTI1NihDcnlwdG9KUy5lbmMuQmFzZTY0LnN0cmluZ2lmeSh0aGlzLmdyYWlsKSArIGNvbmNlYWwudG9TdHJpbmcoKSwgQ3J5cHRvSlMuZW5jLkJhc2U2NC5zdHJpbmdpZnkodGhpcy5ob2x5KSk7XHJcbiAgICAgIHZhciBoYXNoSW5CYXNlNjQgPSBDcnlwdG9KUy5lbmMuQmFzZTY0LnN0cmluZ2lmeShzaGEyNTYpO1xyXG4gICAgICBsZXQga2V5VmFsdWUgPSB7XHJcbiAgICAgICAgXCJ2YWx1ZVwiOiBjb25jZWFsLnRvU3RyaW5nKCksXHJcbiAgICAgICAgXCJtYWNcIjogaGFzaEluQmFzZTY0XHJcbiAgICAgIH07XHJcbiAgICAgIHZhciByZXN1bHQgPSBKU09OLnN0cmluZ2lmeShrZXlWYWx1ZSk7XHJcbiAgICAgIHZhciBqdW1ibGVkID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIENyeXB0b0pTLmVuYy5CYXNlNjQuc3RyaW5naWZ5KGp1bWJsZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Y2FtcGFpZ24oZGF0YTogYW55LCBob2x5OiBhbnksIGdyYWlsOiBhbnkpIHtcclxuICAgIHJldHVybiBDcnlwdG9KUy5BRVMuZW5jcnlwdChkYXRhLnRvU3RyaW5nKCksIGhvbHksXHJcbiAgICAgIHtcclxuICAgICAgICBibG9ja1NpemU6IDEyOCxcclxuICAgICAgICBpdjogZ3JhaWwsXHJcbiAgICAgICAgbW9kZTogQ3J5cHRvSlMubW9kZS5DQkMsXHJcbiAgICAgICAgcGFkZGluZzogQ3J5cHRvSlMucGFkLlBrY3M3XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIHJlZ2lzdGVyUGFuZWxTY3JvbGxFdmVudChzZWxlY3RFbGVtOiBNYXRTZWxlY3QpIHtcclxuICAgIGlmIChzZWxlY3RFbGVtICYmIHNlbGVjdEVsZW0/LnBhbmVsKSB7XHJcbiAgICAgIC8vIGNvbnN0IHBhbmVsRWxlbWVudCA9IHNlbGVjdEVsZW0ucGFuZWwubmF0aXZlRWxlbWVudDtcclxuICAgICAgdGhpcy5jdXJyZW50UGFuZWxFbGVtZW50ID0gc2VsZWN0RWxlbS5wYW5lbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYW5lbEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vblNjcm9sbC5iaW5kKHRoaXMpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2Nyb2xsKGV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnKSB7XHJcbiAgICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSBldmVudC50YXJnZXQ7XHJcbiAgICAgIGlmICghc2Nyb2xsRWxlbWVudCkgcmV0dXJuOyAvLyBFbnN1cmUgc2Nyb2xsRWxlbWVudCBpcyBub3QgdW5kZWZpbmVkXHJcbiAgICAgIGNvbnN0IHRyYWNrSGVpZ2h0ID0gc2Nyb2xsRWxlbWVudC5zY3JvbGxIZWlnaHQgLSBzY3JvbGxFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgICAgaWYgKGlzTmFOKHRyYWNrSGVpZ2h0KSB8fCB0cmFja0hlaWdodCA8PSAwKSByZXR1cm47IC8vIENoZWNrIGlmIHRyYWNrSGVpZ2h0IGlzIHZhbGlkXHJcbiAgICAgIGlmICh0aGlzLm9wZW5Db3VudGVyIDwgMikge1xyXG4gICAgICAgIGNvbnN0IHJldHJpZXZlZE9iamVjdCA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3N0b3JhZ2VPYmplY3QnKSk7XHJcbiAgICAgICAgdGhpcy50b3RhbFBhZ2VzID0gTnVtYmVyKHJldHJpZXZlZE9iamVjdD8udG90YWxQYWdlcyk7XHJcbiAgICAgICAgdGhpcy5wcm9kdWN0c2xvYWRpbmdGbGFnID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnByb2R1Y3RMaXN0ID0gcmV0cmlldmVkT2JqZWN0Py5kYXRhU291cmNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnByb2R1Y3RzbG9hZGluZ0ZsYWcgJiYgTWF0aC5mbG9vcihzY3JvbGxFbGVtZW50Py5zY3JvbGxUb3AgLyB0cmFja0hlaWdodCAqIDEwMCkgPiA1MCkge1xyXG4gICAgICAgIHRoaXMucHJvZHVjdHNsb2FkaW5nRmxhZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub3BlbkNvdW50ZXIgPSB0aGlzLm9wZW5Db3VudGVyICsgMTtcclxuICAgICAgICBpZiAodGhpcy5wYWdlTnVtYmVyIDwgdGhpcy50b3RhbFBhZ2VzKSB7XHJcbiAgICAgICAgICB0aGlzLnBhZ2VOdW1iZXIgPSB0aGlzLnBhZ2VOdW1iZXIgKyAxO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkRGF0YSh0aGlzLnBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUsIHRoaXMuc2VhcmNoUXVlcnkpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucHJvZHVjdHNsb2FkaW5nRmxhZyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGJ5IGtleSBmcm9tIHRoZSBhcnJheVxyXG4gIGdldFZhbHVlQnlLZXkoZGF0YSwga2V5KSB7XHJcbiAgICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIG51bGw7IC8vIFJldHVybiBudWxsIGlmIGRhdGEgaXMgZW1wdHkgb3IgdW5kZWZpbmVkXHJcbiAgICB9XHJcbiAgICBjb25zdCBpdGVtID0gZGF0YS5maW5kKGt2ID0+IGt2LmtleS50b0xvd2VyQ2FzZSgpID09PSBrZXkudG9Mb3dlckNhc2UoKSk7XHJcbiAgICByZXR1cm4gaXRlbSA/IGl0ZW0udmFsdWUgOiBudWxsO1xyXG4gIH1cclxuXHJcblxyXG4gIGxvYWREYXRhKHBhZ2VOdW1iZXIsIHBhZ2VTaXplLCBzZWFyY2hRdWVyeSkge1xyXG4gICAgY29uc3QgcGFyYW1zRGF0YSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Byb2R1Y3RQaWNrZXJQYXJhbXMnKSk7XHJcbiAgICBjb25zdCBpbmNsdWRlRGVzY3JpcHRpb24gPSB0aGlzLmdldFZhbHVlQnlLZXkocGFyYW1zRGF0YSwgJ2luY2x1ZGVEZXNjcmlwdGlvbicpO1xyXG4gICAgY29uc3QgdmVuZG9ySWQgPSB0aGlzLmdldFZhbHVlQnlLZXkocGFyYW1zRGF0YSwgJ3ZlbmRvcklkJyk7XHJcbiAgICBjb25zdCBvbmx5QWN0aXZlID0gdGhpcy5nZXRWYWx1ZUJ5S2V5KHBhcmFtc0RhdGEsICdvbmx5QWN0aXZlJyk7XHJcbiAgICB2YXIgY3VycmVudFVzZXIgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjdXJyZW50VXNlcicpKTtcclxuICAgIGxldCBoZWFkZXJzO1xyXG4gICAgaWYgKGN1cnJlbnRVc2VyICYmIGN1cnJlbnRVc2VyLlRva2VucyAmJiBjdXJyZW50VXNlci5Ub2tlbnMuQWNjZXNzVG9rZW4pIHtcclxuICAgICAgdmFyIGFjY2Vzc1Rva2VuID0gY3VycmVudFVzZXIuVG9rZW5zLkFjY2Vzc1Rva2VuO1xyXG4gICAgICBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAgICdBdXRob3JpemF0aW9uJzogJ0JlYXJlciAnICsgYWNjZXNzVG9rZW5cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdVc2VyIG5vdCBhdXRoZW50aWNhdGVkIG9yIHRva2VucyBtaXNzaW5nLicpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGVudmVuZG9ySWQgPSB0aGlzLnNjcnVtYmxlKHZlbmRvcklkKVxyXG4gICAgY29uc3QgZW5wYWdlTnVtYmVyID0gdGhpcy5zY3J1bWJsZShwYWdlTnVtYmVyKVxyXG4gICAgY29uc3QgZW5wYWdlU2l6ZSA9IHRoaXMuc2NydW1ibGUocGFnZVNpemUpO1xyXG4gICAgY29uc3QgZW5zZWFyY2hRdWVyeSA9IHRoaXMuc2NydW1ibGUoc2VhcmNoUXVlcnkpO1xyXG4gICAgbGV0IGVuYWN0aXZlID0gdGhpcy5zY3J1bWJsZShvbmx5QWN0aXZlKTtcclxuICAgIC8vQ2hlY2sgaWYgZW5hY3RpdmUgaXMgdW5kZWZpbmVkLCBudWxsLCBvciBibGFua1xyXG4gICAgaWYgKGVuYWN0aXZlID09PSB1bmRlZmluZWQgfHwgZW5hY3RpdmUgPT09IG51bGwgfHwgZW5hY3RpdmUgPT09ICcnKSB7XHJcbiAgICAgIGVuYWN0aXZlID0gdGhpcy5zY3J1bWJsZSh0cnVlKTsgLy8gU2V0IGRlZmF1bHQgdmFsdWUgdG8gdHJ1ZVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFNjcnVtYmxlIGFuZCBoYW5kbGUgdGhlIGluY2x1ZGVEZXNjcmlwdGlvbiBwYXJhbWV0ZXJcclxuICAgIGxldCBlbmRlc2NyaXB0aW9uID0gdGhpcy5zY3J1bWJsZShpbmNsdWRlRGVzY3JpcHRpb24pO1xyXG4gICAgaWYgKCFlbmRlc2NyaXB0aW9uKSB7XHJcbiAgICAgIGVuZGVzY3JpcHRpb24gPSB0aGlzLnNjcnVtYmxlKGZhbHNlKTsgIC8vIFNldCB0byAnZmFsc2UnIGlmIHVuZGVmaW5lZCwgbnVsbCwgb3IgYmxhbmtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBiYXNlVXJsTWFwcGluZyA9IHtcclxuICAgICAgJ2xvY2FsaG9zdCc6ICdodHRwOi8vbG9jYWxob3N0OjU4NTA0JyxcclxuICAgICAgJ2xpbmNvbG4udmFydG9waWEuY29tJzogJ2h0dHBzOi8vbGluY29sbi1hcGkudmFydG9waWEuY29tJyxcclxuICAgICAgJ3N0YWdlLnZhcnRvcGlhLmNvbSc6ICdodHRwczovL3N0YWdlLWFwaS52YXJ0b3BpYS5jb20nLFxyXG4gICAgICAnbXkudmFydG9waWEuY29tJzogJ2h0dHBzOi8vcmVhZ2FuLWFwaS52YXJ0b3BpYS5jb20nLFxyXG4gICAgICAnamFja3Nvbi52YXJ0b3BpYS5jb20nOiAnaHR0cHM6Ly9qYWNrc29uLWFwaS52YXJ0b3BpYS5jb20nXHJcbiAgICB9O1xyXG4gICAgLy8gR2V0IHRoZSBjdXJyZW50IGhvc3RuYW1lXHJcbiAgICBjb25zdCBob3N0bmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcclxuICAgIGNvbnN0IGJhc2VBcGlVcmwgPSBiYXNlVXJsTWFwcGluZ1tob3N0bmFtZV0gfHwgbnVsbDtcclxuICAgIGludGVyZmFjZSBWZW5kb3JQcm9kdWN0c1Jlc3BvbnNlIHtcclxuICAgICAgY29kZTogbnVtYmVyO1xyXG4gICAgICBkYXRhOiBhbnk7XHJcbiAgICAgIG1lc3NhZ2U6IHN0cmluZztcclxuICAgICAgc3RhdHVzQ29kZTogbnVtYmVyO1xyXG4gICAgfVxyXG4gICAgdGhpcy5odHRwLmdldDxWZW5kb3JQcm9kdWN0c1Jlc3BvbnNlPihgJHtiYXNlQXBpVXJsfS9hcGkvVmVuZG9yRm9ybUJ1aWxkZXIvR2V0VmVuZG9yUHJvZHVjdHM/dmVuZG9ySWQ9JHtlbnZlbmRvcklkfSZwYWdlTnVtYmVyPSR7ZW5wYWdlTnVtYmVyfSZwYWdlU2l6ZT0ke2VucGFnZVNpemV9JnNlYXJjaD0ke2Vuc2VhcmNoUXVlcnl9Jm9ubHlBY3RpdmU9JHtlbmFjdGl2ZX0maW5jbHVkZURlc2NyaXB0aW9uPSR7ZW5kZXNjcmlwdGlvbn1gLCB7IGhlYWRlcnMgfSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3ZlbmRvcnByb2R1Y3RpZCcpIHtcclxuICAgICAgICAgIHRoaXMudG90YWxQYWdlcyA9IHJlc3BvbnNlPy5kYXRhPy50b3RhbFBhZ2VzO1xyXG4gICAgICAgICAgY29uc3QgZGF0YSA9IHJlc3BvbnNlLmRhdGEuZGF0YVNvdXJjZTtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zTGVuZ3RoID0gZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgICBpZiAodGhpcy5wcm9kdWN0TGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGRhdGEubWFwKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiBpdGVtXHJcbiAgICAgICAgICAgIH0pLmZvckVhY2goaSA9PiB0aGlzLnByb2R1Y3RMaXN0LnB1c2goaSkpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RMaXN0ID0gZGF0YTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIFVwZGF0ZSBmaWx0ZXJlZE9wdGlvbnMgd2l0aCB0cmFuc2Zvcm1lZERhdGFcclxuICAgICAgICAgIHZhciBhbGxQcm9kdWN0TGlzdCA9IHRoaXMudHJhbnNmb3JtUmVzcG9uc2VEYXRhKHRoaXMucHJvZHVjdExpc3QpO1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBQcm9taXNlLnJlc29sdmUoYWxsUHJvZHVjdExpc3QpO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMucHJvZHVjdHNsb2FkaW5nRmxhZyA9IHRydWU7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZWxlID0gdGhpcy5zZWxlY3RFbGVtPy5wYW5lbD8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgICAgICAgaWYgKGVsZSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHRyYWNrSGVpZ2h0ID0gZWxlLnNjcm9sbEhlaWdodCAtIGVsZS5vZmZzZXRIZWlnaHRcclxuICAgICAgICAgICAgICBjb25zdCBtaWRkbGVQb3NpdGlvbiA9IHRyYWNrSGVpZ2h0IC8gMiAtIDUwO1xyXG4gICAgICAgICAgICAgIGVsZS5zY3JvbGxUbyh7IHRvcDogbWlkZGxlUG9zaXRpb24sIGJlaGF2aW9yOiAnYXV0bycgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1BhbmVsIGVsZW1lbnQgaXMgbm90IGF2YWlsYWJsZSB5ZXQuJyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB9LCAyNTApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gVXRpbGl0eSBmdW5jdGlvbiB0byB0cmFuc2Zvcm0gcmVzcG9uc2UgZGF0YVxyXG4gIHRyYW5zZm9ybVJlc3BvbnNlRGF0YShkYXRhOiBBcnJheTx7IHRleHQ6IGFueSwgdmFsdWU6IGFueSwgZGF0ZTogYW55IH0+IHwgbnVsbCB8IHVuZGVmaW5lZCk6IEFycmF5PHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IG51bWJlciwgZGF0ZTogc3RyaW5nIH0+IHtcclxuICAgIC8vIENoZWNrIGlmIGRhdGEgaXMgbm90IG51bGwsIHVuZGVmaW5lZCwgYW5kIGlzIGFuIGFycmF5IHdpdGggZWxlbWVudHNcclxuICAgIGlmIChkYXRhICYmIEFycmF5LmlzQXJyYXkoZGF0YSkgJiYgZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiBkYXRhLm1hcChpdGVtID0+ICh7XHJcbiAgICAgICAgbGFiZWw6IGl0ZW0udGV4dCxcclxuICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcclxuICAgICAgICBkYXRlOiBpdGVtLmRhdGVcclxuICAgICAgfSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gUmV0dXJuIGFuIGVtcHR5IGFycmF5IGlmIGRhdGEgaXMgbnVsbCwgdW5kZWZpbmVkLCBvciBlbXB0eVxyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGZpbHRlcldlYnNpdGVNdWx0aSgpIHtcclxuICAgIGlmICghdGhpcy5zZWxlY3RPcHRpb25zKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBzZWFyY2ggPSB0aGlzLndlYnNpdGVNdWx0aUZpbHRlckN0cmwudmFsdWU7XHJcbiAgICBzZWFyY2ggPSBzZWFyY2gudG9Mb3dlckNhc2UoKTtcclxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5zZWxlY3RPcHRpb25zLnRoZW4oKG9wdGlvbnMpID0+IHtcclxuICAgICAgY29uc3QgZmlsdGVyZWQgPSBvcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24ubGFiZWwucmVwbGFjZSgvPFxcLz9zcGFuW14+XSo+L2csIFwiXCIpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2gpICE9PSAtMSk7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zTGVuZ3RoID0gZmlsdGVyZWQubGVuZ3RoO1xyXG4gICAgICByZXR1cm4gZmlsdGVyZWQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX29uRGVzdHJveS5uZXh0KCcnKTtcclxuICAgIHRoaXMuX29uRGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFBhbmVsRWxlbWVudCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYW5lbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vblNjcm9sbC5iaW5kKHRoaXMpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKkVuZCovXHJcbiAgc2V0SW5zdGFuY2UoaW5zdGFuY2U6IGFueSkge1xyXG4gICAgc3VwZXIuc2V0SW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gICAgdGhpcy5pbnN0YW5jZS50cmlnZ2VyVXBkYXRlKCk7XHJcbiAgfVxyXG5cclxuICBvbkNsZWFyQWxsKCkge1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAndmVuZG9ycHJvZHVjdGlkJykge1xyXG4gICAgICB0aGlzLnBhZ2VOdW1iZXIgPSAxO1xyXG4gICAgICB0aGlzLnBhZ2VTaXplID0gMjA7XHJcbiAgICAgIHRoaXMuc2VhcmNoUXVlcnkgPSAnJztcclxuICAgICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5wcm9kdWN0TGlzdCA9IFtdO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSAnJztcclxuICAgICAgdGhpcy5sb2FkRGF0YSh0aGlzLnBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUsIHRoaXMuc2VhcmNoUXVlcnkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlU2Vjb25kRHJvcGRvd24odmFsdWU6IGFueSkge1xyXG4gICAgY29uc3QgYXBpRW5kUG9pbnQgPSAnTWFuYWdlVmVuZG9ycy9HZXRSZWZlcmVuY2VEYXRhSXRlbXNCeVZlbmRvcklkQW5kRGF0YVZhbHVlJztcclxuICAgIGxldCBmaW5hbFBhcmFtcyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2Nhc2NhZGluZ0Ryb3Bkb3duc1BhcmFtcycpKTtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGZpbmFsUGFyYW1zKSkge1xyXG4gICAgICBjb25zdCBpbmRleCA9IGZpbmFsUGFyYW1zLmZpbmRJbmRleChwYXJhbSA9PiBwYXJhbS5rZXkgPT09ICdkYXRhVmFsdWUnKTtcclxuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgIC8vIElmIHRoZSBvYmplY3QgZXhpc3RzLCB1cGRhdGUgaXRzIHZhbHVlXHJcbiAgICAgICAgZmluYWxQYXJhbXNbaW5kZXhdLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gSWYgdGhlIG9iamVjdCBkb2Vzbid0IGV4aXN0LCBhZGQgaXQgdG8gdGhlIGFycmF5XHJcbiAgICAgICAgZmluYWxQYXJhbXMucHVzaCh7IGtleTogJ2RhdGFWYWx1ZScsIHZhbHVlOiB2YWx1ZSB9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvbW1vblNlcnZpY2UuaW5pdGlhbGl6ZUFwaVBhdGgoYXBpRW5kUG9pbnQsIGZpbmFsUGFyYW1zKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuc2Vjb25kRHJvcGRvd25JdGVtcyA9IHJlc3BvbnNlLmRhdGE7XHJcbiAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2Uuc2V0RHJvcGRvd25JdGVtcyh0aGlzLnNlY29uZERyb3Bkb3duSXRlbXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnNlbGVjdEVsZW0ub3BlbmVkQ2hhbmdlLnN1YnNjcmliZShhc3luYyAoaXNPcGVuOiBib29sZWFuKSA9PiB7XHJcbiAgICAgIGxldCBpID0gMFxyXG4gICAgICBpZiAoaXNPcGVuKSB7XHJcbiAgICAgICAgY29uc3QgbmV3UHJvZHVjdFBpY2tlckZsYWcgPSB0aGlzLmluc3RhbmNlPy5jb21wb25lbnQ/LmF0dHJpYnV0ZXM7XHJcbiAgICAgICAgbGV0IGNoZWNrSW52b2tlRnJvbUxpYnJhcnkgPSB0aGlzLmNvbW1vblNlcnZpY2UuY2hlY2tJc0F0dHJpYnV0ZVRydWUobmV3UHJvZHVjdFBpY2tlckZsYWcsIFwiaW52b2tlRnJvbUxpYnJhcnlcIilcclxuICAgICAgICBjb25zdCBmaXJzdExldmVsID0gKHRoaXMuZ2V0VmVuZG9yUmVmTGlzdCh0aGlzLmluc3RhbmNlKSAmJiBjaGVja0ludm9rZUZyb21MaWJyYXJ5KTtcclxuICAgICAgICBpZiAoZmlyc3RMZXZlbCkge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RFbGVtLnZhbHVlQ2hhbmdlLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2Uuc2V0RHJvcERvd25GbGFnKHRydWUpO1xyXG4gICAgICAgICAgICBpZihpID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVTZWNvbmREcm9wZG93bihyZXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGkrK1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNoZWNrVmVuZG9yUmVmSXRlbXModGhpcy5pbnN0YW5jZSkgJiYgY2hlY2tJbnZva2VGcm9tTGlicmFyeSkge1xyXG4gICAgICAgICAgdGhpcy5zdG9yZURlcGVuZGVudEl0ZW1zID0gW107XHJcbiAgICAgICAgICB0aGlzLnNlY29uZERyb3Bkb3duSXRlbXMgPSB0aGlzLmNvbW1vblNlcnZpY2UuZ2V0RHJvcGRvd25JdGVtcygpO1xyXG4gICAgICAgICAgaWYgKHRoaXMuc2Vjb25kRHJvcGRvd25JdGVtcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2Vjb25kRHJvcGRvd25JdGVtcy5mb3JFYWNoKChyZW5kZXJFbGVtZW50LCBpbmRleCwgYXJyYXkpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnN0b3JlRGVwZW5kZW50SXRlbXMucHVzaCh7IGxhYmVsOiByZW5kZXJFbGVtZW50Wyd0ZXh0J10sIHZhbHVlOiB0aGlzLmNvbW1vblNlcnZpY2Uub25seU51bWJlcnMocmVuZGVyRWxlbWVudFsndmFsdWUnXSkgPyByZW5kZXJFbGVtZW50Wyd2YWx1ZSddICsgJyAnIDogcmVuZGVyRWxlbWVudFsndmFsdWUnXSB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoIXRoaXMuY29tbW9uU2VydmljZS5nZXREcm9wRG93bkZsYWcoKSkge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlRGVwZW5kZW50SXRlbXMgPSB0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5kYXRhLnZhbHVlcztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gUHJvbWlzZS5yZXNvbHZlKHRoaXMuc3RvcmVEZXBlbmRlbnRJdGVtcyk7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbnMgPSBQcm9taXNlLnJlc29sdmUodGhpcy5zdG9yZURlcGVuZGVudEl0ZW1zKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0T3B0aW9ucy50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zTGVuZ3RoID0gcmVzdWx0Lmxlbmd0aFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0RWxlbS5vcGVuZWRDaGFuZ2Uuc3Vic2NyaWJlKChpc09wZW46IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAoaXNPcGVuKSB7XHJcbiAgICAgICAgICB0aGlzLnBhZ2VOdW1iZXIgPSAxO1xyXG4gICAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IDIwO1xyXG4gICAgICAgICAgaWYodGhpcy5zZWFyY2hRdWVyeT8ubGVuZ3RoPjApe1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zZWFyY2hJdGVtPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy53ZWJzaXRlTXVsdGlGaWx0ZXJDdHJsLnNldFZhbHVlKHRoaXMuc2VhcmNoSXRlbSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAgIC8vIHRoaXMuc2VhcmNoUXVlcnkgPSAnJztcclxuICAgICAgICAgIHRoaXMuc2VhcmNoaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAvL3RoaXMubG9hZERhdGEodGhpcy5wYWdlTnVtYmVyLCB0aGlzLnBhZ2VTaXplLCB0aGlzLnNlYXJjaFF1ZXJ5KTtcclxuICAgICAgICAgIHRoaXMucmVnaXN0ZXJQYW5lbFNjcm9sbEV2ZW50KHRoaXMuc2VsZWN0RWxlbSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUGFuZWxTY3JvbGxFdmVudCgpO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTtcclxuICAgICAgICAgIC8vIGlmICh0aGlzLnNlbGVjdGVkVmFsdWU/LnRvU3RyaW5nKCkubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgIC8vICAgdGhpcy5wcm9kdWN0TGlzdCA9IFtdO1xyXG4gICAgICAgICAgLy8gICB0aGlzLnBhZ2VOdW1iZXIgPSAxO1xyXG4gICAgICAgICAgLy8gICB0aGlzLnBhZ2VTaXplID0gMjA7XHJcbiAgICAgICAgICAvLyAgIHRoaXMuc2VhcmNoUXVlcnkgPSAnJztcclxuICAgICAgICAgIC8vICAgdGhpcy5sb2FkRGF0YSh0aGlzLnBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUsIHRoaXMuc2VhcmNoUXVlcnkpO1xyXG4gICAgICAgICAgLy8gfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVQYW5lbFNjcm9sbEV2ZW50KCkge1xyXG4gICAgLy8gUmVtb3ZlIHRoZSBzY3JvbGwgZXZlbnQgbGlzdGVuZXJcclxuICAgIGlmICh0aGlzLmN1cnJlbnRQYW5lbEVsZW1lbnQpIHtcclxuICAgICAgdGhpcy5jdXJyZW50UGFuZWxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25TY3JvbGwuYmluZCh0aGlzKSk7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhbmVsRWxlbWVudCA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLypuZXcgbG9naWMgKi9cclxuICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3ZlbmRvcnByb2R1Y3RpZCcpIHtcclxuICAgICAgdGhpcy53ZWJzaXRlTXVsdGlGaWx0ZXJDdHJsLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDEwMDApLCAvLyBUaW1lIGluIG1pbGxpc2Vjb25kcyBiZXR3ZWVuIGtleSBldmVudHNcclxuICAgICAgICAgIC8vICB0YXAoKCkgPT4gdGhpcy5zZWFyY2hpbmcgPSB0cnVlKSxcclxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95KSlcclxuICAgICAgICAuc3Vic2NyaWJlKChzZWFyY2hRdWVyeSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHNlYXJjaFF1ZXJ5ICE9ICcnKSB7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnBhZ2VOdW1iZXIgPSAxO1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2VTaXplID0gMjA7XHJcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdExpc3QgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFF1ZXJ5ID0gc2VhcmNoUXVlcnk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoSXRlbT1zZWFyY2hRdWVyeVxyXG4gICAgICAgICAgICB0aGlzLmxvYWREYXRhKHRoaXMucGFnZU51bWJlciwgdGhpcy5wYWdlU2l6ZSwgc2VhcmNoUXVlcnkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy53ZWJzaXRlTXVsdGlGaWx0ZXJDdHJsLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZpbHRlcldlYnNpdGVNdWx0aSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLypFbmQgKi9cclxuICAgIHRoaXMuc2VsZWN0T3B0aW9ucyA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIHRoaXMuc2VsZWN0T3B0aW9uc1Jlc29sdmUgPSByZXNvbHZlO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlbGVjdE9wdGlvbnMudGhlbigob3B0aW9ucykgPT4ge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9uc0xlbmd0aCA9IG9wdGlvbnMubGVuZ3RoO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLnNlbGVjdE9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdGlvbkNoYW5nZShldmVudDogYW55LCBzdWJtaXREYXRhOiBhbnksIGF0dHJpYnV0ZXM6IGFueSkge1xyXG5cclxuICB9XHJcblxyXG4gIGNoZWNrVmVuZG9yUmVmSXRlbXMoaW5zdGFuY2UpIHtcclxuICAgIGNvbnN0IHNlbGVjdFZhbHVlcyA9IGluc3RhbmNlLmNvbXBvbmVudFsnc2VsZWN0VmFsdWVzJ107XHJcbiAgICBjb25zdCBkYXRhVXJsID0gaW5zdGFuY2UuY29tcG9uZW50WydkYXRhJ10/LnVybDtcclxuICAgIGNvbnN0IGlzU2VsZWN0VmFsdWVzVmFsaWQgPSBzZWxlY3RWYWx1ZXMgIT0gbnVsbCAmJiBzZWxlY3RWYWx1ZXMgIT09ICcnICYmIHNlbGVjdFZhbHVlcyAhPT0gdW5kZWZpbmVkO1xyXG4gICAgY29uc3QgaXNEYXRhVXJsSW52YWxpZCA9IGRhdGFVcmwgPT0gbnVsbCB8fCBkYXRhVXJsID09PSAnJyB8fCBkYXRhVXJsID09PSB1bmRlZmluZWQ7XHJcbiAgICByZXR1cm4gaXNTZWxlY3RWYWx1ZXNWYWxpZCAmJiBpc0RhdGFVcmxJbnZhbGlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmVuZG9yUmVmTGlzdChpbnN0YW5jZSkge1xyXG4gICAgY29uc3QgZGF0YVVybCA9IGluc3RhbmNlLmNvbXBvbmVudFsnZGF0YSddPy51cmw7XHJcbiAgICBjb25zdCBpc1NlbGVjdFZhbHVlc1ZhbGlkID0gZGF0YVVybCAhPSBudWxsICYmIGRhdGFVcmwgIT09ICcnICYmIGRhdGFVcmwgIT09IHVuZGVmaW5lZDtcclxuICAgIHJldHVybiBpc1NlbGVjdFZhbHVlc1ZhbGlkO1xyXG4gIH1cclxuXHJcbiAgaXNFcnJvcigpIHtcclxuICAgIGlmICh0aGlzLmluc3RhbmNlLmVycm9yKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbC5zZXRFcnJvcnModGhpcy5pbnN0YW5jZS5jb21wb25lbnQudmFsaWRhdGUpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRFcnJvck1lc3NhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZS5lcnJvciAmJiB0aGlzLmluc3RhbmNlLmVycm9yLm1lc3NhZ2VzKSB7XHJcbiAgICAgIGNvbnN0IHsgbWVzc2FnZXMgfSA9IHRoaXMuaW5zdGFuY2UuZXJyb3I7XHJcbiAgICAgIGlmIChtZXNzYWdlcy5sZW5ndGgpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IG1zZyBvZiBtZXNzYWdlcykge1xyXG4gICAgICAgICAgaWYgKG1zZy5jb250ZXh0KSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmluc3RhbmNlICYmIHRoaXMuaW5zdGFuY2UucGFyZW50ICYmIHRoaXMuaW5zdGFuY2UucGFyZW50Ll9kYXRhKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UucGFyZW50Ll9kYXRhLnN1Ym1pdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb250cm9sLm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5zdGFuY2UuZXJyb3IgPyB0aGlzLmluc3RhbmNlLmVycm9yLm1lc3NhZ2UgOiAnJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbXBhcmVPYmplY3RzKG8xOiBhbnksIG8yOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBfLmlzRXF1YWwobzEsIG8yKTtcclxuICB9XHJcbn1cclxuU2VsZWN0Q29tcG9uZW50Lk1hdGVyaWFsQ29tcG9uZW50ID0gTWF0ZXJpYWxTZWxlY3RDb21wb25lbnQ7XHJcblxyXG4vLyBNYWtlIHN1cmUgd2UgZGV0ZWN0IGNoYW5nZXMgd2hlbiBuZXcgaXRlbXMgbWFrZSB0aGVpciB3YXkgaW50byB0aGUgc2VsZWN0IGRyb3Bkb3duLlxyXG5jb25zdCBzZXRJdGVtcyA9IFNlbGVjdENvbXBvbmVudC5wcm90b3R5cGUuc2V0SXRlbXM7XHJcblNlbGVjdENvbXBvbmVudC5wcm90b3R5cGUuc2V0SXRlbXMgPSBmdW5jdGlvbiAoLi4uYXJncykge1xyXG4gIHNldEl0ZW1zLmNhbGwodGhpcywgLi4uYXJncyk7XHJcbiAgaWYgKHRoaXMubWF0ZXJpYWxDb21wb25lbnQgJiYgdGhpcy5tYXRlcmlhbENvbXBvbmVudC5zZWxlY3RPcHRpb25zUmVzb2x2ZSkge1xyXG4gICAgdGhpcy5tYXRlcmlhbENvbXBvbmVudC5zZWxlY3RPcHRpb25zUmVzb2x2ZSh0aGlzLnNlbGVjdE9wdGlvbnMpO1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCB7IFNlbGVjdENvbXBvbmVudCB9OyJdfQ==
@@ -20,6 +20,7 @@ import { MatIconModule } from '@angular/material/icon';
20
20
  import { MatNativeDateModule } from '@angular/material/core';
21
21
  import { NgxRenderMaterialFormsComponent } from './ngx-render-material-forms.component';
22
22
  import { MatDialogModule } from '@angular/material/dialog';
23
+ import { MatAutocompleteModule } from '@angular/material/autocomplete';
23
24
  import { initRenderer } from './renderer';
24
25
  import { FormioComponent } from './formio.component';
25
26
  import { MaterialComponent } from './components/MaterialComponent';
@@ -67,6 +68,7 @@ import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';
67
68
  import { MatTooltipModule } from '@angular/material/tooltip';
68
69
  import { ScrollingModule } from '@angular/cdk/scrolling';
69
70
  import { ConfirmationDialogComponent } from './components/confirmation-dialog/confirmation-dialog.component';
71
+ import { AddOnProductsComponent } from './components/add-on-products/add-on-products.component';
70
72
  import * as i0 from "@angular/core";
71
73
  export { FormioComponent, MaterialButtonComponent, MaterialTextfieldComponent, MaterialPasswordComponent, MaterialUrlComponent, MaterialEmailComponent, MaterialPhoneNumberComponent, MaterialNumberComponent, MaterialCurrencyComponent, MaterialDayComponent, MaterialHiddenComponent, MaterialHtmlComponent, MaterialTagsComponent, MaterialTableComponent, MaterialTextareaComponent, MaterialColumnsComponent, MaterialContainerComponent, MaterialDataGridComponent, MaterialEditGridComponent, MaterialPanelComponent, MaterialCheckboxComponent, MaterialFieldsetComponent, MaterialContentComponent, MaterialSignatureComponent, MaterialSurveyComponent, MaterialSelectBoxesComponent, MaterialRadioComponent, MaterialSelectComponent, MaterialTabsComponent, MaterialDateComponent, MaterialWellComponent, MaterialComponent, MaterialNestedComponent, MaterialTimeComponent };
72
74
  export class NgxRenderMaterialFormsModule {
@@ -115,7 +117,8 @@ NgxRenderMaterialFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.
115
117
  FormioFormFieldComponent,
116
118
  LabelComponent,
117
119
  MaskDirective,
118
- ConfirmationDialogComponent], imports: [CommonModule,
120
+ ConfirmationDialogComponent,
121
+ AddOnProductsComponent], imports: [CommonModule,
119
122
  FormsModule,
120
123
  ReactiveFormsModule,
121
124
  MatInputModule,
@@ -143,7 +146,9 @@ NgxRenderMaterialFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.
143
146
  ScrollingModule,
144
147
  NgxMatSelectSearchModule,
145
148
  MatDialogModule,
146
- HttpClientModule], exports: [NgxRenderMaterialFormsComponent,
149
+ HttpClientModule,
150
+ MatAutocompleteModule], exports: [MatAutocompleteModule,
151
+ NgxRenderMaterialFormsComponent,
147
152
  FormioComponent,
148
153
  MatInputModule,
149
154
  MatFormFieldModule,
@@ -197,7 +202,9 @@ NgxRenderMaterialFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.
197
202
  ScrollingModule,
198
203
  NgxMatSelectSearchModule,
199
204
  MatDialogModule,
200
- HttpClientModule, MatInputModule,
205
+ HttpClientModule,
206
+ MatAutocompleteModule, MatAutocompleteModule,
207
+ MatInputModule,
201
208
  MatFormFieldModule,
202
209
  MatCheckboxModule,
203
210
  MatRadioModule,
@@ -265,7 +272,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
265
272
  FormioFormFieldComponent,
266
273
  LabelComponent,
267
274
  MaskDirective,
268
- ConfirmationDialogComponent
275
+ ConfirmationDialogComponent,
276
+ AddOnProductsComponent
269
277
  ],
270
278
  imports: [
271
279
  CommonModule,
@@ -296,9 +304,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
296
304
  ScrollingModule,
297
305
  NgxMatSelectSearchModule,
298
306
  MatDialogModule,
299
- HttpClientModule
307
+ HttpClientModule,
308
+ MatAutocompleteModule
300
309
  ],
301
310
  exports: [
311
+ MatAutocompleteModule,
302
312
  NgxRenderMaterialFormsComponent,
303
313
  FormioComponent,
304
314
  MatInputModule,
@@ -365,4 +375,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
365
375
  }]
366
376
  }], ctorParameters: function () { return []; } });
367
377
  export * from './renderer';
368
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVuZGVyLW1hdGVyaWFsLWZvcm1zL3NyYy9saWIvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5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eUJBQXlCO3dCQUN6Qix5QkFBeUI7d0JBQ3pCLHdCQUF3Qjt3QkFDeEIsMEJBQTBCO3dCQUMxQix1QkFBdUI7d0JBQ3ZCLDRCQUE0Qjt3QkFDNUIsc0JBQXNCO3dCQUN0Qix1QkFBdUI7d0JBQ3ZCLHFCQUFxQjt3QkFDckIsc0JBQXNCO3dCQUN0QixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3FCQUN4QjtpQkFDRjs7QUFPRCxjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcclxuaW1wb3J0IHsgTWF0RXhwYW5zaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcclxuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xyXG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XHJcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdE5hdGl2ZURhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTmd4UmVuZGVyTWF0ZXJpYWxGb3Jtc0NvbXBvbmVudCB9IGZyb20gJy4vbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy5jb21wb25lbnQnO1xyXG5pbXBvcnQge01hdERpYWxvZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgaW5pdFJlbmRlcmVyIH0gZnJvbSAnLi9yZW5kZXJlcic7XHJcbmltcG9ydCB7IEZvcm1pb0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybWlvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL01hdGVyaWFsQ29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxOZXN0ZWRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvTWF0ZXJpYWxOZXN0ZWRDb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsVGV4dGZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RleHRmaWVsZC90ZXh0ZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYXNzd29yZC9wYXNzd29yZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFVybENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91cmwvdXJsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsRW1haWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZW1haWwvZW1haWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxQaG9uZU51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9waG9uZW51bWJlci9waG9uZW51bWJlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9udW1iZXIvbnVtYmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsSGlkZGVuQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2hpZGRlbi9oaWRkZW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxIdG1sQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2h0bWwvaHRtbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFRhZ3NDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFncy90YWdzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsQ3VycmVuY3lDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VycmVuY3kvY3VycmVuY3kuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxEYXlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF5L2RheS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsQ29sdW1uc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2x1bW5zL2NvbHVtbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29udGFpbmVyL2NvbnRhaW5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsRmllbGRzZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmllbGRzZXQvZmllbGRzZXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbnRlbnQvY29udGVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFNpZ25hdHVyZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zaWduYXR1cmUvc2lnbmF0dXJlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsU3VydmV5Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxTZWxlY3RCb3hlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZWxlY3Rib3hlcy9zZWxlY3Rib3hlcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFJhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JhZGlvL3JhZGlvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxQYW5lbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYW5lbC9wYW5lbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFRhYnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFicy90YWJzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxEYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGUvZGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbERhdGFHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGFncmlkL2RhdGFncmlkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsRWRpdEdyaWRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWRpdGdyaWQvZWRpdGdyaWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxXZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3dlbGwvd2VsbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFdpemFyZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb3JtaW8ud2l6YXJkJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RpbWUvdGltZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IEZvcm1pb0Zvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb3JtaW8tZm9ybS1maWVsZC9mb3JtaW8tZm9ybS1maWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sYWJlbC9sYWJlbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXNrRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL21hc2suZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcclxuaW1wb3J0IHsgTWF0U3RlcHBlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXInO1xyXG5pbXBvcnQgeyBOZ3hNYXRTZWxlY3RTZWFyY2hNb2R1bGUgfSBmcm9tICduZ3gtbWF0LXNlbGVjdC1zZWFyY2gnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IFNjcm9sbGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQge1xyXG4gIEZvcm1pb0NvbXBvbmVudCxcclxuICBNYXRlcmlhbEJ1dHRvbkNvbXBvbmVudCxcclxuICBNYXRlcmlhbFRleHRmaWVsZENvbXBvbmVudCxcclxuICBNYXRlcmlhbFBhc3N3b3JkQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsVXJsQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsRW1haWxDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxQaG9uZU51bWJlckNvbXBvbmVudCxcclxuICBNYXRlcmlhbE51bWJlckNvbXBvbmVudCxcclxuICBNYXRlcmlhbEN1cnJlbmN5Q29tcG9uZW50LFxyXG4gIE1hdGVyaWFsRGF5Q29tcG9uZW50LFxyXG4gIE1hdGVyaWFsSGlkZGVuQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsSHRtbENvbXBvbmVudCxcclxuICBNYXRlcmlhbFRhZ3NDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxUYWJsZUNvbXBvbmVudCxcclxuICBNYXRlcmlhbFRleHRhcmVhQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsQ29sdW1uc0NvbXBvbmVudCxcclxuICBNYXRlcmlhbENvbnRhaW5lckNvbXBvbmVudCxcclxuICBNYXRlcmlhbERhdGFHcmlkQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsRWRpdEdyaWRDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxQYW5lbENvbXBvbmVudCxcclxuICBNYXRlcmlhbENoZWNrYm94Q29tcG9uZW50LFxyXG4gIE1hdGVyaWFsRmllbGRzZXRDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxDb250ZW50Q29tcG9uZW50LFxyXG4gIE1hdGVyaWFsU2lnbmF0dXJlQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsU3VydmV5Q29tcG9uZW50LFxyXG4gIE1hdGVyaWFsU2VsZWN0Qm94ZXNDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxSYWRpb0NvbXBvbmVudCxcclxuICBNYXRlcmlhbFNlbGVjdENvbXBvbmVudCxcclxuICBNYXRlcmlhbFRhYnNDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxEYXRlQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsV2VsbENvbXBvbmVudCxcclxuICBNYXRlcmlhbENvbXBvbmVudCxcclxuICBNYXRlcmlhbE5lc3RlZENvbXBvbmVudCxcclxuICBNYXRlcmlhbFRpbWVDb21wb25lbnQgXHJcbn07XHJcblxyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBOZ3hSZW5kZXJNYXRlcmlhbEZvcm1zQ29tcG9uZW50LFxyXG4gICAgRm9ybWlvQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxCdXR0b25Db21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFRleHRmaWVsZENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsUGFzc3dvcmRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFVybENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsRW1haWxDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFBob25lTnVtYmVyQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxOdW1iZXJDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbEN1cnJlbmN5Q29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxEYXlDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbEhpZGRlbkNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsSHRtbENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVGFnc0NvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVGV4dGFyZWFDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbENvbHVtbnNDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbENvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsRGF0YUdyaWRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbEVkaXRHcmlkQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxQYW5lbENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbEZpZWxkc2V0Q29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxDb250ZW50Q29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxTaWduYXR1cmVDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFN1cnZleUNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsU2VsZWN0Qm94ZXNDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFJhZGlvQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxTZWxlY3RDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFRhYnNDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFRhYmxlQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxEYXRlQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxXZWxsQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxXaXphcmRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxUaW1lQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxDYWxlbmRhckNvbXBvbmVudCxcclxuICAgIEZvcm1pb0Zvcm1GaWVsZENvbXBvbmVudCxcclxuICAgIExhYmVsQ29tcG9uZW50LFxyXG4gICAgTWFza0RpcmVjdGl2ZSxcclxuICAgIENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgTWF0UmFkaW9Nb2R1bGUsXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICBNYXRMaXN0TW9kdWxlLFxyXG4gICAgTWF0Q2hpcHNNb2R1bGUsXHJcbiAgICBNYXRFeHBhbnNpb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRUYWJzTW9kdWxlLFxyXG4gICAgTWF0VGFibGVNb2R1bGUsXHJcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxyXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcclxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgRmxleExheW91dE1vZHVsZSxcclxuICAgIE1hdFN0ZXBwZXJNb2R1bGUsXHJcbiAgICBNYXRDYXJkTW9kdWxlLFxyXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICBTY3JvbGxpbmdNb2R1bGUsXHJcbiAgICBOZ3hNYXRTZWxlY3RTZWFyY2hNb2R1bGUsXHJcbiAgICBNYXREaWFsb2dNb2R1bGUsXHJcbiAgICBIdHRwQ2xpZW50TW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBOZ3hSZW5kZXJNYXRlcmlhbEZvcm1zQ29tcG9uZW50LFxyXG4gICAgRm9ybWlvQ29tcG9uZW50LFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdFJhZGlvTW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgTWF0TGlzdE1vZHVsZSxcclxuICAgIE1hdENoaXBzTW9kdWxlLFxyXG4gICAgTWF0RXhwYW5zaW9uTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0Q2FyZE1vZHVsZSxcclxuICAgIE1hdFRhYnNNb2R1bGUsXHJcbiAgICBNYXRUYWJsZU1vZHVsZSxcclxuICAgIE1hdE5hdGl2ZURhdGVNb2R1bGUsXHJcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBEcmFnRHJvcE1vZHVsZSxcclxuICAgIE1hdFN0ZXBwZXJNb2R1bGUsXHJcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxyXG4gICAgU2Nyb2xsaW5nTW9kdWxlLFxyXG4gICAgTmd4TWF0U2VsZWN0U2VhcmNoTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZVxyXG4gIF0sXHJcbiAgZW50cnlDb21wb25lbnRzOiBbXHJcbiAgICBNYXRlcmlhbEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVGV4dGZpZWxkQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxQYXNzd29yZENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVXJsQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxFbWFpbENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsUGhvbmVOdW1iZXJDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbE51bWJlckNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsQ3VycmVuY3lDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbERheUNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsSGlkZGVuQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxIdG1sQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxUYWdzQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxUZXh0YXJlYUNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsQ29sdW1uc0NvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxEYXRhR3JpZENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsRWRpdEdyaWRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFBhbmVsQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxDaGVja2JveENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsRmllbGRzZXRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbENvbnRlbnRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFNpZ25hdHVyZUNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsU3VydmV5Q29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxTZWxlY3RCb3hlc0NvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsUmFkaW9Db21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFNlbGVjdENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVGFic0NvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVGFibGVDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbERhdGVDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFdlbGxDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxUaW1lQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxXaXphcmRDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hSZW5kZXJNYXRlcmlhbEZvcm1zTW9kdWxlIHsgXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBpbml0UmVuZGVyZXIoKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vcmVuZGVyZXInO1xyXG4iXX0=
378
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVuZGVyLW1hdGVyaWFsLWZvcm1zL3NyYy9saWIvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5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LHNCQUFzQjt3QkFDdEIsNEJBQTRCO3dCQUM1Qix1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLHdCQUF3Qjt3QkFDeEIsMEJBQTBCO3dCQUMxQix5QkFBeUI7d0JBQ3pCLHlCQUF5Qjt3QkFDekIsc0JBQXNCO3dCQUN0Qix5QkFBeUI7d0JBQ3pCLHlCQUF5Qjt3QkFDekIsd0JBQXdCO3dCQUN4QiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIsNEJBQTRCO3dCQUM1QixzQkFBc0I7d0JBQ3RCLHVCQUF1Qjt3QkFDdkIscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIscUJBQXFCO3dCQUNyQix1QkFBdUI7cUJBQ3hCO2lCQUNGOztBQU9ELGNBQWMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xyXG5pbXBvcnQgeyBNYXRFeHBhbnNpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xyXG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XHJcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcclxuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0TmF0aXZlRGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ3hSZW5kZXJNYXRlcmlhbEZvcm1zQ29tcG9uZW50IH0gZnJvbSAnLi9uZ3gtcmVuZGVyLW1hdGVyaWFsLWZvcm1zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TWF0RGlhbG9nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBpbml0UmVuZGVyZXIgfSBmcm9tICcuL3JlbmRlcmVyJztcclxuaW1wb3J0IHsgRm9ybWlvQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtaW8uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvTWF0ZXJpYWxDb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE5lc3RlZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9NYXRlcmlhbE5lc3RlZENvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxUZXh0ZmllbGRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGV4dGZpZWxkL3RleHRmaWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Bhc3N3b3JkL3Bhc3N3b3JkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsVXJsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VybC91cmwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxFbWFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbWFpbC9lbWFpbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFBob25lTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Bob25lbnVtYmVyL3Bob25lbnVtYmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL251bWJlci9udW1iZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxIaWRkZW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGlkZGVuL2hpZGRlbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbEh0bWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaHRtbC9odG1sLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsVGFnc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWdzL3RhZ3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxDdXJyZW5jeUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXJyZW5jeS9jdXJyZW5jeS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbERheUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXkvZGF5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsVGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxDb2x1bW5zQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbHVtbnMvY29sdW1ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb250YWluZXIvY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxGaWVsZHNldENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9maWVsZHNldC9maWVsZHNldC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29udGVudC9jb250ZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsU2lnbmF0dXJlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NpZ25hdHVyZS9zaWduYXR1cmUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3VydmV5L3N1cnZleS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFNlbGVjdEJveGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NlbGVjdGJveGVzL3NlbGVjdGJveGVzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsUmFkaW9Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmFkaW8vcmFkaW8uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BhbmVsL3BhbmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsVGFic0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJzL3RhYnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbERhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0ZS9kYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsRGF0YUdyaWRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YWdyaWQvZGF0YWdyaWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxFZGl0R3JpZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lZGl0Z3JpZC9lZGl0Z3JpZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFdlbGxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvd2VsbC93ZWxsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsV2l6YXJkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm1pby53aXphcmQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFRpbWVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGltZS90aW1lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgRm9ybWlvRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm1pby1mb3JtLWZpZWxkL2Zvcm1pby1mb3JtLWZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xhYmVsL2xhYmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hc2tEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvbWFzay5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xyXG5pbXBvcnQgeyBNYXRTdGVwcGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XHJcbmltcG9ydCB7IE5neE1hdFNlbGVjdFNlYXJjaE1vZHVsZSB9IGZyb20gJ25neC1tYXQtc2VsZWN0LXNlYXJjaCc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkT25Qcm9kdWN0c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZGQtb24tcHJvZHVjdHMvYWRkLW9uLXByb2R1Y3RzLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQge1xyXG4gIEZvcm1pb0NvbXBvbmVudCxcclxuICBNYXRlcmlhbEJ1dHRvbkNvbXBvbmVudCxcclxuICBNYXRlcmlhbFRleHRmaWVsZENvbXBvbmVudCxcclxuICBNYXRlcmlhbFBhc3N3b3JkQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsVXJsQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsRW1haWxDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxQaG9uZU51bWJlckNvbXBvbmVudCxcclxuICBNYXRlcmlhbE51bWJlckNvbXBvbmVudCxcclxuICBNYXRlcmlhbEN1cnJlbmN5Q29tcG9uZW50LFxyXG4gIE1hdGVyaWFsRGF5Q29tcG9uZW50LFxyXG4gIE1hdGVyaWFsSGlkZGVuQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsSHRtbENvbXBvbmVudCxcclxuICBNYXRlcmlhbFRhZ3NDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxUYWJsZUNvbXBvbmVudCxcclxuICBNYXRlcmlhbFRleHRhcmVhQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsQ29sdW1uc0NvbXBvbmVudCxcclxuICBNYXRlcmlhbENvbnRhaW5lckNvbXBvbmVudCxcclxuICBNYXRlcmlhbERhdGFHcmlkQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsRWRpdEdyaWRDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxQYW5lbENvbXBvbmVudCxcclxuICBNYXRlcmlhbENoZWNrYm94Q29tcG9uZW50LFxyXG4gIE1hdGVyaWFsRmllbGRzZXRDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxDb250ZW50Q29tcG9uZW50LFxyXG4gIE1hdGVyaWFsU2lnbmF0dXJlQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsU3VydmV5Q29tcG9uZW50LFxyXG4gIE1hdGVyaWFsU2VsZWN0Qm94ZXNDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxSYWRpb0NvbXBvbmVudCxcclxuICBNYXRlcmlhbFNlbGVjdENvbXBvbmVudCxcclxuICBNYXRlcmlhbFRhYnNDb21wb25lbnQsXHJcbiAgTWF0ZXJpYWxEYXRlQ29tcG9uZW50LFxyXG4gIE1hdGVyaWFsV2VsbENvbXBvbmVudCxcclxuICBNYXRlcmlhbENvbXBvbmVudCxcclxuICBNYXRlcmlhbE5lc3RlZENvbXBvbmVudCxcclxuICBNYXRlcmlhbFRpbWVDb21wb25lbnQgXHJcbn07XHJcblxyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBOZ3hSZW5kZXJNYXRlcmlhbEZvcm1zQ29tcG9uZW50LFxyXG4gICAgRm9ybWlvQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxCdXR0b25Db21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFRleHRmaWVsZENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsUGFzc3dvcmRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFVybENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsRW1haWxDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFBob25lTnVtYmVyQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxOdW1iZXJDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbEN1cnJlbmN5Q29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxEYXlDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbEhpZGRlbkNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsSHRtbENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVGFnc0NvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsVGV4dGFyZWFDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbENvbHVtbnNDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbENvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsRGF0YUdyaWRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbEVkaXRHcmlkQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxQYW5lbENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbEZpZWxkc2V0Q29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxDb250ZW50Q29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxTaWduYXR1cmVDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFN1cnZleUNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsU2VsZWN0Qm94ZXNDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFJhZGlvQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxTZWxlY3RDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFRhYnNDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFRhYmxlQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxEYXRlQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxXZWxsQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxXaXphcmRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxUaW1lQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxDYWxlbmRhckNvbXBvbmVudCxcclxuICAgIEZvcm1pb0Zvcm1GaWVsZENvbXBvbmVudCxcclxuICAgIExhYmVsQ29tcG9uZW50LFxyXG4gICAgTWFza0RpcmVjdGl2ZSxcclxuICAgIENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCxcclxuICAgIEFkZE9uUHJvZHVjdHNDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdFJhZGlvTW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgTWF0TGlzdE1vZHVsZSxcclxuICAgIE1hdENoaXBzTW9kdWxlLFxyXG4gICAgTWF0RXhwYW5zaW9uTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0VGFic01vZHVsZSxcclxuICAgIE1hdFRhYmxlTW9kdWxlLFxyXG4gICAgTWF0TmF0aXZlRGF0ZU1vZHVsZSxcclxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXHJcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIEZsZXhMYXlvdXRNb2R1bGUsXHJcbiAgICBNYXRTdGVwcGVyTW9kdWxlLFxyXG4gICAgTWF0Q2FyZE1vZHVsZSxcclxuICAgIERyYWdEcm9wTW9kdWxlLFxyXG4gICAgU2Nyb2xsaW5nTW9kdWxlLFxyXG4gICAgTmd4TWF0U2VsZWN0U2VhcmNoTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuXHJcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcclxuICAgIE5neFJlbmRlck1hdGVyaWFsRm9ybXNDb21wb25lbnQsXHJcbiAgICBGb3JtaW9Db21wb25lbnQsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgTWF0UmFkaW9Nb2R1bGUsXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICBNYXRMaXN0TW9kdWxlLFxyXG4gICAgTWF0Q2hpcHNNb2R1bGUsXHJcbiAgICBNYXRFeHBhbnNpb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRDYXJkTW9kdWxlLFxyXG4gICAgTWF0VGFic01vZHVsZSxcclxuICAgIE1hdFRhYmxlTW9kdWxlLFxyXG4gICAgTWF0TmF0aXZlRGF0ZU1vZHVsZSxcclxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXHJcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIERyYWdEcm9wTW9kdWxlLFxyXG4gICAgTWF0U3RlcHBlck1vZHVsZSxcclxuICAgIEZsZXhMYXlvdXRNb2R1bGUsXHJcbiAgICBTY3JvbGxpbmdNb2R1bGUsXHJcbiAgICBOZ3hNYXRTZWxlY3RTZWFyY2hNb2R1bGUsXHJcbiAgICBNYXREaWFsb2dNb2R1bGUsXHJcbiAgICBIdHRwQ2xpZW50TW9kdWxlXHJcbiAgXSxcclxuICBlbnRyeUNvbXBvbmVudHM6IFtcclxuICAgIE1hdGVyaWFsQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxUZXh0ZmllbGRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFBhc3N3b3JkQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxVcmxDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbEVtYWlsQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxQaG9uZU51bWJlckNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsTnVtYmVyQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxDdXJyZW5jeUNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsRGF5Q29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxIaWRkZW5Db21wb25lbnQsXHJcbiAgICBNYXRlcmlhbEh0bWxDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFRhZ3NDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFRleHRhcmVhQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxDb2x1bW5zQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbERhdGFHcmlkQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxFZGl0R3JpZENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsUGFuZWxDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbENoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxGaWVsZHNldENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsQ29udGVudENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsU2lnbmF0dXJlQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxTdXJ2ZXlDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFNlbGVjdEJveGVzQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxSYWRpb0NvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxUYWJzQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxUYWJsZUNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsRGF0ZUNvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsV2VsbENvbXBvbmVudCxcclxuICAgIE1hdGVyaWFsQ29tcG9uZW50LFxyXG4gICAgTWF0ZXJpYWxOZXN0ZWRDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFRpbWVDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFdpemFyZENvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFJlbmRlck1hdGVyaWFsRm9ybXNNb2R1bGUgeyBcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIGluaXRSZW5kZXJlcigpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9yZW5kZXJlcic7XHJcbiJdfQ==