@acorex/components 3.0.48 → 3.0.53
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/acorex-components.metadata.json +1 -1
- package/bundles/acorex-components.umd.js +26 -12
- package/bundles/acorex-components.umd.js.map +1 -1
- package/bundles/acorex-components.umd.min.js +1 -1
- package/bundles/acorex-components.umd.min.js.map +1 -1
- package/esm2015/lib/base/element.class.js +9 -1
- package/esm2015/lib/calendar/calendar-box/calendar-box.component.js +3 -3
- package/esm2015/lib/date-picker/date-picker.component.js +3 -2
- package/esm2015/lib/dropdown/dropdown.component.js +3 -2
- package/esm2015/lib/menu/menu2.component.js +1 -1
- package/esm2015/lib/number-box/number-box.component.js +2 -2
- package/esm2015/lib/password-box/password-box.component.js +2 -2
- package/esm2015/lib/query-builder/query-builder-rule.component.js +5 -1
- package/esm2015/lib/query-builder/query-builder.service.js +4 -4
- package/esm2015/lib/textarea/textarea.component.js +2 -2
- package/esm2015/lib/textbox/textbox.component.js +2 -2
- package/esm5/lib/base/element.class.js +9 -1
- package/esm5/lib/calendar/calendar-box/calendar-box.component.js +3 -3
- package/esm5/lib/date-picker/date-picker.component.js +3 -2
- package/esm5/lib/dropdown/dropdown.component.js +3 -2
- package/esm5/lib/menu/menu2.component.js +1 -1
- package/esm5/lib/number-box/number-box.component.js +2 -2
- package/esm5/lib/password-box/password-box.component.js +2 -2
- package/esm5/lib/query-builder/query-builder-rule.component.js +5 -1
- package/esm5/lib/query-builder/query-builder.service.js +4 -4
- package/esm5/lib/textarea/textarea.component.js +2 -2
- package/esm5/lib/textbox/textbox.component.js +2 -2
- package/fesm2015/acorex-components.js +26 -12
- package/fesm2015/acorex-components.js.map +1 -1
- package/fesm5/acorex-components.js +26 -12
- package/fesm5/acorex-components.js.map +1 -1
- package/lib/base/element.class.d.ts +2 -0
- package/package.json +1 -1
|
@@ -72,7 +72,6 @@ let AXQueryBuilderService = class AXQueryBuilderService {
|
|
|
72
72
|
return __awaiter(this, void 0, void 0, function* () {
|
|
73
73
|
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
74
74
|
var e_1, _a;
|
|
75
|
-
;
|
|
76
75
|
var query;
|
|
77
76
|
if (group.items.length > 0) {
|
|
78
77
|
query = ' ( ';
|
|
@@ -123,8 +122,10 @@ let AXQueryBuilderService = class AXQueryBuilderService {
|
|
|
123
122
|
case 'end-with':
|
|
124
123
|
codeOperator = item.operator;
|
|
125
124
|
break;
|
|
125
|
+
default:
|
|
126
|
+
codeOperator = item.operator;
|
|
127
|
+
break;
|
|
126
128
|
}
|
|
127
|
-
;
|
|
128
129
|
query = query + ' ' + item.caption + ' ' + codeOperator + ' ' + item.text;
|
|
129
130
|
}
|
|
130
131
|
if (id !== group.items.length - 1 && query != ' ( ') {
|
|
@@ -151,7 +152,6 @@ let AXQueryBuilderService = class AXQueryBuilderService {
|
|
|
151
152
|
let query = '';
|
|
152
153
|
switch (type) {
|
|
153
154
|
case 'simple':
|
|
154
|
-
;
|
|
155
155
|
if (group.items.length > 0) {
|
|
156
156
|
query = ' ( ';
|
|
157
157
|
}
|
|
@@ -207,4 +207,4 @@ AXQueryBuilderService = __decorate([
|
|
|
207
207
|
__metadata("design:paramtypes", [AXPopupService, AXToastService])
|
|
208
208
|
], AXQueryBuilderService);
|
|
209
209
|
export { AXQueryBuilderService };
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQTRCLE1BQU0sdUJBQXVCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbkcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBRXhELElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBQ2hDLFlBQW9CLEtBQXFCLEVBQVUsS0FBcUI7UUFBcEQsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUN4RSxZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLFdBQU0sR0FBWSxLQUFLLENBQUM7SUFGbUQsQ0FBQztJQUdyRSxRQUFRLENBQUMsS0FBMEIsRUFBRSxXQUFXO1FBQ3JELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3JDO1lBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixJQUFJLENBQUMsTUFBTSxH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UyxDQUFDO3FCQUN2QztpQkFDRjtnQkFDRCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDMUIsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUM7aUJBQ3ZCO2dCQUVELE1BQU07WUFDUixLQUFLLEtBQUs7Z0JBQ1IsTUFBTTtTQUNUO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YsQ0FBQTs7WUE3SzRCLGNBQWM7WUFBaUIsY0FBYzs7O0FBRDdELHFCQUFxQjtJQURqQyxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7cUNBRU4sY0FBYyxFQUFpQixjQUFjO0dBRDdELHFCQUFxQixDQThLakM7U0E5S1kscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJHcm91cCwgQVhRdWVyeUJ1aWxkZXJTdHJpbmdUeXBlIH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLmNsYXNzJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJy4uL3BvcHVwL3BvcHVwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBWFF1ZXJ5QnVpbGRlclBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLXBvcHVwL3F1ZXJ5LWJ1aWxkZXItcG9wdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi90b2FzdC90b2FzdC5zZXJ2aWNlJztcclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEFYUXVlcnlCdWlsZGVyU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb3B1cDogQVhQb3B1cFNlcnZpY2UsIHByaXZhdGUgdG9hc3Q6IEFYVG9hc3RTZXJ2aWNlKSB7fVxyXG4gIGNhbk9wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYW5SdW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgcnVuUXVlcnkoZ3JvdXA6IEFYUXVlcnlCdWlsZGVyR3JvdXAsIHByb3ZpZGVEYXRhKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgdGhpcy5jYW5PcGVuID0gZmFsc2U7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXAuaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB0aGlzLmdldE5vVmFsdWVSdWxlKGdyb3VwLml0ZW1zW2ldKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5jYW5PcGVuKSB7XHJcbiAgICAgICAgdGhpcy5jYW5SdW4gPSB0cnVlO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXAuaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGlmICh0aGlzLmNhblJ1biA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmluZE51bGxWYWx1ZShncm91cC5pdGVtc1tpXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmNhblJ1bikge1xyXG4gICAgICAgICAgdGhpcy5wb3B1cC5vcGVuKEFYUXVlcnlCdWlsZGVyUG9wdXBDb21wb25lbnQsIHsgZGF0YTogeyBncm91cDogZ3JvdXAsIHByb3ZpZGVEYXRhOiBwcm92aWRlRGF0YSB9LCB0aXRsZTogJ9iv2LHbjNin2YHYqiDZhdmC2KfYr9uM2LEnIH0pLnRoZW4oKGMpID0+IHtcclxuICAgICAgICAgICAgcmVzb2x2ZShjKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXNvbHZlKGdyb3VwKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmaW5kTnVsbFZhbHVlKGdyKSB7XHJcbiAgICBpZiAodGhpcy5jYW5SdW4gPT0gdHJ1ZSkge1xyXG4gICAgICBpZiAoZ3IuY29uZGl0aW9uKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnci5pdGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgdGhpcy5maW5kTnVsbFZhbHVlKGdyLml0ZW1zW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGdyLm9uRGVtYW5kTGFiZWwgPT0gJz8/Pz98Jykge1xyXG4gICAgICAgICAgdGhpcy5jYW5SdW4gPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZXJyb3IoJ9mE2LfZgdinINmG2KfZhSDZhdiq2LrbjNixINmH2KfbjCDZhdmI2LHYryDZhtuM2KfYsiDYsdinINqp2KfZhdmEINqp2YbbjNivJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE5vVmFsdWVSdWxlKGdyKSB7XHJcbiAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IGdyLml0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBpZiAoZ3IuY29uZGl0aW9uKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3IuaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB0aGlzLmdldE5vVmFsdWVSdWxlKGdyLml0ZW1zW2ldKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGdyLm9uRGVtYW5kTGFiZWw/LmluZGV4T2YoJz8/Pz8nKSA9PSAwKSB7XHJcbiAgICAgICAgdGhpcy5jYW5PcGVuID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRRdWVyeVN0cmluZ1NpbXBsZShncm91cDogQVhRdWVyeUJ1aWxkZXJHcm91cCkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICA7XHJcbiAgICAgIHZhciBxdWVyeTogc3RyaW5nO1xyXG4gICAgICBpZiAoZ3JvdXAuaXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHF1ZXJ5ID0gJyAoICc7XHJcbiAgICAgIH1cclxuICAgICAgdmFyIGlkID0gMDtcclxuICAgICAgZm9yIGF3YWl0IChjb25zdCBpdGVyYXRvciBvZiBncm91cC5pdGVtcykge1xyXG4gICAgICAgIGNvbnN0IGl0ZW06IGFueSA9IGdyb3VwLml0ZW1zW2lkXTtcclxuICAgICAgICBpZiAoaXRlbS5jb25kaXRpb24pIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0UXVlcnlTdHJpbmdTaW1wbGUoaXRlbSkudGhlbigoYykgPT4ge1xyXG4gICAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgYztcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgY29kZU9wZXJhdG9yOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgICAgICAgc3dpdGNoIChpdGVtLm9wZXJhdG9yKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2VxdWFsJzpcclxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnPT0nO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdub3QtZXF1YWwnOlxyXG4gICAgICAgICAgICAgIGNvZGVPcGVyYXRvciA9ICchPSc7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ25vdC1udWxsJzpcclxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnIT0gbnVsbCc7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ251bGwnOlxyXG4gICAgICAgICAgICAgIGNvZGVPcGVyYXRvciA9ICc9PSBudWxsJztcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnZ3QnOlxyXG4gICAgICAgICAgICAgIGNvZGVPcGVyYXRvciA9ICc+JztcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnZ3RlJzpcclxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnPj0nO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdsdCc6XHJcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gJzwnO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdsdGUnOlxyXG4gICAgICAgICAgICAgIGNvZGVPcGVyYXRvciA9ICc8PSc7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2NvbnRhaW5zJzpcclxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSBpdGVtLm9wZXJhdG9yO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdzdGFydC13aXRoJzpcclxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSBpdGVtLm9wZXJhdG9yO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdlbmQtd2l0aCc6XHJcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gaXRlbS5vcGVyYXRvcjtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIDtcclxuICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICcgKyBpdGVtLmNhcHRpb24gKyAnICcgKyBjb2RlT3BlcmF0b3IgKyAnICcgKyBpdGVtLnRleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpZCAhPT0gZ3JvdXAuaXRlbXMubGVuZ3RoIC0gMSAmJiBxdWVyeSAhPSAnICggJykge1xyXG4gICAgICAgICAgcXVlcnkgPSBxdWVyeSArICcgJyArIGdyb3VwLmNvbmRpdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWQgKz0gMTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZ3JvdXAuaXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICkgJztcclxuICAgICAgfVxyXG4gICAgICByZXNvbHZlKHF1ZXJ5KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFF1ZXJ5U3RyaW5nKGdyb3VwOiBBWFF1ZXJ5QnVpbGRlckdyb3VwLCB0eXBlOiBBWFF1ZXJ5QnVpbGRlclN0cmluZ1R5cGUpOiBzdHJpbmcge1xyXG4gICAgbGV0IHF1ZXJ5ID0gJyc7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnc2ltcGxlJzpcclxuICAgICAgICA7XHJcbiAgICAgICAgaWYgKGdyb3VwLml0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHF1ZXJ5ID0gJyAoICc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXAuaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBncm91cC5pdGVtc1tpXTtcclxuICAgICAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgQVhRdWVyeUJ1aWxkZXJHcm91cCkge1xyXG4gICAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgaXRlbS5xdWVyeVN0cmluZztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICcgKyBpdGVtLmNhcHRpb24gKyAnICcgKyBpdGVtLm9wZXJhdG9yICsgJyAnICsgaXRlbS52YWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpICE9PSBncm91cC5pdGVtcy5sZW5ndGggLSAxICYmIHF1ZXJ5ICE9ICcgKCAnKSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICcgKyBncm91cC5jb25kaXRpb247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChncm91cC5pdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgJyApICc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAnZWxhc3RpYyc6XHJcbiAgICAgICAgaWYgKGdyb3VwLml0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHF1ZXJ5ID0gJyAoICc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXAuaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBncm91cC5pdGVtc1tpXTtcclxuICAgICAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgQVhRdWVyeUJ1aWxkZXJHcm91cCkge1xyXG4gICAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgaXRlbS5xdWVyeVN0cmluZ0VsYXN0aWM7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgJyAnICsgaXRlbS5kYXRhRmllbGQgKyAnICcgKyBpdGVtLm9wZXJhdG9yICsgJyAnICsgaXRlbS52YWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpICE9PSBncm91cC5pdGVtcy5sZW5ndGggLSAxICYmIHF1ZXJ5ICE9ICcgKCAnKSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICcgKyBncm91cC5jb25kaXRpb247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChncm91cC5pdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgJyApICc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnc3FsJzpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcXVlcnk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQTRCLE1BQU0sdUJBQXVCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbkcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBRXhELElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBQ2hDLFlBQW9CLEtBQXFCLEVBQVUsS0FBcUI7UUFBcEQsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUN4RSxZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLFdBQU0sR0FBWSxLQUFLLENBQUM7SUFGbUQsQ0FBQztJQUdyRSxRQUFRLENBQUMsS0FBMEIsRUFBRSxXQUFXO1FBQ3JELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3JDO1lBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixJQUFJLENBQUMsTUFBTSxH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QUcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO3FCQUN2QztpQkFDRjtnQkFDRCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDMUIsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUM7aUJBQ3ZCO2dCQUVELE1BQU07WUFDUixLQUFLLEtBQUs7Z0JBQ1IsTUFBTTtTQUNUO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YsQ0FBQTs7WUE3SzRCLGNBQWM7WUFBaUIsY0FBYzs7O0FBRDdELHFCQUFxQjtJQURqQyxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7cUNBRU4sY0FBYyxFQUFpQixjQUFjO0dBRDdELHFCQUFxQixDQThLakM7U0E5S1kscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJHcm91cCwgQVhRdWVyeUJ1aWxkZXJTdHJpbmdUeXBlIH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLmNsYXNzJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJy4uL3BvcHVwL3BvcHVwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBWFF1ZXJ5QnVpbGRlclBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLXBvcHVwL3F1ZXJ5LWJ1aWxkZXItcG9wdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi90b2FzdC90b2FzdC5zZXJ2aWNlJztcclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEFYUXVlcnlCdWlsZGVyU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb3B1cDogQVhQb3B1cFNlcnZpY2UsIHByaXZhdGUgdG9hc3Q6IEFYVG9hc3RTZXJ2aWNlKSB7fVxyXG4gIGNhbk9wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYW5SdW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgcnVuUXVlcnkoZ3JvdXA6IEFYUXVlcnlCdWlsZGVyR3JvdXAsIHByb3ZpZGVEYXRhKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgdGhpcy5jYW5PcGVuID0gZmFsc2U7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXAuaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB0aGlzLmdldE5vVmFsdWVSdWxlKGdyb3VwLml0ZW1zW2ldKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5jYW5PcGVuKSB7XHJcbiAgICAgICAgdGhpcy5jYW5SdW4gPSB0cnVlO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXAuaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGlmICh0aGlzLmNhblJ1biA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmluZE51bGxWYWx1ZShncm91cC5pdGVtc1tpXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmNhblJ1bikge1xyXG4gICAgICAgICAgdGhpcy5wb3B1cC5vcGVuKEFYUXVlcnlCdWlsZGVyUG9wdXBDb21wb25lbnQsIHsgZGF0YTogeyBncm91cDogZ3JvdXAsIHByb3ZpZGVEYXRhOiBwcm92aWRlRGF0YSB9LCB0aXRsZTogJ9iv2LHbjNin2YHYqiDZhdmC2KfYr9uM2LEnIH0pLnRoZW4oKGMpID0+IHtcclxuICAgICAgICAgICAgcmVzb2x2ZShjKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXNvbHZlKGdyb3VwKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmaW5kTnVsbFZhbHVlKGdyKSB7XHJcbiAgICBpZiAodGhpcy5jYW5SdW4gPT0gdHJ1ZSkge1xyXG4gICAgICBpZiAoZ3IuY29uZGl0aW9uKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnci5pdGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgdGhpcy5maW5kTnVsbFZhbHVlKGdyLml0ZW1zW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGdyLm9uRGVtYW5kTGFiZWwgPT0gJz8/Pz98Jykge1xyXG4gICAgICAgICAgdGhpcy5jYW5SdW4gPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZXJyb3IoJ9mE2LfZgdinINmG2KfZhSDZhdiq2LrbjNixINmH2KfbjCDZhdmI2LHYryDZhtuM2KfYsiDYsdinINqp2KfZhdmEINqp2YbbjNivJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE5vVmFsdWVSdWxlKGdyKSB7XHJcbiAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IGdyLml0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBpZiAoZ3IuY29uZGl0aW9uKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3IuaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB0aGlzLmdldE5vVmFsdWVSdWxlKGdyLml0ZW1zW2ldKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGdyLm9uRGVtYW5kTGFiZWw/LmluZGV4T2YoJz8/Pz8nKSA9PSAwKSB7XHJcbiAgICAgICAgdGhpcy5jYW5PcGVuID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRRdWVyeVN0cmluZ1NpbXBsZShncm91cDogQVhRdWVyeUJ1aWxkZXJHcm91cCkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB2YXIgcXVlcnk6IHN0cmluZztcclxuICAgICAgaWYgKGdyb3VwLml0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBxdWVyeSA9ICcgKCAnO1xyXG4gICAgICB9XHJcbiAgICAgIHZhciBpZCA9IDA7XHJcbiAgICAgIGZvciBhd2FpdCAoY29uc3QgaXRlcmF0b3Igb2YgZ3JvdXAuaXRlbXMpIHtcclxuICAgICAgICBjb25zdCBpdGVtOiBhbnkgPSBncm91cC5pdGVtc1tpZF07XHJcbiAgICAgICAgaWYgKGl0ZW0uY29uZGl0aW9uKSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLmdldFF1ZXJ5U3RyaW5nU2ltcGxlKGl0ZW0pLnRoZW4oKGMpID0+IHtcclxuICAgICAgICAgICAgcXVlcnkgPSBxdWVyeSArIGM7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IGNvZGVPcGVyYXRvcjogc3RyaW5nID0gbnVsbDtcclxuICAgICAgICAgIHN3aXRjaCAoaXRlbS5vcGVyYXRvcikge1xyXG4gICAgICAgICAgICBjYXNlICdlcXVhbCc6XHJcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gJz09JztcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnbm90LWVxdWFsJzpcclxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnIT0nO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdub3QtbnVsbCc6XHJcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gJyE9IG51bGwnO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdudWxsJzpcclxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnPT0gbnVsbCc7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2d0JzpcclxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnPic7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2d0ZSc6XHJcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gJz49JztcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnbHQnOlxyXG4gICAgICAgICAgICAgIGNvZGVPcGVyYXRvciA9ICc8JztcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnbHRlJzpcclxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnPD0nO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdjb250YWlucyc6XHJcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gaXRlbS5vcGVyYXRvcjtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnc3RhcnQtd2l0aCc6XHJcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gaXRlbS5vcGVyYXRvcjtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnZW5kLXdpdGgnOlxyXG4gICAgICAgICAgICAgIGNvZGVPcGVyYXRvciA9IGl0ZW0ub3BlcmF0b3I7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gaXRlbS5vcGVyYXRvcjtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICcgKyBpdGVtLmNhcHRpb24gKyAnICcgKyBjb2RlT3BlcmF0b3IgKyAnICcgKyBpdGVtLnRleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpZCAhPT0gZ3JvdXAuaXRlbXMubGVuZ3RoIC0gMSAmJiBxdWVyeSAhPSAnICggJykge1xyXG4gICAgICAgICAgcXVlcnkgPSBxdWVyeSArICcgJyArIGdyb3VwLmNvbmRpdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWQgKz0gMTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZ3JvdXAuaXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICkgJztcclxuICAgICAgfVxyXG4gICAgICByZXNvbHZlKHF1ZXJ5KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFF1ZXJ5U3RyaW5nKGdyb3VwOiBBWFF1ZXJ5QnVpbGRlckdyb3VwLCB0eXBlOiBBWFF1ZXJ5QnVpbGRlclN0cmluZ1R5cGUpOiBzdHJpbmcge1xyXG4gICAgbGV0IHF1ZXJ5ID0gJyc7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnc2ltcGxlJzpcclxuICAgICAgICBpZiAoZ3JvdXAuaXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgcXVlcnkgPSAnICggJztcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBncm91cC5pdGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgY29uc3QgaXRlbSA9IGdyb3VwLml0ZW1zW2ldO1xyXG4gICAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBBWFF1ZXJ5QnVpbGRlckdyb3VwKSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyBpdGVtLnF1ZXJ5U3RyaW5nO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcXVlcnkgPSBxdWVyeSArICcgJyArIGl0ZW0uY2FwdGlvbiArICcgJyArIGl0ZW0ub3BlcmF0b3IgKyAnICcgKyBpdGVtLnZhbHVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGkgIT09IGdyb3VwLml0ZW1zLmxlbmd0aCAtIDEgJiYgcXVlcnkgIT0gJyAoICcpIHtcclxuICAgICAgICAgICAgcXVlcnkgPSBxdWVyeSArICcgJyArIGdyb3VwLmNvbmRpdGlvbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGdyb3VwLml0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICkgJztcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdlbGFzdGljJzpcclxuICAgICAgICBpZiAoZ3JvdXAuaXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgcXVlcnkgPSAnICggJztcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBncm91cC5pdGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgY29uc3QgaXRlbSA9IGdyb3VwLml0ZW1zW2ldO1xyXG4gICAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBBWFF1ZXJ5QnVpbGRlckdyb3VwKSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyBpdGVtLnF1ZXJ5U3RyaW5nRWxhc3RpYztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICcgKyBpdGVtLmRhdGFGaWVsZCArICcgJyArIGl0ZW0ub3BlcmF0b3IgKyAnICcgKyBpdGVtLnZhbHVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGkgIT09IGdyb3VwLml0ZW1zLmxlbmd0aCAtIDEgJiYgcXVlcnkgIT0gJyAoICcpIHtcclxuICAgICAgICAgICAgcXVlcnkgPSBxdWVyeSArICcgJyArIGdyb3VwLmNvbmRpdGlvbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGdyb3VwLml0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICkgJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdzcWwnOlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBxdWVyeTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -30,7 +30,7 @@ __decorate([
|
|
|
30
30
|
AXTextAreaComponent = AXTextAreaComponent_1 = __decorate([
|
|
31
31
|
Component({
|
|
32
32
|
selector: 'ax-text-area',
|
|
33
|
-
template: "<div class=\"ax form-item {{size}}\" [class.disabled]=\"disabled\" [attr.id]=\"uid\">\r\n <div class=\"content\">\r\n <div class=\"ax input {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\">\r\n <textarea [attr.maxlength]=\"maxLength\" rows=\"{{rows}}\" cols=\"{{cols}}\" #input type=\"text\"\r\n class=\"ax icon {{size}}\" [ngClass]=\"setTextAlign()\" placeholder=\"{{placeholder}}\" [readonly]=\"readonly\"\r\n [disabled]=\"disabled\" value=\"{{value}}\"></textarea>\r\n </div>\r\n </div>\r\n <div class=\"ax buttons\">\r\n <ng-content select=\"ax-button\">\r\n </ng-content>\r\n </div>\r\n</div>",
|
|
33
|
+
template: "<div class=\"ax form-item {{size}}\" [class.disabled]=\"disabled\" [attr.id]=\"uid\">\r\n <div class=\"content\">\r\n <div class=\"ax input {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\">\r\n <textarea [name]=\"name\" [attr.maxlength]=\"maxLength\" rows=\"{{rows}}\" cols=\"{{cols}}\" #input type=\"text\"\r\n class=\"ax icon {{size}}\" [ngClass]=\"setTextAlign()\" placeholder=\"{{placeholder}}\" [readonly]=\"readonly\"\r\n [disabled]=\"disabled\" value=\"{{value}}\"></textarea>\r\n </div>\r\n </div>\r\n <div class=\"ax buttons\">\r\n <ng-content select=\"ax-button\">\r\n </ng-content>\r\n </div>\r\n</div>",
|
|
34
34
|
encapsulation: ViewEncapsulation.None,
|
|
35
35
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
36
36
|
host: { style: 'width: 100%' },
|
|
@@ -39,4 +39,4 @@ AXTextAreaComponent = AXTextAreaComponent_1 = __decorate([
|
|
|
39
39
|
__metadata("design:paramtypes", [ChangeDetectorRef, ElementRef])
|
|
40
40
|
], AXTextAreaComponent);
|
|
41
41
|
export { AXTextAreaComponent };
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkksT0FBTyxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFVcEYsSUFBYSxtQkFBbUIsMkJBQWhDLE1BQWEsbUJBQW9CLFNBQVEsbUJBQW1CO0lBQzFELFlBQXNCLEdBQXNCLEVBQUUsR0FBZTtRQUMzRCxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBREksUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFLNUMsU0FBSSxHQUFXLENBQUMsQ0FBQztRQUVqQixTQUFJLEdBQVcsQ0FBQyxDQUFDO1FBR2pCLGNBQVMsR0FBVyxJQUFJLENBQUM7SUFSekIsQ0FBQztDQVNGLENBQUE7O1lBWDRCLGlCQUFpQjtZQUFPLFVBQVU7O0FBSzdEO0lBREMsS0FBSyxFQUFFOztpREFDUztBQUVqQjtJQURDLEtBQUssRUFBRTs7aURBQ1M7QUFHakI7SUFEQyxLQUFLLEVBQUU7O3NEQUNpQjtBQVhkLG1CQUFtQjtJQVIvQixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsY0FBYztRQUN4Qix3dEJBQXdDO1FBQ3hDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO1FBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1FBQy9DLElBQUksRUFBRSxFQUFFLEtBQUssRUFBQyxhQUFhLEVBQUU7UUFDN0IsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLHFCQUFtQixFQUFFLENBQUM7S0FDbkYsQ0FBQztxQ0FFMkIsaUJBQWlCLEVBQU8sVUFBVTtHQURsRCxtQkFBbUIsQ0FZL0I7U0FaWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBWaWV3RW5jYXBzdWxhdGlvbiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhCYXNlVGV4dENvbXBvbmVudCwgQVhWYWxpZGF0YWJsZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LXRleHQtYXJlYScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGhvc3Q6IHsgc3R5bGU6J3dpZHRoOiAxMDAlJyB9LFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhWYWxpZGF0YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYVGV4dEFyZWFDb21wb25lbnQgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFYVGV4dEFyZWFDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VUZXh0Q29tcG9uZW50IHtcclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICBzdXBlcihjZHIsIHJlZik7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHJvd3M6IG51bWJlciA9IDA7XHJcbiAgQElucHV0KClcclxuICBjb2xzOiBudW1iZXIgPSAwO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1heExlbmd0aDogbnVtYmVyID0gbnVsbDtcclxufVxyXG4iXX0=
|
|
@@ -48,7 +48,7 @@ __decorate([
|
|
|
48
48
|
AXTextBoxComponent = AXTextBoxComponent_1 = __decorate([
|
|
49
49
|
Component({
|
|
50
50
|
selector: 'ax-text-box',
|
|
51
|
-
template: "<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\r\n <div class=\"ax items-wrapper\">\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </div>\r\n <div class=\"content\" #content>\r\n <div class=\"ax form-control input {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\"\r\n [class.icon]=\"icon\">\r\n <input #input class=\"ax {{size}}\" [attr.type]=\"type\" [attr.maxlength]=\"maxLength\"\r\n [textMask]=\"{mask: mask || false, showMask : showMask, keepCharPositions:maskKeepCharPositions,guide:maskGuid,placeholderChar:maskPlaceholder}\"\r\n [(ngModel)]=\"value\" placeholder=\"{{placeholder}}\" [readonly]=\"readonly\" [disabled]=\"disabled\"\r\n [ngClass]=\"setTextAlign()\" [class.clear]=\"value && allowClear\" (focus)=\"handleInputFocus($event)\"\r\n (blur)=\"handleInputBlur($event)\">\r\n <i class=\"{{icon}}\" *ngIf=\"icon\"></i>\r\n </div>\r\n </div>\r\n <div class=\"ax items-wrapper\">\r\n <ax-button *ngIf=\"value && allowClear\" icon=\"far fa-times\" type=\"danger blank\" (click)=\"clear()\"></ax-button>\r\n <ng-content select=\"[end]\">\r\n </ng-content>\r\n </div>\r\n</div>",
|
|
51
|
+
template: "<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\r\n <div class=\"ax items-wrapper\">\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </div>\r\n <div class=\"content\" #content>\r\n <div class=\"ax form-control input {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\"\r\n [class.icon]=\"icon\">\r\n <input #input [autocomplete]=\"autocomplete\" [name]=\"name\" class=\"ax {{size}}\" [attr.type]=\"type\" [attr.maxlength]=\"maxLength\"\r\n [textMask]=\"{mask: mask || false, showMask : showMask, keepCharPositions:maskKeepCharPositions,guide:maskGuid,placeholderChar:maskPlaceholder}\"\r\n [(ngModel)]=\"value\" placeholder=\"{{placeholder}}\" [readonly]=\"readonly\" [disabled]=\"disabled\"\r\n [ngClass]=\"setTextAlign()\" [class.clear]=\"value && allowClear\" (focus)=\"handleInputFocus($event)\"\r\n (blur)=\"handleInputBlur($event)\">\r\n <i class=\"{{icon}}\" *ngIf=\"icon\"></i>\r\n </div>\r\n </div>\r\n <div class=\"ax items-wrapper\">\r\n <ax-button *ngIf=\"value && allowClear\" icon=\"far fa-times\" type=\"danger blank\" (click)=\"clear()\"></ax-button>\r\n <ng-content select=\"[end]\">\r\n </ng-content>\r\n </div>\r\n</div>",
|
|
52
52
|
encapsulation: ViewEncapsulation.None,
|
|
53
53
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
54
54
|
host: { style: 'width: 100%' },
|
|
@@ -57,4 +57,4 @@ AXTextBoxComponent = AXTextBoxComponent_1 = __decorate([
|
|
|
57
57
|
__metadata("design:paramtypes", [ChangeDetectorRef, ElementRef])
|
|
58
58
|
], AXTextBoxComponent);
|
|
59
59
|
export { AXTextBoxComponent };
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNvcmV4L2NvbXBvbmVudHMvIiwic291cmNlcyI6WyJsaWIvdGV4dGJveC90ZXh0Ym94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkksT0FBTyxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFVcEYsSUFBYSxrQkFBa0IsMEJBQS9CLE1BQWEsa0JBQW1CLFNBQVEsbUJBQW1CO0lBdUJ6RCxZQUFzQixHQUFzQixFQUFFLEdBQWU7UUFDM0QsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQURJLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBakI1QyxTQUFJLEdBQThELE1BQU0sQ0FBQztRQUd6RSxhQUFRLEdBQVksSUFBSSxDQUFDO1FBTXpCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsb0JBQWUsR0FBVyxHQUFHLENBQUM7UUFHOUIsMEJBQXFCLEdBQVksS0FBSyxDQUFDO0lBSXZDLENBQUM7Q0FDRixDQUFBOztZQUg0QixpQkFBaUI7WUFBTyxVQUFVOztBQXBCN0Q7SUFEQyxLQUFLLEVBQUU7O2dEQUNFO0FBR1Y7SUFEQyxLQUFLLEVBQUU7O2dEQUNpRTtBQUd6RTtJQURDLEtBQUssRUFBRTs7b0RBQ2lCO0FBR3pCO0lBREMsS0FBSyxFQUFFOztxREFDVTtBQUdsQjtJQURDLEtBQUssRUFBRTs7b0RBQ2tCO0FBRzFCO0lBREMsS0FBSyxFQUFFOzsyREFDc0I7QUFHOUI7SUFEQyxLQUFLLEVBQUU7O2lFQUMrQjtBQXJCNUIsa0JBQWtCO0lBUjlCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxhQUFhO1FBQ3ZCLDQxQ0FBdUM7UUFDdkMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7UUFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07UUFDL0MsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFDLGFBQWEsRUFBRTtRQUM3QixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsb0JBQWtCLEVBQUUsQ0FBQztLQUNsRixDQUFDO3FDQXdCMkIsaUJBQWlCLEVBQU8sVUFBVTtHQXZCbEQsa0JBQWtCLENBMEI5QjtTQTFCWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBWaWV3RW5jYXBzdWxhdGlvbiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhCYXNlVGV4dENvbXBvbmVudCwgQVhWYWxpZGF0YWJsZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LXRleHQtYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dGJveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBob3N0OiB7IHN0eWxlOid3aWR0aDogMTAwJScgfSxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYVmFsaWRhdGFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFRleHRCb3hDb21wb25lbnQgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFYVGV4dEJveENvbXBvbmVudCBleHRlbmRzIEFYQmFzZVRleHRDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1hc2s6IGFueTtcclxuXHJcbiAgQElucHV0KClcclxuICB0eXBlOiAndGV4dCcgfCAnbnVtYmVyJyB8ICd0ZWwnIHwgJ3VybCcgfCAncGFzc3dvcmQnIHwgJ3NlYXJjaCcgPSAndGV4dCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd01hc2s6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1heExlbmd0aDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1hc2tHdWlkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbWFza1BsYWNlaG9sZGVyOiBzdHJpbmcgPSAnXyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbWFza0tlZXBDaGFyUG9zaXRpb25zOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLCByZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIHN1cGVyKGNkciwgcmVmKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -261,6 +261,14 @@ var AXBaseTextComponent = /** @class */ (function (_super) {
|
|
|
261
261
|
Input(),
|
|
262
262
|
__metadata("design:type", String)
|
|
263
263
|
], AXBaseTextComponent.prototype, "placeholder", void 0);
|
|
264
|
+
__decorate([
|
|
265
|
+
Input(),
|
|
266
|
+
__metadata("design:type", String)
|
|
267
|
+
], AXBaseTextComponent.prototype, "autocomplete", void 0);
|
|
268
|
+
__decorate([
|
|
269
|
+
Input(),
|
|
270
|
+
__metadata("design:type", String)
|
|
271
|
+
], AXBaseTextComponent.prototype, "name", void 0);
|
|
264
272
|
__decorate([
|
|
265
273
|
Output(),
|
|
266
274
|
__metadata("design:type", EventEmitter)
|
|
@@ -356,4 +364,4 @@ var AXBaseDropdownComponent = /** @class */ (function (_super) {
|
|
|
356
364
|
return AXBaseDropdownComponent;
|
|
357
365
|
}(AXBaseComponent));
|
|
358
366
|
export { AXBaseDropdownComponent };
|
|
359
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9iYXNlL2VsZW1lbnQuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBcUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUF5QixZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV6RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBd0IsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJcEU7SUFHRTtRQURBLFFBQUcsR0FBVyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7SUFFbEMsQ0FBQztJQUhRO1FBQVIsS0FBSyxFQUFFOztxREFBa0I7SUFJNUIsc0JBQUM7Q0FBQSxBQUxELElBS0M7U0FMcUIsZUFBZTtBQVFyQztJQUE0QywwQ0FBaUI7SUFBN0Q7O0lBRUEsQ0FBQztJQUFELDZCQUFDO0FBQUQsQ0FBQyxBQUZELENBQTRDLFlBQVksR0FFdkQ7O0FBMkJEO0lBQXFELDBDQUFlO0lBQXBFO1FBQUEscUVBc0ZDO1FBcEZTLGtCQUFZLEdBQVcsT0FBTyxDQUFDO1FBTXZDLGNBQVEsR0FBVyxDQUFDLENBQUM7O0lBOEV2QixDQUFDO0lBNUVXLCtDQUFjLEdBQXhCLFVBQ0UsVUFBc0IsRUFDdEIsVUFBa0IsRUFDbEIsVUFBd0I7UUFFeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDO1FBQy9CLElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7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dCI6WyJpbXBvcnQgeyBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdG9yUmVmLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFZhbGlkYXRpb25Db21wb25lbnQsIEFYVmFsaWRhdGlvbiB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLmNsYXNzJztcclxuaW1wb3J0IHsgQVhIdG1sVXRpbCB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcbmltcG9ydCB7IEFYRXZlbnQsIEFYSHRtbEV2ZW50LCBBWFZhbHVlRXZlbnQgfSBmcm9tICcuL2V2ZW50cy5jbGFzcyc7XHJcblxyXG5leHBvcnQgdHlwZSBBWEVsZW1lbnRTaXplID0gJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhCYXNlQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBjc3NDbGFzczogc3RyaW5nO1xyXG4gIHVpZDogc3RyaW5nID0gQVhIdG1sVXRpbC5nZXRVSUQoKTtcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQVhCYXNlSW5wdXRDaGFuZ2VFdmVudCBleHRlbmRzIEFYVmFsdWVFdmVudDxhbnk+IHtcclxuICBpc1VzZXJDaGFuZ2U/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYQmFzZVNpemFibGVDb21wb25lbnQge1xyXG4gIHNpemU6IEFYRWxlbWVudFNpemU7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhCYXNlSW50ZXJhY3RpdmVDb21wb25lbnQge1xyXG4gIGRpc2FibGVkOiBib29sZWFuO1xyXG4gIHRhYkluZGV4OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhCYXNlSW5wdXRDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VJbnRlcmFjdGl2ZUNvbXBvbmVudCB7XHJcbiAgcmVhZG9ubHk6IGJvb2xlYW47XHJcbiAgZm9jdXMoKTogdm9pZDtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhCYXNlVmFsdWVDb21wb25lbnQ8VD4gZXh0ZW5kcyBBWEJhc2VJbnB1dENvbXBvbmVudCB7XHJcbiAgb25WYWx1ZUNoYW5nZWQ/OiBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PFQ+PjtcclxuICB2YWx1ZUNoYW5nZT86IEV2ZW50RW1pdHRlcjxUPjtcclxuICB2YWx1ZTogVDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBWEJhc2VDbGlja2FibGVDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VJbnRlcmFjdGl2ZUNvbXBvbmVudCB7XHJcbiAgY2xpY2s6IEV2ZW50RW1pdHRlcjxBWEh0bWxFdmVudDxNb3VzZUV2ZW50Pj47XHJcbn1cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFZhbGlkYXRhYmxlQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlQ29tcG9uZW50IHtcclxuXHJcbiAgcHJpdmF0ZSBfX3ZhbHVlRmllbGQ6IHN0cmluZyA9ICd2YWx1ZSc7XHJcbiAgcHJpdmF0ZSBfX25hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xyXG4gIHByaXZhdGUgX192YWxpZGF0aW9uOiBBWFZhbGlkYXRpb247XHJcblxyXG5cclxuICBASW5wdXQoKVxyXG4gIHRhYkluZGV4OiBudW1iZXIgPSAwO1xyXG5cclxuICBwcm90ZWN0ZWQgaW5pdFZhbGlkYXRpb24oXHJcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgdmFsdWVGaWVsZDogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbjogQVhWYWxpZGF0aW9uXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9fbmF0aXZlRWxlbWVudCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMuX192YWx1ZUZpZWxkID0gdmFsdWVGaWVsZDtcclxuICAgIHRoaXMuX192YWxpZGF0aW9uID0gdmFsaWRhdGlvbjtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpc1t0aGlzLl9fdmFsdWVGaWVsZF1cclxuICAgIGlmICgoIUFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlKSB8fCAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMCkpXHJcbiAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICB9XHJcblxyXG4gIGdldCB2YWxpZGF0aW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX192YWxpZGF0aW9uO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGUoKTogUHJvbWlzZTxBWFZhbGlkYXRpb25SdWxlUmVzdWx0PiB7XHJcbiAgICBpZiAodGhpcy5fX3ZhbGlkYXRpb24gIT09IHVuZGVmaW5lZCAmJiAodGhpcy5fX3ZhbGlkYXRpb24ucnVsZXMgfHwgW10pLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fX3ZhbGlkYXRpb24udmFsaWRhdGUodGhpc1t0aGlzLl9fdmFsdWVGaWVsZF0pO1xyXG4gICAgICByZXN1bHQudGhlbihjID0+IHtcclxuICAgICAgICBpZiAoYy5yZXN1bHQpIHtcclxuICAgICAgICAgIHRoaXMuY2xlYXJWYWxpZGF0aW9uU3R5bGUodGhpcy5fX25hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYXBwbHlWYWxpZGF0aW9uU3R5bGUodGhpcy5fX25hdGl2ZUVsZW1lbnQsIGMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IHJlc3VsdDogdHJ1ZSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBwcm90ZWN0ZWQgY2xlYXJWYWxpZGF0aW9uU3R5bGUoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNsZWFyOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIGlmICh0aGlzLl9fdmFsaWRhdGlvbiAhPT0gdW5kZWZpbmVkICYmICh0aGlzLl9fdmFsaWRhdGlvbi5ydWxlcyB8fCBbXSkubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBmb3JtR3JvdXAgPSBlbGVtZW50LmNsb3Nlc3QoJy5mb3JtLWdyb3VwJyk7XHJcbiAgICAgIGNvbnN0IGZvcm1JdGVtID0gZm9ybUdyb3VwPy5xdWVyeVNlbGVjdG9yKCcuZm9ybS1pdGVtJykgfHwgZWxlbWVudC5jbG9zZXN0KCcuZm9ybS1pdGVtJykgfHwgZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZm9ybS1pdGVtJyk7O1xyXG4gICAgICBjb25zdCBsYWJlbCA9IGZvcm1Hcm91cD8ucXVlcnlTZWxlY3RvcignLmZvcm0tZ3JvdXAtbGFiZWwnKTtcclxuICAgICAgY29uc3QgcGFyZW50ID0gZm9ybUl0ZW0/LnBhcmVudEVsZW1lbnQgfHwgZWxlbWVudC5wYXJlbnRFbGVtZW50O1xyXG5cclxuICAgICAgZm9ybUl0ZW0/LmNsYXNzTGlzdC5yZW1vdmUoJ3N1Y2Nlc3Mtc3RhdGUnKTtcclxuICAgICAgZm9ybUl0ZW0/LmNsYXNzTGlzdC5yZW1vdmUoJ2Vycm9yLXN0YXRlJyk7XHJcbiAgICAgIC8vZm9ybUl0ZW0/LmNsYXNzTGlzdC5yZW1vdmUoJ3JlcXVpcmVkLXN0YXRlJyk7XHJcbiAgICAgIGlmICghY2xlYXIpIHtcclxuICAgICAgICBmb3JtSXRlbT8uY2xhc3NMaXN0LmFkZCgnc3VjY2Vzcy1zdGF0ZScpO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGxhYmVsPy5jbGFzc0xpc3QucmVtb3ZlKCdlcnJvci10ZXh0Jyk7XHJcbiAgICAgIGlmIChwYXJlbnQucXVlcnlTZWxlY3Rvcignc3Bhbi5lcnJvci10ZXh0JykpIHtcclxuICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQocGFyZW50LnF1ZXJ5U2VsZWN0b3IoJ3NwYW4uZXJyb3ItdGV4dCcpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFwcGx5VmFsaWRhdGlvblN0eWxlKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCB2OiBBWFZhbGlkYXRpb25SdWxlUmVzdWx0KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fX3ZhbGlkYXRpb24gIT09IHVuZGVmaW5lZCAmJiAodGhpcy5fX3ZhbGlkYXRpb24ucnVsZXMgfHwgW10pLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgZm9ybUdyb3VwID0gZWxlbWVudC5jbG9zZXN0KCcuZm9ybS1ncm91cCcpO1xyXG4gICAgICBjb25zdCBmb3JtSXRlbSA9IGZvcm1Hcm91cD8ucXVlcnlTZWxlY3RvcignLmZvcm0taXRlbScpIHx8IGVsZW1lbnQuY2xvc2VzdCgnLmZvcm0taXRlbScpIHx8IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmZvcm0taXRlbScpO1xyXG4gICAgICBjb25zdCBsYWJlbCA9IGZvcm1Hcm91cD8ucXVlcnlTZWxlY3RvcignLmZvcm0tZ3JvdXAtbGFiZWwnKTtcclxuICAgICAgY29uc3QgcGFyZW50ID0gZm9ybUl0ZW0/LnBhcmVudEVsZW1lbnQgfHwgZWxlbWVudC5wYXJlbnRFbGVtZW50O1xyXG4gICAgICBmb3JtSXRlbT8uY2xhc3NMaXN0LmFkZCgnZXJyb3Itc3RhdGUnKTtcclxuICAgICAgZm9ybUl0ZW0/LmNsYXNzTGlzdC5yZW1vdmUoJ3N1Y2Nlc3Mtc3RhdGUnKTtcclxuICAgICAgaWYgKHBhcmVudC5xdWVyeVNlbGVjdG9yKCdzcGFuLmVycm9yLXRleHQnKSkge1xyXG4gICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZChwYXJlbnQucXVlcnlTZWxlY3Rvcignc3Bhbi5lcnJvci10ZXh0JykpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLl9fdmFsaWRhdGlvbi5zaG93TWVzc2FnZSkge1xyXG4gICAgICAgIGNvbnN0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICAgICAgc3Bhbi5pbm5lclRleHQgPSB2Lm1lc3NhZ2U7XHJcbiAgICAgICAgc3Bhbi5jbGFzc0xpc3QuYWRkKCdheCcsICdlcnJvci10ZXh0Jyk7XHJcbiAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKHNwYW4pO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGxhYmVsPy5jbGFzc0xpc3QuYWRkKCdlcnJvci10ZXh0Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhCYXNlVGV4dENvbXBvbmVudCBleHRlbmRzIEFYVmFsaWRhdGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBWEJhc2VTaXphYmxlQ29tcG9uZW50LCBBWEJhc2VWYWx1ZUNvbXBvbmVudDxzdHJpbmc+IHtcclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMuaW5wdXQpIHtcclxuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50Lm9ua2V5dXAgPSAoZSkgPT4ge1xyXG4gICAgICAgIHRoaXMudXNlckNoYW5nZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IChlLnRhcmdldCBhcyBhbnkpLnZhbHVlO1xyXG4gICAgICAgIHRoaXMub25rZXkuZW1pdChlKTtcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50Lm9ua2V5ZG93biA9IChlKSA9PiB7XHJcbiAgICAgICAgdGhpcy51c2VyQ2hhbmdlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IChlLnRhcmdldCBhcyBhbnkpLnZhbHVlO1xyXG4gICAgICAgIHRoaXMub25rZXkuZW1pdChlKTtcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50Lm9ua2V5cHJlc3MgPSAoZSkgPT4ge1xyXG4gICAgICAgIHRoaXMudXNlckNoYW5nZSA9IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMudmFsdWUgPSAoZS50YXJnZXQgYXMgYW55KS52YWx1ZTtcclxuICAgICAgICB0aGlzLm9ua2V5LmVtaXQoZSk7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0VmFsaWRhdGlvbih0aGlzLnJlZiwgJ3ZhbHVlJywgdGhpcy52YWxpZGF0aW9uKTtcclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoKVxyXG4gIHRhYkluZGV4OiBudW1iZXIgPSAwO1xyXG5cclxuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgQENvbnRlbnRDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG5cclxuICBAQ29udGVudENoaWxkKEFYVmFsaWRhdGlvbiwgeyBzdGF0aWM6IHRydWUgfSlcclxuICBwcml2YXRlIF9jb250ZW50VmFsaWRhdGlvbjogQVhWYWxpZGF0aW9uO1xyXG5cclxuICBwcml2YXRlIF92YWxpZGF0aW9uOiBBWFZhbGlkYXRpb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCB2YWxpZGF0aW9uKCk6IEFYVmFsaWRhdGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGlvbiA/IHRoaXMuX3ZhbGlkYXRpb24gOiB0aGlzLl9jb250ZW50VmFsaWRhdGlvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgdmFsaWRhdGlvbih2OiBBWFZhbGlkYXRpb24pIHtcclxuICAgIHRoaXMuX3ZhbGlkYXRpb24gPSB2O1xyXG4gICAgdGhpcy5pbml0VmFsaWRhdGlvbih0aGlzLnJlZiwgJ3ZhbHVlJywgdik7XHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KClcclxuICBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGV4dEFsaWduOiAncmlnaHQnIHwgJ2xlZnQnIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2l6ZTogJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgPSAnbWQnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gIHVzZXJDaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByb3RlY3RlZCByZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25rZXk6IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uQmx1cjogRXZlbnRFbWl0dGVyPEFYSHRtbEV2ZW50PEV2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYSHRtbEV2ZW50PEV2ZW50Pj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxBWEh0bWxFdmVudDxFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWEh0bWxFdmVudDxFdmVudD4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvblZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYQmFzZUlucHV0Q2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWEJhc2VJbnB1dENoYW5nZUV2ZW50PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaWNvbjogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYWxsb3dDbGVhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHZhbHVlKHY6IHN0cmluZykge1xyXG4gICAgaWYgKHYgIT09IHRoaXMuX3ZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IG9sZCA9IHRoaXMuX3ZhbHVlO1xyXG4gICAgICB0aGlzLl92YWx1ZSA9IHY7XHJcblxyXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodik7XHJcbiAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQuZW1pdCh7XHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIHZhbHVlOiB2LFxyXG4gICAgICAgIG9sZFZhbHVlOiBvbGQsXHJcbiAgICAgICAgaXNVc2VyQ2hhbmdlOiB0aGlzLnVzZXJDaGFuZ2VcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMudXNlckNoYW5nZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNsZWFyVmFsaWRhdGlvblN0eWxlKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgdiA/IGZhbHNlIDogdHJ1ZSk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvY3VzKCkge1xyXG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICBjbGVhcigpIHtcclxuICAgIHRoaXMudXNlckNoYW5nZSA9IHRydWU7XHJcblxyXG4gICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgaXNGb2N1c2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcclxuICB9XHJcblxyXG4gIHNldFRleHRBbGlnbigpIHtcclxuICAgIGlmICh0aGlzLnRleHRBbGlnbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgIHJldHVybiAndGV4dC1sZWZ0JztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnRleHRBbGlnbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICByZXR1cm4gJ3RleHQtcmlnaHQnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlSW5wdXRCbHVyKGU6IEV2ZW50KSB7XHJcbiAgICB0aGlzLm9uQmx1ci5lbWl0KHtcclxuICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgaHRtbEV2ZW50OiBlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUlucHV0Rm9jdXMoZTogRXZlbnQpIHtcclxuICAgIHRoaXMub25Gb2N1cy5lbWl0KHtcclxuICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgaHRtbEV2ZW50OiBlXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWEJhc2VCdXR0b25Db21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBWEJhc2VDbGlja2FibGVDb21wb25lbnQsIEFYQmFzZVNpemFibGVDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGRpc2FibGVkOiBib29sZWFuO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBjbGljazogRXZlbnRFbWl0dGVyPEFYSHRtbEV2ZW50PE1vdXNlRXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhIdG1sRXZlbnQ8TW91c2VFdmVudD4+KCk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZTtcclxuXHJcbiAgQElucHV0KClcclxuICB0YWJJbmRleDogbnVtYmVyID0gMDtcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWEJhc2VEcm9wZG93bkNvbXBvbmVudCBleHRlbmRzIEFYQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFYQmFzZUludGVyYWN0aXZlQ29tcG9uZW50LCBBWEJhc2VTaXphYmxlQ29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KClcclxuICBkaXNhYmxlZDogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBzaXplOiBBWEVsZW1lbnRTaXplO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGZpdFBhcmVudDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGFiSW5kZXg6IG51bWJlciA9IDA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0Ryb3BEb3duQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgYWJzdHJhY3QgY2xvc2UoKTtcclxuICBhYnN0cmFjdCBvcGVuKCk7XHJcbn1cclxuIl19
|
|
367
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9iYXNlL2VsZW1lbnQuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBcUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUF5QixZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV6RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBd0IsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJcEU7SUFHRTtRQURBLFFBQUcsR0FBVyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7SUFFbEMsQ0FBQztJQUhRO1FBQVIsS0FBSyxFQUFFOztxREFBa0I7SUFJNUIsc0JBQUM7Q0FBQSxBQUxELElBS0M7U0FMcUIsZUFBZTtBQVFyQztJQUE0QywwQ0FBaUI7SUFBN0Q7O0lBRUEsQ0FBQztJQUFELDZCQUFDO0FBQUQsQ0FBQyxBQUZELENBQTRDLFlBQVksR0FFdkQ7O0FBMkJEO0lBQXFELDBDQUFlO0lBQXBFO1FBQUEscUVBc0ZDO1FBcEZTLGtCQUFZLEdBQVcsT0FBTyxDQUFDO1FBTXZDLGNBQVEsR0FBVyxDQUFDLENBQUM7O0lBOEV2QixDQUFDO0lBNUVXLCtDQUFjLEdBQXhCLFVBQ0UsVUFBc0IsRUFDdEIsVUFBa0IsRUFDbEIsVUFBd0I7UUFFeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDO1FBQy9CLElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7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QUEsQUFuQkQsQ0FBc0QsZUFBZSxHQW1CcEU7U0FuQnFCLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0b3JSZWYsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQ29udGVudENoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYVmFsaWRhdGlvbkNvbXBvbmVudCwgQVhWYWxpZGF0aW9uIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQgfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24uY2xhc3MnO1xyXG5pbXBvcnQgeyBBWEh0bWxVdGlsIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcclxuaW1wb3J0IHsgQVhFdmVudCwgQVhIdG1sRXZlbnQsIEFYVmFsdWVFdmVudCB9IGZyb20gJy4vZXZlbnRzLmNsYXNzJztcclxuXHJcbmV4cG9ydCB0eXBlIEFYRWxlbWVudFNpemUgPSAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWEJhc2VDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGNzc0NsYXNzOiBzdHJpbmc7XHJcbiAgdWlkOiBzdHJpbmcgPSBBWEh0bWxVdGlsLmdldFVJRCgpO1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBBWEJhc2VJbnB1dENoYW5nZUV2ZW50IGV4dGVuZHMgQVhWYWx1ZUV2ZW50PGFueT4ge1xyXG4gIGlzVXNlckNoYW5nZT86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhCYXNlU2l6YWJsZUNvbXBvbmVudCB7XHJcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBWEJhc2VJbnRlcmFjdGl2ZUNvbXBvbmVudCB7XHJcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgdGFiSW5kZXg6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBWEJhc2VJbnB1dENvbXBvbmVudCBleHRlbmRzIEFYQmFzZUludGVyYWN0aXZlQ29tcG9uZW50IHtcclxuICByZWFkb25seTogYm9vbGVhbjtcclxuICBmb2N1cygpOiB2b2lkO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBWEJhc2VWYWx1ZUNvbXBvbmVudDxUPiBleHRlbmRzIEFYQmFzZUlucHV0Q29tcG9uZW50IHtcclxuICBvblZhbHVlQ2hhbmdlZD86IEV2ZW50RW1pdHRlcjxBWFZhbHVlRXZlbnQ8VD4+O1xyXG4gIHZhbHVlQ2hhbmdlPzogRXZlbnRFbWl0dGVyPFQ+O1xyXG4gIHZhbHVlOiBUO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYQmFzZUNsaWNrYWJsZUNvbXBvbmVudCBleHRlbmRzIEFYQmFzZUludGVyYWN0aXZlQ29tcG9uZW50IHtcclxuICBjbGljazogRXZlbnRFbWl0dGVyPEFYSHRtbEV2ZW50PE1vdXNlRXZlbnQ+PjtcclxufVxyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYVmFsaWRhdGFibGVDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnQge1xyXG5cclxuICBwcml2YXRlIF9fdmFsdWVGaWVsZDogc3RyaW5nID0gJ3ZhbHVlJztcclxuICBwcml2YXRlIF9fbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XHJcbiAgcHJpdmF0ZSBfX3ZhbGlkYXRpb246IEFYVmFsaWRhdGlvbjtcclxuXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGFiSW5kZXg6IG51bWJlciA9IDA7XHJcblxyXG4gIHByb3RlY3RlZCBpbml0VmFsaWRhdGlvbihcclxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICB2YWx1ZUZpZWxkOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uOiBBWFZhbGlkYXRpb25cclxuICApIHtcclxuICAgIHRoaXMuX19uYXRpdmVFbGVtZW50ID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5fX3ZhbHVlRmllbGQgPSB2YWx1ZUZpZWxkO1xyXG4gICAgdGhpcy5fX3ZhbGlkYXRpb24gPSB2YWxpZGF0aW9uO1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzW3RoaXMuX192YWx1ZUZpZWxkXVxyXG4gICAgaWYgKCghQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUpIHx8IChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPiAwKSlcclxuICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHZhbGlkYXRpb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fX3ZhbGlkYXRpb247XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZSgpOiBQcm9taXNlPEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQ+IHtcclxuICAgIGlmICh0aGlzLl9fdmFsaWRhdGlvbiAhPT0gdW5kZWZpbmVkICYmICh0aGlzLl9fdmFsaWRhdGlvbi5ydWxlcyB8fCBbXSkubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9fdmFsaWRhdGlvbi52YWxpZGF0ZSh0aGlzW3RoaXMuX192YWx1ZUZpZWxkXSk7XHJcbiAgICAgIHJlc3VsdC50aGVuKGMgPT4ge1xyXG4gICAgICAgIGlmIChjLnJlc3VsdCkge1xyXG4gICAgICAgICAgdGhpcy5jbGVhclZhbGlkYXRpb25TdHlsZSh0aGlzLl9fbmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5hcHBseVZhbGlkYXRpb25TdHlsZSh0aGlzLl9fbmF0aXZlRWxlbWVudCwgYyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHsgcmVzdWx0OiB0cnVlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHByb3RlY3RlZCBjbGVhclZhbGlkYXRpb25TdHlsZShlbGVtZW50OiBIVE1MRWxlbWVudCwgY2xlYXI6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgaWYgKHRoaXMuX192YWxpZGF0aW9uICE9PSB1bmRlZmluZWQgJiYgKHRoaXMuX192YWxpZGF0aW9uLnJ1bGVzIHx8IFtdKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGZvcm1Hcm91cCA9IGVsZW1lbnQuY2xvc2VzdCgnLmZvcm0tZ3JvdXAnKTtcclxuICAgICAgY29uc3QgZm9ybUl0ZW0gPSBmb3JtR3JvdXA/LnF1ZXJ5U2VsZWN0b3IoJy5mb3JtLWl0ZW0nKSB8fCBlbGVtZW50LmNsb3Nlc3QoJy5mb3JtLWl0ZW0nKSB8fCBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mb3JtLWl0ZW0nKTs7XHJcbiAgICAgIGNvbnN0IGxhYmVsID0gZm9ybUdyb3VwPy5xdWVyeVNlbGVjdG9yKCcuZm9ybS1ncm91cC1sYWJlbCcpO1xyXG4gICAgICBjb25zdCBwYXJlbnQgPSBmb3JtSXRlbT8ucGFyZW50RWxlbWVudCB8fCBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XHJcblxyXG4gICAgICBmb3JtSXRlbT8uY2xhc3NMaXN0LnJlbW92ZSgnc3VjY2Vzcy1zdGF0ZScpO1xyXG4gICAgICBmb3JtSXRlbT8uY2xhc3NMaXN0LnJlbW92ZSgnZXJyb3Itc3RhdGUnKTtcclxuICAgICAgLy9mb3JtSXRlbT8uY2xhc3NMaXN0LnJlbW92ZSgncmVxdWlyZWQtc3RhdGUnKTtcclxuICAgICAgaWYgKCFjbGVhcikge1xyXG4gICAgICAgIGZvcm1JdGVtPy5jbGFzc0xpc3QuYWRkKCdzdWNjZXNzLXN0YXRlJyk7XHJcbiAgICAgIH1cclxuICAgICAgLy8gbGFiZWw/LmNsYXNzTGlzdC5yZW1vdmUoJ2Vycm9yLXRleHQnKTtcclxuICAgICAgaWYgKHBhcmVudC5xdWVyeVNlbGVjdG9yKCdzcGFuLmVycm9yLXRleHQnKSkge1xyXG4gICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZChwYXJlbnQucXVlcnlTZWxlY3Rvcignc3Bhbi5lcnJvci10ZXh0JykpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXBwbHlWYWxpZGF0aW9uU3R5bGUoZWxlbWVudDogSFRNTEVsZW1lbnQsIHY6IEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9fdmFsaWRhdGlvbiAhPT0gdW5kZWZpbmVkICYmICh0aGlzLl9fdmFsaWRhdGlvbi5ydWxlcyB8fCBbXSkubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBmb3JtR3JvdXAgPSBlbGVtZW50LmNsb3Nlc3QoJy5mb3JtLWdyb3VwJyk7XHJcbiAgICAgIGNvbnN0IGZvcm1JdGVtID0gZm9ybUdyb3VwPy5xdWVyeVNlbGVjdG9yKCcuZm9ybS1pdGVtJykgfHwgZWxlbWVudC5jbG9zZXN0KCcuZm9ybS1pdGVtJykgfHwgZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZm9ybS1pdGVtJyk7XHJcbiAgICAgIGNvbnN0IGxhYmVsID0gZm9ybUdyb3VwPy5xdWVyeVNlbGVjdG9yKCcuZm9ybS1ncm91cC1sYWJlbCcpO1xyXG4gICAgICBjb25zdCBwYXJlbnQgPSBmb3JtSXRlbT8ucGFyZW50RWxlbWVudCB8fCBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XHJcbiAgICAgIGZvcm1JdGVtPy5jbGFzc0xpc3QuYWRkKCdlcnJvci1zdGF0ZScpO1xyXG4gICAgICBmb3JtSXRlbT8uY2xhc3NMaXN0LnJlbW92ZSgnc3VjY2Vzcy1zdGF0ZScpO1xyXG4gICAgICBpZiAocGFyZW50LnF1ZXJ5U2VsZWN0b3IoJ3NwYW4uZXJyb3ItdGV4dCcpKSB7XHJcbiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKHBhcmVudC5xdWVyeVNlbGVjdG9yKCdzcGFuLmVycm9yLXRleHQnKSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuX192YWxpZGF0aW9uLnNob3dNZXNzYWdlKSB7XHJcbiAgICAgICAgY29uc3Qgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgICAgICBzcGFuLmlubmVyVGV4dCA9IHYubWVzc2FnZTtcclxuICAgICAgICBzcGFuLmNsYXNzTGlzdC5hZGQoJ2F4JywgJ2Vycm9yLXRleHQnKTtcclxuICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoc3Bhbik7XHJcbiAgICAgIH1cclxuICAgICAgLy8gbGFiZWw/LmNsYXNzTGlzdC5hZGQoJ2Vycm9yLXRleHQnKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWEJhc2VUZXh0Q29tcG9uZW50IGV4dGVuZHMgQVhWYWxpZGF0YWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFYQmFzZVNpemFibGVDb21wb25lbnQsIEFYQmFzZVZhbHVlQ29tcG9uZW50PHN0cmluZz4ge1xyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5pbnB1dCkge1xyXG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQub25rZXl1cCA9IChlKSA9PiB7XHJcbiAgICAgICAgdGhpcy51c2VyQ2hhbmdlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnZhbHVlID0gKGUudGFyZ2V0IGFzIGFueSkudmFsdWU7XHJcbiAgICAgICAgdGhpcy5vbmtleS5lbWl0KGUpO1xyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQub25rZXlkb3duID0gKGUpID0+IHtcclxuICAgICAgICB0aGlzLnVzZXJDaGFuZ2UgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLnZhbHVlID0gKGUudGFyZ2V0IGFzIGFueSkudmFsdWU7XHJcbiAgICAgICAgdGhpcy5vbmtleS5lbWl0KGUpO1xyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQub25rZXlwcmVzcyA9IChlKSA9PiB7XHJcbiAgICAgICAgdGhpcy51c2VyQ2hhbmdlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IChlLnRhcmdldCBhcyBhbnkpLnZhbHVlO1xyXG4gICAgICAgIHRoaXMub25rZXkuZW1pdChlKTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRWYWxpZGF0aW9uKHRoaXMucmVmLCAndmFsdWUnLCB0aGlzLnZhbGlkYXRpb24pO1xyXG4gIH1cclxuXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGFiSW5kZXg6IG51bWJlciA9IDA7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSlcclxuICBAQ29udGVudENoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoQVhWYWxpZGF0aW9uLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHByaXZhdGUgX2NvbnRlbnRWYWxpZGF0aW9uOiBBWFZhbGlkYXRpb247XHJcblxyXG4gIHByaXZhdGUgX3ZhbGlkYXRpb246IEFYVmFsaWRhdGlvbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHZhbGlkYXRpb24oKTogQVhWYWxpZGF0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLl92YWxpZGF0aW9uID8gdGhpcy5fdmFsaWRhdGlvbiA6IHRoaXMuX2NvbnRlbnRWYWxpZGF0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCB2YWxpZGF0aW9uKHY6IEFYVmFsaWRhdGlvbikge1xyXG4gICAgdGhpcy5fdmFsaWRhdGlvbiA9IHY7XHJcbiAgICB0aGlzLmluaXRWYWxpZGF0aW9uKHRoaXMucmVmLCAndmFsdWUnLCB2KTtcclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoKVxyXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICB0ZXh0QWxpZ246ICdyaWdodCcgfCAnbGVmdCcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQElucHV0KClcclxuICBzaXplOiAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyA9ICdtZCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYXV0b2NvbXBsZXRlOiBcIm9uXCIgfCBcIm9mZlwiO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG5hbWU6IHN0cmluZztcclxuXHJcbiAgdXNlckNoYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJvdGVjdGVkIHJlZjogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvbmtleTogRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25CbHVyOiBFdmVudEVtaXR0ZXI8QVhIdG1sRXZlbnQ8RXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhIdG1sRXZlbnQ8RXZlbnQ+PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25Gb2N1czogRXZlbnRFbWl0dGVyPEFYSHRtbEV2ZW50PEV2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYSHRtbEV2ZW50PEV2ZW50Pj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uVmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhCYXNlSW5wdXRDaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYQmFzZUlucHV0Q2hhbmdlRXZlbnQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuXHJcbiAgQElucHV0KClcclxuICBpY29uOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQElucHV0KClcclxuICBhbGxvd0NsZWFyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgdmFsdWUodjogc3RyaW5nKSB7XHJcbiAgICBpZiAodiAhPT0gdGhpcy5fdmFsdWUpIHtcclxuICAgICAgY29uc3Qgb2xkID0gdGhpcy5fdmFsdWU7XHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gdjtcclxuXHJcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2KTtcclxuICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgdmFsdWU6IHYsXHJcbiAgICAgICAgb2xkVmFsdWU6IG9sZCxcclxuICAgICAgICBpc1VzZXJDaGFuZ2U6IHRoaXMudXNlckNoYW5nZVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy51c2VyQ2hhbmdlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY2xlYXJWYWxpZGF0aW9uU3R5bGUodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCB2ID8gZmFsc2UgOiB0cnVlKTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZm9jdXMoKSB7XHJcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIGNsZWFyKCkge1xyXG4gICAgdGhpcy51c2VyQ2hhbmdlID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IG51bGw7XHJcbiAgfVxyXG5cclxuICBpc0ZvY3VzZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50ID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgc2V0VGV4dEFsaWduKCkge1xyXG4gICAgaWYgKHRoaXMudGV4dEFsaWduID09PSAnbGVmdCcpIHtcclxuICAgICAgcmV0dXJuICd0ZXh0LWxlZnQnO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudGV4dEFsaWduID09PSAncmlnaHQnKSB7XHJcbiAgICAgIHJldHVybiAndGV4dC1yaWdodCc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVJbnB1dEJsdXIoZTogRXZlbnQpIHtcclxuICAgIHRoaXMub25CbHVyLmVtaXQoe1xyXG4gICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICBodG1sRXZlbnQ6IGVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlSW5wdXRGb2N1cyhlOiBFdmVudCkge1xyXG4gICAgdGhpcy5vbkZvY3VzLmVtaXQoe1xyXG4gICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICBodG1sRXZlbnQ6IGVcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYQmFzZUJ1dHRvbkNvbXBvbmVudCBleHRlbmRzIEFYQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFYQmFzZUNsaWNrYWJsZUNvbXBvbmVudCwgQVhCYXNlU2l6YWJsZUNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGNsaWNrOiBFdmVudEVtaXR0ZXI8QVhIdG1sRXZlbnQ8TW91c2VFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWEh0bWxFdmVudDxNb3VzZUV2ZW50Pj4oKTtcclxuXHJcbiAgQElucHV0KClcclxuICBzaXplOiBBWEVsZW1lbnRTaXplO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHRhYkluZGV4OiBudW1iZXIgPSAwO1xyXG5cclxufVxyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYQmFzZURyb3Bkb3duQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQVhCYXNlSW50ZXJhY3RpdmVDb21wb25lbnQsIEFYQmFzZVNpemFibGVDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGRpc2FibGVkOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNpemU6IEFYRWxlbWVudFNpemU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZml0UGFyZW50OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICB0YWJJbmRleDogbnVtYmVyID0gMDtcclxuXHJcbiAgQElucHV0KClcclxuICBzaG93RHJvcERvd25CdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBhYnN0cmFjdCBjbG9zZSgpO1xyXG4gIGFic3RyYWN0IG9wZW4oKTtcclxufVxyXG4iXX0=
|
|
@@ -125,8 +125,8 @@ var AXCalendarBoxComponent = /** @class */ (function () {
|
|
|
125
125
|
}
|
|
126
126
|
};
|
|
127
127
|
AXCalendarBoxComponent.prototype.getTitle = function (date) {
|
|
128
|
-
if (this.dayStyle.find(function (c) { return c.date == date.toISOString().split('T')[0]; })) {
|
|
129
|
-
return this.dayStyle.find(function (c) { return c.date == date.toISOString().split('T')[0]; }).text;
|
|
128
|
+
if (this.dayStyle.find(function (c) { return c.date.split('T')[0] == date.toISOString().split('T')[0]; })) {
|
|
129
|
+
return this.dayStyle.find(function (c) { return c.date.split('T')[0] == date.toISOString().split('T')[0]; }).text;
|
|
130
130
|
}
|
|
131
131
|
else {
|
|
132
132
|
return '';
|
|
@@ -459,4 +459,4 @@ var AXCalendarBoxComponent = /** @class */ (function () {
|
|
|
459
459
|
return AXCalendarBoxComponent;
|
|
460
460
|
}());
|
|
461
461
|
export { AXCalendarBoxComponent };
|
|
462
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9jYWxlbmRhci9jYWxlbmRhci1ib3gvY2FsZW5kYXItYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEosT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQWtCLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd6RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBeUJ4QztJQWtJRSxnQ0FBb0IsR0FBc0IsRUFBVSxHQUFlO1FBQS9DLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQWpJbkUsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQUVoQixNQUFDLEdBQUc7WUFDVixNQUFNLEVBQUU7Z0JBQ04sTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsSUFBSSxJQUFJO2dCQUN0RCxHQUFHLEVBQUUsS0FBSztnQkFDVixNQUFNLEVBQUUsQ0FBQzthQUNWO1lBQ0QsU0FBUyxFQUFFO2dCQUNULE1BQU0sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLElBQUksSUFBSTtnQkFDekQsR0FBRyxFQUFFLEtBQUs7Z0JBQ1YsTUFBTSxFQUFFLENBQUM7YUFDVjtTQUNGLENBQUM7UUFLRixTQUFJLEdBQWtCLElBQUksQ0FBQztRQWtCM0Isc0JBQWlCLEdBQVksSUFBSSxDQUFDO1FBR2xDLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFPUCxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUV4QyxXQUFNLEdB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QUssRUFBRTtrQ0FJWSxJQUFJO3lDQUFKLElBQUk7dURBRHZCO0lBekZVLHNCQUFzQjtRQU5sQyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLGk2T0FBNEM7WUFDNUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7WUFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07U0FDaEQsQ0FBQzt5Q0FtSXlCLGlCQUFpQixFQUFlLFVBQVU7T0FsSXhELHNCQUFzQixDQXNhbEM7SUFBRCw2QkFBQztDQUFBLEFBdGFELElBc2FDO1NBdGFZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIFZpZXdFbmNhcHN1bGF0aW9uLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYRGF0ZVRpbWUsIEFYRGF0ZVRpbWVSYW5nZSwgQVhDYWxlbmRhclR5cGUsIEFYVHJhbnNsYXRvciB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcbmltcG9ydCB7IEFYQmFzZVNpemFibGVDb21wb25lbnQsIEFYRWxlbWVudFNpemUgfSBmcm9tICcuLi8uLi9iYXNlL2VsZW1lbnQuY2xhc3MnO1xyXG5pbXBvcnQgeyBBWFZhbHVlRXZlbnQgfSBmcm9tICcuLi8uLi9iYXNlL2V2ZW50cy5jbGFzcyc7XHJcbmltcG9ydCB7IEFYQ29uZmlnIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcclxuXHJcbmV4cG9ydCB0eXBlIEFYQ2FsZW5kYXJWaWV3VHlwZSA9ICd5ZWFyJyB8ICdtb250aCcgfCAnZGF5JztcclxuXHJcbmV4cG9ydCB0eXBlIEFYQ2FsZW5kYXJIb2xpZGF5cyA9IEFYQ2FsZW5kYXJIb2xpZGF5W107XHJcbmV4cG9ydCB0eXBlIEFYQ2FsZW5kYXJIb2xpZGF5c0Z1bmMgPSAoc3RhcnQ6IERhdGUsIGVuZDogRGF0ZSwgdHlwZTogQVhDYWxlbmRhclR5cGUpID0+IEFYQ2FsZW5kYXJIb2xpZGF5W107XHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhDYWxlbmRhckhvbGlkYXkge1xyXG4gIGRhdGU6IERhdGU7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbj86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQVhDYWxlbmRhcldlZWtlbmRzID0gQVhDYWxlbmRhcldlZWtlbmRbXTtcclxuZXhwb3J0IHR5cGUgQVhDYWxlbmRhcldlZWtlbmRzRnVuYyA9IChzdGFydDogRGF0ZSwgZW5kOiBEYXRlLCB0eXBlOiBBWENhbGVuZGFyVHlwZSkgPT4gQVhDYWxlbmRhcldlZWtlbmRbXTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhDYWxlbmRhcldlZWtlbmQge1xyXG4gIGluZGV4RGF5OiBudW1iZXI7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXgtY2FsZW5kYXItYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXItYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWENhbGVuZGFyQm94Q29tcG9uZW50IGltcGxlbWVudHMgQVhCYXNlU2l6YWJsZUNvbXBvbmVudCB7XHJcbiAgd2Vla2RheXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIHByaXZhdGUgZCA9IHtcclxuICAgIGphbGFsaToge1xyXG4gICAgICBsb2NhbGU6IEFYQ29uZmlnLmdldCgnZGF0ZVRpbWUuamFsYWxpLmxvY2FsZScpIHx8ICdmYScsXHJcbiAgICAgIGRpcjogJ3J0bCcsXHJcbiAgICAgIG51bWJlcjogMVxyXG4gICAgfSxcclxuICAgIGdyZWdvcmlhbjoge1xyXG4gICAgICBsb2NhbGU6IEFYQ29uZmlnLmdldCgnZGF0ZVRpbWUuZ3JlZ29yaWFuLmxvY2FsZScpIHx8ICdlbicsXHJcbiAgICAgIGRpcjogJ2x0cicsXHJcbiAgICAgIG51bWJlcjogMFxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIG51bVJvdGF0ZTogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNpemU6IEFYRWxlbWVudFNpemUgPSAnbWQnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHR5cGU6IEFYQ2FsZW5kYXJUeXBlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGxvY2FsZTogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGRpcjogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1pbjogRGF0ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBtYXg6IERhdGU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0YWJsZUhvbGlkYXk6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGRheVN0eWxlID0gW107XHJcblxyXG4gIHByaXZhdGUgZ2V0SG9saWRheTogQVhDYWxlbmRhckhvbGlkYXlzIHwgQVhDYWxlbmRhckhvbGlkYXlzRnVuYztcclxuXHJcbiAgcHJpdmF0ZSBnZXRXZWVrZW5kOiBBWENhbGVuZGFyV2Vla2VuZHMgfCBBWENhbGVuZGFyV2Vla2VuZHNGdW5jO1xyXG5cclxuICBASW5wdXQoJ3Nob3dUb2RheUJ1dHRvbicpXHJcbiAgcHVibGljIHNob3dUb2RheUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBtYXRyaXg6IGFueVtdID0gW107XHJcbiAgcm90YXRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3ZpZXc6IEFYQ2FsZW5kYXJWaWV3VHlwZSA9ICdkYXknO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCB2aWV3KCk6IEFYQ2FsZW5kYXJWaWV3VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmlldztcclxuICB9XHJcbiAgcHVibGljIHNldCB2aWV3KHY6IEFYQ2FsZW5kYXJWaWV3VHlwZSkge1xyXG4gICAgdGhpcy5fdmlldyA9IHY7XHJcbiAgICB0aGlzLm5hdmlnYXRlKDApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZGVwdGg6IEFYQ2FsZW5kYXJWaWV3VHlwZSA9ICdkYXknO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgZGVwdGgoKTogQVhDYWxlbmRhclZpZXdUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLl9kZXB0aDtcclxuICB9XHJcbiAgcHVibGljIHNldCBkZXB0aCh2OiBBWENhbGVuZGFyVmlld1R5cGUpIHtcclxuICAgIHRoaXMuX2RlcHRoID0gdjtcclxuICAgIHRoaXMudmlldyA9IHY7XHJcbiAgfVxyXG5cclxuICB2aWV3UmFuZ2U6IEFYRGF0ZVRpbWVSYW5nZTtcclxuICBwcml2YXRlIGhvbGlkYXlzOiBBWENhbGVuZGFySG9saWRheVtdID0gW107XHJcbiAgcHJpdmF0ZSB3ZWVrZW5kczogQVhDYWxlbmRhcldlZWtlbmRbXSA9IFtdO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvblZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYVmFsdWVFdmVudDxEYXRlPj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYVmFsdWVFdmVudDxEYXRlPj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb25DbGljazogRXZlbnRFbWl0dGVyPEFYVmFsdWVFdmVudDxEYXRlPj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYVmFsdWVFdmVudDxEYXRlPj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuXHJcbiAgcHJpdmF0ZSBfdmFsdWU6IEFYRGF0ZVRpbWU7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlPy5kYXRlO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHZhbHVlKHY6IERhdGUpIHtcclxuICAgIGxldCB2djogQVhEYXRlVGltZTtcclxuICAgIGlmICh2KSB7XHJcbiAgICAgIHZ2ID0gQVhEYXRlVGltZS5jb252ZXJ0KHYpO1xyXG4gICAgfVxyXG4gICAgbGV0IHVuVmFsaWREYXRlID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5tYXggfHwgdGhpcy5taW4pIHtcclxuICAgICAgdW5WYWxpZERhdGUgPSB0aGlzLmlzSW5NSW5NYXhSYW5nZSh2dik7XHJcbiAgICB9XHJcbiAgICBpZiAoIXVuVmFsaWREYXRlKSB7XHJcbiAgICAgIGlmICh2diAmJiAhdnYuZXF1YWwodGhpcy5fdmFsdWUpKSB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2djtcclxuICAgICAgICB0aGlzLl92YWx1ZS50eXBlID0gdGhpcy50eXBlO1xyXG4gICAgICAgIHRoaXMuc2V0Rm9jdXModGhpcy5fdmFsdWUuY2xvbmUoKSk7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZ2LmRhdGUpO1xyXG4gICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQuZW1pdCh7XHJcbiAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgICB2YWx1ZTogdGhpcy5fdmFsdWU/LmRhdGUsXHJcbiAgICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh2ID09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcclxuICAgICAgICB0aGlzLmZvY3VzZWRWYWx1ZSA9IHRoaXMudG9kYXk7XHJcbiAgICAgICAgdGhpcy52aWV3UmFuZ2UgPSB0aGlzLnRvZGF5Lm1vbnRoLnJhbmdlO1xyXG4gICAgICAgIHRoaXMubmF2aWdhdGUoMCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5vbkNsaWNrLmVtaXQoe1xyXG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICB2YWx1ZTogdGhpcy5fdmFsdWU/LmRhdGUsXHJcbiAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnRcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb2N1c2VkVmFsdWU6IEFYRGF0ZVRpbWU7XHJcbiAgZ2V0IHRvZGF5KCk6IEFYRGF0ZVRpbWUge1xyXG4gICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKG5ldyBEYXRlKCksIHRoaXMudHlwZSk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgcmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICAvLyBzZXQgZGVmYXVsdHNcclxuICAgIHRoaXMuZ2V0SG9saWRheSA9IEFYQ29uZmlnLmdldCgnZGF0ZVRpbWUuaG9saWRheXMnKTtcclxuICAgIHRoaXMuZ2V0V2Vla2VuZCA9IEFYQ29uZmlnLmdldCgnZGF0ZVRpbWUud2Vla2VuZHMnKTtcclxuICB9XHJcbiAgZmluZERheShkYXRlOiBBWERhdGVUaW1lKSB7XHJcblxyXG4gICAgaWYgKHRoaXMuZGF5U3R5bGUuZmluZCgoYykgPT4gYy5kYXRlLnNwbGl0KCdUJylbMF0gPT0gZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF0pKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRTdHlsZShkYXRlOiBBWERhdGVUaW1lKSB7XHJcbiAgICBpZiAodGhpcy5kYXlTdHlsZS5maW5kKChjKSA9PiBjLmRhdGUuc3BsaXQoJ1QnKVswXSA9PSBkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGF5U3R5bGUuZmluZCgoYykgPT4gYy5kYXRlLnNwbGl0KCdUJylbMF0gPT0gZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF0pLnN0eWxlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VGl0bGUoZGF0ZTogQVhEYXRlVGltZSkge1xyXG4gICAgaWYgKHRoaXMuZGF5U3R5bGUuZmluZCgoYykgPT4gYy5kYXRlID09IGRhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kYXlTdHlsZS5maW5kKChjKSA9PiBjLmRhdGUgPT0gZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF0pLnRleHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZm9jdXNlZFZhbHVlID0gbmV3IEFYRGF0ZVRpbWUobmV3IERhdGUoKSwgdGhpcy50eXBlKTtcclxuICAgIC8vXHJcbiAgICB0aGlzLmluaXRMYXlvdXQoKTtcclxuICAgIC8vXHJcbiAgICB0aGlzLnZpZXdSYW5nZSA9IHRoaXMudG9kYXkubW9udGgucmFuZ2U7XHJcbiAgICBpZiAodGhpcy52YWx1ZSkge1xyXG4gICAgICB0aGlzLnNldEZvY3VzKG5ldyBBWERhdGVUaW1lKHRoaXMudmFsdWUsIHRoaXMudHlwZSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRGb2N1cyh0aGlzLnRvZGF5KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnZpZXcgPSAnZGF5JztcclxuICB9XHJcblxyXG4gIGdldFZpZXdDb21wYWlyZSh2aWV3OiBBWENhbGVuZGFyVmlld1R5cGUpIHtcclxuICAgIHN3aXRjaCAodmlldykge1xyXG4gICAgICBjYXNlICdkYXknOlxyXG4gICAgICAgIHJldHVybiAnWU1EJztcclxuICAgICAgY2FzZSAnbW9udGgnOlxyXG4gICAgICAgIHJldHVybiAnWU0nO1xyXG4gICAgICBjYXNlICd5ZWFyJzpcclxuICAgICAgICByZXR1cm4gJ1knO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5uYXZpZ2F0ZSgwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdExheW91dCgpIHtcclxuICAgIGlmICghdGhpcy50eXBlKSB7XHJcbiAgICAgIHRoaXMudHlwZSA9IEFYQ29uZmlnLmdldCgnZGF0ZVRpbWUudHlwZScpIHx8ICdncmVnb3JpYW4nO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmxvY2FsZSkge1xyXG4gICAgICB0aGlzLmxvY2FsZSA9IHRoaXMuZFt0aGlzLnR5cGVdPy5sb2NhbGUgfHwgdGhpcy5sb2NhbGU7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuZGlyKSB7XHJcbiAgICAgIHRoaXMuZGlyID0gdGhpcy5kW3RoaXMudHlwZV0/LmRpciB8fCAnbHRyJztcclxuICAgIH1cclxuICAgIHRoaXMubnVtUm90YXRlID0gdGhpcy5kW3RoaXMudHlwZV0/Lm51bWJlciB8fCAwO1xyXG4gICAgY29uc3QgcGF0aCA9ICdkYXRlVGltZS53ZWVrZGF5c1Nob3J0JztcclxuICAgIHRoaXMud2Vla2RheXMgPSBbXHJcbiAgICAgIEFYVHJhbnNsYXRvci5nZXQoYCR7cGF0aH0uc3VuYCwgdGhpcy5sb2NhbGUpLFxyXG4gICAgICBBWFRyYW5zbGF0b3IuZ2V0KGAke3BhdGh9Lm1vbmAsIHRoaXMubG9jYWxlKSxcclxuICAgICAgQVhUcmFuc2xhdG9yLmdldChgJHtwYXRofS50dWVgLCB0aGlzLmxvY2FsZSksXHJcbiAgICAgIEFYVHJhbnNsYXRvci5nZXQoYCR7cGF0aH0ud2VkYCwgdGhpcy5sb2NhbGUpLFxyXG4gICAgICBBWFRyYW5zbGF0b3IuZ2V0KGAke3BhdGh9LnRodWAsIHRoaXMubG9jYWxlKSxcclxuICAgICAgQVhUcmFuc2xhdG9yLmdldChgJHtwYXRofS5mcmlgLCB0aGlzLmxvY2FsZSksXHJcbiAgICAgIEFYVHJhbnNsYXRvci5nZXQoYCR7cGF0aH0uc2F0YCwgdGhpcy5sb2NhbGUpXHJcbiAgICBdO1xyXG4gIH1cclxuXHJcbiAgZ2V0VG9kYXlOYW1lKCkge1xyXG4gICAgcmV0dXJuIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLnRvZGF5JywgdGhpcy5sb2NhbGUpO1xyXG4gIH1cclxuXHJcbiAgcHJldigpIHtcclxuICAgIHRoaXMubmF2aWdhdGUoLTEpO1xyXG4gIH1cclxuXHJcbiAgbmV4dCgpIHtcclxuICAgIHRoaXMubmF2aWdhdGUoMSk7XHJcbiAgfVxyXG5cclxuICByb3RhdGUoYXJyYXksIG4pIHtcclxuICAgIGNvbnN0IGxlbiA9IGFycmF5Lmxlbmd0aDtcclxuICAgIHJldHVybiAhKG4gJSBsZW4pID8gYXJyYXkgOiBuID4gMCA/IGFycmF5Lm1hcCgoZSwgaSwgYSkgPT4gYVsoaSArIG4pICUgbGVuXSkgOiBhcnJheS5tYXAoKGUsIGksIGEpID0+IGFbKGxlbiAtICgobGVuIC0gaSAtIG4pICUgbGVuKSkgJSBsZW5dKTtcclxuICB9XHJcblxyXG4gIG5hdmlnYXRlKHZhbHVlOiBudW1iZXIgfCBBWERhdGVUaW1lKSB7XHJcbiAgICBsZXQgc3RhcnQ6IEFYRGF0ZVRpbWU7XHJcbiAgICBsZXQgZW5kOiBBWERhdGVUaW1lO1xyXG4gICAgaWYgKHRoaXMudmlldyA9PT0gJ2RheScpIHtcclxuICAgICAgbGV0IGZkOiBBWERhdGVUaW1lO1xyXG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBWERhdGVUaW1lKSB7XHJcbiAgICAgICAgZmQgPSB2YWx1ZS5zdGFydE9mKCdtb250aCcpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZkID0gdGhpcy52aWV3UmFuZ2Uuc3RhcnRUaW1lLmFkZCgnZGF5JywgMTUpLmFkZCgnbW9udGgnLCB2YWx1ZSkuc3RhcnRPZignbW9udGgnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3RhcnQgPSBmZC5maXJzdERheU9mV2VlaztcclxuICAgICAgZW5kID0gZmQuZW5kT2YoJ21vbnRoJykuZW5kRGF5T2ZXZWVrO1xyXG5cclxuICAgICAgc3RhcnQgPSBzdGFydC5hZGQoJ2RheScsIC10aGlzLm51bVJvdGF0ZSk7XHJcbiAgICAgIGVuZCA9IGVuZC5hZGQoJ2RheScsIDcpLmFkZCgnZGF5JywgLXRoaXMubnVtUm90YXRlKTtcclxuXHJcbiAgICAgIC8vIFRPRE86IGFwcGx5IHN0YXJ0IG9mIHdlZWtcclxuICAgICAgaWYgKCF0aGlzLnJvdGF0ZWQgJiYgdGhpcy53ZWVrZGF5cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ2phbGFsaScpIHtcclxuICAgICAgICAgIHRoaXMud2Vla2RheXMgPSB0aGlzLnJvdGF0ZSh0aGlzLndlZWtkYXlzLCAtdGhpcy5udW1Sb3RhdGUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLndlZWtkYXlzID0gdGhpcy5yb3RhdGUodGhpcy53ZWVrZGF5cywgdGhpcy5udW1Sb3RhdGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5yb3RhdGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLnZpZXcgPT09ICdtb250aCcpIHtcclxuICAgICAgbGV0IGZkOiBBWERhdGVUaW1lO1xyXG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBWERhdGVUaW1lKSB7XHJcbiAgICAgICAgZmQgPSB2YWx1ZS5zdGFydE9mKCd5ZWFyJyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZmQgPSB0aGlzLnZpZXdSYW5nZS5zdGFydFRpbWUuYWRkKCdkYXknLCAxNSkuYWRkKCd5ZWFyJywgdmFsdWUpLnN0YXJ0T2YoJ3llYXInKTtcclxuICAgICAgfVxyXG4gICAgICBzdGFydCA9IGZkO1xyXG4gICAgICBlbmQgPSBmZC5lbmRPZigneWVhcicpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnZpZXcgPT09ICd5ZWFyJykge1xyXG4gICAgICBsZXQgZmQ6IEFYRGF0ZVRpbWU7XHJcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFYRGF0ZVRpbWUpIHtcclxuICAgICAgICBmZCA9IHZhbHVlLnN0YXJ0T2YoJ3llYXInKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmZCA9IHRoaXMudmlld1JhbmdlLnN0YXJ0VGltZVxyXG4gICAgICAgICAgLmFkZCgnZGF5JywgMTUpXHJcbiAgICAgICAgICAuYWRkKCd5ZWFyJywgdmFsdWUgKiAxMClcclxuICAgICAgICAgIC5zdGFydE9mKCd5ZWFyJyk7XHJcbiAgICAgIH1cclxuICAgICAgc3RhcnQgPSBmZC5hZGQoJ3llYXInLCAtNCk7XHJcbiAgICAgIGVuZCA9IHN0YXJ0LmFkZCgneWVhcicsIDgpLmVuZE9mKCd5ZWFyJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnZpZXdSYW5nZSA9IG5ldyBBWERhdGVUaW1lUmFuZ2Uoc3RhcnQsIGVuZCk7XHJcbiAgICAvL1xyXG4gICAgaWYgKHRoaXMuZ2V0SG9saWRheSAmJiB0eXBlb2YgdGhpcy5nZXRIb2xpZGF5ID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIHRoaXMuaG9saWRheXMgPSB0aGlzLmdldEhvbGlkYXkoc3RhcnQuZGF0ZSwgZW5kLmRhdGUsIHRoaXMudHlwZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZ2V0V2Vla2VuZCAmJiB0eXBlb2YgdGhpcy5nZXRXZWVrZW5kID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIHRoaXMud2Vla2VuZHMgPSB0aGlzLmdldFdlZWtlbmQoc3RhcnQuZGF0ZSwgZW5kLmRhdGUsIHRoaXMudHlwZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9cclxuICAgIGlmICh0aGlzLnZpZXcgPT09ICdkYXknKSB7XHJcbiAgICAgIHRoaXMubWF0cml4ID0gdGhpcy5tYXRyaXhpZnkodGhpcy5hcHBseVN0eWxlKHRoaXMudmlld1JhbmdlLmVudW11cmF0ZSgnZGF5JywgdGhpcy50eXBlKSksIDcpO1xyXG4gICAgICBpZiAodGhpcy5tYXRyaXgubGVuZ3RoID4gMCAmJiB0aGlzLm1hdHJpeFswXS5maW5kKChjKSA9PiBjLm5leHRNb250aCA9PT0gZmFsc2UpID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLm1hdHJpeC5zcGxpY2UoMCwgMSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMubWF0cml4W3RoaXMubWF0cml4Lmxlbmd0aCAtIDFdLmZpbmQoKGMpID0+IGMubmV4dE1vbnRoID09PSBmYWxzZSkgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMubWF0cml4LnNwbGljZSh0aGlzLm1hdHJpeC5sZW5ndGggLSAxLCAxKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLnZpZXcgPT09ICdtb250aCcpIHtcclxuICAgICAgdGhpcy5tYXRyaXggPSB0aGlzLm1hdHJpeGlmeSh0aGlzLmFwcGx5U3R5bGUodGhpcy52aWV3UmFuZ2UuZW51bXVyYXRlKCdtb250aCcsIHRoaXMudHlwZSkpLCAzKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy52aWV3ID09PSAneWVhcicpIHtcclxuICAgICAgdGhpcy5tYXRyaXggPSB0aGlzLm1hdHJpeGlmeSh0aGlzLmFwcGx5U3R5bGUodGhpcy52aWV3UmFuZ2UuZW51bXVyYXRlKCd5ZWFyJywgdGhpcy50eXBlKSksIDMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBseVN0eWxlKGRhdGVzOiBBWERhdGVUaW1lW10pOiBhbnlbXSB7XHJcbiAgICBjb25zdCBpdGVtczogYW55W10gPSBbXTtcclxuICAgIGRhdGVzLmZvckVhY2goKGQsIGksIGopID0+IHtcclxuICAgICAgY29uc3QgaXRlbTogYW55ID0ge307XHJcbiAgICAgIGl0ZW0uZGF0ZSA9IGQ7XHJcblxyXG4gICAgICBpdGVtLnNlbGVjdGVkID0gZC5jb21wYWlyZU5ldyhuZXcgQVhEYXRlVGltZSh0aGlzLnZhbHVlLCB0aGlzLnR5cGUpLCB0aGlzLmdldFZpZXdDb21wYWlyZSh0aGlzLnZpZXcpLCB0aGlzLnR5cGUpID09PSAwO1xyXG4gICAgICBpdGVtLmZvY3VzZWQgPSBkLmNvbXBhaXJlTmV3KHRoaXMuZm9jdXNlZFZhbHVlLCB0aGlzLmdldFZpZXdDb21wYWlyZSh0aGlzLnZpZXcpLCB0aGlzLnR5cGUpID09PSAwO1xyXG4gICAgICBpdGVtLnRvZGF5ID0gdGhpcy50b2RheSAmJiBkLmNvbXBhaXJlTmV3KHRoaXMudG9kYXksIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHRoaXMudmlldyksIHRoaXMudHlwZSkgPT09IDA7XHJcbiAgICAgIGlmICh0aGlzLnZpZXcgPT09ICdkYXknKSB7XHJcbiAgICAgICAgLy8gIGl0ZW0ubmV4dE1vbnRoID0gZC5jb21wYWlyZU5ldyh0aGlzLnZpZXdSYW5nZS5zdGFydFRpbWUuYWRkKCdkYXknLCAxMCksICdZTScpICE9PSAwO1xyXG4gICAgICAgIGl0ZW0ubmV4dE1vbnRoID0gZC5jb21wYWlyZU5ldyh0aGlzLnZpZXdSYW5nZS5zdGFydFRpbWUuYWRkKCdkYXknLCAxMCksICdZTScsIHRoaXMudHlwZSkgIT09IDA7XHJcblxyXG4gICAgICAgIGl0ZW0udW5zZWxlY3QgPSB0aGlzLmlzSW5NSW5NYXhSYW5nZShkKTtcclxuICAgICAgICB0aGlzLmhvbGlkYXlzLmZvckVhY2goKGgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGNvbXAgPSBkLmNvbXBhaXJlTmV3KG5ldyBBWERhdGVUaW1lKGguZGF0ZSwgdGhpcy50eXBlKSwgJ1lNRCcsIHRoaXMudHlwZSk7XHJcbiAgICAgICAgICBpZiAoY29tcCA9PT0gMCkge1xyXG4gICAgICAgICAgICBpdGVtLmhvbGlkYXkgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RhYmxlSG9saWRheSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICBpdGVtLnVuc2VsZWN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjb25zdCBpbmRleERheSA9IGkgLSBNYXRoLmZsb29yKGkgLyA3KSAqIDc7XHJcbiAgICAgICAgdGhpcy53ZWVrZW5kcy5mb3JFYWNoKChjYykgPT4ge1xyXG4gICAgICAgICAgaWYgKE51bWJlcihjYykgPT09IGluZGV4RGF5KSB7XHJcbiAgICAgICAgICAgIGl0ZW0uaG9saWRheSA9IHRydWU7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGFibGVIb2xpZGF5ID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgIGl0ZW0udW5zZWxlY3QgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaXRlbXMucHVzaChpdGVtKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGl0ZW1zO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlVmlldygpIHtcclxuICAgIGlmICh0aGlzLnZpZXcgPT09ICdkYXknKSB7XHJcbiAgICAgIHRoaXMudmlldyA9ICdtb250aCc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyA9PT0gJ21vbnRoJykge1xyXG4gICAgICB0aGlzLnZpZXcgPSAneWVhcic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtYXRyaXhpZnkoYXJyOiBhbnlbXSwgY29scykge1xyXG4gICAgY29uc3Qgcm93cyA9IE1hdGguY2VpbChhcnIubGVuZ3RoIC8gY29scyk7XHJcbiAgICBjb25zdCBtYXRyaXggPSBbXTtcclxuICAgIGlmIChyb3dzICogY29scyA9PT0gYXJyLmxlbmd0aCkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkgKz0gY29scykge1xyXG4gICAgICAgIG1hdHJpeC5wdXNoKGFyci5zbGljZShpLCBjb2xzICsgaSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbWF0cml4O1xyXG4gIH1cclxuXHJcbiAgc2V0RGF5Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW0pIHtcclxuICAgIGlmIChpdGVtLnVuc2VsZWN0ICE9PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBpdGVtLmRhdGUuZGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIGlzSW5NSW5NYXhSYW5nZShkKSB7XHJcbiAgICBsZXQgciA9IGZhbHNlO1xyXG4gICAgaWYgKGQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBpZiAodGhpcy5taW4gJiYgIXRoaXMubWF4KSB7XHJcbiAgICAgICAgciA9IGQuY29tcGFpcmVOZXcobmV3IEFYRGF0ZVRpbWUodGhpcy5taW4sIHRoaXMudHlwZSksIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHRoaXMudmlldyksIHRoaXMudHlwZSkgPT09IC0xO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm1heCAmJiAhdGhpcy5taW4pIHtcclxuICAgICAgICByID0gZC5jb21wYWlyZU5ldyhuZXcgQVhEYXRlVGltZSh0aGlzLm1heCwgdGhpcy50eXBlKSwgdGhpcy5nZXRWaWV3Q29tcGFpcmUodGhpcy52aWV3KSwgdGhpcy50eXBlKSA9PT0gMTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5taW4gJiYgdGhpcy5tYXgpIHtcclxuICAgICAgICByID1cclxuICAgICAgICAgIGQuY29tcGFpcmVOZXcobmV3IEFYRGF0ZVRpbWUodGhpcy5taW4sIHRoaXMudHlwZSksIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHRoaXMudmlldyksIHRoaXMudHlwZSkgPT09IC0xIHx8XHJcbiAgICAgICAgICBkLmNvbXBhaXJlTmV3KG5ldyBBWERhdGVUaW1lKHRoaXMubWF4LCB0aGlzLnR5cGUpLCB0aGlzLmdldFZpZXdDb21wYWlyZSh0aGlzLnZpZXcpLCB0aGlzLnR5cGUpID09PSAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcjtcclxuICB9XHJcblxyXG4gIHNldE1vbnRoQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIGRhdGU6IEFYRGF0ZVRpbWUpIHtcclxuICAgIGlmICh0aGlzLmRlcHRoID09PSAnbW9udGgnKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBkYXRlLmRhdGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZpZXcgPSAnZGF5JztcclxuICAgICAgdGhpcy5zZXRGb2N1cyhuZXcgQVhEYXRlVGltZSh0aGlzLnZhbHVlLCB0aGlzLnR5cGUpLnNldCgneWVhcicsIGRhdGUueWVhcikuc2V0KCdtb250aCcsIGRhdGUubW9udGhPZlllYXIpKTtcclxuICAgIH1cclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgc2V0WWVhckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCBkYXRlOiBBWERhdGVUaW1lKSB7XHJcbiAgICBpZiAodGhpcy5kZXB0aCA9PT0gJ3llYXInKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBkYXRlLmRhdGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZpZXcgPSAnbW9udGgnO1xyXG4gICAgICB0aGlzLnNldEZvY3VzKG5ldyBBWERhdGVUaW1lKHRoaXMudmFsdWUsIHRoaXMudHlwZSkuc2V0KCd5ZWFyJywgZGF0ZS55ZWFyKSk7XHJcbiAgICB9XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHNldEZvY3VzKGRhdGU6IEFYRGF0ZVRpbWUpIHtcclxuICAgIHRoaXMuZm9jdXNlZFZhbHVlID0gZGF0ZTtcclxuICAgIHRoaXMubmF2aWdhdGUodGhpcy5mb2N1c2VkVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgc2V0VG9kYXkoKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy50b2RheS5kYXRlO1xyXG4gICAgdGhpcy52aWV3ID0gJ2RheSc7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5Rm4oaW5kZXgsIGl0ZW06IGFueSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uZGF0ZS5kYXRlLmdldFRpbWUoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
462
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9jYWxlbmRhci9jYWxlbmRhci1ib3gvY2FsZW5kYXItYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEosT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQWtCLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd6RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBeUJ4QztJQWtJRSxnQ0FBb0IsR0FBc0IsRUFBVSxHQUFlO1FBQS9DLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQWpJbkUsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQUVoQixNQUFDLEdBQUc7WUFDVixNQUFNLEVBQUU7Z0JBQ04sTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsSUFBSSxJQUFJO2dCQUN0RCxHQUFHLEVBQUUsS0FBSztnQkFDVixNQUFNLEVBQUUsQ0FBQzthQUNWO1lBQ0QsU0FBUyxFQUFFO2dCQUNULE1BQU0sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLElBQUksSUFBSTtnQkFDekQsR0FBRyxFQUFFLEtBQUs7Z0JBQ1YsTUFBTSxFQUFFLENBQUM7YUFDVjtTQUNGLENBQUM7UUFLRixTQUFJLEdBQWtCLElBQUksQ0FBQztRQWtCM0Isc0JBQWlCLEdBQVksSUFBSSxDQUFDO1FBR2xDLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFPUCxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUV4QyxXQUFNLEdBQVUsRUFBRSxDQUFDO1FBQ25CLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDakIsVUFBSyxHQUF1QixLQUFLLENBQUM7UUFVbEMsV0FBTSxHQUF1QixLQUFLLENBQUM7UUFZbkMsYUFBUSxHQUF3QixFQUFFLENBQUM7UUFDbkMsYUFBUSxHQUF3QixFQUFFLENBQUM7UUFHM0MsbUJBQWMsR0FBcUMsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFHMUYsWUFBTyxHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUduRixnQkFBVyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBZ0R6RCxlQUFlO1FBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQWpGRCxzQkFBVyx3Q0FBSTthQUFmO1lBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BCLENBQUM7YUFDRCxVQUFnQixDQUFxQjtZQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsQ0FBQzs7O09BSkE7SUFTRCxzQkFBVyx5Q0FBSzthQUFoQjtZQUNFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNyQixDQUFDO2FBQ0QsVUFBaUIsQ0FBcUI7WUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDaEIsQ0FBQzs7O09BSkE7SUFxQkQsc0JBQVcseUNBQUs7YUFBaEI7O1lBQ0UsYUFBTyxJQUFJLENBQUMsTUFBTSwwQ0FBRSxJQUFJLENBQUM7UUFDM0IsQ0FBQzthQUNELFVBQWlCLENBQU87O1lBQ3RCLElBQUksRUFBYyxDQUFDO1lBQ25CLElBQUksQ0FBQyxFQUFFO2dCQUNMLEVBQUUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzVCO1lBQ0QsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUN4QixXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUN4QztZQUNELElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ2hCLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7b0JBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO29CQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO29CQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztvQkFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQzt3QkFDdkIsU0FBUyxFQUFFLElBQUk7d0JBQ2YsS0FBSyxRQUFFLElBQUksQ0FBQyxNQUFNLDBDQUFFLElBQUk7d0JBQ3hCLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWE7cUJBQ3BDLENBQUMsQ0FBQztpQkFDSjtnQkFDRCxJQUFJLENBQUMsSUFBSSxTQUFTLEVBQUU7b0JBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO29CQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO29CQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNsQjtnQkFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztvQkFDaEIsU0FBUyxFQUFFLElBQUk7b0JBQ2YsS0FBSyxRQUFFLElBQUksQ0FBQyxNQUFNLDBDQUFFLElBQUk7b0JBQ3hCLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWE7aUJBQ3BDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQzs7O09BbENBO0lBcUNELHNCQUFJLHlDQUFLO2FBQVQ7WUFDRSxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLENBQUM7OztPQUFBO0lBT0Qsd0NBQU8sR0FBUCxVQUFRLElBQWdCO1FBQ3RCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUF4RCxDQUF3RCxDQUFDLEVBQUU7WUFDdkYsT0FBTyxJQUFJLENBQUM7U0FDYjthQUFNO1lBQ0wsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFDRCx5Q0FBUSxHQUFSLFVBQVMsSUFBZ0I7UUFDdkIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQXhELENBQXdELENBQUMsRUFBRTtZQUN2RixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBeEQsQ0FBd0QsQ0FBQyxDQUFDLEtBQUssQ0FBQztTQUNsRzthQUFNO1lBQ0wsT0FBTyxFQUFFLENBQUM7U0FDWDtJQUNILENBQUM7SUFFRCx5Q0FBUSxHQUFSLFVBQVMsSUFBZ0I7UUFDdkIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQXhELENBQXdELENBQUMsRUFBRTtZQUN2RixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBeEQsQ0FBd0QsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUNqRzthQUFNO1lBQ0wsT0FBTyxFQUFFLENBQUM7U0FDWDtJQUNILENBQUM7SUFFRCx5Q0FBUSxHQUFSO1FBQ0UsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxFQUFFO1FBQ0YsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLEVBQUU7UUFDRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN4QyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDdEQ7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzNCO1FBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELGdEQUFlLEdBQWYsVUFBZ0IsSUFBd0I7UUFDdEMsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxLQUFLLENBQUM7WUFDZixLQUFLLE9BQU87Z0JBQ1YsT0FBTyxJQUFJLENBQUM7WUFDZCxLQUFLLE1BQU07Z0JBQ1QsT0FBTyxHQUFHLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRCxnREFBZSxHQUFmO1FBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRU8sMkNBQVUsR0FBbEI7O1FBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksV0FBVyxDQUFDO1NBQzFEO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFBLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQywwQ0FBRSxNQUFNLEtBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUN4RDtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ2IsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFBLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQywwQ0FBRSxHQUFHLEtBQUksS0FBSyxDQUFDO1NBQzVDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFBLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQywwQ0FBRSxNQUFNLEtBQUksQ0FBQyxDQUFDO1FBQ2hELElBQU0sSUFBSSxHQUFHLHdCQUF3QixDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUc7WUFDZCxZQUFZLENBQUMsR0FBRyxDQUFJLElBQUksU0FBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDNUMsWUFBWSxDQUFDLEdBQUcsQ0FBSSxJQUFJLFNBQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzVDLFlBQVksQ0FBQyxHQUFHLENBQUksSUFBSSxTQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUM1QyxZQUFZLENBQUMsR0FBRyxDQUFJLElBQUksU0FBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDNUMsWUFBWSxDQUFDLEdBQUcsQ0FBSSxJQUFJLFNBQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzVDLFlBQVksQ0FBQyxHQUFHLENBQUksSUFBSSxTQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUM1QyxZQUFZLENBQUMsR0FBRyxDQUFJLElBQUksU0FBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDN0MsQ0FBQztJQUNKLENBQUM7SUFFRCw2Q0FBWSxHQUFaO1FBQ0UsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQscUNBQUksR0FBSjtRQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQscUNBQUksR0FBSjtRQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVELHVDQUFNLEdBQU4sVUFBTyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDekIsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBaEIsQ0FBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBdEMsQ0FBc0MsQ0FBQyxDQUFDO0lBQ2hKLENBQUM7SUFFRCx5Q0FBUSxHQUFSLFVBQVMsS0FBMEI7UUFDakMsSUFBSSxLQUFpQixDQUFDO1FBQ3RCLElBQUksR0FBZSxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUU7WUFDdkIsSUFBSSxFQUFFLFNBQVksQ0FBQztZQUNuQixJQUFJLEtBQUssWUFBWSxVQUFVLEVBQUU7Z0JBQy9CLEVBQUUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzdCO2lCQUFNO2dCQUNMLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ25GO1lBRUQsS0FBSyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUM7WUFDMUIsR0FBRyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDO1lBRXJDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMxQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUVwRCw0QkFBNEI7WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM3QyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO29CQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDN0Q7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUM1RDtnQkFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQzthQUNyQjtTQUNGO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtZQUNoQyxJQUFJLEVBQUUsU0FBWSxDQUFDO1lBQ25CLElBQUksS0FBSyxZQUFZLFVBQVUsRUFBRTtnQkFDL0IsRUFBRSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDNUI7aUJBQU07Z0JBQ0wsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDakY7WUFDRCxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ1gsR0FBRyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDeEI7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQy9CLElBQUksRUFBRSxTQUFZLENBQUM7WUFDbkIsSUFBSSxLQUFLLFlBQVksVUFBVSxFQUFFO2dCQUMvQixFQUFFLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUM1QjtpQkFBTTtnQkFDTCxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTO3FCQUMxQixHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztxQkFDZCxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLENBQUM7cUJBQ3ZCLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNwQjtZQUNELEtBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDMUM7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqRCxFQUFFO1FBQ0YsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7WUFDNUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbEU7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRTtZQUM1RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNsRTtRQUVELEVBQUU7UUFDRixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM3RixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxTQUFTLEtBQUssS0FBSyxFQUFyQixDQUFxQixDQUFDLEtBQUssU0FBUyxFQUFFO2dCQUM3RixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDMUI7WUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLFNBQVMsS0FBSyxLQUFLLEVBQXJCLENBQXFCLENBQUMsS0FBSyxTQUFTLEVBQUU7Z0JBQ3hGLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUMvQztTQUNGO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtZQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDaEc7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMvRjtRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLDJDQUFVLEdBQWxCLFVBQW1CLEtBQW1CO1FBQXRDLGlCQXFDQztRQXBDQyxJQUFNLEtBQUssR0FBVSxFQUFFLENBQUM7UUFDeEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNwQixJQUFNLElBQUksR0FBUSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7WUFFZCxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxVQUFVLENBQUMsS0FBSSxDQUFDLEtBQUssRUFBRSxLQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSSxDQUFDLGVBQWUsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2SCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSSxDQUFDLFlBQVksRUFBRSxLQUFJLENBQUMsZUFBZSxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xHLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSSxDQUFDLGVBQWUsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2RyxJQUFJLEtBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFO2dCQUN2Qix3RkFBd0Y7Z0JBQ3hGLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUUvRixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLEtBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQUMsQ0FBQztvQkFDdEIsSUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNoRixJQUFJLElBQUksS0FBSyxDQUFDLEVBQUU7d0JBQ2QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7d0JBQ3BCLElBQUksS0FBSSxDQUFDLGlCQUFpQixLQUFLLEtBQUssRUFBRTs0QkFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7eUJBQ3RCO3FCQUNGO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUVILElBQU0sVUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNDLEtBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQUMsRUFBRTtvQkFDdkIsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssVUFBUSxFQUFFO3dCQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQzt3QkFDcEIsSUFBSSxLQUFJLENBQUMsaUJBQWlCLEtBQUssS0FBSyxFQUFFOzRCQUNwQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzt5QkFDdEI7cUJBQ0Y7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDSjtZQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCwyQ0FBVSxHQUFWO1FBQ0UsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRTtZQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztTQUNyQjthQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7WUFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRUQsMENBQVMsR0FBVCxVQUFVLEdBQVUsRUFBRSxJQUFJO1FBQ3hCLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMxQyxJQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxLQUFLLEdBQUcsQ0FBQyxNQUFNLEVBQUU7WUFDOUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRTtnQkFDekMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyQztTQUNGO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELDRDQUFXLEdBQVgsVUFBWSxLQUFpQixFQUFFLElBQUk7UUFDakMsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRTtZQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQzdCO1FBRUQsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnREFBZSxHQUFmLFVBQWdCLENBQUM7UUFDZixJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDZCxJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDekIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQzNHO1lBQ0QsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDekIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMxRztZQUNELElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUN4QixDQUFDO29CQUNDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDckcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3hHO1NBQ0Y7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCw4Q0FBYSxHQUFiLFVBQWMsS0FBaUIsRUFBRSxJQUFnQjtRQUMvQyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssT0FBTyxFQUFFO1lBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUN4QjthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1NBQzVHO1FBQ0QsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCw2Q0FBWSxHQUFaLFVBQWEsS0FBaUIsRUFBRSxJQUFnQjtRQUM5QyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssTUFBTSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUN4QjthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7WUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQzdFO1FBQ0QsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCx5Q0FBUSxHQUFSLFVBQVMsSUFBZ0I7UUFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELHlDQUFRLEdBQVI7UUFDRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCwwQ0FBUyxHQUFULFVBQVUsS0FBSyxFQUFFLElBQVM7UUFDeEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNsQyxDQUFDOztnQkFsU3dCLGlCQUFpQjtnQkFBZSxVQUFVOztJQS9HbkU7UUFEQyxLQUFLLEVBQUU7O3dEQUNtQjtJQUczQjtRQURDLEtBQUssRUFBRTs7d0RBQ2E7SUFHckI7UUFEQyxLQUFLLEVBQUU7OzBEQUNPO0lBR2Y7UUFEQyxLQUFLLEVBQUU7O3VEQUNJO0lBR1o7UUFEQyxLQUFLLEVBQUU7a0NBQ0gsSUFBSTt1REFBQztJQUdWO1FBREMsS0FBSyxFQUFFO2tDQUNILElBQUk7dURBQUM7SUFHVjtRQURDLEtBQUssRUFBRTs7cUVBQzBCO0lBR2xDO1FBREMsS0FBSyxFQUFFOzs0REFDTTtJQU9kO1FBREMsS0FBSyxDQUFDLGlCQUFpQixDQUFDOzttRUFDZTtJQU14QztRQURDLEtBQUssRUFBRTs7O3NEQUdQO0lBU0Q7UUFEQyxLQUFLLEVBQUU7Ozt1REFHUDtJQVdEO1FBREMsTUFBTSxFQUFFO2tDQUNPLFlBQVk7a0VBQThEO0lBRzFGO1FBREMsTUFBTSxFQUFFO2tDQUNBLFlBQVk7MkRBQThEO0lBR25GO1FBREMsTUFBTSxFQUFFO2tDQUNJLFlBQVk7K0RBQWtDO0lBSTNEO1FBREMsS0FBSyxFQUFFO2tDQUlZLElBQUk7eUNBQUosSUFBSTt1REFEdkI7SUF6RlUsc0JBQXNCO1FBTmxDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsaTZPQUE0QztZQUM1QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtZQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtTQUNoRCxDQUFDO3lDQW1JeUIsaUJBQWlCLEVBQWUsVUFBVTtPQWxJeEQsc0JBQXNCLENBcWFsQztJQUFELDZCQUFDO0NBQUEsQUFyYUQsSUFxYUM7U0FyYVksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgVmlld0VuY2Fwc3VsYXRpb24sIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhEYXRlVGltZSwgQVhEYXRlVGltZVJhbmdlLCBBWENhbGVuZGFyVHlwZSwgQVhUcmFuc2xhdG9yIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcclxuaW1wb3J0IHsgQVhCYXNlU2l6YWJsZUNvbXBvbmVudCwgQVhFbGVtZW50U2l6ZSB9IGZyb20gJy4uLy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XHJcbmltcG9ydCB7IEFYVmFsdWVFdmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvZXZlbnRzLmNsYXNzJztcclxuaW1wb3J0IHsgQVhDb25maWcgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5cclxuZXhwb3J0IHR5cGUgQVhDYWxlbmRhclZpZXdUeXBlID0gJ3llYXInIHwgJ21vbnRoJyB8ICdkYXknO1xyXG5cclxuZXhwb3J0IHR5cGUgQVhDYWxlbmRhckhvbGlkYXlzID0gQVhDYWxlbmRhckhvbGlkYXlbXTtcclxuZXhwb3J0IHR5cGUgQVhDYWxlbmRhckhvbGlkYXlzRnVuYyA9IChzdGFydDogRGF0ZSwgZW5kOiBEYXRlLCB0eXBlOiBBWENhbGVuZGFyVHlwZSkgPT4gQVhDYWxlbmRhckhvbGlkYXlbXTtcclxuZXhwb3J0IGludGVyZmFjZSBBWENhbGVuZGFySG9saWRheSB7XHJcbiAgZGF0ZTogRGF0ZTtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBBWENhbGVuZGFyV2Vla2VuZHMgPSBBWENhbGVuZGFyV2Vla2VuZFtdO1xyXG5leHBvcnQgdHlwZSBBWENhbGVuZGFyV2Vla2VuZHNGdW5jID0gKHN0YXJ0OiBEYXRlLCBlbmQ6IERhdGUsIHR5cGU6IEFYQ2FsZW5kYXJUeXBlKSA9PiBBWENhbGVuZGFyV2Vla2VuZFtdO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBWENhbGVuZGFyV2Vla2VuZCB7XHJcbiAgaW5kZXhEYXk6IG51bWJlcjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC1jYWxlbmRhci1ib3gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci1ib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYQ2FsZW5kYXJCb3hDb21wb25lbnQgaW1wbGVtZW50cyBBWEJhc2VTaXphYmxlQ29tcG9uZW50IHtcclxuICB3ZWVrZGF5czogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBkID0ge1xyXG4gICAgamFsYWxpOiB7XHJcbiAgICAgIGxvY2FsZTogQVhDb25maWcuZ2V0KCdkYXRlVGltZS5qYWxhbGkubG9jYWxlJykgfHwgJ2ZhJyxcclxuICAgICAgZGlyOiAncnRsJyxcclxuICAgICAgbnVtYmVyOiAxXHJcbiAgICB9LFxyXG4gICAgZ3JlZ29yaWFuOiB7XHJcbiAgICAgIGxvY2FsZTogQVhDb25maWcuZ2V0KCdkYXRlVGltZS5ncmVnb3JpYW4ubG9jYWxlJykgfHwgJ2VuJyxcclxuICAgICAgZGlyOiAnbHRyJyxcclxuICAgICAgbnVtYmVyOiAwXHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgbnVtUm90YXRlOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZSA9ICdtZCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdHlwZTogQVhDYWxlbmRhclR5cGU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbG9jYWxlOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGlyOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbWluOiBEYXRlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1heDogRGF0ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZWxlY3RhYmxlSG9saWRheTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGF5U3R5bGUgPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBnZXRIb2xpZGF5OiBBWENhbGVuZGFySG9saWRheXMgfCBBWENhbGVuZGFySG9saWRheXNGdW5jO1xyXG5cclxuICBwcml2YXRlIGdldFdlZWtlbmQ6IEFYQ2FsZW5kYXJXZWVrZW5kcyB8IEFYQ2FsZW5kYXJXZWVrZW5kc0Z1bmM7XHJcblxyXG4gIEBJbnB1dCgnc2hvd1RvZGF5QnV0dG9uJylcclxuICBwdWJsaWMgc2hvd1RvZGF5QnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIG1hdHJpeDogYW55W10gPSBbXTtcclxuICByb3RhdGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfdmlldzogQVhDYWxlbmRhclZpZXdUeXBlID0gJ2RheSc7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHZpZXcoKTogQVhDYWxlbmRhclZpZXdUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLl92aWV3O1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHZpZXcodjogQVhDYWxlbmRhclZpZXdUeXBlKSB7XHJcbiAgICB0aGlzLl92aWV3ID0gdjtcclxuICAgIHRoaXMubmF2aWdhdGUoMCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kZXB0aDogQVhDYWxlbmRhclZpZXdUeXBlID0gJ2RheSc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBkZXB0aCgpOiBBWENhbGVuZGFyVmlld1R5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RlcHRoO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGRlcHRoKHY6IEFYQ2FsZW5kYXJWaWV3VHlwZSkge1xyXG4gICAgdGhpcy5fZGVwdGggPSB2O1xyXG4gICAgdGhpcy52aWV3ID0gdjtcclxuICB9XHJcblxyXG4gIHZpZXdSYW5nZTogQVhEYXRlVGltZVJhbmdlO1xyXG4gIHByaXZhdGUgaG9saWRheXM6IEFYQ2FsZW5kYXJIb2xpZGF5W10gPSBbXTtcclxuICBwcml2YXRlIHdlZWtlbmRzOiBBWENhbGVuZGFyV2Vla2VuZFtdID0gW107XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uVmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PERhdGU+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PERhdGU+PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PERhdGU+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PERhdGU+PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG5cclxuICBwcml2YXRlIF92YWx1ZTogQVhEYXRlVGltZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU/LmRhdGU7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgdmFsdWUodjogRGF0ZSkge1xyXG4gICAgbGV0IHZ2OiBBWERhdGVUaW1lO1xyXG4gICAgaWYgKHYpIHtcclxuICAgICAgdnYgPSBBWERhdGVUaW1lLmNvbnZlcnQodik7XHJcbiAgICB9XHJcbiAgICBsZXQgdW5WYWxpZERhdGUgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLm1heCB8fCB0aGlzLm1pbikge1xyXG4gICAgICB1blZhbGlkRGF0ZSA9IHRoaXMuaXNJbk1Jbk1heFJhbmdlKHZ2KTtcclxuICAgIH1cclxuICAgIGlmICghdW5WYWxpZERhdGUpIHtcclxuICAgICAgaWYgKHZ2ICYmICF2di5lcXVhbCh0aGlzLl92YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZ2O1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlLnR5cGUgPSB0aGlzLnR5cGU7XHJcbiAgICAgICAgdGhpcy5zZXRGb2N1cyh0aGlzLl92YWx1ZS5jbG9uZSgpKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodnYuZGF0ZSk7XHJcbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcclxuICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICAgIHZhbHVlOiB0aGlzLl92YWx1ZT8uZGF0ZSxcclxuICAgICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHYgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZm9jdXNlZFZhbHVlID0gdGhpcy50b2RheTtcclxuICAgICAgICB0aGlzLnZpZXdSYW5nZSA9IHRoaXMudG9kYXkubW9udGgucmFuZ2U7XHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZSgwKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm9uQ2xpY2suZW1pdCh7XHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIHZhbHVlOiB0aGlzLl92YWx1ZT8uZGF0ZSxcclxuICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvY3VzZWRWYWx1ZTogQVhEYXRlVGltZTtcclxuICBnZXQgdG9kYXkoKTogQVhEYXRlVGltZSB7XHJcbiAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUobmV3IERhdGUoKSwgdGhpcy50eXBlKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIC8vIHNldCBkZWZhdWx0c1xyXG4gICAgdGhpcy5nZXRIb2xpZGF5ID0gQVhDb25maWcuZ2V0KCdkYXRlVGltZS5ob2xpZGF5cycpO1xyXG4gICAgdGhpcy5nZXRXZWVrZW5kID0gQVhDb25maWcuZ2V0KCdkYXRlVGltZS53ZWVrZW5kcycpO1xyXG4gIH1cclxuICBmaW5kRGF5KGRhdGU6IEFYRGF0ZVRpbWUpIHtcclxuICAgIGlmICh0aGlzLmRheVN0eWxlLmZpbmQoKGMpID0+IGMuZGF0ZS5zcGxpdCgnVCcpWzBdID09IGRhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0U3R5bGUoZGF0ZTogQVhEYXRlVGltZSkge1xyXG4gICAgaWYgKHRoaXMuZGF5U3R5bGUuZmluZCgoYykgPT4gYy5kYXRlLnNwbGl0KCdUJylbMF0gPT0gZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF0pKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRheVN0eWxlLmZpbmQoKGMpID0+IGMuZGF0ZS5zcGxpdCgnVCcpWzBdID09IGRhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdKS5zdHlsZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFRpdGxlKGRhdGU6IEFYRGF0ZVRpbWUpIHtcclxuICAgIGlmICh0aGlzLmRheVN0eWxlLmZpbmQoKGMpID0+IGMuZGF0ZS5zcGxpdCgnVCcpWzBdID09IGRhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kYXlTdHlsZS5maW5kKChjKSA9PiBjLmRhdGUuc3BsaXQoJ1QnKVswXSA9PSBkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXSkudGV4dDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5mb2N1c2VkVmFsdWUgPSBuZXcgQVhEYXRlVGltZShuZXcgRGF0ZSgpLCB0aGlzLnR5cGUpO1xyXG4gICAgLy9cclxuICAgIHRoaXMuaW5pdExheW91dCgpO1xyXG4gICAgLy9cclxuICAgIHRoaXMudmlld1JhbmdlID0gdGhpcy50b2RheS5tb250aC5yYW5nZTtcclxuICAgIGlmICh0aGlzLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2V0Rm9jdXMobmV3IEFYRGF0ZVRpbWUodGhpcy52YWx1ZSwgdGhpcy50eXBlKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldEZvY3VzKHRoaXMudG9kYXkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudmlldyA9ICdkYXknO1xyXG4gIH1cclxuXHJcbiAgZ2V0Vmlld0NvbXBhaXJlKHZpZXc6IEFYQ2FsZW5kYXJWaWV3VHlwZSkge1xyXG4gICAgc3dpdGNoICh2aWV3KSB7XHJcbiAgICAgIGNhc2UgJ2RheSc6XHJcbiAgICAgICAgcmV0dXJuICdZTUQnO1xyXG4gICAgICBjYXNlICdtb250aCc6XHJcbiAgICAgICAgcmV0dXJuICdZTSc7XHJcbiAgICAgIGNhc2UgJ3llYXInOlxyXG4gICAgICAgIHJldHVybiAnWSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm5hdmlnYXRlKDApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0TGF5b3V0KCkge1xyXG4gICAgaWYgKCF0aGlzLnR5cGUpIHtcclxuICAgICAgdGhpcy50eXBlID0gQVhDb25maWcuZ2V0KCdkYXRlVGltZS50eXBlJykgfHwgJ2dyZWdvcmlhbic7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMubG9jYWxlKSB7XHJcbiAgICAgIHRoaXMubG9jYWxlID0gdGhpcy5kW3RoaXMudHlwZV0/LmxvY2FsZSB8fCB0aGlzLmxvY2FsZTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5kaXIpIHtcclxuICAgICAgdGhpcy5kaXIgPSB0aGlzLmRbdGhpcy50eXBlXT8uZGlyIHx8ICdsdHInO1xyXG4gICAgfVxyXG4gICAgdGhpcy5udW1Sb3RhdGUgPSB0aGlzLmRbdGhpcy50eXBlXT8ubnVtYmVyIHx8IDA7XHJcbiAgICBjb25zdCBwYXRoID0gJ2RhdGVUaW1lLndlZWtkYXlzU2hvcnQnO1xyXG4gICAgdGhpcy53ZWVrZGF5cyA9IFtcclxuICAgICAgQVhUcmFuc2xhdG9yLmdldChgJHtwYXRofS5zdW5gLCB0aGlzLmxvY2FsZSksXHJcbiAgICAgIEFYVHJhbnNsYXRvci5nZXQoYCR7cGF0aH0ubW9uYCwgdGhpcy5sb2NhbGUpLFxyXG4gICAgICBBWFRyYW5zbGF0b3IuZ2V0KGAke3BhdGh9LnR1ZWAsIHRoaXMubG9jYWxlKSxcclxuICAgICAgQVhUcmFuc2xhdG9yLmdldChgJHtwYXRofS53ZWRgLCB0aGlzLmxvY2FsZSksXHJcbiAgICAgIEFYVHJhbnNsYXRvci5nZXQoYCR7cGF0aH0udGh1YCwgdGhpcy5sb2NhbGUpLFxyXG4gICAgICBBWFRyYW5zbGF0b3IuZ2V0KGAke3BhdGh9LmZyaWAsIHRoaXMubG9jYWxlKSxcclxuICAgICAgQVhUcmFuc2xhdG9yLmdldChgJHtwYXRofS5zYXRgLCB0aGlzLmxvY2FsZSlcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICBnZXRUb2RheU5hbWUoKSB7XHJcbiAgICByZXR1cm4gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUudG9kYXknLCB0aGlzLmxvY2FsZSk7XHJcbiAgfVxyXG5cclxuICBwcmV2KCkge1xyXG4gICAgdGhpcy5uYXZpZ2F0ZSgtMSk7XHJcbiAgfVxyXG5cclxuICBuZXh0KCkge1xyXG4gICAgdGhpcy5uYXZpZ2F0ZSgxKTtcclxuICB9XHJcblxyXG4gIHJvdGF0ZShhcnJheSwgbikge1xyXG4gICAgY29uc3QgbGVuID0gYXJyYXkubGVuZ3RoO1xyXG4gICAgcmV0dXJuICEobiAlIGxlbikgPyBhcnJheSA6IG4gPiAwID8gYXJyYXkubWFwKChlLCBpLCBhKSA9PiBhWyhpICsgbikgJSBsZW5dKSA6IGFycmF5Lm1hcCgoZSwgaSwgYSkgPT4gYVsobGVuIC0gKChsZW4gLSBpIC0gbikgJSBsZW4pKSAlIGxlbl0pO1xyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGUodmFsdWU6IG51bWJlciB8IEFYRGF0ZVRpbWUpIHtcclxuICAgIGxldCBzdGFydDogQVhEYXRlVGltZTtcclxuICAgIGxldCBlbmQ6IEFYRGF0ZVRpbWU7XHJcbiAgICBpZiAodGhpcy52aWV3ID09PSAnZGF5Jykge1xyXG4gICAgICBsZXQgZmQ6IEFYRGF0ZVRpbWU7XHJcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFYRGF0ZVRpbWUpIHtcclxuICAgICAgICBmZCA9IHZhbHVlLnN0YXJ0T2YoJ21vbnRoJyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZmQgPSB0aGlzLnZpZXdSYW5nZS5zdGFydFRpbWUuYWRkKCdkYXknLCAxNSkuYWRkKCdtb250aCcsIHZhbHVlKS5zdGFydE9mKCdtb250aCcpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzdGFydCA9IGZkLmZpcnN0RGF5T2ZXZWVrO1xyXG4gICAgICBlbmQgPSBmZC5lbmRPZignbW9udGgnKS5lbmREYXlPZldlZWs7XHJcblxyXG4gICAgICBzdGFydCA9IHN0YXJ0LmFkZCgnZGF5JywgLXRoaXMubnVtUm90YXRlKTtcclxuICAgICAgZW5kID0gZW5kLmFkZCgnZGF5JywgNykuYWRkKCdkYXknLCAtdGhpcy5udW1Sb3RhdGUpO1xyXG5cclxuICAgICAgLy8gVE9ETzogYXBwbHkgc3RhcnQgb2Ygd2Vla1xyXG4gICAgICBpZiAoIXRoaXMucm90YXRlZCAmJiB0aGlzLndlZWtkYXlzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBpZiAodGhpcy50eXBlID09PSAnamFsYWxpJykge1xyXG4gICAgICAgICAgdGhpcy53ZWVrZGF5cyA9IHRoaXMucm90YXRlKHRoaXMud2Vla2RheXMsIC10aGlzLm51bVJvdGF0ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMud2Vla2RheXMgPSB0aGlzLnJvdGF0ZSh0aGlzLndlZWtkYXlzLCB0aGlzLm51bVJvdGF0ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJvdGF0ZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyA9PT0gJ21vbnRoJykge1xyXG4gICAgICBsZXQgZmQ6IEFYRGF0ZVRpbWU7XHJcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFYRGF0ZVRpbWUpIHtcclxuICAgICAgICBmZCA9IHZhbHVlLnN0YXJ0T2YoJ3llYXInKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmZCA9IHRoaXMudmlld1JhbmdlLnN0YXJ0VGltZS5hZGQoJ2RheScsIDE1KS5hZGQoJ3llYXInLCB2YWx1ZSkuc3RhcnRPZigneWVhcicpO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXJ0ID0gZmQ7XHJcbiAgICAgIGVuZCA9IGZkLmVuZE9mKCd5ZWFyJyk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyA9PT0gJ3llYXInKSB7XHJcbiAgICAgIGxldCBmZDogQVhEYXRlVGltZTtcclxuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQVhEYXRlVGltZSkge1xyXG4gICAgICAgIGZkID0gdmFsdWUuc3RhcnRPZigneWVhcicpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZkID0gdGhpcy52aWV3UmFuZ2Uuc3RhcnRUaW1lXHJcbiAgICAgICAgICAuYWRkKCdkYXknLCAxNSlcclxuICAgICAgICAgIC5hZGQoJ3llYXInLCB2YWx1ZSAqIDEwKVxyXG4gICAgICAgICAgLnN0YXJ0T2YoJ3llYXInKTtcclxuICAgICAgfVxyXG4gICAgICBzdGFydCA9IGZkLmFkZCgneWVhcicsIC00KTtcclxuICAgICAgZW5kID0gc3RhcnQuYWRkKCd5ZWFyJywgOCkuZW5kT2YoJ3llYXInKTtcclxuICAgIH1cclxuICAgIHRoaXMudmlld1JhbmdlID0gbmV3IEFYRGF0ZVRpbWVSYW5nZShzdGFydCwgZW5kKTtcclxuICAgIC8vXHJcbiAgICBpZiAodGhpcy5nZXRIb2xpZGF5ICYmIHR5cGVvZiB0aGlzLmdldEhvbGlkYXkgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgdGhpcy5ob2xpZGF5cyA9IHRoaXMuZ2V0SG9saWRheShzdGFydC5kYXRlLCBlbmQuZGF0ZSwgdGhpcy50eXBlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5nZXRXZWVrZW5kICYmIHR5cGVvZiB0aGlzLmdldFdlZWtlbmQgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgdGhpcy53ZWVrZW5kcyA9IHRoaXMuZ2V0V2Vla2VuZChzdGFydC5kYXRlLCBlbmQuZGF0ZSwgdGhpcy50eXBlKTtcclxuICAgIH1cclxuXHJcbiAgICAvL1xyXG4gICAgaWYgKHRoaXMudmlldyA9PT0gJ2RheScpIHtcclxuICAgICAgdGhpcy5tYXRyaXggPSB0aGlzLm1hdHJpeGlmeSh0aGlzLmFwcGx5U3R5bGUodGhpcy52aWV3UmFuZ2UuZW51bXVyYXRlKCdkYXknLCB0aGlzLnR5cGUpKSwgNyk7XHJcbiAgICAgIGlmICh0aGlzLm1hdHJpeC5sZW5ndGggPiAwICYmIHRoaXMubWF0cml4WzBdLmZpbmQoKGMpID0+IGMubmV4dE1vbnRoID09PSBmYWxzZSkgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMubWF0cml4LnNwbGljZSgwLCAxKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5tYXRyaXhbdGhpcy5tYXRyaXgubGVuZ3RoIC0gMV0uZmluZCgoYykgPT4gYy5uZXh0TW9udGggPT09IGZhbHNlKSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5tYXRyaXguc3BsaWNlKHRoaXMubWF0cml4Lmxlbmd0aCAtIDEsIDEpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyA9PT0gJ21vbnRoJykge1xyXG4gICAgICB0aGlzLm1hdHJpeCA9IHRoaXMubWF0cml4aWZ5KHRoaXMuYXBwbHlTdHlsZSh0aGlzLnZpZXdSYW5nZS5lbnVtdXJhdGUoJ21vbnRoJywgdGhpcy50eXBlKSksIDMpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnZpZXcgPT09ICd5ZWFyJykge1xyXG4gICAgICB0aGlzLm1hdHJpeCA9IHRoaXMubWF0cml4aWZ5KHRoaXMuYXBwbHlTdHlsZSh0aGlzLnZpZXdSYW5nZS5lbnVtdXJhdGUoJ3llYXInLCB0aGlzLnR5cGUpKSwgMyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwcGx5U3R5bGUoZGF0ZXM6IEFYRGF0ZVRpbWVbXSk6IGFueVtdIHtcclxuICAgIGNvbnN0IGl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gICAgZGF0ZXMuZm9yRWFjaCgoZCwgaSwgaikgPT4ge1xyXG4gICAgICBjb25zdCBpdGVtOiBhbnkgPSB7fTtcclxuICAgICAgaXRlbS5kYXRlID0gZDtcclxuXHJcbiAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBkLmNvbXBhaXJlTmV3KG5ldyBBWERhdGVUaW1lKHRoaXMudmFsdWUsIHRoaXMudHlwZSksIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHRoaXMudmlldyksIHRoaXMudHlwZSkgPT09IDA7XHJcbiAgICAgIGl0ZW0uZm9jdXNlZCA9IGQuY29tcGFpcmVOZXcodGhpcy5mb2N1c2VkVmFsdWUsIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHRoaXMudmlldyksIHRoaXMudHlwZSkgPT09IDA7XHJcbiAgICAgIGl0ZW0udG9kYXkgPSB0aGlzLnRvZGF5ICYmIGQuY29tcGFpcmVOZXcodGhpcy50b2RheSwgdGhpcy5nZXRWaWV3Q29tcGFpcmUodGhpcy52aWV3KSwgdGhpcy50eXBlKSA9PT0gMDtcclxuICAgICAgaWYgKHRoaXMudmlldyA9PT0gJ2RheScpIHtcclxuICAgICAgICAvLyAgaXRlbS5uZXh0TW9udGggPSBkLmNvbXBhaXJlTmV3KHRoaXMudmlld1JhbmdlLnN0YXJ0VGltZS5hZGQoJ2RheScsIDEwKSwgJ1lNJykgIT09IDA7XHJcbiAgICAgICAgaXRlbS5uZXh0TW9udGggPSBkLmNvbXBhaXJlTmV3KHRoaXMudmlld1JhbmdlLnN0YXJ0VGltZS5hZGQoJ2RheScsIDEwKSwgJ1lNJywgdGhpcy50eXBlKSAhPT0gMDtcclxuXHJcbiAgICAgICAgaXRlbS51bnNlbGVjdCA9IHRoaXMuaXNJbk1Jbk1heFJhbmdlKGQpO1xyXG4gICAgICAgIHRoaXMuaG9saWRheXMuZm9yRWFjaCgoaCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgY29tcCA9IGQuY29tcGFpcmVOZXcobmV3IEFYRGF0ZVRpbWUoaC5kYXRlLCB0aGlzLnR5cGUpLCAnWU1EJywgdGhpcy50eXBlKTtcclxuICAgICAgICAgIGlmIChjb21wID09PSAwKSB7XHJcbiAgICAgICAgICAgIGl0ZW0uaG9saWRheSA9IHRydWU7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGFibGVIb2xpZGF5ID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgIGl0ZW0udW5zZWxlY3QgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGluZGV4RGF5ID0gaSAtIE1hdGguZmxvb3IoaSAvIDcpICogNztcclxuICAgICAgICB0aGlzLndlZWtlbmRzLmZvckVhY2goKGNjKSA9PiB7XHJcbiAgICAgICAgICBpZiAoTnVtYmVyKGNjKSA9PT0gaW5kZXhEYXkpIHtcclxuICAgICAgICAgICAgaXRlbS5ob2xpZGF5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0YWJsZUhvbGlkYXkgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgaXRlbS51bnNlbGVjdCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBpdGVtcy5wdXNoKGl0ZW0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gaXRlbXM7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VWaWV3KCkge1xyXG4gICAgaWYgKHRoaXMudmlldyA9PT0gJ2RheScpIHtcclxuICAgICAgdGhpcy52aWV3ID0gJ21vbnRoJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy52aWV3ID09PSAnbW9udGgnKSB7XHJcbiAgICAgIHRoaXMudmlldyA9ICd5ZWFyJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1hdHJpeGlmeShhcnI6IGFueVtdLCBjb2xzKSB7XHJcbiAgICBjb25zdCByb3dzID0gTWF0aC5jZWlsKGFyci5sZW5ndGggLyBjb2xzKTtcclxuICAgIGNvbnN0IG1hdHJpeCA9IFtdO1xyXG4gICAgaWYgKHJvd3MgKiBjb2xzID09PSBhcnIubGVuZ3RoKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSArPSBjb2xzKSB7XHJcbiAgICAgICAgbWF0cml4LnB1c2goYXJyLnNsaWNlKGksIGNvbHMgKyBpKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtYXRyaXg7XHJcbiAgfVxyXG5cclxuICBzZXREYXlDbGljayhldmVudDogTW91c2VFdmVudCwgaXRlbSkge1xyXG4gICAgaWYgKGl0ZW0udW5zZWxlY3QgIT09IHRydWUpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IGl0ZW0uZGF0ZS5kYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgaXNJbk1Jbk1heFJhbmdlKGQpIHtcclxuICAgIGxldCByID0gZmFsc2U7XHJcbiAgICBpZiAoZCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmICh0aGlzLm1pbiAmJiAhdGhpcy5tYXgpIHtcclxuICAgICAgICByID0gZC5jb21wYWlyZU5ldyhuZXcgQVhEYXRlVGltZSh0aGlzLm1pbiwgdGhpcy50eXBlKSwgdGhpcy5nZXRWaWV3Q29tcGFpcmUodGhpcy52aWV3KSwgdGhpcy50eXBlKSA9PT0gLTE7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMubWF4ICYmICF0aGlzLm1pbikge1xyXG4gICAgICAgIHIgPSBkLmNvbXBhaXJlTmV3KG5ldyBBWERhdGVUaW1lKHRoaXMubWF4LCB0aGlzLnR5cGUpLCB0aGlzLmdldFZpZXdDb21wYWlyZSh0aGlzLnZpZXcpLCB0aGlzLnR5cGUpID09PSAxO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm1pbiAmJiB0aGlzLm1heCkge1xyXG4gICAgICAgIHIgPVxyXG4gICAgICAgICAgZC5jb21wYWlyZU5ldyhuZXcgQVhEYXRlVGltZSh0aGlzLm1pbiwgdGhpcy50eXBlKSwgdGhpcy5nZXRWaWV3Q29tcGFpcmUodGhpcy52aWV3KSwgdGhpcy50eXBlKSA9PT0gLTEgfHxcclxuICAgICAgICAgIGQuY29tcGFpcmVOZXcobmV3IEFYRGF0ZVRpbWUodGhpcy5tYXgsIHRoaXMudHlwZSksIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHRoaXMudmlldyksIHRoaXMudHlwZSkgPT09IDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByO1xyXG4gIH1cclxuXHJcbiAgc2V0TW9udGhDbGljayhldmVudDogTW91c2VFdmVudCwgZGF0ZTogQVhEYXRlVGltZSkge1xyXG4gICAgaWYgKHRoaXMuZGVwdGggPT09ICdtb250aCcpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IGRhdGUuZGF0ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmlldyA9ICdkYXknO1xyXG4gICAgICB0aGlzLnNldEZvY3VzKG5ldyBBWERhdGVUaW1lKHRoaXMudmFsdWUsIHRoaXMudHlwZSkuc2V0KCd5ZWFyJywgZGF0ZS55ZWFyKS5zZXQoJ21vbnRoJywgZGF0ZS5tb250aE9mWWVhcikpO1xyXG4gICAgfVxyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzZXRZZWFyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIGRhdGU6IEFYRGF0ZVRpbWUpIHtcclxuICAgIGlmICh0aGlzLmRlcHRoID09PSAneWVhcicpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IGRhdGUuZGF0ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmlldyA9ICdtb250aCc7XHJcbiAgICAgIHRoaXMuc2V0Rm9jdXMobmV3IEFYRGF0ZVRpbWUodGhpcy52YWx1ZSwgdGhpcy50eXBlKS5zZXQoJ3llYXInLCBkYXRlLnllYXIpKTtcclxuICAgIH1cclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgc2V0Rm9jdXMoZGF0ZTogQVhEYXRlVGltZSkge1xyXG4gICAgdGhpcy5mb2N1c2VkVmFsdWUgPSBkYXRlO1xyXG4gICAgdGhpcy5uYXZpZ2F0ZSh0aGlzLmZvY3VzZWRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBzZXRUb2RheSgpIHtcclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLnRvZGF5LmRhdGU7XHJcbiAgICB0aGlzLnZpZXcgPSAnZGF5JztcclxuICB9XHJcblxyXG4gIHRyYWNrQnlGbihpbmRleCwgaXRlbTogYW55KSB7XHJcbiAgICByZXR1cm4gaXRlbS5kYXRlLmRhdGUuZ2V0VGltZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|