ca-components 1.0.91 → 1.0.93

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.
@@ -1,26 +1,31 @@
1
1
  import { Pipe } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class InputPatternPipe {
4
- transform(inputName, ...args) {
5
- if (['business name', 'shop name', 'fuel stop'].includes(inputName)) {
4
+ transform(inputName, inputConfig) {
5
+ if (inputConfig.priceSeparator) {
6
6
  return {
7
- regex: /^[A-Za-z0-9!#'$&%()*+,./[:;=<>?çéâêîôûàèìòùëïü\s-]*$/g,
8
- restrictConsecutiveSpaces: false,
9
- restrictConsecutiveDots: false,
10
- restrictMultipeDots: false,
7
+ regex: /^[0-9.]*$/,
8
+ restrictMultipeDots: true,
9
+ isDecimalAndDotOnly: true,
11
10
  };
12
11
  }
13
- else if ('price-separator' === inputName) {
12
+ else if (inputConfig.thousandSeparator) {
14
13
  return {
15
- regex: /^[0-9.]*$/,
16
- restrictMultipeDots: true,
14
+ regex: /^[0-9]*$/,
17
15
  isDecimalAndDotOnly: true
18
16
  };
19
- //return /^[0-9.]*$/;
17
+ }
18
+ else if (['business name', 'shop name', 'fuel stop'].includes(inputName)) {
19
+ return {
20
+ regex: /^[A-Za-z0-9!#'$&%()*+,./[:;=<>?çéâêîôûàèìòùëïü\s-]*$/g,
21
+ restrictConsecutiveSpaces: false,
22
+ restrictConsecutiveDots: false,
23
+ restrictMultipeDots: false,
24
+ };
20
25
  }
21
26
  else if (['phone', 'fax'].includes(inputName)) {
22
27
  return {
23
- regex: /^[0-9() -]*$/g
28
+ regex: /^[0-9() -]*$/g,
24
29
  };
25
30
  }
26
31
  else if ([
@@ -145,10 +150,7 @@ export class InputPatternPipe {
145
150
  }
146
151
  else if ('year' === inputName) {
147
152
  return {
148
- regex: /^[0-9]$/,
149
- restrictConsecutiveSpaces: false,
150
- restrictConsecutiveDots: false,
151
- restrictMultipeDots: false,
153
+ regex: /^(|0|[1-9]\d*)$/,
152
154
  };
153
155
  //return /^[0-9]$/;
154
156
  }
@@ -310,7 +312,7 @@ export class InputPatternPipe {
310
312
  restrictConsecutiveSpaces: false,
311
313
  restrictConsecutiveDots: false,
312
314
  restrictMultipeDots: false,
313
- isDecimalAndDotOnly: false
315
+ isDecimalAndDotOnly: false,
314
316
  };
315
317
  }
316
318
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputPatternPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
@@ -323,4 +325,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
323
325
  standalone: true,
324
326
  }]
325
327
  }] });
326
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGF0dGVybi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQvcGlwZXMvaW5wdXQtcGF0dGVybi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU1wRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLFNBQVMsQ0FBQyxTQUFpQixFQUFFLEdBQUcsSUFBVztRQUN2QyxJQUFJLENBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNsRSxPQUFPO2dCQUNILEtBQUssRUFBRSx1REFBdUQ7Z0JBQzlELHlCQUF5QixFQUFFLEtBQUs7Z0JBQ2hDLHVCQUF1QixFQUFFLEtBQUs7Z0JBQzlCLG1CQUFtQixFQUFFLEtBQUs7YUFDN0IsQ0FBQztRQUNOLENBQUM7YUFBTSxJQUFJLGlCQUFpQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3pDLE9BQU87Z0JBQ0gsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLG1CQUFtQixFQUFFLElBQUk7Z0JBQ3pCLG1CQUFtQixFQUFFLElBQUk7YUFDNUIsQ0FBQztZQUNGLHFCQUFxQjtRQUN6QixDQUFDO2FBQU0sSUFBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQztZQUM1QyxPQUFPO2dCQUNILEtBQUssRUFBRSxlQUFlO2FBQ3pCLENBQUE7UUFDTCxDQUFDO2FBQ0ksSUFDRDtZQUNJLEtBQUs7WUFDTCxPQUFPO1lBQ1AsaUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxjQUFjO1lBQ2QsS0FBSztZQUNMLFdBQVc7WUFDWCxjQUFjO1lBQ2QsY0FBYztZQUNkLFFBQVE7WUFDUixP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RUFBRSxJQUFJO1lBQ1gseUJBQXlCLEVBQUUsS0FBSztZQUNoQyx1QkFBdUIsRUFBRSxLQUFLO1lBQzlCLG1CQUFtQixFQUFFLEtBQUs7WUFDMUIsbUJBQW1CLEVBQUUsS0FBSztTQUM3QixDQUFDO0lBQ04sQ0FBQzsrR0EzU1EsZ0JBQWdCOzZHQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBSjVCLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLGNBQWM7b0JBQ3BCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICAgIG5hbWU6ICdpbnB1dFBhdHRlcm4nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElucHV0UGF0dGVyblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0oaW5wdXROYW1lOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICAgIGlmIChbJ2J1c2luZXNzIG5hbWUnLCAnc2hvcCBuYW1lJywgJ2Z1ZWwgc3RvcCddLmluY2x1ZGVzKGlucHV0TmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOSEjJyQmJSgpKissLi9bOjs9PD4/w6fDqcOiw6rDrsO0w7vDoMOow6zDssO5w6vDr8O8XFxzLV0qJC9nLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoJ3ByaWNlLXNlcGFyYXRvcicgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bMC05Ll0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogdHJ1ZSxcbiAgICAgICAgICAgICAgICBpc0RlY2ltYWxBbmREb3RPbmx5OiB0cnVlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bMC05Ll0qJC87XG4gICAgICAgIH0gZWxzZSBpZihbJ3Bob25lJywgJ2ZheCddLmluY2x1ZGVzKGlucHV0TmFtZSkpe1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bMC05KCkgLV0qJC9nXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgJ2VpbicsXG4gICAgICAgICAgICAgICAgJ21jL2ZmJyxcbiAgICAgICAgICAgICAgICAncGhvbmUtZXh0ZW5zaW9uJyxcbiAgICAgICAgICAgICAgICAnYWNjb3VudC1iYW5rJyxcbiAgICAgICAgICAgICAgICAncm91dGluZy1iYW5rJyxcbiAgICAgICAgICAgICAgICAnc3NuJyxcbiAgICAgICAgICAgICAgICAnZnVlbC1jYXJkJyxcbiAgICAgICAgICAgICAgICAnZW1wdHktd2VpZ2h0JyxcbiAgICAgICAgICAgICAgICAnY3JlZGl0IGxpbWl0JyxcbiAgICAgICAgICAgICAgICAncG8gYm94JyxcbiAgICAgICAgICAgICAgICAncHJpY2UnLFxuICAgICAgICAgICAgICAgICd0cmFpbGVyLXZvbHVtZScsXG4gICAgICAgICAgICAgICAgJ3JlcGFpci1vZG9tZXRlcicsXG4gICAgICAgICAgICAgICAgJ3VzZG90JyxcbiAgICAgICAgICAgICAgICAnaXJwJyxcbiAgICAgICAgICAgICAgICAnc3RhcnRpbmcnLFxuICAgICAgICAgICAgICAgICdjdXN0b21lciBwYXkgdGVybScsXG4gICAgICAgICAgICAgICAgJ2N1c3RvbWVyIGNyZWRpdCcsXG4gICAgICAgICAgICAgICAgJ2RlZmF1bHQgYmFzZScsXG4gICAgICAgICAgICAgICAgJ2VhY2ggb2NjdXJyZW5jZScsXG4gICAgICAgICAgICAgICAgJ2RhbWFnZScsXG4gICAgICAgICAgICAgICAgJ3BlcnNvbmFsLWFkdmVyLWluaicsXG4gICAgICAgICAgICAgICAgJ21lZGljYWwgZXhwZW5zZXMnLFxuICAgICAgICAgICAgICAgICdib2RpbHkgaW5qdXJ5JyxcbiAgICAgICAgICAgICAgICAnZ2VuZXJhbCBhZ2dyZWdhdGUnLFxuICAgICAgICAgICAgICAgICdwcm9kdWN0cy1jb21wLW9wLWFnZycsXG4gICAgICAgICAgICAgICAgJ2NvbWJpbmVkLXNpbmdsZS1saW1pdCcsXG4gICAgICAgICAgICAgICAgJ3NpbmdsZS1jb252ZXlhbmNlJyxcbiAgICAgICAgICAgICAgICAnZGVkdWN0YWJsZScsXG4gICAgICAgICAgICAgICAgJ2NvbXByZWgtY29sbGlzaW9uJyxcbiAgICAgICAgICAgICAgICAndHJhaWxlci12YWx1ZS1pbnN1cmFuY2UtcG9saWN5JyxcbiAgICAgICAgICAgICAgICAncmVudCcsXG4gICAgICAgICAgICAgICAgJ3NhbGFyeScsXG4gICAgICAgICAgICAgICAgJ21pbGVhZ2UnLFxuICAgICAgICAgICAgICAgICdtb250aHMnLFxuICAgICAgICAgICAgICAgICdlbXB0eSB3ZWlnaHQnLFxuICAgICAgICAgICAgICAgICdxdHknLFxuICAgICAgICAgICAgICAgICdwdXJjaGFzZSBwcmljZScsXG4gICAgICAgICAgICBdLmluY2x1ZGVzKGlucHV0TmFtZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXlswLTldKiQvZyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bMC05XSokL2c7XG4gICAgICAgIH0gZWxzZSBpZiAoJ2VtYWlsJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTkhIyQlJicqKy89P15fYHt8fX5ALi1dKiQvZyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogdHJ1ZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXowLTkhIyQlJicqKy89P15fYHt8fX5ALi1dKiQvZztcbiAgICAgICAgfSBlbHNlIGlmICgnaW52b2ljZScgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16MC05Ly1dKiQvZyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16MC05Ly1dKiQvZztcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIFsnYWRkcmVzcy11bml0JywgJ2RlcGFydG1lbnQnLCAndmVoaWNsZS11bml0J10uaW5jbHVkZXMoaW5wdXROYW1lKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ2ZpcnN0IG5hbWUnID09PSBpbnB1dE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEteicsXFxzLi1dKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXonLFxccy4tXSokLztcbiAgICAgICAgfSBlbHNlIGlmICgnbGFzdCBuYW1lJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXonLFxccy4tXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16JyxcXHMuLV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ2JhbmsgbmFtZScgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16MC05ISMnJCYlKCkqKywuLzo7PTw+Py1eW10qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOSEjJyQmJSgpKissLi86Oz08Pj8tXltdKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgWyd2aW4tbnVtYmVyJywgJ2luc3VyYW5jZS1wb2xpY3knLCAnaWZ0YSddLmluY2x1ZGVzKGlucHV0TmFtZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTktXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16MC05LV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ3RydWNrLXRyYWlsZXItbW9kZWwnID09PSBpbnB1dE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOVxccy1dKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXowLTlcXHMtXSokLztcbiAgICAgICAgfSBlbHNlIGlmICgneWVhcicgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bMC05XSQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXlswLTldJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ2xpY2Vuc2UgcGxhdGUnID09PSBpbnB1dE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOVxcc10qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOVxcc10qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ2Rlc2NyaXB0aW9uJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTktLiwvXFxzXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16MC05LS4sL1xcc10qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ2RiYSBuYW1lJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTkhIyckJiUoKSorLC4vOjs9PD4/XlstXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16MC05ISMnJCYlKCkqKywuLzo7PTw+P15bLV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ3BlciBtaWxlJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXlswLTkuXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bMC05Ll0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ3BlciBzdG9wJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXlswLTldKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXlswLTldKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgWydlbWVyZ2VuY3kgbmFtZScsICdyZWxhdGlvbnNoaXAnLCAnc2NhYyddLmluY2x1ZGVzKGlucHV0TmFtZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXonLFxccy4tXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16JyxcXHMuLV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ2Z1ZWwgc3RvcmUnID09PSBpbnB1dE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOS1dKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXowLTktXSokLztcbiAgICAgICAgfSBlbHNlIGlmICgnaG9zJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXlswLTldKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXlswLTldKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKFsnZnVsbCBwYXJraW5nIHNsb3QnLCAncGFya2luZyBzbG90J10uaW5jbHVkZXMoaW5wdXROYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bMC05LC1dKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXlswLTksLV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ2NkbC1udW1iZXInID09PSBpbnB1dE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOVxccyotXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16MC05XFxzKi1dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgWyd1c2VybmFtZScsICduaWNrbmFtZScsICd0ZXJtaW5hbCBuYW1lJywgJ3Bhc3N3b3JkJ10uaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgaW5wdXROYW1lXG4gICAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16MC05LixfISNefls/LzxgQCQlKis9fXt8OlwiOz4mJygpLV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOS4sXyEjXn5bPy88YEAkJSorPX17fDpcIjs+JicoKS1dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdmdWxsIG5hbWUnID09PSBpbnB1dE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOS4sLyFAIyQlXiYqKClfKz17fVwiJzo+Pzw7XFxzLV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOS4sLyFAIyQlXiYqKClfKz17fVwiJzo+Pzw7XFxzLV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ3RvbGx2YWxpZGF0aW9uJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXlswLTktXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bMC05LV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoWydwcmVmaXgnLCAnc3VmZml4JywgJ3BhcmtpbmcgbmFtZSddLmluY2x1ZGVzKGlucHV0TmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ2ZpbGUgbmFtZScgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bOio/XCI8PnwvXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bOio/XCI8PnwvXSokLztcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIFsncHJvZHVjZXIgbmFtZScsICdpbnN1cmVyIG5hbWUnLCAnb2ZmaWNlIG5hbWUnXS5pbmNsdWRlcyhpbnB1dE5hbWUpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16MC05ISMnJCYlKCkqKywuLzs6PTw+P1teLV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOSEjJyQmJSgpKissLi87Oj08Pj9bXi1dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKFsnZnVsbCBjb250YWN0IG5hbWUnXS5pbmNsdWRlcyhpbnB1dE5hbWUpKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXpcXHNdKyQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXpcXHNdKyQvO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlZ2V4OiAvLiovLFxuICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIGlzRGVjaW1hbEFuZERvdE9ubHk6IGZhbHNlXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
328
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGF0dGVybi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQvcGlwZXMvaW5wdXQtcGF0dGVybi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU9wRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLFNBQVMsQ0FBQyxTQUFpQixFQUFFLFdBQXFCO1FBQzlDLElBQUksV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzdCLE9BQU87Z0JBQ0gsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLG1CQUFtQixFQUFFLElBQUk7Z0JBQ3pCLG1CQUFtQixFQUFFLElBQUk7YUFDNUIsQ0FBQztRQUNOLENBQUM7YUFBTSxJQUFJLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3ZDLE9BQU87Z0JBQ0gsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLG1CQUFtQixFQUFFLElBQUk7YUFDNUIsQ0FBQztRQUNOLENBQUM7YUFBTSxJQUNILENBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQ2pFLENBQUM7WUFDQyxPQUFPO2dCQUNILEtBQUssRUFBRSx1REFBdUQ7Z0JBQzlELHlCQUF5QixFQUFFLEtBQUs7Z0JBQ2hDLHVCQUF1QixFQUFFLEtBQUs7Z0JBQzlCLG1CQUFtQixFQUFFLEtBQUs7YUFDN0IsQ0FBQztRQUNOLENBQUM7YUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzlDLE9BQU87Z0JBQ0gsS0FBSyxFQUFFLGVBQWU7YUFDekIsQ0FBQztRQUNOLENBQUM7YUFBTSxJQUNIO1lBQ0ksS0FBSztZQUNMLE9BQU87WUFDUCxpQkFBaUI7WUFDakIsY0FBYztZQUNkLGNBQWM7WUFDZCxLQUFLO1lBQ0wsV0FBVztZQUNYLGNBQWM7WUFDZCxjQUFjO1lBQ2QsUUFBUTtZQUNSLE9BQU87WUFDUCxnQkFBZ0I7WUFDaEIsaUJBQWlCO1lBQ2pCLE9BQU87WUFDUCxLQUFLO1lBQ0wsVUFBVTtZQUNWLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGlCQUFpQjtZQUNqQixRQUFRO1lBQ1Isb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQixlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLHNCQUFzQjtZQUN0Qix1QkFBdUI7WUFDdkIsbUJBQW1CO1lBQ25CLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsZ0NBQWdDO1lBQ2hDLE1BQU07WUFDTixRQUFRO1lBQ1IsU0FBUztZQUNULFFBQVE7WUFDUixjQUFjO1lBQ2QsS0FBSztZQUNMLGdCQUFnQjtTQUNuQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFDdkIsQ0FBQztZQUNDLE9BQU87Z0JBQ0gsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLHlCQUF5QixFQUFFLEtBQUs7Z0JBQ2hDLHVCQUF1QixFQUFFLEtBQUs7Z0JBQzlCLG1CQUFtQixFQUFFLEtBQUs7YUFDN0IsQ0FBQztZQUNGLHFCQUFxQjtRQUN6QixDQUFDO2FBQU0sSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDL0IsT0FBTztnQkFDSCxLQUFLLEVBQUUsc0NBQXNDO2dCQUM3Qyx5QkFBeUIsRUFBRSxLQUFLO2dCQUNoQyx1QkFBdUIsRUFBRSxJQUFJO2dCQUM3QixtQkFBbUIsRUFBRSxLQUFLO2FBQzdCLENBQUM7WUFDRixnREFBZ0Q7UUFDcEQsQ0FBQzthQUFNLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLE9BQU87Z0JBQ0gsS0FBSyxFQUFFLG1CQUFtQjtnQkFDMUIseUJBQXlCLEVBQUUsS0FBSztnQkFDaEMsdUJBQXVCLEVBQUUsS0FBSztnQkFDOUIsbUJBQW1CLEVBQUUsS0FBSzthQUM3QixDQUFDO1lBQ0YsNkJBQTZCO1FBQ2pDLENBQUM7YUFBTSxJQUNILENBQUMsY0FBYyxFQUFFLFlBQVksRUFBRSxjQUFjLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQ3BFLENBQUM7WUFDQyxPQUFPO2dCQUNILEtBQUssRUFBRSxnQkFBZ0I7Z0JBQ3ZCLHlCQUF5QixFQUFFLEtBQUs7Z0JBQ2hDLHVCQUF1QixFQUFFLEtBQUs7Z0JBQzlCLG1CQUFtQixFQUFFLEtBQUs7YUFDN0IsQ0FBQztZQUNGLDBCQUEwQjtRQUM5QixDQUFDO2FBQU0sSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDcEMsT0FBTztnQkFDSCxLQUFLLEVBQUUsbUJBQW1CO2dCQUMxQix5QkFBeUIsRUFBRSxLQUFLO2dCQUNoQyx1QkFBdUIsRUFBRSxLQUFLO2dCQUM5QixtQkFBbUIsRUFBRSxLQUFLO2FBQzdCLENBQUM7WUFDRiw2QkFBNkI7UUFDakMsQ0FBQzthQUFNLElBQUksV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ25DLE9BQU87Z0JBQ0gsS0FBSyxFQUFFLG1CQUFtQjtnQkFDMUIseUJBQXlCLEVBQUUsS0FBSztnQkFDaEMsdUJBQXVCLEVBQUUsS0FBSztnQkFDOUIsbUJBQW1CLEVBQUUsS0FBSzthQUM3QixDQUFDO1lBQ0YsNkJBQTZCO1FBQ2pDLENBQUM7YUFBTSxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNuQyxPQUFPO2dCQUNILEtBQUssRUFBRSxzQ0FBc0M7Z0JBQzdDLHlCQUF5QixFQUFFLEtBQUs7Z0JBQ2hDLHVCQUF1QixFQUFFLEtBQUs7Z0JBQzlCLG1CQUFtQixFQUFFLEtBQUs7YUFDN0IsQ0FBQztZQUNGLGdEQUFnRDtRQUNwRCxDQUFDO2FBQU0sSUFDSCxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQ2hFLENBQUM7WUFDQyxPQUFPO2dCQUNILEtBQUssRUFBRSxpQkFBaUI7Z0JBQ3hCLHlCQUF5QixFQUFFLEtBQUs7Z0JBQ2hDLHVCQUF1QixFQUFFLEtBQUs7Z0JBQzlCLG1CQUFtQixFQUFFLEtBQUs7YUFDN0IsQ0FBQztZQUNGLDJCQUEyQjtRQUMvQixDQUFDO2FBQU0sSUFBSSxxQkFBcUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM3QyxPQUFPO2dCQUNILEtBQUssRUFBRSxtQkFBbUI7Z0JBQzFCLHlCQUF5QixFQUFFLEtBQUs7Z0JBQ2hDLHVCQUF1QixFQUFFLEtBQUs7Z0JBQzlCLG1CQUFtQixFQUFFLEtBQUs7YUFDN0IsQ0FBQztZQUNGLDZCQUE2QjtRQUNqQyxDQUFDO2FBQU0sSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUIsT0FBTztnQkFDSCxLQUFLLEVBQUUsaUJBQWlCO2FBQzNCLENBQUM7WUFDRixtQkFBbUI7UUFDdkIsQ0FBQzthQUFNLElBQUksZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU87Z0JBQ0gsS0FBSyxFQUFFLGtCQUFrQjtnQkFDekIseUJBQXlCLEVBQUUsS0FBSztnQkFDaEMsdUJBQXVCLEVBQUUsS0FBSztnQkFDOUIsbUJBQW1CLEVBQUUsS0FBSzthQUM3QixDQUFDO1lBQ0YsNEJBQTRCO1FBQ2hDLENBQUM7YUFBTSxJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyQyxPQUFPO2dCQUNILEtBQUssRUFBRSxzQkFBc0I7Z0JBQzdCLHlCQUF5QixFQUFFLEtBQUs7Z0JBQ2hDLHVCQUF1QixFQUFFLEtBQUs7Z0JBQzlCLG1CQUFtQixFQUFFLEtBQUs7YUFDN0IsQ0FBQztZQUNGLGdDQUFnQztRQUNwQyxDQUFDO2FBQU0sSUFBSSxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbEMsT0FBTztnQkFDSCxLQUFLLEVBQUUsc0NBQXNDO2dCQUM3Qyx5QkFBeUIsRUFBRSxLQUFLO2dCQUNoQyx1QkFBdUIsRUFBRSxLQUFLO2dCQUM5QixtQkFBbUIsRUFBRSxLQUFLO2FBQzdCLENBQUM7WUFDRixnREFBZ0Q7UUFDcEQsQ0FBQzthQUFNLElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2xDLE9BQU87Z0JBQ0gsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLHlCQUF5QixFQUFFLEtBQUs7Z0JBQ2hDLHVCQUF1QixFQUFFLEtBQUs7Z0JBQzlCLG1CQUFtQixFQUFFLEtBQUs7YUFDN0IsQ0FBQztZQUNGLHFCQUFxQjtRQUN6QixDQUFDO2FBQU0sSUFBSSxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbEMsT0FBTztnQkFDSCxLQUFLLEVBQUUsVUFBVTtnQkFDakIseUJBQXlCLEVBQUUsS0FBSztnQkFDaEMsdUJBQXVCLEVBQUUsS0FBSztnQkFDOUIsbUJBQW1CLEVBQUUsS0FBSzthQUM3QixDQUFDO1lBQ0Ysb0JBQW9CO1FBQ3hCLENBQUM7YUFBTSxJQUNILENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFDaEUsQ0FBQztZQUNDLE9BQU87Z0JBQ0gsS0FBSyxFQUFFLG1CQUFtQjtnQkFDMUIseUJBQXlCLEVBQUUsS0FBSztnQkFDaEMsdUJBQXVCLEVBQUUsS0FBSztnQkFDOUIsbUJBQW1CLEVBQUUsS0FBSzthQUM3QixDQUFDO1lBQ0YsNkJBQTZCO1FBQ2pDLENBQUM7YUFBTSxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNwQyxPQUFPO2dCQUNILEtBQUssRUFBRSxpQkFBaUI7Z0JBQ3hCLHlCQUF5QixFQUFFLEtBQUs7Z0JBQ2hDLHVCQUF1QixFQUFFLEtBQUs7Z0JBQzlCLG1CQUFtQixFQUFFLEtBQUs7YUFDN0IsQ0FBQztZQUNGLDJCQUEyQjtRQUMvQixDQUFDO2FBQU0sSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDN0IsT0FBTztnQkFDSCxLQUFLLEVBQUUsVUFBVTtnQkFDakIseUJBQXlCLEVBQUUsS0FBSztnQkFDaEMsdUJBQXVCLEVBQUUsS0FBSztnQkFDOUIsbUJBQW1CLEVBQUUsS0FBSzthQUM3QixDQUFDO1lBQ0Ysb0JBQW9CO1FBQ3hCLENBQUM7YUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsY0FBYyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDbkUsT0FBTztnQkFDSCxLQUFLLEVBQUUsWUFBWTtnQkFDbkIseUJBQXlCLEVBQUUsS0FBSztnQkFDaEMsdUJBQXVCLEVBQUUsS0FBSztnQkFDOUIsbUJBQW1CLEVBQUUsS0FBSzthQUM3QixDQUFDO1lBQ0Ysc0JBQXNCO1FBQzFCLENBQUM7YUFBTSxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNwQyxPQUFPO2dCQUNILEtBQUssRUFBRSxvQkFBb0I7Z0JBQzNCLHlCQUF5QixFQUFFLEtBQUs7Z0JBQ2hDLHVCQUF1QixFQUFFLEtBQUs7Z0JBQzlCLG1CQUFtQixFQUFFLEtBQUs7YUFDN0IsQ0FBQztZQUNGLDhCQUE4QjtRQUNsQyxDQUFDO2FBQU0sSUFDSCxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FDMUQsU0FBUyxDQUNaLEVBQ0gsQ0FBQztZQUNDLE9BQU87Z0JBQ0gsS0FBSyxFQUFFLDhDQUE4QztnQkFDckQseUJBQXlCLEVBQUUsS0FBSztnQkFDaEMsdUJBQXVCLEVBQUUsS0FBSztnQkFDOUIsbUJBQW1CLEVBQUUsS0FBSzthQUM3QixDQUFDO1lBQ0Ysd0RBQXdEO1FBQzVELENBQUM7YUFBTSxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNuQyxPQUFPO2dCQUNILEtBQUssRUFBRSw0Q0FBNEM7Z0JBQ25ELHlCQUF5QixFQUFFLEtBQUs7Z0JBQ2hDLHVCQUF1QixFQUFFLEtBQUs7Z0JBQzlCLG1CQUFtQixFQUFFLEtBQUs7YUFDN0IsQ0FBQztZQUNGLHNEQUFzRDtRQUMxRCxDQUFDO2FBQU0sSUFBSSxnQkFBZ0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QyxPQUFPO2dCQUNILEtBQUssRUFBRSxXQUFXO2dCQUNsQix5QkFBeUIsRUFBRSxLQUFLO2dCQUNoQyx1QkFBdUIsRUFBRSxLQUFLO2dCQUM5QixtQkFBbUIsRUFBRSxLQUFLO2FBQzdCLENBQUM7WUFDRixxQkFBcUI7UUFDekIsQ0FBQzthQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ2xFLE9BQU87Z0JBQ0gsS0FBSyxFQUFFLGdCQUFnQjtnQkFDdkIseUJBQXlCLEVBQUUsS0FBSztnQkFDaEMsdUJBQXVCLEVBQUUsS0FBSztnQkFDOUIsbUJBQW1CLEVBQUUsS0FBSzthQUM3QixDQUFDO1lBQ0YsMEJBQTBCO1FBQzlCLENBQUM7YUFBTSxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNuQyxPQUFPO2dCQUNILEtBQUssRUFBRSxlQUFlO2dCQUN0Qix5QkFBeUIsRUFBRSxLQUFLO2dCQUNoQyx1QkFBdUIsRUFBRSxLQUFLO2dCQUM5QixtQkFBbUIsRUFBRSxLQUFLO2FBQzdCLENBQUM7WUFDRix5QkFBeUI7UUFDN0IsQ0FBQzthQUFNLElBQ0gsQ0FBQyxlQUFlLEVBQUUsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFDdEUsQ0FBQztZQUNDLE9BQU87Z0JBQ0gsS0FBSyxFQUFFLHNDQUFzQztnQkFDN0MseUJBQXlCLEVBQUUsS0FBSztnQkFDaEMsdUJBQXVCLEVBQUUsS0FBSztnQkFDOUIsbUJBQW1CLEVBQUUsS0FBSzthQUM3QixDQUFDO1lBQ0YsZ0RBQWdEO1FBQ3BELENBQUM7YUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNuRCxPQUFPO2dCQUNILEtBQUssRUFBRSxlQUFlO2dCQUN0Qix5QkFBeUIsRUFBRSxLQUFLO2dCQUNoQyx1QkFBdUIsRUFBRSxLQUFLO2dCQUM5QixtQkFBbUIsRUFBRSxLQUFLO2FBQzdCLENBQUM7WUFDRix5QkFBeUI7UUFDN0IsQ0FBQztRQUVELE9BQU87WUFDSCxLQUFLLEVBQUUsSUFBSTtZQUNYLHlCQUF5QixFQUFFLEtBQUs7WUFDaEMsdUJBQXVCLEVBQUUsS0FBSztZQUM5QixtQkFBbUIsRUFBRSxLQUFLO1lBQzFCLG1CQUFtQixFQUFFLEtBQUs7U0FDN0IsQ0FBQztJQUNOLENBQUM7K0dBN1NRLGdCQUFnQjs2R0FBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUo1QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxjQUFjO29CQUNwQixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJQ2FJbnB1dCB9IGZyb20gJy4uL2NvbmZpZyc7XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnaW5wdXRQYXR0ZXJuJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dFBhdHRlcm5QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKGlucHV0TmFtZTogc3RyaW5nLCBpbnB1dENvbmZpZzogSUNhSW5wdXQpIHtcbiAgICAgICAgaWYgKGlucHV0Q29uZmlnLnByaWNlU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXlswLTkuXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiB0cnVlLFxuICAgICAgICAgICAgICAgIGlzRGVjaW1hbEFuZERvdE9ubHk6IHRydWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKGlucHV0Q29uZmlnLnRob3VzYW5kU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXlswLTldKiQvLFxuICAgICAgICAgICAgICAgIGlzRGVjaW1hbEFuZERvdE9ubHk6IHRydWVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBbJ2J1c2luZXNzIG5hbWUnLCAnc2hvcCBuYW1lJywgJ2Z1ZWwgc3RvcCddLmluY2x1ZGVzKGlucHV0TmFtZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTkhIyckJiUoKSorLC4vWzo7PTw+P8Onw6nDosOqw67DtMO7w6DDqMOsw7LDucOrw6/DvFxccy1dKiQvZyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKFsncGhvbmUnLCAnZmF4J10uaW5jbHVkZXMoaW5wdXROYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bMC05KCkgLV0qJC9nLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAnZWluJyxcbiAgICAgICAgICAgICAgICAnbWMvZmYnLFxuICAgICAgICAgICAgICAgICdwaG9uZS1leHRlbnNpb24nLFxuICAgICAgICAgICAgICAgICdhY2NvdW50LWJhbmsnLFxuICAgICAgICAgICAgICAgICdyb3V0aW5nLWJhbmsnLFxuICAgICAgICAgICAgICAgICdzc24nLFxuICAgICAgICAgICAgICAgICdmdWVsLWNhcmQnLFxuICAgICAgICAgICAgICAgICdlbXB0eS13ZWlnaHQnLFxuICAgICAgICAgICAgICAgICdjcmVkaXQgbGltaXQnLFxuICAgICAgICAgICAgICAgICdwbyBib3gnLFxuICAgICAgICAgICAgICAgICdwcmljZScsXG4gICAgICAgICAgICAgICAgJ3RyYWlsZXItdm9sdW1lJyxcbiAgICAgICAgICAgICAgICAncmVwYWlyLW9kb21ldGVyJyxcbiAgICAgICAgICAgICAgICAndXNkb3QnLFxuICAgICAgICAgICAgICAgICdpcnAnLFxuICAgICAgICAgICAgICAgICdzdGFydGluZycsXG4gICAgICAgICAgICAgICAgJ2N1c3RvbWVyIHBheSB0ZXJtJyxcbiAgICAgICAgICAgICAgICAnY3VzdG9tZXIgY3JlZGl0JyxcbiAgICAgICAgICAgICAgICAnZGVmYXVsdCBiYXNlJyxcbiAgICAgICAgICAgICAgICAnZWFjaCBvY2N1cnJlbmNlJyxcbiAgICAgICAgICAgICAgICAnZGFtYWdlJyxcbiAgICAgICAgICAgICAgICAncGVyc29uYWwtYWR2ZXItaW5qJyxcbiAgICAgICAgICAgICAgICAnbWVkaWNhbCBleHBlbnNlcycsXG4gICAgICAgICAgICAgICAgJ2JvZGlseSBpbmp1cnknLFxuICAgICAgICAgICAgICAgICdnZW5lcmFsIGFnZ3JlZ2F0ZScsXG4gICAgICAgICAgICAgICAgJ3Byb2R1Y3RzLWNvbXAtb3AtYWdnJyxcbiAgICAgICAgICAgICAgICAnY29tYmluZWQtc2luZ2xlLWxpbWl0JyxcbiAgICAgICAgICAgICAgICAnc2luZ2xlLWNvbnZleWFuY2UnLFxuICAgICAgICAgICAgICAgICdkZWR1Y3RhYmxlJyxcbiAgICAgICAgICAgICAgICAnY29tcHJlaC1jb2xsaXNpb24nLFxuICAgICAgICAgICAgICAgICd0cmFpbGVyLXZhbHVlLWluc3VyYW5jZS1wb2xpY3knLFxuICAgICAgICAgICAgICAgICdyZW50JyxcbiAgICAgICAgICAgICAgICAnc2FsYXJ5JyxcbiAgICAgICAgICAgICAgICAnbWlsZWFnZScsXG4gICAgICAgICAgICAgICAgJ21vbnRocycsXG4gICAgICAgICAgICAgICAgJ2VtcHR5IHdlaWdodCcsXG4gICAgICAgICAgICAgICAgJ3F0eScsXG4gICAgICAgICAgICAgICAgJ3B1cmNoYXNlIHByaWNlJyxcbiAgICAgICAgICAgIF0uaW5jbHVkZXMoaW5wdXROYW1lKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eWzAtOV0qJC9nLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXlswLTldKiQvZztcbiAgICAgICAgfSBlbHNlIGlmICgnZW1haWwnID09PSBpbnB1dE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOSEjJCUmJyorLz0/Xl9ge3x9fkAuLV0qJC9nLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiB0cnVlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOSEjJCUmJyorLz0/Xl9ge3x9fkAuLV0qJC9nO1xuICAgICAgICB9IGVsc2UgaWYgKCdpbnZvaWNlJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTkvLV0qJC9nLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXowLTkvLV0qJC9nO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgWydhZGRyZXNzLXVuaXQnLCAnZGVwYXJ0bWVudCcsICd2ZWhpY2xlLXVuaXQnXS5pbmNsdWRlcyhpbnB1dE5hbWUpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16MC05XSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16MC05XSokLztcbiAgICAgICAgfSBlbHNlIGlmICgnZmlyc3QgbmFtZScgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16JyxcXHMuLV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEteicsXFxzLi1dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdsYXN0IG5hbWUnID09PSBpbnB1dE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEteicsXFxzLi1dKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXonLFxccy4tXSokLztcbiAgICAgICAgfSBlbHNlIGlmICgnYmFuayBuYW1lJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTkhIyckJiUoKSorLC4vOjs9PD4/LV5bXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16MC05ISMnJCYlKCkqKywuLzo7PTw+Py1eW10qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBbJ3Zpbi1udW1iZXInLCAnaW5zdXJhbmNlLXBvbGljeScsICdpZnRhJ10uaW5jbHVkZXMoaW5wdXROYW1lKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOS1dKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXowLTktXSokLztcbiAgICAgICAgfSBlbHNlIGlmICgndHJ1Y2stdHJhaWxlci1tb2RlbCcgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16MC05XFxzLV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOVxccy1dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCd5ZWFyJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXih8MHxbMS05XVxcZCopJC8sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bMC05XSQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdsaWNlbnNlIHBsYXRlJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTlcXHNdKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXowLTlcXHNdKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdkZXNjcmlwdGlvbicgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16MC05LS4sL1xcc10qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOS0uLC9cXHNdKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdkYmEgbmFtZScgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16MC05ISMnJCYlKCkqKywuLzo7PTw+P15bLV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOSEjJyQmJSgpKissLi86Oz08Pj9eWy1dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdwZXIgbWlsZScgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bMC05Ll0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eWzAtOS5dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdwZXIgc3RvcCcgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bMC05XSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bMC05XSokLztcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIFsnZW1lcmdlbmN5IG5hbWUnLCAncmVsYXRpb25zaGlwJywgJ3NjYWMnXS5pbmNsdWRlcyhpbnB1dE5hbWUpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16JyxcXHMuLV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEteicsXFxzLi1dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdmdWVsIHN0b3JlJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTktXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16MC05LV0qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoJ2hvcycgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bMC05XSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bMC05XSokLztcbiAgICAgICAgfSBlbHNlIGlmIChbJ2Z1bGwgcGFya2luZyBzbG90JywgJ3Bhcmtpbmcgc2xvdCddLmluY2x1ZGVzKGlucHV0TmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eWzAtOSwtXSokLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bMC05LC1dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdjZGwtbnVtYmVyJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTlcXHMqLV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eW0EtWmEtejAtOVxccyotXSokLztcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIFsndXNlcm5hbWUnLCAnbmlja25hbWUnLCAndGVybWluYWwgbmFtZScsICdwYXNzd29yZCddLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgIGlucHV0TmFtZVxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOS4sXyEjXn5bPy88YEAkJSorPX17fDpcIjs+JicoKS1dKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXowLTkuLF8hI15+Wz8vPGBAJCUqKz19e3w6XCI7PiYnKCktXSokLztcbiAgICAgICAgfSBlbHNlIGlmICgnZnVsbCBuYW1lJyA9PT0gaW5wdXROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTkuLC8hQCMkJV4mKigpXys9e31cIic6Pj88O1xccy1dKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXowLTkuLC8hQCMkJV4mKigpXys9e31cIic6Pj88O1xccy1dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCd0b2xsdmFsaWRhdGlvbicgPT09IGlucHV0TmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bMC05LV0qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eWzAtOS1dKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKFsncHJlZml4JywgJ3N1ZmZpeCcsICdwYXJraW5nIG5hbWUnXS5pbmNsdWRlcyhpbnB1dE5hbWUpKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZ2V4OiAvXltBLVphLXowLTldKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXowLTldKiQvO1xuICAgICAgICB9IGVsc2UgaWYgKCdmaWxlIG5hbWUnID09PSBpbnB1dE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eWzoqP1wiPD58L10qJC8sXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZVNwYWNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJuIC9eWzoqP1wiPD58L10qJC87XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBbJ3Byb2R1Y2VyIG5hbWUnLCAnaW5zdXJlciBuYW1lJywgJ29mZmljZSBuYW1lJ10uaW5jbHVkZXMoaW5wdXROYW1lKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVnZXg6IC9eW0EtWmEtejAtOSEjJyQmJSgpKissLi87Oj08Pj9bXi1dKiQvLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdE11bHRpcGVEb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybiAvXltBLVphLXowLTkhIyckJiUoKSorLC4vOzo9PD4/W14tXSokLztcbiAgICAgICAgfSBlbHNlIGlmIChbJ2Z1bGwgY29udGFjdCBuYW1lJ10uaW5jbHVkZXMoaW5wdXROYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWdleDogL15bQS1aYS16XFxzXSskLyxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy9yZXR1cm4gL15bQS1aYS16XFxzXSskLztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByZWdleDogLy4qLyxcbiAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXM6IGZhbHNlLFxuICAgICAgICAgICAgcmVzdHJpY3RDb25zZWN1dGl2ZURvdHM6IGZhbHNlLFxuICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90czogZmFsc2UsXG4gICAgICAgICAgICBpc0RlY2ltYWxBbmREb3RPbmx5OiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=