dd-trace-php icon indicating copy to clipboard operation
dd-trace-php copied to clipboard

[Bug]: Multiple `datadog-ipc-helper` processes active & huge amount of `/v0.7/config` requests

Open mrtus opened this issue 6 months ago • 28 comments

Bug report

Running on 1.9.0 dd-trace both client & library in docker image (updating from 1.5.2). The agent is running on version 7.62.2.

This seems to spin up multiple. datadog-ipc-helper processes in a long-running PHP CLI process. This seems to result in an increased amount of /v0.7/config requests too & in turn huge network increase & rising over time (100Ki/s to >900Ki/s).

Network usages (received is top line, transmitted the other) Image

We do not seem to observe the same on PHP-FPM envs

Processes Image

After killing one of those, it goes back to 1 process & network receive is back to normal

Is there a bug in the library or are we doing something wrong?

Request rate to the /config endpoint steadily increases until it levels out Image

What other information can I provide to help you out?

Thanks!

PHP version

8.4

Tracer or profiler version

1.9.0

Installed extensions

No response

Output of phpinfo()

No response

Upgrading from

No response

mrtus avatar May 12 '25 09:05 mrtus

Quick question: does your CLI app do any forking?

morrisonlevi avatar May 12 '25 13:05 morrisonlevi

Quick question: does your CLI app do any forking?

Yes! In this case it has 1 fork running to create a heartbeat on our AMQP connection, here is an example of how it works for AMQP connections https://github.com/php-amqplib/php-amqplib/blob/master/PhpAmqpLib/Connection/Heartbeat/SIGHeartbeatSender.php.

I'm already seeing where this is going I think.. 😢. But I'm curious to learn what we can do about it.

mrtus avatar May 12 '25 14:05 mrtus

Disabling DD_REMOTE_CONFIG_ENABLED stopped the havoc, but of course, while we use the feature, not an ideal solution I guess since all helper processes are still active.

mrtus avatar May 12 '25 15:05 mrtus

It's unexpected that multiple datadog-ipc-helpers are active. At least assuming they all use the same dd-trace-php version.

There is supposed to be one datadog-ipc-helper per user (as in linux uid) per dd-trace-php version running php. The amount of /v0.7/config endpoints is supposed to be linear (for each helper) per (service, environment, version) tuple on the local root spans. The default poll rate is about one request for each tuple every 5 seconds.

Just to make sure, this screenshot looks a lot like htop, which displays all threads by default - i.e. these individual lines in htop aren't they just one single process? (So, if you kill one, you kill the whole datadog-ipc-helper).

Are you able to look into the /v0.7/config request payloads? I.e. what services/environments/versions you are requesting for? Are there e.g. many different services?

bwoebi avatar May 12 '25 17:05 bwoebi

It's unexpected that multiple datadog-ipc-helpers are active. At least assuming they all use the same dd-trace-php version. There is supposed to be one datadog-ipc-helper per user (as in linux uid) per dd-trace-php version running php. The amount of /v0.7/config endpoints is supposed to be linear (for each helper) per (service, environment, version) tuple on the local root spans. The default poll rate is about one request for each tuple every 5 seconds.

I can definitely say that is not the case, the requests go over thousand per minute (which I now realize was not visible on the graph).

Just to make sure, this screenshot looks a lot like htop, which displays all threads by default - i.e. these individual lines in htop aren't they just one single process? (So, if you kill one, you kill the whole datadog-ipc-helper).

Correct, I used htop here! and I might have oopsed on it correct, these look to be all threads. I wrongly assumed it was multiple processes because of the increased request rates over time.

After installing top, I can indeed say that there is only one dd-ipc-helper process. So we can say that the described bug is only partially true. Apologies for this misunderstanding.

Only the huge amount of config requests are left.

Are you able to look into the /v0.7/config request payloads? I.e. what services/environments/versions you are requesting for? Are there e.g. many different services?

If you could point me in the right direction on how to do that, I can take a look!


Additionally, I do see we also call Tracer::reset after every job we've processed. Maybe that could something to do with it too?

Below is a simplified snippet of what we have implemented

// $this->tracer created through `GlobalTracer::get()`

$this->tracer->startRootSpan(self::OPERATION_NAME);

$span = $scope->getSpan();

$span->setTag(Tag::SPAN_TYPE, self::SERVICE_TYPE);
$span->setTag(Tag::SERVICE_NAME, $this->serviceName);

$type = $this->determineTypeFromMessage($message);

if ($type !== null) {
    $span->setResource($type);
}

// Execute job behaviour

$scope->close();

$this->tracer->flush();

$this->tracer->reset();

Let me know if I can provide you with anything else!

mrtus avatar May 13 '25 06:05 mrtus

