@coralogix/rum-cli 1.1.22 → 1.1.25

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 (187) hide show
  1. package/README.md +26 -7
  2. package/api/client/client-factory.ts +26 -0
  3. package/api/client/request-builder.ts +122 -0
  4. package/api/dsym.api.ts +61 -0
  5. package/api/react-native.api.ts +67 -0
  6. package/api/{rum-api.ts → source-maps.api.ts} +14 -22
  7. package/cli/commands/dsym/index.ts +5 -0
  8. package/cli/commands/dsym/upload-dsym-command.ts +36 -0
  9. package/cli/commands/react-native/index.ts +5 -0
  10. package/cli/commands/{upload-react-native-source-maps-command.ts → react-native/upload-react-native-source-maps-command.ts} +14 -11
  11. package/cli/commands/{delete-source-maps-command.ts → source-maps/delete-source-maps-command.ts} +7 -9
  12. package/cli/commands/source-maps/index.ts +7 -0
  13. package/cli/commands/{update-source-maps-command.ts → source-maps/update-source-maps-command.ts} +7 -9
  14. package/cli/commands/{upload-source-maps-command.ts → source-maps/upload-source-maps-command.ts} +7 -9
  15. package/cli/rum-cli.ts +15 -6
  16. package/config/config.ts +10 -4
  17. package/consts/consts.ts +2 -0
  18. package/dist/api/client/client-factory.d.ts +355 -0
  19. package/dist/api/client/client-factory.js +31 -0
  20. package/dist/api/client/request-builder.d.ts +33 -0
  21. package/dist/api/client/request-builder.js +58 -0
  22. package/dist/api/dsym.api.d.ts +4 -0
  23. package/dist/api/dsym.api.js +50 -0
  24. package/dist/api/react-native.api.d.ts +4 -0
  25. package/dist/api/react-native.api.js +50 -0
  26. package/dist/api/{rum-api.d.ts → source-maps.api.d.ts} +2 -2
  27. package/dist/api/source-maps.api.js +97 -0
  28. package/dist/cli/commands/dsym/index.d.ts +4 -0
  29. package/dist/cli/commands/dsym/index.js +6 -0
  30. package/dist/cli/commands/dsym/upload-dsym-command.d.ts +2 -0
  31. package/dist/cli/commands/dsym/upload-dsym-command.js +45 -0
  32. package/dist/cli/commands/react-native/index.d.ts +4 -0
  33. package/dist/cli/commands/react-native/index.js +6 -0
  34. package/dist/cli/commands/react-native/upload-react-native-source-maps-command.js +51 -0
  35. package/dist/cli/commands/source-maps/delete-source-maps-command.js +41 -0
  36. package/dist/cli/commands/{index.d.ts → source-maps/index.d.ts} +2 -3
  37. package/dist/cli/commands/source-maps/index.js +8 -0
  38. package/dist/cli/commands/source-maps/update-source-maps-command.js +46 -0
  39. package/dist/cli/commands/source-maps/upload-source-maps-command.js +45 -0
  40. package/dist/cli/rum-cli.js +11 -7
  41. package/dist/config/config.d.ts +5 -2
  42. package/dist/config/config.js +6 -3
  43. package/dist/consts/consts.d.ts +1 -0
  44. package/dist/consts/consts.js +3 -2
  45. package/dist/models/dsym-commands.model.d.ts +11 -0
  46. package/dist/models/dsym-commands.model.js +3 -0
  47. package/dist/models/react-native-commands.model.d.ts +11 -0
  48. package/dist/models/react-native-commands.model.js +3 -0
  49. package/dist/models/{commands.model.d.ts → source-maps-commands.model.d.ts} +3 -3
  50. package/dist/models/source-maps-commands.model.js +3 -0
  51. package/dist/proto-models/com/coralogix/blobset/v2/audit_log.d.ts +24 -0
  52. package/dist/proto-models/com/coralogix/blobset/v2/audit_log.js +69 -0
  53. package/dist/proto-models/com/coralogix/blobset/v2/blobset_query_service.d.ts +111 -0
  54. package/dist/proto-models/com/coralogix/blobset/v2/blobset_query_service.js +36 -0
  55. package/dist/proto-models/com/coralogix/blobset/v2/blobset_service.d.ts +67 -0
  56. package/dist/proto-models/com/coralogix/blobset/v2/blobset_service.js +179 -0
  57. package/dist/proto-models/com/coralogix/blobset/v2/dsym.d.ts +58 -0
  58. package/dist/proto-models/com/coralogix/blobset/v2/dsym.js +336 -0
  59. package/dist/proto-models/com/coralogix/blobset/v2/entity_metadata.d.ts +78 -0
  60. package/dist/proto-models/com/coralogix/blobset/v2/entity_metadata.js +464 -0
  61. package/dist/proto-models/com/coralogix/blobset/v2/entity_type.d.ts +9 -0
  62. package/dist/proto-models/com/coralogix/blobset/v2/entity_type.js +52 -0
  63. package/dist/proto-models/com/coralogix/blobset/v2/react_native.d.ts +54 -0
  64. package/dist/proto-models/com/coralogix/blobset/v2/react_native.js +318 -0
  65. package/dist/proto-models/com/coralogix/blobset/v2/s3_metadata.d.ts +30 -0
  66. package/dist/proto-models/com/coralogix/blobset/v2/s3_metadata.js +131 -0
  67. package/dist/proto-models/com/coralogix/rum/v2/analytics.js +9 -1
  68. package/dist/proto-models/com/coralogix/rum/v2/audit_log.js +6 -1
  69. package/dist/proto-models/com/coralogix/rum/v2/chunk.js +9 -1
  70. package/dist/proto-models/com/coralogix/rum/v2/file.js +9 -1
  71. package/dist/proto-models/com/coralogix/rum/v2/hide_errors.d.ts +44 -0
  72. package/dist/proto-models/com/coralogix/rum/v2/hide_errors.js +203 -0
  73. package/dist/proto-models/com/coralogix/rum/v2/release_entity_metadata.d.ts +78 -0
  74. package/dist/proto-models/com/coralogix/rum/v2/release_entity_metadata.js +464 -0
  75. package/dist/proto-models/com/coralogix/rum/v2/release_entity_type.d.ts +9 -0
  76. package/dist/proto-models/com/coralogix/rum/v2/release_entity_type.js +52 -0
  77. package/dist/proto-models/com/coralogix/rum/v2/rum_hide_errors_service.d.ts +198 -0
  78. package/dist/proto-models/com/coralogix/rum/v2/rum_hide_errors_service.js +522 -0
  79. package/dist/proto-models/com/coralogix/rum/v2/rum_react_native_source_map_service.js +6 -1
  80. package/dist/proto-models/com/coralogix/rum/v2/rum_saved_filters_service.d.ts +1 -47
  81. package/dist/proto-models/com/coralogix/rum/v2/rum_saved_filters_service.js +18 -153
  82. package/dist/proto-models/com/coralogix/rum/v2/rum_sdk_versions.d.ts +41 -0
  83. package/dist/proto-models/com/coralogix/rum/v2/rum_sdk_versions.js +225 -0
  84. package/dist/proto-models/com/coralogix/rum/v2/rum_service.d.ts +45 -0
  85. package/dist/proto-models/com/coralogix/rum/v2/rum_service.js +134 -6
  86. package/dist/proto-models/com/coralogix/rum/v2/rum_session_recording_service.js +7 -2
  87. package/dist/proto-models/com/coralogix/rum/v2/rum_settings.d.ts +45 -0
  88. package/dist/proto-models/com/coralogix/rum/v2/rum_settings.js +198 -0
  89. package/dist/proto-models/com/coralogix/rum/v2/rum_settings_service.d.ts +107 -0
  90. package/dist/proto-models/com/coralogix/rum/v2/rum_settings_service.js +219 -0
  91. package/dist/proto-models/com/coralogix/rum/v2/rum_snooze_errors_service.js +6 -1
  92. package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.d.ts +92 -0
  93. package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.js +266 -2
  94. package/dist/proto-models/com/coralogix/rum/v2/saved_filter.js +8 -3
  95. package/dist/proto-models/com/coralogix/rum/v2/snooze_errors.js +9 -1
  96. package/dist/proto-models/com/coralogix/rum/v2/source_code_file_mapping.js +6 -1
  97. package/dist/proto-models/com/coralogix/rum/v2/source_map_release.js +9 -1
  98. package/dist/proto-models/com/coralogix/rum/v2/template.js +9 -1
  99. package/dist/proto-models/google/protobuf/descriptor.d.ts +95 -95
  100. package/dist/proto-models/google/protobuf/descriptor.js +184 -176
  101. package/dist/services/{react-native-source-maps.service.d.ts → dsym.service.d.ts} +1 -1
  102. package/dist/services/dsym.service.js +36 -0
  103. package/dist/services/react-native.service.d.ts +3 -0
  104. package/dist/services/react-native.service.js +37 -0
  105. package/dist/services/source-maps.service.js +12 -14
  106. package/dist/utils/file-processor.utils.d.ts +12 -0
  107. package/dist/utils/file-processor.utils.js +196 -0
  108. package/dist/utils/shared.utils.d.ts +9 -0
  109. package/dist/utils/shared.utils.js +62 -0
  110. package/models/dsym-commands.model.ts +11 -0
  111. package/models/react-native-commands.model.ts +11 -0
  112. package/models/{commands.model.ts → source-maps-commands.model.ts} +3 -3
  113. package/package.json +2 -2
  114. package/proto-models/com/coralogix/blobset/v2/audit_log.ts +84 -0
  115. package/proto-models/com/coralogix/blobset/v2/blobset_query_service.ts +36 -0
  116. package/proto-models/com/coralogix/blobset/v2/blobset_service.ts +209 -0
  117. package/proto-models/com/coralogix/blobset/v2/dsym.ts +400 -0
  118. package/proto-models/com/coralogix/blobset/v2/entity_metadata.ts +543 -0
  119. package/proto-models/com/coralogix/blobset/v2/entity_type.ts +50 -0
  120. package/proto-models/com/coralogix/blobset/v2/react_native.ts +367 -0
  121. package/proto-models/com/coralogix/blobset/v2/s3_metadata.ts +154 -0
  122. package/proto-models/com/coralogix/rum/v2/analytics.ts +9 -0
  123. package/proto-models/com/coralogix/rum/v2/audit_log.ts +6 -0
  124. package/proto-models/com/coralogix/rum/v2/chunk.ts +9 -0
  125. package/proto-models/com/coralogix/rum/v2/file.ts +11 -2
  126. package/proto-models/com/coralogix/rum/v2/hide_errors.ts +234 -0
  127. package/proto-models/com/coralogix/rum/v2/release_entity_metadata.ts +543 -0
  128. package/proto-models/com/coralogix/rum/v2/release_entity_type.ts +50 -0
  129. package/proto-models/com/coralogix/rum/v2/rum_hide_errors_service.ts +605 -0
  130. package/proto-models/com/coralogix/rum/v2/rum_react_native_source_map_service.ts +6 -0
  131. package/proto-models/com/coralogix/rum/v2/rum_saved_filters_service.ts +18 -176
  132. package/proto-models/com/coralogix/rum/v2/rum_sdk_versions.ts +263 -0
  133. package/proto-models/com/coralogix/rum/v2/rum_service.ts +152 -4
  134. package/proto-models/com/coralogix/rum/v2/rum_session_recording_service.ts +6 -0
  135. package/proto-models/com/coralogix/rum/v2/rum_settings.ts +215 -0
  136. package/proto-models/com/coralogix/rum/v2/rum_settings_service.ts +266 -0
  137. package/proto-models/com/coralogix/rum/v2/rum_snooze_errors_service.ts +6 -0
  138. package/proto-models/com/coralogix/rum/v2/rum_source_map_service.ts +310 -0
  139. package/proto-models/com/coralogix/rum/v2/saved_filter.ts +8 -2
  140. package/proto-models/com/coralogix/rum/v2/snooze_errors.ts +9 -0
  141. package/proto-models/com/coralogix/rum/v2/source_code_file_mapping.ts +6 -0
  142. package/proto-models/com/coralogix/rum/v2/source_map_release.ts +9 -0
  143. package/proto-models/com/coralogix/rum/v2/template.ts +9 -0
  144. package/proto-models/google/protobuf/descriptor.ts +391 -272
  145. package/protofetch.lock +21 -2
  146. package/protofetch.toml +6 -1
  147. package/protos/com/coralogix/blobset/v2/audit_log.proto +13 -0
  148. package/protos/com/coralogix/blobset/v2/blobset_query_service.proto +12 -0
  149. package/protos/com/coralogix/blobset/v2/blobset_service.proto +18 -0
  150. package/protos/com/coralogix/blobset/v2/dsym.proto +19 -0
  151. package/protos/com/coralogix/blobset/v2/entity_metadata.proto +36 -0
  152. package/protos/com/coralogix/blobset/v2/entity_type.proto +10 -0
  153. package/protos/com/coralogix/blobset/v2/react_native.proto +23 -0
  154. package/protos/com/coralogix/blobset/v2/s3_metadata.proto +14 -0
  155. package/protos/com/coralogix/rum/v2/hide_errors.proto +19 -0
  156. package/protos/com/coralogix/rum/v2/release_entity_metadata.proto +35 -0
  157. package/protos/com/coralogix/rum/v2/release_entity_type.proto +10 -0
  158. package/protos/com/coralogix/rum/v2/rum_hide_errors_service.proto +42 -0
  159. package/protos/com/coralogix/rum/v2/rum_saved_filters_service.proto +1 -12
  160. package/protos/com/coralogix/rum/v2/rum_sdk_versions.proto +16 -0
  161. package/protos/com/coralogix/rum/v2/rum_service.proto +10 -0
  162. package/protos/com/coralogix/rum/v2/rum_settings.proto +26 -0
  163. package/protos/com/coralogix/rum/v2/rum_settings_service.proto +21 -0
  164. package/protos/com/coralogix/rum/v2/rum_source_map_service.proto +19 -0
  165. package/protoset.bin +0 -0
  166. package/services/dsym.service.ts +33 -0
  167. package/services/react-native.service.ts +34 -0
  168. package/services/source-maps.service.ts +12 -14
  169. package/utils/file-processor.utils.ts +176 -0
  170. package/utils/shared.utils.ts +52 -0
  171. package/cli/commands/index.ts +0 -8
  172. package/dist/api/rum-api.js +0 -104
  173. package/dist/cli/commands/delete-source-maps-command.js +0 -43
  174. package/dist/cli/commands/index.js +0 -9
  175. package/dist/cli/commands/update-source-maps-command.js +0 -48
  176. package/dist/cli/commands/upload-react-native-source-maps-command.js +0 -47
  177. package/dist/cli/commands/upload-source-maps-command.js +0 -47
  178. package/dist/models/commands.model.js +0 -3
  179. package/dist/services/react-native-source-maps.service.js +0 -42
  180. package/dist/utils/index.d.ts +0 -6
  181. package/dist/utils/index.js +0 -115
  182. package/services/react-native-source-maps.service.ts +0 -40
  183. package/utils/index.ts +0 -93
  184. /package/dist/cli/commands/{upload-react-native-source-maps-command.d.ts → react-native/upload-react-native-source-maps-command.d.ts} +0 -0
  185. /package/dist/cli/commands/{delete-source-maps-command.d.ts → source-maps/delete-source-maps-command.d.ts} +0 -0
  186. /package/dist/cli/commands/{update-source-maps-command.d.ts → source-maps/update-source-maps-command.d.ts} +0 -0
  187. /package/dist/cli/commands/{upload-source-maps-command.d.ts → source-maps/upload-source-maps-command.d.ts} +0 -0
