@coralogix/rum-cli 1.1.26 → 1.1.28

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 (77) hide show
  1. package/README.md +86 -75
  2. package/api/client/request-builder.ts +40 -57
  3. package/api/dsym.api.ts +16 -13
  4. package/api/proguard.api.ts +64 -0
  5. package/api/react-native.api.ts +8 -14
  6. package/api/source-maps.api.ts +7 -13
  7. package/cli/commands/proguard/index.ts +5 -0
  8. package/cli/commands/proguard/upload-proguard-command.ts +36 -0
  9. package/cli/rum-cli.ts +5 -0
  10. package/config/config.ts +2 -0
  11. package/consts/consts.ts +0 -1
  12. package/dist/api/client/client-factory.d.ts +40 -0
  13. package/dist/api/client/request-builder.d.ts +27 -11
  14. package/dist/api/client/request-builder.js +15 -21
  15. package/dist/api/dsym.api.d.ts +1 -1
  16. package/dist/api/dsym.api.js +9 -7
  17. package/dist/api/proguard.api.d.ts +4 -0
  18. package/dist/api/proguard.api.js +52 -0
  19. package/dist/api/react-native.api.js +5 -4
  20. package/dist/api/source-maps.api.js +5 -4
  21. package/dist/cli/commands/proguard/index.d.ts +4 -0
  22. package/dist/cli/commands/proguard/index.js +6 -0
  23. package/dist/cli/commands/proguard/upload-proguard-command.d.ts +2 -0
  24. package/dist/cli/commands/proguard/upload-proguard-command.js +45 -0
  25. package/dist/cli/rum-cli.js +4 -1
  26. package/dist/config/config.d.ts +1 -0
  27. package/dist/config/config.js +2 -1
  28. package/dist/consts/consts.js +2 -3
  29. package/dist/models/proguard-commands.model.d.ts +11 -0
  30. package/dist/models/proguard-commands.model.js +3 -0
  31. package/dist/proto-models/com/coralogix/blobset/v2/entity_metadata.d.ts +18 -0
  32. package/dist/proto-models/com/coralogix/blobset/v2/entity_metadata.js +139 -5
  33. package/dist/proto-models/com/coralogix/blobset/v2/entity_type.d.ts +2 -1
  34. package/dist/proto-models/com/coralogix/blobset/v2/entity_type.js +7 -1
  35. package/dist/proto-models/com/coralogix/rum/v2/release_entity_metadata.d.ts +18 -0
  36. package/dist/proto-models/com/coralogix/rum/v2/release_entity_metadata.js +139 -5
  37. package/dist/proto-models/com/coralogix/rum/v2/release_entity_type.d.ts +2 -1
  38. package/dist/proto-models/com/coralogix/rum/v2/release_entity_type.js +7 -1
  39. package/dist/proto-models/com/coralogix/rum/v2/rum_sdk_versions.d.ts +1 -0
  40. package/dist/proto-models/com/coralogix/rum/v2/rum_sdk_versions.js +17 -3
  41. package/dist/proto-models/com/coralogix/rum/v2/rum_service.d.ts +93 -0
  42. package/dist/proto-models/com/coralogix/rum/v2/rum_service.js +300 -4
  43. package/dist/proto-models/com/coralogix/rum/v2/rum_settings_service.d.ts +9 -8
  44. package/dist/proto-models/com/coralogix/rum/v2/rum_settings_service.js +22 -7
  45. package/dist/services/dsym.service.d.ts +1 -1
  46. package/dist/services/dsym.service.js +3 -3
  47. package/dist/services/proguard.service.d.ts +3 -0
  48. package/dist/services/proguard.service.js +36 -0
  49. package/dist/services/react-native.service.js +2 -2
  50. package/dist/services/source-maps.service.js +2 -2
  51. package/dist/utils/file-processor.utils.d.ts +5 -8
  52. package/dist/utils/file-processor.utils.js +222 -60
  53. package/mapping.txt +160886 -0
  54. package/models/proguard-commands.model.ts +11 -0
  55. package/package.json +2 -3
  56. package/proto-models/com/coralogix/blobset/v2/entity_metadata.ts +160 -4
  57. package/proto-models/com/coralogix/blobset/v2/entity_type.ts +6 -0
  58. package/proto-models/com/coralogix/rum/v2/release_entity_metadata.ts +156 -0
  59. package/proto-models/com/coralogix/rum/v2/release_entity_type.ts +6 -0
  60. package/proto-models/com/coralogix/rum/v2/rum_sdk_versions.ts +17 -1
  61. package/proto-models/com/coralogix/rum/v2/rum_service.ts +347 -1
  62. package/proto-models/com/coralogix/rum/v2/rum_settings_service.ts +23 -6
  63. package/protofetch.lock +4 -4
  64. package/protofetch.toml +3 -3
  65. package/protos/com/coralogix/blobset/v2/entity_metadata.proto +9 -0
  66. package/protos/com/coralogix/blobset/v2/entity_type.proto +1 -0
  67. package/protos/com/coralogix/rum/v2/release_entity_metadata.proto +9 -0
  68. package/protos/com/coralogix/rum/v2/release_entity_type.proto +1 -0
  69. package/protos/com/coralogix/rum/v2/rum_sdk_versions.proto +1 -0
  70. package/protos/com/coralogix/rum/v2/rum_service.proto +23 -0
  71. package/protos/com/coralogix/rum/v2/rum_settings_service.proto +3 -1
  72. package/protoset.bin +0 -0
  73. package/services/dsym.service.ts +2 -2
  74. package/services/proguard.service.ts +33 -0
  75. package/services/react-native.service.ts +1 -1
  76. package/services/source-maps.service.ts +1 -1
  77. package/utils/file-processor.utils.ts +224 -70
