@ngx-formly/core 5.10.20 → 5.10.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/ngx-formly-core-json-schema.umd.js +35 -20
- package/bundles/ngx-formly-core-json-schema.umd.js.map +1 -1
- package/bundles/ngx-formly-core-json-schema.umd.min.js +1 -1
- package/bundles/ngx-formly-core-json-schema.umd.min.js.map +1 -1
- package/bundles/ngx-formly-core.umd.js +76 -34
- package/bundles/ngx-formly-core.umd.js.map +1 -1
- package/bundles/ngx-formly-core.umd.min.js +1 -1
- package/bundles/ngx-formly-core.umd.min.js.map +1 -1
- package/esm2015/json-schema/formly-json-schema.service.js +36 -21
- package/esm2015/lib/components/formly.attributes.js +8 -3
- package/esm2015/lib/components/formly.field.js +24 -2
- package/esm2015/lib/components/formly.form.js +2 -2
- package/esm2015/lib/extensions/field-expression/field-expression.js +35 -16
- package/esm2015/lib/extensions/field-form/field-form.js +19 -17
- package/esm5/json-schema/formly-json-schema.service.js +36 -21
- package/esm5/lib/components/formly.attributes.js +8 -3
- package/esm5/lib/components/formly.field.js +24 -2
- package/esm5/lib/components/formly.form.js +2 -2
- package/esm5/lib/extensions/field-expression/field-expression.js +35 -16
- package/esm5/lib/extensions/field-form/field-form.js +19 -17
- package/fesm2015/ngx-formly-core-json-schema.js +35 -20
- package/fesm2015/ngx-formly-core-json-schema.js.map +1 -1
- package/fesm2015/ngx-formly-core.js +78 -35
- package/fesm2015/ngx-formly-core.js.map +1 -1
- package/fesm5/ngx-formly-core-json-schema.js +35 -20
- package/fesm5/ngx-formly-core-json-schema.js.map +1 -1
- package/fesm5/ngx-formly-core.js +77 -34
- package/fesm5/ngx-formly-core.js.map +1 -1
- package/json-schema/ngx-formly-core-json-schema.metadata.json +1 -1
- package/lib/components/formly.field.d.ts +1 -0
- package/ngx-formly-core.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -246,7 +246,7 @@ export class FormlyForm {
|
|
|
246
246
|
* @return {?}
|
|
247
247
|
*/
|
|
248
248
|
field => {
|
|
249
|
-
if (field.key && !field.fieldGroup) {
|
|
249
|
+
if (field.key && !field.fieldGroup && field.formControl) {
|
|
250
250
|
/** @type {?} */
|
|
251
251
|
const control = field.formControl;
|
|
252
252
|
/** @type {?} */
|
|
@@ -415,4 +415,4 @@ if (false) {
|
|
|
415
415
|
*/
|
|
416
416
|
FormlyForm.prototype.parentFormGroup;
|
|
417
417
|
}
|
|
418
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LmZvcm0uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4LWZvcm1seS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZm9ybWx5LmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXNCLEtBQUssRUFBaUIsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pLLE9BQU8sRUFBRSxTQUFTLEVBQWEsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUgsT0FBTyxFQUFnQixPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBa0I5RCxNQUFNLE9BQU8sVUFBVTs7Ozs7Ozs7SUEyRHJCLFlBQ1UsYUFBZ0MsRUFDaEMsWUFBMEIsRUFDMUIsTUFBYztJQUN0QiwyQkFBMkI7SUFDSCxTQUFTLEVBQ2IsZUFBbUM7UUFML0Msa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQ2hDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFHRixvQkFBZSxHQUFmLGVBQWUsQ0FBb0I7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QUN4QyxrQ0FBa0M7Ozs7O0lBQ2xDLDRCQUFzQjs7Ozs7SUFHdEIscUNBQXVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBEb0NoZWNrLCBPbkNoYW5nZXMsIElucHV0LCBTaW1wbGVDaGFuZ2VzLCBPcHRpb25hbCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uRGVzdHJveSwgQXR0cmlidXRlLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQXJyYXksIEZvcm1Hcm91cERpcmVjdGl2ZSwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5Rm9ybU9wdGlvbnMsIEZvcm1seUZvcm1PcHRpb25zQ2FjaGUgfSBmcm9tICcuL2Zvcm1seS5maWVsZC5jb25maWcnO1xuaW1wb3J0IHsgRm9ybWx5Rm9ybUJ1aWxkZXIgfSBmcm9tICcuLi9zZXJ2aWNlcy9mb3JtbHkuZm9ybS5idWlsZGVyJztcbmltcG9ydCB7IEZvcm1seUNvbmZpZyB9IGZyb20gJy4uL3NlcnZpY2VzL2Zvcm1seS5jb25maWcnO1xuaW1wb3J0IHsgYXNzaWduRmllbGRWYWx1ZSwgaXNOdWxsT3JVbmRlZmluZWQsIHdyYXBQcm9wZXJ0eSwgY2xvbmUsIGRlZmluZUhpZGRlblByb3AsIGdldEtleVBhdGgsIGlzT2JqZWN0IH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHN3aXRjaE1hcCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjbGVhckNvbnRyb2wgfSBmcm9tICcuLi9leHRlbnNpb25zL2ZpZWxkLWZvcm0vdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmb3JtbHktZm9ybScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGZvcm1seS1maWVsZCAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZmllbGRzXCJcbiAgICAgIGhpZGUtZGVwcmVjYXRpb25cbiAgICAgIFtmb3JtXT1cImZpZWxkLmZvcm1cIlxuICAgICAgW29wdGlvbnNdPVwiZmllbGQub3B0aW9uc1wiXG4gICAgICBbbW9kZWxdPVwiZmllbGQubW9kZWxcIlxuICAgICAgW2ZpZWxkXT1cImZpZWxkXCI+XG4gICAgPC9mb3JtbHktZmllbGQ+XG4gICAgPG5nLWNvbnRhaW5lciAjY29udGVudD5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgYCxcbiAgcHJvdmlkZXJzOiBbRm9ybWx5Rm9ybUJ1aWxkZXJdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtbHlGb3JtIGltcGxlbWVudHMgRG9DaGVjaywgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXAgfCBGb3JtQXJyYXk7XG5cbiAgQElucHV0KClcbiAgc2V0IG1vZGVsKG1vZGVsOiBhbnkpIHsgdGhpcy5fbW9kZWwgPSB0aGlzLmltbXV0YWJsZSA/IGNsb25lKG1vZGVsKSA6IG1vZGVsOyB9XG4gIGdldCBtb2RlbCgpIHtcbiAgICBpZiAoIXRoaXMuX21vZGVsKSB7XG4gICAgICB0aGlzLl9tb2RlbCA9IHt9O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9tb2RlbDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBmaWVsZHMoZmllbGRzOiBGb3JtbHlGaWVsZENvbmZpZ1tdKSB7IHRoaXMuX2ZpZWxkcyA9IHRoaXMuaW1tdXRhYmxlID8gY2xvbmUoZmllbGRzKSA6IGZpZWxkczsgfVxuICBnZXQgZmllbGRzKCkgeyByZXR1cm4gdGhpcy5fZmllbGRzIHx8IFtdOyB9XG5cbiAgQElucHV0KClcbiAgc2V0IG9wdGlvbnMob3B0aW9uczogRm9ybWx5Rm9ybU9wdGlvbnMpIHsgdGhpcy5fb3B0aW9ucyA9IHRoaXMuaW1tdXRhYmxlID8gY2xvbmUob3B0aW9ucykgOiBvcHRpb25zOyB9XG4gIGdldCBvcHRpb25zKCkgeyByZXR1cm4gdGhpcy5fb3B0aW9uczsgfVxuXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAVmlld0NoaWxkKCdjb250ZW50Jykgc2V0IGNvbnRlbnQoY29udGVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICBpZiAoY29udGVudCkge1xuICAgICAgbGV0IGhhc0NvbnRlbnQgPSBmYWxzZTtcbiAgICAgIGxldCBub2RlID0gY29udGVudC5uYXRpdmVFbGVtZW50Lm5leHRTaWJsaW5nO1xuICAgICAgd2hpbGUgKG5vZGUgJiYgIWhhc0NvbnRlbnQpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFXG4gICAgICAgICAgfHwgbm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUgJiYgbm9kZS50ZXh0Q29udGVudCAmJiBub2RlLnRleHRDb250ZW50LnRyaW0oKSAhPT0gJydcbiAgICAgICAgKSB7XG4gICAgICAgICAgaGFzQ29udGVudCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBub2RlID0gbm9kZS5uZXh0U2libGluZztcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0NvbnRlbnQpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBOZ3hGb3JtbHk6IGNvbnRlbnQgcHJvamVjdGlvbiBmb3IgJ2Zvcm1seS1mb3JtJyBjb21wb25lbnQgaXMgZGVwcmVjYXRlZCBzaW5jZSB2NS41LCB5b3Ugc2hvdWxkIGF2b2lkIHBhc3NpbmcgY29udGVudCBpbnNpZGUgdGhlICdmb3JtbHktZm9ybScgdGFnLmApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW1tdXRhYmxlID0gZmFsc2U7XG4gIHByaXZhdGUgX21vZGVsOiBhbnk7XG4gIHByaXZhdGUgX21vZGVsQ2hhbmdlVmFsdWU6IGFueSA9IHt9O1xuICBwcml2YXRlIF9maWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW107XG4gIHByaXZhdGUgX29wdGlvbnM6IEZvcm1seUZvcm1PcHRpb25zO1xuICBwcml2YXRlIG1vZGVsQ2hhbmdlU3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBtb2RlbENoYW5nZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIG1vZGVsQ2hhbmdlU3ViID0gdGhpcy5tb2RlbENoYW5nZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5uZ1pvbmUub25TdGFibGUuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlKDEpKSksXG4gICkuc3Vic2NyaWJlKCgpID0+IHRoaXMubmdab25lLnJ1bkd1YXJkZWQoKCkgPT4ge1xuICAgIC8vIHJ1bkd1YXJkZWQgaXMgdXNlZCB0byBrZWVwIHRoZSBleHByZXNzaW9uIGNoYW5nZXMgaW4tc3luY1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3gtZm9ybWx5L25neC1mb3JtbHkvaXNzdWVzLzIwOTVcbiAgICB0aGlzLmNoZWNrRXhwcmVzc2lvbkNoYW5nZSgpO1xuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLl9tb2RlbENoYW5nZVZhbHVlID0gY2xvbmUodGhpcy5tb2RlbCkpO1xuICB9KSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmb3JtbHlCdWlsZGVyOiBGb3JtbHlGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGZvcm1seUNvbmZpZzogRm9ybWx5Q29uZmlnLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG4gICAgQEF0dHJpYnV0ZSgnaW1tdXRhYmxlJykgaW1tdXRhYmxlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICkge1xuICAgIGlmIChpbW11dGFibGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnNvbGUud2FybihgTmd4Rm9ybWx5OiBwYXNzaW5nICdpbW11dGFibGUnIGF0dHJpYnV0ZSB0byAnZm9ybWx5LWZvcm0nIGNvbXBvbmVudCBpcyBkZXByZWNhdGVkIHNpbmNlIHY1LjUsIGVuYWJsZSBpbW11dGFibGUgbW9kZSB0aHJvdWdoIE5nTW9kdWxlIGRlY2xhcmF0aW9uIGluc3RlYWQuYCk7XG4gICAgfVxuXG4gICAgdGhpcy5pbW11dGFibGUgPSAoaW1tdXRhYmxlICE9PSBudWxsKSB8fCAhIWZvcm1seUNvbmZpZy5leHRyYXMuaW1tdXRhYmxlO1xuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIGlmICh0aGlzLmZvcm1seUNvbmZpZy5leHRyYXMuY2hlY2tFeHByZXNzaW9uT24gPT09ICdjaGFuZ2VEZXRlY3Rpb25DaGVjaycpIHtcbiAgICAgIHRoaXMuY2hlY2tFeHByZXNzaW9uQ2hhbmdlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3gtZm9ybWx5L25neC1mb3JtbHkvaXNzdWVzLzIyOTRcbiAgICBpZiAoY2hhbmdlcy5tb2RlbCAmJiB0aGlzLmZpZWxkKSB7XG4gICAgICB0aGlzLmZpZWxkLm1vZGVsID0gdGhpcy5tb2RlbDtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5maWVsZHMgJiYgdGhpcy5mb3JtKSB7XG4gICAgICBjbGVhckNvbnRyb2wodGhpcy5mb3JtKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5maWVsZHMgfHwgY2hhbmdlcy5mb3JtIHx8IChjaGFuZ2VzLm1vZGVsICYmIHRoaXMuX21vZGVsQ2hhbmdlVmFsdWUgIT09IGNoYW5nZXMubW9kZWwuY3VycmVudFZhbHVlKSkge1xuICAgICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtIHx8IChuZXcgRm9ybUdyb3VwKHt9KSk7XG4gICAgICB0aGlzLnNldE9wdGlvbnMoKTtcbiAgICAgIHRoaXMub3B0aW9ucy51cGRhdGVJbml0aWFsVmFsdWUoKTtcbiAgICAgIHRoaXMuY2xlYXJNb2RlbFN1YnNjcmlwdGlvbnMoKTtcbiAgICAgIHRoaXMuZm9ybWx5QnVpbGRlci5idWlsZEZvcm0odGhpcy5mb3JtLCB0aGlzLmZpZWxkcywgdGhpcy5tb2RlbCwgdGhpcy5vcHRpb25zKTtcbiAgICAgIHRoaXMudHJhY2tNb2RlbENoYW5nZXModGhpcy5maWVsZHMpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMubW9kZWxDaGFuZ2VTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNsZWFyTW9kZWxTdWJzY3JpcHRpb25zKCk7XG4gIH1cblxuICBjaGFuZ2VNb2RlbCh7IGtleSwgdmFsdWUsIGZpZWxkIH06IHsga2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZyB9KSB7XG4gICAgYXNzaWduRmllbGRWYWx1ZShmaWVsZCwgdmFsdWUpO1xuICAgIHRoaXMubW9kZWxDaGFuZ2UkLm5leHQoKTtcbiAgfVxuXG4gIHNldE9wdGlvbnMoKSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMpIHtcbiAgICAgIHRoaXMub3B0aW9ucyA9IHt9O1xuICAgIH1cblxuICAgIGlmICghdGhpcy5vcHRpb25zLnJlc2V0TW9kZWwpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5yZXNldE1vZGVsID0gKG1vZGVsID86IGFueSkgPT4ge1xuICAgICAgICBtb2RlbCA9IGNsb25lKGlzTnVsbE9yVW5kZWZpbmVkKG1vZGVsKSA/ICg8Rm9ybWx5Rm9ybU9wdGlvbnNDYWNoZT4gdGhpcy5vcHRpb25zKS5faW5pdGlhbE1vZGVsIDogbW9kZWwpO1xuICAgICAgICBpZiAodGhpcy5tb2RlbCkge1xuICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMubW9kZWwpLmZvckVhY2goayA9PiBkZWxldGUgdGhpcy5tb2RlbFtrXSk7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLm1vZGVsLCBtb2RlbCB8fCB7fSk7XG4gICAgICAgIH1cblxuICAgICAgICAoPEZvcm1seUZvcm1PcHRpb25zQ2FjaGU+IHRoaXMub3B0aW9ucykuX2J1aWxkRm9ybSgpO1xuXG4gICAgICAgIC8vIHdlIHNob3VsZCBjYWxsIGBOZ0Zvcm06OnJlc2V0Rm9ybWAgdG8gZW5zdXJlIGNoYW5naW5nIGBzdWJtaXR0ZWRgIHN0YXRlIGFmdGVyIHJlc2V0dGluZyBmb3JtXG4gICAgICAgIC8vIGJ1dCBvbmx5IHdoZW4gdGhlIGN1cnJlbnQgY29tcG9uZW50IGlzIGEgcm9vdCBvbmUuXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucGFyZW50Rm9ybSAmJiB0aGlzLm9wdGlvbnMucGFyZW50Rm9ybS5jb250cm9sID09PSB0aGlzLmZvcm0pIHtcbiAgICAgICAgICB0aGlzLm9wdGlvbnMucGFyZW50Rm9ybS5yZXNldEZvcm0odGhpcy5tb2RlbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5mb3JtLnJlc2V0KHRoaXMubW9kZWwpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmICghdGhpcy5vcHRpb25zLnBhcmVudEZvcm0gJiYgdGhpcy5wYXJlbnRGb3JtR3JvdXApIHtcbiAgICAgIGRlZmluZUhpZGRlblByb3AodGhpcy5vcHRpb25zLCAncGFyZW50Rm9ybScsIHRoaXMucGFyZW50Rm9ybUdyb3VwKTtcbiAgICAgIHdyYXBQcm9wZXJ0eSh0aGlzLm9wdGlvbnMucGFyZW50Rm9ybSwgJ3N1Ym1pdHRlZCcsICh7IGZpcnN0Q2hhbmdlIH0pID0+IHtcbiAgICAgICAgaWYgKCFmaXJzdENoYW5nZSkge1xuICAgICAgICAgIHRoaXMuY2hlY2tFeHByZXNzaW9uQ2hhbmdlKCk7XG4gICAgICAgICAgKDxGb3JtbHlGb3JtT3B0aW9uc0NhY2hlPiB0aGlzLm9wdGlvbnMpLl9tYXJrRm9yQ2hlY2soe1xuICAgICAgICAgICAgZmllbGRHcm91cDogdGhpcy5maWVsZHMsXG4gICAgICAgICAgICBtb2RlbDogdGhpcy5tb2RlbCxcbiAgICAgICAgICAgIGZvcm1Db250cm9sOiB0aGlzLmZvcm0sXG4gICAgICAgICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5vcHRpb25zLnVwZGF0ZUluaXRpYWxWYWx1ZSkge1xuICAgICAgdGhpcy5vcHRpb25zLnVwZGF0ZUluaXRpYWxWYWx1ZSA9ICgpID0+ICg8Rm9ybWx5Rm9ybU9wdGlvbnNDYWNoZT4gdGhpcy5vcHRpb25zKS5faW5pdGlhbE1vZGVsID0gY2xvbmUodGhpcy5tb2RlbCk7XG4gICAgfVxuXG4gICAgaWYgKCEoPEZvcm1seUZvcm1PcHRpb25zQ2FjaGU+IHRoaXMub3B0aW9ucykuX2J1aWxkRm9ybSkge1xuICAgICAgKDxGb3JtbHlGb3JtT3B0aW9uc0NhY2hlPiB0aGlzLm9wdGlvbnMpLl9idWlsZEZvcm0gPSAoZW1pdE1vZGVsQ2hhbmdlID0gZmFsc2UpID0+IHtcbiAgICAgICAgdGhpcy5jbGVhck1vZGVsU3Vic2NyaXB0aW9ucygpO1xuICAgICAgICB0aGlzLmZvcm1seUJ1aWxkZXIuYnVpbGRGb3JtKHRoaXMuZm9ybSwgdGhpcy5maWVsZHMsIHRoaXMubW9kZWwsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHRoaXMudHJhY2tNb2RlbENoYW5nZXModGhpcy5maWVsZHMpO1xuXG4gICAgICAgIGlmIChlbWl0TW9kZWxDaGFuZ2UpIHtcbiAgICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5fbW9kZWxDaGFuZ2VWYWx1ZSA9IGNsb25lKHRoaXMubW9kZWwpKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRXhwcmVzc2lvbkNoYW5nZSgpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zICYmICg8Rm9ybWx5Rm9ybU9wdGlvbnNDYWNoZT4gdGhpcy5vcHRpb25zKS5fY2hlY2tGaWVsZCkge1xuICAgICAgKDxGb3JtbHlGb3JtT3B0aW9uc0NhY2hlPiB0aGlzLm9wdGlvbnMpLl9jaGVja0ZpZWxkKHtcbiAgICAgICAgZmllbGRHcm91cDogdGhpcy5maWVsZHMsXG4gICAgICAgIG1vZGVsOiB0aGlzLm1vZGVsLFxuICAgICAgICBmb3JtQ29udHJvbDogdGhpcy5mb3JtLFxuICAgICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRyYWNrTW9kZWxDaGFuZ2VzKGZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXSwgcm9vdEtleTogc3RyaW5nW10gPSBbXSkge1xuICAgIGZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgIGlmIChmaWVsZC5rZXkgJiYgIWZpZWxkLmZpZWxkR3JvdXApIHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IGZpZWxkLmZvcm1Db250cm9sO1xuICAgICAgICBsZXQgdmFsdWVDaGFuZ2VzID0gY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoeCwgeSkgPT4ge1xuICAgICAgICAgICAgaWYgKHggIT09IHkgfHwgQXJyYXkuaXNBcnJheSh4KSB8fCBpc09iamVjdCh4KSkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHsgdXBkYXRlT24sIGRlYm91bmNlIH0gPSBmaWVsZC5tb2RlbE9wdGlvbnM7XG4gICAgICAgIGlmICgoIXVwZGF0ZU9uIHx8IHVwZGF0ZU9uID09PSAnY2hhbmdlJykgJiYgZGVib3VuY2UgJiYgZGVib3VuY2UuZGVmYXVsdCA+IDApIHtcbiAgICAgICAgICB2YWx1ZUNoYW5nZXMgPSBjb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZShkZWJvdW5jZS5kZWZhdWx0KSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlU3Vicy5wdXNoKHZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgLy8gd29ya2Fyb3VuZCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTM3OTJcbiAgICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sICYmIGNvbnRyb2xbJ19maWVsZHMnXSAmJiBjb250cm9sWydfZmllbGRzJ10ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgY29udHJvbC5wYXRjaFZhbHVlKHZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChmaWVsZC5wYXJzZXJzICYmIGZpZWxkLnBhcnNlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZmllbGQucGFyc2Vycy5mb3JFYWNoKHBhcnNlckZuID0+IHZhbHVlID0gcGFyc2VyRm4odmFsdWUpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmNoYW5nZU1vZGVsKHsga2V5OiBbLi4ucm9vdEtleSwgLi4uZ2V0S2V5UGF0aChmaWVsZCldLmpvaW4oJy4nKSwgdmFsdWUsIGZpZWxkIH0pO1xuICAgICAgICB9KSk7XG5cbiAgICAgICAgLy8gd29ya2Fyb3VuZCBmb3IgdjUgKGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3gtZm9ybWx5L25neC1mb3JtbHkvaXNzdWVzLzIwNjEpXG4gICAgICAgIGNvbnN0IG9ic2VydmVycyA9IGNvbnRyb2wudmFsdWVDaGFuZ2VzWydvYnNlcnZlcnMnXTtcbiAgICAgICAgaWYgKG9ic2VydmVycyAmJiBvYnNlcnZlcnMubGVuZ3RoID4gMSkge1xuICAgICAgICAgIG9ic2VydmVycy51bnNoaWZ0KG9ic2VydmVycy5wb3AoKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGZpZWxkLmZpZWxkR3JvdXAgJiYgZmllbGQuZmllbGRHcm91cC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMudHJhY2tNb2RlbENoYW5nZXMoZmllbGQuZmllbGRHcm91cCwgZmllbGQua2V5ID8gWy4uLnJvb3RLZXksIC4uLmdldEtleVBhdGgoZmllbGQpXSA6IHJvb3RLZXkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhck1vZGVsU3Vic2NyaXB0aW9ucygpIHtcbiAgICB0aGlzLm1vZGVsQ2hhbmdlU3Vicy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gICAgdGhpcy5tb2RlbENoYW5nZVN1YnMgPSBbXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGZpZWxkKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRzICYmIHRoaXMuZmllbGRzWzBdICYmIHRoaXMuZmllbGRzWzBdLnBhcmVudDtcbiAgfVxufVxuIl19
|
|
418
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LmZvcm0uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4LWZvcm1seS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZm9ybWx5LmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXNCLEtBQUssRUFBaUIsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pLLE9BQU8sRUFBRSxTQUFTLEVBQWEsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUgsT0FBTyxFQUFnQixPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBa0I5RCxNQUFNLE9BQU8sVUFBVTs7Ozs7Ozs7SUEyRHJCLFlBQ1UsYUFBZ0MsRUFDaEMsWUFBMEIsRUFDMUIsTUFBYztJQUN0QiwyQkFBMkI7SUFDSCxTQUFTLEVBQ2IsZUFBbUM7UUFML0Msa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQ2hDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFHRixvQkFBZSxHQUFmLGVBQWUsQ0FBb0I7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Ozs7SUFHRixtQ0FBd0M7Ozs7O0lBQ3hDLGtDQUFrQzs7Ozs7SUFDbEMsNEJBQXNCOzs7OztJQUd0QixxQ0FBdUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIERvQ2hlY2ssIE9uQ2hhbmdlcywgSW5wdXQsIFNpbXBsZUNoYW5nZXMsIE9wdGlvbmFsLCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgT25EZXN0cm95LCBBdHRyaWJ1dGUsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1BcnJheSwgRm9ybUdyb3VwRGlyZWN0aXZlLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnLCBGb3JtbHlGb3JtT3B0aW9ucywgRm9ybWx5Rm9ybU9wdGlvbnNDYWNoZSB9IGZyb20gJy4vZm9ybWx5LmZpZWxkLmNvbmZpZyc7XG5pbXBvcnQgeyBGb3JtbHlGb3JtQnVpbGRlciB9IGZyb20gJy4uL3NlcnZpY2VzL2Zvcm1seS5mb3JtLmJ1aWxkZXInO1xuaW1wb3J0IHsgRm9ybWx5Q29uZmlnIH0gZnJvbSAnLi4vc2VydmljZXMvZm9ybWx5LmNvbmZpZyc7XG5pbXBvcnQgeyBhc3NpZ25GaWVsZFZhbHVlLCBpc051bGxPclVuZGVmaW5lZCwgd3JhcFByb3BlcnR5LCBjbG9uZSwgZGVmaW5lSGlkZGVuUHJvcCwgZ2V0S2V5UGF0aCwgaXNPYmplY3QgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgc3dpdGNoTWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNsZWFyQ29udHJvbCB9IGZyb20gJy4uL2V4dGVuc2lvbnMvZmllbGQtZm9ybS91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm1seS1mb3JtJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8Zm9ybWx5LWZpZWxkICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBmaWVsZHNcIlxuICAgICAgaGlkZS1kZXByZWNhdGlvblxuICAgICAgW2Zvcm1dPVwiZmllbGQuZm9ybVwiXG4gICAgICBbb3B0aW9uc109XCJmaWVsZC5vcHRpb25zXCJcbiAgICAgIFttb2RlbF09XCJmaWVsZC5tb2RlbFwiXG4gICAgICBbZmllbGRdPVwiZmllbGRcIj5cbiAgICA8L2Zvcm1seS1maWVsZD5cbiAgICA8bmctY29udGFpbmVyICNjb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvbmctY29udGFpbmVyPlxuICBgLFxuICBwcm92aWRlcnM6IFtGb3JtbHlGb3JtQnVpbGRlcl0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1seUZvcm0gaW1wbGVtZW50cyBEb0NoZWNrLCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cCB8IEZvcm1BcnJheTtcblxuICBASW5wdXQoKVxuICBzZXQgbW9kZWwobW9kZWw6IGFueSkgeyB0aGlzLl9tb2RlbCA9IHRoaXMuaW1tdXRhYmxlID8gY2xvbmUobW9kZWwpIDogbW9kZWw7IH1cbiAgZ2V0IG1vZGVsKCkge1xuICAgIGlmICghdGhpcy5fbW9kZWwpIHtcbiAgICAgIHRoaXMuX21vZGVsID0ge307XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX21vZGVsO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGZpZWxkcyhmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10pIHsgdGhpcy5fZmllbGRzID0gdGhpcy5pbW11dGFibGUgPyBjbG9uZShmaWVsZHMpIDogZmllbGRzOyB9XG4gIGdldCBmaWVsZHMoKSB7IHJldHVybiB0aGlzLl9maWVsZHMgfHwgW107IH1cblxuICBASW5wdXQoKVxuICBzZXQgb3B0aW9ucyhvcHRpb25zOiBGb3JtbHlGb3JtT3B0aW9ucykgeyB0aGlzLl9vcHRpb25zID0gdGhpcy5pbW11dGFibGUgPyBjbG9uZShvcHRpb25zKSA6IG9wdGlvbnM7IH1cbiAgZ2V0IG9wdGlvbnMoKSB7IHJldHVybiB0aGlzLl9vcHRpb25zOyB9XG5cbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnKSBzZXQgY29udGVudChjb250ZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgIGlmIChjb250ZW50KSB7XG4gICAgICBsZXQgaGFzQ29udGVudCA9IGZhbHNlO1xuICAgICAgbGV0IG5vZGUgPSBjb250ZW50Lm5hdGl2ZUVsZW1lbnQubmV4dFNpYmxpbmc7XG4gICAgICB3aGlsZSAobm9kZSAmJiAhaGFzQ29udGVudCkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgbm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREVcbiAgICAgICAgICB8fCBub2RlLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSAmJiBub2RlLnRleHRDb250ZW50ICYmIG5vZGUudGV4dENvbnRlbnQudHJpbSgpICE9PSAnJ1xuICAgICAgICApIHtcbiAgICAgICAgICBoYXNDb250ZW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGUgPSBub2RlLm5leHRTaWJsaW5nO1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzQ29udGVudCkge1xuICAgICAgICBjb25zb2xlLndhcm4oYE5neEZvcm1seTogY29udGVudCBwcm9qZWN0aW9uIGZvciAnZm9ybWx5LWZvcm0nIGNvbXBvbmVudCBpcyBkZXByZWNhdGVkIHNpbmNlIHY1LjUsIHlvdSBzaG91bGQgYXZvaWQgcGFzc2luZyBjb250ZW50IGluc2lkZSB0aGUgJ2Zvcm1seS1mb3JtJyB0YWcuYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbW11dGFibGUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbW9kZWw6IGFueTtcbiAgcHJpdmF0ZSBfbW9kZWxDaGFuZ2VWYWx1ZTogYW55ID0ge307XG4gIHByaXZhdGUgX2ZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXTtcbiAgcHJpdmF0ZSBfb3B0aW9uczogRm9ybWx5Rm9ybU9wdGlvbnM7XG4gIHByaXZhdGUgbW9kZWxDaGFuZ2VTdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBwcml2YXRlIG1vZGVsQ2hhbmdlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgbW9kZWxDaGFuZ2VTdWIgPSB0aGlzLm1vZGVsQ2hhbmdlJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLm5nWm9uZS5vblN0YWJsZS5hc09ic2VydmFibGUoKS5waXBlKHRha2UoMSkpKSxcbiAgKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5uZ1pvbmUucnVuR3VhcmRlZCgoKSA9PiB7XG4gICAgLy8gcnVuR3VhcmRlZCBpcyB1c2VkIHRvIGtlZXAgdGhlIGV4cHJlc3Npb24gY2hhbmdlcyBpbi1zeW5jXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL25neC1mb3JtbHkvbmd4LWZvcm1seS9pc3N1ZXMvMjA5NVxuICAgIHRoaXMuY2hlY2tFeHByZXNzaW9uQ2hhbmdlKCk7XG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHRoaXMuX21vZGVsQ2hhbmdlVmFsdWUgPSBjbG9uZSh0aGlzLm1vZGVsKSk7XG4gIH0pKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZvcm1seUJ1aWxkZXI6IEZvcm1seUZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgZm9ybWx5Q29uZmlnOiBGb3JtbHlDb25maWcsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBAQXR0cmlidXRlKCdpbW11dGFibGUnKSBpbW11dGFibGUsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgKSB7XG4gICAgaWYgKGltbXV0YWJsZSAhPT0gbnVsbCkge1xuICAgICAgY29uc29sZS53YXJuKGBOZ3hGb3JtbHk6IHBhc3NpbmcgJ2ltbXV0YWJsZScgYXR0cmlidXRlIHRvICdmb3JtbHktZm9ybScgY29tcG9uZW50IGlzIGRlcHJlY2F0ZWQgc2luY2UgdjUuNSwgZW5hYmxlIGltbXV0YWJsZSBtb2RlIHRocm91Z2ggTmdNb2R1bGUgZGVjbGFyYXRpb24gaW5zdGVhZC5gKTtcbiAgICB9XG5cbiAgICB0aGlzLmltbXV0YWJsZSA9IChpbW11dGFibGUgIT09IG51bGwpIHx8ICEhZm9ybWx5Q29uZmlnLmV4dHJhcy5pbW11dGFibGU7XG4gIH1cblxuICBuZ0RvQ2hlY2soKSB7XG4gICAgaWYgKHRoaXMuZm9ybWx5Q29uZmlnLmV4dHJhcy5jaGVja0V4cHJlc3Npb25PbiA9PT0gJ2NoYW5nZURldGVjdGlvbkNoZWNrJykge1xuICAgICAgdGhpcy5jaGVja0V4cHJlc3Npb25DaGFuZ2UoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL25neC1mb3JtbHkvbmd4LWZvcm1seS9pc3N1ZXMvMjI5NFxuICAgIGlmIChjaGFuZ2VzLm1vZGVsICYmIHRoaXMuZmllbGQpIHtcbiAgICAgIHRoaXMuZmllbGQubW9kZWwgPSB0aGlzLm1vZGVsO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLmZpZWxkcyAmJiB0aGlzLmZvcm0pIHtcbiAgICAgIGNsZWFyQ29udHJvbCh0aGlzLmZvcm0pO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLmZpZWxkcyB8fCBjaGFuZ2VzLmZvcm0gfHwgKGNoYW5nZXMubW9kZWwgJiYgdGhpcy5fbW9kZWxDaGFuZ2VWYWx1ZSAhPT0gY2hhbmdlcy5tb2RlbC5jdXJyZW50VmFsdWUpKSB7XG4gICAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm0gfHwgKG5ldyBGb3JtR3JvdXAoe30pKTtcbiAgICAgIHRoaXMuc2V0T3B0aW9ucygpO1xuICAgICAgdGhpcy5vcHRpb25zLnVwZGF0ZUluaXRpYWxWYWx1ZSgpO1xuICAgICAgdGhpcy5jbGVhck1vZGVsU3Vic2NyaXB0aW9ucygpO1xuICAgICAgdGhpcy5mb3JtbHlCdWlsZGVyLmJ1aWxkRm9ybSh0aGlzLmZvcm0sIHRoaXMuZmllbGRzLCB0aGlzLm1vZGVsLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgdGhpcy50cmFja01vZGVsQ2hhbmdlcyh0aGlzLmZpZWxkcyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5tb2RlbENoYW5nZVN1Yi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2xlYXJNb2RlbFN1YnNjcmlwdGlvbnMoKTtcbiAgfVxuXG4gIGNoYW5nZU1vZGVsKHsga2V5LCB2YWx1ZSwgZmllbGQgfTogeyBrZXk6IHN0cmluZywgdmFsdWU6IGFueSwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnIH0pIHtcbiAgICBhc3NpZ25GaWVsZFZhbHVlKGZpZWxkLCB2YWx1ZSk7XG4gICAgdGhpcy5tb2RlbENoYW5nZSQubmV4dCgpO1xuICB9XG5cbiAgc2V0T3B0aW9ucygpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucykge1xuICAgICAgdGhpcy5vcHRpb25zID0ge307XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMucmVzZXRNb2RlbCkge1xuICAgICAgdGhpcy5vcHRpb25zLnJlc2V0TW9kZWwgPSAobW9kZWwgPzogYW55KSA9PiB7XG4gICAgICAgIG1vZGVsID0gY2xvbmUoaXNOdWxsT3JVbmRlZmluZWQobW9kZWwpID8gKDxGb3JtbHlGb3JtT3B0aW9uc0NhY2hlPiB0aGlzLm9wdGlvbnMpLl9pbml0aWFsTW9kZWwgOiBtb2RlbCk7XG4gICAgICAgIGlmICh0aGlzLm1vZGVsKSB7XG4gICAgICAgICAgT2JqZWN0LmtleXModGhpcy5tb2RlbCkuZm9yRWFjaChrID0+IGRlbGV0ZSB0aGlzLm1vZGVsW2tdKTtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMubW9kZWwsIG1vZGVsIHx8IHt9KTtcbiAgICAgICAgfVxuXG4gICAgICAgICg8Rm9ybWx5Rm9ybU9wdGlvbnNDYWNoZT4gdGhpcy5vcHRpb25zKS5fYnVpbGRGb3JtKCk7XG5cbiAgICAgICAgLy8gd2Ugc2hvdWxkIGNhbGwgYE5nRm9ybTo6cmVzZXRGb3JtYCB0byBlbnN1cmUgY2hhbmdpbmcgYHN1Ym1pdHRlZGAgc3RhdGUgYWZ0ZXIgcmVzZXR0aW5nIGZvcm1cbiAgICAgICAgLy8gYnV0IG9ubHkgd2hlbiB0aGUgY3VycmVudCBjb21wb25lbnQgaXMgYSByb290IG9uZS5cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5wYXJlbnRGb3JtICYmIHRoaXMub3B0aW9ucy5wYXJlbnRGb3JtLmNvbnRyb2wgPT09IHRoaXMuZm9ybSkge1xuICAgICAgICAgIHRoaXMub3B0aW9ucy5wYXJlbnRGb3JtLnJlc2V0Rm9ybSh0aGlzLm1vZGVsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmZvcm0ucmVzZXQodGhpcy5tb2RlbCk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMucGFyZW50Rm9ybSAmJiB0aGlzLnBhcmVudEZvcm1Hcm91cCkge1xuICAgICAgZGVmaW5lSGlkZGVuUHJvcCh0aGlzLm9wdGlvbnMsICdwYXJlbnRGb3JtJywgdGhpcy5wYXJlbnRGb3JtR3JvdXApO1xuICAgICAgd3JhcFByb3BlcnR5KHRoaXMub3B0aW9ucy5wYXJlbnRGb3JtLCAnc3VibWl0dGVkJywgKHsgZmlyc3RDaGFuZ2UgfSkgPT4ge1xuICAgICAgICBpZiAoIWZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgdGhpcy5jaGVja0V4cHJlc3Npb25DaGFuZ2UoKTtcbiAgICAgICAgICAoPEZvcm1seUZvcm1PcHRpb25zQ2FjaGU+IHRoaXMub3B0aW9ucykuX21hcmtGb3JDaGVjayh7XG4gICAgICAgICAgICBmaWVsZEdyb3VwOiB0aGlzLmZpZWxkcyxcbiAgICAgICAgICAgIG1vZGVsOiB0aGlzLm1vZGVsLFxuICAgICAgICAgICAgZm9ybUNvbnRyb2w6IHRoaXMuZm9ybSxcbiAgICAgICAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMudXBkYXRlSW5pdGlhbFZhbHVlKSB7XG4gICAgICB0aGlzLm9wdGlvbnMudXBkYXRlSW5pdGlhbFZhbHVlID0gKCkgPT4gKDxGb3JtbHlGb3JtT3B0aW9uc0NhY2hlPiB0aGlzLm9wdGlvbnMpLl9pbml0aWFsTW9kZWwgPSBjbG9uZSh0aGlzLm1vZGVsKTtcbiAgICB9XG5cbiAgICBpZiAoISg8Rm9ybWx5Rm9ybU9wdGlvbnNDYWNoZT4gdGhpcy5vcHRpb25zKS5fYnVpbGRGb3JtKSB7XG4gICAgICAoPEZvcm1seUZvcm1PcHRpb25zQ2FjaGU+IHRoaXMub3B0aW9ucykuX2J1aWxkRm9ybSA9IChlbWl0TW9kZWxDaGFuZ2UgPSBmYWxzZSkgPT4ge1xuICAgICAgICB0aGlzLmNsZWFyTW9kZWxTdWJzY3JpcHRpb25zKCk7XG4gICAgICAgIHRoaXMuZm9ybWx5QnVpbGRlci5idWlsZEZvcm0odGhpcy5mb3JtLCB0aGlzLmZpZWxkcywgdGhpcy5tb2RlbCwgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgdGhpcy50cmFja01vZGVsQ2hhbmdlcyh0aGlzLmZpZWxkcyk7XG5cbiAgICAgICAgaWYgKGVtaXRNb2RlbENoYW5nZSkge1xuICAgICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLl9tb2RlbENoYW5nZVZhbHVlID0gY2xvbmUodGhpcy5tb2RlbCkpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tFeHByZXNzaW9uQ2hhbmdlKCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMgJiYgKDxGb3JtbHlGb3JtT3B0aW9uc0NhY2hlPiB0aGlzLm9wdGlvbnMpLl9jaGVja0ZpZWxkKSB7XG4gICAgICAoPEZvcm1seUZvcm1PcHRpb25zQ2FjaGU+IHRoaXMub3B0aW9ucykuX2NoZWNrRmllbGQoe1xuICAgICAgICBmaWVsZEdyb3VwOiB0aGlzLmZpZWxkcyxcbiAgICAgICAgbW9kZWw6IHRoaXMubW9kZWwsXG4gICAgICAgIGZvcm1Db250cm9sOiB0aGlzLmZvcm0sXG4gICAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdHJhY2tNb2RlbENoYW5nZXMoZmllbGRzOiBGb3JtbHlGaWVsZENvbmZpZ1tdLCByb290S2V5OiBzdHJpbmdbXSA9IFtdKSB7XG4gICAgZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgaWYgKGZpZWxkLmtleSAmJiAhZmllbGQuZmllbGRHcm91cCAmJiBmaWVsZC5mb3JtQ29udHJvbCkge1xuICAgICAgICBjb25zdCBjb250cm9sID0gZmllbGQuZm9ybUNvbnRyb2w7XG4gICAgICAgIGxldCB2YWx1ZUNoYW5nZXMgPSBjb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCh4LCB5KSA9PiB7XG4gICAgICAgICAgICBpZiAoeCAhPT0geSB8fCBBcnJheS5pc0FycmF5KHgpIHx8IGlzT2JqZWN0KHgpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgeyB1cGRhdGVPbiwgZGVib3VuY2UgfSA9IGZpZWxkLm1vZGVsT3B0aW9ucztcbiAgICAgICAgaWYgKCghdXBkYXRlT24gfHwgdXBkYXRlT24gPT09ICdjaGFuZ2UnKSAmJiBkZWJvdW5jZSAmJiBkZWJvdW5jZS5kZWZhdWx0ID4gMCkge1xuICAgICAgICAgIHZhbHVlQ2hhbmdlcyA9IGNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKGRlYm91bmNlLmRlZmF1bHQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubW9kZWxDaGFuZ2VTdWJzLnB1c2godmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAvLyB3b3JrYXJvdW5kIGZvciBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMzc5MlxuICAgICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wgJiYgY29udHJvbFsnX2ZpZWxkcyddICYmIGNvbnRyb2xbJ19maWVsZHMnXS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICBjb250cm9sLnBhdGNoVmFsdWUodmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSwgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGZpZWxkLnBhcnNlcnMgJiYgZmllbGQucGFyc2Vycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBmaWVsZC5wYXJzZXJzLmZvckVhY2gocGFyc2VyRm4gPT4gdmFsdWUgPSBwYXJzZXJGbih2YWx1ZSkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuY2hhbmdlTW9kZWwoeyBrZXk6IFsuLi5yb290S2V5LCAuLi5nZXRLZXlQYXRoKGZpZWxkKV0uam9pbignLicpLCB2YWx1ZSwgZmllbGQgfSk7XG4gICAgICAgIH0pKTtcblxuICAgICAgICAvLyB3b3JrYXJvdW5kIGZvciB2NSAoaHR0cHM6Ly9naXRodWIuY29tL25neC1mb3JtbHkvbmd4LWZvcm1seS9pc3N1ZXMvMjA2MSlcbiAgICAgICAgY29uc3Qgb2JzZXJ2ZXJzID0gY29udHJvbC52YWx1ZUNoYW5nZXNbJ29ic2VydmVycyddO1xuICAgICAgICBpZiAob2JzZXJ2ZXJzICYmIG9ic2VydmVycy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgb2JzZXJ2ZXJzLnVuc2hpZnQob2JzZXJ2ZXJzLnBvcCgpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZmllbGQuZmllbGRHcm91cCAmJiBmaWVsZC5maWVsZEdyb3VwLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy50cmFja01vZGVsQ2hhbmdlcyhmaWVsZC5maWVsZEdyb3VwLCBmaWVsZC5rZXkgPyBbLi4ucm9vdEtleSwgLi4uZ2V0S2V5UGF0aChmaWVsZCldIDogcm9vdEtleSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyTW9kZWxTdWJzY3JpcHRpb25zKCkge1xuICAgIHRoaXMubW9kZWxDaGFuZ2VTdWJzLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLm1vZGVsQ2hhbmdlU3VicyA9IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZmllbGQoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5maWVsZHMgJiYgdGhpcy5maWVsZHNbMF0gJiYgdGhpcy5maWVsZHNbMF0ucGFyZW50O1xuICB9XG59XG4iXX0=
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { isObject, isNullOrUndefined, isUndefined, isFunction, defineHiddenProp, wrapProperty, reduceFormUpdateValidityCalls, getFieldValue, assignFieldValue } from '../../utils';
|
|
6
6
|
import { evalExpression, evalStringExpression } from './utils';
|
|
7
|
-
import { Observable } from 'rxjs';
|
|
7
|
+
import { isObservable, Observable } from 'rxjs';
|
|
8
8
|
import { unregisterControl, registerControl, updateValidity } from '../field-form/utils';
|
|
9
9
|
import { FormArray } from '@angular/forms';
|
|
10
10
|
/**
|
|
@@ -185,7 +185,8 @@ export class FieldExpressionExtension {
|
|
|
185
185
|
* @return {?}
|
|
186
186
|
*/
|
|
187
187
|
checkField(field, ignoreCache = false) {
|
|
188
|
-
|
|
188
|
+
/** @type {?} */
|
|
189
|
+
const fieldChanged = this._checkField(field, ignoreCache);
|
|
189
190
|
field.options._hiddenFieldsForCheck
|
|
190
191
|
.sort((/**
|
|
191
192
|
* @param {?} f
|
|
@@ -198,6 +199,12 @@ export class FieldExpressionExtension {
|
|
|
198
199
|
*/
|
|
199
200
|
f => this.toggleFormControl(f, !!f.hide, !ignoreCache)));
|
|
200
201
|
field.options._hiddenFieldsForCheck = [];
|
|
202
|
+
if (fieldChanged) {
|
|
203
|
+
this.checkField(field);
|
|
204
|
+
if (field.options && field.options._markForCheck) {
|
|
205
|
+
field.options._markForCheck(field);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
201
208
|
}
|
|
202
209
|
/**
|
|
203
210
|
* @private
|
|
@@ -207,24 +214,25 @@ export class FieldExpressionExtension {
|
|
|
207
214
|
*/
|
|
208
215
|
_checkField(field, ignoreCache = false) {
|
|
209
216
|
/** @type {?} */
|
|
210
|
-
let
|
|
217
|
+
let fieldChanged = false;
|
|
211
218
|
field.fieldGroup.forEach((/**
|
|
212
219
|
* @param {?} f
|
|
213
220
|
* @return {?}
|
|
214
221
|
*/
|
|
215
222
|
f => {
|
|
216
|
-
|
|
223
|
+
if (!f.options) {
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
this.checkFieldExpressionChange(f, ignoreCache) && (fieldChanged = true);
|
|
217
227
|
if (this.checkFieldVisibilityChange(f, ignoreCache)) {
|
|
218
228
|
field.options._hiddenFieldsForCheck.push(f);
|
|
219
|
-
|
|
229
|
+
fieldChanged = true;
|
|
220
230
|
}
|
|
221
231
|
if (f.fieldGroup && f.fieldGroup.length > 0) {
|
|
222
|
-
this._checkField(f, ignoreCache);
|
|
232
|
+
this._checkField(f, ignoreCache) && (fieldChanged = true);
|
|
223
233
|
}
|
|
224
234
|
}));
|
|
225
|
-
|
|
226
|
-
field.options._markForCheck(field);
|
|
227
|
-
}
|
|
235
|
+
return fieldChanged;
|
|
228
236
|
}
|
|
229
237
|
/**
|
|
230
238
|
* @private
|
|
@@ -247,7 +255,9 @@ export class FieldExpressionExtension {
|
|
|
247
255
|
expressionValue = !!expressionValue;
|
|
248
256
|
}
|
|
249
257
|
if (ignoreCache || (expressionProperties[key].expressionValue !== expressionValue
|
|
250
|
-
&& (!isObject(expressionValue)
|
|
258
|
+
&& (!isObject(expressionValue)
|
|
259
|
+
|| isObservable(expressionValue)
|
|
260
|
+
|| JSON.stringify(expressionValue) !== JSON.stringify(expressionProperties[key].expressionValue)))) {
|
|
251
261
|
markForCheck = true;
|
|
252
262
|
expressionProperties[key].expressionValue = expressionValue;
|
|
253
263
|
this.setExprValue(field, key, expressionValue);
|
|
@@ -313,14 +323,14 @@ export class FieldExpressionExtension {
|
|
|
313
323
|
defineHiddenProp(field, '_hide', !!(hide || field.hide));
|
|
314
324
|
/** @type {?} */
|
|
315
325
|
const c = field.formControl;
|
|
316
|
-
if (c['_fields'].length > 1) {
|
|
326
|
+
if (c['_fields'] && c['_fields'].length > 1) {
|
|
317
327
|
updateValidity(c);
|
|
318
328
|
}
|
|
319
|
-
if (hide === true && c['_fields'].every((/**
|
|
329
|
+
if (hide === true && (!c['_fields'] || c['_fields'].every((/**
|
|
320
330
|
* @param {?} f
|
|
321
331
|
* @return {?}
|
|
322
332
|
*/
|
|
323
|
-
f => !!f._hide))) {
|
|
333
|
+
f => !!f._hide)))) {
|
|
324
334
|
unregisterControl(field, true);
|
|
325
335
|
if (resetOnHide && field.resetOnHide) {
|
|
326
336
|
field.formControl.reset({ value: undefined, disabled: field.formControl.disabled });
|
|
@@ -371,7 +381,16 @@ export class FieldExpressionExtension {
|
|
|
371
381
|
/** @type {?} */
|
|
372
382
|
let target = field;
|
|
373
383
|
/** @type {?} */
|
|
374
|
-
const paths =
|
|
384
|
+
const paths = prop.indexOf('[') === -1
|
|
385
|
+
? prop.split('.')
|
|
386
|
+
: prop
|
|
387
|
+
.replace(/\'|\"/g, '')
|
|
388
|
+
.split(/[[\]]{1,2}/) // https://stackoverflow.com/a/20198206
|
|
389
|
+
.filter((/**
|
|
390
|
+
* @param {?} v
|
|
391
|
+
* @return {?}
|
|
392
|
+
*/
|
|
393
|
+
v => v));
|
|
375
394
|
/** @type {?} */
|
|
376
395
|
const lastIndex = paths.length - 1;
|
|
377
396
|
for (let i = 0; i < lastIndex; i++) {
|
|
@@ -394,7 +413,7 @@ export class FieldExpressionExtension {
|
|
|
394
413
|
if (control
|
|
395
414
|
&& !(isNullOrUndefined(control.value) && isNullOrUndefined(value))
|
|
396
415
|
&& control.value !== value) {
|
|
397
|
-
control.patchValue(value
|
|
416
|
+
control.patchValue(value);
|
|
398
417
|
}
|
|
399
418
|
}
|
|
400
419
|
this.emitExpressionChanges(field, prop, value);
|
|
@@ -418,4 +437,4 @@ export class FieldExpressionExtension {
|
|
|
418
437
|
});
|
|
419
438
|
}
|
|
420
439
|
}
|
|
421
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZXhwcmVzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3gtZm9ybWx5L2NvcmUvIiwic291cmNlcyI6WyJsaWIvZXh0ZW5zaW9ucy9maWVsZC1leHByZXNzaW9uL2ZpZWxkLWV4cHJlc3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsNkJBQTZCLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25MLE9BQU8sRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFHM0MsTUFBTSxPQUFPLHdCQUF3Qjs7Ozs7SUFDbkMsV0FBVyxDQUFDLEtBQTZCO1FBQ3ZDLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUM3QyxPQUFPO1NBQ1I7O1lBRUcsV0FBVyxHQUFHLEtBQUs7UUFDdkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXOzs7OztRQUFHLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxFQUFFO1lBQzdDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ2hCLFdBQVcsR0FBRyxJQUFJLENBQUM7Z0JBQ25CLDZCQUE2QixDQUMzQixDQUFDLENBQUMsV0FBVzs7O2dCQUNiLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxFQUN0QyxDQUFDO2dCQUNGLFdBQVcsR0FB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QUUsUUFBZ0IsRUFBRSxLQUFVO1FBQ3ZGLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUMvQixPQUFPO1NBQ1I7UUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDOUIsS0FBSyxFQUFFLEtBQUs7WUFDWixJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLFFBQVE7WUFDUixLQUFLO1NBQ04sQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seVZhbHVlQ2hhbmdlRXZlbnQsIEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Zvcm1seS5maWVsZC5jb25maWcnO1xuaW1wb3J0IHsgaXNPYmplY3QsIGlzTnVsbE9yVW5kZWZpbmVkLCBpc1VuZGVmaW5lZCwgaXNGdW5jdGlvbiwgZGVmaW5lSGlkZGVuUHJvcCwgd3JhcFByb3BlcnR5LCByZWR1Y2VGb3JtVXBkYXRlVmFsaWRpdHlDYWxscywgZ2V0RmllbGRWYWx1ZSwgYXNzaWduRmllbGRWYWx1ZSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IGV2YWxFeHByZXNzaW9uLCBldmFsU3RyaW5nRXhwcmVzc2lvbiB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtbHlFeHRlbnNpb24gfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtbHkuY29uZmlnJztcbmltcG9ydCB7IHVucmVnaXN0ZXJDb250cm9sLCByZWdpc3RlckNvbnRyb2wsIHVwZGF0ZVZhbGlkaXR5IH0gZnJvbSAnLi4vZmllbGQtZm9ybS91dGlscyc7XG5pbXBvcnQgeyBGb3JtQXJyYXkgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8qKiBAZXhwZXJpbWVudGFsICovXG5leHBvcnQgY2xhc3MgRmllbGRFeHByZXNzaW9uRXh0ZW5zaW9uIGltcGxlbWVudHMgRm9ybWx5RXh0ZW5zaW9uIHtcbiAgcHJlUG9wdWxhdGUoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUpIHtcbiAgICBpZiAoZmllbGQucGFyZW50IHx8IGZpZWxkLm9wdGlvbnMuX2NoZWNrRmllbGQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY2hlY2tMb2NrZWQgPSBmYWxzZTtcbiAgICBmaWVsZC5vcHRpb25zLl9jaGVja0ZpZWxkID0gKGYsIGlnbm9yZUNhY2hlKSA9PiB7XG4gICAgICBpZiAoIWNoZWNrTG9ja2VkKSB7XG4gICAgICAgIGNoZWNrTG9ja2VkID0gdHJ1ZTtcbiAgICAgICAgcmVkdWNlRm9ybVVwZGF0ZVZhbGlkaXR5Q2FsbHMoXG4gICAgICAgICAgZi5mb3JtQ29udHJvbCxcbiAgICAgICAgICAoKSA9PiB0aGlzLmNoZWNrRmllbGQoZiwgaWdub3JlQ2FjaGUpLFxuICAgICAgICApO1xuICAgICAgICBjaGVja0xvY2tlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBwb3N0UG9wdWxhdGUoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUpIHtcbiAgICBpZiAoIWZpZWxkLnBhcmVudCB8fCBmaWVsZC5fZXhwcmVzc2lvblByb3BlcnRpZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBjYWNoZSBidWlsdCBleHByZXNzaW9uXG4gICAgZGVmaW5lSGlkZGVuUHJvcChmaWVsZCwgJ19leHByZXNzaW9uUHJvcGVydGllcycsIHt9KTtcblxuICAgIGlmIChmaWVsZC5leHByZXNzaW9uUHJvcGVydGllcykge1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gZmllbGQuZXhwcmVzc2lvblByb3BlcnRpZXMpIHtcbiAgICAgICAgY29uc3QgZXhwcmVzc2lvblByb3BlcnR5ID0gZmllbGQuZXhwcmVzc2lvblByb3BlcnRpZXNba2V5XTtcblxuICAgICAgICBpZiAodHlwZW9mIGV4cHJlc3Npb25Qcm9wZXJ0eSA9PT0gJ3N0cmluZycgfHwgaXNGdW5jdGlvbihleHByZXNzaW9uUHJvcGVydHkpKSB7XG4gICAgICAgICAgZmllbGQuX2V4cHJlc3Npb25Qcm9wZXJ0aWVzW2tleV0gPSB7XG4gICAgICAgICAgICBleHByZXNzaW9uOiB0aGlzLl9ldmFsRXhwcmVzc2lvbihcbiAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICBleHByZXNzaW9uUHJvcGVydHksXG4gICAgICAgICAgICAgIGtleSA9PT0gJ3RlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCcgJiYgZmllbGQucGFyZW50LmV4cHJlc3Npb25Qcm9wZXJ0aWVzICYmIGZpZWxkLnBhcmVudC5leHByZXNzaW9uUHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eSgndGVtcGxhdGVPcHRpb25zLmRpc2FibGVkJylcbiAgICAgICAgICAgICAgICA/ICgpID0+IGZpZWxkLnBhcmVudC50ZW1wbGF0ZU9wdGlvbnMuZGlzYWJsZWRcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAoa2V5ID09PSAndGVtcGxhdGVPcHRpb25zLmRpc2FibGVkJykge1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGZpZWxkLl9leHByZXNzaW9uUHJvcGVydGllc1trZXldLCAnZXhwcmVzc2lvblZhbHVlJywge1xuICAgICAgICAgICAgICBnZXQ6ICgpID0+IGZpZWxkLnRlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgc2V0OiAoKSA9PiB7IH0sXG4gICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChleHByZXNzaW9uUHJvcGVydHkgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XG4gICAgICAgICAgY29uc3Qgc3Vic2NyaWJlID0gKCkgPT4gKGV4cHJlc3Npb25Qcm9wZXJ0eSBhcyBPYnNlcnZhYmxlPGFueT4pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHYgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNldEV4cHJWYWx1ZShmaWVsZCwga2V5LCB2KTtcbiAgICAgICAgICAgICAgaWYgKGZpZWxkLm9wdGlvbnMgJiYgZmllbGQub3B0aW9ucy5fbWFya0ZvckNoZWNrKSB7XG4gICAgICAgICAgICAgICAgZmllbGQub3B0aW9ucy5fbWFya0ZvckNoZWNrKGZpZWxkKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICBsZXQgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBzdWJzY3JpYmUoKTtcbiAgICAgICAgICBjb25zdCBvbkluaXQgPSBmaWVsZC5ob29rcy5vbkluaXQ7XG4gICAgICAgICAgZmllbGQuaG9va3Mub25Jbml0ID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHN1YnNjcmlwdGlvbiA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICBzdWJzY3JpcHRpb24gPSBzdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvbkluaXQgJiYgb25Jbml0KGZpZWxkKTtcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgY29uc3Qgb25EZXN0cm95ID0gZmllbGQuaG9va3Mub25EZXN0cm95O1xuICAgICAgICAgIGZpZWxkLmhvb2tzLm9uRGVzdHJveSA9ICgpID0+IHtcbiAgICAgICAgICAgIG9uRGVzdHJveSAmJiBvbkRlc3Ryb3koZmllbGQpO1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24gPSBudWxsO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmllbGQuaGlkZUV4cHJlc3Npb24pIHtcbiAgICAgIC8vIGRlbGV0ZSBoaWRlIHZhbHVlIGluIG9yZGVyIHRvIGZvcmNlIHJlLWV2YWx1YXRlIGl0IGluIEZvcm1seUZvcm1FeHByZXNzaW9uLlxuICAgICAgZGVsZXRlIGZpZWxkLmhpZGU7XG5cbiAgICAgIGZpZWxkLmhpZGVFeHByZXNzaW9uID0gdGhpcy5fZXZhbEV4cHJlc3Npb24oXG4gICAgICAgICdoaWRlJyxcbiAgICAgICAgZmllbGQuaGlkZUV4cHJlc3Npb24sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBsZXQgcm9vdCA9IGZpZWxkLnBhcmVudDtcbiAgICAgICAgICB3aGlsZSAocm9vdC5wYXJlbnQgJiYgIXJvb3QuaGlkZSkge1xuICAgICAgICAgICAgcm9vdCA9IHJvb3QucGFyZW50O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiByb290LmhpZGU7XG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB3cmFwUHJvcGVydHkoZmllbGQsICdoaWRlJywgKHsgY3VycmVudFZhbHVlLCBmaXJzdENoYW5nZSB9KSA9PiB7XG4gICAgICAgIGZpZWxkLl9oaWRlID0gY3VycmVudFZhbHVlO1xuICAgICAgICBpZiAoIWZpcnN0Q2hhbmdlIHx8IChmaXJzdENoYW5nZSAmJiBjdXJyZW50VmFsdWUgPT09IHRydWUpKSB7XG4gICAgICAgICAgZmllbGQub3B0aW9ucy5faGlkZGVuRmllbGRzRm9yQ2hlY2sucHVzaChmaWVsZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2V2YWxFeHByZXNzaW9uKHByb3A6IHN0cmluZywgZXhwcmVzc2lvbiwgcGFyZW50RXhwcmVzc2lvbj8pIHtcbiAgICByZXR1cm4gKG1vZGVsOiBhbnksIGZvcm1TdGF0ZTogYW55LCBmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2YgZXhwcmVzc2lvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBleHByZXNzaW9uID0gZXZhbFN0cmluZ0V4cHJlc3Npb24oZXhwcmVzc2lvbiwgWydtb2RlbCcsICdmb3JtU3RhdGUnLCAnZmllbGQnXSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGV4cHJlc3Npb24gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBleHByZXNzaW9uID0gKCkgPT4gISFleHByZXNzaW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChwYXJlbnRFeHByZXNzaW9uICYmIHBhcmVudEV4cHJlc3Npb24oKSkgfHwgZXhwcmVzc2lvbihtb2RlbCwgZm9ybVN0YXRlLCBmaWVsZCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBlcnJvci5tZXNzYWdlID0gYFtGb3JtbHkgRXJyb3JdIFtFeHByZXNzaW9uIFwiJHtwcm9wfVwiXSAke2Vycm9yLm1lc3NhZ2V9YDtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tGaWVsZChmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSwgaWdub3JlQ2FjaGUgPSBmYWxzZSkge1xuICAgIHRoaXMuX2NoZWNrRmllbGQoZmllbGQsIGlnbm9yZUNhY2hlKTtcblxuICAgIGZpZWxkLm9wdGlvbnMuX2hpZGRlbkZpZWxkc0ZvckNoZWNrXG4gICAgICAuc29ydChmID0+IGYuaGlkZSA/IC0xIDogMSlcbiAgICAgIC5mb3JFYWNoKGYgPT4gdGhpcy50b2dnbGVGb3JtQ29udHJvbChmLCAhIWYuaGlkZSwgIWlnbm9yZUNhY2hlKSk7XG5cbiAgICBmaWVsZC5vcHRpb25zLl9oaWRkZW5GaWVsZHNGb3JDaGVjayA9IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tGaWVsZChmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSwgaWdub3JlQ2FjaGUgPSBmYWxzZSkge1xuICAgIGxldCBtYXJrRm9yQ2hlY2sgPSBmYWxzZTtcbiAgICBmaWVsZC5maWVsZEdyb3VwLmZvckVhY2goZiA9PiB7XG4gICAgICB0aGlzLmNoZWNrRmllbGRFeHByZXNzaW9uQ2hhbmdlKGYsIGlnbm9yZUNhY2hlKSAmJiAobWFya0ZvckNoZWNrID0gdHJ1ZSk7XG4gICAgICBpZiAodGhpcy5jaGVja0ZpZWxkVmlzaWJpbGl0eUNoYW5nZShmLCBpZ25vcmVDYWNoZSkpIHtcbiAgICAgICAgZmllbGQub3B0aW9ucy5faGlkZGVuRmllbGRzRm9yQ2hlY2sucHVzaChmKTtcbiAgICAgICAgbWFya0ZvckNoZWNrID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGYuZmllbGRHcm91cCAmJiBmLmZpZWxkR3JvdXAubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLl9jaGVja0ZpZWxkKGYsIGlnbm9yZUNhY2hlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChtYXJrRm9yQ2hlY2sgJiYgZmllbGQub3B0aW9ucyAmJiBmaWVsZC5vcHRpb25zLl9tYXJrRm9yQ2hlY2spIHtcbiAgICAgIGZpZWxkLm9wdGlvbnMuX21hcmtGb3JDaGVjayhmaWVsZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0ZpZWxkRXhwcmVzc2lvbkNoYW5nZShmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSwgaWdub3JlQ2FjaGUpOiBib29sZWFuIHtcbiAgICBpZiAoIWZpZWxkIHx8ICFmaWVsZC5fZXhwcmVzc2lvblByb3BlcnRpZXMpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBsZXQgbWFya0ZvckNoZWNrID0gZmFsc2U7XG4gICAgY29uc3QgZXhwcmVzc2lvblByb3BlcnRpZXMgPSBmaWVsZC5fZXhwcmVzc2lvblByb3BlcnRpZXM7XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBleHByZXNzaW9uUHJvcGVydGllcykge1xuICAgICAgbGV0IGV4cHJlc3Npb25WYWx1ZSA9IGV2YWxFeHByZXNzaW9uKGV4cHJlc3Npb25Qcm9wZXJ0aWVzW2tleV0uZXhwcmVzc2lvbiwgeyBmaWVsZCB9LCBbZmllbGQubW9kZWwsIGZpZWxkLm9wdGlvbnMuZm9ybVN0YXRlLCBmaWVsZF0pO1xuICAgICAgaWYgKGtleSA9PT0gJ3RlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCcpIHtcbiAgICAgICAgZXhwcmVzc2lvblZhbHVlID0gISFleHByZXNzaW9uVmFsdWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgaWdub3JlQ2FjaGUgfHwgKFxuICAgICAgICAgIGV4cHJlc3Npb25Qcm9wZXJ0aWVzW2tleV0uZXhwcmVzc2lvblZhbHVlICE9PSBleHByZXNzaW9uVmFsdWVcbiAgICAgICAgICAmJiAoIWlzT2JqZWN0KGV4cHJlc3Npb25WYWx1ZSkgfHwgSlNPTi5zdHJpbmdpZnkoZXhwcmVzc2lvblZhbHVlKSAhPT0gSlNPTi5zdHJpbmdpZnkoZXhwcmVzc2lvblByb3BlcnRpZXNba2V5XS5leHByZXNzaW9uVmFsdWUpKVxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgbWFya0ZvckNoZWNrID0gdHJ1ZTtcbiAgICAgICAgZXhwcmVzc2lvblByb3BlcnRpZXNba2V5XS5leHByZXNzaW9uVmFsdWUgPSBleHByZXNzaW9uVmFsdWU7XG4gICAgICAgIHRoaXMuc2V0RXhwclZhbHVlKGZpZWxkLCBrZXksIGV4cHJlc3Npb25WYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hcmtGb3JDaGVjaztcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tGaWVsZFZpc2liaWxpdHlDaGFuZ2UoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUsIGlnbm9yZUNhY2hlKTogYm9vbGVhbiB7XG4gICAgaWYgKCFmaWVsZCB8fCBpc051bGxPclVuZGVmaW5lZChmaWVsZC5oaWRlRXhwcmVzc2lvbikpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBoaWRlRXhwcmVzc2lvblJlc3VsdDogYm9vbGVhbiA9ICEhZXZhbEV4cHJlc3Npb24oXG4gICAgICBmaWVsZC5oaWRlRXhwcmVzc2lvbixcbiAgICAgIHsgZmllbGQgfSxcbiAgICAgIFtmaWVsZC5tb2RlbCwgZmllbGQub3B0aW9ucy5mb3JtU3RhdGUsIGZpZWxkXSxcbiAgICApO1xuICAgIGxldCBtYXJrRm9yQ2hlY2sgPSBmYWxzZTtcbiAgICBpZiAoaGlkZUV4cHJlc3Npb25SZXN1bHQgIT09IGZpZWxkLmhpZGUgfHwgaWdub3JlQ2FjaGUpIHtcbiAgICAgIG1hcmtGb3JDaGVjayA9IHRydWU7XG4gICAgICAvLyB0b2dnbGUgaGlkZVxuICAgICAgZmllbGQuaGlkZSA9IGhpZGVFeHByZXNzaW9uUmVzdWx0O1xuICAgICAgZmllbGQudGVtcGxhdGVPcHRpb25zLmhpZGRlbiA9IGhpZGVFeHByZXNzaW9uUmVzdWx0O1xuICAgIH1cblxuICAgIHJldHVybiBtYXJrRm9yQ2hlY2s7XG4gIH1cblxuICBwcml2YXRlIHNldERpc2FibGVkU3RhdGUoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnLCB2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmIChmaWVsZC5maWVsZEdyb3VwKSB7XG4gICAgICBmaWVsZC5maWVsZEdyb3VwXG4gICAgICAgIC5maWx0ZXIoZiA9PiAhZi5leHByZXNzaW9uUHJvcGVydGllcyB8fCAhZi5leHByZXNzaW9uUHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eSgndGVtcGxhdGVPcHRpb25zLmRpc2FibGVkJykpXG4gICAgICAgIC5mb3JFYWNoKGYgPT4gdGhpcy5zZXREaXNhYmxlZFN0YXRlKGYsIHZhbHVlKSk7XG4gICAgfVxuXG4gICAgaWYgKGZpZWxkLmtleSAmJiBmaWVsZC50ZW1wbGF0ZU9wdGlvbnMuZGlzYWJsZWQgIT09IHZhbHVlKSB7XG4gICAgICBmaWVsZC50ZW1wbGF0ZU9wdGlvbnMuZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZUZvcm1Db250cm9sKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlLCBoaWRlOiBib29sZWFuLCByZXNldE9uSGlkZTogYm9vbGVhbikge1xuICAgIGlmIChmaWVsZC5mb3JtQ29udHJvbCAmJiBmaWVsZC5rZXkpIHtcbiAgICAgIGRlZmluZUhpZGRlblByb3AoZmllbGQsICdfaGlkZScsICEhKGhpZGUgfHwgZmllbGQuaGlkZSkpO1xuICAgICAgY29uc3QgYyA9IGZpZWxkLmZvcm1Db250cm9sO1xuICAgICAgaWYgKGNbJ19maWVsZHMnXS5sZW5ndGggPiAxKSB7XG4gICAgICAgIHVwZGF0ZVZhbGlkaXR5KGMpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaGlkZSA9PT0gdHJ1ZSAmJiBjWydfZmllbGRzJ10uZXZlcnkoZiA9PiAhIWYuX2hpZGUpKSB7XG4gICAgICAgIHVucmVnaXN0ZXJDb250cm9sKGZpZWxkLCB0cnVlKTtcbiAgICAgICAgaWYgKHJlc2V0T25IaWRlICYmIGZpZWxkLnJlc2V0T25IaWRlKSB7XG4gICAgICAgICAgZmllbGQuZm9ybUNvbnRyb2wucmVzZXQoeyB2YWx1ZTogdW5kZWZpbmVkLCBkaXNhYmxlZDogZmllbGQuZm9ybUNvbnRyb2wuZGlzYWJsZWQgfSk7XG4gICAgICAgICAgaWYgKGZpZWxkLmZpZWxkR3JvdXApIHtcbiAgICAgICAgICAgIGFzc2lnbkZpZWxkVmFsdWUoZmllbGQsIHVuZGVmaW5lZCk7XG5cbiAgICAgICAgICAgIGlmIChmaWVsZC5mb3JtQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuICAgICAgICAgICAgICBmaWVsZC5maWVsZEdyb3VwLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGhpZGUgPT09IGZhbHNlKSB7XG4gICAgICAgIGlmIChmaWVsZC5yZXNldE9uSGlkZSAmJiBmaWVsZC5wYXJlbnQgJiYgIWlzVW5kZWZpbmVkKGZpZWxkLmRlZmF1bHRWYWx1ZSkgJiYgaXNVbmRlZmluZWQoZ2V0RmllbGRWYWx1ZShmaWVsZCkpKSB7XG4gICAgICAgICAgYXNzaWduRmllbGRWYWx1ZShmaWVsZCwgZmllbGQuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZWdpc3RlckNvbnRyb2woZmllbGQsIHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICAgIGlmIChmaWVsZC5yZXNldE9uSGlkZSAmJiBmaWVsZC5maWVsZEFycmF5ICYmIChmaWVsZC5maWVsZEdyb3VwIHx8IFtdKS5sZW5ndGggIT09IChmaWVsZC5tb2RlbCB8fCBbXSkubGVuZ3RoKSB7XG4gICAgICAgICAgKDxhbnk+IGZpZWxkLm9wdGlvbnMpLl9idWlsZEZvcm0odHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmllbGQuZmllbGRHcm91cCkge1xuICAgICAgZmllbGQuZmllbGRHcm91cFxuICAgICAgICAuZmlsdGVyKGYgPT4gIWYuaGlkZUV4cHJlc3Npb24pXG4gICAgICAgIC5mb3JFYWNoKGYgPT4gdGhpcy50b2dnbGVGb3JtQ29udHJvbChmLCBoaWRlLCByZXNldE9uSGlkZSkpO1xuICAgIH1cblxuICAgIGlmIChmaWVsZC5vcHRpb25zLmZpZWxkQ2hhbmdlcykge1xuICAgICAgZmllbGQub3B0aW9ucy5maWVsZENoYW5nZXMubmV4dCg8Rm9ybWx5VmFsdWVDaGFuZ2VFdmVudD4geyBmaWVsZCwgdHlwZTogJ2hpZGRlbicsIHZhbHVlOiBoaWRlIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0RXhwclZhbHVlKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlLCBwcm9wOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICB0cnkge1xuICAgICAgbGV0IHRhcmdldCA9IGZpZWxkO1xuICAgICAgY29uc3QgcGF0aHMgPSAocHJvcC5pbmRleE9mKCdbJykgPT09IC0xID8gcHJvcCA6IHByb3AucmVwbGFjZSgvXFxbKFxcdyspXFxdL2csICcuJDEnKSkuc3BsaXQoJy4nKTtcbiAgICAgIGNvbnN0IGxhc3RJbmRleCA9IHBhdGhzLmxlbmd0aCAtIDE7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxhc3RJbmRleDsgaSsrKSB7XG4gICAgICAgIHRhcmdldCA9IHRhcmdldFtwYXRoc1tpXV07XG4gICAgICB9XG5cbiAgICAgIHRhcmdldFtwYXRoc1tsYXN0SW5kZXhdXSA9IHZhbHVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBlcnJvci5tZXNzYWdlID0gYFtGb3JtbHkgRXJyb3JdIFtFeHByZXNzaW9uIFwiJHtwcm9wfVwiXSAke2Vycm9yLm1lc3NhZ2V9YDtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGlmIChwcm9wID09PSAndGVtcGxhdGVPcHRpb25zLmRpc2FibGVkJyAmJiBmaWVsZC5rZXkpIHtcbiAgICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZShmaWVsZCwgdmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChwcm9wLmluZGV4T2YoJ21vZGVsLicpID09PSAwKSB7XG4gICAgICBjb25zdCBwYXRoID0gcHJvcC5yZXBsYWNlKC9ebW9kZWxcXC4vLCAnJyksXG4gICAgICAgIGNvbnRyb2wgPSBmaWVsZC5rZXkgJiYgcHJvcCA9PT0gcGF0aCA/IGZpZWxkLmZvcm1Db250cm9sIDogZmllbGQucGFyZW50LmZvcm1Db250cm9sLmdldChwYXRoKTtcblxuICAgICAgaWYgKFxuICAgICAgICBjb250cm9sXG4gICAgICAgICYmICEoaXNOdWxsT3JVbmRlZmluZWQoY29udHJvbC52YWx1ZSkgJiYgaXNOdWxsT3JVbmRlZmluZWQodmFsdWUpKVxuICAgICAgICAmJiBjb250cm9sLnZhbHVlICE9PSB2YWx1ZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRyb2wucGF0Y2hWYWx1ZSh2YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZW1pdEV4cHJlc3Npb25DaGFuZ2VzKGZpZWxkLCBwcm9wLCB2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRFeHByZXNzaW9uQ2hhbmdlcyhmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSwgcHJvcGVydHk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGlmICghZmllbGQub3B0aW9ucy5maWVsZENoYW5nZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmaWVsZC5vcHRpb25zLmZpZWxkQ2hhbmdlcy5uZXh0KHtcbiAgICAgIGZpZWxkOiBmaWVsZCxcbiAgICAgIHR5cGU6ICdleHByZXNzaW9uQ2hhbmdlcycsXG4gICAgICBwcm9wZXJ0eSxcbiAgICAgIHZhbHVlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
440
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZXhwcmVzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3gtZm9ybWx5L2NvcmUvIiwic291cmNlcyI6WyJsaWIvZXh0ZW5zaW9ucy9maWVsZC1leHByZXNzaW9uL2ZpZWxkLWV4cHJlc3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsNkJBQTZCLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25MLE9BQU8sRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRTlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRzNDLE1BQU0sT0FBTyx3QkFBd0I7Ozs7O0lBQ25DLFdBQVcsQ0FBQyxLQUE2QjtRQUN2QyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDN0MsT0FBTztTQUNSOztZQUVHLFdBQVcsR0FBRyxLQUFLO1FBQ3ZCLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVzs7Ozs7UUFBRyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRTtZQUM3QyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNoQixXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUNuQiw2QkFBNkIsQ0FDM0IsQ0FBQyxDQUFDLFdBQVc7OztnQkFDYixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsRUFDdEMsQ0FBQztnQkFDRixXQUFXLEdBQUcsS0FBSyxDQUFDO2FBQ3JCO1FBQ0gsQ0FBQyxDQUFBLENBQUM7SUFDSixDQUFDOzs7OztJQUVELFlBQVksQ0FBQyxLQUE2QjtRQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLEVBQUU7WUFDaEQsT0FBTztTQUNSO1FBRUQseUJBQXlCO1FBQ3pCLGdCQUFnQixDQUFDLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVyRCxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsRUFBRTtZQUM5QixLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsRUFBRTs7c0JBQ3RDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUM7Z0JBRTFELElBQUksT0FBTyxrQkFBa0IsS0FBSyxRQUFRLElBQUksVUFBVSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7b0JBQzVFLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsR0FBRzt3QkFDakMsVUFBVSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQzlCLEdBQUcsRUFDSCxrQkFBa0IsRUFDbEIsR0FBRyxLQUFLLDBCQUEwQixJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsb0JBQW9CLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsMEJBQTBCLENBQUM7NEJBQ3JKLENBQUM7Ozs0QkFBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxRQUFROzRCQUM3QyxDQUFDLENBQUMsU0FBUyxDQUNkO3FCQUNGLENBQUM7b0JBQ0YsSUFBSSxHQUFHLEtBQUssMEJBQTBCLEVBQUU7d0JBQ3RDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxFQUFFLGlCQUFpQixFQUFFOzRCQUN6RSxHQUFHOzs7NEJBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUE7NEJBQ3pDLEdBQUc7Ozs0QkFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7NEJBQ2QsVUFBVSxFQUFFLElBQUk7NEJBQ2hCLFlBQVksRUFBRSxJQUFJO3lCQUNuQixDQUFDLENBQUM7cUJBQ0o7aUJBQ0Y7cUJBQU0sSUFBSSxrQkFBa0IsWUFBWSxVQUFVLEVBQUU7OzBCQUM3QyxTQUFTOzs7b0JBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxtQkFBQSxrQkFBa0IsRUFBbUIsQ0FBQzt5QkFDNUQsU0FBUzs7OztvQkFBQyxDQUFDLENBQUMsRUFBRTt3QkFDYixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7d0JBQ2pDLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTs0QkFDaEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7eUJBQ3BDO29CQUNILENBQUMsRUFBQyxDQUFBOzt3QkFFQSxZQUFZLEdBQWlCLFNBQVMsRUFBRTs7MEJBQ3RDLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU07b0JBQ2pDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTTs7O29CQUFHLEdBQUcsRUFBRTt3QkFDeEIsSUFBSSxZQUFZLEtBQUssSUFBSSxFQUFFOzRCQUN6QixZQUFZLEdBQUcsU0FBUyxFQUFFLENBQUM7eUJBQzVCO3dCQUNELE9BQU8sTUFBTSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDakMsQ0FBQyxDQUFBLENBQUM7OzBCQUVJLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVM7b0JBQ3ZDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUzs7O29CQUFHLEdBQUcsRUFBRTt3QkFDM0IsU0FBUyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDOUIsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO3dCQUMzQixZQUFZLEdBQUcsSUFBSSxDQUFDO29CQUN0QixDQUFDLENBQUEsQ0FBQztpQkFDSDthQUNGO1NBQ0Y7UUFFRCxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUU7WUFDeEIsOEVBQThFO1lBQzlFLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztZQUVsQixLQUFLLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQ3pDLE1BQU0sRUFDTixLQUFLLENBQUMsY0FBYzs7O1lBQ3BCLEdBQUcsRUFBRTs7b0JBQ0MsSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNO2dCQUN2QixPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO29CQUNoQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztpQkFDcEI7Z0JBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ25CLENBQUMsRUFDRixDQUFDO1NBQ0g7YUFBTTtZQUNMLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTTs7OztZQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRTtnQkFDNUQsS0FBSyxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxXQUFXLElBQUksWUFBWSxLQUFLLElBQUksQ0FBQyxFQUFFO29CQUMxRCxLQUFLLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDakQ7WUFDSCxDQUFDLEVBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7Ozs7Ozs7SUFFTyxlQUFlLENBQUMsSUFBWSxFQUFFLFVBQVUsRUFBRSxnQkFBaUI7UUFDakU7Ozs7OztRQUFPLENBQUMsS0FBVSxFQUFFLFNBQWMsRUFBRSxLQUF3QixFQUFFLEVBQUU7WUFDOUQsSUFBSTtnQkFDRixJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsRUFBRTtvQkFDbEMsVUFBVSxHQUFHLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztpQkFDaEY7Z0JBRUQsSUFBSSxPQUFPLFVBQVUsS0FBSyxVQUFVLEVBQUU7b0JBQ3BDLFVBQVU7OztvQkFBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFBLENBQUM7aUJBQ2pDO2dCQUVELE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDeEY7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxLQUFLLENBQUMsT0FBTyxHQUFHLCtCQUErQixJQUFJLE1BQU0sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN6RSxNQUFNLEtBQUssQ0FBQzthQUNiO1FBQ0gsQ0FBQyxFQUFDO0lBQ0osQ0FBQzs7Ozs7OztJQUVPLFVBQVUsQ0FBQyxLQUE2QixFQUFFLFdBQVcsR0FBRyxLQUFLOztjQUM3RCxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDO1FBRXpELEtBQUssQ0FBQyxPQUFPLENBQUMscUJBQXFCO2FBQ2hDLElBQUk7Ozs7UUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUM7YUFDMUIsT0FBTzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFDLENBQUM7UUFFbkUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFDekMsSUFBSSxZQUFZLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QixJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7Z0JBQ2hELEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3BDO1NBQ0Y7SUFDSCxDQUFDOzs7Ozs7O0lBRU8sV0FBVyxDQUFDLEtBQTZCLEVBQUUsV0FBVyxHQUFHLEtBQUs7O1lBQ2hFLFlBQVksR0FBRyxLQUFLO1FBQ3hCLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFO2dCQUNkLE9BQU87YUFDUjtZQUVELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDekUsSUFBSSxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxFQUFFO2dCQUNuRCxLQUFLLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUMsWUFBWSxHQUFHLElBQUksQ0FBQzthQUNyQjtZQUVELElBQUksQ0FBQyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDO2FBQzNEO1FBQ0gsQ0FBQyxFQUFDLENBQUM7UUFFSCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDOzs7Ozs7O0lBRU8sMEJBQTBCLENBQUMsS0FBNkIsRUFBRSxXQUFXO1FBQzNFLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUU7WUFDMUMsT0FBTyxLQUFLLENBQUM7U0FDZDs7WUFFRyxZQUFZLEdBQUcsS0FBSzs7Y0FDbEIsb0JBQW9CLEdBQUcsS0FBSyxDQUFDLHFCQUFxQjtRQUV4RCxLQUFLLE1BQU0sR0FBRyxJQUFJLG9CQUFvQixFQUFFOztnQkFDbEMsZUFBZSxHQUFHLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDcEksSUFBSSxHQUFHLEtBQUssMEJBQTBCLEVBQUU7Z0JBQ3RDLGVBQWUsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDO2FBQ3JDO1lBRUQsSUFDRSxXQUFXLElBQUksQ0FDYixvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxlQUFlLEtBQUssZUFBZTttQkFDMUQsQ0FDRCxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7dUJBQ3ZCLFlBQVksQ0FBQyxlQUFlLENBQUM7dUJBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FDakcsQ0FDRixFQUNEO2dCQUNBLFlBQVksR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7Z0JBQzVELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxlQUFlLENBQUMsQ0FBQzthQUNoRDtTQUNGO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQzs7Ozs7OztJQUVPLDBCQUEwQixDQUFDLEtBQTZCLEVBQUUsV0FBVztRQUMzRSxJQUFJLENBQUMsS0FBSyxJQUFJLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNyRCxPQUFPLEtBQUssQ0FBQztTQUNkOztjQUVLLG9CQUFvQixHQUFZLENBQUMsQ0FBQyxjQUFjLENBQ3BELEtBQUssQ0FBQyxjQUFjLEVBQ3BCLEVBQUUsS0FBSyxFQUFFLEVBQ1QsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUM5Qzs7WUFDRyxZQUFZLEdBQUcsS0FBSztRQUN4QixJQUFJLG9CQUFvQixLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksV0FBVyxFQUFFO1lBQ3RELFlBQVksR0FBRyxJQUFJLENBQUM7WUFDcEIsY0FBYztZQUNkLEtBQUssQ0FBQyxJQUFJLEdBQUcsb0JBQW9CLENBQUM7WUFDbEMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsb0JBQW9CLENBQUM7U0FDckQ7UUFFRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDOzs7Ozs7O0lBRU8sZ0JBQWdCLENBQUMsS0FBd0IsRUFBRSxLQUFjO1FBQy9ELElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUNwQixLQUFLLENBQUMsVUFBVTtpQkFDYixNQUFNOzs7O1lBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsMEJBQTBCLENBQUMsRUFBQztpQkFDMUcsT0FBTzs7OztZQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBQyxDQUFDO1NBQ2xEO1FBRUQsSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsUUFBUSxLQUFLLEtBQUssRUFBRTtZQUN6RCxLQUFLLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDeEM7SUFDSCxDQUFDOzs7Ozs7OztJQUVPLGlCQUFpQixDQUFDLEtBQTZCLEVBQUUsSUFBYSxFQUFFLFdBQW9CO1FBQzFGLElBQUksS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ2xDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDOztrQkFDbkQsQ0FBQyxHQUFHLEtBQUssQ0FBQyxXQUFXO1lBQzNCLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUMzQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbkI7WUFFRCxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSzs7OztZQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxFQUFFO2dCQUMxRSxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQy9CLElBQUksV0FBVyxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUU7b0JBQ3BDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO29CQUNwRixJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7d0JBQ3BCLGdCQUFnQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQzt3QkFFbkMsSUFBSSxLQUFLLENBQUMsV0FBVyxZQUFZLFNBQVMsRUFBRTs0QkFDMUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO3lCQUM3QjtxQkFDRjtpQkFDRjthQUNGO2lCQUFNLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRTtnQkFDekIsSUFBSSxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtvQkFDOUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDN0M7Z0JBQ0QsZUFBZSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3hDLElBQUksS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtvQkFDM0csQ0FBQyxtQkFBTSxLQUFLLENBQUMsT0FBTyxFQUFBLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3hDO2FBQ0Y7U0FDRjtRQUVELElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUNwQixLQUFLLENBQUMsVUFBVTtpQkFDYixNQUFNOzs7O1lBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUM7aUJBQzlCLE9BQU87Ozs7WUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxFQUFDLENBQUM7U0FDL0Q7UUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQzlCLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxtQkFBeUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUEsQ0FBQyxDQUFDO1NBQ2xHO0lBQ0gsQ0FBQzs7Ozs7Ozs7SUFFTyxZQUFZLENBQUMsS0FBNkIsRUFBRSxJQUFZLEVBQUUsS0FBVTtRQUMxRSxJQUFJOztnQkFDRSxNQUFNLEdBQUcsS0FBSzs7a0JBQ1osS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7Z0JBQ2pCLENBQUMsQ0FBQyxJQUFJO3FCQUNILE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO3FCQUNyQixLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsdUNBQXVDO3FCQUMzRCxNQUFNOzs7O2dCQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDOztrQkFFYixTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQ2xDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2xDLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDM0I7WUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1NBQ2xDO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxLQUFLLENBQUMsT0FBTyxHQUFHLCtCQUErQixJQUFJLE1BQU0sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3pFLE1BQU0sS0FBSyxDQUFDO1NBQ2I7UUFFRCxJQUFJLElBQUksS0FBSywwQkFBMEIsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ3BELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDckM7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFOztrQkFDMUIsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQzs7a0JBQ3ZDLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFFL0YsSUFDRSxPQUFPO21CQUNKLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7bUJBQy9ELE9BQU8sQ0FBQyxLQUFLLEtBQUssS0FBSyxFQUMxQjtnQkFDQSxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzNCO1NBQ0Y7UUFFRCxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDOzs7Ozs7OztJQUVPLHFCQUFxQixDQUFDLEtBQTZCLEVBQUUsUUFBZ0IsRUFBRSxLQUFVO1FBQ3ZGLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUMvQixPQUFPO1NBQ1I7UUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDOUIsS0FBSyxFQUFFLEtBQUs7WUFDWixJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLFFBQVE7WUFDUixLQUFLO1NBQ04sQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seVZhbHVlQ2hhbmdlRXZlbnQsIEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Zvcm1seS5maWVsZC5jb25maWcnO1xuaW1wb3J0IHsgaXNPYmplY3QsIGlzTnVsbE9yVW5kZWZpbmVkLCBpc1VuZGVmaW5lZCwgaXNGdW5jdGlvbiwgZGVmaW5lSGlkZGVuUHJvcCwgd3JhcFByb3BlcnR5LCByZWR1Y2VGb3JtVXBkYXRlVmFsaWRpdHlDYWxscywgZ2V0RmllbGRWYWx1ZSwgYXNzaWduRmllbGRWYWx1ZSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IGV2YWxFeHByZXNzaW9uLCBldmFsU3RyaW5nRXhwcmVzc2lvbiB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvcm1seUV4dGVuc2lvbiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm1seS5jb25maWcnO1xuaW1wb3J0IHsgdW5yZWdpc3RlckNvbnRyb2wsIHJlZ2lzdGVyQ29udHJvbCwgdXBkYXRlVmFsaWRpdHkgfSBmcm9tICcuLi9maWVsZC1mb3JtL3V0aWxzJztcbmltcG9ydCB7IEZvcm1BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLyoqIEBleHBlcmltZW50YWwgKi9cbmV4cG9ydCBjbGFzcyBGaWVsZEV4cHJlc3Npb25FeHRlbnNpb24gaW1wbGVtZW50cyBGb3JtbHlFeHRlbnNpb24ge1xuICBwcmVQb3B1bGF0ZShmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSkge1xuICAgIGlmIChmaWVsZC5wYXJlbnQgfHwgZmllbGQub3B0aW9ucy5fY2hlY2tGaWVsZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjaGVja0xvY2tlZCA9IGZhbHNlO1xuICAgIGZpZWxkLm9wdGlvbnMuX2NoZWNrRmllbGQgPSAoZiwgaWdub3JlQ2FjaGUpID0+IHtcbiAgICAgIGlmICghY2hlY2tMb2NrZWQpIHtcbiAgICAgICAgY2hlY2tMb2NrZWQgPSB0cnVlO1xuICAgICAgICByZWR1Y2VGb3JtVXBkYXRlVmFsaWRpdHlDYWxscyhcbiAgICAgICAgICBmLmZvcm1Db250cm9sLFxuICAgICAgICAgICgpID0+IHRoaXMuY2hlY2tGaWVsZChmLCBpZ25vcmVDYWNoZSksXG4gICAgICAgICk7XG4gICAgICAgIGNoZWNrTG9ja2VkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHBvc3RQb3B1bGF0ZShmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSkge1xuICAgIGlmICghZmllbGQucGFyZW50IHx8IGZpZWxkLl9leHByZXNzaW9uUHJvcGVydGllcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGNhY2hlIGJ1aWx0IGV4cHJlc3Npb25cbiAgICBkZWZpbmVIaWRkZW5Qcm9wKGZpZWxkLCAnX2V4cHJlc3Npb25Qcm9wZXJ0aWVzJywge30pO1xuXG4gICAgaWYgKGZpZWxkLmV4cHJlc3Npb25Qcm9wZXJ0aWVzKSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBmaWVsZC5leHByZXNzaW9uUHJvcGVydGllcykge1xuICAgICAgICBjb25zdCBleHByZXNzaW9uUHJvcGVydHkgPSBmaWVsZC5leHByZXNzaW9uUHJvcGVydGllc1trZXldO1xuXG4gICAgICAgIGlmICh0eXBlb2YgZXhwcmVzc2lvblByb3BlcnR5ID09PSAnc3RyaW5nJyB8fCBpc0Z1bmN0aW9uKGV4cHJlc3Npb25Qcm9wZXJ0eSkpIHtcbiAgICAgICAgICBmaWVsZC5fZXhwcmVzc2lvblByb3BlcnRpZXNba2V5XSA9IHtcbiAgICAgICAgICAgIGV4cHJlc3Npb246IHRoaXMuX2V2YWxFeHByZXNzaW9uKFxuICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgIGV4cHJlc3Npb25Qcm9wZXJ0eSxcbiAgICAgICAgICAgICAga2V5ID09PSAndGVtcGxhdGVPcHRpb25zLmRpc2FibGVkJyAmJiBmaWVsZC5wYXJlbnQuZXhwcmVzc2lvblByb3BlcnRpZXMgJiYgZmllbGQucGFyZW50LmV4cHJlc3Npb25Qcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KCd0ZW1wbGF0ZU9wdGlvbnMuZGlzYWJsZWQnKVxuICAgICAgICAgICAgICAgID8gKCkgPT4gZmllbGQucGFyZW50LnRlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZFxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmIChrZXkgPT09ICd0ZW1wbGF0ZU9wdGlvbnMuZGlzYWJsZWQnKSB7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZmllbGQuX2V4cHJlc3Npb25Qcm9wZXJ0aWVzW2tleV0sICdleHByZXNzaW9uVmFsdWUnLCB7XG4gICAgICAgICAgICAgIGdldDogKCkgPT4gZmllbGQudGVtcGxhdGVPcHRpb25zLmRpc2FibGVkLFxuICAgICAgICAgICAgICBzZXQ6ICgpID0+IHsgfSxcbiAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGV4cHJlc3Npb25Qcm9wZXJ0eSBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgICAgICBjb25zdCBzdWJzY3JpYmUgPSAoKSA9PiAoZXhwcmVzc2lvblByb3BlcnR5IGFzIE9ic2VydmFibGU8YW55PilcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodiA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc2V0RXhwclZhbHVlKGZpZWxkLCBrZXksIHYpO1xuICAgICAgICAgICAgICBpZiAoZmllbGQub3B0aW9ucyAmJiBmaWVsZC5vcHRpb25zLl9tYXJrRm9yQ2hlY2spIHtcbiAgICAgICAgICAgICAgICBmaWVsZC5vcHRpb25zLl9tYXJrRm9yQ2hlY2soZmllbGQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgIGxldCBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IHN1YnNjcmliZSgpO1xuICAgICAgICAgIGNvbnN0IG9uSW5pdCA9IGZpZWxkLmhvb2tzLm9uSW5pdDtcbiAgICAgICAgICBmaWVsZC5ob29rcy5vbkluaXQgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoc3Vic2NyaXB0aW9uID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIHN1YnNjcmlwdGlvbiA9IHN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9uSW5pdCAmJiBvbkluaXQoZmllbGQpO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCBvbkRlc3Ryb3kgPSBmaWVsZC5ob29rcy5vbkRlc3Ryb3k7XG4gICAgICAgICAgZmllbGQuaG9va3Mub25EZXN0cm95ID0gKCkgPT4ge1xuICAgICAgICAgICAgb25EZXN0cm95ICYmIG9uRGVzdHJveShmaWVsZCk7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmaWVsZC5oaWRlRXhwcmVzc2lvbikge1xuICAgICAgLy8gZGVsZXRlIGhpZGUgdmFsdWUgaW4gb3JkZXIgdG8gZm9yY2UgcmUtZXZhbHVhdGUgaXQgaW4gRm9ybWx5Rm9ybUV4cHJlc3Npb24uXG4gICAgICBkZWxldGUgZmllbGQuaGlkZTtcblxuICAgICAgZmllbGQuaGlkZUV4cHJlc3Npb24gPSB0aGlzLl9ldmFsRXhwcmVzc2lvbihcbiAgICAgICAgJ2hpZGUnLFxuICAgICAgICBmaWVsZC5oaWRlRXhwcmVzc2lvbixcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGxldCByb290ID0gZmllbGQucGFyZW50O1xuICAgICAgICAgIHdoaWxlIChyb290LnBhcmVudCAmJiAhcm9vdC5oaWRlKSB7XG4gICAgICAgICAgICByb290ID0gcm9vdC5wYXJlbnQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJvb3QuaGlkZTtcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdyYXBQcm9wZXJ0eShmaWVsZCwgJ2hpZGUnLCAoeyBjdXJyZW50VmFsdWUsIGZpcnN0Q2hhbmdlIH0pID0+IHtcbiAgICAgICAgZmllbGQuX2hpZGUgPSBjdXJyZW50VmFsdWU7XG4gICAgICAgIGlmICghZmlyc3RDaGFuZ2UgfHwgKGZpcnN0Q2hhbmdlICYmIGN1cnJlbnRWYWx1ZSA9PT0gdHJ1ZSkpIHtcbiAgICAgICAgICBmaWVsZC5vcHRpb25zLl9oaWRkZW5GaWVsZHNGb3JDaGVjay5wdXNoKGZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZXZhbEV4cHJlc3Npb24ocHJvcDogc3RyaW5nLCBleHByZXNzaW9uLCBwYXJlbnRFeHByZXNzaW9uPykge1xuICAgIHJldHVybiAobW9kZWw6IGFueSwgZm9ybVN0YXRlOiBhbnksIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiBleHByZXNzaW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGV4cHJlc3Npb24gPSBldmFsU3RyaW5nRXhwcmVzc2lvbihleHByZXNzaW9uLCBbJ21vZGVsJywgJ2Zvcm1TdGF0ZScsICdmaWVsZCddKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgZXhwcmVzc2lvbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGV4cHJlc3Npb24gPSAoKSA9PiAhIWV4cHJlc3Npb247XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKHBhcmVudEV4cHJlc3Npb24gJiYgcGFyZW50RXhwcmVzc2lvbigpKSB8fCBleHByZXNzaW9uKG1vZGVsLCBmb3JtU3RhdGUsIGZpZWxkKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgW0Zvcm1seSBFcnJvcl0gW0V4cHJlc3Npb24gXCIke3Byb3B9XCJdICR7ZXJyb3IubWVzc2FnZX1gO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0ZpZWxkKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlLCBpZ25vcmVDYWNoZSA9IGZhbHNlKSB7XG4gICAgY29uc3QgZmllbGRDaGFuZ2VkID0gdGhpcy5fY2hlY2tGaWVsZChmaWVsZCwgaWdub3JlQ2FjaGUpO1xuXG4gICAgZmllbGQub3B0aW9ucy5faGlkZGVuRmllbGRzRm9yQ2hlY2tcbiAgICAgIC5zb3J0KGYgPT4gZi5oaWRlID8gLTEgOiAxKVxuICAgICAgLmZvckVhY2goZiA9PiB0aGlzLnRvZ2dsZUZvcm1Db250cm9sKGYsICEhZi5oaWRlLCAhaWdub3JlQ2FjaGUpKTtcblxuICAgIGZpZWxkLm9wdGlvbnMuX2hpZGRlbkZpZWxkc0ZvckNoZWNrID0gW107XG4gICAgaWYgKGZpZWxkQ2hhbmdlZCkge1xuICAgICAgdGhpcy5jaGVja0ZpZWxkKGZpZWxkKTtcbiAgICAgIGlmIChmaWVsZC5vcHRpb25zICYmIGZpZWxkLm9wdGlvbnMuX21hcmtGb3JDaGVjaykge1xuICAgICAgICBmaWVsZC5vcHRpb25zLl9tYXJrRm9yQ2hlY2soZmllbGQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrRmllbGQoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUsIGlnbm9yZUNhY2hlID0gZmFsc2UpIHtcbiAgICBsZXQgZmllbGRDaGFuZ2VkID0gZmFsc2U7XG4gICAgZmllbGQuZmllbGRHcm91cC5mb3JFYWNoKGYgPT4ge1xuICAgICAgaWYgKCFmLm9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNoZWNrRmllbGRFeHByZXNzaW9uQ2hhbmdlKGYsIGlnbm9yZUNhY2hlKSAmJiAoZmllbGRDaGFuZ2VkID0gdHJ1ZSk7XG4gICAgICBpZiAodGhpcy5jaGVja0ZpZWxkVmlzaWJpbGl0eUNoYW5nZShmLCBpZ25vcmVDYWNoZSkpIHtcbiAgICAgICAgZmllbGQub3B0aW9ucy5faGlkZGVuRmllbGRzRm9yQ2hlY2sucHVzaChmKTtcbiAgICAgICAgZmllbGRDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGYuZmllbGRHcm91cCAmJiBmLmZpZWxkR3JvdXAubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLl9jaGVja0ZpZWxkKGYsIGlnbm9yZUNhY2hlKSAmJiAoZmllbGRDaGFuZ2VkID0gdHJ1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmllbGRDaGFuZ2VkO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0ZpZWxkRXhwcmVzc2lvbkNoYW5nZShmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSwgaWdub3JlQ2FjaGUpOiBib29sZWFuIHtcbiAgICBpZiAoIWZpZWxkIHx8ICFmaWVsZC5fZXhwcmVzc2lvblByb3BlcnRpZXMpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBsZXQgbWFya0ZvckNoZWNrID0gZmFsc2U7XG4gICAgY29uc3QgZXhwcmVzc2lvblByb3BlcnRpZXMgPSBmaWVsZC5fZXhwcmVzc2lvblByb3BlcnRpZXM7XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBleHByZXNzaW9uUHJvcGVydGllcykge1xuICAgICAgbGV0IGV4cHJlc3Npb25WYWx1ZSA9IGV2YWxFeHByZXNzaW9uKGV4cHJlc3Npb25Qcm9wZXJ0aWVzW2tleV0uZXhwcmVzc2lvbiwgeyBmaWVsZCB9LCBbZmllbGQubW9kZWwsIGZpZWxkLm9wdGlvbnMuZm9ybVN0YXRlLCBmaWVsZF0pO1xuICAgICAgaWYgKGtleSA9PT0gJ3RlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCcpIHtcbiAgICAgICAgZXhwcmVzc2lvblZhbHVlID0gISFleHByZXNzaW9uVmFsdWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgaWdub3JlQ2FjaGUgfHwgKFxuICAgICAgICAgIGV4cHJlc3Npb25Qcm9wZXJ0aWVzW2tleV0uZXhwcmVzc2lvblZhbHVlICE9PSBleHByZXNzaW9uVmFsdWVcbiAgICAgICAgICAmJiAoXG4gICAgICAgICAgICAhaXNPYmplY3QoZXhwcmVzc2lvblZhbHVlKVxuICAgICAgICAgICAgfHwgaXNPYnNlcnZhYmxlKGV4cHJlc3Npb25WYWx1ZSlcbiAgICAgICAgICAgIHx8IEpTT04uc3RyaW5naWZ5KGV4cHJlc3Npb25WYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGV4cHJlc3Npb25Qcm9wZXJ0aWVzW2tleV0uZXhwcmVzc2lvblZhbHVlKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIG1hcmtGb3JDaGVjayA9IHRydWU7XG4gICAgICAgIGV4cHJlc3Npb25Qcm9wZXJ0aWVzW2tleV0uZXhwcmVzc2lvblZhbHVlID0gZXhwcmVzc2lvblZhbHVlO1xuICAgICAgICB0aGlzLnNldEV4cHJWYWx1ZShmaWVsZCwga2V5LCBleHByZXNzaW9uVmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtYXJrRm9yQ2hlY2s7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRmllbGRWaXNpYmlsaXR5Q2hhbmdlKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlLCBpZ25vcmVDYWNoZSk6IGJvb2xlYW4ge1xuICAgIGlmICghZmllbGQgfHwgaXNOdWxsT3JVbmRlZmluZWQoZmllbGQuaGlkZUV4cHJlc3Npb24pKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgaGlkZUV4cHJlc3Npb25SZXN1bHQ6IGJvb2xlYW4gPSAhIWV2YWxFeHByZXNzaW9uKFxuICAgICAgZmllbGQuaGlkZUV4cHJlc3Npb24sXG4gICAgICB7IGZpZWxkIH0sXG4gICAgICBbZmllbGQubW9kZWwsIGZpZWxkLm9wdGlvbnMuZm9ybVN0YXRlLCBmaWVsZF0sXG4gICAgKTtcbiAgICBsZXQgbWFya0ZvckNoZWNrID0gZmFsc2U7XG4gICAgaWYgKGhpZGVFeHByZXNzaW9uUmVzdWx0ICE9PSBmaWVsZC5oaWRlIHx8IGlnbm9yZUNhY2hlKSB7XG4gICAgICBtYXJrRm9yQ2hlY2sgPSB0cnVlO1xuICAgICAgLy8gdG9nZ2xlIGhpZGVcbiAgICAgIGZpZWxkLmhpZGUgPSBoaWRlRXhwcmVzc2lvblJlc3VsdDtcbiAgICAgIGZpZWxkLnRlbXBsYXRlT3B0aW9ucy5oaWRkZW4gPSBoaWRlRXhwcmVzc2lvblJlc3VsdDtcbiAgICB9XG5cbiAgICByZXR1cm4gbWFya0ZvckNoZWNrO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREaXNhYmxlZFN0YXRlKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZywgdmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoZmllbGQuZmllbGRHcm91cCkge1xuICAgICAgZmllbGQuZmllbGRHcm91cFxuICAgICAgICAuZmlsdGVyKGYgPT4gIWYuZXhwcmVzc2lvblByb3BlcnRpZXMgfHwgIWYuZXhwcmVzc2lvblByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoJ3RlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCcpKVxuICAgICAgICAuZm9yRWFjaChmID0+IHRoaXMuc2V0RGlzYWJsZWRTdGF0ZShmLCB2YWx1ZSkpO1xuICAgIH1cblxuICAgIGlmIChmaWVsZC5rZXkgJiYgZmllbGQudGVtcGxhdGVPcHRpb25zLmRpc2FibGVkICE9PSB2YWx1ZSkge1xuICAgICAgZmllbGQudGVtcGxhdGVPcHRpb25zLmRpc2FibGVkID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVGb3JtQ29udHJvbChmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSwgaGlkZTogYm9vbGVhbiwgcmVzZXRPbkhpZGU6IGJvb2xlYW4pIHtcbiAgICBpZiAoZmllbGQuZm9ybUNvbnRyb2wgJiYgZmllbGQua2V5KSB7XG4gICAgICBkZWZpbmVIaWRkZW5Qcm9wKGZpZWxkLCAnX2hpZGUnLCAhIShoaWRlIHx8IGZpZWxkLmhpZGUpKTtcbiAgICAgIGNvbnN0IGMgPSBmaWVsZC5mb3JtQ29udHJvbDtcbiAgICAgIGlmIChjWydfZmllbGRzJ10gJiYgY1snX2ZpZWxkcyddLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgdXBkYXRlVmFsaWRpdHkoYyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChoaWRlID09PSB0cnVlICYmICghY1snX2ZpZWxkcyddIHx8IGNbJ19maWVsZHMnXS5ldmVyeShmID0+ICEhZi5faGlkZSkpKSB7XG4gICAgICAgIHVucmVnaXN0ZXJDb250cm9sKGZpZWxkLCB0cnVlKTtcbiAgICAgICAgaWYgKHJlc2V0T25IaWRlICYmIGZpZWxkLnJlc2V0T25IaWRlKSB7XG4gICAgICAgICAgZmllbGQuZm9ybUNvbnRyb2wucmVzZXQoeyB2YWx1ZTogdW5kZWZpbmVkLCBkaXNhYmxlZDogZmllbGQuZm9ybUNvbnRyb2wuZGlzYWJsZWQgfSk7XG4gICAgICAgICAgaWYgKGZpZWxkLmZpZWxkR3JvdXApIHtcbiAgICAgICAgICAgIGFzc2lnbkZpZWxkVmFsdWUoZmllbGQsIHVuZGVmaW5lZCk7XG5cbiAgICAgICAgICAgIGlmIChmaWVsZC5mb3JtQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuICAgICAgICAgICAgICBmaWVsZC5maWVsZEdyb3VwLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGhpZGUgPT09IGZhbHNlKSB7XG4gICAgICAgIGlmIChmaWVsZC5yZXNldE9uSGlkZSAmJiBmaWVsZC5wYXJlbnQgJiYgIWlzVW5kZWZpbmVkKGZpZWxkLmRlZmF1bHRWYWx1ZSkgJiYgaXNVbmRlZmluZWQoZ2V0RmllbGRWYWx1ZShmaWVsZCkpKSB7XG4gICAgICAgICAgYXNzaWduRmllbGRWYWx1ZShmaWVsZCwgZmllbGQuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZWdpc3RlckNvbnRyb2woZmllbGQsIHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICAgIGlmIChmaWVsZC5yZXNldE9uSGlkZSAmJiBmaWVsZC5maWVsZEFycmF5ICYmIChmaWVsZC5maWVsZEdyb3VwIHx8IFtdKS5sZW5ndGggIT09IChmaWVsZC5tb2RlbCB8fCBbXSkubGVuZ3RoKSB7XG4gICAgICAgICAgKDxhbnk+IGZpZWxkLm9wdGlvbnMpLl9idWlsZEZvcm0odHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmllbGQuZmllbGRHcm91cCkge1xuICAgICAgZmllbGQuZmllbGRHcm91cFxuICAgICAgICAuZmlsdGVyKGYgPT4gIWYuaGlkZUV4cHJlc3Npb24pXG4gICAgICAgIC5mb3JFYWNoKGYgPT4gdGhpcy50b2dnbGVGb3JtQ29udHJvbChmLCBoaWRlLCByZXNldE9uSGlkZSkpO1xuICAgIH1cblxuICAgIGlmIChmaWVsZC5vcHRpb25zLmZpZWxkQ2hhbmdlcykge1xuICAgICAgZmllbGQub3B0aW9ucy5maWVsZENoYW5nZXMubmV4dCg8Rm9ybWx5VmFsdWVDaGFuZ2VFdmVudD4geyBmaWVsZCwgdHlwZTogJ2hpZGRlbicsIHZhbHVlOiBoaWRlIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0RXhwclZhbHVlKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlLCBwcm9wOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICB0cnkge1xuICAgICAgbGV0IHRhcmdldCA9IGZpZWxkO1xuICAgICAgY29uc3QgcGF0aHMgPSBwcm9wLmluZGV4T2YoJ1snKSA9PT0gLTFcbiAgICAgICAgPyBwcm9wLnNwbGl0KCcuJylcbiAgICAgICAgOiBwcm9wXG4gICAgICAgICAgLnJlcGxhY2UoL1xcJ3xcXFwiL2csICcnKVxuICAgICAgICAgIC5zcGxpdCgvW1tcXF1dezEsMn0vKSAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjAxOTgyMDZcbiAgICAgICAgICAuZmlsdGVyKHYgPT4gdilcbiAgICAgIDtcbiAgICAgIGNvbnN0IGxhc3RJbmRleCA9IHBhdGhzLmxlbmd0aCAtIDE7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxhc3RJbmRleDsgaSsrKSB7XG4gICAgICAgIHRhcmdldCA9IHRhcmdldFtwYXRoc1tpXV07XG4gICAgICB9XG5cbiAgICAgIHRhcmdldFtwYXRoc1tsYXN0SW5kZXhdXSA9IHZhbHVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBlcnJvci5tZXNzYWdlID0gYFtGb3JtbHkgRXJyb3JdIFtFeHByZXNzaW9uIFwiJHtwcm9wfVwiXSAke2Vycm9yLm1lc3NhZ2V9YDtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGlmIChwcm9wID09PSAndGVtcGxhdGVPcHRpb25zLmRpc2FibGVkJyAmJiBmaWVsZC5rZXkpIHtcbiAgICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZShmaWVsZCwgdmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChwcm9wLmluZGV4T2YoJ21vZGVsLicpID09PSAwKSB7XG4gICAgICBjb25zdCBwYXRoID0gcHJvcC5yZXBsYWNlKC9ebW9kZWxcXC4vLCAnJyksXG4gICAgICAgIGNvbnRyb2wgPSBmaWVsZC5rZXkgJiYgcHJvcCA9PT0gcGF0aCA/IGZpZWxkLmZvcm1Db250cm9sIDogZmllbGQucGFyZW50LmZvcm1Db250cm9sLmdldChwYXRoKTtcblxuICAgICAgaWYgKFxuICAgICAgICBjb250cm9sXG4gICAgICAgICYmICEoaXNOdWxsT3JVbmRlZmluZWQoY29udHJvbC52YWx1ZSkgJiYgaXNOdWxsT3JVbmRlZmluZWQodmFsdWUpKVxuICAgICAgICAmJiBjb250cm9sLnZhbHVlICE9PSB2YWx1ZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRyb2wucGF0Y2hWYWx1ZSh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5lbWl0RXhwcmVzc2lvbkNoYW5nZXMoZmllbGQsIHByb3AsIHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEV4cHJlc3Npb25DaGFuZ2VzKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlLCBwcm9wZXJ0eTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgaWYgKCFmaWVsZC5vcHRpb25zLmZpZWxkQ2hhbmdlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZpZWxkLm9wdGlvbnMuZmllbGRDaGFuZ2VzLm5leHQoe1xuICAgICAgZmllbGQ6IGZpZWxkLFxuICAgICAgdHlwZTogJ2V4cHJlc3Npb25DaGFuZ2VzJyxcbiAgICAgIHByb3BlcnR5LFxuICAgICAgdmFsdWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -99,25 +99,27 @@ export class FieldFormExtension {
|
|
|
99
99
|
const { formControl: c } = field;
|
|
100
100
|
/** @type {?} */
|
|
101
101
|
const disabled = field.templateOptions ? field.templateOptions.disabled : false;
|
|
102
|
-
if (
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
102
|
+
if (field.key && c) {
|
|
103
|
+
if (disabled && c.enabled) {
|
|
104
|
+
c.disable({ emitEvent: false, onlySelf: true });
|
|
105
|
+
if (!c.parent) {
|
|
106
|
+
updateControlValidity(c);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
updateValidity = true;
|
|
110
|
+
}
|
|
109
111
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
112
|
+
if (!disabled && c.disabled) {
|
|
113
|
+
c.enable({ emitEvent: false, onlySelf: true });
|
|
114
|
+
if (!c.parent) {
|
|
115
|
+
updateControlValidity(c);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
updateValidity = true;
|
|
119
|
+
}
|
|
118
120
|
}
|
|
119
121
|
}
|
|
120
|
-
if (null === c.validator || null === c.asyncValidator) {
|
|
122
|
+
if (c && (null === c.validator || null === c.asyncValidator)) {
|
|
121
123
|
c.setValidators((/**
|
|
122
124
|
* @return {?}
|
|
123
125
|
*/
|
|
@@ -208,4 +210,4 @@ if (false) {
|
|
|
208
210
|
*/
|
|
209
211
|
FieldFormExtension.prototype.config;
|
|
210
212
|
}
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZm9ybS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3gtZm9ybWx5L2NvcmUvIiwic291cmNlcyI6WyJsaWIvZXh0ZW5zaW9ucy9maWVsZC1mb3JtL2ZpZWxkLWZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUEwQixVQUFVLEVBQWlDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxjQUFjLElBQUkscUJBQXFCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEcsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQUcxQixNQUFNLE9BQU8sa0JBQWtCOzs7O0lBQzdCLFlBQW9CLE1BQW9CO1FBQXBCLFdBQU0sR0FBTixNQUFNLENBQWM7SUFBSSxDQUFDOzs7OztJQUU3QyxVQUFVLENBQUMsS0FBNkI7UUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDakIsT0FBTztTQUNSO1FBRUQsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNsQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDbEU7YUFBTTtZQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDOzs7OztJQUVELFlBQVksQ0FBQyxLQUE2QjtRQUN4QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDaEIsT0FBTztTQUNSOztjQUVLLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUNoRCxJQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFF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QUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQztTQUNwRTtRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7Q0FDRjs7Ozs7O0lBbElhLG9DQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1seUV4dGVuc2lvbiwgRm9ybWx5Q29uZmlnIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZm9ybWx5LmNvbmZpZyc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9mb3JtbHkuZmllbGQuY29uZmlnJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wsIEFic3RyYWN0Q29udHJvbE9wdGlvbnMsIFZhbGlkYXRvcnMsIFZhbGlkYXRvckZuLCBBc3luY1ZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZ2V0RmllbGRWYWx1ZSwgZGVmaW5lSGlkZGVuUHJvcCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IHJlZ2lzdGVyQ29udHJvbCwgZmluZENvbnRyb2wsIHVwZGF0ZVZhbGlkaXR5IGFzIHVwZGF0ZUNvbnRyb2xWYWxpZGl0eSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcblxuLyoqIEBleHBlcmltZW50YWwgKi9cbmV4cG9ydCBjbGFzcyBGaWVsZEZvcm1FeHRlbnNpb24gaW1wbGVtZW50cyBGb3JtbHlFeHRlbnNpb24ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZzogRm9ybWx5Q29uZmlnKSB7IH1cblxuICBvblBvcHVsYXRlKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlKSB7XG4gICAgaWYgKCFmaWVsZC5wYXJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZmllbGQuZmllbGRHcm91cCAmJiAhZmllbGQua2V5KSB7XG4gICAgICBkZWZpbmVIaWRkZW5Qcm9wKGZpZWxkLCAnZm9ybUNvbnRyb2wnLCBmaWVsZC5wYXJlbnQuZm9ybUNvbnRyb2wpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZEZvcm1Db250cm9sKGZpZWxkKTtcbiAgICB9XG4gIH1cblxuICBwb3N0UG9wdWxhdGUoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUpIHtcbiAgICBpZiAoZmllbGQucGFyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZmllbGRzVG9VcGRhdGUgPSB0aGlzLnNldFZhbGlkYXRvcnMoZmllbGQpO1xuICAgIGlmIChmaWVsZHNUb1VwZGF0ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZmllbGRzVG9VcGRhdGUubGVuZ3RoID09PSAxKSB7XG4gICAgICBsZXQgY29udHJvbCA9IGZpZWxkc1RvVXBkYXRlWzBdLmZvcm1Db250cm9sO1xuICAgICAgd2hpbGUgKGNvbnRyb2wpIHtcbiAgICAgICAgKGNvbnRyb2wgYXMgYW55KS5fdXBkYXRlVHJlZVZhbGlkaXR5KHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICAgIGNvbnRyb2wgPSBjb250cm9sLnBhcmVudDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgKGZpZWxkLmZvcm1Db250cm9sIGFzIGFueSkuX3VwZGF0ZVRyZWVWYWxpZGl0eSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkRm9ybUNvbnRyb2woZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUpIHtcbiAgICBsZXQgY29udHJvbCA9IGZpbmRDb250cm9sKGZpZWxkKTtcbiAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2xPcHRpb25zOiBBYnN0cmFjdENvbnRyb2xPcHRpb25zID0geyB1cGRhdGVPbjogZmllbGQubW9kZWxPcHRpb25zLnVwZGF0ZU9uIH07XG4gICAgICBjb25zdCB2YWx1ZSA9IGZpZWxkLmtleSA/IGdldEZpZWxkVmFsdWUoZmllbGQpIDogZmllbGQuZGVmYXVsdFZhbHVlO1xuXG4gICAgICBjb25zdCByZWYgPSB0aGlzLmNvbmZpZyA/IHRoaXMuY29uZmlnLnJlc29sdmVGaWVsZFR5cGVSZWYoZmllbGQpIDogbnVsbDtcbiAgICAgIGlmIChyZWYgJiYgcmVmLmNvbXBvbmVudFR5cGUgJiYgcmVmLmNvbXBvbmVudFR5cGVbJ2NyZWF0ZUNvbnRyb2wnXSkge1xuICAgICAgICBjb25zdCBjb21wb25lbnQgPSByZWYuY29tcG9uZW50VHlwZTtcbiAgICAgICAgY29uc29sZS53YXJuKGBOZ3hGb3JtbHk6ICcke2NvbXBvbmVudC5uYW1lfTo6Y3JlYXRlQ29udHJvbCcgaXMgZGVwcmVjYXRlZCBzaW5jZSB2NS4wLCB1c2UgJ3ByZVBvcHVsYXRlJyBob29rIGluc3RlYWQuYCk7XG4gICAgICAgIGNvbnRyb2wgPSBjb21wb25lbnRbJ2NyZWF0ZUNvbnRyb2wnXSh2YWx1ZSwgZmllbGQpO1xuICAgICAgfSBlbHNlIGlmIChmaWVsZC5maWVsZEdyb3VwKSB7XG4gICAgICAgIC8vIFRPRE86IG1vdmUgdG8gcG9zdFBvcHVsYXRlXG4gICAgICAgIGNvbnRyb2wgPSBuZXcgRm9ybUdyb3VwKHt9LCBjb250cm9sT3B0aW9ucyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250cm9sID0gbmV3IEZvcm1Db250cm9sKHZhbHVlLCBjb250cm9sT3B0aW9ucyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJDb250cm9sKGZpZWxkLCBjb250cm9sKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VmFsaWRhdG9ycyhmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSkge1xuICAgIGxldCB1cGRhdGVWYWxpZGl0eSA9IGZhbHNlO1xuICAgIGlmIChmaWVsZC5rZXkgfHwgIWZpZWxkLnBhcmVudCB8fCAoIWZpZWxkLmtleSAmJiAhZmllbGQuZmllbGRHcm91cCkpIHtcbiAgICAgIGNvbnN0IHsgZm9ybUNvbnRyb2w6IGMgfSA9IGZpZWxkO1xuICAgICAgY29uc3QgZGlzYWJsZWQgPSBmaWVsZC50ZW1wbGF0ZU9wdGlvbnMgPyBmaWVsZC50ZW1wbGF0ZU9wdGlvbnMuZGlzYWJsZWQgOiBmYWxzZTtcbiAgICAgIGlmIChkaXNhYmxlZCAmJiBjLmVuYWJsZWQpIHtcbiAgICAgICAgYy5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSwgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICAgIGlmICghYy5wYXJlbnQpIHtcbiAgICAgICAgICB1cGRhdGVDb250cm9sVmFsaWRpdHkoYyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdXBkYXRlVmFsaWRpdHkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghZGlzYWJsZWQgJiYgYy5kaXNhYmxlZCkge1xuICAgICAgICBjLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgICBpZiAoIWMucGFyZW50KSB7XG4gICAgICAgICAgdXBkYXRlQ29udHJvbFZhbGlkaXR5KGMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHVwZGF0ZVZhbGlkaXR5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAobnVsbCA9PT0gYy52YWxpZGF0b3IgfHwgbnVsbCA9PT0gYy5hc3luY1ZhbGlkYXRvcikge1xuICAgICAgICBjLnNldFZhbGlkYXRvcnMoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHYgPSBWYWxpZGF0b3JzLmNvbXBvc2UodGhpcy5tZXJnZVZhbGlkYXRvcnM8VmFsaWRhdG9yRm4+KGZpZWxkLCAnX3ZhbGlkYXRvcnMnKSk7XG5cbiAgICAgICAgICByZXR1cm4gdiA/IHYoYykgOiBudWxsO1xuICAgICAgICB9KTtcbiAgICAgICAgYy5zZXRBc3luY1ZhbGlkYXRvcnMoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHYgPSBWYWxpZGF0b3JzLmNvbXBvc2VBc3luYyh0aGlzLm1lcmdlVmFsaWRhdG9yczxBc3luY1ZhbGlkYXRvckZuPihmaWVsZCwgJ19hc3luY1ZhbGlkYXRvcnMnKSk7XG5cbiAgICAgICAgICByZXR1cm4gdiA/IHYoYykgOiBvZihudWxsKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFjLnBhcmVudCkge1xuICAgICAgICAgIHVwZGF0ZUNvbnRyb2xWYWxpZGl0eShjKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1cGRhdGVWYWxpZGl0eSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBmaWVsZHNUb1VwZGF0ZSA9IHVwZGF0ZVZhbGlkaXR5ID8gW2ZpZWxkXSA6IFtdO1xuICAgIChmaWVsZC5maWVsZEdyb3VwIHx8IFtdKS5mb3JFYWNoKGYgPT4ge1xuICAgICAgY29uc3QgY2hpbGRyZW5Ub1VwZGF0ZSA9IHRoaXMuc2V0VmFsaWRhdG9ycyhmKTtcbiAgICAgIGlmICghdXBkYXRlVmFsaWRpdHkpIHtcbiAgICAgICAgZmllbGRzVG9VcGRhdGUucHVzaCguLi5jaGlsZHJlblRvVXBkYXRlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBmaWVsZHNUb1VwZGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2VWYWxpZGF0b3JzPFQ+KGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlLCB0eXBlOiAnX3ZhbGlkYXRvcnMnIHwgJ19hc3luY1ZhbGlkYXRvcnMnKTogVFtdIHtcbiAgICBjb25zdCB2YWxpZGF0b3JzOiBhbnkgPSBbXTtcbiAgICBjb25zdCBjID0gZmllbGQuZm9ybUNvbnRyb2w7XG4gICAgaWYgKGMgJiYgY1snX2ZpZWxkcyddICYmIGNbJ19maWVsZHMnXS5sZW5ndGggPiAxKSB7XG4gICAgICBjWydfZmllbGRzJ11cbiAgICAgICAgLmZpbHRlcigoZjogRm9ybWx5RmllbGRDb25maWdDYWNoZSkgPT4gIWYuX2hpZGUpXG4gICAgICAgIC5mb3JFYWNoKChmOiBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlKSA9PiB2YWxpZGF0b3JzLnB1c2goLi4uZlt0eXBlXSkpO1xuICAgIH0gZWxzZSBpZiAoZmllbGRbdHlwZV0pIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaCguLi5maWVsZFt0eXBlXSk7XG4gICAgfVxuXG4gICAgaWYgKGZpZWxkLmZpZWxkR3JvdXApIHtcbiAgICAgIGZpZWxkLmZpZWxkR3JvdXBcbiAgICAgICAgLmZpbHRlcihmID0+ICFmLmtleSAmJiBmLmZpZWxkR3JvdXApXG4gICAgICAgIC5mb3JFYWNoKGYgPT4gdmFsaWRhdG9ycy5wdXNoKC4uLnRoaXMubWVyZ2VWYWxpZGF0b3JzKGYsIHR5cGUpKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRvcnM7XG4gIH1cbn1cbiJdfQ==
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZm9ybS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3gtZm9ybWx5L2NvcmUvIiwic291cmNlcyI6WyJsaWIvZXh0ZW5zaW9ucy9maWVsZC1mb3JtL2ZpZWxkLWZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUEwQixVQUFVLEVBQWlDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxjQUFjLElBQUkscUJBQXFCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEcsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQUcxQixNQUFNLE9BQU8sa0JBQWtCOzs7O0lBQzdCLFlBQW9CLE1BQW9CO1FBQXBCLFdBQU0sR0FBTixNQUFNLENBQWM7SUFBSSxDQUFDOzs7OztJQUU3QyxVQUFVLENBQUMsS0FBNkI7UUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDakIsT0FBTztTQUNSO1FBRUQsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNsQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDbEU7YUFBTTtZQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDOzs7OztJQUVELFlBQVksQ0FBQyxLQUE2QjtRQUN4QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDaEIsT0FBTztTQUNSOztjQUVLLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUNoRCxJQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFF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QUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUM7aUJBQ25DLE9BQU87Ozs7WUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUM7U0FDcEU7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7Ozs7OztJQXJJYSxvQ0FBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtbHlFeHRlbnNpb24sIEZvcm1seUNvbmZpZyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm1seS5jb25maWcnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWdDYWNoZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZm9ybWx5LmZpZWxkLmNvbmZpZyc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sLCBBYnN0cmFjdENvbnRyb2xPcHRpb25zLCBWYWxpZGF0b3JzLCBWYWxpZGF0b3JGbiwgQXN5bmNWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGdldEZpZWxkVmFsdWUsIGRlZmluZUhpZGRlblByb3AgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyByZWdpc3RlckNvbnRyb2wsIGZpbmRDb250cm9sLCB1cGRhdGVWYWxpZGl0eSBhcyB1cGRhdGVDb250cm9sVmFsaWRpdHkgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5cbi8qKiBAZXhwZXJpbWVudGFsICovXG5leHBvcnQgY2xhc3MgRmllbGRGb3JtRXh0ZW5zaW9uIGltcGxlbWVudHMgRm9ybWx5RXh0ZW5zaW9uIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWc6IEZvcm1seUNvbmZpZykgeyB9XG5cbiAgb25Qb3B1bGF0ZShmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSkge1xuICAgIGlmICghZmllbGQucGFyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGZpZWxkLmZpZWxkR3JvdXAgJiYgIWZpZWxkLmtleSkge1xuICAgICAgZGVmaW5lSGlkZGVuUHJvcChmaWVsZCwgJ2Zvcm1Db250cm9sJywgZmllbGQucGFyZW50LmZvcm1Db250cm9sKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGRGb3JtQ29udHJvbChmaWVsZCk7XG4gICAgfVxuICB9XG5cbiAgcG9zdFBvcHVsYXRlKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlKSB7XG4gICAgaWYgKGZpZWxkLnBhcmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpZWxkc1RvVXBkYXRlID0gdGhpcy5zZXRWYWxpZGF0b3JzKGZpZWxkKTtcbiAgICBpZiAoZmllbGRzVG9VcGRhdGUubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGZpZWxkc1RvVXBkYXRlLmxlbmd0aCA9PT0gMSkge1xuICAgICAgbGV0IGNvbnRyb2wgPSBmaWVsZHNUb1VwZGF0ZVswXS5mb3JtQ29udHJvbDtcbiAgICAgIHdoaWxlIChjb250cm9sKSB7XG4gICAgICAgIChjb250cm9sIGFzIGFueSkuX3VwZGF0ZVRyZWVWYWxpZGl0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgICBjb250cm9sID0gY29udHJvbC5wYXJlbnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIChmaWVsZC5mb3JtQ29udHJvbCBhcyBhbnkpLl91cGRhdGVUcmVlVmFsaWRpdHkoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZEZvcm1Db250cm9sKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlKSB7XG4gICAgbGV0IGNvbnRyb2wgPSBmaW5kQ29udHJvbChmaWVsZCk7XG4gICAgaWYgKCFjb250cm9sKSB7XG4gICAgICBjb25zdCBjb250cm9sT3B0aW9uczogQWJzdHJhY3RDb250cm9sT3B0aW9ucyA9IHsgdXBkYXRlT246IGZpZWxkLm1vZGVsT3B0aW9ucy51cGRhdGVPbiB9O1xuICAgICAgY29uc3QgdmFsdWUgPSBmaWVsZC5rZXkgPyBnZXRGaWVsZFZhbHVlKGZpZWxkKSA6IGZpZWxkLmRlZmF1bHRWYWx1ZTtcblxuICAgICAgY29uc3QgcmVmID0gdGhpcy5jb25maWcgPyB0aGlzLmNvbmZpZy5yZXNvbHZlRmllbGRUeXBlUmVmKGZpZWxkKSA6IG51bGw7XG4gICAgICBpZiAocmVmICYmIHJlZi5jb21wb25lbnRUeXBlICYmIHJlZi5jb21wb25lbnRUeXBlWydjcmVhdGVDb250cm9sJ10pIHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gcmVmLmNvbXBvbmVudFR5cGU7XG4gICAgICAgIGNvbnNvbGUud2FybihgTmd4Rm9ybWx5OiAnJHtjb21wb25lbnQubmFtZX06OmNyZWF0ZUNvbnRyb2wnIGlzIGRlcHJlY2F0ZWQgc2luY2UgdjUuMCwgdXNlICdwcmVQb3B1bGF0ZScgaG9vayBpbnN0ZWFkLmApO1xuICAgICAgICBjb250cm9sID0gY29tcG9uZW50WydjcmVhdGVDb250cm9sJ10odmFsdWUsIGZpZWxkKTtcbiAgICAgIH0gZWxzZSBpZiAoZmllbGQuZmllbGRHcm91cCkge1xuICAgICAgICAvLyBUT0RPOiBtb3ZlIHRvIHBvc3RQb3B1bGF0ZVxuICAgICAgICBjb250cm9sID0gbmV3IEZvcm1Hcm91cCh7fSwgY29udHJvbE9wdGlvbnMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh2YWx1ZSwgY29udHJvbE9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyQ29udHJvbChmaWVsZCwgY29udHJvbCk7XG4gIH1cblxuICBwcml2YXRlIHNldFZhbGlkYXRvcnMoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUpIHtcbiAgICBsZXQgdXBkYXRlVmFsaWRpdHkgPSBmYWxzZTtcbiAgICBpZiAoZmllbGQua2V5IHx8ICFmaWVsZC5wYXJlbnQgfHwgKCFmaWVsZC5rZXkgJiYgIWZpZWxkLmZpZWxkR3JvdXApKSB7XG4gICAgICBjb25zdCB7IGZvcm1Db250cm9sOiBjIH0gPSBmaWVsZDtcbiAgICAgIGNvbnN0IGRpc2FibGVkID0gZmllbGQudGVtcGxhdGVPcHRpb25zID8gZmllbGQudGVtcGxhdGVPcHRpb25zLmRpc2FibGVkIDogZmFsc2U7XG4gICAgICBpZiAoZmllbGQua2V5ICYmIGMpIHtcbiAgICAgICAgaWYgKGRpc2FibGVkICYmIGMuZW5hYmxlZCkge1xuICAgICAgICAgIGMuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgICAgIGlmICghYy5wYXJlbnQpIHtcbiAgICAgICAgICAgIHVwZGF0ZUNvbnRyb2xWYWxpZGl0eShjKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdXBkYXRlVmFsaWRpdHkgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZGlzYWJsZWQgJiYgYy5kaXNhYmxlZCkge1xuICAgICAgICAgIGMuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSwgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICAgICAgaWYgKCFjLnBhcmVudCkge1xuICAgICAgICAgICAgdXBkYXRlQ29udHJvbFZhbGlkaXR5KGMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB1cGRhdGVWYWxpZGl0eSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cblxuICAgICAgaWYgKGMgJiYgKG51bGwgPT09IGMudmFsaWRhdG9yIHx8IG51bGwgPT09IGMuYXN5bmNWYWxpZGF0b3IpKSB7XG4gICAgICAgIGMuc2V0VmFsaWRhdG9ycygoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdiA9IFZhbGlkYXRvcnMuY29tcG9zZSh0aGlzLm1lcmdlVmFsaWRhdG9yczxWYWxpZGF0b3JGbj4oZmllbGQsICdfdmFsaWRhdG9ycycpKTtcblxuICAgICAgICAgIHJldHVybiB2ID8gdihjKSA6IG51bGw7XG4gICAgICAgIH0pO1xuICAgICAgICBjLnNldEFzeW5jVmFsaWRhdG9ycygoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdiA9IFZhbGlkYXRvcnMuY29tcG9zZUFzeW5jKHRoaXMubWVyZ2VWYWxpZGF0b3JzPEFzeW5jVmFsaWRhdG9yRm4+KGZpZWxkLCAnX2FzeW5jVmFsaWRhdG9ycycpKTtcblxuICAgICAgICAgIHJldHVybiB2ID8gdihjKSA6IG9mKG51bGwpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWMucGFyZW50KSB7XG4gICAgICAgICAgdXBkYXRlQ29udHJvbFZhbGlkaXR5KGMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHVwZGF0ZVZhbGlkaXR5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGZpZWxkc1RvVXBkYXRlID0gdXBkYXRlVmFsaWRpdHkgPyBbZmllbGRdIDogW107XG4gICAgKGZpZWxkLmZpZWxkR3JvdXAgfHwgW10pLmZvckVhY2goZiA9PiB7XG4gICAgICBjb25zdCBjaGlsZHJlblRvVXBkYXRlID0gdGhpcy5zZXRWYWxpZGF0b3JzKGYpO1xuICAgICAgaWYgKCF1cGRhdGVWYWxpZGl0eSkge1xuICAgICAgICBmaWVsZHNUb1VwZGF0ZS5wdXNoKC4uLmNoaWxkcmVuVG9VcGRhdGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpZWxkc1RvVXBkYXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZVZhbGlkYXRvcnM8VD4oZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUsIHR5cGU6ICdfdmFsaWRhdG9ycycgfCAnX2FzeW5jVmFsaWRhdG9ycycpOiBUW10ge1xuICAgIGNvbnN0IHZhbGlkYXRvcnM6IGFueSA9IFtdO1xuICAgIGNvbnN0IGMgPSBmaWVsZC5mb3JtQ29udHJvbDtcbiAgICBpZiAoYyAmJiBjWydfZmllbGRzJ10gJiYgY1snX2ZpZWxkcyddLmxlbmd0aCA+IDEpIHtcbiAgICAgIGNbJ19maWVsZHMnXVxuICAgICAgICAuZmlsdGVyKChmOiBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlKSA9PiAhZi5faGlkZSlcbiAgICAgICAgLmZvckVhY2goKGY6IEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUpID0+IHZhbGlkYXRvcnMucHVzaCguLi5mW3R5cGVdKSk7XG4gICAgfSBlbHNlIGlmIChmaWVsZFt0eXBlXSkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKC4uLmZpZWxkW3R5cGVdKTtcbiAgICB9XG5cbiAgICBpZiAoZmllbGQuZmllbGRHcm91cCkge1xuICAgICAgZmllbGQuZmllbGRHcm91cFxuICAgICAgICAuZmlsdGVyKGYgPT4gIWYua2V5ICYmIGYuZmllbGRHcm91cClcbiAgICAgICAgLmZvckVhY2goZiA9PiB2YWxpZGF0b3JzLnB1c2goLi4udGhpcy5tZXJnZVZhbGlkYXRvcnMoZiwgdHlwZSkpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgfVxufVxuIl19
|