@@ -0,0 +1,464 @@
1
+ "use strict";
2
+ // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
3
+ // versions:
4
+ // protoc-gen-ts_proto v1.181.1
5
+ // protoc v3.19.1
6
+ // source: com/coralogix/rum/v2/release_entity_metadata.proto
7
+ var __importDefault = (this && this.__importDefault) || function (mod) {
8
+ return (mod && mod.__esModule) ? mod : { "default": mod };
9
+ };
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.ReleaseEntityMetadata = exports.ReactNativeMetadata = exports.SourceMapMetadata = exports.DsymMetadata = exports.protobufPackage = void 0;
12
+ /* eslint-disable */
13
+ const minimal_1 = __importDefault(require("protobufjs/minimal"));
14
+ exports.protobufPackage = "com.coralogix.rum.v2";
15
+ function createBaseDsymMetadata() {
16
+ return { application: "", releaseId: "", commitHash: undefined, repoName: undefined, orgName: undefined };
17
+ }
18
+ exports.DsymMetadata = {
19
+ encode(message, writer = minimal_1.default.Writer.create()) {
20
+ if (message.application !== "") {
21
+ writer.uint32(10).string(message.application);
22
+ }
23
+ if (message.releaseId !== "") {
24
+ writer.uint32(18).string(message.releaseId);
25
+ }
26
+ if (message.commitHash !== undefined) {
27
+ writer.uint32(26).string(message.commitHash);
28
+ }
29
+ if (message.repoName !== undefined) {
30
+ writer.uint32(34).string(message.repoName);
31
+ }
32
+ if (message.orgName !== undefined) {
33
+ writer.uint32(42).string(message.orgName);
34
+ }
35
+ return writer;
36
+ },
37
+ decode(input, length) {
38
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
39
+ let end = length === undefined ? reader.len : reader.pos + length;
40
+ const message = createBaseDsymMetadata();
41
+ while (reader.pos < end) {
42
+ const tag = reader.uint32();
43
+ switch (tag >>> 3) {
44
+ case 1:
45
+ if (tag !== 10) {
46
+ break;
47
+ }
48
+ message.application = reader.string();
49
+ continue;
50
+ case 2:
51
+ if (tag !== 18) {
52
+ break;
53
+ }
54
+ message.releaseId = reader.string();
55
+ continue;
56
+ case 3:
57
+ if (tag !== 26) {
58
+ break;
59
+ }
60
+ message.commitHash = reader.string();
61
+ continue;
62
+ case 4:
63
+ if (tag !== 34) {
64
+ break;
65
+ }
66
+ message.repoName = reader.string();
67
+ continue;
68
+ case 5:
69
+ if (tag !== 42) {
70
+ break;
71
+ }
72
+ message.orgName = reader.string();
73
+ continue;
74
+ }
75
+ if ((tag & 7) === 4 || tag === 0) {
76
+ break;
77
+ }
78
+ reader.skipType(tag & 7);
79
+ }
80
+ return message;
81
+ },
82
+ fromJSON(object) {
83
+ return {
84
+ application: isSet(object.application) ? globalThis.String(object.application) : "",
85
+ releaseId: isSet(object.releaseId) ? globalThis.String(object.releaseId) : "",
86
+ commitHash: isSet(object.commitHash) ? globalThis.String(object.commitHash) : undefined,
87
+ repoName: isSet(object.repoName) ? globalThis.String(object.repoName) : undefined,
88
+ orgName: isSet(object.orgName) ? globalThis.String(object.orgName) : undefined,
89
+ };
90
+ },
91
+ toJSON(message) {
92
+ const obj = {};
93
+ if (message.application !== "") {
94
+ obj.application = message.application;
95
+ }
96
+ if (message.releaseId !== "") {
97
+ obj.releaseId = message.releaseId;
98
+ }
99
+ if (message.commitHash !== undefined) {
100
+ obj.commitHash = message.commitHash;
101
+ }
102
+ if (message.repoName !== undefined) {
103
+ obj.repoName = message.repoName;
104
+ }
105
+ if (message.orgName !== undefined) {
106
+ obj.orgName = message.orgName;
107
+ }
108
+ return obj;
109
+ },
110
+ create(base) {
111
+ return exports.DsymMetadata.fromPartial(base !== null && base !== void 0 ? base : {});
112
+ },
113
+ fromPartial(object) {
114
+ var _a, _b, _c, _d, _e;
115
+ const message = createBaseDsymMetadata();
116
+ message.application = (_a = object.application) !== null && _a !== void 0 ? _a : "";
117
+ message.releaseId = (_b = object.releaseId) !== null && _b !== void 0 ? _b : "";
118
+ message.commitHash = (_c = object.commitHash) !== null && _c !== void 0 ? _c : undefined;
119
+ message.repoName = (_d = object.repoName) !== null && _d !== void 0 ? _d : undefined;
120
+ message.orgName = (_e = object.orgName) !== null && _e !== void 0 ? _e : undefined;
121
+ return message;
122
+ },
123
+ };
124
+ function createBaseSourceMapMetadata() {
125
+ return { application: "", releaseId: "", commitHash: undefined, repoName: undefined, orgName: undefined };
126
+ }
127
+ exports.SourceMapMetadata = {
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 = createBaseSourceMapMetadata();
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.SourceMapMetadata.fromPartial(base !== null && base !== void 0 ? base : {});
221
+ },
222
+ fromPartial(object) {
223
+ var _a, _b, _c, _d, _e;
224
+ const message = createBaseSourceMapMetadata();
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
+ };
233
+ function createBaseReactNativeMetadata() {
234
+ return { application: "", releaseId: "", commitHash: undefined, repoName: undefined, orgName: undefined };
235
+ }
236
+ exports.ReactNativeMetadata = {
237
+ encode(message, writer = minimal_1.default.Writer.create()) {
238
+ if (message.application !== "") {
239
+ writer.uint32(10).string(message.application);
240
+ }
241
+ if (message.releaseId !== "") {
242
+ writer.uint32(18).string(message.releaseId);
243
+ }
244
+ if (message.commitHash !== undefined) {
245
+ writer.uint32(26).string(message.commitHash);
246
+ }
247
+ if (message.repoName !== undefined) {
248
+ writer.uint32(34).string(message.repoName);
249
+ }
250
+ if (message.orgName !== undefined) {
251
+ writer.uint32(42).string(message.orgName);
252
+ }
253
+ return writer;
254
+ },
255
+ decode(input, length) {
256
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
257
+ let end = length === undefined ? reader.len : reader.pos + length;
258
+ const message = createBaseReactNativeMetadata();
259
+ while (reader.pos < end) {
260
+ const tag = reader.uint32();
261
+ switch (tag >>> 3) {
262
+ case 1:
263
+ if (tag !== 10) {
264
+ break;
265
+ }
266
+ message.application = reader.string();
267
+ continue;
268
+ case 2:
269
+ if (tag !== 18) {
270
+ break;
271
+ }
272
+ message.releaseId = reader.string();
273
+ continue;
274
+ case 3:
275
+ if (tag !== 26) {
276
+ break;
277
+ }
278
+ message.commitHash = reader.string();
279
+ continue;
280
+ case 4:
281
+ if (tag !== 34) {
282
+ break;
283
+ }
284
+ message.repoName = reader.string();
285
+ continue;
286
+ case 5:
287
+ if (tag !== 42) {
288
+ break;
289
+ }
290
+ message.orgName = reader.string();
291
+ continue;
292
+ }
293
+ if ((tag & 7) === 4 || tag === 0) {
294
+ break;
295
+ }
296
+ reader.skipType(tag & 7);
297
+ }
298
+ return message;
299
+ },
300
+ fromJSON(object) {
301
+ return {
302
+ application: isSet(object.application) ? globalThis.String(object.application) : "",
303
+ releaseId: isSet(object.releaseId) ? globalThis.String(object.releaseId) : "",
304
+ commitHash: isSet(object.commitHash) ? globalThis.String(object.commitHash) : undefined,
305
+ repoName: isSet(object.repoName) ? globalThis.String(object.repoName) : undefined,
306
+ orgName: isSet(object.orgName) ? globalThis.String(object.orgName) : undefined,
307
+ };
308
+ },
309
+ toJSON(message) {
310
+ const obj = {};
311
+ if (message.application !== "") {
312
+ obj.application = message.application;
313
+ }
314
+ if (message.releaseId !== "") {
315
+ obj.releaseId = message.releaseId;
316
+ }
317
+ if (message.commitHash !== undefined) {
318
+ obj.commitHash = message.commitHash;
319
+ }
320
+ if (message.repoName !== undefined) {
321
+ obj.repoName = message.repoName;
322
+ }
323
+ if (message.orgName !== undefined) {
324
+ obj.orgName = message.orgName;
325
+ }
326
+ return obj;
327
+ },
328
+ create(base) {
329
+ return exports.ReactNativeMetadata.fromPartial(base !== null && base !== void 0 ? base : {});
330
+ },
331
+ fromPartial(object) {
332
+ var _a, _b, _c, _d, _e;
333
+ const message = createBaseReactNativeMetadata();
334
+ message.application = (_a = object.application) !== null && _a !== void 0 ? _a : "";
335
+ message.releaseId = (_b = object.releaseId) !== null && _b !== void 0 ? _b : "";
336
+ message.commitHash = (_c = object.commitHash) !== null && _c !== void 0 ? _c : undefined;
337
+ message.repoName = (_d = object.repoName) !== null && _d !== void 0 ? _d : undefined;
338
+ message.orgName = (_e = object.orgName) !== null && _e !== void 0 ? _e : undefined;
339
+ return message;
340
+ },
341
+ };
342
+ function createBaseReleaseEntityMetadata() {
343
+ return { metadata: undefined };
344
+ }
345
+ exports.ReleaseEntityMetadata = {
346
+ encode(message, writer = minimal_1.default.Writer.create()) {
347
+ var _a;
348
+ switch ((_a = message.metadata) === null || _a === void 0 ? void 0 : _a.$case) {
349
+ case "dsymMetadata":
350
+ exports.DsymMetadata.encode(message.metadata.dsymMetadata, writer.uint32(10).fork()).ldelim();
351
+ break;
352
+ case "sourceMapMetadata":
353
+ exports.SourceMapMetadata.encode(message.metadata.sourceMapMetadata, writer.uint32(18).fork()).ldelim();
354
+ break;
355
+ case "reactNativeMetadata":
356
+ exports.ReactNativeMetadata.encode(message.metadata.reactNativeMetadata, writer.uint32(26).fork()).ldelim();
357
+ break;
358
+ }
359
+ return writer;
360
+ },
361
+ decode(input, length) {
362
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
363
+ let end = length === undefined ? reader.len : reader.pos + length;
364
+ const message = createBaseReleaseEntityMetadata();
365
+ while (reader.pos < end) {
366
+ const tag = reader.uint32();
367
+ switch (tag >>> 3) {
368
+ case 1:
369
+ if (tag !== 10) {
370
+ break;
371
+ }
372
+ message.metadata = { $case: "dsymMetadata", dsymMetadata: exports.DsymMetadata.decode(reader, reader.uint32()) };
373
+ continue;
374
+ case 2:
375
+ if (tag !== 18) {
376
+ break;
377
+ }
378
+ message.metadata = {
379
+ $case: "sourceMapMetadata",
380
+ sourceMapMetadata: exports.SourceMapMetadata.decode(reader, reader.uint32()),
381
+ };
382
+ continue;
383
+ case 3:
384
+ if (tag !== 26) {
385
+ break;
386
+ }
387
+ message.metadata = {
388
+ $case: "reactNativeMetadata",
389
+ reactNativeMetadata: exports.ReactNativeMetadata.decode(reader, reader.uint32()),
390
+ };
391
+ continue;
392
+ }
393
+ if ((tag & 7) === 4 || tag === 0) {
394
+ break;
395
+ }
396
+ reader.skipType(tag & 7);
397
+ }
398
+ return message;
399
+ },
400
+ fromJSON(object) {
401
+ return {
402
+ metadata: isSet(object.dsymMetadata)
403
+ ? { $case: "dsymMetadata", dsymMetadata: exports.DsymMetadata.fromJSON(object.dsymMetadata) }
404
+ : isSet(object.sourceMapMetadata)
405
+ ? { $case: "sourceMapMetadata", sourceMapMetadata: exports.SourceMapMetadata.fromJSON(object.sourceMapMetadata) }
406
+ : isSet(object.reactNativeMetadata)
407
+ ? {
408
+ $case: "reactNativeMetadata",
409
+ reactNativeMetadata: exports.ReactNativeMetadata.fromJSON(object.reactNativeMetadata),
410
+ }
411
+ : undefined,
412
+ };
413
+ },
414
+ toJSON(message) {
415
+ var _a, _b, _c;
416
+ const obj = {};
417
+ if (((_a = message.metadata) === null || _a === void 0 ? void 0 : _a.$case) === "dsymMetadata") {
418
+ obj.dsymMetadata = exports.DsymMetadata.toJSON(message.metadata.dsymMetadata);
419
+ }
420
+ if (((_b = message.metadata) === null || _b === void 0 ? void 0 : _b.$case) === "sourceMapMetadata") {
421
+ obj.sourceMapMetadata = exports.SourceMapMetadata.toJSON(message.metadata.sourceMapMetadata);
422
+ }
423
+ if (((_c = message.metadata) === null || _c === void 0 ? void 0 : _c.$case) === "reactNativeMetadata") {
424
+ obj.reactNativeMetadata = exports.ReactNativeMetadata.toJSON(message.metadata.reactNativeMetadata);
425
+ }
426
+ return obj;
427
+ },
428
+ create(base) {
429
+ return exports.ReleaseEntityMetadata.fromPartial(base !== null && base !== void 0 ? base : {});
430
+ },
431
+ fromPartial(object) {
432
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
433
+ const message = createBaseReleaseEntityMetadata();
434
+ if (((_a = object.metadata) === null || _a === void 0 ? void 0 : _a.$case) === "dsymMetadata" &&
435
+ ((_b = object.metadata) === null || _b === void 0 ? void 0 : _b.dsymMetadata) !== undefined &&
436
+ ((_c = object.metadata) === null || _c === void 0 ? void 0 : _c.dsymMetadata) !== null) {
437
+ message.metadata = {
438
+ $case: "dsymMetadata",
439
+ dsymMetadata: exports.DsymMetadata.fromPartial(object.metadata.dsymMetadata),
440
+ };
441
+ }
442
+ if (((_d = object.metadata) === null || _d === void 0 ? void 0 : _d.$case) === "sourceMapMetadata" &&
443
+ ((_e = object.metadata) === null || _e === void 0 ? void 0 : _e.sourceMapMetadata) !== undefined &&
444
+ ((_f = object.metadata) === null || _f === void 0 ? void 0 : _f.sourceMapMetadata) !== null) {
445
+ message.metadata = {
446
+ $case: "sourceMapMetadata",
447
+ sourceMapMetadata: exports.SourceMapMetadata.fromPartial(object.metadata.sourceMapMetadata),
448
+ };
449
+ }
450
+ if (((_g = object.metadata) === null || _g === void 0 ? void 0 : _g.$case) === "reactNativeMetadata" &&
451
+ ((_h = object.metadata) === null || _h === void 0 ? void 0 : _h.reactNativeMetadata) !== undefined &&
452
+ ((_j = object.metadata) === null || _j === void 0 ? void 0 : _j.reactNativeMetadata) !== null) {
453
+ message.metadata = {
454
+ $case: "reactNativeMetadata",
455
+ reactNativeMetadata: exports.ReactNativeMetadata.fromPartial(object.metadata.reactNativeMetadata),
456
+ };
457
+ }
458
+ return message;
459
+ },
460
+ };
461
+ function isSet(value) {
462
+ return value !== null && value !== undefined;
463
+ }
464
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsZWFzZV9lbnRpdHlfbWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm90by1tb2RlbHMvY29tL2NvcmFsb2dpeC9ydW0vdjIvcmVsZWFzZV9lbnRpdHlfbWV0YWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHNEQUFzRDtBQUN0RCxZQUFZO0FBQ1osa0NBQWtDO0FBQ2xDLGlDQUFpQztBQUNqQyw2REFBNkQ7Ozs7OztBQUU3RCxvQkFBb0I7QUFDcEIsaUVBQXFDO0FBRXhCLFFBQUEsZUFBZSxHQUFHLHNCQUFzQixDQUFDO0FBa0N0RCxTQUFTLHNCQUFzQjtJQUM3QixPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDNUcsQ0FBQztBQUVZLFFBQUEsWUFBWSxHQUFHO0lBQzFCLE1BQU0sQ0FBQyxPQUFxQixFQUFFLFNBQXFCLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNwRSxJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssRUFBRSxFQUFFO1lBQzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMvQztRQUNELElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNwQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENB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Q3JFLENBQUM7U0FDSDtRQUNELElBQ0UsQ0FBQSxNQUFBLE1BQU0sQ0FBQyxRQUFRLDBDQUFFLEtBQUssTUFBSyxtQkFBbUI7WUFDOUMsQ0FBQSxNQUFBLE1BQU0sQ0FBQyxRQUFRLDBDQUFFLGlCQUFpQixNQUFLLFNBQVM7WUFDaEQsQ0FBQSxNQUFBLE1BQU0sQ0FBQyxRQUFRLDBDQUFFLGlCQUFpQixNQUFLLElBQUksRUFDM0M7WUFDQSxPQUFPLENBQUMsUUFBUSxHQUFHO2dCQUNqQixLQUFLLEVBQUUsbUJBQW1CO2dCQUMxQixpQkFBaUIsRUFBRSx5QkFBaUIsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQzthQUNwRixDQUFDO1NBQ0g7UUFDRCxJQUNFLENBQUEsTUFBQSxNQUFNLENBQUMsUUFBUSwwQ0FBRSxLQUFLLE1BQUsscUJBQXFCO1lBQ2hELENBQUEsTUFBQSxNQUFNLENBQUMsUUFBUSwwQ0FBRSxtQkFBbUIsTUFBSyxTQUFTO1lBQ2xELENBQUEsTUFBQSxNQUFNLENBQUMsUUFBUSwwQ0FBRSxtQkFBbUIsTUFBSyxJQUFJLEVBQzdDO1lBQ0EsT0FBTyxDQUFDLFFBQVEsR0FBRztnQkFDakIsS0FBSyxFQUFFLHFCQUFxQjtnQkFDNUIsbUJBQW1CLEVBQUUsMkJBQW1CLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUM7YUFDMUYsQ0FBQztTQUNIO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFXRixTQUFTLEtBQUssQ0FBQyxLQUFVO0lBQ3ZCLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb2RlIGdlbmVyYXRlZCBieSBwcm90b2MtZ2VuLXRzX3Byb3RvLiBETyBOT1QgRURJVC5cbi8vIHZlcnNpb25zOlxuLy8gICBwcm90b2MtZ2VuLXRzX3Byb3RvICB2MS4xODEuMVxuLy8gICBwcm90b2MgICAgICAgICAgICAgICB2My4xOS4xXG4vLyBzb3VyY2U6IGNvbS9jb3JhbG9naXgvcnVtL3YyL3JlbGVhc2VfZW50aXR5X21ldGFkYXRhLnByb3RvXG5cbi8qIGVzbGludC1kaXNhYmxlICovXG5pbXBvcnQgX20wIGZyb20gXCJwcm90b2J1ZmpzL21pbmltYWxcIjtcblxuZXhwb3J0IGNvbnN0IHByb3RvYnVmUGFja2FnZSA9IFwiY29tLmNvcmFsb2dpeC5ydW0udjJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBEc3ltTWV0YWRhdGEge1xuICBhcHBsaWNhdGlvbjogc3RyaW5nO1xuICByZWxlYXNlSWQ6IHN0cmluZztcbiAgY29tbWl0SGFzaD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcmVwb05hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIG9yZ05hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlTWFwTWV0YWRhdGEge1xuICBhcHBsaWNhdGlvbjogc3RyaW5nO1xuICByZWxlYXNlSWQ6IHN0cmluZztcbiAgY29tbWl0SGFzaD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcmVwb05hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIG9yZ05hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVhY3ROYXRpdmVNZXRhZGF0YSB7XG4gIGFwcGxpY2F0aW9uOiBzdHJpbmc7XG4gIHJlbGVhc2VJZDogc3RyaW5nO1xuICBjb21taXRIYXNoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICByZXBvTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgb3JnTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWxlYXNlRW50aXR5TWV0YWRhdGEge1xuICBtZXRhZGF0YT86XG4gICAgfCB7ICRjYXNlOiBcImRzeW1NZXRhZGF0YVwiOyBkc3ltTWV0YWRhdGE6IERzeW1NZXRhZGF0YSB9XG4gICAgfCB7ICRjYXNlOiBcInNvdXJjZU1hcE1ldGFkYXRhXCI7IHNvdXJjZU1hcE1ldGFkYXRhOiBTb3VyY2VNYXBNZXRhZGF0YSB9XG4gICAgfCB7ICRjYXNlOiBcInJlYWN0TmF0aXZlTWV0YWRhdGFcIjsgcmVhY3ROYXRpdmVNZXRhZGF0YTogUmVhY3ROYXRpdmVNZXRhZGF0YSB9XG4gICAgfCB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VEc3ltTWV0YWRhdGEoKTogRHN5bU1ldGFkYXRhIHtcbiAgcmV0dXJuIHsgYXBwbGljYXRpb246IFwiXCIsIHJlbGVhc2VJZDogXCJcIiwgY29tbWl0SGFzaDogdW5kZWZpbmVkLCByZXBvTmFtZTogdW5kZWZpbmVkLCBvcmdOYW1lOiB1bmRlZmluZWQgfTtcbn1cblxuZXhwb3J0IGNvbnN0IERzeW1NZXRhZGF0YSA9IHtcbiAgZW5jb2RlKG1lc3NhZ2U6IERzeW1NZXRhZGF0YSwgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLmFwcGxpY2F0aW9uICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDEwKS5zdHJpbmcobWVzc2FnZS5hcHBsaWNhdGlvbik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlbGVhc2VJZCAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxOCkuc3RyaW5nKG1lc3NhZ2UucmVsZWFzZUlkKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuY29tbWl0SGFzaCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3cml0ZXIudWludDMyKDI2KS5zdHJpbmcobWVzc2FnZS5jb21taXRIYXNoKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVwb05hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigzNCkuc3RyaW5nKG1lc3NhZ2UucmVwb05hbWUpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5vcmdOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoNDIpLnN0cmluZyhtZXNzYWdlLm9yZ05hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IERzeW1NZXRhZGF0YSB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VEc3ltTWV0YWRhdGEoKTtcbiAgICB3aGlsZSAocmVhZGVyLnBvcyA8IGVuZCkge1xuICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGlmICh0YWcgIT09IDEwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmFwcGxpY2F0aW9uID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTgpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UucmVsZWFzZUlkID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMjYpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuY29tbWl0SGFzaCA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIGlmICh0YWcgIT09IDM0KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLnJlcG9OYW1lID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gNDIpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2Uub3JnTmFtZSA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICgodGFnICYgNykgPT09IDQgfHwgdGFnID09PSAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmVhZGVyLnNraXBUeXBlKHRhZyAmIDcpO1xuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcblxuICBmcm9tSlNPTihvYmplY3Q6IGFueSk6IERzeW1NZXRhZGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFwcGxpY2F0aW9uOiBpc1NldChvYmplY3QuYXBwbGljYXRpb24pID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LmFwcGxpY2F0aW9uKSA6IFwiXCIsXG4gICAgICByZWxlYXNlSWQ6IGlzU2V0KG9iamVjdC5yZWxlYXNlSWQpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LnJlbGVhc2VJZCkgOiBcIlwiLFxuICAgICAgY29tbWl0SGFzaDogaXNTZXQob2JqZWN0LmNvbW1pdEhhc2gpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LmNvbW1pdEhhc2gpIDogdW5kZWZpbmVkLFxuICAgICAgcmVwb05hbWU6IGlzU2V0KG9iamVjdC5yZXBvTmFtZSkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QucmVwb05hbWUpIDogdW5kZWZpbmVkLFxuICAgICAgb3JnTmFtZTogaXNTZXQob2JqZWN0Lm9yZ05hbWUpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0Lm9yZ05hbWUpIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IERzeW1NZXRhZGF0YSk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgaWYgKG1lc3NhZ2UuYXBwbGljYXRpb24gIT09IFwiXCIpIHtcbiAgICAgIG9iai5hcHBsaWNhdGlvbiA9IG1lc3NhZ2UuYXBwbGljYXRpb247XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlbGVhc2VJZCAhPT0gXCJcIikge1xuICAgICAgb2JqLnJlbGVhc2VJZCA9IG1lc3NhZ2UucmVsZWFzZUlkO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5jb21taXRIYXNoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai5jb21taXRIYXNoID0gbWVzc2FnZS5jb21taXRIYXNoO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZXBvTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvYmoucmVwb05hbWUgPSBtZXNzYWdlLnJlcG9OYW1lO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5vcmdOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai5vcmdOYW1lID0gbWVzc2FnZS5vcmdOYW1lO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8RHN5bU1ldGFkYXRhPik6IERzeW1NZXRhZGF0YSB7XG4gICAgcmV0dXJuIERzeW1NZXRhZGF0YS5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxEc3ltTWV0YWRhdGE+KTogRHN5bU1ldGFkYXRhIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZURzeW1NZXRhZGF0YSgpO1xuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBvYmplY3QuYXBwbGljYXRpb24gPz8gXCJcIjtcbiAgICBtZXNzYWdlLnJlbGVhc2VJZCA9IG9iamVjdC5yZWxlYXNlSWQgPz8gXCJcIjtcbiAgICBtZXNzYWdlLmNvbW1pdEhhc2ggPSBvYmplY3QuY29tbWl0SGFzaCA/PyB1bmRlZmluZWQ7XG4gICAgbWVzc2FnZS5yZXBvTmFtZSA9IG9iamVjdC5yZXBvTmFtZSA/PyB1bmRlZmluZWQ7XG4gICAgbWVzc2FnZS5vcmdOYW1lID0gb2JqZWN0Lm9yZ05hbWUgPz8gdW5kZWZpbmVkO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZnVuY3Rpb24gY3JlYXRlQmFzZVNvdXJjZU1hcE1ldGFkYXRhKCk6IFNvdXJjZU1hcE1ldGFkYXRhIHtcbiAgcmV0dXJuIHsgYXBwbGljYXRpb246IFwiXCIsIHJlbGVhc2VJZDogXCJcIiwgY29tbWl0SGFzaDogdW5kZWZpbmVkLCByZXBvTmFtZTogdW5kZWZpbmVkLCBvcmdOYW1lOiB1bmRlZmluZWQgfTtcbn1cblxuZXhwb3J0IGNvbnN0IFNvdXJjZU1hcE1ldGFkYXRhID0ge1xuICBlbmNvZGUobWVzc2FnZTogU291cmNlTWFwTWV0YWRhdGEsIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICBpZiAobWVzc2FnZS5hcHBsaWNhdGlvbiAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxMCkuc3RyaW5nKG1lc3NhZ2UuYXBwbGljYXRpb24pO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZWxlYXNlSWQgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTgpLnN0cmluZyhtZXNzYWdlLnJlbGVhc2VJZCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmNvbW1pdEhhc2ggIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigyNikuc3RyaW5nKG1lc3NhZ2UuY29tbWl0SGFzaCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlcG9OYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMzQpLnN0cmluZyhtZXNzYWdlLnJlcG9OYW1lKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2Uub3JnTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3cml0ZXIudWludDMyKDQyKS5zdHJpbmcobWVzc2FnZS5vcmdOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBTb3VyY2VNYXBNZXRhZGF0YSB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VTb3VyY2VNYXBNZXRhZGF0YSgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxOCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5yZWxlYXNlSWQgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBpZiAodGFnICE9PSAyNikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5jb21taXRIYXNoID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMzQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UucmVwb05hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICBpZiAodGFnICE9PSA0Mikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5vcmdOYW1lID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogU291cmNlTWFwTWV0YWRhdGEge1xuICAgIHJldHVybiB7XG4gICAgICBhcHBsaWNhdGlvbjogaXNTZXQob2JqZWN0LmFwcGxpY2F0aW9uKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5hcHBsaWNhdGlvbikgOiBcIlwiLFxuICAgICAgcmVsZWFzZUlkOiBpc1NldChvYmplY3QucmVsZWFzZUlkKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5yZWxlYXNlSWQpIDogXCJcIixcbiAgICAgIGNvbW1pdEhhc2g6IGlzU2V0KG9iamVjdC5jb21taXRIYXNoKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5jb21taXRIYXNoKSA6IHVuZGVmaW5lZCxcbiAgICAgIHJlcG9OYW1lOiBpc1NldChvYmplY3QucmVwb05hbWUpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LnJlcG9OYW1lKSA6IHVuZGVmaW5lZCxcbiAgICAgIG9yZ05hbWU6IGlzU2V0KG9iamVjdC5vcmdOYW1lKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5vcmdOYW1lKSA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9LFxuXG4gIHRvSlNPTihtZXNzYWdlOiBTb3VyY2VNYXBNZXRhZGF0YSk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgaWYgKG1lc3NhZ2UuYXBwbGljYXRpb24gIT09IFwiXCIpIHtcbiAgICAgIG9iai5hcHBsaWNhdGlvbiA9IG1lc3NhZ2UuYXBwbGljYXRpb247XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlbGVhc2VJZCAhPT0gXCJcIikge1xuICAgICAgb2JqLnJlbGVhc2VJZCA9IG1lc3NhZ2UucmVsZWFzZUlkO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5jb21taXRIYXNoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai5jb21taXRIYXNoID0gbWVzc2FnZS5jb21taXRIYXNoO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZXBvTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvYmoucmVwb05hbWUgPSBtZXNzYWdlLnJlcG9OYW1lO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5vcmdOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai5vcmdOYW1lID0gbWVzc2FnZS5vcmdOYW1lO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8U291cmNlTWFwTWV0YWRhdGE+KTogU291cmNlTWFwTWV0YWRhdGEge1xuICAgIHJldHVybiBTb3VyY2VNYXBNZXRhZGF0YS5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxTb3VyY2VNYXBNZXRhZGF0YT4pOiBTb3VyY2VNYXBNZXRhZGF0YSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VTb3VyY2VNYXBNZXRhZGF0YSgpO1xuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBvYmplY3QuYXBwbGljYXRpb24gPz8gXCJcIjtcbiAgICBtZXNzYWdlLnJlbGVhc2VJZCA9IG9iamVjdC5yZWxlYXNlSWQgPz8gXCJcIjtcbiAgICBtZXNzYWdlLmNvbW1pdEhhc2ggPSBvYmplY3QuY29tbWl0SGFzaCA/PyB1bmRlZmluZWQ7XG4gICAgbWVzc2FnZS5yZXBvTmFtZSA9IG9iamVjdC5yZXBvTmFtZSA/PyB1bmRlZmluZWQ7XG4gICAgbWVzc2FnZS5vcmdOYW1lID0gb2JqZWN0Lm9yZ05hbWUgPz8gdW5kZWZpbmVkO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZnVuY3Rpb24gY3JlYXRlQmFzZVJlYWN0TmF0aXZlTWV0YWRhdGEoKTogUmVhY3ROYXRpdmVNZXRhZGF0YSB7XG4gIHJldHVybiB7IGFwcGxpY2F0aW9uOiBcIlwiLCByZWxlYXNlSWQ6IFwiXCIsIGNvbW1pdEhhc2g6IHVuZGVmaW5lZCwgcmVwb05hbWU6IHVuZGVmaW5lZCwgb3JnTmFtZTogdW5kZWZpbmVkIH07XG59XG5cbmV4cG9ydCBjb25zdCBSZWFjdE5hdGl2ZU1ldGFkYXRhID0ge1xuICBlbmNvZGUobWVzc2FnZTogUmVhY3ROYXRpdmVNZXRhZGF0YSwgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLmFwcGxpY2F0aW9uICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDEwKS5zdHJpbmcobWVzc2FnZS5hcHBsaWNhdGlvbik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlbGVhc2VJZCAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxOCkuc3RyaW5nKG1lc3NhZ2UucmVsZWFzZUlkKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuY29tbWl0SGFzaCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3cml0ZXIudWludDMyKDI2KS5zdHJpbmcobWVzc2FnZS5jb21taXRIYXNoKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVwb05hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigzNCkuc3RyaW5nKG1lc3NhZ2UucmVwb05hbWUpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5vcmdOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoNDIpLnN0cmluZyhtZXNzYWdlLm9yZ05hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IFJlYWN0TmF0aXZlTWV0YWRhdGEge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlUmVhY3ROYXRpdmVNZXRhZGF0YSgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxOCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5yZWxlYXNlSWQgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBpZiAodGFnICE9PSAyNikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5jb21taXRIYXNoID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMzQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UucmVwb05hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICBpZiAodGFnICE9PSA0Mikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5vcmdOYW1lID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogUmVhY3ROYXRpdmVNZXRhZGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFwcGxpY2F0aW9uOiBpc1NldChvYmplY3QuYXBwbGljYXRpb24pID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LmFwcGxpY2F0aW9uKSA6IFwiXCIsXG4gICAgICByZWxlYXNlSWQ6IGlzU2V0KG9iamVjdC5yZWxlYXNlSWQpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LnJlbGVhc2VJZCkgOiBcIlwiLFxuICAgICAgY29tbWl0SGFzaDogaXNTZXQob2JqZWN0LmNvbW1pdEhhc2gpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LmNvbW1pdEhhc2gpIDogdW5kZWZpbmVkLFxuICAgICAgcmVwb05hbWU6IGlzU2V0KG9iamVjdC5yZXBvTmFtZSkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QucmVwb05hbWUpIDogdW5kZWZpbmVkLFxuICAgICAgb3JnTmFtZTogaXNTZXQob2JqZWN0Lm9yZ05hbWUpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0Lm9yZ05hbWUpIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IFJlYWN0TmF0aXZlTWV0YWRhdGEpOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIGlmIChtZXNzYWdlLmFwcGxpY2F0aW9uICE9PSBcIlwiKSB7XG4gICAgICBvYmouYXBwbGljYXRpb24gPSBtZXNzYWdlLmFwcGxpY2F0aW9uO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZWxlYXNlSWQgIT09IFwiXCIpIHtcbiAgICAgIG9iai5yZWxlYXNlSWQgPSBtZXNzYWdlLnJlbGVhc2VJZDtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuY29tbWl0SGFzaCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvYmouY29tbWl0SGFzaCA9IG1lc3NhZ2UuY29tbWl0SGFzaDtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVwb05hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb2JqLnJlcG9OYW1lID0gbWVzc2FnZS5yZXBvTmFtZTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2Uub3JnTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvYmoub3JnTmFtZSA9IG1lc3NhZ2Uub3JnTmFtZTtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfSxcblxuICBjcmVhdGUoYmFzZT86IERlZXBQYXJ0aWFsPFJlYWN0TmF0aXZlTWV0YWRhdGE+KTogUmVhY3ROYXRpdmVNZXRhZGF0YSB7XG4gICAgcmV0dXJuIFJlYWN0TmF0aXZlTWV0YWRhdGEuZnJvbVBhcnRpYWwoYmFzZSA/PyB7fSk7XG4gIH0sXG4gIGZyb21QYXJ0aWFsKG9iamVjdDogRGVlcFBhcnRpYWw8UmVhY3ROYXRpdmVNZXRhZGF0YT4pOiBSZWFjdE5hdGl2ZU1ldGFkYXRhIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVJlYWN0TmF0aXZlTWV0YWRhdGEoKTtcbiAgICBtZXNzYWdlLmFwcGxpY2F0aW9uID0gb2JqZWN0LmFwcGxpY2F0aW9uID8/IFwiXCI7XG4gICAgbWVzc2FnZS5yZWxlYXNlSWQgPSBvYmplY3QucmVsZWFzZUlkID8/IFwiXCI7XG4gICAgbWVzc2FnZS5jb21taXRIYXNoID0gb2JqZWN0LmNvbW1pdEhhc2ggPz8gdW5kZWZpbmVkO1xuICAgIG1lc3NhZ2UucmVwb05hbWUgPSBvYmplY3QucmVwb05hbWUgPz8gdW5kZWZpbmVkO1xuICAgIG1lc3NhZ2Uub3JnTmFtZSA9IG9iamVjdC5vcmdOYW1lID8/IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VSZWxlYXNlRW50aXR5TWV0YWRhdGEoKTogUmVsZWFzZUVudGl0eU1ldGFkYXRhIHtcbiAgcmV0dXJuIHsgbWV0YWRhdGE6IHVuZGVmaW5lZCB9O1xufVxuXG5leHBvcnQgY29uc3QgUmVsZWFzZUVudGl0eU1ldGFkYXRhID0ge1xuICBlbmNvZGUobWVzc2FnZTogUmVsZWFzZUVudGl0eU1ldGFkYXRhLCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgc3dpdGNoIChtZXNzYWdlLm1ldGFkYXRhPy4kY2FzZSkge1xuICAgICAgY2FzZSBcImRzeW1NZXRhZGF0YVwiOlxuICAgICAgICBEc3ltTWV0YWRhdGEuZW5jb2RlKG1lc3NhZ2UubWV0YWRhdGEuZHN5bU1ldGFkYXRhLCB3cml0ZXIudWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJzb3VyY2VNYXBNZXRhZGF0YVwiOlxuICAgICAgICBTb3VyY2VNYXBNZXRhZGF0YS5lbmNvZGUobWVzc2FnZS5tZXRhZGF0YS5zb3VyY2VNYXBNZXRhZGF0YSwgd3JpdGVyLnVpbnQzMigxOCkuZm9yaygpKS5sZGVsaW0oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwicmVhY3ROYXRpdmVNZXRhZGF0YVwiOlxuICAgICAgICBSZWFjdE5hdGl2ZU1ldGFkYXRhLmVuY29kZShtZXNzYWdlLm1ldGFkYXRhLnJlYWN0TmF0aXZlTWV0YWRhdGEsIHdyaXRlci51aW50MzIoMjYpLmZvcmsoKSkubGRlbGltKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IFJlbGVhc2VFbnRpdHlNZXRhZGF0YSB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VSZWxlYXNlRW50aXR5TWV0YWRhdGEoKTtcbiAgICB3aGlsZSAocmVhZGVyLnBvcyA8IGVuZCkge1xuICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGlmICh0YWcgIT09IDEwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLm1ldGFkYXRhID0geyAkY2FzZTogXCJkc3ltTWV0YWRhdGFcIiwgZHN5bU1ldGFkYXRhOiBEc3ltTWV0YWRhdGEuZGVjb2RlKHJlYWRlciwgcmVhZGVyLnVpbnQzMigpKSB9O1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTgpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UubWV0YWRhdGEgPSB7XG4gICAgICAgICAgICAkY2FzZTogXCJzb3VyY2VNYXBNZXRhZGF0YVwiLFxuICAgICAgICAgICAgc291cmNlTWFwTWV0YWRhdGE6IFNvdXJjZU1hcE1ldGFkYXRhLmRlY29kZShyZWFkZXIsIHJlYWRlci51aW50MzIoKSksXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGlmICh0YWcgIT09IDI2KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLm1ldGFkYXRhID0ge1xuICAgICAgICAgICAgJGNhc2U6IFwicmVhY3ROYXRpdmVNZXRhZGF0YVwiLFxuICAgICAgICAgICAgcmVhY3ROYXRpdmVNZXRhZGF0YTogUmVhY3ROYXRpdmVNZXRhZGF0YS5kZWNvZGUocmVhZGVyLCByZWFkZXIudWludDMyKCkpLFxuICAgICAgICAgIH07XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBSZWxlYXNlRW50aXR5TWV0YWRhdGEge1xuICAgIHJldHVybiB7XG4gICAgICBtZXRhZGF0YTogaXNTZXQob2JqZWN0LmRzeW1NZXRhZGF0YSlcbiAgICAgICAgPyB7ICRjYXNlOiBcImRzeW1NZXRhZGF0YVwiLCBkc3ltTWV0YWRhdGE6IERzeW1NZXRhZGF0YS5mcm9tSlNPTihvYmplY3QuZHN5bU1ldGFkYXRhKSB9XG4gICAgICAgIDogaXNTZXQob2JqZWN0LnNvdXJjZU1hcE1ldGFkYXRhKVxuICAgICAgICA/IHsgJGNhc2U6IFwic291cmNlTWFwTWV0YWRhdGFcIiwgc291cmNlTWFwTWV0YWRhdGE6IFNvdXJjZU1hcE1ldGFkYXRhLmZyb21KU09OKG9iamVjdC5zb3VyY2VNYXBNZXRhZGF0YSkgfVxuICAgICAgICA6IGlzU2V0KG9iamVjdC5yZWFjdE5hdGl2ZU1ldGFkYXRhKVxuICAgICAgICA/IHtcbiAgICAgICAgICAkY2FzZTogXCJyZWFjdE5hdGl2ZU1ldGFkYXRhXCIsXG4gICAgICAgICAgcmVhY3ROYXRpdmVNZXRhZGF0YTogUmVhY3ROYXRpdmVNZXRhZGF0YS5mcm9tSlNPTihvYmplY3QucmVhY3ROYXRpdmVNZXRhZGF0YSksXG4gICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSxcblxuICB0b0pTT04obWVzc2FnZTogUmVsZWFzZUVudGl0eU1ldGFkYXRhKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBpZiAobWVzc2FnZS5tZXRhZGF0YT8uJGNhc2UgPT09IFwiZHN5bU1ldGFkYXRhXCIpIHtcbiAgICAgIG9iai5kc3ltTWV0YWRhdGEgPSBEc3ltTWV0YWRhdGEudG9KU09OKG1lc3NhZ2UubWV0YWRhdGEuZHN5bU1ldGFkYXRhKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UubWV0YWRhdGE/LiRjYXNlID09PSBcInNvdXJjZU1hcE1ldGFkYXRhXCIpIHtcbiAgICAgIG9iai5zb3VyY2VNYXBNZXRhZGF0YSA9IFNvdXJjZU1hcE1ldGFkYXRhLnRvSlNPTihtZXNzYWdlLm1ldGFkYXRhLnNvdXJjZU1hcE1ldGFkYXRhKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UubWV0YWRhdGE/LiRjYXNlID09PSBcInJlYWN0TmF0aXZlTWV0YWRhdGFcIikge1xuICAgICAgb2JqLnJlYWN0TmF0aXZlTWV0YWRhdGEgPSBSZWFjdE5hdGl2ZU1ldGFkYXRhLnRvSlNPTihtZXNzYWdlLm1ldGFkYXRhLnJlYWN0TmF0aXZlTWV0YWRhdGEpO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8UmVsZWFzZUVudGl0eU1ldGFkYXRhPik6IFJlbGVhc2VFbnRpdHlNZXRhZGF0YSB7XG4gICAgcmV0dXJuIFJlbGVhc2VFbnRpdHlNZXRhZGF0YS5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxSZWxlYXNlRW50aXR5TWV0YWRhdGE+KTogUmVsZWFzZUVudGl0eU1ldGFkYXRhIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVJlbGVhc2VFbnRpdHlNZXRhZGF0YSgpO1xuICAgIGlmIChcbiAgICAgIG9iamVjdC5tZXRhZGF0YT8uJGNhc2UgPT09IFwiZHN5bU1ldGFkYXRhXCIgJiZcbiAgICAgIG9iamVjdC5tZXRhZGF0YT8uZHN5bU1ldGFkYXRhICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIG9iamVjdC5tZXRhZGF0YT8uZHN5bU1ldGFkYXRhICE9PSBudWxsXG4gICAgKSB7XG4gICAgICBtZXNzYWdlLm1ldGFkYXRhID0ge1xuICAgICAgICAkY2FzZTogXCJkc3ltTWV0YWRhdGFcIixcbiAgICAgICAgZHN5bU1ldGFkYXRhOiBEc3ltTWV0YWRhdGEuZnJvbVBhcnRpYWwob2JqZWN0Lm1ldGFkYXRhLmRzeW1NZXRhZGF0YSksXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBvYmplY3QubWV0YWRhdGE/LiRjYXNlID09PSBcInNvdXJjZU1hcE1ldGFkYXRhXCIgJiZcbiAgICAgIG9iamVjdC5tZXRhZGF0YT8uc291cmNlTWFwTWV0YWRhdGEgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgb2JqZWN0Lm1ldGFkYXRhPy5zb3VyY2VNYXBNZXRhZGF0YSAhPT0gbnVsbFxuICAgICkge1xuICAgICAgbWVzc2FnZS5tZXRhZGF0YSA9IHtcbiAgICAgICAgJGNhc2U6IFwic291cmNlTWFwTWV0YWRhdGFcIixcbiAgICAgICAgc291cmNlTWFwTWV0YWRhdGE6IFNvdXJjZU1hcE1ldGFkYXRhLmZyb21QYXJ0aWFsKG9iamVjdC5tZXRhZGF0YS5zb3VyY2VNYXBNZXRhZGF0YSksXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBvYmplY3QubWV0YWRhdGE/LiRjYXNlID09PSBcInJlYWN0TmF0aXZlTWV0YWRhdGFcIiAmJlxuICAgICAgb2JqZWN0Lm1ldGFkYXRhPy5yZWFjdE5hdGl2ZU1ldGFkYXRhICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIG9iamVjdC5tZXRhZGF0YT8ucmVhY3ROYXRpdmVNZXRhZGF0YSAhPT0gbnVsbFxuICAgICkge1xuICAgICAgbWVzc2FnZS5tZXRhZGF0YSA9IHtcbiAgICAgICAgJGNhc2U6IFwicmVhY3ROYXRpdmVNZXRhZGF0YVwiLFxuICAgICAgICByZWFjdE5hdGl2ZU1ldGFkYXRhOiBSZWFjdE5hdGl2ZU1ldGFkYXRhLmZyb21QYXJ0aWFsKG9iamVjdC5tZXRhZGF0YS5yZWFjdE5hdGl2ZU1ldGFkYXRhKSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxudHlwZSBCdWlsdGluID0gRGF0ZSB8IEZ1bmN0aW9uIHwgVWludDhBcnJheSB8IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCB0eXBlIERlZXBQYXJ0aWFsPFQ+ID0gVCBleHRlbmRzIEJ1aWx0aW4gPyBUXG4gIDogVCBleHRlbmRzIGdsb2JhbFRoaXMuQXJyYXk8aW5mZXIgVT4gPyBnbG9iYWxUaGlzLkFycmF5PERlZXBQYXJ0aWFsPFU+PlxuICA6IFQgZXh0ZW5kcyBSZWFkb25seUFycmF5PGluZmVyIFU+ID8gUmVhZG9ubHlBcnJheTxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgeyAkY2FzZTogc3RyaW5nIH0gPyB7IFtLIGluIGtleW9mIE9taXQ8VCwgXCIkY2FzZVwiPl0/OiBEZWVwUGFydGlhbDxUW0tdPiB9ICYgeyAkY2FzZTogVFtcIiRjYXNlXCJdIH1cbiAgOiBUIGV4dGVuZHMge30gPyB7IFtLIGluIGtleW9mIFRdPzogRGVlcFBhcnRpYWw8VFtLXT4gfVxuICA6IFBhcnRpYWw8VD47XG5cbmZ1bmN0aW9uIGlzU2V0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQ7XG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ export declare const protobufPackage = "com.coralogix.rum.v2";
2
+ export declare enum ReleaseEntityType {
3
+ RELEASE_ENTITY_TYPE_UNSPECIFIED = 0,
4
+ RELEASE_ENTITY_TYPE_DSYM = 1,
5
+ RELEASE_ENTITY_TYPE_SOURCE_MAP = 2,
6
+ RELEASE_ENTITY_TYPE_REACT_NATIVE = 3
7
+ }
8
+ export declare function releaseEntityTypeFromJSON(object: any): ReleaseEntityType;
9
+ export declare function releaseEntityTypeToJSON(object: ReleaseEntityType): string;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
3
+ // versions:
4
+ // protoc-gen-ts_proto v1.181.1
5
+ // protoc v3.19.1
6
+ // source: com/coralogix/rum/v2/release_entity_type.proto
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.releaseEntityTypeToJSON = exports.releaseEntityTypeFromJSON = exports.ReleaseEntityType = exports.protobufPackage = void 0;
9
+ /* eslint-disable */
10
+ exports.protobufPackage = "com.coralogix.rum.v2";
11
+ var ReleaseEntityType;
12
+ (function (ReleaseEntityType) {
13
+ ReleaseEntityType[ReleaseEntityType["RELEASE_ENTITY_TYPE_UNSPECIFIED"] = 0] = "RELEASE_ENTITY_TYPE_UNSPECIFIED";
14
+ ReleaseEntityType[ReleaseEntityType["RELEASE_ENTITY_TYPE_DSYM"] = 1] = "RELEASE_ENTITY_TYPE_DSYM";
15
+ ReleaseEntityType[ReleaseEntityType["RELEASE_ENTITY_TYPE_SOURCE_MAP"] = 2] = "RELEASE_ENTITY_TYPE_SOURCE_MAP";
16
+ ReleaseEntityType[ReleaseEntityType["RELEASE_ENTITY_TYPE_REACT_NATIVE"] = 3] = "RELEASE_ENTITY_TYPE_REACT_NATIVE";
17
+ })(ReleaseEntityType = exports.ReleaseEntityType || (exports.ReleaseEntityType = {}));
18
+ function releaseEntityTypeFromJSON(object) {
19
+ switch (object) {
20
+ case 0:
21
+ case "RELEASE_ENTITY_TYPE_UNSPECIFIED":
22
+ return ReleaseEntityType.RELEASE_ENTITY_TYPE_UNSPECIFIED;
23
+ case 1:
24
+ case "RELEASE_ENTITY_TYPE_DSYM":
25
+ return ReleaseEntityType.RELEASE_ENTITY_TYPE_DSYM;
26
+ case 2:
27
+ case "RELEASE_ENTITY_TYPE_SOURCE_MAP":
28
+ return ReleaseEntityType.RELEASE_ENTITY_TYPE_SOURCE_MAP;
29
+ case 3:
30
+ case "RELEASE_ENTITY_TYPE_REACT_NATIVE":
31
+ return ReleaseEntityType.RELEASE_ENTITY_TYPE_REACT_NATIVE;
32
+ default:
33
+ throw new globalThis.Error("Unrecognized enum value " + object + " for enum ReleaseEntityType");
34
+ }
35
+ }
36
+ exports.releaseEntityTypeFromJSON = releaseEntityTypeFromJSON;
37
+ function releaseEntityTypeToJSON(object) {
38
+ switch (object) {
39
+ case ReleaseEntityType.RELEASE_ENTITY_TYPE_UNSPECIFIED:
40
+ return "RELEASE_ENTITY_TYPE_UNSPECIFIED";
41
+ case ReleaseEntityType.RELEASE_ENTITY_TYPE_DSYM:
42
+ return "RELEASE_ENTITY_TYPE_DSYM";
43
+ case ReleaseEntityType.RELEASE_ENTITY_TYPE_SOURCE_MAP:
44
+ return "RELEASE_ENTITY_TYPE_SOURCE_MAP";
45
+ case ReleaseEntityType.RELEASE_ENTITY_TYPE_REACT_NATIVE:
46
+ return "RELEASE_ENTITY_TYPE_REACT_NATIVE";
47
+ default:
48
+ throw new globalThis.Error("Unrecognized enum value " + object + " for enum ReleaseEntityType");
49
+ }
50
+ }
51
+ exports.releaseEntityTypeToJSON = releaseEntityTypeToJSON;
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsZWFzZV9lbnRpdHlfdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb3RvLW1vZGVscy9jb20vY29yYWxvZ2l4L3J1bS92Mi9yZWxlYXNlX2VudGl0eV90eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxzREFBc0Q7QUFDdEQsWUFBWTtBQUNaLGtDQUFrQztBQUNsQyxpQ0FBaUM7QUFDakMseURBQXlEOzs7QUFFekQsb0JBQW9CO0FBRVAsUUFBQSxlQUFlLEdBQUcsc0JBQXNCLENBQUM7QUFFdEQsSUFBWSxpQkFLWDtBQUxELFdBQVksaUJBQWlCO0lBQzNCLCtHQUFtQyxDQUFBO0lBQ25DLGlHQUE0QixDQUFBO0lBQzVCLDZHQUFrQyxDQUFBO0lBQ2xDLGlIQUFvQyxDQUFBO0FBQ3RDLENBQUMsRUFMVyxpQkFBaUIsR0FBakIseUJBQWlCLEtBQWpCLHlCQUFpQixRQUs1QjtBQUVELFNBQWdCLHlCQUF5QixDQUFDLE1BQVc7SUFDbkQsUUFBUSxNQUFNLEVBQUU7UUFDZCxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssaUNBQWlDO1lBQ3BDLE9BQU8saUJBQWlCLENBQUMsK0JBQStCLENBQUM7UUFDM0QsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLDBCQUEwQjtZQUM3QixPQUFPLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDO1FBQ3BELEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxnQ0FBZ0M7WUFDbkMsT0FBTyxpQkFBaUIsQ0FBQyw4QkFBOEIsQ0FBQztRQUMxRCxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssa0NBQWtDO1lBQ3JDLE9BQU8saUJBQWlCLENBQUMsZ0NBQWdDLENBQUM7UUFDNUQ7WUFDRSxNQUFNLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsR0FBRyxNQUFNLEdBQUcsNkJBQTZCLENBQUMsQ0FBQztLQUNuRztBQUNILENBQUM7QUFqQkQsOERBaUJDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUMsTUFBeUI7SUFDL0QsUUFBUSxNQUFNLEVBQUU7UUFDZCxLQUFLLGlCQUFpQixDQUFDLCtCQUErQjtZQUNwRCxPQUFPLGlDQUFpQyxDQUFDO1FBQzNDLEtBQUssaUJBQWlCLENBQUMsd0JBQXdCO1lBQzdDLE9BQU8sMEJBQTBCLENBQUM7UUFDcEMsS0FBSyxpQkFBaUIsQ0FBQyw4QkFBOEI7WUFDbkQsT0FBTyxnQ0FBZ0MsQ0FBQztRQUMxQyxLQUFLLGlCQUFpQixDQUFDLGdDQUFnQztZQUNyRCxPQUFPLGtDQUFrQyxDQUFDO1FBQzVDO1lBQ0UsTUFBTSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEdBQUcsTUFBTSxHQUFHLDZCQUE2QixDQUFDLENBQUM7S0FDbkc7QUFDSCxDQUFDO0FBYkQsMERBYUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb2RlIGdlbmVyYXRlZCBieSBwcm90b2MtZ2VuLXRzX3Byb3RvLiBETyBOT1QgRURJVC5cbi8vIHZlcnNpb25zOlxuLy8gICBwcm90b2MtZ2VuLXRzX3Byb3RvICB2MS4xODEuMVxuLy8gICBwcm90b2MgICAgICAgICAgICAgICB2My4xOS4xXG4vLyBzb3VyY2U6IGNvbS9jb3JhbG9naXgvcnVtL3YyL3JlbGVhc2VfZW50aXR5X3R5cGUucHJvdG9cblxuLyogZXNsaW50LWRpc2FibGUgKi9cblxuZXhwb3J0IGNvbnN0IHByb3RvYnVmUGFja2FnZSA9IFwiY29tLmNvcmFsb2dpeC5ydW0udjJcIjtcblxuZXhwb3J0IGVudW0gUmVsZWFzZUVudGl0eVR5cGUge1xuICBSRUxFQVNFX0VOVElUWV9UWVBFX1VOU1BFQ0lGSUVEID0gMCxcbiAgUkVMRUFTRV9FTlRJVFlfVFlQRV9EU1lNID0gMSxcbiAgUkVMRUFTRV9FTlRJVFlfVFlQRV9TT1VSQ0VfTUFQID0gMixcbiAgUkVMRUFTRV9FTlRJVFlfVFlQRV9SRUFDVF9OQVRJVkUgPSAzLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVsZWFzZUVudGl0eVR5cGVGcm9tSlNPTihvYmplY3Q6IGFueSk6IFJlbGVhc2VFbnRpdHlUeXBlIHtcbiAgc3dpdGNoIChvYmplY3QpIHtcbiAgICBjYXNlIDA6XG4gICAgY2FzZSBcIlJFTEVBU0VfRU5USVRZX1RZUEVfVU5TUEVDSUZJRURcIjpcbiAgICAgIHJldHVybiBSZWxlYXNlRW50aXR5VHlwZS5SRUxFQVNFX0VOVElUWV9UWVBFX1VOU1BFQ0lGSUVEO1xuICAgIGNhc2UgMTpcbiAgICBjYXNlIFwiUkVMRUFTRV9FTlRJVFlfVFlQRV9EU1lNXCI6XG4gICAgICByZXR1cm4gUmVsZWFzZUVudGl0eVR5cGUuUkVMRUFTRV9FTlRJVFlfVFlQRV9EU1lNO1xuICAgIGNhc2UgMjpcbiAgICBjYXNlIFwiUkVMRUFTRV9FTlRJVFlfVFlQRV9TT1VSQ0VfTUFQXCI6XG4gICAgICByZXR1cm4gUmVsZWFzZUVudGl0eVR5cGUuUkVMRUFTRV9FTlRJVFlfVFlQRV9TT1VSQ0VfTUFQO1xuICAgIGNhc2UgMzpcbiAgICBjYXNlIFwiUkVMRUFTRV9FTlRJVFlfVFlQRV9SRUFDVF9OQVRJVkVcIjpcbiAgICAgIHJldHVybiBSZWxlYXNlRW50aXR5VHlwZS5SRUxFQVNFX0VOVElUWV9UWVBFX1JFQUNUX05BVElWRTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IGdsb2JhbFRoaXMuRXJyb3IoXCJVbnJlY29nbml6ZWQgZW51bSB2YWx1ZSBcIiArIG9iamVjdCArIFwiIGZvciBlbnVtIFJlbGVhc2VFbnRpdHlUeXBlXCIpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWxlYXNlRW50aXR5VHlwZVRvSlNPTihvYmplY3Q6IFJlbGVhc2VFbnRpdHlUeXBlKTogc3RyaW5nIHtcbiAgc3dpdGNoIChvYmplY3QpIHtcbiAgICBjYXNlIFJlbGVhc2VFbnRpdHlUeXBlLlJFTEVBU0VfRU5USVRZX1RZUEVfVU5TUEVDSUZJRUQ6XG4gICAgICByZXR1cm4gXCJSRUxFQVNFX0VOVElUWV9UWVBFX1VOU1BFQ0lGSUVEXCI7XG4gICAgY2FzZSBSZWxlYXNlRW50aXR5VHlwZS5SRUxFQVNFX0VOVElUWV9UWVBFX0RTWU06XG4gICAgICByZXR1cm4gXCJSRUxFQVNFX0VOVElUWV9UWVBFX0RTWU1cIjtcbiAgICBjYXNlIFJlbGVhc2VFbnRpdHlUeXBlLlJFTEVBU0VfRU5USVRZX1RZUEVfU09VUkNFX01BUDpcbiAgICAgIHJldHVybiBcIlJFTEVBU0VfRU5USVRZX1RZUEVfU09VUkNFX01BUFwiO1xuICAgIGNhc2UgUmVsZWFzZUVudGl0eVR5cGUuUkVMRUFTRV9FTlRJVFlfVFlQRV9SRUFDVF9OQVRJVkU6XG4gICAgICByZXR1cm4gXCJSRUxFQVNFX0VOVElUWV9UWVBFX1JFQUNUX05BVElWRVwiO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgZ2xvYmFsVGhpcy5FcnJvcihcIlVucmVjb2duaXplZCBlbnVtIHZhbHVlIFwiICsgb2JqZWN0ICsgXCIgZm9yIGVudW0gUmVsZWFzZUVudGl0eVR5cGVcIik7XG4gIH1cbn1cbiJdfQ==