@stemy/ngx-utils 12.2.10 → 12.2.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/bundles/stemy-ngx-utils.umd.js +34 -20
  2. package/bundles/stemy-ngx-utils.umd.js.map +1 -1
  3. package/esm2015/ngx-utils/common-types.js +1 -1
  4. package/esm2015/ngx-utils/services/formatter.service.js +4 -3
  5. package/esm2015/ngx-utils/services/language.service.js +16 -4
  6. package/esm2015/public_api.js +1 -1
  7. package/esm2020/ngx-utils/common-types.mjs +3 -1
  8. package/esm2020/ngx-utils/components/dynamic-table/dynamic-table.component.mjs +3 -3
  9. package/esm2020/ngx-utils/components/pagination-menu/pagination-menu.component.mjs +3 -3
  10. package/esm2020/ngx-utils/components/unordered-list/unordered-list.component.mjs +3 -3
  11. package/esm2020/ngx-utils/directives/async-method.base.mjs +3 -3
  12. package/esm2020/ngx-utils/directives/async-method.directive.mjs +3 -3
  13. package/esm2020/ngx-utils/directives/background.directive.mjs +3 -3
  14. package/esm2020/ngx-utils/directives/dynamic-table-template.directive.mjs +3 -3
  15. package/esm2020/ngx-utils/directives/global-template.directive.mjs +3 -3
  16. package/esm2020/ngx-utils/directives/icon.directive.mjs +3 -3
  17. package/esm2020/ngx-utils/directives/ngx-template-outlet.directive.mjs +3 -3
  18. package/esm2020/ngx-utils/directives/pagination-item.directive.mjs +3 -3
  19. package/esm2020/ngx-utils/directives/pagination.directive.mjs +3 -3
  20. package/esm2020/ngx-utils/directives/resource-if.directive.mjs +3 -3
  21. package/esm2020/ngx-utils/directives/sticky-class.directive.mjs +3 -3
  22. package/esm2020/ngx-utils/directives/sticky.directive.mjs +3 -3
  23. package/esm2020/ngx-utils/directives/unordered-list-item.directive.mjs +3 -3
  24. package/esm2020/ngx-utils/directives/unordered-list-template.directive.mjs +3 -3
  25. package/esm2020/ngx-utils/ngx-utils.imports.mjs +5 -1
  26. package/esm2020/ngx-utils/ngx-utils.module.mjs +15 -6
  27. package/esm2020/ngx-utils/pipes/chunk.pipe.mjs +3 -3
  28. package/esm2020/ngx-utils/pipes/entries.pipe.mjs +3 -3
  29. package/esm2020/ngx-utils/pipes/extra-item-properties.pipe.mjs +3 -3
  30. package/esm2020/ngx-utils/pipes/filter.pipe.mjs +3 -3
  31. package/esm2020/ngx-utils/pipes/find.pipe.mjs +3 -3
  32. package/esm2020/ngx-utils/pipes/format-number.pipe.mjs +3 -3
  33. package/esm2020/ngx-utils/pipes/get-offset.pipe.mjs +3 -3
  34. package/esm2020/ngx-utils/pipes/get-type.pipe.mjs +3 -3
  35. package/esm2020/ngx-utils/pipes/global-template.pipe.mjs +3 -3
  36. package/esm2020/ngx-utils/pipes/group-by.pipe.mjs +3 -3
  37. package/esm2020/ngx-utils/pipes/is-type.pipe.mjs +3 -3
  38. package/esm2020/ngx-utils/pipes/join.pipe.mjs +3 -3
  39. package/esm2020/ngx-utils/pipes/keys.pipe.mjs +3 -3
  40. package/esm2020/ngx-utils/pipes/map.pipe.mjs +3 -3
  41. package/esm2020/ngx-utils/pipes/max.pipe.mjs +3 -3
  42. package/esm2020/ngx-utils/pipes/min.pipe.mjs +3 -3
  43. package/esm2020/ngx-utils/pipes/pop.pipe.mjs +3 -3
  44. package/esm2020/ngx-utils/pipes/reduce.pipe.mjs +3 -3
  45. package/esm2020/ngx-utils/pipes/remap.pipe.mjs +3 -3
  46. package/esm2020/ngx-utils/pipes/replace.pipe.mjs +6 -5
  47. package/esm2020/ngx-utils/pipes/reverse.pipe.mjs +3 -3
  48. package/esm2020/ngx-utils/pipes/round.pipe.mjs +3 -3
  49. package/esm2020/ngx-utils/pipes/safe-html.pipe.mjs +3 -3
  50. package/esm2020/ngx-utils/pipes/shift.pipe.mjs +3 -3
  51. package/esm2020/ngx-utils/pipes/split.pipe.mjs +3 -3
  52. package/esm2020/ngx-utils/pipes/translate.pipe.mjs +4 -4
  53. package/esm2020/ngx-utils/pipes/values.pipe.mjs +3 -3
  54. package/esm2020/ngx-utils/plugins/resize-event.plugin.mjs +24 -9
  55. package/esm2020/ngx-utils/plugins/scroll-event.plugin.mjs +3 -3
  56. package/esm2020/ngx-utils/services/acl.service.mjs +3 -3
  57. package/esm2020/ngx-utils/services/api.service.mjs +3 -3
  58. package/esm2020/ngx-utils/services/base-http.client.mjs +3 -3
  59. package/esm2020/ngx-utils/services/base-http.service.mjs +12 -8
  60. package/esm2020/ngx-utils/services/config.service.mjs +3 -3
  61. package/esm2020/ngx-utils/services/error-handler.service.mjs +3 -3
  62. package/esm2020/ngx-utils/services/events.service.mjs +3 -3
  63. package/esm2020/ngx-utils/services/formatter.service.mjs +7 -6
  64. package/esm2020/ngx-utils/services/global-template.service.mjs +3 -3
  65. package/esm2020/ngx-utils/services/icon.service.mjs +3 -3
  66. package/esm2020/ngx-utils/services/language.service.mjs +3 -3
  67. package/esm2020/ngx-utils/services/local-http.service.mjs +47 -0
  68. package/esm2020/ngx-utils/services/open-api.service.mjs +3 -3
  69. package/esm2020/ngx-utils/services/promise.service.mjs +3 -3
  70. package/esm2020/ngx-utils/services/state.service.mjs +5 -5
  71. package/esm2020/ngx-utils/services/static-language.service.mjs +3 -3
  72. package/esm2020/ngx-utils/services/storage.service.mjs +3 -3
  73. package/esm2020/ngx-utils/services/toaster.service.mjs +3 -3
  74. package/esm2020/ngx-utils/services/translated-url.serializer.mjs +3 -3
  75. package/esm2020/ngx-utils/services/universal.service.mjs +5 -5
  76. package/esm2020/ngx-utils/services/wasm.service.mjs +46 -0
  77. package/esm2020/ngx-utils/utils/auth.guard.mjs +3 -3
  78. package/esm2020/ngx-utils/utils/date.utils.mjs +5 -4
  79. package/esm2020/ngx-utils/utils/jsonfn.mjs +45 -0
  80. package/esm2020/ngx-utils/utils/object.utils.mjs +3 -3
  81. package/esm2020/ngx-utils/utils/wasi.mjs +159 -0
  82. package/esm2020/ngx-utils/utils/wasm-worker-proxy.mjs +99 -0
  83. package/esm2020/public_api.mjs +5 -2
  84. package/fesm2015/stemy-ngx-utils.js +18 -5
  85. package/fesm2015/stemy-ngx-utils.js.map +1 -1
  86. package/fesm2015/stemy-ngx-utils.mjs +705 -288
  87. package/fesm2015/stemy-ngx-utils.mjs.map +1 -1
  88. package/fesm2020/stemy-ngx-utils.mjs +699 -286
  89. package/fesm2020/stemy-ngx-utils.mjs.map +1 -1
  90. package/ngx-utils/common-types.d.ts +7 -1
  91. package/ngx-utils/services/formatter.service.d.ts +1 -1
  92. package/ngx-utils/services/language.service.d.ts +3 -3
  93. package/ngx-utils/services/local-http.service.d.ts +14 -0
  94. package/ngx-utils/services/wasm.service.d.ts +25 -0
  95. package/ngx-utils/utils/jsonfn.d.ts +6 -0
  96. package/ngx-utils/utils/wasi.d.ts +26 -0
  97. package/ngx-utils/utils/wasm-worker-proxy.d.ts +17 -0
  98. package/package.json +1 -1
  99. package/public_api.d.ts +1 -1
  100. package/stemy-ngx-utils.metadata.json +1 -1
