gitlab-ci-local 4.53.0 → 4.54.0

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 CHANGED
@@ -65,6 +65,16 @@ If your distribution does not support this, you can run these commands:
65
65
  ```bash
66
66
  curl -s "https://gitlab-ci-local-ppa.firecow.dk/pubkey.gpg" | sudo apt-key add -
67
67
  echo "deb https://gitlab-ci-local-ppa.firecow.dk ./" | sudo tee /etc/apt/sources.list.d/gitlab-ci-local.list
68
+
69
+ # OR
70
+
71
+ # MUST be `.asc` at least for older apts (e.g. Ubuntu Focal), since the key is ASCII-armored
72
+ PPA_KEY_PATH=/etc/apt/sources.list.d/gitlab-ci-local-ppa.asc
73
+ curl -s "https://gitlab-ci-local-ppa.firecow.dk/pubkey.gpg" | sudo tee "${PPA_KEY_PATH}"
74
+ echo "deb [ signed-by=${PPA_KEY_PATH} ] https://gitlab-ci-local-ppa.firecow.dk ./" | sudo tee /etc/apt/sources.list.d/gitlab-ci-local.list
75
+
76
+ # and then
77
+
68
78
  sudo apt-get update
69
79
  sudo apt-get install gitlab-ci-local
70
80
  ```
@@ -133,7 +143,7 @@ echo "alias gcl='gitlab-ci-local'" >> ~/.bashrc
133
143
  ### Tab completion
134
144
 
135
145
  ```bash
136
- gitlab-ci-local --completion >> ~/.bashrc
146
+ gitlab-ci-local --completion >> ~/.bashrc
137
147
  ```
138
148
 
139
149
  ### Logging options
@@ -156,7 +166,7 @@ to `when: never`.
156
166
 
157
167
  ```text
158
168
  name description stage when allow_failure needs
159
- test-job Run Tests test on_success false
169
+ test-job Run Tests test on_success false
160
170
  build-job build on_success true [test-job]
161
171
  ```
162
172
 
