@payloadcms/db-postgres 0.1.0-beta.8 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. package/README.md +32 -0
  2. package/dist/connect.d.ts.map +1 -1
  3. package/dist/connect.js +28 -21
  4. package/dist/createMigration.d.ts.map +1 -1
  5. package/dist/createMigration.js +29 -19
  6. package/dist/createVersion.js +2 -2
  7. package/dist/extendViteConfig.d.ts +4 -0
  8. package/dist/extendViteConfig.d.ts.map +1 -0
  9. package/dist/extendViteConfig.js +38 -0
  10. package/dist/extendWebpackConfig.d.ts +4 -0
  11. package/dist/extendWebpackConfig.d.ts.map +1 -0
  12. package/dist/extendWebpackConfig.js +45 -0
  13. package/dist/find/buildFindManyArgs.js +3 -3
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +16 -5
  16. package/dist/init.d.ts.map +1 -1
  17. package/dist/init.js +2 -4
  18. package/dist/migrate.d.ts.map +1 -1
  19. package/dist/migrate.js +63 -39
  20. package/dist/migrateDown.d.ts +3 -0
  21. package/dist/migrateDown.d.ts.map +1 -0
  22. package/dist/migrateDown.js +71 -0
  23. package/dist/migrateFresh.d.ts +6 -0
  24. package/dist/migrateFresh.d.ts.map +1 -0
  25. package/dist/migrateFresh.js +81 -0
  26. package/dist/migrateRefresh.d.ts +6 -0
  27. package/dist/migrateRefresh.d.ts.map +1 -0
  28. package/dist/migrateRefresh.js +109 -0
  29. package/dist/migrateReset.d.ts +6 -0
  30. package/dist/migrateReset.d.ts.map +1 -0
  31. package/dist/migrateReset.js +89 -0
  32. package/dist/queries/getTableColumnFromPath.js +2 -2
  33. package/dist/schema/build.d.ts +2 -1
  34. package/dist/schema/build.d.ts.map +1 -1
  35. package/dist/schema/build.js +15 -12
  36. package/dist/schema/createIndex.d.ts +1 -1
  37. package/dist/schema/createIndex.d.ts.map +1 -1
  38. package/dist/schema/createIndex.js +12 -3
  39. package/dist/schema/traverseFields.d.ts.map +1 -1
  40. package/dist/schema/traverseFields.js +21 -16
  41. package/dist/transform/read/index.js +4 -4
  42. package/dist/types.d.ts +8 -5
  43. package/dist/types.d.ts.map +1 -1
  44. package/dist/update.d.ts.map +1 -1
  45. package/dist/update.js +51 -5
  46. package/dist/upsertRow/index.js +2 -2
  47. package/dist/utilities/createMigrationTable.d.ts.map +1 -1
  48. package/dist/utilities/createMigrationTable.js +1 -2
  49. package/dist/utilities/parseError.d.ts +5 -0
  50. package/dist/utilities/parseError.d.ts.map +1 -0
  51. package/dist/utilities/parseError.js +24 -0
  52. package/mock.js +1 -0
  53. package/package.json +5 -4
  54. package/src/index.ts +18 -5
  55. package/dist/mock.js +0 -13
  56. package/dist/webpack.d.ts +0 -3
  57. package/dist/webpack.d.ts.map +0 -1
  58. package/dist/webpack.js +0 -32
@@ -120,6 +120,7 @@ const traverseFields = ({ adapter, buildRelationships, columnPrefix, columns, di
120
120
  return option;
121
121
  }));