@@ -0,0 +1,159 @@
1
+ import { Injectable } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class Wasi {
4
+ constructor() {
5
+ this.env = {};
6
+ this.instantiated = false;
7
+ this.wasi = [
8
+ "emscripten_notify_memory_growth",
9
+ "proc_exit",
10
+ "environ_get",
11
+ "environ_sizes_get",
12
+ "fd_close",
13
+ "fd_write",
14
+ "fd_read",
15
+ "fd_seek",
16
+ ].reduce((res, key) => {
17
+ if (typeof this[key] === "function") {
18
+ res[key] = this[key].bind(this);
19
+ }
20
+ return res;
21
+ }, {});
22
+ }
23
+ instantiate(bytes) {
24
+ if (this.instantiated) {
25
+ throw new Error("WASI already instantiated");
26
+ }
27
+ this.instantiated = true;
28
+ return WebAssembly.instantiate(bytes, {
29
+ wasi_snapshot_preview1: this.wasi,
30
+ env: this.wasi
31
+ }).then(module => {
32
+ const exports = module.instance.exports;
33
+ this.wasm = {
34
+ ...exports,
35
+ writeArrayToMemory: (array) => {
36
+ const bytes = array.length * array.BYTES_PER_ELEMENT;
37
+ const pointer = exports.malloc(bytes);
38
+ const ctr = array.constructor;
39
+ const heapArray = new ctr(this.wasm.memory.buffer, pointer, array.length);
40
+ heapArray.set(array);
41
+ return pointer;
42
+ },
43
+ readArrayFromMemory: (pointer, array) => {
44
+ const ctr = array.constructor;
45
+ const heapArray = new ctr(this.wasm.memory.buffer, pointer, array.length);
46
+ array.set(heapArray);
47
+ return array;
48
+ }
49
+ };
50
+ this.updateMemoryViews();
51
+ return this.wasm;
52
+ });
53
+ }
54
+ updateMemoryViews() {
55
+ const buffer = this.wasm.memory.buffer;
56
+ this.wasm.HEAP8 = new Int8Array(buffer);
57
+ this.wasm.HEAP16 = new Int16Array(buffer);
58
+ this.wasm.HEAP32 = new Int32Array(buffer);
59
+ this.wasm.HEAPU8 = new Uint8Array(buffer);
60
+ this.wasm.HEAPU16 = new Uint16Array(buffer);
61
+ this.wasm.HEAPU32 = new Uint32Array(buffer);
62
+ this.wasm.HEAPF32 = new Float32Array(buffer);
63
+ this.wasm.HEAPF64 = new Float64Array(buffer);
64
+ }
65
+ getEnvStrings() {
66
+ if (!this.envStrings) {
67
+ let x;
68
+ const env = {};
69
+ for (x in this.env) {
70
+ if (this.env[x] === undefined)
71
+ delete env[x];
72
+ else
73
+ env[x] = this.env[x];
74
+ }
75
+ const strings = [];
76
+ for (x in env) {
77
+ strings.push(x + "=" + env[x]);
78
+ }
79
+ this.envStrings = strings;
80
+ }
81
+ return this.envStrings;
82
+ }
83
+ stringToAscii(str, buffer) {
84
+ const HEAP8 = this.wasm.HEAP8;
85
+ for (let i = 0; i < str.length; ++i) {
86
+ HEAP8[buffer++ >> 0] = str.charCodeAt(i);
87
+ }
88
+ HEAP8[buffer >> 0] = 0;
89
+ }
90
+ emscripten_notify_memory_growth(memoryIndex) {
91
+ this.updateMemoryViews();
92
+ }
93
+ proc_exit(rval) {
94
+ console.log("proc_exit", rval);
95
+ }
96
+ environ_get(environ, environ_buf) {
97
+ if (!this.wasm.HEAP8.byteLength) {
98
+ this.emscripten_notify_memory_growth(0);
99
+ }
100
+ const HEAPU32 = this.wasm.HEAPU32;
101
+ let bufSize = 0;
102
+ this.getEnvStrings().forEach((str, i) => {
103
+ const ptr = environ_buf + bufSize;
104
+ HEAPU32[environ + i * 4 >> 2] = ptr;
105
+ this.stringToAscii(str, ptr);
106
+ bufSize += str.length + 1;
107
+ });
108
+ return 0;
109
+ }
110
+ environ_sizes_get(penviron_count, penviron_buf_size) {
111
+ if (!this.wasm.HEAP8.byteLength) {
112
+ this.emscripten_notify_memory_growth(0);
113
+ }
114
+ const HEAPU32 = this.wasm.HEAPU32;
115
+ const strings = this.getEnvStrings();
116
+ HEAPU32[penviron_count >> 2] = strings.length;
117
+ let bufSize = 0;
118
+ strings.forEach(function (string) {
119
+ bufSize += string.length + 1;
120
+ });
121
+ HEAPU32[penviron_buf_size >> 2] = bufSize;
122
+ // WASI_ESUCCESS
123
+ return 0;
124
+ }
125
+ fd_close(fd) {
126
+ // WASI_ESUCCESS
127
+ return 0;
128
+ }
129
+ fd_write(fd, iovs, iovs_len, nwritten) {
130
+ if (fd !== 1) {
131
+ // WASI_EBADF
132
+ return 8;
133
+ }
134
+ if (iovs_len !== 1) {
135
+ // WASI_ENOSYS
136
+ return 52;
137
+ }
138
+ this.wasm.HEAPU32[nwritten >> 2] = this.wasm.HEAPU32[iovs + 4 >> 2];
139
+ // WASI_ESUCCESS
140
+ return 0;
141
+ }
142
+ fd_read(fd, iovs, iovs_len, nread) {
143
+ // WASI_EINVAL
144
+ return 28;
145
+ }
146
+ fd_seek(fd, offset, whence, newOffset) {
147
+ // WASI_EINVAL
148
+ return 28;
149
+ }
150
+ }
151
+ Wasi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: Wasi, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
152
+ Wasi.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: Wasi, providedIn: "root" });
153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: Wasi, decorators: [{
154
+ type: Injectable,
155
+ args: [{
156
+ providedIn: "root"
157
+ }]
158
+ }], ctorParameters: function () { return []; } });
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FzaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvdXRpbHMvd2FzaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQU16QyxNQUFNLE9BQU8sSUFBSTtJQVFiO1FBQ0ksSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHO1lBQ1IsaUNBQWlDO1lBQ2pDLFdBQVc7WUFDWCxhQUFhO1lBQ2IsbUJBQW1CO1lBQ25CLFVBQVU7WUFDVixVQUFVO1lBQ1YsU0FBUztZQUNULFNBQVM7U0FDWixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNsQixJQUFJLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFVBQVUsRUFBRTtnQkFDakMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbkM7WUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBa0I7UUFDMUIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUNoRDtRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUU7WUFDbEMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDakMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2pCLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVB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QUM7SUFFRCxRQUFRLENBQUMsRUFBVSxFQUFFLElBQVksRUFBRSxRQUFnQixFQUFFLFFBQWdCO1FBQ2pFLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNWLGFBQWE7WUFDYixPQUFPLENBQUMsQ0FBQztTQUNaO1FBQ0QsSUFBSSxRQUFRLEtBQUssQ0FBQyxFQUFFO1lBQ2hCLGNBQWM7WUFDZCxPQUFPLEVBQUUsQ0FBQztTQUNiO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDcEUsZ0JBQWdCO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELE9BQU8sQ0FBQyxFQUFVLEVBQUUsSUFBWSxFQUFFLFFBQWdCLEVBQUUsS0FBYTtRQUM3RCxjQUFjO1FBQ2QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxDQUFDLEVBQVUsRUFBRSxNQUFjLEVBQUUsTUFBYyxFQUFFLFNBQWlCO1FBQ2pFLGNBQWM7UUFDZCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7O2lHQWxLUSxJQUFJO3FHQUFKLElBQUksY0FGRCxNQUFNOzJGQUVULElBQUk7a0JBSGhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0lXYXNpLCBJV2FzbUV4cG9ydHMsIFR5cGVkQXJyYXl9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXYXNpIGltcGxlbWVudHMgSVdhc2kge1xyXG5cclxuICAgIHByb3RlY3RlZCBlbnY6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9O1xyXG4gICAgcHJvdGVjdGVkIGluc3RhbnRpYXRlZDogYm9vbGVhbjtcclxuICAgIHByb3RlY3RlZCB3YXNpOiBhbnk7XHJcbiAgICBwcm90ZWN0ZWQgd2FzbTogSVdhc21FeHBvcnRzO1xyXG4gICAgcHJvdGVjdGVkIGVudlN0cmluZ3M6IHN0cmluZ1tdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuZW52ID0ge307XHJcbiAgICAgICAgdGhpcy5pbnN0YW50aWF0ZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLndhc2kgPSBbXHJcbiAgICAgICAgICAgIFwiZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aFwiLFxyXG4gICAgICAgICAgICBcInByb2NfZXhpdFwiLFxyXG4gICAgICAgICAgICBcImVudmlyb25fZ2V0XCIsXHJcbiAgICAgICAgICAgIFwiZW52aXJvbl9zaXplc19nZXRcIixcclxuICAgICAgICAgICAgXCJmZF9jbG9zZVwiLFxyXG4gICAgICAgICAgICBcImZkX3dyaXRlXCIsXHJcbiAgICAgICAgICAgIFwiZmRfcmVhZFwiLFxyXG4gICAgICAgICAgICBcImZkX3NlZWtcIixcclxuICAgICAgICBdLnJlZHVjZSgocmVzLCBrZXkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzW2tleV0gPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgICAgICAgICAgcmVzW2tleV0gPSB0aGlzW2tleV0uYmluZCh0aGlzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgIH0sIHt9KTtcclxuICAgIH1cclxuXHJcbiAgICBpbnN0YW50aWF0ZShieXRlczogQXJyYXlCdWZmZXIpOiBQcm9taXNlPElXYXNtRXhwb3J0cz4ge1xyXG4gICAgICAgIGlmICh0aGlzLmluc3RhbnRpYXRlZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJXQVNJIGFscmVhZHkgaW5zdGFudGlhdGVkXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmluc3RhbnRpYXRlZCA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGJ5dGVzLCB7XHJcbiAgICAgICAgICAgIHdhc2lfc25hcHNob3RfcHJldmlldzE6IHRoaXMud2FzaSxcclxuICAgICAgICAgICAgZW52OiB0aGlzLndhc2lcclxuICAgICAgICB9KS50aGVuKG1vZHVsZSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGV4cG9ydHMgPSBtb2R1bGUuaW5zdGFuY2UuZXhwb3J0cyBhcyBhbnk7XHJcbiAgICAgICAgICAgIHRoaXMud2FzbSA9IHtcclxuICAgICAgICAgICAgICAgIC4uLmV4cG9ydHMsXHJcbiAgICAgICAgICAgICAgICB3cml0ZUFycmF5VG9NZW1vcnk6IChhcnJheTogVHlwZWRBcnJheSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJ5dGVzID0gYXJyYXkubGVuZ3RoICogYXJyYXkuQllURVNfUEVSX0VMRU1FTlQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9pbnRlciA9IGV4cG9ydHMubWFsbG9jKGJ5dGVzKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjdHIgPSBhcnJheS5jb25zdHJ1Y3RvciBhcyBhbnk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGVhcEFycmF5ID0gbmV3IGN0cih0aGlzLndhc20ubWVtb3J5LmJ1ZmZlciwgcG9pbnRlciwgYXJyYXkubGVuZ3RoKTtcclxuICAgICAgICAgICAgICAgICAgICBoZWFwQXJyYXkuc2V0KGFycmF5KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcG9pbnRlcjtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICByZWFkQXJyYXlGcm9tTWVtb3J5OiAocG9pbnRlcjogbnVtYmVyLCBhcnJheTogVHlwZWRBcnJheSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN0ciA9IGFycmF5LmNvbnN0cnVjdG9yIGFzIGFueTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoZWFwQXJyYXkgPSBuZXcgY3RyKHRoaXMud2FzbS5tZW1vcnkuYnVmZmVyLCBwb2ludGVyLCBhcnJheS5sZW5ndGgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGFycmF5LnNldChoZWFwQXJyYXkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhcnJheTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBhcyBJV2FzbUV4cG9ydHM7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTWVtb3J5Vmlld3MoKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMud2FzbTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgdXBkYXRlTWVtb3J5Vmlld3MoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgYnVmZmVyID0gdGhpcy53YXNtLm1lbW9yeS5idWZmZXI7XHJcbiAgICAgICAgdGhpcy53YXNtLkhFQVA4ID0gbmV3IEludDhBcnJheShidWZmZXIpO1xyXG4gICAgICAgIHRoaXMud2FzbS5IRUFQMTYgPSBuZXcgSW50MTZBcnJheShidWZmZXIpO1xyXG4gICAgICAgIHRoaXMud2FzbS5IRUFQMzIgPSBuZXcgSW50MzJBcnJheShidWZmZXIpO1xyXG4gICAgICAgIHRoaXMud2FzbS5IRUFQVTggPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xyXG4gICAgICAgIHRoaXMud2FzbS5IRUFQVTE2ID0gbmV3IFVpbnQxNkFycmF5KGJ1ZmZlcik7XHJcbiAgICAgICAgdGhpcy53YXNtLkhFQVBVMzIgPSBuZXcgVWludDMyQXJyYXkoYnVmZmVyKTtcclxuICAgICAgICB0aGlzLndhc20uSEVBUEYzMiA9IG5ldyBGbG9hdDMyQXJyYXkoYnVmZmVyKTtcclxuICAgICAgICB0aGlzLndhc20uSEVBUEY2NCA9IG5ldyBGbG9hdDY0QXJyYXkoYnVmZmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0RW52U3RyaW5ncygpOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmVudlN0cmluZ3MpIHtcclxuICAgICAgICAgICAgbGV0IHg7XHJcbiAgICAgICAgICAgIGNvbnN0IGVudiA9IHt9O1xyXG4gICAgICAgICAgICBmb3IgKHggaW4gdGhpcy5lbnYpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmVudlt4XSA9PT0gdW5kZWZpbmVkKSBkZWxldGUgZW52W3hdOyBlbHNlIGVudlt4XSA9IHRoaXMuZW52W3hdXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3Qgc3RyaW5ncyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IgKHggaW4gZW52KSB7XHJcbiAgICAgICAgICAgICAgICBzdHJpbmdzLnB1c2goeCArIFwiPVwiICsgZW52W3hdKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZW52U3RyaW5ncyA9IHN0cmluZ3NcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52U3RyaW5ncztcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgc3RyaW5nVG9Bc2NpaShzdHIsIGJ1ZmZlcikge1xyXG4gICAgICAgIGNvbnN0IEhFQVA4ID0gdGhpcy53YXNtLkhFQVA4O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgKytpKSB7XHJcbiAgICAgICAgICAgIEhFQVA4W2J1ZmZlcisrID4+IDBdID0gc3RyLmNoYXJDb2RlQXQoaSlcclxuICAgICAgICB9XHJcbiAgICAgICAgSEVBUDhbYnVmZmVyID4+IDBdID0gMFxyXG4gICAgfVxyXG5cclxuICAgIGVtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgobWVtb3J5SW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudXBkYXRlTWVtb3J5Vmlld3MoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm9jX2V4aXQocnZhbDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJwcm9jX2V4aXRcIiwgcnZhbCk7XHJcbiAgICB9XHJcblxyXG4gICAgZW52aXJvbl9nZXQoZW52aXJvbjogbnVtYmVyLCBlbnZpcm9uX2J1ZjogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAoIXRoaXMud2FzbS5IRUFQOC5ieXRlTGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aCgwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgSEVBUFUzMiA9IHRoaXMud2FzbS5IRUFQVTMyO1xyXG4gICAgICAgIGxldCBidWZTaXplID0gMDtcclxuICAgICAgICB0aGlzLmdldEVudlN0cmluZ3MoKS5mb3JFYWNoKChzdHI6IHN0cmluZywgaTogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHB0ciA9IGVudmlyb25fYnVmICsgYnVmU2l6ZTtcclxuICAgICAgICAgICAgSEVBUFUzMltlbnZpcm9uICsgaSAqIDQgPj4gMl0gPSBwdHI7XHJcbiAgICAgICAgICAgIHRoaXMuc3RyaW5nVG9Bc2NpaShzdHIsIHB0cik7XHJcbiAgICAgICAgICAgIGJ1ZlNpemUgKz0gc3RyLmxlbmd0aCArIDFcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gMFxyXG4gICAgfVxyXG5cclxuICAgIGVudmlyb25fc2l6ZXNfZ2V0KHBlbnZpcm9uX2NvdW50OiBudW1iZXIsIHBlbnZpcm9uX2J1Zl9zaXplOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIGlmICghdGhpcy53YXNtLkhFQVA4LmJ5dGVMZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoKDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBIRUFQVTMyID0gdGhpcy53YXNtLkhFQVBVMzI7XHJcbiAgICAgICAgY29uc3Qgc3RyaW5ncyA9IHRoaXMuZ2V0RW52U3RyaW5ncygpO1xyXG4gICAgICAgIEhFQVBVMzJbcGVudmlyb25fY291bnQgPj4gMl0gPSBzdHJpbmdzLmxlbmd0aDtcclxuICAgICAgICBsZXQgYnVmU2l6ZSA9IDA7XHJcbiAgICAgICAgc3RyaW5ncy5mb3JFYWNoKGZ1bmN0aW9uIChzdHJpbmcpIHtcclxuICAgICAgICAgICAgYnVmU2l6ZSArPSBzdHJpbmcubGVuZ3RoICsgMVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIEhFQVBVMzJbcGVudmlyb25fYnVmX3NpemUgPj4gMl0gPSBidWZTaXplO1xyXG4gICAgICAgIC8vIFdBU0lfRVNVQ0NFU1NcclxuICAgICAgICByZXR1cm4gMFxyXG4gICAgfVxyXG5cclxuICAgIGZkX2Nsb3NlKGZkOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIC8vIFdBU0lfRVNVQ0NFU1NcclxuICAgICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICBmZF93cml0ZShmZDogbnVtYmVyLCBpb3ZzOiBudW1iZXIsIGlvdnNfbGVuOiBudW1iZXIsIG53cml0dGVuOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIGlmIChmZCAhPT0gMSkge1xyXG4gICAgICAgICAgICAvLyBXQVNJX0VCQURGXHJcbiAgICAgICAgICAgIHJldHVybiA4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW92c19sZW4gIT09IDEpIHtcclxuICAgICAgICAgICAgLy8gV0FTSV9FTk9TWVNcclxuICAgICAgICAgICAgcmV0dXJuIDUyO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLndhc20uSEVBUFUzMltud3JpdHRlbiA+PiAyXSA9IHRoaXMud2FzbS5IRUFQVTMyW2lvdnMgKyA0ID4+IDJdO1xyXG4gICAgICAgIC8vIFdBU0lfRVNVQ0NFU1NcclxuICAgICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICBmZF9yZWFkKGZkOiBudW1iZXIsIGlvdnM6IG51bWJlciwgaW92c19sZW46IG51bWJlciwgbnJlYWQ6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgLy8gV0FTSV9FSU5WQUxcclxuICAgICAgICByZXR1cm4gMjg7XHJcbiAgICB9XHJcblxyXG4gICAgZmRfc2VlayhmZDogbnVtYmVyLCBvZmZzZXQ6IG51bWJlciwgd2hlbmNlOiBudW1iZXIsIG5ld09mZnNldDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICAvLyBXQVNJX0VJTlZBTFxyXG4gICAgICAgIHJldHVybiAyODtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,99 @@
1
+ import { JSONfn } from "./jsonfn";
2
+ export function workerFunction(JSONfn, logTimes) {
3
+ let wasmResolve = null;
4
+ const wasmInstance = new Promise(resolve => {
5
+ wasmResolve = resolve;
6
+ });
7
+ self.onmessage = function (e) {
8
+ const data = e.data;
9
+ const { type, payload } = data;
10
+ switch (type) {
11
+ case "wasm":
12
+ const { url, wasi } = payload;
13
+ fetch(url).then(response => response.arrayBuffer()).then(bytes => {
14
+ const wasiImpl = JSONfn.parse(wasi);
15
+ return new wasiImpl().instantiate(bytes);
16
+ }).then(instance => {
17
+ wasmResolve(instance);
18
+ const methods = Object.getOwnPropertyNames(instance).filter(key => typeof instance[key] === "function");
19
+ self.postMessage({ type: "methods", payload: methods });
20
+ });
21
+ break;
22
+ case "call":
23
+ wasmInstance.then(instance => {
24
+ const { name, id, args } = payload;
25
+ if (logTimes) {
26
+ console.time(id);
27
+ console.timeLog(id, `Calling ${name} ...`);
28
+ }
29
+ const func = instance[name];
30
+ const result = func(...args);
31
+ if (logTimes) {
32
+ console.timeLog(id, `Called ${name}`);
33
+ console.timeEnd(id);
34
+ }
35
+ self.postMessage({ type: "result", payload: { id, result } });
36
+ });
37
+ break;
38
+ }
39
+ };
40
+ }
41
+ export class WasmWorkerProxy {
42
+ constructor(wasmPath, wasi, logTimes = false) {
43
+ this.methods = new Promise(resolve => {
44
+ this.onMethods = resolve;
45
+ });
46
+ const lt = logTimes ? "true" : "false";
47
+ const blob = new Blob([`${JSONfn.toString()} (${workerFunction.toString()})(JSONfn, ${lt})`], { type: 'application/javascript' });
48
+ this.worker = new Worker(URL.createObjectURL(blob));
49
+ this.worker.postMessage({
50
+ type: "wasm",
51
+ payload: { url: wasmPath, wasi: JSONfn.stringify(wasi), logTimes }
52
+ });
53
+ this.worker.onmessage = this.onMessage.bind(this);
54
+ this.promises = new Map();
55
+ return new Proxy(this, {
56
+ get: (target, prop, receiver) => {
57
+ const res = Reflect.get(target, prop, receiver);
58
+ if (res) {
59
+ return res;
60
+ }
61
+ return (...args) => {
62
+ return this.call(prop.toString(), args);
63
+ };
64
+ }
65
+ });
66
+ }
67
+ onMessage(e) {
68
+ const data = e.data;
69
+ const { type, payload } = data;
70
+ switch (type) {
71
+ case "methods":
72
+ this.onMethods(payload);
73
+ break;
74
+ case "result":
75
+ const { id, result } = payload;
76
+ const promise = this.promises.get(id);
77
+ if (promise) {
78
+ promise.resolve(result);
79
+ this.promises.delete(id);
80
+ }
81
+ break;
82
+ }
83
+ }
84
+ async call(method, args) {
85
+ const methods = await this.methods;
86
+ if (!methods.includes(method)) {
87
+ throw new Error(`Method ${method} not found`);
88
+ }
89
+ return new Promise((resolve, reject) => {
90
+ const id = Math.random().toString(36).substring(2, 9);
91
+ this.worker.postMessage({
92
+ type: "call",
93
+ payload: { name: method, id, args }
94
+ });
95
+ this.promises.set(id, { resolve, reject });
96
+ });
97
+ }
98
+ }
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FzbS13b3JrZXItcHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3V0aWxzL3dhc20td29ya2VyLXByb3h5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFPaEMsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUFXLEVBQUUsUUFBaUI7SUFFekQsSUFBSSxXQUFXLEdBQXFDLElBQUksQ0FBQztJQUN6RCxNQUFNLFlBQVksR0FBMEIsSUFBSSxPQUFPLENBQWUsT0FBTyxDQUFDLEVBQUU7UUFDNUUsV0FBVyxHQUFHLE9BQU8sQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDcEIsTUFBTSxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUMsR0FBRyxJQUFJLENBQUM7UUFDN0IsUUFBUSxJQUFJLEVBQUU7WUFDVixLQUFLLE1BQU07Z0JBQ1AsTUFBTSxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsR0FBRyxPQUFPLENBQUM7Z0JBQzVCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQzdELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3BDLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzdDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDZixXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3RCLE1BQU0sT0FB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QUFDO1NBQ2pEO1FBQ0QsT0FBTyxJQUFJLE9BQU8sQ0FBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN4QyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7Z0JBQ3BCLElBQUksRUFBRSxNQUFNO2dCQUNaLE9BQU8sRUFBRSxFQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBQzthQUNwQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SVdhc2ksIElXYXNtRXhwb3J0c30gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge1R5cGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SlNPTmZufSBmcm9tIFwiLi9qc29uZm5cIjtcclxuXHJcbmludGVyZmFjZSBJUHJvbWlzZUV4ZWN1dG9yIHtcclxuICAgIHJlc29sdmU6ICh2YWx1ZT86IGFueSkgPT4gdm9pZDtcclxuICAgIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHdvcmtlckZ1bmN0aW9uKEpTT05mbjogYW55LCBsb2dUaW1lczogYm9vbGVhbik6IHZvaWQge1xyXG5cclxuICAgIGxldCB3YXNtUmVzb2x2ZTogKGluc3RhbmNlOiBJV2FzbUV4cG9ydHMpID0+IHZvaWQgPSBudWxsO1xyXG4gICAgY29uc3Qgd2FzbUluc3RhbmNlOiBQcm9taXNlPElXYXNtRXhwb3J0cz4gPSBuZXcgUHJvbWlzZTxJV2FzbUV4cG9ydHM+KHJlc29sdmUgPT4ge1xyXG4gICAgICAgIHdhc21SZXNvbHZlID0gcmVzb2x2ZTtcclxuICAgIH0pO1xyXG5cclxuICAgIHNlbGYub25tZXNzYWdlID0gZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICBjb25zdCBkYXRhID0gZS5kYXRhO1xyXG4gICAgICAgIGNvbnN0IHt0eXBlLCBwYXlsb2FkfSA9IGRhdGE7XHJcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ3YXNtXCI6XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7dXJsLCB3YXNpfSA9IHBheWxvYWQ7XHJcbiAgICAgICAgICAgICAgICBmZXRjaCh1cmwpLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuYXJyYXlCdWZmZXIoKSkudGhlbihieXRlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2FzaUltcGwgPSBKU09OZm4ucGFyc2Uod2FzaSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3YXNpSW1wbCgpLmluc3RhbnRpYXRlKGJ5dGVzKTtcclxuICAgICAgICAgICAgICAgIH0pLnRoZW4oaW5zdGFuY2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHdhc21SZXNvbHZlKGluc3RhbmNlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXRob2RzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoaW5zdGFuY2UpLmZpbHRlcihrZXkgPT4gdHlwZW9mIGluc3RhbmNlW2tleV0gPT09IFwiZnVuY3Rpb25cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh7dHlwZTogXCJtZXRob2RzXCIsIHBheWxvYWQ6IG1ldGhvZHN9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJjYWxsXCI6XHJcbiAgICAgICAgICAgICAgICB3YXNtSW5zdGFuY2UudGhlbihpbnN0YW5jZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qge25hbWUsIGlkLCBhcmdzfSA9IHBheWxvYWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxvZ1RpbWVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUudGltZShpZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUudGltZUxvZyhpZCwgYENhbGxpbmcgJHtuYW1lfSAuLi5gKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZnVuYyA9IChpbnN0YW5jZVtuYW1lXSBhcyBGdW5jdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gZnVuYyguLi5hcmdzKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobG9nVGltZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS50aW1lTG9nKGlkLCBgQ2FsbGVkICR7bmFtZX1gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS50aW1lRW5kKGlkKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh7dHlwZTogXCJyZXN1bHRcIiwgcGF5bG9hZDoge2lkLCByZXN1bHR9fSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBXYXNtV29ya2VyUHJveHkge1xyXG5cclxuICAgIHByb3RlY3RlZCBtZXRob2RzOiBQcm9taXNlPHN0cmluZ1tdPjtcclxuICAgIHByb3RlY3RlZCBvbk1ldGhvZHM6IChtZXRob2RzOiBzdHJpbmdbXSkgPT4gdm9pZDtcclxuICAgIHByb3RlY3RlZCB3b3JrZXI6IFdvcmtlcjtcclxuICAgIHByb3RlY3RlZCBwcm9taXNlczogTWFwPHN0cmluZywgSVByb21pc2VFeGVjdXRvcj47XHJcblxyXG4gICAgY29uc3RydWN0b3Iod2FzbVBhdGg6IHN0cmluZywgd2FzaTogVHlwZTxJV2FzaT4sIGxvZ1RpbWVzOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgICAgICB0aGlzLm1ldGhvZHMgPSBuZXcgUHJvbWlzZTxzdHJpbmdbXT4ocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25NZXRob2RzID0gcmVzb2x2ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCBsdCA9IGxvZ1RpbWVzID8gXCJ0cnVlXCIgOiBcImZhbHNlXCI7XHJcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFxyXG4gICAgICAgICAgICBbYCR7SlNPTmZuLnRvU3RyaW5nKCl9ICgke3dvcmtlckZ1bmN0aW9uLnRvU3RyaW5nKCl9KShKU09OZm4sICR7bHR9KWBdLFxyXG4gICAgICAgICAgICB7dHlwZTogJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy53b3JrZXIgPSBuZXcgV29ya2VyKFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikpO1xyXG4gICAgICAgIHRoaXMud29ya2VyLnBvc3RNZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogXCJ3YXNtXCIsXHJcbiAgICAgICAgICAgIHBheWxvYWQ6IHt1cmw6IHdhc21QYXRoLCB3YXNpOiBKU09OZm4uc3RyaW5naWZ5KHdhc2kpLCBsb2dUaW1lc31cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLndvcmtlci5vbm1lc3NhZ2UgPSB0aGlzLm9uTWVzc2FnZS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMucHJvbWlzZXMgPSBuZXcgTWFwPHN0cmluZywgSVByb21pc2VFeGVjdXRvcj4oKTtcclxuICAgICAgICByZXR1cm4gbmV3IFByb3h5KHRoaXMsIHtcclxuICAgICAgICAgICAgZ2V0OiAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0gUmVmbGVjdC5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiAoLi4uYXJnczogYW55W10pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jYWxsKHByb3AudG9TdHJpbmcoKSwgYXJncyk7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25NZXNzYWdlKGU6IE1lc3NhZ2VFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSBlLmRhdGE7XHJcbiAgICAgICAgY29uc3Qge3R5cGUsIHBheWxvYWR9ID0gZGF0YTtcclxuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSBcIm1ldGhvZHNcIjpcclxuICAgICAgICAgICAgICAgIHRoaXMub25NZXRob2RzKHBheWxvYWQpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJyZXN1bHRcIjpcclxuICAgICAgICAgICAgICAgIGNvbnN0IHtpZCwgcmVzdWx0fSA9IHBheWxvYWQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5wcm9taXNlcy5nZXQoaWQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHByb21pc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb21pc2VzLmRlbGV0ZShpZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgY2FsbChtZXRob2Q6IHN0cmluZywgYXJnczogYW55W10pOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGNvbnN0IG1ldGhvZHMgPSBhd2FpdCB0aGlzLm1ldGhvZHM7XHJcbiAgICAgICAgaWYgKCFtZXRob2RzLmluY2x1ZGVzKG1ldGhvZCkpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNZXRob2QgJHttZXRob2R9IG5vdCBmb3VuZGApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGlkID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDkpO1xyXG4gICAgICAgICAgICB0aGlzLndvcmtlci5wb3N0TWVzc2FnZSh7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcImNhbGxcIixcclxuICAgICAgICAgICAgICAgIHBheWxvYWQ6IHtuYW1lOiBtZXRob2QsIGlkLCBhcmdzfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5wcm9taXNlcy5zZXQoaWQsIHtyZXNvbHZlLCByZWplY3R9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,4 +1,4 @@
1
- export { CanvasColor, ICON_SERVICE, LANGUAGE_SERVICE, AUTH_SERVICE, PROMISE_SERVICE, StorageMode, TOASTER_SERVICE, UnorederedListTemplate, FactoryDependencies, PaginationItemContext, HttpPromise, EXPRESS_REQUEST, API_SERVICE, ResourceIfContext, APP_BASE_URL, IConfiguration, CONFIG_SERVICE, BASE_CONFIG, SCRIPT_PARAMS, ROOT_ELEMENT, ERROR_HANDLER, GLOBAL_TEMPLATES, ValuedPromise } from "./ngx-utils/common-types";
1
+ export { CanvasColor, ICON_SERVICE, LANGUAGE_SERVICE, AUTH_SERVICE, PROMISE_SERVICE, WASI_IMPLEMENTATION, StorageMode, TOASTER_SERVICE, UnorederedListTemplate, FactoryDependencies, PaginationItemContext, HttpPromise, EXPRESS_REQUEST, API_SERVICE, ResourceIfContext, APP_BASE_URL, IConfiguration, CONFIG_SERVICE, BASE_CONFIG, SCRIPT_PARAMS, ROOT_ELEMENT, RESIZE_DELAY, ERROR_HANDLER, GLOBAL_TEMPLATES, ValuedPromise } from "./ngx-utils/common-types";
2
2
  export { AjaxRequestHandler } from "./ngx-utils/utils/ajax-request-handler";
