payload 2.0.3 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/README.md +3 -1
  2. package/dist/admin/components/elements/ArrayAction/index.js +2 -2
  3. package/dist/admin/components/elements/DeleteDocument/index.d.ts.map +1 -1
  4. package/dist/admin/components/elements/DeleteDocument/index.js +38 -31
  5. package/dist/admin/components/elements/DocumentControls/index.d.ts.map +1 -1
  6. package/dist/admin/components/elements/DocumentControls/index.js +8 -8
  7. package/dist/admin/components/elements/DocumentHeader/index.d.ts.map +1 -1
  8. package/dist/admin/components/elements/DocumentHeader/index.js +4 -5
  9. package/dist/admin/components/elements/DuplicateDocument/index.d.ts.map +1 -1
  10. package/dist/admin/components/elements/DuplicateDocument/index.js +3 -4
  11. package/dist/admin/components/elements/RenderTitle/index.d.ts.map +1 -1
  12. package/dist/admin/components/elements/RenderTitle/index.js +6 -3
  13. package/dist/admin/components/elements/StepNav/index.d.ts.map +1 -1
  14. package/dist/admin/components/elements/StepNav/index.js +3 -3
  15. package/dist/admin/components/forms/Form/fieldReducer.d.ts.map +1 -1
  16. package/dist/admin/components/forms/Form/fieldReducer.js +20 -13
  17. package/dist/admin/components/forms/Form/index.d.ts.map +1 -1
  18. package/dist/admin/components/forms/Form/index.js +11 -11
  19. package/dist/admin/components/forms/Form/rows.js +4 -4
  20. package/dist/admin/components/forms/Form/types.d.ts +2 -2
  21. package/dist/admin/components/forms/Form/types.d.ts.map +1 -1
  22. package/dist/admin/components/forms/field-types/RichText/types.d.ts +6 -6
  23. package/dist/admin/components/forms/field-types/RichText/types.d.ts.map +1 -1
  24. package/dist/admin/components/forms/field-types/Row/index.d.ts.map +1 -1
  25. package/dist/admin/components/forms/field-types/Row/index.js +2 -3
  26. package/dist/admin/components/forms/field-types/Row/index.scss +13 -3
  27. package/dist/admin/components/forms/field-types/Upload/Input.d.ts.map +1 -1
  28. package/dist/admin/components/forms/field-types/Upload/Input.js +3 -3
  29. package/dist/admin/components/views/API/index.d.ts +2 -3
  30. package/dist/admin/components/views/API/index.d.ts.map +1 -1
  31. package/dist/admin/components/views/API/index.js +23 -5
  32. package/dist/admin/components/views/API/index.scss +8 -0
  33. package/dist/admin/components/views/Global/Default/index.scss +3 -2
  34. package/dist/admin/components/views/Global/Default.d.ts.map +1 -1
  35. package/dist/admin/components/views/Global/Default.js +5 -2
  36. package/dist/admin/components/views/LivePreview/Context/context.d.ts +4 -1
  37. package/dist/admin/components/views/LivePreview/Context/context.d.ts.map +1 -1
  38. package/dist/admin/components/views/LivePreview/Context/context.js +2 -2
  39. package/dist/admin/components/views/LivePreview/Context/index.d.ts.map +1 -1
  40. package/dist/admin/components/views/LivePreview/Context/index.js +6 -7
  41. package/dist/admin/components/views/LivePreview/Device/index.d.ts.map +1 -1
  42. package/dist/admin/components/views/LivePreview/Device/index.js +57 -7
  43. package/dist/admin/components/views/LivePreview/DeviceContainer/index.d.ts.map +1 -1
  44. package/dist/admin/components/views/LivePreview/DeviceContainer/index.js +2 -3
  45. package/dist/admin/components/views/LivePreview/Preview/index.d.ts.map +1 -1
  46. package/dist/admin/components/views/LivePreview/Preview/index.js +3 -3
  47. package/dist/admin/components/views/LivePreview/index.d.ts.map +1 -1
  48. package/dist/admin/components/views/LivePreview/index.js +5 -4
  49. package/dist/admin/components/views/LivePreview/usePopupWindow.d.ts +1 -1
  50. package/dist/admin/components/views/LivePreview/usePopupWindow.d.ts.map +1 -1
  51. package/dist/admin/components/views/LivePreview/usePopupWindow.js +19 -10
  52. package/dist/admin/components/views/Versions/Default.d.ts.map +1 -1
  53. package/dist/admin/components/views/Versions/Default.js +12 -102
  54. package/dist/admin/components/views/collections/Edit/Default/index.scss +3 -2
  55. package/dist/admin/components/views/collections/Edit/SetStepNav.d.ts +3 -1
  56. package/dist/admin/components/views/collections/Edit/SetStepNav.d.ts.map +1 -1
  57. package/dist/admin/components/views/collections/Edit/SetStepNav.js +32 -15
  58. package/dist/admin/hooks/useTitle.d.ts +6 -1
  59. package/dist/admin/hooks/useTitle.d.ts.map +1 -1
  60. package/dist/admin/hooks/useTitle.js +18 -10
  61. package/dist/collections/operations/delete.js +12 -12
  62. package/dist/collections/operations/deleteByID.js +12 -12
  63. package/dist/collections/operations/find.d.ts.map +1 -1
  64. package/dist/collections/operations/find.js +3 -2
  65. package/dist/collections/operations/updateByID.js +2 -2
  66. package/dist/config/types.d.ts +1 -1
  67. package/dist/config/types.d.ts.map +1 -1
  68. package/dist/config/types.js +1 -1
  69. package/dist/fields/config/types.d.ts +4 -3
  70. package/dist/fields/config/types.d.ts.map +1 -1
  71. package/dist/fields/config/types.js +1 -1
  72. package/dist/fields/validations.d.ts +2 -2
  73. package/dist/fields/validations.d.ts.map +1 -1
  74. package/dist/fields/validations.js +15 -15
  75. package/dist/fields/validations.spec.js +16 -10
  76. package/dist/translations/bg.json +9 -9
  77. package/dist/translations/de.json +2 -2
  78. package/dist/translations/ru.json +2 -2
  79. package/dist/translations/ua.json +2 -2
  80. package/dist/versions/drafts/getQueryDraftsSort.d.ts +6 -0
  81. package/dist/versions/drafts/getQueryDraftsSort.d.ts.map +1 -0
  82. package/dist/versions/drafts/getQueryDraftsSort.js +25 -0
  83. package/package.json +3 -3
@@ -263,20 +263,26 @@ describe('Field Validations', ()=>{
263
263
  });
264
264
  });