@@ -166,7 +176,7 @@ Same as `--list` but will also print out jobs which are set to `when: never` (di
166
176
 
167
177
  ```text
168
178
  name description stage when allow_failure needs
169
- test-job Run Tests test on_success false
179
+ test-job Run Tests test on_success false
170
180
  build-job build on_success true [test-job]
171
181
  deploy-job deploy never false [build-job]
172
182
  ```
@@ -199,8 +209,6 @@ deploy-job;"";deploy;never;false;[build-job]
199
209
 
200
210
  ## Quirks
201
211
 
202
- git+http isn't properly supported https://github.com/firecow/gitlab-ci-local/issues/605 and has certain quirks
203
-
204
212
  ### Tracked Files
205
213
 
206
214
  Untracked and ignored files will not be synced inside isolated jobs, only tracked files are synced.
@@ -219,7 +227,7 @@ local-only-job:
219
227
  local-only-subsection:
220
228
  script:
221
229
  - if [ $GITLAB_CI == 'false' ]; then eslint . --fix; fi
222
- - eslint .
230
+ - eslint .
223
231
  ```
224
232
 
225
233
  ### Home file variables
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Tired of pushing to test your .gitlab-ci.yml?",
4
4
  "main": "src/index.js",
5
5
  "bin": "src/index.js",
6
- "version": "4.53.0",
6
+ "version": "4.54.0",
7
7
  "scripts": {
8
8
  "pkg-linux": "pkg src/index.js --public -t node18-linux-x64 -o bin/linux/gitlab-ci-local && chmod +x bin/linux/gitlab-ci-local && gzip -c bin/linux/gitlab-ci-local > bin/linux.gz",
9
9
  "pkg-macos": "pkg src/index.js --public -t node18-macos-x64 -o bin/macos/gitlab-ci-local && gzip -c bin/macos/gitlab-ci-local > bin/macos.gz",
package/src/commander.js CHANGED
@@ -207,6 +207,7 @@ class Commander {
207
207
  when: job.when,
208
208
  allow_failure: job.allowFailure,
209
209
  needs: job.needs?.filter(n => !n.project && !n.pipeline),
210
+ rules: job.rules,
210
211
  });
211
212
  });
212
213
  writeStreams.stdout(`${JSON.stringify(json, null, 2)}\n`);
@@ -228,4 +229,4 @@ class Commander {
228
229
  }
229
230
  }
230
231
  exports.Commander = Commander;
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29tbWFuZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEwQjtBQUcxQixtQ0FBOEI7QUFFOUIseUNBQW9DO0FBQ3BDLHdEQUEwQjtBQUUxQixtQ0FBc0M7QUFFdEMsTUFBYSxTQUFTO0lBRWxCLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFFLElBQVUsRUFBRSxNQUFjLEVBQUUsWUFBMEI7UUFDNUUsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN6QixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBRTdCLElBQUksaUJBQWlCLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUM7UUFDdEUsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdkcsTUFBTSxtQkFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlELE1BQU0sU0FBUyxDQUFDLFdBQVcsQ0FBQztZQUN4QixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFlBQVksRUFBRSxZQUFZO1lBQzFCLElBQUksRUFBRSxJQUFJO1lBQ1YsTUFBTSxFQUFFLE1B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QUM7SUFDUCxDQUFDO0NBRUo7QUFwUUQsOEJBb1FDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuaW1wb3J0IHtKb2J9IGZyb20gXCIuL2pvYlwiO1xuaW1wb3J0IHtQYXJzZXJ9IGZyb20gXCIuL3BhcnNlclwiO1xuaW1wb3J0IHtVdGlsc30gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB7V3JpdGVTdHJlYW1zfSBmcm9tIFwiLi93cml0ZS1zdHJlYW1zXCI7XG5pbXBvcnQge0V4ZWN1dG9yfSBmcm9tIFwiLi9leGVjdXRvclwiO1xuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IHtBcmd2fSBmcm9tIFwiLi9hcmd2XCI7XG5pbXBvcnQge0Fzc2VydGlvbkVycm9yfSBmcm9tIFwiYXNzZXJ0XCI7XG5cbmV4cG9ydCBjbGFzcyBDb21tYW5kZXIge1xuXG4gICAgc3RhdGljIGFzeW5jIHJ1blBpcGVsaW5lIChhcmd2OiBBcmd2LCBwYXJzZXI6IFBhcnNlciwgd3JpdGVTdHJlYW1zOiBXcml0ZVN0cmVhbXMpIHtcbiAgICAgICAgY29uc3Qgam9icyA9IHBhcnNlci5qb2JzO1xuICAgICAgICBjb25zdCBzdGFnZXMgPSBwYXJzZXIuc3RhZ2VzO1xuXG4gICAgICAgIGxldCBwb3RlbnRpYWxTdGFydGVycyA9IFsuLi5qb2JzLnZhbHVlcygpXTtcbiAgICAgICAgcG90ZW50aWFsU3RhcnRlcnMgPSBwb3RlbnRpYWxTdGFydGVycy5maWx0ZXIoaiA9PiBqLndoZW4gIT09IFwibmV2ZXJcIik7XG4gICAgICAgIHBvdGVudGlhbFN0YXJ0ZXJzID0gcG90ZW50aWFsU3RhcnRlcnMuZmlsdGVyKGogPT4gai53aGVuICE9PSBcIm1hbnVhbFwiIHx8IGFyZ3YubWFudWFsLmluY2x1ZGVzKGoubmFtZSkpO1xuICAgICAgICBhd2FpdCBFeGVjdXRvci5ydW5Mb29wKGFyZ3YsIGpvYnMsIHN0YWdlcywgcG90ZW50aWFsU3RhcnRlcnMpO1xuICAgICAgICBhd2FpdCBDb21tYW5kZXIucHJpbnRSZXBvcnQoe1xuICAgICAgICAgICAgY3dkOiBhcmd2LmN3ZCxcbiAgICAgICAgICAgIHNob3dUaW1lc3RhbXBzOiBhcmd2LnNob3dUaW1lc3RhbXBzLFxuICAgICAgICAgICAgc3RhdGVEaXI6IGFyZ3Yuc3RhdGVEaXIsXG4gICAgICAgICAgICB3cml0ZVN0cmVhbXM6IHdyaXRlU3RyZWFtcyxcbiAgICAgICAgICAgIGpvYnM6IGpvYnMsXG4gICAgICAgICAgICBzdGFnZXM6IHN0YWdlcyxcbiAgICAgICAgICAgIGpvYk5hbWVQYWQ6IHBhcnNlci5qb2JOYW1lUGFkLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgYXN5bmMgcnVuSm9ic0luU3RhZ2UgKGFyZ3Y6IEFyZ3YsIHBhcnNlcjogUGFyc2VyLCB3cml0ZVN0cmVhbXM6IFdyaXRlU3RyZWFtcykge1xuICAgICAgICBjb25zdCBqb2JzID0gcGFyc2VyLmpvYnMuZmlsdGVyKGogPT4gai5zdGFnZSA9PT0gYXJndi5zdGFnZSk7XG4gICAgICAgIGNvbnN0IHN0YWdlcyA9IHBhcnNlci5zdGFnZXM7XG5cbiAgICAgICAgbGV0IHBvdGVudGlhbFN0YXJ0ZXJzID0gWy4uLmpvYnMudmFsdWVzKCldO1xuICAgICAgICBwb3RlbnRpYWxTdGFydGVycyA9IHBvdGVudGlhbFN0YXJ0ZXJzLmZpbHRlcihqID0+IGoud2hlbiAhPT0gXCJuZXZlclwiKTtcbiAgICAgICAgcG90ZW50aWFsU3RhcnRlcnMgPSBwb3RlbnRpYWxTdGFydGVycy5maWx0ZXIoaiA9PiBqLndoZW4gIT09IFwibWFudWFsXCIgfHwgYXJndi5tYW51YWwuaW5jbHVkZXMoai5uYW1lKSk7XG4gICAgICAgIHBvdGVudGlhbFN0YXJ0ZXJzID0gcG90ZW50aWFsU3RhcnRlcnMuZmlsdGVyKGogPT4gai5zdGFnZSA9PT0gYXJndi5zdGFnZSk7XG4gICAgICAgIGF3YWl0IEV4ZWN1dG9yLnJ1bkxvb3AoYXJndiwgam9icywgc3RhZ2VzLCBwb3RlbnRpYWxTdGFydGVycyk7XG4gICAgICAgIGF3YWl0IENvbW1hbmRlci5wcmludFJlcG9ydCh7XG4gICAgICAgICAgICBjd2Q6IGFyZ3YuY3dkLFxuICAgICAgICAgICAgc2hvd1RpbWVzdGFtcHM6IGFyZ3Yuc2hvd1RpbWVzdGFtcHMsXG4gICAgICAgICAgICBzdGF0ZURpcjogYXJndi5zdGF0ZURpcixcbiAgICAgICAgICAgIHdyaXRlU3RyZWFtczogd3JpdGVTdHJlYW1zLFxuICAgICAgICAgICAgam9iczogam9icyxcbiAgICAgICAgICAgIHN0YWdlczogc3RhZ2VzLFxuICAgICAgICAgICAgam9iTmFtZVBhZDogcGFyc2VyLmpvYk5hbWVQYWQsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBhc3luYyBydW5Kb2JzIChhcmd2OiBBcmd2LCBwYXJzZXI6IFBhcnNlciwgd3JpdGVTdHJlYW1zOiBXcml0ZVN0cmVhbXMpIHtcbiAgICAgICAgY29uc3QgbmVlZHMgPSBhcmd2Lm5lZWRzIHx8IGFyZ3Yub25seU5lZWRzO1xuICAgICAgICBjb25zdCBqb2JBcmdzID0gYXJndi5qb2I7XG4gICAgICAgIGNvbnN0IGpvYnMgPSBwYXJzZXIuam9icztcbiAgICAgICAgY29uc3Qgc3RhZ2VzID0gcGFyc2VyLnN0YWdlcztcblxuICAgICAgICBjb25zdCBwb3RlbnRpYWxTdGFydGVyczogSm9iW10gPSBbXTtcbiAgICAgICAgY29uc3Qgam9iU2V0ID0gbmVlZHMgPyBuZXcgU2V0KGpvYnMpIDogbmV3IFNldDxKb2I+KCk7XG4gICAgICAgIGpvYkFyZ3MuZm9yRWFjaChqb2JBcmdOYW1lID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGJhc2VKb2JzID0gam9icy5maWx0ZXIoaiA9PiBqLmJhc2VOYW1lID09IGpvYkFyZ05hbWUgfHwgai5uYW1lID09PSBqb2JBcmdOYW1lKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgYiBvZiBiYXNlSm9icykge1xuICAgICAgICAgICAgICAgIGpvYlNldC5hZGQoYik7XG4gICAgICAgICAgICAgICAgaWYgKG5lZWRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvdGVudGlhbFN0YXJ0ZXJzLnB1c2goLi4uRXhlY3V0b3IuZ2V0UGFzdFRvV2FpdEZvcihqb2JzLCBzdGFnZXMsIGIsIGFyZ3YubWFudWFsKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBvdGVudGlhbFN0YXJ0ZXJzLnB1c2goYik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChwb3RlbnRpYWxTdGFydGVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBBc3NlcnRpb25FcnJvcih7bWVzc2FnZTogY2hhbGtge2JsdWVCcmlnaHQgJHtqb2JBcmdzLmpvaW4oXCIsXCIpfX0gY291bGQgbm90IGJlIGZvdW5kYH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3RhcnRlcnMgPSBhcmd2Lm9ubHlOZWVkc1xuICAgICAgICAgICAgPyBwb3RlbnRpYWxTdGFydGVycy5maWx0ZXIocCA9PiAham9iQXJncy5pbmNsdWRlcyhwLm5hbWUpKVxuICAgICAgICAgICAgOiBwb3RlbnRpYWxTdGFydGVycztcblxuICAgICAgICBhd2FpdCBFeGVjdXRvci5ydW5Mb29wKGFyZ3YsIEFycmF5LmZyb20oam9iU2V0KSwgc3RhZ2VzLCBzdGFydGVycyk7XG4gICAgICAgIGF3YWl0IENvbW1hbmRlci5wcmludFJlcG9ydCh7XG4gICAgICAgICAgICBjd2Q6IGFyZ3YuY3dkLFxuICAgICAgICAgICAgc2hvd1RpbWVzdGFtcHM6IGFyZ3Yuc2hvd1RpbWVzdGFtcHMsXG4gICAgICAgICAgICBzdGF0ZURpcjogYXJndi5zdGF0ZURpcixcbiAgICAgICAgICAgIHdyaXRlU3RyZWFtczogd3JpdGVTdHJlYW1zLFxuICAgICAgICAgICAgam9iczogam9icyxcbiAgICAgICAgICAgIHN0YWdlczogc3RhZ2VzLFxuICAgICAgICAgICAgam9iTmFtZVBhZDogcGFyc2VyLmpvYk5hbWVQYWQsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBhc3luYyBwcmludFJlcG9ydCAoe2N3ZCwgc3RhdGVEaXIsIHNob3dUaW1lc3RhbXBzLCB3cml0ZVN0cmVhbXMsIGpvYnMsIHN0YWdlcywgam9iTmFtZVBhZH06IHtcbiAgICAgICAgY3dkOiBzdHJpbmc7XG4gICAgICAgIHNob3dUaW1lc3RhbXBzOiBib29sZWFuO1xuICAgICAgICBzdGF0ZURpcjogc3RyaW5nO1xuICAgICAgICB3cml0ZVN0cmVhbXM6IFdyaXRlU3RyZWFtcztcbiAgICAgICAgam9iczogUmVhZG9ubHlBcnJheTxKb2I+O1xuICAgICAgICBzdGFnZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICAgICAgICBqb2JOYW1lUGFkOiBudW1iZXI7XG4gICAgfSkge1xuXG4gICAgICAgIHdyaXRlU3RyZWFtcy5zdGRvdXQoXCJcXG5cIik7XG5cbiAgICAgICAgY29uc3QgcmVuZGVyRHVyYXRpb24gPSAoZHVyYXRpb246IHN0cmluZykgPT4gc2hvd1RpbWVzdGFtcHMgPyBgIFske2R1cmF0aW9uLnBhZFN0YXJ0KDcpfV1gIDogXCJcIjtcblxuICAgICAgICBjb25zdCBwcmVTY3JpcHRzOiB7c3VjY2Vzc2Z1bDogSm9iW107IGZhaWxlZDogSm9iW107IHdhcm5lZDogSm9iW119ID0ge1xuICAgICAgICAgICAgc3VjY2Vzc2Z1bDogW10sXG4gICAgICAgICAgICBmYWlsZWQ6IFtdLFxuICAgICAgICAgICAgd2FybmVkOiBbXSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgYWZ0ZXJTY3JpcHRzOiB7d2FybmVkOiBKb2JbXX0gPSB7XG4gICAgICAgICAgICB3YXJuZWQ6IFtdLFxuICAgICAgICB9O1xuXG4gICAgICAgIGZvciAoY29uc3Qgam9iIG9mIGpvYnMudmFsdWVzKCkpIHtcbiAgICAgICAgICAgIGlmIChqb2Iuc3RhcnRlZCAmJiBqb2IuYWZ0ZXJTY3JpcHRzRXhpdENvZGUgIT09IDApIHtcbiAgICAgICAgICAgICAgICBhZnRlclNjcmlwdHMud2FybmVkLnB1c2goam9iKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3Qgam9iIG9mIGpvYnMudmFsdWVzKCkpIHtcbiAgICAgICAgICAgIGlmICgham9iLnN0YXJ0ZWQpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGpvYi5qb2JTdGF0dXMgPT09IFwic3VjY2Vzc1wiKSB7XG4gICAgICAgICAgICAgICAgcHJlU2NyaXB0cy5zdWNjZXNzZnVsLnB1c2goam9iKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoam9iLmpvYlN0YXR1cyA9PT0gXCJ3YXJuaW5nXCIpIHtcbiAgICAgICAgICAgICAgICBwcmVTY3JpcHRzLndhcm5lZC5wdXNoKGpvYik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHByZVNjcmlwdHMuZmFpbGVkLnB1c2goam9iKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcmVTY3JpcHRzLnN1Y2Nlc3NmdWwubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICBwcmVTY3JpcHRzLnN1Y2Nlc3NmdWwuc29ydCgoYSwgYikgPT4gc3RhZ2VzLmluZGV4T2YoYS5zdGFnZSkgLSBzdGFnZXMuaW5kZXhPZihiLnN0YWdlKSk7XG4gICAgICAgICAgICBwcmVTY3JpcHRzLnN1Y2Nlc3NmdWwuZm9yRWFjaCgoe2NvdmVyYWdlUGVyY2VudCwgbmFtZSwgcHJldHR5RHVyYXRpb259KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmFtZVBhZCA9IG5hbWUucGFkRW5kKGpvYk5hbWVQYWQpO1xuICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRvdXQoY2hhbGtge2JsYWNrLmJnR3JlZW5CcmlnaHQgIFBBU1MgfSR7cmVuZGVyRHVyYXRpb24ocHJldHR5RHVyYXRpb24pfSB7Ymx1ZUJyaWdodCAke25hbWVQYWR9fWApO1xuICAgICAgICAgICAgICAgIGlmIChjb3ZlcmFnZVBlcmNlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChjaGFsa2AgJHtjb3ZlcmFnZVBlcmNlbnR9JSB7Z3JleSBjb3ZlcmFnZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChcIlxcblwiKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByZVNjcmlwdHMud2FybmVkLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgICAgcHJlU2NyaXB0cy53YXJuZWQuc29ydCgoYSwgYikgPT4gc3RhZ2VzLmluZGV4T2YoYS5zdGFnZSkgLSBzdGFnZXMuaW5kZXhPZihiLnN0YWdlKSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHtuYW1lLCBwcmV0dHlEdXJhdGlvbn0gb2YgcHJlU2NyaXB0cy53YXJuZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuYW1lUGFkID0gbmFtZS5wYWRFbmQoam9iTmFtZVBhZCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2FmZU5hbWUgPSBVdGlscy5zYWZlRG9ja2VyU3RyaW5nKG5hbWUpO1xuICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRvdXQoY2hhbGtge2JsYWNrLmJnWWVsbG93QnJpZ2h0ICBXQVJOIH0ke3JlbmRlckR1cmF0aW9uKHByZXR0eUR1cmF0aW9uKX0ge2JsdWVCcmlnaHQgJHtuYW1lUGFkfX0gIHByZV9zY3JpcHRcXG5gKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXRwdXRMb2cgPSBhd2FpdCBmcy5yZWFkRmlsZShgJHtjd2R9LyR7c3RhdGVEaXJ9L291dHB1dC8ke3NhZmVOYW1lfS5sb2dgLCBcInV0ZjhcIik7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIG91dHB1dExvZy5zcGxpdCgvXFxyP1xcbi8pLmZpbHRlcihqID0+ICFqLmluY2x1ZGVzKFwiWzMybSQgXCIpKS5maWx0ZXIoaiA9PiBqICE9PSBcIlwiKS5zbGljZSgtMykpIHtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChjaGFsa2AgIHt5ZWxsb3cgPn0gJHtsaW5lfVxcbmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhZnRlclNjcmlwdHMud2FybmVkLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgICAgYWZ0ZXJTY3JpcHRzLndhcm5lZC5zb3J0KChhLCBiKSA9PiBzdGFnZXMuaW5kZXhPZihhLnN0YWdlKSAtIHN0YWdlcy5pbmRleE9mKGIuc3RhZ2UpKTtcbiAgICAgICAgICAgIGFmdGVyU2NyaXB0cy53YXJuZWQuZm9yRWFjaCgoe25hbWUsIHByZXR0eUR1cmF0aW9ufSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5hbWVQYWQgPSBuYW1lLnBhZEVuZChqb2JOYW1lUGFkKTtcbiAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbXMuc3Rkb3V0KGNoYWxrYHtibGFjay5iZ1llbGxvd0JyaWdodCAgV0FSTiB9JHtyZW5kZXJEdXJhdGlvbihwcmV0dHlEdXJhdGlvbil9IHtibHVlQnJpZ2h0ICR7bmFtZVBhZH19ICBhZnRlcl9zY3JpcHRcXG5gKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByZVNjcmlwdHMuZmFpbGVkLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgICAgcHJlU2NyaXB0cy5mYWlsZWQuc29ydCgoYSwgYikgPT4gc3RhZ2VzLmluZGV4T2YoYS5zdGFnZSkgLSBzdGFnZXMuaW5kZXhPZihiLnN0YWdlKSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHtuYW1lLCBwcmV0dHlEdXJhdGlvbn0gb2YgcHJlU2NyaXB0cy5mYWlsZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuYW1lUGFkID0gbmFtZS5wYWRFbmQoam9iTmFtZVBhZCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2FmZU5hbWUgPSBVdGlscy5zYWZlRG9ja2VyU3RyaW5nKG5hbWUpO1xuICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRvdXQoY2hhbGtge2JsYWNrLmJnUmVkICBGQUlMIH0ke3JlbmRlckR1cmF0aW9uKHByZXR0eUR1cmF0aW9uKX0ge2JsdWVCcmlnaHQgJHtuYW1lUGFkfX1cXG5gKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXRwdXRMb2cgPSBhd2FpdCBmcy5yZWFkRmlsZShgJHtjd2R9LyR7c3RhdGVEaXJ9L291dHB1dC8ke3NhZmVOYW1lfS5sb2dgLCBcInV0ZjhcIik7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIG91dHB1dExvZy5zcGxpdCgvXFxyP1xcbi8pLmZpbHRlcihqID0+ICFqLmluY2x1ZGVzKFwiWzMybSQgXCIpKS5maWx0ZXIoaiA9PiBqICE9PSBcIlwiKS5zbGljZSgtMykpIHtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChjaGFsa2AgIHtyZWQgPn0gJHtsaW5lfVxcbmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3Qgam9iIG9mIHByZVNjcmlwdHMuc3VjY2Vzc2Z1bCkge1xuICAgICAgICAgICAgY29uc3QgZSA9IGpvYi5lbnZpcm9ubWVudDtcbiAgICAgICAgICAgIGlmIChlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBlLm5hbWU7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSBlLnVybDtcbiAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRvdXQoY2hhbGtge2JsdWVCcmlnaHQgJHtqb2IubmFtZX19IGVudmlyb25tZW50OiBcXHsgbmFtZToge2JvbGQgJHtuYW1lfX1gKTtcbiAgICAgICAgICAgIGlmICh1cmwgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRvdXQoY2hhbGtgLCB1cmw6IHtib2xkICR7dXJsfX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRvdXQoXCIgfVxcblwiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBydW5MaXN0IChwYXJzZXI6IFBhcnNlciwgd3JpdGVTdHJlYW1zOiBXcml0ZVN0cmVhbXMsIGxpc3RBbGw6IGJvb2xlYW4pIHtcbiAgICAgICAgY29uc3Qgc3RhZ2VzID0gcGFyc2VyLnN0YWdlcztcbiAgICAgICAgbGV0IGpvYnMgPSBbLi4ucGFyc2VyLmpvYnMudmFsdWVzKCldO1xuICAgICAgICBqb2JzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzdGFnZXMuaW5kZXhPZihhLnN0YWdlKSAtIHN0YWdlcy5pbmRleE9mKGIuc3RhZ2UpO1xuICAgICAgICB9KTtcblxuICAgICAgICBsZXQgd2hlblBhZEVuZCA9IDQ7XG4gICAgICAgIGpvYnMuZm9yRWFjaChqID0+IHdoZW5QYWRFbmQgPSBNYXRoLm1heChqLndoZW4ubGVuZ3RoLCB3aGVuUGFkRW5kKSk7XG5cbiAgICAgICAgbGV0IHN0YWdlUGFkRW5kID0gNTtcbiAgICAgICAgc3RhZ2VzLmZvckVhY2gocyA9PiBzdGFnZVBhZEVuZCA9IE1hdGgubWF4KHMubGVuZ3RoLCBzdGFnZVBhZEVuZCkpO1xuXG4gICAgICAgIGxldCBkZXNjcmlwdGlvblBhZEVuZCA9IDExO1xuICAgICAgICBqb2JzLmZvckVhY2goaiA9PiBkZXNjcmlwdGlvblBhZEVuZCA9IE1hdGgubWF4KGouZGVzY3JpcHRpb24ubGVuZ3RoLCBkZXNjcmlwdGlvblBhZEVuZCkpO1xuXG4gICAgICAgIGNvbnN0IGpvYk5hbWVQYWQgPSBwYXJzZXIuam9iTmFtZVBhZDtcblxuICAgICAgICBpZiAoIWxpc3RBbGwpIHtcbiAgICAgICAgICAgIGpvYnMgPSBqb2JzLmZpbHRlcihqID0+IGoud2hlbiAhPT0gXCJuZXZlclwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHdyaXRlU3RyZWFtcy5zdGRvdXQoY2hhbGtge2dyZXkgJHtcIm5hbWVcIi5wYWRFbmQoam9iTmFtZVBhZCl9ICAke1wiZGVzY3JpcHRpb25cIi5wYWRFbmQoZGVzY3JpcHRpb25QYWRFbmQpfX0gIGApO1xuICAgICAgICB3cml0ZVN0cmVhbXMuc3Rkb3V0KGNoYWxrYHtncmV5ICR7XCJzdGFnZVwiLnBhZEVuZChzdGFnZVBhZEVuZCl9ICAke1wid2hlblwiLnBhZEVuZCh3aGVuUGFkRW5kKX19ICBgKTtcbiAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChjaGFsa2B7Z3JleSBhbGxvd19mYWlsdXJlICBuZWVkc31cXG5gKTtcblxuICAgICAgICBjb25zdCByZW5kZXJMaW5lID0gKGpvYjogSm9iKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZWVkcyA9IGpvYi5uZWVkcz8uZmlsdGVyKG4gPT4gIW4ucHJvamVjdCAmJiAhbi5waXBlbGluZSkubWFwKG4gPT4gbi5qb2IpO1xuICAgICAgICAgICAgY29uc3QgYWxsb3dGYWlsdXJlID0gam9iLmFsbG93RmFpbHVyZSA/IFwidHJ1ZSBcIiA6IFwiZmFsc2VcIjtcbiAgICAgICAgICAgIGxldCBqb2JMaW5lID0gY2hhbGtge2JsdWVCcmlnaHQgJHtqb2IubmFtZS5wYWRFbmQoam9iTmFtZVBhZCl9fSAgJHtqb2IuZGVzY3JpcHRpb24ucGFkRW5kKGRlc2NyaXB0aW9uUGFkRW5kKX0gIGA7XG4gICAgICAgICAgICBqb2JMaW5lICs9IGNoYWxrYHt5ZWxsb3cgJHtqb2Iuc3RhZ2UucGFkRW5kKHN0YWdlUGFkRW5kKX19ICAke2pvYi53aGVuLnBhZEVuZCh3aGVuUGFkRW5kKX0gICR7YWxsb3dGYWlsdXJlLnBhZEVuZCgxMSl9YDtcbiAgICAgICAgICAgIGlmIChuZWVkcykge1xuICAgICAgICAgICAgICAgIGpvYkxpbmUgKz0gY2hhbGtgICAgIFt7Ymx1ZUJyaWdodCAke25lZWRzfX1dYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRvdXQoYCR7am9iTGluZX1cXG5gKTtcbiAgICAgICAgfTtcblxuICAgICAgICBqb2JzLmZvckVhY2goKGpvYikgPT4gcmVuZGVyTGluZShqb2IpKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgcnVuSnNvbiAocGFyc2VyOiBQYXJzZXIsIHdyaXRlU3RyZWFtczogV3JpdGVTdHJlYW1zKSB7XG4gICAgICAgIGNvbnN0IGpvYnMgPSBbLi4ucGFyc2VyLmpvYnMudmFsdWVzKCldO1xuICAgICAgICBjb25zdCBqc29uOiBhbnlbXSA9IFtdO1xuXG4gICAgICAgIGpvYnMuZm9yRWFjaCgoam9iKSA9PiB7XG4gICAgICAgICAgICBqc29uLnB1c2goe1xuICAgICAgICAgICAgICAgIG5hbWU6IGpvYi5uYW1lLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBqb2IuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgc3RhZ2U6IGpvYi5zdGFnZSxcbiAgICAgICAgICAgICAgICB3aGVuOiBqb2Iud2hlbixcbiAgICAgICAgICAgICAgICBhbGxvd19mYWlsdXJlOiBqb2IuYWxsb3dGYWlsdXJlLFxuICAgICAgICAgICAgICAgIG5lZWRzOiBqb2IubmVlZHM/LmZpbHRlcihuID0+ICFuLnByb2plY3QgJiYgIW4ucGlwZWxpbmUpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHdyaXRlU3RyZWFtcy5zdGRvdXQoYCR7SlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgMil9XFxuYCk7XG4gICAgfVxuXG4gICAgc3RhdGljIHJ1bkNzdiAocGFyc2VyOiBQYXJzZXIsIHdyaXRlU3RyZWFtczogV3JpdGVTdHJlYW1zLCBhbGw6IGJvb2xlYW4pIHtcbiAgICAgICAgY29uc3Qgc3RhZ2VzID0gcGFyc2VyLnN0YWdlcztcbiAgICAgICAgbGV0IGpvYnMgPSBbLi4ucGFyc2VyLmpvYnMudmFsdWVzKCldO1xuICAgICAgICBqb2JzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzdGFnZXMuaW5kZXhPZihhLnN0YWdlKSAtIHN0YWdlcy5pbmRleE9mKGIuc3RhZ2UpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWFsbCkge1xuICAgICAgICAgICAgam9icyA9IGpvYnMuZmlsdGVyKGogPT4gai53aGVuICE9PSBcIm5ldmVyXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChcIm5hbWU7ZGVzY3JpcHRpb247c3RhZ2U7d2hlbjthbGxvd0ZhaWx1cmU7bmVlZHNcXG5cIik7XG4gICAgICAgIGpvYnMuZm9yRWFjaCgoam9iKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZWVkcyA9IGpvYi5uZWVkcz8uZmlsdGVyKG4gPT4gIW4ucHJvamVjdCAmJiAhbi5waXBlbGluZSkubWFwKG4gPT4gbi5qb2IpLmpvaW4oXCIsXCIpID8/IFtdO1xuICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChgJHtqb2IubmFtZX07XCIke2pvYi5kZXNjcmlwdGlvbn1cIjske2pvYi5zdGFnZX07JHtqb2Iud2hlbn07JHtqb2IuYWxsb3dGYWlsdXJlfTtbJHtuZWVkc31dXFxuYCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxufVxuIl19
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29tbWFuZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEwQjtBQUcxQixtQ0FBOEI7QUFFOUIseUNBQW9DO0FBQ3BDLHdEQUEwQjtBQUUxQixtQ0FBc0M7QUFFdEMsTUFBYSxTQUFTO0lBRWxCLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFFLElBQVUsRUFBRSxNQUFjLEVBQUUsWUFBMEI7UUFDNUUsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN6QixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBRTdCLElBQUksaUJBQWlCLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUM7UUFDdEUsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdkcsTUFBTSxtQkFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlELE1BQU0sU0FBUyxDQUFDLFdBQVcsQ0FBQztZQUN4QixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFlBQVksRUFBRSxZQUFZO1lBQzFCLElBQUksRUFBRSxJQUFJO1lBQ1YsTUFBTSxFQUFFLE1B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QUFLLENBQUMsQ0FBQztRQUN0SCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FFSjtBQXJRRCw4QkFxUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5pbXBvcnQge0pvYn0gZnJvbSBcIi4vam9iXCI7XG5pbXBvcnQge1BhcnNlcn0gZnJvbSBcIi4vcGFyc2VyXCI7XG5pbXBvcnQge1V0aWxzfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHtXcml0ZVN0cmVhbXN9IGZyb20gXCIuL3dyaXRlLXN0cmVhbXNcIjtcbmltcG9ydCB7RXhlY3V0b3J9IGZyb20gXCIuL2V4ZWN1dG9yXCI7XG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQge0FyZ3Z9IGZyb20gXCIuL2FyZ3ZcIjtcbmltcG9ydCB7QXNzZXJ0aW9uRXJyb3J9IGZyb20gXCJhc3NlcnRcIjtcblxuZXhwb3J0IGNsYXNzIENvbW1hbmRlciB7XG5cbiAgICBzdGF0aWMgYXN5bmMgcnVuUGlwZWxpbmUgKGFyZ3Y6IEFyZ3YsIHBhcnNlcjogUGFyc2VyLCB3cml0ZVN0cmVhbXM6IFdyaXRlU3RyZWFtcykge1xuICAgICAgICBjb25zdCBqb2JzID0gcGFyc2VyLmpvYnM7XG4gICAgICAgIGNvbnN0IHN0YWdlcyA9IHBhcnNlci5zdGFnZXM7XG5cbiAgICAgICAgbGV0IHBvdGVudGlhbFN0YXJ0ZXJzID0gWy4uLmpvYnMudmFsdWVzKCldO1xuICAgICAgICBwb3RlbnRpYWxTdGFydGVycyA9IHBvdGVudGlhbFN0YXJ0ZXJzLmZpbHRlcihqID0+IGoud2hlbiAhPT0gXCJuZXZlclwiKTtcbiAgICAgICAgcG90ZW50aWFsU3RhcnRlcnMgPSBwb3RlbnRpYWxTdGFydGVycy5maWx0ZXIoaiA9PiBqLndoZW4gIT09IFwibWFudWFsXCIgfHwgYXJndi5tYW51YWwuaW5jbHVkZXMoai5uYW1lKSk7XG4gICAgICAgIGF3YWl0IEV4ZWN1dG9yLnJ1bkxvb3AoYXJndiwgam9icywgc3RhZ2VzLCBwb3RlbnRpYWxTdGFydGVycyk7XG4gICAgICAgIGF3YWl0IENvbW1hbmRlci5wcmludFJlcG9ydCh7XG4gICAgICAgICAgICBjd2Q6IGFyZ3YuY3dkLFxuICAgICAgICAgICAgc2hvd1RpbWVzdGFtcHM6IGFyZ3Yuc2hvd1RpbWVzdGFtcHMsXG4gICAgICAgICAgICBzdGF0ZURpcjogYXJndi5zdGF0ZURpcixcbiAgICAgICAgICAgIHdyaXRlU3RyZWFtczogd3JpdGVTdHJlYW1zLFxuICAgICAgICAgICAgam9iczogam9icyxcbiAgICAgICAgICAgIHN0YWdlczogc3RhZ2VzLFxuICAgICAgICAgICAgam9iTmFtZVBhZDogcGFyc2VyLmpvYk5hbWVQYWQsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBhc3luYyBydW5Kb2JzSW5TdGFnZSAoYXJndjogQXJndiwgcGFyc2VyOiBQYXJzZXIsIHdyaXRlU3RyZWFtczogV3JpdGVTdHJlYW1zKSB7XG4gICAgICAgIGNvbnN0IGpvYnMgPSBwYXJzZXIuam9icy5maWx0ZXIoaiA9PiBqLnN0YWdlID09PSBhcmd2LnN0YWdlKTtcbiAgICAgICAgY29uc3Qgc3RhZ2VzID0gcGFyc2VyLnN0YWdlcztcblxuICAgICAgICBsZXQgcG90ZW50aWFsU3RhcnRlcnMgPSBbLi4uam9icy52YWx1ZXMoKV07XG4gICAgICAgIHBvdGVudGlhbFN0YXJ0ZXJzID0gcG90ZW50aWFsU3RhcnRlcnMuZmlsdGVyKGogPT4gai53aGVuICE9PSBcIm5ldmVyXCIpO1xuICAgICAgICBwb3RlbnRpYWxTdGFydGVycyA9IHBvdGVudGlhbFN0YXJ0ZXJzLmZpbHRlcihqID0+IGoud2hlbiAhPT0gXCJtYW51YWxcIiB8fCBhcmd2Lm1hbnVhbC5pbmNsdWRlcyhqLm5hbWUpKTtcbiAgICAgICAgcG90ZW50aWFsU3RhcnRlcnMgPSBwb3RlbnRpYWxTdGFydGVycy5maWx0ZXIoaiA9PiBqLnN0YWdlID09PSBhcmd2LnN0YWdlKTtcbiAgICAgICAgYXdhaXQgRXhlY3V0b3IucnVuTG9vcChhcmd2LCBqb2JzLCBzdGFnZXMsIHBvdGVudGlhbFN0YXJ0ZXJzKTtcbiAgICAgICAgYXdhaXQgQ29tbWFuZGVyLnByaW50UmVwb3J0KHtcbiAgICAgICAgICAgIGN3ZDogYXJndi5jd2QsXG4gICAgICAgICAgICBzaG93VGltZXN0YW1wczogYXJndi5zaG93VGltZXN0YW1wcyxcbiAgICAgICAgICAgIHN0YXRlRGlyOiBhcmd2LnN0YXRlRGlyLFxuICAgICAgICAgICAgd3JpdGVTdHJlYW1zOiB3cml0ZVN0cmVhbXMsXG4gICAgICAgICAgICBqb2JzOiBqb2JzLFxuICAgICAgICAgICAgc3RhZ2VzOiBzdGFnZXMsXG4gICAgICAgICAgICBqb2JOYW1lUGFkOiBwYXJzZXIuam9iTmFtZVBhZCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGFzeW5jIHJ1bkpvYnMgKGFyZ3Y6IEFyZ3YsIHBhcnNlcjogUGFyc2VyLCB3cml0ZVN0cmVhbXM6IFdyaXRlU3RyZWFtcykge1xuICAgICAgICBjb25zdCBuZWVkcyA9IGFyZ3YubmVlZHMgfHwgYXJndi5vbmx5TmVlZHM7XG4gICAgICAgIGNvbnN0IGpvYkFyZ3MgPSBhcmd2LmpvYjtcbiAgICAgICAgY29uc3Qgam9icyA9IHBhcnNlci5qb2JzO1xuICAgICAgICBjb25zdCBzdGFnZXMgPSBwYXJzZXIuc3RhZ2VzO1xuXG4gICAgICAgIGNvbnN0IHBvdGVudGlhbFN0YXJ0ZXJzOiBKb2JbXSA9IFtdO1xuICAgICAgICBjb25zdCBqb2JTZXQgPSBuZWVkcyA/IG5ldyBTZXQoam9icykgOiBuZXcgU2V0PEpvYj4oKTtcbiAgICAgICAgam9iQXJncy5mb3JFYWNoKGpvYkFyZ05hbWUgPT4ge1xuICAgICAgICAgICAgY29uc3QgYmFzZUpvYnMgPSBqb2JzLmZpbHRlcihqID0+IGouYmFzZU5hbWUgPT0gam9iQXJnTmFtZSB8fCBqLm5hbWUgPT09IGpvYkFyZ05hbWUpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBiIG9mIGJhc2VKb2JzKSB7XG4gICAgICAgICAgICAgICAgam9iU2V0LmFkZChiKTtcbiAgICAgICAgICAgICAgICBpZiAobmVlZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgcG90ZW50aWFsU3RhcnRlcnMucHVzaCguLi5FeGVjdXRvci5nZXRQYXN0VG9XYWl0Rm9yKGpvYnMsIHN0YWdlcywgYiwgYXJndi5tYW51YWwpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcG90ZW50aWFsU3RhcnRlcnMucHVzaChiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHBvdGVudGlhbFN0YXJ0ZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEFzc2VydGlvbkVycm9yKHttZXNzYWdlOiBjaGFsa2B7Ymx1ZUJyaWdodCAke2pvYkFyZ3Muam9pbihcIixcIil9fSBjb3VsZCBub3QgYmUgZm91bmRgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdGFydGVycyA9IGFyZ3Yub25seU5lZWRzXG4gICAgICAgICAgICA/IHBvdGVudGlhbFN0YXJ0ZXJzLmZpbHRlcihwID0+ICFqb2JBcmdzLmluY2x1ZGVzKHAubmFtZSkpXG4gICAgICAgICAgICA6IHBvdGVudGlhbFN0YXJ0ZXJzO1xuXG4gICAgICAgIGF3YWl0IEV4ZWN1dG9yLnJ1bkxvb3AoYXJndiwgQXJyYXkuZnJvbShqb2JTZXQpLCBzdGFnZXMsIHN0YXJ0ZXJzKTtcbiAgICAgICAgYXdhaXQgQ29tbWFuZGVyLnByaW50UmVwb3J0KHtcbiAgICAgICAgICAgIGN3ZDogYXJndi5jd2QsXG4gICAgICAgICAgICBzaG93VGltZXN0YW1wczogYXJndi5zaG93VGltZXN0YW1wcyxcbiAgICAgICAgICAgIHN0YXRlRGlyOiBhcmd2LnN0YXRlRGlyLFxuICAgICAgICAgICAgd3JpdGVTdHJlYW1zOiB3cml0ZVN0cmVhbXMsXG4gICAgICAgICAgICBqb2JzOiBqb2JzLFxuICAgICAgICAgICAgc3RhZ2VzOiBzdGFnZXMsXG4gICAgICAgICAgICBqb2JOYW1lUGFkOiBwYXJzZXIuam9iTmFtZVBhZCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGFzeW5jIHByaW50UmVwb3J0ICh7Y3dkLCBzdGF0ZURpciwgc2hvd1RpbWVzdGFtcHMsIHdyaXRlU3RyZWFtcywgam9icywgc3RhZ2VzLCBqb2JOYW1lUGFkfToge1xuICAgICAgICBjd2Q6IHN0cmluZztcbiAgICAgICAgc2hvd1RpbWVzdGFtcHM6IGJvb2xlYW47XG4gICAgICAgIHN0YXRlRGlyOiBzdHJpbmc7XG4gICAgICAgIHdyaXRlU3RyZWFtczogV3JpdGVTdHJlYW1zO1xuICAgICAgICBqb2JzOiBSZWFkb25seUFycmF5PEpvYj47XG4gICAgICAgIHN0YWdlczogcmVhZG9ubHkgc3RyaW5nW107XG4gICAgICAgIGpvYk5hbWVQYWQ6IG51bWJlcjtcbiAgICB9KSB7XG5cbiAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChcIlxcblwiKTtcblxuICAgICAgICBjb25zdCByZW5kZXJEdXJhdGlvbiA9IChkdXJhdGlvbjogc3RyaW5nKSA9PiBzaG93VGltZXN0YW1wcyA/IGAgWyR7ZHVyYXRpb24ucGFkU3RhcnQoNyl9XWAgOiBcIlwiO1xuXG4gICAgICAgIGNvbnN0IHByZVNjcmlwdHM6IHtzdWNjZXNzZnVsOiBKb2JbXTsgZmFpbGVkOiBKb2JbXTsgd2FybmVkOiBKb2JbXX0gPSB7XG4gICAgICAgICAgICBzdWNjZXNzZnVsOiBbXSxcbiAgICAgICAgICAgIGZhaWxlZDogW10sXG4gICAgICAgICAgICB3YXJuZWQ6IFtdLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBhZnRlclNjcmlwdHM6IHt3YXJuZWQ6IEpvYltdfSA9IHtcbiAgICAgICAgICAgIHdhcm5lZDogW10sXG4gICAgICAgIH07XG5cbiAgICAgICAgZm9yIChjb25zdCBqb2Igb2Ygam9icy52YWx1ZXMoKSkge1xuICAgICAgICAgICAgaWYgKGpvYi5zdGFydGVkICYmIGpvYi5hZnRlclNjcmlwdHNFeGl0Q29kZSAhPT0gMCkge1xuICAgICAgICAgICAgICAgIGFmdGVyU2NyaXB0cy53YXJuZWQucHVzaChqb2IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBqb2Igb2Ygam9icy52YWx1ZXMoKSkge1xuICAgICAgICAgICAgaWYgKCFqb2Iuc3RhcnRlZCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoam9iLmpvYlN0YXR1cyA9PT0gXCJzdWNjZXNzXCIpIHtcbiAgICAgICAgICAgICAgICBwcmVTY3JpcHRzLnN1Y2Nlc3NmdWwucHVzaChqb2IpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChqb2Iuam9iU3RhdHVzID09PSBcIndhcm5pbmdcIikge1xuICAgICAgICAgICAgICAgIHByZVNjcmlwdHMud2FybmVkLnB1c2goam9iKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcHJlU2NyaXB0cy5mYWlsZWQucHVzaChqb2IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByZVNjcmlwdHMuc3VjY2Vzc2Z1bC5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgIHByZVNjcmlwdHMuc3VjY2Vzc2Z1bC5zb3J0KChhLCBiKSA9PiBzdGFnZXMuaW5kZXhPZihhLnN0YWdlKSAtIHN0YWdlcy5pbmRleE9mKGIuc3RhZ2UpKTtcbiAgICAgICAgICAgIHByZVNjcmlwdHMuc3VjY2Vzc2Z1bC5mb3JFYWNoKCh7Y292ZXJhZ2VQZXJjZW50LCBuYW1lLCBwcmV0dHlEdXJhdGlvbn0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBuYW1lUGFkID0gbmFtZS5wYWRFbmQoam9iTmFtZVBhZCk7XG4gICAgICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChjaGFsa2B7YmxhY2suYmdHcmVlbkJyaWdodCAgUEFTUyB9JHtyZW5kZXJEdXJhdGlvbihwcmV0dHlEdXJhdGlvbil9IHtibHVlQnJpZ2h0ICR7bmFtZVBhZH19YCk7XG4gICAgICAgICAgICAgICAgaWYgKGNvdmVyYWdlUGVyY2VudCkge1xuICAgICAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbXMuc3Rkb3V0KGNoYWxrYCAke2NvdmVyYWdlUGVyY2VudH0lIHtncmV5IGNvdmVyYWdlfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbXMuc3Rkb3V0KFwiXFxuXCIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJlU2NyaXB0cy53YXJuZWQubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICBwcmVTY3JpcHRzLndhcm5lZC5zb3J0KChhLCBiKSA9PiBzdGFnZXMuaW5kZXhPZihhLnN0YWdlKSAtIHN0YWdlcy5pbmRleE9mKGIuc3RhZ2UpKTtcbiAgICAgICAgICAgIGZvciAoY29uc3Qge25hbWUsIHByZXR0eUR1cmF0aW9ufSBvZiBwcmVTY3JpcHRzLndhcm5lZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5hbWVQYWQgPSBuYW1lLnBhZEVuZChqb2JOYW1lUGFkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzYWZlTmFtZSA9IFV0aWxzLnNhZmVEb2NrZXJTdHJpbmcobmFtZSk7XG4gICAgICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChjaGFsa2B7YmxhY2suYmdZZWxsb3dCcmlnaHQgIFdBUk4gfSR7cmVuZGVyRHVyYXRpb24ocHJldHR5RHVyYXRpb24pfSB7Ymx1ZUJyaWdodCAke25hbWVQYWR9fSAgcHJlX3NjcmlwdFxcbmApO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dHB1dExvZyA9IGF3YWl0IGZzLnJlYWRGaWxlKGAke2N3ZH0vJHtzdGF0ZURpcn0vb3V0cHV0LyR7c2FmZU5hbWV9LmxvZ2AsIFwidXRmOFwiKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2Ygb3V0cHV0TG9nLnNwbGl0KC9cXHI/XFxuLykuZmlsdGVyKGogPT4gIWouaW5jbHVkZXMoXCJbMzJtJCBcIikpLmZpbHRlcihqID0+IGogIT09IFwiXCIpLnNsaWNlKC0zKSkge1xuICAgICAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbXMuc3Rkb3V0KGNoYWxrYCAge3llbGxvdyA+fSAke2xpbmV9XFxuYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGFmdGVyU2NyaXB0cy53YXJuZWQubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICBhZnRlclNjcmlwdHMud2FybmVkLnNvcnQoKGEsIGIpID0+IHN0YWdlcy5pbmRleE9mKGEuc3RhZ2UpIC0gc3RhZ2VzLmluZGV4T2YoYi5zdGFnZSkpO1xuICAgICAgICAgICAgYWZ0ZXJTY3JpcHRzLndhcm5lZC5mb3JFYWNoKCh7bmFtZSwgcHJldHR5RHVyYXRpb259KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmFtZVBhZCA9IG5hbWUucGFkRW5kKGpvYk5hbWVQYWQpO1xuICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRvdXQoY2hhbGtge2JsYWNrLmJnWWVsbG93QnJpZ2h0ICBXQVJOIH0ke3JlbmRlckR1cmF0aW9uKHByZXR0eUR1cmF0aW9uKX0ge2JsdWVCcmlnaHQgJHtuYW1lUGFkfX0gIGFmdGVyX3NjcmlwdFxcbmApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJlU2NyaXB0cy5mYWlsZWQubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICBwcmVTY3JpcHRzLmZhaWxlZC5zb3J0KChhLCBiKSA9PiBzdGFnZXMuaW5kZXhPZihhLnN0YWdlKSAtIHN0YWdlcy5pbmRleE9mKGIuc3RhZ2UpKTtcbiAgICAgICAgICAgIGZvciAoY29uc3Qge25hbWUsIHByZXR0eUR1cmF0aW9ufSBvZiBwcmVTY3JpcHRzLmZhaWxlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5hbWVQYWQgPSBuYW1lLnBhZEVuZChqb2JOYW1lUGFkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzYWZlTmFtZSA9IFV0aWxzLnNhZmVEb2NrZXJTdHJpbmcobmFtZSk7XG4gICAgICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChjaGFsa2B7YmxhY2suYmdSZWQgIEZBSUwgfSR7cmVuZGVyRHVyYXRpb24ocHJldHR5RHVyYXRpb24pfSB7Ymx1ZUJyaWdodCAke25hbWVQYWR9fVxcbmApO1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dHB1dExvZyA9IGF3YWl0IGZzLnJlYWRGaWxlKGAke2N3ZH0vJHtzdGF0ZURpcn0vb3V0cHV0LyR7c2FmZU5hbWV9LmxvZ2AsIFwidXRmOFwiKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2Ygb3V0cHV0TG9nLnNwbGl0KC9cXHI/XFxuLykuZmlsdGVyKGogPT4gIWouaW5jbHVkZXMoXCJbMzJtJCBcIikpLmZpbHRlcihqID0+IGogIT09IFwiXCIpLnNsaWNlKC0zKSkge1xuICAgICAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbXMuc3Rkb3V0KGNoYWxrYCAge3JlZCA+fSAke2xpbmV9XFxuYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBqb2Igb2YgcHJlU2NyaXB0cy5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICBjb25zdCBlID0gam9iLmVudmlyb25tZW50O1xuICAgICAgICAgICAgaWYgKGUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGUubmFtZTtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IGUudXJsO1xuICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChjaGFsa2B7Ymx1ZUJyaWdodCAke2pvYi5uYW1lfX0gZW52aXJvbm1lbnQ6IFxceyBuYW1lOiB7Ym9sZCAke25hbWV9fWApO1xuICAgICAgICAgICAgaWYgKHVybCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChjaGFsa2AsIHVybDoge2JvbGQgJHt1cmx9fWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChcIiB9XFxuXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIHJ1bkxpc3QgKHBhcnNlcjogUGFyc2VyLCB3cml0ZVN0cmVhbXM6IFdyaXRlU3RyZWFtcywgbGlzdEFsbDogYm9vbGVhbikge1xuICAgICAgICBjb25zdCBzdGFnZXMgPSBwYXJzZXIuc3RhZ2VzO1xuICAgICAgICBsZXQgam9icyA9IFsuLi5wYXJzZXIuam9icy52YWx1ZXMoKV07XG4gICAgICAgIGpvYnMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHN0YWdlcy5pbmRleE9mKGEuc3RhZ2UpIC0gc3RhZ2VzLmluZGV4T2YoYi5zdGFnZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxldCB3aGVuUGFkRW5kID0gNDtcbiAgICAgICAgam9icy5mb3JFYWNoKGogPT4gd2hlblBhZEVuZCA9IE1hdGgubWF4KGoud2hlbi5sZW5ndGgsIHdoZW5QYWRFbmQpKTtcblxuICAgICAgICBsZXQgc3RhZ2VQYWRFbmQgPSA1O1xuICAgICAgICBzdGFnZXMuZm9yRWFjaChzID0+IHN0YWdlUGFkRW5kID0gTWF0aC5tYXgocy5sZW5ndGgsIHN0YWdlUGFkRW5kKSk7XG5cbiAgICAgICAgbGV0IGRlc2NyaXB0aW9uUGFkRW5kID0gMTE7XG4gICAgICAgIGpvYnMuZm9yRWFjaChqID0+IGRlc2NyaXB0aW9uUGFkRW5kID0gTWF0aC5tYXgoai5kZXNjcmlwdGlvbi5sZW5ndGgsIGRlc2NyaXB0aW9uUGFkRW5kKSk7XG5cbiAgICAgICAgY29uc3Qgam9iTmFtZVBhZCA9IHBhcnNlci5qb2JOYW1lUGFkO1xuXG4gICAgICAgIGlmICghbGlzdEFsbCkge1xuICAgICAgICAgICAgam9icyA9IGpvYnMuZmlsdGVyKGogPT4gai53aGVuICE9PSBcIm5ldmVyXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChjaGFsa2B7Z3JleSAke1wibmFtZVwiLnBhZEVuZChqb2JOYW1lUGFkKX0gICR7XCJkZXNjcmlwdGlvblwiLnBhZEVuZChkZXNjcmlwdGlvblBhZEVuZCl9fSAgYCk7XG4gICAgICAgIHdyaXRlU3RyZWFtcy5zdGRvdXQoY2hhbGtge2dyZXkgJHtcInN0YWdlXCIucGFkRW5kKHN0YWdlUGFkRW5kKX0gICR7XCJ3aGVuXCIucGFkRW5kKHdoZW5QYWRFbmQpfX0gIGApO1xuICAgICAgICB3cml0ZVN0cmVhbXMuc3Rkb3V0KGNoYWxrYHtncmV5IGFsbG93X2ZhaWx1cmUgIG5lZWRzfVxcbmApO1xuXG4gICAgICAgIGNvbnN0IHJlbmRlckxpbmUgPSAoam9iOiBKb2IpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5lZWRzID0gam9iLm5lZWRzPy5maWx0ZXIobiA9PiAhbi5wcm9qZWN0ICYmICFuLnBpcGVsaW5lKS5tYXAobiA9PiBuLmpvYik7XG4gICAgICAgICAgICBjb25zdCBhbGxvd0ZhaWx1cmUgPSBqb2IuYWxsb3dGYWlsdXJlID8gXCJ0cnVlIFwiIDogXCJmYWxzZVwiO1xuICAgICAgICAgICAgbGV0IGpvYkxpbmUgPSBjaGFsa2B7Ymx1ZUJyaWdodCAke2pvYi5uYW1lLnBhZEVuZChqb2JOYW1lUGFkKX19ICAke2pvYi5kZXNjcmlwdGlvbi5wYWRFbmQoZGVzY3JpcHRpb25QYWRFbmQpfSAgYDtcbiAgICAgICAgICAgIGpvYkxpbmUgKz0gY2hhbGtge3llbGxvdyAke2pvYi5zdGFnZS5wYWRFbmQoc3RhZ2VQYWRFbmQpfX0gICR7am9iLndoZW4ucGFkRW5kKHdoZW5QYWRFbmQpfSAgJHthbGxvd0ZhaWx1cmUucGFkRW5kKDExKX1gO1xuICAgICAgICAgICAgaWYgKG5lZWRzKSB7XG4gICAgICAgICAgICAgICAgam9iTGluZSArPSBjaGFsa2AgICAgW3tibHVlQnJpZ2h0ICR7bmVlZHN9fV1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChgJHtqb2JMaW5lfVxcbmApO1xuICAgICAgICB9O1xuXG4gICAgICAgIGpvYnMuZm9yRWFjaCgoam9iKSA9PiByZW5kZXJMaW5lKGpvYikpO1xuICAgIH1cblxuICAgIHN0YXRpYyBydW5Kc29uIChwYXJzZXI6IFBhcnNlciwgd3JpdGVTdHJlYW1zOiBXcml0ZVN0cmVhbXMpIHtcbiAgICAgICAgY29uc3Qgam9icyA9IFsuLi5wYXJzZXIuam9icy52YWx1ZXMoKV07XG4gICAgICAgIGNvbnN0IGpzb246IGFueVtdID0gW107XG5cbiAgICAgICAgam9icy5mb3JFYWNoKChqb2IpID0+IHtcbiAgICAgICAgICAgIGpzb24ucHVzaCh7XG4gICAgICAgICAgICAgICAgbmFtZTogam9iLm5hbWUsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGpvYi5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICBzdGFnZTogam9iLnN0YWdlLFxuICAgICAgICAgICAgICAgIHdoZW46IGpvYi53aGVuLFxuICAgICAgICAgICAgICAgIGFsbG93X2ZhaWx1cmU6IGpvYi5hbGxvd0ZhaWx1cmUsXG4gICAgICAgICAgICAgICAgbmVlZHM6IGpvYi5uZWVkcz8uZmlsdGVyKG4gPT4gIW4ucHJvamVjdCAmJiAhbi5waXBlbGluZSksXG4gICAgICAgICAgICAgICAgcnVsZXM6IGpvYi5ydWxlcyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB3cml0ZVN0cmVhbXMuc3Rkb3V0KGAke0pTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIDIpfVxcbmApO1xuICAgIH1cblxuICAgIHN0YXRpYyBydW5Dc3YgKHBhcnNlcjogUGFyc2VyLCB3cml0ZVN0cmVhbXM6IFdyaXRlU3RyZWFtcywgYWxsOiBib29sZWFuKSB7XG4gICAgICAgIGNvbnN0IHN0YWdlcyA9IHBhcnNlci5zdGFnZXM7XG4gICAgICAgIGxldCBqb2JzID0gWy4uLnBhcnNlci5qb2JzLnZhbHVlcygpXTtcbiAgICAgICAgam9icy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gc3RhZ2VzLmluZGV4T2YoYS5zdGFnZSkgLSBzdGFnZXMuaW5kZXhPZihiLnN0YWdlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFhbGwpIHtcbiAgICAgICAgICAgIGpvYnMgPSBqb2JzLmZpbHRlcihqID0+IGoud2hlbiAhPT0gXCJuZXZlclwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHdyaXRlU3RyZWFtcy5zdGRvdXQoXCJuYW1lO2Rlc2NyaXB0aW9uO3N0YWdlO3doZW47YWxsb3dGYWlsdXJlO25lZWRzXFxuXCIpO1xuICAgICAgICBqb2JzLmZvckVhY2goKGpvYikgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmVlZHMgPSBqb2IubmVlZHM/LmZpbHRlcihuID0+ICFuLnByb2plY3QgJiYgIW4ucGlwZWxpbmUpLm1hcChuID0+IG4uam9iKS5qb2luKFwiLFwiKSA/PyBbXTtcbiAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRvdXQoYCR7am9iLm5hbWV9O1wiJHtqb2IuZGVzY3JpcHRpb259XCI7JHtqb2Iuc3RhZ2V9OyR7am9iLndoZW59OyR7am9iLmFsbG93RmFpbHVyZX07WyR7bmVlZHN9XVxcbmApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbn1cbiJdfQ==
package/src/git-data.js CHANGED
@@ -116,7 +116,7 @@ class GitData {
116
116
  gitRemote = res.stdout;
117
117
  }
118
118
  if (gitRemote.startsWith("http")) {
119
- gitRemoteMatch = /(?<schema>https?):\/\/(?:(\w+):([\w-]+)@)?(?<host>[^/:]+):?(?<port>\d+)?\/(?<group>\S+)\/(?<project>\S+)\.git/.exec(gitRemote); // regexr.com/7ve8l
119
+ gitRemoteMatch = /(?<schema>https?):\/\/(?:([^:]+):([^@]+)@)?(?<host>[^/:]+):?(?<port>\d+)?\/(?<group>\S+)\/(?<project>\S+)\.git/.exec(gitRemote); // regexr.com/7ve8l
120
120
  (0, assert_1.default)(gitRemoteMatch?.groups != null, "git remote get-url origin didn't provide valid matches");
121
121
  let port = "443";
122
122
  if (gitRemoteMatch.groups.schema === "https") {
@@ -186,4 +186,4 @@ class GitData {
186
186
  }
187
187
  }
188
188
  exports.GitData = GitData;
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0LWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJnaXQtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUE4QjtBQUM5QixpREFBOEM7QUFFOUMsa0RBQTBCO0FBSTFCLE1BQWEsT0FBTztJQUVBLElBQUksR0FBRztRQUNuQixpQkFBaUIsRUFBRSxPQUFPO1FBQzFCLGlCQUFpQixFQUFFLGtCQUFrQjtRQUNyQyxnQkFBZ0IsRUFBRSxXQUFXO1FBQzdCLGNBQWMsRUFBRSxNQUFNO0tBQ3pCLENBQUM7SUFFYyxRQUFRLEdBQUc7UUFDdkIsT0FBTyxFQUFFLE1BQU07S0FDbEIsQ0FBQztJQUVjLE1BQU0sR0FBRztRQUNyQixNQUFNLEVBQUUsS0FBa0I7UUFDMUIsSUFBSSxFQUFFLElBQUk7UUFDVixJQUFJLEVBQUUsWUFBWTtRQUNsQixLQUFLLEVBQUUsZ0JBQWdCO1FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0I7S0FDOUIsQ0FBQztJQUVjLE1BQU0sR0FBRztRQUNyQixRQUFRLEVBQUUsTUFBTTtRQUNoQixHQUFHLEVBQUUsMENBQTBDO1FBQy9DLFNBQVMsRUFBRSxVQUFVO1FBQ3JCLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHO0tBQzFELENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBRSxHQUFXLEVBQUUsWUFBMEI7UUFDdEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM5QixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDcEIsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ3pELFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxD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LE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDVixZQUFZLENBQUMsTUFBTSxDQUFDLElBQUEsZUFBSyxFQUFBLDBDQUEwQyxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDLENBQUM7UUFDSCxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRS9CLE1BQU0sWUFBWSxHQUFHLGFBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFFO1lBQ2xFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ1YsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFBLGVBQUssRUFBQSx5Q0FBeUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUU1QixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNKO0FBdktELDBCQXVLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VXRpbHN9IGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQgYXNzZXJ0LCB7QXNzZXJ0aW9uRXJyb3J9IGZyb20gXCJhc3NlcnRcIjtcbmltcG9ydCB7V3JpdGVTdHJlYW1zfSBmcm9tIFwiLi93cml0ZS1zdHJlYW1zXCI7XG5pbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5cbmV4cG9ydCB0eXBlIEdpdFNjaGVtYSA9IFwiZ2l0XCIgfCBcImh0dHBcIiB8IFwiaHR0cHNcIiB8IFwic3NoXCI7XG5cbmV4cG9ydCBjbGFzcyBHaXREYXRhIHtcblxuICAgIHB1YmxpYyByZWFkb25seSB1c2VyID0ge1xuICAgICAgICBHSVRMQUJfVVNFUl9MT0dJTjogXCJsb2NhbFwiLFxuICAgICAgICBHSVRMQUJfVVNFUl9FTUFJTDogXCJsb2NhbEBnaXRsYWIuY29tXCIsXG4gICAgICAgIEdJVExBQl9VU0VSX05BTUU6IFwiQm9iIExvY2FsXCIsXG4gICAgICAgIEdJVExBQl9VU0VSX0lEOiBcIjEwMDBcIixcbiAgICB9O1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGJyYW5jaGVzID0ge1xuICAgICAgICBkZWZhdWx0OiBcIm1haW5cIixcbiAgICB9O1xuXG4gICAgcHVibGljIHJlYWRvbmx5IHJlbW90ZSA9IHtcbiAgICAgICAgc2NoZW1hOiBcImdpdFwiIGFzIEdpdFNjaGVtYSxcbiAgICAgICAgcG9ydDogXCIyMlwiLFxuICAgICAgICBob3N0OiBcImdpdGxhYi5jb21cIixcbiAgICAgICAgZ3JvdXA6IFwiZmFsbGJhY2suZ3JvdXBcIixcbiAgICAgICAgcHJvamVjdDogXCJmYWxsYmFjay5wcm9qZWN0XCIsXG4gICAgfTtcblxuICAgIHB1YmxpYyByZWFkb25seSBjb21taXQgPSB7XG4gICAgICAgIFJFRl9OQU1FOiBcIm1haW5cIixcbiAgICAgICAgU0hBOiBcIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIixcbiAgICAgICAgU0hPUlRfU0hBOiBcIjAwMDAwMDAwXCIsXG4gICAgICAgIFRJTUVTVEFNUDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnNwbGl0KFwiLlwiKVswXSArIFwiWlwiLFxuICAgIH07XG5cbiAgICBzdGF0aWMgYXN5bmMgaW5pdCAoY3dkOiBzdHJpbmcsIHdyaXRlU3RyZWFtczogV3JpdGVTdHJlYW1zKTogUHJvbWlzZTxHaXREYXRhPiB7XG4gICAgICAgIGNvbnN0IGdpdERhdGEgPSBuZXcgR2l0RGF0YSgpO1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdO1xuICAgICAgICBwcm9taXNlcy5wdXNoKGdpdERhdGEuaW5pdENvbW1pdERhdGEoY3dkLCB3cml0ZVN0cmVhbXMpKTtcbiAgICAgICAgcHJvbWlzZXMucHVzaChnaXREYXRhLmluaXRSZW1vdGVEYXRhKGN3ZCwgd3JpdGVTdHJlYW1zKSk7XG4gICAgICAgIHByb21pc2VzLnB1c2goZ2l0RGF0YS5pbml0VXNlckRhdGEoY3dkLCB3cml0ZVN0cmVhbXMpKTtcbiAgICAgICAgcHJvbWlzZXMucHVzaChnaXREYXRhLmluaXRCcmFuY2hEYXRhKGN3ZCwgd3JpdGVTdHJlYW1zKSk7XG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICAgICAgcmV0dXJuIGdpdERhdGE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBpbml0Q29tbWl0RGF0YSAoY3dkOiBzdHJpbmcsIHdyaXRlU3RyZWFtczogV3JpdGVTdHJlYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gW107XG5cbiAgICAgICAgY29uc3QgcmVmTmFtZVByb21pc2UgPSBVdGlscy5zcGF3bihbXCJnaXRcIiwgXCJyZXYtcGFyc2VcIiwgXCItLWFiYnJldi1yZWZcIiwgXCJIRUFEXCJdLCBjd2QpO1xuICAgICAgICBwcm9taXNlcy5wdXNoKHJlZk5hbWVQcm9taXNlLnRoZW4oKHtzdGRvdXR9KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbW1pdC5SRUZfTkFNRSA9IHN0ZG91dC50cmltRW5kKCk7XG4gICAgICAgIH0pKTtcblxuICAgICAgICBjb25zdCBzaGFQcm9taXNlID0gVXRpbHMuc3Bhd24oW1wiZ2l0XCIsIFwicmV2LXBhcnNlXCIsIFwiSEVBRFwiXSwgY3dkKTtcbiAgICAgICAgcHJvbWlzZXMucHVzaChzaGFQcm9taXNlLnRoZW4oKHtzdGRvdXR9KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbW1pdC5TSEEgPSBzdGRvdXQudHJpbUVuZCgpO1xuICAgICAgICB9KSk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBBc3NlcnRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiB3cml0ZVN0cmVhbXMuc3RkZXJyKGNoYWxrYHt5ZWxsb3cgJHtlLm1lc3NhZ2V9fVxcbmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZGVycihjaGFsa2B7eWVsbG93IFVzaW5nIGZhbGxiYWNrIGdpdCBjb21taXQgZGF0YX1cXG5gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgaW5pdEJyYW5jaERhdGEgKGN3ZDogc3RyaW5nLCB3cml0ZVN0cmVhbXM6IFdyaXRlU3RyZWFtcyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qge3N0ZG91dDogZ2l0UmVtb3RlRGVmYXVsdEJyYW5jaH0gPSBhd2FpdCBVdGlscy5zcGF3bihbXCJnaXRcIiwgXCJzeW1ib2xpYy1yZWZcIiwgXCItLXNob3J0XCIsIFwicmVmcy9yZW1vdGVzL29yaWdpbi9IRUFEXCJdLCBjd2QpO1xuICAgICAgICAgICAgdGhpcy5icmFuY2hlcy5kZWZhdWx0ID0gZ2l0UmVtb3RlRGVmYXVsdEJyYW5jaC5yZXBsYWNlKFwib3JpZ2luL1wiLCBcIlwiKTtcbiAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgICBpZiAoZS5zdGRlcnIgPT09IFwiZmF0YWw6IHJlZiByZWZzL3JlbW90ZXMvb3JpZ2luL0hFQUQgaXMgbm90IGEgc3ltYm9saWMgcmVmXCIpIHtcbiAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbXMuc3RkZXJyKGNoYWxrYHt5ZWxsb3cgVW5hYmxlIHRvIHJldHJpZXZlIGRlZmF1bHQgcmVtb3RlIGJyYW5jaCwgZmFsbGluZyBiYWNrIHRvIFxcYCR7dGhpcy5icmFuY2hlcy5kZWZhdWx0fVxcYC5cbiAgVGhlIGRlZmF1bHQgcmVtb3RlIGJyYW5jaCBjYW4gYmUgc2V0IHZpYSBcXGBnaXQgcmVtb3RlIHNldC1oZWFkIG9yaWdpbiA8ZGVmYXVsdF9icmFuY2g+XFxgXG59YCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRlcnIoY2hhbGtge3llbGxvdyBVbmFibGUgdG8gcmV0cmlldmUgZGVmYXVsdCByZW1vdGUgYnJhbmNoLCBmYWxsaW5nIGJhY2sgdG8gXFxgJHt0aGlzLmJyYW5jaGVzLmRlZmF1bHR9XFxgLlxcbn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBjaGFuZ2VkRmlsZXMgKGRlZmF1bHRCcmFuY2g6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gVXRpbHMuc3luY1NwYXduKFtcImdpdFwiLCBcImRpZmZcIiwgXCItLW5hbWUtb25seVwiLCBkZWZhdWx0QnJhbmNoXSkuc3Rkb3V0LnNwbGl0KFwiXFxuXCIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgaW5pdFJlbW90ZURhdGEgKGN3ZDogc3RyaW5nLCB3cml0ZVN0cmVhbXM6IFdyaXRlU3RyZWFtcyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IGdpdFJlbW90ZU1hdGNoO1xuICAgICAgICAgICAgbGV0IGdpdFJlbW90ZTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgLy8gTk9URTogRm9yIHBvd2VyIHVzZXIgdGhhdCB3aXNoZXMgdG8gY3VzdG9taXplIHRoZSByZW1vdGUgdXJsXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgVXRpbHMuc3Bhd24oW1wiZ2l0XCIsIFwicmVtb3RlXCIsIFwiZ2V0LXVybFwiLCBcImdjbC1vcmlnaW5cIl0sIGN3ZCk7XG4gICAgICAgICAgICAgICAgZ2l0UmVtb3RlID0gcmVzLnN0ZG91dDtcbiAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IFV0aWxzLnNwYXduKFtcImdpdFwiLCBcInJlbW90ZVwiLCBcImdldC11cmxcIiwgXCJvcmlnaW5cIl0sIGN3ZCk7XG4gICAgICAgICAgICAgICAgZ2l0UmVtb3RlID0gcmVzLnN0ZG91dDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGdpdFJlbW90ZS5zdGFydHNXaXRoKFwiaHR0cFwiKSkge1xuICAgICAgICAgICAgICAgIGdpdFJlbW90ZU1hdGNoID0gLyg/PHNjaGVtYT5odHRwcz8pOlxcL1xcLyg/OihcXHcrKTooW1xcdy1dKylAKT8oPzxob3N0PlteLzpdKyk6Pyg/PHBvcnQ+XFxkKyk/XFwvKD88Z3JvdXA+XFxTKylcXC8oPzxwcm9qZWN0PlxcUyspXFwuZ2l0Ly5leGVjKGdpdFJlbW90ZSk7IC8vIHJlZ2V4ci5jb20vN3ZlOGxcbiAgICAgICAgICAgICAgICBhc3NlcnQoZ2l0UmVtb3RlTWF0Y2g/Lmdyb3VwcyAhPSBudWxsLCBcImdpdCByZW1vdGUgZ2V0LXVybCBvcmlnaW4gZGlkbid0IHByb3ZpZGUgdmFsaWQgbWF0Y2hlc1wiKTtcblxuICAgICAgICAgICAgICAgIGxldCBwb3J0ID0gXCI0NDNcIjtcbiAgICAgICAgICAgICAgICBpZiAoZ2l0UmVtb3RlTWF0Y2guZ3JvdXBzLnNjaGVtYSA9PT0gXCJodHRwc1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvcnQgPSBnaXRSZW1vdGVNYXRjaC5ncm91cHMucG9ydCA/PyBcIjQ0M1wiO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZ2l0UmVtb3RlTWF0Y2guZ3JvdXBzLnNjaGVtYSA9PT0gXCJodHRwXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcG9ydCA9IGdpdFJlbW90ZU1hdGNoLmdyb3Vwcy5wb3J0ID8/IFwiODBcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdGUuaG9zdCA9IGdpdFJlbW90ZU1hdGNoLmdyb3Vwcy5ob3N0O1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3RlLmdyb3VwID0gZ2l0UmVtb3RlTWF0Y2guZ3JvdXBzLmdyb3VwO1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3RlLnByb2plY3QgPSBnaXRSZW1vdGVNYXRjaC5ncm91cHMucHJvamVjdDtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW90ZS5zY2hlbWEgPSBnaXRSZW1vdGVNYXRjaC5ncm91cHMuc2NoZW1hIGFzIEdpdFNjaGVtYTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW90ZS5wb3J0ID0gcG9ydDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZ2l0UmVtb3RlLnN0YXJ0c1dpdGgoXCJzc2g6Ly9cIikpIHtcbiAgICAgICAgICAgICAgICBnaXRSZW1vdGVNYXRjaCA9IC8oPzxzY2hlbWE+c3NoKTpcXC9cXC8oXFx3KylAKD88aG9zdD5bXi86XSspOj8oPzxwb3J0PlxcZCspP1xcLyg/PGdyb3VwPlxcUyspXFwvKD88cHJvamVjdD5cXFMrKVxcLmdpdC8uZXhlYyhnaXRSZW1vdGUpOyAvLyByZWdleHIuY29tLzd2anE0XG4gICAgICAgICAgICAgICAgYXNzZXJ0KGdpdFJlbW90ZU1hdGNoPy5ncm91cHMgIT0gbnVsbCwgXCJnaXQgcmVtb3RlIGdldC11cmwgb3JpZ2luIGRpZG4ndCBwcm92aWRlIHZhbGlkIG1hdGNoZXNcIik7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnJlbW90ZS5ob3N0ID0gZ2l0UmVtb3RlTWF0Y2guZ3JvdXBzLmhvc3Q7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdGUuZ3JvdXAgPSBnaXRSZW1vdGVNYXRjaC5ncm91cHMuZ3JvdXA7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdGUucHJvamVjdCA9IGdpdFJlbW90ZU1hdGNoLmdyb3Vwcy5wcm9qZWN0O1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3RlLnNjaGVtYSA9IGdpdFJlbW90ZU1hdGNoLmdyb3Vwcy5zY2hlbWEgYXMgR2l0U2NoZW1hO1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3RlLnBvcnQgPSBnaXRSZW1vdGVNYXRjaC5ncm91cHMucG9ydCA/PyBcIjIyXCI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGdpdFJlbW90ZU1hdGNoID0gLyg/PHVzZXJuYW1lPlxcUyspQCg/PGhvc3Q+W146XSspOig/PGdyb3VwPlxcUyspXFwvKD88cHJvamVjdD5cXFMrKS8uZXhlYyhnaXRSZW1vdGUpOyAvLyByZWdleHIuY29tLzd2am9xXG4gICAgICAgICAgICAgICAgYXNzZXJ0KGdpdFJlbW90ZU1hdGNoPy5ncm91cHMgIT0gbnVsbCwgXCJnaXQgcmVtb3RlIGdldC11cmwgb3JpZ2luIGRpZG4ndCBwcm92aWRlIHZhbGlkIG1hdGNoZXNcIik7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IFV0aWxzLnNwYXduKFtcInNzaFwiLCBcIi1HXCIsIGAke2dpdFJlbW90ZU1hdGNoLmdyb3Vwcy51c2VybmFtZX1AJHtnaXRSZW1vdGVNYXRjaC5ncm91cHMuaG9zdH1gXSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcG9ydCA9IHN0ZG91dC5zcGxpdChcIlxcblwiKS5maWx0ZXIoKGxpbmUpID0+IGxpbmUuc3RhcnRzV2l0aChcInBvcnQgXCIpKVswXS5zcGxpdChcIiBcIilbMV07XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdGUuaG9zdCA9IGdpdFJlbW90ZU1hdGNoLmdyb3Vwcy5ob3N0O1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3RlLmdyb3VwID0gZ2l0UmVtb3RlTWF0Y2guZ3JvdXBzLmdyb3VwO1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3RlLnByb2plY3QgPSBVdGlscy50cmltU3VmZml4KGdpdFJlbW90ZU1hdGNoLmdyb3Vwcy5wcm9qZWN0LCBcIi5naXRcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdGUuc2NoZW1hID0gXCJnaXRcIjtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW90ZS5wb3J0ID0gcG9ydDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBBc3NlcnRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRlcnIoY2hhbGtge3llbGxvdyAke2UubWVzc2FnZX19XFxuYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZGVycihjaGFsa2B7eWVsbG93IFVzaW5nIGZhbGxiYWNrIGdpdCByZW1vdGUgZGF0YX1cXG5gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGluaXRVc2VyRGF0YSAoY3dkOiBzdHJpbmcsIHdyaXRlU3RyZWFtczogV3JpdGVTdHJlYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gW107XG5cbiAgICAgICAgY29uc3QgZ2l0VXNlcm5hbWVQcm9taXNlID0gVXRpbHMuc3Bhd24oW1wiZ2l0XCIsIFwiY29uZmlnXCIsIFwidXNlci5uYW1lXCJdLCBjd2QpLnRoZW4oKHtzdGRvdXR9KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVzZXIuR0lUTEFCX1VTRVJfTkFNRSA9IHN0ZG91dC50cmltRW5kKCk7XG4gICAgICAgIH0pLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRlcnIoY2hhbGtge3llbGxvdyBVc2luZyBmYWxsYmFjayBnaXQgdXNlci5uYW1lfVxcbmApO1xuICAgICAgICB9KTtcbiAgICAgICAgcHJvbWlzZXMucHVzaChnaXRVc2VybmFtZVByb21pc2UpO1xuXG4gICAgICAgIGNvbnN0IGdpdEVtYWlsUHJvbWlzZSA9IFV0aWxzLnNwYXduKFtcImdpdFwiLCBcImNvbmZpZ1wiLCBcInVzZXIuZW1haWxcIl0sIGN3ZCkudGhlbigoe3N0ZG91dH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVtYWlsID0gc3Rkb3V0LnRyaW1FbmQoKTtcbiAgICAgICAgICAgIHRoaXMudXNlci5HSVRMQUJfVVNFUl9FTUFJTCA9IGVtYWlsO1xuICAgICAgICAgICAgdGhpcy51c2VyLkdJVExBQl9VU0VSX0xPR0lOID0gZW1haWwucmVwbGFjZSgvQC4qLywgXCJcIik7XG4gICAgICAgIH0pLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRlcnIoY2hhbGtge3llbGxvdyBVc2luZyBmYWxsYmFjayBnaXQgdXNlci5lbWFpbH1cXG5gKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHByb21pc2VzLnB1c2goZ2l0RW1haWxQcm9taXNlKTtcblxuICAgICAgICBjb25zdCBvc1VpZFByb21pc2UgPSBVdGlscy5zcGF3bihbXCJpZFwiLCBcIi11XCJdLCBjd2QpLnRoZW4oKHtzdGRvdXR9KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVzZXIuR0lUTEFCX1VTRVJfSUQgPSBzdGRvdXQudHJpbUVuZCgpO1xuICAgICAgICB9KS5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICB3cml0ZVN0cmVhbXMuc3RkZXJyKGNoYWxrYHt5ZWxsb3cgVXNpbmcgZmFsbGJhY2sgbGludXggdXNlciBpZH1cXG5gKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHByb21pc2VzLnB1c2gob3NVaWRQcm9taXNlKTtcblxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgfVxufVxuIl19
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0LWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJnaXQtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUE4QjtBQUM5QixpREFBOEM7QUFFOUMsa0RBQTBCO0FBSTFCLE1BQWEsT0FBTztJQUVBLElBQUksR0FBRztRQUNuQixpQkFBaUIsRUFBRSxPQUFPO1FBQzFCLGlCQUFpQixFQUFFLGtCQUFrQjtRQUNyQyxnQkFBZ0IsRUFBRSxXQUFXO1FBQzdCLGNBQWMsRUFBRSxNQUFNO0tBQ3pCLENBQUM7SUFFYyxRQUFRLEdBQUc7UUFDdkIsT0FBTyxFQUFFLE1BQU07S0FDbEIsQ0FBQztJQUVjLE1BQU0sR0FBRztRQUNyQixNQUFNLEVBQUUsS0FBa0I7UUFDMUIsSUFBSSxFQUFFLElBQUk7UUFDVixJQUFJLEVBQUUsWUFBWTtRQUNsQixLQUFLLEVBQUUsZ0JBQWdCO1FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0I7S0FDOUIsQ0FBQztJQUVjLE1BQU0sR0FBRztRQUNyQixRQUFRLEVBQUUsTUFBTTtRQUNoQixHQUFHLEVBQUUsMENBQTBDO1FBQy9DLFNBQVMsRUFBRSxVQUFVO1FBQ3JCLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHO0tBQzFELENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBRSxHQUFXLEVBQUUsWUFBMEI7UUFDdEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM5QixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDcEIsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ3pELFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxD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LE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDVixZQUFZLENBQUMsTUFBTSxDQUFDLElBQUEsZUFBSyxFQUFBLDBDQUEwQyxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDLENBQUM7UUFDSCxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRS9CLE1BQU0sWUFBWSxHQUFHLGFBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFFO1lBQ2xFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ1YsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFBLGVBQUssRUFBQSx5Q0FBeUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUU1QixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNKO0FBdktELDBCQXVLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VXRpbHN9IGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQgYXNzZXJ0LCB7QXNzZXJ0aW9uRXJyb3J9IGZyb20gXCJhc3NlcnRcIjtcbmltcG9ydCB7V3JpdGVTdHJlYW1zfSBmcm9tIFwiLi93cml0ZS1zdHJlYW1zXCI7XG5pbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5cbmV4cG9ydCB0eXBlIEdpdFNjaGVtYSA9IFwiZ2l0XCIgfCBcImh0dHBcIiB8IFwiaHR0cHNcIiB8IFwic3NoXCI7XG5cbmV4cG9ydCBjbGFzcyBHaXREYXRhIHtcblxuICAgIHB1YmxpYyByZWFkb25seSB1c2VyID0ge1xuICAgICAgICBHSVRMQUJfVVNFUl9MT0dJTjogXCJsb2NhbFwiLFxuICAgICAgICBHSVRMQUJfVVNFUl9FTUFJTDogXCJsb2NhbEBnaXRsYWIuY29tXCIsXG4gICAgICAgIEdJVExBQl9VU0VSX05BTUU6IFwiQm9iIExvY2FsXCIsXG4gICAgICAgIEdJVExBQl9VU0VSX0lEOiBcIjEwMDBcIixcbiAgICB9O1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGJyYW5jaGVzID0ge1xuICAgICAgICBkZWZhdWx0OiBcIm1haW5cIixcbiAgICB9O1xuXG4gICAgcHVibGljIHJlYWRvbmx5IHJlbW90ZSA9IHtcbiAgICAgICAgc2NoZW1hOiBcImdpdFwiIGFzIEdpdFNjaGVtYSxcbiAgICAgICAgcG9ydDogXCIyMlwiLFxuICAgICAgICBob3N0OiBcImdpdGxhYi5jb21cIixcbiAgICAgICAgZ3JvdXA6IFwiZmFsbGJhY2suZ3JvdXBcIixcbiAgICAgICAgcHJvamVjdDogXCJmYWxsYmFjay5wcm9qZWN0XCIsXG4gICAgfTtcblxuICAgIHB1YmxpYyByZWFkb25seSBjb21taXQgPSB7XG4gICAgICAgIFJFRl9OQU1FOiBcIm1haW5cIixcbiAgICAgICAgU0hBOiBcIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIixcbiAgICAgICAgU0hPUlRfU0hBOiBcIjAwMDAwMDAwXCIsXG4gICAgICAgIFRJTUVTVEFNUDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnNwbGl0KFwiLlwiKVswXSArIFwiWlwiLFxuICAgIH07XG5cbiAgICBzdGF0aWMgYXN5bmMgaW5pdCAoY3dkOiBzdHJpbmcsIHdyaXRlU3RyZWFtczogV3JpdGVTdHJlYW1zKTogUHJvbWlzZTxHaXREYXRhPiB7XG4gICAgICAgIGNvbnN0IGdpdERhdGEgPSBuZXcgR2l0RGF0YSgpO1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdO1xuICAgICAgICBwcm9taXNlcy5wdXNoKGdpdERhdGEuaW5pdENvbW1pdERhdGEoY3dkLCB3cml0ZVN0cmVhbXMpKTtcbiAgICAgICAgcHJvbWlzZXMucHVzaChnaXREYXRhLmluaXRSZW1vdGVEYXRhKGN3ZCwgd3JpdGVTdHJlYW1zKSk7XG4gICAgICAgIHByb21pc2VzLnB1c2goZ2l0RGF0YS5pbml0VXNlckRhdGEoY3dkLCB3cml0ZVN0cmVhbXMpKTtcbiAgICAgICAgcHJvbWlzZXMucHVzaChnaXREYXRhLmluaXRCcmFuY2hEYXRhKGN3ZCwgd3JpdGVTdHJlYW1zKSk7XG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICAgICAgcmV0dXJuIGdpdERhdGE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBpbml0Q29tbWl0RGF0YSAoY3dkOiBzdHJpbmcsIHdyaXRlU3RyZWFtczogV3JpdGVTdHJlYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gW107XG5cbiAgICAgICAgY29uc3QgcmVmTmFtZVByb21pc2UgPSBVdGlscy5zcGF3bihbXCJnaXRcIiwgXCJyZXYtcGFyc2VcIiwgXCItLWFiYnJldi1yZWZcIiwgXCJIRUFEXCJdLCBjd2QpO1xuICAgICAgICBwcm9taXNlcy5wdXNoKHJlZk5hbWVQcm9taXNlLnRoZW4oKHtzdGRvdXR9KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbW1pdC5SRUZfTkFNRSA9IHN0ZG91dC50cmltRW5kKCk7XG4gICAgICAgIH0pKTtcblxuICAgICAgICBjb25zdCBzaGFQcm9taXNlID0gVXRpbHMuc3Bhd24oW1wiZ2l0XCIsIFwicmV2LXBhcnNlXCIsIFwiSEVBRFwiXSwgY3dkKTtcbiAgICAgICAgcHJvbWlzZXMucHVzaChzaGFQcm9taXNlLnRoZW4oKHtzdGRvdXR9KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbW1pdC5TSEEgPSBzdGRvdXQudHJpbUVuZCgpO1xuICAgICAgICB9KSk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBBc3NlcnRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiB3cml0ZVN0cmVhbXMuc3RkZXJyKGNoYWxrYHt5ZWxsb3cgJHtlLm1lc3NhZ2V9fVxcbmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZGVycihjaGFsa2B7eWVsbG93IFVzaW5nIGZhbGxiYWNrIGdpdCBjb21taXQgZGF0YX1cXG5gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgaW5pdEJyYW5jaERhdGEgKGN3ZDogc3RyaW5nLCB3cml0ZVN0cmVhbXM6IFdyaXRlU3RyZWFtcyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qge3N0ZG91dDogZ2l0UmVtb3RlRGVmYXVsdEJyYW5jaH0gPSBhd2FpdCBVdGlscy5zcGF3bihbXCJnaXRcIiwgXCJzeW1ib2xpYy1yZWZcIiwgXCItLXNob3J0XCIsIFwicmVmcy9yZW1vdGVzL29yaWdpbi9IRUFEXCJdLCBjd2QpO1xuICAgICAgICAgICAgdGhpcy5icmFuY2hlcy5kZWZhdWx0ID0gZ2l0UmVtb3RlRGVmYXVsdEJyYW5jaC5yZXBsYWNlKFwib3JpZ2luL1wiLCBcIlwiKTtcbiAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgICBpZiAoZS5zdGRlcnIgPT09IFwiZmF0YWw6IHJlZiByZWZzL3JlbW90ZXMvb3JpZ2luL0hFQUQgaXMgbm90IGEgc3ltYm9saWMgcmVmXCIpIHtcbiAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbXMuc3RkZXJyKGNoYWxrYHt5ZWxsb3cgVW5hYmxlIHRvIHJldHJpZXZlIGRlZmF1bHQgcmVtb3RlIGJyYW5jaCwgZmFsbGluZyBiYWNrIHRvIFxcYCR7dGhpcy5icmFuY2hlcy5kZWZhdWx0fVxcYC5cbiAgVGhlIGRlZmF1bHQgcmVtb3RlIGJyYW5jaCBjYW4gYmUgc2V0IHZpYSBcXGBnaXQgcmVtb3RlIHNldC1oZWFkIG9yaWdpbiA8ZGVmYXVsdF9icmFuY2g+XFxgXG59YCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRlcnIoY2hhbGtge3llbGxvdyBVbmFibGUgdG8gcmV0cmlldmUgZGVmYXVsdCByZW1vdGUgYnJhbmNoLCBmYWxsaW5nIGJhY2sgdG8gXFxgJHt0aGlzLmJyYW5jaGVzLmRlZmF1bHR9XFxgLlxcbn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBjaGFuZ2VkRmlsZXMgKGRlZmF1bHRCcmFuY2g6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gVXRpbHMuc3luY1NwYXduKFtcImdpdFwiLCBcImRpZmZcIiwgXCItLW5hbWUtb25seVwiLCBkZWZhdWx0QnJhbmNoXSkuc3Rkb3V0LnNwbGl0KFwiXFxuXCIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgaW5pdFJlbW90ZURhdGEgKGN3ZDogc3RyaW5nLCB3cml0ZVN0cmVhbXM6IFdyaXRlU3RyZWFtcyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IGdpdFJlbW90ZU1hdGNoO1xuICAgICAgICAgICAgbGV0IGdpdFJlbW90ZTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgLy8gTk9URTogRm9yIHBvd2VyIHVzZXIgdGhhdCB3aXNoZXMgdG8gY3VzdG9taXplIHRoZSByZW1vdGUgdXJsXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgVXRpbHMuc3Bhd24oW1wiZ2l0XCIsIFwicmVtb3RlXCIsIFwiZ2V0LXVybFwiLCBcImdjbC1vcmlnaW5cIl0sIGN3ZCk7XG4gICAgICAgICAgICAgICAgZ2l0UmVtb3RlID0gcmVzLnN0ZG91dDtcbiAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IFV0aWxzLnNwYXduKFtcImdpdFwiLCBcInJlbW90ZVwiLCBcImdldC11cmxcIiwgXCJvcmlnaW5cIl0sIGN3ZCk7XG4gICAgICAgICAgICAgICAgZ2l0UmVtb3RlID0gcmVzLnN0ZG91dDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGdpdFJlbW90ZS5zdGFydHNXaXRoKFwiaHR0cFwiKSkge1xuICAgICAgICAgICAgICAgIGdpdFJlbW90ZU1hdGNoID0gLyg/PHNjaGVtYT5odHRwcz8pOlxcL1xcLyg/OihbXjpdKyk6KFteQF0rKUApPyg/PGhvc3Q+W14vOl0rKTo/KD88cG9ydD5cXGQrKT9cXC8oPzxncm91cD5cXFMrKVxcLyg/PHByb2plY3Q+XFxTKylcXC5naXQvLmV4ZWMoZ2l0UmVtb3RlKTsgLy8gcmVnZXhyLmNvbS83dmU4bFxuICAgICAgICAgICAgICAgIGFzc2VydChnaXRSZW1vdGVNYXRjaD8uZ3JvdXBzICE9IG51bGwsIFwiZ2l0IHJlbW90ZSBnZXQtdXJsIG9yaWdpbiBkaWRuJ3QgcHJvdmlkZSB2YWxpZCBtYXRjaGVzXCIpO1xuXG4gICAgICAgICAgICAgICAgbGV0IHBvcnQgPSBcIjQ0M1wiO1xuICAgICAgICAgICAgICAgIGlmIChnaXRSZW1vdGVNYXRjaC5ncm91cHMuc2NoZW1hID09PSBcImh0dHBzXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcG9ydCA9IGdpdFJlbW90ZU1hdGNoLmdyb3Vwcy5wb3J0ID8/IFwiNDQzXCI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChnaXRSZW1vdGVNYXRjaC5ncm91cHMuc2NoZW1hID09PSBcImh0dHBcIikge1xuICAgICAgICAgICAgICAgICAgICBwb3J0ID0gZ2l0UmVtb3RlTWF0Y2guZ3JvdXBzLnBvcnQgPz8gXCI4MFwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnJlbW90ZS5ob3N0ID0gZ2l0UmVtb3RlTWF0Y2guZ3JvdXBzLmhvc3Q7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdGUuZ3JvdXAgPSBnaXRSZW1vdGVNYXRjaC5ncm91cHMuZ3JvdXA7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdGUucHJvamVjdCA9IGdpdFJlbW90ZU1hdGNoLmdyb3Vwcy5wcm9qZWN0O1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3RlLnNjaGVtYSA9IGdpdFJlbW90ZU1hdGNoLmdyb3Vwcy5zY2hlbWEgYXMgR2l0U2NoZW1hO1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3RlLnBvcnQgPSBwb3J0O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChnaXRSZW1vdGUuc3RhcnRzV2l0aChcInNzaDovL1wiKSkge1xuICAgICAgICAgICAgICAgIGdpdFJlbW90ZU1hdGNoID0gLyg/PHNjaGVtYT5zc2gpOlxcL1xcLyhcXHcrKUAoPzxob3N0PlteLzpdKyk6Pyg/PHBvcnQ+XFxkKyk/XFwvKD88Z3JvdXA+XFxTKylcXC8oPzxwcm9qZWN0PlxcUyspXFwuZ2l0Ly5leGVjKGdpdFJlbW90ZSk7IC8vIHJlZ2V4ci5jb20vN3ZqcTRcbiAgICAgICAgICAgICAgICBhc3NlcnQoZ2l0UmVtb3RlTWF0Y2g/Lmdyb3VwcyAhPSBudWxsLCBcImdpdCByZW1vdGUgZ2V0LXVybCBvcmlnaW4gZGlkbid0IHByb3ZpZGUgdmFsaWQgbWF0Y2hlc1wiKTtcblxuICAgICAgICAgICAgICAgIHRoaXMucmVtb3RlLmhvc3QgPSBnaXRSZW1vdGVNYXRjaC5ncm91cHMuaG9zdDtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW90ZS5ncm91cCA9IGdpdFJlbW90ZU1hdGNoLmdyb3Vwcy5ncm91cDtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW90ZS5wcm9qZWN0ID0gZ2l0UmVtb3RlTWF0Y2guZ3JvdXBzLnByb2plY3Q7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdGUuc2NoZW1hID0gZ2l0UmVtb3RlTWF0Y2guZ3JvdXBzLnNjaGVtYSBhcyBHaXRTY2hlbWE7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdGUucG9ydCA9IGdpdFJlbW90ZU1hdGNoLmdyb3Vwcy5wb3J0ID8/IFwiMjJcIjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZ2l0UmVtb3RlTWF0Y2ggPSAvKD88dXNlcm5hbWU+XFxTKylAKD88aG9zdD5bXjpdKyk6KD88Z3JvdXA+XFxTKylcXC8oPzxwcm9qZWN0PlxcUyspLy5leGVjKGdpdFJlbW90ZSk7IC8vIHJlZ2V4ci5jb20vN3Zqb3FcbiAgICAgICAgICAgICAgICBhc3NlcnQoZ2l0UmVtb3RlTWF0Y2g/Lmdyb3VwcyAhPSBudWxsLCBcImdpdCByZW1vdGUgZ2V0LXVybCBvcmlnaW4gZGlkbid0IHByb3ZpZGUgdmFsaWQgbWF0Y2hlc1wiKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgVXRpbHMuc3Bhd24oW1wic3NoXCIsIFwiLUdcIiwgYCR7Z2l0UmVtb3RlTWF0Y2guZ3JvdXBzLnVzZXJuYW1lfUAke2dpdFJlbW90ZU1hdGNoLmdyb3Vwcy5ob3N0fWBdKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwb3J0ID0gc3Rkb3V0LnNwbGl0KFwiXFxuXCIpLmZpbHRlcigobGluZSkgPT4gbGluZS5zdGFydHNXaXRoKFwicG9ydCBcIikpWzBdLnNwbGl0KFwiIFwiKVsxXTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW90ZS5ob3N0ID0gZ2l0UmVtb3RlTWF0Y2guZ3JvdXBzLmhvc3Q7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdGUuZ3JvdXAgPSBnaXRSZW1vdGVNYXRjaC5ncm91cHMuZ3JvdXA7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdGUucHJvamVjdCA9IFV0aWxzLnRyaW1TdWZmaXgoZ2l0UmVtb3RlTWF0Y2guZ3JvdXBzLnByb2plY3QsIFwiLmdpdFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW90ZS5zY2hlbWEgPSBcImdpdFwiO1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3RlLnBvcnQgPSBwb3J0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEFzc2VydGlvbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZGVycihjaGFsa2B7eWVsbG93ICR7ZS5tZXNzYWdlfX1cXG5gKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3cml0ZVN0cmVhbXMuc3RkZXJyKGNoYWxrYHt5ZWxsb3cgVXNpbmcgZmFsbGJhY2sgZ2l0IHJlbW90ZSBkYXRhfVxcbmApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgaW5pdFVzZXJEYXRhIChjd2Q6IHN0cmluZywgd3JpdGVTdHJlYW1zOiBXcml0ZVN0cmVhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBbXTtcblxuICAgICAgICBjb25zdCBnaXRVc2VybmFtZVByb21pc2UgPSBVdGlscy5zcGF3bihbXCJnaXRcIiwgXCJjb25maWdcIiwgXCJ1c2VyLm5hbWVcIl0sIGN3ZCkudGhlbigoe3N0ZG91dH0pID0+IHtcbiAgICAgICAgICAgIHRoaXMudXNlci5HSVRMQUJfVVNFUl9OQU1FID0gc3Rkb3V0LnRyaW1FbmQoKTtcbiAgICAgICAgfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZGVycihjaGFsa2B7eWVsbG93IFVzaW5nIGZhbGxiYWNrIGdpdCB1c2VyLm5hbWV9XFxuYCk7XG4gICAgICAgIH0pO1xuICAgICAgICBwcm9taXNlcy5wdXNoKGdpdFVzZXJuYW1lUHJvbWlzZSk7XG5cbiAgICAgICAgY29uc3QgZ2l0RW1haWxQcm9taXNlID0gVXRpbHMuc3Bhd24oW1wiZ2l0XCIsIFwiY29uZmlnXCIsIFwidXNlci5lbWFpbFwiXSwgY3dkKS50aGVuKCh7c3Rkb3V0fSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW1haWwgPSBzdGRvdXQudHJpbUVuZCgpO1xuICAgICAgICAgICAgdGhpcy51c2VyLkdJVExBQl9VU0VSX0VNQUlMID0gZW1haWw7XG4gICAgICAgICAgICB0aGlzLnVzZXIuR0lUTEFCX1VTRVJfTE9HSU4gPSBlbWFpbC5yZXBsYWNlKC9ALiovLCBcIlwiKTtcbiAgICAgICAgfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZGVycihjaGFsa2B7eWVsbG93IFVzaW5nIGZhbGxiYWNrIGdpdCB1c2VyLmVtYWlsfVxcbmApO1xuICAgICAgICB9KTtcbiAgICAgICAgcHJvbWlzZXMucHVzaChnaXRFbWFpbFByb21pc2UpO1xuXG4gICAgICAgIGNvbnN0IG9zVWlkUHJvbWlzZSA9IFV0aWxzLnNwYXduKFtcImlkXCIsIFwiLXVcIl0sIGN3ZCkudGhlbigoe3N0ZG91dH0pID0+IHtcbiAgICAgICAgICAgIHRoaXMudXNlci5HSVRMQUJfVVNFUl9JRCA9IHN0ZG91dC50cmltRW5kKCk7XG4gICAgICAgIH0pLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRlcnIoY2hhbGtge3llbGxvdyBVc2luZyBmYWxsYmFjayBsaW51eCB1c2VyIGlkfVxcbmApO1xuICAgICAgICB9KTtcbiAgICAgICAgcHJvbWlzZXMucHVzaChvc1VpZFByb21pc2UpO1xuXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICB9XG59XG4iXX0=