3
3
  export { ObjectUtils } from "./ngx-utils/utils/object.utils";
4
4
  export { DateUtils } from "./ngx-utils/utils/date.utils";
@@ -8,6 +8,7 @@ export { GenericValue } from "./ngx-utils/utils/generic-value";
8
8
  export { FileSystemEntry } from "./ngx-utils/utils/file-system";
9
9
  export { Rect, Circle, Point } from "./ngx-utils/utils/geometry";
10
10
  export { Initializer } from "./ngx-utils/utils/initializer";
11
+ export { JSONfn } from "./ngx-utils/utils/jsonfn";
11
12
  export { ReflectUtils } from "./ngx-utils/utils/reflect.utils";
12
13
  export { LoaderUtils } from "./ngx-utils/utils/loader.utils";
13
14
  export { MathUtils } from "./ngx-utils/utils/math.utils";
@@ -20,6 +21,7 @@ export { TimerUtils } from "./ngx-utils/utils/timer.utils";
20
21
  export { UniqueUtils } from "./ngx-utils/utils/unique.utils";
21
22
  export { Vector } from "./ngx-utils/utils/vector";
22
23
  export { UniversalService } from "./ngx-utils/services/universal.service";
24
+ export { WasmService } from "./ngx-utils/services/wasm.service";
23
25
  export { AclService } from "./ngx-utils/services/acl.service";