265
265
  describe('relationship', ()=>{
266
+ const relationCollection = {
267
+ fields: [
268
+ {
269
+ name: 'id',
270
+ type: 'text'
271
+ }
272
+ ],
273
+ slug: 'relation'
274
+ };
266
275
  const relationshipOptions = {
267
276
  ...options,
277
+ config: {
278
+ collections: [
279
+ relationCollection
280
+ ]
281
+ },
268
282
  payload: {
269
283
  collections: {
270
284
  relation: {
271
- config: {
272
- fields: [
273
- {
274
- name: 'id',
275
- type: 'text'
276
- }
277
- ],
278
- slug: 'relation'
279
- }
285
+ config: relationCollection
280
286
  }
281
287
  }
282
288
  },
@@ -610,4 +616,4 @@ describe('Field Validations', ()=>{
610
616
  });
611
617
  });
612
618
 
613
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZHMvdmFsaWRhdGlvbnMuc3BlYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFZhbGlkYXRlT3B0aW9ucyB9IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgeyBudW1iZXIsIHBhc3N3b3JkLCBwb2ludCwgcmVsYXRpb25zaGlwLCBzZWxlY3QsIHRleHQsIHRleHRhcmVhIH0gZnJvbSAnLi92YWxpZGF0aW9ucydcblxuY29uc3QgdCA9IGplc3QuZm4oKHN0cmluZykgPT4gc3RyaW5nKVxuXG5sZXQgb3B0aW9uczogVmFsaWRhdGVPcHRpb25zPGFueSwgYW55LCBhbnk+ID0ge1xuICBkYXRhOiB1bmRlZmluZWQsXG4gIG9wZXJhdGlvbjogJ2NyZWF0ZScsXG4gIHNpYmxpbmdEYXRhOiB1bmRlZmluZWQsXG4gIHQsXG59XG5cbmRlc2NyaWJlKCdGaWVsZCBWYWxpZGF0aW9ucycsICgpID0+IHtcbiAgZGVzY3JpYmUoJ3RleHQnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICd0ZXN0J1xuICAgICAgY29uc3QgcmVzdWx0ID0gdGV4dCh2YWwsIG9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHNob3cgcmVxdWlyZWQgbWVzc2FnZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcmVzdWx0ID0gdGV4dCh2YWwsIHsgLi4ub3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgdW5kZWZpbmVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gdW5kZWZpbmVkXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0KHZhbCwgb3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWF4TGVuZ3RoJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJ3Rvb2xvbmcnXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0KHZhbCwgeyAuLi5vcHRpb25zLCBtYXhMZW5ndGg6IDUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBtaW5MZW5ndGgnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAnc2hvcnQnXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0KHZhbCwgeyAuLi5vcHRpb25zLCBtaW5MZW5ndGg6IDEwIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOmxvbmdlclRoYW5NaW4nKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBtYXhMZW5ndGggd2l0aCBubyB2YWx1ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcmVzdWx0ID0gdGV4dCh2YWwsIHsgLi4ub3B0aW9ucywgbWF4TGVuZ3RoOiA1IH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIG1pbkxlbmd0aCB3aXRoIG5vIHZhbHVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gdW5kZWZpbmVkXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0KHZhbCwgeyAuLi5vcHRpb25zLCBtaW5MZW5ndGg6IDEwIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgfSlcblxuICBkZXNjcmliZSgndGV4dGFyZWEnLCAoKSA9PiB7XG4gICAgb3B0aW9ucyA9IHsgLi4ub3B0aW9ucywgZmllbGQ6IHsgbmFtZTogJ3Rlc3QnLCB0eXBlOiAndGV4dGFyZWEnIH0gfVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAndGVzdCdcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHRhcmVhKHZhbCwgb3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgc2hvdyByZXF1aXJlZCBtZXNzYWdlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gdW5kZWZpbmVkXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0YXJlYSh2YWwsIHsgLi4ub3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICAgIH0pXG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSB1bmRlZmluZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHRhcmVhKHZhbCwgb3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWF4TGVuZ3RoJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJ3Rvb2xvbmcnXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0YXJlYSh2YWwsIHsgLi4ub3B0aW9ucywgbWF4TGVuZ3RoOiA1IH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOnNob3J0ZXJUaGFuTWF4JylcbiAgICB9KVxuXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBtaW5MZW5ndGgnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAnc2hvcnQnXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0YXJlYSh2YWwsIHsgLi4ub3B0aW9ucywgbWluTGVuZ3RoOiAxMCB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWF4TGVuZ3RoIHdpdGggbm8gdmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHRhcmVhKHZhbCwgeyAuLi5vcHRpb25zLCBtYXhMZW5ndGg6IDUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWluTGVuZ3RoIHdpdGggbm8gdmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHRhcmVhKHZhbCwgeyAuLi5vcHRpb25zLCBtaW5MZW5ndGg6IDEwIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgfSlcblxuICBkZXNjcmliZSgncGFzc3dvcmQnLCAoKSA9PiB7XG4gICAgY29uc3QgcGFzc3dvcmRPcHRpb25zID0ge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIG5hbWU6ICd0ZXN0JyxcbiAgICAgIHR5cGU6ICdwYXNzd29yZCcsXG4gICAgfVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAndGVzdCdcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBhc3N3b3JkKHZhbCwgcGFzc3dvcmRPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBzaG93IHJlcXVpcmVkIG1lc3NhZ2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBhc3N3b3JkKHZhbCwgeyAuLi5wYXNzd29yZE9wdGlvbnMsIHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgaGFuZGxlIHVuZGVmaW5lZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcmVzdWx0ID0gcGFzc3dvcmQodmFsLCBwYXNzd29yZE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIG1heExlbmd0aCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICd0b29sb25nJ1xuICAgICAgY29uc3QgcmVzdWx0ID0gcGFzc3dvcmQodmFsLCB7IC4uLnBhc3N3b3JkT3B0aW9ucywgbWF4TGVuZ3RoOiA1IH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOnNob3J0ZXJUaGFuTWF4JylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWluTGVuZ3RoJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJ3Nob3J0J1xuICAgICAgY29uc3QgcmVzdWx0ID0gcGFzc3dvcmQodmFsLCB7IC4uLnBhc3N3b3JkT3B0aW9ucywgbWluTGVuZ3RoOiAxMCB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWF4TGVuZ3RoIHdpdGggbm8gdmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBhc3N3b3JkKHZhbCwgeyAuLi5wYXNzd29yZE9wdGlvbnMsIG1heExlbmd0aDogNSB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBtaW5MZW5ndGggd2l0aCBubyB2YWx1ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcmVzdWx0ID0gcGFzc3dvcmQodmFsLCB7IC4uLnBhc3N3b3JkT3B0aW9ucywgbWluTGVuZ3RoOiAxMCB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuICAgIH0pXG4gIH0pXG5cbiAgZGVzY3JpYmUoJ3BvaW50JywgKCkgPT4ge1xuICAgIGNvbnN0IHBvaW50T3B0aW9ucyA9IHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBuYW1lOiAncG9pbnQnLFxuICAgICAgdHlwZTogJ3BvaW50JyxcbiAgICB9XG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBudW1iZXJzJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWycwLjEnLCAnMC4yJ11cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBvaW50KHZhbCwgcG9pbnRPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBzdHJpbmdzIHRoYXQgY291bGQgYmUgbnVtYmVycycsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IFsnMC4xJywgJzAuMiddXG4gICAgICBjb25zdCByZXN1bHQgPSBwb2ludCh2YWwsIHBvaW50T3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgc2hvdyByZXF1aXJlZCBtZXNzYWdlIHdoZW4gdW5kZWZpbmVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gdW5kZWZpbmVkXG4gICAgICBjb25zdCByZXN1bHQgPSBwb2ludCh2YWwsIHsgLi4ucG9pbnRPcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgc2hvdyByZXF1aXJlZCBtZXNzYWdlIHdoZW4gYXJyYXknLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbXVxuICAgICAgY29uc3QgcmVzdWx0ID0gcG9pbnQodmFsLCB7IC4uLnBvaW50T3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHNob3cgcmVxdWlyZWQgbWVzc2FnZSB3aGVuIGFycmF5IG9mIHVuZGVmaW5lZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IFt1bmRlZmluZWQsIHVuZGVmaW5lZF1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBvaW50KHZhbCwgeyAuLi5wb2ludE9wdGlvbnMsIHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS5ub3QudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgdW5kZWZpbmVkIG5vdCByZXF1aXJlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcmVzdWx0ID0gcGFzc3dvcmQodmFsLCBwb2ludE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBlbXB0eSBhcnJheSBub3QgcmVxdWlyZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbXVxuICAgICAgY29uc3QgcmVzdWx0ID0gcG9pbnQodmFsLCBwb2ludE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBhcnJheSBvZiB1bmRlZmluZWQgbm90IHJlcXVpcmVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gW3VuZGVmaW5lZCwgdW5kZWZpbmVkXVxuICAgICAgY29uc3QgcmVzdWx0ID0gcG9pbnQodmFsLCBwb2ludE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgdGV4dCBpbnB1dCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IFsnYmFkJywgJ2lucHV0J11cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBvaW50KHZhbCwgcG9pbnRPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgcHJldmVudCBtaXNzaW5nIHZhbHVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWzAuMV1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBvaW50KHZhbCwgcG9pbnRPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvQmUodHJ1ZSlcbiAgICB9KVxuICB9KVxuXG4gIGRlc2NyaWJlKCdyZWxhdGlvbnNoaXAnLCAoKSA9PiB7XG4gICAgY29uc3QgcmVsYXRpb25zaGlwT3B0aW9ucyA9IHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIGNvbGxlY3Rpb25zOiB7XG4gICAgICAgICAgcmVsYXRpb246IHtcbiAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHNsdWc6ICdyZWxhdGlvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcmVsYXRpb25UbzogJ3JlbGF0aW9uJyxcbiAgICB9XG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgcmVxdWlyZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbGF0aW9uc2hpcCh2YWwsIHsgLi4ucmVsYXRpb25zaGlwT3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSByZXF1aXJlZCB3aXRoIGhhc01hbnknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbXVxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVsYXRpb25zaGlwKHZhbCwge1xuICAgICAgICAuLi5yZWxhdGlvbnNoaXBPcHRpb25zLFxuICAgICAgICBoYXNNYW55OiB0cnVlLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS5ub3QudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBlbmZvcmNlIGhhc01hbnkgbWluJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWluT3B0aW9ucyA9IHtcbiAgICAgICAgLi4ucmVsYXRpb25zaGlwT3B0aW9ucyxcbiAgICAgICAgaGFzTWFueTogdHJ1ZSxcbiAgICAgICAgbWluUm93czogMixcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsID0gWydhJ11cblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVsYXRpb25zaGlwKHZhbCwgbWluT3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b0JlKHRydWUpXG5cbiAgICAgIGNvbnN0IGFsbG93ZWQgPSBhd2FpdCByZWxhdGlvbnNoaXAoWydhJywgJ2InXSwgbWluT3B0aW9ucylcbiAgICAgIGV4cGVjdChhbGxvd2VkKS50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGVuZm9yY2UgaGFzTWFueSBtYXgnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtYXhPcHRpb25zID0ge1xuICAgICAgICAuLi5yZWxhdGlvbnNoaXBPcHRpb25zLFxuICAgICAgICBoYXNNYW55OiB0cnVlLFxuICAgICAgICBtYXhSb3dzOiAyLFxuICAgICAgfVxuICAgICAgbGV0IHZhbCA9IFsnYScsICdiJywgJ2MnXVxuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWxhdGlvbnNoaXAodmFsLCBtYXhPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvQmUodHJ1ZSlcblxuICAgICAgdmFsID0gWydhJ11cbiAgICAgIGNvbnN0IGFsbG93ZWQgPSBhd2FpdCByZWxhdGlvbnNoaXAodmFsLCBtYXhPcHRpb25zKVxuICAgICAgZXhwZWN0KGFsbG93ZWQpLnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICB9KVxuXG4gIGRlc2NyaWJlKCdzZWxlY3QnLCAoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0T3B0aW9ucyA9IHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBvcHRpb25zOiBbJ29uZScsICd0d28nLCAndGhyZWUnXSxcbiAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIH1cbiAgICBjb25zdCBvcHRpb25zUmVxdWlyZWQgPSB7XG4gICAgICAuLi5zZWxlY3RPcHRpb25zLFxuICAgICAgb3B0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6ICdPbmUnLFxuICAgICAgICAgIHZhbHVlOiAnb25lJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiAndHdvJyxcbiAgICAgICAgICB2YWx1ZTogJ3R3bycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ3RocmVlJyxcbiAgICAgICAgICB2YWx1ZTogJ3RocmVlJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9XG4gICAgY29uc3Qgb3B0aW9uc1dpdGhFbXB0eVN0cmluZyA9IHtcbiAgICAgIC4uLnNlbGVjdE9wdGlvbnMsXG4gICAgICBvcHRpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ05vbmUnLFxuICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiAnT3B0aW9uJyxcbiAgICAgICAgICB2YWx1ZTogJ29wdGlvbicsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH1cbiAgICBpdCgnc2hvdWxkIGFsbG93IHZhbGlkIGlucHV0JywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJ29uZSdcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIHNlbGVjdE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgaW52YWxpZCBpbnB1dCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICdiYWQnXG4gICAgICBjb25zdCByZXN1bHQgPSBzZWxlY3QodmFsLCBzZWxlY3RPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgYWxsb3cgbnVsbCBpbnB1dCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IG51bGxcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIHNlbGVjdE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGFsbG93IHVuZGVmaW5lZCBpbnB1dCcsICgpID0+IHtcbiAgICAgIGxldCB2YWxcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIHNlbGVjdE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgZW1wdHkgc3RyaW5nIGlucHV0JywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJydcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIHNlbGVjdE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS5ub3QudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBwcmV2ZW50IHVuZGVmaW5lZCBpbnB1dCB3aXRoIHJlcXVpcmVkJywgKCkgPT4ge1xuICAgICAgbGV0IHZhbFxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgcHJldmVudCBlbXB0eSBzdHJpbmcgaW5wdXQgd2l0aCByZXF1aXJlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCgnJywgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgcHJldmVudCB1bmRlZmluZWQgaW5wdXQgd2l0aCByZXF1aXJlZCBhbmQgaGFzTWFueScsICgpID0+IHtcbiAgICAgIGxldCB2YWxcbiAgICAgIG9wdGlvbnMuaGFzTWFueSA9IHRydWVcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIG9wdGlvbnNSZXF1aXJlZClcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgZW1wdHkgYXJyYXkgaW5wdXQgd2l0aCByZXF1aXJlZCBhbmQgaGFzTWFueScsICgpID0+IHtcbiAgICAgIG9wdGlvbnNSZXF1aXJlZC5oYXNNYW55ID0gdHJ1ZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KFtdLCBvcHRpb25zUmVxdWlyZWQpXG4gICAgICBleHBlY3QocmVzdWx0KS5ub3QudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBwcmV2ZW50IGVtcHR5IHN0cmluZyBhcnJheSBpbnB1dCB3aXRoIHJlcXVpcmVkIGFuZCBoYXNNYW55JywgKCkgPT4ge1xuICAgICAgb3B0aW9ucy5oYXNNYW55ID0gdHJ1ZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KFsnJ10sIG9wdGlvbnNSZXF1aXJlZClcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgbnVsbCBpbnB1dCB3aXRoIHJlcXVpcmVkIGFuZCBoYXNNYW55JywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gbnVsbFxuICAgICAgb3B0aW9ucy5oYXNNYW55ID0gdHJ1ZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgYWxsb3cgdmFsaWQgaW5wdXQgd2l0aCBvcHRpb24gb2JqZWN0cycsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICdvbmUnXG4gICAgICBvcHRpb25zLmhhc01hbnkgPSBmYWxzZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBwcmV2ZW50IGludmFsaWQgaW5wdXQgd2l0aCBvcHRpb24gb2JqZWN0cycsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICdiYWQnXG4gICAgICBvcHRpb25zLmhhc01hbnkgPSBmYWxzZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgYWxsb3cgZW1wdHkgc3RyaW5nIGlucHV0IHdpdGggb3B0aW9uIG9iamVjdCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICcnXG4gICAgICBjb25zdCByZXN1bHQgPSBzZWxlY3QodmFsLCBvcHRpb25zV2l0aEVtcHR5U3RyaW5nKVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBhbGxvdyBlbXB0eSBzdHJpbmcgaW5wdXQgd2l0aCBvcHRpb24gb2JqZWN0IGFuZCByZXF1aXJlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICcnXG4gICAgICBvcHRpb25zV2l0aEVtcHR5U3RyaW5nLnJlcXVpcmVkID0gdHJ1ZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1dpdGhFbXB0eVN0cmluZylcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgYWxsb3cgdmFsaWQgaW5wdXQgd2l0aCBoYXNNYW55JywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWydvbmUnLCAndHdvJ11cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIHNlbGVjdE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgaW52YWxpZCBpbnB1dCB3aXRoIGhhc01hbnknLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbJ29uZScsICdiYWQnXVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgc2VsZWN0T3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGFsbG93IHZhbGlkIGlucHV0IHdpdGggaGFzTWFueSBvcHRpb24gb2JqZWN0cycsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IFsnb25lJywgJ3RocmVlJ11cbiAgICAgIG9wdGlvbnNSZXF1aXJlZC5oYXNNYW55ID0gdHJ1ZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBwcmV2ZW50IGludmFsaWQgaW5wdXQgd2l0aCBoYXNNYW55IG9wdGlvbiBvYmplY3RzJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWyd0aHJlZScsICdiYWQnXVxuICAgICAgb3B0aW9uc1JlcXVpcmVkLmhhc01hbnkgPSB0cnVlXG4gICAgICBjb25zdCByZXN1bHQgPSBzZWxlY3QodmFsLCBvcHRpb25zUmVxdWlyZWQpXG4gICAgICBleHBlY3QocmVzdWx0KS5ub3QudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gIH0pXG4gIGRlc2NyaWJlKCdudW1iZXInLCAoKSA9PiB7XG4gICAgY29uc3QgbnVtYmVyT3B0aW9ucyA9IHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBuYW1lOiAndGVzdCcsXG4gICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICB9XG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IDFcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG51bWJlcih2YWwsIG51bWJlck9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIDInLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAxLjVcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG51bWJlcih2YWwsIG51bWJlck9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHNob3cgaW52YWxpZCBudW1iZXIgbWVzc2FnZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICd0ZXN0J1xuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOmVudGVyTnVtYmVyJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGVtcHR5IHZhbHVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJydcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG51bWJlcih2YWwsIHsgLi4ubnVtYmVyT3B0aW9ucyB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgcmVxdWlyZWQgdmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAnJ1xuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSgndmFsaWRhdGlvbjplbnRlck51bWJlcicpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIG1pblZhbHVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gMi40XG4gICAgICBjb25zdCByZXN1bHQgPSBudW1iZXIodmFsLCB7IC4uLm51bWJlck9wdGlvbnMsIG1pbjogMi41IH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOmxlc3NUaGFuTWluJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWF4VmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAxLjI1XG4gICAgICBjb25zdCByZXN1bHQgPSBudW1iZXIodmFsLCB7IC4uLm51bWJlck9wdGlvbnMsIG1heDogMSB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSgndmFsaWRhdGlvbjpncmVhdGVyVGhhbk1heCcpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGFuIGFycmF5IG9mIG51bWJlcnMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbMS4yNSwgMi41XVxuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zLCBoYXNNYW55OiB0cnVlIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGFuIGFycmF5IG9mIG51bWJlcnMgdXNpbmcgbWluJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWzEuMjUsIDIuNV1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IG51bWJlcih2YWwsIHsgLi4ubnVtYmVyT3B0aW9ucywgaGFzTWFueTogdHJ1ZSwgbWluOiAzIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOmxlc3NUaGFuTWluJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgYW4gYXJyYXkgb2YgbnVtYmVycyB1c2luZyBtYXgnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbMS4yNSwgMi41XVxuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zLCBoYXNNYW55OiB0cnVlLCBtYXg6IDEgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoJ3ZhbGlkYXRpb246Z3JlYXRlclRoYW5NYXgnKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBhbiBhcnJheSBvZiBudW1iZXJzIHVzaW5nIG1pblJvd3MnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbMS4yNSwgMi41XVxuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zLCBoYXNNYW55OiB0cnVlLCBtaW5Sb3dzOiA0IH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOmxlc3NUaGFuTWluJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgYW4gYXJyYXkgb2YgbnVtYmVycyB1c2luZyBtYXhSb3dzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWzEuMjUsIDIuNSwgMy41XVxuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zLCBoYXNNYW55OiB0cnVlLCBtYXhSb3dzOiAyIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOmdyZWF0ZXJUaGFuTWF4JylcbiAgICB9KVxuICB9KVxufSlcbiJdLCJuYW1lcyI6WyJ0IiwiamVzdCIsImZuIiwic3RyaW5nIiwib3B0aW9ucyIsImRhdGEiLCJ1bmRlZmluZWQiLCJvcGVyYXRpb24iLCJzaWJsaW5nRGF0YSIsImRlc2NyaWJlIiwiaXQiLCJ2YWwiLCJyZXN1bHQiLCJ0ZXh0IiwiZXhwZWN0IiwidG9CZSIsInJlcXVpcmVkIiwibWF4TGVuZ3RoIiwibWluTGVuZ3RoIiwiZmllbGQiLCJuYW1lIiwidHlwZSIsInRleHRhcmVhIiwicGFzc3dvcmRPcHRpb25zIiwicGFzc3dvcmQiLCJwb2ludE9wdGlvbnMiLCJwb2ludCIsIm5vdCIsInJlbGF0aW9uc2hpcE9wdGlvbnMiLCJwYXlsb2FkIiwiY29sbGVjdGlvbnMiLCJyZWxhdGlvbiIsImNvbmZpZyIsImZpZWxkcyIsInNsdWciLCJyZWxhdGlvblRvIiwicmVsYXRpb25zaGlwIiwiaGFzTWFueSIsIm1pbk9wdGlvbnMiLCJtaW5Sb3dzIiwiYWxsb3dlZCIsInRvU3RyaWN0RXF1YWwiLCJtYXhPcHRpb25zIiwibWF4Um93cyIsInNlbGVjdE9wdGlvbnMiLCJvcHRpb25zUmVxdWlyZWQiLCJsYWJlbCIsInZhbHVlIiwib3B0aW9uc1dpdGhFbXB0eVN0cmluZyIsInNlbGVjdCIsIm51bWJlck9wdGlvbnMiLCJudW1iZXIiLCJtaW4iLCJtYXgiXSwibWFwcGluZ3MiOiI7Ozs7NkJBRThFO0FBRTlFLE1BQU1BLElBQUlDLEtBQUtDLEVBQUUsQ0FBQyxDQUFDQyxTQUFXQTtBQUU5QixJQUFJQyxVQUEwQztJQUM1Q0MsTUFBTUM7SUFDTkMsV0FBVztJQUNYQyxhQUFhRjtJQUNiTjtBQUNGO0FBRUFTLFNBQVMscUJBQXFCO0lBQzVCQSxTQUFTLFFBQVE7UUFDZkMsR0FBRyxtQkFBbUI7WUFDcEIsTUFBTUMsTUFBTTtZQUNaLE1BQU1DLFNBQVNDLElBQUFBLGlCQUFJLEVBQUNGLEtBQUtQO1lBQ3pCVSxPQUFPRixRQUFRRyxJQUFJLENBQUM7UUFDdEI7UUFDQUwsR0FBRyxnQ0FBZ0M7WUFDakMsTUFBTUMsTUFBTUw7WUFDWixNQUFNTSxTQUFTQyxJQUFBQSxpQkFBSSxFQUFDRixLQUFLO2dCQUFFLEdBQUdQLE9BQU87Z0JBQUVZLFVBQVU7WUFBSztZQUN0REYsT0FBT0YsUUFBUUcsSUFBSSxDQUFDO1FBQ3RCO1FBQ0FMLEdBQUcsMkJBQTJCO1lBQzVCLE1BQU1DLE1BQU1MO1lBQ1osTUFBTU0sU0FBU0MsSUFBQUEsaUJBQUksRUFBQ0YsS0FBS1A7WUFDekJVLE9BQU9GLFFBQVFHLElBQUksQ0FBQztRQUN0QjtRQUNBTCxHQUFHLDZCQUE2QjtZQUM5QixNQUFNQyxNQUFNO1lBQ1osTUFBTUMsU0FBU0MsSUFBQUEsaUJBQUksRUFBQ0YsS0FBSztnQkFBRSxHQUFHUCxPQUFPO2dCQUFFYSxXQUFXO1lBQUU7WUFDcERILE9BQU9GLFFBQVFHLElBQUksQ0FBQztRQUN0QjtRQUNBTCxHQUFHLDZCQUE2QjtZQUM5QixNQUFNQyxNQUFNO1lBQ1osTUFBTUMsU0FBU0MsSUFBQUEsaUJBQUksRUFBQ0YsS0FBSztnQkFBRSxHQUFHUCxPQUFPO2dCQUFFYyxXQUFXO1lBQUc7WUFDckRKLE9BQU9GLFFBQVFHLElBQUksQ0FBQztRQUN0QjtRQUNB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
619
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZHMvdmFsaWRhdGlvbnMuc3BlYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFZhbGlkYXRlT3B0aW9ucyB9IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgeyBudW1iZXIsIHBhc3N3b3JkLCBwb2ludCwgcmVsYXRpb25zaGlwLCBzZWxlY3QsIHRleHQsIHRleHRhcmVhIH0gZnJvbSAnLi92YWxpZGF0aW9ucydcblxuY29uc3QgdCA9IGplc3QuZm4oKHN0cmluZykgPT4gc3RyaW5nKVxuXG5sZXQgb3B0aW9uczogVmFsaWRhdGVPcHRpb25zPGFueSwgYW55LCBhbnk+ID0ge1xuICBkYXRhOiB1bmRlZmluZWQsXG4gIG9wZXJhdGlvbjogJ2NyZWF0ZScsXG4gIHNpYmxpbmdEYXRhOiB1bmRlZmluZWQsXG4gIHQsXG59XG5cbmRlc2NyaWJlKCdGaWVsZCBWYWxpZGF0aW9ucycsICgpID0+IHtcbiAgZGVzY3JpYmUoJ3RleHQnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICd0ZXN0J1xuICAgICAgY29uc3QgcmVzdWx0ID0gdGV4dCh2YWwsIG9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHNob3cgcmVxdWlyZWQgbWVzc2FnZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcmVzdWx0ID0gdGV4dCh2YWwsIHsgLi4ub3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgdW5kZWZpbmVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gdW5kZWZpbmVkXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0KHZhbCwgb3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWF4TGVuZ3RoJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJ3Rvb2xvbmcnXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0KHZhbCwgeyAuLi5vcHRpb25zLCBtYXhMZW5ndGg6IDUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBtaW5MZW5ndGgnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAnc2hvcnQnXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0KHZhbCwgeyAuLi5vcHRpb25zLCBtaW5MZW5ndGg6IDEwIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOmxvbmdlclRoYW5NaW4nKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBtYXhMZW5ndGggd2l0aCBubyB2YWx1ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcmVzdWx0ID0gdGV4dCh2YWwsIHsgLi4ub3B0aW9ucywgbWF4TGVuZ3RoOiA1IH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIG1pbkxlbmd0aCB3aXRoIG5vIHZhbHVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gdW5kZWZpbmVkXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0KHZhbCwgeyAuLi5vcHRpb25zLCBtaW5MZW5ndGg6IDEwIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgfSlcblxuICBkZXNjcmliZSgndGV4dGFyZWEnLCAoKSA9PiB7XG4gICAgb3B0aW9ucyA9IHsgLi4ub3B0aW9ucywgZmllbGQ6IHsgbmFtZTogJ3Rlc3QnLCB0eXBlOiAndGV4dGFyZWEnIH0gfVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAndGVzdCdcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHRhcmVhKHZhbCwgb3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgc2hvdyByZXF1aXJlZCBtZXNzYWdlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gdW5kZWZpbmVkXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0YXJlYSh2YWwsIHsgLi4ub3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICAgIH0pXG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSB1bmRlZmluZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHRhcmVhKHZhbCwgb3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWF4TGVuZ3RoJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJ3Rvb2xvbmcnXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0YXJlYSh2YWwsIHsgLi4ub3B0aW9ucywgbWF4TGVuZ3RoOiA1IH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOnNob3J0ZXJUaGFuTWF4JylcbiAgICB9KVxuXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBtaW5MZW5ndGgnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAnc2hvcnQnXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0YXJlYSh2YWwsIHsgLi4ub3B0aW9ucywgbWluTGVuZ3RoOiAxMCB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWF4TGVuZ3RoIHdpdGggbm8gdmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHRhcmVhKHZhbCwgeyAuLi5vcHRpb25zLCBtYXhMZW5ndGg6IDUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWluTGVuZ3RoIHdpdGggbm8gdmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHRhcmVhKHZhbCwgeyAuLi5vcHRpb25zLCBtaW5MZW5ndGg6IDEwIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgfSlcblxuICBkZXNjcmliZSgncGFzc3dvcmQnLCAoKSA9PiB7XG4gICAgY29uc3QgcGFzc3dvcmRPcHRpb25zID0ge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIG5hbWU6ICd0ZXN0JyxcbiAgICAgIHR5cGU6ICdwYXNzd29yZCcsXG4gICAgfVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAndGVzdCdcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBhc3N3b3JkKHZhbCwgcGFzc3dvcmRPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBzaG93IHJlcXVpcmVkIG1lc3NhZ2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBhc3N3b3JkKHZhbCwgeyAuLi5wYXNzd29yZE9wdGlvbnMsIHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgaGFuZGxlIHVuZGVmaW5lZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcmVzdWx0ID0gcGFzc3dvcmQodmFsLCBwYXNzd29yZE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIG1heExlbmd0aCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICd0b29sb25nJ1xuICAgICAgY29uc3QgcmVzdWx0ID0gcGFzc3dvcmQodmFsLCB7IC4uLnBhc3N3b3JkT3B0aW9ucywgbWF4TGVuZ3RoOiA1IH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOnNob3J0ZXJUaGFuTWF4JylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWluTGVuZ3RoJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJ3Nob3J0J1xuICAgICAgY29uc3QgcmVzdWx0ID0gcGFzc3dvcmQodmFsLCB7IC4uLnBhc3N3b3JkT3B0aW9ucywgbWluTGVuZ3RoOiAxMCB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWF4TGVuZ3RoIHdpdGggbm8gdmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBhc3N3b3JkKHZhbCwgeyAuLi5wYXNzd29yZE9wdGlvbnMsIG1heExlbmd0aDogNSB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBtaW5MZW5ndGggd2l0aCBubyB2YWx1ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcmVzdWx0ID0gcGFzc3dvcmQodmFsLCB7IC4uLnBhc3N3b3JkT3B0aW9ucywgbWluTGVuZ3RoOiAxMCB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuICAgIH0pXG4gIH0pXG5cbiAgZGVzY3JpYmUoJ3BvaW50JywgKCkgPT4ge1xuICAgIGNvbnN0IHBvaW50T3B0aW9ucyA9IHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBuYW1lOiAncG9pbnQnLFxuICAgICAgdHlwZTogJ3BvaW50JyxcbiAgICB9XG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBudW1iZXJzJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWycwLjEnLCAnMC4yJ11cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBvaW50KHZhbCwgcG9pbnRPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBzdHJpbmdzIHRoYXQgY291bGQgYmUgbnVtYmVycycsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IFsnMC4xJywgJzAuMiddXG4gICAgICBjb25zdCByZXN1bHQgPSBwb2ludCh2YWwsIHBvaW50T3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgc2hvdyByZXF1aXJlZCBtZXNzYWdlIHdoZW4gdW5kZWZpbmVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gdW5kZWZpbmVkXG4gICAgICBjb25zdCByZXN1bHQgPSBwb2ludCh2YWwsIHsgLi4ucG9pbnRPcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgc2hvdyByZXF1aXJlZCBtZXNzYWdlIHdoZW4gYXJyYXknLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbXVxuICAgICAgY29uc3QgcmVzdWx0ID0gcG9pbnQodmFsLCB7IC4uLnBvaW50T3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHNob3cgcmVxdWlyZWQgbWVzc2FnZSB3aGVuIGFycmF5IG9mIHVuZGVmaW5lZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IFt1bmRlZmluZWQsIHVuZGVmaW5lZF1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBvaW50KHZhbCwgeyAuLi5wb2ludE9wdGlvbnMsIHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS5ub3QudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgdW5kZWZpbmVkIG5vdCByZXF1aXJlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcmVzdWx0ID0gcGFzc3dvcmQodmFsLCBwb2ludE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBlbXB0eSBhcnJheSBub3QgcmVxdWlyZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbXVxuICAgICAgY29uc3QgcmVzdWx0ID0gcG9pbnQodmFsLCBwb2ludE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBhcnJheSBvZiB1bmRlZmluZWQgbm90IHJlcXVpcmVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gW3VuZGVmaW5lZCwgdW5kZWZpbmVkXVxuICAgICAgY29uc3QgcmVzdWx0ID0gcG9pbnQodmFsLCBwb2ludE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgdGV4dCBpbnB1dCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IFsnYmFkJywgJ2lucHV0J11cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBvaW50KHZhbCwgcG9pbnRPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgcHJldmVudCBtaXNzaW5nIHZhbHVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWzAuMV1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBvaW50KHZhbCwgcG9pbnRPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvQmUodHJ1ZSlcbiAgICB9KVxuICB9KVxuXG4gIGRlc2NyaWJlKCdyZWxhdGlvbnNoaXAnLCAoKSA9PiB7XG4gICAgY29uc3QgcmVsYXRpb25Db2xsZWN0aW9uID0ge1xuICAgICAgZmllbGRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBzbHVnOiAncmVsYXRpb24nLFxuICAgIH1cblxuICAgIGNvbnN0IHJlbGF0aW9uc2hpcE9wdGlvbnMgPSB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIGNvbGxlY3Rpb25zOiBbcmVsYXRpb25Db2xsZWN0aW9uXSxcbiAgICAgIH0sXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIGNvbGxlY3Rpb25zOiB7XG4gICAgICAgICAgcmVsYXRpb246IHtcbiAgICAgICAgICAgIGNvbmZpZzogcmVsYXRpb25Db2xsZWN0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcmVsYXRpb25UbzogJ3JlbGF0aW9uJyxcbiAgICB9XG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgcmVxdWlyZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbGF0aW9uc2hpcCh2YWwsIHsgLi4ucmVsYXRpb25zaGlwT3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSByZXF1aXJlZCB3aXRoIGhhc01hbnknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbXVxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVsYXRpb25zaGlwKHZhbCwge1xuICAgICAgICAuLi5yZWxhdGlvbnNoaXBPcHRpb25zLFxuICAgICAgICBoYXNNYW55OiB0cnVlLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS5ub3QudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBlbmZvcmNlIGhhc01hbnkgbWluJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWluT3B0aW9ucyA9IHtcbiAgICAgICAgLi4ucmVsYXRpb25zaGlwT3B0aW9ucyxcbiAgICAgICAgaGFzTWFueTogdHJ1ZSxcbiAgICAgICAgbWluUm93czogMixcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsID0gWydhJ11cblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVsYXRpb25zaGlwKHZhbCwgbWluT3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b0JlKHRydWUpXG5cbiAgICAgIGNvbnN0IGFsbG93ZWQgPSBhd2FpdCByZWxhdGlvbnNoaXAoWydhJywgJ2InXSwgbWluT3B0aW9ucylcbiAgICAgIGV4cGVjdChhbGxvd2VkKS50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGVuZm9yY2UgaGFzTWFueSBtYXgnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtYXhPcHRpb25zID0ge1xuICAgICAgICAuLi5yZWxhdGlvbnNoaXBPcHRpb25zLFxuICAgICAgICBoYXNNYW55OiB0cnVlLFxuICAgICAgICBtYXhSb3dzOiAyLFxuICAgICAgfVxuICAgICAgbGV0IHZhbCA9IFsnYScsICdiJywgJ2MnXVxuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWxhdGlvbnNoaXAodmFsLCBtYXhPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvQmUodHJ1ZSlcblxuICAgICAgdmFsID0gWydhJ11cbiAgICAgIGNvbnN0IGFsbG93ZWQgPSBhd2FpdCByZWxhdGlvbnNoaXAodmFsLCBtYXhPcHRpb25zKVxuICAgICAgZXhwZWN0KGFsbG93ZWQpLnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICB9KVxuXG4gIGRlc2NyaWJlKCdzZWxlY3QnLCAoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0T3B0aW9ucyA9IHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBvcHRpb25zOiBbJ29uZScsICd0d28nLCAndGhyZWUnXSxcbiAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIH1cbiAgICBjb25zdCBvcHRpb25zUmVxdWlyZWQgPSB7XG4gICAgICAuLi5zZWxlY3RPcHRpb25zLFxuICAgICAgb3B0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6ICdPbmUnLFxuICAgICAgICAgIHZhbHVlOiAnb25lJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiAndHdvJyxcbiAgICAgICAgICB2YWx1ZTogJ3R3bycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ3RocmVlJyxcbiAgICAgICAgICB2YWx1ZTogJ3RocmVlJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9XG4gICAgY29uc3Qgb3B0aW9uc1dpdGhFbXB0eVN0cmluZyA9IHtcbiAgICAgIC4uLnNlbGVjdE9wdGlvbnMsXG4gICAgICBvcHRpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ05vbmUnLFxuICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiAnT3B0aW9uJyxcbiAgICAgICAgICB2YWx1ZTogJ29wdGlvbicsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH1cbiAgICBpdCgnc2hvdWxkIGFsbG93IHZhbGlkIGlucHV0JywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJ29uZSdcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIHNlbGVjdE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgaW52YWxpZCBpbnB1dCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICdiYWQnXG4gICAgICBjb25zdCByZXN1bHQgPSBzZWxlY3QodmFsLCBzZWxlY3RPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgYWxsb3cgbnVsbCBpbnB1dCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IG51bGxcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIHNlbGVjdE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGFsbG93IHVuZGVmaW5lZCBpbnB1dCcsICgpID0+IHtcbiAgICAgIGxldCB2YWxcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIHNlbGVjdE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgZW1wdHkgc3RyaW5nIGlucHV0JywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJydcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIHNlbGVjdE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS5ub3QudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBwcmV2ZW50IHVuZGVmaW5lZCBpbnB1dCB3aXRoIHJlcXVpcmVkJywgKCkgPT4ge1xuICAgICAgbGV0IHZhbFxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgcHJldmVudCBlbXB0eSBzdHJpbmcgaW5wdXQgd2l0aCByZXF1aXJlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCgnJywgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgcHJldmVudCB1bmRlZmluZWQgaW5wdXQgd2l0aCByZXF1aXJlZCBhbmQgaGFzTWFueScsICgpID0+IHtcbiAgICAgIGxldCB2YWxcbiAgICAgIG9wdGlvbnMuaGFzTWFueSA9IHRydWVcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIG9wdGlvbnNSZXF1aXJlZClcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgZW1wdHkgYXJyYXkgaW5wdXQgd2l0aCByZXF1aXJlZCBhbmQgaGFzTWFueScsICgpID0+IHtcbiAgICAgIG9wdGlvbnNSZXF1aXJlZC5oYXNNYW55ID0gdHJ1ZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KFtdLCBvcHRpb25zUmVxdWlyZWQpXG4gICAgICBleHBlY3QocmVzdWx0KS5ub3QudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBwcmV2ZW50IGVtcHR5IHN0cmluZyBhcnJheSBpbnB1dCB3aXRoIHJlcXVpcmVkIGFuZCBoYXNNYW55JywgKCkgPT4ge1xuICAgICAgb3B0aW9ucy5oYXNNYW55ID0gdHJ1ZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KFsnJ10sIG9wdGlvbnNSZXF1aXJlZClcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgbnVsbCBpbnB1dCB3aXRoIHJlcXVpcmVkIGFuZCBoYXNNYW55JywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gbnVsbFxuICAgICAgb3B0aW9ucy5oYXNNYW55ID0gdHJ1ZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgYWxsb3cgdmFsaWQgaW5wdXQgd2l0aCBvcHRpb24gb2JqZWN0cycsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICdvbmUnXG4gICAgICBvcHRpb25zLmhhc01hbnkgPSBmYWxzZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBwcmV2ZW50IGludmFsaWQgaW5wdXQgd2l0aCBvcHRpb24gb2JqZWN0cycsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICdiYWQnXG4gICAgICBvcHRpb25zLmhhc01hbnkgPSBmYWxzZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgYWxsb3cgZW1wdHkgc3RyaW5nIGlucHV0IHdpdGggb3B0aW9uIG9iamVjdCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICcnXG4gICAgICBjb25zdCByZXN1bHQgPSBzZWxlY3QodmFsLCBvcHRpb25zV2l0aEVtcHR5U3RyaW5nKVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBhbGxvdyBlbXB0eSBzdHJpbmcgaW5wdXQgd2l0aCBvcHRpb24gb2JqZWN0IGFuZCByZXF1aXJlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICcnXG4gICAgICBvcHRpb25zV2l0aEVtcHR5U3RyaW5nLnJlcXVpcmVkID0gdHJ1ZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1dpdGhFbXB0eVN0cmluZylcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgYWxsb3cgdmFsaWQgaW5wdXQgd2l0aCBoYXNNYW55JywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWydvbmUnLCAndHdvJ11cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIHNlbGVjdE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgaW52YWxpZCBpbnB1dCB3aXRoIGhhc01hbnknLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbJ29uZScsICdiYWQnXVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgc2VsZWN0T3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGFsbG93IHZhbGlkIGlucHV0IHdpdGggaGFzTWFueSBvcHRpb24gb2JqZWN0cycsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IFsnb25lJywgJ3RocmVlJ11cbiAgICAgIG9wdGlvbnNSZXF1aXJlZC5oYXNNYW55ID0gdHJ1ZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBwcmV2ZW50IGludmFsaWQgaW5wdXQgd2l0aCBoYXNNYW55IG9wdGlvbiBvYmplY3RzJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWyd0aHJlZScsICdiYWQnXVxuICAgICAgb3B0aW9uc1JlcXVpcmVkLmhhc01hbnkgPSB0cnVlXG4gICAgICBjb25zdCByZXN1bHQgPSBzZWxlY3QodmFsLCBvcHRpb25zUmVxdWlyZWQpXG4gICAgICBleHBlY3QocmVzdWx0KS5ub3QudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gIH0pXG4gIGRlc2NyaWJlKCdudW1iZXInLCAoKSA9PiB7XG4gICAgY29uc3QgbnVtYmVyT3B0aW9ucyA9IHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBuYW1lOiAndGVzdCcsXG4gICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICB9XG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IDFcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG51bWJlcih2YWwsIG51bWJlck9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIDInLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAxLjVcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG51bWJlcih2YWwsIG51bWJlck9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHNob3cgaW52YWxpZCBudW1iZXIgbWVzc2FnZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICd0ZXN0J1xuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOmVudGVyTnVtYmVyJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGVtcHR5IHZhbHVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJydcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG51bWJlcih2YWwsIHsgLi4ubnVtYmVyT3B0aW9ucyB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgcmVxdWlyZWQgdmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAnJ1xuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSgndmFsaWRhdGlvbjplbnRlck51bWJlcicpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIG1pblZhbHVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gMi40XG4gICAgICBjb25zdCByZXN1bHQgPSBudW1iZXIodmFsLCB7IC4uLm51bWJlck9wdGlvbnMsIG1pbjogMi41IH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOmxlc3NUaGFuTWluJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWF4VmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAxLjI1XG4gICAgICBjb25zdCByZXN1bHQgPSBudW1iZXIodmFsLCB7IC4uLm51bWJlck9wdGlvbnMsIG1heDogMSB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSgndmFsaWRhdGlvbjpncmVhdGVyVGhhbk1heCcpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGFuIGFycmF5IG9mIG51bWJlcnMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbMS4yNSwgMi41XVxuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zLCBoYXNNYW55OiB0cnVlIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGFuIGFycmF5IG9mIG51bWJlcnMgdXNpbmcgbWluJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWzEuMjUsIDIuNV1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IG51bWJlcih2YWwsIHsgLi4ubnVtYmVyT3B0aW9ucywgaGFzTWFueTogdHJ1ZSwgbWluOiAzIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOmxlc3NUaGFuTWluJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgYW4gYXJyYXkgb2YgbnVtYmVycyB1c2luZyBtYXgnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbMS4yNSwgMi41XVxuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zLCBoYXNNYW55OiB0cnVlLCBtYXg6IDEgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoJ3ZhbGlkYXRpb246Z3JlYXRlclRoYW5NYXgnKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBhbiBhcnJheSBvZiBudW1iZXJzIHVzaW5nIG1pblJvd3MnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbMS4yNSwgMi41XVxuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zLCBoYXNNYW55OiB0cnVlLCBtaW5Sb3dzOiA0IH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOmxlc3NUaGFuTWluJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgYW4gYXJyYXkgb2YgbnVtYmVycyB1c2luZyBtYXhSb3dzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWzEuMjUsIDIuNSwgMy41XVxuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zLCBoYXNNYW55OiB0cnVlLCBtYXhSb3dzOiAyIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOmdyZWF0ZXJUaGFuTWF4JylcbiAgICB9KVxuICB9KVxufSlcbiJdLCJuYW1lcyI6WyJ0IiwiamVzdCIsImZuIiwic3RyaW5nIiwib3B0aW9ucyIsImRhdGEiLCJ1bmRlZmluZWQiLCJvcGVyYXRpb24iLCJzaWJsaW5nRGF0YSIsImRlc2NyaWJlIiwiaXQiLCJ2YWwiLCJyZXN1bHQiLCJ0ZXh0IiwiZXhwZWN0IiwidG9CZSIsInJlcXVpcmVkIiwibWF4TGVuZ3RoIiwibWluTGVuZ3RoIiwiZmllbGQiLCJuYW1lIiwidHlwZSIsInRleHRhcmVhIiwicGFzc3dvcmRPcHRpb25zIiwicGFzc3dvcmQiLCJwb2ludE9wdGlvbnMiLCJwb2ludCIsIm5vdCIsInJlbGF0aW9uQ29sbGVjdGlvbiIsImZpZWxkcyIsInNsdWciLCJyZWxhdGlvbnNoaXBPcHRpb25zIiwiY29uZmlnIiwiY29sbGVjdGlvbnMiLCJwYXlsb2FkIiwicmVsYXRpb24iLCJyZWxhdGlvblRvIiwicmVsYXRpb25zaGlwIiwiaGFzTWFueSIsIm1pbk9wdGlvbnMiLCJtaW5Sb3dzIiwiYWxsb3dlZCIsInRvU3RyaWN0RXF1YWwiLCJtYXhPcHRpb25zIiwibWF4Um93cyIsInNlbGVjdE9wdGlvbnMiLCJvcHRpb25zUmVxdWlyZWQiLCJsYWJlbCIsInZhbHVlIiwib3B0aW9uc1dpdGhFbXB0eVN0cmluZyIsInNlbGVjdCIsIm51bWJlck9wdGlvbnMiLCJudW1iZXIiLCJtaW4iLCJtYXgiXSwibWFwcGluZ3MiOiI7Ozs7NkJBRThFO0FBRTlFLE1BQU1BLElBQUlDLEtBQUtDLEVBQUUsQ0FBQyxDQUFDQyxTQUFXQTtBQUU5QixJQUFJQyxVQUEwQztJQUM1Q0MsTUFBTUM7SUFDTkMsV0FBVztJQUNYQyxhQUFhRjtJQUNiTjtBQUNGO0FBRUFTLFNBQVMscUJBQXFCO0lBQzVCQSxTQUFTLFFBQVE7UUFDZkMsR0FBRyxtQkFBbUI7WUFDcEIsTUFBTUMsTUFBTTtZQUNaLE1BQU1DLFNBQVNDLElBQUFBLGlCQUFJLEVBQUNGLEtBQUtQO1lBQ3pCVSxPQUFPRixRQUFRRyxJQUFJLENBQUM7UUFDdEI7UUFDQUwsR0FBRyxnQ0FBZ0M7WUFDakMsTUFBTUMsTUFBTUw7WUFDWixNQUFNTSxTQUFTQyxJQUFBQSxpQkFBSSxFQUFDRixLQUFLO2dCQUFFLEdBQUdQLE9BQU87Z0JBQUVZLFVBQVU7WUFBSztZQUN0REYsT0FBT0YsUUFBUUcsSUFBSSxDQUFDO1FBQ3RCO1FBQ0FMLEdBQUcsMkJBQTJCO1lBQzVCLE1BQU1DLE1BQU1MO1lBQ1osTUFBTU0sU0FBU0MsSUFBQUEsaUJBQUksRUFBQ0YsS0FBS1A7WUFDekJVLE9BQU9GLFFBQVFHLElBQUksQ0FBQztRQUN0QjtRQUNBTCxHQUFHLDZCQUE2QjtZQUM5QixNQUFNQyxNQUFNO1lBQ1osTUFBTUMsU0FBU0MsSUFBQUEsaUJBQUksRUFBQ0YsS0FBSztnQkFBRSxHQUFHUCxPQUFPO2dCQUFFYSxXQUFXO1lBQUU7WUFDcERILE9BQU9GLFFBQVFHLElBQUksQ0FBQztRQUN0QjtRQUNBTCxHQUFHLDZCQUE2QjtZQUM5QixNQUFNQyxNQUFNO1lBQ1osTUFBTUMsU0FBU0MsSUFBQUEsaUJBQUksRUFB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
@@ -146,7 +146,7 @@
146
146
  "addFilter": "Добави филтър",
147
147
  "adminTheme": "Цветова тема",
148
148
  "and": "И",
149
- "applyChanges": "Приложете промените",
149
+ "applyChanges": "Приложи промените",
150
150
  "ascending": "Възходящ",
151
151
  "automatic": "Автоматична",
152
152
  "backToDashboard": "Обратно към таблото",
@@ -176,7 +176,7 @@
176
176
  "deletedSuccessfully": "Изтрито успешно.",
177
177
  "deleting": "Изтриване...",
178
178
  "descending": "Низходящо",
179
- "deselectAllRows": "Деселектирайте всички редове",
179
+ "deselectAllRows": "Деселектирай всички редове",
180
180
  "duplicate": "Дупликирай",
181
181
  "duplicateWithoutSaving": "Дупликирай без да запазваш промените",
182
182
  "edit": "Редактирай",
@@ -231,7 +231,7 @@
231
231
  "saving": "Запазване...",
232
232
  "searchBy": "Търси по {{label}}",
233
233
  "selectAll": "Избери всички {{count}} {{label}}",
234
- "selectAllRows": "Изберете всички редове",
234
+ "selectAllRows": "Избери всички редове",
235
235
  "selectValue": "Избери стойност",
236
236
  "selectedCount": "{{count}} {{label}} избрани",
237
237
  "showAllLabel": "Покажи всички {{label}}",
@@ -273,23 +273,23 @@
273
273
  "near": "близко"
274
274
  },
