@messaia/cdk 12.1.3 → 12.2.2

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.
Files changed (107) hide show
  1. package/bundles/messaia-cdk.umd.js +739 -130
  2. package/bundles/messaia-cdk.umd.js.map +1 -1
  3. package/esm2015/lib/base/base.module.js +2 -1
  4. package/esm2015/lib/base/components/base.component.js +16 -2
  5. package/esm2015/lib/base/components/generic-form.component.js +13 -4
  6. package/esm2015/lib/base/components/generic-list.component.js +10 -2
  7. package/esm2015/lib/base/interceptors/base.interceptor.js +9 -2
  8. package/esm2015/lib/base/interceptors/caching-interceptor.js +9 -2
  9. package/esm2015/lib/base/interceptors/loading.interceptor.js +9 -2
  10. package/esm2015/lib/base/services/file.service.js +9 -2
  11. package/esm2015/lib/base/services/loading-screen.service.js +2 -1
  12. package/esm2015/lib/base/services/print.service.js +9 -2
  13. package/esm2015/lib/chips/chips.module.js +2 -1
  14. package/esm2015/lib/chips/components/chips.component.js +27 -5
  15. package/esm2015/lib/common/common.module.js +2 -1
  16. package/esm2015/lib/common/directives/disable-control.directive.js +10 -2
  17. package/esm2015/lib/common/functions/utils.js +28 -1
  18. package/esm2015/lib/common/helpers/app-storage.js +2 -1
  19. package/esm2015/lib/common/helpers/dynamic-builder.js +9 -2
  20. package/esm2015/lib/common/models/app-setting.js +2 -1
  21. package/esm2015/lib/common/pipes/data-source.pipe.js +2 -1
  22. package/esm2015/lib/common/pipes/enum.pipe.js +2 -1
  23. package/esm2015/lib/common/pipes/file-size.pipe.js +2 -1
  24. package/esm2015/lib/common/pipes/filter.pipe.js +2 -1
  25. package/esm2015/lib/common/pipes/first-letter.js +2 -1
  26. package/esm2015/lib/common/pipes/keys.js +2 -1
  27. package/esm2015/lib/common/pipes/month-name.pipe.js +2 -1
  28. package/esm2015/lib/common/pipes/only-number.js +10 -2
  29. package/esm2015/lib/common/pipes/order.pipe.js +2 -1
  30. package/esm2015/lib/common/pipes/placeholder.pipe.js +2 -1
  31. package/esm2015/lib/common/pipes/safe-html.pipe.js +9 -2
  32. package/esm2015/lib/common/pipes/time.pipe.js +2 -1
  33. package/esm2015/lib/common/pipes/titlecase.pipe.js +2 -1
  34. package/esm2015/lib/common/pipes/truncate.pipe.js +2 -1
  35. package/esm2015/lib/common/pipes/values.js +2 -1
  36. package/esm2015/lib/common/services/base.service.js +9 -2
  37. package/esm2015/lib/common/services/enum.service.js +2 -1
  38. package/esm2015/lib/dialogs/alert-dialog/alert-dialog.component.js +10 -3
  39. package/esm2015/lib/dialogs/confirm-dialog/confirm-dialog.component.js +10 -3
  40. package/esm2015/lib/dialogs/dialog.component.js +7 -2
  41. package/esm2015/lib/dialogs/dialogs.module.js +2 -1
  42. package/esm2015/lib/dialogs/prompt-dialog/prompt-dialog.component.js +10 -3
  43. package/esm2015/lib/dialogs/services/dialog.service.js +9 -2
  44. package/esm2015/lib/file/file-input.component.js +10 -2
  45. package/esm2015/lib/file/file.module.js +2 -1
  46. package/esm2015/lib/form-validators/directives/base-directive.js +3 -1
  47. package/esm2015/lib/form-validators/directives/control-host.directive.js +10 -2
  48. package/esm2015/lib/form-validators/directives/html-control-template.directive.js +10 -2
  49. package/esm2015/lib/form-validators/directives/rx-form.directive.js +3 -1
  50. package/esm2015/lib/form-validators/directives/template-validations/async-validation.directive.js +3 -1
  51. package/esm2015/lib/form-validators/directives/template-validations/base-validator.directive.js +3 -1
  52. package/esm2015/lib/form-validators/directives/template-validations/control-expression-process.js +3 -1
  53. package/esm2015/lib/form-validators/directives/template-validations/file-control.directive.js +10 -2
  54. package/esm2015/lib/form-validators/directives/template-validations/image-file-control.directive.js +10 -2
  55. package/esm2015/lib/form-validators/directives/template-validations/rxformcontrol.directive.js +10 -2
  56. package/esm2015/lib/form-validators/domain/element-processor/decimal.provider.js +9 -2
  57. package/esm2015/lib/form-validators/services/reactive-form.module.js +10 -2
  58. package/esm2015/lib/form-validators/services/rx-form-builder.js +9 -2
  59. package/esm2015/lib/form-validators/services/typed-form-builder.js +9 -2
  60. package/esm2015/lib/forms/components/generic-form/generic-form.component.js +35 -5
  61. package/esm2015/lib/forms/directives/mat-form-field-readonly.directive.js +9 -2
  62. package/esm2015/lib/forms/forms.module.js +2 -1
  63. package/esm2015/lib/forms/helpers/abstract-mat-form-field.js +10 -2
  64. package/esm2015/lib/forms/helpers/value-accessor-base.js +3 -1
  65. package/esm2015/lib/forms/validators/equal-validator.directive.js +9 -2
  66. package/esm2015/lib/forms/validators/native-element-injector.directive.js +9 -2
  67. package/esm2015/lib/forms/validators/unique-validator-directive.js +10 -2
  68. package/esm2015/lib/http/http.module.js +2 -1
  69. package/esm2015/lib/layout/layout-card-over/layout-card-over.component.js +4 -2
  70. package/esm2015/lib/layout/layout-footer/layout-footer.component.js +11 -3
  71. package/esm2015/lib/layout/layout-manage-list/layout-manage-list.component.js +11 -3
  72. package/esm2015/lib/layout/layout-manage-list/layout-manage-list.directives.js +28 -4
  73. package/esm2015/lib/layout/layout-nav/layout-nav.component.js +11 -3
  74. package/esm2015/lib/layout/layout-nav-list/layout-nav-list.component.js +11 -3
  75. package/esm2015/lib/layout/layout-nav-list/layout-nav-list.directives.js +28 -4
  76. package/esm2015/lib/layout/layout-toggle.class.js +10 -2
  77. package/esm2015/lib/layout/layout.component.js +4 -2
  78. package/esm2015/lib/layout/layout.directives.js +28 -4
  79. package/esm2015/lib/layout/layout.module.js +2 -1
  80. package/esm2015/lib/layout/navigation-drawer/navigation-drawer.component.js +13 -3
  81. package/esm2015/lib/media/directives/media-toggle.directive.js +10 -2
  82. package/esm2015/lib/media/media.module.js +2 -1
  83. package/esm2015/lib/media/services/media.service.js +9 -2
  84. package/esm2015/lib/menu/components/menu.component.js +3 -1
  85. package/esm2015/lib/menu/menu.module.js +2 -1
  86. package/esm2015/lib/menu/services/menu-items.service.js +9 -2
  87. package/esm2015/lib/menu/services/menu.resolve.js +10 -2
  88. package/esm2015/lib/menu/services/menu.service.js +9 -2
  89. package/esm2015/lib/search/search.module.js +2 -1
  90. package/esm2015/lib/search/vd-search-box/vd-search-box.component.js +4 -2
  91. package/esm2015/lib/search/vd-search-input/vd-search-input.component.js +11 -3
  92. package/esm2015/lib/select/select.component.js +19 -4
  93. package/esm2015/lib/select/select.module.js +2 -1
  94. package/esm2015/lib/table/components/dynamic-table/dynamic-table.component.js +11 -3
  95. package/esm2015/lib/table/components/filter-clear.component.js +9 -2
  96. package/esm2015/lib/table/components/filter-date.component.js +10 -2
  97. package/esm2015/lib/table/components/filter-input.component.js +10 -2
  98. package/esm2015/lib/table/components/filter-select.component.js +18 -3
  99. package/esm2015/lib/table/directives/data-source-filter.directive.js +3 -1
  100. package/esm2015/lib/table/paginator-intl.js +2 -1
  101. package/esm2015/lib/table/table.module.js +2 -1
  102. package/fesm2015/messaia-cdk.js +696 -86
  103. package/fesm2015/messaia-cdk.js.map +1 -1
  104. package/lib/base/components/base.component.d.ts +4 -0
  105. package/lib/common/functions/utils.d.ts +10 -0
  106. package/messaia-cdk.metadata.json +1 -1
  107. package/package.json +4 -1
@@ -161,18 +161,26 @@ export class RxFormControlDirective extends BaseValidator {
161
161
  this.maskProvider.onDestroy();
162
162
  }
163
163
  }
164
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
164
165
  RxFormControlDirective.decorators = [
165
166
  { type: Directive, args: [{
166
167
  selector: '[ngModel],[formControlName],[formControl]',
167
168
  providers: [NGMODEL_BINDING],
168
169
  },] }
169
170
  ];
170
- /** @nocollapse */
171
+ /**
172
+ * @type {function(): !Array<(null|{
173
+ * type: ?,
174
+ * decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
175
+ * })>}
176
+ * @nocollapse
177
+ */
171
178
  RxFormControlDirective.ctorParameters = () => [
172
179
  { type: ElementRef },
173
180
  { type: Renderer2 },
174
181
  { type: DecimalProvider }
175
182
  ];