122
122
  if (field.type === 'select' && field.hasMany) {
123
+ const selectTableName = `${newTableName}_${(0, _tosnakecase.default)(fieldName)}`;
123
124
  const baseColumns = {
124
125
  order: (0, _pgcore.integer)('order').notNull(),
125
126
  parent: _parentIDColumnMap.parentIDColumnMap[parentIDColType]('parent_id').references(()=>adapter.tables[parentTableName].id, {
@@ -127,18 +128,17 @@ const traverseFields = ({ adapter, buildRelationships, columnPrefix, columns, di
127
128
  }).notNull(),
128
129
  value: adapter.enums[enumName]('value')
129
130
  };
130
- const baseExtraConfig = {};
131
+ const baseExtraConfig = {
132
+ orderIdx: (cols)=>(0, _pgcore.index)('order_idx').on(cols.order),
133
+ parentIdx: (cols)=>(0, _pgcore.index)('parent_idx').on(cols.parent)
134
+ };
131
135
  if (field.localized) {
132
136
  baseColumns.locale = adapter.enums.enum__locales('locale').notNull();
133
- baseExtraConfig.parentOrderLocale = (cols)=>(0, _pgcore.unique)().on(cols.parent, cols.order, cols.locale);
134
- } else {
135
- baseExtraConfig.parent = (cols)=>(0, _pgcore.index)('parent_idx').on(cols.parent);
136
- baseExtraConfig.order = (cols)=>(0, _pgcore.index)('order_idx').on(cols.order);
137
+ baseExtraConfig.localeIdx = (cols)=>(0, _pgcore.index)('locale_idx').on(cols.locale);
137
138
  }
138
139
  if (field.index) {
139
140
  baseExtraConfig.value = (cols)=>(0, _pgcore.index)('value_idx').on(cols.value);
140
141
  }
141
- const selectTableName = `${newTableName}_${(0, _tosnakecase.default)(fieldName)}`;
142
142
  (0, _build.buildTable)({
143
143
  adapter,
144
144
  baseColumns,
@@ -174,20 +174,21 @@ const traverseFields = ({ adapter, buildRelationships, columnPrefix, columns, di
174
174
  }
175
175
  case 'array':
176
176
  {
177
+ const arrayTableName = `${newTableName}_${(0, _tosnakecase.default)(field.name)}`;
177
178
  const baseColumns = {
178
179
  _order: (0, _pgcore.integer)('_order').notNull(),
179
180
  _parentID: _parentIDColumnMap.parentIDColumnMap[parentIDColType]('_parent_id').references(()=>adapter.tables[parentTableName].id, {
180
181
  onDelete: 'cascade'
181
182
  }).notNull()
182
183
  };
183
- const baseExtraConfig = {};
184
+ const baseExtraConfig = {
185
+ _orderIdx: (cols)=>(0, _pgcore.index)('_order_idx').on(cols._order),
186
+ _parentIDIdx: (cols)=>(0, _pgcore.index)('_parent_id_idx').on(cols._parentID)
187
+ };
184
188
  if (field.localized && adapter.payload.config.localization) {
185
189
  baseColumns._locale = adapter.enums.enum__locales('_locale').notNull();
186
- baseExtraConfig._parentOrderLocale = (cols)=>(0, _pgcore.unique)().on(cols._parentID, cols._order, cols._locale);
187
- } else {
188
- baseExtraConfig._parentOrder = (cols)=>(0, _pgcore.unique)().on(cols._parentID, cols._order);
190
+ baseExtraConfig._localeIdx = (cols)=>(0, _pgcore.index)('_locale_idx').on(cols._locale);
189
191
  }
190
- const arrayTableName = `${newTableName}_${(0, _tosnakecase.default)(field.name)}`;
191
192
  const { relationsToBuild: subRelationsToBuild } = (0, _build.buildTable)({
192
193
  adapter,
193
194
  baseColumns,
@@ -195,6 +196,7 @@ const traverseFields = ({ adapter, buildRelationships, columnPrefix, columns, di
195
196
  disableUnique,
196
197
  fields: field.fields,
197
198
  rootRelationsToBuild,
199
+ rootRelationships: relationships,
198
200
  rootTableIDColType,
199
201
  rootTableName,
200
202
  tableName: arrayTableName
@@ -234,12 +236,14 @@ const traverseFields = ({ adapter, buildRelationships, columnPrefix, columns, di
234
236
  }).notNull(),
235
237
  _path: (0, _pgcore.text)('_path').notNull()
236
238
  };
237
- const baseExtraConfig = {};
239
+ const baseExtraConfig = {
240
+ _orderIdx: (cols)=>(0, _pgcore.index)('order_idx').on(cols._order),
241
+ _parentIDIdx: (cols)=>(0, _pgcore.index)('parent_id_idx').on(cols._parentID),
242
+ _pathIdx: (cols)=>(0, _pgcore.index)('path_idx').on(cols._path)
243
+ };
238
244
  if (field.localized && adapter.payload.config.localization) {
239
245
  baseColumns._locale = adapter.enums.enum__locales('_locale').notNull();
240
- baseExtraConfig._parentPathOrderLocale = (cols)=>(0, _pgcore.unique)().on(cols._parentID, cols._path, cols._order, cols._locale);
241
- } else {
242
- baseExtraConfig._parentPathOrder = (cols)=>(0, _pgcore.unique)().on(cols._parentID, cols._path, cols._order);
246
+ baseExtraConfig._localeIdx = (cols)=>(0, _pgcore.index)('locale_idx').on(cols._locale);
243
247
  }
244
248
  const { relationsToBuild: subRelationsToBuild } = (0, _build.buildTable)({
245
249
  adapter,
@@ -248,6 +252,7 @@ const traverseFields = ({ adapter, buildRelationships, columnPrefix, columns, di
248
252
  disableUnique,
249
253
  fields: block.fields,
250
254
  rootRelationsToBuild,
255
+ rootRelationships: relationships,
251
256
  rootTableIDColType,
252
257
  rootTableName,
253
258
  tableName: blockTableName
@@ -427,4 +432,4 @@ const traverseFields = ({ adapter, buildRelationships, columnPrefix, columns, di
427
432
  };
428
433
  };
429
434
 
430
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvdHJhdmVyc2VGaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgUmVsYXRpb24gfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB0eXBlIHsgSW5kZXhCdWlsZGVyLCBQZ0NvbHVtbkJ1aWxkZXIsIFVuaXF1ZUNvbnN0cmFpbnRCdWlsZGVyIH0gZnJvbSAnZHJpenpsZS1vcm0vcGctY29yZSdcbmltcG9ydCB0eXBlIHsgRmllbGQsIFRhYkFzRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyByZWxhdGlvbnMgfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB7XG4gIFBnTnVtZXJpY0J1aWxkZXIsXG4gIFBnVmFyY2hhckJ1aWxkZXIsXG4gIGJvb2xlYW4sXG4gIGluZGV4LFxuICBpbnRlZ2VyLFxuICBqc29uYixcbiAgbnVtZXJpYyxcbiAgcGdFbnVtLFxuICB0ZXh0LFxuICB0aW1lc3RhbXAsXG4gIHVuaXF1ZSxcbiAgdmFyY2hhcixcbn0gZnJvbSAnZHJpenpsZS1vcm0vcGctY29yZSdcbmltcG9ydCB7IEludmFsaWRDb25maWd1cmF0aW9uIH0gZnJvbSAncGF5bG9hZC9lcnJvcnMnXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhLCBvcHRpb25Jc09iamVjdCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5pbXBvcnQgdG9TbmFrZUNhc2UgZnJvbSAndG8tc25ha2UtY2FzZSdcblxuaW1wb3J0IHR5cGUgeyBHZW5lcmljQ29sdW1ucywgUG9zdGdyZXNBZGFwdGVyIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IGhhc0xvY2FsZXNUYWJsZSB9IGZyb20gJy4uL3V0aWxpdGllcy9oYXNMb2NhbGVzVGFibGUnXG5pbXBvcnQgeyBidWlsZFRhYmxlIH0gZnJvbSAnLi9idWlsZCdcbmltcG9ydCB7IGNyZWF0ZUluZGV4IH0gZnJvbSAnLi9jcmVhdGVJbmRleCdcbmltcG9ydCB7IHBhcmVudElEQ29sdW1uTWFwIH0gZnJvbSAnLi9wYXJlbnRJRENvbHVtbk1hcCdcbmltcG9ydCB7IHZhbGlkYXRlRXhpc3RpbmdCbG9ja0lzSWRlbnRpY2FsIH0gZnJvbSAnLi92YWxpZGF0ZUV4aXN0aW5nQmxvY2tJc0lkZW50aWNhbCdcblxudHlwZSBBcmdzID0ge1xuICBhZGFwdGVyOiBQb3N0Z3Jlc0FkYXB0ZXJcbiAgYnVpbGRSZWxhdGlvbnNoaXBzOiBib29sZWFuXG4gIGNvbHVtblByZWZpeD86IHN0cmluZ1xuICBjb2x1bW5zOiBSZWNvcmQ8c3RyaW5nLCBQZ0NvbHVtbkJ1aWxkZXI+XG4gIGRpc2FibGVVbmlxdWU/OiBib29sZWFuXG4gIGZpZWxkUHJlZml4Pzogc3RyaW5nXG4gIGZpZWxkczogKEZpZWxkIHwgVGFiQXNGaWVsZClbXVxuICBmb3JjZUxvY2FsaXplZD86IGJvb2xlYW5cbiAgaW5kZXhlczogUmVjb3JkPHN0cmluZywgKGNvbHM6IEdlbmVyaWNDb2x1bW5zKSA9PiBJbmRleEJ1aWxkZXI+XG4gIGxvY2FsZXNDb2x1bW5zOiBSZWNvcmQ8c3RyaW5nLCBQZ0NvbHVtbkJ1aWxkZXI+XG4gIGxvY2FsZXNJbmRleGVzOiBSZWNvcmQ8c3RyaW5nLCAoY29sczogR2VuZXJpY0NvbHVtbnMpID0+IEluZGV4QnVpbGRlcj5cbiAgbmV3VGFibGVOYW1lOiBzdHJpbmdcbiAgcGFyZW50VGFibGVOYW1lOiBzdHJpbmdcbiAgcmVsYXRpb25zVG9CdWlsZDogTWFwPHN0cmluZywgc3RyaW5nPlxuICByZWxhdGlvbnNoaXBzOiBTZXQ8c3RyaW5nPlxuICByb290UmVsYXRpb25zVG9CdWlsZD86IE1hcDxzdHJpbmcsIHN0cmluZz5cbiAgcm9vdFRhYmxlSURDb2xUeXBlOiBzdHJpbmdcbiAgcm9vdFRhYmxlTmFtZTogc3RyaW5nXG59XG5cbnR5cGUgUmVzdWx0ID0ge1xuICBoYXNMb2NhbGl6ZWRGaWVsZDogYm9vbGVhblxuICBoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQ6IGJvb2xlYW5cbiAgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQ6IGJvb2xlYW5cbiAgaGFzTWFueU51bWJlckZpZWxkOiAnaW5kZXgnIHwgYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgdHJhdmVyc2VGaWVsZHMgPSAoe1xuICBhZGFwdGVyLFxuICBidWlsZFJlbGF0aW9uc2hpcHMsXG4gIGNvbHVtblByZWZpeCxcbiAgY29sdW1ucyxcbiAgZGlzYWJsZVVuaXF1ZSA9IGZhbHNlLFxuICBmaWVsZFByZWZpeCxcbiAgZmllbGRzLFxuICBmb3JjZUxvY2FsaXplZCxcbiAgaW5kZXhlcyxcbiAgbG9jYWxlc0NvbHVtbnMsXG4gIGxvY2FsZXNJbmRleGVzLFxuICBuZXdUYWJsZU5hbWUsXG4gIHBhcmVudFRhYmxlTmFtZSxcbiAgcmVsYXRpb25zVG9CdWlsZCxcbiAgcmVsYXRpb25zaGlwcyxcbiAgcm9vdFJlbGF0aW9uc1RvQnVpbGQsXG4gIHJvb3RUYWJsZUlEQ29sVHlwZSxcbiAgcm9vdFRhYmxlTmFtZSxcbn06IEFyZ3MpOiBSZXN1bHQgPT4ge1xuICBsZXQgaGFzTG9jYWxpemVkRmllbGQgPSBmYWxzZVxuICBsZXQgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQgPSBmYWxzZVxuICBsZXQgaGFzTWFueU51bWJlckZpZWxkOiAnaW5kZXgnIHwgYm9vbGVhbiA9IGZhbHNlXG4gIGxldCBoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQgPSBmYWxzZVxuXG4gIGxldCBwYXJlbnRJRENvbFR5cGUgPSAnaW50ZWdlcidcbiAgaWYgKGNvbHVtbnMuaWQgaW5zdGFuY2VvZiBQZ051bWVyaWNCdWlsZGVyKSBwYXJlbnRJRENvbFR5cGUgPSAnbnVtZXJpYydcbiAgaWYgKGNvbHVtbnMuaWQgaW5zdGFuY2VvZiBQZ1ZhcmNoYXJCdWlsZGVyKSBwYXJlbnRJRENvbFR5cGUgPSAndmFyY2hhcidcblxuICBmaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICBpZiAoJ25hbWUnIGluIGZpZWxkICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpIHJldHVyblxuICAgIGxldCBjb2x1bW5OYW1lOiBzdHJpbmdcbiAgICBsZXQgZmllbGROYW1lOiBzdHJpbmdcblxuICAgIGxldCB0YXJnZXRUYWJsZSA9IGNvbHVtbnNcbiAgICBsZXQgdGFyZ2V0SW5kZXhlcyA9IGluZGV4ZXNcblxuICAgIGlmIChmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSkge1xuICAgICAgY29sdW1uTmFtZSA9IGAke2NvbHVtblByZWZpeCB8fCAnJ30ke2ZpZWxkLm5hbWVbMF0gPT09ICdfJyA/ICdfJyA6ICcnfSR7dG9TbmFrZUNhc2UoXG4gICAgICAgIGZpZWxkLm5hbWUsXG4gICAgICApfWBcbiAgICAgIGZpZWxkTmFtZSA9IGAke2ZpZWxkUHJlZml4IHx8ICcnfSR7ZmllbGQubmFtZX1gXG5cbiAgICAgIC8vIElmIGZpZWxkIGlzIGxvY2FsaXplZCxcbiAgICAgIC8vIGFkZCB0aGUgY29sdW1uIHRvIHRoZSBsb2NhbGUgdGFibGUgaW5zdGVhZCBvZiBtYWluIHRhYmxlXG4gICAgICBpZiAoYWRhcHRlci5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24gJiYgKGZpZWxkLmxvY2FsaXplZCB8fCBmb3JjZUxvY2FsaXplZCkpIHtcbiAgICAgICAgaGFzTG9jYWxpemVkRmllbGQgPSB0cnVlXG4gICAgICAgIHRhcmdldFRhYmxlID0gbG9jYWxlc0NvbHVtbnNcbiAgICAgICAgdGFyZ2V0SW5kZXhlcyA9IGxvY2FsZXNJbmRleGVzXG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgKGZpZWxkLnVuaXF1ZSB8fCBmaWVsZC5pbmRleCkgJiZcbiAgICAgICAgIVsnYXJyYXknLCAnYmxvY2tzJywgJ2dyb3VwJywgJ3BvaW50JywgJ3JlbGF0aW9uc2hpcCcsICd1cGxvYWQnXS5pbmNsdWRlcyhmaWVsZC50eXBlKSAmJlxuICAgICAgICAhKGZpZWxkLnR5cGUgPT09ICdudW1iZXInICYmIGZpZWxkLmhhc01hbnkgPT09IHRydWUpXG4gICAgICApIHtcbiAgICAgICAgdGFyZ2V0SW5kZXhlc1tgJHtmaWVsZC5uYW1lfUlkeGBdID0gY3JlYXRlSW5kZXgoe1xuICAgICAgICAgIG5hbWU6IGZpZWxkTmFtZSxcbiAgICAgICAgICBjb2x1bW5OYW1lLFxuICAgICAgICAgIHVuaXF1ZTogZGlzYWJsZVVuaXF1ZSAhPT0gdHJ1ZSAmJiBmaWVsZC51bmlxdWUsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICBjYXNlICd0ZXh0JzpcbiAgICAgIGNhc2UgJ2VtYWlsJzpcbiAgICAgIGNhc2UgJ2NvZGUnOlxuICAgICAgY2FzZSAndGV4dGFyZWEnOiB7XG4gICAgICAgIHRhcmdldFRhYmxlW2ZpZWxkTmFtZV0gPSB2YXJjaGFyKGNvbHVtbk5hbWUpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ251bWJlcic6IHtcbiAgICAgICAgaWYgKGZpZWxkLmhhc01hbnkpIHtcbiAgICAgICAgICBpZiAoZmllbGQubG9jYWxpemVkKSB7XG4gICAgICAgICAgICBoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQgPSB0cnVlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGZpZWxkLmluZGV4KSB7XG4gICAgICAgICAgICBoYXNNYW55TnVtYmVyRmllbGQgPSAnaW5kZXgnXG4gICAgICAgICAgfSBlbHNlIGlmICghaGFzTWFueU51bWJlckZpZWxkKSB7XG4gICAgICAgICAgICBoYXNNYW55TnVtYmVyRmllbGQgPSB0cnVlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGZpZWxkLnVuaXF1ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRDb25maWd1cmF0aW9uKFxuICAgICAgICAgICAgICAnVW5pcXVlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gUG9zdGdyZXMgZm9yIGhhc01hbnkgbnVtYmVyIGZpZWxkcy4nLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YXJnZXRUYWJsZVtmaWVsZE5hbWVdID0gbnVtZXJpYyhjb2x1bW5OYW1lKVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3JpY2hUZXh0JzpcbiAgICAgIGNhc2UgJ2pzb24nOiB7XG4gICAgICAgIHRhcmdldFRhYmxlW2ZpZWxkTmFtZV0gPSBqc29uYihjb2x1bW5OYW1lKVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdkYXRlJzoge1xuICAgICAgICB0YXJnZXRUYWJsZVtmaWVsZE5hbWVdID0gdGltZXN0YW1wKGNvbHVtbk5hbWUsIHtcbiAgICAgICAgICBtb2RlOiAnc3RyaW5nJyxcbiAgICAgICAgICBwcmVjaXNpb246IDMsXG4gICAgICAgICAgd2l0aFRpbWV6b25lOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdwb2ludCc6IHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAncmFkaW8nOlxuICAgICAgY2FzZSAnc2VsZWN0Jzoge1xuICAgICAgICBjb25zdCBlbnVtTmFtZSA9IGBlbnVtXyR7bmV3VGFibGVOYW1lfV8ke2NvbHVtblByZWZpeCB8fCAnJ30ke3RvU25ha2VDYXNlKGZpZWxkLm5hbWUpfWBcblxuICAgICAgICBhZGFwdGVyLmVudW1zW2VudW1OYW1lXSA9IHBnRW51bShcbiAgICAgICAgICBlbnVtTmFtZSxcbiAgICAgICAgICBmaWVsZC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICBpZiAob3B0aW9uSXNPYmplY3Qob3B0aW9uKSkge1xuICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnZhbHVlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvcHRpb25cbiAgICAgICAgICB9KSBhcyBbc3RyaW5nLCAuLi5zdHJpbmdbXV0sXG4gICAgICAgIClcblxuICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gJ3NlbGVjdCcgJiYgZmllbGQuaGFzTWFueSkge1xuICAgICAgICAgIGNvbnN0IGJhc2VDb2x1bW5zOiBSZWNvcmQ8c3RyaW5nLCBQZ0NvbHVtbkJ1aWxkZXI+ID0ge1xuICAgICAgICAgICAgb3JkZXI6IGludGVnZXIoJ29yZGVyJykubm90TnVsbCgpLFxuICAgICAgICAgICAgcGFyZW50OiBwYXJlbnRJRENvbHVtbk1hcFtwYXJlbnRJRENvbFR5cGVdKCdwYXJlbnRfaWQnKVxuICAgICAgICAgICAgICAucmVmZXJlbmNlcygoKSA9PiBhZGFwdGVyLnRhYmxlc1twYXJlbnRUYWJsZU5hbWVdLmlkLCB7IG9uRGVsZXRlOiAnY2FzY2FkZScgfSlcbiAgICAgICAgICAgICAgLm5vdE51bGwoKSxcbiAgICAgICAgICAgIHZhbHVlOiBhZGFwdGVyLmVudW1zW2VudW1OYW1lXSgndmFsdWUnKSxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBiYXNlRXh0cmFDb25maWc6IFJlY29yZDxcbiAgICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAgIChjb2xzOiBHZW5lcmljQ29sdW1ucykgPT4gSW5kZXhCdWlsZGVyIHwgVW5pcXVlQ29uc3RyYWludEJ1aWxkZXJcbiAgICAgICAgICA+ID0ge31cblxuICAgICAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgICAgIGJhc2VDb2x1bW5zLmxvY2FsZSA9IGFkYXB0ZXIuZW51bXMuZW51bV9fbG9jYWxlcygnbG9jYWxlJykubm90TnVsbCgpXG4gICAgICAgICAgICBiYXNlRXh0cmFDb25maWcucGFyZW50T3JkZXJMb2NhbGUgPSAoY29scykgPT5cbiAgICAgICAgICAgICAgdW5pcXVlKCkub24oY29scy5wYXJlbnQsIGNvbHMub3JkZXIsIGNvbHMubG9jYWxlKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBiYXNlRXh0cmFDb25maWcucGFyZW50ID0gKGNvbHMpID0+IGluZGV4KCdwYXJlbnRfaWR4Jykub24oY29scy5wYXJlbnQpXG4gICAgICAgICAgICBiYXNlRXh0cmFDb25maWcub3JkZXIgPSAoY29scykgPT4gaW5kZXgoJ29yZGVyX2lkeCcpLm9uKGNvbHMub3JkZXIpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGZpZWxkLmluZGV4KSB7XG4gICAgICAgICAgICBiYXNlRXh0cmFDb25maWcudmFsdWUgPSAoY29scykgPT4gaW5kZXgoJ3ZhbHVlX2lkeCcpLm9uKGNvbHMudmFsdWUpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgc2VsZWN0VGFibGVOYW1lID0gYCR7bmV3VGFibGVOYW1lfV8ke3RvU25ha2VDYXNlKGZpZWxkTmFtZSl9YFxuXG4gICAgICAgICAgYnVpbGRUYWJsZSh7XG4gICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgYmFzZUNvbHVtbnMsXG4gICAgICAgICAgICBiYXNlRXh0cmFDb25maWcsXG4gICAgICAgICAgICBkaXNhYmxlVW5pcXVlLFxuICAgICAgICAgICAgZmllbGRzOiBbXSxcbiAgICAgICAgICAgIHRhYmxlTmFtZTogc2VsZWN0VGFibGVOYW1lLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICByZWxhdGlvbnNUb0J1aWxkLnNldChmaWVsZE5hbWUsIHNlbGVjdFRhYmxlTmFtZSlcblxuICAgICAgICAgIGNvbnN0IHNlbGVjdFRhYmxlUmVsYXRpb25zID0gcmVsYXRpb25zKGFkYXB0ZXIudGFibGVzW3NlbGVjdFRhYmxlTmFtZV0sICh7IG9uZSB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIFJlbGF0aW9uPHN0cmluZz4+ID0ge1xuICAgICAgICAgICAgICBwYXJlbnQ6IG9uZShhZGFwdGVyLnRhYmxlc1twYXJlbnRUYWJsZU5hbWVdLCB7XG4gICAgICAgICAgICAgICAgZmllbGRzOiBbYWRhcHRlci50YWJsZXNbc2VsZWN0VGFibGVOYW1lXS5wYXJlbnRdLFxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFthZGFwdGVyLnRhYmxlc1twYXJlbnRUYWJsZU5hbWVdLmlkXSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgYWRhcHRlci5yZWxhdGlvbnNbYHJlbGF0aW9uXyR7c2VsZWN0VGFibGVOYW1lfWBdID0gc2VsZWN0VGFibGVSZWxhdGlvbnNcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YXJnZXRUYWJsZVtmaWVsZE5hbWVdID0gYWRhcHRlci5lbnVtc1tlbnVtTmFtZV0oZmllbGROYW1lKVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2NoZWNrYm94Jzoge1xuICAgICAgICB0YXJnZXRUYWJsZVtmaWVsZE5hbWVdID0gYm9vbGVhbihjb2x1bW5OYW1lKVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdhcnJheSc6IHtcbiAgICAgICAgY29uc3QgYmFzZUNvbHVtbnM6IFJlY29yZDxzdHJpbmcsIFBnQ29sdW1uQnVpbGRlcj4gPSB7XG4gICAgICAgICAgX29yZGVyOiBpbnRlZ2VyKCdfb3JkZXInKS5ub3ROdWxsKCksXG4gICAgICAgICAgX3BhcmVudElEOiBwYXJlbnRJRENvbHVtbk1hcFtwYXJlbnRJRENvbFR5cGVdKCdfcGFyZW50X2lkJylcbiAgICAgICAgICAgIC5yZWZlcmVuY2VzKCgpID0+IGFkYXB0ZXIudGFibGVzW3BhcmVudFRhYmxlTmFtZV0uaWQsIHsgb25EZWxldGU6ICdjYXNjYWRlJyB9KVxuICAgICAgICAgICAgLm5vdE51bGwoKSxcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGJhc2VFeHRyYUNvbmZpZzogUmVjb3JkPFxuICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAoY29sczogR2VuZXJpY0NvbHVtbnMpID0+IEluZGV4QnVpbGRlciB8IFVuaXF1ZUNvbnN0cmFpbnRCdWlsZGVyXG4gICAgICAgID4gPSB7fVxuXG4gICAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgYWRhcHRlci5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgICBiYXNlQ29sdW1ucy5fbG9jYWxlID0gYWRhcHRlci5lbnVtcy5lbnVtX19sb2NhbGVzKCdfbG9jYWxlJykubm90TnVsbCgpXG4gICAgICAgICAgYmFzZUV4dHJhQ29uZmlnLl9wYXJlbnRPcmRlckxvY2FsZSA9IChjb2xzKSA9PlxuICAgICAgICAgICAgdW5pcXVlKCkub24oY29scy5fcGFyZW50SUQsIGNvbHMuX29yZGVyLCBjb2xzLl9sb2NhbGUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYmFzZUV4dHJhQ29uZmlnLl9wYXJlbnRPcmRlciA9IChjb2xzKSA9PiB1bmlxdWUoKS5vbihjb2xzLl9wYXJlbnRJRCwgY29scy5fb3JkZXIpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhcnJheVRhYmxlTmFtZSA9IGAke25ld1RhYmxlTmFtZX1fJHt0b1NuYWtlQ2FzZShmaWVsZC5uYW1lKX1gXG5cbiAgICAgICAgY29uc3QgeyByZWxhdGlvbnNUb0J1aWxkOiBzdWJSZWxhdGlvbnNUb0J1aWxkIH0gPSBidWlsZFRhYmxlKHtcbiAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgIGJhc2VDb2x1bW5zLFxuICAgICAgICAgIGJhc2VFeHRyYUNvbmZpZyxcbiAgICAgICAgICBkaXNhYmxlVW5pcXVlLFxuICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgIHJvb3RSZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgIHJvb3RUYWJsZUlEQ29sVHlwZSxcbiAgICAgICAgICByb290VGFibGVOYW1lLFxuICAgICAgICAgIHRhYmxlTmFtZTogYXJyYXlUYWJsZU5hbWUsXG4gICAgICAgIH0pXG5cbiAgICAgICAgcmVsYXRpb25zVG9CdWlsZC5zZXQoZmllbGROYW1lLCBhcnJheVRhYmxlTmFtZSlcblxuICAgICAgICBjb25zdCBhcnJheVRhYmxlUmVsYXRpb25zID0gcmVsYXRpb25zKGFkYXB0ZXIudGFibGVzW2FycmF5VGFibGVOYW1lXSwgKHsgbWFueSwgb25lIH0pID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIFJlbGF0aW9uPHN0cmluZz4+ID0ge1xuICAgICAgICAgICAgX3BhcmVudElEOiBvbmUoYWRhcHRlci50YWJsZXNbcGFyZW50VGFibGVOYW1lXSwge1xuICAgICAgICAgICAgICBmaWVsZHM6IFthZGFwdGVyLnRhYmxlc1thcnJheVRhYmxlTmFtZV0uX3BhcmVudElEXSxcbiAgICAgICAgICAgICAgcmVmZXJlbmNlczogW2FkYXB0ZXIudGFibGVzW3BhcmVudFRhYmxlTmFtZV0uaWRdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGhhc0xvY2FsZXNUYWJsZShmaWVsZC5maWVsZHMpKSB7XG4gICAgICAgICAgICByZXN1bHQuX2xvY2FsZXMgPSBtYW55KGFkYXB0ZXIudGFibGVzW2Ake2FycmF5VGFibGVOYW1lfV9sb2NhbGVzYF0pXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc3ViUmVsYXRpb25zVG9CdWlsZC5mb3JFYWNoKCh2YWwsIGtleSkgPT4ge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBtYW55KGFkYXB0ZXIudGFibGVzW3ZhbF0pXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgICAgfSlcblxuICAgICAgICBhZGFwdGVyLnJlbGF0aW9uc1tgcmVsYXRpb25zXyR7YXJyYXlUYWJsZU5hbWV9YF0gPSBhcnJheVRhYmxlUmVsYXRpb25zXG5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnYmxvY2tzJzoge1xuICAgICAgICBmaWVsZC5ibG9ja3MuZm9yRWFjaCgoYmxvY2spID0+IHtcbiAgICAgICAgICBjb25zdCBibG9ja1RhYmxlTmFtZSA9IGAke3Jvb3RUYWJsZU5hbWV9X2Jsb2Nrc18ke3RvU25ha2VDYXNlKGJsb2NrLnNsdWcpfWBcbiAgICAgICAgICBpZiAoIWFkYXB0ZXIudGFibGVzW2Jsb2NrVGFibGVOYW1lXSkge1xuICAgICAgICAgICAgY29uc3QgYmFzZUNvbHVtbnM6IFJlY29yZDxzdHJpbmcsIFBnQ29sdW1uQnVpbGRlcj4gPSB7XG4gICAgICAgICAgICAgIF9vcmRlcjogaW50ZWdlcignX29yZGVyJykubm90TnVsbCgpLFxuICAgICAgICAgICAgICBfcGFyZW50SUQ6IHBhcmVudElEQ29sdW1uTWFwW3Jvb3RUYWJsZUlEQ29sVHlwZV0oJ19wYXJlbnRfaWQnKVxuICAgICAgICAgICAgICAgIC5yZWZlcmVuY2VzKCgpID0+IGFkYXB0ZXIudGFibGVzW3Jvb3RUYWJsZU5hbWVdLmlkLCB7IG9uRGVsZXRlOiAnY2FzY2FkZScgfSlcbiAgICAgICAgICAgICAgICAubm90TnVsbCgpLFxuICAgICAgICAgICAgICBfcGF0aDogdGV4dCgnX3BhdGgnKS5ub3ROdWxsKCksXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGJhc2VFeHRyYUNvbmZpZzogUmVjb3JkPFxuICAgICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICAgIChjb2xzOiBHZW5lcmljQ29sdW1ucykgPT4gSW5kZXhCdWlsZGVyIHwgVW5pcXVlQ29uc3RyYWludEJ1aWxkZXJcbiAgICAgICAgICAgID4gPSB7fVxuXG4gICAgICAgICAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgICAgICAgIGJhc2VDb2x1bW5zLl9sb2NhbGUgPSBhZGFwdGVyLmVudW1zLmVudW1fX2xvY2FsZXMoJ19sb2NhbGUnKS5ub3ROdWxsKClcbiAgICAgICAgICAgICAgYmFzZUV4dHJhQ29uZmlnLl9wYXJlbnRQYXRoT3JkZXJMb2NhbGUgPSAoY29scykgPT5cbiAgICAgICAgICAgICAgICB1bmlxdWUoKS5vbihjb2xzLl9wYXJlbnRJRCwgY29scy5fcGF0aCwgY29scy5fb3JkZXIsIGNvbHMuX2xvY2FsZSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGJhc2VFeHRyYUNvbmZpZy5fcGFyZW50UGF0aE9yZGVyID0gKGNvbHMpID0+XG4gICAgICAgICAgICAgICAgdW5pcXVlKCkub24oY29scy5fcGFyZW50SUQsIGNvbHMuX3BhdGgsIGNvbHMuX29yZGVyKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB7IHJlbGF0aW9uc1RvQnVpbGQ6IHN1YlJlbGF0aW9uc1RvQnVpbGQgfSA9IGJ1aWxkVGFibGUoe1xuICAgICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgICBiYXNlQ29sdW1ucyxcbiAgICAgICAgICAgICAgYmFzZUV4dHJhQ29uZmlnLFxuICAgICAgICAgICAgICBkaXNhYmxlVW5pcXVlLFxuICAgICAgICAgICAgICBmaWVsZHM6IGJsb2NrLmZpZWxkcyxcbiAgICAgICAgICAgICAgcm9vdFJlbGF0aW9uc1RvQnVpbGQsXG4gICAgICAgICAgICAgIHJvb3RUYWJsZUlEQ29sVHlwZSxcbiAgICAgICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgdGFibGVOYW1lOiBibG9ja1RhYmxlTmFtZSxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGNvbnN0IGJsb2NrVGFibGVSZWxhdGlvbnMgPSByZWxhdGlvbnMoXG4gICAgICAgICAgICAgIGFkYXB0ZXIudGFibGVzW2Jsb2NrVGFibGVOYW1lXSxcbiAgICAgICAgICAgICAgKHsgbWFueSwgb25lIH0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIFJlbGF0aW9uPHN0cmluZz4+ID0ge1xuICAgICAgICAgICAgICAgICAgX3BhcmVudElEOiBvbmUoYWRhcHRlci50YWJsZXNbcm9vdFRhYmxlTmFtZV0sIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGRzOiBbYWRhcHRlci50YWJsZXNbYmxvY2tUYWJsZU5hbWVdLl9wYXJlbnRJRF0sXG4gICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFthZGFwdGVyLnRhYmxlc1tyb290VGFibGVOYW1lXS5pZF0sXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoaGFzTG9jYWxlc1RhYmxlKGJsb2NrLmZpZWxkcykpIHtcbiAgICAgICAgICAgICAgICAgIHJlc3VsdC5fbG9jYWxlcyA9IG1hbnkoYWRhcHRlci50YWJsZXNbYCR7YmxvY2tUYWJsZU5hbWV9X2xvY2FsZXNgXSlcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzdWJSZWxhdGlvbnNUb0J1aWxkLmZvckVhY2goKHZhbCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IG1hbnkoYWRhcHRlci50YWJsZXNbdmFsXSlcbiAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBhZGFwdGVyLnJlbGF0aW9uc1tgcmVsYXRpb25zXyR7YmxvY2tUYWJsZU5hbWV9YF0gPSBibG9ja1RhYmxlUmVsYXRpb25zXG4gICAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICB2YWxpZGF0ZUV4aXN0aW5nQmxvY2tJc0lkZW50aWNhbCh7XG4gICAgICAgICAgICAgIGJsb2NrLFxuICAgICAgICAgICAgICBsb2NhbGl6ZWQ6IGZpZWxkLmxvY2FsaXplZCxcbiAgICAgICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgdGFibGU6IGFkYXB0ZXIudGFibGVzW2Jsb2NrVGFibGVOYW1lXSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcm9vdFJlbGF0aW9uc1RvQnVpbGQuc2V0KGBfYmxvY2tzXyR7YmxvY2suc2x1Z31gLCBibG9ja1RhYmxlTmFtZSlcbiAgICAgICAgfSlcblxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICd0YWInOlxuICAgICAgY2FzZSAnZ3JvdXAnOiB7XG4gICAgICAgIGlmICghKCduYW1lJyBpbiBmaWVsZCkpIHtcbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBoYXNMb2NhbGl6ZWRGaWVsZDogZ3JvdXBIYXNMb2NhbGl6ZWRGaWVsZCxcbiAgICAgICAgICAgIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZDogZ3JvdXBIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQsXG4gICAgICAgICAgICBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZDogZ3JvdXBIYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCxcbiAgICAgICAgICAgIGhhc01hbnlOdW1iZXJGaWVsZDogZ3JvdXBIYXNNYW55TnVtYmVyRmllbGQsXG4gICAgICAgICAgfSA9IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgICBidWlsZFJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgICBjb2x1bW5QcmVmaXgsXG4gICAgICAgICAgICBjb2x1bW5zLFxuICAgICAgICAgICAgZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICAgIGZpZWxkUHJlZml4LFxuICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICBmb3JjZUxvY2FsaXplZCxcbiAgICAgICAgICAgIGluZGV4ZXMsXG4gICAgICAgICAgICBsb2NhbGVzQ29sdW1ucyxcbiAgICAgICAgICAgIGxvY2FsZXNJbmRleGVzLFxuICAgICAgICAgICAgbmV3VGFibGVOYW1lOiBwYXJlbnRUYWJsZU5hbWUsXG4gICAgICAgICAgICBwYXJlbnRUYWJsZU5hbWUsXG4gICAgICAgICAgICByZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgIHJvb3RSZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgICAgcm9vdFRhYmxlSURDb2xUeXBlLFxuICAgICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgaWYgKGdyb3VwSGFzTG9jYWxpemVkRmllbGQpIGhhc0xvY2FsaXplZEZpZWxkID0gdHJ1ZVxuICAgICAgICAgIGlmIChncm91cEhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkKSBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCA9IHRydWVcbiAgICAgICAgICBpZiAoZ3JvdXBIYXNNYW55TnVtYmVyRmllbGQpIGhhc01hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgICBpZiAoZ3JvdXBIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQpIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIGhhc0xvY2FsaXplZEZpZWxkOiBncm91cEhhc0xvY2FsaXplZEZpZWxkLFxuICAgICAgICAgIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZDogZ3JvdXBIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQ6IGdyb3VwSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQsXG4gICAgICAgICAgaGFzTWFueU51bWJlckZpZWxkOiBncm91cEhhc01hbnlOdW1iZXJGaWVsZCxcbiAgICAgICAgfSA9IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgIGJ1aWxkUmVsYXRpb25zaGlwcyxcbiAgICAgICAgICBjb2x1bW5QcmVmaXg6IGAke2NvbHVtbk5hbWV9X2AsXG4gICAgICAgICAgY29sdW1ucyxcbiAgICAgICAgICBkaXNhYmxlVW5pcXVlLFxuICAgICAgICAgIGZpZWxkUHJlZml4OiBgJHtmaWVsZE5hbWV9X2AsXG4gICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgZm9yY2VMb2NhbGl6ZWQ6IGZpZWxkLmxvY2FsaXplZCxcbiAgICAgICAgICBpbmRleGVzLFxuICAgICAgICAgIGxvY2FsZXNDb2x1bW5zLFxuICAgICAgICAgIGxvY2FsZXNJbmRleGVzLFxuICAgICAgICAgIG5ld1RhYmxlTmFtZTogYCR7cGFyZW50VGFibGVOYW1lfV8ke2NvbHVtbk5hbWV9YCxcbiAgICAgICAgICBwYXJlbnRUYWJsZU5hbWUsXG4gICAgICAgICAgcmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICByZWxhdGlvbnNoaXBzLFxuICAgICAgICAgIHJvb3RSZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgIHJvb3RUYWJsZUlEQ29sVHlwZSxcbiAgICAgICAgICByb290VGFibGVOYW1lLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChncm91cEhhc0xvY2FsaXplZEZpZWxkKSBoYXNMb2NhbGl6ZWRGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKGdyb3VwSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQpIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkID0gdHJ1ZVxuICAgICAgICBpZiAoZ3JvdXBIYXNNYW55TnVtYmVyRmllbGQpIGhhc01hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKGdyb3VwSGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkKSBoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQgPSB0cnVlXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3RhYnMnOiB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRGaWVsZDogdGFiSGFzTG9jYWxpemVkRmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkOiB0YWJIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQ6IHRhYkhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkLFxuICAgICAgICAgIGhhc01hbnlOdW1iZXJGaWVsZDogdGFiSGFzTWFueU51bWJlckZpZWxkLFxuICAgICAgICB9ID0gdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgYnVpbGRSZWxhdGlvbnNoaXBzLFxuICAgICAgICAgIGNvbHVtblByZWZpeCxcbiAgICAgICAgICBjb2x1bW5zLFxuICAgICAgICAgIGRpc2FibGVVbmlxdWUsXG4gICAgICAgICAgZmllbGRQcmVmaXgsXG4gICAgICAgICAgZmllbGRzOiBmaWVsZC50YWJzLm1hcCgodGFiKSA9PiAoeyAuLi50YWIsIHR5cGU6ICd0YWInIH0pKSxcbiAgICAgICAgICBmb3JjZUxvY2FsaXplZCxcbiAgICAgICAgICBpbmRleGVzLFxuICAgICAgICAgIGxvY2FsZXNDb2x1bW5zLFxuICAgICAgICAgIGxvY2FsZXNJbmRleGVzLFxuICAgICAgICAgIG5ld1RhYmxlTmFtZSxcbiAgICAgICAgICBwYXJlbnRUYWJsZU5hbWUsXG4gICAgICAgICAgcmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICByZWxhdGlvbnNoaXBzLFxuICAgICAgICAgIHJvb3RSZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgIHJvb3RUYWJsZUlEQ29sVHlwZSxcbiAgICAgICAgICByb290VGFibGVOYW1lLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmICh0YWJIYXNMb2NhbGl6ZWRGaWVsZCkgaGFzTG9jYWxpemVkRmllbGQgPSB0cnVlXG4gICAgICAgIGlmICh0YWJIYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCkgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQgPSB0cnVlXG4gICAgICAgIGlmICh0YWJIYXNNYW55TnVtYmVyRmllbGQpIGhhc01hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKHRhYkhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCkgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkID0gdHJ1ZVxuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3Jvdyc6XG4gICAgICBjYXNlICdjb2xsYXBzaWJsZSc6IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIGhhc0xvY2FsaXplZEZpZWxkOiByb3dIYXNMb2NhbGl6ZWRGaWVsZCxcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQ6IHJvd0hhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCxcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZDogcm93SGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQsXG4gICAgICAgICAgaGFzTWFueU51bWJlckZpZWxkOiByb3dIYXNNYW55TnVtYmVyRmllbGQsXG4gICAgICAgIH0gPSB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBidWlsZFJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgY29sdW1uUHJlZml4LFxuICAgICAgICAgIGNvbHVtbnMsXG4gICAgICAgICAgZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICBmaWVsZFByZWZpeCxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICBmb3JjZUxvY2FsaXplZCxcbiAgICAgICAgICBpbmRleGVzLFxuICAgICAgICAgIGxvY2FsZXNDb2x1bW5zLFxuICAgICAgICAgIGxvY2FsZXNJbmRleGVzLFxuICAgICAgICAgIG5ld1RhYmxlTmFtZTogcGFyZW50VGFibGVOYW1lLFxuICAgICAgICAgIHBhcmVudFRhYmxlTmFtZSxcbiAgICAgICAgICByZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgcm9vdFJlbGF0aW9uc1RvQnVpbGQsXG4gICAgICAgICAgcm9vdFRhYmxlSURDb2xUeXBlLFxuICAgICAgICAgIHJvb3RUYWJsZU5hbWUsXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKHJvd0hhc0xvY2FsaXplZEZpZWxkKSBoYXNMb2NhbGl6ZWRGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKHJvd0hhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkKSBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKHJvd0hhc01hbnlOdW1iZXJGaWVsZCkgaGFzTWFueU51bWJlckZpZWxkID0gdHJ1ZVxuICAgICAgICBpZiAocm93SGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkKSBoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQgPSB0cnVlXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3JlbGF0aW9uc2hpcCc6XG4gICAgICBjYXNlICd1cGxvYWQnOlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKSkge1xuICAgICAgICAgIGZpZWxkLnJlbGF0aW9uVG8uZm9yRWFjaCgocmVsYXRpb24pID0+IHJlbGF0aW9uc2hpcHMuYWRkKHJlbGF0aW9uKSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWxhdGlvbnNoaXBzLmFkZChmaWVsZC5yZWxhdGlvblRvKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBhZGFwdGVyLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICAgIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY29uc3QgY29uZGl0aW9uID0gZmllbGQuYWRtaW4gJiYgZmllbGQuYWRtaW4uY29uZGl0aW9uXG5cbiAgICBpZiAodGFyZ2V0VGFibGVbZmllbGROYW1lXSAmJiAncmVxdWlyZWQnIGluIGZpZWxkICYmIGZpZWxkLnJlcXVpcmVkICYmICFjb25kaXRpb24pIHtcbiAgICAgIHRhcmdldFRhYmxlW2ZpZWxkTmFtZV0ubm90TnVsbCgpXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgaGFzTG9jYWxpemVkRmllbGQsXG4gICAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkLFxuICAgIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkLFxuICAgIGhhc01hbnlOdW1iZXJGaWVsZCxcbiAgfVxufVxuIl0sIm5hbWVzIjpbInRyYXZlcnNlRmllbGRzIiwiYWRhcHRlciIsImJ1aWxkUmVsYXRpb25zaGlwcyIsImNvbHVtblByZWZpeCIsImNvbHVtbnMiLCJkaXNhYmxlVW5pcXVlIiwiZmllbGRQcmVmaXgiLCJmaWVsZHMiLCJmb3JjZUxvY2FsaXplZCIsImluZGV4ZXMiLCJsb2NhbGVzQ29sdW1ucyIsImxvY2FsZXNJbmRleGVzIiwibmV3VGFibGVOYW1lIiwicGFyZW50VGFibGVOYW1lIiwicmVsYXRpb25zVG9CdWlsZCIsInJlbGF0aW9uc2hpcHMiLCJyb290UmVsYXRpb25zVG9CdWlsZCIsInJvb3RUYWJsZUlEQ29sVHlwZSIsInJvb3RUYWJsZU5hbWUiLCJoYXNMb2NhbGl6ZWRGaWVsZCIsImhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkIiwiaGFzTWFueU51bWJlckZpZWxkIiwiaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkIiwicGFyZW50SURDb2xUeXBlIiwiaWQiLCJQZ051bWVyaWNCdWlsZGVyIiwiUGdWYXJjaGFyQnVpbGRlciIsImZvckVhY2giLCJmaWVsZCIsIm5hbWUiLCJjb2x1bW5OYW1lIiwiZmllbGROYW1lIiwidGFyZ2V0VGFibGUiLCJ0YXJnZXRJbmRleGVzIiwiZmllbGRBZmZlY3RzRGF0YSIsInRvU25ha2VDYXNlIiwicGF5bG9hZCIsImNvbmZpZyIsImxvY2FsaXphdGlvbiIsImxvY2FsaXplZCIsInVuaXF1ZSIsImluZGV4IiwiaW5jbHVkZXMiLCJ0eXBlIiwiaGFzTWFueSIsImNyZWF0ZUluZGV4IiwidmFyY2hhciIsIkludmFsaWRDb25maWd1cmF0aW9uIiwibnVtZXJpYyIsImpzb25iIiwidGltZXN0YW1wIiwibW9kZSIsInByZWNpc2lvbiIsIndpdGhUaW1lem9uZSIsImVudW1OYW1lIiwiZW51bXMiLCJwZ0VudW0iLCJvcHRpb25zIiwibWFwIiwib3B0aW9uIiwib3B0aW9uSXNPYmplY3QiLCJ2YWx1ZSIsImJhc2VDb2x1bW5zIiwib3JkZXIiLCJpbnRlZ2VyIiwibm90TnVsbCIsInBhcmVudCIsInBhcmVudElEQ29sdW1uTWFwIiwicmVmZXJlbmNlcyIsInRhYmxlcyIsIm9uRGVsZXRlIiwiYmFzZUV4dHJhQ29uZmlnIiwibG9jYWxlIiwiZW51bV9fbG9jYWxlcyIsInBhcmVudE9yZGVyTG9jYWxlIiwiY29scyIsIm9uIiwic2VsZWN0VGFibGVOYW1lIiwiYnVpbGRUYWJsZSIsInRhYmxlTmFtZSIsInNldCIsInNlbGVjdFRhYmxlUmVsYXRpb25zIiwicmVsYXRpb25zIiwib25lIiwicmVzdWx0IiwiYm9vbGVhbiIsIl9vcmRlciIsIl9wYXJlbnRJRCIsIl9sb2NhbGUiLCJfcGFyZW50T3JkZXJMb2NhbGUiLCJfcGFyZW50T3JkZXIiLCJhcnJheVRhYmxlTmFtZSIsInN1YlJlbGF0aW9uc1RvQnVpbGQiLCJhcnJheVRhYmxlUmVsYXRpb25zIiwibWFueSIsImhhc0xvY2FsZXNUYWJsZSIsIl9sb2NhbGVzIiwidmFsIiwia2V5IiwiYmxvY2tzIiwiYmxvY2siLCJibG9ja1RhYmxlTmFtZSIsInNsdWciLCJfcGF0aCIsInRleHQiLCJfcGFyZW50UGF0aE9yZGVyTG9jYWxlIiwiX3BhcmVudFBhdGhPcmRlciIsImJsb2NrVGFibGVSZWxhdGlvbnMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ2YWxpZGF0ZUV4aXN0aW5nQmxvY2tJc0lkZW50aWNhbCIsInRhYmxlIiwiZ3JvdXBIYXNMb2NhbGl6ZWRGaWVsZCIsImdyb3VwSGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkIiwiZ3JvdXBIYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCIsImdyb3VwSGFzTWFueU51bWJlckZpZWxkIiwidGFiSGFzTG9jYWxpemVkRmllbGQiLCJ0YWJIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQiLCJ0YWJIYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCIsInRhYkhhc01hbnlOdW1iZXJGaWVsZCIsInRhYnMiLCJ0YWIiLCJyb3dIYXNMb2NhbGl6ZWRGaWVsZCIsInJvd0hhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCIsInJvd0hhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkIiwicm93SGFzTWFueU51bWJlckZpZWxkIiwiQXJyYXkiLCJpc0FycmF5IiwicmVsYXRpb25UbyIsInJlbGF0aW9uIiwiYWRkIiwiY29uZGl0aW9uIiwiYWRtaW4iLCJyZXF1aXJlZCJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQTREdkJBOzs7ZUFBQUE7Ozs0QkF2RGE7d0JBY25CO3dCQUM4Qjt1QkFDWTtvRUFDekI7aUNBSVE7dUJBQ0w7NkJBQ0M7bUNBQ007a0RBQ2U7Ozs7OztBQThCMUMsTUFBTUEsaUJBQWlCLENBQUMsRUFDN0JDLE9BQU8sRUFDUEMsa0JBQWtCLEVBQ2xCQyxZQUFZLEVBQ1pDLE9BQU8sRUFDUEMsZ0JBQWdCLEtBQUssRUFDckJDLFdBQVcsRUFDWEMsTUFBTSxFQUNOQyxjQUFjLEVBQ2RDLE9BQU8sRUFDUEMsY0FBYyxFQUNkQyxjQUFjLEVBQ2RDLFlBQVksRUFDWkMsZUFBZSxFQUNmQyxnQkFBZ0IsRUFDaEJDLGFBQWEsRUFDYkMsb0JBQW9CLEVBQ3BCQyxrQkFBa0IsRUFDbEJDLGFBQWEsRUFDUjtJQUNMLElBQUlDLG9CQUFvQjtJQUN4QixJQUFJQyxnQ0FBZ0M7SUFDcEMsSUFBSUMscUJBQXdDO0lBQzVDLElBQUlDLDhCQUE4QjtJQUVsQyxJQUFJQyxrQkFBa0I7SUFDdEIsSUFBSW5CLFFBQVFvQixFQUFFLFlBQVlDLHdCQUFnQixFQUFFRixrQkFBa0I7SUFDOUQsSUFBSW5CLFFBQVFvQixFQUFFLFlBQVlFLHdCQUFnQixFQUFFSCxrQkFBa0I7SUFFOURoQixPQUFPb0IsT0FBTyxDQUFDLENBQUNDO1FBQ2QsSUFBSSxVQUFVQSxTQUFTQSxNQUFNQyxJQUFJLEtBQUssTUFBTTtRQUM1QyxJQUFJQztRQUNKLElBQUlDO1FBRUosSUFBSUMsY0FBYzVCO1FBQ2xCLElBQUk2QixnQkFBZ0J4QjtRQUVwQixJQUFJeUIsSUFBQUEsdUJBQWdCLEVBQUNOLFFBQVE7WUFDM0JFLGFBQWEsQ0FBQyxFQUFFM0IsZ0JBQWdCLEdBQUcsRUFBRXlCLE1BQU1DLElBQUksQ0FBQyxFQUFFLEtBQUssTUFBTSxNQUFNLEdBQUcsRUFBRU0sSUFBQUEsb0JBQVcsRUFDakZQLE1BQU1DLElBQUksRUFDVixDQUFDO1lBQ0hFLFlBQVksQ0FBQyxFQUFFekIsZUFBZSxHQUFHLEVBQUVzQixNQUFNQyxJQUFJLENBQUMsQ0FBQztZQUUvQyx5QkFBeUI7WUFDekIsMkRBQTJEO1lBQzNELElBQUk1QixRQUFRbUMsT0FBTyxDQUFDQyxNQUFNLENBQUNDLFlBQVksSUFBS1YsQ0FBQUEsTUFBTVcsU0FBUyxJQUFJL0IsY0FBYSxHQUFJO2dCQUM5RVcsb0JBQW9CO2dCQUNwQmEsY0FBY3RCO2dCQUNkdUIsZ0JBQWdCdEI7WUFDbEI7WUFFQSxJQUNFLEFBQUNpQixDQUFBQSxNQUFNWSxNQUFNLElBQUlaLE1BQU1hLEtBQUssQUFBRCxLQUMzQixDQUFDO2dCQUFDO2dCQUFTO2dCQUFVO2dCQUFTO2dCQUFTO2dCQUFnQjthQUFTLENBQUNDLFFBQVEsQ0FBQ2QsTUFBTWUsSUFBSSxLQUNwRixDQUFFZixDQUFBQSxNQUFNZSxJQUFJLEtBQUssWUFBWWYsTUFBTWdCLE9BQU8sS0FBSyxJQUFHLEdBQ2xEO2dCQUNBWCxhQUFhLENBQUMsQ0FBQyxFQUFFTCxNQUFNQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBR2dCLElBQUFBLHdCQUFXLEVBQUM7b0JBQzlDaEIsTUFBTUU7b0JBQ05EO29CQUNBVSxRQUFRbkMsa0JBQWtCLFFBQVF1QixNQUFNWSxNQUFNO2dCQUNoRDtZQUNGO1FBQ0Y7UUFFQSxPQUFRWixNQUFNZSxJQUFJO1lBQ2hCLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7Z0JBQVk7b0JBQ2ZYLFdBQVcsQ0FBQ0QsVUFBVSxHQUFHZSxJQUFBQSxlQUFPLEVBQUNoQjtvQkFDakM7Z0JBQ0Y7WUFFQSxLQUFLO2dCQUFVO29CQUNiLElBQUlGLE1BQU1nQixPQUFPLEVBQUU7d0JBQ2pCLElBQUloQixNQUFNVyxTQUFTLEVBQUU7NEJBQ25CakIsOEJBQThCO3dCQUNoQzt3QkFFQSxJQUFJTSxNQUFNYSxLQUFLLEVBQUU7NEJBQ2ZwQixxQkFBcUI7d0JBQ3ZCLE9BQU8sSUFBSSxDQUFDQSxvQkFBb0I7NEJBQzlCQSxxQkFBcUI7d0JBQ3ZCO3dCQUVBLElBQUlPLE1BQU1ZLE1BQU0sRUFBRTs0QkFDaEIsTUFBTSxJQUFJTyw0QkFBb0IsQ0FDNUI7d0JBRUo7b0JBQ0YsT0FBTzt3QkFDTGYsV0FBVyxDQUFDRCxVQUFVLEdBQUdpQixJQUFBQSxlQUFPLEVBQUNsQjtvQkFDbkM7b0JBQ0E7Z0JBQ0Y7WUFFQSxLQUFLO1lBQ0wsS0FBSztnQkFBUTtvQkFDWEUsV0FBVyxDQUFDRCxVQUFVLEdBQUdrQixJQUFBQSxhQUFLLEVBQUNuQjtvQkFDL0I7Z0JBQ0Y7WUFFQSxLQUFLO2dCQUFRO29CQUNYRSxXQUFXLENBQUNELFVBQVUsR0FBR21CLElBQUFBLGlCQUFTLEVBQUNwQixZQUFZO3dCQUM3Q3FCLE1BQU07d0JBQ05DLFdBQVc7d0JBQ1hDLGNBQWM7b0JBQ2hCO29CQUNBO2dCQUNGO1lBRUEsS0FBSztnQkFBUztvQkFDWjtnQkFDRjtZQUVBLEtBQUs7WUFDTCxLQUFLO2dCQUFVO29CQUNiLE1BQU1DLFdBQVcsQ0FBQyxLQUFLLEVBQUUxQyxhQUFhLENBQUMsRUFBRVQsZ0JBQWdCLEdBQUcsRUFBRWdDLElBQUFBLG9CQUFXLEVBQUNQLE1BQU1DLElBQUksRUFBRSxDQUFDO29CQUV2RjVCLFFBQVFzRCxLQUFLLENBQUNELFNBQVMsR0FBR0UsSUFBQUEsY0FBTSxFQUM5QkYsVUFDQTFCLE1BQU02QixPQUFPLENBQUNDLEdBQUcsQ0FBQyxDQUFDQzt3QkFDakIsSUFBSUMsSUFBQUEscUJBQWMsRUFBQ0QsU0FBUzs0QkFDMUIsT0FBT0EsT0FBT0UsS0FBSzt3QkFDckI7d0JBRUEsT0FBT0Y7b0JBQ1Q7b0JBR0YsSUFBSS9CLE1BQU1lLElBQUksS0FBSyxZQUFZZixNQUFNZ0IsT0FBTyxFQUFFO3dCQUM1QyxNQUFNa0IsY0FBK0M7NEJBQ25EQyxPQUFPQyxJQUFBQSxlQUFPLEVBQUMsU0FBU0MsT0FBTzs0QkFDL0JDLFFBQVFDLG9DQUFpQixDQUFDNUMsZ0JBQWdCLENBQUMsYUFDeEM2QyxVQUFVLENBQUMsSUFBTW5FLFFBQVFvRSxNQUFNLENBQUN4RCxnQkFBZ0IsQ0FBQ1csRUFBRSxFQUFFO2dDQUFFOEMsVUFBVTs0QkFBVSxHQUMzRUwsT0FBTzs0QkFDVkosT0FBTzVELFFBQVFzRCxLQUFLLENBQUNELFNBQVMsQ0FBQzt3QkFDakM7d0JBRUEsTUFBTWlCLGtCQUdGLENBQUM7d0JBRUwsSUFBSTNDLE1BQU1XLFNBQVMsRUFBRTs0QkFDbkJ1QixZQUFZVSxNQUFNLEdBQUd2RSxRQUFRc0QsS0FBSyxDQUFDa0IsYUFBYSxDQUFDLFVBQVVSLE9BQU87NEJBQ2xFTSxnQkFBZ0JHLGlCQUFpQixHQUFHLENBQUNDLE9BQ25DbkMsSUFBQUEsY0FBTSxJQUFHb0MsRUFBRSxDQUFDRCxLQUFLVCxNQUFNLEVBQUVTLEtBQUtaLEtBQUssRUFBRVksS0FBS0gsTUFBTTt3QkFDcEQsT0FBTzs0QkFDTEQsZ0JBQWdCTCxNQUFNLEdBQUcsQ0FBQ1MsT0FBU2xDLElBQUFBLGFBQUssRUFBQyxjQUFjbUMsRUFBRSxDQUFDRCxLQUFLVCxNQUFNOzRCQUNyRUssZ0JBQWdCUixLQUFLLEdBQUcsQ0FBQ1ksT0FBU2xDLElBQUFBLGFBQUssRUFBQyxhQUFhbUMsRUFBRSxDQUFDRCxLQUFLWixLQUFLO3dCQUNwRTt3QkFFQSxJQUFJbkMsTUFBTWEsS0FBSyxFQUFFOzRCQUNmOEIsZ0JBQWdCVixLQUFLLEdBQUcsQ0FBQ2MsT0FBU2xDLElBQUFBLGFBQUssRUFBQyxhQUFhbUMsRUFBRSxDQUFDRCxLQUFLZCxLQUFLO3dCQUNwRTt3QkFFQSxNQUFNZ0Isa0JBQWtCLENBQUMsRUFBRWpFLGFBQWEsQ0FBQyxFQUFFdUIsSUFBQUEsb0JBQVcsRUFBQ0osV0FBVyxDQUFDO3dCQUVuRStDLElBQUFBLGlCQUFVLEVBQUM7NEJBQ1Q3RTs0QkFDQTZEOzRCQUNBUzs0QkFDQWxFOzRCQUNBRSxRQUFRLEVBQUU7NEJBQ1Z3RSxXQUFXRjt3QkFDYjt3QkFFQS9ELGlCQUFpQmtFLEdBQUcsQ0FBQ2pELFdBQVc4Qzt3QkFFaEMsTUFBTUksdUJBQXVCQyxJQUFBQSxxQkFBUyxFQUFDakYsUUFBUW9FLE1BQU0sQ0FBQ1EsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFTSxHQUFHLEVBQUU7NEJBQzlFLE1BQU1DLFNBQTJDO2dDQUMvQ2xCLFFBQVFpQixJQUFJbEYsUUFBUW9FLE1BQU0sQ0FBQ3hELGdCQUFnQixFQUFFO29DQUMzQ04sUUFBUTt3Q0FBQ04sUUFBUW9FLE1BQU0sQ0FBQ1EsZ0JBQWdCLENBQUNYLE1BQU07cUNBQUM7b0NBQ2hERSxZQUFZO3dDQUFDbkUsUUFBUW9FLE1BQU0sQ0FBQ3hELGdCQUFnQixDQUFDVyxFQUFFO3FDQUFDO2dDQUNsRDs0QkFDRjs0QkFFQSxPQUFPNEQ7d0JBQ1Q7d0JBRUFuRixRQUFRaUYsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFTCxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUdJO29CQUNyRCxPQUFPO3dCQUNMakQsV0FBVyxDQUFDRCxVQUFVLEdBQUc5QixRQUFRc0QsS0FBSyxDQUFDRCxTQUFTLENBQUN2QjtvQkFDbkQ7b0JBQ0E7Z0JBQ0Y7WUFFQSxLQUFLO2dCQUFZO29CQUNmQyxXQUFXLENBQUNELFVBQVUsR0FBR3NELElBQUFBLGVBQU8sRUFBQ3ZEO29CQUNqQztnQkFDRjtZQUVBLEtBQUs7Z0JBQVM7b0JBQ1osTUFBTWdDLGNBQStDO3dCQUNuRHdCLFFBQVF0QixJQUFBQSxlQUFPLEVBQUMsVUFBVUMsT0FBTzt3QkFDakNzQixXQUFXcEIsb0NBQWlCLENBQUM1QyxnQkFBZ0IsQ0FBQyxjQUMzQzZDLFVBQVUsQ0FBQyxJQUFNbkUsUUFBUW9FLE1BQU0sQ0FBQ3hELGdCQUFnQixDQUFDVyxFQUFFLEVBQUU7NEJBQUU4QyxVQUFVO3dCQUFVLEdBQzNFTCxPQUFPO29CQUNaO29CQUVBLE1BQU1NLGtCQUdGLENBQUM7b0JBRUwsSUFBSTNDLE1BQU1XLFNBQVMsSUFBSXRDLFFBQVFtQyxPQUFPLENBQUNDLE1BQU0sQ0FBQ0MsWUFBWSxFQUFFO3dCQUMxRHdCLFlBQVkwQixPQUFPLEdBQUd2RixRQUFRc0QsS0FBSyxDQUFDa0IsYUFBYSxDQUFDLFdBQVdSLE9BQU87d0JBQ3BFTSxnQkFBZ0JrQixrQkFBa0IsR0FBRyxDQUFDZCxPQUNwQ25DLElBQUFBLGNBQU0sSUFBR29DLEVBQUUsQ0FBQ0QsS0FBS1ksU0FBUyxFQUFFWixLQUFLVyxNQUFNLEVBQUVYLEtBQUthLE9BQU87b0JBQ3pELE9BQU87d0JBQ0xqQixnQkFBZ0JtQixZQUFZLEdBQUcsQ0FBQ2YsT0FBU25DLElBQUFBLGNBQU0sSUFBR29DLEVBQUUsQ0FBQ0QsS0FBS1ksU0FBUyxFQUFFWixLQUFLVyxNQUFNO29CQUNsRjtvQkFFQSxNQUFNSyxpQkFBaUIsQ0FBQyxFQUFFL0UsYUFBYSxDQUFDLEVBQUV1QixJQUFBQSxvQkFBVyxFQUFDUCxNQUFNQyxJQUFJLEVBQUUsQ0FBQztvQkFFbkUsTUFBTSxFQUFFZixrQkFBa0I4RSxtQkFBbUIsRUFBRSxHQUFHZCxJQUFBQSxpQkFBVSxFQUFDO3dCQUMzRDdFO3dCQUNBNkQ7d0JBQ0FTO3dCQUNBbEU7d0JBQ0FFLFFBQVFxQixNQUFNckIsTUFBTTt3QkFDcEJTO3dCQUNBQzt3QkFDQUM7d0JBQ0E2RCxXQUFXWTtvQkFDYjtvQkFFQTdFLGlCQUFpQmtFLEdBQUcsQ0FBQ2pELFdBQVc0RDtvQkFFaEMsTUFBTUUsc0JBQXNCWCxJQUFBQSxxQkFBUyxFQUFDakYsUUFBUW9FLE1BQU0sQ0FBQ3NCLGVBQWUsRUFBRSxDQUFDLEVBQUVHLElBQUksRUFBRVgsR0FBRyxFQUFFO3dCQUNsRixNQUFNQyxTQUEyQzs0QkFDL0NHLFdBQVdKLElBQUlsRixRQUFRb0UsTUFBTSxDQUFDeEQsZ0JBQWdCLEVBQUU7Z0NBQzlDTixRQUFRO29DQUFDTixRQUFRb0UsTUFBTSxDQUFDc0IsZUFBZSxDQUFDSixTQUFTO2lDQUFDO2dDQUNsRG5CLFlBQVk7b0NBQUNuRSxRQUFRb0UsTUFBTSxDQUFDeEQsZ0JBQWdCLENBQUNXLEVBQUU7aUNBQUM7NEJBQ2xEO3dCQUNGO3dCQUVBLElBQUl1RSxJQUFBQSxnQ0FBZSxFQUFDbkUsTUFBTXJCLE1BQU0sR0FBRzs0QkFDakM2RSxPQUFPWSxRQUFRLEdBQUdGLEtBQUs3RixRQUFRb0UsTUFBTSxDQUFDLENBQUMsRUFBRXNCLGVBQWUsUUFBUSxDQUFDLENBQUM7d0JBQ3BFO3dCQUVBQyxvQkFBb0JqRSxPQUFPLENBQUMsQ0FBQ3NFLEtBQUtDOzRCQUNoQ2QsTUFBTSxDQUFDYyxJQUFJLEdBQUdKLEtBQUs3RixRQUFRb0UsTUFBTSxDQUFDNEIsSUFBSTt3QkFDeEM7d0JBRUEsT0FBT2I7b0JBQ1Q7b0JBRUFuRixRQUFRaUYsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFUyxlQUFlLENBQUMsQ0FBQyxHQUFHRTtvQkFFbkQ7Z0JBQ0Y7WUFFQSxLQUFLO2dCQUFVO29CQUNiakUsTUFBTXVFLE1BQU0sQ0FBQ3hFLE9BQU8sQ0FBQyxDQUFDeUU7d0JBQ3BCLE1BQU1DLGlCQUFpQixDQUFDLEVBQUVuRixjQUFjLFFBQVEsRUFBRWlCLElBQUFBLG9CQUFXLEVBQUNpRSxNQUFNRSxJQUFJLEVBQUUsQ0FBQzt3QkFDM0UsSUFBSSxDQUFDckcsUUFBUW9FLE1BQU0sQ0FBQ2dDLGVBQWUsRUFBRTs0QkFDbkMsTUFBTXZDLGNBQStDO2dDQUNuRHdCLFFBQVF0QixJQUFBQSxlQUFPLEVBQUMsVUFBVUMsT0FBTztnQ0FDakNzQixXQUFXcEIsb0NBQWlCLENBQUNsRCxtQkFBbUIsQ0FBQyxjQUM5Q21ELFVBQVUsQ0FBQyxJQUFNbkUsUUFBUW9FLE1BQU0sQ0FBQ25ELGNBQWMsQ0FBQ00sRUFBRSxFQUFFO29DQUFFOEMsVUFBVTtnQ0FBVSxHQUN6RUwsT0FBTztnQ0FDVnNDLE9BQU9DLElBQUFBLFlBQUksRUFBQyxTQUFTdkMsT0FBTzs0QkFDOUI7NEJBRUEsTUFBTU0sa0JBR0YsQ0FBQzs0QkFFTCxJQUFJM0MsTUFBTVcsU0FBUyxJQUFJdEMsUUFBUW1DLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDQyxZQUFZLEVBQUU7Z0NBQzFEd0IsWUFBWTBCLE9BQU8sR0FBR3ZGLFFBQVFzRCxLQUFLLENBQUNrQixhQUFhLENBQUMsV0FBV1IsT0FBTztnQ0FDcEVNLGdCQUFnQmtDLHNCQUFzQixHQUFHLENBQUM5QixPQUN4Q25DLElBQUFBLGNBQU0sSUFBR29DLEVBQUUsQ0FBQ0QsS0FBS1ksU0FBUyxFQUFFWixLQUFLNEIsS0FBSyxFQUFFNUIsS0FBS1csTUFBTSxFQUFFWCxLQUFLYSxPQUFPOzRCQUNyRSxPQUFPO2dDQUNMakIsZ0JBQWdCbUMsZ0JBQWdCLEdBQUcsQ0FBQy9CLE9BQ2xDbkMsSUFBQUEsY0FBTSxJQUFHb0MsRUFBRSxDQUFDRCxLQUFLWSxTQUFTLEVBQUVaLEtBQUs0QixLQUFLLEVBQUU1QixLQUFLVyxNQUFNOzRCQUN2RDs0QkFFQSxNQUFNLEVBQUV4RSxrQkFBa0I4RSxtQkFBbUIsRUFBRSxHQUFHZCxJQUFBQSxpQkFBVSxFQUFDO2dDQUMzRDdFO2dDQUNBNkQ7Z0NBQ0FTO2dDQUNBbEU7Z0NBQ0FFLFFBQVE2RixNQUFNN0YsTUFBTTtnQ0FDcEJTO2dDQUNBQztnQ0FDQUM7Z0NBQ0E2RCxXQUFXc0I7NEJBQ2I7NEJBRUEsTUFBTU0sc0JBQXNCekIsSUFBQUEscUJBQVMsRUFDbkNqRixRQUFRb0UsTUFBTSxDQUFDZ0MsZUFBZSxFQUM5QixDQUFDLEVBQUVQLElBQUksRUFBRVgsR0FBRyxFQUFFO2dDQUNaLE1BQU1DLFNBQTJDO29DQUMvQ0csV0FBV0osSUFBSWxGLFFBQVFvRSxNQUFNLENBQUNuRCxjQUFjLEVBQUU7d0NBQzVDWCxRQUFROzRDQUFDTixRQUFRb0UsTUFBTSxDQUFDZ0MsZUFBZSxDQUFDZCxTQUFTO3lDQUFDO3dDQUNsRG5CLFlBQVk7NENBQUNuRSxRQUFRb0UsTUFBTSxDQUFDbkQsY0FBYyxDQUFDTSxFQUFFO3lDQUFDO29DQUNoRDtnQ0FDRjtnQ0FFQSxJQUFJdUUsSUFBQUEsZ0NBQWUsRUFBQ0ssTUFBTTdGLE1BQU0sR0FBRztvQ0FDakM2RSxPQUFPWSxRQUFRLEdBQUdGLEtBQUs3RixRQUFRb0UsTUFBTSxDQUFDLENBQUMsRUFBRWdDLGVBQWUsUUFBUSxDQUFDLENBQUM7Z0NBQ3BFO2dDQUVBVCxvQkFBb0JqRSxPQUFPLENBQUMsQ0FBQ3NFLEtBQUtDO29DQUNoQ2QsTUFBTSxDQUFDYyxJQUFJLEdBQUdKLEtBQUs3RixRQUFRb0UsTUFBTSxDQUFDNEIsSUFBSTtnQ0FDeEM7Z0NBRUEsT0FBT2I7NEJBQ1Q7NEJBR0ZuRixRQUFRaUYsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFbUIsZUFBZSxDQUFDLENBQUMsR0FBR007d0JBQ3JELE9BQU8sSUFBSUMsUUFBUUMsR0FBRyxDQUFDQyxRQUFRLEtBQUssY0FBYzs0QkFDaERDLElBQUFBLGtFQUFnQyxFQUFDO2dDQUMvQlg7Z0NBQ0E3RCxXQUFXWCxNQUFNVyxTQUFTO2dDQUMxQnJCO2dDQUNBOEYsT0FBTy9HLFFBQVFvRSxNQUFNLENBQUNnQyxlQUFlOzRCQUN2Qzt3QkFDRjt3QkFFQXJGLHFCQUFxQmdFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRW9CLE1BQU1FLElBQUksQ0FBQyxDQUFDLEVBQUVEO29CQUNwRDtvQkFFQTtnQkFDRjtZQUVBLEtBQUs7WUFDTCxLQUFLO2dCQUFTO29CQUNaLElBQUksQ0FBRSxDQUFBLFVBQVV6RSxLQUFJLEdBQUk7d0JBQ3RCLE1BQU0sRUFDSlQsbUJBQW1COEYsc0JBQXNCLEVBQ3pDM0YsNkJBQTZCNEYsZ0NBQWdDLEVBQzdEOUYsK0JBQStCK0Ysa0NBQWtDLEVBQ2pFOUYsb0JBQW9CK0YsdUJBQXVCLEVBQzVDLEdBQUdwSCxlQUFlOzRCQUNqQkM7NEJBQ0FDOzRCQUNBQzs0QkFDQUM7NEJBQ0FDOzRCQUNBQzs0QkFDQUMsUUFBUXFCLE1BQU1yQixNQUFNOzRCQUNwQkM7NEJBQ0FDOzRCQUNBQzs0QkFDQUM7NEJBQ0FDLGNBQWNDOzRCQUNkQTs0QkFDQUM7NEJBQ0FDOzRCQUNBQzs0QkFDQUM7NEJBQ0FDO3dCQUNGO3dCQUVBLElBQUkrRix3QkFBd0I5RixvQkFBb0I7d0JBQ2hELElBQUlnRyxvQ0FBb0MvRixnQ0FBZ0M7d0JBQ3hFLElBQUlnRyx5QkFBeUIvRixxQkFBcUI7d0JBQ2xELElBQUk2RixrQ0FBa0M1Riw4QkFBOEI7d0JBQ3BFO29CQUNGO29CQUVBLE1BQU0sRUFDSkgsbUJBQW1COEYsc0JBQXNCLEVBQ3pDM0YsNkJBQTZCNEYsZ0NBQWdDLEVBQzdEOUYsK0JBQStCK0Ysa0NBQWtDLEVBQ2pFOUYsb0JBQW9CK0YsdUJBQXVCLEVBQzVDLEdBQUdwSCxlQUFlO3dCQUNqQkM7d0JBQ0FDO3dCQUNBQyxjQUFjLENBQUMsRUFBRTJCLFdBQVcsQ0FBQyxDQUFDO3dCQUM5QjFCO3dCQUNBQzt3QkFDQUMsYUFBYSxDQUFDLEVBQUV5QixVQUFVLENBQUMsQ0FBQzt3QkFDNUJ4QixRQUFRcUIsTUFBTXJCLE1BQU07d0JBQ3BCQyxnQkFBZ0JvQixNQUFNVyxTQUFTO3dCQUMvQjlCO3dCQUNBQzt3QkFDQUM7d0JBQ0FDLGNBQWMsQ0FBQyxFQUFFQyxnQkFBZ0IsQ0FBQyxFQUFFaUIsV0FBVyxDQUFDO3dCQUNoRGpCO3dCQUNBQzt3QkFDQUM7d0JBQ0FDO3dCQUNBQzt3QkFDQUM7b0JBQ0Y7b0JBRUEsSUFBSStGLHdCQUF3QjlGLG9CQUFvQjtvQkFDaEQsSUFBSWdHLG9DQUFvQy9GLGdDQUFnQztvQkFDeEUsSUFBSWdHLHlCQUF5Qi9GLHFCQUFxQjtvQkFDbEQsSUFBSTZGLGtDQUFrQzVGLDhCQUE4QjtvQkFDcEU7Z0JBQ0Y7WUFFQSxLQUFLO2dCQUFRO29CQUNYLE1BQU0sRUFDSkgsbUJBQW1Ca0csb0JBQW9CLEVBQ3ZDL0YsNkJBQTZCZ0csOEJBQThCLEVBQzNEbEcsK0JBQStCbUcsZ0NBQWdDLEVBQy9EbEcsb0JBQW9CbUcscUJBQXFCLEVBQzFDLEdBQUd4SCxlQUFlO3dCQUNqQkM7d0JBQ0FDO3dCQUNBQzt3QkFDQUM7d0JBQ0FDO3dCQUNBQzt3QkFDQUMsUUFBUXFCLE1BQU02RixJQUFJLENBQUMvRCxHQUFHLENBQUMsQ0FBQ2dFLE1BQVMsQ0FBQTtnQ0FBRSxHQUFHQSxHQUFHO2dDQUFFL0UsTUFBTTs0QkFBTSxDQUFBO3dCQUN2RG5DO3dCQUNBQzt3QkFDQUM7d0JBQ0FDO3dCQUNBQzt3QkFDQUM7d0JBQ0FDO3dCQUNBQzt3QkFDQUM7d0JBQ0FDO3dCQUNBQztvQkFDRjtvQkFFQSxJQUFJbUcsc0JBQXNCbEcsb0JBQW9CO29CQUM5QyxJQUFJb0csa0NBQWtDbkcsZ0NBQWdDO29CQUN0RSxJQUFJb0csdUJBQXVCbkcscUJBQXFCO29CQUNoRCxJQUFJaUcsZ0NBQWdDaEcsOEJBQThCO29CQUVsRTtnQkFDRjtZQUVBLEtBQUs7WUFDTCxLQUFLO2dCQUFlO29CQUNsQixNQUFNLEVBQ0pILG1CQUFtQndHLG9CQUFvQixFQUN2Q3JHLDZCQUE2QnNHLDhCQUE4QixFQUMzRHhHLCtCQUErQnlHLGdDQUFnQyxFQUMvRHhHLG9CQUFvQnlHLHFCQUFxQixFQUMxQyxHQUFHOUgsZUFBZTt3QkFDakJDO3dCQUNBQzt3QkFDQUM7d0JBQ0FDO3dCQUNBQzt3QkFDQUM7d0JBQ0FDLFFBQVFxQixNQUFNckIsTUFBTTt3QkFDcEJDO3dCQUNBQzt3QkFDQUM7d0JBQ0FDO3dCQUNBQyxjQUFjQzt3QkFDZEE7d0JBQ0FDO3dCQUNBQzt3QkFDQUM7d0JBQ0FDO3dCQUNBQztvQkFDRjtvQkFFQSxJQUFJeUcsc0JBQXNCeEcsb0JBQW9CO29CQUM5QyxJQUFJMEcsa0NBQWtDekcsZ0NBQWdDO29CQUN0RSxJQUFJMEcsdUJBQXVCekcscUJBQXFCO29CQUNoRCxJQUFJdUcsZ0NBQWdDdEcsOEJBQThCO29CQUNsRTtnQkFDRjtZQUVBLEtBQUs7WUFDTCxLQUFLO2dCQUNILElBQUl5RyxNQUFNQyxPQUFPLENBQUNwRyxNQUFNcUcsVUFBVSxHQUFHO29CQUNuQ3JHLE1BQU1xRyxVQUFVLENBQUN0RyxPQUFPLENBQUMsQ0FBQ3VHLFdBQWFuSCxjQUFjb0gsR0FBRyxDQUFDRDtnQkFDM0QsT0FBTztvQkFDTG5ILGNBQWNvSCxHQUFHLENBQUN2RyxNQUFNcUcsVUFBVTtnQkFDcEM7Z0JBRUEsSUFBSXJHLE1BQU1XLFNBQVMsSUFBSXRDLFFBQVFtQyxPQUFPLENBQUNDLE1BQU0sQ0FBQ0MsWUFBWSxFQUFFO29CQUMxRGxCLGdDQUFnQztnQkFDbEM7Z0JBQ0E7WUFFRjtnQkFDRTtRQUNKO1FBRUEsTUFBTWdILFlBQVl4RyxNQUFNeUcsS0FBSyxJQUFJekcsTUFBTXlHLEtBQUssQ0FBQ0QsU0FBUztRQUV0RCxJQUFJcEcsV0FBVyxDQUFDRCxVQUFVLElBQUksY0FBY0gsU0FBU0EsTUFBTTBHLFFBQVEsSUFBSSxDQUFDRixXQUFXO1lBQ2pGcEcsV0FBVyxDQUFDRCxVQUFVLENBQUNrQyxPQUFPO1FBQ2hDO0lBQ0Y7SUFFQSxPQUFPO1FBQ0w5QztRQUNBRztRQUNBRjtRQUNBQztJQUNGO0FBQ0YifQ==
435
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvdHJhdmVyc2VGaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgUmVsYXRpb24gfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB0eXBlIHsgSW5kZXhCdWlsZGVyLCBQZ0NvbHVtbkJ1aWxkZXIsIFVuaXF1ZUNvbnN0cmFpbnRCdWlsZGVyIH0gZnJvbSAnZHJpenpsZS1vcm0vcGctY29yZSdcbmltcG9ydCB0eXBlIHsgRmllbGQsIFRhYkFzRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyByZWxhdGlvbnMgfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB7XG4gIFBnTnVtZXJpY0J1aWxkZXIsXG4gIFBnVmFyY2hhckJ1aWxkZXIsXG4gIGJvb2xlYW4sXG4gIGluZGV4LFxuICBpbnRlZ2VyLFxuICBqc29uYixcbiAgbnVtZXJpYyxcbiAgcGdFbnVtLFxuICB0ZXh0LFxuICB0aW1lc3RhbXAsXG4gIHZhcmNoYXIsXG59IGZyb20gJ2RyaXp6bGUtb3JtL3BnLWNvcmUnXG5pbXBvcnQgeyBJbnZhbGlkQ29uZmlndXJhdGlvbiB9IGZyb20gJ3BheWxvYWQvZXJyb3JzJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSwgb3B0aW9uSXNPYmplY3QgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuaW1wb3J0IHRvU25ha2VDYXNlIGZyb20gJ3RvLXNuYWtlLWNhc2UnXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJpY0NvbHVtbnMsIFBvc3RncmVzQWRhcHRlciB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBoYXNMb2NhbGVzVGFibGUgfSBmcm9tICcuLi91dGlsaXRpZXMvaGFzTG9jYWxlc1RhYmxlJ1xuaW1wb3J0IHsgYnVpbGRUYWJsZSB9IGZyb20gJy4vYnVpbGQnXG5pbXBvcnQgeyBjcmVhdGVJbmRleCB9IGZyb20gJy4vY3JlYXRlSW5kZXgnXG5pbXBvcnQgeyBwYXJlbnRJRENvbHVtbk1hcCB9IGZyb20gJy4vcGFyZW50SURDb2x1bW5NYXAnXG5pbXBvcnQgeyB2YWxpZGF0ZUV4aXN0aW5nQmxvY2tJc0lkZW50aWNhbCB9IGZyb20gJy4vdmFsaWRhdGVFeGlzdGluZ0Jsb2NrSXNJZGVudGljYWwnXG5cbnR5cGUgQXJncyA9IHtcbiAgYWRhcHRlcjogUG9zdGdyZXNBZGFwdGVyXG4gIGJ1aWxkUmVsYXRpb25zaGlwczogYm9vbGVhblxuICBjb2x1bW5QcmVmaXg/OiBzdHJpbmdcbiAgY29sdW1uczogUmVjb3JkPHN0cmluZywgUGdDb2x1bW5CdWlsZGVyPlxuICBkaXNhYmxlVW5pcXVlPzogYm9vbGVhblxuICBmaWVsZFByZWZpeD86IHN0cmluZ1xuICBmaWVsZHM6IChGaWVsZCB8IFRhYkFzRmllbGQpW11cbiAgZm9yY2VMb2NhbGl6ZWQ/OiBib29sZWFuXG4gIGluZGV4ZXM6IFJlY29yZDxzdHJpbmcsIChjb2xzOiBHZW5lcmljQ29sdW1ucykgPT4gSW5kZXhCdWlsZGVyPlxuICBsb2NhbGVzQ29sdW1uczogUmVjb3JkPHN0cmluZywgUGdDb2x1bW5CdWlsZGVyPlxuICBsb2NhbGVzSW5kZXhlczogUmVjb3JkPHN0cmluZywgKGNvbHM6IEdlbmVyaWNDb2x1bW5zKSA9PiBJbmRleEJ1aWxkZXI+XG4gIG5ld1RhYmxlTmFtZTogc3RyaW5nXG4gIHBhcmVudFRhYmxlTmFtZTogc3RyaW5nXG4gIHJlbGF0aW9uc1RvQnVpbGQ6IE1hcDxzdHJpbmcsIHN0cmluZz5cbiAgcmVsYXRpb25zaGlwczogU2V0PHN0cmluZz5cbiAgcm9vdFJlbGF0aW9uc1RvQnVpbGQ/OiBNYXA8c3RyaW5nLCBzdHJpbmc+XG4gIHJvb3RUYWJsZUlEQ29sVHlwZTogc3RyaW5nXG4gIHJvb3RUYWJsZU5hbWU6IHN0cmluZ1xufVxuXG50eXBlIFJlc3VsdCA9IHtcbiAgaGFzTG9jYWxpemVkRmllbGQ6IGJvb2xlYW5cbiAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkOiBib29sZWFuXG4gIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkOiBib29sZWFuXG4gIGhhc01hbnlOdW1iZXJGaWVsZDogJ2luZGV4JyB8IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IHRyYXZlcnNlRmllbGRzID0gKHtcbiAgYWRhcHRlcixcbiAgYnVpbGRSZWxhdGlvbnNoaXBzLFxuICBjb2x1bW5QcmVmaXgsXG4gIGNvbHVtbnMsXG4gIGRpc2FibGVVbmlxdWUgPSBmYWxzZSxcbiAgZmllbGRQcmVmaXgsXG4gIGZpZWxkcyxcbiAgZm9yY2VMb2NhbGl6ZWQsXG4gIGluZGV4ZXMsXG4gIGxvY2FsZXNDb2x1bW5zLFxuICBsb2NhbGVzSW5kZXhlcyxcbiAgbmV3VGFibGVOYW1lLFxuICBwYXJlbnRUYWJsZU5hbWUsXG4gIHJlbGF0aW9uc1RvQnVpbGQsXG4gIHJlbGF0aW9uc2hpcHMsXG4gIHJvb3RSZWxhdGlvbnNUb0J1aWxkLFxuICByb290VGFibGVJRENvbFR5cGUsXG4gIHJvb3RUYWJsZU5hbWUsXG59OiBBcmdzKTogUmVzdWx0ID0+IHtcbiAgbGV0IGhhc0xvY2FsaXplZEZpZWxkID0gZmFsc2VcbiAgbGV0IGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkID0gZmFsc2VcbiAgbGV0IGhhc01hbnlOdW1iZXJGaWVsZDogJ2luZGV4JyB8IGJvb2xlYW4gPSBmYWxzZVxuICBsZXQgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkID0gZmFsc2VcblxuICBsZXQgcGFyZW50SURDb2xUeXBlID0gJ2ludGVnZXInXG4gIGlmIChjb2x1bW5zLmlkIGluc3RhbmNlb2YgUGdOdW1lcmljQnVpbGRlcikgcGFyZW50SURDb2xUeXBlID0gJ251bWVyaWMnXG4gIGlmIChjb2x1bW5zLmlkIGluc3RhbmNlb2YgUGdWYXJjaGFyQnVpbGRlcikgcGFyZW50SURDb2xUeXBlID0gJ3ZhcmNoYXInXG5cbiAgZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgaWYgKCduYW1lJyBpbiBmaWVsZCAmJiBmaWVsZC5uYW1lID09PSAnaWQnKSByZXR1cm5cbiAgICBsZXQgY29sdW1uTmFtZTogc3RyaW5nXG4gICAgbGV0IGZpZWxkTmFtZTogc3RyaW5nXG5cbiAgICBsZXQgdGFyZ2V0VGFibGUgPSBjb2x1bW5zXG4gICAgbGV0IHRhcmdldEluZGV4ZXMgPSBpbmRleGVzXG5cbiAgICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkpIHtcbiAgICAgIGNvbHVtbk5hbWUgPSBgJHtjb2x1bW5QcmVmaXggfHwgJyd9JHtmaWVsZC5uYW1lWzBdID09PSAnXycgPyAnXycgOiAnJ30ke3RvU25ha2VDYXNlKFxuICAgICAgICBmaWVsZC5uYW1lLFxuICAgICAgKX1gXG4gICAgICBmaWVsZE5hbWUgPSBgJHtmaWVsZFByZWZpeCB8fCAnJ30ke2ZpZWxkLm5hbWV9YFxuXG4gICAgICAvLyBJZiBmaWVsZCBpcyBsb2NhbGl6ZWQsXG4gICAgICAvLyBhZGQgdGhlIGNvbHVtbiB0byB0aGUgbG9jYWxlIHRhYmxlIGluc3RlYWQgb2YgbWFpbiB0YWJsZVxuICAgICAgaWYgKGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uICYmIChmaWVsZC5sb2NhbGl6ZWQgfHwgZm9yY2VMb2NhbGl6ZWQpKSB7XG4gICAgICAgIGhhc0xvY2FsaXplZEZpZWxkID0gdHJ1ZVxuICAgICAgICB0YXJnZXRUYWJsZSA9IGxvY2FsZXNDb2x1bW5zXG4gICAgICAgIHRhcmdldEluZGV4ZXMgPSBsb2NhbGVzSW5kZXhlc1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIChmaWVsZC51bmlxdWUgfHwgZmllbGQuaW5kZXgpICYmXG4gICAgICAgICFbJ2FycmF5JywgJ2Jsb2NrcycsICdncm91cCcsICdwb2ludCcsICdyZWxhdGlvbnNoaXAnLCAndXBsb2FkJ10uaW5jbHVkZXMoZmllbGQudHlwZSkgJiZcbiAgICAgICAgIShmaWVsZC50eXBlID09PSAnbnVtYmVyJyAmJiBmaWVsZC5oYXNNYW55ID09PSB0cnVlKVxuICAgICAgKSB7XG4gICAgICAgIHRhcmdldEluZGV4ZXNbYCR7ZmllbGQubmFtZX1JZHhgXSA9IGNyZWF0ZUluZGV4KHtcbiAgICAgICAgICBuYW1lOiBmaWVsZE5hbWUsXG4gICAgICAgICAgY29sdW1uTmFtZSxcbiAgICAgICAgICB1bmlxdWU6IGRpc2FibGVVbmlxdWUgIT09IHRydWUgJiYgZmllbGQudW5pcXVlLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgICAgY2FzZSAndGV4dCc6XG4gICAgICBjYXNlICdlbWFpbCc6XG4gICAgICBjYXNlICdjb2RlJzpcbiAgICAgIGNhc2UgJ3RleHRhcmVhJzoge1xuICAgICAgICB0YXJnZXRUYWJsZVtmaWVsZE5hbWVdID0gdmFyY2hhcihjb2x1bW5OYW1lKVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdudW1iZXInOiB7XG4gICAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICAgICAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkID0gdHJ1ZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChmaWVsZC5pbmRleCkge1xuICAgICAgICAgICAgaGFzTWFueU51bWJlckZpZWxkID0gJ2luZGV4J1xuICAgICAgICAgIH0gZWxzZSBpZiAoIWhhc01hbnlOdW1iZXJGaWVsZCkge1xuICAgICAgICAgICAgaGFzTWFueU51bWJlckZpZWxkID0gdHJ1ZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChmaWVsZC51bmlxdWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29uZmlndXJhdGlvbihcbiAgICAgICAgICAgICAgJ1VuaXF1ZSBpcyBub3Qgc3VwcG9ydGVkIGluIFBvc3RncmVzIGZvciBoYXNNYW55IG51bWJlciBmaWVsZHMuJyxcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFyZ2V0VGFibGVbZmllbGROYW1lXSA9IG51bWVyaWMoY29sdW1uTmFtZSlcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdyaWNoVGV4dCc6XG4gICAgICBjYXNlICdqc29uJzoge1xuICAgICAgICB0YXJnZXRUYWJsZVtmaWVsZE5hbWVdID0ganNvbmIoY29sdW1uTmFtZSlcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnZGF0ZSc6IHtcbiAgICAgICAgdGFyZ2V0VGFibGVbZmllbGROYW1lXSA9IHRpbWVzdGFtcChjb2x1bW5OYW1lLCB7XG4gICAgICAgICAgbW9kZTogJ3N0cmluZycsXG4gICAgICAgICAgcHJlY2lzaW9uOiAzLFxuICAgICAgICAgIHdpdGhUaW1lem9uZTogdHJ1ZSxcbiAgICAgICAgfSlcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAncG9pbnQnOiB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3JhZGlvJzpcbiAgICAgIGNhc2UgJ3NlbGVjdCc6IHtcbiAgICAgICAgY29uc3QgZW51bU5hbWUgPSBgZW51bV8ke25ld1RhYmxlTmFtZX1fJHtjb2x1bW5QcmVmaXggfHwgJyd9JHt0b1NuYWtlQ2FzZShmaWVsZC5uYW1lKX1gXG5cbiAgICAgICAgYWRhcHRlci5lbnVtc1tlbnVtTmFtZV0gPSBwZ0VudW0oXG4gICAgICAgICAgZW51bU5hbWUsXG4gICAgICAgICAgZmllbGQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgaWYgKG9wdGlvbklzT2JqZWN0KG9wdGlvbikpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi52YWx1ZVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uXG4gICAgICAgICAgfSkgYXMgW3N0cmluZywgLi4uc3RyaW5nW11dLFxuICAgICAgICApXG5cbiAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdzZWxlY3QnICYmIGZpZWxkLmhhc01hbnkpIHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RUYWJsZU5hbWUgPSBgJHtuZXdUYWJsZU5hbWV9XyR7dG9TbmFrZUNhc2UoZmllbGROYW1lKX1gXG4gICAgICAgICAgY29uc3QgYmFzZUNvbHVtbnM6IFJlY29yZDxzdHJpbmcsIFBnQ29sdW1uQnVpbGRlcj4gPSB7XG4gICAgICAgICAgICBvcmRlcjogaW50ZWdlcignb3JkZXInKS5ub3ROdWxsKCksXG4gICAgICAgICAgICBwYXJlbnQ6IHBhcmVudElEQ29sdW1uTWFwW3BhcmVudElEQ29sVHlwZV0oJ3BhcmVudF9pZCcpXG4gICAgICAgICAgICAgIC5yZWZlcmVuY2VzKCgpID0+IGFkYXB0ZXIudGFibGVzW3BhcmVudFRhYmxlTmFtZV0uaWQsIHsgb25EZWxldGU6ICdjYXNjYWRlJyB9KVxuICAgICAgICAgICAgICAubm90TnVsbCgpLFxuICAgICAgICAgICAgdmFsdWU6IGFkYXB0ZXIuZW51bXNbZW51bU5hbWVdKCd2YWx1ZScpLFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGJhc2VFeHRyYUNvbmZpZzogUmVjb3JkPFxuICAgICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgICAgKGNvbHM6IEdlbmVyaWNDb2x1bW5zKSA9PiBJbmRleEJ1aWxkZXIgfCBVbmlxdWVDb25zdHJhaW50QnVpbGRlclxuICAgICAgICAgID4gPSB7XG4gICAgICAgICAgICBvcmRlcklkeDogKGNvbHMpID0+IGluZGV4KCdvcmRlcl9pZHgnKS5vbihjb2xzLm9yZGVyKSxcbiAgICAgICAgICAgIHBhcmVudElkeDogKGNvbHMpID0+IGluZGV4KCdwYXJlbnRfaWR4Jykub24oY29scy5wYXJlbnQpLFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgICAgIGJhc2VDb2x1bW5zLmxvY2FsZSA9IGFkYXB0ZXIuZW51bXMuZW51bV9fbG9jYWxlcygnbG9jYWxlJykubm90TnVsbCgpXG4gICAgICAgICAgICBiYXNlRXh0cmFDb25maWcubG9jYWxlSWR4ID0gKGNvbHMpID0+IGluZGV4KCdsb2NhbGVfaWR4Jykub24oY29scy5sb2NhbGUpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGZpZWxkLmluZGV4KSB7XG4gICAgICAgICAgICBiYXNlRXh0cmFDb25maWcudmFsdWUgPSAoY29scykgPT4gaW5kZXgoJ3ZhbHVlX2lkeCcpLm9uKGNvbHMudmFsdWUpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnVpbGRUYWJsZSh7XG4gICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgYmFzZUNvbHVtbnMsXG4gICAgICAgICAgICBiYXNlRXh0cmFDb25maWcsXG4gICAgICAgICAgICBkaXNhYmxlVW5pcXVlLFxuICAgICAgICAgICAgZmllbGRzOiBbXSxcbiAgICAgICAgICAgIHRhYmxlTmFtZTogc2VsZWN0VGFibGVOYW1lLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICByZWxhdGlvbnNUb0J1aWxkLnNldChmaWVsZE5hbWUsIHNlbGVjdFRhYmxlTmFtZSlcblxuICAgICAgICAgIGNvbnN0IHNlbGVjdFRhYmxlUmVsYXRpb25zID0gcmVsYXRpb25zKGFkYXB0ZXIudGFibGVzW3NlbGVjdFRhYmxlTmFtZV0sICh7IG9uZSB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIFJlbGF0aW9uPHN0cmluZz4+ID0ge1xuICAgICAgICAgICAgICBwYXJlbnQ6IG9uZShhZGFwdGVyLnRhYmxlc1twYXJlbnRUYWJsZU5hbWVdLCB7XG4gICAgICAgICAgICAgICAgZmllbGRzOiBbYWRhcHRlci50YWJsZXNbc2VsZWN0VGFibGVOYW1lXS5wYXJlbnRdLFxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFthZGFwdGVyLnRhYmxlc1twYXJlbnRUYWJsZU5hbWVdLmlkXSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgYWRhcHRlci5yZWxhdGlvbnNbYHJlbGF0aW9uXyR7c2VsZWN0VGFibGVOYW1lfWBdID0gc2VsZWN0VGFibGVSZWxhdGlvbnNcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YXJnZXRUYWJsZVtmaWVsZE5hbWVdID0gYWRhcHRlci5lbnVtc1tlbnVtTmFtZV0oZmllbGROYW1lKVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2NoZWNrYm94Jzoge1xuICAgICAgICB0YXJnZXRUYWJsZVtmaWVsZE5hbWVdID0gYm9vbGVhbihjb2x1bW5OYW1lKVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdhcnJheSc6IHtcbiAgICAgICAgY29uc3QgYXJyYXlUYWJsZU5hbWUgPSBgJHtuZXdUYWJsZU5hbWV9XyR7dG9TbmFrZUNhc2UoZmllbGQubmFtZSl9YFxuICAgICAgICBjb25zdCBiYXNlQ29sdW1uczogUmVjb3JkPHN0cmluZywgUGdDb2x1bW5CdWlsZGVyPiA9IHtcbiAgICAgICAgICBfb3JkZXI6IGludGVnZXIoJ19vcmRlcicpLm5vdE51bGwoKSxcbiAgICAgICAgICBfcGFyZW50SUQ6IHBhcmVudElEQ29sdW1uTWFwW3BhcmVudElEQ29sVHlwZV0oJ19wYXJlbnRfaWQnKVxuICAgICAgICAgICAgLnJlZmVyZW5jZXMoKCkgPT4gYWRhcHRlci50YWJsZXNbcGFyZW50VGFibGVOYW1lXS5pZCwgeyBvbkRlbGV0ZTogJ2Nhc2NhZGUnIH0pXG4gICAgICAgICAgICAubm90TnVsbCgpLFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYmFzZUV4dHJhQ29uZmlnOiBSZWNvcmQ8XG4gICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgIChjb2xzOiBHZW5lcmljQ29sdW1ucykgPT4gSW5kZXhCdWlsZGVyIHwgVW5pcXVlQ29uc3RyYWludEJ1aWxkZXJcbiAgICAgICAgPiA9IHtcbiAgICAgICAgICBfb3JkZXJJZHg6IChjb2xzKSA9PiBpbmRleCgnX29yZGVyX2lkeCcpLm9uKGNvbHMuX29yZGVyKSxcbiAgICAgICAgICBfcGFyZW50SURJZHg6IChjb2xzKSA9PiBpbmRleCgnX3BhcmVudF9pZF9pZHgnKS5vbihjb2xzLl9wYXJlbnRJRCksXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgICAgYmFzZUNvbHVtbnMuX2xvY2FsZSA9IGFkYXB0ZXIuZW51bXMuZW51bV9fbG9jYWxlcygnX2xvY2FsZScpLm5vdE51bGwoKVxuICAgICAgICAgIGJhc2VFeHRyYUNvbmZpZy5fbG9jYWxlSWR4ID0gKGNvbHMpID0+IGluZGV4KCdfbG9jYWxlX2lkeCcpLm9uKGNvbHMuX2xvY2FsZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgcmVsYXRpb25zVG9CdWlsZDogc3ViUmVsYXRpb25zVG9CdWlsZCB9ID0gYnVpbGRUYWJsZSh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBiYXNlQ29sdW1ucyxcbiAgICAgICAgICBiYXNlRXh0cmFDb25maWcsXG4gICAgICAgICAgZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICByb290UmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICByb290UmVsYXRpb25zaGlwczogcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICByb290VGFibGVJRENvbFR5cGUsXG4gICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgICB0YWJsZU5hbWU6IGFycmF5VGFibGVOYW1lLFxuICAgICAgICB9KVxuXG4gICAgICAgIHJlbGF0aW9uc1RvQnVpbGQuc2V0KGZpZWxkTmFtZSwgYXJyYXlUYWJsZU5hbWUpXG5cbiAgICAgICAgY29uc3QgYXJyYXlUYWJsZVJlbGF0aW9ucyA9IHJlbGF0aW9ucyhhZGFwdGVyLnRhYmxlc1thcnJheVRhYmxlTmFtZV0sICh7IG1hbnksIG9uZSB9KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBSZWxhdGlvbjxzdHJpbmc+PiA9IHtcbiAgICAgICAgICAgIF9wYXJlbnRJRDogb25lKGFkYXB0ZXIudGFibGVzW3BhcmVudFRhYmxlTmFtZV0sIHtcbiAgICAgICAgICAgICAgZmllbGRzOiBbYWRhcHRlci50YWJsZXNbYXJyYXlUYWJsZU5hbWVdLl9wYXJlbnRJRF0sXG4gICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFthZGFwdGVyLnRhYmxlc1twYXJlbnRUYWJsZU5hbWVdLmlkXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChoYXNMb2NhbGVzVGFibGUoZmllbGQuZmllbGRzKSkge1xuICAgICAgICAgICAgcmVzdWx0Ll9sb2NhbGVzID0gbWFueShhZGFwdGVyLnRhYmxlc1tgJHthcnJheVRhYmxlTmFtZX1fbG9jYWxlc2BdKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHN1YlJlbGF0aW9uc1RvQnVpbGQuZm9yRWFjaCgodmFsLCBrZXkpID0+IHtcbiAgICAgICAgICAgIHJlc3VsdFtrZXldID0gbWFueShhZGFwdGVyLnRhYmxlc1t2YWxdKVxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICAgIH0pXG5cbiAgICAgICAgYWRhcHRlci5yZWxhdGlvbnNbYHJlbGF0aW9uc18ke2FycmF5VGFibGVOYW1lfWBdID0gYXJyYXlUYWJsZVJlbGF0aW9uc1xuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2Jsb2Nrcyc6IHtcbiAgICAgICAgZmllbGQuYmxvY2tzLmZvckVhY2goKGJsb2NrKSA9PiB7XG4gICAgICAgICAgY29uc3QgYmxvY2tUYWJsZU5hbWUgPSBgJHtyb290VGFibGVOYW1lfV9ibG9ja3NfJHt0b1NuYWtlQ2FzZShibG9jay5zbHVnKX1gXG4gICAgICAgICAgaWYgKCFhZGFwdGVyLnRhYmxlc1tibG9ja1RhYmxlTmFtZV0pIHtcbiAgICAgICAgICAgIGNvbnN0IGJhc2VDb2x1bW5zOiBSZWNvcmQ8c3RyaW5nLCBQZ0NvbHVtbkJ1aWxkZXI+ID0ge1xuICAgICAgICAgICAgICBfb3JkZXI6IGludGVnZXIoJ19vcmRlcicpLm5vdE51bGwoKSxcbiAgICAgICAgICAgICAgX3BhcmVudElEOiBwYXJlbnRJRENvbHVtbk1hcFtyb290VGFibGVJRENvbFR5cGVdKCdfcGFyZW50X2lkJylcbiAgICAgICAgICAgICAgICAucmVmZXJlbmNlcygoKSA9PiBhZGFwdGVyLnRhYmxlc1tyb290VGFibGVOYW1lXS5pZCwgeyBvbkRlbGV0ZTogJ2Nhc2NhZGUnIH0pXG4gICAgICAgICAgICAgICAgLm5vdE51bGwoKSxcbiAgICAgICAgICAgICAgX3BhdGg6IHRleHQoJ19wYXRoJykubm90TnVsbCgpLFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBiYXNlRXh0cmFDb25maWc6IFJlY29yZDxcbiAgICAgICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgICAgICAoY29sczogR2VuZXJpY0NvbHVtbnMpID0+IEluZGV4QnVpbGRlciB8IFVuaXF1ZUNvbnN0cmFpbnRCdWlsZGVyXG4gICAgICAgICAgICA+ID0ge1xuICAgICAgICAgICAgICBfb3JkZXJJZHg6IChjb2xzKSA9PiBpbmRleCgnb3JkZXJfaWR4Jykub24oY29scy5fb3JkZXIpLFxuICAgICAgICAgICAgICBfcGFyZW50SURJZHg6IChjb2xzKSA9PiBpbmRleCgncGFyZW50X2lkX2lkeCcpLm9uKGNvbHMuX3BhcmVudElEKSxcbiAgICAgICAgICAgICAgX3BhdGhJZHg6IChjb2xzKSA9PiBpbmRleCgncGF0aF9pZHgnKS5vbihjb2xzLl9wYXRoKSxcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBhZGFwdGVyLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICAgICAgICBiYXNlQ29sdW1ucy5fbG9jYWxlID0gYWRhcHRlci5lbnVtcy5lbnVtX19sb2NhbGVzKCdfbG9jYWxlJykubm90TnVsbCgpXG4gICAgICAgICAgICAgIGJhc2VFeHRyYUNvbmZpZy5fbG9jYWxlSWR4ID0gKGNvbHMpID0+IGluZGV4KCdsb2NhbGVfaWR4Jykub24oY29scy5fbG9jYWxlKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB7IHJlbGF0aW9uc1RvQnVpbGQ6IHN1YlJlbGF0aW9uc1RvQnVpbGQgfSA9IGJ1aWxkVGFibGUoe1xuICAgICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgICBiYXNlQ29sdW1ucyxcbiAgICAgICAgICAgICAgYmFzZUV4dHJhQ29uZmlnLFxuICAgICAgICAgICAgICBkaXNhYmxlVW5pcXVlLFxuICAgICAgICAgICAgICBmaWVsZHM6IGJsb2NrLmZpZWxkcyxcbiAgICAgICAgICAgICAgcm9vdFJlbGF0aW9uc1RvQnVpbGQsXG4gICAgICAgICAgICAgIHJvb3RSZWxhdGlvbnNoaXBzOiByZWxhdGlvbnNoaXBzLFxuICAgICAgICAgICAgICByb290VGFibGVJRENvbFR5cGUsXG4gICAgICAgICAgICAgIHJvb3RUYWJsZU5hbWUsXG4gICAgICAgICAgICAgIHRhYmxlTmFtZTogYmxvY2tUYWJsZU5hbWUsXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBjb25zdCBibG9ja1RhYmxlUmVsYXRpb25zID0gcmVsYXRpb25zKFxuICAgICAgICAgICAgICBhZGFwdGVyLnRhYmxlc1tibG9ja1RhYmxlTmFtZV0sXG4gICAgICAgICAgICAgICh7IG1hbnksIG9uZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBSZWxhdGlvbjxzdHJpbmc+PiA9IHtcbiAgICAgICAgICAgICAgICAgIF9wYXJlbnRJRDogb25lKGFkYXB0ZXIudGFibGVzW3Jvb3RUYWJsZU5hbWVdLCB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkczogW2FkYXB0ZXIudGFibGVzW2Jsb2NrVGFibGVOYW1lXS5fcGFyZW50SURdLFxuICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbYWRhcHRlci50YWJsZXNbcm9vdFRhYmxlTmFtZV0uaWRdLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGhhc0xvY2FsZXNUYWJsZShibG9jay5maWVsZHMpKSB7XG4gICAgICAgICAgICAgICAgICByZXN1bHQuX2xvY2FsZXMgPSBtYW55KGFkYXB0ZXIudGFibGVzW2Ake2Jsb2NrVGFibGVOYW1lfV9sb2NhbGVzYF0pXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3ViUmVsYXRpb25zVG9CdWlsZC5mb3JFYWNoKCh2YWwsIGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBtYW55KGFkYXB0ZXIudGFibGVzW3ZhbF0pXG4gICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgYWRhcHRlci5yZWxhdGlvbnNbYHJlbGF0aW9uc18ke2Jsb2NrVGFibGVOYW1lfWBdID0gYmxvY2tUYWJsZVJlbGF0aW9uc1xuICAgICAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgdmFsaWRhdGVFeGlzdGluZ0Jsb2NrSXNJZGVudGljYWwoe1xuICAgICAgICAgICAgICBibG9jayxcbiAgICAgICAgICAgICAgbG9jYWxpemVkOiBmaWVsZC5sb2NhbGl6ZWQsXG4gICAgICAgICAgICAgIHJvb3RUYWJsZU5hbWUsXG4gICAgICAgICAgICAgIHRhYmxlOiBhZGFwdGVyLnRhYmxlc1tibG9ja1RhYmxlTmFtZV0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJvb3RSZWxhdGlvbnNUb0J1aWxkLnNldChgX2Jsb2Nrc18ke2Jsb2NrLnNsdWd9YCwgYmxvY2tUYWJsZU5hbWUpXG4gICAgICAgIH0pXG5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAndGFiJzpcbiAgICAgIGNhc2UgJ2dyb3VwJzoge1xuICAgICAgICBpZiAoISgnbmFtZScgaW4gZmllbGQpKSB7XG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgaGFzTG9jYWxpemVkRmllbGQ6IGdyb3VwSGFzTG9jYWxpemVkRmllbGQsXG4gICAgICAgICAgICBoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQ6IGdyb3VwSGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkLFxuICAgICAgICAgICAgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQ6IGdyb3VwSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQsXG4gICAgICAgICAgICBoYXNNYW55TnVtYmVyRmllbGQ6IGdyb3VwSGFzTWFueU51bWJlckZpZWxkLFxuICAgICAgICAgIH0gPSB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgYnVpbGRSZWxhdGlvbnNoaXBzLFxuICAgICAgICAgICAgY29sdW1uUHJlZml4LFxuICAgICAgICAgICAgY29sdW1ucyxcbiAgICAgICAgICAgIGRpc2FibGVVbmlxdWUsXG4gICAgICAgICAgICBmaWVsZFByZWZpeCxcbiAgICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgZm9yY2VMb2NhbGl6ZWQsXG4gICAgICAgICAgICBpbmRleGVzLFxuICAgICAgICAgICAgbG9jYWxlc0NvbHVtbnMsXG4gICAgICAgICAgICBsb2NhbGVzSW5kZXhlcyxcbiAgICAgICAgICAgIG5ld1RhYmxlTmFtZTogcGFyZW50VGFibGVOYW1lLFxuICAgICAgICAgICAgcGFyZW50VGFibGVOYW1lLFxuICAgICAgICAgICAgcmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgICByb290UmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICAgIHJvb3RUYWJsZUlEQ29sVHlwZSxcbiAgICAgICAgICAgIHJvb3RUYWJsZU5hbWUsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGlmIChncm91cEhhc0xvY2FsaXplZEZpZWxkKSBoYXNMb2NhbGl6ZWRGaWVsZCA9IHRydWVcbiAgICAgICAgICBpZiAoZ3JvdXBIYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCkgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQgPSB0cnVlXG4gICAgICAgICAgaWYgKGdyb3VwSGFzTWFueU51bWJlckZpZWxkKSBoYXNNYW55TnVtYmVyRmllbGQgPSB0cnVlXG4gICAgICAgICAgaWYgKGdyb3VwSGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkKSBoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQgPSB0cnVlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRGaWVsZDogZ3JvdXBIYXNMb2NhbGl6ZWRGaWVsZCxcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQ6IGdyb3VwSGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkLFxuICAgICAgICAgIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkOiBncm91cEhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkLFxuICAgICAgICAgIGhhc01hbnlOdW1iZXJGaWVsZDogZ3JvdXBIYXNNYW55TnVtYmVyRmllbGQsXG4gICAgICAgIH0gPSB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBidWlsZFJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgY29sdW1uUHJlZml4OiBgJHtjb2x1bW5OYW1lfV9gLFxuICAgICAgICAgIGNvbHVtbnMsXG4gICAgICAgICAgZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICBmaWVsZFByZWZpeDogYCR7ZmllbGROYW1lfV9gLFxuICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgIGZvcmNlTG9jYWxpemVkOiBmaWVsZC5sb2NhbGl6ZWQsXG4gICAgICAgICAgaW5kZXhlcyxcbiAgICAgICAgICBsb2NhbGVzQ29sdW1ucyxcbiAgICAgICAgICBsb2NhbGVzSW5kZXhlcyxcbiAgICAgICAgICBuZXdUYWJsZU5hbWU6IGAke3BhcmVudFRhYmxlTmFtZX1fJHtjb2x1bW5OYW1lfWAsXG4gICAgICAgICAgcGFyZW50VGFibGVOYW1lLFxuICAgICAgICAgIHJlbGF0aW9uc1RvQnVpbGQsXG4gICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICByb290UmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICByb290VGFibGVJRENvbFR5cGUsXG4gICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoZ3JvdXBIYXNMb2NhbGl6ZWRGaWVsZCkgaGFzTG9jYWxpemVkRmllbGQgPSB0cnVlXG4gICAgICAgIGlmIChncm91cEhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkKSBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKGdyb3VwSGFzTWFueU51bWJlckZpZWxkKSBoYXNNYW55TnVtYmVyRmllbGQgPSB0cnVlXG4gICAgICAgIGlmIChncm91cEhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCkgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkID0gdHJ1ZVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICd0YWJzJzoge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgaGFzTG9jYWxpemVkRmllbGQ6IHRhYkhhc0xvY2FsaXplZEZpZWxkLFxuICAgICAgICAgIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZDogdGFiSGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkLFxuICAgICAgICAgIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkOiB0YWJIYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCxcbiAgICAgICAgICBoYXNNYW55TnVtYmVyRmllbGQ6IHRhYkhhc01hbnlOdW1iZXJGaWVsZCxcbiAgICAgICAgfSA9IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgIGJ1aWxkUmVsYXRpb25zaGlwcyxcbiAgICAgICAgICBjb2x1bW5QcmVmaXgsXG4gICAgICAgICAgY29sdW1ucyxcbiAgICAgICAgICBkaXNhYmxlVW5pcXVlLFxuICAgICAgICAgIGZpZWxkUHJlZml4LFxuICAgICAgICAgIGZpZWxkczogZmllbGQudGFicy5tYXAoKHRhYikgPT4gKHsgLi4udGFiLCB0eXBlOiAndGFiJyB9KSksXG4gICAgICAgICAgZm9yY2VMb2NhbGl6ZWQsXG4gICAgICAgICAgaW5kZXhlcyxcbiAgICAgICAgICBsb2NhbGVzQ29sdW1ucyxcbiAgICAgICAgICBsb2NhbGVzSW5kZXhlcyxcbiAgICAgICAgICBuZXdUYWJsZU5hbWUsXG4gICAgICAgICAgcGFyZW50VGFibGVOYW1lLFxuICAgICAgICAgIHJlbGF0aW9uc1RvQnVpbGQsXG4gICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICByb290UmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICByb290VGFibGVJRENvbFR5cGUsXG4gICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAodGFiSGFzTG9jYWxpemVkRmllbGQpIGhhc0xvY2FsaXplZEZpZWxkID0gdHJ1ZVxuICAgICAgICBpZiAodGFiSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQpIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkID0gdHJ1ZVxuICAgICAgICBpZiAodGFiSGFzTWFueU51bWJlckZpZWxkKSBoYXNNYW55TnVtYmVyRmllbGQgPSB0cnVlXG4gICAgICAgIGlmICh0YWJIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQpIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCA9IHRydWVcblxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdyb3cnOlxuICAgICAgY2FzZSAnY29sbGFwc2libGUnOiB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRGaWVsZDogcm93SGFzTG9jYWxpemVkRmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkOiByb3dIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQ6IHJvd0hhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkLFxuICAgICAgICAgIGhhc01hbnlOdW1iZXJGaWVsZDogcm93SGFzTWFueU51bWJlckZpZWxkLFxuICAgICAgICB9ID0gdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgYnVpbGRSZWxhdGlvbnNoaXBzLFxuICAgICAgICAgIGNvbHVtblByZWZpeCxcbiAgICAgICAgICBjb2x1bW5zLFxuICAgICAgICAgIGRpc2FibGVVbmlxdWUsXG4gICAgICAgICAgZmllbGRQcmVmaXgsXG4gICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgZm9yY2VMb2NhbGl6ZWQsXG4gICAgICAgICAgaW5kZXhlcyxcbiAgICAgICAgICBsb2NhbGVzQ29sdW1ucyxcbiAgICAgICAgICBsb2NhbGVzSW5kZXhlcyxcbiAgICAgICAgICBuZXdUYWJsZU5hbWU6IHBhcmVudFRhYmxlTmFtZSxcbiAgICAgICAgICBwYXJlbnRUYWJsZU5hbWUsXG4gICAgICAgICAgcmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICByZWxhdGlvbnNoaXBzLFxuICAgICAgICAgIHJvb3RSZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgIHJvb3RUYWJsZUlEQ29sVHlwZSxcbiAgICAgICAgICByb290VGFibGVOYW1lLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChyb3dIYXNMb2NhbGl6ZWRGaWVsZCkgaGFzTG9jYWxpemVkRmllbGQgPSB0cnVlXG4gICAgICAgIGlmIChyb3dIYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCkgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQgPSB0cnVlXG4gICAgICAgIGlmIChyb3dIYXNNYW55TnVtYmVyRmllbGQpIGhhc01hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKHJvd0hhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCkgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkID0gdHJ1ZVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdyZWxhdGlvbnNoaXAnOlxuICAgICAgY2FzZSAndXBsb2FkJzpcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQucmVsYXRpb25UbykpIHtcbiAgICAgICAgICBmaWVsZC5yZWxhdGlvblRvLmZvckVhY2goKHJlbGF0aW9uKSA9PiByZWxhdGlvbnNoaXBzLmFkZChyZWxhdGlvbikpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVsYXRpb25zaGlwcy5hZGQoZmllbGQucmVsYXRpb25UbylcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgYWRhcHRlci5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCA9IHRydWVcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVha1xuICAgIH1cblxuICAgIGNvbnN0IGNvbmRpdGlvbiA9IGZpZWxkLmFkbWluICYmIGZpZWxkLmFkbWluLmNvbmRpdGlvblxuXG4gICAgaWYgKHRhcmdldFRhYmxlW2ZpZWxkTmFtZV0gJiYgJ3JlcXVpcmVkJyBpbiBmaWVsZCAmJiBmaWVsZC5yZXF1aXJlZCAmJiAhY29uZGl0aW9uKSB7XG4gICAgICB0YXJnZXRUYWJsZVtmaWVsZE5hbWVdLm5vdE51bGwoKVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4ge1xuICAgIGhhc0xvY2FsaXplZEZpZWxkLFxuICAgIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCxcbiAgICBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCxcbiAgICBoYXNNYW55TnVtYmVyRmllbGQsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJ0cmF2ZXJzZUZpZWxkcyIsImFkYXB0ZXIiLCJidWlsZFJlbGF0aW9uc2hpcHMiLCJjb2x1bW5QcmVmaXgiLCJjb2x1bW5zIiwiZGlzYWJsZVVuaXF1ZSIsImZpZWxkUHJlZml4IiwiZmllbGRzIiwiZm9yY2VMb2NhbGl6ZWQiLCJpbmRleGVzIiwibG9jYWxlc0NvbHVtbnMiLCJsb2NhbGVzSW5kZXhlcyIsIm5ld1RhYmxlTmFtZSIsInBhcmVudFRhYmxlTmFtZSIsInJlbGF0aW9uc1RvQnVpbGQiLCJyZWxhdGlvbnNoaXBzIiwicm9vdFJlbGF0aW9uc1RvQnVpbGQiLCJyb290VGFibGVJRENvbFR5cGUiLCJyb290VGFibGVOYW1lIiwiaGFzTG9jYWxpemVkRmllbGQiLCJoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCIsImhhc01hbnlOdW1iZXJGaWVsZCIsImhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCIsInBhcmVudElEQ29sVHlwZSIsImlkIiwiUGdOdW1lcmljQnVpbGRlciIsIlBnVmFyY2hhckJ1aWxkZXIiLCJmb3JFYWNoIiwiZmllbGQiLCJuYW1lIiwiY29sdW1uTmFtZSIsImZpZWxkTmFtZSIsInRhcmdldFRhYmxlIiwidGFyZ2V0SW5kZXhlcyIsImZpZWxkQWZmZWN0c0RhdGEiLCJ0b1NuYWtlQ2FzZSIsInBheWxvYWQiLCJjb25maWciLCJsb2NhbGl6YXRpb24iLCJsb2NhbGl6ZWQiLCJ1bmlxdWUiLCJpbmRleCIsImluY2x1ZGVzIiwidHlwZSIsImhhc01hbnkiLCJjcmVhdGVJbmRleCIsInZhcmNoYXIiLCJJbnZhbGlkQ29uZmlndXJhdGlvbiIsIm51bWVyaWMiLCJqc29uYiIsInRpbWVzdGFtcCIsIm1vZGUiLCJwcmVjaXNpb24iLCJ3aXRoVGltZXpvbmUiLCJlbnVtTmFtZSIsImVudW1zIiwicGdFbnVtIiwib3B0aW9ucyIsIm1hcCIsIm9wdGlvbiIsIm9wdGlvbklzT2JqZWN0IiwidmFsdWUiLCJzZWxlY3RUYWJsZU5hbWUiLCJiYXNlQ29sdW1ucyIsIm9yZGVyIiwiaW50ZWdlciIsIm5vdE51bGwiLCJwYXJlbnQiLCJwYXJlbnRJRENvbHVtbk1hcCIsInJlZmVyZW5jZXMiLCJ0YWJsZXMiLCJvbkRlbGV0ZSIsImJhc2VFeHRyYUNvbmZpZyIsIm9yZGVySWR4IiwiY29scyIsIm9uIiwicGFyZW50SWR4IiwibG9jYWxlIiwiZW51bV9fbG9jYWxlcyIsImxvY2FsZUlkeCIsImJ1aWxkVGFibGUiLCJ0YWJsZU5hbWUiLCJzZXQiLCJzZWxlY3RUYWJsZVJlbGF0aW9ucyIsInJlbGF0aW9ucyIsIm9uZSIsInJlc3VsdCIsImJvb2xlYW4iLCJhcnJheVRhYmxlTmFtZSIsIl9vcmRlciIsIl9wYXJlbnRJRCIsIl9vcmRlcklkeCIsIl9wYXJlbnRJRElkeCIsIl9sb2NhbGUiLCJfbG9jYWxlSWR4Iiwic3ViUmVsYXRpb25zVG9CdWlsZCIsInJvb3RSZWxhdGlvbnNoaXBzIiwiYXJyYXlUYWJsZVJlbGF0aW9ucyIsIm1hbnkiLCJoYXNMb2NhbGVzVGFibGUiLCJfbG9jYWxlcyIsInZhbCIsImtleSIsImJsb2NrcyIsImJsb2NrIiwiYmxvY2tUYWJsZU5hbWUiLCJzbHVnIiwiX3BhdGgiLCJ0ZXh0IiwiX3BhdGhJZHgiLCJibG9ja1RhYmxlUmVsYXRpb25zIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidmFsaWRhdGVFeGlzdGluZ0Jsb2NrSXNJZGVudGljYWwiLCJ0YWJsZSIsImdyb3VwSGFzTG9jYWxpemVkRmllbGQiLCJncm91cEhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCIsImdyb3VwSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQiLCJncm91cEhhc01hbnlOdW1iZXJGaWVsZCIsInRhYkhhc0xvY2FsaXplZEZpZWxkIiwidGFiSGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkIiwidGFiSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQiLCJ0YWJIYXNNYW55TnVtYmVyRmllbGQiLCJ0YWJzIiwidGFiIiwicm93SGFzTG9jYWxpemVkRmllbGQiLCJyb3dIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQiLCJyb3dIYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCIsInJvd0hhc01hbnlOdW1iZXJGaWVsZCIsIkFycmF5IiwiaXNBcnJheSIsInJlbGF0aW9uVG8iLCJyZWxhdGlvbiIsImFkZCIsImNvbmRpdGlvbiIsImFkbWluIiwicmVxdWlyZWQiXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQzs7OzsrQkEyRHZCQTs7O2VBQUFBOzs7NEJBdERhO3dCQWFuQjt3QkFDOEI7dUJBQ1k7b0VBQ3pCO2lDQUlRO3VCQUNMOzZCQUNDO21DQUNNO2tEQUNlOzs7Ozs7QUE4QjFDLE1BQU1BLGlCQUFpQixDQUFDLEVBQzdCQyxPQUFPLEVBQ1BDLGtCQUFrQixFQUNsQkMsWUFBWSxFQUNaQyxPQUFPLEVBQ1BDLGdCQUFnQixLQUFLLEVBQ3JCQyxXQUFXLEVBQ1hD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
@@ -14,9 +14,9 @@ const _traverseFields = require("./traverseFields");
14
14
  const transform = ({ config, data, fields })=>{
15
15
  let relationships = {};
16
16
  let numbers = {};
17
- if ('_relationships' in data) {
18
- relationships = (0, _createRelationshipMap.createPathMap)(data._relationships);
19
- delete data._relationships;
17
+ if ('_rels' in data) {
18
+ relationships = (0, _createRelationshipMap.createPathMap)(data._rels);
19
+ delete data._rels;
20
20
  }
21
21
  if ('_numbers' in data) {
22
22
  numbers = (0, _createRelationshipMap.createPathMap)(data._numbers);
@@ -39,4 +39,4 @@ const transform = ({ config, data, fields })=>{
39
39
  return result;
40
40
  };
41
41
 
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm0vcmVhZC9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICdwYXlsb2FkL2NvbmZpZydcbmltcG9ydCB0eXBlIHsgRmllbGQsIFR5cGVXaXRoSUQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBjcmVhdGVCbG9ja3NNYXAgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvY3JlYXRlQmxvY2tzTWFwJ1xuaW1wb3J0IHsgY3JlYXRlUGF0aE1hcCB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9jcmVhdGVSZWxhdGlvbnNoaXBNYXAnXG5pbXBvcnQgeyB0cmF2ZXJzZUZpZWxkcyB9IGZyb20gJy4vdHJhdmVyc2VGaWVsZHMnXG5cbnR5cGUgVHJhbnNmb3JtQXJncyA9IHtcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgZmFsbGJhY2tMb2NhbGU/OiBmYWxzZSB8IHN0cmluZ1xuICBmaWVsZHM6IEZpZWxkW11cbiAgbG9jYWxlPzogc3RyaW5nXG59XG5cbi8vIFRoaXMgaXMgdGhlIGVudHJ5IHBvaW50IHRvIHRyYW5zZm9ybSBEcml6emxlIG91dHB1dCBkYXRhXG4vLyBpbnRvIHRoZSBzaGFwZSBQYXlsb2FkIGV4cGVjdHMgYmFzZWQgb24gZmllbGQgc2NoZW1hXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtID0gPFQgZXh0ZW5kcyBUeXBlV2l0aElEPih7IGNvbmZpZywgZGF0YSwgZmllbGRzIH06IFRyYW5zZm9ybUFyZ3MpOiBUID0+IHtcbiAgbGV0IHJlbGF0aW9uc2hpcHM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+ID0ge31cbiAgbGV0IG51bWJlcnM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+ID0ge31cblxuICBpZiAoJ19yZWxhdGlvbnNoaXBzJyBpbiBkYXRhKSB7XG4gICAgcmVsYXRpb25zaGlwcyA9IGNyZWF0ZVBhdGhNYXAoZGF0YS5fcmVsYXRpb25zaGlwcylcbiAgICBkZWxldGUgZGF0YS5fcmVsYXRpb25zaGlwc1xuICB9XG5cbiAgaWYgKCdfbnVtYmVycycgaW4gZGF0YSkge1xuICAgIG51bWJlcnMgPSBjcmVhdGVQYXRoTWFwKGRhdGEuX251bWJlcnMpXG4gICAgZGVsZXRlIGRhdGEuX251bWJlcnNcbiAgfVxuXG4gIGNvbnN0IGJsb2NrcyA9IGNyZWF0ZUJsb2Nrc01hcChkYXRhKVxuXG4gIGNvbnN0IHJlc3VsdCA9IHRyYXZlcnNlRmllbGRzPFQ+KHtcbiAgICBibG9ja3MsXG4gICAgY29uZmlnLFxuICAgIGRhdGFSZWY6IHtcbiAgICAgIGlkOiBkYXRhLmlkLFxuICAgIH0sXG4gICAgZmllbGRQcmVmaXg6ICcnLFxuICAgIGZpZWxkcyxcbiAgICBudW1iZXJzLFxuICAgIHBhdGg6ICcnLFxuICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgdGFibGU6IGRhdGEsXG4gIH0pXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybSIsImNvbmZpZyIsImRhdGEiLCJmaWVsZHMiLCJyZWxhdGlvbnNoaXBzIiwibnVtYmVycyIsImNyZWF0ZVBhdGhNYXAiLCJfcmVsYXRpb25zaGlwcyIsIl9udW1iZXJzIiwiYmxvY2tzIiwiY3JlYXRlQmxvY2tzTWFwIiwicmVzdWx0IiwidHJhdmVyc2VGaWVsZHMiLCJkYXRhUmVmIiwiaWQiLCJmaWVsZFByZWZpeCIsInBhdGgiLCJ0YWJsZSJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQWtCdkJBOzs7ZUFBQUE7OztpQ0FkbUI7dUNBQ0Y7Z0NBQ0M7QUFZeEIsTUFBTUEsWUFBWSxDQUF1QixFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsTUFBTSxFQUFpQjtJQUNyRixJQUFJQyxnQkFBMkQsQ0FBQztJQUNoRSxJQUFJQyxVQUFxRCxDQUFDO0lBRTFELElBQUksb0JBQW9CSCxNQUFNO1FBQzVCRSxnQkFBZ0JFLElBQUFBLG9DQUFhLEVBQUNKLEtBQUtLLGNBQWM7UUFDakQsT0FBT0wsS0FBS0ssY0FBYztJQUM1QjtJQUVBLElBQUksY0FBY0wsTUFBTTtRQUN0QkcsVUFBVUMsSUFBQUEsb0NBQWEsRUFBQ0osS0FBS00sUUFBUTtRQUNyQyxPQUFPTixLQUFLTSxRQUFRO0lBQ3RCO0lBRUEsTUFBTUMsU0FBU0MsSUFBQUEsZ0NBQWUsRUFBQ1I7SUFFL0IsTUFBTVMsU0FBU0MsSUFBQUEsOEJBQWMsRUFBSTtRQUMvQkg7UUFDQVI7UUFDQVksU0FBUztZQUNQQyxJQUFJWixLQUFLWSxFQUFFO1FBQ2I7UUFDQUMsYUFBYTtRQUNiWjtRQUNBRTtRQUNBVyxNQUFNO1FBQ05aO1FBQ0FhLE9BQU9mO0lBQ1Q7SUFFQSxPQUFPUztBQUNUIn0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm0vcmVhZC9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICdwYXlsb2FkL2NvbmZpZydcbmltcG9ydCB0eXBlIHsgRmllbGQsIFR5cGVXaXRoSUQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBjcmVhdGVCbG9ja3NNYXAgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvY3JlYXRlQmxvY2tzTWFwJ1xuaW1wb3J0IHsgY3JlYXRlUGF0aE1hcCB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9jcmVhdGVSZWxhdGlvbnNoaXBNYXAnXG5pbXBvcnQgeyB0cmF2ZXJzZUZpZWxkcyB9IGZyb20gJy4vdHJhdmVyc2VGaWVsZHMnXG5cbnR5cGUgVHJhbnNmb3JtQXJncyA9IHtcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgZmFsbGJhY2tMb2NhbGU/OiBmYWxzZSB8IHN0cmluZ1xuICBmaWVsZHM6IEZpZWxkW11cbiAgbG9jYWxlPzogc3RyaW5nXG59XG5cbi8vIFRoaXMgaXMgdGhlIGVudHJ5IHBvaW50IHRvIHRyYW5zZm9ybSBEcml6emxlIG91dHB1dCBkYXRhXG4vLyBpbnRvIHRoZSBzaGFwZSBQYXlsb2FkIGV4cGVjdHMgYmFzZWQgb24gZmllbGQgc2NoZW1hXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtID0gPFQgZXh0ZW5kcyBUeXBlV2l0aElEPih7IGNvbmZpZywgZGF0YSwgZmllbGRzIH06IFRyYW5zZm9ybUFyZ3MpOiBUID0+IHtcbiAgbGV0IHJlbGF0aW9uc2hpcHM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+ID0ge31cbiAgbGV0IG51bWJlcnM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+ID0ge31cblxuICBpZiAoJ19yZWxzJyBpbiBkYXRhKSB7XG4gICAgcmVsYXRpb25zaGlwcyA9IGNyZWF0ZVBhdGhNYXAoZGF0YS5fcmVscylcbiAgICBkZWxldGUgZGF0YS5fcmVsc1xuICB9XG5cbiAgaWYgKCdfbnVtYmVycycgaW4gZGF0YSkge1xuICAgIG51bWJlcnMgPSBjcmVhdGVQYXRoTWFwKGRhdGEuX251bWJlcnMpXG4gICAgZGVsZXRlIGRhdGEuX251bWJlcnNcbiAgfVxuXG4gIGNvbnN0IGJsb2NrcyA9IGNyZWF0ZUJsb2Nrc01hcChkYXRhKVxuXG4gIGNvbnN0IHJlc3VsdCA9IHRyYXZlcnNlRmllbGRzPFQ+KHtcbiAgICBibG9ja3MsXG4gICAgY29uZmlnLFxuICAgIGRhdGFSZWY6IHtcbiAgICAgIGlkOiBkYXRhLmlkLFxuICAgIH0sXG4gICAgZmllbGRQcmVmaXg6ICcnLFxuICAgIGZpZWxkcyxcbiAgICBudW1iZXJzLFxuICAgIHBhdGg6ICcnLFxuICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgdGFibGU6IGRhdGEsXG4gIH0pXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybSIsImNvbmZpZyIsImRhdGEiLCJmaWVsZHMiLCJyZWxhdGlvbnNoaXBzIiwibnVtYmVycyIsImNyZWF0ZVBhdGhNYXAiLCJfcmVscyIsIl9udW1iZXJzIiwiYmxvY2tzIiwiY3JlYXRlQmxvY2tzTWFwIiwicmVzdWx0IiwidHJhdmVyc2VGaWVsZHMiLCJkYXRhUmVmIiwiaWQiLCJmaWVsZFByZWZpeCIsInBhdGgiLCJ0YWJsZSJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQWtCdkJBOzs7ZUFBQUE7OztpQ0FkbUI7dUNBQ0Y7Z0NBQ0M7QUFZeEIsTUFBTUEsWUFBWSxDQUF1QixFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsTUFBTSxFQUFpQjtJQUNyRixJQUFJQyxnQkFBMkQsQ0FBQztJQUNoRSxJQUFJQyxVQUFxRCxDQUFDO0lBRTFELElBQUksV0FBV0gsTUFBTTtRQUNuQkUsZ0JBQWdCRSxJQUFBQSxvQ0FBYSxFQUFDSixLQUFLSyxLQUFLO1FBQ3hDLE9BQU9MLEtBQUtLLEtBQUs7SUFDbkI7SUFFQSxJQUFJLGNBQWNMLE1BQU07UUFDdEJHLFVBQVVDLElBQUFBLG9DQUFhLEVBQUNKLEtBQUtNLFFBQVE7UUFDckMsT0FBT04sS0FBS00sUUFBUTtJQUN0QjtJQUVBLE1BQU1DLFNBQVNDLElBQUFBLGdDQUFlLEVBQUNSO0lBRS9CLE1BQU1TLFNBQVNDLElBQUFBLDhCQUFjLEVBQUk7UUFDL0JIO1FBQ0FSO1FBQ0FZLFNBQVM7WUFDUEMsSUFBSVosS0FBS1ksRUFBRTtRQUNiO1FBQ0FDLGFBQWE7UUFDYlo7UUFDQUU7UUFDQVcsTUFBTTtRQUNOWjtRQUNBYSxPQUFPZjtJQUNUO0lBRUEsT0FBT1M7QUFDVCJ9
package/dist/types.d.ts CHANGED
@@ -6,9 +6,9 @@ import type { BaseDatabaseAdapter } from 'payload/database';
6
6
  import type { Pool, PoolConfig } from 'pg';
7
7
  export type DrizzleDB = NodePgDatabase<Record<string, unknown>>;
8
8
  export type Args = {
9
- client: PoolConfig;
10
9
  migrationDir?: string;
11
- migrationName?: string;
10
+ pool: PoolConfig;
11
+ push?: boolean;
12
12
  };
13
13
  export type GenericColumn = PgColumn<ColumnBaseConfig<ColumnDataType, string>, Record<string, unknown>>;
14
14
  export type GenericColumns = {
@@ -23,10 +23,12 @@ export type GenericTable = PgTableWithColumns<{
23
23
  export type GenericEnum = PgEnum<[string, ...string[]]>;
24
24
  export type GenericRelation = Relations<string, Record<string, Relation<string>>>;
25
25
  export type DrizzleTransaction = PgTransaction<NodePgQueryResultHKT, Record<string, unknown>, ExtractTablesWithRelations<Record<string, unknown>>>;
26
- export type PostgresAdapter = BaseDatabaseAdapter & Args & {
26
+ export type PostgresAdapter = BaseDatabaseAdapter & {
27
27
  drizzle: DrizzleDB;
28
28
  enums: Record<string, GenericEnum>;
29
29
  pool: Pool;
30
+ poolOptions: Args['pool'];
31
+ push: boolean;
30
32
  relations: Record<string, GenericRelation>;
31
33
  schema: Record<string, GenericEnum | GenericRelation | GenericTable>;
32
34
  sessions: {
@@ -48,10 +50,11 @@ export type MigrateDownArgs = {
48
50
  payload: Payload;
49
51
  };
50
52
  declare module 'payload' {
51
- interface DatabaseAdapter extends Args {
52
- db: DrizzleDB;
53
+ interface DatabaseAdapter extends Omit<Args, 'pool'> {
54
+ drizzle: DrizzleDB;
53
55
  enums: Record<string, GenericEnum>;
54
56
  pool: Pool;
57
+ push: boolean;
55
58
  relations: Record<string, GenericRelation>;
56
59
  schema: Record<string, GenericEnum | GenericRelation | GenericTable>;
57
60
  sessions: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AASjD,eAAO,MAAM,SAAS,EAAE,SA6BvB,CAAA"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAWjD,eAAO,MAAM,SAAS,EAAE,SAkEvB,CAAA"}
package/dist/update.js CHANGED
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "updateOne", {
9
9
  }
10
10
  });
11
11
  const _tosnakecase = /*#__PURE__*/ _interop_require_default(require("to-snake-case"));
12
+ const _chainMethods = require("./find/chainMethods");
12
13
  const _buildQuery = /*#__PURE__*/ _interop_require_default(require("./queries/buildQuery"));
13
14
  const _upsertRow = require("./upsertRow");
14
15
  function _interop_require_default(obj) {
@@ -25,24 +26,69 @@ const updateOne = async function updateOne({ id, collection: collectionSlug, dat
25
26
  equals: id
26
27
  }
27
28
  };
28
- const { where } = await (0, _buildQuery.default)({
29
+ const { joinAliases, joins, selectFields, where } = await (0, _buildQuery.default)({
29
30
  adapter: this,
30
31
  fields: collection.fields,
31
32
  locale,
32
33
  tableName,
33
34
  where: whereToUse
34
35
  });
36
+ let idToUpdate = id;
37
+ // only fetch IDs when a sort or where query is used that needs to be done on join tables, otherwise these can be done directly on the table in findMany
38
+ if (Object.keys(joins).length > 0 || joinAliases.length > 0) {
39
+ const selectDistinctMethods = [];
40
+ if (where) {
41
+ selectDistinctMethods.push({
42
+ args: [
43
+ where
44
+ ],
45
+ method: 'where'
46
+ });
47
+ }
48
+ joinAliases.forEach(({ condition, table })=>{
49
+ selectDistinctMethods.push({
50
+ args: [
51
+ table,
52
+ condition
53
+ ],
54
+ method: 'leftJoin'
55
+ });
56
+ });
57
+ Object.entries(joins).forEach(([joinTable, condition])=>{
58
+ if (joinTable) {
59
+ selectDistinctMethods.push({
60
+ args: [
61
+ this.tables[joinTable],
62
+ condition
63
+ ],
64
+ method: 'leftJoin'
65
+ });
66
+ }
67
+ });
68
+ selectDistinctMethods.push({
69
+ args: [
70
+ 1
71
+ ],
72
+ method: 'limit'
73
+ });
74
+ const selectDistinctResult = await (0, _chainMethods.chainMethods)({
75
+ methods: selectDistinctMethods,
76
+ query: db.selectDistinct(selectFields).from(this.tables[tableName])
77
+ });
78
+ if (selectDistinctResult?.[0]?.id) {
79
+ idToUpdate = selectDistinctResult?.[0]?.id;
80
+ }
81
+ }
35
82
  const result = await (0, _upsertRow.upsertRow)({
36
- id,
83
+ id: idToUpdate,
37
84
  adapter: this,
38
85
  data,
39
86
  db,
40
87
  fields: collection.fields,
41
88
  operation: 'update',
42
- tableName: (0, _tosnakecase.default)(collectionSlug),
43
- where
89
+ tableName: (0, _tosnakecase.default)(collectionSlug)
44
90
  });
45
91
  return result;
46
92
  };
47
93
 
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91cGRhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVcGRhdGVPbmUgfSBmcm9tICdwYXlsb2FkL2RhdGFiYXNlJ1xuXG5pbXBvcnQgdG9TbmFrZUNhc2UgZnJvbSAndG8tc25ha2UtY2FzZSdcblxuaW1wb3J0IHR5cGUgeyBQb3N0Z3Jlc0FkYXB0ZXIgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgYnVpbGRRdWVyeSBmcm9tICcuL3F1ZXJpZXMvYnVpbGRRdWVyeSdcbmltcG9ydCB7IHVwc2VydFJvdyB9IGZyb20gJy4vdXBzZXJ0Um93J1xuXG5leHBvcnQgY29uc3QgdXBkYXRlT25lOiBVcGRhdGVPbmUgPSBhc3luYyBmdW5jdGlvbiB1cGRhdGVPbmUoXG4gIHRoaXM6IFBvc3RncmVzQWRhcHRlcixcbiAgeyBpZCwgY29sbGVjdGlvbjogY29sbGVjdGlvblNsdWcsIGRhdGEsIGRyYWZ0LCBsb2NhbGUsIHJlcSwgd2hlcmU6IHdoZXJlQXJnIH0sXG4pIHtcbiAgY29uc3QgZGIgPSB0aGlzLnNlc3Npb25zW3JlcS50cmFuc2FjdGlvbklEXT8uZGIgfHwgdGhpcy5kcml6emxlXG4gIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLnBheWxvYWQuY29sbGVjdGlvbnNbY29sbGVjdGlvblNsdWddLmNvbmZpZ1xuICBjb25zdCB0YWJsZU5hbWUgPSB0b1NuYWtlQ2FzZShjb2xsZWN0aW9uU2x1ZylcbiAgY29uc3Qgd2hlcmVUb1VzZSA9IHdoZXJlQXJnIHx8IHsgaWQ6IHsgZXF1YWxzOiBpZCB9IH1cblxuICBjb25zdCB7IHdoZXJlIH0gPSBhd2FpdCBidWlsZFF1ZXJ5KHtcbiAgICBhZGFwdGVyOiB0aGlzLFxuICAgIGZpZWxkczogY29sbGVjdGlvbi5maWVsZHMsXG4gICAgbG9jYWxlLFxuICAgIHRhYmxlTmFtZSxcbiAgICB3aGVyZTogd2hlcmVUb1VzZSxcbiAgfSlcblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCB1cHNlcnRSb3coe1xuICAgIGlkLFxuICAgIGFkYXB0ZXI6IHRoaXMsXG4gICAgZGF0YSxcbiAgICBkYixcbiAgICBmaWVsZHM6IGNvbGxlY3Rpb24uZmllbGRzLFxuICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgdGFibGVOYW1lOiB0b1NuYWtlQ2FzZShjb2xsZWN0aW9uU2x1ZyksXG4gICAgd2hlcmUsXG4gIH0pXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuIl0sIm5hbWVzIjpbInVwZGF0ZU9uZSIsImlkIiwiY29sbGVjdGlvbiIsImNvbGxlY3Rpb25TbHVnIiwiZGF0YSIsImRyYWZ0IiwibG9jYWxlIiwicmVxIiwid2hlcmUiLCJ3aGVyZUFyZyIsImRiIiwic2Vzc2lvbnMiLCJ0cmFuc2FjdGlvbklEIiwiZHJpenpsZSIsInBheWxvYWQiLCJjb2xsZWN0aW9ucyIsImNvbmZpZyIsInRhYmxlTmFtZSIsInRvU25ha2VDYXNlIiwid2hlcmVUb1VzZSIsImVxdWFscyIsImJ1aWxkUXVlcnkiLCJhZGFwdGVyIiwiZmllbGRzIiwicmVzdWx0IiwidXBzZXJ0Um93Iiwib3BlcmF0aW9uIl0sIm1hcHBpbmdzIjoiOzs7OytCQVNhQTs7O2VBQUFBOzs7b0VBUFc7bUVBSUQ7MkJBQ0c7Ozs7OztBQUVuQixNQUFNQSxZQUF1QixlQUFlQSxVQUVqRCxFQUFFQyxFQUFFLEVBQUVDLFlBQVlDLGNBQWMsRUFBRUMsSUFBSSxFQUFFQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsR0FBRyxFQUFFQyxPQUFPQyxRQUFRLEVBQUU7SUFFN0UsTUFBTUMsS0FBSyxJQUFJLENBQUNDLFFBQVEsQ0FBQ0osSUFBSUssYUFBYSxDQUFDLEVBQUVGLE1BQU0sSUFBSSxDQUFDRyxPQUFPO0lBQy9ELE1BQU1YLGFBQWEsSUFBSSxDQUFDWSxPQUFPLENBQUNDLFdBQVcsQ0FBQ1osZUFBZSxDQUFDYSxNQUFNO0lBQ2xFLE1BQU1DLFlBQVlDLElBQUFBLG9CQUFXLEVBQUNmO0lBQzlCLE1BQU1nQixhQUFhVixZQUFZO1FBQUVSLElBQUk7WUFBRW1CLFFBQVFuQjtRQUFHO0lBQUU7SUFFcEQsTUFBTSxFQUFFTyxLQUFLLEVBQUUsR0FBRyxNQUFNYSxJQUFBQSxtQkFBVSxFQUFDO1FBQ2pDQyxTQUFTLElBQUk7UUFDYkMsUUFBUXJCLFdBQVdxQixNQUFNO1FBQ3pCakI7UUFDQVc7UUFDQVQsT0FBT1c7SUFDVDtJQUVBLE1BQU1LLFNBQVMsTUFBTUMsSUFBQUEsb0JBQVMsRUFBQztRQUM3QnhCO1FBQ0FxQixTQUFTLElBQUk7UUFDYmxCO1FBQ0FNO1FBQ0FhLFFBQVFyQixXQUFXcUIsTUFBTTtRQUN6QkcsV0FBVztRQUNYVCxXQUFXQyxJQUFBQSxvQkFBVyxFQUFDZjtRQUN2Qks7SUFDRjtJQUVBLE9BQU9nQjtBQUNUIn0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91cGRhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVcGRhdGVPbmUgfSBmcm9tICdwYXlsb2FkL2RhdGFiYXNlJ1xuXG5pbXBvcnQgdG9TbmFrZUNhc2UgZnJvbSAndG8tc25ha2UtY2FzZSdcblxuaW1wb3J0IHR5cGUgeyBDaGFpbmVkTWV0aG9kcyB9IGZyb20gJy4vZmluZC9jaGFpbk1ldGhvZHMnXG5pbXBvcnQgdHlwZSB7IFBvc3RncmVzQWRhcHRlciB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGNoYWluTWV0aG9kcyB9IGZyb20gJy4vZmluZC9jaGFpbk1ldGhvZHMnXG5pbXBvcnQgYnVpbGRRdWVyeSBmcm9tICcuL3F1ZXJpZXMvYnVpbGRRdWVyeSdcbmltcG9ydCB7IHVwc2VydFJvdyB9IGZyb20gJy4vdXBzZXJ0Um93J1xuXG5leHBvcnQgY29uc3QgdXBkYXRlT25lOiBVcGRhdGVPbmUgPSBhc3luYyBmdW5jdGlvbiB1cGRhdGVPbmUoXG4gIHRoaXM6IFBvc3RncmVzQWRhcHRlcixcbiAgeyBpZCwgY29sbGVjdGlvbjogY29sbGVjdGlvblNsdWcsIGRhdGEsIGRyYWZ0LCBsb2NhbGUsIHJlcSwgd2hlcmU6IHdoZXJlQXJnIH0sXG4pIHtcbiAgY29uc3QgZGIgPSB0aGlzLnNlc3Npb25zW3JlcS50cmFuc2FjdGlvbklEXT8uZGIgfHwgdGhpcy5kcml6emxlXG4gIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLnBheWxvYWQuY29sbGVjdGlvbnNbY29sbGVjdGlvblNsdWddLmNvbmZpZ1xuICBjb25zdCB0YWJsZU5hbWUgPSB0b1NuYWtlQ2FzZShjb2xsZWN0aW9uU2x1ZylcbiAgY29uc3Qgd2hlcmVUb1VzZSA9IHdoZXJlQXJnIHx8IHsgaWQ6IHsgZXF1YWxzOiBpZCB9IH1cblxuICBjb25zdCB7IGpvaW5BbGlhc2VzLCBqb2lucywgc2VsZWN0RmllbGRzLCB3aGVyZSB9ID0gYXdhaXQgYnVpbGRRdWVyeSh7XG4gICAgYWRhcHRlcjogdGhpcyxcbiAgICBmaWVsZHM6IGNvbGxlY3Rpb24uZmllbGRzLFxuICAgIGxvY2FsZSxcbiAgICB0YWJsZU5hbWUsXG4gICAgd2hlcmU6IHdoZXJlVG9Vc2UsXG4gIH0pXG5cbiAgbGV0IGlkVG9VcGRhdGUgPSBpZFxuXG4gIC8vIG9ubHkgZmV0Y2ggSURzIHdoZW4gYSBzb3J0IG9yIHdoZXJlIHF1ZXJ5IGlzIHVzZWQgdGhhdCBuZWVkcyB0byBiZSBkb25lIG9uIGpvaW4gdGFibGVzLCBvdGhlcndpc2UgdGhlc2UgY2FuIGJlIGRvbmUgZGlyZWN0bHkgb24gdGhlIHRhYmxlIGluIGZpbmRNYW55XG4gIGlmIChPYmplY3Qua2V5cyhqb2lucykubGVuZ3RoID4gMCB8fCBqb2luQWxpYXNlcy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3Qgc2VsZWN0RGlzdGluY3RNZXRob2RzOiBDaGFpbmVkTWV0aG9kcyA9IFtdXG5cbiAgICBpZiAod2hlcmUpIHtcbiAgICAgIHNlbGVjdERpc3RpbmN0TWV0aG9kcy5wdXNoKHsgYXJnczogW3doZXJlXSwgbWV0aG9kOiAnd2hlcmUnIH0pXG4gICAgfVxuXG4gICAgam9pbkFsaWFzZXMuZm9yRWFjaCgoeyBjb25kaXRpb24sIHRhYmxlIH0pID0+IHtcbiAgICAgIHNlbGVjdERpc3RpbmN0TWV0aG9kcy5wdXNoKHtcbiAgICAgICAgYXJnczogW3RhYmxlLCBjb25kaXRpb25dLFxuICAgICAgICBtZXRob2Q6ICdsZWZ0Sm9pbicsXG4gICAgICB9KVxuICAgIH0pXG5cbiAgICBPYmplY3QuZW50cmllcyhqb2lucykuZm9yRWFjaCgoW2pvaW5UYWJsZSwgY29uZGl0aW9uXSkgPT4ge1xuICAgICAgaWYgKGpvaW5UYWJsZSkge1xuICAgICAgICBzZWxlY3REaXN0aW5jdE1ldGhvZHMucHVzaCh7XG4gICAgICAgICAgYXJnczogW3RoaXMudGFibGVzW2pvaW5UYWJsZV0sIGNvbmRpdGlvbl0sXG4gICAgICAgICAgbWV0aG9kOiAnbGVmdEpvaW4nLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBzZWxlY3REaXN0aW5jdE1ldGhvZHMucHVzaCh7IGFyZ3M6IFsxXSwgbWV0aG9kOiAnbGltaXQnIH0pXG5cbiAgICBjb25zdCBzZWxlY3REaXN0aW5jdFJlc3VsdCA9IGF3YWl0IGNoYWluTWV0aG9kcyh7XG4gICAgICBtZXRob2RzOiBzZWxlY3REaXN0aW5jdE1ldGhvZHMsXG4gICAgICBxdWVyeTogZGIuc2VsZWN0RGlzdGluY3Qoc2VsZWN0RmllbGRzKS5mcm9tKHRoaXMudGFibGVzW3RhYmxlTmFtZV0pLFxuICAgIH0pXG5cbiAgICBpZiAoc2VsZWN0RGlzdGluY3RSZXN1bHQ/LlswXT8uaWQpIHtcbiAgICAgIGlkVG9VcGRhdGUgPSBzZWxlY3REaXN0aW5jdFJlc3VsdD8uWzBdPy5pZFxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHVwc2VydFJvdyh7XG4gICAgaWQ6IGlkVG9VcGRhdGUsXG4gICAgYWRhcHRlcjogdGhpcyxcbiAgICBkYXRhLFxuICAgIGRiLFxuICAgIGZpZWxkczogY29sbGVjdGlvbi5maWVsZHMsXG4gICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICB0YWJsZU5hbWU6IHRvU25ha2VDYXNlKGNvbGxlY3Rpb25TbHVnKSxcbiAgfSlcblxuICByZXR1cm4gcmVzdWx0XG59XG4iXSwibmFtZXMiOlsidXBkYXRlT25lIiwiaWQiLCJjb2xsZWN0aW9uIiwiY29sbGVjdGlvblNsdWciLCJkYXRhIiwiZHJhZnQiLCJsb2NhbGUiLCJyZXEiLCJ3aGVyZSIsIndoZXJlQXJnIiwiZGIiLCJzZXNzaW9ucyIsInRyYW5zYWN0aW9uSUQiLCJkcml6emxlIiwicGF5bG9hZCIsImNvbGxlY3Rpb25zIiwiY29uZmlnIiwidGFibGVOYW1lIiwidG9TbmFrZUNhc2UiLCJ3aGVyZVRvVXNlIiwiZXF1YWxzIiwiam9pbkFsaWFzZXMiLCJqb2lucyIsInNlbGVjdEZpZWxkcyIsImJ1aWxkUXVlcnkiLCJhZGFwdGVyIiwiZmllbGRzIiwiaWRUb1VwZGF0ZSIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJzZWxlY3REaXN0aW5jdE1ldGhvZHMiLCJwdXNoIiwiYXJncyIsIm1ldGhvZCIsImZvckVhY2giLCJjb25kaXRpb24iLCJ0YWJsZSIsImVudHJpZXMiLCJqb2luVGFibGUiLCJ0YWJsZXMiLCJzZWxlY3REaXN0aW5jdFJlc3VsdCIsImNoYWluTWV0aG9kcyIsIm1ldGhvZHMiLCJxdWVyeSIsInNlbGVjdERpc3RpbmN0IiwiZnJvbSIsInJlc3VsdCIsInVwc2VydFJvdyIsIm9wZXJhdGlvbiJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFXYUE7OztlQUFBQTs7O29FQVRXOzhCQUtLO21FQUNOOzJCQUNHOzs7Ozs7QUFFbkIsTUFBTUEsWUFBdUIsZUFBZUEsVUFFakQsRUFBRUMsRUFBRSxFQUFFQyxZQUFZQyxjQUFjLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFQyxNQUFNLEVBQUVDLEdBQUcsRUFBRUMsT0FBT0MsUUFBUSxFQUFFO0lBRTdFLE1BQU1DLEtBQUssSUFBSSxDQUFDQyxRQUFRLENBQUNKLElBQUlLLGFBQWEsQ0FBQyxFQUFFRixNQUFNLElBQUksQ0FBQ0csT0FBTztJQUMvRCxNQUFNWCxhQUFhLElBQUksQ0FBQ1ksT0FBTyxDQUFDQyxXQUFXLENBQUNaLGVBQWUsQ0FBQ2EsTUFBTTtJQUNsRSxNQUFNQyxZQUFZQyxJQUFBQSxvQkFBVyxFQUFDZjtJQUM5QixNQUFNZ0IsYUFBYVYsWUFBWTtRQUFFUixJQUFJO1lBQUVtQixRQUFRbkI7UUFBRztJQUFFO0lBRXBELE1BQU0sRUFBRW9CLFdBQVcsRUFBRUMsS0FBSyxFQUFFQyxZQUFZLEVBQUVmLEtBQUssRUFBRSxHQUFHLE1BQU1nQixJQUFBQSxtQkFBVSxFQUFDO1FBQ25FQyxTQUFTLElBQUk7UUFDYkMsUUFBUXhCLFdBQVd3QixNQUFNO1FBQ3pCcEI7UUFDQVc7UUFDQVQsT0FBT1c7SUFDVDtJQUVBLElBQUlRLGFBQWExQjtJQUVqQix3SkFBd0o7SUFDeEosSUFBSTJCLE9BQU9DLElBQUksQ0FBQ1AsT0FBT1EsTUFBTSxHQUFHLEtBQUtULFlBQVlTLE1BQU0sR0FBRyxHQUFHO1FBQzNELE1BQU1DLHdCQUF3QyxFQUFFO1FBRWhELElBQUl2QixPQUFPO1lBQ1R1QixzQkFBc0JDLElBQUksQ0FBQztnQkFBRUMsTUFBTTtvQkFBQ3pCO2lCQUFNO2dCQUFFMEIsUUFBUTtZQUFRO1FBQzlEO1FBRUFiLFlBQVljLE9BQU8sQ0FBQyxDQUFDLEVBQUVDLFNBQVMsRUFBRUMsS0FBSyxFQUFFO1lBQ3ZDTixzQkFBc0JDLElBQUksQ0FBQztnQkFDekJDLE1BQU07b0JBQUNJO29CQUFPRDtpQkFBVTtnQkFDeEJGLFFBQVE7WUFDVjtRQUNGO1FBRUFOLE9BQU9VLE9BQU8sQ0FBQ2hCLE9BQU9hLE9BQU8sQ0FBQyxDQUFDLENBQUNJLFdBQVdILFVBQVU7WUFDbkQsSUFBSUcsV0FBVztnQkFDYlIsc0JBQXNCQyxJQUFJLENBQUM7b0JBQ3pCQyxNQUFNO3dCQUFDLElBQUksQ0FBQ08sTUFBTSxDQUFDRCxVQUFVO3dCQUFFSDtxQkFBVTtvQkFDekNGLFFBQVE7Z0JBQ1Y7WUFDRjtRQUNGO1FBRUFILHNCQUFzQkMsSUFBSSxDQUFDO1lBQUVDLE1BQU07Z0JBQUM7YUFBRTtZQUFFQyxRQUFRO1FBQVE7UUFFeEQsTUFBTU8sdUJBQXVCLE1BQU1DLElBQUFBLDBCQUFZLEVBQUM7WUFDOUNDLFNBQVNaO1lBQ1RhLE9BQU9sQyxHQUFHbUMsY0FBYyxDQUFDdEIsY0FBY3VCLElBQUksQ0FBQyxJQUFJLENBQUNOLE1BQU0sQ0FBQ3ZCLFVBQVU7UUFDcEU7UUFFQSxJQUFJd0Isc0JBQXNCLENBQUMsRUFBRSxFQUFFeEMsSUFBSTtZQUNqQzBCLGFBQWFjLHNCQUFzQixDQUFDLEVBQUUsRUFBRXhDO1FBQzFDO0lBQ0Y7SUFFQSxNQUFNOEMsU0FBUyxNQUFNQyxJQUFBQSxvQkFBUyxFQUFDO1FBQzdCL0MsSUFBSTBCO1FBQ0pGLFNBQVMsSUFBSTtRQUNickI7UUFDQU07UUFDQWdCLFFBQVF4QixXQUFXd0IsTUFBTTtRQUN6QnVCLFdBQVc7UUFDWGhDLFdBQVdDLElBQUFBLG9CQUFXLEVBQUNmO0lBQ3pCO0lBRUEsT0FBTzRDO0FBQ1QifQ==
@@ -104,7 +104,7 @@ const upsertRow = async ({ id, adapter, data, db, fields, operation, path = '',
104
104
  // //////////////////////////////////
105
105
  // INSERT RELATIONSHIPS
106
106
  // //////////////////////////////////
107
- const relationshipsTableName = `${tableName}_relationships`;
107
+ const relationshipsTableName = `${tableName}_rels`;
108
108
  if (operation === 'update') {
109
109
  await (0, _deleteExistingRowsByPath.deleteExistingRowsByPath)({
110
110
  adapter,
@@ -240,4 +240,4 @@ const upsertRow = async ({ id, adapter, data, db, fields, operation, path = '',
240
240
  return result;
241
241
  };
242
242
 
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cHNlcnRSb3cvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgVHlwZVdpdGhJRCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IGVxIH0gZnJvbSAnZHJpenpsZS1vcm0nXG5cbmltcG9ydCB0eXBlIHsgQmxvY2tSb3dUb0luc2VydCB9IGZyb20gJy4uL3RyYW5zZm9ybS93cml0ZS90eXBlcydcbmltcG9ydCB0eXBlIHsgQXJncyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGJ1aWxkRmluZE1hbnlBcmdzIH0gZnJvbSAnLi4vZmluZC9idWlsZEZpbmRNYW55QXJncydcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJy4uL3RyYW5zZm9ybS9yZWFkJ1xuaW1wb3J0IHsgdHJhbnNmb3JtRm9yV3JpdGUgfSBmcm9tICcuLi90cmFuc2Zvcm0vd3JpdGUnXG5pbXBvcnQgeyBkZWxldGVFeGlzdGluZ0FycmF5Um93cyB9IGZyb20gJy4vZGVsZXRlRXhpc3RpbmdBcnJheVJvd3MnXG5pbXBvcnQgeyBkZWxldGVFeGlzdGluZ1Jvd3NCeVBhdGggfSBmcm9tICcuL2RlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCdcbmltcG9ydCB7IGluc2VydEFycmF5cyB9IGZyb20gJy4vaW5zZXJ0QXJyYXlzJ1xuXG5leHBvcnQgY29uc3QgdXBzZXJ0Um93ID0gYXN5bmMgPFQgZXh0ZW5kcyBUeXBlV2l0aElEPih7XG4gIGlkLFxuICBhZGFwdGVyLFxuICBkYXRhLFxuICBkYixcbiAgZmllbGRzLFxuICBvcGVyYXRpb24sXG4gIHBhdGggPSAnJyxcbiAgdGFibGVOYW1lLFxuICB1cHNlcnRUYXJnZXQsXG4gIHdoZXJlLFxufTogQXJncyk6IFByb21pc2U8VD4gPT4ge1xuICAvLyBTcGxpdCBvdXQgdGhlIGluY29taW5nIGRhdGEgaW50byB0aGUgY29ycmVzcG9uZGluZzpcbiAgLy8gYmFzZSByb3csIGxvY2FsZXMsIHJlbGF0aW9uc2hpcHMsIGJsb2NrcywgYW5kIGFycmF5c1xuICBjb25zdCByb3dUb0luc2VydCA9IHRyYW5zZm9ybUZvcldyaXRlKHtcbiAgICBkYXRhLFxuICAgIGZpZWxkcyxcbiAgICBwYXRoLFxuICAgIHRhYmxlTmFtZSxcbiAgfSlcblxuICAvLyBGaXJzdCwgd2UgaW5zZXJ0IHRoZSBtYWluIHJvd1xuICBsZXQgaW5zZXJ0ZWRSb3c6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG5cbiAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICBjb25zdCB0YXJnZXQgPSB1cHNlcnRUYXJnZXQgfHwgYWRhcHRlci50YWJsZXNbdGFibGVOYW1lXS5pZFxuXG4gICAgaWYgKGlkKSB7XG4gICAgICByb3dUb0luc2VydC5yb3cuaWQgPSBpZFxuICAgICAgO1tpbnNlcnRlZFJvd10gPSBhd2FpdCBkYlxuICAgICAgICAuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0pXG4gICAgICAgIC52YWx1ZXMocm93VG9JbnNlcnQucm93KVxuICAgICAgICAub25Db25mbGljdERvVXBkYXRlKHsgc2V0OiByb3dUb0luc2VydC5yb3csIHRhcmdldCB9KVxuICAgICAgICAucmV0dXJuaW5nKClcbiAgICB9IGVsc2Uge1xuICAgICAgO1tpbnNlcnRlZFJvd10gPSBhd2FpdCBkYlxuICAgICAgICAuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0pXG4gICAgICAgIC52YWx1ZXMocm93VG9JbnNlcnQucm93KVxuICAgICAgICAub25Db25mbGljdERvVXBkYXRlKHsgc2V0OiByb3dUb0luc2VydC5yb3csIHRhcmdldCwgd2hlcmUgfSlcbiAgICAgICAgLnJldHVybmluZygpXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIDtbaW5zZXJ0ZWRSb3ddID0gYXdhaXQgZGIuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0pLnZhbHVlcyhyb3dUb0luc2VydC5yb3cpLnJldHVybmluZygpXG4gIH1cblxuICBjb25zdCBsb2NhbGVzVG9JbnNlcnQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W10gPSBbXVxuICBjb25zdCByZWxhdGlvbnNUb0luc2VydDogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSA9IFtdXG4gIGNvbnN0IG51bWJlcnNUb0luc2VydDogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSA9IFtdXG4gIGNvbnN0IGJsb2Nrc1RvSW5zZXJ0OiB7IFtibG9ja1R5cGU6IHN0cmluZ106IEJsb2NrUm93VG9JbnNlcnRbXSB9ID0ge31cbiAgY29uc3Qgc2VsZWN0c1RvSW5zZXJ0OiB7IFtzZWxlY3RUYWJsZU5hbWU6IHN0cmluZ106IFJlY29yZDxzdHJpbmcsIHVua25vd24+W10gfSA9IHt9XG5cbiAgLy8gSWYgdGhlcmUgYXJlIGxvY2FsZSByb3dzIHdpdGggZGF0YSwgYWRkIHRoZSBwYXJlbnQgYW5kIGxvY2FsZSB0byBlYWNoXG4gIGlmIChPYmplY3Qua2V5cyhyb3dUb0luc2VydC5sb2NhbGVzKS5sZW5ndGggPiAwKSB7XG4gICAgT2JqZWN0LmVudHJpZXMocm93VG9JbnNlcnQubG9jYWxlcykuZm9yRWFjaCgoW2xvY2FsZSwgbG9jYWxlUm93XSkgPT4ge1xuICAgICAgbG9jYWxlUm93Ll9wYXJlbnRJRCA9IGluc2VydGVkUm93LmlkXG4gICAgICBsb2NhbGVSb3cuX2xvY2FsZSA9IGxvY2FsZVxuICAgICAgbG9jYWxlc1RvSW5zZXJ0LnB1c2gobG9jYWxlUm93KVxuICAgIH0pXG4gIH1cblxuICAvLyBJZiB0aGVyZSBhcmUgcmVsYXRpb25zaGlwcywgYWRkIHBhcmVudCB0byBlYWNoXG4gIGlmIChyb3dUb0luc2VydC5yZWxhdGlvbnNoaXBzLmxlbmd0aCA+IDApIHtcbiAgICByb3dUb0luc2VydC5yZWxhdGlvbnNoaXBzLmZvckVhY2goKHJlbGF0aW9uKSA9PiB7XG4gICAgICByZWxhdGlvbi5wYXJlbnQgPSBpbnNlcnRlZFJvdy5pZFxuICAgICAgcmVsYXRpb25zVG9JbnNlcnQucHVzaChyZWxhdGlvbilcbiAgICB9KVxuICB9XG5cbiAgLy8gSWYgdGhlcmUgYXJlIG51bWJlcnMsIGFkZCBwYXJlbnQgdG8gZWFjaFxuICBpZiAocm93VG9JbnNlcnQubnVtYmVycy5sZW5ndGggPiAwKSB7XG4gICAgcm93VG9JbnNlcnQubnVtYmVycy5mb3JFYWNoKChudW1iZXJSb3cpID0+IHtcbiAgICAgIG51bWJlclJvdy5wYXJlbnQgPSBpbnNlcnRlZFJvdy5pZFxuICAgICAgbnVtYmVyc1RvSW5zZXJ0LnB1c2gobnVtYmVyUm93KVxuICAgIH0pXG4gIH1cblxuICAvLyBJZiB0aGVyZSBhcmUgc2VsZWN0cywgYWRkIHBhcmVudCB0byBlYWNoLCBhbmQgdGhlblxuICAvLyBzdG9yZSBieSB0YWJsZSBuYW1lIGFuZCByb3dzXG4gIGlmIChPYmplY3Qua2V5cyhyb3dUb0luc2VydC5zZWxlY3RzKS5sZW5ndGggPiAwKSB7XG4gICAgT2JqZWN0LmVudHJpZXMocm93VG9JbnNlcnQuc2VsZWN0cykuZm9yRWFjaCgoW3NlbGVjdFRhYmxlTmFtZSwgc2VsZWN0Um93c10pID0+IHtcbiAgICAgIHNlbGVjdFJvd3MuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgIHJvdy5wYXJlbnQgPSBpbnNlcnRlZFJvdy5pZFxuICAgICAgICBpZiAoIXNlbGVjdHNUb0luc2VydFtzZWxlY3RUYWJsZU5hbWVdKSBzZWxlY3RzVG9JbnNlcnRbc2VsZWN0VGFibGVOYW1lXSA9IFtdXG4gICAgICAgIHNlbGVjdHNUb0luc2VydFtzZWxlY3RUYWJsZU5hbWVdLnB1c2gocm93KVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgLy8gSWYgdGhlcmUgYXJlIGJsb2NrcywgYWRkIHBhcmVudCB0byBlYWNoLCBhbmQgdGhlblxuICAvLyBzdG9yZSBieSB0YWJsZSBuYW1lIGFuZCByb3dzXG4gIE9iamVjdC5rZXlzKHJvd1RvSW5zZXJ0LmJsb2NrcykuZm9yRWFjaCgoYmxvY2tOYW1lKSA9PiB7XG4gICAgcm93VG9JbnNlcnQuYmxvY2tzW2Jsb2NrTmFtZV0uZm9yRWFjaCgoYmxvY2tSb3cpID0+IHtcbiAgICAgIGJsb2NrUm93LnJvdy5fcGFyZW50SUQgPSBpbnNlcnRlZFJvdy5pZFxuICAgICAgaWYgKCFibG9ja3NUb0luc2VydFtibG9ja05hbWVdKSBibG9ja3NUb0luc2VydFtibG9ja05hbWVdID0gW11cbiAgICAgIGJsb2Nrc1RvSW5zZXJ0W2Jsb2NrTmFtZV0ucHVzaChibG9ja1JvdylcbiAgICB9KVxuICB9KVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gSU5TRVJUIExPQ0FMRVNcbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIGlmIChsb2NhbGVzVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGxvY2FsZVRhYmxlID0gYWRhcHRlci50YWJsZXNbYCR7dGFibGVOYW1lfV9sb2NhbGVzYF1cblxuICAgIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICBhd2FpdCBkYi5kZWxldGUobG9jYWxlVGFibGUpLndoZXJlKGVxKGxvY2FsZVRhYmxlLl9wYXJlbnRJRCwgaW5zZXJ0ZWRSb3cuaWQpKVxuICAgIH1cblxuICAgIGF3YWl0IGRiLmluc2VydChsb2NhbGVUYWJsZSkudmFsdWVzKGxvY2FsZXNUb0luc2VydClcbiAgfVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gSU5TRVJUIFJFTEFUSU9OU0hJUFNcbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIGNvbnN0IHJlbGF0aW9uc2hpcHNUYWJsZU5hbWUgPSBgJHt0YWJsZU5hbWV9X3JlbGF0aW9uc2hpcHNgXG5cbiAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICBhd2FpdCBkZWxldGVFeGlzdGluZ1Jvd3NCeVBhdGgoe1xuICAgICAgYWRhcHRlcixcbiAgICAgIGRiLFxuICAgICAgbG9jYWxlQ29sdW1uTmFtZTogJ2xvY2FsZScsXG4gICAgICBwYXJlbnRDb2x1bW5OYW1lOiAncGFyZW50JyxcbiAgICAgIHBhcmVudElEOiBpbnNlcnRlZFJvdy5pZCxcbiAgICAgIHBhdGhDb2x1bW5OYW1lOiAncGF0aCcsXG4gICAgICByb3dzOiBbLi4ucmVsYXRpb25zVG9JbnNlcnQsIC4uLnJvd1RvSW5zZXJ0LnJlbGF0aW9uc2hpcHNUb0RlbGV0ZV0sXG4gICAgICB0YWJsZU5hbWU6IHJlbGF0aW9uc2hpcHNUYWJsZU5hbWUsXG4gICAgfSlcbiAgfVxuXG4gIGlmIChyZWxhdGlvbnNUb0luc2VydC5sZW5ndGggPiAwKSB7XG4gICAgYXdhaXQgZGIuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW3JlbGF0aW9uc2hpcHNUYWJsZU5hbWVdKS52YWx1ZXMocmVsYXRpb25zVG9JbnNlcnQpXG4gIH1cblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIElOU0VSVCBoYXNNYW55IE5VTUJFUlNcbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIGNvbnN0IG51bWJlcnNUYWJsZU5hbWUgPSBgJHt0YWJsZU5hbWV9X251bWJlcnNgXG5cbiAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICBhd2FpdCBkZWxldGVFeGlzdGluZ1Jvd3NCeVBhdGgoe1xuICAgICAgYWRhcHRlcixcbiAgICAgIGRiLFxuICAgICAgbG9jYWxlQ29sdW1uTmFtZTogJ2xvY2FsZScsXG4gICAgICBwYXJlbnRDb2x1bW5OYW1lOiAncGFyZW50JyxcbiAgICAgIHBhcmVudElEOiBpbnNlcnRlZFJvdy5pZCxcbiAgICAgIHBhdGhDb2x1bW5OYW1lOiAncGF0aCcsXG4gICAgICByb3dzOiBudW1iZXJzVG9JbnNlcnQsXG4gICAgICB0YWJsZU5hbWU6IG51bWJlcnNUYWJsZU5hbWUsXG4gICAgfSlcbiAgfVxuXG4gIGlmIChudW1iZXJzVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgIGF3YWl0IGRiLmluc2VydChhZGFwdGVyLnRhYmxlc1tudW1iZXJzVGFibGVOYW1lXSkudmFsdWVzKG51bWJlcnNUb0luc2VydCkucmV0dXJuaW5nKClcbiAgfVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gSU5TRVJUIEJMT0NLU1xuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgY29uc3QgaW5zZXJ0ZWRCbG9ja1Jvd3M6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+ID0ge31cblxuICBmb3IgKGNvbnN0IFtibG9ja05hbWUsIGJsb2NrUm93c10gb2YgT2JqZWN0LmVudHJpZXMoYmxvY2tzVG9JbnNlcnQpKSB7XG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgIGF3YWl0IGRlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCh7XG4gICAgICAgIGFkYXB0ZXIsXG4gICAgICAgIGRiLFxuICAgICAgICBwYXJlbnRJRDogaW5zZXJ0ZWRSb3cuaWQsXG4gICAgICAgIHBhdGhDb2x1bW5OYW1lOiAnX3BhdGgnLFxuICAgICAgICByb3dzOiBibG9ja1Jvd3MubWFwKCh7IHJvdyB9KSA9PiByb3cpLFxuICAgICAgICB0YWJsZU5hbWU6IGAke3RhYmxlTmFtZX1fYmxvY2tzXyR7YmxvY2tOYW1lfWAsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGluc2VydGVkQmxvY2tSb3dzW2Jsb2NrTmFtZV0gPSBhd2FpdCBkYlxuICAgICAgLmluc2VydChhZGFwdGVyLnRhYmxlc1tgJHt0YWJsZU5hbWV9X2Jsb2Nrc18ke2Jsb2NrTmFtZX1gXSlcbiAgICAgIC52YWx1ZXMoYmxvY2tSb3dzLm1hcCgoeyByb3cgfSkgPT4gcm93KSlcbiAgICAgIC5yZXR1cm5pbmcoKVxuXG4gICAgaW5zZXJ0ZWRCbG9ja1Jvd3NbYmxvY2tOYW1lXS5mb3JFYWNoKChyb3csIGkpID0+IHtcbiAgICAgIGJsb2NrUm93c1tpXS5yb3cgPSByb3dcbiAgICB9KVxuXG4gICAgY29uc3QgYmxvY2tMb2NhbGVJbmRleE1hcDogbnVtYmVyW10gPSBbXVxuXG4gICAgY29uc3QgYmxvY2tMb2NhbGVSb3dzVG9JbnNlcnQgPSBibG9ja1Jvd3MucmVkdWNlKChhY2MsIGJsb2NrUm93LCBpKSA9PiB7XG4gICAgICBpZiAoT2JqZWN0LmVudHJpZXMoYmxvY2tSb3cubG9jYWxlcykubGVuZ3RoID4gMCkge1xuICAgICAgICBPYmplY3QuZW50cmllcyhibG9ja1Jvdy5sb2NhbGVzKS5mb3JFYWNoKChbYmxvY2tMb2NhbGUsIGJsb2NrTG9jYWxlRGF0YV0pID0+IHtcbiAgICAgICAgICBpZiAoT2JqZWN0LmtleXMoYmxvY2tMb2NhbGVEYXRhKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBibG9ja0xvY2FsZURhdGEuX3BhcmVudElEID0gYmxvY2tSb3cucm93LmlkXG4gICAgICAgICAgICBibG9ja0xvY2FsZURhdGEuX2xvY2FsZSA9IGJsb2NrTG9jYWxlXG4gICAgICAgICAgICBhY2MucHVzaChibG9ja0xvY2FsZURhdGEpXG4gICAgICAgICAgICBibG9ja0xvY2FsZUluZGV4TWFwLnB1c2goaSlcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhY2NcbiAgICB9LCBbXSlcblxuICAgIGlmIChibG9ja0xvY2FsZVJvd3NUb0luc2VydC5sZW5ndGggPiAwKSB7XG4gICAgICBhd2FpdCBkYlxuICAgICAgICAuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW2Ake3RhYmxlTmFtZX1fYmxvY2tzXyR7YmxvY2tOYW1lfV9sb2NhbGVzYF0pXG4gICAgICAgIC52YWx1ZXMoYmxvY2tMb2NhbGVSb3dzVG9JbnNlcnQpXG4gICAgICAgIC5yZXR1cm5pbmcoKVxuICAgIH1cblxuICAgIGF3YWl0IGluc2VydEFycmF5cyh7XG4gICAgICBhZGFwdGVyLFxuICAgICAgYXJyYXlzOiBibG9ja1Jvd3MubWFwKCh7IGFycmF5cyB9KSA9PiBhcnJheXMpLFxuICAgICAgZGIsXG4gICAgICBwYXJlbnRSb3dzOiBpbnNlcnRlZEJsb2NrUm93c1tibG9ja05hbWVdLFxuICAgIH0pXG4gIH1cblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIElOU0VSVCBBUlJBWVMgUkVDVVJTSVZFTFlcbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgZm9yIChjb25zdCBhcnJheVRhYmxlTmFtZSBvZiBPYmplY3Qua2V5cyhyb3dUb0luc2VydC5hcnJheXMpKSB7XG4gICAgICBhd2FpdCBkZWxldGVFeGlzdGluZ0FycmF5Um93cyh7XG4gICAgICAgIGFkYXB0ZXIsXG4gICAgICAgIGRiLFxuICAgICAgICBwYXJlbnRJRDogaW5zZXJ0ZWRSb3cuaWQsXG4gICAgICAgIHRhYmxlTmFtZTogYXJyYXlUYWJsZU5hbWUsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGF3YWl0IGluc2VydEFycmF5cyh7XG4gICAgYWRhcHRlcixcbiAgICBhcnJheXM6IFtyb3dUb0luc2VydC5hcnJheXNdLFxuICAgIGRiLFxuICAgIHBhcmVudFJvd3M6IFtpbnNlcnRlZFJvd10sXG4gIH0pXG5cbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBJTlNFUlQgaGFzTWFueSBTRUxFQ1RTXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICBmb3IgKGNvbnN0IFtzZWxlY3RUYWJsZU5hbWUsIHRhYmxlUm93c10gb2YgT2JqZWN0LmVudHJpZXMoc2VsZWN0c1RvSW5zZXJ0KSkge1xuICAgIGNvbnN0IHNlbGVjdFRhYmxlID0gYWRhcHRlci50YWJsZXNbc2VsZWN0VGFibGVOYW1lXVxuICAgIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICBhd2FpdCBkYi5kZWxldGUoc2VsZWN0VGFibGUpLndoZXJlKGVxKHNlbGVjdFRhYmxlLnBhcmVudCwgaW5zZXJ0ZWRSb3cuaWQpKVxuICAgIH1cbiAgICBhd2FpdCBkYi5pbnNlcnQoc2VsZWN0VGFibGUpLnZhbHVlcyh0YWJsZVJvd3MpLnJldHVybmluZygpXG4gIH1cblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIFJFVFJJRVZFIE5FV0xZIFVQREFURUQgUk9XXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICBjb25zdCBmaW5kTWFueUFyZ3MgPSBidWlsZEZpbmRNYW55QXJncyh7XG4gICAgYWRhcHRlcixcbiAgICBkZXB0aDogMCxcbiAgICBmaWVsZHMsXG4gICAgdGFibGVOYW1lLFxuICB9KVxuXG4gIGZpbmRNYW55QXJncy53aGVyZSA9IGVxKGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0uaWQsIGluc2VydGVkUm93LmlkKVxuXG4gIGNvbnN0IGRvYyA9IGF3YWl0IGRiLnF1ZXJ5W3RhYmxlTmFtZV0uZmluZEZpcnN0KGZpbmRNYW55QXJncylcblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIFRSQU5TRk9STSBEQVRBXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICBjb25zdCByZXN1bHQgPSB0cmFuc2Zvcm08VD4oe1xuICAgIGNvbmZpZzogYWRhcHRlci5wYXlsb2FkLmNvbmZpZyxcbiAgICBkYXRhOiBkb2MsXG4gICAgZmllbGRzLFxuICB9KVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJuYW1lcyI6WyJ1cHNlcnRSb3ciLCJpZCIsImFkYXB0ZXIiLCJkYXRhIiwiZGIiLCJmaWVsZHMiLCJvcGVyYXRpb24iLCJwYXRoIiwidGFibGVOYW1lIiwidXBzZXJ0VGFyZ2V0Iiwid2hlcmUiLCJyb3dUb0luc2VydCIsInRyYW5zZm9ybUZvcldyaXRlIiwiaW5zZXJ0ZWRSb3ciLCJ0YXJnZXQiLCJ0YWJsZXMiLCJyb3ciLCJpbnNlcnQiLCJ2YWx1ZXMiLCJvbkNvbmZsaWN0RG9VcGRhdGUiLCJzZXQiLCJyZXR1cm5pbmciLCJsb2NhbGVzVG9JbnNlcnQiLCJyZWxhdGlvbnNUb0luc2VydCIsIm51bWJlcnNUb0luc2VydCIsImJsb2Nrc1RvSW5zZXJ0Iiwic2VsZWN0c1RvSW5zZXJ0IiwiT2JqZWN0Iiwia2V5cyIsImxvY2FsZXMiLCJsZW5ndGgiLCJlbnRyaWVzIiwiZm9yRWFjaCIsImxvY2FsZSIsImxvY2FsZVJvdyIsIl9wYXJlbnRJRCIsIl9sb2NhbGUiLCJwdXNoIiwicmVsYXRpb25zaGlwcyIsInJlbGF0aW9uIiwicGFyZW50IiwibnVtYmVycyIsIm51bWJlclJvdyIsInNlbGVjdHMiLCJzZWxlY3RUYWJsZU5hbWUiLCJzZWxlY3RSb3dzIiwiYmxvY2tzIiwiYmxvY2tOYW1lIiwiYmxvY2tSb3ciLCJsb2NhbGVUYWJsZSIsImRlbGV0ZSIsImVxIiwicmVsYXRpb25zaGlwc1RhYmxlTmFtZSIsImRlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCIsImxvY2FsZUNvbHVtbk5hbWUiLCJwYXJlbnRDb2x1bW5OYW1lIiwicGFyZW50SUQiLCJwYXRoQ29sdW1uTmFtZSIsInJvd3MiLCJyZWxhdGlvbnNoaXBzVG9EZWxldGUiLCJudW1iZXJzVGFibGVOYW1lIiwiaW5zZXJ0ZWRCbG9ja1Jvd3MiLCJibG9ja1Jvd3MiLCJtYXAiLCJpIiwiYmxvY2tMb2NhbGVJbmRleE1hcCIsImJsb2NrTG9jYWxlUm93c1RvSW5zZXJ0IiwicmVkdWNlIiwiYWNjIiwiYmxvY2tMb2NhbGUiLCJibG9ja0xvY2FsZURhdGEiLCJpbnNlcnRBcnJheXMiLCJhcnJheXMiLCJwYXJlbnRSb3dzIiwiYXJyYXlUYWJsZU5hbWUiLCJkZWxldGVFeGlzdGluZ0FycmF5Um93cyIsInRhYmxlUm93cyIsInNlbGVjdFRhYmxlIiwiZmluZE1hbnlBcmdzIiwiYnVpbGRGaW5kTWFueUFyZ3MiLCJkZXB0aCIsImRvYyIsInF1ZXJ5IiwiZmluZEZpcnN0IiwicmVzdWx0IiwidHJhbnNmb3JtIiwiY29uZmlnIiwicGF5bG9hZCJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQWV2QkE7OztlQUFBQTs7OzRCQVpNO21DQUtlO3NCQUNSO3VCQUNRO3lDQUNNOzBDQUNDOzhCQUNaO0FBRXRCLE1BQU1BLFlBQVksT0FBNkIsRUFDcERDLEVBQUUsRUFDRkMsT0FBTyxFQUNQQyxJQUFJLEVBQ0pDLEVBQUUsRUFDRkMsTUFBTSxFQUNOQyxTQUFTLEVBQ1RDLE9BQU8sRUFBRSxFQUNUQyxTQUFTLEVBQ1RDLFlBQVksRUFDWkMsS0FBSyxFQUNBO0lBQ0wsc0RBQXNEO0lBQ3RELHVEQUF1RDtJQUN2RCxNQUFNQyxjQUFjQyxJQUFBQSx3QkFBaUIsRUFBQztRQUNwQ1Q7UUFDQUU7UUFDQUU7UUFDQUM7SUFDRjtJQUVBLGdDQUFnQztJQUNoQyxJQUFJSztJQUVKLElBQUlQLGNBQWMsVUFBVTtRQUMxQixNQUFNUSxTQUFTTCxnQkFBZ0JQLFFBQVFhLE1BQU0sQ0FBQ1AsVUFBVSxDQUFDUCxFQUFFO1FBRTNELElBQUlBLElBQUk7WUFDTlUsWUFBWUssR0FBRyxDQUFDZixFQUFFLEdBQUdBO1lBQ3BCLENBQUNZLFlBQVksR0FBRyxNQUFNVCxHQUNwQmEsTUFBTSxDQUFDZixRQUFRYSxNQUFNLENBQUNQLFVBQVUsRUFDaENVLE1BQU0sQ0FBQ1AsWUFBWUssR0FBRyxFQUN0Qkcsa0JBQWtCLENBQUM7Z0JBQUVDLEtBQUtULFlBQVlLLEdBQUc7Z0JBQUVGO1lBQU8sR0FDbERPLFNBQVM7UUFDZCxPQUFPO1lBQ0osQ0FBQ1IsWUFBWSxHQUFHLE1BQU1ULEdBQ3BCYSxNQUFNLENBQUNmLFFBQVFhLE1BQU0sQ0FBQ1AsVUFBVSxFQUNoQ1UsTUFBTSxDQUFDUCxZQUFZSyxHQUFHLEVBQ3RCRyxrQkFBa0IsQ0FBQztnQkFBRUMsS0FBS1QsWUFBWUssR0FBRztnQkFBRUY7Z0JBQVFKO1lBQU0sR0FDekRXLFNBQVM7UUFDZDtJQUNGLE9BQU87UUFDSixDQUFDUixZQUFZLEdBQUcsTUFBTVQsR0FBR2EsTUFBTSxDQUFDZixRQUFRYSxNQUFNLENBQUNQLFVBQVUsRUFBRVUsTUFBTSxDQUFDUCxZQUFZSyxHQUFHLEVBQUVLLFNBQVM7SUFDL0Y7SUFFQSxNQUFNQyxrQkFBNkMsRUFBRTtJQUNyRCxNQUFNQyxvQkFBK0MsRUFBRTtJQUN2RCxNQUFNQyxrQkFBNkMsRUFBRTtJQUNyRCxNQUFNQyxpQkFBOEQsQ0FBQztJQUNyRSxNQUFNQyxrQkFBNEUsQ0FBQztJQUVuRix3RUFBd0U7SUFDeEUsSUFBSUMsT0FBT0MsSUFBSSxDQUFDakIsWUFBWWtCLE9BQU8sRUFBRUMsTUFBTSxHQUFHLEdBQUc7UUFDL0NILE9BQU9JLE9BQU8sQ0FBQ3BCLFlBQVlrQixPQUFPLEVBQUVHLE9BQU8sQ0FBQyxDQUFDLENBQUNDLFFBQVFDLFVBQVU7WUFDOURBLFVBQVVDLFNBQVMsR0FBR3RCLFlBQVlaLEVBQUU7WUFDcENpQyxVQUFVRSxPQUFPLEdBQUdIO1lBQ3BCWCxnQkFBZ0JlLElBQUksQ0FBQ0g7UUFDdkI7SUFDRjtJQUVBLGlEQUFpRDtJQUNqRCxJQUFJdkIsWUFBWTJCLGFBQWEsQ0FBQ1IsTUFBTSxHQUFHLEdBQUc7UUFDeENuQixZQUFZMkIsYUFBYSxDQUFDTixPQUFPLENBQUMsQ0FBQ087WUFDakNBLFNBQVNDLE1BQU0sR0FBRzNCLFlBQVlaLEVBQUU7WUFDaENzQixrQkFBa0JjLElBQUksQ0FBQ0U7UUFDekI7SUFDRjtJQUVBLDJDQUEyQztJQUMzQyxJQUFJNUIsWUFBWThCLE9BQU8sQ0FBQ1gsTUFBTSxHQUFHLEdBQUc7UUFDbENuQixZQUFZOEIsT0FBTyxDQUFDVCxPQUFPLENBQUMsQ0FBQ1U7WUFDM0JBLFVBQVVGLE1BQU0sR0FBRzNCLFlBQVlaLEVBQUU7WUFDakN1QixnQkFBZ0JhLElBQUksQ0FBQ0s7UUFDdkI7SUFDRjtJQUVBLHFEQUFxRDtJQUNyRCwrQkFBK0I7SUFDL0IsSUFBSWYsT0FBT0MsSUFBSSxDQUFDakIsWUFBWWdDLE9BQU8sRUFBRWIsTUFBTSxHQUFHLEdBQUc7UUFDL0NILE9BQU9JLE9BQU8sQ0FBQ3BCLFlBQVlnQyxPQUFPLEVBQUVYLE9BQU8sQ0FBQyxDQUFDLENBQUNZLGlCQUFpQkMsV0FBVztZQUN4RUEsV0FBV2IsT0FBTyxDQUFDLENBQUNoQjtnQkFDbEJBLElBQUl3QixNQUFNLEdBQUczQixZQUFZWixFQUFFO2dCQUMzQixJQUFJLENBQUN5QixlQUFlLENBQUNrQixnQkFBZ0IsRUFBRWxCLGVBQWUsQ0FBQ2tCLGdCQUFnQixHQUFHLEVBQUU7Z0JBQzVFbEIsZUFBZSxDQUFDa0IsZ0JBQWdCLENBQUNQLElBQUksQ0FBQ3JCO1lBQ3hDO1FBQ0Y7SUFDRjtJQUVBLG9EQUFvRDtJQUNwRCwrQkFBK0I7SUFDL0JXLE9BQU9DLElBQUksQ0FBQ2pCLFlBQVltQyxNQUFNLEVBQUVkLE9BQU8sQ0FBQyxDQUFDZTtRQUN2Q3BDLFlBQVltQyxNQUFNLENBQUNDLFVBQVUsQ0FBQ2YsT0FBTyxDQUFDLENBQUNnQjtZQUNyQ0EsU0FBU2hDLEdBQUcsQ0FBQ21CLFNBQVMsR0FBR3RCLFlBQVlaLEVBQUU7WUFDdkMsSUFBSSxDQUFDd0IsY0FBYyxDQUFDc0IsVUFBVSxFQUFFdEIsY0FBYyxDQUFDc0IsVUFBVSxHQUFHLEVBQUU7WUFDOUR0QixjQUFjLENBQUNzQixVQUFVLENBQUNWLElBQUksQ0FBQ1c7UUFDakM7SUFDRjtJQUVBLHFDQUFxQztJQUNyQyxpQkFBaUI7SUFDakIscUNBQXFDO0lBRXJDLElBQUkxQixnQkFBZ0JRLE1BQU0sR0FBRyxHQUFHO1FBQzlCLE1BQU1tQixjQUFjL0MsUUFBUWEsTUFBTSxDQUFDLENBQUMsRUFBRVAsVUFBVSxRQUFRLENBQUMsQ0FBQztRQUUxRCxJQUFJRixjQUFjLFVBQVU7WUFDMUIsTUFBTUYsR0FBRzhDLE1BQU0sQ0FBQ0QsYUFBYXZDLEtBQUssQ0FBQ3lDLElBQUFBLGNBQUUsRUFBQ0YsWUFBWWQsU0FBUyxFQUFFdEIsWUFBWVosRUFBRTtRQUM3RTtRQUVBLE1BQU1HLEdBQUdhLE1BQU0sQ0FBQ2dDLGFBQWEvQixNQUFNLENBQUNJO0lBQ3RDO0lBRUEscUNBQXFDO0lBQ3JDLHVCQUF1QjtJQUN2QixxQ0FBcUM7SUFFckMsTUFBTThCLHlCQUF5QixDQUFDLEVBQUU1QyxVQUFVLGNBQWMsQ0FBQztJQUUzRCxJQUFJRixjQUFjLFVBQVU7UUFDMUIsTUFBTStDLElBQUFBLGtEQUF3QixFQUFDO1lBQzdCbkQ7WUFDQUU7WUFDQWtELGtCQUFrQjtZQUNsQkMsa0JBQWtCO1lBQ2xCQyxVQUFVM0MsWUFBWVosRUFBRTtZQUN4QndELGdCQUFnQjtZQUNoQkMsTUFBTTttQkFBSW5DO21CQUFzQlosWUFBWWdELHFCQUFxQjthQUFDO1lBQ2xFbkQsV0FBVzRDO1FBQ2I7SUFDRjtJQUVBLElBQUk3QixrQkFBa0JPLE1BQU0sR0FBRyxHQUFHO1FBQ2hDLE1BQU0xQixHQUFHYSxNQUFNLENBQUNmLFFBQVFhLE1BQU0sQ0FBQ3FDLHVCQUF1QixFQUFFbEMsTUFBTSxDQUFDSztJQUNqRTtJQUVBLHFDQUFxQztJQUNyQyx5QkFBeUI7SUFDekIscUNBQXFDO0lBRXJDLE1BQU1xQyxtQkFBbUIsQ0FBQyxFQUFFcEQsVUFBVSxRQUFRLENBQUM7SUFFL0MsSUFBSUYsY0FBYyxVQUFVO1FBQzFCLE1BQU0rQyxJQUFBQSxrREFBd0IsRUFBQztZQUM3Qm5EO1lBQ0FFO1lBQ0FrRCxrQkFBa0I7WUFDbEJDLGtCQUFrQjtZQUNsQkMsVUFBVTNDLFlBQVlaLEVBQUU7WUFDeEJ3RCxnQkFBZ0I7WUFDaEJDLE1BQU1sQztZQUNOaEIsV0FBV29EO1FBQ2I7SUFDRjtJQUVBLElBQUlwQyxnQkFBZ0JNLE1BQU0sR0FBRyxHQUFHO1FBQzlCLE1BQU0xQixHQUFHYSxNQUFNLENBQUNmLFFBQVFhLE1BQU0sQ0FBQzZDLGlCQUFpQixFQUFFMUMsTUFBTSxDQUFDTSxpQkFBaUJILFNBQVM7SUFDckY7SUFFQSxxQ0FBcUM7SUFDckMsZ0JBQWdCO0lBQ2hCLHFDQUFxQztJQUVyQyxNQUFNd0Msb0JBQStELENBQUM7SUFFdEUsS0FBSyxNQUFNLENBQUNkLFdBQVdlLFVBQVUsSUFBSW5DLE9BQU9JLE9BQU8sQ0FBQ04sZ0JBQWlCO1FBQ25FLElBQUluQixjQUFjLFVBQVU7WUFDMUIsTUFBTStDLElBQUFBLGtEQUF3QixFQUFDO2dCQUM3Qm5EO2dCQUNBRTtnQkFDQW9ELFVBQVUzQyxZQUFZWixFQUFFO2dCQUN4QndELGdCQUFnQjtnQkFDaEJDLE1BQU1JLFVBQVVDLEdBQUcsQ0FBQyxDQUFDLEVBQUUvQyxHQUFHLEVBQUUsR0FBS0E7Z0JBQ2pDUixXQUFXLENBQUMsRUFBRUEsVUFBVSxRQUFRLEVBQUV1QyxVQUFVLENBQUM7WUFDL0M7UUFDRjtRQUVBYyxpQkFBaUIsQ0FBQ2QsVUFBVSxHQUFHLE1BQU0zQyxHQUNsQ2EsTUFBTSxDQUFDZixRQUFRYSxNQUFNLENBQUMsQ0FBQyxFQUFFUCxVQUFVLFFBQVEsRUFBRXVDLFVBQVUsQ0FBQyxDQUFDLEVBQ3pEN0IsTUFBTSxDQUFDNEMsVUFBVUMsR0FBRyxDQUFDLENBQUMsRUFBRS9DLEdBQUcsRUFBRSxHQUFLQSxNQUNsQ0ssU0FBUztRQUVad0MsaUJBQWlCLENBQUNkLFVBQVUsQ0FBQ2YsT0FBTyxDQUFDLENBQUNoQixLQUFLZ0Q7WUFDekNGLFNBQVMsQ0FBQ0UsRUFBRSxDQUFDaEQsR0FBRyxHQUFHQTtRQUNyQjtRQUVBLE1BQU1pRCxzQkFBZ0MsRUFBRTtRQUV4QyxNQUFNQywwQkFBMEJKLFVBQVVLLE1BQU0sQ0FBQyxDQUFDQyxLQUFLcEIsVUFBVWdCO1lBQy9ELElBQUlyQyxPQUFPSSxPQUFPLENBQUNpQixTQUFTbkIsT0FBTyxFQUFFQyxNQUFNLEdBQUcsR0FBRztnQkFDL0NILE9BQU9JLE9BQU8sQ0FBQ2lCLFNBQVNuQixPQUFPLEVBQUVHLE9BQU8sQ0FBQyxDQUFDLENBQUNxQyxhQUFhQyxnQkFBZ0I7b0JBQ3RFLElBQUkzQyxPQUFPQyxJQUFJLENBQUMwQyxpQkFBaUJ4QyxNQUFNLEdBQUcsR0FBRzt3QkFDM0N3QyxnQkFBZ0JuQyxTQUFTLEdBQUdhLFNBQVNoQyxHQUFHLENBQUNmLEVBQUU7d0JBQzNDcUUsZ0JBQWdCbEMsT0FBTyxHQUFHaUM7d0JBQzFCRCxJQUFJL0IsSUFBSSxDQUFDaUM7d0JBQ1RMLG9CQUFvQjVCLElBQUksQ0FBQzJCO29CQUMzQjtnQkFDRjtZQUNGO1lBRUEsT0FBT0k7UUFDVCxHQUFHLEVBQUU7UUFFTCxJQUFJRix3QkFBd0JwQyxNQUFNLEdBQUcsR0FBRztZQUN0QyxNQUFNMUIsR0FDSGEsTUFBTSxDQUFDZixRQUFRYSxNQUFNLENBQUMsQ0FBQyxFQUFFUCxVQUFVLFFBQVEsRUFBRXVDLFVBQVUsUUFBUSxDQUFDLENBQUMsRUFDakU3QixNQUFNLENBQUNnRCx5QkFDUDdDLFNBQVM7UUFDZDtRQUVBLE1BQU1rRCxJQUFBQSwwQkFBWSxFQUFDO1lBQ2pCckU7WUFDQXNFLFFBQVFWLFVBQVVDLEdBQUcsQ0FBQyxDQUFDLEVBQUVTLE1BQU0sRUFBRSxHQUFLQTtZQUN0Q3BFO1lBQ0FxRSxZQUFZWixpQkFBaUIsQ0FBQ2QsVUFBVTtRQUMxQztJQUNGO0lBRUEscUNBQXFDO0lBQ3JDLDRCQUE0QjtJQUM1QixxQ0FBcUM7SUFFckMsSUFBSXpDLGNBQWMsVUFBVTtRQUMxQixLQUFLLE1BQU1vRSxrQkFBa0IvQyxPQUFPQyxJQUFJLENBQUNqQixZQUFZNkQsTUFBTSxFQUFHO1lBQzVELE1BQU1HLElBQUFBLGdEQUF1QixFQUFDO2dCQUM1QnpFO2dCQUNBRTtnQkFDQW9ELFVBQVUzQyxZQUFZWixFQUFFO2dCQUN4Qk8sV0FBV2tFO1lBQ2I7UUFDRjtJQUNGO0lBRUEsTUFBTUgsSUFBQUEsMEJBQVksRUFBQztRQUNqQnJFO1FBQ0FzRSxRQUFRO1lBQUM3RCxZQUFZNkQsTUFBTTtTQUFDO1FBQzVCcEU7UUFDQXFFLFlBQVk7WUFBQzVEO1NBQVk7SUFDM0I7SUFFQSxxQ0FBcUM7SUFDckMseUJBQXlCO0lBQ3pCLHFDQUFxQztJQUVyQyxLQUFLLE1BQU0sQ0FBQytCLGlCQUFpQmdDLFVBQVUsSUFBSWpELE9BQU9JLE9BQU8sQ0FBQ0wsaUJBQWtCO1FBQzFFLE1BQU1tRCxjQUFjM0UsUUFBUWEsTUFBTSxDQUFDNkIsZ0JBQWdCO1FBQ25ELElBQUl0QyxjQUFjLFVBQVU7WUFDMUIsTUFBTUYsR0FBRzhDLE1BQU0sQ0FBQzJCLGFBQWFuRSxLQUFLLENBQUN5QyxJQUFBQSxjQUFFLEVBQUMwQixZQUFZckMsTUFBTSxFQUFFM0IsWUFBWVosRUFBRTtRQUMxRTtRQUNBLE1BQU1HLEdBQUdhLE1BQU0sQ0FBQzRELGFBQWEzRCxNQUFNLENBQUMwRCxXQUFXdkQsU0FBUztJQUMxRDtJQUVBLHFDQUFxQztJQUNyQyw2QkFBNkI7SUFDN0IscUNBQXFDO0lBRXJDLE1BQU15RCxlQUFlQyxJQUFBQSxvQ0FBaUIsRUFBQztRQUNyQzdFO1FBQ0E4RSxPQUFPO1FBQ1AzRTtRQUNBRztJQUNGO0lBRUFzRSxhQUFhcEUsS0FBSyxHQUFHeUMsSUFBQUEsY0FBRSxFQUFDakQsUUFBUWEsTUFBTSxDQUFDUCxVQUFVLENBQUNQLEVBQUUsRUFBRVksWUFBWVosRUFBRTtJQUVwRSxNQUFNZ0YsTUFBTSxNQUFNN0UsR0FBRzhFLEtBQUssQ0FBQzFFLFVBQVUsQ0FBQzJFLFNBQVMsQ0FBQ0w7SUFFaEQscUNBQXFDO0lBQ3JDLGlCQUFpQjtJQUNqQixxQ0FBcUM7SUFFckMsTUFBTU0sU0FBU0MsSUFBQUEsZUFBUyxFQUFJO1FBQzFCQyxRQUFRcEYsUUFBUXFGLE9BQU8sQ0FBQ0QsTUFBTTtRQUM5Qm5GLE1BQU04RTtRQUNONUU7SUFDRjtJQUVBLE9BQU8rRTtBQUNUIn0=
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cHNlcnRSb3cvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgVHlwZVdpdGhJRCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IGVxIH0gZnJvbSAnZHJpenpsZS1vcm0nXG5cbmltcG9ydCB0eXBlIHsgQmxvY2tSb3dUb0luc2VydCB9IGZyb20gJy4uL3RyYW5zZm9ybS93cml0ZS90eXBlcydcbmltcG9ydCB0eXBlIHsgQXJncyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGJ1aWxkRmluZE1hbnlBcmdzIH0gZnJvbSAnLi4vZmluZC9idWlsZEZpbmRNYW55QXJncydcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJy4uL3RyYW5zZm9ybS9yZWFkJ1xuaW1wb3J0IHsgdHJhbnNmb3JtRm9yV3JpdGUgfSBmcm9tICcuLi90cmFuc2Zvcm0vd3JpdGUnXG5pbXBvcnQgeyBkZWxldGVFeGlzdGluZ0FycmF5Um93cyB9IGZyb20gJy4vZGVsZXRlRXhpc3RpbmdBcnJheVJvd3MnXG5pbXBvcnQgeyBkZWxldGVFeGlzdGluZ1Jvd3NCeVBhdGggfSBmcm9tICcuL2RlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCdcbmltcG9ydCB7IGluc2VydEFycmF5cyB9IGZyb20gJy4vaW5zZXJ0QXJyYXlzJ1xuXG5leHBvcnQgY29uc3QgdXBzZXJ0Um93ID0gYXN5bmMgPFQgZXh0ZW5kcyBUeXBlV2l0aElEPih7XG4gIGlkLFxuICBhZGFwdGVyLFxuICBkYXRhLFxuICBkYixcbiAgZmllbGRzLFxuICBvcGVyYXRpb24sXG4gIHBhdGggPSAnJyxcbiAgdGFibGVOYW1lLFxuICB1cHNlcnRUYXJnZXQsXG4gIHdoZXJlLFxufTogQXJncyk6IFByb21pc2U8VD4gPT4ge1xuICAvLyBTcGxpdCBvdXQgdGhlIGluY29taW5nIGRhdGEgaW50byB0aGUgY29ycmVzcG9uZGluZzpcbiAgLy8gYmFzZSByb3csIGxvY2FsZXMsIHJlbGF0aW9uc2hpcHMsIGJsb2NrcywgYW5kIGFycmF5c1xuICBjb25zdCByb3dUb0luc2VydCA9IHRyYW5zZm9ybUZvcldyaXRlKHtcbiAgICBkYXRhLFxuICAgIGZpZWxkcyxcbiAgICBwYXRoLFxuICAgIHRhYmxlTmFtZSxcbiAgfSlcblxuICAvLyBGaXJzdCwgd2UgaW5zZXJ0IHRoZSBtYWluIHJvd1xuICBsZXQgaW5zZXJ0ZWRSb3c6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG5cbiAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICBjb25zdCB0YXJnZXQgPSB1cHNlcnRUYXJnZXQgfHwgYWRhcHRlci50YWJsZXNbdGFibGVOYW1lXS5pZFxuXG4gICAgaWYgKGlkKSB7XG4gICAgICByb3dUb0luc2VydC5yb3cuaWQgPSBpZFxuICAgICAgO1tpbnNlcnRlZFJvd10gPSBhd2FpdCBkYlxuICAgICAgICAuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0pXG4gICAgICAgIC52YWx1ZXMocm93VG9JbnNlcnQucm93KVxuICAgICAgICAub25Db25mbGljdERvVXBkYXRlKHsgc2V0OiByb3dUb0luc2VydC5yb3csIHRhcmdldCB9KVxuICAgICAgICAucmV0dXJuaW5nKClcbiAgICB9IGVsc2Uge1xuICAgICAgO1tpbnNlcnRlZFJvd10gPSBhd2FpdCBkYlxuICAgICAgICAuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0pXG4gICAgICAgIC52YWx1ZXMocm93VG9JbnNlcnQucm93KVxuICAgICAgICAub25Db25mbGljdERvVXBkYXRlKHsgc2V0OiByb3dUb0luc2VydC5yb3csIHRhcmdldCwgd2hlcmUgfSlcbiAgICAgICAgLnJldHVybmluZygpXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIDtbaW5zZXJ0ZWRSb3ddID0gYXdhaXQgZGIuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0pLnZhbHVlcyhyb3dUb0luc2VydC5yb3cpLnJldHVybmluZygpXG4gIH1cblxuICBjb25zdCBsb2NhbGVzVG9JbnNlcnQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W10gPSBbXVxuICBjb25zdCByZWxhdGlvbnNUb0luc2VydDogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSA9IFtdXG4gIGNvbnN0IG51bWJlcnNUb0luc2VydDogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSA9IFtdXG4gIGNvbnN0IGJsb2Nrc1RvSW5zZXJ0OiB7IFtibG9ja1R5cGU6IHN0cmluZ106IEJsb2NrUm93VG9JbnNlcnRbXSB9ID0ge31cbiAgY29uc3Qgc2VsZWN0c1RvSW5zZXJ0OiB7IFtzZWxlY3RUYWJsZU5hbWU6IHN0cmluZ106IFJlY29yZDxzdHJpbmcsIHVua25vd24+W10gfSA9IHt9XG5cbiAgLy8gSWYgdGhlcmUgYXJlIGxvY2FsZSByb3dzIHdpdGggZGF0YSwgYWRkIHRoZSBwYXJlbnQgYW5kIGxvY2FsZSB0byBlYWNoXG4gIGlmIChPYmplY3Qua2V5cyhyb3dUb0luc2VydC5sb2NhbGVzKS5sZW5ndGggPiAwKSB7XG4gICAgT2JqZWN0LmVudHJpZXMocm93VG9JbnNlcnQubG9jYWxlcykuZm9yRWFjaCgoW2xvY2FsZSwgbG9jYWxlUm93XSkgPT4ge1xuICAgICAgbG9jYWxlUm93Ll9wYXJlbnRJRCA9IGluc2VydGVkUm93LmlkXG4gICAgICBsb2NhbGVSb3cuX2xvY2FsZSA9IGxvY2FsZVxuICAgICAgbG9jYWxlc1RvSW5zZXJ0LnB1c2gobG9jYWxlUm93KVxuICAgIH0pXG4gIH1cblxuICAvLyBJZiB0aGVyZSBhcmUgcmVsYXRpb25zaGlwcywgYWRkIHBhcmVudCB0byBlYWNoXG4gIGlmIChyb3dUb0luc2VydC5yZWxhdGlvbnNoaXBzLmxlbmd0aCA+IDApIHtcbiAgICByb3dUb0luc2VydC5yZWxhdGlvbnNoaXBzLmZvckVhY2goKHJlbGF0aW9uKSA9PiB7XG4gICAgICByZWxhdGlvbi5wYXJlbnQgPSBpbnNlcnRlZFJvdy5pZFxuICAgICAgcmVsYXRpb25zVG9JbnNlcnQucHVzaChyZWxhdGlvbilcbiAgICB9KVxuICB9XG5cbiAgLy8gSWYgdGhlcmUgYXJlIG51bWJlcnMsIGFkZCBwYXJlbnQgdG8gZWFjaFxuICBpZiAocm93VG9JbnNlcnQubnVtYmVycy5sZW5ndGggPiAwKSB7XG4gICAgcm93VG9JbnNlcnQubnVtYmVycy5mb3JFYWNoKChudW1iZXJSb3cpID0+IHtcbiAgICAgIG51bWJlclJvdy5wYXJlbnQgPSBpbnNlcnRlZFJvdy5pZFxuICAgICAgbnVtYmVyc1RvSW5zZXJ0LnB1c2gobnVtYmVyUm93KVxuICAgIH0pXG4gIH1cblxuICAvLyBJZiB0aGVyZSBhcmUgc2VsZWN0cywgYWRkIHBhcmVudCB0byBlYWNoLCBhbmQgdGhlblxuICAvLyBzdG9yZSBieSB0YWJsZSBuYW1lIGFuZCByb3dzXG4gIGlmIChPYmplY3Qua2V5cyhyb3dUb0luc2VydC5zZWxlY3RzKS5sZW5ndGggPiAwKSB7XG4gICAgT2JqZWN0LmVudHJpZXMocm93VG9JbnNlcnQuc2VsZWN0cykuZm9yRWFjaCgoW3NlbGVjdFRhYmxlTmFtZSwgc2VsZWN0Um93c10pID0+IHtcbiAgICAgIHNlbGVjdFJvd3MuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgIHJvdy5wYXJlbnQgPSBpbnNlcnRlZFJvdy5pZFxuICAgICAgICBpZiAoIXNlbGVjdHNUb0luc2VydFtzZWxlY3RUYWJsZU5hbWVdKSBzZWxlY3RzVG9JbnNlcnRbc2VsZWN0VGFibGVOYW1lXSA9IFtdXG4gICAgICAgIHNlbGVjdHNUb0luc2VydFtzZWxlY3RUYWJsZU5hbWVdLnB1c2gocm93KVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgLy8gSWYgdGhlcmUgYXJlIGJsb2NrcywgYWRkIHBhcmVudCB0byBlYWNoLCBhbmQgdGhlblxuICAvLyBzdG9yZSBieSB0YWJsZSBuYW1lIGFuZCByb3dzXG4gIE9iamVjdC5rZXlzKHJvd1RvSW5zZXJ0LmJsb2NrcykuZm9yRWFjaCgoYmxvY2tOYW1lKSA9PiB7XG4gICAgcm93VG9JbnNlcnQuYmxvY2tzW2Jsb2NrTmFtZV0uZm9yRWFjaCgoYmxvY2tSb3cpID0+IHtcbiAgICAgIGJsb2NrUm93LnJvdy5fcGFyZW50SUQgPSBpbnNlcnRlZFJvdy5pZFxuICAgICAgaWYgKCFibG9ja3NUb0luc2VydFtibG9ja05hbWVdKSBibG9ja3NUb0luc2VydFtibG9ja05hbWVdID0gW11cbiAgICAgIGJsb2Nrc1RvSW5zZXJ0W2Jsb2NrTmFtZV0ucHVzaChibG9ja1JvdylcbiAgICB9KVxuICB9KVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gSU5TRVJUIExPQ0FMRVNcbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIGlmIChsb2NhbGVzVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGxvY2FsZVRhYmxlID0gYWRhcHRlci50YWJsZXNbYCR7dGFibGVOYW1lfV9sb2NhbGVzYF1cblxuICAgIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICBhd2FpdCBkYi5kZWxldGUobG9jYWxlVGFibGUpLndoZXJlKGVxKGxvY2FsZVRhYmxlLl9wYXJlbnRJRCwgaW5zZXJ0ZWRSb3cuaWQpKVxuICAgIH1cblxuICAgIGF3YWl0IGRiLmluc2VydChsb2NhbGVUYWJsZSkudmFsdWVzKGxvY2FsZXNUb0luc2VydClcbiAgfVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gSU5TRVJUIFJFTEFUSU9OU0hJUFNcbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIGNvbnN0IHJlbGF0aW9uc2hpcHNUYWJsZU5hbWUgPSBgJHt0YWJsZU5hbWV9X3JlbHNgXG5cbiAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICBhd2FpdCBkZWxldGVFeGlzdGluZ1Jvd3NCeVBhdGgoe1xuICAgICAgYWRhcHRlcixcbiAgICAgIGRiLFxuICAgICAgbG9jYWxlQ29sdW1uTmFtZTogJ2xvY2FsZScsXG4gICAgICBwYXJlbnRDb2x1bW5OYW1lOiAncGFyZW50JyxcbiAgICAgIHBhcmVudElEOiBpbnNlcnRlZFJvdy5pZCxcbiAgICAgIHBhdGhDb2x1bW5OYW1lOiAncGF0aCcsXG4gICAgICByb3dzOiBbLi4ucmVsYXRpb25zVG9JbnNlcnQsIC4uLnJvd1RvSW5zZXJ0LnJlbGF0aW9uc2hpcHNUb0RlbGV0ZV0sXG4gICAgICB0YWJsZU5hbWU6IHJlbGF0aW9uc2hpcHNUYWJsZU5hbWUsXG4gICAgfSlcbiAgfVxuXG4gIGlmIChyZWxhdGlvbnNUb0luc2VydC5sZW5ndGggPiAwKSB7XG4gICAgYXdhaXQgZGIuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW3JlbGF0aW9uc2hpcHNUYWJsZU5hbWVdKS52YWx1ZXMocmVsYXRpb25zVG9JbnNlcnQpXG4gIH1cblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIElOU0VSVCBoYXNNYW55IE5VTUJFUlNcbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIGNvbnN0IG51bWJlcnNUYWJsZU5hbWUgPSBgJHt0YWJsZU5hbWV9X251bWJlcnNgXG5cbiAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICBhd2FpdCBkZWxldGVFeGlzdGluZ1Jvd3NCeVBhdGgoe1xuICAgICAgYWRhcHRlcixcbiAgICAgIGRiLFxuICAgICAgbG9jYWxlQ29sdW1uTmFtZTogJ2xvY2FsZScsXG4gICAgICBwYXJlbnRDb2x1bW5OYW1lOiAncGFyZW50JyxcbiAgICAgIHBhcmVudElEOiBpbnNlcnRlZFJvdy5pZCxcbiAgICAgIHBhdGhDb2x1bW5OYW1lOiAncGF0aCcsXG4gICAgICByb3dzOiBudW1iZXJzVG9JbnNlcnQsXG4gICAgICB0YWJsZU5hbWU6IG51bWJlcnNUYWJsZU5hbWUsXG4gICAgfSlcbiAgfVxuXG4gIGlmIChudW1iZXJzVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgIGF3YWl0IGRiLmluc2VydChhZGFwdGVyLnRhYmxlc1tudW1iZXJzVGFibGVOYW1lXSkudmFsdWVzKG51bWJlcnNUb0luc2VydCkucmV0dXJuaW5nKClcbiAgfVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gSU5TRVJUIEJMT0NLU1xuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgY29uc3QgaW5zZXJ0ZWRCbG9ja1Jvd3M6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+ID0ge31cblxuICBmb3IgKGNvbnN0IFtibG9ja05hbWUsIGJsb2NrUm93c10gb2YgT2JqZWN0LmVudHJpZXMoYmxvY2tzVG9JbnNlcnQpKSB7XG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgIGF3YWl0IGRlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCh7XG4gICAgICAgIGFkYXB0ZXIsXG4gICAgICAgIGRiLFxuICAgICAgICBwYXJlbnRJRDogaW5zZXJ0ZWRSb3cuaWQsXG4gICAgICAgIHBhdGhDb2x1bW5OYW1lOiAnX3BhdGgnLFxuICAgICAgICByb3dzOiBibG9ja1Jvd3MubWFwKCh7IHJvdyB9KSA9PiByb3cpLFxuICAgICAgICB0YWJsZU5hbWU6IGAke3RhYmxlTmFtZX1fYmxvY2tzXyR7YmxvY2tOYW1lfWAsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGluc2VydGVkQmxvY2tSb3dzW2Jsb2NrTmFtZV0gPSBhd2FpdCBkYlxuICAgICAgLmluc2VydChhZGFwdGVyLnRhYmxlc1tgJHt0YWJsZU5hbWV9X2Jsb2Nrc18ke2Jsb2NrTmFtZX1gXSlcbiAgICAgIC52YWx1ZXMoYmxvY2tSb3dzLm1hcCgoeyByb3cgfSkgPT4gcm93KSlcbiAgICAgIC5yZXR1cm5pbmcoKVxuXG4gICAgaW5zZXJ0ZWRCbG9ja1Jvd3NbYmxvY2tOYW1lXS5mb3JFYWNoKChyb3csIGkpID0+IHtcbiAgICAgIGJsb2NrUm93c1tpXS5yb3cgPSByb3dcbiAgICB9KVxuXG4gICAgY29uc3QgYmxvY2tMb2NhbGVJbmRleE1hcDogbnVtYmVyW10gPSBbXVxuXG4gICAgY29uc3QgYmxvY2tMb2NhbGVSb3dzVG9JbnNlcnQgPSBibG9ja1Jvd3MucmVkdWNlKChhY2MsIGJsb2NrUm93LCBpKSA9PiB7XG4gICAgICBpZiAoT2JqZWN0LmVudHJpZXMoYmxvY2tSb3cubG9jYWxlcykubGVuZ3RoID4gMCkge1xuICAgICAgICBPYmplY3QuZW50cmllcyhibG9ja1Jvdy5sb2NhbGVzKS5mb3JFYWNoKChbYmxvY2tMb2NhbGUsIGJsb2NrTG9jYWxlRGF0YV0pID0+IHtcbiAgICAgICAgICBpZiAoT2JqZWN0LmtleXMoYmxvY2tMb2NhbGVEYXRhKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBibG9ja0xvY2FsZURhdGEuX3BhcmVudElEID0gYmxvY2tSb3cucm93LmlkXG4gICAgICAgICAgICBibG9ja0xvY2FsZURhdGEuX2xvY2FsZSA9IGJsb2NrTG9jYWxlXG4gICAgICAgICAgICBhY2MucHVzaChibG9ja0xvY2FsZURhdGEpXG4gICAgICAgICAgICBibG9ja0xvY2FsZUluZGV4TWFwLnB1c2goaSlcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhY2NcbiAgICB9LCBbXSlcblxuICAgIGlmIChibG9ja0xvY2FsZVJvd3NUb0luc2VydC5sZW5ndGggPiAwKSB7XG4gICAgICBhd2FpdCBkYlxuICAgICAgICAuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW2Ake3RhYmxlTmFtZX1fYmxvY2tzXyR7YmxvY2tOYW1lfV9sb2NhbGVzYF0pXG4gICAgICAgIC52YWx1ZXMoYmxvY2tMb2NhbGVSb3dzVG9JbnNlcnQpXG4gICAgICAgIC5yZXR1cm5pbmcoKVxuICAgIH1cblxuICAgIGF3YWl0IGluc2VydEFycmF5cyh7XG4gICAgICBhZGFwdGVyLFxuICAgICAgYXJyYXlzOiBibG9ja1Jvd3MubWFwKCh7IGFycmF5cyB9KSA9PiBhcnJheXMpLFxuICAgICAgZGIsXG4gICAgICBwYXJlbnRSb3dzOiBpbnNlcnRlZEJsb2NrUm93c1tibG9ja05hbWVdLFxuICAgIH0pXG4gIH1cblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIElOU0VSVCBBUlJBWVMgUkVDVVJTSVZFTFlcbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgZm9yIChjb25zdCBhcnJheVRhYmxlTmFtZSBvZiBPYmplY3Qua2V5cyhyb3dUb0luc2VydC5hcnJheXMpKSB7XG4gICAgICBhd2FpdCBkZWxldGVFeGlzdGluZ0FycmF5Um93cyh7XG4gICAgICAgIGFkYXB0ZXIsXG4gICAgICAgIGRiLFxuICAgICAgICBwYXJlbnRJRDogaW5zZXJ0ZWRSb3cuaWQsXG4gICAgICAgIHRhYmxlTmFtZTogYXJyYXlUYWJsZU5hbWUsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGF3YWl0IGluc2VydEFycmF5cyh7XG4gICAgYWRhcHRlcixcbiAgICBhcnJheXM6IFtyb3dUb0luc2VydC5hcnJheXNdLFxuICAgIGRiLFxuICAgIHBhcmVudFJvd3M6IFtpbnNlcnRlZFJvd10sXG4gIH0pXG5cbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBJTlNFUlQgaGFzTWFueSBTRUxFQ1RTXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICBmb3IgKGNvbnN0IFtzZWxlY3RUYWJsZU5hbWUsIHRhYmxlUm93c10gb2YgT2JqZWN0LmVudHJpZXMoc2VsZWN0c1RvSW5zZXJ0KSkge1xuICAgIGNvbnN0IHNlbGVjdFRhYmxlID0gYWRhcHRlci50YWJsZXNbc2VsZWN0VGFibGVOYW1lXVxuICAgIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICBhd2FpdCBkYi5kZWxldGUoc2VsZWN0VGFibGUpLndoZXJlKGVxKHNlbGVjdFRhYmxlLnBhcmVudCwgaW5zZXJ0ZWRSb3cuaWQpKVxuICAgIH1cbiAgICBhd2FpdCBkYi5pbnNlcnQoc2VsZWN0VGFibGUpLnZhbHVlcyh0YWJsZVJvd3MpLnJldHVybmluZygpXG4gIH1cblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIFJFVFJJRVZFIE5FV0xZIFVQREFURUQgUk9XXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICBjb25zdCBmaW5kTWFueUFyZ3MgPSBidWlsZEZpbmRNYW55QXJncyh7XG4gICAgYWRhcHRlcixcbiAgICBkZXB0aDogMCxcbiAgICBmaWVsZHMsXG4gICAgdGFibGVOYW1lLFxuICB9KVxuXG4gIGZpbmRNYW55QXJncy53aGVyZSA9IGVxKGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0uaWQsIGluc2VydGVkUm93LmlkKVxuXG4gIGNvbnN0IGRvYyA9IGF3YWl0IGRiLnF1ZXJ5W3RhYmxlTmFtZV0uZmluZEZpcnN0KGZpbmRNYW55QXJncylcblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIFRSQU5TRk9STSBEQVRBXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICBjb25zdCByZXN1bHQgPSB0cmFuc2Zvcm08VD4oe1xuICAgIGNvbmZpZzogYWRhcHRlci5wYXlsb2FkLmNvbmZpZyxcbiAgICBkYXRhOiBkb2MsXG4gICAgZmllbGRzLFxuICB9KVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJuYW1lcyI6WyJ1cHNlcnRSb3ciLCJpZCIsImFkYXB0ZXIiLCJkYXRhIiwiZGIiLCJmaWVsZHMiLCJvcGVyYXRpb24iLCJwYXRoIiwidGFibGVOYW1lIiwidXBzZXJ0VGFyZ2V0Iiwid2hlcmUiLCJyb3dUb0luc2VydCIsInRyYW5zZm9ybUZvcldyaXRlIiwiaW5zZXJ0ZWRSb3ciLCJ0YXJnZXQiLCJ0YWJsZXMiLCJyb3ciLCJpbnNlcnQiLCJ2YWx1ZXMiLCJvbkNvbmZsaWN0RG9VcGRhdGUiLCJzZXQiLCJyZXR1cm5pbmciLCJsb2NhbGVzVG9JbnNlcnQiLCJyZWxhdGlvbnNUb0luc2VydCIsIm51bWJlcnNUb0luc2VydCIsImJsb2Nrc1RvSW5zZXJ0Iiwic2VsZWN0c1RvSW5zZXJ0IiwiT2JqZWN0Iiwia2V5cyIsImxvY2FsZXMiLCJsZW5ndGgiLCJlbnRyaWVzIiwiZm9yRWFjaCIsImxvY2FsZSIsImxvY2FsZVJvdyIsIl9wYXJlbnRJRCIsIl9sb2NhbGUiLCJwdXNoIiwicmVsYXRpb25zaGlwcyIsInJlbGF0aW9uIiwicGFyZW50IiwibnVtYmVycyIsIm51bWJlclJvdyIsInNlbGVjdHMiLCJzZWxlY3RUYWJsZU5hbWUiLCJzZWxlY3RSb3dzIiwiYmxvY2tzIiwiYmxvY2tOYW1lIiwiYmxvY2tSb3ciLCJsb2NhbGVUYWJsZSIsImRlbGV0ZSIsImVxIiwicmVsYXRpb25zaGlwc1RhYmxlTmFtZSIsImRlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCIsImxvY2FsZUNvbHVtbk5hbWUiLCJwYXJlbnRDb2x1bW5OYW1lIiwicGFyZW50SUQiLCJwYXRoQ29sdW1uTmFtZSIsInJvd3MiLCJyZWxhdGlvbnNoaXBzVG9EZWxldGUiLCJudW1iZXJzVGFibGVOYW1lIiwiaW5zZXJ0ZWRCbG9ja1Jvd3MiLCJibG9ja1Jvd3MiLCJtYXAiLCJpIiwiYmxvY2tMb2NhbGVJbmRleE1hcCIsImJsb2NrTG9jYWxlUm93c1RvSW5zZXJ0IiwicmVkdWNlIiwiYWNjIiwiYmxvY2tMb2NhbGUiLCJibG9ja0xvY2FsZURhdGEiLCJpbnNlcnRBcnJheXMiLCJhcnJheXMiLCJwYXJlbnRSb3dzIiwiYXJyYXlUYWJsZU5hbWUiLCJkZWxldGVFeGlzdGluZ0FycmF5Um93cyIsInRhYmxlUm93cyIsInNlbGVjdFRhYmxlIiwiZmluZE1hbnlBcmdzIiwiYnVpbGRGaW5kTWFueUFyZ3MiLCJkZXB0aCIsImRvYyIsInF1ZXJ5IiwiZmluZEZpcnN0IiwicmVzdWx0IiwidHJhbnNmb3JtIiwiY29uZmlnIiwicGF5bG9hZCJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQWV2QkE7OztlQUFBQTs7OzRCQVpNO21DQUtlO3NCQUNSO3VCQUNRO3lDQUNNOzBDQUNDOzhCQUNaO0FBRXRCLE1BQU1BLFlBQVksT0FBNkIsRUFDcERDLEVBQUUsRUFDRkMsT0FBTyxFQUNQQyxJQUFJLEVBQ0pDLEVBQUUsRUFDRkMsTUFBTSxFQUNOQyxTQUFTLEVBQ1RDLE9BQU8sRUFBRSxFQUNUQyxTQUFTLEVBQ1RDLFlBQVksRUFDWkMsS0FBSyxFQUNBO0lBQ0wsc0RBQXNEO0lBQ3RELHVEQUF1RDtJQUN2RCxNQUFNQyxjQUFjQyxJQUFBQSx3QkFBaUIsRUFBQztRQUNwQ1Q7UUFDQUU7UUFDQUU7UUFDQUM7SUFDRjtJQUVBLGdDQUFnQztJQUNoQyxJQUFJSztJQUVKLElBQUlQLGNBQWMsVUFBVTtRQUMxQixNQUFNUSxTQUFTTCxnQkFBZ0JQLFFBQVFhLE1BQU0sQ0FBQ1AsVUFBVSxDQUFDUCxFQUFFO1FBRTNELElBQUlBLElBQUk7WUFDTlUsWUFBWUssR0FBRyxDQUFDZixFQUFFLEdBQUdBO1lBQ3BCLENBQUNZLFlBQVksR0FBRyxNQUFNVCxHQUNwQmEsTUFBTSxDQUFDZixRQUFRYSxNQUFNLENBQUNQLFVBQVUsRUFDaENVLE1BQU0sQ0FBQ1AsWUFBWUssR0FBRyxFQUN0Qkcsa0JBQWtCLENBQUM7Z0JBQUVDLEtBQUtULFlBQVlLLEdBQUc7Z0JBQUVGO1lBQU8sR0FDbERPLFNBQVM7UUFDZCxPQUFPO1lBQ0osQ0FBQ1IsWUFBWSxHQUFHLE1BQU1ULEdBQ3BCYSxNQUFNLENBQUNmLFFBQVFhLE1BQU0sQ0FBQ1AsVUFBVSxFQUNoQ1UsTUFBTSxDQUFDUCxZQUFZSyxHQUFHLEVBQ3RCRyxrQkFBa0IsQ0FBQztnQkFBRUMsS0FBS1QsWUFBWUssR0FBRztnQkFBRUY7Z0JBQVFKO1lBQU0sR0FDekRXLFNBQVM7UUFDZDtJQUNGLE9BQU87UUFDSixDQUFDUixZQUFZLEdBQUcsTUFBTVQsR0FBR2EsTUFBTSxDQUFDZixRQUFRYSxNQUFNLENBQUNQLFVBQVUsRUFBRVUsTUFBTSxDQUFDUCxZQUFZSyxHQUFHLEVBQUVLLFNBQVM7SUFDL0Y7SUFFQSxNQUFNQyxrQkFBNkMsRUFBRTtJQUNyRCxNQUFNQyxvQkFBK0MsRUFBRTtJQUN2RCxNQUFNQyxrQkFBNkMsRUFBRTtJQUNyRCxNQUFNQyxpQkFBOEQsQ0FBQztJQUNyRSxNQUFNQyxrQkFBNEUsQ0FBQztJQUVuRix3RUFBd0U7SUFDeEUsSUFBSUMsT0FBT0MsSUFBSSxDQUFDakIsWUFBWWtCLE9BQU8sRUFBRUMsTUFBTSxHQUFHLEdBQUc7UUFDL0NILE9BQU9JLE9BQU8sQ0FBQ3BCLFlBQVlrQixPQUFPLEVBQUVHLE9BQU8sQ0FBQyxDQUFDLENBQUNDLFFBQVFDLFVBQVU7WUFDOURBLFVBQVVDLFNBQVMsR0FBR3RCLFlBQVlaLEVBQUU7WUFDcENpQyxVQUFVRSxPQUFPLEdBQUdIO1lBQ3BCWCxnQkFBZ0JlLElBQUksQ0FBQ0g7UUFDdkI7SUFDRjtJQUVBLGlEQUFpRDtJQUNqRCxJQUFJdkIsWUFBWTJCLGFBQWEsQ0FBQ1IsTUFBTSxHQUFHLEdBQUc7UUFDeENuQixZQUFZMkIsYUFBYSxDQUFDTixPQUFPLENBQUMsQ0FBQ087WUFDakNBLFNBQVNDLE1BQU0sR0FBRzNCLFlBQVlaLEVBQUU7WUFDaENzQixrQkFBa0JjLElBQUksQ0FBQ0U7UUFDekI7SUFDRjtJQUVBLDJDQUEyQztJQUMzQyxJQUFJNUIsWUFBWThCLE9BQU8sQ0FBQ1gsTUFBTSxHQUFHLEdBQUc7UUFDbENuQixZQUFZOEIsT0FBTyxDQUFDVCxPQUFPLENBQUMsQ0FBQ1U7WUFDM0JBLFVBQVVGLE1BQU0sR0FBRzNCLFlBQVlaLEVBQUU7WUFDakN1QixnQkFBZ0JhLElBQUksQ0FBQ0s7UUFDdkI7SUFDRjtJQUVBLHFEQUFxRDtJQUNyRCwrQkFBK0I7SUFDL0IsSUFBSWYsT0FBT0MsSUFBSSxDQUFDakIsWUFBWWdDLE9BQU8sRUFBRWIsTUFBTSxHQUFHLEdBQUc7UUFDL0NILE9BQU9JLE9BQU8sQ0FBQ3BCLFlBQVlnQyxPQUFPLEVBQUVYLE9BQU8sQ0FBQyxDQUFDLENBQUNZLGlCQUFpQkMsV0FBVztZQUN4RUEsV0FBV2IsT0FBTyxDQUFDLENBQUNoQjtnQkFDbEJBLElBQUl3QixNQUFNLEdBQUczQixZQUFZWixFQUFFO2dCQUMzQixJQUFJLENBQUN5QixlQUFlLENBQUNrQixnQkFBZ0IsRUFBRWxCLGVBQWUsQ0FBQ2tCLGdCQUFnQixHQUFHLEVBQUU7Z0JBQzVFbEIsZUFBZSxDQUFDa0IsZ0JBQWdCLENBQUNQLElBQUksQ0FBQ3JCO1lBQ3hDO1FBQ0Y7SUFDRjtJQUVBLG9EQUFvRDtJQUNwRCwrQkFBK0I7SUFDL0JXLE9BQU9DLElBQUksQ0FBQ2pCLFlBQVltQyxNQUFNLEVBQUVkLE9BQU8sQ0FBQyxDQUFDZTtRQUN2Q3BDLFlBQVltQyxNQUFNLENBQUNDLFVBQVUsQ0FBQ2YsT0FBTyxDQUFDLENBQUNnQjtZQUNyQ0EsU0FBU2hDLEdBQUcsQ0FBQ21CLFNBQVMsR0FBR3RCLFlBQVlaLEVBQUU7WUFDdkMsSUFBSSxDQUFDd0IsY0FBYyxDQUFDc0IsVUFBVSxFQUFFdEIsY0FBYyxDQUFDc0IsVUFBVSxHQUFHLEVBQUU7WUFDOUR0QixjQUFjLENBQUNzQixVQUFVLENBQUNWLElBQUksQ0FBQ1c7UUFDakM7SUFDRjtJQUVBLHFDQUFxQztJQUNyQyxpQkFBaUI7SUFDakIscUNBQXFDO0lBRXJDLElBQUkxQixnQkFBZ0JRLE1BQU0sR0FBRyxHQUFHO1FBQzlCLE1BQU1tQixjQUFjL0MsUUFBUWEsTUFBTSxDQUFDLENBQUMsRUFBRVAsVUFBVSxRQUFRLENBQUMsQ0FBQztRQUUxRCxJQUFJRixjQUFjLFVBQVU7WUFDMUIsTUFBTUYsR0FBRzhDLE1BQU0sQ0FBQ0QsYUFBYXZDLEtBQUssQ0FBQ3lDLElBQUFBLGNBQUUsRUFBQ0YsWUFBWWQsU0FBUyxFQUFFdEIsWUFBWVosRUFBRTtRQUM3RTtRQUVBLE1BQU1HLEdBQUdhLE1BQU0sQ0FBQ2dDLGFBQWEvQixNQUFNLENBQUNJO0lBQ3RDO0lBRUEscUNBQXFDO0lBQ3JDLHVCQUF1QjtJQUN2QixxQ0FBcUM7SUFFckMsTUFBTThCLHlCQUF5QixDQUFDLEVBQUU1QyxVQUFVLEtBQUssQ0FBQztJQUVsRCxJQUFJRixjQUFjLFVBQVU7UUFDMUIsTUFBTStDLElBQUFBLGtEQUF3QixFQUFDO1lBQzdCbkQ7WUFDQUU7WUFDQWtELGtCQUFrQjtZQUNsQkMsa0JBQWtCO1lBQ2xCQyxVQUFVM0MsWUFBWVosRUFBRTtZQUN4QndELGdCQUFnQjtZQUNoQkMsTUFBTTttQkFBSW5DO21CQUFzQlosWUFBWWdELHFCQUFxQjthQUFDO1lBQ2xFbkQsV0FBVzRDO1FBQ2I7SUFDRjtJQUVBLElBQUk3QixrQkFBa0JPLE1BQU0sR0FBRyxHQUFHO1FBQ2hDLE1BQU0xQixHQUFHYSxNQUFNLENBQUNmLFFBQVFhLE1BQU0sQ0FBQ3FDLHVCQUF1QixFQUFFbEMsTUFBTSxDQUFDSztJQUNqRTtJQUVBLHFDQUFxQztJQUNyQyx5QkFBeUI7SUFDekIscUNBQXFDO0lBRXJDLE1BQU1xQyxtQkFBbUIsQ0FBQyxFQUFFcEQsVUFBVSxRQUFRLENBQUM7SUFFL0MsSUFBSUYsY0FBYyxVQUFVO1FBQzFCLE1BQU0rQyxJQUFBQSxrREFBd0IsRUFBQztZQUM3Qm5EO1lBQ0FFO1lBQ0FrRCxrQkFBa0I7WUFDbEJDLGtCQUFrQjtZQUNsQkMsVUFBVTNDLFlBQVlaLEVBQUU7WUFDeEJ3RCxnQkFBZ0I7WUFDaEJDLE1BQU1sQztZQUNOaEIsV0FBV29EO1FBQ2I7SUFDRjtJQUVBLElBQUlwQyxnQkFBZ0JNLE1BQU0sR0FBRyxHQUFHO1FBQzlCLE1BQU0xQixHQUFHYSxNQUFNLENBQUNmLFFBQVFhLE1BQU0sQ0FBQzZDLGlCQUFpQixFQUFFMUMsTUFBTSxDQUFDTSxpQkFBaUJILFNBQVM7SUFDckY7SUFFQSxxQ0FBcUM7SUFDckMsZ0JBQWdCO0lBQ2hCLHFDQUFxQztJQUVyQyxNQUFNd0Msb0JBQStELENBQUM7SUFFdEUsS0FBSyxNQUFNLENBQUNkLFdBQVdlLFVBQVUsSUFBSW5DLE9BQU9JLE9BQU8sQ0FBQ04sZ0JBQWlCO1FBQ25FLElBQUluQixjQUFjLFVBQVU7WUFDMUIsTUFBTStDLElBQUFBLGtEQUF3QixFQUFDO2dCQUM3Qm5EO2dCQUNBRTtnQkFDQW9ELFVBQVUzQyxZQUFZWixFQUFFO2dCQUN4QndELGdCQUFnQjtnQkFDaEJDLE1BQU1JLFVBQVVDLEdBQUcsQ0FBQyxDQUFDLEVBQUUvQyxHQUFHLEVBQUUsR0FBS0E7Z0JBQ2pDUixXQUFXLENBQUMsRUFBRUEsVUFBVSxRQUFRLEVBQUV1QyxVQUFVLENBQUM7WUFDL0M7UUFDRjtRQUVBYyxpQkFBaUIsQ0FBQ2QsVUFBVSxHQUFHLE1BQU0zQyxHQUNsQ2EsTUFBTSxDQUFDZixRQUFRYSxNQUFNLENBQUMsQ0FBQyxFQUFFUCxVQUFVLFFBQVEsRUFBRXVDLFVBQVUsQ0FBQyxDQUFDLEVBQ3pEN0IsTUFBTSxDQUFDNEMsVUFBVUMsR0FBRyxDQUFDLENBQUMsRUFBRS9DLEdBQUcsRUFBRSxHQUFLQSxNQUNsQ0ssU0FBUztRQUVad0MsaUJBQWlCLENBQUNkLFVBQVUsQ0FBQ2YsT0FBTyxDQUFDLENBQUNoQixLQUFLZ0Q7WUFDekNGLFNBQVMsQ0FBQ0UsRUFBRSxDQUFDaEQsR0FBRyxHQUFHQTtRQUNyQjtRQUVBLE1BQU1pRCxzQkFBZ0MsRUFBRTtRQUV4QyxNQUFNQywwQkFBMEJKLFVBQVVLLE1BQU0sQ0FBQyxDQUFDQyxLQUFLcEIsVUFBVWdCO1lBQy9ELElBQUlyQyxPQUFPSSxPQUFPLENBQUNpQixTQUFTbkIsT0FBTyxFQUFFQyxNQUFNLEdBQUcsR0FBRztnQkFDL0NILE9BQU9JLE9BQU8sQ0FBQ2lCLFNBQVNuQixPQUFPLEVBQUVHLE9BQU8sQ0FBQyxDQUFDLENBQUNxQyxhQUFhQyxnQkFBZ0I7b0JBQ3RFLElBQUkzQyxPQUFPQyxJQUFJLENBQUMwQyxpQkFBaUJ4QyxNQUFNLEdBQUcsR0FBRzt3QkFDM0N3QyxnQkFBZ0JuQyxTQUFTLEdBQUdhLFNBQVNoQyxHQUFHLENBQUNmLEVBQUU7d0JBQzNDcUUsZ0JBQWdCbEMsT0FBTyxHQUFHaUM7d0JBQzFCRCxJQUFJL0IsSUFBSSxDQUFDaUM7d0JBQ1RMLG9CQUFvQjVCLElBQUksQ0FBQzJCO29CQUMzQjtnQkFDRjtZQUNGO1lBRUEsT0FBT0k7UUFDVCxHQUFHLEVBQUU7UUFFTCxJQUFJRix3QkFBd0JwQyxNQUFNLEdBQUcsR0FBRztZQUN0QyxNQUFNMUIsR0FDSGEsTUFBTSxDQUFDZixRQUFRYSxNQUFNLENBQUMsQ0FBQyxFQUFFUCxVQUFVLFFBQVEsRUFBRXVDLFVBQVUsUUFBUSxDQUFDLENBQUMsRUFDakU3QixNQUFNLENBQUNnRCx5QkFDUDdDLFNBQVM7UUFDZDtRQUVBLE1BQU1rRCxJQUFBQSwwQkFBWSxFQUFDO1lBQ2pCckU7WUFDQXNFLFFBQVFWLFVBQVVDLEdBQUcsQ0FBQyxDQUFDLEVBQUVTLE1BQU0sRUFBRSxHQUFLQTtZQUN0Q3BFO1lBQ0FxRSxZQUFZWixpQkFBaUIsQ0FBQ2QsVUFBVTtRQUMxQztJQUNGO0lBRUEscUNBQXFDO0lBQ3JDLDRCQUE0QjtJQUM1QixxQ0FBcUM7SUFFckMsSUFBSXpDLGNBQWMsVUFBVTtRQUMxQixLQUFLLE1BQU1vRSxrQkFBa0IvQyxPQUFPQyxJQUFJLENBQUNqQixZQUFZNkQsTUFBTSxFQUFHO1lBQzVELE1BQU1HLElBQUFBLGdEQUF1QixFQUFDO2dCQUM1QnpFO2dCQUNBRTtnQkFDQW9ELFVBQVUzQyxZQUFZWixFQUFFO2dCQUN4Qk8sV0FBV2tFO1lBQ2I7UUFDRjtJQUNGO0lBRUEsTUFBTUgsSUFBQUEsMEJBQVksRUFBQztRQUNqQnJFO1FBQ0FzRSxRQUFRO1lBQUM3RCxZQUFZNkQsTUFBTTtTQUFDO1FBQzVCcEU7UUFDQXFFLFlBQVk7WUFBQzVEO1NBQVk7SUFDM0I7SUFFQSxxQ0FBcUM7SUFDckMseUJBQXlCO0lBQ3pCLHFDQUFxQztJQUVyQyxLQUFLLE1BQU0sQ0FBQytCLGlCQUFpQmdDLFVBQVUsSUFBSWpELE9BQU9JLE9BQU8sQ0FBQ0wsaUJBQWtCO1FBQzFFLE1BQU1tRCxjQUFjM0UsUUFBUWEsTUFBTSxDQUFDNkIsZ0JBQWdCO1FBQ25ELElBQUl0QyxjQUFjLFVBQVU7WUFDMUIsTUFBTUYsR0FBRzhDLE1BQU0sQ0FBQzJCLGFBQWFuRSxLQUFLLENBQUN5QyxJQUFBQSxjQUFFLEVBQUMwQixZQUFZckMsTUFBTSxFQUFFM0IsWUFBWVosRUFBRTtRQUMxRTtRQUNBLE1BQU1HLEdBQUdhLE1BQU0sQ0FBQzRELGFBQWEzRCxNQUFNLENBQUMwRCxXQUFXdkQsU0FBUztJQUMxRDtJQUVBLHFDQUFxQztJQUNyQyw2QkFBNkI7SUFDN0IscUNBQXFDO0lBRXJDLE1BQU15RCxlQUFlQyxJQUFBQSxvQ0FBaUIsRUFBQztRQUNyQzdFO1FBQ0E4RSxPQUFPO1FBQ1AzRTtRQUNBRztJQUNGO0lBRUFzRSxhQUFhcEUsS0FBSyxHQUFHeUMsSUFBQUEsY0FBRSxFQUFDakQsUUFBUWEsTUFBTSxDQUFDUCxVQUFVLENBQUNQLEVBQUUsRUFBRVksWUFBWVosRUFBRTtJQUVwRSxNQUFNZ0YsTUFBTSxNQUFNN0UsR0FBRzhFLEtBQUssQ0FBQzFFLFVBQVUsQ0FBQzJFLFNBQVMsQ0FBQ0w7SUFFaEQscUNBQXFDO0lBQ3JDLGlCQUFpQjtJQUNqQixxQ0FBcUM7SUFFckMsTUFBTU0sU0FBU0MsSUFBQUEsZUFBUyxFQUFJO1FBQzFCQyxRQUFRcEYsUUFBUXFGLE9BQU8sQ0FBQ0QsTUFBTTtRQUM5Qm5GLE1BQU04RTtRQUNONUU7SUFDRjtJQUVBLE9BQU8rRTtBQUNUIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"createMigrationTable.d.ts","sourceRoot":"","sources":["../../src/utilities/createMigrationTable.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEzC,eAAO,MAAM,oBAAoB,qBAA0B,QAAQ,IAAI,CAStE,CAAA"}
1
+ {"version":3,"file":"createMigrationTable.d.ts","sourceRoot":"","sources":["../../src/utilities/createMigrationTable.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEzC,eAAO,MAAM,oBAAoB,qBAA0B,QAAQ,IAAI,CAQtE,CAAA"}
@@ -14,10 +14,9 @@ const createMigrationTable = async (db)=>{
14
14
  "id" serial PRIMARY KEY NOT NULL,
15
15
  "name" varchar,
16
16
  "batch" numeric,
17
- "schema" jsonb,
18
17
  "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
19
18
  "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
20
19
  );`);
21
20
  };
22
21
 
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY3JlYXRlTWlncmF0aW9uVGFibGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3FsIH0gZnJvbSAnZHJpenpsZS1vcm0nXG5cbmltcG9ydCB0eXBlIHsgRHJpenpsZURCIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNaWdyYXRpb25UYWJsZSA9IGFzeW5jIChkYjogRHJpenpsZURCKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGF3YWl0IGRiLmV4ZWN1dGUoc3FsYENSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIFwicGF5bG9hZF9taWdyYXRpb25zXCIgKFxuICBcImlkXCIgc2VyaWFsIFBSSU1BUlkgS0VZIE5PVCBOVUxMLFxuICBcIm5hbWVcIiB2YXJjaGFyLFxuICBcImJhdGNoXCIgbnVtZXJpYyxcbiAgXCJzY2hlbWFcIiBqc29uYixcbiAgXCJ1cGRhdGVkX2F0XCIgdGltZXN0YW1wKDMpIHdpdGggdGltZSB6b25lIERFRkFVTFQgbm93KCkgTk9UIE5VTEwsXG4gIFwiY3JlYXRlZF9hdFwiIHRpbWVzdGFtcCgzKSB3aXRoIHRpbWUgem9uZSBERUZBVUxUIG5vdygpIE5PVCBOVUxMXG4pO2ApXG59XG4iXSwibmFtZXMiOlsiY3JlYXRlTWlncmF0aW9uVGFibGUiLCJkYiIsImV4ZWN1dGUiLCJzcWwiXSwibWFwcGluZ3MiOiI7Ozs7K0JBSWFBOzs7ZUFBQUE7Ozs0QkFKTztBQUliLE1BQU1BLHVCQUF1QixPQUFPQztJQUN6QyxNQUFNQSxHQUFHQyxPQUFPLENBQUNDLElBQUFBLGVBQUcsQ0FBQSxDQUFDOzs7Ozs7O0VBT3JCLENBQUM7QUFDSCJ9
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY3JlYXRlTWlncmF0aW9uVGFibGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3FsIH0gZnJvbSAnZHJpenpsZS1vcm0nXG5cbmltcG9ydCB0eXBlIHsgRHJpenpsZURCIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNaWdyYXRpb25UYWJsZSA9IGFzeW5jIChkYjogRHJpenpsZURCKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGF3YWl0IGRiLmV4ZWN1dGUoc3FsYENSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIFwicGF5bG9hZF9taWdyYXRpb25zXCIgKFxuICBcImlkXCIgc2VyaWFsIFBSSU1BUlkgS0VZIE5PVCBOVUxMLFxuICBcIm5hbWVcIiB2YXJjaGFyLFxuICBcImJhdGNoXCIgbnVtZXJpYyxcbiAgXCJ1cGRhdGVkX2F0XCIgdGltZXN0YW1wKDMpIHdpdGggdGltZSB6b25lIERFRkFVTFQgbm93KCkgTk9UIE5VTEwsXG4gIFwiY3JlYXRlZF9hdFwiIHRpbWVzdGFtcCgzKSB3aXRoIHRpbWUgem9uZSBERUZBVUxUIG5vdygpIE5PVCBOVUxMXG4pO2ApXG59XG4iXSwibmFtZXMiOlsiY3JlYXRlTWlncmF0aW9uVGFibGUiLCJkYiIsImV4ZWN1dGUiLCJzcWwiXSwibWFwcGluZ3MiOiI7Ozs7K0JBSWFBOzs7ZUFBQUE7Ozs0QkFKTztBQUliLE1BQU1BLHVCQUF1QixPQUFPQztJQUN6QyxNQUFNQSxHQUFHQyxPQUFPLENBQUNDLElBQUFBLGVBQUcsQ0FBQSxDQUFDOzs7Ozs7RUFNckIsQ0FBQztBQUNIIn0=