@mrtus I meant checking tcpdump and watching the payloads within a 5 second timeframe being sent to the agent (assuming you don't use the unix socket, but tcp to port 8126, it should show up). Checking the /v0.7/config requests.

bwoebi avatar May 14 '25 19:05 bwoebi

@mrtus I meant checking tcpdump and watching the payloads within a 5 second timeframe being sent to the agent (assuming you don't use the unix socket, but tcp to port 8126, it should show up). Checking the /v0.7/config requests.

Ah, we did run tcpdump, it was by no means every 5 seconds but more of a constant stream of requests.

I'll see if I can gather some more information there!

mrtus avatar May 15 '25 06:05 mrtus

@bwoebi

A grep of /v0.7/config on tcpdump, the requests seems to happen every second almost

Image

One of the config calls (and clenaed up git repo & service name), is this the payload you would like to see?

{"client":{"state":{"root_version":1,"targets_version":115158195,"config_states":[{"id":"36.recommended.json","version":1,"product":"ASM_DD","apply_state":2,"apply_error":""}],"has_error":false,"error":"","backend_client_state":[101,121,74,50,90,88,74,122,97,87,57,117,73,106,111,121,76,67,74,122,100,71,70,48,90,83,73,54,101,121,74,109,97,87,120,108,88,50,104,104,99,50,104,108,99,121,73,54,101,121,74,108,98,88,66,115,98,51,108,108,90,83,57,66,85,48,49,102,82,69,81,118,77,122,89,117,99,109,86,106,98,50,49,116,90,87,53,107,90,87,81,117,97,110,78,118,98,105,57,106,98,50,53,109,97,87,99,105,79,108,115,105,87,86,90,67,77,71,74,69,84,86,108,118,86,70,70,50,99,108,70,97,84,51,90,107,83,68,66,76,81,122,82,115,79,72,78,79,87,86,73,53,98,69,77,120,83,69,100,107,81,109,82,85,79,88,74,108,77,68,48,105,88,88,48,115,73,109,108,102,77,122,69,53,77,122,77,105,79,110,82,121,100,87,86,57,102,81,61,61]},"id":"c2e28904-036e-4e5c-984f-fe8a42a3c676","products":["APM_TRACING","ASM_FEATURES","LIVE_DEBUGGING","ASM_DATA","ASM_DD","ASM"],"is_tracer":true,"client_tracer":{"runtime_id":"31f4bbee-e603-4cdc-8df3-75780cca6cf2","language":"php","tracer_version":"1.9.0","service":"bar-deploy-worker-events","extra_services":[],"env":"prd","app_version":"8a4c567cb38fc72211608515f361389d773db68c","tags":["DD_GIT_COMMIT_SHA:8a4c567cb38fc72211608515f361389d773db68c","DD_GIT_REPOSITORY_URL:https://github.com/foo/bar"]},"is_agent":false,"last_seen":0,"capabilities":[160,232,247,254]},"cached_target_files":[{"path":"employee/ASM_DD/36.recommended.json/config","length":314089,"hashes":[{"algorithm":"sha256","hash":"6150746c3318a1342fad064ebdd1f4282e25f2c35847d942d4719d05d4fdaded"}]}]}

mrtus avatar May 15 '25 06:05 mrtus

Yes, exactly that. Part of these requests are:

service":"bar-deploy-worker-events","extra_services":[],"env":"prd","app_version":"8a4c567cb38fc72211608515f361389d773db68c"

and do these service/env/app_version tuples repeat, or is it distinct for all request within a ~5 second window?

Also how many req/sec do you have - can you also quantify the amount of input kb/s vs output kb/s in terms to requests to /v0.7/config?

bwoebi avatar May 15 '25 12:05 bwoebi

@bwoebi

The requests to the agent for0.7/config, a rather at 2K per 2 minutes, much higher than 1req/5s Image

The network rate of the same time-window, so significant rates. Image

The application message consumption rates, very low rates Image

About the payloads, I can indeed see some difference on the tuples:

{"client":{"state":{"root_version":1,"targets_version":115181559,"config_states":[{"id":"36.recommended.json","version":1,"product":"ASM_DD","apply_state":2,"apply_error":""}],"has_error":false,"error":"","backend_client_state":[101,121,74,50,90,88,74,122,97,87,57,117,73,106,111,121,76,67,74,122,100,71,70,48,90,83,73,54,101,121,74,109,97,87,120,108,88,50,104,104,99,50,104,108,99,121,73,54,101,121,74,108,98,88,66,115,98,51,108,108,90,83,57,66,85,48,49,102,82,69,81,118,77,122,89,117,99,109,86,106,98,50,49,116,90,87,53,107,90,87,81,117,97,110,78,118,98,105,57,106,98,50,53,109,97,87,99,105,79,108,115,105,87,86,90,67,77,71,74,69,84,86,108,118,86,70,70,50,99,108,70,97,84,51,90,107,83,68,66,76,81,122,82,115,79,72,78,79,87,86,73,53,98,69,77,120,83,69,100,107,81,109,82,85,79,88,74,108,77,68,48,105,88,88,48,115,73,109,108,102,77,122,69,53,77,122,77,105,79,110,82,121,100,87,86,57,102,81,61,61]},"id":"b8a0aaec-5257-45bc-944a-9ec2585b8611","products":["APM_TRACING","ASM_FEATURES","LIVE_DEBUGGING","ASM_DATA","ASM_DD","ASM"],"is_tracer":true,"client_tracer":{"runtime_id":"00a5215f-819d-413e-ab03-01fa072111d3","language":"php","tracer_version":"1.9.0","service":"cli","extra_services":[],"env":"prd","app_version":"","tags":["DD_GIT_COMMIT_SHA:80f2f3a10b981d50319caa4479bbd51e5b0c8b61","DD_GIT_REPOSITORY_URL:https://github.com/teamleadercrm/it-integration-planhat"]},"is_agent":false,"last_seen":0,"capabilities":[160,232,247,254]},"cached_target_files":[{"path":"employee/ASM_DD/36.recommended.json/config","length":314089,"hashes":[{"algorithm":"sha256","hash":"6150746c3318a1342fad064ebdd1f4282e25f2c35847d942d4719d05d4fdaded"}]}]}
{"client":{"state":{"root_version":1,"targets_version":115181559,"config_states":[{"id":"36.recommended.json","version":1,"product":"ASM_DD","apply_state":2,"apply_error":""}],"has_error":false,"error":"","backend_client_state":[101,121,74,50,90,88,74,122,97,87,57,117,73,106,111,121,76,67,74,122,100,71,70,48,90,83,73,54,101,121,74,109,97,87,120,108,88,50,104,104,99,50,104,108,99,121,73,54,101,121,74,108,98,88,66,115,98,51,108,108,90,83,57,66,85,48,49,102,82,69,81,118,77,122,89,117,99,109,86,106,98,50,49,116,90,87,53,107,90,87,81,117,97,110,78,118,98,105,57,106,98,50,53,109,97,87,99,105,79,108,115,105,87,86,90,67,77,71,74,69,84,86,108,118,86,70,70,50,99,108,70,97,84,51,90,107,83,68,66,76,81,122,82,115,79,72,78,79,87,86,73,53,98,69,77,120,83,69,100,107,81,109,82,85,79,88,74,108,77,68,48,105,88,88,48,115,73,109,108,102,77,122,69,53,77,122,77,105,79,110,82,121,100,87,86,57,102,81,61,61]},"id":"6136094b-efa2-42dc-a8ba-9d7d08ad086d","products":["APM_TRACING","ASM_FEATURES","LIVE_DEBUGGING","ASM_DATA","ASM_DD","ASM"],"is_tracer":true,"client_tracer":{"runtime_id":"e4538201-a77d-4292-963c-c64c034bf2c7","language":"php","tracer_version":"1.9.0","service":"planhat-deploy-worker-events","extra_services":[],"env":"prd","app_version":"","tags":["DD_GIT_COMMIT_SHA:80f2f3a10b981d50319caa4479bbd51e5b0c8b61","DD_GIT_REPOSITORY_URL:https://github.com/teamleadercrm/it-integration-planhat"]},"is_agent":false,"last_seen":0,"capabilities":[160,232,247,254]},"cached_target_files":[{"path":"employee/ASM_DD/36.recommended.json/config","length":314089,"hashes":[{"algorithm":"sha256","hash":"6150746c3318a1342fad064ebdd1f4282e25f2c35847d942d4719d05d4fdaded"}]}]}
{"client":{"state":{"root_version":1,"targets_version":115181559,"config_states":[{"id":"36.recommended.json","version":1,"product":"ASM_DD","apply_state":2,"apply_error":""}],"has_error":false,"error":"","backend_client_state":[101,121,74,50,90,88,74,122,97,87,57,117,73,106,111,121,76,67,74,122,100,71,70,48,90,83,73,54,101,121,74,109,97,87,120,108,88,50,104,104,99,50,104,108,99,121,73,54,101,121,74,108,98,88,66,115,98,51,108,108,90,83,57,66,85,48,49,102,82,69,81,118,77,122,89,117,99,109,86,106,98,50,49,116,90,87,53,107,90,87,81,117,97,110,78,118,98,105,57,106,98,50,53,109,97,87,99,105,79,108,115,105,87,86,90,67,77,71,74,69,84,86,108,118,86,70,70,50,99,108,70,97,84,51,90,107,83,68,66,76,81,122,82,115,79,72,78,79,87,86,73,53,98,69,77,120,83,69,100,107,81,109,82,85,79,88,74,108,77,68,48,105,88,88,48,115,73,109,108,102,77,122,69,53,77,122,77,105,79,110,82,121,100,87,86,57,102,81,61,61]},"id":"8a5dc514-1eac-4f9c-8141-87d284b25c71","products":["APM_TRACING","ASM_FEATURES","LIVE_DEBUGGING","ASM_DATA","ASM_DD","ASM"],"is_tracer":true,"client_tracer":{"runtime_id":"b81aaa5d-850a-440d-aa79-0fa4f9e7bdc3","language":"php","tracer_version":"1.9.0","service":"planhat-deploy-worker-events","extra_services":[],"env":"prd","app_version":"80f2f3a10b981d50319caa4479bbd51e5b0c8b61","tags":["DD_GIT_COMMIT_SHA:80f2f3a10b981d50319caa4479bbd51e5b0c8b61","DD_GIT_REPOSITORY_URL:https://github.com/teamleadercrm/it-integration-planhat"]},"is_agent":false,"last_seen":0,"capabilities":[160,232,247,254]},"cached_target_files":[{"path":"employee/ASM_DD/36.recommended.json/config","length":314089,"hashes":[{"algorithm":"sha256","hash":"6150746c3318a1342fad064ebdd1f4282e25f2c35847d942d4719d05d4fdaded"}]}]}

So yes, clearly some tuple differences, the service must always be planhat-deploy-worker-events, and the app_version of course must stay the same too.

I will say, after removing the Tracer::reset() call after every Tracer::flush it does seem more stable, and no longer snowballs like the above graphs.

However still 24 /v0.7/config calls per minute are being made, which I guess can explain the three different payloads triggering every 2.5? seconds. But obviously this still causes a ~45KiB/s download traffic, compared to only some bytes when the remote config is completely disabled. Looking at the responses I also see a payload with a "roots" property, that containing two JWTs with an "expires": "1970-01-01T00:00:00Z", property on it. The response explains the cause of heightened network rates I guess.

So I guess the triple /config calls are explained by the tuple differences then? Going to go on a hunch here:

  • one for tuple the main process
  • one for a forked process
  • one for ???, no clue on a third one,

Where the latter two maybe are missing DD_VERSION and/or DD_SERVICE .env values, causing the additional tuples? Even though they are set correctly on the container 🤔 Oddly enough we also use DD_ENV and this one is being used correctly...

mrtus avatar May 15 '25 13:05 mrtus

45 KiB/s of traffic is quite a lot. It would be explained by the caching not working. I assume the response payloads always contain the full contents of employee/ASM_DD/36.recommended.json/config (about 300 KB uncompressed)?

"cached_target_files":[{"path":"employee/ASM_DD/36.recommended.json/config","length":314089,"hashes":[{"algorithm":"sha256","hash":"6150746c3318a1342fad064ebdd1f4282e25f2c35847d942d4719d05d4fdaded"}]}] that part is supposed to tell the agent "hey I already know this config" - and it seems that part is not working?

I can't tell about why you have different tuples though. If you change the version or service at runtime, then you definitely get different tuples. But it sounds like you set the values via env var - so it should not really change. Do you see any spans for a cli service or something? At least the tracer should, as far as I remember, never emit a "cli" service on its own; we use cli.command when we automatically infer a service name (unless your php script is actually called cli).

bwoebi avatar May 15 '25 15:05 bwoebi

@bwoebi

45 KiB/s of traffic is quite a lot. It would be explained by the caching not working. I assume the response payloads always contain the full contents of employee/ASM_DD/36.recommended.json/config (about 300 KB uncompressed)?

"cached_target_files":[{"path":"employee/ASM_DD/36.recommended.json/config","length":314089,"hashes":[{"algorithm":"sha256","hash":"6150746c3318a1342fad064ebdd1f4282e25f2c35847d942d4719d05d4fdaded"}]}] that part is supposed to tell the agent "hey I already know this config" - and it seems that part is not working?

Correct! On every config request, we get a huge chunked payload of JWTs wrapped in a root property and ending in "client_configs":["employee/ASM_DD/36.recommended.json/config"]

Every config requests uses the same hash identifier, so client side nothing really changes, assuming the hash is created based on its local contents.

So the issue would sit at the agent side then? I also restarted all our agents just now as well and the issue persists.

I can't tell about why you have different tuples though. If you change the version or service at runtime, then you definitely get different tuples. But it sounds like you set the values via env var - so it should not really change.

Yes, nothing changes at runtime for env vars.

Do you see any spans for a cli service or something? At least the tracer should, as far as I remember, never emit a "cli" service on its own; we use cli.command when we automatically infer a service name (unless your php script is actually called cli).

Correct, I do see a CLI service in our APM overview but that seems mostly related to a cronjob that is lauched through a plain PHP file without much framework.

mrtus avatar May 15 '25 18:05 mrtus

Additionally I tested this on a php-fpm pod too, again here the same happens, although only 1 tuple is being called, but still the caching does not seem to work.

However, I think I did observe that this only started after a few /config calls, and not immediately but after that it is on each call a full payload again, and not the {} given on what I assume is a "you have everything up to date" response.

mrtus avatar May 15 '25 19:05 mrtus

@mrtus I just had a look at the agent code - it is supposed to return {} if and only if the targets_version in the request json does not match signed.version in the base64 decoded json within targets in the response json. If I read that agent code correctly.

Is it possible for you to extract the request and response when and after the last time you get a {} as response? Something must have changed then, I suppose.

Also what's your agent version?

bwoebi avatar May 16 '25 13:05 bwoebi

I'll already answer this question. While I get the rest of the data 👀

Also what's your agent version?

The agent is running on version 7.62.2 still.

mrtus avatar May 16 '25 13:05 mrtus

Request that returns {}

{"client":{"state":{"root_version":1,"targets_version":115270552,"config_states":[{"id":"36.recommended.json","version":1,"product":"ASM_DD","apply_state":2,"apply_error":""}],"has_error":false,"error":"","backend_client_state":[101,121,74,50,90,88,74,122,97,87,57,117,73,106,111,121,76,67,74,122,100,71,70,48,90,83,73,54,101,121,74,109,97,87,120,108,88,50,104,104,99,50,104,108,99,121,73,54,101,121,74,108,98,88,66,115,98,51,108,108,90,83,57,66,85,48,49,102,82,69,81,118,77,122,89,117,99,109,86,106,98,50,49,116,90,87,53,107,90,87,81,117,97,110,78,118,98,105,57,106,98,50,53,109,97,87,99,105,79,108,115,105,87,86,90,67,77,71,74,69,84,86,108,118,86,70,70,50,99,108,70,97,84,51,90,107,83,68,66,76,81,122,82,115,79,72,78,79,87,86,73,53,98,69,77,120,83,69,100,107,81,109,82,85,79,88,74,108,77,68,48,105,88,88,48,115,73,109,108,102,77,122,69,53,77,122,77,105,79,110,82,121,100,87,86,57,102,81,61,61]},"id":"02dddb0e-3b08-408d-afa7-b388a1c7ec5c","products":["APM_TRACING","ASM_FEATURES","LIVE_DEBUGGING","ASM_DATA","ASM_DD","ASM"],"is_tracer":true,"client_tracer":{"runtime_id":"1c539e09-6e1c-412b-ad08-ce34fb540894","language":"php","tracer_version":"1.9.0","service":"planhat-deploy-web","extra_services":[],"env":"prd","app_version":"80f2f3a10b981d50319caa4479bbd51e5b0c8b61","tags":["DD_GIT_COMMIT_SHA:80f2f3a10b981d50319caa4479bbd51e5b0c8b61","DD_GIT_REPOSITORY_URL:https://github.com/teamleadercrm/it-integration-planhat"]},"is_agent":false,"last_seen":0,"capabilities":[160,232,247,254]},"cached_target_files":[{"path":"employee/ASM_DD/36.recommended.json/config","length":314089,"hashes":[{"algorithm":"sha256","hash":"6150746c3318a1342fad064ebdd1f4282e25f2c35847d942d4719d05d4fdaded"}]}]}

Request just after:

{"client":{"state":{"root_version":1,"targets_version":115270552,"config_states":[{"id":"36.recommended.json","version":1,"product":"ASM_DD","apply_state":2,"apply_error":""}],"has_error":false,"error":"","backend_client_state":[]},"id":"02dddb0e-3b08-408d-afa7-b388a1c7ec5c","products":["APM_TRACING","ASM_FEATURES","LIVE_DEBUGGING","ASM_DATA","ASM_DD","ASM"],"is_tracer":true,"client_tracer":{"runtime_id":"1c539e09-6e1c-412b-ad08-ce34fb540894","language":"php","tracer_version":"1.9.0","service":"planhat-deploy-web","extra_services":[],"env":"prd","app_version":"80f2f3a10b981d50319caa4479bbd51e5b0c8b61","tags":["DD_GIT_COMMIT_SHA:80f2f3a10b981d50319caa4479bbd51e5b0c8b61","DD_GIT_REPOSITORY_URL:https://github.com/teamleadercrm/it-integration-planhat"]},"is_agent":false,"last_seen":0,"capabilities":[160,232,247,254]},"cached_target_files":[{"path":"employee/ASM_DD/36.recommended.json/config","length":314089,"hashes":[{"algorithm":"sha256","hash":"6150746c3318a1342fad064ebdd1f4282e25f2c35847d942d4719d05d4fdaded"}]}]}

Response:

{"roots":["eyJzaWduYXR1cmVzIjpbeyJrZXlpZCI6ImIyYjkzYTZkY2NjOTZkMDUzZTZkYjM5MTgxMTI0Yzg1YmE0MTU2ZDQzNTAzZDQzNTFiNTUwMDMxNmZhMDg0ZTgiLCJzaWciOiI1MWYzYTczZGJmZjVjNTA0NmU4MTBhMzVjZWI0OGEwODNkYWQ0MDg5NjRlNTk2NzI5NWI2Y2E1ZTE3ZDhjMGIxNDI0ZDQyMGI2MmI5NmU5ZTA1NjFmMDJhNjkxYjgwZDJmM2NmNmU4NWNiYTc4ZTMxODcxNjk4YTJmY2NlYTkwYSJ9LHsia2V5aWQiOiI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2Iiwic2lnIjoiMmYxYTA3ZjQyYjFiMzFjNDI5YzJiMzQ3MjYwNzMwN2FmYWIxYmY2YTliY2JmMWMxZWE5NzEwNWQ0ODJmNGRhYWI2NzUzMDg5MWRiNzZjN2Y1YWRkOTI5YTMyNTdlZDU4MjRmYzQwZTZkZWM4YzRmNDU2NzQwNDJlNDA4NGM1MGEifV0sInNpZ25lZCI6eyJfdHlwZSI6InJvb3QiLCJjb25zaXN0ZW50X3NuYXBzaG90Ijp0cnVlLCJleHBpcmVzIjoiMTk3MC0wMS0wMVQwMDowMDowMFoiLCJrZXlzIjp7IjNhOWQxZTE5ZmEzZTRmZTA0ZGQ4ZTIxZDkzYjE0ODVkMWE0OTc3NDM4YjA0YjUyYjBiNjQ2NjlmMTJmNzkyNmUiOnsia2V5aWRfaGFzaF9hbGdvcml0aG1zIjpbInNoYTI1NiIsInNoYTUxMiJdLCJrZXl0eXBlIjoiZWQyNTUxOSIsImtleXZhbCI6eyJwdWJsaWMiOiJjMjgwZTRiZjZkZTg2YmNlOTg2MWZjN2I4MWJlYjhiYmRjNWQ3YTM3OGM5NmY3OGI5ZjQxZWY1MjI1NWQ1MDU1In0sInNjaGVtZSI6ImVkMjU1MTkifSwiNDRkNzBmYThlYWU0YzA3ZjI2YzI3NjcyNzA4MjdiNmI5ZTExZTc5NzI5MjZiM2I0MTliNWVhMTRlYzMyZjc5NiI6eyJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOlsic2hhMjU2Iiwic2hhNTEyIl0sImtleXR5cGUiOiJlZDI1NTE5Iiwia2V5dmFsIjp7InB1YmxpYyI6IjI4NmQ2YWUzMjgzNjVhZmVjMGY5MjUxOWNlYWI2OGNkNjI3ZTM0MDcyY2RlOTBiMmY1ZDE2N2JhZGVhOTcwZjIifSwic2NoZW1lIjoiZWQyNTUxOSJ9LCJiMmI5M2E2ZGNjYzk2ZDA1M2U2ZGIzOTE4MTEyNGM4NWJhNDE1NmQ0MzUwM2Q0MzUxYjU1MDAzMTZmYTA4NGU4Ijp7ImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6WyJzaGEyNTYiLCJzaGE1MTIiXSwia2V5dHlwZSI6ImVkMjU1MTkiLCJrZXl2YWwiOnsicHVibGljIjoiYWZkZDY4YmU1MzgxNWQ2N2Y4ZmE5OWNmMTAxYWFjNDU4OWEzNThjNjYwYWRmN2RkNGUxNzlmZTk2ODM0ZDNjOSJ9LCJzY2hlbWUiOiJlZDI1NTE5In19LCJyb2xlcyI6eyJyb290Ijp7ImtleWlkcyI6WyI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2IiwiYjJiOTNhNmRjY2M5NmQwNTNlNmRiMzkxODExMjRjODViYTQxNTZkNDM1MDNkNDM1MWI1NTAwMzE2ZmEwODRlOCJdLCJ0aHJlc2hvbGQiOjJ9LCJzbmFwc2hvdCI6eyJrZXlpZHMiOlsiM2E5ZDFlMTlmYTNlNGZlMDRkZDhlMjFkOTNiMTQ4NWQxYTQ5Nzc0MzhiMDRiNTJiMGI2NDY2OWYxMmY3OTI2ZSJdLCJ0aHJlc2hvbGQiOjF9LCJ0YXJnZXRzIjp7ImtleWlkcyI6WyIzYTlkMWUxOWZhM2U0ZmUwNGRkOGUyMWQ5M2IxNDg1ZDFhNDk3NzQzOGIwNGI1MmIwYjY0NjY5ZjEyZjc5MjZlIl0sInRocmVzaG9sZCI6MX0sInRpbWVzdGFtcCI6eyJrZXlpZHMiOlsiM2E5ZDFlMTlmYTNlNGZlMDRkZDhlMjFkOTNiMTQ4NWQxYTQ5Nzc0MzhiMDRiNTJiMGI2NDY2OWYxMmY3OTI2ZSJdLCJ0aHJlc2hvbGQiOjF9fSwic3BlY192ZXJzaW9uIjoiMS4wIiwidmVyc2lvbiI6Mn19","eyJzaWduYXR1cmVzIjpbeyJrZXlpZCI6ImIyYjkzYTZkY2NjOTZkMDUzZTZkYjM5MTgxMTI0Yzg1YmE0MTU2ZDQzNTAzZDQzNTFiNTUwMDMxNmZhMDg0ZTgiLCJzaWciOiI3NThjZmJjMmFkYzY4MmViOTUwMjJlMGJhZTViOWUyNDVlNjcwNDYzYTEyYjk0ZTJiYWZmZWFhODhlM2Y5YjA4MmRkM2Q1OGI4ZDM4MmRmOGUyYmUyNTY5MmE1MjI0YzkyNWQwZGIxZmY3YTViZWFiMDAwMzcxODk2ZmNjZjYwMiJ9LHsia2V5aWQiOiI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2Iiwic2lnIjoiNmE5NjY1ZGE5YmZmMTY3ZjViMmNjZjdhMzQxNWQ3NTMwN2VjNTQxNzVlNWZkMGY5YjcxMjNjZGQ2MzY2NjY5NjBjZWFjY2VlZWFlZThkMjZmODQ2NDJkMjNiZGU4MmUyNWRlOTU2ODhkOTQ1OTFkMjcyYzViNDk1MDkzNDdmMDEifV0sInNpZ25lZCI6eyJfdHlwZSI6InJvb3QiLCJjb25zaXN0ZW50X3NuYXBzaG90Ijp0cnVlLCJleHBpcmVzIjoiMTk3MC0wMS0wMVQwMDowMDowMFoiLCJrZXlzIjp7IjNhOWQxZTE5ZmEzZTRmZTA0ZGQ4ZTIxZDkzYjE0ODVkMWE0OTc3NDM4YjA0YjUyYjBiNjQ2NjlmMTJmNzkyNmUiOnsia2V5aWRfaGFzaF9hbGdvcml0aG1zIjpbInNoYTI1NiIsInNoYTUxMiJdLCJrZXl0eXBlIjoiZWQyNTUxOSIsImtleXZhbCI6eyJwdWJsaWMiOiJjMjgwZTRiZjZkZTg2YmNlOTg2MWZjN2I4MWJlYjhiYmRjNWQ3YTM3OGM5NmY3OGI5ZjQxZWY1MjI1NWQ1MDU1In0sInNjaGVtZSI6ImVkMjU1MTkifSwiNDRkNzBmYThlYWU0YzA3ZjI2YzI3NjcyNzA4MjdiNmI5ZTExZTc5NzI5MjZiM2I0MTliNWVhMTRlYzMyZjc5NiI6eyJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOlsic2hhMjU2Iiwic2hhNTEyIl0sImtleXR5cGUiOiJlZDI1NTE5Iiwia2V5dmFsIjp7InB1YmxpYyI6IjI4NmQ2YWUzMjgzNjVhZmVjMGY5MjUxOWNlYWI2OGNkNjI3ZTM0MDcyY2RlOTBiMmY1ZDE2N2JhZGVhOTcwZjIifSwic2NoZW1lIjoiZWQyNTUxOSJ9LCJiMmI5M2E2ZGNjYzk2ZDA1M2U2ZGIzOTE4MTEyNGM4NWJhNDE1NmQ0MzUwM2Q0MzUxYjU1MDAzMTZmYTA4NGU4Ijp7ImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6WyJzaGEyNTYiLCJzaGE1MTIiXSwia2V5dHlwZSI6ImVkMjU1MTkiLCJrZXl2YWwiOnsicHVibGljIjoiYWZkZDY4YmU1MzgxNWQ2N2Y4ZmE5OWNmMTAxYWFjNDU4OWEzNThjNjYwYWRmN2RkNGUxNzlmZTk2ODM0ZDNjOSJ9LCJzY2hlbWUiOiJlZDI1NTE5In19LCJyb2xlcyI6eyJyb290Ijp7ImtleWlkcyI6WyI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2IiwiYjJiOTNhNmRjY2M5NmQwNTNlNmRiMzkxODExMjRjODViYTQxNTZkNDM1MDNkNDM1MWI1NTAwMzE2ZmEwODRlOCJdLCJ0aHJlc2hvbGQiOjJ9LCJzbmFwc2hvdCI6eyJrZXlpZHMiOlsiM2E5ZDFlMTlmYTNlNGZlMDRkZDhlMjFkOTNiMTQ4NWQxYTQ5Nzc0MzhiMDRiNTJiMGI2NDY2OWYxMmY3OTI2ZSJdLCJ0aHJlc2hvbGQiOjF9LCJ0YXJnZXRzIjp7ImtleWlkcyI6WyIzYTlkMWUxOWZhM2U0ZmUwNGRkOGUyMWQ5M2IxNDg1ZDFhNDk3NzQzOGIwNGI1MmIwYjY0NjY5ZjEyZjc5MjZlIl0sInRocmVzaG9sZCI6MX0sInRpbWVzdGFtcCI6eyJrZXlpZHMiOlsiM2E5ZDFlMTlmYTNlNGZlMDRkZDhlMjFkOTNiMTQ4NWQxYTQ5Nzc0MzhiMDRiNTJiMGI2NDY2OWYxMmY3OTI2ZSJdLCJ0aHJlc2hvbGQiOjF9fSwic3BlY192ZXJzaW9uIjoiMS4wIiwidmVyc2lvbiI6M319","eyJzaWduYXR1cmVzIjpbeyJrZXlpZCI6ImIyYjkzYTZkY2NjOTZkMDUzZTZkYjM5MTgxMTI0Yzg1YmE0MTU2ZDQzNTAzZDQzNTFiNTUwMDMxNmZhMDg0ZTgiLCJzaWciOiJlYjlkNTM5NzlhNmIxYjhhMzFmZDU1ZGM4NzFhZGNjNzk2NTIwM2UyMDYzY2I3NTVmMzBhMjBhNDViYjdmYTE4YTM1ZTNiNTYwNmEwYzgyZGVlZmQyNjU3YzMwMTQyMDI1MzY3NjFkMzUwZjkzNTg3NjE0Njc1YTkzYzI0ZGUwMCJ9LHsia2V5aWQiOiI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2Iiwic2lnIjoiZTMyNTI1ZGZkMDhjNmE1MDlkODE5ZDliMjRjNjA1ZTQyNTg3YjM5YWM4OGQyZTgwY2ZkZDRkYzJhMzNmZjQ1YjMyYjgxMjNlY2IxYmM0YzM5ZWUzNTI1ZWY3MzhlMmQ5M2I2MGE0M2UwYWI3OWYyMDhlZGU3YjliNTQ2MTczMDUifV0sInNpZ25lZCI6eyJfdHlwZSI6InJvb3QiLCJjb25zaXN0ZW50X3NuYXBzaG90Ijp0cnVlLCJleHBpcmVzIjoiMjAyMy0wMi0xNFQyMzowMDowMFoiLCJrZXlzIjp7IjNhOWQxZTE5ZmEzZTRmZTA0ZGQ4ZTIxZDkzYjE0ODVkMWE0OTc3NDM4YjA0YjUyYjBiNjQ2NjlmMTJmNzkyNmUiOnsia2V5aWRfaGFzaF9hbGdvcml0aG1zIjpbInNoYTI1NiIsInNoYTUxMiJdLCJrZXl0eXBlIjoiZWQyNTUxOSIsImtleXZhbCI6eyJwdWJsaWMiOiJjMjgwZTRiZjZkZTg2YmNlOTg2MWZjN2I4MWJlYjhiYmRjNWQ3YTM3OGM5NmY3OGI5ZjQxZWY1MjI1NWQ1MDU1In0sInNjaGVtZSI6ImVkMjU1MTkifSwiNDRkNzBmYThlYWU0YzA3ZjI2YzI3NjcyNzA4MjdiNmI5ZTExZTc5NzI5MjZiM2I0MTliNWVhMTRlYzMyZjc5NiI6eyJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOlsic2hhMjU2Iiwic2hhNTEyIl0sImtleXR5cGUiOiJlZDI1NTE5Iiwia2V5dmFsIjp7InB1YmxpYyI6IjI4NmQ2YWUzMjgzNjVhZmVjMGY5MjUxOWNlYWI2OGNkNjI3ZTM0MDcyY2RlOTBiMmY1ZDE2N2JhZGVhOTcwZjIifSwic2NoZW1lIjoiZWQyNTUxOSJ9LCJiMmI5M2E2ZGNjYzk2ZDA1M2U2ZGIzOTE4MTEyNGM4NWJhNDE1NmQ0MzUwM2Q0MzUxYjU1MDAzMTZmYTA4NGU4Ijp7ImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6WyJzaGEyNTYiLCJzaGE1MTIiXSwia2V5dHlwZSI6ImVkMjU1MTkiLCJrZXl2YWwiOnsicHVibGljIjoiYWZkZDY4YmU1MzgxNWQ2N2Y4ZmE5OWNmMTAxYWFjNDU4OWEzNThjNjYwYWRmN2RkNGUxNzlmZTk2ODM0ZDNjOSJ9LCJzY2hlbWUiOiJlZDI1NTE5In19LCJyb2xlcyI6eyJyb290Ijp7ImtleWlkcyI6WyI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2IiwiYjJiOTNhNmRjY2M5NmQwNTNlNmRiMzkxODExMjRjODViYTQxNTZkNDM1MDNkNDM1MWI1NTAwMzE2ZmEwODRlOCJdLCJ0aHJlc2hvbGQiOjJ9LCJzbmFwc2hvdCI6eyJrZXlpZHMiOlsiM2E5ZDFlMTlmYTNlNGZlMDRkZDhlMjFkOTNiMTQ4NWQxYTQ5Nzc0MzhiMDRiNTJiMGI2NDY2OWYxMmY3OTI2ZSJdLCJ0aHJlc2hvbGQiOjF9LCJ0YXJnZXRzIjp7ImtleWlkcyI6WyIzYTlkMWUxOWZhM2U0ZmUwNGRkOGUyMWQ5M2IxNDg1ZDFhNDk3NzQzOGIwNGI1MmIwYjY0NjY5ZjEyZjc5MjZlIl0sInRocmVzaG9sZCI6MX0sInRpbWVzdGFtcCI6eyJrZXlpZHMiOlsiM2E5ZDFlMTlmYTNlNGZlMDRkZDhlMjFkOTNiMTQ4NWQxYTQ5Nzc0MzhiMDRiNTJiMGI2NDY2OWYxMmY3OTI2ZSJdLCJ0aHJlc2hvbGQiOjF9fSwic3BlY192ZXJzaW9uIjoiMS4wIiwidmVyc2lvbiI6NH19","eyJzaWduYXR1cmVzIjpbeyJrZXlpZCI6ImIyYjkzYTZkY2NjOTZkMDUzZTZkYjM5MTgxMTI0Yzg1YmE0MTU2ZDQzNTAzZDQzNTFiNTUwMDMxNmZhMDg0ZTgiLCJzaWciOiIzZTUyYjE0ZTNkMTBiOTFhM2NiOWM4OTRjODRkZWIzNjQ4YmVkZGIzMGNiMjhmYmUwODQ4NmQwYmZjYWIzMjdlYzVkN2U5Nzc0ZThjNmQ4ZmYzZWQ4NjEyODVkMjRmOGQyMmM3MjMwNmFhYTMwOGUwZTIxZGU2N2RiYTRjZTIwMyJ9LHsia2V5aWQiOiI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2Iiwic2lnIjoiZTNhYTQ4MjNjYTUxNjg3YTNkODcyZjZhZGYzMzQ2MDM4ZTBkZTcxNDUxNTY4YzI4MjA4NTk4YmQzOGNhODY3NWY1Y2E2OTJiMzVjM2M3MDE5YTlhZmQ0ODI3NjhlNWUzOGJjZmU2YmQ4NGFkMjgwODE4MTI0MTI4N2YyY2M0MDgifV0sInNpZ25lZCI6eyJfdHlwZSI6InJvb3QiLCJjb25zaXN0ZW50X3NuYXBzaG90Ijp0cnVlLCJleHBpcmVzIjoiMjAyMy0wOC0xMlQxNDowMDowMFoiLCJrZXlzIjp7IjE4M2QzYmU4YzllM2FiNjI2OWJmMzQxYWEwNDA0OWVjZDUwZWMzNGJhZDg3NWY3NmRjYzExNGU3OGNkOWI3YzEiOnsia2V5aWRfaGFzaF9hbGdvcml0aG1zIjpbInNoYTI1NiIsInNoYTUxMiJdLCJrZXl0eXBlIjoiZWQyNTUxOSIsImtleXZhbCI6eyJwdWJsaWMiOiJkYjhiMTI4ZjBiYWI1MTBhMGFmNTAwNWQwNTZlYzhiZmVkZDEyMjQ5YWQzYTNmZDQ5ZjZlNWZhMzY1MGYwNmZkIn0sInNjaGVtZSI6ImVkMjU1MTkifSwiNDRkNzBmYThlYWU0YzA3ZjI2YzI3NjcyNzA4MjdiNmI5ZTExZTc5NzI5MjZiM2I0MTliNWVhMTRlYzMyZjc5NiI6eyJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOlsic2hhMjU2Iiwic2hhNTEyIl0sImtleXR5cGUiOiJlZDI1NTE5Iiwia2V5dmFsIjp7InB1YmxpYyI6IjI4NmQ2YWUzMjgzNjVhZmVjMGY5MjUxOWNlYWI2OGNkNjI3ZTM0MDcyY2RlOTBiMmY1ZDE2N2JhZGVhOTcwZjIifSwic2NoZW1lIjoiZWQyNTUxOSJ9LCJiMmI5M2E2ZGNjYzk2ZDA1M2U2ZGIzOTE4MTEyNGM4NWJhNDE1NmQ0MzUwM2Q0MzUxYjU1MDAzMTZmYTA4NGU4Ijp7ImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6WyJzaGEyNTYiLCJzaGE1MTIiXSwia2V5dHlwZSI6ImVkMjU1MTkiLCJrZXl2YWwiOnsicHVibGljIjoiYWZkZDY4YmU1MzgxNWQ2N2Y4ZmE5OWNmMTAxYWFjNDU4OWEzNThjNjYwYWRmN2RkNGUxNzlmZTk2ODM0ZDNjOSJ9LCJzY2hlbWUiOiJlZDI1NTE5In19LCJyb2xlcyI6eyJyb290Ijp7ImtleWlkcyI6WyI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2IiwiYjJiOTNhNmRjY2M5NmQwNTNlNmRiMzkxODExMjRjODViYTQxNTZkNDM1MDNkNDM1MWI1NTAwMzE2ZmEwODRlOCJdLCJ0aHJlc2hvbGQiOjJ9LCJzbmFwc2hvdCI6eyJrZXlpZHMiOlsiMTgzZDNiZThjOWUzYWI2MjY5YmYzNDFhYTA0MDQ5ZWNkNTBlYzM0YmFkODc1Zjc2ZGNjMTE0ZTc4Y2Q5YjdjMSJdLCJ0aHJlc2hvbGQiOjF9LCJ0YXJnZXRzIjp7ImtleWlkcyI6WyIxODNkM2JlOGM5ZTNhYjYyNjliZjM0MWFhMDQwNDllY2Q1MGVjMzRiYWQ4NzVmNzZkY2MxMTRlNzhjZDliN2MxIl0sInRocmVzaG9sZCI6MX0sInRpbWVzdGFtcCI6eyJrZXlpZHMiOlsiMTgzZDNiZThjOWUzYWI2MjY5YmYzNDFhYTA0MDQ5ZWNkNTBlYzM0YmFkODc1Zjc2ZGNjMTE0ZTc4Y2Q5YjdjMSJdLCJ0aHJlc2hvbGQiOjF9fSwic3BlY192ZXJzaW9uIjoiMS4wIiwidmVyc2lvbiI6NX19","eyJzaWduYXR1cmVzIjpbeyJrZXlpZCI6ImIyYjkzYTZkY2NjOTZkMDUzZTZkYjM5MTgxMTI0Yzg1YmE0MTU2ZDQzNTAzZDQzNTFiNTUwMDMxNmZhMDg0ZTgiLCJzaWciOiI0NjFmYWE5OGZlNGVmNzg1NTdlMTUxOGExYTcwMDkyY2I4ODIxMjdiN2IzNWI4MWNkMzViMzA0MDQzY2QwMzhmOWY4NDM2NjIxZDZkMTU2ZDZiYzBlYmEyNDk4NDEwZTlmYWE5MzNmZTM2MGVhZGU4NTY4YjFhNmEzMmM5YWMwYiJ9LHsia2V5aWQiOiI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2Iiwic2lnIjoiNGE2ZTdhNTE1OTE3NzBlOWI3MTAyZGU1OTg4Y2VhOWZjZGI3YTU0MmI5NmI2MmJmY2NjODA4N2RkOTFkZjRmYjI0ZmMzNTZkM2JiNjVkYjEyZDZlZjE0YThhOTAwZTQzNjYyMWFhN2UxMTA4Y2ZmYzg0YTRkYTY1ODQ4MjYxMDIifV0sInNpZ25lZCI6eyJfdHlwZSI6InJvb3QiLCJjb25zaXN0ZW50X3NuYXBzaG90Ijp0cnVlLCJleHBpcmVzIjoiMjAyMy0wOC0xMlQxNDowMDowMFoiLCJrZXlzIjp7IjE4M2QzYmU4YzllM2FiNjI2OWJmMzQxYWEwNDA0OWVjZDUwZWMzNGJhZDg3NWY3NmRjYzExNGU3OGNkOWI3YzEiOnsia2V5aWRfaGFzaF9hbGdvcml0aG1zIjpbInNoYTI1NiIsInNoYTUxMiJdLCJrZXl0eXBlIjoiZWQyNTUxOSIsImtleXZhbCI6eyJwdWJsaWMiOiJkYjhiMTI4ZjBiYWI1MTBhMGFmNTAwNWQwNTZlYzhiZmVkZDEyMjQ5YWQzYTNmZDQ5ZjZlNWZhMzY1MGYwNmZkIn0sInNjaGVtZSI6ImVkMjU1MTkifSwiNDRkNzBmYThlYWU0YzA3ZjI2YzI3NjcyNzA4MjdiNmI5ZTExZTc5NzI5MjZiM2I0MTliNWVhMTRlYzMyZjc5NiI6eyJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOlsic2hhMjU2Iiwic2hhNTEyIl0sImtleXR5cGUiOiJlZDI1NTE5Iiwia2V5dmFsIjp7InB1YmxpYyI6IjI4NmQ2YWUzMjgzNjVhZmVjMGY5MjUxOWNlYWI2OGNkNjI3ZTM0MDcyY2RlOTBiMmY1ZDE2N2JhZGVhOTcwZjIifSwic2NoZW1lIjoiZWQyNTUxOSJ9LCJiMmI5M2E2ZGNjYzk2ZDA1M2U2ZGIzOTE4MTEyNGM4NWJhNDE1NmQ0MzUwM2Q0MzUxYjU1MDAzMTZmYTA4NGU4Ijp7ImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6WyJzaGEyNTYiLCJzaGE1MTIiXSwia2V5dHlwZSI6ImVkMjU1MTkiLCJrZXl2YWwiOnsicHVibGljIjoiYWZkZDY4YmU1MzgxNWQ2N2Y4ZmE5OWNmMTAxYWFjNDU4OWEzNThjNjYwYWRmN2RkNGUxNzlmZTk2ODM0ZDNjOSJ9LCJzY2hlbWUiOiJlZDI1NTE5In0sImRlZTY5ZGZjNTVmZjM4ODgwMWYzNzA0NGZjMWJjNjY5YTNlMjNlYzdkNmVkNmY0ZGRmYjE1ODczYThlNjFkZWQiOnsia2V5aWRfaGFzaF9hbGdvcml0aG1zIjpbInNoYTI1NiIsInNoYTUxMiJdLCJrZXl0eXBlIjoiZWQyNTUxOSIsImtleXZhbCI6eyJwdWJsaWMiOiI3YTE2ZDQzOWY1Y2FmNDY3MmEwZjdmOTNiYTlmMjMwMTZlZTI5NmMxZmIzYWQwZDYxNDc1YjU0MmQ2MTZjNDE5In0sInNjaGVtZSI6ImVkMjU1MTkifX0sInJvbGVzIjp7InJvb3QiOnsia2V5aWRzIjpbIjQ0ZDcwZmE4ZWFlNGMwN2YyNmMyNzY3MjcwODI3YjZiOWUxMWU3OTcyOTI2YjNiNDE5YjVlYTE0ZWMzMmY3OTYiLCJiMmI5M2E2ZGNjYzk2ZDA1M2U2ZGIzOTE4MTEyNGM4NWJhNDE1NmQ0MzUwM2Q0MzUxYjU1MDAzMTZmYTA4NGU4Il0sInRocmVzaG9sZCI6Mn0sInNuYXBzaG90Ijp7ImtleWlkcyI6WyIxODNkM2JlOGM5ZTNhYjYyNjliZjM0MWFhMDQwNDllY2Q1MGVjMzRiYWQ4NzVmNzZkY2MxMTRlNzhjZDliN2MxIiwiZGVlNjlkZmM1NWZmMzg4ODAxZjM3MDQ0ZmMxYmM2NjlhM2UyM2VjN2Q2ZWQ2ZjRkZGZiMTU4NzNhOGU2MWRlZCJdLCJ0aHJlc2hvbGQiOjF9LCJ0YXJnZXRzIjp7ImtleWlkcyI6WyIxODNkM2JlOGM5ZTNhYjYyNjliZjM0MWFhMDQwNDllY2Q1MGVjMzRiYWQ4NzVmNzZkY2MxMTRlNzhjZDliN2MxIiwiZGVlNjlkZmM1NWZmMzg4ODAxZjM3MDQ0ZmMxYmM2NjlhM2UyM2VjN2Q2ZWQ2ZjRkZGZiMTU4NzNhOGU2MWRlZCJdLCJ0aHJlc2hvbGQiOjF9LCJ0aW1lc3RhbXAiOnsia2V5aWRzIjpbIjE4M2QzYmU4YzllM2FiNjI2OWJmMzQxYWEwNDA0OWVjZDUwZWMzNGJhZDg3NWY3NmRjYzExNGU3OGNkOWI3YzEiLCJkZWU2OWRmYzU1ZmYzODg4MDFmMzcwNDRmYzFiYzY2OWEzZTIzZWM3ZDZlZDZmNGRkZmIxNTg3M2E4ZTYxZGVkIl0sInRocmVzaG9sZCI6MX19LCJzcGVjX3ZlcnNpb24iOiIxLjAiLCJ2ZXJzaW9uIjo2fX0=","eyJzaWduYXR1cmVzIjpbeyJrZXlpZCI6ImIyYjkzYTZkY2NjOTZkMDUzZTZkYjM5MTgxMTI0Yzg1YmE0MTU2ZDQzNTAzZDQzNTFiNTUwMDMxNmZhMDg0ZTgiLCJzaWciOiJlNDAwNDkxMTZiY2E1MzU1OThjYWRlMjAwZTBhMTFhMTlmOGExYzgwMThkYTk1NjFiMzdhZGQyOTBmMDE1YzE1N2RkMjU5NDlhYzcyMzU4Y2JjOGE3ZjBmNjA1N2U0YmFjYTVjNjg4N2Q5ODc4NzQ1ZTkwY2EwZmM2OGZkNjkwYyJ9LHsia2V5aWQiOiI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2Iiwic2lnIjoiYTkwYjA0MmE0YzM4ODI2OWYyY2YwMWY0NDNkNDYxZTc0Y2Y3NTljNzU4Y2E0ZjFiYzhiZTU5NGNkZWViN2MxMTdkMTI5MTdhNWE4MDRkMzZlYjUwOTYyZGY3Zjg2ZmU3M2UyN2YyYWY1Yzk0YjFkMzUzNDBmNTAxYTUwOGViMDAifV0sInNpZ25lZCI6eyJfdHlwZSI6InJvb3QiLCJjb25zaXN0ZW50X3NuYXBzaG90Ijp0cnVlLCJleHBpcmVzIjoiMjAyMy0wOC0xMlQxNDowMDowMFoiLCJrZXlzIjp7IjQ0ZDcwZmE4ZWFlNGMwN2YyNmMyNzY3MjcwODI3YjZiOWUxMWU3OTcyOTI2YjNiNDE5YjVlYTE0ZWMzMmY3OTYiOnsia2V5aWRfaGFzaF9hbGdvcml0aG1zIjpbInNoYTI1NiIsInNoYTUxMiJdLCJrZXl0eXBlIjoiZWQyNTUxOSIsImtleXZhbCI6eyJwdWJsaWMiOiIyODZkNmFlMzI4MzY1YWZlYzBmOTI1MTljZWFiNjhjZDYyN2UzNDA3MmNkZTkwYjJmNWQxNjdiYWRlYTk3MGYyIn0sInNjaGVtZSI6ImVkMjU1MTkifSwiYjJiOTNhNmRjY2M5NmQwNTNlNmRiMzkxODExMjRjODViYTQxNTZkNDM1MDNkNDM1MWI1NTAwMzE2ZmEwODRlOCI6eyJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOlsic2hhMjU2Iiwic2hhNTEyIl0sImtleXR5cGUiOiJlZDI1NTE5Iiwia2V5dmFsIjp7InB1YmxpYyI6ImFmZGQ2OGJlNTM4MTVkNjdmOGZhOTljZjEwMWFhYzQ1ODlhMzU4YzY2MGFkZjdkZDRlMTc5ZmU5NjgzNGQzYzkifSwic2NoZW1lIjoiZWQyNTUxOSJ9LCJkZWU2OWRmYzU1ZmYzODg4MDFmMzcwNDRmYzFiYzY2OWEzZTIzZWM3ZDZlZDZmNGRkZmIxNTg3M2E4ZTYxZGVkIjp7ImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6WyJzaGEyNTYiLCJzaGE1MTIiXSwia2V5dHlwZSI6ImVkMjU1MTkiLCJrZXl2YWwiOnsicHVibGljIjoiN2ExNmQ0MzlmNWNhZjQ2NzJhMGY3ZjkzYmE5ZjIzMDE2ZWUyOTZjMWZiM2FkMGQ2MTQ3NWI1NDJkNjE2YzQxOSJ9LCJzY2hlbWUiOiJlZDI1NTE5In19LCJyb2xlcyI6eyJyb290Ijp7ImtleWlkcyI6WyI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2IiwiYjJiOTNhNmRjY2M5NmQwNTNlNmRiMzkxODExMjRjODViYTQxNTZkNDM1MDNkNDM1MWI1NTAwMzE2ZmEwODRlOCJdLCJ0aHJlc2hvbGQiOjJ9LCJzbmFwc2hvdCI6eyJrZXlpZHMiOlsiZGVlNjlkZmM1NWZmMzg4ODAxZjM3MDQ0ZmMxYmM2NjlhM2UyM2VjN2Q2ZWQ2ZjRkZGZiMTU4NzNhOGU2MWRlZCJdLCJ0aHJlc2hvbGQiOjF9LCJ0YXJnZXRzIjp7ImtleWlkcyI6WyJkZWU2OWRmYzU1ZmYzODg4MDFmMzcwNDRmYzFiYzY2OWEzZTIzZWM3ZDZlZDZmNGRkZmIxNTg3M2E4ZTYxZGVkIl0sInRocmVzaG9sZCI6MX0sInRpbWVzdGFtcCI6eyJrZXlpZHMiOlsiZGVlNjlkZmM1NWZmMzg4ODAxZjM3MDQ0ZmMxYmM2NjlhM2UyM2VjN2Q2ZWQ2ZjRkZGZiMTU4NzNhOGU2MWRlZCJdLCJ0aHJlc2hvbGQiOjF9fSwic3BlY192ZXJzaW9uIjoiMS4wIiwidmVyc2lvbiI6N319","eyJzaWduYXR1cmVzIjpbeyJrZXlpZCI6ImIyYjkzYTZkY2NjOTZkMDUzZTZkYjM5MTgxMTI0Yzg1YmE0MTU2ZDQzNTAzZDQzNTFiNTUwMDMxNmZhMDg0ZTgiLCJzaWciOiJiYWM4NDRiY2JiMDU3YTQwOTUyYzhkMjhiNzgxZDk1NTgxMzMxZjcwODVlZTE3NTJiMjRjOGUyNzYwODU0ZTA3MTUzOTJjYmYxNWZmYTY3OGZiN2VkODg0MmIwY2ZmMThmNjkxMDNjN2ZjYTMzNmU3Y2VlMGQ5YTE5MGQ2Y2IwNiJ9LHsia2V5aWQiOiI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2Iiwic2lnIjoiYWE5YzFjNjE5OTIyNDRiODgzMjY2NGY4NDkxMzJiY2Q3NzI1ODI4YTExNmE4YzEzMDMxYmQzZTJhODUwMDZmYmViZjViMWRhN2NkMWFlNjFmNDYzOTBmODFkZGQxNTc4OTFkNmU1NzRhMmYyM2E2ODZhMDljZDg3YTAyNjZlMGEifV0sInNpZ25lZCI6eyJfdHlwZSI6InJvb3QiLCJjb25zaXN0ZW50X3NuYXBzaG90Ijp0cnVlLCJleHBpcmVzIjoiMjAyNC0wMi0wNVQxNjowMDowMFoiLCJrZXlzIjp7IjQ0ZDcwZmE4ZWFlNGMwN2YyNmMyNzY3MjcwODI3YjZiOWUxMWU3OTcyOTI2YjNiNDE5YjVlYTE0ZWMzMmY3OTYiOnsia2V5aWRfaGFzaF9hbGdvcml0aG1zIjpbInNoYTI1NiIsInNoYTUxMiJdLCJrZXl0eXBlIjoiZWQyNTUxOSIsImtleXZhbCI6eyJwdWJsaWMiOiIyODZkNmFlMzI4MzY1YWZlYzBmOTI1MTljZWFiNjhjZDYyN2UzNDA3MmNkZTkwYjJmNWQxNjdiYWRlYTk3MGYyIn0sInNjaGVtZSI6ImVkMjU1MTkifSwiYjJiOTNhNmRjY2M5NmQwNTNlNmRiMzkxODExMjRjODViYTQxNTZkNDM1MDNkNDM1MWI1NTAwMzE2ZmEwODRlOCI6eyJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOlsic2hhMjU2Iiwic2hhNTEyIl0sImtleXR5cGUiOiJlZDI1NTE5Iiwia2V5dmFsIjp7InB1YmxpYyI6ImFmZGQ2OGJlNTM4MTVkNjdmOGZhOTljZjEwMWFhYzQ1ODlhMzU4YzY2MGFkZjdkZDRlMTc5ZmU5NjgzNGQzYzkifSwic2NoZW1lIjoiZWQyNTUxOSJ9LCJkZWU2OWRmYzU1ZmYzODg4MDFmMzcwNDRmYzFiYzY2OWEzZTIzZWM3ZDZlZDZmNGRkZmIxNTg3M2E4ZTYxZGVkIjp7ImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6WyJzaGEyNTYiLCJzaGE1MTIiXSwia2V5dHlwZSI6ImVkMjU1MTkiLCJrZXl2YWwiOnsicHVibGljIjoiN2ExNmQ0MzlmNWNhZjQ2NzJhMGY3ZjkzYmE5ZjIzMDE2ZWUyOTZjMWZiM2FkMGQ2MTQ3NWI1NDJkNjE2YzQxOSJ9LCJzY2hlbWUiOiJlZDI1NTE5In19LCJyb2xlcyI6eyJyb290Ijp7ImtleWlkcyI6WyI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2IiwiYjJiOTNhNmRjY2M5NmQwNTNlNmRiMzkxODExMjRjODViYTQxNTZkNDM1MDNkNDM1MWI1NTAwMzE2ZmEwODRlOCJdLCJ0aHJlc2hvbGQiOjJ9LCJzbmFwc2hvdCI6eyJrZXlpZHMiOlsiZGVlNjlkZmM1NWZmMzg4ODAxZjM3MDQ0ZmMxYmM2NjlhM2UyM2VjN2Q2ZWQ2ZjRkZGZiMTU4NzNhOGU2MWRlZCJdLCJ0aHJlc2hvbGQiOjF9LCJ0YXJnZXRzIjp7ImtleWlkcyI6WyJkZWU2OWRmYzU1ZmYzODg4MDFmMzcwNDRmYzFiYzY2OWEzZTIzZWM3ZDZlZDZmNGRkZmIxNTg3M2E4ZTYxZGVkIl0sInRocmVzaG9sZCI6MX0sInRpbWVzdGFtcCI6eyJrZXlpZHMiOlsiZGVlNjlkZmM1NWZmMzg4ODAxZjM3MDQ0ZmMxYmM2NjlhM2UyM2VjN2Q2ZWQ2ZjRkZGZiMTU4NzNhOGU2MWRlZCJdLCJ0aHJlc2hvbGQiOjF9fSwic3BlY192ZXJzaW9uIjoiMS4wIiwidmVyc2lvbiI6OH19","eyJzaWduYXR1cmVzIjpbeyJrZXlpZCI6ImIyYjkzYTZkY2NjOTZkMDUzZTZkYjM5MTgxMTI0Yzg1YmE0MTU2ZDQzNTAzZDQzNTFiNTUwMDMxNmZhMDg0ZTgiLCJzaWciOiJkYmQyNzY1MmQxY2E1Y2VkNjFmZmJjMDNjZDQzN2QxMTQzZWM0NGZjZjg5YmY5NTU3NzY1NDhjNTA4NjMyNTQyZWJhYTI0NTk0OTA5NzAwMjgwNjM5ODI4NDJmZWIxODkyOWQ1NjA4MDA2N2RhMzFkODljYmM3MmQ0ZWEyZWEwMCJ9LHsia2V5aWQiOiI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2Iiwic2lnIjoiMmJlMjQ1NjY2ZDZjMDNhN2Y2NDQyMTQwOTUwNWUwNzQ1MjU0ZmI5N2I5MzkyZTcwMGJiMzdlNjM4MTc3MWZmODZkYTc2OWYxYjYxNmNkNzUzNThlOTI0YmI4ZTI1MWMwODUwNjEwODUwOGFmMTRmNWVkMGU3NTA1NWUxM2FmMDEifV0sInNpZ25lZCI6eyJfdHlwZSI6InJvb3QiLCJjb25zaXN0ZW50X3NuYXBzaG90Ijp0cnVlLCJleHBpcmVzIjoiMjAyNC0wOC0wNlQxNjowMDowMFoiLCJrZXlzIjp7IjQ0ZDcwZmE4ZWFlNGMwN2YyNmMyNzY3MjcwODI3YjZiOWUxMWU3OTcyOTI2YjNiNDE5YjVlYTE0ZWMzMmY3OTYiOnsia2V5aWRfaGFzaF9hbGdvcml0aG1zIjpbInNoYTI1NiIsInNoYTUxMiJdLCJrZXl0eXBlIjoiZWQyNTUxOSIsImtleXZhbCI6eyJwdWJsaWMiOiIyODZkNmFlMzI4MzY1YWZlYzBmOTI1MTljZWFiNjhjZDYyN2UzNDA3MmNkZTkwYjJmNWQxNjdiYWRlYTk3MGYyIn0sInNjaGVtZSI6ImVkMjU1MTkifSwiYjJiOTNhNmRjY2M5NmQwNTNlNmRiMzkxODExMjRjODViYTQxNTZkNDM1MDNkNDM1MWI1NTAwMzE2ZmEwODRlOCI6eyJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOlsic2hhMjU2Iiwic2hhNTEyIl0sImtleXR5cGUiOiJlZDI1NTE5Iiwia2V5dmFsIjp7InB1YmxpYyI6ImFmZGQ2OGJlNTM4MTVkNjdmOGZhOTljZjEwMWFhYzQ1ODlhMzU4YzY2MGFkZjdkZDRlMTc5ZmU5NjgzNGQzYzkifSwic2NoZW1lIjoiZWQyNTUxOSJ9LCJkZWU2OWRmYzU1ZmYzODg4MDFmMzcwNDRmYzFiYzY2OWEzZTIzZWM3ZDZlZDZmNGRkZmIxNTg3M2E4ZTYxZGVkIjp7ImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6WyJzaGEyNTYiLCJzaGE1MTIiXSwia2V5dHlwZSI6ImVkMjU1MTkiLCJrZXl2YWwiOnsicHVibGljIjoiN2ExNmQ0MzlmNWNhZjQ2NzJhMGY3ZjkzYmE5ZjIzMDE2ZWUyOTZjMWZiM2FkMGQ2MTQ3NWI1NDJkNjE2YzQxOSJ9LCJzY2hlbWUiOiJlZDI1NTE5In19LCJyb2xlcyI6eyJyb290Ijp7ImtleWlkcyI6WyI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2IiwiYjJiOTNhNmRjY2M5NmQwNTNlNmRiMzkxODExMjRjODViYTQxNTZkNDM1MDNkNDM1MWI1NTAwMzE2ZmEwODRlOCJdLCJ0aHJlc2hvbGQiOjJ9LCJzbmFwc2hvdCI6eyJrZXlpZHMiOlsiZGVlNjlkZmM1NWZmMzg4ODAxZjM3MDQ0ZmMxYmM2NjlhM2UyM2VjN2Q2ZWQ2ZjRkZGZiMTU4NzNhOGU2MWRlZCJdLCJ0aHJlc2hvbGQiOjF9LCJ0YXJnZXRzIjp7ImtleWlkcyI6WyJkZWU2OWRmYzU1ZmYzODg4MDFmMzcwNDRmYzFiYzY2OWEzZTIzZWM3ZDZlZDZmNGRkZmIxNTg3M2E4ZTYxZGVkIl0sInRocmVzaG9sZCI6MX0sInRpbWVzdGFtcCI6eyJrZXlpZHMiOlsiZGVlNjlkZmM1NWZmMzg4ODAxZjM3MDQ0ZmMxYmM2NjlhM2UyM2VjN2Q2ZWQ2ZjRkZGZiMTU4NzNhOGU2MWRlZCJdLCJ0aHJlc2hvbGQiOjF9fSwic3BlY192ZXJzaW9uIjoiMS4wIiwidmVyc2lvbiI6OX19","eyJzaWduYXR1cmVzIjpbeyJrZXlpZCI6ImIyYjkzYTZkY2NjOTZkMDUzZTZkYjM5MTgxMTI0Yzg1YmE0MTU2ZDQzNTAzZDQzNTFiNTUwMDMxNmZhMDg0ZTgiLCJzaWciOiIwZjllYWJlM2EyM2EyYTU3YjRiNzBkNTYyNWU1MGJiMjIzNGVkZWM3NDgwOGM5MDVlYzJiZGI0MDJmNTQ3OWNiOTQzYWM2MTFkMTFjNjc3MTBiMmNkNzE1MDI4MTQ2YjkxYmEwMjUyYzIwZDlmZjRkZmI5NGQ1Y2FjMWQ1MWMwNSJ9LHsia2V5aWQiOiI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2Iiwic2lnIjoiMzYwMmFkODgxNGQ1OGU4ZGUxYTExY2RlZGJmNzk1OTExNGZiNTAxYmExZjYzMzgyNWNhMWViNDMzYzhhMmQ5ZWE2YzQyZGMzZTkzZWQ1MTg4OTA3OTE5Y2E5MDUxODFiYmQwMDk4NjA4M2RlODNlZjEwM2ZkZmVkMzI4ZDk5MDIifV0sInNpZ25lZCI6eyJfdHlwZSI6InJvb3QiLCJjb25zaXN0ZW50X3NuYXBzaG90Ijp0cnVlLCJleHBpcmVzIjoiMjAyNC0wOS0wNVQxNzowMDowMFoiLCJrZXlzIjp7IjQ0ZDcwZmE4ZWFlNGMwN2YyNmMyNzY3MjcwODI3YjZiOWUxMWU3OTcyOTI2YjNiNDE5YjVlYTE0ZWMzMmY3OTYiOnsia2V5aWRfaGFzaF9hbGdvcml0aG1zIjpbInNoYTI1NiIsInNoYTUxMiJdLCJrZXl0eXBlIjoiZWQyNTUxOSIsImtleXZhbCI6eyJwdWJsaWMiOiIyODZkNmFlMzI4MzY1YWZlYzBmOTI1MTljZWFiNjhjZDYyN2UzNDA3MmNkZTkwYjJmNWQxNjdiYWRlYTk3MGYyIn0sInNjaGVtZSI6ImVkMjU1MTkifSwiYjJiOTNhNmRjY2M5NmQwNTNlNmRiMzkxODExMjRjODViYTQxNTZkNDM1MDNkNDM1MWI1NTAwMzE2ZmEwODRlOCI6eyJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOlsic2hhMjU2Iiwic2hhNTEyIl0sImtleXR5cGUiOiJlZDI1NTE5Iiwia2V5dmFsIjp7InB1YmxpYyI6ImFmZGQ2OGJlNTM4MTVkNjdmOGZhOTljZjEwMWFhYzQ1ODlhMzU4YzY2MGFkZjdkZDRlMTc5ZmU5NjgzNGQzYzkifSwic2NoZW1lIjoiZWQyNTUxOSJ9LCJkZWU2OWRmYzU1ZmYzODg4MDFmMzcwNDRmYzFiYzY2OWEzZTIzZWM3ZDZlZDZmNGRkZmIxNTg3M2E4ZTYxZGVkIjp7ImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6WyJzaGEyNTYiLCJzaGE1MTIiXSwia2V5dHlwZSI6ImVkMjU1MTkiLCJrZXl2YWwiOnsicHVibGljIjoiN2ExNmQ0MzlmNWNhZjQ2NzJhMGY3ZjkzYmE5ZjIzMDE2ZWUyOTZjMWZiM2FkMGQ2MTQ3NWI1NDJkNjE2YzQxOSJ9LCJzY2hlbWUiOiJlZDI1NTE5In19LCJyb2xlcyI6eyJyb290Ijp7ImtleWlkcyI6WyI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2IiwiYjJiOTNhNmRjY2M5NmQwNTNlNmRiMzkxODExMjRjODViYTQxNTZkNDM1MDNkNDM1MWI1NTAwMzE2ZmEwODRlOCJdLCJ0aHJlc2hvbGQiOjJ9LCJzbmFwc2hvdCI6eyJrZXlpZHMiOlsiZGVlNjlkZmM1NWZmMzg4ODAxZjM3MDQ0ZmMxYmM2NjlhM2UyM2VjN2Q2ZWQ2ZjRkZGZiMTU4NzNhOGU2MWRlZCJdLCJ0aHJlc2hvbGQiOjF9LCJ0YXJnZXRzIjp7ImtleWlkcyI6WyJkZWU2OWRmYzU1ZmYzODg4MDFmMzcwNDRmYzFiYzY2OWEzZTIzZWM3ZDZlZDZmNGRkZmIxNTg3M2E4ZTYxZGVkIl0sInRocmVzaG9sZCI6MX0sInRpbWVzdGFtcCI6eyJrZXlpZHMiOlsiZGVlNjlkZmM1NWZmMzg4ODAxZjM3MDQ0ZmMxYmM2NjlhM2UyM2VjN2Q2ZWQ2ZjRkZGZiMTU4NzNhOGU2MWRlZCJdLCJ0aHJlc2hvbGQiOjF9fSwic3BlY192ZXJzaW9uIjoiMS4wIiwidmVyc2lvbiI6MTB9fQ==","eyJzaWduYXR1cmVzIjpbeyJrZXlpZCI6ImIyYjkzYTZkY2NjOTZkMDUzZTZkYjM5MTgxMTI0Yzg1YmE0MTU2ZDQzNTAzZDQzNTFiNTUwMDMxNmZhMDg0ZTgiLCJzaWciOiIyMjdiZGNmMTRmYjBiNDRlODExNGE0NTExZGEyZTcxOWYxNWQ2MTE2NTc0Y2NiODRkOThhNzAzMDNiNTIzNzU2OGQ2ZTMzODU3NWUxMzk4ZTUwZmFkZjUxZDllNGRlMmRlYjRlZTc5ODAwMjI0MGMxNWUxYmUzZDJlZDc5Y2YwOCJ9LHsia2V5aWQiOiI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2Iiwic2lnIjoiMjlmZDAxN2EyZjkzZTJlZmM2MDFmZmI5NjdmMjM1YWM1MDEzYWZmMTRiZTkxYjJmZWI1Nzg1NGMzMDlkMDZiYWZhZWQ4MDA4Njc4MWQyMmZmNDdlMDFjYjE1ZGM0NzkyNjJkNDIzMzlhMzQxMTZlNDhmY2ZjZmRiZTBkYmZkMGYifV0sInNpZ25lZCI6eyJfdHlwZSI6InJvb3QiLCJjb25zaXN0ZW50X3NuYXBzaG90Ijp0cnVlLCJleHBpcmVzIjoiMjAyNS0wOS0wNFQxNzowMDowMFoiLCJrZXlzIjp7IjQ0ZDcwZmE4ZWFlNGMwN2YyNmMyNzY3MjcwODI3YjZiOWUxMWU3OTcyOTI2YjNiNDE5YjVlYTE0ZWMzMmY3OTYiOnsia2V5aWRfaGFzaF9hbGdvcml0aG1zIjpbInNoYTI1NiIsInNoYTUxMiJdLCJrZXl0eXBlIjoiZWQyNTUxOSIsImtleXZhbCI6eyJwdWJsaWMiOiIyODZkNmFlMzI4MzY1YWZlYzBmOTI1MTljZWFiNjhjZDYyN2UzNDA3MmNkZTkwYjJmNWQxNjdiYWRlYTk3MGYyIn0sInNjaGVtZSI6ImVkMjU1MTkifSwiYjJiOTNhNmRjY2M5NmQwNTNlNmRiMzkxODExMjRjODViYTQxNTZkNDM1MDNkNDM1MWI1NTAwMzE2ZmEwODRlOCI6eyJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOlsic2hhMjU2Iiwic2hhNTEyIl0sImtleXR5cGUiOiJlZDI1NTE5Iiwia2V5dmFsIjp7InB1YmxpYyI6ImFmZGQ2OGJlNTM4MTVkNjdmOGZhOTljZjEwMWFhYzQ1ODlhMzU4YzY2MGFkZjdkZDRlMTc5ZmU5NjgzNGQzYzkifSwic2NoZW1lIjoiZWQyNTUxOSJ9LCJkZWU2OWRmYzU1ZmYzODg4MDFmMzcwNDRmYzFiYzY2OWEzZTIzZWM3ZDZlZDZmNGRkZmIxNTg3M2E4ZTYxZGVkIjp7ImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6WyJzaGEyNTYiLCJzaGE1MTIiXSwia2V5dHlwZSI6ImVkMjU1MTkiLCJrZXl2YWwiOnsicHVibGljIjoiN2ExNmQ0MzlmNWNhZjQ2NzJhMGY3ZjkzYmE5ZjIzMDE2ZWUyOTZjMWZiM2FkMGQ2MTQ3NWI1NDJkNjE2YzQxOSJ9LCJzY2hlbWUiOiJlZDI1NTE5In19LCJyb2xlcyI6eyJyb290Ijp7ImtleWlkcyI6WyI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2IiwiYjJiOTNhNmRjY2M5NmQwNTNlNmRiMzkxODExMjRjODViYTQxNTZkNDM1MDNkNDM1MWI1NTAwMzE2ZmEwODRlOCJdLCJ0aHJlc2hvbGQiOjJ9LCJzbmFwc2hvdCI6eyJrZXlpZHMiOlsiZGVlNjlkZmM1NWZmMzg4ODAxZjM3MDQ0ZmMxYmM2NjlhM2UyM2VjN2Q2ZWQ2ZjRkZGZiMTU4NzNhOGU2MWRlZCJdLCJ0aHJlc2hvbGQiOjF9LCJ0YXJnZXRzIjp7ImtleWlkcyI6WyJkZWU2OWRmYzU1ZmYzODg4MDFmMzcwNDRmYzFiYzY2OWEzZTIzZWM3ZDZlZDZmNGRkZmIxNTg3M2E4ZTYxZGVkIl0sInRocmVzaG9sZCI6MX0sInRpbWVzdGFtcCI6eyJrZXlpZHMiOlsiZGVlNjlkZmM1NWZmMzg4ODAxZjM3MDQ0ZmMxYmM2NjlhM2UyM2VjN2Q2ZWQ2ZjRkZGZiMTU4NzNhOGU2MWRlZCJdLCJ0aHJlc2hvbGQiOjF9fSwic3BlY192ZXJzaW9uIjoiMS4wIiwidmVyc2lvbiI6MTF9fQ==","eyJzaWduYXR1cmVzIjpbeyJrZXlpZCI6ImIyYjkzYTZkY2NjOTZkMDUzZTZkYjM5MTgxMTI0Yzg1YmE0MTU2ZDQzNTAzZDQzNTFiNTUwMDMxNmZhMDg0ZTgiLCJzaWciOiJmNjc4NWE4NTYzMjRkYmJkMjQzYjc3NGVkYWQ0MGFhN2I2ZGNiZTY2OTg3NDVhN2E0YmE3YTVkZTk0MmU1YTJmMDAyZTliZTRlZDJkMzIwNmI4ZDZkMzI0OTZlNjk2Y2ViODY5Yjk2ODc3ZTc3Yzg2OTFjODFlMjkzMjcxYzQwMSJ9LHsia2V5aWQiOiI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2Iiwic2lnIjoiNGNjZTA5MzVlZmNlZDk5MGRmZjBiOTA2MWY3ODcwODBjMTY5OWVjMzdjMTE0NjljYjI0MjcxM2M1NzlhYzBjMjdkMDU2M2ZjY2UyMGFkMjBkYjA1Y2VhNWJhZDRhMTBhOWViMjk4NzBhOTZkOTZjZjY3YTc5ODc5ZWU2NDdhMDkifV0sInNpZ25lZCI6eyJfdHlwZSI6InJvb3QiLCJjb25zaXN0ZW50X3NuYXBzaG90Ijp0cnVlLCJleHBpcmVzIjoiMjAyNS0xMC0yOVQxNzowMDowMFoiLCJrZXlzIjp7IjQ0ZDcwZmE4ZWFlNGMwN2YyNmMyNzY3MjcwODI3YjZiOWUxMWU3OTcyOTI2YjNiNDE5YjVlYTE0ZWMzMmY3OTYiOnsia2V5aWRfaGFzaF9hbGdvcml0aG1zIjpbInNoYTI1NiIsInNoYTUxMiJdLCJrZXl0eXBlIjoiZWQyNTUxOSIsImtleXZhbCI6eyJwdWJsaWMiOiIyODZkNmFlMzI4MzY1YWZlYzBmOTI1MTljZWFiNjhjZDYyN2UzNDA3MmNkZTkwYjJmNWQxNjdiYWRlYTk3MGYyIn0sInNjaGVtZSI6ImVkMjU1MTkifSwiYjJiOTNhNmRjY2M5NmQwNTNlNmRiMzkxODExMjRjODViYTQxNTZkNDM1MDNkNDM1MWI1NTAwMzE2ZmEwODRlOCI6eyJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOlsic2hhMjU2Iiwic2hhNTEyIl0sImtleXR5cGUiOiJlZDI1NTE5Iiwia2V5dmFsIjp7InB1YmxpYyI6ImFmZGQ2OGJlNTM4MTVkNjdmOGZhOTljZjEwMWFhYzQ1ODlhMzU4YzY2MGFkZjdkZDRlMTc5ZmU5NjgzNGQzYzkifSwic2NoZW1lIjoiZWQyNTUxOSJ9LCJkZWU2OWRmYzU1ZmYzODg4MDFmMzcwNDRmYzFiYzY2OWEzZTIzZWM3ZDZlZDZmNGRkZmIxNTg3M2E4ZTYxZGVkIjp7ImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6WyJzaGEyNTYiLCJzaGE1MTIiXSwia2V5dHlwZSI6ImVkMjU1MTkiLCJrZXl2YWwiOnsicHVibGljIjoiN2ExNmQ0MzlmNWNhZjQ2NzJhMGY3ZjkzYmE5ZjIzMDE2ZWUyOTZjMWZiM2FkMGQ2MTQ3NWI1NDJkNjE2YzQxOSJ9LCJzY2hlbWUiOiJlZDI1NTE5In19LCJyb2xlcyI6eyJyb290Ijp7ImtleWlkcyI6WyI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2IiwiYjJiOTNhNmRjY2M5NmQwNTNlNmRiMzkxODExMjRjODViYTQxNTZkNDM1MDNkNDM1MWI1NTAwMzE2ZmEwODRlOCJdLCJ0aHJlc2hvbGQiOjJ9LCJzbmFwc2hvdCI6eyJrZXlpZHMiOlsiZGVlNjlkZmM1NWZmMzg4ODAxZjM3MDQ0ZmMxYmM2NjlhM2UyM2VjN2Q2ZWQ2ZjRkZGZiMTU4NzNhOGU2MWRlZCJdLCJ0aHJlc2hvbGQiOjF9LCJ0YXJnZXRzIjp7ImtleWlkcyI6WyJkZWU2OWRmYzU1ZmYzODg4MDFmMzcwNDRmYzFiYzY2OWEzZTIzZWM3ZDZlZDZmNGRkZmIxNTg3M2E4ZTYxZGVkIl0sInRocmVzaG9sZCI6MX0sInRpbWVzdGFtcCI6eyJrZXlpZHMiOlsiZGVlNjlkZmM1NWZmMzg4ODAxZjM3MDQ0ZmMxYmM2NjlhM2UyM2VjN2Q2ZWQ2ZjRkZGZiMTU4NzNhOGU2MWRlZCJdLCJ0aHJlc2hvbGQiOjF9fSwic3BlY192ZXJzaW9uIjoiMS4wIiwidmVyc2lvbiI6MTJ9fQ==","eyJzaWduYXR1cmVzIjpbeyJrZXlpZCI6ImIyYjkzYTZkY2NjOTZkMDUzZTZkYjM5MTgxMTI0Yzg1YmE0MTU2ZDQzNTAzZDQzNTFiNTUwMDMxNmZhMDg0ZTgiLCJzaWciOiIzYjk2M2U0ZTU5OTE0ZThmYzY1ODliZDM1YTU0ZGU2YzRmNTU5MTVmMWI3ZTA3MmQzOTNmNWRmMTljZWVjZmI4ZDgyZGNjZmY4ODcyMzlhYjY3NTFiNTFmYjlhNTQ0ZjU0NWIyNTIzOWFhNWY0YzQ2Zjc5NmIyYWRmMTA4YzUwMSJ9LHsia2V5aWQiOiI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2Iiwic2lnIjoiMmVhOWU0MGM5N2YzYjgxYjMzNmQyMmFhMmUzNjBhYzE0MzA2MzUyMjFlZTAwMTRlMjA4ODNiMzdkMDk0YTZhYzBhMTU5NDY5OWFjOWU4ZmEzOGUwODg3ZjE5OTkxMTIzMTI1ZTIwMWE0ODQzYzIxOThmNTY3YjI1OGQ2MDMyMGMifV0sInNpZ25lZCI6eyJfdHlwZSI6InJvb3QiLCJjb25zaXN0ZW50X3NuYXBzaG90Ijp0cnVlLCJleHBpcmVzIjoiMjAyNS0xMS0yOVQxNzowMDowMFoiLCJrZXlzIjp7IjQ0ZDcwZmE4ZWFlNGMwN2YyNmMyNzY3MjcwODI3YjZiOWUxMWU3OTcyOTI2YjNiNDE5YjVlYTE0ZWMzMmY3OTYiOnsia2V5aWRfaGFzaF9hbGdvcml0aG1zIjpbInNoYTI1NiIsInNoYTUxMiJdLCJrZXl0eXBlIjoiZWQyNTUxOSIsImtleXZhbCI6eyJwdWJsaWMiOiIyODZkNmFlMzI4MzY1YWZlYzBmOTI1MTljZWFiNjhjZDYyN2UzNDA3MmNkZTkwYjJmNWQxNjdiYWRlYTk3MGYyIn0sInNjaGVtZSI6ImVkMjU1MTkifSwiNGQ4NWE4Y2Y1ZThiOTM5MTU1ZGIyMWUwZmE0MTM0NTdmMTg4ZjNhMDI2ODY3MTYxOGI3ZTgwMTczNWI1YzQ1ZCI6eyJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOlsic2hhMjU2Iiwic2hhNTEyIl0sImtleXR5cGUiOiJlZDI1NTE5Iiwia2V5dmFsIjp7InB1YmxpYyI6IjRlOTk5NTBiZmQ1ZjFkYzMyM2E2YWNlZjFkZWI3YWU4YzkxNDFlMjJkZDA1Mzg0ODkwODIyMTIxNDVkNjRhNTIifSwic2NoZW1lIjoiZWQyNTUxOSJ9LCJiMmI5M2E2ZGNjYzk2ZDA1M2U2ZGIzOTE4MTEyNGM4NWJhNDE1NmQ0MzUwM2Q0MzUxYjU1MDAzMTZmYTA4NGU4Ijp7ImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6WyJzaGEyNTYiLCJzaGE1MTIiXSwia2V5dHlwZSI6ImVkMjU1MTkiLCJrZXl2YWwiOnsicHVibGljIjoiYWZkZDY4YmU1MzgxNWQ2N2Y4ZmE5OWNmMTAxYWFjNDU4OWEzNThjNjYwYWRmN2RkNGUxNzlmZTk2ODM0ZDNjOSJ9LCJzY2hlbWUiOiJlZDI1NTE5In19LCJyb2xlcyI6eyJyb290Ijp7ImtleWlkcyI6WyI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2IiwiYjJiOTNhNmRjY2M5NmQwNTNlNmRiMzkxODExMjRjODViYTQxNTZkNDM1MDNkNDM1MWI1NTAwMzE2ZmEwODRlOCJdLCJ0aHJlc2hvbGQiOjJ9LCJzbmFwc2hvdCI6eyJrZXlpZHMiOlsiNGQ4NWE4Y2Y1ZThiOTM5MTU1ZGIyMWUwZmE0MTM0NTdmMTg4ZjNhMDI2ODY3MTYxOGI3ZTgwMTczNWI1YzQ1ZCJdLCJ0aHJlc2hvbGQiOjF9LCJ0YXJnZXRzIjp7ImtleWlkcyI6WyI0ZDg1YThjZjVlOGI5MzkxNTVkYjIxZTBmYTQxMzQ1N2YxODhmM2EwMjY4NjcxNjE4YjdlODAxNzM1YjVjNDVkIl0sInRocmVzaG9sZCI6MX0sInRpbWVzdGFtcCI6eyJrZXlpZHMiOlsiNGQ4NWE4Y2Y1ZThiOTM5MTU1ZGIyMWUwZmE0MTM0NTdmMTg4ZjNhMDI2ODY3MTYxOGI3ZTgwMTczNWI1YzQ1ZCJdLCJ0aHJlc2hvbGQiOjF9fSwic3BlY192ZXJzaW9uIjoiMS4wIiwidmVyc2lvbiI6MTN9fQ==","eyJzaWduYXR1cmVzIjpbeyJrZXlpZCI6ImIyYjkzYTZkY2NjOTZkMDUzZTZkYjM5MTgxMTI0Yzg1YmE0MTU2ZDQzNTAzZDQzNTFiNTUwMDMxNmZhMDg0ZTgiLCJzaWciOiJkYjg2MzE0YTFhMThmZmYxOWE1YjA4MjIwMjVhMTViM2FmZTk1MDBkNjYzYzM4YjE4ODU4MGFkZTkxYzFjOWE0MzI5ODZmZmQyNzYyNmZlNzM1NjlmYjljYzMyOGVhMWZhNjVkMWVmNDgzYjQyMzdjY2M1Y2I4NDUxMDhlMjYwZCJ9LHsia2V5aWQiOiI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2Iiwic2lnIjoiNGNhYjdlZTIxOWQ0YWUxMTlhMmNiYzVlZTUwNTE5NzdlMmExMDRhYjRjMDhlODA4MDYxZTM5ZmYwNjQ2MjU1NGE2MWFjYTZlYTFjZjI4NmE3MWNkZGE5MWU2Mjg0MDRjZjIxNWU4MWJlOTk0ZDllYjBiY2Q0YmQ0YWEyM2FhMDIifV0sInNpZ25lZCI6eyJfdHlwZSI6InJvb3QiLCJjb25zaXN0ZW50X3NuYXBzaG90Ijp0cnVlLCJleHBpcmVzIjoiMjAyNS0xMi0wMVQxNzowMDowMFoiLCJrZXlzIjp7IjJlMzQyYWY4NTc5YTk3YjhlNDRmZmQ1YWMyODExZWQxNzMzYWJiMzIzNDdiYjIxYzAzZGQ4Mzg4MzMzMjg3ZGQiOnsia2V5aWRfaGFzaF9hbGdvcml0aG1zIjpbInNoYTI1NiIsInNoYTUxMiJdLCJrZXl0eXBlIjoiZWQyNTUxOSIsImtleXZhbCI6eyJwdWJsaWMiOiJhOTE0ZTBmM2M4NjZlOGZlZDgxZDcwODM3ZWRkYWNlYTIyODBlYWFhMmVmMjVhYjI0ZjFmZDhkZjFhMjdhNTdhIn0sInNjaGVtZSI6ImVkMjU1MTkifSwiNDRkNzBmYThlYWU0YzA3ZjI2YzI3NjcyNzA4MjdiNmI5ZTExZTc5NzI5MjZiM2I0MTliNWVhMTRlYzMyZjc5NiI6eyJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOlsic2hhMjU2Iiwic2hhNTEyIl0sImtleXR5cGUiOiJlZDI1NTE5Iiwia2V5dmFsIjp7InB1YmxpYyI6IjI4NmQ2YWUzMjgzNjVhZmVjMGY5MjUxOWNlYWI2OGNkNjI3ZTM0MDcyY2RlOTBiMmY1ZDE2N2JhZGVhOTcwZjIifSwic2NoZW1lIjoiZWQyNTUxOSJ9LCJiMmI5M2E2ZGNjYzk2ZDA1M2U2ZGIzOTE4MTEyNGM4NWJhNDE1NmQ0MzUwM2Q0MzUxYjU1MDAzMTZmYTA4NGU4Ijp7ImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6WyJzaGEyNTYiLCJzaGE1MTIiXSwia2V5dHlwZSI6ImVkMjU1MTkiLCJrZXl2YWwiOnsicHVibGljIjoiYWZkZDY4YmU1MzgxNWQ2N2Y4ZmE5OWNmMTAxYWFjNDU4OWEzNThjNjYwYWRmN2RkNGUxNzlmZTk2ODM0ZDNjOSJ9LCJzY2hlbWUiOiJlZDI1NTE5In19LCJyb2xlcyI6eyJyb290Ijp7ImtleWlkcyI6WyI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2IiwiYjJiOTNhNmRjY2M5NmQwNTNlNmRiMzkxODExMjRjODViYTQxNTZkNDM1MDNkNDM1MWI1NTAwMzE2ZmEwODRlOCJdLCJ0aHJlc2hvbGQiOjJ9LCJzbmFwc2hvdCI6eyJrZXlpZHMiOlsiMmUzNDJhZjg1NzlhOTdiOGU0NGZmZDVhYzI4MTFlZDE3MzNhYmIzMjM0N2JiMjFjMDNkZDgzODgzMzMyODdkZCJdLCJ0aHJlc2hvbGQiOjF9LCJ0YXJnZXRzIjp7ImtleWlkcyI6WyIyZTM0MmFmODU3OWE5N2I4ZTQ0ZmZkNWFjMjgxMWVkMTczM2FiYjMyMzQ3YmIyMWMwM2RkODM4ODMzMzI4N2RkIl0sInRocmVzaG9sZCI6MX0sInRpbWVzdGFtcCI6eyJrZXlpZHMiOlsiMmUzNDJhZjg1NzlhOTdiOGU0NGZmZDVhYzI4MTFlZDE3MzNhYmIzMjM0N2JiMjFjMDNkZDgzODgzMzMyODdkZCJdLCJ0aHJlc2hvbGQiOjF9fSwic3BlY192ZXJzaW9uIjoiMS4wIiwidmVyc2lvbiI6MTR9fQ==","eyJzaWduYXR1cmVzIjpbeyJrZXlpZCI6ImIyYjkzYTZkY2NjOTZkMDUzZTZkYjM5MTgxMTI0Yzg1YmE0MTU2ZDQzNTAzZDQzNTFiNTUwMDMxNmZhMDg0ZTgiLCJzaWciOiJmNGRhMjQ0YTlhN2I3NTBmZGRiZWFjODVlMmZmNDg2NjIxZmJhMjJlMmFjNTRmMWI2ZDM1MWM1Nzg4Mjg1ZGNiNzBkZGY5ODI0OTcyZDcwNjgwOWU4ZGIwMTVjNGZlYTM1NWI3ZTcwMjViYTVjYWE4ZjgzY2E1MjRjNzYwOTUwNiJ9LHsia2V5aWQiOiI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2Iiwic2lnIjoiMTYzN2ZiM2U5NzU3NjNmYzdmMTQ5Nzc2NzMxZTk4OTI2ZDkyNDYwZmY5MzU3ZDhhNjVkZmU1ZTgzN2ZjMDBjZDQwZDcxMWRiODA3NDcyNzM2NWNhMmU3YjU4YjEwZWVhNzhkODUyY2E1ZjQyNzM0MzNiYzQ3NzFjODU1YmUyMGMifV0sInNpZ25lZCI6eyJfdHlwZSI6InJvb3QiLCJjb25zaXN0ZW50X3NuYXBzaG90Ijp0cnVlLCJleHBpcmVzIjoiMjAyNS0xMi0wMVQxNzowMDowMFoiLCJrZXlzIjp7IjQ0ZDcwZmE4ZWFlNGMwN2YyNmMyNzY3MjcwODI3YjZiOWUxMWU3OTcyOTI2YjNiNDE5YjVlYTE0ZWMzMmY3OTYiOnsia2V5aWRfaGFzaF9hbGdvcml0aG1zIjpbInNoYTI1NiIsInNoYTUxMiJdLCJrZXl0eXBlIjoiZWQyNTUxOSIsImtleXZhbCI6eyJwdWJsaWMiOiIyODZkNmFlMzI4MzY1YWZlYzBmOTI1MTljZWFiNjhjZDYyN2UzNDA3MmNkZTkwYjJmNWQxNjdiYWRlYTk3MGYyIn0sInNjaGVtZSI6ImVkMjU1MTkifSwiOTY5YzMxNjI5YzgwYjgwZmU0ODBjNTg5NGI2Mzk5OWUzNTg5YjU5YjJjMWRmOWMxYzk0Nzg1ZTM1YWQzYThjNyI6eyJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOlsic2hhMjU2Iiwic2hhNTEyIl0sImtleXR5cGUiOiJlZDI1NTE5Iiwia2V5dmFsIjp7InB1YmxpYyI6ImE1NmRiNWNkNDc4MjUzYzUyYTVkMjYyOWE3N2E3ZDljMTIyOTRkZTk0NzgxNmQzNmVmNjU5MDE3MWM5OWM2N2UifSwic2NoZW1lIjoiZWQyNTUxOSJ9LCJiMmI5M2E2ZGNjYzk2ZDA1M2U2ZGIzOTE4MTEyNGM4NWJhNDE1NmQ0MzUwM2Q0MzUxYjU1MDAzMTZmYTA4NGU4Ijp7ImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6WyJzaGEyNTYiLCJzaGE1MTIiXSwia2V5dHlwZSI6ImVkMjU1MTkiLCJrZXl2YWwiOnsicHVibGljIjoiYWZkZDY4YmU1MzgxNWQ2N2Y4ZmE5OWNmMTAxYWFjNDU4OWEzNThjNjYwYWRmN2RkNGUxNzlmZTk2ODM0ZDNjOSJ9LCJzY2hlbWUiOiJlZDI1NTE5In19LCJyb2xlcyI6eyJyb290Ijp7ImtleWlkcyI6WyI0NGQ3MGZhOGVhZTRjMDdmMjZjMjc2NzI3MDgyN2I2YjllMTFlNzk3MjkyNmIzYjQxOWI1ZWExNGVjMzJmNzk2IiwiYjJiOTNhNmRjY2M5NmQwNTNlNmRiMzkxODExMjRjODViYTQxNTZkNDM1MDNkNDM1MWI1NTAwMzE2ZmEwODRlOCJdLCJ0aHJlc2hvbGQiOjJ9LCJzbmFwc2hvdCI6eyJrZXlpZHMiOlsiOTY5YzMxNjI5YzgwYjgwZmU0ODBjNTg5NGI2Mzk5OWUzNTg5YjU5YjJjMWRmOWMxYzk0Nzg1ZTM1YWQzYThjNyJdLCJ0aHJlc2hvbGQiOjF9LCJ0YXJnZXRzIjp7ImtleWlkcyI6WyI5NjljMzE2MjljODBiODBmZTQ4MGM1ODk0YjYzOTk5ZTM1ODliNTliMmMxZGY5YzFjOTQ3ODVlMzVhZDNhOGM3Il0sInRocmVzaG9sZCI6MX0sInRpbWVzdGFtcCI6eyJrZXlpZHMiOlsiOTY5YzMxNjI5YzgwYjgwZmU0ODBjNTg5NGI2Mzk5OWUzNTg5YjU5YjJjMWRmOWMxYzk0Nzg1ZTM1YWQzYThjNyJdLCJ0aHJlc2hvbGQiOjF9fSwic3BlY192ZXJzaW9uIjoiMS4wIiwidmVyc2lvbiI6MTV9fQ=="],"targets":"eyJzaWduYXR1cmVzIjpbeyJrZXlpZCI6Ijk2OWMzMTYyOWM4MGI4MGZlNDgwYzU4OTRiNjM5OTllMzU4OWI1OWIyYzFkZjljMWM5NDc4NWUzNWFkM2E4YzciLCJzaWciOiI1NzM1MTM4MjgwMzVhMTVlYjIwYTk2NjgxOTlmOTg1OTlmN2YzYjM0NWZiN2M1NTU3OTVkNmNjMTIyNDlmZjZhODlkODcwZmRiMGEzNjU0OWIwNmI4OTM0NTZhYzNlOGQ3ZWMzMGU2ZDBjNTc1MTllOTYyOWM1MjQ4NWU3ZTYwMSJ9XSwic2lnbmVkIjp7Il90eXBlIjoidGFyZ2V0cyIsImN1c3RvbSI6eyJhZ2VudF9yZWZyZXNoX2ludGVydmFsIjo1LCJvcGFxdWVfYmFja2VuZF9zdGF0ZSI6ImV5SjJaWEp6YVc5dUlqb3lMQ0p6ZEdGMFpTSTZleUptYVd4bFgyaGhjMmhsY3lJNmV5SmxiWEJzYjNsbFpTOUJVMDFmUkVRdk16WXVjbVZqYjIxdFpXNWtaV1F1YW5OdmJpOWpiMjVtYVdjaU9sc2lXVlpDTUdKRVRWbHZWRkYyY2xGYVQzWmtTREJMUXpSc09ITk9XVkk1YkVNeFNFZGtRbVJVT1hKbE1EMGlYWDBzSW1sZk16RTVNek1pT25SeWRXVjlmUT09In0sImV4cGlyZXMiOiIyMDI1LTA4LTE2VDEzOjQ4OjQwWiIsInNwZWNfdmVyc2lvbiI6IjEuMC4wIiwidGFyZ2V0cyI6eyJlbXBsb3llZS9BU01fREQvMzYucmVjb21tZW5kZWQuanNvbi9jb25maWciOnsiY3VzdG9tIjp7ImMiOlsiNTIxZTVjNjEtMWFlOS00MDc2LWE1ZWUtYTI1MzE4N2ZiZmFmIiwiODVkYTAyMGEtYTJmZC00Yjg0LTlhYWMtZmZiYjk4OTU1YmJlIiwiZDY1NzdlNDQtZjczNS00Y2YwLWJlNDgtNzE0OGZkYTA2ZmUxIiwiZWM3YWQwYWQtMDFmMi00Y2FjLTg0OWItMTQwZDJjZmVmYjFhIiwiMTA0ZDJjYzgtMTI0OC00YTA2LWEzZjUtN2ZhYjczMzJhMmE1IiwiNGViYWQwOWItNGY2OS00MTkxLTk4MzAtMGI0MzBlYzdlM2JjIiwiNThkYmYwY2UtNjNiOS00OTQ3LWE4NzEtZDIxYjhlMTFkZDUzIiwiNjNhNjk4NDgtMjQ1OC00NGQ4LTkxODEtODMzNmM5ZDQ4ZjkwIiwiMDJkZGRiMGUtM2IwOC00MDhkLWFmYTctYjM4OGExYzdlYzVjIiwiMjI2NzViYmYtNmE2MC00NjEyLWI2YTUtMWUwNmNiYzhmMmE4IiwiY2VjOTQwNmQtYzU2ZC00NmUzLWJjOWMtMTIxZmIxYjlhNmYzIiwiNmE4NGE4MDEtNTFiZS00NjcxLWIwODUtNjk0ZmQyYWY4ODk3IiwiZDM3NzBiNzMtNGU3Yy00NmI3LWI2NjEtNDIxZDdiZTE0OGRmIiwiYTZlZmRhNzEtNmVmYi00OTRmLTllZTQtZjY2NTcxNmY2YTVkIiwiYWFkYjNhNjAtZTEwOC00NmNmLTgwYzktNWYyM2Y2YjU4OTU0IiwiYjc1ZmI1MzctYzk4YS00ZTBhLWI5MTAtZjU4MjVlNjI3Y2I5IiwiNzEwYjRhNDQtZjEwMS00MDkzLTkyZTUtYTgyYTMwNDI5NDc4IiwiOWMyYTc4MGItZGQyZC00MzEyLWEwZGQtODk5YjExMDlkNTgwIiwiYmFlYmMyZmUtNmRkNy00OTI5LWI0ZjQtZTA1M2VhNDFmZmU4IiwiZTU3YzY3ZDItODg5YS00MzNjLWFjZmUtMGRiMWQwY2Y3Y2JkIiwiMjIzNDFjZDAtNDA4Yi00NTI0LWI4YjUtNTY3MzUyNmE4OThiIiwiMzE0MmZmNjItYWFkMy00ODgzLThkNGQtNWQ2ZTNhYWMwYjJhIiwiNGExMWE3NmEtZDk4Zi00Y2JiLTkxMjktMTg3NmFjYzJjZjVlIiwiNWUwMmI5MzctNzhkMC00MDBhLTg0YjQtNjg3NDE4YTg3ZWUyIiwiNzg2MWFkZWItMzQwNS00ODJmLTk2MGMtYWQ2NGFjMWFmYWFiIiwiODg1MzQzMDMtOGM2NS00NmEzLWJiNzQtNjQ1YTlhZmY4MmUwIiwiNGE1ZGUwNDItZWJiMy00MWYxLTk0YTUtMDg2YjM4ZmVlYzJiIiwiNzAwYjE2NWUtNTY3My00M2U5LTllOGQtOThmNDhmY2Q5ZWZiIiwiNzA3NTJkNmUtYjY5NS00NWEzLThkMzctOGZlMDU2Njk0ZjhhIiwiOGY0ZTJjN2MtMGQxOC00ZTYxLWFmNDMtMTVlZDQ5YmFjZTllIiwiYTQ2YmZiZGQtODA5NS00MjRlLWFlNzUtNzMxMDhjYjhlN2I5IiwiYWNhYjY3MGYtNGY2ZS00OGI3LTlkOGYtZTQ5N2RhNmYzYjNhIiwiZTYyMDU1OWItNmQzMC00OWVjLWJiODUtMzZjY2RjODA3NzYyIiwiZjJkMDM2NTUtY2YxNC00NWQ5LTlkNWMtOWY5Y2M0YjY1YzE0IiwiMzRiMWQxZmQtMDgxZi00NjdlLWIyZGYtZmEzNjQ2MjMzMDIwIl0sInRyYWNlci1wcmVkaWNhdGVzIjp7InRyYWNlcl9wcmVkaWNhdGVzX3YxIjpbeyJjbGllbnRJRCI6IjUyMWU1YzYxLTFhZTktNDA3Ni1hNWVlLWEyNTMxODdmYmZhZiJ9LHsiY2xpZW50SUQiOiI4NWRhMDIwYS1hMmZkLTRiODQtOWFhYy1mZmJiOTg5NTViYmUifSx7ImNsaWVudElEIjoiZDY1NzdlNDQtZjczNS00Y2YwLWJlNDgtNzE0OGZkYTA2ZmUxIn0seyJjbGllbnRJRCI6ImVjN2FkMGFkLTAxZjItNGNhYy04NDliLTE0MGQyY2ZlZmIxYSJ9LHsiY2xpZW50SUQiOiIxMDRkMmNjOC0xMjQ4LTRhMDYtYTNmNS03ZmFiNzMzMmEyYTUifSx7ImNsaWVudElEIjoiNGViYWQwOWItNGY2OS00MTkxLTk4MzAtMGI0MzBlYzdlM2JjIn0seyJjbGllbnRJRCI6IjU4ZGJmMGNlLTYzYjktNDk0Ny1hODcxLWQyMWI4ZTExZGQ1MyJ9LHsiY2xpZW50SUQiOiI2M2E2OTg0OC0yNDU4LTQ0ZDgtOTE4MS04MzM2YzlkNDhmOTAifSx7ImNsaWVudElEIjoiMDJkZGRiMGUtM2IwOC00MDhkLWFmYTctYjM4OGExYzdlYzVjIn0seyJjbGllbnRJRCI6IjIyNjc1YmJmLTZhNjAtNDYxMi1iNmE1LTFlMDZjYmM4ZjJhOCJ9LHsiY2xpZW50SUQiOiJjZWM5NDA2ZC1jNTZkLTQ2ZTMtYmM5Yy0xMjFmYjFiOWE2ZjMifSx7ImNsaWVudElEIjoiNmE4NGE4MDEtNTFiZS00NjcxLWIwODUtNjk0ZmQyYWY4ODk3In0seyJjbGllbnRJRCI6ImQzNzcwYjczLTRlN2MtNDZiNy1iNjYxLTQyMWQ3YmUxNDhkZiJ9LHsiY2xpZW50SUQiOiJhNmVmZGE3MS02ZWZiLTQ5NGYtOWVlNC1mNjY1NzE2ZjZhNWQifSx7ImNsaWVudElEIjoiYWFkYjNhNjAtZTEwOC00NmNmLTgwYzktNWYyM2Y2YjU4OTU0In0seyJjbGllbnRJRCI6ImI3NWZiNTM3LWM5OGEtNGUwYS1iOTEwLWY1ODI1ZTYyN2NiOSJ9LHsiY2xpZW50SUQiOiI3MTBiNGE0NC1mMTAxLTQwOTMtOTJlNS1hODJhMzA0Mjk0NzgifSx7ImNsaWVudElEIjoiOWMyYTc4MGItZGQyZC00MzEyLWEwZGQtODk5YjExMDlkNTgwIn0seyJjbGllbnRJRCI6ImJhZWJjMmZlLTZkZDctNDkyOS1iNGY0LWUwNTNlYTQxZmZlOCJ9LHsiY2xpZW50SUQiOiJlNTdjNjdkMi04ODlhLTQzM2MtYWNmZS0wZGIxZDBjZjdjYmQifSx7ImNsaWVudElEIjoiMjIzNDFjZDAtNDA4Yi00NTI0LWI4YjUtNTY3MzUyNmE4OThiIn0seyJjbGllbnRJRCI6IjMxNDJmZjYyLWFhZDMtNDg4My04ZDRkLTVkNmUzYWFjMGIyYSJ9LHsiY2xpZW50SUQiOiI0YTExYTc2YS1kOThmLTRjYmItOTEyOS0xODc2YWNjMmNmNWUifSx7ImNsaWVudElEIjoiNWUwMmI5MzctNzhkMC00MDBhLTg0YjQtNjg3NDE4YTg3ZWUyIn0seyJjbGllbnRJRCI6Ijc4NjFhZGViLTM0MDUtNDgyZi05NjBjLWFkNjRhYzFhZmFhYiJ9LHsiY2xpZW50SUQiOiI4ODUzNDMwMy04YzY1LTQ2YTMtYmI3NC02NDVhOWFmZjgyZTAifSx7ImNsaWVudElEIjoiNGE1ZGUwNDItZWJiMy00MWYxLTk0YTUtMDg2YjM4ZmVlYzJiIn0seyJjbGllbnRJRCI6IjcwMGIxNjVlLTU2NzMtNDNlOS05ZThkLTk4ZjQ4ZmNkOWVmYiJ9LHsiY2xpZW50SUQiOiI3MDc1MmQ2ZS1iNjk1LTQ1YTMtOGQzNy04ZmUwNTY2OTRmOGEifSx7ImNsaWVudElEIjoiOGY0ZTJjN2MtMGQxOC00ZTYxLWFmNDMtMTVlZDQ5YmFjZTllIn0seyJjbGllbnRJRCI6ImE0NmJmYmRkLTgwOTUtNDI0ZS1hZTc1LTczMTA4Y2I4ZTdiOSJ9LHsiY2xpZW50SUQiOiJhY2FiNjcwZi00ZjZlLTQ4YjctOWQ4Zi1lNDk3ZGE2ZjNiM2EifSx7ImNsaWVudElEIjoiZTYyMDU1OWItNmQzMC00OWVjLWJiODUtMzZjY2RjODA3NzYyIn0seyJjbGllbnRJRCI6ImYyZDAzNjU1LWNmMTQtNDVkOS05ZDVjLTlmOWNjNGI2NWMxNCJ9LHsiY2xpZW50SUQiOiIzNGIxZDFmZC0wODFmLTQ2N2UtYjJkZi1mYTM2NDYyMzMwMjAifV19LCJ2IjoxfSwiaGFzaGVzIjp7InNoYTI1NiI6IjYxNTA3NDZjMzMxOGExMzQyZmFkMDY0ZWJkZDFmNDI4MmUyNWYyYzM1ODQ3ZDk0MmQ0NzE5ZDA1ZDRmZGFkZWQifSwibGVuZ3RoIjozMTQwODl9fSwidmVyc2lvbiI6MTE1MjcwNTU3fX0=","client_configs":["employee/ASM_DD/36.recommended.json/config"]}

The immediate request after that again

{"client":{"state":{"root_version":1,"targets_version":115270557,"config_states":[{"id":"36.recommended.json","version":1,"product":"ASM_DD","apply_state":2,"apply_error":""}],"has_error":false,"error":"","backend_client_state":[101,121,74,50,90,88,74,122,97,87,57,117,73,106,111,121,76,67,74,122,100,71,70,48,90,83,73,54,101,121,74,109,97,87,120,108,88,50,104,104,99,50,104,108,99,121,73,54,101,121,74,108,98,88,66,115,98,51,108,108,90,83,57,66,85,48,49,102,82,69,81,118,77,122,89,117,99,109,86,106,98,50,49,116,90,87,53,107,90,87,81,117,97,110,78,118,98,105,57,106,98,50,53,109,97,87,99,105,79,108,115,105,87,86,90,67,77,71,74,69,84,86,108,118,86,70,70,50,99,108,70,97,84,51,90,107,83,68,66,76,81,122,82,115,79,72,78,79,87,86,73,53,98,69,77,120,83,69,100,107,81,109,82,85,79,88,74,108,77,68,48,105,88,88,48,115,73,109,108,102,77,122,69,53,77,122,77,105,79,110,82,121,100,87,86,57,102,81,61,61]},"id":"02dddb0e-3b08-408d-afa7-b388a1c7ec5c","products":["APM_TRACING","ASM_FEATURES","LIVE_DEBUGGING","ASM_DATA","ASM_DD","ASM"],"is_tracer":true,"client_tracer":{"runtime_id":"1c539e09-6e1c-412b-ad08-ce34fb540894","language":"php","tracer_version":"1.9.0","service":"planhat-deploy-web","extra_services":[],"env":"prd","app_version":"80f2f3a10b981d50319caa4479bbd51e5b0c8b61","tags":["DD_GIT_COMMIT_SHA:80f2f3a10b981d50319caa4479bbd51e5b0c8b61","DD_GIT_REPOSITORY_URL:https://github.com/teamleadercrm/it-integration-planhat"]},"is_agent":false,"last_seen":0,"capabilities":[160,232,247,254]},"cached_target_files":[{"path":"employee/ASM_DD/36.recommended.json/config","length":314089,"hashes":[{"algorithm":"sha256","hash":"6150746c3318a1342fad064ebdd1f4282e25f2c35847d942d4719d05d4fdaded"}]}]}

The response contains yet another blob of things with a new targets value, which is then used for the next request...

Can you work with the above data already?

mrtus avatar May 16 '25 14:05 mrtus

So, the targets_version increases for every subsequent request, did I understand you right?

bwoebi avatar May 16 '25 17:05 bwoebi

So, the targets_version increases for every subsequent request, did I understand you right?

Yes, correct, that seems to be the case!

mrtus avatar May 16 '25 18:05 mrtus

The problem persist on the latest Agent 7.64.x version too, so it seems like a client issue?

mrtus avatar May 21 '25 07:05 mrtus

Hey @mrtus,

I had some chat with our remote configuration team - it is possible to prevent the agent from resubmitting the roots all the time (which makes up over 90% of the payload size). Basically, we need to submit a proper root_version too.

I'll work on that.

bwoebi avatar May 21 '25 15:05 bwoebi

Hey @mrtus,

I had some chat with our remote configuration team - it is possible to prevent the agent from resubmitting the roots all the time (which makes up over 90% of the payload size). Basically, we need to submit a proper root_version too.

I'll work on that.

So what you are saying this is a ?bug? for everyone and not just an observation I made in our platform, is that correct?

If that is the case I'll keep the remove configuration deactivated through DD_REMOTE_CONFIG_ENABLED=false until everything is resolved.

I very much appreciate the time and effort spent on this, thank you 🙌 . It was a very interesting use-case.

mrtus avatar May 21 '25 15:05 mrtus

It's not quite a bug. In fact, it was specified that we should use root_version: 1 (to not have to care about the contents of the roots). It's just with the time, the roots grew and it became a problem over time.

So, it was rather a lack of foresight :-)

bwoebi avatar May 21 '25 15:05 bwoebi

It's not quite a bug. In fact, it was specified that we should use root_version: 1 (to not have to care about the contents of the roots). It's just with the time, the roots grew and it became a problem over time.

So, it was rather a lack of foresight :-)

