@decaf-ts/for-angular 0.0.23 → 0.0.25
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/components/component-renderer/component-renderer.component.d.ts +3 -2
- package/components/crud-field/crud-field.component.d.ts +4 -2
- package/components/fieldset/fieldset.component.d.ts +10 -1
- package/components/for-angular-components.module.d.ts +3 -2
- package/components/index.d.ts +1 -0
- package/components/layout/layout.component.d.ts +1 -24
- package/components/model-renderer/model-renderer.component.d.ts +6 -1
- package/components/stepped-form/stepped-form.component.d.ts +255 -0
- package/engine/NgxBaseComponent.d.ts +2 -2
- package/engine/NgxCrudFormField.d.ts +1 -0
- package/engine/NgxFormService.d.ts +381 -48
- package/engine/NgxRenderingEngine.d.ts +4 -2
- package/engine/interfaces.d.ts +1 -1
- package/engine/types.d.ts +4 -3
- package/esm2022/components/component-renderer/component-renderer.component.mjs +10 -4
- package/esm2022/components/crud-field/crud-field.component.mjs +14 -3
- package/esm2022/components/crud-form/crud-form.component.mjs +3 -3
- package/esm2022/components/empty-state/empty-state.component.mjs +2 -2
- package/esm2022/components/fieldset/fieldset.component.mjs +5 -3
- package/esm2022/components/for-angular-components.module.mjs +12 -7
- package/esm2022/components/index.mjs +2 -1
- package/esm2022/components/layout/layout.component.mjs +4 -29
- package/esm2022/components/list/list.component.mjs +3 -3
- package/esm2022/components/model-renderer/model-renderer.component.mjs +10 -3
- package/esm2022/components/stepped-form/stepped-form.component.mjs +306 -0
- package/esm2022/engine/NgxBaseComponent.mjs +10 -4
- package/esm2022/engine/NgxCrudFormField.mjs +19 -17
- package/esm2022/engine/NgxFormService.mjs +438 -57
- package/esm2022/engine/NgxRenderingEngine.mjs +21 -10
- package/esm2022/engine/ValidatorFactory.mjs +4 -4
- package/esm2022/engine/interfaces.mjs +1 -1
- package/esm2022/engine/types.mjs +1 -1
- package/esm2022/i18n/data/en.json +5 -0
- package/fesm2022/decaf-ts-for-angular.mjs +837 -137
- package/fesm2022/decaf-ts-for-angular.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -125,40 +125,15 @@ export class LayoutComponent extends NgxBaseComponent {
|
|
|
125
125
|
*
|
|
126
126
|
* @memberOf LayoutComponent
|
|
127
127
|
*/
|
|
128
|
-
ngOnInit() {
|
|
129
|
-
this.initialize();
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* @description Initializes the layout component with processed properties.
|
|
133
|
-
* @summary Overrides the base component's initialize method to set up the grid layout.
|
|
134
|
-
* This method processes input properties, normalizes the breakpoint value, converts
|
|
135
|
-
* rows and columns to their array representations, and marks the component as initialized.
|
|
136
|
-
* The initialization ensures all properties are in the correct format for rendering.
|
|
137
|
-
*
|
|
138
|
-
* @mermaid
|
|
139
|
-
* sequenceDiagram
|
|
140
|
-
* participant L as LayoutComponent
|
|
141
|
-
* participant B as NgxBaseComponent
|
|
142
|
-
*
|
|
143
|
-
* L->>B: parseProps(this)
|
|
144
|
-
* Note over L: Process component properties
|
|
145
|
-
* L->>L: Normalize breakpoint to lowercase
|
|
146
|
-
* L->>L: Convert rows to array format
|
|
147
|
-
* L->>L: Convert cols to array format
|
|
148
|
-
* L->>L: Set initialized = true
|
|
149
|
-
*
|
|
150
|
-
* @override
|
|
151
|
-
* @memberOf LayoutComponent
|
|
152
|
-
*/
|
|
153
|
-
initialize() {
|
|
154
|
-
this.parseProps(this);
|
|
128
|
+
async ngOnInit() {
|
|
129
|
+
await this.initialize();
|
|
155
130
|
this.breakpoint = this.breakpoint.slice(0, 2).toLowerCase();
|
|
156
131
|
this.cols = this._cols;
|
|
157
132
|
this.rows = this._rows;
|
|
158
133
|
this.initialized = true;
|
|
159
134
|
}
|
|
160
135
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
161
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LayoutComponent, isStandalone: true, selector: "ngx-decaf-layout", inputs: { cols: "cols", rows: "rows", breakpoint: "breakpoint", children: "children" }, usesInheritance: true, ngImport: i0, template: "\n@if(initialized) {\n @for (row of rows; track trackItemFn($index, row); let rowIndex = $index) {\n <div [id]=\"uid\" class=\"dcf-grid dcf-grid-collapse dcf-grid-match\">\n @if(row) {\n <div class=\"dcf-width-1-1 dcf-grid-title\">\n <ion-card class=\"dcf-grid-title\">\n {{row.title | translate}}\n </ion-card>\n </div>\n }\n @for (child of row.cols; track trackItemFn($index, child.col); let colIndex = $index) {\n <div [class]=\"(child.col === cols.length ? 'dcf-width-1-1' : 'dcf-width-'+child.col+'-'+cols.length+'@'+breakpoint)\">\n <div [class]=\"'dcf-grid-child '+child.col \">\n @if(child.tag === 'ngx-decaf-crud-form') {\n <ion-card [class]=\"'dcf-height-1-1 ' + className\">\n <ion-card-content>\n <ngx-decaf-model-renderer\n [model]=\"child.props.name\"\n (listenEvent)=\"handleEvent($event)\"\n />\n </ion-card-content>\n </ion-card>\n } @else {\n <ngx-decaf-component-renderer\n [tag]=\"child.tag\"\n (listenEvent)=\"handleEvent($event)\"\n [globals]=\"{props: child.props}\"\n />\n }\n </div>\n </div>\n }\n </div>\n }\n}\n", styles: [".dcf-grid>div:not(.dcf-grid-title) ::ng-deep ngx-decaf-component-renderer>*>*{height:100%;display:flex;justify-content:center!important;align-items:center!important}.dcf-grid ion-card.dcf-height-1-1>ion-card-content{margin-top:2rem}.dcf-grid.dcf-grid-small .dcf-grid-child{margin-bottom:2rem}.dcf-grid.dcf-grid-collapse .dcf-grid-child{margin-bottom:1.25rem}.dcf-grid.dcf-grid-collapse .dcf-grid-child ion-card{margin-bottom:1.25rem}.dcf-grid-title{font-size:1.05rem!important;background:none;box-shadow:none;margin-bottom:0;padding-bottom:0;font-weight:600;color:var(--dcf-color-dark);display:flex;align-items:center;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: ModelRendererComponent, selector: "ngx-decaf-model-renderer", inputs: ["model", "globals", "rendererId"], outputs: ["listenEvent"] }, { kind: "component", type: ComponentRendererComponent, selector: "ngx-decaf-component-renderer", inputs: ["tag", "globals", "model", "parent"], outputs: ["listenEvent"] }] }); }
|
|
136
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LayoutComponent, isStandalone: true, selector: "ngx-decaf-layout", inputs: { cols: "cols", rows: "rows", breakpoint: "breakpoint", children: "children" }, usesInheritance: true, ngImport: i0, template: "\n@if(initialized) {\n @for (row of rows; track trackItemFn($index, row); let rowIndex = $index) {\n <div [id]=\"uid\" class=\"dcf-grid dcf-grid-collapse dcf-grid-match\">\n @if(row) {\n <div class=\"dcf-width-1-1 dcf-grid-title\">\n <ion-card class=\"dcf-grid-title\">\n {{row.title | translate}}\n </ion-card>\n </div>\n }\n @for (child of row.cols; track trackItemFn($index, child.col); let colIndex = $index) {\n <div [class]=\"(child.col === cols.length ? 'dcf-width-1-1' : 'dcf-width-'+child.col+'-'+cols.length+'@'+breakpoint)\">\n <div [class]=\"'dcf-grid-child '+child.col \">\n @if(child.tag === 'ngx-decaf-crud-form') {\n <ion-card [class]=\"'dcf-height-1-1 ' + className\">\n <ion-card-content>\n <ngx-decaf-model-renderer\n [model]=\"child.props.name\"\n (listenEvent)=\"handleEvent($event)\"\n />\n </ion-card-content>\n </ion-card>\n } @else {\n <ngx-decaf-component-renderer\n [tag]=\"child.tag\"\n (listenEvent)=\"handleEvent($event)\"\n [globals]=\"{props: child.props}\"\n />\n }\n </div>\n </div>\n }\n </div>\n }\n}\n", styles: [".dcf-grid>div:not(.dcf-grid-title) ::ng-deep ngx-decaf-component-renderer>*>*{height:100%;display:flex;justify-content:center!important;align-items:center!important}.dcf-grid ion-card.dcf-height-1-1>ion-card-content{margin-top:2rem}.dcf-grid.dcf-grid-small .dcf-grid-child{margin-bottom:2rem}.dcf-grid.dcf-grid-collapse .dcf-grid-child{margin-bottom:1.25rem}.dcf-grid.dcf-grid-collapse .dcf-grid-child ion-card{margin-bottom:1.25rem}.dcf-grid-title{font-size:1.05rem!important;background:none;box-shadow:none;margin-bottom:0;padding-bottom:0;font-weight:600;color:var(--dcf-color-dark);display:flex;align-items:center;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: ModelRendererComponent, selector: "ngx-decaf-model-renderer", inputs: ["model", "globals", "projectable", "rendererId"], outputs: ["listenEvent"] }, { kind: "component", type: ComponentRendererComponent, selector: "ngx-decaf-component-renderer", inputs: ["tag", "globals", "children", "model", "parent"], outputs: ["listenEvent"] }] }); }
|
|
162
137
|
}
|
|
163
138
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LayoutComponent, decorators: [{
|
|
164
139
|
type: Component,
|
|
@@ -172,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
172
147
|
}], children: [{
|
|
173
148
|
type: Input
|
|
174
149
|
}] } });
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWpFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFcEQ7Ozs7Ozs7Ozs7O0dBV0c7QUFTSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxnQkFBZ0I7SUF5RG5EOzs7Ozs7O09BT0c7SUFDSDtRQUNFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBaEUxQjs7Ozs7Ozs7OztXQVVHO1FBRUgsU0FBSSxHQUFzQixDQUFDLENBQUM7UUFFNUI7Ozs7Ozs7OztXQVNHO1FBRUgsU0FBSSxHQUFtQyxDQUFDLENBQUM7UUFFekM7Ozs7Ozs7Ozs7V0FVRztRQUVILGVBQVUsR0FBdUIsUUFBUSxDQUFDO1FBRTFDOzs7Ozs7Ozs7O1dBVUc7UUFFSCxhQUFRLEdBQWUsRUFBRSxDQUFDO0lBWTFCLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsSUFBSSxLQUFLO1FBQ1AsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyQixJQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVE7WUFDekIsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFDLEVBQUUsR0FBRyxFQUFFLENBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILElBQUksS0FBSztRQUNQLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDckIsSUFBRyxPQUFPLElBQUksS0FBSyxRQUFRO1lBQ3pCLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUM3QixPQUFPO2dCQUNMLEtBQUssRUFBRyxHQUFnQixFQUFFLENBQUMsT0FBTyxDQUFDO2dCQUNuQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ2pDLElBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDO3dCQUMzQixPQUFPLEtBQUssQ0FBQztnQkFDakIsQ0FBQyxDQUFDO2FBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BcUJHO0lBQ00sVUFBVTtRQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBd0IsQ0FBQztRQUNsRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7K0dBekpVLGVBQWU7bUdBQWYsZUFBZSwyTEM1QjVCLHk0Q0FvQ0EsMnRCRFpZLGFBQWEsa0RBQUUsc0JBQXNCLDJJQUFFLDBCQUEwQjs7NEZBSWhFLGVBQWU7a0JBUjNCLFNBQVM7K0JBQ0Usa0JBQWtCLFdBR25CLENBQUMsYUFBYSxFQUFFLHNCQUFzQixFQUFFLDBCQUEwQixDQUFDLGNBQ2hFLElBQUk7d0RBaUJoQixJQUFJO3NCQURILEtBQUs7Z0JBY04sSUFBSTtzQkFESCxLQUFLO2dCQWVOLFVBQVU7c0JBRFQsS0FBSztnQkFlTixRQUFRO3NCQURQLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4QmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VuZ2luZS9OZ3hCYXNlQ29tcG9uZW50JztcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSAnLi4vLi4vZW5naW5lJztcbmltcG9ydCB7IENvbXBvbmVudFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50LXJlbmRlcmVyL2NvbXBvbmVudC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kZWxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4uL21vZGVsLXJlbmRlcmVyL21vZGVsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVSU1lZGlhQnJlYWtQb2ludHMgfSBmcm9tICdAZGVjYWYtdHMvdWktZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIExheW91dCBjb21wb25lbnQgZm9yIGNyZWF0aW5nIHJlc3BvbnNpdmUgZ3JpZCBsYXlvdXRzIGluIEFuZ3VsYXIgYXBwbGljYXRpb25zLlxuICogQHN1bW1hcnkgVGhpcyBjb21wb25lbnQgcHJvdmlkZXMgYSBmbGV4aWJsZSBncmlkIHN5c3RlbSB0aGF0IGNhbiBiZSBjb25maWd1cmVkIHdpdGggZHluYW1pY1xuICogcm93cyBhbmQgY29sdW1ucy4gSXQgc3VwcG9ydHMgcmVzcG9uc2l2ZSBicmVha3BvaW50cyBhbmQgY2FuIHJlbmRlciBjaGlsZCBjb21wb25lbnRzIHdpdGhpblxuICogdGhlIGdyaWQgc3RydWN0dXJlLiBUaGUgY29tcG9uZW50IGV4dGVuZHMgTmd4QmFzZUNvbXBvbmVudCB0byBpbmhlcml0IGNvbW1vbiBmdW5jdGlvbmFsaXR5XG4gKiBhbmQgaW50ZWdyYXRlcyB3aXRoIHRoZSBtb2RlbCBhbmQgY29tcG9uZW50IHJlbmRlcmVyIHN5c3RlbXMuXG4gKlxuICogQGNsYXNzIExheW91dENvbXBvbmVudFxuICogQGV4dGVuZHMge05neEJhc2VDb21wb25lbnR9XG4gKiBAaW1wbGVtZW50cyB7T25Jbml0fVxuICogQG1lbWJlck9mIExheW91dENvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtZGVjYWYtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xheW91dC5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlUGlwZSwgTW9kZWxSZW5kZXJlckNvbXBvbmVudCwgQ29tcG9uZW50UmVuZGVyZXJDb21wb25lbnRdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuXG59KVxuZXhwb3J0IGNsYXNzIExheW91dENvbXBvbmVudCBleHRlbmRzIE5neEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIGNvbHVtbnMgb3IgYXJyYXkgb2YgY29sdW1uIGRlZmluaXRpb25zIGZvciB0aGUgZ3JpZCBsYXlvdXQuXG4gICAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIGNvbHVtbiBzdHJ1Y3R1cmUgb2YgdGhlIGdyaWQuIFdoZW4gYSBudW1iZXIgaXMgcHJvdmlkZWQsIGl0IGNyZWF0ZXNcbiAgICogdGhhdCBtYW55IGVxdWFsLXdpZHRoIGNvbHVtbnMuIFdoZW4gYW4gYXJyYXkgaXMgcHJvdmlkZWQsIGVhY2ggZWxlbWVudCBjYW4gZGVmaW5lIHNwZWNpZmljXG4gICAqIGNvbHVtbiBwcm9wZXJ0aWVzIG9yIHNpemluZy4gVGhpcyBhbGxvd3MgZm9yIGZsZXhpYmxlIGdyaWQgbGF5b3V0cyB0aGF0IGNhbiBhZGFwdCB0b1xuICAgKiBkaWZmZXJlbnQgY29udGVudCByZXF1aXJlbWVudHMuXG4gICAqXG4gICAqIEB0eXBlIHsobnVtYmVyIHwgc3RyaW5nW10pfVxuICAgKiBAZGVmYXVsdCAxXG4gICAqIEBtZW1iZXJPZiBMYXlvdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGNvbHM6IG51bWJlciB8IHN0cmluZ1tdID0gMTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiByb3dzIG9yIGFycmF5IG9mIHJvdyBkZWZpbml0aW9ucyBmb3IgdGhlIGdyaWQgbGF5b3V0LlxuICAgKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSByb3cgc3RydWN0dXJlIG9mIHRoZSBncmlkLiBXaGVuIGEgbnVtYmVyIGlzIHByb3ZpZGVkLCBpdCBjcmVhdGVzXG4gICAqIHRoYXQgbWFueSBlcXVhbC1oZWlnaHQgcm93cy4gV2hlbiBhbiBhcnJheSBpcyBwcm92aWRlZCwgZWFjaCBlbGVtZW50IGNhbiBkZWZpbmUgc3BlY2lmaWNcbiAgICogcm93IHByb3BlcnRpZXMgb3Igc2l6aW5nLiBUaGlzIHByb3ZpZGVzIGNvbnRyb2wgb3ZlciB2ZXJ0aWNhbCBzcGFjaW5nIGFuZCBjb250ZW50IG9yZ2FuaXphdGlvbi5cbiAgICpcbiAgICogQHR5cGUgeyhudW1iZXIgfCBzdHJpbmdbXSl9XG4gICAqIEBkZWZhdWx0IDFcbiAgICogQG1lbWJlck9mIExheW91dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgcm93czogbnVtYmVyIHwgS2V5VmFsdWVbXSB8IHN0cmluZ1tdID0gMTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIE1lZGlhIGJyZWFrcG9pbnQgZm9yIHJlc3BvbnNpdmUgYmVoYXZpb3IuXG4gICAqIEBzdW1tYXJ5IERldGVybWluZXMgdGhlIHJlc3BvbnNpdmUgYnJlYWtwb2ludCBhdCB3aGljaCB0aGUgbGF5b3V0IHNob3VsZCBhZGFwdC5cbiAgICogVGhpcyBhZmZlY3RzIGhvdyB0aGUgZ3JpZCBiZWhhdmVzIG9uIGRpZmZlcmVudCBzY3JlZW4gc2l6ZXMsIGFsbG93aW5nIGZvclxuICAgKiBtb2JpbGUtZmlyc3Qgb3IgZGVza3RvcC1maXJzdCByZXNwb25zaXZlIGRlc2lnbiBwYXR0ZXJucy4gVGhlIGJyZWFrcG9pbnRcbiAgICogaXMgYXV0b21hdGljYWxseSBwcm9jZXNzZWQgdG8gZW5zdXJlIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgVUkgZnJhbWV3b3JrLlxuICAgKlxuICAgKiBAdHlwZSB7VUlNZWRpYUJyZWFrUG9pbnRzfVxuICAgKiBAZGVmYXVsdCAnbWVkaXVtJ1xuICAgKiBAbWVtYmVyT2YgTGF5b3V0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBicmVha3BvaW50OiBVSU1lZGlhQnJlYWtQb2ludHMgPSAnbWVkaXVtJztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEFycmF5IG9mIGNoaWxkIGNvbXBvbmVudHMgb3IgZGF0YSB0byByZW5kZXIgd2l0aGluIHRoZSBncmlkLlxuICAgKiBAc3VtbWFyeSBDb250YWlucyB0aGUgY2hpbGQgZWxlbWVudHMgdGhhdCB3aWxsIGJlIGRpc3RyaWJ1dGVkIGFjcm9zcyB0aGUgZ3JpZCBsYXlvdXQuXG4gICAqIEVhY2ggaXRlbSBpbiB0aGUgYXJyYXkgcmVwcmVzZW50cyBjb250ZW50IHRoYXQgd2lsbCBiZSByZW5kZXJlZCB1c2luZyB0aGUgYXBwcm9wcmlhdGVcbiAgICogcmVuZGVyZXIgY29tcG9uZW50IChNb2RlbFJlbmRlcmVyIG9yIENvbXBvbmVudFJlbmRlcmVyKS4gVGhpcyBhbGxvd3MgZm9yIG1peGVkIGNvbnRlbnRcbiAgICogdHlwZXMgd2l0aGluIGEgc2luZ2xlIGxheW91dCBzdHJ1Y3R1cmUuXG4gICAqXG4gICAqIEB0eXBlIHtLZXlWYWx1ZVtdfVxuICAgKiBAZGVmYXVsdCBbXVxuICAgKiBAbWVtYmVyT2YgTGF5b3V0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBjaGlsZHJlbjogS2V5VmFsdWVbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBMYXlvdXRDb21wb25lbnQuXG4gICAqIEBzdW1tYXJ5IEluaXRpYWxpemVzIGEgbmV3IExheW91dENvbXBvbmVudCB3aXRoIHRoZSBjb21wb25lbnQgbmFtZSBcIkxheW91dENvbXBvbmVudFwiLlxuICAgKiBUaGlzIGNvbnN0cnVjdG9yIGNhbGxzIHRoZSBwYXJlbnQgTmd4QmFzZUNvbXBvbmVudCBjb25zdHJ1Y3RvciB0byBzZXQgdXAgYmFzZVxuICAgKiBmdW5jdGlvbmFsaXR5IGFuZCBjb21wb25lbnQgaWRlbnRpZmljYXRpb24uXG4gICAqXG4gICAqIEBtZW1iZXJPZiBMYXlvdXRDb21wb25lbnRcbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFwiTGF5b3V0Q29tcG9uZW50XCIpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdldHRlciB0aGF0IGNvbnZlcnRzIGNvbHVtbnMgaW5wdXQgdG8gYW4gYXJyYXkgZm9ybWF0LlxuICAgKiBAc3VtbWFyeSBUcmFuc2Zvcm1zIHRoZSBjb2xzIGlucHV0IHByb3BlcnR5IGludG8gYSBzdGFuZGFyZGl6ZWQgc3RyaW5nIGFycmF5IGZvcm1hdC5cbiAgICogV2hlbiBjb2xzIGlzIGEgbnVtYmVyLCBpdCBjcmVhdGVzIGFuIGFycmF5IHdpdGggdGhhdCBtYW55IGVtcHR5IHN0cmluZyBlbGVtZW50cy5cbiAgICogV2hlbiBjb2xzIGlzIGFscmVhZHkgYW4gYXJyYXksIGl0IHJldHVybnMgdGhlIGFycmF5IGFzLWlzLiBUaGlzIG5vcm1hbGl6YXRpb25cbiAgICogZW5zdXJlcyBjb25zaXN0ZW50IGhhbmRsaW5nIG9mIGNvbHVtbiBkZWZpbml0aW9ucyBpbiB0aGUgdGVtcGxhdGUuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmdbXX1cbiAgICogQHJlYWRvbmx5XG4gICAqIEBtZW1iZXJPZiBMYXlvdXRDb21wb25lbnRcbiAgICovXG4gIGdldCBfY29scygpOiBzdHJpbmdbXSB7XG4gICAgbGV0IGNvbHMgPSB0aGlzLmNvbHM7XG4gICAgaWYodHlwZW9mIGNvbHMgPT09IFwibnVtYmVyXCIpXG4gICAgICBjb2xzID0gQXJyYXkuZnJvbSh7bGVuZ3RoOiBOdW1iZXIoY29scyl9LCAoKSA9PiAgYGApO1xuICAgIHJldHVybiBjb2xzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXR0ZXIgdGhhdCBjb252ZXJ0cyByb3dzIGlucHV0IHRvIGFuIGFycmF5IGZvcm1hdC5cbiAgICogQHN1bW1hcnkgVHJhbnNmb3JtcyB0aGUgcm93cyBpbnB1dCBwcm9wZXJ0eSBpbnRvIGEgc3RhbmRhcmRpemVkIHN0cmluZyBhcnJheSBmb3JtYXQuXG4gICAqIFdoZW4gcm93cyBpcyBhIG51bWJlciwgaXQgY3JlYXRlcyBhbiBhcnJheSB3aXRoIHRoYXQgbWFueSBlbXB0eSBzdHJpbmcgZWxlbWVudHMuXG4gICAqIFdoZW4gcm93cyBpcyBhbHJlYWR5IGFuIGFycmF5LCBpdCByZXR1cm5zIHRoZSBhcnJheSBhcy1pcy4gVGhpcyBub3JtYWxpemF0aW9uXG4gICAqIGVuc3VyZXMgY29uc2lzdGVudCBoYW5kbGluZyBvZiByb3cgZGVmaW5pdGlvbnMgaW4gdGhlIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAdHlwZSB7S2V5VmFsdWVbXX1cbiAgICogQHJlYWRvbmx5XG4gICAqIEBtZW1iZXJPZiBMYXlvdXRDb21wb25lbnRcbiAgICovXG4gIGdldCBfcm93cygpOiBLZXlWYWx1ZVtdIHtcbiAgICBsZXQgcm93cyA9IHRoaXMucm93cztcbiAgICBpZih0eXBlb2Ygcm93cyA9PT0gXCJudW1iZXJcIilcbiAgICAgIHJvd3MgPSBBcnJheS5mcm9tKHtsZW5ndGg6IE51bWJlcihyb3dzKX0sICgpID0+ICh7dGl0bGU6ICcnfSkpO1xuICAgIHJldHVybiByb3dzLm1hcCgocm93LCBpbmRleCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGl0bGU6IChyb3cgYXMgS2V5VmFsdWUpPy5bJ3RpdGxlJ10sXG4gICAgICAgIGNvbHM6IHRoaXMuY2hpbGRyZW4uZmlsdGVyKGNoaWxkID0+IHtcbiAgICAgICAgICBpZihjaGlsZFsncm93J10gPT09IGluZGV4ICsgMSlcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgfSlcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEFuZ3VsYXIgbGlmZWN5Y2xlIGhvb2sgdGhhdCBydW5zIGFmdGVyIGNvbXBvbmVudCBpbml0aWFsaXphdGlvbi5cbiAgICogQHN1bW1hcnkgQ2FsbGVkIG9uY2UsIGFmdGVyIHRoZSBmaXJzdCBuZ09uQ2hhbmdlcygpLiBUaGlzIG1ldGhvZCB0cmlnZ2VycyB0aGVcbiAgICogY29tcG9uZW50J3MgaW5pdGlhbGl6YXRpb24gcHJvY2Vzcywgd2hpY2ggaW5jbHVkZXMgcHJvcGVydHkgcGFyc2luZyBhbmQgZ3JpZFxuICAgKiBzZXR1cC4gSXQgZW5zdXJlcyB0aGUgY29tcG9uZW50IGlzIHByb3Blcmx5IGNvbmZpZ3VyZWQgYmVmb3JlIHJlbmRlcmluZy5cbiAgICpcbiAgICogQG1lbWJlck9mIExheW91dENvbXBvbmVudFxuICAgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsaXplKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemVzIHRoZSBsYXlvdXQgY29tcG9uZW50IHdpdGggcHJvY2Vzc2VkIHByb3BlcnRpZXMuXG4gICAqIEBzdW1tYXJ5IE92ZXJyaWRlcyB0aGUgYmFzZSBjb21wb25lbnQncyBpbml0aWFsaXplIG1ldGhvZCB0byBzZXQgdXAgdGhlIGdyaWQgbGF5b3V0LlxuICAgKiBUaGlzIG1ldGhvZCBwcm9jZXNzZXMgaW5wdXQgcHJvcGVydGllcywgbm9ybWFsaXplcyB0aGUgYnJlYWtwb2ludCB2YWx1ZSwgY29udmVydHNcbiAgICogcm93cyBhbmQgY29sdW1ucyB0byB0aGVpciBhcnJheSByZXByZXNlbnRhdGlvbnMsIGFuZCBtYXJrcyB0aGUgY29tcG9uZW50IGFzIGluaXRpYWxpemVkLlxuICAgKiBUaGUgaW5pdGlhbGl6YXRpb24gZW5zdXJlcyBhbGwgcHJvcGVydGllcyBhcmUgaW4gdGhlIGNvcnJlY3QgZm9ybWF0IGZvciByZW5kZXJpbmcuXG4gICAqXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IEwgYXMgTGF5b3V0Q29tcG9uZW50XG4gICAqICAgcGFydGljaXBhbnQgQiBhcyBOZ3hCYXNlQ29tcG9uZW50XG4gICAqXG4gICAqICAgTC0+PkI6IHBhcnNlUHJvcHModGhpcylcbiAgICogICBOb3RlIG92ZXIgTDogUHJvY2VzcyBjb21wb25lbnQgcHJvcGVydGllc1xuICAgKiAgIEwtPj5MOiBOb3JtYWxpemUgYnJlYWtwb2ludCB0byBsb3dlcmNhc2VcbiAgICogICBMLT4+TDogQ29udmVydCByb3dzIHRvIGFycmF5IGZvcm1hdFxuICAgKiAgIEwtPj5MOiBDb252ZXJ0IGNvbHMgdG8gYXJyYXkgZm9ybWF0XG4gICAqICAgTC0+Pkw6IFNldCBpbml0aWFsaXplZCA9IHRydWVcbiAgICpcbiAgICogQG92ZXJyaWRlXG4gICAqIEBtZW1iZXJPZiBMYXlvdXRDb21wb25lbnRcbiAgICovXG4gIG92ZXJyaWRlIGluaXRpYWxpemUoKSB7XG4gICAgdGhpcy5wYXJzZVByb3BzKHRoaXMpO1xuICAgIHRoaXMuYnJlYWtwb2ludCA9IHRoaXMuYnJlYWtwb2ludC5zbGljZSgwLCAyKS50b0xvd2VyQ2FzZSgpIGFzIFVJTWVkaWFCcmVha1BvaW50cztcbiAgICB0aGlzLmNvbHMgPSB0aGlzLl9jb2xzO1xuICAgIHRoaXMucm93cyA9IHRoaXMuX3Jvd3M7XG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gIH1cbn1cbiIsIlxuQGlmKGluaXRpYWxpemVkKSB7XG4gIEBmb3IgKHJvdyBvZiByb3dzOyB0cmFjayB0cmFja0l0ZW1GbigkaW5kZXgsIHJvdyk7IGxldCByb3dJbmRleCA9ICRpbmRleCkge1xuICAgIDxkaXYgW2lkXT1cInVpZFwiIGNsYXNzPVwiZGNmLWdyaWQgZGNmLWdyaWQtY29sbGFwc2UgZGNmLWdyaWQtbWF0Y2hcIj5cbiAgICAgIEBpZihyb3cpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImRjZi13aWR0aC0xLTEgZGNmLWdyaWQtdGl0bGVcIj5cbiAgICAgICAgICA8aW9uLWNhcmQgY2xhc3M9XCJkY2YtZ3JpZC10aXRsZVwiPlxuICAgICAgICAgICAge3tyb3cudGl0bGUgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgIDwvaW9uLWNhcmQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgQGZvciAoY2hpbGQgb2Ygcm93LmNvbHM7IHRyYWNrIHRyYWNrSXRlbUZuKCRpbmRleCwgY2hpbGQuY29sKTsgbGV0IGNvbEluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgIDxkaXYgW2NsYXNzXT1cIihjaGlsZC5jb2wgPT09IGNvbHMubGVuZ3RoID8gJ2RjZi13aWR0aC0xLTEnIDogJ2RjZi13aWR0aC0nK2NoaWxkLmNvbCsnLScrY29scy5sZW5ndGgrJ0AnK2JyZWFrcG9pbnQpXCI+XG4gICAgICAgICAgICA8ZGl2IFtjbGFzc109XCInZGNmLWdyaWQtY2hpbGQgJytjaGlsZC5jb2wgXCI+XG4gICAgICAgICAgICAgIEBpZihjaGlsZC50YWcgPT09ICduZ3gtZGVjYWYtY3J1ZC1mb3JtJykge1xuICAgICAgICAgICAgICAgIDxpb24tY2FyZCBbY2xhc3NdPVwiJ2RjZi1oZWlnaHQtMS0xICcgKyBjbGFzc05hbWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpb24tY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8bmd4LWRlY2FmLW1vZGVsLXJlbmRlcmVyXG4gICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cImNoaWxkLnByb3BzLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIChsaXN0ZW5FdmVudCk9XCJoYW5kbGVFdmVudCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICA8L2lvbi1jYXJkPlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8bmd4LWRlY2FmLWNvbXBvbmVudC1yZW5kZXJlclxuICAgICAgICAgICAgICAgICAgW3RhZ109XCJjaGlsZC50YWdcIlxuICAgICAgICAgICAgICAgICAgKGxpc3RlbkV2ZW50KT1cImhhbmRsZUV2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgW2dsb2JhbHNdPVwie3Byb3BzOiBjaGlsZC5wcm9wc31cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxufVxuIl19
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWpFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFcEQ7Ozs7Ozs7Ozs7O0dBV0c7QUFTSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxnQkFBZ0I7SUF5RG5EOzs7Ozs7O09BT0c7SUFDSDtRQUNFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBaEUxQjs7Ozs7Ozs7OztXQVVHO1FBRUgsU0FBSSxHQUFzQixDQUFDLENBQUM7UUFFNUI7Ozs7Ozs7OztXQVNHO1FBRUgsU0FBSSxHQUFtQyxDQUFDLENBQUM7UUFFekM7Ozs7Ozs7Ozs7V0FVRztRQUVILGVBQVUsR0FBdUIsUUFBUSxDQUFDO1FBRTFDOzs7Ozs7Ozs7O1dBVUc7UUFFSCxhQUFRLEdBQWUsRUFBRSxDQUFDO0lBWTFCLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsSUFBSSxLQUFLO1FBQ1AsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyQixJQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVE7WUFDekIsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFDLEVBQUUsR0FBRyxFQUFFLENBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILElBQUksS0FBSztRQUNQLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDckIsSUFBRyxPQUFPLElBQUksS0FBSyxRQUFRO1lBQ3pCLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUM3QixPQUFPO2dCQUNMLEtBQUssRUFBRyxHQUFnQixFQUFFLENBQUMsT0FBTyxDQUFDO2dCQUNuQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ2pDLElBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDO3dCQUMzQixPQUFPLEtBQUssQ0FBQztnQkFDakIsQ0FBQyxDQUFDO2FBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsUUFBUTtRQUNaLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBd0IsQ0FBQztRQUNsRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7K0dBL0hVLGVBQWU7bUdBQWYsZUFBZSwyTEM1QjVCLHk0Q0FvQ0EsMnRCRFpZLGFBQWEsa0RBQUUsc0JBQXNCLDBKQUFFLDBCQUEwQjs7NEZBSWhFLGVBQWU7a0JBUjNCLFNBQVM7K0JBQ0Usa0JBQWtCLFdBR25CLENBQUMsYUFBYSxFQUFFLHNCQUFzQixFQUFFLDBCQUEwQixDQUFDLGNBQ2hFLElBQUk7d0RBaUJoQixJQUFJO3NCQURILEtBQUs7Z0JBY04sSUFBSTtzQkFESCxLQUFLO2dCQWVOLFVBQVU7c0JBRFQsS0FBSztnQkFlTixRQUFRO3NCQURQLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4QmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VuZ2luZS9OZ3hCYXNlQ29tcG9uZW50JztcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSAnLi4vLi4vZW5naW5lJztcbmltcG9ydCB7IENvbXBvbmVudFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50LXJlbmRlcmVyL2NvbXBvbmVudC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kZWxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4uL21vZGVsLXJlbmRlcmVyL21vZGVsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVSU1lZGlhQnJlYWtQb2ludHMgfSBmcm9tICdAZGVjYWYtdHMvdWktZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIExheW91dCBjb21wb25lbnQgZm9yIGNyZWF0aW5nIHJlc3BvbnNpdmUgZ3JpZCBsYXlvdXRzIGluIEFuZ3VsYXIgYXBwbGljYXRpb25zLlxuICogQHN1bW1hcnkgVGhpcyBjb21wb25lbnQgcHJvdmlkZXMgYSBmbGV4aWJsZSBncmlkIHN5c3RlbSB0aGF0IGNhbiBiZSBjb25maWd1cmVkIHdpdGggZHluYW1pY1xuICogcm93cyBhbmQgY29sdW1ucy4gSXQgc3VwcG9ydHMgcmVzcG9uc2l2ZSBicmVha3BvaW50cyBhbmQgY2FuIHJlbmRlciBjaGlsZCBjb21wb25lbnRzIHdpdGhpblxuICogdGhlIGdyaWQgc3RydWN0dXJlLiBUaGUgY29tcG9uZW50IGV4dGVuZHMgTmd4QmFzZUNvbXBvbmVudCB0byBpbmhlcml0IGNvbW1vbiBmdW5jdGlvbmFsaXR5XG4gKiBhbmQgaW50ZWdyYXRlcyB3aXRoIHRoZSBtb2RlbCBhbmQgY29tcG9uZW50IHJlbmRlcmVyIHN5c3RlbXMuXG4gKlxuICogQGNsYXNzIExheW91dENvbXBvbmVudFxuICogQGV4dGVuZHMge05neEJhc2VDb21wb25lbnR9XG4gKiBAaW1wbGVtZW50cyB7T25Jbml0fVxuICogQG1lbWJlck9mIExheW91dENvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtZGVjYWYtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xheW91dC5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlUGlwZSwgTW9kZWxSZW5kZXJlckNvbXBvbmVudCwgQ29tcG9uZW50UmVuZGVyZXJDb21wb25lbnRdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuXG59KVxuZXhwb3J0IGNsYXNzIExheW91dENvbXBvbmVudCBleHRlbmRzIE5neEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIGNvbHVtbnMgb3IgYXJyYXkgb2YgY29sdW1uIGRlZmluaXRpb25zIGZvciB0aGUgZ3JpZCBsYXlvdXQuXG4gICAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIGNvbHVtbiBzdHJ1Y3R1cmUgb2YgdGhlIGdyaWQuIFdoZW4gYSBudW1iZXIgaXMgcHJvdmlkZWQsIGl0IGNyZWF0ZXNcbiAgICogdGhhdCBtYW55IGVxdWFsLXdpZHRoIGNvbHVtbnMuIFdoZW4gYW4gYXJyYXkgaXMgcHJvdmlkZWQsIGVhY2ggZWxlbWVudCBjYW4gZGVmaW5lIHNwZWNpZmljXG4gICAqIGNvbHVtbiBwcm9wZXJ0aWVzIG9yIHNpemluZy4gVGhpcyBhbGxvd3MgZm9yIGZsZXhpYmxlIGdyaWQgbGF5b3V0cyB0aGF0IGNhbiBhZGFwdCB0b1xuICAgKiBkaWZmZXJlbnQgY29udGVudCByZXF1aXJlbWVudHMuXG4gICAqXG4gICAqIEB0eXBlIHsobnVtYmVyIHwgc3RyaW5nW10pfVxuICAgKiBAZGVmYXVsdCAxXG4gICAqIEBtZW1iZXJPZiBMYXlvdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGNvbHM6IG51bWJlciB8IHN0cmluZ1tdID0gMTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiByb3dzIG9yIGFycmF5IG9mIHJvdyBkZWZpbml0aW9ucyBmb3IgdGhlIGdyaWQgbGF5b3V0LlxuICAgKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSByb3cgc3RydWN0dXJlIG9mIHRoZSBncmlkLiBXaGVuIGEgbnVtYmVyIGlzIHByb3ZpZGVkLCBpdCBjcmVhdGVzXG4gICAqIHRoYXQgbWFueSBlcXVhbC1oZWlnaHQgcm93cy4gV2hlbiBhbiBhcnJheSBpcyBwcm92aWRlZCwgZWFjaCBlbGVtZW50IGNhbiBkZWZpbmUgc3BlY2lmaWNcbiAgICogcm93IHByb3BlcnRpZXMgb3Igc2l6aW5nLiBUaGlzIHByb3ZpZGVzIGNvbnRyb2wgb3ZlciB2ZXJ0aWNhbCBzcGFjaW5nIGFuZCBjb250ZW50IG9yZ2FuaXphdGlvbi5cbiAgICpcbiAgICogQHR5cGUgeyhudW1iZXIgfCBzdHJpbmdbXSl9XG4gICAqIEBkZWZhdWx0IDFcbiAgICogQG1lbWJlck9mIExheW91dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgcm93czogbnVtYmVyIHwgS2V5VmFsdWVbXSB8IHN0cmluZ1tdID0gMTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIE1lZGlhIGJyZWFrcG9pbnQgZm9yIHJlc3BvbnNpdmUgYmVoYXZpb3IuXG4gICAqIEBzdW1tYXJ5IERldGVybWluZXMgdGhlIHJlc3BvbnNpdmUgYnJlYWtwb2ludCBhdCB3aGljaCB0aGUgbGF5b3V0IHNob3VsZCBhZGFwdC5cbiAgICogVGhpcyBhZmZlY3RzIGhvdyB0aGUgZ3JpZCBiZWhhdmVzIG9uIGRpZmZlcmVudCBzY3JlZW4gc2l6ZXMsIGFsbG93aW5nIGZvclxuICAgKiBtb2JpbGUtZmlyc3Qgb3IgZGVza3RvcC1maXJzdCByZXNwb25zaXZlIGRlc2lnbiBwYXR0ZXJucy4gVGhlIGJyZWFrcG9pbnRcbiAgICogaXMgYXV0b21hdGljYWxseSBwcm9jZXNzZWQgdG8gZW5zdXJlIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgVUkgZnJhbWV3b3JrLlxuICAgKlxuICAgKiBAdHlwZSB7VUlNZWRpYUJyZWFrUG9pbnRzfVxuICAgKiBAZGVmYXVsdCAnbWVkaXVtJ1xuICAgKiBAbWVtYmVyT2YgTGF5b3V0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBicmVha3BvaW50OiBVSU1lZGlhQnJlYWtQb2ludHMgPSAnbWVkaXVtJztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEFycmF5IG9mIGNoaWxkIGNvbXBvbmVudHMgb3IgZGF0YSB0byByZW5kZXIgd2l0aGluIHRoZSBncmlkLlxuICAgKiBAc3VtbWFyeSBDb250YWlucyB0aGUgY2hpbGQgZWxlbWVudHMgdGhhdCB3aWxsIGJlIGRpc3RyaWJ1dGVkIGFjcm9zcyB0aGUgZ3JpZCBsYXlvdXQuXG4gICAqIEVhY2ggaXRlbSBpbiB0aGUgYXJyYXkgcmVwcmVzZW50cyBjb250ZW50IHRoYXQgd2lsbCBiZSByZW5kZXJlZCB1c2luZyB0aGUgYXBwcm9wcmlhdGVcbiAgICogcmVuZGVyZXIgY29tcG9uZW50IChNb2RlbFJlbmRlcmVyIG9yIENvbXBvbmVudFJlbmRlcmVyKS4gVGhpcyBhbGxvd3MgZm9yIG1peGVkIGNvbnRlbnRcbiAgICogdHlwZXMgd2l0aGluIGEgc2luZ2xlIGxheW91dCBzdHJ1Y3R1cmUuXG4gICAqXG4gICAqIEB0eXBlIHtLZXlWYWx1ZVtdfVxuICAgKiBAZGVmYXVsdCBbXVxuICAgKiBAbWVtYmVyT2YgTGF5b3V0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBjaGlsZHJlbjogS2V5VmFsdWVbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBMYXlvdXRDb21wb25lbnQuXG4gICAqIEBzdW1tYXJ5IEluaXRpYWxpemVzIGEgbmV3IExheW91dENvbXBvbmVudCB3aXRoIHRoZSBjb21wb25lbnQgbmFtZSBcIkxheW91dENvbXBvbmVudFwiLlxuICAgKiBUaGlzIGNvbnN0cnVjdG9yIGNhbGxzIHRoZSBwYXJlbnQgTmd4QmFzZUNvbXBvbmVudCBjb25zdHJ1Y3RvciB0byBzZXQgdXAgYmFzZVxuICAgKiBmdW5jdGlvbmFsaXR5IGFuZCBjb21wb25lbnQgaWRlbnRpZmljYXRpb24uXG4gICAqXG4gICAqIEBtZW1iZXJPZiBMYXlvdXRDb21wb25lbnRcbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFwiTGF5b3V0Q29tcG9uZW50XCIpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdldHRlciB0aGF0IGNvbnZlcnRzIGNvbHVtbnMgaW5wdXQgdG8gYW4gYXJyYXkgZm9ybWF0LlxuICAgKiBAc3VtbWFyeSBUcmFuc2Zvcm1zIHRoZSBjb2xzIGlucHV0IHByb3BlcnR5IGludG8gYSBzdGFuZGFyZGl6ZWQgc3RyaW5nIGFycmF5IGZvcm1hdC5cbiAgICogV2hlbiBjb2xzIGlzIGEgbnVtYmVyLCBpdCBjcmVhdGVzIGFuIGFycmF5IHdpdGggdGhhdCBtYW55IGVtcHR5IHN0cmluZyBlbGVtZW50cy5cbiAgICogV2hlbiBjb2xzIGlzIGFscmVhZHkgYW4gYXJyYXksIGl0IHJldHVybnMgdGhlIGFycmF5IGFzLWlzLiBUaGlzIG5vcm1hbGl6YXRpb25cbiAgICogZW5zdXJlcyBjb25zaXN0ZW50IGhhbmRsaW5nIG9mIGNvbHVtbiBkZWZpbml0aW9ucyBpbiB0aGUgdGVtcGxhdGUuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmdbXX1cbiAgICogQHJlYWRvbmx5XG4gICAqIEBtZW1iZXJPZiBMYXlvdXRDb21wb25lbnRcbiAgICovXG4gIGdldCBfY29scygpOiBzdHJpbmdbXSB7XG4gICAgbGV0IGNvbHMgPSB0aGlzLmNvbHM7XG4gICAgaWYodHlwZW9mIGNvbHMgPT09IFwibnVtYmVyXCIpXG4gICAgICBjb2xzID0gQXJyYXkuZnJvbSh7bGVuZ3RoOiBOdW1iZXIoY29scyl9LCAoKSA9PiAgYGApO1xuICAgIHJldHVybiBjb2xzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXR0ZXIgdGhhdCBjb252ZXJ0cyByb3dzIGlucHV0IHRvIGFuIGFycmF5IGZvcm1hdC5cbiAgICogQHN1bW1hcnkgVHJhbnNmb3JtcyB0aGUgcm93cyBpbnB1dCBwcm9wZXJ0eSBpbnRvIGEgc3RhbmRhcmRpemVkIHN0cmluZyBhcnJheSBmb3JtYXQuXG4gICAqIFdoZW4gcm93cyBpcyBhIG51bWJlciwgaXQgY3JlYXRlcyBhbiBhcnJheSB3aXRoIHRoYXQgbWFueSBlbXB0eSBzdHJpbmcgZWxlbWVudHMuXG4gICAqIFdoZW4gcm93cyBpcyBhbHJlYWR5IGFuIGFycmF5LCBpdCByZXR1cm5zIHRoZSBhcnJheSBhcy1pcy4gVGhpcyBub3JtYWxpemF0aW9uXG4gICAqIGVuc3VyZXMgY29uc2lzdGVudCBoYW5kbGluZyBvZiByb3cgZGVmaW5pdGlvbnMgaW4gdGhlIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAdHlwZSB7S2V5VmFsdWVbXX1cbiAgICogQHJlYWRvbmx5XG4gICAqIEBtZW1iZXJPZiBMYXlvdXRDb21wb25lbnRcbiAgICovXG4gIGdldCBfcm93cygpOiBLZXlWYWx1ZVtdIHtcbiAgICBsZXQgcm93cyA9IHRoaXMucm93cztcbiAgICBpZih0eXBlb2Ygcm93cyA9PT0gXCJudW1iZXJcIilcbiAgICAgIHJvd3MgPSBBcnJheS5mcm9tKHtsZW5ndGg6IE51bWJlcihyb3dzKX0sICgpID0+ICh7dGl0bGU6ICcnfSkpO1xuICAgIHJldHVybiByb3dzLm1hcCgocm93LCBpbmRleCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGl0bGU6IChyb3cgYXMgS2V5VmFsdWUpPy5bJ3RpdGxlJ10sXG4gICAgICAgIGNvbHM6IHRoaXMuY2hpbGRyZW4uZmlsdGVyKGNoaWxkID0+IHtcbiAgICAgICAgICBpZihjaGlsZFsncm93J10gPT09IGluZGV4ICsgMSlcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgfSlcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEFuZ3VsYXIgbGlmZWN5Y2xlIGhvb2sgdGhhdCBydW5zIGFmdGVyIGNvbXBvbmVudCBpbml0aWFsaXphdGlvbi5cbiAgICogQHN1bW1hcnkgQ2FsbGVkIG9uY2UsIGFmdGVyIHRoZSBmaXJzdCBuZ09uQ2hhbmdlcygpLiBUaGlzIG1ldGhvZCB0cmlnZ2VycyB0aGVcbiAgICogY29tcG9uZW50J3MgaW5pdGlhbGl6YXRpb24gcHJvY2Vzcywgd2hpY2ggaW5jbHVkZXMgcHJvcGVydHkgcGFyc2luZyBhbmQgZ3JpZFxuICAgKiBzZXR1cC4gSXQgZW5zdXJlcyB0aGUgY29tcG9uZW50IGlzIHByb3Blcmx5IGNvbmZpZ3VyZWQgYmVmb3JlIHJlbmRlcmluZy5cbiAgICpcbiAgICogQG1lbWJlck9mIExheW91dENvbXBvbmVudFxuICAgKi9cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5pbml0aWFsaXplKCk7XG4gICAgdGhpcy5icmVha3BvaW50ID0gdGhpcy5icmVha3BvaW50LnNsaWNlKDAsIDIpLnRvTG93ZXJDYXNlKCkgYXMgVUlNZWRpYUJyZWFrUG9pbnRzO1xuICAgIHRoaXMuY29scyA9IHRoaXMuX2NvbHM7XG4gICAgdGhpcy5yb3dzID0gdGhpcy5fcm93cztcbiAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxufVxuIiwiXG5AaWYoaW5pdGlhbGl6ZWQpIHtcbiAgQGZvciAocm93IG9mIHJvd3M7IHRyYWNrIHRyYWNrSXRlbUZuKCRpbmRleCwgcm93KTsgbGV0IHJvd0luZGV4ID0gJGluZGV4KSB7XG4gICAgPGRpdiBbaWRdPVwidWlkXCIgY2xhc3M9XCJkY2YtZ3JpZCBkY2YtZ3JpZC1jb2xsYXBzZSBkY2YtZ3JpZC1tYXRjaFwiPlxuICAgICAgQGlmKHJvdykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZGNmLXdpZHRoLTEtMSBkY2YtZ3JpZC10aXRsZVwiPlxuICAgICAgICAgIDxpb24tY2FyZCBjbGFzcz1cImRjZi1ncmlkLXRpdGxlXCI+XG4gICAgICAgICAgICB7e3Jvdy50aXRsZSB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgPC9pb24tY2FyZD5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICBAZm9yIChjaGlsZCBvZiByb3cuY29sczsgdHJhY2sgdHJhY2tJdGVtRm4oJGluZGV4LCBjaGlsZC5jb2wpOyBsZXQgY29sSW5kZXggPSAkaW5kZXgpIHtcbiAgICAgICAgPGRpdiBbY2xhc3NdPVwiKGNoaWxkLmNvbCA9PT0gY29scy5sZW5ndGggPyAnZGNmLXdpZHRoLTEtMScgOiAnZGNmLXdpZHRoLScrY2hpbGQuY29sKyctJytjb2xzLmxlbmd0aCsnQCcrYnJlYWtwb2ludClcIj5cbiAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cIidkY2YtZ3JpZC1jaGlsZCAnK2NoaWxkLmNvbCBcIj5cbiAgICAgICAgICAgICAgQGlmKGNoaWxkLnRhZyA9PT0gJ25neC1kZWNhZi1jcnVkLWZvcm0nKSB7XG4gICAgICAgICAgICAgICAgPGlvbi1jYXJkIFtjbGFzc109XCInZGNmLWhlaWdodC0xLTEgJyArIGNsYXNzTmFtZVwiPlxuICAgICAgICAgICAgICAgICAgPGlvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxuZ3gtZGVjYWYtbW9kZWwtcmVuZGVyZXJcbiAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiY2hpbGQucHJvcHMubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGxpc3RlbkV2ZW50KT1cImhhbmRsZUV2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICAgIDwvaW9uLWNhcmQ+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxuZ3gtZGVjYWYtY29tcG9uZW50LXJlbmRlcmVyXG4gICAgICAgICAgICAgICAgICBbdGFnXT1cImNoaWxkLnRhZ1wiXG4gICAgICAgICAgICAgICAgICAobGlzdGVuRXZlbnQpPVwiaGFuZGxlRXZlbnQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICBbZ2xvYmFsc109XCJ7cHJvcHM6IGNoaWxkLnByb3BzfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG59XG4iXX0=
|