{ "$schema" : "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json", "name" : "Hybrid A2A Client (early access)", "id" : "io.camunda.connectors.agenticai.a2a.client.v0-hybrid", "description" : "Agent-to-Agent (A2A) client, enabling discovering remote agents' Agent Cards as well as sending messages to remote agents.", "metadata" : { "keywords" : [ ] }, "documentationRef" : "https://docs.camunda.io/docs/8.9/components/early-access/alpha/a2a-client/a2a-client-connector/", "version" : 0, "category" : { "id" : "connectors", "name" : "Connectors" }, "appliesTo" : [ "bpmn:Task" ], "elementType" : { "value" : "bpmn:ServiceTask" }, "engines" : { "camunda" : "^8.9" }, "groups" : [ { "id" : "taskDefinitionType", "label" : "Task definition type" }, { "id" : "connection", "label" : "HTTP Connection", "tooltip" : "Configure the HTTP connection to the remote A2A server for retrieving the Agent Card. Setting authentication headers is not supported yet." }, { "id" : "connectorMode", "label" : "Connector mode", "tooltip" : "Select how this connector is used. When the connector is used as an AI agent tool, select the AI Agent tool mode." }, { "id" : "operation", "label" : "Operation" }, { "id" : "connector", "label" : "Connector" }, { "id" : "output", "label" : "Output mapping" }, { "id" : "error", "label" : "Error handling" }, { "id" : "retries", "label" : "Retries" } ], "properties" : [ { "id" : "taskDefinitionType", "value" : "io.camunda.agenticai:a2aclient:0", "group" : "taskDefinitionType", "binding" : { "property" : "type", "type" : "zeebe:taskDefinition" }, "type" : "String" }, { "value" : "a2aClient", "binding" : { "name" : "io.camunda.agenticai.gateway.type", "type" : "zeebe:property" }, "condition" : { "property" : "data.connectorMode.type", "equals" : "aiAgentTool", "type" : "simple" }, "type" : "Hidden" }, { "id" : "data.connection.url", "label" : "A2A server URL", "description" : "The base URL of the A2A server.", "optional" : false, "constraints" : { "notEmpty" : true }, "feel" : "optional", "group" : "connection", "binding" : { "name" : "data.connection.url", "type" : "zeebe:input" }, "type" : "String" }, { "id" : "data.connection.agentCardLocation", "label" : "Agent card location", "description" : "Optional path to the agent card endpoint relative to the base server URL, defaults to .well-known/agent-card.json.", "optional" : true, "feel" : "optional", "group" : "connection", "binding" : { "name" : "data.connection.agentCardLocation", "type" : "zeebe:input" }, "type" : "String" }, { "id" : "data.connectorMode.type", "label" : "Connector mode", "description" : "Select how this connector is used.", "value" : "aiAgentTool", "group" : "connectorMode", "binding" : { "name" : "data.connectorMode.type", "type" : "zeebe:input" }, "type" : "Dropdown", "choices" : [ { "name" : "Standalone", "value" : "standalone" }, { "name" : "AI Agent tool", "value" : "aiAgentTool" } ] }, { "id" : "data.connectorMode.operation.type", "label" : "Operation", "description" : "The type of operation to perform.", "value" : "fetchAgentCard", "group" : "operation", "binding" : { "name" : "data.connectorMode.operation.type", "type" : "zeebe:input" }, "condition" : { "property" : "data.connectorMode.type", "equals" : "standalone", "type" : "simple" }, "type" : "Dropdown", "choices" : [ { "name" : "Fetch Agent Card", "value" : "fetchAgentCard" }, { "name" : "Send message", "value" : "sendMessage" } ] }, { "id" : "data.connectorMode.operation.params.text", "label" : "Text", "description" : "The text to to be included in the message.", "optional" : false, "constraints" : { "notEmpty" : true }, "feel" : "optional", "group" : "operation", "binding" : { "name" : "data.connectorMode.operation.params.text", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "data.connectorMode.operation.type", "equals" : "sendMessage", "type" : "simple" }, { "property" : "data.connectorMode.type", "equals" : "standalone", "type" : "simple" } ] }, "type" : "Text" }, { "id" : "data.connectorMode.operation.params.contextId", "label" : "Context ID", "description" : "The context ID for this message, used to group related interactions.", "optional" : true, "feel" : "optional", "group" : "operation", "binding" : { "name" : "data.connectorMode.operation.params.contextId", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "data.connectorMode.operation.type", "equals" : "sendMessage", "type" : "simple" }, { "property" : "data.connectorMode.type", "equals" : "standalone", "type" : "simple" } ] }, "tooltip" : "Context IDs are generated by the remote server. Omit if this is the first message or if this message starts a new context.", "type" : "String" }, { "id" : "data.connectorMode.operation.params.taskId", "label" : "Task ID", "description" : "The ID of the task this message is part of.", "optional" : true, "feel" : "optional", "group" : "operation", "binding" : { "name" : "data.connectorMode.operation.params.taskId", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "data.connectorMode.operation.type", "equals" : "sendMessage", "type" : "simple" }, { "property" : "data.connectorMode.type", "equals" : "standalone", "type" : "simple" } ] }, "tooltip" : "Task IDs are generated by the remote server. Omit if the message is not yet part of a specific task.", "type" : "String" }, { "id" : "data.connectorMode.operation.params.referenceTaskIds", "label" : "Reference Task IDs", "description" : "A list of task IDs that this message references for additional context.", "optional" : true, "feel" : "required", "group" : "operation", "binding" : { "name" : "data.connectorMode.operation.params.referenceTaskIds", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "data.connectorMode.operation.type", "equals" : "sendMessage", "type" : "simple" }, { "property" : "data.connectorMode.type", "equals" : "standalone", "type" : "simple" } ] }, "type" : "String" }, { "id" : "data.connectorMode.operation.params.documents", "label" : "Documents", "description" : "Documents to be included in the message.", "optional" : true, "feel" : "required", "group" : "operation", "binding" : { "name" : "data.connectorMode.operation.params.documents", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "data.connectorMode.operation.type", "equals" : "sendMessage", "type" : "simple" }, { "property" : "data.connectorMode.type", "equals" : "standalone", "type" : "simple" } ] }, "tooltip" : "Referenced documents that will be added to the message.", "type" : "String" }, { "id" : "data.connectorMode.operation.settings.responseRetrievalMode.type", "label" : "Response retrieval", "description" : "How to receive the final response from the remote agent.", "value" : "polling", "group" : "operation", "binding" : { "name" : "data.connectorMode.operation.settings.responseRetrievalMode.type", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "data.connectorMode.operation.type", "equals" : "sendMessage", "type" : "simple" }, { "property" : "data.connectorMode.type", "equals" : "standalone", "type" : "simple" } ] }, "type" : "Dropdown", "choices" : [ { "name" : "Blocking", "value" : "blocking" }, { "name" : "Polling", "value" : "polling" }, { "name" : "Notification", "value" : "notification" } ] }, { "id" : "data.connectorMode.operation.settings.responseRetrievalMode.webhookUrl", "label" : "Webhook URL", "description" : "The webhook URL where the remote agent will send the response.", "optional" : false, "constraints" : { "notEmpty" : true }, "feel" : "optional", "group" : "operation", "binding" : { "name" : "data.connectorMode.operation.settings.responseRetrievalMode.webhookUrl", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "data.connectorMode.operation.settings.responseRetrievalMode.type", "equals" : "notification", "type" : "simple" }, { "property" : "data.connectorMode.operation.type", "equals" : "sendMessage", "type" : "simple" }, { "property" : "data.connectorMode.type", "equals" : "standalone", "type" : "simple" } ] }, "type" : "String" }, { "id" : "data.connectorMode.operation.settings.responseRetrievalMode.token", "label" : "Token", "description" : "A unique token for the task or session to validate incoming push notifications", "optional" : true, "feel" : "optional", "group" : "operation", "binding" : { "name" : "data.connectorMode.operation.settings.responseRetrievalMode.token", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "data.connectorMode.operation.settings.responseRetrievalMode.type", "equals" : "notification", "type" : "simple" }, { "property" : "data.connectorMode.operation.type", "equals" : "sendMessage", "type" : "simple" }, { "property" : "data.connectorMode.type", "equals" : "standalone", "type" : "simple" } ] }, "type" : "String" }, { "id" : "data.connectorMode.operation.settings.responseRetrievalMode.authenticationSchemes", "label" : "Authentication schemes", "description" : "A list of authentication schemes required by the webhook.", "optional" : false, "feel" : "required", "group" : "operation", "binding" : { "name" : "data.connectorMode.operation.settings.responseRetrievalMode.authenticationSchemes", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "data.connectorMode.operation.settings.responseRetrievalMode.type", "equals" : "notification", "type" : "simple" }, { "property" : "data.connectorMode.operation.type", "equals" : "sendMessage", "type" : "simple" }, { "property" : "data.connectorMode.type", "equals" : "standalone", "type" : "simple" } ] }, "type" : "String" }, { "id" : "data.connectorMode.operation.settings.responseRetrievalMode.credentials", "label" : "Authentication credentials", "description" : "Credentials to authenticate the webhook request.", "optional" : false, "feel" : "optional", "group" : "operation", "binding" : { "name" : "data.connectorMode.operation.settings.responseRetrievalMode.credentials", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "data.connectorMode.operation.settings.responseRetrievalMode.type", "equals" : "notification", "type" : "simple" }, { "property" : "data.connectorMode.operation.type", "equals" : "sendMessage", "type" : "simple" }, { "property" : "data.connectorMode.type", "equals" : "standalone", "type" : "simple" } ] }, "type" : "String" }, { "id" : "data.connectorMode.operation.settings.historyLength", "label" : "History length", "description" : "The number of most recent messages from the task's history to retrieve in the response.", "optional" : false, "value" : 3, "feel" : "optional", "group" : "operation", "binding" : { "name" : "data.connectorMode.operation.settings.historyLength", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "data.connectorMode.operation.type", "equals" : "sendMessage", "type" : "simple" }, { "property" : "data.connectorMode.type", "equals" : "standalone", "type" : "simple" } ] }, "type" : "Number" }, { "id" : "data.connectorMode.operation.settings.timeout", "label" : "Response timeout", "description" : "How long to wait for the remote agent response as ISO-8601 duration (example: PT1M).", "optional" : false, "value" : "PT1M", "feel" : "optional", "group" : "operation", "binding" : { "name" : "data.connectorMode.operation.settings.timeout", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "data.connectorMode.operation.type", "equals" : "sendMessage", "type" : "simple" }, { "property" : "data.connectorMode.type", "equals" : "standalone", "type" : "simple" } ] }, "type" : "String" }, { "id" : "data.connectorMode.toolOperation.operation", "label" : "Operation", "description" : "The action to perform. Possible values are fetchAgentCard and sendMessage.", "optional" : false, "value" : "=toolCall.operation", "constraints" : { "notEmpty" : true }, "feel" : "required", "group" : "operation", "binding" : { "name" : "data.connectorMode.toolOperation.operation", "type" : "zeebe:input" }, "condition" : { "property" : "data.connectorMode.type", "equals" : "aiAgentTool", "type" : "simple" }, "type" : "String" }, { "id" : "data.connectorMode.toolOperation.params", "label" : "Parameters", "description" : "The parameters used to build the message that will be sent to the remote agent.", "optional" : true, "value" : "=toolCall.params", "feel" : "required", "group" : "operation", "binding" : { "name" : "data.connectorMode.toolOperation.params", "type" : "zeebe:input" }, "condition" : { "property" : "data.connectorMode.type", "equals" : "aiAgentTool", "type" : "simple" }, "type" : "Text" }, { "id" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.type", "label" : "Response retrieval", "description" : "How to receive the final response from the remote agent.", "value" : "polling", "group" : "operation", "binding" : { "name" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.type", "type" : "zeebe:input" }, "condition" : { "property" : "data.connectorMode.type", "equals" : "aiAgentTool", "type" : "simple" }, "type" : "Dropdown", "choices" : [ { "name" : "Blocking", "value" : "blocking" }, { "name" : "Polling", "value" : "polling" }, { "name" : "Notification", "value" : "notification" } ] }, { "id" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.webhookUrl", "label" : "Webhook URL", "description" : "The webhook URL where the remote agent will send the response.", "optional" : false, "constraints" : { "notEmpty" : true }, "feel" : "optional", "group" : "operation", "binding" : { "name" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.webhookUrl", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.type", "equals" : "notification", "type" : "simple" }, { "property" : "data.connectorMode.type", "equals" : "aiAgentTool", "type" : "simple" } ] }, "type" : "String" }, { "id" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.token", "label" : "Token", "description" : "A unique token for the task or session to validate incoming push notifications", "optional" : true, "feel" : "optional", "group" : "operation", "binding" : { "name" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.token", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.type", "equals" : "notification", "type" : "simple" }, { "property" : "data.connectorMode.type", "equals" : "aiAgentTool", "type" : "simple" } ] }, "type" : "String" }, { "id" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.authenticationSchemes", "label" : "Authentication schemes", "description" : "A list of authentication schemes required by the webhook.", "optional" : false, "feel" : "required", "group" : "operation", "binding" : { "name" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.authenticationSchemes", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.type", "equals" : "notification", "type" : "simple" }, { "property" : "data.connectorMode.type", "equals" : "aiAgentTool", "type" : "simple" } ] }, "type" : "String" }, { "id" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.credentials", "label" : "Authentication credentials", "description" : "Credentials to authenticate the webhook request.", "optional" : false, "feel" : "optional", "group" : "operation", "binding" : { "name" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.credentials", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "data.connectorMode.toolOperation.sendMessageSettings.responseRetrievalMode.type", "equals" : "notification", "type" : "simple" }, { "property" : "data.connectorMode.type", "equals" : "aiAgentTool", "type" : "simple" } ] }, "type" : "String" }, { "id" : "data.connectorMode.toolOperation.sendMessageSettings.historyLength", "label" : "History length", "description" : "The number of most recent messages from the task's history to retrieve in the response.", "optional" : false, "value" : 3, "feel" : "optional", "group" : "operation", "binding" : { "name" : "data.connectorMode.toolOperation.sendMessageSettings.historyLength", "type" : "zeebe:input" }, "condition" : { "property" : "data.connectorMode.type", "equals" : "aiAgentTool", "type" : "simple" }, "type" : "Number" }, { "id" : "data.connectorMode.toolOperation.sendMessageSettings.timeout", "label" : "Response timeout", "description" : "How long to wait for the remote agent response as ISO-8601 duration (example: PT1M).", "optional" : false, "value" : "PT1M", "feel" : "optional", "group" : "operation", "binding" : { "name" : "data.connectorMode.toolOperation.sendMessageSettings.timeout", "type" : "zeebe:input" }, "condition" : { "property" : "data.connectorMode.type", "equals" : "aiAgentTool", "type" : "simple" }, "type" : "String" }, { "id" : "version", "label" : "Version", "description" : "Version of the element template", "value" : "0", "group" : "connector", "binding" : { "key" : "elementTemplateVersion", "type" : "zeebe:taskHeader" }, "type" : "Hidden" }, { "id" : "id", "label" : "ID", "description" : "ID of the element template", "value" : "io.camunda.connectors.agenticai.a2a.client.v0", "group" : "connector", "binding" : { "key" : "elementTemplateId", "type" : "zeebe:taskHeader" }, "type" : "Hidden" }, { "id" : "resultVariable", "label" : "Result variable", "description" : "Name of variable to store the response in", "group" : "output", "binding" : { "key" : "resultVariable", "type" : "zeebe:taskHeader" }, "type" : "String" }, { "id" : "resultExpression", "label" : "Result expression", "description" : "Expression to map the response into process variables", "feel" : "required", "group" : "output", "binding" : { "key" : "resultExpression", "type" : "zeebe:taskHeader" }, "type" : "Text" }, { "id" : "errorExpression", "label" : "Error expression", "description" : "Expression to handle errors. Details in the documentation.", "feel" : "required", "group" : "error", "binding" : { "key" : "errorExpression", "type" : "zeebe:taskHeader" }, "type" : "Text" }, { "id" : "retryCount", "label" : "Retries", "description" : "Number of retries", "value" : "3", "feel" : "optional", "group" : "retries", "binding" : { "property" : "retries", "type" : "zeebe:taskDefinition" }, "type" : "String" }, { "id" : "retryBackoff", "label" : "Retry backoff", "description" : "ISO-8601 duration to wait between retries", "value" : "PT0S", "group" : "retries", "binding" : { "key" : "retryBackoff", "type" : "zeebe:taskHeader" }, "type" : "String" } ], "icon" : { "contents" : "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMTguNSIgdmlld0JveD0iMyA5IDMwIDE4LjUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHBhdGggZD0iTTguNyAxNC43MjVDOC41MTY2NyAxNC45MDgzIDguMjgzMzMgMTUgOCAxNUM3LjcxNjY3IDE1IDcuNDc1IDE0LjkwODMgNy4yNzUgMTQuNzI1QzcuMDkxNjcgMTQuNTI1IDcgMTQuMjgzMyA3IDE0QzcgMTMuNzE2NyA3LjA5MTY3IDEzLjQ4MzMgNy4yNzUgMTMuM0M3LjQ3NSAxMy4xIDcuNzE2NjcgMTMgOCAxM0M4LjI4MzMzIDEzIDguNTE2NjcgMTMuMSA4LjcgMTMuM0M4LjkgMTMuNDgzMyA5IDEzLjcxNjcgOSAxNEM5IDE0LjI4MzMgOC45IDE0LjUyNSA4LjcgMTQuNzI1WiIgZmlsbD0iYmxhY2siLz4KICA8cGF0aCBkPSJNMTQuNyAxNC43MjVDMTQuNTE2NyAxNC45MDgzIDE0LjI4MzMgMTUgMTQgMTVDMTMuNzE2NyAxNSAxMy40NzUgMTQuOTA4MyAxMy4yNzUgMTQuNzI1QzEzLjA5MTcgMTQuNTI1IDEzIDE0LjI4MzMgMTMgMTRDMTMgMTMuNzE2NyAxMy4wOTE3IDEzLjQ4MzMgMTMuMjc1IDEzLjNDMTMuNDc1IDEzLjEgMTMuNzE2NyAxMyAxNCAxM0MxNC4yODMzIDEzIDE0LjUxNjcgMTMuMSAxNC43IDEzLjNDMTQuOSAxMy40ODMzIDE1IDEzLjcxNjcgMTUgMTRDMTUgMTQuMjgzMyAxNC45IDE0LjUyNSAxNC43IDE0LjcyNVoiIGZpbGw9ImJsYWNrIi8+CiAgPHBhdGggZD0iTTIyLjcgMTQuNzI1QzIyLjUxNjcgMTQuOTA4MyAyMi4yODMzIDE1IDIyIDE1QzIxLjcxNjcgMTUgMjEuNDc1IDE0LjkwODMgMjEuMjc1IDE0LjcyNUMyMS4wOTE3IDE0LjUyNSAyMSAxNC4yODMzIDIxIDE0QzIxIDEzLjcxNjcgMjEuMDkxNyAxMy40ODMzIDIxLjI3NSAxMy4zQzIxLjQ3NSAxMy4xIDIxLjcxNjcgMTMgMjIgMTNDMjIuMjgzMyAxMyAyMi41MTY3IDEzLjEgMjIuNyAxMy4zQzIyLjkgMTMuNDgzMyAyMyAxMy43MTY3IDIzIDE0QzIzIDE0LjI4MzMgMjIuOSAxNC41MjUgMjIuNyAxNC43MjVaIiBmaWxsPSJibGFjayIvPgogIDxwYXRoIGQ9Ik0yOC43IDE0LjcyNUMyOC41MTY3IDE0LjkwODMgMjguMjgzMyAxNSAyOCAxNUMyNy43MTY3IDE1IDI3LjQ3NSAxNC45MDgzIDI3LjI3NSAxNC43MjVDMjcuMDkxNyAxNC41MjUgMjcgMTQuMjgzMyAyNyAxNEMyNyAxMy43MTY3IDI3LjA5MTcgMTMuNDgzMyAyNy4yNzUgMTMuM0MyNy40NzUgMTMuMSAyNy43MTY3IDEzIDI4IDEzQzI4LjI4MzMgMTMgMjguNTE2NyAxMy4xIDI4LjcgMTMuM0MyOC45IDEzLjQ4MzMgMjkgMTMuNzE2NyAyOSAxNEMyOSAxNC4yODMzIDI4LjkgMTQuNTI1IDI4LjcgMTQuNzI1WiIgZmlsbD0iYmxhY2siLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTUgMTRDNSAxMi4zNDMxIDYuMzQzMTUgMTEgOCAxMUgxNEMxNC43NzYgMTEgMTUuMjg0IDExLjE1MzcgMTUuNjQgMTEuMzgxOEMxNS44NTg5IDEwLjc5NCAxNi4xNTE3IDEwLjE3MDkgMTYuNTU1IDkuNTk3OTVDMTUuODc5NyA5LjIxMTUzIDE1LjAzODYgOSAxNCA5SDhDNS4yMzg1OCA5IDMgMTEuMjM4NiAzIDE0QzMgMTYuNzYxMiA1LjIzNzU5IDE5IDcuOTk5MjYgMTlIMTRDMTUuNzYzNCAxOSAxNi45NTczIDE4LjM5MDIgMTcuNzM3NSAxNy4zNUMxOC40MjI4IDE2LjQzNjMgMTguNzE0OCAxNS4yNjYgMTguOTQ4MyAxNC4zMjk5TDE4Ljk3MDEgMTQuMjQyNUMxOS4yMzI3IDEzLjE5MjQgMTkuNDQ0MiAxMi40MDc3IDE5Ljg2MjUgMTEuODVDMjAuMjA3MyAxMS4zOTAyIDIwLjc2MzQgMTEgMjIgMTFIMjguMDAwNUMyOS42NTcyIDExIDMxIDEyLjM0MyAzMSAxNEMzMSAxNS42NTY5IDI5LjY1NjkgMTcgMjggMTdIMjJDMjEuMjI0IDE3IDIwLjcxNiAxNi44NDYzIDIwLjM2IDE2LjYxODJDMjAuMTQxMSAxNy4yMDYgMTkuODQ4MyAxNy44MjkxIDE5LjQ0NSAxOC40MDJDMjAuMTIwMyAxOC43ODg1IDIwLjk2MTQgMTkgMjIgMTlIMjhDMzAuNzYxNCAxOSAzMyAxNi43NjE0IDMzIDE0QzMzIDExLjIzODggMzAuNzYyMSA5IDI4LjAwMDUgOUgyMkMyMC4yMzY2IDkgMTkuMDQyNyA5LjYwOTc5IDE4LjI2MjUgMTAuNjVDMTcuNTc3MiAxMS41NjM3IDE3LjI4NTIgMTIuNzM0IDE3LjA1MTcgMTMuNjcwMUwxNy4wMjk5IDEzLjc1NzVDMTYuNzY3MyAxNC44MDc2IDE2LjU1NTggMTUuNTkyMyAxNi4xMzc1IDE2LjE1QzE1Ljc5MjcgMTYuNjA5OCAxNS4yMzY2IDE3IDE0IDE3SDcuOTk5MjZDNi4zNDI2NSAxNyA1IDE1LjY1NzEgNSAxNFoiIGZpbGw9ImJsYWNrIi8+CiAgPHBhdGggZD0iTTcgMjMuNUM2LjcxNjY3IDIzLjUgNi40NzUgMjMuNDA4MyA2LjI3NSAyMy4yMjVDNi4wOTE2NyAyMy4wMjUgNiAyMi43ODMzIDYgMjIuNUM2IDIyLjIxNjcgNi4wOTE2NyAyMS45ODMzIDYuMjc1IDIxLjhDNi40NzUgMjEuNiA2LjcxNjY3IDIxLjUgNyAyMS41SDEyQzEyLjI4MzMgMjEuNSAxMi41MTY3IDIxLjYgMTIuNyAyMS44QzEyLjkgMjEuOTgzMyAxMyAyMi4yMTY3IDEzIDIyLjVDMTMgMjIuNzgzMyAxMi45IDIzLjAyNSAxMi43IDIzLjIyNUMxMi41MTY3IDIzLjQwODMgMTIuMjgzMyAyMy41IDEyIDIzLjVIN1pNNSAyNy41QzQuNzE2NjcgMjcuNSA0LjQ3NSAyNy40MDgzIDQuMjc1IDI3LjIyNUM0LjA5MTY3IDI3LjAyNSA0IDI2Ljc4MzMgNCAyNi41QzQgMjYuMjE2NyA0LjA5MTY3IDI1Ljk4MzMgNC4yNzUgMjUuOEM0LjQ3NSAyNS42IDQuNzE2NjcgMjUuNSA1IDI1LjVIOEM4LjI4MzMzIDI1LjUgOC41MTY2NyAyNS42IDguNyAyNS44QzguOSAyNS45ODMzIDkgMjYuMjE2NyA5IDI2LjVDOSAyNi43ODMzIDguOSAyNy4wMjUgOC43IDI3LjIyNUM4LjUxNjY3IDI3LjQwODMgOC4yODMzMyAyNy41IDggMjcuNUg1Wk0xMiAyNy41QzExLjcxNjcgMjcuNSAxMS40NzUgMjcuNDA4MyAxMS4yNzUgMjcuMjI1QzExLjA5MTcgMjcuMDI1IDExIDI2Ljc4MzMgMTEgMjYuNUMxMSAyNi4yMTY3IDExLjA5MTcgMjUuOTgzMyAxMS4yNzUgMjUuOEMxMS40NzUgMjUuNiAxMS43MTY3IDI1LjUgMTIgMjUuNUgyMEMyMC4yODMzIDI1LjUgMjAuNTE2NyAyNS42IDIwLjcgMjUuOEMyMC45IDI1Ljk4MzMgMjEgMjYuMjE2NyAyMSAyNi41QzIxIDI2Ljc4MzMgMjAuOSAyNy4wMjUgMjAuNyAyNy4yMjVDMjAuNTE2NyAyNy40MDgzIDIwLjI4MzMgMjcuNSAyMCAyNy41SDEyWk0yOCAyNy41QzI3LjcxNjcgMjcuNSAyNy40NzUgMjcuNDA4MyAyNy4yNzUgMjcuMjI1QzI3LjA5MTcgMjcuMDI1IDI3IDI2Ljc4MzMgMjcgMjYuNUMyNyAyNi4yMTY3IDI3LjA5MTcgMjUuOTgzMyAyNy4yNzUgMjUuOEMyNy40NzUgMjUuNiAyNy43MTY3IDI1LjUgMjggMjUuNUgzMkMzMi4yODMzIDI1LjUgMzIuNTE2NyAyNS42IDMyLjcgMjUuOEMzMi45IDI1Ljk4MzMgMzMgMjYuMjE2NyAzMyAyNi41QzMzIDI2Ljc4MzMzMi45IDI3LjAyNSAzMi43IDI3LjIyNUMzMi41MTY3IDI3LjQwODMgMzIuMjgzMyAyNy41IDMyIDI3LjVIMjhaTTE2IDIzLjVDMTUuNzE2NyAyMy41IDE1LjQ3NSAyMy40MDgzIDE1LjI3NSAyMy4yMjVDMTUuMDkxNyAyMy4wMjUgMTUgMjIuNzgzMyAxNSAyMi41QzE1IDIyLjIxNjcgMTUuMDkxNyAyMS45ODMzIDE1LjI3NSAyMS44QzE1LjQ3NSAyMS42IDE1LjcxNjcgMjEuNSAxNiAyMS41QzE2LjI4MzMgMjEuNSAxNi41MTY3IDIxLjYgMTYuNyAyMS44QzE2LjkgMjEuOTgzMyAxNyAyMi4yMTY3IDE3IDIyLjVDMTcgMjIuNzgzMyAxNi45IDIzLjAyNSAxNi43IDIzLjIyNUMxNi41MTY3IDIzLjQwODMgMTYuMjgzMyAyMy41IDE2IDIzLjVaTTI0IDI3LjVDMjMuNzE2NyAyNy41IDIzLjQ3NSAyNy40MDgzIDIzLjI3NSAyNy4yMjVDMjMuMDkxNyAyNy4wMjUgMjMgMjYuNzgzMyAyMyAyNi41QzIzIDI2LjIxNjcgMjMuMDkxNyAyNS45ODMzIDIzLjI3NSAyNS44QzIzLjQ3NSAyNS42IDIzLjcxNjcgMjUuNSAyNCAyNS41QzI0LjI4MzMgMjUuNSAyNC41MTY3IDI1LjYgMjQuNyAyNS44QzI0LjkgMjUuOTgzMyAyNSAyNi4yMTY3IDI1IDI2LjVDMjUgMjYuNzgzMyAyNC45IDI3LjAyNSAyNC43IDI3LjIyNUMyNC41MTY3IDI3LjQwODMgMjQuMjgzMyAyNy41IDI0IDI3LjVaIiBmaWxsPSJibGFjayIvPgogIDxwYXRoIGQ9Ik0xOS4yNzUgMjMuMjI1QzE5LjQ3NSAyMy40MDgzIDE5LjcxNjcgMjMuNSAyMCAyMy41SDIzQzIzLjI4MzMgMjMuNSAyMy41MTY3IDIzLjQwODMgMjMuNyAyMy4yMjVDMjMuOSAyMy4wMjUgMjQgMjIuNzgzMyAyNCAyMi41QzI0IDIyLjIxNjcgMjMuOSAyMS45ODMzIDIzLjcgMjEuOEMyMy41MTY3IDIxLjYgMjMuMjgzMyAyMS41IDIzIDIxLjVIMjBDMTkuNzE2NyAyMS41IDE5LjQ3NSAyMS42IDE5LjI3NSAyMS44QzE5LjA5MTcgMjEuOTgzMyAxOSAyMi4yMTY3IDE5IDIyLjVDMTkgMjIuNzgzMyAxOS4wOTE3IDIzLjAyNSAxOS4yNzUgMjMuMjI1WiIgZmlsbD0iYmxhY2siLz4KICA8cGF0aCBkPSJNMjYuMjc1IDIzLjIyNUMyNi40NzUgMjMuNDA4MyAyNi43MTY3IDIzLjUgMjcgMjMuNUgzMEMzMC4yODMzIDIzLjUgMzAuNTE2NyAyMy40MDgzIDMwLjcgMjMuMjI1QzMwLjkgMjMuMDI1IDMxIDIyLjc4MzMgMzEgMjIuNUMzMSAyMi4yMTY3IDMwLjkgMjEuOTgzMyAzMC43IDIxLjhDMzAuNTE2NyAyMS42IDMwLjI4MzMgMjEuNSAzMCAyMS41SDI3QzI2LjcxNjcgMjEuNSAyNi40NzUgMjEuNiAyNi4yNzUgMjEuOEMyNi4wOTE3IDIxLjk4MzMgMjYgMjIuMjE2NyAyNiAyMi41QzI2IDIyLjc4MzMgMjYuMDkxNyAyMy4wMjUgMjYuMjc1IDIzLjIyNVoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPg==" } }