fantasy-ngzorro 1.3.33 → 1.3.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/fantasy-ngzorro.umd.js +276 -100
- package/bundles/fantasy-ngzorro.umd.js.map +1 -1
- package/bundles/fantasy-ngzorro.umd.min.js +2 -2
- package/bundles/fantasy-ngzorro.umd.min.js.map +1 -1
- package/esm2015/hd-form/hd-form.component.js +2 -2
- package/esm2015/utils.js +192 -101
- package/esm5/hd-form/hd-form.component.js +2 -2
- package/esm5/utils.js +278 -101
- package/fantasy-ngzorro.metadata.json +1 -1
- package/fesm2015/fantasy-ngzorro.js +191 -100
- package/fesm2015/fantasy-ngzorro.js.map +1 -1
- package/fesm5/fantasy-ngzorro.js +276 -100
- package/fesm5/fantasy-ngzorro.js.map +1 -1
- package/package.json +1 -1
- package/utils.d.ts +29 -5
package/esm5/utils.js
CHANGED
|
@@ -2,76 +2,117 @@
|
|
|
2
2
|
* @fileoverview added by tsickle
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
|
+
import * as tslib_1 from "tslib";
|
|
6
|
+
import { round } from 'lodash';
|
|
5
7
|
// 工具类
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
8
|
+
/** @type {?} */
|
|
9
|
+
export var Utils = {
|
|
10
|
+
/**
|
|
11
|
+
* 填充select控件选项
|
|
12
|
+
* @param formList 入参数组 Array<any>
|
|
13
|
+
* @param name 需要填充options的属性名称
|
|
14
|
+
* @param options 选项列表
|
|
15
|
+
*/
|
|
16
|
+
fillSelectOption: /**
|
|
17
|
+
* 填充select控件选项
|
|
18
|
+
* @param {?} formList 入参数组 Array<any>
|
|
19
|
+
* @param {?} name 需要填充options的属性名称
|
|
20
|
+
* @param {?} options 选项列表
|
|
21
|
+
* @return {?}
|
|
22
|
+
*/
|
|
23
|
+
function (formList, name, options) {
|
|
24
|
+
/** @type {?} */
|
|
25
|
+
var returnData = formList;
|
|
26
|
+
if (!returnData || !returnData.length) {
|
|
27
|
+
return returnData;
|
|
23
28
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
*/
|
|
31
|
-
function (list, obj) {
|
|
32
|
-
/** @type {?} */
|
|
33
|
-
var returnData = [];
|
|
34
|
-
if (!list || !list.length) {
|
|
35
|
-
return returnData;
|
|
36
|
-
}
|
|
37
|
-
/** @type {?} */
|
|
38
|
-
var length = list.length;
|
|
39
|
-
for (var i = 0; i < length; i++) {
|
|
40
|
-
if (obj[list[i].name]) {
|
|
41
|
-
list[i].value = obj[list[i].name];
|
|
29
|
+
/** @type {?} */
|
|
30
|
+
var length = formList.length;
|
|
31
|
+
for (var i = 0; i < length; i++) {
|
|
32
|
+
if (returnData[i].name === name) {
|
|
33
|
+
returnData[i].selectOption.selectList = options;
|
|
34
|
+
}
|
|
42
35
|
}
|
|
43
|
-
}
|
|
44
|
-
return list;
|
|
45
|
-
}, ɵ2 = /**
|
|
46
|
-
* @param {?} list
|
|
47
|
-
* @param {?=} option
|
|
48
|
-
* @return {?}
|
|
49
|
-
*/
|
|
50
|
-
function (list, option) {
|
|
51
|
-
/** @type {?} */
|
|
52
|
-
var returnData = [];
|
|
53
|
-
if (!list || !list.length) {
|
|
54
36
|
return returnData;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
37
|
+
},
|
|
38
|
+
/**
|
|
39
|
+
* 填充FormItem数组:针对入参list的每一个FormItem,判断obj中是否有对应的name字段,如果有,则填充value。
|
|
40
|
+
* @param list 入参数组 Array<FormItem>
|
|
41
|
+
* @param obj 需要填充到list的属性
|
|
42
|
+
*/
|
|
43
|
+
fillArrayFormItem: /**
|
|
44
|
+
* 填充FormItem数组:针对入参list的每一个FormItem,判断obj中是否有对应的name字段,如果有,则填充value。
|
|
45
|
+
* @param {?} list 入参数组 Array<FormItem>
|
|
46
|
+
* @param {?} obj 需要填充到list的属性
|
|
47
|
+
* @return {?}
|
|
48
|
+
*/
|
|
49
|
+
function (list, obj) {
|
|
50
|
+
/** @type {?} */
|
|
51
|
+
var returnData = [];
|
|
52
|
+
if (!list || !list.length) {
|
|
53
|
+
return returnData;
|
|
54
|
+
}
|
|
55
|
+
/** @type {?} */
|
|
56
|
+
var length = list.length;
|
|
57
|
+
for (var i = 0; i < length; i++) {
|
|
58
|
+
if (obj[list[i].name]) {
|
|
59
|
+
list[i].value = obj[list[i].name];
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return list;
|
|
63
|
+
},
|
|
64
|
+
/**
|
|
65
|
+
* 数组转换成选择器的选项数组
|
|
66
|
+
* @param list 入参数组 字符串数组或对象数组
|
|
67
|
+
* @param option 转换选项
|
|
68
|
+
* 注:list为字符串数组,option不需要传,按照标准的label、value转换
|
|
69
|
+
*/
|
|
70
|
+
arrayToSelectOptionList: /**
|
|
71
|
+
* 数组转换成选择器的选项数组
|
|
72
|
+
* @param {?} list 入参数组 字符串数组或对象数组
|
|
73
|
+
* @param {?=} option 转换选项
|
|
74
|
+
* 注:list为字符串数组,option不需要传,按照标准的label、value转换
|
|
75
|
+
* @return {?}
|
|
76
|
+
*/
|
|
77
|
+
function (list, option) {
|
|
78
|
+
/** @type {?} */
|
|
79
|
+
var returnData = [];
|
|
80
|
+
if (!list || !list.length) {
|
|
81
|
+
return returnData;
|
|
82
|
+
}
|
|
83
|
+
if (option) {
|
|
84
|
+
if (option.labelTip && option.valueTip) {
|
|
85
|
+
list.forEach((/**
|
|
86
|
+
* @param {?} item
|
|
87
|
+
* @return {?}
|
|
88
|
+
*/
|
|
89
|
+
function (item) {
|
|
90
|
+
/** @type {?} */
|
|
91
|
+
var returnItem = item;
|
|
92
|
+
returnItem.label = item[option.label];
|
|
93
|
+
returnItem.value = item[option.value];
|
|
94
|
+
if (option.valueTip) {
|
|
95
|
+
returnItem[option.valueTip] = item[option.value];
|
|
96
|
+
}
|
|
97
|
+
if (option.labelTip) {
|
|
98
|
+
returnItem[option.labelTip] = item[option.label];
|
|
99
|
+
}
|
|
100
|
+
returnData.push(returnItem);
|
|
101
|
+
}));
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
list.forEach((/**
|
|
105
|
+
* @param {?} item
|
|
106
|
+
* @return {?}
|
|
107
|
+
*/
|
|
108
|
+
function (item) {
|
|
109
|
+
/** @type {?} */
|
|
110
|
+
var returnItem = item;
|
|
111
|
+
returnItem.label = item[option.label];
|
|
112
|
+
returnItem.value = item[option.value];
|
|
113
|
+
returnData.push(returnItem);
|
|
114
|
+
}));
|
|
115
|
+
}
|
|
75
116
|
}
|
|
76
117
|
else {
|
|
77
118
|
list.forEach((/**
|
|
@@ -80,50 +121,186 @@ function (list, option) {
|
|
|
80
121
|
*/
|
|
81
122
|
function (item) {
|
|
82
123
|
/** @type {?} */
|
|
83
|
-
var returnItem =
|
|
84
|
-
returnItem.label = item
|
|
85
|
-
returnItem.value = item
|
|
124
|
+
var returnItem = {};
|
|
125
|
+
returnItem.label = item;
|
|
126
|
+
returnItem.value = item;
|
|
86
127
|
returnData.push(returnItem);
|
|
87
128
|
}));
|
|
88
129
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
130
|
+
return returnData;
|
|
131
|
+
},
|
|
132
|
+
/**
|
|
133
|
+
* 求和
|
|
134
|
+
* @param nums 数组
|
|
135
|
+
* @param precision 精度
|
|
136
|
+
*/
|
|
137
|
+
add: /**
|
|
138
|
+
* 求和
|
|
139
|
+
* @param {?} nums 数组
|
|
140
|
+
* @param {?=} precision 精度
|
|
141
|
+
* @return {?}
|
|
142
|
+
*/
|
|
143
|
+
function (nums, precision) {
|
|
144
|
+
var e_1, _a;
|
|
145
|
+
if (precision === void 0) { precision = 2; }
|
|
146
|
+
if (!Array.isArray(nums)) {
|
|
147
|
+
throw new Error('参数必须是数组');
|
|
148
|
+
}
|
|
149
|
+
if (nums.some((/**
|
|
150
|
+
* @param {?} num
|
|
93
151
|
* @return {?}
|
|
94
152
|
*/
|
|
95
|
-
function (
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
|
|
153
|
+
function (num) { return typeof num !== 'number'; }))) {
|
|
154
|
+
throw new Error('数组元素必须是数字');
|
|
155
|
+
}
|
|
156
|
+
/** @type {?} */
|
|
157
|
+
var result = 0;
|
|
158
|
+
try {
|
|
159
|
+
for (var nums_1 = tslib_1.__values(nums), nums_1_1 = nums_1.next(); !nums_1_1.done; nums_1_1 = nums_1.next()) {
|
|
160
|
+
var num = nums_1_1.value;
|
|
161
|
+
result += num;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
165
|
+
finally {
|
|
166
|
+
try {
|
|
167
|
+
if (nums_1_1 && !nums_1_1.done && (_a = nums_1.return)) _a.call(nums_1);
|
|
168
|
+
}
|
|
169
|
+
finally { if (e_1) throw e_1.error; }
|
|
170
|
+
}
|
|
171
|
+
return round(result, precision);
|
|
172
|
+
},
|
|
107
173
|
/**
|
|
108
|
-
*
|
|
109
|
-
* @param
|
|
110
|
-
* @param
|
|
111
|
-
|
|
174
|
+
* 减法
|
|
175
|
+
* @param nums 数组
|
|
176
|
+
* @param precision 精度
|
|
177
|
+
*/
|
|
178
|
+
subtract: /**
|
|
179
|
+
* 减法
|
|
180
|
+
* @param {?} nums 数组
|
|
181
|
+
* @param {?=} precision 精度
|
|
182
|
+
* @return {?}
|
|
112
183
|
*/
|
|
113
|
-
|
|
184
|
+
function (nums, precision) {
|
|
185
|
+
var e_2, _a;
|
|
186
|
+
if (precision === void 0) { precision = 2; }
|
|
187
|
+
if (!Array.isArray(nums)) {
|
|
188
|
+
throw new Error('参数必须是数组');
|
|
189
|
+
}
|
|
190
|
+
if (nums.some((/**
|
|
191
|
+
* @param {?} num
|
|
192
|
+
* @return {?}
|
|
193
|
+
*/
|
|
194
|
+
function (num) { return typeof num !== 'number'; }))) {
|
|
195
|
+
throw new Error('数组元素必须是数字');
|
|
196
|
+
}
|
|
197
|
+
if (nums.length < 2) {
|
|
198
|
+
throw new Error('减法入参数量至少要2个!');
|
|
199
|
+
}
|
|
200
|
+
/** @type {?} */
|
|
201
|
+
var result = nums.shift();
|
|
202
|
+
try {
|
|
203
|
+
for (var nums_2 = tslib_1.__values(nums), nums_2_1 = nums_2.next(); !nums_2_1.done; nums_2_1 = nums_2.next()) {
|
|
204
|
+
var num = nums_2_1.value;
|
|
205
|
+
result -= num;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
209
|
+
finally {
|
|
210
|
+
try {
|
|
211
|
+
if (nums_2_1 && !nums_2_1.done && (_a = nums_2.return)) _a.call(nums_2);
|
|
212
|
+
}
|
|
213
|
+
finally { if (e_2) throw e_2.error; }
|
|
214
|
+
}
|
|
215
|
+
return round(result, precision);
|
|
216
|
+
},
|
|
114
217
|
/**
|
|
115
|
-
*
|
|
116
|
-
* @param
|
|
117
|
-
* @param
|
|
218
|
+
* 乘法
|
|
219
|
+
* @param nums 数组
|
|
220
|
+
* @param precision 精度
|
|
118
221
|
*/
|
|
119
|
-
|
|
222
|
+
multiply: /**
|
|
223
|
+
* 乘法
|
|
224
|
+
* @param {?} nums 数组
|
|
225
|
+
* @param {?=} precision 精度
|
|
226
|
+
* @return {?}
|
|
227
|
+
*/
|
|
228
|
+
function (nums, precision) {
|
|
229
|
+
var e_3, _a;
|
|
230
|
+
if (precision === void 0) { precision = 2; }
|
|
231
|
+
if (!Array.isArray(nums)) {
|
|
232
|
+
throw new Error('参数必须是数组');
|
|
233
|
+
}
|
|
234
|
+
if (nums.some((/**
|
|
235
|
+
* @param {?} num
|
|
236
|
+
* @return {?}
|
|
237
|
+
*/
|
|
238
|
+
function (num) { return typeof num !== 'number'; }))) {
|
|
239
|
+
throw new Error('数组元素必须是数字');
|
|
240
|
+
}
|
|
241
|
+
/** @type {?} */
|
|
242
|
+
var result = 1;
|
|
243
|
+
try {
|
|
244
|
+
for (var nums_3 = tslib_1.__values(nums), nums_3_1 = nums_3.next(); !nums_3_1.done; nums_3_1 = nums_3.next()) {
|
|
245
|
+
var num = nums_3_1.value;
|
|
246
|
+
result = result * num;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
250
|
+
finally {
|
|
251
|
+
try {
|
|
252
|
+
if (nums_3_1 && !nums_3_1.done && (_a = nums_3.return)) _a.call(nums_3);
|
|
253
|
+
}
|
|
254
|
+
finally { if (e_3) throw e_3.error; }
|
|
255
|
+
}
|
|
256
|
+
return round(result, precision);
|
|
257
|
+
},
|
|
120
258
|
/**
|
|
121
|
-
*
|
|
122
|
-
* @param
|
|
123
|
-
* @param
|
|
124
|
-
|
|
259
|
+
* 除法
|
|
260
|
+
* @param nums 数组
|
|
261
|
+
* @param precision 精度
|
|
262
|
+
*/
|
|
263
|
+
divide: /**
|
|
264
|
+
* 除法
|
|
265
|
+
* @param {?} nums 数组
|
|
266
|
+
* @param {?=} precision 精度
|
|
267
|
+
* @return {?}
|
|
125
268
|
*/
|
|
126
|
-
|
|
269
|
+
function (nums, precision) {
|
|
270
|
+
var e_4, _a;
|
|
271
|
+
if (precision === void 0) { precision = 2; }
|
|
272
|
+
if (!Array.isArray(nums)) {
|
|
273
|
+
throw new Error('参数必须是数组');
|
|
274
|
+
}
|
|
275
|
+
if (nums.some((/**
|
|
276
|
+
* @param {?} num
|
|
277
|
+
* @return {?}
|
|
278
|
+
*/
|
|
279
|
+
function (num) { return typeof num !== 'number'; }))) {
|
|
280
|
+
throw new Error('数组元素必须是数字');
|
|
281
|
+
}
|
|
282
|
+
if (nums.length < 2) {
|
|
283
|
+
throw new Error('除法入参数量至少要2个!');
|
|
284
|
+
}
|
|
285
|
+
/** @type {?} */
|
|
286
|
+
var result = nums.shift();
|
|
287
|
+
try {
|
|
288
|
+
for (var nums_4 = tslib_1.__values(nums), nums_4_1 = nums_4.next(); !nums_4_1.done; nums_4_1 = nums_4.next()) {
|
|
289
|
+
var num = nums_4_1.value;
|
|
290
|
+
if (num === 0) {
|
|
291
|
+
throw new Error('除数不能为0!');
|
|
292
|
+
}
|
|
293
|
+
result = result / num;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
297
|
+
finally {
|
|
298
|
+
try {
|
|
299
|
+
if (nums_4_1 && !nums_4_1.done && (_a = nums_4.return)) _a.call(nums_4);
|
|
300
|
+
}
|
|
301
|
+
finally { if (e_4) throw e_4.error; }
|
|
302
|
+
}
|
|
303
|
+
return round(result, precision);
|
|
304
|
+
}
|
|
127
305
|
};
|
|
128
|
-
export { ɵ0, ɵ1, ɵ2 };
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9mYW50YXN5LW5nem9ycm8vIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQVVvQixVQUFVLFFBQW9CLEVBQUUsSUFBWSxFQUFFLE9BQW1COztRQUM3RSxVQUFVLEdBQUcsUUFBUTtJQUN6QixJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtRQUNyQyxPQUFPLFVBQVUsQ0FBQztLQUNuQjs7UUFDSyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU07SUFDOUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMvQixJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQy9CLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQztTQUNqRDtLQUNGO0lBQ0QsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQzs7Ozs7QUFPa0IsVUFBVSxJQUFxQixFQUFFLEdBQVc7O1FBQ3pELFVBQVUsR0FBRyxFQUFFO0lBQ25CLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ3pCLE9BQU8sVUFBVSxDQUFDO0tBQ25COztRQUNLLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTTtJQUMxQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQy9CLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkM7S0FDRjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQzs7Ozs7QUFRd0IsVUFBVSxJQUFnQixFQUFFLE1BQStFOztRQUM5SCxVQUFVLEdBQUcsRUFBRTtJQUNuQixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUN6QixPQUFPLFVBQVUsQ0FBQztLQUNuQjtJQUNELElBQUksTUFBTSxFQUFFO1FBQ1YsSUFBSSxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDdEMsSUFBSSxDQUFDLE9BQU87Ozs7WUFBQyxVQUFDLElBQUk7O29CQUNaLFVBQVUsR0FBUSxJQUFJO2dCQUMxQixVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3RDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO29CQUNuQixVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ2xEO2dCQUNELElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtvQkFDbkIsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNsRDtnQkFDRCxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlCLENBQUMsRUFBQyxDQUFBO1NBQ0g7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPOzs7O1lBQUMsVUFBQyxJQUFJOztvQkFDWixVQUFVLEdBQVEsSUFBSTtnQkFDMUIsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN0QyxVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3RDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDOUIsQ0FBQyxFQUFDLENBQUE7U0FDSDtLQUNGO1NBQU07UUFDTCxJQUFJLENBQUMsT0FBTzs7OztRQUFDLFVBQUMsSUFBSTs7Z0JBQ1osVUFBVSxHQUFRLEVBQUU7WUFDeEIsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDeEIsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDeEIsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixDQUFDLEVBQUMsQ0FBQTtLQUNIO0lBQ0QsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQzs7QUFsRkgsTUFBTSxLQUFPLEtBQUssR0FBRzs7Ozs7OztJQU9uQixnQkFBZ0IsTUFZZjs7Ozs7O0lBT0QsaUJBQWlCLE1BWWhCOzs7Ozs7O0lBUUQsdUJBQXVCLE1Bb0N0QjtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUl0ZW0gfSBmcm9tIFwiLi9oZC1mb3JtL2hkLWZvcm0uc2VydmljZVwiO1xuXG4vLyDlt6XlhbfnsbtcbmV4cG9ydCBjb25zdCBVdGlscyA9IHtcbiAgLyoqXG4gICAqIOWhq+WFhXNlbGVjdOaOp+S7tumAiemhuVxuICAgKiBAcGFyYW0gZm9ybUxpc3Qg5YWl5Y+C5pWw57uEIEFycmF5PGFueT5cbiAgICogQHBhcmFtIG5hbWUg6ZyA6KaB5aGr5YWFb3B0aW9uc+eahOWxnuaAp+WQjeensFxuICAgKiBAcGFyYW0gb3B0aW9ucyDpgInpobnliJfooahcbiAgICovXG4gIGZpbGxTZWxlY3RPcHRpb246IGZ1bmN0aW9uIChmb3JtTGlzdDogQXJyYXk8YW55PiwgbmFtZTogc3RyaW5nLCBvcHRpb25zOiBBcnJheTxhbnk+KSB7XG4gICAgbGV0IHJldHVybkRhdGEgPSBmb3JtTGlzdDtcbiAgICBpZiAoIXJldHVybkRhdGEgfHwgIXJldHVybkRhdGEubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gcmV0dXJuRGF0YTtcbiAgICB9XG4gICAgY29uc3QgbGVuZ3RoID0gZm9ybUxpc3QubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChyZXR1cm5EYXRhW2ldLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgICAgcmV0dXJuRGF0YVtpXS5zZWxlY3RPcHRpb24uc2VsZWN0TGlzdCA9IG9wdGlvbnM7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXR1cm5EYXRhO1xuICB9LFxuXG4gIC8qKlxuICAgKiDloavlhYVGb3JtSXRlbeaVsOe7hO+8mumSiOWvueWFpeWPgmxpc3TnmoTmr4/kuIDkuKpGb3JtSXRlbe+8jOWIpOaWrW9iauS4reaYr+WQpuacieWvueW6lOeahG5hbWXlrZfmrrXvvIzlpoLmnpzmnInvvIzliJnloavlhYV2YWx1ZeOAglxuICAgKiBAcGFyYW0gbGlzdCDlhaXlj4LmlbDnu4QgQXJyYXk8Rm9ybUl0ZW0+XG4gICAqIEBwYXJhbSBvYmog6ZyA6KaB5aGr5YWF5YiwbGlzdOeahOWxnuaAp1xuICAgKi9cbiAgZmlsbEFycmF5Rm9ybUl0ZW06IGZ1bmN0aW9uIChsaXN0OiBBcnJheTxGb3JtSXRlbT4sIG9iajogT2JqZWN0KSB7XG4gICAgbGV0IHJldHVybkRhdGEgPSBbXTtcbiAgICBpZiAoIWxpc3QgfHwgIWxpc3QubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gcmV0dXJuRGF0YTtcbiAgICB9XG4gICAgY29uc3QgbGVuZ3RoID0gbGlzdC5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgaWYgKG9ialtsaXN0W2ldLm5hbWVdKSB7XG4gICAgICAgIGxpc3RbaV0udmFsdWUgPSBvYmpbbGlzdFtpXS5uYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpc3Q7XG4gIH0sXG5cbiAgLyoqXG4gICAqIOaVsOe7hOi9rOaNouaIkOmAieaLqeWZqOeahOmAiemhueaVsOe7hFxuICAgKiBAcGFyYW0gbGlzdCDlhaXlj4LmlbDnu4Qg5a2X56ym5Liy5pWw57uE5oiW5a+56LGh5pWw57uEXG4gICAqIEBwYXJhbSBvcHRpb24g6L2s5o2i6YCJ6aG5XG4gICAqIOazqO+8mmxpc3TkuLrlrZfnrKbkuLLmlbDnu4TvvIxvcHRpb27kuI3pnIDopoHkvKDvvIzmjInnhafmoIflh4bnmoRsYWJlbOOAgXZhbHVl6L2s5o2iXG4gICAqL1xuICBhcnJheVRvU2VsZWN0T3B0aW9uTGlzdDogZnVuY3Rpb24gKGxpc3Q6IEFycmF5PGFueT4sIG9wdGlvbj86IHsgdmFsdWU6IHN0cmluZywgbGFiZWw6IHN0cmluZywgdmFsdWVUaXA/OiBzdHJpbmcsIGxhYmVsVGlwPzogc3RyaW5nIH0pIHtcbiAgICBsZXQgcmV0dXJuRGF0YSA9IFtdO1xuICAgIGlmICghbGlzdCB8fCAhbGlzdC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiByZXR1cm5EYXRhO1xuICAgIH1cbiAgICBpZiAob3B0aW9uKSB7XG4gICAgICBpZiAob3B0aW9uLmxhYmVsVGlwICYmIG9wdGlvbi52YWx1ZVRpcCkge1xuICAgICAgICBsaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICBsZXQgcmV0dXJuSXRlbTogYW55ID0gaXRlbTtcbiAgICAgICAgICByZXR1cm5JdGVtLmxhYmVsID0gaXRlbVtvcHRpb24ubGFiZWxdO1xuICAgICAgICAgIHJldHVybkl0ZW0udmFsdWUgPSBpdGVtW29wdGlvbi52YWx1ZV07XG4gICAgICAgICAgaWYgKG9wdGlvbi52YWx1ZVRpcCkge1xuICAgICAgICAgICAgcmV0dXJuSXRlbVtvcHRpb24udmFsdWVUaXBdID0gaXRlbVtvcHRpb24udmFsdWVdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAob3B0aW9uLmxhYmVsVGlwKSB7XG4gICAgICAgICAgICByZXR1cm5JdGVtW29wdGlvbi5sYWJlbFRpcF0gPSBpdGVtW29wdGlvbi5sYWJlbF07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybkRhdGEucHVzaChyZXR1cm5JdGVtKTtcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGxldCByZXR1cm5JdGVtOiBhbnkgPSBpdGVtO1xuICAgICAgICAgIHJldHVybkl0ZW0ubGFiZWwgPSBpdGVtW29wdGlvbi5sYWJlbF07XG4gICAgICAgICAgcmV0dXJuSXRlbS52YWx1ZSA9IGl0ZW1bb3B0aW9uLnZhbHVlXTtcbiAgICAgICAgICByZXR1cm5EYXRhLnB1c2gocmV0dXJuSXRlbSk7XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBsZXQgcmV0dXJuSXRlbTogYW55ID0ge307XG4gICAgICAgIHJldHVybkl0ZW0ubGFiZWwgPSBpdGVtO1xuICAgICAgICByZXR1cm5JdGVtLnZhbHVlID0gaXRlbTtcbiAgICAgICAgcmV0dXJuRGF0YS5wdXNoKHJldHVybkl0ZW0pO1xuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIHJldHVybkRhdGE7XG4gIH1cbn1cbiJdfQ==
|
|
306
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9mYW50YXN5LW5nem9ycm8vIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7OztBQUUvQixNQUFNLEtBQU8sS0FBSyxHQUFHO0lBQ25COzs7OztPQUtHO0lBQ0gsZ0JBQWdCOzs7Ozs7O0lBQWhCLFVBQWlCLFFBQW9CLEVBQUUsSUFBWSxFQUFFLE9BQW1COztZQUNoRSxVQUFVLEdBQUcsUUFBUTtRQUMzQixJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUNyQyxPQUFPLFVBQVUsQ0FBQztTQUNuQjs7WUFDSyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU07UUFDOUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMvQixJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO2dCQUMvQixVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7YUFDakQ7U0FDRjtRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsaUJBQWlCOzs7Ozs7SUFBakIsVUFBa0IsSUFBcUIsRUFBRSxHQUFXOztZQUM1QyxVQUFVLEdBQUcsRUFBRTtRQUNyQixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN6QixPQUFPLFVBQVUsQ0FBQztTQUNuQjs7WUFDSyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU07UUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMvQixJQUFJLEdBQUcsQ0FB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QyxTQUFTLENBQUMsQ0FBQztpQkFDNUI7Z0JBQ0QsTUFBTSxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUM7YUFDdkI7Ozs7Ozs7OztRQUNELE9BQU8sS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtSXRlbSB9IGZyb20gJy4vaGQtZm9ybS9oZC1mb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgcm91bmQgfSBmcm9tICdsb2Rhc2gnO1xuLy8g5bel5YW357G7XG5leHBvcnQgY29uc3QgVXRpbHMgPSB7XG4gIC8qKlxuICAgKiDloavlhYVzZWxlY3Tmjqfku7bpgInpoblcbiAgICogQHBhcmFtIGZvcm1MaXN0IOWFpeWPguaVsOe7hCBBcnJheTxhbnk+XG4gICAqIEBwYXJhbSBuYW1lIOmcgOimgeWhq+WFhW9wdGlvbnPnmoTlsZ7mgKflkI3np7BcbiAgICogQHBhcmFtIG9wdGlvbnMg6YCJ6aG55YiX6KGoXG4gICAqL1xuICBmaWxsU2VsZWN0T3B0aW9uKGZvcm1MaXN0OiBBcnJheTxhbnk+LCBuYW1lOiBzdHJpbmcsIG9wdGlvbnM6IEFycmF5PGFueT4pIHtcbiAgICBjb25zdCByZXR1cm5EYXRhID0gZm9ybUxpc3Q7XG4gICAgaWYgKCFyZXR1cm5EYXRhIHx8ICFyZXR1cm5EYXRhLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHJldHVybkRhdGE7XG4gICAgfVxuICAgIGNvbnN0IGxlbmd0aCA9IGZvcm1MaXN0Lmxlbmd0aDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAocmV0dXJuRGF0YVtpXS5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgIHJldHVybkRhdGFbaV0uc2VsZWN0T3B0aW9uLnNlbGVjdExpc3QgPSBvcHRpb25zO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV0dXJuRGF0YTtcbiAgfSxcblxuICAvKipcbiAgICog5aGr5YWFRm9ybUl0ZW3mlbDnu4TvvJrpkojlr7nlhaXlj4JsaXN055qE5q+P5LiA5LiqRm9ybUl0ZW3vvIzliKTmlq1vYmrkuK3mmK/lkKbmnInlr7nlupTnmoRuYW1l5a2X5q6177yM5aaC5p6c5pyJ77yM5YiZ5aGr5YWFdmFsdWXjgIJcbiAgICogQHBhcmFtIGxpc3Qg5YWl5Y+C5pWw57uEIEFycmF5PEZvcm1JdGVtPlxuICAgKiBAcGFyYW0gb2JqIOmcgOimgeWhq+WFheWIsGxpc3TnmoTlsZ7mgKdcbiAgICovXG4gIGZpbGxBcnJheUZvcm1JdGVtKGxpc3Q6IEFycmF5PEZvcm1JdGVtPiwgb2JqOiBPYmplY3QpIHtcbiAgICBjb25zdCByZXR1cm5EYXRhID0gW107XG4gICAgaWYgKCFsaXN0IHx8ICFsaXN0Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHJldHVybkRhdGE7XG4gICAgfVxuICAgIGNvbnN0IGxlbmd0aCA9IGxpc3QubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChvYmpbbGlzdFtpXS5uYW1lXSkge1xuICAgICAgICBsaXN0W2ldLnZhbHVlID0gb2JqW2xpc3RbaV0ubmFtZV07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsaXN0O1xuICB9LFxuXG4gIC8qKlxuICAgKiDmlbDnu4TovazmjaLmiJDpgInmi6nlmajnmoTpgInpobnmlbDnu4RcbiAgICogQHBhcmFtIGxpc3Qg5YWl5Y+C5pWw57uEIOWtl+espuS4suaVsOe7hOaIluWvueixoeaVsOe7hFxuICAgKiBAcGFyYW0gb3B0aW9uIOi9rOaNoumAiemhuVxuICAgKiDms6jvvJpsaXN05Li65a2X56ym5Liy5pWw57uE77yMb3B0aW9u5LiN6ZyA6KaB5Lyg77yM5oyJ54Wn5qCH5YeG55qEbGFiZWzjgIF2YWx1Zei9rOaNolxuICAgKi9cbiAgYXJyYXlUb1NlbGVjdE9wdGlvbkxpc3QobGlzdDogQXJyYXk8YW55Piwgb3B0aW9uPzoge1xuICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgbGFiZWw6IHN0cmluZyxcbiAgICB2YWx1ZVRpcD86IHN0cmluZyxcbiAgICBsYWJlbFRpcD86IHN0cmluZ1xuICB9KSB7XG4gICAgY29uc3QgcmV0dXJuRGF0YSA9IFtdO1xuICAgIGlmICghbGlzdCB8fCAhbGlzdC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiByZXR1cm5EYXRhO1xuICAgIH1cbiAgICBpZiAob3B0aW9uKSB7XG4gICAgICBpZiAob3B0aW9uLmxhYmVsVGlwICYmIG9wdGlvbi52YWx1ZVRpcCkge1xuICAgICAgICBsaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICBjb25zdCByZXR1cm5JdGVtOiBhbnkgPSBpdGVtO1xuICAgICAgICAgIHJldHVybkl0ZW0ubGFiZWwgPSBpdGVtW29wdGlvbi5sYWJlbF07XG4gICAgICAgICAgcmV0dXJuSXRlbS52YWx1ZSA9IGl0ZW1bb3B0aW9uLnZhbHVlXTtcbiAgICAgICAgICBpZiAob3B0aW9uLnZhbHVlVGlwKSB7XG4gICAgICAgICAgICByZXR1cm5JdGVtW29wdGlvbi52YWx1ZVRpcF0gPSBpdGVtW29wdGlvbi52YWx1ZV07XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChvcHRpb24ubGFiZWxUaXApIHtcbiAgICAgICAgICAgIHJldHVybkl0ZW1bb3B0aW9uLmxhYmVsVGlwXSA9IGl0ZW1bb3B0aW9uLmxhYmVsXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuRGF0YS5wdXNoKHJldHVybkl0ZW0pO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJldHVybkl0ZW06IGFueSA9IGl0ZW07XG4gICAgICAgICAgcmV0dXJuSXRlbS5sYWJlbCA9IGl0ZW1bb3B0aW9uLmxhYmVsXTtcbiAgICAgICAgICByZXR1cm5JdGVtLnZhbHVlID0gaXRlbVtvcHRpb24udmFsdWVdO1xuICAgICAgICAgIHJldHVybkRhdGEucHVzaChyZXR1cm5JdGVtKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCByZXR1cm5JdGVtOiBhbnkgPSB7fTtcbiAgICAgICAgcmV0dXJuSXRlbS5sYWJlbCA9IGl0ZW07XG4gICAgICAgIHJldHVybkl0ZW0udmFsdWUgPSBpdGVtO1xuICAgICAgICByZXR1cm5EYXRhLnB1c2gocmV0dXJuSXRlbSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJldHVybkRhdGE7XG4gIH0sXG5cbiAgLyoqXG4gICAqIOaxguWSjFxuICAgKiBAcGFyYW0gbnVtcyDmlbDnu4RcbiAgICogQHBhcmFtIHByZWNpc2lvbiDnsr7luqZcbiAgICovXG4gIGFkZChudW1zOiBudW1iZXJbXSwgcHJlY2lzaW9uOiBudW1iZXIgPSAyKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG51bXMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ+WPguaVsOW/hemhu+aYr+aVsOe7hCcpO1xuICAgIH1cbiAgICBpZiAobnVtcy5zb21lKG51bSA9PiB0eXBlb2YgbnVtICE9PSAnbnVtYmVyJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcign5pWw57uE5YWD57Sg5b+F6aG75piv5pWw5a2XJyk7XG4gICAgfVxuICAgIGxldCByZXN1bHQgPSAwO1xuICAgIGZvciAoY29uc3QgbnVtIG9mIG51bXMpIHtcbiAgICAgIHJlc3VsdCArPSBudW07XG4gICAgfVxuICAgIHJldHVybiByb3VuZChyZXN1bHQsIHByZWNpc2lvbik7XG4gIH0sXG5cbiAgLyoqXG4gICAqIOWHj+azlVxuICAgKiBAcGFyYW0gbnVtcyDmlbDnu4RcbiAgICogQHBhcmFtIHByZWNpc2lvbiDnsr7luqZcbiAgICovXG4gIHN1YnRyYWN0KG51bXM6IG51bWJlcltdLCBwcmVjaXNpb246IG51bWJlciA9IDIpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobnVtcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcign5Y+C5pWw5b+F6aG75piv5pWw57uEJyk7XG4gICAgfVxuICAgIGlmIChudW1zLnNvbWUobnVtID0+IHR5cGVvZiBudW0gIT09ICdudW1iZXInKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCfmlbDnu4TlhYPntKDlv4XpobvmmK/mlbDlrZcnKTtcbiAgICB9XG4gICAgaWYgKG51bXMubGVuZ3RoIDwgMikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCflh4/ms5XlhaXlj4LmlbDph4/oh7PlsJHopoEy5Liq77yBJyk7XG4gICAgfVxuICAgIGxldCByZXN1bHQgPSBudW1zLnNoaWZ0KCk7XG4gICAgZm9yIChjb25zdCBudW0gb2YgbnVtcykge1xuICAgICAgcmVzdWx0IC09IG51bTtcbiAgICB9XG4gICAgcmV0dXJuIHJvdW5kKHJlc3VsdCwgcHJlY2lzaW9uKTtcbiAgfSxcblxuICAvKipcbiAgICog5LmY5rOVXG4gICAqIEBwYXJhbSBudW1zIOaVsOe7hFxuICAgKiBAcGFyYW0gcHJlY2lzaW9uIOeyvuW6plxuICAgKi9cbiAgbXVsdGlwbHkobnVtczogbnVtYmVyW10sIHByZWNpc2lvbjogbnVtYmVyID0gMikge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShudW1zKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCflj4LmlbDlv4XpobvmmK/mlbDnu4QnKTtcbiAgICB9XG4gICAgaWYgKG51bXMuc29tZShudW0gPT4gdHlwZW9mIG51bSAhPT0gJ251bWJlcicpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ+aVsOe7hOWFg+e0oOW/hemhu+aYr+aVsOWtlycpO1xuICAgIH1cbiAgICBsZXQgcmVzdWx0ID0gMTtcbiAgICBmb3IgKGNvbnN0IG51bSBvZiBudW1zKSB7XG4gICAgICByZXN1bHQgPSByZXN1bHQgKiBudW07XG4gICAgfVxuICAgIHJldHVybiByb3VuZChyZXN1bHQsIHByZWNpc2lvbik7XG4gIH0sXG5cbiAgLyoqXG4gICAqIOmZpOazlVxuICAgKiBAcGFyYW0gbnVtcyDmlbDnu4RcbiAgICogQHBhcmFtIHByZWNpc2lvbiDnsr7luqZcbiAgICovXG4gIGRpdmlkZShudW1zOiBudW1iZXJbXSwgcHJlY2lzaW9uOiBudW1iZXIgPSAyKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG51bXMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ+WPguaVsOW/hemhu+aYr+aVsOe7hCcpO1xuICAgIH1cbiAgICBpZiAobnVtcy5zb21lKG51bSA9PiB0eXBlb2YgbnVtICE9PSAnbnVtYmVyJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcign5pWw57uE5YWD57Sg5b+F6aG75piv5pWw5a2XJyk7XG4gICAgfVxuICAgIGlmIChudW1zLmxlbmd0aCA8IDIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcign6Zmk5rOV5YWl5Y+C5pWw6YeP6Iez5bCR6KaBMuS4qu+8gScpO1xuICAgIH1cbiAgICBsZXQgcmVzdWx0ID0gbnVtcy5zaGlmdCgpO1xuICAgIGZvciAoY29uc3QgbnVtIG9mIG51bXMpIHtcbiAgICAgIGlmIChudW0gPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCfpmaTmlbDkuI3og73kuLow77yBJyk7XG4gICAgICB9XG4gICAgICByZXN1bHQgPSByZXN1bHQgLyBudW07XG4gICAgfVxuICAgIHJldHVybiByb3VuZChyZXN1bHQsIHByZWNpc2lvbik7XG4gIH1cbn07XG4iXX0=
|