24
26
  export { ApiService } from "./ngx-utils/services/api.service";
25
27
  export { StaticAuthService } from "./ngx-utils/services/auth.service";
@@ -32,6 +34,7 @@ export { FormatterService } from "./ngx-utils/services/formatter.service";
32
34
  export { GlobalTemplateService } from "./ngx-utils/services/global-template.service";
33
35
  export { IconService } from "./ngx-utils/services/icon.service";
34
36
  export { LanguageService } from "./ngx-utils/services/language.service";
37
+ export { LocalHttpService } from "./ngx-utils/services/local-http.service";
35
38
  export { OpenApiService } from "./ngx-utils/services/open-api.service";
36
39
  export { StateService } from "./ngx-utils/services/state.service";
37
40
  export { StaticLanguageService } from "./ngx-utils/services/static-language.service";
@@ -86,4 +89,4 @@ export { UnorderedListComponent } from "./ngx-utils/components/unordered-list/un
86
89
  export { DynamicTableComponent } from "./ngx-utils/components/dynamic-table/dynamic-table.component";
87
90
  export { PaginationMenuComponent } from "./ngx-utils/components/pagination-menu/pagination-menu.component";
88
91
  export { NgxUtilsModule } from "./ngx-utils/ngx-utils.module";
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxXQUFXLEVBRVgsWUFBWSxFQUtaLGdCQUFnQixFQUtoQixZQUFZLEVBR1osZUFBZSxFQUdmLFdBQVcsRUFFWCxlQUFlLEVBR2Ysc0JBQXNCLEVBUXRCLG1CQUFtQixFQVFuQixxQkFBcUIsRUFRckIsV0FBVyxFQUVYLGVBQWUsRUFFZixXQUFXLEVBUVgsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixjQUFjLEVBRWQsY0FBYyxFQUNkLFdBQVcsRUFDWCxhQUFhLEVBQ2IsWUFBWSxFQUVaLGFBQWEsRUFHYixnQkFBZ0IsRUFHaEIsYUFBYSxFQUNoQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFtRCxlQUFlLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNoSCxPQUFPLEVBQVMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzdELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFP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LEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUN6RixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDaEcsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDaEYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDekYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDakYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ25GLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBRXhHLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQ25HLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGtFQUFrRSxDQUFDO0FBRXpHLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XHJcbiAgICBJUmVzb2x2ZUZhY3RvcnksXHJcbiAgICBDYW52YXNDb2xvcixcclxuICAgIElJY29uU2VydmljZSxcclxuICAgIElDT05fU0VSVklDRSxcclxuICAgIElUcmFuc2xhdGlvbixcclxuICAgIElUcmFuc2xhdGlvbnMsXHJcbiAgICBJTGFuZ3VhZ2VTZXR0aW5ncyxcclxuICAgIElMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBMQU5HVUFHRV9TRVJWSUNFLFxyXG4gICAgSUF1dGhTZXJ2aWNlLFxyXG4gICAgUm91dGVWYWxpZGF0b3IsXHJcbiAgICBJUm91dGVEYXRhLFxyXG4gICAgSVJvdXRlLFxyXG4gICAgQVVUSF9TRVJWSUNFLFxyXG4gICAgSUFjbENvbXBvbmVudCxcclxuICAgIElQcm9taXNlU2VydmljZSxcclxuICAgIFBST01JU0VfU0VSVklDRSxcclxuICAgIElSb3V0ZVN0YXRlSW5mbyxcclxuICAgIE5hdmlnYXRpb25VcmxQYXJhbSxcclxuICAgIFN0b3JhZ2VNb2RlLFxyXG4gICAgSVRvYXN0ZXJTZXJ2aWNlLFxyXG4gICAgVE9BU1RFUl9TRVJWSUNFLFxyXG4gICAgSUFzeW5jTWVzc2FnZSxcclxuICAgIEFzeW5jTWV0aG9kLFxyXG4gICAgVW5vcmVkZXJlZExpc3RUZW1wbGF0ZSxcclxuICAgIFVub3JkZXJlZExpc3RUZW1wbGF0ZXMsXHJcbiAgICBVbm9yZGVyZWRMaXN0U3R5bGUsXHJcbiAgICBJQWpheFJlcXVlc3REZXRhaWxzLFxyXG4gICAgQWpheFJlcXVlc3RDYWxsYmFjayxcclxuICAgIElTY3JpcHRQcm9taXNlcyxcclxuICAgIElTdHlsZVByb21pc2VzLFxyXG4gICAgSVNlYXJjaE9ic2VydmFibGUsXHJcbiAgICBGYWN0b3J5RGVwZW5kZW5jaWVzLFxyXG4gICAgSVRpbWVyLFxyXG4gICAgSUV4dHJhUHJvcGVydGllcyxcclxuICAgIElHcm91cE1hcCxcclxuICAgIFRyYW5zbGF0aW9uUXVlcnksXHJcbiAgICBJUGFnZUluZm8sXHJcbiAgICBJUGFnaW5hdGlvbkRhdGEsXHJcbiAgICBQYWdpbmF0aW9uRGF0YUxvYWRlcixcclxuICAgIFBhZ2luYXRpb25JdGVtQ29udGV4dCxcclxuICAgIElIdHRwSGVhZGVycyxcclxuICAgIElIdHRwUGFyYW1zLFxyXG4gICAgSVJlcXVlc3RPcHRpb25zLFxyXG4gICAgSUlzc3VlQ29udGV4dCxcclxuICAgIElQcm9ncmVzcyxcclxuICAgIFByb2dyZXNzTGlzdGVuZXIsXHJcbiAgICBQcm9taXNlRXhlY3V0b3IsXHJcbiAgICBIdHRwUHJvbWlzZSxcclxuICAgIElIdHRwU2VydmljZSxcclxuICAgIEVYUFJFU1NfUkVRVUVTVCxcclxuICAgIElBcGlTZXJ2aWNlLFxyXG4gICAgQVBJX1NFUlZJQ0UsXHJcbiAgICBJT3BlbkFwaVNjaGVtYVByb3BlcnR5LFxyXG4gICAgSU9wZW5BcGlTY2hlbWEsXHJcbiAgICBJT3BlbkFwaVNjaGVtYXMsXHJcbiAgICBJVGFibGVDb2x1bW5zLFxyXG4gICAgSVRhYmxlVGVtcGxhdGUsXHJcbiAgICBJVGFibGVUZW1wbGF0ZXMsXHJcbiAgICBUYWJsZURhdGFMb2FkZXIsXHJcbiAgICBSZXNvdXJjZUlmQ29udGV4dCxcclxuICAgIEFQUF9CQVNFX1VSTCxcclxuICAgIElDb25maWd1cmF0aW9uLFxyXG4gICAgSUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBDT05GSUdfU0VSVklDRSxcclxuICAgIEJBU0VfQ09ORklHLFxyXG4gICAgU0NSSVBUX1BBUkFNUyxcclxuICAgIFJPT1RfRUxFTUVOVCxcclxuICAgIEVycm9ySGFuZGxlckNhbGxiYWNrLFxyXG4gICAgRVJST1JfSEFORExFUixcclxuICAgIEdsb2JhbENvbXBvbmVudE1vZGlmaWVyLFxyXG4gICAgSUdsb2JhbFRlbXBsYXRlcyxcclxuICAgIEdMT0JBTF9URU1QTEFURVMsXHJcbiAgICBBcHBJbml0aWFsaXplckZ1bmMsXHJcbiAgICBJTW9kdWxlQ29uZmlnLFxyXG4gICAgVmFsdWVkUHJvbWlzZVxyXG59IGZyb20gXCIuL25neC11dGlscy9jb21tb24tdHlwZXNcIjtcclxuXHJcbmV4cG9ydCB7QWpheFJlcXVlc3RIYW5kbGVyfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvYWpheC1yZXF1ZXN0LWhhbmRsZXJcIjtcclxuZXhwb3J0IHtPYmplY3RVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL29iamVjdC51dGlsc1wiO1xyXG5leHBvcnQge0RhdGVVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2RhdGUudXRpbHNcIjtcclxuZXhwb3J0IHtDYW52YXNVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2NhbnZhcy51dGlsc1wiO1xyXG5leHBvcnQge0ZpbGVVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2ZpbGUudXRpbHNcIjtcclxuZXhwb3J0IHtHZW5lcmljVmFsdWV9IGZyb20gXCIuL25neC11dGlscy91dGlscy9nZW5lcmljLXZhbHVlXCI7XHJcbmV4cG9ydCB7RmlsZVN5c3RlbUVudHJ5T3BlblJlc3VsdCwgRmlsZVN5c3RlbUVudHJ5T3BlbkNiLCBGaWxlU3lzdGVtRW50cnl9IGZyb20gXCIuL25neC11dGlscy91dGlscy9maWxlLXN5c3RlbVwiO1xyXG5leHBvcnQge0lTaGFwZSwgUmVjdCwgQ2lyY2xlLCBQb2ludH0gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2dlb21ldHJ5XCI7XHJcbmV4cG9ydCB7SW5pdGlhbGl6ZXJ9IGZyb20gXCIuL25neC11dGlscy91dGlscy9pbml0aWFsaXplclwiO1xyXG5leHBvcnQge1JlZmxlY3RVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL3JlZmxlY3QudXRpbHNcIjtcclxuZXhwb3J0IHtMb2FkZXJVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2xvYWRlci51dGlsc1wiO1xyXG5leHBvcnQge01hdGhVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL21hdGgudXRpbHNcIjtcclxuZXhwb3J0IHtBdXRoR3VhcmR9IGZyb20gXCIuL25neC11dGlscy91dGlscy9hdXRoLmd1YXJkXCI7XHJcbmV4cG9ydCB7T2JzZXJ2YWJsZVV0aWxzLCBJU3Vic2NyaWJlckluZm99IGZyb20gXCIuL25neC11dGlscy91dGlscy9vYnNlcnZhYmxlLnV0aWxzXCI7XHJcbmV4cG9ydCB7U3RyaW5nVXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy9zdHJpbmcudXRpbHNcIjtcclxuZXhwb3J0IHtBcnJheVV0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvYXJyYXkudXRpbHNcIjtcclxuZXhwb3J0IHtTZXRVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL3NldC51dGlsc1wiO1xyXG5leHBvcnQge1RpbWVyVXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy90aW1lci51dGlsc1wiO1xyXG5leHBvcnQge1VuaXF1ZVV0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvdW5pcXVlLnV0aWxzXCI7XHJcbmV4cG9ydCB7VmVjdG9yfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvdmVjdG9yXCI7XHJcblxyXG5leHBvcnQge1VuaXZlcnNhbFNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy91bml2ZXJzYWwuc2VydmljZVwiO1xyXG5leHBvcnQge0FjbFNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9hY2wuc2VydmljZVwiO1xyXG5leHBvcnQge0FwaVNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9hcGkuc2VydmljZVwiO1xyXG5leHBvcnQge1N0YXRpY0F1dGhTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvYXV0aC5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7QmFzZUh0dHBDbGllbnR9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9iYXNlLWh0dHAuY2xpZW50XCI7XHJcbmV4cG9ydCB7QmFzZUh0dHBTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvYmFzZS1odHRwLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvY29uZmlnLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtFcnJvckhhbmRsZXJTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvZXJyb3ItaGFuZGxlci5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7RXZlbnRzU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7Rm9ybWF0dGVyU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2Zvcm1hdHRlci5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7R2xvYmFsVGVtcGxhdGVTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvZ2xvYmFsLXRlbXBsYXRlLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtJY29uU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2ljb24uc2VydmljZVwiO1xyXG5leHBvcnQge0xhbmd1YWdlU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2xhbmd1YWdlLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtPcGVuQXBpU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL29wZW4tYXBpLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtJU3RhdGVJbmZvLCBTdGF0ZVNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9zdGF0ZS5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7U3RhdGljTGFuZ3VhZ2VTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvc3RhdGljLWxhbmd1YWdlLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtTdG9yYWdlU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZVwiO1xyXG5leHBvcnQge0NvbnNvbGVUb2FzdGVyU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL3RvYXN0ZXIuc2VydmljZVwiO1xyXG5leHBvcnQge0lVcmxEaWN0aW9uYXJ5LCBUcmFuc2xhdGVkVXJsU2VyaWFsaXplcn0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL3RyYW5zbGF0ZWQtdXJsLnNlcmlhbGl6ZXJcIjtcclxuZXhwb3J0IHtQcm9taXNlU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL3Byb21pc2Uuc2VydmljZVwiO1xyXG5cclxuZXhwb3J0IHtSZXNpemVFdmVudFBsdWdpbn0gZnJvbSBcIi4vbmd4LXV0aWxzL3BsdWdpbnMvcmVzaXplLWV2ZW50LnBsdWdpblwiO1xyXG5leHBvcnQge1Njcm9sbEV2ZW50UGx1Z2lufSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGx1Z2lucy9zY3JvbGwtZXZlbnQucGx1Z2luXCI7XHJcblxyXG5leHBvcnQge0NodW5rUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2NodW5rLnBpcGVcIjtcclxuZXhwb3J0IHtFbnRyaWVzUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2VudHJpZXMucGlwZVwiO1xyXG5leHBvcnQge0V4dHJhSXRlbVByb3BlcnRpZXNQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvZXh0cmEtaXRlbS1wcm9wZXJ0aWVzLnBpcGVcIjtcclxuZXhwb3J0IHtGaWx0ZXJQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvZmlsdGVyLnBpcGVcIjtcclxuZXhwb3J0IHtGaW5kUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2ZpbmQucGlwZVwiO1xyXG5leHBvcnQge0Zvcm1hdE51bWJlclBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9mb3JtYXQtbnVtYmVyLnBpcGVcIjtcclxuZXhwb3J0IHtHZXRPZmZzZXRQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvZ2V0LW9mZnNldC5waXBlXCI7XHJcbmV4cG9ydCB7R2V0VHlwZVBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9nZXQtdHlwZS5waXBlXCI7XHJcbmV4cG9ydCB7R2xvYmFsVGVtcGxhdGVQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvZ2xvYmFsLXRlbXBsYXRlLnBpcGVcIjtcclxuZXhwb3J0IHtHcm91cEJ5UGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2dyb3VwLWJ5LnBpcGVcIjtcclxuZXhwb3J0IHtJc1R5cGVQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvaXMtdHlwZS5waXBlXCI7XHJcbmV4cG9ydCB7Sm9pblBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9qb2luLnBpcGVcIjtcclxuZXhwb3J0IHtLZXlzUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2tleXMucGlwZVwiO1xyXG5leHBvcnQge01hcFBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9tYXAucGlwZVwiO1xyXG5leHBvcnQge01heFBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9tYXgucGlwZVwiO1xyXG5leHBvcnQge01pblBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9taW4ucGlwZVwiO1xyXG5leHBvcnQge1BvcFBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9wb3AucGlwZVwiO1xyXG5leHBvcnQge1JlZHVjZVBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9yZWR1Y2UucGlwZVwiO1xyXG5leHBvcnQge1JlbWFwUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL3JlbWFwLnBpcGVcIjtcclxuZXhwb3J0IHtSZXBsYWNlUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL3JlcGxhY2UucGlwZVwiO1xyXG5leHBvcnQge1JldmVyc2VQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvcmV2ZXJzZS5waXBlXCI7XHJcbmV4cG9ydCB7Um91bmRQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvcm91bmQucGlwZVwiO1xyXG5leHBvcnQge1NhZmVIdG1sUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL3NhZmUtaHRtbC5waXBlXCI7XHJcbmV4cG9ydCB7U2hpZnRQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvc2hpZnQucGlwZVwiO1xyXG5leHBvcnQge1NwbGl0UGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL3NwbGl0LnBpcGVcIjtcclxuZXhwb3J0IHtUcmFuc2xhdGVQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvdHJhbnNsYXRlLnBpcGVcIjtcclxuZXhwb3J0IHtWYWx1ZXNQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvdmFsdWVzLnBpcGVcIjtcclxuXHJcbmV4cG9ydCB7QXN5bmNNZXRob2RCYXNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9hc3luYy1tZXRob2QuYmFzZVwiO1xyXG5leHBvcnQge0FzeW5jTWV0aG9kRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9hc3luYy1tZXRob2QuZGlyZWN0aXZlXCI7XHJcbmV4cG9ydCB7QmFja2dyb3VuZERpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvYmFja2dyb3VuZC5kaXJlY3RpdmVcIjtcclxuZXhwb3J0IHtEeW5hbWljVGFibGVUZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvZHluYW1pYy10YWJsZS10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcclxuZXhwb3J0IHtHbG9iYWxUZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvZ2xvYmFsLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xyXG5leHBvcnQge0ljb25EaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL2ljb24uZGlyZWN0aXZlXCI7XHJcbmV4cG9ydCB7Tmd4VGVtcGxhdGVPdXRsZXREaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL25neC10ZW1wbGF0ZS1vdXRsZXQuZGlyZWN0aXZlXCI7XHJcbmV4cG9ydCB7UGFnaW5hdGlvbkRpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvcGFnaW5hdGlvbi5kaXJlY3RpdmVcIjtcclxuZXhwb3J0IHtQYWdpbmF0aW9uSXRlbURpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvcGFnaW5hdGlvbi1pdGVtLmRpcmVjdGl2ZVwiO1xyXG5leHBvcnQge1Jlc291cmNlSWZEaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL3Jlc291cmNlLWlmLmRpcmVjdGl2ZVwiO1xyXG5leHBvcnQge1N0aWNreURpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvc3RpY2t5LmRpcmVjdGl2ZVwiO1xyXG5leHBvcnQge1N0aWNreUNsYXNzRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9zdGlja3ktY2xhc3MuZGlyZWN0aXZlXCI7XHJcbmV4cG9ydCB7VW5vcmRlcmVkTGlzdEl0ZW1EaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL3Vub3JkZXJlZC1saXN0LWl0ZW0uZGlyZWN0aXZlXCI7XHJcbmV4cG9ydCB7VW5vcmRlcmVkTGlzdFRlbXBsYXRlRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy91bm9yZGVyZWQtbGlzdC10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcclxuXHJcbmV4cG9ydCB7VW5vcmRlcmVkTGlzdENvbXBvbmVudH0gZnJvbSBcIi4vbmd4LXV0aWxzL2NvbXBvbmVudHMvdW5vcmRlcmVkLWxpc3QvdW5vcmRlcmVkLWxpc3QuY29tcG9uZW50XCI7XHJcbmV4cG9ydCB7RHluYW1pY1RhYmxlQ29tcG9uZW50fSBmcm9tIFwiLi9uZ3gtdXRpbHMvY29tcG9uZW50cy9keW5hbWljLXRhYmxlL2R5bmFtaWMtdGFibGUuY29tcG9uZW50XCI7XHJcbmV4cG9ydCB7UGFnaW5hdGlvbk1lbnVDb21wb25lbnR9IGZyb20gXCIuL25neC11dGlscy9jb21wb25lbnRzL3BhZ2luYXRpb24tbWVudS9wYWdpbmF0aW9uLW1lbnUuY29tcG9uZW50XCI7XHJcblxyXG5leHBvcnQge05neFV0aWxzTW9kdWxlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvbmd4LXV0aWxzLm1vZHVsZVwiO1xyXG4iXX0=
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxXQUFXLEVBRVgsWUFBWSxFQUtaLGdCQUFnQixFQUtoQixZQUFZLEVBR1osZUFBZSxFQUtmLG1CQUFtQixFQUduQixXQUFXLEVBRVgsZUFBZSxFQUdmLHNCQUFzQixFQVF0QixtQkFBbUIsRUFRbkIscUJBQXFCLEVBUXJCLFdBQVcsRUFFWCxlQUFlLEVBRWYsV0FBVyxFQVFYLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osY0FBYyxFQUVkLGNBQWMsRUFDZCxXQUFXLEVBQ1gsYUFBYSxFQUNiLFlBQVksRUFDWixZQUFZLEVBRVosYUFBYSxFQUdiLGdCQUFnQixFQUdoQixhQUFhLEVBQ2hCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEVBQW1ELGVBQWUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ2hILE9BQU8sRUFBUyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFN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QTBDLENBQUM7QUFDekUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDbkYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDaEYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDdEcsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDekYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUNuRixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUNoRyxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUV4RyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUN0RyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUNuRyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUV6RyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xyXG4gICAgSVJlc29sdmVGYWN0b3J5LFxyXG4gICAgQ2FudmFzQ29sb3IsXHJcbiAgICBJSWNvblNlcnZpY2UsXHJcbiAgICBJQ09OX1NFUlZJQ0UsXHJcbiAgICBJVHJhbnNsYXRpb24sXHJcbiAgICBJVHJhbnNsYXRpb25zLFxyXG4gICAgSUxhbmd1YWdlU2V0dGluZ3MsXHJcbiAgICBJTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgTEFOR1VBR0VfU0VSVklDRSxcclxuICAgIElBdXRoU2VydmljZSxcclxuICAgIFJvdXRlVmFsaWRhdG9yLFxyXG4gICAgSVJvdXRlRGF0YSxcclxuICAgIElSb3V0ZSxcclxuICAgIEFVVEhfU0VSVklDRSxcclxuICAgIElBY2xDb21wb25lbnQsXHJcbiAgICBJUHJvbWlzZVNlcnZpY2UsXHJcbiAgICBQUk9NSVNFX1NFUlZJQ0UsXHJcbiAgICBJV2FzaSxcclxuICAgIElXYXNtRXhwb3J0cyxcclxuICAgIElXYXNtLFxyXG4gICAgSVdhc21Bc3luYyxcclxuICAgIFdBU0lfSU1QTEVNRU5UQVRJT04sXHJcbiAgICBJUm91dGVTdGF0ZUluZm8sXHJcbiAgICBOYXZpZ2F0aW9uVXJsUGFyYW0sXHJcbiAgICBTdG9yYWdlTW9kZSxcclxuICAgIElUb2FzdGVyU2VydmljZSxcclxuICAgIFRPQVNURVJfU0VSVklDRSxcclxuICAgIElBc3luY01lc3NhZ2UsXHJcbiAgICBBc3luY01ldGhvZCxcclxuICAgIFVub3JlZGVyZWRMaXN0VGVtcGxhdGUsXHJcbiAgICBVbm9yZGVyZWRMaXN0VGVtcGxhdGVzLFxyXG4gICAgVW5vcmRlcmVkTGlzdFN0eWxlLFxyXG4gICAgSUFqYXhSZXF1ZXN0RGV0YWlscyxcclxuICAgIEFqYXhSZXF1ZXN0Q2FsbGJhY2ssXHJcbiAgICBJU2NyaXB0UHJvbWlzZXMsXHJcbiAgICBJU3R5bGVQcm9taXNlcyxcclxuICAgIElTZWFyY2hPYnNlcnZhYmxlLFxyXG4gICAgRmFjdG9yeURlcGVuZGVuY2llcyxcclxuICAgIElUaW1lcixcclxuICAgIElFeHRyYVByb3BlcnRpZXMsXHJcbiAgICBJR3JvdXBNYXAsXHJcbiAgICBUcmFuc2xhdGlvblF1ZXJ5LFxyXG4gICAgSVBhZ2VJbmZvLFxyXG4gICAgSVBhZ2luYXRpb25EYXRhLFxyXG4gICAgUGFnaW5hdGlvbkRhdGFMb2FkZXIsXHJcbiAgICBQYWdpbmF0aW9uSXRlbUNvbnRleHQsXHJcbiAgICBJSHR0cEhlYWRlcnMsXHJcbiAgICBJSHR0cFBhcmFtcyxcclxuICAgIElSZXF1ZXN0T3B0aW9ucyxcclxuICAgIElJc3N1ZUNvbnRleHQsXHJcbiAgICBJUHJvZ3Jlc3MsXHJcbiAgICBQcm9ncmVzc0xpc3RlbmVyLFxyXG4gICAgUHJvbWlzZUV4ZWN1dG9yLFxyXG4gICAgSHR0cFByb21pc2UsXHJcbiAgICBJSHR0cFNlcnZpY2UsXHJcbiAgICBFWFBSRVNTX1JFUVVFU1QsXHJcbiAgICBJQXBpU2VydmljZSxcclxuICAgIEFQSV9TRVJWSUNFLFxyXG4gICAgSU9wZW5BcGlTY2hlbWFQcm9wZXJ0eSxcclxuICAgIElPcGVuQXBpU2NoZW1hLFxyXG4gICAgSU9wZW5BcGlTY2hlbWFzLFxyXG4gICAgSVRhYmxlQ29sdW1ucyxcclxuICAgIElUYWJsZVRlbXBsYXRlLFxyXG4gICAgSVRhYmxlVGVtcGxhdGVzLFxyXG4gICAgVGFibGVEYXRhTG9hZGVyLFxyXG4gICAgUmVzb3VyY2VJZkNvbnRleHQsXHJcbiAgICBBUFBfQkFTRV9VUkwsXHJcbiAgICBJQ29uZmlndXJhdGlvbixcclxuICAgIElDb25maWdTZXJ2aWNlLFxyXG4gICAgQ09ORklHX1NFUlZJQ0UsXHJcbiAgICBCQVNFX0NPTkZJRyxcclxuICAgIFNDUklQVF9QQVJBTVMsXHJcbiAgICBST09UX0VMRU1FTlQsXHJcbiAgICBSRVNJWkVfREVMQVksXHJcbiAgICBFcnJvckhhbmRsZXJDYWxsYmFjayxcclxuICAgIEVSUk9SX0hBTkRMRVIsXHJcbiAgICBHbG9iYWxDb21wb25lbnRNb2RpZmllcixcclxuICAgIElHbG9iYWxUZW1wbGF0ZXMsXHJcbiAgICBHTE9CQUxfVEVNUExBVEVTLFxyXG4gICAgQXBwSW5pdGlhbGl6ZXJGdW5jLFxyXG4gICAgSU1vZHVsZUNvbmZpZyxcclxuICAgIFZhbHVlZFByb21pc2VcclxufSBmcm9tIFwiLi9uZ3gtdXRpbHMvY29tbW9uLXR5cGVzXCI7XHJcblxyXG5leHBvcnQge0FqYXhSZXF1ZXN0SGFuZGxlcn0gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2FqYXgtcmVxdWVzdC1oYW5kbGVyXCI7XHJcbmV4cG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy9vYmplY3QudXRpbHNcIjtcclxuZXhwb3J0IHtEYXRlVXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy9kYXRlLnV0aWxzXCI7XHJcbmV4cG9ydCB7Q2FudmFzVXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy9jYW52YXMudXRpbHNcIjtcclxuZXhwb3J0IHtGaWxlVXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy9maWxlLnV0aWxzXCI7XHJcbmV4cG9ydCB7R2VuZXJpY1ZhbHVlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvZ2VuZXJpYy12YWx1ZVwiO1xyXG5leHBvcnQge0ZpbGVTeXN0ZW1FbnRyeU9wZW5SZXN1bHQsIEZpbGVTeXN0ZW1FbnRyeU9wZW5DYiwgRmlsZVN5c3RlbUVudHJ5fSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvZmlsZS1zeXN0ZW1cIjtcclxuZXhwb3J0IHtJU2hhcGUsIFJlY3QsIENpcmNsZSwgUG9pbnR9IGZyb20gXCIuL25neC11dGlscy91dGlscy9nZW9tZXRyeVwiO1xyXG5leHBvcnQge0luaXRpYWxpemVyfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvaW5pdGlhbGl6ZXJcIjtcclxuZXhwb3J0IHtKU09OZm59IGZyb20gXCIuL25neC11dGlscy91dGlscy9qc29uZm5cIjtcclxuZXhwb3J0IHtSZWZsZWN0VXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy9yZWZsZWN0LnV0aWxzXCI7XHJcbmV4cG9ydCB7TG9hZGVyVXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy9sb2FkZXIudXRpbHNcIjtcclxuZXhwb3J0IHtNYXRoVXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy9tYXRoLnV0aWxzXCI7XHJcbmV4cG9ydCB7QXV0aEd1YXJkfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvYXV0aC5ndWFyZFwiO1xyXG5leHBvcnQge09ic2VydmFibGVVdGlscywgSVN1YnNjcmliZXJJbmZvfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvb2JzZXJ2YWJsZS51dGlsc1wiO1xyXG5leHBvcnQge1N0cmluZ1V0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvc3RyaW5nLnV0aWxzXCI7XHJcbmV4cG9ydCB7QXJyYXlVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2FycmF5LnV0aWxzXCI7XHJcbmV4cG9ydCB7U2V0VXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy9zZXQudXRpbHNcIjtcclxuZXhwb3J0IHtUaW1lclV0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvdGltZXIudXRpbHNcIjtcclxuZXhwb3J0IHtVbmlxdWVVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL3VuaXF1ZS51dGlsc1wiO1xyXG5leHBvcnQge1ZlY3Rvcn0gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL3ZlY3RvclwiO1xyXG5cclxuZXhwb3J0IHtVbml2ZXJzYWxTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvdW5pdmVyc2FsLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtXYXNtU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL3dhc20uc2VydmljZVwiO1xyXG5leHBvcnQge0FjbFNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9hY2wuc2VydmljZVwiO1xyXG5leHBvcnQge0FwaVNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9hcGkuc2VydmljZVwiO1xyXG5leHBvcnQge1N0YXRpY0F1dGhTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvYXV0aC5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7QmFzZUh0dHBDbGllbnR9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9iYXNlLWh0dHAuY2xpZW50XCI7XHJcbmV4cG9ydCB7QmFzZUh0dHBTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvYmFzZS1odHRwLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvY29uZmlnLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtFcnJvckhhbmRsZXJTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvZXJyb3ItaGFuZGxlci5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7RXZlbnRzU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7Rm9ybWF0dGVyU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2Zvcm1hdHRlci5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7R2xvYmFsVGVtcGxhdGVTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvZ2xvYmFsLXRlbXBsYXRlLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtJY29uU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2ljb24uc2VydmljZVwiO1xyXG5leHBvcnQge0xhbmd1YWdlU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2xhbmd1YWdlLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtMb2NhbEh0dHBTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvbG9jYWwtaHR0cC5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7T3BlbkFwaVNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9vcGVuLWFwaS5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7SVN0YXRlSW5mbywgU3RhdGVTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvc3RhdGUuc2VydmljZVwiO1xyXG5leHBvcnQge1N0YXRpY0xhbmd1YWdlU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL3N0YXRpYy1sYW5ndWFnZS5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7U3RvcmFnZVNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtDb25zb2xlVG9hc3RlclNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy90b2FzdGVyLnNlcnZpY2VcIjtcclxuZXhwb3J0IHtJVXJsRGljdGlvbmFyeSwgVHJhbnNsYXRlZFVybFNlcmlhbGl6ZXJ9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy90cmFuc2xhdGVkLXVybC5zZXJpYWxpemVyXCI7XHJcbmV4cG9ydCB7UHJvbWlzZVNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9wcm9taXNlLnNlcnZpY2VcIjtcclxuXHJcbmV4cG9ydCB7UmVzaXplRXZlbnRQbHVnaW59IGZyb20gXCIuL25neC11dGlscy9wbHVnaW5zL3Jlc2l6ZS1ldmVudC5wbHVnaW5cIjtcclxuZXhwb3J0IHtTY3JvbGxFdmVudFBsdWdpbn0gZnJvbSBcIi4vbmd4LXV0aWxzL3BsdWdpbnMvc2Nyb2xsLWV2ZW50LnBsdWdpblwiO1xyXG5cclxuZXhwb3J0IHtDaHVua1BpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9jaHVuay5waXBlXCI7XHJcbmV4cG9ydCB7RW50cmllc1BpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9lbnRyaWVzLnBpcGVcIjtcclxuZXhwb3J0IHtFeHRyYUl0ZW1Qcm9wZXJ0aWVzUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2V4dHJhLWl0ZW0tcHJvcGVydGllcy5waXBlXCI7XHJcbmV4cG9ydCB7RmlsdGVyUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2ZpbHRlci5waXBlXCI7XHJcbmV4cG9ydCB7RmluZFBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9maW5kLnBpcGVcIjtcclxuZXhwb3J0IHtGb3JtYXROdW1iZXJQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvZm9ybWF0LW51bWJlci5waXBlXCI7XHJcbmV4cG9ydCB7R2V0T2Zmc2V0UGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2dldC1vZmZzZXQucGlwZVwiO1xyXG5leHBvcnQge0dldFR5cGVQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvZ2V0LXR5cGUucGlwZVwiO1xyXG5leHBvcnQge0dsb2JhbFRlbXBsYXRlUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2dsb2JhbC10ZW1wbGF0ZS5waXBlXCI7XHJcbmV4cG9ydCB7R3JvdXBCeVBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9ncm91cC1ieS5waXBlXCI7XHJcbmV4cG9ydCB7SXNUeXBlUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2lzLXR5cGUucGlwZVwiO1xyXG5leHBvcnQge0pvaW5QaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvam9pbi5waXBlXCI7XHJcbmV4cG9ydCB7S2V5c1BpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9rZXlzLnBpcGVcIjtcclxuZXhwb3J0IHtNYXBQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvbWFwLnBpcGVcIjtcclxuZXhwb3J0IHtNYXhQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvbWF4LnBpcGVcIjtcclxuZXhwb3J0IHtNaW5QaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvbWluLnBpcGVcIjtcclxuZXhwb3J0IHtQb3BQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvcG9wLnBpcGVcIjtcclxuZXhwb3J0IHtSZWR1Y2VQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvcmVkdWNlLnBpcGVcIjtcclxuZXhwb3J0IHtSZW1hcFBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9yZW1hcC5waXBlXCI7XHJcbmV4cG9ydCB7UmVwbGFjZVBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9yZXBsYWNlLnBpcGVcIjtcclxuZXhwb3J0IHtSZXZlcnNlUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL3JldmVyc2UucGlwZVwiO1xyXG5leHBvcnQge1JvdW5kUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL3JvdW5kLnBpcGVcIjtcclxuZXhwb3J0IHtTYWZlSHRtbFBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9zYWZlLWh0bWwucGlwZVwiO1xyXG5leHBvcnQge1NoaWZ0UGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL3NoaWZ0LnBpcGVcIjtcclxuZXhwb3J0IHtTcGxpdFBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9zcGxpdC5waXBlXCI7XHJcbmV4cG9ydCB7VHJhbnNsYXRlUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL3RyYW5zbGF0ZS5waXBlXCI7XHJcbmV4cG9ydCB7VmFsdWVzUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL3ZhbHVlcy5waXBlXCI7XHJcblxyXG5leHBvcnQge0FzeW5jTWV0aG9kQmFzZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvYXN5bmMtbWV0aG9kLmJhc2VcIjtcclxuZXhwb3J0IHtBc3luY01ldGhvZERpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvYXN5bmMtbWV0aG9kLmRpcmVjdGl2ZVwiO1xyXG5leHBvcnQge0JhY2tncm91bmREaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL2JhY2tncm91bmQuZGlyZWN0aXZlXCI7XHJcbmV4cG9ydCB7RHluYW1pY1RhYmxlVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL2R5bmFtaWMtdGFibGUtdGVtcGxhdGUuZGlyZWN0aXZlXCI7XHJcbmV4cG9ydCB7R2xvYmFsVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL2dsb2JhbC10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcclxuZXhwb3J0IHtJY29uRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9pY29uLmRpcmVjdGl2ZVwiO1xyXG5leHBvcnQge05neFRlbXBsYXRlT3V0bGV0RGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9uZ3gtdGVtcGxhdGUtb3V0bGV0LmRpcmVjdGl2ZVwiO1xyXG5leHBvcnQge1BhZ2luYXRpb25EaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL3BhZ2luYXRpb24uZGlyZWN0aXZlXCI7XHJcbmV4cG9ydCB7UGFnaW5hdGlvbkl0ZW1EaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL3BhZ2luYXRpb24taXRlbS5kaXJlY3RpdmVcIjtcclxuZXhwb3J0IHtSZXNvdXJjZUlmRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9yZXNvdXJjZS1pZi5kaXJlY3RpdmVcIjtcclxuZXhwb3J0IHtTdGlja3lEaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL3N0aWNreS5kaXJlY3RpdmVcIjtcclxuZXhwb3J0IHtTdGlja3lDbGFzc0RpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvc3RpY2t5LWNsYXNzLmRpcmVjdGl2ZVwiO1xyXG5leHBvcnQge1Vub3JkZXJlZExpc3RJdGVtRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy91bm9yZGVyZWQtbGlzdC1pdGVtLmRpcmVjdGl2ZVwiO1xyXG5leHBvcnQge1Vub3JkZXJlZExpc3RUZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvdW5vcmRlcmVkLWxpc3QtdGVtcGxhdGUuZGlyZWN0aXZlXCI7XHJcblxyXG5leHBvcnQge1Vub3JkZXJlZExpc3RDb21wb25lbnR9IGZyb20gXCIuL25neC11dGlscy9jb21wb25lbnRzL3Vub3JkZXJlZC1saXN0L3Vub3JkZXJlZC1saXN0LmNvbXBvbmVudFwiO1xyXG5leHBvcnQge0R5bmFtaWNUYWJsZUNvbXBvbmVudH0gZnJvbSBcIi4vbmd4LXV0aWxzL2NvbXBvbmVudHMvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlLmNvbXBvbmVudFwiO1xyXG5leHBvcnQge1BhZ2luYXRpb25NZW51Q29tcG9uZW50fSBmcm9tIFwiLi9uZ3gtdXRpbHMvY29tcG9uZW50cy9wYWdpbmF0aW9uLW1lbnUvcGFnaW5hdGlvbi1tZW51LmNvbXBvbmVudFwiO1xyXG5cclxuZXhwb3J0IHtOZ3hVdGlsc01vZHVsZX0gZnJvbSBcIi4vbmd4LXV0aWxzL25neC11dGlscy5tb2R1bGVcIjtcclxuIl19
@@ -2716,12 +2716,13 @@ class FormatterService {
2716
2716
  roundNumber(value, precision, divider) {
2717
2717
  return MathUtils.round(value, this.getPrecision(precision), divider || this.defaultDivider);
2718
2718
  }
2719
- formatNumber(value, format, precision, divider) {
2719
+ formatNumber(value, format, precision, divider, minDigits) {
2720
2720
  precision = this.getPrecision(precision);
2721
+ minDigits = minDigits !== null && minDigits !== void 0 ? minDigits : precision;
2721
2722
  divider = divider || this.defaultDivider;
2722
2723
  const num = ObjectUtils.isNumber(value) ? value : parseFloat(value) || 0;
2723
2724
  const str = (num / divider).toLocaleString(this.language.currentLanguage, {
2724
- minimumFractionDigits: precision,
2725
+ minimumFractionDigits: minDigits,
2725
2726
  maximumFractionDigits: precision,
2726
2727
  useGrouping: false
2727
2728
  });
@@ -2979,9 +2980,21 @@ class LanguageService extends StaticLanguageService {
2979
2980
  this.languageSettings.next(settings);
2980
2981
  const devLanguages = settings.devLanguages || [];
2981
2982
  this.languageList = (settings.languages || []).filter(lang => {
2983
+ var _a;
2984
+ const unavailable = (_a = settings.settings[lang]) === null || _a === void 0 ? void 0 : _a.unavailable;
2985
+ if (unavailable) {
2986
+ const parts = unavailable.split("/");
2987
+ const value = parts[0] || parts[1];
2988
+ const flags = parts.length > 1 ? parts[parts.length - 1] : "g";
2989
+ if (new RegExp(value, flags).test(this.config.baseDomain))
2990
+ return false;
2991
+ }
2982
2992
  return devLanguages.indexOf(lang) < 0;
2983
2993
  });
2984
- const lang = this.languages.indexOf(defaultLanguage) < 0 ? settings.defaultLanguage : defaultLanguage;
2994
+ if (this.languageList.length === 0) {
2995
+ this.languageList = [defaultLanguage];
2996
+ }
2997
+ const lang = this.languages.indexOf(defaultLanguage) < 0 ? settings.defaultLanguage || this.languageList[0] : defaultLanguage;
2985
2998
  yield this.useLanguage(lang);
2986
2999
  this.events.languageChanged.emit(lang);
2987
3000
  });
@@ -3033,7 +3046,7 @@ class LanguageService extends StaticLanguageService {
3033
3046
  return this.translationRequests[lang];
3034
3047
  }
3035
3048
  loadSettings() {
3036
- this.settingsPromise = this.settingsPromise || this.client.get(`${this.config.translationUrl}languageSettings`).toPromise()
3049
+ this.settingsPromise = this.settingsPromise || (this.client.get(`${this.config.translationUrl}languageSettings`).toPromise())
3037
3050
  .then((settings) => {
3038
3051
  return settings;
3039
3052
  }, () => {
@@ -3044,7 +3057,7 @@ class LanguageService extends StaticLanguageService {
3044
3057
  settings: {
3045
3058
  de: {},
3046
3059
  hu: {},
3047
- end: {}
3060
+ en: {}
3048
3061
  }
3049
3062
  };
3050
3063
  });