275
275
  "upload": {
276
- "crop": "Реколта",
277
- "cropToolDescription": "Плъзнете ъглите на избраната област, нарисувайте нова област или коригирайте стойностите по-долу.",
276
+ "crop": "Изрязване",
277
+ "cropToolDescription": "Плъзни ъглите на избраната област, избери нова област или коригирай стойностите по-долу.",
278
278
  "dragAndDrop": "Дръпни и пусни файл",
279
279
  "dragAndDropHere": "или дръпни и пусни файла тук",
280
280
  "editImage": "Редактирай изображение",
281
281
  "fileName": "Име на файла",
282
282
  "fileSize": "Големина на файла",
283
283
  "focalPoint": "Фокусна точка",
284
- "focalPointDescription": "Преместете фокусната точка директно върху визуализацията или регулирайте стойностите по-долу.",
284
+ "focalPointDescription": "Премести фокусната точка директно върху визуализацията или регулирай стойностите по-долу.",
285
285
  "height": "Височина",
286
286
  "lessInfo": "По-малко информация",
287
287
  "moreInfo": "Повече информация",
288
288
  "previewSizes": "Преглед на размери",
289
289
  "selectCollectionToBrowse": "Избери колекция, която да разгледаш",
290
290
  "selectFile": "Избери файл",
291
- "setCropArea": "Задайте област за изрязване",
292
- "setFocalPoint": "Задайте фокусна точка",
291
+ "setCropArea": "Задай област за изрязване",
292
+ "setFocalPoint": "Задай фокусна точка",
293
293
  "sizes": "Големини",
294
294
  "sizesFor": "Размери за {{label}}",
295
295
  "width": "Ширина"
@@ -368,4 +368,4 @@
368
368
  "viewingVersions": "Гледане на версии за {{entityLabel}} {{documentTitle}}",
369
369
  "viewingVersionsGlobal": "Гледане на версии за глобалния документ {{entityLabel}}"
370
370
  }