@@ -12,7 +12,6 @@ exports.envToDomain = {
12
12
  US1: 'https://ng-api-grpc.coralogix.us:443',
13
13
  US2: 'https://ng-api-grpc.cx498.coralogix.com:443',
14
14
  AP1: 'https://ng-api-grpc.app.coralogix.in:443',
15
- AP2: 'https://ng-api-grpc.coralogixsg.com:443',
16
- STAGING: 'https://ng-api-grpc.staging.coralogix.net:443'
15
+ AP2: 'https://ng-api-grpc.coralogixsg.com:443', // ap-southeast-1 (Singapore)
17
16
  };
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vY29uc3RzL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBRWpCLFFBQUEsV0FBVyxHQUFHLG1CQUFtQixDQUFDO0FBRWxDLFFBQUEsU0FBUyxHQUFHLG1CQUFtQixDQUFDO0FBRWhDLFFBQUEsVUFBVSxHQUFHLG1CQUFtQixDQUFDO0FBRWpDLFFBQUEsaUJBQWlCLEdBQVcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxRQUFRO0FBRXRELFFBQUEsV0FBVyxHQUEyQjtJQUNqRCxHQUFHLEVBQUUsdUNBQXVDO0lBQzVDLEdBQUcsRUFBRSwyQ0FBMkM7SUFDaEQsR0FBRyxFQUFFLHNDQUFzQztJQUMzQyxHQUFHLEVBQUUsNkNBQTZDO0lBQ2xELEdBQUcsRUFBRSwwQ0FBMEM7SUFDL0MsR0FBRyxFQUFFLHlDQUF5QztJQUM5QyxPQUFPLEVBQUUsK0NBQStDO0NBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgTUIgPSAxMDI0ICogMTAyNDtcblxuZXhwb3J0IGNvbnN0IEdSRUVOX0NPTE9SID0gJ1xceDFiWzMybSVzXFx4MWJbMG0nO1xuXG5leHBvcnQgY29uc3QgUkVEX0NPTE9SID0gJ1xceDFiWzMxbSVzXFx4MWJbMG0nO1xuXG5leHBvcnQgY29uc3QgR1JBWV9DT0xPUiA9ICdcXHgxYlszN20lc1xceDFiWzBtJztcblxuZXhwb3J0IGNvbnN0IFNUUkVBTV9DSFVOS19TSVpFOiBudW1iZXIgPSAxMCAqIDEwMjQgKiAxMDI0OyAvLyAxMCBNQlxuXG5leHBvcnQgY29uc3QgZW52VG9Eb21haW46IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIEVVMTogJ2h0dHBzOi8vbmctYXBpLWdycGMuY29yYWxvZ2l4LmNvbTo0NDMnLCAvLyBldS13ZXN0LTEgKElyZWxhbmQpXG4gIEVVMjogJ2h0dHBzOi8vbmctYXBpLWdycGMuZXUyLmNvcmFsb2dpeC5jb206NDQzJywgLy8gZXUtbm9ydGgtMSAoU3RvY2tob2xtKVxuICBVUzE6ICdodHRwczovL25nLWFwaS1ncnBjLmNvcmFsb2dpeC51czo0NDMnLCAvLyB1cy1lYXN0LTIgKE9oaW8pXG4gIFVTMjogJ2h0dHBzOi8vbmctYXBpLWdycGMuY3g0OTguY29yYWxvZ2l4LmNvbTo0NDMnLCAvLyB1cy13ZXN0LTIgKE9yZWdvbilcbiAgQVAxOiAnaHR0cHM6Ly9uZy1hcGktZ3JwYy5hcHAuY29yYWxvZ2l4LmluOjQ0MycsIC8vIGFwLXNvdXRoLTEgKE11bWJhaSlcbiAgQVAyOiAnaHR0cHM6Ly9uZy1hcGktZ3JwYy5jb3JhbG9naXhzZy5jb206NDQzJywgLy8gYXAtc291dGhlYXN0LTEgKFNpbmdhcG9yZSlcbiAgU1RBR0lORzogJ2h0dHBzOi8vbmctYXBpLWdycGMuc3RhZ2luZy5jb3JhbG9naXgubmV0OjQ0Mydcbn07XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vY29uc3RzL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBRWpCLFFBQUEsV0FBVyxHQUFHLG1CQUFtQixDQUFDO0FBRWxDLFFBQUEsU0FBUyxHQUFHLG1CQUFtQixDQUFDO0FBRWhDLFFBQUEsVUFBVSxHQUFHLG1CQUFtQixDQUFDO0FBRWpDLFFBQUEsaUJBQWlCLEdBQVcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxRQUFRO0FBRXRELFFBQUEsV0FBVyxHQUEyQjtJQUNqRCxHQUFHLEVBQUUsdUNBQXVDO0lBQzVDLEdBQUcsRUFBRSwyQ0FBMkM7SUFDaEQsR0FBRyxFQUFFLHNDQUFzQztJQUMzQyxHQUFHLEVBQUUsNkNBQTZDO0lBQ2xELEdBQUcsRUFBRSwwQ0FBMEM7SUFDL0MsR0FBRyxFQUFFLHlDQUF5QyxFQUFFLDZCQUE2QjtDQUM5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE1CID0gMTAyNCAqIDEwMjQ7XG5cbmV4cG9ydCBjb25zdCBHUkVFTl9DT0xPUiA9ICdcXHgxYlszMm0lc1xceDFiWzBtJztcblxuZXhwb3J0IGNvbnN0IFJFRF9DT0xPUiA9ICdcXHgxYlszMW0lc1xceDFiWzBtJztcblxuZXhwb3J0IGNvbnN0IEdSQVlfQ09MT1IgPSAnXFx4MWJbMzdtJXNcXHgxYlswbSc7XG5cbmV4cG9ydCBjb25zdCBTVFJFQU1fQ0hVTktfU0laRTogbnVtYmVyID0gMTAgKiAxMDI0ICogMTAyNDsgLy8gMTAgTUJcblxuZXhwb3J0IGNvbnN0IGVudlRvRG9tYWluOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBFVTE6ICdodHRwczovL25nLWFwaS1ncnBjLmNvcmFsb2dpeC5jb206NDQzJywgLy8gZXUtd2VzdC0xIChJcmVsYW5kKVxuICBFVTI6ICdodHRwczovL25nLWFwaS1ncnBjLmV1Mi5jb3JhbG9naXguY29tOjQ0MycsIC8vIGV1LW5vcnRoLTEgKFN0b2NraG9sbSlcbiAgVVMxOiAnaHR0cHM6Ly9uZy1hcGktZ3JwYy5jb3JhbG9naXgudXM6NDQzJywgLy8gdXMtZWFzdC0yIChPaGlvKVxuICBVUzI6ICdodHRwczovL25nLWFwaS1ncnBjLmN4NDk4LmNvcmFsb2dpeC5jb206NDQzJywgLy8gdXMtd2VzdC0yIChPcmVnb24pXG4gIEFQMTogJ2h0dHBzOi8vbmctYXBpLWdycGMuYXBwLmNvcmFsb2dpeC5pbjo0NDMnLCAvLyBhcC1zb3V0aC0xIChNdW1iYWkpXG4gIEFQMjogJ2h0dHBzOi8vbmctYXBpLWdycGMuY29yYWxvZ2l4c2cuY29tOjQ0MycsIC8vIGFwLXNvdXRoZWFzdC0xIChTaW5nYXBvcmUpXG59O1xuIl19
@@ -0,0 +1,11 @@
1
+ export interface UploadProguardCommandOptions {
2
+ privateKey: string;
3
+ application: string;
4
+ version: string;
5
+ folderPath: string;
6
+ commitHash?: string;
7
+ repoName?: string;
8
+ orgName?: string;
9
+ env: string;
10
+ help?: string;
11
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3VhcmQtY29tbWFuZHMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9tb2RlbHMvcHJvZ3VhcmQtY29tbWFuZHMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkUHJvZ3VhcmRDb21tYW5kT3B0aW9ucyB7XG4gIHByaXZhdGVLZXk6IHN0cmluZztcbiAgYXBwbGljYXRpb246IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBmb2xkZXJQYXRoOiBzdHJpbmc7XG4gIGNvbW1pdEhhc2g/OiBzdHJpbmc7XG4gIHJlcG9OYW1lPzogc3RyaW5nO1xuICBvcmdOYW1lPzogc3RyaW5nO1xuICBlbnY6IHN0cmluZztcbiAgaGVscD86IHN0cmluZztcbn1cbiJdfQ==
@@ -7,6 +7,13 @@ export interface DsymMetadata {
7
7
  repoName?: string | undefined;
8
8
  orgName?: string | undefined;
9
9
  }
10
+ export interface ProguardMetadata {
11
+ application: string;
12
+ releaseId: string;
13
+ commitHash?: string | undefined;
14
+ repoName?: string | undefined;
15
+ orgName?: string | undefined;
16
+ }
10
17
  export interface SourceMapMetadata {
11
18
  application: string;
12
19
  releaseId: string;
@@ -21,6 +28,9 @@ export interface EntityMetadata {
21
28
  } | {
22
29
  $case: "sourceMapMetadata";
23
30
  sourceMapMetadata: SourceMapMetadata;
31
+ } | {
32
+ $case: "proguardMetadata";
33
+ proguardMetadata: ProguardMetadata;
24
34
  } | undefined;
25
35
  }
26
36
  export declare const DsymMetadata: {
@@ -31,6 +41,14 @@ export declare const DsymMetadata: {
31
41
  create(base?: DeepPartial<DsymMetadata>): DsymMetadata;
32
42
  fromPartial(object: DeepPartial<DsymMetadata>): DsymMetadata;
33
43
  };
44
+ export declare const ProguardMetadata: {
45
+ encode(message: ProguardMetadata, writer?: _m0.Writer): _m0.Writer;
46
+ decode(input: _m0.Reader | Uint8Array, length?: number): ProguardMetadata;
47
+ fromJSON(object: any): ProguardMetadata;
48
+ toJSON(message: ProguardMetadata): unknown;
49
+ create(base?: DeepPartial<ProguardMetadata>): ProguardMetadata;
50
+ fromPartial(object: DeepPartial<ProguardMetadata>): ProguardMetadata;
51
+ };
34
52
  export declare const SourceMapMetadata: {
35
53
  encode(message: SourceMapMetadata, writer?: _m0.Writer): _m0.Writer;
36
54
  decode(input: _m0.Reader | Uint8Array, length?: number): SourceMapMetadata;
@@ -8,7 +8,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
8
8
  return (mod && mod.__esModule) ? mod : { "default": mod };
9
9
  };
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.EntityMetadata = exports.SourceMapMetadata = exports.DsymMetadata = exports.protobufPackage = void 0;
11
+ exports.EntityMetadata = exports.SourceMapMetadata = exports.ProguardMetadata = exports.DsymMetadata = exports.protobufPackage = void 0;
12
12
  /* eslint-disable */
13
13
  const minimal_1 = __importDefault(require("protobufjs/minimal"));
14
14
  exports.protobufPackage = "com.coralogix.blobset.v2";
@@ -121,6 +121,115 @@ exports.DsymMetadata = {
121
121
  return message;
122
122
  },
123
123
  };
124
+ function createBaseProguardMetadata() {
125
+ return { application: "", releaseId: "", commitHash: undefined, repoName: undefined, orgName: undefined };
126
+ }
127
+ exports.ProguardMetadata = {
128
+ encode(message, writer = minimal_1.default.Writer.create()) {
129
+ if (message.application !== "") {
130
+ writer.uint32(10).string(message.application);
131
+ }
132
+ if (message.releaseId !== "") {
133
+ writer.uint32(18).string(message.releaseId);
134
+ }
135
+ if (message.commitHash !== undefined) {
136
+ writer.uint32(26).string(message.commitHash);
137
+ }
138
+ if (message.repoName !== undefined) {
139
+ writer.uint32(34).string(message.repoName);
140
+ }
141
+ if (message.orgName !== undefined) {
142
+ writer.uint32(42).string(message.orgName);
143
+ }
144
+ return writer;
145
+ },
146
+ decode(input, length) {
147
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
148
+ let end = length === undefined ? reader.len : reader.pos + length;
149
+ const message = createBaseProguardMetadata();
150
+ while (reader.pos < end) {
151
+ const tag = reader.uint32();
152
+ switch (tag >>> 3) {
153
+ case 1:
154
+ if (tag !== 10) {
155
+ break;
156
+ }
157
+ message.application = reader.string();
158
+ continue;
159
+ case 2:
160
+ if (tag !== 18) {
161
+ break;
162
+ }
163
+ message.releaseId = reader.string();
164
+ continue;
165
+ case 3:
166
+ if (tag !== 26) {
167
+ break;
168
+ }
169
+ message.commitHash = reader.string();
170
+ continue;
171
+ case 4:
172
+ if (tag !== 34) {
173
+ break;
174
+ }
175
+ message.repoName = reader.string();
176
+ continue;
177
+ case 5:
178
+ if (tag !== 42) {
179
+ break;
180
+ }
181
+ message.orgName = reader.string();
182
+ continue;
183
+ }
184
+ if ((tag & 7) === 4 || tag === 0) {
185
+ break;
186
+ }
187
+ reader.skipType(tag & 7);
188
+ }
189
+ return message;
190
+ },
191
+ fromJSON(object) {
192
+ return {
193
+ application: isSet(object.application) ? globalThis.String(object.application) : "",
194
+ releaseId: isSet(object.releaseId) ? globalThis.String(object.releaseId) : "",
195
+ commitHash: isSet(object.commitHash) ? globalThis.String(object.commitHash) : undefined,
196
+ repoName: isSet(object.repoName) ? globalThis.String(object.repoName) : undefined,
197
+ orgName: isSet(object.orgName) ? globalThis.String(object.orgName) : undefined,
198
+ };
199
+ },
200
+ toJSON(message) {
201
+ const obj = {};
202
+ if (message.application !== "") {
203
+ obj.application = message.application;
204
+ }
205
+ if (message.releaseId !== "") {
206
+ obj.releaseId = message.releaseId;
207
+ }
208
+ if (message.commitHash !== undefined) {
209
+ obj.commitHash = message.commitHash;
210
+ }
211
+ if (message.repoName !== undefined) {
212
+ obj.repoName = message.repoName;
213
+ }
214
+ if (message.orgName !== undefined) {
215
+ obj.orgName = message.orgName;
216
+ }
217
+ return obj;
218
+ },
219
+ create(base) {
220
+ return exports.ProguardMetadata.fromPartial(base !== null && base !== void 0 ? base : {});
221
+ },
222
+ fromPartial(object) {
223
+ var _a, _b, _c, _d, _e;
224
+ const message = createBaseProguardMetadata();
225
+ message.application = (_a = object.application) !== null && _a !== void 0 ? _a : "";
226
+ message.releaseId = (_b = object.releaseId) !== null && _b !== void 0 ? _b : "";
227
+ message.commitHash = (_c = object.commitHash) !== null && _c !== void 0 ? _c : undefined;
228
+ message.repoName = (_d = object.repoName) !== null && _d !== void 0 ? _d : undefined;
229
+ message.orgName = (_e = object.orgName) !== null && _e !== void 0 ? _e : undefined;
230
+ return message;
231
+ },
232
+ };
124
233
  function createBaseSourceMapMetadata() {
125
234
  return { application: "", releaseId: "", commitHash: undefined, repoName: undefined, orgName: undefined };
126
235
  }
@@ -243,6 +352,9 @@ exports.EntityMetadata = {
243
352
  case "sourceMapMetadata":
244
353
  exports.SourceMapMetadata.encode(message.metadata.sourceMapMetadata, writer.uint32(18).fork()).ldelim();
245
354
  break;
355
+ case "proguardMetadata":
356
+ exports.ProguardMetadata.encode(message.metadata.proguardMetadata, writer.uint32(26).fork()).ldelim();
357
+ break;
246
358
  }
247
359
  return writer;
248
360
  },
@@ -268,6 +380,15 @@ exports.EntityMetadata = {
268
380
  sourceMapMetadata: exports.SourceMapMetadata.decode(reader, reader.uint32()),
269
381
  };
270
382
  continue;
383
+ case 3:
384
+ if (tag !== 26) {
385
+ break;
386
+ }
387
+ message.metadata = {
388
+ $case: "proguardMetadata",
389
+ proguardMetadata: exports.ProguardMetadata.decode(reader, reader.uint32()),
390
+ };
391
+ continue;
271
392
  }
272
393
  if ((tag & 7) === 4 || tag === 0) {
273
394
  break;
@@ -282,11 +403,13 @@ exports.EntityMetadata = {
282
403
  ? { $case: "dsymMetadata", dsymMetadata: exports.DsymMetadata.fromJSON(object.dsymMetadata) }
283
404
  : isSet(object.sourceMapMetadata)
284
405
  ? { $case: "sourceMapMetadata", sourceMapMetadata: exports.SourceMapMetadata.fromJSON(object.sourceMapMetadata) }
285
- : undefined,
406
+ : isSet(object.proguardMetadata)
407
+ ? { $case: "proguardMetadata", proguardMetadata: exports.ProguardMetadata.fromJSON(object.proguardMetadata) }
408
+ : undefined,
286
409
  };
287
410
  },
