@payloadcms/db-postgres 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../src/schema/traverseFields.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAA2B,MAAM,qBAAqB,CAAA;AACjG,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAoBtD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAQ/D,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,kBAAkB,EAAE,OAAO,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACxC,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,YAAY,CAAC,CAAA;IAC/D,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC/C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,YAAY,CAAC,CAAA;IACtE,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,iBAAiB,EAAE,OAAO,CAAA;IAC1B,2BAA2B,EAAE,OAAO,CAAA;IACpC,6BAA6B,EAAE,OAAO,CAAA;IACtC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,cAAc,kSAoBxB,IAAI,KAAG,MA4eT,CAAA"}
1
+ {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../src/schema/traverseFields.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAA2B,MAAM,qBAAqB,CAAA;AACjG,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAoBtD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAQ/D,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,kBAAkB,EAAE,OAAO,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACxC,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,YAAY,CAAC,CAAA;IAC/D,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC/C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,YAAY,CAAC,CAAA;IACtE,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,iBAAiB,EAAE,OAAO,CAAA;IAC1B,2BAA2B,EAAE,OAAO,CAAA;IACpC,6BAA6B,EAAE,OAAO,CAAA;IACtC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,cAAc,kSAoBxB,IAAI,KAAG,MAqfT,CAAA"}
@@ -175,6 +175,7 @@ const traverseFields = ({ adapter, buildRelationships, columnPrefix, columns, di
175
175
  }
176
176
  case 'array':
177
177
  {
178
+ const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull;
178
179
  const arrayTableName = `${newTableName}_${(0, _tosnakecase.default)(field.name)}`;
179
180
  const baseColumns = {
180
181
  _order: (0, _pgcore.integer)('_order').notNull(),
@@ -194,7 +195,7 @@ const traverseFields = ({ adapter, buildRelationships, columnPrefix, columns, di
194
195
  adapter,
195
196
  baseColumns,
196
197
  baseExtraConfig,
197
- disableNotNull,
198
+ disableNotNull: disableNotNullFromHere,
198
199
  disableUnique,
199
200
  fields: field.fields,
200
201
  rootRelationsToBuild,
@@ -228,6 +229,7 @@ const traverseFields = ({ adapter, buildRelationships, columnPrefix, columns, di
228
229
  }
229
230
  case 'blocks':
230
231
  {
232
+ const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull;
231
233
  field.blocks.forEach((block)=>{
232
234
  const blockTableName = `${rootTableName}_blocks_${(0, _tosnakecase.default)(block.slug)}`;
233
235
  if (!adapter.tables[blockTableName]) {
@@ -251,7 +253,7 @@ const traverseFields = ({ adapter, buildRelationships, columnPrefix, columns, di
251
253
  adapter,
252
254
  baseColumns,
253
255
  baseExtraConfig,
254
- disableNotNull,
256
+ disableNotNull: disableNotNullFromHere,
255
257
  disableUnique,
256
258
  fields: block.fields,
257
259
  rootRelationsToBuild,
@@ -323,12 +325,13 @@ const traverseFields = ({ adapter, buildRelationships, columnPrefix, columns, di
323
325
  if (groupHasLocalizedManyNumberField) hasLocalizedManyNumberField = true;
324
326
  break;
325
327
  }
328
+ const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull;
326
329
  const { hasLocalizedField: groupHasLocalizedField, hasLocalizedManyNumberField: groupHasLocalizedManyNumberField, hasLocalizedRelationshipField: groupHasLocalizedRelationshipField, hasManyNumberField: groupHasManyNumberField } = traverseFields({
327
330
  adapter,
328
331
  buildRelationships,
329
332
  columnPrefix: `${columnName}_`,
330
333
  columns,
331
- disableNotNull,
334
+ disableNotNull: disableNotNullFromHere,
332
335
  disableUnique,
333
336
  fieldPrefix: `${fieldName}_`,
334
337
  fields: field.fields,
@@ -352,12 +355,13 @@ const traverseFields = ({ adapter, buildRelationships, columnPrefix, columns, di
352
355
  }
353
356
  case 'tabs':
354
357
  {
358
+ const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull;
355
359
  const { hasLocalizedField: tabHasLocalizedField, hasLocalizedManyNumberField: tabHasLocalizedManyNumberField, hasLocalizedRelationshipField: tabHasLocalizedRelationshipField, hasManyNumberField: tabHasManyNumberField } = traverseFields({
356
360
  adapter,
357
361
  buildRelationships,
358
362
  columnPrefix,
359
363
  columns,
360
- disableNotNull,
364
+ disableNotNull: disableNotNullFromHere,
361
365
  disableUnique,
362
366
  fieldPrefix,
363
367
  fields: field.tabs.map((tab)=>({
@@ -385,12 +389,13 @@ const traverseFields = ({ adapter, buildRelationships, columnPrefix, columns, di
385
389
  case 'row':
386
390
  case 'collapsible':
387
391
  {
392
+ const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull;
388
393
  const { hasLocalizedField: rowHasLocalizedField, hasLocalizedManyNumberField: rowHasLocalizedManyNumberField, hasLocalizedRelationshipField: rowHasLocalizedRelationshipField, hasManyNumberField: rowHasManyNumberField } = traverseFields({
389
394
  adapter,
390
395
  buildRelationships,
391
396
  columnPrefix,
392
397
  columns,
393
- disableNotNull,
398
+ disableNotNull: disableNotNullFromHere,
394
399
  disableUnique,
395
400
  fieldPrefix,
396
401
  fields: field.fields,
@@ -439,4 +444,4 @@ const traverseFields = ({ adapter, buildRelationships, columnPrefix, columns, di
439
444
  };
440
445
  };
441
446
 
442
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvdHJhdmVyc2VGaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgUmVsYXRpb24gfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB0eXBlIHsgSW5kZXhCdWlsZGVyLCBQZ0NvbHVtbkJ1aWxkZXIsIFVuaXF1ZUNvbnN0cmFpbnRCdWlsZGVyIH0gZnJvbSAnZHJpenpsZS1vcm0vcGctY29yZSdcbmltcG9ydCB0eXBlIHsgRmllbGQsIFRhYkFzRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyByZWxhdGlvbnMgfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB7XG4gIFBnTnVtZXJpY0J1aWxkZXIsXG4gIFBnVmFyY2hhckJ1aWxkZXIsXG4gIGJvb2xlYW4sXG4gIGluZGV4LFxuICBpbnRlZ2VyLFxuICBqc29uYixcbiAgbnVtZXJpYyxcbiAgcGdFbnVtLFxuICB0ZXh0LFxuICB0aW1lc3RhbXAsXG4gIHZhcmNoYXIsXG59IGZyb20gJ2RyaXp6bGUtb3JtL3BnLWNvcmUnXG5pbXBvcnQgeyBJbnZhbGlkQ29uZmlndXJhdGlvbiB9IGZyb20gJ3BheWxvYWQvZXJyb3JzJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSwgb3B0aW9uSXNPYmplY3QgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuaW1wb3J0IHRvU25ha2VDYXNlIGZyb20gJ3RvLXNuYWtlLWNhc2UnXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJpY0NvbHVtbnMsIFBvc3RncmVzQWRhcHRlciB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBoYXNMb2NhbGVzVGFibGUgfSBmcm9tICcuLi91dGlsaXRpZXMvaGFzTG9jYWxlc1RhYmxlJ1xuaW1wb3J0IHsgYnVpbGRUYWJsZSB9IGZyb20gJy4vYnVpbGQnXG5pbXBvcnQgeyBjcmVhdGVJbmRleCB9IGZyb20gJy4vY3JlYXRlSW5kZXgnXG5pbXBvcnQgeyBwYXJlbnRJRENvbHVtbk1hcCB9IGZyb20gJy4vcGFyZW50SURDb2x1bW5NYXAnXG5pbXBvcnQgeyB2YWxpZGF0ZUV4aXN0aW5nQmxvY2tJc0lkZW50aWNhbCB9IGZyb20gJy4vdmFsaWRhdGVFeGlzdGluZ0Jsb2NrSXNJZGVudGljYWwnXG5cbnR5cGUgQXJncyA9IHtcbiAgYWRhcHRlcjogUG9zdGdyZXNBZGFwdGVyXG4gIGJ1aWxkUmVsYXRpb25zaGlwczogYm9vbGVhblxuICBjb2x1bW5QcmVmaXg/OiBzdHJpbmdcbiAgY29sdW1uczogUmVjb3JkPHN0cmluZywgUGdDb2x1bW5CdWlsZGVyPlxuICBkaXNhYmxlTm90TnVsbDogYm9vbGVhblxuICBkaXNhYmxlVW5pcXVlPzogYm9vbGVhblxuICBmaWVsZFByZWZpeD86IHN0cmluZ1xuICBmaWVsZHM6IChGaWVsZCB8IFRhYkFzRmllbGQpW11cbiAgZm9yY2VMb2NhbGl6ZWQ/OiBib29sZWFuXG4gIGluZGV4ZXM6IFJlY29yZDxzdHJpbmcsIChjb2xzOiBHZW5lcmljQ29sdW1ucykgPT4gSW5kZXhCdWlsZGVyPlxuICBsb2NhbGVzQ29sdW1uczogUmVjb3JkPHN0cmluZywgUGdDb2x1bW5CdWlsZGVyPlxuICBsb2NhbGVzSW5kZXhlczogUmVjb3JkPHN0cmluZywgKGNvbHM6IEdlbmVyaWNDb2x1bW5zKSA9PiBJbmRleEJ1aWxkZXI+XG4gIG5ld1RhYmxlTmFtZTogc3RyaW5nXG4gIHBhcmVudFRhYmxlTmFtZTogc3RyaW5nXG4gIHJlbGF0aW9uc1RvQnVpbGQ6IE1hcDxzdHJpbmcsIHN0cmluZz5cbiAgcmVsYXRpb25zaGlwczogU2V0PHN0cmluZz5cbiAgcm9vdFJlbGF0aW9uc1RvQnVpbGQ/OiBNYXA8c3RyaW5nLCBzdHJpbmc+XG4gIHJvb3RUYWJsZUlEQ29sVHlwZTogc3RyaW5nXG4gIHJvb3RUYWJsZU5hbWU6IHN0cmluZ1xufVxuXG50eXBlIFJlc3VsdCA9IHtcbiAgaGFzTG9jYWxpemVkRmllbGQ6IGJvb2xlYW5cbiAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkOiBib29sZWFuXG4gIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkOiBib29sZWFuXG4gIGhhc01hbnlOdW1iZXJGaWVsZDogJ2luZGV4JyB8IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IHRyYXZlcnNlRmllbGRzID0gKHtcbiAgYWRhcHRlcixcbiAgYnVpbGRSZWxhdGlvbnNoaXBzLFxuICBjb2x1bW5QcmVmaXgsXG4gIGNvbHVtbnMsXG4gIGRpc2FibGVOb3ROdWxsLFxuICBkaXNhYmxlVW5pcXVlID0gZmFsc2UsXG4gIGZpZWxkUHJlZml4LFxuICBmaWVsZHMsXG4gIGZvcmNlTG9jYWxpemVkLFxuICBpbmRleGVzLFxuICBsb2NhbGVzQ29sdW1ucyxcbiAgbG9jYWxlc0luZGV4ZXMsXG4gIG5ld1RhYmxlTmFtZSxcbiAgcGFyZW50VGFibGVOYW1lLFxuICByZWxhdGlvbnNUb0J1aWxkLFxuICByZWxhdGlvbnNoaXBzLFxuICByb290UmVsYXRpb25zVG9CdWlsZCxcbiAgcm9vdFRhYmxlSURDb2xUeXBlLFxuICByb290VGFibGVOYW1lLFxufTogQXJncyk6IFJlc3VsdCA9PiB7XG4gIGxldCBoYXNMb2NhbGl6ZWRGaWVsZCA9IGZhbHNlXG4gIGxldCBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCA9IGZhbHNlXG4gIGxldCBoYXNNYW55TnVtYmVyRmllbGQ6ICdpbmRleCcgfCBib29sZWFuID0gZmFsc2VcbiAgbGV0IGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCA9IGZhbHNlXG5cbiAgbGV0IHBhcmVudElEQ29sVHlwZSA9ICdpbnRlZ2VyJ1xuICBpZiAoY29sdW1ucy5pZCBpbnN0YW5jZW9mIFBnTnVtZXJpY0J1aWxkZXIpIHBhcmVudElEQ29sVHlwZSA9ICdudW1lcmljJ1xuICBpZiAoY29sdW1ucy5pZCBpbnN0YW5jZW9mIFBnVmFyY2hhckJ1aWxkZXIpIHBhcmVudElEQ29sVHlwZSA9ICd2YXJjaGFyJ1xuXG4gIGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgIGlmICgnbmFtZScgaW4gZmllbGQgJiYgZmllbGQubmFtZSA9PT0gJ2lkJykgcmV0dXJuXG4gICAgbGV0IGNvbHVtbk5hbWU6IHN0cmluZ1xuICAgIGxldCBmaWVsZE5hbWU6IHN0cmluZ1xuXG4gICAgbGV0IHRhcmdldFRhYmxlID0gY29sdW1uc1xuICAgIGxldCB0YXJnZXRJbmRleGVzID0gaW5kZXhlc1xuXG4gICAgaWYgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpKSB7XG4gICAgICBjb2x1bW5OYW1lID0gYCR7Y29sdW1uUHJlZml4IHx8ICcnfSR7ZmllbGQubmFtZVswXSA9PT0gJ18nID8gJ18nIDogJyd9JHt0b1NuYWtlQ2FzZShcbiAgICAgICAgZmllbGQubmFtZSxcbiAgICAgICl9YFxuICAgICAgZmllbGROYW1lID0gYCR7ZmllbGRQcmVmaXggfHwgJyd9JHtmaWVsZC5uYW1lfWBcblxuICAgICAgLy8gSWYgZmllbGQgaXMgbG9jYWxpemVkLFxuICAgICAgLy8gYWRkIHRoZSBjb2x1bW4gdG8gdGhlIGxvY2FsZSB0YWJsZSBpbnN0ZWFkIG9mIG1haW4gdGFibGVcbiAgICAgIGlmIChhZGFwdGVyLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbiAmJiAoZmllbGQubG9jYWxpemVkIHx8IGZvcmNlTG9jYWxpemVkKSkge1xuICAgICAgICBoYXNMb2NhbGl6ZWRGaWVsZCA9IHRydWVcbiAgICAgICAgdGFyZ2V0VGFibGUgPSBsb2NhbGVzQ29sdW1uc1xuICAgICAgICB0YXJnZXRJbmRleGVzID0gbG9jYWxlc0luZGV4ZXNcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICAoZmllbGQudW5pcXVlIHx8IGZpZWxkLmluZGV4KSAmJlxuICAgICAgICAhWydhcnJheScsICdibG9ja3MnLCAnZ3JvdXAnLCAncG9pbnQnLCAncmVsYXRpb25zaGlwJywgJ3VwbG9hZCddLmluY2x1ZGVzKGZpZWxkLnR5cGUpICYmXG4gICAgICAgICEoZmllbGQudHlwZSA9PT0gJ251bWJlcicgJiYgZmllbGQuaGFzTWFueSA9PT0gdHJ1ZSlcbiAgICAgICkge1xuICAgICAgICB0YXJnZXRJbmRleGVzW2Ake2ZpZWxkLm5hbWV9SWR4YF0gPSBjcmVhdGVJbmRleCh7XG4gICAgICAgICAgbmFtZTogZmllbGROYW1lLFxuICAgICAgICAgIGNvbHVtbk5hbWUsXG4gICAgICAgICAgdW5pcXVlOiBkaXNhYmxlVW5pcXVlICE9PSB0cnVlICYmIGZpZWxkLnVuaXF1ZSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgY2FzZSAnZW1haWwnOlxuICAgICAgY2FzZSAnY29kZSc6XG4gICAgICBjYXNlICd0ZXh0YXJlYSc6IHtcbiAgICAgICAgdGFyZ2V0VGFibGVbZmllbGROYW1lXSA9IHZhcmNoYXIoY29sdW1uTmFtZSlcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnbnVtYmVyJzoge1xuICAgICAgICBpZiAoZmllbGQuaGFzTWFueSkge1xuICAgICAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgICAgIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmllbGQuaW5kZXgpIHtcbiAgICAgICAgICAgIGhhc01hbnlOdW1iZXJGaWVsZCA9ICdpbmRleCdcbiAgICAgICAgICB9IGVsc2UgaWYgKCFoYXNNYW55TnVtYmVyRmllbGQpIHtcbiAgICAgICAgICAgIGhhc01hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmllbGQudW5pcXVlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZENvbmZpZ3VyYXRpb24oXG4gICAgICAgICAgICAgICdVbmlxdWUgaXMgbm90IHN1cHBvcnRlZCBpbiBQb3N0Z3JlcyBmb3IgaGFzTWFueSBudW1iZXIgZmllbGRzLicsXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhcmdldFRhYmxlW2ZpZWxkTmFtZV0gPSBudW1lcmljKGNvbHVtbk5hbWUpXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAncmljaFRleHQnOlxuICAgICAgY2FzZSAnanNvbic6IHtcbiAgICAgICAgdGFyZ2V0VGFibGVbZmllbGROYW1lXSA9IGpzb25iKGNvbHVtbk5hbWUpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2RhdGUnOiB7XG4gICAgICAgIHRhcmdldFRhYmxlW2ZpZWxkTmFtZV0gPSB0aW1lc3RhbXAoY29sdW1uTmFtZSwge1xuICAgICAgICAgIG1vZGU6ICdzdHJpbmcnLFxuICAgICAgICAgIHByZWNpc2lvbjogMyxcbiAgICAgICAgICB3aXRoVGltZXpvbmU6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3BvaW50Jzoge1xuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdyYWRpbyc6XG4gICAgICBjYXNlICdzZWxlY3QnOiB7XG4gICAgICAgIGNvbnN0IGVudW1OYW1lID0gYGVudW1fJHtuZXdUYWJsZU5hbWV9XyR7dG9TbmFrZUNhc2UoZmllbGQubmFtZSl9YFxuXG4gICAgICAgIGFkYXB0ZXIuZW51bXNbZW51bU5hbWVdID0gcGdFbnVtKFxuICAgICAgICAgIGVudW1OYW1lLFxuICAgICAgICAgIGZpZWxkLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgIGlmIChvcHRpb25Jc09iamVjdChvcHRpb24pKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvcHRpb24udmFsdWVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG9wdGlvblxuICAgICAgICAgIH0pIGFzIFtzdHJpbmcsIC4uLnN0cmluZ1tdXSxcbiAgICAgICAgKVxuXG4gICAgICAgIGlmIChmaWVsZC50eXBlID09PSAnc2VsZWN0JyAmJiBmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0VGFibGVOYW1lID0gYCR7bmV3VGFibGVOYW1lfV8ke3RvU25ha2VDYXNlKGZpZWxkLm5hbWUpfWBcbiAgICAgICAgICBjb25zdCBiYXNlQ29sdW1uczogUmVjb3JkPHN0cmluZywgUGdDb2x1bW5CdWlsZGVyPiA9IHtcbiAgICAgICAgICAgIG9yZGVyOiBpbnRlZ2VyKCdvcmRlcicpLm5vdE51bGwoKSxcbiAgICAgICAgICAgIHBhcmVudDogcGFyZW50SURDb2x1bW5NYXBbcGFyZW50SURDb2xUeXBlXSgncGFyZW50X2lkJylcbiAgICAgICAgICAgICAgLnJlZmVyZW5jZXMoKCkgPT4gYWRhcHRlci50YWJsZXNbcGFyZW50VGFibGVOYW1lXS5pZCwgeyBvbkRlbGV0ZTogJ2Nhc2NhZGUnIH0pXG4gICAgICAgICAgICAgIC5ub3ROdWxsKCksXG4gICAgICAgICAgICB2YWx1ZTogYWRhcHRlci5lbnVtc1tlbnVtTmFtZV0oJ3ZhbHVlJyksXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgYmFzZUV4dHJhQ29uZmlnOiBSZWNvcmQ8XG4gICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICAoY29sczogR2VuZXJpY0NvbHVtbnMpID0+IEluZGV4QnVpbGRlciB8IFVuaXF1ZUNvbnN0cmFpbnRCdWlsZGVyXG4gICAgICAgICAgPiA9IHtcbiAgICAgICAgICAgIG9yZGVySWR4OiAoY29scykgPT4gaW5kZXgoJ29yZGVyX2lkeCcpLm9uKGNvbHMub3JkZXIpLFxuICAgICAgICAgICAgcGFyZW50SWR4OiAoY29scykgPT4gaW5kZXgoJ3BhcmVudF9pZHgnKS5vbihjb2xzLnBhcmVudCksXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICAgICAgYmFzZUNvbHVtbnMubG9jYWxlID0gYWRhcHRlci5lbnVtcy5lbnVtX19sb2NhbGVzKCdsb2NhbGUnKS5ub3ROdWxsKClcbiAgICAgICAgICAgIGJhc2VFeHRyYUNvbmZpZy5sb2NhbGVJZHggPSAoY29scykgPT4gaW5kZXgoJ2xvY2FsZV9pZHgnKS5vbihjb2xzLmxvY2FsZSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmllbGQuaW5kZXgpIHtcbiAgICAgICAgICAgIGJhc2VFeHRyYUNvbmZpZy52YWx1ZSA9IChjb2xzKSA9PiBpbmRleCgndmFsdWVfaWR4Jykub24oY29scy52YWx1ZSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBidWlsZFRhYmxlKHtcbiAgICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgICBiYXNlQ29sdW1ucyxcbiAgICAgICAgICAgIGJhc2VFeHRyYUNvbmZpZyxcbiAgICAgICAgICAgIGRpc2FibGVOb3ROdWxsLFxuICAgICAgICAgICAgZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICAgIGZpZWxkczogW10sXG4gICAgICAgICAgICB0YWJsZU5hbWU6IHNlbGVjdFRhYmxlTmFtZSxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgcmVsYXRpb25zVG9CdWlsZC5zZXQoZmllbGROYW1lLCBzZWxlY3RUYWJsZU5hbWUpXG5cbiAgICAgICAgICBjb25zdCBzZWxlY3RUYWJsZVJlbGF0aW9ucyA9IHJlbGF0aW9ucyhhZGFwdGVyLnRhYmxlc1tzZWxlY3RUYWJsZU5hbWVdLCAoeyBvbmUgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBSZWxhdGlvbjxzdHJpbmc+PiA9IHtcbiAgICAgICAgICAgICAgcGFyZW50OiBvbmUoYWRhcHRlci50YWJsZXNbcGFyZW50VGFibGVOYW1lXSwge1xuICAgICAgICAgICAgICAgIGZpZWxkczogW2FkYXB0ZXIudGFibGVzW3NlbGVjdFRhYmxlTmFtZV0ucGFyZW50XSxcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbYWRhcHRlci50YWJsZXNbcGFyZW50VGFibGVOYW1lXS5pZF0sXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGFkYXB0ZXIucmVsYXRpb25zW2ByZWxhdGlvbl8ke3NlbGVjdFRhYmxlTmFtZX1gXSA9IHNlbGVjdFRhYmxlUmVsYXRpb25zXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFyZ2V0VGFibGVbZmllbGROYW1lXSA9IGFkYXB0ZXIuZW51bXNbZW51bU5hbWVdKGZpZWxkTmFtZSlcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdjaGVja2JveCc6IHtcbiAgICAgICAgdGFyZ2V0VGFibGVbZmllbGROYW1lXSA9IGJvb2xlYW4oY29sdW1uTmFtZSlcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnYXJyYXknOiB7XG4gICAgICAgIGNvbnN0IGFycmF5VGFibGVOYW1lID0gYCR7bmV3VGFibGVOYW1lfV8ke3RvU25ha2VDYXNlKGZpZWxkLm5hbWUpfWBcbiAgICAgICAgY29uc3QgYmFzZUNvbHVtbnM6IFJlY29yZDxzdHJpbmcsIFBnQ29sdW1uQnVpbGRlcj4gPSB7XG4gICAgICAgICAgX29yZGVyOiBpbnRlZ2VyKCdfb3JkZXInKS5ub3ROdWxsKCksXG4gICAgICAgICAgX3BhcmVudElEOiBwYXJlbnRJRENvbHVtbk1hcFtwYXJlbnRJRENvbFR5cGVdKCdfcGFyZW50X2lkJylcbiAgICAgICAgICAgIC5yZWZlcmVuY2VzKCgpID0+IGFkYXB0ZXIudGFibGVzW3BhcmVudFRhYmxlTmFtZV0uaWQsIHsgb25EZWxldGU6ICdjYXNjYWRlJyB9KVxuICAgICAgICAgICAgLm5vdE51bGwoKSxcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGJhc2VFeHRyYUNvbmZpZzogUmVjb3JkPFxuICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAoY29sczogR2VuZXJpY0NvbHVtbnMpID0+IEluZGV4QnVpbGRlciB8IFVuaXF1ZUNvbnN0cmFpbnRCdWlsZGVyXG4gICAgICAgID4gPSB7XG4gICAgICAgICAgX29yZGVySWR4OiAoY29scykgPT4gaW5kZXgoJ19vcmRlcl9pZHgnKS5vbihjb2xzLl9vcmRlciksXG4gICAgICAgICAgX3BhcmVudElESWR4OiAoY29scykgPT4gaW5kZXgoJ19wYXJlbnRfaWRfaWR4Jykub24oY29scy5fcGFyZW50SUQpLFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBhZGFwdGVyLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICAgIGJhc2VDb2x1bW5zLl9sb2NhbGUgPSBhZGFwdGVyLmVudW1zLmVudW1fX2xvY2FsZXMoJ19sb2NhbGUnKS5ub3ROdWxsKClcbiAgICAgICAgICBiYXNlRXh0cmFDb25maWcuX2xvY2FsZUlkeCA9IChjb2xzKSA9PiBpbmRleCgnX2xvY2FsZV9pZHgnKS5vbihjb2xzLl9sb2NhbGUpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IHJlbGF0aW9uc1RvQnVpbGQ6IHN1YlJlbGF0aW9uc1RvQnVpbGQgfSA9IGJ1aWxkVGFibGUoe1xuICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgYmFzZUNvbHVtbnMsXG4gICAgICAgICAgYmFzZUV4dHJhQ29uZmlnLFxuICAgICAgICAgIGRpc2FibGVOb3ROdWxsLFxuICAgICAgICAgIGRpc2FibGVVbmlxdWUsXG4gICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgcm9vdFJlbGF0aW9uc1RvQnVpbGQsXG4gICAgICAgICAgcm9vdFJlbGF0aW9uc2hpcHM6IHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgcm9vdFRhYmxlSURDb2xUeXBlLFxuICAgICAgICAgIHJvb3RUYWJsZU5hbWUsXG4gICAgICAgICAgdGFibGVOYW1lOiBhcnJheVRhYmxlTmFtZSxcbiAgICAgICAgfSlcblxuICAgICAgICByZWxhdGlvbnNUb0J1aWxkLnNldChmaWVsZE5hbWUsIGFycmF5VGFibGVOYW1lKVxuXG4gICAgICAgIGNvbnN0IGFycmF5VGFibGVSZWxhdGlvbnMgPSByZWxhdGlvbnMoYWRhcHRlci50YWJsZXNbYXJyYXlUYWJsZU5hbWVdLCAoeyBtYW55LCBvbmUgfSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgUmVsYXRpb248c3RyaW5nPj4gPSB7XG4gICAgICAgICAgICBfcGFyZW50SUQ6IG9uZShhZGFwdGVyLnRhYmxlc1twYXJlbnRUYWJsZU5hbWVdLCB7XG4gICAgICAgICAgICAgIGZpZWxkczogW2FkYXB0ZXIudGFibGVzW2FycmF5VGFibGVOYW1lXS5fcGFyZW50SURdLFxuICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbYWRhcHRlci50YWJsZXNbcGFyZW50VGFibGVOYW1lXS5pZF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoaGFzTG9jYWxlc1RhYmxlKGZpZWxkLmZpZWxkcykpIHtcbiAgICAgICAgICAgIHJlc3VsdC5fbG9jYWxlcyA9IG1hbnkoYWRhcHRlci50YWJsZXNbYCR7YXJyYXlUYWJsZU5hbWV9X2xvY2FsZXNgXSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzdWJSZWxhdGlvbnNUb0J1aWxkLmZvckVhY2goKHZhbCwga2V5KSA9PiB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IG1hbnkoYWRhcHRlci50YWJsZXNbdmFsXSlcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICB9KVxuXG4gICAgICAgIGFkYXB0ZXIucmVsYXRpb25zW2ByZWxhdGlvbnNfJHthcnJheVRhYmxlTmFtZX1gXSA9IGFycmF5VGFibGVSZWxhdGlvbnNcblxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdibG9ja3MnOiB7XG4gICAgICAgIGZpZWxkLmJsb2Nrcy5mb3JFYWNoKChibG9jaykgPT4ge1xuICAgICAgICAgIGNvbnN0IGJsb2NrVGFibGVOYW1lID0gYCR7cm9vdFRhYmxlTmFtZX1fYmxvY2tzXyR7dG9TbmFrZUNhc2UoYmxvY2suc2x1Zyl9YFxuICAgICAgICAgIGlmICghYWRhcHRlci50YWJsZXNbYmxvY2tUYWJsZU5hbWVdKSB7XG4gICAgICAgICAgICBjb25zdCBiYXNlQ29sdW1uczogUmVjb3JkPHN0cmluZywgUGdDb2x1bW5CdWlsZGVyPiA9IHtcbiAgICAgICAgICAgICAgX29yZGVyOiBpbnRlZ2VyKCdfb3JkZXInKS5ub3ROdWxsKCksXG4gICAgICAgICAgICAgIF9wYXJlbnRJRDogcGFyZW50SURDb2x1bW5NYXBbcm9vdFRhYmxlSURDb2xUeXBlXSgnX3BhcmVudF9pZCcpXG4gICAgICAgICAgICAgICAgLnJlZmVyZW5jZXMoKCkgPT4gYWRhcHRlci50YWJsZXNbcm9vdFRhYmxlTmFtZV0uaWQsIHsgb25EZWxldGU6ICdjYXNjYWRlJyB9KVxuICAgICAgICAgICAgICAgIC5ub3ROdWxsKCksXG4gICAgICAgICAgICAgIF9wYXRoOiB0ZXh0KCdfcGF0aCcpLm5vdE51bGwoKSxcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgYmFzZUV4dHJhQ29uZmlnOiBSZWNvcmQ8XG4gICAgICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAgICAgKGNvbHM6IEdlbmVyaWNDb2x1bW5zKSA9PiBJbmRleEJ1aWxkZXIgfCBVbmlxdWVDb25zdHJhaW50QnVpbGRlclxuICAgICAgICAgICAgPiA9IHtcbiAgICAgICAgICAgICAgX29yZGVySWR4OiAoY29scykgPT4gaW5kZXgoJ29yZGVyX2lkeCcpLm9uKGNvbHMuX29yZGVyKSxcbiAgICAgICAgICAgICAgX3BhcmVudElESWR4OiAoY29scykgPT4gaW5kZXgoJ3BhcmVudF9pZF9pZHgnKS5vbihjb2xzLl9wYXJlbnRJRCksXG4gICAgICAgICAgICAgIF9wYXRoSWR4OiAoY29scykgPT4gaW5kZXgoJ3BhdGhfaWR4Jykub24oY29scy5fcGF0aCksXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgYWRhcHRlci5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgICAgICAgYmFzZUNvbHVtbnMuX2xvY2FsZSA9IGFkYXB0ZXIuZW51bXMuZW51bV9fbG9jYWxlcygnX2xvY2FsZScpLm5vdE51bGwoKVxuICAgICAgICAgICAgICBiYXNlRXh0cmFDb25maWcuX2xvY2FsZUlkeCA9IChjb2xzKSA9PiBpbmRleCgnbG9jYWxlX2lkeCcpLm9uKGNvbHMuX2xvY2FsZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgeyByZWxhdGlvbnNUb0J1aWxkOiBzdWJSZWxhdGlvbnNUb0J1aWxkIH0gPSBidWlsZFRhYmxlKHtcbiAgICAgICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICAgICAgYmFzZUNvbHVtbnMsXG4gICAgICAgICAgICAgIGJhc2VFeHRyYUNvbmZpZyxcbiAgICAgICAgICAgICAgZGlzYWJsZU5vdE51bGwsXG4gICAgICAgICAgICAgIGRpc2FibGVVbmlxdWUsXG4gICAgICAgICAgICAgIGZpZWxkczogYmxvY2suZmllbGRzLFxuICAgICAgICAgICAgICByb290UmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICAgICAgcm9vdFJlbGF0aW9uc2hpcHM6IHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgICAgIHJvb3RUYWJsZUlEQ29sVHlwZSxcbiAgICAgICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgdGFibGVOYW1lOiBibG9ja1RhYmxlTmFtZSxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGNvbnN0IGJsb2NrVGFibGVSZWxhdGlvbnMgPSByZWxhdGlvbnMoXG4gICAgICAgICAgICAgIGFkYXB0ZXIudGFibGVzW2Jsb2NrVGFibGVOYW1lXSxcbiAgICAgICAgICAgICAgKHsgbWFueSwgb25lIH0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIFJlbGF0aW9uPHN0cmluZz4+ID0ge1xuICAgICAgICAgICAgICAgICAgX3BhcmVudElEOiBvbmUoYWRhcHRlci50YWJsZXNbcm9vdFRhYmxlTmFtZV0sIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGRzOiBbYWRhcHRlci50YWJsZXNbYmxvY2tUYWJsZU5hbWVdLl9wYXJlbnRJRF0sXG4gICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFthZGFwdGVyLnRhYmxlc1tyb290VGFibGVOYW1lXS5pZF0sXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoaGFzTG9jYWxlc1RhYmxlKGJsb2NrLmZpZWxkcykpIHtcbiAgICAgICAgICAgICAgICAgIHJlc3VsdC5fbG9jYWxlcyA9IG1hbnkoYWRhcHRlci50YWJsZXNbYCR7YmxvY2tUYWJsZU5hbWV9X2xvY2FsZXNgXSlcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzdWJSZWxhdGlvbnNUb0J1aWxkLmZvckVhY2goKHZhbCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IG1hbnkoYWRhcHRlci50YWJsZXNbdmFsXSlcbiAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBhZGFwdGVyLnJlbGF0aW9uc1tgcmVsYXRpb25zXyR7YmxvY2tUYWJsZU5hbWV9YF0gPSBibG9ja1RhYmxlUmVsYXRpb25zXG4gICAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICB2YWxpZGF0ZUV4aXN0aW5nQmxvY2tJc0lkZW50aWNhbCh7XG4gICAgICAgICAgICAgIGJsb2NrLFxuICAgICAgICAgICAgICBsb2NhbGl6ZWQ6IGZpZWxkLmxvY2FsaXplZCxcbiAgICAgICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgdGFibGU6IGFkYXB0ZXIudGFibGVzW2Jsb2NrVGFibGVOYW1lXSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcm9vdFJlbGF0aW9uc1RvQnVpbGQuc2V0KGBfYmxvY2tzXyR7YmxvY2suc2x1Z31gLCBibG9ja1RhYmxlTmFtZSlcbiAgICAgICAgfSlcblxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICd0YWInOlxuICAgICAgY2FzZSAnZ3JvdXAnOiB7XG4gICAgICAgIGlmICghKCduYW1lJyBpbiBmaWVsZCkpIHtcbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBoYXNMb2NhbGl6ZWRGaWVsZDogZ3JvdXBIYXNMb2NhbGl6ZWRGaWVsZCxcbiAgICAgICAgICAgIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZDogZ3JvdXBIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQsXG4gICAgICAgICAgICBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZDogZ3JvdXBIYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCxcbiAgICAgICAgICAgIGhhc01hbnlOdW1iZXJGaWVsZDogZ3JvdXBIYXNNYW55TnVtYmVyRmllbGQsXG4gICAgICAgICAgfSA9IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgICBidWlsZFJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgICBjb2x1bW5QcmVmaXgsXG4gICAgICAgICAgICBjb2x1bW5zLFxuICAgICAgICAgICAgZGlzYWJsZU5vdE51bGwsXG4gICAgICAgICAgICBkaXNhYmxlVW5pcXVlLFxuICAgICAgICAgICAgZmllbGRQcmVmaXgsXG4gICAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICAgIGZvcmNlTG9jYWxpemVkLFxuICAgICAgICAgICAgaW5kZXhlcyxcbiAgICAgICAgICAgIGxvY2FsZXNDb2x1bW5zLFxuICAgICAgICAgICAgbG9jYWxlc0luZGV4ZXMsXG4gICAgICAgICAgICBuZXdUYWJsZU5hbWUsXG4gICAgICAgICAgICBwYXJlbnRUYWJsZU5hbWUsXG4gICAgICAgICAgICByZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgIHJvb3RSZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgICAgcm9vdFRhYmxlSURDb2xUeXBlLFxuICAgICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgaWYgKGdyb3VwSGFzTG9jYWxpemVkRmllbGQpIGhhc0xvY2FsaXplZEZpZWxkID0gdHJ1ZVxuICAgICAgICAgIGlmIChncm91cEhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkKSBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCA9IHRydWVcbiAgICAgICAgICBpZiAoZ3JvdXBIYXNNYW55TnVtYmVyRmllbGQpIGhhc01hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgICBpZiAoZ3JvdXBIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQpIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIGhhc0xvY2FsaXplZEZpZWxkOiBncm91cEhhc0xvY2FsaXplZEZpZWxkLFxuICAgICAgICAgIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZDogZ3JvdXBIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQ6IGdyb3VwSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQsXG4gICAgICAgICAgaGFzTWFueU51bWJlckZpZWxkOiBncm91cEhhc01hbnlOdW1iZXJGaWVsZCxcbiAgICAgICAgfSA9IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgIGJ1aWxkUmVsYXRpb25zaGlwcyxcbiAgICAgICAgICBjb2x1bW5QcmVmaXg6IGAke2NvbHVtbk5hbWV9X2AsXG4gICAgICAgICAgY29sdW1ucyxcbiAgICAgICAgICBkaXNhYmxlTm90TnVsbCxcbiAgICAgICAgICBkaXNhYmxlVW5pcXVlLFxuICAgICAgICAgIGZpZWxkUHJlZml4OiBgJHtmaWVsZE5hbWV9X2AsXG4gICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgZm9yY2VMb2NhbGl6ZWQ6IGZpZWxkLmxvY2FsaXplZCxcbiAgICAgICAgICBpbmRleGVzLFxuICAgICAgICAgIGxvY2FsZXNDb2x1bW5zLFxuICAgICAgICAgIGxvY2FsZXNJbmRleGVzLFxuICAgICAgICAgIG5ld1RhYmxlTmFtZTogYCR7cGFyZW50VGFibGVOYW1lfV8ke2NvbHVtbk5hbWV9YCxcbiAgICAgICAgICBwYXJlbnRUYWJsZU5hbWUsXG4gICAgICAgICAgcmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICByZWxhdGlvbnNoaXBzLFxuICAgICAgICAgIHJvb3RSZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgIHJvb3RUYWJsZUlEQ29sVHlwZSxcbiAgICAgICAgICByb290VGFibGVOYW1lLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChncm91cEhhc0xvY2FsaXplZEZpZWxkKSBoYXNMb2NhbGl6ZWRGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKGdyb3VwSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQpIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkID0gdHJ1ZVxuICAgICAgICBpZiAoZ3JvdXBIYXNNYW55TnVtYmVyRmllbGQpIGhhc01hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKGdyb3VwSGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkKSBoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQgPSB0cnVlXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3RhYnMnOiB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRGaWVsZDogdGFiSGFzTG9jYWxpemVkRmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkOiB0YWJIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQ6IHRhYkhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkLFxuICAgICAgICAgIGhhc01hbnlOdW1iZXJGaWVsZDogdGFiSGFzTWFueU51bWJlckZpZWxkLFxuICAgICAgICB9ID0gdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgYnVpbGRSZWxhdGlvbnNoaXBzLFxuICAgICAgICAgIGNvbHVtblByZWZpeCxcbiAgICAgICAgICBjb2x1bW5zLFxuICAgICAgICAgIGRpc2FibGVOb3ROdWxsLFxuICAgICAgICAgIGRpc2FibGVVbmlxdWUsXG4gICAgICAgICAgZmllbGRQcmVmaXgsXG4gICAgICAgICAgZmllbGRzOiBmaWVsZC50YWJzLm1hcCgodGFiKSA9PiAoeyAuLi50YWIsIHR5cGU6ICd0YWInIH0pKSxcbiAgICAgICAgICBmb3JjZUxvY2FsaXplZCxcbiAgICAgICAgICBpbmRleGVzLFxuICAgICAgICAgIGxvY2FsZXNDb2x1bW5zLFxuICAgICAgICAgIGxvY2FsZXNJbmRleGVzLFxuICAgICAgICAgIG5ld1RhYmxlTmFtZSxcbiAgICAgICAgICBwYXJlbnRUYWJsZU5hbWUsXG4gICAgICAgICAgcmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICByZWxhdGlvbnNoaXBzLFxuICAgICAgICAgIHJvb3RSZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgIHJvb3RUYWJsZUlEQ29sVHlwZSxcbiAgICAgICAgICByb290VGFibGVOYW1lLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmICh0YWJIYXNMb2NhbGl6ZWRGaWVsZCkgaGFzTG9jYWxpemVkRmllbGQgPSB0cnVlXG4gICAgICAgIGlmICh0YWJIYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCkgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQgPSB0cnVlXG4gICAgICAgIGlmICh0YWJIYXNNYW55TnVtYmVyRmllbGQpIGhhc01hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKHRhYkhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCkgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkID0gdHJ1ZVxuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3Jvdyc6XG4gICAgICBjYXNlICdjb2xsYXBzaWJsZSc6IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIGhhc0xvY2FsaXplZEZpZWxkOiByb3dIYXNMb2NhbGl6ZWRGaWVsZCxcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQ6IHJvd0hhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCxcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZDogcm93SGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQsXG4gICAgICAgICAgaGFzTWFueU51bWJlckZpZWxkOiByb3dIYXNNYW55TnVtYmVyRmllbGQsXG4gICAgICAgIH0gPSB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBidWlsZFJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgY29sdW1uUHJlZml4LFxuICAgICAgICAgIGNvbHVtbnMsXG4gICAgICAgICAgZGlzYWJsZU5vdE51bGwsXG4gICAgICAgICAgZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICBmaWVsZFByZWZpeCxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICBmb3JjZUxvY2FsaXplZCxcbiAgICAgICAgICBpbmRleGVzLFxuICAgICAgICAgIGxvY2FsZXNDb2x1bW5zLFxuICAgICAgICAgIGxvY2FsZXNJbmRleGVzLFxuICAgICAgICAgIG5ld1RhYmxlTmFtZTogcGFyZW50VGFibGVOYW1lLFxuICAgICAgICAgIHBhcmVudFRhYmxlTmFtZSxcbiAgICAgICAgICByZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgcm9vdFJlbGF0aW9uc1RvQnVpbGQsXG4gICAgICAgICAgcm9vdFRhYmxlSURDb2xUeXBlLFxuICAgICAgICAgIHJvb3RUYWJsZU5hbWUsXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKHJvd0hhc0xvY2FsaXplZEZpZWxkKSBoYXNMb2NhbGl6ZWRGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKHJvd0hhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkKSBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKHJvd0hhc01hbnlOdW1iZXJGaWVsZCkgaGFzTWFueU51bWJlckZpZWxkID0gdHJ1ZVxuICAgICAgICBpZiAocm93SGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkKSBoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQgPSB0cnVlXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3JlbGF0aW9uc2hpcCc6XG4gICAgICBjYXNlICd1cGxvYWQnOlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKSkge1xuICAgICAgICAgIGZpZWxkLnJlbGF0aW9uVG8uZm9yRWFjaCgocmVsYXRpb24pID0+IHJlbGF0aW9uc2hpcHMuYWRkKHJlbGF0aW9uKSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWxhdGlvbnNoaXBzLmFkZChmaWVsZC5yZWxhdGlvblRvKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBhZGFwdGVyLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICAgIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY29uc3QgY29uZGl0aW9uID0gZmllbGQuYWRtaW4gJiYgZmllbGQuYWRtaW4uY29uZGl0aW9uXG5cbiAgICBpZiAoXG4gICAgICAhZGlzYWJsZU5vdE51bGwgJiZcbiAgICAgIHRhcmdldFRhYmxlW2ZpZWxkTmFtZV0gJiZcbiAgICAgICdyZXF1aXJlZCcgaW4gZmllbGQgJiZcbiAgICAgIGZpZWxkLnJlcXVpcmVkICYmXG4gICAgICAhY29uZGl0aW9uXG4gICAgKSB7XG4gICAgICB0YXJnZXRUYWJsZVtmaWVsZE5hbWVdLm5vdE51bGwoKVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4ge1xuICAgIGhhc0xvY2FsaXplZEZpZWxkLFxuICAgIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCxcbiAgICBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCxcbiAgICBoYXNNYW55TnVtYmVyRmllbGQsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJ0cmF2ZXJzZUZpZWxkcyIsImFkYXB0ZXIiLCJidWlsZFJlbGF0aW9uc2hpcHMiLCJjb2x1bW5QcmVmaXgiLCJjb2x1bW5zIiwiZGlzYWJsZU5vdE51bGwiLCJkaXNhYmxlVW5pcXVlIiwiZmllbGRQcmVmaXgiLCJmaWVsZHMiLCJmb3JjZUxvY2FsaXplZCIsImluZGV4ZXMiLCJsb2NhbGVzQ29sdW1ucyIsImxvY2FsZXNJbmRleGVzIiwibmV3VGFibGVOYW1lIiwicGFyZW50VGFibGVOYW1lIiwicmVsYXRpb25zVG9CdWlsZCIsInJlbGF0aW9uc2hpcHMiLCJyb290UmVsYXRpb25zVG9CdWlsZCIsInJvb3RUYWJsZUlEQ29sVHlwZSIsInJvb3RUYWJsZU5hbWUiLCJoYXNMb2NhbGl6ZWRGaWVsZCIsImhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkIiwiaGFzTWFueU51bWJlckZpZWxkIiwiaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkIiwicGFyZW50SURDb2xUeXBlIiwiaWQiLCJQZ051bWVyaWNCdWlsZGVyIiwiUGdWYXJjaGFyQnVpbGRlciIsImZvckVhY2giLCJmaWVsZCIsIm5hbWUiLCJjb2x1bW5OYW1lIiwiZmllbGROYW1lIiwidGFyZ2V0VGFibGUiLCJ0YXJnZXRJbmRleGVzIiwiZmllbGRBZmZlY3RzRGF0YSIsInRvU25ha2VDYXNlIiwicGF5bG9hZCIsImNvbmZpZyIsImxvY2FsaXphdGlvbiIsImxvY2FsaXplZCIsInVuaXF1ZSIsImluZGV4IiwiaW5jbHVkZXMiLCJ0eXBlIiwiaGFzTWFueSIsImNyZWF0ZUluZGV4IiwidmFyY2hhciIsIkludmFsaWRDb25maWd1cmF0aW9uIiwibnVtZXJpYyIsImpzb25iIiwidGltZXN0YW1wIiwibW9kZSIsInByZWNpc2lvbiIsIndpdGhUaW1lem9uZSIsImVudW1OYW1lIiwiZW51bXMiLCJwZ0VudW0iLCJvcHRpb25zIiwibWFwIiwib3B0aW9uIiwib3B0aW9uSXNPYmplY3QiLCJ2YWx1ZSIsInNlbGVjdFRhYmxlTmFtZSIsImJhc2VDb2x1bW5zIiwib3JkZXIiLCJpbnRlZ2VyIiwibm90TnVsbCIsInBhcmVudCIsInBhcmVudElEQ29sdW1uTWFwIiwicmVmZXJlbmNlcyIsInRhYmxlcyIsIm9uRGVsZXRlIiwiYmFzZUV4dHJhQ29uZmlnIiwib3JkZXJJZHgiLCJjb2xzIiwib24iLCJwYXJlbnRJZHgiLCJsb2NhbGUiLCJlbnVtX19sb2NhbGVzIiwibG9jYWxlSWR4IiwiYnVpbGRUYWJsZSIsInRhYmxlTmFtZSIsInNldCIsInNlbGVjdFRhYmxlUmVsYXRpb25zIiwicmVsYXRpb25zIiwib25lIiwicmVzdWx0IiwiYm9vbGVhbiIsImFycmF5VGFibGVOYW1lIiwiX29yZGVyIiwiX3BhcmVudElEIiwiX29yZGVySWR4IiwiX3BhcmVudElESWR4IiwiX2xvY2FsZSIsIl9sb2NhbGVJZHgiLCJzdWJSZWxhdGlvbnNUb0J1aWxkIiwicm9vdFJlbGF0aW9uc2hpcHMiLCJhcnJheVRhYmxlUmVsYXRpb25zIiwibWFueSIsImhhc0xvY2FsZXNUYWJsZSIsIl9sb2NhbGVzIiwidmFsIiwia2V5IiwiYmxvY2tzIiwiYmxvY2siLCJibG9ja1RhYmxlTmFtZSIsInNsdWciLCJfcGF0aCIsInRleHQiLCJfcGF0aElkeCIsImJsb2NrVGFibGVSZWxhdGlvbnMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ2YWxpZGF0ZUV4aXN0aW5nQmxvY2tJc0lkZW50aWNhbCIsInRhYmxlIiwiZ3JvdXBIYXNMb2NhbGl6ZWRGaWVsZCIsImdyb3VwSGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkIiwiZ3JvdXBIYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCIsImdyb3VwSGFzTWFueU51bWJlckZpZWxkIiwidGFiSGFzTG9jYWxpemVkRmllbGQiLCJ0YWJIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQiLCJ0YWJIYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCIsInRhYkhhc01hbnlOdW1iZXJGaWVsZCIsInRhYnMiLCJ0YWIiLCJyb3dIYXNMb2NhbGl6ZWRGaWVsZCIsInJvd0hhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCIsInJvd0hhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkIiwicm93SGFzTWFueU51bWJlckZpZWxkIiwiQXJyYXkiLCJpc0FycmF5Iiwi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
447
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvdHJhdmVyc2VGaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgUmVsYXRpb24gfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB0eXBlIHsgSW5kZXhCdWlsZGVyLCBQZ0NvbHVtbkJ1aWxkZXIsIFVuaXF1ZUNvbnN0cmFpbnRCdWlsZGVyIH0gZnJvbSAnZHJpenpsZS1vcm0vcGctY29yZSdcbmltcG9ydCB0eXBlIHsgRmllbGQsIFRhYkFzRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyByZWxhdGlvbnMgfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB7XG4gIFBnTnVtZXJpY0J1aWxkZXIsXG4gIFBnVmFyY2hhckJ1aWxkZXIsXG4gIGJvb2xlYW4sXG4gIGluZGV4LFxuICBpbnRlZ2VyLFxuICBqc29uYixcbiAgbnVtZXJpYyxcbiAgcGdFbnVtLFxuICB0ZXh0LFxuICB0aW1lc3RhbXAsXG4gIHZhcmNoYXIsXG59IGZyb20gJ2RyaXp6bGUtb3JtL3BnLWNvcmUnXG5pbXBvcnQgeyBJbnZhbGlkQ29uZmlndXJhdGlvbiB9IGZyb20gJ3BheWxvYWQvZXJyb3JzJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSwgb3B0aW9uSXNPYmplY3QgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuaW1wb3J0IHRvU25ha2VDYXNlIGZyb20gJ3RvLXNuYWtlLWNhc2UnXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJpY0NvbHVtbnMsIFBvc3RncmVzQWRhcHRlciB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBoYXNMb2NhbGVzVGFibGUgfSBmcm9tICcuLi91dGlsaXRpZXMvaGFzTG9jYWxlc1RhYmxlJ1xuaW1wb3J0IHsgYnVpbGRUYWJsZSB9IGZyb20gJy4vYnVpbGQnXG5pbXBvcnQgeyBjcmVhdGVJbmRleCB9IGZyb20gJy4vY3JlYXRlSW5kZXgnXG5pbXBvcnQgeyBwYXJlbnRJRENvbHVtbk1hcCB9IGZyb20gJy4vcGFyZW50SURDb2x1bW5NYXAnXG5pbXBvcnQgeyB2YWxpZGF0ZUV4aXN0aW5nQmxvY2tJc0lkZW50aWNhbCB9IGZyb20gJy4vdmFsaWRhdGVFeGlzdGluZ0Jsb2NrSXNJZGVudGljYWwnXG5cbnR5cGUgQXJncyA9IHtcbiAgYWRhcHRlcjogUG9zdGdyZXNBZGFwdGVyXG4gIGJ1aWxkUmVsYXRpb25zaGlwczogYm9vbGVhblxuICBjb2x1bW5QcmVmaXg/OiBzdHJpbmdcbiAgY29sdW1uczogUmVjb3JkPHN0cmluZywgUGdDb2x1bW5CdWlsZGVyPlxuICBkaXNhYmxlTm90TnVsbDogYm9vbGVhblxuICBkaXNhYmxlVW5pcXVlPzogYm9vbGVhblxuICBmaWVsZFByZWZpeD86IHN0cmluZ1xuICBmaWVsZHM6IChGaWVsZCB8IFRhYkFzRmllbGQpW11cbiAgZm9yY2VMb2NhbGl6ZWQ/OiBib29sZWFuXG4gIGluZGV4ZXM6IFJlY29yZDxzdHJpbmcsIChjb2xzOiBHZW5lcmljQ29sdW1ucykgPT4gSW5kZXhCdWlsZGVyPlxuICBsb2NhbGVzQ29sdW1uczogUmVjb3JkPHN0cmluZywgUGdDb2x1bW5CdWlsZGVyPlxuICBsb2NhbGVzSW5kZXhlczogUmVjb3JkPHN0cmluZywgKGNvbHM6IEdlbmVyaWNDb2x1bW5zKSA9PiBJbmRleEJ1aWxkZXI+XG4gIG5ld1RhYmxlTmFtZTogc3RyaW5nXG4gIHBhcmVudFRhYmxlTmFtZTogc3RyaW5nXG4gIHJlbGF0aW9uc1RvQnVpbGQ6IE1hcDxzdHJpbmcsIHN0cmluZz5cbiAgcmVsYXRpb25zaGlwczogU2V0PHN0cmluZz5cbiAgcm9vdFJlbGF0aW9uc1RvQnVpbGQ/OiBNYXA8c3RyaW5nLCBzdHJpbmc+XG4gIHJvb3RUYWJsZUlEQ29sVHlwZTogc3RyaW5nXG4gIHJvb3RUYWJsZU5hbWU6IHN0cmluZ1xufVxuXG50eXBlIFJlc3VsdCA9IHtcbiAgaGFzTG9jYWxpemVkRmllbGQ6IGJvb2xlYW5cbiAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkOiBib29sZWFuXG4gIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkOiBib29sZWFuXG4gIGhhc01hbnlOdW1iZXJGaWVsZDogJ2luZGV4JyB8IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IHRyYXZlcnNlRmllbGRzID0gKHtcbiAgYWRhcHRlcixcbiAgYnVpbGRSZWxhdGlvbnNoaXBzLFxuICBjb2x1bW5QcmVmaXgsXG4gIGNvbHVtbnMsXG4gIGRpc2FibGVOb3ROdWxsLFxuICBkaXNhYmxlVW5pcXVlID0gZmFsc2UsXG4gIGZpZWxkUHJlZml4LFxuICBmaWVsZHMsXG4gIGZvcmNlTG9jYWxpemVkLFxuICBpbmRleGVzLFxuICBsb2NhbGVzQ29sdW1ucyxcbiAgbG9jYWxlc0luZGV4ZXMsXG4gIG5ld1RhYmxlTmFtZSxcbiAgcGFyZW50VGFibGVOYW1lLFxuICByZWxhdGlvbnNUb0J1aWxkLFxuICByZWxhdGlvbnNoaXBzLFxuICByb290UmVsYXRpb25zVG9CdWlsZCxcbiAgcm9vdFRhYmxlSURDb2xUeXBlLFxuICByb290VGFibGVOYW1lLFxufTogQXJncyk6IFJlc3VsdCA9PiB7XG4gIGxldCBoYXNMb2NhbGl6ZWRGaWVsZCA9IGZhbHNlXG4gIGxldCBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCA9IGZhbHNlXG4gIGxldCBoYXNNYW55TnVtYmVyRmllbGQ6ICdpbmRleCcgfCBib29sZWFuID0gZmFsc2VcbiAgbGV0IGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCA9IGZhbHNlXG5cbiAgbGV0IHBhcmVudElEQ29sVHlwZSA9ICdpbnRlZ2VyJ1xuICBpZiAoY29sdW1ucy5pZCBpbnN0YW5jZW9mIFBnTnVtZXJpY0J1aWxkZXIpIHBhcmVudElEQ29sVHlwZSA9ICdudW1lcmljJ1xuICBpZiAoY29sdW1ucy5pZCBpbnN0YW5jZW9mIFBnVmFyY2hhckJ1aWxkZXIpIHBhcmVudElEQ29sVHlwZSA9ICd2YXJjaGFyJ1xuXG4gIGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgIGlmICgnbmFtZScgaW4gZmllbGQgJiYgZmllbGQubmFtZSA9PT0gJ2lkJykgcmV0dXJuXG4gICAgbGV0IGNvbHVtbk5hbWU6IHN0cmluZ1xuICAgIGxldCBmaWVsZE5hbWU6IHN0cmluZ1xuXG4gICAgbGV0IHRhcmdldFRhYmxlID0gY29sdW1uc1xuICAgIGxldCB0YXJnZXRJbmRleGVzID0gaW5kZXhlc1xuXG4gICAgaWYgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpKSB7XG4gICAgICBjb2x1bW5OYW1lID0gYCR7Y29sdW1uUHJlZml4IHx8ICcnfSR7ZmllbGQubmFtZVswXSA9PT0gJ18nID8gJ18nIDogJyd9JHt0b1NuYWtlQ2FzZShcbiAgICAgICAgZmllbGQubmFtZSxcbiAgICAgICl9YFxuICAgICAgZmllbGROYW1lID0gYCR7ZmllbGRQcmVmaXggfHwgJyd9JHtmaWVsZC5uYW1lfWBcblxuICAgICAgLy8gSWYgZmllbGQgaXMgbG9jYWxpemVkLFxuICAgICAgLy8gYWRkIHRoZSBjb2x1bW4gdG8gdGhlIGxvY2FsZSB0YWJsZSBpbnN0ZWFkIG9mIG1haW4gdGFibGVcbiAgICAgIGlmIChhZGFwdGVyLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbiAmJiAoZmllbGQubG9jYWxpemVkIHx8IGZvcmNlTG9jYWxpemVkKSkge1xuICAgICAgICBoYXNMb2NhbGl6ZWRGaWVsZCA9IHRydWVcbiAgICAgICAgdGFyZ2V0VGFibGUgPSBsb2NhbGVzQ29sdW1uc1xuICAgICAgICB0YXJnZXRJbmRleGVzID0gbG9jYWxlc0luZGV4ZXNcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICAoZmllbGQudW5pcXVlIHx8IGZpZWxkLmluZGV4KSAmJlxuICAgICAgICAhWydhcnJheScsICdibG9ja3MnLCAnZ3JvdXAnLCAncG9pbnQnLCAncmVsYXRpb25zaGlwJywgJ3VwbG9hZCddLmluY2x1ZGVzKGZpZWxkLnR5cGUpICYmXG4gICAgICAgICEoZmllbGQudHlwZSA9PT0gJ251bWJlcicgJiYgZmllbGQuaGFzTWFueSA9PT0gdHJ1ZSlcbiAgICAgICkge1xuICAgICAgICB0YXJnZXRJbmRleGVzW2Ake2ZpZWxkLm5hbWV9SWR4YF0gPSBjcmVhdGVJbmRleCh7XG4gICAgICAgICAgbmFtZTogZmllbGROYW1lLFxuICAgICAgICAgIGNvbHVtbk5hbWUsXG4gICAgICAgICAgdW5pcXVlOiBkaXNhYmxlVW5pcXVlICE9PSB0cnVlICYmIGZpZWxkLnVuaXF1ZSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgY2FzZSAnZW1haWwnOlxuICAgICAgY2FzZSAnY29kZSc6XG4gICAgICBjYXNlICd0ZXh0YXJlYSc6IHtcbiAgICAgICAgdGFyZ2V0VGFibGVbZmllbGROYW1lXSA9IHZhcmNoYXIoY29sdW1uTmFtZSlcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnbnVtYmVyJzoge1xuICAgICAgICBpZiAoZmllbGQuaGFzTWFueSkge1xuICAgICAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgICAgIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmllbGQuaW5kZXgpIHtcbiAgICAgICAgICAgIGhhc01hbnlOdW1iZXJGaWVsZCA9ICdpbmRleCdcbiAgICAgICAgICB9IGVsc2UgaWYgKCFoYXNNYW55TnVtYmVyRmllbGQpIHtcbiAgICAgICAgICAgIGhhc01hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmllbGQudW5pcXVlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZENvbmZpZ3VyYXRpb24oXG4gICAgICAgICAgICAgICdVbmlxdWUgaXMgbm90IHN1cHBvcnRlZCBpbiBQb3N0Z3JlcyBmb3IgaGFzTWFueSBudW1iZXIgZmllbGRzLicsXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhcmdldFRhYmxlW2ZpZWxkTmFtZV0gPSBudW1lcmljKGNvbHVtbk5hbWUpXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAncmljaFRleHQnOlxuICAgICAgY2FzZSAnanNvbic6IHtcbiAgICAgICAgdGFyZ2V0VGFibGVbZmllbGROYW1lXSA9IGpzb25iKGNvbHVtbk5hbWUpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2RhdGUnOiB7XG4gICAgICAgIHRhcmdldFRhYmxlW2ZpZWxkTmFtZV0gPSB0aW1lc3RhbXAoY29sdW1uTmFtZSwge1xuICAgICAgICAgIG1vZGU6ICdzdHJpbmcnLFxuICAgICAgICAgIHByZWNpc2lvbjogMyxcbiAgICAgICAgICB3aXRoVGltZXpvbmU6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3BvaW50Jzoge1xuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdyYWRpbyc6XG4gICAgICBjYXNlICdzZWxlY3QnOiB7XG4gICAgICAgIGNvbnN0IGVudW1OYW1lID0gYGVudW1fJHtuZXdUYWJsZU5hbWV9XyR7dG9TbmFrZUNhc2UoZmllbGQubmFtZSl9YFxuXG4gICAgICAgIGFkYXB0ZXIuZW51bXNbZW51bU5hbWVdID0gcGdFbnVtKFxuICAgICAgICAgIGVudW1OYW1lLFxuICAgICAgICAgIGZpZWxkLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgIGlmIChvcHRpb25Jc09iamVjdChvcHRpb24pKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvcHRpb24udmFsdWVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG9wdGlvblxuICAgICAgICAgIH0pIGFzIFtzdHJpbmcsIC4uLnN0cmluZ1tdXSxcbiAgICAgICAgKVxuXG4gICAgICAgIGlmIChmaWVsZC50eXBlID09PSAnc2VsZWN0JyAmJiBmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0VGFibGVOYW1lID0gYCR7bmV3VGFibGVOYW1lfV8ke3RvU25ha2VDYXNlKGZpZWxkLm5hbWUpfWBcbiAgICAgICAgICBjb25zdCBiYXNlQ29sdW1uczogUmVjb3JkPHN0cmluZywgUGdDb2x1bW5CdWlsZGVyPiA9IHtcbiAgICAgICAgICAgIG9yZGVyOiBpbnRlZ2VyKCdvcmRlcicpLm5vdE51bGwoKSxcbiAgICAgICAgICAgIHBhcmVudDogcGFyZW50SURDb2x1bW5NYXBbcGFyZW50SURDb2xUeXBlXSgncGFyZW50X2lkJylcbiAgICAgICAgICAgICAgLnJlZmVyZW5jZXMoKCkgPT4gYWRhcHRlci50YWJsZXNbcGFyZW50VGFibGVOYW1lXS5pZCwgeyBvbkRlbGV0ZTogJ2Nhc2NhZGUnIH0pXG4gICAgICAgICAgICAgIC5ub3ROdWxsKCksXG4gICAgICAgICAgICB2YWx1ZTogYWRhcHRlci5lbnVtc1tlbnVtTmFtZV0oJ3ZhbHVlJyksXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgYmFzZUV4dHJhQ29uZmlnOiBSZWNvcmQ8XG4gICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICAoY29sczogR2VuZXJpY0NvbHVtbnMpID0+IEluZGV4QnVpbGRlciB8IFVuaXF1ZUNvbnN0cmFpbnRCdWlsZGVyXG4gICAgICAgICAgPiA9IHtcbiAgICAgICAgICAgIG9yZGVySWR4OiAoY29scykgPT4gaW5kZXgoJ29yZGVyX2lkeCcpLm9uKGNvbHMub3JkZXIpLFxuICAgICAgICAgICAgcGFyZW50SWR4OiAoY29scykgPT4gaW5kZXgoJ3BhcmVudF9pZHgnKS5vbihjb2xzLnBhcmVudCksXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICAgICAgYmFzZUNvbHVtbnMubG9jYWxlID0gYWRhcHRlci5lbnVtcy5lbnVtX19sb2NhbGVzKCdsb2NhbGUnKS5ub3ROdWxsKClcbiAgICAgICAgICAgIGJhc2VFeHRyYUNvbmZpZy5sb2NhbGVJZHggPSAoY29scykgPT4gaW5kZXgoJ2xvY2FsZV9pZHgnKS5vbihjb2xzLmxvY2FsZSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmllbGQuaW5kZXgpIHtcbiAgICAgICAgICAgIGJhc2VFeHRyYUNvbmZpZy52YWx1ZSA9IChjb2xzKSA9PiBpbmRleCgndmFsdWVfaWR4Jykub24oY29scy52YWx1ZSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBidWlsZFRhYmxlKHtcbiAgICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgICBiYXNlQ29sdW1ucyxcbiAgICAgICAgICAgIGJhc2VFeHRyYUNvbmZpZyxcbiAgICAgICAgICAgIGRpc2FibGVOb3ROdWxsLFxuICAgICAgICAgICAgZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICAgIGZpZWxkczogW10sXG4gICAgICAgICAgICB0YWJsZU5hbWU6IHNlbGVjdFRhYmxlTmFtZSxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgcmVsYXRpb25zVG9CdWlsZC5zZXQoZmllbGROYW1lLCBzZWxlY3RUYWJsZU5hbWUpXG5cbiAgICAgICAgICBjb25zdCBzZWxlY3RUYWJsZVJlbGF0aW9ucyA9IHJlbGF0aW9ucyhhZGFwdGVyLnRhYmxlc1tzZWxlY3RUYWJsZU5hbWVdLCAoeyBvbmUgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBSZWxhdGlvbjxzdHJpbmc+PiA9IHtcbiAgICAgICAgICAgICAgcGFyZW50OiBvbmUoYWRhcHRlci50YWJsZXNbcGFyZW50VGFibGVOYW1lXSwge1xuICAgICAgICAgICAgICAgIGZpZWxkczogW2FkYXB0ZXIudGFibGVzW3NlbGVjdFRhYmxlTmFtZV0ucGFyZW50XSxcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbYWRhcHRlci50YWJsZXNbcGFyZW50VGFibGVOYW1lXS5pZF0sXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGFkYXB0ZXIucmVsYXRpb25zW2ByZWxhdGlvbl8ke3NlbGVjdFRhYmxlTmFtZX1gXSA9IHNlbGVjdFRhYmxlUmVsYXRpb25zXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFyZ2V0VGFibGVbZmllbGROYW1lXSA9IGFkYXB0ZXIuZW51bXNbZW51bU5hbWVdKGZpZWxkTmFtZSlcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdjaGVja2JveCc6IHtcbiAgICAgICAgdGFyZ2V0VGFibGVbZmllbGROYW1lXSA9IGJvb2xlYW4oY29sdW1uTmFtZSlcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnYXJyYXknOiB7XG4gICAgICAgIGNvbnN0IGRpc2FibGVOb3ROdWxsRnJvbUhlcmUgPSBCb29sZWFuKGZpZWxkLmFkbWluPy5jb25kaXRpb24pIHx8IGRpc2FibGVOb3ROdWxsXG5cbiAgICAgICAgY29uc3QgYXJyYXlUYWJsZU5hbWUgPSBgJHtuZXdUYWJsZU5hbWV9XyR7dG9TbmFrZUNhc2UoZmllbGQubmFtZSl9YFxuICAgICAgICBjb25zdCBiYXNlQ29sdW1uczogUmVjb3JkPHN0cmluZywgUGdDb2x1bW5CdWlsZGVyPiA9IHtcbiAgICAgICAgICBfb3JkZXI6IGludGVnZXIoJ19vcmRlcicpLm5vdE51bGwoKSxcbiAgICAgICAgICBfcGFyZW50SUQ6IHBhcmVudElEQ29sdW1uTWFwW3BhcmVudElEQ29sVHlwZV0oJ19wYXJlbnRfaWQnKVxuICAgICAgICAgICAgLnJlZmVyZW5jZXMoKCkgPT4gYWRhcHRlci50YWJsZXNbcGFyZW50VGFibGVOYW1lXS5pZCwgeyBvbkRlbGV0ZTogJ2Nhc2NhZGUnIH0pXG4gICAgICAgICAgICAubm90TnVsbCgpLFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYmFzZUV4dHJhQ29uZmlnOiBSZWNvcmQ8XG4gICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgIChjb2xzOiBHZW5lcmljQ29sdW1ucykgPT4gSW5kZXhCdWlsZGVyIHwgVW5pcXVlQ29uc3RyYWludEJ1aWxkZXJcbiAgICAgICAgPiA9IHtcbiAgICAgICAgICBfb3JkZXJJZHg6IChjb2xzKSA9PiBpbmRleCgnX29yZGVyX2lkeCcpLm9uKGNvbHMuX29yZGVyKSxcbiAgICAgICAgICBfcGFyZW50SURJZHg6IChjb2xzKSA9PiBpbmRleCgnX3BhcmVudF9pZF9pZHgnKS5vbihjb2xzLl9wYXJlbnRJRCksXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgICAgYmFzZUNvbHVtbnMuX2xvY2FsZSA9IGFkYXB0ZXIuZW51bXMuZW51bV9fbG9jYWxlcygnX2xvY2FsZScpLm5vdE51bGwoKVxuICAgICAgICAgIGJhc2VFeHRyYUNvbmZpZy5fbG9jYWxlSWR4ID0gKGNvbHMpID0+IGluZGV4KCdfbG9jYWxlX2lkeCcpLm9uKGNvbHMuX2xvY2FsZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgcmVsYXRpb25zVG9CdWlsZDogc3ViUmVsYXRpb25zVG9CdWlsZCB9ID0gYnVpbGRUYWJsZSh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBiYXNlQ29sdW1ucyxcbiAgICAgICAgICBiYXNlRXh0cmFDb25maWcsXG4gICAgICAgICAgZGlzYWJsZU5vdE51bGw6IGRpc2FibGVOb3ROdWxsRnJvbUhlcmUsXG4gICAgICAgICAgZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICByb290UmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICByb290UmVsYXRpb25zaGlwczogcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICByb290VGFibGVJRENvbFR5cGUsXG4gICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgICB0YWJsZU5hbWU6IGFycmF5VGFibGVOYW1lLFxuICAgICAgICB9KVxuXG4gICAgICAgIHJlbGF0aW9uc1RvQnVpbGQuc2V0KGZpZWxkTmFtZSwgYXJyYXlUYWJsZU5hbWUpXG5cbiAgICAgICAgY29uc3QgYXJyYXlUYWJsZVJlbGF0aW9ucyA9IHJlbGF0aW9ucyhhZGFwdGVyLnRhYmxlc1thcnJheVRhYmxlTmFtZV0sICh7IG1hbnksIG9uZSB9KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBSZWxhdGlvbjxzdHJpbmc+PiA9IHtcbiAgICAgICAgICAgIF9wYXJlbnRJRDogb25lKGFkYXB0ZXIudGFibGVzW3BhcmVudFRhYmxlTmFtZV0sIHtcbiAgICAgICAgICAgICAgZmllbGRzOiBbYWRhcHRlci50YWJsZXNbYXJyYXlUYWJsZU5hbWVdLl9wYXJlbnRJRF0sXG4gICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFthZGFwdGVyLnRhYmxlc1twYXJlbnRUYWJsZU5hbWVdLmlkXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChoYXNMb2NhbGVzVGFibGUoZmllbGQuZmllbGRzKSkge1xuICAgICAgICAgICAgcmVzdWx0Ll9sb2NhbGVzID0gbWFueShhZGFwdGVyLnRhYmxlc1tgJHthcnJheVRhYmxlTmFtZX1fbG9jYWxlc2BdKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHN1YlJlbGF0aW9uc1RvQnVpbGQuZm9yRWFjaCgodmFsLCBrZXkpID0+IHtcbiAgICAgICAgICAgIHJlc3VsdFtrZXldID0gbWFueShhZGFwdGVyLnRhYmxlc1t2YWxdKVxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICAgIH0pXG5cbiAgICAgICAgYWRhcHRlci5yZWxhdGlvbnNbYHJlbGF0aW9uc18ke2FycmF5VGFibGVOYW1lfWBdID0gYXJyYXlUYWJsZVJlbGF0aW9uc1xuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2Jsb2Nrcyc6IHtcbiAgICAgICAgY29uc3QgZGlzYWJsZU5vdE51bGxGcm9tSGVyZSA9IEJvb2xlYW4oZmllbGQuYWRtaW4/LmNvbmRpdGlvbikgfHwgZGlzYWJsZU5vdE51bGxcblxuICAgICAgICBmaWVsZC5ibG9ja3MuZm9yRWFjaCgoYmxvY2spID0+IHtcbiAgICAgICAgICBjb25zdCBibG9ja1RhYmxlTmFtZSA9IGAke3Jvb3RUYWJsZU5hbWV9X2Jsb2Nrc18ke3RvU25ha2VDYXNlKGJsb2NrLnNsdWcpfWBcbiAgICAgICAgICBpZiAoIWFkYXB0ZXIudGFibGVzW2Jsb2NrVGFibGVOYW1lXSkge1xuICAgICAgICAgICAgY29uc3QgYmFzZUNvbHVtbnM6IFJlY29yZDxzdHJpbmcsIFBnQ29sdW1uQnVpbGRlcj4gPSB7XG4gICAgICAgICAgICAgIF9vcmRlcjogaW50ZWdlcignX29yZGVyJykubm90TnVsbCgpLFxuICAgICAgICAgICAgICBfcGFyZW50SUQ6IHBhcmVudElEQ29sdW1uTWFwW3Jvb3RUYWJsZUlEQ29sVHlwZV0oJ19wYXJlbnRfaWQnKVxuICAgICAgICAgICAgICAgIC5yZWZlcmVuY2VzKCgpID0+IGFkYXB0ZXIudGFibGVzW3Jvb3RUYWJsZU5hbWVdLmlkLCB7IG9uRGVsZXRlOiAnY2FzY2FkZScgfSlcbiAgICAgICAgICAgICAgICAubm90TnVsbCgpLFxuICAgICAgICAgICAgICBfcGF0aDogdGV4dCgnX3BhdGgnKS5ub3ROdWxsKCksXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGJhc2VFeHRyYUNvbmZpZzogUmVjb3JkPFxuICAgICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICAgIChjb2xzOiBHZW5lcmljQ29sdW1ucykgPT4gSW5kZXhCdWlsZGVyIHwgVW5pcXVlQ29uc3RyYWludEJ1aWxkZXJcbiAgICAgICAgICAgID4gPSB7XG4gICAgICAgICAgICAgIF9vcmRlcklkeDogKGNvbHMpID0+IGluZGV4KCdvcmRlcl9pZHgnKS5vbihjb2xzLl9vcmRlciksXG4gICAgICAgICAgICAgIF9wYXJlbnRJRElkeDogKGNvbHMpID0+IGluZGV4KCdwYXJlbnRfaWRfaWR4Jykub24oY29scy5fcGFyZW50SUQpLFxuICAgICAgICAgICAgICBfcGF0aElkeDogKGNvbHMpID0+IGluZGV4KCdwYXRoX2lkeCcpLm9uKGNvbHMuX3BhdGgpLFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgICAgICAgIGJhc2VDb2x1bW5zLl9sb2NhbGUgPSBhZGFwdGVyLmVudW1zLmVudW1fX2xvY2FsZXMoJ19sb2NhbGUnKS5ub3ROdWxsKClcbiAgICAgICAgICAgICAgYmFzZUV4dHJhQ29uZmlnLl9sb2NhbGVJZHggPSAoY29scykgPT4gaW5kZXgoJ2xvY2FsZV9pZHgnKS5vbihjb2xzLl9sb2NhbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHsgcmVsYXRpb25zVG9CdWlsZDogc3ViUmVsYXRpb25zVG9CdWlsZCB9ID0gYnVpbGRUYWJsZSh7XG4gICAgICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgICAgIGJhc2VDb2x1bW5zLFxuICAgICAgICAgICAgICBiYXNlRXh0cmFDb25maWcsXG4gICAgICAgICAgICAgIGRpc2FibGVOb3ROdWxsOiBkaXNhYmxlTm90TnVsbEZyb21IZXJlLFxuICAgICAgICAgICAgICBkaXNhYmxlVW5pcXVlLFxuICAgICAgICAgICAgICBmaWVsZHM6IGJsb2NrLmZpZWxkcyxcbiAgICAgICAgICAgICAgcm9vdFJlbGF0aW9uc1RvQnVpbGQsXG4gICAgICAgICAgICAgIHJvb3RSZWxhdGlvbnNoaXBzOiByZWxhdGlvbnNoaXBzLFxuICAgICAgICAgICAgICByb290VGFibGVJRENvbFR5cGUsXG4gICAgICAgICAgICAgIHJvb3RUYWJsZU5hbWUsXG4gICAgICAgICAgICAgIHRhYmxlTmFtZTogYmxvY2tUYWJsZU5hbWUsXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBjb25zdCBibG9ja1RhYmxlUmVsYXRpb25zID0gcmVsYXRpb25zKFxuICAgICAgICAgICAgICBhZGFwdGVyLnRhYmxlc1tibG9ja1RhYmxlTmFtZV0sXG4gICAgICAgICAgICAgICh7IG1hbnksIG9uZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBSZWxhdGlvbjxzdHJpbmc+PiA9IHtcbiAgICAgICAgICAgICAgICAgIF9wYXJlbnRJRDogb25lKGFkYXB0ZXIudGFibGVzW3Jvb3RUYWJsZU5hbWVdLCB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkczogW2FkYXB0ZXIudGFibGVzW2Jsb2NrVGFibGVOYW1lXS5fcGFyZW50SURdLFxuICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbYWRhcHRlci50YWJsZXNbcm9vdFRhYmxlTmFtZV0uaWRdLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGhhc0xvY2FsZXNUYWJsZShibG9jay5maWVsZHMpKSB7XG4gICAgICAgICAgICAgICAgICByZXN1bHQuX2xvY2FsZXMgPSBtYW55KGFkYXB0ZXIudGFibGVzW2Ake2Jsb2NrVGFibGVOYW1lfV9sb2NhbGVzYF0pXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3ViUmVsYXRpb25zVG9CdWlsZC5mb3JFYWNoKCh2YWwsIGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBtYW55KGFkYXB0ZXIudGFibGVzW3ZhbF0pXG4gICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgYWRhcHRlci5yZWxhdGlvbnNbYHJlbGF0aW9uc18ke2Jsb2NrVGFibGVOYW1lfWBdID0gYmxvY2tUYWJsZVJlbGF0aW9uc1xuICAgICAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgdmFsaWRhdGVFeGlzdGluZ0Jsb2NrSXNJZGVudGljYWwoe1xuICAgICAgICAgICAgICBibG9jayxcbiAgICAgICAgICAgICAgbG9jYWxpemVkOiBmaWVsZC5sb2NhbGl6ZWQsXG4gICAgICAgICAgICAgIHJvb3RUYWJsZU5hbWUsXG4gICAgICAgICAgICAgIHRhYmxlOiBhZGFwdGVyLnRhYmxlc1tibG9ja1RhYmxlTmFtZV0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJvb3RSZWxhdGlvbnNUb0J1aWxkLnNldChgX2Jsb2Nrc18ke2Jsb2NrLnNsdWd9YCwgYmxvY2tUYWJsZU5hbWUpXG4gICAgICAgIH0pXG5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAndGFiJzpcbiAgICAgIGNhc2UgJ2dyb3VwJzoge1xuICAgICAgICBpZiAoISgnbmFtZScgaW4gZmllbGQpKSB7XG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgaGFzTG9jYWxpemVkRmllbGQ6IGdyb3VwSGFzTG9jYWxpemVkRmllbGQsXG4gICAgICAgICAgICBoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQ6IGdyb3VwSGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkLFxuICAgICAgICAgICAgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQ6IGdyb3VwSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQsXG4gICAgICAgICAgICBoYXNNYW55TnVtYmVyRmllbGQ6IGdyb3VwSGFzTWFueU51bWJlckZpZWxkLFxuICAgICAgICAgIH0gPSB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgYnVpbGRSZWxhdGlvbnNoaXBzLFxuICAgICAgICAgICAgY29sdW1uUHJlZml4LFxuICAgICAgICAgICAgY29sdW1ucyxcbiAgICAgICAgICAgIGRpc2FibGVOb3ROdWxsLFxuICAgICAgICAgICAgZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICAgIGZpZWxkUHJlZml4LFxuICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICBmb3JjZUxvY2FsaXplZCxcbiAgICAgICAgICAgIGluZGV4ZXMsXG4gICAgICAgICAgICBsb2NhbGVzQ29sdW1ucyxcbiAgICAgICAgICAgIGxvY2FsZXNJbmRleGVzLFxuICAgICAgICAgICAgbmV3VGFibGVOYW1lLFxuICAgICAgICAgICAgcGFyZW50VGFibGVOYW1lLFxuICAgICAgICAgICAgcmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgICByb290UmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICAgIHJvb3RUYWJsZUlEQ29sVHlwZSxcbiAgICAgICAgICAgIHJvb3RUYWJsZU5hbWUsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGlmIChncm91cEhhc0xvY2FsaXplZEZpZWxkKSBoYXNMb2NhbGl6ZWRGaWVsZCA9IHRydWVcbiAgICAgICAgICBpZiAoZ3JvdXBIYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCkgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQgPSB0cnVlXG4gICAgICAgICAgaWYgKGdyb3VwSGFzTWFueU51bWJlckZpZWxkKSBoYXNNYW55TnVtYmVyRmllbGQgPSB0cnVlXG4gICAgICAgICAgaWYgKGdyb3VwSGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkKSBoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQgPSB0cnVlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRpc2FibGVOb3ROdWxsRnJvbUhlcmUgPSBCb29sZWFuKGZpZWxkLmFkbWluPy5jb25kaXRpb24pIHx8IGRpc2FibGVOb3ROdWxsXG5cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIGhhc0xvY2FsaXplZEZpZWxkOiBncm91cEhhc0xvY2FsaXplZEZpZWxkLFxuICAgICAgICAgIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZDogZ3JvdXBIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQ6IGdyb3VwSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQsXG4gICAgICAgICAgaGFzTWFueU51bWJlckZpZWxkOiBncm91cEhhc01hbnlOdW1iZXJGaWVsZCxcbiAgICAgICAgfSA9IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgIGJ1aWxkUmVsYXRpb25zaGlwcyxcbiAgICAgICAgICBjb2x1bW5QcmVmaXg6IGAke2NvbHVtbk5hbWV9X2AsXG4gICAgICAgICAgY29sdW1ucyxcbiAgICAgICAgICBkaXNhYmxlTm90TnVsbDogZGlzYWJsZU5vdE51bGxGcm9tSGVyZSxcbiAgICAgICAgICBkaXNhYmxlVW5pcXVlLFxuICAgICAgICAgIGZpZWxkUHJlZml4OiBgJHtmaWVsZE5hbWV9X2AsXG4gICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgZm9yY2VMb2NhbGl6ZWQ6IGZpZWxkLmxvY2FsaXplZCxcbiAgICAgICAgICBpbmRleGVzLFxuICAgICAgICAgIGxvY2FsZXNDb2x1bW5zLFxuICAgICAgICAgIGxvY2FsZXNJbmRleGVzLFxuICAgICAgICAgIG5ld1RhYmxlTmFtZTogYCR7cGFyZW50VGFibGVOYW1lfV8ke2NvbHVtbk5hbWV9YCxcbiAgICAgICAgICBwYXJlbnRUYWJsZU5hbWUsXG4gICAgICAgICAgcmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICByZWxhdGlvbnNoaXBzLFxuICAgICAgICAgIHJvb3RSZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgIHJvb3RUYWJsZUlEQ29sVHlwZSxcbiAgICAgICAgICByb290VGFibGVOYW1lLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChncm91cEhhc0xvY2FsaXplZEZpZWxkKSBoYXNMb2NhbGl6ZWRGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKGdyb3VwSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQpIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkID0gdHJ1ZVxuICAgICAgICBpZiAoZ3JvdXBIYXNNYW55TnVtYmVyRmllbGQpIGhhc01hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKGdyb3VwSGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkKSBoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQgPSB0cnVlXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3RhYnMnOiB7XG4gICAgICAgIGNvbnN0IGRpc2FibGVOb3ROdWxsRnJvbUhlcmUgPSBCb29sZWFuKGZpZWxkLmFkbWluPy5jb25kaXRpb24pIHx8IGRpc2FibGVOb3ROdWxsXG5cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIGhhc0xvY2FsaXplZEZpZWxkOiB0YWJIYXNMb2NhbGl6ZWRGaWVsZCxcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQ6IHRhYkhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCxcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZDogdGFiSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQsXG4gICAgICAgICAgaGFzTWFueU51bWJlckZpZWxkOiB0YWJIYXNNYW55TnVtYmVyRmllbGQsXG4gICAgICAgIH0gPSB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBidWlsZFJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgY29sdW1uUHJlZml4LFxuICAgICAgICAgIGNvbHVtbnMsXG4gICAgICAgICAgZGlzYWJsZU5vdE51bGw6IGRpc2FibGVOb3ROdWxsRnJvbUhlcmUsXG4gICAgICAgICAgZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICBmaWVsZFByZWZpeCxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLnRhYnMubWFwKCh0YWIpID0+ICh7IC4uLnRhYiwgdHlwZTogJ3RhYicgfSkpLFxuICAgICAgICAgIGZvcmNlTG9jYWxpemVkLFxuICAgICAgICAgIGluZGV4ZXMsXG4gICAgICAgICAgbG9jYWxlc0NvbHVtbnMsXG4gICAgICAgICAgbG9jYWxlc0luZGV4ZXMsXG4gICAgICAgICAgbmV3VGFibGVOYW1lLFxuICAgICAgICAgIHBhcmVudFRhYmxlTmFtZSxcbiAgICAgICAgICByZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgcm9vdFJlbGF0aW9uc1RvQnVpbGQsXG4gICAgICAgICAgcm9vdFRhYmxlSURDb2xUeXBlLFxuICAgICAgICAgIHJvb3RUYWJsZU5hbWUsXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKHRhYkhhc0xvY2FsaXplZEZpZWxkKSBoYXNMb2NhbGl6ZWRGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKHRhYkhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkKSBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKHRhYkhhc01hbnlOdW1iZXJGaWVsZCkgaGFzTWFueU51bWJlckZpZWxkID0gdHJ1ZVxuICAgICAgICBpZiAodGFiSGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkKSBoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQgPSB0cnVlXG5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAncm93JzpcbiAgICAgIGNhc2UgJ2NvbGxhcHNpYmxlJzoge1xuICAgICAgICBjb25zdCBkaXNhYmxlTm90TnVsbEZyb21IZXJlID0gQm9vbGVhbihmaWVsZC5hZG1pbj8uY29uZGl0aW9uKSB8fCBkaXNhYmxlTm90TnVsbFxuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgaGFzTG9jYWxpemVkRmllbGQ6IHJvd0hhc0xvY2FsaXplZEZpZWxkLFxuICAgICAgICAgIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZDogcm93SGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkLFxuICAgICAgICAgIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkOiByb3dIYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCxcbiAgICAgICAgICBoYXNNYW55TnVtYmVyRmllbGQ6IHJvd0hhc01hbnlOdW1iZXJGaWVsZCxcbiAgICAgICAgfSA9IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgIGJ1aWxkUmVsYXRpb25zaGlwcyxcbiAgICAgICAgICBjb2x1bW5QcmVmaXgsXG4gICAgICAgICAgY29sdW1ucyxcbiAgICAgICAgICBkaXNhYmxlTm90TnVsbDogZGlzYWJsZU5vdE51bGxGcm9tSGVyZSxcbiAgICAgICAgICBkaXNhYmxlVW5pcXVlLFxuICAgICAgICAgIGZpZWxkUHJlZml4LFxuICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgIGZvcmNlTG9jYWxpemVkLFxuICAgICAgICAgIGluZGV4ZXMsXG4gICAgICAgICAgbG9jYWxlc0NvbHVtbnMsXG4gICAgICAgICAgbG9jYWxlc0luZGV4ZXMsXG4gICAgICAgICAgbmV3VGFibGVOYW1lOiBwYXJlbnRUYWJsZU5hbWUsXG4gICAgICAgICAgcGFyZW50VGFibGVOYW1lLFxuICAgICAgICAgIHJlbGF0aW9uc1RvQnVpbGQsXG4gICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICByb290UmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICByb290VGFibGVJRENvbFR5cGUsXG4gICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAocm93SGFzTG9jYWxpemVkRmllbGQpIGhhc0xvY2FsaXplZEZpZWxkID0gdHJ1ZVxuICAgICAgICBpZiAocm93SGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQpIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkID0gdHJ1ZVxuICAgICAgICBpZiAocm93SGFzTWFueU51bWJlckZpZWxkKSBoYXNNYW55TnVtYmVyRmllbGQgPSB0cnVlXG4gICAgICAgIGlmIChyb3dIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQpIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAncmVsYXRpb25zaGlwJzpcbiAgICAgIGNhc2UgJ3VwbG9hZCc6XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkLnJlbGF0aW9uVG8pKSB7XG4gICAgICAgICAgZmllbGQucmVsYXRpb25Uby5mb3JFYWNoKChyZWxhdGlvbikgPT4gcmVsYXRpb25zaGlwcy5hZGQocmVsYXRpb24pKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlbGF0aW9uc2hpcHMuYWRkKGZpZWxkLnJlbGF0aW9uVG8pXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgICAgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjb25zdCBjb25kaXRpb24gPSBmaWVsZC5hZG1pbiAmJiBmaWVsZC5hZG1pbi5jb25kaXRpb25cblxuICAgIGlmIChcbiAgICAgICFkaXNhYmxlTm90TnVsbCAmJlxuICAgICAgdGFyZ2V0VGFibGVbZmllbGROYW1lXSAmJlxuICAgICAgJ3JlcXVpcmVkJyBpbiBmaWVsZCAmJlxuICAgICAgZmllbGQucmVxdWlyZWQgJiZcbiAgICAgICFjb25kaXRpb25cbiAgICApIHtcbiAgICAgIHRhcmdldFRhYmxlW2ZpZWxkTmFtZV0ubm90TnVsbCgpXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgaGFzTG9jYWxpemVkRmllbGQsXG4gICAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkLFxuICAgIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkLFxuICAgIGhhc01hbnlOdW1iZXJGaWVsZCxcbiAgfVxufVxuIl0sIm5hbWVzIjpbInRyYXZlcnNlRmllbGRzIiwiYWRhcHRlciIsImJ1aWxkUmVsYXRpb25zaGlwcyIsImNvbHVtblByZWZpeCIsImNvbHVtbnMiLCJkaXNhYmxlTm90TnVsbCIsImRpc2FibGVVbmlxdWUiLCJmaWVsZFByZWZpeCIsImZpZWxkcyIsImZvcmNlTG9jYWxpemVkIiwiaW5kZXhlcyIsImxvY2FsZXNDb2x1bW5zIiwibG9jYWxlc0luZGV4ZXMiLCJuZXdUYWJsZU5hbWUiLCJwYXJlbnRUYWJsZU5hbWUiLCJyZWxhdGlvbnNUb0J1aWxkIiwicmVsYXRpb25zaGlwcyIsInJvb3RSZWxhdGlvbnNUb0J1aWxkIiwicm9vdFRhYmxlSURDb2xUeXBlIiwicm9vdFRhYmxlTmFtZSIsImhhc0xvY2FsaXplZEZpZWxkIiwiaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQiLCJoYXNNYW55TnVtYmVyRmllbGQiLCJoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQiLCJwYXJlbnRJRENvbFR5cGUiLCJpZCIsIlBnTnVtZXJpY0J1aWxkZXIiLCJQZ1ZhcmNoYXJCdWlsZGVyIiwiZm9yRWFjaCIsImZpZWxkIiwibmFtZSIsImNvbHVtbk5hbWUiLCJmaWVsZE5hbWUiLCJ0YXJnZXRUYWJsZSIsInRhcmdldEluZGV4ZXMiLCJmaWVsZEFmZmVjdHNEYXRhIiwidG9TbmFrZUNhc2UiLCJwYXlsb2FkIiwiY29uZmlnIiwibG9jYWxpemF0aW9uIiwibG9jYWxpemVkIiwidW5pcXVlIiwiaW5kZXgiLCJpbmNsdWRlcyIsInR5cGUiLCJoYXNNYW55IiwiY3JlYXRlSW5kZXgiLCJ2YXJjaGFyIiwiSW52YWxpZENvbmZpZ3VyYXRpb24iLCJudW1lcmljIiwianNvbmIiLCJ0aW1lc3RhbXAiLCJtb2RlIiwicHJlY2lzaW9uIiwid2l0aFRpbWV6b25lIiwiZW51bU5hbWUiLCJlbnVtcyIsInBnRW51bSIsIm9wdGlvbnMiLCJtYXAiLCJvcHRpb24iLCJvcHRpb25Jc09iamVjdCIsInZhbHVlIiwic2VsZWN0VGFibGVOYW1lIiwiYmFzZUNvbHVtbnMiLCJvcmRlciIsImludGVnZXIiLCJub3ROdWxsIiwicGFyZW50IiwicGFyZW50SURDb2x1bW5NYXAiLCJyZWZlcmVuY2VzIiwidGFibGVzIiwib25EZWxldGUiLCJiYXNlRXh0cmFDb25maWciLCJvcmRlcklkeCIsImNvbHMiLCJvbiIsInBhcmVudElkeCIsImxvY2FsZSIsImVudW1fX2xvY2FsZXMiLCJsb2NhbGVJZHgiLCJidWlsZFRhYmxlIiwidGFibGVOYW1lIiwic2V0Iiwic2VsZWN0VGFibGVSZWxhdGlvbnMiLCJyZWxhdGlvbnMiLCJvbmUiLCJyZXN1bHQiLCJib29sZWFuIiwiZGlzYWJsZU5vdE51bGxGcm9tSGVyZSIsIkJvb2xlYW4iLCJhZG1pbiIsImNvbmRpdGlvbiIsImFycmF5VGFibGVOYW1lIiwiX29yZGVyIiwiX3BhcmVudElEIiwiX29yZGVySWR4IiwiX3BhcmVudElESWR4IiwiX2xvY2FsZSIsIl9sb2NhbGVJZHgiLCJzdWJSZWxhdGlvbnNUb0J1aWxkIiwicm9vdFJlbGF0aW9uc2hpcHMiLCJhcnJheVRhYmxlUmVsYXRpb25zIiwibWFueSIsImhhc0xvY2FsZXNUYWJsZSIsIl9sb2NhbGVzIiwidmFsIiwia2V5IiwiYmxvY2tzIiwiYmxvY2siLCJibG9ja1RhYmxlTmFtZSIsInNsdWciLCJfcGF0aCIsInRleHQiLCJfcGF0aElkeCIsImJsb2NrVGFibGVSZWxhdGlvbnMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ2YWxpZGF0ZUV4aXN0aW5nQmxvY2tJc0lkZW50aWNhbCIsInRhYmxlIiwiZ3JvdXBIYXNMb2NhbGl6ZWRGaWVsZCIsImdyb3VwSGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkIiwiZ3JvdXBIYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCIsImdyb3VwSGFzTWFueU51bWJlckZpZWxkIiwidGFiSGFzTG9jYWxpemVkRmllbGQiLCJ0YWJIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQiLCJ0YWJIYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCIsInRhYkhhc01hbnlOdW1iZXJGaWVsZCIsInRhYnMiLCJ0YWIiLCJyb3dIYXNMb2NhbGl6ZWRGaWVsZCIsInJvd0hhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCIsInJvd0hhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkIiwicm93SGFzTWFueU51bWJlckZpZWxkIiwiQXJyYXkiLCJpc0FycmF5IiwicmVsYXRpb25UbyIsInJlbGF0aW9uIiwiYWRkIiwicmVxdWlyZWQiXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQzs7OzsrQkE0RHZCQTs7O2VBQUFBOzs7NEJBdkRhO3dCQWFuQjt3QkFDOEI7dUJBQ1k7b0VBQ3pCO2lDQUlRO3VCQUNMOzZCQUNDO21DQUNNO2tEQUNlOzs7Ozs7QUErQjFDLE1BQU1BLGlCQUFpQixDQUFDLEVBQzdCQyxPQUFPLEVBQ1BDLGtCQUFrQixFQUNsQkMsWUFBWSxFQUNaQyxPQUFPLEVBQ1BDLGNBQWMsRUFDZEMsZ0JBQWdCLEtBQUssRUFDckJDLFdB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/db-postgres",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "The officially supported Postgres database adapter for Payload",
5
5
  "repository": "https://github.com/payloadcms/payload",
6
6
  "license": "MIT",
@@ -25,7 +25,7 @@
25
25
  "@types/pg": "8.10.2",
26
26
  "@types/to-snake-case": "1.0.0",
27
27
  "@payloadcms/eslint-config": "0.0.1",
28
- "payload": "2.0.5"
28
+ "payload": "2.0.6"
29
29
  },
30
30
  "peerDependencies": {
31
31
  "better-sqlite3": "^8.5.0"