@coralogix/rum-cli 1.1.21 → 1.1.22

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 (89) hide show
  1. package/README.md +8 -4
  2. package/api/rum-api.ts +1 -1
  3. package/cli/commands/delete-source-maps-command.ts +1 -1
  4. package/cli/commands/index.ts +5 -4
  5. package/cli/commands/update-source-maps-command.ts +1 -1
  6. package/cli/commands/upload-react-native-source-maps-command.ts +39 -0
  7. package/cli/commands/upload-source-maps-command.ts +1 -1
  8. package/cli/rum-cli.ts +8 -7
  9. package/dist/api/rum-api.js +2 -2
  10. package/dist/cli/commands/delete-source-maps-command.d.ts +1 -1
  11. package/dist/cli/commands/delete-source-maps-command.js +4 -4
  12. package/dist/cli/commands/index.d.ts +4 -3
  13. package/dist/cli/commands/index.js +3 -2
  14. package/dist/cli/commands/update-source-maps-command.d.ts +1 -1
  15. package/dist/cli/commands/update-source-maps-command.js +4 -4
  16. package/dist/cli/commands/upload-react-native-source-maps-command.d.ts +2 -0
  17. package/dist/cli/commands/upload-react-native-source-maps-command.js +47 -0
  18. package/dist/cli/commands/upload-source-maps-command.d.ts +1 -1
  19. package/dist/cli/commands/upload-source-maps-command.js +4 -4
  20. package/dist/cli/rum-cli.js +9 -7
  21. package/dist/proto-models/com/coralogix/rum/v2/analytics.d.ts +1 -1
  22. package/dist/proto-models/com/coralogix/rum/v2/analytics.js +115 -102
  23. package/dist/proto-models/com/coralogix/rum/v2/audit_log.d.ts +1 -1
  24. package/dist/proto-models/com/coralogix/rum/v2/audit_log.js +5 -3
  25. package/dist/proto-models/com/coralogix/rum/v2/chunk.d.ts +1 -1
  26. package/dist/proto-models/com/coralogix/rum/v2/chunk.js +54 -49
  27. package/dist/proto-models/com/coralogix/rum/v2/file.d.ts +1 -1
  28. package/dist/proto-models/com/coralogix/rum/v2/file.js +24 -34
  29. package/dist/proto-models/com/coralogix/rum/v2/rum_react_native_source_map_service.d.ts +69 -0
  30. package/dist/proto-models/com/coralogix/rum/v2/rum_react_native_source_map_service.js +189 -0
  31. package/dist/proto-models/com/coralogix/rum/v2/rum_saved_filters_service.d.ts +526 -0
  32. package/dist/proto-models/com/coralogix/rum/v2/rum_saved_filters_service.js +1560 -0
  33. package/dist/proto-models/com/coralogix/rum/v2/rum_service.d.ts +98 -3
  34. package/dist/proto-models/com/coralogix/rum/v2/rum_service.js +475 -127
  35. package/dist/proto-models/com/coralogix/rum/v2/rum_session_recording_service.d.ts +1 -59
  36. package/dist/proto-models/com/coralogix/rum/v2/rum_session_recording_service.js +4 -175
  37. package/dist/proto-models/com/coralogix/rum/v2/rum_snooze_errors_service.d.ts +261 -0
  38. package/dist/proto-models/com/coralogix/rum/v2/rum_snooze_errors_service.js +698 -0
  39. package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.d.ts +1 -1
  40. package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.js +65 -41
  41. package/dist/proto-models/com/coralogix/rum/v2/saved_filter.d.ts +55 -0
  42. package/dist/proto-models/com/coralogix/rum/v2/saved_filter.js +267 -0
  43. package/dist/proto-models/com/coralogix/rum/v2/snooze_errors.d.ts +109 -0
  44. package/dist/proto-models/com/coralogix/rum/v2/snooze_errors.js +580 -0
  45. package/dist/proto-models/com/coralogix/rum/v2/source_code_file_mapping.d.ts +1 -1
  46. package/dist/proto-models/com/coralogix/rum/v2/source_code_file_mapping.js +47 -24
  47. package/dist/proto-models/com/coralogix/rum/v2/source_map_release.d.ts +1 -1
  48. package/dist/proto-models/com/coralogix/rum/v2/source_map_release.js +43 -38
  49. package/dist/proto-models/com/coralogix/rum/v2/template.d.ts +14 -1
  50. package/dist/proto-models/com/coralogix/rum/v2/template.js +148 -54
  51. package/dist/proto-models/google/protobuf/descriptor.d.ts +1 -1
  52. package/dist/proto-models/google/protobuf/descriptor.js +537 -427
  53. package/dist/services/react-native-source-maps.service.d.ts +3 -0
  54. package/dist/services/react-native-source-maps.service.js +42 -0
  55. package/dist/services/source-maps.service.js +3 -3
  56. package/dist/utils/index.d.ts +1 -1
  57. package/dist/utils/index.js +4 -4
  58. package/package.json +1 -1
  59. package/proto-models/com/coralogix/rum/v2/analytics.ts +113 -108
  60. package/proto-models/com/coralogix/rum/v2/audit_log.ts +6 -4
  61. package/proto-models/com/coralogix/rum/v2/chunk.ts +55 -56
  62. package/proto-models/com/coralogix/rum/v2/file.ts +25 -39
  63. package/proto-models/com/coralogix/rum/v2/rum_react_native_source_map_service.ts +223 -0
  64. package/proto-models/com/coralogix/rum/v2/rum_saved_filters_service.ts +1837 -0
  65. package/proto-models/com/coralogix/rum/v2/rum_service.ts +533 -146
  66. package/proto-models/com/coralogix/rum/v2/rum_session_recording_service.ts +1 -208
  67. package/proto-models/com/coralogix/rum/v2/rum_snooze_errors_service.ts +818 -0
  68. package/proto-models/com/coralogix/rum/v2/rum_source_map_service.ts +65 -46
  69. package/proto-models/com/coralogix/rum/v2/saved_filter.ts +301 -0
  70. package/proto-models/com/coralogix/rum/v2/snooze_errors.ts +656 -0
  71. package/proto-models/com/coralogix/rum/v2/source_code_file_mapping.ts +48 -27
  72. package/proto-models/com/coralogix/rum/v2/source_map_release.ts +44 -44
  73. package/proto-models/com/coralogix/rum/v2/template.ts +161 -59
  74. package/proto-models/google/protobuf/descriptor.ts +551 -464
  75. package/protofetch.lock +2 -2
  76. package/protofetch.toml +1 -1
  77. package/protos/com/coralogix/rum/v2/rum_react_native_source_map_service.proto +19 -0
  78. package/protos/com/coralogix/rum/v2/rum_saved_filters_service.proto +128 -0
  79. package/protos/com/coralogix/rum/v2/rum_service.proto +26 -0
  80. package/protos/com/coralogix/rum/v2/rum_session_recording_service.proto +1 -12
  81. package/protos/com/coralogix/rum/v2/rum_snooze_errors_service.proto +64 -0
  82. package/protos/com/coralogix/rum/v2/rum_source_map_service.proto +1 -1
  83. package/protos/com/coralogix/rum/v2/saved_filter.proto +28 -0
  84. package/protos/com/coralogix/rum/v2/snooze_errors.proto +55 -0
  85. package/protos/com/coralogix/rum/v2/template.proto +6 -0
  86. package/protoset.bin +0 -0
  87. package/services/react-native-source-maps.service.ts +40 -0
  88. package/services/source-maps.service.ts +2 -2
  89. package/utils/index.ts +3 -3
@@ -12,7 +12,7 @@ export declare const AuditLogDescription: {
12
12
  fromPartial(object: DeepPartial<AuditLogDescription>): AuditLogDescription;
13
13
  };
14
14
  type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