183
+ /** @type {!Object<string, !Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
176
184
  RxFormControlDirective.propDecorators = {
177
185
  rxalpha: [{ type: Input }],
178
186
  rxalphaNumeric: [{ type: Input }],
@@ -226,4 +234,4 @@ RxFormControlDirective.propDecorators = {
226
234
  rxgrid: [{ type: Input }],
227
235
  rxdate: [{ type: Input }]
228
236
  };
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhmb3JtY29udHJvbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9mb3JtLXZhbGlkYXRvcnMvZGlyZWN0aXZlcy90ZW1wbGF0ZS12YWxpZGF0aW9ucy9yeGZvcm1jb250cm9sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFnQyxhQUFhLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RixPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUzRCxNQUFNLGVBQWUsR0FBUTtJQUN6QixPQUFPLEVBQUUsYUFBYTtJQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO0lBQ3JELEtBQUssRUFBRSxJQUFJO0NBQ2QsQ0FBQztBQUVGLE1BQU0sOEJBQThCLEdBQUcsQ0FBQyxVQUFVLEVB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QixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3RDLENBQUM7OztZQTVOSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDJDQUEyQztnQkFDckQsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDO2FBQy9COzs7O1lBM0JtQixVQUFVO1lBQXdDLFNBQVM7WUFLdEUsZUFBZTs7O3NCQXNDbkIsS0FBSzs2QkFDTCxLQUFLO3NCQUNMLEtBQUs7d0JBQ0wsS0FBSzt3QkFDTCxLQUFLO3lCQUNMLEtBQUs7MkJBQ0wsS0FBSzt3QkFDTCxLQUFLOzBCQUNMLEtBQUs7c0JBQ0wsS0FBSztzQkFDTCxLQUFLO3lCQUNMLEtBQUs7cUJBQ0wsS0FBSzswQkFDTCxLQUFLO3VCQUNMLEtBQUs7eUJBQ0wsS0FBSzttQ0FDTCxLQUFLOzRCQUNMLEtBQUs7eUJBQ0wsS0FBSztxQkFDTCxLQUFLO3lCQUNMLEtBQUs7d0JBQ0wsS0FBSzt5QkFDTCxLQUFLO3lCQUNMLEtBQUs7Z0NBQ0wsS0FBSzswQkFDTCxLQUFLOzBCQUNMLEtBQUs7b0JBQ0wsS0FBSzt3QkFDTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsS0FBSzt3QkFDTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsS0FBSzt3QkFDTCxLQUFLO29CQUNMLEtBQUs7eUJBQ0wsS0FBSztxQkFDTCxLQUFLOzRCQUNMLEtBQUs7eUJBQ0wsS0FBSztzQkFDTCxLQUFLO3FCQUNMLEtBQUs7MkJBQ0wsS0FBSztxQkFDTCxLQUFLOzBCQUNMLEtBQUs7b0JBQ0wsS0FBSzt1QkFDTCxLQUFLO3lCQUNMLEtBQUs7c0JBQ0wsS0FBSztxQkFDTCxLQUFLO3FCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBOR19WQUxJREFUT1JTLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCTEFOSywgQkxVUiwgRUxFTUVOVF9WQUxVRSwgRk9DVVMgfSBmcm9tIFwiLi4vLi4vY29uc3RcIjtcbmltcG9ydCB7IEFQUF9WQUxJREFUT1JTIH0gZnJvbSAnLi4vLi4vY29uc3QvYXBwLXZhbGlkYXRvcnMuY29uc3QnO1xuaW1wb3J0IHsgQ09ORElUSU9OQUxfVkFMSURBVE9SLCBURU1QTEFURV9WQUxJREFUSU9OX0NPTkZJRywgVkFMSURBVE9SX0NPTkZJRyB9IGZyb20gJy4uLy4uL2NvbnN0L2FwcC5jb25zdCc7XG5pbXBvcnQgeyBEZWNpbWFsUHJvdmlkZXIgfSBmcm9tIFwiLi4vLi4vZG9tYWluL2VsZW1lbnQtcHJvY2Vzc29yL2RlY2ltYWwucHJvdmlkZXJcIjtcbmltcG9ydCB7IE1hc2tQcm92aWRlciB9IGZyb20gJy4uLy4uL2RvbWFpbi9lbGVtZW50LXByb2Nlc3Nvci9tYXNrLnByb3ZpZGVyJztcbmltcG9ydCB7IEFscGhhQ29uZmlnLCBCYXNlQ29uZmlnLCBDb21wYXJlQ29uZmlnLCBDb21wb3NlQ29uZmlnLCBDb250YWluc0NvbmZpZywgQ3JlZGl0Q2FyZENvbmZpZywgRGF0ZUNvbmZpZywgRGVmYXVsdENvbmZpZywgRGlmZmVyZW50Q29uZmlnLCBEaWdpdENvbmZpZywgRW1haWxDb25maWcsIEV4dGVuc2lvbkNvbmZpZywgRmFjdG9yQ29uZmlnLCBNZXNzYWdlQ29uZmlnLCBOdW1iZXJDb25maWcsIE51bWVyaWNDb25maWcsIFBhc3N3b3JkQ29uZmlnLCBSYW5nZUNvbmZpZywgUmVsYXRpb25hbE9wZXJhdG9yQ29uZmlnLCBSZXF1aXJlZENvbmZpZywgUnVsZUNvbmZpZywgU2l6ZUNvbmZpZywgVGltZUNvbmZpZywgVW5pcXVlQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbmZpZyc7XG5pbXBvcnQgeyBSeEZvcm1Db250cm9sIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2Zvcm0tY29udHJvbFwiO1xuaW1wb3J0IHsgUmVnZXhWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uVXRpbCB9IGZyb20gJy4uLy4uL3V0aWwvYXBwLXV0aWwnO1xuaW1wb3J0IHsgQmFzZVZhbGlkYXRvciB9IGZyb20gJy4vYmFzZS12YWxpZGF0b3IuZGlyZWN0aXZlJztcblxuY29uc3QgTkdNT0RFTF9CSU5ESU5HOiBhbnkgPSB7XG4gICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSeEZvcm1Db250cm9sRGlyZWN0aXZlKSxcbiAgICBtdWx0aTogdHJ1ZVxufTtcblxuY29uc3QgQUxMT1dfVkFMSURBVE9SX1dJVEhPVVRfQ09ORklHID0gWydyZXF1aXJlZCcsICdub3RFbXB0eScsICdhbHBoYScsICdhbHBoYU51bWVyaWMnLCAnYXNjaWknLCAnZGF0YVVyaScsICdkaWdpdCcsICdlbWFpbCcsICdldmVuJywgJ2hleENvbG9yJywgJ2pzb24nLCAnbGF0aXR1ZGUnLCAnbGF0TG9uZycsICdsZWFwWWVhcicsICdsb25naXR1ZGUnLCAnbG93ZXJDYXNlJywgJ21hYycsICdvZGQnLCAncG9ydCcsICdwcmltZU51bWJlcicsICd0aW1lJywgJ3VwcGVyQ2FzZScsICd1cmwnLCAndW5pcXVlJywgJ2N1c2lwJywgJ2dpcmQnXTtcbmNvbnN0IE5VTUVSSUM6IHN0cmluZyA9IFwibnVtZXJpY1wiO1xuY29uc3QgSVNfRk9STUFUOiBzdHJpbmcgPSBcImlzRm9ybWF0XCI7XG5jb25zdCBESUdJVFNfSU5GTzogc3RyaW5nID0gXCJkaWdpdHNJbmZvXCI7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW25nTW9kZWxdLFtmb3JtQ29udHJvbE5hbWVdLFtmb3JtQ29udHJvbF0nLFxuICAgIHByb3ZpZGVyczogW05HTU9ERUxfQklORElOR10sXG59KVxuZXhwb3J0IGNsYXNzIFJ4Rm9ybUNvbnRyb2xEaXJlY3RpdmUgZXh0ZW5kcyBCYXNlVmFsaWRhdG9yIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIFZhbGlkYXRvciB7XG4gICAgcHJpdmF0ZSBldmVudExpc3RlbmVyczogYW55W10gPSBbXTtcbiAgICBwcml2YXRlIGlzTnVtZXJpY1N1YnNjcmliZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcml2YXRlIGlzRm9jdXNDYWxsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcml2YXRlIGlzTWFza2VkOiBib29sZWFuID0gZmFsc2U7XG5cblxuICAgIHNldCB2YWxpZGF0aW9uQ29udHJvbHModmFsdWU6IHsgW2tleTogc3RyaW5nXTogRm9ybUNvbnRyb2wgfSkge1xuICAgICAgICB0aGlzLmNvbnRyb2xzID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IHZhbGlkYXRpb25Db250cm9scygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbHM7XG4gICAgfVxuXG4gICAgQElucHV0KCkgcnhhbHBoYTogQWxwaGFDb25maWc7XG4gICAgQElucHV0KCkgcnhhbHBoYU51bWVyaWM6IEFscGhhQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4YXNjaWk6IEJhc2VDb25maWc7XG4gICAgQElucHV0KCkgcnhjb21wYXJlOiBDb21wYXJlQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4Y29tcG9zZTogQ29tcG9zZUNvbmZpZztcbiAgICBASW5wdXQoKSByeGNvbnRhaW5zOiBDb250YWluc0NvbmZpZztcbiAgICBASW5wdXQoKSByeGNyZWRpdENhcmQ6IENyZWRpdENhcmRDb25maWc7XG4gICAgQElucHV0KCkgcnhkYXRhVXJpOiBCYXNlQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4ZGlmZmVyZW50OiBEaWZmZXJlbnRDb25maWc7XG4gICAgQElucHV0KCkgcnhkaWdpdDogRGlnaXRDb25maWc7XG4gICAgQElucHV0KCkgcnhlbWFpbDogRW1haWxDb25maWc7XG4gICAgQElucHV0KCkgcnhlbmRzV2l0aDogRGVmYXVsdENvbmZpZztcbiAgICBASW5wdXQoKSByeGV2ZW46IEJhc2VDb25maWc7XG4gICAgQElucHV0KCkgcnhleHRlbnNpb246IEV4dGVuc2lvbkNvbmZpZztcbiAgICBASW5wdXQoKSByeGZhY3RvcjogRmFjdG9yQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4ZmlsZVNpemU6IFNpemVDb25maWc7XG4gICAgQElucHV0KCkgcnhncmVhdGVyVGhhbkVxdWFsVG86IFJlbGF0aW9uYWxPcGVyYXRvckNvbmZpZztcbiAgICBASW5wdXQoKSByeGdyZWF0ZXJUaGFuOiBSZWxhdGlvbmFsT3BlcmF0b3JDb25maWc7XG4gICAgQElucHV0KCkgcnhoZXhDb2xvcjogTWVzc2FnZUNvbmZpZztcbiAgICBASW5wdXQoKSByeGpzb246IERlZmF1bHRDb25maWc7XG4gICAgQElucHV0KCkgcnhsYXRpdHVkZTogQmFzZUNvbmZpZztcbiAgICBASW5wdXQoKSByeGxhdExvbmc6IEJhc2VDb25maWc7XG4gICAgQElucHV0KCkgcnhsZWFwWWVhcjogQmFzZUNvbmZpZztcbiAgICBASW5wdXQoKSByeGxlc3NUaGFuOiBSZWxhdGlvbmFsT3BlcmF0b3JDb25maWc7XG4gICAgQElucHV0KCkgcnhsZXNzVGhhbkVxdWFsVG86IFJlbGF0aW9uYWxPcGVyYXRvckNvbmZpZztcbiAgICBASW5wdXQoKSByeGxvbmdpdHVkZTogQmFzZUNvbmZpZztcbiAgICBASW5wdXQoKSByeGxvd2VyQ2FzZTogTWVzc2FnZUNvbmZpZztcbiAgICBASW5wdXQoKSByeG1hYzogQmFzZUNvbmZpZztcbiAgICBASW5wdXQoKSByeG1heERhdGU6IERhdGVDb25maWc7XG4gICAgQElucHV0KCkgcnhtYXhMZW5ndGg6IE51bWJlckNvbmZpZztcbiAgICBASW5wdXQoKSByeG1heE51bWJlcjogTnVtYmVyQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4bWluRGF0ZTogRGF0ZUNvbmZpZztcbiAgICBASW5wdXQoKSByeG1pbkxlbmd0aDogTnVtYmVyQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4bWluTnVtYmVyOiBOdW1iZXJDb25maWc7XG4gICAgQElucHV0KCkgcnhudW1lcmljOiBOdW1lcmljQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4b2RkOiBCYXNlQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4cGFzc3dvcmQ6IFBhc3N3b3JkQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4cG9ydDogQmFzZUNvbmZpZztcbiAgICBASW5wdXQoKSByeHByaW1lTnVtYmVyOiBCYXNlQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4cmVxdWlyZWQ6IFJlcXVpcmVkQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4cmFuZ2U6IFJhbmdlQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4cnVsZTogUnVsZUNvbmZpZztcbiAgICBASW5wdXQoKSByeHN0YXJ0c1dpdGg6IERlZmF1bHRDb25maWc7XG4gICAgQElucHV0KCkgcnh0aW1lOiBUaW1lQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4dXBwZXJDYXNlOiBNZXNzYWdlQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4dXJsOiBEZWZhdWx0Q29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4dW5pcXVlOiBVbmlxdWVDb25maWc7XG4gICAgQElucHV0KCkgcnhub3RFbXB0eTogQmFzZUNvbmZpZztcbiAgICBASW5wdXQoKSByeGN1c2lwOiBCYXNlQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4Z3JpZDogQmFzZUNvbmZpZztcbiAgICBASW5wdXQoKSByeGRhdGU6IEJhc2VDb25maWc7XG5cblxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZGVjaW1hbFByb3ZpZGVyOiBEZWNpbWFsUHJvdmlkZXIpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIE5vZGU7XG4gICAgICAgIHRoaXMuc2V0RXZlbnROYW1lKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGxldCB2YWxpZGF0b3JzID0gW107XG4gICAgICAgIE9iamVjdC5rZXlzKEFQUF9WQUxJREFUT1JTKS5mb3JFYWNoKHZhbGlkYXRvck5hbWUgPT4ge1xuICAgICAgICAgICAgaWYgKCh0aGlzW2ByeCR7dmFsaWRhdG9yTmFtZX1gXSkgfHwgKEFMTE9XX1ZBTElEQVRPUl9XSVRIT1VUX0NPTkZJRy5pbmRleE9mKHZhbGlkYXRvck5hbWUpICE9IC0xICYmIHRoaXNbYHJ4JHt2YWxpZGF0b3JOYW1lfWBdID09IEJMQU5LKSkge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChBUFBfVkFMSURBVE9SU1t2YWxpZGF0b3JOYW1lXSh0aGlzW2ByeCR7dmFsaWRhdG9yTmFtZX1gXSkpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm5hbWUgJiYgISh0aGlzLmZvcm1Db250cm9sTmFtZSAmJiB0aGlzLmZvcm1Db250cm9sKSkge1xuICAgICAgICAgICAgICAgICAgICBBcHBsaWNhdGlvblV0aWwuY29uZmlndXJlQ29udHJvbCh0aGlzLmNvbnRyb2xDb25maWcsIHRoaXNbYHJ4JHt2YWxpZGF0b3JOYW1lfWBdLCB2YWxpZGF0b3JOYW1lKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgaWYgKHZhbGlkYXRvcnMubGVuZ3RoID4gMClcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdG9ycyA9IHZhbGlkYXRvcnNcbiAgICAgICAgaWYgKHRoaXMucnhudW1lcmljICYmICh0aGlzLnJ4bnVtZXJpYy5pc0Zvcm1hdCB8fCB0aGlzLnJ4bnVtZXJpYy5kaWdpdHNJbmZvKSkge1xuICAgICAgICAgICAgdGhpcy5iaW5kTnVtZXJpY0VsZW1lbnRFdmVudCgpO1xuICAgICAgICB9XG5cbiAgICB9XG5cblxuICAgIGJsdXJFdmVudCgpIHtcbiAgICAgICAgaWYgKCEodGhpcy5mb3JtQ29udHJvbCAmJiB0aGlzLmZvcm1Db250cm9sLmVycm9ycyAmJiB0aGlzLmZvcm1Db250cm9sLmVycm9ycy5udW1lcmljKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgIT09IG51bGwgJiYgdGhpcy5mb3JtQ29udHJvbC52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5kZWNpbWFsUHJvdmlkZXIudHJhbnNGb3JtRGVjaW1hbCh0aGlzLmZvcm1Db250cm9sLnZhbHVlLCB0aGlzLnJ4bnVtZXJpYy5kaWdpdHNJbmZvKTtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9ICghdGhpcy5yeG51bWVyaWMuaXNGb3JtYXQpID8gdGhpcy5kZWNpbWFsUHJvdmlkZXIucmVwbGFjZXIodmFsdWUpIDogdmFsdWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZU9uRWxlbWVudCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmlzRm9jdXNDYWxsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJpbmROdW1lcmljRWxlbWVudEV2ZW50KGNvbmZpZz86IE51bWVyaWNDb25maWcpIHtcbiAgICAgICAgaWYgKGNvbmZpZylcbiAgICAgICAgICAgIHRoaXMucnhudW1lcmljID0gY29uZmlnO1xuICAgICAgICBsZXQgbGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmVsZW1lbnQsIEJMVVIsIHRoaXMuYmx1ckV2ZW50LmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpXG4gICAgICAgIGxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbGVtZW50LCBGT0NVUywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzRm9jdXNDYWxsZWQgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKCEodGhpcy5mb3JtQ29udHJvbCAmJiB0aGlzLmZvcm1Db250cm9sLmVycm9ycyAmJiB0aGlzLmZvcm1Db250cm9sLmVycm9ycy5udW1lcmljKSAmJiB0aGlzLmZvcm1Db250cm9sLnZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmRlY2ltYWxQcm92aWRlci5yZXBsYWNlcih0aGlzLmVsZW1lbnQudmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVPbkVsZW1lbnQodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5ldmVudExpc3RlbmVycy5wdXNoKGxpc3RlbmVyKVxuICAgIH1cblxuICAgIGJpbmRWYWx1ZUNoYW5nZUV2ZW50KCkge1xuICAgICAgICBpZiAodGhpcy5ldmVudE5hbWUgIT0gQkxBTkspIHtcbiAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZWxlbWVudCwgdGhpcy5ldmVudE5hbWUsICgpID0+IHtcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyh0aGlzLnZhbGlkYXRpb25Db250cm9scykuZm9yRWFjaChmaWVsZE5hbWUgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25Db250cm9sc1tmaWVsZE5hbWVdLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3Vic2NyaWJlTnVtZXJpY0Zvcm1hdHRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybUNvbnRyb2xbVkFMSURBVE9SX0NPTkZJR10gJiYgdGhpcy5mb3JtQ29udHJvbFtWQUxJREFUT1JfQ09ORklHXVtOVU1FUklDXSAmJiAodGhpcy5mb3JtQ29udHJvbFtWQUxJREFUT1JfQ09ORklHXVtOVU1FUklDXVtJU19GT1JNQVRdIHx8IHRoaXMuZm9ybUNvbnRyb2xbVkFMSURBVE9SX0NPTkZJR11bTlVNRVJJQ11bRElHSVRTX0lORk9dKSkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzTnVtZXJpY1N1YnNjcmliZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJpbmROdW1lcmljRWxlbWVudEV2ZW50KHRoaXMuZm9ybUNvbnRyb2xbVkFMSURBVE9SX0NPTkZJR11bTlVNRVJJQ10pO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNOdW1lcmljU3Vic2NyaWJlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNGb2N1c0NhbGxlZCAmJiBSZWdleFZhbGlkYXRvci5pc05vdEJsYW5rKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ibHVyRXZlbnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgc3Vic2NyaWJlTWFza1ZhbGlkYXRvcigpIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybUNvbnRyb2xbVkFMSURBVE9SX0NPTkZJR10gJiYgdGhpcy5mb3JtQ29udHJvbFtWQUxJREFUT1JfQ09ORklHXVtcIm1hc2tcIl0gJiYgIXRoaXMuaXNNYXNrZWQpIHtcbiAgICAgICAgICAgIGxldCBjb25maWcgPSB0aGlzLmZvcm1Db250cm9sW1ZBTElEQVRPUl9DT05GSUddW1wibWFza1wiXTtcbiAgICAgICAgICAgIHRoaXMubWFza1Byb3ZpZGVyID0gbmV3IE1hc2tQcm92aWRlcih0aGlzLmVsZW1lbnQsIGNvbmZpZy5tYXNrLCB0aGlzLnJlbmRlcmVyLCB0aGlzLmZvcm1Db250cm9sIGFzIEZvcm1Db250cm9sLCBjb25maWcpO1xuICAgICAgICAgICAgdGhpcy5pc01hc2tlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFZhbHVlT25FbGVtZW50KHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnQsIEVMRU1FTlRfVkFMVUUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFRlbXBsYXRlVmFsaWRhdG9ycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICAgICAgZm9yIChsZXQgdmFsaWRhdG9yTmFtZSBpbiBjb250cm9sW1ZBTElEQVRPUl9DT05GSUddKSB7XG4gICAgICAgICAgICB0aGlzW3ZhbGlkYXRvck5hbWVdID0gY29udHJvbFtWQUxJREFUT1JfQ09ORklHXVt2YWxpZGF0b3JOYW1lXTtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGUgY29udHJvbFtURU1QTEFURV9WQUxJREFUSU9OX0NPTkZJR107XG4gICAgICAgIGRlbGV0ZSBjb250cm9sW1ZBTElEQVRPUl9DT05GSUddXG4gICAgICAgIHRoaXMubmdPbkluaXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZU9uRWxlbWVudENsYXNzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHZhciBwcmV2aW91c0NsYXNzTmFtZTogc3RyaW5nID0gJyc7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoY2xhc3NOYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgICAgIGlmIChwcmV2aW91c0NsYXNzTmFtZSlcbiAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUocHJldmlvdXNDbGFzc05hbWUpO1xuICAgICAgICAgICAgaWYgKGNsYXNzTmFtZSlcbiAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKVxuICAgICAgICAgICAgcHJldmlvdXNDbGFzc05hbWUgPSBjbGFzc05hbWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFZhbGlkYXRvckNvbmZpZyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Db250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sID0gY29udHJvbDtcbiAgICAgICAgICAgIGxldCByeEZvcm1Db250cm9sID0gdGhpcy5mb3JtQ29udHJvbCBhcyBSeEZvcm1Db250cm9sO1xuICAgICAgICAgICAgaWYgKHJ4Rm9ybUNvbnRyb2wudXBkYXRlT25FbGVtZW50Q2xhc3MpXG4gICAgICAgICAgICAgICAgcnhGb3JtQ29udHJvbC51cGRhdGVPbkVsZW1lbnRDbGFzcyA9IHRoaXMudXBkYXRlT25FbGVtZW50Q2xhc3ModGhpcy5lbGVtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlTWFza1ZhbGlkYXRvcigpO1xuICAgICAgICB0aGlzLnN1YnNjcmliZU51bWVyaWNGb3JtYXR0ZXIoKTtcbiAgICAgICAgaWYgKGNvbnRyb2xbVEVNUExBVEVfVkFMSURBVElPTl9DT05GSUddKVxuICAgICAgICAgICAgdGhpcy5zZXRUZW1wbGF0ZVZhbGlkYXRvcnMoY29udHJvbCk7XG4gICAgICAgIGlmIChjb250cm9sW0NPTkRJVElPTkFMX1ZBTElEQVRPUl0pIHtcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uYWxWYWxpZGF0b3IgPSBjb250cm9sW0NPTkRJVElPTkFMX1ZBTElEQVRPUl07XG4gICAgICAgICAgICBkZWxldGUgY29udHJvbFtDT05ESVRJT05BTF9WQUxJREFUT1JdO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICAgICAgdGhpcy5zZXRWYWxpZGF0b3JDb25maWcoY29udHJvbCk7XG4gICAgICAgIGlmICh0aGlzLmNvbmRpdGlvbmFsVmFsaWRhdG9yKVxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25hbFZhbGlkYXRvcihjb250cm9sKTtcbiAgICAgICAgaWYgKCF0aGlzLmlzUHJvY2Vzc2VkKVxuICAgICAgICAgICAgdGhpcy5zZXRNb2RlbENvbmZpZyhjb250cm9sKTtcbiAgICAgICAgcmV0dXJuICgodGhpcy52YWxpZGF0b3JzICYmIHRoaXMudmFsaWRhdG9ycy5sZW5ndGggPiAwKSB8fCB0aGlzLm1hc2tQcm92aWRlcikgPyB0aGlzLnZhbGlkYXRpb24oY29udHJvbCkgOiBudWxsO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmNvbnRyb2xzID0gdW5kZWZpbmVkO1xuICAgICAgICBsZXQgZXZlbnRDb3VudCA9IHRoaXMuZXZlbnRMaXN0ZW5lcnMubGVuZ3RoO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV2ZW50Q291bnQ7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5ldmVudExpc3RlbmVyc1swXSgpO1xuICAgICAgICAgICAgdGhpcy5ldmVudExpc3RlbmVycy5zcGxpY2UoMCwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ldmVudExpc3RlbmVycyA9IFtdO1xuICAgICAgICBpZiAodGhpcy5tYXNrUHJvdmlkZXIpXG4gICAgICAgICAgICB0aGlzLm1hc2tQcm92aWRlci5vbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iXX0=
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhmb3JtY29udHJvbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9mb3JtLXZhbGlkYXRvcnMvZGlyZWN0aXZlcy90ZW1wbGF0ZS12YWxpZGF0aW9ucy9yeGZvcm1jb250cm9sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFnQyxhQUFhLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RixPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUzRCxNQUFNLGVBQWUsR0FBUTtJQUN6QixPQUFPLEVBQUUsYUFBYTtJQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO0lBQ3JELEtBQUssRUFBRSxJQUFJO0NBQ2QsQ0FBQztBQUVGLE1BQU0sOEJBQThCLEdBQUcsQ0FBQyxVQUFVLEVB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QixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3RDLENBQUM7Ozs7WUE1TkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSwyQ0FBMkM7Z0JBQ3JELFNBQVMsRUFBRSxDQUFDLGVBQWUsQ0FBQzthQUMvQjs7Ozs7Ozs7OztZQTNCbUIsVUFBVTtZQUF3QyxTQUFTO1lBS3RFLGVBQWU7Ozs7c0JBc0NuQixLQUFLOzZCQUNMLEtBQUs7c0JBQ0wsS0FBSzt3QkFDTCxLQUFLO3dCQUNMLEtBQUs7eUJBQ0wsS0FBSzsyQkFDTCxLQUFLO3dCQUNMLEtBQUs7MEJBQ0wsS0FBSztzQkFDTCxLQUFLO3NCQUNMLEtBQUs7eUJBQ0wsS0FBSztxQkFDTCxLQUFLOzBCQUNMLEtBQUs7dUJBQ0wsS0FBSzt5QkFDTCxLQUFLO21DQUNMLEtBQUs7NEJBQ0wsS0FBSzt5QkFDTCxLQUFLO3FCQUNMLEtBQUs7eUJBQ0wsS0FBSzt3QkFDTCxLQUFLO3lCQUNMLEtBQUs7eUJBQ0wsS0FBSztnQ0FDTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsS0FBSztvQkFDTCxLQUFLO3dCQUNMLEtBQUs7MEJBQ0wsS0FBSzswQkFDTCxLQUFLO3dCQUNMLEtBQUs7MEJBQ0wsS0FBSzswQkFDTCxLQUFLO3dCQUNMLEtBQUs7b0JBQ0wsS0FBSzt5QkFDTCxLQUFLO3FCQUNMLEtBQUs7NEJBQ0wsS0FBSzt5QkFDTCxLQUFLO3NCQUNMLEtBQUs7cUJBQ0wsS0FBSzsyQkFDTCxLQUFLO3FCQUNMLEtBQUs7MEJBQ0wsS0FBSztvQkFDTCxLQUFLO3VCQUNMLEtBQUs7eUJBQ0wsS0FBSztzQkFDTCxLQUFLO3FCQUNMLEtBQUs7cUJBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJMQU5LLCBCTFVSLCBFTEVNRU5UX1ZBTFVFLCBGT0NVUyB9IGZyb20gXCIuLi8uLi9jb25zdFwiO1xuaW1wb3J0IHsgQVBQX1ZBTElEQVRPUlMgfSBmcm9tICcuLi8uLi9jb25zdC9hcHAtdmFsaWRhdG9ycy5jb25zdCc7XG5pbXBvcnQgeyBDT05ESVRJT05BTF9WQUxJREFUT1IsIFRFTVBMQVRFX1ZBTElEQVRJT05fQ09ORklHLCBWQUxJREFUT1JfQ09ORklHIH0gZnJvbSAnLi4vLi4vY29uc3QvYXBwLmNvbnN0JztcbmltcG9ydCB7IERlY2ltYWxQcm92aWRlciB9IGZyb20gXCIuLi8uLi9kb21haW4vZWxlbWVudC1wcm9jZXNzb3IvZGVjaW1hbC5wcm92aWRlclwiO1xuaW1wb3J0IHsgTWFza1Byb3ZpZGVyIH0gZnJvbSAnLi4vLi4vZG9tYWluL2VsZW1lbnQtcHJvY2Vzc29yL21hc2sucHJvdmlkZXInO1xuaW1wb3J0IHsgQWxwaGFDb25maWcsIEJhc2VDb25maWcsIENvbXBhcmVDb25maWcsIENvbXBvc2VDb25maWcsIENvbnRhaW5zQ29uZmlnLCBDcmVkaXRDYXJkQ29uZmlnLCBEYXRlQ29uZmlnLCBEZWZhdWx0Q29uZmlnLCBEaWZmZXJlbnRDb25maWcsIERpZ2l0Q29uZmlnLCBFbWFpbENvbmZpZywgRXh0ZW5zaW9uQ29uZmlnLCBGYWN0b3JDb25maWcsIE1lc3NhZ2VDb25maWcsIE51bWJlckNvbmZpZywgTnVtZXJpY0NvbmZpZywgUGFzc3dvcmRDb25maWcsIFJhbmdlQ29uZmlnLCBSZWxhdGlvbmFsT3BlcmF0b3JDb25maWcsIFJlcXVpcmVkQ29uZmlnLCBSdWxlQ29uZmlnLCBTaXplQ29uZmlnLCBUaW1lQ29uZmlnLCBVbmlxdWVDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvY29uZmlnJztcbmltcG9ydCB7IFJ4Rm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZm9ybS1jb250cm9sXCI7XG5pbXBvcnQgeyBSZWdleFZhbGlkYXRvciB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25VdGlsIH0gZnJvbSAnLi4vLi4vdXRpbC9hcHAtdXRpbCc7XG5pbXBvcnQgeyBCYXNlVmFsaWRhdG9yIH0gZnJvbSAnLi9iYXNlLXZhbGlkYXRvci5kaXJlY3RpdmUnO1xuXG5jb25zdCBOR01PREVMX0JJTkRJTkc6IGFueSA9IHtcbiAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJ4Rm9ybUNvbnRyb2xEaXJlY3RpdmUpLFxuICAgIG11bHRpOiB0cnVlXG59O1xuXG5jb25zdCBBTExPV19WQUxJREFUT1JfV0lUSE9VVF9DT05GSUcgPSBbJ3JlcXVpcmVkJywgJ25vdEVtcHR5JywgJ2FscGhhJywgJ2FscGhhTnVtZXJpYycsICdhc2NpaScsICdkYXRhVXJpJywgJ2RpZ2l0JywgJ2VtYWlsJywgJ2V2ZW4nLCAnaGV4Q29sb3InLCAnanNvbicsICdsYXRpdHVkZScsICdsYXRMb25nJywgJ2xlYXBZZWFyJywgJ2xvbmdpdHVkZScsICdsb3dlckNhc2UnLCAnbWFjJywgJ29kZCcsICdwb3J0JywgJ3ByaW1lTnVtYmVyJywgJ3RpbWUnLCAndXBwZXJDYXNlJywgJ3VybCcsICd1bmlxdWUnLCAnY3VzaXAnLCAnZ2lyZCddO1xuY29uc3QgTlVNRVJJQzogc3RyaW5nID0gXCJudW1lcmljXCI7XG5jb25zdCBJU19GT1JNQVQ6IHN0cmluZyA9IFwiaXNGb3JtYXRcIjtcbmNvbnN0IERJR0lUU19JTkZPOiBzdHJpbmcgPSBcImRpZ2l0c0luZm9cIjtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbmdNb2RlbF0sW2Zvcm1Db250cm9sTmFtZV0sW2Zvcm1Db250cm9sXScsXG4gICAgcHJvdmlkZXJzOiBbTkdNT0RFTF9CSU5ESU5HXSxcbn0pXG5leHBvcnQgY2xhc3MgUnhGb3JtQ29udHJvbERpcmVjdGl2ZSBleHRlbmRzIEJhc2VWYWxpZGF0b3IgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgVmFsaWRhdG9yIHtcbiAgICBwcml2YXRlIGV2ZW50TGlzdGVuZXJzOiBhbnlbXSA9IFtdO1xuICAgIHByaXZhdGUgaXNOdW1lcmljU3Vic2NyaWJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgaXNGb2N1c0NhbGxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgaXNNYXNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuXG4gICAgc2V0IHZhbGlkYXRpb25Db250cm9scyh2YWx1ZTogeyBba2V5OiBzdHJpbmddOiBGb3JtQ29udHJvbCB9KSB7XG4gICAgICAgIHRoaXMuY29udHJvbHMgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgdmFsaWRhdGlvbkNvbnRyb2xzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9scztcbiAgICB9XG5cbiAgICBASW5wdXQoKSByeGFscGhhOiBBbHBoYUNvbmZpZztcbiAgICBASW5wdXQoKSByeGFscGhhTnVtZXJpYzogQWxwaGFDb25maWc7XG4gICAgQElucHV0KCkgcnhhc2NpaTogQmFzZUNvbmZpZztcbiAgICBASW5wdXQoKSByeGNvbXBhcmU6IENvbXBhcmVDb25maWc7XG4gICAgQElucHV0KCkgcnhjb21wb3NlOiBDb21wb3NlQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4Y29udGFpbnM6IENvbnRhaW5zQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4Y3JlZGl0Q2FyZDogQ3JlZGl0Q2FyZENvbmZpZztcbiAgICBASW5wdXQoKSByeGRhdGFVcmk6IEJhc2VDb25maWc7XG4gICAgQElucHV0KCkgcnhkaWZmZXJlbnQ6IERpZmZlcmVudENvbmZpZztcbiAgICBASW5wdXQoKSByeGRpZ2l0OiBEaWdpdENvbmZpZztcbiAgICBASW5wdXQoKSByeGVtYWlsOiBFbWFpbENvbmZpZztcbiAgICBASW5wdXQoKSByeGVuZHNXaXRoOiBEZWZhdWx0Q29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4ZXZlbjogQmFzZUNvbmZpZztcbiAgICBASW5wdXQoKSByeGV4dGVuc2lvbjogRXh0ZW5zaW9uQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4ZmFjdG9yOiBGYWN0b3JDb25maWc7XG4gICAgQElucHV0KCkgcnhmaWxlU2l6ZTogU2l6ZUNvbmZpZztcbiAgICBASW5wdXQoKSByeGdyZWF0ZXJUaGFuRXF1YWxUbzogUmVsYXRpb25hbE9wZXJhdG9yQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4Z3JlYXRlclRoYW46IFJlbGF0aW9uYWxPcGVyYXRvckNvbmZpZztcbiAgICBASW5wdXQoKSByeGhleENvbG9yOiBNZXNzYWdlQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4anNvbjogRGVmYXVsdENvbmZpZztcbiAgICBASW5wdXQoKSByeGxhdGl0dWRlOiBCYXNlQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4bGF0TG9uZzogQmFzZUNvbmZpZztcbiAgICBASW5wdXQoKSByeGxlYXBZZWFyOiBCYXNlQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4bGVzc1RoYW46IFJlbGF0aW9uYWxPcGVyYXRvckNvbmZpZztcbiAgICBASW5wdXQoKSByeGxlc3NUaGFuRXF1YWxUbzogUmVsYXRpb25hbE9wZXJhdG9yQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4bG9uZ2l0dWRlOiBCYXNlQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4bG93ZXJDYXNlOiBNZXNzYWdlQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4bWFjOiBCYXNlQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4bWF4RGF0ZTogRGF0ZUNvbmZpZztcbiAgICBASW5wdXQoKSByeG1heExlbmd0aDogTnVtYmVyQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4bWF4TnVtYmVyOiBOdW1iZXJDb25maWc7XG4gICAgQElucHV0KCkgcnhtaW5EYXRlOiBEYXRlQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4bWluTGVuZ3RoOiBOdW1iZXJDb25maWc7XG4gICAgQElucHV0KCkgcnhtaW5OdW1iZXI6IE51bWJlckNvbmZpZztcbiAgICBASW5wdXQoKSByeG51bWVyaWM6IE51bWVyaWNDb25maWc7XG4gICAgQElucHV0KCkgcnhvZGQ6IEJhc2VDb25maWc7XG4gICAgQElucHV0KCkgcnhwYXNzd29yZDogUGFzc3dvcmRDb25maWc7XG4gICAgQElucHV0KCkgcnhwb3J0OiBCYXNlQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4cHJpbWVOdW1iZXI6IEJhc2VDb25maWc7XG4gICAgQElucHV0KCkgcnhyZXF1aXJlZDogUmVxdWlyZWRDb25maWc7XG4gICAgQElucHV0KCkgcnhyYW5nZTogUmFuZ2VDb25maWc7XG4gICAgQElucHV0KCkgcnhydWxlOiBSdWxlQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4c3RhcnRzV2l0aDogRGVmYXVsdENvbmZpZztcbiAgICBASW5wdXQoKSByeHRpbWU6IFRpbWVDb25maWc7XG4gICAgQElucHV0KCkgcnh1cHBlckNhc2U6IE1lc3NhZ2VDb25maWc7XG4gICAgQElucHV0KCkgcnh1cmw6IERlZmF1bHRDb25maWc7XG4gICAgQElucHV0KCkgcnh1bmlxdWU6IFVuaXF1ZUNvbmZpZztcbiAgICBASW5wdXQoKSByeG5vdEVtcHR5OiBCYXNlQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4Y3VzaXA6IEJhc2VDb25maWc7XG4gICAgQElucHV0KCkgcnhncmlkOiBCYXNlQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJ4ZGF0ZTogQmFzZUNvbmZpZztcblxuXG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBkZWNpbWFsUHJvdmlkZXI6IERlY2ltYWxQcm92aWRlcikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgTm9kZTtcbiAgICAgICAgdGhpcy5zZXRFdmVudE5hbWUoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgbGV0IHZhbGlkYXRvcnMgPSBbXTtcbiAgICAgICAgT2JqZWN0LmtleXMoQVBQX1ZBTElEQVRPUlMpLmZvckVhY2godmFsaWRhdG9yTmFtZSA9PiB7XG4gICAgICAgICAgICBpZiAoKHRoaXNbYHJ4JHt2YWxpZGF0b3JOYW1lfWBdKSB8fCAoQUxMT1dfVkFMSURBVE9SX1dJVEhPVVRfQ09ORklHLmluZGV4T2YodmFsaWRhdG9yTmFtZSkgIT0gLTEgJiYgdGhpc1tgcngke3ZhbGlkYXRvck5hbWV9YF0gPT0gQkxBTkspKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKEFQUF9WQUxJREFUT1JTW3ZhbGlkYXRvck5hbWVdKHRoaXNbYHJ4JHt2YWxpZGF0b3JOYW1lfWBdKSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubmFtZSAmJiAhKHRoaXMuZm9ybUNvbnRyb2xOYW1lICYmIHRoaXMuZm9ybUNvbnRyb2wpKSB7XG4gICAgICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uVXRpbC5jb25maWd1cmVDb250cm9sKHRoaXMuY29udHJvbENvbmZpZywgdGhpc1tgcngke3ZhbGlkYXRvck5hbWV9YF0sIHZhbGlkYXRvck5hbWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICBpZiAodmFsaWRhdG9ycy5sZW5ndGggPiAwKVxuICAgICAgICAgICAgdGhpcy52YWxpZGF0b3JzID0gdmFsaWRhdG9yc1xuICAgICAgICBpZiAodGhpcy5yeG51bWVyaWMgJiYgKHRoaXMucnhudW1lcmljLmlzRm9ybWF0IHx8IHRoaXMucnhudW1lcmljLmRpZ2l0c0luZm8pKSB7XG4gICAgICAgICAgICB0aGlzLmJpbmROdW1lcmljRWxlbWVudEV2ZW50KCk7XG4gICAgICAgIH1cblxuICAgIH1cblxuXG4gICAgYmx1ckV2ZW50KCkge1xuICAgICAgICBpZiAoISh0aGlzLmZvcm1Db250cm9sICYmIHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzICYmIHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzLm51bWVyaWMpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtQ29udHJvbC52YWx1ZSAhPT0gbnVsbCAmJiB0aGlzLmZvcm1Db250cm9sLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmRlY2ltYWxQcm92aWRlci50cmFuc0Zvcm1EZWNpbWFsKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUsIHRoaXMucnhudW1lcmljLmRpZ2l0c0luZm8pO1xuICAgICAgICAgICAgICAgIHZhbHVlID0gKCF0aGlzLnJ4bnVtZXJpYy5pc0Zvcm1hdCkgPyB0aGlzLmRlY2ltYWxQcm92aWRlci5yZXBsYWNlcih2YWx1ZSkgOiB2YWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlT25FbGVtZW50KHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaXNGb2N1c0NhbGxlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYmluZE51bWVyaWNFbGVtZW50RXZlbnQoY29uZmlnPzogTnVtZXJpY0NvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnKVxuICAgICAgICAgICAgdGhpcy5yeG51bWVyaWMgPSBjb25maWc7XG4gICAgICAgIGxldCBsaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZWxlbWVudCwgQkxVUiwgdGhpcy5ibHVyRXZlbnQuYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMucHVzaChsaXN0ZW5lcilcbiAgICAgICAgbGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmVsZW1lbnQsIEZPQ1VTLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNGb2N1c0NhbGxlZCA9IHRydWU7XG4gICAgICAgICAgICBpZiAoISh0aGlzLmZvcm1Db250cm9sICYmIHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzICYmIHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzLm51bWVyaWMpICYmIHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuZGVjaW1hbFByb3ZpZGVyLnJlcGxhY2VyKHRoaXMuZWxlbWVudC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZU9uRWxlbWVudCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpXG4gICAgfVxuXG4gICAgYmluZFZhbHVlQ2hhbmdlRXZlbnQoKSB7XG4gICAgICAgIGlmICh0aGlzLmV2ZW50TmFtZSAhPSBCTEFOSykge1xuICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbGVtZW50LCB0aGlzLmV2ZW50TmFtZSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMudmFsaWRhdGlvbkNvbnRyb2xzKS5mb3JFYWNoKGZpZWxkTmFtZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkNvbnRyb2xzW2ZpZWxkTmFtZV0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdWJzY3JpYmVOdW1lcmljRm9ybWF0dGVyKCkge1xuICAgICAgICBpZiAodGhpcy5mb3JtQ29udHJvbFtWQUxJREFUT1JfQ09ORklHXSAmJiB0aGlzLmZvcm1Db250cm9sW1ZBTElEQVRPUl9DT05GSUddW05VTUVSSUNdICYmICh0aGlzLmZvcm1Db250cm9sW1ZBTElEQVRPUl9DT05GSUddW05VTUVSSUNdW0lTX0ZPUk1BVF0gfHwgdGhpcy5mb3JtQ29udHJvbFtWQUxJREFUT1JfQ09ORklHXVtOVU1FUklDXVtESUdJVFNfSU5GT10pKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNOdW1lcmljU3Vic2NyaWJlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYmluZE51bWVyaWNFbGVtZW50RXZlbnQodGhpcy5mb3JtQ29udHJvbFtWQUxJREFUT1JfQ09ORklHXVtOVU1FUklDXSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pc051bWVyaWNTdWJzY3JpYmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5pc0ZvY3VzQ2FsbGVkICYmIFJlZ2V4VmFsaWRhdG9yLmlzTm90QmxhbmsodGhpcy5mb3JtQ29udHJvbC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJsdXJFdmVudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBzdWJzY3JpYmVNYXNrVmFsaWRhdG9yKCkge1xuICAgICAgICBpZiAodGhpcy5mb3JtQ29udHJvbFtWQUxJREFUT1JfQ09ORklHXSAmJiB0aGlzLmZvcm1Db250cm9sW1ZBTElEQVRPUl9DT05GSUddW1wibWFza1wiXSAmJiAhdGhpcy5pc01hc2tlZCkge1xuICAgICAgICAgICAgbGV0IGNvbmZpZyA9IHRoaXMuZm9ybUNvbnRyb2xbVkFMSURBVE9SX0NPTkZJR11bXCJtYXNrXCJdO1xuICAgICAgICAgICAgdGhpcy5tYXNrUHJvdmlkZXIgPSBuZXcgTWFza1Byb3ZpZGVyKHRoaXMuZWxlbWVudCwgY29uZmlnLm1hc2ssIHRoaXMucmVuZGVyZXIsIHRoaXMuZm9ybUNvbnRyb2wgYXMgRm9ybUNvbnRyb2wsIGNvbmZpZyk7XG4gICAgICAgICAgICB0aGlzLmlzTWFza2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWVPbkVsZW1lbnQodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudCwgRUxFTUVOVF9WQUxVRSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VGVtcGxhdGVWYWxpZGF0b3JzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xuICAgICAgICBmb3IgKGxldCB2YWxpZGF0b3JOYW1lIGluIGNvbnRyb2xbVkFMSURBVE9SX0NPTkZJR10pIHtcbiAgICAgICAgICAgIHRoaXNbdmFsaWRhdG9yTmFtZV0gPSBjb250cm9sW1ZBTElEQVRPUl9DT05GSUddW3ZhbGlkYXRvck5hbWVdO1xuICAgICAgICB9XG4gICAgICAgIGRlbGV0ZSBjb250cm9sW1RFTVBMQVRFX1ZBTElEQVRJT05fQ09ORklHXTtcbiAgICAgICAgZGVsZXRlIGNvbnRyb2xbVkFMSURBVE9SX0NPTkZJR11cbiAgICAgICAgdGhpcy5uZ09uSW5pdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlT25FbGVtZW50Q2xhc3MoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgdmFyIHByZXZpb3VzQ2xhc3NOYW1lOiBzdHJpbmcgPSAnJztcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChjbGFzc05hbWU6IHN0cmluZykge1xuICAgICAgICAgICAgaWYgKHByZXZpb3VzQ2xhc3NOYW1lKVxuICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShwcmV2aW91c0NsYXNzTmFtZSk7XG4gICAgICAgICAgICBpZiAoY2xhc3NOYW1lKVxuICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpXG4gICAgICAgICAgICBwcmV2aW91c0NsYXNzTmFtZSA9IGNsYXNzTmFtZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsaWRhdG9yQ29uZmlnKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wgPSBjb250cm9sO1xuICAgICAgICAgICAgbGV0IHJ4Rm9ybUNvbnRyb2wgPSB0aGlzLmZvcm1Db250cm9sIGFzIFJ4Rm9ybUNvbnRyb2w7XG4gICAgICAgICAgICBpZiAocnhGb3JtQ29udHJvbC51cGRhdGVPbkVsZW1lbnRDbGFzcylcbiAgICAgICAgICAgICAgICByeEZvcm1Db250cm9sLnVwZGF0ZU9uRWxlbWVudENsYXNzID0gdGhpcy51cGRhdGVPbkVsZW1lbnRDbGFzcyh0aGlzLmVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdWJzY3JpYmVNYXNrVmFsaWRhdG9yKCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlTnVtZXJpY0Zvcm1hdHRlcigpO1xuICAgICAgICBpZiAoY29udHJvbFtURU1QTEFURV9WQUxJREFUSU9OX0NPTkZJR10pXG4gICAgICAgICAgICB0aGlzLnNldFRlbXBsYXRlVmFsaWRhdG9ycyhjb250cm9sKTtcbiAgICAgICAgaWYgKGNvbnRyb2xbQ09ORElUSU9OQUxfVkFMSURBVE9SXSkge1xuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25hbFZhbGlkYXRvciA9IGNvbnRyb2xbQ09ORElUSU9OQUxfVkFMSURBVE9SXTtcbiAgICAgICAgICAgIGRlbGV0ZSBjb250cm9sW0NPTkRJVElPTkFMX1ZBTElEQVRPUl07XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgICAgICB0aGlzLnNldFZhbGlkYXRvckNvbmZpZyhjb250cm9sKTtcbiAgICAgICAgaWYgKHRoaXMuY29uZGl0aW9uYWxWYWxpZGF0b3IpXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbmFsVmFsaWRhdG9yKGNvbnRyb2wpO1xuICAgICAgICBpZiAoIXRoaXMuaXNQcm9jZXNzZWQpXG4gICAgICAgICAgICB0aGlzLnNldE1vZGVsQ29uZmlnKGNvbnRyb2wpO1xuICAgICAgICByZXR1cm4gKCh0aGlzLnZhbGlkYXRvcnMgJiYgdGhpcy52YWxpZGF0b3JzLmxlbmd0aCA+IDApIHx8IHRoaXMubWFza1Byb3ZpZGVyKSA/IHRoaXMudmFsaWRhdGlvbihjb250cm9sKSA6IG51bGw7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuY29udHJvbHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBldmVudENvdW50ID0gdGhpcy5ldmVudExpc3RlbmVycy5sZW5ndGg7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzWzBdKCk7XG4gICAgICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnNwbGljZSgwLCAxKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzID0gW107XG4gICAgICAgIGlmICh0aGlzLm1hc2tQcm92aWRlcilcbiAgICAgICAgICAgIHRoaXMubWFza1Byb3ZpZGVyLm9uRGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -46,12 +46,19 @@ export class DecimalProvider {
46
46
  this.isSetConfig = true;
47
47
  }
48
48
  }
49
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
49
50
  DecimalProvider.decorators = [
50
51
  { type: Injectable }
51
52
  ];
52
- /** @nocollapse */
53
+ /**
54
+ * @type {function(): !Array<(null|{
55
+ * type: ?,
56
+ * decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
57
+ * })>}
58
+ * @nocollapse
59
+ */
53
60
  DecimalProvider.ctorParameters = () => [
54
61
  { type: DecimalPipe },
55
62
  { type: String, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }
56
63
  ];
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9kb21haW4vZWxlbWVudC1wcm9jZXNzb3IvZGVjaW1hbC5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUc1RCxNQUFNLE9BQU8sZUFBZTtJQUl4QixZQUNZLFdBQXdCLEVBQTZCLFFBQWdCO1FBQXJFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQTZCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFKekUscUJBQWdCLEdBQVcsR0FBRyxDQUFDO1FBQy9CLG1CQUFjLEdBQVcsR0FBRyxDQUFDO1FBNEM3QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQXZDakMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFBQSxDQUFDO1FBQy9FLElBQUksQ0FBQyxjQUFjLEdBQUcscUJBQXFCLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVU7UUFDZixLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVztZQUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxJQUFJLElBQUksQ0FBQyxrQkFBa0I7WUFDdkIsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQ3pFLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEQsS0FBSyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDakgsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVUsRUFBRSxVQUFrQjtRQUMzQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvSixDQUFDO0lBRU8saUJBQWlCO1FBQ3JCLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMzRyxDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksa0JBQWtCLENBQUMsSUFBSSxFQUFFO1lBQ3pCLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVE7Z0JBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNyRCxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxrQkFBa0I7Z0JBQzFDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7U0FDNUU7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDOzs7WUE3Q0osVUFBVTs7OztZQU5GLFdBQVc7eUNBWXVCLE1BQU0sU0FBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVjaW1hbFBpcGUsIGdldExvY2FsZU51bWJlclN5bWJvbCwgTnVtYmVyU3ltYm9sIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBMT0NBTEVfSUQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQkxBTksgfSBmcm9tIFwiLi4vLi4vY29uc3RcIjtcbmltcG9ydCB7IFJlYWN0aXZlRm9ybUNvbmZpZyB9IGZyb20gXCIuLi8uLi91dGlsL3JlYWN0aXZlLWZvcm0tY29uZmlnXCI7XG5pbXBvcnQgeyBSZWdleFZhbGlkYXRvciB9IGZyb20gJy4uLy4uL3V0aWwvcmVnZXgtdmFsaWRhdG9yJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERlY2ltYWxQcm92aWRlciB7XG4gICAgcHJpdmF0ZSBkZWNpbWFsU2VwZXJhdG9yOiBzdHJpbmcgPSBcIi5cIjtcbiAgICBwcml2YXRlIGdyb3VwU2VwZXJhdG9yOiBzdHJpbmcgPSBcIixcIjtcbiAgICBwcml2YXRlIGFsbG93RGVjaW1hbFN5bWJvbDogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGRlY2ltYWxQaXBlOiBEZWNpbWFsUGlwZSwgQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgbG9jYWxlSWQ6IHN0cmluZ1xuICAgICkge1xuICAgICAgICB0aGlzLmRlY2ltYWxTZXBlcmF0b3IgPSBnZXRMb2NhbGVOdW1iZXJTeW1ib2wobG9jYWxlSWQsIE51bWJlclN5bWJvbC5EZWNpbWFsKTs7XG4gICAgICAgIHRoaXMuZ3JvdXBTZXBlcmF0b3IgPSBnZXRMb2NhbGVOdW1iZXJTeW1ib2wobG9jYWxlSWQsIE51bWJlclN5bWJvbC5Hcm91cCk7XG4gICAgICAgIHRoaXMuc2V0U3ltYm9sSW5Db25maWcoKTtcbiAgICB9XG5cbiAgICByZXBsYWNlcih2YWx1ZTogYW55KTogYW55IHtcbiAgICAgICAgdmFsdWUgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICBpZiAoIXRoaXMuaXNTZXRDb25maWcpXG4gICAgICAgICAgICB0aGlzLmJpbmRDb25maWcoKTtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCh0aGlzLmdyb3VwU2VwZXJhdG9yKS5qb2luKEJMQU5LKTtcbiAgICAgICAgaWYgKHRoaXMuYWxsb3dEZWNpbWFsU3ltYm9sKVxuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKHRoaXMuZGVjaW1hbFNlcGVyYXRvciwgdGhpcy5hbGxvd0RlY2ltYWxTeW1ib2wpXG4gICAgICAgIHZhciBzcGxpdFZhbHVlID0gdmFsdWUuc3BsaXQodGhpcy5kZWNpbWFsU2VwZXJhdG9yKTtcbiAgICAgICAgdmFsdWUgPSAoc3BsaXRWYWx1ZS5sZW5ndGggPiAxICYmIHNwbGl0VmFsdWVbMV0gJiYgUmVnZXhWYWxpZGF0b3IuaXNaZXJvKHNwbGl0VmFsdWVbMV0pKSA/IHNwbGl0VmFsdWVbMF0gOiB2YWx1ZTtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHRyYW5zRm9ybURlY2ltYWwodmFsdWU6IGFueSwgZGlnaXRzSW5mbzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgdmFsdWUgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZGVjaW1hbFBpcGUudHJhbnNmb3JtKHZhbHVlLnJlcGxhY2UoUmVhY3RpdmVGb3JtQ29uZmlnLm51bWJlci5ncm91cFN5bWJvbCwgXCJcIikucmVwbGFjZSh0aGlzLmRlY2ltYWxTZXBlcmF0b3IsIFwiLlwiKSwgZGlnaXRzSW5mbywgdGhpcy5sb2NhbGVJZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTeW1ib2xJbkNvbmZpZygpIHtcbiAgICAgICAgUmVhY3RpdmVGb3JtQ29uZmlnLm51bWJlciA9IHsgZGVjaW1hbFN5bWJvbDogdGhpcy5kZWNpbWFsU2VwZXJhdG9yLCBncm91cFN5bWJvbDogdGhpcy5ncm91cFNlcGVyYXRvciB9O1xuICAgIH1cblxuICAgIGJpbmRDb25maWcoKSB7XG4gICAgICAgIGlmIChSZWFjdGl2ZUZvcm1Db25maWcuanNvbikge1xuICAgICAgICAgICAgaWYgKFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uLmxvY2FsZUlkKVxuICAgICAgICAgICAgICAgIHRoaXMubG9jYWxlSWQgPSBSZWFjdGl2ZUZvcm1Db25maWcuanNvbi5sb2NhbGVJZDtcbiAgICAgICAgICAgIGlmIChSZWFjdGl2ZUZvcm1Db25maWcuanNvbi5hbGxvd0RlY2ltYWxTeW1ib2wpXG4gICAgICAgICAgICAgICAgdGhpcy5hbGxvd0RlY2ltYWxTeW1ib2wgPSBSZWFjdGl2ZUZvcm1Db25maWcuanNvbi5hbGxvd0RlY2ltYWxTeW1ib2w7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc1NldENvbmZpZyA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1NldENvbmZpZzogYm9vbGVhbiA9IGZhbHNlO1xufVxuIl19
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9kb21haW4vZWxlbWVudC1wcm9jZXNzb3IvZGVjaW1hbC5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUc1RCxNQUFNLE9BQU8sZUFBZTtJQUl4QixZQUNZLFdBQXdCLEVBQTZCLFFBQWdCO1FBQXJFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQTZCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFKekUscUJBQWdCLEdBQVcsR0FBRyxDQUFDO1FBQy9CLG1CQUFjLEdBQVcsR0FBRyxDQUFDO1FBNEM3QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQXZDakMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFBQSxDQUFDO1FBQy9FLElBQUksQ0FBQyxjQUFjLEdBQUcscUJBQXFCLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVU7UUFDZixLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVztZQUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxJQUFJLElBQUksQ0FBQyxrQkFBa0I7WUFDdkIsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQ3pFLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEQsS0FBSyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDakgsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVUsRUFBRSxVQUFrQjtRQUMzQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvSixDQUFDO0lBRU8saUJBQWlCO1FBQ3JCLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMzRyxDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksa0JBQWtCLENBQUMsSUFBSSxFQUFFO1lBQ3pCLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVE7Z0JBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNyRCxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxrQkFBa0I7Z0JBQzFDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7U0FDNUU7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDOzs7O1lBN0NKLFVBQVU7Ozs7Ozs7Ozs7WUFORixXQUFXO3lDQVl1QixNQUFNLFNBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlY2ltYWxQaXBlLCBnZXRMb2NhbGVOdW1iZXJTeW1ib2wsIE51bWJlclN5bWJvbCB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgTE9DQUxFX0lEIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEJMQU5LIH0gZnJvbSBcIi4uLy4uL2NvbnN0XCI7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1Db25maWcgfSBmcm9tIFwiLi4vLi4vdXRpbC9yZWFjdGl2ZS1mb3JtLWNvbmZpZ1wiO1xuaW1wb3J0IHsgUmVnZXhWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi91dGlsL3JlZ2V4LXZhbGlkYXRvcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEZWNpbWFsUHJvdmlkZXIge1xuICAgIHByaXZhdGUgZGVjaW1hbFNlcGVyYXRvcjogc3RyaW5nID0gXCIuXCI7XG4gICAgcHJpdmF0ZSBncm91cFNlcGVyYXRvcjogc3RyaW5nID0gXCIsXCI7XG4gICAgcHJpdmF0ZSBhbGxvd0RlY2ltYWxTeW1ib2w6IHN0cmluZztcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBkZWNpbWFsUGlwZTogRGVjaW1hbFBpcGUsIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIGxvY2FsZUlkOiBzdHJpbmdcbiAgICApIHtcbiAgICAgICAgdGhpcy5kZWNpbWFsU2VwZXJhdG9yID0gZ2V0TG9jYWxlTnVtYmVyU3ltYm9sKGxvY2FsZUlkLCBOdW1iZXJTeW1ib2wuRGVjaW1hbCk7O1xuICAgICAgICB0aGlzLmdyb3VwU2VwZXJhdG9yID0gZ2V0TG9jYWxlTnVtYmVyU3ltYm9sKGxvY2FsZUlkLCBOdW1iZXJTeW1ib2wuR3JvdXApO1xuICAgICAgICB0aGlzLnNldFN5bWJvbEluQ29uZmlnKCk7XG4gICAgfVxuXG4gICAgcmVwbGFjZXIodmFsdWU6IGFueSk6IGFueSB7XG4gICAgICAgIHZhbHVlID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgaWYgKCF0aGlzLmlzU2V0Q29uZmlnKVxuICAgICAgICAgICAgdGhpcy5iaW5kQ29uZmlnKCk7XG4gICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQodGhpcy5ncm91cFNlcGVyYXRvcikuam9pbihCTEFOSyk7XG4gICAgICAgIGlmICh0aGlzLmFsbG93RGVjaW1hbFN5bWJvbClcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSh0aGlzLmRlY2ltYWxTZXBlcmF0b3IsIHRoaXMuYWxsb3dEZWNpbWFsU3ltYm9sKVxuICAgICAgICB2YXIgc3BsaXRWYWx1ZSA9IHZhbHVlLnNwbGl0KHRoaXMuZGVjaW1hbFNlcGVyYXRvcik7XG4gICAgICAgIHZhbHVlID0gKHNwbGl0VmFsdWUubGVuZ3RoID4gMSAmJiBzcGxpdFZhbHVlWzFdICYmIFJlZ2V4VmFsaWRhdG9yLmlzWmVybyhzcGxpdFZhbHVlWzFdKSkgPyBzcGxpdFZhbHVlWzBdIDogdmFsdWU7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICB0cmFuc0Zvcm1EZWNpbWFsKHZhbHVlOiBhbnksIGRpZ2l0c0luZm86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHZhbHVlID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmRlY2ltYWxQaXBlLnRyYW5zZm9ybSh2YWx1ZS5yZXBsYWNlKFJlYWN0aXZlRm9ybUNvbmZpZy5udW1iZXIuZ3JvdXBTeW1ib2wsIFwiXCIpLnJlcGxhY2UodGhpcy5kZWNpbWFsU2VwZXJhdG9yLCBcIi5cIiksIGRpZ2l0c0luZm8sIHRoaXMubG9jYWxlSWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U3ltYm9sSW5Db25maWcoKSB7XG4gICAgICAgIFJlYWN0aXZlRm9ybUNvbmZpZy5udW1iZXIgPSB7IGRlY2ltYWxTeW1ib2w6IHRoaXMuZGVjaW1hbFNlcGVyYXRvciwgZ3JvdXBTeW1ib2w6IHRoaXMuZ3JvdXBTZXBlcmF0b3IgfTtcbiAgICB9XG5cbiAgICBiaW5kQ29uZmlnKCkge1xuICAgICAgICBpZiAoUmVhY3RpdmVGb3JtQ29uZmlnLmpzb24pIHtcbiAgICAgICAgICAgIGlmIChSZWFjdGl2ZUZvcm1Db25maWcuanNvbi5sb2NhbGVJZClcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsZUlkID0gUmVhY3RpdmVGb3JtQ29uZmlnLmpzb24ubG9jYWxlSWQ7XG4gICAgICAgICAgICBpZiAoUmVhY3RpdmVGb3JtQ29uZmlnLmpzb24uYWxsb3dEZWNpbWFsU3ltYm9sKVxuICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dEZWNpbWFsU3ltYm9sID0gUmVhY3RpdmVGb3JtQ29uZmlnLmpzb24uYWxsb3dEZWNpbWFsU3ltYm9sO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNTZXRDb25maWcgPSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNTZXRDb25maWc6IGJvb2xlYW4gPSBmYWxzZTtcbn1cbiJdfQ==
@@ -16,6 +16,7 @@ import { TypedFormBuilder } from "./typed-form-builder";
16
16
  export class RxReactiveFormsModule {
17
17
  static forRoot() { return { ngModule: RxReactiveFormsModule, providers: [] }; }
18
18
  }
