DMDS API REST v1.5 Documentation using CURL

In all examples, replace dmdsid with the name of the dedicated DMDS, and APIKEY with the secret hash.

Changes from v1.4 to v1.5: number of events and paginated events

The method cantidad_eventos is added to obtain the number of events between two specific dates.

Number of Events between Dates

Example:

curl -X GET "https://api-dmds-dmdsid.planisys.net/v1/cantidad_eventos"
    -H "accept: application/json"
    -H "Authorization: APIKEYxxxx"
    -H "Content-Type: application/json"
    -d '{
         "fechahora_desde": "2023-07-30_00:00:00",
         "fechahora_hasta": "2023-07-31_23:59:00"
    }'

The response returned by this endpoint is categorized by types of events, e.g.:

{
  "status": "ok",
  "eventos": [
    {
      "count": 6329,
      "event": "envio"
    },
    {
      "count": 5053,
      "event": "vista"
    },
    {
      "count": 796,
      "event": "click"
    },
    {
      "count": 55,
      "event": "rebote_hard"
    },
    {
      "count": 18,
      "event": "desuscripcion"
    },
    {
      "count": 11,
      "event": "conversion"
    },
    {
      "count": 18,
      "event": "invalidacion"
    }
  ]
}

Paginated Events between Dates

This method ver_eventos allows paginating with a variable page length of 10 or more and selecting from a page the events that occurred between two specific date-times. It takes four parameters:

Example:

curl -X GET "https://api-dmds-dmdsid.planisys.net/v1/ver_eventos"
    -H "accept: application/json"
    -H "Authorization: APIKEYxxxx"
    -H "Content-Type: application/json"
    -d '{
         "fechahora_desde": "2023-07-30_00:00:00",
         "fechahora_hasta": "2023-07-31_23:59:00"
         "pagina":4,
         "cantidad":100
    }'

Warning

The parameters pagina and cantidad within the JSON must be numeric.

Changes from v1.3 to v1.4: archiving of sent emails (requires archiving license)

The flag archive is added in send_many_inline and send_one_inline, with the goal of saving a record of what was sent within an Effective Send (also referred to as Batch).

In this way, by setting “archive”:”true” in the parameter list of the methods mentioned above, more information can be retrieved with the method eeid_info (see below), and the EML formats sent to each recipient can be recovered.

Additionally, for archived emails, the method eeid_eml is added, which allows returning the text of the email sent in an Effective Send to one of the recipients.

This way, a copy of the EML effectively instantiated for each particular recipient can be obtained, containing, e.g., receipts, notifications, or invoices for Audit purposes. This functionality requires an Archiving License for the DMDS in question.

Changes from v1.2 to v1.3 - Whitelisting

The method whitelist is added, which allows checking if a contact is on the whitelist, adding or removing it.

The whitelist is used to immunize a contact so that it is not invalidated by a possible bounce due to failure or confusing message from the receiving MTA.

It also protects against a possible unsubscribe/invalid process that could be done based on bounce processing.

Changes from v1.1 to v1.2 - API version

The method version is added, which returns the API version number, e.g.

Get API Version

With this call to the version method, you can obtain the API version being used and look for changes in the documentation.

curl -X GET "https://api-dmds-dmdsid.planisys.net/v1/version"
    -H "accept: application/json"
    -H "Authorization: APIKEYxxxx"
    -H "Content-Type: application/json"

returns a JSON with the version number.

{"version":"1.2"}

Changes from v1.0 to v1.1 - Revalidate and Invalidate

The methods revalidate and invalidate are added, and Revalidation and Invalidation events are stored to track changes in contact status.

The Not-Sent event is also added for cases where an email is attempted to be sent to an invalid contact. This event appears as unknown in the API and as Not-Sent in the Mtmail web interface.

The event visualization is compatible with the application https://mtmail.planisys.net, which will soon replace the dmds-dmdsid.planisys.net applications.

GET Contact Example

Here we will show calls related to Contacts, that is, email addresses of subscribed contacts, with their associated Fields and Events.

curl -X GET "https://api-dmds-dmdsid.planisys.net/v1/contacto/usuario@dominio"
    -H "accept: application/json"
    -H "Authorization: APIKEYxxxx"
    -H "Content-Type: application/json"

Warning

Important: remember that the hostname and authorization are unique to each DMDS. Therefore, replace APIKEYxxxx and host or dmdsid with the appropriate value.

Curl on Microsoft Windows

You can download curl here:

http://www.paehl.com/open_source/?CURL_7.72.0

Contact Whitelist

The whitelist method can be used to check if an email is on the whitelist using GET, remove it from the whitelist using DELETE, and add it to the whitelist using POST or PUT.

Check if on the whitelist with GET:

curl -X GET "https://api-dmds-dmdsid.planisys.net/v1/whitelist/usuario@dominio.com"
    -H "accept: application/json"
    -H "Authorization: APIKEYxxxx"
    -H "Content-Type: application/json"

returns if not on the whitelist:

{"status":"ok","msg":"usuario@dominio.com not whitelisted"}

and returns if on the whitelist:

{"status":"ok","msg":"usuario@dominio.com whitelisted"}

Add to the whitelist with POST or PUT:

curl -X POST "https://api-dmds-dmdsid.planisys.net/v1/whitelist/usuario@dominio.com"
    -H "accept: application/json"
    -H "Authorization: APIKEYxxxx"
    -H "Content-Type: application/json"

returns

{"status":"ok","msg":"usuario@dominio.com added to whitelist"}

Remove from whitelist with DELETE

curl -X DELETE "https://api-dmds-dmdsid.planisys.net/v1/whitelist/usuario@dominio.com"
    -H "accept: application/json"
    -H "Authorization: APIKEYxxxx"
    -H "Content-Type: application/json"

returns

{"status":"ok","msg":"usuario@dominio.com removed from whitelist"}

Returns contact information

In this example, you can see how to return the information of a specific contact. In the call, in the URL, you must specify the email of the user already existing in the API’s database. This way, all the contact’s information, such as their name, surname, which Base or group they belong to, their events, etc., will be presented to us.

curl -X GET "https://api-dmds-dmdsid.planisys.net/v1/contacto/fdkslafjkdsjafdjsakjfdsa@hotmail.com" -H "accept: application/json" -H "Authorization: xxxxxxxxxxx

The response comes in a JSON that contains the events, bases/groups the contact belongs to, fields, and static information. In this case, it shows an email account that has been invalidated after two “hard” bounces or non-existent account.

{
    "status": "ok",
    "contacto": {
        "numid": 455895,
        "email": "fdkslafjkdsjafdjsakjfdsa@hotmail.com",
        "nombre": "Juan",
        "apellido": "Pérez",
        "edad": null,
        "sexo": "M",
        "profesion": "",
        "localidad": "",
        "operacion": "Modificacion",
        "actualizado": "2020-10-15T08:25:32",
        "origenes": "",
        "codigo_pais": "",
        "codigo_region": "",
        "ciudad": "",
        "dispositivo": "web",
        "subtipo_dispositivo_id": null,
        "grupo_de_dominio_id": 0,
        "invalido": true,
        "campos": [
            {
                "nombre": "XYZDNIXYZ",
                "valor": "21232421"
            },
            {
                "nombre": "XYZEMPLEADORXYZ",
                "valor": "Planisys"
            },
            {
                "nombre": "XYZEMPLEADOR2XYZ",
                "valor": "AvasCloud"
            },
            {
                "nombre": "XYZTELCELXYZ",
                "valor": "+34999111333"
            }
        ],
        "eventos": [
          {
            "evento": "envio",
            "timestamp": "2020-10-15T08:25:11",
            "campania": "VIMS "
          },
          {
            "evento": "envio",
            "timestamp": "2020-10-15T08:25:16",
            "campania": "VIMS "
          },
          {
            "evento": "envio",
            "timestamp": "2020-10-15T08:25:18",
            "campania": "VIMS "
          },
          {
            "evento": "envio",
            "timestamp": "2020-10-15T08:25:29",
            "campania": "VIMS "
          },
          {
            "evento": "rebote_hard",
            "timestamp": "2020-10-15T08:25:32",
            "campania": "VIMS "
          },
          {
            "evento": "rebote_hard",
            "timestamp": "2020-10-15T08:30:08",
            "campania": "VIMS "
          }
        ],
        "grupos": [
            "Origen API"
        ],
        "campanias": [],
        "campanias_desusc": []
    }
}

List invalid contacts

With this call, all contacts that are invalid (i.e., those that have been invalidated due to bounces or Spam Feedback loops) will be shown.

curl -X GET "https://api-dmds-host/v1/contactos/invalidos/" -H "accept: application/json" -H 'Authorization: xxxxxxxxxxxxxx'

Create or update a contact

With the following call, you can create a new contact or update an existing one.

The first variable defined is the email, which acts as a primary key in the database. When updating a contact, we will always rely on their email since it is unique.

In the data section, we define different attributes that can describe a contact. All these fields can be updated as the contact’s values change. To specify which user we want to modify, we will use their email.

curl -X POST "https://api-dmds-host1/v1/contacto/"
    -H  "accept: application/json"
    -H  "Content-Type: application/json"
    -d '{
        "email":"email@",
        "nombre": "xxxxx",
        "apellido": "xxxxx",
        "edad": "xx",  "sexo": "x",
        "invalido": false,
        "campos": [{"nombre": "xxxxxxx","valor": "+xxxx..xxx"}]
    }'

Warning

When using the characters [ and ], it indicates that we have a list of values. In this last case, a list of JSONs where each JSON denotes a field.

Associate one or more bases with a new or existing contact

curl -X POST "https://api-dmds-cualquiera.planisys.net/v1/contacto/"
    -H "accept: application/json"
    -H "Authorization: mitoken"
    -H "Content-Type: application/json"
    -d '{
        "email": "hjose4@planisys.com",
        "sexo": "F",
        "nombre":"Hernan",
        "apellido":"Perez",
        "grupos":["Testing Planisys","facturas de prueba"]
    }'

Note

An origin or base is the same as a group. It is the name of a contact base. A contact can be part of multiple bases (groups).

Set field values for a new or existing contact

curl -X POST "https://api-dmds-dmdsid.planisys.net/v1/contacto/" -H "accept: application/json" -H "Authorization: mitoken" -H "Content-Type: application/json" -d '{"email": "juan4@planisys.com", "campos":  [ {"nombre":"XYZDNIXYZ","valor":"13111423"}]  }'

Invalidate a contact (introduced in v1.1)

curl -X GET "https://api-dmds-dmdsid.planisys.net/v1/invalidar/usuario@mail" -H "accept: application/json" -H "Authorization: mitoken" -H "Content-Type: application/json"

An Invalidation event will be inserted with the timestamp of when the invalidation occurred. When the contact is marked as invalid, any attempt to send a direct or copied email will trigger a Not-Sent event.

Note

This is a GET call

In v1.3, with the addition of whitelisting, the response to the call may change, indicating that it is not possible to invalidate a contact on the whitelist. The contact must first be removed from the whitelist, and the event will not be added:

{"status":"ok","msg":"whitelisted"}

Revalidate a contact (introduced in v1.1)

curl -X GET "https://api-dmds-dmdsid.planisys.net/v1/revalidar/usuario@mail" -H "accept: application/json" -H "Authorization: mitoken" -H "Content-Type: application/json"

A Revalidation event will be inserted with the timestamp of when the revalidation occurred. If the contact was valid, it remains valid. If it was invalidated, it will now be valid again.

Note

This is a GET call

Similarly to invalidate, in revalidate no Revalidation event will be inserted if the email is on the whitelist, and it will return:

{"status":"ok","msg":"whitelisted"}

Invalidate a contact - deprecated (v1.0)

In the same update of a contact, it can be invalidated or revalidated. By default, the invalid variable is always set to false. But if you want to unsubscribe or invalidate the contact, set this variable to true (invalid: true), without a Revalidation event. This allows us to define that this contact is in the invalid list.

curl -X POST "https://api-dmds-dmdsid.planisys.net/v1/contacto/" -H 'Authorization: xxxxxxxx' -H "accept: application/json" -H "Content-Type: application/json" -d '{"email": "correo@dominio.com", "nombre": "xxxx", "apellido": "xxxx", "edad": "x","sexo":"x","invalido": true}'

Note

Use the /revalidate and /invalidate methods instead of this method, as it does not leave Events that can be tracked, and works at a low level. Only use it if you’re not interested in Invalidation and Revalidation Events.

Create a Campaign

With the /v1/campaign/ method in POST mode, you can create an api or normal type campaign.

The creation always returns the id and numid, plus an apikey in the case of API, which can be used in subsequent calls, e.g., to send an email.

By obtaining an apikey, you can also use SMTP-API with a username dmdsid-campnumid and apikey as the password, for applications that require configuring SMTP with authentication, allowing you to assign a username/password pair to a specific campaign.

To create a normal one, you must then enter the web interface and complete the creation of the send.

curl -X POST "https://api-dmds-dmdsid.planisys.net/v1/campania/"
    -H 'Authorization: xxxxxxxx' -H "accept: application/json" -H "Content-Type: application/json"
    -d '{ "tipo":"normal", "nombre":"prueba campania"}'

The api type campaign requires more parameters, of which only replyto is optional, creating a unique send and allowing emails to be sent under the returned numid, e.g.:

curl -X POST "https://api-dmds-dmdsid.planisys.net/v1/campania/"
    -H 'Authorization: xxxxxxxx' -H "accept: application/json" -H "Content-Type: application/json"
    -d '{ "tipo":"normal", "nombre":"prueba campania", "remitente":"ventas@dominio.com", "remitente_nombre": "Ventas", "asunto": "XYZTAG-CURLXYZ", "asunto_uri":"https://www.dominio.net/newsletter/asunto.txt", "replyto":"rt12@dominio.com", "url":"https://www.dominio.com/newsletter.html", "charset":"utf8", "desusc":"no"}'

For better visibility, we repeat the JSON:

{
  "tipo":"api",
  "nombre":"campania api",
  "remitente":"ventas@dominio.com",
  "remitente_nombre": "Ventas",
  "asunto": "XYZTAG-CURLXYZ",
  "asunto_uri":"https://www.dominio.net/newsletter/asunto.txt",
  "replyto":"rt12@dominio.com",
  "url":"https://www.dominio.com/newsletter.html",
  "charset":"utf8",
  "desusc":"no"
}