288
411
  toJSON(message) {
289
- var _a, _b;
412
+ var _a, _b, _c;
290
413
  const obj = {};
291
414
  if (((_a = message.metadata) === null || _a === void 0 ? void 0 : _a.$case) === "dsymMetadata") {
292
415
  obj.dsymMetadata = exports.DsymMetadata.toJSON(message.metadata.dsymMetadata);
@@ -294,13 +417,16 @@ exports.EntityMetadata = {
294
417
  if (((_b = message.metadata) === null || _b === void 0 ? void 0 : _b.$case) === "sourceMapMetadata") {
295
418
  obj.sourceMapMetadata = exports.SourceMapMetadata.toJSON(message.metadata.sourceMapMetadata);
296
419
  }
420
+ if (((_c = message.metadata) === null || _c === void 0 ? void 0 : _c.$case) === "proguardMetadata") {
421
+ obj.proguardMetadata = exports.ProguardMetadata.toJSON(message.metadata.proguardMetadata);
422
+ }
297
423
  return obj;
298
424
  },
299
425
  create(base) {
300
426
  return exports.EntityMetadata.fromPartial(base !== null && base !== void 0 ? base : {});
301
427
  },
302
428
  fromPartial(object) {
303
- var _a, _b, _c, _d, _e, _f;
429
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
304
430
  const message = createBaseEntityMetadata();
305
431
  if (((_a = object.metadata) === null || _a === void 0 ? void 0 : _a.$case) === "dsymMetadata" &&
306
432
  ((_b = object.metadata) === null || _b === void 0 ? void 0 : _b.dsymMetadata) !== undefined &&
@@ -318,10 +444,18 @@ exports.EntityMetadata = {
318
444
  sourceMapMetadata: exports.SourceMapMetadata.fromPartial(object.metadata.sourceMapMetadata),
319
445
  };
320
446
  }
447
+ if (((_g = object.metadata) === null || _g === void 0 ? void 0 : _g.$case) === "proguardMetadata" &&
448
+ ((_h = object.metadata) === null || _h === void 0 ? void 0 : _h.proguardMetadata) !== undefined &&
449
+ ((_j = object.metadata) === null || _j === void 0 ? void 0 : _j.proguardMetadata) !== null) {
450
+ message.metadata = {
451
+ $case: "proguardMetadata",
452
+ proguardMetadata: exports.ProguardMetadata.fromPartial(object.metadata.proguardMetadata),
453
+ };
454
+ }
321
455
  return message;
322
456
  },
323
457
  };
324
458
  function isSet(value) {
325
459
  return value !== null && value !== undefined;
326
460
  }
327
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5X21ldGFkYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvdG8tbW9kZWxzL2NvbS9jb3JhbG9naXgvYmxvYnNldC92Mi9lbnRpdHlfbWV0YWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHNEQUFzRDtBQUN0RCxZQUFZO0FBQ1osa0NBQWtDO0FBQ2xDLGlDQUFpQztBQUNqQyx5REFBeUQ7Ozs7OztBQUV6RCxvQkFBb0I7QUFDcEIsaUVBQXFDO0FBRXhCLFFBQUEsZUFBZSxHQUFHLDBCQUEwQixDQUFDO0FBeUIxRCxTQUFTLHNCQUFzQjtJQUM3QixPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDNUcsQ0FBQztBQUVZLFFBQUEsWUFBWSxHQUFHO0lBQzFCLE1BQU0sQ0FBQyxPQUFxQixFQUFFLFNBQXFCLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNwRSxJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssRUFBRSxFQUFFO1lBQzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMvQztRQUNELElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNwQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDOUM7UUFD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QUMsUUFBUSwwQ0FBRSxLQUFLLE1BQUssbUJBQW1CO1lBQzlDLENBQUEsTUFBQSxNQUFNLENBQUMsUUFBUSwwQ0FBRSxpQkFBaUIsTUFBSyxTQUFTO1lBQ2hELENBQUEsTUFBQSxNQUFNLENBQUMsUUFBUSwwQ0FBRSxpQkFBaUIsTUFBSyxJQUFJLEVBQzNDO1lBQ0EsT0FBTyxDQUFDLFFBQVEsR0FBRztnQkFDakIsS0FBSyxFQUFFLG1CQUFtQjtnQkFDMUIsaUJBQWlCLEVBQUUseUJBQWlCLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUM7YUFDcEYsQ0FBQztTQUNIO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFXRixTQUFTLEtBQUssQ0FBQyxLQUFVO0lBQ3ZCLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb2RlIGdlbmVyYXRlZCBieSBwcm90b2MtZ2VuLXRzX3Byb3RvLiBETyBOT1QgRURJVC5cbi8vIHZlcnNpb25zOlxuLy8gICBwcm90b2MtZ2VuLXRzX3Byb3RvICB2MS4xODEuMVxuLy8gICBwcm90b2MgICAgICAgICAgICAgICB2My4xOS4xXG4vLyBzb3VyY2U6IGNvbS9jb3JhbG9naXgvYmxvYnNldC92Mi9lbnRpdHlfbWV0YWRhdGEucHJvdG9cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCBfbTAgZnJvbSBcInByb3RvYnVmanMvbWluaW1hbFwiO1xuXG5leHBvcnQgY29uc3QgcHJvdG9idWZQYWNrYWdlID0gXCJjb20uY29yYWxvZ2l4LmJsb2JzZXQudjJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBEc3ltTWV0YWRhdGEge1xuICBhcHBsaWNhdGlvbjogc3RyaW5nO1xuICByZWxlYXNlSWQ6IHN0cmluZztcbiAgY29tbWl0SGFzaD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcmVwb05hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIG9yZ05hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlTWFwTWV0YWRhdGEge1xuICBhcHBsaWNhdGlvbjogc3RyaW5nO1xuICByZWxlYXNlSWQ6IHN0cmluZztcbiAgY29tbWl0SGFzaD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcmVwb05hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIG9yZ05hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5TWV0YWRhdGEge1xuICBtZXRhZGF0YT86IHsgJGNhc2U6IFwiZHN5bU1ldGFkYXRhXCI7IGRzeW1NZXRhZGF0YTogRHN5bU1ldGFkYXRhIH0gfCB7XG4gICAgJGNhc2U6IFwic291cmNlTWFwTWV0YWRhdGFcIjtcbiAgICBzb3VyY2VNYXBNZXRhZGF0YTogU291cmNlTWFwTWV0YWRhdGE7XG4gIH0gfCB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VEc3ltTWV0YWRhdGEoKTogRHN5bU1ldGFkYXRhIHtcbiAgcmV0dXJuIHsgYXBwbGljYXRpb246IFwiXCIsIHJlbGVhc2VJZDogXCJcIiwgY29tbWl0SGFzaDogdW5kZWZpbmVkLCByZXBvTmFtZTogdW5kZWZpbmVkLCBvcmdOYW1lOiB1bmRlZmluZWQgfTtcbn1cblxuZXhwb3J0IGNvbnN0IERzeW1NZXRhZGF0YSA9IHtcbiAgZW5jb2RlKG1lc3NhZ2U6IERzeW1NZXRhZGF0YSwgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLmFwcGxpY2F0aW9uICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDEwKS5zdHJpbmcobWVzc2FnZS5hcHBsaWNhdGlvbik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlbGVhc2VJZCAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxOCkuc3RyaW5nKG1lc3NhZ2UucmVsZWFzZUlkKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuY29tbWl0SGFzaCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3cml0ZXIudWludDMyKDI2KS5zdHJpbmcobWVzc2FnZS5jb21taXRIYXNoKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVwb05hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigzNCkuc3RyaW5nKG1lc3NhZ2UucmVwb05hbWUpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5vcmdOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoNDIpLnN0cmluZyhtZXNzYWdlLm9yZ05hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IERzeW1NZXRhZGF0YSB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VEc3ltTWV0YWRhdGEoKTtcbiAgICB3aGlsZSAocmVhZGVyLnBvcyA8IGVuZCkge1xuICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGlmICh0YWcgIT09IDEwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmFwcGxpY2F0aW9uID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTgpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UucmVsZWFzZUlkID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMjYpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuY29tbWl0SGFzaCA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIGlmICh0YWcgIT09IDM0KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLnJlcG9OYW1lID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gNDIpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2Uub3JnTmFtZSA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICgodGFnICYgNykgPT09IDQgfHwgdGFnID09PSAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmVhZGVyLnNraXBUeXBlKHRhZyAmIDcpO1xuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcblxuICBmcm9tSlNPTihvYmplY3Q6IGFueSk6IERzeW1NZXRhZGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFwcGxpY2F0aW9uOiBpc1NldChvYmplY3QuYXBwbGljYXRpb24pID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LmFwcGxpY2F0aW9uKSA6IFwiXCIsXG4gICAgICByZWxlYXNlSWQ6IGlzU2V0KG9iamVjdC5yZWxlYXNlSWQpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LnJlbGVhc2VJZCkgOiBcIlwiLFxuICAgICAgY29tbWl0SGFzaDogaXNTZXQob2JqZWN0LmNvbW1pdEhhc2gpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LmNvbW1pdEhhc2gpIDogdW5kZWZpbmVkLFxuICAgICAgcmVwb05hbWU6IGlzU2V0KG9iamVjdC5yZXBvTmFtZSkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QucmVwb05hbWUpIDogdW5kZWZpbmVkLFxuICAgICAgb3JnTmFtZTogaXNTZXQob2JqZWN0Lm9yZ05hbWUpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0Lm9yZ05hbWUpIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IERzeW1NZXRhZGF0YSk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgaWYgKG1lc3NhZ2UuYXBwbGljYXRpb24gIT09IFwiXCIpIHtcbiAgICAgIG9iai5hcHBsaWNhdGlvbiA9IG1lc3NhZ2UuYXBwbGljYXRpb247XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlbGVhc2VJZCAhPT0gXCJcIikge1xuICAgICAgb2JqLnJlbGVhc2VJZCA9IG1lc3NhZ2UucmVsZWFzZUlkO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5jb21taXRIYXNoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai5jb21taXRIYXNoID0gbWVzc2FnZS5jb21taXRIYXNoO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZXBvTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvYmoucmVwb05hbWUgPSBtZXNzYWdlLnJlcG9OYW1lO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5vcmdOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai5vcmdOYW1lID0gbWVzc2FnZS5vcmdOYW1lO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8RHN5bU1ldGFkYXRhPik6IERzeW1NZXRhZGF0YSB7XG4gICAgcmV0dXJuIERzeW1NZXRhZGF0YS5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxEc3ltTWV0YWRhdGE+KTogRHN5bU1ldGFkYXRhIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZURzeW1NZXRhZGF0YSgpO1xuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBvYmplY3QuYXBwbGljYXRpb24gPz8gXCJcIjtcbiAgICBtZXNzYWdlLnJlbGVhc2VJZCA9IG9iamVjdC5yZWxlYXNlSWQgPz8gXCJcIjtcbiAgICBtZXNzYWdlLmNvbW1pdEhhc2ggPSBvYmplY3QuY29tbWl0SGFzaCA/PyB1bmRlZmluZWQ7XG4gICAgbWVzc2FnZS5yZXBvTmFtZSA9IG9iamVjdC5yZXBvTmFtZSA/PyB1bmRlZmluZWQ7XG4gICAgbWVzc2FnZS5vcmdOYW1lID0gb2JqZWN0Lm9yZ05hbWUgPz8gdW5kZWZpbmVkO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZnVuY3Rpb24gY3JlYXRlQmFzZVNvdXJjZU1hcE1ldGFkYXRhKCk6IFNvdXJjZU1hcE1ldGFkYXRhIHtcbiAgcmV0dXJuIHsgYXBwbGljYXRpb246IFwiXCIsIHJlbGVhc2VJZDogXCJcIiwgY29tbWl0SGFzaDogdW5kZWZpbmVkLCByZXBvTmFtZTogdW5kZWZpbmVkLCBvcmdOYW1lOiB1bmRlZmluZWQgfTtcbn1cblxuZXhwb3J0IGNvbnN0IFNvdXJjZU1hcE1ldGFkYXRhID0ge1xuICBlbmNvZGUobWVzc2FnZTogU291cmNlTWFwTWV0YWRhdGEsIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICBpZiAobWVzc2FnZS5hcHBsaWNhdGlvbiAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxMCkuc3RyaW5nKG1lc3NhZ2UuYXBwbGljYXRpb24pO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZWxlYXNlSWQgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTgpLnN0cmluZyhtZXNzYWdlLnJlbGVhc2VJZCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmNvbW1pdEhhc2ggIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigyNikuc3RyaW5nKG1lc3NhZ2UuY29tbWl0SGFzaCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlcG9OYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMzQpLnN0cmluZyhtZXNzYWdlLnJlcG9OYW1lKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2Uub3JnTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3cml0ZXIudWludDMyKDQyKS5zdHJpbmcobWVzc2FnZS5vcmdOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBTb3VyY2VNYXBNZXRhZGF0YSB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VTb3VyY2VNYXBNZXRhZGF0YSgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxOCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5yZWxlYXNlSWQgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBpZiAodGFnICE9PSAyNikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5jb21taXRIYXNoID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMzQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UucmVwb05hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICBpZiAodGFnICE9PSA0Mikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5vcmdOYW1lID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogU291cmNlTWFwTWV0YWRhdGEge1xuICAgIHJldHVybiB7XG4gICAgICBhcHBsaWNhdGlvbjogaXNTZXQob2JqZWN0LmFwcGxpY2F0aW9uKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5hcHBsaWNhdGlvbikgOiBcIlwiLFxuICAgICAgcmVsZWFzZUlkOiBpc1NldChvYmplY3QucmVsZWFzZUlkKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5yZWxlYXNlSWQpIDogXCJcIixcbiAgICAgIGNvbW1pdEhhc2g6IGlzU2V0KG9iamVjdC5jb21taXRIYXNoKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5jb21taXRIYXNoKSA6IHVuZGVmaW5lZCxcbiAgICAgIHJlcG9OYW1lOiBpc1NldChvYmplY3QucmVwb05hbWUpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LnJlcG9OYW1lKSA6IHVuZGVmaW5lZCxcbiAgICAgIG9yZ05hbWU6IGlzU2V0KG9iamVjdC5vcmdOYW1lKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5vcmdOYW1lKSA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9LFxuXG4gIHRvSlNPTihtZXNzYWdlOiBTb3VyY2VNYXBNZXRhZGF0YSk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgaWYgKG1lc3NhZ2UuYXBwbGljYXRpb24gIT09IFwiXCIpIHtcbiAgICAgIG9iai5hcHBsaWNhdGlvbiA9IG1lc3NhZ2UuYXBwbGljYXRpb247XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlbGVhc2VJZCAhPT0gXCJcIikge1xuICAgICAgb2JqLnJlbGVhc2VJZCA9IG1lc3NhZ2UucmVsZWFzZUlkO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5jb21taXRIYXNoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai5jb21taXRIYXNoID0gbWVzc2FnZS5jb21taXRIYXNoO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZXBvTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvYmoucmVwb05hbWUgPSBtZXNzYWdlLnJlcG9OYW1lO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5vcmdOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai5vcmdOYW1lID0gbWVzc2FnZS5vcmdOYW1lO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8U291cmNlTWFwTWV0YWRhdGE+KTogU291cmNlTWFwTWV0YWRhdGEge1xuICAgIHJldHVybiBTb3VyY2VNYXBNZXRhZGF0YS5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxTb3VyY2VNYXBNZXRhZGF0YT4pOiBTb3VyY2VNYXBNZXRhZGF0YSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VTb3VyY2VNYXBNZXRhZGF0YSgpO1xuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBvYmplY3QuYXBwbGljYXRpb24gPz8gXCJcIjtcbiAgICBtZXNzYWdlLnJlbGVhc2VJZCA9IG9iamVjdC5yZWxlYXNlSWQgPz8gXCJcIjtcbiAgICBtZXNzYWdlLmNvbW1pdEhhc2ggPSBvYmplY3QuY29tbWl0SGFzaCA/PyB1bmRlZmluZWQ7XG4gICAgbWVzc2FnZS5yZXBvTmFtZSA9IG9iamVjdC5yZXBvTmFtZSA/PyB1bmRlZmluZWQ7XG4gICAgbWVzc2FnZS5vcmdOYW1lID0gb2JqZWN0Lm9yZ05hbWUgPz8gdW5kZWZpbmVkO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZnVuY3Rpb24gY3JlYXRlQmFzZUVudGl0eU1ldGFkYXRhKCk6IEVudGl0eU1ldGFkYXRhIHtcbiAgcmV0dXJuIHsgbWV0YWRhdGE6IHVuZGVmaW5lZCB9O1xufVxuXG5leHBvcnQgY29uc3QgRW50aXR5TWV0YWRhdGEgPSB7XG4gIGVuY29kZShtZXNzYWdlOiBFbnRpdHlNZXRhZGF0YSwgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIHN3aXRjaCAobWVzc2FnZS5tZXRhZGF0YT8uJGNhc2UpIHtcbiAgICAgIGNhc2UgXCJkc3ltTWV0YWRhdGFcIjpcbiAgICAgICAgRHN5bU1ldGFkYXRhLmVuY29kZShtZXNzYWdlLm1ldGFkYXRhLmRzeW1NZXRhZGF0YSwgd3JpdGVyLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwic291cmNlTWFwTWV0YWRhdGFcIjpcbiAgICAgICAgU291cmNlTWFwTWV0YWRhdGEuZW5jb2RlKG1lc3NhZ2UubWV0YWRhdGEuc291cmNlTWFwTWV0YWRhdGEsIHdyaXRlci51aW50MzIoMTgpLmZvcmsoKSkubGRlbGltKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IEVudGl0eU1ldGFkYXRhIHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUVudGl0eU1ldGFkYXRhKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5tZXRhZGF0YSA9IHsgJGNhc2U6IFwiZHN5bU1ldGFkYXRhXCIsIGRzeW1NZXRhZGF0YTogRHN5bU1ldGFkYXRhLmRlY29kZShyZWFkZXIsIHJlYWRlci51aW50MzIoKSkgfTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIGlmICh0YWcgIT09IDE4KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLm1ldGFkYXRhID0ge1xuICAgICAgICAgICAgJGNhc2U6IFwic291cmNlTWFwTWV0YWRhdGFcIixcbiAgICAgICAgICAgIHNvdXJjZU1hcE1ldGFkYXRhOiBTb3VyY2VNYXBNZXRhZGF0YS5kZWNvZGUocmVhZGVyLCByZWFkZXIudWludDMyKCkpLFxuICAgICAgICAgIH07XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBFbnRpdHlNZXRhZGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGFkYXRhOiBpc1NldChvYmplY3QuZHN5bU1ldGFkYXRhKVxuICAgICAgICA/IHsgJGNhc2U6IFwiZHN5bU1ldGFkYXRhXCIsIGRzeW1NZXRhZGF0YTogRHN5bU1ldGFkYXRhLmZyb21KU09OKG9iamVjdC5kc3ltTWV0YWRhdGEpIH1cbiAgICAgICAgOiBpc1NldChvYmplY3Quc291cmNlTWFwTWV0YWRhdGEpXG4gICAgICAgID8geyAkY2FzZTogXCJzb3VyY2VNYXBNZXRhZGF0YVwiLCBzb3VyY2VNYXBNZXRhZGF0YTogU291cmNlTWFwTWV0YWRhdGEuZnJvbUpTT04ob2JqZWN0LnNvdXJjZU1hcE1ldGFkYXRhKSB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IEVudGl0eU1ldGFkYXRhKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBpZiAobWVzc2FnZS5tZXRhZGF0YT8uJGNhc2UgPT09IFwiZHN5bU1ldGFkYXRhXCIpIHtcbiAgICAgIG9iai5kc3ltTWV0YWRhdGEgPSBEc3ltTWV0YWRhdGEudG9KU09OKG1lc3NhZ2UubWV0YWRhdGEuZHN5bU1ldGFkYXRhKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UubWV0YWRhdGE/LiRjYXNlID09PSBcInNvdXJjZU1hcE1ldGFkYXRhXCIpIHtcbiAgICAgIG9iai5zb3VyY2VNYXBNZXRhZGF0YSA9IFNvdXJjZU1hcE1ldGFkYXRhLnRvSlNPTihtZXNzYWdlLm1ldGFkYXRhLnNvdXJjZU1hcE1ldGFkYXRhKTtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfSxcblxuICBjcmVhdGUoYmFzZT86IERlZXBQYXJ0aWFsPEVudGl0eU1ldGFkYXRhPik6IEVudGl0eU1ldGFkYXRhIHtcbiAgICByZXR1cm4gRW50aXR5TWV0YWRhdGEuZnJvbVBhcnRpYWwoYmFzZSA/PyB7fSk7XG4gIH0sXG4gIGZyb21QYXJ0aWFsKG9iamVjdDogRGVlcFBhcnRpYWw8RW50aXR5TWV0YWRhdGE+KTogRW50aXR5TWV0YWRhdGEge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlRW50aXR5TWV0YWRhdGEoKTtcbiAgICBpZiAoXG4gICAgICBvYmplY3QubWV0YWRhdGE/LiRjYXNlID09PSBcImRzeW1NZXRhZGF0YVwiICYmXG4gICAgICBvYmplY3QubWV0YWRhdGE/LmRzeW1NZXRhZGF0YSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBvYmplY3QubWV0YWRhdGE/LmRzeW1NZXRhZGF0YSAhPT0gbnVsbFxuICAgICkge1xuICAgICAgbWVzc2FnZS5tZXRhZGF0YSA9IHtcbiAgICAgICAgJGNhc2U6IFwiZHN5bU1ldGFkYXRhXCIsXG4gICAgICAgIGRzeW1NZXRhZGF0YTogRHN5bU1ldGFkYXRhLmZyb21QYXJ0aWFsKG9iamVjdC5tZXRhZGF0YS5kc3ltTWV0YWRhdGEpLFxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgb2JqZWN0Lm1ldGFkYXRhPy4kY2FzZSA9PT0gXCJzb3VyY2VNYXBNZXRhZGF0YVwiICYmXG4gICAgICBvYmplY3QubWV0YWRhdGE/LnNvdXJjZU1hcE1ldGFkYXRhICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIG9iamVjdC5tZXRhZGF0YT8uc291cmNlTWFwTWV0YWRhdGEgIT09IG51bGxcbiAgICApIHtcbiAgICAgIG1lc3NhZ2UubWV0YWRhdGEgPSB7XG4gICAgICAgICRjYXNlOiBcInNvdXJjZU1hcE1ldGFkYXRhXCIsXG4gICAgICAgIHNvdXJjZU1hcE1ldGFkYXRhOiBTb3VyY2VNYXBNZXRhZGF0YS5mcm9tUGFydGlhbChvYmplY3QubWV0YWRhdGEuc291cmNlTWFwTWV0YWRhdGEpLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG59O1xuXG50eXBlIEJ1aWx0aW4gPSBEYXRlIHwgRnVuY3Rpb24gfCBVaW50OEFycmF5IHwgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgRGVlcFBhcnRpYWw8VD4gPSBUIGV4dGVuZHMgQnVpbHRpbiA/IFRcbiAgOiBUIGV4dGVuZHMgZ2xvYmFsVGhpcy5BcnJheTxpbmZlciBVPiA/IGdsb2JhbFRoaXMuQXJyYXk8RGVlcFBhcnRpYWw8VT4+XG4gIDogVCBleHRlbmRzIFJlYWRvbmx5QXJyYXk8aW5mZXIgVT4gPyBSZWFkb25seUFycmF5PERlZXBQYXJ0aWFsPFU+PlxuICA6IFQgZXh0ZW5kcyB7ICRjYXNlOiBzdHJpbmcgfSA/IHsgW0sgaW4ga2V5b2YgT21pdDxULCBcIiRjYXNlXCI+XT86IERlZXBQYXJ0aWFsPFRbS10+IH0gJiB7ICRjYXNlOiBUW1wiJGNhc2VcIl0gfVxuICA6IFQgZXh0ZW5kcyB7fSA/IHsgW0sgaW4ga2V5b2YgVF0/OiBEZWVwUGFydGlhbDxUW0tdPiB9XG4gIDogUGFydGlhbDxUPjtcblxuZnVuY3Rpb24gaXNTZXQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZDtcbn1cbiJdfQ==
461
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5X21ldGFkYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvdG8tbW9kZWxzL2NvbS9jb3JhbG9naXgvYmxvYnNldC92Mi9lbnRpdHlfbWV0YWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHNEQUFzRDtBQUN0RCxZQUFZO0FBQ1osa0NBQWtDO0FBQ2xDLGlDQUFpQztBQUNqQyx5REFBeUQ7Ozs7OztBQUV6RCxvQkFBb0I7QUFDcEIsaUVBQXFDO0FBRXhCLFFBQUEsZUFBZSxHQUFHLDBCQUEwQixDQUFDO0FBa0MxRCxTQUFTLHNCQUFzQjtJQUM3QixPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDNUcsQ0FBQztBQUVZLFFBQUEsWUFBWSxHQUFHO0lBQzFCLE1BQU0sQ0FBQyxPQUFxQixFQUFFLFNBQXFCLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNwRSxJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssRUFBRSxFQUFFO1lBQzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMvQztRQUNELElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNwQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDOUM7UUFD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SUFDRSxDQUFBLE1BQUEsTUFBTSxDQUFDLFFBQVEsMENBQUUsS0FBSyxNQUFLLG1CQUFtQjtZQUM5QyxDQUFBLE1BQUEsTUFBTSxDQUFDLFFBQVEsMENBQUUsaUJBQWlCLE1BQUssU0FBUztZQUNoRCxDQUFBLE1BQUEsTUFBTSxDQUFDLFFBQVEsMENBQUUsaUJBQWlCLE1BQUssSUFBSSxFQUMzQztZQUNBLE9BQU8sQ0FBQyxRQUFRLEdBQUc7Z0JBQ2pCLEtBQUssRUFBRSxtQkFBbUI7Z0JBQzFCLGlCQUFpQixFQUFFLHlCQUFpQixDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDO2FBQ3BGLENBQUM7U0FDSDtRQUNELElBQ0UsQ0FBQSxNQUFBLE1BQU0sQ0FBQyxRQUFRLDBDQUFFLEtBQUssTUFBSyxrQkFBa0I7WUFDN0MsQ0FBQSxNQUFBLE1BQU0sQ0FBQyxRQUFRLDBDQUFFLGdCQUFnQixNQUFLLFNBQVM7WUFDL0MsQ0FBQSxNQUFBLE1BQU0sQ0FBQyxRQUFRLDBDQUFFLGdCQUFnQixNQUFLLElBQUksRUFDMUM7WUFDQSxPQUFPLENBQUMsUUFBUSxHQUFHO2dCQUNqQixLQUFLLEVBQUUsa0JBQWtCO2dCQUN6QixnQkFBZ0IsRUFBRSx3QkFBZ0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQzthQUNqRixDQUFDO1NBQ0g7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQVdGLFNBQVMsS0FBSyxDQUFDLEtBQVU7SUFDdkIsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHByb3RvYy1nZW4tdHNfcHJvdG8uIERPIE5PVCBFRElULlxuLy8gdmVyc2lvbnM6XG4vLyAgIHByb3RvYy1nZW4tdHNfcHJvdG8gIHYxLjE4MS4xXG4vLyAgIHByb3RvYyAgICAgICAgICAgICAgIHYzLjE5LjFcbi8vIHNvdXJjZTogY29tL2NvcmFsb2dpeC9ibG9ic2V0L3YyL2VudGl0eV9tZXRhZGF0YS5wcm90b1xuXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0IF9tMCBmcm9tIFwicHJvdG9idWZqcy9taW5pbWFsXCI7XG5cbmV4cG9ydCBjb25zdCBwcm90b2J1ZlBhY2thZ2UgPSBcImNvbS5jb3JhbG9naXguYmxvYnNldC52MlwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERzeW1NZXRhZGF0YSB7XG4gIGFwcGxpY2F0aW9uOiBzdHJpbmc7XG4gIHJlbGVhc2VJZDogc3RyaW5nO1xuICBjb21taXRIYXNoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICByZXBvTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgb3JnTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9ndWFyZE1ldGFkYXRhIHtcbiAgYXBwbGljYXRpb246IHN0cmluZztcbiAgcmVsZWFzZUlkOiBzdHJpbmc7XG4gIGNvbW1pdEhhc2g/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHJlcG9OYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBvcmdOYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZU1hcE1ldGFkYXRhIHtcbiAgYXBwbGljYXRpb246IHN0cmluZztcbiAgcmVsZWFzZUlkOiBzdHJpbmc7XG4gIGNvbW1pdEhhc2g/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHJlcG9OYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBvcmdOYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eU1ldGFkYXRhIHtcbiAgbWV0YWRhdGE/OlxuICAgIHwgeyAkY2FzZTogXCJkc3ltTWV0YWRhdGFcIjsgZHN5bU1ldGFkYXRhOiBEc3ltTWV0YWRhdGEgfVxuICAgIHwgeyAkY2FzZTogXCJzb3VyY2VNYXBNZXRhZGF0YVwiOyBzb3VyY2VNYXBNZXRhZGF0YTogU291cmNlTWFwTWV0YWRhdGEgfVxuICAgIHwgeyAkY2FzZTogXCJwcm9ndWFyZE1ldGFkYXRhXCI7IHByb2d1YXJkTWV0YWRhdGE6IFByb2d1YXJkTWV0YWRhdGEgfVxuICAgIHwgdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVCYXNlRHN5bU1ldGFkYXRhKCk6IERzeW1NZXRhZGF0YSB7XG4gIHJldHVybiB7IGFwcGxpY2F0aW9uOiBcIlwiLCByZWxlYXNlSWQ6IFwiXCIsIGNvbW1pdEhhc2g6IHVuZGVmaW5lZCwgcmVwb05hbWU6IHVuZGVmaW5lZCwgb3JnTmFtZTogdW5kZWZpbmVkIH07XG59XG5cbmV4cG9ydCBjb25zdCBEc3ltTWV0YWRhdGEgPSB7XG4gIGVuY29kZShtZXNzYWdlOiBEc3ltTWV0YWRhdGEsIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICBpZiAobWVzc2FnZS5hcHBsaWNhdGlvbiAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxMCkuc3RyaW5nKG1lc3NhZ2UuYXBwbGljYXRpb24pO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZWxlYXNlSWQgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTgpLnN0cmluZyhtZXNzYWdlLnJlbGVhc2VJZCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmNvbW1pdEhhc2ggIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigyNikuc3RyaW5nKG1lc3NhZ2UuY29tbWl0SGFzaCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlcG9OYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMzQpLnN0cmluZyhtZXNzYWdlLnJlcG9OYW1lKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2Uub3JnTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3cml0ZXIudWludDMyKDQyKS5zdHJpbmcobWVzc2FnZS5vcmdOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBEc3ltTWV0YWRhdGEge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlRHN5bU1ldGFkYXRhKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5hcHBsaWNhdGlvbiA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIGlmICh0YWcgIT09IDE4KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLnJlbGVhc2VJZCA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGlmICh0YWcgIT09IDI2KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmNvbW1pdEhhc2ggPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBpZiAodGFnICE9PSAzNCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5yZXBvTmFtZSA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGlmICh0YWcgIT09IDQyKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLm9yZ05hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBEc3ltTWV0YWRhdGEge1xuICAgIHJldHVybiB7XG4gICAgICBhcHBsaWNhdGlvbjogaXNTZXQob2JqZWN0LmFwcGxpY2F0aW9uKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5hcHBsaWNhdGlvbikgOiBcIlwiLFxuICAgICAgcmVsZWFzZUlkOiBpc1NldChvYmplY3QucmVsZWFzZUlkKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5yZWxlYXNlSWQpIDogXCJcIixcbiAgICAgIGNvbW1pdEhhc2g6IGlzU2V0KG9iamVjdC5jb21taXRIYXNoKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5jb21taXRIYXNoKSA6IHVuZGVmaW5lZCxcbiAgICAgIHJlcG9OYW1lOiBpc1NldChvYmplY3QucmVwb05hbWUpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LnJlcG9OYW1lKSA6IHVuZGVmaW5lZCxcbiAgICAgIG9yZ05hbWU6IGlzU2V0KG9iamVjdC5vcmdOYW1lKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5vcmdOYW1lKSA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9LFxuXG4gIHRvSlNPTihtZXNzYWdlOiBEc3ltTWV0YWRhdGEpOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIGlmIChtZXNzYWdlLmFwcGxpY2F0aW9uICE9PSBcIlwiKSB7XG4gICAgICBvYmouYXBwbGljYXRpb24gPSBtZXNzYWdlLmFwcGxpY2F0aW9uO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZWxlYXNlSWQgIT09IFwiXCIpIHtcbiAgICAgIG9iai5yZWxlYXNlSWQgPSBtZXNzYWdlLnJlbGVhc2VJZDtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuY29tbWl0SGFzaCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvYmouY29tbWl0SGFzaCA9IG1lc3NhZ2UuY29tbWl0SGFzaDtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVwb05hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb2JqLnJlcG9OYW1lID0gbWVzc2FnZS5yZXBvTmFtZTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2Uub3JnTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvYmoub3JnTmFtZSA9IG1lc3NhZ2Uub3JnTmFtZTtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfSxcblxuICBjcmVhdGUoYmFzZT86IERlZXBQYXJ0aWFsPERzeW1NZXRhZGF0YT4pOiBEc3ltTWV0YWRhdGEge1xuICAgIHJldHVybiBEc3ltTWV0YWRhdGEuZnJvbVBhcnRpYWwoYmFzZSA/PyB7fSk7XG4gIH0sXG4gIGZyb21QYXJ0aWFsKG9iamVjdDogRGVlcFBhcnRpYWw8RHN5bU1ldGFkYXRhPik6IERzeW1NZXRhZGF0YSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VEc3ltTWV0YWRhdGEoKTtcbiAgICBtZXNzYWdlLmFwcGxpY2F0aW9uID0gb2JqZWN0LmFwcGxpY2F0aW9uID8/IFwiXCI7XG4gICAgbWVzc2FnZS5yZWxlYXNlSWQgPSBvYmplY3QucmVsZWFzZUlkID8/IFwiXCI7XG4gICAgbWVzc2FnZS5jb21taXRIYXNoID0gb2JqZWN0LmNvbW1pdEhhc2ggPz8gdW5kZWZpbmVkO1xuICAgIG1lc3NhZ2UucmVwb05hbWUgPSBvYmplY3QucmVwb05hbWUgPz8gdW5kZWZpbmVkO1xuICAgIG1lc3NhZ2Uub3JnTmFtZSA9IG9iamVjdC5vcmdOYW1lID8/IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VQcm9ndWFyZE1ldGFkYXRhKCk6IFByb2d1YXJkTWV0YWRhdGEge1xuICByZXR1cm4geyBhcHBsaWNhdGlvbjogXCJcIiwgcmVsZWFzZUlkOiBcIlwiLCBjb21taXRIYXNoOiB1bmRlZmluZWQsIHJlcG9OYW1lOiB1bmRlZmluZWQsIG9yZ05hbWU6IHVuZGVmaW5lZCB9O1xufVxuXG5leHBvcnQgY29uc3QgUHJvZ3VhcmRNZXRhZGF0YSA9IHtcbiAgZW5jb2RlKG1lc3NhZ2U6IFByb2d1YXJkTWV0YWRhdGEsIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICBpZiAobWVzc2FnZS5hcHBsaWNhdGlvbiAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxMCkuc3RyaW5nKG1lc3NhZ2UuYXBwbGljYXRpb24pO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZWxlYXNlSWQgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTgpLnN0cmluZyhtZXNzYWdlLnJlbGVhc2VJZCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmNvbW1pdEhhc2ggIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigyNikuc3RyaW5nKG1lc3NhZ2UuY29tbWl0SGFzaCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlcG9OYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMzQpLnN0cmluZyhtZXNzYWdlLnJlcG9OYW1lKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2Uub3JnTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3cml0ZXIudWludDMyKDQyKS5zdHJpbmcobWVzc2FnZS5vcmdOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBQcm9ndWFyZE1ldGFkYXRhIHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVByb2d1YXJkTWV0YWRhdGEoKTtcbiAgICB3aGlsZSAocmVhZGVyLnBvcyA8IGVuZCkge1xuICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGlmICh0YWcgIT09IDEwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmFwcGxpY2F0aW9uID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTgpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UucmVsZWFzZUlkID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMjYpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuY29tbWl0SGFzaCA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIGlmICh0YWcgIT09IDM0KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLnJlcG9OYW1lID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gNDIpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2Uub3JnTmFtZSA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICgodGFnICYgNykgPT09IDQgfHwgdGFnID09PSAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmVhZGVyLnNraXBUeXBlKHRhZyAmIDcpO1xuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcblxuICBmcm9tSlNPTihvYmplY3Q6IGFueSk6IFByb2d1YXJkTWV0YWRhdGEge1xuICAgIHJldHVybiB7XG4gICAgICBhcHBsaWNhdGlvbjogaXNTZXQob2JqZWN0LmFwcGxpY2F0aW9uKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5hcHBsaWNhdGlvbikgOiBcIlwiLFxuICAgICAgcmVsZWFzZUlkOiBpc1NldChvYmplY3QucmVsZWFzZUlkKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5yZWxlYXNlSWQpIDogXCJcIixcbiAgICAgIGNvbW1pdEhhc2g6IGlzU2V0KG9iamVjdC5jb21taXRIYXNoKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5jb21taXRIYXNoKSA6IHVuZGVmaW5lZCxcbiAgICAgIHJlcG9OYW1lOiBpc1NldChvYmplY3QucmVwb05hbWUpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LnJlcG9OYW1lKSA6IHVuZGVmaW5lZCxcbiAgICAgIG9yZ05hbWU6IGlzU2V0KG9iamVjdC5vcmdOYW1lKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5vcmdOYW1lKSA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9LFxuXG4gIHRvSlNPTihtZXNzYWdlOiBQcm9ndWFyZE1ldGFkYXRhKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBpZiAobWVzc2FnZS5hcHBsaWNhdGlvbiAhPT0gXCJcIikge1xuICAgICAgb2JqLmFwcGxpY2F0aW9uID0gbWVzc2FnZS5hcHBsaWNhdGlvbjtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVsZWFzZUlkICE9PSBcIlwiKSB7XG4gICAgICBvYmoucmVsZWFzZUlkID0gbWVzc2FnZS5yZWxlYXNlSWQ7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmNvbW1pdEhhc2ggIT09IHVuZGVmaW5lZCkge1xuICAgICAgb2JqLmNvbW1pdEhhc2ggPSBtZXNzYWdlLmNvbW1pdEhhc2g7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlcG9OYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai5yZXBvTmFtZSA9IG1lc3NhZ2UucmVwb05hbWU7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLm9yZ05hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb2JqLm9yZ05hbWUgPSBtZXNzYWdlLm9yZ05hbWU7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxQcm9ndWFyZE1ldGFkYXRhPik6IFByb2d1YXJkTWV0YWRhdGEge1xuICAgIHJldHVybiBQcm9ndWFyZE1ldGFkYXRhLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPFByb2d1YXJkTWV0YWRhdGE+KTogUHJvZ3VhcmRNZXRhZGF0YSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VQcm9ndWFyZE1ldGFkYXRhKCk7XG4gICAgbWVzc2FnZS5hcHBsaWNhdGlvbiA9IG9iamVjdC5hcHBsaWNhdGlvbiA/PyBcIlwiO1xuICAgIG1lc3NhZ2UucmVsZWFzZUlkID0gb2JqZWN0LnJlbGVhc2VJZCA/PyBcIlwiO1xuICAgIG1lc3NhZ2UuY29tbWl0SGFzaCA9IG9iamVjdC5jb21taXRIYXNoID8/IHVuZGVmaW5lZDtcbiAgICBtZXNzYWdlLnJlcG9OYW1lID0gb2JqZWN0LnJlcG9OYW1lID8/IHVuZGVmaW5lZDtcbiAgICBtZXNzYWdlLm9yZ05hbWUgPSBvYmplY3Qub3JnTmFtZSA/PyB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG59O1xuXG5mdW5jdGlvbiBjcmVhdGVCYXNlU291cmNlTWFwTWV0YWRhdGEoKTogU291cmNlTWFwTWV0YWRhdGEge1xuICByZXR1cm4geyBhcHBsaWNhdGlvbjogXCJcIiwgcmVsZWFzZUlkOiBcIlwiLCBjb21taXRIYXNoOiB1bmRlZmluZWQsIHJlcG9OYW1lOiB1bmRlZmluZWQsIG9yZ05hbWU6IHVuZGVmaW5lZCB9O1xufVxuXG5leHBvcnQgY29uc3QgU291cmNlTWFwTWV0YWRhdGEgPSB7XG4gIGVuY29kZShtZXNzYWdlOiBTb3VyY2VNYXBNZXRhZGF0YSwgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLmFwcGxpY2F0aW9uICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDEwKS5zdHJpbmcobWVzc2FnZS5hcHBsaWNhdGlvbik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlbGVhc2VJZCAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxOCkuc3RyaW5nKG1lc3NhZ2UucmVsZWFzZUlkKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuY29tbWl0SGFzaCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3cml0ZXIudWludDMyKDI2KS5zdHJpbmcobWVzc2FnZS5jb21taXRIYXNoKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVwb05hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigzNCkuc3RyaW5nKG1lc3NhZ2UucmVwb05hbWUpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5vcmdOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoNDIpLnN0cmluZyhtZXNzYWdlLm9yZ05hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IFNvdXJjZU1hcE1ldGFkYXRhIHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVNvdXJjZU1hcE1ldGFkYXRhKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5hcHBsaWNhdGlvbiA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIGlmICh0YWcgIT09IDE4KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLnJlbGVhc2VJZCA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGlmICh0YWcgIT09IDI2KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmNvbW1pdEhhc2ggPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBpZiAodGFnICE9PSAzNCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5yZXBvTmFtZSA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGlmICh0YWcgIT09IDQyKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLm9yZ05hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBTb3VyY2VNYXBNZXRhZGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFwcGxpY2F0aW9uOiBpc1NldChvYmplY3QuYXBwbGljYXRpb24pID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LmFwcGxpY2F0aW9uKSA6IFwiXCIsXG4gICAgICByZWxlYXNlSWQ6IGlzU2V0KG9iamVjdC5yZWxlYXNlSWQpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LnJlbGVhc2VJZCkgOiBcIlwiLFxuICAgICAgY29tbWl0SGFzaDogaXNTZXQob2JqZWN0LmNvbW1pdEhhc2gpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LmNvbW1pdEhhc2gpIDogdW5kZWZpbmVkLFxuICAgICAgcmVwb05hbWU6IGlzU2V0KG9iamVjdC5yZXBvTmFtZSkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QucmVwb05hbWUpIDogdW5kZWZpbmVkLFxuICAgICAgb3JnTmFtZTogaXNTZXQob2JqZWN0Lm9yZ05hbWUpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0Lm9yZ05hbWUpIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IFNvdXJjZU1hcE1ldGFkYXRhKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBpZiAobWVzc2FnZS5hcHBsaWNhdGlvbiAhPT0gXCJcIikge1xuICAgICAgb2JqLmFwcGxpY2F0aW9uID0gbWVzc2FnZS5hcHBsaWNhdGlvbjtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVsZWFzZUlkICE9PSBcIlwiKSB7XG4gICAgICBvYmoucmVsZWFzZUlkID0gbWVzc2FnZS5yZWxlYXNlSWQ7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmNvbW1pdEhhc2ggIT09IHVuZGVmaW5lZCkge1xuICAgICAgb2JqLmNvbW1pdEhhc2ggPSBtZXNzYWdlLmNvbW1pdEhhc2g7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlcG9OYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai5yZXBvTmFtZSA9IG1lc3NhZ2UucmVwb05hbWU7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLm9yZ05hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb2JqLm9yZ05hbWUgPSBtZXNzYWdlLm9yZ05hbWU7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxTb3VyY2VNYXBNZXRhZGF0YT4pOiBTb3VyY2VNYXBNZXRhZGF0YSB7XG4gICAgcmV0dXJuIFNvdXJjZU1hcE1ldGFkYXRhLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPFNvdXJjZU1hcE1ldGFkYXRhPik6IFNvdXJjZU1hcE1ldGFkYXRhIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVNvdXJjZU1hcE1ldGFkYXRhKCk7XG4gICAgbWVzc2FnZS5hcHBsaWNhdGlvbiA9IG9iamVjdC5hcHBsaWNhdGlvbiA/PyBcIlwiO1xuICAgIG1lc3NhZ2UucmVsZWFzZUlkID0gb2JqZWN0LnJlbGVhc2VJZCA/PyBcIlwiO1xuICAgIG1lc3NhZ2UuY29tbWl0SGFzaCA9IG9iamVjdC5jb21taXRIYXNoID8/IHVuZGVmaW5lZDtcbiAgICBtZXNzYWdlLnJlcG9OYW1lID0gb2JqZWN0LnJlcG9OYW1lID8/IHVuZGVmaW5lZDtcbiAgICBtZXNzYWdlLm9yZ05hbWUgPSBvYmplY3Qub3JnTmFtZSA/PyB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG59O1xuXG5mdW5jdGlvbiBjcmVhdGVCYXNlRW50aXR5TWV0YWRhdGEoKTogRW50aXR5TWV0YWRhdGEge1xuICByZXR1cm4geyBtZXRhZGF0YTogdW5kZWZpbmVkIH07XG59XG5cbmV4cG9ydCBjb25zdCBFbnRpdHlNZXRhZGF0YSA9IHtcbiAgZW5jb2RlKG1lc3NhZ2U6IEVudGl0eU1ldGFkYXRhLCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgc3dpdGNoIChtZXNzYWdlLm1ldGFkYXRhPy4kY2FzZSkge1xuICAgICAgY2FzZSBcImRzeW1NZXRhZGF0YVwiOlxuICAgICAgICBEc3ltTWV0YWRhdGEuZW5jb2RlKG1lc3NhZ2UubWV0YWRhdGEuZHN5bU1ldGFkYXRhLCB3cml0ZXIudWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJzb3VyY2VNYXBNZXRhZGF0YVwiOlxuICAgICAgICBTb3VyY2VNYXBNZXRhZGF0YS5lbmNvZGUobWVzc2FnZS5tZXRhZGF0YS5zb3VyY2VNYXBNZXRhZGF0YSwgd3JpdGVyLnVpbnQzMigxOCkuZm9yaygpKS5sZGVsaW0oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwicHJvZ3VhcmRNZXRhZGF0YVwiOlxuICAgICAgICBQcm9ndWFyZE1ldGFkYXRhLmVuY29kZShtZXNzYWdlLm1ldGFkYXRhLnByb2d1YXJkTWV0YWRhdGEsIHdyaXRlci51aW50MzIoMjYpLmZvcmsoKSkubGRlbGltKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IEVudGl0eU1ldGFkYXRhIHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUVudGl0eU1ldGFkYXRhKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5tZXRhZGF0YSA9IHsgJGNhc2U6IFwiZHN5bU1ldGFkYXRhXCIsIGRzeW1NZXRhZGF0YTogRHN5bU1ldGFkYXRhLmRlY29kZShyZWFkZXIsIHJlYWRlci51aW50MzIoKSkgfTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIGlmICh0YWcgIT09IDE4KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLm1ldGFkYXRhID0ge1xuICAgICAgICAgICAgJGNhc2U6IFwic291cmNlTWFwTWV0YWRhdGFcIixcbiAgICAgICAgICAgIHNvdXJjZU1hcE1ldGFkYXRhOiBTb3VyY2VNYXBNZXRhZGF0YS5kZWNvZGUocmVhZGVyLCByZWFkZXIudWludDMyKCkpLFxuICAgICAgICAgIH07XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBpZiAodGFnICE9PSAyNikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5tZXRhZGF0YSA9IHtcbiAgICAgICAgICAgICRjYXNlOiBcInByb2d1YXJkTWV0YWRhdGFcIixcbiAgICAgICAgICAgIHByb2d1YXJkTWV0YWRhdGE6IFByb2d1YXJkTWV0YWRhdGEuZGVjb2RlKHJlYWRlciwgcmVhZGVyLnVpbnQzMigpKSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogRW50aXR5TWV0YWRhdGEge1xuICAgIHJldHVybiB7XG4gICAgICBtZXRhZGF0YTogaXNTZXQob2JqZWN0LmRzeW1NZXRhZGF0YSlcbiAgICAgICAgPyB7ICRjYXNlOiBcImRzeW1NZXRhZGF0YVwiLCBkc3ltTWV0YWRhdGE6IERzeW1NZXRhZGF0YS5mcm9tSlNPTihvYmplY3QuZHN5bU1ldGFkYXRhKSB9XG4gICAgICAgIDogaXNTZXQob2JqZWN0LnNvdXJjZU1hcE1ldGFkYXRhKVxuICAgICAgICA/IHsgJGNhc2U6IFwic291cmNlTWFwTWV0YWRhdGFcIiwgc291cmNlTWFwTWV0YWRhdGE6IFNvdXJjZU1hcE1ldGFkYXRhLmZyb21KU09OKG9iamVjdC5zb3VyY2VNYXBNZXRhZGF0YSkgfVxuICAgICAgICA6IGlzU2V0KG9iamVjdC5wcm9ndWFyZE1ldGFkYXRhKVxuICAgICAgICA/IHsgJGNhc2U6IFwicHJvZ3VhcmRNZXRhZGF0YVwiLCBwcm9ndWFyZE1ldGFkYXRhOiBQcm9ndWFyZE1ldGFkYXRhLmZyb21KU09OKG9iamVjdC5wcm9ndWFyZE1ldGFkYXRhKSB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IEVudGl0eU1ldGFkYXRhKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBpZiAobWVzc2FnZS5tZXRhZGF0YT8uJGNhc2UgPT09IFwiZHN5bU1ldGFkYXRhXCIpIHtcbiAgICAgIG9iai5kc3ltTWV0YWRhdGEgPSBEc3ltTWV0YWRhdGEudG9KU09OKG1lc3NhZ2UubWV0YWRhdGEuZHN5bU1ldGFkYXRhKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UubWV0YWRhdGE/LiRjYXNlID09PSBcInNvdXJjZU1hcE1ldGFkYXRhXCIpIHtcbiAgICAgIG9iai5zb3VyY2VNYXBNZXRhZGF0YSA9IFNvdXJjZU1hcE1ldGFkYXRhLnRvSlNPTihtZXNzYWdlLm1ldGFkYXRhLnNvdXJjZU1hcE1ldGFkYXRhKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UubWV0YWRhdGE/LiRjYXNlID09PSBcInByb2d1YXJkTWV0YWRhdGFcIikge1xuICAgICAgb2JqLnByb2d1YXJkTWV0YWRhdGEgPSBQcm9ndWFyZE1ldGFkYXRhLnRvSlNPTihtZXNzYWdlLm1ldGFkYXRhLnByb2d1YXJkTWV0YWRhdGEpO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8RW50aXR5TWV0YWRhdGE+KTogRW50aXR5TWV0YWRhdGEge1xuICAgIHJldHVybiBFbnRpdHlNZXRhZGF0YS5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxFbnRpdHlNZXRhZGF0YT4pOiBFbnRpdHlNZXRhZGF0YSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VFbnRpdHlNZXRhZGF0YSgpO1xuICAgIGlmIChcbiAgICAgIG9iamVjdC5tZXRhZGF0YT8uJGNhc2UgPT09IFwiZHN5bU1ldGFkYXRhXCIgJiZcbiAgICAgIG9iamVjdC5tZXRhZGF0YT8uZHN5bU1ldGFkYXRhICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIG9iamVjdC5tZXRhZGF0YT8uZHN5bU1ldGFkYXRhICE9PSBudWxsXG4gICAgKSB7XG4gICAgICBtZXNzYWdlLm1ldGFkYXRhID0ge1xuICAgICAgICAkY2FzZTogXCJkc3ltTWV0YWRhdGFcIixcbiAgICAgICAgZHN5bU1ldGFkYXRhOiBEc3ltTWV0YWRhdGEuZnJvbVBhcnRpYWwob2JqZWN0Lm1ldGFkYXRhLmRzeW1NZXRhZGF0YSksXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBvYmplY3QubWV0YWRhdGE/LiRjYXNlID09PSBcInNvdXJjZU1hcE1ldGFkYXRhXCIgJiZcbiAgICAgIG9iamVjdC5tZXRhZGF0YT8uc291cmNlTWFwTWV0YWRhdGEgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgb2JqZWN0Lm1ldGFkYXRhPy5zb3VyY2VNYXBNZXRhZGF0YSAhPT0gbnVsbFxuICAgICkge1xuICAgICAgbWVzc2FnZS5tZXRhZGF0YSA9IHtcbiAgICAgICAgJGNhc2U6IFwic291cmNlTWFwTWV0YWRhdGFcIixcbiAgICAgICAgc291cmNlTWFwTWV0YWRhdGE6IFNvdXJjZU1hcE1ldGFkYXRhLmZyb21QYXJ0aWFsKG9iamVjdC5tZXRhZGF0YS5zb3VyY2VNYXBNZXRhZGF0YSksXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBvYmplY3QubWV0YWRhdGE/LiRjYXNlID09PSBcInByb2d1YXJkTWV0YWRhdGFcIiAmJlxuICAgICAgb2JqZWN0Lm1ldGFkYXRhPy5wcm9ndWFyZE1ldGFkYXRhICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIG9iamVjdC5tZXRhZGF0YT8ucHJvZ3VhcmRNZXRhZGF0YSAhPT0gbnVsbFxuICAgICkge1xuICAgICAgbWVzc2FnZS5tZXRhZGF0YSA9IHtcbiAgICAgICAgJGNhc2U6IFwicHJvZ3VhcmRNZXRhZGF0YVwiLFxuICAgICAgICBwcm9ndWFyZE1ldGFkYXRhOiBQcm9ndWFyZE1ldGFkYXRhLmZyb21QYXJ0aWFsKG9iamVjdC5tZXRhZGF0YS5wcm9ndWFyZE1ldGFkYXRhKSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxudHlwZSBCdWlsdGluID0gRGF0ZSB8IEZ1bmN0aW9uIHwgVWludDhBcnJheSB8IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCB0eXBlIERlZXBQYXJ0aWFsPFQ+ID0gVCBleHRlbmRzIEJ1aWx0aW4gPyBUXG4gIDogVCBleHRlbmRzIGdsb2JhbFRoaXMuQXJyYXk8aW5mZXIgVT4gPyBnbG9iYWxUaGlzLkFycmF5PERlZXBQYXJ0aWFsPFU+PlxuICA6IFQgZXh0ZW5kcyBSZWFkb25seUFycmF5PGluZmVyIFU+ID8gUmVhZG9ubHlBcnJheTxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgeyAkY2FzZTogc3RyaW5nIH0gPyB7IFtLIGluIGtleW9mIE9taXQ8VCwgXCIkY2FzZVwiPl0/OiBEZWVwUGFydGlhbDxUW0tdPiB9ICYgeyAkY2FzZTogVFtcIiRjYXNlXCJdIH1cbiAgOiBUIGV4dGVuZHMge30gPyB7IFtLIGluIGtleW9mIFRdPzogRGVlcFBhcnRpYWw8VFtLXT4gfVxuICA6IFBhcnRpYWw8VD47XG5cbmZ1bmN0aW9uIGlzU2V0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQ7XG59XG4iXX0=
@@ -3,7 +3,8 @@ export declare enum EntityType {
3
3
  ENTITY_TYPE_UNSPECIFIED = 0,
4
4
  ENTITY_TYPE_DSYM = 1,
5
5
  ENTITY_TYPE_SOURCE_MAP = 2,
6
- ENTITY_TYPE_REACT_NATIVE = 3
6
+ ENTITY_TYPE_REACT_NATIVE = 3,
7
+ ENTITY_TYPE_PROGUARD = 4
7
8
  }
8
9
  export declare function entityTypeFromJSON(object: any): EntityType;
9
10
  export declare function entityTypeToJSON(object: EntityType): string;
@@ -14,6 +14,7 @@ var EntityType;
14
14
  EntityType[EntityType["ENTITY_TYPE_DSYM"] = 1] = "ENTITY_TYPE_DSYM";
15
15
  EntityType[EntityType["ENTITY_TYPE_SOURCE_MAP"] = 2] = "ENTITY_TYPE_SOURCE_MAP";
16
16
  EntityType[EntityType["ENTITY_TYPE_REACT_NATIVE"] = 3] = "ENTITY_TYPE_REACT_NATIVE";
17
+ EntityType[EntityType["ENTITY_TYPE_PROGUARD"] = 4] = "ENTITY_TYPE_PROGUARD";
17
18
  })(EntityType = exports.EntityType || (exports.EntityType = {}));
