@camunda/connectors-element-templates 1.0.5 → 1.0.7

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 (85) hide show
  1. package/package.json +1 -1
  2. package/src/build_element_template_array_json_files.sh +9 -0
  3. package/src/connectors.js +4 -2
  4. package/src/element-templates/agenticai-adhoctoolsschema-outbound-connector.json +171 -13
  5. package/src/element-templates/agenticai-aiagent-job-worker.json +1618 -0
  6. package/src/element-templates/agenticai-aiagent-outbound-connector.json +3064 -300
  7. package/src/element-templates/agenticai-mcp-client-outbound-connector.json +1 -1
  8. package/src/element-templates/agenticai-mcp-remote-client-outbound-connector.json +2 -1
  9. package/src/element-templates/asana-connector.json +8 -8
  10. package/src/element-templates/automation-anywhere-outbound-connector.json +1185 -1179
  11. package/src/element-templates/aws-dynamodb-outbound-connector.json +77 -77
  12. package/src/element-templates/aws-eventbridge-connector-boundary.json +20 -20
  13. package/src/element-templates/aws-eventbridge-connector-intermediate.json +38 -38
  14. package/src/element-templates/aws-eventbridge-connector-message-start.json +10 -10
  15. package/src/element-templates/aws-eventbridge-connector-start-event.json +18 -15
  16. package/src/element-templates/aws-eventbridge-outbound-connector.json +50 -50
  17. package/src/element-templates/aws-lambda-outbound-connector.json +279 -279
  18. package/src/element-templates/aws-s3-outbound-connector.json +30 -30
  19. package/src/element-templates/aws-sagemaker-outbound-connector.json +50 -50
  20. package/src/element-templates/aws-sns-inbound-boundary.json +486 -486
  21. package/src/element-templates/aws-sns-inbound-intermediate.json +491 -491
  22. package/src/element-templates/aws-sns-inbound-message-start.json +98 -98
  23. package/src/element-templates/aws-sns-inbound-start-event.json +133 -133
  24. package/src/element-templates/aws-sns-outbound-connector.json +423 -423
  25. package/src/element-templates/aws-sqs-boundary-connector.json +58 -58
  26. package/src/element-templates/aws-sqs-inbound-intermediate-connector.json +523 -523
  27. package/src/element-templates/aws-sqs-outbound-connector.json +692 -692
  28. package/src/element-templates/aws-sqs-start-event-connector.json +709 -709
  29. package/src/element-templates/aws-sqs-start-message.json +460 -460
  30. package/src/element-templates/azure-blobstorage-outbound-connector.json +1 -1
  31. package/src/element-templates/blue-prism-connector.json +53 -53
  32. package/src/element-templates/csv-outbound-connector.json +804 -0
  33. package/src/element-templates/easy-post-connector.json +151 -151
  34. package/src/element-templates/email-inbound-connector-intermediate.json +19 -19
  35. package/src/element-templates/email-message-start-event-connector.json +19 -19
  36. package/src/element-templates/email-outbound-connector.json +199 -199
  37. package/src/element-templates/embeddings-vector-database-outbound-connector.json +3478 -170
  38. package/src/element-templates/github-connector.json +277 -277
  39. package/src/element-templates/github-webhook-connector-intermediate.json +44 -44
  40. package/src/element-templates/github-webhook-connector-start-event.json +29 -26
  41. package/src/element-templates/gitlab-connector.json +990 -990
  42. package/src/element-templates/google-drive-outbound-connector.json +423 -423
  43. package/src/element-templates/google-gemini-outbound-connector.json +32 -32
  44. package/src/element-templates/google-maps-platform-connector.json +17 -17
  45. package/src/element-templates/google-sheets-outbound-connector.json +2550 -2550
  46. package/src/element-templates/graphql-outbound-connector.json +1179 -1179
  47. package/src/element-templates/http-json-connector.json +2280 -2280
  48. package/src/element-templates/http-polling-boundary-catch-event-connector.json +256 -553
  49. package/src/element-templates/http-polling-connector.json +262 -559
  50. package/src/element-templates/hugging-face-connector.json +34 -34
  51. package/src/element-templates/jdbc-outbound-connector.json +402 -0
  52. package/src/element-templates/kafka-inbound-connector-boundary.json +1052 -1052
  53. package/src/element-templates/kafka-inbound-connector-intermediate.json +1088 -1088
  54. package/src/element-templates/kafka-inbound-connector-start-message.json +112 -112
  55. package/src/element-templates/kafka-inbound-connector.json +3 -0
  56. package/src/element-templates/kafka-outbound-connector.json +617 -617
  57. package/src/element-templates/microsoft-office365-mail-connector.json +32 -32
  58. package/src/element-templates/microsoft-teams-outbound-connector.json +1783 -1783
  59. package/src/element-templates/openai-connector.json +144 -144
  60. package/src/element-templates/operate-connector.json +66 -62
  61. package/src/element-templates/power-automate-connector.json +10 -10
  62. package/src/element-templates/rabbitmq-inbound-connector-boundary.json +439 -439
  63. package/src/element-templates/rabbitmq-inbound-connector-intermediate.json +474 -474
  64. package/src/element-templates/rabbitmq-inbound-connector-message-start.json +11 -11
  65. package/src/element-templates/rabbitmq-inbound-connector-start-event.json +597 -597
  66. package/src/element-templates/rabbitmq-outbound-connector.json +622 -622
  67. package/src/element-templates/salesforce-connector.json +44 -44
  68. package/src/element-templates/sendgrid-outbound-connector.json +633 -633
  69. package/src/element-templates/slack-inbound-boundary.json +184 -184
  70. package/src/element-templates/slack-inbound-intermediate.json +168 -168
  71. package/src/element-templates/slack-inbound-message-start.json +201 -201
  72. package/src/element-templates/slack-inbound-start-event.json +320 -317
  73. package/src/element-templates/slack-outbound-connector.json +1185 -1185
  74. package/src/element-templates/twilio-connector.json +26 -26
  75. package/src/element-templates/twilio-webhook-boundary-connector.json +28 -28
  76. package/src/element-templates/twilio-webhook-connector.json +3 -0
  77. package/src/element-templates/twilio-webhook-intermediate-connector.json +31 -31
  78. package/src/element-templates/twilio-webhook-message-start-connector.json +8 -8
  79. package/src/element-templates/uipath-connector.json +10 -10
  80. package/src/element-templates/webhook-connector-boundary.json +629 -629
  81. package/src/element-templates/webhook-connector-intermediate.json +268 -268
  82. package/src/element-templates/webhook-connector-start-event.json +1563 -1560
  83. package/src/element-templates/webhook-connector-start-message.json +1258 -1258
  84. package/src/element-templates/whatsapp-connector.json +39 -39
  85. package/src/element-templates/idp-extraction-outbound-connector.json +0 -932
