@skyux/lookup 5.0.0 → 5.0.1
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/documentation.json
CHANGED
|
@@ -6826,7 +6826,7 @@
|
|
|
6826
6826
|
"sources": [
|
|
6827
6827
|
{
|
|
6828
6828
|
"fileName": "projects/lookup/src/modules/lookup/lookup.component.ts",
|
|
6829
|
-
"line":
|
|
6829
|
+
"line": 479,
|
|
6830
6830
|
"character": 9
|
|
6831
6831
|
}
|
|
6832
6832
|
],
|
|
@@ -6855,7 +6855,7 @@
|
|
|
6855
6855
|
"sources": [
|
|
6856
6856
|
{
|
|
6857
6857
|
"fileName": "projects/lookup/src/modules/lookup/lookup.component.ts",
|
|
6858
|
-
"line":
|
|
6858
|
+
"line": 488,
|
|
6859
6859
|
"character": 9
|
|
6860
6860
|
}
|
|
6861
6861
|
],
|
|
@@ -6908,7 +6908,7 @@
|
|
|
6908
6908
|
"sources": [
|
|
6909
6909
|
{
|
|
6910
6910
|
"fileName": "projects/lookup/src/modules/lookup/lookup.component.ts",
|
|
6911
|
-
"line":
|
|
6911
|
+
"line": 510,
|
|
6912
6912
|
"character": 9
|
|
6913
6913
|
}
|
|
6914
6914
|
],
|
|
@@ -7133,7 +7133,7 @@
|
|
|
7133
7133
|
"sources": [
|
|
7134
7134
|
{
|
|
7135
7135
|
"fileName": "projects/lookup/src/modules/lookup/lookup.component.ts",
|
|
7136
|
-
"line":
|
|
7136
|
+
"line": 455,
|
|
7137
7137
|
"character": 9
|
|
7138
7138
|
}
|
|
7139
7139
|
],
|
|
@@ -7178,7 +7178,7 @@
|
|
|
7178
7178
|
"sources": [
|
|
7179
7179
|
{
|
|
7180
7180
|
"fileName": "projects/lookup/src/modules/lookup/lookup.component.ts",
|
|
7181
|
-
"line":
|
|
7181
|
+
"line": 536,
|
|
7182
7182
|
"character": 9
|
|
7183
7183
|
}
|
|
7184
7184
|
],
|
|
@@ -7207,7 +7207,7 @@
|
|
|
7207
7207
|
"sources": [
|
|
7208
7208
|
{
|
|
7209
7209
|
"fileName": "projects/lookup/src/modules/lookup/lookup.component.ts",
|
|
7210
|
-
"line":
|
|
7210
|
+
"line": 547,
|
|
7211
7211
|
"character": 9
|
|
7212
7212
|
}
|
|
7213
7213
|
],
|
|
@@ -7365,7 +7365,7 @@
|
|
|
7365
7365
|
"sources": [
|
|
7366
7366
|
{
|
|
7367
7367
|
"fileName": "projects/lookup/src/modules/lookup/lookup.component.ts",
|
|
7368
|
-
"line":
|
|
7368
|
+
"line": 457,
|
|
7369
7369
|
"character": 9
|
|
7370
7370
|
}
|
|
7371
7371
|
],
|
|
@@ -7394,7 +7394,7 @@
|
|
|
7394
7394
|
"sources": [
|
|
7395
7395
|
{
|
|
7396
7396
|
"fileName": "projects/lookup/src/modules/lookup/lookup.component.ts",
|
|
7397
|
-
"line":
|
|
7397
|
+
"line": 555,
|
|
7398
7398
|
"character": 9
|
|
7399
7399
|
}
|
|
7400
7400
|
],
|
|
@@ -7436,7 +7436,7 @@
|
|
|
7436
7436
|
"sources": [
|
|
7437
7437
|
{
|
|
7438
7438
|
"fileName": "projects/lookup/src/modules/lookup/lookup.component.ts",
|
|
7439
|
-
"line":
|
|
7439
|
+
"line": 459,
|
|
7440
7440
|
"character": 9
|
|
7441
7441
|
}
|
|
7442
7442
|
],
|
|
@@ -7518,7 +7518,7 @@
|
|
|
7518
7518
|
"sources": [
|
|
7519
7519
|
{
|
|
7520
7520
|
"fileName": "projects/lookup/src/modules/lookup/lookup.component.ts",
|
|
7521
|
-
"line":
|
|
7521
|
+
"line": 463,
|
|
7522
7522
|
"character": 9
|
|
7523
7523
|
}
|
|
7524
7524
|
],
|
|
@@ -7587,7 +7587,7 @@
|
|
|
7587
7587
|
"sources": [
|
|
7588
7588
|
{
|
|
7589
7589
|
"fileName": "projects/lookup/src/modules/lookup/lookup.component.ts",
|
|
7590
|
-
"line":
|
|
7590
|
+
"line": 468,
|
|
7591
7591
|
"character": 9
|
|
7592
7592
|
}
|
|
7593
7593
|
],
|
|
@@ -222,10 +222,8 @@ export class SkyLookupComponent extends SkyLookupAutocompleteAdapter {
|
|
|
222
222
|
}
|
|
223
223
|
}
|
|
224
224
|
writeValue(value) {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
this.updateForSelectMode();
|
|
228
|
-
}
|
|
225
|
+
this.value = value ? value : [];
|
|
226
|
+
this.updateForSelectMode();
|
|
229
227
|
}
|
|
230
228
|
registerOnChange(fn) {
|
|
231
229
|
this.onChange = fn;
|
|
@@ -548,4 +546,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
|
|
|
548
546
|
static: true
|
|
549
547
|
}]
|
|
550
548
|
}] } });
|
|
551
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xvb2t1cC9zcmMvbW9kdWxlcy9sb29rdXAvbG9va3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xvb2t1cC9zcmMvbW9kdWxlcy9sb29rdXAvbG9va3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE9BQU8sRUFDTCxTQUFTLElBQUksbUJBQW1CLEVBQ2hDLE9BQU8sRUFDUixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFDTCxJQUFJLEVBQ0osU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFjeEIsT0FBTyxFQUdMLG9CQUFvQixFQUNyQixNQUFNLG1CQUFtQixDQUFDO0FBZTNCLE9BQU8sRUFDTCwwQkFBMEIsRUFDM0IsTUFBTSxpREFBaUQsQ0FBQztBQVV6RCxPQUFPLEVBQ0wsNkJBQTZCLEVBQzlCLE1BQU0sOENBQThDLENBQUM7QUFFdEQsT0FBTyxFQUNMLDRCQUE0QixFQUM3QixNQUFNLCtCQUErQixDQUFDO0FBRXZDLE9BQU8sRUFDTCx1QkFBdUIsRUFDeEIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLEVBQ0wsK0JBQStCLEVBQ2hDLE1BQU0sb0NBQW9DLENBQUM7QUFrQjVDLE9BQU8sRUFDTCxvQ0FBb0MsRUFDckMsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVl4RCxNQUFNLE9BQU8sa0JBQ1gsU0FBUSw0QkFBNEI7SUE2TXBDLFlBQ1UsY0FBaUMsRUFDakMsVUFBc0Is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cnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNlbGYsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTmdDb250cm9sXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgZnJvbUV2ZW50IGFzIG9ic2VydmFibGVGcm9tRXZlbnQsXG4gIFN1YmplY3Rcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIHRha2UsXG4gIHRha2VVbnRpbFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIFNreUFwcFdpbmRvd1JlZlxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7XG4gIFNreUlucHV0Qm94SG9zdFNlcnZpY2Vcbn0gZnJvbSAnQHNreXV4L2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgU2t5TGliUmVzb3VyY2VzU2VydmljZVxufSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7XG4gIFNreVRva2VuLFxuICBTa3lUb2tlbnNNZXNzYWdlLFxuICBTa3lUb2tlbnNNZXNzYWdlVHlwZVxufSBmcm9tICdAc2t5dXgvaW5kaWNhdG9ycyc7XG5cbmltcG9ydCB7XG4gIFNreU1vZGFsSW5zdGFuY2UsXG4gIFNreU1vZGFsU2VydmljZVxufSBmcm9tICdAc2t5dXgvbW9kYWxzJztcblxuaW1wb3J0IHtcbiAgU2t5VGhlbWVTZXJ2aWNlXG59IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7XG4gIFNreUF1dG9jb21wbGV0ZU1lc3NhZ2Vcbn0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlL3R5cGVzL2F1dG9jb21wbGV0ZS1tZXNzYWdlJztcblxuaW1wb3J0IHtcbiAgU2t5QXV0b2NvbXBsZXRlTWVzc2FnZVR5cGVcbn0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlL3R5cGVzL2F1dG9jb21wbGV0ZS1tZXNzYWdlLXR5cGUnO1xuXG5pbXBvcnQge1xuICBTa3lBdXRvY29tcGxldGVTZWxlY3Rpb25DaGFuZ2Vcbn0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlL3R5cGVzL2F1dG9jb21wbGV0ZS1zZWxlY3Rpb24tY2hhbmdlJztcblxuaW1wb3J0IHtcbiAgU2t5QXV0b2NvbXBsZXRlU2hvd01vcmVBcmdzXG59IGZyb20gJy4uL2F1dG9jb21wbGV0ZS90eXBlcy9hdXRvY29tcGxldGUtc2hvdy1tb3JlLWFyZ3MnO1xuXG5pbXBvcnQge1xuICBTa3lBdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZVxufSBmcm9tICcuLi9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLWlucHV0LmRpcmVjdGl2ZSc7XG5cbmltcG9ydCB7XG4gIFNreUxvb2t1cEF1dG9jb21wbGV0ZUFkYXB0ZXJcbn0gZnJvbSAnLi9sb29rdXAtYXV0b2NvbXBsZXRlLWFkYXB0ZXInO1xuXG5pbXBvcnQge1xuICBTa3lMb29rdXBBZGFwdGVyU2VydmljZVxufSBmcm9tICcuL2xvb2t1cC1hZGFwdGVyLnNlcnZpY2UnO1xuXG5pbXBvcnQge1xuICBTa3lMb29rdXBTaG93TW9yZU1vZGFsQ29tcG9uZW50XG59IGZyb20gJy4vbG9va3VwLXNob3ctbW9yZS1tb2RhbC5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lMb29rdXBBZGRDYWxsYmFja0FyZ3Ncbn0gZnJvbSAnLi90eXBlcy9sb29rdXAtYWRkLWNsaWNrLWNhbGxiYWNrLWFyZ3MnO1xuXG5pbXBvcnQge1xuICBTa3lMb29rdXBBZGRDbGlja0V2ZW50QXJnc1xufSBmcm9tICcuL3R5cGVzL2xvb2t1cC1hZGQtY2xpY2stZXZlbnQtYXJncyc7XG5cbmltcG9ydCB7XG4gIFNreUxvb2t1cFNlbGVjdE1vZGVUeXBlXG59IGZyb20gJy4vdHlwZXMvbG9va3VwLXNlbGVjdC1tb2RlLXR5cGUnO1xuXG5pbXBvcnQge1xuICBTa3lMb29rdXBTaG93TW9yZUNvbmZpZ1xufSBmcm9tICcuL3R5cGVzL2xvb2t1cC1zaG93LW1vcmUtY29uZmlnJztcblxuaW1wb3J0IHtcbiAgU2t5TG9va3VwU2hvd01vcmVOYXRpdmVQaWNrZXJDb250ZXh0XG59IGZyb20gJy4vdHlwZXMvbG9va3VwLXNob3ctbW9yZS1uYXRpdmUtcGlja2VyLWNvbnRleHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktbG9va3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvb2t1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xvb2t1cC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lMb29rdXBBZGFwdGVyU2VydmljZVxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTa3lMb29rdXBDb21wb25lbnRcbiAgZXh0ZW5kcyBTa3lMb29rdXBBdXRvY29tcGxldGVBZGFwdGVyXG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGFuIEFSSUEgbGFiZWwgZm9yIHRoZSB0eXBlYWhlYWQgc2VhcmNoIGlucHV0XG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkuXG4gICAqIElmIHRoZSBpbnB1dCBpbmNsdWRlcyBhIHZpc2libGUgbGFiZWwsIHVzZSBgYXJpYUxhYmVsbGVkQnlgIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgSFRNTCBlbGVtZW50IElEICh3aXRob3V0IHRoZSBsZWFkaW5nIGAjYCkgb2YgdGhlIGVsZW1lbnQgdGhhdCBsYWJlbHNcbiAgICogdGhlIHR5cGVhaGVhZCBzZWFyY2ggaW5wdXQuIFRoaXMgc2V0cyB0aGUgaW5wdXQncyBgYXJpYS1sYWJlbGxlZGJ5YCBhdHRyaWJ1dGVcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICogSWYgdGhlIGlucHV0IGRvZXMgbm90IGluY2x1ZGUgYSB2aXNpYmxlIGxhYmVsLCB1c2UgYGFyaWFMYWJlbGAgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcmlhTGFiZWxsZWRCeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHZhbHVlIGZvciB0aGUgYGF1dG9jb21wbGV0ZWAgYXR0cmlidXRlIG9uIHRoZSBmb3JtIGlucHV0LlxuICAgKiBAZGVmYXVsdCBcIm9mZlwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYXV0b2NvbXBsZXRlQXR0cmlidXRlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIGRhdGEgc291cmNlIGZvciB0aGUgbG9va3VwIGNvbXBvbmVudCB0byBzZWFyY2ggd2hlbiB1c2Vyc1xuICAgKiBlbnRlciB0ZXh0LiBZb3UgY2FuIHNwZWNpZnkgc3RhdGljIGRhdGEgc3VjaCBhcyBhbiBhcnJheSBvZiBvYmplY3RzLCBvclxuICAgKiB5b3UgY2FuIHB1bGwgZGF0YSBmcm9tIGEgZGF0YWJhc2UuXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGEodmFsdWU6IGFueVtdKSB7XG4gICAgdGhpcy5fZGF0YSA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMub3Blbk5hdGl2ZVBpY2tlcikge1xuICAgICAgdGhpcy5vcGVuTmF0aXZlUGlja2VyLmNvbXBvbmVudEluc3RhbmNlLnVwZGF0ZUl0ZW1EYXRhKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRhdGEoKTogYW55W10ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc2FibGUgdGhlIGxvb2t1cCBmaWVsZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBlbmFibGUgdXNlcnMgdG8gb3BlbiBhIHBpY2tlciB3aGVyZSB0aGV5IGNhbiB2aWV3IGFsbCBvcHRpb25zLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGVuYWJsZVNob3dNb3JlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBwbGFjZWhvbGRlciB0ZXh0IHRvIGRpc3BsYXkgaW4gdGhlIGxvb2t1cCBmaWVsZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwbGFjZWhvbGRlclRleHQ6IHN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGFuIG9iamVjdCBwcm9wZXJ0eSB0aGF0IHJlcHJlc2VudHMgdGhlIG9iamVjdCdzIHVuaXF1ZSBpZGVudGlmaWVyLlxuICAgKiBTcGVjaWZ5aW5nIHRoaXMgcHJvcGVydHkgZW5hYmxlcyB0b2tlbiBhbmltYXRpb25zIGFuZCBtb3JlIGVmZmljaWVudCByZW5kZXJpbmcuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaWRQcm9wZXJ0eTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNwbGF5IGEgYnV0dG9uIHRoYXQgbGV0cyB1c2VycyBhZGQgb3B0aW9ucyB0byB0aGUgbGlzdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93QWRkQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBwaWNrZXIgdGhhdCBkaXNwbGF5cyBhbGwgb3B0aW9ucy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93TW9yZUNvbmZpZzogU2t5TG9va3VwU2hvd01vcmVDb25maWc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGV0aGVyIHVzZXJzIGNhbiBzZWxlY3Qgb25lIG9wdGlvbiBvciBtdWx0aXBsZSBvcHRpb25zLlxuICAgKiBAZGVmYXVsdCBcIm11bGl0cGxlXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2VsZWN0TW9kZSh2YWx1ZTogU2t5TG9va3VwU2VsZWN0TW9kZVR5cGUpIHtcbiAgICBsZXQgbXVsdGlwbGVUb1NpbmdsZTogYm9vbGVhbiA9IHZhbHVlID09PSAnc2luZ2xlJyAmJiB0aGlzLnNlbGVjdE1vZGUgPT09ICdtdWx0aXBsZSc7XG5cbiAgICB0aGlzLl9zZWxlY3RNb2RlID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVGb3JTZWxlY3RNb2RlKCk7XG5cbiAgICBpZiAobXVsdGlwbGVUb1NpbmdsZSkge1xuICAgICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5sZW5ndGggPiAxKSB7XG4gICAgICAgIC8vIFRoZSBgc2V0VGltZW91dGAgaXMgbmVlZGVkIHRvIGF2b2lkIGEgYEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3JgIGVycm9yIGluIHRlbXBsYXRlIGZvcm1zLlxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoW3RoaXMudmFsdWVbMF1dKTtcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBzZWxlY3RNb2RlKCk6IFNreUxvb2t1cFNlbGVjdE1vZGVUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0TW9kZSB8fCAnbXVsdGlwbGUnO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgc2VsZWN0IHRoZSBidXR0b24gdG8gYWRkIG9wdGlvbnMgdG8gdGhlIGxpc3QuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGFkZENsaWNrOiBFdmVudEVtaXR0ZXI8U2t5TG9va3VwQWRkQ2xpY2tFdmVudEFyZ3M+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBnZXQgdG9rZW5zKCk6IFNreVRva2VuW10ge1xuICAgIHJldHVybiB0aGlzLl90b2tlbnM7XG4gIH1cblxuICBwdWJsaWMgc2V0IHRva2Vucyh2YWx1ZTogU2t5VG9rZW5bXSkge1xuICAgIC8vIENvbGxhcHNlIHRoZSB0b2tlbnMgaW50byBhIHNpbmdsZSB0b2tlbiBpZiB0aGUgdXNlciBoYXMgc2VsZWN0ZWQgbWFueSBvcHRpb25zLlxuICAgIGlmICh0aGlzLmVuYWJsZVNob3dNb3JlICYmIHRoaXMudmFsdWUubGVuZ3RoID4gNSkge1xuICAgICAgdGhpcy5yZXNvdXJjZXNTZXJ2aWNlLmdldFN0cmluZyhcbiAgICAgICAgJ3NreXV4X2xvb2t1cF90b2tlbnNfc3VtbWFyeScsXG4gICAgICAgIHRoaXMudmFsdWUubGVuZ3RoLnRvU3RyaW5nKClcbiAgICAgIClcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZSgobGFiZWwpID0+IHtcbiAgICAgICAgICB0aGlzLl90b2tlbnMgPSBbe1xuICAgICAgICAgICAgdmFsdWU6IHsgW3RoaXMuZGVzY3JpcHRvclByb3BlcnR5XTogbGFiZWwgfVxuICAgICAgICAgIH1dO1xuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl90b2tlbnMgPSB2YWx1ZTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlID8gdGhpcy5fdmFsdWUgOiBbXTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmFsdWUobmV3VmFsdWU6IGFueVtdKSB7XG4gICAgdGhpcy5fdmFsdWUgPSBuZXdWYWx1ZTtcblxuICAgIGlmICghdGhpcy5vcGVuTmF0aXZlUGlja2VyKSB7XG4gICAgICB0aGlzLnRva2VucyA9IHRoaXMucGFyc2VUb2tlbnMobmV3VmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMub25DaGFuZ2UodGhpcy5fdmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBwdWJsaWMgYXV0b2NvbXBsZXRlQ29udHJvbGxlciA9IG5ldyBTdWJqZWN0PFNreUF1dG9jb21wbGV0ZU1lc3NhZ2U+KCk7XG4gIHB1YmxpYyBpc0lucHV0Rm9jdXNlZCA9IGZhbHNlO1xuICBwdWJsaWMgdG9rZW5zQ29udHJvbGxlciA9IG5ldyBTdWJqZWN0PFNreVRva2Vuc01lc3NhZ2U+KCk7XG5cbiAgQFZpZXdDaGlsZChTa3lBdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZSwge1xuICAgIHJlYWQ6IFNreUF1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlLFxuICAgIHN0YXRpYzogZmFsc2VcbiAgfSlcbiAgcHJpdmF0ZSBzZXQgYXV0b2NvbXBsZXRlSW5wdXREaXJlY3RpdmUodmFsdWU6IFNreUF1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlKSB7XG4gICAgdGhpcy5fYXV0b2NvbXBsZXRlSW5wdXREaXJlY3RpdmUgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZUZvclNlbGVjdE1vZGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGF1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlKCk6IFNreUF1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0b2NvbXBsZXRlSW5wdXREaXJlY3RpdmU7XG4gIH1cblxuICBAVmlld0NoaWxkKCdzaG93TW9yZUJ1dHRvblRlbXBsYXRlUmVmJywge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogdHJ1ZVxuICB9KVxuICBwcml2YXRlIHNob3dNb3JlQnV0dG9uVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRUZW1wbGF0ZVJlZicsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgICBzdGF0aWM6IHRydWVcbiAgfSlcbiAgcHJpdmF0ZSBpbnB1dFRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBWaWV3Q2hpbGQoJ2xvb2t1cFdyYXBwZXInLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZlxuICB9KVxuICBwcml2YXRlIGxvb2t1cFdyYXBwZXJSZWY6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoSWNvblRlbXBsYXRlUmVmJywge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogdHJ1ZVxuICB9KVxuICBwcml2YXRlIHNlYXJjaEljb25UZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIGlkbGUgPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIG1hcmtGb3JUb2tlbkZvY3VzT25LZXlVcCA9IGZhbHNlO1xuICBwcml2YXRlIG9wZW5OYXRpdmVQaWNrZXI6IFNreU1vZGFsSW5zdGFuY2U7XG5cbiAgcHJpdmF0ZSBfYXV0b2NvbXBsZXRlSW5wdXREaXJlY3RpdmU6IFNreUF1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlO1xuICBwcml2YXRlIF9kYXRhOiBhbnlbXTtcbiAgcHJpdmF0ZSBfc2VsZWN0TW9kZTogU2t5TG9va3VwU2VsZWN0TW9kZVR5cGU7XG4gIHByaXZhdGUgX3Rva2VuczogU2t5VG9rZW5bXTtcbiAgcHJpdmF0ZSBfdmFsdWU6IGFueVtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHdpbmRvd1JlZjogU2t5QXBwV2luZG93UmVmLFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgcHJpdmF0ZSBhZGFwdGVyOiBTa3lMb29rdXBBZGFwdGVyU2VydmljZSxcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogU2t5TW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVzb3VyY2VzU2VydmljZTogU2t5TGliUmVzb3VyY2VzU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgaW5wdXRCb3hIb3N0U3ZjPzogU2t5SW5wdXRCb3hIb3N0U2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgdGhlbWVTdmM/OiBTa3lUaGVtZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICBuZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5wdXRCb3hIb3N0U3ZjKSB7XG4gICAgICB0aGlzLmlucHV0Qm94SG9zdFN2Yy5wb3B1bGF0ZShcbiAgICAgICAge1xuICAgICAgICAgIGlucHV0VGVtcGxhdGU6IHRoaXMuaW5wdXRUZW1wbGF0ZVJlZixcbiAgICAgICAgICBidXR0b25zVGVtcGxhdGU6IHRoaXMuZW5hYmxlU2hvd01vcmUgPyB0aGlzLnNob3dNb3JlQnV0dG9uVGVtcGxhdGVSZWYgOiB1bmRlZmluZWQsXG4gICAgICAgICAgaWNvbnNJbnNldFRlbXBsYXRlOiB0aGlzLmVuYWJsZVNob3dNb3JlID8gdW5kZWZpbmVkIDogdGhpcy5zZWFyY2hJY29uVGVtcGxhdGVSZWZcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLnRoZW1lU3ZjKSB7XG4gICAgICAvLyBUaGlzIGlzIHJlcXVpcmVkIGZvciB0aGUgYXV0b2NvbXBsZXRlIGRpcmVjdGl2ZSB0byBiZSBzZXQgYWZ0ZXIgZWxlbWVudHNcbiAgICAgIC8vIGFyZSByZWFycmFuZ2VkIHdoZW4gc3dpdGNoaW5nIHRoZW1lcy5cbiAgICAgIHRoaXMudGhlbWVTdmMuc2V0dGluZ3NDaGFuZ2VcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVycygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXJzKCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLnRva2Vuc0NvbnRyb2xsZXIuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRCdXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuYWRkQ2xpY2suZW1pdCh7IGl0ZW1BZGRlZDogKGFyZ3M6IFNreUxvb2t1cEFkZENhbGxiYWNrQXJncykgPT4gdGhpcy5vbkFkZEJ1dHRvbkNvbXBsZXRlKGFyZ3MpIH0pO1xuICB9XG5cbiAgcHVibGljIG9uQXV0b2NvbXBsZXRlU2VsZWN0aW9uQ2hhbmdlKGNoYW5nZTogU2t5QXV0b2NvbXBsZXRlU2VsZWN0aW9uQ2hhbmdlKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoY2hhbmdlLnNlbGVjdGVkSXRlbSkge1xuICAgICAgdGhpcy5hZGRUb1NlbGVjdGVkKGNoYW5nZS5zZWxlY3RlZEl0ZW0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RNb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgdGhpcy53cml0ZVZhbHVlKFtdKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25BdXRvY29tcGxldGVCbHVyKCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBwdWJsaWMgb25Ub2tlbnNDaGFuZ2UoY2hhbmdlOiBTa3lUb2tlbltdKTogdm9pZCB7XG4gICAgaWYgKCFjaGFuZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50b2tlbnMgIT09IGNoYW5nZSkge1xuICAgICAgaWYgKGNoYW5nZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICB9XG5cbiAgICAgIC8vIE5PVEU6IFdlIGRvIHRoaXMgaGVyZSBpbnN0ZWFkIG9mIGp1c3QgdXNpbmcgdGhlIGB2YWx1ZWAgc2V0dGVyIGJlY2F1c2Ugd2UgbmVlZCB0byB1c2UgdGhlXG4gICAgICAvLyBzZXQgb2YgdG9rZW5zIHJldHVybmVkIGhlcmUgZm9yIHRoZSBwdXJwb3NlcyBvZiBzZXR0aW5nIGZvY3VzIChzZWUgYG9uVG9rZW5zS2V5VXBgKS5cbiAgICAgIHRoaXMuX3ZhbHVlID0gY2hhbmdlLm1hcCh0b2tlbiA9PiB7IHJldHVybiB0b2tlbi52YWx1ZTsgfSk7XG4gICAgICB0aGlzLnRva2VucyA9IGNoYW5nZTtcblxuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblRva2Vuc0ZvY3VzSW5kZXhPdmVyUmFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy53aW5kb3dSZWYubmF0aXZlV2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25Ub2tlbnNLZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuc2VsZWN0TW9kZSAhPT0gJ3NpbmdsZScpIHtcbiAgICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpzd2l0Y2gtZGVmYXVsdCAqL1xuICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgY2FzZSAnQmFja3NwYWNlJzpcbiAgICAgICAgICB0aGlzLnNlbmRUb2tlbnNNZXNzYWdlKFNreVRva2Vuc01lc3NhZ2VUeXBlLlJlbW92ZUFjdGl2ZVRva2VuKTtcbiAgICAgICAgICB0aGlzLnNlbmRUb2tlbnNNZXNzYWdlKFNreVRva2Vuc01lc3NhZ2VUeXBlLkZvY3VzUHJldmlvdXNUb2tlbik7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdEZWwnOlxuICAgICAgICBjYXNlICdEZWxldGUnOlxuICAgICAgICAgIHRoaXMuc2VuZFRva2Vuc01lc3NhZ2UoU2t5VG9rZW5zTWVzc2FnZVR5cGUuUmVtb3ZlQWN0aXZlVG9rZW4pO1xuICAgICAgICAgIHRoaXMud2luZG93UmVmLm5hdGl2ZVdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2VuZFRva2Vuc01lc3NhZ2UoU2t5VG9rZW5zTWVzc2FnZVR5cGUuRm9jdXNBY3RpdmVUb2tlbik7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55W10pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZSA/IHZhbHVlIDogW107XG4gICAgICB0aGlzLnVwZGF0ZUZvclNlbGVjdE1vZGUoKTtcbiAgICB9XG4gIH1cblxuICAvLyBBbmd1bGFyIGF1dG9tYXRpY2FsbHkgY29uc3RydWN0cyB0aGVzZSBtZXRob2RzLlxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwdWJsaWMgb25DaGFuZ2UgPSAodmFsdWU6IGFueVtdKSA9PiB7IH07XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHB1YmxpYyBvblRvdWNoZWQgPSAoKSA9PiB7IH07XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8vIEFsbG93cyBBbmd1bGFyIHRvIGRpc2FibGUgdGhlIGlucHV0LlxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcnMoKTtcblxuICAgIGlmICghZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcnMoKTtcbiAgICB9XG5cbiAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhclNlYXJjaFRleHQoKTogdm9pZCB7XG4gICAgdGhpcy5hdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZS52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlLmlucHV0VGV4dFZhbHVlID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gSGFuZGxlcyB3aGVuIHRvIGZvY3VzIG9uIHRoZSB0b2tlbnMuXG4gIC8vIENoZWNrIGZvciBlbXB0eSBzZWFyY2ggdGV4dCBvbiBrZXlkb3duLCBiZWZvcmUgdGhlIGVzY2FwZSBrZXkgaXMgZnVsbHkgcHJlc3NlZC5cbiAgLy8gKE90aGVyd2lzZSwgYSBzaW5nbGUgY2hhcmFjdGVyIGJlaW5nIGVzY2FwZWQgd291bGQgcmVnaXN0ZXIgYXMgZW1wdHkgb24ga2V5dXAuKVxuICAvLyBJZiBlbXB0eSBvbiBrZXlkb3duLCBzZXQgYSBmbGFnIHNvIHRoYXQgdGhlIGFwcHJvcHJpYXRlIGFjdGlvbiBjYW4gYmUgdGFrZW4gb24ga2V5dXAuXG4gIHB1YmxpYyBpbnB1dEtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvKiBTYW5pdHkgY2hlY2sgYXMgdGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgd2hlbiBpbiBtdWx0aXBsZSBzZWxlY3QgbW9kZSAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuc2VsZWN0TW9kZSAhPT0gJ3NpbmdsZScpIHtcbiAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICBjYXNlICdCYWNrc3BhY2UnOlxuICAgICAgICBjYXNlICdMZWZ0JzpcbiAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMubWFya0ZvclRva2VuRm9jdXNPbktleVVwID0gZmFsc2U7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubWFya0ZvclRva2VuRm9jdXNPbktleVVwID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlucHV0S2V5dXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAvKiBTYW5pdHkgY2hlY2sgYXMgdGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgd2hlbiBpbiBtdWx0aXBsZSBzZWxlY3QgbW9kZSAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuc2VsZWN0TW9kZSAhPT0gJ3NpbmdsZScpIHtcbiAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAgIGNhc2UgJ0VzYyc6XG4gICAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgICAgdGhpcy5jbGVhclNlYXJjaFRleHQoKTtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICBjYXNlICdCYWNrc3BhY2UnOlxuICAgICAgICBjYXNlICdMZWZ0JzpcbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmICh0aGlzLm1hcmtGb3JUb2tlbkZvY3VzT25LZXlVcCkge1xuICAgICAgICAgICAgdGhpcy5zZW5kVG9rZW5zTWVzc2FnZShTa3lUb2tlbnNNZXNzYWdlVHlwZS5Gb2N1c0xhc3RUb2tlbik7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgIH1cblxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uU2VhcmNoQnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5zZW5kQXV0b2NvbXBsZXRlTWVzc2FnZShTa3lBdXRvY29tcGxldGVNZXNzYWdlVHlwZS5DbG9zZURyb3Bkb3duKTtcbiAgICBsZXQgaXNWYWx1ZUluVGV4dEJveCA9IGZhbHNlO1xuICAgIGlmICh0aGlzLnNlbGVjdE1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICBpc1ZhbHVlSW5UZXh0Qm94ID0gdGhpcy5hdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZS5pbnB1dFRleHRWYWx1ZSA9PT0gdGhpcy5hdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZS52YWx1ZVt0aGlzLmRlc2NyaXB0b3JQcm9wZXJ0eV07XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuUGlja2VyKGlzVmFsdWVJblRleHRCb3ggPyAnJyA6IHRoaXMuYXV0b2NvbXBsZXRlSW5wdXREaXJlY3RpdmUuaW5wdXRUZXh0VmFsdWUpO1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlSW5wdXREaXJlY3RpdmUucmVzdG9yZUlucHV0VGV4dFZhbHVlVG9QcmV2aW91c1N0YXRlKCk7XG4gIH1cblxuICBwdWJsaWMgb25TaG93TW9yZUNsaWNrKGV2ZW50OiBTa3lBdXRvY29tcGxldGVTaG93TW9yZUFyZ3MpOiB2b2lkIHtcbiAgICAvKiBTYW5pdHkgY2hlY2sgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICB0aGlzLm9wZW5QaWNrZXIoZXZlbnQuaW5wdXRWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9wZW5QaWNrZXIoaW5pdGlhbFNlYXJjaDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvd01vcmVDb25maWc/LmN1c3RvbVBpY2tlcikge1xuICAgICAgdGhpcy5zaG93TW9yZUNvbmZpZy5jdXN0b21QaWNrZXIub3Blbih7XG4gICAgICAgIGl0ZW1zOiB0aGlzLmRhdGEsXG4gICAgICAgIGluaXRpYWxTZWFyY2g6IGluaXRpYWxTZWFyY2gsXG4gICAgICAgIGluaXRpYWxWYWx1ZTogdGhpcy52YWx1ZVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBpbml0aWFsVmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgY29uc3QgbW9kYWxDb25maWcgPSB0aGlzLnNob3dNb3JlQ29uZmlnPy5uYXRpdmVQaWNrZXJDb25maWcgfHwge307XG4gICAgICBpZiAoIW1vZGFsQ29uZmlnLml0ZW1UZW1wbGF0ZSkge1xuICAgICAgICBtb2RhbENvbmZpZy5pdGVtVGVtcGxhdGUgPSB0aGlzLnNlYXJjaFJlc3VsdFRlbXBsYXRlO1xuICAgICAgfVxuXG4gICAgICBsZXQgY29udGV4dDogU2t5TG9va3VwU2hvd01vcmVOYXRpdmVQaWNrZXJDb250ZXh0ID0ge1xuICAgICAgICBpdGVtczogdGhpcy5kYXRhLFxuICAgICAgICBkZXNjcmlwdG9yUHJvcGVydHk6IHRoaXMuZGVzY3JpcHRvclByb3BlcnR5LFxuICAgICAgICBpbml0aWFsU2VhcmNoOiBpbml0aWFsU2VhcmNoLFxuICAgICAgICBpbml0aWFsVmFsdWU6IGluaXRpYWxWYWx1ZSxcbiAgICAgICAgc2VhcmNoOiB0aGlzLnNlYXJjaCxcbiAgICAgICAgc2VsZWN0TW9kZTogdGhpcy5zZWxlY3RNb2RlLFxuICAgICAgICBzaG93QWRkQnV0dG9uOiB0aGlzLnNob3dBZGRCdXR0b24sXG4gICAgICAgIHVzZXJDb25maWc6IG1vZGFsQ29uZmlnXG4gICAgICB9O1xuXG4gICAgICB0aGlzLm9wZW5OYXRpdmVQaWNrZXIgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFNreUxvb2t1cFNob3dNb3JlTW9kYWxDb21wb25lbnQsIHtcbiAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogU2t5TG9va3VwU2hvd01vcmVOYXRpdmVQaWNrZXJDb250ZXh0LCB1c2VWYWx1ZTogY29udGV4dFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMub3Blbk5hdGl2ZVBpY2tlci5jb21wb25lbnRJbnN0YW5jZS5hZGRDbGljay5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmFkZEJ1dHRvbkNsaWNrZWQoKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLm9wZW5OYXRpdmVQaWNrZXIuY2xvc2VkLnN1YnNjcmliZShjbG9zZUFyZ3MgPT4ge1xuICAgICAgICB0aGlzLm9wZW5OYXRpdmVQaWNrZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChjbG9zZUFyZ3MucmVhc29uID09PSAnc2F2ZScpIHtcbiAgICAgICAgICBsZXQgc2VsZWN0ZWRJdGVtczogYW55W10gPSBbXTtcblxuICAgICAgICAgIHRoaXMuZGF0YS5mb3JFYWNoKChpdGVtOiBhbnksIGRhdGFJbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2xvc2VBcmdzLmRhdGEuc29tZSgoc2F2ZWRJdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHNhdmVkSXRlbS5pbmRleCA9PT0gZGF0YUluZGV4O1xuICAgICAgICAgICAgfSkpIHtcbiAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHNlbGVjdGVkSXRlbXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShpbml0aWFsVmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZFRvU2VsZWN0ZWQoaXRlbTogYW55KTogdm9pZCB7XG4gICAgbGV0IHNlbGVjdGVkSXRlbXM6IGFueVtdO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0TW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIHNlbGVjdGVkSXRlbXMgPSBbaXRlbV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlbGVjdGVkSXRlbXMgPSB0aGlzLnZhbHVlO1xuXG4gICAgICAvLyBJZiBpdGVtcyBoYXZlIGEgdW5pcXVlIGlkZW50aWZpZXIsIGRvbid0IGFsbG93IHRoZSBzYW1lIGl0ZW0gdG8gYmUgYWRkZWQgdHdpY2UuXG4gICAgICBpZiAoXG4gICAgICAgICF0aGlzLmlkUHJvcGVydHkgfHxcbiAgICAgICAgIXRoaXMudmFsdWUuc29tZShcbiAgICAgICAgICBleGlzdGluZ0l0ZW0gPT4gZXhpc3RpbmdJdGVtW3RoaXMuaWRQcm9wZXJ0eV0gPT09IGl0ZW1bdGhpcy5pZFByb3BlcnR5XVxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgc2VsZWN0ZWRJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNsZWFyU2VhcmNoVGV4dCgpO1xuICAgIH1cblxuICAgIHRoaXMud3JpdGVWYWx1ZShzZWxlY3RlZEl0ZW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRXZlbnRMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy5pZGxlID0gbmV3IFN1YmplY3QoKTtcbiAgICB0aGlzLmZvY3VzSW5wdXRPbkhvc3RDbGljaygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVFdmVudExpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLmlkbGUubmV4dCgpO1xuICAgIHRoaXMuaWRsZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0lucHV0T25Ib3N0Q2xpY2soKTogdm9pZCB7XG4gICAgbGV0IGhvc3RFbGVtZW50ID0gIXRoaXMuaW5wdXRCb3hIb3N0U3ZjID8gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgOiB0aGlzLmxvb2t1cFdyYXBwZXJSZWYubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBkb2N1bWVudE9iaiA9IHRoaXMud2luZG93UmVmLm5hdGl2ZVdpbmRvdy5kb2N1bWVudDtcblxuICAgIC8vIEhhbmRsZXMgZm9jdXNpbmcgdGhlIGlucHV0IHdoZW4gdGhlIGhvc3QgaXMgY2xpY2tlZC5cbiAgICAvLyBUaGUgaW5wdXQgc2hvdWxkIE5PVCBiZSBmb2N1c2VkIGlmIG90aGVyIGVsZW1lbnRzICh0b2tlbnMsIGV0Yy4pXG4gICAgLy8gYXJlIGN1cnJlbnRseSBmb2N1c2VkIG9yIGJlaW5nIHRhYmJlZCB0aHJvdWdoLlxuXG4gICAgb2JzZXJ2YWJsZUZyb21FdmVudChkb2N1bWVudE9iaiwgJ21vdXNlZG93bicpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5pZGxlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGhvc3RFbGVtZW50ID0gIXRoaXMuaW5wdXRCb3hIb3N0U3ZjID8gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgOiB0aGlzLmxvb2t1cFdyYXBwZXJSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgdGhpcy5pc0lucHV0Rm9jdXNlZCA9IGhvc3RFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgb2JzZXJ2YWJsZUZyb21FdmVudChkb2N1bWVudE9iaiwgJ2ZvY3VzaW4nKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuaWRsZSkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBob3N0RWxlbWVudCA9ICF0aGlzLmlucHV0Qm94SG9zdFN2YyA/IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IDogdGhpcy5sb29rdXBXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMuaXNJbnB1dEZvY3VzZWQgPSBob3N0RWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpO1xuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcblxuICAgIG9ic2VydmFibGVGcm9tRXZlbnQoaG9zdEVsZW1lbnQsICdtb3VzZXVwJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmlkbGUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNsYXNzTGlzdCA9IGRvY3VtZW50T2JqLmFjdGl2ZUVsZW1lbnQuY2xhc3NMaXN0O1xuICAgICAgICBpZiAoIWNsYXNzTGlzdCB8fCAhY2xhc3NMaXN0LmNvbnRhaW5zKCdza3ktdG9rZW4nKSkge1xuICAgICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNJbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLmFkYXB0ZXIuZm9jdXNJbnB1dCh0aGlzLmxvb2t1cFdyYXBwZXJSZWYpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkFkZEJ1dHRvbkNvbXBsZXRlKGFyZ3M6IFNreUxvb2t1cEFkZENhbGxiYWNrQXJncykge1xuICAgIGlmIChhcmdzLmRhdGEpIHtcbiAgICAgIHRoaXMuZGF0YSA9IGFyZ3MuZGF0YTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRhLmluZGV4T2YoYXJncy5pdGVtKSA+PSAwKSB7XG4gICAgICBpZiAodGhpcy5vcGVuTmF0aXZlUGlja2VyKSB7XG4gICAgICAgICg8U2t5TG9va3VwU2hvd01vcmVNb2RhbENvbXBvbmVudD50aGlzLm9wZW5OYXRpdmVQaWNrZXIuY29tcG9uZW50SW5zdGFuY2UpXG4gICAgICAgICAgLm9uSXRlbVNlbGVjdCh0cnVlLCB7IHZhbHVlOiBhcmdzLml0ZW0sIHNlbGVjdGVkOiBmYWxzZSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBuZXdWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdE1vZGUgPT09ICdtdWx0aXBsZScpIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9IHRoaXMudmFsdWUuY29uY2F0KGFyZ3MuaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSBbYXJncy5pdGVtXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLndyaXRlVmFsdWUobmV3VmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VUb2tlbnMoZGF0YTogYW55W10pOiBTa3lUb2tlbltdIHtcbiAgICByZXR1cm4gZGF0YS5tYXAoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFsdWU6IGl0ZW1cbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNlbmRBdXRvY29tcGxldGVNZXNzYWdlKHR5cGU6IFNreUF1dG9jb21wbGV0ZU1lc3NhZ2VUeXBlKTogdm9pZCB7XG4gICAgdGhpcy5hdXRvY29tcGxldGVDb250cm9sbGVyLm5leHQoeyB0eXBlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZW5kVG9rZW5zTWVzc2FnZSh0eXBlOiBTa3lUb2tlbnNNZXNzYWdlVHlwZSk6IHZvaWQge1xuICAgIHRoaXMudG9rZW5zQ29udHJvbGxlci5uZXh0KHsgdHlwZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRm9yU2VsZWN0TW9kZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZSkge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0TW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZS52YWx1ZSA9IHRoaXMudmFsdWUgJiZcbiAgICAgICAgICB0aGlzLnZhbHVlWzBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jbGVhclNlYXJjaFRleHQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaW5wdXRCb3hIb3N0U3ZjXCI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbnB1dFRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlXG4gICNpbnB1dFRlbXBsYXRlUmVmXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1sb29rdXBcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktbG9va3VwLWZvY3VzZWQnOiBpc0lucHV0Rm9jdXNlZCxcbiAgICAgICdza3ktbG9va3VwLWRpc2FibGVkJzogZGlzYWJsZWQsXG4gICAgICAnc2t5LWxvb2t1cC1zaW5nbGUnOiBzZWxlY3RNb2RlID09PSAnc2luZ2xlJ1xuICAgIH1cIlxuICAgICNsb29rdXBXcmFwcGVyXG4gID5cbiAgICA8c2t5LWF1dG9jb21wbGV0ZVxuICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgIFtkYXRhXT1cImRhdGFcIlxuICAgICAgW2RlYm91bmNlVGltZV09XCJkZWJvdW5jZVRpbWVcIlxuICAgICAgW2Rlc2NyaXB0b3JQcm9wZXJ0eV09XCJkZXNjcmlwdG9yUHJvcGVydHlcIlxuICAgICAgW2VuYWJsZVNob3dNb3JlXT1cImVuYWJsZVNob3dNb3JlXCJcbiAgICAgIFttZXNzYWdlU3RyZWFtXT1cImF1dG9jb21wbGV0ZUNvbnRyb2xsZXJcIlxuICAgICAgW3Byb3BlcnRpZXNUb1NlYXJjaF09XCJwcm9wZXJ0aWVzVG9TZWFyY2hcIlxuICAgICAgW3NlYXJjaF09XCJzZWFyY2hcIlxuICAgICAgW3NlYXJjaEZpbHRlcnNdPVwic2VhcmNoRmlsdGVyc1wiXG4gICAgICBbc2VhcmNoUmVzdWx0c0xpbWl0XT1cInNlYXJjaFJlc3VsdHNMaW1pdFwiXG4gICAgICBbc2VhcmNoUmVzdWx0VGVtcGxhdGVdPVwic2VhcmNoUmVzdWx0VGVtcGxhdGVcIlxuICAgICAgW3NlYXJjaFRleHRNaW5pbXVtQ2hhcmFjdGVyc109XCJzZWFyY2hUZXh0TWluaW11bUNoYXJhY3RlcnNcIlxuICAgICAgW3Nob3dBZGRCdXR0b25dPVwic2hvd0FkZEJ1dHRvblwiXG4gICAgICAoYWRkQ2xpY2spPVwiYWRkQnV0dG9uQ2xpY2tlZCgpXCJcbiAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25BdXRvY29tcGxldGVTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAoc2hvd01vcmVDbGljayk9XCJvblNob3dNb3JlQ2xpY2soJGV2ZW50KVwiXG4gICAgPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LWxvb2t1cC1zZWFyY2gtZmxleC13cmFwcGVyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNreS1sb29rdXAtc2VhcmNoXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnc2t5LWZpZWxkLXN0YXR1cy1hY3RpdmUnOiBpc0lucHV0Rm9jdXNlZFxuICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS10b2tlbnMgKm5nSWY9XCJzZWxlY3RNb2RlID09PSAnbXVsdGlwbGUnXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWxvb2t1cC10b2tlbnNcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgIFtkaXNwbGF5V2l0aF09XCJkZXNjcmlwdG9yUHJvcGVydHlcIlxuICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICBbbWVzc2FnZVN0cmVhbV09XCJ0b2tlbnNDb250cm9sbGVyXCJcbiAgICAgICAgICAgIFt0cmFja1dpdGhdPVwiaWRQcm9wZXJ0eVwiXG4gICAgICAgICAgICBbdG9rZW5zXT1cInRva2Vuc1wiXG4gICAgICAgICAgICAoa2V5dXApPVwib25Ub2tlbnNLZXlVcCgkZXZlbnQpXCJcbiAgICAgICAgICAgICh0b2tlbnNDaGFuZ2UpPVwib25Ub2tlbnNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAodG9rZW5TZWxlY3RlZCk9XCJlbmFibGVTaG93TW9yZSA/IG9wZW5QaWNrZXIodW5kZWZpbmVkKSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAoZm9jdXNJbmRleE92ZXJSYW5nZSk9XCJvblRva2Vuc0ZvY3VzSW5kZXhPdmVyUmFuZ2UoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWZvcm0tY29udHJvbCBza3ktbG9va3VwLWlucHV0XCJcbiAgICAgICAgICAgICAgcm93cz1cIjFcIlxuICAgICAgICAgICAgICBza3lBdXRvY29tcGxldGVcbiAgICAgICAgICAgICAgd3JhcD1cIm9mZlwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJUZXh0XCJcbiAgICAgICAgICAgICAgW2F1dG9jb21wbGV0ZUF0dHJpYnV0ZV09XCJhdXRvY29tcGxldGVBdHRyaWJ1dGVcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAoYmx1cik9XCJvbkF1dG9jb21wbGV0ZUJsdXIoKVwiXG4gICAgICAgICAgICAgIChrZXlkb3duKT1cImlucHV0S2V5ZG93bigkZXZlbnQsICRldmVudC50YXJnZXQudmFsdWUpXCJcbiAgICAgICAgICAgICAgKGtleXVwKT1cImlucHV0S2V5dXAoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICA8L3NreS10b2tlbnM+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdE1vZGUgPT09ICdzaW5nbGUnXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWxvb2t1cC1zaW5nbGUtY29udHJvbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWZvcm0tY29udHJvbCBza3ktbG9va3VwLWlucHV0XCJcbiAgICAgICAgICAgICAgcm93cz1cIjFcIlxuICAgICAgICAgICAgICBza3lBdXRvY29tcGxldGVcbiAgICAgICAgICAgICAgd3JhcD1cIm9mZlwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJUZXh0XCJcbiAgICAgICAgICAgICAgW2F1dG9jb21wbGV0ZUF0dHJpYnV0ZV09XCJhdXRvY29tcGxldGVBdHRyaWJ1dGVcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAoYmx1cik9XCJvbkF1dG9jb21wbGV0ZUJsdXIoKVwiXG4gICAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaW5wdXRCb3hIb3N0U3ZjICYmIGVuYWJsZVNob3dNb3JlXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNob3dNb3JlQnV0dG9uVGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaW5wdXRCb3hIb3N0U3ZjICYmICFlbmFibGVTaG93TW9yZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWFyY2hJY29uVGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NreS1hdXRvY29tcGxldGU+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICNzaG93TW9yZUJ1dHRvblRlbXBsYXRlUmVmXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1pbnB1dC1ncm91cC1idG5cIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdFwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NreXV4X2xvb2t1cF9zZWFyY2hfYnV0dG9uX3Nob3dfbW9yZScgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgICAgKGNsaWNrKT1cIm9uU2VhcmNoQnV0dG9uQ2xpY2soKVwiXG4gICAgPlxuICAgICAgPHNreS1pY29uICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCJcbiAgICAgICAgaWNvbj1cInNlYXJjaFwiXG4gICAgICA+PC9za3ktaWNvbj5cbiAgICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCJcbiAgICAgICAgaWNvblR5cGU9XCJza3l1eFwiXG4gICAgICAgIGljb249XCJzZWFyY2hcIlxuICAgICAgPjwvc2t5LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICNzZWFyY2hJY29uVGVtcGxhdGVSZWZcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2t5LWlucHV0LWdyb3VwLWljb24gc2t5LWlucHV0LWJveC1pY29uLWluc2V0XCJcbiAgPlxuICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiXG4gICAgICBpY29uPVwic2VhcmNoXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NreXV4X2xvb2t1cF9zZWFyY2hfaWNvbicgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgID48L3NreS1pY29uPlxuICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCJcbiAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgaWNvbj1cInNlYXJjaFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3l1eF9sb29rdXBfc2VhcmNoX2ljb24nIHwgc2t5TGliUmVzb3VyY2VzXCJcbiAgICA+PC9za3ktaWNvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
549
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xvb2t1cC9zcmMvbW9kdWxlcy9sb29rdXAvbG9va3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xvb2t1cC9zcmMvbW9kdWxlcy9sb29rdXAvbG9va3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE9BQU8sRUFDTCxTQUFTLElBQUksbUJBQW1CLEVBQ2hDLE9BQU8sRUFDUixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFDTCxJQUFJLEVBQ0osU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFjeEIsT0FBTyxFQUdMLG9CQUFvQixFQUNyQixNQUFNLG1CQUFtQixDQUFDO0FBZTNCLE9BQU8sRUFDTCwwQkFBMEIsRUFDM0IsTUFBTSxpREFBaUQsQ0FBQztBQVV6RCxPQUFPLEVBQ0wsNkJBQTZCLEVBQzlCLE1BQU0sOENBQThDLENBQUM7QUFFdEQsT0FBTyxFQUNMLDRCQUE0QixFQUM3QixNQUFNLCtCQUErQixDQUFDO0FBRXZDLE9BQU8sRUFDTCx1QkFBdUIsRUFDeEIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLEVBQ0wsK0JBQStCLEVBQ2hDLE1BQU0sb0NBQW9DLENBQUM7QUFrQjVDLE9BQU8sRUFDTCxvQ0FBb0MsRUFDckMsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVl4RCxNQUFNLE9BQU8sa0JBQ1gsU0FBUSw0QkFBNEI7SUE2TXBDLFlBQ1UsY0FBaUMsRUFDakMsVUFBc0IsRUFDdEIsU0FBMEIsRUFDZCxTQUFvQixFQUNoQyxPQUFnQyxFQUNoQyxZQUE2QixFQUM3QixnQkFBd0MsRUFDN0IsZUFBd0MsRUFDeEMsUUFBMEI7UUFFN0MsS0FBSyxFQUFFLENBQUM7UUFWQSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUUxQixZQUFPLEdBQVAsT0FBTyxDQUF5QjtRQUNoQyxpQkFBWSxHQUFaLFlBQVksQ0FBaUI7UUFDN0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF3QjtRQUM3QixvQkFBZSxHQUFmLGVBQWUsQ0FBeUI7UUFDeEMsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUF4Sy9DOztXQUVHO1FBRUksYUFBUSxHQUFHLEtBQUssQ0FBQztRQUV4Qjs7V0FFRztRQUVJLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBZXZDOztXQUVHO1FBRUksa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFrQ3RDOztXQUVHO1FBRUksYUFBUSxHQUE2QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBeUN4RSwyQkFBc0IsR0FBRyxJQUFJLE9BQU8sRUFBMEIsQ0FBQztRQUMvRCxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixxQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBb0IsQ0FBQztRQXNDbEQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzlCLFNBQUksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3JCLDZCQUF3QixHQUFHLEtBQUssQ0FBQztRQXFJekMsa0RBQWtEO1FBQ2xELDBCQUEwQjtRQUNuQixhQUFRLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN4QywwQkFBMEI7UUFDbkIsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQXBIM0IsU0FBUyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDakMsQ0FBQztJQS9MRDs7Ozs7T0FLRztJQUNILElBQ1csSUFBSSxDQUFDLEtBQVk7UUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMvRDtJQUNILENBQUM7SUFFRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQXVDRDs7O09BR0c7SUFDSCxJQUNXLFVBQVUsQ0FBQyxLQUE4QjtRQUNsRCxJQUFJLGdCQUFnQixHQUFZLEtBQUssS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUM7UUFFckYsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFM0IsSUFBSSxnQkFBZ0IsRUFBRTtZQUNwQixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUN2QywrR0FBK0c7Z0JBQy9HLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN0QyxDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsSUFBSSxVQUFVLENBQUM7SUFDeEMsQ0FBQztJQVFELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBVyxNQUFNLENBQUMsS0FBaUI7UUFDakMsaUZBQWlGO1FBQ2pGLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDaEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FDN0IsNkJBQTZCLEVBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUM3QjtpQkFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNiLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUM7d0JBQ2QsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxLQUFLLEVBQUU7cUJBQzVDLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQVcsS0FBSyxDQUFDLFFBQWU7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFFdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDMUM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQU1ELElBSVksMEJBQTBCLENBQUMsS0FBb0M7UUFDekUsSUFBSSxDQUFDLDJCQUEyQixHQUFHLEtBQUssQ0FBQztRQUN6QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBWSwwQkFBMEI7UUFDcEMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUM7SUFDMUMsQ0FBQztJQW1ETSxRQUFRO1FBQ2IsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUMzQjtnQkFDRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtnQkFDcEMsZUFBZSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDakYsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCO2FBQ2pGLENBQ0YsQ0FBQztTQUNIO1FBRUQsMEJBQTBCO1FBQzFCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQiwyRUFBMkU7WUFDM0Usd0NBQXdDO1lBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYztpQkFDekIsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQzlCO2lCQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNyQyxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxJQUE4QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFFTSw2QkFBNkIsQ0FBQyxNQUFzQztRQUN6RSwwQkFBMEI7UUFDMUIsSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3pDO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBRTtZQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVNLGNBQWMsQ0FBQyxNQUFrQjtRQUN0QyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTztTQUNSO1FBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRTtZQUMxQixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUN2QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDbkI7WUFFRCw0RkFBNEY7WUFDNUYsdUZBQXVGO1lBQ3ZGLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBRXJCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjtJQUNILENBQUM7SUFFTSwyQkFBMkI7UUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUMxQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQW9CO1FBQ3ZDLDBCQUEwQjtRQUMxQixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssUUFBUSxFQUFFO1lBQ2hDLDZDQUE2QztZQUM3QyxRQUFRLEtBQUssQ0FBQyxHQUFHLEVBQUU7Z0JBQ2pCLEtBQUssV0FBVztvQkFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztvQkFDL0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLENBQUM7b0JBQ2hFLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDdkIsTUFBTTtnQkFFUixLQUFLLEtBQUssQ0FBQztnQkFDWCxLQUFLLFFBQVE7b0JBQ1gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLENBQUM7b0JBQy9ELElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7d0JBQzFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO29CQUNoRSxDQUFDLENBQUMsQ0FBQztvQkFDSCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3ZCLE1BQU07YUFDVDtTQUNGO0lBQ0gsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFZO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBUU0sZ0JBQWdCLENBQUMsRUFBd0I7UUFDOUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEVBQWM7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELHVDQUF1QztJQUNoQyxnQkFBZ0IsQ0FBQyxRQUFpQjtRQUN2QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUU1QixJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDMUI7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ2xELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO0lBQzdELENBQUM7SUFFRCx1Q0FBdUM7SUFDdkMsa0ZBQWtGO0lBQ2xGLGtGQUFrRjtJQUNsRix3RkFBd0Y7SUFDakYsWUFBWSxDQUFDLEtBQW9CLEVBQUUsS0FBYTtRQUNyRCw2RUFBNkU7UUFDN0UsMEJBQTBCO1FBQzFCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxRQUFRLEVBQUU7WUFDaEMsUUFBUSxLQUFLLENBQUMsR0FBRyxFQUFFO2dCQUNqQixLQUFLLE9BQU87b0JBQ1YsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUN2QixNQUFNO2dCQUNSLEtBQUssV0FBVyxDQUFDO2dCQUNqQixLQUFLLFdBQVcsQ0FBQztnQkFDakIsS0FBSyxNQUFNO29CQUNULElBQUksS0FBSyxFQUFFO3dCQUNULElBQUksQ0FBQyx3QkFBd0IsR0FBRyxLQUFLLENBQUM7cUJBQ3ZDO3lCQUFNO3dCQUNMLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUM7cUJBQ3RDO29CQUNELE1BQU07Z0JBQ1IsUUFBUTthQUNUO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQW9CO1FBQ3BDLDZFQUE2RTtRQUM3RSwwQkFBMEI7UUFDMUIsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBRTtZQUNoQyxRQUFRLEtBQUssQ0FBQyxHQUFHLEVBQUU7Z0JBQ2pCLEtBQUssS0FBSyxDQUFDO2dCQUNYLEtBQUssUUFBUTtvQkFDWCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQ3ZCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDdkIsTUFBTTtnQkFDUixLQUFLLFdBQVcsQ0FBQztnQkFDakIsS0FBSyxXQUFXLENBQUM7Z0JBQ2pCLEtBQUssTUFBTTtvQkFDVCwwQkFBMEI7b0JBQzFCLElBQUksSUFBSSxDQUFDLHdCQUF3QixFQUFFO3dCQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLENBQUM7d0JBQzVELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztxQkFDeEI7b0JBQ0QsTUFBTTtnQkFDUixRQUFRO2FBQ1Q7WUFFRCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQywwQkFBMEIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2RSxJQUFJLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssUUFBUSxFQUFFO1lBQ2hDLGdCQUFnQixHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxjQUFjLEtBQUssSUFBSSxDQUFDLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUN0STtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxvQ0FBb0MsRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFFTSxlQUFlLENBQUMsS0FBa0M7UUFDdkQsa0JBQWtCO1FBQ2xCLHlCQUF5QjtRQUN6QixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVNLFVBQVUsQ0FBQyxhQUFxQjs7UUFDckMsSUFBSSxNQUFBLElBQUksQ0FBQyxjQUFjLDBDQUFFLFlBQVksRUFBRTtZQUNyQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ3BDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDaEIsYUFBYSxFQUFFLGFBQWE7Z0JBQzVCLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSzthQUN6QixDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUM5QixNQUFNLFdBQVcsR0FBRyxDQUFBLE1BQUEsSUFBSSxDQUFDLGNBQWMsMENBQUUsa0JBQWtCLEtBQUksRUFBRSxDQUFDO1lBQ2xFLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFO2dCQUM3QixXQUFXLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQzthQUN0RDtZQUVELElBQUksT0FBTyxHQUF5QztnQkFDbEQsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNoQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO2dCQUMzQyxhQUFhLEVBQUUsYUFBYTtnQkFDNUIsWUFBWSxFQUFFLFlBQVk7Z0JBQzFCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUMzQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7Z0JBQ2pDLFVBQVUsRUFBRSxXQUFXO2FBQ3hCLENBQUM7WUFFRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsK0JBQStCLEVBQUU7Z0JBQzlFLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsUUFBUSxFQUFFLE9BQU87cUJBQ2pFO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUM5RCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNqRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO2dCQUNsQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFO29CQUMvQixJQUFJLGFBQWEsR0FBVSxFQUFFLENBQUM7b0JBRTlCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLFNBQWlCLEVBQUUsRUFBRTt3QkFDakQsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQWMsRUFBRSxFQUFFOzRCQUN6QyxPQUFPLFNBQVMsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO3dCQUN2QyxDQUFDLENBQUMsRUFBRTs0QkFDRixhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUMxQjtvQkFDSCxDQUFDLENBQUMsQ0FBQztvQkFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2lCQUNoQztxQkFBTTtvQkFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUMvQjtnQkFFRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDckMsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsSUFBUztRQUM3QixJQUFJLGFBQW9CLENBQUM7UUFFekIsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBRTtZQUNoQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QjthQUFNO1lBQ0wsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFFM0Isa0ZBQWtGO1lBQ2xGLElBQ0UsQ0FBQyxJQUFJLENBQUMsVUFBVTtnQkFDaEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDZCxZQUFZLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDeEUsRUFDRDtnQkFDQSxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzFCO1lBRUQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3hCO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8scUJBQXFCO1FBQzNCLElBQUksV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7UUFDOUcsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBRXpELHVEQUF1RDtRQUN2RCxtRUFBbUU7UUFDbkUsaURBQWlEO1FBRWpELG1CQUFtQixDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7YUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUIsU0FBUyxDQUFDLENBQUMsS0FBaUIsRUFBRSxFQUFFO1lBQy9CLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO1lBQzFHLElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFekQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztRQUVMLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUM7YUFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUIsU0FBUyxDQUFDLENBQUMsS0FBb0IsRUFBRSxFQUFFO1lBQ2xDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO1lBQzFHLElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFekQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztRQUVMLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUM7YUFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUIsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO1lBQ3RELElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUNsRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDbkI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxJQUE4QjtRQUN4RCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDdkI7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDckMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ1MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFrQjtxQkFDdkUsWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2FBQzlEO2lCQUFNO2dCQUNMLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQzFCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7b0JBQ2xDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3pDO3FCQUFNO29CQUNMLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDeEI7Z0JBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMzQjtTQUNGO0lBQ0gsQ0FBQztJQUVPLFdBQVcsQ0FBQyxJQUFXO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQzVCLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sdUJBQXVCLENBQUMsSUFBZ0M7UUFDOUQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQTBCO1FBQ2xELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUU7WUFDbkMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSztvQkFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNqQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7YUFDeEI7U0FDRjtJQUNILENBQUM7OytHQXJtQlUsa0JBQWtCO21HQUFsQixrQkFBa0IsOFpBTmxCO1FBQ1QsdUJBQXVCO0tBQ3hCLHNGQW1LVSw2QkFBNkIsMkJBQ2hDLDZCQUE2QixpSUFhN0IsV0FBVyw2SEFNWCxXQUFXLDBIQU1YLFVBQVUseUhBS1YsV0FBVyxrRUN4VHJCLGlwSkEwSUE7MkZEaEJhLGtCQUFrQjtrQkFWOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsV0FBVyxFQUFFLHlCQUF5QjtvQkFDdEMsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3RDLFNBQVMsRUFBRTt3QkFDVCx1QkFBdUI7cUJBQ3hCO29CQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQW1OSSxJQUFJOzswQkFBSSxRQUFROzswQkFJaEIsUUFBUTs7MEJBQ1IsUUFBUTs0Q0E3TUosU0FBUztzQkFEZixLQUFLO2dCQVVDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBUUMscUJBQXFCO3NCQUQzQixLQUFLO2dCQVVLLElBQUk7c0JBRGQsS0FBSztnQkFpQkMsUUFBUTtzQkFEZCxLQUFLO2dCQU9DLGNBQWM7c0JBRHBCLEtBQUs7Z0JBT0MsZUFBZTtzQkFEckIsS0FBSztnQkFRQyxVQUFVO3NCQURoQixLQUFLO2dCQU9DLGFBQWE7c0JBRG5CLEtBQUs7Z0JBT0MsY0FBYztzQkFEcEIsS0FBSztnQkFRSyxVQUFVO3NCQURwQixLQUFLO2dCQTBCQyxRQUFRO3NCQURkLE1BQU07Z0JBa0RLLDBCQUEwQjtzQkFKckMsU0FBUzt1QkFBQyw2QkFBNkIsRUFBRTt3QkFDeEMsSUFBSSxFQUFFLDZCQUE2Qjt3QkFDbkMsTUFBTSxFQUFFLEtBQUs7cUJBQ2Q7Z0JBY08seUJBQXlCO3NCQUpoQyxTQUFTO3VCQUFDLDJCQUEyQixFQUFFO3dCQUN0QyxJQUFJLEVBQUUsV0FBVzt3QkFDakIsTUFBTSxFQUFFLElBQUk7cUJBQ2I7Z0JBT08sZ0JBQWdCO3NCQUp2QixTQUFTO3VCQUFDLGtCQUFrQixFQUFFO3dCQUM3QixJQUFJLEVBQUUsV0FBVzt3QkFDakIsTUFBTSxFQUFFLElBQUk7cUJBQ2I7Z0JBTU8sZ0JBQWdCO3NCQUh2QixTQUFTO3VCQUFDLGVBQWUsRUFBRTt3QkFDMUIsSUFBSSxFQUFFLFVBQVU7cUJBQ2pCO2dCQU9PLHFCQUFxQjtzQkFKNUIsU0FBUzt1QkFBQyx1QkFBdUIsRUFBRTt3QkFDbEMsSUFBSSxFQUFFLFdBQVc7d0JBQ2pCLE1BQU0sRUFBRSxJQUFJO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5nQ29udHJvbFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7XG4gIGZyb21FdmVudCBhcyBvYnNlcnZhYmxlRnJvbUV2ZW50LFxuICBTdWJqZWN0XG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICB0YWtlLFxuICB0YWtlVW50aWxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBTa3lBcHBXaW5kb3dSZWZcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQge1xuICBTa3lJbnB1dEJveEhvc3RTZXJ2aWNlXG59IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5cbmltcG9ydCB7XG4gIFNreUxpYlJlc291cmNlc1NlcnZpY2Vcbn0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQge1xuICBTa3lUb2tlbixcbiAgU2t5VG9rZW5zTWVzc2FnZSxcbiAgU2t5VG9rZW5zTWVzc2FnZVR5cGVcbn0gZnJvbSAnQHNreXV4L2luZGljYXRvcnMnO1xuXG5pbXBvcnQge1xuICBTa3lNb2RhbEluc3RhbmNlLFxuICBTa3lNb2RhbFNlcnZpY2Vcbn0gZnJvbSAnQHNreXV4L21vZGFscyc7XG5cbmltcG9ydCB7XG4gIFNreVRoZW1lU2VydmljZVxufSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQge1xuICBTa3lBdXRvY29tcGxldGVNZXNzYWdlXG59IGZyb20gJy4uL2F1dG9jb21wbGV0ZS90eXBlcy9hdXRvY29tcGxldGUtbWVzc2FnZSc7XG5cbmltcG9ydCB7XG4gIFNreUF1dG9jb21wbGV0ZU1lc3NhZ2VUeXBlXG59IGZyb20gJy4uL2F1dG9jb21wbGV0ZS90eXBlcy9hdXRvY29tcGxldGUtbWVzc2FnZS10eXBlJztcblxuaW1wb3J0IHtcbiAgU2t5QXV0b2NvbXBsZXRlU2VsZWN0aW9uQ2hhbmdlXG59IGZyb20gJy4uL2F1dG9jb21wbGV0ZS90eXBlcy9hdXRvY29tcGxldGUtc2VsZWN0aW9uLWNoYW5nZSc7XG5cbmltcG9ydCB7XG4gIFNreUF1dG9jb21wbGV0ZVNob3dNb3JlQXJnc1xufSBmcm9tICcuLi9hdXRvY29tcGxldGUvdHlwZXMvYXV0b2NvbXBsZXRlLXNob3ctbW9yZS1hcmdzJztcblxuaW1wb3J0IHtcbiAgU2t5QXV0b2NvbXBsZXRlSW5wdXREaXJlY3RpdmVcbn0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1pbnB1dC5kaXJlY3RpdmUnO1xuXG5pbXBvcnQge1xuICBTa3lMb29rdXBBdXRvY29tcGxldGVBZGFwdGVyXG59IGZyb20gJy4vbG9va3VwLWF1dG9jb21wbGV0ZS1hZGFwdGVyJztcblxuaW1wb3J0IHtcbiAgU2t5TG9va3VwQWRhcHRlclNlcnZpY2Vcbn0gZnJvbSAnLi9sb29rdXAtYWRhcHRlci5zZXJ2aWNlJztcblxuaW1wb3J0IHtcbiAgU2t5TG9va3VwU2hvd01vcmVNb2RhbENvbXBvbmVudFxufSBmcm9tICcuL2xvb2t1cC1zaG93LW1vcmUtbW9kYWwuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5TG9va3VwQWRkQ2FsbGJhY2tBcmdzXG59IGZyb20gJy4vdHlwZXMvbG9va3VwLWFkZC1jbGljay1jYWxsYmFjay1hcmdzJztcblxuaW1wb3J0IHtcbiAgU2t5TG9va3VwQWRkQ2xpY2tFdmVudEFyZ3Ncbn0gZnJvbSAnLi90eXBlcy9sb29rdXAtYWRkLWNsaWNrLWV2ZW50LWFyZ3MnO1xuXG5pbXBvcnQge1xuICBTa3lMb29rdXBTZWxlY3RNb2RlVHlwZVxufSBmcm9tICcuL3R5cGVzL2xvb2t1cC1zZWxlY3QtbW9kZS10eXBlJztcblxuaW1wb3J0IHtcbiAgU2t5TG9va3VwU2hvd01vcmVDb25maWdcbn0gZnJvbSAnLi90eXBlcy9sb29rdXAtc2hvdy1tb3JlLWNvbmZpZyc7XG5cbmltcG9ydCB7XG4gIFNreUxvb2t1cFNob3dNb3JlTmF0aXZlUGlja2VyQ29udGV4dFxufSBmcm9tICcuL3R5cGVzL2xvb2t1cC1zaG93LW1vcmUtbmF0aXZlLXBpY2tlci1jb250ZXh0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWxvb2t1cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9sb29rdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sb29rdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgU2t5TG9va3VwQWRhcHRlclNlcnZpY2VcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2t5TG9va3VwQ29tcG9uZW50XG4gIGV4dGVuZHMgU2t5TG9va3VwQXV0b2NvbXBsZXRlQWRhcHRlclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhbiBBUklBIGxhYmVsIGZvciB0aGUgdHlwZWFoZWFkIHNlYXJjaCBpbnB1dFxuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpLlxuICAgKiBJZiB0aGUgaW5wdXQgaW5jbHVkZXMgYSB2aXNpYmxlIGxhYmVsLCB1c2UgYGFyaWFMYWJlbGxlZEJ5YCBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFyaWFMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIEhUTUwgZWxlbWVudCBJRCAod2l0aG91dCB0aGUgbGVhZGluZyBgI2ApIG9mIHRoZSBlbGVtZW50IHRoYXQgbGFiZWxzXG4gICAqIHRoZSB0eXBlYWhlYWQgc2VhcmNoIGlucHV0LiBUaGlzIHNldHMgdGhlIGlucHV0J3MgYGFyaWEtbGFiZWxsZWRieWAgYXR0cmlidXRlXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkuXG4gICAqIElmIHRoZSBpbnB1dCBkb2VzIG5vdCBpbmNsdWRlIGEgdmlzaWJsZSBsYWJlbCwgdXNlIGBhcmlhTGFiZWxgIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYXJpYUxhYmVsbGVkQnk6IHN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB2YWx1ZSBmb3IgdGhlIGBhdXRvY29tcGxldGVgIGF0dHJpYnV0ZSBvbiB0aGUgZm9ybSBpbnB1dC5cbiAgICogQGRlZmF1bHQgXCJvZmZcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGF1dG9jb21wbGV0ZUF0dHJpYnV0ZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBkYXRhIHNvdXJjZSBmb3IgdGhlIGxvb2t1cCBjb21wb25lbnQgdG8gc2VhcmNoIHdoZW4gdXNlcnNcbiAgICogZW50ZXIgdGV4dC4gWW91IGNhbiBzcGVjaWZ5IHN0YXRpYyBkYXRhIHN1Y2ggYXMgYW4gYXJyYXkgb2Ygb2JqZWN0cywgb3JcbiAgICogeW91IGNhbiBwdWxsIGRhdGEgZnJvbSBhIGRhdGFiYXNlLlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkYXRhKHZhbHVlOiBhbnlbXSkge1xuICAgIHRoaXMuX2RhdGEgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLm9wZW5OYXRpdmVQaWNrZXIpIHtcbiAgICAgIHRoaXMub3Blbk5hdGl2ZVBpY2tlci5jb21wb25lbnRJbnN0YW5jZS51cGRhdGVJdGVtRGF0YSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkYXRhKCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNhYmxlIHRoZSBsb29rdXAgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gZW5hYmxlIHVzZXJzIHRvIG9wZW4gYSBwaWNrZXIgd2hlcmUgdGhleSBjYW4gdmlldyBhbGwgb3B0aW9ucy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlbmFibGVTaG93TW9yZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgcGxhY2Vob2xkZXIgdGV4dCB0byBkaXNwbGF5IGluIHRoZSBsb29rdXAgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcGxhY2Vob2xkZXJUZXh0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhbiBvYmplY3QgcHJvcGVydHkgdGhhdCByZXByZXNlbnRzIHRoZSBvYmplY3QncyB1bmlxdWUgaWRlbnRpZmllci5cbiAgICogU3BlY2lmeWluZyB0aGlzIHByb3BlcnR5IGVuYWJsZXMgdG9rZW4gYW5pbWF0aW9ucyBhbmQgbW9yZSBlZmZpY2llbnQgcmVuZGVyaW5nLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGlkUHJvcGVydHk6IHN0cmluZztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gZGlzcGxheSBhIGJ1dHRvbiB0aGF0IGxldHMgdXNlcnMgYWRkIG9wdGlvbnMgdG8gdGhlIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd0FkZEJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgcGlja2VyIHRoYXQgZGlzcGxheXMgYWxsIG9wdGlvbnMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd01vcmVDb25maWc6IFNreUxvb2t1cFNob3dNb3JlQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgd2hldGhlciB1c2VycyBjYW4gc2VsZWN0IG9uZSBvcHRpb24gb3IgbXVsdGlwbGUgb3B0aW9ucy5cbiAgICogQGRlZmF1bHQgXCJtdWxpdHBsZVwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdE1vZGUodmFsdWU6IFNreUxvb2t1cFNlbGVjdE1vZGVUeXBlKSB7XG4gICAgbGV0IG11bHRpcGxlVG9TaW5nbGU6IGJvb2xlYW4gPSB2YWx1ZSA9PT0gJ3NpbmdsZScgJiYgdGhpcy5zZWxlY3RNb2RlID09PSAnbXVsdGlwbGUnO1xuXG4gICAgdGhpcy5fc2VsZWN0TW9kZSA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlRm9yU2VsZWN0TW9kZSgpO1xuXG4gICAgaWYgKG11bHRpcGxlVG9TaW5nbGUpIHtcbiAgICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUubGVuZ3RoID4gMSkge1xuICAgICAgICAvLyBUaGUgYHNldFRpbWVvdXRgIGlzIG5lZWRlZCB0byBhdm9pZCBhIGBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yYCBlcnJvciBpbiB0ZW1wbGF0ZSBmb3Jtcy5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFt0aGlzLnZhbHVlWzBdXSk7XG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0TW9kZSgpOiBTa3lMb29rdXBTZWxlY3RNb2RlVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdE1vZGUgfHwgJ211bHRpcGxlJztcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIHNlbGVjdCB0aGUgYnV0dG9uIHRvIGFkZCBvcHRpb25zIHRvIHRoZSBsaXN0LlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBhZGRDbGljazogRXZlbnRFbWl0dGVyPFNreUxvb2t1cEFkZENsaWNrRXZlbnRBcmdzPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgZ2V0IHRva2VucygpOiBTa3lUb2tlbltdIHtcbiAgICByZXR1cm4gdGhpcy5fdG9rZW5zO1xuICB9XG5cbiAgcHVibGljIHNldCB0b2tlbnModmFsdWU6IFNreVRva2VuW10pIHtcbiAgICAvLyBDb2xsYXBzZSB0aGUgdG9rZW5zIGludG8gYSBzaW5nbGUgdG9rZW4gaWYgdGhlIHVzZXIgaGFzIHNlbGVjdGVkIG1hbnkgb3B0aW9ucy5cbiAgICBpZiAodGhpcy5lbmFibGVTaG93TW9yZSAmJiB0aGlzLnZhbHVlLmxlbmd0aCA+IDUpIHtcbiAgICAgIHRoaXMucmVzb3VyY2VzU2VydmljZS5nZXRTdHJpbmcoXG4gICAgICAgICdza3l1eF9sb29rdXBfdG9rZW5zX3N1bW1hcnknLFxuICAgICAgICB0aGlzLnZhbHVlLmxlbmd0aC50b1N0cmluZygpXG4gICAgICApXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGxhYmVsKSA9PiB7XG4gICAgICAgICAgdGhpcy5fdG9rZW5zID0gW3tcbiAgICAgICAgICAgIHZhbHVlOiB7IFt0aGlzLmRlc2NyaXB0b3JQcm9wZXJ0eV06IGxhYmVsIH1cbiAgICAgICAgICB9XTtcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdG9rZW5zID0gdmFsdWU7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55W10ge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZSA/IHRoaXMuX3ZhbHVlIDogW107XG4gIH1cblxuICBwdWJsaWMgc2V0IHZhbHVlKG5ld1ZhbHVlOiBhbnlbXSkge1xuICAgIHRoaXMuX3ZhbHVlID0gbmV3VmFsdWU7XG5cbiAgICBpZiAoIXRoaXMub3Blbk5hdGl2ZVBpY2tlcikge1xuICAgICAgdGhpcy50b2tlbnMgPSB0aGlzLnBhcnNlVG9rZW5zKG5ld1ZhbHVlKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgcHVibGljIGF1dG9jb21wbGV0ZUNvbnRyb2xsZXIgPSBuZXcgU3ViamVjdDxTa3lBdXRvY29tcGxldGVNZXNzYWdlPigpO1xuICBwdWJsaWMgaXNJbnB1dEZvY3VzZWQgPSBmYWxzZTtcbiAgcHVibGljIHRva2Vuc0NvbnRyb2xsZXIgPSBuZXcgU3ViamVjdDxTa3lUb2tlbnNNZXNzYWdlPigpO1xuXG4gIEBWaWV3Q2hpbGQoU2t5QXV0b2NvbXBsZXRlSW5wdXREaXJlY3RpdmUsIHtcbiAgICByZWFkOiBTa3lBdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZSxcbiAgICBzdGF0aWM6IGZhbHNlXG4gIH0pXG4gIHByaXZhdGUgc2V0IGF1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlKHZhbHVlOiBTa3lBdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZSkge1xuICAgIHRoaXMuX2F1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVGb3JTZWxlY3RNb2RlKCk7XG4gIH1cblxuICBwcml2YXRlIGdldCBhdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZSgpOiBTa3lBdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZSB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnc2hvd01vcmVCdXR0b25UZW1wbGF0ZVJlZicsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgICBzdGF0aWM6IHRydWVcbiAgfSlcbiAgcHJpdmF0ZSBzaG93TW9yZUJ1dHRvblRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0VGVtcGxhdGVSZWYnLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlXG4gIH0pXG4gIHByaXZhdGUgaW5wdXRUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAVmlld0NoaWxkKCdsb29rdXBXcmFwcGVyJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWZcbiAgfSlcbiAgcHJpdmF0ZSBsb29rdXBXcmFwcGVyUmVmOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaEljb25UZW1wbGF0ZVJlZicsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgICBzdGF0aWM6IHRydWVcbiAgfSlcbiAgcHJpdmF0ZSBzZWFyY2hJY29uVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSBpZGxlID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSBtYXJrRm9yVG9rZW5Gb2N1c09uS2V5VXAgPSBmYWxzZTtcbiAgcHJpdmF0ZSBvcGVuTmF0aXZlUGlja2VyOiBTa3lNb2RhbEluc3RhbmNlO1xuXG4gIHByaXZhdGUgX2F1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlOiBTa3lBdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZTtcbiAgcHJpdmF0ZSBfZGF0YTogYW55W107XG4gIHByaXZhdGUgX3NlbGVjdE1vZGU6IFNreUxvb2t1cFNlbGVjdE1vZGVUeXBlO1xuICBwcml2YXRlIF90b2tlbnM6IFNreVRva2VuW107XG4gIHByaXZhdGUgX3ZhbHVlOiBhbnlbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB3aW5kb3dSZWY6IFNreUFwcFdpbmRvd1JlZixcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgIHByaXZhdGUgYWRhcHRlcjogU2t5TG9va3VwQWRhcHRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IFNreU1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIHJlc291cmNlc1NlcnZpY2U6IFNreUxpYlJlc291cmNlc1NlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIGlucHV0Qm94SG9zdFN2Yz86IFNreUlucHV0Qm94SG9zdFNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIHRoZW1lU3ZjPzogU2t5VGhlbWVTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlucHV0Qm94SG9zdFN2Yykge1xuICAgICAgdGhpcy5pbnB1dEJveEhvc3RTdmMucG9wdWxhdGUoXG4gICAgICAgIHtcbiAgICAgICAgICBpbnB1dFRlbXBsYXRlOiB0aGlzLmlucHV0VGVtcGxhdGVSZWYsXG4gICAgICAgICAgYnV0dG9uc1RlbXBsYXRlOiB0aGlzLmVuYWJsZVNob3dNb3JlID8gdGhpcy5zaG93TW9yZUJ1dHRvblRlbXBsYXRlUmVmIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGljb25zSW5zZXRUZW1wbGF0ZTogdGhpcy5lbmFibGVTaG93TW9yZSA/IHVuZGVmaW5lZCA6IHRoaXMuc2VhcmNoSWNvblRlbXBsYXRlUmVmXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy50aGVtZVN2Yykge1xuICAgICAgLy8gVGhpcyBpcyByZXF1aXJlZCBmb3IgdGhlIGF1dG9jb21wbGV0ZSBkaXJlY3RpdmUgdG8gYmUgc2V0IGFmdGVyIGVsZW1lbnRzXG4gICAgICAvLyBhcmUgcmVhcnJhbmdlZCB3aGVuIHN3aXRjaGluZyB0aGVtZXMuXG4gICAgICB0aGlzLnRoZW1lU3ZjLnNldHRpbmdzQ2hhbmdlXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcnMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVycygpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy50b2tlbnNDb250cm9sbGVyLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgYWRkQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmFkZENsaWNrLmVtaXQoeyBpdGVtQWRkZWQ6IChhcmdzOiBTa3lMb29rdXBBZGRDYWxsYmFja0FyZ3MpID0+IHRoaXMub25BZGRCdXR0b25Db21wbGV0ZShhcmdzKSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkF1dG9jb21wbGV0ZVNlbGVjdGlvbkNoYW5nZShjaGFuZ2U6IFNreUF1dG9jb21wbGV0ZVNlbGVjdGlvbkNoYW5nZSk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGNoYW5nZS5zZWxlY3RlZEl0ZW0pIHtcbiAgICAgIHRoaXMuYWRkVG9TZWxlY3RlZChjaGFuZ2Uuc2VsZWN0ZWRJdGVtKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0TW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZShbXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQXV0b2NvbXBsZXRlQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgcHVibGljIG9uVG9rZW5zQ2hhbmdlKGNoYW5nZTogU2t5VG9rZW5bXSk6IHZvaWQge1xuICAgIGlmICghY2hhbmdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudG9rZW5zICE9PSBjaGFuZ2UpIHtcbiAgICAgIGlmIChjaGFuZ2UubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBOT1RFOiBXZSBkbyB0aGlzIGhlcmUgaW5zdGVhZCBvZiBqdXN0IHVzaW5nIHRoZSBgdmFsdWVgIHNldHRlciBiZWNhdXNlIHdlIG5lZWQgdG8gdXNlIHRoZVxuICAgICAgLy8gc2V0IG9mIHRva2VucyByZXR1cm5lZCBoZXJlIGZvciB0aGUgcHVycG9zZXMgb2Ygc2V0dGluZyBmb2N1cyAoc2VlIGBvblRva2Vuc0tleVVwYCkuXG4gICAgICB0aGlzLl92YWx1ZSA9IGNoYW5nZS5tYXAodG9rZW4gPT4geyByZXR1cm4gdG9rZW4udmFsdWU7IH0pO1xuICAgICAgdGhpcy50b2tlbnMgPSBjaGFuZ2U7XG5cbiAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5fdmFsdWUpO1xuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25Ub2tlbnNGb2N1c0luZGV4T3ZlclJhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMud2luZG93UmVmLm5hdGl2ZVdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uVG9rZW5zS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLnNlbGVjdE1vZGUgIT09ICdzaW5nbGUnKSB7XG4gICAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6c3dpdGNoLWRlZmF1bHQgKi9cbiAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAgIGNhc2UgJ0JhY2tzcGFjZSc6XG4gICAgICAgICAgdGhpcy5zZW5kVG9rZW5zTWVzc2FnZShTa3lUb2tlbnNNZXNzYWdlVHlwZS5SZW1vdmVBY3RpdmVUb2tlbik7XG4gICAgICAgICAgdGhpcy5zZW5kVG9rZW5zTWVzc2FnZShTa3lUb2tlbnNNZXNzYWdlVHlwZS5Gb2N1c1ByZXZpb3VzVG9rZW4pO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnRGVsJzpcbiAgICAgICAgY2FzZSAnRGVsZXRlJzpcbiAgICAgICAgICB0aGlzLnNlbmRUb2tlbnNNZXNzYWdlKFNreVRva2Vuc01lc3NhZ2VUeXBlLlJlbW92ZUFjdGl2ZVRva2VuKTtcbiAgICAgICAgICB0aGlzLndpbmRvd1JlZi5uYXRpdmVXaW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlbmRUb2tlbnNNZXNzYWdlKFNreVRva2Vuc01lc3NhZ2VUeXBlLkZvY3VzQWN0aXZlVG9rZW4pO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueVtdKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlID8gdmFsdWUgOiBbXTtcbiAgICB0aGlzLnVwZGF0ZUZvclNlbGVjdE1vZGUoKTtcbiAgfVxuXG4gIC8vIEFuZ3VsYXIgYXV0b21hdGljYWxseSBjb25zdHJ1Y3RzIHRoZXNlIG1ldGhvZHMuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHB1YmxpYyBvbkNoYW5nZSA9ICh2YWx1ZTogYW55W10pID0+IHsgfTtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcHVibGljIG9uVG91Y2hlZCA9ICgpID0+IHsgfTtcblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLy8gQWxsb3dzIEFuZ3VsYXIgdG8gZGlzYWJsZSB0aGUgaW5wdXQuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVycygpO1xuXG4gICAgaWYgKCFkaXNhYmxlZCkge1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVycygpO1xuICAgIH1cblxuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyU2VhcmNoVGV4dCgpOiB2b2lkIHtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlLnZhbHVlID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlSW5wdXREaXJlY3RpdmUuaW5wdXRUZXh0VmFsdWUgPSB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBIYW5kbGVzIHdoZW4gdG8gZm9jdXMgb24gdGhlIHRva2Vucy5cbiAgLy8gQ2hlY2sgZm9yIGVtcHR5IHNlYXJjaCB0ZXh0IG9uIGtleWRvd24sIGJlZm9yZSB0aGUgZXNjYXBlIGtleSBpcyBmdWxseSBwcmVzc2VkLlxuICAvLyAoT3RoZXJ3aXNlLCBhIHNpbmdsZSBjaGFyYWN0ZXIgYmVpbmcgZXNjYXBlZCB3b3VsZCByZWdpc3RlciBhcyBlbXB0eSBvbiBrZXl1cC4pXG4gIC8vIElmIGVtcHR5IG9uIGtleWRvd24sIHNldCBhIGZsYWcgc28gdGhhdCB0aGUgYXBwcm9wcmlhdGUgYWN0aW9uIGNhbiBiZSB0YWtlbiBvbiBrZXl1cC5cbiAgcHVibGljIGlucHV0S2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIC8qIFNhbml0eSBjaGVjayBhcyB0aGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuIGluIG11bHRpcGxlIHNlbGVjdCBtb2RlICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5zZWxlY3RNb2RlICE9PSAnc2luZ2xlJykge1xuICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgIGNhc2UgJ0JhY2tzcGFjZSc6XG4gICAgICAgIGNhc2UgJ0xlZnQnOlxuICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5tYXJrRm9yVG9rZW5Gb2N1c09uS2V5VXAgPSBmYWxzZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tYXJrRm9yVG9rZW5Gb2N1c09uS2V5VXAgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaW5wdXRLZXl1cChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIC8qIFNhbml0eSBjaGVjayBhcyB0aGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuIGluIG11bHRpcGxlIHNlbGVjdCBtb2RlICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5zZWxlY3RNb2RlICE9PSAnc2luZ2xlJykge1xuICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgY2FzZSAnRXNjJzpcbiAgICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgICB0aGlzLmNsZWFyU2VhcmNoVGV4dCgpO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgIGNhc2UgJ0JhY2tzcGFjZSc6XG4gICAgICAgIGNhc2UgJ0xlZnQnOlxuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKHRoaXMubWFya0ZvclRva2VuRm9jdXNPbktleVVwKSB7XG4gICAgICAgICAgICB0aGlzLnNlbmRUb2tlbnNNZXNzYWdlKFNreVRva2Vuc01lc3NhZ2VUeXBlLkZvY3VzTGFzdFRva2VuKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgfVxuXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25TZWFyY2hCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbmRBdXRvY29tcGxldGVNZXNzYWdlKFNreUF1dG9jb21wbGV0ZU1lc3NhZ2VUeXBlLkNsb3NlRHJvcGRvd24pO1xuICAgIGxldCBpc1ZhbHVlSW5UZXh0Qm94ID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuc2VsZWN0TW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIGlzVmFsdWVJblRleHRCb3ggPSB0aGlzLmF1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlLmlucHV0VGV4dFZhbHVlID09PSB0aGlzLmF1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlLnZhbHVlW3RoaXMuZGVzY3JpcHRvclByb3BlcnR5XTtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW5QaWNrZXIoaXNWYWx1ZUluVGV4dEJveCA/ICcnIDogdGhpcy5hdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZS5pbnB1dFRleHRWYWx1ZSk7XG4gICAgdGhpcy5hdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZS5yZXN0b3JlSW5wdXRUZXh0VmFsdWVUb1ByZXZpb3VzU3RhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNob3dNb3JlQ2xpY2soZXZlbnQ6IFNreUF1dG9jb21wbGV0ZVNob3dNb3JlQXJncyk6IHZvaWQge1xuICAgIC8qIFNhbml0eSBjaGVjayAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHRoaXMub3BlblBpY2tlcihldmVudC5pbnB1dFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3BlblBpY2tlcihpbml0aWFsU2VhcmNoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaG93TW9yZUNvbmZpZz8uY3VzdG9tUGlja2VyKSB7XG4gICAgICB0aGlzLnNob3dNb3JlQ29uZmlnLmN1c3RvbVBpY2tlci5vcGVuKHtcbiAgICAgICAgaXRlbXM6IHRoaXMuZGF0YSxcbiAgICAgICAgaW5pdGlhbFNlYXJjaDogaW5pdGlhbFNlYXJjaCxcbiAgICAgICAgaW5pdGlhbFZhbHVlOiB0aGlzLnZhbHVlXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGluaXRpYWxWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICBjb25zdCBtb2RhbENvbmZpZyA9IHRoaXMuc2hvd01vcmVDb25maWc/Lm5hdGl2ZVBpY2tlckNvbmZpZyB8fCB7fTtcbiAgICAgIGlmICghbW9kYWxDb25maWcuaXRlbVRlbXBsYXRlKSB7XG4gICAgICAgIG1vZGFsQ29uZmlnLml0ZW1UZW1wbGF0ZSA9IHRoaXMuc2VhcmNoUmVzdWx0VGVtcGxhdGU7XG4gICAgICB9XG5cbiAgICAgIGxldCBjb250ZXh0OiBTa3lMb29rdXBTaG93TW9yZU5hdGl2ZVBpY2tlckNvbnRleHQgPSB7XG4gICAgICAgIGl0ZW1zOiB0aGlzLmRhdGEsXG4gICAgICAgIGRlc2NyaXB0b3JQcm9wZXJ0eTogdGhpcy5kZXNjcmlwdG9yUHJvcGVydHksXG4gICAgICAgIGluaXRpYWxTZWFyY2g6IGluaXRpYWxTZWFyY2gsXG4gICAgICAgIGluaXRpYWxWYWx1ZTogaW5pdGlhbFZhbHVlLFxuICAgICAgICBzZWFyY2g6IHRoaXMuc2VhcmNoLFxuICAgICAgICBzZWxlY3RNb2RlOiB0aGlzLnNlbGVjdE1vZGUsXG4gICAgICAgIHNob3dBZGRCdXR0b246IHRoaXMuc2hvd0FkZEJ1dHRvbixcbiAgICAgICAgdXNlckNvbmZpZzogbW9kYWxDb25maWdcbiAgICAgIH07XG5cbiAgICAgIHRoaXMub3Blbk5hdGl2ZVBpY2tlciA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oU2t5TG9va3VwU2hvd01vcmVNb2RhbENvbXBvbmVudCwge1xuICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBTa3lMb29rdXBTaG93TW9yZU5hdGl2ZVBpY2tlckNvbnRleHQsIHVzZVZhbHVlOiBjb250ZXh0XG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5vcGVuTmF0aXZlUGlja2VyLmNvbXBvbmVudEluc3RhbmNlLmFkZENsaWNrLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuYWRkQnV0dG9uQ2xpY2tlZCgpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMub3Blbk5hdGl2ZVBpY2tlci5jbG9zZWQuc3Vic2NyaWJlKGNsb3NlQXJncyA9PiB7XG4gICAgICAgIHRoaXMub3Blbk5hdGl2ZVBpY2tlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGNsb3NlQXJncy5yZWFzb24gPT09ICdzYXZlJykge1xuICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW1zOiBhbnlbXSA9IFtdO1xuXG4gICAgICAgICAgdGhpcy5kYXRhLmZvckVhY2goKGl0ZW06IGFueSwgZGF0YUluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGlmIChjbG9zZUFyZ3MuZGF0YS5zb21lKChzYXZlZEl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gc2F2ZWRJdGVtLmluZGV4ID09PSBkYXRhSW5kZXg7XG4gICAgICAgICAgICB9KSkge1xuICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoc2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGluaXRpYWxWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkVG9TZWxlY3RlZChpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBsZXQgc2VsZWN0ZWRJdGVtczogYW55W107XG5cbiAgICBpZiAodGhpcy5zZWxlY3RNb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgc2VsZWN0ZWRJdGVtcyA9IFtpdGVtXTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VsZWN0ZWRJdGVtcyA9IHRoaXMudmFsdWU7XG5cbiAgICAgIC8vIElmIGl0ZW1zIGhhdmUgYSB1bmlxdWUgaWRlbnRpZmllciwgZG9uJ3QgYWxsb3cgdGhlIHNhbWUgaXRlbSB0byBiZSBhZGRlZCB0d2ljZS5cbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMuaWRQcm9wZXJ0eSB8fFxuICAgICAgICAhdGhpcy52YWx1ZS5zb21lKFxuICAgICAgICAgIGV4aXN0aW5nSXRlbSA9PiBleGlzdGluZ0l0ZW1bdGhpcy5pZFByb3BlcnR5XSA9PT0gaXRlbVt0aGlzLmlkUHJvcGVydHldXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICBzZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY2xlYXJTZWFyY2hUZXh0KCk7XG4gICAgfVxuXG4gICAgdGhpcy53cml0ZVZhbHVlKHNlbGVjdGVkSXRlbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRFdmVudExpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLmlkbGUgPSBuZXcgU3ViamVjdCgpO1xuICAgIHRoaXMuZm9jdXNJbnB1dE9uSG9zdENsaWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUV2ZW50TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuaWRsZS5uZXh0KCk7XG4gICAgdGhpcy5pZGxlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzSW5wdXRPbkhvc3RDbGljaygpOiB2b2lkIHtcbiAgICBsZXQgaG9zdEVsZW1lbnQgPSAhdGhpcy5pbnB1dEJveEhvc3RTdmMgPyB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCA6IHRoaXMubG9va3VwV3JhcHBlclJlZi5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGRvY3VtZW50T2JqID0gdGhpcy53aW5kb3dSZWYubmF0aXZlV2luZG93LmRvY3VtZW50O1xuXG4gICAgLy8gSGFuZGxlcyBmb2N1c2luZyB0aGUgaW5wdXQgd2hlbiB0aGUgaG9zdCBpcyBjbGlja2VkLlxuICAgIC8vIFRoZSBpbnB1dCBzaG91bGQgTk9UIGJlIGZvY3VzZWQgaWYgb3RoZXIgZWxlbWVudHMgKHRva2VucywgZXRjLilcbiAgICAvLyBhcmUgY3VycmVudGx5IGZvY3VzZWQgb3IgYmVpbmcgdGFiYmVkIHRocm91Z2guXG5cbiAgICBvYnNlcnZhYmxlRnJvbUV2ZW50KGRvY3VtZW50T2JqLCAnbW91c2Vkb3duJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmlkbGUpKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgaG9zdEVsZW1lbnQgPSAhdGhpcy5pbnB1dEJveEhvc3RTdmMgPyB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCA6IHRoaXMubG9va3VwV3JhcHBlclJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLmlzSW5wdXRGb2N1c2VkID0gaG9zdEVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KTtcblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICBvYnNlcnZhYmxlRnJvbUV2ZW50KGRvY3VtZW50T2JqLCAnZm9jdXNpbicpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5pZGxlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGhvc3RFbGVtZW50ID0gIXRoaXMuaW5wdXRCb3hIb3N0U3ZjID8gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgOiB0aGlzLmxvb2t1cFdyYXBwZXJSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgdGhpcy5pc0lucHV0Rm9jdXNlZCA9IGhvc3RFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgb2JzZXJ2YWJsZUZyb21FdmVudChob3N0RWxlbWVudCwgJ21vdXNldXAnKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuaWRsZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgY2xhc3NMaXN0ID0gZG9jdW1lbnRPYmouYWN0aXZlRWxlbWVudC5jbGFzc0xpc3Q7XG4gICAgICAgIGlmICghY2xhc3NMaXN0IHx8ICFjbGFzc0xpc3QuY29udGFpbnMoJ3NreS10b2tlbicpKSB7XG4gICAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0lucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuYWRhcHRlci5mb2N1c0lucHV0KHRoaXMubG9va3VwV3JhcHBlclJlZik7XG4gIH1cblxuICBwcml2YXRlIG9uQWRkQnV0dG9uQ29tcGxldGUoYXJnczogU2t5TG9va3VwQWRkQ2FsbGJhY2tBcmdzKSB7XG4gICAgaWYgKGFyZ3MuZGF0YSkge1xuICAgICAgdGhpcy5kYXRhID0gYXJncy5kYXRhO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGEuaW5kZXhPZihhcmdzLml0ZW0pID49IDApIHtcbiAgICAgIGlmICh0aGlzLm9wZW5OYXRpdmVQaWNrZXIpIHtcbiAgICAgICAgKDxTa3lMb29rdXBTaG93TW9yZU1vZGFsQ29tcG9uZW50PnRoaXMub3Blbk5hdGl2ZVBpY2tlci5jb21wb25lbnRJbnN0YW5jZSlcbiAgICAgICAgICAub25JdGVtU2VsZWN0KHRydWUsIHsgdmFsdWU6IGFyZ3MuaXRlbSwgc2VsZWN0ZWQ6IGZhbHNlIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IG5ld1ZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0TW9kZSA9PT0gJ211bHRpcGxlJykge1xuICAgICAgICAgIG5ld1ZhbHVlID0gdGhpcy52YWx1ZS5jb25jYXQoYXJncy5pdGVtKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9IFthcmdzLml0ZW1dO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVRva2VucyhkYXRhOiBhbnlbXSk6IFNreVRva2VuW10ge1xuICAgIHJldHVybiBkYXRhLm1hcCgoaXRlbTogYW55KSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZTogaXRlbVxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2VuZEF1dG9jb21wbGV0ZU1lc3NhZ2UodHlwZTogU2t5QXV0b2NvbXBsZXRlTWVzc2FnZVR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnRyb2xsZXIubmV4dCh7IHR5cGUgfSk7XG4gIH1cblxuICBwcml2YXRlIHNlbmRUb2tlbnNNZXNzYWdlKHR5cGU6IFNreVRva2Vuc01lc3NhZ2VUeXBlKTogdm9pZCB7XG4gICAgdGhpcy50b2tlbnNDb250cm9sbGVyLm5leHQoeyB0eXBlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGb3JTZWxlY3RNb2RlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmF1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlKSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RNb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlLnZhbHVlID0gdGhpcy52YWx1ZSAmJlxuICAgICAgICAgIHRoaXMudmFsdWVbMF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNsZWFyU2VhcmNoVGV4dCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpbnB1dEJveEhvc3RTdmNcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlucHV0VGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGVcbiAgI2lucHV0VGVtcGxhdGVSZWZcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2t5LWxvb2t1cFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3NreS1sb29rdXAtZm9jdXNlZCc6IGlzSW5wdXRGb2N1c2VkLFxuICAgICAgJ3NreS1sb29rdXAtZGlzYWJsZWQnOiBkaXNhYmxlZCxcbiAgICAgICdza3ktbG9va3VwLXNpbmdsZSc6IHNlbGVjdE1vZGUgPT09ICdzaW5nbGUnXG4gICAgfVwiXG4gICAgI2xvb2t1cFdyYXBwZXJcbiAgPlxuICAgIDxza3ktYXV0b2NvbXBsZXRlXG4gICAgICBbYXJpYUxhYmVsbGVkQnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgW2RhdGFdPVwiZGF0YVwiXG4gICAgICBbZGVib3VuY2VUaW1lXT1cImRlYm91bmNlVGltZVwiXG4gICAgICBbZGVzY3JpcHRvclByb3BlcnR5XT1cImRlc2NyaXB0b3JQcm9wZXJ0eVwiXG4gICAgICBbZW5hYmxlU2hvd01vcmVdPVwiZW5hYmxlU2hvd01vcmVcIlxuICAgICAgW21lc3NhZ2VTdHJlYW1dPVwiYXV0b2NvbXBsZXRlQ29udHJvbGxlclwiXG4gICAgICBbcHJvcGVydGllc1RvU2VhcmNoXT1cInByb3BlcnRpZXNUb1NlYXJjaFwiXG4gICAgICBbc2VhcmNoXT1cInNlYXJjaFwiXG4gICAgICBbc2VhcmNoRmlsdGVyc109XCJzZWFyY2hGaWx0ZXJzXCJcbiAgICAgIFtzZWFyY2hSZXN1bHRzTGltaXRdPVwic2VhcmNoUmVzdWx0c0xpbWl0XCJcbiAgICAgIFtzZWFyY2hSZXN1bHRUZW1wbGF0ZV09XCJzZWFyY2hSZXN1bHRUZW1wbGF0ZVwiXG4gICAgICBbc2VhcmNoVGV4dE1pbmltdW1DaGFyYWN0ZXJzXT1cInNlYXJjaFRleHRNaW5pbXVtQ2hhcmFjdGVyc1wiXG4gICAgICBbc2hvd0FkZEJ1dHRvbl09XCJzaG93QWRkQnV0dG9uXCJcbiAgICAgIChhZGRDbGljayk9XCJhZGRCdXR0b25DbGlja2VkKClcIlxuICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkF1dG9jb21wbGV0ZVNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChzaG93TW9yZUNsaWNrKT1cIm9uU2hvd01vcmVDbGljaygkZXZlbnQpXCJcbiAgICA+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktbG9va3VwLXNlYXJjaC1mbGV4LXdyYXBwZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwic2t5LWxvb2t1cC1zZWFyY2hcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdza3ktZmllbGQtc3RhdHVzLWFjdGl2ZSc6IGlzSW5wdXRGb2N1c2VkXG4gICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LXRva2VucyAqbmdJZj1cInNlbGVjdE1vZGUgPT09ICdtdWx0aXBsZSdcIlxuICAgICAgICAgICAgY2xhc3M9XCJza3ktbG9va3VwLXRva2Vuc1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2Rpc3BsYXlXaXRoXT1cImRlc2NyaXB0b3JQcm9wZXJ0eVwiXG4gICAgICAgICAgICBbZm9jdXNhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFttZXNzYWdlU3RyZWFtXT1cInRva2Vuc0NvbnRyb2xsZXJcIlxuICAgICAgICAgICAgW3RyYWNrV2l0aF09XCJpZFByb3BlcnR5XCJcbiAgICAgICAgICAgIFt0b2tlbnNdPVwidG9rZW5zXCJcbiAgICAgICAgICAgIChrZXl1cCk9XCJvblRva2Vuc0tleVVwKCRldmVudClcIlxuICAgICAgICAgICAgKHRva2Vuc0NoYW5nZSk9XCJvblRva2Vuc0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICh0b2tlblNlbGVjdGVkKT1cImVuYWJsZVNob3dNb3JlID8gb3BlblBpY2tlcih1bmRlZmluZWQpIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgIChmb2N1c0luZGV4T3ZlclJhbmdlKT1cIm9uVG9rZW5zRm9jdXNJbmRleE92ZXJSYW5nZSgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktZm9ybS1jb250cm9sIHNreS1sb29rdXAtaW5wdXRcIlxuICAgICAgICAgICAgICByb3dzPVwiMVwiXG4gICAgICAgICAgICAgIHNreUF1dG9jb21wbGV0ZVxuICAgICAgICAgICAgICB3cmFwPVwib2ZmXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclRleHRcIlxuICAgICAgICAgICAgICBbYXV0b2NvbXBsZXRlQXR0cmlidXRlXT1cImF1dG9jb21wbGV0ZUF0dHJpYnV0ZVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgIChibHVyKT1cIm9uQXV0b2NvbXBsZXRlQmx1cigpXCJcbiAgICAgICAgICAgICAgKGtleWRvd24pPVwiaW5wdXRLZXlkb3duKCRldmVudCwgJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgICAgICAgICAoa2V5dXApPVwiaW5wdXRLZXl1cCgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICAgIDwvc2t5LXRva2Vucz5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0TW9kZSA9PT0gJ3NpbmdsZSdcIlxuICAgICAgICAgICAgY2xhc3M9XCJza3ktbG9va3VwLXNpbmdsZS1jb250cm9sXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktZm9ybS1jb250cm9sIHNreS1sb29rdXAtaW5wdXRcIlxuICAgICAgICAgICAgICByb3dzPVwiMVwiXG4gICAgICAgICAgICAgIHNreUF1dG9jb21wbGV0ZVxuICAgICAgICAgICAgICB3cmFwPVwib2ZmXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclRleHRcIlxuICAgICAgICAgICAgICBbYXV0b2NvbXBsZXRlQXR0cmlidXRlXT1cImF1dG9jb21wbGV0ZUF0dHJpYnV0ZVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgIChibHVyKT1cIm9uQXV0b2NvbXBsZXRlQmx1cigpXCJcbiAgICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpbnB1dEJveEhvc3RTdmMgJiYgZW5hYmxlU2hvd01vcmVcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2hvd01vcmVCdXR0b25UZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpbnB1dEJveEhvc3RTdmMgJiYgIWVuYWJsZVNob3dNb3JlXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlYXJjaEljb25UZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvc2t5LWF1dG9jb21wbGV0ZT5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgI3Nob3dNb3JlQnV0dG9uVGVtcGxhdGVSZWZcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2t5LWlucHV0LWdyb3VwLWJ0blwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInc2t5dXhfbG9va3VwX3NlYXJjaF9idXR0b25fc2hvd19tb3JlJyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICAoY2xpY2spPVwib25TZWFyY2hCdXR0b25DbGljaygpXCJcbiAgICA+XG4gICAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIlxuICAgICAgICBpY29uPVwic2VhcmNoXCJcbiAgICAgID48L3NreS1pY29uPlxuICAgICAgPHNreS1pY29uICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICAgICAgICBpY29uVHlwZT1cInNreXV4XCJcbiAgICAgICAgaWNvbj1cInNlYXJjaFwiXG4gICAgICA+PC9za3ktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgI3NlYXJjaEljb25UZW1wbGF0ZVJlZlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktaW5wdXQtZ3JvdXAtaWNvbiBza3ktaW5wdXQtYm94LWljb24taW5zZXRcIlxuICA+XG4gICAgPHNreS1pY29uICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCJcbiAgICAgIGljb249XCJzZWFyY2hcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInc2t5dXhfbG9va3VwX3NlYXJjaF9pY29uJyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgPjwvc2t5LWljb24+XG4gICAgPHNreS1pY29uICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICAgICAgaWNvblR5cGU9XCJza3l1eFwiXG4gICAgICBpY29uPVwic2VhcmNoXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NreXV4X2xvb2t1cF9zZWFyY2hfaWNvbicgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgID48L3NreS1pY29uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
package/fesm2015/skyux-lookup.js
CHANGED
|
@@ -2339,10 +2339,8 @@ class SkyLookupComponent extends SkyLookupAutocompleteAdapter {
|
|
|
2339
2339
|
}
|
|
2340
2340
|
}
|
|
2341
2341
|
writeValue(value) {
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
this.updateForSelectMode();
|
|
2345
|
-
}
|
|
2342
|
+
this.value = value ? value : [];
|
|
2343
|
+
this.updateForSelectMode();
|
|
2346
2344
|
}
|
|
2347
2345
|
registerOnChange(fn) {
|
|
2348
2346
|
this.onChange = fn;
|