tnp-core 18.0.11 → 18.0.16
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/README.md +20 -20
- package/assets/shared/shared_folder_info.txt +1 -1
- package/browser/README.md +24 -24
- package/browser/esm2022/lib/core-models.mjs +9 -1
- package/browser/esm2022/lib/utils.mjs +8 -1
- package/browser/fesm2022/tnp-core.mjs +15 -0
- package/browser/fesm2022/tnp-core.mjs.map +1 -1
- package/browser/lib/core-models.d.ts +32 -1
- package/browser/lib/utils.d.ts +5 -0
- package/browser/package.json +25 -0
- package/cli.backend.js +2 -2
- package/client/README.md +24 -24
- package/client/esm2022/lib/core-models.mjs +9 -1
- package/client/esm2022/lib/utils.mjs +8 -1
- package/client/fesm2022/tnp-core.mjs +15 -0
- package/client/fesm2022/tnp-core.mjs.map +1 -1
- package/client/lib/core-models.d.ts +32 -1
- package/client/lib/utils.d.ts +5 -0
- package/firedev.jsonc +64 -64
- package/lib/core-models.d.ts +32 -1
- package/lib/core-models.js +8 -0
- package/lib/core-models.js.map +1 -1
- package/lib/node-chalk-mock.js +2 -2
- package/lib/node-path-mock.js +2 -2
- package/lib/utils.d.ts +5 -0
- package/lib/utils.js +12 -0
- package/lib/utils.js.map +1 -1
- package/package.json +3 -3
- package/tmp-environment.json +10 -10
- package/websql/README.md +24 -24
- package/websql/esm2022/lib/core-models.mjs +9 -1
- package/websql/esm2022/lib/utils.mjs +8 -1
- package/websql/fesm2022/tnp-core.mjs +15 -0
- package/websql/fesm2022/tnp-core.mjs.map +1 -1
- package/websql/lib/core-models.d.ts +32 -1
- package/websql/lib/utils.d.ts +5 -0
- package/websql/package.json +25 -0
package/README.md
CHANGED
@@ -1,20 +1,20 @@
|
|
1
|
-
# firedev-core ( tnp-core )
|
2
|
-
|
3
|
-
- Part of [firedev.io](https://github.com/darekf77/firedev)
|
4
|
-
- JavasScript/Typescript most essential helpers
|
5
|
-
- Basic firedev releated helpers
|
6
|
-
- Purpose:
|
7
|
-
+ lightweight most essential helpers library
|
8
|
-
+ crossplatform helpers for NodeJs/Browser
|
9
|
-
|
10
|
-
|
11
|
-
## Usage
|
12
|
-
- in firedev isomorphic libs/apps or any NodeJS apps/libs:
|
13
|
-
```ts
|
14
|
-
import { Helpers } from 'tnp-core';
|
15
|
-
```
|
16
|
-
|
17
|
-
- in any frontend browser apps (except firedev lib/apps)
|
18
|
-
```ts
|
19
|
-
import { Helpers } from 'tnp-core/browser';
|
20
|
-
```
|
1
|
+
# firedev-core ( tnp-core )
|
2
|
+
|
3
|
+
- Part of [firedev.io](https://github.com/darekf77/firedev)
|
4
|
+
- JavasScript/Typescript most essential helpers
|
5
|
+
- Basic firedev releated helpers
|
6
|
+
- Purpose:
|
7
|
+
+ lightweight most essential helpers library
|
8
|
+
+ crossplatform helpers for NodeJs/Browser
|
9
|
+
|
10
|
+
|
11
|
+
## Usage
|
12
|
+
- in firedev isomorphic libs/apps or any NodeJS apps/libs:
|
13
|
+
```ts
|
14
|
+
import { Helpers } from 'tnp-core';
|
15
|
+
```
|
16
|
+
|
17
|
+
- in any frontend browser apps (except firedev lib/apps)
|
18
|
+
```ts
|
19
|
+
import { Helpers } from 'tnp-core/browser';
|
20
|
+
```
|
@@ -1,6 +1,6 @@
|
|
1
1
|
THIS FILE IS GENERATED. THIS FILE IS GENERATED. THIS FILE IS GENERATED.
|
2
2
|
|
3
|
-
Assets from this folder are being shipped with this npm package (tnp-core@18.0.
|
3
|
+
Assets from this folder are being shipped with this npm package (tnp-core@18.0.16)
|
4
4
|
created from this project.
|
5
5
|
|
6
6
|
THIS FILE IS GENERATED.THIS FILE IS GENERATED. THIS FILE IS GENERATED.
|
package/browser/README.md
CHANGED
@@ -1,24 +1,24 @@
|
|
1
|
-
# MyLib
|
2
|
-
|
3
|
-
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
|
4
|
-
|
5
|
-
## Code scaffolding
|
6
|
-
|
7
|
-
Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
|
8
|
-
> Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
|
9
|
-
|
10
|
-
## Build
|
11
|
-
|
12
|
-
Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
|
13
|
-
|
14
|
-
## Publishing
|
15
|
-
|
16
|
-
After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
|
17
|
-
|
18
|
-
## Running unit tests
|
19
|
-
|
20
|
-
Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
21
|
-
|
22
|
-
## Further help
|
23
|
-
|
24
|
-
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
1
|
+
# MyLib
|
2
|
+
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
|
4
|
+
|
5
|
+
## Code scaffolding
|
6
|
+
|
7
|
+
Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
|
8
|
+
> Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
|
9
|
+
|
10
|
+
## Build
|
11
|
+
|
12
|
+
Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
|
13
|
+
|
14
|
+
## Publishing
|
15
|
+
|
16
|
+
After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
|
17
|
+
|
18
|
+
## Running unit tests
|
19
|
+
|
20
|
+
Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
21
|
+
|
22
|
+
## Further help
|
23
|
+
|
24
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
@@ -7,6 +7,14 @@ export var CoreModels;
|
|
7
7
|
'peerDependencies',
|
8
8
|
'resolutions',
|
9
9
|
];
|
10
|
+
CoreModels.NpmSpecialVersions = [
|
11
|
+
'latest',
|
12
|
+
'next',
|
13
|
+
'beta',
|
14
|
+
'alpha',
|
15
|
+
'rc',
|
16
|
+
'lts',
|
17
|
+
];
|
10
18
|
CoreModels.BaseProjectTypeArr = [
|
11
19
|
'typescript',
|
12
20
|
'angular',
|
@@ -107,4 +115,4 @@ export var CoreModels;
|
|
107
115
|
})(CoreModels || (CoreModels = {}));
|
108
116
|
;
|
109
117
|
({}); // @--end-of-file-for-module=tnp-core lib/core-models.ts
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtY29yZS9wcm9qZWN0cy90bnAtY29yZS9zcmMvbGliL2NvcmUtbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sS0FBVyxVQUFVLENBd2dCMUI7QUF4Z0JELFdBQWlCLFVBQVU7SUEwQlosNkJBQWtCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBVXBELHNDQUEyQixHQUFHO1FBQ3pDLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLGFBQWE7S0FDZ0IsQ0FBQztJQXFIbkIsNkJBQWtCLEdBQUc7UUFDaEMsWUFBWTtRQUNaLFNBQVM7UUFDVCxhQUFhO1FBQ2IsUUFBUTtRQUNSLG9CQUFvQjtLQUNyQixDQUFDO0lBa0lXLG9CQUFTLEdBQUc7UUFDdkIsTUFBTSxFQUFFLFdBQVc7UUFDbkIsTUFBTSxFQUFFLHVCQUF1QjtRQUMvQixNQUFNLEVBQUUsdUJBQXVCO1FBQy9CLE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsTUFBTSxFQUFFLDhCQUE4QjtRQUN0QyxNQUFNLEVBQUUsMEJBQTBCO1FBQ2xDLE1BQU0sRUFBRSxXQUFXO1FBQ25CLEtBQUssRUFBRSxvQkFBb0I7UUFDM0IsTUFBTSxFQUFFLHFCQUFxQjtRQUM3QixNQUFNLEVBQUUsbUJBQW1CO1FBQzNCLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLE1BQU0sRUFBRSxvQkFBb0I7UUFDNUIsT0FBTyxFQUNMLHlFQUF5RTtRQUMzRSxNQUFNLEVBQUUsK0JBQStCO1FBQ3ZDLE9BQU8sRUFBRSxzQkFBc0I7UUFDL0IsS0FBSyxFQUFFLGtCQUFrQjtRQUN6QixNQUFNLEVBQUUsV0FBVztRQUNuQixNQUFNLEVBQUUsV0FBVztRQUNuQixPQUFPLEVBQUUsV0FBVztRQUNwQixNQUFNLEVBQUUsMEJBQTBCO1FBQ2xDLE1BQU0sRUFBRSxlQUFlO1FBQ3ZCLE1BQU0sRUFBRSwwQkFBMEI7UUFDbEMsT0FBTyxFQUFFLFlBQVk7UUFDckIsTUFBTSxFQUFFLFlBQVk7UUFDcEIsS0FBSyxFQUFFLGlCQUFpQjtRQUN4QixPQUFPLEVBQUUsa0JBQWtCO1FBQzNCLFNBQVMsRUFBRSxxQkFBcUI7UUFDaEMsTUFBTSxFQUFFLGtCQUFrQjtRQUMxQixPQUFPLEVBQUUsa0JBQWtCO1FBQzNCLE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsTUFBTSxFQUFFLFlBQVk7UUFDcEIsTUFBTSxFQUFFLFdBQVc7UUFDbkIsT0FBTyxFQUFFLFlBQVk7UUFDckIsT0FBTyxFQUFFLHFDQUFxQztRQUM5QyxNQUFNLEVBQUUsaURBQWlEO1FBQ3pELE1BQU0sRUFBRSxnREFBZ0Q7UUFDeEQsTUFBTSxFQUFFLHlDQUF5QztRQUNqRCxNQUFNLEVBQUUsV0FBVztRQUNuQixNQUFNLEVBQUUsV0FBVztRQUNuQixNQUFNLEVBQUUsV0FBVztRQUNuQixNQUFNLEVBQUUsaUJBQWlCO1FBQ3pCLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLE1BQU0sRUFBRSxXQUFXO1FBQ25CLE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsTUFBTSxFQUFFLGlCQUFpQjtRQUN6QixNQUFNLEVBQUUsK0JBQStCO1FBQ3ZDLE9BQU8sRUFDTCwyRUFBMkU7UUFDN0UsTUFBTSxFQUFFLHFCQUFxQjtRQUM3QixNQUFNLEVBQUUsaUJBQWlCO1FBQ3pCLEtBQUssRUFBRSxrQkFBa0I7UUFDekIsTUFBTSxFQUFFLGVBQWU7UUFDdkIsTUFBTSxFQUFFLCtCQUErQjtRQUN2QyxNQUFNLEVBQUUsbUJBQW1CO1FBQzNCLE1BQU0sRUFBRSxZQUFZO1FBQ3BCLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLEtBQUssRUFBRSxZQUFZO1FBQ25CLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLE1BQU0sRUFBRSxZQUFZO1FBQ3BCLE1BQU0sRUFBRSx1QkFBdUI7UUFDL0IsTUFBTSxFQUFFLFdBQVc7UUFDbkIsT0FBTyxFQUFFLFlBQVk7UUFDckIsT0FBTyxFQUFFLFlBQVk7UUFDckIsT0FBTyxFQUFFLFlBQVk7UUFDckIsT0FBTyxFQUFFLFdBQVc7UUFDcEIsUUFBUSxFQUFFLFlBQVk7UUFDdEIsUUFBUSxFQUFFLHVCQUF1QjtRQUNqQyxNQUFNLEVBQUUsMEJBQTBCO1FBQ2xDLE9BQU8sRUFDTCxtRUFBbUU7UUFDckUsTUFBTSxFQUFFLGlCQUFpQjtRQUN6QixNQUFNLEVBQUUsaUNBQWlDO1FBQ3pDLE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsTUFBTSxFQUFFLFlBQVk7UUFDcEIsTUFBTSxFQUFFLGFBQWE7UUFDckIsS0FBSyxFQUFFLDZCQUE2QjtLQUM1QixDQUFDO0lBc0JFLDBCQUFlLEdBQUc7UUFDN0IsTUFBTTtRQUNOLE9BQU87UUFDUCxPQUFPO1FBQ1AsT0FBTztRQUNQLE1BQU07UUFDTixhQUFhO1FBQ2IsV0FBVztRQUNYLFNBQVM7UUFDVCxPQUFPO0tBQ08sQ0FBQztJQUdKLHVCQUFZLEdBQUcsV0FBQSxTQUFTLENBQUM7QUErR3hDLENBQUMsRUF4Z0JnQixVQUFVLEtBQVYsVUFBVSxRQXdnQjFCO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyx3REFBd0QiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuZXhwb3J0IG5hbWVzcGFjZSBDb3JlTW9kZWxzIHtcblxuICBleHBvcnQgdHlwZSBQYWNrYWdlID0ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2ZXJzaW9uPzogc3RyaW5nO1xuICAgIGluc3RhbGxUeXBlPzogSW5zdGFsYXRpb25UeXBlO1xuICB9O1xuXG5cblxuICBleHBvcnQgdHlwZSBOcG1JbnN0YWxsT3B0aW9ucyA9IHtcbiAgICBwa2c/OiBDb3JlTW9kZWxzLlBhY2thZ2U7XG4gICAgc2lsZW50PzogYm9vbGVhbjtcbiAgICByZW1vdmU/OiBib29sZWFuO1xuICAgIHVzZVlhcm4/OiBib29sZWFuO1xuICAgIGZvcmNlPzogYm9vbGVhbjtcbiAgICByZWFzb24/OiBzdHJpbmc7XG4gICAgcmVtb3ZlWWFybk9yUGFja2FnZUpzb25Mb2NrPzogYm9vbGVhbjtcbiAgICBnZW5lcmF0ZVlhcm5PclBhY2thZ2VKc29uTG9jaz86IGJvb2xlYW47XG4gICAgaWdub3JlT3B0aW9uYWw/OiBib29sZWFuO1xuICB9O1xuXG5cblxuICBleHBvcnQgdHlwZSBJbnN0YWxhdGlvblR5cGUgPSAnLWcnIHwgJy0tc2F2ZScgfCAnLS1zYXZlLWRldic7XG5cbiAgZXhwb3J0IGNvbnN0IEluc3RhbGF0aW9uVHlwZUFyciA9IFsnLWcnLCAnLS1zYXZlJywgJy0tc2F2ZS1kZXYnXTtcblxuXG5cbiAgZXhwb3J0IHR5cGUgUGFja2FnZUpzb25EZXBlbmRlbmN5T2JqID1cbiAgICB8ICdkZXBlbmRlbmNpZXMnXG4gICAgfCAnZGV2RGVwZW5kZW5jaWVzJ1xuICAgIHwgJ3BlZXJEZXBlbmRlbmNpZXMnXG4gICAgfCAncmVzb2x1dGlvbnMnO1xuXG4gIGV4cG9ydCBjb25zdCBQYWNrYWdlSnNvbkRlcGVuZGVuY3lPYmpBcnIgPSBbXG4gICAgJ2RlcGVuZGVuY2llcycsXG4gICAgJ2RldkRlcGVuZGVuY2llcycsXG4gICAgJ3BlZXJEZXBlbmRlbmNpZXMnLFxuICAgICdyZXNvbHV0aW9ucycsXG4gIF0gYXMgUGFja2FnZUpzb25EZXBlbmRlbmN5T2JqW107XG5cblxuXG4gIGV4cG9ydCB0eXBlIExpYnJhcnlUeXBlID0gJ2FuZ3VsYXInIHwgJ3R5cGVzY3JpcHQnO1xuXG5cblxuICBleHBvcnQgdHlwZSBSZWxlYXNlVHlwZSA9ICdtYWpvcicgfCAnbWlub3InIHwgJ3BhdGNoJztcbiAgZXhwb3J0IHR5cGUgUHJlUmVsZWFzZVR5cGUgPSAnYWxwaGEnIHwgJ2JldGEnIHwgJ3JjJztcblxuXG5cbiAgZXhwb3J0IHR5cGUgUFJPR1JFU1NfREFUQV9UWVBFID0gJ2luZm8nIHwgJ2Vycm9yJyB8ICd3YXJuaW5nJyB8ICdldmVudCc7XG5cblxuXG4gIGV4cG9ydCB0eXBlIEVudmlyb25tZW50TmFtZSA9XG4gICAgfCAnbG9jYWwnXG4gICAgfCAnc3RhdGljJ1xuICAgIHwgJ2RldidcbiAgICB8ICdzdGFnZSdcbiAgICB8ICdwcm9kJ1xuICAgIHwgJ29ubGluZSdcbiAgICB8ICd0ZXN0J1xuICAgIHwgJ3FhJ1xuICAgIHwgJ2N1c3RvbSc7XG5cblxuXG4gIGV4cG9ydCB0eXBlIFBVU0hUWVBFID1cbiAgICB8ICdmZWF0J1xuICAgIHwgJ2Nob3JlJ1xuICAgIHwgJ2ZlYXR1cmUnXG4gICAgfCAncmVmYWN0b3InXG4gICAgfCAncGVyZidcbiAgICB8ICdzdHlsZXMnXG4gICAgfCAnY2knXG4gICAgfCAnYnVpbGQnXG4gICAgfCAnZml4J1xuICAgIHwgJ2J1Z2ZpeCdcbiAgICB8ICdyZWxlYXNlJ1xuICAgIHwgJ2RvY3MnO1xuXG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGV4cG9ydCB0eXBlIFVJRnJhbWV3b3JrID0gJ2Jvb3RzdHJhcCcgfCAnbWF0ZXJpYWwnIHwgJ2lvbmljJztcblxuXG5cbiAgZXhwb3J0IHR5cGUgRnJhbWV3b3JrVmVyc2lvbiA9XG4gICAgfCAndjEnXG4gICAgfCAndjInXG4gICAgfCAndjMnXG4gICAgfCAndjQnXG4gICAgfCAndjE2J1xuICAgIHwgJ3YxOCdcbiAgICB8ICd2MjAnO1xuXG5cblxuICBleHBvcnQgdHlwZSBDdXRhYmxlRmlsZUV4dCA9XG4gICAgfCAnc2NzcydcbiAgICB8ICdjc3MnXG4gICAgfCAnbGVzcydcbiAgICB8ICdzYXNzJ1xuICAgIHwgJ2h0bWwnXG4gICAgfCAndHMnXG4gICAgfCAndHN4J1xuICAgIHwgJ2pzJztcblxuXG5cbiAgZXhwb3J0IHR5cGUgSW1hZ2VGaWxlRXh0ZW5zaW9uID0gJ2pwZycgfCAnanBlZycgfCAncG5nJyB8ICdzdmcnO1xuXG5cblxuICBleHBvcnQgdHlwZSBGaWxlRXh0ZW5zaW9uID1cbiAgICB8ICdqc29uJ1xuICAgIHwgJ2h0bWwnXG4gICAgfCBJbWFnZUZpbGVFeHRlbnNpb25cbiAgICB8ICd0eHQnXG4gICAgfCBDdXRhYmxlRmlsZUV4dDtcblxuXG5cbiAgZXhwb3J0IHR5cGUgSHR0cE1ldGhvZCA9XG4gICAgfCAnZ2V0J1xuICAgIHwgJ3Bvc3QnXG4gICAgfCAncHV0J1xuICAgIHwgJ2RlbGV0ZSdcbiAgICB8ICdwYXRjaCdcbiAgICB8ICdoZWFkJ1xuICAgIHwgJ2pzb25wJztcblxuXG5cbiAgZXhwb3J0IHR5cGUgUGFyYW1UeXBlID0gJ1BhdGgnIHwgJ1F1ZXJ5JyB8ICdDb29raWUnIHwgJ0hlYWRlcicgfCAnQm9keSc7XG5cblxuXG4gIGV4cG9ydCB0eXBlIFRzVXNhZ2UgPSAnaW1wb3J0JyB8ICdleHBvcnQnO1xuXG5cblxuICBleHBvcnQgdHlwZSBCYXNlUHJvamVjdFR5cGUgPVxuICAgIHwgJ3R5cGVzY3JpcHQnXG4gICAgfCAnYW5ndWxhcidcbiAgICB8ICdhbmd1bGFyLWxpYidcbiAgICB8ICd1bmtub3cnXG4gICAgfCAndW5rbm93LW5wbS1wcm9qZWN0JztcblxuXG5cbiAgZXhwb3J0IGNvbnN0IEJhc2VQcm9qZWN0VHlwZUFyciA9IFtcbiAgICAndHlwZXNjcmlwdCcsXG4gICAgJ2FuZ3VsYXInLFxuICAgICdhbmd1bGFyLWxpYicsXG4gICAgJ3Vua25vdycsXG4gICAgJ3Vua25vdy1ucG0tcHJvamVjdCcsXG4gIF07XG5cblxuXG4gIGV4cG9ydCB0eXBlIExpYlR5cGUgPVxuICAgIHwgQmFzZVByb2plY3RUeXBlXG4gICAgfCAnaXNvbW9ycGhpYy1saWInIC8vICsgaHR0cHM6Ly9naXRodWIuY29tL21heGltZWdyaXMvYW5ndWxhci1lbGVjdHJvblxuICAgIHwgJ2NvbnRhaW5lcidcbiAgICB8ICdkb2NrZXInXG4gICAgfCAndnNjb2RlLWV4dCdcbiAgICB8ICdjaHJvbWUtZXh0J1xuICAgIHwgJ3Vua25vdy1ucG0tcHJvamVjdCc7XG5cblxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgZXhwb3J0IHR5cGUgTmV3RmFjdG9yeVR5cGUgPSBMaWJUeXBlIHwgJ21vZGVsJyB8ICdzaW5nbGUtZmlsZS1wcm9qZWN0JztcblxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBleHBvcnQgdHlwZSBDb3JlTGliQ2F0ZWdvcnkgPSBMaWJUeXBlIHwgJ2NvbW1vbic7XG5cblxuXG4gIGV4cG9ydCB0eXBlIEZpbGVFdmVudCA9ICdjcmVhdGVkJyB8ICdjaGFuZ2VkJyB8ICdyZW1vdmVkJyB8ICdyZW5hbWUnO1xuXG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGV4cG9ydCB0eXBlIE91dEZvbGRlciA9ICdkaXN0JyB8ICdicm93c2VyJztcblxuXG5cbiAgZXhwb3J0IHR5cGUgRGF0YWJhc2VUeXBlID0gJzppbm1lbW9yeScgfCAnbXlzcWwnIHwgJ3NxbGpzJztcblxuXG5cbiAgZXhwb3J0IGludGVyZmFjZSBVcGxvYWRlZEJhY2tlbmRGaWxlIHtcbiAgICBkYXRhOlxuICAgICAgfCBhbnlcbi8qICovXG4vKiAqL1xuICBcbiAgICBlbmNvZGluZzogc3RyaW5nO1xuICAgIG1kNTogc3RyaW5nO1xuICAgIHRlbXBGaWxlUGF0aDogc3RyaW5nO1xuICAgIG1pbWV0eXBlOiBDb250ZW50VHlwZTtcbiAgICBtdjogKHBhdGgsIGNhbGxiYWNrKSA9PiBhbnk7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHRydW5jYXRlZDogYm9vbGVhbjtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGV4cG9ydCBpbnRlcmZhY2UgRXhlY3V0ZU9wdGlvbnMge1xuICAgIC8qKiBFeHRyYWN0IHN0cmluZyBmcm9tIGxpbmUgKi9cbiAgICBleHRyYWN0RnJvbUxpbmU/OiAoc3RyaW5nIHwgRnVuY3Rpb24pW107XG4gICAgLyoqXG4gICAgICogTW9kaWZ5IG91dHB1dCBsaW5lIGJ5IGxpbmVcbiAgICAgKi9cbiAgICBvdXRwdXRMaW5lUmVwbGFjZT86IChvdXRwdXRMaW5lOiBzdHJpbmcpID0+IHN0cmluZztcbiAgICByZXNvbHZlUHJvbWlzZU1zZz86IHtcbiAgICAgIHN0ZG91dD86IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgICAgc3RkZXJyPzogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgfTtcbiAgICBwcmVmaXg/OiBzdHJpbmc7XG4gICAgZGV0YWNoPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUcnkgY29tbWFuZCBhZ2FpbiBhZnRlciBmYWlsIGFmdGVyIG4gbWlsaXNlY29uZHNcbiAgICAgKi9cbiAgICB0cnlBZ2FpbldoZW5GYWlsQWZ0ZXI/OiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogIFRPRE8gQExBU1QgaW1wbGVtZW50IHRoaXNcbiAgICAgKlxuICAgICAqIE91dHB1dCBmcm9tIHByb2Nlc3NlIHdpdGggdGhpcyBrZXlcbiAgICAgKiB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQgdHdpY2Ugd2hlblxuICAgICAqIDIgcHJvY2Vzc2VzIGFyZSBydW5uaW5nIGF0IHRoZSBzYW1lIHRpbWVcbiAgICAgKi9cbiAgICBzaW1pbGFyUHJvY2Vzc0tleT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFVzZSBiaWcgYnVmZmVyIGZvciBiaWcgd2VicGFjayBsb2dzXG4gICAgICovXG4gICAgYmlnZ2VyQnVmZmVyPzogYm9vbGVhbjtcbiAgICBhc2tUb1RyeUFnYWluT25FcnJvcj86IGJvb2xlYW47XG4gICAgZXhpdE9uRXJyb3JDYWxsYmFjaz86IChjb2RlOiBudW1iZXIpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogRnJvbSBkaXNwbGF5aW5nIGluIGNvbnNvbGVcbiAgICAgKi9cbiAgICBoaWRlT3V0cHV0Pzoge1xuICAgICAgc3Rkb3V0PzogYm9vbGVhbjtcbiAgICAgIHN0ZGVycj86IGJvb2xlYW47XG4gICAgICBhY2NlcHRBbGxFeGl0Q29kZUFzU3VjY2Vzcz86IGJvb2xlYW47XG4gICAgfTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGV4cG9ydCBpbnRlcmZhY2UgUnVuT3B0aW9ucyBleHRlbmRzIEV4ZWN1dGVPcHRpb25zIHtcbiAgICBzaG93Q29tbWFuZD86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHByb2Nlc3Mgb3V0cHV0XG4gICAgICovXG4gICAgb3V0cHV0PzogYm9vbGVhbjtcblxuICAgIHNpbGVuY2U/OiBib29sZWFuO1xuICAgIHN0ZGlvPzogYW55O1xuXG5cbiAgICBjd2Q/OiBzdHJpbmc7XG4gIH1cblxuXG5cblxuXG4gIGV4cG9ydCBjb25zdCBtaW1lVHlwZXMgPSB7XG4gICAgJy5hYWMnOiAnYXVkaW8vYWFjJyxcbiAgICAnLmFidyc6ICdhcHBsaWNhdGlvbi94LWFiaXdvcmQnLFxuICAgICcuYXJjJzogJ2FwcGxpY2F0aW9uL3gtZnJlZWFyYycsXG4gICAgJy5hdmknOiAndmlkZW8veC1tc3ZpZGVvJyxcbiAgICAnLmF6dyc6ICdhcHBsaWNhdGlvbi92bmQuYW1hem9uLmVib29rJyxcbiAgICAnLmJpbic6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nLFxuICAgICcuYm1wJzogJ2ltYWdlL2JtcCcsXG4gICAgJy5ieic6ICdhcHBsaWNhdGlvbi94LWJ6aXAnLFxuICAgICcuYnoyJzogJ2FwcGxpY2F0aW9uL3gtYnppcDInLFxuICAgICcuY3NoJzogJ2FwcGxpY2F0aW9uL3gtY3NoJyxcbiAgICAnLmNzcyc6ICd0ZXh0L2NzcycsXG4gICAgJy5jc3YnOiAndGV4dC9jc3YnLFxuICAgICcuZG9jJzogJ2FwcGxpY2F0aW9uL21zd29yZCcsXG4gICAgJy5kb2N4JzpcbiAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCcsXG4gICAgJy5lb3QnOiAnYXBwbGljYXRpb24vdm5kLm1zLWZvbnRvYmplY3QnLFxuICAgICcuZXB1Yic6ICdhcHBsaWNhdGlvbi9lcHViK3ppcCcsXG4gICAgJy5neic6ICdhcHBsaWNhdGlvbi9nemlwJyxcbiAgICAnLmdpZic6ICdpbWFnZS9naWYnLFxuICAgICcuaHRtJzogJ3RleHQvaHRtbCcsXG4gICAgJy5odG1sJzogJ3RleHQvaHRtbCcsXG4gICAgJy5pY28nOiAnaW1hZ2Uvdm5kLm1pY3Jvc29mdC5pY29uJyxcbiAgICAnLmljcyc6ICd0ZXh0L2NhbGVuZGFyJyxcbiAgICAnLmphcic6ICdhcHBsaWNhdGlvbi9qYXZhLWFyY2hpdmUnLFxuICAgICcuanBlZyc6ICdpbWFnZS9qcGVnJyxcbiAgICAnLmpwZyc6ICdpbWFnZS9qcGVnJyxcbiAgICAnLmpzJzogJ3RleHQvamF2YXNjcmlwdCcsXG4gICAgJy5qc29uJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICcuanNvbmxkJzogJ2FwcGxpY2F0aW9uL2xkK2pzb24nLFxuICAgICcubWlkJzogJ2FwcGxpY2F0aW9uL21pZGknLFxuICAgICcubWlkaSc6ICdhcHBsaWNhdGlvbi9taWRpJyxcbiAgICAnLm1qcyc6ICd0ZXh0L2phdmFzY3JpcHQnLFxuICAgICcubXAzJzogJ2F1ZGlvL21wZWcnLFxuICAgICcubXA0JzogJ3ZpZGVvL21wNCcsXG4gICAgJy5tcGVnJzogJ3ZpZGVvL21wZWcnLFxuICAgICcubXBrZyc6ICdhcHBsaWNhdGlvbi92bmQuYXBwbGUuaW5zdGFsbGVyK3htbCcsXG4gICAgJy5vZHAnOiAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5wcmVzZW50YXRpb24nLFxuICAgICcub2RzJzogJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXQnLFxuICAgICcub2R0JzogJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dCcsXG4gICAgJy5vZ2EnOiAnYXVkaW8vb2dnJyxcbiAgICAnLm9nZyc6ICdhdWRpby9vZ2cnLFxuICAgICcub2d2JzogJ3ZpZGVvL29nZycsXG4gICAgJy5vZ3gnOiAnYXBwbGljYXRpb24vb2dnJyxcbiAgICAnLm9wdXMnOiAnYXVkaW8vb3B1cycsXG4gICAgJy5vdGYnOiAnZm9udC9vdGYnLFxuICAgICcucG5nJzogJ2ltYWdlL3BuZycsXG4gICAgJy5wZGYnOiAnYXBwbGljYXRpb24vcGRmJyxcbiAgICAnLnBocCc6ICdhcHBsaWNhdGlvbi9waHAnLFxuICAgICcucHB0JzogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50JyxcbiAgICAnLnBwdHgnOlxuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nLFxuICAgICcucmFyJzogJ2FwcGxpY2F0aW9uL3ZuZC5yYXInLFxuICAgICcucnRmJzogJ2FwcGxpY2F0aW9uL3J0ZicsXG4gICAgJy5zaCc6ICdhcHBsaWNhdGlvbi94LXNoJyxcbiAgICAnLnN2Zyc6ICdpbWFnZS9zdmcreG1sJyxcbiAgICAnLnN3Zic6ICdhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCcsXG4gICAgJy50YXInOiAnYXBwbGljYXRpb24veC10YXInLFxuICAgICcudGlmJzogJ2ltYWdlL3RpZmYnLFxuICAgICcudGlmZic6ICdpbWFnZS90aWZmJyxcbiAgICAnLnRzJzogJ3ZpZGVvL21wMnQnLFxuICAgICcudHRmJzogJ2ZvbnQvdHRmJyxcbiAgICAnLnR4dCc6ICd0ZXh0L3BsYWluJyxcbiAgICAnLnZzZCc6ICdhcHBsaWNhdGlvbi92bmQudmlzaW8nLFxuICAgICcud2F2JzogJ2F1ZGlvL3dhdicsXG4gICAgJy53ZWJhJzogJ2F1ZGlvL3dlYm0nLFxuICAgICcud2VibSc6ICd2aWRlby93ZWJtJyxcbiAgICAnLndlYnAnOiAnaW1hZ2Uvd2VicCcsXG4gICAgJy53b2ZmJzogJ2ZvbnQvd29mZicsXG4gICAgJy53b2ZmMic6ICdmb250L3dvZmYyJyxcbiAgICAnLnhodG1sJzogJ2FwcGxpY2F0aW9uL3hodG1sK3htbCcsXG4gICAgJy54bHMnOiAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcbiAgICAnLnhsc3gnOlxuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcbiAgICAnLnhtbCc6ICdhcHBsaWNhdGlvbi94bWwnLFxuICAgICcueHVsJzogJ2FwcGxpY2F0aW9uL3ZuZC5tb3ppbGxhLnh1bCt4bWwnLFxuICAgICcuemlwJzogJ2FwcGxpY2F0aW9uL3ppcCcsXG4gICAgJy4zZ3AnOiAndmlkZW8vM2dwcCcsXG4gICAgJy4zZzInOiAndmlkZW8vM2dwcDInLFxuICAgICcuN3onOiAnYXBwbGljYXRpb24veC03ei1jb21wcmVzc2VkJyxcbiAgfSBhcyBjb25zdDtcblxuICBleHBvcnQgdHlwZSBDb250ZW50VHlwZUtleXMgPSBrZXlvZiB0eXBlb2YgbWltZVR5cGVzO1xuICBleHBvcnQgdHlwZSBDb250ZW50VHlwZSA9XG4gICAgfCAodHlwZW9mIG1pbWVUeXBlcylbQ29udGVudFR5cGVLZXlzXVxuICAgIHwgJ211bHRpcGFydC9mb3JtLWRhdGEnO1xuICB0eXBlIENvbnRlbnRUeXBlXyA9IENvbnRlbnRUeXBlO1xuXG4gIC8qKlxuICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL0Jhc2ljc19vZl9IVFRQL01JTUVfdHlwZXNcbiAgICovXG4gIGV4cG9ydCB0eXBlIE1lZGlhVHlwZSA9XG4gICAgfCAndGV4dCdcbiAgICB8ICdpbWFnZSdcbiAgICB8ICdhdWRpbydcbiAgICB8ICdmb250J1xuICAgIHwgJ3ZpZGVvJ1xuICAgIHwgJ2FwcGxpY2F0aW9uJ1xuICAgIHwgJ211bHRpcGFydCdcbiAgICB8ICdtZXNzYWdlJ1xuICAgIHwgJ21vZGVsJztcblxuICBleHBvcnQgY29uc3QgTWVkaWFUeXBlQWxsQXJyID0gW1xuICAgICd0ZXh0JyxcbiAgICAnaW1hZ2UnLFxuICAgICdhdWRpbycsXG4gICAgJ3ZpZGVvJyxcbiAgICAnZm9udCcsXG4gICAgJ2FwcGxpY2F0aW9uJyxcbiAgICAnbXVsdGlwYXJ0JyxcbiAgICAnbWVzc2FnZScsXG4gICAgJ21vZGVsJyxcbiAgXSBhcyBNZWRpYVR5cGVbXTtcblxuICBleHBvcnQgdHlwZSBNaW1lVHlwZSA9IGtleW9mIHR5cGVvZiBtaW1lVHlwZXM7XG4gIGV4cG9ydCBjb25zdCBNaW1lVHlwZXNPYmogPSBtaW1lVHlwZXM7XG5cblxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgTWFuaWZlc3RJY29uIHtcbiAgICBzcmM6IHN0cmluZzsgLy8gXCJhc3NldHMvaWNvbnMvaWNvbi05Nng5Ni5wbmdcIixcbiAgICBzaXplczogc3RyaW5nOyAvLyBcIjk2eDk2XCIsXG4gICAgdHlwZTogc3RyaW5nOyAvLyBcImltYWdlL3BuZ1wiLFxuICAgIHB1cnBvc2U6IHN0cmluZzsgLy8gXCJtYXNrYWJsZSBhbnlcIlxuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBQd2FNYW5pZmVzdCB7XG4gICAgbmFtZTogc3RyaW5nOyAvLyAgXCJhcHBcIixcbiAgICBzaG9ydF9uYW1lOiBzdHJpbmc7IC8vICBcImFwcFwiLFxuICAgIHRoZW1lX2NvbG9yOiBzdHJpbmc7IC8vIFwiIzE5NzZkMlwiLFxuICAgIGJhY2tncm91bmRfY29sb3I6IHN0cmluZzsgLy8gIFwiI2ZhZmFmYVwiLFxuICAgIGRpc3BsYXk6ICdzdGFuZGFsb25lJztcbiAgICBzY29wZTogc3RyaW5nOyAvLyBcIi4vXCIsXG4gICAgc3RhcnRfdXJsOiBzdHJpbmc7IC8vICBcInN0YXJ0X3VybFwiOiBcIi4vXCIsID0+IFwic3RhcnRfdXJsXCIgXCJodHRwczovL2RhcmVrZjc3LmdpdGh1Yi5pby9iczQtYnJlYWtwb2ludC9cIlxuICAgIGljb25zOiBNYW5pZmVzdEljb25bXTtcbiAgfVxuXG5cblxuICBleHBvcnQgaW50ZXJmYWNlIFZTQ29kZVNldHRpbmdzIHtcbiAgICAnZmlsZXMuZXhjbHVkZSc6IHsgW2ZpbGVzOiBzdHJpbmddOiBib29sZWFuIH07XG4gICAgJ3dvcmtiZW5jaC5jb2xvclRoZW1lJzogJ0RlZmF1bHQgTGlnaHQrJyB8ICdLaW1iaWUgRGFyayc7XG4gICAgJ3dvcmtiZW5jaC5jb2xvckN1c3RvbWl6YXRpb25zJzoge1xuICAgICAgJ2FjdGl2aXR5QmFyLmJhY2tncm91bmQnPzogc3RyaW5nO1xuICAgICAgJ2FjdGl2aXR5QmFyLmZvcmVncm91bmQnPzogc3RyaW5nO1xuICAgICAgJ3N0YXR1c0Jhci5iYWNrZ3JvdW5kJz86IHN0cmluZztcbiAgICB9O1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgZXhwb3J0IGludGVyZmFjZSBQb3NpdGlvbiB7XG4gICAgeDogbnVtYmVyO1xuICAgIHk6IG51bWJlcjtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGV4cG9ydCBpbnRlcmZhY2UgU2l6ZSB7XG4gICAgdzogbnVtYmVyO1xuICAgIGg6IG51bWJlcjtcbiAgfVxuXG5cblxuICBpbnRlcmZhY2UgR2xvYmFsTnBtRGVwZW5kZW5jeSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGluc3RhbGxOYW1lPzogc3RyaW5nO1xuICAgIHZlcnNpb24/OiBzdHJpbmcgfCBudW1iZXI7XG4gIH1cblxuICBpbnRlcmZhY2UgR2xvYmFsQ29tbWFuZExpbmVQcm9ncmFtRGVwZW5kZW5jeSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHdlYnNpdGU6IHN0cmluZztcbiAgICB2ZXJzaW9uPzogc3RyaW5nO1xuICB9XG4gIGV4cG9ydCBpbnRlcmZhY2UgR2xvYmFsRGVwZW5kZW5jaWVzIHtcbiAgICBucG0/OiBHbG9iYWxOcG1EZXBlbmRlbmN5W107XG4gICAgcHJvZ3JhbXM/OiBHbG9iYWxDb21tYW5kTGluZVByb2dyYW1EZXBlbmRlbmN5W107XG4gIH1cblxuXG5cbiAgaW50ZXJmYWNlIEFuZ3VsYXJDb21waWxlck9wdGlvbnMge1xuICAgIGZ1bGxUZW1wbGF0ZVR5cGVDaGVjazogYm9vbGVhbjtcbiAgICBzdHJpY3RJbmplY3Rpb25QYXJhbWV0ZXJzOiBib29sZWFuO1xuICAgIGNvbXBpbGF0aW9uTW9kZTogc3RyaW5nO1xuICAgIHByZXNlcnZlU3ltbGlua3M6IGJvb2xlYW47XG4gICAgZW5hYmxlSXZ5OiBib29sZWFuO1xuICB9XG5cbiAgaW50ZXJmYWNlIENvbXBpbGVyT3B0aW9ucyB7XG4gICAgYmFzZVVybDogc3RyaW5nO1xuICAgIG91dERpcjogc3RyaW5nO1xuICAgIHNvdXJjZU1hcDogYm9vbGVhbjtcbiAgICBkZWNsYXJhdGlvbjogYm9vbGVhbjtcbiAgICBzdHJpY3ROdWxsQ2hlY2tzOiBib29sZWFuO1xuICAgIGRvd25sZXZlbEl0ZXJhdGlvbjogYm9vbGVhbjtcbiAgICBleHBlcmltZW50YWxEZWNvcmF0b3JzOiBib29sZWFuO1xuICAgIGVtaXREZWNvcmF0b3JNZXRhZGF0YTogYm9vbGVhbjtcbiAgICBlc01vZHVsZUludGVyb3A6IGJvb2xlYW47XG4gICAgbW9kdWxlOiBzdHJpbmc7XG4gICAgbW9kdWxlUmVzb2x1dGlvbjogc3RyaW5nO1xuICAgIGltcG9ydEhlbHBlcnM6IGJvb2xlYW47XG4gICAgc2tpcExpYkNoZWNrOiBib29sZWFuO1xuICAgIHRhcmdldDogc3RyaW5nO1xuICAgIHR5cGVSb290czogc3RyaW5nW107XG4gICAgdHlwZXM6IHN0cmluZ1tdO1xuICAgIGxpYjogc3RyaW5nW107XG4gICAgcGF0aHM6IHsgW2Z1bGxQYWNrYWdlTmFtZTogc3RyaW5nXTogc3RyaW5nW10gfTtcbiAgICB1c2VEZWZpbmVGb3JDbGFzc0ZpZWxkczogYm9vbGVhbjtcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIFRzQ29uZmlnSnNvbiB7XG4gICAgZXh0ZW5kczogc3RyaW5nO1xuICAgIGV4Y2x1ZGU6IHN0cmluZ1tdO1xuICAgIGNvbXBpbGVPblNhdmU6IGJvb2xlYW47XG4gICAgY29tcGlsZXJPcHRpb25zOiBDb21waWxlck9wdGlvbnM7XG4gICAgYW5ndWxhckNvbXBpbGVyT3B0aW9uczogQW5ndWxhckNvbXBpbGVyT3B0aW9ucztcbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtY29yZSBsaWIvY29yZS1tb2RlbHMudHMiXX0=
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtY29yZS9wcm9qZWN0cy90bnAtY29yZS9zcmMvbGliL2NvcmUtbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sS0FBVyxVQUFVLENBNmlCMUI7QUE3aUJELFdBQWlCLFVBQVU7SUEwQlosNkJBQWtCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBVXBELHNDQUEyQixHQUFHO1FBQ3pDLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLGFBQWE7S0FDZ0IsQ0FBQztJQVVuQiw2QkFBa0IsR0FBRztRQUNoQyxRQUFRO1FBQ1IsTUFBTTtRQUNOLE1BQU07UUFDTixPQUFPO1FBQ1AsSUFBSTtRQUNKLEtBQUs7S0FDTixDQUFDO0lBNEdXLDZCQUFrQixHQUFHO1FBQ2hDLFlBQVk7UUFDWixTQUFTO1FBQ1QsYUFBYTtRQUNiLFFBQVE7UUFDUixvQkFBb0I7S0FDckIsQ0FBQztJQWtJVyxvQkFBUyxHQUFHO1FBQ3ZCLE1BQU0sRUFBRSxXQUFXO1FBQ25CLE1BQU0sRUFBRSx1QkFBdUI7UUFDL0IsTUFBTSxFQUFFLHVCQUF1QjtRQUMvQixNQUFNLEVBQUUsaUJBQWlCO1FBQ3pCLE1BQU0sRUFBRSw4QkFBOEI7UUFDdEMsTUFBTSxFQUFFLDBCQUEwQjtRQUNsQyxNQUFNLEVBQUUsV0FBVztRQUNuQixLQUFLLEVBQUUsb0JBQW9CO1FBQzNCLE1BQU0sRUFBRSxxQkFBcUI7UUFDN0IsTUFBTSxFQUFFLG1CQUFtQjtRQUMzQixNQUFNLEVBQUUsVUFBVTtRQUNsQixNQUFNLEVBQUUsVUFBVTtRQUNsQixNQUFNLEVBQUUsb0JBQW9CO1FBQzVCLE9BQU8sRUFDTCx5RUFBeUU7UUFDM0UsTUFBTSxFQUFFLCtCQUErQjtRQUN2QyxPQUFPLEVBQUUsc0JBQXNCO1FBQy9CLEtBQUssRUFBRSxrQkFBa0I7UUFDekIsTUFBTSxFQUFFLFdBQVc7UUFDbkIsTUFBTSxFQUFFLFdBQVc7UUFDbkIsT0FBTyxFQUFFLFdBQVc7UUFDcEIsTUFBTSxFQUFFLDBCQUEwQjtRQUNsQyxNQUFNLEVBQUUsZUFBZTtRQUN2QixNQUFNLEVBQUUsMEJBQTBCO1FBQ2xDLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLE1BQU0sRUFBRSxZQUFZO1FBQ3BCLEtBQUssRUFBRSxpQkFBaUI7UUFDeEIsT0FBTyxFQUFFLGtCQUFrQjtRQUMzQixTQUFTLEVBQUUscUJBQXFCO1FBQ2hDLE1BQU0sRUFBRSxrQkFBa0I7UUFDMUIsT0FBTyxFQUFFLGtCQUFrQjtRQUMzQixNQUFNLEVBQUUsaUJBQWlCO1FBQ3pCLE1BQU0sRUFBRSxZQUFZO1FBQ3BCLE1BQU0sRUFBRSxXQUFXO1FBQ25CLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLE9BQU8sRUFBRSxxQ0FBcUM7UUFDOUMsTUFBTSxFQUFFLGlEQUFpRDtRQUN6RCxNQUFNLEVBQUUsZ0RBQWdEO1FBQ3hELE1BQU0sRUFBRSx5Q0FBeUM7UUFDakQsTUFBTSxFQUFFLFdBQVc7UUFDbkIsTUFBTSxFQUFFLFdBQVc7UUFDbkIsTUFBTSxFQUFFLFdBQVc7UUFDbkIsTUFBTSxFQUFFLGlCQUFpQjtRQUN6QixPQUFPLEVBQUUsWUFBWTtRQUNyQixNQUFNLEVBQUUsVUFBVTtRQUNsQixNQUFNLEVBQUUsV0FBVztRQUNuQixNQUFNLEVBQUUsaUJBQWlCO1FBQ3pCLE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsTUFBTSxFQUFFLCtCQUErQjtRQUN2QyxPQUFPLEVBQ0wsMkVBQTJFO1FBQzdFLE1BQU0sRUFBRSxxQkFBcUI7UUFDN0IsTUFBTSxFQUFFLGlCQUFpQjtRQUN6QixLQUFLLEVBQUUsa0JBQWtCO1FBQ3pCLE1BQU0sRUFBRSxlQUFlO1FBQ3ZCLE1BQU0sRUFBRSwrQkFBK0I7UUFDdkMsTUFBTSxFQUFFLG1CQUFtQjtRQUMzQixNQUFNLEVBQUUsWUFBWTtRQUNwQixPQUFPLEVBQUUsWUFBWTtRQUNyQixLQUFLLEVBQUUsWUFBWTtRQUNuQixNQUFNLEVBQUUsVUFBVTtRQUNsQixNQUFNLEVBQUUsWUFBWTtRQUNwQixNQUFNLEVBQUUsdUJBQXVCO1FBQy9CLE1BQU0sRUFBRSxXQUFXO1FBQ25CLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLE9BQU8sRUFBRSxXQUFXO1FBQ3BCLFFBQVEsRUFBRSxZQUFZO1FBQ3RCLFFBQVEsRUFBRSx1QkFBdUI7UUFDakMsTUFBTSxFQUFFLDBCQUEwQjtRQUNsQyxPQUFPLEVBQ0wsbUVBQW1FO1FBQ3JFLE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsTUFBTSxFQUFFLGlDQUFpQztRQUN6QyxNQUFNLEVBQUUsaUJBQWlCO1FBQ3pCLE1BQU0sRUFBRSxZQUFZO1FBQ3BCLE1BQU0sRUFBRSxhQUFhO1FBQ3JCLEtBQUssRUFBRSw2QkFBNkI7S0FDNUIsQ0FBQztJQXNCRSwwQkFBZSxHQUFHO1FBQzdCLE1BQU07UUFDTixPQUFPO1FBQ1AsT0FBTztRQUNQLE9BQU87UUFDUCxNQUFNO1FBQ04sYUFBYTtRQUNiLFdBQVc7UUFDWCxTQUFTO1FBQ1QsT0FBTztLQUNPLENBQUM7SUFHSix1QkFBWSxHQUFHLFdBQUEsU0FBUyxDQUFDO0FBNEl4QyxDQUFDLEVBN2lCZ0IsVUFBVSxLQUFWLFVBQVUsUUE2aUIxQjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsd0RBQXdEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmV4cG9ydCBuYW1lc3BhY2UgQ29yZU1vZGVscyB7XG5cbiAgZXhwb3J0IHR5cGUgUGFja2FnZSA9IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmVyc2lvbj86IHN0cmluZztcbiAgICBpbnN0YWxsVHlwZT86IEluc3RhbGF0aW9uVHlwZTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IHR5cGUgTnBtSW5zdGFsbE9wdGlvbnMgPSB7XG4gICAgcGtnPzogQ29yZU1vZGVscy5QYWNrYWdlO1xuICAgIHNpbGVudD86IGJvb2xlYW47XG4gICAgcmVtb3ZlPzogYm9vbGVhbjtcbiAgICB1c2VZYXJuPzogYm9vbGVhbjtcbiAgICBmb3JjZT86IGJvb2xlYW47XG4gICAgcmVhc29uPzogc3RyaW5nO1xuICAgIHJlbW92ZVlhcm5PclBhY2thZ2VKc29uTG9jaz86IGJvb2xlYW47XG4gICAgZ2VuZXJhdGVZYXJuT3JQYWNrYWdlSnNvbkxvY2s/OiBib29sZWFuO1xuICAgIGlnbm9yZU9wdGlvbmFsPzogYm9vbGVhbjtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IHR5cGUgSW5zdGFsYXRpb25UeXBlID0gJy1nJyB8ICctLXNhdmUnIHwgJy0tc2F2ZS1kZXYnO1xuXG4gIGV4cG9ydCBjb25zdCBJbnN0YWxhdGlvblR5cGVBcnIgPSBbJy1nJywgJy0tc2F2ZScsICctLXNhdmUtZGV2J107XG5cblxuXG4gIGV4cG9ydCB0eXBlIFBhY2thZ2VKc29uRGVwZW5kZW5jeU9iaiA9XG4gICAgfCAnZGVwZW5kZW5jaWVzJ1xuICAgIHwgJ2RldkRlcGVuZGVuY2llcydcbiAgICB8ICdwZWVyRGVwZW5kZW5jaWVzJ1xuICAgIHwgJ3Jlc29sdXRpb25zJztcblxuICBleHBvcnQgY29uc3QgUGFja2FnZUpzb25EZXBlbmRlbmN5T2JqQXJyID0gW1xuICAgICdkZXBlbmRlbmNpZXMnLFxuICAgICdkZXZEZXBlbmRlbmNpZXMnLFxuICAgICdwZWVyRGVwZW5kZW5jaWVzJyxcbiAgICAncmVzb2x1dGlvbnMnLFxuICBdIGFzIFBhY2thZ2VKc29uRGVwZW5kZW5jeU9ialtdO1xuXG5cblxuICBleHBvcnQgdHlwZSBMaWJyYXJ5VHlwZSA9ICdhbmd1bGFyJyB8ICd0eXBlc2NyaXB0JztcblxuXG5cbiAgZXhwb3J0IHR5cGUgUmVsZWFzZVR5cGUgPSAnbWFqb3InIHwgJ21pbm9yJyB8ICdwYXRjaCc7XG4gIGV4cG9ydCB0eXBlIFByZVJlbGVhc2VUeXBlID0gJ2FscGhhJyB8ICdiZXRhJyB8ICdyYycgfCAnbmV4dCc7XG4gIGV4cG9ydCBjb25zdCBOcG1TcGVjaWFsVmVyc2lvbnMgPSBbXG4gICAgJ2xhdGVzdCcsXG4gICAgJ25leHQnLFxuICAgICdiZXRhJyxcbiAgICAnYWxwaGEnLFxuICAgICdyYycsXG4gICAgJ2x0cycsXG4gIF07XG5cblxuXG4gIGV4cG9ydCB0eXBlIFBST0dSRVNTX0RBVEFfVFlQRSA9ICdpbmZvJyB8ICdlcnJvcicgfCAnd2FybmluZycgfCAnZXZlbnQnO1xuXG5cblxuICBleHBvcnQgdHlwZSBFbnZpcm9ubWVudE5hbWUgPVxuICAgIHwgJ2xvY2FsJ1xuICAgIHwgJ3N0YXRpYydcbiAgICB8ICdkZXYnXG4gICAgfCAnc3RhZ2UnXG4gICAgfCAncHJvZCdcbiAgICB8ICdvbmxpbmUnXG4gICAgfCAndGVzdCdcbiAgICB8ICdxYSdcbiAgICB8ICdjdXN0b20nO1xuXG5cblxuICBleHBvcnQgdHlwZSBQVVNIVFlQRSA9XG4gICAgfCAnZmVhdCdcbiAgICB8ICdjaG9yZSdcbiAgICB8ICdmZWF0dXJlJ1xuICAgIHwgJ3JlZmFjdG9yJ1xuICAgIHwgJ3BlcmYnXG4gICAgfCAnc3R5bGVzJ1xuICAgIHwgJ2NpJ1xuICAgIHwgJ2J1aWxkJ1xuICAgIHwgJ2ZpeCdcbiAgICB8ICdidWdmaXgnXG4gICAgfCAncmVsZWFzZSdcbiAgICB8ICdkb2NzJztcblxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBleHBvcnQgdHlwZSBVSUZyYW1ld29yayA9ICdib290c3RyYXAnIHwgJ21hdGVyaWFsJyB8ICdpb25pYyc7XG5cblxuXG4gIGV4cG9ydCB0eXBlIEZyYW1ld29ya1ZlcnNpb24gPVxuICAgIHwgJ3YxJ1xuICAgIHwgJ3YyJ1xuICAgIHwgJ3YzJ1xuICAgIHwgJ3Y0J1xuICAgIHwgJ3YxNidcbiAgICB8ICd2MTgnXG4gICAgfCAndjIwJztcblxuXG5cbiAgZXhwb3J0IHR5cGUgQ3V0YWJsZUZpbGVFeHQgPVxuICAgIHwgJ3Njc3MnXG4gICAgfCAnY3NzJ1xuICAgIHwgJ2xlc3MnXG4gICAgfCAnc2FzcydcbiAgICB8ICdodG1sJ1xuICAgIHwgJ3RzJ1xuICAgIHwgJ3RzeCdcbiAgICB8ICdqcyc7XG5cblxuXG4gIGV4cG9ydCB0eXBlIEltYWdlRmlsZUV4dGVuc2lvbiA9ICdqcGcnIHwgJ2pwZWcnIHwgJ3BuZycgfCAnc3ZnJztcblxuXG5cbiAgZXhwb3J0IHR5cGUgRmlsZUV4dGVuc2lvbiA9XG4gICAgfCAnanNvbidcbiAgICB8ICdodG1sJ1xuICAgIHwgSW1hZ2VGaWxlRXh0ZW5zaW9uXG4gICAgfCAndHh0J1xuICAgIHwgQ3V0YWJsZUZpbGVFeHQ7XG5cblxuXG4gIGV4cG9ydCB0eXBlIEh0dHBNZXRob2QgPVxuICAgIHwgJ2dldCdcbiAgICB8ICdwb3N0J1xuICAgIHwgJ3B1dCdcbiAgICB8ICdkZWxldGUnXG4gICAgfCAncGF0Y2gnXG4gICAgfCAnaGVhZCdcbiAgICB8ICdqc29ucCc7XG5cblxuXG4gIGV4cG9ydCB0eXBlIFBhcmFtVHlwZSA9ICdQYXRoJyB8ICdRdWVyeScgfCAnQ29va2llJyB8ICdIZWFkZXInIHwgJ0JvZHknO1xuXG5cblxuICBleHBvcnQgdHlwZSBUc1VzYWdlID0gJ2ltcG9ydCcgfCAnZXhwb3J0JztcblxuXG5cbiAgZXhwb3J0IHR5cGUgQmFzZVByb2plY3RUeXBlID1cbiAgICB8ICd0eXBlc2NyaXB0J1xuICAgIHwgJ2FuZ3VsYXInXG4gICAgfCAnYW5ndWxhci1saWInXG4gICAgfCAndW5rbm93J1xuICAgIHwgJ3Vua25vdy1ucG0tcHJvamVjdCc7XG5cblxuXG4gIGV4cG9ydCBjb25zdCBCYXNlUHJvamVjdFR5cGVBcnIgPSBbXG4gICAgJ3R5cGVzY3JpcHQnLFxuICAgICdhbmd1bGFyJyxcbiAgICAnYW5ndWxhci1saWInLFxuICAgICd1bmtub3cnLFxuICAgICd1bmtub3ctbnBtLXByb2plY3QnLFxuICBdO1xuXG5cblxuICBleHBvcnQgdHlwZSBMaWJUeXBlID1cbiAgICB8IEJhc2VQcm9qZWN0VHlwZVxuICAgIHwgJ2lzb21vcnBoaWMtbGliJyAvLyArIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXhpbWVncmlzL2FuZ3VsYXItZWxlY3Ryb25cbiAgICB8ICdjb250YWluZXInXG4gICAgfCAnZG9ja2VyJ1xuICAgIHwgJ3ZzY29kZS1leHQnXG4gICAgfCAnY2hyb21lLWV4dCdcbiAgICB8ICd1bmtub3ctbnBtLXByb2plY3QnO1xuXG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGV4cG9ydCB0eXBlIE5ld0ZhY3RvcnlUeXBlID0gTGliVHlwZSB8ICdtb2RlbCcgfCAnc2luZ2xlLWZpbGUtcHJvamVjdCc7XG5cblxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgZXhwb3J0IHR5cGUgQ29yZUxpYkNhdGVnb3J5ID0gTGliVHlwZSB8ICdjb21tb24nO1xuXG5cblxuICBleHBvcnQgdHlwZSBGaWxlRXZlbnQgPSAnY3JlYXRlZCcgfCAnY2hhbmdlZCcgfCAncmVtb3ZlZCcgfCAncmVuYW1lJztcblxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBleHBvcnQgdHlwZSBPdXRGb2xkZXIgPSAnZGlzdCcgfCAnYnJvd3Nlcic7XG5cblxuXG4gIGV4cG9ydCB0eXBlIERhdGFiYXNlVHlwZSA9ICc6aW5tZW1vcnknIHwgJ215c3FsJyB8ICdzcWxqcyc7XG5cblxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkZWRCYWNrZW5kRmlsZSB7XG4gICAgZGF0YTpcbiAgICAgIHwgYW55XG4vKiAqL1xuLyogKi9cbiAgXG4gICAgZW5jb2Rpbmc6IHN0cmluZztcbiAgICBtZDU6IHN0cmluZztcbiAgICB0ZW1wRmlsZVBhdGg6IHN0cmluZztcbiAgICBtaW1ldHlwZTogQ29udGVudFR5cGU7XG4gICAgbXY6IChwYXRoLCBjYWxsYmFjaykgPT4gYW55O1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0cnVuY2F0ZWQ6IGJvb2xlYW47XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBleHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGVPcHRpb25zIHtcbiAgICAvKiogRXh0cmFjdCBzdHJpbmcgZnJvbSBsaW5lICovXG4gICAgZXh0cmFjdEZyb21MaW5lPzogKHN0cmluZyB8IEZ1bmN0aW9uKVtdO1xuICAgIC8qKlxuICAgICAqIE1vZGlmeSBvdXRwdXQgbGluZSBieSBsaW5lXG4gICAgICovXG4gICAgb3V0cHV0TGluZVJlcGxhY2U/OiAob3V0cHV0TGluZTogc3RyaW5nKSA9PiBzdHJpbmc7XG4gICAgcmVzb2x2ZVByb21pc2VNc2c/OiB7XG4gICAgICBzdGRvdXQ/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICAgIHN0ZGVycj86IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgIH07XG4gICAgcHJlZml4Pzogc3RyaW5nO1xuICAgIGRldGFjaD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVHJ5IGNvbW1hbmQgYWdhaW4gYWZ0ZXIgZmFpbCBhZnRlciBuIG1pbGlzZWNvbmRzXG4gICAgICovXG4gICAgdHJ5QWdhaW5XaGVuRmFpbEFmdGVyPzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqICBUT0RPIEBMQVNUIGltcGxlbWVudCB0aGlzXG4gICAgICpcbiAgICAgKiBPdXRwdXQgZnJvbSBwcm9jZXNzZSB3aXRoIHRoaXMga2V5XG4gICAgICogd2lsbCBub3QgYmUgZGlzcGxheWVkIHR3aWNlIHdoZW5cbiAgICAgKiAyIHByb2Nlc3NlcyBhcmUgcnVubmluZyBhdCB0aGUgc2FtZSB0aW1lXG4gICAgICovXG4gICAgc2ltaWxhclByb2Nlc3NLZXk/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBVc2UgYmlnIGJ1ZmZlciBmb3IgYmlnIHdlYnBhY2sgbG9nc1xuICAgICAqL1xuICAgIGJpZ2dlckJ1ZmZlcj86IGJvb2xlYW47XG4gICAgYXNrVG9UcnlBZ2Fpbk9uRXJyb3I/OiBib29sZWFuO1xuICAgIGV4aXRPbkVycm9yQ2FsbGJhY2s/OiAoY29kZTogbnVtYmVyKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIEZyb20gZGlzcGxheWluZyBpbiBjb25zb2xlXG4gICAgICovXG4gICAgaGlkZU91dHB1dD86IHtcbiAgICAgIHN0ZG91dD86IGJvb2xlYW47XG4gICAgICBzdGRlcnI/OiBib29sZWFuO1xuICAgICAgYWNjZXB0QWxsRXhpdENvZGVBc1N1Y2Nlc3M/OiBib29sZWFuO1xuICAgIH07XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBleHBvcnQgaW50ZXJmYWNlIFJ1bk9wdGlvbnMgZXh0ZW5kcyBFeGVjdXRlT3B0aW9ucyB7XG4gICAgc2hvd0NvbW1hbmQ/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogU2hvdyBwcm9jZXNzIG91dHB1dFxuICAgICAqL1xuICAgIG91dHB1dD86IGJvb2xlYW47XG5cbiAgICBzaWxlbmNlPzogYm9vbGVhbjtcbiAgICBzdGRpbz86IGFueTtcblxuXG4gICAgY3dkPzogc3RyaW5nO1xuICB9XG5cblxuXG5cblxuICBleHBvcnQgY29uc3QgbWltZVR5cGVzID0ge1xuICAgICcuYWFjJzogJ2F1ZGlvL2FhYycsXG4gICAgJy5hYncnOiAnYXBwbGljYXRpb24veC1hYml3b3JkJyxcbiAgICAnLmFyYyc6ICdhcHBsaWNhdGlvbi94LWZyZWVhcmMnLFxuICAgICcuYXZpJzogJ3ZpZGVvL3gtbXN2aWRlbycsXG4gICAgJy5hencnOiAnYXBwbGljYXRpb24vdm5kLmFtYXpvbi5lYm9vaycsXG4gICAgJy5iaW4nOiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyxcbiAgICAnLmJtcCc6ICdpbWFnZS9ibXAnLFxuICAgICcuYnonOiAnYXBwbGljYXRpb24veC1iemlwJyxcbiAgICAnLmJ6Mic6ICdhcHBsaWNhdGlvbi94LWJ6aXAyJyxcbiAgICAnLmNzaCc6ICdhcHBsaWNhdGlvbi94LWNzaCcsXG4gICAgJy5jc3MnOiAndGV4dC9jc3MnLFxuICAgICcuY3N2JzogJ3RleHQvY3N2JyxcbiAgICAnLmRvYyc6ICdhcHBsaWNhdGlvbi9tc3dvcmQnLFxuICAgICcuZG9jeCc6XG4gICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnLFxuICAgICcuZW90JzogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1mb250b2JqZWN0JyxcbiAgICAnLmVwdWInOiAnYXBwbGljYXRpb24vZXB1Yit6aXAnLFxuICAgICcuZ3onOiAnYXBwbGljYXRpb24vZ3ppcCcsXG4gICAgJy5naWYnOiAnaW1hZ2UvZ2lmJyxcbiAgICAnLmh0bSc6ICd0ZXh0L2h0bWwnLFxuICAgICcuaHRtbCc6ICd0ZXh0L2h0bWwnLFxuICAgICcuaWNvJzogJ2ltYWdlL3ZuZC5taWNyb3NvZnQuaWNvbicsXG4gICAgJy5pY3MnOiAndGV4dC9jYWxlbmRhcicsXG4gICAgJy5qYXInOiAnYXBwbGljYXRpb24vamF2YS1hcmNoaXZlJyxcbiAgICAnLmpwZWcnOiAnaW1hZ2UvanBlZycsXG4gICAgJy5qcGcnOiAnaW1hZ2UvanBlZycsXG4gICAgJy5qcyc6ICd0ZXh0L2phdmFzY3JpcHQnLFxuICAgICcuanNvbic6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAnLmpzb25sZCc6ICdhcHBsaWNhdGlvbi9sZCtqc29uJyxcbiAgICAnLm1pZCc6ICdhcHBsaWNhdGlvbi9taWRpJyxcbiAgICAnLm1pZGknOiAnYXBwbGljYXRpb24vbWlkaScsXG4gICAgJy5tanMnOiAndGV4dC9qYXZhc2NyaXB0JyxcbiAgICAnLm1wMyc6ICdhdWRpby9tcGVnJyxcbiAgICAnLm1wNCc6ICd2aWRlby9tcDQnLFxuICAgICcubXBlZyc6ICd2aWRlby9tcGVnJyxcbiAgICAnLm1wa2cnOiAnYXBwbGljYXRpb24vdm5kLmFwcGxlLmluc3RhbGxlcit4bWwnLFxuICAgICcub2RwJzogJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQucHJlc2VudGF0aW9uJyxcbiAgICAnLm9kcyc6ICdhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0JyxcbiAgICAnLm9kdCc6ICdhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQnLFxuICAgICcub2dhJzogJ2F1ZGlvL29nZycsXG4gICAgJy5vZ2cnOiAnYXVkaW8vb2dnJyxcbiAgICAnLm9ndic6ICd2aWRlby9vZ2cnLFxuICAgICcub2d4JzogJ2FwcGxpY2F0aW9uL29nZycsXG4gICAgJy5vcHVzJzogJ2F1ZGlvL29wdXMnLFxuICAgICcub3RmJzogJ2ZvbnQvb3RmJyxcbiAgICAnLnBuZyc6ICdpbWFnZS9wbmcnLFxuICAgICcucGRmJzogJ2FwcGxpY2F0aW9uL3BkZicsXG4gICAgJy5waHAnOiAnYXBwbGljYXRpb24vcGhwJyxcbiAgICAnLnBwdCc6ICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCcsXG4gICAgJy5wcHR4JzpcbiAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uJyxcbiAgICAnLnJhcic6ICdhcHBsaWNhdGlvbi92bmQucmFyJyxcbiAgICAnLnJ0Zic6ICdhcHBsaWNhdGlvbi9ydGYnLFxuICAgICcuc2gnOiAnYXBwbGljYXRpb24veC1zaCcsXG4gICAgJy5zdmcnOiAnaW1hZ2Uvc3ZnK3htbCcsXG4gICAgJy5zd2YnOiAnYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2gnLFxuICAgICcudGFyJzogJ2FwcGxpY2F0aW9uL3gtdGFyJyxcbiAgICAnLnRpZic6ICdpbWFnZS90aWZmJyxcbiAgICAnLnRpZmYnOiAnaW1hZ2UvdGlmZicsXG4gICAgJy50cyc6ICd2aWRlby9tcDJ0JyxcbiAgICAnLnR0Zic6ICdmb250L3R0ZicsXG4gICAgJy50eHQnOiAndGV4dC9wbGFpbicsXG4gICAgJy52c2QnOiAnYXBwbGljYXRpb24vdm5kLnZpc2lvJyxcbiAgICAnLndhdic6ICdhdWRpby93YXYnLFxuICAgICcud2ViYSc6ICdhdWRpby93ZWJtJyxcbiAgICAnLndlYm0nOiAndmlkZW8vd2VibScsXG4gICAgJy53ZWJwJzogJ2ltYWdlL3dlYnAnLFxuICAgICcud29mZic6ICdmb250L3dvZmYnLFxuICAgICcud29mZjInOiAnZm9udC93b2ZmMicsXG4gICAgJy54aHRtbCc6ICdhcHBsaWNhdGlvbi94aHRtbCt4bWwnLFxuICAgICcueGxzJzogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXG4gICAgJy54bHN4JzpcbiAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsXG4gICAgJy54bWwnOiAnYXBwbGljYXRpb24veG1sJyxcbiAgICAnLnh1bCc6ICdhcHBsaWNhdGlvbi92bmQubW96aWxsYS54dWwreG1sJyxcbiAgICAnLnppcCc6ICdhcHBsaWNhdGlvbi96aXAnLFxuICAgICcuM2dwJzogJ3ZpZGVvLzNncHAnLFxuICAgICcuM2cyJzogJ3ZpZGVvLzNncHAyJyxcbiAgICAnLjd6JzogJ2FwcGxpY2F0aW9uL3gtN3otY29tcHJlc3NlZCcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgZXhwb3J0IHR5cGUgQ29udGVudFR5cGVLZXlzID0ga2V5b2YgdHlwZW9mIG1pbWVUeXBlcztcbiAgZXhwb3J0IHR5cGUgQ29udGVudFR5cGUgPVxuICAgIHwgKHR5cGVvZiBtaW1lVHlwZXMpW0NvbnRlbnRUeXBlS2V5c11cbiAgICB8ICdtdWx0aXBhcnQvZm9ybS1kYXRhJztcbiAgdHlwZSBDb250ZW50VHlwZV8gPSBDb250ZW50VHlwZTtcblxuICAvKipcbiAgICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9CYXNpY3Nfb2ZfSFRUUC9NSU1FX3R5cGVzXG4gICAqL1xuICBleHBvcnQgdHlwZSBNZWRpYVR5cGUgPVxuICAgIHwgJ3RleHQnXG4gICAgfCAnaW1hZ2UnXG4gICAgfCAnYXVkaW8nXG4gICAgfCAnZm9udCdcbiAgICB8ICd2aWRlbydcbiAgICB8ICdhcHBsaWNhdGlvbidcbiAgICB8ICdtdWx0aXBhcnQnXG4gICAgfCAnbWVzc2FnZSdcbiAgICB8ICdtb2RlbCc7XG5cbiAgZXhwb3J0IGNvbnN0IE1lZGlhVHlwZUFsbEFyciA9IFtcbiAgICAndGV4dCcsXG4gICAgJ2ltYWdlJyxcbiAgICAnYXVkaW8nLFxuICAgICd2aWRlbycsXG4gICAgJ2ZvbnQnLFxuICAgICdhcHBsaWNhdGlvbicsXG4gICAgJ211bHRpcGFydCcsXG4gICAgJ21lc3NhZ2UnLFxuICAgICdtb2RlbCcsXG4gIF0gYXMgTWVkaWFUeXBlW107XG5cbiAgZXhwb3J0IHR5cGUgTWltZVR5cGUgPSBrZXlvZiB0eXBlb2YgbWltZVR5cGVzO1xuICBleHBvcnQgY29uc3QgTWltZVR5cGVzT2JqID0gbWltZVR5cGVzO1xuXG5cblxuICBleHBvcnQgaW50ZXJmYWNlIE1hbmlmZXN0SWNvbiB7XG4gICAgc3JjOiBzdHJpbmc7IC8vIFwiYXNzZXRzL2ljb25zL2ljb24tOTZ4OTYucG5nXCIsXG4gICAgc2l6ZXM6IHN0cmluZzsgLy8gXCI5Nng5NlwiLFxuICAgIHR5cGU6IHN0cmluZzsgLy8gXCJpbWFnZS9wbmdcIixcbiAgICBwdXJwb3NlOiBzdHJpbmc7IC8vIFwibWFza2FibGUgYW55XCJcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgUHdhTWFuaWZlc3Qge1xuICAgIG5hbWU6IHN0cmluZzsgLy8gIFwiYXBwXCIsXG4gICAgc2hvcnRfbmFtZTogc3RyaW5nOyAvLyAgXCJhcHBcIixcbiAgICB0aGVtZV9jb2xvcjogc3RyaW5nOyAvLyBcIiMxOTc2ZDJcIixcbiAgICBiYWNrZ3JvdW5kX2NvbG9yOiBzdHJpbmc7IC8vICBcIiNmYWZhZmFcIixcbiAgICBkaXNwbGF5OiAnc3RhbmRhbG9uZSc7XG4gICAgc2NvcGU6IHN0cmluZzsgLy8gXCIuL1wiLFxuICAgIHN0YXJ0X3VybDogc3RyaW5nOyAvLyAgXCJzdGFydF91cmxcIjogXCIuL1wiLCA9PiBcInN0YXJ0X3VybFwiIFwiaHR0cHM6Ly9kYXJla2Y3Ny5naXRodWIuaW8vYnM0LWJyZWFrcG9pbnQvXCJcbiAgICBpY29uczogTWFuaWZlc3RJY29uW107XG4gIH1cblxuXG5cbiAgZXhwb3J0IGludGVyZmFjZSBWU0NvZGVTZXR0aW5ncyB7XG4gICAgJ2ZpbGVzLmV4Y2x1ZGUnOiB7IFtmaWxlczogc3RyaW5nXTogYm9vbGVhbiB9O1xuICAgICd3b3JrYmVuY2guY29sb3JUaGVtZSc6ICdEZWZhdWx0IExpZ2h0KycgfCAnS2ltYmllIERhcmsnO1xuICAgICd3b3JrYmVuY2guY29sb3JDdXN0b21pemF0aW9ucyc6IHtcbiAgICAgICdhY3Rpdml0eUJhci5iYWNrZ3JvdW5kJz86IHN0cmluZztcbiAgICAgICdhY3Rpdml0eUJhci5mb3JlZ3JvdW5kJz86IHN0cmluZztcbiAgICAgICdzdGF0dXNCYXIuYmFja2dyb3VuZCc/OiBzdHJpbmc7XG4gICAgfTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGV4cG9ydCBpbnRlcmZhY2UgUG9zaXRpb24ge1xuICAgIHg6IG51bWJlcjtcbiAgICB5OiBudW1iZXI7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBleHBvcnQgaW50ZXJmYWNlIFNpemUge1xuICAgIHc6IG51bWJlcjtcbiAgICBoOiBudW1iZXI7XG4gIH1cblxuXG5cbiAgaW50ZXJmYWNlIEdsb2JhbE5wbURlcGVuZGVuY3kge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBpbnN0YWxsTmFtZT86IHN0cmluZztcbiAgICB2ZXJzaW9uPzogc3RyaW5nIHwgbnVtYmVyO1xuICB9XG5cbiAgaW50ZXJmYWNlIEdsb2JhbENvbW1hbmRMaW5lUHJvZ3JhbURlcGVuZGVuY3kge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB3ZWJzaXRlOiBzdHJpbmc7XG4gICAgdmVyc2lvbj86IHN0cmluZztcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIEdsb2JhbERlcGVuZGVuY2llcyB7XG4gICAgbnBtPzogR2xvYmFsTnBtRGVwZW5kZW5jeVtdO1xuICAgIHByb2dyYW1zPzogR2xvYmFsQ29tbWFuZExpbmVQcm9ncmFtRGVwZW5kZW5jeVtdO1xuICB9XG5cblxuXG4gIGludGVyZmFjZSBBbmd1bGFyQ29tcGlsZXJPcHRpb25zIHtcbiAgICBmdWxsVGVtcGxhdGVUeXBlQ2hlY2s6IGJvb2xlYW47XG4gICAgc3RyaWN0SW5qZWN0aW9uUGFyYW1ldGVyczogYm9vbGVhbjtcbiAgICBjb21waWxhdGlvbk1vZGU6IHN0cmluZztcbiAgICBwcmVzZXJ2ZVN5bWxpbmtzOiBib29sZWFuO1xuICAgIGVuYWJsZUl2eTogYm9vbGVhbjtcbiAgfVxuXG4gIGludGVyZmFjZSBDb21waWxlck9wdGlvbnMge1xuICAgIGJhc2VVcmw6IHN0cmluZztcbiAgICBvdXREaXI6IHN0cmluZztcbiAgICBzb3VyY2VNYXA6IGJvb2xlYW47XG4gICAgZGVjbGFyYXRpb246IGJvb2xlYW47XG4gICAgc3RyaWN0TnVsbENoZWNrczogYm9vbGVhbjtcbiAgICBkb3dubGV2ZWxJdGVyYXRpb246IGJvb2xlYW47XG4gICAgZXhwZXJpbWVudGFsRGVjb3JhdG9yczogYm9vbGVhbjtcbiAgICBlbWl0RGVjb3JhdG9yTWV0YWRhdGE6IGJvb2xlYW47XG4gICAgZXNNb2R1bGVJbnRlcm9wOiBib29sZWFuO1xuICAgIG1vZHVsZTogc3RyaW5nO1xuICAgIG1vZHVsZVJlc29sdXRpb246IHN0cmluZztcbiAgICBpbXBvcnRIZWxwZXJzOiBib29sZWFuO1xuICAgIHNraXBMaWJDaGVjazogYm9vbGVhbjtcbiAgICB0YXJnZXQ6IHN0cmluZztcbiAgICB0eXBlUm9vdHM6IHN0cmluZ1tdO1xuICAgIHR5cGVzOiBzdHJpbmdbXTtcbiAgICBsaWI6IHN0cmluZ1tdO1xuICAgIHBhdGhzOiB7IFtmdWxsUGFja2FnZU5hbWU6IHN0cmluZ106IHN0cmluZ1tdIH07XG4gICAgdXNlRGVmaW5lRm9yQ2xhc3NGaWVsZHM6IGJvb2xlYW47XG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBUc0NvbmZpZ0pzb24ge1xuICAgIGV4dGVuZHM6IHN0cmluZztcbiAgICBleGNsdWRlOiBzdHJpbmdbXTtcbiAgICBjb21waWxlT25TYXZlOiBib29sZWFuO1xuICAgIGNvbXBpbGVyT3B0aW9uczogQ29tcGlsZXJPcHRpb25zO1xuICAgIGFuZ3VsYXJDb21waWxlck9wdGlvbnM6IEFuZ3VsYXJDb21waWxlck9wdGlvbnM7XG4gIH1cblxuXG5cbiAgZXhwb3J0IGludGVyZmFjZSBGaXJlZGV2SnNvbiB7XG4gICAgdHlwZTogQ29yZU1vZGVscy5MaWJUeXBlO1xuICAgIHZlcnNpb24/OiBDb3JlTW9kZWxzLkZyYW1ld29ya1ZlcnNpb247XG4gICAgc21hcnRDb250YWluZXJCdWlsZFRhcmdldD86IHN0cmluZztcbiAgICBzbWFydD86IGJvb2xlYW47XG4gICAgbW9ub3JlcG8/OiBib29sZWFuO1xuICAgIGxpYlJlbGVhc2VPcHRpb25zOiB7XG4gICAgICBjbGlCdWlsZE9ic2N1cmU/OiBib29sZWFuO1xuICAgICAgY2xpQnVpbGRVZ2xpZnk/OiBib29sZWFuO1xuICAgICAgY2xpQnVpbGROb0R0cz86IGJvb2xlYW47XG4gICAgICBjbGlCdWlsZEluY2x1ZGVOb2RlTW9kdWxlcz86IGJvb2xlYW47XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBwcm9qZWN0IGlzIHRlbXBsYXRlIGZvciBvdGhlciBwcm9qZWN0XG4gICAgICovXG4gICAgaXNDb3JlUHJvamVjdDogYm9vbGVhbjtcbiAgICBzY3JpcHRzPzogeyBbc2NyaXB0IGluIHN0cmluZ106IHN0cmluZyB9O1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIGxpY2Vuc2U/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZT86IGJvb2xlYW47XG4gICAgYXV0aG9yPzogc3RyaW5nO1xuICAgIGhvbWVwYWdlPzogc3RyaW5nO1xuICAgIG92ZXJyaWRlZDoge1xuICAgICAgZGVwZW5kZW5jaWVzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG4gICAgfTtcbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtY29yZSBsaWIvY29yZS1tb2RlbHMudHMiXX0=
|
@@ -7,6 +7,13 @@ import { path } from './core-imports';
|
|
7
7
|
const BLOB_SUPPORTED_IN_SQLJS = false;
|
8
8
|
export var Utils;
|
9
9
|
(function (Utils) {
|
10
|
+
/**
|
11
|
+
* Example:
|
12
|
+
* new RegExp(escapeStringForRegEx('a.b.c'),'g') => /a\.b\.c/g
|
13
|
+
*/
|
14
|
+
Utils.escapeStringForRegEx = (stringForRegExp) => {
|
15
|
+
return stringForRegExp.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
|
16
|
+
};
|
10
17
|
let json;
|
11
18
|
(function (json) {
|
12
19
|
json.getAtrributies = (jsonDeepPath, // lodash path to property in json ex. deep.path.to.prop
|
@@ -360,4 +367,4 @@ export var Utils;
|
|
360
367
|
})(Utils || (Utils = {}));
|
361
368
|
;
|
362
369
|
({}); // @--end-of-file-for-module=tnp-core lib/utils.ts
|
363
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtY29yZS9wcm9qZWN0cy90bnAtY29yZS9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUF3QixNQUFNLE9BQU8sQ0FBQztBQUM3QyxPQUFPLEVBQUUsSUFBSSxFQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBR0wsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUM7QUFFdEMsTUFBTSxLQUFXLEtBQUssQ0E0Z0JyQjtBQTVnQkQsV0FBaUIsS0FBSztJQUtwQixJQUFpQixJQUFJLENBZ0hwQjtJQWhIRCxXQUFpQixJQUFJO1FBQ04sbUJBQWMsR0FBRyxDQUM1QixZQUFvQixFQUFFLHdEQUF3RDtRQUM5RSxXQUFtQixFQUNGLEVBQUU7WUFDbkIsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV0QyxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDeEQsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUNuQixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2IsQ0FBQztnQkFDRCxNQUFNLElBQUksR0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDckMsSUFDRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDM0MsQ0FBQyxJQUFJLENB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QyxTQUEwQjtZQUVqRCxPQUFPLFFBQVEsQ0FDYixTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FHekMsQ0FBQztRQUNKLENBQUM7UUFQZSxZQUFRLFdBT3ZCLENBQUE7SUFFSCxDQUFDLEVBaEJnQixHQUFHLEdBQUgsU0FBRyxLQUFILFNBQUcsUUFnQm5CO0FBQ0gsQ0FBQyxFQTVnQmdCLEtBQUssS0FBTCxLQUFLLFFBNGdCckI7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtEQUFrRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBDb3JlTW9kZWxzIH0gZnJvbSAnLi9jb3JlLW1vZGVscyc7XG5pbXBvcnQgYXhpb3MsIHsgQXhpb3NSZXNwb25zZSB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IHBhdGgsIF8gfSBmcm9tICcuL2NvcmUtaW1wb3J0cyc7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnLi9pbmRleCc7XG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5jb25zdCBCTE9CX1NVUFBPUlRFRF9JTl9TUUxKUyA9IGZhbHNlO1xuXG5leHBvcnQgbmFtZXNwYWNlIFV0aWxzIHtcbiAgaW50ZXJmYWNlIEF0dHJKc29uY1Byb3Age1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZT86IGFueTtcbiAgfVxuICBleHBvcnQgbmFtZXNwYWNlIGpzb24ge1xuICAgIGV4cG9ydCBjb25zdCBnZXRBdHJyaWJ1dGllcyA9IChcbiAgICAgIGpzb25EZWVwUGF0aDogc3RyaW5nLCAvLyBsb2Rhc2ggcGF0aCB0byBwcm9wZXJ0eSBpbiBqc29uIGV4LiBkZWVwLnBhdGgudG8ucHJvcFxuICAgICAgZmlsZUNvbnRlbnQ6IHN0cmluZywgLy8ganNvbmMgb3IganNvbjUgLSBqc29uIHdpdGggY29tbWVudHNcbiAgICApOiBBdHRySnNvbmNQcm9wW10gPT4ge1xuICAgICAgY29uc3QgbGluZXMgPSBmaWxlQ29udGVudC5zcGxpdCgnXFxuJyk7XG5cbiAgICAgIGNvbnN0IHBhdGhQYXJ0cyA9IGpzb25EZWVwUGF0aC5zcGxpdCgnLicpLnJlZHVjZSgoYSwgYikgPT4ge1xuICAgICAgICBpZiAoYS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gW2JdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxhc3Q6IHN0cmluZyA9IGFbYS5sZW5ndGggLSAxXTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIChsYXN0LnN0YXJ0c1dpdGgoYFsnYCkgJiYgYi5lbmRzV2l0aChgJ11gKSkgfHxcbiAgICAgICAgICAobGFzdC5zdGFydHNXaXRoKGBbXCJgKSAmJiBiLmVuZHNXaXRoKGBcIl1gKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgYVthLmxlbmd0aCAtIDFdID0gW2xhc3QsIGJdLmpvaW4oJy4nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhLnB1c2goYik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGE7XG4gICAgICB9LCBbXSk7XG5cblxuICAgICAgY29uc3Qga2V5TmFtZSA9IHBhdGhQYXJ0cy5wb3AoKSEucmVwbGFjZSgvXlxcW1wiKC4rKVwiXFxdJC8sICckMScpO1xuICAgICAgbGV0IGN1cnJlbnRQYXRoID0gJyc7XG4gICAgICBsZXQgYXR0cmlidXRlczogQXR0ckpzb25jUHJvcFtdID0gW107XG4gICAgICBsZXQgY29sbGVjdGVkQ29tbWVudHM6IHN0cmluZ1tdID0gW107XG5cbiAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgICBjb25zdCB0cmltbWVkTGluZSA9IGxpbmUudHJpbSgpO1xuXG4gICAgICAgIGlmICh0cmltbWVkTGluZS5zdGFydHNXaXRoKCcvLycpKSB7XG5cbiAgICAgICAgICBjb2xsZWN0ZWRDb21tZW50cy5wdXNoKHRyaW1tZWRMaW5lKTtcblxuXG4gICAgICAgIH0gZWxzZSBpZiAodHJpbW1lZExpbmUuc3RhcnRzV2l0aCgnXCInKSB8fCB0cmltbWVkTGluZS5zdGFydHNXaXRoKFwiJ1wiKSkge1xuXG4gICAgICAgICAgY29uc3QgbWF0Y2ggPSB0cmltbWVkTGluZS5tYXRjaCgvW1wiJ10oW15cIiddKylbXCInXVxccyo6Lyk7XG5cbiAgICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IG1hdGNoWzFdO1xuICAgICAgICAgICAgY3VycmVudFBhdGggPSBjdXJyZW50UGF0aFxuICAgICAgICAgICAgICA/IGAke2N1cnJlbnRQYXRofS4ke2tleS5pbmNsdWRlcygnLicpID8gYFsnJHtrZXl9J11gIDoga2V5fWBcbiAgICAgICAgICAgICAgOiBrZXk7XG5cblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAoY3VycmVudFBhdGguZW5kc1dpdGgoa2V5TmFtZSkgJiZcbiAgICAgICAgICAgICAgICAhY3VycmVudFBhdGguZW5kc1dpdGgoJy8nICsga2V5TmFtZSkpIHx8XG4gICAgICAgICAgICAgIGN1cnJlbnRQYXRoLmVuZHNXaXRoKGBbJyR7a2V5TmFtZX0nXWApXG4gICAgICAgICAgICApIHtcblxuXG5cblxuXG4gICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBleHRyYWN0QXR0cmlidXRlc0Zyb21Db21tZW50cyhjb2xsZWN0ZWRDb21tZW50cyk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIGNvbGxlY3RlZENvbW1lbnRzID0gW107XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhdHRyaWJ1dGVzO1xuICAgIH07XG5cbiAgICBjb25zdCBleHRyYWN0QXR0cmlidXRlc0Zyb21Db21tZW50cyA9IChcbiAgICAgIGNvbW1lbnRzOiBzdHJpbmdbXSxcbiAgICApOiBBdHRySnNvbmNQcm9wW10gPT4ge1xuICAgICAgY29uc3QgYXR0cmlidXRlczogQXR0ckpzb25jUHJvcFtdID0gW107XG4gICAgICBjb25zdCBhdHRyUmVnZXggPSAvQChcXHcrKSg/Olxccyo9XFxzKihbXlxcc0BdKykpPy9nO1xuXG4gICAgICBmb3IgKGNvbnN0IGNvbW1lbnQgb2YgY29tbWVudHMpIHtcbiAgICAgICAgbGV0IG1hdGNoO1xuICAgICAgICB3aGlsZSAoKG1hdGNoID0gYXR0clJlZ2V4LmV4ZWMoY29tbWVudCkpICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgWywgbmFtZSwgdmFsdWVdID0gbWF0Y2g7XG5cbiAgICAgICAgICBjb25zdCBleGlzdGluZ0F0dHJpYnV0ZSA9IGF0dHJpYnV0ZXMuZmluZChcbiAgICAgICAgICAgIGF0dHIgPT4gYXR0ci5uYW1lID09PSBgQCR7bmFtZX1gLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoZXhpc3RpbmdBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShleGlzdGluZ0F0dHJpYnV0ZS52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBleGlzdGluZ0F0dHJpYnV0ZS52YWx1ZS5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBleGlzdGluZ0F0dHJpYnV0ZS52YWx1ZSA9IFtleGlzdGluZ0F0dHJpYnV0ZS52YWx1ZSwgdmFsdWVdO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZXMucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IGBAJHtuYW1lfWAsXG4gICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSA/IHZhbHVlIDogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG5cbiAgICAgIGF0dHJpYnV0ZXMuZm9yRWFjaChhdHRyID0+IHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYXR0ci52YWx1ZSkgJiYgYXR0ci52YWx1ZS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICBhdHRyLnZhbHVlID0gYXR0ci52YWx1ZVswXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBhdHRyaWJ1dGVzO1xuICAgIH07XG4gIH1cblxuXG4gIGV4cG9ydCBlbnVtIERiQmluYXJ5Rm9ybWF0RW51bSB7XG4gICAgQmxvYiA9ICdCbG9iJyxcbiAgICBGaWxlID0gJ0ZpbGUnLFxuICAgIHN0cmluZyA9ICdzdHJpbmcnLFxuLyogKi9cbi8qICovXG4gIFxuICB9XG5cbiAgZXhwb3J0IHR5cGUgRGJCaW5hcnlGb3JtYXRGb3JCcm93c2VyID0gQmxvYiB8IEZpbGUgfCBzdHJpbmc7XG4vKiAqL1xuLyogKi9cbiAgXG5cbiAgLyoqXG4gICAqIEJpbmFyeSBmb3JtYXQgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGRhdGFiYXNlXG4gICAqXG4gICAqIGZvciBub2RlanMgPT4gQnVmZmVyXG4gICAqIGZvciBzcWwuanMgPT4gc3RyaW5nIChzaG91bGIgYmUgYmxvYiAtIGJ1dCBub3Qgc3VwcG9ydGVkKVxuICAgKlxuICAgKi9cbiAgZXhwb3J0IHR5cGUgRGJCaW5hcnlGb3JtYXQgPVxuICAgIHwgRGJCaW5hcnlGb3JtYXRGb3JCcm93c2VyXG4vKiAqL1xuLyogKi9cbiAgXG5cbiAgZXhwb3J0IG5hbWVzcGFjZSBiaW5hcnkge1xuXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIGZvciBCUk9XU0VSIE9OTFlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBidWZmZXJcbiAgICAgKiBAcGFyYW0gY29udGVudFR5cGVcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcnJheUJ1ZmZlclRvQmxvYihcbiAgICAgIGJ1ZmZlcjogQXJyYXlCdWZmZXIsXG4gICAgICBjb250ZW50VHlwZTogQ29yZU1vZGVscy5Db250ZW50VHlwZSxcbiAgICApOiBQcm9taXNlPEJsb2I+IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHJldHVybiBuZXcgQmxvYihbYnVmZmVyXSwgeyB0eXBlOiBjb250ZW50VHlwZSB9KTtcbiAgICB9XG5cblxuXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIGZvciBCUk9XU0VSIE9OTFlcbiAgICAgKiBAcGFyYW0gYmxvYlxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJsb2JUb0FycmF5QnVmZmVyKGJsb2I6IEJsb2IpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XG4gICAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVuZCcsICgpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHJlYWRlci5yZXN1bHQgYXMgYW55KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHJlamVjdCk7IC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGJsb2IpO1xuICAgICAgfSk7XG4gICAgfVxuXG5cblxuICAgIC8qKlxuICAgICAqIGl0IGlzIHJldmVycyB0byBiYXNlNjR0b0Jsb2JcbiAgICAgKiBAcGFyYW0gYmxvYlxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGJsb2JUb0Jhc2U2NChibG9iOiBCbG9iKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlLCBfKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiByZXNvbHZlKHJlYWRlci5yZXN1bHQpOyAvLyBAdHMtaWdub3JlXG4gICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGJsb2IpO1xuICAgICAgfSk7XG4gICAgfVxuXG5cblxuICAgIC8qKlxuICAgICAqIGl0IGlzIHJldmVycyB0byBibG9iVG9CYXNlNjQoKVxuICAgICAqIEBwYXJhbSBiYXNlNjREYXRhXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gYmFzZTY0dG9CbG9iKFxuICAgICAgYmFzZTY0RGF0YTogc3RyaW5nLFxuICAgICAgY29udGVudFR5cGVPdmVycmlkZT86IENvcmVNb2RlbHMuQ29udGVudFR5cGUsXG4gICAgKTogUHJvbWlzZTxCbG9iPiB7XG4gICAgICBsZXQgY29udGVudF90eXBlOiBDb3JlTW9kZWxzLkNvbnRlbnRUeXBlID0gdm9pZCAwIGFzIGFueTtcbiAgICAgIGxldCBmaWxlX2Jhc2U2NDogc3RyaW5nID0gdm9pZCAwIGFzIGFueTtcbiAgICAgIGlmICghY29udGVudFR5cGVPdmVycmlkZSkge1xuICAgICAgICBjb25zdCBtID0gL15kYXRhOiguKz8pO2Jhc2U2NCwoLispJC8uZXhlYyhiYXNlNjREYXRhKTtcbiAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYFtmaXJlZGV2LWZyYW1ld29ya11bYmFzZTY0dG9CbG9iXSBOb3QgYSBiYXNlNjQgYmxvYiBbJHtiYXNlNjREYXRhfV1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgW19fLCBjb250ZW50dHlwZSwgZmlsZWJhc2U2NF0gPSBtO1xuICAgICAgICBjb250ZW50X3R5cGUgPSBjb250ZW50dHlwZSBhcyBhbnk7XG4gICAgICAgIGZpbGVfYmFzZTY0ID0gZmlsZWJhc2U2NDtcbiAgICAgIH1cbiAgICAgIGNvbnRlbnRfdHlwZSA9IChcbiAgICAgICAgY29udGVudFR5cGVPdmVycmlkZSA/IGNvbnRlbnRUeXBlT3ZlcnJpZGUgOiBjb250ZW50X3R5cGUgfHwgJydcbiAgICAgICkgYXMgYW55O1xuICAgICAgYmFzZTY0RGF0YSA9IGNvbnRlbnRUeXBlT3ZlcnJpZGUgPyBiYXNlNjREYXRhIDogZmlsZV9iYXNlNjQ7XG4gICAgICBjb25zdCBzbGljZVNpemUgPSAxMDI0O1xuICAgICAgY29uc3QgYnl0ZUNoYXJhY3RlcnMgPSBhdG9iKGJhc2U2NERhdGEpO1xuICAgICAgY29uc3QgYnl0ZXNMZW5ndGggPSBieXRlQ2hhcmFjdGVycy5sZW5ndGg7XG4gICAgICBjb25zdCBzbGljZXNDb3VudCA9IE1hdGguY2VpbChieXRlc0xlbmd0aCAvIHNsaWNlU2l6ZSk7XG4gICAgICBjb25zdCBieXRlQXJyYXlzID0gbmV3IEFycmF5KHNsaWNlc0NvdW50KTtcblxuICAgICAgZm9yIChsZXQgc2xpY2VJbmRleCA9IDA7IHNsaWNlSW5kZXggPCBzbGljZXNDb3VudDsgKytzbGljZUluZGV4KSB7XG4gICAgICAgIGNvbnN0IGJlZ2luID0gc2xpY2VJbmRleCAqIHNsaWNlU2l6ZTtcbiAgICAgICAgY29uc3QgZW5kID0gTWF0aC5taW4oYmVnaW4gKyBzbGljZVNpemUsIGJ5dGVzTGVuZ3RoKTtcblxuICAgICAgICBjb25zdCBieXRlcyA9IG5ldyBBcnJheShlbmQgLSBiZWdpbik7XG5cbiAgICAgICAgZm9yIChsZXQgb2Zmc2V0ID0gYmVnaW4sIGkgPSAwOyBvZmZzZXQgPCBlbmQ7ICsraSwgKytvZmZzZXQpIHtcbiAgICAgICAgICBieXRlc1tpXSA9IGJ5dGVDaGFyYWN0ZXJzW29mZnNldF0uY2hhckNvZGVBdCgwKTtcbiAgICAgICAgfVxuICAgICAgICBieXRlQXJyYXlzW3NsaWNlSW5kZXhdID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZXMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5ldyBCbG9iKGJ5dGVBcnJheXMsIHsgdHlwZTogY29udGVudF90eXBlIH0pO1xuICAgIH1cblxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBiYXNlNjR0b0RiQmluYXJ5Rm9ybWF0KFxuICAgICAgdGV4dDogc3RyaW5nLFxuICAgICk6IFByb21pc2U8RGJCaW5hcnlGb3JtYXQ+IHtcbiAgICAgIGxldCByZXN1bHQ6IERiQmluYXJ5Rm9ybWF0O1xuXG4gICAgICByZXN1bHQgPSBhd2FpdCAoYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoQkxPQl9TVVBQT1JURURfSU5fU1FMSlMpIHtcbiAgICAgICAgICBjb25zdCBibG9iID0gYXdhaXQgYmFzZTY0dG9CbG9iKHRleHQpO1xuICAgICAgICAgIHJldHVybiBibG9iO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0ZXh0IGFzIGFueTtcbiAgICAgIH0pKCk7XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBkYkJpbmFyeUZvcm1hdFRvQmFzZTY0KFxuICAgICAgYmluYXJ5Rm9ybWF0OiBEYkJpbmFyeUZvcm1hdCxcbiAgICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgbGV0IHJlc3VsdDogc3RyaW5nO1xuXG4gICAgICByZXN1bHQgPSBhd2FpdCAoYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoQkxPQl9TVVBQT1JURURfSU5fU1FMSlMpIHtcbiAgICAgICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgYmxvYlRvQmFzZTY0KGJpbmFyeUZvcm1hdCBhcyBhbnkpO1xuICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBiaW5hcnlGb3JtYXQgYXMgYW55O1xuICAgICAgfSkoKTtcblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXh0VG9EYkJpbmFyeUZvcm1hdChcbiAgICAgIHRleHQ6IHN0cmluZyxcbiAgICApOiBQcm9taXNlPERiQmluYXJ5Rm9ybWF0PiB7XG4gICAgICBsZXQgcmVzdWx0OiBEYkJpbmFyeUZvcm1hdDtcblxuICAgICAgcmVzdWx0ID0gYXdhaXQgKGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKEJMT0JfU1VQUE9SVEVEX0lOX1NRTEpTKSB7XG4gICAgICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IHRleHRUb0Jsb2IodGV4dCk7XG4gICAgICAgICAgcmV0dXJuIGJsb2I7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRleHQgYXMgYW55O1xuICAgICAgfSkoKTtcblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cblxuXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRiQmluYXJ5Rm9ybWF0VG9UZXh0KFxuICAgICAgYmluYXJ5Rm9ybWF0OiBEYkJpbmFyeUZvcm1hdCxcbiAgICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgbGV0IHJlc3VsdDogc3RyaW5nO1xuXG4gICAgICByZXN1bHQgPSBhd2FpdCAoYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoQkxPQl9TVVBQT1JURURfSU5fU1FMSlMpIHtcbiAgICAgICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgYmxvYlRvVGV4dChiaW5hcnlGb3JtYXQgYXMgYW55KTtcbiAgICAgICAgICByZXR1cm4gdGV4dDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYmluYXJ5Rm9ybWF0IGFzIGFueTtcbiAgICAgIH0pKCk7XG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5cbiAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gZmlsZVRvQmxvYihmaWxlOiBGaWxlKSB7XG4gICAgICByZXR1cm4gbmV3IEJsb2IoW25ldyBVaW50OEFycmF5KGF3YWl0IGZpbGUuYXJyYXlCdWZmZXIoKSldLCB7XG4gICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgIH0pO1xuICAgIH1cblxuXG5cbiAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gYmxvYlRvRmlsZShcbiAgICAgIGJsb2I6IEJsb2IsXG4gICAgICBuYW1lRm9yRmlsZTogc3RyaW5nID0gJ215LWZpbGUtbmFtZScsXG4gICAgKTogUHJvbWlzZTxGaWxlPiB7XG4gICAgICBpZiAoIW5hbWVGb3JGaWxlKSB7XG4gICAgICAgIG5hbWVGb3JGaWxlID0gJ25vbmFtZWZpbGUnICsgbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICB9XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gbmV3IEZpbGUoW2Jsb2JdLCBuYW1lRm9yRmlsZSk7XG4gICAgfVxuXG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXh0VG9CbG9iKFxuICAgICAgdGV4dDogc3RyaW5nLFxuICAgICAgdHlwZTogQ29yZU1vZGVscy5Db250ZW50VHlwZSA9ICd0ZXh0L3BsYWluJyxcbiAgICApOiBQcm9taXNlPEJsb2I+IHtcbiAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbdGV4dF0sIHsgdHlwZSB9KTtcbiAgICAgIHJldHVybiBibG9iO1xuICAgIH1cblxuXG5cbiAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gYmxvYlRvVGV4dChibG9iOiBCbG9iKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgIHJldHVybiBhd2FpdCBibG9iLnRleHQoKTtcbiAgICB9XG5cblxuXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRleHRUb0ZpbGUoXG4gICAgICB0ZXh0OiBzdHJpbmcsXG4gICAgICBmaWxlUmVsYXRpdmVQYXRoT3JOYW1lOiBzdHJpbmcsXG4gICAgKTogUHJvbWlzZTxGaWxlPiB7XG5cbiAgICAgIGNvbnN0IGV4dCA9IHBhdGguZXh0bmFtZShmaWxlUmVsYXRpdmVQYXRoT3JOYW1lKTtcblxuICAgICAgY29uc3QgdHlwZSA9IENvcmVNb2RlbHMubWltZVR5cGVzW2V4dF07XG4gICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW3RleHRdLCB7IHR5cGUgfSk7XG4gICAgICBjb25zdCBmaWxlID0gYXdhaXQgYmxvYlRvRmlsZShibG9iLCBmaWxlUmVsYXRpdmVQYXRoT3JOYW1lKTtcblxuXG5cblxuXG4gICAgICByZXR1cm4gZmlsZTtcbiAgICB9XG5cblxuXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpbGVUb1RleHQoZmlsZTogRmlsZSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICByZXR1cm4gYXdhaXQgZmlsZS50ZXh0KCk7XG4gICAgfVxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBqc29uVG9CbG9iKGpzb25PYmo6IG9iamVjdCk6IFByb21pc2U8QmxvYj4ge1xuICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtKU09OLnN0cmluZ2lmeShqc29uT2JqLCBudWxsLCAyKV0sIHtcbiAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gYmxvYjtcbiAgICB9XG5cblxuXG4gICAgLyoqXG4gICAgICogVE9ETyBOT1QgVEVTVEVEXG4gICAgICovXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJsb2JUb0pzb24oYmxvYjogQmxvYik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShhd2FpdCBibG9iLnRleHQoKSk7XG4gICAgfVxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRCbG9iRnJvbSh1cmw6IHN0cmluZyk6IFByb21pc2U8QmxvYj4ge1xuICAgICAgY29uc3QgcmVzcG9uc2U6IEF4aW9zUmVzcG9uc2U8QmxvYj4gPSBhd2FpdCBheGlvcyh7XG4gICAgICAgIHVybCxcbiAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH1cblxuICB9XG5cbiAgZXhwb3J0IG5hbWVzcGFjZSBjc3Mge1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGl4ZWxzQ3NzIHBpeGVscyBleC4gMTAwcHhcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIGV4cG9ydCBmdW5jdGlvbiBudW1WYWx1ZShwaXhlbHNDc3M6IHN0cmluZyB8IG51bWJlcik6IG51bWJlciB7XG5cbiAgICAgIHJldHVybiBwYXJzZUludChcbiAgICAgICAgcGl4ZWxzQ3NzPy50b1N0cmluZygpPy5yZXBsYWNlKCdweCcsICcnKSxcblxuXG4gICAgICApO1xuICAgIH1cblxuICB9XG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtY29yZSBsaWIvdXRpbHMudHMiXX0=
|
370
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtY29yZS9wcm9qZWN0cy90bnAtY29yZS9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUF3QixNQUFNLE9BQU8sQ0FBQztBQUM3QyxPQUFPLEVBQUUsSUFBSSxFQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBR0wsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUM7QUFFdEMsTUFBTSxLQUFXLEtBQUssQ0EyaEJyQjtBQTNoQkQsV0FBaUIsS0FBSztJQUNwQjs7O09BR0c7SUFDVSwwQkFBb0IsR0FBRyxDQUFDLGVBQXVCLEVBQUUsRUFBRTtRQUM5RCxPQUFPLGVBQWUsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDO0lBT0YsSUFBaUIsSUFBSSxDQWdIcEI7SUFoSEQsV0FBaUIsSUFBSTtRQUNOLG1CQUFjLEdBQUcsQ0FDNUIsWUFBb0IsRUFBRSx3REFBd0Q7UUFDOUUsV0FBbUIsRUFDRixFQUFFO1lBQ25CLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFdEMsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3hELElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDbkIsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNiLENBQUM7Z0JBQ0QsTUFBTSxJQUFJLEdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdB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QTtJQUVILENBQUMsRUF0V2dCLE1BQU0sR0FBTixZQUFNLEtBQU4sWUFBTSxRQXNXdEI7SUFJRCxJQUFpQixHQUFHLENBZ0JuQjtJQWhCRCxXQUFpQixHQUFHO1FBRWxCOzs7O1dBSUc7UUFDSCxTQUFnQixRQUFRLENBQUMsU0FBMEI7WUFFakQsT0FBTyxRQUFRLENBQ2IsU0FBUyxFQUFFLFFBQVEsRUFBRSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBR3pDLENBQUM7UUFDSixDQUFDO1FBUGUsWUFBUSxXQU92QixDQUFBO0lBRUgsQ0FBQyxFQWhCZ0IsR0FBRyxHQUFILFNBQUcsS0FBSCxTQUFHLFFBZ0JuQjtBQUVILENBQUMsRUEzaEJnQixLQUFLLEtBQUwsS0FBSyxRQTJoQnJCO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrREFBa0QiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgQ29yZU1vZGVscyB9IGZyb20gJy4vY29yZS1tb2RlbHMnO1xuaW1wb3J0IGF4aW9zLCB7IEF4aW9zUmVzcG9uc2UgfSBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBwYXRoLCBfIH0gZnJvbSAnLi9jb3JlLWltcG9ydHMnO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJy4vaW5kZXgnO1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuY29uc3QgQkxPQl9TVVBQT1JURURfSU5fU1FMSlMgPSBmYWxzZTtcblxuZXhwb3J0IG5hbWVzcGFjZSBVdGlscyB7XG4gIC8qKlxuICAgKiBFeGFtcGxlOlxuICAgKiBuZXcgUmVnRXhwKGVzY2FwZVN0cmluZ0ZvclJlZ0V4KCdhLmIuYycpLCdnJykgPT4gL2FcXC5iXFwuYy9nXG4gICAqL1xuICBleHBvcnQgY29uc3QgZXNjYXBlU3RyaW5nRm9yUmVnRXggPSAoc3RyaW5nRm9yUmVnRXhwOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gc3RyaW5nRm9yUmVnRXhwLnJlcGxhY2UoL1stXFwvXFxcXF4kKis/LigpfFtcXF17fV0vZywgJ1xcXFwkJicpO1xuICB9O1xuXG5cbiAgaW50ZXJmYWNlIEF0dHJKc29uY1Byb3Age1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZT86IGFueTtcbiAgfVxuICBleHBvcnQgbmFtZXNwYWNlIGpzb24ge1xuICAgIGV4cG9ydCBjb25zdCBnZXRBdHJyaWJ1dGllcyA9IChcbiAgICAgIGpzb25EZWVwUGF0aDogc3RyaW5nLCAvLyBsb2Rhc2ggcGF0aCB0byBwcm9wZXJ0eSBpbiBqc29uIGV4LiBkZWVwLnBhdGgudG8ucHJvcFxuICAgICAgZmlsZUNvbnRlbnQ6IHN0cmluZywgLy8ganNvbmMgb3IganNvbjUgLSBqc29uIHdpdGggY29tbWVudHNcbiAgICApOiBBdHRySnNvbmNQcm9wW10gPT4ge1xuICAgICAgY29uc3QgbGluZXMgPSBmaWxlQ29udGVudC5zcGxpdCgnXFxuJyk7XG5cbiAgICAgIGNvbnN0IHBhdGhQYXJ0cyA9IGpzb25EZWVwUGF0aC5zcGxpdCgnLicpLnJlZHVjZSgoYSwgYikgPT4ge1xuICAgICAgICBpZiAoYS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gW2JdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxhc3Q6IHN0cmluZyA9IGFbYS5sZW5ndGggLSAxXTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIChsYXN0LnN0YXJ0c1dpdGgoYFsnYCkgJiYgYi5lbmRzV2l0aChgJ11gKSkgfHxcbiAgICAgICAgICAobGFzdC5zdGFydHNXaXRoKGBbXCJgKSAmJiBiLmVuZHNXaXRoKGBcIl1gKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgYVthLmxlbmd0aCAtIDFdID0gW2xhc3QsIGJdLmpvaW4oJy4nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhLnB1c2goYik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGE7XG4gICAgICB9LCBbXSk7XG5cblxuICAgICAgY29uc3Qga2V5TmFtZSA9IHBhdGhQYXJ0cy5wb3AoKSEucmVwbGFjZSgvXlxcW1wiKC4rKVwiXFxdJC8sICckMScpO1xuICAgICAgbGV0IGN1cnJlbnRQYXRoID0gJyc7XG4gICAgICBsZXQgYXR0cmlidXRlczogQXR0ckpzb25jUHJvcFtdID0gW107XG4gICAgICBsZXQgY29sbGVjdGVkQ29tbWVudHM6IHN0cmluZ1tdID0gW107XG5cbiAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgICBjb25zdCB0cmltbWVkTGluZSA9IGxpbmUudHJpbSgpO1xuXG4gICAgICAgIGlmICh0cmltbWVkTGluZS5zdGFydHNXaXRoKCcvLycpKSB7XG5cbiAgICAgICAgICBjb2xsZWN0ZWRDb21tZW50cy5wdXNoKHRyaW1tZWRMaW5lKTtcblxuXG4gICAgICAgIH0gZWxzZSBpZiAodHJpbW1lZExpbmUuc3RhcnRzV2l0aCgnXCInKSB8fCB0cmltbWVkTGluZS5zdGFydHNXaXRoKFwiJ1wiKSkge1xuXG4gICAgICAgICAgY29uc3QgbWF0Y2ggPSB0cmltbWVkTGluZS5tYXRjaCgvW1wiJ10oW15cIiddKylbXCInXVxccyo6Lyk7XG5cbiAgICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IG1hdGNoWzFdO1xuICAgICAgICAgICAgY3VycmVudFBhdGggPSBjdXJyZW50UGF0aFxuICAgICAgICAgICAgICA/IGAke2N1cnJlbnRQYXRofS4ke2tleS5pbmNsdWRlcygnLicpID8gYFsnJHtrZXl9J11gIDoga2V5fWBcbiAgICAgICAgICAgICAgOiBrZXk7XG5cblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAoY3VycmVudFBhdGguZW5kc1dpdGgoa2V5TmFtZSkgJiZcbiAgICAgICAgICAgICAgICAhY3VycmVudFBhdGguZW5kc1dpdGgoJy8nICsga2V5TmFtZSkpIHx8XG4gICAgICAgICAgICAgIGN1cnJlbnRQYXRoLmVuZHNXaXRoKGBbJyR7a2V5TmFtZX0nXWApXG4gICAgICAgICAgICApIHtcblxuXG5cblxuXG4gICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBleHRyYWN0QXR0cmlidXRlc0Zyb21Db21tZW50cyhjb2xsZWN0ZWRDb21tZW50cyk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIGNvbGxlY3RlZENvbW1lbnRzID0gW107XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhdHRyaWJ1dGVzO1xuICAgIH07XG5cbiAgICBjb25zdCBleHRyYWN0QXR0cmlidXRlc0Zyb21Db21tZW50cyA9IChcbiAgICAgIGNvbW1lbnRzOiBzdHJpbmdbXSxcbiAgICApOiBBdHRySnNvbmNQcm9wW10gPT4ge1xuICAgICAgY29uc3QgYXR0cmlidXRlczogQXR0ckpzb25jUHJvcFtdID0gW107XG4gICAgICBjb25zdCBhdHRyUmVnZXggPSAvQChcXHcrKSg/Olxccyo9XFxzKihbXlxcc0BdKykpPy9nO1xuXG4gICAgICBmb3IgKGNvbnN0IGNvbW1lbnQgb2YgY29tbWVudHMpIHtcbiAgICAgICAgbGV0IG1hdGNoO1xuICAgICAgICB3aGlsZSAoKG1hdGNoID0gYXR0clJlZ2V4LmV4ZWMoY29tbWVudCkpICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgWywgbmFtZSwgdmFsdWVdID0gbWF0Y2g7XG5cbiAgICAgICAgICBjb25zdCBleGlzdGluZ0F0dHJpYnV0ZSA9IGF0dHJpYnV0ZXMuZmluZChcbiAgICAgICAgICAgIGF0dHIgPT4gYXR0ci5uYW1lID09PSBgQCR7bmFtZX1gLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoZXhpc3RpbmdBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShleGlzdGluZ0F0dHJpYnV0ZS52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBleGlzdGluZ0F0dHJpYnV0ZS52YWx1ZS5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBleGlzdGluZ0F0dHJpYnV0ZS52YWx1ZSA9IFtleGlzdGluZ0F0dHJpYnV0ZS52YWx1ZSwgdmFsdWVdO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZXMucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IGBAJHtuYW1lfWAsXG4gICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSA/IHZhbHVlIDogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG5cbiAgICAgIGF0dHJpYnV0ZXMuZm9yRWFjaChhdHRyID0+IHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYXR0ci52YWx1ZSkgJiYgYXR0ci52YWx1ZS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICBhdHRyLnZhbHVlID0gYXR0ci52YWx1ZVswXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBhdHRyaWJ1dGVzO1xuICAgIH07XG4gIH1cblxuXG5cblxuXG4gIGV4cG9ydCBlbnVtIERiQmluYXJ5Rm9ybWF0RW51bSB7XG4gICAgQmxvYiA9ICdCbG9iJyxcbiAgICBGaWxlID0gJ0ZpbGUnLFxuICAgIHN0cmluZyA9ICdzdHJpbmcnLFxuLyogKi9cbi8qICovXG4gIFxuICB9XG5cbiAgZXhwb3J0IHR5cGUgRGJCaW5hcnlGb3JtYXRGb3JCcm93c2VyID0gQmxvYiB8IEZpbGUgfCBzdHJpbmc7XG4vKiAqL1xuLyogKi9cbiAgXG5cbiAgLyoqXG4gICAqIEJpbmFyeSBmb3JtYXQgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGRhdGFiYXNlXG4gICAqXG4gICAqIGZvciBub2RlanMgPT4gQnVmZmVyXG4gICAqIGZvciBzcWwuanMgPT4gc3RyaW5nIChzaG91bGIgYmUgYmxvYiAtIGJ1dCBub3Qgc3VwcG9ydGVkKVxuICAgKlxuICAgKi9cbiAgZXhwb3J0IHR5cGUgRGJCaW5hcnlGb3JtYXQgPVxuICAgIHwgRGJCaW5hcnlGb3JtYXRGb3JCcm93c2VyXG4vKiAqL1xuLyogKi9cbiAgXG5cbiAgZXhwb3J0IG5hbWVzcGFjZSBiaW5hcnkge1xuXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIGZvciBCUk9XU0VSIE9OTFlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBidWZmZXJcbiAgICAgKiBAcGFyYW0gY29udGVudFR5cGVcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcnJheUJ1ZmZlclRvQmxvYihcbiAgICAgIGJ1ZmZlcjogQXJyYXlCdWZmZXIsXG4gICAgICBjb250ZW50VHlwZTogQ29yZU1vZGVscy5Db250ZW50VHlwZSxcbiAgICApOiBQcm9taXNlPEJsb2I+IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHJldHVybiBuZXcgQmxvYihbYnVmZmVyXSwgeyB0eXBlOiBjb250ZW50VHlwZSB9KTtcbiAgICB9XG5cblxuXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIGZvciBCUk9XU0VSIE9OTFlcbiAgICAgKiBAcGFyYW0gYmxvYlxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJsb2JUb0FycmF5QnVmZmVyKGJsb2I6IEJsb2IpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XG4gICAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVuZCcsICgpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHJlYWRlci5yZXN1bHQgYXMgYW55KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHJlamVjdCk7IC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGJsb2IpO1xuICAgICAgfSk7XG4gICAgfVxuXG5cblxuICAgIC8qKlxuICAgICAqIGl0IGlzIHJldmVycyB0byBiYXNlNjR0b0Jsb2JcbiAgICAgKiBAcGFyYW0gYmxvYlxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGJsb2JUb0Jhc2U2NChibG9iOiBCbG9iKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlLCBfKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiByZXNvbHZlKHJlYWRlci5yZXN1bHQpOyAvLyBAdHMtaWdub3JlXG4gICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGJsb2IpO1xuICAgICAgfSk7XG4gICAgfVxuXG5cblxuICAgIC8qKlxuICAgICAqIGl0IGlzIHJldmVycyB0byBibG9iVG9CYXNlNjQoKVxuICAgICAqIEBwYXJhbSBiYXNlNjREYXRhXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gYmFzZTY0dG9CbG9iKFxuICAgICAgYmFzZTY0RGF0YTogc3RyaW5nLFxuICAgICAgY29udGVudFR5cGVPdmVycmlkZT86IENvcmVNb2RlbHMuQ29udGVudFR5cGUsXG4gICAgKTogUHJvbWlzZTxCbG9iPiB7XG4gICAgICBsZXQgY29udGVudF90eXBlOiBDb3JlTW9kZWxzLkNvbnRlbnRUeXBlID0gdm9pZCAwIGFzIGFueTtcbiAgICAgIGxldCBmaWxlX2Jhc2U2NDogc3RyaW5nID0gdm9pZCAwIGFzIGFueTtcbiAgICAgIGlmICghY29udGVudFR5cGVPdmVycmlkZSkge1xuICAgICAgICBjb25zdCBtID0gL15kYXRhOiguKz8pO2Jhc2U2NCwoLispJC8uZXhlYyhiYXNlNjREYXRhKTtcbiAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYFtmaXJlZGV2LWZyYW1ld29ya11bYmFzZTY0dG9CbG9iXSBOb3QgYSBiYXNlNjQgYmxvYiBbJHtiYXNlNjREYXRhfV1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgW19fLCBjb250ZW50dHlwZSwgZmlsZWJhc2U2NF0gPSBtO1xuICAgICAgICBjb250ZW50X3R5cGUgPSBjb250ZW50dHlwZSBhcyBhbnk7XG4gICAgICAgIGZpbGVfYmFzZTY0ID0gZmlsZWJhc2U2NDtcbiAgICAgIH1cbiAgICAgIGNvbnRlbnRfdHlwZSA9IChcbiAgICAgICAgY29udGVudFR5cGVPdmVycmlkZSA/IGNvbnRlbnRUeXBlT3ZlcnJpZGUgOiBjb250ZW50X3R5cGUgfHwgJydcbiAgICAgICkgYXMgYW55O1xuICAgICAgYmFzZTY0RGF0YSA9IGNvbnRlbnRUeXBlT3ZlcnJpZGUgPyBiYXNlNjREYXRhIDogZmlsZV9iYXNlNjQ7XG4gICAgICBjb25zdCBzbGljZVNpemUgPSAxMDI0O1xuICAgICAgY29uc3QgYnl0ZUNoYXJhY3RlcnMgPSBhdG9iKGJhc2U2NERhdGEpO1xuICAgICAgY29uc3QgYnl0ZXNMZW5ndGggPSBieXRlQ2hhcmFjdGVycy5sZW5ndGg7XG4gICAgICBjb25zdCBzbGljZXNDb3VudCA9IE1hdGguY2VpbChieXRlc0xlbmd0aCAvIHNsaWNlU2l6ZSk7XG4gICAgICBjb25zdCBieXRlQXJyYXlzID0gbmV3IEFycmF5KHNsaWNlc0NvdW50KTtcblxuICAgICAgZm9yIChsZXQgc2xpY2VJbmRleCA9IDA7IHNsaWNlSW5kZXggPCBzbGljZXNDb3VudDsgKytzbGljZUluZGV4KSB7XG4gICAgICAgIGNvbnN0IGJlZ2luID0gc2xpY2VJbmRleCAqIHNsaWNlU2l6ZTtcbiAgICAgICAgY29uc3QgZW5kID0gTWF0aC5taW4oYmVnaW4gKyBzbGljZVNpemUsIGJ5dGVzTGVuZ3RoKTtcblxuICAgICAgICBjb25zdCBieXRlcyA9IG5ldyBBcnJheShlbmQgLSBiZWdpbik7XG5cbiAgICAgICAgZm9yIChsZXQgb2Zmc2V0ID0gYmVnaW4sIGkgPSAwOyBvZmZzZXQgPCBlbmQ7ICsraSwgKytvZmZzZXQpIHtcbiAgICAgICAgICBieXRlc1tpXSA9IGJ5dGVDaGFyYWN0ZXJzW29mZnNldF0uY2hhckNvZGVBdCgwKTtcbiAgICAgICAgfVxuICAgICAgICBieXRlQXJyYXlzW3NsaWNlSW5kZXhdID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZXMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5ldyBCbG9iKGJ5dGVBcnJheXMsIHsgdHlwZTogY29udGVudF90eXBlIH0pO1xuICAgIH1cblxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBiYXNlNjR0b0RiQmluYXJ5Rm9ybWF0KFxuICAgICAgdGV4dDogc3RyaW5nLFxuICAgICk6IFByb21pc2U8RGJCaW5hcnlGb3JtYXQ+IHtcbiAgICAgIGxldCByZXN1bHQ6IERiQmluYXJ5Rm9ybWF0O1xuXG4gICAgICByZXN1bHQgPSBhd2FpdCAoYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoQkxPQl9TVVBQT1JURURfSU5fU1FMSlMpIHtcbiAgICAgICAgICBjb25zdCBibG9iID0gYXdhaXQgYmFzZTY0dG9CbG9iKHRleHQpO1xuICAgICAgICAgIHJldHVybiBibG9iO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0ZXh0IGFzIGFueTtcbiAgICAgIH0pKCk7XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBkYkJpbmFyeUZvcm1hdFRvQmFzZTY0KFxuICAgICAgYmluYXJ5Rm9ybWF0OiBEYkJpbmFyeUZvcm1hdCxcbiAgICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgbGV0IHJlc3VsdDogc3RyaW5nO1xuXG4gICAgICByZXN1bHQgPSBhd2FpdCAoYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoQkxPQl9TVVBQT1JURURfSU5fU1FMSlMpIHtcbiAgICAgICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgYmxvYlRvQmFzZTY0KGJpbmFyeUZvcm1hdCBhcyBhbnkpO1xuICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBiaW5hcnlGb3JtYXQgYXMgYW55O1xuICAgICAgfSkoKTtcblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXh0VG9EYkJpbmFyeUZvcm1hdChcbiAgICAgIHRleHQ6IHN0cmluZyxcbiAgICApOiBQcm9taXNlPERiQmluYXJ5Rm9ybWF0PiB7XG4gICAgICBsZXQgcmVzdWx0OiBEYkJpbmFyeUZvcm1hdDtcblxuICAgICAgcmVzdWx0ID0gYXdhaXQgKGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKEJMT0JfU1VQUE9SVEVEX0lOX1NRTEpTKSB7XG4gICAgICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IHRleHRUb0Jsb2IodGV4dCk7XG4gICAgICAgICAgcmV0dXJuIGJsb2I7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRleHQgYXMgYW55O1xuICAgICAgfSkoKTtcblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cblxuXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRiQmluYXJ5Rm9ybWF0VG9UZXh0KFxuICAgICAgYmluYXJ5Rm9ybWF0OiBEYkJpbmFyeUZvcm1hdCxcbiAgICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgbGV0IHJlc3VsdDogc3RyaW5nO1xuXG4gICAgICByZXN1bHQgPSBhd2FpdCAoYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoQkxPQl9TVVBQT1JURURfSU5fU1FMSlMpIHtcbiAgICAgICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgYmxvYlRvVGV4dChiaW5hcnlGb3JtYXQgYXMgYW55KTtcbiAgICAgICAgICByZXR1cm4gdGV4dDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYmluYXJ5Rm9ybWF0IGFzIGFueTtcbiAgICAgIH0pKCk7XG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5cbiAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gZmlsZVRvQmxvYihmaWxlOiBGaWxlKSB7XG4gICAgICByZXR1cm4gbmV3IEJsb2IoW25ldyBVaW50OEFycmF5KGF3YWl0IGZpbGUuYXJyYXlCdWZmZXIoKSldLCB7XG4gICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgIH0pO1xuICAgIH1cblxuXG5cbiAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gYmxvYlRvRmlsZShcbiAgICAgIGJsb2I6IEJsb2IsXG4gICAgICBuYW1lRm9yRmlsZTogc3RyaW5nID0gJ215LWZpbGUtbmFtZScsXG4gICAgKTogUHJvbWlzZTxGaWxlPiB7XG4gICAgICBpZiAoIW5hbWVGb3JGaWxlKSB7XG4gICAgICAgIG5hbWVGb3JGaWxlID0gJ25vbmFtZWZpbGUnICsgbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICB9XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gbmV3IEZpbGUoW2Jsb2JdLCBuYW1lRm9yRmlsZSk7XG4gICAgfVxuXG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXh0VG9CbG9iKFxuICAgICAgdGV4dDogc3RyaW5nLFxuICAgICAgdHlwZTogQ29yZU1vZGVscy5Db250ZW50VHlwZSA9ICd0ZXh0L3BsYWluJyxcbiAgICApOiBQcm9taXNlPEJsb2I+IHtcbiAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbdGV4dF0sIHsgdHlwZSB9KTtcbiAgICAgIHJldHVybiBibG9iO1xuICAgIH1cblxuXG5cbiAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gYmxvYlRvVGV4dChibG9iOiBCbG9iKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgIHJldHVybiBhd2FpdCBibG9iLnRleHQoKTtcbiAgICB9XG5cblxuXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRleHRUb0ZpbGUoXG4gICAgICB0ZXh0OiBzdHJpbmcsXG4gICAgICBmaWxlUmVsYXRpdmVQYXRoT3JOYW1lOiBzdHJpbmcsXG4gICAgKTogUHJvbWlzZTxGaWxlPiB7XG5cbiAgICAgIGNvbnN0IGV4dCA9IHBhdGguZXh0bmFtZShmaWxlUmVsYXRpdmVQYXRoT3JOYW1lKTtcblxuICAgICAgY29uc3QgdHlwZSA9IENvcmVNb2RlbHMubWltZVR5cGVzW2V4dF07XG4gICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW3RleHRdLCB7IHR5cGUgfSk7XG4gICAgICBjb25zdCBmaWxlID0gYXdhaXQgYmxvYlRvRmlsZShibG9iLCBmaWxlUmVsYXRpdmVQYXRoT3JOYW1lKTtcblxuXG5cblxuXG4gICAgICByZXR1cm4gZmlsZTtcbiAgICB9XG5cblxuXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpbGVUb1RleHQoZmlsZTogRmlsZSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICByZXR1cm4gYXdhaXQgZmlsZS50ZXh0KCk7XG4gICAgfVxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBqc29uVG9CbG9iKGpzb25PYmo6IG9iamVjdCk6IFByb21pc2U8QmxvYj4ge1xuICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtKU09OLnN0cmluZ2lmeShqc29uT2JqLCBudWxsLCAyKV0sIHtcbiAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gYmxvYjtcbiAgICB9XG5cblxuXG4gICAgLyoqXG4gICAgICogVE9ETyBOT1QgVEVTVEVEXG4gICAgICovXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJsb2JUb0pzb24oYmxvYjogQmxvYik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShhd2FpdCBibG9iLnRleHQoKSk7XG4gICAgfVxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRCbG9iRnJvbSh1cmw6IHN0cmluZyk6IFByb21pc2U8QmxvYj4ge1xuICAgICAgY29uc3QgcmVzcG9uc2U6IEF4aW9zUmVzcG9uc2U8QmxvYj4gPSBhd2FpdCBheGlvcyh7XG4gICAgICAgIHVybCxcbiAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH1cblxuICB9XG5cblxuXG4gIGV4cG9ydCBuYW1lc3BhY2UgY3NzIHtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHBpeGVsc0NzcyBwaXhlbHMgZXguIDEwMHB4XG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gbnVtVmFsdWUocGl4ZWxzQ3NzOiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXIge1xuXG4gICAgICByZXR1cm4gcGFyc2VJbnQoXG4gICAgICAgIHBpeGVsc0Nzcz8udG9TdHJpbmcoKT8ucmVwbGFjZSgncHgnLCAnJyksXG5cblxuICAgICAgKTtcbiAgICB9XG5cbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtY29yZSBsaWIvdXRpbHMudHMiXX0=
|
@@ -605,6 +605,14 @@ var CoreModels;
|
|
605
605
|
'peerDependencies',
|
606
606
|
'resolutions',
|
607
607
|
];
|
608
|
+
CoreModels.NpmSpecialVersions = [
|
609
|
+
'latest',
|
610
|
+
'next',
|
611
|
+
'beta',
|
612
|
+
'alpha',
|
613
|
+
'rc',
|
614
|
+
'lts',
|
615
|
+
];
|
608
616
|
CoreModels.BaseProjectTypeArr = [
|
609
617
|
'typescript',
|
610
618
|
'angular',
|
@@ -3765,6 +3773,13 @@ class PROGRESS_DATA {
|
|
3765
3773
|
const BLOB_SUPPORTED_IN_SQLJS = false;
|
3766
3774
|
var Utils;
|
3767
3775
|
(function (Utils) {
|
3776
|
+
/**
|
3777
|
+
* Example:
|
3778
|
+
* new RegExp(escapeStringForRegEx('a.b.c'),'g') => /a\.b\.c/g
|
3779
|
+
*/
|
3780
|
+
Utils.escapeStringForRegEx = (stringForRegExp) => {
|
3781
|
+
return stringForRegExp.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
|
3782
|
+
};
|
3768
3783
|
let json;
|
3769
3784
|
(function (json) {
|
3770
3785
|
json.getAtrributies = (jsonDeepPath, // lodash path to property in json ex. deep.path.to.prop
|