@analitikisler/ai-tag-debugger 0.11.3 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/README.md +9 -8
- package/README.tr.md +9 -8
- package/package.json +1 -1
- package/src/agent.js +1 -1
- package/src/audit.js +11 -7
- package/src/brand.js +3 -3
- package/src/browser.js +27 -5
- package/src/changes.js +29 -1
- package/src/checks.js +7 -3
- package/src/i18n.js +56 -2
- package/src/mcp.js +3 -3
- package/src/parsers.js +184 -33
- package/src/redact.js +20 -3
- package/src/report.js +144 -35
- package/src/verify.js +48 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.13.0 (2026-10-17)
|
|
4
|
+
|
|
5
|
+
- Each journey step has a **Timeline** tab: every dataLayer push, the GTM event it raised (or the consent command), then the platform hits it caused. Hits with no push are listed last.
|
|
6
|
+
- Findings are grouped by who fixes them (Developer, Tag Manager, Marketing). Each one has a **How to verify** list linking to the tool that shows the fix: Tag Assistant, GA4 DebugView, Meta Test Events, TikTok Pixel Helper or the Consent Mode guide.
|
|
7
|
+
- When the AI took a different route through the site than in the last run, the report header names the journeys, and the Changed since last run section lists the pages before and after.
|
|
8
|
+
- Platforms are detected automatically: a platform the site sends to is checked from its first request. No flag needed. Choosing platforms with `--platforms` or `providers` turns detection off.
|
|
9
|
+
- New platforms: LinkedIn Insight Tag, Microsoft Advertising UET and Criteo OneTag (events are read); Adobe Analytics, Matomo and Piwik PRO (page views, links, goals, site search and ecommerce orders); Microsoft Clarity and Hotjar tag loads, which name the project or site id.
|
|
10
|
+
|
|
11
|
+
## 0.12.0 (2026-10-16)
|
|
12
|
+
|
|
13
|
+
- The HTML report uses the Analitik İşler design system and the new ai tag debugger logo. The large title is now a compact `Site: example.com` line.
|
|
14
|
+
- Overview has a "This run" card: platforms checked, AI provider and model (or off), plan, journeys, viewports, language and version.
|
|
15
|
+
- Platforms show their icons instead of colored squares, in findings, events, steps and tables.
|
|
16
|
+
- Each journey opens with a Consent card: the Consent Mode default and every update, one tile per signal, granted or denied.
|
|
17
|
+
- Fix: no "not in the measurement plan" finding when no plan is attached.
|
|
18
|
+
- Fix: the server-side note only mentions Meta and TikTok when they were checked.
|
|
19
|
+
- Fix: no "Run without --no-ai" text on AI runs or on info findings.
|
|
20
|
+
- Fix: switching tabs no longer shifts the page sideways.
|
|
21
|
+
|
|
3
22
|
## 0.11.3 (2026-10-16)
|
|
4
23
|
|
|
5
24
|
- `aitd` and `aitd --help` end with the AI a run would use: `AI: anthropic (claude-opus-5-5) via Cloudflare AI Gateway · also set: gemini (pick with --provider)`, or `AI: no key set`. The first line of a run names the other keys too.
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ English | [Türkçe](README.tr.md)
|
|
|
4
4
|
|
|
5
5
|
**An open-source AI agent that QA-tests your website's analytics and ad tracking.**
|
|
6
6
|
|
|
7
|
-
An AI model drives a real browser through your key journeys (product → cart → checkout, lead forms) like a real visitor. While it browses, `ai-tag-debugger` records every GA4, Google Ads, Meta Pixel and
|
|
7
|
+
An AI model drives a real browser through your key journeys (product → cart → checkout, lead forms) like a real visitor. While it browses, `ai-tag-debugger` records every tracking hit (GA4, Google Ads, Meta Pixel, TikTok and about a dozen more platforms) and every dataLayer push. It then checks them against your measurement plan and Consent Mode setup and writes a plain-language report of what broke and how to fix it, in English or Turkish.
|
|
8
8
|
|
|
9
9
|
Use it in two ways:
|
|
10
10
|
|
|
@@ -50,13 +50,13 @@ Manual tag QA catches this, but it's tedious, so it rarely happens after every r
|
|
|
50
50
|
| Unplanned events | Events firing that aren't in your measurement plan |
|
|
51
51
|
| Plan coverage | Each planned event sorted into implemented, missing, missing parameters, wrong values or not checked (see [Plan vs. site](#plan-vs-site)) |
|
|
52
52
|
|
|
53
|
-
Platforms: GA4 (including server-side GTM endpoints and Google tag gateway paths on the site's own domain; hits to a server container are marked server-side, and Stape and Elevar requests are recognised), Google Ads conversions, Meta Pixel, TikTok Pixel,
|
|
53
|
+
Platforms: GA4 (including server-side GTM endpoints and Google tag gateway paths on the site's own domain; hits to a server container are marked server-side, and Stape and Elevar requests are recognised), Google Ads conversions, Meta Pixel, TikTok Pixel, basic X Pixel events, LinkedIn Insight Tag, Microsoft Advertising UET, Criteo OneTag, and Pinterest, Snapchat and Klaviyo events. Adobe Analytics, Matomo and Piwik PRO events are read too (page views, links, goals, site search and ecommerce orders), and Microsoft Clarity and Hotjar tag loads name the project or site id.
|
|
54
54
|
|
|
55
55
|
### Choose the platforms to check
|
|
56
56
|
|
|
57
|
-
By default an audit checks GA4, Google Ads, Meta and TikTok. Pick
|
|
57
|
+
By default an audit checks GA4, Google Ads, Meta and TikTok, and also any other platform the site turns out to use. That platform is checked from its first request, with no setting needed. Choosing platforms turns this detection off. Pick a fixed list with `--platforms ga4,meta,x`, `"providers"` in the config, or `providers` on the MCP `start_audit` and `run_audit` tools. You can choose from `ga4`, `google_ads`, `meta`, `tiktok`, `x`, `linkedin`, `microsoft_ads`, `pinterest`, `snapchat`, `criteo`, `klaviyo`, `adobe`, `matomo`, `piwik_pro`, `clarity`, `hotjar`, `doubleclick` and `adsense`. Events are parsed for GA4, Google Ads, Meta, TikTok, X, LinkedIn, Microsoft Ads, Pinterest, Snapchat, Criteo, Klaviyo, Adobe Analytics, Matomo and Piwik PRO. Clarity and Hotjar show their tag loads, and the others show their network requests. `--providers` still works as the old name of `--platforms` for one more minor version and prints a note.
|
|
58
58
|
|
|
59
|
-
Requests to platforms you didn't choose are still answered locally, so they never reach those accounts either. They are left out of the timeline, the CSV and the checks, and only counted: the report lists them with their request counts (for example "61 out-of-scope requests were skipped: Microsoft Clarity, DoubleClick"), and each step says how many it skipped. Without `--platforms`, any platform your measurement plan names is added to the default list. Planned events for platforms you did leave out are listed in one info finding instead of being reported as missing. Tag manager and consent platform requests are always shown.
|
|
59
|
+
Requests to platforms you didn't choose are still answered locally, so they never reach those accounts either. They are left out of the timeline, the CSV and the checks, and only counted: the report lists them with their request counts (for example "61 out-of-scope requests were skipped: Microsoft Clarity, DoubleClick"), and each step says how many it skipped. Without `--platforms`, any platform your measurement plan names or the site sends to is added to the default list. Planned events for platforms you did leave out are listed in one info finding instead of being reported as missing. Tag manager and consent platform requests are always shown.
|
|
60
60
|
|
|
61
61
|
## How it works
|
|
62
62
|
|
|
@@ -377,7 +377,7 @@ When a journey ran on both viewports, only the first viewport's steps are kept.
|
|
|
377
377
|
| `journeys[].start` | Optional start path (default `/`). |
|
|
378
378
|
| `journeys[].steps` | Optional fixed steps for `--scripted` runs: `{ "action": "click", "selector": "#add-to-cart" }`. |
|
|
379
379
|
| `allowed_hosts` | Other hosts journeys may visit, e.g. `["checkout.payments-provider.com"]` for a hosted checkout. The browser otherwise stays on the `site` host and its subdomains. Same as `--allow-host`. |
|
|
380
|
-
| `providers` | Tracking platforms to check, e.g. `["ga4", "meta"]`. Default `["ga4", "google_ads", "meta", "tiktok"]
|
|
380
|
+
| `providers` | Tracking platforms to check, e.g. `["ga4", "meta"]`. Default `["ga4", "google_ads", "meta", "tiktok"]`, plus any other platform the site sends to while this is unset. Same as `--platforms`. |
|
|
381
381
|
| `block_hits` | Default `true`. Set to `false` to let hits reach your real endpoints. |
|
|
382
382
|
| `language` | Report language, `en` (default) or `tr`. Same as `--lang`. |
|
|
383
383
|
| `keep_bodies` | Default `false`. Set to `true` to store tracking requests as sent, without redacting user data. Same as `--keep-bodies`. |
|
|
@@ -442,9 +442,10 @@ The exit code is `1` when findings reach `--fail-on` (default `broken`), so it c
|
|
|
442
442
|
Output:
|
|
443
443
|
|
|
444
444
|
- `report.html`: one file with four tabs. Links work across tabs (a finding's "Where" chip opens that step), and every view has its own URL you can bookmark or share.
|
|
445
|
-
- **Overview**: problem counts, the AI summary (most important problem first, plus things worth checking that the findings don't cover), the journeys with their problem counts,
|
|
446
|
-
- **Findings**: grouped by
|
|
447
|
-
- **Journeys**: one journey at a time,
|
|
445
|
+
- **Overview**: problem counts, the AI summary (most important problem first, plus things worth checking that the findings don't cover), the journeys with their problem counts, a **This run** card (platforms, AI provider and model, plan, journeys, viewports, language, version), and, with `--against`, the [Plan vs. site](#plan-vs-site) coverage. When the AI took a different route through the site than in the last run, the header names the journeys whose route changed, and the **Changed since last run** section shows the pages before and after.
|
|
446
|
+
- **Findings**: grouped by who fixes them (Developer, Tag Manager, Marketing) and filterable by severity. Each one has its impact, likely cause, evidence, numbered fix steps, the steps where it happened, and a **How to verify** list of tools to check the fix in, such as Tag Assistant, GA4 DebugView, Meta Test Events or TikTok Pixel Helper.
|
|
447
|
+
- **Journeys**: one journey at a time. A **Consent** card at the top lists the Consent Mode default and every update, one tile per signal. Below it are the steps on the left and the selected step on the right. It opens on the first step with a problem. Each step has four tabs:
|
|
448
|
+
- **Timeline**: the step in order. Each dataLayer push comes first, then the GTM event it raised (or the consent command), then the platform hits it caused. Hits with no push are listed last.
|
|
448
449
|
- **Events**: each tracking hit with its parameters, consent state, the dataLayer push and request behind it, and a note when a finding points at it.
|
|
449
450
|
- **dataLayer**: every push in the step.
|
|
450
451
|
- **Network requests**: every request to the chosen platforms, decoded into a parameter table with a `?` tip on each parameter. A batched GA4 request shows each of its events.
|
package/README.tr.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
**Web sitenizin analitik ve reklam takibini test eden, açık kaynaklı bir yapay zekâ ajanı.**
|
|
6
6
|
|
|
7
|
-
Bir yapay zekâ modeli gerçek bir tarayıcıyı, sitenizdeki temel yolculukları (ürün → sepet → ödeme, form gönderimleri) gerçek bir ziyaretçi gibi gezdirir. Gezerken `ai-tag-debugger` her GA4, Google Ads, Meta Pixel ve
|
|
7
|
+
Bir yapay zekâ modeli gerçek bir tarayıcıyı, sitenizdeki temel yolculukları (ürün → sepet → ödeme, form gönderimleri) gerçek bir ziyaretçi gibi gezdirir. Gezerken `ai-tag-debugger` her takip isteğini (GA4, Google Ads, Meta Pixel, TikTok ve bir düzine kadar başka platform) ve her dataLayer gönderimini kaydeder. Ardından bunları ölçümleme planınız ve Consent Mode kurulumunuzla karşılaştırır ve neyin bozulduğunu ve nasıl düzeltileceğini sade bir dille, Türkçe ya da İngilizce olarak yazılmış bir raporla anlatır.
|
|
8
8
|
|
|
9
9
|
İki şekilde kullanabilirsiniz:
|
|
10
10
|
|
|
@@ -50,13 +50,13 @@ Manuel etiket kontrolü bunu yakalar, ama zahmetlidir; bu yüzden her sürümden
|
|
|
50
50
|
| Planda olmayan event'ler | Ölçümleme planınızda bulunmayan, yine de fire olan event'ler |
|
|
51
51
|
| Plan kapsamı | Planlanan her event'in uygulandı, eksik, parametresi eksik, değeri hatalı ya da kontrol edilmedi olarak sınıflandırılması (bkz. [Plan ve site](#plan-ve-site)) |
|
|
52
52
|
|
|
53
|
-
Platformlar: GA4 (sitenin kendi alan adındaki sunucu tarafı GTM uç noktaları ve Google etiket geçidi yolları dahil; bir sunucu konteynerine giden istekler sunucu tarafı olarak işaretlenir, Stape ve Elevar istekleri tanınır), Google Ads dönüşümleri, Meta Pixel, TikTok Pixel
|
|
53
|
+
Platformlar: GA4 (sitenin kendi alan adındaki sunucu tarafı GTM uç noktaları ve Google etiket geçidi yolları dahil; bir sunucu konteynerine giden istekler sunucu tarafı olarak işaretlenir, Stape ve Elevar istekleri tanınır), Google Ads dönüşümleri, Meta Pixel, TikTok Pixel, temel X Pixel event'leri, LinkedIn Insight Tag, Microsoft Advertising UET, Criteo OneTag ile Pinterest, Snapchat ve Klaviyo event'leri. Adobe Analytics, Matomo ve Piwik PRO event'leri de okunur (sayfa görüntülemeleri, bağlantılar, hedefler, site içi arama ve e-ticaret siparişleri); Microsoft Clarity ve Hotjar etiket yüklemeleri ise proje ya da site kimliğini gösterir.
|
|
54
54
|
|
|
55
55
|
### Kontrol edilecek platformları seçin
|
|
56
56
|
|
|
57
|
-
Varsayılan olarak bir denetim GA4, Google Ads, Meta ve TikTok'u kontrol eder.
|
|
57
|
+
Varsayılan olarak bir denetim GA4, Google Ads, Meta ve TikTok'u kontrol eder; ayrıca sitenin kullandığı başka her platformu, ilk isteğinden itibaren kontrol eder. Bunun için bir ayar gerekmez. Platform seçmek bu otomatik algılamayı kapatır. Sabit bir liste için `--platforms ga4,meta,x` kullanın, ayar dosyasında `"providers"` ya da MCP `start_audit` ve `run_audit` araçlarında `providers` verin. Seçenekler: `ga4`, `google_ads`, `meta`, `tiktok`, `x`, `linkedin`, `microsoft_ads`, `pinterest`, `snapchat`, `criteo`, `klaviyo`, `adobe`, `matomo`, `piwik_pro`, `clarity`, `hotjar`, `doubleclick` ve `adsense`. GA4, Google Ads, Meta, TikTok, X, LinkedIn, Microsoft Ads, Pinterest, Snapchat, Criteo, Klaviyo, Adobe Analytics, Matomo ve Piwik PRO için event'ler ayrıştırılır. Clarity ve Hotjar etiket yüklemelerini gösterir; diğerlerinin ağ istekleri gösterilir. `--providers` eski adı olarak bir minör sürüm daha çalışır ve bir not yazdırır.
|
|
58
58
|
|
|
59
|
-
Seçmediğiniz platformlara giden istekler de yerelde yanıtlanır, yani o hesaplara da ulaşmaz. Bu istekler zaman akışına, CSV'ye ve kontrollere alınmaz, sadece sayılır: rapor bunları istek sayılarıyla listeler (örneğin "Kapsam dışı 61 istek atlandı: Microsoft Clarity, DoubleClick") ve her adım kaç istek atladığını gösterir. `--platforms` vermezseniz, ölçümleme planınızda geçen her platform varsayılan listeye eklenir. Dışarıda bıraktığınız platformlar için planlanmış event'ler eksik olarak raporlanmaz, tek bir bilgi bulgusunda listelenir. Etiket yöneticisi ve çerez onayı platformu istekleri her zaman gösterilir.
|
|
59
|
+
Seçmediğiniz platformlara giden istekler de yerelde yanıtlanır, yani o hesaplara da ulaşmaz. Bu istekler zaman akışına, CSV'ye ve kontrollere alınmaz, sadece sayılır: rapor bunları istek sayılarıyla listeler (örneğin "Kapsam dışı 61 istek atlandı: Microsoft Clarity, DoubleClick") ve her adım kaç istek atladığını gösterir. `--platforms` vermezseniz, ölçümleme planınızda geçen ya da sitenin gönderdiği her platform varsayılan listeye eklenir. Dışarıda bıraktığınız platformlar için planlanmış event'ler eksik olarak raporlanmaz, tek bir bilgi bulgusunda listelenir. Etiket yöneticisi ve çerez onayı platformu istekleri her zaman gösterilir.
|
|
60
60
|
|
|
61
61
|
## Nasıl çalışır
|
|
62
62
|
|
|
@@ -377,7 +377,7 @@ Bir yolculuk her iki görünümde de çalıştıysa yalnızca ilk görünümün
|
|
|
377
377
|
| `journeys[].start` | İsteğe bağlı başlangıç yolu (varsayılan `/`). |
|
|
378
378
|
| `journeys[].steps` | `--scripted` çalıştırmaları için isteğe bağlı sabit adımlar: `{ "action": "click", "selector": "#add-to-cart" }`. |
|
|
379
379
|
| `allowed_hosts` | Yolculukların ziyaret edebileceği başka ana makineler, örneğin barındırılan bir ödeme için `["checkout.payments-provider.com"]`. Tarayıcı aksi halde `site` ana makinesinde ve alt alan adlarında kalır. `--allow-host` ile aynıdır. |
|
|
380
|
-
| `providers` | Kontrol edilecek takip platformları, örneğin `["ga4", "meta"]`. Varsayılan `["ga4", "google_ads", "meta", "tiktok"]
|
|
380
|
+
| `providers` | Kontrol edilecek takip platformları, örneğin `["ga4", "meta"]`. Varsayılan `["ga4", "google_ads", "meta", "tiktok"]`; bu ayar boşken sitenin gönderdiği diğer platformlar da eklenir. `--platforms` ile aynıdır. |
|
|
381
381
|
| `block_hits` | Varsayılan `true`. Takip isteklerinin gerçek uç noktalarınıza ulaşmasına izin vermek için `false` yapın. |
|
|
382
382
|
| `language` | Rapor dili, `en` (varsayılan) ya da `tr`. `--lang` ile aynıdır. |
|
|
383
383
|
| `keep_bodies` | Varsayılan `false`. Takip isteklerini gönderildiği gibi, kullanıcı verisi gizlenmeden saklamak için `true` yapın. `--keep-bodies` ile aynıdır. |
|
|
@@ -442,9 +442,10 @@ aitd mcp [--http] [--port <n>] [--host <adres>] [--token <gizli>] [--public-url
|
|
|
442
442
|
Çıktı:
|
|
443
443
|
|
|
444
444
|
- `report.html`: dört sekmeli tek bir dosya. Bağlantılar sekmeler arasında çalışır (bir bulgunun "Nerede" çipi o adımı açar) ve her görünümün paylaşılabilir ya da yer imine eklenebilir kendi URL'si vardır.
|
|
445
|
-
- **Genel bakış**: sorun sayıları, yapay zekâ özeti (en önemli sorun önce, ve bulguların kapsamadığı kontrol edilmeye değer şeyler), yolculuklar ve sorun sayıları,
|
|
446
|
-
- **Bulgular**:
|
|
447
|
-
- **Yolculuklar**: her seferinde bir yolculuk
|
|
445
|
+
- **Genel bakış**: sorun sayıları, yapay zekâ özeti (en önemli sorun önce, ve bulguların kapsamadığı kontrol edilmeye değer şeyler), yolculuklar ve sorun sayıları, bir **Bu çalıştırma** kartı (platformlar, yapay zekâ sağlayıcısı ve modeli, plan, yolculuklar, ekranlar, dil, sürüm) `--against` ile [Plan ve site](#plan-ve-site) kapsamı. Yapay zekâ siteyi son çalıştırmadan farklı bir yoldan gezdiyse, başlıkta yolu değişen yolculukları gösteren bir not ve **Son çalıştırmadan bu yana değişenler** bölümünde değişiklikten önceki ve sonraki sayfalar bulunur.
|
|
446
|
+
- **Bulgular**: düzeltmesini kimin yapacağına göre gruplu (Yazılımcı, Tag Manager, Pazarlama) ve önem düzeyine göre filtrelenebilir. Her birinde etkisi, olası nedeni, kanıtı, numaralı düzeltme adımları, olayın yaşandığı adımlar ve **Nasıl doğrulanır** listesi bulunur; bu liste düzeltmeyi kontrol edebileceğiniz araçlara bağlantı verir (Tag Assistant, GA4 DebugView, Meta Test Events, TikTok Pixel Helper).
|
|
447
|
+
- **Yolculuklar**: her seferinde bir yolculuk. Üstteki **Onay** kartı Consent Mode varsayılanını ve her güncellemeyi, sinyal başına bir kutuyla gösterir. Altında solda adımları, sağda seçili adım. Sorunlu ilk adımda açılır. Her adımın dört sekmesi vardır:
|
|
448
|
+
- **Zaman akışı**: adım sırasıyla. Önce her dataLayer gönderimi, ardından onu tetikleyen GTM event'i (ya da çerez onayı komutu), sonra da yol açtığı platform istekleri gelir. Gönderimi olmayan istekler en sonda listelenir.
|
|
448
449
|
- **Event'ler**: her takip isteği, parametreleri, çerez onayı durumu, arkasındaki dataLayer gönderimi ve isteği ve bir bulgu buraya işaret ediyorsa bir not.
|
|
449
450
|
- **dataLayer**: adımdaki her gönderim.
|
|
450
451
|
- **Ağ istekleri**: seçilen platformlara giden her istek; her parametrede bir `?` ipucuyla bir parametre tablosuna çözülmüş. Toplu bir GA4 isteği, içindeki her event'i gösterir.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@analitikisler/ai-tag-debugger",
|
|
3
3
|
"mcpName": "io.github.analitikisler/ai-tag-debugger",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.13.0",
|
|
5
5
|
"description": "Open-source AI agent that QA-tests your website's analytics, ad and consent tracking (GA4, GTM, Google Ads, Meta, TikTok). Bring your own model (Claude, OpenAI, Gemini) or use it from your chat app over MCP.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|
package/src/agent.js
CHANGED
|
@@ -188,7 +188,7 @@ export const harName = (journeyId, viewport) => `${String(journeyId).replace(/[^
|
|
|
188
188
|
export async function runJourney(config, journey, viewport, opts = {}) {
|
|
189
189
|
const har = (dir) => (dir ? path.join(dir, harName(journey.id, viewport)) : undefined);
|
|
190
190
|
const session = new AuditSession({
|
|
191
|
-
viewport, site: config.site, allowedHosts: config.allowed_hosts, providers: config.providers, keepBodies: config.keep_bodies === true,
|
|
191
|
+
viewport, site: config.site, allowedHosts: config.allowed_hosts, providers: config.providers, detect: config.detect_providers, keepBodies: config.keep_bodies === true,
|
|
192
192
|
blockHits: config.block_hits !== false, headless: !opts.headed, recordHar: har(opts.saveSite), replayHar: har(opts.replaySite),
|
|
193
193
|
});
|
|
194
194
|
try {
|
package/src/audit.js
CHANGED
|
@@ -40,13 +40,14 @@ export async function loadConfig(configFile) {
|
|
|
40
40
|
* previous: the site's last saved run (see previousRun), null when there is none, or undefined to skip
|
|
41
41
|
* the "Changed since last run" section.
|
|
42
42
|
*/
|
|
43
|
-
export async function writeReports({ outDir, config, plan, runs, findings, explained, lang, against = null, branding = config.branding !== false, previous = undefined }) {
|
|
43
|
+
export async function writeReports({ outDir, config, plan, runs, findings, explained, lang, ai = null, against = null, branding = config.branding !== false, previous = undefined }) {
|
|
44
44
|
await mkdir(outDir, { recursive: true });
|
|
45
|
-
const
|
|
45
|
+
const site = new URL(config.site).hostname;
|
|
46
|
+
const title = messages(lang).ui.title(site);
|
|
46
47
|
const generatedAt = new Date().toISOString().slice(0, 16).replace("T", " ") + " UTC";
|
|
47
48
|
const check = against ? { plan_id: against.id ?? null, ...planCheck(plan, runs, findings) } : null;
|
|
48
|
-
const changes = previous === undefined ? null : compareRuns(previous, { findings, planCheck: check });
|
|
49
|
-
const report = { title, generatedAt, findings, explained, runs, plan, lang, branding, against: against?.label ?? null, planCheck: check, changes };
|
|
49
|
+
const changes = previous === undefined ? null : compareRuns(previous, { findings, planCheck: check, runs });
|
|
50
|
+
const report = { title, site, ai, generatedAt, findings, explained, runs, plan, lang, branding, against: against?.label ?? null, planCheck: check, changes };
|
|
50
51
|
await writeFile(path.join(outDir, "report.md"), renderMarkdown(report));
|
|
51
52
|
await writeFile(path.join(outDir, "report.html"), renderHtml(report));
|
|
52
53
|
await writeFile(path.join(outDir, "timeline.csv"), renderCsv(report));
|
|
@@ -61,7 +62,8 @@ export async function writeReports({ outDir, config, plan, runs, findings, expla
|
|
|
61
62
|
* outDir?: string, dataDir?: string, branding?: boolean, providers?: string[], saveSite?: string, replaySite?: string, log?: (m: string) => void }} opts
|
|
62
63
|
* journeys: config journey ids or ready-made journeys (purchase, add_to_cart, sign_up, lead, search).
|
|
63
64
|
* goals: extra journeys described in plain language. events: only check these events.
|
|
64
|
-
* providers: tracking providers to check (default: config "providers", else GA4, Google Ads, Meta, TikTok
|
|
65
|
+
* providers: tracking providers to check (default: config "providers", else GA4, Google Ads, Meta, TikTok plus
|
|
66
|
+
* any other known platform the site sends to).
|
|
65
67
|
* saveSite: record the site's responses and the steps taken into this folder, for replaySite (see replay.js).
|
|
66
68
|
* replaySite: answer every request from a folder saved with saveSite, without the network.
|
|
67
69
|
* against: { id, file } of the plan given with --against; opts.plan is then that plan. Used alone, the
|
|
@@ -80,7 +82,9 @@ export async function runAudit(opts) {
|
|
|
80
82
|
|
|
81
83
|
const against = opts.against ? { ...opts.against, label: opts.against.id ?? path.relative(process.cwd(), opts.against.file) } : null;
|
|
82
84
|
const { journeys, plan } = planRun({ config, plan: opts.plan, picks: opts.journeys, goals: opts.goals, events, against: Boolean(against) });
|
|
83
|
-
|
|
85
|
+
const chosen = opts.providers ?? config.providers;
|
|
86
|
+
// Without a choice, any other known platform the site sends to is checked too (see AuditSession).
|
|
87
|
+
config = { ...config, providers: resolveProviders(chosen, plan), detect_providers: !(Array.isArray(chosen) ? chosen.length : chosen) };
|
|
84
88
|
const viewports = opts.viewports?.length ? opts.viewports : config.viewports ?? ["desktop"];
|
|
85
89
|
const allowed = Object.keys(VIEWPORTS).join(", ");
|
|
86
90
|
if (!Array.isArray(viewports)) throw new Error(`"viewports" must be a list, e.g. ["desktop", "mobile"]. Allowed values: ${allowed}.`);
|
|
@@ -139,7 +143,7 @@ export async function runAudit(opts) {
|
|
|
139
143
|
// Runs saved in the site's runs folder are compared with the one before; a run sent to --out is not.
|
|
140
144
|
const previous = opts.outDir ? undefined : await previousRun(opts.dataDir, config.site);
|
|
141
145
|
const outDir = path.resolve(opts.outDir ?? (await newRunDir(opts.dataDir, config.site)).dir);
|
|
142
|
-
const reportPath = await writeReports({ outDir, config, plan, runs, findings, explained, lang, against, branding: opts.branding ?? config.branding !== false, previous });
|
|
146
|
+
const reportPath = await writeReports({ outDir, config, plan, runs, findings, explained, lang, ai: provider ? { name: provider.name, model: provider.model } : null, against, branding: opts.branding ?? config.branding !== false, previous });
|
|
143
147
|
const counts = summarize(groupFindings(findings));
|
|
144
148
|
return { journeys, plan, runs, findings, explained, counts, reportPath, outDir, lang, ...(against ? { againstId: against.id } : {}), ...(saveError ? { saveError } : {}) };
|
|
145
149
|
}
|
package/src/brand.js
CHANGED
|
@@ -7,8 +7,8 @@ export const LOGOS = {
|
|
|
7
7
|
"stacked-dark": "data:image/webp;base64,UklGRgYiAABXRUJQVlA4WAoAAAAQAAAAwQAAbwAAQUxQSBASAAAB8IZt2zKp0bbtpxSNRoAIGoggcXcm7kIm7jTE3YUuOu7E3cPE3TMWJ3PHXe6JK5CJ491dx3ke+4/rvK6qarvlV0RMALpci0XPeX/mx1OXhEUdLZa+4r9nvnt2bxh0By1GP//sc8899+zztwKwWPZ9Zj8fBVs7izW/YfaNQcYa9HrguWefffbZ5/4xGKZrclif6W8AYxveY0VVK/ysjzEJk1vAmAEzWVHVCp/L9JvP9CjYrmrtICGESvgA8NibFWYrnASfqKHHaawwK9wcHn1nBAlBQtvyXdc6VJKRH2VuVEmI3p6z+JLphjyHZzSk9CyU0PdHKqkM3YU783gvHACLv82bPW/evNnzdoBLWbzAvKndhHWLlNDMvPPgE68wvUuex+0qKR7a/XAYFUMkGQNXhk28qKKqouPzHDZlJZIMce4g2O4GHE4mgwTyDDgkXmIgGVgADleRQQLZCGe6HXA4chbJX0+EQ+2MxeTfSc6cAId2ZazLWlMn65xz1tTIWJe1pi6w6L/jIbssBYM6AAaDdj14h8Vg0Y6st8h33hQyPm0AGG+Qdq466y3yrbf1aEC2wQLGe9/Dv5yzq2/w3nuXcQ3INtTB+XyTsBbA4ittNn781ust0xOAMwUKOwCDN9x5/GZjewHWFLMOwCJjNh0/fusNRvYG4GzNavhczhaocY0sqjQOWGnKi78w2frNI0cMAVzKYPjECY2NjY0Th8Bj4LGvzCNJ/Wba5oAt4oDlT/j7j5HZtu+fOn5ZwNXGYvVJExobGydMWhtYZMLExkmNnzKSjLx6wqTGxsaJ4wGLcZMmNDY2Tpg0FrY2DltPmtDY2Ng48cDDlwEssO5jFZKMIUQlyT+uHAyXcNiD6R2Bg2eS1BAiST4yCDbHGIy9YyFJxhCikuSCacvC1cTjAqavAsawpl8BHg8zfTJ8TTxOZ/73I2DhpwZSgiqzGkMgZ+0AlxovrSLSJltiGilBSVKjRH69DGzCAJMXkBJUmdUYhJx9IFxtpkiLiLTIBcAKrVIR0ZwgItIm72SmSYuItMhRtfGYzCAiElr57kBYLPkSNSiLq5B7wiV2YSAZufYVrEQWrfDDXtYAMOj1KCnK4irkiXA1OYNCUngRMCpQWW3k+5k7KSSFx9TCeEymKEkK3xkIZ5b8gBVmg4QYRZTZGGVtuCLUFxhYZYVXwwHG9vonK0qSUUKMQSKzUbgTXCdkPM6iKEkK3xkAB/ccW0gyKHNDhoHvOVuIVFIlaJSQ0lhZFhYO93EhSUZlbsgw6oxFjCn0cXUrtEpFRHOCiEibvFMn43EOhVnhmwPgALvN9xQykP9q3mXcFgfd/itjhoG7wReKZGQ6Jig8Fx7GbPQhhQzkO+fvuskW+18zgzFD4bHw9RnLmn5TH+dxDkUzwlcXhQVgMOx5SuAL45AedCdDQv8BV4gMnHvtn9cdd+iz1ETU950BDBZ7iFH41rYGycUvZ1SSQT+0pi52iUsunXrZ1B+oJJWPTb3s0kunXnZifXrgHIqSpPAf/eCQdbBXkGcCxjvnvAduZiCpnLMETKHAV1ZA8mgNGaWMgAUcUCavLcF455z3wFkMJKlhLGw9PJLPMZAM3AL5tVvB4hwKs8K/NsAibQ2OOAHOO+e9s8bZ3jOoJJUbwRWJfLs3Ss4573EJA0lGbgkHwFjseTFMyTnvnbPO40NGkoF7w9fFeO97+JdzdvUN3nvv6hBH4XyKZip83MMi31igBwo22BspJIUHwhdQbVkRHllrB86mkhROhEfWASWD/AZ/JoWkcEqdAMDipZzxcEjXLCxxNkVJMvBxbyyK2hKAZTYcv9eu264x2AIn5BxfSHgrPNIWzzEkjsuxJQCDN9x5r113WHuoB3bPmdq5zH2YgdnIR72xKOqAtS97v4XJ+Z/cv+9ZDIkphSLHGZfjzS2URFPKASud/+Y8Jhd89vBBxzEmru9MspHZyPdhDIo6rPwISWoIISpJRmaFzUWUP/eDycN1OeWEw/A72khqCCEoC3Y+kUmN8zaGK+JwwHyqRGVSowTWIvIdFKzKYaefSInKpMYQOqv8yE97OZPncAQpJKlBRCRE5lYR+BJsrRx2U4qSZBQRCVHZ2VF4OXwexjFEkozMF63NCzWzZuxCDSQZmS+x8wqa0aDj4HIaPmAgyUh5Y9qll9zw1y+Z237wLIUklXz37ksvuu6JTyPTnVEklSQjP+3lTGoPRpKMfH5lJEtrnPWdajtqwLqMJBn5wUZIupVP+bdqp6SB573AQJLCy+FTD2ggGfXz3rDOe28BnEZpRz1xjgpJ1R+XhnXeewdgP0pnpIFlrBmCktSgf4JLfEolKTwIPZA0Pdwd7aoBjzOQFJ6FBiRND39esXXayy5108hT0BOXMpBk5Ge9nMn8kiBXNTbH9viWsR2V8F+JwK2NS8HhbcZ29EJCeJAtAbCudlFPQsnaPl9rJEnhFfBFtEgJExjYrl7N2crmlLA1I9uNw1OJwEfgvLeAqZUyDLYWDjsyZDToxnAAvkwID0GDMcbYEkb8HGN7asAzCeH5aDAGxpYw8DNtV9MoJBnDQQAw9tbhKNVsFCzg8CADSUZ+0uAM8KQGklG/G4z0qv9mZHvqiUtUSKr+sSrSy77FyPbjcVKK5Nt33D69wqF1WD5jzZA/opKk8GJ44FBGklR+td9S1vRb85L5jGxXDdiKkSSVvxw21KPPqs2/MrAdOaxDTSmz8+sGhyMZMhriBnDo/1OMJBnJ2Z/+exbJqLFdlUzDZxpJUsn5X3wyg2TU0I5g7bsaEowioi31M868ykCSgR+VnMHRrGQYA7OiynR78Q67spKhBmZFlel24rATKymSynYAh9UlKEkKz4N3eIoVZVZjVFL49b2M7QkON7CizGqMUSn87TZqLT6qERxuZCUWWNgO4HExJaMhrA1je/+VlMikhsBZK+wjLSLSIuXMeGkVkVZ5ttg10iIiLTIZHsaau0mJyqwG4Zxxm0iriLTItZm1pSIibfJ+Yoq0iEiLXJBnnJtGBglRY6hI6zCUcIe0iEiLHJX4QSoiFWldLsfY3l+FNhGRVnnTwcBe0EoyiEgk+eQITGb6gsyeTL9dbBrT58EDxuLUOSSDiESSL62OCUz/JbMB098nLmT66jwYg8O+Zf68QSjhUaZPyfRrYXp0Dhy2Z/4tgAFWuvpLJuc8uSNg125uKpfLTc3jYC1GNzeVy+Wm5v1h8iy2bW4ql8tNzRvDAjAWy533iTK74Lk9ADumualcLjc1bwdrMHhKOTvlMAAW45qbyuVyU/NmsDkwFovsc9vrX8365s27DxtljcXOzU3lcrmpeR1Ygx7HTymXy+UpTYvDpGBwcHNTuVwuN5WPBgAHNKy25xHHNW4xGDAGHdEBbsVdDj3u4K2HA7Bo/w4ASn0b0H4NqrUOudYBsD5tM8anXTHr0zYH1iPXOgDGp23G+LRLWJ+2xWCcNwCM8zbjfNomfK4pAp/vEoCx3nvvDDqwsc577yw6sDEG/7/Xeu+d6dY5JG178LmdnPE1NPWyGHbMNZfsWoJtB124qY/FEbNJ8u3RsHUy6Hfy5NNPP/30ycf3hOm8DBqOv/ve+wrfe++5g2Dqgv1IEanw64HG1MdiGNPavxMztsffWcOvhxhTj8VmaCDJNl4MX68hc6QiUpGfFu/EHHZkm1QbWngRfD12YGQ26ofG1G0BlVT+1pl5nBiFVUt8EK4eh2oOv+8J0x04gbXgffXZiTn6sTHottxfn/4/xZBp45Xw3TQcRJUQKpw1yJhumkNZSPLz1WHRFVlfZU9/UgeAxarnP3zXEYvAorjJtiNjjKmfMaYGFtUf1hHgkXQoaJx3SDrvTP2sd0g6b6uwaZOx3gGAc1UYjJh45JFHFT3mqAcZO0ANHQDYvksM6IOsM/VxFgD6LTGgDwAYV6iocQBM796o1mLb2WyP9WsYOWLkyJEjRg7OMQZY/5ynPp01+/eZHzzRtIEBbB2MBVY5+YmPfpz9+8z3Hz1hNcCaPDt85IiRI0csOwAOGHHCU/+eOePDh/aALWBMr+/YJtXGjrBhW0tbW9vCyiswGQsc+DYLv3eQg6uZA7b+e2DB+Px2gE0YLDarrbWtbUHlKoO+l8xm+r1CFqNU2R7rtzGzyjcSFkP/QaqEqKoagyj56ipwNXIYeA9JCVFVYwxC8p7+cKnFfyfJyJsw6gNSQoyxEl6sYizbp/AB3+CrtFVoUFXR1zIWo76lRBaOwjmbwNbEYd0vGYKyaAj8bCW41C8aVSt66aLfs6LMBk7vIHeieluMkWTg6zAwtt8nrDAbRSQos8LZy8HWwGGjORRmYxAJyqzwpzGwiV+pZOC197HCdEcJfP3gww4pPnFVmFp5nMsKs5HJoCRZ0X/1qIHF2NkMJBkDk0FJUvhxX2cKkBVGklFEgnSQmsYTYGtj0O8njQl+dNsFlzz+H1IZheQm8NUY2/MTBpIM5A9PXnf9X38mI0lWeB1cISoZlcnwYgdRqbZCjoGticPGVJKMlcMsAPQ/rRKEnHv7+g3GVuNwEYUkAz/fvy8ADDhqFiNJDbKacYXIQH768M1/mf4L3+sgNRTuC18Tj/1USApvhPXeO2A8+c2ZIwGgGmtGVaKSDHx8McB5b4FhrzGSFN6JKgL/tWUJAAbu0WRMZ3cQUxehpwVgSjj1qD6As9U5XEchGTi9B0oGAEwJA7/TSKrOWwquSOCdDnDeG1TZSe3ESFL1t7UB652BBeAtUJVF/z9USdWFo11Pn9vL7MVAMnBflAoE/heMR9Y419lZLNOmSlI5/+yRAGB8D2+QrKKEfRhICs9HlZ8xkqK3FdFYWR0ONe2UYPEPCkkqueDF87ZbGgC8qc2tKiSVN51y6in5J5964qeZwDdg8wL/CYeuw2E9FSVJDSQ559WLtmwAXA0sXmVg7ZUzeyFPeKTxXQgcTqZEZjVIJMnPz1oatjr0mklNBKlSU38MKKDcAK4rgccUUiLTGiSS/5kIW93A33Nqq5w/OE8ZloftUuCw1/dklBCZjkJeClfVoPk5oaYS5gwq0jq8q4HDgDO/YDZIZDZWeDZcNQN+z6n1gn5dGhzQa7OznvmBJIOSpArXha+i5w+MpPKnP+9cy5123sKYLs2UegBAn9UmTfuWVJIUPlKNxasMpGrLkqh1V2Y9AOu8BYA+E3+mklTOGYhiJdyiQlI4xfR0RUsAGkrOuS7MOqD3UUfCA8Z6B6zfFpWkcsOq9mIgGXXG4tYi32ODswcC3qALA0ae+RUro1FC1pTwHiPJoNtV4TBgrirJwL/AupQpof8X/PHMpYCuy2CDO+aSbfx4KVjvvS/BfJuI3LwK43AzhSQDLwOM9947YMTrbCP/c+EQmC7K4wqSEhn55Q5I9prKSFIpy1VjzXJtQUky8PlNkOx38E8MVCHn/gm+ayphT7YqSUby9YsO2feYW76mkmTQj6ytAg7nsZJhIN+65sQjy/d8T0aSlPhuX2u7JmPxT0qGUZmOzAqPQo9qjGt4j5JhVKaDkmSM81aCNV2VWfY3hgwZRIJIZFb4foO11cBixCxKhoySjcxG5Xg4dFVw2HQhK4nCFf46CjWAw8pfUjRTWBj2g0fXslGohBDawqswgMMmM6iiRVSUX64OC4shc4OEIOHnFByG/YOUqAVUImduDY/ET0FCkLCgHmNCh20N+xTZhOkPM3AYdGckVSJJFVGStwyEAyyGMt3WPwUHHDOTZBAJQUQiyXuGwCPRv5XpEXVYiR14QpFVX3l5+vTpL71yYwIOWOvWGSz4/c3rARaZJZ6d/vL06S9Pf6ZfDqzBgNPfisz/6Y5xgEOq39PTX54+/eXpzy1ZM4NhT3TYx57YBC6veuOARTY59m8MnHvzKZv2A6xBHR2AlQ+4+K4n//rQ9Sds3h+wBl2wTZscwDoA09jKQwHAW+QbmzSFYDwKO4eixqbr4jqwKVRT55arUPW+a48dBYP6W++dc857Z9B99DiNwuzCM+BM3bqlxvSaybYYpFWUl8B2zxa9/ncmVbgmbDcsO/S8dw9e735G0anw3TLbA9le/2GFT8F1y4DBZ/wJwDes8B+w3TBjNrjxd36zydALGEVvgu+GedzAKGQLyQq3guuGGbP4p5SgDFH4MCy64xbLv0NSST7Q15puGSz6Tv6kVWe/uC9g0N0FVlA4INAPAABwRQCdASrCAHAAPjEUiEKiISEWq5YcIAMEsZPmrA+SXSvfMiB8SXyz7N/YfkB7WfNvjjkBxrB0bav7Ee0D+8+kT0UvMB+u/7Y+8j/u/U5/bPUA/bT1hvUl/sv/K9hL+J/2b1o//T7Gn9e/6/7r+0N/8PYA/93qAcLl/d/RRZuwZue+Br7N/4jLsuT/03zjvuvNbuOPT/wefuX/I9gb+O/2z/g+sVodVEv5p/Vf+h/eO136Gv6hElAE/3ZOr7QEvZ/wLPfV+VBCLJx76ezdpueHybBFEsN8DfgFVCgwM9NmSdnQcIoatsMqdz7UsPhJ+/RrH6wMkSR7IOX+ISGHlk6JR0I4wuY0Tu6XSoN3Y5VcsJKuSHNW1E2Ga93oUhyPpkVGdANCBajtcL2vEtQ75E2Hd+FxablDsew679FHTGCYO+JMcgXkQQYQVHtXzYPA+IGHlaGewR9rzkh0L55RA/N3L4MUFWTtGZ75DFuOfV6X+Kkgmg1ijo9GFz/LYW/ymgpsa3WeT+VXgiX7/zu13+8BzF2qkanToqZXE95GANIHNSVmDNArjas/r912V8yF2wsQc4/vmxA2s9DI7doB5X1cmOnR82SZyrYWsSra+GtU3GmkQL6qupH1pFYafmOaZa9SfXqbejPMvKazOeziFLJsofz8JIMQtloNrcqQuk1QhWIGi8Dp2dllNDA/RrWcyfscL3ehfV//Jm2dNH3Qa+T1Qfc0MVyrkWvgxNR95ZAWcjm7y8AA/v/DCw/4qhAjMAg4Ohapv8ZuzMJcWFvXpjLfWUwo1Aw8ka7x2m+N5IDw+HxC/vLFhJ92V5d77zmhhdA6ppA2mlAiEyILMlY9i81hENXn/HwTjTr9WtraKDC9ZXJR0GAFxuRJTr27CeqtN5E4ZKUBztb3z/lnsWQSFEzdaerXQCxDd0sWXHu2jdheaDivOfmE8qmWdtVtLxca35qJ8+3lM6u9yD6nqzSN2usxhAtb/SZzcVqaLRzKuM/Toqz8rGT/4x7pogNtStCVT+5tnjqrGIWJOmgzBRPyw2fn8TdMKowXxfDxRyfPFbDG+X/IgM9K+uQprB30R/OXj2XvYVRW3SnjwkEKbAXGkBZZkxo///1rZFAArcd+jJSH+703SXC8mNrDERWCNuvAhaDOr6YIg1LHw+2dLQMlYBJpmHhMrBEwIrmkyUoRJWQpotZYaR9Cqm32reJGQ6/t+pBTNKwGeSd5+lgRjPDxQJR1A53zgrumanWvBwZa/9r34sc/3A+4YWf/J49Lcxb1plwo3rHuIv6wZ01P847F93EMWWsXarMTyeoeY7RMDMon08aZ1+GUw2+/+hUz8YbYF+Fwca4MNtW5Mf6SmM1Qarwsf43+pb2RXP+dQ2xaeJtTlEvsFa/eXc//96EznlyxoFgUyUT8pNRAcwQJrw5eWzS5T5yKKzydT/5lBPJfwqzVHrSuK0HTVw3RDxvC21EEnYrVrT+zmBFzPtf35tr/BRTXbxe/Z+0rTuLwTjgjyeJqXVBGydENwGEStlpoBg1mInNOu2j2frLDd+bcj8+aYbQhWvV2m0kfzaYtNWqUjrk7tqi5rtfQZNkLN5x/X5oDweZ2uzSbNcRn4uYKB9Rn/NhzpviyjEPj5IQ3a81givMzWbNZmhXHW0eztfryAz5DvrG68+GOljm+uK9L9AxLUYdOxV8jvFweSg1bzrAccmyJkssCtHL1Gbuhruq+70pkObveNjLzWb6jXoRKTjHl35FCD/rn/4H8HgY+V3nbzqRfxie3RiX96AeF5EPZCIwsVZqB3T6y2064vv54pQSJ7u0YShsI3XqKqnxPkh95Ntjv1ffNI7lZyJZr0vrThps0jtYTvDlaA6X7xwo0PnsoXpcVI/dijbUmOY/l6XLUeKz/zKPaks3SDZVG2yTfZnAAGOpNW/wi44mD/CAXAHVj9ls3NCf/tcKTWkb/3JWK3cq+hPZfnKcomaEP2R7HXLmato4CRXrQSK4OICWIlrWcOmdnwm++mqSsMYSM8enw3TxjJK2Dy+NBgLMWbOl587Lbf1yjT3a/xzhhIT50fLcFXigGd1OkjgeT52VDyto0J7jUnpzQCslGhM/I0N+GSiIj1BrlpberZV2L5h7fjxnV2QCNz4qUg+maoCnilGyA3VZ9D4BoE8u1x+o63WRJwIcziAxdCez2uOmO2PyleosoOG/ptYk+PKmui6D4ysp/scIlvP3dlxkJFlKoY3krPFxy9rjtaLxSZefvnn+D3X/4wQv//+NNFdi5R8V+kKLxly7+Mwum+VmGaJU7KMkBuYuknXI9scb9P+f33/xc/YAD3XlF/pb7lrw0vtx1ia4NqzSrN96pLYDi+PCCHwU0+HAHkisOzb/QpeL3plwYnYHzeeeTyv0P/SqPpFXk3Wx+HXABY+wGiVomU8fyY1QwxKTVUPHysmA/8DxxbW4u3/1QrNv5LNeU1L8YrUV3qar9HjyZpFXlhf+pitrEnlVGAeK8cMF246H6oiPzjElSz3b/+r+GLFKVp4VmK2TAhFiIIVpk/pS24CM+wbZcjdNxW40A1Mj+H3zv6qbXJvSHWi8Uwff45kSYwrzmnRGg1fCUZGZWXC3Tw1Gjak2qM1XDnRU6U3R54jck/s1tJgul05TLIaexYu4rKNq/jDjd4sdHQpeaBneGF1u5taFeZYEN/v6aZTcjl36Zq8cr6J3LsjdQ8ijOcC2NtxWBItMgzadZ6oNFp1Sm6qinCqPBe+J8uJWdFVBSAfhXtZ4VyjWfjBWtqYYdo46T4qOruRTo8lhGecHqqGNr78C/hqcSVZvP8rZwxraYligY10Vx/3vGoP/ijZa7yJlJTTrQjDzXJZpl5IJrJxsoBxDuYkWGLCm/ZNj/aEJV8ewZ6awZ2Yr8bxx9CEHv/4Uv0IETmhRwnM5WuCQxBXNfFhbVjRYzTLnwSxyxGlroECl5INB35Uoh9F8aiR8gwcQmEnRSJKgDzakXV5pXwoOmtYwmvLSRKUqgL+0HRn/Kb3KssQWvut3gTLxiltvgmy1Jt7ZjMWbSO9tuk3aYjgIUhIfxUXzZS0W7cQ8RYjARFKLrnJv6/qw9lf26khJHETV4HsWLPnSJMG5ARful3ZfAhEDG5BdNEkJrqHl/lV+Qd0QuCbthfWnIoLOInNun7+hBo3yuLOq9jjhHNl6VeP5q02pox9SoFGhaJ+dVghiWfX0fuhyCsbuQuTwrZPnl2PuxAUvsItW/9p+f//Wk//+s6///6wAAT+oPBr1kvZ67fUPUa8kw73XKDiB2MK5/QjFDbCdP+4Q+jkDT2Ka4Py8navqZ92vWFWoNQnNoy28ibuz///wJ4ALH/9rDoAHn/+G4AAAAADwqEG5RGM5+APzmFenZ9OOcAUESV8YpAApLvI+2u5AfCZXD7bjZmh4C94rBrMnfp6GEbFaXluAywOsOoP81NybAqw5O9CRdIAAFxCkMQk9VfIsrpOLR7Mw62NAEiGQFGIvuIXXDrWS2ARk+DGjm4qrwZmE3t0KdmObvRv/2df/4a5K//LmM/shS8Vm/4XoDRvq20RhkuReLcarILmHUmeesHqBBiKya6fDTIEBgeZwqUL3kcJJyHhn9A35nSV/tPhsCchhdrEWHFLmMbYkbWf3RfDldrYPxPwLnjkzWlEKFZ2ejXebn1Zj/rD7lsCKnxmVDtLDzYiZPk6bHrfVtMrO8GFLHdnTbiFZWt2cx3TlU4wUz458bVfbjj05MB53p9hTkZYdfL359UYrWV/raZ56c/8PsLHw16Oxdod72SQ1w8ElPIMmjMwzrGgCFWn6CCR972mpyKZFasSRHOPNx39Eqk1h4J+0QgocWTVPnLU6PaOBtmbYiyooouRkq9xJSpHWf0w58roT75EHc0HeGK4q0R5GucgRmBAjSFmTud1biCGg/aaMS00fOYVeFSe0DuBOIxpfSXDw1g0ODv16IVuWLRBSITQHsn85yJKFOw0o+3D5szYpxOb+GV4EQt9f8NiO7IpWJU/HcwPtMgbG2So+2I+GmSMq7HoBdgqwmHx9T4XqTcGb+T/8wLWlH8c7Af/A76/5tlQOiM7xips93wdwtblTLQVzbuk502nutc1Jvtir6efF7hnQ5xs2g4O7pKlYdcxg97hj0wnoD92bHN2rcxNSr8PrhD1IDoF9X6ZyAVrJmtIumKY2kZTNj6GQrKl3pJ+3w3gsI4qvDS99L5DbP2Qc4yTJLFhlU/lnoJqerIBp6z/i1jpP6Fn7bQOYg36CLT7vNhzuNjaWLEwacMmyaApBAWDrdte4/sOucfJcyefNq+aEztpibywb5U3U+y/93J1rMvEqrC1q+krdMDEwiDAviRI+7rTPNgaFjdSL8KRUoGx5USrWButTuoACjkXnzKDL5GjyvcueGrN6FMqS9kyuFZyS4VzQnup6j+K2TsQ5i8ptc1eBnfrDrf/G1m3oZ2JwaR/XC51i7m6X3Xja0bJgt3QbOn4GL2rZER4t+2gzXXl9OO95ti/icz9Y/CM6J+xn8SombJTsjlagwzrlRJwdbEYqTqiW6QF9k/Tu0j6xJlAbHL3KRIBOmZqWAZ0OvCy1G6hbU3CPDW6OMBFHWbsRqDD97DkL1obCMuhch0x9fZCYySJWJZcB7qqTEa3XIl621KK3ExquOdsH0aaQ+QKh3iSebeQR/ma0ymDItOtrt1YPix1PUvcZBnyF/6WCWIlMgyfet8wTITQGbHjgNv/+8d///4xd2wUgrP7gaASG2o/Wn2q3RGbFFU0OHdSIByp7bVEMGc+OtVBH5MtKlwTWv1Qq7Pebi///v2v3V2ZczGdcquO5w3GYR86FDYQvMHD4aow/PvMgCJmD0OHxx9UrUwUpXbjnjXZzjJC4qtFsVZI3OZslYKDm6nOxKkg/PJ25y0wyHNrKo1lFUorZf4bYb9+k2KwsY55BGSERSp9kecj7HR5f3U+ofcmjlk3HsEDUGsMeWSlL8JvIitrdhNH29sRgp8KL5gwBgbUXNMsPLvz+oDFYnJP0mT0H55540WmUU4xewSJ3I5M2gnlH6lzD7D3A1S7KnR4/fNrQgOYh6NX88cQPsRZIAEPHV/+hqX//v1mX4CC6GpbaTl24vkIdDhEGtYS9S970j6xf9XgYDbL9DuH9KfCu6OBd5wYr7kVXHm9k+UF07Z6s9CO+nNgtEKtonJBqaewqxbIT5EC3rcZGVfsNNKgHFmf4Ajfi/xy/xJbLH9QcifGgX1t4NcY/JVCFBTJe23RZQwwCxDj4J8e5ebw5cQrCOGyZgw18HFnuu7L0ww+jwLCleeZCRT/4akRRD2rM/xMVv/I8F2zcy3t9b0W3CyLfnof+5kv/LSKLbFlcV9qxUEDXa7K4vyAuV8K8KC6X/k+fRaZa7Q1ISKLumAAAA",
|
|
8
8
|
"horizontal-light": "data:image/webp;base64,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",
|
|
9
9
|
"horizontal-dark": "data:image/webp;base64,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",
|
|
10
|
-
"atd-lockup-light": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMDcuMDQgNTIiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0iYWkgdGFnIGRlYnVnZ2VyIj48dGl0bGU+YWkgdGFnIGRlYnVnZ2VyPC90aXRsZT48ZyB0cmFuc2Zvcm09InNjYWxlKDEuNjIpIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9Im0xZGciIHgxPSIwIiB5MT0iMCIgeDI9IjEiIHkyPSIxIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM0RjhFRjciLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyQjVCRDciLz48L2xpbmVhckdyYWRpZW50PjxtYXNrIGlkPSJtMWRpIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSItOCIgeT0iLTgiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHJlY3QgeD0iLTgiIHk9Ii04IiB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSI4LjYiIGN5PSIxMiIgcj0iMS45IiBmaWxsPSIjMDAwIi8+PHJlY3QgeD0iMTMuMiIgeT0iOS4wIiB3aWR0aD0iMy4yIiBoZWlnaHQ9IjYuNCIgcng9Ii42IiBmaWxsPSIjMDAwIi8+PHJlY3QgeD0iMTcuMyIgeT0iNi40IiB3aWR0aD0iMy4yIiBoZWlnaHQ9IjkiIHJ4PSIuNiIgZmlsbD0iIzAwMCIvPjxyZWN0IHg9IjIxLjQiIHk9IjEwLjQiIHdpZHRoPSIzLjIiIGhlaWdodD0iNSIgcng9Ii42IiBmaWxsPSIjMDAwIi8+PC9tYXNrPjxtYXNrIGlkPSJtMWRvIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSItOCIgeT0iLTgiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHJlY3QgeD0iLTgiIHk9Ii04IiB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSIyMy40IiBjeT0iMjMuNCIgcj0iNy42IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTI3LjIgMjcuMkwzMC40IDMwLjQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSI3LjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvbWFzaz48L2RlZnM+PGcgbWFzaz0idXJsKCNtMWRvKSI+PGcgdHJhbnNmb3JtPSIiPjxnIG1hc2s9InVybCgjbTFkaSkiPjxwb2x5Z29uIHBvaW50cz0iMi42LDEyIDkuNCw0LjIgMjguNCw0LjIgMjguNCwxOS44IDkuNCwxOS44IiBmaWxsPSJ1cmwoI20xZGcpIiBzdHJva2U9InVybCgjbTFkZykiIHN0cm9rZS13aWR0aD0iNC4yIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9nPjwvZz48L2c+PGNpcmNsZSBjeD0iMjMuNCIgY3k9IjIzLjQiIHI9IjUuMiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOENCQkZGIiBzdHJva2Utd2lkdGg9IjIuNiIvPjxwYXRoIGQ9Ik0yNy43OTk5OTk5OTk5OTk5OTcgMjcuNzk5OTk5OTk5OTk5OTk3TDI5LjQgMjkuNCIgc3Ryb2tlPSIjOENCQkZGIiBzdHJva2Utd2lkdGg9IjMuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9nPjxwYXRoIGQ9Ik02OS42MTYgMzcuNTQ0UTY3LjcxMiAzNy41NDQgNjYuMjgzOTk5OTk5OTk5OTkgMzYuNzk2UTY0Ljg1NiAzNi4wNDggNjQuMDIzIDM0LjczOTAwMDAwMDAwMDAwNFE2My4xOSAzMy40MyA2My4xOSAzMS43M1E2My4xOSAyOS44NiA2NC4xNTg5OTk5OTk5OTk5OSAyOC41Njc5OTk5OTk5OTk5OThRNjUuMTI4IDI3LjI3NiA2Ni43NDMgMjYuNTk1OTk5OTk5OTk5OTk3UTY4LjM1OCAyNS45MTU5OTk5OTk5OTk5OTcgNzAuMzMgMjUuOTE1OTk5OTk5OTk5OTk3UTcxLjQ1MiAyNS45MTU5OTk5OTk5OTk5OTcgNzIuMzcgMjYuMDY5UTczLjI4OCAyNi4yMjIgNzQuMDAyMDAwMDAwMDAwMDEgMjYuNDI2MDAwMDAwMDAwMDAyUTc0LjcxNjAwMDAwMDAwMDAxIDI2LjYzIDc1LjEyNCAyNi44NjhWMjUuOTVRNzUuMTI0IDI0LjI1IDczLjkgMjMuMjNRNzIuNjc2IDIyLjIxIDcwLjczOCAyMi4yMVE2OS40MTIgMjIuMjEgNjguMjIyMDAwMDAwMDAwMDEgMjIuODA1UTY3LjAzMiAyMy40IDY2LjI4NCAyNC40Mkw2My44MDIgMjIuNDgyUTY0LjU1IDIxLjQyNzk5OTk5OTk5OTk5NyA2NS42MjEwMDAwMDAwMDAwMSAyMC42OFE2Ni42OTIwMDAwMDAwMDAwMSAxOS45MzIgNjguMDE4IDE5LjUyNFE2OS4zNDQgMTkuMTE2IDcwLjg0IDE5LjExNlE3NC41OCAxOS4xMTYgNzYuNjIgMjAuOTY5UTc4LjY2IDIyLjgyMiA3OC42NiAyNi4xNTRWMzcuMEg3NS4xMjRWMzQuODU4SDc0LjkyUTc0LjQ0NCAzNS41MzggNzMuNjc5IDM2LjE1UTcyLjkxNCAzNi43NjIgNzEuODk0IDM3LjE1M1E3MC44NzQgMzcuNTQ0IDY5LjYxNiAzNy41NDRaTTcwLjI2MiAzNC41NTJRNzEuNjkgMzQuNTUyIDcyLjc3Nzk5OTk5OTk5OTk5IDMzLjg3MlE3My44NjYgMzMuMTkyIDc0LjQ5NSAzMi4wODdRNzUuMTI0IDMwLjk4MiA3NS4xMjQgMjkuNjg5OTk5OTk5OTk5OTk4UTc0LjM0MiAyOS4yNDc5OTk5OTk5OTk5OTggNzMuMjg4IDI4Ljk1OVE3Mi4yMzQgMjguNjcgNzEuMDEgMjguNjdRNjguOCAyOC42NyA2Ny44NDggMjkuNTU0MDAwMDAwMDAwMDAyUTY2Ljg5NiAzMC40MzggNjYuODk2IDMxLjc2NFE2Ni44OTYgMzIuOTg4IDY3Ljc5NyAzMy43Njk5OTk5OTk5OTk5OTZRNjguNjk4MDAwMDAwMDAwMDEgMzQuNTUyIDcwLjI2MiAzNC41NTJaTTgyLjI5OCAzNy4wVjE5LjY2SDg1Ljk3VjM3LjBaTTg0LjEzNCAxNy4xMVE4My4xMTQgMTcuMTEgODIuMzgzMDAwMDAwMDAwMDEgMTYuMzc4OTk5OTk5OTk5OTk4UTgxLjY1MiAxNS42NDggODEuNjUyIDE0LjYyOFE4MS42NTIgMTMuNTczOTk5OTk5OTk5OTk4IDgyLjM4MzAwMDAwMDAwMDAxIDEyLjg3Njk5OTk5OTk5OTk5OVE4My4xMTQgMTIuMTggODQuMTM0IDEyLjE4UTg1LjE4OCAxMi4xOCA4NS45MDIgMTIuODc2OTk5OTk5OTk5OTk5UTg2LjYxNiAxMy41NzM5OTk5OTk5OTk5OTggODYuNjE2IDE0LjYyOFE4Ni42MTYgMTUuNjQ4IDg1LjkwMiAxNi4zNzg5OTk5OTk5OTk5OThRODUuMTg4IDE3LjExIDg0LjEzNCAxNy4xMVpNOTYuMjA0IDIyLjg1NTk5OTk5OTk5OTk5OFYxOS42Nkg5OS40MzRWMjIuODU1OTk5OTk5OTk5OTk4Wk0xMDQuNTM0IDM3LjI3MlExMDIuMTIgMzcuMjcyIDEwMC42OTIwMDAwMDAwMDAwMSAzNS44NDM5OTk5OTk5OTk5OTRROTkuMjY0MDAwMDAwMDAwMDEgMzQuNDE2IDk5LjI2NDAwMDAwMDAwMDAxIDMxLjk2OFYxNC43NjRIMTAyLjkzNlYzMS4xODZRMTAyLjkzNiAzMi41NDYgMTAzLjQ4IDMzLjE5MlExMDQuMDI0IDMzLjgzOCAxMDUuMjE0IDMzLjgzOFExMDUuNzU4MDAwMDAwMDAwMDEgMzMuODM4IDEwNi4yMzQwMDAwMDAwMDAwMSAzMy42ODVRMTA2LjcxMDAwMDAwMDAwMDAxIDMzLjUzMiAxMDcuMjg4MDAwMDAwMDAwMDEgMzMuMTkyVjM2Ljc2MlExMDYuNjQyMDAwMDAwMDAwMDEgMzcuMCAxMDUuOTYyMDAwMDAwMDAwMDIgMzcuMTM1OTk5OTk5OTk5OTk2UTEwNS4yODIwMDAwMDAwMDAwMSAzNy4yNzIgMTA0LjUzNCAzNy4yNzJaTTEwMi43MzIgMjIuODU1OTk5OTk5OTk5OTk4VjE5LjY2SDEwNy4xNTJWMjIuODU1OTk5OTk5OTk5OTk4Wk0xMTUuODU2MDAwMDAwMDAwMDEgMzcuNTQ0UTExMy45NTIwMDAwMDAwMDAwMSAzNy41NDQgMTEyLjUyNCAzNi43OTZRMTExLjA5NiAzNi4wNDggMTEwLjI2MyAzNC43MzkwMDAwMDAwMDAwMDRRMTA5LjQzIDMzLjQzIDEwOS40MyAzMS43M1ExMDkuNDMgMjkuODYgMTEwLjM5OSAyOC41Njc5OTk5OTk5OTk5OThRMTExLjM2ODAwMDAwMDAwMDAxIDI3LjI3NiAxMTIuOTgzIDI2LjU5NTk5OTk5OTk5OTk5N1ExMTQuNTk4MDAwMDAwMDAwMDEgMjUuOTE1OTk5OTk5OTk5OTk3IDExNi41NzAwMDAwMDAwMDAwMSAyNS45MTU5OTk5OTk5OTk5OTdRMTE3LjY5MjAwMDAwMDAwMDAxIDI1LjkxNTk5OTk5OTk5OTk5NyAxMTguNjEwMDAwMDAwMDAwMDEgMjYuMDY5UTExOS41MjggMjYuMjIyIDEyMC4yNDIwMDAwMDAwMDAwMiAyNi40MjYwMDAwMDAwMDAwMDJRMTIwLjk1NjAwMDAwMDAwMDAyIDI2LjYzIDEyMS4zNjQgMjYuODY4VjI1Ljk1UTEyMS4zNjQgMjQuMjUgMTIwLjE0MDAwMDAwMDAwMDAxIDIzLjIzUTExOC45MTYwMDAwMDAwMDAwMSAyMi4yMSAxMTYuOTc4MDAwMDAwMDAwMDEgMjIuMjFRMTE1LjY1MjAwMDAwMDAwMDAyIDIyLjIxIDExNC40NjIwMDAwMDAwMDAwMiAyMi44MDVRMTEzLjI3MiAyMy40IDExMi41MjQwMDAwMDAwMDAwMiAyNC40MkwxMTAuMDQyMDAwMDAwMDAwMDIgMjIuNDgyUTExMC43OSAyMS40Mjc5OTk5OTk5OTk5OTcgMTExLjg2MTAwMDAwMDAwMDAyIDIwLjY4UTExMi45MzIwMDAwMDAwMDAwMiAxOS45MzIgMTE0LjI1ODAwMDAwMDAwMDAxIDE5LjUyNFExMTUuNTg0IDE5LjExNiAxMTcuMDgwMDAwMDAwMDAwMDEgMTkuMTE2UTEyMC44MjAwMDAwMDAwMDAwMSAxOS4xMTYgMTIyLjg2MDAwMDAwMDAwMDAxIDIwLjk2OVExMjQuOSAyMi44MjIgMTI0LjkgMjYuMTU0VjM3LjBIMTIxLjM2NFYzNC44NThIMTIxLjE2MDAwMDAwMDAwMDAxUTEyMC42ODQwMDAwMDAwMDAwMSAzNS41MzggMTE5LjkxOTAwMDAwMDAwMDAxIDM2LjE1UTExOS4xNTQwMDAwMDAwMDAwMSAzNi43NjIgMTE4LjEzNDAwMDAwMDAwMDAxIDM3LjE1M1ExMTcuMTE0IDM3LjU0NCAxMTUuODU2MDAwMDAwMDAwMDEgMzcuNTQ0Wk0xMTYuNTAyMDAwMDAwMDAwMDEgMzQuNTUyUTExNy45MyAzNC41NTIgMTE5LjAxOCAzMy44NzJRMTIwLjEwNjAwMDAwMDAwMDAxIDMzLjE5MiAxMjAuNzM1MDAwMDAwMDAwMDEgMzIuMDg3UTEyMS4zNjQgMzAuOTgyIDEyMS4zNjQgMjkuNjg5OTk5OTk5OTk5OTk4UTEyMC41ODIwMDAwMDAwMDAwMSAyOS4yNDc5OTk5OTk5OTk5OTggMTE5LjUyOCAyOC45NTlRMTE4LjQ3NCAyOC42NyAxMTcuMjUwMDAwMDAwMDAwMDEgMjguNjdRMTE1LjA0IDI4LjY3IDExNC4wODgwMDAwMDAwMDAwMSAyOS41NTQwMDAwMDAwMDAwMDJRMTEzLjEzNjAwMDAwMDAwMDAxIDMwLjQzOCAxMTMuMTM2MDAwMDAwMDAwMDEgMzEuNzY0UTExMy4xMzYwMDAwMDAwMDAwMSAzMi45ODggMTE0LjAzNyAzMy43Njk5OTk5OTk5OTk5OTZRMTE0LjkzODAwMDAwMDAwMDAyIDM0LjU1MiAxMTYuNTAyMDAwMDAwMDAwMDEgMzQuNTUyWk0xMzYuMzU4IDQ0Ljg4OFExMzQuMDggNDQuODg4IDEzMi40MzEgNDQuMTU3UTEzMC43ODIgNDMuNDI2IDEyOS43NjIgNDIuMjg3MDAwMDAwMDAwMDA2UTEyOC43NDIwMDAwMDAwMDAwMiA0MS4xNDggMTI4LjMgMzkuOTU4TDEzMS43MDAwMDAwMDAwMDAwMiAzOC41M1ExMzIuMjQ0IDM5Ljg5IDEzMy40NTEwMDAwMDAwMDAwMiA0MC43NTcwMDAwMDAwMDAwMDVRMTM0LjY1ODAwMDAwMDAwMDAyIDQxLjYyNCAxMzYuMzU4IDQxLjYyNFExMzguNzcyMDAwMDAwMDAwMDIgNDEuNjI0IDE0MC4xMzIgNDAuMTk2UTE0MS40OTIwMDAwMDAwMDAwMiAzOC43NjggMTQxLjQ5MjAwMDAwMDAwMDAyIDM2LjE1VjM0LjQ4NEgxNDEuMjg4UTE0MC40NzIgMzUuNjc0IDEzOS4wNDQgMzYuNDIyUTEzNy42MTYgMzcuMTcgMTM1Ljc0NiAzNy4xN1ExMzMuNTM2IDM3LjE3IDEzMS42ODMgMzYuMDQ4UTEyOS44MyAzNC45MjYgMTI4LjcyNTAwMDAwMDAwMDAyIDMyLjkwM1ExMjcuNjIgMzAuODggMTI3LjYyIDI4LjE2UTEyNy42MiAyNS40MDYgMTI4LjcyNTAwMDAwMDAwMDAyIDIzLjM4M1ExMjkuODMgMjEuMzYgMTMxLjY4MyAyMC4yMzhRMTMzLjUzNiAxOS4xMTYgMTM1Ljc0NiAxOS4xMTZRMTM3LjYxNiAxOS4xMTYgMTM5LjA0NCAxOS44NDdRMTQwLjQ3MiAyMC41NzggMTQxLjI4OCAyMS44MzZIMTQxLjQ5MjAwMDAwMDAwMDAyVjE5LjY2SDE0NC45OTRWMzYuMDgyUTE0NC45OTQgMzguOTA0IDE0My44ODkgNDAuODc2MDAwMDAwMDAwMDA1UTE0Mi43ODQwMDAwMDAwMDAwMiA0Mi44NDggMTQwLjg0NiA0My44Njc5OTk5OTk5OTk5OTVRMTM4LjkwODAwMDAwMDAwMDAyIDQ0Ljg4OCAxMzYuMzU4IDQ0Ljg4OFpNMTM2LjM5MiAzMy44MzhRMTM3Ljc1MiAzMy44MzggMTM4LjkyNSAzMy4xNzVRMTQwLjA5OCAzMi41MTIgMTQwLjc5NTAwMDAwMDAwMDAyIDMxLjIzNzAwMDAwMDAwMDAwMlExNDEuNDkyMDAwMDAwMDAwMDIgMjkuOTYyIDE0MS40OTIwMDAwMDAwMDAwMiAyOC4xNlExNDEuNDkyMDAwMDAwMDAwMDIgMjYuMjU2IDE0MC43OTUwMDAwMDAwMDAwMiAyNC45OTc5OTk5OTk5OTk5OThRMTQwLjA5OCAyMy43NCAxMzguOTI1IDIzLjA5NFExMzcuNzUyIDIyLjQ0OCAxMzYuMzkyIDIyLjQ0OFExMzUuMDMyIDIyLjQ0OCAxMzMuODU5IDIzLjA5NFExMzIuNjg2IDIzLjc0IDEzMS45NzIgMjUuMDE1UTEzMS4yNTggMjYuMjkgMTMxLjI1OCAyOC4xNlExMzEuMjU4IDI5Ljk5NiAxMzEuOTcyIDMxLjI3MVExMzIuNjg2IDMyLjU0NiAxMzMuODU5IDMzLjE5MlExMzUuMDMyIDMzLjgzOCAxMzYuMzkyIDMzLjgzOFpNMTYzLjg2NCAzNy41NDRRMTYxLjUxOCAzNy41NDQgMTU5LjYxNCAzNi4zNTRRMTU3LjcxIDM1LjE2NCAxNTYuNjIyIDMzLjA5UTE1NS41MzQgMzEuMDE2IDE1NS41MzQgMjguMzNRMTU1LjUzNCAyNS42NDQgMTU2LjYyMiAyMy41N1ExNTcuNzEgMjEuNDk2IDE1OS42MTQgMjAuMzA1OTk5OTk5OTk5OTk3UTE2MS41MTggMTkuMTE2IDE2My44NjQgMTkuMTE2UTE2NS4yMjQgMTkuMTE2IDE2Ni4zMTIgMTkuNTI0UTE2Ny40IDE5LjkzMiAxNjguMTk5IDIwLjU5NVExNjguOTk4IDIxLjI1OCAxNjkuNDQgMjIuMDA2SDE2OS42NDRMMTY5LjQ0IDE5LjU5MlYxMi42NTU5OTk5OTk5OTk5OTlIMTczLjA3OFYzNy4wSDE2OS42NDRWMzQuNjg4SDE2OS40NFExNjguOTk4IDM1LjQwMiAxNjguMTk5IDM2LjA2NVExNjcuNCAzNi43MjggMTY2LjMxMiAzNy4xMzU5OTk5OTk5OTk5OTZRMTY1LjIyNCAzNy41NDQgMTYzLjg2NCAzNy41NDRaTTE2NC40MDggMzQuMTc4UTE2NS43NjggMzQuMTc4IDE2Ni45NzUgMzMuNDY0UTE2OC4xODIgMzIuNzUgMTY4LjkxMyAzMS40NDFRMTY5LjY0NCAzMC4xMzE5OTk5OTk5OTk5OTggMTY5LjY0NCAyOC4zM1ExNjkuNjQ0IDI2LjUyOCAxNjguOTEzIDI1LjIxODk5OTk5OTk5OTk5OFExNjguMTgyIDIzLjkwOTk5OTk5OTk5OTk5NyAxNjYuOTc1IDIzLjE5NTk5OTk5OTk5OTk5OFExNjUuNzY4IDIyLjQ4MiAxNjQuNDA4IDIyLjQ4MlExNjMuMDQ4IDIyLjQ4MiAxNjEuODU4IDIzLjE5NTk5OTk5OTk5OTk5OFExNjAuNjY4IDIzLjkwOTk5OTk5OTk5OTk5NyAxNTkuOTIwMDAwMDAwMDAwMDIgMjUuMjE4OTk5OTk5OTk5OTk4UTE1OS4xNzIgMjYuNTI4IDE1OS4xNzIgMjguMzNRMTU5LjE3MiAzMC4wOTggMTU5LjkyMDAwMDAwMDAwMDAyIDMxLjQyNFExNjAuNjY4IDMyLjc1IDE2MS44NTggMzMuNDY0UTE2My4wNDggMzQuMTc4IDE2NC40MDggMzQuMTc4Wk0xODQuOTEgMzcuNTQ0UTE4Mi4zNTk5OTk5OTk5OTk5OSAzNy41NDQgMTgwLjM1Mzk5OTk5OTk5OTk4IDM2LjM1NFExNzguMzQ3OTk5OTk5OTk5OTggMzUuMTY0IDE3Ny4yMDkgMzMuMDlRMTc2LjA3IDMxLjAxNiAxNzYuMDcgMjguMzYzOTk5OTk5OTk5OTk3UTE3Ni4wNyAyNS44ODE5OTk5OTk5OTk5OTggMTc3LjE1ODAwMDAwMDAwMDAyIDIzLjc3Mzk5OTk5OTk5OTk5N1ExNzguMjQ2IDIxLjY2NTk5OTk5OTk5OTk5NyAxODAuMjAxMDAwMDAwMDAwMDIgMjAuMzkxUTE4Mi4xNTYgMTkuMTE2IDE4NC43MDYgMTkuMTE2UTE4Ny4zOTIgMTkuMTE2IDE4OS4yNzkgMjAuMjcyUTE5MS4xNjYgMjEuNDI3OTk5OTk5OTk5OTk3IDE5Mi4xNTIgMjMuNDMzOTk5OTk5OTk5OTk3UTE5My4xMzggMjUuNDM5OTk5OTk5OTk5OTk4IDE5My4xMzggMjcuOTU2UTE5My4xMzggMjguMzMgMTkzLjEyMDk5OTk5OTk5OTk4IDI4LjYzNlExOTMuMTAzOTk5OTk5OTk5OTggMjguOTQyIDE5My4wNyAyOS4xMTJIMTc4LjE0NFYyNi4zNTc5OTk5OTk5OTk5OTdIMTg5LjVRMTg5LjQ2NiAyNS43MTIgMTg5LjE2IDI0Ljk4MVExODguODUzOTk5OTk5OTk5OTggMjQuMjUgMTg4LjI3NiAyMy42Mzc5OTk5OTk5OTk5OThRMTg3LjY5OCAyMy4wMjYgMTg2LjgxNDAwMDAwMDAwMDAyIDIyLjYzNDk5OTk5OTk5OTk5OFExODUuOTMgMjIuMjQ0IDE4NC43NCAyMi4yNDRRMTgzLjI0NCAyMi4yNDQgMTgyLjA4OCAyMy4wMDlRMTgwLjkzMiAyMy43NzQgMTgwLjI4NiAyNS4xMzRRMTc5LjY0IDI2LjQ5NCAxNzkuNjQgMjguMjk2UTE3OS42NCAzMC4yNjggMTgwLjM4Nzk5OTk5OTk5OTk4IDMxLjU5NFExODEuMTM2IDMyLjkyIDE4Mi4zNiAzMy42UTE4My41ODQgMzQuMjggMTg1LjAxMiAzNC4yOFExODYuNzQ2IDM0LjI4IDE4Ny45MTg5OTk5OTk5OTk5OCAzMy40ODFRMTg5LjA5MTk5OTk5OTk5OTk4IDMyLjY4MiAxODkuNzcyIDMxLjQ5MkwxOTIuNzk4IDMyLjk1NFExOTEuNjc2IDM0Ljk5NCAxODkuNzM4IDM2LjI2OVExODcuOCAzNy41NDQgMTg0LjkxIDM3LjU0NFpNMjA1LjM0NCAzNy41NDRRMjA0LjAxOCAzNy41NDQgMjAyLjkzIDM3LjEzNTk5OTk5OTk5OTk5NlEyMDEuODQyIDM2LjcyOCAyMDEuMDQzIDM2LjA2NVEyMDAuMjQ0IDM1LjQwMiAxOTkuNzY4IDM0LjY4OEgxOTkuNTY0VjM3LjBIMTk2LjA5NlYxMi42NTU5OTk5OTk5OTk5OTlIMTk5Ljc2OFYxOS41OTJMMTk5LjU2NCAyMi4wMDZIMTk5Ljc2OFEyMDAuMjQ0IDIxLjI1OCAyMDEuMDQzIDIwLjU5NVEyMDEuODQyIDE5LjkzMiAyMDIuOTMgMTkuNTI0UTIwNC4wMTggMTkuMTE2IDIwNS4zNDQgMTkuMTE2UTIwNy43MjQgMTkuMTE2IDIwOS41OTQgMjAuMzA1OTk5OTk5OTk5OTk3UTIxMS40NjQgMjEuNDk2IDIxMi41NjkwMDAwMDAwMDAwMiAyMy41N1EyMTMuNjc0IDI1LjY0NCAyMTMuNjc0IDI4LjMzUTIxMy42NzQgMzEuMDE2IDIxMi41NjkwMDAwMDAwMDAwMiAzMy4wOVEyMTEuNDY0IDM1LjE2NCAyMDkuNTk0IDM2LjM1NFEyMDcuNzI0IDM3LjU0NCAyMDUuMzQ0IDM3LjU0NFpNMjA0LjggMzQuMTc4UTIwNi4xNiAzNC4xNzggMjA3LjM2NzAwMDAwMDAwMDAyIDMzLjQ2NFEyMDguNTc0IDMyLjc1IDIwOS4zMDUgMzEuNDI0UTIxMC4wMzYgMzAuMDk4IDIxMC4wMzYgMjguMzNRMjEwLjAzNiAyNi41MjggMjA5LjMwNSAyNS4yMTg5OTk5OTk5OTk5OThRMjA4LjU3NCAyMy45MDk5OTk5OTk5OTk5OTcgMjA3LjM2NzAwMDAwMDAwMDAyIDIzLjE5NTk5OTk5OTk5OTk5OFEyMDYuMTYgMjIuNDgyIDIwNC44IDIyLjQ4MlEyMDMuNDQgMjIuNDgyIDIwMi4yNSAyMy4xOTU5OTk5OTk5OTk5OThRMjAxLjA2IDIzLjkwOTk5OTk5OTk5OTk5NyAyMDAuMzEyIDI1LjIxODk5OTk5OTk5OTk5OFExOTkuNTY0IDI2LjUyOCAxOTkuNTY0IDI4LjMzUTE5OS41NjQgMzAuMTMxOTk5OTk5OTk5OTk4IDIwMC4zMTIgMzEuNDQxUTIwMS4wNiAzMi43NSAyMDIuMjUgMzMuNDY0UTIwMy40NCAzNC4xNzggMjA0LjggMzQuMTc4Wk0yMjIuOTIyIDM3LjU0NFEyMTkuNzI2IDM3LjU0NCAyMTguMTExIDM1LjYyM1EyMTYuNDk2IDMzLjcwMiAyMTYuNDk2IDMwLjQwNFYxOS42NkgyMjAuMTY4VjI5Ljg5NFEyMjAuMTY4IDMyLjA3IDIyMS4yMDQ5OTk5OTk5OTk5OCAzMy4xMjM5OTk5OTk5OTk5OTVRMjIyLjI0MiAzNC4xNzggMjIzLjgwNiAzNC4xNzhRMjI1LjIzNCAzNC4xNzggMjI2LjI1NDAwMDAwMDAwMDAyIDMzLjQ0N1EyMjcuMjc0IDMyLjcxNiAyMjcuODM1IDMxLjUyNlEyMjguMzk2MDAwMDAwMDAwMDIgMzAuMzM2IDIyOC4zOTYwMDAwMDAwMDAwMiAyOC45NzZWMTkuNjZIMjMyLjAzNFYzNy4wSDIyOC42VjM0LjY1Mzk5OTk5OTk5OTk5NkgyMjguMzk2MDAwMDAwMDAwMDJRMjI3LjkyMDAwMDAwMDAwMDAyIDM1LjQ3IDIyNy4wNyAzNi4xMTZRMjI2LjIyIDM2Ljc2MiAyMjUuMTY2IDM3LjE1M1EyMjQuMTEyIDM3LjU0NCAyMjIuOTIyIDM3LjU0NFpNMjQzLjc2NCA0NC44ODhRMjQxLjQ4NjAwMDAwMDAwMDAyIDQ0Ljg4OCAyMzkuODM3MDAwMDAwMDAwMDIgNDQuMTU3UTIzOC4xODgwMDAwMDAwMDAwMiA0My40MjYgMjM3LjE2OCA0Mi4yODcwMDAwMDAwMDAwMDZRMjM2LjE0ODAwMDAwMDAwMDAyIDQxLjE0OCAyMzUuNzA2MDAwMDAwMDAwMDIgMzkuOTU4TDIzOS4xMDYwMDAwMDAwMDAwMiAzOC41M1EyMzkuNjUgMzkuODkgMjQwLjg1NzAwMDAwMDAwMDAzIDQwLjc1NzAwMDAwMDAwMDAwNVEyNDIuMDY0MDAwMDAwMDAwMDIgNDEuNjI0IDI0My43NjQgNDEuNjI0UTI0Ni4xNzgwMDAwMDAwMDAwMyA0MS42MjQgMjQ3LjUzOCA0MC4xOTZRMjQ4Ljg5ODAwMDAwMDAwMDAyIDM4Ljc2OCAyNDguODk4MDAwMDAwMDAwMDIgMzYuMTVWMzQuNDg0SDI0OC42OTQwMDAwMDAwMDAwMlEyNDcuODc4MDAwMDAwMDAwMDEgMzUuNjc0IDI0Ni40NTAwMDAwMDAwMDAwMiAzNi40MjJRMjQ1LjAyMjAwMDAwMDAwMDAyIDM3LjE3IDI0My4xNTIwMDAwMDAwMDAwMiAzNy4xN1EyNDAuOTQyIDM3LjE3IDIzOS4wODkgMzYuMDQ4UTIzNy4yMzYwMDAwMDAwMDAwMiAzNC45MjYgMjM2LjEzMTAwMDAwMDAwMDAzIDMyLjkwM1EyMzUuMDI2IDMwLjg4IDIzNS4wMjYgMjguMTZRMjM1LjAyNiAyNS40MDYgMjM2LjEzMTAwMDAwMDAwMDAzIDIzLjM4M1EyMzcuMjM2MDAwMDAwMDAwMDIgMjEuMzYgMjM5LjA4OSAyMC4yMzhRMjQwLjk0MiAxOS4xMTYgMjQzLjE1MjAwMDAwMDAwMDAyIDE5LjExNlEyNDUuMDIyMDAwMDAwMDAwMDIgMTkuMTE2IDI0Ni40NTAwMDAwMDAwMDAwMiAxOS44NDdRMjQ3Ljg3ODAwMDAwMDAwMDAxIDIwLjU3OCAyNDguNjk0MDAwMDAwMDAwMDIgMjEuODM2SDI0OC44OTgwMDAwMDAwMDAwMlYxOS42NkgyNTIuNFYzNi4wODJRMjUyLjQgMzguOTA0IDI1MS4yOTUwMDAwMDAwMDAwMiA0MC44NzYwMDAwMDAwMDAwMDVRMjUwLjE5MDAwMDAwMDAwMDAzIDQyLjg0OCAyNDguMjUyIDQzLjg2Nzk5OTk5OTk5OTk5NVEyNDYuMzE0MDAwMDAwMDAwMDIgNDQuODg4IDI0My43NjQgNDQuODg4Wk0yNDMuNzk4IDMzLjgzOFEyNDUuMTU4MDAwMDAwMDAwMDIgMzMuODM4IDI0Ni4zMzEwMDAwMDAwMDAwMiAzMy4xNzVRMjQ3LjUwNDAwMDAwMDAwMDAyIDMyLjUxMiAyNDguMjAxMDAwMDAwMDAwMDIgMzEuMjM3MDAwMDAwMDAwMDAyUTI0OC44OTgwMDAwMDAwMDAwMiAyOS45NjIgMjQ4Ljg5ODAwMDAwMDAwMDAyIDI4LjE2UTI0OC44OTgwMDAwMDAwMDAwMiAyNi4yNTYgMjQ4LjIwMTAwMDAwMDAwMDAyIDI0Ljk5Nzk5OTk5OTk5OTk5OFEyNDcuNTA0MDAwMDAwMDAwMDIgMjMuNzQgMjQ2LjMzMTAwMDAwMDAwMDAyIDIzLjA5NFEyNDUuMTU4MDAwMDAwMDAwMDIgMjIuNDQ4IDI0My43OTggMjIuNDQ4UTI0Mi40MzgwMDAwMDAwMDAwMiAyMi40NDggMjQxLjI2NTAwMDAwMDAwMDAxIDIzLjA5NFEyNDAuMDkyIDIzLjc0IDIzOS4zNzgwMDAwMDAwMDAwMSAyNS4wMTVRMjM4LjY2NDAwMDAwMDAwMDAyIDI2LjI5IDIzOC42NjQwMDAwMDAwMDAwMiAyOC4xNlEyMzguNjY0MDAwMDAwMDAwMDIgMjkuOTk2IDIzOS4zNzgwMDAwMDAwMDAwMSAzMS4yNzFRMjQwLjA5MiAzMi41NDYgMjQxLjI2NTAwMDAwMDAwMDAxIDMzLjE5MlEyNDIuNDM4MDAwMDAwMDAwMDIgMzMuODM4IDI0My43OTggMzMuODM4Wk0yNjQuMDk2IDQ0Ljg4OFEyNjEuODE4IDQ0Ljg4OCAyNjAuMTY5IDQ0LjE1N1EyNTguNTIgNDMuNDI2IDI1Ny41IDQyLjI4NzAwMDAwMDAwMDAwNlEyNTYuNDggNDEuMTQ4IDI1Ni4wMzggMzkuOTU4TDI1OS40MzggMzguNTNRMjU5Ljk4MiAzOS44OSAyNjEuMTg5IDQwLjc1NzAwMDAwMDAwMDAwNVEyNjIuMzk2IDQxLjYyNCAyNjQuMDk2IDQxLjYyNFEyNjYuNTEgNDEuNjI0IDI2Ny44NyA0MC4xOTZRMjY5LjIzIDM4Ljc2OCAyNjkuMjMgMzYuMTVWMzQuNDg0SDI2OS4wMjZRMjY4LjIxMDAwMDAwMDAwMDA0IDM1LjY3NCAyNjYuNzgyMDAwMDAwMDAwMDQgMzYuNDIyUTI2NS4zNTQgMzcuMTcgMjYzLjQ4NCAzNy4xN1EyNjEuMjc0IDM3LjE3IDI1OS40MjEgMzYuMDQ4UTI1Ny41NjggMzQuOTI2IDI1Ni40NjI5OTk5OTk5OTk5NyAzMi45MDNRMjU1LjM1OCAzMC44OCAyNTUuMzU4IDI4LjE2UTI1NS4zNTggMjUuNDA2IDI1Ni40NjI5OTk5OTk5OTk5NyAyMy4zODNRMjU3LjU2OCAyMS4zNiAyNTkuNDIxIDIwLjIzOFEyNjEuMjc0IDE5LjExNiAyNjMuNDg0IDE5LjExNlEyNjUuMzU0IDE5LjExNiAyNjYuNzgyMDAwMDAwMDAwMDQgMTkuODQ3UTI2OC4yMTAwMDAwMDAwMDAwNCAyMC41NzggMjY5LjAyNiAyMS44MzZIMjY5LjIzVjE5LjY2SDI3Mi43MzJWMzYuMDgyUTI3Mi43MzIgMzguOTA0IDI3MS42MjcgNDAuODc2MDAwMDAwMDAwMDA1UTI3MC41MjIgNDIuODQ4IDI2OC41ODQgNDMuODY3OTk5OTk5OTk5OTk1UTI2Ni42NDYgNDQuODg4IDI2NC4wOTYgNDQuODg4Wk0yNjQuMTMgMzMuODM4UTI2NS40OSAzMy44MzggMjY2LjY2MyAzMy4xNzVRMjY3LjgzNiAzMi41MTIgMjY4LjUzMyAzMS4yMzcwMDAwMDAwMDAwMDJRMjY5LjIzIDI5Ljk2MiAyNjkuMjMgMjguMTZRMjY5LjIzIDI2LjI1NiAyNjguNTMzIDI0Ljk5Nzk5OTk5OTk5OTk5OFEyNjcuODM2IDIzLjc0IDI2Ni42NjMgMjMuMDk0UTI2NS40OSAyMi40NDggMjY0LjEzIDIyLjQ0OFEyNjIuNzcgMjIuNDQ4IDI2MS41OTcgMjMuMDk0UTI2MC40MjQgMjMuNzQgMjU5LjcxIDI1LjAxNVEyNTguOTk2IDI2LjI5IDI1OC45OTYgMjguMTZRMjU4Ljk5NiAyOS45OTYgMjU5LjcxIDMxLjI3MVEyNjAuNDI0IDMyLjU0NiAyNjEuNTk3IDMzLjE5MlEyNjIuNzcgMzMuODM4IDI2NC4xMyAzMy44MzhaTTI4NC41MyAzNy41NDRRMjgxLjk4IDM3LjU0NCAyNzkuOTc0MDAwMDAwMDAwMDUgMzYuMzU0UTI3Ny45NjggMzUuMTY0IDI3Ni44MjkgMzMuMDlRMjc1LjY5IDMxLjAxNiAyNzUuNjkgMjguMzYzOTk5OTk5OTk5OTk3UTI3NS42OSAyNS44ODE5OTk5OTk5OTk5OTggMjc2Ljc3OCAyMy43NzM5OTk5OTk5OTk5OTdRMjc3Ljg2NiAyMS42NjU5OTk5OTk5OTk5OTcgMjc5LjgyMSAyMC4zOTFRMjgxLjc3NiAxOS4xMTYgMjg0LjMyNiAxOS4xMTZRMjg3LjAxMiAxOS4xMTYgMjg4Ljg5OSAyMC4yNzJRMjkwLjc4NiAyMS40Mjc5OTk5OTk5OTk5OTcgMjkxLjc3MiAyMy40MzM5OTk5OTk5OTk5OTdRMjkyLjc1OCAyNS40Mzk5OTk5OTk5OTk5OTggMjkyLjc1OCAyNy45NTZRMjkyLjc1OCAyOC4zMyAyOTIuNzQxIDI4LjYzNlEyOTIuNzI0IDI4Ljk0MiAyOTIuNjkgMjkuMTEySDI3Ny43NjRWMjYuMzU3OTk5OTk5OTk5OTk3SDI4OS4xMlEyODkuMDg2IDI1LjcxMiAyODguNzggMjQuOTgxUTI4OC40NzQgMjQuMjUgMjg3Ljg5NTk5OTk5OTk5OTk2IDIzLjYzNzk5OTk5OTk5OTk5OFEyODcuMzE4IDIzLjAyNiAyODYuNDMzOTk5OTk5OTk5OTcgMjIuNjM0OTk5OTk5OTk5OTk4UTI4NS41NSAyMi4yNDQgMjg0LjM2IDIyLjI0NFEyODIuODY0IDIyLjI0NCAyODEuNzA3OTk5OTk5OTk5OTcgMjMuMDA5UTI4MC41NTIgMjMuNzc0IDI3OS45MDYgMjUuMTM0UTI3OS4yNiAyNi40OTQgMjc5LjI2IDI4LjI5NlEyNzkuMjYgMzAuMjY4IDI4MC4wMDggMzEuNTk0UTI4MC43NTYgMzIuOTIgMjgxLjk4IDMzLjZRMjgzLjIwNCAzNC4yOCAyODQuNjMyIDM0LjI4UTI4Ni4zNjYgMzQuMjggMjg3LjUzOSAzMy40ODFRMjg4LjcxMiAzMi42ODIgMjg5LjM5MiAzMS40OTJMMjkyLjQxOCAzMi45NTRRMjkxLjI5NiAzNC45OTQgMjg5LjM1OCAzNi4yNjlRMjg3LjQyIDM3LjU0NCAyODQuNTMgMzcuNTQ0Wk0yOTUuNzE2IDM3LjBWMTkuNjZIMjk5LjE4NFYyMi4yMUgyOTkuMzg4UTI5OS43OTYgMjEuMzI2IDMwMC41NjEwMDAwMDAwMDAwNCAyMC42NDZRMzAxLjMyNiAxOS45NjU5OTk5OTk5OTk5OTggMzAyLjMyOSAxOS41NThRMzAzLjMzMiAxOS4xNSAzMDQuNDIgMTkuMTVRMzA1LjEzNCAxOS4xNSAzMDUuNjI3IDE5LjIzNVEzMDYuMTIgMTkuMzIgMzA2LjUyOCAxOS40OVYyMy4yOThRMzA1Ljg4MiAyMy4wMjYgMzA1LjIxOSAyMi44NTZRMzA0LjU1NiAyMi42ODYgMzAzLjg0MiAyMi42ODZRMzAyLjU1IDIyLjY4NiAzMDEuNTQ3IDIzLjM4M1EzMDAuNTQ0IDI0LjA4IDI5OS45NjYgMjUuMjM1OTk5OTk5OTk5OTk3UTI5OS4zODggMjYuMzkyIDI5OS4zODggMjcuODJWMzcuMFoiIGZpbGw9IiMwQTBFMUEiLz48L3N2Zz4K",
|
|
11
|
-
"atd-lockup-dark": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMDcuMDQgNTIiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0iYWkgdGFnIGRlYnVnZ2VyIj48dGl0bGU+YWkgdGFnIGRlYnVnZ2VyPC90aXRsZT48ZyB0cmFuc2Zvcm09InNjYWxlKDEuNjIpIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9Im0xZWciIHgxPSIwIiB5MT0iMCIgeDI9IjEiIHkyPSIxIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM0RjhFRjciLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyQjVCRDciLz48L2xpbmVhckdyYWRpZW50PjxtYXNrIGlkPSJtMWVpIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSItOCIgeT0iLTgiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHJlY3QgeD0iLTgiIHk9Ii04IiB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSI4LjYiIGN5PSIxMiIgcj0iMS45IiBmaWxsPSIjMDAwIi8+PHJlY3QgeD0iMTMuMiIgeT0iOS4wIiB3aWR0aD0iMy4yIiBoZWlnaHQ9IjYuNCIgcng9Ii42IiBmaWxsPSIjMDAwIi8+PHJlY3QgeD0iMTcuMyIgeT0iNi40IiB3aWR0aD0iMy4yIiBoZWlnaHQ9IjkiIHJ4PSIuNiIgZmlsbD0iIzAwMCIvPjxyZWN0IHg9IjIxLjQiIHk9IjEwLjQiIHdpZHRoPSIzLjIiIGhlaWdodD0iNSIgcng9Ii42IiBmaWxsPSIjMDAwIi8+PC9tYXNrPjxtYXNrIGlkPSJtMWVvIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSItOCIgeT0iLTgiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHJlY3QgeD0iLTgiIHk9Ii04IiB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSIyMy40IiBjeT0iMjMuNCIgcj0iNy42IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTI3LjIgMjcuMkwzMC40IDMwLjQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSI3LjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvbWFzaz48L2RlZnM+PGcgbWFzaz0idXJsKCNtMWVvKSI+PGcgdHJhbnNmb3JtPSIiPjxnIG1hc2s9InVybCgjbTFlaSkiPjxwb2x5Z29uIHBvaW50cz0iMi42LDEyIDkuNCw0LjIgMjguNCw0LjIgMjguNCwxOS44IDkuNCwxOS44IiBmaWxsPSJ1cmwoI20xZWcpIiBzdHJva2U9InVybCgjbTFlZykiIHN0cm9rZS13aWR0aD0iNC4yIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9nPjwvZz48L2c+PGNpcmNsZSBjeD0iMjMuNCIgY3k9IjIzLjQiIHI9IjUuMiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOENCQkZGIiBzdHJva2Utd2lkdGg9IjIuNiIvPjxwYXRoIGQ9Ik0yNy43OTk5OTk5OTk5OTk5OTcgMjcuNzk5OTk5OTk5OTk5OTk3TDI5LjQgMjkuNCIgc3Ryb2tlPSIjOENCQkZGIiBzdHJva2Utd2lkdGg9IjMuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9nPjxwYXRoIGQ9Ik02OS42MTYgMzcuNTQ0UTY3LjcxMiAzNy41NDQgNjYuMjgzOTk5OTk5OTk5OTkgMzYuNzk2UTY0Ljg1NiAzNi4wNDggNjQuMDIzIDM0LjczOTAwMDAwMDAwMDAwNFE2My4xOSAzMy40MyA2My4xOSAzMS43M1E2My4xOSAyOS44NiA2NC4xNTg5OTk5OTk5OTk5OSAyOC41Njc5OTk5OTk5OTk5OThRNjUuMTI4IDI3LjI3NiA2Ni43NDMgMjYuNTk1OTk5OTk5OTk5OTk3UTY4LjM1OCAyNS45MTU5OTk5OTk5OTk5OTcgNzAuMzMgMjUuOTE1OTk5OTk5OTk5OTk3UTcxLjQ1MiAyNS45MTU5OTk5OTk5OTk5OTcgNzIuMzcgMjYuMDY5UTczLjI4OCAyNi4yMjIgNzQuMDAyMDAwMDAwMDAwMDEgMjYuNDI2MDAwMDAwMDAwMDAyUTc0LjcxNjAwMDAwMDAwMDAxIDI2LjYzIDc1LjEyNCAyNi44NjhWMjUuOTVRNzUuMTI0IDI0LjI1IDczLjkgMjMuMjNRNzIuNjc2IDIyLjIxIDcwLjczOCAyMi4yMVE2OS40MTIgMjIuMjEgNjguMjIyMDAwMDAwMDAwMDEgMjIuODA1UTY3LjAzMiAyMy40IDY2LjI4NCAyNC40Mkw2My44MDIgMjIuNDgyUTY0LjU1IDIxLjQyNzk5OTk5OTk5OTk5NyA2NS42MjEwMDAwMDAwMDAwMSAyMC42OFE2Ni42OTIwMDAwMDAwMDAwMSAxOS45MzIgNjguMDE4IDE5LjUyNFE2OS4zNDQgMTkuMTE2IDcwLjg0IDE5LjExNlE3NC41OCAxOS4xMTYgNzYuNjIgMjAuOTY5UTc4LjY2IDIyLjgyMiA3OC42NiAyNi4xNTRWMzcuMEg3NS4xMjRWMzQuODU4SDc0LjkyUTc0LjQ0NCAzNS41MzggNzMuNjc5IDM2LjE1UTcyLjkxNCAzNi43NjIgNzEuODk0IDM3LjE1M1E3MC44NzQgMzcuNTQ0IDY5LjYxNiAzNy41NDRaTTcwLjI2MiAzNC41NTJRNzEuNjkgMzQuNTUyIDcyLjc3Nzk5OTk5OTk5OTk5IDMzLjg3MlE3My44NjYgMzMuMTkyIDc0LjQ5NSAzMi4wODdRNzUuMTI0IDMwLjk4MiA3NS4xMjQgMjkuNjg5OTk5OTk5OTk5OTk4UTc0LjM0MiAyOS4yNDc5OTk5OTk5OTk5OTggNzMuMjg4IDI4Ljk1OVE3Mi4yMzQgMjguNjcgNzEuMDEgMjguNjdRNjguOCAyOC42NyA2Ny44NDggMjkuNTU0MDAwMDAwMDAwMDAyUTY2Ljg5NiAzMC40MzggNjYuODk2IDMxLjc2NFE2Ni44OTYgMzIuOTg4IDY3Ljc5NyAzMy43Njk5OTk5OTk5OTk5OTZRNjguNjk4MDAwMDAwMDAwMDEgMzQuNTUyIDcwLjI2MiAzNC41NTJaTTgyLjI5OCAzNy4wVjE5LjY2SDg1Ljk3VjM3LjBaTTg0LjEzNCAxNy4xMVE4My4xMTQgMTcuMTEgODIuMzgzMDAwMDAwMDAwMDEgMTYuMzc4OTk5OTk5OTk5OTk4UTgxLjY1MiAxNS42NDggODEuNjUyIDE0LjYyOFE4MS42NTIgMTMuNTczOTk5OTk5OTk5OTk4IDgyLjM4MzAwMDAwMDAwMDAxIDEyLjg3Njk5OTk5OTk5OTk5OVE4My4xMTQgMTIuMTggODQuMTM0IDEyLjE4UTg1LjE4OCAxMi4xOCA4NS45MDIgMTIuODc2OTk5OTk5OTk5OTk5UTg2LjYxNiAxMy41NzM5OTk5OTk5OTk5OTggODYuNjE2IDE0LjYyOFE4Ni42MTYgMTUuNjQ4IDg1LjkwMiAxNi4zNzg5OTk5OTk5OTk5OThRODUuMTg4IDE3LjExIDg0LjEzNCAxNy4xMVpNOTYuMjA0IDIyLjg1NTk5OTk5OTk5OTk5OFYxOS42Nkg5OS40MzRWMjIuODU1OTk5OTk5OTk5OTk4Wk0xMDQuNTM0IDM3LjI3MlExMDIuMTIgMzcuMjcyIDEwMC42OTIwMDAwMDAwMDAwMSAzNS44NDM5OTk5OTk5OTk5OTRROTkuMjY0MDAwMDAwMDAwMDEgMzQuNDE2IDk5LjI2NDAwMDAwMDAwMDAxIDMxLjk2OFYxNC43NjRIMTAyLjkzNlYzMS4xODZRMTAyLjkzNiAzMi41NDYgMTAzLjQ4IDMzLjE5MlExMDQuMDI0IDMzLjgzOCAxMDUuMjE0IDMzLjgzOFExMDUuNzU4MDAwMDAwMDAwMDEgMzMuODM4IDEwNi4yMzQwMDAwMDAwMDAwMSAzMy42ODVRMTA2LjcxMDAwMDAwMDAwMDAxIDMzLjUzMiAxMDcuMjg4MDAwMDAwMDAwMDEgMzMuMTkyVjM2Ljc2MlExMDYuNjQyMDAwMDAwMDAwMDEgMzcuMCAxMDUuOTYyMDAwMDAwMDAwMDIgMzcuMTM1OTk5OTk5OTk5OTk2UTEwNS4yODIwMDAwMDAwMDAwMSAzNy4yNzIgMTA0LjUzNCAzNy4yNzJaTTEwMi43MzIgMjIuODU1OTk5OTk5OTk5OTk4VjE5LjY2SDEwNy4xNTJWMjIuODU1OTk5OTk5OTk5OTk4Wk0xMTUuODU2MDAwMDAwMDAwMDEgMzcuNTQ0UTExMy45NTIwMDAwMDAwMDAwMSAzNy41NDQgMTEyLjUyNCAzNi43OTZRMTExLjA5NiAzNi4wNDggMTEwLjI2MyAzNC43MzkwMDAwMDAwMDAwMDRRMTA5LjQzIDMzLjQzIDEwOS40MyAzMS43M1ExMDkuNDMgMjkuODYgMTEwLjM5OSAyOC41Njc5OTk5OTk5OTk5OThRMTExLjM2ODAwMDAwMDAwMDAxIDI3LjI3NiAxMTIuOTgzIDI2LjU5NTk5OTk5OTk5OTk5N1ExMTQuNTk4MDAwMDAwMDAwMDEgMjUuOTE1OTk5OTk5OTk5OTk3IDExNi41NzAwMDAwMDAwMDAwMSAyNS45MTU5OTk5OTk5OTk5OTdRMTE3LjY5MjAwMDAwMDAwMDAxIDI1LjkxNTk5OTk5OTk5OTk5NyAxMTguNjEwMDAwMDAwMDAwMDEgMjYuMDY5UTExOS41MjggMjYuMjIyIDEyMC4yNDIwMDAwMDAwMDAwMiAyNi40MjYwMDAwMDAwMDAwMDJRMTIwLjk1NjAwMDAwMDAwMDAyIDI2LjYzIDEyMS4zNjQgMjYuODY4VjI1Ljk1UTEyMS4zNjQgMjQuMjUgMTIwLjE0MDAwMDAwMDAwMDAxIDIzLjIzUTExOC45MTYwMDAwMDAwMDAwMSAyMi4yMSAxMTYuOTc4MDAwMDAwMDAwMDEgMjIuMjFRMTE1LjY1MjAwMDAwMDAwMDAyIDIyLjIxIDExNC40NjIwMDAwMDAwMDAwMiAyMi44MDVRMTEzLjI3MiAyMy40IDExMi41MjQwMDAwMDAwMDAwMiAyNC40MkwxMTAuMDQyMDAwMDAwMDAwMDIgMjIuNDgyUTExMC43OSAyMS40Mjc5OTk5OTk5OTk5OTcgMTExLjg2MTAwMDAwMDAwMDAyIDIwLjY4UTExMi45MzIwMDAwMDAwMDAwMiAxOS45MzIgMTE0LjI1ODAwMDAwMDAwMDAxIDE5LjUyNFExMTUuNTg0IDE5LjExNiAxMTcuMDgwMDAwMDAwMDAwMDEgMTkuMTE2UTEyMC44MjAwMDAwMDAwMDAwMSAxOS4xMTYgMTIyLjg2MDAwMDAwMDAwMDAxIDIwLjk2OVExMjQuOSAyMi44MjIgMTI0LjkgMjYuMTU0VjM3LjBIMTIxLjM2NFYzNC44NThIMTIxLjE2MDAwMDAwMDAwMDAxUTEyMC42ODQwMDAwMDAwMDAwMSAzNS41MzggMTE5LjkxOTAwMDAwMDAwMDAxIDM2LjE1UTExOS4xNTQwMDAwMDAwMDAwMSAzNi43NjIgMTE4LjEzNDAwMDAwMDAwMDAxIDM3LjE1M1ExMTcuMTE0IDM3LjU0NCAxMTUuODU2MDAwMDAwMDAwMDEgMzcuNTQ0Wk0xMTYuNTAyMDAwMDAwMDAwMDEgMzQuNTUyUTExNy45MyAzNC41NTIgMTE5LjAxOCAzMy44NzJRMTIwLjEwNjAwMDAwMDAwMDAxIDMzLjE5MiAxMjAuNzM1MDAwMDAwMDAwMDEgMzIuMDg3UTEyMS4zNjQgMzAuOTgyIDEyMS4zNjQgMjkuNjg5OTk5OTk5OTk5OTk4UTEyMC41ODIwMDAwMDAwMDAwMSAyOS4yNDc5OTk5OTk5OTk5OTggMTE5LjUyOCAyOC45NTlRMTE4LjQ3NCAyOC42NyAxMTcuMjUwMDAwMDAwMDAwMDEgMjguNjdRMTE1LjA0IDI4LjY3IDExNC4wODgwMDAwMDAwMDAwMSAyOS41NTQwMDAwMDAwMDAwMDJRMTEzLjEzNjAwMDAwMDAwMDAxIDMwLjQzOCAxMTMuMTM2MDAwMDAwMDAwMDEgMzEuNzY0UTExMy4xMzYwMDAwMDAwMDAwMSAzMi45ODggMTE0LjAzNyAzMy43Njk5OTk5OTk5OTk5OTZRMTE0LjkzODAwMDAwMDAwMDAyIDM0LjU1MiAxMTYuNTAyMDAwMDAwMDAwMDEgMzQuNTUyWk0xMzYuMzU4IDQ0Ljg4OFExMzQuMDggNDQuODg4IDEzMi40MzEgNDQuMTU3UTEzMC43ODIgNDMuNDI2IDEyOS43NjIgNDIuMjg3MDAwMDAwMDAwMDA2UTEyOC43NDIwMDAwMDAwMDAwMiA0MS4xNDggMTI4LjMgMzkuOTU4TDEzMS43MDAwMDAwMDAwMDAwMiAzOC41M1ExMzIuMjQ0IDM5Ljg5IDEzMy40NTEwMDAwMDAwMDAwMiA0MC43NTcwMDAwMDAwMDAwMDVRMTM0LjY1ODAwMDAwMDAwMDAyIDQxLjYyNCAxMzYuMzU4IDQxLjYyNFExMzguNzcyMDAwMDAwMDAwMDIgNDEuNjI0IDE0MC4xMzIgNDAuMTk2UTE0MS40OTIwMDAwMDAwMDAwMiAzOC43NjggMTQxLjQ5MjAwMDAwMDAwMDAyIDM2LjE1VjM0LjQ4NEgxNDEuMjg4UTE0MC40NzIgMzUuNjc0IDEzOS4wNDQgMzYuNDIyUTEzNy42MTYgMzcuMTcgMTM1Ljc0NiAzNy4xN1ExMzMuNTM2IDM3LjE3IDEzMS42ODMgMzYuMDQ4UTEyOS44MyAzNC45MjYgMTI4LjcyNTAwMDAwMDAwMDAyIDMyLjkwM1ExMjcuNjIgMzAuODggMTI3LjYyIDI4LjE2UTEyNy42MiAyNS40MDYgMTI4LjcyNTAwMDAwMDAwMDAyIDIzLjM4M1ExMjkuODMgMjEuMzYgMTMxLjY4MyAyMC4yMzhRMTMzLjUzNiAxOS4xMTYgMTM1Ljc0NiAxOS4xMTZRMTM3LjYxNiAxOS4xMTYgMTM5LjA0NCAxOS44NDdRMTQwLjQ3MiAyMC41NzggMTQxLjI4OCAyMS44MzZIMTQxLjQ5MjAwMDAwMDAwMDAyVjE5LjY2SDE0NC45OTRWMzYuMDgyUTE0NC45OTQgMzguOTA0IDE0My44ODkgNDAuODc2MDAwMDAwMDAwMDA1UTE0Mi43ODQwMDAwMDAwMDAwMiA0Mi44NDggMTQwLjg0NiA0My44Njc5OTk5OTk5OTk5OTVRMTM4LjkwODAwMDAwMDAwMDAyIDQ0Ljg4OCAxMzYuMzU4IDQ0Ljg4OFpNMTM2LjM5MiAzMy44MzhRMTM3Ljc1MiAzMy44MzggMTM4LjkyNSAzMy4xNzVRMTQwLjA5OCAzMi41MTIgMTQwLjc5NTAwMDAwMDAwMDAyIDMxLjIzNzAwMDAwMDAwMDAwMlExNDEuNDkyMDAwMDAwMDAwMDIgMjkuOTYyIDE0MS40OTIwMDAwMDAwMDAwMiAyOC4xNlExNDEuNDkyMDAwMDAwMDAwMDIgMjYuMjU2IDE0MC43OTUwMDAwMDAwMDAwMiAyNC45OTc5OTk5OTk5OTk5OThRMTQwLjA5OCAyMy43NCAxMzguOTI1IDIzLjA5NFExMzcuNzUyIDIyLjQ0OCAxMzYuMzkyIDIyLjQ0OFExMzUuMDMyIDIyLjQ0OCAxMzMuODU5IDIzLjA5NFExMzIuNjg2IDIzLjc0IDEzMS45NzIgMjUuMDE1UTEzMS4yNTggMjYuMjkgMTMxLjI1OCAyOC4xNlExMzEuMjU4IDI5Ljk5NiAxMzEuOTcyIDMxLjI3MVExMzIuNjg2IDMyLjU0NiAxMzMuODU5IDMzLjE5MlExMzUuMDMyIDMzLjgzOCAxMzYuMzkyIDMzLjgzOFpNMTYzLjg2NCAzNy41NDRRMTYxLjUxOCAzNy41NDQgMTU5LjYxNCAzNi4zNTRRMTU3LjcxIDM1LjE2NCAxNTYuNjIyIDMzLjA5UTE1NS41MzQgMzEuMDE2IDE1NS41MzQgMjguMzNRMTU1LjUzNCAyNS42NDQgMTU2LjYyMiAyMy41N1ExNTcuNzEgMjEuNDk2IDE1OS42MTQgMjAuMzA1OTk5OTk5OTk5OTk3UTE2MS41MTggMTkuMTE2IDE2My44NjQgMTkuMTE2UTE2NS4yMjQgMTkuMTE2IDE2Ni4zMTIgMTkuNTI0UTE2Ny40IDE5LjkzMiAxNjguMTk5IDIwLjU5NVExNjguOTk4IDIxLjI1OCAxNjkuNDQgMjIuMDA2SDE2OS42NDRMMTY5LjQ0IDE5LjU5MlYxMi42NTU5OTk5OTk5OTk5OTlIMTczLjA3OFYzNy4wSDE2OS42NDRWMzQuNjg4SDE2OS40NFExNjguOTk4IDM1LjQwMiAxNjguMTk5IDM2LjA2NVExNjcuNCAzNi43MjggMTY2LjMxMiAzNy4xMzU5OTk5OTk5OTk5OTZRMTY1LjIyNCAzNy41NDQgMTYzLjg2NCAzNy41NDRaTTE2NC40MDggMzQuMTc4UTE2NS43NjggMzQuMTc4IDE2Ni45NzUgMzMuNDY0UTE2OC4xODIgMzIuNzUgMTY4LjkxMyAzMS40NDFRMTY5LjY0NCAzMC4xMzE5OTk5OTk5OTk5OTggMTY5LjY0NCAyOC4zM1ExNjkuNjQ0IDI2LjUyOCAxNjguOTEzIDI1LjIxODk5OTk5OTk5OTk5OFExNjguMTgyIDIzLjkwOTk5OTk5OTk5OTk5NyAxNjYuOTc1IDIzLjE5NTk5OTk5OTk5OTk5OFExNjUuNzY4IDIyLjQ4MiAxNjQuNDA4IDIyLjQ4MlExNjMuMDQ4IDIyLjQ4MiAxNjEuODU4IDIzLjE5NTk5OTk5OTk5OTk5OFExNjAuNjY4IDIzLjkwOTk5OTk5OTk5OTk5NyAxNTkuOTIwMDAwMDAwMDAwMDIgMjUuMjE4OTk5OTk5OTk5OTk4UTE1OS4xNzIgMjYuNTI4IDE1OS4xNzIgMjguMzNRMTU5LjE3MiAzMC4wOTggMTU5LjkyMDAwMDAwMDAwMDAyIDMxLjQyNFExNjAuNjY4IDMyLjc1IDE2MS44NTggMzMuNDY0UTE2My4wNDggMzQuMTc4IDE2NC40MDggMzQuMTc4Wk0xODQuOTEgMzcuNTQ0UTE4Mi4zNTk5OTk5OTk5OTk5OSAzNy41NDQgMTgwLjM1Mzk5OTk5OTk5OTk4IDM2LjM1NFExNzguMzQ3OTk5OTk5OTk5OTggMzUuMTY0IDE3Ny4yMDkgMzMuMDlRMTc2LjA3IDMxLjAxNiAxNzYuMDcgMjguMzYzOTk5OTk5OTk5OTk3UTE3Ni4wNyAyNS44ODE5OTk5OTk5OTk5OTggMTc3LjE1ODAwMDAwMDAwMDAyIDIzLjc3Mzk5OTk5OTk5OTk5N1ExNzguMjQ2IDIxLjY2NTk5OTk5OTk5OTk5NyAxODAuMjAxMDAwMDAwMDAwMDIgMjAuMzkxUTE4Mi4xNTYgMTkuMTE2IDE4NC43MDYgMTkuMTE2UTE4Ny4zOTIgMTkuMTE2IDE4OS4yNzkgMjAuMjcyUTE5MS4xNjYgMjEuNDI3OTk5OTk5OTk5OTk3IDE5Mi4xNTIgMjMuNDMzOTk5OTk5OTk5OTk3UTE5My4xMzggMjUuNDM5OTk5OTk5OTk5OTk4IDE5My4xMzggMjcuOTU2UTE5My4xMzggMjguMzMgMTkzLjEyMDk5OTk5OTk5OTk4IDI4LjYzNlExOTMuMTAzOTk5OTk5OTk5OTggMjguOTQyIDE5My4wNyAyOS4xMTJIMTc4LjE0NFYyNi4zNTc5OTk5OTk5OTk5OTdIMTg5LjVRMTg5LjQ2NiAyNS43MTIgMTg5LjE2IDI0Ljk4MVExODguODUzOTk5OTk5OTk5OTggMjQuMjUgMTg4LjI3NiAyMy42Mzc5OTk5OTk5OTk5OThRMTg3LjY5OCAyMy4wMjYgMTg2LjgxNDAwMDAwMDAwMDAyIDIyLjYzNDk5OTk5OTk5OTk5OFExODUuOTMgMjIuMjQ0IDE4NC43NCAyMi4yNDRRMTgzLjI0NCAyMi4yNDQgMTgyLjA4OCAyMy4wMDlRMTgwLjkzMiAyMy43NzQgMTgwLjI4NiAyNS4xMzRRMTc5LjY0IDI2LjQ5NCAxNzkuNjQgMjguMjk2UTE3OS42NCAzMC4yNjggMTgwLjM4Nzk5OTk5OTk5OTk4IDMxLjU5NFExODEuMTM2IDMyLjkyIDE4Mi4zNiAzMy42UTE4My41ODQgMzQuMjggMTg1LjAxMiAzNC4yOFExODYuNzQ2IDM0LjI4IDE4Ny45MTg5OTk5OTk5OTk5OCAzMy40ODFRMTg5LjA5MTk5OTk5OTk5OTk4IDMyLjY4MiAxODkuNzcyIDMxLjQ5MkwxOTIuNzk4IDMyLjk1NFExOTEuNjc2IDM0Ljk5NCAxODkuNzM4IDM2LjI2OVExODcuOCAzNy41NDQgMTg0LjkxIDM3LjU0NFpNMjA1LjM0NCAzNy41NDRRMjA0LjAxOCAzNy41NDQgMjAyLjkzIDM3LjEzNTk5OTk5OTk5OTk5NlEyMDEuODQyIDM2LjcyOCAyMDEuMDQzIDM2LjA2NVEyMDAuMjQ0IDM1LjQwMiAxOTkuNzY4IDM0LjY4OEgxOTkuNTY0VjM3LjBIMTk2LjA5NlYxMi42NTU5OTk5OTk5OTk5OTlIMTk5Ljc2OFYxOS41OTJMMTk5LjU2NCAyMi4wMDZIMTk5Ljc2OFEyMDAuMjQ0IDIxLjI1OCAyMDEuMDQzIDIwLjU5NVEyMDEuODQyIDE5LjkzMiAyMDIuOTMgMTkuNTI0UTIwNC4wMTggMTkuMTE2IDIwNS4zNDQgMTkuMTE2UTIwNy43MjQgMTkuMTE2IDIwOS41OTQgMjAuMzA1OTk5OTk5OTk5OTk3UTIxMS40NjQgMjEuNDk2IDIxMi41NjkwMDAwMDAwMDAwMiAyMy41N1EyMTMuNjc0IDI1LjY0NCAyMTMuNjc0IDI4LjMzUTIxMy42NzQgMzEuMDE2IDIxMi41NjkwMDAwMDAwMDAwMiAzMy4wOVEyMTEuNDY0IDM1LjE2NCAyMDkuNTk0IDM2LjM1NFEyMDcuNzI0IDM3LjU0NCAyMDUuMzQ0IDM3LjU0NFpNMjA0LjggMzQuMTc4UTIwNi4xNiAzNC4xNzggMjA3LjM2NzAwMDAwMDAwMDAyIDMzLjQ2NFEyMDguNTc0IDMyLjc1IDIwOS4zMDUgMzEuNDI0UTIxMC4wMzYgMzAuMDk4IDIxMC4wMzYgMjguMzNRMjEwLjAzNiAyNi41MjggMjA5LjMwNSAyNS4yMTg5OTk5OTk5OTk5OThRMjA4LjU3NCAyMy45MDk5OTk5OTk5OTk5OTcgMjA3LjM2NzAwMDAwMDAwMDAyIDIzLjE5NTk5OTk5OTk5OTk5OFEyMDYuMTYgMjIuNDgyIDIwNC44IDIyLjQ4MlEyMDMuNDQgMjIuNDgyIDIwMi4yNSAyMy4xOTU5OTk5OTk5OTk5OThRMjAxLjA2IDIzLjkwOTk5OTk5OTk5OTk5NyAyMDAuMzEyIDI1LjIxODk5OTk5OTk5OTk5OFExOTkuNTY0IDI2LjUyOCAxOTkuNTY0IDI4LjMzUTE5OS41NjQgMzAuMTMxOTk5OTk5OTk5OTk4IDIwMC4zMTIgMzEuNDQxUTIwMS4wNiAzMi43NSAyMDIuMjUgMzMuNDY0UTIwMy40NCAzNC4xNzggMjA0LjggMzQuMTc4Wk0yMjIuOTIyIDM3LjU0NFEyMTkuNzI2IDM3LjU0NCAyMTguMTExIDM1LjYyM1EyMTYuNDk2IDMzLjcwMiAyMTYuNDk2IDMwLjQwNFYxOS42NkgyMjAuMTY4VjI5Ljg5NFEyMjAuMTY4IDMyLjA3IDIyMS4yMDQ5OTk5OTk5OTk5OCAzMy4xMjM5OTk5OTk5OTk5OTVRMjIyLjI0MiAzNC4xNzggMjIzLjgwNiAzNC4xNzhRMjI1LjIzNCAzNC4xNzggMjI2LjI1NDAwMDAwMDAwMDAyIDMzLjQ0N1EyMjcuMjc0IDMyLjcxNiAyMjcuODM1IDMxLjUyNlEyMjguMzk2MDAwMDAwMDAwMDIgMzAuMzM2IDIyOC4zOTYwMDAwMDAwMDAwMiAyOC45NzZWMTkuNjZIMjMyLjAzNFYzNy4wSDIyOC42VjM0LjY1Mzk5OTk5OTk5OTk5NkgyMjguMzk2MDAwMDAwMDAwMDJRMjI3LjkyMDAwMDAwMDAwMDAyIDM1LjQ3IDIyNy4wNyAzNi4xMTZRMjI2LjIyIDM2Ljc2MiAyMjUuMTY2IDM3LjE1M1EyMjQuMTEyIDM3LjU0NCAyMjIuOTIyIDM3LjU0NFpNMjQzLjc2NCA0NC44ODhRMjQxLjQ4NjAwMDAwMDAwMDAyIDQ0Ljg4OCAyMzkuODM3MDAwMDAwMDAwMDIgNDQuMTU3UTIzOC4xODgwMDAwMDAwMDAwMiA0My40MjYgMjM3LjE2OCA0Mi4yODcwMDAwMDAwMDAwMDZRMjM2LjE0ODAwMDAwMDAwMDAyIDQxLjE0OCAyMzUuNzA2MDAwMDAwMDAwMDIgMzkuOTU4TDIzOS4xMDYwMDAwMDAwMDAwMiAzOC41M1EyMzkuNjUgMzkuODkgMjQwLjg1NzAwMDAwMDAwMDAzIDQwLjc1NzAwMDAwMDAwMDAwNVEyNDIuMDY0MDAwMDAwMDAwMDIgNDEuNjI0IDI0My43NjQgNDEuNjI0UTI0Ni4xNzgwMDAwMDAwMDAwMyA0MS42MjQgMjQ3LjUzOCA0MC4xOTZRMjQ4Ljg5ODAwMDAwMDAwMDAyIDM4Ljc2OCAyNDguODk4MDAwMDAwMDAwMDIgMzYuMTVWMzQuNDg0SDI0OC42OTQwMDAwMDAwMDAwMlEyNDcuODc4MDAwMDAwMDAwMDEgMzUuNjc0IDI0Ni40NTAwMDAwMDAwMDAwMiAzNi40MjJRMjQ1LjAyMjAwMDAwMDAwMDAyIDM3LjE3IDI0My4xNTIwMDAwMDAwMDAwMiAzNy4xN1EyNDAuOTQyIDM3LjE3IDIzOS4wODkgMzYuMDQ4UTIzNy4yMzYwMDAwMDAwMDAwMiAzNC45MjYgMjM2LjEzMTAwMDAwMDAwMDAzIDMyLjkwM1EyMzUuMDI2IDMwLjg4IDIzNS4wMjYgMjguMTZRMjM1LjAyNiAyNS40MDYgMjM2LjEzMTAwMDAwMDAwMDAzIDIzLjM4M1EyMzcuMjM2MDAwMDAwMDAwMDIgMjEuMzYgMjM5LjA4OSAyMC4yMzhRMjQwLjk0MiAxOS4xMTYgMjQzLjE1MjAwMDAwMDAwMDAyIDE5LjExNlEyNDUuMDIyMDAwMDAwMDAwMDIgMTkuMTE2IDI0Ni40NTAwMDAwMDAwMDAwMiAxOS44NDdRMjQ3Ljg3ODAwMDAwMDAwMDAxIDIwLjU3OCAyNDguNjk0MDAwMDAwMDAwMDIgMjEuODM2SDI0OC44OTgwMDAwMDAwMDAwMlYxOS42NkgyNTIuNFYzNi4wODJRMjUyLjQgMzguOTA0IDI1MS4yOTUwMDAwMDAwMDAwMiA0MC44NzYwMDAwMDAwMDAwMDVRMjUwLjE5MDAwMDAwMDAwMDAzIDQyLjg0OCAyNDguMjUyIDQzLjg2Nzk5OTk5OTk5OTk5NVEyNDYuMzE0MDAwMDAwMDAwMDIgNDQuODg4IDI0My43NjQgNDQuODg4Wk0yNDMuNzk4IDMzLjgzOFEyNDUuMTU4MDAwMDAwMDAwMDIgMzMuODM4IDI0Ni4zMzEwMDAwMDAwMDAwMiAzMy4xNzVRMjQ3LjUwNDAwMDAwMDAwMDAyIDMyLjUxMiAyNDguMjAxMDAwMDAwMDAwMDIgMzEuMjM3MDAwMDAwMDAwMDAyUTI0OC44OTgwMDAwMDAwMDAwMiAyOS45NjIgMjQ4Ljg5ODAwMDAwMDAwMDAyIDI4LjE2UTI0OC44OTgwMDAwMDAwMDAwMiAyNi4yNTYgMjQ4LjIwMTAwMDAwMDAwMDAyIDI0Ljk5Nzk5OTk5OTk5OTk5OFEyNDcuNTA0MDAwMDAwMDAwMDIgMjMuNzQgMjQ2LjMzMTAwMDAwMDAwMDAyIDIzLjA5NFEyNDUuMTU4MDAwMDAwMDAwMDIgMjIuNDQ4IDI0My43OTggMjIuNDQ4UTI0Mi40MzgwMDAwMDAwMDAwMiAyMi40NDggMjQxLjI2NTAwMDAwMDAwMDAxIDIzLjA5NFEyNDAuMDkyIDIzLjc0IDIzOS4zNzgwMDAwMDAwMDAwMSAyNS4wMTVRMjM4LjY2NDAwMDAwMDAwMDAyIDI2LjI5IDIzOC42NjQwMDAwMDAwMDAwMiAyOC4xNlEyMzguNjY0MDAwMDAwMDAwMDIgMjkuOTk2IDIzOS4zNzgwMDAwMDAwMDAwMSAzMS4yNzFRMjQwLjA5MiAzMi41NDYgMjQxLjI2NTAwMDAwMDAwMDAxIDMzLjE5MlEyNDIuNDM4MDAwMDAwMDAwMDIgMzMuODM4IDI0My43OTggMzMuODM4Wk0yNjQuMDk2IDQ0Ljg4OFEyNjEuODE4IDQ0Ljg4OCAyNjAuMTY5IDQ0LjE1N1EyNTguNTIgNDMuNDI2IDI1Ny41IDQyLjI4NzAwMDAwMDAwMDAwNlEyNTYuNDggNDEuMTQ4IDI1Ni4wMzggMzkuOTU4TDI1OS40MzggMzguNTNRMjU5Ljk4MiAzOS44OSAyNjEuMTg5IDQwLjc1NzAwMDAwMDAwMDAwNVEyNjIuMzk2IDQxLjYyNCAyNjQuMDk2IDQxLjYyNFEyNjYuNTEgNDEuNjI0IDI2Ny44NyA0MC4xOTZRMjY5LjIzIDM4Ljc2OCAyNjkuMjMgMzYuMTVWMzQuNDg0SDI2OS4wMjZRMjY4LjIxMDAwMDAwMDAwMDA0IDM1LjY3NCAyNjYuNzgyMDAwMDAwMDAwMDQgMzYuNDIyUTI2NS4zNTQgMzcuMTcgMjYzLjQ4NCAzNy4xN1EyNjEuMjc0IDM3LjE3IDI1OS40MjEgMzYuMDQ4UTI1Ny41NjggMzQuOTI2IDI1Ni40NjI5OTk5OTk5OTk5NyAzMi45MDNRMjU1LjM1OCAzMC44OCAyNTUuMzU4IDI4LjE2UTI1NS4zNTggMjUuNDA2IDI1Ni40NjI5OTk5OTk5OTk5NyAyMy4zODNRMjU3LjU2OCAyMS4zNiAyNTkuNDIxIDIwLjIzOFEyNjEuMjc0IDE5LjExNiAyNjMuNDg0IDE5LjExNlEyNjUuMzU0IDE5LjExNiAyNjYuNzgyMDAwMDAwMDAwMDQgMTkuODQ3UTI2OC4yMTAwMDAwMDAwMDAwNCAyMC41NzggMjY5LjAyNiAyMS44MzZIMjY5LjIzVjE5LjY2SDI3Mi43MzJWMzYuMDgyUTI3Mi43MzIgMzguOTA0IDI3MS42MjcgNDAuODc2MDAwMDAwMDAwMDA1UTI3MC41MjIgNDIuODQ4IDI2OC41ODQgNDMuODY3OTk5OTk5OTk5OTk1UTI2Ni42NDYgNDQuODg4IDI2NC4wOTYgNDQuODg4Wk0yNjQuMTMgMzMuODM4UTI2NS40OSAzMy44MzggMjY2LjY2MyAzMy4xNzVRMjY3LjgzNiAzMi41MTIgMjY4LjUzMyAzMS4yMzcwMDAwMDAwMDAwMDJRMjY5LjIzIDI5Ljk2MiAyNjkuMjMgMjguMTZRMjY5LjIzIDI2LjI1NiAyNjguNTMzIDI0Ljk5Nzk5OTk5OTk5OTk5OFEyNjcuODM2IDIzLjc0IDI2Ni42NjMgMjMuMDk0UTI2NS40OSAyMi40NDggMjY0LjEzIDIyLjQ0OFEyNjIuNzcgMjIuNDQ4IDI2MS41OTcgMjMuMDk0UTI2MC40MjQgMjMuNzQgMjU5LjcxIDI1LjAxNVEyNTguOTk2IDI2LjI5IDI1OC45OTYgMjguMTZRMjU4Ljk5NiAyOS45OTYgMjU5LjcxIDMxLjI3MVEyNjAuNDI0IDMyLjU0NiAyNjEuNTk3IDMzLjE5MlEyNjIuNzcgMzMuODM4IDI2NC4xMyAzMy44MzhaTTI4NC41MyAzNy41NDRRMjgxLjk4IDM3LjU0NCAyNzkuOTc0MDAwMDAwMDAwMDUgMzYuMzU0UTI3Ny45NjggMzUuMTY0IDI3Ni44MjkgMzMuMDlRMjc1LjY5IDMxLjAxNiAyNzUuNjkgMjguMzYzOTk5OTk5OTk5OTk3UTI3NS42OSAyNS44ODE5OTk5OTk5OTk5OTggMjc2Ljc3OCAyMy43NzM5OTk5OTk5OTk5OTdRMjc3Ljg2NiAyMS42NjU5OTk5OTk5OTk5OTcgMjc5LjgyMSAyMC4zOTFRMjgxLjc3NiAxOS4xMTYgMjg0LjMyNiAxOS4xMTZRMjg3LjAxMiAxOS4xMTYgMjg4Ljg5OSAyMC4yNzJRMjkwLjc4NiAyMS40Mjc5OTk5OTk5OTk5OTcgMjkxLjc3MiAyMy40MzM5OTk5OTk5OTk5OTdRMjkyLjc1OCAyNS40Mzk5OTk5OTk5OTk5OTggMjkyLjc1OCAyNy45NTZRMjkyLjc1OCAyOC4zMyAyOTIuNzQxIDI4LjYzNlEyOTIuNzI0IDI4Ljk0MiAyOTIuNjkgMjkuMTEySDI3Ny43NjRWMjYuMzU3OTk5OTk5OTk5OTk3SDI4OS4xMlEyODkuMDg2IDI1LjcxMiAyODguNzggMjQuOTgxUTI4OC40NzQgMjQuMjUgMjg3Ljg5NTk5OTk5OTk5OTk2IDIzLjYzNzk5OTk5OTk5OTk5OFEyODcuMzE4IDIzLjAyNiAyODYuNDMzOTk5OTk5OTk5OTcgMjIuNjM0OTk5OTk5OTk5OTk4UTI4NS41NSAyMi4yNDQgMjg0LjM2IDIyLjI0NFEyODIuODY0IDIyLjI0NCAyODEuNzA3OTk5OTk5OTk5OTcgMjMuMDA5UTI4MC41NTIgMjMuNzc0IDI3OS45MDYgMjUuMTM0UTI3OS4yNiAyNi40OTQgMjc5LjI2IDI4LjI5NlEyNzkuMjYgMzAuMjY4IDI4MC4wMDggMzEuNTk0UTI4MC43NTYgMzIuOTIgMjgxLjk4IDMzLjZRMjgzLjIwNCAzNC4yOCAyODQuNjMyIDM0LjI4UTI4Ni4zNjYgMzQuMjggMjg3LjUzOSAzMy40ODFRMjg4LjcxMiAzMi42ODIgMjg5LjM5MiAzMS40OTJMMjkyLjQxOCAzMi45NTRRMjkxLjI5NiAzNC45OTQgMjg5LjM1OCAzNi4yNjlRMjg3LjQyIDM3LjU0NCAyODQuNTMgMzcuNTQ0Wk0yOTUuNzE2IDM3LjBWMTkuNjZIMjk5LjE4NFYyMi4yMUgyOTkuMzg4UTI5OS43OTYgMjEuMzI2IDMwMC41NjEwMDAwMDAwMDAwNCAyMC42NDZRMzAxLjMyNiAxOS45NjU5OTk5OTk5OTk5OTggMzAyLjMyOSAxOS41NThRMzAzLjMzMiAxOS4xNSAzMDQuNDIgMTkuMTVRMzA1LjEzNCAxOS4xNSAzMDUuNjI3IDE5LjIzNVEzMDYuMTIgMTkuMzIgMzA2LjUyOCAxOS40OVYyMy4yOThRMzA1Ljg4MiAyMy4wMjYgMzA1LjIxOSAyMi44NTZRMzA0LjU1NiAyMi42ODYgMzAzLjg0MiAyMi42ODZRMzAyLjU1IDIyLjY4NiAzMDEuNTQ3IDIzLjM4M1EzMDAuNTQ0IDI0LjA4IDI5OS45NjYgMjUuMjM1OTk5OTk5OTk5OTk3UTI5OS4zODggMjYuMzkyIDI5OS4zODggMjcuODJWMzcuMFoiIGZpbGw9IiNGMEY0RkYiLz48L3N2Zz4K",
|
|
12
|
-
"atd-icon": "data:image/svg+xml;base64,
|
|
10
|
+
"atd-lockup-light": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMzk2LjIzMSIgaGVpZ2h0PSIyMDQiIHZpZXdCb3g9IjAgMCAxMzk2LjIzMSAyMDQiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0iYWkgdGFnIGRlYnVnZ2VyIj4KPHRpdGxlPmFpIHRhZyBkZWJ1Z2dlciDigJQgR29vZ2xlIFNhbnMgQm9sZCDigJQgbGlnaHQ8L3RpdGxlPgo8ZGVzYz5Mb3dlcmNhc2UgbGV0dGVyaW5nIG91dGxpbmVkIGZyb20gdGhlIGluc3RhbGxlZCBHb29nbGUgU2FucyBCb2xkIDEzLjAwMiBmb250LiBUYWcgYW5kIHZpc2libGUgd29yZG1hcmsgYm90aCBoYXZlIGhlaWdodCAxNDAuIE9yYW5nZSB0b2tlbjogI0Q5NTMxRS4gVHJhbnNwYXJlbnQgYmFja2dyb3VuZC48L2Rlc2M+CjxnIGFyaWEtbGFiZWw9ImFpIHRhZyBkZWJ1Z2dlciI+CiAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzIgMzIpIHNjYWxlKDAuNjczMDc2OTIzKSIgZmlsbD0iI0Q5NTMxRSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNDIgMEgyMjRRMjM3IDAgMjQ3IDEwTDMxMiA4OFEzMjggMTA0IDMxMiAxMjBMMjQ3IDE5OFEyMzcgMjA4IDIyNCAyMDhINDJRMCAyMDggMCAxNjZWNDJRMCAwIDQyIDBaIE00OSA5MVE2MSA3OSA3MyA5MUwxMDYgMTI0TDE4MCA1MFExOTIgMzggMjA0IDUwUTIxNiA2MiAyMDQgNzRMMTE4IDE2MFExMDYgMTcyIDk0IDE2MEw0OSAxMTVRMzcgMTAzIDQ5IDkxWiBNMjgxIDEwNGExNyAxNyAwIDEgMCAtMzQgMGExNyAxNyAwIDEgMCAzNCAwWiIvPjwvZz4KICA8cGF0aCBmaWxsPSIjMEEwRTFBIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNzIuMzE3Mzk3MTg0IDEzOC40MTE1ODIyMTMpIHNjYWxlKDAuMTQ0Nzc3NjYzIC0wLjE0NDc3NzY2MykiIGQ9Ik0yMjAgLTE2UTE2NiAtMTYgMTI0LjUgNS41UTgzIDI3IDU5LjAgNjYuMFEzNSAxMDUgMzUgMTU2UTM1IDIwOSA2Mi41IDI0Ny4wUTkwIDI4NSAxMzYuNSAzMDYuMFExODMgMzI3IDI0MCAzMjdRMjcxIDMyNyAyOTYuNSAzMjMuNVEzMjIgMzIwIDM0Mi4wIDMxNS4wUTM2MiAzMTAgMzc1IDMwNFYzMjZRMzc1IDM2NyAzNDQuMCAzOTMuNVEzMTMgNDIwIDI1OSA0MjBRMjIzIDQyMCAxODkuNSA0MDMuNVExNTYgMzg3IDEzNCAzNjBMNTAgNDI2UTc1IDQ1OCAxMDguMCA0ODAuNVExNDEgNTAzIDE4MS4wIDUxNC41UTIyMSA1MjYgMjY1IDUyNlEzODIgNTI2IDQ0My4wIDQ3Mi4wUTUwNCA0MTggNTA0IDMxNFYwSDM3NVY1MkgzNjdRMzUzIDM0IDMzMi4wIDE4LjVRMzExIDMgMjgzLjAgLTYuNVEyNTUgLTE2IDIyMCAtMTZaTTI1MSA4NlEyOTEgODYgMzE4LjUgMTAzLjVRMzQ2IDEyMSAzNjAuNSAxNDkuMFEzNzUgMTc3IDM3NSAyMDhRMzUzIDIxOSAzMjUuMCAyMjUuNVEyOTcgMjMyIDI2OCAyMzJRMjEwIDIzMiAxODguMCAyMTAuMFExNjYgMTg4IDE2NiAxNTZRMTY2IDEyNiAxODcuNSAxMDYuMFEyMDkgODYgMjUxIDg2Wk02MjMgMFY1MTBINzU0VjBaTTY4OSA1NjZRNjU0IDU2NiA2MjkuMCA1OTEuMFE2MDQgNjE2IDYwNCA2NTFRNjA0IDY4NiA2MjkuMCA3MTAuNVE2NTQgNzM1IDY4OSA3MzVRNzI0IDczNSA3NDguNSA3MTAuNVE3NzMgNjg2IDc3MyA2NTFRNzczIDYxNiA3NDguNSA1OTEuMFE3MjQgNTY2IDY4OSA1NjZaTTEwNzYgMzk4VjUxMEgxMTcwVjM5OFpNMTMzNCAtOFExMjU1IC04IDEyMTAuMCAzNy41UTExNjUgODMgMTE2NSAxNjNWNjU0SDEyOTZWMTg3UTEyOTYgMTUwIDEzMTEuMCAxMzIuNVExMzI2IDExNSAxMzYwIDExNVExMzc2IDExNSAxMzkwLjAgMTE5LjVRMTQwNCAxMjQgMTQyNSAxMzdWOVExNDAzIDEgMTM4MC41IC0zLjVRMTM1OCAtOCAxMzM0IC04Wk0xMjkxIDM5OFY1MTBIMTQyMVYzOThaTTE2NzYgLTE2UTE2MjIgLTE2IDE1ODAuNSA1LjVRMTUzOSAyNyAxNTE1LjAgNjYuMFExNDkxIDEwNSAxNDkxIDE1NlExNDkxIDIwOSAxNTE4LjUgMjQ3LjBRMTU0NiAyODUgMTU5Mi41IDMwNi4wUTE2MzkgMzI3IDE2OTYgMzI3UTE3MjcgMzI3IDE3NTIuNSAzMjMuNVExNzc4IDMyMCAxNzk4LjAgMzE1LjBRMTgxOCAzMTAgMTgzMSAzMDRWMzI2UTE4MzEgMzY3IDE4MDAuMCAzOTMuNVExNzY5IDQyMCAxNzE1IDQyMFExNjc5IDQyMCAxNjQ1LjUgNDAzLjVRMTYxMiAzODcgMTU5MCAzNjBMMTUwNiA0MjZRMTUzMSA0NTggMTU2NC4wIDQ4MC41UTE1OTcgNTAzIDE2MzcuMCA1MTQuNVExNjc3IDUyNiAxNzIxIDUyNlExODM4IDUyNiAxODk5LjAgNDcyLjBRMTk2MCA0MTggMTk2MCAzMTRWMEgxODMxVjUySDE4MjNRMTgwOSAzNCAxNzg4LjAgMTguNVExNzY3IDMgMTczOS4wIC02LjVRMTcxMSAtMTYgMTY3NiAtMTZaTTE3MDcgODZRMTc0NyA4NiAxNzc0LjUgMTAzLjVRMTgwMiAxMjEgMTgxNi41IDE0OS4wUTE4MzEgMTc3IDE4MzEgMjA4UTE4MDkgMjE5IDE3ODEuMCAyMjUuNVExNzUzIDIzMiAxNzI0IDIzMlExNjY2IDIzMiAxNjQ0LjAgMjEwLjBRMTYyMiAxODggMTYyMiAxNTZRMTYyMiAxMjYgMTY0My41IDEwNi4wUTE2NjUgODYgMTcwNyA4NlpNMjMxNCAtMjMyUTIyNDUgLTIzMiAyMTk0LjUgLTIxMC41UTIxNDQgLTE4OSAyMTEyLjAgLTE1NS4wUTIwODAgLTEyMSAyMDY3IC04NEwyMTkwIC0zNFEyMjA2IC03MSAyMjM4LjUgLTkzLjVRMjI3MSAtMTE2IDIzMTQgLTExNlEyMzc1IC0xMTYgMjQxMi4wIC03OC41UTI0NDkgLTQxIDI0NDkgMzBWNzBIMjQ0MVEyNDE3IDM2IDIzNzguMCAxOC4wUTIzMzkgMCAyMjg5IDBRMjIyNyAwIDIxNzIuNSAzMi4wUTIxMTggNjQgMjA4NC41IDEyMy4wUTIwNTEgMTgyIDIwNTEgMjYzUTIwNTEgMzQ1IDIwODQuNSA0MDMuNVEyMTE4IDQ2MiAyMTcyLjUgNDk0LjBRMjIyNyA1MjYgMjI4OSA1MjZRMjMzOSA1MjYgMjM3OC4wIDUwOC41UTI0MTcgNDkxIDI0NDEgNDU2SDI0NDlWNTEwSDI1NzVWMzVRMjU3NSAtNDcgMjU0My4wIC0xMDcuMFEyNTExIC0xNjcgMjQ1Mi41IC0xOTkuNVEyMzk0IC0yMzIgMjMxNCAtMjMyWk0yMzE2IDExOVEyMzUxIDExOSAyMzgxLjUgMTM1LjVRMjQxMiAxNTIgMjQzMC41IDE4NC41UTI0NDkgMjE3IDI0NDkgMjYzUTI0NDkgMzExIDI0MzAuNSAzNDMuMFEyNDEyIDM3NSAyMzgxLjUgMzkxLjBRMjM1MSA0MDcgMjMxNiA0MDdRMjI4MSA0MDcgMjI1MC4wIDM5MS4wUTIyMTkgMzc1IDIyMDAuNSAzNDMuMFEyMTgyIDMxMSAyMTgyIDI2M1EyMTgyIDIxNiAyMjAwLjUgMTgzLjVRMjIxOSAxNTEgMjI1MC4wIDEzNS4wUTIyODEgMTE5IDIzMTYgMTE5Wk0zMTU0IC0xNlEzMDg0IC0xNiAzMDI4LjAgMTguNVEyOTcyIDUzIDI5MzkuNSAxMTQuMFEyOTA3IDE3NSAyOTA3IDI1NVEyOTA3IDMzNSAyOTM5LjUgMzk2LjBRMjk3MiA0NTcgMzAyOC4wIDQ5MS41UTMwODQgNTI2IDMxNTQgNTI2UTMxOTEgNTI2IDMyMjEuMCA1MTUuMFEzMjUxIDUwNCAzMjczLjAgNDg2LjBRMzI5NSA0NjggMzMwNyA0NDhIMzMxNUwzMzA3IDUyMFY3MTZIMzQzN1YwSDMzMTVWNjFIMzMwN1EzMjk1IDQxIDMyNzMuMCAyMy41UTMyNTEgNiAzMjIxLjAgLTUuMFEzMTkxIC0xNiAzMTU0IC0xNlpNMzE3NiAxMDVRMzIxMyAxMDUgMzI0NC41IDEyNC4wUTMyNzYgMTQzIDMyOTUuNSAxNzYuNVEzMzE1IDIxMCAzMzE1IDI1NVEzMzE1IDMwMCAzMjk1LjUgMzMzLjVRMzI3NiAzNjcgMzI0NC41IDM4NS41UTMyMTMgNDA0IDMxNzYgNDA0UTMxNDAgNDA0IDMxMDguNSAzODUuNVEzMDc3IDM2NyAzMDU3LjUgMzM0LjBRMzAzOCAzMDEgMzAzOCAyNTVRMzAzOCAyMTAgMzA1Ny41IDE3Ni4wUTMwNzcgMTQyIDMxMDguNSAxMjMuNVEzMTQwIDEwNSAzMTc2IDEwNVpNMzgwMiAtMTZRMzcyNSAtMTYgMzY2NC41IDE5LjBRMzYwNCA1NCAzNTY5LjUgMTE1LjBRMzUzNSAxNzYgMzUzNSAyNTRRMzUzNSAzMjcgMzU2OS4wIDM4OS4wUTM2MDMgNDUxIDM2NjIuMCA0ODguNVEzNzIxIDUyNiAzNzk3IDUyNlEzODc5IDUyNiAzOTM1LjAgNDkxLjBRMzk5MSA0NTYgNDAyMC4wIDM5Ny41UTQwNDkgMzM5IDQwNDkgMjY4UTQwNDkgMjUyIDQwNDguMCAyNDAuNVE0MDQ3IDIyOSA0MDQ2IDIyNEgzNjA4VjMxN0gzOTIzUTM5MjIgMzM0IDM5MTMuMCAzNTIuMFEzOTA0IDM3MCAzODg4LjAgMzg1LjBRMzg3MiA0MDAgMzg0OS41IDQwOS41UTM4MjcgNDE5IDM3OTggNDE5UTM3NjAgNDE5IDM3MjguNSAzOTkuMFEzNjk3IDM3OSAzNjc5LjAgMzQzLjVRMzY2MSAzMDggMzY2MSAyNTlRMzY2MSAyMDggMzY4MC4wIDE3Mi41UTM2OTkgMTM3IDM3MzEuNSAxMTguNVEzNzY0IDEwMCAzODA0IDEwMFEzODUxIDEwMCAzODgzLjAgMTIwLjVRMzkxNSAxNDEgMzkzMyAxNzJMNDAzOSAxMjBRNDAwMyA1NyAzOTQ1LjAgMjAuNVEzODg3IC0xNiAzODAyIC0xNlpNNDQzMSAtMTZRNDM5NCAtMTYgNDM2NC4wIC01LjBRNDMzNCA2IDQzMTIuNSAyMy41UTQyOTEgNDEgNDI3OCA2MUg0MjcwVjBINDE0N1Y3MTZINDI3OFY1MjBMNDI3MCA0NDhINDI3OFE0MjkxIDQ2OCA0MzEyLjUgNDg2LjBRNDMzNCA1MDQgNDM2NC4wIDUxNS4wUTQzOTQgNTI2IDQ0MzEgNTI2UTQ1MDEgNTI2IDQ1NTYuNSA0OTEuNVE0NjEyIDQ1NyA0NjQ0LjUgMzk2LjBRNDY3NyAzMzUgNDY3NyAyNTVRNDY3NyAxNzUgNDY0NC41IDExNC4wUTQ2MTIgNTMgNDU1Ni41IDE4LjVRNDUwMSAtMTYgNDQzMSAtMTZaTTQ0MDggMTA1UTQ0NDUgMTA1IDQ0NzYuNSAxMjMuNVE0NTA4IDE0MiA0NTI3LjUgMTc2LjBRNDU0NyAyMTAgNDU0NyAyNTVRNDU0NyAzMDEgNDUyNy41IDMzNC4wUTQ1MDggMzY3IDQ0NzYuNSAzODUuNVE0NDQ1IDQwNCA0NDA4IDQwNFE0MzcyIDQwNCA0MzQwLjUgMzg1LjVRNDMwOSAzNjcgNDI4OS41IDMzMy41UTQyNzAgMzAwIDQyNzAgMjU1UTQyNzAgMjEwIDQyODkuNSAxNzYuNVE0MzA5IDE0MyA0MzQwLjUgMTI0LjBRNDM3MiAxMDUgNDQwOCAxMDVaTTQ5NTkgLTE2UTQ4NjUgLTE2IDQ4MTguMCA0Mi4wUTQ3NzEgMTAwIDQ3NzEgMjAwVjUxMEg0OTAyVjIxNlE0OTAyIDE2NCA0OTI3LjUgMTM0LjVRNDk1MyAxMDUgNDk5MyAxMDVRNTAzMiAxMDUgNTA1OS4wIDEyNC41UTUwODYgMTQ0IDUxMDAuNSAxNzcuMFE1MTE1IDIxMCA1MTE1IDI1MFY1MTBINTI0NlYwSDUxMjNWNjRINTExNVE1MTAwIDQwIDUwNzYuMCAyMi4wUTUwNTIgNCA1MDIyLjUgLTYuMFE0OTkzIC0xNiA0OTU5IC0xNlpNNTYwNyAtMjMyUTU1MzggLTIzMiA1NDg3LjUgLTIxMC41UTU0MzcgLTE4OSA1NDA1LjAgLTE1NS4wUTUzNzMgLTEyMSA1MzYwIC04NEw1NDgzIC0zNFE1NDk5IC03MSA1NTMxLjUgLTkzLjVRNTU2NCAtMTE2IDU2MDcgLTExNlE1NjY4IC0xMTYgNTcwNS4wIC03OC41UTU3NDIgLTQxIDU3NDIgMzBWNzBINTczNFE1NzEwIDM2IDU2NzEuMCAxOC4wUTU2MzIgMCA1NTgyIDBRNTUyMCAwIDU0NjUuNSAzMi4wUTU0MTEgNjQgNTM3Ny41IDEyMy4wUTUzNDQgMTgyIDUzNDQgMjYzUTUzNDQgMzQ1IDUzNzcuNSA0MDMuNVE1NDExIDQ2MiA1NDY1LjUgNDk0LjBRNTUyMCA1MjYgNTU4MiA1MjZRNTYzMiA1MjYgNTY3MS4wIDUwOC41UTU3MTAgNDkxIDU3MzQgNDU2SDU3NDJWNTEwSDU4NjhWMzVRNTg2OCAtNDcgNTgzNi4wIC0xMDcuMFE1ODA0IC0xNjcgNTc0NS41IC0xOTkuNVE1Njg3IC0yMzIgNTYwNyAtMjMyWk01NjA5IDExOVE1NjQ0IDExOSA1Njc0LjUgMTM1LjVRNTcwNSAxNTIgNTcyMy41IDE4NC41UTU3NDIgMjE3IDU3NDIgMjYzUTU3NDIgMzExIDU3MjMuNSAzNDMuMFE1NzA1IDM3NSA1Njc0LjUgMzkxLjBRNTY0NCA0MDcgNTYwOSA0MDdRNTU3NCA0MDcgNTU0My4wIDM5MS4wUTU1MTIgMzc1IDU0OTMuNSAzNDMuMFE1NDc1IDMxMSA1NDc1IDI2M1E1NDc1IDIxNiA1NDkzLjUgMTgzLjVRNTUxMiAxNTEgNTU0My4wIDEzNS4wUTU1NzQgMTE5IDU2MDkgMTE5Wk02MjI5IC0yMzJRNjE2MCAtMjMyIDYxMDkuNSAtMjEwLjVRNjA1OSAtMTg5IDYwMjcuMCAtMTU1LjBRNTk5NSAtMTIxIDU5ODIgLTg0TDYxMDUgLTM0UTYxMjEgLTcxIDYxNTMuNSAtOTMuNVE2MTg2IC0xMTYgNjIyOSAtMTE2UTYyOTAgLTExNiA2MzI3LjAgLTc4LjVRNjM2NCAtNDEgNjM2NCAzMFY3MEg2MzU2UTYzMzIgMzYgNjI5My4wIDE4LjBRNjI1NCAwIDYyMDQgMFE2MTQyIDAgNjA4Ny41IDMyLjBRNjAzMyA2NCA1OTk5LjUgMTIzLjBRNTk2NiAxODIgNTk2NiAyNjNRNTk2NiAzNDUgNTk5OS41IDQwMy41UTYwMzMgNDYyIDYwODcuNSA0OTQuMFE2MTQyIDUyNiA2MjA0IDUyNlE2MjU0IDUyNiA2MjkzLjAgNTA4LjVRNjMzMiA0OTEgNjM1NiA0NTZINjM2NFY1MTBINjQ5MFYzNVE2NDkwIC00NyA2NDU4LjAgLTEwNy4wUTY0MjYgLTE2NyA2MzY3LjUgLTE5OS41UTYzMDkgLTIzMiA2MjI5IC0yMzJaTTYyMzEgMTE5UTYyNjYgMTE5IDYyOTYuNSAxMzUuNVE2MzI3IDE1MiA2MzQ1LjUgMTg0LjVRNjM2NCAyMTcgNjM2NCAyNjNRNjM2NCAzMTEgNjM0NS41IDM0My4wUTYzMjcgMzc1IDYyOTYuNSAzOTEuMFE2MjY2IDQwNyA2MjMxIDQwN1E2MTk2IDQwNyA2MTY1LjAgMzkxLjBRNjEzNCAzNzUgNjExNS41IDM0My4wUTYwOTcgMzExIDYwOTcgMjYzUTYwOTcgMjE2IDYxMTUuNSAxODMuNVE2MTM0IDE1MSA2MTY1LjAgMTM1LjBRNjE5NiAxMTkgNjIzMSAxMTlaTTY4NTUgLTE2UTY3NzggLTE2IDY3MTcuNSAxOS4wUTY2NTcgNTQgNjYyMi41IDExNS4wUTY1ODggMTc2IDY1ODggMjU0UTY1ODggMzI3IDY2MjIuMCAzODkuMFE2NjU2IDQ1MSA2NzE1LjAgNDg4LjVRNjc3NCA1MjYgNjg1MCA1MjZRNjkzMiA1MjYgNjk4OC4wIDQ5MS4wUTcwNDQgNDU2IDcwNzMuMCAzOTcuNVE3MTAyIDMzOSA3MTAyIDI2OFE3MTAyIDI1MiA3MTAxLjAgMjQwLjVRNzEwMCAyMjkgNzA5OSAyMjRINjY2MVYzMTdINjk3NlE2OTc1IDMzNCA2OTY2LjAgMzUyLjBRNjk1NyAzNzAgNjk0MS4wIDM4NS4wUTY5MjUgNDAwIDY5MDIuNSA0MDkuNVE2ODgwIDQxOSA2ODUxIDQxOVE2ODEzIDQxOSA2NzgxLjUgMzk5LjBRNjc1MCAzNzkgNjczMi4wIDM0My41UTY3MTQgMzA4IDY3MTQgMjU5UTY3MTQgMjA4IDY3MzMuMCAxNzIuNVE2NzUyIDEzNyA2Nzg0LjUgMTE4LjVRNjgxNyAxMDAgNjg1NyAxMDBRNjkwNCAxMDAgNjkzNi4wIDEyMC41UTY5NjggMTQxIDY5ODYgMTcyTDcwOTIgMTIwUTcwNTYgNTcgNjk5OC4wIDIwLjVRNjk0MCAtMTYgNjg1NSAtMTZaTTcyMDAgMFY1MTBINzMyM1Y0NDJINzMzMVE3MzQ0IDQ2NiA3MzY1LjUgNDg0LjVRNzM4NyA1MDMgNzQxNi4wIDUxNC4wUTc0NDUgNTI1IDc0NzggNTI1UTc0OTggNTI1IDc1MTQuMCA1MjIuMFE3NTMwIDUxOSA3NTQyIDUxNFYzODNRNzUyMSAzOTEgNzUwMC41IDM5Ni41UTc0ODAgNDAyIDc0NTcgNDAyUTc0MTggNDAyIDczODkuNSAzODIuNVE3MzYxIDM2MyA3MzQ2LjAgMzI5LjVRNzMzMSAyOTYgNzMzMSAyNTRWMFoiLz4KPC9nPgo8L3N2Zz4=",
|
|
11
|
+
"atd-lockup-dark": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMzk2LjIzMSIgaGVpZ2h0PSIyMDQiIHZpZXdCb3g9IjAgMCAxMzk2LjIzMSAyMDQiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0iYWkgdGFnIGRlYnVnZ2VyIj4KPHRpdGxlPmFpIHRhZyBkZWJ1Z2dlciDigJQgR29vZ2xlIFNhbnMgQm9sZCDigJQgZGFyazwvdGl0bGU+CjxkZXNjPkxvd2VyY2FzZSBsZXR0ZXJpbmcgb3V0bGluZWQgZnJvbSB0aGUgaW5zdGFsbGVkIEdvb2dsZSBTYW5zIEJvbGQgMTMuMDAyIGZvbnQuIFRhZyBhbmQgdmlzaWJsZSB3b3JkbWFyayBib3RoIGhhdmUgaGVpZ2h0IDE0MC4gT3JhbmdlIHRva2VuOiAjRkY2RDMzLiBUcmFuc3BhcmVudCBiYWNrZ3JvdW5kLjwvZGVzYz4KPGcgYXJpYS1sYWJlbD0iYWkgdGFnIGRlYnVnZ2VyIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMiAzMikgc2NhbGUoMC42NzMwNzY5MjMpIiBmaWxsPSIjRkY2RDMzIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik00MiAwSDIyNFEyMzcgMCAyNDcgMTBMMzEyIDg4UTMyOCAxMDQgMzEyIDEyMEwyNDcgMTk4UTIzNyAyMDggMjI0IDIwOEg0MlEwIDIwOCAwIDE2NlY0MlEwIDAgNDIgMFogTTQ5IDkxUTYxIDc5IDczIDkxTDEwNiAxMjRMMTgwIDUwUTE5MiAzOCAyMDQgNTBRMjE2IDYyIDIwNCA3NEwxMTggMTYwUTEwNiAxNzIgOTQgMTYwTDQ5IDExNVEzNyAxMDMgNDkgOTFaIE0yODEgMTA0YTE3IDE3IDAgMSAwIC0zNCAwYTE3IDE3IDAgMSAwIDM0IDBaIi8+PC9nPgogIDxwYXRoIGZpbGw9IiNGNUY3RkEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI3Mi4zMTczOTcxODQgMTM4LjQxMTU4MjIxMykgc2NhbGUoMC4xNDQ3Nzc2NjMgLTAuMTQ0Nzc3NjYzKSIgZD0iTTIyMCAtMTZRMTY2IC0xNiAxMjQuNSA1LjVRODMgMjcgNTkuMCA2Ni4wUTM1IDEwNSAzNSAxNTZRMzUgMjA5IDYyLjUgMjQ3LjBROTAgMjg1IDEzNi41IDMwNi4wUTE4MyAzMjcgMjQwIDMyN1EyNzEgMzI3IDI5Ni41IDMyMy41UTMyMiAzMjAgMzQyLjAgMzE1LjBRMzYyIDMxMCAzNzUgMzA0VjMyNlEzNzUgMzY3IDM0NC4wIDM5My41UTMxMyA0MjAgMjU5IDQyMFEyMjMgNDIwIDE4OS41IDQwMy41UTE1NiAzODcgMTM0IDM2MEw1MCA0MjZRNzUgNDU4IDEwOC4wIDQ4MC41UTE0MSA1MDMgMTgxLjAgNTE0LjVRMjIxIDUyNiAyNjUgNTI2UTM4MiA1MjYgNDQzLjAgNDcyLjBRNTA0IDQxOCA1MDQgMzE0VjBIMzc1VjUySDM2N1EzNTMgMzQgMzMyLjAgMTguNVEzMTEgMyAyODMuMCAtNi41UTI1NSAtMTYgMjIwIC0xNlpNMjUxIDg2UTI5MSA4NiAzMTguNSAxMDMuNVEzNDYgMTIxIDM2MC41IDE0OS4wUTM3NSAxNzcgMzc1IDIwOFEzNTMgMjE5IDMyNS4wIDIyNS41UTI5NyAyMzIgMjY4IDIzMlEyMTAgMjMyIDE4OC4wIDIxMC4wUTE2NiAxODggMTY2IDE1NlExNjYgMTI2IDE4Ny41IDEwNi4wUTIwOSA4NiAyNTEgODZaTTYyMyAwVjUxMEg3NTRWMFpNNjg5IDU2NlE2NTQgNTY2IDYyOS4wIDU5MS4wUTYwNCA2MTYgNjA0IDY1MVE2MDQgNjg2IDYyOS4wIDcxMC41UTY1NCA3MzUgNjg5IDczNVE3MjQgNzM1IDc0OC41IDcxMC41UTc3MyA2ODYgNzczIDY1MVE3NzMgNjE2IDc0OC41IDU5MS4wUTcyNCA1NjYgNjg5IDU2NlpNMTA3NiAzOThWNTEwSDExNzBWMzk4Wk0xMzM0IC04UTEyNTUgLTggMTIxMC4wIDM3LjVRMTE2NSA4MyAxMTY1IDE2M1Y2NTRIMTI5NlYxODdRMTI5NiAxNTAgMTMxMS4wIDEzMi41UTEzMjYgMTE1IDEzNjAgMTE1UTEzNzYgMTE1IDEzOTAuMCAxMTkuNVExNDA0IDEyNCAxNDI1IDEzN1Y5UTE0MDMgMSAxMzgwLjUgLTMuNVExMzU4IC04IDEzMzQgLThaTTEyOTEgMzk4VjUxMEgxNDIxVjM5OFpNMTY3NiAtMTZRMTYyMiAtMTYgMTU4MC41IDUuNVExNTM5IDI3IDE1MTUuMCA2Ni4wUTE0OTEgMTA1IDE0OTEgMTU2UTE0OTEgMjA5IDE1MTguNSAyNDcuMFExNTQ2IDI4NSAxNTkyLjUgMzA2LjBRMTYzOSAzMjcgMTY5NiAzMjdRMTcyNyAzMjcgMTc1Mi41IDMyMy41UTE3NzggMzIwIDE3OTguMCAzMTUuMFExODE4IDMxMCAxODMxIDMwNFYzMjZRMTgzMSAzNjcgMTgwMC4wIDM5My41UTE3NjkgNDIwIDE3MTUgNDIwUTE2NzkgNDIwIDE2NDUuNSA0MDMuNVExNjEyIDM4NyAxNTkwIDM2MEwxNTA2IDQyNlExNTMxIDQ1OCAxNTY0LjAgNDgwLjVRMTU5NyA1MDMgMTYzNy4wIDUxNC41UTE2NzcgNTI2IDE3MjEgNTI2UTE4MzggNTI2IDE4OTkuMCA0NzIuMFExOTYwIDQxOCAxOTYwIDMxNFYwSDE4MzFWNTJIMTgyM1ExODA5IDM0IDE3ODguMCAxOC41UTE3NjcgMyAxNzM5LjAgLTYuNVExNzExIC0xNiAxNjc2IC0xNlpNMTcwNyA4NlExNzQ3IDg2IDE3NzQuNSAxMDMuNVExODAyIDEyMSAxODE2LjUgMTQ5LjBRMTgzMSAxNzcgMTgzMSAyMDhRMTgwOSAyMTkgMTc4MS4wIDIyNS41UTE3NTMgMjMyIDE3MjQgMjMyUTE2NjYgMjMyIDE2NDQuMCAyMTAuMFExNjIyIDE4OCAxNjIyIDE1NlExNjIyIDEyNiAxNjQzLjUgMTA2LjBRMTY2NSA4NiAxNzA3IDg2Wk0yMzE0IC0yMzJRMjI0NSAtMjMyIDIxOTQuNSAtMjEwLjVRMjE0NCAtMTg5IDIxMTIuMCAtMTU1LjBRMjA4MCAtMTIxIDIwNjcgLTg0TDIxOTAgLTM0UTIyMDYgLTcxIDIyMzguNSAtOTMuNVEyMjcxIC0xMTYgMjMxNCAtMTE2UTIzNzUgLTExNiAyNDEyLjAgLTc4LjVRMjQ0OSAtNDEgMjQ0OSAzMFY3MEgyNDQxUTI0MTcgMzYgMjM3OC4wIDE4LjBRMjMzOSAwIDIyODkgMFEyMjI3IDAgMjE3Mi41IDMyLjBRMjExOCA2NCAyMDg0LjUgMTIzLjBRMjA1MSAxODIgMjA1MSAyNjNRMjA1MSAzNDUgMjA4NC41IDQwMy41UTIxMTggNDYyIDIxNzIuNSA0OTQuMFEyMjI3IDUyNiAyMjg5IDUyNlEyMzM5IDUyNiAyMzc4LjAgNTA4LjVRMjQxNyA0OTEgMjQ0MSA0NTZIMjQ0OVY1MTBIMjU3NVYzNVEyNTc1IC00NyAyNTQzLjAgLTEwNy4wUTI1MTEgLTE2NyAyNDUyLjUgLTE5OS41UTIzOTQgLTIzMiAyMzE0IC0yMzJaTTIzMTYgMTE5UTIzNTEgMTE5IDIzODEuNSAxMzUuNVEyNDEyIDE1MiAyNDMwLjUgMTg0LjVRMjQ0OSAyMTcgMjQ0OSAyNjNRMjQ0OSAzMTEgMjQzMC41IDM0My4wUTI0MTIgMzc1IDIzODEuNSAzOTEuMFEyMzUxIDQwNyAyMzE2IDQwN1EyMjgxIDQwNyAyMjUwLjAgMzkxLjBRMjIxOSAzNzUgMjIwMC41IDM0My4wUTIxODIgMzExIDIxODIgMjYzUTIxODIgMjE2IDIyMDAuNSAxODMuNVEyMjE5IDE1MSAyMjUwLjAgMTM1LjBRMjI4MSAxMTkgMjMxNiAxMTlaTTMxNTQgLTE2UTMwODQgLTE2IDMwMjguMCAxOC41UTI5NzIgNTMgMjkzOS41IDExNC4wUTI5MDcgMTc1IDI5MDcgMjU1UTI5MDcgMzM1IDI5MzkuNSAzOTYuMFEyOTcyIDQ1NyAzMDI4LjAgNDkxLjVRMzA4NCA1MjYgMzE1NCA1MjZRMzE5MSA1MjYgMzIyMS4wIDUxNS4wUTMyNTEgNTA0IDMyNzMuMCA0ODYuMFEzMjk1IDQ2OCAzMzA3IDQ0OEgzMzE1TDMzMDcgNTIwVjcxNkgzNDM3VjBIMzMxNVY2MUgzMzA3UTMyOTUgNDEgMzI3My4wIDIzLjVRMzI1MSA2IDMyMjEuMCAtNS4wUTMxOTEgLTE2IDMxNTQgLTE2Wk0zMTc2IDEwNVEzMjEzIDEwNSAzMjQ0LjUgMTI0LjBRMzI3NiAxNDMgMzI5NS41IDE3Ni41UTMzMTUgMjEwIDMzMTUgMjU1UTMzMTUgMzAwIDMyOTUuNSAzMzMuNVEzMjc2IDM2NyAzMjQ0LjUgMzg1LjVRMzIxMyA0MDQgMzE3NiA0MDRRMzE0MCA0MDQgMzEwOC41IDM4NS41UTMwNzcgMzY3IDMwNTcuNSAzMzQuMFEzMDM4IDMwMSAzMDM4IDI1NVEzMDM4IDIxMCAzMDU3LjUgMTc2LjBRMzA3NyAxNDIgMzEwOC41IDEyMy41UTMxNDAgMTA1IDMxNzYgMTA1Wk0zODAyIC0xNlEzNzI1IC0xNiAzNjY0LjUgMTkuMFEzNjA0IDU0IDM1NjkuNSAxMTUuMFEzNTM1IDE3NiAzNTM1IDI1NFEzNTM1IDMyNyAzNTY5LjAgMzg5LjBRMzYwMyA0NTEgMzY2Mi4wIDQ4OC41UTM3MjEgNTI2IDM3OTcgNTI2UTM4NzkgNTI2IDM5MzUuMCA0OTEuMFEzOTkxIDQ1NiA0MDIwLjAgMzk3LjVRNDA0OSAzMzkgNDA0OSAyNjhRNDA0OSAyNTIgNDA0OC4wIDI0MC41UTQwNDcgMjI5IDQwNDYgMjI0SDM2MDhWMzE3SDM5MjNRMzkyMiAzMzQgMzkxMy4wIDM1Mi4wUTM5MDQgMzcwIDM4ODguMCAzODUuMFEzODcyIDQwMCAzODQ5LjUgNDA5LjVRMzgyNyA0MTkgMzc5OCA0MTlRMzc2MCA0MTkgMzcyOC41IDM5OS4wUTM2OTcgMzc5IDM2NzkuMCAzNDMuNVEzNjYxIDMwOCAzNjYxIDI1OVEzNjYxIDIwOCAzNjgwLjAgMTcyLjVRMzY5OSAxMzcgMzczMS41IDExOC41UTM3NjQgMTAwIDM4MDQgMTAwUTM4NTEgMTAwIDM4ODMuMCAxMjAuNVEzOTE1IDE0MSAzOTMzIDE3Mkw0MDM5IDEyMFE0MDAzIDU3IDM5NDUuMCAyMC41UTM4ODcgLTE2IDM4MDIgLTE2Wk00NDMxIC0xNlE0Mzk0IC0xNiA0MzY0LjAgLTUuMFE0MzM0IDYgNDMxMi41IDIzLjVRNDI5MSA0MSA0Mjc4IDYxSDQyNzBWMEg0MTQ3VjcxNkg0Mjc4VjUyMEw0MjcwIDQ0OEg0Mjc4UTQyOTEgNDY4IDQzMTIuNSA0ODYuMFE0MzM0IDUwNCA0MzY0LjAgNTE1LjBRNDM5NCA1MjYgNDQzMSA1MjZRNDUwMSA1MjYgNDU1Ni41IDQ5MS41UTQ2MTIgNDU3IDQ2NDQuNSAzOTYuMFE0Njc3IDMzNSA0Njc3IDI1NVE0Njc3IDE3NSA0NjQ0LjUgMTE0LjBRNDYxMiA1MyA0NTU2LjUgMTguNVE0NTAxIC0xNiA0NDMxIC0xNlpNNDQwOCAxMDVRNDQ0NSAxMDUgNDQ3Ni41IDEyMy41UTQ1MDggMTQyIDQ1MjcuNSAxNzYuMFE0NTQ3IDIxMCA0NTQ3IDI1NVE0NTQ3IDMwMSA0NTI3LjUgMzM0LjBRNDUwOCAzNjcgNDQ3Ni41IDM4NS41UTQ0NDUgNDA0IDQ0MDggNDA0UTQzNzIgNDA0IDQzNDAuNSAzODUuNVE0MzA5IDM2NyA0Mjg5LjUgMzMzLjVRNDI3MCAzMDAgNDI3MCAyNTVRNDI3MCAyMTAgNDI4OS41IDE3Ni41UTQzMDkgMTQzIDQzNDAuNSAxMjQuMFE0MzcyIDEwNSA0NDA4IDEwNVpNNDk1OSAtMTZRNDg2NSAtMTYgNDgxOC4wIDQyLjBRNDc3MSAxMDAgNDc3MSAyMDBWNTEwSDQ5MDJWMjE2UTQ5MDIgMTY0IDQ5MjcuNSAxMzQuNVE0OTUzIDEwNSA0OTkzIDEwNVE1MDMyIDEwNSA1MDU5LjAgMTI0LjVRNTA4NiAxNDQgNTEwMC41IDE3Ny4wUTUxMTUgMjEwIDUxMTUgMjUwVjUxMEg1MjQ2VjBINTEyM1Y2NEg1MTE1UTUxMDAgNDAgNTA3Ni4wIDIyLjBRNTA1MiA0IDUwMjIuNSAtNi4wUTQ5OTMgLTE2IDQ5NTkgLTE2Wk01NjA3IC0yMzJRNTUzOCAtMjMyIDU0ODcuNSAtMjEwLjVRNTQzNyAtMTg5IDU0MDUuMCAtMTU1LjBRNTM3MyAtMTIxIDUzNjAgLTg0TDU0ODMgLTM0UTU0OTkgLTcxIDU1MzEuNSAtOTMuNVE1NTY0IC0xMTYgNTYwNyAtMTE2UTU2NjggLTExNiA1NzA1LjAgLTc4LjVRNTc0MiAtNDEgNTc0MiAzMFY3MEg1NzM0UTU3MTAgMzYgNTY3MS4wIDE4LjBRNTYzMiAwIDU1ODIgMFE1NTIwIDAgNTQ2NS41IDMyLjBRNTQxMSA2NCA1Mzc3LjUgMTIzLjBRNTM0NCAxODIgNTM0NCAyNjNRNTM0NCAzNDUgNTM3Ny41IDQwMy41UTU0MTEgNDYyIDU0NjUuNSA0OTQuMFE1NTIwIDUyNiA1NTgyIDUyNlE1NjMyIDUyNiA1NjcxLjAgNTA4LjVRNTcxMCA0OTEgNTczNCA0NTZINTc0MlY1MTBINTg2OFYzNVE1ODY4IC00NyA1ODM2LjAgLTEwNy4wUTU4MDQgLTE2NyA1NzQ1LjUgLTE5OS41UTU2ODcgLTIzMiA1NjA3IC0yMzJaTTU2MDkgMTE5UTU2NDQgMTE5IDU2NzQuNSAxMzUuNVE1NzA1IDE1MiA1NzIzLjUgMTg0LjVRNTc0MiAyMTcgNTc0MiAyNjNRNTc0MiAzMTEgNTcyMy41IDM0My4wUTU3MDUgMzc1IDU2NzQuNSAzOTEuMFE1NjQ0IDQwNyA1NjA5IDQwN1E1NTc0IDQwNyA1NTQzLjAgMzkxLjBRNTUxMiAzNzUgNTQ5My41IDM0My4wUTU0NzUgMzExIDU0NzUgMjYzUTU0NzUgMjE2IDU0OTMuNSAxODMuNVE1NTEyIDE1MSA1NTQzLjAgMTM1LjBRNTU3NCAxMTkgNTYwOSAxMTlaTTYyMjkgLTIzMlE2MTYwIC0yMzIgNjEwOS41IC0yMTAuNVE2MDU5IC0xODkgNjAyNy4wIC0xNTUuMFE1OTk1IC0xMjEgNTk4MiAtODRMNjEwNSAtMzRRNjEyMSAtNzEgNjE1My41IC05My41UTYxODYgLTExNiA2MjI5IC0xMTZRNjI5MCAtMTE2IDYzMjcuMCAtNzguNVE2MzY0IC00MSA2MzY0IDMwVjcwSDYzNTZRNjMzMiAzNiA2MjkzLjAgMTguMFE2MjU0IDAgNjIwNCAwUTYxNDIgMCA2MDg3LjUgMzIuMFE2MDMzIDY0IDU5OTkuNSAxMjMuMFE1OTY2IDE4MiA1OTY2IDI2M1E1OTY2IDM0NSA1OTk5LjUgNDAzLjVRNjAzMyA0NjIgNjA4Ny41IDQ5NC4wUTYxNDIgNTI2IDYyMDQgNTI2UTYyNTQgNTI2IDYyOTMuMCA1MDguNVE2MzMyIDQ5MSA2MzU2IDQ1Nkg2MzY0VjUxMEg2NDkwVjM1UTY0OTAgLTQ3IDY0NTguMCAtMTA3LjBRNjQyNiAtMTY3IDYzNjcuNSAtMTk5LjVRNjMwOSAtMjMyIDYyMjkgLTIzMlpNNjIzMSAxMTlRNjI2NiAxMTkgNjI5Ni41IDEzNS41UTYzMjcgMTUyIDYzNDUuNSAxODQuNVE2MzY0IDIxNyA2MzY0IDI2M1E2MzY0IDMxMSA2MzQ1LjUgMzQzLjBRNjMyNyAzNzUgNjI5Ni41IDM5MS4wUTYyNjYgNDA3IDYyMzEgNDA3UTYxOTYgNDA3IDYxNjUuMCAzOTEuMFE2MTM0IDM3NSA2MTE1LjUgMzQzLjBRNjA5NyAzMTEgNjA5NyAyNjNRNjA5NyAyMTYgNjExNS41IDE4My41UTYxMzQgMTUxIDYxNjUuMCAxMzUuMFE2MTk2IDExOSA2MjMxIDExOVpNNjg1NSAtMTZRNjc3OCAtMTYgNjcxNy41IDE5LjBRNjY1NyA1NCA2NjIyLjUgMTE1LjBRNjU4OCAxNzYgNjU4OCAyNTRRNjU4OCAzMjcgNjYyMi4wIDM4OS4wUTY2NTYgNDUxIDY3MTUuMCA0ODguNVE2Nzc0IDUyNiA2ODUwIDUyNlE2OTMyIDUyNiA2OTg4LjAgNDkxLjBRNzA0NCA0NTYgNzA3My4wIDM5Ny41UTcxMDIgMzM5IDcxMDIgMjY4UTcxMDIgMjUyIDcxMDEuMCAyNDAuNVE3MTAwIDIyOSA3MDk5IDIyNEg2NjYxVjMxN0g2OTc2UTY5NzUgMzM0IDY5NjYuMCAzNTIuMFE2OTU3IDM3MCA2OTQxLjAgMzg1LjBRNjkyNSA0MDAgNjkwMi41IDQwOS41UTY4ODAgNDE5IDY4NTEgNDE5UTY4MTMgNDE5IDY3ODEuNSAzOTkuMFE2NzUwIDM3OSA2NzMyLjAgMzQzLjVRNjcxNCAzMDggNjcxNCAyNTlRNjcxNCAyMDggNjczMy4wIDE3Mi41UTY3NTIgMTM3IDY3ODQuNSAxMTguNVE2ODE3IDEwMCA2ODU3IDEwMFE2OTA0IDEwMCA2OTM2LjAgMTIwLjVRNjk2OCAxNDEgNjk4NiAxNzJMNzA5MiAxMjBRNzA1NiA1NyA2OTk4LjAgMjAuNVE2OTQwIC0xNiA2ODU1IC0xNlpNNzIwMCAwVjUxMEg3MzIzVjQ0Mkg3MzMxUTczNDQgNDY2IDczNjUuNSA0ODQuNVE3Mzg3IDUwMyA3NDE2LjAgNTE0LjBRNzQ0NSA1MjUgNzQ3OCA1MjVRNzQ5OCA1MjUgNzUxNC4wIDUyMi4wUTc1MzAgNTE5IDc1NDIgNTE0VjM4M1E3NTIxIDM5MSA3NTAwLjUgMzk2LjVRNzQ4MCA0MDIgNzQ1NyA0MDJRNzQxOCA0MDIgNzM4OS41IDM4Mi41UTczNjEgMzYzIDczNDYuMCAzMjkuNVE3MzMxIDI5NiA3MzMxIDI1NFYwWiIvPgo8L2c+Cjwvc3ZnPg==",
|
|
12
|
+
"atd-icon": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMzYiIGhlaWdodD0iMjI0IiB2aWV3Qm94PSItOCAtOCAzMzYgMjI0IiByb2xlPSJpbWciIGFyaWEtbGFiZWw9ImFpIHRhZyBkZWJ1Z2dlciBlbWJsZW0iPjx0aXRsZT5haSB0YWcgZGVidWdnZXIgZW1ibGVtIOKAlCBsaWdodDwvdGl0bGU+PHBhdGggZmlsbD0iI0Q5NTMxRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNDIgMEgyMjRRMjM3IDAgMjQ3IDEwTDMxMiA4OFEzMjggMTA0IDMxMiAxMjBMMjQ3IDE5OFEyMzcgMjA4IDIyNCAyMDhINDJRMCAyMDggMCAxNjZWNDJRMCAwIDQyIDBaIE00OSA5MVE2MSA3OSA3MyA5MUwxMDYgMTI0TDE4MCA1MFExOTIgMzggMjA0IDUwUTIxNiA2MiAyMDQgNzRMMTE4IDE2MFExMDYgMTcyIDk0IDE2MEw0OSAxMTVRMzcgMTAzIDQ5IDkxWiBNMjgxIDEwNGExNyAxNyAwIDEgMCAtMzQgMGExNyAxNyAwIDEgMCAzNCAwWiIgLz48L3N2Zz4=",
|
|
13
13
|
"favicon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAE50lEQVR4nMRXa0xbVRz/3b64lLbAGI+WlQGCOBiODYMzi8SJAffFsKnDmS26mIAzPvHxyTi/+ZqPzMfIiJljLvrB6MSR6JYQSYxl06SIIhkLYQO6sgLLVgq0tL3Hc0/vbXtbKF2G7Jfcnse/5//4nf//3HM1iAJvMu/jCBoBbivHwYIVBCG4Qn97CYdTXrfzhDzPMcO8eb1Kh6N0WI9VATkjLKDZ63VeVjEvtNzJ1TPOLNZzWnwt9tS8MW+/iuNewCqD47gCtS5tVEONN+E2QbStAUFVKBOWhrXmaRRsa4YudS1NJsIeSC0REJ6LHkfkoXbG2YeR7oPwucciiqlttZY3fZDIuGXLHpQ1vAWVOpWNBUG0AKZYNCKwNjIvj0n0mEKjzwEJLGDGcS6inOMMmkTG15ZsR9nDbzPlRDIaYUA5JtFOLSonUGn0cTaWdMCYV4Hyxk+kiEg4EgUD0vhSz/uYnbyAnIpHkVnSEJKTGGYkJ5NyIMVkQWXTl+DUKcooZLrlPRZCSl0D30EI+JCSsR6ZxfVLMIDkHNDwJmzacwyalHS2MLK3ApOLSgW/Dw77CdoPILfySYT1xuYEEJMjZDkHOFTs+hx8ujUccdDvxfj5dvi9HqyraaGOmeB29mPcdpit4DOKEbFP4Jnoh3vcBj6zFCZrrRQ5iQSTyIGs0jqYLNWhKKU9dg12Yay3jfXVOgPy72kJ7a9sVFBGNfHXcbhHe6BNy4VxXW1M1SCxA/PXRiK1i1CbmlkUlvPphVK2QxG1rJjEBCgEBWXVLLcFc9PDGP/jGK39p8Ke67MrsWlvF4I0yfiMQqkkoxmIcgYkLCOSc9HnQlJJONJzCDpDPs3mB8Peaw1maKOyms8oRd6WZ2lfgD63CuaaVgTmXDCY72XVoOGzoDMWMAYUVbOIB5zeZImb5VRabNh1HGnZGxTZH5fdEs0iFtxOTNg/g+eKDZnZZvi8s5if9cJgrUNW+TP0EErDjZFOTPZ9lJiBkDE/hn46gLt2dkBnyg8bJ4rzXRoLQUwNfovpfztQ29iC6rpDMK7JZXomHcOwnW6H/cw+ZFe9EpewSzIgI8VkxZ2PfAU1Lb3Ys13OEb/HhdHuZrS88z2yzEVs/urlQej4NDouZP+9aP8V33z8OtKLH8P034eXZ0CG+OYa/uUl3LGjjb43NIozX2bDaf8UdbtfZMYHbF3obHsD857rbH1GjhVNrW0o3fwAqrbVof/82ZtjQIYx/z6sLd8rRS5luVRaznMH8WZHP60SP97dvxEL87OKtfklm9Hy3mlMUFa+aBUvXULyDMiYcdjYsxjMxRvF2w1uTDnijItwjQ2yNsdaRl/pqnDS3pQDiSAnlkq1uKpgMJhwvQq3CNfYBUZ/enY+1uQVxcnLqh8K/08IBlbeAVHpb6eOUAZUeLz1CC3BvLDMUlyJxuc+ZP1LA72Lrk8qCZcFzYEnXmtH+dYd8TJRu3TnFCvkz7MnFWK1Vmc4IN7NcIv45/dOeOdmGAPalFQseOcwOTaEIXs3Y0JE8d3304PpaGQrCLmqod710W4DVgDiqSc+sbg+NY7tu1+F42If/D5vREBtc3qjpZF2fsD/DFOWBe5rTuWtiGAn2x29yfwzdWdFWEgW9CD7cX7G2ciqIEC4l6ljPqwS6CHuQcD3vNhXfBPdjs/z/wAAAP//hkxTugAAAAZJREFUAwAgrRNzbxNrdwAAAABJRU5ErkJggg==",
|
|
14
14
|
};
|
package/src/browser.js
CHANGED
|
@@ -3,7 +3,7 @@ import { createRequire } from "node:module";
|
|
|
3
3
|
import { readFile, rm, writeFile } from "node:fs/promises";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { chromium, devices } from "playwright";
|
|
6
|
-
import { parseTrackingRequest, isCollectionEndpoint, providerOf, vendorOf, resolveProviders } from "./parsers.js";
|
|
6
|
+
import { parseTrackingRequest, isCollectionEndpoint, providerOf, vendorOf, resolveProviders, PROVIDERS } from "./parsers.js";
|
|
7
7
|
import { redactBody, redactParams, redactPush, redactUrl } from "./redact.js";
|
|
8
8
|
import { hostScope, isPrivateAddress, navigationError, privateHostChecker } from "./guard.js";
|
|
9
9
|
import { startEgressProxy } from "./egress.js";
|
|
@@ -341,13 +341,25 @@ async function cleanRecording(file) {
|
|
|
341
341
|
await writeFile(file, JSON.stringify(har));
|
|
342
342
|
}
|
|
343
343
|
|
|
344
|
+
/** Where the step left the browser, without query or fragment, so the route can be compared across runs. */
|
|
345
|
+
function pagePath(href) {
|
|
346
|
+
try {
|
|
347
|
+
const u = new URL(href);
|
|
348
|
+
return /^https?:$/.test(u.protocol) ? u.origin + u.pathname : null;
|
|
349
|
+
} catch {
|
|
350
|
+
return null;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
|
|
344
354
|
export class AuditSession {
|
|
345
355
|
/**
|
|
346
356
|
* @param {{ viewport: string, site?: string, allowedHosts?: string[], providers?: string[], keepBodies?: boolean, blockPrivate?: boolean | ((ip: string) => boolean), blockHits?: boolean, headless?: boolean }} opts
|
|
347
357
|
* keepBodies: store tracking URLs and bodies as sent. By default, user data for ad matching
|
|
348
358
|
* (emails, phone numbers, user ids, hashed or not) is replaced with a marker first.
|
|
349
|
-
* providers: which tracking providers to record
|
|
350
|
-
*
|
|
359
|
+
* providers: which tracking providers to record. Requests to the others are still answered locally,
|
|
360
|
+
* but only counted, per step, in this.skipped.
|
|
361
|
+
* detect: also record any other known provider the site sends to, from its first request
|
|
362
|
+
* (default: when no providers were chosen). They join this.providers.
|
|
351
363
|
* site: navigation is limited to this site's host and its subdomains, plus allowedHosts.
|
|
352
364
|
* recordHar: save every response the site sends into this .har file, so the journey can be replayed offline later.
|
|
353
365
|
* closeTimeoutMs: how long close() waits for the recording to be written (default 30 s) before skipping it.
|
|
@@ -370,6 +382,7 @@ export class AuditSession {
|
|
|
370
382
|
this.dataLayerLog = [];
|
|
371
383
|
this.network = [];
|
|
372
384
|
this.providers = resolveProviders(this.opts.providers);
|
|
385
|
+
this.detect = this.opts.detect ?? !this.opts.providers?.length;
|
|
373
386
|
this.skipped = {}; // step index -> { vendor label: requests }
|
|
374
387
|
this.loadedIn = new Map(); // page address -> the last step whose main-frame navigation reached it
|
|
375
388
|
this.leaving = null; // the page address being navigated away from, until the next page commits
|
|
@@ -424,7 +437,7 @@ export class AuditSession {
|
|
|
424
437
|
if (!hits) return;
|
|
425
438
|
const recorded = [];
|
|
426
439
|
for (const hit of hits) {
|
|
427
|
-
if (!this.
|
|
440
|
+
if (!this.checks(hit.platform)) continue;
|
|
428
441
|
const entry = { ...this.redactHit(hit), step: this.stepForHit(hit), pageUrl: this.page.url(), t: Date.now() };
|
|
429
442
|
if (this.record("hits", entry)) recorded.push(entry);
|
|
430
443
|
}
|
|
@@ -443,7 +456,7 @@ export class AuditSession {
|
|
|
443
456
|
this.context.on("request", (request) => {
|
|
444
457
|
const provider = providerOf(request.url());
|
|
445
458
|
if (!provider) return;
|
|
446
|
-
if (!provider.always && !this.
|
|
459
|
+
if (!provider.always && !this.checks(provider.key)) {
|
|
447
460
|
const counts = (this.skipped[this.currentStep] ??= {});
|
|
448
461
|
counts[provider.label] = (counts[provider.label] ?? 0) + 1;
|
|
449
462
|
return;
|
|
@@ -553,6 +566,14 @@ export class AuditSession {
|
|
|
553
566
|
}
|
|
554
567
|
|
|
555
568
|
/** The hit with user data for ad matching redacted, and userData: { fields, plain } when there was any. */
|
|
569
|
+
/** Whether requests of this provider are recorded; with detection on, a known provider seen for the first time joins the list. */
|
|
570
|
+
checks(key) {
|
|
571
|
+
if (this.providers.includes(key)) return true;
|
|
572
|
+
if (!this.detect || !(key in PROVIDERS)) return false;
|
|
573
|
+
this.providers.push(key);
|
|
574
|
+
return true;
|
|
575
|
+
}
|
|
576
|
+
|
|
556
577
|
redactHit({ userFields, ...hit }) {
|
|
557
578
|
const found = { fields: [], plain: [] };
|
|
558
579
|
const site = hostOf(hit.params?.page_location) ?? hostOf(this.page.url());
|
|
@@ -808,6 +829,7 @@ export class AuditSession {
|
|
|
808
829
|
await this.trackCookies();
|
|
809
830
|
// A scripted replay of this step may fail the same way, which must not end the journey there.
|
|
810
831
|
if (error) this.steps[this.currentStep].error = error;
|
|
832
|
+
this.steps[this.currentStep].pagePath = pagePath(this.page.url());
|
|
811
833
|
return error;
|
|
812
834
|
}
|
|
813
835
|
|
package/src/changes.js
CHANGED
|
@@ -35,14 +35,42 @@ function planProblems(pc) {
|
|
|
35
35
|
return out;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
/** The pages one run visited, in order, one entry per journey and viewport. Null when it recorded none (older runs). */
|
|
39
|
+
function routes(runs = []) {
|
|
40
|
+
const out = new Map();
|
|
41
|
+
for (const r of runs) {
|
|
42
|
+
const pages = [];
|
|
43
|
+
for (const s of r.steps ?? []) if (s.pagePath && pages.at(-1) !== s.pagePath) pages.push(s.pagePath);
|
|
44
|
+
if (pages.length) out.set(`${r.journeyId}|${r.viewport}`, { journeyId: r.journeyId, viewport: r.viewport, pages });
|
|
45
|
+
}
|
|
46
|
+
return out;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** Journeys whose route through the site differs from the previous run: [{ journeyId, viewport, before, after }]. */
|
|
50
|
+
export function compareRoutes(prevRuns, runs) {
|
|
51
|
+
const before = routes(prevRuns);
|
|
52
|
+
const out = [];
|
|
53
|
+
for (const [k, now] of routes(runs)) {
|
|
54
|
+
const was = before.get(k);
|
|
55
|
+
if (was && was.pages.join("\n") !== now.pages.join("\n")) out.push({ journeyId: now.journeyId, viewport: now.viewport, before: was.pages, after: now.pages });
|
|
56
|
+
}
|
|
57
|
+
return out;
|
|
58
|
+
}
|
|
59
|
+
|
|
38
60
|
/**
|
|
39
61
|
* What changed since the previous run of the same site. Compares plan coverage when both runs were
|
|
40
62
|
* checked against a plan, and the health findings otherwise.
|
|
41
63
|
* Returns { previous: null } when there is no earlier run, else
|
|
42
64
|
* { previous, mode: "plan" | "findings", fixed: [...], new: [...] }.
|
|
43
65
|
*/
|
|
44
|
-
export function compareRuns(prev, { findings, planCheck = null }) {
|
|
66
|
+
export function compareRuns(prev, { findings, planCheck = null, runs = [] }) {
|
|
45
67
|
if (!prev) return { previous: null };
|
|
68
|
+
const routeChanges = compareRoutes(prev.capture?.runs, runs);
|
|
69
|
+
const base = compareFindings(prev, { findings, planCheck });
|
|
70
|
+
return routeChanges.length ? { ...base, routes: routeChanges } : base;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function compareFindings(prev, { findings, planCheck }) {
|
|
46
74
|
if (planCheck && prev.planCheck) {
|
|
47
75
|
const before = planProblems(prev.planCheck);
|
|
48
76
|
const now = planProblems(planCheck);
|