@@ -0,0 +1,804 @@
1
+ [
2
+ {
3
+ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
4
+ "name": "CSV Connector",
5
+ "id": "io.camunda.connectors.csv",
6
+ "metadata": {
7
+ "keywords": []
8
+ },
9
+ "version": 1,
10
+ "category": {
11
+ "id": "connectors",
12
+ "name": "Connectors"
13
+ },
14
+ "appliesTo": ["bpmn:Task"],
15
+ "elementType": {
16
+ "value": "bpmn:ServiceTask"
17
+ },
18
+ "engines": {
19
+ "camunda": "^8.8"
20
+ },
21
+ "groups": [
22
+ {
23
+ "id": "operation",
24
+ "label": "Operation"
25
+ },
26
+ {
27
+ "id": "connector",
28
+ "label": "Connector"
29
+ },
30
+ {
31
+ "id": "output",
32
+ "label": "Output mapping"
33
+ },
34
+ {
35
+ "id": "error",
36
+ "label": "Error handling"
37
+ },
38
+ {
39
+ "id": "retries",
40
+ "label": "Retries"
41
+ }
42
+ ],
43
+ "properties": [
44
+ {
45
+ "value": "io.camunda:csv-connector",
46
+ "binding": {
47
+ "property": "type",
48
+ "type": "zeebe:taskDefinition"
49
+ },
50
+ "type": "Hidden"
51
+ },
52
+ {
53
+ "id": "operation",
54
+ "label": "Operation",
55
+ "description": "The operation to execute",
56
+ "value": "readCsv",
57
+ "group": "operation",
58
+ "binding": {
59
+ "key": "operation",
60
+ "type": "zeebe:taskHeader"
61
+ },
62
+ "type": "Dropdown",
63
+ "choices": [
64
+ {
65
+ "name": "Read CSV",
66
+ "value": "readCsv"
67
+ },
68
+ {
69
+ "name": "Write CSV",
70
+ "value": "writeCsv"
71
+ }
72
+ ]
73
+ },
74
+ {
75
+ "id": "readCsv:data",
76
+ "label": "Data",
77
+ "optional": false,
78
+ "feel": "optional",
79
+ "group": "operation",
80
+ "binding": {
81
+ "name": "data",
82
+ "type": "zeebe:input"
83
+ },
84
+ "condition": {
85
+ "allMatch": [
86
+ {
87
+ "property": "operation",
88
+ "equals": "readCsv",
89
+ "type": "simple"
90
+ }
91
+ ]
92
+ },
93
+ "tooltip": "CSV as a document or text",
94
+ "type": "String"
95
+ },
96
+ {
97
+ "id": "readCsv:format.delimiter",
98
+ "label": "Delimiter",
99
+ "optional": false,
100
+ "value": ",",
101
+ "feel": "optional",
102
+ "group": "operation",
103
+ "binding": {
104
+ "name": "format.delimiter",
105
+ "type": "zeebe:input"
106
+ },
107
+ "condition": {
108
+ "allMatch": [
109
+ {
110
+ "property": "operation",
111
+ "equals": "readCsv",
112
+ "type": "simple"
113
+ }
114
+ ]
115
+ },
116
+ "tooltip": "CSV column delimiter",
117
+ "type": "String"
118
+ },
119
+ {
120
+ "id": "readCsv:format.skipHeaderRecord",
121
+ "label": "Skip Header Record",
122
+ "optional": false,
123
+ "value": true,
124
+ "feel": "static",
125
+ "group": "operation",
126
+ "binding": {
127
+ "name": "format.skipHeaderRecord",
128
+ "type": "zeebe:input"
129
+ },
130
+ "condition": {
131
+ "allMatch": [
132
+ {
133
+ "property": "operation",
134
+ "equals": "readCsv",
135
+ "type": "simple"
136
+ }
137
+ ]
138
+ },
139
+ "tooltip": "Skips the first row to be not included in the final records.",
140
+ "type": "Boolean"
141
+ },
142
+ {
143
+ "id": "readCsv:format.headers",
144
+ "label": "Headers",
145
+ "optional": false,
146
+ "feel": "required",
147
+ "group": "operation",
148
+ "binding": {
149
+ "name": "format.headers",
150
+ "type": "zeebe:input"
151
+ },
152
+ "condition": {
153
+ "allMatch": [
154
+ {
155
+ "property": "operation",
156
+ "equals": "readCsv",
157
+ "type": "simple"
158
+ }
159
+ ]
160
+ },
161
+ "tooltip": "Mapping of the columns if not included in the CSV itself in the first row.",
162
+ "type": "String"
163
+ },
164
+ {
165
+ "id": "readCsv:rowType",
166
+ "label": "Row Type",
167
+ "optional": false,
168
+ "value": "Object",
169
+ "group": "operation",
170
+ "binding": {
171
+ "name": "rowType",
172
+ "type": "zeebe:input"
173
+ },
174
+ "condition": {
175
+ "allMatch": [
176
+ {
177
+ "property": "operation",
178
+ "equals": "readCsv",
179
+ "type": "simple"
180
+ }
181
+ ]
182
+ },
183
+ "tooltip": "Type of the row in the CSV file, either Object or Array",
184
+ "type": "Dropdown",
185
+ "choices": [
186
+ {
187
+ "name": "Object",
188
+ "value": "Object"
189
+ },
190
+ {
191
+ "name": "Array",
192
+ "value": "Array"
193
+ }
194
+ ]
195
+ },
196
+ {
197
+ "id": "readCsv:recordMapper",
198
+ "label": "Record mapping",
199
+ "description": "",
200
+ "feel": "required",
201
+ "group": "operation",
202
+ "binding": {
203
+ "key": "recordMapper",
204
+ "type": "zeebe:taskHeader"
205
+ },
206
+ "condition": {
207
+ "allMatch": [
208
+ {
209
+ "property": "operation",
210
+ "equals": "readCsv",
211
+ "type": "simple"
212
+ }
213
+ ]
214
+ },
215
+ "tooltip": "<a href=\"https://docs.camunda.io/docs/components/modeler/feel/what-is-feel/\">FEEL</a> function that allows to map each <code>record</code>. Returning <code>null</code> will exclude a record from the final results.",
216
+ "type": "String"
217
+ },
218
+ {
219
+ "id": "writeCsv:data",
220
+ "label": "Data",
221
+ "feel": "required",
222
+ "group": "operation",
223
+ "binding": {
224
+ "name": "data",
225
+ "type": "zeebe:input"
226
+ },
227
+ "condition": {
228
+ "allMatch": [
229
+ {
230
+ "property": "operation",
231
+ "equals": "writeCsv",
232
+ "type": "simple"
233
+ }
234
+ ]
235
+ },
236
+ "type": "String"
237
+ },
238
+ {
239
+ "id": "writeCsv:createDocument",
240
+ "label": "Create document",
241
+ "group": "operation",
242
+ "binding": {
243
+ "name": "createDocument",
244
+ "type": "zeebe:input"
245
+ },
246
+ "condition": {
247
+ "allMatch": [
248
+ {
249
+ "property": "operation",
250
+ "equals": "writeCsv",
251
+ "type": "simple"
252
+ }
253
+ ]
254
+ },
255
+ "type": "Boolean"
256
+ },
257
+ {
258
+ "id": "writeCsv:format.delimiter",
259
+ "label": "Delimiter",
260
+ "optional": false,
261
+ "value": ",",
262
+ "feel": "optional",
263
+ "group": "operation",
264
+ "binding": {
265
+ "name": "format.delimiter",
266
+ "type": "zeebe:input"
267
+ },
268
+ "condition": {
269
+ "allMatch": [
270
+ {
271
+ "property": "operation",
272
+ "equals": "writeCsv",
273
+ "type": "simple"
274
+ }
275
+ ]
276
+ },
277
+ "tooltip": "CSV column delimiter",
278
+ "type": "String"
279
+ },
280
+ {
281
+ "id": "writeCsv:format.skipHeaderRecord",
282
+ "label": "Skip Header Record",
283
+ "optional": false,
284
+ "value": true,
285
+ "feel": "static",
286
+ "group": "operation",
287
+ "binding": {
288
+ "name": "format.skipHeaderRecord",
289
+ "type": "zeebe:input"
290
+ },
291
+ "condition": {
292
+ "allMatch": [
293
+ {
294
+ "property": "operation",
295
+ "equals": "writeCsv",
296
+ "type": "simple"
297
+ }
298
+ ]
299
+ },
300
+ "tooltip": "Skips the first row to be not included in the final records.",
301
+ "type": "Boolean"
302
+ },
303
+ {
304
+ "id": "writeCsv:format.headers",
305
+ "label": "Headers",
306
+ "optional": false,
307
+ "feel": "required",
308
+ "group": "operation",
309
+ "binding": {
310
+ "name": "format.headers",
311
+ "type": "zeebe:input"
312
+ },
313
+ "condition": {
314
+ "allMatch": [
315
+ {
316
+ "property": "operation",
317
+ "equals": "writeCsv",
318
+ "type": "simple"
319
+ }
320
+ ]
321
+ },
322
+ "tooltip": "Mapping of the columns if not included in the CSV itself in the first row.",
323
+ "type": "String"
324
+ },
325
+ {
326
+ "id": "version",
327
+ "label": "Version",
328
+ "description": "Version of the element template",
329
+ "value": "1",
330
+ "group": "connector",
331
+ "binding": {
332
+ "key": "elementTemplateVersion",
333
+ "type": "zeebe:taskHeader"
334
+ },
335
+ "type": "Hidden"
336
+ },
337
+ {
338
+ "id": "id",
339
+ "label": "ID",
340
+ "description": "ID of the element template",
341
+ "value": "io.camunda.connectors.csv",
342
+ "group": "connector",
343
+ "binding": {
344
+ "key": "elementTemplateId",
345
+ "type": "zeebe:taskHeader"
346
+ },
347
+ "type": "Hidden"
348
+ },
349
+ {
350
+ "id": "resultVariable",
351
+ "label": "Result variable",
352
+ "description": "Name of variable to store the response in",
353
+ "group": "output",
354
+ "binding": {
355
+ "key": "resultVariable",
356
+ "type": "zeebe:taskHeader"
357
+ },
358
+ "type": "String"
359
+ },
360
+ {
361
+ "id": "resultExpression",
362
+ "label": "Result expression",
363
+ "description": "Expression to map the response into process variables",
364
+ "feel": "required",
365
+ "group": "output",
366
+ "binding": {
367
+ "key": "resultExpression",
368
+ "type": "zeebe:taskHeader"
369
+ },
370
+ "type": "Text"
371
+ },
372
+ {
373
+ "id": "errorExpression",
374
+ "label": "Error expression",
375
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
376
+ "feel": "required",
377
+ "group": "error",
378
+ "binding": {
379
+ "key": "errorExpression",
380
+ "type": "zeebe:taskHeader"
381
+ },
382
+ "type": "Text"
383
+ },
384
+ {
385
+ "id": "retryCount",
386
+ "label": "Retries",
387
+ "description": "Number of retries",
388
+ "value": "3",
389
+ "feel": "optional",
390
+ "group": "retries",
391
+ "binding": {
392
+ "property": "retries",
393
+ "type": "zeebe:taskDefinition"
394
+ },
395
+ "type": "String"
396
+ },
397
+ {
398
+ "id": "retryBackoff",
399
+ "label": "Retry backoff",
400
+ "description": "ISO-8601 duration to wait between retries",
401
+ "value": "PT0S",
402
+ "group": "retries",
403
+ "binding": {
404
+ "key": "retryBackoff",
405
+ "type": "zeebe:taskHeader"
406
+ },
407
+ "type": "String"
408
+ }
409
+ ],
410
+ "icon": {
411
+ "contents": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAyMSAyMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0wLjUgM0MwLjUgMS44OTU0MyAxLjM5NTQzIDEgMi41IDFIMTguNUMxOS42MDQ2IDEgMjAuNSAxLjg5NTQzIDIwLjUgM1YxOUMyMC41IDIwLjEwNDYgMTkuNjA0NiAyMSAxOC41IDIxSDIuNUMxLjM5NTQzIDIxIDAuNSAyMC4xMDQ2IDAuNSAxOVYzWiIgZmlsbD0iI0ZGQjdDOCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgPHBhdGggZD0iTTE2LjA0NzkgMTQuMjY0NEMxNS44Mzg5IDE0LjI2NDQgMTUuNjY4MyAxNC4yMjAzIDE1LjUzNjIgMTQuMTMyM0MxNS40MDk3IDE0LjA0NDMgMTUuMzAyNCAxMy45MDQgMTUuMjE0NCAxMy43MTE0TDEzLjIxNzEgOS4zMDQyNEMxMy4xMjkxIDkuMTExNjcgMTMuMTAxNiA4LjkzODM1IDEzLjEzNDYgOC43ODQzQzEzLjE2NzYgOC42MzAyNCAxMy4yNDQ2IDguNTExOTQgMTMuMzY1NyA4LjQyOTQxQzEzLjQ4NjcgOC4zNDEzOCAxMy42MzggOC4yOTczNiAxMy44MTk2IDguMjk3MzZDMTQuMDQ1MiA4LjI5NzM2IDE0LjIxMyA4LjM0Njg4IDE0LjMyMyA4LjQ0NTkyQzE0LjQzODYgOC41NDQ5NiAxNC41Mzc2IDguNjkwNzYgMTQuNjIwMiA4Ljg4MzMzTDE2LjMwMzggMTIuNzc4OEgxNS44NDE2TDE3LjUyNTIgOC44NzUwOEMxNy42MDc4IDguNjgyNTEgMTcuNzA2OCA4LjUzOTQ1IDE3LjgyMjQgOC40NDU5MkMxNy45Mzc5IDguMzQ2ODggMTguMTAwMiA4LjI5NzM2IDE4LjMwOTMgOC4yOTczNkMxOC40Nzk5IDguMjk3MzYgMTguNjIyOSA4LjM0MTM4IDE4LjczODUgOC40Mjk0MUMxOC44NTQgOC41MTE5NCAxOC45MjU1IDguNjMwMjQgMTguOTUzIDguNzg0M0MxOC45ODYgOC45MzgzNSAxOC45NTg1IDkuMTExNjcgMTguODcwNSA5LjMwNDI0TDE2Ljg2NSAxMy43MTE0QzE2Ljc4MjUgMTMuOTA0IDE2LjY3NzkgMTQuMDQ0MyAxNi41NTE0IDE0LjEzMjNDMTYuNDI0OCAxNC4yMjAzIDE2LjI1NyAxNC4yNjQ0IDE2LjA0NzkgMTQuMjY0NFoiIGZpbGw9ImJsYWNrIi8+CiAgICA8cGF0aCBkPSJNMTAuMjI3MiAxNC4yODA4QzEwLjAwNzEgMTQuMjgwOCA5Ljc3NjA0IDE0LjI2NDMgOS41MzM5NSAxNC4yMzEyQzkuMjk3MzYgMTQuMjAzNyA5LjA3MTc4IDE0LjE1OTcgOC44NTcyIDE0LjA5OTJDOC42NDI2MiAxNC4wMzg3IDguNDUwMDQgMTMuOTY3MSA4LjI3OTQ4IDEzLjg4NDZDOC4xMzA5MiAxMy44MTMxIDguMDI2MzggMTMuNzE5NiA3Ljk2NTg2IDEzLjYwNEM3LjkwNTM0IDEzLjQ4MyA3Ljg4MzMzIDEzLjM1NjQgNy44OTk4NCAxMy4yMjQ0QzcuOTE2MzQgMTMuMDkyMyA3Ljk2MzExIDEyLjk3NjggOC4wNDAxNCAxMi44Nzc3QzguMTE3MTcgMTIuNzczMiA4LjIxODk2IDEyLjcwNDQgOC4zNDU1IDEyLjY3MTRDOC40NzIwNSAxMi42MzI5IDguNjE1MTEgMTIuNjQ5NCA4Ljc3NDY3IDEyLjcyMDlDOC45ODM3NCAxMi44MiA5LjIyMDMzIDEyLjg5NyA5LjQ4NDQzIDEyLjk1MkM5Ljc0ODUzIDEzLjAwNyA5Ljk5NjEyIDEzLjAzNDUgMTAuMjI3MiAxMy4wMzQ1QzEwLjU5MDMgMTMuMDM0NSAxMC44NDM0IDEyLjk4NzggMTAuOTg2NSAxMi44OTQyQzExLjEzNTEgMTIuNzk1MiAxMS4yMDkzIDEyLjY3NDIgMTEuMjA5MyAxMi41MzExQzExLjIwOTMgMTIuNDA0NiAxMS4xNTcxIDEyLjMwMjggMTEuMDUyNSAxMi4yMjU3QzEwLjk1MzUgMTIuMTQ4NyAxMC43NzQ3IDEyLjA4MjcgMTAuNTE2MSAxMi4wMjc3TDkuNTUwNDYgMTEuODIxM0M5LjAyMjI2IDExLjcxMTMgOC42Mjg4NiAxMS41MTg3IDguMzcwMjYgMTEuMjQzNkM4LjExMTY3IDEwLjk2ODUgNy45ODIzNyAxMC42MTM2IDcuOTgyMzcgMTAuMTc5QzcuOTgyMzcgOS44OTI4NyA4LjA0MDE0IDkuNjM0MjcgOC4xNTU2OCA5LjQwMzE4QzguMjc2NzMgOS4xNjY1OSA4LjQ0NDU0IDguOTY1NzcgOC42NTkxMiA4LjgwMDcxQzguODc5MiA4LjYzNTY0IDkuMTM3OCA4LjUwOTEgOS40MzQ5MSA4LjQyMTA2QzkuNzM3NTMgOC4zMjc1MyAxMC4wNzMyIDguMjgwNzYgMTAuNDQxOCA4LjI4MDc2QzEwLjcyNzkgOC4yODA3NiAxMS4wMTY4IDguMzEzNzcgMTEuMzA4NCA4LjM3OThDMTEuNjA1NSA4LjQ0MDMyIDExLjg2MTMgOC41MzM4NiAxMi4wNzU5IDguNjYwNEMxMi4yMDI1IDguNzI2NDMgMTIuMjkzMiA4LjgxNzIxIDEyLjM0ODMgOC45MzI3NkMxMi40MDMzIDkuMDQ4MyAxMi40MjUzIDkuMTY5MzQgMTIuNDE0MyA5LjI5NTg5QzEyLjQwMzMgOS40MTY5NCAxMi4zNTkzIDkuNTI0MjMgMTIuMjgyMiA5LjYxNzc2QzEyLjIxMDcgOS43MTEzIDEyLjExMTcgOS43NzQ1NyAxMS45ODUxIDkuODA3NThDMTEuODY0MSA5LjgzNTA5IDExLjcxODMgOS44MTMwOSAxMS41NDc3IDkuNzQxNTZDMTEuMzg4MSA5LjY3MDAzIDExLjIwNjYgOS42MTc3NiAxMS4wMDMgOS41ODQ3NUMxMC44MDQ5IDkuNTQ2MjQgMTAuNjEyNCA5LjUyNjk4IDEwLjQyNTMgOS41MjY5OEMxMC4yMjE3IDkuNTI2OTggMTAuMDQ4NCA5LjU1MTc0IDkuOTA1MzQgOS42MDEyNkM5Ljc2MjI5IDkuNjQ1MjcgOS42NTIyNCA5LjcxMTMgOS41NzUyMiA5Ljc5OTMzQzkuNTAzNjkgOS44ODczNiA5LjQ2NzkzIDkuOTg5MTUgOS40Njc5MyAxMC4xMDQ3QzkuNDY3OTMgMTAuMjIwMiA5LjUxNDY5IDEwLjMxOTMgOS42MDgyMyAxMC40MDE4QzkuNzA3MjYgMTAuNDc4OCA5Ljg4NjA4IDEwLjU0NDkgMTAuMTQ0NyAxMC41OTk5TDExLjEwMiAxMC44MDYyQzExLjYzNTcgMTAuOTIxOCAxMi4wMzQ2IDExLjExMTYgMTIuMjk4NyAxMS4zNzU3QzEyLjU2MjggMTEuNjM5OCAxMi42OTQ5IDExLjk4MzcgMTIuNjk0OSAxMi40MDczQzEyLjY5NDkgMTIuNjkzNCAxMi42MzcxIDEyLjk1MiAxMi41MjE2IDEzLjE4MzFDMTIuNDA2IDEzLjQxNDIgMTIuMjQxIDEzLjYxMjMgMTIuMDI2NCAxMy43NzczQzExLjgxMTggMTMuOTM2OSAxMS41NTMyIDE0LjA2MDcgMTEuMjUwNiAxNC4xNDg3QzEwLjk0OCAxNC4yMzY3IDEwLjYwNjkgMTQuMjgwOCAxMC4yMjcyIDE0LjI4MDhaIiBmaWxsPSJibGFjayIvPgogICAgPHBhdGggZD0iTTUuMjg3ODMgMTQuMjgwOEM0LjY0NDA5IDE0LjI4MDggNC4wOTExMyAxNC4xNTcgMy42Mjg5NiAxMy45MDk0QzMuMTY2NzggMTMuNjYxOCAyLjgxMTkgMTMuMzEyNCAyLjU2NDMxIDEyLjg2MTJDMi4zMjIyMiAxMi40MTAxIDIuMjAxMTcgMTEuODgxOSAyLjIwMTE3IDExLjI3NjZDMi4yMDExNyAxMC44MjU1IDIuMjY5OTUgMTAuNDE1NiAyLjQwNzUgMTAuMDQ2OUMyLjU1MDU1IDkuNjc4MjkgMi43NTQxMyA5LjM2MTkyIDMuMDE4MjMgOS4wOTc4MkMzLjI4NzgzIDguODMzNzIgMy42MTI0NSA4LjYzMjg5IDMuOTkyMDkgOC40OTUzNEM0LjM3NzI0IDguMzUyMjkgNC44MDkxNSA4LjI4MDc2IDUuMjg3ODMgOC4yODA3NkM1LjU0MDkyIDguMjgwNzYgNS44MDIyNyA4LjMxMTAyIDYuMDcxODcgOC4zNzE1NUM2LjM0Njk4IDguNDI2NTcgNi41ODkwNyA4LjUxMTg1IDYuNzk4MTUgOC42MjczOUM2Ljk1MjIgOC43MDk5MiA3LjA1OTQ5IDguODE0NDYgNy4xMjAwMiA4Ljk0MTAxQzcuMTgwNTQgOS4wNjc1NiA3LjE5OTggOS4xOTY4NiA3LjE3Nzc5IDkuMzI4OUM3LjE2MTI4IDkuNDYwOTUgNy4xMTQ1MSA5LjU3OTI1IDcuMDM3NDkgOS42ODM3OUM2Ljk2MDQ2IDkuNzg4MzMgNi44NjE0MiA5Ljg1OTg1IDYuNzQwMzcgOS44OTgzN0M2LjYxOTMzIDkuOTMxMzggNi40ODcyOCA5LjkxMjEyIDYuMzQ0MjMgOS44NDA2QzYuMTc5MTYgOS43NjM1NyA2LjAxNDEgOS43MDU4IDUuODQ5MDQgOS42NjcyOEM1LjY4OTQ4IDkuNjIzMjcgNS41MjE2NyA5LjYwMTI2IDUuMzQ1NiA5LjYwMTI2QzUuMDA0NDcgOS42MDEyNiA0LjcxODM3IDkuNjY3MjggNC40ODcyOCA5Ljc5OTMzQzQuMjYxNjkgOS45MjU4OCA0LjA5MTEzIDEwLjExMjkgMy45NzU1OSAxMC4zNjA1QzMuODYwMDQgMTAuNjA4MSAzLjgwMjI3IDEwLjkxMzUgMy44MDIyNyAxMS4yNzY2QzMuODAyMjcgMTEuNjM5OCAzLjg2MDA0IDExLjk0NzkgMy45NzU1OSAxMi4yMDFDNC4wOTExMyAxMi40NDg2IDQuMjYxNjkgMTIuNjM4NCA0LjQ4NzI4IDEyLjc3MDRDNC43MTgzNyAxMi44OTcgNS4wMDQ0NyAxMi45NjAzIDUuMzQ1NiAxMi45NjAzQzUuNDg4NjUgMTIuOTYwMyA1LjY0MjcxIDEyLjk0MzggNS44MDc3NyAxMi45MTA3QzUuOTcyODQgMTIuODcyMiA2LjEzNTE1IDEyLjgxNDUgNi4yOTQ3MSAxMi43Mzc0QzYuNDU5NzcgMTIuNjY1OSA2LjYwNTU3IDEyLjY0NjYgNi43MzIxMiAxMi42Nzk3QzYuODY0MTcgMTIuNzEyNyA2Ljk2ODcxIDEyLjc3ODcgNy4wNDU3NCAxMi44Nzc3QzcuMTI4MjcgMTIuOTc2OCA3LjE4MDU0IDEzLjA5MjMgNy4yMDI1NSAxMy4yMjQ0QzcuMjI0NTYgMTMuMzUwOSA3LjIwNTMgMTMuNDc3NSA3LjE0NDc4IDEzLjYwNEM3LjA4OTc2IDEzLjczMDYgNi45OTA3MiAxMy44MzIzIDYuODQ3NjYgMTMuOTA5NEM2LjY1NTA5IDE0LjAyNDkgNi40MTU3NSAxNC4xMTU3IDYuMTI5NjUgMTQuMTgxN0M1Ljg0OTA0IDE0LjI0NzcgNS41Njg0MyAxNC4yODA4IDUuMjg3ODMgMTQuMjgwOFoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo="
412
+ }
413
+ },
414
+ {
415
+ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
416
+ "name": "CSV Connector",
417
+ "id": "io.camunda.connectors.csv",
418
+ "metadata": {
419
+ "keywords": []
420
+ },
421
+ "version": 0,
422
+ "category": {
423
+ "id": "connectors",
424
+ "name": "Connectors"
425
+ },
426
+ "appliesTo": ["bpmn:Task"],
427
+ "elementType": {
428
+ "value": "bpmn:ServiceTask"
429
+ },
430
+ "engines": {
431
+ "camunda": "^8.8"
432
+ },
433
+ "groups": [
434
+ {
435
+ "id": "operation",
436
+ "label": "Operation"
437
+ },
438
+ {
439
+ "id": "connector",
440
+ "label": "Connector"
441
+ },
442
+ {
443
+ "id": "output",
444
+ "label": "Output mapping"
445
+ },
446
+ {
447
+ "id": "error",
448
+ "label": "Error handling"
449
+ },
450
+ {
451
+ "id": "retries",
452
+ "label": "Retries"
453
+ }
454
+ ],
455
+ "properties": [
456
+ {
457
+ "value": "io.camunda:csv-connector",
458
+ "binding": {
459
+ "property": "type",
460
+ "type": "zeebe:taskDefinition"
461
+ },
462
+ "type": "Hidden"
463
+ },
464
+ {
465
+ "id": "operation",
466
+ "label": "Operation",
467
+ "description": "The operation to execute",
468
+ "value": "readCsv",
469
+ "group": "operation",
470
+ "binding": {
471
+ "key": "operation",
472
+ "type": "zeebe:taskHeader"
473
+ },
474
+ "type": "Dropdown",
475
+ "choices": [
476
+ {
477
+ "name": "Read CSV",
478
+ "value": "readCsv"
479
+ },
480
+ {
481
+ "name": "Write CSV",
482
+ "value": "writeCsv"
483
+ }
484
+ ]
485
+ },
486
+ {
487
+ "id": "readCsv:data",
488
+ "label": "Data",
489
+ "optional": false,
490
+ "feel": "optional",
491
+ "group": "operation",
492
+ "binding": {
493
+ "name": "data",
494
+ "type": "zeebe:input"
495
+ },
496
+ "condition": {
497
+ "allMatch": [
498
+ {
499
+ "property": "operation",
500
+ "equals": "readCsv",
501
+ "type": "simple"
502
+ }
503
+ ]
504
+ },
505
+ "tooltip": "CSV as a document or text",
506
+ "type": "String"
507
+ },
508
+ {
509
+ "id": "readCsv:format.delimiter",
510
+ "label": "Delimiter",
511
+ "optional": false,
512
+ "value": ",",
513
+ "feel": "optional",
514
+ "group": "operation",
515
+ "binding": {
516
+ "name": "format.delimiter",
517
+ "type": "zeebe:input"
518
+ },
519
+ "condition": {
520
+ "allMatch": [
521
+ {
522
+ "property": "operation",
523
+ "equals": "readCsv",
524
+ "type": "simple"
525
+ }
526
+ ]
527
+ },
528
+ "tooltip": "CSV column delimiter",
529
+ "type": "String"
530
+ },
531
+ {
532
+ "id": "readCsv:format.skipHeaderRecord",
533
+ "label": "Skip Header Record",
534
+ "optional": false,
535
+ "value": true,
536
+ "feel": "static",
537
+ "group": "operation",
538
+ "binding": {
539
+ "name": "format.skipHeaderRecord",
540
+ "type": "zeebe:input"
541
+ },
542
+ "condition": {
543
+ "allMatch": [
544
+ {
545
+ "property": "operation",
546
+ "equals": "readCsv",
547
+ "type": "simple"
548
+ }
549
+ ]
550
+ },
551
+ "tooltip": "Skips the first row to be not included in the final records.",
552
+ "type": "Boolean"
553
+ },
554
+ {
555
+ "id": "readCsv:format.headers",
556
+ "label": "Headers",
557
+ "optional": false,
558
+ "feel": "required",
559
+ "group": "operation",
560
+ "binding": {
561
+ "name": "format.headers",
562
+ "type": "zeebe:input"
563
+ },
564
+ "condition": {
565
+ "allMatch": [
566
+ {
567
+ "property": "operation",
568
+ "equals": "readCsv",
569
+ "type": "simple"
570
+ }
571
+ ]
572
+ },
573
+ "tooltip": "Mapping of the columns if not included in the CSV itself in the first row.",
574
+ "type": "String"
575
+ },
576
+ {
577
+ "id": "readCsv:rowType",
578
+ "label": "Row Type",
579
+ "optional": false,
580
+ "value": "Object",
581
+ "group": "operation",
582
+ "binding": {
583
+ "name": "rowType",
584
+ "type": "zeebe:input"
585
+ },
586
+ "condition": {
587
+ "allMatch": [
588
+ {
589
+ "property": "operation",
590
+ "equals": "readCsv",
591
+ "type": "simple"
592
+ }
593
+ ]
594
+ },
595
+ "tooltip": "Type of the row in the CSV file, either Object or Array",
596
+ "type": "Dropdown",
597
+ "choices": [
598
+ {
599
+ "name": "Object",
600
+ "value": "Object"
601
+ },
602
+ {
603
+ "name": "Array",
604
+ "value": "Array"
605
+ }
606
+ ]
607
+ },
608
+ {
609
+ "id": "writeCsv:data",
610
+ "label": "Data",
611
+ "feel": "required",
612
+ "group": "operation",
613
+ "binding": {
614
+ "name": "data",
615
+ "type": "zeebe:input"
616
+ },
617
+ "condition": {
618
+ "allMatch": [
619
+ {
620
+ "property": "operation",
621
+ "equals": "writeCsv",
622
+ "type": "simple"
623
+ }
624
+ ]
625
+ },
626
+ "type": "String"
627
+ },
628
+ {
629
+ "id": "writeCsv:createDocument",
630
+ "label": "Create document",
631
+ "group": "operation",
632
+ "binding": {
633
+ "name": "createDocument",
634
+ "type": "zeebe:input"
635
+ },
636
+ "condition": {
637
+ "allMatch": [
638
+ {
639
+ "property": "operation",
640
+ "equals": "writeCsv",
641
+ "type": "simple"
642
+ }
643
+ ]
644
+ },
645
+ "type": "Boolean"
646
+ },
647
+ {
648
+ "id": "writeCsv:format.delimiter",
649
+ "label": "Delimiter",
650
+ "optional": false,
651
+ "value": ",",
652
+ "feel": "optional",
653
+ "group": "operation",
654
+ "binding": {
655
+ "name": "format.delimiter",
656
+ "type": "zeebe:input"
657
+ },
658
+ "condition": {
659
+ "allMatch": [
660
+ {
661
+ "property": "operation",
662
+ "equals": "writeCsv",
663
+ "type": "simple"
664
+ }
665
+ ]
666
+ },
667
+ "tooltip": "CSV column delimiter",
668
+ "type": "String"
669
+ },
670
+ {
671
+ "id": "writeCsv:format.skipHeaderRecord",
672
+ "label": "Skip Header Record",
673
+ "optional": false,
674
+ "value": true,
675
+ "feel": "static",
676
+ "group": "operation",
677
+ "binding": {
678
+ "name": "format.skipHeaderRecord",
679
+ "type": "zeebe:input"
680
+ },
681
+ "condition": {
682
+ "allMatch": [
683
+ {
684
+ "property": "operation",
685
+ "equals": "writeCsv",
686
+ "type": "simple"
687
+ }
688
+ ]
689
+ },
690
+ "tooltip": "Skips the first row to be not included in the final records.",
691
+ "type": "Boolean"
692
+ },
693
+ {
694
+ "id": "writeCsv:format.headers",
695
+ "label": "Headers",
696
+ "optional": false,
697
+ "feel": "required",
698
+ "group": "operation",
699
+ "binding": {
700
+ "name": "format.headers",
701
+ "type": "zeebe:input"
702
+ },
703
+ "condition": {
704
+ "allMatch": [
705
+ {
706
+ "property": "operation",
707
+ "equals": "writeCsv",
708
+ "type": "simple"
709
+ }
710
+ ]
711
+ },
712
+ "tooltip": "Mapping of the columns if not included in the CSV itself in the first row.",
713
+ "type": "String"
714
+ },
715
+ {
716
+ "id": "version",
717
+ "label": "Version",
718
+ "description": "Version of the element template",
719
+ "value": "0",
720
+ "group": "connector",
721
+ "binding": {
722
+ "key": "elementTemplateVersion",
723
+ "type": "zeebe:taskHeader"
724
+ },
725
+ "type": "Hidden"
726
+ },
727
+ {
728
+ "id": "id",
729
+ "label": "ID",
730
+ "description": "ID of the element template",
731
+ "value": "io.camunda.connectors.csv",
732
+ "group": "connector",
733
+ "binding": {
734
+ "key": "elementTemplateId",
735
+ "type": "zeebe:taskHeader"
736
+ },
737
+ "type": "Hidden"
738
+ },
739
+ {
740
+ "id": "resultVariable",
741
+ "label": "Result variable",
742
+ "description": "Name of variable to store the response in",
743
+ "group": "output",
744
+ "binding": {
745
+ "key": "resultVariable",
746
+ "type": "zeebe:taskHeader"
747
+ },
748
+ "type": "String"
749
+ },
750
+ {
751
+ "id": "resultExpression",
752
+ "label": "Result expression",
753
+ "description": "Expression to map the response into process variables",
754
+ "feel": "required",
755
+ "group": "output",
756
+ "binding": {
757
+ "key": "resultExpression",
758
+ "type": "zeebe:taskHeader"
759
+ },
760
+ "type": "Text"
761
+ },
762
+ {
763
+ "id": "errorExpression",
764
+ "label": "Error expression",
765
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
766
+ "feel": "required",
767
+ "group": "error",
768
+ "binding": {
769
+ "key": "errorExpression",
770
+ "type": "zeebe:taskHeader"
771
+ },
772
+ "type": "Text"
773
+ },
774
+ {
775
+ "id": "retryCount",
776
+ "label": "Retries",
777
+ "description": "Number of retries",
778
+ "value": "3",
779
+ "feel": "optional",
780
+ "group": "retries",
781
+ "binding": {
782
+ "property": "retries",
783
+ "type": "zeebe:taskDefinition"
784
+ },
785
+ "type": "String"
786
+ },
787
+ {
788
+ "id": "retryBackoff",
789
+ "label": "Retry backoff",
790
+ "description": "ISO-8601 duration to wait between retries",
791
+ "value": "PT0S",
792
+ "group": "retries",
793
+ "binding": {
794
+ "key": "retryBackoff",
795
+ "type": "zeebe:taskHeader"
796
+ },
797
+ "type": "String"
798
+ }
799
+ ],
800
+ "icon": {
801
+ "contents": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAyMSAyMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0wLjUgM0MwLjUgMS44OTU0MyAxLjM5NTQzIDEgMi41IDFIMTguNUMxOS42MDQ2IDEgMjAuNSAxLjg5NTQzIDIwLjUgM1YxOUMyMC41IDIwLjEwNDYgMTkuNjA0NiAyMSAxOC41IDIxSDIuNUMxLjM5NTQzIDIxIDAuNSAyMC4xMDQ2IDAuNSAxOVYzWiIgZmlsbD0iI0ZGQjdDOCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgPHBhdGggZD0iTTE2LjA0NzkgMTQuMjY0NEMxNS44Mzg5IDE0LjI2NDQgMTUuNjY4MyAxNC4yMjAzIDE1LjUzNjIgMTQuMTMyM0MxNS40MDk3IDE0LjA0NDMgMTUuMzAyNCAxMy45MDQgMTUuMjE0NCAxMy43MTE0TDEzLjIxNzEgOS4zMDQyNEMxMy4xMjkxIDkuMTExNjcgMTMuMTAxNiA4LjkzODM1IDEzLjEzNDYgOC43ODQzQzEzLjE2NzYgOC42MzAyNCAxMy4yNDQ2IDguNTExOTQgMTMuMzY1NyA4LjQyOTQxQzEzLjQ4NjcgOC4zNDEzOCAxMy42MzggOC4yOTczNiAxMy44MTk2IDguMjk3MzZDMTQuMDQ1MiA4LjI5NzM2IDE0LjIxMyA4LjM0Njg4IDE0LjMyMyA4LjQ0NTkyQzE0LjQzODYgOC41NDQ5NiAxNC41Mzc2IDguNjkwNzYgMTQuNjIwMiA4Ljg4MzMzTDE2LjMwMzggMTIuNzc4OEgxNS44NDE2TDE3LjUyNTIgOC44NzUwOEMxNy42MDc4IDguNjgyNTEgMTcuNzA2OCA4LjUzOTQ1IDE3LjgyMjQgOC40NDU5MkMxNy45Mzc5IDguMzQ2ODggMTguMTAwMiA4LjI5NzM2IDE4LjMwOTMgOC4yOTczNkMxOC40Nzk5IDguMjk3MzYgMTguNjIyOSA4LjM0MTM4IDE4LjczODUgOC40Mjk0MUMxOC44NTQgOC41MTE5NCAxOC45MjU1IDguNjMwMjQgMTguOTUzIDguNzg0M0MxOC45ODYgOC45MzgzNSAxOC45NTg1IDkuMTExNjcgMTguODcwNSA5LjMwNDI0TDE2Ljg2NSAxMy43MTE0QzE2Ljc4MjUgMTMuOTA0IDE2LjY3NzkgMTQuMDQ0MyAxNi41NTE0IDE0LjEzMjNDMTYuNDI0OCAxNC4yMjAzIDE2LjI1NyAxNC4yNjQ0IDE2LjA0NzkgMTQuMjY0NFoiIGZpbGw9ImJsYWNrIi8+CiAgICA8cGF0aCBkPSJNMTAuMjI3MiAxNC4yODA4QzEwLjAwNzEgMTQuMjgwOCA5Ljc3NjA0IDE0LjI2NDMgOS41MzM5NSAxNC4yMzEyQzkuMjk3MzYgMTQuMjAzNyA5LjA3MTc4IDE0LjE1OTcgOC44NTcyIDE0LjA5OTJDOC42NDI2MiAxNC4wMzg3IDguNDUwMDQgMTMuOTY3MSA4LjI3OTQ4IDEzLjg4NDZDOC4xMzA5MiAxMy44MTMxIDguMDI2MzggMTMuNzE5NiA3Ljk2NTg2IDEzLjYwNEM3LjkwNTM0IDEzLjQ4MyA3Ljg4MzMzIDEzLjM1NjQgNy44OTk4NCAxMy4yMjQ0QzcuOTE2MzQgMTMuMDkyMyA3Ljk2MzExIDEyLjk3NjggOC4wNDAxNCAxMi44Nzc3QzguMTE3MTcgMTIuNzczMiA4LjIxODk2IDEyLjcwNDQgOC4zNDU1IDEyLjY3MTRDOC40NzIwNSAxMi42MzI5IDguNjE1MTEgMTIuNjQ5NCA4Ljc3NDY3IDEyLjcyMDlDOC45ODM3NCAxMi44MiA5LjIyMDMzIDEyLjg5NyA5LjQ4NDQzIDEyLjk1MkM5Ljc0ODUzIDEzLjAwNyA5Ljk5NjEyIDEzLjAzNDUgMTAuMjI3MiAxMy4wMzQ1QzEwLjU5MDMgMTMuMDM0NSAxMC44NDM0IDEyLjk4NzggMTAuOTg2NSAxMi44OTQyQzExLjEzNTEgMTIuNzk1MiAxMS4yMDkzIDEyLjY3NDIgMTEuMjA5MyAxMi41MzExQzExLjIwOTMgMTIuNDA0NiAxMS4xNTcxIDEyLjMwMjggMTEuMDUyNSAxMi4yMjU3QzEwLjk1MzUgMTIuMTQ4NyAxMC43NzQ3IDEyLjA4MjcgMTAuNTE2MSAxMi4wMjc3TDkuNTUwNDYgMTEuODIxM0M5LjAyMjI2IDExLjcxMTMgOC42Mjg4NiAxMS41MTg3IDguMzcwMjYgMTEuMjQzNkM4LjExMTY3IDEwLjk2ODUgNy45ODIzNyAxMC42MTM2IDcuOTgyMzcgMTAuMTc5QzcuOTgyMzcgOS44OTI4NyA4LjA0MDE0IDkuNjM0MjcgOC4xNTU2OCA5LjQwMzE4QzguMjc2NzMgOS4xNjY1OSA4LjQ0NDU0IDguOTY1NzcgOC42NTkxMiA4LjgwMDcxQzguODc5MiA4LjYzNTY0IDkuMTM3OCA4LjUwOTEgOS40MzQ5MSA4LjQyMTA2QzkuNzM3NTMgOC4zMjc1MyAxMC4wNzMyIDguMjgwNzYgMTAuNDQxOCA4LjI4MDc2QzEwLjcyNzkgOC4yODA3NiAxMS4wMTY4IDguMzEzNzcgMTEuMzA4NCA4LjM3OThDMTEuNjA1NSA4LjQ0MDMyIDExLjg2MTMgOC41MzM4NiAxMi4wNzU5IDguNjYwNEMxMi4yMDI1IDguNzI2NDMgMTIuMjkzMiA4LjgxNzIxIDEyLjM0ODMgOC45MzI3NkMxMi40MDMzIDkuMDQ4MyAxMi40MjUzIDkuMTY5MzQgMTIuNDE0MyA5LjI5NTg5QzEyLjQwMzMgOS40MTY5NCAxMi4zNTkzIDkuNTI0MjMgMTIuMjgyMiA5LjYxNzc2QzEyLjIxMDcgOS43MTEzIDEyLjExMTcgOS43NzQ1NyAxMS45ODUxIDkuODA3NThDMTEuODY0MSA5LjgzNTA5IDExLjcxODMgOS44MTMwOSAxMS41NDc3IDkuNzQxNTZDMTEuMzg4MSA5LjY3MDAzIDExLjIwNjYgOS42MTc3NiAxMS4wMDMgOS41ODQ3NUMxMC44MDQ5IDkuNTQ2MjQgMTAuNjEyNCA5LjUyNjk4IDEwLjQyNTMgOS41MjY5OEMxMC4yMjE3IDkuNTI2OTggMTAuMDQ4NCA5LjU1MTc0IDkuOTA1MzQgOS42MDEyNkM5Ljc2MjI5IDkuNjQ1MjcgOS42NTIyNCA5LjcxMTMgOS41NzUyMiA5Ljc5OTMzQzkuNTAzNjkgOS44ODczNiA5LjQ2NzkzIDkuOTg5MTUgOS40Njc5MyAxMC4xMDQ3QzkuNDY3OTMgMTAuMjIwMiA5LjUxNDY5IDEwLjMxOTMgOS42MDgyMyAxMC40MDE4QzkuNzA3MjYgMTAuNDc4OCA5Ljg4NjA4IDEwLjU0NDkgMTAuMTQ0NyAxMC41OTk5TDExLjEwMiAxMC44MDYyQzExLjYzNTcgMTAuOTIxOCAxMi4wMzQ2IDExLjExMTYgMTIuMjk4NyAxMS4zNzU3QzEyLjU2MjggMTEuNjM5OCAxMi42OTQ5IDExLjk4MzcgMTIuNjk0OSAxMi40MDczQzEyLjY5NDkgMTIuNjkzNCAxMi42MzcxIDEyLjk1MiAxMi41MjE2IDEzLjE4MzFDMTIuNDA2IDEzLjQxNDIgMTIuMjQxIDEzLjYxMjMgMTIuMDI2NCAxMy43NzczQzExLjgxMTggMTMuOTM2OSAxMS41NTMyIDE0LjA2MDcgMTEuMjUwNiAxNC4xNDg3QzEwLjk0OCAxNC4yMzY3IDEwLjYwNjkgMTQuMjgwOCAxMC4yMjcyIDE0LjI4MDhaIiBmaWxsPSJibGFjayIvPgogICAgPHBhdGggZD0iTTUuMjg3ODMgMTQuMjgwOEM0LjY0NDA5IDE0LjI4MDggNC4wOTExMyAxNC4xNTcgMy42Mjg5NiAxMy45MDk0QzMuMTY2NzggMTMuNjYxOCAyLjgxMTkgMTMuMzEyNCAyLjU2NDMxIDEyLjg2MTJDMi4zMjIyMiAxMi40MTAxIDIuMjAxMTcgMTEuODgxOSAyLjIwMTE3IDExLjI3NjZDMi4yMDExNyAxMC44MjU1IDIuMjY5OTUgMTAuNDE1NiAyLjQwNzUgMTAuMDQ2OUMyLjU1MDU1IDkuNjc4MjkgMi43NTQxMyA5LjM2MTkyIDMuMDE4MjMgOS4wOTc4MkMzLjI4NzgzIDguODMzNzIgMy42MTI0NSA4LjYzMjg5IDMuOTkyMDkgOC40OTUzNEM0LjM3NzI0IDguMzUyMjkgNC44MDkxNSA4LjI4MDc2IDUuMjg3ODMgOC4yODA3NkM1LjU0MDkyIDguMjgwNzYgNS44MDIyNyA4LjMxMTAyIDYuMDcxODcgOC4zNzE1NUM2LjM0Njk4IDguNDI2NTcgNi41ODkwNyA4LjUxMTg1IDYuNzk4MTUgOC42MjczOUM2Ljk1MjIgOC43MDk5MiA3LjA1OTQ5IDguODE0NDYgNy4xMjAwMiA4Ljk0MTAxQzcuMTgwNTQgOS4wNjc1NiA3LjE5OTggOS4xOTY4NiA3LjE3Nzc5IDkuMzI4OUM3LjE2MTI4IDkuNDYwOTUgNy4xMTQ1MSA5LjU3OTI1IDcuMDM3NDkgOS42ODM3OUM2Ljk2MDQ2IDkuNzg4MzMgNi44NjE0MiA5Ljg1OTg1IDYuNzQwMzcgOS44OTgzN0M2LjYxOTMzIDkuOTMxMzggNi40ODcyOCA5LjkxMjEyIDYuMzQ0MjMgOS44NDA2QzYuMTc5MTYgOS43NjM1NyA2LjAxNDEgOS43MDU4IDUuODQ5MDQgOS42NjcyOEM1LjY4OTQ4IDkuNjIzMjcgNS41MjE2NyA5LjYwMTI2IDUuMzQ1NiA5LjYwMTI2QzUuMDA0NDcgOS42MDEyNiA0LjcxODM3IDkuNjY3MjggNC40ODcyOCA5Ljc5OTMzQzQuMjYxNjkgOS45MjU4OCA0LjA5MTEzIDEwLjExMjkgMy45NzU1OSAxMC4zNjA1QzMuODYwMDQgMTAuNjA4MSAzLjgwMjI3IDEwLjkxMzUgMy44MDIyNyAxMS4yNzY2QzMuODAyMjcgMTEuNjM5OCAzLjg2MDA0IDExLjk0NzkgMy45NzU1OSAxMi4yMDFDNC4wOTExMyAxMi40NDg2IDQuMjYxNjkgMTIuNjM4NCA0LjQ4NzI4IDEyLjc3MDRDNC43MTgzNyAxMi44OTcgNS4wMDQ0NyAxMi45NjAzIDUuMzQ1NiAxMi45NjAzQzUuNDg4NjUgMTIuOTYwMyA1LjY0MjcxIDEyLjk0MzggNS44MDc3NyAxMi45MTA3QzUuOTcyODQgMTIuODcyMiA2LjEzNTE1IDEyLjgxNDUgNi4yOTQ3MSAxMi43Mzc0QzYuNDU5NzcgMTIuNjY1OSA2LjYwNTU3IDEyLjY0NjYgNi43MzIxMiAxMi42Nzk3QzYuODY0MTcgMTIuNzEyNyA2Ljk2ODcxIDEyLjc3ODcgNy4wNDU3NCAxMi44Nzc3QzcuMTI4MjcgMTIuOTc2OCA3LjE4MDU0IDEzLjA5MjMgNy4yMDI1NSAxMy4yMjQ0QzcuMjI0NTYgMTMuMzUwOSA3LjIwNTMgMTMuNDc3NSA3LjE0NDc4IDEzLjYwNEM3LjA4OTc2IDEzLjczMDYgNi45OTA3MiAxMy44MzIzIDYuODQ3NjYgMTMuOTA5NEM2LjY1NTA5IDE0LjAyNDkgNi40MTU3NSAxNC4xMTU3IDYuMTI5NjUgMTQuMTgxN0M1Ljg0OTA0IDE0LjI0NzcgNS41Njg0MyAxNC4yODA4IDUuMjg3ODMgMTQuMjgwOFoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo="
802
+ }
803
+ }
804
+ ]