371
- }
371
+ }
@@ -273,7 +273,7 @@
273
273
  "near": "in der Nähe"
274
274
  },
275
275
  "upload": {
276
- "crop": "Ernte",
276
+ "crop": "Zuschneiden",
277
277
  "cropToolDescription": "Ziehen Sie die Ecken des ausgewählten Bereichs, zeichnen Sie einen neuen Bereich oder passen Sie die Werte unten an.",
278
278
  "dragAndDrop": "Ziehen Sie eine Datei per Drag-and-Drop",
279
279
  "dragAndDropHere": "oder ziehe eine Datei hier",
@@ -368,4 +368,4 @@
368
368
  "viewingVersions": "Betrachte Versionen für {{entityLabel}} {{documentTitle}}",
369
369
  "viewingVersionsGlobal": "`Betrachte Versionen für das Globale Dokument {{entityLabel}}"
370
370
  }
371
- }
371
+ }
@@ -273,7 +273,7 @@
273
273
  "near": "рядом"
274
274
  },
275
275
  "upload": {
276
- "crop": "Урожай",
276
+ "crop": "Обрезать",
277
277
  "cropToolDescription": "Перетащите углы выбранной области, нарисуйте новую область или отрегулируйте значения ниже.",
278
278
  "dragAndDrop": "Перетащите файл",
279
279
  "dragAndDropHere": "или перетащите файл сюда",
@@ -368,4 +368,4 @@
368
368
  "viewingVersions": "Просмотр версий для {{entityLabel}} {{documentTitle}}",
369
369
  "viewingVersionsGlobal": "`Просмотр версии для глобальной Коллекции {{entityLabel}}"
370
370
  }