15
- export type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {
15
+ export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {
16
16
  $case: string;
17
17
  } ? {
18
18
  [K in keyof Omit<T, "$case">]?: DeepPartial<T[K]>;
@@ -39,11 +39,13 @@ exports.AuditLogDescription = {
39
39
  return message;
40
40
  },
41
41
  fromJSON(object) {
42
- return { description: isSet(object.description) ? String(object.description) : undefined };
42
+ return { description: isSet(object.description) ? globalThis.String(object.description) : undefined };
43
43
  },
44
44
  toJSON(message) {
45
45
  const obj = {};
46
- message.description !== undefined && (obj.description = message.description);
46
+ if (message.description !== undefined) {
47
+ obj.description = message.description;
48
+ }
47
49
  return obj;
48
50
  },
49
51
  create(base) {
@@ -59,4 +61,4 @@ exports.AuditLogDescription = {
59
61
  function isSet(value) {
60
62
  return value !== null && value !== undefined;
61
63
  }
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXRfbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvdG8tbW9kZWxzL2NvbS9jb3JhbG9naXgvcnVtL3YyL2F1ZGl0X2xvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsaUVBQXFDO0FBRXhCLFFBQUEsZUFBZSxHQUFHLHNCQUFzQixDQUFDO0FBTXRELFNBQVMsNkJBQTZCO0lBQ3BDLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDcEMsQ0FBQztBQUVZLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsTUFBTSxDQUFDLE9BQTRCLEVBQUUsU0FBcUIsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQzNFLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUU7WUFDckMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLGlCQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyw2QkFBNkIsRUFBRSxDQUFDO1FBQ2hELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN0QyxTQUFTO2FBQ1o7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNoQyxNQUFNO2FBQ1A7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzdGLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBNEI7UUFDakMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxXQUFXLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0UsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQXVDO1FBQzVDLE9BQU8sMkJBQW1CLENBQUMsV0FBVyxDQUFDLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxXQUFXLENBQUMsTUFBd0M7O1FBQ2xELE1BQU0sT0FBTyxHQUFHLDZCQUE2QixFQUFFLENBQUM7UUFDaEQsT0FBTyxDQUFDLFdBQVcsR0FBRyxNQUFBLE1BQU0sQ0FBQyxXQUFXLG1DQUFJLFNBQVMsQ0FBQztRQUN0RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQVVGLFNBQVMsS0FBSyxDQUFDLEtBQVU7SUFDdkIsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG5pbXBvcnQgX20wIGZyb20gXCJwcm90b2J1ZmpzL21pbmltYWxcIjtcblxuZXhwb3J0IGNvbnN0IHByb3RvYnVmUGFja2FnZSA9IFwiY29tLmNvcmFsb2dpeC5ydW0udjJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBdWRpdExvZ0Rlc2NyaXB0aW9uIHtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VBdWRpdExvZ0Rlc2NyaXB0aW9uKCk6IEF1ZGl0TG9nRGVzY3JpcHRpb24ge1xuICByZXR1cm4geyBkZXNjcmlwdGlvbjogdW5kZWZpbmVkIH07XG59XG5cbmV4cG9ydCBjb25zdCBBdWRpdExvZ0Rlc2NyaXB0aW9uID0ge1xuICBlbmNvZGUobWVzc2FnZTogQXVkaXRMb2dEZXNjcmlwdGlvbiwgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLmRlc2NyaXB0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTApLnN0cmluZyhtZXNzYWdlLmRlc2NyaXB0aW9uKTtcbiAgICB9XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBBdWRpdExvZ0Rlc2NyaXB0aW9uIHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUF1ZGl0TG9nRGVzY3JpcHRpb24oKTtcbiAgICB3aGlsZSAocmVhZGVyLnBvcyA8IGVuZCkge1xuICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGlmICh0YWcgIT09IDEwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmRlc2NyaXB0aW9uID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogQXVkaXRMb2dEZXNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHsgZGVzY3JpcHRpb246IGlzU2V0KG9iamVjdC5kZXNjcmlwdGlvbikgPyBTdHJpbmcob2JqZWN0LmRlc2NyaXB0aW9uKSA6IHVuZGVmaW5lZCB9O1xuICB9LFxuXG4gIHRvSlNPTihtZXNzYWdlOiBBdWRpdExvZ0Rlc2NyaXB0aW9uKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBtZXNzYWdlLmRlc2NyaXB0aW9uICE9PSB1bmRlZmluZWQgJiYgKG9iai5kZXNjcmlwdGlvbiA9IG1lc3NhZ2UuZGVzY3JpcHRpb24pO1xuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxBdWRpdExvZ0Rlc2NyaXB0aW9uPik6IEF1ZGl0TG9nRGVzY3JpcHRpb24ge1xuICAgIHJldHVybiBBdWRpdExvZ0Rlc2NyaXB0aW9uLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuXG4gIGZyb21QYXJ0aWFsKG9iamVjdDogRGVlcFBhcnRpYWw8QXVkaXRMb2dEZXNjcmlwdGlvbj4pOiBBdWRpdExvZ0Rlc2NyaXB0aW9uIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUF1ZGl0TG9nRGVzY3JpcHRpb24oKTtcbiAgICBtZXNzYWdlLmRlc2NyaXB0aW9uID0gb2JqZWN0LmRlc2NyaXB0aW9uID8/IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbnR5cGUgQnVpbHRpbiA9IERhdGUgfCBGdW5jdGlvbiB8IFVpbnQ4QXJyYXkgfCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgdHlwZSBEZWVwUGFydGlhbDxUPiA9IFQgZXh0ZW5kcyBCdWlsdGluID8gVFxuICA6IFQgZXh0ZW5kcyBBcnJheTxpbmZlciBVPiA/IEFycmF5PERlZXBQYXJ0aWFsPFU+PiA6IFQgZXh0ZW5kcyBSZWFkb25seUFycmF5PGluZmVyIFU+ID8gUmVhZG9ubHlBcnJheTxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgeyAkY2FzZTogc3RyaW5nIH0gPyB7IFtLIGluIGtleW9mIE9taXQ8VCwgXCIkY2FzZVwiPl0/OiBEZWVwUGFydGlhbDxUW0tdPiB9ICYgeyAkY2FzZTogVFtcIiRjYXNlXCJdIH1cbiAgOiBUIGV4dGVuZHMge30gPyB7IFtLIGluIGtleW9mIFRdPzogRGVlcFBhcnRpYWw8VFtLXT4gfVxuICA6IFBhcnRpYWw8VD47XG5cbmZ1bmN0aW9uIGlzU2V0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQ7XG59XG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXRfbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvdG8tbW9kZWxzL2NvbS9jb3JhbG9naXgvcnVtL3YyL2F1ZGl0X2xvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsaUVBQXFDO0FBRXhCLFFBQUEsZUFBZSxHQUFHLHNCQUFzQixDQUFDO0FBTXRELFNBQVMsNkJBQTZCO0lBQ3BDLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDcEMsQ0FBQztBQUVZLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsTUFBTSxDQUFDLE9BQTRCLEVBQUUsU0FBcUIsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQzNFLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUU7WUFDckMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLGlCQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyw2QkFBNkIsRUFBRSxDQUFDO1FBQ2hELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN0QyxTQUFTO2FBQ1o7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNoQyxNQUFNO2FBQ1A7WUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN4RyxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQTRCO1FBQ2pDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFO1lBQ3JDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztTQUN2QztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUF1QztRQUM1QyxPQUFPLDJCQUFtQixDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBQ0QsV0FBVyxDQUFDLE1BQXdDOztRQUNsRCxNQUFNLE9BQU8sR0FBRyw2QkFBNkIsRUFBRSxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxXQUFXLEdBQUcsTUFBQSxNQUFNLENBQUMsV0FBVyxtQ0FBSSxTQUFTLENBQUM7UUFDdEQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFXRixTQUFTLEtBQUssQ0FBQyxLQUFVO0lBQ3ZCLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0IF9tMCBmcm9tIFwicHJvdG9idWZqcy9taW5pbWFsXCI7XG5cbmV4cG9ydCBjb25zdCBwcm90b2J1ZlBhY2thZ2UgPSBcImNvbS5jb3JhbG9naXgucnVtLnYyXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXVkaXRMb2dEZXNjcmlwdGlvbiB7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVCYXNlQXVkaXRMb2dEZXNjcmlwdGlvbigpOiBBdWRpdExvZ0Rlc2NyaXB0aW9uIHtcbiAgcmV0dXJuIHsgZGVzY3JpcHRpb246IHVuZGVmaW5lZCB9O1xufVxuXG5leHBvcnQgY29uc3QgQXVkaXRMb2dEZXNjcmlwdGlvbiA9IHtcbiAgZW5jb2RlKG1lc3NhZ2U6IEF1ZGl0TG9nRGVzY3JpcHRpb24sIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICBpZiAobWVzc2FnZS5kZXNjcmlwdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3cml0ZXIudWludDMyKDEwKS5zdHJpbmcobWVzc2FnZS5kZXNjcmlwdGlvbik7XG4gICAgfVxuICAgIHJldHVybiB3cml0ZXI7XG4gIH0sXG5cbiAgZGVjb2RlKGlucHV0OiBfbTAuUmVhZGVyIHwgVWludDhBcnJheSwgbGVuZ3RoPzogbnVtYmVyKTogQXVkaXRMb2dEZXNjcmlwdGlvbiB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VBdWRpdExvZ0Rlc2NyaXB0aW9uKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5kZXNjcmlwdGlvbiA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICgodGFnICYgNykgPT09IDQgfHwgdGFnID09PSAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmVhZGVyLnNraXBUeXBlKHRhZyAmIDcpO1xuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcblxuICBmcm9tSlNPTihvYmplY3Q6IGFueSk6IEF1ZGl0TG9nRGVzY3JpcHRpb24ge1xuICAgIHJldHVybiB7IGRlc2NyaXB0aW9uOiBpc1NldChvYmplY3QuZGVzY3JpcHRpb24pID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LmRlc2NyaXB0aW9uKSA6IHVuZGVmaW5lZCB9O1xuICB9LFxuXG4gIHRvSlNPTihtZXNzYWdlOiBBdWRpdExvZ0Rlc2NyaXB0aW9uKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBpZiAobWVzc2FnZS5kZXNjcmlwdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvYmouZGVzY3JpcHRpb24gPSBtZXNzYWdlLmRlc2NyaXB0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8QXVkaXRMb2dEZXNjcmlwdGlvbj4pOiBBdWRpdExvZ0Rlc2NyaXB0aW9uIHtcbiAgICByZXR1cm4gQXVkaXRMb2dEZXNjcmlwdGlvbi5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxBdWRpdExvZ0Rlc2NyaXB0aW9uPik6IEF1ZGl0TG9nRGVzY3JpcHRpb24ge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlQXVkaXRMb2dEZXNjcmlwdGlvbigpO1xuICAgIG1lc3NhZ2UuZGVzY3JpcHRpb24gPSBvYmplY3QuZGVzY3JpcHRpb24gPz8gdW5kZWZpbmVkO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxudHlwZSBCdWlsdGluID0gRGF0ZSB8IEZ1bmN0aW9uIHwgVWludDhBcnJheSB8IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCB0eXBlIERlZXBQYXJ0aWFsPFQ+ID0gVCBleHRlbmRzIEJ1aWx0aW4gPyBUXG4gIDogVCBleHRlbmRzIGdsb2JhbFRoaXMuQXJyYXk8aW5mZXIgVT4gPyBnbG9iYWxUaGlzLkFycmF5PERlZXBQYXJ0aWFsPFU+PlxuICA6IFQgZXh0ZW5kcyBSZWFkb25seUFycmF5PGluZmVyIFU+ID8gUmVhZG9ubHlBcnJheTxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgeyAkY2FzZTogc3RyaW5nIH0gPyB7IFtLIGluIGtleW9mIE9taXQ8VCwgXCIkY2FzZVwiPl0/OiBEZWVwUGFydGlhbDxUW0tdPiB9ICYgeyAkY2FzZTogVFtcIiRjYXNlXCJdIH1cbiAgOiBUIGV4dGVuZHMge30gPyB7IFtLIGluIGtleW9mIFRdPzogRGVlcFBhcnRpYWw8VFtLXT4gfVxuICA6IFBhcnRpYWw8VD47XG5cbmZ1bmN0aW9uIGlzU2V0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQ7XG59XG4iXX0=
@@ -44,7 +44,7 @@ export declare const MappedChunk: {
44
44
  fromPartial(object: DeepPartial<MappedChunk>): MappedChunk;
45
45
  };
46
46
  type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
47
- export type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {
47
+ export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {
48
48
  $case: string;
49
49
  } ? {
50
50
  [K in keyof Omit<T, "$case">]?: DeepPartial<T[K]>;
@@ -59,17 +59,22 @@ exports.Chunk = {
59
59
  },
60
60
  fromJSON(object) {
61
61
  return {
62
- chunkName: isSet(object.chunkName) ? String(object.chunkName) : "",
63
- generatedLineNumber: isSet(object.generatedLineNumber) ? Number(object.generatedLineNumber) : 0,
64
- generatedColumnNumber: isSet(object.generatedColumnNumber) ? Number(object.generatedColumnNumber) : 0,
62
+ chunkName: isSet(object.chunkName) ? globalThis.String(object.chunkName) : "",
63
+ generatedLineNumber: isSet(object.generatedLineNumber) ? globalThis.Number(object.generatedLineNumber) : 0,
64
+ generatedColumnNumber: isSet(object.generatedColumnNumber) ? globalThis.Number(object.generatedColumnNumber) : 0,
65
65
  };
66
66
  },
67
67
  toJSON(message) {
68
68
  const obj = {};
69
- message.chunkName !== undefined && (obj.chunkName = message.chunkName);
70
- message.generatedLineNumber !== undefined && (obj.generatedLineNumber = Math.round(message.generatedLineNumber));
71
- message.generatedColumnNumber !== undefined &&
72
- (obj.generatedColumnNumber = Math.round(message.generatedColumnNumber));
69
+ if (message.chunkName !== "") {
70
+ obj.chunkName = message.chunkName;
71
+ }
72
+ if (message.generatedLineNumber !== 0) {
73
+ obj.generatedLineNumber = Math.round(message.generatedLineNumber);
74
+ }
75
+ if (message.generatedColumnNumber !== 0) {
76
+ obj.generatedColumnNumber = Math.round(message.generatedColumnNumber);
77
+ }
73
78
  return obj;
74
79
  },
75
80
  create(base) {
@@ -126,14 +131,18 @@ exports.CodeLine = {
126
131
  },
127
132
  fromJSON(object) {
128
133
  return {
129
- lineIndex: isSet(object.lineIndex) ? Number(object.lineIndex) : 0,
130
- lineCode: isSet(object.lineCode) ? String(object.lineCode) : "",
134
+ lineIndex: isSet(object.lineIndex) ? globalThis.Number(object.lineIndex) : 0,
135
+ lineCode: isSet(object.lineCode) ? globalThis.String(object.lineCode) : "",
131
136
  };
132
137
  },
133
138
  toJSON(message) {
134
139
  const obj = {};
135
- message.lineIndex !== undefined && (obj.lineIndex = Math.round(message.lineIndex));
136
- message.lineCode !== undefined && (obj.lineCode = message.lineCode);
140
+ if (message.lineIndex !== 0) {
141
+ obj.lineIndex = Math.round(message.lineIndex);
142
+ }
143
+ if (message.lineCode !== "") {
144
+ obj.lineCode = message.lineCode;
145
+ }
137
146
  return obj;
138
147
  },
139
148
  create(base) {
@@ -252,34 +261,45 @@ exports.MappedChunk = {
252
261
  },
253
262
  fromJSON(object) {
254
263
  return {
255
- chunkName: isSet(object.chunkName) ? String(object.chunkName) : "",
256
- originalLineNumber: isSet(object.originalLineNumber) ? Number(object.originalLineNumber) : 0,
257
- originalColumnNumber: isSet(object.originalColumnNumber) ? Number(object.originalColumnNumber) : 0,
258
- sourceFileName: isSet(object.sourceFileName) ? String(object.sourceFileName) : "",
259
- sourceCodeLines: Array.isArray(object === null || object === void 0 ? void 0 : object.sourceCodeLines)
264
+ chunkName: isSet(object.chunkName) ? globalThis.String(object.chunkName) : "",
265
+ originalLineNumber: isSet(object.originalLineNumber) ? globalThis.Number(object.originalLineNumber) : 0,
266
+ originalColumnNumber: isSet(object.originalColumnNumber) ? globalThis.Number(object.originalColumnNumber) : 0,
267
+ sourceFileName: isSet(object.sourceFileName) ? globalThis.String(object.sourceFileName) : "",
268
+ sourceCodeLines: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.sourceCodeLines)
260
269
  ? object.sourceCodeLines.map((e) => exports.CodeLine.fromJSON(e))
261
270
  : [],
262
- generatedLineNumber: isSet(object.generatedLineNumber) ? Number(object.generatedLineNumber) : 0,
263
- generatedColumnNumber: isSet(object.generatedColumnNumber) ? Number(object.generatedColumnNumber) : 0,
264
- sourceFunctionName: isSet(object.sourceFunctionName) ? String(object.sourceFunctionName) : "",
271
+ generatedLineNumber: isSet(object.generatedLineNumber) ? globalThis.Number(object.generatedLineNumber) : 0,
272
+ generatedColumnNumber: isSet(object.generatedColumnNumber) ? globalThis.Number(object.generatedColumnNumber) : 0,
273
+ sourceFunctionName: isSet(object.sourceFunctionName) ? globalThis.String(object.sourceFunctionName) : "",
265
274
  };
266
275
  },
267
276
  toJSON(message) {
277
+ var _a;
268
278
  const obj = {};
269
- message.chunkName !== undefined && (obj.chunkName = message.chunkName);
270
- message.originalLineNumber !== undefined && (obj.originalLineNumber = Math.round(message.originalLineNumber));
271
- message.originalColumnNumber !== undefined && (obj.originalColumnNumber = Math.round(message.originalColumnNumber));
272
- message.sourceFileName !== undefined && (obj.sourceFileName = message.sourceFileName);
273
- if (message.sourceCodeLines) {
274
- obj.sourceCodeLines = message.sourceCodeLines.map((e) => e ? exports.CodeLine.toJSON(e) : undefined);
279
+ if (message.chunkName !== "") {
280
+ obj.chunkName = message.chunkName;
275
281
  }
276
- else {
277
- obj.sourceCodeLines = [];
282
+ if (message.originalLineNumber !== 0) {
283
+ obj.originalLineNumber = Math.round(message.originalLineNumber);
284
+ }
285
+ if (message.originalColumnNumber !== 0) {
286
+ obj.originalColumnNumber = Math.round(message.originalColumnNumber);
287
+ }
288
+ if (message.sourceFileName !== "") {
289
+ obj.sourceFileName = message.sourceFileName;
290
+ }
291
+ if ((_a = message.sourceCodeLines) === null || _a === void 0 ? void 0 : _a.length) {
292
+ obj.sourceCodeLines = message.sourceCodeLines.map((e) => exports.CodeLine.toJSON(e));
293
+ }
294
+ if (message.generatedLineNumber !== 0) {
295
+ obj.generatedLineNumber = Math.round(message.generatedLineNumber);
296
+ }
297
+ if (message.generatedColumnNumber !== 0) {
298
+ obj.generatedColumnNumber = Math.round(message.generatedColumnNumber);
299
+ }
300
+ if (message.sourceFunctionName !== "") {
301
+ obj.sourceFunctionName = message.sourceFunctionName;
278
302
  }
279
- message.generatedLineNumber !== undefined && (obj.generatedLineNumber = Math.round(message.generatedLineNumber));
280
- message.generatedColumnNumber !== undefined &&
281
- (obj.generatedColumnNumber = Math.round(message.generatedColumnNumber));
282
- message.sourceFunctionName !== undefined && (obj.sourceFunctionName = message.sourceFunctionName);
283
303
  return obj;
284
304
  },
285
305
  create(base) {
@@ -299,24 +319,9 @@ exports.MappedChunk = {
299
319
  return message;
300
320
  },
301
321
  };
302
- var tsProtoGlobalThis = (() => {
303
- if (typeof globalThis !== "undefined") {
304
- return globalThis;
305
- }
306
- if (typeof self !== "undefined") {
307
- return self;
308
- }
309
- if (typeof window !== "undefined") {
310
- return window;
311
- }
312
- if (typeof global !== "undefined") {
313
- return global;
314
- }
315
- throw "Unable to locate global object";
316
- })();
317
322
  function longToNumber(long) {
318
- if (long.gt(Number.MAX_SAFE_INTEGER)) {
319
- throw new tsProtoGlobalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
323
+ if (long.gt(globalThis.Number.MAX_SAFE_INTEGER)) {
324
+ throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
320
325
  }
321
326
  return long.toNumber();
322
327
  }
@@ -327,4 +332,4 @@ if (minimal_1.default.util.Long !== long_1.default) {
327
332
  function isSet(value) {
328
333
  return value !== null && value !== undefined;
329
334
  }
330
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2h1bmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ydW0vdjIvY2h1bmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLGdEQUF3QjtBQUN4QixpRUFBcUM7QUFFeEIsUUFBQSxlQUFlLEdBQUcsc0JBQXNCLENBQUM7QUF3QnRELFNBQVMsZUFBZTtJQUN0QixPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDN0UsQ0FBQztBQUVZLFFBQUEsS0FBSyxHQUFHO0lBQ25CLE1BQU0sQ0FBQyxPQUFjLEVBQUUsU0FBcUIsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQzdELElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxPQUFPLENBQUMsbUJBQW1CLEtBQUssQ0FBQyxFQUFFO1lBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsSUFBSSxPQUFPLENBQUMscUJBQXFCLEtBQUssQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQ3hEO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLGlCQUFHLENBQUMsTUFB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LGdCQUFnQixDQUFDLEVBQUU7UUFDcEMsTUFBTSxJQUFJLGlCQUFpQixDQUFDLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0tBQ25GO0lBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDekIsQ0FBQztBQUVELElBQUksaUJBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLGNBQUksRUFBRTtJQUMxQixpQkFBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBVyxDQUFDO0lBQzVCLGlCQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7Q0FDakI7QUFFRCxTQUFTLEtBQUssQ0FBQyxLQUFVO0lBQ3ZCLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0IExvbmcgZnJvbSBcImxvbmdcIjtcbmltcG9ydCBfbTAgZnJvbSBcInByb3RvYnVmanMvbWluaW1hbFwiO1xuXG5leHBvcnQgY29uc3QgcHJvdG9idWZQYWNrYWdlID0gXCJjb20uY29yYWxvZ2l4LnJ1bS52MlwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENodW5rIHtcbiAgY2h1bmtOYW1lOiBzdHJpbmc7XG4gIGdlbmVyYXRlZExpbmVOdW1iZXI6IG51bWJlcjtcbiAgZ2VuZXJhdGVkQ29sdW1uTnVtYmVyOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUxpbmUge1xuICBsaW5lSW5kZXg6IG51bWJlcjtcbiAgbGluZUNvZGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBwZWRDaHVuayB7XG4gIGNodW5rTmFtZTogc3RyaW5nO1xuICBvcmlnaW5hbExpbmVOdW1iZXI6IG51bWJlcjtcbiAgb3JpZ2luYWxDb2x1bW5OdW1iZXI6IG51bWJlcjtcbiAgc291cmNlRmlsZU5hbWU6IHN0cmluZztcbiAgc291cmNlQ29kZUxpbmVzOiBDb2RlTGluZVtdO1xuICBnZW5lcmF0ZWRMaW5lTnVtYmVyOiBudW1iZXI7XG4gIGdlbmVyYXRlZENvbHVtbk51bWJlcjogbnVtYmVyO1xuICBzb3VyY2VGdW5jdGlvbk5hbWU6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gY3JlYXRlQmFzZUNodW5rKCk6IENodW5rIHtcbiAgcmV0dXJuIHsgY2h1bmtOYW1lOiBcIlwiLCBnZW5lcmF0ZWRMaW5lTnVtYmVyOiAwLCBnZW5lcmF0ZWRDb2x1bW5OdW1iZXI6IDAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IENodW5rID0ge1xuICBlbmNvZGUobWVzc2FnZTogQ2h1bmssIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICBpZiAobWVzc2FnZS5jaHVua05hbWUgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTApLnN0cmluZyhtZXNzYWdlLmNodW5rTmFtZSk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmdlbmVyYXRlZExpbmVOdW1iZXIgIT09IDApIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTYpLmludDY0KG1lc3NhZ2UuZ2VuZXJhdGVkTGluZU51bWJlcik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlciAhPT0gMCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigyNCkuaW50NjQobWVzc2FnZS5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIpO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IENodW5rIHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUNodW5rKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5jaHVua05hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxNikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5nZW5lcmF0ZWRMaW5lTnVtYmVyID0gbG9uZ1RvTnVtYmVyKHJlYWRlci5pbnQ2NCgpIGFzIExvbmcpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMjQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuZ2VuZXJhdGVkQ29sdW1uTnVtYmVyID0gbG9uZ1RvTnVtYmVyKHJlYWRlci5pbnQ2NCgpIGFzIExvbmcpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogQ2h1bmsge1xuICAgIHJldHVybiB7XG4gICAgICBjaHVua05hbWU6IGlzU2V0KG9iamVjdC5jaHVua05hbWUpID8gU3RyaW5nKG9iamVjdC5jaHVua05hbWUpIDogXCJcIixcbiAgICAgIGdlbmVyYXRlZExpbmVOdW1iZXI6IGlzU2V0KG9iamVjdC5nZW5lcmF0ZWRMaW5lTnVtYmVyKSA/IE51bWJlcihvYmplY3QuZ2VuZXJhdGVkTGluZU51bWJlcikgOiAwLFxuICAgICAgZ2VuZXJhdGVkQ29sdW1uTnVtYmVyOiBpc1NldChvYmplY3QuZ2VuZXJhdGVkQ29sdW1uTnVtYmVyKSA/IE51bWJlcihvYmplY3QuZ2VuZXJhdGVkQ29sdW1uTnVtYmVyKSA6IDAsXG4gICAgfTtcbiAgfSxcblxuICB0b0pTT04obWVzc2FnZTogQ2h1bmspOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIG1lc3NhZ2UuY2h1bmtOYW1lICE9PSB1bmRlZmluZWQgJiYgKG9iai5jaHVua05hbWUgPSBtZXNzYWdlLmNodW5rTmFtZSk7XG4gICAgbWVzc2FnZS5nZW5lcmF0ZWRMaW5lTnVtYmVyICE9PSB1bmRlZmluZWQgJiYgKG9iai5nZW5lcmF0ZWRMaW5lTnVtYmVyID0gTWF0aC5yb3VuZChtZXNzYWdlLmdlbmVyYXRlZExpbmVOdW1iZXIpKTtcbiAgICBtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlciAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAob2JqLmdlbmVyYXRlZENvbHVtbk51bWJlciA9IE1hdGgucm91bmQobWVzc2FnZS5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIpKTtcbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8Q2h1bms+KTogQ2h1bmsge1xuICAgIHJldHVybiBDaHVuay5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcblxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPENodW5rPik6IENodW5rIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUNodW5rKCk7XG4gICAgbWVzc2FnZS5jaHVua05hbWUgPSBvYmplY3QuY2h1bmtOYW1lID8/IFwiXCI7XG4gICAgbWVzc2FnZS5nZW5lcmF0ZWRMaW5lTnVtYmVyID0gb2JqZWN0LmdlbmVyYXRlZExpbmVOdW1iZXIgPz8gMDtcbiAgICBtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlciA9IG9iamVjdC5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIgPz8gMDtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VDb2RlTGluZSgpOiBDb2RlTGluZSB7XG4gIHJldHVybiB7IGxpbmVJbmRleDogMCwgbGluZUNvZGU6IFwiXCIgfTtcbn1cblxuZXhwb3J0IGNvbnN0IENvZGVMaW5lID0ge1xuICBlbmNvZGUobWVzc2FnZTogQ29kZUxpbmUsIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICBpZiAobWVzc2FnZS5saW5lSW5kZXggIT09IDApIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTYpLmludDY0KG1lc3NhZ2UubGluZUluZGV4KTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UubGluZUNvZGUgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTApLnN0cmluZyhtZXNzYWdlLmxpbmVDb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBDb2RlTGluZSB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VDb2RlTGluZSgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTYpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UubGluZUluZGV4ID0gbG9uZ1RvTnVtYmVyKHJlYWRlci5pbnQ2NCgpIGFzIExvbmcpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UubGluZUNvZGUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBDb2RlTGluZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmVJbmRleDogaXNTZXQob2JqZWN0LmxpbmVJbmRleCkgPyBOdW1iZXIob2JqZWN0LmxpbmVJbmRleCkgOiAwLFxuICAgICAgbGluZUNvZGU6IGlzU2V0KG9iamVjdC5saW5lQ29kZSkgPyBTdHJpbmcob2JqZWN0LmxpbmVDb2RlKSA6IFwiXCIsXG4gICAgfTtcbiAgfSxcblxuICB0b0pTT04obWVzc2FnZTogQ29kZUxpbmUpOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIG1lc3NhZ2UubGluZUluZGV4ICE9PSB1bmRlZmluZWQgJiYgKG9iai5saW5lSW5kZXggPSBNYXRoLnJvdW5kKG1lc3NhZ2UubGluZUluZGV4KSk7XG4gICAgbWVzc2FnZS5saW5lQ29kZSAhPT0gdW5kZWZpbmVkICYmIChvYmoubGluZUNvZGUgPSBtZXNzYWdlLmxpbmVDb2RlKTtcbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8Q29kZUxpbmU+KTogQ29kZUxpbmUge1xuICAgIHJldHVybiBDb2RlTGluZS5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcblxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPENvZGVMaW5lPik6IENvZGVMaW5lIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUNvZGVMaW5lKCk7XG4gICAgbWVzc2FnZS5saW5lSW5kZXggPSBvYmplY3QubGluZUluZGV4ID8/IDA7XG4gICAgbWVzc2FnZS5saW5lQ29kZSA9IG9iamVjdC5saW5lQ29kZSA/PyBcIlwiO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZnVuY3Rpb24gY3JlYXRlQmFzZU1hcHBlZENodW5rKCk6IE1hcHBlZENodW5rIHtcbiAgcmV0dXJuIHtcbiAgICBjaHVua05hbWU6IFwiXCIsXG4gICAgb3JpZ2luYWxMaW5lTnVtYmVyOiAwLFxuICAgIG9yaWdpbmFsQ29sdW1uTnVtYmVyOiAwLFxuICAgIHNvdXJjZUZpbGVOYW1lOiBcIlwiLFxuICAgIHNvdXJjZUNvZGVMaW5lczogW10sXG4gICAgZ2VuZXJhdGVkTGluZU51bWJlcjogMCxcbiAgICBnZW5lcmF0ZWRDb2x1bW5OdW1iZXI6IDAsXG4gICAgc291cmNlRnVuY3Rpb25OYW1lOiBcIlwiLFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgTWFwcGVkQ2h1bmsgPSB7XG4gIGVuY29kZShtZXNzYWdlOiBNYXBwZWRDaHVuaywgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLmNodW5rTmFtZSAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxMCkuc3RyaW5nKG1lc3NhZ2UuY2h1bmtOYW1lKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2Uub3JpZ2luYWxMaW5lTnVtYmVyICE9PSAwKSB7XG4gICAgICB3cml0ZXIudWludDMyKDE2KS5pbnQ2NChtZXNzYWdlLm9yaWdpbmFsTGluZU51bWJlcik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLm9yaWdpbmFsQ29sdW1uTnVtYmVyICE9PSAwKSB7XG4gICAgICB3cml0ZXIudWludDMyKDI0KS5pbnQ2NChtZXNzYWdlLm9yaWdpbmFsQ29sdW1uTnVtYmVyKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2Uuc291cmNlRmlsZU5hbWUgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMzQpLnN0cmluZyhtZXNzYWdlLnNvdXJjZUZpbGVOYW1lKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCB2IG9mIG1lc3NhZ2Uuc291cmNlQ29kZUxpbmVzKSB7XG4gICAgICBDb2RlTGluZS5lbmNvZGUodiEsIHdyaXRlci51aW50MzIoNDIpLmZvcmsoKSkubGRlbGltKCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmdlbmVyYXRlZExpbmVOdW1iZXIgIT09IDApIHtcbiAgICAgIHdyaXRlci51aW50MzIoNDgpLmludDY0KG1lc3NhZ2UuZ2VuZXJhdGVkTGluZU51bWJlcik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlciAhPT0gMCkge1xuICAgICAgd3JpdGVyLnVpbnQzMig1NikuaW50NjQobWVzc2FnZS5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5zb3VyY2VGdW5jdGlvbk5hbWUgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoNjYpLnN0cmluZyhtZXNzYWdlLnNvdXJjZUZ1bmN0aW9uTmFtZSk7XG4gICAgfVxuICAgIHJldHVybiB3cml0ZXI7XG4gIH0sXG5cbiAgZGVjb2RlKGlucHV0OiBfbTAuUmVhZGVyIHwgVWludDhBcnJheSwgbGVuZ3RoPzogbnVtYmVyKTogTWFwcGVkQ2h1bmsge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlTWFwcGVkQ2h1bmsoKTtcbiAgICB3aGlsZSAocmVhZGVyLnBvcyA8IGVuZCkge1xuICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGlmICh0YWcgIT09IDEwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmNodW5rTmFtZSA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIGlmICh0YWcgIT09IDE2KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLm9yaWdpbmFsTGluZU51bWJlciA9IGxvbmdUb051bWJlcihyZWFkZXIuaW50NjQoKSBhcyBMb25nKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGlmICh0YWcgIT09IDI0KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLm9yaWdpbmFsQ29sdW1uTnVtYmVyID0gbG9uZ1RvTnVtYmVyKHJlYWRlci5pbnQ2NCgpIGFzIExvbmcpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMzQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2Uuc291cmNlRmlsZU5hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICBpZiAodGFnICE9PSA0Mikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5zb3VyY2VDb2RlTGluZXMucHVzaChDb2RlTGluZS5kZWNvZGUocmVhZGVyLCByZWFkZXIudWludDMyKCkpKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA2OlxuICAgICAgICAgIGlmICh0YWcgIT09IDQ4KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmdlbmVyYXRlZExpbmVOdW1iZXIgPSBsb25nVG9OdW1iZXIocmVhZGVyLmludDY0KCkgYXMgTG9uZyk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICBpZiAodGFnICE9PSA1Nikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIgPSBsb25nVG9OdW1iZXIocmVhZGVyLmludDY0KCkgYXMgTG9uZyk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICBpZiAodGFnICE9PSA2Nikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5zb3VyY2VGdW5jdGlvbk5hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBNYXBwZWRDaHVuayB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNodW5rTmFtZTogaXNTZXQob2JqZWN0LmNodW5rTmFtZSkgPyBTdHJpbmcob2JqZWN0LmNodW5rTmFtZSkgOiBcIlwiLFxuICAgICAgb3JpZ2luYWxMaW5lTnVtYmVyOiBpc1NldChvYmplY3Qub3JpZ2luYWxMaW5lTnVtYmVyKSA/IE51bWJlcihvYmplY3Qub3JpZ2luYWxMaW5lTnVtYmVyKSA6IDAsXG4gICAgICBvcmlnaW5hbENvbHVtbk51bWJlcjogaXNTZXQob2JqZWN0Lm9yaWdpbmFsQ29sdW1uTnVtYmVyKSA/IE51bWJlcihvYmplY3Qub3JpZ2luYWxDb2x1bW5OdW1iZXIpIDogMCxcbiAgICAgIHNvdXJjZUZpbGVOYW1lOiBpc1NldChvYmplY3Quc291cmNlRmlsZU5hbWUpID8gU3RyaW5nKG9iamVjdC5zb3VyY2VGaWxlTmFtZSkgOiBcIlwiLFxuICAgICAgc291cmNlQ29kZUxpbmVzOiBBcnJheS5pc0FycmF5KG9iamVjdD8uc291cmNlQ29kZUxpbmVzKVxuICAgICAgICA/IG9iamVjdC5zb3VyY2VDb2RlTGluZXMubWFwKChlOiBhbnkpID0+IENvZGVMaW5lLmZyb21KU09OKGUpKVxuICAgICAgICA6IFtdLFxuICAgICAgZ2VuZXJhdGVkTGluZU51bWJlcjogaXNTZXQob2JqZWN0LmdlbmVyYXRlZExpbmVOdW1iZXIpID8gTnVtYmVyKG9iamVjdC5nZW5lcmF0ZWRMaW5lTnVtYmVyKSA6IDAsXG4gICAgICBnZW5lcmF0ZWRDb2x1bW5OdW1iZXI6IGlzU2V0KG9iamVjdC5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIpID8gTnVtYmVyKG9iamVjdC5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIpIDogMCxcbiAgICAgIHNvdXJjZUZ1bmN0aW9uTmFtZTogaXNTZXQob2JqZWN0LnNvdXJjZUZ1bmN0aW9uTmFtZSkgPyBTdHJpbmcob2JqZWN0LnNvdXJjZUZ1bmN0aW9uTmFtZSkgOiBcIlwiLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IE1hcHBlZENodW5rKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBtZXNzYWdlLmNodW5rTmFtZSAhPT0gdW5kZWZpbmVkICYmIChvYmouY2h1bmtOYW1lID0gbWVzc2FnZS5jaHVua05hbWUpO1xuICAgIG1lc3NhZ2Uub3JpZ2luYWxMaW5lTnVtYmVyICE9PSB1bmRlZmluZWQgJiYgKG9iai5vcmlnaW5hbExpbmVOdW1iZXIgPSBNYXRoLnJvdW5kKG1lc3NhZ2Uub3JpZ2luYWxMaW5lTnVtYmVyKSk7XG4gICAgbWVzc2FnZS5vcmlnaW5hbENvbHVtbk51bWJlciAhPT0gdW5kZWZpbmVkICYmIChvYmoub3JpZ2luYWxDb2x1bW5OdW1iZXIgPSBNYXRoLnJvdW5kKG1lc3NhZ2Uub3JpZ2luYWxDb2x1bW5OdW1iZXIpKTtcbiAgICBtZXNzYWdlLnNvdXJjZUZpbGVOYW1lICE9PSB1bmRlZmluZWQgJiYgKG9iai5zb3VyY2VGaWxlTmFtZSA9IG1lc3NhZ2Uuc291cmNlRmlsZU5hbWUpO1xuICAgIGlmIChtZXNzYWdlLnNvdXJjZUNvZGVMaW5lcykge1xuICAgICAgb2JqLnNvdXJjZUNvZGVMaW5lcyA9IG1lc3NhZ2Uuc291cmNlQ29kZUxpbmVzLm1hcCgoZSkgPT4gZSA/IENvZGVMaW5lLnRvSlNPTihlKSA6IHVuZGVmaW5lZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9iai5zb3VyY2VDb2RlTGluZXMgPSBbXTtcbiAgICB9XG4gICAgbWVzc2FnZS5nZW5lcmF0ZWRMaW5lTnVtYmVyICE9PSB1bmRlZmluZWQgJiYgKG9iai5nZW5lcmF0ZWRMaW5lTnVtYmVyID0gTWF0aC5yb3VuZChtZXNzYWdlLmdlbmVyYXRlZExpbmVOdW1iZXIpKTtcbiAgICBtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlciAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAob2JqLmdlbmVyYXRlZENvbHVtbk51bWJlciA9IE1hdGgucm91bmQobWVzc2FnZS5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIpKTtcbiAgICBtZXNzYWdlLnNvdXJjZUZ1bmN0aW9uTmFtZSAhPT0gdW5kZWZpbmVkICYmIChvYmouc291cmNlRnVuY3Rpb25OYW1lID0gbWVzc2FnZS5zb3VyY2VGdW5jdGlvbk5hbWUpO1xuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxNYXBwZWRDaHVuaz4pOiBNYXBwZWRDaHVuayB7XG4gICAgcmV0dXJuIE1hcHBlZENodW5rLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuXG4gIGZyb21QYXJ0aWFsKG9iamVjdDogRGVlcFBhcnRpYWw8TWFwcGVkQ2h1bms+KTogTWFwcGVkQ2h1bmsge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlTWFwcGVkQ2h1bmsoKTtcbiAgICBtZXNzYWdlLmNodW5rTmFtZSA9IG9iamVjdC5jaHVua05hbWUgPz8gXCJcIjtcbiAgICBtZXNzYWdlLm9yaWdpbmFsTGluZU51bWJlciA9IG9iamVjdC5vcmlnaW5hbExpbmVOdW1iZXIgPz8gMDtcbiAgICBtZXNzYWdlLm9yaWdpbmFsQ29sdW1uTnVtYmVyID0gb2JqZWN0Lm9yaWdpbmFsQ29sdW1uTnVtYmVyID8/IDA7XG4gICAgbWVzc2FnZS5zb3VyY2VGaWxlTmFtZSA9IG9iamVjdC5zb3VyY2VGaWxlTmFtZSA/PyBcIlwiO1xuICAgIG1lc3NhZ2Uuc291cmNlQ29kZUxpbmVzID0gb2JqZWN0LnNvdXJjZUNvZGVMaW5lcz8ubWFwKChlKSA9PiBDb2RlTGluZS5mcm9tUGFydGlhbChlKSkgfHwgW107XG4gICAgbWVzc2FnZS5nZW5lcmF0ZWRMaW5lTnVtYmVyID0gb2JqZWN0LmdlbmVyYXRlZExpbmVOdW1iZXIgPz8gMDtcbiAgICBtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlciA9IG9iamVjdC5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIgPz8gMDtcbiAgICBtZXNzYWdlLnNvdXJjZUZ1bmN0aW9uTmFtZSA9IG9iamVjdC5zb3VyY2VGdW5jdGlvbk5hbWUgPz8gXCJcIjtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbmRlY2xhcmUgdmFyIHNlbGY6IGFueSB8IHVuZGVmaW5lZDtcbmRlY2xhcmUgdmFyIHdpbmRvdzogYW55IHwgdW5kZWZpbmVkO1xuZGVjbGFyZSB2YXIgZ2xvYmFsOiBhbnkgfCB1bmRlZmluZWQ7XG52YXIgdHNQcm90b0dsb2JhbFRoaXM6IGFueSA9ICgoKSA9PiB7XG4gIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHJldHVybiBnbG9iYWxUaGlzO1xuICB9XG4gIGlmICh0eXBlb2Ygc2VsZiAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHJldHVybiBzZWxmO1xuICB9XG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHdpbmRvdztcbiAgfVxuICBpZiAodHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHJldHVybiBnbG9iYWw7XG4gIH1cbiAgdGhyb3cgXCJVbmFibGUgdG8gbG9jYXRlIGdsb2JhbCBvYmplY3RcIjtcbn0pKCk7XG5cbnR5cGUgQnVpbHRpbiA9IERhdGUgfCBGdW5jdGlvbiB8IFVpbnQ4QXJyYXkgfCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgdHlwZSBEZWVwUGFydGlhbDxUPiA9IFQgZXh0ZW5kcyBCdWlsdGluID8gVFxuICA6IFQgZXh0ZW5kcyBBcnJheTxpbmZlciBVPiA/IEFycmF5PERlZXBQYXJ0aWFsPFU+PiA6IFQgZXh0ZW5kcyBSZWFkb25seUFycmF5PGluZmVyIFU+ID8gUmVhZG9ubHlBcnJheTxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgeyAkY2FzZTogc3RyaW5nIH0gPyB7IFtLIGluIGtleW9mIE9taXQ8VCwgXCIkY2FzZVwiPl0/OiBEZWVwUGFydGlhbDxUW0tdPiB9ICYgeyAkY2FzZTogVFtcIiRjYXNlXCJdIH1cbiAgOiBUIGV4dGVuZHMge30gPyB7IFtLIGluIGtleW9mIFRdPzogRGVlcFBhcnRpYWw8VFtLXT4gfVxuICA6IFBhcnRpYWw8VD47XG5cbmZ1bmN0aW9uIGxvbmdUb051bWJlcihsb25nOiBMb25nKTogbnVtYmVyIHtcbiAgaWYgKGxvbmcuZ3QoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpKSB7XG4gICAgdGhyb3cgbmV3IHRzUHJvdG9HbG9iYWxUaGlzLkVycm9yKFwiVmFsdWUgaXMgbGFyZ2VyIHRoYW4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJcIik7XG4gIH1cbiAgcmV0dXJuIGxvbmcudG9OdW1iZXIoKTtcbn1cblxuaWYgKF9tMC51dGlsLkxvbmcgIT09IExvbmcpIHtcbiAgX20wLnV0aWwuTG9uZyA9IExvbmcgYXMgYW55O1xuICBfbTAuY29uZmlndXJlKCk7XG59XG5cbmZ1bmN0aW9uIGlzU2V0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQ7XG59XG4iXX0=
335
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2h1bmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ydW0vdjIvY2h1bmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLGdEQUF3QjtBQUN4QixpRUFBcUM7QUFFeEIsUUFBQSxlQUFlLEdBQUcsc0JBQXNCLENBQUM7QUF3QnRELFNBQVMsZUFBZTtJQUN0QixPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDN0UsQ0FBQztBQUVZLFFBQUEsS0FBSyxHQUFHO0lBQ25CLE1BQU0sQ0FBQyxPQUFjLEVBQUUsU0FBcUIsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQzdELElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxPQUFPLENBQUMsbUJBQW1CLEtBQUssQ0FBQyxFQUFFO1lBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsSUFBSSxPQUFPLENBQUMscUJBQXFCLEtBQUssQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQ3hEO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLGlCQUFHLENBQUMsTUFB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LElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBVyxDQUFDO0lBQzVCLGlCQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7Q0FDakI7QUFFRCxTQUFTLEtBQUssQ0FBQyxLQUFVO0lBQ3ZCLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0IExvbmcgZnJvbSBcImxvbmdcIjtcbmltcG9ydCBfbTAgZnJvbSBcInByb3RvYnVmanMvbWluaW1hbFwiO1xuXG5leHBvcnQgY29uc3QgcHJvdG9idWZQYWNrYWdlID0gXCJjb20uY29yYWxvZ2l4LnJ1bS52MlwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENodW5rIHtcbiAgY2h1bmtOYW1lOiBzdHJpbmc7XG4gIGdlbmVyYXRlZExpbmVOdW1iZXI6IG51bWJlcjtcbiAgZ2VuZXJhdGVkQ29sdW1uTnVtYmVyOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUxpbmUge1xuICBsaW5lSW5kZXg6IG51bWJlcjtcbiAgbGluZUNvZGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBwZWRDaHVuayB7XG4gIGNodW5rTmFtZTogc3RyaW5nO1xuICBvcmlnaW5hbExpbmVOdW1iZXI6IG51bWJlcjtcbiAgb3JpZ2luYWxDb2x1bW5OdW1iZXI6IG51bWJlcjtcbiAgc291cmNlRmlsZU5hbWU6IHN0cmluZztcbiAgc291cmNlQ29kZUxpbmVzOiBDb2RlTGluZVtdO1xuICBnZW5lcmF0ZWRMaW5lTnVtYmVyOiBudW1iZXI7XG4gIGdlbmVyYXRlZENvbHVtbk51bWJlcjogbnVtYmVyO1xuICBzb3VyY2VGdW5jdGlvbk5hbWU6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gY3JlYXRlQmFzZUNodW5rKCk6IENodW5rIHtcbiAgcmV0dXJuIHsgY2h1bmtOYW1lOiBcIlwiLCBnZW5lcmF0ZWRMaW5lTnVtYmVyOiAwLCBnZW5lcmF0ZWRDb2x1bW5OdW1iZXI6IDAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IENodW5rID0ge1xuICBlbmNvZGUobWVzc2FnZTogQ2h1bmssIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICBpZiAobWVzc2FnZS5jaHVua05hbWUgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTApLnN0cmluZyhtZXNzYWdlLmNodW5rTmFtZSk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmdlbmVyYXRlZExpbmVOdW1iZXIgIT09IDApIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTYpLmludDY0KG1lc3NhZ2UuZ2VuZXJhdGVkTGluZU51bWJlcik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlciAhPT0gMCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigyNCkuaW50NjQobWVzc2FnZS5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIpO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IENodW5rIHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUNodW5rKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5jaHVua05hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxNikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5nZW5lcmF0ZWRMaW5lTnVtYmVyID0gbG9uZ1RvTnVtYmVyKHJlYWRlci5pbnQ2NCgpIGFzIExvbmcpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMjQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuZ2VuZXJhdGVkQ29sdW1uTnVtYmVyID0gbG9uZ1RvTnVtYmVyKHJlYWRlci5pbnQ2NCgpIGFzIExvbmcpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogQ2h1bmsge1xuICAgIHJldHVybiB7XG4gICAgICBjaHVua05hbWU6IGlzU2V0KG9iamVjdC5jaHVua05hbWUpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LmNodW5rTmFtZSkgOiBcIlwiLFxuICAgICAgZ2VuZXJhdGVkTGluZU51bWJlcjogaXNTZXQob2JqZWN0LmdlbmVyYXRlZExpbmVOdW1iZXIpID8gZ2xvYmFsVGhpcy5OdW1iZXIob2JqZWN0LmdlbmVyYXRlZExpbmVOdW1iZXIpIDogMCxcbiAgICAgIGdlbmVyYXRlZENvbHVtbk51bWJlcjogaXNTZXQob2JqZWN0LmdlbmVyYXRlZENvbHVtbk51bWJlcikgPyBnbG9iYWxUaGlzLk51bWJlcihvYmplY3QuZ2VuZXJhdGVkQ29sdW1uTnVtYmVyKSA6IDAsXG4gICAgfTtcbiAgfSxcblxuICB0b0pTT04obWVzc2FnZTogQ2h1bmspOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIGlmIChtZXNzYWdlLmNodW5rTmFtZSAhPT0gXCJcIikge1xuICAgICAgb2JqLmNodW5rTmFtZSA9IG1lc3NhZ2UuY2h1bmtOYW1lO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5nZW5lcmF0ZWRMaW5lTnVtYmVyICE9PSAwKSB7XG4gICAgICBvYmouZ2VuZXJhdGVkTGluZU51bWJlciA9IE1hdGgucm91bmQobWVzc2FnZS5nZW5lcmF0ZWRMaW5lTnVtYmVyKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuZ2VuZXJhdGVkQ29sdW1uTnVtYmVyICE9PSAwKSB7XG4gICAgICBvYmouZ2VuZXJhdGVkQ29sdW1uTnVtYmVyID0gTWF0aC5yb3VuZChtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlcik7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxDaHVuaz4pOiBDaHVuayB7XG4gICAgcmV0dXJuIENodW5rLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPENodW5rPik6IENodW5rIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUNodW5rKCk7XG4gICAgbWVzc2FnZS5jaHVua05hbWUgPSBvYmplY3QuY2h1bmtOYW1lID8/IFwiXCI7XG4gICAgbWVzc2FnZS5nZW5lcmF0ZWRMaW5lTnVtYmVyID0gb2JqZWN0LmdlbmVyYXRlZExpbmVOdW1iZXIgPz8gMDtcbiAgICBtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlciA9IG9iamVjdC5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIgPz8gMDtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VDb2RlTGluZSgpOiBDb2RlTGluZSB7XG4gIHJldHVybiB7IGxpbmVJbmRleDogMCwgbGluZUNvZGU6IFwiXCIgfTtcbn1cblxuZXhwb3J0IGNvbnN0IENvZGVMaW5lID0ge1xuICBlbmNvZGUobWVzc2FnZTogQ29kZUxpbmUsIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICBpZiAobWVzc2FnZS5saW5lSW5kZXggIT09IDApIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTYpLmludDY0KG1lc3NhZ2UubGluZUluZGV4KTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UubGluZUNvZGUgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTApLnN0cmluZyhtZXNzYWdlLmxpbmVDb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBDb2RlTGluZSB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VDb2RlTGluZSgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTYpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UubGluZUluZGV4ID0gbG9uZ1RvTnVtYmVyKHJlYWRlci5pbnQ2NCgpIGFzIExvbmcpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UubGluZUNvZGUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBDb2RlTGluZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmVJbmRleDogaXNTZXQob2JqZWN0LmxpbmVJbmRleCkgPyBnbG9iYWxUaGlzLk51bWJlcihvYmplY3QubGluZUluZGV4KSA6IDAsXG4gICAgICBsaW5lQ29kZTogaXNTZXQob2JqZWN0LmxpbmVDb2RlKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5saW5lQ29kZSkgOiBcIlwiLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IENvZGVMaW5lKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBpZiAobWVzc2FnZS5saW5lSW5kZXggIT09IDApIHtcbiAgICAgIG9iai5saW5lSW5kZXggPSBNYXRoLnJvdW5kKG1lc3NhZ2UubGluZUluZGV4KTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UubGluZUNvZGUgIT09IFwiXCIpIHtcbiAgICAgIG9iai5saW5lQ29kZSA9IG1lc3NhZ2UubGluZUNvZGU7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxDb2RlTGluZT4pOiBDb2RlTGluZSB7XG4gICAgcmV0dXJuIENvZGVMaW5lLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPENvZGVMaW5lPik6IENvZGVMaW5lIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUNvZGVMaW5lKCk7XG4gICAgbWVzc2FnZS5saW5lSW5kZXggPSBvYmplY3QubGluZUluZGV4ID8/IDA7XG4gICAgbWVzc2FnZS5saW5lQ29kZSA9IG9iamVjdC5saW5lQ29kZSA/PyBcIlwiO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZnVuY3Rpb24gY3JlYXRlQmFzZU1hcHBlZENodW5rKCk6IE1hcHBlZENodW5rIHtcbiAgcmV0dXJuIHtcbiAgICBjaHVua05hbWU6IFwiXCIsXG4gICAgb3JpZ2luYWxMaW5lTnVtYmVyOiAwLFxuICAgIG9yaWdpbmFsQ29sdW1uTnVtYmVyOiAwLFxuICAgIHNvdXJjZUZpbGVOYW1lOiBcIlwiLFxuICAgIHNvdXJjZUNvZGVMaW5lczogW10sXG4gICAgZ2VuZXJhdGVkTGluZU51bWJlcjogMCxcbiAgICBnZW5lcmF0ZWRDb2x1bW5OdW1iZXI6IDAsXG4gICAgc291cmNlRnVuY3Rpb25OYW1lOiBcIlwiLFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgTWFwcGVkQ2h1bmsgPSB7XG4gIGVuY29kZShtZXNzYWdlOiBNYXBwZWRDaHVuaywgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLmNodW5rTmFtZSAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxMCkuc3RyaW5nKG1lc3NhZ2UuY2h1bmtOYW1lKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2Uub3JpZ2luYWxMaW5lTnVtYmVyICE9PSAwKSB7XG4gICAgICB3cml0ZXIudWludDMyKDE2KS5pbnQ2NChtZXNzYWdlLm9yaWdpbmFsTGluZU51bWJlcik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLm9yaWdpbmFsQ29sdW1uTnVtYmVyICE9PSAwKSB7XG4gICAgICB3cml0ZXIudWludDMyKDI0KS5pbnQ2NChtZXNzYWdlLm9yaWdpbmFsQ29sdW1uTnVtYmVyKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2Uuc291cmNlRmlsZU5hbWUgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMzQpLnN0cmluZyhtZXNzYWdlLnNvdXJjZUZpbGVOYW1lKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCB2IG9mIG1lc3NhZ2Uuc291cmNlQ29kZUxpbmVzKSB7XG4gICAgICBDb2RlTGluZS5lbmNvZGUodiEsIHdyaXRlci51aW50MzIoNDIpLmZvcmsoKSkubGRlbGltKCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmdlbmVyYXRlZExpbmVOdW1iZXIgIT09IDApIHtcbiAgICAgIHdyaXRlci51aW50MzIoNDgpLmludDY0KG1lc3NhZ2UuZ2VuZXJhdGVkTGluZU51bWJlcik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlciAhPT0gMCkge1xuICAgICAgd3JpdGVyLnVpbnQzMig1NikuaW50NjQobWVzc2FnZS5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5zb3VyY2VGdW5jdGlvbk5hbWUgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoNjYpLnN0cmluZyhtZXNzYWdlLnNvdXJjZUZ1bmN0aW9uTmFtZSk7XG4gICAgfVxuICAgIHJldHVybiB3cml0ZXI7XG4gIH0sXG5cbiAgZGVjb2RlKGlucHV0OiBfbTAuUmVhZGVyIHwgVWludDhBcnJheSwgbGVuZ3RoPzogbnVtYmVyKTogTWFwcGVkQ2h1bmsge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlTWFwcGVkQ2h1bmsoKTtcbiAgICB3aGlsZSAocmVhZGVyLnBvcyA8IGVuZCkge1xuICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGlmICh0YWcgIT09IDEwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmNodW5rTmFtZSA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIGlmICh0YWcgIT09IDE2KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLm9yaWdpbmFsTGluZU51bWJlciA9IGxvbmdUb051bWJlcihyZWFkZXIuaW50NjQoKSBhcyBMb25nKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGlmICh0YWcgIT09IDI0KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLm9yaWdpbmFsQ29sdW1uTnVtYmVyID0gbG9uZ1RvTnVtYmVyKHJlYWRlci5pbnQ2NCgpIGFzIExvbmcpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMzQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2Uuc291cmNlRmlsZU5hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICBpZiAodGFnICE9PSA0Mikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5zb3VyY2VDb2RlTGluZXMucHVzaChDb2RlTGluZS5kZWNvZGUocmVhZGVyLCByZWFkZXIudWludDMyKCkpKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA2OlxuICAgICAgICAgIGlmICh0YWcgIT09IDQ4KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmdlbmVyYXRlZExpbmVOdW1iZXIgPSBsb25nVG9OdW1iZXIocmVhZGVyLmludDY0KCkgYXMgTG9uZyk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICBpZiAodGFnICE9PSA1Nikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIgPSBsb25nVG9OdW1iZXIocmVhZGVyLmludDY0KCkgYXMgTG9uZyk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICBpZiAodGFnICE9PSA2Nikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5zb3VyY2VGdW5jdGlvbk5hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBNYXBwZWRDaHVuayB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNodW5rTmFtZTogaXNTZXQob2JqZWN0LmNodW5rTmFtZSkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QuY2h1bmtOYW1lKSA6IFwiXCIsXG4gICAgICBvcmlnaW5hbExpbmVOdW1iZXI6IGlzU2V0KG9iamVjdC5vcmlnaW5hbExpbmVOdW1iZXIpID8gZ2xvYmFsVGhpcy5OdW1iZXIob2JqZWN0Lm9yaWdpbmFsTGluZU51bWJlcikgOiAwLFxuICAgICAgb3JpZ2luYWxDb2x1bW5OdW1iZXI6IGlzU2V0KG9iamVjdC5vcmlnaW5hbENvbHVtbk51bWJlcikgPyBnbG9iYWxUaGlzLk51bWJlcihvYmplY3Qub3JpZ2luYWxDb2x1bW5OdW1iZXIpIDogMCxcbiAgICAgIHNvdXJjZUZpbGVOYW1lOiBpc1NldChvYmplY3Quc291cmNlRmlsZU5hbWUpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LnNvdXJjZUZpbGVOYW1lKSA6IFwiXCIsXG4gICAgICBzb3VyY2VDb2RlTGluZXM6IGdsb2JhbFRoaXMuQXJyYXkuaXNBcnJheShvYmplY3Q/LnNvdXJjZUNvZGVMaW5lcylcbiAgICAgICAgPyBvYmplY3Quc291cmNlQ29kZUxpbmVzLm1hcCgoZTogYW55KSA9PiBDb2RlTGluZS5mcm9tSlNPTihlKSlcbiAgICAgICAgOiBbXSxcbiAgICAgIGdlbmVyYXRlZExpbmVOdW1iZXI6IGlzU2V0KG9iamVjdC5nZW5lcmF0ZWRMaW5lTnVtYmVyKSA/IGdsb2JhbFRoaXMuTnVtYmVyKG9iamVjdC5nZW5lcmF0ZWRMaW5lTnVtYmVyKSA6IDAsXG4gICAgICBnZW5lcmF0ZWRDb2x1bW5OdW1iZXI6IGlzU2V0KG9iamVjdC5nZW5lcmF0ZWRDb2x1bW5OdW1iZXIpID8gZ2xvYmFsVGhpcy5OdW1iZXIob2JqZWN0LmdlbmVyYXRlZENvbHVtbk51bWJlcikgOiAwLFxuICAgICAgc291cmNlRnVuY3Rpb25OYW1lOiBpc1NldChvYmplY3Quc291cmNlRnVuY3Rpb25OYW1lKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5zb3VyY2VGdW5jdGlvbk5hbWUpIDogXCJcIixcbiAgICB9O1xuICB9LFxuXG4gIHRvSlNPTihtZXNzYWdlOiBNYXBwZWRDaHVuayk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgaWYgKG1lc3NhZ2UuY2h1bmtOYW1lICE9PSBcIlwiKSB7XG4gICAgICBvYmouY2h1bmtOYW1lID0gbWVzc2FnZS5jaHVua05hbWU7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLm9yaWdpbmFsTGluZU51bWJlciAhPT0gMCkge1xuICAgICAgb2JqLm9yaWdpbmFsTGluZU51bWJlciA9IE1hdGgucm91bmQobWVzc2FnZS5vcmlnaW5hbExpbmVOdW1iZXIpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5vcmlnaW5hbENvbHVtbk51bWJlciAhPT0gMCkge1xuICAgICAgb2JqLm9yaWdpbmFsQ29sdW1uTnVtYmVyID0gTWF0aC5yb3VuZChtZXNzYWdlLm9yaWdpbmFsQ29sdW1uTnVtYmVyKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2Uuc291cmNlRmlsZU5hbWUgIT09IFwiXCIpIHtcbiAgICAgIG9iai5zb3VyY2VGaWxlTmFtZSA9IG1lc3NhZ2Uuc291cmNlRmlsZU5hbWU7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnNvdXJjZUNvZGVMaW5lcz8ubGVuZ3RoKSB7XG4gICAgICBvYmouc291cmNlQ29kZUxpbmVzID0gbWVzc2FnZS5zb3VyY2VDb2RlTGluZXMubWFwKChlKSA9PiBDb2RlTGluZS50b0pTT04oZSkpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5nZW5lcmF0ZWRMaW5lTnVtYmVyICE9PSAwKSB7XG4gICAgICBvYmouZ2VuZXJhdGVkTGluZU51bWJlciA9IE1hdGgucm91bmQobWVzc2FnZS5nZW5lcmF0ZWRMaW5lTnVtYmVyKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuZ2VuZXJhdGVkQ29sdW1uTnVtYmVyICE9PSAwKSB7XG4gICAgICBvYmouZ2VuZXJhdGVkQ29sdW1uTnVtYmVyID0gTWF0aC5yb3VuZChtZXNzYWdlLmdlbmVyYXRlZENvbHVtbk51bWJlcik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnNvdXJjZUZ1bmN0aW9uTmFtZSAhPT0gXCJcIikge1xuICAgICAgb2JqLnNvdXJjZUZ1bmN0aW9uTmFtZSA9IG1lc3NhZ2Uuc291cmNlRnVuY3Rpb25OYW1lO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8TWFwcGVkQ2h1bms+KTogTWFwcGVkQ2h1bmsge1xuICAgIHJldHVybiBNYXBwZWRDaHVuay5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxNYXBwZWRDaHVuaz4pOiBNYXBwZWRDaHVuayB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VNYXBwZWRDaHVuaygpO1xuICAgIG1lc3NhZ2UuY2h1bmtOYW1lID0gb2JqZWN0LmNodW5rTmFtZSA/PyBcIlwiO1xuICAgIG1lc3NhZ2Uub3JpZ2luYWxMaW5lTnVtYmVyID0gb2JqZWN0Lm9yaWdpbmFsTGluZU51bWJlciA/PyAwO1xuICAgIG1lc3NhZ2Uub3JpZ2luYWxDb2x1bW5OdW1iZXIgPSBvYmplY3Qub3JpZ2luYWxDb2x1bW5OdW1iZXIgPz8gMDtcbiAgICBtZXNzYWdlLnNvdXJjZUZpbGVOYW1lID0gb2JqZWN0LnNvdXJjZUZpbGVOYW1lID8/IFwiXCI7XG4gICAgbWVzc2FnZS5zb3VyY2VDb2RlTGluZXMgPSBvYmplY3Quc291cmNlQ29kZUxpbmVzPy5tYXAoKGUpID0+IENvZGVMaW5lLmZyb21QYXJ0aWFsKGUpKSB8fCBbXTtcbiAgICBtZXNzYWdlLmdlbmVyYXRlZExpbmVOdW1iZXIgPSBvYmplY3QuZ2VuZXJhdGVkTGluZU51bWJlciA/PyAwO1xuICAgIG1lc3NhZ2UuZ2VuZXJhdGVkQ29sdW1uTnVtYmVyID0gb2JqZWN0LmdlbmVyYXRlZENvbHVtbk51bWJlciA/PyAwO1xuICAgIG1lc3NhZ2Uuc291cmNlRnVuY3Rpb25OYW1lID0gb2JqZWN0LnNvdXJjZUZ1bmN0aW9uTmFtZSA/PyBcIlwiO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxudHlwZSBCdWlsdGluID0gRGF0ZSB8IEZ1bmN0aW9uIHwgVWludDhBcnJheSB8IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCB0eXBlIERlZXBQYXJ0aWFsPFQ+ID0gVCBleHRlbmRzIEJ1aWx0aW4gPyBUXG4gIDogVCBleHRlbmRzIGdsb2JhbFRoaXMuQXJyYXk8aW5mZXIgVT4gPyBnbG9iYWxUaGlzLkFycmF5PERlZXBQYXJ0aWFsPFU+PlxuICA6IFQgZXh0ZW5kcyBSZWFkb25seUFycmF5PGluZmVyIFU+ID8gUmVhZG9ubHlBcnJheTxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgeyAkY2FzZTogc3RyaW5nIH0gPyB7IFtLIGluIGtleW9mIE9taXQ8VCwgXCIkY2FzZVwiPl0/OiBEZWVwUGFydGlhbDxUW0tdPiB9ICYgeyAkY2FzZTogVFtcIiRjYXNlXCJdIH1cbiAgOiBUIGV4dGVuZHMge30gPyB7IFtLIGluIGtleW9mIFRdPzogRGVlcFBhcnRpYWw8VFtLXT4gfVxuICA6IFBhcnRpYWw8VD47XG5cbmZ1bmN0aW9uIGxvbmdUb051bWJlcihsb25nOiBMb25nKTogbnVtYmVyIHtcbiAgaWYgKGxvbmcuZ3QoZ2xvYmFsVGhpcy5OdW1iZXIuTUFYX1NBRkVfSU5URUdFUikpIHtcbiAgICB0aHJvdyBuZXcgZ2xvYmFsVGhpcy5FcnJvcihcIlZhbHVlIGlzIGxhcmdlciB0aGFuIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSXCIpO1xuICB9XG4gIHJldHVybiBsb25nLnRvTnVtYmVyKCk7XG59XG5cbmlmIChfbTAudXRpbC5Mb25nICE9PSBMb25nKSB7XG4gIF9tMC51dGlsLkxvbmcgPSBMb25nIGFzIGFueTtcbiAgX20wLmNvbmZpZ3VyZSgpO1xufVxuXG5mdW5jdGlvbiBpc1NldCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkO1xufVxuIl19
@@ -14,7 +14,7 @@ export declare const FileMetadata: {
14
14
  fromPartial(object: DeepPartial<FileMetadata>): FileMetadata;
15
15
  };
16
16
  type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
17
- export type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {
17
+ export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {
18
18
  $case: string;
19
19
  } ? {
20
20
  [K in keyof Omit<T, "$case">]?: DeepPartial<T[K]>;
@@ -9,7 +9,7 @@ const long_1 = __importDefault(require("long"));
9
9
  const minimal_1 = __importDefault(require("protobufjs/minimal"));
10
10
  exports.protobufPackage = "com.coralogix.rum.v2";
11
11
  function createBaseFileMetadata() {
12
- return { chunkName: "", size: 0, content: new Uint8Array() };
12
+ return { chunkName: "", size: 0, content: new Uint8Array(0) };
13
13
  }
14
14
  exports.FileMetadata = {
15
15
  encode(message, writer = minimal_1.default.Writer.create()) {
@@ -59,17 +59,22 @@ exports.FileMetadata = {
59
59
  },
60
60
  fromJSON(object) {
61
61
  return {
62
- chunkName: isSet(object.chunkName) ? String(object.chunkName) : "",
63
- size: isSet(object.size) ? Number(object.size) : 0,
64
- content: isSet(object.content) ? bytesFromBase64(object.content) : new Uint8Array(),
62
+ chunkName: isSet(object.chunkName) ? globalThis.String(object.chunkName) : "",
63
+ size: isSet(object.size) ? globalThis.Number(object.size) : 0,
64
+ content: isSet(object.content) ? bytesFromBase64(object.content) : new Uint8Array(0),
65
65
  };
66
66
  },
67
67
  toJSON(message) {
68
68
  const obj = {};
69
- message.chunkName !== undefined && (obj.chunkName = message.chunkName);
70
- message.size !== undefined && (obj.size = Math.round(message.size));
71
- message.content !== undefined &&
72
- (obj.content = base64FromBytes(message.content !== undefined ? message.content : new Uint8Array()));
69
+ if (message.chunkName !== "") {
70
+ obj.chunkName = message.chunkName;
71
+ }
72
+ if (message.size !== 0) {
73
+ obj.size = Math.round(message.size);
74
+ }
75
+ if (message.content.length !== 0) {
76
+ obj.content = base64FromBytes(message.content);
77
+ }
73
78
  return obj;
74
79
  },
75
80
  create(base) {
@@ -80,31 +85,16 @@ exports.FileMetadata = {
80
85
  const message = createBaseFileMetadata();
81
86
  message.chunkName = (_a = object.chunkName) !== null && _a !== void 0 ? _a : "";
82
87
  message.size = (_b = object.size) !== null && _b !== void 0 ? _b : 0;
83
- message.content = (_c = object.content) !== null && _c !== void 0 ? _c : new Uint8Array();
88
+ message.content = (_c = object.content) !== null && _c !== void 0 ? _c : new Uint8Array(0);
84
89
  return message;
85
90
  },
86
91
  };
87
- var tsProtoGlobalThis = (() => {
88
- if (typeof globalThis !== "undefined") {
89
- return globalThis;
90
- }
91
- if (typeof self !== "undefined") {
92
- return self;
93
- }
94
- if (typeof window !== "undefined") {
95
- return window;
96
- }
97
- if (typeof global !== "undefined") {
98
- return global;
99
- }
100
- throw "Unable to locate global object";
101
- })();
102
92
  function bytesFromBase64(b64) {
103
- if (tsProtoGlobalThis.Buffer) {
104
- return Uint8Array.from(tsProtoGlobalThis.Buffer.from(b64, "base64"));
93
+ if (globalThis.Buffer) {
94
+ return Uint8Array.from(globalThis.Buffer.from(b64, "base64"));
105
95
  }
106
96
  else {
107
- const bin = tsProtoGlobalThis.atob(b64);
97
+ const bin = globalThis.atob(b64);
108
98
  const arr = new Uint8Array(bin.length);
109
99
  for (let i = 0; i < bin.length; ++i) {
110
100
  arr[i] = bin.charCodeAt(i);
@@ -113,20 +103,20 @@ function bytesFromBase64(b64) {
113
103
  }
114
104
  }
115
105
  function base64FromBytes(arr) {
116
- if (tsProtoGlobalThis.Buffer) {
117
- return tsProtoGlobalThis.Buffer.from(arr).toString("base64");
106
+ if (globalThis.Buffer) {
107
+ return globalThis.Buffer.from(arr).toString("base64");
118
108
  }
119
109
  else {
120
110
  const bin = [];
121
111
  arr.forEach((byte) => {
122
- bin.push(String.fromCharCode(byte));
112
+ bin.push(globalThis.String.fromCharCode(byte));
123
113
  });
124
- return tsProtoGlobalThis.btoa(bin.join(""));
114
+ return globalThis.btoa(bin.join(""));
125
115
  }
126
116
  }
127
117
  function longToNumber(long) {
128
- if (long.gt(Number.MAX_SAFE_INTEGER)) {
129
- throw new tsProtoGlobalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
118
+ if (long.gt(globalThis.Number.MAX_SAFE_INTEGER)) {
119
+ throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
130
120
  }
131
121
  return long.toNumber();
132
122
  }
@@ -137,4 +127,4 @@ if (minimal_1.default.util.Long !== long_1.default) {
137
127
  function isSet(value) {
138
128
  return value !== null && value !== undefined;
139
129
  }
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb3RvLW1vZGVscy9jb20vY29yYWxvZ2l4L3J1bS92Mi9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQixnREFBd0I7QUFDeEIsaUVBQXFDO0FBRXhCLFFBQUEsZUFBZSxHQUFHLHNCQUFzQixDQUFDO0FBUXRELFNBQVMsc0JBQXNCO0lBQzdCLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztBQUMvRCxDQUFDO0FBRVksUUFBQSxZQUFZLEdBQUc7SUFDMUIsTUFBTSxDQUFDLE9BQXFCLEVBQUUsU0FBcUIsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ3BFLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtZQUN0QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNoQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDMUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksaUJBQUcs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SUFBSSxDQUFDLElBQUksS0FBSyxjQUFJLEVBQUU7SUFDMUIsaUJBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQVcsQ0FBQztJQUM1QixpQkFBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO0NBQ2pCO0FBRUQsU0FBUyxLQUFLLENBQUMsS0FBVTtJQUN2QixPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCBMb25nIGZyb20gXCJsb25nXCI7XG5pbXBvcnQgX20wIGZyb20gXCJwcm90b2J1ZmpzL21pbmltYWxcIjtcblxuZXhwb3J0IGNvbnN0IHByb3RvYnVmUGFja2FnZSA9IFwiY29tLmNvcmFsb2dpeC5ydW0udjJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBGaWxlTWV0YWRhdGEge1xuICBjaHVua05hbWU6IHN0cmluZztcbiAgc2l6ZTogbnVtYmVyO1xuICBjb250ZW50OiBVaW50OEFycmF5O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVCYXNlRmlsZU1ldGFkYXRhKCk6IEZpbGVNZXRhZGF0YSB7XG4gIHJldHVybiB7IGNodW5rTmFtZTogXCJcIiwgc2l6ZTogMCwgY29udGVudDogbmV3IFVpbnQ4QXJyYXkoKSB9O1xufVxuXG5leHBvcnQgY29uc3QgRmlsZU1ldGFkYXRhID0ge1xuICBlbmNvZGUobWVzc2FnZTogRmlsZU1ldGFkYXRhLCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgaWYgKG1lc3NhZ2UuY2h1bmtOYW1lICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDEwKS5zdHJpbmcobWVzc2FnZS5jaHVua05hbWUpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5zaXplICE9PSAwKSB7XG4gICAgICB3cml0ZXIudWludDMyKDE2KS5pbnQ2NChtZXNzYWdlLnNpemUpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5jb250ZW50Lmxlbmd0aCAhPT0gMCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigyNikuYnl0ZXMobWVzc2FnZS5jb250ZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBGaWxlTWV0YWRhdGEge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlRmlsZU1ldGFkYXRhKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5jaHVua05hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxNikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5zaXplID0gbG9uZ1RvTnVtYmVyKHJlYWRlci5pbnQ2NCgpIGFzIExvbmcpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMjYpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuY29udGVudCA9IHJlYWRlci5ieXRlcygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogRmlsZU1ldGFkYXRhIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2h1bmtOYW1lOiBpc1NldChvYmplY3QuY2h1bmtOYW1lKSA/IFN0cmluZyhvYmplY3QuY2h1bmtOYW1lKSA6IFwiXCIsXG4gICAgICBzaXplOiBpc1NldChvYmplY3Quc2l6ZSkgPyBOdW1iZXIob2JqZWN0LnNpemUpIDogMCxcbiAgICAgIGNvbnRlbnQ6IGlzU2V0KG9iamVjdC5jb250ZW50KSA/IGJ5dGVzRnJvbUJhc2U2NChvYmplY3QuY29udGVudCkgOiBuZXcgVWludDhBcnJheSgpLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IEZpbGVNZXRhZGF0YSk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgbWVzc2FnZS5jaHVua05hbWUgIT09IHVuZGVmaW5lZCAmJiAob2JqLmNodW5rTmFtZSA9IG1lc3NhZ2UuY2h1bmtOYW1lKTtcbiAgICBtZXNzYWdlLnNpemUgIT09IHVuZGVmaW5lZCAmJiAob2JqLnNpemUgPSBNYXRoLnJvdW5kKG1lc3NhZ2Uuc2l6ZSkpO1xuICAgIG1lc3NhZ2UuY29udGVudCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAob2JqLmNvbnRlbnQgPSBiYXNlNjRGcm9tQnl0ZXMobWVzc2FnZS5jb250ZW50ICE9PSB1bmRlZmluZWQgPyBtZXNzYWdlLmNvbnRlbnQgOiBuZXcgVWludDhBcnJheSgpKSk7XG4gICAgcmV0dXJuIG9iajtcbiAgfSxcblxuICBjcmVhdGUoYmFzZT86IERlZXBQYXJ0aWFsPEZpbGVNZXRhZGF0YT4pOiBGaWxlTWV0YWRhdGEge1xuICAgIHJldHVybiBGaWxlTWV0YWRhdGEuZnJvbVBhcnRpYWwoYmFzZSA/PyB7fSk7XG4gIH0sXG5cbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxGaWxlTWV0YWRhdGE+KTogRmlsZU1ldGFkYXRhIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUZpbGVNZXRhZGF0YSgpO1xuICAgIG1lc3NhZ2UuY2h1bmtOYW1lID0gb2JqZWN0LmNodW5rTmFtZSA/PyBcIlwiO1xuICAgIG1lc3NhZ2Uuc2l6ZSA9IG9iamVjdC5zaXplID8/IDA7XG4gICAgbWVzc2FnZS5jb250ZW50ID0gb2JqZWN0LmNvbnRlbnQgPz8gbmV3IFVpbnQ4QXJyYXkoKTtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbmRlY2xhcmUgdmFyIHNlbGY6IGFueSB8IHVuZGVmaW5lZDtcbmRlY2xhcmUgdmFyIHdpbmRvdzogYW55IHwgdW5kZWZpbmVkO1xuZGVjbGFyZSB2YXIgZ2xvYmFsOiBhbnkgfCB1bmRlZmluZWQ7XG52YXIgdHNQcm90b0dsb2JhbFRoaXM6IGFueSA9ICgoKSA9PiB7XG4gIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHJldHVybiBnbG9iYWxUaGlzO1xuICB9XG4gIGlmICh0eXBlb2Ygc2VsZiAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHJldHVybiBzZWxmO1xuICB9XG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHdpbmRvdztcbiAgfVxuICBpZiAodHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHJldHVybiBnbG9iYWw7XG4gIH1cbiAgdGhyb3cgXCJVbmFibGUgdG8gbG9jYXRlIGdsb2JhbCBvYmplY3RcIjtcbn0pKCk7XG5cbmZ1bmN0aW9uIGJ5dGVzRnJvbUJhc2U2NChiNjQ6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICBpZiAodHNQcm90b0dsb2JhbFRoaXMuQnVmZmVyKSB7XG4gICAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbSh0c1Byb3RvR2xvYmFsVGhpcy5CdWZmZXIuZnJvbShiNjQsIFwiYmFzZTY0XCIpKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBiaW4gPSB0c1Byb3RvR2xvYmFsVGhpcy5hdG9iKGI2NCk7XG4gICAgY29uc3QgYXJyID0gbmV3IFVpbnQ4QXJyYXkoYmluLmxlbmd0aCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBiaW4ubGVuZ3RoOyArK2kpIHtcbiAgICAgIGFycltpXSA9IGJpbi5jaGFyQ29kZUF0KGkpO1xuICAgIH1cbiAgICByZXR1cm4gYXJyO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJhc2U2NEZyb21CeXRlcyhhcnI6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICBpZiAodHNQcm90b0dsb2JhbFRoaXMuQnVmZmVyKSB7XG4gICAgcmV0dXJuIHRzUHJvdG9HbG9iYWxUaGlzLkJ1ZmZlci5mcm9tKGFycikudG9TdHJpbmcoXCJiYXNlNjRcIik7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYmluOiBzdHJpbmdbXSA9IFtdO1xuICAgIGFyci5mb3JFYWNoKChieXRlKSA9PiB7XG4gICAgICBiaW4ucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGJ5dGUpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gdHNQcm90b0dsb2JhbFRoaXMuYnRvYShiaW4uam9pbihcIlwiKSk7XG4gIH1cbn1cblxudHlwZSBCdWlsdGluID0gRGF0ZSB8IEZ1bmN0aW9uIHwgVWludDhBcnJheSB8IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCB0eXBlIERlZXBQYXJ0aWFsPFQ+ID0gVCBleHRlbmRzIEJ1aWx0aW4gPyBUXG4gIDogVCBleHRlbmRzIEFycmF5PGluZmVyIFU+ID8gQXJyYXk8RGVlcFBhcnRpYWw8VT4+IDogVCBleHRlbmRzIFJlYWRvbmx5QXJyYXk8aW5mZXIgVT4gPyBSZWFkb25seUFycmF5PERlZXBQYXJ0aWFsPFU+PlxuICA6IFQgZXh0ZW5kcyB7ICRjYXNlOiBzdHJpbmcgfSA/IHsgW0sgaW4ga2V5b2YgT21pdDxULCBcIiRjYXNlXCI+XT86IERlZXBQYXJ0aWFsPFRbS10+IH0gJiB7ICRjYXNlOiBUW1wiJGNhc2VcIl0gfVxuICA6IFQgZXh0ZW5kcyB7fSA/IHsgW0sgaW4ga2V5b2YgVF0/OiBEZWVwUGFydGlhbDxUW0tdPiB9XG4gIDogUGFydGlhbDxUPjtcblxuZnVuY3Rpb24gbG9uZ1RvTnVtYmVyKGxvbmc6IExvbmcpOiBudW1iZXIge1xuICBpZiAobG9uZy5ndChOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikpIHtcbiAgICB0aHJvdyBuZXcgdHNQcm90b0dsb2JhbFRoaXMuRXJyb3IoXCJWYWx1ZSBpcyBsYXJnZXIgdGhhbiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUlwiKTtcbiAgfVxuICByZXR1cm4gbG9uZy50b051bWJlcigpO1xufVxuXG5pZiAoX20wLnV0aWwuTG9uZyAhPT0gTG9uZykge1xuICBfbTAudXRpbC5Mb25nID0gTG9uZyBhcyBhbnk7XG4gIF9tMC5jb25maWd1cmUoKTtcbn1cblxuZnVuY3Rpb24gaXNTZXQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZDtcbn1cbiJdfQ==
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb3RvLW1vZGVscy9jb20vY29yYWxvZ2l4L3J1bS92Mi9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQixnREFBd0I7QUFDeEIsaUVBQXFDO0FBRXhCLFFBQUEsZUFBZSxHQUFHLHNCQUFzQixDQUFDO0FBUXRELFNBQVMsc0JBQXNCO0lBQzdCLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDaEUsQ0FBQztBQUVZLFFBQUEsWUFBWSxHQUFHO0lBQzFCLE1BQU0sQ0FBQyxPQUFxQixFQUFFLFNBQXFCLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNwRSxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFO1lBQzVCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM3QztRQUNELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7WUFDdEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDaEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZ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QyxNQUFNLEVBQUU7UUFDckIsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDdkQ7U0FBTTtRQUNMLE1BQU0sR0FBRyxHQUFhLEVBQUUsQ0FBQztRQUN6QixHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbkIsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUN0QztBQUNILENBQUM7QUFXRCxTQUFTLFlBQVksQ0FBQyxJQUFVO0lBQzlCLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7UUFDL0MsTUFBTSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztLQUM1RTtJQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ3pCLENBQUM7QUFFRCxJQUFJLGlCQUFHLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxjQUFJLEVBQUU7SUFDMUIsaUJBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQVcsQ0FBQztJQUM1QixpQkFBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO0NBQ2pCO0FBRUQsU0FBUyxLQUFLLENBQUMsS0FBVTtJQUN2QixPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCBMb25nIGZyb20gXCJsb25nXCI7XG5pbXBvcnQgX20wIGZyb20gXCJwcm90b2J1ZmpzL21pbmltYWxcIjtcblxuZXhwb3J0IGNvbnN0IHByb3RvYnVmUGFja2FnZSA9IFwiY29tLmNvcmFsb2dpeC5ydW0udjJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBGaWxlTWV0YWRhdGEge1xuICBjaHVua05hbWU6IHN0cmluZztcbiAgc2l6ZTogbnVtYmVyO1xuICBjb250ZW50OiBVaW50OEFycmF5O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVCYXNlRmlsZU1ldGFkYXRhKCk6IEZpbGVNZXRhZGF0YSB7XG4gIHJldHVybiB7IGNodW5rTmFtZTogXCJcIiwgc2l6ZTogMCwgY29udGVudDogbmV3IFVpbnQ4QXJyYXkoMCkgfTtcbn1cblxuZXhwb3J0IGNvbnN0IEZpbGVNZXRhZGF0YSA9IHtcbiAgZW5jb2RlKG1lc3NhZ2U6IEZpbGVNZXRhZGF0YSwgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLmNodW5rTmFtZSAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxMCkuc3RyaW5nKG1lc3NhZ2UuY2h1bmtOYW1lKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2Uuc2l6ZSAhPT0gMCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigxNikuaW50NjQobWVzc2FnZS5zaXplKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuY29udGVudC5sZW5ndGggIT09IDApIHtcbiAgICAgIHdyaXRlci51aW50MzIoMjYpLmJ5dGVzKG1lc3NhZ2UuY29udGVudCk7XG4gICAgfVxuICAgIHJldHVybiB3cml0ZXI7XG4gIH0sXG5cbiAgZGVjb2RlKGlucHV0OiBfbTAuUmVhZGVyIHwgVWludDhBcnJheSwgbGVuZ3RoPzogbnVtYmVyKTogRmlsZU1ldGFkYXRhIHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUZpbGVNZXRhZGF0YSgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuY2h1bmtOYW1lID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTYpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2Uuc2l6ZSA9IGxvbmdUb051bWJlcihyZWFkZXIuaW50NjQoKSBhcyBMb25nKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGlmICh0YWcgIT09IDI2KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmNvbnRlbnQgPSByZWFkZXIuYnl0ZXMoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICgodGFnICYgNykgPT09IDQgfHwgdGFnID09PSAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmVhZGVyLnNraXBUeXBlKHRhZyAmIDcpO1xuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcblxuICBmcm9tSlNPTihvYmplY3Q6IGFueSk6IEZpbGVNZXRhZGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNodW5rTmFtZTogaXNTZXQob2JqZWN0LmNodW5rTmFtZSkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QuY2h1bmtOYW1lKSA6IFwiXCIsXG4gICAgICBzaXplOiBpc1NldChvYmplY3Quc2l6ZSkgPyBnbG9iYWxUaGlzLk51bWJlcihvYmplY3Quc2l6ZSkgOiAwLFxuICAgICAgY29udGVudDogaXNTZXQob2JqZWN0LmNvbnRlbnQpID8gYnl0ZXNGcm9tQmFzZTY0KG9iamVjdC5jb250ZW50KSA6IG5ldyBVaW50OEFycmF5KDApLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IEZpbGVNZXRhZGF0YSk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgaWYgKG1lc3NhZ2UuY2h1bmtOYW1lICE9PSBcIlwiKSB7XG4gICAgICBvYmouY2h1bmtOYW1lID0gbWVzc2FnZS5jaHVua05hbWU7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnNpemUgIT09IDApIHtcbiAgICAgIG9iai5zaXplID0gTWF0aC5yb3VuZChtZXNzYWdlLnNpemUpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5jb250ZW50Lmxlbmd0aCAhPT0gMCkge1xuICAgICAgb2JqLmNvbnRlbnQgPSBiYXNlNjRGcm9tQnl0ZXMobWVzc2FnZS5jb250ZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfSxcblxuICBjcmVhdGUoYmFzZT86IERlZXBQYXJ0aWFsPEZpbGVNZXRhZGF0YT4pOiBGaWxlTWV0YWRhdGEge1xuICAgIHJldHVybiBGaWxlTWV0YWRhdGEuZnJvbVBhcnRpYWwoYmFzZSA/PyB7fSk7XG4gIH0sXG4gIGZyb21QYXJ0aWFsKG9iamVjdDogRGVlcFBhcnRpYWw8RmlsZU1ldGFkYXRhPik6IEZpbGVNZXRhZGF0YSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VGaWxlTWV0YWRhdGEoKTtcbiAgICBtZXNzYWdlLmNodW5rTmFtZSA9IG9iamVjdC5jaHVua05hbWUgPz8gXCJcIjtcbiAgICBtZXNzYWdlLnNpemUgPSBvYmplY3Quc2l6ZSA/PyAwO1xuICAgIG1lc3NhZ2UuY29udGVudCA9IG9iamVjdC5jb250ZW50ID8/IG5ldyBVaW50OEFycmF5KDApO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZnVuY3Rpb24gYnl0ZXNGcm9tQmFzZTY0KGI2NDogc3RyaW5nKTogVWludDhBcnJheSB7XG4gIGlmIChnbG9iYWxUaGlzLkJ1ZmZlcikge1xuICAgIHJldHVybiBVaW50OEFycmF5LmZyb20oZ2xvYmFsVGhpcy5CdWZmZXIuZnJvbShiNjQsIFwiYmFzZTY0XCIpKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBiaW4gPSBnbG9iYWxUaGlzLmF0b2IoYjY0KTtcbiAgICBjb25zdCBhcnIgPSBuZXcgVWludDhBcnJheShiaW4ubGVuZ3RoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJpbi5sZW5ndGg7ICsraSkge1xuICAgICAgYXJyW2ldID0gYmluLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBhcnI7XG4gIH1cbn1cblxuZnVuY3Rpb24gYmFzZTY0RnJvbUJ5dGVzKGFycjogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIGlmIChnbG9iYWxUaGlzLkJ1ZmZlcikge1xuICAgIHJldHVybiBnbG9iYWxUaGlzLkJ1ZmZlci5mcm9tKGFycikudG9TdHJpbmcoXCJiYXNlNjRcIik7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYmluOiBzdHJpbmdbXSA9IFtdO1xuICAgIGFyci5mb3JFYWNoKChieXRlKSA9PiB7XG4gICAgICBiaW4ucHVzaChnbG9iYWxUaGlzLlN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZSkpO1xuICAgIH0pO1xuICAgIHJldHVybiBnbG9iYWxUaGlzLmJ0b2EoYmluLmpvaW4oXCJcIikpO1xuICB9XG59XG5cbnR5cGUgQnVpbHRpbiA9IERhdGUgfCBGdW5jdGlvbiB8IFVpbnQ4QXJyYXkgfCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgdHlwZSBEZWVwUGFydGlhbDxUPiA9IFQgZXh0ZW5kcyBCdWlsdGluID8gVFxuICA6IFQgZXh0ZW5kcyBnbG9iYWxUaGlzLkFycmF5PGluZmVyIFU+ID8gZ2xvYmFsVGhpcy5BcnJheTxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxpbmZlciBVPiA/IFJlYWRvbmx5QXJyYXk8RGVlcFBhcnRpYWw8VT4+XG4gIDogVCBleHRlbmRzIHsgJGNhc2U6IHN0cmluZyB9ID8geyBbSyBpbiBrZXlvZiBPbWl0PFQsIFwiJGNhc2VcIj5dPzogRGVlcFBhcnRpYWw8VFtLXT4gfSAmIHsgJGNhc2U6IFRbXCIkY2FzZVwiXSB9XG4gIDogVCBleHRlbmRzIHt9ID8geyBbSyBpbiBrZXlvZiBUXT86IERlZXBQYXJ0aWFsPFRbS10+IH1cbiAgOiBQYXJ0aWFsPFQ+O1xuXG5mdW5jdGlvbiBsb25nVG9OdW1iZXIobG9uZzogTG9uZyk6IG51bWJlciB7XG4gIGlmIChsb25nLmd0KGdsb2JhbFRoaXMuTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpKSB7XG4gICAgdGhyb3cgbmV3IGdsb2JhbFRoaXMuRXJyb3IoXCJWYWx1ZSBpcyBsYXJnZXIgdGhhbiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUlwiKTtcbiAgfVxuICByZXR1cm4gbG9uZy50b051bWJlcigpO1xufVxuXG5pZiAoX20wLnV0aWwuTG9uZyAhPT0gTG9uZykge1xuICBfbTAudXRpbC5Mb25nID0gTG9uZyBhcyBhbnk7XG4gIF9tMC5jb25maWd1cmUoKTtcbn1cblxuZnVuY3Rpb24gaXNTZXQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZDtcbn1cbiJdfQ==
@@ -0,0 +1,69 @@
1
+ import _m0 from "protobufjs/minimal";
2
+ import { FileMetadata } from "./file";
3
+ export declare const protobufPackage = "com.coralogix.rum.v2";
4
+ export interface UploadReactNativeSourceMapsRequest {
5
+ application: string;
6
+ releaseId: string;
7
+ commitHash?: string | undefined;
8
+ repoName?: string | undefined;
9
+ user?: string | undefined;
10
+ files: FileMetadata[];
11
+ }
12
+ export interface UploadReactNativeSourceMapsResponse {
13
+ }
14
+ export declare const UploadReactNativeSourceMapsRequest: {
15
+ encode(message: UploadReactNativeSourceMapsRequest, writer?: _m0.Writer): _m0.Writer;
16
+ decode(input: _m0.Reader | Uint8Array, length?: number): UploadReactNativeSourceMapsRequest;
17
+ fromJSON(object: any): UploadReactNativeSourceMapsRequest;
18
+ toJSON(message: UploadReactNativeSourceMapsRequest): unknown;
19
+ create(base?: DeepPartial<UploadReactNativeSourceMapsRequest>): UploadReactNativeSourceMapsRequest;
20
+ fromPartial(object: DeepPartial<UploadReactNativeSourceMapsRequest>): UploadReactNativeSourceMapsRequest;
21
+ };
22
+ export declare const UploadReactNativeSourceMapsResponse: {
23
+ encode(_: UploadReactNativeSourceMapsResponse, writer?: _m0.Writer): _m0.Writer;
24
+ decode(input: _m0.Reader | Uint8Array, length?: number): UploadReactNativeSourceMapsResponse;
25
+ fromJSON(_: any): UploadReactNativeSourceMapsResponse;
26
+ toJSON(_: UploadReactNativeSourceMapsResponse): unknown;
27
+ create(base?: DeepPartial<UploadReactNativeSourceMapsResponse>): UploadReactNativeSourceMapsResponse;
28
+ fromPartial(_: DeepPartial<UploadReactNativeSourceMapsResponse>): UploadReactNativeSourceMapsResponse;
29
+ };
30
+ export type RumReactNativeSourceMapServiceDefinition = typeof RumReactNativeSourceMapServiceDefinition;
31
+ export declare const RumReactNativeSourceMapServiceDefinition: {
32
+ readonly name: "RumReactNativeSourceMapService";
33
+ readonly fullName: "com.coralogix.rum.v2.RumReactNativeSourceMapService";
34
+ readonly methods: {
35
+ readonly uploadReactNativeSourceMaps: {
36
+ readonly name: "UploadReactNativeSourceMaps";
37
+ readonly requestType: {
38
+ encode(message: UploadReactNativeSourceMapsRequest, writer?: _m0.Writer): _m0.Writer;
39
+ decode(input: _m0.Reader | Uint8Array, length?: number): UploadReactNativeSourceMapsRequest;
40
+ fromJSON(object: any): UploadReactNativeSourceMapsRequest;
41
+ toJSON(message: UploadReactNativeSourceMapsRequest): unknown;
42
+ create(base?: DeepPartial<UploadReactNativeSourceMapsRequest>): UploadReactNativeSourceMapsRequest;
43
+ fromPartial(object: DeepPartial<UploadReactNativeSourceMapsRequest>): UploadReactNativeSourceMapsRequest;
44
+ };
45
+ readonly requestStream: false;
46
+ readonly responseType: {
47
+ encode(_: UploadReactNativeSourceMapsResponse, writer?: _m0.Writer): _m0.Writer;
48
+ decode(input: _m0.Reader | Uint8Array, length?: number): UploadReactNativeSourceMapsResponse;
49
+ fromJSON(_: any): UploadReactNativeSourceMapsResponse;
50
+ toJSON(_: UploadReactNativeSourceMapsResponse): unknown;
51
+ create(base?: DeepPartial<UploadReactNativeSourceMapsResponse>): UploadReactNativeSourceMapsResponse;
52
+ fromPartial(_: DeepPartial<UploadReactNativeSourceMapsResponse>): UploadReactNativeSourceMapsResponse;
53
+ };
54
+ readonly responseStream: false;
55
+ readonly options: {};
56
+ };
57
+ };
58
+ };
59
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
60
+ export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {
61
+ $case: string;
62
+ } ? {
63
+ [K in keyof Omit<T, "$case">]?: DeepPartial<T[K]>;
64
+ } & {
65
+ $case: T["$case"];
66
+ } : T extends {} ? {
67
+ [K in keyof T]?: DeepPartial<T[K]>;
68
+ } : Partial<T>;
69
+ export {};