19
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
19
20
  RxReactiveFormsModule.decorators = [
20
21
  { type: NgModule, args: [{
21
22
  declarations: [RxwebFormDirective, HtmlControlTemplateDirective, ControlHostDirective, RxFormControlDirective, FileControlDirective, ImageFileControlDirective, AsyncValidationDirective],
@@ -32,6 +33,7 @@ export class ReactiveTypedFormsModule {
32
33
  }
33
34
  static forRoot() { return { ngModule: ReactiveTypedFormsModule, providers: [] }; }
34
35
  }
36
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
35
37
  ReactiveTypedFormsModule.decorators = [
36
38
  { type: NgModule, args: [{
37
39
  declarations: [],
@@ -40,6 +42,12 @@ ReactiveTypedFormsModule.decorators = [
40
42
  exports: [ReactiveFormsModule, FormsModule, ReactiveFormsModule]
41
43
  },] }
42
44
  ];
43
- /** @nocollapse */
45
+ /**
46
+ * @type {function(): !Array<(null|{
47
+ * type: ?,
48
+ * decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
49
+ * })>}
50
+ * @nocollapse
51
+ */
44
52
  ReactiveTypedFormsModule.ctorParameters = () => [];
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUtZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9mb3JtLXZhbGlkYXRvcnMvc2VydmljZXMvcmVhY3RpdmUtZm9ybS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFPeEQsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixNQUFNLENBQUMsT0FBTyxLQUFpRCxPQUFPLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7OztZQVA5SCxRQUFRLFNBQUM7Z0JBQ04sWUFBWSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsNEJBQTRCLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLEVBQUUseUJBQXlCLEVBQUUsd0JBQXdCLENBQUM7Z0JBQ3pMLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLENBQUM7Z0JBQ3pELFNBQVMsRUFBRSxDQUFDLGFBQWEsRUFBRSxlQUFlLEVBQUUsV0FBVyxDQUFDO2dCQUN4RCxPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBRSw0QkFBNEIsRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSx5QkFBeUIsQ0FBQzthQUNqSzs7QUFLRCxlQUFlO0FBT2YsTUFBTSxPQUFPLHdCQUF3QjtJQUNqQztRQUNJLGdCQUFnQixDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDdkMsa0JBQWtCLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBQy9DLENBQUM7SUFDRCxNQUFNLENBQUMsT0FBTyxLQUFvRCxPQUFPLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7OztZQVhwSSxRQUFRLFNBQUM7Z0JBQ04sWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzFGLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQztnQkFDbkYsT0FBTyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixDQUFDO2FBQ25FIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEZWNpbWFsUGlwZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgZGVmYXVsdENvbnRhaW5lciB9IGZyb20gXCIuLi9jb3JlL2RlZmF1bHRDb250YWluZXJcIjtcbmltcG9ydCB7IENvbnRyb2xIb3N0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9jb250cm9sLWhvc3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IEh0bWxDb250cm9sVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2h0bWwtY29udHJvbC10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUnh3ZWJGb3JtRGlyZWN0aXZlIH0gZnJvbSBcIi4uL2RpcmVjdGl2ZXMvcngtZm9ybS5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IEFzeW5jVmFsaWRhdGlvbkRpcmVjdGl2ZSB9IGZyb20gXCIuLi9kaXJlY3RpdmVzL3RlbXBsYXRlLXZhbGlkYXRpb25zL2FzeW5jLXZhbGlkYXRpb24uZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBGaWxlQ29udHJvbERpcmVjdGl2ZSB9IGZyb20gXCIuLi9kaXJlY3RpdmVzL3RlbXBsYXRlLXZhbGlkYXRpb25zL2ZpbGUtY29udHJvbC5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IEltYWdlRmlsZUNvbnRyb2xEaXJlY3RpdmUgfSBmcm9tIFwiLi4vZGlyZWN0aXZlcy90ZW1wbGF0ZS12YWxpZGF0aW9ucy9pbWFnZS1maWxlLWNvbnRyb2wuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBSeEZvcm1Db250cm9sRGlyZWN0aXZlIH0gZnJvbSBcIi4uL2RpcmVjdGl2ZXMvdGVtcGxhdGUtdmFsaWRhdGlvbnMvcnhmb3JtY29udHJvbC5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IERlY2ltYWxQcm92aWRlciB9IGZyb20gXCIuLi9kb21haW4vZWxlbWVudC1wcm9jZXNzb3IvZGVjaW1hbC5wcm92aWRlclwiO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3JtQ29uZmlnIH0gZnJvbSBcIi4uL3V0aWwvcmVhY3RpdmUtZm9ybS1jb25maWdcIjtcbmltcG9ydCB7IFJ4Rm9ybUJ1aWxkZXIgfSBmcm9tIFwiLi9yeC1mb3JtLWJ1aWxkZXJcIjtcbmltcG9ydCB7IFR5cGVkRm9ybUJ1aWxkZXIgfSBmcm9tIFwiLi90eXBlZC1mb3JtLWJ1aWxkZXJcIjtcbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbUnh3ZWJGb3JtRGlyZWN0aXZlLCBIdG1sQ29udHJvbFRlbXBsYXRlRGlyZWN0aXZlLCBDb250cm9sSG9zdERpcmVjdGl2ZSwgUnhGb3JtQ29udHJvbERpcmVjdGl2ZSwgRmlsZUNvbnRyb2xEaXJlY3RpdmUsIEltYWdlRmlsZUNvbnRyb2xEaXJlY3RpdmUsIEFzeW5jVmFsaWRhdGlvbkRpcmVjdGl2ZV0sXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICAgIHByb3ZpZGVyczogW1J4Rm9ybUJ1aWxkZXIsIERlY2ltYWxQcm92aWRlciwgRGVjaW1hbFBpcGVdLFxuICAgIGV4cG9ydHM6IFtBc3luY1ZhbGlkYXRpb25EaXJlY3RpdmUsIFJ4d2ViRm9ybURpcmVjdGl2ZSwgSHRtbENvbnRyb2xUZW1wbGF0ZURpcmVjdGl2ZSwgUnhGb3JtQ29udHJvbERpcmVjdGl2ZSwgRmlsZUNvbnRyb2xEaXJlY3RpdmUsIEltYWdlRmlsZUNvbnRyb2xEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIFJ4UmVhY3RpdmVGb3Jtc01vZHVsZSB7XG4gICAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxSeFJlYWN0aXZlRm9ybXNNb2R1bGU+IHsgcmV0dXJuIHsgbmdNb2R1bGU6IFJ4UmVhY3RpdmVGb3Jtc01vZHVsZSwgcHJvdmlkZXJzOiBbXSB9OyB9XG59XG5cbi8vIEV4cGVyaW1lbnRhbFxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBSeFJlYWN0aXZlRm9ybXNNb2R1bGUuZm9yUm9vdCgpXSxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEZvcm1CdWlsZGVyLCB1c2VDbGFzczogVHlwZWRGb3JtQnVpbGRlciB9LCBUeXBlZEZvcm1CdWlsZGVyXSxcbiAgICBleHBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFJlYWN0aXZlVHlwZWRGb3Jtc01vZHVsZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGRlZmF1bHRDb250YWluZXIuaXNFeHBlcmltZW50YWwgPSB0cnVlO1xuICAgICAgICBSZWFjdGl2ZUZvcm1Db25maWcuYXV0b0luc3RhbmNlUHVzaCA9IHRydWU7XG4gICAgfVxuICAgIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8UmVhY3RpdmVUeXBlZEZvcm1zTW9kdWxlPiB7IHJldHVybiB7IG5nTW9kdWxlOiBSZWFjdGl2ZVR5cGVkRm9ybXNNb2R1bGUsIHByb3ZpZGVyczogW10gfTsgfVxufVxuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUtZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9mb3JtLXZhbGlkYXRvcnMvc2VydmljZXMvcmVhY3RpdmUtZm9ybS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFPeEQsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixNQUFNLENBQUMsT0FBTyxLQUFpRCxPQUFPLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7Ozs7WUFQOUgsUUFBUSxTQUFDO2dCQUNOLFlBQVksRUFBRSxDQUFDLGtCQUFrQixFQUFFLDRCQUE0QixFQUFFLG9CQUFvQixFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLHlCQUF5QixFQUFFLHdCQUF3QixDQUFDO2dCQUN6TCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixDQUFDO2dCQUN6RCxTQUFTLEVBQUUsQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLFdBQVcsQ0FBQztnQkFDeEQsT0FBTyxFQUFFLENBQUMsd0JBQXdCLEVBQUUsa0JBQWtCLEVBQUUsNEJBQTRCLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLEVBQUUseUJBQXlCLENBQUM7YUFDaks7O0FBS0QsZUFBZTtBQU9mLE1BQU0sT0FBTyx3QkFBd0I7SUFDakM7UUFDSSxnQkFBZ0IsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3ZDLGtCQUFrQixDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUMvQyxDQUFDO0lBQ0QsTUFBTSxDQUFDLE9BQU8sS0FBb0QsT0FBTyxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDOzs7O1lBWHBJLFFBQVEsU0FBQztnQkFDTixZQUFZLEVBQUUsRUFBRTtnQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDMUYsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLGdCQUFnQixDQUFDO2dCQUNuRixPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLENBQUM7YUFDbkUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIERlY2ltYWxQaXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBkZWZhdWx0Q29udGFpbmVyIH0gZnJvbSBcIi4uL2NvcmUvZGVmYXVsdENvbnRhaW5lclwiO1xuaW1wb3J0IHsgQ29udHJvbEhvc3REaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2NvbnRyb2wtaG9zdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSHRtbENvbnRyb2xUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvaHRtbC1jb250cm9sLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSeHdlYkZvcm1EaXJlY3RpdmUgfSBmcm9tIFwiLi4vZGlyZWN0aXZlcy9yeC1mb3JtLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgQXN5bmNWYWxpZGF0aW9uRGlyZWN0aXZlIH0gZnJvbSBcIi4uL2RpcmVjdGl2ZXMvdGVtcGxhdGUtdmFsaWRhdGlvbnMvYXN5bmMtdmFsaWRhdGlvbi5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IEZpbGVDb250cm9sRGlyZWN0aXZlIH0gZnJvbSBcIi4uL2RpcmVjdGl2ZXMvdGVtcGxhdGUtdmFsaWRhdGlvbnMvZmlsZS1jb250cm9sLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgSW1hZ2VGaWxlQ29udHJvbERpcmVjdGl2ZSB9IGZyb20gXCIuLi9kaXJlY3RpdmVzL3RlbXBsYXRlLXZhbGlkYXRpb25zL2ltYWdlLWZpbGUtY29udHJvbC5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IFJ4Rm9ybUNvbnRyb2xEaXJlY3RpdmUgfSBmcm9tIFwiLi4vZGlyZWN0aXZlcy90ZW1wbGF0ZS12YWxpZGF0aW9ucy9yeGZvcm1jb250cm9sLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgRGVjaW1hbFByb3ZpZGVyIH0gZnJvbSBcIi4uL2RvbWFpbi9lbGVtZW50LXByb2Nlc3Nvci9kZWNpbWFsLnByb3ZpZGVyXCI7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1Db25maWcgfSBmcm9tIFwiLi4vdXRpbC9yZWFjdGl2ZS1mb3JtLWNvbmZpZ1wiO1xuaW1wb3J0IHsgUnhGb3JtQnVpbGRlciB9IGZyb20gXCIuL3J4LWZvcm0tYnVpbGRlclwiO1xuaW1wb3J0IHsgVHlwZWRGb3JtQnVpbGRlciB9IGZyb20gXCIuL3R5cGVkLWZvcm0tYnVpbGRlclwiO1xuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtSeHdlYkZvcm1EaXJlY3RpdmUsIEh0bWxDb250cm9sVGVtcGxhdGVEaXJlY3RpdmUsIENvbnRyb2xIb3N0RGlyZWN0aXZlLCBSeEZvcm1Db250cm9sRGlyZWN0aXZlLCBGaWxlQ29udHJvbERpcmVjdGl2ZSwgSW1hZ2VGaWxlQ29udHJvbERpcmVjdGl2ZSwgQXN5bmNWYWxpZGF0aW9uRGlyZWN0aXZlXSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gICAgcHJvdmlkZXJzOiBbUnhGb3JtQnVpbGRlciwgRGVjaW1hbFByb3ZpZGVyLCBEZWNpbWFsUGlwZV0sXG4gICAgZXhwb3J0czogW0FzeW5jVmFsaWRhdGlvbkRpcmVjdGl2ZSwgUnh3ZWJGb3JtRGlyZWN0aXZlLCBIdG1sQ29udHJvbFRlbXBsYXRlRGlyZWN0aXZlLCBSeEZvcm1Db250cm9sRGlyZWN0aXZlLCBGaWxlQ29udHJvbERpcmVjdGl2ZSwgSW1hZ2VGaWxlQ29udHJvbERpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgUnhSZWFjdGl2ZUZvcm1zTW9kdWxlIHtcbiAgICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFJ4UmVhY3RpdmVGb3Jtc01vZHVsZT4geyByZXR1cm4geyBuZ01vZHVsZTogUnhSZWFjdGl2ZUZvcm1zTW9kdWxlLCBwcm92aWRlcnM6IFtdIH07IH1cbn1cblxuLy8gRXhwZXJpbWVudGFsXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW10sXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFJ4UmVhY3RpdmVGb3Jtc01vZHVsZS5mb3JSb290KCldLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogRm9ybUJ1aWxkZXIsIHVzZUNsYXNzOiBUeXBlZEZvcm1CdWlsZGVyIH0sIFR5cGVkRm9ybUJ1aWxkZXJdLFxuICAgIGV4cG9ydHM6IFtSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgUmVhY3RpdmVUeXBlZEZvcm1zTW9kdWxlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgZGVmYXVsdENvbnRhaW5lci5pc0V4cGVyaW1lbnRhbCA9IHRydWU7XG4gICAgICAgIFJlYWN0aXZlRm9ybUNvbmZpZy5hdXRvSW5zdGFuY2VQdXNoID0gdHJ1ZTtcbiAgICB9XG4gICAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxSZWFjdGl2ZVR5cGVkRm9ybXNNb2R1bGU+IHsgcmV0dXJuIHsgbmdNb2R1bGU6IFJlYWN0aXZlVHlwZWRGb3Jtc01vZHVsZSwgcHJvdmlkZXJzOiBbXSB9OyB9XG59XG4iXX0=