If XYZTAG-CURLXYZ is in the subject, then the method requires the asunto_uri parameter because it will be a dynamic subject. If preferred, a static fixed subject can be used, and asunto_uri can be omitted.

Both the sender, the subject, and the URL of the email piece are defaults, meaning they can be overwritten when sending emails under the campaign’s numid.

The call returns a JSON containing a numid for subsequent calls, e.g.

{"status":"ok","id":"66bfae5b-3b6f-4bc9-a563-f62d5a9812a3","numid":68235,"camp_apikey":"a62d247c345fe31d0cda39ba1c3d3501"}

Warning

It is currently not allowed to modify the created campaign, considering that methods like send_one_inline and send_one_uri overwrite the campaign’s defaults.

Send an email to a single recipient with HTML URI

To perform this send, it is necessary to define some fields, such as: theemail field must always be true, as this allows us to send the email.If this value is false, messages cannot be sent. Other values to define arethe campaign ID and the recipient’s email. Other values such as first name,last name, and subject are optional. If you want to send HTML via URI, itshould be added in the html_url field.

In the headers section, remember to define your authorization value.

curl -X POST https://api-dmds-dmdsid.planisys.net/v1/envio/send_one_uri/ -H "Accept:application/json" -H "Authorization:xxxxxxx" -H "Content-Type:application/json" -d '{"campana_id":2134,"email":true,"contacto":{"email":"correo@dominio.com","nombre":"xxxx","apellido":"xxxx"},"html_url":"http://xxxxxxx.html", "remitente": "sender@planisys.com", "remitente_nombre":"Nombre del Remitente"}'

This call will return an eeid (Effective Send ID), which can be used to query the events that occurred (see Event Query).

Note

When specifying a URL, the REST API follows 301 and 302 codes for redirection until it reaches a 200 code and obtains the page.

Warning

The HTML file is expected to be in UTF-8 encoding or charset, so if the HTML contains mixed characters from windows-1252 or iso-8859-1, for example, part of the content may not display correctly.

In case of doubts regarding the encoding of certain characters or multi-platform handling that mixes several encodings in the same HTML, we recommend using the standard international HTML character encodings on this page https://www.rapidtables.com/web/html/html-codes.html

Send an email to a recipient with HTML URL and attachments

In this case, instead of JSON, we will use a FORM, and attachments from the local filesystem will be sent.

curl -X POST "https://api-dmds-dmdsid.planisys.net/v1/envio/send_one_form/" -H "accept: application/json" -H "Authorization: AABBCC1234" -F 'campana_id=13' -F 'contacto=soporte@planisys.com' -F 'html_url=http://planisys.net/prueba.html' -F 'attach1=@/root/attach-example-1.pdf' -F 'attach2=@/root/attach-example-1.docx'

Note

Attachments are sent in base-64 format (Content-Transfer-Encoding).

Send an email to a single recipient with HTML URI

The difference from the previous call is how to define the HTML within the code.

curl -X POST https://api-dmds-dmdsid.planisys.net/v1/envio/send_one_inline/-H "Accept:application/json"-H "Authorization:xxxxxxx"-H "Content-Type:application/json" -d '{"campana_id":111,"email":true,"contacto":{"email":"correo@dominio.com","nombre":"xxxxx","apellido":"xxxx"}, "html":"<html><head><title>Page Title</title></head><body><h1>This is a Heading</h1><p>This is a paragraph.</p></body></html>", "remitente": "sender@planisys.com", "remitente_nombre":"Nombre del Remitente"}'

This call will return an eeid (Effective Send ID), which can be used to query the events that occurred (see Event Query).

Send an email to a single recipient with HTML URI

For this call, we will follow the same concept as for the others when sending a message. In this case, we want to send to many recipients, so we will define an array of contacts to whom we want to send and change contact to contacts. In the example shown below, we send an email to two people, but many more can be defined.

Warning

When sending to multiple recipients, contact (a JSON with email and optionally first and last name) is changed to contacts, which is a LIST of JSONs placed between square brackets [ and ].

curl -X POST https://api-dmds-host/v1/envio/send_many_uri/ \
    -H "Accept:application/json" -H "Authorization:xxxxx" \
    -H "Content-Type:application/json" \
     -d '{ \
        "campana_id":1111, \
        "email":true, \
        "contactos":[ \
            {"email":"contacto1@dominio.com","nombre":"xxxx","apellido":"xxxxxx"}, \
            {"email":"contacto2@doinio.com","nombre":"xxxxx","apellido":"xxxxx"} \
        ], \
        "html_url":"https://www.planisys.net", \
        "remitente": "sender@planisys.com", \
        "remitente_nombre":"Nombre del Remitente" \
    }'

This call will return an eeid (Effective Send ID), which can be used to query the events that occurred (see Event Query).

Warning

As some email addresses may be incorrect, the number of emails sent, shown in the JSON response under sent, may be less than the number of specified recipients.

Send an email to more than one recipient with HTML inline

curl -X POST https://api-dmds-host/v1/envio/send_many_inline/ -H "Accept:application/json" -H "Authorization:xxxxxxx" -H "Content-Type:application/json" -d '{"campana_id":1234 ,"email":true,"contactos":[{"email":"contacto1@dominio.com","nombre":"xxxxx","apellido":"xxxxxx"},{"email":"contacto2@dominio.com","nombre":"xxxx","apellido":"xxxxxx"}],"html":"<html><head><title>Page Title</title></head><body><h1>This is a Heading</h1><p>This is a paragraph.</p></body></html>"}'

This call will return an eeid (Effective Send ID), which can be used to query the events that occurred (see Event Query).

Campaign APIKEYs

With the campania_apikey method, you can specify a numid with HTTP GET method, and obtain the campaign’s APIKEY if one has been assigned and it is of the API type.

Additionally, an apikey can be set using the POST method and the “apikey” argument.

In this way, an SMTP-API user can be used, e.g., dmdsid-12345, with the apikey value as the password.

List campaigns

With the same structure as listing invalid contacts or global variables, we can list all existing campaigns. For this, the GET method is used.

curl -X GET "https://api-dmds-host/v1/campania/" -H "accept: application/json" -H 'Authorization: xxxxxxxx'

It can also be filtered to list only api, normal, or bulk type campaigns.

curl -X GET "https://api-dmds-host/v1/campania/" -H "accept: application/json" -H 'Authorization: xxxxxxxx' -d '{"tipo":"api"}'

Another filter that can be applied is to list only one campaign by its numid when you want to see a specific one:

curl -X GET "https://api-dmds-host/v1/campania/" -H "accept: application/json" -H 'Authorization: xxxxxxxx' -d '{"tipo":"api", "numid":1234}'

Warning

This call does not list campaign APIKEYs; for that, the campania_apikey method is used.

Create a group or base

As we have seen before, when we create or modify a contact, we can assign them to a group (also known as a base). To assign a group, we need to see if this group exists. If it doesn’t, we can create it as follows.

curl -X POST "https://api-dmds-host/v1/grupo/" -H accept: application/json" -H 'Authorization: xxxxxxxx' -H "Content-Type: application/json" -d '{"nombre": "xxxxx"}'

or also

curl -X POST "https://api-dmds-host/v1/base/" -H accept: application/json" -H 'Authorization: xxxxxxxx' -H "Content-Type: application/json" -d '{"nombre": "xxxxx"}'

List filters

In the API system, different filters can be created to help specify the sends.

To see this list of existing filters, follow the code mentioned below.

curl -X GET "https://api-dmds-host/v1/filtros/" -H "accept: application/json" -H 'Authorization: xxxxxx' -H "Content-Type: application/json"

List global variables and their values

There are a series of global variables defined in the API. To see what these variables are and their values, we can look at the following code.

curl -X GET "https://api-dmds-host/v1/global/" -H "accept: application/json" -H 'Authorization: xxxxxxxx'

Create global variables

We can always create global variables. For the creation, we will use the POST method, where we pass a variable, which will indicate the name of the global variable.

curl -X POST "https://api-dmds-host/v1/global/"\
     -H "accept: application/json" \
     -H 'Authorization: xxxxxxx' \
     -H "Content-Type: application/json" \
     -d '{"nombre": "newglobal","valor": "hola"}'

Delete global variables

In the same way that we create global variables, we can delete them. However, in this case, we will use a method called DELETE.

curl -X DELETE "https://api-dmds-host/v1/global/" -H "accept: application/json" -H 'Authorization: xxxxxx' -H "Content-Type: application/json" -d '{ "nombre": "newglobal", "valor": ""}'

Sent Mail Query

For emails saved with the archive option, the text of the email sent to a recipient can be retrieved, e.g.

curl -X GET "https://api-dmds-dmdsid.planisys.net/v1/eeid_eml/3abc993d-8i88-45e8-a6c9-e879378abba5/usuario@dominio.com" -H "accept: application/json" -H "Authorization: xxxxx" -H "Content-Type: application/json"

As seen, it is a GET with two parameters: the UUID representing the Effective Send, and one of the recipients. If the recipient is not among the recipients of the email (whether as To:, Cc:, or Bcc:), this call returns a 400 error.

This returns a json, where the key “msg” has a value that is the sent text. Headers (Headers) are added to this text as it passes through different MTAs until it reaches the recipient, so this text is the original text that leaves the system towards the first available MTA (usually an available MX of the recipient’s domain).

Event Query

The response to the sending of emails may contain a 4xx code, for which the user must analyze the error (e.g., missing a parameter).

If a send works correctly, the response is generally a JSON with these 3 pairs:

{"status":"ok", "sent":4, "eeid":"3abc993d-8i88-45e8-a6c9-e879378abba5"}

The uuid returned as eeid (effective_send_id) can be queried later with a GET. The number following sent is the number of emails sent during the call, e.g., one recipient with 3 copies.

Warning

Important: if you want to group subsequent sends in the same batch, you can add the reuse_eeid: True option, and you must add eeid: …. to reuse a previous eeid and group sends in the same batch.

curl -X GET "https://api-dmds-dmdsid.planisys.net/v1/eeid_info/3abc993d-8i88-45e8-a6c9-e879378abba5" -H "accept: application/json" -H "Authorization: xxxxx" -H "Content-Type: application/json"

And the response is a JSON with events, e.g., of the send

{
    "status": "ok",
    "envio_efectivo": {
        "envio_id": "36e7725c-041c-48b8-2f25-55890898004b",
        "timestamp": "2020-10-15T07:40:36",
        "estado": "enviado",
        "modificado": "2020-10-15T07:40:36",
        "campana_id": "f25e4695-3aa4-3bd0-072f-5999d9d9d9d3",
        "cant_particiones": null,
        "particiones_tomadas": null,
        "particiones_finalizadas": null,
        "salidas_con_error": null,
        "creador_id": "",
        "contactos": [
            {
                "email": "fdkslafjkdsjafdjsakjfdsa@planisys.com",
                "eventos": [
                    {
                        "eventos": "envio",
                        "timestamp": "2020-10-15T07:40:37"
                    }
                ]
            }
        ]
    }
}

Other events such as soft-bounce, hard-bounce, click, or view may appear

Warning

From v1.4 onwards, if the effective send was made with archive:true, the JSON returns a section called archive with the trace information of the effective send.

Use of Reply-To, Cc, and Bcc

In the send_one_inline and send_one_uri calls, the following can be added to the main JSON:

Reply-To:

{"reply-to": "usuario@dominio.com"}

Note

The reply-to is a single item, and a name that hides the email address is not used for security and transparency reasons.

Cc:

{ "copia":[{ "cc_email":"usuario1@gmail.com", "cc_nombre":"Usuario1", "cc_apellido": "Apellido1"}] }

Note

In the case of copy, a list of possible copy recipients goes between []. Only the cc_email is mandatory.

If you want to send a blind copy, you must add:

{ "copia_oculta": [ { "bcc_email":"usuario5@gmail.com"}, {"bcc_email:"usuario7@outlook.com"} ] }

JSON Response Messages

Although the response code is not visible at the CURL level, in programming languages when you want to check the response, you should check

  • HTTP Code 200 - OK

  • HTTP Code 403 - Forbidden (usually incorrect APIKEY)

  • HTTP Code 4xx - Data errors, such as missing a parameter in the input JSON, or incorrect addresses

It should be noted that in send_one_inline and send_one_uri calls, as well as in the introduction of a new contact, a check is made on the validity of the email address.

Examples:

In this case, the validity of the syntax of an Internet domain is checked

curl -X POST 'https://api-dmds-dmdsid.planisys.net/v1/contacto/' --header 'accept: application/json' --header 'Authorization: 11111111111113243433' --header 'Content-Type: application/json' --data '{"email": "ifdjsahfjdsaf@gmail"}'

Returns

{"status":"err","on":"invalid email The domain name gmail is not valid. It should have a period."}

In this case, it checks that there is only one @ in each email address

curl -X POST 'https://api-dmds-dmdsid.planisys.net/v1/contacto/' --header 'accept: application/json' --header 'Authorization: 11111111111113243433' --header 'Content-Type: application/json' --data '{"email": "@-@gmail"}'

Returns

{"status":"err","on":"invalid email The email address is not valid. It must have exactly one @-sign."}

This is a case of international characters not allowed in email addresses

curl -X POST 'https://api-dmds-dmdsid.planisys.net/v1/contacto/' --header 'accept: application/json' --header 'Authorization: 11111111111113243433' --header 'Content-Type: application/json' --data '{"email": "josépérez@gmail.com"}'

Returns

{"status":"err","on":"invalid email Internationalized characters before the @-sign are not supported."}

This is a case of a non-existent domain

curl -X POST 'https://api-dmds-dmdsid.planisys.net/v1/contacto/' --header 'accept: application/json' --header 'Authorization: 11111111111113243433' --header 'Content-Type: application/json' --data '{"email": "juanperez@gmail.com", "remitente":"jose@escuelaxyz.com", "remitente_nombre":"PLANICóRP"}'

Returns

{"status":"err","on":"remitente invalido The domain name escuelaxyz.com does not exist."}

In this case, the sender domain is not declared on the DMDS web, meaning it is not an allowed domain for this particular DMDS:

curl -X POST 'https://api-dmds-dmdsid.planisys.net/v1/contacto/' --header 'accept: application/json' --header 'Authorization: 11111111111113243433' --header 'Content-Type: application/json' --data '{"email": "juanperez@gmail.com", "remitente":"jose@gmail.com", "remitente_nombre":"PLANICóRP"}'

Returns

{"status":"err","on":"dominio remitente no permitido"}

Use of Sender and Return-Path

On the DMDS web, the allowed domains to be used as senders are listed.

In the previous example, it was shown that the REST API v1 rejects the sender as not allowed because the domain to the right of the @ is not listed.

What should be taken into account is that on the DMDS Web, for each allowed domain, an appropriate return-path for reading bounces is listed. For example, if the sender domain is dom1.com, we will probably have dmds-dom1@nl.dom1.com as a Return-Path address different from the From: header, which would be e.g. user@dom1.com.

This data is registered during the provisioning of the DMDS and can be changed as domains are added or removed.

The purpose of the Return-Path being a subdomain of the main domain is to have a valid Return-Path via the DMARC record, which serves to direct bounces to a mailbox that the DMDS can process automatically.

Sending Inline Attachments

Attachments can be added to any of the send_one_inline or send_many_inline calls.

Here we show an example of JSON files sent inline encoded in base64, via send_one_inline:

What is sent as an attachment is a list of JSONs, where each JSON has two parts:

  • a name

  • a list of strings that, when concatenated, form the base64 encoding of the file

{
    "campana_id":27,
    "email":"true",
    "contacto":
    {
        "email":"juanlopez@planisys.com",
        "nombre":"Juan",
        "apellido":"López"
    },
    "asunto":"Envio de Adjuntos via API DMDS Planisys",
    "remitente":"contacto@planisys.com",
    "remitente_nombre":"Servicio Envio Archivos",
    "html": "<html><head><title>Page Title</title></head><body><h1>Heading</h1><p>paragraph.</p></body></html>",
    "adjuntos":
    [
        {
            "filename": "docejemplo.docx",
            "content":
                [
                    "UEsDBBQABgAIAAAAIQDfpNJsWgEAACAFAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAAC",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0",
                    "lMtuwjAQRfeV+g+Rt1Vi6KKqKgKLPpYtUukHGHsCVv2Sx7z+vhMCUVUBkQpsIiUz994zVsaD0dqa",
                    "bAkRtXcl6xc9loGTXmk3K9nX5C1/ZBkm4ZQw3kHJNoBsNLy9GUw2ATAjtcOSzVMKT5yjnIMVWPgA",
                    "jiqVj1Ykeo0zHoT8FjPg973eA5feJXApT7UHGw5eoBILk7LXNX1uSCIYZNlz01hnlUyEYLQUiep8",
                    "6dSflHyXUJBy24NzHfCOGhg/mFBXjgfsdB90NFEryMYipndhqYuvfFRcebmwpCxO2xzg9FWlJbT6",
                    "2i1ELwGRztyaoq1Yod2e/ygHpo0BvDxF49sdDymR4BoAO+dOhBVMP69G8cu8E6Si3ImYGrg8Rmvd",
                    "CZFoA6F59s/m2NqciqTOcfQBaaPjP8ber2ytzmngADHp039dm0jWZ88H9W2gQB3I5tv7bfgDAAD/",
                    "/wMAUEsDBBQABgAIAAAAIQAekRq37wAAAE4CAAALAAgCX3JlbHMvLnJlbHMgogQCKKAAAgAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArJLBasMw",
                    "DEDvg/2D0b1R2sEYo04vY9DbGNkHCFtJTBPb2GrX/v082NgCXelhR8vS05PQenOcRnXglF3wGpZV",
                    "DYq9Cdb5XsNb+7x4AJWFvKUxeNZw4gyb5vZm/cojSSnKg4tZFYrPGgaR+IiYzcAT5SpE9uWnC2ki",
                    "Kc/UYySzo55xVdf3mH4zoJkx1dZqSFt7B6o9Rb6GHbrOGX4KZj+xlzMtkI/C3rJdxFTqk7gyjWop",
                    "9SwabDAvJZyRYqwKGvC80ep6o7+nxYmFLAmhCYkv+3xmXBJa/ueK5hk/Nu8hWbRf4W8bnF1B8wEA",
                    "AP//AwBQSwMEFAAGAAgAAAAhANZks1H0AAAAMQMAABwACAF3b3JkL19yZWxzL2RvY3VtZW50Lnht",
                    "bC5yZWxzIKIEASigAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArJLLasMwEEX3hf6DmH0t",
                    "O31QQuRsSiHb1v0ARR4/qCwJzfThv69ISevQYLrwcq6Yc8+ANtvPwYp3jNR7p6DIchDojK971yp4",
                    "qR6v7kEQa1dr6x0qGJFgW15ebJ7Qak5L1PWBRKI4UtAxh7WUZDocNGU+oEsvjY+D5jTGVgZtXnWL",
                    "cpXndzJOGVCeMMWuVhB39TWIagz4H7Zvmt7ggzdvAzo+UyE/cP+MzOk4SlgdW2QFkzBLRJDnRVZL",
                    "itAfi2Myp1AsqsCjxanAYZ6rv12yntMu/rYfxu+wmHO4WdKh8Y4rvbcTj5/oKCFPPnr5BQAA//8D",
                    "AFBLAwQUAAYACAAAACEAc/g0kt0CAACuCgAAEQAAAHdvcmQvZG9jdW1lbnQueG1spJZLb9swDIDv",
                    "A/YfDN9TWXnHaFK0y1bsMCBY1vOgyIrtRQ9DUuJmv36UH3EGb4XjXixLJD9SNEXr/uFVcO/EtEmV",
                    "XPr4LvA9JqmKUhkv/ZcfXwZz3zOWyIhwJdnSPzPjP6w+frjPw0jRo2DSeoCQJswzuvQTa7MQIUMT",
                    "Joi5EynVyqi9vaNKILXfp5ShXOkIDQMcFG+ZVpQZA/4+EXkixq9w9LUbLdIkB2MHHCOaEG3Za8PA",
                    "N0MmaIHmbdCwBwh2OMRt1Ohm1BS5qFqgcS8QRNUiTfqR/rG5aT/SsE2a9SON2qR5P1KrnES7wFXG",
                    "JAj3SgtiYapjJIg+HLMBgDNi013KU3sGZjCtMSSVhx4RgdWFIEbRzYQZEipifBTVFLX0j1qGlf3g",
                    "Yu9CD0v7aqgtdJf9lybrqjkUO0eacciFkiZJs8sJF31pIExqyOmtTZwEr/XyDHc8Lv9rT+sylQ2w",
                    "S/hV/gUvI3+biIMOX8QhLhZdQvjbZx2JgCpsHPdKzVVycccGUgOGLcCUph1LumaU2YT9gOUVx7Db",
                    "MJMaY86iOep5Fr+vWp61OmYNLX0f7Wtz9nP3F76BVVXd9Ukw7wtmm5AMWoKg4ddYKk12HCKCGvKg",
                    "DLziC7gnfBXPHTp/BVeFnYrObsy8PISrRvR96QfB0xzjydqvlzbaLeLFbL3Al8U125Mjt1eSArPR",
                    "btDlwImMQf9E+NJncvCy9dHqHlVi1Gh3NclDu6objvLYLyYyrpzUljrlhtTBNfqthT8EkFzxBi5q",
                    "SQRk4+ezeiL04KiN7mcZXTRLd5kTG0btRt+YmC0YudXHYDZ5XJdJibe/QQo9AeNFUASTwPt0Pi7c",
                    "OYVvxPmxCloXHuNZAUvjBEh4FhTsnbJWiUbM2f5KmjASMYhmFszddK+UvZrGR1tMK3dUcQOrJiOU",
                    "lTrFMtwan7WrjZCnkm1SSyHK0bROSZmN4rUsGtRcNFd/AAAA//8DAFBLAwQUAAYACAAAACEAerYt",
                    "BBgGAACPGgAAFQAAAHdvcmQvdGhlbWUvdGhlbWUxLnhtbOxZ3W7bNhS+H7B3IHTvWrYl/wR1Clu2",
                    "261JWzRpt17SEi2xoUSDpJMYRYE9wYAB3bCbAbvbxW4KbM/UYeseYiQl26RNr+jiAsXQGIj5853D",
                    "j+eQHynr9p3rnIBLxDimRd9r3PI9gIqYJrhI+96T80mt6wEuYJFAQgvU95aIe3eOP//sNjwSGcoR",
                    "kPYFP4J9LxNiflSv81g2Q36LzlEh+2aU5VDIKkvrCYNX0m9O6k3fb9dziAsPFDCXbs+lDUgQeDib",
                    "4Rh5xyv3YyL/FYKrhpiwM+UcVTYGNrloqC++5BFh4BKSvidHSujVOboWHiCQC9nR93z959WPb9fX",
                    "RkTssTXsJvqvsqsMkoumtmPpdG0YBGHQHqz9awARu7hxZ9wet9f+NADGsZxpycX22WlGQYU1QGXR",
                    "4XvUGbUaFt7w39rBD0L1sfAaVBaDHfxkEm1iaIDKYriDD4e94cj2r0Flsb2D7/iDUdCx8BqUEVxc",
                    "7KD9sN2KVrNdQ2aU3HPCe2Ew6TQr+AZVN1ZXaV+IfWsth88pm0iATi4UuABiOUczGEtcBAmeMgxO",
                    "cJrJhTeHBeWy2W/6E78l/6tPoEs6o/AIQcO6bIr5TpPiA3jM8Fz0vS+lV8+APFuAu1RkOK5G3bW4",
                    "B4vUtHj7y3d///QN+Ou3n9+++t6N5yZ+hIr0awyLfxtAmAZvfnj9x++v3/z47Z+/vnLABwxOTfg5",
                    "zhEHD9AVeExzOTnHAGjK3s/iPIPYtBgUKYcFVDYO9FjGz0Q/WEICHbghsiP5lEmpcAHvLp5bhM8y",
                    "thDYAbyf5RbwlFIypMw5p/tqLDMKiyJ1D84WJu4xhJeusaOtPI8Xc7nmsctllCGL5iMiUw5TVCAB",
                    "VB+9QMhh9gxjK66nOGaU05kAzzAYQuwMyTmeWqtpY3QP5zIvSxdBmW8rNqdPwZASl/sRurSRcndA",
                    "4nKJiBXGu3AhYO5kDHNiIk+gyFwkz5YstgLOhcx0iggF4wRx7rJ5yJYW3ftSYtxpPyXL3EYygS9c",
                    "yBNIqbXB6UWUwXzu5IyLzMR+wS/kEoXgERVOEtTeIaou8yDFY1+6n2Jkpfvde/uJlCH3AlE9C+ba",
                    "Eoja+3FJZhBp5/UtTc9x8U6B35L28MNJ+yku4oy6Nfcgou6G3kTOBww799O2iO/DbUt3RFmCP37l",
                    "HsFF8QjJzeKAfhLuT8L9vxfuffv58HK9UWh9jV9d1rWbfO/NfYYJORNLgk641nYup5dMZKOuaKP1",
                    "g8I8k8VqOAuXMqjLgFHxFRbZWQbncpiGHiHlleuUgznl8nTQzU7fqoMs8lOalK2NxurZVBpAsWmX",
                    "p8uqXZ5FomxtdzYPYWv3upbqh+UVAWX7PiSMwWwSLQeJzqrxHST0zA7Coudg0VXu97LQX1VW5P4D",
                    "UP2wEQYlI7neIEGJylNpv8ruwTO9L5j2tJuO6fUU18Nk2iJhLDebhLEMM5ig7eYD57q3SalFT4Vi",
                    "l0an+yFyrURkSxtIYdfAldxzrVC6ieG8783kvVAW87n0x5VuQpIWfS8WVaD/i7LMGRcjyLMSprvK",
                    "+edYIAYIzuVaN9NAig23RrOj5viRkuv5H1/k9JeZZDSboVjsadlUZV/pxNl7Q7Cq0IUkfZYlV2BK",
                    "FuwxlIEKOw0VwARzsY5mgpmxuDdR3JKraitav5lttigk8wxWJ4op5iVcl9d0jHloptuzsuvVZKap",
                    "StKNT913G6kOQzT3HCDq1HTrx4c75A1WG923WJXSva11vZXW7Tslbn4gGNQ2g1nUFGMHtU2rTe2A",
                    "FwJjuPXS3HdGHPo02F616oBY3St1beflBJ0+lyt/JK+rCyK4poqu5TNCtPpZuVQC3bpSl2sBFgz3",
                    "vRd+OAiiZhjV/G44rgWtwK91w0GrNgjDVmMcNvzRsPlSBkVkeSMsx57I5xmyrN6+6PadNzD56pp9",
                    "K6Z5nep7cF0b6zcwjab1Bqa8J4Nz1e8BLCPzot2c9Fq9YbvWaw0mtWA07NZ6UXtYG7WjzmgyisJu",
                    "b/LSA5caHAxaUdAed2vtRhTVgrav6Hd7tU7QbA6CzqA7DgYvq1jLma++V+HVvI7/AQAA//8DAFBL",
                    "AwQUAAYACAAAACEAaaXgAR0EAADkCwAAEQAAAHdvcmQvc2V0dGluZ3MueG1stFbbbuM2EH0v0H8w",
                    "9FzHuivWrrPwJWqyiLvFOosCfSkoibaJ8CKQVLzeov/eESVGbiIsnC3yklBzZs4Mh3Px+w9fGR09",
                    "YqmI4DPHu3CdEeaFKAnfzZwv99n40hkpjXiJqOB45hyxcj5c/fzT+0OqsNagpkZAwVXKipmz17pK",
                    "JxNV7DFD6kJUmAO4FZIhDZ9yN2FIPtTVuBCsQprkhBJ9nPiuGzsdjZg5teRpRzFmpJBCia1uTFKx",
                    "3ZICd/+shTzHb2uyEkXNMNfG40RiCjEIrvakUpaN/SgbgHtL8vi9SzwyavUOnnvGdQ9Clk8W54TX",
                    "GFRSFFgpeCBGbYCE947DF0RPvi/Ad3dFQwXmnmtOp5FHryPwXxDEBSlfxxF3HBOwPOFR+HU0kaVR",
                    "R4a/WiJFz0ltC92RXCLZFm6XV1aktzsuJMophAP5HUGKRia65m8T8RU0zTch2OiQVlgWUDkzx/cD",
                    "Z9IAJd6imup7lG+0qEDlEUFAiXvZwvtjtcfclOuf0IgWD/2oxYs9kqjQWG4qVMCjLwXXUlCrV4rf",
                    "hF5C00moic7CtGB/2rTtDBYcMbjCf1p0LUrot0NaS3J+rhsD492zQQ46EjB+JCnxfZO6jT5SnEHw",
                    "G/INz3n5sVaaAKO5+f+I4HsBQF7B8yd47PtjhTOMdA1peiNn5iUySqo1kVLIW15CHbyZM7LdYgkO",
                    "CNJ4DeVFpDiYPN9gVMLUfyO/tcJ/gDL0WnAPZfmwEFoLdtPX8I/7dRu/k9Pyhd1VKnv4LIR+UnW9",
                    "abKadpE26FnI0vPc6RASeUGYhYNIEEz9+RASJ4nnDbIlfrhYdo3xDInBztzzOTJ3k2i+GkQCd+rF",
                    "g0gcZHZKPEMuIQvJELLw3Hi1HEQWcB9/CLl2o8gbjC0Lkuh6GAmT5HowtiwJstjYTJ5emKXNjv1d",
                    "2lMzJkastVgilkuCRutmC08ajVw+LAi3eI5hiuNTZFPnFhyPW0AxRGkGBWsB8wgsLYmqVnhrznSN",
                    "5K7n7TTkoBRm+scnrmbeY/mrFHXVogeJqrb9rYoXhp0l4fqOMCtXdb6xVhz2zglU8/LTozR56tNz",
                    "SDW0kxmjd8i0pdHFany9+UtLVHLadS+Vm6bz8BpVVdvA+c6bOZTs9tprek7DVwm/2cxHvvM7zDeY",
                    "32LmAxXNBUG7O/Qy38pO9AIrC3pZaGVhL4usLOplsZXFjQwWI5aU8AeYJfbYyLeCUnHA5U2PvxC1",
                    "SShxQeDhN0eW9wvzlxajRMFwq2C3aiEt9s5gXpiWoriFmoWTkYdumPjxtO2OBm5X+i1DO7yqSK8Y",
                    "+Enc9p0Xmc2tzZSEB/iMtwukcNlh1kHU2v29zFbT5fxyMU6ChTe+zsLleLFMVuNFtAqm4XQeBvPo",
                    "n65p7M/zq38BAAD//wMAUEsDBBQABgAIAAAAIQD63JiBdwEAAPsCAAARAAgBZG9jUHJvcHMvY29y",
                    "ZS54bWwgogQBKKAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMklFPgzAQx99N/A6k71Bg",
                    "UQkBFp1ZfHCJiTMa32p72+qgbdpuOD+9BQaTuAff7nq/+9/132bTr6r09qANlyJHURAiDwSVjIt1",
                    "jl6Wcz9BnrFEMFJKATk6gEHT4vIioyqlUsOTlgq05WA8pyRMSlWONtaqFGNDN1AREzhCuOJK6opY",
                    "l+o1VoRuyRpwHIbXuAJLGLEEN4K+GhTRUZLRQVLtdNkKMIqhhAqENTgKInxiLejKnG1oK7/IituD",
                    "grNoXxzoL8MHsK7roJ60qNs/wm+Lx+f2qj4XjVcUUJExmlpuSygyfApdZHYfn0BtdzwkLqYaiJW6",
                    "mBFdSuPdBt6D1LLm9LtF+3Jj/BYOtdTMOJFR5jAGhmqurHvObsTowNElMXbh3nfFgd0dzk77SzWN",
                    "Gva8+SVF1BJDmh0t7zYE5jmr0s7YvvI6md0v56iIwzj0w8SPk2WUpFc3aRi+N0uO+k+C1XGB/ysm",
                    "Y8VeoPNp/F2LHwAAAP//AwBQSwMEFAAGAAgAAAAhAP1ri1A7AgAAqQgAABIAAAB3b3JkL2ZvbnRU",
                    "YWJsZS54bWy8lNtq4zAQQN8X+g9G741lx7lSp7TZBhaWfSjdD1BkORa1JKNR4uTvV/IlLU0M1UJr",
                    "g7FnpCPpMJ67+6MogwPTwJVMUTTCKGCSqozLXYr+vmxu5ygAQ2RGSiVZik4M0P3q5sddvcyVNBDY",
                    "+RKWgqaoMKZahiHQggkCI1UxaZO50oIY+6l3oSD6dV/dUiUqYviWl9ycwhjjKeow+jMUleecsp+K",
                    "7gWTppkfalZaopJQ8Ap6Wv0ZWq10VmlFGYA9syhbniBcnjFRcgESnGoFKjcje5huRw3KTo9w8ybK",
                    "N8DEDxBfAKaUZ36MaccI7cx3HGB+mEmPgZNgRxQIuvy1k0qTbWlJVk1gTxc0YPd0i6262gjqpSTC",
                    "jlqTkm81bxIVkQpYZHMHUqYIx3iDJ/bp7gSP3ROFbiAtiAbmIO1A3IZzInh56qNQc4A2UXFDiz5+",
                    "IJq7HbYp4Dub2MMWp+gpwjh+2GxQG4ns7jDGD+tzJHZrNdeii4zPEewitOE0n1E7izac8xi7Ztga",
                    "uDDxwgWD4A+rg2cliBwwEuOpNTGxPpyZsZcR3XC9jNg9x08fjczmk8fvMLJWe82ZvmriyuVhguyN",
                    "8hLRLTF+E3Fe9aOIPjIsouN4i3DFMVAWM1sKi6Y8XFkkXmUhVMb0tbrI+ZFlA0Vx8ZvM5klv54uL",
                    "QoIqCQyIeLT/RyvCv2N4i4icifciEhvY/Ge/WPiKaDtn8JvvCjPYP52Db+ufTsdFYcTJ7Gu6RfcC",
                    "q38AAAD//wMAUEsDBBQABgAIAAAAIQC91I2/JwEAAI8CAAAUAAAAd29yZC93ZWJTZXR0aW5ncy54",
                    "bWyU0s1qAjEQAOB7oe8QctesUqUsrkIpll5Koe0DxOyshmYyIRO72qdv3Gp/8OJeQibJfMmEmS12",
                    "6MQHRLbkKzkaFlKAN1Rbv67k2+tycCsFJ+1r7chDJffAcjG/vpq1ZQurF0gpn2SRFc8lmkpuUgql",
                    "Umw2gJqHFMDnzYYi6pTDuFao4/s2DAxh0MmurLNpr8ZFMZVHJl6iUNNYA/dktgg+dfkqgssied7Y",
                    "wCetvURrKdYhkgHmXA+6bw+19T/M6OYMQmsiMTVpmIs5vqijcvqo6GbofoFJP2B8BkyNrfsZ06Oh",
                    "cuYfh6EfMzkxvEfYSYGmfFx7inrlspS/RuTqRAcfxsNl89whFJJF+wlLineRWoaoDsvaOWqfnx5y",
                    "oP610fwLAAD//wMAUEsDBBQABgAIAAAAIQAfsjDRCQ0AAGJ6AAAPAAAAd29yZC9zdHlsZXMueG1s",
                    "1J3fc9u4EcffO9P/gaOn9iGxZNmSnTnfje3Ytad24ouc5rEDkZCFmiRY/ojt++sLgKBEagmKC6Ke",
                    "9h4uloj9EMR3d4ElKfKX316j0PtJ04zx+Gw0+TgeeTT2ecDip7PR98frDycjL8tJHJCQx/Rs9Eaz",
                    "0W+//vlPv7x8yvK3kGaeAMTZp8g/G63zPPl0cJD5axqR7CNPaCw2rngakVx8TJ8OIpI+F8kHn0cJ",
                    "ydmShSx/Ozgcj2cjjUn7UPhqxXz6mftFRONc2R+kNBREHmdrlmQV7aUP7YWnQZJyn2aZOOgoLHkR",
                    "YfEGMzkCoIj5Kc/4Kv8oDkb3SKGE+WSs/orCLeAYBzgEgJnPAhxjphkHwrLGySgOc1xhsreIvo68",
                    "yP90+xTzlCxDQRJD44mj8xRY/l/u7FfhHAH3P9MVKcI8kx/Th1R/1J/UP9c8zjPv5RPJfMYeRWcE",
                    "MWICfnMeZ2wktlCS5ecZI60b1/KP1i1+lte+vmABGx3IPWZ/iI0/SXg2OjyqvrmUPWh8F5L4qfqO",
                    "Zh+uFv/MUxLEYb1DYkv84ftCfrUU+LMRST8szqX9gT6+8t/aUSebT2WrnSES/iu8eVEGldhKV3fc",
                    "f6bBIhcbzkZjuSvx5ffbh5TxVATO2ej0VH+5oBG7YUFA41rDeM0C+mNN4+8ZDbbf/36tnF9/4fMi",
                    "Fn9P53MlW5gFV68+TWQoia0xkYP4RRqooy/YdufK/N8VbKKHrs1+TYnMJ95kF6G6j0IcSousdrTt",
                    "zGLn2FUr1I6m77Wjo/fa0fF77Wj2Xjuav9eOTt5rRwrz39wRiwP6WgYi3A2g7uMYohHNMQQbmmOI",
                    "JTTHECpojiES0ByDo6M5Bj9GcwxuiuDk3Dd5Yc3ZpwZv7+bunyPsuPunBDvu/hnAjrs/4dtx9+d3",
                    "O+7+dG7H3Z+97bj7kzWeWy61vFsRZnE+OMpWnOcxz6mX09fhNBILliqy3PDkpEdTJwfpAFNmNj0R",
                    "D6b5RH3e7yEqSO3n81yWYR5feSv2VKSiNh/acRr/pKGokj0SBILnEJjSvEgNI2Lj0yld0ZTGPnXp",
                    "2O6gIYupFxfR0oFvJuTJGYvGgePhq4hOksLGoUmRr2WQMAdOHRE/5cO7xomz/HDHsuFjJSHeRRGG",
                    "1BHrixsXU6zhtYHCDC8NFGZ4ZaAwwwuDmmauhkjTHI2UpjkaME1zNG6lf7oaN01zNG6a5mjcNG34",
                    "uD2yPFQpvr7qmPQ/d3cZcnlafHA/FuwpJmIBMHy60edMvQeSkqeUJGtPnkZux9aPGbufCx68eY8u",
                    "5rQNydW6XrnIpThqFhfDB7RBcxVcG56j8NrwHAXYhjc8xO7FMlku0G7c1DOLYpm3Bq0i9QraBQmL",
                    "ckE7PNpIPtzDtgFwzdLMWRi0Yx148Be5nJVyush8214O79iWNTysdrOS0+5ppINehtx/dpOGb94S",
                    "moqy7Hkw6ZqHIX+hgTviIk956Wv1kD9UkvQK+asoWZOMqVqpgeg/1VcX1L17kgw+oIeQsNiNblcf",
                    "IsJCz90K4ubx/s575IksM+XAuAFe8DznkTOmPhP4lx90+Vc3HTwXRXD85uhozx2dHlKwS+ZgkilJ",
                    "PHBEEstMFjMnc6ji/Z2+LTlJAze0h5SW97Dk1BFxQaKkXHQ4iC2RF19E/nGwGlK8f5CUyfNCg2m1",
                    "M31ZsfwX9Ydnpy/cc3Iy52uRq1OGanWqrN3hhs/sDdzwWf1RneVbMOlyDg62gRt+sA2cq4O9DEmW",
                    "MeNVT2ueq8OteK6Pd3i9pnk85OmqCN0NYAV0NoIV0NkQ8rCI4szlESuewwNWPNfH69BlFM/BWTTF",
                    "+1vKAmdiKJgrJRTMlQwK5koDBXMqwPCbamqw4XfW1GDDb68pYY6WADWYKz9zOv07ujBTg7nyMwVz",
                    "5WcK5srPFMyVn00/e3S1Eotgd1NMDenK52pIdxNNnNMo4SlJ3xwhr0L6RByc0yxpDylfyd8j8Li8",
                    "79oBUp5WDh0utkucK5F/0KWzrkmWgxOPJAw5d3QKaztJKMvmLWJms4eQ+HTNw4Cmhn6YbUVdukiI",
                    "r89ggythvc4I3rGnde4t1psT4XXMbLzXsiqMG2b7d9g2TrPDDrN7GrAiqjoKf2cwm/Y3Vh7dMK5+",
                    "FdJhvJ2xG5bHPS3hPmf7Lber0YblvKcl3OdJT0sVWw3LLh/+TNLnVkeYd/nPppYyON+8y4s2xq27",
                    "7XKkjWWbC867vKgRKt6578sT6VCdfjFjtu8XPGZ7TBSZKZhwMlN6x5UZ0RVg3+hPJmdQTNJU+9vc",
                    "WABytVqs9sqcvxe8PKXduBbT//dOt2KBEmfUa+VM+1/TaWQZ8zj2TjdmRO+8Y0b0TkBmRK9MZDRH",
                    "pSQzpXduMiN6JykzAp2t4IyAy1bQHpetoL1NtoIUm2w1YBVgRvReDpgR6ECFCHSgDlgpmBGoQAXm",
                    "VoEKKehAhQh0oEIEOlDhAgwXqNAeF6jQ3iZQIcUmUCEFHagQgQ5UiEAHKkSgAxUi0IFqubY3mlsF",
                    "KqSgAxUi0IEKEehAVevFAYEK7XGBCu1tAhVSbAIVUtCBChHoQIUIdKBCBDpQIQIdqBCBClRgbhWo",
                    "kIIOVIhABypEoAO1/BWefaBCe1ygQnubQIUUm0CFFHSgQgQ6UCECHagQgQ5UiEAHKkSgAhWYWwUq",
                    "pKADFSLQgQoR6EBVF+UGBCq0xwUqtLcJVEixCVRIQQcqRKADFSLQgQoR6ECFCHSgQgQqUIG5VaBC",
                    "CjpQIQIdqBDR5Z/6UqDpDvQJ/qyn8Wb2/peudKe+1X/lXEdN+6OqXplZ/W/Tv+D82Wv9Td5U1Rv9",
                    "IGwZMq5OURsuX9e56tYD1MXKr5fdP36p0wc+j0j/TEBdHgXwo76W4JzKUZfL1y1BkXfU5el1S7Dq",
                    "POrKvnVLMA0edSVdFZfVzR9iOgLGXWmmZjwxmHdl65o5HOKuHF0zhCPclZlrhnCAu/JxzfDYk8l5",
                    "1/q45zjNNvdxAkKXO9YIczOhyy2hVlU6hoHRVzQzoa96ZkJfGc0ElJ5GDF5YMwqtsBllJzUMM6zU",
                    "9oFqJmClhgQrqQHGXmqIspYaouykhokRKzUkYKW2T85mgpXUAGMvNURZSw1RdlLDqQwrNSRgpYYE",
                    "rNQDJ2Qjxl5qiLKWGqLspIaLO6zUkICVGhKwUkOCldQAYy81RFlLDVF2UoMqGS01JGClhgSs1JBg",
                    "JTXA2EsNUdZSQ1SX1OosSkNqlMI1c9wirGaIm5BrhrjkXDO0qJZq1pbVUo1gWS1BrSrNcdVSXTQz",
                    "oa96ZkJfGc0ElJ5GDF5YMwqtsBllJzWuWmqT2j5QzQSs1LhqySg1rlrqlBpXLXVKjauWzFLjqqU2",
                    "qXHVUpvU9snZTLCSGlctdUqNq5Y6pcZVS2apcdVSm9S4aqlNaly11Cb1wAnZiLGXGlctdUqNq5bM",
                    "UuOqpTapcdVSm9S4aqlNaly1ZJQaVy11So2rljqlxlVLZqlx1VKb1LhqqU1qXLXUJjWuWjJKjauW",
                    "OqXGVUudUuOqpXthwhw8HWkRkTT3HD5KTfHu3KK8qzTlaX/gwUvjfU5yD+p1aaJ9Lo5UPtK79iOj",
                    "oHykqQaqhrfB5r1L0lj2x9OvpNJfq27ri6zlHpUh3JW/Fvvy9cOYDLu6LkRfaUCTNCUrnqTiT2mw",
                    "u2vDs1dVV7aOU7XWQ7sdsbJdY7w6e55LR+3otXRkEneNUunrpg6e6uDd10PRn2VYvrNM/HEbBwLw",
                    "ot+AVfY0eCUlSmy/pGF4T8rWPDE3DekqL7dOxuon/Tvbl+UD5Yz2qUqvRsBBszPlR/1iMsN4l4+Y",
                    "19f9DWO+YHEokghpGXB1G8rQsTb3rhEyfpGJwVHRtdtD+fbCJw76p78uh5aInX2Vga423Tze3/k8",
                    "Lp+oJr3/J9MNZUZqAi5Juht6QoqMSZ9Qzcbji4v5ZKJTZ1K6TXIR1BxCtZOPVdaPNPvjbFQ+bSIh",
                    "vjwcVTT5MjtLnPyv4TG25huHsgVUHmdnf7Adhmy9GS4/pERlJt2eFLl6VP+KhWLrlfpPhxZZqkQq",
                    "/q2M5YDIxgnPhIdN9IrC1GByMtWqmFoczqsVganFdFbdZWdqcXR8oofL1OL46HRPT2dHlf+YWsyn",
                    "h3t6enJY3ZHSMWB7ejoZj+f7BnV8erqnr5PJ6XhPZyeHJ9XbF41NpvPqXhdjk6PZsequTHbKW6TP",
                    "6ZdNtr1zUt7/VqSsnBq3r3Z8ZBHNvC/0xfvGI6KWOOpdk43mfrb5KJuWPVNOXPWtHjrbN09O9FDU",
                    "3zxZfdd486R6v2R5MNULJfvM8Hszo8xgkgGTo7dJbjDv6QxgTHT/F+NrlXcsRWlMVxsJWqeaXTVk",
                    "o+YjPlVHdmat+jqwrlfbLjbCDlkEWYgfZzwkWUPg7VelwvrzjoqHG11r72etphFH4WAaqFY5RENP",
                    "t/TKptto2RHGsJjuJRRSpf9VSaq/sl//AwAA//8DAFBLAwQUAAYACAAAACEAVBl3sHgBAADPAgAA",
                    "EAAIAWRvY1Byb3BzL2FwcC54bWwgogQBKKAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACc",
                    "UsFO3DAQvVfqP0S5s85yoAjNGlWLEIe2rLQBziN7klh1bMs2iPx9x2RJg7iR08wbz/N7L4br19FW",
                    "LxST8W5XbzdNXZFTXhvX7+qH9vbssq5SRqfReke7eqJUX8vv3+AQfaCYDaWKKVza1UPO4UqIpAYa",
                    "MW147HjS+Thi5jb2wnedUXTj1fNILovzprkQ9JrJadJnYSGsZ8arl/xVUu1V0Zce2ykwn4SWxmAx",
                    "k/xTNu1G+zyCWFBofUbbmpHkluGlgQP2lAo2F/Dko07yHMRcwH7AiCpzfnJ7AWLVws8QrFGYOVj5",
                    "26jok+9ydf+mtirrINZHgB0cST1HkyfZgFi38Mu4WcZcsKyIfcQwnLQtHRwVWtqzd9mhTQTiPwB7",
                    "PwZ0kzxYdCZNifWekHLB3/QQWn9T4jitfgRXXp9MHo4BVdH0Y+16NYAjo6TZxqJkAeCOf0u0hZ53",
                    "XU/6/cznQcnxcX6fHPGm4e8tuHeM7S8PR/4DAAD//wMAUEsBAi0AFAAGAAgAAAAhAN+k0mxaAQAA",
                    "IAUAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVzXS54bWxQSwECLQAUAAYACAAAACEA",
                    "HpEat+8AAABOAgAACwAAAAAAAAAAAAAAAACTAwAAX3JlbHMvLnJlbHNQSwECLQAUAAYACAAAACEA",
                    "1mSzUfQAAAAxAwAAHAAAAAAAAAAAAAAAAACzBgAAd29yZC9fcmVscy9kb2N1bWVudC54bWwucmVs",
                    "c1BLAQItABQABgAIAAAAIQBz+DSS3QIAAK4KAAARAAAAAAAAAAAAAAAAAOkIAAB3b3JkL2RvY3Vt",
                    "ZW50LnhtbFBLAQItABQABgAIAAAAIQB6ti0EGAYAAI8aAAAVAAAAAAAAAAAAAAAAAPULAAB3b3Jk",
                    "L3RoZW1lL3RoZW1lMS54bWxQSwECLQAUAAYACAAAACEAaaXgAR0EAADkCwAAEQAAAAAAAAAAAAAA",
                    "AABAEgAAd29yZC9zZXR0aW5ncy54bWxQSwECLQAUAAYACAAAACEA+tyYgXcBAAD7AgAAEQAAAAAA",
                    "AAAAAAAAAACMFgAAZG9jUHJvcHMvY29yZS54bWxQSwECLQAUAAYACAAAACEA/WuLUDsCAACpCAAA",
                    "EgAAAAAAAAAAAAAAAAA6GQAAd29yZC9mb250VGFibGUueG1sUEsBAi0AFAAGAAgAAAAhAL3Ujb8n",
                    "AQAAjwIAABQAAAAAAAAAAAAAAAAApRsAAHdvcmQvd2ViU2V0dGluZ3MueG1sUEsBAi0AFAAGAAgA",
                    "AAAhAB+yMNEJDQAAYnoAAA8AAAAAAAAAAAAAAAAA/hwAAHdvcmQvc3R5bGVzLnhtbFBLAQItABQA",
                    "BgAIAAAAIQBUGXeweAEAAM8CAAAQAAAAAAAAAAAAAAAAADQqAABkb2NQcm9wcy9hcHAueG1sUEsF",
                    "BgAAAAALAAsAwQIAAOIsAAAAAA=="
                ]
        },
        {
            "filename": "docejemplo2.pdf",
            "content":
                [
                   "JVBERi0xLjMKJcTl8uXrp/Og0MTGCjQgMCBvYmoKPDwgL0xlbmd0aCA1IDAgUiAvRmlsdGVyIC9G",
                   "bGF0ZURlY29kZSA+PgpzdHJlYW0KeAGNj7kOwjAQRHt/xXBvOBw7dkzSgmjoIm1HqCJRIKWI8v8S",
                   "PrBokYudHe8+eyZ0mFBeZ41hhopnHrylZGVTH0QrjUPdWulaDCMujDrN+mK0k0opC9c4wSNK5goa",
                   "/MIDtChw8ijQMgoDWhWerUHraFjQJhh+Yhuq73fpQlD/W+qLaPq1PLXPvGxkzCFzj1HU4WnxBN9x",
                   "4xj2/2Rno2VTqXNIhm8yEZNR+BC/E7L7AMbOPkUKZW5kc3RyZWFtCmVuZG9iago1IDAgb2JqCjE3",
                   "OQplbmRvYmoKMiAwIG9iago8PCAvVHlwZSAvUGFnZSAvUGFyZW50IDMgMCBSIC9SZXNvdXJjZXMg",
                   "NiAwIFIgL0NvbnRlbnRzIDQgMCBSIC9NZWRpYUJveCBbMCAwIDU5NS4yOSA4NDEuODldCj4+CmVu",
                   "ZG9iago2IDAgb2JqCjw8IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIC9Db2xvclNwYWNlIDw8IC9D",
                   "czEgNyAwIFIgPj4gL0ZvbnQgPDwgL1RUMiA5IDAgUgo+PiA+PgplbmRvYmoKMTAgMCBvYmoKPDwg",
                   "L0xlbmd0aCAxMSAwIFIgL04gMyAvQWx0ZXJuYXRlIC9EZXZpY2VSR0IgL0ZpbHRlciAvRmxhdGVE",
                   "ZWNvZGUgPj4Kc3RyZWFtCngBnZZ3VFPZFofPvTe90BIiICX0GnoJINI7SBUEUYlJgFAChoQmdkQF",
                   "RhQRKVZkVMABR4ciY0UUC4OCYtcJ8hBQxsFRREXl3YxrCe+tNfPemv3HWd/Z57fX2Wfvfde6AFD8",
                   "ggTCdFgBgDShWBTu68FcEhPLxPcCGBABDlgBwOFmZgRH+EQC1Py9PZmZqEjGs/buLoBku9ssv1Am",
                   "c9b/f5EiN0MkBgAKRdU2PH4mF+UClFOzxRky/wTK9JUpMoYxMhahCaKsIuPEr2z2p+Yru8mYlybk",
                   "oRpZzhm8NJ6Mu1DemiXho4wEoVyYJeBno3wHZb1USZoA5fco09P4nEwAMBSZX8znJqFsiTJFFBnu",
                   "ifICAAiUxDm8cg6L+TlongB4pmfkigSJSWKmEdeYaeXoyGb68bNT+WIxK5TDTeGIeEzP9LQMjjAX",
                   "gK9vlkUBJVltmWiR7a0c7e1Z1uZo+b/Z3x5+U/09yHr7VfEm7M+eQYyeWd9s7KwvvRYA9iRamx2z",
                   "vpVVALRtBkDl4axP7yAA8gUAtN6c8x6GbF6SxOIMJwuL7OxscwGfay4r6Df7n4Jvyr+GOfeZy+77",
                   "VjumFz+BI0kVM2VF5aanpktEzMwMDpfPZP33EP/jwDlpzcnDLJyfwBfxhehVUeiUCYSJaLuFPIFY",
                   "kC5kCoR/1eF/GDYnBxl+nWsUaHVfAH2FOVC4SQfIbz0AQyMDJG4/egJ961sQMQrIvrxorZGvc48y",
                   "ev7n+h8LXIpu4UxBIlPm9gyPZHIloiwZo9+EbMECEpAHdKAKNIEuMAIsYA0cgDNwA94gAISASBAD",
                   "lgMuSAJpQASyQT7YAApBMdgBdoNqcADUgXrQBE6CNnAGXARXwA1wCwyAR0AKhsFLMAHegWkIgvAQ",
                   "FaJBqpAWpA+ZQtYQG1oIeUNBUDgUA8VDiZAQkkD50CaoGCqDqqFDUD30I3Qaughdg/qgB9AgNAb9",
                   "AX2EEZgC02EN2AC2gNmwOxwIR8LL4ER4FZwHF8Db4Uq4Fj4Ot8IX4RvwACyFX8KTCEDICAPRRlgI",
                   "G/FEQpBYJAERIWuRIqQCqUWakA6kG7mNSJFx5AMGh6FhmBgWxhnjh1mM4WJWYdZiSjDVmGOYVkwX",
                   "5jZmEDOB+YKlYtWxplgnrD92CTYRm40txFZgj2BbsJexA9hh7DscDsfAGeIccH64GFwybjWuBLcP",
                   "14y7gOvDDeEm8Xi8Kt4U74IPwXPwYnwhvgp/HH8e348fxr8nkAlaBGuCDyGWICRsJFQQGgjnCP2E",
                   "EcI0UYGoT3QihhB5xFxiKbGO2EG8SRwmTpMUSYYkF1IkKZm0gVRJaiJdJj0mvSGTyTpkR3IYWUBe",
                   "T64knyBfJQ+SP1CUKCYUT0ocRULZTjlKuUB5QHlDpVINqG7UWKqYup1aT71EfUp9L0eTM5fzl+PJ",
                   "rZOrkWuV65d7JU+U15d3l18unydfIX9K/qb8uAJRwUDBU4GjsFahRuG0wj2FSUWaopViiGKaYoli",
                   "g+I1xVElvJKBkrcST6lA6bDSJaUhGkLTpXnSuLRNtDraZdowHUc3pPvTk+nF9B/ovfQJZSVlW+Uo",
                   "5RzlGuWzylIGwjBg+DNSGaWMk4y7jI/zNOa5z+PP2zavaV7/vCmV+SpuKnyVIpVmlQGVj6pMVW/V",
                   "FNWdqm2qT9QwaiZqYWrZavvVLquNz6fPd57PnV80/+T8h+qwuol6uPpq9cPqPeqTGpoavhoZGlUa",
                   "lzTGNRmabprJmuWa5zTHtGhaC7UEWuVa57VeMJWZ7sxUZiWzizmhra7tpy3RPqTdqz2tY6izWGej",
                   "TrPOE12SLls3Qbdct1N3Qk9LL1gvX69R76E+UZ+tn6S/R79bf8rA0CDaYItBm8GooYqhv2GeYaPh",
                   "YyOqkavRKqNaozvGOGO2cYrxPuNbJrCJnUmSSY3JTVPY1N5UYLrPtM8Ma+ZoJjSrNbvHorDcWVms",
                   "RtagOcM8yHyjeZv5Kws9i1iLnRbdFl8s7SxTLessH1kpWQVYbbTqsPrD2sSaa11jfceGauNjs86m",
                   "3ea1rakt33a/7X07ml2w3Ra7TrvP9g72Ivsm+zEHPYd4h70O99h0dii7hH3VEevo4bjO8YzjByd7",
                   "J7HTSaffnVnOKc4NzqMLDBfwF9QtGHLRceG4HHKRLmQujF94cKHUVduV41rr+sxN143ndsRtxN3Y",
                   "Pdn9uPsrD0sPkUeLx5Snk+cazwteiJevV5FXr7eS92Lvau+nPjo+iT6NPhO+dr6rfS/4Yf0C/Xb6",
                   "3fPX8Of61/tPBDgErAnoCqQERgRWBz4LMgkSBXUEw8EBwbuCHy/SXyRc1BYCQvxDdoU8CTUMXRX6",
                   "cxguLDSsJux5uFV4fnh3BC1iRURDxLtIj8jSyEeLjRZLFndGyUfFRdVHTUV7RZdFS5dYLFmz5EaM",
                   "Wowgpj0WHxsVeyR2cqn30t1Lh+Ps4grj7i4zXJaz7NpyteWpy8+ukF/BWXEqHhsfHd8Q/4kTwqnl",
                   "TK70X7l35QTXk7uH+5LnxivnjfFd+GX8kQSXhLKE0USXxF2JY0muSRVJ4wJPQbXgdbJf8oHkqZSQ",
                   "lKMpM6nRqc1phLT4tNNCJWGKsCtdMz0nvS/DNKMwQ7rKadXuVROiQNGRTChzWWa7mI7+TPVIjCSb",
                   "JYNZC7Nqst5nR2WfylHMEeb05JrkbssdyfPJ+341ZjV3dWe+dv6G/ME17msOrYXWrlzbuU53XcG6",
                   "4fW+649tIG1I2fDLRsuNZRvfbore1FGgUbC+YGiz7+bGQrlCUeG9Lc5bDmzFbBVs7d1ms61q25ci",
                   "XtH1YsviiuJPJdyS699ZfVf53cz2hO29pfal+3fgdgh33N3puvNYmWJZXtnQruBdreXM8qLyt7tX",
                   "7L5WYVtxYA9pj2SPtDKosr1Kr2pH1afqpOqBGo+a5r3qe7ftndrH29e/321/0wGNA8UHPh4UHLx/",
                   "yPdQa61BbcVh3OGsw8/rouq6v2d/X39E7Ujxkc9HhUelx8KPddU71Nc3qDeUNsKNksax43HHb/3g",
                   "9UN7E6vpUDOjufgEOCE58eLH+B/vngw82XmKfarpJ/2f9rbQWopaodbc1om2pDZpe0x73+mA050d",
                   "zh0tP5v/fPSM9pmas8pnS8+RzhWcmzmfd37yQsaF8YuJF4c6V3Q+urTk0p2usK7ey4GXr17xuXKp",
                   "2737/FWXq2euOV07fZ19ve2G/Y3WHruell/sfmnpte9tvelws/2W462OvgV95/pd+y/e9rp95Y7/",
                   "nRsDiwb67i6+e/9e3D3pfd790QepD14/zHo4/Wj9Y+zjoicKTyqeqj+t/dX412apvfTsoNdgz7OI",
                   "Z4+GuEMv/5X5r0/DBc+pzytGtEbqR61Hz4z5jN16sfTF8MuMl9Pjhb8p/rb3ldGrn353+71nYsnE",
                   "8GvR65k/St6ovjn61vZt52To5NN3ae+mp4req74/9oH9oftj9MeR6exP+E+Vn40/d3wJ/PJ4Jm1m",
                   "5t/3hPP7CmVuZHN0cmVhbQplbmRvYmoKMTEgMCBvYmoKMjYxMgplbmRvYmoKNyAwIG9iagpbIC9J",
                   "Q0NCYXNlZCAxMCAwIFIgXQplbmRvYmoKMyAwIG9iago8PCAvVHlwZSAvUGFnZXMgL01lZGlhQm94",
                   "IFswIDAgNTk1LjI5IDg0MS44OV0gL0NvdW50IDEgL0tpZHMgWyAyIDAgUiBdID4+CmVuZG9iagox",
                   "MiAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMyAwIFIgPj4KZW5kb2JqCjkgMCBvYmoK",
                   "PDwgL1R5cGUgL0ZvbnQgL1N1YnR5cGUgL1RydWVUeXBlIC9CYXNlRm9udCAvQlRYV0pDK0NhbGli",
                   "cmkgL0ZvbnREZXNjcmlwdG9yCjEzIDAgUiAvVG9Vbmljb2RlIDE0IDAgUiAvRmlyc3RDaGFyIDMz",
                   "IC9MYXN0Q2hhciA0NCAvV2lkdGhzIFsgNjE1IDUyNyA0MjMKNTI1IDc5OSA0OTggNTI1IDMzNSAy",
                   "MjYgMjM5IDUyNSAyMjkgXSA+PgplbmRvYmoKMTQgMCBvYmoKPDwgL0xlbmd0aCAxNSAwIFIgL0Zp",
                   "bHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBXZHLasMwEEX3+got00Ww7LxaMIaSEvCiD+r2",
                   "A2RpHAS1LGRl4b/vHTVNoYuzOLoz9mhUHNun1rski7c4mY6SHJy3kebpEg3Jns7Oi7KS1pl0tXxm",
                   "Rh1EgeZumRONrR8mWddCyuIdLXOKi1w92qmnOz57jZai82e5+jx2+aS7hPBFI/kklWgaaWnA5551",
                   "eNEjySK3rluL3KVlja6/io8lkMRE6Ch/RjKTpTloQ1H7M4laqaY+nRpB3v6LcJM8fj9cS6uyqRml",
                   "tttG1FUFBUrtB9YNFEA3rFsoUOqwY91BAVLLuocCaE4PUAAlTu+hAL35Rw9QoFSlONVQgGLN2kMB",
                   "inNqoACpybf6HZ8vyA9xW5y5xIid5dfK6+Q1OU+3Bw1T4LVkvgHTQZP3CmVuZHN0cmVhbQplbmRv",
                   "YmoKMTUgMCBvYmoKMjk5CmVuZG9iagoxMyAwIG9iago8PCAvVHlwZSAvRm9udERlc2NyaXB0b3Ig",
                   "L0ZvbnROYW1lIC9CVFhXSkMrQ2FsaWJyaSAvRmxhZ3MgNCAvRm9udEJCb3ggWy01MDMgLTMxMyAx",
                   "MjQwIDEwMjZdCi9JdGFsaWNBbmdsZSAwIC9Bc2NlbnQgOTUyIC9EZXNjZW50IC0yNjkgL0NhcEhl",
                   "aWdodCA2MzIgL1N0ZW1WIDAgL1hIZWlnaHQKNDY0IC9BdmdXaWR0aCA1MjEgL01heFdpZHRoIDEz",
                   "MjggL0ZvbnRGaWxlMiAxNiAwIFIgPj4KZW5kb2JqCjE2IDAgb2JqCjw8IC9MZW5ndGggMTcgMCBS",
                   "IC9MZW5ndGgxIDE4NzI4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4AdV7eVhTZ/r2",
                   "e04SEgiBhB0iJBgBNSCuCGohssmiAko0oCirosUNxF1LtSutbae7Xe3eKV0OUSt2b6fTbbqvM92m",
                   "nelMV7tN2+m0Vb77PU8eqp1f5/vju77rml/Ife77ed7lvO/zbocENnb3dgir6BMGMbFtTct6ob8K",
                   "mkET2zZtdOumyCwVwvTAivUr15CdDbJ5V3ZtXUF2wZ1CRC/t7GhpJ1v8BM7rhINsZSp4TOeajVvI",
                   "LpAVTO1a1xZKL7gI9qg1LVtC9xdvw3avbVnTQfkrLdJe390RSlcCqO7TWZQohkMvaSohn07SsBln",
                   "iETFIixCFXaRK84WIiZPnSaMyCrTw6ZMuSH82mPLo2d9K5LlbYS4/9Mdz0p+7fL+FT/+cKwv/DNL",
                   "Hsxw1EAvlDNfd+xNISL2//jDD/vDPzv5tshkGww3zF6oPqU+IfKFS30yxO+IfPVN4Vf/BH4D/McQ",
                   "vw5+Dfar4FfAL4NfAj8Mfgj8IPgB4RdG9S0xFagHDCOqHdbNwKuASZyKmhRhRXlFxKmPiVKgHdgI",
                   "XAqYkPchpN2MGhXhVs84GJ6kVLmH1D0sdrM4nUUfi9NY7GKxk8UOFttZbGOxlcUWFptZbGLRy2Ij",
                   "ix4WG1isZ7GOxVoWa1h0sTiVxWoWq1h0sljJYgWLDhbtLNpYtLJoYdHMYjmLZSyaWCxlsYRFI4sG",
                   "FgEWi1ksYuFnUc9iIYsFLOpY1LKoYTGfxTwWc1lUs6hiUcmigsUcFuUsyliUsihhUcxiNgsfiyIW",
                   "hSxOYTGLxUwWM1gUsMhnMZ1FHotpLKaymMJiMotJLCayyGUxgUUOi2wWXhbjWYxjMZZFFotMFhks",
                   "xrDwsBjNIp2Fm4WLRRqLVBajWDhZpLBIZpHEIpFFAot4FnEsYlnEsHCwsLOIZhHFwsYikoWVRQSL",
                   "cBYWFmYWYSxMLIwsDCxUFgoLERLKMIvjLI6x+InFjyx+YPEvFt+z+CeL71h8y+IbFv9g8TWLr1h8",
                   "yeILFp+zOMriMxafsviExccsPmLxIYu/s/gbiw9Y/JXFX1i8z+I9Fn9m8S6Ld1i8zeItFm+y+BOL",
                   "P7J4g8XrLF5j8SqLV1i8zOIlFi+yeIHF8yyeY/Esiz+weIbF0yyeYvEkiydY/J7F4yx+x+IxFo+y",
                   "eITFwyweYvEgiwdY3M/iPhZHWAyxOMziXhaHWBxkcYBFkMUgC43FPSzuZnEXiztZDLC4g8VvWdzO",
                   "4jYWt7K4hcXNLG5icSOLG1jsZ3E9i+tYXMviGhZXs7iKxT4WV7K4gsXlLC5jcSmLS1hczOI3LC5i",
                   "cSGLC1jsZXE+i/NY9LM4l8U5LM5mcRaLM1mcwWIPi90sTmfRx+I0FrtY7GSxg8V2FttYbGWxhcVm",
                   "FptY9LLYyKKHRTeLDSzWs1jHYi2LNSy6WJzKYjWLVSw6WaxksYJFB4t2Fm0sWlm0sGhmsZzFMhZN",
                   "LJayWMKikUUDiwCLxSwWsfCzqGexkMUCFrUsaljMZzGXRTWLKhaVLCpYzGFRzqKMRSmLkgPyaXlI",
                   "PSOYVujCM3MwLR60m6zTg2kzYPWRdRrRrmBaJJw7ydpBtJ1oG9HWYOpsZNkSTC0BbSbaRNRLaRvJ",
                   "6iHqJueGYGoxCqwnWke0lrKsIeoiOjU4qgw5VxOtIuokWkm0IjiqFFk6yGonaiNqJWohaiZaTrSM",
                   "yjWRtZRoCVEjUQNRgGgx0SIiP1E90UKiBUR1RLVENUTzieYRzSWqJqoKOivRh0qiiqCzCtYcovKg",
                   "sxpWWdA5F1RKVEJUTGmzqZyPqIjKFRKdQjSLcs4kmkHFC4jyiaYT5RFNo8qmEk2hWiYTTSKaSJXl",
                   "Ek2gcjlE2UReovFE44jGEmVR1ZlEGVTnGCIP0WiqOp3ITeVcRGlEqUSjiJxEKcGU+QhWMlFSMKUG",
                   "ViJRAjnjieLIGUsUQ+SgNDtRNDmjiGxEkZRmJYogCqc0C5GZKCyYXIu7m4LJdSAjkYGcKlkKkdBJ",
                   "GSY6rmdRjpH1E9GPRD9Q2r/I+p7on0TfEX0bTKp3DSnfBJMWgv5B1tdEXxF9SWlfkPU50VGizyjt",
                   "U6JPyPkx0UdEHxL9nbL8jawPyPorWX8hep/oPUr7M9G75HyH6G2it4jepCx/IuuPRG8EExejK68H",
                   "ExeBXiN6lZyvEL1M9BLRi5TlBaLnyfkc0bNEfyB6hrI8TfQUOZ8keoLo90SPE/2Ocj5G1qNEjxA9",
                   "TGkPET1IzgeI7ie6j+gI0RDlPEzWvUSHiA4SHQgmFKHTwWDCEtAgkUZ0D9HdRHcR3Uk0QHRHMAG7",
                   "vvJbquV2otso7VaiW4huJrqJ6EaiG4j2E11PlV1HtVxLdA2lXU10FdE+oiupwBVkXU50GdGllHYJ",
                   "1XIx0W8o7SKiC4kuINpLdD7lPI+sfqJzic4hOpvorGB8C/p+ZjC+FXQG0Z5g/ApYu4lOD8b7YfUF",
                   "43HYKKcF4/NAu4h2UvEdVG470bZgfDuybKXiW4g2E20i6iXaSNRDVXdT8Q1E64PxbahlHVW2lnKu",
                   "IeoiOpVoNdEqKtdJtJJatoKKdxC1U842olaiFqJmouVEy6jTTdSypURLqNONVHUD3ShAtJiau4hu",
                   "5Kda6okWEi0gqgvG+dCx2mCcDGtNME4u2PnBuD2gecG4HNBcylJNVBWMw4OEUklWBdEccpYH43Yh",
                   "rSwYdzaoNBh3GqgkGNcHKg7GlINmE/mIiogKgzF4LlBOIWtW0NEAaybRjKBDrqMCovygYw6s6UFH",
                   "AJQXdDSCplHaVKIpQUc2nJMp56SgQ3ZsYtAhN6RcoglUPIfukE3kpcrGE42jysYSZRFlEmUEHTJK",
                   "Y4g8VOdoqjOdKnNTLS6iNCqXSjSKyEmUQpQctDehzqSgfRkoMWhfDkogiieKI4oliqECDipgJ2c0",
                   "URSRjSiSclopZwQ5w4ksRGaiMMppopxGchqIVCKFSPiGo1tdEsej21zHottdP0H/CPwA/Au+7+H7",
                   "J/Ad8C3wDfz/AL5G2lewvwS+AD4HjsL/GfAp0j6B/THwEfAh8Peola6/RXW6PgD+CvwFeB++98B/",
                   "Bt4F3oH9Nvgt4E3gT8Afbae63rBNcr0Ofs3W5XrVlul6BXgZ+iWb1/Ui8ALwPNKfg+9Z2xrXH6Cf",
                   "gX4a+inbateTtlWuJ2ydrt/bVroeR9nfob7HgEcB3/AjuD4MPAQ8GLnB9UBkt+v+yB7XfZEbXUeA",
                   "IeAw/PcCh5B2EGkH4AsCg4AG3GPd6rrbus11l3WH607rTteAdZfrDuC3wO3AbcCtwC3WHNfN4JuA",
                   "G1HmBvB+66mu66Gvg74WuAb6atR1Ferah7quhO8K4HLgMuBS4BLgYpT7Deq7KGK+68KIGtcFEStd",
                   "eyNucZ0fcZvrTEOG6wxDvmuPku/a7e/znz7Q5z/Nv9O/a2Cn37pTse507qzeuX3nwM63dvpiwiJ2",
                   "+Lf5tw9s82/1b/ZvGdjsv089S6xQz/TN8m8a6PUbe+N6N/YavulVBnqV0l5lYq+iil57r7vXELnR",
                   "3+3vGej2i+7a7r5urds4U+t+r1sV3UrE0PAjB7qdaeVg345um718g3+df/3AOv/aFWv8q9HAVfkr",
                   "/Z0DK/0r8tv9HQPt/rb8Vn9LfrN/eX6Tf9lAk39pfqN/yUCjvyE/4F+M/Ivy6/3+gXr/wvw6/4KB",
                   "On9N/nz/fPjn5Vf75w5U+6vyK/yVAxX+Ofnl/jJ0Xoyyj3KPMthlA+aPQkuEUyme6PQ533N+6TQK",
                   "p+Z8xGmIiU5xpajjopOVkppkZV3yackXJhuik15IUn1J47LLoxNfSPxz4heJxlhf4rgJ5SLBnuBO",
                   "MMTLviXMq5d9O5BQVEo8aZreV1eCJ7M8Ol6JjnfFq2VfxCtnCYPiVvAdkh1ksKDMQSXeVW54UP9a",
                   "ySQU5SJR760esogF1ZqldommnKNlLJRXX12jFnaOJvyNSwKDinJBw6CiltRrcdV1jWSfuXevSC2u",
                   "1lIXBoKG/ftTixuqtT6pfT5dD0stkKXBu6ynt8cb8J0iHO85vnQY4h+2v2BXo6OV6OjhaNUXjcZH",
                   "R7miVHkZjjL4oiZNL4+2uWyqvAzbDAk+GzwylFmRtfXl0VaXVfUXWWusqs9aVFLus+ZMLP+3fh6Q",
                   "/aQ7ezcu6/FCbvTqb1gNSq808UIK3j0bYcsfEGwhU379RdmQb3kPXno1VP2vF/lfkKL8L2jjf3kT",
                   "BwWWSGD2sHoGvsvcA+wGTgf6gNOAXcBOYAewHdgGbAW2AJuBTUAvsBHoATYA64F1wFpgDdAFnAqs",
                   "BlYBncBKYAXQAbQDbUAr0AI0A8uBZUATsBRYAjQCDUAAWAwsAvxAPbAQWADUAbVADTAfmAfMBaqB",
                   "KqASqADmAOVAGVAKlADFwGzABxQBhcApwCxgJjADKADygelAHjANmApMASYDk4CJQC4wAcgBsgEv",
                   "MB4YB4wFsoBMIAMYA3iA0UA64AZcQBqQCowCnEAKkAwkAYlAAhAPxAGxQAzgAOxANBAF2IBIwApE",
                   "AOGABTADYYAJMM4extUAqIACCNGuwKccB44BPwE/Aj8A/wK+B/4JfAd8C3wD/AP4GvgK+BL4Avgc",
                   "OAp8BnwKfAJ8DHwEfAj8Hfgb8AHwV+AvwPvAe8CfgXeBd4C3gbeAN4E/AX8E3gBeB14DXgVeAV4G",
                   "XgJeBF4AngeeA54F/gA8AzwNPAU8CTwB/B54HPgd8BjwKPAI8DDwEPAg8ABwP3AfcAQYAg4D9wKH",
                   "gIPAASAIDAIacA9wN3AXcCcwANwB/Ba4HbgNuBW4BbgZuAm4EbgB2A9cD1wHXAtcA1wNXAXsA64E",
                   "rgAuBy4DLgUuAS4GfgNcBFwIXADsBc4HzgP6gXOBc4CzgbOAM0X77D7lDKg9wG7gdKAPOA3YBewE",
                   "dgDbgW3AVmALsBnYBPQCG4EeoBvYAKwH1gFrgTVAF3AqsBpYBXQCK4EVQAfQDrQBrUAL0AwsB5YB",
                   "TcBSYAnQCDQAAWAxsAjwA/XAQmABUAvUAPOBuUA1UAVUAhXAHKAcKANKgRLR/l++Tf+3N6/hv72B",
                   "/+XtE/KxbOTBTDY2afky/LmT+Tohjl9CfxwVutaK1aJH9OHnLLFXXCIeFm+JVrEHap/YL24VvxWa",
                   "eFQ8Ld44qdT/o3F8q2mNiDQcFmEiVojhH4aPHr8VGDJFneC5BFas0f2zZ9g+/PkvfJ8fv2TYfnwo",
                   "LEZE6GVt6suo7R/KseEfcOSGCdtwnrTVs6Gj9Tt9Zb7u+D3HbzupA7WiTjSKJWKpaBLNogX9bxed",
                   "YhUic6roEmvEWt1ai7SV0CtgLUcubC+6/jnXOrFerBPdYqPoFZvwsx66J2TJtA263Ss242eL2Cq2",
                   "ie1ih9gZum7WPTuQsk33bkHKLnEaRuZ0sVtXzOTZI84QZ2LUzhbniHMxYr9unTuSq1+cJ87HOF8g",
                   "LhS/pveelHKRuEj8RlyM+XCpuExcLq7EvLhaXPML7xW6/ypxnbgec0aWuAye63V1ubhCPCCeEIfE",
                   "3eIeca8eyzbEliLCcVmhR3o9YrADfd5zQospmptHorUL0ZD97g/1ewvit/uEEptCcZTR24OcMjr9",
                   "oXGQtewMeTgSF6FnpH/up4yR7MOFJ/WTS/zfvLLHMk7XIF4cGRmzy+G76t+8J+Y4UV8ursUKvAFX",
                   "GVWpboQmdb2uT/RfN5J3v552k7hZ3IKxuE1IxUyeW+G7TdyOtX2HGBB34udnfaKi1LvFXfrIaWJQ",
                   "BMUBcRAjea84LIZ0/39Kuwd7xy/LHAjVFRyp5Yi4T9yPGfKQeAQ7zWP4Yc+D8D0c8j6u5yL7MfE7",
                   "8bieS6Y+hrn1JHaoZ8QfxLPiBfF7WM/r16dgvSheFq+INxQb1EviY1yPiRdNH4goMRt/K3sfRuMa",
                   "sQw//x9fphQRL/YPfz+8efh7Q4VYodTjAfJOjNJBcT4+mVj7860Vl4gw/kXEiYPD3xmWgscee9PU",
                   "efzG4S98jWedubGne8P6dWvXdJ26elXnyhUd7a3LlzUtXdLYEPDXL1xQV1szf97c6qrKijnlZaUl",
                   "xbN9RYWnzJo5oyB/et603Ak52WMzM8Z4RruS4hz2aJs1ItxiDjMZDXg+zy7zlDe7tcxmzZjpqajI",
                   "kbanBY6WExzNmhuu8pPzaG5ZrgVJJ+X0IeeKX+T0UU7fSE7F7p4lZuVku8s8bu25Uo97SGmsC0Dv",
                   "LfU0uLWjup6na2OmbthgpKejhLssqbPUrSnN7jKtfFNnf1lzaU62MmiNKPGUdETkZIvBCCukFUob",
                   "61k/qIwtVHShji2bMagKi03eVjNklLW0a7V1gbJSZ3p6g+4TJXpdWliJZtbrcq/S0GZxnnsw+5H+",
                   "84fsorXZG9nuaW9ZGtAMLSjUbyjr7z9bc3i1cZ5Sbdy2D5IQwA4t21Napnk9aFj1gpEbKJopw+5x",
                   "938r0HjP0c/Q6hM8LSFPWIb9WyETZRdHwqQpLawF2oYWon/p6bIt5w35RCsMra8uQLZbtDqDwpfr",
                   "bdDUZpnyCKfE+2VKH6eMFG/2ILJlnrLm0HtTZ5LW1+rOycbI6u8MzZiBdLdmyGxubeuU3NLR7ylF",
                   "DxFLUR/QfKUQvpZQMMsGJ+Yif0szOrFKhqEuoOV61mtxnmKKNhyoJKNs1cKAXoS8ZVpciSaa20Kl",
                   "tNwylMUUKeuXAyMbKOvy1AWOiCnD7w1OdTsPTBFTRYNsh5ZQgkHJLOsPtK/QXM3OdszPFe6AM13z",
                   "NSB8DZ5AR4McJY9dG/cebocXBlAvhb79IjdnRrc1c4bFHVCdhgY5WnC4y3HxFM9Cgl0LI1OOaPEs",
                   "d0BxCs6Gu4RySHVSPTAMGSUVKAxG0ZIKZzomt/76D01yUgfQDM0y0iYjGmH6uU10n19tGuWWDRrn",
                   "LusoPaGBJ1UKQ29gqLb/uZ2qjEUoGGiCRQ5nhexDTrYK7UayRVPRT90lRzHJrYlad8DT4WnwYA75",
                   "agNycGSs9fGtXuiRH6/qox2aJfUnWZSeT2maSK+uD7AhP3nSyr36uMph1e05uj1iVvwiuZKTse+I",
                   "2v7+9kFhyJBT2Tmo6MJUcl6DVuNt8GitXk+6bGdO9qBFRKbXN5dg9ZZj5/SUt3jcdnd5f8vQcF9r",
                   "/6DP17++rLlzBtZFv6eyvd+zMDALg6tvBDud22RbYkS1Ul1fjKpUUTzoUc6pG/Qp5yxsDByxC+E+",
                   "pz4QVPFZc3Nxw+AYpAWOuIXw6V5VeqVTZnFLQ9a0AIZFz+884hOiT0816g7dbhtShO6jTPApom1I",
                   "JZ9dzzeYqd/Ih/+daBsyUoqPazDCZyFfH+UeG8ptQYpdptwncJDgwz+0mV70SaAvwuSz+MJ9kapN",
                   "RUjlkAThuQ95wxVxIFKxKc5B1IkewI2vpAfDfc4jek3kuk/pQ07p60PtoWyqkNlOqAi3pI77QaEe",
                   "+BsDByIF6tevyFEsX9hCkjoxx3DQlLnb5fzb0dDZ39wgdw+RgLmKt6IpnkKhqZ5CtDgsUovwdBRr",
                   "Vk+x9BdJfxH5w6Tf7CnWlAQFgz2ETbe/2YONGGsqgK87GjD97XJ5qxnuoeHh+kD6c86jDelY80uB",
                   "xoAW7sVBZ8qoQr45Es1wz9H62lpkO4Qfe5nceirbGrDYuUJkqdTCUUN4qAbkKNfLyPWGQm2Ya5iQ",
                   "evk+GFpfg9bglTcNrJItcrvtmqjwzNDCMqlOU6a8UW5Df4xnsly5yKpFZJwtKRxtEwsD5HHCxM1w",
                   "osgemSPR8jYPktqa3Yg65shCrGU6LCLkPISnA3u+MbNDR4QzlChktwwZVluEFj4BFeIttXUCKsTb",
                   "3ICgyM7r1tmhDLi3XbOiRZknhDJUANFBUqVsC95no/Ey66OymrohscCzBXu/bLR+KzOSNVtGZQtO",
                   "NypvhceTz4VRlyVDumQdj5PXLHseibhjSxgavs2zVW5x/MrJ9sjTT84/4TyChSoa+n/p0JZ4c7It",
                   "v/TadHd/v8X2PxegeFlsIyxrQUfa5LEGlhNOn2/uMnnAeqoG1fnIAVZ07q/y4FBTMyTwoGPA8kl3",
                   "tzfIXGhyrb6XeX4tE6oYySSPab3yfvtM+VQiLaTrFgy8+7WVJ5udI2Y5ksvxMJgxAdDfmRgYue+v",
                   "dmpdmJlI1rPIEXH3u+2eGR55QVcNWA1AM8ZpZFlg+mPWyUXT1+YOtGKyIzzlzf3l/biJu60FxeQc",
                   "DN1JW+s9qUqsCwXrEAGRUdD6at3NDe5mPJoqdYH0dCdWI9i9okXzeVrkUVCL++NdiyMJ1NIvp7ho",
                   "wE2dmhkH04qWDk86Dhz4GvS46uODu9OyEc7+fk+/pm8E5ciM6jOx7Col4b3e62npkI/QuJ+7pUMv",
                   "W47m6tGR7XOWebCWO9BaGXf0C//9JVrlpa3fg9qamr2IhKM/pt9d0I8tuAmnhzGzbVEzjip5Irn1",
                   "oW5xwkJcK6XVgIooY3iGzEhLQLZmjXewyZzxs0euRW2dlzJb9FrRsgUBrZYL6etJ5trg1dTEfCSi",
                   "pZqyADsb4i/3KQTPlFGJ8Pow9ZyytFtTcbzS8OjlK2VRbA00YFQMHv0Q0ZcYDkk+bfgcWupETH/V",
                   "L4xRQuDjemH8TNxpaBWNhh9Fk/LJ8Gv4eH9fWLvYZ5wK5ItGyerdIh18KRav/oUwOBKfFY0Gp0Op",
                   "+G9CA9iM3cyC/79U8G95EUiXr4fFw8os5UP1VkOxYa/xHJPX9EzYVrPVfDfyiOM9hpfxiZQBJQvE",
                   "PDFfXKGd6Q08gPNogUgQM5RDh+JLSy055oeUEtzEjc+bLfgqusQXbVRth1NSijyHp4XtNTgqh5Sc",
                   "g0XmvfgmpejYu8eezz327tGYgtyjSu4777/7vv2r5x0FuVPef/X9SfhmPS7FdrgLRad5DndNM4Tt",
                   "7TI4imR5X3hXkU817+1CJUlF3pTnvc/nep/3ohrvxEkNiiPdoSMuSjWb48I8oyeo07Iy86ZMmVyo",
                   "Tpua6Rkdpeq+qXnTCw1TJqepBuQkT6EqbcXw8k+NhppjYeouT9GiKaa0lOg4W5hJHZUUkzMrw75w",
                   "ScasCalmgznMYLKYx04vHl3dVTb6TbMjNT4hNcZiiUlNiE91mI+9ZYr64WtT1I8lxq4fLzWEzVxa",
                   "NMZwZYRFNYaFDaUlJY+fmV65KDrWbrTG2h0JFnOMI3Js6dJjZ8WPknWMio+nuo7NQzjxX67GCxH9",
                   "GOESV8q4+1KL0pXYJLsyL9YejUucDZeYSFySrLjcr07GeKYMf3QAOVKGhr88gEw6Ix/4OzyoSP7o",
                   "AHKn3K86MCuSlMhgVJ1zSMkcNNWLoqNFGJP39Y+FXyWaNLHJORiVNKREHuyKqjPJnMEuZMUQFOmB",
                   "l2FMH505zTE1b0o64mieOkH1eBwy7sYLF93y5a3HP08cNy5Rybj9o2vrDk1dd8dZ9wzuuKO7QL3q",
                   "9h9vWeDKMu7Oci2+6aN9qw6dUfWTo7DvUczOxuGjBrfhaTFNPCX7PThKyD+SQK/A7x1Ab8AfHUQv",
                   "RJbsDhLAenfBn8tu6n5kAH8iC2QNqVafLTdKiUr+0OWLsFW4xgwp6sHYKsOnk+QfU4TbKiZlDylh",
                   "g+HzMEVf9R7VL0puE0XhcYRkspydka7kD7uoglhZw+Gu2KpJhk+7ZCWHZCXhspZgF6pBhFBMv2CC",
                   "ZsRF0aScqk+3sHiao57RUGmYgDQJDW7VZE6eVR3Ibbm8Y9rsDfsavHWl05LCw9QYW3TWLP+Mzael",
                   "+5pmFSwq8kaaI8yGGx3JDltyRmqMb/uB3jMf3jbTnjI6KSo2KSbLlT42/fDdi/cEvGO8HktsKuZT",
                   "E6K6z/CM8OIXzU/0+TQ+N68ob12eIdYtZ5JbzqnY9Gw74pctZ1S2He5se7RdmYte/etQqfdmr+pF",
                   "pA8hp3eqMTQYYD3muo1i4I8OykLGITXCl56e/WSf8SKj+ohRedGoGI2jct/OrEr6pDlqfZQaFf7J",
                   "KD3gTZh5WMpNG7p5Ak5+x0vBlyvcK6ehb7Qx+8muTXodmblvd2VWRSV90iWi7PiLE0PUqPBPulCX",
                   "jDo+T0LcZXU0Q8M86SfEOP7kkVDjs/L07cFs2JeVfCyYVr6+ztdemRtptoYZVIPZmrdog2/dbd0z",
                   "Zm3Y37b6suacWw1bN5+ytHC0qqpZ6dVbFk2IT4k3RyXH2GKjI63JSbGF24a2bTxyellpz9WB2N2X",
                   "TpjbMV0Idfi145co7aZcMUZMFPfI6B+omaxkhKYn+Gs5bcEUOogv5TLNkP9v4Y3EfNenMVhfxeAv",
                   "9RDLhSDzCYyPLyI5WUye4MPgTBhSCg+MdVXGDSnGQVONXNivH/U6pkwJre7HaXXLqB5EmbEy/6Eu",
                   "FDDJEljgNfoCf0IWweQ10V5pnKZP3gR9T3XQRFbjY+VMzpyG5T85QalL87XPceckhRsVgzncHOZJ",
                   "TM9Ni7LEupOS3LGW2OyZM8Z7Z84cH92+vd5ribA5YmwxKXazKS6notIwYI60GI2WSLMyccb4cQWA",
                   "PM32Df+gFJo24LPHOhm1w0WJNYnrEg0yAqGdgCMSCsRIZJTvD0bYy01zRVFRqNuyvwd0V1JRES1K",
                   "OgNGOqMUWmLcyWir2Yw2J7tjLMkWq2yV1WLKt1D7cMTJVplexFqqVdL0leSMsWMU9H04026NVOZm",
                   "Jcnr+gVKeWxozMB6C8Ffyi1LZ7nkQmMbO6R870tLS8CaS0ubHBGB6RAhF2CEXIoR+iqMwCgfrvU5",
                   "lHm1hdjZ9I6fsNPp1cLmnVAPUNb9+LuEycKOXam6CltWmM82u6qwPCe/Mmdu8lw9OkVFMQUFJ+79",
                   "Ba969X0PxzIJbwFCp/81lXOw2o5KDnZVV83Wa4vqOrk6RJbqo/MB+x6HGOfC6DCz4z84aBOMj8/D",
                   "XEpTE+mgjje9iDHBWMRa4rJLJxT0lMnplJgea07ILplQsLGURywsZlRiQqrdPPfCyvyG0on2nLrq",
                   "OWMWb6p0jQyh6ilYVjom4D92Hg/qv3sMZ1is4QZDuNWy2V+Tkjt77KTS8bGnrDh3Lo26YT9GfbIY",
                   "0kc9mkZdDn3RVGX8/zCy+hDArw8VODQDMNLONKsds8Aqh9gqj3OrHHGrHGwrZsJh4YMp0mSwfRE5",
                   "VeOTx1TycMVgsJRcHho7HVGhEXIO5uhFrF0nlJFjgkJyN/xP43Fy+OMN+ynuMZakCZUTC3f8e6Cv",
                   "mNe4fW76z+GNnveL8J4UTASxGTuhfrq/iyjGiizxtB7HUUXjlLExyjiHkmlTMiOVTIuSaVbGG5Rx",
                   "qpImg4ZAgfV5DdYfAcD6qaOnI2hp8rBJy41QIuLkE1KcDGmcPNfi5BNSnIxr3H34Yx8x/MjhaDFv",
                   "PYYzeUhRgtFVHpzjgyYcQ/rTT1NoxvPRj4nPL+dgtCxysCu6yiQLYZ/UD5yfH4TkU2doX9Sfg/DU",
                   "yce74d0ZPXd1r7tlbV5Bz5094Ol3OwtX11SuKk13Fq2uqVhd6lb+tvbIWdXFuw52g6vAOyp3txZM",
                   "Xb57XtXuloKpy3bL6O07fqnhNURvvDhFDMroHcL2lp6HP5XV5xpYn2vS1k8ICH3SYe/43pcY75Uh",
                   "8cqQeJPkGe2VgfHK2IWL+Ii8aelG08QhxXRvZpWz0l5TABkKTREO6MQCJZdODpp0k+Wkcx6mYpmy",
                   "HJ7SqaRJFh0JUBGO48QCTD8ltPqzTtgGeNrRcue4mR0J+kFjeG1K28XLxpbO9o05YaHHxTtjzOPm",
                   "zqvLae1fPPbu+CmLfO5CX3lW6baSwobpKcrHmx7YM8c+eqrneCHv2saPsaYNBqzureMLx8XPPeOe",
                   "3rLT22fFjiuZdPwqfLjZvgNTIn34C3WN8S4xQ5wrY3twnHB4ckIzT2dED6yHGKzPTJ0RxRwZ4chE",
                   "W85RT0Wq7WhixSR5+pppYj0nl+wUWqqTn3tcf5hE1Ue7kDfRl2g72pVYYZYFgl0ooT9dp9if4yVr",
                   "1H9TcejnLMI1hSdZfLzcKOWzpMcRp4dL2uoai909bkJiebsvdVd0jMlis+zk4+xDS2S4MSb6w+lz",
                   "EseMirOYwk3GJamj7VHhYRnVPfPVKPeY2BSH+XUzchnDIyEcKbFj3McjmpaHR4SbopIQo0vxHHmN",
                   "4YGRXdCFvc+aJfexLLmFZVkQiyz9vMqSO2MWDq17hTy0hCs0ScF6BMHf65NUCvkYIzOwQ3/+wX8+",
                   "/MsXHptTmWU1JVfiwDEdiJqnH1pH9UOLf1vxhk4s/aBy+sJDBaJkCfziIotgE/TqZU7cBaeF0VP5",
                   "yAOAQ39SzJs+4jBcY45JjU9MdYTNu1zf7sxx9DCTmFsxsXB7mTnOheeFmPCRXXCzf/6slee2qqP5",
                   "HDn2Tc3ykoyAX+1lj/y9W8HvdfiEGK8wfIsriusDi6tKvCUtXatau1f9H4MMkmsKZW5kc3RyZWFt",
                   "CmVuZG9iagoxNyAwIG9iago5MjM0CmVuZG9iagoxIDAgb2JqCjw8IC9UaXRsZSAoTWljcm9zb2Z0",
                   "IFdvcmQgLSBkb2NlamVtcGxvLmh0bWwpIC9Qcm9kdWNlciAo/v9cMDAwbVwwMDBhXDAwMGNcMDAw",
                   "T1wwMDBTXDAwMCBcMDAwVlwwMDBlXDAwMHJcMDAwc1wwMDBpXDAwMPNcMDAwblwwMDAgXDAwMDFc",
                   "MDAwMFwwMDAuXDAwMDFcMDAwNVwwMDAuXDAwMDZcMDAwIFwwMDBcKFwwMDBDXDAwMG9cMDAwbVww",
                   "MDBwXDAwMGlcMDAwbFwwMDBhXDAwMGNcMDAwaVwwMDDzXDAwMG5cMDAwIFwwMDAxXDAwMDlcMDAw",
                   "R1wwMDAyXDAwMDBcMDAwMlwwMDAxXDAwMFwpXDAwMCBcMDAwUVwwMDB1XDAwMGFcMDAwclwwMDB0",
                   "XDAwMHpcMDAwIFwwMDBQXDAwMERcMDAwRlwwMDBDXDAwMG9cMDAwblwwMDB0XDAwMGVcMDAweFww",
                   "MDB0KQovQ3JlYXRvciAoV29yZCkgL0NyZWF0aW9uRGF0ZSAoRDoyMDIwMDgyODE4NTkwNVowMCcw",
                   "MCcpIC9Nb2REYXRlIChEOjIwMjAwODI4MTg1OTA1WjAwJzAwJykKPj4KZW5kb2JqCnhyZWYKMCAx",
                   "OAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMTM1OTUgMDAwMDAgbiAKMDAwMDAwMDI5NCAwMDAw",
                   "MCBuIAowMDAwMDAzMjczIDAwMDAwIG4gCjAwMDAwMDAwMjIgMDAwMDAgbiAKMDAwMDAwMDI3NSAw",
                   "MDAwMCBuIAowMDAwMDAwNDA0IDAwMDAwIG4gCjAwMDAwMDMyMzcgMDAwMDAgbiAKMDAwMDAwMDAw",
                   "MCAwMDAwMCBuIAowMDAwMDAzNDEyIDAwMDAwIG4gCjAwMDAwMDA1MDEgMDAwMDAgbiAKMDAwMDAw",
                   "MzIxNiAwMDAwMCBuIAowMDAwMDAzMzYyIDAwMDAwIG4gCjAwMDAwMDQwMTMgMDAwMDAgbiAKMDAw",
                   "MDAwMzYxOCAwMDAwMCBuIAowMDAwMDAzOTkzIDAwMDAwIG4gCjAwMDAwMDQyNDkgMDAwMDAgbiAK",
                   "MDAwMDAxMzU3NCAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDE4IC9Sb290IDEyIDAgUiAvSW5m",
                   "byAxIDAgUiAvSUQgWyA8NzQ5NjZmZTA0ZDA3YWZhZDA3NmQ4MDRiODY1OTI3OGM+Cjw3NDk2NmZl",
                   "MDRkMDdhZmFkMDc2ZDgwNGI4NjU5Mjc4Yz4gXSA+PgpzdGFydHhyZWYKMTQwNzEKJSVFT0YK"
                ]
        }
    ]
}

Updated on 2024-08-21