zek 17.3.67 → 17.3.68
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/esm2022/lib/modules/date-ago/date-ago.pipe.mjs +2 -2
- package/esm2022/lib/modules/file-input/file-input.mjs +80 -0
- package/esm2022/lib/modules/file-input/index.mjs +2 -0
- package/esm2022/lib/modules/index.mjs +3 -3
- package/esm2022/lib/modules/numeric/numeric.directive.mjs +2 -2
- package/esm2022/lib/modules/utc-to-local/utc-to-local.pipe.mjs +2 -3
- package/esm2022/lib/services/file.service.mjs +23 -0
- package/esm2022/lib/services/index.mjs +2 -1
- package/esm2022/lib/utils/date-helper.mjs +1 -4
- package/fesm2022/zek.mjs +119 -35
- package/fesm2022/zek.mjs.map +1 -1
- package/lib/modules/file-input/file-input.d.ts +22 -0
- package/lib/modules/file-input/index.d.ts +1 -0
- package/lib/modules/index.d.ts +2 -1
- package/lib/services/file.service.d.ts +11 -0
- package/lib/services/index.d.ts +1 -0
- package/lib/utils/date-helper.d.ts +0 -1
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@ import { DateHelper } from '../../utils';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class ZekDateAgoPipe {
|
|
5
5
|
transform(value, args) {
|
|
6
|
-
if (value === undefined || value === null || value === '' || value !== value)
|
|
6
|
+
if (typeof value === 'undefined' || value === null || value === '' || value !== value)
|
|
7
7
|
return null;
|
|
8
8
|
const date = DateHelper.toDate(value);
|
|
9
9
|
const seconds = Math.floor((+new Date() - +new Date(date)) / 1000);
|
|
@@ -42,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
42
42
|
pure: true
|
|
43
43
|
}]
|
|
44
44
|
}] });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1hZ28ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL21vZHVsZXMvZGF0ZS1hZ28vZGF0ZS1hZ28ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQU96QyxNQUFNLE9BQU8sY0FBYztJQUV2QixTQUFTLENBQUMsS0FBVSxFQUFFLElBQVU7UUFDNUIsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssS0FBSyxLQUFLO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFbkcsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNuRSxJQUFJLE9BQU8sR0FBRyxFQUFFLEVBQUUsbURBQW1EO1lBQ2pFLE9BQU8sVUFBVSxDQUFDO1FBQ3RCLE1BQU0sU0FBUyxHQUE4QjtZQUN6QyxNQUFNLEVBQUUsUUFBUTtZQUNoQixPQUFPLEVBQUUsT0FBTztZQUNoQixNQUFNLEVBQUUsTUFBTTtZQUNkLEtBQUssRUFBRSxLQUFLO1lBQ1osTUFBTSxFQUFFLElBQUk7WUFDWixRQUFRLEVBQUUsRUFBRTtZQUNaLFFBQVEsRUFBRSxDQUFDO1NBQ2QsQ0FBQztRQUNGLElBQUksT0FBTyxDQUFDO1FBQ1osS0FBSyxNQUFNLENBQUMsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUN4QixPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0MsSUFBSSxPQUFPLEdBQUcsQ0FBQztnQkFDWCxJQUFJLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDaEIsT0FBTyxPQUFPLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyx1QkFBdUI7Z0JBQzlELENBQUM7cUJBQU0sQ0FBQztvQkFDSixPQUFPLE9BQU8sR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLHNCQUFzQjtnQkFDOUQsQ0FBQztRQUNULENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzhHQTdCUSxjQUFjOzRHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBTDFCLElBQUk7bUJBQUM7b0JBQ0YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxTQUFTO29CQUNmLElBQUksRUFBRSxJQUFJO2lCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRlSGVscGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xyXG5cclxuQFBpcGUoe1xyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIG5hbWU6ICdkYXRlQWdvJyxcclxuICAgIHB1cmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFpla0RhdGVBZ29QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblxyXG4gICAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGFyZ3M/OiBhbnkpOiBzdHJpbmcgfCBEYXRlIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnIHx8IHZhbHVlICE9PSB2YWx1ZSkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBEYXRlSGVscGVyLnRvRGF0ZSh2YWx1ZSk7XHJcbiAgICAgICAgY29uc3Qgc2Vjb25kcyA9IE1hdGguZmxvb3IoKCtuZXcgRGF0ZSgpIC0gK25ldyBEYXRlKGRhdGUpKSAvIDEwMDApO1xyXG4gICAgICAgIGlmIChzZWNvbmRzIDwgMjkpIC8vIGxlc3MgdGhhbiAzMCBzZWNvbmRzIGFnbyB3aWxsIHNob3cgYXMgJ0p1c3Qgbm93J1xyXG4gICAgICAgICAgICByZXR1cm4gJ0p1c3Qgbm93JztcclxuICAgICAgICBjb25zdCBpbnRlcnZhbHM6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7XHJcbiAgICAgICAgICAgICd5ZWFyJzogMzE1MzYwMDAsXHJcbiAgICAgICAgICAgICdtb250aCc6IDI1OTIwMDAsXHJcbiAgICAgICAgICAgICd3ZWVrJzogNjA0ODAwLFxyXG4gICAgICAgICAgICAnZGF5JzogODY0MDAsXHJcbiAgICAgICAgICAgICdob3VyJzogMzYwMCxcclxuICAgICAgICAgICAgJ21pbnV0ZSc6IDYwLFxyXG4gICAgICAgICAgICAnc2Vjb25kJzogMVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbGV0IGNvdW50ZXI7XHJcbiAgICAgICAgZm9yIChjb25zdCBpIGluIGludGVydmFscykge1xyXG4gICAgICAgICAgICBjb3VudGVyID0gTWF0aC5mbG9vcihzZWNvbmRzIC8gaW50ZXJ2YWxzW2ldKTtcclxuICAgICAgICAgICAgaWYgKGNvdW50ZXIgPiAwKVxyXG4gICAgICAgICAgICAgICAgaWYgKGNvdW50ZXIgPT09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY291bnRlciArICcgJyArIGkgKyAnIGFnbyc7IC8vIHNpbmd1bGFyICgxIGRheSBhZ28pXHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb3VudGVyICsgJyAnICsgaSArICdzIGFnbyc7IC8vIHBsdXJhbCAoMiBkYXlzIGFnbylcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9XHJcblxyXG59Il19
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, EventEmitter, inject, Input, Output } from '@angular/core';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { FileService } from '../../services/file.service';
|
|
5
|
+
import { CoreUiComponent } from '../../components/core-ui.component';
|
|
6
|
+
import { Convert } from '../../utils/convert';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
let uniqueId = 0;
|
|
9
|
+
export class ZekFileInput extends CoreUiComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
// @Input() model!: string[] | null;
|
|
13
|
+
this.onUpload = new EventEmitter();
|
|
14
|
+
this.fileService = inject(FileService);
|
|
15
|
+
this._uniqueId = `zek-file-input-${++uniqueId}`;
|
|
16
|
+
/** The unique ID for the tag. */
|
|
17
|
+
this.id = this._uniqueId;
|
|
18
|
+
this._accept = '*';
|
|
19
|
+
this._multiple = false;
|
|
20
|
+
}
|
|
21
|
+
get inputId() {
|
|
22
|
+
return `${this.id || this._uniqueId}-input`;
|
|
23
|
+
}
|
|
24
|
+
get accept() {
|
|
25
|
+
return this._accept;
|
|
26
|
+
}
|
|
27
|
+
set accept(v) {
|
|
28
|
+
if (!v)
|
|
29
|
+
this._accept = '*';
|
|
30
|
+
else
|
|
31
|
+
this._accept = v;
|
|
32
|
+
}
|
|
33
|
+
get multiple() {
|
|
34
|
+
return this._multiple;
|
|
35
|
+
}
|
|
36
|
+
set multiple(v) {
|
|
37
|
+
this._multiple = Convert.toBooleanProperty(v);
|
|
38
|
+
}
|
|
39
|
+
// files: File[] | null = null;
|
|
40
|
+
clickInput() {
|
|
41
|
+
const el = document.getElementById(this.inputId);
|
|
42
|
+
if (el) {
|
|
43
|
+
el.click();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async onFileInputChange(event) {
|
|
47
|
+
event.preventDefault();
|
|
48
|
+
event.stopPropagation();
|
|
49
|
+
const files = event?.target?.files;
|
|
50
|
+
if (Array.isArray(!files))
|
|
51
|
+
return;
|
|
52
|
+
const formData = new FormData();
|
|
53
|
+
for (let i = 0; i < files.length; i++) {
|
|
54
|
+
const file = files[i];
|
|
55
|
+
formData.append('files', file, file.name);
|
|
56
|
+
}
|
|
57
|
+
this.fileService.save(formData).subscribe(data => {
|
|
58
|
+
if (data?.success) {
|
|
59
|
+
this.onUpload.emit(data.value);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekFileInput, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
64
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ZekFileInput, isStandalone: true, selector: "zek-file-input", inputs: { id: "id", accept: "accept", multiple: "multiple" }, outputs: { onUpload: "onUpload" }, host: { properties: { "attr.id": "id" } }, providers: [FileService], usesInheritance: true, ngImport: i0, template: "<input type=\"file\" class=\"form-control\"\r\n name=\"{{inputId}}\"\r\n id=\"{{inputId}}\"\r\n [multiple]=\"multiple\" [accept]=\"accept\" [required]=\"required\" [disabled]=\"readonly\"\r\n #fileInput\r\n (change)=\"onFileInputChange($event)\" />", styles: [":host input[type=file]{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] }); }
|
|
65
|
+
}
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekFileInput, decorators: [{
|
|
67
|
+
type: Component,
|
|
68
|
+
args: [{ standalone: true, imports: [CommonModule, FormsModule], selector: 'zek-file-input', providers: [FileService], host: {
|
|
69
|
+
'[attr.id]': 'id',
|
|
70
|
+
}, template: "<input type=\"file\" class=\"form-control\"\r\n name=\"{{inputId}}\"\r\n id=\"{{inputId}}\"\r\n [multiple]=\"multiple\" [accept]=\"accept\" [required]=\"required\" [disabled]=\"readonly\"\r\n #fileInput\r\n (change)=\"onFileInputChange($event)\" />", styles: [":host input[type=file]{display:none}\n"] }]
|
|
71
|
+
}], propDecorators: { onUpload: [{
|
|
72
|
+
type: Output
|
|
73
|
+
}], id: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], accept: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], multiple: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}] } });
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL21vZHVsZXMvZmlsZS1pbnB1dC9maWxlLWlucHV0LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy9maWxlLWlucHV0L2ZpbGUtaW5wdXQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFckUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUU5QyxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFhakIsTUFBTSxPQUFPLFlBQWEsU0FBUSxlQUFlO0lBWGpEOztRQVlJLG9DQUFvQztRQUNqQixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUU1QyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUzQyxjQUFTLEdBQVcsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDM0QsaUNBQWlDO1FBQ3hCLE9BQUUsR0FBVyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBTTdCLFlBQU8sR0FBRyxHQUFHLENBQUM7UUFhZCxjQUFTLEdBQUcsS0FBSyxDQUFDO0tBb0M3QjtJQXJERyxJQUFJLE9BQU87UUFDUCxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsU0FBUyxRQUFRLENBQUM7SUFDaEQsQ0FBQztJQUdELElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFDSSxNQUFNLENBQUMsQ0FBNEI7UUFDbkMsSUFBSSxDQUFDLENBQUM7WUFDRixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQzs7WUFFbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUlELElBQ0ksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsQ0FBZTtRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsK0JBQStCO0lBRS9CLFVBQVU7UUFDTixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ0wsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBVTtRQUM5QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDO1FBQ25DLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU87UUFFbEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0MsSUFBSSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDOzhHQTlEUSxZQUFZO2tHQUFaLFlBQVkseU1BTFYsQ0FBQyxXQUFXLENBQUMsaURDaEI1Qix5UUFLMkMsK0ZETzdCLFlBQVksOEJBQUUsV0FBVzs7MkZBUzFCLFlBQVk7a0JBWHhCLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxZQUMxQixnQkFBZ0IsYUFHZixDQUFDLFdBQVcsQ0FBQyxRQUNsQjt3QkFDRixXQUFXLEVBQUUsSUFBSTtxQkFDcEI7OEJBSWtCLFFBQVE7c0JBQTFCLE1BQU07Z0JBTUUsRUFBRTtzQkFBVixLQUFLO2dCQVdGLE1BQU07c0JBRFQsS0FBSztnQkFXRixRQUFRO3NCQURYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGaWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpbGUuc2VydmljZSc7XHJcbmltcG9ydCB7IENvcmVVaUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvY29yZS11aS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3R5cGVzJztcclxuaW1wb3J0IHsgQ29udmVydCB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbnZlcnQnO1xyXG5cclxubGV0IHVuaXF1ZUlkID0gMDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcclxuICAgIHNlbGVjdG9yOiAnemVrLWZpbGUtaW5wdXQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICdmaWxlLWlucHV0Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICdmaWxlLWlucHV0LnNjc3MnLFxyXG4gICAgcHJvdmlkZXJzOiBbRmlsZVNlcnZpY2VdLFxyXG4gICAgaG9zdDoge1xyXG4gICAgICAgICdbYXR0ci5pZF0nOiAnaWQnLFxyXG4gICAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWmVrRmlsZUlucHV0IGV4dGVuZHMgQ29yZVVpQ29tcG9uZW50IHtcclxuICAgIC8vIEBJbnB1dCgpIG1vZGVsITogc3RyaW5nW10gfCBudWxsO1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IG9uVXBsb2FkID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxhbnk+PigpO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsZVNlcnZpY2UgPSBpbmplY3QoRmlsZVNlcnZpY2UpO1xyXG5cclxuICAgIHByaXZhdGUgX3VuaXF1ZUlkOiBzdHJpbmcgPSBgemVrLWZpbGUtaW5wdXQtJHsrK3VuaXF1ZUlkfWA7XHJcbiAgICAvKiogVGhlIHVuaXF1ZSBJRCBmb3IgdGhlIHRhZy4gKi9cclxuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSB0aGlzLl91bmlxdWVJZDtcclxuXHJcbiAgICBnZXQgaW5wdXRJZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGlzLmlkIHx8IHRoaXMuX3VuaXF1ZUlkfS1pbnB1dGA7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfYWNjZXB0ID0gJyonO1xyXG4gICAgcHVibGljIGdldCBhY2NlcHQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYWNjZXB0O1xyXG4gICAgfVxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBhY2NlcHQodjogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGlmICghdilcclxuICAgICAgICAgICAgdGhpcy5fYWNjZXB0ID0gJyonO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhpcy5fYWNjZXB0ID0gdjtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfbXVsdGlwbGUgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgbXVsdGlwbGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX211bHRpcGxlO1xyXG4gICAgfVxyXG4gICAgc2V0IG11bHRpcGxlKHY6IEJvb2xlYW5JbnB1dCkge1xyXG4gICAgICAgIHRoaXMuX211bHRpcGxlID0gQ29udmVydC50b0Jvb2xlYW5Qcm9wZXJ0eSh2KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBmaWxlczogRmlsZVtdIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgY2xpY2tJbnB1dCgpIHtcclxuICAgICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW5wdXRJZCk7XHJcbiAgICAgICAgaWYgKGVsKSB7XHJcbiAgICAgICAgICAgIGVsLmNsaWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG9uRmlsZUlucHV0Q2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgICAgICBjb25zdCBmaWxlcyA9IGV2ZW50Py50YXJnZXQ/LmZpbGVzO1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KCFmaWxlcykpIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbGUgPSBmaWxlc1tpXTtcclxuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlcycsIGZpbGUsIGZpbGUubmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZmlsZVNlcnZpY2Uuc2F2ZShmb3JtRGF0YSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZGF0YT8uc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vblVwbG9hZC5lbWl0KGRhdGEudmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxufSIsIjxpbnB1dCB0eXBlPVwiZmlsZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgIG5hbWU9XCJ7e2lucHV0SWR9fVwiXHJcbiAgICBpZD1cInt7aW5wdXRJZH19XCJcclxuICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiIFthY2NlcHRdPVwiYWNjZXB0XCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCJcclxuICAgICNmaWxlSW5wdXRcclxuICAgIChjaGFuZ2UpPVwib25GaWxlSW5wdXRDaGFuZ2UoJGV2ZW50KVwiIC8+Il19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './file-input';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL2ZpbGUtaW5wdXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZpbGUtaW5wdXQnOyJdfQ==
|
|
@@ -2,13 +2,14 @@ export * from './age';
|
|
|
2
2
|
export * from './alert';
|
|
3
3
|
export * from './autocomplete';
|
|
4
4
|
export * from './bb';
|
|
5
|
+
export * from './callback';
|
|
5
6
|
export * from './card';
|
|
6
7
|
export * from './countdown';
|
|
7
|
-
export * from './callback';
|
|
8
8
|
export * from './date-ago';
|
|
9
9
|
export * from './datepicker';
|
|
10
10
|
export * from './edit-toolbar';
|
|
11
11
|
export * from './file';
|
|
12
|
+
export * from './file-input';
|
|
12
13
|
export * from './file-viewer';
|
|
13
14
|
export * from './google-login-button';
|
|
14
15
|
export * from './grid-toolbar';
|
|
@@ -35,5 +36,4 @@ export * from './utc-to-local';
|
|
|
35
36
|
export * from './validator';
|
|
36
37
|
export * from './validators';
|
|
37
38
|
export * from './wizard';
|
|
38
|
-
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsT0FBTyxDQUFDO0FBQ3RCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxNQUFNLENBQUM7QUFDckIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFVBQVUsQ0FBQztBQUV6QixxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FnZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYWxlcnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2F1dG9jb21wbGV0ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYmInO1xyXG5leHBvcnQgKiBmcm9tICcuL2NhcmQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvdW50ZG93bic7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2FsbGJhY2snO1xyXG5leHBvcnQgKiBmcm9tICcuL2RhdGUtYWdvJztcclxuZXhwb3J0ICogZnJvbSAnLi9kYXRlcGlja2VyJztcclxuZXhwb3J0ICogZnJvbSAnLi9lZGl0LXRvb2xiYXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpbGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtdmlld2VyJztcclxuZXhwb3J0ICogZnJvbSAnLi9nb29nbGUtbG9naW4tYnV0dG9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9ncmlkLXRvb2xiYXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpc3QtdG9vbGJhcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9hZGluZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kYWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL251bWVyaWMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BhZ2UtdGl0bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BhZ2VyJztcclxuZXhwb3J0ICogZnJvbSAnLi9wYXNzd29yZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcHJvZ3Jlc3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JhZGlvJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZWFkb25seSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVjYXB0Y2hhL2luZGV4JztcclxuZXhwb3J0ICogZnJvbSAnLi9zYWZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdDInO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdDItbXVsdGlwbGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NvcnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RhZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdGltZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdG9vbHRpcCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdXRjLXRvLWxvY2FsJztcclxuZXhwb3J0ICogZnJvbSAnLi92YWxpZGF0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRvcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3dpemFyZCc7XHJcblxyXG4vLyBleHBvcnQgKiBmcm9tICcuLyciXX0=
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsT0FBTyxDQUFDO0FBQ3RCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxNQUFNLENBQUM7QUFDckIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWdlJztcclxuZXhwb3J0ICogZnJvbSAnLi9hbGVydCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXV0b2NvbXBsZXRlJztcclxuZXhwb3J0ICogZnJvbSAnLi9iYic7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2FsbGJhY2snO1xyXG5leHBvcnQgKiBmcm9tICcuL2NhcmQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvdW50ZG93bic7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZS1hZ28nO1xyXG5leHBvcnQgKiBmcm9tICcuL2RhdGVwaWNrZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2VkaXQtdG9vbGJhcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmlsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS1pbnB1dCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS12aWV3ZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2dvb2dsZS1sb2dpbi1idXR0b24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2dyaWQtdG9vbGJhcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGlzdC10b29sYmFyJztcclxuZXhwb3J0ICogZnJvbSAnLi9sb2FkaW5nJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RhbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbnVtZXJpYyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGFnZS10aXRsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGFnZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL3Bhc3N3b3JkJztcclxuZXhwb3J0ICogZnJvbSAnLi9wcm9ncmVzcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmFkaW8nO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlYWRvbmx5JztcclxuZXhwb3J0ICogZnJvbSAnLi9yZWNhcHRjaGEvaW5kZXgnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NhZmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0Mic7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0Mi1tdWx0aXBsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc29ydCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdGFnJztcclxuZXhwb3J0ICogZnJvbSAnLi90aW1lJztcclxuZXhwb3J0ICogZnJvbSAnLi90b29sdGlwJztcclxuZXhwb3J0ICogZnJvbSAnLi91dGMtdG8tbG9jYWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdG9ycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vd2l6YXJkJzsiXX0=
|
|
@@ -6,7 +6,7 @@ export class ZekNumericDirective {
|
|
|
6
6
|
return this._digits;
|
|
7
7
|
}
|
|
8
8
|
set digits(v) {
|
|
9
|
-
const tmp = MathHelper.clamp(Convert.toNumber(v)
|
|
9
|
+
const tmp = MathHelper.clamp(Convert.toNumber(v) ?? 0, 0, 29);
|
|
10
10
|
this._digits = tmp;
|
|
11
11
|
}
|
|
12
12
|
get negative() {
|
|
@@ -89,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
89
89
|
type: HostListener,
|
|
90
90
|
args: ["paste", ["$event"]]
|
|
91
91
|
}] } });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL251bWVyaWMvbnVtZXJpYy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQVMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxGLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQU1sRCxNQUFNLE9BQU8sbUJBQW1CO0lBRTVCLElBQ0ksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsQ0FBYztRQUNyQixNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUN2QixDQUFDO0lBR0QsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxDQUFlO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxLQUFhO1FBQ3BDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwQixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN0RCxDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sWUFBWSxHQUNkLHlCQUF5QjtnQkFDekIsSUFBSSxDQUFDLE9BQU87Z0JBQ1osdUJBQXVCO2dCQUN2QixJQUFJLENBQUMsT0FBTztnQkFDWixZQUFZLENBQUM7WUFDakIsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDekQsQ0FBQztJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMsS0FBYTtRQUN2QixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEIsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDcEQsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLFlBQVksR0FDZCx1QkFBdUI7Z0JBQ3ZCLElBQUksQ0FBQyxPQUFPO2dCQUNaLHVCQUF1QjtnQkFDdkIsSUFBSSxDQUFDLE9BQU87Z0JBQ1osWUFBWSxDQUFDO1lBQ2pCLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ3pELENBQUM7SUFDTCxDQUFDO0lBRU8sR0FBRyxDQUFDLFFBQWE7UUFDckIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLE1BQU0sWUFBWSxHQUFXLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUN6RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBRXJDLElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2hCLElBQ0ksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO29CQUNqQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsRUFDeEMsQ0FBQztvQkFDQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO2dCQUMzQyxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksWUFBWSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztvQkFDbkQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztnQkFDM0MsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFHRCxZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQXBFMUIsWUFBTyxHQUFHLENBQUMsQ0FBQztRQVVaLGNBQVMsR0FBRyxLQUFLLENBQUM7SUEwRFksQ0FBQztJQUd2QyxTQUFTLENBQUMsS0FBb0I7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBR0QsT0FBTyxDQUFDLEtBQXFCO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs4R0EvRVEsbUJBQW1CO2tHQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxXQUFXO2lCQUN4QjsrRUFJTyxNQUFNO3NCQURULEtBQUs7Z0JBV0YsUUFBUTtzQkFEWCxLQUFLO2dCQTRETixTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU1uQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGlucHV0LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgTnVtYmVySW5wdXQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50c1wiO1xyXG5pbXBvcnQgeyBDb252ZXJ0LCBNYXRoSGVscGVyIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBzZWxlY3RvcjogXCJbbnVtZXJpY11cIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFpla051bWVyaWNEaXJlY3RpdmUge1xyXG4gICAgcHJpdmF0ZSBfZGlnaXRzID0gMDtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgZGlnaXRzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kaWdpdHM7XHJcbiAgICB9XHJcbiAgICBzZXQgZGlnaXRzKHY6IE51bWJlcklucHV0KSB7XHJcbiAgICAgICAgY29uc3QgdG1wID0gTWF0aEhlbHBlci5jbGFtcChDb252ZXJ0LnRvTnVtYmVyKHYpID8/IDAsIDAsIDI5KTtcclxuICAgICAgICB0aGlzLl9kaWdpdHMgPSB0bXA7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfbmVnYXRpdmUgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgbmVnYXRpdmUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX25lZ2F0aXZlO1xyXG4gICAgfVxyXG4gICAgc2V0IG5lZ2F0aXZlKHY6IEJvb2xlYW5JbnB1dCkge1xyXG4gICAgICAgIHRoaXMuX25lZ2F0aXZlID0gQ29udmVydC50b0Jvb2xlYW5Qcm9wZXJ0eSh2KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoZWNrQWxsb3dOZWdhdGl2ZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2RpZ2l0cyA8PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpLm1hdGNoKG5ldyBSZWdFeHAoL14tP1xcZCskLykpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlZ0V4cFN0cmluZyA9XHJcbiAgICAgICAgICAgICAgICBcIl4tP1xcXFxzKigoXFxcXGQrKFxcXFwuXFxcXGR7MCxcIiArXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kaWdpdHMgK1xyXG4gICAgICAgICAgICAgICAgXCJ9KT8pfCgoXFxcXGQqKFxcXFwuXFxcXGR7MSxcIiArXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kaWdpdHMgK1xyXG4gICAgICAgICAgICAgICAgXCJ9KSkpKVxcXFxzKiRcIjtcclxuICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSkubWF0Y2gobmV3IFJlZ0V4cChyZWdFeHBTdHJpbmcpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGVjayh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2RpZ2l0cyA8PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpLm1hdGNoKG5ldyBSZWdFeHAoL15cXGQrJC8pKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCByZWdFeHBTdHJpbmcgPVxyXG4gICAgICAgICAgICAgICAgXCJeXFxcXHMqKChcXFxcZCsoXFxcXC5cXFxcZHswLFwiICtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpZ2l0cyArXHJcbiAgICAgICAgICAgICAgICBcIn0pPyl8KChcXFxcZCooXFxcXC5cXFxcZHsxLFwiICtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpZ2l0cyArXHJcbiAgICAgICAgICAgICAgICBcIn0pKSkpXFxcXHMqJFwiO1xyXG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKS5tYXRjaChuZXcgUmVnRXhwKHJlZ0V4cFN0cmluZykpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJ1bihvbGRWYWx1ZTogYW55KSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZTogc3RyaW5nID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlO1xyXG4gICAgICAgICAgICBjb25zdCBhbGxvd05lZ2F0aXZlID0gdGhpcy5fbmVnYXRpdmU7XHJcblxyXG4gICAgICAgICAgICBpZiAoYWxsb3dOZWdhdGl2ZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICFbXCJcIiwgXCItXCJdLmluY2x1ZGVzKGN1cnJlbnRWYWx1ZSkgJiZcclxuICAgICAgICAgICAgICAgICAgICAhdGhpcy5jaGVja0FsbG93TmVnYXRpdmUoY3VycmVudFZhbHVlKVxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gb2xkVmFsdWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudFZhbHVlICE9PSAnJyAmJiAhdGhpcy5jaGVjayhjdXJyZW50VmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gb2xkVmFsdWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikgeyB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcihcImtleWRvd25cIiwgW1wiJGV2ZW50XCJdKVxyXG4gICAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5ydW4odGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKFwicGFzdGVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gICAgb25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpIHtcclxuICAgICAgICB0aGlzLnJ1bih0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -19,8 +19,7 @@ export class ZekUtcToLocalPipe {
|
|
|
19
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekUtcToLocalPipe, decorators: [{
|
|
20
20
|
type: Pipe,
|
|
21
21
|
args: [{
|
|
22
|
-
name: 'utcToLocal'
|
|
23
|
-
pure: true
|
|
22
|
+
name: 'utcToLocal'
|
|
24
23
|
}]
|
|
25
24
|
}], ctorParameters: () => [{ type: i1.DatePipe }] });
|
|
26
25
|
export class ZekUtcToLocalModule {
|
|
@@ -36,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
36
35
|
providers: [DatePipe]
|
|
37
36
|
}]
|
|
38
37
|
}] });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRjLXRvLWxvY2FsLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL3V0Yy10by1sb2NhbC91dGMtdG8tbG9jYWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUszQyxNQUFNLE9BQU8saUJBQWlCO0lBQzFCLFlBQTZCLFNBQW1CO1FBQW5CLGNBQVMsR0FBVCxTQUFTLENBQVU7SUFDaEQsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFnRCxFQUFFLE1BQWU7UUFDdkUsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssS0FBSyxLQUFLO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFbkcsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDNUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs4R0FUUSxpQkFBaUI7NEdBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFIN0IsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsWUFBWTtpQkFDckI7O0FBa0JELE1BQU0sT0FBTyxtQkFBbUI7OEdBQW5CLG1CQUFtQjsrR0FBbkIsbUJBQW1CLGlCQWpCbkIsaUJBQWlCLGFBQWpCLGlCQUFpQjsrR0FpQmpCLG1CQUFtQixhQUZqQixDQUFDLFFBQVEsQ0FBQzs7MkZBRVosbUJBQW1CO2tCQUwvQixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUNqQyxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDNUIsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVIZWxwZXIgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICd1dGNUb0xvY2FsJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgWmVrVXRjVG9Mb2NhbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2RhdGVQaXBlOiBEYXRlUGlwZSkge1xyXG4gICAgfVxyXG5cclxuICAgIHRyYW5zZm9ybSh2YWx1ZTogRGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIGZvcm1hdD86IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSAnJyB8fCB2YWx1ZSAhPT0gdmFsdWUpIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICBjb25zdCBkYXRlID0gRGF0ZUhlbHBlci51dGNUb0xvY2FsKERhdGVIZWxwZXIudG9EYXRlKHZhbHVlKSlcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGUsIGZvcm1hdCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtaZWtVdGNUb0xvY2FsUGlwZV0sXHJcbiAgICBleHBvcnRzOiBbWmVrVXRjVG9Mb2NhbFBpcGVdLFxyXG4gICAgcHJvdmlkZXJzOiBbRGF0ZVBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBaZWtVdGNUb0xvY2FsTW9kdWxlIHsgfSJdfQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { catchError } from 'rxjs';
|
|
3
|
+
import { CrudService } from './crud.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./web.api";
|
|
6
|
+
import * as i2 from "./http-error-handler.service";
|
|
7
|
+
export class FileService extends CrudService {
|
|
8
|
+
constructor(api, httpErrorHandler) {
|
|
9
|
+
super('files', api, httpErrorHandler);
|
|
10
|
+
}
|
|
11
|
+
download(id, hash) {
|
|
12
|
+
return this.api.getBlob(`api/${this.controller}`, { id, hash }).pipe(catchError(this.handleError(this.download.name, null)));
|
|
13
|
+
}
|
|
14
|
+
presignedUrl(id, hash) {
|
|
15
|
+
return this.api.get(`api/${this.controller}/${id}/${hash}/presigned-url`).pipe(catchError(this.handleError(this.presignedUrl.name, null)));
|
|
16
|
+
}
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FileService, deps: [{ token: i1.WebApiClient }, { token: i2.HttpErrorHandler }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
18
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FileService }); }
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FileService, decorators: [{
|
|
21
|
+
type: Injectable
|
|
22
|
+
}], ctorParameters: () => [{ type: i1.WebApiClient }, { type: i2.HttpErrorHandler }] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvc2VydmljZXMvZmlsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFLN0MsTUFBTSxPQUFPLFdBQVksU0FBUSxXQUFXO0lBQ3hDLFlBQVksR0FBaUIsRUFBRSxnQkFBa0M7UUFDN0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEVBQU8sRUFBRSxJQUFTO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pJLENBQUM7SUFFRCxZQUFZLENBQUMsRUFBTyxFQUFFLElBQVM7UUFDM0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxJQUFJLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9JLENBQUM7OEdBWFEsV0FBVztrSEFBWCxXQUFXOzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENydWRTZXJ2aWNlIH0gZnJvbSAnLi9jcnVkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXZWJBcGlDbGllbnQgfSBmcm9tICcuL3dlYi5hcGknO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JIYW5kbGVyIH0gZnJvbSAnLi9odHRwLWVycm9yLWhhbmRsZXIuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBGaWxlU2VydmljZSBleHRlbmRzIENydWRTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKGFwaTogV2ViQXBpQ2xpZW50LCBodHRwRXJyb3JIYW5kbGVyOiBIdHRwRXJyb3JIYW5kbGVyKSB7XHJcbiAgICAgICAgc3VwZXIoJ2ZpbGVzJywgYXBpLCBodHRwRXJyb3JIYW5kbGVyKTtcclxuICAgIH1cclxuXHJcbiAgICBkb3dubG9hZChpZDogYW55LCBoYXNoOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZ2V0QmxvYihgYXBpLyR7dGhpcy5jb250cm9sbGVyfWAsIHsgaWQsIGhhc2ggfSkucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IodGhpcy5kb3dubG9hZC5uYW1lLCBudWxsKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByZXNpZ25lZFVybChpZDogYW55LCBoYXNoOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZ2V0KGBhcGkvJHt0aGlzLmNvbnRyb2xsZXJ9LyR7aWR9LyR7aGFzaH0vcHJlc2lnbmVkLXVybGApLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKHRoaXMucHJlc2lnbmVkVXJsLm5hbWUsIG51bGwpKSk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -4,5 +4,6 @@ export * from './base.service';
|
|
|
4
4
|
export * from './cache-helper';
|
|
5
5
|
export * from './crud.service';
|
|
6
6
|
export * from './http-error-handler.service';
|
|
7
|
+
export * from './file.service';
|
|
7
8
|
export * from './web.api';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2F1dGgtZ3VhcmQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jYWNoZS1oZWxwZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2NydWQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaHR0cC1lcnJvci1oYW5kbGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpbGUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vd2ViLmFwaSc7Il19
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { TimeHelper } from "./time-helper";
|
|
2
2
|
export class DateHelper {
|
|
3
|
-
static minDate() {
|
|
4
|
-
return new Date(0);
|
|
5
|
-
}
|
|
6
3
|
static equals(value1, value2) {
|
|
7
4
|
const val1 = (value1 === undefined || value1 === null) ? null : value1;
|
|
8
5
|
const val2 = (value2 === undefined || value2 === null) ? null : value2;
|
|
@@ -245,4 +242,4 @@ export class DateHelper {
|
|
|
245
242
|
return value instanceof Date && !isNaN(value.valueOf());
|
|
246
243
|
}
|
|
247
244
|
}
|
|
248
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi91dGlscy9kYXRlLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE1BQU0sT0FBTyxVQUFVO0lBRW5CLE1BQU0sQ0FBQyxPQUFPO1FBQ1YsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFvQixFQUFFLE1BQW9CO1FBQ3BELE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3ZFLE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBR3ZFLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2hCLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakIsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFXLEVBQUUsR0FBUztRQUNsQyxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBUSxDQUFDO1FBQ2hDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FB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MkZBQTJGO1FBQzNGLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyRSxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFL0QsMERBQTBEO1FBQzFELElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN0QyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEYsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDekMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDeEMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNqRSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFVO1FBQ3BCLE9BQU8sS0FBSyxZQUFZLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGltZUhlbHBlciB9IGZyb20gXCIuL3RpbWUtaGVscGVyXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0ZUhlbHBlciB7XHJcblxyXG4gICAgc3RhdGljIG1pbkRhdGUoKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKDApO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBlcXVhbHModmFsdWUxPzogRGF0ZSB8IG51bGwsIHZhbHVlMj86IERhdGUgfCBudWxsKSB7XHJcbiAgICAgICAgY29uc3QgdmFsMSA9ICh2YWx1ZTEgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZTEgPT09IG51bGwpID8gbnVsbCA6IHZhbHVlMTtcclxuICAgICAgICBjb25zdCB2YWwyID0gKHZhbHVlMiA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlMiA9PT0gbnVsbCkgPyBudWxsIDogdmFsdWUyO1xyXG5cclxuXHJcbiAgICAgICAgaWYgKHZhbDEgPT09IHZhbDIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXZhbDEgfHwgIXZhbDIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbDEuZ2V0VGltZSgpID09PSB2YWwyLmdldFRpbWUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0RGF0ZXMoc3RhcnQ6IERhdGUsIGVuZDogRGF0ZSkge1xyXG4gICAgICAgIGNvbnN0IGRhdGVzID0gbmV3IEFycmF5PERhdGU+KCk7XHJcbiAgICAgICAgbGV0IGRhdGUgPSBuZXcgRGF0ZShzdGFydC52YWx1ZU9mKCkpO1xyXG4gICAgICAgIHdoaWxlIChkYXRlIDw9IGVuZCkge1xyXG4gICAgICAgICAgICBkYXRlcy5wdXNoKG5ldyBEYXRlKGRhdGUpKTtcclxuICAgICAgICAgICAgZGF0ZSA9IHRoaXMuYWRkRGF5cyhkYXRlLCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGRhdGVzO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBkYXRlT25seSh2YWx1ZTogRGF0ZSkge1xyXG4gICAgICAgIGNvbnN0IHllYXIgPSB2YWx1ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICAgIGNvbnN0IG1vbnRoID0gdmFsdWUuZ2V0TW9udGgoKTtcclxuICAgICAgICBjb25zdCBkYXkgPSB2YWx1ZS5nZXREYXRlKCk7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXkpKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgdG9kYXkoKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5kYXRlT25seShuZXcgRGF0ZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgdG9JU09EYXRlU3RyaW5nKHZhbHVlOiBEYXRlIHwgc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMucGFyc2VEYXRlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKCFkYXRlKVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgICAgICAvLyBBZGQgKzEgdG8gbW9udGggc2luY2UgMCBpcyBKYW51YXJ5XHJcbiAgICAgICAgY29uc3QgbW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG4gICAgICAgIGNvbnN0IGRheSA9IGRhdGUuZ2V0RGF0ZSgpO1xyXG5cclxuICAgICAgICBjb25zdCBzdHIgPSBgJHt5ZWFyfS0ke21vbnRoIDwgMTAgPyAnMCcgOiAnJ30ke21vbnRofS0ke2RheSA8IDEwID8gJzAnIDogJyd9JHtkYXl9YDtcclxuICAgICAgICByZXR1cm4gc3RyO1xyXG4gICAgfVxyXG5cclxuICAgIC8vKiogT2ZmZXMgc2Vjb25kcyAoIG9mZnNldG1pbiAqIDYwc2VjICogMTAwMG1zKSAqL1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX3V0Y0RpZmYgPSAtbmV3IERhdGUoKS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDA7XHJcbiAgICBzdGF0aWMgdXRjVG9Mb2NhbCh1dGM6IERhdGUpIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUodXRjLmdldFRpbWUoKSArIHRoaXMuX3V0Y0RpZmYpO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGxvY2FsVG9VdGModXRjOiBEYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHV0Yy5nZXRUaW1lKCkgLSB0aGlzLl91dGNEaWZmKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgYWRkVGltZSh2YWx1ZTogRGF0ZSwgdGltZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xyXG4gICAgICAgIGNvbnN0IHRtcCA9IFRpbWVIZWxwZXIucGFyc2VUaW1lKHRpbWUpO1xyXG4gICAgICAgIGlmICghdG1wKSByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgICAgIGNvbnN0IHRpbWVEYXRlID0gbmV3IERhdGUoJzE5NzAtMDEtMDFUJyArIHRpbWUgKyAnWicpO1xyXG4gICAgICAgIGNvbnN0IGRhdGUgPSB2YWx1ZTtcclxuICAgICAgICBkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkgKyB0aW1lRGF0ZS5nZXRUaW1lKCkpO1xyXG4gICAgICAgIHJldHVybiBkYXRlO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGFkZFllYXJzKHY6IERhdGUsIHllYXJzOiBudW1iZXIpOiBEYXRlIHtcclxuICAgICAgICBpZiAoIXllYXJzKSByZXR1cm4gdjtcclxuXHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IHY7XHJcbiAgICAgICAgZGF0ZS5zZXRGdWxsWWVhcih2LmdldEZ1bGxZZWFyKCkgKyB5ZWFycyk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgYWRkTW9udGhzKHY6IERhdGUsIG1vbnRoczogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKCFtb250aHMpIHJldHVybiB2O1xyXG5cclxuICAgICAgICBjb25zdCBkYXRlID0gdjtcclxuICAgICAgICBkYXRlLnNldE1vbnRoKGRhdGUuZ2V0TW9udGgoKSArIG1vbnRocyk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgYWRkRGF5cyh2OiBEYXRlLCBkYXlzOiBudW1iZXIpIHtcclxuICAgICAgICBpZiAoIWRheXMpIHJldHVybiB2O1xyXG5cclxuICAgICAgICBjb25zdCBkYXRlID0gdjtcclxuICAgICAgICBkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyBkYXlzKTtcclxuICAgICAgICByZXR1cm4gZGF0ZTtcclxuICAgIH1cclxuICAgIHN0YXRpYyBhZGRIb3Vycyh2OiBEYXRlLCBob3VyczogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKCFob3VycykgcmV0dXJuIHY7XHJcblxyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2KTtcclxuICAgICAgICAvL3RvZG8gbmVlZCB0byBjaGVjayBpZiB0aGlzIGxpbmUgbmVlZHMgLS0+IGRhdGUgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7XHJcbiAgICAgICAgZGF0ZS5zZXRIb3VycyhkYXRlLmdldEhvdXJzKCkgKyBob3Vycyk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgYWRkTWludXRlcyh2OiBEYXRlLCBtaW51dGVzOiBudW1iZXIpIHtcclxuICAgICAgICBpZiAoIW1pbnV0ZXMpIHJldHVybiB2O1xyXG5cclxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodik7XHJcbiAgICAgICAgLy90b2RvIG5lZWQgdG8gY2hlY2sgaWYgdGhpcyBsaW5lIG5lZWRzIC0tPiBkYXRlID0gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkpO1xyXG4gICAgICAgIGRhdGUuc2V0TWludXRlcyhkYXRlLmdldE1pbnV0ZXMoKSArIG1pbnV0ZXMpO1xyXG4gICAgICAgIHJldHVybiBkYXRlO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGFkZFNlY29uZHModjogRGF0ZSwgc2Vjb25kczogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKCFzZWNvbmRzKSByZXR1cm4gdjtcclxuXHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IHY7XHJcbiAgICAgICAgZGF0ZS5zZXRTZWNvbmRzKGRhdGUuZ2V0U2Vjb25kcygpICsgc2Vjb25kcyk7XHJcblxyXG4gICAgICAgIHJldHVybiBkYXRlO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGlzVG9kYXkoZGF0ZTogRGF0ZSkge1xyXG4gICAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1NhbWVEYXRlKGRhdGUsIHRvZGF5KTtcclxuICAgIH1cclxuICAgIHN0YXRpYyBjbG9uZShkYXRlOiBEYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKCtkYXRlKTtcclxuICAgIH1cclxuICAgIHN0YXRpYyBpc0Fub3RoZXJNb250aChhOiBEYXRlLCBiOiBEYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIGIgJiYgYS5nZXRNb250aCgpICE9PSBiLmdldE1vbnRoKCk7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgaXNXZWVrZW5kKHY6IERhdGUsKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHYuZ2V0RGF5KCkgPT09IDAgfHwgdi5nZXREYXkoKSA9PT0gNjtcclxuICAgIH1cclxuICAgIHN0YXRpYyBpc1NhbWVEYXRlKGE6IERhdGUsIGI6IERhdGUpIHtcclxuICAgICAgICByZXR1cm4gYiAmJiBhLmdldEZ1bGxZZWFyKCkgPT09IGIuZ2V0RnVsbFllYXIoKSAmJiBhLmdldE1vbnRoKCkgPT09IGIuZ2V0TW9udGgoKSAmJiBhLmdldERhdGUoKSA9PT0gYi5nZXREYXRlKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHN0YXRpYyBnZXRBZ2UodmFsdWU/OiBEYXRlIHwgc3RyaW5nIHwgbnVsbCwgbm93PzogRGF0ZSB8IG51bGwpIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycgfHwgdmFsdWUgIT09IHZhbHVlKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMudG9EYXRlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgY29uc3Qgbm93VGltZSA9IG5vdyA/IG5vdy5nZXRUaW1lKCkgOiBEYXRlLm5vdygpO1xyXG4gICAgICAgIGNvbnN0IHRpbWVEaWZmID0gbm93VGltZSAtIGRhdGUuZ2V0VGltZSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcigodGltZURpZmYgLyA4NjQwMDAwMCkgLyAzNjUuMjUpOy8vODY0MDAwMDAgPSAoMTAwMCAqIDYwICogNjAgKiAyNCkgPSAxMDAwIG1pbGxpc2Vjb25kICogNjBzZWNvbmQgICogNjBtaW51dGUgKiAyNGhvdXJcclxuICAgIH1cclxuICAgIHN0YXRpYyBzdWJ0cmFjdE1vbnRocyhlbmREYXRlOiBEYXRlLCBzdGFyRGF0ZTogRGF0ZSkge1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gc3RhckRhdGUgPD0gZW5kRGF0ZSA/IHN0YXJEYXRlIDogZW5kRGF0ZTtcclxuICAgICAgICBjb25zdCBlbmQgPSBzdGFyRGF0ZSA8PSBlbmREYXRlID8gZW5kRGF0ZSA6IHN0YXJEYXRlO1xyXG4gICAgICAgIGNvbnN0IHBsdXMgPSBzdGFyRGF0ZSA8PSBlbmREYXRlID8gMSA6IC0xO1xyXG5cclxuICAgICAgICBsZXQgbW9udGhzID0gKGVuZC5nZXRGdWxsWWVhcigpIC0gc3RhcnQuZ2V0RnVsbFllYXIoKSkgKiAxMjtcclxuICAgICAgICBtb250aHMgLT0gc3RhcnQuZ2V0TW9udGgoKTtcclxuICAgICAgICBtb250aHMgKz0gZW5kLmdldE1vbnRoKCk7XHJcbiAgICAgICAgcmV0dXJuIG1vbnRocyAqIHBsdXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHN1YnRyYWN0RGF5cyh2YWx1ZTogRGF0ZSwgZGF0ZTogRGF0ZSkge1xyXG4gICAgICAgIGlmICghZGF0ZSlcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIGRhdGUgPSB0aGlzLnRvRGF0ZShkYXRlKTtcclxuICAgICAgICBjb25zdCB0aW1lRGlmZiA9IGRhdGUuZ2V0VGltZSgpIC0gdmFsdWUuZ2V0VGltZSgpO1xyXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKHRpbWVEaWZmIC8gODY0MDAwMDApOy8vODY0MDAwMDAgPSAoMTAwMCAqIDYwICogNjAgKiAyNCkgPSAxMDAwIG1pbGxpc2Vjb25kICogNjBzZWNvbmQgICogNjBtaW51dGUgKiAyNGhvdXJcclxuICAgIH1cclxuICAgIHN0YXRpYyBzdWJ0cmFjdEhvdXJzKHZhbHVlOiBEYXRlLCBkYXRlPzogRGF0ZSB8IG51bGwpIHtcclxuICAgICAgICBpZiAoIWRhdGUpXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICBkYXRlID0gdGhpcy50b0RhdGUoZGF0ZSk7XHJcbiAgICAgICAgY29uc3QgdGltZURpZmYgPSBkYXRlLmdldFRpbWUoKSAtIHZhbHVlLmdldFRpbWUoKTtcclxuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcigodGltZURpZmYgJSA4NjQwMDAwMCkgLyAzNjAwMDAwKTtcclxuICAgIH1cclxuICAgIHN0YXRpYyBzdWJ0cmFjdE1pbnV0ZXModmFsdWU6IERhdGUsIGRhdGU/OiBEYXRlIHwgbnVsbCkge1xyXG4gICAgICAgIGlmICghZGF0ZSlcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIGRhdGUgPSB0aGlzLnRvRGF0ZShkYXRlKTtcclxuICAgICAgICBjb25zdCB0aW1lRGlmZiA9IGRhdGUuZ2V0VGltZSgpIC0gdmFsdWUuZ2V0VGltZSgpO1xyXG4gICAgICAgIC8vXHJcbiAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoKCh0aW1lRGlmZiAlIDg2NDAwMDAwKSAlIDM2MDAwMDApIC8gNjAwMDApO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG5cclxuICAgIHN0YXRpYyBJU084NjAxX0RBVEVfUkVHRVggPVxyXG4gICAgICAgIC9eKFxcZHs0fSktPyhcXGRcXGQpLT8oXFxkXFxkKSg/OlQoXFxkXFxkKSg/Ojo/KFxcZFxcZCkoPzo6PyhcXGRcXGQpKD86XFwuKFxcZCspKT8pPyk/KFp8KFsrLV0pKFxcZFxcZCk6PyhcXGRcXGQpKT8pPyQvO1xyXG4gICAgLy8gICAgICAgIDEgICAgICAgIDIgICAgICAgMyAgICAgICAgIDQgICAgICAgICAgNSAgICAgICAgICA2ICAgICAgICAgIDcgICAgICAgICAgOCAgOSAgICAgMTAgICAgICAxMVxyXG5cclxuXHJcbiAgICBzdGF0aWMgcGFyc2VEYXRlKHZhbHVlOiBhbnkpOiBEYXRlIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycpIHJldHVybiBudWxsO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRvRGF0ZSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGV4cG9ydCBmdW5jdGlvbiB0b0RhdGUodmFsdWU6IHN0cmluZ3xudW1iZXJ8RGF0ZSk6IERhdGUgdGhpcyBmdW5jdGlvbiBpcyBpbXBvcnRlZCBmcm9tIGRhdGUgcGlwZSBcclxuICAgIC8vIHBhY2thZ2VzL2NvbW1vbi9zcmMvaTE4bi9mb3JtYXRfZGF0ZS50c1xyXG5cclxuICAgIC8qKipcclxuICAgICAqIENvbnZlcnRzIGEgdmFsdWUgdG8gZGF0ZS5cclxuICAgICAqXHJcbiAgICAgKiBTdXBwb3J0ZWQgaW5wdXQgZm9ybWF0czpcclxuICAgICAqIC0gYERhdGVgXHJcbiAgICAgKiAtIG51bWJlcjogdGltZXN0YW1wXHJcbiAgICAgKiAtIHN0cmluZzogbnVtZXJpYyAoZS5nLiBcIjEyMzRcIiksIElTTyBhbmQgZGF0ZSBzdHJpbmdzIGluIGEgZm9ybWF0IHN1cHBvcnRlZCBieVxyXG4gICAgICogICBbRGF0ZS5wYXJzZSgpXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9EYXRlL3BhcnNlKS5cclxuICAgICAqICAgTm90ZTogSVNPIHN0cmluZ3Mgd2l0aG91dCB0aW1lIHJldHVybiBhIGRhdGUgd2l0aG91dCB0aW1lb2Zmc2V0LlxyXG4gICAgICpcclxuICAgICAqIFRocm93cyBpZiB1bmFibGUgdG8gY29udmVydCB0byBhIGRhdGUuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyB0b0RhdGUodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IERhdGUpOiBEYXRlIHtcclxuICAgICAgICBpZiAodGhpcy5pc0RhdGUodmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmICFpc05hTih2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudHJpbSgpO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgcGFyc2VkTmIgPSBwYXJzZUZsb2F0KHZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgIC8vIGFueSBzdHJpbmcgdGhhdCBvbmx5IGNvbnRhaW5zIG51bWJlcnMsIGxpa2UgXCIxMjM0XCIgYnV0IG5vdCBsaWtlIFwiMTIzNGhlbGxvXCJcclxuICAgICAgICAgICAgaWYgKCFpc05hTih2YWx1ZSBhcyBhbnkgLSBwYXJzZWROYikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShwYXJzZWROYik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICgvXihcXGR7NH0tXFxkezEsMn0tXFxkezEsMn0pJC8udGVzdCh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIC8qIEZvciBJU08gU3RyaW5ncyB3aXRob3V0IHRpbWUgdGhlIGRheSwgbW9udGggYW5kIHllYXIgbXVzdCBiZSBleHRyYWN0ZWQgZnJvbSB0aGUgSVNPIFN0cmluZ1xyXG4gICAgICAgICAgICAgICAgYmVmb3JlIERhdGUgY3JlYXRpb24gdG8gYXZvaWQgdGltZSBvZmZzZXQgYW5kIGVycm9ycyBpbiB0aGUgbmV3IERhdGUuXHJcbiAgICAgICAgICAgICAgICBJZiB3ZSBvbmx5IHJlcGxhY2UgJy0nIHdpdGggJywnIGluIHRoZSBJU08gU3RyaW5nIChcIjIwMTUsMDEsMDFcIiksIGFuZCB0cnkgdG8gY3JlYXRlIGEgbmV3XHJcbiAgICAgICAgICAgICAgICBkYXRlLCBzb21lIGJyb3dzZXJzIChlLmcuIElFIDkpIHdpbGwgdGhyb3cgYW4gaW52YWxpZCBEYXRlIGVycm9yLlxyXG4gICAgICAgICAgICAgICAgSWYgd2UgbGVhdmUgdGhlICctJyAoXCIyMDE1LTAxLTAxXCIpIGFuZCB0cnkgdG8gY3JlYXRlIGEgbmV3IERhdGUoXCIyMDE1LTAxLTAxXCIpIHRoZSB0aW1lb2Zmc2V0XHJcbiAgICAgICAgICAgICAgICBpcyBhcHBsaWVkLlxyXG4gICAgICAgICAgICAgICAgTm90ZTogSVNPIG1vbnRocyBhcmUgMCBmb3IgSmFudWFyeSwgMSBmb3IgRmVicnVhcnksIC4uLiAqL1xyXG4gICAgICAgICAgICAgICAgY29uc3QgW3ksIG0sIGRdID0gdmFsdWUuc3BsaXQoJy0nKS5tYXAoKHZhbDogc3RyaW5nKSA9PiArdmFsKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh5LCBtIC0gMSwgZCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxldCBtYXRjaDogUmVnRXhwTWF0Y2hBcnJheSB8IG51bGw7XHJcbiAgICAgICAgICAgIGlmIChtYXRjaCA9IHZhbHVlLm1hdGNoKHRoaXMuSVNPODYwMV9EQVRFX1JFR0VYKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNvU3RyaW5nVG9EYXRlKG1hdGNoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlIGFzIGFueSk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzRGF0ZShkYXRlKSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBjb252ZXJ0IFwiJHt2YWx1ZX1cIiBpbnRvIGEgZGF0ZWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnZlcnRzIGEgZGF0ZSBpbiBJU084NjAxIHRvIGEgRGF0ZS5cclxuICAgICAqIFVzZWQgaW5zdGVhZCBvZiBgRGF0ZS5wYXJzZWAgYmVjYXVzZSBvZiBicm93c2VyIGRpc2NyZXBhbmNpZXMuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc29TdHJpbmdUb0RhdGUobWF0Y2g6IFJlZ0V4cE1hdGNoQXJyYXkpOiBEYXRlIHtcclxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoMCk7XHJcbiAgICAgICAgbGV0IHR6SG91ciA9IDA7XHJcbiAgICAgICAgbGV0IHR6TWluID0gMDtcclxuXHJcbiAgICAgICAgLy8gbWF0Y2hbOF0gbWVhbnMgdGhhdCB0aGUgc3RyaW5nIGNvbnRhaW5zIFwiWlwiIChVVEMpIG9yIGEgdGltZXpvbmUgbGlrZSBcIiswMTowMFwiIG9yIFwiKzAxMDBcIlxyXG4gICAgICAgIGNvbnN0IGRhdGVTZXR0ZXIgPSBtYXRjaFs4XSA/IGRhdGUuc2V0VVRDRnVsbFllYXIgOiBkYXRlLnNldEZ1bGxZZWFyO1xyXG4gICAgICAgIGNvbnN0IHRpbWVTZXR0ZXIgPSBtYXRjaFs4XSA/IGRhdGUuc2V0VVRDSG91cnMgOiBkYXRlLnNldEhvdXJzO1xyXG5cclxuICAgICAgICAvLyBpZiB0aGVyZSBpcyBhIHRpbWV6b25lIGRlZmluZWQgbGlrZSBcIiswMTowMFwiIG9yIFwiKzAxMDBcIlxyXG4gICAgICAgIGlmIChtYXRjaFs5XSkge1xyXG4gICAgICAgICAgICB0ekhvdXIgPSBOdW1iZXIobWF0Y2hbOV0gKyBtYXRjaFsxMF0pO1xyXG4gICAgICAgICAgICB0ek1pbiA9IE51bWJlcihtYXRjaFs5XSArIG1hdGNoWzExXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRhdGVTZXR0ZXIuY2FsbChkYXRlLCBOdW1iZXIobWF0Y2hbMV0pLCBOdW1iZXIobWF0Y2hbMl0pIC0gMSwgTnVtYmVyKG1hdGNoWzNdKSk7XHJcbiAgICAgICAgY29uc3QgaCA9IE51bWJlcihtYXRjaFs0XSB8fCAwKSAtIHR6SG91cjtcclxuICAgICAgICBjb25zdCBtID0gTnVtYmVyKG1hdGNoWzVdIHx8IDApIC0gdHpNaW47XHJcbiAgICAgICAgY29uc3QgcyA9IE51bWJlcihtYXRjaFs2XSB8fCAwKTtcclxuICAgICAgICBjb25zdCBtcyA9IE1hdGgucm91bmQocGFyc2VGbG9hdCgnMC4nICsgKG1hdGNoWzddIHx8IDApKSAqIDEwMDApO1xyXG4gICAgICAgIHRpbWVTZXR0ZXIuY2FsbChkYXRlLCBoLCBtLCBzLCBtcyk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzRGF0ZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgRGF0ZSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4odmFsdWUudmFsdWVPZigpKTtcclxuICAgIH1cclxufSJdfQ==
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi91dGlscy9kYXRlLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE1BQU0sT0FBTyxVQUFVO0lBRW5CLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBb0IsRUFBRSxNQUFvQjtRQUNwRCxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN2RSxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUd2RSxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBVyxFQUFFLEdBQVM7UUFDbEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQVEsQ0FBQztRQUNoQyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNyQyxPQUFPLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNqQixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDM0IsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFXO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDL0IsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzVCLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRWxELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxNQUFNLENBQUMsS0FBSztRQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBb0I7UUFDdkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVuQyxJQUFJLENBQUMsSUFBSTtZQUNMLE9BQU8sSUFBSSxDQUFDO1FBRWhCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoQyxxQ0FBcUM7UUFDckMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNsQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFM0IsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ3BGLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVELG1EQUFtRDthQUMzQixhQUFRLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQzNFLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBUztRQUN2QixPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUNELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBUztRQUN2QixPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBVyxFQUFFLElBQStCO1FBQ3ZELE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUV2QixNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFPLEVBQUUsS0FBYTtRQUNsQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXJCLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxNQUFNLENBQUMsU0FBUyxDQUFDLENBQU8sRUFBRSxNQUFjO1FBQ3BDLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFFdEIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBTyxFQUFFLElBQVk7UUFDaEMsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUVwQixNQUFNLElBQUksR0FBRyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFPLEVBQUUsS0FBYTtRQUNsQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXJCLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLDRFQUE0RTtRQUM1RSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFPLEVBQUUsT0FBZTtRQUN0QyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXZCLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLDRFQUE0RTtRQUM1RSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFPLEVBQUUsT0FBZTtRQUN0QyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXZCLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBRTdDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQVU7UUFDckIsTUFBTSxLQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQVU7UUFDbkIsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDRCxNQUFNLENBQUMsY0FBYyxDQUFDLENBQU8sRUFBRSxDQUFPO1FBQ2xDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUNELE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBTztRQUNwQixPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFPLEVBQUUsQ0FBTztRQUM5QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNwSCxDQUFDO0lBR0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUE0QixFQUFFLEdBQWlCO1FBQ3pELElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLElBQUksS0FBSyxLQUFLLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQztRQUUxRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWhDLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDakQsTUFBTSxRQUFRLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUUxQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQSxxRkFBcUY7SUFDM0ksQ0FBQztJQUNELE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBYSxFQUFFLFFBQWM7UUFDL0MsTUFBTSxLQUFLLEdBQUcsUUFBUSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDdkQsTUFBTSxHQUFHLEdBQUcsUUFBUSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDckQsTUFBTSxJQUFJLEdBQUcsUUFBUSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUxQyxJQUFJLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDNUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQixNQUFNLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sTUFBTSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFXLEVBQUUsSUFBVTtRQUN2QyxJQUFJLENBQUMsSUFBSTtZQUNMLE9BQU8sSUFBSSxDQUFDO1FBRWhCLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFBLHFGQUFxRjtJQUNoSSxDQUFDO0lBQ0QsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFXLEVBQUUsSUFBa0I7UUFDaEQsSUFBSSxDQUFDLElBQUk7WUFDTCxPQUFPLElBQUksQ0FBQztRQUVoQixJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBQ0QsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFXLEVBQUUsSUFBa0I7UUFDbEQsSUFBSSxDQUFDLElBQUk7WUFDTCxPQUFPLElBQUksQ0FBQztRQUVoQixJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xELEVBQUU7UUFDRixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUNqRSxDQUFDO2FBS00sdUJBQWtCLEdBQ3JCLHNHQUFzRyxDQUFDO0lBQzNHLG9HQUFvRztJQUdwRyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQy9FLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQscUdBQXFHO0lBQ3JHLDBDQUEwQztJQUUxQzs7Ozs7Ozs7Ozs7T0FXRztJQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBNkI7UUFDdkMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckIsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0MsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1QixLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXJCLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVuQyw4RUFBOEU7WUFDOUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFZLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDbEMsT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QixDQUFDO1lBRUQsSUFBSSwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDMUM7Ozs7OzswRUFNMEQ7Z0JBQzFELE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM5RCxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLENBQUM7WUFFRCxJQUFJLEtBQThCLENBQUM7WUFDbkMsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO2dCQUMvQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkMsQ0FBQztRQUNMLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFZLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLEtBQUssZUFBZSxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQXVCO1FBQzFDLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVkLDJGQUEyRjtRQUMzRixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDckUsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBRS9ELDBEQUEwRDtRQUMxRCxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdEMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3pDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3hDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDakUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBVTtRQUNwQixPQUFPLEtBQUssWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRpbWVIZWxwZXIgfSBmcm9tIFwiLi90aW1lLWhlbHBlclwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIERhdGVIZWxwZXIge1xyXG5cclxuICAgIHN0YXRpYyBlcXVhbHModmFsdWUxPzogRGF0ZSB8IG51bGwsIHZhbHVlMj86IERhdGUgfCBudWxsKSB7XHJcbiAgICAgICAgY29uc3QgdmFsMSA9ICh2YWx1ZTEgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZTEgPT09IG51bGwpID8gbnVsbCA6IHZhbHVlMTtcclxuICAgICAgICBjb25zdCB2YWwyID0gKHZhbHVlMiA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlMiA9PT0gbnVsbCkgPyBudWxsIDogdmFsdWUyO1xyXG5cclxuXHJcbiAgICAgICAgaWYgKHZhbDEgPT09IHZhbDIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXZhbDEgfHwgIXZhbDIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbDEuZ2V0VGltZSgpID09PSB2YWwyLmdldFRpbWUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0RGF0ZXMoc3RhcnQ6IERhdGUsIGVuZDogRGF0ZSkge1xyXG4gICAgICAgIGNvbnN0IGRhdGVzID0gbmV3IEFycmF5PERhdGU+KCk7XHJcbiAgICAgICAgbGV0IGRhdGUgPSBuZXcgRGF0ZShzdGFydC52YWx1ZU9mKCkpO1xyXG4gICAgICAgIHdoaWxlIChkYXRlIDw9IGVuZCkge1xyXG4gICAgICAgICAgICBkYXRlcy5wdXNoKG5ldyBEYXRlKGRhdGUpKTtcclxuICAgICAgICAgICAgZGF0ZSA9IHRoaXMuYWRkRGF5cyhkYXRlLCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGRhdGVzO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBkYXRlT25seSh2YWx1ZTogRGF0ZSkge1xyXG4gICAgICAgIGNvbnN0IHllYXIgPSB2YWx1ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICAgIGNvbnN0IG1vbnRoID0gdmFsdWUuZ2V0TW9udGgoKTtcclxuICAgICAgICBjb25zdCBkYXkgPSB2YWx1ZS5nZXREYXRlKCk7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXkpKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgdG9kYXkoKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5kYXRlT25seShuZXcgRGF0ZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgdG9JU09EYXRlU3RyaW5nKHZhbHVlOiBEYXRlIHwgc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMucGFyc2VEYXRlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKCFkYXRlKVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgICAgICAvLyBBZGQgKzEgdG8gbW9udGggc2luY2UgMCBpcyBKYW51YXJ5XHJcbiAgICAgICAgY29uc3QgbW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG4gICAgICAgIGNvbnN0IGRheSA9IGRhdGUuZ2V0RGF0ZSgpO1xyXG5cclxuICAgICAgICBjb25zdCBzdHIgPSBgJHt5ZWFyfS0ke21vbnRoIDwgMTAgPyAnMCcgOiAnJ30ke21vbnRofS0ke2RheSA8IDEwID8gJzAnIDogJyd9JHtkYXl9YDtcclxuICAgICAgICByZXR1cm4gc3RyO1xyXG4gICAgfVxyXG5cclxuICAgIC8vKiogT2ZmZXMgc2Vjb25kcyAoIG9mZnNldG1pbiAqIDYwc2VjICogMTAwMG1zKSAqL1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX3V0Y0RpZmYgPSAtbmV3IERhdGUoKS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDA7XHJcbiAgICBzdGF0aWMgdXRjVG9Mb2NhbCh1dGM6IERhdGUpIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUodXRjLmdldFRpbWUoKSArIHRoaXMuX3V0Y0RpZmYpO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGxvY2FsVG9VdGModXRjOiBEYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHV0Yy5nZXRUaW1lKCkgLSB0aGlzLl91dGNEaWZmKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgYWRkVGltZSh2YWx1ZTogRGF0ZSwgdGltZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xyXG4gICAgICAgIGNvbnN0IHRtcCA9IFRpbWVIZWxwZXIucGFyc2VUaW1lKHRpbWUpO1xyXG4gICAgICAgIGlmICghdG1wKSByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgICAgIGNvbnN0IHRpbWVEYXRlID0gbmV3IERhdGUoJzE5NzAtMDEtMDFUJyArIHRpbWUgKyAnWicpO1xyXG4gICAgICAgIGNvbnN0IGRhdGUgPSB2YWx1ZTtcclxuICAgICAgICBkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkgKyB0aW1lRGF0ZS5nZXRUaW1lKCkpO1xyXG4gICAgICAgIHJldHVybiBkYXRlO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGFkZFllYXJzKHY6IERhdGUsIHllYXJzOiBudW1iZXIpOiBEYXRlIHtcclxuICAgICAgICBpZiAoIXllYXJzKSByZXR1cm4gdjtcclxuXHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IHY7XHJcbiAgICAgICAgZGF0ZS5zZXRGdWxsWWVhcih2LmdldEZ1bGxZZWFyKCkgKyB5ZWFycyk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgYWRkTW9udGhzKHY6IERhdGUsIG1vbnRoczogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKCFtb250aHMpIHJldHVybiB2O1xyXG5cclxuICAgICAgICBjb25zdCBkYXRlID0gdjtcclxuICAgICAgICBkYXRlLnNldE1vbnRoKGRhdGUuZ2V0TW9udGgoKSArIG1vbnRocyk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgYWRkRGF5cyh2OiBEYXRlLCBkYXlzOiBudW1iZXIpIHtcclxuICAgICAgICBpZiAoIWRheXMpIHJldHVybiB2O1xyXG5cclxuICAgICAgICBjb25zdCBkYXRlID0gdjtcclxuICAgICAgICBkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyBkYXlzKTtcclxuICAgICAgICByZXR1cm4gZGF0ZTtcclxuICAgIH1cclxuICAgIHN0YXRpYyBhZGRIb3Vycyh2OiBEYXRlLCBob3VyczogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKCFob3VycykgcmV0dXJuIHY7XHJcblxyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2KTtcclxuICAgICAgICAvL3RvZG8gbmVlZCB0byBjaGVjayBpZiB0aGlzIGxpbmUgbmVlZHMgLS0+IGRhdGUgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7XHJcbiAgICAgICAgZGF0ZS5zZXRIb3VycyhkYXRlLmdldEhvdXJzKCkgKyBob3Vycyk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgYWRkTWludXRlcyh2OiBEYXRlLCBtaW51dGVzOiBudW1iZXIpIHtcclxuICAgICAgICBpZiAoIW1pbnV0ZXMpIHJldHVybiB2O1xyXG5cclxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodik7XHJcbiAgICAgICAgLy90b2RvIG5lZWQgdG8gY2hlY2sgaWYgdGhpcyBsaW5lIG5lZWRzIC0tPiBkYXRlID0gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkpO1xyXG4gICAgICAgIGRhdGUuc2V0TWludXRlcyhkYXRlLmdldE1pbnV0ZXMoKSArIG1pbnV0ZXMpO1xyXG4gICAgICAgIHJldHVybiBkYXRlO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGFkZFNlY29uZHModjogRGF0ZSwgc2Vjb25kczogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKCFzZWNvbmRzKSByZXR1cm4gdjtcclxuXHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IHY7XHJcbiAgICAgICAgZGF0ZS5zZXRTZWNvbmRzKGRhdGUuZ2V0U2Vjb25kcygpICsgc2Vjb25kcyk7XHJcblxyXG4gICAgICAgIHJldHVybiBkYXRlO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGlzVG9kYXkoZGF0ZTogRGF0ZSkge1xyXG4gICAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1NhbWVEYXRlKGRhdGUsIHRvZGF5KTtcclxuICAgIH1cclxuICAgIHN0YXRpYyBjbG9uZShkYXRlOiBEYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKCtkYXRlKTtcclxuICAgIH1cclxuICAgIHN0YXRpYyBpc0Fub3RoZXJNb250aChhOiBEYXRlLCBiOiBEYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIGIgJiYgYS5nZXRNb250aCgpICE9PSBiLmdldE1vbnRoKCk7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgaXNXZWVrZW5kKHY6IERhdGUsKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHYuZ2V0RGF5KCkgPT09IDAgfHwgdi5nZXREYXkoKSA9PT0gNjtcclxuICAgIH1cclxuICAgIHN0YXRpYyBpc1NhbWVEYXRlKGE6IERhdGUsIGI6IERhdGUpIHtcclxuICAgICAgICByZXR1cm4gYiAmJiBhLmdldEZ1bGxZZWFyKCkgPT09IGIuZ2V0RnVsbFllYXIoKSAmJiBhLmdldE1vbnRoKCkgPT09IGIuZ2V0TW9udGgoKSAmJiBhLmdldERhdGUoKSA9PT0gYi5nZXREYXRlKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHN0YXRpYyBnZXRBZ2UodmFsdWU/OiBEYXRlIHwgc3RyaW5nIHwgbnVsbCwgbm93PzogRGF0ZSB8IG51bGwpIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycgfHwgdmFsdWUgIT09IHZhbHVlKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMudG9EYXRlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgY29uc3Qgbm93VGltZSA9IG5vdyA/IG5vdy5nZXRUaW1lKCkgOiBEYXRlLm5vdygpO1xyXG4gICAgICAgIGNvbnN0IHRpbWVEaWZmID0gbm93VGltZSAtIGRhdGUuZ2V0VGltZSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcigodGltZURpZmYgLyA4NjQwMDAwMCkgLyAzNjUuMjUpOy8vODY0MDAwMDAgPSAoMTAwMCAqIDYwICogNjAgKiAyNCkgPSAxMDAwIG1pbGxpc2Vjb25kICogNjBzZWNvbmQgICogNjBtaW51dGUgKiAyNGhvdXJcclxuICAgIH1cclxuICAgIHN0YXRpYyBzdWJ0cmFjdE1vbnRocyhlbmREYXRlOiBEYXRlLCBzdGFyRGF0ZTogRGF0ZSkge1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gc3RhckRhdGUgPD0gZW5kRGF0ZSA/IHN0YXJEYXRlIDogZW5kRGF0ZTtcclxuICAgICAgICBjb25zdCBlbmQgPSBzdGFyRGF0ZSA8PSBlbmREYXRlID8gZW5kRGF0ZSA6IHN0YXJEYXRlO1xyXG4gICAgICAgIGNvbnN0IHBsdXMgPSBzdGFyRGF0ZSA8PSBlbmREYXRlID8gMSA6IC0xO1xyXG5cclxuICAgICAgICBsZXQgbW9udGhzID0gKGVuZC5nZXRGdWxsWWVhcigpIC0gc3RhcnQuZ2V0RnVsbFllYXIoKSkgKiAxMjtcclxuICAgICAgICBtb250aHMgLT0gc3RhcnQuZ2V0TW9udGgoKTtcclxuICAgICAgICBtb250aHMgKz0gZW5kLmdldE1vbnRoKCk7XHJcbiAgICAgICAgcmV0dXJuIG1vbnRocyAqIHBsdXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHN1YnRyYWN0RGF5cyh2YWx1ZTogRGF0ZSwgZGF0ZTogRGF0ZSkge1xyXG4gICAgICAgIGlmICghZGF0ZSlcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIGRhdGUgPSB0aGlzLnRvRGF0ZShkYXRlKTtcclxuICAgICAgICBjb25zdCB0aW1lRGlmZiA9IGRhdGUuZ2V0VGltZSgpIC0gdmFsdWUuZ2V0VGltZSgpO1xyXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKHRpbWVEaWZmIC8gODY0MDAwMDApOy8vODY0MDAwMDAgPSAoMTAwMCAqIDYwICogNjAgKiAyNCkgPSAxMDAwIG1pbGxpc2Vjb25kICogNjBzZWNvbmQgICogNjBtaW51dGUgKiAyNGhvdXJcclxuICAgIH1cclxuICAgIHN0YXRpYyBzdWJ0cmFjdEhvdXJzKHZhbHVlOiBEYXRlLCBkYXRlPzogRGF0ZSB8IG51bGwpIHtcclxuICAgICAgICBpZiAoIWRhdGUpXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICBkYXRlID0gdGhpcy50b0RhdGUoZGF0ZSk7XHJcbiAgICAgICAgY29uc3QgdGltZURpZmYgPSBkYXRlLmdldFRpbWUoKSAtIHZhbHVlLmdldFRpbWUoKTtcclxuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcigodGltZURpZmYgJSA4NjQwMDAwMCkgLyAzNjAwMDAwKTtcclxuICAgIH1cclxuICAgIHN0YXRpYyBzdWJ0cmFjdE1pbnV0ZXModmFsdWU6IERhdGUsIGRhdGU/OiBEYXRlIHwgbnVsbCkge1xyXG4gICAgICAgIGlmICghZGF0ZSlcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIGRhdGUgPSB0aGlzLnRvRGF0ZShkYXRlKTtcclxuICAgICAgICBjb25zdCB0aW1lRGlmZiA9IGRhdGUuZ2V0VGltZSgpIC0gdmFsdWUuZ2V0VGltZSgpO1xyXG4gICAgICAgIC8vXHJcbiAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoKCh0aW1lRGlmZiAlIDg2NDAwMDAwKSAlIDM2MDAwMDApIC8gNjAwMDApO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG5cclxuICAgIHN0YXRpYyBJU084NjAxX0RBVEVfUkVHRVggPVxyXG4gICAgICAgIC9eKFxcZHs0fSktPyhcXGRcXGQpLT8oXFxkXFxkKSg/OlQoXFxkXFxkKSg/Ojo/KFxcZFxcZCkoPzo6PyhcXGRcXGQpKD86XFwuKFxcZCspKT8pPyk/KFp8KFsrLV0pKFxcZFxcZCk6PyhcXGRcXGQpKT8pPyQvO1xyXG4gICAgLy8gICAgICAgIDEgICAgICAgIDIgICAgICAgMyAgICAgICAgIDQgICAgICAgICAgNSAgICAgICAgICA2ICAgICAgICAgIDcgICAgICAgICAgOCAgOSAgICAgMTAgICAgICAxMVxyXG5cclxuXHJcbiAgICBzdGF0aWMgcGFyc2VEYXRlKHZhbHVlOiBhbnkpOiBEYXRlIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycpIHJldHVybiBudWxsO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRvRGF0ZSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGV4cG9ydCBmdW5jdGlvbiB0b0RhdGUodmFsdWU6IHN0cmluZ3xudW1iZXJ8RGF0ZSk6IERhdGUgdGhpcyBmdW5jdGlvbiBpcyBpbXBvcnRlZCBmcm9tIGRhdGUgcGlwZSBcclxuICAgIC8vIHBhY2thZ2VzL2NvbW1vbi9zcmMvaTE4bi9mb3JtYXRfZGF0ZS50c1xyXG5cclxuICAgIC8qKipcclxuICAgICAqIENvbnZlcnRzIGEgdmFsdWUgdG8gZGF0ZS5cclxuICAgICAqXHJcbiAgICAgKiBTdXBwb3J0ZWQgaW5wdXQgZm9ybWF0czpcclxuICAgICAqIC0gYERhdGVgXHJcbiAgICAgKiAtIG51bWJlcjogdGltZXN0YW1wXHJcbiAgICAgKiAtIHN0cmluZzogbnVtZXJpYyAoZS5nLiBcIjEyMzRcIiksIElTTyBhbmQgZGF0ZSBzdHJpbmdzIGluIGEgZm9ybWF0IHN1cHBvcnRlZCBieVxyXG4gICAgICogICBbRGF0ZS5wYXJzZSgpXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9EYXRlL3BhcnNlKS5cclxuICAgICAqICAgTm90ZTogSVNPIHN0cmluZ3Mgd2l0aG91dCB0aW1lIHJldHVybiBhIGRhdGUgd2l0aG91dCB0aW1lb2Zmc2V0LlxyXG4gICAgICpcclxuICAgICAqIFRocm93cyBpZiB1bmFibGUgdG8gY29udmVydCB0byBhIGRhdGUuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyB0b0RhdGUodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IERhdGUpOiBEYXRlIHtcclxuICAgICAgICBpZiAodGhpcy5pc0RhdGUodmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmICFpc05hTih2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudHJpbSgpO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgcGFyc2VkTmIgPSBwYXJzZUZsb2F0KHZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgIC8vIGFueSBzdHJpbmcgdGhhdCBvbmx5IGNvbnRhaW5zIG51bWJlcnMsIGxpa2UgXCIxMjM0XCIgYnV0IG5vdCBsaWtlIFwiMTIzNGhlbGxvXCJcclxuICAgICAgICAgICAgaWYgKCFpc05hTih2YWx1ZSBhcyBhbnkgLSBwYXJzZWROYikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShwYXJzZWROYik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICgvXihcXGR7NH0tXFxkezEsMn0tXFxkezEsMn0pJC8udGVzdCh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIC8qIEZvciBJU08gU3RyaW5ncyB3aXRob3V0IHRpbWUgdGhlIGRheSwgbW9udGggYW5kIHllYXIgbXVzdCBiZSBleHRyYWN0ZWQgZnJvbSB0aGUgSVNPIFN0cmluZ1xyXG4gICAgICAgICAgICAgICAgYmVmb3JlIERhdGUgY3JlYXRpb24gdG8gYXZvaWQgdGltZSBvZmZzZXQgYW5kIGVycm9ycyBpbiB0aGUgbmV3IERhdGUuXHJcbiAgICAgICAgICAgICAgICBJZiB3ZSBvbmx5IHJlcGxhY2UgJy0nIHdpdGggJywnIGluIHRoZSBJU08gU3RyaW5nIChcIjIwMTUsMDEsMDFcIiksIGFuZCB0cnkgdG8gY3JlYXRlIGEgbmV3XHJcbiAgICAgICAgICAgICAgICBkYXRlLCBzb21lIGJyb3dzZXJzIChlLmcuIElFIDkpIHdpbGwgdGhyb3cgYW4gaW52YWxpZCBEYXRlIGVycm9yLlxyXG4gICAgICAgICAgICAgICAgSWYgd2UgbGVhdmUgdGhlICctJyAoXCIyMDE1LTAxLTAxXCIpIGFuZCB0cnkgdG8gY3JlYXRlIGEgbmV3IERhdGUoXCIyMDE1LTAxLTAxXCIpIHRoZSB0aW1lb2Zmc2V0XHJcbiAgICAgICAgICAgICAgICBpcyBhcHBsaWVkLlxyXG4gICAgICAgICAgICAgICAgTm90ZTogSVNPIG1vbnRocyBhcmUgMCBmb3IgSmFudWFyeSwgMSBmb3IgRmVicnVhcnksIC4uLiAqL1xyXG4gICAgICAgICAgICAgICAgY29uc3QgW3ksIG0sIGRdID0gdmFsdWUuc3BsaXQoJy0nKS5tYXAoKHZhbDogc3RyaW5nKSA9PiArdmFsKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh5LCBtIC0gMSwgZCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxldCBtYXRjaDogUmVnRXhwTWF0Y2hBcnJheSB8IG51bGw7XHJcbiAgICAgICAgICAgIGlmIChtYXRjaCA9IHZhbHVlLm1hdGNoKHRoaXMuSVNPODYwMV9EQVRFX1JFR0VYKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNvU3RyaW5nVG9EYXRlKG1hdGNoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlIGFzIGFueSk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzRGF0ZShkYXRlKSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBjb252ZXJ0IFwiJHt2YWx1ZX1cIiBpbnRvIGEgZGF0ZWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnZlcnRzIGEgZGF0ZSBpbiBJU084NjAxIHRvIGEgRGF0ZS5cclxuICAgICAqIFVzZWQgaW5zdGVhZCBvZiBgRGF0ZS5wYXJzZWAgYmVjYXVzZSBvZiBicm93c2VyIGRpc2NyZXBhbmNpZXMuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc29TdHJpbmdUb0RhdGUobWF0Y2g6IFJlZ0V4cE1hdGNoQXJyYXkpOiBEYXRlIHtcclxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoMCk7XHJcbiAgICAgICAgbGV0IHR6SG91ciA9IDA7XHJcbiAgICAgICAgbGV0IHR6TWluID0gMDtcclxuXHJcbiAgICAgICAgLy8gbWF0Y2hbOF0gbWVhbnMgdGhhdCB0aGUgc3RyaW5nIGNvbnRhaW5zIFwiWlwiIChVVEMpIG9yIGEgdGltZXpvbmUgbGlrZSBcIiswMTowMFwiIG9yIFwiKzAxMDBcIlxyXG4gICAgICAgIGNvbnN0IGRhdGVTZXR0ZXIgPSBtYXRjaFs4XSA/IGRhdGUuc2V0VVRDRnVsbFllYXIgOiBkYXRlLnNldEZ1bGxZZWFyO1xyXG4gICAgICAgIGNvbnN0IHRpbWVTZXR0ZXIgPSBtYXRjaFs4XSA/IGRhdGUuc2V0VVRDSG91cnMgOiBkYXRlLnNldEhvdXJzO1xyXG5cclxuICAgICAgICAvLyBpZiB0aGVyZSBpcyBhIHRpbWV6b25lIGRlZmluZWQgbGlrZSBcIiswMTowMFwiIG9yIFwiKzAxMDBcIlxyXG4gICAgICAgIGlmIChtYXRjaFs5XSkge1xyXG4gICAgICAgICAgICB0ekhvdXIgPSBOdW1iZXIobWF0Y2hbOV0gKyBtYXRjaFsxMF0pO1xyXG4gICAgICAgICAgICB0ek1pbiA9IE51bWJlcihtYXRjaFs5XSArIG1hdGNoWzExXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRhdGVTZXR0ZXIuY2FsbChkYXRlLCBOdW1iZXIobWF0Y2hbMV0pLCBOdW1iZXIobWF0Y2hbMl0pIC0gMSwgTnVtYmVyKG1hdGNoWzNdKSk7XHJcbiAgICAgICAgY29uc3QgaCA9IE51bWJlcihtYXRjaFs0XSB8fCAwKSAtIHR6SG91cjtcclxuICAgICAgICBjb25zdCBtID0gTnVtYmVyKG1hdGNoWzVdIHx8IDApIC0gdHpNaW47XHJcbiAgICAgICAgY29uc3QgcyA9IE51bWJlcihtYXRjaFs2XSB8fCAwKTtcclxuICAgICAgICBjb25zdCBtcyA9IE1hdGgucm91bmQocGFyc2VGbG9hdCgnMC4nICsgKG1hdGNoWzddIHx8IDApKSAqIDEwMDApO1xyXG4gICAgICAgIHRpbWVTZXR0ZXIuY2FsbChkYXRlLCBoLCBtLCBzLCBtcyk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzRGF0ZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgRGF0ZSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4odmFsdWUudmFsdWVPZigpKTtcclxuICAgIH1cclxufSJdfQ==
|