371
- }
371
+ }
@@ -273,7 +273,7 @@
273
273
  "near": "поруч"
274
274
  },
275
275
  "upload": {
276
- "crop": "Врожай",
276
+ "crop": "Обрізати",
277
277
  "cropToolDescription": "Перетягніть кути обраної області, намалюйте нову область або скоригуйте значення нижче.",
278
278
  "dragAndDrop": "Перемістіть файл",
279
279
  "dragAndDropHere": "або перемістіть сюди файл",
@@ -368,4 +368,4 @@
368
368
  "viewingVersions": "Огляд версій для {{entityLabel}} {{documentTitle}}",
369
369
  "viewingVersionsGlobal": "Огляд версій для глобальної колекції {{entityLabel}}"
370
370
  }
371
- }
371
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Takes the incoming sort argument and prefixes it with `versions.` and preserves any `-` prefixes for descending order
3
+ * @param sort
4
+ */
5
+ export declare const getQueryDraftsSort: (sort: string) => string;
6
+ //# sourceMappingURL=getQueryDraftsSort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getQueryDraftsSort.d.ts","sourceRoot":"","sources":["../../../src/versions/drafts/getQueryDraftsSort.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,kBAAkB,SAAU,MAAM,KAAG,MAYjD,CAAA"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Takes the incoming sort argument and prefixes it with `versions.` and preserves any `-` prefixes for descending order
3
+ * @param sort
4
+ */ "use strict";
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "getQueryDraftsSort", {
9
+ enumerable: true,
10
+ get: function() {
11
+ return getQueryDraftsSort;
12
+ }
13
+ });
14
+ const getQueryDraftsSort = (sort)=>{
15
+ if (!sort) return sort;
16
+ let direction = '';
17
+ let orderBy = sort;
18
+ if (sort[0] === '-') {
19
+ direction = '-';
20
+ orderBy = sort.substring(1);
21
+ }
22
+ return `${direction}version.${orderBy}`;
23
+ };
24
+
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9ucy9kcmFmdHMvZ2V0UXVlcnlEcmFmdHNTb3J0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGFrZXMgdGhlIGluY29taW5nIHNvcnQgYXJndW1lbnQgYW5kIHByZWZpeGVzIGl0IHdpdGggYHZlcnNpb25zLmAgYW5kIHByZXNlcnZlcyBhbnkgYC1gIHByZWZpeGVzIGZvciBkZXNjZW5kaW5nIG9yZGVyXG4gKiBAcGFyYW0gc29ydFxuICovXG5leHBvcnQgY29uc3QgZ2V0UXVlcnlEcmFmdHNTb3J0ID0gKHNvcnQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGlmICghc29ydCkgcmV0dXJuIHNvcnRcblxuICBsZXQgZGlyZWN0aW9uID0gJydcbiAgbGV0IG9yZGVyQnkgPSBzb3J0XG5cbiAgaWYgKHNvcnRbMF0gPT09ICctJykge1xuICAgIGRpcmVjdGlvbiA9ICctJ1xuICAgIG9yZGVyQnkgPSBzb3J0LnN1YnN0cmluZygxKVxuICB9XG5cbiAgcmV0dXJuIGAke2RpcmVjdGlvbn12ZXJzaW9uLiR7b3JkZXJCeX1gXG59XG4iXSwibmFtZXMiOlsiZ2V0UXVlcnlEcmFmdHNTb3J0Iiwic29ydCIsImRpcmVjdGlvbiIsIm9yZGVyQnkiLCJzdWJzdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQzs7OzsrQkFDWUE7OztlQUFBQTs7O0FBQU4sTUFBTUEscUJBQXFCLENBQUNDO0lBQ2pDLElBQUksQ0FBQ0EsTUFBTSxPQUFPQTtJQUVsQixJQUFJQyxZQUFZO0lBQ2hCLElBQUlDLFVBQVVGO0lBRWQsSUFBSUEsSUFBSSxDQUFDLEVBQUUsS0FBSyxLQUFLO1FBQ25CQyxZQUFZO1FBQ1pDLFVBQVVGLEtBQUtHLFNBQVMsQ0FBQztJQUMzQjtJQUVBLE9BQU8sQ0FBQyxFQUFFRixVQUFVLFFBQVEsRUFBRUMsUUFBUSxDQUFDO0FBQ3pDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "2.0.3",
3
+ "version": "2.0.5",
4
4
  "description": "Node, React and MongoDB Headless CMS and Application Framework",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",
@@ -39,7 +39,7 @@
39
39
  "flatley": "5.2.0",
40
40
  "fs-extra": "10.1.0",
41
41
  "get-tsconfig": "4.6.2",
42
- "graphql": "16.7.1",
42
+ "graphql": "16.8.1",
43
43
  "graphql-http": "1.21.0",
44
44
  "graphql-playground-middleware-express": "1.7.23",
45
45
  "graphql-query-complexity": "0.12.0",
@@ -148,7 +148,7 @@
148
148
  "file-loader": "6.2.0",
149
149
  "form-data": "3.0.1",
150
150
  "get-port": "5.1.1",
151
- "graphql-request": "3.7.0",
151
+ "graphql-request": "6.1.0",
152
152
  "mini-css-extract-plugin": "1.6.2",
153
153
  "node-fetch": "2.6.12",
154
154
  "nodemon": "3.0.1",