Aha! Thank you for clarifying! Interesting problem!

mrtus avatar May 21 '25 15:05 mrtus

@mrtus There's a build which provides the root_version: https://output.circle-artifacts.com/output/job/c30196db-a734-4086-a2a1-d238b491230c/artifacts/0/datadog-setup.php and thus should submit less data. Feel free to try it :-)

bwoebi avatar May 22 '25 07:05 bwoebi

@mrtus There's a build which provides the root_version: https://output.circle-artifacts.com/output/job/c30196db-a734-4086-a2a1-d238b491230c/artifacts/0/datadog-setup.php and thus should submit less data. Feel free to try it :-)

If you don't mind I would like to wait for a new version. I would need to adjust our docker image builds for this otherwise.

mrtus avatar May 22 '25 11:05 mrtus

@mrtus Alright, 1.10.0 was released now.

bwoebi avatar May 28 '25 19:05 bwoebi

@bwoebi I can see the root_version now changing, it went up to 15 in our case and the target_versions increase now and then, with a lot smaller response blobs.

Your change https://github.com/DataDog/libdatadog/pull/1069 seems to be doing the trick there 🎉 .

The tuple problem we discussed here https://github.com/DataDog/dd-trace-php/issues/3243#issuecomment-2883849433 still exists though.

Anything I can do there to debug that?

mrtus avatar May 29 '25 09:05 mrtus

Good question. When set these envs: DD_TRACE_DEBUG=1 DD_TRACE_LOG_FILE=/some/path.log, it will include the raw data received by the sidecar:

        debug!("Registered remote config metadata: instance {instance_id:?}, queue_id: {queue_id:?}, service: {service_name}, env: {env_name}, version: {app_version}");

It should be theoretically possible to correlate the instance_id (which is unique per process + queue_id which is unique per request of that process) here with other log lines, to get a clue where this comes from?

bwoebi avatar May 30 '25 10:05 bwoebi

I'll close this for now, the most important issues have been resolved.

Thank you for all your help @bwoebi 🙌

mrtus avatar Aug 19 '25 09:08 mrtus