lodash-walk-object 13.1.25 → 13.1.27
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/app.d.ts +1 -1
- package/app.js +4 -4
- package/browser/esm2020/lib/index.mjs +1 -1
- package/browser/esm2020/lib/models.mjs +1 -1
- package/browser/fesm2015/lodash-walk-object.mjs.map +1 -1
- package/browser/fesm2020/lodash-walk-object.mjs.map +1 -1
- package/client/esm2020/lib/index.mjs +1 -1
- package/client/esm2020/lib/models.mjs +1 -1
- package/client/fesm2015/lodash-walk-object.mjs.map +1 -1
- package/client/fesm2020/lodash-walk-object.mjs.map +1 -1
- package/index.js +1 -1
- package/lib/index.js +1 -1
- package/lib/models.js +1 -1
- package/package.json +3 -3
- package/package.json_tnp.json5 +2 -0
- package/tmp-environment.json +163 -163
- package/websql/esm2020/lib/index.mjs +1 -1
- package/websql/esm2020/lib/models.mjs +1 -1
- package/websql/fesm2015/lodash-walk-object.mjs.map +1 -1
- package/websql/fesm2020/lodash-walk-object.mjs.map +1 -1
package/tmp-environment.json
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"domain": "lodash-walk-object.example.domain.com",
|
|
3
3
|
"name": "local",
|
|
4
|
-
"isCoreProject": false,
|
|
5
4
|
"ip": "localhost",
|
|
6
5
|
"packageJSON": {
|
|
7
6
|
"tnp": {
|
|
@@ -16,12 +15,14 @@
|
|
|
16
15
|
"linkedFolders": []
|
|
17
16
|
},
|
|
18
17
|
"linkedProjects": [],
|
|
18
|
+
"smartContainerBuildTarget": "",
|
|
19
19
|
"linkedRepos": [],
|
|
20
20
|
"libReleaseOptions": {
|
|
21
21
|
"nodts": false,
|
|
22
22
|
"obscure": false,
|
|
23
23
|
"ugly": false
|
|
24
24
|
},
|
|
25
|
+
"smartContainerTarget": "",
|
|
25
26
|
"type": "isomorphic-lib",
|
|
26
27
|
"version": "v3",
|
|
27
28
|
"additionalNpmNames": [
|
|
@@ -45,7 +46,7 @@
|
|
|
45
46
|
},
|
|
46
47
|
"name": "lodash-walk-object",
|
|
47
48
|
"description": "Walk all properties deep in object with lodash help",
|
|
48
|
-
"version": "13.1.
|
|
49
|
+
"version": "13.1.27",
|
|
49
50
|
"scripts": {
|
|
50
51
|
"test": "mocha --require ts-node/register src/**/*.spec.ts",
|
|
51
52
|
"test:watch": "mocha --compilers ts-node/register src/**/*.spec.ts --watch"
|
|
@@ -65,40 +66,40 @@
|
|
|
65
66
|
},
|
|
66
67
|
"homepage": "https://github.com/darekf77/lodash-walk-object#readme",
|
|
67
68
|
"dependencies": {
|
|
68
|
-
"typescript-class-helpers": "~13.1.
|
|
69
|
+
"typescript-class-helpers": "~13.1.6"
|
|
69
70
|
},
|
|
70
71
|
"license": "MIT",
|
|
71
72
|
"private": false,
|
|
72
|
-
"lastBuildTagHash": "
|
|
73
|
+
"lastBuildTagHash": "bc09d1f3d95910958b73d1fe166cad9897efce99",
|
|
73
74
|
"devDependencies": {
|
|
74
75
|
"@angular-devkit/build-angular": "~13.3.9",
|
|
75
76
|
"@angular-devkit/core": "~13.3.9",
|
|
76
|
-
"@angular/cdk": "
|
|
77
|
+
"@angular/cdk": "^13.3.9",
|
|
77
78
|
"@angular/cli": "~13.3.9",
|
|
78
79
|
"@angular/common": "~13.3.0",
|
|
79
80
|
"@angular/compiler": "~13.3.0",
|
|
80
81
|
"@angular/compiler-cli": "~13.3.0",
|
|
81
82
|
"@angular/core": "~13.3.0",
|
|
82
|
-
"@angular/flex-layout": "
|
|
83
|
+
"@angular/flex-layout": "13.0.0-beta.38",
|
|
83
84
|
"@angular/forms": "~13.3.0",
|
|
84
|
-
"@angular/material": "
|
|
85
|
+
"@angular/material": "^13.3.9",
|
|
85
86
|
"@angular/platform-browser": "~13.3.0",
|
|
86
87
|
"@angular/platform-browser-dynamic": "~13.3.0",
|
|
87
88
|
"@angular/pwa": "~13.3.9",
|
|
88
89
|
"@angular/router": "~13.3.0",
|
|
89
90
|
"@angular/service-worker": "~13.3.11",
|
|
90
|
-
"@babel/cli": "7.18.6",
|
|
91
|
+
"@babel/cli": "^7.18.6",
|
|
91
92
|
"@iconify/icons-fa-solid": "1.2.2",
|
|
92
93
|
"@iconify/icons-mdi": "1.2.1",
|
|
93
94
|
"@mdi/js": "6.5.95",
|
|
94
|
-
"@ngrx/component-store": "
|
|
95
|
-
"@ngrx/data": "
|
|
96
|
-
"@ngrx/effects": "
|
|
97
|
-
"@ngrx/entity": "
|
|
98
|
-
"@ngrx/router-store": "
|
|
99
|
-
"@ngrx/schematics": "
|
|
100
|
-
"@ngrx/store": "
|
|
101
|
-
"@ngrx/store-devtools": "
|
|
95
|
+
"@ngrx/component-store": "^13.0.2",
|
|
96
|
+
"@ngrx/data": "^13.0.2",
|
|
97
|
+
"@ngrx/effects": "^13.0.2",
|
|
98
|
+
"@ngrx/entity": "^13.0.2",
|
|
99
|
+
"@ngrx/router-store": "^13.0.2",
|
|
100
|
+
"@ngrx/schematics": "^13.0.2",
|
|
101
|
+
"@ngrx/store": "^13.0.2",
|
|
102
|
+
"@ngrx/store-devtools": "^13.0.2",
|
|
102
103
|
"@ngx-formly/bootstrap": "6.0.0-next.8",
|
|
103
104
|
"@ngx-formly/core": "6.0.0-next.8",
|
|
104
105
|
"@ngx-formly/ionic": "6.0.0-next.8",
|
|
@@ -109,135 +110,134 @@
|
|
|
109
110
|
"@ngx-translate/core": "14.0.0",
|
|
110
111
|
"@ngx-translate/http-loader": "7.0.0",
|
|
111
112
|
"@swimlane/ngx-datatable": "20.0.0",
|
|
112
|
-
"@types/chai": "4.1.2",
|
|
113
|
+
"@types/chai": "^4.1.2",
|
|
113
114
|
"@types/chokidar": "2.1.3",
|
|
114
|
-
"@types/dateformat": "1.0.1",
|
|
115
|
-
"@types/diff": "3.2.2",
|
|
116
|
-
"@types/express": "4.11.0",
|
|
117
|
-
"@types/express-fileupload": "0.1.1",
|
|
118
|
-
"@types/fs-extra": "7.0.0",
|
|
119
|
-
"@types/glob": "5.0.35",
|
|
120
|
-
"@types/http-proxy": "1.16.0",
|
|
115
|
+
"@types/dateformat": "^1.0.1",
|
|
116
|
+
"@types/diff": "^3.2.2",
|
|
117
|
+
"@types/express": "^4.11.0",
|
|
118
|
+
"@types/express-fileupload": "^0.1.1",
|
|
119
|
+
"@types/fs-extra": "^7.0.0",
|
|
120
|
+
"@types/glob": "^5.0.35",
|
|
121
|
+
"@types/http-proxy": "^1.16.0",
|
|
121
122
|
"@types/http-proxy-middleware": "0.19.2",
|
|
122
|
-
"@types/inquirer": "7.3.1",
|
|
123
|
-
"@types/jasmine": "3.10.0",
|
|
124
|
-
"@types/json-stringify-safe": "5.0.0",
|
|
123
|
+
"@types/inquirer": "~7.3.1",
|
|
124
|
+
"@types/jasmine": "~3.10.0",
|
|
125
|
+
"@types/json-stringify-safe": "^5.0.0",
|
|
125
126
|
"@types/json5": "0.0.29",
|
|
126
|
-
"@types/lockfile": "1.0.0",
|
|
127
|
+
"@types/lockfile": "^1.0.0",
|
|
127
128
|
"@types/lodash": "4.14.92",
|
|
128
|
-
"@types/lowdb": "1.0.6",
|
|
129
|
-
"@types/mocha": "5.2.5",
|
|
130
|
-
"@types/node": "12.11.1",
|
|
131
|
-
"@types/node-notifier": "5.4.0",
|
|
132
|
-
"@types/oauth2orize": "1.8.0",
|
|
133
|
-
"@types/password-hash": "1.2.19",
|
|
134
|
-
"@types/progress": "2.0.3",
|
|
129
|
+
"@types/lowdb": "^1.0.6",
|
|
130
|
+
"@types/mocha": "^5.2.5",
|
|
131
|
+
"@types/node": "^12.11.1",
|
|
132
|
+
"@types/node-notifier": "^5.4.0",
|
|
133
|
+
"@types/oauth2orize": "^1.8.0",
|
|
134
|
+
"@types/password-hash": "^1.2.19",
|
|
135
|
+
"@types/progress": "^2.0.3",
|
|
135
136
|
"@types/q": "1.5.5",
|
|
136
|
-
"@types/rimraf": "2.0.2",
|
|
137
|
+
"@types/rimraf": "^2.0.2",
|
|
137
138
|
"@types/semver": "6.0.1",
|
|
138
|
-
"@types/systeminformation": "3.23.0",
|
|
139
|
-
"@types/vinyl": "2.0.2",
|
|
140
|
-
"@types/watch": "1.0.0",
|
|
141
|
-
"accepts": "1.3.4",
|
|
142
|
-
"any-project-cli": "~13.1.
|
|
143
|
-
"axios": "0.17.1",
|
|
144
|
-
"background-worker-process": "~13.1.
|
|
139
|
+
"@types/systeminformation": "^3.23.0",
|
|
140
|
+
"@types/vinyl": "^2.0.2",
|
|
141
|
+
"@types/watch": "^1.0.0",
|
|
142
|
+
"accepts": "^1.3.4",
|
|
143
|
+
"any-project-cli": "~13.1.13",
|
|
144
|
+
"axios": "^0.17.1",
|
|
145
|
+
"background-worker-process": "~13.1.28",
|
|
145
146
|
"bcryptjs": "2.4.3",
|
|
146
147
|
"better-sqlite3": "7.6.2",
|
|
147
|
-
"body-parser": "1.18.2",
|
|
148
|
-
"bootstrap": "5.1.3",
|
|
148
|
+
"body-parser": "^1.18.2",
|
|
149
|
+
"bootstrap": "^5.1.3",
|
|
149
150
|
"bs4-breakpoint": "13.0.32",
|
|
150
|
-
"buffer-shims": "1.0.0",
|
|
151
|
+
"buffer-shims": "^1.0.0",
|
|
151
152
|
"callsite-record": "4.1.3",
|
|
152
|
-
"chai": "4.2.0",
|
|
153
|
-
"chalk": "2.3.2",
|
|
154
|
-
"check-node-version": "3.2.0",
|
|
153
|
+
"chai": "^4.2.0",
|
|
154
|
+
"chalk": "^2.3.2",
|
|
155
|
+
"check-node-version": "^3.2.0",
|
|
155
156
|
"cheerio": "1.0.0-rc.3",
|
|
156
157
|
"chokidar": "3.5.1",
|
|
157
|
-
"circular-json": "0.5.1",
|
|
158
|
-
"command-exists": "1.2.2",
|
|
158
|
+
"circular-json": "^0.5.1",
|
|
159
|
+
"command-exists": "^1.2.2",
|
|
159
160
|
"compression": "1.7.4",
|
|
160
|
-
"concurrently": "3.5.1",
|
|
161
|
-
"content-type": "1.0.4",
|
|
162
|
-
"cookie-parser": "1.4.3",
|
|
163
|
-
"copy-paste": "1.3.0",
|
|
164
|
-
"cors": "2.8.4",
|
|
165
|
-
"cpr": "3.0.1",
|
|
166
|
-
"cross-spawn": "7.0.3",
|
|
167
|
-
"dateformat": "3.0.3",
|
|
161
|
+
"concurrently": "^3.5.1",
|
|
162
|
+
"content-type": "^1.0.4",
|
|
163
|
+
"cookie-parser": "^1.4.3",
|
|
164
|
+
"copy-paste": "~1.3.0",
|
|
165
|
+
"cors": "^2.8.4",
|
|
166
|
+
"cpr": "^3.0.1",
|
|
167
|
+
"cross-spawn": "~7.0.3",
|
|
168
|
+
"dateformat": "^3.0.3",
|
|
168
169
|
"detect-mocha": "0.1.0",
|
|
169
|
-
"diff": "3.2.0",
|
|
170
|
+
"diff": "^3.2.0",
|
|
170
171
|
"element-resize-detector": "1.1.15",
|
|
171
|
-
"enquirer": "2.3.0",
|
|
172
|
+
"enquirer": "^2.3.0",
|
|
172
173
|
"enum-values": "1.2.1",
|
|
173
|
-
"errorhandler": "1.5.0",
|
|
174
|
+
"errorhandler": "^1.5.0",
|
|
174
175
|
"eslint": "7.13.0",
|
|
175
176
|
"eslint-plugin-import": "2.22.1",
|
|
176
177
|
"eslint-plugin-jsdoc": "30.7.8",
|
|
177
178
|
"eslint-plugin-prefer-arrow": "1.2.2",
|
|
178
|
-
"express": "4.16.3",
|
|
179
|
-
"express-fileupload": "0.4.0",
|
|
179
|
+
"express": "^4.16.3",
|
|
180
|
+
"express-fileupload": "^0.4.0",
|
|
180
181
|
"express-session": "1.17.3",
|
|
181
|
-
"fbgraph": "1.4.1",
|
|
182
|
-
"file-loader": "1.1.5",
|
|
183
|
-
"firedev": "
|
|
184
|
-
"firedev-crud": "~13.1.
|
|
185
|
-
"firedev-
|
|
186
|
-
"firedev-
|
|
187
|
-
"firedev-
|
|
188
|
-
"firedev-typeorm": "~13.1.2",
|
|
182
|
+
"fbgraph": "^1.4.1",
|
|
183
|
+
"file-loader": "^1.1.5",
|
|
184
|
+
"firedev-crud": "~13.1.33",
|
|
185
|
+
"firedev-crud-deamon": "~13.1.23",
|
|
186
|
+
"firedev-ports": "~13.1.27",
|
|
187
|
+
"firedev-storage": "~13.1.18",
|
|
188
|
+
"firedev-typeorm": "~13.1.4",
|
|
189
189
|
"fkill": "6.1.0",
|
|
190
|
-
"font-awesome": "4.7.0",
|
|
190
|
+
"font-awesome": "^4.7.0",
|
|
191
191
|
"fs-extra": "8.1.0",
|
|
192
|
-
"fuzzy": "0.1.3",
|
|
193
|
-
"glob": "7.1.2",
|
|
194
|
-
"gulp": "3.9.1",
|
|
195
|
-
"hostile": "1.3.3",
|
|
196
|
-
"http-proxy": "1.16.2",
|
|
192
|
+
"fuzzy": "^0.1.3",
|
|
193
|
+
"glob": "^7.1.2",
|
|
194
|
+
"gulp": "^3.9.1",
|
|
195
|
+
"hostile": "~1.3.3",
|
|
196
|
+
"http-proxy": "^1.16.2",
|
|
197
197
|
"http-proxy-middleware": "0.19.1",
|
|
198
198
|
"http-server": "0.11.1",
|
|
199
|
-
"incremental-compiler": "~13.1.
|
|
200
|
-
"inquirer": "7.3.3",
|
|
201
|
-
"inquirer-autocomplete-prompt": "1.3.0",
|
|
202
|
-
"is-elevated": "3.0.0",
|
|
199
|
+
"incremental-compiler": "~13.1.5",
|
|
200
|
+
"inquirer": "~7.3.3",
|
|
201
|
+
"inquirer-autocomplete-prompt": "~1.3.0",
|
|
202
|
+
"is-elevated": "~3.0.0",
|
|
203
203
|
"isomorphic-region-loader": "~1.0.2",
|
|
204
|
-
"istanbul-instrumenter-loader": "2.0.0",
|
|
205
|
-
"jasmine-core": "4.0.0",
|
|
206
|
-
"jscodeshift": "0.6.3",
|
|
207
|
-
"json-stringify-safe": "5.0.1",
|
|
208
|
-
"json10": "~13.1.
|
|
209
|
-
"json10-writer": "~13.1.
|
|
210
|
-
"json5": "2.1.3",
|
|
211
|
-
"json5-writer": "0.2.0",
|
|
212
|
-
"karma": "6.3.0",
|
|
213
|
-
"karma-chrome-launcher": "3.1.0",
|
|
214
|
-
"karma-cli": "1.0.1",
|
|
215
|
-
"karma-coverage": "2.1.0",
|
|
216
|
-
"karma-jasmine": "4.0.0",
|
|
217
|
-
"karma-jasmine-html-reporter": "1.7.0",
|
|
218
|
-
"lnk": "1.0.1",
|
|
219
|
-
"lockfile": "1.0.4",
|
|
220
|
-
"lodash": "4.17.4",
|
|
221
|
-
"lodash-walk-object": "~13.1.
|
|
204
|
+
"istanbul-instrumenter-loader": "^2.0.0",
|
|
205
|
+
"jasmine-core": "~4.0.0",
|
|
206
|
+
"jscodeshift": "^0.6.3",
|
|
207
|
+
"json-stringify-safe": "^5.0.1",
|
|
208
|
+
"json10": "~13.1.26",
|
|
209
|
+
"json10-writer": "~13.1.24",
|
|
210
|
+
"json5": "~2.1.3",
|
|
211
|
+
"json5-writer": "~0.2.0",
|
|
212
|
+
"karma": "~6.3.0",
|
|
213
|
+
"karma-chrome-launcher": "~3.1.0",
|
|
214
|
+
"karma-cli": "~1.0.1",
|
|
215
|
+
"karma-coverage": "~2.1.0",
|
|
216
|
+
"karma-jasmine": "~4.0.0",
|
|
217
|
+
"karma-jasmine-html-reporter": "~1.7.0",
|
|
218
|
+
"lnk": "~1.0.1",
|
|
219
|
+
"lockfile": "^1.0.4",
|
|
220
|
+
"lodash": "^4.17.4",
|
|
221
|
+
"lodash-walk-object": "~13.1.26",
|
|
222
222
|
"lodash.get": ">= 4",
|
|
223
223
|
"lodash.isequal": ">= 4",
|
|
224
224
|
"lodash.merge": ">= 4",
|
|
225
225
|
"lodash.set": ">= 4",
|
|
226
|
-
"lowdb": "1.0.0",
|
|
227
|
-
"magic-renamer": "~13.1.
|
|
226
|
+
"lowdb": "^1.0.0",
|
|
227
|
+
"magic-renamer": "~13.1.15",
|
|
228
228
|
"material-design-icons": "3.0.1",
|
|
229
|
-
"method-override": "2.3.10",
|
|
230
|
-
"minimist": "1.2.0",
|
|
231
|
-
"mkdirp": "0.5.1",
|
|
232
|
-
"mocha": "5.2.0",
|
|
233
|
-
"moment": "2.22.2",
|
|
234
|
-
"morphi": "~13.1.
|
|
235
|
-
"ng-packagr": "13.0.0",
|
|
236
|
-
"ng-talkback": "~13.1.
|
|
237
|
-
"ng2-logger": "~13.1.
|
|
238
|
-
"ng2-rest": "~13.1.
|
|
239
|
-
"ng4-icons": "~13.1.
|
|
240
|
-
"ng4-modal": "~13.1.
|
|
229
|
+
"method-override": "^2.3.10",
|
|
230
|
+
"minimist": "^1.2.0",
|
|
231
|
+
"mkdirp": "^0.5.1",
|
|
232
|
+
"mocha": "^5.2.0",
|
|
233
|
+
"moment": "^2.22.2",
|
|
234
|
+
"morphi": "~13.1.6",
|
|
235
|
+
"ng-packagr": "^13.0.0",
|
|
236
|
+
"ng-talkback": "~13.1.17",
|
|
237
|
+
"ng2-logger": "~13.1.5",
|
|
238
|
+
"ng2-rest": "~13.1.4",
|
|
239
|
+
"ng4-icons": "~13.1.19",
|
|
240
|
+
"ng4-modal": "~13.1.21",
|
|
241
241
|
"ngx-bootstrap": "8.0.0",
|
|
242
242
|
"ngx-editor": "12.2.1",
|
|
243
243
|
"ngx-moment": "6.0.2",
|
|
@@ -245,67 +245,67 @@
|
|
|
245
245
|
"ngx-store": "3.1.1",
|
|
246
246
|
"ngx-toastr": "14.2.2",
|
|
247
247
|
"ngx-wig": "13.0.3",
|
|
248
|
-
"node-cli-tester": "~13.1.
|
|
248
|
+
"node-cli-tester": "~13.1.17",
|
|
249
249
|
"node-localstorage": "2.1.6",
|
|
250
|
-
"node-notifier": "6.0.0",
|
|
251
|
-
"nodemon": "1.14.11",
|
|
252
|
-
"npm-get-dependents": "1.0.1",
|
|
253
|
-
"npm-run": "4.1.2",
|
|
254
|
-
"omelette": "0.4.5",
|
|
250
|
+
"node-notifier": "^6.0.0",
|
|
251
|
+
"nodemon": "^1.14.11",
|
|
252
|
+
"npm-get-dependents": "^1.0.1",
|
|
253
|
+
"npm-run": "^4.1.2",
|
|
254
|
+
"omelette": "^0.4.5",
|
|
255
255
|
"open": "7.2.1",
|
|
256
256
|
"ora": "3.4.0",
|
|
257
|
-
"passport": "0.3.2",
|
|
258
|
-
"passport-http-bearer": "1.0.1",
|
|
259
|
-
"password-hash": "1.2.2",
|
|
257
|
+
"passport": "^0.3.2",
|
|
258
|
+
"passport-http-bearer": "^1.0.1",
|
|
259
|
+
"password-hash": "^1.2.2",
|
|
260
260
|
"portfinder": "1.0.21",
|
|
261
261
|
"prettier": "2.5.1",
|
|
262
|
-
"progress": "2.0.3",
|
|
263
|
-
"prompts": "0.1.8",
|
|
262
|
+
"progress": "^2.0.3",
|
|
263
|
+
"prompts": "^0.1.8",
|
|
264
264
|
"ps-list": "6.1.0",
|
|
265
|
-
"ps-node": "0.1.6",
|
|
266
|
-
"q": "1.5.1",
|
|
267
|
-
"randomcolor": "0.5.3",
|
|
268
|
-
"record-replay-req-res-scenario": "~13.1.
|
|
269
|
-
"reflect-metadata": "0.1.10",
|
|
270
|
-
"rimraf": "2.6.2",
|
|
265
|
+
"ps-node": "^0.1.6",
|
|
266
|
+
"q": "^1.5.1",
|
|
267
|
+
"randomcolor": "^0.5.3",
|
|
268
|
+
"record-replay-req-res-scenario": "~13.1.18",
|
|
269
|
+
"reflect-metadata": "^0.1.10",
|
|
270
|
+
"rimraf": "^2.6.2",
|
|
271
271
|
"rxjs": "~7.5.0",
|
|
272
272
|
"semver": "6.3.0",
|
|
273
|
-
"simple-git": "1.96.0",
|
|
274
|
-
"sloc": "0.2.0",
|
|
275
|
-
"socket.io": "2.4.1",
|
|
276
|
-
"sort-package-json": "1.11.0",
|
|
277
|
-
"sql.js": "1.8.0",
|
|
278
|
-
"static-columns": "~13.1.
|
|
279
|
-
"string-similarity": "4.0.2",
|
|
280
|
-
"sudo-block": "3.0.0",
|
|
281
|
-
"systeminformation": "3.45.7",
|
|
282
|
-
"task.js": "0.1.5",
|
|
283
|
-
"tnp-cli": "~13.1.
|
|
284
|
-
"tnp-config": "~13.1.
|
|
285
|
-
"tnp-core": "~13.1.
|
|
286
|
-
"tnp-db": "~13.1.
|
|
287
|
-
"tnp-helpers": "~13.1.
|
|
288
|
-
"tnp-models": "~13.1.
|
|
289
|
-
"tnp-ui": "~13.1.
|
|
290
|
-
"ts-debug": "1.3.0",
|
|
291
|
-
"ts-loader": "2.3.1",
|
|
292
|
-
"ts-node": "10.7.0",
|
|
293
|
-
"tslib": "
|
|
294
|
-
"typeorm": "
|
|
273
|
+
"simple-git": "^1.96.0",
|
|
274
|
+
"sloc": "^0.2.0",
|
|
275
|
+
"socket.io": "~2.4.1",
|
|
276
|
+
"sort-package-json": "^1.11.0",
|
|
277
|
+
"sql.js": "^1.8.0",
|
|
278
|
+
"static-columns": "~13.1.27",
|
|
279
|
+
"string-similarity": "~4.0.2",
|
|
280
|
+
"sudo-block": "~3.0.0",
|
|
281
|
+
"systeminformation": "^3.45.7",
|
|
282
|
+
"task.js": "^0.1.5",
|
|
283
|
+
"tnp-cli": "~13.1.31",
|
|
284
|
+
"tnp-config": "~13.1.46",
|
|
285
|
+
"tnp-core": "~13.1.30",
|
|
286
|
+
"tnp-db": "~13.1.3",
|
|
287
|
+
"tnp-helpers": "~13.1.4",
|
|
288
|
+
"tnp-models": "~13.1.4",
|
|
289
|
+
"tnp-ui": "~13.1.24",
|
|
290
|
+
"ts-debug": "^1.3.0",
|
|
291
|
+
"ts-loader": "^2.3.1",
|
|
292
|
+
"ts-node": "~10.7.0",
|
|
293
|
+
"tslib": "^2.3.0",
|
|
294
|
+
"typeorm": "^0.3.10",
|
|
295
295
|
"typescript": "~4.6.2",
|
|
296
|
-
"typescript-formatter": "
|
|
297
|
-
"underscore": "1.9.1",
|
|
298
|
-
"uuid": "8.3.2",
|
|
299
|
-
"validator": "9.2.0",
|
|
300
|
-
"vpn-split": "~13.1.
|
|
301
|
-
"watch": "1.0.2",
|
|
296
|
+
"typescript-formatter": "7.2.2",
|
|
297
|
+
"underscore": "^1.9.1",
|
|
298
|
+
"uuid": "^8.3.2",
|
|
299
|
+
"validator": "^9.2.0",
|
|
300
|
+
"vpn-split": "~13.1.22",
|
|
301
|
+
"watch": "~1.0.2",
|
|
302
302
|
"zone.js": "~0.11.4"
|
|
303
303
|
}
|
|
304
304
|
},
|
|
305
305
|
"build": {
|
|
306
|
-
"number":
|
|
307
|
-
"date": "2022-
|
|
308
|
-
"hash": "
|
|
306
|
+
"number": 224,
|
|
307
|
+
"date": "2022-12-04T21:33:35.000Z",
|
|
308
|
+
"hash": "acebd8b3380748955cbf1a7cffed75c1a6c82f81",
|
|
309
309
|
"options": {}
|
|
310
310
|
},
|
|
311
311
|
"currentProjectName": "lodash-walk-object",
|
|
@@ -313,7 +313,7 @@
|
|
|
313
313
|
"currentProjectLaunchConfiguration": "{\"version\":\"0.2.0\",\"configurations\":[{\"type\":\"node\",\"request\":\"launch\",\"name\":\"Launch Server standalone\",\"program\":\"${workspaceFolder}/run.js\",\"args\":[\"--ENVoverride=%7B%0A%20%20%20%20%22clientProjectName%22%3A%20%22lodash-walk-object%22%0A%7D\"],\"runtimeArgs\":[\"--nolazy\",\"-r\",\"ts-node/register\",\"--experimental-worker\"]},{\"name\":\"Debugger with ng serve\",\"type\":\"chrome\",\"request\":\"launch\",\"preLaunchTask\":\"Ng Serve\",\"postDebugTask\":\"terminateall\",\"sourceMaps\":true,\"webRoot\":\"${workspaceFolder}\",\"sourceMapPathOverrides\":{\"webpack:/*\":\"${webRoot}/*\",\"/./*\":\"${webRoot}/*\",\"/tmp-src/*\":\"${webRoot}/*\",\"/*\":\"*\",\"/./~/*\":\"${webRoot}/node_modules/*\"}},{\"type\":\"node\",\"request\":\"attach\",\"name\":\"Attach to global cli tool\",\"port\":9229,\"skipFiles\":[\"<node_internals>/**\"]}],\"compounds\":[{\"name\":\"Debug backend/frontend\",\"configurations\":[\"Launch Server standalone\",\"Debugger with ng serve\"]}]}",
|
|
314
314
|
"currentProjectTasksConfiguration": "{\"version\":\"2.0.0\",\"tasks\":[{\"label\":\"terminateall\",\"command\":\"echo ${input:terminate}\",\"type\":\"shell\",\"problemMatcher\":[]},{\"label\":\"Ng Serve\",\"type\":\"shell\",\"command\":\"tnp build\",\"isBackground\":true,\"presentation\":{\"reveal\":\"always\"},\"group\":{\"kind\":\"build\",\"isDefault\":true},\"problemMatcher\":{\"owner\":\"typescript\",\"source\":\"ts\",\"applyTo\":\"closedDocuments\",\"fileLocation\":[\"relative\",\"${cwd}\"],\"pattern\":\"$tsc\",\"background\":{\"activeOnStart\":true,\"beginsPattern\":{\"regexp\":\"(.*?)\"},\"endsPattern\":{\"regexp\":\"Compiled |Failed to compile.\"}}}}],\"inputs\":[{\"id\":\"terminate\",\"type\":\"command\",\"command\":\"workbench.action.tasks.terminate\",\"args\":\"terminateAll\"}]}",
|
|
315
315
|
"currentProjectType": "isomorphic-lib",
|
|
316
|
-
"currentFrameworkVersion": "13.1.
|
|
316
|
+
"currentFrameworkVersion": "13.1.108",
|
|
317
317
|
"currentProjectIsStrictSite": false,
|
|
318
318
|
"currentProjectIsDependencySite": false,
|
|
319
319
|
"currentProjectIsStatic": false,
|
|
@@ -351,4 +351,4 @@ export const walk = {
|
|
|
351
351
|
Object: Helpers.Walk.Object,
|
|
352
352
|
ObjectBy: Helpers.Walk.ObjectBy
|
|
353
353
|
};
|
|
354
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC9sb2Rhc2gtd2Fsay1vYmplY3QvcHJvamVjdHMvbG9kYXNoLXdhbGstb2JqZWN0L3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUd4RCxjQUFjLFVBQVUsQ0FBQztBQUV6QixTQUFTLFlBQVksQ0FBQyxHQUFlLEVBQUUsRUFBVSxFQUFFLFdBQW9CO0lBRXJFLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDakIsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2xCLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0QixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQTtRQUM5RCxDQUFDLENBQUMsQ0FBQztLQUNKO1NBQU0sSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBRTFCLE1BQU0sT0FBTyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRSxNQUFNLFFBQVEsR0FBaUIsRUFBRSxDQUFDO1FBQ2xDLEtBQUssTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNsRixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQTtnQkFDcEIsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO2FBQ3hHO1NBQ0Y7UUFDRCxJQUFJLFdBQVcsRUFBRTtZQUNmLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUNuRCxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ25CLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDM0IsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO2lCQUN2RzthQUNGO1NBQ0Y7UUFDRCxPQUFPLFFBQVEsQ0FBQztLQUNqQjtJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQVdELE1BQU0sT0FBTyxPQUFPO0lBRVgsTUFBTSxLQUFLLElBQUk7UUFDcEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLE9BQU87WUFDTCxNQUFNLENBQUMsSUFBWSxFQUFFLFFBQWtCLEVBQUUseUJBQXVEO2dCQUU5RixJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMseUJBQXlCLENBQUMsRUFBRTtvQkFDNUMseUJBQXlCLEdBQUcsRUFBRSxDQUFBO2lCQUMvQjtnQkFFQSx5QkFBbUQsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQTtnQkFFekYsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLHlCQUF5QixDQUFDLFdBQVcsQ0FBQyxFQUFFO29CQUN4RCx5QkFBeUIsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2lCQUMvQztnQkFFRCxJQUFJLEVBQ0YsUUFBUSxFQUNULEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSx5QkFBZ0MsQ0FBQyxDQUFBO2dCQUU5RSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFBO1lBQzVCLENBQUM7WUFDRCxRQUFRLENBQUMsUUFBZ0IsRUFBRSxTQUFpQixFQUFFLFFBQWtCLEVBQUUsT0FBcUM7Z0JBQ3JHLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDMUIsUUFBUSxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQyxtQkFBbUI7aUJBQzFGO2dCQUNELGFBQWE7Z0JBQ2IsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFBO2dCQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUE7WUFDbEQsQ0FBQztTQUNGLENBQUE7SUFDSCxDQUFDO0lBRU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFZLEVBQUUsU0FBaUIsRUFBRSxZQUFZLEdBQUcsS0FBSyxFQUFFLE9BQStCO1FBRWhILElBQUksRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvRCxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUV2QyxPQUFPLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDdkIsSUFBSSxXQUFXLEtBQUssRUFBRSxFQUFFO2dCQUN0QixZQUFZLEdBQUcsSUFBSSxDQUFDO2FBQ3JCO1lBRUQsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hCLGFBQWE7Z0JBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQzthQUMzQjtpQkFBTTtnQkFDTCxvRkFBb0Y7Z0JBQ3BGLGtDQUFrQztnQkFDbEMsSUFBSSxPQUFPLEVBQUU7b0JBQ1gsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQztpQkFDOUI7YUFDRjtZQUNELElBQUksT0FBTyxFQUFFO2dCQUNYLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBa0I7UUFDOUMsZ0RBQWdEO1FBQ2hELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsRSxnREFBZ0Q7UUFFaEQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMzRSxrREFBa0Q7UUFDbEQsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFO1lBQ2hGLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7U0FDNUI7UUFDRCxPQUFPO1lBQ0wsV0FBVyxFQUFFLFFBQVE7U0FDdEIsQ0FBQTtJQUNILENBQUM7SUFFTyxNQUFNLEtBQUssUUFBUTtRQUN6QixPQUFPO1lBQ0wsSUFBSSxJQUFJO2dCQUNOLE9BQU87b0JBQ0wsYUFBYTtvQkFDYixlQUFlLENBQUMsU0FBUyxFQUFFLFVBQVU7d0JBQ25DLE9BQU8sQ0FBQyxTQUFTOzZCQUNkLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDOzZCQUN2QixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQzs2QkFDbEIsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7NkJBQ2pCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQTtvQkFDdkIsQ0FBQztvQkFDRCxjQUFjLENBQUMsQ0FBUzt3QkFDdEIsSUFBSSxHQUFXLENBQUM7d0JBQ2hCLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTs0QkFDbkIsR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLEVBQUUsRUFBRSxDQUFDLENBQUE7eUJBQ25EOzZCQUFNOzRCQUNMLEdBQUcsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLHFDQUFxQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO3lCQUMzRDt3QkFDRCxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO29CQUM5QixDQUFDO2lCQUNGLENBQUE7WUFDSCxDQUFDO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUFFTyxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQU8sR0FBRyxFQUFFLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxVQUFrQjtRQUN6RSxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDaEIsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLDZCQUE2QixFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN2RSxVQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQywrQkFBK0IsRUFBRSxFQUFFLENBQUMsQ0FBQTtZQUNwRSxHQUFHLEdBQUcsQ0FDSixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDO21CQUNwQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7O29CQUVsRCxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDOzJCQUNwQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNwRCxDQUFBO1NBQ0Y7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxhQUFhO0lBQ0wsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUE4QixFQUFFLEdBQUcsRUFBRSxVQUFVO1FBRTNFLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRTtZQUNqQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3RDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQzVCO1FBRUQsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUN4QyxPQUFPLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztTQUMvQjtRQUVELElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbkMsYUFBYTtZQUNiLE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQzFCO1FBRUQsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUN4QyxPQUFPLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztTQUMvQjtRQUVELElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEMsYUFBYTtZQUNiLE9BQU8sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1NBQ3ZCO1FBRUQsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMvQixPQUFPLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRTtnQkFDbEIsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDdkIsQ0FBQyxDQUFBO1NBQ0Y7UUFFRCxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLGFBQWE7WUFDYixPQUFPLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztTQUN2QjtRQUVELElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDckMsT0FBTyxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUU7Z0JBQ3hCLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLENBQUMsQ0FBQTtTQUNGO1FBRUQsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQzdCLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFBO2FBQ2hCO1lBRUQsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsT0FBTyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUE7YUFDbkI7WUFFRCxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNuQyxPQUFPLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQTthQUN0QjtTQUNGO1FBRUQsTUFBTSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDOUIsT0FBTyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFFM0IsSUFBSSxPQUFPLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDNUMsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUE7WUFDN0MsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ2pFLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxTQUFTLE9BQU8sVUFBVSxFQUFFLENBQUM7Z0JBQ3hDLE1BQU0sSUFBSSxHQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFFM0MsSUFBSSxJQUFJLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNsRCxNQUFNLElBQUksR0FBZ0I7d0JBQ3hCLFNBQVMsRUFBRSxVQUFVO3dCQUNyQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsSUFBSTtxQkFDOUIsQ0FBQTtvQkFDRCxhQUFhO29CQUNiLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO29CQUMzQixPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztpQkFDM0I7cUJBQU07b0JBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFO3dCQUNYLElBQUksRUFBRSxVQUFVO3dCQUNoQixNQUFNLEVBQUUsR0FBRztxQkFDTyxDQUFDLENBQUE7aUJBQ3RCO2FBRUY7aUJBQU07Z0JBQ0wsYUFBYTtnQkFDYixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQztnQkFFcEUsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQzNCLE1BQU0sSUFBSSxHQUFnQjt3QkFDeEIsU0FBUyxFQUFFLFVBQVU7d0JBQ3JCLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxJQUFJO3FCQUNqQyxDQUFBO29CQUNELGFBQWE7b0JBQ2IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7b0JBQzNCLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2lCQUMzQjtxQkFBTTtvQkFDTCxhQUFhO29CQUNiLEtBQUssQ0FBQyxJQUFJLENBQUM7d0JBQ1QsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE1BQU0sRUFBRSxHQUFHO3FCQUNPLENBQUMsQ0FBQztpQkFDdkI7YUFFRjtTQUNGO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBWSxFQUFFLEdBQVcsRUFBRSxRQUFrQixFQUFFLFVBQVUsR0FBRyxFQUFFLEVBQ2pGLE9BQStCLEVBQUUsVUFBVSxHQUFHLENBQUM7UUFFL0MsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE9BQU8sR0FBRyxFQUFTLENBQUM7U0FDckI7UUFFRCxhQUFhO1FBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDeEIsYUFBYTtZQUNiLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUE7WUFFdkQsYUFBYTtZQUNiLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEVBQUU7Z0JBQ3BFLE9BQU87YUFDUjtZQUVELGFBQWE7WUFDYixJQUFJLE9BQU8sQ0FBQyxXQUFXLElBQUksVUFBVSxLQUFLLEVBQUUsRUFBRTtnQkFDNUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQTthQUN4RjtZQUVELGFBQWE7WUFDYixJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUU7Z0JBQ3pCLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQTthQUM5QjtZQUNELE9BQU8sQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBRTlCLElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRTtnQkFDdEIsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7YUFDdEI7WUFFRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7Z0JBQ2pCLGFBQWE7Z0JBQ2IsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7Z0JBQ3RCLE9BQU07YUFDUDtTQUNGO1FBSUQsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFO1lBRXZCLElBQUksS0FBSyxHQUFpQixDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFdkUsMkJBQTJCO1lBQzNCLE9BQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBRXZCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDMUIsK0NBQStDO2dCQUMvQyxvR0FBb0c7Z0JBQ3BHLGdDQUFnQztnQkFDaEMsWUFBWTtnQkFDWixJQUFJO2dCQUNKLGFBQWE7Z0JBQ2IsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQy9ELDhCQUE4QjtvQkFDOUIsaUNBQWlDO29CQUNqQyxTQUFTO2lCQUNWO2dCQUVELHlDQUF5QztnQkFFekMsYUFBYTtnQkFDYixJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQztnQkFDbkIsYUFBYTtnQkFDYixPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO2dCQUU1QyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7b0JBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7b0JBQ25CLE9BQU8sT0FBTyxDQUFDO2lCQUNoQjtnQkFDRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDbkMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztpQkFDckU7Z0JBRUQsYUFBYTtnQkFDYixJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUU7b0JBQ3pCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQ3hCO2dCQUNELE9BQU8sQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2dCQUU5QixJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7b0JBQ3RCLDhCQUE4QjtvQkFDOUIsU0FBUztpQkFDVjtnQkFFRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7b0JBQ2pCLGFBQWE7b0JBQ2IsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7b0JBQ3RCLDhCQUE4QjtvQkFDOUIsU0FBUztpQkFDVjtnQkFDRCwrQ0FBK0M7Z0JBQy9DLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDaEIsYUFBYTtvQkFDYixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQTtpQkFDaEU7cUJBQU0sSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUN4QixhQUFhO29CQUNiLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBO2lCQUNoRTthQUNGO1NBRUY7YUFBTTtZQUNMLGFBQWE7WUFDYixNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDO1lBRWhDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDdEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDbkIsYUFBYTtvQkFDYixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsVUFBVSxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUE7Z0JBQ3BGLENBQUMsQ0FBQyxDQUFBO2FBRUg7aUJBQU0sSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUMxQixNQUFNLE9BQU8sR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3BFLEtBQUssTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFO29CQUNyQixJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTt3QkFDOUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUE7d0JBRXBCLGFBQWE7d0JBQ2IsT0FBTyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7d0JBQ3pCLGFBQWE7d0JBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsVUFBVSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQTtxQkFDdEg7aUJBQ0Y7Z0JBQ0QsSUFBSSxXQUFXLEVBQUU7b0JBQ2YsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7d0JBQ25ELElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTs0QkFDbkIsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUUzQixhQUFhOzRCQUNiLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDOzRCQUN4QixhQUFhOzRCQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLFVBQVUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUE7eUJBQ3RIO3FCQUNGO2lCQUNGO2FBQ0Y7WUFFRCxhQUFhO1lBQ2IsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksS0FBSyxHQUFHLEVBQUU7Z0JBQ2pDLGFBQWE7Z0JBQ2IsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7YUFDdkI7U0FFRjtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FFRjtBQUVELE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRztJQUNsQixNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNO0lBQzNCLFFBQVEsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVE7Q0FDaEMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgQ0xBU1MgfSBmcm9tICd0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvd2Vic3FsJztcbi8vIGxldCBjb3VudGVyID0gMFxuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi9tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnO1xuXG5mdW5jdGlvbiBmaW5kQ2hpbGRyZW4odmVyOiBNb2RlbHMuVmVyLCBscDogc3RyaW5nLCB3YWxrR2V0dGVyczogYm9vbGVhbik6IE1vZGVscy5WZXJbXSB7XG5cbiAgY29uc3Qgb2JqID0gdmVyLnZcbiAgaWYgKF8uaXNBcnJheShvYmopKSB7XG4gICAgcmV0dXJuIG9iai5tYXAoKHYsIGkpID0+IHtcbiAgICAgIHJldHVybiB7IHYsIHA6IGAke2xwfVske2l9XWAsIHBhcmVudDogdmVyLCBpc0dldHRlcjogZmFsc2UgfVxuICAgIH0pO1xuICB9IGVsc2UgaWYgKF8uaXNPYmplY3Qob2JqKSkge1xuXG4gICAgY29uc3QgYWxsS2V5cyA9ICF3YWxrR2V0dGVycyA/IFtdIDogT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKTtcbiAgICBjb25zdCBjaGlsZHJlbjogTW9kZWxzLlZlcltdID0gW107XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgICBpZiAoXy5pc09iamVjdChvYmopICYmIF8uaXNGdW5jdGlvbihvYmouaGFzT3duUHJvcGVydHkpICYmIG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIF8ucHVsbChhbGxLZXlzLCBrZXkpXG4gICAgICAgIGNoaWxkcmVuLnB1c2goeyB2OiBvYmpba2V5XSwgcDogYCR7KGxwID09PSAnJykgPyAnJyA6IGAke2xwfS5gfSR7a2V5fWAsIHBhcmVudDogdmVyLCBpc0dldHRlcjogZmFsc2UgfSlcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHdhbGtHZXR0ZXJzKSB7XG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYWxsS2V5cy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgaWYgKF8uaXNPYmplY3Qob2JqKSkge1xuICAgICAgICAgIGNvbnN0IGtleSA9IGFsbEtleXNbaW5kZXhdO1xuICAgICAgICAgIGNoaWxkcmVuLnB1c2goeyB2OiBvYmpba2V5XSwgcDogYCR7KGxwID09PSAnJykgPyAnJyA6IGAke2xwfS5gfSR7a2V5fWAsIHBhcmVudDogdmVyLCBpc0dldHRlcjogdHJ1ZSB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuICByZXR1cm4gW107XG59XG5cblxuXG5leHBvcnQgdHlwZSBJdGVyYXRvciA9ICh2YWx1ZTogYW55LFxuICBsb2Rhc2hQYXRoOiBzdHJpbmcsXG4gIC8vIEB0cy1pZ25vcmVcbiAgY2hhbmdlVmFsdWVUbzogKG5ld1ZhbHVlKSA9PiB2b2lkLFxuICBvcHRpb25zPzogTW9kZWxzLkFkZGl0aW9uYWxJdGVyYXRvck9wdGlvbnNcblxuKSA9PiB2b2lkXG5leHBvcnQgY2xhc3MgSGVscGVycyB7XG5cbiAgcHVibGljIHN0YXRpYyBnZXQgV2FsaygpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICByZXR1cm4ge1xuICAgICAgT2JqZWN0KGpzb246IE9iamVjdCwgaXRlcmF0b3I6IEl0ZXJhdG9yLCBvcHRpb25zT3JXYWxrR2V0dGVyc1ZhbHVlPzogTW9kZWxzLlN0YXJ0SXRlcmF0b3JPcHRpb25zKSB7XG5cbiAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9uc09yV2Fsa0dldHRlcnNWYWx1ZSkpIHtcbiAgICAgICAgICBvcHRpb25zT3JXYWxrR2V0dGVyc1ZhbHVlID0ge31cbiAgICAgICAgfVxuXG4gICAgICAgIChvcHRpb25zT3JXYWxrR2V0dGVyc1ZhbHVlIGFzIE1vZGVscy5JbnRlcm5hbFZhbHVlcykuaGFzSXRlcmF0b3IgPSBfLmlzRnVuY3Rpb24oaXRlcmF0b3IpXG5cbiAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9uc09yV2Fsa0dldHRlcnNWYWx1ZS5icmVhZHRoV2FsaykpIHtcbiAgICAgICAgICBvcHRpb25zT3JXYWxrR2V0dGVyc1ZhbHVlLmJyZWFkdGhXYWxrID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQge1xuICAgICAgICAgIGNpcmN1cmFsXG4gICAgICAgIH0gPSBzZWxmLl93YWxrKGpzb24sIGpzb24sIGl0ZXJhdG9yLCB2b2lkIDAsIG9wdGlvbnNPcldhbGtHZXR0ZXJzVmFsdWUgYXMgYW55KVxuXG4gICAgICAgIHJldHVybiB7IGNpcmNzOiBjaXJjdXJhbCB9XG4gICAgICB9LFxuICAgICAgT2JqZWN0QnkocHJvcGVydHk6IHN0cmluZywgaW5Db250ZXh0OiBPYmplY3QsIGl0ZXJhdG9yOiBJdGVyYXRvciwgb3B0aW9ucz86IE1vZGVscy5TdGFydEl0ZXJhdG9yT3B0aW9ucykge1xuICAgICAgICBpZiAoXy5pc0Z1bmN0aW9uKGl0ZXJhdG9yKSkge1xuICAgICAgICAgIGl0ZXJhdG9yKGluQ29udGV4dCwgJycsIHNlbGYuX2NoYW5nZVZhbHVlKGluQ29udGV4dCwgcHJvcGVydHksIHRydWUpKSAvLyBUT0RPIEFkZCBvcHRvaW5zXG4gICAgICAgIH1cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCBqc29uID0gaW5Db250ZXh0W3Byb3BlcnR5XVxuICAgICAgICByZXR1cm4gc2VsZi5XYWxrLk9iamVjdChqc29uLCBpdGVyYXRvciwgb3B0aW9ucylcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfY2hhbmdlVmFsdWUoanNvbjogT2JqZWN0LCBsb2RhaFBhdGg6IHN0cmluZywgc2ltcGxlQ2hhbmdlID0gZmFsc2UsIG9wdGlvbnM/OiBNb2RlbHMuSW50ZXJuYWxWYWx1ZXMpIHtcblxuICAgIHZhciB7IGNvbnRleHRQYXRoLCBwcm9wZXJ0eSB9ID0gdGhpcy5fcHJlcGFyZVBhcmFtcyhsb2RhaFBhdGgpO1xuICAgIHZhciBjb250ZXh0ID0gXy5nZXQoanNvbiwgY29udGV4dFBhdGgpO1xuXG4gICAgcmV0dXJuIChuZXdWYWx1ZTogYW55KSA9PiB7XG4gICAgICBpZiAoY29udGV4dFBhdGggPT09ICcnKSB7XG4gICAgICAgIHNpbXBsZUNoYW5nZSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChzaW1wbGVDaGFuZ2UpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBqc29uW3Byb3BlcnR5XSA9IG5ld1ZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coYENPTlRFWFQgVkFMVUUgQ0hBTkdFISAgXCIke2NvbnRleHRQYXRofVwiICsgXCIke3Byb3BlcnR5fVwiIGAsIG5ld1ZhbHVlKVxuICAgICAgICAvLyBjb25zb2xlLmxvZygnY29udGV4dCcsIGNvbnRleHQpXG4gICAgICAgIGlmIChjb250ZXh0KSB7XG4gICAgICAgICAgY29udGV4dFtwcm9wZXJ0eV0gPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucy5fdmFsdWVDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfcHJlcGFyZVBhcmFtcyhsb2Rhc2hQYXRoOiBzdHJpbmcpIHtcbiAgICAvLyBjb25zb2xlLmxvZygnY29udGV4dFBhdGggYmVmb3JlJywgbG9kYXNoUGF0aClcbiAgICBjb25zdCBjb250ZXh0UGF0aCA9IHRoaXMuX0hlbHBlcnMuUGF0aC5nZXRDb250ZXh0UGF0aChsb2Rhc2hQYXRoKTtcbiAgICAvLyBjb25zb2xlLmxvZygnY29udGV4dFBhdGggYWZ0ZXInLCBjb250ZXh0UGF0aClcblxuICAgIGxldCBwcm9wZXJ0eSA9IHRoaXMuX0hlbHBlcnMuUGF0aC5nZXRQcm9wZXJ0eVBhdGgobG9kYXNoUGF0aCwgY29udGV4dFBhdGgpO1xuICAgIC8vIGNvbnNvbGUubG9nKCdwcm9wZXJ0eSBhZnRlciBwcm9jZXNzJywgcHJvcGVydHkpXG4gICAgaWYgKF8uaXNTdHJpbmcocHJvcGVydHkpICYmIHByb3BlcnR5LnRyaW0oKSAhPT0gJycgJiYgIV8uaXNOYU4oTnVtYmVyKHByb3BlcnR5KSkpIHtcbiAgICAgIHByb3BlcnR5ID0gTnVtYmVyKHByb3BlcnR5KVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgY29udGV4dFBhdGgsIHByb3BlcnR5XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0IF9IZWxwZXJzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBnZXQgUGF0aCgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgZ2V0UHJvcGVydHlQYXRoKGxvZGFoUGF0aCwgY29udGV0UGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuIChsb2RhaFBhdGhcbiAgICAgICAgICAgICAgLnJlcGxhY2UoY29udGV0UGF0aCwgJycpXG4gICAgICAgICAgICAgIC5yZXBsYWNlKC9eXFwuLywgJycpXG4gICAgICAgICAgICAgIC5yZXBsYWNlKC9cXFsvLCAnJylcbiAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcXS8sICcnKSlcbiAgICAgICAgICB9LFxuICAgICAgICAgIGdldENvbnRleHRQYXRoKHA6IHN0cmluZykge1xuICAgICAgICAgICAgbGV0IHJlczogc3RyaW5nO1xuICAgICAgICAgICAgaWYgKHAuZW5kc1dpdGgoJ10nKSkge1xuICAgICAgICAgICAgICByZXMgPSBwLnJlcGxhY2UoL1xcWyhcXFwifFxcJyk/WzAtOV0rKFxcXCJ8XFwnKT9cXF0kLywgJycpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXMgPSBwLnJlcGxhY2UoL1xcLihbYS16QS1aMC05XXxcXCR8XFxffFxcQHxcXC18XFwvfFxcOikrJC8sICcnKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlcyA9PT0gcCA/ICcnIDogcmVzO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9zaG91ZGxSZXR1cm4oaW5jbHVkZSA9IFtdLCBleGNsdWRlID0gW10sIGxvZGFzaFBhdGg6IHN0cmluZykge1xuICAgIGxldCByZXMgPSBmYWxzZTtcbiAgICBpZiAobG9kYXNoUGF0aC5yZXBsYWNlKC9eXFxbKFxcJ3xcXFwiKT9bMC05XSooXFwnfFxcXCIpP1xcXS8sICcnKS50cmltKCkgIT09ICcnKSB7XG4gICAgICBsb2Rhc2hQYXRoID0gbG9kYXNoUGF0aC5yZXBsYWNlKC9eXFxbKFxcJ3xcXFwiKT9bMC05XSooXFwnfFxcXCIpP1xcXVxcLi8sICcnKVxuICAgICAgcmVzID0gKFxuICAgICAgICAoXy5pc0FycmF5KGluY2x1ZGUpICYmIGluY2x1ZGUubGVuZ3RoID4gMFxuICAgICAgICAgICYmICFpbmNsdWRlLmZpbmQocCA9PiBsb2Rhc2hQYXRoLnN0YXJ0c1dpdGgocCkpKVxuICAgICAgICB8fFxuICAgICAgICAoXy5pc0FycmF5KGV4Y2x1ZGUpICYmIGV4Y2x1ZGUubGVuZ3RoID4gMFxuICAgICAgICAgICYmICEhZXhjbHVkZS5maW5kKHAgPT4gbG9kYXNoUGF0aC5zdGFydHNXaXRoKHApKSlcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBwcml2YXRlIHN0YXRpYyBwcmVwYXJlT3B0aW9ucyhvcHRpb25zOiBNb2RlbHMuSW50ZXJuYWxWYWx1ZXMsIG9iaiwgbG9kYXNoUGF0aCkge1xuXG4gICAgaWYgKG9wdGlvbnMuX2V4aXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zLndhbGtHZXR0ZXJzKSkge1xuICAgICAgb3B0aW9ucy53YWxrR2V0dGVycyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucy5jaGVja0NpcmN1cmFsKSkge1xuICAgICAgb3B0aW9ucy5jaGVja0NpcmN1cmFsID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucy5pc0dldHRlcikpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG9wdGlvbnMuaXNHZXR0ZXIgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zLl92YWx1ZUNoYW5nZWQpKSB7XG4gICAgICBvcHRpb25zLl92YWx1ZUNoYW5nZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zLl9leGl0KSkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgb3B0aW9ucy5fZXhpdCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChfLmlzVW5kZWZpbmVkKG9wdGlvbnMuZXhpdCkpIHtcbiAgICAgIG9wdGlvbnMuZXhpdCA9ICgpID0+IHtcbiAgICAgICAgb3B0aW9ucy5fZXhpdCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucy5fc2tpcCkpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG9wdGlvbnMuX3NraXAgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zLnNraXBPYmplY3QpKSB7XG4gICAgICBvcHRpb25zLnNraXBPYmplY3QgPSAoKSA9PiB7XG4gICAgICAgIG9wdGlvbnMuX3NraXAgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmNoZWNrQ2lyY3VyYWwpIHtcbiAgICAgIGlmIChfLmlzVW5kZWZpbmVkKG9wdGlvbnMuZGIpKSB7XG4gICAgICAgIG9wdGlvbnMuZGIgPSB7fVxuICAgICAgfVxuXG4gICAgICBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zLnN0YWNrKSkge1xuICAgICAgICBvcHRpb25zLnN0YWNrID0gW11cbiAgICAgIH1cblxuICAgICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucy5jaXJjdXJhbCkpIHtcbiAgICAgICAgb3B0aW9ucy5jaXJjdXJhbCA9IFtdXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgeyBkYiwgc3RhY2sgfSA9IG9wdGlvbnM7XG4gICAgb3B0aW9ucy5pc0NpcmN1cmFsID0gZmFsc2U7XG5cbiAgICBpZiAob3B0aW9ucy5jaGVja0NpcmN1cmFsICYmIF8uaXNPYmplY3Qob2JqKSkge1xuICAgICAgbGV0IGluZGV4VmFsdWUgPSBDTEFTUy5PQkpFQ1Qob2JqKS5pbmRleFZhbHVlXG4gICAgICBpZiAoQ0xBU1MuT0JKRUNUKG9iaikuaXNDbGFzc09iamVjdCAmJiAhXy5pc1VuZGVmaW5lZChpbmRleFZhbHVlKSkge1xuICAgICAgICBsZXQgY2xhc3NOYW1lID0gQ0xBU1MuZ2V0TmFtZUZyb21PYmplY3Qob2JqKTtcbiAgICAgICAgbGV0IHAgPSBgJHtjbGFzc05hbWV9LmlkXyR7aW5kZXhWYWx1ZX1gO1xuICAgICAgICBjb25zdCBpbkRCOiBNb2RlbHMuSW5EQlR5cGUgPSBfLmdldChkYiwgcCk7XG5cbiAgICAgICAgaWYgKGluREIgJiYgQ0xBU1MuT0JKRUNUKGluREIudGFyZ2V0KS5pc0VxdWFsKG9iaikpIHtcbiAgICAgICAgICBjb25zdCBjaXJjOiBNb2RlbHMuQ2lyYyA9IHtcbiAgICAgICAgICAgIHBhdGhUb09iajogbG9kYXNoUGF0aCxcbiAgICAgICAgICAgIGNpcmN1cmFsVGFyZ2V0UGF0aDogaW5EQi5wYXRoXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBvcHRpb25zLmNpcmN1cmFsLnB1c2goY2lyYylcbiAgICAgICAgICBvcHRpb25zLmlzQ2lyY3VyYWwgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF8uc2V0KGRiLCBwLCB7XG4gICAgICAgICAgICBwYXRoOiBsb2Rhc2hQYXRoLFxuICAgICAgICAgICAgdGFyZ2V0OiBvYmpcbiAgICAgICAgICB9IGFzIE1vZGVscy5JbkRCVHlwZSlcbiAgICAgICAgfVxuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGNvbnN0IGluU3RhY2sgPSBzdGFjay5maW5kKChjOiBNb2RlbHMuSW5EQlR5cGUpID0+IGMudGFyZ2V0ID09IG9iaik7XG5cbiAgICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKGluU3RhY2spKSB7XG4gICAgICAgICAgY29uc3QgY2lyYzogTW9kZWxzLkNpcmMgPSB7XG4gICAgICAgICAgICBwYXRoVG9PYmo6IGxvZGFzaFBhdGgsXG4gICAgICAgICAgICBjaXJjdXJhbFRhcmdldFBhdGg6IGluU3RhY2sucGF0aFxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgb3B0aW9ucy5jaXJjdXJhbC5wdXNoKGNpcmMpXG4gICAgICAgICAgb3B0aW9ucy5pc0NpcmN1cmFsID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgc3RhY2sucHVzaCh7XG4gICAgICAgICAgICBwYXRoOiBsb2Rhc2hQYXRoLFxuICAgICAgICAgICAgdGFyZ2V0OiBvYmpcbiAgICAgICAgICB9IGFzIE1vZGVscy5JbkRCVHlwZSk7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF93YWxrKGpzb246IE9iamVjdCwgb2JqOiBPYmplY3QsIGl0ZXJhdG9yOiBJdGVyYXRvciwgbG9kYXNoUGF0aCA9ICcnLFxuICAgIG9wdGlvbnM/OiBNb2RlbHMuSW50ZXJuYWxWYWx1ZXMsIGRlcHRoTGV2ZWwgPSAwKSB7XG5cbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIG9wdGlvbnMgPSB7fSBhcyBhbnk7XG4gICAgfVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlmICghb3B0aW9ucy5icmVhZHRoV2Fsaykge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgb3B0aW9ucyA9IHRoaXMucHJlcGFyZU9wdGlvbnMob3B0aW9ucywgb2JqLCBsb2Rhc2hQYXRoKVxuXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBpZiAodGhpcy5fc2hvdWRsUmV0dXJuKG9wdGlvbnMuaW5jbHVkZSwgb3B0aW9ucy5leGNsdWRlLCBsb2Rhc2hQYXRoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGlmIChvcHRpb25zLmhhc0l0ZXJhdG9yICYmIGxvZGFzaFBhdGggIT09ICcnKSB7XG4gICAgICAgIGl0ZXJhdG9yKG9iaiwgbG9kYXNoUGF0aCwgdGhpcy5fY2hhbmdlVmFsdWUoanNvbiwgbG9kYXNoUGF0aCwgZmFsc2UsIG9wdGlvbnMpLCBvcHRpb25zKVxuICAgICAgfVxuXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBpZiAob3B0aW9ucy5fdmFsdWVDaGFuZ2VkKSB7XG4gICAgICAgIG9iaiA9IF8uZ2V0KGpzb24sIGxvZGFzaFBhdGgpXG4gICAgICB9XG4gICAgICBvcHRpb25zLl92YWx1ZUNoYW5nZWQgPSBmYWxzZTtcblxuICAgICAgaWYgKG9wdGlvbnMuaXNDaXJjdXJhbCkge1xuICAgICAgICBvcHRpb25zLl9za2lwID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbnMuX3NraXApIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBvcHRpb25zLl9za2lwID0gZmFsc2U7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgIH1cblxuXG5cbiAgICBpZiAob3B0aW9ucy5icmVhZHRoV2Fsaykge1xuXG4gICAgICBsZXQgcXVldWU6IE1vZGVscy5WZXJbXSA9IFt7IHY6IGpzb24sIHA6IGxvZGFzaFBhdGgsIHBhcmVudDogdm9pZCAwIH1dO1xuXG4gICAgICAvLyBjb25zdCBwYXRoZXNUb1NraXAgPSB7fTtcbiAgICAgIHdoaWxlIChxdWV1ZS5sZW5ndGggPiAwKSB7XG5cbiAgICAgICAgY29uc3QgdmVyID0gcXVldWUuc2hpZnQoKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coYHBhdGhlcyB0byBza2lwYCwgcGF0aGVzVG9Ta2lwKTtcbiAgICAgICAgLy8gaWYgKCFfLmlzVW5kZWZpbmVkKE9iamVjdC5rZXlzKHBhdGhlc1RvU2tpcCkuZmluZChrZXkgPT4gdmVyLnAuc3RhcnRzV2l0aChwYXRoZXNUb1NraXBba2V5XSkpKSkge1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhgc2tpcDogJHt2ZXIucH1gKVxuICAgICAgICAvLyBjb250aW51ZTtcbiAgICAgICAgLy8gfVxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmICh0aGlzLl9zaG91ZGxSZXR1cm4ob3B0aW9ucy5pbmNsdWRlLCBvcHRpb25zLmV4Y2x1ZGUsIHZlci5wKSkge1xuICAgICAgICAgIC8vIHBhdGhlc1RvU2tpcFt2ZXIucF0gPSB0cnVlO1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGBza2lwMjogJHt2ZXIucH1gKVxuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY29uc29sZS5sb2coYG5vdCBza2lwIHZhbHVlICR7dmVyLnB9YClcblxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGxldCB7IHYsIHAgfSA9IHZlcjtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBvcHRpb25zID0gdGhpcy5wcmVwYXJlT3B0aW9ucyhvcHRpb25zLCB2LCBwKVxuXG4gICAgICAgIGlmIChvcHRpb25zLl9leGl0KSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0VYSVQnKVxuICAgICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmhhc0l0ZXJhdG9yICYmIHAgIT09ICcnKSB7XG4gICAgICAgICAgaXRlcmF0b3IodiwgcCwgdGhpcy5fY2hhbmdlVmFsdWUoanNvbiwgcCwgZmFsc2UsIG9wdGlvbnMpLCBvcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKG9wdGlvbnMuX3ZhbHVlQ2hhbmdlZCkge1xuICAgICAgICAgIHZlci52ID0gXy5nZXQoanNvbiwgcCk7XG4gICAgICAgIH1cbiAgICAgICAgb3B0aW9ucy5fdmFsdWVDaGFuZ2VkID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuaXNDaXJjdXJhbCkge1xuICAgICAgICAgIC8vIHBhdGhlc1RvU2tpcFt2ZXIucF0gPSB0cnVlO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuX3NraXApIHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgb3B0aW9ucy5fc2tpcCA9IGZhbHNlO1xuICAgICAgICAgIC8vIHBhdGhlc1RvU2tpcFt2ZXIucF0gPSB0cnVlO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBMT09LIEZPUiBDSElMRFJFTiBPRiAke3Zlci5wfWApXG4gICAgICAgIGlmIChfLmlzQXJyYXkodikpIHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgcXVldWUgPSBxdWV1ZS5jb25jYXQoZmluZENoaWxkcmVuKHZlciwgcCwgb3B0aW9ucy53YWxrR2V0dGVycykpXG4gICAgICAgIH0gZWxzZSBpZiAoXy5pc09iamVjdCh2KSkge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBxdWV1ZSA9IHF1ZXVlLmNvbmNhdChmaW5kQ2hpbGRyZW4odmVyLCBwLCBvcHRpb25zLndhbGtHZXR0ZXJzKSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGNvbnN0IHsgd2Fsa0dldHRlcnMgfSA9IG9wdGlvbnM7XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgICAgb2JqLmZvckVhY2goKG8sIGkpID0+IHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgdGhpcy5fd2Fsayhqc29uLCBvYmpbaV0sIGl0ZXJhdG9yLCBgJHtsb2Rhc2hQYXRofVske2l9XWAsIG9wdGlvbnMsIGRlcHRoTGV2ZWwgKyAxKVxuICAgICAgICB9KVxuXG4gICAgICB9IGVsc2UgaWYgKF8uaXNPYmplY3Qob2JqKSkge1xuICAgICAgICBjb25zdCBhbGxLZXlzID0gIXdhbGtHZXR0ZXJzID8gW10gOiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcbiAgICAgICAgICBpZiAoXy5pc09iamVjdChvYmopICYmIG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICBfLnB1bGwoYWxsS2V5cywga2V5KVxuXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBvcHRpb25zLmlzR2V0dGVyID0gZmFsc2U7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLl93YWxrKGpzb24sIG9ialtrZXldLCBpdGVyYXRvciwgYCR7KGxvZGFzaFBhdGggPT09ICcnKSA/ICcnIDogYCR7bG9kYXNoUGF0aH0uYH0ke2tleX1gLCBvcHRpb25zLCBkZXB0aExldmVsICsgMSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdhbGtHZXR0ZXJzKSB7XG4gICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFsbEtleXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBpZiAoXy5pc09iamVjdChvYmopKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGtleSA9IGFsbEtleXNbaW5kZXhdO1xuXG4gICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgb3B0aW9ucy5pc0dldHRlciA9IHRydWU7XG4gICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgdGhpcy5fd2Fsayhqc29uLCBvYmpba2V5XSwgaXRlcmF0b3IsIGAkeyhsb2Rhc2hQYXRoID09PSAnJykgPyAnJyA6IGAke2xvZGFzaFBhdGh9LmB9JHtrZXl9YCwgb3B0aW9ucywgZGVwdGhMZXZlbCArIDEpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGlmIChvcHRpb25zLl9leGl0ICYmIGpzb24gPT09IG9iaikge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIG9wdGlvbnMuX2V4aXQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbn1cblxuZXhwb3J0IGNvbnN0IHdhbGsgPSB7XG4gIE9iamVjdDogSGVscGVycy5XYWxrLk9iamVjdCxcbiAgT2JqZWN0Qnk6IEhlbHBlcnMuV2Fsay5PYmplY3RCeVxufVxuIl19
|
|
354
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC9sb2Rhc2gtd2Fsay1vYmplY3QvcHJvamVjdHMvbG9kYXNoLXdhbGstb2JqZWN0L3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUd4RCxjQUFjLFVBQVUsQ0FBQztBQUV6QixTQUFTLFlBQVksQ0FBQyxHQUFlLEVBQUUsRUFBVSxFQUFFLFdBQW9CO0lBRXJFLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDakIsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2xCLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0QixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQTtRQUM5RCxDQUFDLENBQUMsQ0FBQztLQUNKO1NBQU0sSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBRTFCLE1BQU0sT0FBTyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRSxNQUFNLFFBQVEsR0FBaUIsRUFBRSxDQUFDO1FBQ2xDLEtBQUssTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsVUFB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QUFPLENBQUMsS0FBSyxJQUFJLElBQUksS0FBSyxHQUFHLEVBQUU7Z0JBQ2pDLGFBQWE7Z0JBQ2IsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7YUFDdkI7U0FFRjtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FFRjtBQUVELE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRztJQUNsQixNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNO0lBQzNCLFFBQVEsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVE7Q0FDaEMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgQ0xBU1MgfSBmcm9tICd0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvd2Vic3FsJztcbi8vIGxldCBjb3VudGVyID0gMFxuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi9tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnO1xuXG5mdW5jdGlvbiBmaW5kQ2hpbGRyZW4odmVyOiBNb2RlbHMuVmVyLCBscDogc3RyaW5nLCB3YWxrR2V0dGVyczogYm9vbGVhbik6IE1vZGVscy5WZXJbXSB7XG5cbiAgY29uc3Qgb2JqID0gdmVyLnZcbiAgaWYgKF8uaXNBcnJheShvYmopKSB7XG4gICAgcmV0dXJuIG9iai5tYXAoKHYsIGkpID0+IHtcbiAgICAgIHJldHVybiB7IHYsIHA6IGAke2xwfVske2l9XWAsIHBhcmVudDogdmVyLCBpc0dldHRlcjogZmFsc2UgfVxuICAgIH0pO1xuICB9IGVsc2UgaWYgKF8uaXNPYmplY3Qob2JqKSkge1xuXG4gICAgY29uc3QgYWxsS2V5cyA9ICF3YWxrR2V0dGVycyA/IFtdIDogT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKTtcbiAgICBjb25zdCBjaGlsZHJlbjogTW9kZWxzLlZlcltdID0gW107XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgICBpZiAoXy5pc09iamVjdChvYmopICYmIF8uaXNGdW5jdGlvbihvYmouaGFzT3duUHJvcGVydHkpICYmIG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIF8ucHVsbChhbGxLZXlzLCBrZXkpXG4gICAgICAgIGNoaWxkcmVuLnB1c2goeyB2OiBvYmpba2V5XSwgcDogYCR7KGxwID09PSAnJykgPyAnJyA6IGAke2xwfS5gfSR7a2V5fWAsIHBhcmVudDogdmVyLCBpc0dldHRlcjogZmFsc2UgfSlcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHdhbGtHZXR0ZXJzKSB7XG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYWxsS2V5cy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgaWYgKF8uaXNPYmplY3Qob2JqKSkge1xuICAgICAgICAgIGNvbnN0IGtleSA9IGFsbEtleXNbaW5kZXhdO1xuICAgICAgICAgIGNoaWxkcmVuLnB1c2goeyB2OiBvYmpba2V5XSwgcDogYCR7KGxwID09PSAnJykgPyAnJyA6IGAke2xwfS5gfSR7a2V5fWAsIHBhcmVudDogdmVyLCBpc0dldHRlcjogdHJ1ZSB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuICByZXR1cm4gW107XG59XG5cblxuXG5leHBvcnQgdHlwZSBJdGVyYXRvciA9ICh2YWx1ZTogYW55LFxuICBsb2Rhc2hQYXRoOiBzdHJpbmcsXG4gIC8vIEB0cy1pZ25vcmVcbiAgY2hhbmdlVmFsdWVUbzogKG5ld1ZhbHVlKSA9PiB2b2lkLFxuICBvcHRpb25zPzogTW9kZWxzLkFkZGl0aW9uYWxJdGVyYXRvck9wdGlvbnNcblxuKSA9PiB2b2lkXG5leHBvcnQgY2xhc3MgSGVscGVycyB7XG5cbiAgcHVibGljIHN0YXRpYyBnZXQgV2FsaygpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICByZXR1cm4ge1xuICAgICAgT2JqZWN0KGpzb246IE9iamVjdCwgaXRlcmF0b3I6IEl0ZXJhdG9yLCBvcHRpb25zT3JXYWxrR2V0dGVyc1ZhbHVlPzogTW9kZWxzLlN0YXJ0SXRlcmF0b3JPcHRpb25zKSB7XG5cbiAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9uc09yV2Fsa0dldHRlcnNWYWx1ZSkpIHtcbiAgICAgICAgICBvcHRpb25zT3JXYWxrR2V0dGVyc1ZhbHVlID0ge31cbiAgICAgICAgfVxuXG4gICAgICAgIChvcHRpb25zT3JXYWxrR2V0dGVyc1ZhbHVlIGFzIE1vZGVscy5JbnRlcm5hbFZhbHVlcykuaGFzSXRlcmF0b3IgPSBfLmlzRnVuY3Rpb24oaXRlcmF0b3IpXG5cbiAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9uc09yV2Fsa0dldHRlcnNWYWx1ZS5icmVhZHRoV2FsaykpIHtcbiAgICAgICAgICBvcHRpb25zT3JXYWxrR2V0dGVyc1ZhbHVlLmJyZWFkdGhXYWxrID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQge1xuICAgICAgICAgIGNpcmN1cmFsXG4gICAgICAgIH0gPSBzZWxmLl93YWxrKGpzb24sIGpzb24sIGl0ZXJhdG9yLCB2b2lkIDAsIG9wdGlvbnNPcldhbGtHZXR0ZXJzVmFsdWUgYXMgYW55KVxuXG4gICAgICAgIHJldHVybiB7IGNpcmNzOiBjaXJjdXJhbCB9XG4gICAgICB9LFxuICAgICAgT2JqZWN0QnkocHJvcGVydHk6IHN0cmluZywgaW5Db250ZXh0OiBPYmplY3QsIGl0ZXJhdG9yOiBJdGVyYXRvciwgb3B0aW9ucz86IE1vZGVscy5TdGFydEl0ZXJhdG9yT3B0aW9ucykge1xuICAgICAgICBpZiAoXy5pc0Z1bmN0aW9uKGl0ZXJhdG9yKSkge1xuICAgICAgICAgIGl0ZXJhdG9yKGluQ29udGV4dCwgJycsIHNlbGYuX2NoYW5nZVZhbHVlKGluQ29udGV4dCwgcHJvcGVydHksIHRydWUpKSAvLyBUT0RPIEFkZCBvcHRvaW5zXG4gICAgICAgIH1cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCBqc29uID0gaW5Db250ZXh0W3Byb3BlcnR5XVxuICAgICAgICByZXR1cm4gc2VsZi5XYWxrLk9iamVjdChqc29uLCBpdGVyYXRvciwgb3B0aW9ucylcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfY2hhbmdlVmFsdWUoanNvbjogT2JqZWN0LCBsb2RhaFBhdGg6IHN0cmluZywgc2ltcGxlQ2hhbmdlID0gZmFsc2UsIG9wdGlvbnM/OiBNb2RlbHMuSW50ZXJuYWxWYWx1ZXMpIHtcblxuICAgIHZhciB7IGNvbnRleHRQYXRoLCBwcm9wZXJ0eSB9ID0gdGhpcy5fcHJlcGFyZVBhcmFtcyhsb2RhaFBhdGgpO1xuICAgIHZhciBjb250ZXh0ID0gXy5nZXQoanNvbiwgY29udGV4dFBhdGgpO1xuXG4gICAgcmV0dXJuIChuZXdWYWx1ZTogYW55KSA9PiB7XG4gICAgICBpZiAoY29udGV4dFBhdGggPT09ICcnKSB7XG4gICAgICAgIHNpbXBsZUNoYW5nZSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChzaW1wbGVDaGFuZ2UpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBqc29uW3Byb3BlcnR5XSA9IG5ld1ZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coYENPTlRFWFQgVkFMVUUgQ0hBTkdFISAgXCIke2NvbnRleHRQYXRofVwiICsgXCIke3Byb3BlcnR5fVwiIGAsIG5ld1ZhbHVlKVxuICAgICAgICAvLyBjb25zb2xlLmxvZygnY29udGV4dCcsIGNvbnRleHQpXG4gICAgICAgIGlmIChjb250ZXh0KSB7XG4gICAgICAgICAgY29udGV4dFtwcm9wZXJ0eV0gPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucy5fdmFsdWVDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfcHJlcGFyZVBhcmFtcyhsb2Rhc2hQYXRoOiBzdHJpbmcpIHtcbiAgICAvLyBjb25zb2xlLmxvZygnY29udGV4dFBhdGggYmVmb3JlJywgbG9kYXNoUGF0aClcbiAgICBjb25zdCBjb250ZXh0UGF0aCA9IHRoaXMuX0hlbHBlcnMuUGF0aC5nZXRDb250ZXh0UGF0aChsb2Rhc2hQYXRoKTtcbiAgICAvLyBjb25zb2xlLmxvZygnY29udGV4dFBhdGggYWZ0ZXInLCBjb250ZXh0UGF0aClcblxuICAgIGxldCBwcm9wZXJ0eSA9IHRoaXMuX0hlbHBlcnMuUGF0aC5nZXRQcm9wZXJ0eVBhdGgobG9kYXNoUGF0aCwgY29udGV4dFBhdGgpO1xuICAgIC8vIGNvbnNvbGUubG9nKCdwcm9wZXJ0eSBhZnRlciBwcm9jZXNzJywgcHJvcGVydHkpXG4gICAgaWYgKF8uaXNTdHJpbmcocHJvcGVydHkpICYmIHByb3BlcnR5LnRyaW0oKSAhPT0gJycgJiYgIV8uaXNOYU4oTnVtYmVyKHByb3BlcnR5KSkpIHtcbiAgICAgIHByb3BlcnR5ID0gTnVtYmVyKHByb3BlcnR5KVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgY29udGV4dFBhdGgsIHByb3BlcnR5XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0IF9IZWxwZXJzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBnZXQgUGF0aCgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgZ2V0UHJvcGVydHlQYXRoKGxvZGFoUGF0aCwgY29udGV0UGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuIChsb2RhaFBhdGhcbiAgICAgICAgICAgICAgLnJlcGxhY2UoY29udGV0UGF0aCwgJycpXG4gICAgICAgICAgICAgIC5yZXBsYWNlKC9eXFwuLywgJycpXG4gICAgICAgICAgICAgIC5yZXBsYWNlKC9cXFsvLCAnJylcbiAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcXS8sICcnKSlcbiAgICAgICAgICB9LFxuICAgICAgICAgIGdldENvbnRleHRQYXRoKHA6IHN0cmluZykge1xuICAgICAgICAgICAgbGV0IHJlczogc3RyaW5nO1xuICAgICAgICAgICAgaWYgKHAuZW5kc1dpdGgoJ10nKSkge1xuICAgICAgICAgICAgICByZXMgPSBwLnJlcGxhY2UoL1xcWyhcXFwifFxcJyk/WzAtOV0rKFxcXCJ8XFwnKT9cXF0kLywgJycpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXMgPSBwLnJlcGxhY2UoL1xcLihbYS16QS1aMC05XXxcXCR8XFxffFxcQHxcXC18XFwvfFxcOikrJC8sICcnKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlcyA9PT0gcCA/ICcnIDogcmVzO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9zaG91ZGxSZXR1cm4oaW5jbHVkZSA9IFtdLCBleGNsdWRlID0gW10sIGxvZGFzaFBhdGg6IHN0cmluZykge1xuICAgIGxldCByZXMgPSBmYWxzZTtcbiAgICBpZiAobG9kYXNoUGF0aC5yZXBsYWNlKC9eXFxbKFxcJ3xcXFwiKT9bMC05XSooXFwnfFxcXCIpP1xcXS8sICcnKS50cmltKCkgIT09ICcnKSB7XG4gICAgICBsb2Rhc2hQYXRoID0gbG9kYXNoUGF0aC5yZXBsYWNlKC9eXFxbKFxcJ3xcXFwiKT9bMC05XSooXFwnfFxcXCIpP1xcXVxcLi8sICcnKVxuICAgICAgcmVzID0gKFxuICAgICAgICAoXy5pc0FycmF5KGluY2x1ZGUpICYmIGluY2x1ZGUubGVuZ3RoID4gMFxuICAgICAgICAgICYmICFpbmNsdWRlLmZpbmQocCA9PiBsb2Rhc2hQYXRoLnN0YXJ0c1dpdGgocCkpKVxuICAgICAgICB8fFxuICAgICAgICAoXy5pc0FycmF5KGV4Y2x1ZGUpICYmIGV4Y2x1ZGUubGVuZ3RoID4gMFxuICAgICAgICAgICYmICEhZXhjbHVkZS5maW5kKHAgPT4gbG9kYXNoUGF0aC5zdGFydHNXaXRoKHApKSlcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBwcml2YXRlIHN0YXRpYyBwcmVwYXJlT3B0aW9ucyhvcHRpb25zOiBNb2RlbHMuSW50ZXJuYWxWYWx1ZXMsIG9iaiwgbG9kYXNoUGF0aCkge1xuXG4gICAgaWYgKG9wdGlvbnMuX2V4aXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zLndhbGtHZXR0ZXJzKSkge1xuICAgICAgb3B0aW9ucy53YWxrR2V0dGVycyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucy5jaGVja0NpcmN1cmFsKSkge1xuICAgICAgb3B0aW9ucy5jaGVja0NpcmN1cmFsID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucy5pc0dldHRlcikpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG9wdGlvbnMuaXNHZXR0ZXIgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zLl92YWx1ZUNoYW5nZWQpKSB7XG4gICAgICBvcHRpb25zLl92YWx1ZUNoYW5nZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zLl9leGl0KSkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgb3B0aW9ucy5fZXhpdCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChfLmlzVW5kZWZpbmVkKG9wdGlvbnMuZXhpdCkpIHtcbiAgICAgIG9wdGlvbnMuZXhpdCA9ICgpID0+IHtcbiAgICAgICAgb3B0aW9ucy5fZXhpdCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucy5fc2tpcCkpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG9wdGlvbnMuX3NraXAgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zLnNraXBPYmplY3QpKSB7XG4gICAgICBvcHRpb25zLnNraXBPYmplY3QgPSAoKSA9PiB7XG4gICAgICAgIG9wdGlvbnMuX3NraXAgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmNoZWNrQ2lyY3VyYWwpIHtcbiAgICAgIGlmIChfLmlzVW5kZWZpbmVkKG9wdGlvbnMuZGIpKSB7XG4gICAgICAgIG9wdGlvbnMuZGIgPSB7fVxuICAgICAgfVxuXG4gICAgICBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zLnN0YWNrKSkge1xuICAgICAgICBvcHRpb25zLnN0YWNrID0gW11cbiAgICAgIH1cblxuICAgICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucy5jaXJjdXJhbCkpIHtcbiAgICAgICAgb3B0aW9ucy5jaXJjdXJhbCA9IFtdXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgeyBkYiwgc3RhY2sgfSA9IG9wdGlvbnM7XG4gICAgb3B0aW9ucy5pc0NpcmN1cmFsID0gZmFsc2U7XG5cbiAgICBpZiAob3B0aW9ucy5jaGVja0NpcmN1cmFsICYmIF8uaXNPYmplY3Qob2JqKSkge1xuICAgICAgbGV0IGluZGV4VmFsdWUgPSBDTEFTUy5PQkpFQ1Qob2JqKS5pbmRleFZhbHVlXG4gICAgICBpZiAoQ0xBU1MuT0JKRUNUKG9iaikuaXNDbGFzc09iamVjdCAmJiAhXy5pc1VuZGVmaW5lZChpbmRleFZhbHVlKSkge1xuICAgICAgICBsZXQgY2xhc3NOYW1lID0gQ0xBU1MuZ2V0TmFtZUZyb21PYmplY3Qob2JqKTtcbiAgICAgICAgbGV0IHAgPSBgJHtjbGFzc05hbWV9LmlkXyR7aW5kZXhWYWx1ZX1gO1xuICAgICAgICBjb25zdCBpbkRCOiBNb2RlbHMuSW5EQlR5cGUgPSBfLmdldChkYiwgcCk7XG5cbiAgICAgICAgaWYgKGluREIgJiYgQ0xBU1MuT0JKRUNUKGluREIudGFyZ2V0KS5pc0VxdWFsKG9iaikpIHtcbiAgICAgICAgICBjb25zdCBjaXJjOiBNb2RlbHMuQ2lyYyA9IHtcbiAgICAgICAgICAgIHBhdGhUb09iajogbG9kYXNoUGF0aCxcbiAgICAgICAgICAgIGNpcmN1cmFsVGFyZ2V0UGF0aDogaW5EQi5wYXRoXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBvcHRpb25zLmNpcmN1cmFsLnB1c2goY2lyYylcbiAgICAgICAgICBvcHRpb25zLmlzQ2lyY3VyYWwgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF8uc2V0KGRiLCBwLCB7XG4gICAgICAgICAgICBwYXRoOiBsb2Rhc2hQYXRoLFxuICAgICAgICAgICAgdGFyZ2V0OiBvYmpcbiAgICAgICAgICB9IGFzIE1vZGVscy5JbkRCVHlwZSlcbiAgICAgICAgfVxuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGNvbnN0IGluU3RhY2sgPSBzdGFjay5maW5kKChjOiBNb2RlbHMuSW5EQlR5cGUpID0+IGMudGFyZ2V0ID09IG9iaik7XG5cbiAgICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKGluU3RhY2spKSB7XG4gICAgICAgICAgY29uc3QgY2lyYzogTW9kZWxzLkNpcmMgPSB7XG4gICAgICAgICAgICBwYXRoVG9PYmo6IGxvZGFzaFBhdGgsXG4gICAgICAgICAgICBjaXJjdXJhbFRhcmdldFBhdGg6IGluU3RhY2sucGF0aFxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgb3B0aW9ucy5jaXJjdXJhbC5wdXNoKGNpcmMpXG4gICAgICAgICAgb3B0aW9ucy5pc0NpcmN1cmFsID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgc3RhY2sucHVzaCh7XG4gICAgICAgICAgICBwYXRoOiBsb2Rhc2hQYXRoLFxuICAgICAgICAgICAgdGFyZ2V0OiBvYmpcbiAgICAgICAgICB9IGFzIE1vZGVscy5JbkRCVHlwZSk7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF93YWxrKGpzb246IE9iamVjdCwgb2JqOiBPYmplY3QsIGl0ZXJhdG9yOiBJdGVyYXRvciwgbG9kYXNoUGF0aCA9ICcnLFxuICAgIG9wdGlvbnM/OiBNb2RlbHMuSW50ZXJuYWxWYWx1ZXMsIGRlcHRoTGV2ZWwgPSAwKSB7XG5cbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIG9wdGlvbnMgPSB7fSBhcyBhbnk7XG4gICAgfVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlmICghb3B0aW9ucy5icmVhZHRoV2Fsaykge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgb3B0aW9ucyA9IHRoaXMucHJlcGFyZU9wdGlvbnMob3B0aW9ucywgb2JqLCBsb2Rhc2hQYXRoKVxuXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBpZiAodGhpcy5fc2hvdWRsUmV0dXJuKG9wdGlvbnMuaW5jbHVkZSwgb3B0aW9ucy5leGNsdWRlLCBsb2Rhc2hQYXRoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGlmIChvcHRpb25zLmhhc0l0ZXJhdG9yICYmIGxvZGFzaFBhdGggIT09ICcnKSB7XG4gICAgICAgIGl0ZXJhdG9yKG9iaiwgbG9kYXNoUGF0aCwgdGhpcy5fY2hhbmdlVmFsdWUoanNvbiwgbG9kYXNoUGF0aCwgZmFsc2UsIG9wdGlvbnMpLCBvcHRpb25zKVxuICAgICAgfVxuXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBpZiAob3B0aW9ucy5fdmFsdWVDaGFuZ2VkKSB7XG4gICAgICAgIG9iaiA9IF8uZ2V0KGpzb24sIGxvZGFzaFBhdGgpXG4gICAgICB9XG4gICAgICBvcHRpb25zLl92YWx1ZUNoYW5nZWQgPSBmYWxzZTtcblxuICAgICAgaWYgKG9wdGlvbnMuaXNDaXJjdXJhbCkge1xuICAgICAgICBvcHRpb25zLl9za2lwID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbnMuX3NraXApIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBvcHRpb25zLl9za2lwID0gZmFsc2U7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgIH1cblxuXG5cbiAgICBpZiAob3B0aW9ucy5icmVhZHRoV2Fsaykge1xuXG4gICAgICBsZXQgcXVldWU6IE1vZGVscy5WZXJbXSA9IFt7IHY6IGpzb24sIHA6IGxvZGFzaFBhdGgsIHBhcmVudDogdm9pZCAwIH1dO1xuXG4gICAgICAvLyBjb25zdCBwYXRoZXNUb1NraXAgPSB7fTtcbiAgICAgIHdoaWxlIChxdWV1ZS5sZW5ndGggPiAwKSB7XG5cbiAgICAgICAgY29uc3QgdmVyID0gcXVldWUuc2hpZnQoKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coYHBhdGhlcyB0byBza2lwYCwgcGF0aGVzVG9Ta2lwKTtcbiAgICAgICAgLy8gaWYgKCFfLmlzVW5kZWZpbmVkKE9iamVjdC5rZXlzKHBhdGhlc1RvU2tpcCkuZmluZChrZXkgPT4gdmVyLnAuc3RhcnRzV2l0aChwYXRoZXNUb1NraXBba2V5XSkpKSkge1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhgc2tpcDogJHt2ZXIucH1gKVxuICAgICAgICAvLyBjb250aW51ZTtcbiAgICAgICAgLy8gfVxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmICh0aGlzLl9zaG91ZGxSZXR1cm4ob3B0aW9ucy5pbmNsdWRlLCBvcHRpb25zLmV4Y2x1ZGUsIHZlci5wKSkge1xuICAgICAgICAgIC8vIHBhdGhlc1RvU2tpcFt2ZXIucF0gPSB0cnVlO1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGBza2lwMjogJHt2ZXIucH1gKVxuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY29uc29sZS5sb2coYG5vdCBza2lwIHZhbHVlICR7dmVyLnB9YClcblxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGxldCB7IHYsIHAgfSA9IHZlcjtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBvcHRpb25zID0gdGhpcy5wcmVwYXJlT3B0aW9ucyhvcHRpb25zLCB2LCBwKVxuXG4gICAgICAgIGlmIChvcHRpb25zLl9leGl0KSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0VYSVQnKVxuICAgICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmhhc0l0ZXJhdG9yICYmIHAgIT09ICcnKSB7XG4gICAgICAgICAgaXRlcmF0b3IodiwgcCwgdGhpcy5fY2hhbmdlVmFsdWUoanNvbiwgcCwgZmFsc2UsIG9wdGlvbnMpLCBvcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKG9wdGlvbnMuX3ZhbHVlQ2hhbmdlZCkge1xuICAgICAgICAgIHZlci52ID0gXy5nZXQoanNvbiwgcCk7XG4gICAgICAgIH1cbiAgICAgICAgb3B0aW9ucy5fdmFsdWVDaGFuZ2VkID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuaXNDaXJjdXJhbCkge1xuICAgICAgICAgIC8vIHBhdGhlc1RvU2tpcFt2ZXIucF0gPSB0cnVlO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuX3NraXApIHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgb3B0aW9ucy5fc2tpcCA9IGZhbHNlO1xuICAgICAgICAgIC8vIHBhdGhlc1RvU2tpcFt2ZXIucF0gPSB0cnVlO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBMT09LIEZPUiBDSElMRFJFTiBPRiAke3Zlci5wfWApXG4gICAgICAgIGlmIChfLmlzQXJyYXkodikpIHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgcXVldWUgPSBxdWV1ZS5jb25jYXQoZmluZENoaWxkcmVuKHZlciwgcCwgb3B0aW9ucy53YWxrR2V0dGVycykpXG4gICAgICAgIH0gZWxzZSBpZiAoXy5pc09iamVjdCh2KSkge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBxdWV1ZSA9IHF1ZXVlLmNvbmNhdChmaW5kQ2hpbGRyZW4odmVyLCBwLCBvcHRpb25zLndhbGtHZXR0ZXJzKSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGNvbnN0IHsgd2Fsa0dldHRlcnMgfSA9IG9wdGlvbnM7XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgICAgb2JqLmZvckVhY2goKG8sIGkpID0+IHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgdGhpcy5fd2Fsayhqc29uLCBvYmpbaV0sIGl0ZXJhdG9yLCBgJHtsb2Rhc2hQYXRofVske2l9XWAsIG9wdGlvbnMsIGRlcHRoTGV2ZWwgKyAxKVxuICAgICAgICB9KVxuXG4gICAgICB9IGVsc2UgaWYgKF8uaXNPYmplY3Qob2JqKSkge1xuICAgICAgICBjb25zdCBhbGxLZXlzID0gIXdhbGtHZXR0ZXJzID8gW10gOiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcbiAgICAgICAgICBpZiAoXy5pc09iamVjdChvYmopICYmIG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICBfLnB1bGwoYWxsS2V5cywga2V5KVxuXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBvcHRpb25zLmlzR2V0dGVyID0gZmFsc2U7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLl93YWxrKGpzb24sIG9ialtrZXldLCBpdGVyYXRvciwgYCR7KGxvZGFzaFBhdGggPT09ICcnKSA/ICcnIDogYCR7bG9kYXNoUGF0aH0uYH0ke2tleX1gLCBvcHRpb25zLCBkZXB0aExldmVsICsgMSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdhbGtHZXR0ZXJzKSB7XG4gICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFsbEtleXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBpZiAoXy5pc09iamVjdChvYmopKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGtleSA9IGFsbEtleXNbaW5kZXhdO1xuXG4gICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgb3B0aW9ucy5pc0dldHRlciA9IHRydWU7XG4gICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgdGhpcy5fd2Fsayhqc29uLCBvYmpba2V5XSwgaXRlcmF0b3IsIGAkeyhsb2Rhc2hQYXRoID09PSAnJykgPyAnJyA6IGAke2xvZGFzaFBhdGh9LmB9JHtrZXl9YCwgb3B0aW9ucywgZGVwdGhMZXZlbCArIDEpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGlmIChvcHRpb25zLl9leGl0ICYmIGpzb24gPT09IG9iaikge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIG9wdGlvbnMuX2V4aXQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbn1cblxuZXhwb3J0IGNvbnN0IHdhbGsgPSB7XG4gIE9iamVjdDogSGVscGVycy5XYWxrLk9iamVjdCxcbiAgT2JqZWN0Qnk6IEhlbHBlcnMuV2Fsay5PYmplY3RCeVxufSJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvbG9kYXNoLXdhbGstb2JqZWN0L3Byb2plY3RzL2xvZGFzaC13YWxrLW9iamVjdC9zcmMvbGliL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IG5hbWVzcGFjZSBNb2RlbHMge1xuXG4gIGV4cG9ydCB0eXBlIEluREJUeXBlID0geyB0YXJnZXQ6IGFueTsgcGF0aDogc3RyaW5nOyB9O1xuICBleHBvcnQgdHlwZSBDaXJjID0geyBwYXRoVG9PYmo6IHN0cmluZzsgY2lyY3VyYWxUYXJnZXRQYXRoOiBzdHJpbmc7IH07XG5cblxuICAvLyBAdHMtaWdub3JlXG4gIGV4cG9ydCB0eXBlIFZlciA9IHsgdjogYW55OyBwOiBzdHJpbmc7IHBhcmVudDogVmVyOyBpc0dldHRlcj86IGJvb2xlYW47IH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFN0YXJ0SXRlcmF0b3JPcHRpb25zIHtcbiAgICB3YWxrR2V0dGVycz86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBEZWZhdWx0IGluIGJyZWFkaFR3YWxrXG4gICAgICovXG4gICAgY2hlY2tDaXJjdXJhbD86IGJvb2xlYW47XG4gICAgYnJlYWR0aFdhbGs/OiBib29sZWFuO1xuICAgIGluY2x1ZGU/OiBzdHJpbmdbXTtcbiAgICBleGNsdWRlPzogc3RyaW5nW107XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEFkZGl0aW9uYWxJdGVyYXRvck9wdGlvbnMgZXh0ZW5kcyBTdGFydEl0ZXJhdG9yT3B0aW9ucyB7XG4gICAgc2tpcE9iamVjdD86ICgpID0+IHZvaWQ7XG4gICAgaXNHZXR0ZXI/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEJyZWFkdGggd2FsayB3aWxsIHNraXAgY29udGVudCBvZiBjaXJjdXJhbCBvYmplY3RzXG4gICAgICovXG4gICAgaXNDaXJjdXJhbD86IGJvb2xlYW47XG4gICAgZXhpdD86ICgpID0+
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvbG9kYXNoLXdhbGstb2JqZWN0L3Byb2plY3RzL2xvZGFzaC13YWxrLW9iamVjdC9zcmMvbGliL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IG5hbWVzcGFjZSBNb2RlbHMge1xuXG4gIGV4cG9ydCB0eXBlIEluREJUeXBlID0geyB0YXJnZXQ6IGFueTsgcGF0aDogc3RyaW5nOyB9O1xuICBleHBvcnQgdHlwZSBDaXJjID0geyBwYXRoVG9PYmo6IHN0cmluZzsgY2lyY3VyYWxUYXJnZXRQYXRoOiBzdHJpbmc7IH07XG5cblxuICAvLyBAdHMtaWdub3JlXG4gIGV4cG9ydCB0eXBlIFZlciA9IHsgdjogYW55OyBwOiBzdHJpbmc7IHBhcmVudDogVmVyOyBpc0dldHRlcj86IGJvb2xlYW47IH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFN0YXJ0SXRlcmF0b3JPcHRpb25zIHtcbiAgICB3YWxrR2V0dGVycz86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBEZWZhdWx0IGluIGJyZWFkaFR3YWxrXG4gICAgICovXG4gICAgY2hlY2tDaXJjdXJhbD86IGJvb2xlYW47XG4gICAgYnJlYWR0aFdhbGs/OiBib29sZWFuO1xuICAgIGluY2x1ZGU/OiBzdHJpbmdbXTtcbiAgICBleGNsdWRlPzogc3RyaW5nW107XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEFkZGl0aW9uYWxJdGVyYXRvck9wdGlvbnMgZXh0ZW5kcyBTdGFydEl0ZXJhdG9yT3B0aW9ucyB7XG4gICAgc2tpcE9iamVjdD86ICgpID0+IHZvaWQ7XG4gICAgaXNHZXR0ZXI/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEJyZWFkdGggd2FsayB3aWxsIHNraXAgY29udGVudCBvZiBjaXJjdXJhbCBvYmplY3RzXG4gICAgICovXG4gICAgaXNDaXJjdXJhbD86IGJvb2xlYW47XG4gICAgZXhpdD86ICgpID0+IHZvaWQ7XG5cbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgSW50ZXJuYWxWYWx1ZXMgZXh0ZW5kcyBBZGRpdGlvbmFsSXRlcmF0b3JPcHRpb25zIHtcbiAgICBkYj86IGFueTtcbiAgICBzdGFjaz86IGFueVtdO1xuICAgIGNpcmN1cmFsPzogQ2lyY1tdO1xuICAgIGhhc0l0ZXJhdG9yPzogYm9vbGVhbjtcbiAgICBfdmFsdWVDaGFuZ2VkOiBib29sZWFuO1xuICAgIF9za2lwOiBib29sZWFuO1xuICAgIF9leGl0OiBib29sZWFuO1xuICB9XG59Il19
|