@ondewo/csi-client-angular 2.3.1

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 (200) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +27 -0
  3. package/api/google/api/annotations.pb.d.ts +1 -0
  4. package/api/google/api/http.pb.d.ts +275 -0
  5. package/api/google/rpc/status.pb.d.ts +82 -0
  6. package/api/google/type/latlng.pb.d.ts +76 -0
  7. package/api/ondewo/csi/conversation.pb.d.ts +1312 -0
  8. package/api/ondewo/csi/conversation.pbconf.d.ts +6 -0
  9. package/api/ondewo/csi/conversation.pbsc.d.ts +167 -0
  10. package/api/ondewo/nlu/agent.pb.d.ts +3536 -0
  11. package/api/ondewo/nlu/agent.pbconf.d.ts +6 -0
  12. package/api/ondewo/nlu/agent.pbsc.d.ts +472 -0
  13. package/api/ondewo/nlu/aiservices.pb.d.ts +2472 -0
  14. package/api/ondewo/nlu/aiservices.pbconf.d.ts +6 -0
  15. package/api/ondewo/nlu/aiservices.pbsc.d.ts +150 -0
  16. package/api/ondewo/nlu/common.pb.d.ts +75 -0
  17. package/api/ondewo/nlu/context.pb.d.ts +756 -0
  18. package/api/ondewo/nlu/context.pbconf.d.ts +6 -0
  19. package/api/ondewo/nlu/context.pbsc.d.ts +119 -0
  20. package/api/ondewo/nlu/entity-type.pb.d.ts +2014 -0
  21. package/api/ondewo/nlu/entity-type.pbconf.d.ts +6 -0
  22. package/api/ondewo/nlu/entity-type.pbsc.d.ts +216 -0
  23. package/api/ondewo/nlu/intent.pb.d.ts +6236 -0
  24. package/api/ondewo/nlu/intent.pbconf.d.ts +6 -0
  25. package/api/ondewo/nlu/intent.pbsc.d.ts +456 -0
  26. package/api/ondewo/nlu/operation-metadata.pb.d.ts +166 -0
  27. package/api/ondewo/nlu/operations.pb.d.ts +578 -0
  28. package/api/ondewo/nlu/operations.pbconf.d.ts +6 -0
  29. package/api/ondewo/nlu/operations.pbsc.d.ts +87 -0
  30. package/api/ondewo/nlu/project-role.pb.d.ts +576 -0
  31. package/api/ondewo/nlu/project-role.pbconf.d.ts +6 -0
  32. package/api/ondewo/nlu/project-role.pbsc.d.ts +103 -0
  33. package/api/ondewo/nlu/project-statistics.pb.d.ts +295 -0
  34. package/api/ondewo/nlu/project-statistics.pbconf.d.ts +6 -0
  35. package/api/ondewo/nlu/project-statistics.pbsc.d.ts +151 -0
  36. package/api/ondewo/nlu/server-statistics.pb.d.ts +71 -0
  37. package/api/ondewo/nlu/server-statistics.pbconf.d.ts +6 -0
  38. package/api/ondewo/nlu/server-statistics.pbsc.d.ts +72 -0
  39. package/api/ondewo/nlu/session.pb.d.ts +2892 -0
  40. package/api/ondewo/nlu/session.pbconf.d.ts +6 -0
  41. package/api/ondewo/nlu/session.pbsc.d.ts +247 -0
  42. package/api/ondewo/nlu/user.pb.d.ts +1577 -0
  43. package/api/ondewo/nlu/user.pbconf.d.ts +6 -0
  44. package/api/ondewo/nlu/user.pbsc.d.ts +263 -0
  45. package/api/ondewo/nlu/utility.pb.d.ts +1814 -0
  46. package/api/ondewo/nlu/utility.pbconf.d.ts +6 -0
  47. package/api/ondewo/nlu/utility.pbsc.d.ts +150 -0
  48. package/api/ondewo/nlu/webhook.pb.d.ts +401 -0
  49. package/api/ondewo/nlu/webhook.pbconf.d.ts +6 -0
  50. package/api/ondewo/nlu/webhook.pbsc.d.ts +70 -0
  51. package/api/ondewo/s2t/speech-to-text.pb.d.ts +3710 -0
  52. package/api/ondewo/s2t/speech-to-text.pbconf.d.ts +6 -0
  53. package/api/ondewo/s2t/speech-to-text.pbsc.d.ts +263 -0
  54. package/api/ondewo/t2s/text-to-speech.pb.d.ts +3302 -0
  55. package/api/ondewo/t2s/text-to-speech.pbconf.d.ts +11 -0
  56. package/api/ondewo/t2s/text-to-speech.pbsc.d.ts +296 -0
  57. package/esm2020/api/google/api/annotations.pb.mjs +2 -0
  58. package/esm2020/api/google/api/http.pb.mjs +524 -0
  59. package/esm2020/api/google/rpc/status.pb.mjs +138 -0
  60. package/esm2020/api/google/type/latlng.pb.mjs +119 -0
  61. package/esm2020/api/ondewo/csi/conversation.pb.mjs +2232 -0
  62. package/esm2020/api/ondewo/csi/conversation.pbconf.mjs +13 -0
  63. package/esm2020/api/ondewo/csi/conversation.pbsc.mjs +315 -0
  64. package/esm2020/api/ondewo/nlu/agent.pb.mjs +6077 -0
  65. package/esm2020/api/ondewo/nlu/agent.pbconf.mjs +13 -0
  66. package/esm2020/api/ondewo/nlu/agent.pbsc.mjs +886 -0
  67. package/esm2020/api/ondewo/nlu/aiservices.pb.mjs +4371 -0
  68. package/esm2020/api/ondewo/nlu/aiservices.pbconf.mjs +13 -0
  69. package/esm2020/api/ondewo/nlu/aiservices.pbsc.mjs +284 -0
  70. package/esm2020/api/ondewo/nlu/common.pb.mjs +108 -0
  71. package/esm2020/api/ondewo/nlu/context.pb.mjs +1233 -0
  72. package/esm2020/api/ondewo/nlu/context.pbconf.mjs +13 -0
  73. package/esm2020/api/ondewo/nlu/context.pbsc.mjs +225 -0
  74. package/esm2020/api/ondewo/nlu/entity-type.pb.mjs +3466 -0
  75. package/esm2020/api/ondewo/nlu/entity-type.pbconf.mjs +13 -0
  76. package/esm2020/api/ondewo/nlu/entity-type.pbsc.mjs +406 -0
  77. package/esm2020/api/ondewo/nlu/intent.pb.mjs +10809 -0
  78. package/esm2020/api/ondewo/nlu/intent.pbconf.mjs +13 -0
  79. package/esm2020/api/ondewo/nlu/intent.pbsc.mjs +856 -0
  80. package/esm2020/api/ondewo/nlu/operation-metadata.pb.mjs +382 -0
  81. package/esm2020/api/ondewo/nlu/operations.pb.mjs +1003 -0
  82. package/esm2020/api/ondewo/nlu/operations.pbconf.mjs +13 -0
  83. package/esm2020/api/ondewo/nlu/operations.pbsc.mjs +165 -0
  84. package/esm2020/api/ondewo/nlu/project-role.pb.mjs +988 -0
  85. package/esm2020/api/ondewo/nlu/project-role.pbconf.mjs +13 -0
  86. package/esm2020/api/ondewo/nlu/project-role.pbsc.mjs +195 -0
  87. package/esm2020/api/ondewo/nlu/project-statistics.pb.mjs +460 -0
  88. package/esm2020/api/ondewo/nlu/project-statistics.pbconf.mjs +13 -0
  89. package/esm2020/api/ondewo/nlu/project-statistics.pbsc.mjs +285 -0
  90. package/esm2020/api/ondewo/nlu/server-statistics.pb.mjs +103 -0
  91. package/esm2020/api/ondewo/nlu/server-statistics.pbconf.mjs +13 -0
  92. package/esm2020/api/ondewo/nlu/server-statistics.pbsc.mjs +136 -0
  93. package/esm2020/api/ondewo/nlu/session.pb.mjs +5351 -0
  94. package/esm2020/api/ondewo/nlu/session.pbconf.mjs +13 -0
  95. package/esm2020/api/ondewo/nlu/session.pbsc.mjs +465 -0
  96. package/esm2020/api/ondewo/nlu/user.pb.mjs +2536 -0
  97. package/esm2020/api/ondewo/nlu/user.pbconf.mjs +13 -0
  98. package/esm2020/api/ondewo/nlu/user.pbsc.mjs +495 -0
  99. package/esm2020/api/ondewo/nlu/utility.pb.mjs +3302 -0
  100. package/esm2020/api/ondewo/nlu/utility.pbconf.mjs +13 -0
  101. package/esm2020/api/ondewo/nlu/utility.pbsc.mjs +284 -0
  102. package/esm2020/api/ondewo/nlu/webhook.pb.mjs +705 -0
  103. package/esm2020/api/ondewo/nlu/webhook.pbconf.mjs +13 -0
  104. package/esm2020/api/ondewo/nlu/webhook.pbsc.mjs +134 -0
  105. package/esm2020/api/ondewo/s2t/speech-to-text.pb.mjs +6452 -0
  106. package/esm2020/api/ondewo/s2t/speech-to-text.pbconf.mjs +13 -0
  107. package/esm2020/api/ondewo/s2t/speech-to-text.pbsc.mjs +495 -0
  108. package/esm2020/api/ondewo/t2s/text-to-speech.pb.mjs +5779 -0
  109. package/esm2020/api/ondewo/t2s/text-to-speech.pbconf.mjs +18 -0
  110. package/esm2020/api/ondewo/t2s/text-to-speech.pbsc.mjs +555 -0
  111. package/esm2020/ondewo-csi-client-angular.mjs +5 -0
  112. package/esm2020/public-api.mjs +55 -0
  113. package/fesm2015/ondewo-csi-client-angular.mjs +62142 -0
  114. package/fesm2015/ondewo-csi-client-angular.mjs.map +1 -0
  115. package/fesm2020/ondewo-csi-client-angular.mjs +62135 -0
  116. package/fesm2020/ondewo-csi-client-angular.mjs.map +1 -0
  117. package/index.d.ts +5 -0
  118. package/ondewo-csi-api/README.md +91 -0
  119. package/ondewo-csi-api/google/ads/googleads/README.md +21 -0
  120. package/ondewo-csi-api/google/api/README.md +5 -0
  121. package/ondewo-csi-api/google/api/servicecontrol/README.md +126 -0
  122. package/ondewo-csi-api/google/api/servicemanagement/README.md +102 -0
  123. package/ondewo-csi-api/google/appengine/README.md +12 -0
  124. package/ondewo-csi-api/google/assistant/embedded/README.md +3 -0
  125. package/ondewo-csi-api/google/cloud/functions/README.md +2 -0
  126. package/ondewo-csi-api/google/cloud/language/README.md +0 -0
  127. package/ondewo-csi-api/google/cloud/runtimeconfig/README.md +39 -0
  128. package/ondewo-csi-api/google/cloud/speech/README.md +3 -0
  129. package/ondewo-csi-api/google/container/README.md +0 -0
  130. package/ondewo-csi-api/google/datastore/README.md +0 -0
  131. package/ondewo-csi-api/google/devtools/cloudbuild/README.md +1 -0
  132. package/ondewo-csi-api/google/devtools/clouderrorreporting/README.md +1 -0
  133. package/ondewo-csi-api/google/example/library/README.md +4 -0
  134. package/ondewo-csi-api/google/firestore/README.md +0 -0
  135. package/ondewo-csi-api/google/genomics/README.md +14 -0
  136. package/ondewo-csi-api/google/iam/README.md +14 -0
  137. package/ondewo-csi-api/google/logging/README.md +3 -0
  138. package/ondewo-csi-api/google/longrunning/README.md +5 -0
  139. package/ondewo-csi-api/google/privacy/dlp/README.md +7 -0
  140. package/ondewo-csi-api/google/pubsub/v1beta2/README.md +136 -0
  141. package/ondewo-csi-api/google/rpc/README.md +5 -0
  142. package/ondewo-csi-api/google/streetview/publish/README.md +1 -0
  143. package/ondewo-csi-api/google/type/README.md +16 -0
  144. package/ondewo-csi-api/googleapis/README.md +87 -0
  145. package/ondewo-csi-api/googleapis/google/ads/googleads/README.md +21 -0
  146. package/ondewo-csi-api/googleapis/google/api/README.md +5 -0
  147. package/ondewo-csi-api/googleapis/google/api/servicecontrol/README.md +126 -0
  148. package/ondewo-csi-api/googleapis/google/api/servicemanagement/README.md +102 -0
  149. package/ondewo-csi-api/googleapis/google/appengine/README.md +12 -0
  150. package/ondewo-csi-api/googleapis/google/assistant/embedded/README.md +3 -0
  151. package/ondewo-csi-api/googleapis/google/cloud/functions/README.md +2 -0
  152. package/ondewo-csi-api/googleapis/google/cloud/language/README.md +0 -0
  153. package/ondewo-csi-api/googleapis/google/cloud/runtimeconfig/README.md +39 -0
  154. package/ondewo-csi-api/googleapis/google/cloud/speech/README.md +3 -0
  155. package/ondewo-csi-api/googleapis/google/container/README.md +0 -0
  156. package/ondewo-csi-api/googleapis/google/datastore/README.md +0 -0
  157. package/ondewo-csi-api/googleapis/google/devtools/cloudbuild/README.md +1 -0
  158. package/ondewo-csi-api/googleapis/google/devtools/clouderrorreporting/README.md +1 -0
  159. package/ondewo-csi-api/googleapis/google/example/library/README.md +4 -0
  160. package/ondewo-csi-api/googleapis/google/firestore/README.md +0 -0
  161. package/ondewo-csi-api/googleapis/google/genomics/README.md +14 -0
  162. package/ondewo-csi-api/googleapis/google/iam/README.md +14 -0
  163. package/ondewo-csi-api/googleapis/google/logging/README.md +3 -0
  164. package/ondewo-csi-api/googleapis/google/longrunning/README.md +5 -0
  165. package/ondewo-csi-api/googleapis/google/privacy/dlp/README.md +7 -0
  166. package/ondewo-csi-api/googleapis/google/pubsub/v1beta2/README.md +136 -0
  167. package/ondewo-csi-api/googleapis/google/rpc/README.md +5 -0
  168. package/ondewo-csi-api/googleapis/google/streetview/publish/README.md +1 -0
  169. package/ondewo-csi-api/googleapis/google/type/README.md +16 -0
  170. package/ondewo-csi-api/ondewo-nlu-api/README.md +117 -0
  171. package/ondewo-csi-api/ondewo-nlu-api/googleapis/README.md +87 -0
  172. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/ads/googleads/README.md +21 -0
  173. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/api/README.md +5 -0
  174. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/api/servicecontrol/README.md +126 -0
  175. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/api/servicemanagement/README.md +102 -0
  176. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/appengine/README.md +12 -0
  177. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/assistant/embedded/README.md +3 -0
  178. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/cloud/functions/README.md +2 -0
  179. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/cloud/language/README.md +0 -0
  180. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/cloud/runtimeconfig/README.md +39 -0
  181. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/cloud/speech/README.md +3 -0
  182. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/container/README.md +0 -0
  183. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/datastore/README.md +0 -0
  184. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/devtools/cloudbuild/README.md +1 -0
  185. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/devtools/clouderrorreporting/README.md +1 -0
  186. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/example/library/README.md +4 -0
  187. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/firestore/README.md +0 -0
  188. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/genomics/README.md +14 -0
  189. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/iam/README.md +14 -0
  190. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/logging/README.md +3 -0
  191. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/longrunning/README.md +5 -0
  192. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/privacy/dlp/README.md +7 -0
  193. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/pubsub/v1beta2/README.md +136 -0
  194. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/rpc/README.md +5 -0
  195. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/streetview/publish/README.md +1 -0
  196. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/type/README.md +16 -0
  197. package/ondewo-csi-api/ondewo-s2t-api/README.md +89 -0
  198. package/ondewo-csi-api/ondewo-t2s-api/README.md +89 -0
  199. package/package.json +49 -0
  200. package/public-api.d.ts +54 -0