18
19
  function entityTypeFromJSON(object) {
19
20
  switch (object) {
@@ -29,6 +30,9 @@ function entityTypeFromJSON(object) {
29
30
  case 3:
30
31
  case "ENTITY_TYPE_REACT_NATIVE":
31
32
  return EntityType.ENTITY_TYPE_REACT_NATIVE;
33
+ case 4:
34
+ case "ENTITY_TYPE_PROGUARD":
35
+ return EntityType.ENTITY_TYPE_PROGUARD;
32
36
  default:
33
37
  throw new globalThis.Error("Unrecognized enum value " + object + " for enum EntityType");
34
38
  }
@@ -44,9 +48,11 @@ function entityTypeToJSON(object) {
44
48
  return "ENTITY_TYPE_SOURCE_MAP";
45
49
  case EntityType.ENTITY_TYPE_REACT_NATIVE:
46
50
  return "ENTITY_TYPE_REACT_NATIVE";
51
+ case EntityType.ENTITY_TYPE_PROGUARD:
52
+ return "ENTITY_TYPE_PROGUARD";
47
53
  default:
48
54
  throw new globalThis.Error("Unrecognized enum value " + object + " for enum EntityType");
49
55
  }
50
56
  }
51
57
  exports.entityTypeToJSON = entityTypeToJSON;
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5X3R5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ibG9ic2V0L3YyL2VudGl0eV90eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxzREFBc0Q7QUFDdEQsWUFBWTtBQUNaLGtDQUFrQztBQUNsQyxpQ0FBaUM7QUFDakMscURBQXFEOzs7QUFFckQsb0JBQW9CO0FBRVAsUUFBQSxlQUFlLEdBQUcsMEJBQTBCLENBQUM7QUFFMUQsSUFBWSxVQUtYO0FBTEQsV0FBWSxVQUFVO0lBQ3BCLGlGQUEyQixDQUFBO0lBQzNCLG1FQUFvQixDQUFBO0lBQ3BCLCtFQUEwQixDQUFBO0lBQzFCLG1GQUE0QixDQUFBO0FBQzlCLENBQUMsRUFMVyxVQUFVLEdBQVYsa0JBQVUsS0FBVixrQkFBVSxRQUtyQjtBQUVELFNBQWdCLGtCQUFrQixDQUFDLE1BQVc7SUFDNUMsUUFBUSxNQUFNLEVBQUU7UUFDZCxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUsseUJBQXlCO1lBQzVCLE9BQU8sVUFBVSxDQUFDLHVCQUF1QixDQUFDO1FBQzVDLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxrQkFBa0I7WUFDckIsT0FBTyxVQUFVLENBQUMsZ0JBQWdCLENBQUM7UUFDckMsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLHdCQUF3QjtZQUMzQixPQUFPLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQztRQUMzQyxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssMEJBQTBCO1lBQzdCLE9BQU8sVUFBVSxDQUFDLHdCQUF3QixDQUFDO1FBQzdDO1lBQ0UsTUFBTSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEdBQUcsTUFBTSxHQUFHLHNCQUFzQixDQUFDLENBQUM7S0FDNUY7QUFDSCxDQUFDO0FBakJELGdEQWlCQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLE1BQWtCO0lBQ2pELFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FBSyxVQUFVLENBQUMsdUJBQXVCO1lBQ3JDLE9BQU8seUJBQXlCLENBQUM7UUFDbkMsS0FBSyxVQUFVLENBQUMsZ0JBQWdCO1lBQzlCLE9BQU8sa0JBQWtCLENBQUM7UUFDNUIsS0FBSyxVQUFVLENBQUMsc0JBQXNCO1lBQ3BDLE9BQU8sd0JBQXdCLENBQUM7UUFDbEMsS0FBSyxVQUFVLENBQUMsd0JBQXdCO1lBQ3RDLE9BQU8sMEJBQTBCLENBQUM7UUFDcEM7WUFDRSxNQUFNLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsR0FBRyxNQUFNLEdBQUcsc0JBQXNCLENBQUMsQ0FBQztLQUM1RjtBQUNILENBQUM7QUFiRCw0Q0FhQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHByb3RvYy1nZW4tdHNfcHJvdG8uIERPIE5PVCBFRElULlxuLy8gdmVyc2lvbnM6XG4vLyAgIHByb3RvYy1nZW4tdHNfcHJvdG8gIHYxLjE4MS4xXG4vLyAgIHByb3RvYyAgICAgICAgICAgICAgIHYzLjE5LjFcbi8vIHNvdXJjZTogY29tL2NvcmFsb2dpeC9ibG9ic2V0L3YyL2VudGl0eV90eXBlLnByb3RvXG5cbi8qIGVzbGludC1kaXNhYmxlICovXG5cbmV4cG9ydCBjb25zdCBwcm90b2J1ZlBhY2thZ2UgPSBcImNvbS5jb3JhbG9naXguYmxvYnNldC52MlwiO1xuXG5leHBvcnQgZW51bSBFbnRpdHlUeXBlIHtcbiAgRU5USVRZX1RZUEVfVU5TUEVDSUZJRUQgPSAwLFxuICBFTlRJVFlfVFlQRV9EU1lNID0gMSxcbiAgRU5USVRZX1RZUEVfU09VUkNFX01BUCA9IDIsXG4gIEVOVElUWV9UWVBFX1JFQUNUX05BVElWRSA9IDMsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlUeXBlRnJvbUpTT04ob2JqZWN0OiBhbnkpOiBFbnRpdHlUeXBlIHtcbiAgc3dpdGNoIChvYmplY3QpIHtcbiAgICBjYXNlIDA6XG4gICAgY2FzZSBcIkVOVElUWV9UWVBFX1VOU1BFQ0lGSUVEXCI6XG4gICAgICByZXR1cm4gRW50aXR5VHlwZS5FTlRJVFlfVFlQRV9VTlNQRUNJRklFRDtcbiAgICBjYXNlIDE6XG4gICAgY2FzZSBcIkVOVElUWV9UWVBFX0RTWU1cIjpcbiAgICAgIHJldHVybiBFbnRpdHlUeXBlLkVOVElUWV9UWVBFX0RTWU07XG4gICAgY2FzZSAyOlxuICAgIGNhc2UgXCJFTlRJVFlfVFlQRV9TT1VSQ0VfTUFQXCI6XG4gICAgICByZXR1cm4gRW50aXR5VHlwZS5FTlRJVFlfVFlQRV9TT1VSQ0VfTUFQO1xuICAgIGNhc2UgMzpcbiAgICBjYXNlIFwiRU5USVRZX1RZUEVfUkVBQ1RfTkFUSVZFXCI6XG4gICAgICByZXR1cm4gRW50aXR5VHlwZS5FTlRJVFlfVFlQRV9SRUFDVF9OQVRJVkU7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBnbG9iYWxUaGlzLkVycm9yKFwiVW5yZWNvZ25pemVkIGVudW0gdmFsdWUgXCIgKyBvYmplY3QgKyBcIiBmb3IgZW51bSBFbnRpdHlUeXBlXCIpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlUeXBlVG9KU09OKG9iamVjdDogRW50aXR5VHlwZSk6IHN0cmluZyB7XG4gIHN3aXRjaCAob2JqZWN0KSB7XG4gICAgY2FzZSBFbnRpdHlUeXBlLkVOVElUWV9UWVBFX1VOU1BFQ0lGSUVEOlxuICAgICAgcmV0dXJuIFwiRU5USVRZX1RZUEVfVU5TUEVDSUZJRURcIjtcbiAgICBjYXNlIEVudGl0eVR5cGUuRU5USVRZX1RZUEVfRFNZTTpcbiAgICAgIHJldHVybiBcIkVOVElUWV9UWVBFX0RTWU1cIjtcbiAgICBjYXNlIEVudGl0eVR5cGUuRU5USVRZX1RZUEVfU09VUkNFX01BUDpcbiAgICAgIHJldHVybiBcIkVOVElUWV9UWVBFX1NPVVJDRV9NQVBcIjtcbiAgICBjYXNlIEVudGl0eVR5cGUuRU5USVRZX1RZUEVfUkVBQ1RfTkFUSVZFOlxuICAgICAgcmV0dXJuIFwiRU5USVRZX1RZUEVfUkVBQ1RfTkFUSVZFXCI7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBnbG9iYWxUaGlzLkVycm9yKFwiVW5yZWNvZ25pemVkIGVudW0gdmFsdWUgXCIgKyBvYmplY3QgKyBcIiBmb3IgZW51bSBFbnRpdHlUeXBlXCIpO1xuICB9XG59XG4iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5X3R5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ibG9ic2V0L3YyL2VudGl0eV90eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxzREFBc0Q7QUFDdEQsWUFBWTtBQUNaLGtDQUFrQztBQUNsQyxpQ0FBaUM7QUFDakMscURBQXFEOzs7QUFFckQsb0JBQW9CO0FBRVAsUUFBQSxlQUFlLEdBQUcsMEJBQTBCLENBQUM7QUFFMUQsSUFBWSxVQU1YO0FBTkQsV0FBWSxVQUFVO0lBQ3BCLGlGQUEyQixDQUFBO0lBQzNCLG1FQUFvQixDQUFBO0lBQ3BCLCtFQUEwQixDQUFBO0lBQzFCLG1GQUE0QixDQUFBO0lBQzVCLDJFQUF3QixDQUFBO0FBQzFCLENBQUMsRUFOVyxVQUFVLEdBQVYsa0JBQVUsS0FBVixrQkFBVSxRQU1yQjtBQUVELFNBQWdCLGtCQUFrQixDQUFDLE1BQVc7SUFDNUMsUUFBUSxNQUFNLEVBQUU7UUFDZCxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUsseUJBQXlCO1lBQzVCLE9BQU8sVUFBVSxDQUFDLHVCQUF1QixDQUFDO1FBQzVDLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxrQkFBa0I7WUFDckIsT0FBTyxVQUFVLENBQUMsZ0JBQWdCLENBQUM7UUFDckMsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLHdCQUF3QjtZQUMzQixPQUFPLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQztRQUMzQyxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssMEJBQTBCO1lBQzdCLE9BQU8sVUFBVSxDQUFDLHdCQUF3QixDQUFDO1FBQzdDLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxzQkFBc0I7WUFDekIsT0FBTyxVQUFVLENBQUMsb0JBQW9CLENBQUM7UUFDekM7WUFDRSxNQUFNLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsR0FBRyxNQUFNLEdBQUcsc0JBQXNCLENBQUMsQ0FBQztLQUM1RjtBQUNILENBQUM7QUFwQkQsZ0RBb0JDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsTUFBa0I7SUFDakQsUUFBUSxNQUFNLEVBQUU7UUFDZCxLQUFLLFVBQVUsQ0FBQyx1QkFBdUI7WUFDckMsT0FBTyx5QkFBeUIsQ0FBQztRQUNuQyxLQUFLLFVBQVUsQ0FBQyxnQkFBZ0I7WUFDOUIsT0FBTyxrQkFBa0IsQ0FBQztRQUM1QixLQUFLLFVBQVUsQ0FBQyxzQkFBc0I7WUFDcEMsT0FBTyx3QkFBd0IsQ0FBQztRQUNsQyxLQUFLLFVBQVUsQ0FBQyx3QkFBd0I7WUFDdEMsT0FBTywwQkFBMEIsQ0FBQztRQUNwQyxLQUFLLFVBQVUsQ0FBQyxvQkFBb0I7WUFDbEMsT0FBTyxzQkFBc0IsQ0FBQztRQUNoQztZQUNFLE1BQU0sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLDBCQUEwQixHQUFHLE1BQU0sR0FBRyxzQkFBc0IsQ0FBQyxDQUFDO0tBQzVGO0FBQ0gsQ0FBQztBQWZELDRDQWVDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29kZSBnZW5lcmF0ZWQgYnkgcHJvdG9jLWdlbi10c19wcm90by4gRE8gTk9UIEVESVQuXG4vLyB2ZXJzaW9uczpcbi8vICAgcHJvdG9jLWdlbi10c19wcm90byAgdjEuMTgxLjFcbi8vICAgcHJvdG9jICAgICAgICAgICAgICAgdjMuMTkuMVxuLy8gc291cmNlOiBjb20vY29yYWxvZ2l4L2Jsb2JzZXQvdjIvZW50aXR5X3R5cGUucHJvdG9cblxuLyogZXNsaW50LWRpc2FibGUgKi9cblxuZXhwb3J0IGNvbnN0IHByb3RvYnVmUGFja2FnZSA9IFwiY29tLmNvcmFsb2dpeC5ibG9ic2V0LnYyXCI7XG5cbmV4cG9ydCBlbnVtIEVudGl0eVR5cGUge1xuICBFTlRJVFlfVFlQRV9VTlNQRUNJRklFRCA9IDAsXG4gIEVOVElUWV9UWVBFX0RTWU0gPSAxLFxuICBFTlRJVFlfVFlQRV9TT1VSQ0VfTUFQID0gMixcbiAgRU5USVRZX1RZUEVfUkVBQ1RfTkFUSVZFID0gMyxcbiAgRU5USVRZX1RZUEVfUFJPR1VBUkQgPSA0LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5VHlwZUZyb21KU09OKG9iamVjdDogYW55KTogRW50aXR5VHlwZSB7XG4gIHN3aXRjaCAob2JqZWN0KSB7XG4gICAgY2FzZSAwOlxuICAgIGNhc2UgXCJFTlRJVFlfVFlQRV9VTlNQRUNJRklFRFwiOlxuICAgICAgcmV0dXJuIEVudGl0eVR5cGUuRU5USVRZX1RZUEVfVU5TUEVDSUZJRUQ7XG4gICAgY2FzZSAxOlxuICAgIGNhc2UgXCJFTlRJVFlfVFlQRV9EU1lNXCI6XG4gICAgICByZXR1cm4gRW50aXR5VHlwZS5FTlRJVFlfVFlQRV9EU1lNO1xuICAgIGNhc2UgMjpcbiAgICBjYXNlIFwiRU5USVRZX1RZUEVfU09VUkNFX01BUFwiOlxuICAgICAgcmV0dXJuIEVudGl0eVR5cGUuRU5USVRZX1RZUEVfU09VUkNFX01BUDtcbiAgICBjYXNlIDM6XG4gICAgY2FzZSBcIkVOVElUWV9UWVBFX1JFQUNUX05BVElWRVwiOlxuICAgICAgcmV0dXJuIEVudGl0eVR5cGUuRU5USVRZX1RZUEVfUkVBQ1RfTkFUSVZFO1xuICAgIGNhc2UgNDpcbiAgICBjYXNlIFwiRU5USVRZX1RZUEVfUFJPR1VBUkRcIjpcbiAgICAgIHJldHVybiBFbnRpdHlUeXBlLkVOVElUWV9UWVBFX1BST0dVQVJEO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgZ2xvYmFsVGhpcy5FcnJvcihcIlVucmVjb2duaXplZCBlbnVtIHZhbHVlIFwiICsgb2JqZWN0ICsgXCIgZm9yIGVudW0gRW50aXR5VHlwZVwiKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5VHlwZVRvSlNPTihvYmplY3Q6IEVudGl0eVR5cGUpOiBzdHJpbmcge1xuICBzd2l0Y2ggKG9iamVjdCkge1xuICAgIGNhc2UgRW50aXR5VHlwZS5FTlRJVFlfVFlQRV9VTlNQRUNJRklFRDpcbiAgICAgIHJldHVybiBcIkVOVElUWV9UWVBFX1VOU1BFQ0lGSUVEXCI7XG4gICAgY2FzZSBFbnRpdHlUeXBlLkVOVElUWV9UWVBFX0RTWU06XG4gICAgICByZXR1cm4gXCJFTlRJVFlfVFlQRV9EU1lNXCI7XG4gICAgY2FzZSBFbnRpdHlUeXBlLkVOVElUWV9UWVBFX1NPVVJDRV9NQVA6XG4gICAgICByZXR1cm4gXCJFTlRJVFlfVFlQRV9TT1VSQ0VfTUFQXCI7XG4gICAgY2FzZSBFbnRpdHlUeXBlLkVOVElUWV9UWVBFX1JFQUNUX05BVElWRTpcbiAgICAgIHJldHVybiBcIkVOVElUWV9UWVBFX1JFQUNUX05BVElWRVwiO1xuICAgIGNhc2UgRW50aXR5VHlwZS5FTlRJVFlfVFlQRV9QUk9HVUFSRDpcbiAgICAgIHJldHVybiBcIkVOVElUWV9UWVBFX1BST0dVQVJEXCI7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBnbG9iYWxUaGlzLkVycm9yKFwiVW5yZWNvZ25pemVkIGVudW0gdmFsdWUgXCIgKyBvYmplY3QgKyBcIiBmb3IgZW51bSBFbnRpdHlUeXBlXCIpO1xuICB9XG59XG4iXX0=
@@ -21,6 +21,13 @@ export interface ReactNativeMetadata {
21
21
  repoName?: string | undefined;
22
22
  orgName?: string | undefined;
23
23
  }
24
+ export interface ProguardMetadata {
25
+ application: string;
26
+ releaseId: string;
27
+ commitHash?: string | undefined;
28
+ repoName?: string | undefined;
29
+ orgName?: string | undefined;
30
+ }
24
31
  export interface ReleaseEntityMetadata {
25
32
  metadata?: {
26
33
  $case: "dsymMetadata";
@@ -31,6 +38,9 @@ export interface ReleaseEntityMetadata {
31
38
  } | {
32
39
  $case: "reactNativeMetadata";
33
40
  reactNativeMetadata: ReactNativeMetadata;
41
+ } | {
42
+ $case: "proguardMetadata";
43
+ proguardMetadata: ProguardMetadata;
34
44
  } | undefined;
35
45
  }
36
46
  export declare const DsymMetadata: {
@@ -57,6 +67,14 @@ export declare const ReactNativeMetadata: {
57
67
  create(base?: DeepPartial<ReactNativeMetadata>): ReactNativeMetadata;
58
68
  fromPartial(object: DeepPartial<ReactNativeMetadata>): ReactNativeMetadata;
59
69
  };
70
+ export declare const ProguardMetadata: {
71
+ encode(message: ProguardMetadata, writer?: _m0.Writer): _m0.Writer;
72
+ decode(input: _m0.Reader | Uint8Array, length?: number): ProguardMetadata;
73
+ fromJSON(object: any): ProguardMetadata;
74
+ toJSON(message: ProguardMetadata): unknown;
75
+ create(base?: DeepPartial<ProguardMetadata>): ProguardMetadata;
76
+ fromPartial(object: DeepPartial<ProguardMetadata>): ProguardMetadata;
77
+ };
60
78
  export declare const ReleaseEntityMetadata: {
61
79
  encode(message: ReleaseEntityMetadata, writer?: _m0.Writer): _m0.Writer;
62
80
  decode(input: _m0.Reader | Uint8Array, length?: number): ReleaseEntityMetadata;