@milkio/stargate-worker 1.0.0-beta.35 → 1.0.0-beta.37

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.
Files changed (2) hide show
  1. package/index.js +21 -15
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -101,7 +101,7 @@ async function createStargateWorker(stargateOptions) {
101
101
  });
102
102
  const stargate = {
103
103
  async execute(path, options) {
104
- return new Promise(async (resolve, reject) => {
104
+ return new Promise(async (resolve) => {
105
105
  await connect;
106
106
  const executeId = __createId();
107
107
  if (options?.type === "action" || !options?.type) {
@@ -126,15 +126,11 @@ async function createStargateWorker(stargateOptions) {
126
126
  }
127
127
  if (options?.type === "stream") {
128
128
  let flow;
129
- console.log(1);
130
129
  const handler = (event) => {
131
- console.log(2, JSON.stringify(event.data));
132
130
  if (typeof event.data !== "object")
133
131
  return;
134
132
  if (event.data.executeId !== executeId)
135
133
  return;
136
- stargateOptions.port.removeEventListener("message", handler);
137
- console.log(3, event.data);
138
134
  if (!flow) {
139
135
  flow = createFlow();
140
136
  if (!event.data.success)
@@ -142,13 +138,14 @@ async function createStargateWorker(stargateOptions) {
142
138
  if (event.data.success)
143
139
  resolve([null, flow, { executeId }]);
144
140
  } else {
145
- console.log(4, event.data);
146
- if (event.data.done)
141
+ if (event.data.done) {
142
+ stargateOptions.port.removeEventListener("message", handler);
147
143
  flow.return();
148
- else if (event.data.success)
149
- flow.emit(event.data.data);
150
- else if (!event.data.success)
144
+ } else if (!event.data.success) {
145
+ stargateOptions.port.removeEventListener("message", handler);
151
146
  flow.throw(event.data.data);
147
+ } else if (event.data.success)
148
+ flow.emit(event.data.data);
152
149
  }
153
150
  };
154
151
  stargateOptions.port.addEventListener("message", handler);
@@ -175,7 +172,7 @@ function createFlow() {
175
172
  item.resolve(flow);
176
173
  return;
177
174
  } else {
178
- const resolvers = Promise.withResolvers();
175
+ const resolvers = withResolvers();
179
176
  resolvers.resolve(flow);
180
177
  flows.push({ ...resolvers, blank: false });
181
178
  }
@@ -185,7 +182,7 @@ function createFlow() {
185
182
  if (status !== "pending")
186
183
  return { done: true, value: null };
187
184
  if (flows.length === 0) {
188
- const resolvers = Promise.withResolvers();
185
+ const resolvers = withResolvers();
189
186
  flows.push({ ...resolvers, blank: true });
190
187
  }
191
188
  const flow = flows.at(0);
@@ -204,7 +201,7 @@ function createFlow() {
204
201
  async throw(err) {
205
202
  status = "rejected";
206
203
  if (flows.length === 0) {
207
- const resolvers = Promise.withResolvers();
204
+ const resolvers = withResolvers();
208
205
  flows.push({ ...resolvers, blank: true });
209
206
  }
210
207
  for (const flow of flows) {
@@ -220,10 +217,19 @@ function createFlow() {
220
217
  };
221
218
  return iterator;
222
219
  }
220
+ function withResolvers() {
221
+ let resolve;
222
+ let reject;
223
+ const promise = new Promise((res, rej) => {
224
+ resolve = res;
225
+ reject = rej;
226
+ });
227
+ return { promise, resolve, reject };
228
+ }
223
229
  export {
224
230
  createStargateWorker,
225
231
  createFlow
226
232
  };
227
233
 
228
- //# debugId=C721E068E8FD011E64756E2164756E21
229
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi5cXHV0aWxzXFxjcmVhdGUtaWQudHMiLCAiLi5cXGluZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgInR5cGUgSWRHZW5lcmF0b3JPcHRpb25zID0ge1xuICBsZW5ndGg/OiBudW1iZXI7XG4gIHRpbWVzdGFtcDogYm9vbGVhbjtcbiAgc2VxdWVudGlhbDogYm9vbGVhbjtcbn07XG5cbmZ1bmN0aW9uIGRlZmluZUlkR2VuZXJhdG9yKG9wdGlvbnM6IElkR2VuZXJhdG9yT3B0aW9ucykge1xuICBpZiAoIW9wdGlvbnMubGVuZ3RoKSBvcHRpb25zLmxlbmd0aCA9IDI0O1xuICBpZiAob3B0aW9ucy5sZW5ndGggPCAxKSB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGxlbmd0aFwiKTtcbiAgaWYgKG9wdGlvbnMubGVuZ3RoID4gNjEpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgbGVuZ3RoXCIpO1xuICBpZiAob3B0aW9ucy50aW1lc3RhbXAgJiYgb3B0aW9ucy5sZW5ndGggPCA5KSB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGxlbmd0aFwiKTtcbiAgbGV0IGxhc3RUaW1lID0gMDtcbiAgbGV0IGxhc3REZWNpbWFsID0gMG47XG4gIHJldHVybiB7XG4gICAgY3JlYXRlSWQoKSB7XG4gICAgICBsZXQgcmFuZExlbmd0aCA9IG9wdGlvbnMubGVuZ3RoITtcbiAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICBsZXQgaWQgPSBcIlwiO1xuICAgICAgaWYgKG9wdGlvbnMudGltZXN0YW1wKSB7XG4gICAgICAgIHJhbmRMZW5ndGggLT0gODtcbiAgICAgICAgaWQgPSBgJHtpZH0ke19fYmlnSW50VG9TdHJpbmcoQmlnSW50KG5vdykpLnBhZFN0YXJ0KDgsIFwiMFwiKX1gO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMuc2VxdWVudGlhbCAmJiBsYXN0VGltZSA9PT0gbm93KSB7XG4gICAgICAgIGlkID0gYCR7aWR9JHtfX2JpZ0ludFRvU3RyaW5nKCsrbGFzdERlY2ltYWwpLnBhZFN0YXJ0KDEsIFwiMFwiKX1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGFzdFRpbWUgPSBub3c7XG4gICAgICAgIGNvbnN0IG1pbiA9IDBuO1xuICAgICAgICBjb25zdCBtYXggPSBfX2dldE1heFZhbHVlKEJpZ0ludChyYW5kTGVuZ3RoKSk7XG4gICAgICAgIGxhc3REZWNpbWFsID0gX19zZWN1cmVSYW5kb21CaWdJbnQobWluLCBtYXgpO1xuICAgICAgICBpZCA9IGAke2lkfSR7X19iaWdJbnRUb1N0cmluZyhsYXN0RGVjaW1hbCkucGFkU3RhcnQocmFuZExlbmd0aCwgXCIwXCIpfWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gaWQ7XG4gICAgfSxcbiAgICBnZXRJZFRpbWVzdGFtcChpZDogc3RyaW5nKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy50aW1lc3RhbXAgPyBOdW1iZXIoX19zdHJpbmdUb0JpZ0ludChpZC5zbGljZSgwLCA4KS5yZXBsYWNlQWxsKFwiMFwiLCBcIlwiKSkpIDogMDtcbiAgICB9LFxuICB9O1xufVxuXG5jb25zdCBFTkNPRElORyA9IFwiMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjtcblxuZnVuY3Rpb24gX19zZWN1cmVSYW5kb21CaWdJbnQobWluOiBiaWdpbnQsIG1heDogYmlnaW50KTogYmlnaW50IHtcbiAgaWYgKG1pbiA+PSBtYXgpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgcmFuZ2VcIik7XG5cbiAgY29uc3QgcmFuZ2UgPSBtYXggLSBtaW4gKyAxbjtcbiAgY29uc3QgYnl0ZUNvdW50ID0gTWF0aC5jZWlsKE51bWJlcihCaWdJbnQocmFuZ2UudG9TdHJpbmcoMikubGVuZ3RoKSkgLyA4KTtcbiAgY29uc3QgZW50cm9weUJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZUNvdW50KTtcblxuICBsZXQgcmFuZG9tVmFsdWU6IGJpZ2ludDtcbiAgZG8ge1xuICAgIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMoZW50cm9weUJ5dGVzKTtcbiAgICByYW5kb21WYWx1ZSA9XG4gICAgICBCaWdJbnQoXG4gICAgICAgIGAweCR7QXJyYXkuZnJvbShlbnRyb3B5Qnl0ZXMpXG4gICAgICAgICAgLm1hcCgoYikgPT4gYi50b1N0cmluZygxNikucGFkU3RhcnQoMiwgXCIwXCIpKVxuICAgICAgICAgIC5qb2luKFwiXCIpfWAsXG4gICAgICApICUgcmFuZ2U7XG4gIH0gd2hpbGUgKHJhbmRvbVZhbHVlIDwgMG4pO1xuXG4gIHJldHVybiBtaW4gKyByYW5kb21WYWx1ZTtcbn1cblxuZnVuY3Rpb24gX19iaWdJbnRUb1N0cmluZyh2YWx1ZTogYmlnaW50KTogc3RyaW5nIHtcbiAgY29uc3QgYmFzZSA9IEJpZ0ludChFTkNPRElORy5sZW5ndGgpO1xuICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgbGV0IGN1cnJlbnQgPSB2YWx1ZTtcblxuICBpZiAoY3VycmVudCA9PT0gMG4pIHJldHVybiBFTkNPRElOR1swXTtcblxuICB3aGlsZSAoY3VycmVudCA+IDBuKSB7XG4gICAgY29uc3QgcmVtYWluZGVyID0gY3VycmVudCAlIGJhc2U7XG4gICAgcmVzdWx0ID0gRU5DT0RJTkdbTnVtYmVyKHJlbWFpbmRlcildICsgcmVzdWx0O1xuICAgIGN1cnJlbnQgPSBjdXJyZW50IC8gYmFzZTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBfX3N0cmluZ1RvQmlnSW50KHN0cjogc3RyaW5nKTogYmlnaW50IHtcbiAgY29uc3QgY2hhck1hcDogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IEVOQ09ESU5HLmxlbmd0aDsgaSsrKSB7XG4gICAgY2hhck1hcFtFTkNPRElOR1tpXV0gPSBpO1xuICB9XG5cbiAgY29uc3QgYmFzZSA9IEJpZ0ludChFTkNPRElORy5sZW5ndGgpO1xuICBsZXQgcmVzdWx0ID0gMG47XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjaGFyID0gc3RyW2ldO1xuICAgIGlmICghKGNoYXIgaW4gY2hhck1hcCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjaGFyYWN0ZXIgJyR7Y2hhcn0nIGluIGlucHV0IHN0cmluZ2ApO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZSA9IEJpZ0ludChjaGFyTWFwW2NoYXJdKTtcbiAgICByZXN1bHQgPSByZXN1bHQgKiBiYXNlICsgdmFsdWU7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBfX2dldE1heFZhbHVlKG46IGJpZ2ludCk6IGJpZ2ludCB7XG4gIHJldHVybiBCaWdJbnQoRU5DT0RJTkcubGVuZ3RoKSAqKiBuIC0gMW47XG59XG5cbmNvbnN0IGlkR2VuZXJhdG9yID0gZGVmaW5lSWRHZW5lcmF0b3IoeyBsZW5ndGg6IDI0LCB0aW1lc3RhbXA6IGZhbHNlLCBzZXF1ZW50aWFsOiBmYWxzZSB9KTtcblxuZXhwb3J0IGNvbnN0IF9fY3JlYXRlSWQgPSBpZEdlbmVyYXRvci5jcmVhdGVJZDtcbiIsCiAgICAiaW1wb3J0IHsgX19jcmVhdGVJZCB9IGZyb20gXCIuL3V0aWxzL2NyZWF0ZS1pZC50c1wiO1xuXG5leHBvcnQgdHlwZSBNaWxraW9TdGFyZ2F0ZU9wdGlvbnMgPSB7XG4gIHBvcnQ6IHtcbiAgICBwb3N0TWVzc2FnZTogKGRhdGE6IGFueSkgPT4gdm9pZDtcbiAgICBhZGRFdmVudExpc3RlbmVyOiAoZXZlbnQ6IFwibWVzc2FnZVwiLCBjYWxsYmFjazogKGV2ZW50OiB7IGRhdGE6IGFueSB9KSA9PiB2b2lkKSA9PiB2b2lkO1xuICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI6IChldmVudDogXCJtZXNzYWdlXCIsIGNhbGxiYWNrOiAoZXZlbnQ6IHsgZGF0YTogYW55IH0pID0+IHZvaWQpID0+IHZvaWQ7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBNaXhpbjxULCBVPiA9IFUgJiBPbWl0PFQsIGtleW9mIFU+O1xuXG5leHBvcnQgdHlwZSBFeGVjdXRlT3B0aW9ucyA9IHtcbiAgcGFyYW1zPzogUmVjb3JkPGFueSwgYW55PjtcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHR5cGU/OiBcImFjdGlvblwiIHwgXCJzdHJlYW1cIjtcbn07XG5cbmV4cG9ydCB0eXBlIEV4ZWN1dGVSZXN1bHRzT3B0aW9uID0geyBleGVjdXRlSWQ6IHN0cmluZyB9O1xuXG5leHBvcnQgdHlwZSBHZW5lcmF0b3JHZW5lcmljPFQ+ID0gVCBleHRlbmRzIEFzeW5jR2VuZXJhdG9yPGluZmVyIEk+ID8gSSA6IG5ldmVyO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlU3RhcmdhdGVXb3JrZXI8R2VuZXJhdGVkIGV4dGVuZHMgeyByb3V0ZVNjaGVtYTogYW55OyByZWplY3RDb2RlOiBhbnkgfT4oc3RhcmdhdGVPcHRpb25zOiBNaWxraW9TdGFyZ2F0ZU9wdGlvbnMpIHtcbiAgY29uc3QgY29ubmVjdCA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlciA9IChldmVudDogeyBkYXRhOiBhbnkgfSkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmRhdGEgIT09IFwiUE9OR1wiKSByZXR1cm47XG4gICAgICBjbGVhckludGVydmFsKHRpbWVyKTtcbiAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xuICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICB9O1xuICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xuICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKFwiUElOR1wiKTtcbiAgICBjb25zdCB0aW1lciA9IHNldEludGVydmFsKCgpID0+IHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKFwiUElOR1wiKSwgNDIpO1xuICB9KTtcbiAgY29uc3Qgc3RhcmdhdGUgPSB7XG4gICAgYXN5bmMgZXhlY3V0ZTxQYXRoIGV4dGVuZHMga2V5b2YgR2VuZXJhdGVkW1wicm91dGVTY2hlbWFcIl0+KFxuICAgICAgcGF0aDogUGF0aCxcbiAgICAgIG9wdGlvbnM/OiBNaXhpbjxcbiAgICAgICAgRXhlY3V0ZU9wdGlvbnMsXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXM/OiBHZW5lcmF0ZWRbXCJyb3V0ZVNjaGVtYVwiXVtQYXRoXVtcInR5cGVzXCJdW1wicGFyYW1zXCJdO1xuICAgICAgICB9XG4gICAgICA+LFxuICAgICk6IFByb21pc2U8XG4gICAgICBHZW5lcmF0ZWRbXCJyb3V0ZVNjaGVtYVwiXVtQYXRoXVtcInR5cGVzXCJdW1wi8J+Qo1wiXSBleHRlbmRzIGJvb2xlYW5cbiAgICAgICAgPyAvLyBhY3Rpb25cbiAgICAgICAgICBbUGFydGlhbDxHZW5lcmF0ZWRbXCJyZWplY3RDb2RlXCJdPiwgbnVsbCwgRXhlY3V0ZVJlc3VsdHNPcHRpb25dIHwgW251bGwsIEdlbmVyYXRlZFtcInJvdXRlU2NoZW1hXCJdW1BhdGhdW1widHlwZXNcIl1bXCJyZXN1bHRcIl0sIEV4ZWN1dGVSZXN1bHRzT3B0aW9uXVxuICAgICAgICA6IC8vIHN0cmVhbVxuICAgICAgICAgIFtQYXJ0aWFsPEdlbmVyYXRlZFtcInJlamVjdENvZGVcIl0+LCBudWxsLCBFeGVjdXRlUmVzdWx0c09wdGlvbl0gfCBbbnVsbCwgQXN5bmNHZW5lcmF0b3I8W1BhcnRpYWw8R2VuZXJhdGVkW1wicmVqZWN0Q29kZVwiXT4sIG51bGxdIHwgW251bGwsIEdlbmVyYXRvckdlbmVyaWM8R2VuZXJhdGVkW1wicm91dGVTY2hlbWFcIl1bUGF0aF1bXCJ0eXBlc1wiXVtcInJlc3VsdFwiXT5dLCBFeGVjdXRlUmVzdWx0c09wdGlvbj5dXG4gICAgPiB7XG4gICAgICAvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vQXN5bmNQcm9taXNlRXhlY3V0b3I6IDxleHBsYW5hdGlvbj5cbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGF3YWl0IGNvbm5lY3Q7XG4gICAgICAgIGNvbnN0IGV4ZWN1dGVJZCA9IF9fY3JlYXRlSWQoKTtcbiAgICAgICAgaWYgKG9wdGlvbnM/LnR5cGUgPT09IFwiYWN0aW9uXCIgfHwgIW9wdGlvbnM/LnR5cGUpIHtcbiAgICAgICAgICBjb25zdCBoYW5kbGVyID0gKGV2ZW50OiB7IGRhdGE6IGFueSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV2ZW50LmRhdGEgIT09IFwib2JqZWN0XCIpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmV4ZWN1dGVJZCAhPT0gZXhlY3V0ZUlkKSByZXR1cm47XG4gICAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVyKTtcbiAgICAgICAgICAgIGlmICghZXZlbnQuZGF0YS5zdWNjZXNzKSByZXNvbHZlKFtldmVudC5kYXRhLmVycm9yLCBudWxsLCB7IGV4ZWN1dGVJZCB9XSk7XG4gICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5zdWNjZXNzKSByZXNvbHZlKFtudWxsLCBldmVudC5kYXRhLmRhdGEsIHsgZXhlY3V0ZUlkIH1dIGFzIGFueSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVyKTtcbiAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5wb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICBleGVjdXRlSWQsXG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgcGFyYW1zOiBvcHRpb25zPy5wYXJhbXMsXG4gICAgICAgICAgICBoZWFkZXJzOiBvcHRpb25zPy5oZWFkZXJzLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zPy50eXBlID09PSBcInN0cmVhbVwiKSB7XG4gICAgICAgICAgbGV0IGZsb3c6IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZUZsb3c+IHwgdW5kZWZpbmVkO1xuICAgICAgICAgIGNvbnNvbGUubG9nKDEpO1xuICAgICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoZXZlbnQ6IHsgZGF0YTogYW55IH0pID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKDIsIEpTT04uc3RyaW5naWZ5KGV2ZW50LmRhdGEpKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZXZlbnQuZGF0YSAhPT0gXCJvYmplY3RcIikgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuZXhlY3V0ZUlkICE9PSBleGVjdXRlSWQpIHJldHVybjtcbiAgICAgICAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coMywgZXZlbnQuZGF0YSk7XG4gICAgICAgICAgICBpZiAoIWZsb3cpIHtcbiAgICAgICAgICAgICAgZmxvdyA9IGNyZWF0ZUZsb3coKTtcbiAgICAgICAgICAgICAgaWYgKCFldmVudC5kYXRhLnN1Y2Nlc3MpIHJlc29sdmUoW2V2ZW50LmRhdGEuZXJyb3IsIG51bGwsIHsgZXhlY3V0ZUlkIH1dKTtcbiAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuc3VjY2VzcykgcmVzb2x2ZShbbnVsbCwgZmxvdywgeyBleGVjdXRlSWQgfV0gYXMgYW55KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKDQsIGV2ZW50LmRhdGEpO1xuICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5kb25lKSBmbG93LnJldHVybigpO1xuICAgICAgICAgICAgICBlbHNlIGlmIChldmVudC5kYXRhLnN1Y2Nlc3MpIGZsb3cuZW1pdChldmVudC5kYXRhLmRhdGEpO1xuICAgICAgICAgICAgICBlbHNlIGlmICghZXZlbnQuZGF0YS5zdWNjZXNzKSBmbG93LnRocm93KGV2ZW50LmRhdGEuZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVyKTtcbiAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5wb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICBleGVjdXRlSWQsXG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgcGFyYW1zOiBvcHRpb25zPy5wYXJhbXMsXG4gICAgICAgICAgICBoZWFkZXJzOiBvcHRpb25zPy5oZWFkZXJzLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICB9O1xuXG4gIHJldHVybiBzdGFyZ2F0ZTtcbn1cblxudHlwZSBEZWZlcnJlZDxUPiA9IHtcbiAgcmVzb2x2ZTogKHZhbHVlOiBUIHwgUHJvbWlzZUxpa2U8VD4pID0+IHZvaWQ7XG4gIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIE1pbGtpb0Zsb3c8VCwgVFJldHVybiA9IGFueSwgVE5leHQgPSBhbnk+ID0ge1xuICBlbWl0OiAoZmxvdzogVCkgPT4gdm9pZDtcbiAgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXTogKCkgPT4gTWlsa2lvRmxvdzxUPjtcbiAgbmV4dCguLi5bdmFsdWVdOiBbXSB8IFtUTmV4dF0pOiBQcm9taXNlPEl0ZXJhdG9yUmVzdWx0PFQsIFRSZXR1cm4+PjtcbiAgcmV0dXJuKCk6IFByb21pc2U8SXRlcmF0b3JSZXN1bHQ8VCwgVFJldHVybj4+O1xuICB0aHJvdyhlcnJvcjogYW55KTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDxULCBUUmV0dXJuPj47XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRmxvdzxUPigpOiBNaWxraW9GbG93PFQ+IHtcbiAgbGV0IHN0YXR1czogXCJwZW5kaW5nXCIgfCBcInJlc29sdmVkXCIgfCBcInJlamVjdGVkXCIgPSBcInBlbmRpbmdcIjtcbiAgY29uc3QgZmxvd3M6IEFycmF5PHtcbiAgICBibGFuazogYm9vbGVhbjtcbiAgICBwcm9taXNlOiBQcm9taXNlPFQ+O1xuICAgIHJlc29sdmU6ICh2YWx1ZT86IFQgfCBQcm9taXNlTGlrZTxUPikgPT4gdm9pZDtcbiAgICByZWplY3Q6IChyZWFzb24/OiBhbnkpID0+IHZvaWQ7XG4gIH0+ID0gW107XG5cbiAgY29uc3QgaXRlcmF0b3IgPSB7XG4gICAgZW1pdDogKGZsb3c6IFQpID0+IHtcbiAgICAgIGlmIChmbG93cy5hdCgtMSk/LmJsYW5rID09PSB0cnVlKSB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBmbG93cy5hdCgtMSkhO1xuICAgICAgICBpdGVtLmJsYW5rID0gZmFsc2U7XG4gICAgICAgIGl0ZW0ucmVzb2x2ZShmbG93KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZXJzID0gUHJvbWlzZS53aXRoUmVzb2x2ZXJzPFQ+KCk7XG4gICAgICAgIHJlc29sdmVycy5yZXNvbHZlKGZsb3cpO1xuICAgICAgICBmbG93cy5wdXNoKHsgLi4ucmVzb2x2ZXJzLCBibGFuazogZmFsc2UgfSBhcyBhbnkpO1xuICAgICAgfVxuICAgIH0sXG4gICAgLi4uKHtcbiAgICAgIGFzeW5jIG5leHQoKTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDxUPj4ge1xuICAgICAgICBpZiAoc3RhdHVzICE9PSBcInBlbmRpbmdcIikgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IG51bGwgfTtcbiAgICAgICAgaWYgKGZsb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGNvbnN0IHJlc29sdmVycyA9IFByb21pc2Uud2l0aFJlc29sdmVyczxUPigpO1xuICAgICAgICAgIGZsb3dzLnB1c2goeyAuLi5yZXNvbHZlcnMsIGJsYW5rOiB0cnVlIH0gYXMgYW55KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmbG93ID0gZmxvd3MuYXQoMCkhO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmbG93LnByb21pc2U7XG4gICAgICAgIGZsb3dzLnNoaWZ0KCk7XG4gICAgICAgIHJldHVybiB7IGRvbmU6IHN0YXR1cyAhPT0gXCJwZW5kaW5nXCIsIHZhbHVlOiByZXN1bHQgfTtcbiAgICAgIH0sXG4gICAgICBhc3luYyByZXR1cm4oKTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDx2b2lkPj4ge1xuICAgICAgICBzdGF0dXMgPSBcInJlc29sdmVkXCI7XG4gICAgICAgIGZvciAoY29uc3QgZmxvdyBvZiBmbG93cykge1xuICAgICAgICAgIGZsb3cuYmxhbmsgPSBmYWxzZTtcbiAgICAgICAgICBmbG93LnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBkb25lOiB0cnVlLCB2YWx1ZTogbnVsbCB9O1xuICAgICAgfSxcbiAgICAgIGFzeW5jIHRocm93KGVycjogYW55KTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDx2b2lkPj4ge1xuICAgICAgICBzdGF0dXMgPSBcInJlamVjdGVkXCI7XG4gICAgICAgIGlmIChmbG93cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBjb25zdCByZXNvbHZlcnMgPSBQcm9taXNlLndpdGhSZXNvbHZlcnM8VD4oKTtcbiAgICAgICAgICBmbG93cy5wdXNoKHsgLi4ucmVzb2x2ZXJzLCBibGFuazogdHJ1ZSB9IGFzIGFueSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBmbG93IG9mIGZsb3dzKSB7XG4gICAgICAgICAgZmxvdy5ibGFuayA9IGZhbHNlO1xuICAgICAgICAgIGZsb3cucmVqZWN0KGVycik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IG51bGwgfTtcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgQXN5bmNJdGVyYXRvcjx1bmtub3duPiksXG4gICAgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG4gIH07XG5cbiAgcmV0dXJuIGl0ZXJhdG9yIGFzIE1pbGtpb0Zsb3c8VD47XG59XG4iCiAgXSwKICAibWFwcGluZ3MiOiAiO0FBTUEsU0FBUyxpQkFBaUIsQ0FBQyxTQUE2QjtBQUFBLEVBQ3RELEtBQUssUUFBUTtBQUFBLElBQVEsUUFBUSxTQUFTO0FBQUEsRUFDdEMsSUFBSSxRQUFRLFNBQVM7QUFBQSxJQUFHLE1BQU0sSUFBSSxNQUFNLGdCQUFnQjtBQUFBLEVBQ3hELElBQUksUUFBUSxTQUFTO0FBQUEsSUFBSSxNQUFNLElBQUksTUFBTSxnQkFBZ0I7QUFBQSxFQUN6RCxJQUFJLFFBQVEsYUFBYSxRQUFRLFNBQVM7QUFBQSxJQUFHLE1BQU0sSUFBSSxNQUFNLGdCQUFnQjtBQUFBLEVBQzdFLElBQUksV0FBVztBQUFBLEVBQ2YsSUFBSSxjQUFjO0FBQUEsRUFDbEIsT0FBTztBQUFBLElBQ0wsUUFBUSxHQUFHO0FBQUEsTUFDVCxJQUFJLGFBQWEsUUFBUTtBQUFBLE1BQ3pCLE1BQU0sTUFBTSxLQUFLLElBQUk7QUFBQSxNQUNyQixJQUFJLEtBQUs7QUFBQSxNQUNULElBQUksUUFBUSxXQUFXO0FBQUEsUUFDckIsY0FBYztBQUFBLFFBQ2QsS0FBSyxHQUFHLEtBQUssaUJBQWlCLE9BQU8sR0FBRyxDQUFDLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFBQSxNQUM1RDtBQUFBLE1BQ0EsSUFBSSxRQUFRLGNBQWMsYUFBYSxLQUFLO0FBQUEsUUFDMUMsS0FBSyxHQUFHLEtBQUssbUJBQW1CLFdBQVcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUFBLE1BQzlELEVBQU87QUFBQSxRQUNMLFdBQVc7QUFBQSxRQUNYLE1BQU0sTUFBTTtBQUFBLFFBQ1osTUFBTSxNQUFNLGNBQWMsT0FBTyxVQUFVLENBQUM7QUFBQSxRQUM1QyxjQUFjLHFCQUFxQixLQUFLLEdBQUc7QUFBQSxRQUMzQyxLQUFLLEdBQUcsS0FBSyxpQkFBaUIsV0FBVyxFQUFFLFNBQVMsWUFBWSxHQUFHO0FBQUE7QUFBQSxNQUVyRSxPQUFPO0FBQUE7QUFBQSxJQUVULGNBQWMsQ0FBQyxJQUFZO0FBQUEsTUFDekIsT0FBTyxRQUFRLFlBQVksT0FBTyxpQkFBaUIsR0FBRyxNQUFNLEdBQUcsQ0FBQyxFQUFFLFdBQVcsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJO0FBQUE7QUFBQSxFQUU5RjtBQUFBO0FBR0YsSUFBTSxXQUFXO0FBRWpCLFNBQVMsb0JBQW9CLENBQUMsS0FBYSxLQUFxQjtBQUFBLEVBQzlELElBQUksT0FBTztBQUFBLElBQUssTUFBTSxJQUFJLE1BQU0sZUFBZTtBQUFBLEVBRS9DLE1BQU0sUUFBUSxNQUFNLE1BQU07QUFBQSxFQUMxQixNQUFNLFlBQVksS0FBSyxLQUFLLE9BQU8sT0FBTyxNQUFNLFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFBQSxFQUN4RSxNQUFNLGVBQWUsSUFBSSxXQUFXLFNBQVM7QUFBQSxFQUU3QyxJQUFJO0FBQUEsRUFDSixHQUFHO0FBQUEsSUFDRCxPQUFPLGdCQUFnQixZQUFZO0FBQUEsSUFDbkMsY0FDRSxPQUNFLEtBQUssTUFBTSxLQUFLLFlBQVksRUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsRUFBRSxTQUFTLEdBQUcsR0FBRyxDQUFDLEVBQzFDLEtBQUssRUFBRSxHQUNaLElBQUk7QUFBQSxFQUNSLFNBQVMsY0FBYztBQUFBLEVBRXZCLE9BQU8sTUFBTTtBQUFBO0FBR2YsU0FBUyxnQkFBZ0IsQ0FBQyxPQUF1QjtBQUFBLEVBQy9DLE1BQU0sT0FBTyxPQUFPLFNBQVMsTUFBTTtBQUFBLEVBQ25DLElBQUksU0FBUztBQUFBLEVBQ2IsSUFBSSxVQUFVO0FBQUEsRUFFZCxJQUFJLFlBQVk7QUFBQSxJQUFJLE9BQU8sU0FBUztBQUFBLEVBRXBDLE9BQU8sVUFBVSxJQUFJO0FBQUEsSUFDbkIsTUFBTSxZQUFZLFVBQVU7QUFBQSxJQUM1QixTQUFTLFNBQVMsT0FBTyxTQUFTLEtBQUs7QUFBQSxJQUN2QyxVQUFVLFVBQVU7QUFBQSxFQUN0QjtBQUFBLEVBQ0EsT0FBTztBQUFBO0FBR1QsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFxQjtBQUFBLEVBQzdDLE1BQU0sVUFBcUMsQ0FBQztBQUFBLEVBQzVDLFNBQVMsSUFBSSxFQUFHLElBQUksU0FBUyxRQUFRLEtBQUs7QUFBQSxJQUN4QyxRQUFRLFNBQVMsTUFBTTtBQUFBLEVBQ3pCO0FBQUEsRUFFQSxNQUFNLE9BQU8sT0FBTyxTQUFTLE1BQU07QUFBQSxFQUNuQyxJQUFJLFNBQVM7QUFBQSxFQUViLFNBQVMsSUFBSSxFQUFHLElBQUksSUFBSSxRQUFRLEtBQUs7QUFBQSxJQUNuQyxNQUFNLE9BQU8sSUFBSTtBQUFBLElBQ2pCLE1BQU0sUUFBUSxVQUFVO0FBQUEsTUFDdEIsTUFBTSxJQUFJLE1BQU0sc0JBQXNCLHVCQUF1QjtBQUFBLElBQy9EO0FBQUEsSUFDQSxNQUFNLFFBQVEsT0FBTyxRQUFRLEtBQUs7QUFBQSxJQUNsQyxTQUFTLFNBQVMsT0FBTztBQUFBLEVBQzNCO0FBQUEsRUFFQSxPQUFPO0FBQUE7QUFHVCxTQUFTLGFBQWEsQ0FBQyxHQUFtQjtBQUFBLEVBQ3hDLE9BQU8sT0FBTyxTQUFTLE1BQU0sS0FBSyxJQUFJO0FBQUE7QUFHeEMsSUFBTSxjQUFjLGtCQUFrQixFQUFFLFFBQVEsSUFBSSxXQUFXLE9BQU8sWUFBWSxNQUFNLENBQUM7QUFFbEYsSUFBTSxhQUFhLFlBQVk7OztBQ2xGdEMsZUFBc0Isb0JBQTZFLENBQUMsaUJBQXdDO0FBQUEsRUFDMUksTUFBTSxVQUFVLElBQUksUUFBUSxDQUFDLFlBQVk7QUFBQSxJQUN2QyxNQUFNLFVBQVUsQ0FBQyxVQUF5QjtBQUFBLE1BQ3hDLElBQUksTUFBTSxTQUFTO0FBQUEsUUFBUTtBQUFBLE1BQzNCLGNBQWMsS0FBSztBQUFBLE1BQ25CLGdCQUFnQixLQUFLLG9CQUFvQixXQUFXLE9BQU87QUFBQSxNQUMzRCxRQUFRLElBQUk7QUFBQTtBQUFBLElBRWQsZ0JBQWdCLEtBQUssaUJBQWlCLFdBQVcsT0FBTztBQUFBLElBQ3hELGdCQUFnQixLQUFLLFlBQVksTUFBTTtBQUFBLElBQ3ZDLE1BQU0sUUFBUSxZQUFZLE1BQU0sZ0JBQWdCLEtBQUssWUFBWSxNQUFNLEdBQUcsRUFBRTtBQUFBLEdBQzdFO0FBQUEsRUFDRCxNQUFNLFdBQVc7QUFBQSxTQUNULFFBQW9ELENBQ3hELE1BQ0EsU0FZQTtBQUFBLE1BRUEsT0FBTyxJQUFJLFFBQVEsT0FBTyxTQUFTLFdBQVc7QUFBQSxRQUM1QyxNQUFNO0FBQUEsUUFDTixNQUFNLFlBQVksV0FBVztBQUFBLFFBQzdCLElBQUksU0FBUyxTQUFTLGFBQWEsU0FBUyxNQUFNO0FBQUEsVUFDaEQsTUFBTSxVQUFVLENBQUMsVUFBeUI7QUFBQSxZQUN4QyxJQUFJLE9BQU8sTUFBTSxTQUFTO0FBQUEsY0FBVTtBQUFBLFlBQ3BDLElBQUksTUFBTSxLQUFLLGNBQWM7QUFBQSxjQUFXO0FBQUEsWUFDeEMsZ0JBQWdCLEtBQUssb0JBQW9CLFdBQVcsT0FBTztBQUFBLFlBQzNELEtBQUssTUFBTSxLQUFLO0FBQUEsY0FBUyxRQUFRLENBQUMsTUFBTSxLQUFLLE9BQU8sTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQUEsWUFDeEUsSUFBSSxNQUFNLEtBQUs7QUFBQSxjQUFTLFFBQVEsQ0FBQyxNQUFNLE1BQU0sS0FBSyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQVE7QUFBQTtBQUFBLFVBRS9FLGdCQUFnQixLQUFLLGlCQUFpQixXQUFXLE9BQU87QUFBQSxVQUN4RCxnQkFBZ0IsS0FBSyxZQUFZO0FBQUEsWUFDL0I7QUFBQSxZQUNBO0FBQUEsWUFDQSxRQUFRLFNBQVM7QUFBQSxZQUNqQixTQUFTLFNBQVM7QUFBQSxVQUNwQixDQUFDO0FBQUEsUUFDSDtBQUFBLFFBQ0EsSUFBSSxTQUFTLFNBQVMsVUFBVTtBQUFBLFVBQzlCLElBQUk7QUFBQSxVQUNKLFFBQVEsSUFBSSxDQUFDO0FBQUEsVUFDYixNQUFNLFVBQVUsQ0FBQyxVQUF5QjtBQUFBLFlBQ3hDLFFBQVEsSUFBSSxHQUFHLEtBQUssVUFBVSxNQUFNLElBQUksQ0FBQztBQUFBLFlBQ3pDLElBQUksT0FBTyxNQUFNLFNBQVM7QUFBQSxjQUFVO0FBQUEsWUFDcEMsSUFBSSxNQUFNLEtBQUssY0FBYztBQUFBLGNBQVc7QUFBQSxZQUN4QyxnQkFBZ0IsS0FBSyxvQkFBb0IsV0FBVyxPQUFPO0FBQUEsWUFDM0QsUUFBUSxJQUFJLEdBQUcsTUFBTSxJQUFJO0FBQUEsWUFDekIsS0FBSyxNQUFNO0FBQUEsY0FDVCxPQUFPLFdBQVc7QUFBQSxjQUNsQixLQUFLLE1BQU0sS0FBSztBQUFBLGdCQUFTLFFBQVEsQ0FBQyxNQUFNLEtBQUssT0FBTyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFBQSxjQUN4RSxJQUFJLE1BQU0sS0FBSztBQUFBLGdCQUFTLFFBQVEsQ0FBQyxNQUFNLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBUTtBQUFBLFlBQ3BFLEVBQU87QUFBQSxjQUNMLFFBQVEsSUFBSSxHQUFHLE1BQU0sSUFBSTtBQUFBLGNBQ3pCLElBQUksTUFBTSxLQUFLO0FBQUEsZ0JBQU0sS0FBSyxPQUFPO0FBQUEsY0FDNUIsU0FBSSxNQUFNLEtBQUs7QUFBQSxnQkFBUyxLQUFLLEtBQUssTUFBTSxLQUFLLElBQUk7QUFBQSxjQUNqRCxVQUFLLE1BQU0sS0FBSztBQUFBLGdCQUFTLEtBQUssTUFBTSxNQUFNLEtBQUssSUFBSTtBQUFBO0FBQUE7QUFBQSxVQUc1RCxnQkFBZ0IsS0FBSyxpQkFBaUIsV0FBVyxPQUFPO0FBQUEsVUFDeEQsZ0JBQWdCLEtBQUssWUFBWTtBQUFBLFlBQy9CO0FBQUEsWUFDQTtBQUFBLFlBQ0EsUUFBUSxTQUFTO0FBQUEsWUFDakIsU0FBUyxTQUFTO0FBQUEsVUFDcEIsQ0FBQztBQUFBLFFBQ0g7QUFBQSxPQUNEO0FBQUE7QUFBQSxFQUVMO0FBQUEsRUFFQSxPQUFPO0FBQUE7QUFnQkYsU0FBUyxVQUFhLEdBQWtCO0FBQUEsRUFDN0MsSUFBSSxTQUE4QztBQUFBLEVBQ2xELE1BQU0sUUFLRCxDQUFDO0FBQUEsRUFFTixNQUFNLFdBQVc7QUFBQSxJQUNmLE1BQU0sQ0FBQyxTQUFZO0FBQUEsTUFDakIsSUFBSSxNQUFNLEdBQUcsRUFBRSxHQUFHLFVBQVUsTUFBTTtBQUFBLFFBQ2hDLE1BQU0sT0FBTyxNQUFNLEdBQUcsRUFBRTtBQUFBLFFBQ3hCLEtBQUssUUFBUTtBQUFBLFFBQ2IsS0FBSyxRQUFRLElBQUk7QUFBQSxRQUNqQjtBQUFBLE1BQ0YsRUFBTztBQUFBLFFBQ0wsTUFBTSxZQUFZLFFBQVEsY0FBaUI7QUFBQSxRQUMzQyxVQUFVLFFBQVEsSUFBSTtBQUFBLFFBQ3RCLE1BQU0sS0FBSyxLQUFLLFdBQVcsT0FBTyxNQUFNLENBQVE7QUFBQTtBQUFBO0FBQUEsT0FHaEQ7QUFBQSxXQUNJLEtBQUksR0FBK0I7QUFBQSxRQUN2QyxJQUFJLFdBQVc7QUFBQSxVQUFXLE9BQU8sRUFBRSxNQUFNLE1BQU0sT0FBTyxLQUFLO0FBQUEsUUFDM0QsSUFBSSxNQUFNLFdBQVcsR0FBRztBQUFBLFVBQ3RCLE1BQU0sWUFBWSxRQUFRLGNBQWlCO0FBQUEsVUFDM0MsTUFBTSxLQUFLLEtBQUssV0FBVyxPQUFPLEtBQUssQ0FBUTtBQUFBLFFBQ2pEO0FBQUEsUUFDQSxNQUFNLE9BQU8sTUFBTSxHQUFHLENBQUM7QUFBQSxRQUN2QixNQUFNLFNBQVMsTUFBTSxLQUFLO0FBQUEsUUFDMUIsTUFBTSxNQUFNO0FBQUEsUUFDWixPQUFPLEVBQUUsTUFBTSxXQUFXLFdBQVcsT0FBTyxPQUFPO0FBQUE7QUFBQSxXQUUvQyxPQUFNLEdBQWtDO0FBQUEsUUFDNUMsU0FBUztBQUFBLFFBQ1QsV0FBVyxRQUFRLE9BQU87QUFBQSxVQUN4QixLQUFLLFFBQVE7QUFBQSxVQUNiLEtBQUssUUFBUSxTQUFTO0FBQUEsUUFDeEI7QUFBQSxRQUNBLE9BQU8sRUFBRSxNQUFNLE1BQU0sT0FBTyxLQUFLO0FBQUE7QUFBQSxXQUU3QixNQUFLLENBQUMsS0FBeUM7QUFBQSxRQUNuRCxTQUFTO0FBQUEsUUFDVCxJQUFJLE1BQU0sV0FBVyxHQUFHO0FBQUEsVUFDdEIsTUFBTSxZQUFZLFFBQVEsY0FBaUI7QUFBQSxVQUMzQyxNQUFNLEtBQUssS0FBSyxXQUFXLE9BQU8sS0FBSyxDQUFRO0FBQUEsUUFDakQ7QUFBQSxRQUNBLFdBQVcsUUFBUSxPQUFPO0FBQUEsVUFDeEIsS0FBSyxRQUFRO0FBQUEsVUFDYixLQUFLLE9BQU8sR0FBRztBQUFBLFFBQ2pCO0FBQUEsUUFDQSxPQUFPLEVBQUUsTUFBTSxNQUFNLE9BQU8sS0FBSztBQUFBO0FBQUEsSUFFckM7QUFBQSxLQUNDLE9BQU8sY0FBYyxHQUFHO0FBQUEsTUFDdkIsT0FBTztBQUFBO0FBQUEsRUFFWDtBQUFBLEVBRUEsT0FBTztBQUFBOyIsCiAgImRlYnVnSWQiOiAiQzcyMUUwNjhFOEZEMDExRTY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
234
+ //# debugId=54935CCE6DE3A89E64756E2164756E21
235
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi5cXHV0aWxzXFxjcmVhdGUtaWQudHMiLCAiLi5cXGluZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgInR5cGUgSWRHZW5lcmF0b3JPcHRpb25zID0ge1xuICBsZW5ndGg/OiBudW1iZXI7XG4gIHRpbWVzdGFtcDogYm9vbGVhbjtcbiAgc2VxdWVudGlhbDogYm9vbGVhbjtcbn07XG5cbmZ1bmN0aW9uIGRlZmluZUlkR2VuZXJhdG9yKG9wdGlvbnM6IElkR2VuZXJhdG9yT3B0aW9ucykge1xuICBpZiAoIW9wdGlvbnMubGVuZ3RoKSBvcHRpb25zLmxlbmd0aCA9IDI0O1xuICBpZiAob3B0aW9ucy5sZW5ndGggPCAxKSB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGxlbmd0aFwiKTtcbiAgaWYgKG9wdGlvbnMubGVuZ3RoID4gNjEpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgbGVuZ3RoXCIpO1xuICBpZiAob3B0aW9ucy50aW1lc3RhbXAgJiYgb3B0aW9ucy5sZW5ndGggPCA5KSB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGxlbmd0aFwiKTtcbiAgbGV0IGxhc3RUaW1lID0gMDtcbiAgbGV0IGxhc3REZWNpbWFsID0gMG47XG4gIHJldHVybiB7XG4gICAgY3JlYXRlSWQoKSB7XG4gICAgICBsZXQgcmFuZExlbmd0aCA9IG9wdGlvbnMubGVuZ3RoITtcbiAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICBsZXQgaWQgPSBcIlwiO1xuICAgICAgaWYgKG9wdGlvbnMudGltZXN0YW1wKSB7XG4gICAgICAgIHJhbmRMZW5ndGggLT0gODtcbiAgICAgICAgaWQgPSBgJHtpZH0ke19fYmlnSW50VG9TdHJpbmcoQmlnSW50KG5vdykpLnBhZFN0YXJ0KDgsIFwiMFwiKX1gO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMuc2VxdWVudGlhbCAmJiBsYXN0VGltZSA9PT0gbm93KSB7XG4gICAgICAgIGlkID0gYCR7aWR9JHtfX2JpZ0ludFRvU3RyaW5nKCsrbGFzdERlY2ltYWwpLnBhZFN0YXJ0KDEsIFwiMFwiKX1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGFzdFRpbWUgPSBub3c7XG4gICAgICAgIGNvbnN0IG1pbiA9IDBuO1xuICAgICAgICBjb25zdCBtYXggPSBfX2dldE1heFZhbHVlKEJpZ0ludChyYW5kTGVuZ3RoKSk7XG4gICAgICAgIGxhc3REZWNpbWFsID0gX19zZWN1cmVSYW5kb21CaWdJbnQobWluLCBtYXgpO1xuICAgICAgICBpZCA9IGAke2lkfSR7X19iaWdJbnRUb1N0cmluZyhsYXN0RGVjaW1hbCkucGFkU3RhcnQocmFuZExlbmd0aCwgXCIwXCIpfWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gaWQ7XG4gICAgfSxcbiAgICBnZXRJZFRpbWVzdGFtcChpZDogc3RyaW5nKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy50aW1lc3RhbXAgPyBOdW1iZXIoX19zdHJpbmdUb0JpZ0ludChpZC5zbGljZSgwLCA4KS5yZXBsYWNlQWxsKFwiMFwiLCBcIlwiKSkpIDogMDtcbiAgICB9LFxuICB9O1xufVxuXG5jb25zdCBFTkNPRElORyA9IFwiMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjtcblxuZnVuY3Rpb24gX19zZWN1cmVSYW5kb21CaWdJbnQobWluOiBiaWdpbnQsIG1heDogYmlnaW50KTogYmlnaW50IHtcbiAgaWYgKG1pbiA+PSBtYXgpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgcmFuZ2VcIik7XG5cbiAgY29uc3QgcmFuZ2UgPSBtYXggLSBtaW4gKyAxbjtcbiAgY29uc3QgYnl0ZUNvdW50ID0gTWF0aC5jZWlsKE51bWJlcihCaWdJbnQocmFuZ2UudG9TdHJpbmcoMikubGVuZ3RoKSkgLyA4KTtcbiAgY29uc3QgZW50cm9weUJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZUNvdW50KTtcblxuICBsZXQgcmFuZG9tVmFsdWU6IGJpZ2ludDtcbiAgZG8ge1xuICAgIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMoZW50cm9weUJ5dGVzKTtcbiAgICByYW5kb21WYWx1ZSA9XG4gICAgICBCaWdJbnQoXG4gICAgICAgIGAweCR7QXJyYXkuZnJvbShlbnRyb3B5Qnl0ZXMpXG4gICAgICAgICAgLm1hcCgoYikgPT4gYi50b1N0cmluZygxNikucGFkU3RhcnQoMiwgXCIwXCIpKVxuICAgICAgICAgIC5qb2luKFwiXCIpfWAsXG4gICAgICApICUgcmFuZ2U7XG4gIH0gd2hpbGUgKHJhbmRvbVZhbHVlIDwgMG4pO1xuXG4gIHJldHVybiBtaW4gKyByYW5kb21WYWx1ZTtcbn1cblxuZnVuY3Rpb24gX19iaWdJbnRUb1N0cmluZyh2YWx1ZTogYmlnaW50KTogc3RyaW5nIHtcbiAgY29uc3QgYmFzZSA9IEJpZ0ludChFTkNPRElORy5sZW5ndGgpO1xuICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgbGV0IGN1cnJlbnQgPSB2YWx1ZTtcblxuICBpZiAoY3VycmVudCA9PT0gMG4pIHJldHVybiBFTkNPRElOR1swXTtcblxuICB3aGlsZSAoY3VycmVudCA+IDBuKSB7XG4gICAgY29uc3QgcmVtYWluZGVyID0gY3VycmVudCAlIGJhc2U7XG4gICAgcmVzdWx0ID0gRU5DT0RJTkdbTnVtYmVyKHJlbWFpbmRlcildICsgcmVzdWx0O1xuICAgIGN1cnJlbnQgPSBjdXJyZW50IC8gYmFzZTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBfX3N0cmluZ1RvQmlnSW50KHN0cjogc3RyaW5nKTogYmlnaW50IHtcbiAgY29uc3QgY2hhck1hcDogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IEVOQ09ESU5HLmxlbmd0aDsgaSsrKSB7XG4gICAgY2hhck1hcFtFTkNPRElOR1tpXV0gPSBpO1xuICB9XG5cbiAgY29uc3QgYmFzZSA9IEJpZ0ludChFTkNPRElORy5sZW5ndGgpO1xuICBsZXQgcmVzdWx0ID0gMG47XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjaGFyID0gc3RyW2ldO1xuICAgIGlmICghKGNoYXIgaW4gY2hhck1hcCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjaGFyYWN0ZXIgJyR7Y2hhcn0nIGluIGlucHV0IHN0cmluZ2ApO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZSA9IEJpZ0ludChjaGFyTWFwW2NoYXJdKTtcbiAgICByZXN1bHQgPSByZXN1bHQgKiBiYXNlICsgdmFsdWU7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBfX2dldE1heFZhbHVlKG46IGJpZ2ludCk6IGJpZ2ludCB7XG4gIHJldHVybiBCaWdJbnQoRU5DT0RJTkcubGVuZ3RoKSAqKiBuIC0gMW47XG59XG5cbmNvbnN0IGlkR2VuZXJhdG9yID0gZGVmaW5lSWRHZW5lcmF0b3IoeyBsZW5ndGg6IDI0LCB0aW1lc3RhbXA6IGZhbHNlLCBzZXF1ZW50aWFsOiBmYWxzZSB9KTtcblxuZXhwb3J0IGNvbnN0IF9fY3JlYXRlSWQgPSBpZEdlbmVyYXRvci5jcmVhdGVJZDtcbiIsCiAgICAiaW1wb3J0IHsgX19jcmVhdGVJZCB9IGZyb20gXCIuL3V0aWxzL2NyZWF0ZS1pZC50c1wiO1xuXG5leHBvcnQgdHlwZSBNaWxraW9TdGFyZ2F0ZU9wdGlvbnMgPSB7XG4gIHBvcnQ6IHtcbiAgICBwb3N0TWVzc2FnZTogKGRhdGE6IGFueSkgPT4gdm9pZDtcbiAgICBhZGRFdmVudExpc3RlbmVyOiAoZXZlbnQ6IFwibWVzc2FnZVwiLCBjYWxsYmFjazogKGV2ZW50OiB7IGRhdGE6IGFueSB9KSA9PiB2b2lkKSA9PiB2b2lkO1xuICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI6IChldmVudDogXCJtZXNzYWdlXCIsIGNhbGxiYWNrOiAoZXZlbnQ6IHsgZGF0YTogYW55IH0pID0+IHZvaWQpID0+IHZvaWQ7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBNaXhpbjxULCBVPiA9IFUgJiBPbWl0PFQsIGtleW9mIFU+O1xuXG5leHBvcnQgdHlwZSBFeGVjdXRlT3B0aW9ucyA9IHtcbiAgcGFyYW1zPzogUmVjb3JkPGFueSwgYW55PjtcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHR5cGU/OiBcImFjdGlvblwiIHwgXCJzdHJlYW1cIjtcbn07XG5cbmV4cG9ydCB0eXBlIEV4ZWN1dGVSZXN1bHRzT3B0aW9uID0geyBleGVjdXRlSWQ6IHN0cmluZyB9O1xuXG5leHBvcnQgdHlwZSBHZW5lcmF0b3JHZW5lcmljPFQ+ID0gVCBleHRlbmRzIEFzeW5jR2VuZXJhdG9yPGluZmVyIEk+ID8gSSA6IG5ldmVyO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlU3RhcmdhdGVXb3JrZXI8R2VuZXJhdGVkIGV4dGVuZHMgeyByb3V0ZVNjaGVtYTogYW55OyByZWplY3RDb2RlOiBhbnkgfT4oc3RhcmdhdGVPcHRpb25zOiBNaWxraW9TdGFyZ2F0ZU9wdGlvbnMpIHtcbiAgY29uc3QgY29ubmVjdCA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlciA9IChldmVudDogeyBkYXRhOiBhbnkgfSkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmRhdGEgIT09IFwiUE9OR1wiKSByZXR1cm47XG4gICAgICBjbGVhckludGVydmFsKHRpbWVyKTtcbiAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xuICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICB9O1xuICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xuICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKFwiUElOR1wiKTtcbiAgICBjb25zdCB0aW1lciA9IHNldEludGVydmFsKCgpID0+IHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKFwiUElOR1wiKSwgNDIpO1xuICB9KTtcbiAgY29uc3Qgc3RhcmdhdGUgPSB7XG4gICAgYXN5bmMgZXhlY3V0ZTxQYXRoIGV4dGVuZHMga2V5b2YgR2VuZXJhdGVkW1wicm91dGVTY2hlbWFcIl0+KFxuICAgICAgcGF0aDogUGF0aCxcbiAgICAgIG9wdGlvbnM/OiBNaXhpbjxcbiAgICAgICAgRXhlY3V0ZU9wdGlvbnMsXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXM/OiBHZW5lcmF0ZWRbXCJyb3V0ZVNjaGVtYVwiXVtQYXRoXVtcInR5cGVzXCJdW1wicGFyYW1zXCJdO1xuICAgICAgICB9XG4gICAgICA+LFxuICAgICk6IFByb21pc2U8XG4gICAgICBHZW5lcmF0ZWRbXCJyb3V0ZVNjaGVtYVwiXVtQYXRoXVtcInR5cGVzXCJdW1wi8J+Qo1wiXSBleHRlbmRzIGJvb2xlYW5cbiAgICAgICAgPyAvLyBhY3Rpb25cbiAgICAgICAgICBbUGFydGlhbDxHZW5lcmF0ZWRbXCJyZWplY3RDb2RlXCJdPiwgbnVsbCwgRXhlY3V0ZVJlc3VsdHNPcHRpb25dIHwgW251bGwsIEdlbmVyYXRlZFtcInJvdXRlU2NoZW1hXCJdW1BhdGhdW1widHlwZXNcIl1bXCJyZXN1bHRcIl0sIEV4ZWN1dGVSZXN1bHRzT3B0aW9uXVxuICAgICAgICA6IC8vIHN0cmVhbVxuICAgICAgICAgIFtQYXJ0aWFsPEdlbmVyYXRlZFtcInJlamVjdENvZGVcIl0+LCBudWxsLCBFeGVjdXRlUmVzdWx0c09wdGlvbl0gfCBbbnVsbCwgQXN5bmNHZW5lcmF0b3I8W1BhcnRpYWw8R2VuZXJhdGVkW1wicmVqZWN0Q29kZVwiXT4sIG51bGxdIHwgW251bGwsIEdlbmVyYXRvckdlbmVyaWM8R2VuZXJhdGVkW1wicm91dGVTY2hlbWFcIl1bUGF0aF1bXCJ0eXBlc1wiXVtcInJlc3VsdFwiXT5dLCBFeGVjdXRlUmVzdWx0c09wdGlvbj5dXG4gICAgPiB7XG4gICAgICAvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vQXN5bmNQcm9taXNlRXhlY3V0b3I6IDxleHBsYW5hdGlvbj5cbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSkgPT4ge1xuICAgICAgICBhd2FpdCBjb25uZWN0O1xuICAgICAgICBjb25zdCBleGVjdXRlSWQgPSBfX2NyZWF0ZUlkKCk7XG4gICAgICAgIGlmIChvcHRpb25zPy50eXBlID09PSBcImFjdGlvblwiIHx8ICFvcHRpb25zPy50eXBlKSB7XG4gICAgICAgICAgY29uc3QgaGFuZGxlciA9IChldmVudDogeyBkYXRhOiBhbnkgfSkgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBldmVudC5kYXRhICE9PSBcIm9iamVjdFwiKSByZXR1cm47XG4gICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5leGVjdXRlSWQgIT09IGV4ZWN1dGVJZCkgcmV0dXJuO1xuICAgICAgICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgaGFuZGxlcik7XG4gICAgICAgICAgICBpZiAoIWV2ZW50LmRhdGEuc3VjY2VzcykgcmVzb2x2ZShbZXZlbnQuZGF0YS5lcnJvciwgbnVsbCwgeyBleGVjdXRlSWQgfV0pO1xuICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuc3VjY2VzcykgcmVzb2x2ZShbbnVsbCwgZXZlbnQuZGF0YS5kYXRhLCB7IGV4ZWN1dGVJZCB9XSBhcyBhbnkpO1xuICAgICAgICAgIH07XG4gICAgICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgaGFuZGxlcik7XG4gICAgICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQucG9zdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgZXhlY3V0ZUlkLFxuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgIHBhcmFtczogb3B0aW9ucz8ucGFyYW1zLFxuICAgICAgICAgICAgaGVhZGVyczogb3B0aW9ucz8uaGVhZGVycyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucz8udHlwZSA9PT0gXCJzdHJlYW1cIikge1xuICAgICAgICAgIGxldCBmbG93OiBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVGbG93PiB8IHVuZGVmaW5lZDtcbiAgICAgICAgICBjb25zdCBoYW5kbGVyID0gKGV2ZW50OiB7IGRhdGE6IGFueSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV2ZW50LmRhdGEgIT09IFwib2JqZWN0XCIpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmV4ZWN1dGVJZCAhPT0gZXhlY3V0ZUlkKSByZXR1cm47XG4gICAgICAgICAgICBpZiAoIWZsb3cpIHtcbiAgICAgICAgICAgICAgZmxvdyA9IGNyZWF0ZUZsb3coKTtcbiAgICAgICAgICAgICAgaWYgKCFldmVudC5kYXRhLnN1Y2Nlc3MpIHJlc29sdmUoW2V2ZW50LmRhdGEuZXJyb3IsIG51bGwsIHsgZXhlY3V0ZUlkIH1dKTtcbiAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuc3VjY2VzcykgcmVzb2x2ZShbbnVsbCwgZmxvdywgeyBleGVjdXRlSWQgfV0gYXMgYW55KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmRvbmUpIHtcbiAgICAgICAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVyKTtcbiAgICAgICAgICAgICAgICBmbG93LnJldHVybigpO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFldmVudC5kYXRhLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVyKTtcbiAgICAgICAgICAgICAgICBmbG93LnRocm93KGV2ZW50LmRhdGEuZGF0YSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuZGF0YS5zdWNjZXNzKSBmbG93LmVtaXQoZXZlbnQuZGF0YS5kYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xuICAgICAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKHtcbiAgICAgICAgICAgIGV4ZWN1dGVJZCxcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICBwYXJhbXM6IG9wdGlvbnM/LnBhcmFtcyxcbiAgICAgICAgICAgIGhlYWRlcnM6IG9wdGlvbnM/LmhlYWRlcnMsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG5cbiAgcmV0dXJuIHN0YXJnYXRlO1xufVxuXG5leHBvcnQgdHlwZSBNaWxraW9GbG93PFQsIFRSZXR1cm4gPSBhbnksIFROZXh0ID0gYW55PiA9IHtcbiAgZW1pdDogKGZsb3c6IFQpID0+IHZvaWQ7XG4gIFtTeW1ib2wuYXN5bmNJdGVyYXRvcl06ICgpID0+IE1pbGtpb0Zsb3c8VD47XG4gIG5leHQoLi4uW3ZhbHVlXTogW10gfCBbVE5leHRdKTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDxULCBUUmV0dXJuPj47XG4gIHJldHVybigpOiBQcm9taXNlPEl0ZXJhdG9yUmVzdWx0PFQsIFRSZXR1cm4+PjtcbiAgdGhyb3coZXJyb3I6IGFueSk6IFByb21pc2U8SXRlcmF0b3JSZXN1bHQ8VCwgVFJldHVybj4+O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZsb3c8VD4oKTogTWlsa2lvRmxvdzxUPiB7XG4gIGxldCBzdGF0dXM6IFwicGVuZGluZ1wiIHwgXCJyZXNvbHZlZFwiIHwgXCJyZWplY3RlZFwiID0gXCJwZW5kaW5nXCI7XG4gIGNvbnN0IGZsb3dzOiBBcnJheTx7XG4gICAgYmxhbms6IGJvb2xlYW47XG4gICAgcHJvbWlzZTogUHJvbWlzZTxUPjtcbiAgICByZXNvbHZlOiAodmFsdWU/OiBUIHwgUHJvbWlzZUxpa2U8VD4pID0+IHZvaWQ7XG4gICAgcmVqZWN0OiAocmVhc29uPzogYW55KSA9PiB2b2lkO1xuICB9PiA9IFtdO1xuXG4gIGNvbnN0IGl0ZXJhdG9yID0ge1xuICAgIGVtaXQ6IChmbG93OiBUKSA9PiB7XG4gICAgICBpZiAoZmxvd3MuYXQoLTEpPy5ibGFuayA9PT0gdHJ1ZSkge1xuICAgICAgICBjb25zdCBpdGVtID0gZmxvd3MuYXQoLTEpITtcbiAgICAgICAgaXRlbS5ibGFuayA9IGZhbHNlO1xuICAgICAgICBpdGVtLnJlc29sdmUoZmxvdyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVycyA9IHdpdGhSZXNvbHZlcnM8VD4oKTtcbiAgICAgICAgcmVzb2x2ZXJzLnJlc29sdmUoZmxvdyk7XG4gICAgICAgIGZsb3dzLnB1c2goeyAuLi5yZXNvbHZlcnMsIGJsYW5rOiBmYWxzZSB9IGFzIGFueSk7XG4gICAgICB9XG4gICAgfSxcbiAgICAuLi4oe1xuICAgICAgYXN5bmMgbmV4dCgpOiBQcm9taXNlPEl0ZXJhdG9yUmVzdWx0PFQ+PiB7XG4gICAgICAgIGlmIChzdGF0dXMgIT09IFwicGVuZGluZ1wiKSByZXR1cm4geyBkb25lOiB0cnVlLCB2YWx1ZTogbnVsbCB9O1xuICAgICAgICBpZiAoZmxvd3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgY29uc3QgcmVzb2x2ZXJzID0gd2l0aFJlc29sdmVyczxUPigpO1xuICAgICAgICAgIGZsb3dzLnB1c2goeyAuLi5yZXNvbHZlcnMsIGJsYW5rOiB0cnVlIH0gYXMgYW55KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmbG93ID0gZmxvd3MuYXQoMCkhO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmbG93LnByb21pc2U7XG4gICAgICAgIGZsb3dzLnNoaWZ0KCk7XG4gICAgICAgIHJldHVybiB7IGRvbmU6IHN0YXR1cyAhPT0gXCJwZW5kaW5nXCIsIHZhbHVlOiByZXN1bHQgfTtcbiAgICAgIH0sXG4gICAgICBhc3luYyByZXR1cm4oKTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDx2b2lkPj4ge1xuICAgICAgICBzdGF0dXMgPSBcInJlc29sdmVkXCI7XG4gICAgICAgIGZvciAoY29uc3QgZmxvdyBvZiBmbG93cykge1xuICAgICAgICAgIGZsb3cuYmxhbmsgPSBmYWxzZTtcbiAgICAgICAgICBmbG93LnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBkb25lOiB0cnVlLCB2YWx1ZTogbnVsbCB9O1xuICAgICAgfSxcbiAgICAgIGFzeW5jIHRocm93KGVycjogYW55KTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDx2b2lkPj4ge1xuICAgICAgICBzdGF0dXMgPSBcInJlamVjdGVkXCI7XG4gICAgICAgIGlmIChmbG93cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBjb25zdCByZXNvbHZlcnMgPSB3aXRoUmVzb2x2ZXJzPFQ+KCk7XG4gICAgICAgICAgZmxvd3MucHVzaCh7IC4uLnJlc29sdmVycywgYmxhbms6IHRydWUgfSBhcyBhbnkpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgZmxvdyBvZiBmbG93cykge1xuICAgICAgICAgIGZsb3cuYmxhbmsgPSBmYWxzZTtcbiAgICAgICAgICBmbG93LnJlamVjdChlcnIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiBudWxsIH07XG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIEFzeW5jSXRlcmF0b3I8dW5rbm93bj4pLFxuICAgIFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICB9O1xuXG4gIHJldHVybiBpdGVyYXRvciBhcyBNaWxraW9GbG93PFQ+O1xufVxuXG5mdW5jdGlvbiB3aXRoUmVzb2x2ZXJzPFQgPSBhbnk+KCk6IFByb21pc2VXaXRoUmVzb2x2ZXJzPFQ+IHtcbiAgbGV0IHJlc29sdmU6IFByb21pc2VXaXRoUmVzb2x2ZXJzPFQ+W1wicmVzb2x2ZVwiXTtcbiAgbGV0IHJlamVjdDogUHJvbWlzZVdpdGhSZXNvbHZlcnM8VD5bXCJyZWplY3RcIl07XG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTxUPigocmVzLCByZWopID0+IHtcbiAgICByZXNvbHZlID0gcmVzO1xuICAgIHJlamVjdCA9IHJlajtcbiAgfSk7XG4gIHJldHVybiB7IHByb21pc2UsIHJlc29sdmU6IHJlc29sdmUhLCByZWplY3Q6IHJlamVjdCEgfTtcbn1cbiIKICBdLAogICJtYXBwaW5ncyI6ICI7QUFNQSxTQUFTLGlCQUFpQixDQUFDLFNBQTZCO0FBQUEsRUFDdEQsS0FBSyxRQUFRO0FBQUEsSUFBUSxRQUFRLFNBQVM7QUFBQSxFQUN0QyxJQUFJLFFBQVEsU0FBUztBQUFBLElBQUcsTUFBTSxJQUFJLE1BQU0sZ0JBQWdCO0FBQUEsRUFDeEQsSUFBSSxRQUFRLFNBQVM7QUFBQSxJQUFJLE1BQU0sSUFBSSxNQUFNLGdCQUFnQjtBQUFBLEVBQ3pELElBQUksUUFBUSxhQUFhLFFBQVEsU0FBUztBQUFBLElBQUcsTUFBTSxJQUFJLE1BQU0sZ0JBQWdCO0FBQUEsRUFDN0UsSUFBSSxXQUFXO0FBQUEsRUFDZixJQUFJLGNBQWM7QUFBQSxFQUNsQixPQUFPO0FBQUEsSUFDTCxRQUFRLEdBQUc7QUFBQSxNQUNULElBQUksYUFBYSxRQUFRO0FBQUEsTUFDekIsTUFBTSxNQUFNLEtBQUssSUFBSTtBQUFBLE1BQ3JCLElBQUksS0FBSztBQUFBLE1BQ1QsSUFBSSxRQUFRLFdBQVc7QUFBQSxRQUNyQixjQUFjO0FBQUEsUUFDZCxLQUFLLEdBQUcsS0FBSyxpQkFBaUIsT0FBTyxHQUFHLENBQUMsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUFBLE1BQzVE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QSxVQUNiLEtBQUssUUFBUSxTQUFTO0FBQUEsUUFDeEI7QUFBQSxRQUNBLE9BQU8sRUFBRSxNQUFNLE1BQU0sT0FBTyxLQUFLO0FBQUE7QUFBQSxXQUU3QixNQUFLLENBQUMsS0FBeUM7QUFBQSxRQUNuRCxTQUFTO0FBQUEsUUFDVCxJQUFJLE1BQU0sV0FBVyxHQUFHO0FBQUEsVUFDdEIsTUFBTSxZQUFZLGNBQWlCO0FBQUEsVUFDbkMsTUFBTSxLQUFLLEtBQUssV0FBVyxPQUFPLEtBQUssQ0FBUTtBQUFBLFFBQ2pEO0FBQUEsUUFDQSxXQUFXLFFBQVEsT0FBTztBQUFBLFVBQ3hCLEtBQUssUUFBUTtBQUFBLFVBQ2IsS0FBSyxPQUFPLEdBQUc7QUFBQSxRQUNqQjtBQUFBLFFBQ0EsT0FBTyxFQUFFLE1BQU0sTUFBTSxPQUFPLEtBQUs7QUFBQTtBQUFBLElBRXJDO0FBQUEsS0FDQyxPQUFPLGNBQWMsR0FBRztBQUFBLE1BQ3ZCLE9BQU87QUFBQTtBQUFBLEVBRVg7QUFBQSxFQUVBLE9BQU87QUFBQTtBQUdULFNBQVMsYUFBc0IsR0FBNEI7QUFBQSxFQUN6RCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixNQUFNLFVBQVUsSUFBSSxRQUFXLENBQUMsS0FBSyxRQUFRO0FBQUEsSUFDM0MsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLEdBQ1Y7QUFBQSxFQUNELE9BQU8sRUFBRSxTQUFTLFNBQW1CLE9BQWdCO0FBQUE7IiwKICAiZGVidWdJZCI6ICI1NDkzNUNDRTZERTNBODlFNjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@milkio/stargate-worker","version":"1.0.0-beta.35","type":"module","module":"./index.js","types":"./index.d.ts","dependencies":{}}
1
+ {"name":"@milkio/stargate-worker","version":"1.0.0-beta.37","type":"module","module":"./index.js","types":"./index.d.ts","dependencies":{}}