@@ -0,0 +1,382 @@
1
+ import { BinaryReader, BinaryWriter } from 'google-protobuf';
2
+ import * as googleProtobuf000 from '@ngx-grpc/well-known-types';
3
+ /**
4
+ * Message implementation for ondewo.nlu.OperationMetadata
5
+ */
6
+ export class OperationMetadata {
7
+ /**
8
+ * Message constructor. Initializes the properties and applies default Protobuf values if necessary
9
+ * @param _value initial values object or instance of OperationMetadata to deeply clone from
10
+ */
11
+ constructor(_value) {
12
+ _value = _value || {};
13
+ this.status = _value.status;
14
+ this.parentOperationName = _value.parentOperationName;
15
+ this.subOperationNames = (_value.subOperationNames || []).slice();
16
+ this.createTime = _value.createTime
17
+ ? new googleProtobuf000.Timestamp(_value.createTime)
18
+ : undefined;
19
+ this.startTime = _value.startTime
20
+ ? new googleProtobuf000.Timestamp(_value.startTime)
21
+ : undefined;
22
+ this.endTime = _value.endTime
23
+ ? new googleProtobuf000.Timestamp(_value.endTime)
24
+ : undefined;
25
+ this.isCancellationRequested = _value.isCancellationRequested;
26
+ this.cancelCommand = _value.cancelCommand;
27
+ this.userIdCreated = _value.userIdCreated;
28
+ this.userIdCancelled = _value.userIdCancelled;
29
+ this.projectParent = _value.projectParent;
30
+ this.operationType = _value.operationType;
31
+ this.hostName = _value.hostName;
32
+ this.numReruns = _value.numReruns;
33
+ this.maxNumReruns = _value.maxNumReruns;
34
+ this.description = _value.description;
35
+ OperationMetadata.refineValues(this);
36
+ }
37
+ /**
38
+ * Deserialize binary data to message
39
+ * @param instance message instance
40
+ */
41
+ static deserializeBinary(bytes) {
42
+ const instance = new OperationMetadata();
43
+ OperationMetadata.deserializeBinaryFromReader(instance, new BinaryReader(bytes));
44
+ return instance;
45
+ }
46
+ /**
47
+ * Check all the properties and set default protobuf values if necessary
48
+ * @param _instance message instance
49
+ */
50
+ static refineValues(_instance) {
51
+ _instance.status = _instance.status || 0;
52
+ _instance.parentOperationName = _instance.parentOperationName || '';
53
+ _instance.subOperationNames = _instance.subOperationNames || [];
54
+ _instance.createTime = _instance.createTime || undefined;
55
+ _instance.startTime = _instance.startTime || undefined;
56
+ _instance.endTime = _instance.endTime || undefined;
57
+ _instance.isCancellationRequested =
58
+ _instance.isCancellationRequested || false;
59
+ _instance.cancelCommand = _instance.cancelCommand || '';
60
+ _instance.userIdCreated = _instance.userIdCreated || '';
61
+ _instance.userIdCancelled = _instance.userIdCancelled || '';
62
+ _instance.projectParent = _instance.projectParent || '';
63
+ _instance.operationType = _instance.operationType || 0;
64
+ _instance.hostName = _instance.hostName || '';
65
+ _instance.numReruns = _instance.numReruns || 0;
66
+ _instance.maxNumReruns = _instance.maxNumReruns || 0;
67
+ _instance.description = _instance.description || '';
68
+ }
69
+ /**
70
+ * Deserializes / reads binary message into message instance using provided binary reader
71
+ * @param _instance message instance
72
+ * @param _reader binary reader instance
73
+ */
74
+ static deserializeBinaryFromReader(_instance, _reader) {
75
+ while (_reader.nextField()) {
76
+ if (_reader.isEndGroup())
77
+ break;
78
+ switch (_reader.getFieldNumber()) {
79
+ case 1:
80
+ _instance.status = _reader.readEnum();
81
+ break;
82
+ case 2:
83
+ _instance.parentOperationName = _reader.readString();
84
+ break;
85
+ case 3:
86
+ (_instance.subOperationNames =
87
+ _instance.subOperationNames || []).push(_reader.readString());
88
+ break;
89
+ case 4:
90
+ _instance.createTime = new googleProtobuf000.Timestamp();
91
+ _reader.readMessage(_instance.createTime, googleProtobuf000.Timestamp.deserializeBinaryFromReader);
92
+ break;
93
+ case 5:
94
+ _instance.startTime = new googleProtobuf000.Timestamp();
95
+ _reader.readMessage(_instance.startTime, googleProtobuf000.Timestamp.deserializeBinaryFromReader);
96
+ break;
97
+ case 6:
98
+ _instance.endTime = new googleProtobuf000.Timestamp();
99
+ _reader.readMessage(_instance.endTime, googleProtobuf000.Timestamp.deserializeBinaryFromReader);
100
+ break;
101
+ case 7:
102
+ _instance.isCancellationRequested = _reader.readBool();
103
+ break;
104
+ case 8:
105
+ _instance.cancelCommand = _reader.readString();
106
+ break;
107
+ case 9:
108
+ _instance.userIdCreated = _reader.readString();
109
+ break;
110
+ case 10:
111
+ _instance.userIdCancelled = _reader.readString();
112
+ break;
113
+ case 11:
114
+ _instance.projectParent = _reader.readString();
115
+ break;
116
+ case 12:
117
+ _instance.operationType = _reader.readEnum();
118
+ break;
119
+ case 13:
120
+ _instance.hostName = _reader.readString();
121
+ break;
122
+ case 14:
123
+ _instance.numReruns = _reader.readInt32();
124
+ break;
125
+ case 15:
126
+ _instance.maxNumReruns = _reader.readInt32();
127
+ break;
128
+ case 16:
129
+ _instance.description = _reader.readString();
130
+ break;
131
+ default:
132
+ _reader.skipField();
133
+ }
134
+ }
135
+ OperationMetadata.refineValues(_instance);
136
+ }
137
+ /**
138
+ * Serializes a message to binary format using provided binary reader
139
+ * @param _instance message instance
140
+ * @param _writer binary writer instance
141
+ */
142
+ static serializeBinaryToWriter(_instance, _writer) {
143
+ if (_instance.status) {
144
+ _writer.writeEnum(1, _instance.status);
145
+ }
146
+ if (_instance.parentOperationName) {
147
+ _writer.writeString(2, _instance.parentOperationName);
148
+ }
149
+ if (_instance.subOperationNames && _instance.subOperationNames.length) {
150
+ _writer.writeRepeatedString(3, _instance.subOperationNames);
151
+ }
152
+ if (_instance.createTime) {
153
+ _writer.writeMessage(4, _instance.createTime, googleProtobuf000.Timestamp.serializeBinaryToWriter);
154
+ }
155
+ if (_instance.startTime) {
156
+ _writer.writeMessage(5, _instance.startTime, googleProtobuf000.Timestamp.serializeBinaryToWriter);
157
+ }
158
+ if (_instance.endTime) {
159
+ _writer.writeMessage(6, _instance.endTime, googleProtobuf000.Timestamp.serializeBinaryToWriter);
160
+ }
161
+ if (_instance.isCancellationRequested) {
162
+ _writer.writeBool(7, _instance.isCancellationRequested);
163
+ }
164
+ if (_instance.cancelCommand) {
165
+ _writer.writeString(8, _instance.cancelCommand);
166
+ }
167
+ if (_instance.userIdCreated) {
168
+ _writer.writeString(9, _instance.userIdCreated);
169
+ }
170
+ if (_instance.userIdCancelled) {
171
+ _writer.writeString(10, _instance.userIdCancelled);
172
+ }
173
+ if (_instance.projectParent) {
174
+ _writer.writeString(11, _instance.projectParent);
175
+ }
176
+ if (_instance.operationType) {
177
+ _writer.writeEnum(12, _instance.operationType);
178
+ }
179
+ if (_instance.hostName) {
180
+ _writer.writeString(13, _instance.hostName);
181
+ }
182
+ if (_instance.numReruns) {
183
+ _writer.writeInt32(14, _instance.numReruns);
184
+ }
185
+ if (_instance.maxNumReruns) {
186
+ _writer.writeInt32(15, _instance.maxNumReruns);
187
+ }
188
+ if (_instance.description) {
189
+ _writer.writeString(16, _instance.description);
190
+ }
191
+ }
192
+ get status() {
193
+ return this._status;
194
+ }
195
+ set status(value) {
196
+ this._status = value;
197
+ }
198
+ get parentOperationName() {
199
+ return this._parentOperationName;
200
+ }
201
+ set parentOperationName(value) {
202
+ this._parentOperationName = value;
203
+ }
204
+ get subOperationNames() {
205
+ return this._subOperationNames;
206
+ }
207
+ set subOperationNames(value) {
208
+ this._subOperationNames = value;
209
+ }
210
+ get createTime() {
211
+ return this._createTime;
212
+ }
213
+ set createTime(value) {
214
+ this._createTime = value;
215
+ }
216
+ get startTime() {
217
+ return this._startTime;
218
+ }
219
+ set startTime(value) {
220
+ this._startTime = value;
221
+ }
222
+ get endTime() {
223
+ return this._endTime;
224
+ }
225
+ set endTime(value) {
226
+ this._endTime = value;
227
+ }
228
+ get isCancellationRequested() {
229
+ return this._isCancellationRequested;
230
+ }
231
+ set isCancellationRequested(value) {
232
+ this._isCancellationRequested = value;
233
+ }
234
+ get cancelCommand() {
235
+ return this._cancelCommand;
236
+ }
237
+ set cancelCommand(value) {
238
+ this._cancelCommand = value;
239
+ }
240
+ get userIdCreated() {
241
+ return this._userIdCreated;
242
+ }
243
+ set userIdCreated(value) {
244
+ this._userIdCreated = value;
245
+ }
246
+ get userIdCancelled() {
247
+ return this._userIdCancelled;
248
+ }
249
+ set userIdCancelled(value) {
250
+ this._userIdCancelled = value;
251
+ }
252
+ get projectParent() {
253
+ return this._projectParent;
254
+ }
255
+ set projectParent(value) {
256
+ this._projectParent = value;
257
+ }
258
+ get operationType() {
259
+ return this._operationType;
260
+ }
261
+ set operationType(value) {
262
+ this._operationType = value;
263
+ }
264
+ get hostName() {
265
+ return this._hostName;
266
+ }
267
+ set hostName(value) {
268
+ this._hostName = value;
269
+ }
270
+ get numReruns() {
271
+ return this._numReruns;
272
+ }
273
+ set numReruns(value) {
274
+ this._numReruns = value;
275
+ }
276
+ get maxNumReruns() {
277
+ return this._maxNumReruns;
278
+ }
279
+ set maxNumReruns(value) {
280
+ this._maxNumReruns = value;
281
+ }
282
+ get description() {
283
+ return this._description;
284
+ }
285
+ set description(value) {
286
+ this._description = value;
287
+ }
288
+ /**
289
+ * Serialize message to binary data
290
+ * @param instance message instance
291
+ */
292
+ serializeBinary() {
293
+ const writer = new BinaryWriter();
294
+ OperationMetadata.serializeBinaryToWriter(this, writer);
295
+ return writer.getResultBuffer();
296
+ }
297
+ /**
298
+ * Cast message to standard JavaScript object (all non-primitive values are deeply cloned)
299
+ */
300
+ toObject() {
301
+ return {
302
+ status: this.status,
303
+ parentOperationName: this.parentOperationName,
304
+ subOperationNames: (this.subOperationNames || []).slice(),
305
+ createTime: this.createTime ? this.createTime.toObject() : undefined,
306
+ startTime: this.startTime ? this.startTime.toObject() : undefined,
307
+ endTime: this.endTime ? this.endTime.toObject() : undefined,
308
+ isCancellationRequested: this.isCancellationRequested,
309
+ cancelCommand: this.cancelCommand,
310
+ userIdCreated: this.userIdCreated,
311
+ userIdCancelled: this.userIdCancelled,
312
+ projectParent: this.projectParent,
313
+ operationType: this.operationType,
314
+ hostName: this.hostName,
315
+ numReruns: this.numReruns,
316
+ maxNumReruns: this.maxNumReruns,
317
+ description: this.description
318
+ };
319
+ }
320
+ /**
321
+ * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
322
+ */
323
+ toJSON() {
324
+ return this.toObject();
325
+ }
326
+ /**
327
+ * Cast message to JSON using protobuf JSON notation: https://developers.google.com/protocol-buffers/docs/proto3#json
328
+ * Attention: output differs from toObject() e.g. enums are represented as names and not as numbers, Timestamp is an ISO Date string format etc.
329
+ * If the message itself or some of descendant messages is google.protobuf.Any, you MUST provide a message pool as options. If not, the messagePool is not required
330
+ */
331
+ toProtobufJSON(
332
+ // @ts-ignore
333
+ options) {
334
+ return {
335
+ status: OperationMetadata.Status[this.status === null || this.status === undefined ? 0 : this.status],
336
+ parentOperationName: this.parentOperationName,
337
+ subOperationNames: (this.subOperationNames || []).slice(),
338
+ createTime: this.createTime
339
+ ? this.createTime.toProtobufJSON(options)
340
+ : null,
341
+ startTime: this.startTime ? this.startTime.toProtobufJSON(options) : null,
342
+ endTime: this.endTime ? this.endTime.toProtobufJSON(options) : null,
343
+ isCancellationRequested: this.isCancellationRequested,
344
+ cancelCommand: this.cancelCommand,
345
+ userIdCreated: this.userIdCreated,
346
+ userIdCancelled: this.userIdCancelled,
347
+ projectParent: this.projectParent,
348
+ operationType: OperationMetadata.OperationType[this.operationType === null || this.operationType === undefined
349
+ ? 0
350
+ : this.operationType],
351
+ hostName: this.hostName,
352
+ numReruns: this.numReruns,
353
+ maxNumReruns: this.maxNumReruns,
354
+ description: this.description
355
+ };
356
+ }
357
+ }
358
+ OperationMetadata.id = 'ondewo.nlu.OperationMetadata';
359
+ (function (OperationMetadata) {
360
+ let Status;
361
+ (function (Status) {
362
+ Status[Status["STATUS_UNSPECIFIED"] = 0] = "STATUS_UNSPECIFIED";
363
+ Status[Status["NOT_STARTED"] = 1] = "NOT_STARTED";
364
+ Status[Status["IN_PROGRESS"] = 2] = "IN_PROGRESS";
365
+ Status[Status["DONE"] = 3] = "DONE";
366
+ Status[Status["CANCELLED"] = 4] = "CANCELLED";
367
+ Status[Status["FAILED"] = 5] = "FAILED";
368
+ })(Status = OperationMetadata.Status || (OperationMetadata.Status = {}));
369
+ let OperationType;
370
+ (function (OperationType) {
371
+ OperationType[OperationType["OPERATION_TYPE_UNSPECIFIED"] = 0] = "OPERATION_TYPE_UNSPECIFIED";
372
+ OperationType[OperationType["CREATE_AGENT"] = 1] = "CREATE_AGENT";
373
+ OperationType[OperationType["IMPORT_AGENT"] = 2] = "IMPORT_AGENT";
374
+ OperationType[OperationType["EXPORT_AGENT"] = 3] = "EXPORT_AGENT";
375
+ OperationType[OperationType["DELETE_AGENT"] = 4] = "DELETE_AGENT";
376
+ OperationType[OperationType["RESTORE_AGENT"] = 5] = "RESTORE_AGENT";
377
+ OperationType[OperationType["BUILD_AGENT_CACHE"] = 6] = "BUILD_AGENT_CACHE";
378
+ OperationType[OperationType["TRAIN_AGENT"] = 7] = "TRAIN_AGENT";
379
+ OperationType[OperationType["EXPORT_BENCHMARK_AGENT"] = 8] = "EXPORT_BENCHMARK_AGENT";
380
+ })(OperationType = OperationMetadata.OperationType || (OperationMetadata.OperationType = {}));
381
+ })(OperationMetadata || (OperationMetadata = {}));
382
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLW1ldGFkYXRhLnBiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXBpL29uZGV3by9ubHUvb3BlcmF0aW9uLW1ldGFkYXRhLnBiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFjLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxLQUFLLGlCQUFpQixNQUFNLDRCQUE0QixDQUFDO0FBQ2hFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQWtONUI7OztPQUdHO0lBQ0gsWUFBWSxNQUFxRDtRQUMvRCxNQUFNLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDNUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQztRQUN0RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVTtZQUNqQyxDQUFDLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUNwRCxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUztZQUMvQixDQUFDLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUNuRCxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2QsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTztZQUMzQixDQUFDLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUNqRCxDQUFD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QUFnQixDQUFBO1FBQ2hCLG1FQUFpQixDQUFBO1FBQ2pCLDJFQUFxQixDQUFBO1FBQ3JCLCtEQUFlLENBQUE7UUFDZixxRkFBMEIsQ0FBQTtJQUM1QixDQUFDLEVBVlcsYUFBYSxHQUFiLCtCQUFhLEtBQWIsK0JBQWEsUUFVeEI7QUFDSCxDQUFDLEVBL0RhLGlCQUFpQixLQUFqQixpQkFBaUIsUUErRDlCIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBAdHMtbm9jaGVja1xuLy9cbi8vIFRISVMgSVMgQSBHRU5FUkFURUQgRklMRVxuLy8gRE8gTk9UIE1PRElGWSBJVCEgWU9VUiBDSEFOR0VTIFdJTEwgQkUgTE9TVFxuaW1wb3J0IHtcbiAgR3JwY01lc3NhZ2UsXG4gIFJlY3Vyc2l2ZVBhcnRpYWwsXG4gIFRvUHJvdG9idWZKU09OT3B0aW9uc1xufSBmcm9tICdAbmd4LWdycGMvY29tbW9uJztcbmltcG9ydCB7IEJpbmFyeVJlYWRlciwgQmluYXJ5V3JpdGVyLCBCeXRlU291cmNlIH0gZnJvbSAnZ29vZ2xlLXByb3RvYnVmJztcbmltcG9ydCAqIGFzIGdvb2dsZVByb3RvYnVmMDAwIGZyb20gJ0BuZ3gtZ3JwYy93ZWxsLWtub3duLXR5cGVzJztcbi8qKlxuICogTWVzc2FnZSBpbXBsZW1lbnRhdGlvbiBmb3Igb25kZXdvLm5sdS5PcGVyYXRpb25NZXRhZGF0YVxuICovXG5leHBvcnQgY2xhc3MgT3BlcmF0aW9uTWV0YWRhdGEgaW1wbGVtZW50cyBHcnBjTWVzc2FnZSB7XG4gIHN0YXRpYyBpZCA9ICdvbmRld28ubmx1Lk9wZXJhdGlvbk1ldGFkYXRhJztcblxuICAvKipcbiAgICogRGVzZXJpYWxpemUgYmluYXJ5IGRhdGEgdG8gbWVzc2FnZVxuICAgKiBAcGFyYW0gaW5zdGFuY2UgbWVzc2FnZSBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGRlc2VyaWFsaXplQmluYXJ5KGJ5dGVzOiBCeXRlU291cmNlKSB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgT3BlcmF0aW9uTWV0YWRhdGEoKTtcbiAgICBPcGVyYXRpb25NZXRhZGF0YS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIoXG4gICAgICBpbnN0YW5jZSxcbiAgICAgIG5ldyBCaW5hcnlSZWFkZXIoYnl0ZXMpXG4gICAgKTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgYWxsIHRoZSBwcm9wZXJ0aWVzIGFuZCBzZXQgZGVmYXVsdCBwcm90b2J1ZiB2YWx1ZXMgaWYgbmVjZXNzYXJ5XG4gICAqIEBwYXJhbSBfaW5zdGFuY2UgbWVzc2FnZSBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIHJlZmluZVZhbHVlcyhfaW5zdGFuY2U6IE9wZXJhdGlvbk1ldGFkYXRhKSB7XG4gICAgX2luc3RhbmNlLnN0YXR1cyA9IF9pbnN0YW5jZS5zdGF0dXMgfHwgMDtcbiAgICBfaW5zdGFuY2UucGFyZW50T3BlcmF0aW9uTmFtZSA9IF9pbnN0YW5jZS5wYXJlbnRPcGVyYXRpb25OYW1lIHx8ICcnO1xuICAgIF9pbnN0YW5jZS5zdWJPcGVyYXRpb25OYW1lcyA9IF9pbnN0YW5jZS5zdWJPcGVyYXRpb25OYW1lcyB8fCBbXTtcbiAgICBfaW5zdGFuY2UuY3JlYXRlVGltZSA9IF9pbnN0YW5jZS5jcmVhdGVUaW1lIHx8IHVuZGVmaW5lZDtcbiAgICBfaW5zdGFuY2Uuc3RhcnRUaW1lID0gX2luc3RhbmNlLnN0YXJ0VGltZSB8fCB1bmRlZmluZWQ7XG4gICAgX2luc3RhbmNlLmVuZFRpbWUgPSBfaW5zdGFuY2UuZW5kVGltZSB8fCB1bmRlZmluZWQ7XG4gICAgX2luc3RhbmNlLmlzQ2FuY2VsbGF0aW9uUmVxdWVzdGVkID1cbiAgICAgIF9pbnN0YW5jZS5pc0NhbmNlbGxhdGlvblJlcXVlc3RlZCB8fCBmYWxzZTtcbiAgICBfaW5zdGFuY2UuY2FuY2VsQ29tbWFuZCA9IF9pbnN0YW5jZS5jYW5jZWxDb21tYW5kIHx8ICcnO1xuICAgIF9pbnN0YW5jZS51c2VySWRDcmVhdGVkID0gX2luc3RhbmNlLnVzZXJJZENyZWF0ZWQgfHwgJyc7XG4gICAgX2luc3RhbmNlLnVzZXJJZENhbmNlbGxlZCA9IF9pbnN0YW5jZS51c2VySWRDYW5jZWxsZWQgfHwgJyc7XG4gICAgX2luc3RhbmNlLnByb2plY3RQYXJlbnQgPSBfaW5zdGFuY2UucHJvamVjdFBhcmVudCB8fCAnJztcbiAgICBfaW5zdGFuY2Uub3BlcmF0aW9uVHlwZSA9IF9pbnN0YW5jZS5vcGVyYXRpb25UeXBlIHx8IDA7XG4gICAgX2luc3RhbmNlLmhvc3ROYW1lID0gX2luc3RhbmNlLmhvc3ROYW1lIHx8ICcnO1xuICAgIF9pbnN0YW5jZS5udW1SZXJ1bnMgPSBfaW5zdGFuY2UubnVtUmVydW5zIHx8IDA7XG4gICAgX2luc3RhbmNlLm1heE51bVJlcnVucyA9IF9pbnN0YW5jZS5tYXhOdW1SZXJ1bnMgfHwgMDtcbiAgICBfaW5zdGFuY2UuZGVzY3JpcHRpb24gPSBfaW5zdGFuY2UuZGVzY3JpcHRpb24gfHwgJyc7XG4gIH1cblxuICAvKipcbiAgICogRGVzZXJpYWxpemVzIC8gcmVhZHMgYmluYXJ5IG1lc3NhZ2UgaW50byBtZXNzYWdlIGluc3RhbmNlIHVzaW5nIHByb3ZpZGVkIGJpbmFyeSByZWFkZXJcbiAgICogQHBhcmFtIF9pbnN0YW5jZSBtZXNzYWdlIGluc3RhbmNlXG4gICAqIEBwYXJhbSBfcmVhZGVyIGJpbmFyeSByZWFkZXIgaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBkZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIoXG4gICAgX2luc3RhbmNlOiBPcGVyYXRpb25NZXRhZGF0YSxcbiAgICBfcmVhZGVyOiBCaW5hcnlSZWFkZXJcbiAgKSB7XG4gICAgd2hpbGUgKF9yZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICAgIGlmIChfcmVhZGVyLmlzRW5kR3JvdXAoKSkgYnJlYWs7XG5cbiAgICAgIHN3aXRjaCAoX3JlYWRlci5nZXRGaWVsZE51bWJlcigpKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBfaW5zdGFuY2Uuc3RhdHVzID0gX3JlYWRlci5yZWFkRW51bSgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgX2luc3RhbmNlLnBhcmVudE9wZXJhdGlvbk5hbWUgPSBfcmVhZGVyLnJlYWRTdHJpbmcoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIChfaW5zdGFuY2Uuc3ViT3BlcmF0aW9uTmFtZXMgPVxuICAgICAgICAgICAgX2luc3RhbmNlLnN1Yk9wZXJhdGlvbk5hbWVzIHx8IFtdKS5wdXNoKF9yZWFkZXIucmVhZFN0cmluZygpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIF9pbnN0YW5jZS5jcmVhdGVUaW1lID0gbmV3IGdvb2dsZVByb3RvYnVmMDAwLlRpbWVzdGFtcCgpO1xuICAgICAgICAgIF9yZWFkZXIucmVhZE1lc3NhZ2UoXG4gICAgICAgICAgICBfaW5zdGFuY2UuY3JlYXRlVGltZSxcbiAgICAgICAgICAgIGdvb2dsZVByb3RvYnVmMDAwLlRpbWVzdGFtcC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXJcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgX2luc3RhbmNlLnN0YXJ0VGltZSA9IG5ldyBnb29nbGVQcm90b2J1ZjAwMC5UaW1lc3RhbXAoKTtcbiAgICAgICAgICBfcmVhZGVyLnJlYWRNZXNzYWdlKFxuICAgICAgICAgICAgX2luc3RhbmNlLnN0YXJ0VGltZSxcbiAgICAgICAgICAgIGdvb2dsZVByb3RvYnVmMDAwLlRpbWVzdGFtcC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXJcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgX2luc3RhbmNlLmVuZFRpbWUgPSBuZXcgZ29vZ2xlUHJvdG9idWYwMDAuVGltZXN0YW1wKCk7XG4gICAgICAgICAgX3JlYWRlci5yZWFkTWVzc2FnZShcbiAgICAgICAgICAgIF9pbnN0YW5jZS5lbmRUaW1lLFxuICAgICAgICAgICAgZ29vZ2xlUHJvdG9idWYwMDAuVGltZXN0YW1wLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlclxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICBfaW5zdGFuY2UuaXNDYW5jZWxsYXRpb25SZXF1ZXN0ZWQgPSBfcmVhZGVyLnJlYWRCb29sKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICBfaW5zdGFuY2UuY2FuY2VsQ29tbWFuZCA9IF9yZWFkZXIucmVhZFN0cmluZygpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgX2luc3RhbmNlLnVzZXJJZENyZWF0ZWQgPSBfcmVhZGVyLnJlYWRTdHJpbmcoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICBfaW5zdGFuY2UudXNlcklkQ2FuY2VsbGVkID0gX3JlYWRlci5yZWFkU3RyaW5nKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgICAgX2luc3RhbmNlLnByb2plY3RQYXJlbnQgPSBfcmVhZGVyLnJlYWRTdHJpbmcoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICBfaW5zdGFuY2Uub3BlcmF0aW9uVHlwZSA9IF9yZWFkZXIucmVhZEVudW0oKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICBfaW5zdGFuY2UuaG9zdE5hbWUgPSBfcmVhZGVyLnJlYWRTdHJpbmcoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNDpcbiAgICAgICAgICBfaW5zdGFuY2UubnVtUmVydW5zID0gX3JlYWRlci5yZWFkSW50MzIoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICBfaW5zdGFuY2UubWF4TnVtUmVydW5zID0gX3JlYWRlci5yZWFkSW50MzIoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICBfaW5zdGFuY2UuZGVzY3JpcHRpb24gPSBfcmVhZGVyLnJlYWRTdHJpbmcoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBfcmVhZGVyLnNraXBGaWVsZCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIE9wZXJhdGlvbk1ldGFkYXRhLnJlZmluZVZhbHVlcyhfaW5zdGFuY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZXMgYSBtZXNzYWdlIHRvIGJpbmFyeSBmb3JtYXQgdXNpbmcgcHJvdmlkZWQgYmluYXJ5IHJlYWRlclxuICAgKiBAcGFyYW0gX2luc3RhbmNlIG1lc3NhZ2UgaW5zdGFuY2VcbiAgICogQHBhcmFtIF93cml0ZXIgYmluYXJ5IHdyaXRlciBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIHNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKFxuICAgIF9pbnN0YW5jZTogT3BlcmF0aW9uTWV0YWRhdGEsXG4gICAgX3dyaXRlcjogQmluYXJ5V3JpdGVyXG4gICkge1xuICAgIGlmIChfaW5zdGFuY2Uuc3RhdHVzKSB7XG4gICAgICBfd3JpdGVyLndyaXRlRW51bSgxLCBfaW5zdGFuY2Uuc3RhdHVzKTtcbiAgICB9XG4gICAgaWYgKF9pbnN0YW5jZS5wYXJlbnRPcGVyYXRpb25OYW1lKSB7XG4gICAgICBfd3JpdGVyLndyaXRlU3RyaW5nKDIsIF9pbnN0YW5jZS5wYXJlbnRPcGVyYXRpb25OYW1lKTtcbiAgICB9XG4gICAgaWYgKF9pbnN0YW5jZS5zdWJPcGVyYXRpb25OYW1lcyAmJiBfaW5zdGFuY2Uuc3ViT3BlcmF0aW9uTmFtZXMubGVuZ3RoKSB7XG4gICAgICBfd3JpdGVyLndyaXRlUmVwZWF0ZWRTdHJpbmcoMywgX2luc3RhbmNlLnN1Yk9wZXJhdGlvbk5hbWVzKTtcbiAgICB9XG4gICAgaWYgKF9pbnN0YW5jZS5jcmVhdGVUaW1lKSB7XG4gICAgICBfd3JpdGVyLndyaXRlTWVzc2FnZShcbiAgICAgICAgNCxcbiAgICAgICAgX2luc3RhbmNlLmNyZWF0ZVRpbWUgYXMgYW55LFxuICAgICAgICBnb29nbGVQcm90b2J1ZjAwMC5UaW1lc3RhbXAuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXJcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChfaW5zdGFuY2Uuc3RhcnRUaW1lKSB7XG4gICAgICBfd3JpdGVyLndyaXRlTWVzc2FnZShcbiAgICAgICAgNSxcbiAgICAgICAgX2luc3RhbmNlLnN0YXJ0VGltZSBhcyBhbnksXG4gICAgICAgIGdvb2dsZVByb3RvYnVmMDAwLlRpbWVzdGFtcC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlclxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKF9pbnN0YW5jZS5lbmRUaW1lKSB7XG4gICAgICBfd3JpdGVyLndyaXRlTWVzc2FnZShcbiAgICAgICAgNixcbiAgICAgICAgX2luc3RhbmNlLmVuZFRpbWUgYXMgYW55LFxuICAgICAgICBnb29nbGVQcm90b2J1ZjAwMC5UaW1lc3RhbXAuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXJcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChfaW5zdGFuY2UuaXNDYW5jZWxsYXRpb25SZXF1ZXN0ZWQpIHtcbiAgICAgIF93cml0ZXIud3JpdGVCb29sKDcsIF9pbnN0YW5jZS5pc0NhbmNlbGxhdGlvblJlcXVlc3RlZCk7XG4gICAgfVxuICAgIGlmIChfaW5zdGFuY2UuY2FuY2VsQ29tbWFuZCkge1xuICAgICAgX3dyaXRlci53cml0ZVN0cmluZyg4LCBfaW5zdGFuY2UuY2FuY2VsQ29tbWFuZCk7XG4gICAgfVxuICAgIGlmIChfaW5zdGFuY2UudXNlcklkQ3JlYXRlZCkge1xuICAgICAgX3dyaXRlci53cml0ZVN0cmluZyg5LCBfaW5zdGFuY2UudXNlcklkQ3JlYXRlZCk7XG4gICAgfVxuICAgIGlmIChfaW5zdGFuY2UudXNlcklkQ2FuY2VsbGVkKSB7XG4gICAgICBfd3JpdGVyLndyaXRlU3RyaW5nKDEwLCBfaW5zdGFuY2UudXNlcklkQ2FuY2VsbGVkKTtcbiAgICB9XG4gICAgaWYgKF9pbnN0YW5jZS5wcm9qZWN0UGFyZW50KSB7XG4gICAgICBfd3JpdGVyLndyaXRlU3RyaW5nKDExLCBfaW5zdGFuY2UucHJvamVjdFBhcmVudCk7XG4gICAgfVxuICAgIGlmIChfaW5zdGFuY2Uub3BlcmF0aW9uVHlwZSkge1xuICAgICAgX3dyaXRlci53cml0ZUVudW0oMTIsIF9pbnN0YW5jZS5vcGVyYXRpb25UeXBlKTtcbiAgICB9XG4gICAgaWYgKF9pbnN0YW5jZS5ob3N0TmFtZSkge1xuICAgICAgX3dyaXRlci53cml0ZVN0cmluZygxMywgX2luc3RhbmNlLmhvc3ROYW1lKTtcbiAgICB9XG4gICAgaWYgKF9pbnN0YW5jZS5udW1SZXJ1bnMpIHtcbiAgICAgIF93cml0ZXIud3JpdGVJbnQzMigxNCwgX2luc3RhbmNlLm51bVJlcnVucyk7XG4gICAgfVxuICAgIGlmIChfaW5zdGFuY2UubWF4TnVtUmVydW5zKSB7XG4gICAgICBfd3JpdGVyLndyaXRlSW50MzIoMTUsIF9pbnN0YW5jZS5tYXhOdW1SZXJ1bnMpO1xuICAgIH1cbiAgICBpZiAoX2luc3RhbmNlLmRlc2NyaXB0aW9uKSB7XG4gICAgICBfd3JpdGVyLndyaXRlU3RyaW5nKDE2LCBfaW5zdGFuY2UuZGVzY3JpcHRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3N0YXR1cz86IE9wZXJhdGlvbk1ldGFkYXRhLlN0YXR1cztcbiAgcHJpdmF0ZSBfcGFyZW50T3BlcmF0aW9uTmFtZT86IHN0cmluZztcbiAgcHJpdmF0ZSBfc3ViT3BlcmF0aW9uTmFtZXM/OiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSBfY3JlYXRlVGltZT86IGdvb2dsZVByb3RvYnVmMDAwLlRpbWVzdGFtcDtcbiAgcHJpdmF0ZSBfc3RhcnRUaW1lPzogZ29vZ2xlUHJvdG9idWYwMDAuVGltZXN0YW1wO1xuICBwcml2YXRlIF9lbmRUaW1lPzogZ29vZ2xlUHJvdG9idWYwMDAuVGltZXN0YW1wO1xuICBwcml2YXRlIF9pc0NhbmNlbGxhdGlvblJlcXVlc3RlZD86IGJvb2xlYW47XG4gIHByaXZhdGUgX2NhbmNlbENvbW1hbmQ/OiBzdHJpbmc7XG4gIHByaXZhdGUgX3VzZXJJZENyZWF0ZWQ/OiBzdHJpbmc7XG4gIHByaXZhdGUgX3VzZXJJZENhbmNlbGxlZD86IHN0cmluZztcbiAgcHJpdmF0ZSBfcHJvamVjdFBhcmVudD86IHN0cmluZztcbiAgcHJpdmF0ZSBfb3BlcmF0aW9uVHlwZT86IE9wZXJhdGlvbk1ldGFkYXRhLk9wZXJhdGlvblR5cGU7XG4gIHByaXZhdGUgX2hvc3ROYW1lPzogc3RyaW5nO1xuICBwcml2YXRlIF9udW1SZXJ1bnM/OiBudW1iZXI7XG4gIHByaXZhdGUgX21heE51bVJlcnVucz86IG51bWJlcjtcbiAgcHJpdmF0ZSBfZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1lc3NhZ2UgY29uc3RydWN0b3IuIEluaXRpYWxpemVzIHRoZSBwcm9wZXJ0aWVzIGFuZCBhcHBsaWVzIGRlZmF1bHQgUHJvdG9idWYgdmFsdWVzIGlmIG5lY2Vzc2FyeVxuICAgKiBAcGFyYW0gX3ZhbHVlIGluaXRpYWwgdmFsdWVzIG9iamVjdCBvciBpbnN0YW5jZSBvZiBPcGVyYXRpb25NZXRhZGF0YSB0byBkZWVwbHkgY2xvbmUgZnJvbVxuICAgKi9cbiAgY29uc3RydWN0b3IoX3ZhbHVlPzogUmVjdXJzaXZlUGFydGlhbDxPcGVyYXRpb25NZXRhZGF0YS5Bc09iamVjdD4pIHtcbiAgICBfdmFsdWUgPSBfdmFsdWUgfHwge307XG4gICAgdGhpcy5zdGF0dXMgPSBfdmFsdWUuc3RhdHVzO1xuICAgIHRoaXMucGFyZW50T3BlcmF0aW9uTmFtZSA9IF92YWx1ZS5wYXJlbnRPcGVyYXRpb25OYW1lO1xuICAgIHRoaXMuc3ViT3BlcmF0aW9uTmFtZXMgPSAoX3ZhbHVlLnN1Yk9wZXJhdGlvbk5hbWVzIHx8IFtdKS5zbGljZSgpO1xuICAgIHRoaXMuY3JlYXRlVGltZSA9IF92YWx1ZS5jcmVhdGVUaW1lXG4gICAgICA/IG5ldyBnb29nbGVQcm90b2J1ZjAwMC5UaW1lc3RhbXAoX3ZhbHVlLmNyZWF0ZVRpbWUpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLnN0YXJ0VGltZSA9IF92YWx1ZS5zdGFydFRpbWVcbiAgICAgID8gbmV3IGdvb2dsZVByb3RvYnVmMDAwLlRpbWVzdGFtcChfdmFsdWUuc3RhcnRUaW1lKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gICAgdGhpcy5lbmRUaW1lID0gX3ZhbHVlLmVuZFRpbWVcbiAgICAgID8gbmV3IGdvb2dsZVByb3RvYnVmMDAwLlRpbWVzdGFtcChfdmFsdWUuZW5kVGltZSlcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuaXNDYW5jZWxsYXRpb25SZXF1ZXN0ZWQgPSBfdmFsdWUuaXNDYW5jZWxsYXRpb25SZXF1ZXN0ZWQ7XG4gICAgdGhpcy5jYW5jZWxDb21tYW5kID0gX3ZhbHVlLmNhbmNlbENvbW1hbmQ7XG4gICAgdGhpcy51c2VySWRDcmVhdGVkID0gX3ZhbHVlLnVzZXJJZENyZWF0ZWQ7XG4gICAgdGhpcy51c2VySWRDYW5jZWxsZWQgPSBfdmFsdWUudXNlcklkQ2FuY2VsbGVkO1xuICAgIHRoaXMucHJvamVjdFBhcmVudCA9IF92YWx1ZS5wcm9qZWN0UGFyZW50O1xuICAgIHRoaXMub3BlcmF0aW9uVHlwZSA9IF92YWx1ZS5vcGVyYXRpb25UeXBlO1xuICAgIHRoaXMuaG9zdE5hbWUgPSBfdmFsdWUuaG9zdE5hbWU7XG4gICAgdGhpcy5udW1SZXJ1bnMgPSBfdmFsdWUubnVtUmVydW5zO1xuICAgIHRoaXMubWF4TnVtUmVydW5zID0gX3ZhbHVlLm1heE51bVJlcnVucztcbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gX3ZhbHVlLmRlc2NyaXB0aW9uO1xuICAgIE9wZXJhdGlvbk1ldGFkYXRhLnJlZmluZVZhbHVlcyh0aGlzKTtcbiAgfVxuICBnZXQgc3RhdHVzKCk6IE9wZXJhdGlvbk1ldGFkYXRhLlN0YXR1cyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXR1cztcbiAgfVxuICBzZXQgc3RhdHVzKHZhbHVlOiBPcGVyYXRpb25NZXRhZGF0YS5TdGF0dXMgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9zdGF0dXMgPSB2YWx1ZTtcbiAgfVxuICBnZXQgcGFyZW50T3BlcmF0aW9uTmFtZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRPcGVyYXRpb25OYW1lO1xuICB9XG4gIHNldCBwYXJlbnRPcGVyYXRpb25OYW1lKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9wYXJlbnRPcGVyYXRpb25OYW1lID0gdmFsdWU7XG4gIH1cbiAgZ2V0IHN1Yk9wZXJhdGlvbk5hbWVzKCk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fc3ViT3BlcmF0aW9uTmFtZXM7XG4gIH1cbiAgc2V0IHN1Yk9wZXJhdGlvbk5hbWVzKHZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3N1Yk9wZXJhdGlvbk5hbWVzID0gdmFsdWU7XG4gIH1cbiAgZ2V0IGNyZWF0ZVRpbWUoKTogZ29vZ2xlUHJvdG9idWYwMDAuVGltZXN0YW1wIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fY3JlYXRlVGltZTtcbiAgfVxuICBzZXQgY3JlYXRlVGltZSh2YWx1ZTogZ29vZ2xlUHJvdG9idWYwMDAuVGltZXN0YW1wIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fY3JlYXRlVGltZSA9IHZhbHVlO1xuICB9XG4gIGdldCBzdGFydFRpbWUoKTogZ29vZ2xlUHJvdG9idWYwMDAuVGltZXN0YW1wIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRUaW1lO1xuICB9XG4gIHNldCBzdGFydFRpbWUodmFsdWU6IGdvb2dsZVByb3RvYnVmMDAwLlRpbWVzdGFtcCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3N0YXJ0VGltZSA9IHZhbHVlO1xuICB9XG4gIGdldCBlbmRUaW1lKCk6IGdvb2dsZVByb3RvYnVmMDAwLlRpbWVzdGFtcCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2VuZFRpbWU7XG4gIH1cbiAgc2V0IGVuZFRpbWUodmFsdWU6IGdvb2dsZVByb3RvYnVmMDAwLlRpbWVzdGFtcCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2VuZFRpbWUgPSB2YWx1ZTtcbiAgfVxuICBnZXQgaXNDYW5jZWxsYXRpb25SZXF1ZXN0ZWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2lzQ2FuY2VsbGF0aW9uUmVxdWVzdGVkO1xuICB9XG4gIHNldCBpc0NhbmNlbGxhdGlvblJlcXVlc3RlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2lzQ2FuY2VsbGF0aW9uUmVxdWVzdGVkID0gdmFsdWU7XG4gIH1cbiAgZ2V0IGNhbmNlbENvbW1hbmQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fY2FuY2VsQ29tbWFuZDtcbiAgfVxuICBzZXQgY2FuY2VsQ29tbWFuZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fY2FuY2VsQ29tbWFuZCA9IHZhbHVlO1xuICB9XG4gIGdldCB1c2VySWRDcmVhdGVkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3VzZXJJZENyZWF0ZWQ7XG4gIH1cbiAgc2V0IHVzZXJJZENyZWF0ZWQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3VzZXJJZENyZWF0ZWQgPSB2YWx1ZTtcbiAgfVxuICBnZXQgdXNlcklkQ2FuY2VsbGVkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3VzZXJJZENhbmNlbGxlZDtcbiAgfVxuICBzZXQgdXNlcklkQ2FuY2VsbGVkKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl91c2VySWRDYW5jZWxsZWQgPSB2YWx1ZTtcbiAgfVxuICBnZXQgcHJvamVjdFBhcmVudCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9wcm9qZWN0UGFyZW50O1xuICB9XG4gIHNldCBwcm9qZWN0UGFyZW50KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9wcm9qZWN0UGFyZW50ID0gdmFsdWU7XG4gIH1cbiAgZ2V0IG9wZXJhdGlvblR5cGUoKTogT3BlcmF0aW9uTWV0YWRhdGEuT3BlcmF0aW9uVHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX29wZXJhdGlvblR5cGU7XG4gIH1cbiAgc2V0IG9wZXJhdGlvblR5cGUodmFsdWU6IE9wZXJhdGlvbk1ldGFkYXRhLk9wZXJhdGlvblR5cGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9vcGVyYXRpb25UeXBlID0gdmFsdWU7XG4gIH1cbiAgZ2V0IGhvc3ROYW1lKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2hvc3ROYW1lO1xuICB9XG4gIHNldCBob3N0TmFtZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5faG9zdE5hbWUgPSB2YWx1ZTtcbiAgfVxuICBnZXQgbnVtUmVydW5zKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX251bVJlcnVucztcbiAgfVxuICBzZXQgbnVtUmVydW5zKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9udW1SZXJ1bnMgPSB2YWx1ZTtcbiAgfVxuICBnZXQgbWF4TnVtUmVydW5zKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX21heE51bVJlcnVucztcbiAgfVxuICBzZXQgbWF4TnVtUmVydW5zKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9tYXhOdW1SZXJ1bnMgPSB2YWx1ZTtcbiAgfVxuICBnZXQgZGVzY3JpcHRpb24oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZGVzY3JpcHRpb247XG4gIH1cbiAgc2V0IGRlc2NyaXB0aW9uKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9kZXNjcmlwdGlvbiA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZSBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhXG4gICAqIEBwYXJhbSBpbnN0YW5jZSBtZXNzYWdlIGluc3RhbmNlXG4gICAqL1xuICBzZXJpYWxpemVCaW5hcnkoKSB7XG4gICAgY29uc3Qgd3JpdGVyID0gbmV3IEJpbmFyeVdyaXRlcigpO1xuICAgIE9wZXJhdGlvbk1ldGFkYXRhLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsIHdyaXRlcik7XG4gICAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYXN0IG1lc3NhZ2UgdG8gc3RhbmRhcmQgSmF2YVNjcmlwdCBvYmplY3QgKGFsbCBub24tcHJpbWl0aXZlIHZhbHVlcyBhcmUgZGVlcGx5IGNsb25lZClcbiAgICovXG4gIHRvT2JqZWN0KCk6IE9wZXJhdGlvbk1ldGFkYXRhLkFzT2JqZWN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICAgIHBhcmVudE9wZXJhdGlvbk5hbWU6IHRoaXMucGFyZW50T3BlcmF0aW9uTmFtZSxcbiAgICAgIHN1Yk9wZXJhdGlvbk5hbWVzOiAodGhpcy5zdWJPcGVyYXRpb25OYW1lcyB8fCBbXSkuc2xpY2UoKSxcbiAgICAgIGNyZWF0ZVRpbWU6IHRoaXMuY3JlYXRlVGltZSA/IHRoaXMuY3JlYXRlVGltZS50b09iamVjdCgpIDogdW5kZWZpbmVkLFxuICAgICAgc3RhcnRUaW1lOiB0aGlzLnN0YXJ0VGltZSA/IHRoaXMuc3RhcnRUaW1lLnRvT2JqZWN0KCkgOiB1bmRlZmluZWQsXG4gICAgICBlbmRUaW1lOiB0aGlzLmVuZFRpbWUgPyB0aGlzLmVuZFRpbWUudG9PYmplY3QoKSA6IHVuZGVmaW5lZCxcbiAgICAgIGlzQ2FuY2VsbGF0aW9uUmVxdWVzdGVkOiB0aGlzLmlzQ2FuY2VsbGF0aW9uUmVxdWVzdGVkLFxuICAgICAgY2FuY2VsQ29tbWFuZDogdGhpcy5jYW5jZWxDb21tYW5kLFxuICAgICAgdXNlcklkQ3JlYXRlZDogdGhpcy51c2VySWRDcmVhdGVkLFxuICAgICAgdXNlcklkQ2FuY2VsbGVkOiB0aGlzLnVzZXJJZENhbmNlbGxlZCxcbiAgICAgIHByb2plY3RQYXJlbnQ6IHRoaXMucHJvamVjdFBhcmVudCxcbiAgICAgIG9wZXJhdGlvblR5cGU6IHRoaXMub3BlcmF0aW9uVHlwZSxcbiAgICAgIGhvc3ROYW1lOiB0aGlzLmhvc3ROYW1lLFxuICAgICAgbnVtUmVydW5zOiB0aGlzLm51bVJlcnVucyxcbiAgICAgIG1heE51bVJlcnVuczogdGhpcy5tYXhOdW1SZXJ1bnMsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvblxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRvIHN1cHBvcnQgSlNPTi5zdHJpbmdpZnkobWVzc2FnZSksIHJlcGxpY2F0ZXMgdGhlIHN0cnVjdHVyZSBvZiB0b09iamVjdCgpXG4gICAqL1xuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMudG9PYmplY3QoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYXN0IG1lc3NhZ2UgdG8gSlNPTiB1c2luZyBwcm90b2J1ZiBKU09OIG5vdGF0aW9uOiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzL2RvY3MvcHJvdG8zI2pzb25cbiAgICogQXR0ZW50aW9uOiBvdXRwdXQgZGlmZmVycyBmcm9tIHRvT2JqZWN0KCkgZS5nLiBlbnVtcyBhcmUgcmVwcmVzZW50ZWQgYXMgbmFtZXMgYW5kIG5vdCBhcyBudW1iZXJzLCBUaW1lc3RhbXAgaXMgYW4gSVNPIERhdGUgc3RyaW5nIGZvcm1hdCBldGMuXG4gICAqIElmIHRoZSBtZXNzYWdlIGl0c2VsZiBvciBzb21lIG9mIGRlc2NlbmRhbnQgbWVzc2FnZXMgaXMgZ29vZ2xlLnByb3RvYnVmLkFueSwgeW91IE1VU1QgcHJvdmlkZSBhIG1lc3NhZ2UgcG9vbCBhcyBvcHRpb25zLiBJZiBub3QsIHRoZSBtZXNzYWdlUG9vbCBpcyBub3QgcmVxdWlyZWRcbiAgICovXG4gIHRvUHJvdG9idWZKU09OKFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBvcHRpb25zPzogVG9Qcm90b2J1ZkpTT05PcHRpb25zXG4gICk6IE9wZXJhdGlvbk1ldGFkYXRhLkFzUHJvdG9idWZKU09OIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzOlxuICAgICAgICBPcGVyYXRpb25NZXRhZGF0YS5TdGF0dXNbXG4gICAgICAgICAgdGhpcy5zdGF0dXMgPT09IG51bGwgfHwgdGhpcy5zdGF0dXMgPT09IHVuZGVmaW5lZCA/IDAgOiB0aGlzLnN0YXR1c1xuICAgICAgICBdLFxuICAgICAgcGFyZW50T3BlcmF0aW9uTmFtZTogdGhpcy5wYXJlbnRPcGVyYXRpb25OYW1lLFxuICAgICAgc3ViT3BlcmF0aW9uTmFtZXM6ICh0aGlzLnN1Yk9wZXJhdGlvbk5hbWVzIHx8IFtdKS5zbGljZSgpLFxuICAgICAgY3JlYXRlVGltZTogdGhpcy5jcmVhdGVUaW1lXG4gICAgICAgID8gdGhpcy5jcmVhdGVUaW1lLnRvUHJvdG9idWZKU09OKG9wdGlvbnMpXG4gICAgICAgIDogbnVsbCxcbiAgICAgIHN0YXJ0VGltZTogdGhpcy5zdGFydFRpbWUgPyB0aGlzLnN0YXJ0VGltZS50b1Byb3RvYnVmSlNPTihvcHRpb25zKSA6IG51bGwsXG4gICAgICBlbmRUaW1lOiB0aGlzLmVuZFRpbWUgPyB0aGlzLmVuZFRpbWUudG9Qcm90b2J1ZkpTT04ob3B0aW9ucykgOiBudWxsLFxuICAgICAgaXNDYW5jZWxsYXRpb25SZXF1ZXN0ZWQ6IHRoaXMuaXNDYW5jZWxsYXRpb25SZXF1ZXN0ZWQsXG4gICAgICBjYW5jZWxDb21tYW5kOiB0aGlzLmNhbmNlbENvbW1hbmQsXG4gICAgICB1c2VySWRDcmVhdGVkOiB0aGlzLnVzZXJJZENyZWF0ZWQsXG4gICAgICB1c2VySWRDYW5jZWxsZWQ6IHRoaXMudXNlcklkQ2FuY2VsbGVkLFxuICAgICAgcHJvamVjdFBhcmVudDogdGhpcy5wcm9qZWN0UGFyZW50LFxuICAgICAgb3BlcmF0aW9uVHlwZTpcbiAgICAgICAgT3BlcmF0aW9uTWV0YWRhdGEuT3BlcmF0aW9uVHlwZVtcbiAgICAgICAgICB0aGlzLm9wZXJhdGlvblR5cGUgPT09IG51bGwgfHwgdGhpcy5vcGVyYXRpb25UeXBlID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgOiB0aGlzLm9wZXJhdGlvblR5cGVcbiAgICAgICAgXSxcbiAgICAgIGhvc3ROYW1lOiB0aGlzLmhvc3ROYW1lLFxuICAgICAgbnVtUmVydW5zOiB0aGlzLm51bVJlcnVucyxcbiAgICAgIG1heE51bVJlcnVuczogdGhpcy5tYXhOdW1SZXJ1bnMsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvblxuICAgIH07XG4gIH1cbn1cbmV4cG9ydCBtb2R1bGUgT3BlcmF0aW9uTWV0YWRhdGEge1xuICAvKipcbiAgICogU3RhbmRhcmQgSmF2YVNjcmlwdCBvYmplY3QgcmVwcmVzZW50YXRpb24gZm9yIE9wZXJhdGlvbk1ldGFkYXRhXG4gICAqL1xuICBleHBvcnQgaW50ZXJmYWNlIEFzT2JqZWN0IHtcbiAgICBzdGF0dXM/OiBPcGVyYXRpb25NZXRhZGF0YS5TdGF0dXM7XG4gICAgcGFyZW50T3BlcmF0aW9uTmFtZT86IHN0cmluZztcbiAgICBzdWJPcGVyYXRpb25OYW1lcz86IHN0cmluZ1tdO1xuICAgIGNyZWF0ZVRpbWU/OiBnb29nbGVQcm90b2J1ZjAwMC5UaW1lc3RhbXAuQXNPYmplY3Q7XG4gICAgc3RhcnRUaW1lPzogZ29vZ2xlUHJvdG9idWYwMDAuVGltZXN0YW1wLkFzT2JqZWN0O1xuICAgIGVuZFRpbWU/OiBnb29nbGVQcm90b2J1ZjAwMC5UaW1lc3RhbXAuQXNPYmplY3Q7XG4gICAgaXNDYW5jZWxsYXRpb25SZXF1ZXN0ZWQ/OiBib29sZWFuO1xuICAgIGNhbmNlbENvbW1hbmQ/OiBzdHJpbmc7XG4gICAgdXNlcklkQ3JlYXRlZD86IHN0cmluZztcbiAgICB1c2VySWRDYW5jZWxsZWQ/OiBzdHJpbmc7XG4gICAgcHJvamVjdFBhcmVudD86IHN0cmluZztcbiAgICBvcGVyYXRpb25UeXBlPzogT3BlcmF0aW9uTWV0YWRhdGEuT3BlcmF0aW9uVHlwZTtcbiAgICBob3N0TmFtZT86IHN0cmluZztcbiAgICBudW1SZXJ1bnM/OiBudW1iZXI7XG4gICAgbWF4TnVtUmVydW5zPzogbnVtYmVyO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3RvYnVmIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIE9wZXJhdGlvbk1ldGFkYXRhXG4gICAqL1xuICBleHBvcnQgaW50ZXJmYWNlIEFzUHJvdG9idWZKU09OIHtcbiAgICBzdGF0dXM/OiBzdHJpbmc7XG4gICAgcGFyZW50T3BlcmF0aW9uTmFtZT86IHN0cmluZztcbiAgICBzdWJPcGVyYXRpb25OYW1lcz86IHN0cmluZ1tdO1xuICAgIGNyZWF0ZVRpbWU/OiBnb29nbGVQcm90b2J1ZjAwMC5UaW1lc3RhbXAuQXNQcm90b2J1ZkpTT04gfCBudWxsO1xuICAgIHN0YXJ0VGltZT86IGdvb2dsZVByb3RvYnVmMDAwLlRpbWVzdGFtcC5Bc1Byb3RvYnVmSlNPTiB8IG51bGw7XG4gICAgZW5kVGltZT86IGdvb2dsZVByb3RvYnVmMDAwLlRpbWVzdGFtcC5Bc1Byb3RvYnVmSlNPTiB8IG51bGw7XG4gICAgaXNDYW5jZWxsYXRpb25SZXF1ZXN0ZWQ/OiBib29sZWFuO1xuICAgIGNhbmNlbENvbW1hbmQ/OiBzdHJpbmc7XG4gICAgdXNlcklkQ3JlYXRlZD86IHN0cmluZztcbiAgICB1c2VySWRDYW5jZWxsZWQ/OiBzdHJpbmc7XG4gICAgcHJvamVjdFBhcmVudD86IHN0cmluZztcbiAgICBvcGVyYXRpb25UeXBlPzogc3RyaW5nO1xuICAgIGhvc3ROYW1lPzogc3RyaW5nO1xuICAgIG51bVJlcnVucz86IG51bWJlcjtcbiAgICBtYXhOdW1SZXJ1bnM/OiBudW1iZXI7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIH1cbiAgZXhwb3J0IGVudW0gU3RhdHVzIHtcbiAgICBTVEFUVVNfVU5TUEVDSUZJRUQgPSAwLFxuICAgIE5PVF9TVEFSVEVEID0gMSxcbiAgICBJTl9QUk9HUkVTUyA9IDIsXG4gICAgRE9ORSA9IDMsXG4gICAgQ0FOQ0VMTEVEID0gNCxcbiAgICBGQUlMRUQgPSA1XG4gIH1cbiAgZXhwb3J0IGVudW0gT3BlcmF0aW9uVHlwZSB7XG4gICAgT1BFUkFUSU9OX1RZUEVfVU5TUEVDSUZJRUQgPSAwLFxuICAgIENSRUFURV9BR0VOVCA9IDEsXG4gICAgSU1QT1JUX0FHRU5UID0gMixcbiAgICBFWFBPUlRfQUdFTlQgPSAzLFxuICAgIERFTEVURV9BR0VOVCA9IDQsXG4gICAgUkVTVE9SRV9BR0VOVCA9IDUsXG4gICAgQlVJTERfQUdFTlRfQ0FDSEUgPSA2LFxuICAgIFRSQUlOX0FHRU5UID0gNyxcbiAgICBFWFBPUlRfQkVOQ0hNQVJLX0FHRU5UID0gOFxuICB9XG59XG4iXX0=